pax_global_header00006660000000000000000000000064120425773420014520gustar00rootroot0000000000000052 comment=9f52d8376b19faeb80382b98b90438efd566c616 gpm-1.20.7/000077500000000000000000000000001204257734200123725ustar00rootroot00000000000000gpm-1.20.7/.exclude000066400000000000000000000000051204257734200140170ustar00rootroot00000000000000.git gpm-1.20.7/.gitignore000066400000000000000000000014611204257734200143640ustar00rootroot00000000000000.depend *~ *.o *.lo *.a *.d *.P .*.swp Makefile Makefile.include /aclocal.m4 /autom4te.cache /config.log /config.status /configure /configure.ac /config /libtool /contrib/Makefile /src/headers/config.h /src/headers/config.h.in /src/headers/drivers.h /src/prog/gpm-root.c /src/subdirs-exist /src/headers/config.h.in /src/gpm /src/gpm2/tmp /src/gpm2/out /src/lib/libgpm.so.* /src/prog/disable-paste /src/prog/display-buttons /src/prog/display-coords /src/prog/gpm-root.c /src/prog/gpm-root /src/prog/get-versions /src/prog/hltest /src/prog/mev /src/prog/mouse-test /src/Makefile.drivers.generated /src/subdirs-exist /doc/doc.gpm /doc/gpm-root.1 /doc/gpm-types.7 /doc/gpm.8 /doc/gpm.info /doc/gpm.man /doc/mev.1 /doc/mouse-test.1 /.gitversion # gpm2 /gpm2/out/* /gpm2/tmp/* /src/gpm2 /.gitversion.m4 /.releasedate gpm-1.20.7/COPYING000066400000000000000000000430701204257734200134310ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. gpm-1.20.7/MANIFEST000066400000000000000000000130331204257734200135230ustar00rootroot00000000000000 This is the list of all the files included in the current distribution tar ball. Actually, Makefile used this very list to know what to include in the tar. Now we include everything is still there after a 'make distclean' SOURCE FILES ------------ src/ gpm.c main engine of the daemon gpn.c support functions report.c message management (replaces debuglog.c) [inside gpm] report-lib.c message management [inside the lib] special.c special functions mice.c support for (almost) all the pointer types twiddler.c the twiddler keyboard needs special code synaptics.c and the synaptics table too liblow.c low-level gpm library libhigh.c high-level gpm library libxtra.c optional and little-used library functions libcurses.c curses-like functions mev.c sample mouse-event application hltest.c sample use of the high-level gpm library mouse-test.c old tool to help detecting the pointer protocol disable-paste.c very short application to forget the current selection gpm-root.y a sample default handler gpm-root.c derived from the above using bison headers/ gpm.h installed gpm header gpmCfg.h default configuration gpmInt.h internal declaration gpm-proto.h proposal for a new protocol, currently unused message.h messages synaptics.h synaptics tablet implementation twiddler.h twiddler keyboaard implementation config.h.in [build by autoheader] template for config.h [build by ./configure] PATCHES ------- patches/ done/ applied/refused/too old patches todo/ patches still need to be applied or refused DEFAULT/SAMPLE CONFIGURATION FILES ---------------------------------- conf/ gpm-root.conf sample usesable by gpm-root gpm-twiddler.conf default configuration for the twiddler keyboard gpm-syn.conf default configuration for the synaptics touchpad FILES USED IN THE BUILD PROCESS ------------------------------- configure.in source for configure configure script to autoconfigure the package aclocal.m4 support declaration for configure.in acconfig.h Makefile.in the source for Makefile, used by configure Makefile.include.in the source for Makefile.include, used by other Makefiles install-sh fallback install script if no install command is found DOCUMENTATION (currently not up-to-date) --------------- README introductory information, and credits (incomplete list) COPYING GNU GPL Changelog the log of changes - a lot of changes :) Changes Put together all important changes from one to another release MANIFEST this file doc/ Announce original announce for version 1.0 Makefile.in template for doc/Makefile infofilter preprocessor to create a .texi source file from my own docs manpager tool to extract manual pages from the main document file mktxt tool to extract a ``decent'' text file from the info one # FAQ / READMEs FAQ Frequently asked/answered questions README.gunze how to use the gunze touchscreen README.microtouch how to use the microtouch touch screen README.synaptics how to use the synaptics tablet README.twiddler how to use the twiddler keyboard doc.gpm.in template of gpm.doc (substitutes version) doc.gpm the source for the ``real'' documentation gpmdoc.ps generated from doc.gpm using doc/infofilter, texinfo and TeX gpm.info generated from doc.gpm using doc/infofilter and makeinfo gpmdoc.txt generated from gpm.info using doc/mktxt # MANPAGES gpm.8 man page, generated from doc.gpm using doc/manpager mev.1 man page, generated from doc.gpm using doc/manpager gpm-root.1 man page, generated from doc.gpm using doc/manpager gpm-types.7 man page, generated from doc.gpm using doc/manpager mouse-test.1 man page, generated from doc.gpm using doc/manpager support/ contains information about mouse support this includes mails and other information from the vendors. SUPPORT MATERIAL (currently not installed) --------------- contrib/ Makefile.in when you read everything to here you should know what it is emacs/ t-mouse.el emacs client (needs mev installed) t-mouse.elc compiled form of the emacs client exec.el allow emacs to execute lisp commands from the command line init/ gpm.init sample init script (Redhat?) scripts/ create_vcs script to create /dev/vcs* devices (redundant) gunze-setup same, for the gunze touchscreen microtouch-setup a program to calibrate the microtouch touchscreen mkinstalldirs creates the installation directories (currently unused) test_gpm test gpm. use it, to copy the gpmdir, ./configure,make other/ other contributions SAMPLE GPM CLIENT [ currently not available/I don't know why :( ] ----------------- sample/ README explanation of how it works Makefile.in sample template for Makefile configure.in sample template for configure gpm-xterm.c support file, replacement for libgpm gpm-xterm.h header, replacement for gpm.h rmev.c sample client application gpm-1.20.7/Makefile.in000066400000000000000000000071011204257734200144360ustar00rootroot00000000000000# -*-makefile-*- (gpm/main) # # Copyright 1994,1997 rubini@linux.it # Copyright 1997 dickey@clark.net # Copyright (C) 1998 Ian Zimmerman # Copyright (C) 2001-2012 Nico Schottelius # SHELL = /bin/sh srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = . include Makefile.include # allow CFLAGS to be overriden from make command line # ideally one would never have to write this rule again, but the GNU # makefile standards are at cross-purposes: CFLAGS is reserved for # user-overridable flags, but it's also all the implicit rule looks at. # missing ? SUBDIRS = src doc contrib ### simple, but effective rules all: do-all src/$(DEPFILE): touch $@ # to prevent unecessary warnings dep: src/$(DEPFILE) $(MAKE) -C src dep check: all uninstall: do-uninstall clean: do-clean rm -f config.status.lineno aclocal.m4: acinclude.m4 $(MKDIR) config aclocal -I config configure: configure.ac aclocal.m4 $(versionfiles) libtoolize --force --copy `libtoolize -n --install >/dev/null 2>&1 && echo --install` autoheader autoconf config.status: configure if [ -f config.status ]; then $(SHELL) ./config.status --recheck; \ else $(SHELL) ./configure; fi Makefile: config.status $(srcdir)/Makefile.in Makefile.include ./config.status Makefile.include: config.status $(srcdir)/Makefile.include.in ./config.status ### INSTALL install: check installdirs do-install install-strip: $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) $(STRIP)' install installdirs: $(MKDIR) $(libdir) $(bindir) $(sbindir) $(includedir) $(sysconfdir); \ if test "x$(ELISP)" != "x" ; then \ $(MKDIR) $(lispdir) ; \ fi ### GENERIC # do-all goes to all subdirectories and does all do-%: dep @target=`echo $@ | $(SED) -e 's/^do-//'`; \ for i in $(SUBDIRS) ; do \ if test -f ./$$i/Makefile ; then \ $(MAKE) -C ./$$i $${target} || exit 1 ;\ else \ true; \ fi; \ done # Configure & unconfigure # Maintainer portion, use at your own risk barf: @echo 'This command is intended for maintainers to use; it' @echo 'deletes files that may need special tools to rebuild.' @echo 'If you want to continue, please press return.' @echo -n "Hit Ctrl+C to abort." @read somevar # who / what does need tags TAGS: $(SRCS) $(HDRS) src/prog/gpm-root.y do-TAGS cd $(srcdir) && $(ETAGS) -o TAGS $(SRCS) $(HDRS) src/prog/gpm-root.y ### RELEASE STUFF TARS =../gpm-$(release).tar.gz TARS +=../gpm-$(release).tar.bz2 ../gpm-$(release).tar.lzma M_HOST=arcana.linux.it M_DIR=gpm/ tars: $(TARS) # configure headers, produce new configure script distconf: Makefile.in Makefile.include.in configure acinclude.m4 $(versionfiles) ../gpm-$(release).tar: $(srcdir) distclean distconf # no exclude possible of .git with pax it seems, so the following is not possible: git archive --prefix "gpm-$(release)/" -o $@ HEAD ../gpm-$(release).tar.gz: ../gpm-$(release).tar gzip -9 -c $< > $@ ../gpm-$(release).tar.bz2: ../gpm-$(release).tar bzip2 -9 -c $< > $@ ../gpm-$(release).tar.lzma: ../gpm-$(release).tar lzma -9 -c $< > $@ # 3. Put package together into .tar.gz and .tar.bz2 dist: disttest distclean distconf $(TARS) scp $(TARS) $(M_HOST):$(M_DIR) mv $(TARS) ~/niconetz/software/gpm/archives ### TEST: on nicos machine: not to be used anywhere else currently # create / update configure, delete other parts from earlier build disttest: distconf clean ./configure make all ### CLEANUP distclean: clean do-clean do-distclean rm -f config.log config.status* config.cache Makefile Makefile.include rm -rf autom4te.cache rm -f src/$(DEPFILE) allclean: do-allclean distclean rm -f configure aclocal.m4 gpm-1.20.7/Makefile.include.in000066400000000000000000000034021204257734200160600ustar00rootroot00000000000000# -*-makefile-*- (gpm/include) # # Copyright (C) 2001 Nico Schottelius # # set root, if you want to install to a virtual root ROOT = ifndef ROOT ROOT = $(DESTDIR) endif SHELL = /bin/sh prefix = @prefix@ exec_prefix = @exec_prefix@ # directories libdir = $(ROOT)@libdir@ datadir = $(ROOT)@datadir@ bindir = $(ROOT)@bindir@ sbindir = $(ROOT)@sbindir@ includedir = $(ROOT)@includedir@ sysconfdir = $(ROOT)@sysconfdir@ mandir = $(ROOT)@mandir@ man1dir = $(mandir)/man1 man7dir = $(mandir)/man7 man8dir = $(mandir)/man8 infodir = $(ROOT)@infodir@ # autconf wants this, otherwise issues this warning: # config.status: WARNING: Makefile.include.in seems to ignore the --datarootdir setting datarootdir = @datarootdir@ # it would be nice to figure this out automatically, but the Emacs # load path often has many elements, most of them reserved for # specialised packages like w3 and auctex. lispdir = @lispdir@ # programs CC = @CC@ RANLIB = @RANLIB@ YACC = @YACC@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ LN_S = @LN_S@ EMACS = @EMACS@ ELISP = @ELISP@ SHLIB = @SHLIB@ SED = @SED@ DIFF = @DIFF@ TEX = @TEX@ TEXINDEX = @TEXINDEX@ DVIPS = @DVIPS@ MAKEINFO = @MAKEINFO@ TEXI2HTML = texi2html STRIP = -s AR = ar ETAGS = etags AWK = awk CP = cp -a MKDIR = mkdir -p # linux specific, but who cares ? # gpm is linux specific, too. RM = rm DEPFILE = .depend release = @release@ gpm-1.20.7/README000066400000000000000000000245021204257734200132550ustar00rootroot00000000000000/* * README -- gpm 1.xx * * Copyright 1995-2000 rubini@linux.it (Alessandro Rubini) * Copyright 2001-2012 nico-gpm at schottelius.org (Nico Schottelius) * *******/ The gpm (general purpose mouse) daemon tries to be a useful mouse server for applications running on the Linux console. Its roots are in the "selection" package, by Andrew Haylett, and the original code comes from selection itself. This package is intended as a replacement for "selection", to provide additional facilities. From 0.18 onward gpm supports xterm as well, so you can run mouse-sensitive applications under X, and you can easily write curses applications which support the mouse on both the Linux console and xterm. The xterm code is portable to any U*x flavour (look at sample/README). The first clients have been "The Midnight Commander", by Miguel de Icaza and an emacs library included in this release. Recent dialog distributions and the Jed editor use gpm as well, and the same do several custom applications. If you want to make a patch to gpm, please read doc/HACK_GPM. For additionally documentation and other READMEs have a look into doc/. =========== MAINTENANCE As of 1.19.4, gpm is officially maintained again. Most of the README is written by Alessandro Rubine, only minor changes are made by Nico Schottelius. =========== MAILING LIST The mailing list devoted to gpm is "gpm@lists.linux.it" The list is managed by Mailman and is currently open, so non-subscribers are allowed to post. In order to subscribe to the mailing list, visit http://lists.linux.it/listinfo/gpm or send a message with "subscribe" in its body to gpm-request@lists.linux.it. For example: echo subscribe | mail gpm-request@lists.linux.it =========== DOWNLOAD / HOMEPAGE The latest releases can always be found in one of the following place: http://www.nico.schottelius.org/software/gpm/archives/ Mirror: ftp://arcana.linux.it/pub/gpm/ http://www.ar.linux.it/pub/gpm/ The homepage of gpm can be found at http://www.nico.schottelius.org/software/gpm/ You can get the latest development tree of gpm via git: git-clone git://git.schottelius.org/gpm There are three branches available: master: Contains the latest gpm1 code, may be broken. gpm-1-stable: Contains the latest stable source code. gpm-2-dev: Contains work that heads to gpm2. =========== COMPILING AND INSTALLING The package uses autoconf as of 2.12. Use "./autogen.sh && ./configure && make" to compile the gpm suite. To install "make install". This installs everything under the "prefix" directory, which by default is /usr/local. Use "./configure --prefix=/usr" if you want to install under /usr instead of /usr/local. Exectuable files are installed in $(prefix)/bin (except the gpm daemon in $(prefix)/sbin), libraries in $(prefix)/lib, man pages in $(prefix)/man, the lisp library in the proper location for emacs-list files (detected during the "configure" step); info files are installed under $(prefix)/info. If you would like to 'clean'up very tidy, use distclean. Don't forget to use make distclean config! Otherwise there will be no configure script! =========== CONFIGURING Configuration is optional... * You would like to tell emacs to use t-mouse.el when appropriate. Add the following lines to your own .emacs (in your home directory), or in the /usr/lib/emacs/site-lisp/default (if (and (string-match ".*-linux" system-configuration) (not window-system) (or (string-match "linux" (getenv "TERM")) (string-match "con.*" (getenv "TERM")))) (load-library "t-mouse")) * If you want to use gpm-root, copy gpm-root.conf to your /usr/etc directory, test it out and then edit it to suit your feels. * You'd like to name the gpm info file inside /usr/info/dir. Just insert the line * gpm: (gpm.info). A mouse server for the Linux console at the proper place. Note that this is usually automatically performed if you install a package prepared for your own distribution. * To invoke gpm (and gpm-root) at system boot, add something like this to your /etc/rc.d/rc.local /usr/sbin/gpm -t msc -m /dev/tts/0 & /usr/bin/gpm-root & If you are running the new setup of SysVinit, you should better add a "gpm" script in /etc/rc.d/rc.init and install it in your runlevels in the usual way (this is usually included in your distribution as well) You may want to put the mouse server at a higher priority: in this case invoke instead "/usr/bin/nice -n -20 /usr/sbin/gpm -t msc" The program goes to the background by itself, unless it is run with debuging enabled (see the -D option in the documentation). ========== DOCS The directory "./doc" holds the documentation. The release embeds a postscript file, slightly reduced to save paper (doc/gpm2.ps), an info one (doc/gpm.info) and a text-only version (doc/gpmdoc.txt -- but without table of contents, for now). Man pages are automatically extracted from the info file, and are installed with "make install" =========== BUG REPORTS Before sending bug reports, please look at the file "FAQ", which outlines some known problems, and how to deal with them. If your bug isn't fixed by reading there, please report it to me, without getting angry with me if things don't work at first trial (but they usually work). Bug reports are best sent to the gpm mailing list (see above) or to me via email, if you use personal mail please include the string "gpm" somewhere in the subject line. This will help my filters in sorting things out. * When compilation fails I need your kernel version ("uname -a"), the compiler version ("gcc -v") and the library version ("ls -l /lib" or, better "ldd /usr/sbin/gpm"). And the compiler messages, obviously. * When a program hangs or segfaults, please reinvoke the program under strace: strace -tf -o /tmp/trace.gpm gpm -t msc ^^^^^^^^^^ put your true cmdline here. Then send me /tmp/trace.gpm* (they may be one or two files, according to the strace version), and a description of how you reproduce the problem. The last resort is a core dump, but I'll ask it personally if I have real difficulties in tracing out your problem. =========== CREDITS The following people contributed to gpm, in chronological order. This list used to reside in a different file, but it's better for it to stand out in the README Andrew Haylett (ajh@gec-mrc.co.uk) donated "selection" to the linux community, so I could get the idea and the code. A few others contributed to selection, but I lost track of their contributions and names. Steven S. Dick (ssd@nevets.oau.org) fixed a pair of bugs in early gpm versions. Miguel de Icaza (miguel@roxanne.nuclecu.unam.mx) helped fixing some bugs and provided a good client to test my server. He helped a lot in testing the various pre-releases. Olav Woelfelschneider (wosch@rbg.informatik.th-darmstadt.de) fixed 0.10 with MouseSystems compatible mice. Janne Kukonlehto (jtklehto@stekt.oulu.fi) provided xterm mouse decoding to be stolen by me. Rick Lyons (rick@razorback.brisnet.org.au) fixed a bug in gpm-0.9. Reuben Sumner (rasumner@undergrad.math.uwaterloo.ca) helped fixing behaviour with "-t bm". Larry Bartholdi (lbartho@scsun.unige.ch) pinpointed an error in t-mouse-suspend and provided good suggestions for 0.97. Mark Lord (mlord@bnr.ca) ported to Dexxa/Logitech mice and gave feedback several times. Stefan Giessler (stg@gandalf.han.de) fixed some problems with gpm-root and suggested to put gpm in the background (0.97). Roman Shapiro helped with the Logitech MouseMan. Andries Brouwer (aeb@cwi.nl) Provided a Latin-1 LUT for chars, and enhanced lut-loading code (0.98). Adrian Johnson (ajohnson@apanix.apana.org.au) Gave good feedback and ideas for the 0.98's Stephen Lee (sl14@crux1.cit.cornell.edu) Helped a lot with the damned MouseMan protocol (0.98 and 1.0) John van Leeuwen (johnvl@einstein.et.tudelft.nl) Outlined and fixed a pair of bugs in gpm-root 0.98 Alvar Bray (alvar@meiko.co.uk) Pointed out an error with awk (0.99) David A. van Leeuwen (david@tm.tno.nl) Helped with chord-middle protocols (1.0) Pavel Kankovsky (KAN@frode.dcit.cz) Open /dev/ttyxx instead of /dev/console in the lib (1.01) Mark Shadley (shadcat@catcher.com) Helped in turning to ELF (1.01 and 1.02) and in fixing horrible bugs of mine. Without his help 1.03 wouldn't be there. Lou Sortman (lou@lounix4.conc.tdsnet.com) Added support for glidepoint mice within "-t mman". (1.05) Marc Meis (100334.1426@compuserve.com) Provided support for absolute pointing devices, and in particular for the ncr3125 pen. (1.05) Michael Plass (Michael_Plass.PARC@xerox.com) Fixed a damned bug in middle button decoding (M_ms) (1.07) Markus Gutschke (gutschk@uni-muenster.de) Provided a better re-encoding for "-R" (1.10) Karsten Ballueder (Karsten@piobelix.physik.uni-karlsruhe.de) Suggested the reboot compile-time option (1.10) John Davis (davis@space.mit.edu) Found and fixed a buglet in liblow.c for some jed users (1.10) Julian Thompson (jrt@miel.demon.co.uk) Fixed a buglet in gpm-root (1.10) Dave Flater (dave@universe.digex.net) Removed a typo in the disabled decoder for ms-3b (1.11) Thomas E. Dickey (dickey@clark.net) Ported to autoconf (1.11) Pavel Machek (pavel@ucw.cz) New mode "logim" (1.11) and NetMouse (1.14) Matthias Grimrath (y0001032@rzserv8.rz.tu-bs.de) Be c++ compliant in gpm.h (1.11) Stephen Tell (tell@cs.unc.edu) Patch for the ps2 decoder to support misbehaving devices (1.11) Francois Chastrette (no-email) Great help to support plugnpray mice (1.13) Steve Bennett (s.bennett@lancaster.ac.uk) Support for the intellimouse serial devices. (1.13) Jan Daciuk (jandac@pg.gda.pl) t-mouse: yet another regexp possibility Ian Zimmerman is now actively cooperating in maintaining gpm, so he'll no longer appear in the acknowledgements ;-) David Given (dg@tao.co.uk) Offered support for joystick mouse emulation (1.14) Tim Goodwin (tgoodwin@cygnus.co.uk) Colin Plumb (colin@nyx10.nyx.net) Ben Pfaff (pfaffben@pilot.msu.edu) Ian and Iris (brooke@jump.net) All of them sent in support for ps2 intellimouse (1.14) Edmund Grimley Evans (edmund@vocalis.com) Added "-t ms+lr" Stefan Runker (runkeledv@t-online.de) Contributed a new Wacom decoder Alessandro Rubini (rubini@linux.it) He's done a lot of work on gpm and maintained it. He's still helping me a lot to understand all parts of gpm. gpm-1.20.7/README.gpm2000066400000000000000000000015731204257734200141240ustar00rootroot00000000000000I am thinking about restructing gpm, for the following reasons: - the code is old - the code is huge - the code is next to unmaintainable - the code is linux specific What I think one could reach: - create gpm, that runs on any Unix? - create gpm that is easy to extend - create gpm that is easy to maintain What ways are possible? - rewrite everything from scratch * takes a long time and much motivitation - migrate old code to clean codebase * takes some time to analyse old code * seems to me some way one could go How to do it? - new functions / code references 'gpm2' instead of gpm - perhaps some people want to sponsor me for creating a clean mouse driver for the console? => thus I got more time to focus on gpm2 - motivate other foss developers to take part into it Let's see what happens! -- Nico Schottelius, 2007-05-11 2245 CEST in a train in Zurich gpm-1.20.7/README.versions000066400000000000000000000021751204257734200151260ustar00rootroot00000000000000Dear gpm README reader, this letter is to you, as I have to tell you about my idea of versioning of gpm. Traditionally, there were 1.19.x releases. That was, before the gpm source code and I met. After that, there was 1.20.x, indicating a new maintainer, but continuing with the old naming versioning. Today, on the 19th of February 2008, I decided to give gpm a real chance of getting a "second life" under the name of "gpm2" (as described in README.gpm2). It seems that the best effort for creating gpm2 is to rewrite everything, but to migrate the logic from the old code (as in: how to handle the individual mouse). So, how does that relate to the versions of gpm? Let us have a look at it: 1.19.x: old versions, not continued 1.20.x: current stable versions: no new features. 1.99.x: versions that move to 2.x, but contain much 1.20.x code. includes new features. 2.0.x: future stable versions 2.1.x: future testing versions Perhaps you have some comments to tell me? If so, just drop me a letter to nico-gpm-versions at schottelius.org. Yours, Nico gpm-1.20.7/TODO000066400000000000000000000011521204257734200130610ustar00rootroot00000000000000================================================================================ = /------\ /-----\ |----\ /-----\ = = || | | | | | | = = || | | | | | | thanks for every help. ;) = = || \-----/ |____/ \-----/ = ================================================================================ Tasks: 2012-10-26 Nico Schottelius * Fix buildprocess: add version to git and allow generated tar to be used for building gpm-1.20.7/acinclude.m4000066400000000000000000000017241204257734200145670ustar00rootroot00000000000000dnl $Id: aclocal.m4,v 1.2 2002/05/28 19:13:50 nico Exp $ AC_DEFUN([ITZ_SYS_ELF], [AC_CACHE_CHECK([whether system is ELF],itz_cv_sys_elf, [AC_EGREP_CPP(win, [#ifdef __ELF__ win #else lose #endif ],[itz_cv_sys_elf=yes],[itz_cv_sys_elf=no])]) if test ${itz_cv_sys_elf} = yes && test x${ac_cv_prog_gcc} = xyes ; then PICFLAGS="-DPIC -fPIC" SOLDFLAGS="-fPIC -shared -Wl,-soname," else PICFLAGS= SOLDFLAGS= fi ]) AC_DEFUN([ITZ_PATH_SITE_LISP], [AC_CACHE_CHECK([where to install Emacs Lisp files],itz_cv_path_site_lisp, [eval itz_cv_path_site_lisp=`${EMACS} -batch -l ${srcdir}/exec.el -exec "(mapcar 'print load-path)" 2>/dev/null | sed -e '/^$/d' | sed -n -e 2p` case x${itz_cv_path_site_lisp} in x*site-lisp*) ;; x*) itz_cv_path_site_lisp='${datadir}/emacs/site-lisp' ;; esac]) ]) AC_DEFUN([ITZ_CHECK_TYPE], [AC_CACHE_CHECK([for $1],itz_cv_type_$1, AC_TRY_COMPILE([ #include <$2> ],[ $1 dummy; return 0; ],[itz_cv_type_$1=yes],[itz_cv_type_$1=no])) ]) gpm-1.20.7/autogen.sh000077500000000000000000000014011204257734200143670ustar00rootroot00000000000000#!/bin/sh [ -d config ] || mkdir config version=$(git describe 2>/dev/null) # No git? use changelog information if [ -z "$version" ]; then version=$(grep '^[[:digit:]]' doc/changelog | head -n1 | cut -d: -f1) date=$(grep '^[[:digit:]]' doc/changelog | head -n1 | cut -d: -f2) else date=$(git log -1 --pretty="format:%ai" "$version") fi cat << eof > configure.ac AC_INIT([gpm],[$version],[http://www.nico.schottelius.org/software/gpm/]) releasedate="$date" release="$version" eof cat configure.ac.footer >> configure.ac ${ACLOCAL-aclocal} -I config ${LIBTOOLIZE-libtoolize} -n --install 2>/dev/null && LIBTOOL_FLAGS="--install" || LIBTOOL_FLAGS="" ${LIBTOOLIZE-libtoolize} --force --copy ${LIBTOOL_FLAGS} ${AUTOHEADER-autoheader} ${AUTOCONF-autoconf} gpm-1.20.7/conf/000077500000000000000000000000001204257734200133175ustar00rootroot00000000000000gpm-1.20.7/conf/gpm-root.conf000066400000000000000000000033341204257734200157350ustar00rootroot00000000000000# sample configuration file for gpm-root # edit it to please your taste.... button 1 { name "ttys" "" f.nop "login on a new tty" f.mktty "" f.nop "tty 1" f.jptty "1" "tty 2" f.jptty "2" "tty 3" f.jptty "3" "tty 4" f.jptty "4" "" f.nop "tty 5" f.jptty "5" "tty 6" f.jptty "6" "tty 7" f.jptty "7" "tty 8" f.jptty "8" "" f.nop "more of them..." { "tty 9" f.jptty "9" "tty 10" f.jptty "10" "tty 11" f.jptty "11" "tty 12" f.jptty "12" "" f.nop "tty 13" f.jptty "13" "tty 14" f.jptty "14" "tty 15" f.jptty "15" "tty 16" f.jptty "16" "" f.nop "more of them..." { "tty 17" f.jptty "17" } } } button 2 { name "system status" foreground red background black border yellow head bright yellow "" f.nop "%b %d %Y" f.time "%H:%M" f.time "" f.nop "load: " f.load "free:" f.free "" f.nop "report disk usage to ~/du" f.bgcmd "du ~ | sort -rn > ~/du" "print mail headers to tty" f.bgcmd "grep '^From ' /var/spool/mail/$USER | tail" } button 3 { name "far ttys" foreground black background red border bright yellow head bright yellow "tty 9" f.jptty "9" "tty 10" f.jptty "10" "tty 11" f.jptty "11" "tty 12" f.jptty "12" "" f.nop "tty 13" f.jptty "13" "tty 14" f.jptty "14" "tty 15" f.jptty "15" "tty 16" f.jptty "16" "" f.nop # I use this to halt and reboot the system, but it isn't wise to put it # in widely accessible boxes. # # "----" f.nop # "" f.nop # "halt" f.bgcmd "/sbin/shutdown -h now" # "reboot" f.bgcmd "/sbin/shutdown -r now" } gpm-1.20.7/conf/gpm-syn.conf000066400000000000000000000030561204257734200155640ustar00rootroot00000000000000/* enabling configuration parameters */ [edge_motion_enabled] TRUE [edge_motion_speed_enabled] TRUE [corner_taps_enabled] TRUE [tap_gesture_enabled] TRUE [pressure_speed_enabled] TRUE [tossing_enabled] TRUE [does_toss_use_static_speed] TRUE /* pressure induced speed related configuration parameters */ [low_pressure] 60 [speed_up_pressure] 60 [pressure_factor] 0.10 [standard_speed_factor] 0.10 /* toss/catch related parameters */ [min_toss_time] 100 [max_toss_time] 300 [prevent_toss_time] 300 [min_toss_dist] 2 [static_toss_speed] 70 [toss_speed_factor] 0.5 /* edge motion related configuration parameters */ [edge_speed] 20 /* corner tap actions */ [upper_left_action] 0 (none) [upper_right_action] 2 (middle) [lower_left_action] 0 (none) [lower_right_action] 3 (right) /* wmode parameters */ [wmode_enabled] TRUE [drag_lock_enabled] FALSE [finger_threshold] 30 [tap_lower_limit] 5 [tap_upper_limit] 200 [tap_range] 100 [tap_interval] 200 [pads_tap_interval] 8 [multiple_tap_delay] 30 [palm_detect_enabled] TRUE [palm_detect_level] 12 [multi_finger_tap_enable] TRUE [multi_finger_stop_enabled] TRUE [multi_finger_stop_delay] 8 /* Additional options */ [touch_pad_enabled] TRUE [stick_enabled] TRUE [scrolling_enabled] TRUE [scrolling_edge] 2 [auto_scrolling_enabled] TRUE gpm-1.20.7/conf/gpm-twiddler.conf000066400000000000000000000112331204257734200165650ustar00rootroot00000000000000# # This is the configuration file for the twiddler keyboard as used under # the gpm mouse server # # Empty lines and comments are ignored, other lines must follow either # of the following conventions: # chord = value (e.g. "L000 = a") # mod chord = value (e.g. "Shift L000 = a") # # The "mod" is one of "Shift" "Numeric" "Function" "Control" "Ctrl" "Alt", # or any abbreviation of those (case independent) # The special case "Ctrl+Shift" (or "Shift+Ctrl") is supported, but note # that it can't be abbreviated like C+S or anything like that. # # The "chord" value is one of the usual specifications, uppercase only # # Value can be a single byte (also as escape sequence), a string with # double quotes (with escape sequences) or a special name (one of those # appearing as "string" in dumpkeys, and Up Down Left Right). # In addition, the strings "Console" and "Exec" are supported. See the # sample case below. # # Escape sequences are \n \r \e \t \a \b, octal ("\243") or hex ("\xff") # numbers. Any other char is returned unchanged, like \" or \\. ######## Lowercase R000 = a 0R00 = b 00R0 = c 000R = d M000 = e 0M00 = f 00M0 = g 000M = h LR00 = i L0R0 = j L00R = k LM00 = l L0M0 = m L00M = n LL00 = o L0L0 = p L00L = q MR00 = r M0R0 = s M00R = t MM00 = u M0M0 = v M00M = w ML00 = x M0L0 = y M00L = z ############## Uppercase Shift R000 = A Shift 0R00 = B Shift 00R0 = C Shift 000R = D Shift M000 = E Shift 0M00 = F Shift 00M0 = G Shift 000M = H Shift LR00 = I Shift L0R0 = J Shift L00R = K Shift LM00 = L Shift L0M0 = M Shift L00M = N Shift LL00 = O Shift L0L0 = P Shift L00L = Q Shift MR00 = R Shift M0R0 = S Shift M00R = T Shift MM00 = U Shift M0M0 = V Shift M00M = W Shift ML00 = X Shift M0L0 = Y Shift M00L = Z ######## Control Ctrl R000 = \x01 Ctrl 0R00 = \x02 Ctrl 00R0 = \x03 Ctrl 000R = \x04 Ctrl M000 = \x05 Ctrl 0M00 = \x06 Ctrl 00M0 = \x07 Ctrl 000M = \x08 Ctrl LR00 = \x09 Ctrl L0R0 = \x0a Ctrl L00R = \x0b Ctrl LM00 = \x0c Ctrl L0M0 = \x0d Ctrl L00M = \x0e Ctrl LL00 = \x0f Ctrl L0L0 = \x10 Ctrl L00L = \x11 Ctrl MR00 = \x12 Ctrl M0R0 = \x13 Ctrl M00R = \x14 Ctrl MM00 = \x15 Ctrl M0M0 = \x16 Ctrl M00M = \x17 Ctrl ML00 = \x18 Ctrl M0L0 = \x19 Ctrl M00L = \x1a ######## Meta (Alt) Meta R000 = "\ea" Meta 0R00 = "\eb" Meta 00R0 = "\ec" Meta 000R = "\ed" Meta M000 = "\ee" Meta 0M00 = "\ef" Meta 00M0 = "\eg" Meta 000M = "\eh" Meta LR00 = "\ei" Meta L0R0 = "\ej" Meta L00R = "\ek" Meta LM00 = "\el" Meta L0M0 = "\em" Meta L00M = "\en" Meta LL00 = "\eo" Meta L0L0 = "\ep" Meta L00L = "\eq" Meta MR00 = "\er" Meta M0R0 = "\es" Meta M00R = "\et" Meta MM00 = "\eu" Meta M0M0 = "\ev" Meta M00M = "\ew" Meta ML00 = "\ex" Meta M0L0 = "\ey" Meta M00L = "\ez" ##### 1b is escape, etc... RRR0 = \x1b ############### Numbers and symbols (ascii 0x20 to 0x40) L000 = " " R0L0 = ! R0M0 = " 0M0L = # 0LR0 = $ 00RM = % 0L0L = & RM00 = ' 0LL0 = ( 0RL0 = ) 00LM = * 00ML = + R0R0 = , R00L = - RR00 = . MMM0 = / Num 0L00 = 0 Num R000 = 1 Num 0R00 = 2 Num 00R0 = 3 Num 000R = 4 Num M000 = 5 Num 0M00 = 6 Num 00M0 = 7 Num 000M = 8 Num L000 = 9 00RL = : R00R = ; Num M00L = < 00MR = = Num R0R0 = > RL00 = ? 00LR = @ ############## Other symbols (ascii 0x5b to 0x60 and 0x7b to 0x7f) Num RM00 = [ LLL0 = \ Num R00M = ] Num LM00 = ^ 0R0L = _ Num R0L0 = ` Num R00L = { Num LLR0 = | Num LL0R = } Num LLM0 = ~ 0L00 = \x7f 00L0 = \x08 ############## In addition to ascii, here are the special keys # return, tab 000L = \x0a MM0M = \x09 # arrows 0MR0 = Up 0ML0 = Down 0MM0 = Left 0M0M = Right # pageup/down 00RR = Prior 00LL = Next ############## Functions Fun R000 = F1 Fun 0R00 = F2 Fun 00R0 = F3 Fun 000R = F4 Fun M000 = F5 Fun 0M00 = F6 Fun 00M0 = F7 Fun 000M = F8 Fun L000 = F9 Fun 0L00 = F10 Fun 00L0 = F11 Fun 000L = F12 ############## Console switching Ctrl+Shift R000 = Console 1 Ctrl+Shift 0R00 = Console 2 Ctrl+Shift 00R0 = Console 3 Ctrl+Shift 000R = Console 4 Ctrl+Shift M000 = Console 5 Ctrl+Shift 0M00 = Console 6 Ctrl+Shift 00M0 = Console 7 Ctrl+Shift 000M = Console 8 Ctrl+Shift L000 = Console 9 Ctrl+Shift 0L00 = Console 10 Ctrl+Shift 00L0 = Console 11 Ctrl+Shift 000L = Console 12 ############## Executing commands (be careful: this is root) # This is just an example: t for "time" and s for "space" # The empty line is used to align text on console border F M00R = Exec echo > /dev/tty0; date > /dev/tty0 F M0R0 = Exec echo > /dev/tty0; df > /dev/tty0 # you can put shutdown, reboot or anything here. ############## Macros 0RR0 = "the" 0RM0 = "of" 0R0R = "to" 0M0R = "ed" R00M = "and" 0R0M = "in" 0L0M = "ion" 00MM = "ing" ############## Add accented letters here below.... gpm-1.20.7/configure.ac.footer000066400000000000000000000073471204257734200161700ustar00rootroot00000000000000AC_REVISION(configure.in,v 1.8 2012-10-26 nico) dnl Process this file with autoconf to produce a configure script. dnl written jan/1997 - T.E.Dickey AC_PREREQ(2.61) AC_CONFIG_SRCDIR([src/daemon/main.c]) AC_CONFIG_AUX_DIR([config]) AC_CONFIG_HEADER([src/headers/config.h]) AC_CANONICAL_HOST dnl Make srcdir an absolute path. if test x$srcdir = x ; then srcdir = `pwd` else srcdir=`cd $srcdir && pwd` fi # # Versioning stuff # abi_lev="2" abi_age="1" abi_rev="0" abi_full="${abi_lev}.${abi_age}.${abi_rev}" AC_DEFINE_UNQUOTED([GPM_ABI_LEV], [$abi_lev], [Library level]) AC_DEFINE_UNQUOTED([GPM_ABI_AGE], [$abi_age], [Library age]) AC_DEFINE_UNQUOTED([GPM_ABI_REV], [$abi_rev], [Library revision]) AC_DEFINE_UNQUOTED([GPM_ABI_FULL],["$abi_full"],[Full library version]) # # Find programs # AC_PROG_CC AC_PROG_LIBTOOL AC_PROG_INSTALL AC_PROG_YACC AC_PROG_LN_S # check for programs. AC_PATH_PROG(DVIPS,dvips,no) AC_PATH_PROG(TEXI2HTML,texi2html,no) AC_PATH_PROG(TEX,tex,no) AC_PATH_PROG(TEXINDEX,texindex,no) AC_PATH_PROG(MAKEINFO,makeinfo,no) AC_PATH_PROG(DIFF,diff,no) AC_PATH_PROG(SED,sed,no) AC_PATH_PROG(emacs,emacs,no) if test ${ac_cv_path_emacs} = no ; then EMACS=: ELISP= else EMACS=${ac_cv_path_emacs} ELISP="emacs/t-mouse.el emacs/t-mouse.elc" fi if test $EMACS != : ; then ITZ_PATH_SITE_LISP lispdir=${itz_cv_path_site_lisp} else lispdir='${datadir}/emacs/site-lisp' fi # Header-checks AC_CHECK_HEADERS(syslog.h linux/input.h linux/joystick.h ncurses.h ncurses/curses.h curses.h) AC_CHECK_HEADERS(sys/sysmacros.h linux/major.h linux/tty.h) # Required headers AC_CHECK_HEADERS(sys/socket.h,,[AC_MSG_ERROR([Required header file missing])]) AC_ARG_ENABLE([static], [ --enable-static build static libraries @<:@default=no@:>@]) LIBGPM_A= AS_IF([test "x$enable_static" = "xyes"], [ LIBGPM_A=lib/libgpm.a ]) AC_ARG_WITH(curses, [ --without-curses disable curses support even if curses found]) CURSES_OBJS= case $with_curses in No|no|N|n) : ;; *) if test ${ac_cv_header_ncurses_h} = yes || test ${ac_cv_header_ncurses_curses_h} = yes || test ${ac_cv_header_curses_h} = yes ; then CURSES_OBJS=lib/libcurses.o ; fi ;; esac ITZ_CHECK_TYPE(__u32,linux/types.h) if test ${itz_cv_type___u32} = yes || test ${ac_cv_type___u32} = yes ; then AC_DEFINE(HAVE___U32, 1, [define if the __u32 type exists either in sys/types.h or in linux/types.h]) fi ITZ_SYS_ELF if test ${itz_cv_sys_elf} = yes && test x${ac_cv_prog_gcc} = xyes ; then SHLIB=libgpm.so else SHLIB= fi AC_CHECK_FUNCS(vsyslog syslog) AC_FUNC_ALLOCA case $with_curses in No|no|N|n) SHARED_LIBS=-lc ;; *) SAVELIBS=$LIBS LIBS= for i in tinfo ncurses termcap termlib; do if test x$LIBS = x; then AC_CHECK_LIB($i, tputs) else :; fi done TERMLIBS=$LIBS LIBS= for i in ncurses curses; do if test x$LIBS = x; then AC_CHECK_LIB($i, wgetch,,,$TERMLIBS) else :; fi done SHARED_LIBS="$LIBS $TERMLIBS -lc" LIBS=$SAVELIBS ;; esac GPMXTERM= AC_SUBST(GPMXTERM) AC_SUBST(abi_lev) AC_SUBST(abi_full) AC_SUBST(EMACS) AC_SUBST(ELISP) AC_SUBST(SHLIB) AC_SUBST(PICFLAGS) AC_SUBST(SOLDFLAGS) AC_SUBST(LIBGPM_A) AC_SUBST(CURSES_OBJS) AC_SUBST(SHARED_LIBS) AC_SUBST(lispdir) AC_SUBST(release) AC_SUBST(release_date) CPPFLAGS="$CPPFLAGS "'-I$(srcdir) $(DEFS) -include headers/config.h -Wall -DSYSCONFDIR="\"$(sysconfdir)\"" -DSBINDIR="\"$(sbindir)\"" -D_GNU_SOURCE' LDFLAGS="$LDFLAGS "'-L$(srcdir)' dnl AC_DEFINE_UNQUOTED(SYSCONFDIR,"$sysconfdir") dnl AC_DEFINE_UNQUOTED(SBINDIR,"$sbindir") AC_OUTPUT(Makefile.include Makefile doc/Makefile src/Makefile contrib/Makefile doc/doc.gpm) gpm-1.20.7/contrib/000077500000000000000000000000001204257734200140325ustar00rootroot00000000000000gpm-1.20.7/contrib/Makefile.in000066400000000000000000000012341204257734200160770ustar00rootroot00000000000000# -*-makefile-*- (gpm/contrib) # # Copyright (C) 2001 Nico Schottelius # srcdir = @srcdir@ top_builddir = .. include $(top_builddir)/Makefile.include all: $(srcdir)/$(ELISP) install: all if [ -n "$(ELISP)" ]; then for i in `echo $(ELISP)`; do \ $(INSTALL_DATA) $(srcdir)/$$i $(lispdir)/`basename $$i` ;\ done; fi %.elc: %.el $(EMACS) -batch -l $(srcdir)/emacs/exec.el -exec '(byte-compile-file "$<")' uninstall: if [ -n "$(ELISP)" ]; then for i in `echo $(ELISP)`; do \ rm -f $(lispdir)/$$i ;\ done; fi dist: $(CP) -r $(srcdir) $(top_builddir)/gpm-$(release)/ clean distclean: $(RM) -f $(srcdir)/emacs/*.elc Makefile gpm-1.20.7/contrib/emacs/000077500000000000000000000000001204257734200151225ustar00rootroot00000000000000gpm-1.20.7/contrib/emacs/exec.el000066400000000000000000000002671204257734200163750ustar00rootroot00000000000000(setq command-switch-alist '( ("-exec" . cmdline-exec))) (defun cmdline-exec (name) (eval (car (read-from-string (car command-line-args-left)))) ) gpm-1.20.7/contrib/emacs/t-mouse.el000066400000000000000000000327421204257734200170450ustar00rootroot00000000000000;;; t-mouse.el --- mouse support within the text terminal ;;; Copyright (C) 1994,1995 Alessandro Rubini ;;; parts are by Ian T Zimmermann , 1995,1998 ;; Maintainer: gpm mailing list: gpm@prosa.it ;; Keywords: mouse gpm linux ;;; 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 GNU Emacs; see the file COPYING. If not, write to ;;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. ;;; Commentary: ;; This package provides access to mouse event as reported by the ;; gpm-Linux package. It uses the program "mev" to get mouse events. ;; It tries to reproduce the functionality offered by emacs under X. ;; The "gpm" server runs under Linux, so this package is rather ;; Linux-dependent. ;; Developed for GNU Emacs 19.34, likely won't work with many others ;; too much internals dependent cruft here. (require 'advice) (defvar t-mouse-process nil "Embeds the process which passes mouse events to emacs. It is used by the program t-mouse.") (defvar t-mouse-filter-accumulator "" "Accumulates input from the mouse reporting process.") (defvar t-mouse-debug-buffer nil "Events normally posted to command queue are printed here in debug mode. See `t-mouse-start-debug'.") (defvar t-mouse-current-xy '(0 . 0) "Stores the last mouse position t-mouse has been told about.") (defvar t-mouse-drag-start nil "Whenever a drag starts in a special part of a window (not the text), the `translated' starting coordinates including the window and part involved are saved here. This is necessary lest they get re-translated when the button goes up, at which time window configuration may have changed.") (defvar t-mouse-prev-set-selection-function 'x-set-selection) (defvar t-mouse-prev-get-selection-function 'x-get-selection) (defvar t-mouse-swap-alt-keys nil "When set, Emacs will handle mouse events with the right Alt (a.k.a. Alt-Ger) modifier, not with the regular left Alt modifier. Useful for people who play strange games with their keyboard tables.") (defvar t-mouse-fix-21 nil "Enable brain-dead chords for 2 button mice.") ;;; Code: ;; get the number of the current virtual console (defun t-mouse-tty () "Returns number of virtual terminal Emacs is running on, as a string. For example, \"2\" for /dev/tty2." (let ((buffer (generate-new-buffer "*t-mouse*"))) (call-process "ps" nil buffer nil "h" (format "%s" (emacs-pid))) (prog1 (save-excursion (set-buffer buffer) (goto-char (point-min)) (if (or ;; Many versions of "ps", all different.... (re-search-forward " +tty\\(.?[0-9a-f]\\)" nil t) (re-search-forward "p \\([0-9a-f]\\)" nil t) (re-search-forward "v0\\([0-9a-f]\\)" nil t) (re-search-forward "[0-9]+ +\\([0-9]+\\)" nil t) (re-search-forward "[\\t ]*[0-9]+[\\t ]+\\([0-9]+\\)" nil t)) (buffer-substring (match-beginning 1) (match-end 1)))) (kill-buffer buffer)))) ;; due to a horrible kludge in Emacs' keymap handler ;; (read_key_sequence) mouse clicks on funny parts of windows generate ;; TWO events, the first being a dummy of the sort '(mode-line). ;; That's why Per Abrahamsen's code in xt-mouse.el doesn't work for ;; the modeline, for instance. ;; now get this: the Emacs C code that generates these fake events ;; depends on certain things done by the very lowest level input ;; handlers; namely the symbols for the events (for instance ;; 'C-S-double-mouse-2) must have an 'event-kind property, set to ;; 'mouse-click. Since events from unread-command-events do not pass ;; through the low level handlers, they don't get this property unless ;; I set it myself. I imagine this has caused innumerable attempts by ;; hackers to do things similar to t-mouse to lose. ;; The next page of code is devoted to fixing this ugly problem. ;; WOW! a fully general powerset generator ;; (C) Ian Zimmerman Mon Mar 23 12:00:16 PST 1998 :-) (defun t-mouse-powerset (l) (if (null l) '(nil) (let ((l1 (t-mouse-powerset (cdr l))) (first (nth 0 l))) (append (mapcar (function (lambda (l) (cons first l))) l1) l1)))) ;; and a slightly less general cartesian product (defun t-mouse-cartesian (l1 l2) (if (null l1) l2 (append (mapcar (function (lambda (x) (append (nth 0 l1) x))) l2) (t-mouse-cartesian (cdr l1) l2)))) (let* ((modifier-sets (t-mouse-powerset '(control meta shift))) (typed-sets (t-mouse-cartesian '((down) (drag)) '((mouse-1) (mouse-2) (mouse-3)))) (multipled-sets (t-mouse-cartesian '((double) (triple)) typed-sets)) (all-sets (t-mouse-cartesian modifier-sets multipled-sets))) (while all-sets (let ((event-sym (event-convert-list (nth 0 all-sets)))) (if (not (get event-sym 'event-kind)) (put event-sym 'event-kind 'mouse-click))) (setq all-sets (cdr all-sets)))) ;;; This fun is partly Copyright (C) 1994 Per Abrahamsen ;; This is basically a feeble attempt to mimic what the c function ;; buffer_posn_from_coords in dispnew.c does. I wish that function ;; were exported to Lisp. (defun t-mouse-lispy-buffer-posn-from-coords (w col line) "Return buffer position of character at COL and LINE within window W. COL and LINE are glyph coordinates, relative to W topleft corner." (save-window-excursion (select-window w) (save-excursion (move-to-window-line line) (move-to-column (+ col (current-column) (if (not (window-minibuffer-p w)) 0 (- (minibuffer-prompt-width))) (max 0 (1- (window-hscroll))))) (point)))) ;; compute one element of the form (WINDOW BUFFERPOS (COL . ROW) TIMESTAMP) (defun t-mouse-make-event-element (x-dot-y-avec-time) (let* ((x-dot-y (nth 0 x-dot-y-avec-time)) (x (car x-dot-y)) (y (cdr x-dot-y)) (timestamp (nth 1 x-dot-y-avec-time)) (w (window-at x y)) (left-top-right-bottom (window-edges w)) (left (nth 0 left-top-right-bottom)) (top (nth 1 left-top-right-bottom)) (right (nth 2 left-top-right-bottom)) (bottom (nth 3 left-top-right-bottom)) (coords-or-part (coordinates-in-window-p x-dot-y w))) (cond ((consp coords-or-part) (let ((wx (car coords-or-part)) (wy (cdr coords-or-part))) (if (< wx (- right left 1)) (list w (t-mouse-lispy-buffer-posn-from-coords w wx wy) coords-or-part timestamp) (list w 'vertical-scroll-bar (cons (1+ wy) (- bottom top)) timestamp)))) ((eq coords-or-part 'mode-line) (list w 'mode-line (cons (- x left) 0) timestamp)) ((eq coords-or-part 'vertical-line) (list w 'vertical-line (cons 0 (- y top)) timestamp))))) ;;; This fun is partly Copyright (C) 1994 Per Abrahamsen (defun t-mouse-make-event () "Makes a Lisp style event from the contents of mouse input accumulator. Also trims the accumulator by all the data used to build the event." (let (ob (ob-pos (condition-case nil (read-from-string t-mouse-filter-accumulator) (error nil)))) (if (not ob-pos) nil (setq ob (car ob-pos)) (setq t-mouse-filter-accumulator (substring t-mouse-filter-accumulator (cdr ob-pos))) ;;now the real work (let ((event-type (nth 0 ob)) (current-xy-avec-time (nth 1 ob)) (type-switch (length ob))) (if t-mouse-fix-21 (let ;;Acquire the event's symbol's name. ((event-name-string (symbol-name event-type)) end-of-root-event-name new-event-name-string) (if (string-match "-\\(21\\|\\12\\)$" event-name-string) ;;Transform the name to what it should have been. (progn (setq end-of-root-event-name (match-beginning 0)) (setq new-event-name-string (concat (substring event-name-string 0 end-of-root-event-name) "-3")) ;;Change the event to the symbol that corresponds to the ;;name we made. The proper symbol already exists. (setq event-type (intern new-event-name-string)))))) ;;store current position for mouse-position (setq t-mouse-current-xy (nth 0 current-xy-avec-time)) ;;events have many types but fortunately they differ in length (cond ;;sink all events on the stupid text mode menubar. ((and menu-bar-mode (eq 0 (cdr t-mouse-current-xy))) nil) ((= type-switch 4) ;must be drag (let ((count (nth 2 ob)) (start-element (or t-mouse-drag-start (t-mouse-make-event-element (nth 3 ob)))) (end-element (t-mouse-make-event-element current-xy-avec-time))) (setq t-mouse-drag-start nil) (list event-type start-element end-element count))) ((= type-switch 3) ;down or up (let ((count (nth 2 ob)) (element (t-mouse-make-event-element current-xy-avec-time))) (if (and (not t-mouse-drag-start) (symbolp (nth 1 element))) ;; OUCH! GOTCHA! emacs uses setc[ad]r on these! (setq t-mouse-drag-start (copy-sequence element)) (setq t-mouse-drag-start nil)) (list event-type element count))) ((= type-switch 2) ;movement (list (if (eq 'vertical-scroll-bar (nth 1 t-mouse-drag-start)) 'scroll-bar-movement 'mouse-movement) (t-mouse-make-event-element current-xy-avec-time)))))))) (defun t-mouse-process-filter (proc string) (setq t-mouse-filter-accumulator (concat t-mouse-filter-accumulator string)) (let ((event (t-mouse-make-event))) (while event (if (or track-mouse (not (eq 'mouse-movement (event-basic-type event)))) (setq unread-command-events (nconc unread-command-events (list event)))) (if t-mouse-debug-buffer (print unread-command-events t-mouse-debug-buffer)) (setq event (t-mouse-make-event))))) ;; this overrides a C function which stupidly assumes (no X => no mouse) (defadvice mouse-position (around t-mouse-mouse-position activate) "Return the t-mouse-position unless running with a window system. The (secret) scrollbar interface is not implemented yet." (if (not window-system) (setq ad-return-value (cons (selected-frame) t-mouse-current-xy)) ad-do-it)) (setq mouse-sel-set-selection-function (function (lambda (type value) (if (not window-system) (if (eq 'PRIMARY type) (kill-new value)) (funcall t-mouse-prev-set-selection-function type value))))) (setq mouse-sel-get-selection-function (function (lambda (type) (if (not window-system) (if (eq 'PRIMARY type) (current-kill 0) "") (funcall t-mouse-prev-get-selection-function type))))) ;; It should be possible to just send SIGTSTP to the inferior with ;; stop-process. That doesn't work; mev receives the signal fine but ;; is not really stopped: instead it returns from ;; kill(getpid(), SIGTSTP) immediately. I don't understand what's up ;; itz Tue Mar 24 14:27:38 PST 1998. (add-hook 'suspend-hook (function (lambda () (and t-mouse-process ;(stop-process t-mouse-process) (process-send-string t-mouse-process "push -enone -dall -Mnone\n"))))) (add-hook 'suspend-resume-hook (function (lambda () (and t-mouse-process ;(continue-process t-mouse-process) (process-send-string t-mouse-process "pop\n"))))) ;;; User commands (defun t-mouse-stop () "Stop getting mouse events from an asynchronous process." (interactive) (delete-process t-mouse-process) (setq t-mouse-process nil)) (defun t-mouse-run () "Starts getting a stream of mouse events from an asynchronous process. Only works if Emacs is running on a virtual terminal without a window system. Returns the newly created asynchronous process." (interactive) (let ((tty (t-mouse-tty)) (process-connection-type t)) (if (or window-system (not (stringp tty))) (error "Run t-mouse on a virtual terminal without a window system")) (setq t-mouse-process (start-process "t-mouse" nil "mev" "-i" "-E" "-C" tty (if t-mouse-swap-alt-keys "-M-leftAlt" "-M-rightAlt") "-e-move" "-dall" "-d-hard" "-f"))) (setq t-mouse-filter-accumulator "") (set-process-filter t-mouse-process 't-mouse-process-filter) (process-kill-without-query t-mouse-process) t-mouse-process) (provide 't-mouse) ;;; t-mouse.el ends here gpm-1.20.7/contrib/init/000077500000000000000000000000001204257734200147755ustar00rootroot00000000000000gpm-1.20.7/contrib/init/gpm.init000077500000000000000000000023241204257734200164510ustar00rootroot00000000000000#!/bin/sh # $Id: gpm.init,v 1.2 2002/05/28 19:13:51 nico Exp $ # # chkconfig: 2345 85 15 # description: \ # gpm provides mouse support to text-based Linux applications as \ # well as console cut-and-paste operations using the mouse. # # processname: gpm # pidfile: /var/run/gpm.pid # config: /etc/sysconfig/mouse # source function library . /etc/init.d/functions OWL_STARTUP_ENABLE=1 MOUSECFG=/etc/sysconfig/mouse case "$1" in start) if [ -f "$MOUSECFG" ]; then . "$MOUSECFG" else MOUSETYPE="none" fi if [ "$MOUSETYPE" = "none" ]; then echo "Not starting gpm (no mouse is configured)" exit 0 fi if [ "$MOUSETYPE" = "Microsoft" ]; then MOUSETYPE=ms fi if [ -n "$MOUSETYPE" ]; then GPM_ARG="-t $MOUSETYPE" else GPM_ARG="" fi if [ "0$OWL_STARTUP_VERSION" -ge 3 ]; then daemon --pidfile /var/run/gpm.pid --expect-user root \ -- gpm "$GPM_ARG" else daemon gpm "$GPM_ARG" fi ;; stop) if [ "0$OWL_STARTUP_VERSION" -ge 3 ]; then killproc --pidfile /var/run/gpm.pid --expect-user root gpm else killproc gpm fi ;; restart|reload) $0 stop $0 start ;; status) status --pidfile /var/run/gpm.pid --expect-user root gpm ;; *) echo "Usage: gpm {start|stop|restart|status}" exit 1 esac exit $? gpm-1.20.7/contrib/other/000077500000000000000000000000001204257734200151535ustar00rootroot00000000000000gpm-1.20.7/contrib/other/README000066400000000000000000000001711204257734200160320ustar00rootroot00000000000000Have a look into MANIFEST for more informations. README - this file TPdetect.cc - sample TP detection gpm-1.20.7/contrib/other/TPdetect.cc000066400000000000000000000134711204257734200172040ustar00rootroot00000000000000#include #include #include #include #include unsigned char* inbuffer; unsigned char* outbuffer; // wait for up to 0.1seconds for an acknowledgement int getack(int fd) { fd_set set; timeval timeout; FD_ZERO(&set); FD_SET(fd,&set); timeout.tv_sec=0; timeout.tv_usec=100000; if (select(FD_SETSIZE,&set,NULL,NULL,&timeout)) { int b=read(fd,inbuffer,1); if(b==1) { if(inbuffer[0]==0xfa) { //printf("<< Acknowledged\r\n"); return 1; } else if (inbuffer[0]=0xfe) printf("<- PS/2: Error\r\n"); else printf("<- Not an acknowledgement:%02x\r\n",inbuffer[0]); }; }; return 0; }; // Try to receive n bytes int receive(int fd,int n) { int a=0,b; while(a TP: Send extended ID\r\n"); command(fd,0xe1); if (! getack(fd)) { if(inbuffer[0]==0xfe) { // give it a second try command(fd,0xe1); if(getack(fd)) goto ack; } printf("No trackpoint controller detected\r\n"); return 0; } ack: int a=0; while(select(FD_SETSIZE,&set,NULL,NULL,&timeout)) { read(fd,inbuffer+a,1); a++; } char * version; if(inbuffer[0]==0x01) { switch(inbuffer[1]) { case 0x01: version = "8E/98"; break; case 0x02: version = "A4"; break; case 0x03: version = "AB"; break; case 0x04: version = "03"; break; case 0x05: version = "B2/B4"; break; case 0x06: version = "B1/B3/B5/B8/2B"; break; case 0x07: version = "?"; break; case 0x08: version = "?"; break; case 0x09: version = "?"; break; case 0x0A: version = "35"; break; case 0x0B: version = "3A/3B"; break; case 0x0C: version = "3C"; break; case 0x0D: version = "3D"; break; case 0x0E: version = "3E"; break; default: printf("Unrecognized ID: %02x\n",inbuffer[1]); return 0; } printf("IBM Trackpoint controller detected. Version %s \r\n",version); return 1; } else { printf("No IBM trackpoint controller detected\r\n"); printf("Extended ID: %02x %02x\r\n",inbuffer[0],inbuffer[1]); return 0; } } // Reset PS/2 device int reset(int fd) { command(fd,0xff); printf("-> PS/2: Reset\r\n"); getack(fd); receive(fd,2); if(inbuffer[0]==0xaa && inbuffer[1]==0x00) { printf("<- PS/2: Succesfull initialization\r\n"); return 1; } else return 0; } // Get PS/2 ID int getdeviceid(int fd) { command(fd,0xf2); getack(fd); printf("-> PS/2: Get device ID\r\n"); if(receive(fd,1)==1) { printf("<- PS/2: Device ID: %02x\n",inbuffer[0]); return inbuffer[0]; } } void enabledatareport(int fd) { command(fd, 0xf4); printf("-> PS/2: (re)Enable data-reporting\r\n"); getack(fd); } void disabledatareport(int fd) { command(fd, 0xf5); printf("-> PS/2: Disable data-reporting\r\n"); getack(fd); } void setsamplerate(int fd, int rate) { command(fd,0xf3); printf("-> PS/2: Set sample rate: %u\r\n",rate); getack(fd); command(fd,rate); getack(fd); } void setresolution(int fd, int res) { command(fd,0xe8); printf("-> PS/2: Set resolution: %u\r\n",res); getack(fd); command(fd,res); getack(fd); } void getstatus(int fd) { command(fd,0xe9); printf("-> Send status\r\n"); receive(fd,3); printf("<- Status is: 0x%02x,0x%02x,0x%02x\n",inbuffer[0],inbuffer[1],inbuffer[2]); } void getlogiid(int fd) { receive(fd,3); unsigned char a = inbuffer[0]; unsigned char id = ((a >> 4) & 0x07) | ((a<<3) & 0x78); printf("Logi-id: %d\r\n", id); }; // Put trackpoint device into transparent mode void enabletransparent(int fd) { command(fd,0xe2); getack(fd); command(fd,0x4e); getack(fd); printf("-> TP: Set soft-transparent\r\n"); } // Get trackpoint device out of transparent mode // Notice the command gives not-ack because its in transparent mode, // just ignore these. After the command finishes to acknowledges are sent. void disabletransparent(int fd) { command(fd,0xe2); //getack(fd); command(fd,0xb9); getack(fd); printf("-> TP: Cancel soft-transparent\r\n"); } // Detect external device on trackpoint controller bool detectExternal(int fd) { command(fd,0xe2); getack(fd); command(fd,0x21); getack(fd); receive(fd,1); if(inbuffer[0] && 8) { printf("<- TP: External device present\r\n"); return true; } else { printf("<- TP: No external device\r\n"); return false; } } // IMPS/2 magic-initialization and detection bool detectIMPS(int fd) { setsamplerate(fd,200); setsamplerate(fd,100); setsamplerate(fd,80); if(getdeviceid(fd)==3) { printf("IMPS/2 mouse detected\r\n"); } } int main() { inbuffer = new unsigned char[200]; outbuffer = new unsigned char[200]; int fd = open("/dev/psaux", O_RDWR); reset(fd); // If kernel<2.4.9 remember to disable datareport, // in later kernels reset is enough disabledatareport(fd); sleep(1); // make sure we dont get any more confusing datareports. if(detectTP(fd)) { if(detectExternal(fd)) { enabletransparent(fd); if(! detectIMPS(fd)) disabletransparent(fd); setsamplerate(fd,200); } } else detectIMPS(fd); enabledatareport(fd); close(fd); } gpm-1.20.7/contrib/scripts/000077500000000000000000000000001204257734200155215ustar00rootroot00000000000000gpm-1.20.7/contrib/scripts/create_vcs000077500000000000000000000010371204257734200175660ustar00rootroot00000000000000#! /bin/sh # # Script by Jakub Jelinek # Modified by Ian Zimmerman to reflect names from # kernel device list # $Id: create_vcs,v 1.2 2002/05/28 19:13:52 nico Exp $ if test -e /dev/vcs0 || test -e /dev/vcs then exit fi I=0 while [ $I -lt 25 ] do mknod /dev/vcs$I c 7 $I chmod 622 /dev/vcs$I chown root.tty /dev/vcs$I mknod /dev/vcsa$I c 7 `expr $I + 128` chmod 622 /dev/vcsa$I chown root.tty /dev/vcsa$I I=`expr $I + 1` done ln -s vcs0 /dev/vcs ln -s vcsa0 /dev/vcsa gpm-1.20.7/contrib/scripts/debug_to_report000077500000000000000000000004441204257734200206340ustar00rootroot00000000000000 cat $1 | sed 's/gpm_debug_log/gpm_report/g' > $1.tmp cat $1.tmp | sed 's/LOG_NOTICE/GPM_PR_INFO/g' > $1.tmp2 cat $1.tmp2 | sed 's/LOG_ERR/GPM_PR_ERR/g' > $1.tmp cat $1.tmp | sed 's/LOG_WARN/GPM_PR_WARN/g' > $1.tmp2 cat $1.tmp2 | sed 's/LOG_DEBUG/GPM_PR_DEBUG/g' > $1.tmp echo "done:" $1.tmp gpm-1.20.7/contrib/scripts/gpm_release000077500000000000000000000014701204257734200177340ustar00rootroot00000000000000#!/bin/sh # # Date: 26th of September 2001 # Description: still missing # Author: Nico Schottelius (nicos@pcsystems.de), 26th of September 2001 # Copying: GPL 2.0 # if [ $# -ne 1 ]; then echo `basename $0`': dir' echo 'Hey, hey guy, what to release ?' exit 1 fi if [ ! -d $1 ]; then echo `basename $0`': dir' echo 'HEY! DIRECTORY! We need a gpm directory!' exit 1 fi version=`echo $1 | sed 's/\/$//' | sed 's/gpm-//'` echo -n "Releasing gpm-$version ..." cd $1 cat configure.in | sed "s/release=.\*/release=$version/" > configure.on mv configure.on configure.in autoconf cat src/headers/gpmCfg.h | sed "s/\(#define GPM_DATE\).*/\1 \"`date`\"/" > src/headers/gpmCfg.i; mv src/headers/gpmCfg.i src/headers/gpmCfg.h cd .. tar cfz gpm-$version.tar.gz $1 tar cfI gpm-$version.tar.bz2 $1 echo done. gpm-1.20.7/contrib/scripts/gunze-setup000077500000000000000000000170461204257734200177450ustar00rootroot00000000000000#!/bin/sh # # gunze-setup, copied and adapted from microtouch-setup. # Most of this code is duplicated, this is definitely not good. # # This program is execute by tclsh if we are in the console, and by wish # otherwise (assuming we are under a graphic environment #the following is a comment for tcl \ if [ $TERM = "linux" ] ; then exec tclsh $0 $* ; fi #the following is another comment for tcl \ exec wish $0 $* ########### That's Tcl... # The Gunze touchscreens don't adapt their output to calibration, so # we must save calibration information somewhere... set datafile /etc/gpm-calibration puts "Calibration program for Gunze touch-screens" # check generic permission set who [exec whoami] if [string compare $who root] { puts stderr "you must be root to be able to run this program" } # check if we can access this file if [catch {set F [open $datafile a]} err] { puts stderr "$argv0: Can't open $datafile: $err" exit 1 } close $F # Look for /dev/touchscreen or /dev/mouse if [file exists /dev/mouse] { set dev /dev/mouse } if [file exists /dev/touchscreen] { set dev /dev/touchscreen } if ![info exists dev] { puts stderr "$argv0: need to access /dev/touchscreen or /dev/mouse" exit 1 } # horrible, for the linux console proc goto {x y} { set x [expr $x] set y [expr $y] puts -nonewline [format "\x1B\[%03i;%03iH" $y $x] } # an abort procedure, and one to read touchscreen data proc do_abort {msg} { if ![string compare $env(TERM) linux] { goto 0 $env(LINES)-2 } else { wm withdraw . } puts stderr $msg killall -CONT gpm exit 1 } proc get_position file { global dev while 1 { gets $file string if [scan $string %c%d,%d cmd x y]!=3 { do_abort "Received wrong data \"$string\" from $dev" } # If release ('R') it's done if $cmd==0x52 { return "$sx $sy" } # If a touch event ('T'), save it if $cmd==0x54 { set sx $x; set sy $y } else { do_abort "Received wrong data \"$string\" from $dev" } } } if ![string compare $env(TERM) linux] { # Text-mode calibration if {![info exists env(COLUMNS)] || ![info exists env(LINES)]} { puts stderr "Please set COLUMNS and LINES in your environment" puts stderr " for example, you can issue" puts stderr " eval `resize`" puts stderr " in your shell before running this program" exit 1 } fconfigure stdout -buffering none exec clear > /dev/tty # To calibrate, draw targets at 1/8 and 7/8 x-y set x [expr $env(COLUMNS)/8] set y [expr $env(LINES)/8] set X [expr $env(COLUMNS) - $x] set Y [expr $env(LINES) - $y] # half x and y set hx [expr $env(COLUMNS)/2] set hy [expr $env(LINES)/2] goto $hx-10 $hy-1; puts -nonewline "Please touch the lower" goto $hx-10 $hy-0; puts -nonewline "left target, then the" goto $hx-10 $hy+1; puts -nonewline "upper right target." exec killall -STOP gpm set F [open $dev r+]; # $dev is /dev/touchscreen or /dev/mouse fconfigure $F -buffering none -translation auto # Draw the target goto $x $Y-1; puts -nonewline "|" goto $x-1 $Y; puts -nonewline "-+-" goto $x $Y+1; puts -nonewline "|" # Read coordinates set first [get_position $F] #remove the target, draw the other goto $x $Y-1; puts -nonewline " " goto $x-1 $Y; puts -nonewline " " goto $x $Y+1; puts -nonewline " " goto $X $y-1; puts -nonewline "|" goto $X-1 $y; puts -nonewline "-+-" goto $X $y+1; puts -nonewline "|" # Read coordinates set second [get_position $F] # remove the target goto $X $y-1; puts -nonewline " " goto $X-1 $y; puts -nonewline " " goto $X $y+1; puts -nonewline " " close $F exec killall -CONT gpm goto 0 $env(LINES)-2 # Now save the coordinates set F [open $datafile w] puts $F "# Calibration coordinates for Gunze device" puts $F "$first $second" close $F puts "Done" exit 0 } # X calibration. This is Tk, so we can use the canvas items. # However, there is uncertainty about the absolute X and Y... set wid [winfo screenwidth .] set hei [winfo screenheight .] wm geometry . ${wid}x${hei}+0+0 set x [expr $wid/8] set y [expr $hei/8] set X [expr $wid - $x] set Y [expr $hei - $y] set hx [expr $wid/2] set hy [expr $hei/2] set cwid [expr 2*$x] set chei [expr 2*$y] # The offset variables account for window manager borders etc set xoff1 0 set yoff1 0 set xoff2 0 set yoff2 0 proc recanvas {} { global x y X Y xoff1 xoff2 yoff1 yoff2 catch {.l.c delete line} catch {.r.c delete line} set x1 [expr $x-$xoff1] set y1 [expr $Y-$yoff1] set x2 [expr $X-$xoff2] set y2 [expr $y-$yoff2] .l.c create line [expr $x1-50] $y1 [expr $x1+50] $y1 \ -width 3 -fill red -tag line .l.c create line $x1 [expr $y1-50] $x1 [expr $y1+50] \ -width 3 -fill red -tag line .r.c create line [expr $x2-50] $y2 [expr $x2+50] $y2 \ -width 3 -fill red -tag line .r.c create line $x2 [expr $y2-50] $x2 [expr $y2+50] \ -width 3 -fill red -tag line } pack [frame .l] -side left -expand true -fill both pack [frame .m] -side left -expand true -fill both pack [frame .r] -side left -expand true -fill both pack [canvas .l.c -width $cwid -hei $chei -scrollregion "0 0 $cwid $chei" \ ] -side bottom pack [frame .l.f] -expand true -fill both; #filler pack [canvas .r.c -width $cwid -hei $chei -scrollregion "0 0 $cwid $chei" \ ] -side top pack [frame .r.f] -expand true -fill both; #filler pack [label .m.t -text "Gunze Calibrator" -foreground blue] -pady 40 pack [label .m.l -bd 5 -relief raised] -expand true -fill both pack [label .m.s] -expand true -fill both bind .l.c { set xoff1 [expr %X - %x] set yoff1 [expr %Y - %y] set x1 [expr $x-$xoff1] set y1 [expr $Y-$yoff1] catch {.l.c delete line} .l.c create line [expr $x1-50] $y1 [expr $x1+50] $y1 \ -width 3 -fill red -tag line .l.c create line $x1 [expr $y1-50] $x1 [expr $y1+50] \ -width 3 -fill red -tag line set done1 1 update } bind .r.c { set xoff2 [expr %X - %x] set yoff2 [expr %Y - %y] set x2 [expr $X-$xoff2] set y2 [expr $y-$yoff2] catch {.r.c delete line} .r.c create line [expr $x2-50] $y2 [expr $x2+50] $y2 \ -width 3 -fill red -tag line .r.c create line $x2 [expr $y2-50] $x2 [expr $y2+50] \ -width 3 -fill red -tag line set done2 1 update } set done1 0; set done2 0 update .m.l config -text "Please move the mouse towards\n\ the lower left corner, until a cross\n\ appears (there's no need to click)" vwait done1 update if !$done2 { .m.l config -text "Please move the mouse towards\n\ the upper right corner, until a cross\n\ appears (there's no need to click)" vwait done2 } .m.l config -text "\nWait....\n" after 1000 .m.l config -text "Please touch the lower-left taget\n\ and then the upper-right target\n\ to calibrate the touch screen" update exec killall -STOP gpm set F [open $dev r+]; # $dev is /dev/touchscreen or /dev/mouse fconfigure $F -buffering none -translation auto .m.s configure -text "Calibration started" update # Read coordinates set first [get_position $F] .l.c itemco line -fill green .m.s configure -text "First target ok" update # Read coordinates set second [get_position $F] .r.c itemco line -fill green .m.s configure -text "Second target ok" update close $F exec killall -CONT gpm # Now save the coordinates set F [open $datafile w] puts $F "# Calibration coordinates for Gunze device" puts $F "$first $second" close $F after 1000 .m.s configure -text "" pack [button .m.b -text Ok -command exit] exit 0 gpm-1.20.7/contrib/scripts/make_diff000077500000000000000000000003001204257734200173450ustar00rootroot00000000000000#!/bin/sh # Date: 3rd of October 2001 # Description: still missing # Author: Nico Schottelius (nicos@pcsystems.de), 3rd of October 2001 # Copying: GPL 2.0 # diff -u --recursive --new-file $@ gpm-1.20.7/contrib/scripts/microtouch-setup000077500000000000000000000140501204257734200207610ustar00rootroot00000000000000#!/bin/sh # # This program is execute by tclsh if we are in the console, and by wish # otherwise (assuming we are under a graphic environment #the following is a comment for tcl \ if [ $TERM = "linux" ] ; then exec tclsh $0 $* ; fi #the following is another comment for tcl \ exec wish $0 $* ########### That's Tcl... puts "Calibration program for Microtouch screens" set who [exec whoami] if [string compare $who root] { puts stderr "you must be root to be able to run this program" } if ![string compare $env(TERM) linux] { # Text-mode calibration if {![info exists env(COLUMNS)] || ![info exists env(LINES)]} { puts stderr "Please set COLUMNS and LINES in your environment" puts stderr " for example, you can issue" puts stderr " eval `resize`" puts stderr " in your shell before running this program" exit 1 } fconfigure stdout -buffering none exec clear > /dev/tty proc goto {x y} { set x [expr $x] set y [expr $y] puts -nonewline [format "\x1B\[%03i;%03iH" $y $x] } # To use "calibrate extended we must draw targets at 1/8 and 7/8 x-y set x [expr $env(COLUMNS)/8] set y [expr $env(LINES)/8] set X [expr $env(COLUMNS) - $x] set Y [expr $env(LINES) - $y] # half x and y set hx [expr $env(COLUMNS)/2] set hy [expr $env(LINES)/2] goto $hx-10 $hy-1; puts -nonewline "Please touch the lower" goto $hx-10 $hy-0; puts -nonewline "left target, then the" goto $hx-10 $hy+1; puts -nonewline "upper right target." exec killall -STOP gpm set F [open /dev/mouse r+] fconfigure $F -buffering none puts $F "\1CX\r" set ack [gets $F]; # Acknowledge goto $hx-18 $hy+3; puts -nonewline "received acknowledge: please start" goto $x $Y-1; puts -nonewline "|" goto $x-1 $Y; puts -nonewline "-+-" goto $x $Y+1; puts -nonewline "|" set ack [gets $F]; # First calibration point goto $hx-5 $hy+4; puts -nonewline "received acknowledge: please go on" #remove the target, draw the other goto $x $Y-1; puts -nonewline " " goto $x-1 $Y; puts -nonewline " " goto $x $Y+1; puts -nonewline " " goto $X $y-1; puts -nonewline "|" goto $X-1 $y; puts -nonewline "-+-" goto $X $y+1; puts -nonewline "|" set ack [gets $F]; # Next calibration point goto $hx-5 $hy+5; puts -nonewline "received acknowledge: looks ok" goto $X $y-1; puts -nonewline " " goto $X-1 $y; puts -nonewline " " goto $X $y+1; puts -nonewline " " close $F exec killall -CONT gpm goto 0 $env(LINES)-2 puts "Done" exit 0 } # X calibration. This is Tk, so we can use the canvas items. # However, there is uncertainty about the absolute X and Y... set wid [winfo screenwidth .] set hei [winfo screenheight .] wm geometry . ${wid}x${hei}+0+0 set x [expr $wid/8] set y [expr $hei/8] set X [expr $wid - $x] set Y [expr $hei - $y] set hx [expr $wid/2] set hy [expr $hei/2] set cwid [expr 2*$x] set chei [expr 2*$y] # The offset variables account for window manager borders etc set xoff1 0 set yoff1 0 set xoff2 0 set yoff2 0 proc recanvas {} { global x y X Y xoff1 xoff2 yoff1 yoff2 catch {.l.c delete line} catch {.r.c delete line} set x1 [expr $x-$xoff1] set y1 [expr $Y-$yoff1] set x2 [expr $X-$xoff2] set y2 [expr $y-$yoff2] .l.c create line [expr $x1-50] $y1 [expr $x1+50] $y1 \ -width 3 -fill red -tag line .l.c create line $x1 [expr $y1-50] $x1 [expr $y1+50] \ -width 3 -fill red -tag line .r.c create line [expr $x2-50] $y2 [expr $x2+50] $y2 \ -width 3 -fill red -tag line .r.c create line $x2 [expr $y2-50] $x2 [expr $y2+50] \ -width 3 -fill red -tag line } pack [frame .l] -side left -expand true -fill both pack [frame .m] -side left -expand true -fill both pack [frame .r] -side left -expand true -fill both pack [canvas .l.c -width $cwid -hei $chei -scrollregion "0 0 $cwid $chei" \ ] -side bottom pack [frame .l.f] -expand true -fill both; #filler pack [canvas .r.c -width $cwid -hei $chei -scrollregion "0 0 $cwid $chei" \ ] -side top pack [frame .r.f] -expand true -fill both; #filler pack [label .m.t -text "MicroTouch Calibrator" -foreground blue] -pady 40 pack [label .m.l -bd 5 -relief raised] -expand true -fill both pack [label .m.s] -expand true -fill both bind .l.c { set xoff1 [expr %X - %x] set yoff1 [expr %Y - %y] set x1 [expr $x-$xoff1] set y1 [expr $Y-$yoff1] catch {.l.c delete line} .l.c create line [expr $x1-50] $y1 [expr $x1+50] $y1 \ -width 3 -fill red -tag line .l.c create line $x1 [expr $y1-50] $x1 [expr $y1+50] \ -width 3 -fill red -tag line set done1 1 update } bind .r.c { set xoff2 [expr %X - %x] set yoff2 [expr %Y - %y] set x2 [expr $X-$xoff2] set y2 [expr $y-$yoff2] catch {.r.c delete line} .r.c create line [expr $x2-50] $y2 [expr $x2+50] $y2 \ -width 3 -fill red -tag line .r.c create line $x2 [expr $y2-50] $x2 [expr $y2+50] \ -width 3 -fill red -tag line set done2 1 update } set done1 0; set done2 0 update .m.l config -text "Please move the mouse towards\n\ the lower left corner, until a cross\n\ appears (there's no need to click)" vwait done1 update if !$done2 { .m.l config -text "Please move the mouse towards\n\ the upper right corner, until a cross\n\ appears (there's no need to click)" vwait done2 } .m.l config -text "\nWait....\n" after 1000 .m.l config -text "Please touch the lower-left taget\n\ and then the upper-right target\n\ to calibrate the touch screen" update exec killall -STOP gpm set F [open /dev/mouse r+] fconfigure $F -buffering none puts $F "\1CX\r" set ack [gets $F]; # Acknowledge .m.s configure -text "Calibration started" update set ack [gets $F]; # First calibration point .l.c itemco line -fill green .m.s configure -text "First target ok" update set ack [gets $F]; # Next calibration point .r.c itemco line -fill green .m.s configure -text "Second target ok" update close $F exec killall -CONT gpm after 1000 .m.s configure -text "" pack [button .m.b -text Ok -command exit] exit 0 gpm-1.20.7/contrib/scripts/mkinstalldirs000077500000000000000000000013271204257734200203320ustar00rootroot00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.2 2002/05/28 19:13:52 nico Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" 1>&2 mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here gpm-1.20.7/contrib/scripts/replace_2_with_3_spaces000077500000000000000000000005151204257734200221170ustar00rootroot00000000000000# 8 -> 2*4 --> 4*3 = 12 cat $1 | sed 's/^ \([^ ]\)/ \1/g' > $1.tmp # 6=3*2 --> 3*3=9 cat $1.tmp | sed 's/^ \([^ ]\)/ \1/g' > $1.tmp2 # 4=2*2 --> 2*3=6 cat $1.tmp2 | sed 's/^ \([^ ]\)/ \1/g' > $1.tmp # 2=1*2 --> 1*3=3 cat $1.tmp | sed 's/^ \([^ ]\)/ \1/g' > $1.tmp2 echo done: $1.tmp2 gpm-1.20.7/contrib/scripts/replace_tab_with_3_spaces000077500000000000000000000004451204257734200225260ustar00rootroot00000000000000# 4 tabs cat $1 | sed 's/^ \([^ ]\)/ \1/g' > $1.tmp # 3 tabs cat $1.tmp | sed 's/^ \([^ ]\)/ \1/g' > $1.tmp2 # 2 tabs cat $1.tmp2 | sed 's/^ \([^ ]\)/ \1/g' > $1.tmp # 1 tab cat $1.tmp | sed 's/^ \([^ ]\)/ \1/g' > $1.tmp2 rm $1.tmp echo done: $1.tmp2 gpm-1.20.7/contrib/scripts/test_gpm000077500000000000000000000013761204257734200173000ustar00rootroot00000000000000#!/bin/sh # # Date: 18th of September 2001 # Description: Test gpm with this script :) # Author: Nico Schottelius (nicos@pcsystems.de), 3rd of October 2001 # Copying: GPL 2.0 # Version: 0.2 # PREFIX=test- POSTFIX= if [ $# -ne 1 ]; then echo `basename $0`': dir' echo 'Hey, hey guy, what to test ?' exit 1 fi if [ ! -d $1 ]; then echo `basename $0`': dir' echo 'HEY! I need a DIRECTORY! Not something else!' exit 1 fi echo rm -rf $PREFIX`basename $1`$POSTFIX -r rm -rf $PREFIX`basename $1`$POSTFIX -r echo cp $1 $PREFIX`basename $1`$POSTFIX -r cp $1 $PREFIX`basename $1`$POSTFIX -r echo rm -rf mkdir objdir rm -rf objdir/ && mkdir -p objdir && cd objdir echo configure ../$PREFIX`basename $1`$POSTFIX/configure --prefix=/usr/sys echo make make gpm-1.20.7/doc/000077500000000000000000000000001204257734200131375ustar00rootroot00000000000000gpm-1.20.7/doc/Announce000066400000000000000000000041361204257734200146340ustar00rootroot00000000000000This is to announce gpm-1.0, available by ftp from iride.unipv.it:/pub/gpm/gpm-1.0.tar.gz (my site) and sunsite.unc.edu:/pub/Linux/Incoming/gpm-1.0.tar.gz its final destination on sunsite and mirrors will be /pub/Linux/system/Daemons What's gpm? Gpm ("general purpose mouse") is a user-level daemon in charge of mouse management. It can deliver mouse events to clients on a per-console basis. Its client library eases writing mouse-sensitive application which will run under both the Linux console and xterm. Gpm is part of slackware since November 1994 (gpm-0.90). From 0.98.x onward it supported two mice running concurrently (like you do with "MultiMouse") and it can repeat events to an external fifo (like you do with "mconv"). What's new? What made me switch to 1.0 is the availability of the high-level library, a useful tool for mouse programmers, together with a sample application using that library ("hltest"). "mouse-test" is available as well -- it is a tiny utility meant to help you in detecting what protocol does your mouse speak. Not too smart (it has to run attended), but useful when you change mouse. It works well with serial mice, and is otherwise untested. gpm-root is now capable to draw recursive menus. Console locking is still missing, lazy me. The daemon is able to manage two mice running concurrently, this should be useful for those owning a laptop. t-mouse.el is enhanced, in mode-line and vertical-line management (not by me, actually). The alpha architecture is supported. What about the future, after 1.0? Most likely I'll release bug-fix updates in the near future (I only own one mouse :-). After that I'll consider making gpm a kernel module, implementing a mouse-type independent mouse driver. The device driver will be completely compatible with applications linked with libgpm version 1.0 or later. In this sense 1.0 is incompatible with previous versions: applications linked with older libraries won't run with the kernel module. I never use text consoles. Then, gpm is not important for you (unless you write mouse-sensitive curses-based application). gpm-1.20.7/doc/FAQ000066400000000000000000000210401204257734200134660ustar00rootroot00000000000000 This file tries to summarize the questions that I've been responding over and over. It is meant to save some time to both you and me :) If your problem with gpm isn't described here, feel free to ask me by Email. -- __ o La forza dei forti sta nel traversare le traversie con occhio sereno _`\<, (Paperino) __( )/( )__ rubini@prosa.it +39-382-529554 1. Installation / Compiling 2. Running problems 3. other questions =========================================================================== 1. Installation / Compiling =========================================================================== Q: Compilation fails with yacc gpm-root.y make: /usr/bin/make: cannot execute binary file make: *** [gpm-root.c] Error 126 A: This is a typical error (I've got several of them reported), though not related to gpm. It looks like you have an old slackware installation, like mine, or another faulty setup. I've been reported that slackware-3 is wrong as well. The 'yacc' executable is a shell script that calls bison, and it lacks the '#!/bin/sh' line (or has it incorrect, missing the '!'). I don't remember the details, but while it runs under your shell, it can't be executed under make. I looked in the binfmt sources in the kernel, and /bin/sh doesn't appear explicitly, so you must fix the first line in the 'yacc' script, and everything should go fine. Note however that the server has already been compiles. Only the gpm-root client, written with yacc, is affected by this problem. =========================================================================== 2. Running problems =========================================================================== Q: My serial mouse works in X with ms protocol, but behaves erratically with gpm on the text console, and I get involuntary pastes. A: Many ms protocol mice equipped with three buttons use an extension to the protocol, which consists in repeating events (thus with no effect under the normal protocol) to signal a change in the middle button. Unfortunately, some old true-ms protocol mice do repeat events, thus triggering the middle-button in gpm. If you're running your mouse with ``-t ms'', you'd better try ``-t bare'', which is the unadorned ms protocol of the old days. My choice to use the third-button extension as the default, was taken because a true ms protocol doesn't repeat event notification, and because many three button mice feature the extension. --------------------------------------------------------------------------- Q: I have a serial mouse. It works fine except that when I try to drag the mouse with the middle button pressed, gpm assumes that the middle button has been released. Dragging with the other buttons works just fine. A: You are probably running your mouse with ``-t ms''. In this mode dragging with the middle button has been deliberately disabled in order to prevent problems with faulty mice that fail to report middle-button events during mouse motion. Try using ``-t ms+'' or ``-t ms+lr'' instead. --------------------------------------------------------------------------- Q: My mouse gets into a state where it thinks the middle button is up when it's down and vice versa. A: Your mouse uses an extension to the m$ protocol in order to report the middle button. It sends empty events (i.e., no-motion & no-button-change) in order to report a change in the status of the middle button. Unfortunately many devices that report middle-button events in this way often fail miserably to report them correctly during mouse motion. Since the protocol does not distinguish between the button going up and the button going down it can easily get out of step with reality. There are two solutions: either use ``-t ms'', which disallows dragging with the middle button, so you can get back to normal simply by moving the mouse without any buttons pressed; or (probably better) use ``-t ms+lr'', which allows you to reset the state of the middle button by pressing the other two buttons together. (If you want you can also deliberately get gpm out of step with reality by pressing the left and right buttons while holding the middle button!) Note that there are many more faulty mice in the world than non-faulty ones so you will probably will have to use ``-t ms+lr'' rather than ``-t ms+''. Note also that most 3-button mice that use the microsoft protocol can be made to use the MouseSystems protocol instead. You might want to read about this in the ``3 Button Serial Mouse mini-HOWTO''. --------------------------------------------------------------------------- Q: My mouse doesn't sense the middle button in X, while it works with gpm. A: Gpm uses a different decoder (see the previous two answers). You can use the ``-R'' option to repeat mouse data to X (look at the man page). --------------------------------------------------------------------------- Q: I have a busmouse, and I have the single-open problem. Is there any way around it? A: Try the -R option of gpm (look at the man page) --------------------------------------------------------------------------- Q: I run "-t ms", and I get double-paste when I press the middle button. Is there any workaround? A: Try "-t mman" instead. --------------------------------------------------------------------------- Q: I have one of the new devices of old dear Bill, and gpm doesn't work any more. What can I do? A: Bill chose to use its own Plug-and-Pray specification, which finally managed to break what worked painlessly for ages. The decoder for any gpm up to 1.12 (and also any X version being used at the time) is unable to deal with the new devices, which claim to be designed to work with older drivers. Try to use "-t pnp" instead of "-t ms" and see if it works with this gpm version. Actually, this version might even work with "-t ms" or "-t bare", but I'm not sure about it. If the version of X you run has problems, while gpm now works, try passing the "-R" option to gpm (see the man page). Note that "-t pnp" is strongly discouraged, as any time the serial port is opened (for example when switching from X to text mode if "-R" is not active) it will take several seconds to be initialized -- a design misfeature of pnp. If either "-t ms" or "-t bare" work use them instead. If you are in the software field, you can enjoy the inaccuracies of the specs and design bugs directly from the originators: http://www.microsoft.com/hwdev/download/pnpcom.exe. You'll find the following, and more: - no support for real multitasking (the mouse driver must be able to keep hold of processor time for at least 1 second). - no pnp vendor will be able to support three buttons any more (no more mouse protocols, all mice must behave the same). - similary, only 1200 baud devices (any serial device) are supported, because the initialization string of pnp devices only tells the vendor and release, with no information about required port configuration. - people with UPS will have great troubles with ms software because the pnp probing sequence plays with DTR, and w95 probes all serial ports. This funny idea might turn off the UPS connected with your computer just after booting w95. Don't despair. They will manage to make worse designs later on. --------------------------------------------------------------------------- Q: I have an old 386 computer around here and gpm is _really_ slow. Is there any way I can make it faster ? A: Go into src/headers/gpmCfg.h and look for DEF_CLUSTER. Change its values from 0 to 10. --------------------------------------------------------------------------- Q: gpm.conf is not accepted / does not work, but gpm works from command line. A: gpm.conf is not from gpm itself. Please contact your distrubtion support to clearify whats wrong. =========================================================================== 3. other questions =========================================================================== Q: I am gonna buy computer X, do I have any chance getting gpm running on it? A: a) If it does not work, you could at least try to port it ;) b) As report by a friend, gpm currently runs on Linux on - i386 - Alpha - ARM - PA-RISC - ia64 (Itanium) - PPC - m68k - MIPS - SPARC It's possible that you need some patches for some architecture. gpm-1.20.7/doc/HACK_GPM000066400000000000000000000014161204257734200142750ustar00rootroot00000000000000Hello! Nice that you read this document, looks like someone wants to improve gpm again. I assume you have a good idea or you did some good work you want to see in the main gpm tree. To make life easy for you and me, please follow the instructions: * if you send a patch, explain why it's needed * if possible, please patch against latest cvs sources (see README) * if the patch introduces generally new things, explain how it works * use 3 spaces tabs in the source files (if you use tabs, look into contrib/scripts/replace_tab_with_3_spaces) * if the patch is not big, use one file * if you have to use more files, tar them * include directory structure (src/mice.c and not mice.c) * everything fine ? So send the patch. Thanks for your help, Nico gpm-1.20.7/doc/Makefile.in000066400000000000000000000121741204257734200152110ustar00rootroot00000000000000# -*-makefile-*- (gpm/doc) # # Copyright (C) 1994 Alessandro Rubini # Copyright (C) 1998 Ian Zimmerman # Copyright (C) 2001 Nico Schottelius # # # Do you ever got headache from reading Makefiles ? I will help you and # me to understand this Makefile: # # The main file is doc.gpm (which is generated by configure from doc.gpm.in). # # doc.gpm is not 'real' texinfo, real texinfo is generated by infofilter # to gpm.texinfo. # # gpm.texinfo is the source of all other formats. # # info is generated by makeinfo (I make that for you). # # man pages are generated with the help of manpager. # # dvi is generated from texinfo with a small block in this Makefile. # # ps is generated from dvi source. # SHELL = /bin/sh srcdir = @srcdir@ top_builddir = .. include $(top_builddir)/Makefile.include MANPAGES = gpm.8 mev.1 gpm-root.1 gpm-types.7 mouse-test.1 all: $(srcdir)/gpm.info gpm.man # HTML (texi2html) %.html: %.texinfo if [ $(TEXI2HTML) != "no" ]; then $(TEXI2HTML) -monolithic $< ;fi # TEXINFO (-) %.texinfo: doc.% Makefile @rm -f $@ # correct here ? $(SED) -f $(srcdir)/infofilter $< > $@ chmod 400 $@ # PS (dvips) %.ps: %.dvi if [ $(DVIPS) != "no" ]; then $(DVIPS) -f $< > $@; fi # INFO (makeinfo) %.info: %.texinfo if [ "$(MAKEINFO)" != "no" ]; then $(MAKEINFO) --no-split $< -o $@; fi # TXT (-) %.txt: %.info $(AWK) -f $(srcdir)/mktxt $< > $@ # MAN (-) $(MANPAGES): gpm.man gpm.man: doc.gpm $(srcdir)/manpager $(AWK) -f $(srcdir)/manpager doc.gpm for i in gpm-root.1 gpm-types.7 gpm.8 mev.1 mouse-test.1; do \ expand $$i | sed s/^'[ ]*'//g > $$i.new; \ mv $$i.new $$i; \ done; touch gpm.man # DVI # This rule is somewhat a rewrite of texi2dvi. I like make more than sh :-) %.dvi: %.texinfo # create a spurious index file to please silly sh (bash will work anyway) # is this still needed for someone ? touch $*.oo # get the index list, but only if tex is installed # check the file list, the file and if needed run TeX again # # can somebody tell me in a very short way what format dvi is and why we # cannot generate ps directly ? if [ -n "`ls $*.?? $*.aux 2>/dev/null`" -a "$(TEX)" != "no" -a \ "$(TEXINDEX)" != "no" ]; then \ for i in `ls $*.?? $*.aux 2>/dev/null`; do cp $$i $$i~; done; \ $(TEX) $< \ old="`ls $*.??~ $*.aux~ 2>/dev/null | $(SED) 's/~//g'`"; \ new="`ls $*.?? $*.aux 2>/dev/null`"; \ need="n"; \ if test "$$old" != "$$new"; then need="y"; \ else \ for i in `ls $*.?? $*.aux 2>/dev/null`; do \ cmp -s $$i $$i~; if test $$? -ne 0; then need="y" break; fi; \ done; \ fi; \ if test "$$need" = "y"; then \ $(TEXINDEX) $*.?? && $(TEX) $<; \ fi; \ fi # Main portion all: $(srcdir)/gpm.info $(MANPAGES) # why gpmdoc.ps and gpm.ps?? # there is no gpm.ps in my tree and no rule to generate gpm.ps. gpmdoc.ps: gpm.ps -$(CP) $< $@ # install & uninstall installdirs: $(MKDIR) $(man1dir) $(man7dir) $(man8dir) $(infodir) install: all installdirs $(INSTALL_DATA) -m 644 mev.1 $(man1dir) $(INSTALL_DATA) -m 644 mouse-test.1 $(man1dir) $(INSTALL_DATA) -m 644 gpm-root.1 $(man1dir) $(INSTALL_DATA) -m 644 gpm-types.7 $(man7dir) $(INSTALL_DATA) -m 644 gpm.8 $(man8dir) $(INSTALL_DATA) -m 644 $(srcdir)/gpm.info $(infodir) # Use install-info if available -if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \ if [ -f $(infodir)/dir ] ; then \ install-info --dir-file=$(infodir)/dir $(infodir)/gpm.info; \ fi; \ fi #itz Sat Dec 26 23:21:05 PST 1998 #i keep all my infopages compressed and i'm tired to do it by #hand, so check if there are any compressed pages and do this #one too -ls $(infodir)/*[-.]info.gz >/dev/null 2>&1 \ && gzip -f $(infodir)/gpm.info # Hmm.... shouldn't man pages be compressed too? # maybe they should, but at least at my system they are not. # This potentially leaves around cached manpages, # e.g. /var/cache/man/cat1/mev.1.gz. Deleting these is not our job, # but the job of the man program on the host. uninstall: cd $(man1dir) && rm -f mev.1 mouse-test.1 gpm-root.1 rm -f $(man7dir)/gpm-types.7 $(man8dir)/gpm.8 rm -f $(infodir)/gpm.info $(infodir)/gpm.info.gz -if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \ if [ -f $(infodir)/dir ] ; then \ install-info --dir-file=$(infodir)/dir \ --remove $(infodir)/gpm.info; \ fi; \ fi # configure & unconfigure Makefile: $(top_builddir)/config.status $(srcdir)/Makefile.in cd $(top_builddir) && $(SHELL) config.status ## CLEANUP section # normal cleanup clean: rm -f gpmdoc.ps gpmdoc.txt $(MANPAGES) *~ rm -f gpm.?? gpm.??? rm -f gpm.texinfo # for creating distribution distclean: clean rm -f Makefile doc.gpm # to even remove things we leave for end-users allclean: distclean rm -f gpm.info # Maintainer portion, use at your own risk # ignore this: TAGS: ## DIST section # when we cleaned it, we can securely copy us. dist: distclean # unneeded now: using pax + -s option and create tars in .. #$(CP) -r $(srcdir) $(top_builddir)/gpm-$(release)/ .INTERMEDIATE: gpm.ps .SECONDARY: %.ps %.texinfo %.dvi gs: gpm.ps gs -sDEVICE=linux -r640x480x2 $< gv: gpm.ps ghostview gpm.ps -magstep -1 -a4 gpm-1.20.7/doc/README.1.20.2000066400000000000000000000041021204257734200145330ustar00rootroot00000000000000 Dear reader, you are reading this document, because you saw that there is a new release of gpm available, gpm 1.20.2. Unfortunately this release is broken, but that's not a big problem. gpm is broken for some time and I did not spent any time to the project for about two years. Some weeks ago, I was contacted by someone asking me to write a very small feature for gpm (a small client program, included in this release). I answered the person that I do not have the time to code that part, but if he really insists that I should write that code, he should think about sponsoring me [0]. Some days later I recieved an email that he wanted to sponsor me. I was a little bit surprised, because it was the first person really considering my sponsoring plans. So I coded that small program and had some views in the old code of gpm. There's so much information in it, so many hacks, so many dirty tricks and there are still many people using it. So I considered to try to spent more time to gpm, perhaps even creating a more clean (and better maintainable) version of it. But I _am_ actually a pretty busy person, working almost all time, if not doing sports (just about 6 hours a week) or sleeping. So I thought, perhaps you can help me to get more time for coding FOSS [1] in general or gpm in specific: My idea is, that if you consider sponsoring my work, I can begin to work less "traditionally" and also finance my second study in computer science, which I will begin in autumn 2008, if I have the money to do it (living in Switzerland is not that cheap). I am looking forward to get any feedback from you about this idea at nico-gpm-sponsoring (at) schottelius.org. Thanks for reading, Nico Schottelius, 12. May 2007 P.S.: GPM is alive! [0]: Sponsoring information: http://nico.schottelius.org/about/support [1]: FOSS: http://nico.schottelius.org/documentations/foss/the-term-foss/ gpm-1.20.7/doc/README.etouch000066400000000000000000000025371204257734200153140ustar00rootroot00000000000000 This file tells how to use gpm and X with a Elotouch screen with serial interface at 9600 Baud No parity. CALIBRATION ----------- Calibration is done in console mode using the program "elocalib" available from http://www.dobit.com/emblin/pub/elocalib.tgz See also elocalib --help To start calibration at console 128x48, for screen 1024x786 > elocalib /dev/ttyS0 -c128 -r48 -w1024 -h768 Touch the upper-left corner and write down the coordinates Xmin, Ymin Touch the bottom-right corner and write down the coordinates Xmax, Ymax Update the file gpm-calibration with this coordinates > cat /usr/local/etc/gpm-calibration # EloTouch calibration coordinates Xmin Ymin Xmax Ymax 4010 80 80 4010 GPM OPERATION ------------- > gpm -m /dev/ttyS0 -t etouch -o clickontouch -Rsumma X OPERATION ----------- In order to use the touchscreen in X, you should install in your system the "gpmsumma" module available from http://www.annet.pl/~anowak/mtouch/gpmsumma_drv.o or from http://www.dobit.com/emblin/pub/gpm_etouch.tgz /usr/lib/X11/modules/input/gpmsumma_drv.o Then add the following sections to your XF86config: Section "InputDevice" Identifier "EloTouch" Driver "gpmsumma" Option "Device" "/dev/gpmdata" Option "SendCoreEvents" "On" EndSection Section "ServerLayout" InputDevice "EloTouch" "SendCoreEvents" ... EndSection gpm-1.20.7/doc/README.gunze000066400000000000000000000163671204257734200151630ustar00rootroot00000000000000This file tells how to use gpm and X with a Gunze touchscreen. It is pretty similar to README.microtouch, and I plan to unify them as soon as I port the two implementation to offer a consistent look and feel. Currently the Gunze implementation is more configurable but has a worse calibration management (it must write to /etc/gpm-calibration). DEVICE CONFIGURATION -------------------- The gpm decoder requires the Gunze device to be in Gunze Mode (not in Elo Emulation Mode). The supported serial speeds are 9600 and 19200 baud, the latter being the default speed (in other words, to decode data at 9600 you must use the "-b 9600" option of gpm; no "-b" option selects 19200 baud). Currently, the only device supported is the 10-bit one. USER INTERFACE -------------- The decoder currently implemented in gpm is quite simple: it only supports mouse motion and button-1 events. This will soon change: I plan to implement corner-taps for button-2 and button-3, as well as a different "mode" where motion is not supported and any touch event is converted to a button-1 click. In the default (and only) mode, when a user touches the screen, the decoder generates mouse motion events. Tapping on the screen generates button-press (as well as drag and release) events. A "tap" is a finger-down (or pen-down) event generated quickly after a finger-up. A touch event is considered a "tap" if the lapse since the last finger-up is less than or equal to the double-click interval (the default is 250ms, and the value is chosen by specifying the "-i" option of gpm). This means that you'll usually move the pointer to the desired position and then tap on it. Double-and triple clicks are easily generated by repeated tapping. Since tapping is usually accompanied by a small movement, the decoder will use the coordinates of the finger-up event for the button-press. Further dragging will be relative to the tapping position (i.e., the finger-up position). Moreover, the last coordinate pair received on finger-up is discarded, because it usually is slightly offset (due to the non-negligible area of the fingertip). My own experience with the Gunze device, revealed that sometimes the finger bounces, generating very fast finger-up/finger-down pairs. The gpm decoder, therefore, ignores any quick succession of finger-up and finger-down events. The default is to ignore any release-press pair if the time lapse is less than 100ms (note, however, that this time lapse is configurable). GPM OPERATION ------------- In order to run the touchscreen with gpm, you need to update the /dev/mouse symbolic link to point to the right serial port; then invoke gpm with a command line like gpm -t gunze If /dev/mouse is not updated to point to the touchscreen serial port, use gpm -t gunze -m /dev/ttyS0 or an equivalent command. Unfortunately, there is currently no way to paste text, but I'll implement corner-tapping to achieve that. Gunze-specific Configuration ---------------------------- It is possible to specify device-specific options to gpm in order to customize the behaviour of the Gunze decoder. The options are passed as argument to the "-o" command line (reminiscent of the mount command). The following options are recognized: smooth= The decoder smooths mouse movements, to prevent the jumpy behaviour that usually results from finger movement. The default smoothin factor is 9, you can specify a different value if you wish: "gpm -t gunze -o smooth=3" gives faster (and more jumpy) motion, while "gpm -t gunze -o smooth=30" gives a very slow feeling.x debounce= The option is used to specify the minimum time lapse, in milliseconds between finger-up and finger-down events. Smaller time intervals are discarded to achieve debouncing. Note that the maximum time lapse is the one used for double-click detection, and is specified with the "-i" command-line option, common to every other mouse type. Please note that more than one option can be specified, by using the comma ``,'' as a separator. For example: gpm -t gunze -o smooth=5,debounce=150 Calibration ----------- To calibrate the touchscreen, use the program "gunze-setup" found in the source tree of gpm. The gpm daemon must already be running in order for the program to work flawlessly, as the program stops and restarts gpm internally (it depends on gpm for correct serial port initialization). The calibration program uses either /dev/touchscreen (if available) or /dev/mouse (otherwise) as the serial port to communicate with the touchscreen. You'll need therefore to create a symlink for one of those names before running "gunze-setup". After calibration, the calibration values can be found in the file /etc/gpm-calibration, but gpm must be restarted in order to be able to read them. This can be construed as a bug, and avoiding to stop the program is in my TODO list. X OPERATION ----------- In order to use the touchscreen in X, you should install in your system the "Summa" module, as modified by Frank Holtz (the driver is available from http://www.hof-berlin.de/tablet/tablet.html, as well as in the gpm CVS tree and from gpm-1.18.2 in the gpm release as well). The compiled module (xf86Summa.so) should go in the module directory of your X server, usually /usr/X11/lib/modules, when it sits in the right place, a proper XF86Config will arrange for its loading. Gpm must run in repeater mode, with a command line like: gpm -t gunze -Rsumma , which instructs gpm to repeat packets according to the Summa protocol. Then, you need to add the following sections to your XF86config: Section "module" Load "xf86Summa.so" EndSection Section "Xinput" Subsection "SummaSketch" Port "/dev/gpmdata" DeviceName "touchscreen" Mode Absolute AlwaysCore EndSubSection EndSection Moreover, you should disable the "Pointer" section. I used a trick like this one: Section "Pointer" Protocol "MouseSystems" Device "/dev/fifo" EndSection Where /dev/fifo is just a plain unused fifo ("mknod /dev/fifo p") If, when calling ``startx'', it won't work with a message of ``Invalid Subsection Name'', please check the previous error lines, as they explain what is wrong. They usually look like: (--) no ModulePath specified using default: /usr/X11R6/lib/modules xf86Summa.so: Unknown error loading module It is pretty clear, if your are careful in reading the messages (I am not that careful, and lose half an hour in trying to figure out what was wrong). Calibration ----------- To calibrate the touchscreen, use the program "gunze-setup" found in the source tree of gpm (yes, it is the same program used for the text mode). The gpm daemon must already be running in order for the program to work flawlessly, as the program stops and restarts gpm internally (it depends on gpm for correct serial port initialization). The calibration program uses either /dev/touchscreen (if available) or /dev/mouse (otherwise) as the serial port to communicate with the touchscreen. You'll need therefore to create a symlink for one of those names before running "gunze-setup". gpm-1.20.7/doc/README.microtouch000066400000000000000000000065221204257734200161770ustar00rootroot00000000000000 This file tells how to use gpm and X with a touch screen (this is being written as an addition to gpm 1.17.5 and currently the only supported touchscreen is the MicroTouch). USER INTERFACE -------------- The decoder currently implemented in gpm is quite simple: it only supports mouse motion and button-1 events. When a user touches the screen, the decoder generates mouse motion events. Tapping on the screen generates button-press (as well as drag and release) events. A "tap" is a finger-down event generated quickly after a finger-up (half a secon at most). This means that you'll usually move the pointer to the desired position and then tap on it. Double-and triple clicks are easily generated by repeated tapping. Since tapping is usually accompanied by a small movement, the decoder will use the coordinates of the finger-up event for the button-press. Further dragging will be relative to the tapping position (i.e., the finger-up position). Moreover, the last coordinate pair received on finger-up is discarded, because it usually is slightly offset (due to the non-negligible area of the fingertip) GPM OPERATION ------------- In order to run the touchscreen with gpm, you need to update the /dev/mouse symbolic link to point to the right serial port; then invoke gpm with a command line like gpm -t mtouch Unfortunately, there is currently no way to paste text. I think some modifier key should be eligible to this role but this would mean an in-depth modification to gpm. We have to discuss about it to make the right choice. Calibration ----------- To calibrate the touchscreen, use the program "microtouch-setup" found in the source tree of gpm. The gpm daemon must already be running in order for the program to work flawlessly, as the program stops and restarts gpm internally (it depends on gpm for correct serial port initialization). "microtouch-setup" uses /dev/mouse to access the serial port, so /dev/mouse should point to a "ttyS" device. X OPERATION ----------- In order to use the touchscreen in X, you should install in your system the "Summa" module, as modified by Frank Holtz (the driver is available from http://www.hof-berlin.de/tablet/tablet.html). Gpm must run in repeater mode, with a command line like: gpm -t mtouch -Rsumma , which instructs gpm to repeat packets according to the Summa protocol. Then, you need to add the following sections to your XF86config: Section "module" Load "xf86Summa.so" EndSection Section "Xinput" Subsection "SummaSketch" Port "/dev/gpmdata" DeviceName "touchscreen" Mode Absolute AlwaysCore EndSubSection EndSection Moreover, you should disable the "Pointer" section. I used a trick like this one: Section "Pointer" Protocol "MouseSystems" Device "/dev/fifo" EndSection Where /dev/fifo is just a plain unused fifo ("mknod /dev/fifo p") Calibration ----------- To calibrate the touchscreen, use the program "microtouch-setup" found in the source tree of gpm (yes, it is the same program used for the text mode). The gpm daemon must already be running in order for the program to work flawlessly, as the program stops and restarts gpm internally (it depends on gpm for correct serial port initialization). "microtouch-setup" uses /dev/mouse to access the serial port, so /dev/mouse should point to a "ttyS" device. gpm-1.20.7/doc/README.synaptics000066400000000000000000000370371204257734200160450ustar00rootroot00000000000000This README describes the support for the Synaptics ToucPads. In addition to translating finger motion into mouse motion and supporting the buttons, this support currently has several features: - a "tap" on the TouchPad causes a left mouse click - a "tap" followed quickly by a finger motion causes a left button drag type action. - a "tap" in one of the corners causes an action the default configuration is upper right causes middle mouse click and lower right causes right mouse click - more pressure on the touch pad speeds the motion of the cursor - a "tap" with a motion component (default > 2mm) initiates a toss and catch sequence. This is terminated by a finger touch on the pad (the toss also ends after 1 sec since that is the idle timeout period for the touchpad). - if the finger moves close to an edge then the mouse motion will be continued in that direction so that you don't need to pick up your finger and start moving again. This continued motion is pressure sensitive (more pressure is faster motion). - Scrolling by putting the finger at the edge, an dmoving up or down. - Recognition of Stick. - Multi fingers are recognized to to stop erradic motions, and to change which mouse button is reported. - Palm detection so the palm does not move the mouse. These features can be enabled/disabled and many of them have time and speed parameters which can be adjusted to the taste of the user. These parameters can be provided in the "/usr/etc/gpm-syn.conf" file (or /usr/local/etc/gpm-syn.conf, or /etc/gpm-syn.conf, according to how you ran configure). Each line in this file has the following syntax: [param-name] Where param-name is one of the following param-name value description ====================== ===== =========== /* feature enable configuration values all default to 1 (TRUE) */ /* flags are true if the first char of the value is in the string "YyTt1" */ /* flags are false if the first char of the value is in the string "NnFf0" */ edge_motion_enabled flag is edge motion enabled edge_motion_speed_enabled flag does pressure control speed of edge motion corner_taps_enabled flag are corner taps enabled tap_gesture_enabled flag are taps gesture enabled pressure_speed_enabled flag does pressure control speed in non edges tossing_enabled flag is toss/catch enabled does_toss_use_static_speed flag is toss/catch speed based on toss dist /* pressure induced speed related configuration constants */ low_pressure 0-255 the lowest pressure which triggers speed processing. If this is less than speed_up_pressure then the motion is slowed down. When the pad pressure is between these values. The default value is 60 pressure is described by Synaptics as follows: 0 : no finger contact 10 : hovering NEAR pad surface 30 : very light finger contact 80 : normal finger contact 110: very heavy finger contact 200: finger lying flat on surface 255: whole palm on pad surface speed_up_pressure 0-255 the lowest pressure at which speed is increased. If the pad pressure is less than this value then the motion will bs slowed down. If greater, then the motion will be sped up. The default value is 60 pressure_factor float the multiplicative factor applied to the pressure difference to be applied to the speed. This is used as follows: 1 + pf * (press - speed_up) The difference in pressure between the measured pressure and the speed up pressure is multiplied by this value which is then applied to the nominal mouse speed. The default value is 0.05 standard_speed_factor float the standard speed factor used to scale touchpad deltas into mouse deltas. The touchpads have resolutions in the 1000 points/inch range (much more detail than a mouse). The default value is 0.08 /* toss/catch related constants */ min_toss_time msec This number specifies the minimum finger contact time which is to be considered a toss (in milliseconds). The default value is 100 (0.1 sec) max_toss_time msec This number specifies the maximum finger contact time which is to be considered a toss (in milliseconds). The default value is 300 (0.3 sec) prevent_toss_time msec This number specifies the minimum finger release time after a toss is terminated before reacting to taps (in milliseconds). This prevents the "catch" tap from causing a mouse button tap. The default value is 300 (0.3 sec) min_toss_dist mm This number specifies the minimum finger move distance which is to be considered a toss (in millieters). The default value is 2 static_toss_speed int If does_toss_use_static_speed is 1 (TRUE) then this specifies the speed to be used. The default value is 70 toss_speed_factor float This is a multiplier against the toss distance in touchpad units used to scale the distance to a speed. The default value is 0.5 /* edge motion related configuration constants */ edge_speed int This is the nominal speed for use when in the edge regions. The defalt value is 20 /* corner tap actions */ upper_left_action int This is the mouse button which will be activated on a tap in the upper left corner of the touchpad. 0: None 1: Left 2: Middle 3: Right 4: Fourth 5: Up 6: Down 7: Toggle pad on/off The default value is 0 (none) upper_right_action int This is the mouse button which will be activated on a tap in the upper right corner of the touchpad. The default value is 2 (middle) lower_left_action int This is the mouse button which will be activated on a tap in the lower left corner of the touchpad. The default value is 0 (none) lower_right_action int This is the mouse button which will be activated on a tap in the lower right corner of the touchpad. The default value is 3 (right) /* wmode parameters */ wmode_enabled flag This is to enable the wmode of Synaptics touchpad which supports more configurable options and buttons. The default value is 1 (enabled) drag_lock_enabled flag Whether to enable drag lock, that is, do not break a drag until next tap even when the finger is off the pad. The default value is 0 (disable) finger_threshold int The threshold of the pressure reading to consider the finger is on the pad. The default value is 30 tap_lower_limit msec The lower bound of finger contact time to be considerred a tap. The default value is 5 (0.005 sec) tap_upper_limit msec The upper bound of finger contact time to be considerred a tap. The default value is 200 (0.2 sec) tap_range int The maximum displacement of finger contact to be considered a tap. The default value is 100 (0.1 sec) tap_interval msec The time length of button press generated when a tap is recognized, which is also the time within which further finger contact will be consider a drag (or multiple click, if it's also a tap). The default value is 200 (0.2 sec) pads_tap_interval int Equivalent to tap_interval, but the pads interval. Used when wmode is disabled and multi finger is enabled. The default value is 8. multiple_tap_delay msec Break length between button presses when generating multiple click. The default value is 30 (0.03 sec) palm_detect_enabled flag This enables the palm detection in the pad so a palm does no move the mouse. Actually this is the width of the finger on the pad. The default value is 1 (enabled) palm_detect_level int At what palm detection level should the pad be ignored? Value should be between 0-11, where 11 is a full palm at pad, and 0 is a normal finger size. Default value is 12 (meaning disabled). multi_finger_tap_enable flag This enables the ability to use 2 and 3 fingers during a tap, to press right and middle button respectively. The detection is not 100% perfect. If the pad supports finger detection, its values are used. The default value is 1 (enabled) multi_finger_stop_enabled flag When more than one finger is one the pad, an average value (weighted with the the pressure) between the fingers is reported. This gives erradic movements when adding or removing fingers, or when just accidental touches the pad. This option stops the mouse movement for a given time, to let the movement settle. The default value is 1 (enabled). multi_finger_stop_delay Int Number of packets that should be ignored when adding or removing an additional finger to stop erradic movements. The default value is 8. /* Additional options */ touch_pad_enabled flag This will stop the interpreting of the touchpad (thought not the stick if any). As such not that usefull, but in a combination with a corner toggle on/off, this may come useful. A corner tap is interpretated if it turns the pad on. The default value is 1 (enabled). stick_enabled flag Some touchpads have an additional stick which uses the same port. This is an attempt to enable the use while using the touchpad. The default value is 1 (enabled). scrolling_enabled flag This enables the scrolling gesture, which emulates the wheel on a wheel mouse. Putting the finger on the edge and moving it up and down, is eqvivalent with rolling the wheel up and down. The default value is 1 (enabled). scrolling_edge int This decides which edge(s) starts the scrolling gesture. Legal values are (added if more than one edge): 1: Left edge 2: Right edge 4: Top edge 5: Bottom edge The default value is 2 (Right edge). auto_scrolling_enabled flag This enables whether to keep scrolling if the finger moves to the top or bottom edge. The default value is 1 (enabled). gpm-1.20.7/doc/README.twiddler000066400000000000000000000125231204257734200156370ustar00rootroot00000000000000 NEW FEATURE IN BETA-2 OVER BETA-1 (ONLY TWIDDLER CHANGES) Fixed typo in twiddler.c which prevented compiling Fixed segfault when using more than one thumb-key at a time Should fix problem when non-ascii chars appear in the cfg file Changed algorithm for dhouble-click Added shift etc. support Added VT change and Execution of commands DETAILED DESCRIPTION OF GPM SUPPORT FOR THE TWIDDLER KEYBOARD Gpm-1.14 and later support the twiddler keyboard, by HandyKey Corp. (the keyboard is described at www.handykey.com). This document describes the current status of the gpm decoder. Mouse support ============= Motion ------ The mouse functionality of the keyboard is supported by gpm. Three decoders are currently available: - a "static" decoder, which turns twiddler position to mouse displacement. The decoder locks the mouse when the ``mouse'' button is pressed and any further motion moves the cursor, as long as ``mouse'' is kept down. This is compiled if "-DTWIDDLER_STATIC" (for example by invoking ``make CC="gcc -DTWIDDLER_STATIC"''. - a "ballistic" decoder, which turns twiddler position to mouse speed. If the keyboard is hole vertical the mouse cursor won't be moved. To compile this decoder -DTWIDDLER_BALLISTIC must be used. - a "mixed" decoder, that behaves like the static one when the device is near-to-vertical and like the ballistic one for large inclination. This is compiled by default Problems ........ The current decoder doesn't allow tuning the parameters at run time. I plan to implement twiddler chords to change the resolution, acceleration and threshold of the mixed decoder, and the other ones as well. If different people routinely use different decoders, I'll make it possible to choose which decoder to run. I will also implement the chord to switch up/down. Buttons ------- The first (left) mouse button is bound to the right key ("a", green, R000). The other buttons are bound to M000 ("e", blue) and L000 ("SP", red). This is consistent with the twiddler manual. To ease using the fingers like with conventional mice, keys 0R00 and 00R0 (i.e., "b" and "c") are bound to the middle and right button as well. Since someone prefers to reverse the order of the keys (i.e., L000 is the left mouse button), they will use "-B 321" on the gpm command line. To ease them, 0L00 is bound to the middle button, and 00L0 is bound to the *left* button. Thus, with "-B 321" it will be the right button. In summary: Left button (B1): R000 R000 Middle button (B2): M000 0R00 Right button (B3): L000 00R0 For people using "-B 321" Left button (B1): L000 L000 Middle button (B2): M000 0L00 Right button (B3): R000 00L0 Problems ........ None, by now. Keyboard support ================ Configuration file ------------------ The keyboard map is stored in run-time tables within gpm. There is no precompiled table, so a configuration file is needed. I chose not to precompile values because that would mean to pre-parse a configurazion file, and provide documentation as well. Using a compulsory configuration file reliefs my workload :-) The file "gpm-twiddler.conf" that appears in the gpm configuration includes the default keyboard map, and can be used right away. If the file is not in place, gpm will complain about its absence. By default the file must live in /usr/etc (or /usr/local/etc, or whatever you gave as a prefix to ./configure). The behaviour is similar for different installation prefixes. The file is not installed by "make install". If the file is missing, gpm will exit producing a message like this: ./gpm: /usr/etc/gpm-twiddler.conf: No such file or directory The distributed configuration file includes its own documentation. If you want to add keys to the default file, you can avoid editing it by writing a "gpm-twiddler.user" file and putting it in the same directory as gpm-twiddler.conf. Gpm will read both files, in sequence, but won't complain if gpm-twiddler.user doesn't exist. Gpm will print an error message for any incorrect line in any of the configuration files: error messages include the file name and the line number where the error appears, as well as a description of the type of error. If any error is encountered, gpm will exit. The daemon will print a warning message for any redefined key, but will use the new definition. Therefore, if you want to redefine keys in your user file, just redirect standard error to /dev/null after checking you are willing to override default definitions. General information ------------------- A key press is reported when any key of the chord is released: this avoides reporting false keys when a multi-key chord is being composed. The twiddler driver in gpm implements auto-repeat. Auto-repeat is invoked by double-clicking a chord and keeping it pressed. If the double-click takes more than .3 seconds, it won't be considered a double-click; auto-repeat will start .5 seconds after the double-click. Gpm unblanks the screen when keys are composed using the twiddler. Problems -------- Gpm doesn't currently report keypresses to the X server. You should use other twiddler drivers for Linux if you need this functionality. For example get the driver by Jeff Levine (there is a link to the driver in www.handykey.com). I would like to thank HandyKey Corp. for sending a twiddler keyboard to me and Torben Fjerdingstad for his help in testing out the driver. gpm-1.20.7/doc/changelog000066400000000000000000000025751204257734200150220ustar00rootroot000000000000001.20.7: 2012-10-26 * Fix inclusion of unwanted binary data * Even more cleanups (Mike Frysinger) * Fix hyphen-used-as-minus-sign issues in manpages. (ﺄﺤﻣﺩ ﺎﻠﻤﺤﻣﻭﺪﻳ) * Don't build static libgpm by default (Sean McGovern) * autogen.sh is now required to create setup version in autoconf (Nico Schottelius) 1.20.5: 9th of February 2009 * Some cleanups (Mike Frysinger/Nico Schottelius) * Pull in fcntl.h rather than unistd.h for open() (Mike Frysinger) * Fix gcc warning "control reaches end of non-void function" (Mike Frysinger) * Fix building with libtool-2 (Mike Frysinger) 1.20.5: 16th of June 2008 * Fix possible segfault (FD_SET/negative) (Guillem Jover) * Move more messages to debug (Jonathan Nieder) * Remove unecessary headers (Jonathan Nieder) * Allow specifying ELISP variable on commandline (Ulrich Mueller) * Fix broken code semantics (Mike Frysinger) * Cleanup documentation (Nico Schottelius) * Fix socklen_t issue: Require posix header (Mike Frysinger/Nico Schottelius) * Fix building with glibc 2.8 (Mike Frysinger) * Updated library to version 2.1.0 (Nico Schottelius) Gpm_GetLibVersion behaves more consistent (all numbers are one or two digits) * Including dynamically generated version from git (Nico Schottelius) 1.20.4: ? * Corrected typos * Added automatic local build test * Fixed SONAME (praise the Debian guys, Jonathan Nieder) gpm-1.20.7/doc/doc.gpm.in000066400000000000000000002556771204257734200150440ustar00rootroot00000000000000\input texinfo @c -*-texinfo-*- % % doc.gpm - main file for the documentation % % Copyright 1994,1995,1998 rubini@linux.it (Alessandro Rubini) % Copyright (C) 1998 Ian Zimmerman % Copyright (C) 2001-2008 Nico Schottelius % %%%% %------------------------------------------------------------------------------ % % NOTE FOR THE UNAWARE USER % ========================= % % This file is a texinfo source. It isn't the binary file of some strange % editor of mine. If you want ASCII, you should "make gpm.txt". % % Some strings maybe changed from the configure script. % %------------------------------------------------------------------------------ % % This is not a conventional info file... % I use two extra features: % - The '%' as a comment marker ("\%" -> "%") % - leading blanks are allowed (and removed) % @comment %**start of header @setfilename gpm.info @settitle gpm @value{version} @iftex @afourpaper @end iftex @comment %**end of header @ifinfo @format @dircategory Miscellaneous @direntry * Gpm: (gpm). Text-mode (non-X) mouse library and server daemon. @end direntry @end format @end ifinfo @setchapternewpage off @set version @release@ @set update-month @release_date@ @finalout @ifinfo %ASCII_BEGIN This file is a user's and programmer's manual for gpm @value{version}. Copyright (C) 1994,1995,1998 Alessandro Rubini Copyright (C) 2001-2008 Nico Schottelius Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. @ignore Permission is granted to process this file through TeX and print the results, provided the printed document carries copying permission notice identical to this one except for the removal of this paragraph (this paragraph not being relevant to the printed manual). @end ignore Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. @end ifinfo @setchapternewpage odd @titlepage @c use the new format for titles @title gpm @value{version} @subtitle A general purpose mouse server for the Linux console @subtitle @value{update-month} @author by Nico Schottelius @end titlepage @setchapternewpage off @headings single @ifinfo This file documents the @value{version} release of the "General Purpose Mouse" (gpm) server for the Linux text console (@value{update-month}). @node Top, Overview, (dir), (dir) @top gpm @menu * Overview:: * Server Invocation:: * Gpm Internals:: * The ClientLib:: * Demo Clients:: * Type Index:: * Function Index:: * Variable Index:: @end menu @end ifinfo %########################################################################## %########################################################################## @node Overview, Server Invocation, Top, Top @chapter Overview @cindex Overview of Gpm @cindex Gpm Overview The @dfn{gpm} package is a mouse server for the Linux console. It is meant to provide cooked mouse events to text-only applications, such as editors and simple menu-based apps. The daemon is also able to repeat packets in "msc" format to a graphic application. This last feature is meant to override the single-open problem of busmice. The roots of @code{gpm} come from the @file{selection-1.5} package, by Andrew Haylett. The first application to support the mouse has been The Midnight Commander, by Miguel de Icaza. @file{mc-0.11} and later releases offer mouse support if you have the mouse server running on your system. The file @file{t-mouse.el} provides support for using the mouse from within Emacs. @xref{Emacs Support}. As of release 0.96, a default-handler is released with gpm, and can be used to handle Control-Mouse events to draw menus on the screen. The @code{gpm-root} program, however, needs kernel 1.1.73 or newer. @xref{gpm-root}. Release 1.00 has been an incompatible one (is is incompatible with releases older than 0.97), but is compatible with the kernel-level mouse driver (available as @file{kmouse-?.??.tar.gz} from the mirrors of @uref{ftp://tsx-11.mit.edu}. With 1.0 the high level library is available, together with a demonstration/test program. A small utility to help in detecting your mouse-type is also included. As of release 1.20.0 the default device is removed. Now -m is a must. Release 1.20.1 introduces the must for -t and a specific way to use -m,-t,-o: Now you've got to use -m first, then -t and at last -o. This seems to be more complex, but makes using of multiply mice possible with clean code. @menu * Building the Release:: @end menu %========================================================================= @node Building the Release, , Overview, Overview @section Compiling and Installing @cindex Building Gpm Just say @code{./configure && make && make install} to your shell. You'll need gpm installed to compile the latest release of The Midnight Commander with mouse support enabled. Binaries are not released with the package because it's safer for you to compile the package by yourself. %========================================================================= %@node Kernel Patches %@section Kernel Patches %@cindex Kernel Patches %@cindex Patches to Apply % %Old Linux kernels need to be patched to provide features I rely on. As %of 1.1.32, however, my patches are in the official release, so you won't %need any kernel recompilation. Remember, anyway, to enable selection while %compiling the kernel, or this package won't work. Refer to %@file{kernel/README} to probe further. % %Other features are needed to run the @t{gpm-root} client. They are %really functional only since 1.1.73. 1.1.68, however, should be sufficient. % %########################################################################## @node Server Invocation, Gpm Internals, Overview, Top @chapter Server Invocation @cindex The Server @cindex Command Line (gpm) %MANPAGE gpm.8 %M .TH GPM 8 "February 2002" %M .UC 4 %M .SH NAME %M gpm \- a cut and paste utility and mouse server for virtual consoles %M .SH SYNOPSIS %M .B gpm %M [ %M .I options %M ] %M .br %M .SH DESCRIPTION %M This package tries to be a useful %M mouse server for applications running on the Linux console. It is %M based on the "selection" package, and some of its code %M comes from selection itself. This package is intended as a replacement %M for "selection" as a cut-and-paste mechanism; it also provides %M additional facilities. The "selection" %M package offered the first cut-and-paste implementation for Linux using %M two mouse buttons, and the cut buffer is still called "selection buffer" %M or just "selection" throughout this document. %M %M The information below is extracted from the texinfo file, which is the %M preferred source of information. The @code{gpm} executable is meant to act like a daemon (thus, @code{gpmd} would be a better name for it). This section is meant to describe the command-line options for @code{gpm}, while its internals are outlined in the next section. @xref{Gpm Internals}. Due to restrictions in the @code{ioctl(TIOCLINUX)} system call, @code{gpm} must be run by the superuser. The restrictions have been added in the last 1.1 kernels to fix a security hole related to selection and screen dumping. The server can be configured to match the user's taste, and any application using the mouse will inherit the server's attitude. From release 1.02 up to 1.19.2 is was possible for any user logged on the system console to change the mouse @emph{feeling} using the @t{\-q} option. This is no longer possible for security reasons. As of 0.97 the server program puts itself in the background. To kill @code{gpm} you can just reinvoke it with the @samp{\-k} cmdline switch, although @code{killall gpm} can be a better choice. @menu * Special Commands:: * Command Line:: * Bugs and Problems:: * Mouse Types:: @end menu %M .SH SPECIAL COMMANDS %========================================================================== @node Special Commands, Command Line, Server Invocation, Server Invocation @section Special Commands Version 1.10 adds the capability to execute @emph{special} commands on certain circumstances. Special commands default to rebooting and halting the system, but the user can specify his/her personal choice. The capability to invoke commands using the mouse is a handy one for programmers, because it allows to issue a clean shutdown when the keyboard is locked and no network is available to restore the system to a sane state. Special commands are toggled by triple-clicking the left and right button -- an unlikely event during normal mouse usage. The easiest way to triple-click is pressing one of the buttons and triple-click the other one. When special processing is toggled, a message appears on the console (and the speaker beeps twice, if you have a speaker); if the user releases all the buttons and presses one of them again within three seconds, then the special command corresponding to the button is executed. The default special commands are: @table @var @item left button Reboot the system by signalling the init process @item middle button (if any) Execute @code{/sbin/shutdown \-h now} @item right button Execute @code{/sbin/shutdown \-r now} @end table The @samp{\-S} command line switch enables special command processing and allows to change the three special commands. To accept the default commands use @samp{\-S ""} (i.e., specify an empty argument). To specify your own commands, use a colon-separated list to specify commands associated to the left, middle and right button. If any of the commands is empty, it is interpreted as `send a signal to the init process'. This particular operation is supported, in addition to executing external commands, because sometimes bad bugs put the system to the impossibility to fork; in these rare case the programmer should be able to shutdown the system anyways, and killing init from a running process is the only way to do it. As an example, @samp{\-S ":telinit 1:/sbin/halt"}, associates killing init to the left button, going single user to the middle one, and halting the system to the right button. System administrators should obviously be careful about special commands, as gpm runs with superuser permissions. Special commands are best suited for computers whose mouse can be physically accessed only by trusted people. %M .SH COMMAND LINE OPTIONS %========================================================================== @node Command Line, Bugs and Problems, Special Commands, Server Invocation @section Command Line Options Available command line options are the following: @table @code @item \-a @var{accel} Set the acceleration value used when a single motion event is longer than @var{delta} (see @samp{\-d}). @item \-A[@var{limit}] Start up with selection pasting disabled. This is intended as a security measure; a plausible attack on a system seems to be to stuff a nasty shell command into the selection buffer (@code{rm \-rf /}) including the terminating line break, then all the victim has to do is click the middle mouse button .. As of version 1.17.2, this has developed into a more general aging mechanism; the gpm daemon can disable (@emph{age}) selection pasting automatically after a period of inactivity. To enable this mode just give the optional @var{limit} parameter (no space in between !) which is interpreted as the time in seconds for which a selection is considered valid and pastable. As of version 1.15.7, a trivial program called @code{disable-paste} is provided. The following makes a good addition to @file{/etc/profile} if you allow multiple users to work on your console. @code{case $( /usr/bin/tty ) in @* /dev/tty[0\-9]*) /usr/bin/disable-paste ;; @* esac} @item \-b @var{baud} Set the baud rate. @item \-B @var{sequence} Set the button sequence. @samp{123} is the normal sequence, @samp{321} can be used by left-handed people, and @samp{132} can be useful with two-button mice (especially within Emacs). All the button permutations are allowable. @item \-d @var{delta} Set the delta value. When a single motion event is longer than @var{delta}, @var{accel} is used as a multiplying factor. (Must be 2 or above) @item \-D Do not automatically enter background operation when started, and log messages to the standard error stream, not the syslog mechanism. This is useful for debugging; in previous releases it was done with a compile-time option. @item \-g @var{number} With glidepoint devices, emulate the specified button with tapping. @var{number} must be @samp{1}, @samp{2}, or @samp{3}, and refers to the button number @emph{before} the @samp{\-B} button remapping is performed. This option applies to the mman and ps2 decoding. No button is emulated by default because the ps2 tapping is incompatible with some normal ps2 mice @item \-h Print a summary of command line options. @item \-i @var{interval} Set @var{interval} to be used as an upper time limit for multiple clicks. If the interval between button-up and button-down events is less than @var{limit}, the press is considered a double or triple click. Time is in milliseconds. @item \-k Kill a running gpm. This can be used by busmouse users to kill gpm before running X (unless they use @samp{\-R} or the single-open limitation is removed from the kernel). @item \-l @var{charset} Choose the @code{inword()} look up table. The @var{charset} argument is a list of characters. @samp{\-} is used to specify a range and @samp{\ } is used to escape the next character or to provide octal codes. Only visible character can appear in @var{charset} because control characters can't appear in text-mode video memory, whence selection is cut. @item \-m @var{filename} Choose the mouse file to open. Must be before \-t and \-o. @item \-M Enable multiple mode. The daemon will read two different mouse devices. Any subsequent option will refer to the second device, while any preceding option will be used for the first device. This option automatically forces the @emph{repeater} (@samp{\-R}) option on. @item \-o @var{list-of-extra-options} The option works similary to the ``\-o'' option of mount; it is used to specify a list of ``extra options'' that are specific to each mouse type. The list is comma-separated. The options @samp{dtr}, @samp{rts} or @samp{both} are used by the serial initialization to toggle the modem lines like, compatibly with earlier @i{gpm} versions; note however that using @t{\-o dtr} associated with non-plain-serial mouse types may now generate an error. @xref{Mouse Types}. And by the way, use \-o after \-m and after \-t. @item \-p Forces the pointer to be visible while selecting. This is the behaviour of @file{selection-1.7}, but it is sometimes confusing. The default is not to show the pointer, which can be confusing as well. @item \-r @var{number} Set the responsiveness. A higher responsiveness is used for a faster cursor motion. @item \-R[@var{name}] Causes @code{gpm} to act as a repeater: any mouse data received while in graphic mode will be produced on the fifo @file{/dev/gpmdata} in protocol @var{name}, given as an optional argument (no space in between !). In principle, you can use the same names as for the @samp{\-t} option, although repeating into some protocols may not be implemented for a while. @xref{Mouse Types}. In addition, you can specify @samp{raw} as the @var{name}, to repeat the mouse data byte by byte, without any protocol translation. If @var{name} is omitted, it defaults to @samp{msc}. Using @i{gpm} in repeater mode, you can configure the X server to use its fifo as a mouse device. This option is useful for bus-mouse owners to override the single-open limitation. It is also an easy way to manage those stupid dual-mode mice which force you to keep the middle button down while changing video mode. The option is forced on by the @samp{\-M} option. @item \-s @var{number} Set the sample rate for the mouse device. @item \-S @var{commands} Enable special-command processing, and optionally specify custom commands as a colon-separated list. See above for a detailed description of special commands. @item \-t @var{name} Set the mouse type. Use @samp{\-t help} to get a list of allowable types. Since version 1.18.1, the list also shows which protocols are available as repeaters (see @t{\-R} above), by marking them with an asterisk (``@t{*}''). @xref{Mouse Types}. Use \-t after you selected the mouse device with \-m. @item \-v Print version information and exit. @item \-2 Force two buttons. This means that the middle button, if any, will be taken as it was the right one. @item \-3 Force three buttons. By default the mouse is considered to be a 2-buttons one, until the middle button is pressed. If three buttons are there, the right one is used to extend the selection, and the middle one is used to paste it. Beware: if you use the @samp{\-3} option with a 2-buttons mouse, you won't be able to paste the selection. @end table @ignore .SH OPERATION To select text press the left mouse button and drag the mouse. To paste text in the same or another console, press the middle button. The right button is used to extend the selection, like in `xterm'. Two-button mice use the right button to paste text. Double and triple clicks select whole word and whole lines. Use of the `\-p' option is recommended for best visual feedback. If a trailing space after the contents of a line is highlighted, and if there is no other text on the remainder of the line, the rest of the line will be selected automatically. If a number of lines are selected, highlighted trailing spaces on each line will be removed from the selection buffer. Any output on the virtual console holding the selection will clear the highlighted selection from the screen, to maintain integrity of the display, although the contents of the paste buffer will be unaffected. The selection mechanism is disabled if the controlling virtual console is placed in graphics mode, for example when running X11, and is re-enabled when text mode is resumed. (But see BUGS section below.) @end ignore %MSKIP @menu * Bugs and Problems:: @end menu @node Bugs and Problems, Mouse Types, Command Line, Server Invocation @section Bugs and Problems %M .SH BUGS The @code{gpm} server may have problems interacting with X: if your mouse is a single-open device (i.e. a bus mouse), you should kill @code{gpm} before starting X, or use the @samp{\-R} option (see above). To kill @code{gpm} just invoke @code{gpm \-k}. This problem doesn't apply to serial mice. Two instances of gpm can't run on the same system. If you have two mice use the @samp{\-M} option (see above). While the current console is in graphic mode, @code{gpm} sleeps until text mode is back (unless @samp{\-R} is used). Thus, it won't reply to clients. Anyways, it is unlikely that mouse-eager clients will spur out in hidden consoles. The clients shipped out with gpm are not updated, thus there are potential security risks when using them. @ignore .SH AUTHORS .nf Andrew Haylett (the original selection code) Ian Zimmerman (old maintainer) Alessandro Rubini (old maintainer (still helps a lot)) Nico Schottelius (maintainer) Many many contributors, to both selection and gpm. .fi .SH MAINTAINERS The current maintainer is Nico Schottelius. But without the help of Alessandro Rubini and the mailing list it would be impossible for me to maintain gpm. The development mailing list can be reached under gpm@lists.linux.it. More information on the list is in the README file part of the source distribution of gpm. .SH FILES .nf /var/run/gpm.pid The PID of the running gpm /dev/gpmctl A control socket for clients /dev/gpmdata The fifo written to by a \fBrepeater\fP (`\-R') daemon. .fi .SH SEE ALSO .nf \fB mev(1)\fP A sample client for the gpm daemon. \fB gpm-root(1)\fP An handler for Control-Mouse events. .fi The info file about `gpm', which gives more complete information and explains how to write a gpm client. @end ignore %MANPAGE END %========================================================================== @node Mouse Types, , Bugs and Problems, Server Invocation @section Mouse Types %MANPAGE gpm-types.7 %M .TH GPM-TYPES 7 "July 2000" %M .UC 4 %M .SH NAME %M gpm-types \- pointer types (mice, tablets, etc.) managed by gpm. %M .br %M The information below is extracted from the texinfo file, which is the %M preferred source of information. %M .SH DESCRIPTION %MSKIP This section of the gpm documentation manual %M This manpage describes the various pointer types currently available in @i{gpm}. If you look at the source code, you'll find that pointer-specific code is confined to @file{mice.c} (while it used to only include mouse decoders, @i{gpm} now supports tablets and touchscreens as well). The mouse type is specified on command line with the @samp{\-t} option. The option takes an argument, which represents the name of a mouse type. Each type can be associated to different names. For old mouse types, one name is the old selection-compatible name, and another is the XFree name. After version 1.18.1 of @i{gpm}, the number of synonyms was made arbitrary and the actual name being used is made available to the function responsible for mouse initialization. Therefore it is possible for a mouse decoder to behave slightly differently according to the name being used for the device (if this feature was already present, we wouldn't have for example @t{ms+} and @t{ms+lr} as different mouse types). The initialization procedure of each mouse type can also receive extra option, by means of the @t{\-o} command line option. Since interpretation of the option string is decoder-specific, the allowed options are described in association to each mouse type. When no description of option strings is provided, that means the option string is unused for that mouse type and specifying one generates an error. When the document refer to ``standard serial options'' it means that one of @t{\-o dtr}, @t{\-o rts}, @t{\-o both} can be specified to toggle the control lines of the serial port. The following mouse type are corrently recognized: @table @code @item bare Microsoft The Microsoft protocol, without any extension. It only reports two buttons. If your device has three, you should either try running the @t{mman} decoder or @t{msc}. In the latter case, you need to tell the mouse to talk @t{msc} protocol by toggling the DTR and RTS lines (with one of @t{\-o drt}, @t{\-o rts} or @t{\-o both}) or invoking @code{gpm \-t msc} while keeping the middle button pressed. Very annoying, indeed. This mouse decoder accepts standard serial options, although they should not be needed. @item ms This is the original Microsoft protocol, with a middle-button extension. Some old two-button devices send some spurious packets which can be misunderstood as middle-button events. If this is your case, use the @samp{bare} mouse type. Some new two-button devices are ``plug and play'', and they don't play fair at all; in this case try @t{\-t pnp}. Many (most) three-button devices that use the microsoft protocol fail to report some middle-button events during mouse motion. Since the protocol does not distinguish between the middle button going up and the middle button going down it would be liable to get out of step, so this decoder declares the middle button to be up whenever the mouse moves. This prevents dragging with the middle button, so you should probably use @samp{\-t ms+lr} instead of this decoder, especially if you want to use X. This mouse decoder accepts standard serial options, although they should not be needed. @item ms+ This is the same as @samp{\-t ms} except that the middle button is not reset during mouse motion. So you can drag with the middle button. However, if your mouse exhibits the usual buggy behaviour the decoder is likely to get out of step with reality, thinking the middle button is up when it's down and vice versa. You should probably use @samp{\-t ms+lr} instead of this decoder. This mouse decoder accepts standard serial options, although they should not be needed. @item ms+lr This is the same as @samp{\-t ms+} except that there is an additional facility to reset the state of the middle button by pressing the other two buttons together. Do this when the decoder gets into a confused state where it thinks the middle button is up when it's down and vice versa. (If you get sick of having to do this, please don't blame gpm; blame your buggy mouse! Note that most three-button mice that do the microsoft protocol can be made to do the MouseSystems protocol instead. The ``3 Button Serial Mouse mini-HOWTO'' has information about this.) This mouse decoder accepts standard serial options, although they should not be needed. @item msc MouseSystems This is the standard protocol for three-button serial devices. Some of such devices only enter MouseSystem mode if the RTS, DTR or both lines are pushed low. Thus, you may try @t{\-t msc} associated with @t{\-o rts}, @t{\-o dtr} or @t{\-o both}. @item mman Mouseman The protocol used by the new Logitech devices with three buttons. It is backward compatible with the Microsoft protocol, so if your mouse has three buttons and works with @t{\-t ms} or similar decoders you may try @t{\-t mman} instead to use the middle button. This mouse decoder accepts standard serial options, although they should not be needed. @item sun The protocol used on Sparc computers and a few others. This mouse decoder accepts standard serial options, although they should not be needed. @item mm MMSeries Title says it all. This mouse decoder accepts standard serial options, although they should not be needed. @item logi Logitech This is the protocol used by old serial Logitech mice. @item bm BusMouse Some bus devices use this protocol, including those produced by Logitech. @item ps2 PS/2 The protocol used by most busmice. @item ncr This `type' is able to decode the pointing pen found on some laptops (the NCR 3125 pen) @item wacom The protocol used by the Wacom tablet. Since version 1.18.1 we have a new Wacom decoder, as the old one was not working with new tablets. This decoder was tested with Ultrapad, PenPartner, and Graphire tablets. Options: @t{\-o relative} (default) for relative mode, @t{\-o absolute} for absolute mode. @item genitizer The \"Genitizer\" tablet, in relative mode. This mouse decoder accepts standard serial options, although they should not be needed. @item logim Used to turn Logitech mice into Mouse-Systems-Compatible. Obviously, it only works with some of the Logitech mice. @item pnp This decoder works with the new mice produces by our friend Bill, and maybe with the old ones as well. The Pnp protocol is hardwired at 1200 baud and is upset by normal initialization, so this is a @t{\-t bare} decoder with no initialization at all. This mouse decoder accepts standard serial options, although they should not be needed. @item ms3 A decoder for the new serial IntelliMouse devices, the ones with three buttons and a protocol incompatible with older ones. The wheel is currently unused. @item imps2 ``IntelliMouse'' on the ps/2 port. This type can also be used for a generic 2-button ps/2 mouse too, since it will auto-detect the type. @item netmouse Decodes the ``Genius NetMouse'' type of devices on the ps/2 port. For serial ``Netmouse'' devices, use the ``ms3'' decoder. @item cal A decoder of the ``Calcomp UltraSlate device. @item calr Same as above, but in relative mode. @item twid Support for the twiddler keyboard. As of gpm-1.14 this decoder includes a char generator for the text console, but doesn't yet support X keycodes. If used with @samp{\-R}, @code{gpm} will anyway repeat mouse events to the X server. More information about twiddler support can be found in @file{README.twiddler}, in the gpm distribution. @item syn synaptics A decoder for the Synaptics TouchPad connected to the serial port. This mouse decoder accepts standard serial options, although they should not be needed. @item synps2 synaptics_ps2 Same as above, but for the devices attached to the ps2 port. @item brw A decoder for the Fellowes Browser, a device with 4 buttons and a wheel. This mouse decoder accepts standard serial options, although they should not be needed. @item js Joystick This mouse type uses the joystick device to generate mouse events. It is only available if the header @file{linux/joystick.h} is found at compile time. The header (and the device as well) has been introduced only during 2.1 development, and is not present in version 2.0 of the kernel. @item summa This is a decode for the Symmagraphics of Genius tablet, run in absolute mode. A repeater is associated to this decoder, so it can @t{\-R summa} can be used to generate X events even for other absolute-pointing devices, like touchscreens. To use the repeated data from X, you need a modified @t{xf86Summa.o} module. @item mtouch A decoder for the MicroTouch touch screen. Please refer to the file @file{README.microtouch} in the source tree of gpm for further information. In the near future, anyways, I plan to fold back to this documentation the content of that file. @item gunze A decoder for the gunze touch screen. Please refer to the file @file{README.gunze} in the source tree of gpm for further information. In the near future, anyways, I plan to fold back to this documentation the content of that file. The decoder accepts the following options: @t{smooth=}, @t{debounce=}. An higher smoothness results in slower motion as well; a smaller smoothness gives faster motion but, obviously, less smooth. The default smoothness is 9. The debounce time is express in milliseconds and is the minimum duration of an up-down event to be taken as a tap. Smaller bounces are ignored. @item acecad The Acecad tablet in absolute mode. @item wp wizardpad Genius WizardPad tablet @end table @ignore .SH FILES .nf src/mice.c The source file for pointer decoders .fi .SH SEE ALSO .nf \fB gpm(8) \fP The General Purpose Mouse server .fi The info file about `gpm', which gives more complete information and explains how to write a gpm client. @end ignore %MANPAGE END %########################################################################## @node Gpm Internals, The ClientLib, Server Invocation, Top @chapter Gpm Internals @cindex Internals The server is organized as a main loop built around a @code{select()} system call. It responds both to mouse events and to input from the clients, which are connected to the server through a unix domain socket. The connection is used to tell the server what a client is interested in, and to get mouse events. When no clients are connected to the active console, the server runs the selection mechanism (cut and paste of text). The selection mechanism is a simple and well-designed application, whose behaviour can be cloned by clients, by telling the server to inherit the default response for certain mouse events (motion being the most interesting). @menu * Events:: * Margins:: * Event Types:: * Connection Details:: * Default Handlers:: @end menu %========================================================================== @node Events, Margins, Gpm Internals, Gpm Internals @section Events @cindex Events Whenever the mouse generates an event, the event is dispatched to the active client for the current console, or to the default handler, if present. Otherwise selection is run. A default handler is a client process which gets mouse events form all the virtual consoles. @xref{Default Handlers}. When a client is involved, it is handled a @code{Gpm_Event} structure, built by the server. The fields for @code{Gpm_Event} are the following: @tindex Gpm_Event @table @code @item unsigned char buttons; An or-mask of the values @code{GPM_B_LEFT}, @code{GPM_B_MIDDLE} and @code{GPM_B_RIGHT}. It corresponds to the state of the mouse buttons when the event is reported. The current implementation of gpm allows at most three buttons. @item unsigned char modifiers; The value of the kernel variable @code{shift_state}, as of @file{keyboard.c}, when the event is reported. It is a bitmask value, and corresponds to the least significant byte of the value used by the @code{loadkeys} program. Use of symbolic names in source code is available after inclusion of @file{linux/keyboard.h}, as exemplified in @file{mev.c}. @item unsigned short vc; The number of the active virtual console when the event is reported. The client is not expected to use this value, which corresponds to the controlling terminal of the client process, unless it gets events form multiple consoles. @xref{Default Handlers}. @item short x, y; The position of the mouse pointer where the event is reported. It is 1-based by default, to be compatible with @code{selection} and @code{libcurses}. This behavior can be overriden, though, by setting the library variable @code{gpm_zerobased}. @xref{Variables}. @item short dx, dy; The change in position since the last reported event. @item enum Gpm_Etype type; A bit-mask, representing the type of reported event, as described later. @xref{Event Types}. @item int clicks; A counter, which is valid at button-down, drag or button-up. It can be 0, 1 or 2 to mean single, double or triple click. @item enum Gpm_Margin margin; A bit-mask, telling if the pointer has gone out of the visible screen. The indivudual bits are named @code{GPM_TOP}, @code{GPM_BOT}, @code{GPM_LFT}, @code{GPM_RGT}. Only one of them is active at a time, to allow using @code{switch} on the value. Vertical outrun takes precedence on horizontal outrun. @xref{Margins}. @end table %========================================================================== @node Margins, Event Types, Events, Gpm Internals @section How margins are managed Motion and button-press events are constrained to remain within the visible screen. This means that the @code{x} will be within 1 and 80 and @code{y} will be within 1 and 25 when the console is 80x25 cells. However, a client can keep track of movements outside the screen, by using the @code{dx} and @code{dy} fields, which aren't subject to clipping. The server helps applications in detecting margin conditions by filling the @code{margin} field. Whenever the pointer tries to cross screen boundaries, it is forced to remain on the border, but a flag is set in @code{margin}. A different policy is in force for drag and button-release events. In this case the pointer is allowed to go outside the physical screen by exactly one position. This allows, for example, selecting to end of line by dragging down-left. The peculiar situation is nonetheless signaled through the @code{margin} flags. The client should be careful to fit the values within the screen if needed. @xref{Utility Functions}. %========================================================================== @node Event Types, Connection Details, Margins, Gpm Internals @section Event Types The @code{type} field in @code{Gpm_Event} is made up of bit-wide flags. The existing bit masks belong to two groups: bare events and cooked events. The bit-mask @code{GPM_BARE_EVENTS} is provided to extract bare events, by and-ing (@samp{&}) it with the @code{type} field. For any event, exactly one bit will be set in the resulting bitmask. Bare events are the following: @table @code @item GPM_MOVE A motion event, with all buttons up. @item GPM_DRAG A motion event, but one or more buttons are kept pressed. @item GPM_DOWN A button press event. The @code{buttons} field will report which buttons are pressed after the event. @item GPM_UP A button release event. The @code{buttons} field will report which buttons are being released. Note that this is different from the previous case. @item GPM_ENTER This means "enter in the current Region of Interest", and such event can only happen if the high-level library is used. When the type is @code{GPM_ENTER}, all the other fields are undefined. @xref{High Level Lib}. @item GPM_LEAVE This is only delivered by the high level library, too. Events of type @code{GPM_LEAVE} have all other fields undefined. @end table Cooked events are the following: @table @code @item GPM_SINGLE This bit may be set at button-press, drag and button release events, and can be used to identify a single press. The time interval used to choose a double click from two single clicks is set by a parameter in the daemon (configurable at daemon invocation). @item GPM_DOUBLE Used to identify a double click (press, drag, release) @item GPM_TRIPLE Used to identify a triple click (press, drag, release) @item GPM_MFLAG The ``motion flag'' is true if some dragging happened between button-press and button-release. It can be used by those applications which respond to events at button release. It is available at drag and release. @end table %========================================================================== @node Connection Details, Default Handlers, Event Types, Gpm Internals @section Connection Details Each virtual console has a stack of clients attached to it. They talk to gpm by writing to a control socket and get mouse events by reading it. All the clients in the stack can receive events. Gpm-1.10 and earlier only sent events to the top client, but sometimes users play with multiple programs using suspend-resume (thanks Ian). In addition to the per-console stacks, another stack is there to store default-handling clients. @xref{Default Handlers}. Each client registers with the server and tells which events it is interested in. Events not managed by the client can be handled by the selection mechanism, which is compiled in the server itself. This approach simplifies writing clients which respond only to button press/release events, because highlighting the mouse pointer can be performed by the server. A default handler in turn can respond only to mouse events associated with modifier keys, so that selection is used for any mouse-only event. Clients are required to fill a @code{Gpm_Connect} structure and pass it to the server. The structure is made up by four @code{unsigned int} fields. @xref{Open and Close}. @tindex Gpm_Connect @table @code @item eventMask A bitmask of the events the client wants to receive. Both bare and cooked events are allowed to appear in the mask. @item defaultMask A mask to tell which events allow a default treatment (the selection one). These are mouse events, independent of the modifier keys. @item minMod The minimum amount of modifiers required by the client. This field is used for default-handlers which manage control-mouse events without interfering with mouse-only ones. @xref{Default Handlers}. @item maxMod The maximum amount of modifiers the client is willing to receive. Events featuring a modifier key not included in @code{maxMod} won't be passed to the client. @end table @noindent Two more fields are there to tell about the connection itself, and you're not asked to fill them, because @code{Gpm_Open} will do it for you. @table @code @item int pid The process id of the connecting application. @item int vc Which virtual console to gain control of. @end table Keyboard modifiers are used to multiplex clients on the same virtual console. You (as a programmer) don't need to care about the internal workings. They are detailed in @ref{Default Handlers}, but you only need to choose the right values for your application. Examples: @table @code @item minMod=0; maxMod=0; specifies a client which senses mouse-only events, but neither shift-mouse nor alt-mouse nor control-mouse. @item minMod=0; maxMod=~0; is a client which gets any mouse event. @item minMod=1< .br Ian Zimmerman .SH FILES .nf /dev/gpmctl The socket used to connect to gpm. .fi .SH SEE ALSO .nf \fB gpm(8) \fP The mouse server \fB gpm-root(1) \fP An handler for Control-Mouse events. .fi The info file about `gpm', which gives more complete information and explains how to write a gpm client. @end ignore %MANPAGE END %========================================================================== @node sample/rmev, Emacs Support, mev, Demo Clients @section @code{sample/rmev} @code{rmev} is a reduced version of @code{mev}, but it is designed to be as portable as possible. It uses a subset of the capabilities of @file{libgpm.a}, but works smoothly on both xterm and the Linux console. It is distributed with @code{gpm} to show how a curses based application can support the mouse with a small effort. Most of the xterm decoding is by Janne Kukonlehto. @xref{Xterm}. %========================================================================== @node Emacs Support, gpm-root, sample/rmev, Demo Clients @section Emacs Support Emacs support is quite complete as of 0.14. The enclosed file @file{t-mouse.el}, also available in byte-compiled form, is used to pass mouse events to emacs. @file{t-mouse.elc} is installed in the correct @t{site-lisp} directory for you emacs installation (as detected by the configure phase). Events with modifiers other than Meta, Control, and Shift are not managed by the library. Managed events are passed to the lisp program, which converts them to be similar to X mouse events inside emacs. Actions are then invoked through a local keymap. In my own environment I can use mouse-only and meta mouse within emacs, shift-mouse to run selection and control-mouse to run @code{gpm-root}. @xref{gpm-root}. I suggest to put the following form in your own @file{.emacs} file, to avoid loading @code{t-mouse} when you aren't working on the Linux console: @lisp (if (and (string-match ".*-linux" system-configuration) (or (string-match "linux" (getenv "TERM")) (string-match "con.*" (getenv "TERM")))) (load-library "t-mouse")) @end lisp Mouse events are appended to the list variable @code{unread-command-events} where the Emacs main event loop will find them. They can be made to trigger any command (or interactive function, in Emacs Lisp terminology) at all. Actually Emacs already comes with reasonable bindings for most mouse events, so usually you won't have to do anything beyond installing @code{t-mouse}. If you want to modify what Emacs does in response to mouse events, please see @ref{Keymaps,,,elisp}. The scrollbar sits on the last column of the screen, though it is not visible. When you click on the last column, a scroll-bar action is taken. If this annoys you, again it can be turned off by changing the appropriate Emacs keymap. If you kill the @code{gpm} server, Emacs won't respond to mouse events any more. If the server is then restarted, you can invoke `@kbd{M-x t-mouse-run}' to restart mouse responsiveness in the editor. %========================================================================== @node gpm-root, hltest, Emacs Support, Demo Clients @section The ``gpm-root'' program %MANPAGE gpm-root.1 %M .TH GPM-ROOT 1 "February 1995" %M .UC 4 %M .SH NAME %M gpm-root \- a default handler for gpm, used to draw menus on %M the root window %M %M .SH SYNOPSIS %M .B gpm-root %M [ %M .I options %M ] %M .br %M .SH DESCRIPTION The program @code{gpm-root} is designed to handle Control-Mouse events to draw menus on the background of the current tty. The actual menus are described by a configuration file in the user's home directory. Please note that @code{gpm-root} needs to run with Linux 1.1.73 or newer, because previous kernels lack some screen handling capabilities required by the program. The program uses the files @file{/dev/vcs*} to draw to the console screen. These are available only from kernel 1.1.81 onward. If you miss those device nodes, you should create them using @code{create_vcs} in the distribution directory. The tool won't run with kernels older than 1.1.81, because they lacked a full screen dump/restore capability. Available command line options are the following: @table @code @item -m @var{number} Choose the modifier to use (by default: @samp{control}). The modifier can be provided either as a number or as a symbolic string. Allowed strings are @samp{shift}, @samp{anyAlt}, @samp{leftAlt}, @samp{rightAlt}, @samp{control}. @item -u Deny using user-specific configuration files. With this option on, only @file{/etc/gpm-root.conf} will be used as a source of configuration information. This option is intended for those system administrators who fear security could be broken by this daemon. Things should be sufficiently secure, but if you find a hole please tell me about it. @item -D Do not automatically enter background operation when started, and log messages to the standard error stream, not the syslog mechanism. This is useful for debugging; in previous releases it was done with a compile-time option. @item -V @var{verbosity increment} Raise the maximum level of messages that will be logged. Thus a positive argument has the effect of making the program more verbose. One can also give a negative argument to hush the program; however, note that due to @b{getopt(3)} rules a negative argument must follow the option with no space betwixt (that is, @samp{-V-1} but not @samp{-V -1}). @xref{Program Arguments,,,libc}. The argument is optional and its default value is 1. @end table Each time a menu is drawn, the configuration file is reparsed if it has changed. This allows modification of personal setup without reinvoking the daemon. %M The actual configuration file is better introduced by looking at your %M @file{/etc/gpm-root.conf}. %M %MSKIP The actual configuration file is better introduced by an example: @lisp # sample configuration file for gpm-root # edit it to suit your taste button 2 @{ name "system status" foreground red background black border yellow head bright yellow "" f.nop "load: " f.load "free:" f.free "---------" f.nop "disk usage" f.bgcmd "du | sort -rn > /tmp/du" @} button 3 @{ name "jump" foreground black background red border bright yellow head bright yellow "tty1" f.jptty "1" "tty2" f.jptty "2" "tty3" f.jptty "3" "tty4" f.jptty "4" "tty5" f.jptty "5" "tty6" f.jptty "6" "" f.nop "more of them..." @{ "tty 17" f.jptty "17" @} @} @end lisp %M .fi The syntax for the file won't be described here, being it quite apparent from the example above. Blanks and newlines are unused in parsing the file, and the layout of the file is free. Comments are allowed in the file: any hash mark (@samp{#}) found at the beginning of the line or after white space makes the parser discard anything up to the next line. To insert quotes (@samp{"}) in strings precede them with a backslash. Note that recursive menus are allowed, to any level of recursion. Keywords belong to three groups: the button keyword, the cfg keywords and the action keywords. They are all described in the table below: @table @code @item button @var{number} @var{menu} The @code{button} keyword is used to introduce a menu. It is followed by the number of the relevant button (1=left, 2=middle, 3=right), an open brace, a menu and a closed brace. A menu is made up of cfg statements, followed by action statements. Cfg statements can come in any order, while the order of action statements tells the actual order in which actions will appear on the screen, top to bottom. @end table The following statements belong to the cfg set. @table @code @item name @var{string} If the @code{name} keyword is present, the specified @var{string} will be used as the name for the current menu. @item background @var{color} This statements is used to specify the background color to be used in the current menu. The @var{color} can be specified with one of the eight canonical strings @samp{black}, @samp{red}, @samp{cyan} etc. The background defaults to black. @item foreground @var{color} This statements is used to specify the foreground color for menu items. Its value defaults to @samp{white}. An optional @samp{bright} keyword can appear before the actual color. @item border @var{color} @code{border} is used to specify the border color for the menu. Its value defaults to @samp{white}. An optional @samp{bright} keyword can appear before the actual color. @item head @var{color} @code{head} is used to specify the foreground color for the title of the menu. Its value defaults to @samp{white}. An optional @samp{bright} keyword can appear before the actual color. @end table The following statements belong to the action set. @table @code @item @var{string} f.fgcmd @var{cmdstring} When the mouse button is released above the corresponding menu item, the @var{cmdstring} is pasted in the keyboard queue of the current console. This is not yet implemented. @item @var{string} f.bgcmd @var{cmdstring} When the mouse button is released above the corresponding menu item, a shell (@file{/bin/sh}) is forked to execute the specified command, with @code{stdin} connected to @file{/dev/null}, and @code{stdout}, @code{stderr} connected to the active console. @item @var{string} f.jptty @var{ttynumber} When the mouse button is released above the corresponding menu item, the console is switched to the one specified. The @var{ttynumber} must be specified as a string. Any tty can be reached this way, even those which are not accessible via the keyboard. @item @var{string} f.mktty @var{ttynumber} When the mouse button is released above the corresponding menu item, an unused console is selected, and @file{/sbin/mingetty} is executed in it. The current console is switched to the newly opened console. I use this command to save kernel memory by opening a single console through @file{/etc/inittab} and requesting the others only when i need to login. @item @var{string} @var{Whole-menu} A menu can directly follow the label string. When the mouse pointer leaves the menu frame at the level of @var{string}, a second menu is posted on screen. @item @var{string} f.lock When the mouse button is released above the corresponding menu item, the keyboard and the screen are locked, and only the locking user or the superuser can unlock them. This is not yet implemented. @item @var{string} f.load The current loadavg when the menu is posted is concatenated to @var{string} to build the actual message displayed on screen. Nothing happens at button release. @item @var{string} f.free The free memory and swap when the menu is posted is concatenated to @var{string} to build the actual message displayed on screen. Nothing happens at button release. @item @var{string} f.time The current time is formatted with @b{strftime(3)}, according to @var{string}. The resulting string is the actual message displayed on screen. Nothing happens at button release. @item @var{string} f.pipe @var{cmdline} When the mouse pointer leaves the menu frame at the level of @var{string}, a message box is posted on screen showing the last ten lines of the output of @var{cmdline}. @var{cmdline} is executed by @file{/bin/sh}. This is not yet implemented. @item @var{string} f.nop This does nothing, it only displays @var{string} on the menu. @end table The @code{HOME}, @code{LOGNAME} and @code{USER} environment variables are setup to the values for the invoking user before spawning an external process (@code{f.bgcmd}, @code{f.pipe}). The current directory is always @file{/}. %M .SH BUGS Known bugs have been fixed. In particular, if you invoke @code{gpm-root} right after @code{gpm}, it will delay a few seconds before trying to connect to the daemon. @ignore .SH AUTHOR Alessandro Rubini .SH FILES .nf /dev/gpmctl The socket used to connect to gpm. /etc/gpm-root.conf The default configuration file. $(HOME)/.gpm-root The user configuration file. /dev/vcs* Virtual Console Screens .fi .SH SEE ALSO .nf \fB gpm(8) \fP .fi The info file about `gpm', which gives more complete information and explains how to write a gpm client. @end ignore %MANPAGE END %========================================================================== @node hltest, mouse-test, gpm-root, Demo Clients @section @code{hltest} High-level test is a simple sample application using the high-level library. It implements something like a window manager for text windows, though it is small and unuseful. The application is meant to be read by programmers trying to use the high-level library. It is equipped with event reporting to help in understanding the internal workings. %========================================================================== @node mouse-test, , hltest, Demo Clients @section @code{mouse-test} %MANPAGE mouse-test.1 %M .TH mouse-test 1 "March 26, 1998" "" %M .SH NAME %M mouse-test \- a tool for determining mouse type and device it's attached to. %M .SH SYNTAX %M \fBmouse-test\fR [ \fIdevice\fR ... ] %M .SH DESCRIPTION This experimental and incomplete application tries to help in detecting which protocol does your mouse speak. It is able to detect MouseMan devices, and to choose between @samp{\-t ms} (three-buttons aware) and @samp{\-t bare} old two-buttons-only serial mice. %M .SH BUGS I know the application is buggy, but I only own one mouse device. If you are interested in this application, just call me and awake me from my laziness. @ignore .SS OPTIONS .IP \fIdevice\fP [ \fIdevice\fP ... ] .PP Check this \fIdevice\fP for a mouse. If no devices are listed, mouse-test will try all possible devices. .SH AUTHOR Alessandro Rubini .SH FILES .nf /dev/* The devices used to search for a mouse .fi .SH SEE ALSO .nf gpm(8) .fi @end ignore %MANPAGE END %########################################################################## @node Type Index, Function Index, Demo Clients, Top @unnumbered Type Index @printindex tp @node Function Index, Variable Index, Type Index, Top @unnumbered API Index @printindex fn @node Variable Index, , Function Index, Top @unnumbered Variable Index @printindex vr %@iftex %@unnumbered Table of Contents %@contents %@end iftex @bye /* * This is because Linus uses 4-wide tabstops, * forcing me to use the same default to manage kernel sources */ /* Local Variables: */ /* tab-width:8 */ /* End: */ gpm-1.20.7/doc/infofilter000077500000000000000000000003261204257734200152270ustar00rootroot00000000000000#! /usr/bin/sed -f # allow "%" as a comment char s/^%/@c / s/[^\\]%.*$// s/\\%/%/ #preserve blanks in @lisp blocks /@lisp/,/@end lisp/ p /@lisp/,/@end lisp/ d # remove leading blanks s/^[ ]*// #s/\\t/@code/g gpm-1.20.7/doc/manpager000077500000000000000000000043341204257734200146630ustar00rootroot00000000000000#! /usr/bin/awk -f # Copyright (c) 1998-2001 Alessandro Rubini BEGIN {IN=0} /^%MANPAGE END/ {IN=0; next} /^%MANPAGE/ {IN=1; USELP=NEEDLP=INTABLE=0; NAME=$2; next} IN==0 {next} /^%MSKIP/ {SKIP=1;next} /^%M/ {SKIP=0} /^@menu/ {SKIP=1;next} /^@end menu/ {SKIP=0;next} SKIP==1 {next} /^%M$/ {next} /^@ignore/ {next} /^@end ign/ {next} #now perform all the substitutions needed { gsub("^%M ?",""); } # Use gensub for converting tags: itz Sep 30 1998 # # However, the gensub function is gawk-specific, and we want things # to work with original-awk too (for portability). # Therefore, use a normal gsub, even though it's a subobptimal solution # as it may step in extra braces. The good solution will be piping to sed, # or match, extract subesxpression, replace, reinsert -- bleah... # (ARub, Oct 10 2000) /@b\{/ { #$0 = gensub(/@b\{([^}]+)\}/, "\\\\fB\\1\\\\fP","g"); gsub("@b\{","\\fB"); gsub("\}","\\fP"); } /@var\{/ { #$0 = gensub(/@var\{([^}]+)\}/, "\\\\fI\\1\\\\fP","g"); gsub("@var\{","\\fB"); gsub("\}","\\fP"); } /@(samp|code|file)\{/ { #$0 = gensub(/@(samp|code|file)\{([^}]+)\}/, "`\\2'","g"); gsub("@(samp|code|file)\{",""); gsub("\}",""); } /@xref\{.*\}\./ { gsub(/@xref\{.*\}\./,""); } /@ref\{.*\}/ { gsub("@ref\{",""); gsub("\}",""); } /@\*/ { gsub(/@\* */,"\n.br\n"); } /@[a-z]+\{/ { gsub("@[a-z]+\\{",""); gsub("}",""); } /^@table/ { TABLE=1; } /^@itemize/ { TABLE=1; next} /^@item/ { gsub("^@item *",""); printf ".TP\n%s\n",$0 > NAME; NEEDLP=0; next; } /^@end table/ {TABLE=0} /^@end itemize/ {TABLE=0} # discard other texinfo commands /^@/ {next} # manage comments and '%' /^%/ {next} { gsub("[^\\\\]%.*$",""); gsub("\\%","%"); } # remove leading blanks /^[ \t]/ {gsub("^[ \t]","");} # put a .LP at blank lines /^.nf/ {USELP=0} /^.fi/ {USELP=1} /^$/ {if (USELP) {NEEDLP++; next;} } /./ { if (NEEDLP) { printf "\n.LP\n" > NAME; NEEDLP=0; } } /^.TH/ {USELP=1} # Escape single slashes (e.g. in documentation for `-l' command line option) {gsub("\\\\ ", "\\\\ ");} {gsub("~", "~~");} {print > NAME} gpm-1.20.7/doc/mktxt000077500000000000000000000011601204257734200142320ustar00rootroot00000000000000#! /usr/bin/awk -f # This shouldn't contain any gawk specific features anymore # Program to create ascii from info; # Missing: table of contents # skip BEGIN {NODELINE=0; NODE=0; KEEP=1; printf "\n\n"} /^\037$/ { NODELINE=1; NODE=NODE+1; KEEP=1; next} NODE==1 { next } NODELINE==1 { NODELINE=2; sub("^.*Node: ","*Node: "); sub(",.*$",""); printf "\n\n\n%s",$0; #print next; } NODELINE { NODELINE=NODELINE+1 } NODELINE==4 { printf "\t\t\t\t"; } NODELINE==5 { printf "\t\t\t\t"; NODELINE=0} /^\*\ Menu:$/ { KEEP=0 } KEEP==0 { next } { print } gpm-1.20.7/doc/specs/000077500000000000000000000000001204257734200142545ustar00rootroot00000000000000gpm-1.20.7/doc/specs/synaptics/000077500000000000000000000000001204257734200162715ustar00rootroot00000000000000gpm-1.20.7/doc/specs/synaptics/www.synaptics.com/000077500000000000000000000000001204257734200217065ustar00rootroot00000000000000gpm-1.20.7/doc/specs/synaptics/www.synaptics.com/decaf/000077500000000000000000000000001204257734200227505ustar00rootroot00000000000000gpm-1.20.7/doc/specs/synaptics/www.synaptics.com/decaf/utilities/000077500000000000000000000000001204257734200247635ustar00rootroot00000000000000gpm-1.20.7/doc/specs/synaptics/www.synaptics.com/decaf/utilities/511-000024-01a.pdf000066400000000000000000014000051204257734200270660ustar00rootroot00000000000000%PDF-1.4 %âãÏÓ 1 0 obj << /Type /Page /Parent 1591 0 R /Resources << /ColorSpace << /CS2 1605 0 R /CS3 1604 0 R >> /ExtGState << /GS2 1626 0 R /GS3 1628 0 R >> /Font << /TT3 1599 0 R /TT4 1601 0 R /TT5 1603 0 R /C2_1 1611 0 R >> /ProcSet [ /PDF /Text ] >> /Contents 7 0 R /Annots [ 2 0 R 3 0 R 4 0 R 5 0 R 6 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 /StructParents 1 >> endobj 2 0 obj << /Dest [ 1 0 R /XYZ 230 587 null ] /Type /Annot /Subtype /Link /Rect [ 498 668 538 681 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /H /O >> endobj 3 0 obj << /Dest [ 1 0 R /XYZ 183 366 null ] /Type /Annot /Subtype /Link /Rect [ 290 527 330 540 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /H /O >> endobj 4 0 obj << /Dest [ 1 0 R /XYZ 183 366 null ] /Type /Annot /Subtype /Link /Rect [ 169 325 209 338 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /H /O >> endobj 5 0 obj << /Dest [ 1 0 R /XYZ 190 132 null ] /Type /Annot /Subtype /Link /Rect [ 186 280 225 293 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /H /O >> endobj 6 0 obj << /Dest [ 9 0 R /XYZ 180 599 null ] /Type /Annot /Subtype /Link /Rect [ 226 84 265 97 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /H /O >> endobj 7 0 obj << /Filter /FlateDecode /Length 8 0 R >> stream H‰œW[oÛF~ׯ˜‡}HxĹÛ €&Ý `Äzh‘-Ñ·2©•({óï÷ oš¡ÎPJÒ‡ þÎ…çö3óë]]½ûø+XkLjá¬S“š¶ñOZšñQK3ÑGÒþrM Ñ(Ý|ÌÇ'hЧ¼¬ÝGE] rî¾þ¨BEƒÿÁ…£<±>OGbhó#½ü4µrÙ‘]Áz‡I—j*ÛR]×d[½ä»«Ãöuãs,Þ̲åÒW*J²¬žžPqÃ)c%O²ôRÔk‚*p¦©Ö¡ý ä`Ùræ îkRÕë|Gnïæ)Êaö̓eA$ µz̳V;òYåÏÅ2ß0K>l™hlCŠ„ŠD±:eˆv³!÷9<õ„M†K‡S±òX½ãêѤY$×3dµj*›µŒé:t"*÷D›ˆ Î/ª±íi”µO­šhQØ4£dcàjìCšQ°O2yBÁ>K8dý¦FWR³ê†óìx«øÈ XM´cú-S˜%cG y+jw pœ1$6nÍ÷°áõªtw˜Àèvü*ifJÚÆËŸ¤zîn‡PRÊšmq”}ØÄ¾Ha_tb¸L‹„ù&ÿˆ¹‡WZ^æ^_âžshðæ âG9çB€>t_<¢¢¶aÁw–¨ R`¡`,sQ8ðN2ŠÙ0›¨k LÌŒ¸$H;O¸>”H$Œ…c/ G‡ó ?ÑH/²hݶA‚>¡±¤ðXÑîÅy6ž\âY 8F5úçsÌ"»È"ÄbRãü}¼+WÂÐÊžÔÐ'é;÷ƒ; À=‰ÇàŽÆ#pOä1¸£òÜ“yöóŒ¿\&hÉÉ»‡‹¼{À00ÁÄÝã$”ÊØ"FÁ¾Ž8ØUûâ`WAì뇃]õP°¯ úYFŸkÉi~»¢%gžš]V—T-q9:W5î®;·ð£°Åá(4»ûZ8µÔ¢ÇÀ,zœ¡àÐ(Ø÷=‚}O`  ö=CO` _Cô¥{þ8ãða“ÇÙ €g};ry¿ã³¢9Y¹Š&ði ÞBÎô›$áæ-ØO;ˆØµ&¶†<ª¿úã ºã€v·× h(.˜Rî*;ÈÑä+*ãÀ¸Ûšƒ$6Zy`fîA¡#°ŸPû]ãϤ©ñG‡ ÆßYæçÆŸÁ‰ËcŠ‚ý€â`7 (Ø(vŠ‚ý€â`7 (Ø× ½,‹äûªÆ(›*š@¯¤KŠÆëž+DÀ'8»Å£œÝÂQΆ*Yo¿éQO èÐ8ÚwŠm£}_ èŽö¢Ck ¨_Lü;KÞÀu‚O²÷Q§ï#ND¬ÓÄñ·JSwvþ0õ_ý9Íàžä4…{‚ç8ÜÅ* ÕŒ’xö³ú]7œ‚”ªI:øÁΖçè@¥Æ…Ð7° ÇY¥Â«R {;Î1]­ÜŸ{Ý1‘tÓQæ°xä„rK1e@u\¹ãŠˆ²hG9ªÜRIL¹%ϘrÇ4e Í>‘°ŽˆbÊ:™JX×µåÇWÉQ×ïÁðm^¹QOƒcã1ΡkÀ6Ðk‡íƒOSž…Æ2å ¡€¦¾Ûx<ìrèrBnïæœ|Î7Y]<ûJŽ „tr06‚)ë §ª.ª@ ÒhÎËÇRԤؓªÜt$H»ÁM´f¾Î7RæË|¿ÏvßP­)S*P!uE²Õ ¼ääþP×UÙü…,ªÃr}›afD¢©Pƒgf… B»[–‚ä •ä¦ÊÆQ²Z6ùkR¯ó2±'û:«s²ÌJÌ€ä#»Ï¡»·Õ®ÎW¤@•,P`Á÷áÖ- fÓ&~âÖyÓÍ^gCiE¬´8IvWÛ§bµÚ´ G éÐ\ªP©ÂESØÓ2 EKrïšU€ŒtÕ ð~I`°Ûù¢Mà·¨¼…}Š‘é;T6"°áHô8ê9Þ'\%TƒÊ(1«¼É¾ç&§PFXª¡™ú²®^òç|×tL_Y‘ü¿‡â9ÛäeM¶Õ¾ †,‡úcµ†¢h›´Ëþú~_mu$"¸Sh*à!èDJm©bbd¾½&Õî)«_“—u±\÷£ ”¹†kðÿœW]Ü6ü+z<Zü¦ä!÷àÀ@‚äljó0»«µgÏ,vfmøß_Q#JäLQ£]¶×®V7Ùì®®.|4\|¸Ô›íǧ)‹z’­’eQã/'Ñ…/¤M‰æÃ¿~nýívó¹¹¥·Ñ¨€ßùRio‰«ÌU\3­Çd;»!^±ßÝoút#€å#‰— SɸZKu9:Œ¯?rä]s×ÝF×;8åá 8¢.È],†Òc3œ}CS©L\H  SÆf7Üsº£›îh[à˜¦‹mQÜôéq×ìëõ®1¾ƒ³ºüêas÷A)E?°c£nÍ?8pçzFŸgî5õÕ¾;Ë7!¶}dŸ"·wi`lw›û~ƒ›÷?¢Júéîg{Ý”NS+™*ÄżG"ü¾Û<··Nµ¿UTRùWc‰½å íQì íY|rìï7·ñ¿wQdåÑÚZ4Oûx¦‰‰%âc£Á{ض aBC|Ùèºô*QÖh¡îäyܶÆ_Y€¸ú3Èw\?Nù|™EzÁ 3j]Ž*©!€ª(Ƭ¢ZblÔQ'ãÿœÐá¿ P‰v:rÅ—& )Sù2‚õë`Ž.\ǶÝ|sÇ‹`Lñx™V(DÆE†/Á,Áœó{ fé%àœÝK0Ëç]‚Y.Á¼é0¦Ü´kH—O9Ð*(Ì«xê¡7¿½‰ò!2ÓlѸ¡ 2Ç«Da[ÖeÃà5ñpÓÄ$ůyšõøI‚B<&’{Z‚ä(3J3LÒNšÜ®vÉŽrá|.s‡- Ü)!Oi¸Y­‰¬Ì ªuîðÝß,4_a=öÇÌR nDë¢Î˜-…ú‡šú :åWÝG¯¹ÖF8çÍÕLÆ©êÛuohVEö¨PU:䙌#Öµº+ÊŒ¦Gwq‚úU‡´ki4æˆôE…ÿÎ"°<¬+4·*r@ƒcïËþJ#£‚3¡ybbP\b( KuÆÅžØ˜Ãýq8¿õ äƒØq‹©|©<ˆžwôJoPµ6n»W½9ʯ¥7…ò]çWxãYzCQà¢n…7N{…7 –—ë¼qÒ)½AUâì oœH oFÛø f…7Þñ¥7Ìq¼‚®xK½ä:Q5 K]D±QÒ0,)Š‚†aIÏPl”3 Kḭ́<“t±h/nlc=-•—ñ/mcx^TùC‚¬ˆ ¯«(ꆢÕ< ]ˆ"‡¨[ ¦^ œ*‚©8ÕS100» S90pªæ^¦níŒ%u;[pu;ãªUåòAÝžŠËáGKÕmçãi,Ôë‰ Þs©×BúNæ–’ ah ð‹)| . •B JËÀ5¡–Bbå–•Tx>ˆ.T–(çÜáŸTz´èo|nHdZô²ªùZ‚ŒŒ]¯õõ‰ñJKž £0 e¨ågjf¬ §çÙ•Ï—8 ž°(q<Ï+¸1z¾F¶®F_ KìE±‘¼–¸‹b#u1,1ÅFâbXz3†å¹ÕÏšcÆŠvqŽyªWÖ¼•uzå±°yê…96ÀÕ96 Õ9§¡:Ç(˜*ƒc)P0ÕÇb àt Žå@ÁTÌоlŽAƒêå96[ð96ã®UÝÎ4sÌùpÀ›»xB#ô‰úþúÛ ÑþC+LGZ«2`ÎX_òXCéV¨eò{é~=_ë']­øK$•;AÆZ¿DR¡d¬òK$•8AÆú¾DÒó\"y&»g½ŒXfáeU+^&z¾ú4 4¶@u\¥º­RPU}x ¦·çàøüLÀÁ±(˜Ý…€c)P0Uóäbå*ÕA-ûeª›-8ÕÍxcjÕEEÏ,ÙÖx*ÙµoðÚ~Ô™LJ)(­Ì kgÑk4³ ^´Þªë‘;èHÙê5‘©œ¸\Ï Læ°²¦ 7ÚÄÊÉΨøNåä%ÄòŠSÚU§ôVt¾+^æO~Êà„Õq¹~ÊÐÆýãú)éð¼Ø|0&)B·,°Ö¦ªYU>~U`»£tøŽ¦G‡€µÇwnivtçD§Ôª7¤söbÒJ¨Voø;]¸tÜjôªôt«"K«‹Êý•FFP`-ò4 Rs)e¦9ÀáiTà4 8‰…'·¨ã:ùBµ=/:¦ƒâÌ[èg žkÞ8ÕÞjÛw_áÓwé õŠ‹ºÞ8ÍÞ4^®óÆé°ô"Æ+ØÞ8ÇÞↃW0+¼q2*½_AW¼¥6G¿ššÖcXjpŠÝͰÔÚûša©©)6v4ÃR;3,ÏäóD;H§…—‘íKUt}Uõ#rAõpUõhUõ#_®ªú)˜Jƒc-P0Çj `º Çz `* /ø2Ù¯‘Y¹(û3 *û3¼±Õúªë~=O  Ï|ü«.,u„ë¼Ê-½ÔT¢Ì$”fÊ… ÒÂÛPDçbLa?°!·c-ЂrÆw.R¨ŸÓóºÓ¢]dcÙÒ1v½çáúJÃëΠ´xSRlìIŽZ’bcGrìÔû‘c§v¤Øø\+RkŸõVÐ1ê ?Ó±¾â­¢ëkü¬q [çç\ãçZã父5~æàT LÅÀÀ©(˜ÊÙ]˜ ‚SE0°xAÿ2~ÆŸv™Ÿg ÎÏ3Þ¸j}Qi¶’Ÿ=×ó½¿ÂϳåU~žM¯ðól¸ÌϳkÈu_çç\¤ðYšL{#Ì2?Ëj²Áõµ–÷NÌåêÏšÖ+iæ(:zlZþ¥³B™ôå9U¤–¦Ÿ*‰ãÖ?ž ÐU?Mt@?`¨:’ÿt¤Eþi¢úi\jêiJDÃ?uíBšRÒO'0~Úž‘|Qq¥†Ô§Šûa &™HJ뜤dP"v— ¢=°79 ÉŠh¥Í ¶…AŸ{ffðñé±o”hšßþx­šŸoûÏOǾÉ?Sëâæ¯þ|ýþõ_¹n­ˆÄ–Ù¼.qMÝï é„´2Ç›¯IU\îËþ¸ÝMa\J§sÃÛÿõÇæÃYÀ08 ¥Ã»¾ù)·22ÛX Ù¹ä‡WU©jï(OÝ Ÿeø)R¶Z7Æx{ln7»æ¦ïwÍ¡¹¶°—Z %½Ï¿‚ñýãþ 5wíÛæÍ›íéù›ã§ÍôøÇ¿wûæðˆž†#Ûéð;|œ:ÝÀ‡³÷›íñÐl¾n¶Ÿ77Ÿûæ¸G<ì‡8Íá¸A•íï›Íî;;®ñ^à´ENšÍÝÝ6¾øæót0äºÆêZZ•¦§S=ûÝáÇæÓþÍ“ê0Â:S~ÕíÿÝP{«1¡â3äöñŠÑúL|L}ÝÒ³J× ¯;[úúãûnópÜÞšÿîŸn?±C(£@:úìпqÓXÐÈUaº¹kÞîŽýãýæv˾‚¡°qê_í>6¿£FH-×BZíE2Z¯†´Žò‹ª†£VHµ2x¡tpë!Á>ER6CjÚò}·÷4:±Kþehw¬x¹µf×5‘ŒKIJK±_3k·*ó|^-{×ãÿÌ" ¡…µ½ÚM&9­ÐFpãwwß!Ï 3êüÕªß1[(V ÕDÒX8š¨Wù´ÿï ÔBNW†œƒŒímãdÛŸc]Zù'Óùs–ŽWÁœâñc°‹ (¦ÐE†/ÁY‚ xÎï%8K/ÏÙ½g9"à9E—à, —`UÉtlõ#qÚc”ŸD0n9BzhÐ?«ÍÚ*fª:[ì*úBf¡pÆWñ>ëÇ´Í·³7¶ìC-£LÀoØ(EV ùGa 5Ê‘ÚC7axW–ÍûxvŸ —1¬ª}J=i¡†tl ¶„×6djjŸ~añµ‡j PZ•­Ü6 é³<™Û ý+5Q$¶~XÜòaÊÚû`7ä5Ïß 7?kÚ> tõÒ'ÏkƧiQ€4U&åQ»ü¬Ö]ÜrWk %UX4À{ÞæF [KШMá#X@ÅE©¼£áÑ,ÑÛØ_8e- —)ÈV_³v.¼Ý€ 9·à‘žp!ègKÃÏm¸ŠŸ[tºYstô:~(9_Õñ)ÊVIèRÙ?q)+!{CRµ­¢¢ÒLd~—½Z#KÛÈU/žKa¤Õ¶Í¬ðiv!­ØjŸ?R-%Á!†Ú”fËJ4|ÈKÂõlY•ÉÁ˜-Ù²0qqi˳e5檊íd•¦×QØíÖ€K 5àê%üËåî†Â\}_ª60-\çŽ]çYôLjÎH äàHƒ,™æàH‚,ÈÁ‘)Xž‚Ušã‹fd.»þnTmy7% Õ®½›Á»2¼9¸9«ö|äèT-…AÑ©28ZJƒ¢³Obh)ŠNÕAÑùk:ùºù.õ~u:ž-øl<ãiÕšS¬ÖÞô—:ÓÏrÌàù}¾¢~(åŸ BÈ_Y½!Qq…puÇöòIL%/üµ½Ó½rïÌο*BdZäÈÁ± àÐ[ ÀÁ±àPÿ_ƒU¢íËÞN‹xM¶8*[¶¼]RÞÎ ¹B#Þ"Èn¤‚šrM‚l Smp´E§êàh)ŠNŸÄÑR *„¢Õ{rñs U49Ñ+9³ 9Ã;Û¬6*¢Î«ƒ¨ñ@Wr ¨˜Ë¦\¦C•ÕСNÕ¦Í Å-ª]Å dpzKxô…RÒl OÅÉåÒâ±à`¥ª|6'äÉØ\IÕU5ßpJEµí²^nºlp"…´xªùe#€‰iÛe:DbÚvY:Š/Ö1c1tñ%‹nL”¶ËÊëMÑCî¥Ï4U&F´~X|½¤™2˜«Ië­ÏJ§÷åzç…öj‘ª÷t4:‡_t˹iÀ YVë÷ÔÔZ]ÚúvÓGá|Z–Ô;~Õ\«Ú,ûjš 8SÇöU§ù¥òÚy¡×¦Æái‚5à2Â8<Ͱ\†‡§)Ö€Ëãð4Ç8\½ kjAFÁ"Ò­2ü+Oø²kÎé|[xŒ)×|Ü葨ʣ6O)…ùÌ©=bॾ/·x |0T :]m÷ÈÙ»öˆ†Ä˸9#W­qùeìFœ7kÑæ—1m…  ÂBsÇ¡`aŽ@ÁÂûŸ‚¥û98ö>KçS°JëËvœ`…¾6 Âkw8Wvœà3ƒµwœoî8ÜÜq²žjï8jƒ£¥8(:UGKyPtú$Ž–¡èT!­Þó•;RfK¶¶œ¹ ßsækÖ\{Ó1çv!q£P6K2aíŠn62B· šf–AjªPvØÍæ¦\àjˆ«è\]j,C.ÎíhSháW@®R_Ä(.«×y€N¾ <ׯ_c4†j28K—rplR –åàØ¢,ÊÁ±A)X^Ž‚ó4Gù²wƒ¿,£Ê!U[Þ /¯½› "®±÷€7Ù{€›ì Ø´Ù›£¥.èX-•Ñ@ÇÒàèì“:GKup´zMý:ö¶.'z»Ïœ¹Ïx盵FUÝFÞÎ+êPÊ?]áí³åUÞ>›^áí³á:oŸíh;ØþX‹·p•—)8tk¼¶´Å×*8›+úº‚³:ÿ(U‹¨zØ$ÜÓæ¿æ >¶pã¨wÐ¥åè’;Jƒó³ZÙþµÉHM}¯JE †YQ¨©ÿ-³¿”BƒèíáØ=·ÏŸOOÝ·ýé¾û:rwu(‹.›butÏ Á‰^ú¹áíí—ÝøÜOâÑÚ* òìàbÂ;¬73CÔåéþæ¡»ËúO×Ó$×, :bŒØü&³hÏÇrË¿uÿþóáæñ´ÿüÔ=?íž:ø¾ùrb×±F‚ðLõÁ;nˆ>‘ÎU÷~¸9íºZ›Ý§Ý=#~ØêØ-5Lȼ´Õín»)#n*‹Ô(‹„—㬛َ>³„m@ ÎÏ<ÞäöèîÇF Ý”ªÏÜœ¸ÿ€Þ[X>uO÷Ô6ýŸÏjÙi‚¿²?@¿âô˜ !qC…[ÕCÒÖRGnDéß3.¤6Äâì{½³;»<[I,1Ú^2=™›iÉì;ñõ÷÷Zâ–ÔP»ÉìÚnò½÷v{Ê_Ú½rö•×ÓÔv$z“79;Ñ6oûI ú.S*R˜\RVÐ6áç³6=Ì‚]HÏqêŸ0%æGˆñ÷1C ‰‘p=Úq ã˜;…Ñ]×.ŠæY3ûÄbU 7 ¾Æ«ª I¯ B(ô¿¯—’‡ÁzÍíø> /ExtGState << /GS2 1626 0 R /GS3 1628 0 R >> /Font << /TT3 1599 0 R /TT4 1603 0 R /TT5 1601 0 R >> /ProcSet [ /PDF /Text ] >> /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 /StructParents 2 >> endobj 10 0 obj << /Filter /FlateDecode /Length 11 0 R >> stream H‰¤WÛn7}Ÿ¯àãîƒ(Þ/‹ €åxƒ1`Ø$Yà ÈÒØ™…- ò(›üý{šÝ¤ú°»gÖœOuU±xªêðòÅãaÿéúæÀ¾ûîrû×ÃŽ]¾¹þ¼¿»>ìïïØå‹Ãáúæ÷Ý-{¹½`.¯®îÿdï½àÊ2o,×N[fâ>Xü Ü !ه￿úáåæòå;Ån¾1ÑýǾÝÜm$Û³ÍåÛÝŠðÇîåý—ûÇý×ÝáqÃ÷›ËéƒÏß6WÛÍåv«™dÛOÁ…–moØE÷“þñ¿Ìó:¯Ý¯(›ÀbÛ¯›¿mïŸn~s}Ë~º;ìþ¾ýϦ6–Êp!¥-?yüt µæ:šÊð™yn¤ ¥Ùþî3ûñi»c/noQQq«uõÍÝíÓ×°×O_û‡/»‹«ôUw`7ž]MÏ®,¹2¢ªÀÓá@×÷îéáá~[EË]0¦:ÿ½{˜šj©¸“¾Jsw³ÿ´¿é> ;œ,?`S3c#7ÆûÒÌJyA'À:jâ[p¥µ2D„©­•–G*Ïowpö¢+gª¤H5”TNÕ}vüeuä‘þLµÝÝ÷Ž/ÓUÐm?î6Ÿ6¯^Ëߤæyýò§ÈÛ‘øGþš‘¿Ru‘é—êè»Ð‘EÉéâTç° ù̯D~³©%e&LéçjHžêPeŒ«BùF05,­õsÁèPF§RÁ\#˜ž ¦´àÒÊ™XÊN#¨®¡mÄ2³±|äÚ8=,D4¢2˜i³sÁ´ Ô³ÒÍÓDHA¬¯‚éF07Ì{sÁBàJɪÒÄÌÏ3Êñ¨•š fºyé*¾2ÙfƒyÇ¥òv.Xp4ÁdÅWp°ÛwœyÒt?Ž­KãFÌ·n=ìÑ)­ C·Ôj¯’­»9”<÷s¨ÿS õÅÓ—žkš4ÏË©DÅM³j@­+Q%5È&ê4—M4-ÝFLÿrD»®@ÅÅ2 Ù44…i|™ÀöqÒ.iÇŠ8ç¹ãY0•¸;ŒãAõ(égFàP`æú"p(/su8Ô‚¹DŠ€À’Èp uËÍçåF~ŠåF•Æ—H*ñØšU­I äCK£Å®Â-"ÈoŽ ©P—uûÖ¤ä í‘ÔýÓÅŸÔ[Hiÿ]™BLÌhƒFiJ»V*¥2ñ<ÞÈÒ¡€I)Êc#›5‘•¡u‚.þò…VŽ„¾´Ô[’ìsI_Œ–\}€¦>ð¨üªóØ5çÑÚpç¼Y¬dÚ¨^¬»C·*²'†ªÚ!®dÚ¯NèXÑ –GÇ´?ýª$ýš$&é×IøÑá[ÙèÀƒ_G´°*r —¡"ÅÏ02õBp&´"“Xs›'””éw=‹1@°¼@uÞš£ç«œ_s£^s#Ît‹]±ë¢Ëiœ1ÏwݹK’<:Nƽ÷œ‹ˆaÞq=3p™¢9©¡ˆ&Â¥ägZÊžÙRɷȾÛME-â#,ób=í–Y±žôËœ‡XOy„å;CXY^wÒ…Q@5?¡þXq]ÉóâLuš™€Üœ€Úœ€„6r˜ÁL\€`&‹³4}ø€Àò±†Yœ€ôÀ²¹•[3°´ÁS°´`¦Å1¨ˆF¹o¸´ÆC¹¯» îˆ#¶×¨HNJ£HNZY6r1bÞ–Ásái^.FŽŠ”¾Ðk"C­1}dÐó)Òã§pØxâPm´Iü)rTø=b‰…2š5YªUYzË£ÕÍüг¤ç Õé)´œe¤véí²œ%ܬ“W“6œZú(°Ö¤2‚YE³*°OýQ;ü–G2¾:³€ÕÑÑÑsF­ºC¸‚§o0j¡*Ž¿ÅµÔ䪢信!Õ[éXüÕŸhJ2è°æ4nÕi<½öŒ©Nó3Î2½9]=U^CØèã]+Ǽ‰¬O l¢²ò.jÀyµà~5༑Zp¿“pÞJ-¸ßK 8o¦\^oŠ•£öŠÅnÜ,™Š%yžu ×Ô3oz!vƒoÁ›Å‹¦ò¦4iŸý oxyÔÞhiÑAÝ oxÈWÞ4­¹ÎƵ7Zt v…7=’oµüRL¢pæñÑÁÍÇG‡6„š68°‚™øÁLg`¦N °¼Â3Z¤ØsOÑ?) 5ÖÊ4ïtêÕåW½‹ 5¡·qEŠÝfôUd‰ ©­µm¦˜ç&=´äŒšmÁýkÀy̵à~Ð5à<êpY\sºš¥f³jÖA²b &ÏKPyîZ[ ayIA¬ßQË÷±þò–obýµ!,ßÂÊÚž&Yé‚0{Wç –äY-^–¡#´åJ7åJ‡6åŠÒ<4å &@0S ˜É€Àá,Ìt@àÀ–x¦\9iN®ŒX®Œ8s-výßr…Æ–>ÎÞßäÊh¹(WFÓ¹2.ȕѰQ ¢\.È•Ñ0ÌË•åO”+K)re4tóre9ÅåÊBŠ£\Y`Ä(W–S{Þ´ÌrçŠäÝc'jšÈ«7} «_ªüxDÔ/‘¡¤zÒs7<+¼—˜ÿ^òõ–¥¢Á“‰'o yäHÍMÅ}½A\I À§òN¯µÓkK¶gÀ¡×ÔòyÜ]÷$º~ v¼§y?µìs µ/bß ÍØÐV|Ú²„b ¯ò2}׊7ÅÊ´Éç·â¡®Úgz=?Â/µ,רÏÉ”>†ŒŸßqÎyqÄ ­Š8Jx:Õv× Àç?»§ú±îoøZ1AÅŸÊ8.»Öuîp[I›^¬Š¤(+¶šÊf† ŽÒµ;–(Œ±™QeR¼”6K+ØâÜ#ÌD~];ƒ]1uÌ-tÌPÑCC)Å€0v‘IÜ[®ˆØ¶OÅšce:©\lÎbO‚(Œ766]žñÒÉØôÀ›úLJ›$PívßÃêõ:0:¡r] ?•ÏLÀbUv»Á²‰?A] ]è8vkæ’÷ŠUÇ ˆ׃I­YêÅÃùšV§g‰LcàŠ"¶}hPñÄ¢¥/iÿF[ÞÔgVú*u _LçO¨ôÄaœI- ⾦’ž—‰Û-þ~µëfUÑÜ/ì`“)'mobæ™Jf›l¡ýèHB@š3û…iSÎãR¥вÁ _méI§ûîREkL J29Ê<(Þˆ Âž8+±I#Úç[déôÜh•ªcõ—%«ó¥í墂“ùÛ$<¯àÀª°IdþØ{.5]dÂy›²{@j®ÄÉ‘©086WCGºœt\’V+´Ê–2Éx‘Ôü6°~׳u§ãÒz—<›%e=¤cácS–@”S™µ…ŽM{ÞÔáº-®©»òò4mÑ;O¬±$–áQÆg~9îèˆ=Ž7áÀ³­ÁQ¢súáÅT Z"½Lj…YáU±CµdŠÒ!H »:Ú$Ñ1Óöy¹«i;)vaãÛVá=E ·ó”t •ZÆöø¢-ôäÈéô\¸¹ð‡4*öæ73Î3£u’ØLWýÐ) pÙÂÅÑþÔ)4¿+nІ,?~šQm0Ù·ÕnBÚ3Êx@>y5­Û»×\“Hµ-´Ó‚@áÎ9_EQÛê‘ðŽdûzWWl*J8b¡öãPë»7´Yk±iÆØg¥¦1ž»ñ<âÑâ\±)«+Ta2]ÈØ²šJ!'Œk¶e¸6å…;Ä‹¨{ Kò‚–5•PšZ%äœÊ3élòÚEAgpêY—Dæñ Î4ð‚ ÃX©Óî@Ð “Þ¹ÀdžÓ#Ë+:j@³eIË{nÊs®’ '©2o‹Ò9ŸÛk2PÔj•ƒeÙça-oL;¯(RkÖ”¸ØæÉËX>4×ÜçIÔš,ãËÌ9—Œ6É(¯áúcîL ò›nØPöz…­Wõ<åK“wjä"ÆN°¼!µ>TsóÞ.ÖÞéÞë4<ÐØxÞ ­³Èƒ-°Â=ê ˆàÈ´îCÙλ«Õ–VþTÃrª¡åjH ¡.ŠHK“²îØgjƒöY•<«âؾ¾^(ÝBó}‰7Bs›|Ê¡ÄcµkÖñ›…×~¸}õáãûW?}?ÿüÓÇ÷¿þ"°{Þ¾}÷ËûWïn“Å('–ÍY–E$àN«ëØZõÿ*öqRj4‡ÔÀÜc¿«oøË@c%J“| ûŠê^ØjƒØt‡þ„ ²4qÚÆAŽBpyG¹Äž`óÔìvÓ¹4‰¬œY´'À 2Ž"ªáxšàù ¡‘— ¢ÓȺkw¼hЙ3É«äE‰:'–|8pËÔ’.é’÷ü ÌM–ãRMZ@¥äA¨³gbbΛ:˜Ú$¥í"^X.2…E÷D¾´ŽöI½—g§ÊKí®(¹)q†úÔt #‘&ÀŽò‹×‰Å†ÕÒ%•ÅT]^'*`ñ¯ç-ÅÄ⠙ çÙ4hvB3 ù½óÆXÆæt~\LVÍiÌæ> œo³ÒãËqxÖTÑ¡q™ß–æÜ›$*­tÌ:Ÿ²Ó8(l|a ¥÷™†Œˆy±T¨¬´¸#S> Í]˜:ÙmD7x8qa3Qs%Ë$é±>ór1"´ÔIß›!\ˆU;j‡u ¶|bKŠFjhK64ª¹u–J&àÛ˜¢Jg@¾­Ë Sçy44Çm|‘Øü¬ØQX3DÈ>gûò Îâu»Ò(î@Ž<Á÷v­w. ަæ‹Zcgï€î?v ^‘-’—(šÇÐôZ«žƒ¥ˆkÅ]ùåÕÙVÈ…W¯M~nØI¡:ÓŠN‹èÌêg…¡ H’Å»Óöy~ÚâK7«K©×øšò×Ãæé¼ß²´„l3a~ŸI²òJsSøÙùõÂúg•_¤éÃ¡È Ò‡èuþu³Ý”}mÊžñ•î½ö¯—ý°'d¥îb®&`Óõ]«m>œ›Gé;h$8üáëñ;–Ó/¥î“Éöž™ì{.ôBãU‹—5R5ãêwCNæ KÓÂlЧgÎLü¢A]¢î|r €UÝŠ•V8¿†Vè@:>ƒ«Wáby²²®¾n€öñ+pe§A«i \µ—Ô Ø¦®¹.º u«p‘*yW®ÂÅè4Upí­p‰ß¤\«„ÁbšÃkp¡Œk°º›±R‘Ù5¬È“Ð9Ön«—­Ö5p} ®Ô©ì˜Ðh­v­´$ÖÊ6¬¡ÕÊd(¡ 7£uਵBÐGJfhý*ZÚ)*À†.;Ò>´f4"§A¡è¨ë}k×à .lÆ[Ô­ð*ÂÉëá$u¨Špª" Þ‘,Z†£‹–ö0$cÐ6Æ´€y×AÂBtý ñ ÛüÂê£séYÐÇÂ,•l.–Þе*­†yÐ[û¿'VÝÆpTÓ4ZZ1̃.ž…dí©›½W#š) TZ9ðºiVíøË`”Py–9ãœeƺH2g“ÌXIæ¬s¢ëœ(ƸHc]±æŠ¸çð^ÕCiç Ø ÏFÁ†_`‰ÑŽ—¶£ZÛ¾ÿkõ‰'HÄëRçÝsØ,1ªlê;èÉ _ú8ƒoJ}yWƒ`åM\K}mؾÎCRQH$) yxÏ^"PB„Ô—O–ØmºêïqùKœ¥¨Ÿ9â]5ÉgO&yWÍ][ÖUbø^D-¸!uíx×À`ýº*”¡w¾îemÍË*dJ[—½Öw»#WÚºÛ]ÕíhëÐɬ[¶ìí†vÖ¹þ›uµæ³^Ù³®`PÙç?<|g=i— Û® M ƒÖu¹ò5¹ÒÒ´ÊiSñR¤Ôœ ²îöPu»ïZßATÜå%ìʧà "Aè‘®ÑÚF&Ó©`FLÁ<͘’y2ó8e ÖiÌÌ‹”Š®ãôl”ˆŒøìub¿ÐVô ”CY÷¿‚l-®°¤3ú¢¾£¢¾ðBATý¯ÔLR°Í”jÌ¥Ù›IÓk©TÕÕ,ûçe§ZÓ¥Ù«eg[ot¨ºšyD,8óÚÍ–žÙºª›ùa’G ˜:}é­~÷r>9J†Ö¨éuT¨_«MR~Lå±'«åÕ$‘6VXߪ®æ'ZQKÓâ£ýÕ«Iá:í꾚~yDˆv/ÝõN$*\¥«'‚”DIetM²`(’7GŽ,˜'’äÍ‘% æ‰&yóÄ“¼5%oNžƒÕQ!2*”‰&PbW_ºBFÌ2ñz<Å’zI&VÄ㙹 +âñt[‰ñ*dö,+âUÈìY&VīٳLäãíiiÈi¢c5]Š ߯HZ3’?ŠÙ×JÏö‚‘˜…ð:¹¸¸“œåc6·RožX¡pVk‹‡'Îàòµtv$”ÂYX.é†?KÆPÎõDFüáÉ:^ÛeU:³ÔPnw½¨S=Wáj„ú T¶>Î…RáE›FeZÈÁɺO­ºÕª'¨Áúíåyט¶i>&n^µÂ¾4¹_¶¿mšífé¦T×¹¸ë)5k˜ŒÖûý÷ÔŒ·±AòH¡égïh=§VÔ„ô.Z_S«Gd?g¨¹ßŸOÅ~wÅèB|±|Ñ9<¢Oÿ£ÙÒ÷Ãè¼ Ë#ÛÍywB]vÏÿÛ%Îà¦Îunéü8Xd±óI´!UÇç9e1«P&«ä{þL,žL$áÉa(fs©–¹Tà;LÊ$ìñ´k~ìÒb2˜0iìCbGvÁù¥Ã>óEI-–ß²Oôô‰4Æf— ä>É«Æ#8‘¦íõ˜xvªˆVËï¿n¶gê̯øˆ7¿m¾í›óþxhÞ¼=Ÿ7ÛÇÝCóéÍ»#֙͗7ïÞÿj>9¤Ò å-9žÆ„D…ÙbÜa:{nì¡Ç{juÓxï`Jb$-Z65 ÒŠì~=>]ºIJ‘Q‹X¯Œ“Õ’¦ŒNÏûoçæ³4:æ„! àý|B70nhnФY¿=! X2:6OçýöÔ|8lÿW¦c sÍ Í‘4ä  =Çœ… Û±è27…”p]Å A+EK›³‡¡’-Æ $mKfÀ(7Ű0Ì ‘S(WÎ¥ endstream endobj 11 0 obj 8670 endobj 12 0 obj << /Type /Page /Parent 1591 0 R /Resources << /ColorSpace << /CS2 1605 0 R /CS3 1604 0 R >> /ExtGState << /GS2 1626 0 R /GS3 1628 0 R >> /Font << /TT4 1599 0 R /TT5 1603 0 R /TT6 1601 0 R /TT7 1597 0 R >> /ProcSet [ /PDF /Text ] >> /Contents 16 0 R /Annots [ 13 0 R 14 0 R 15 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 /StructParents 3 >> endobj 13 0 obj << /Dest [ 9 0 R /XYZ 180 599 null ] /Type /Annot /Subtype /Link /Rect [ 482 690 520 703 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /H /O >> endobj 14 0 obj << /Dest [ 1 0 R /XYZ 190 132 null ] /Type /Annot /Subtype /Link /Rect [ 386 626 425 639 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /H /O >> endobj 15 0 obj << /Dest [ 9 0 R /XYZ 180 599 null ] /Type /Annot /Subtype /Link /Rect [ 430 272 469 285 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /H /O >> endobj 16 0 obj << /Filter /FlateDecode /Length 17 0 R >> stream H‰”WM7½ëWð°ðpøýdx'ðÁ@6°‡ØÔšéÍXÒ¶¤8Þ_¿ÝúhRÕšžÃb±X|UõÞíÛfW/góûñÇÛé÷MÅn›=Ô«Ù®^¯ØíÛÝn6¬ìÛézþÜÞÝ­ÿfxÁ•eÞX®¶ÌÅ}°†y¸B²/?ýt÷ó»Éí»OŠÍ·L´ÿØv¾šHV³ÉíïÕNø«z·~Z7õ×j×ÔsÖÔ“Û_±áa;¹›Nn§SÃ$›.'‚ !,›ÎÙMû‰?~cžÇÐzm?¼B4;Ŧ_'¯¦ëýüñ·Ù‚}Xíª×ÓÿLrc© RÚþ–f9# µæ:šÌpN™yn¤ }³zõÀ~Ý׋н],¨¢âVëlÏj±ÿúû¸ÚÕ›§êæ.íj/ìÎwW—wW®ŒÈ2°ßíð|Ÿö›Íúòl-wÁ˜ìþ;öisiª¥âNú,Ìj^/ëy bìDp²¿]š¹1Þ÷ͬ”7¸¡ ¬£Þ‚ë[+s \ÚZiyt!óü{õgoÛt¦LŠ”C‰tªv[÷euäÿ]þ~:Ü÷Ž/ÓS൛j²œ¼ÿ”ÿ–Šçã»?Ã[ü¿öŒ_ÙâGbí¾le€óY³ÍÇt`i=â3ºgY/OÕ]ûÆiNrÝI½ú(½ŸÜÌ=7ìó«ûzG)ÃóD×7–âóëcBŠ[ËìÖ®Wµ±Í÷¡~‰ „çmÎ…åÁ¤ÀSõ>Ö[†À~¶~–l÷X± êùqFE«PÏÆ(•»Ù²#­ñÐ2“[%MçÎ Ÿ›Ö¤©ÜK[¦gb÷í;qÆ>,Y^ÑíW ò¢‘öc#ùTZIEyò#mŠ>¥D‘î<ÙÈôê”îoõÓ`¾Y7í#“„üpa¬‘$‹<9•¥Sfô13’†ñ1.µ#Lë¡K1Ûîf»ŠÕ]ü³Í¦Yoš:ýió46ñéŒ:÷?›ŸÜ -­-<Ûïþº^¤tÎÿ¬voØlµ`³-¼-R Å`…ß_ê‡}S1Cú´x_øT¹Oì:^Iž26PøÇŒt± ºjNWy{¿]?íwÏ*½å ÖÙ¶óMÐ;¾%¨ü›.ŠôQ^ìþ§üüš³éã)xy ^“… 4Ǭ0¹£¡ìKŽÆ¥s[2>àJfJbV'nc1 2ÓSe“[‚ÄlwEÊÐzK™ctsëŒÏÍÙj½cóõj ÑÛ0BuP¡HÍ‚íÖìøï!ÄŸù™åD~Uª‘äéï]µZÀßÐ5%¬ÁþB¾ ­®´‡)«˜D^ôÑ<°Å®¸ÒƒÙ dg$7î8‘Yï›»¡¨€Š4Ù–r"ªP Q9‘ùéf3‰séa ¡o®g³šÍçÊ34&B0ê„10›—놭Ÿ7[2A ?F=f>¾Ó¦Çù˜›>Ѧ‘ $g¦tOPÊa‚;›Û.ñ¨7C°VÎr¯À²-i¼ÖAƒKGŸ['ÞÝн„š©ðþ†6µ\*]d/MEµ7õ}6=4›Ý¯1—H†”zÊ®È.FQšÀöj#ÍÆ3MÎ=xº€Å§ï+šØDÌŠcg23VÆŽÅeÆ5ÔãøIw„,À$Otò ÉR²˜©"Ä|G’tá¹Ü¸‚rœÕ Áˆöœ’m»l¶»¤«&‘6[„øùÕ_U³…cŠ˜rEÑvü#sx¨Ok£y8n¼Ö\-Ù§‰–*4ê5On¨Mw ‚ði£à!‘üþ0¬þµ¯šºÚþA?6诃4Ͷ*ú¥~0Ú2SÎÍ”®hmnü…x`¯'ñë×>§v“` ÇÑû¼Ô`Êà©V,UêÔÞ«mÅÚ㚊NŒáÊë˜oÛ4ضê4ÂjO3Âã$²÷ÆÇ’%ªAcD*uúlSKJþÛ=4M dF(ƒÜHçyôIštšÀÂú»;A´íûvögJë‡ —nÒÍɱ–: s F™³46i-…^iR𓦬QÄ"7³³Š'°Ù«ÍÓôSt„LߤáN6s©¡ó¤´ù†=i Îl1érSZf@pŨ ¯÷´©ãVê"b$ˆœ ñÌöÛc=dÕj%²½ŠVPLM(¢8 \ üÍúÜú€ë­C‰X\'50IÚÔ޻ܨ|HW¡u…†rI%×ßñH›‚z@&3u€?‡œhª„}Î>,)Ê`)Ãi]µ• DË&Ú¥;!8~1á¤Ç`Íü&fJ>T–ˆNåÖÿ«šõ›tK0¨þ_­Y¦{ ¿†.,/¬}j[©4_vaÌñÂ$0pçbêå…%hªÙ®jÞÐõpz4G-b _µoü¸Þ‰ ‡ú´:ß—à°óY“ÊTI´Äx²=t¡)(«Š°¨<¸š—!7Ms€´FuyW„@+t{ÑT„0ØÞÖùHá(šò£¸ÊHÖƒ„ÿ"olôØ’žG‹m«ôºß脎j¬#JcðG ÕÜ”ÚyQ˜®è®Àt¬tÅ•Ë|Ãê%¨+é")ÕÎ̾ RQ™ˆ`‹³RÙŸ†ÑÅ”çÎ$—²Û‚jÁhY iÙ§Å1ëšv‡x^;áÕ€Mj‰ï«ó%B¥DÜ*³`³UâÑ2[š HÍub™)Í”ähš…Wš à ´Ô…×®È›CãÜvU++c{RdAsà 4ß)wu[ÞÇå¨ÁP} °ÜBSâîò–ê;Û0«|i¬R®E+MäZ•᪫á:Á®zq¸2"\ W ƒömt®¼®‚\…åˆpõKÃU&u´ká"Uê"\q5ÜDF…k^®Δºn4^áÊx-\­ü˜Xí‹cM s×bEž¤)c Wc Š3&\÷Òp @&¯Dk4J(£õ×¢5:)•1ÑúG›0v­+dJ”]Aº«á¢ï¡åÆ1“ý۷b!÷‹Ž •HyP ×Ü’#°è]©b]gϺSâyw*U”h»Ë³îäw½O’i„;õ¼;@i„ãNp—P„ãÎ<ïÎàÁ…rŒ;;Â]*îÁ‡€ZQ) «2‰GÅn 0Äëž@1Bo5d‹Þç{ƒë/+ Aa†6«ºÑN®j£»IÚ®¶ÏVMÛSº­&Íñþj éïC{AÛZX’çx³C‹²dØñõU¤Yw§â)ºEUf™ZwH,­äFG;æd²ç—•ÐÜÊÜ!y²Ž*q2=J‡8Q?2ŒöQŽ8YÓ¤p¨%ðcs‡äÉZ&y•(Áó'Óætè"1wHŸì5W6üŸòªë‘Û8‚…1"óÉ™yˆ°¼%€€$°üpÒQ¾ƒO»Âîž%å×§šKr9s5$ïièžžbOwuõžw¶|.ñXÿâö;;Û.E»çf>ÂÊ€#6Äíwvìk«Éž˜Î´Y×Þ×&§ºŠuâ:nžÉ®bžØŽ›gº«˜'¾ãæ‰ð¸uf]Nf‰Gôã óꉫZÀÒU‚¨U elK õ‰­$ëIj’Ù¦n¤¶±™mêCj›ÙÆd¦©ý˜m™GóÚ}0Úañ¡tÄb£ì‚³ÿÚ*¨¥_âÒ¿òàöµ@AÈ"ƒ«P¥ñ­)°ºU¬ÒŒfVJh«XÁh&ֱ尊"K¬v «A§KÙlb¥¹†Õa®aE–L‰Õ¬bÙƒ•òïV‹ê2¦ŽÕjßU`ÕkX-dñ6PÊì«@¥´º H‘vPµ TØÏíÀJÇÆ€ÐMXUZbu:¶v¥D‡Å˜?hZƒê¬Ï?¾•ޤU¨£qåýE¸Y“C«PÞ¡‚óDƒ àY5Ë,·Ýq¢LÆ˜ÙÆ‘2»¥u*ôè4U¨q+ƒñ:–F'_r=è„)—ƇéÁOމÞ9Ž$j›fºj\§‹Ò¬©P„U²¼©Ô–ç[PEŒeR&µ˜,µ*˜­´ nVZüðTÜ:UÂÕZ)…ñh­*gÇbà÷ŽÕÀÓ‹óÀëÖQ»™ÚÕhZ,Y–¹qÊ2µÎIæÖ)ÉÔ:'™[§DQë”(jœSA­Ë"6¬ˆ‚ì¤9ÎûÔŠV£«œ’i)êÃÏlËÕnU KÇoîˆ 7-<¢ŽÁ·Þ»,$0r´$wòWê»¶ó: iÛ–º&¸†˜ÁTÌÑ(Ý;þÆ=˜¨—Ž5¾±”oŠ€V;¬0àEÀ·ìf {4Úì¹Ùíº¹CÍ©< ¿#Öt6í¹Ùï¹ÙÚ±q³ôCPßss·ë樠ló€üfȬÕwžØ©›w/­[¨×œD¨u&nH„Z'¡Æ™D¨u™+*^çKDÑ8eµl†ëC–jÍÚ]Æ+g¬¤Ú]»r·¹ŸÛFê§Æ‰ù¹q|3jœžŒÇ£ÆñÁ¨mz/j\æôÕ¢8Bmc?H³†)D1hQ‹|_x4aMkeÚ”ûó÷ïÔk±j½mVÀj¯‘üm·ŠÖGÔÕ°úÕ`‘¹IÖ¨€b(Àú5°Mw¡5¯Ek¼‘Ê\AÛ|NÖ­¢Åа»ÐÚ×¢µH_k±”*U€µk`­q`û=`Ý«Á"sÉ­¡ÅÐt®@kVÑb6³­-Z‡ÔÙ5BAKFÐkhÇìb„îÕh‘º¸Æ2œmÉjmÉÔÀŽ f%ú°¶ÐÍVºÐݬt¡ã‡ç‘C­ó̬•…n Ê€>´u3äž Iï¹™Ï" ÕNèJoÞluh£ŽqÇÍ‘˜2 |Ly@~3d˜ñqÏ;G>Š€ÎøÖÚ¸ý΢F»íž›ùà*BZ‡·ßY”¥¶ÕdOL§EF^{ZÇ›œê*Ö‰ë¸y&»Šyb;nžé®bžøŽ›'ÂãÖ™ñ¸yùtìϲŽèòQÛ!5qUÄ à¦í¶ÃQn®i»ípœ`+Ún;gÍŠ¶Û·Cß´Ýv¸ºø¦í6Ã¥ºø¦íx¸±-C’˜Fr4™:‘î‹"zœ#ÊÕf˜ìÓY'”@”aå0¬Á,.V† G~ØXp¯©Þ<±Aå0¬]W=¨ÜµÚÞŠ*· GáÊD•†úKÈÔD ^Â/Ry³s#í—¹ƒûþæðûó©oº¶iÞežÐU&ú´ô<>|øçÝ}ÓgŽ`M•[:~Ë"@)½t¸d!¬’u(d¨÷™Æ„ÅèsƒÎR]Xz4ÿzîOý¹ùr—¹¼›%¡o2—qй,Óºùðx9׈#Ÿüþ¦¯µ¹M5ÉðOÒÆÖºëÿüíÒîûûŸžG19k ÊvÐ6‹#—Ëñpþ•z{$¬KÙ–:vº 4ºpl[E]‘· ¤¥n®¿‰c¾P #ñÁC»À>[¸H™·8Íû¿ÌÙ-ý2˜}.ƒ¨}Ûjóþ‡ÚsÐÙ? ãš‚°‹¨S‰ÿî¡?÷×ïÏŸûÓÝ¥o.}s q"¶ËcÐg4³MI%/]?sWðHVÉ\?PW‡Q¥ú—®ý©9~jú±¬šÏC½°ó¾“&^ž§¯a*kK×óó—/ÇÓEnùN9ô¸ ÎæÇ.Ò÷móîîþÐ\Ž¿÷ÈòéMsaA¼QmŒ¡€ùÀ]»Ö)á¯,#ß©¯Å&×už|ýP2~âb•ªÅ£-FêxòÓñDT›ªz^zÓti d­´Í]ï÷5Ù "é!(“`Šð´^°ÂqAl™+êel牿ªÔ¥e¸Ç„ œ:Úw2ÎTH¡ÈÈׇǼÏ@ïŠ/|À`ýrB¿Эң—ãåîi~¾‘€ƒa¬±XSù1<ÅÖÉìÀç˜wZ VÛ›PMÖÙ2,¥³2Ð4ø\‹-‹óWýþ‡ÔÍùáøõ|ËŒž3c«…­&¡ºÊ\œn>ßhi¨$cBÊOðâÆpJ/\QØ|@ÅÖ¥ÎåΔņåÛ!x¬N箕®r-TX•Ï舮¶È ^š=lPc1Èʹ Â`3°Ö tW¢øuùétäÑôi2Åk7Ž—‡æ?ÍÝá¾ùoóx¨Žƒ¤Lq›táß?œOÏ›ôJ§‘Õ;Þ÷ÿè/hã©ùx<üÙŸÎýÓ÷7¯¢c±îtªÛUµ ߨVm|á:H„;(è§#úëCÏŸXCñdG¹”°h#‹Í tw(Ù¥Ê;7˜Ÿ`¿aô¾ÿ¡mþñi7…Ë TG@匳ESMÈþןŽÂÈìã §™õ *èA—¸?Ò\zÌ€Nù9ïf{­B›¶€VÓG/  }u§dBuùIxCáé›C´6÷ÿÆ9?ÊêÜuzd®„Á…¡ÀÂe&Rš’Eì˱&_½Èª<)ç7CëK/ç55h{°E­²$LðEŽ±Ý¼¾´LR2›‹lŠ.oîûÇûN³˜_V•¯ŒöËãïÏ'úŽÎǶ ¨¡ü¸k¾>>=5‡þÏQ,½¬å® `êüÜ8†ó'w«*›§Ù$õÝ_ ‘è÷WÇÃ%4£ÐKkbv~䈇ð)€›=´Mvtf›ùM÷"݇-V ì0ª?K¢ça@Ÿ*H•®8Ëdž’E'鑱A½°»tÁÒû«Ò¿©?Ä“…µHêLxäoúÚ6Ã+å^}j—ÚÅgä¢ñµîè„Ð>*A»gǾ/æïqtRÔÅ)Î²Í ‘f®Cœ/ÿ§¼jzܶè}=6²øMA€õfš"Mö–æ xe[¨×r%yÑý÷}¤m‰#SFsÖ›Ñ|óæMÙ‡MÆ9¬¶\L~Á¾V»²¯_gž^º*“nh¬D8…¥Ð¤ IiáÒóI%ÏUjx|º{üüp·øÂÞ¿_|~øô‘Š}ø°üøp·|Šj~û¹<þÃÅå 3¹u2÷YònÜÕ‚Ÿ|ÑõXŒÐUt a\*BŽu!IU ¸L[AªÊ@@d5®>¾ßCCSÎÐ78Ø–¢¹ôd)¬™½&øXô;½Çž`‘µ%£I:öRÒ~‚¸hK.󻊑lJÁxÊ‚dÛV@Q®ã£0”'ôo–û4„'íwôJaÞfIGG~¤a`’ÈŽPPnT¨ùõý uæxqÚW°h´UG[ÂS0/(®Ú÷l}l¡…-C­'ú+ ÚÈëoslË~èCA^RÆ‚„Æòd@"ÃS!ô ïêïª÷üRöYB6”…ÿ%îç¼½¿X >'Æó}Û×ërÕûÜOo‡Š-¾”›zàÅ}ß—«-ZìûbÙÀE½°‹å²ù—}·9Œ3؆Ý®R:I†£’ý˜óÅhÇñ—2í¹JLhñ Ÿ1Ç ¦˜è¡9\ÃðÎY®e”ë-‚>@ÿŠÔÖ›mÏþ‚Î CžˆÀÑ„snŒPì[õ•ÐÃÛ7—§ÔÚ—‡¾^uìÓ~Õ´×^Î ·QÀ¡i½ôeì~·c_}í‰(3°”Q×®j_}à5-‚KÉU|D0Ö\ø‚'×þ…± ïcjz&ý'ÀÄuSq endstream endobj 17 0 obj 6784 endobj 18 0 obj << /Type /Page /Parent 1591 0 R /Resources << /ColorSpace << /CS2 1605 0 R /CS3 1604 0 R >> /ExtGState << /GS2 1626 0 R /GS3 1628 0 R >> /Font << /TT4 1599 0 R /TT5 1597 0 R /TT6 1601 0 R /TT7 1603 0 R /C2_1 1611 0 R >> /ProcSet [ /PDF /Text ] >> /Contents 19 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 /StructParents 4 >> endobj 19 0 obj << /Filter /FlateDecode /Length 20 0 R >> stream H‰¤WÛrãÆ}×WÌ£]%s¿8.WIkÇÑÃnTód»R®P wWùúœ)rJªd÷”tú2}9Ý=»î‡fYVûñÇÙüy]³Ù]ù¹iË¡éZ6»†²z¬ì÷Ù¼[³?g77Ý7ö»ã…4ÌiS(« 3ZÎÍœñ…ã\°?úéæç³÷’UÆÇÿlSµ‚5ìbö[½‚…/õ‡nÕõÍS=ôMÅúæbö+>o.næ³ù\3ÁæË ^pÎ ›WìjüŠ_~e®~Ô:~qÞøÂJ6ºønÞm«Ç»rÁnÛ¡þ~þ¯ R\“ŠôË2TªPA`•ƒ¹B íSXÓ~f¿n›EÍ®‹œAF)"Ó.¶O?°ÛÕЬWõÕM”lo—§o—ª4'ØÒw¿]¯»SÛ2˜Âz­Éûv¿>…*! +q³®šeS’Ž{+Rv Ó&Z;—ÂŒWx!Ï ƒB½y›¢¥¾B!œb0E°žhþ­þR°ë1œ1’<ÆP œrÛ}3*ÿNÿe~r5` g™v"¦Ùîë‹åÅ/Qåw±y>~¸ýÚv…Oê÷9˜Æ7©£ý0Ú°Žà UøÉOÝPÿÀFÃP`RöàûA6æð([é›1ï{áÔº°/ÖQr©‡<ØT ûàðwïbp’¿·‹œsÒ:Ba`x˜ê–mh9±þ‘„(Œ¥šÅbE0Ò DH15£ÃBcsMMÏ&ï:&í(k›Jµ¿|n†lÈÅ!ä*‹´ˆËD +ûš=m‡- þØ|܈¹¢ UJ¿°¨eg9Ô P…Õ’ÔhýäQþÐpê¼h-kIÛMó…` 8)xRjuÁn—¬¤þx]‘8ޏ5˜¾¯SR[ˆàˆ¶u×›\ŽÕIéâ½x4­û|sGÓ˜rG´X]ˆI}³M=°á±nsM$N›ÈpQHÍIèªÓ&0Ò’𤉣i!%§Z_¸.š@øðÇ1 LcÀ'„—È‘ÝØl/Ù+BW\øG‹_ јާ€†d¡M¬²#`Eº€¯æ€… åR{ u#¬/‚û§Šjq3XxRH}™úÑOX5øB;N -¥FîôÄÕ@ƒwDÃYþ"I•KNâøÃdLµ`ã3-Œ$TÉ‚}.¡Òà÷!õ$_+$„ô»t0d-QóŸºï ŠÂFÃ5ùß:Â(i ¶;[€‘lCàÄš"û’ø/uùÎNVÊDÚ';íde1ò´9õ‚6Ù ”µqÿ£¹(I=)Œyx õô¾zQÞîÇÕ»êåÀ…Šr¡x©z¤$4¬´ÇÛevTЖ(ZS„Âýš;A“öjÖ-YkgŒËnåò‡×Lx,>•Y¬¥cf”ïÀêý_XÝÄÏKö@»UâàgP ±(?5Q:<^²®gmGÙAÇj—uX ÉHkb½N4>SHÜþ‚¦“þã†; A“ÆAVnت›öˆÊR4N¡r:y¯’ÉIÊMÇL v’i„s³W¹H “·³f2¯Ë¾8vÖÇh½2ì$vödØ“åxXìï‘Ý7l!6NžÈ…Ñ‹¿ÇaU¹.š±÷§BœŸˆ5Ã3{h†Í%Z{WöTWeÛlr:¤Vq'3TÇSŠÁ*4è@Ùáøt‡aîrÏ“»Þ…‰¥¡Ûod'p§ çc§ðr|QÖ=ÅVGñ;Ò=âôS!–3Ñ –YÔÙ()œtÒû‰ïUŠq†eí›<Öí¶‚}¨¬iÇÌíëØ‹hÇ›»¦ÈV‘ŽÇ’š†ùþ¹-×CSmؼÛfýÆšQ;•{¼+‡ güŽærŒròãt€ðm;Ôý²¬ôõ¯ÛfñÒ–IO}hì“êÆ¢gT,·T'éȤëÔ¾ë Ôª¨¥phf¶©ÚÓ­3©Ôq>b·}±¬^Þv¯‹fhº¶\±ÛvÙõOeüéŒ:·è^Ñæ—f´)we´f<€ÑÚoõ²îë¶B%vÕö©n‡×Ì™—Gº’Ǧž¼õ4gü/íhþ¯˜!åñÁÍøà,õ`•ÀfRáÑÓK´3žÀÐ×±€—ÝjÕ}íñÀ‘YìZ‰¼;ßÝ6ž¸>…ŽñÙüp&86ÉÅùO‘&#œ­:0]ÑØ­öϨøÓi3¾Ñ‚»¨-QF1Xª©ßm«± oÛl ñw¨ÿv×Ù#‰È,Wc Ä&fS­ìï²ö1—&л|²Eáƒ#/›}bFð+žÍ8¦›Rð/ÁŸÚÂã@xˆ•A‰‰FÏÿøþL¹ÿ½‚¼bFZXC)½^C{Mûå\ 9Oô½¯ŒxL`*µ/¤»>+#…CÀ%õ|wMž@¥¿bØRõy¨bªµØMßÔË3‘÷ÿ_äÁã¦ñFäí!òþõÈ'ú&“ô%ž‹-^ô±ìÿ]M¾McGI«©²Ïì~]WͲ©FòœtêÙ‡ª¸×›‰cgBÞ e>Š‚iï l{þ­(¾±öí£h‰¾×¢ˆÏe³Ê±–;²V–nã•bœ£®GÞº‹<ÃÃÏÓ‚tØè¥§bg°8<¹'kÎrˆàï]LŽÙNWmÁš;+ó¾\ÔO¨±Í9[â=û€<ä+KýÑ&.®'yºm«®_w}9Ô‹Ë8Û³´À Ò˜T»ÏöÇí¢q>%Èç<ÐBê_|ZåyL‡û›J%>w»s(?Ápi(Š?·%+x#-@ öñî½'P¼z½ÆJ–H£òãá1Ääf-b/Ç]J²’¿œ/¬ $öc±tK–Oc¼2rš¢1…ÛVïµÄEî÷×1€3,ˆÝî.í²t/°€OÕ¥DíOÛ &ÆòP·"K¡ ›‚]¯V{—ÆæOWt«1SSeH\vÈ` ÂÄê¾ýN+áÇ55Q{ðºïÖu?<Çdàç¦Çš¼õÍ—šu_ۺߜ»lаïc«——dygá~åùÔ¡êsÖÔ;8ä­öê`ÏŽ·ç¯.ã©éRôîÞÉ6ŸP²FøÞáBjÚóµ,ÐÜÜbJd†ÇfÃÖÛ‡Õ~ì²øcß}iå`ï ÙÂðØiL ~/àC¹¹j6—ìk3<²¶Ë—‰]*‰hýmj@£ö¬ÉÉhwT"“§Æ$ @§Àõªg_˾/Û sy®å•S…’|w‡6mµÚ.â Q¶Ï/ÒY~vXlˆ|¬ó|:b—艵§º¯a |hVÙDJ—Ü{*6<_²e3´1vËî¼7Ö:0=ît5ÑÕç³…iåäqI~°…”¨‰<ÔAò‰ÞuÙ£3·«²Guþ—ñjWn‚}¾`S›,íTé2wŽ FlÎP¤†¤œøï³G=H@G»ÐÜíí키ûpG˜hÚæ¾j¶ºÈñ‰byËP/Ý:sîtìDþeßv¡'lÖÕXì¶-2mœYØÎ±.ßË¡oÃH³?bèЃè¶|1`ô(5>ƒhÏf3,xÃS¥ç¬Ð#uEv»Ë\Øë#T͈pÏgµÎüÚ'Ÿ·2õÆä'ñ…ÄsøÑ‚¼×’yÆXЪB]c}Êú²[xO‡Å MÁG½id »ç#oòƒ"3æéâÒŸšœSž¼rÄèÈ‹<ÏÁ£X•Ôò+µTI‚é<çP5è|‡YÏ MÚ©ãù¥ãn©ãÚffüy™< P §lË6ª Ü%Í#9@,²µ6Ɉd´‘É•:¶À®qm ¢à·÷¡¿CݲúOi @«0ÊáùŸÄÒé£ùØ<³¹N¥žñN%QJ&¥?q&¯ô\f•Mj8‚¯doDq9þÜPtmd†2¦8õ-/'\æ¥KÐ h“|fü{ öŸ³Î3ïåg c=‘”~ëàÑ{äIŸø9³dÓ*–KÓkÖ^ÞP?ã$þ%o»[œsã“«Šm×îÄPíB4ã7è]çkN§Œùd7ËAT¾­±üöÄ„ì]HIkL| / 0þùUèaÿ†î«•©Pn¨"λˆ&yy a/:à‹"Éž¯Q~)¨ Ò;³æ w”ÊíaìÜ,2R×W¾Žt!4óq6!vUXÛr3ÝyþܱúY¾UÍñ«‡a(7ï¸ÜËê±áuõøØþ/2Ðâ+¡Î V¦´P!°”¯G¿Y± 4÷jüùÎþ„ÌJ>u:þYLê)è{»¿Skð®Õ³³>™ ˆ€µTÅÔU fñ  À k&OƒÉɧ s$“$ 3¤1Ä_ŽGb/Ag9ú£Ù´Ýu‚ÆuÕ”°o;ÀûO&êZ<ÑÝ™,o ÇrÊêÅSèC÷A‰×ñV¡3r=ûŠ%ÓâÎxAË-uð5 ôÑä¢ ß¶#’þ 0¾Œs endstream endobj 20 0 obj 3398 endobj 21 0 obj << /Type /Page /Parent 1591 0 R /Resources << /ColorSpace << /CS2 1605 0 R /CS3 1604 0 R >> /ExtGState << /GS2 1626 0 R /GS3 1628 0 R >> /Font << /TT3 1599 0 R /TT4 1601 0 R /TT5 1597 0 R >> /XObject << /Im1 1622 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> /Contents 22 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 /StructParents 5 >> endobj 22 0 obj << /Filter /FlateDecode /Length 23 0 R >> stream H‰ŒV[ÚF~÷¯8‰šæ~‰¢¨À¢„ª{ 8­ª$Ôxw]¦`v»ÿ¾Çƒªî¾Xè;÷ïÌùzýMU<̲ >|襯ëz÷³Çb5«Šr½~UͲ§|ßzi¹†½Á ü¾J¸#Z(P’c•£,1”2øññãàz˜ô†SÙ¨ÿ‡m¶Jô&ù#<çÃrQnŠe^mŠ 6EÒû„Ûd&½4À }H(¡”*H3¸òŸøã â¬÷ê? Çl,ÑÒeò&-wÙÓýlãU•¿MÿJB0ã’PÆTÛdó0‹… ÂɘÅ`†H&mV¬áÓ®˜çПÏc98N”Íj¾[¾‡›Ý¢*Ö‹üjP[ù‚õ©vÞ­+t%iÐ]Uáø¦»õºìÆæNm¥ ê¯`ºîBãD3¤™gÅC‘y‚D G­fmè¤rDJcÚ0ÅØVH#h'oV·Ñ\^!ºXÅqÚž'ù3¾ogÝIZ÷a;¹7Û)áˆÃ¿Nâ£4Aº×ÐÄh†Õ£Àioòä!Ý Ëïëå¹ޝÑÛžøèR‹Ú;1Îì‰Pz?Lá³Á/\¦:¥&îéÌ NÕ§1,WU½¡Ó×Õl]¸OM^gÁÙ!øiÛöAekä!&kºÐ4oÿ…µÃnÖ%:‡ê)oE/pþ9¬òÙÆ3ûÜ çŽX'tËÕ6Š’0ÅÚ¸ ^£H|i”´¶…,£8Ű2×.b÷¢HÍñ pmÏŶ¨ Ümà÷üOÀïf¼¼ÄÌ…v„Ú6!ÛhîÂb7h{ÓH’•˘…”õÛÀYË‚ÄqŠp‡ïï w¼aÆžª¡Ãqœwê°}¦¦¸6~#<õjž¬ÌÔpsXÿÁµ$\¶ñw“û»I?ÁqÙ¾Åò6öóÑ7ïºÆ‡§õ¯¿|íOÒÑdq­ áAÚT¥p 5>:Ú¹}§¦§ÊX¬2á;þžÕÜöïÓñ0–Å=·!z|ªÎFÊ£xYBƒÛá¡y×ÝX‚>Kç¨E0êà¹QÇçÆt¦®ðåÓxÇ„mÜsa F“ñí'¸žŒÛôêtºæK«?|{û·ðËÝtô†}pЉöD\0+CÖŠ`ãÜôa˜ÆëÕdùuÚ¿Ðy±LDÓWN¢šitÿù}íölYŽ6õŽÆç;°Æ"ˆe=.¨ÆàêÚs?´µxu4ö:€°‚;%œ:ËãûIí÷· ƒžcÛÎ!Ä 4p)ð Rƒd£Ò ]V±.DÚ¥ *È3G¢ü:šþ<=,ÞÝ\ˆ¥ƒX²5—îðï˜Ä%¶Ý]¯Å*Ÿ>ÍPì|›Æ7êOúþNPràùõ ËëkÏ5­ß¯½Ïl‰n– ®ËäËyšöäª%e›t;ÇA¡½˜éÿÖæƒõÞòLžKF8Õ{uΞ'ʼ;0w™**°e㹜E¶Hd×4,#r’Sdž¶ì5bO3w'Цx|ªà;^wôчµæOìÑBÂ4Ãs… Wÿ][lŠã#è {Æ«¬ÜÄ$²¨%rË`]nP4ÍQr.0©sXáàOÏÑj “|›ožkȬå8F[Q4ê0܉¶DÅ6hS¨ÿ 0œ—õ endstream endobj 23 0 obj 1249 endobj 24 0 obj << /Count 11 /First 1638 0 R /Last 1638 0 R >> endobj 25 0 obj << /Title (Introduction) /Dest [ 1595 0 R /XYZ 0 562 null ] /Parent 1638 0 R /Next 34 0 R >> endobj 26 0 obj << /Title (Additional Information) /Dest [ 18 0 R /XYZ 0 617 null ] /Last 29 0 R /Count 4 /First 28 0 R /Prev 27 0 R /Parent 1638 0 R >> endobj 27 0 obj << /Title (Capability bits) /Dest [ 9 0 R /XYZ 0 275 null ] /Next 26 0 R /Prev 32 0 R /Parent 1638 0 R >> endobj 28 0 obj << /Title (Reference documentation) /Dest [ 18 0 R /XYZ 0 595 null ] /Parent 26 0 R /Next 31 0 R >> endobj 29 0 obj << /Title (Contact Synaptics) /Dest [ 21 0 R /XYZ 0 722 null ] /Parent 26 0 R /Prev 30 0 R >> endobj 30 0 obj << /Title (Notice) /Dest [ 18 0 R /XYZ 0 410 null ] /Parent 26 0 R /Prev 31 0 R /Next 29 0 R >> endobj 31 0 obj << /Title (Trademarks) /Dest [ 18 0 R /XYZ 0 467 null ] /Parent 26 0 R /Prev 28 0 R /Next 30 0 R >> endobj 32 0 obj << /Title (Implementation details) /Dest [ 1 0 R /XYZ 0 722 null ] /Next 27 0 R /Prev 33 0 R /Parent 1638 0 R >> endobj 33 0 obj << /Title (Software considerations) /Dest [ 1595 0 R /XYZ 0 244 null ] /Next 32 0 R /Prev 34 0 R /Parent 1638 0 R >> endobj 34 0 obj << /Title (Hardware considerations) /Dest [ 1595 0 R /XYZ 0 418 null ] /Next 33 0 R /Prev 25 0 R /Parent 1638 0 R >> endobj 35 0 obj << /S /Title /C /Title /Pg 1595 0 R /K 0 /P 464 0 R >> endobj 36 0 obj << /Title /P /Part#20Subtitle /P /Heading#201 /H1 /Body#20Text /P /Note /P /Bullet#20Level#201 /P /Table#20Column#20Title /P /Normal /P /Table#20Entry /P /Caption /P /Heading#202 /H2 /Front#20Matter#20Heading#202 /P /Front#20Matter#20Text /P /Footer /P /TextBox /Div /Frame /Div /Footnote /Note /Endnote /Note /Shape /Figure /InlineShape /Figure /TOA /TOC /TOAI /TOCI /TOF /TOC /TOFI /TOCI /Superscript /Span /Subscript /Span /Strikeout /Span /Underline /Span /DropCap /Figure >> endobj 37 0 obj << /Title 38 0 R /Part#20Subtitle 41 0 R /Heading#201 43 0 R /Body#20Text 45 0 R /Note 48 0 R /Bullet#20Level#201 52 0 R /Table#20Column#20Title 61 0 R /Normal 70 0 R /Table#20Entry 72 0 R /Caption 98 0 R /Heading#202 440 0 R /Front#20Matter#20Heading#202 453 0 R /Front#20Matter#20Text 456 0 R /Footer 463 0 R >> endobj 38 0 obj << /O /Layout /WritingMode /LrTb /StartIndent 0 /EndIndent 0 /TextAlign /Center /SpaceBefore 24 /SpaceAfter 12 /TextIndent 0 >> endobj 39 0 obj << /S /Part#20Subtitle /C /Part#20Subtitle /Pg 1595 0 R /K 1 /P 464 0 R >> endobj 40 0 obj << /S /Heading#201 /C /Heading#201 /Pg 1595 0 R /K 2 /P 464 0 R >> endobj 41 0 obj << /O /Layout /WritingMode /LrTb /StartIndent 0 /EndIndent 0 /TextAlign /Center /SpaceBefore 18 /SpaceAfter 6 /TextIndent 0 >> endobj 42 0 obj << /S /Body#20Text /C /Body#20Text /Pg 1595 0 R /K [ 3 44 0 R 5 ] /P 464 0 R >> endobj 43 0 obj << /O /Layout /WritingMode /LrTb /StartIndent 0 /EndIndent 0 /TextAlign /Start /SpaceBefore 18 /SpaceAfter 0 /TextIndent 0 >> endobj 44 0 obj << /S /Superscript /P 42 0 R /A 1573 0 R /Pg 1595 0 R /K 4 >> endobj 45 0 obj << /O /Layout /WritingMode /LrTb /StartIndent 0 /EndIndent 0 /TextAlign /Start /SpaceBefore 6 /SpaceAfter 6 /TextIndent 0 >> endobj 46 0 obj << /S /Note /C /Note /Pg 1595 0 R /K 6 /P 464 0 R >> endobj 47 0 obj << /S /Heading#201 /C /Heading#201 /Pg 1595 0 R /K 7 /P 464 0 R >> endobj 48 0 obj << /O /Layout /WritingMode /LrTb /StartIndent 72 /EndIndent 0 /TextAlign /Start /SpaceBefore 18 /SpaceAfter 18 /TextIndent -35.99998 >> endobj 49 0 obj << /S /Body#20Text /C /Body#20Text /Pg 1595 0 R /K 8 /P 464 0 R >> endobj 50 0 obj << /S /LBody /C /Bullet#20Level#201 /Pg 1595 0 R /K 9 /P 1564 0 R >> endobj 51 0 obj << /S /LBody /C /Bullet#20Level#201 /Pg 1595 0 R /K 10 /P 1565 0 R >> endobj 52 0 obj << /O /Layout /WritingMode /LrTb /StartIndent 36 /EndIndent 0 /TextAlign /Start /SpaceBefore 6 /SpaceAfter 6 /TextIndent -17.99998 >> endobj 53 0 obj << /S /Body#20Text /C /Body#20Text /Pg 1595 0 R /K 11 /P 464 0 R >> endobj 54 0 obj << /S /Heading#201 /C /Heading#201 /Pg 1595 0 R /K 12 /P 464 0 R >> endobj 55 0 obj << /S /Body#20Text /C /Body#20Text /Pg 1595 0 R /K 13 /P 464 0 R >> endobj 56 0 obj << /S /Body#20Text /C /Body#20Text /Pg 1595 0 R /K 14 /P 464 0 R >> endobj 57 0 obj << /S /Heading#201 /C /Heading#201 /Pg 1 0 R /K 0 /P 464 0 R >> endobj 58 0 obj << /S /Body#20Text /C /Body#20Text /Pg 1 0 R /K 1 /P 464 0 R >> endobj 59 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 2 /P 467 0 R >> endobj 60 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 3 /P 470 0 R >> endobj 61 0 obj << /O /Layout /WritingMode /LrTb /StartIndent 0 /EndIndent 0 /TextAlign /Center /SpaceBefore 0 /SpaceAfter 1 /TextIndent 0 >> endobj 62 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 4 /P 473 0 R >> endobj 63 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 5 /P 476 0 R >> endobj 64 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 6 /P 479 0 R >> endobj 65 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 7 /P 482 0 R >> endobj 66 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 8 /P 485 0 R >> endobj 67 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 9 /P 488 0 R >> endobj 68 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 10 /P 491 0 R >> endobj 69 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 11 /P 495 0 R >> endobj 70 0 obj << /O /Layout /WritingMode /LrTb /StartIndent 0 /EndIndent 0 /TextAlign /Start /SpaceBefore 0 /SpaceAfter 0 /TextIndent 0 >> endobj 71 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 12 /P 498 0 R >> endobj 72 0 obj << /O /Layout /WritingMode /LrTb /StartIndent 0 /EndIndent 0 /TextAlign /Center /SpaceBefore 0 /SpaceAfter 0 /TextIndent 0 >> endobj 73 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 13 /P 502 0 R >> endobj 74 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 14 /P 505 0 R >> endobj 75 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 15 /P 508 0 R >> endobj 76 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 16 /P 511 0 R >> endobj 77 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 17 /P 514 0 R >> endobj 78 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 18 /P 517 0 R >> endobj 79 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 19 /P 520 0 R >> endobj 80 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 20 /P 523 0 R >> endobj 81 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 21 /P 526 0 R >> endobj 82 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 22 /P 530 0 R >> endobj 83 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 23 /P 533 0 R >> endobj 84 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 24 /P 537 0 R >> endobj 85 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 25 /P 540 0 R >> endobj 86 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 26 /P 544 0 R >> endobj 87 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 27 /P 547 0 R >> endobj 88 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 28 /P 551 0 R >> endobj 89 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 29 /P 554 0 R >> endobj 90 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 30 /P 558 0 R >> endobj 91 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 31 /P 561 0 R >> endobj 92 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 32 /P 565 0 R >> endobj 93 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 33 /P 568 0 R >> endobj 94 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 34 /P 572 0 R >> endobj 95 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 35 /P 575 0 R >> endobj 96 0 obj << /S /Caption /C /Caption /Pg 1 0 R /K 36 /P 464 0 R >> endobj 97 0 obj << /S /Body#20Text /C /Body#20Text /Pg 1 0 R /K 37 /P 464 0 R >> endobj 98 0 obj << /O /Layout /WritingMode /LrTb /StartIndent 0 /EndIndent 0 /TextAlign /Center /SpaceBefore 6 /SpaceAfter 12 /TextIndent 0 >> endobj 99 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 38 /P 580 0 R >> endobj 100 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 39 /P 583 0 R >> endobj 101 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 40 /P 586 0 R >> endobj 102 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 41 /P 589 0 R >> endobj 103 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 42 /P 592 0 R >> endobj 104 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 43 /P 595 0 R >> endobj 105 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 44 /P 598 0 R >> endobj 106 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 45 /P 601 0 R >> endobj 107 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 46 /P 604 0 R >> endobj 108 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 47 /P 608 0 R >> endobj 109 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 48 /P 611 0 R >> endobj 110 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 49 /P 615 0 R >> endobj 111 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K [ 50 58 ] /P 618 0 R >> endobj 112 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 51 /P 621 0 R >> endobj 113 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 52 /P 624 0 R >> endobj 114 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K [ 53 62 ] /P 627 0 R >> endobj 115 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K [ 54 63 ] /P 630 0 R >> endobj 116 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 55 /P 633 0 R >> endobj 117 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 56 /P 636 0 R >> endobj 118 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 57 /P 640 0 R >> endobj 119 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 59 /P 643 0 R >> endobj 120 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 60 /P 646 0 R >> endobj 121 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 61 /P 649 0 R >> endobj 122 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 64 /P 652 0 R >> endobj 123 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 65 /P 655 0 R >> endobj 124 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 66 /P 659 0 R >> endobj 125 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 67 /P 662 0 R >> endobj 126 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 68 /P 666 0 R >> endobj 127 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 69 /P 669 0 R >> endobj 128 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 70 /P 672 0 R >> endobj 129 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 71 /P 676 0 R >> endobj 130 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 72 /P 679 0 R >> endobj 131 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 73 /P 683 0 R >> endobj 132 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 74 /P 686 0 R >> endobj 133 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 75 /P 690 0 R >> endobj 134 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 76 /P 693 0 R >> endobj 135 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 77 /P 697 0 R >> endobj 136 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 78 /P 700 0 R >> endobj 137 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 79 /P 704 0 R >> endobj 138 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 80 /P 707 0 R >> endobj 139 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 81 /P 711 0 R >> endobj 140 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K [ 82 91 ] /P 714 0 R >> endobj 141 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 83 /P 717 0 R >> endobj 142 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 84 /P 720 0 R >> endobj 143 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 85 /P 723 0 R >> endobj 144 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K [ 86 95 ] /P 726 0 R >> endobj 145 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K [ 87 96 ] /P 729 0 R >> endobj 146 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 88 /P 732 0 R >> endobj 147 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 89 /P 735 0 R >> endobj 148 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 90 /P 739 0 R >> endobj 149 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 92 /P 742 0 R >> endobj 150 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 93 /P 745 0 R >> endobj 151 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 94 /P 748 0 R >> endobj 152 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 97 /P 751 0 R >> endobj 153 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 98 /P 754 0 R >> endobj 154 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 99 /P 758 0 R >> endobj 155 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 100 /P 761 0 R >> endobj 156 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 101 /P 765 0 R >> endobj 157 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 102 /P 768 0 R >> endobj 158 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 103 /P 772 0 R >> endobj 159 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 104 /P 775 0 R >> endobj 160 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 105 /P 779 0 R >> endobj 161 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 106 /P 782 0 R >> endobj 162 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 107 /P 786 0 R >> endobj 163 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 108 /P 789 0 R >> endobj 164 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 109 /P 793 0 R >> endobj 165 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 110 /P 796 0 R >> endobj 166 0 obj << /S /Caption /C /Caption /Pg 1 0 R /K 111 /P 464 0 R >> endobj 167 0 obj << /S /Body#20Text /C /Body#20Text /Pg 1 0 R /K 112 /P 464 0 R >> endobj 168 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 113 /P 801 0 R >> endobj 169 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 114 /P 804 0 R >> endobj 170 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 115 /P 807 0 R >> endobj 171 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 116 /P 810 0 R >> endobj 172 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 117 /P 813 0 R >> endobj 173 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 118 /P 816 0 R >> endobj 174 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 119 /P 819 0 R >> endobj 175 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 120 /P 822 0 R >> endobj 176 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 121 /P 825 0 R >> endobj 177 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 122 /P 829 0 R >> endobj 178 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 123 /P 832 0 R >> endobj 179 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 124 /P 836 0 R >> endobj 180 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K [ 125 133 ] /P 839 0 R >> endobj 181 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 126 /P 842 0 R >> endobj 182 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 127 /P 845 0 R >> endobj 183 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K [ 128 137 ] /P 848 0 R >> endobj 184 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K [ 129 138 ] /P 851 0 R >> endobj 185 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 130 /P 854 0 R >> endobj 186 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 131 /P 857 0 R >> endobj 187 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 132 /P 861 0 R >> endobj 188 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 134 /P 864 0 R >> endobj 189 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 135 /P 867 0 R >> endobj 190 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 136 /P 870 0 R >> endobj 191 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 139 /P 873 0 R >> endobj 192 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 140 /P 876 0 R >> endobj 193 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 141 /P 880 0 R >> endobj 194 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 142 /P 883 0 R >> endobj 195 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 143 /P 887 0 R >> endobj 196 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 144 /P 890 0 R >> endobj 197 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 145 /P 893 0 R >> endobj 198 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 146 /P 897 0 R >> endobj 199 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 147 /P 900 0 R >> endobj 200 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 148 /P 904 0 R >> endobj 201 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 149 /P 907 0 R >> endobj 202 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 150 /P 911 0 R >> endobj 203 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 151 /P 914 0 R >> endobj 204 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 152 /P 918 0 R >> endobj 205 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 153 /P 921 0 R >> endobj 206 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 154 /P 925 0 R >> endobj 207 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 155 /P 928 0 R >> endobj 208 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 156 /P 932 0 R >> endobj 209 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K [ 157 166 ] /P 935 0 R >> endobj 210 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 158 /P 938 0 R >> endobj 211 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 159 /P 941 0 R >> endobj 212 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 160 /P 944 0 R >> endobj 213 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K [ 161 170 ] /P 947 0 R >> endobj 214 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K [ 162 171 ] /P 950 0 R >> endobj 215 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 163 /P 953 0 R >> endobj 216 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 164 /P 956 0 R >> endobj 217 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 165 /P 960 0 R >> endobj 218 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 167 /P 963 0 R >> endobj 219 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 168 /P 966 0 R >> endobj 220 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 169 /P 969 0 R >> endobj 221 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 172 /P 972 0 R >> endobj 222 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 173 /P 975 0 R >> endobj 223 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 174 /P 979 0 R >> endobj 224 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 175 /P 982 0 R >> endobj 225 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 176 /P 986 0 R >> endobj 226 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 177 /P 989 0 R >> endobj 227 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 178 /P 993 0 R >> endobj 228 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 179 /P 996 0 R >> endobj 229 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 180 /P 1000 0 R >> endobj 230 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 181 /P 1003 0 R >> endobj 231 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 182 /P 1007 0 R >> endobj 232 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 183 /P 1010 0 R >> endobj 233 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 1 0 R /K 184 /P 1014 0 R >> endobj 234 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 1 0 R /K 185 /P 1017 0 R >> endobj 235 0 obj << /S /Caption /C /Caption /Pg 1 0 R /K 186 /P 464 0 R >> endobj 236 0 obj << /S /Body#20Text /C /Body#20Text /Pg 1 0 R /K 187 /P 464 0 R >> endobj 237 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 0 /P 1022 0 R >> endobj 238 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 1 /P 1025 0 R >> endobj 239 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 2 /P 1028 0 R >> endobj 240 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 3 /P 1031 0 R >> endobj 241 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 4 /P 1034 0 R >> endobj 242 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 5 /P 1037 0 R >> endobj 243 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 6 /P 1040 0 R >> endobj 244 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 7 /P 1043 0 R >> endobj 245 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 8 /P 1046 0 R >> endobj 246 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 9 /P 1050 0 R >> endobj 247 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 10 /P 1053 0 R >> endobj 248 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 11 /P 1057 0 R >> endobj 249 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 12 /P 1060 0 R >> endobj 250 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 13 /P 1063 0 R >> endobj 251 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 14 /P 1066 0 R >> endobj 252 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 15 /P 1069 0 R >> endobj 253 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 16 /P 1072 0 R >> endobj 254 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 17 /P 1075 0 R >> endobj 255 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 18 /P 1078 0 R >> endobj 256 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 19 /P 1082 0 R >> endobj 257 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 20 /P 1085 0 R >> endobj 258 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 21 /P 1088 0 R >> endobj 259 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 22 /P 1091 0 R >> endobj 260 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 23 /P 1095 0 R >> endobj 261 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 24 /P 1098 0 R >> endobj 262 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 25 /P 1102 0 R >> endobj 263 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 26 /P 1105 0 R >> endobj 264 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 27 /P 1108 0 R >> endobj 265 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 28 /P 1112 0 R >> endobj 266 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 29 /P 1115 0 R >> endobj 267 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 30 /P 1119 0 R >> endobj 268 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 31 /P 1122 0 R >> endobj 269 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 32 /P 1126 0 R >> endobj 270 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 33 /P 1129 0 R >> endobj 271 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 34 /P 1133 0 R >> endobj 272 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 35 /P 1136 0 R >> endobj 273 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 36 /P 1140 0 R >> endobj 274 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 37 /P 1143 0 R >> endobj 275 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 38 /P 1147 0 R >> endobj 276 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K [ 39 48 ] /P 1150 0 R >> endobj 277 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 40 /P 1153 0 R >> endobj 278 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 41 /P 1156 0 R >> endobj 279 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 42 /P 1159 0 R >> endobj 280 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K [ 43 52 ] /P 1162 0 R >> endobj 281 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K [ 44 53 ] /P 1165 0 R >> endobj 282 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 45 /P 1168 0 R >> endobj 283 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 46 /P 1171 0 R >> endobj 284 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 47 /P 1175 0 R >> endobj 285 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 49 /P 1178 0 R >> endobj 286 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 50 /P 1181 0 R >> endobj 287 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 51 /P 1184 0 R >> endobj 288 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 54 /P 1187 0 R >> endobj 289 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 55 /P 1190 0 R >> endobj 290 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 56 /P 1194 0 R >> endobj 291 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 57 /P 1197 0 R >> endobj 292 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 58 /P 1201 0 R >> endobj 293 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 59 /P 1204 0 R >> endobj 294 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 60 /P 1207 0 R >> endobj 295 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 61 /P 1210 0 R >> endobj 296 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 62 /P 1213 0 R >> endobj 297 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 63 /P 1216 0 R >> endobj 298 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 64 /P 1220 0 R >> endobj 299 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 65 /P 1223 0 R >> endobj 300 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 66 /P 1227 0 R >> endobj 301 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 67 /P 1230 0 R >> endobj 302 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 68 /P 1234 0 R >> endobj 303 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 69 /P 1237 0 R >> endobj 304 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 70 /P 1240 0 R >> endobj 305 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 71 /P 1243 0 R >> endobj 306 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 72 /P 1246 0 R >> endobj 307 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 73 /P 1249 0 R >> endobj 308 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 74 /P 1253 0 R >> endobj 309 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 75 /P 1256 0 R >> endobj 310 0 obj << /S /Caption /C /Caption /Pg 9 0 R /K 76 /P 464 0 R >> endobj 311 0 obj << /S /Body#20Text /C /Body#20Text /Pg 9 0 R /K 77 /P 464 0 R >> endobj 312 0 obj << /S /Body#20Text /C /Body#20Text /Pg 9 0 R /K 78 /P 464 0 R >> endobj 313 0 obj << /S /Body#20Text /C /Body#20Text /Pg 9 0 R /K 79 /P 464 0 R >> endobj 314 0 obj << /S /Heading#201 /C /Heading#201 /Pg 9 0 R /K 80 /P 464 0 R >> endobj 315 0 obj << /S /Body#20Text /C /Body#20Text /Pg 9 0 R /K 81 /P 464 0 R >> endobj 316 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 82 /P 1261 0 R >> endobj 317 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 83 /P 1264 0 R >> endobj 318 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 84 /P 1267 0 R >> endobj 319 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 85 /P 1270 0 R >> endobj 320 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 86 /P 1273 0 R >> endobj 321 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 87 /P 1276 0 R >> endobj 322 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 88 /P 1279 0 R >> endobj 323 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 89 /P 1282 0 R >> endobj 324 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 91 /P 1286 0 R >> endobj 325 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 93 /P 1289 0 R >> endobj 326 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K [ 90 94 100 ] /P 1293 0 R >> endobj 327 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K [ 92 95 102 ] /P 1296 0 R >> endobj 328 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 96 /P 1299 0 R >> endobj 329 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 97 /P 1302 0 R >> endobj 330 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 98 /P 1305 0 R >> endobj 331 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 99 /P 1308 0 R >> endobj 332 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 101 /P 1312 0 R >> endobj 333 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 103 /P 1315 0 R >> endobj 334 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 104 /P 1319 0 R >> endobj 335 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 105 /P 1322 0 R >> endobj 336 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 106 /P 1325 0 R >> endobj 337 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 107 /P 1328 0 R >> endobj 338 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 108 /P 1331 0 R >> endobj 339 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 109 /P 1334 0 R >> endobj 340 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 110 /P 1337 0 R >> endobj 341 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 9 0 R /K 111 /P 1340 0 R >> endobj 342 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K [ 112 120 128 ] /P 1344 0 R >> endobj 343 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K [ 113 121 ] /P 1347 0 R >> endobj 344 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K [ 114 122 130 ] /P 1350 0 R >> endobj 345 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K [ 115 123 ] /P 1353 0 R >> endobj 346 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K [ 116 124 132 ] /P 1356 0 R >> endobj 347 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K [ 117 125 ] /P 1359 0 R >> endobj 348 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K [ 118 126 134 ] /P 1362 0 R >> endobj 349 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K [ 119 127 135 ] /P 1365 0 R >> endobj 350 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 129 /P 1369 0 R >> endobj 351 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 131 /P 1372 0 R >> endobj 352 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 9 0 R /K 133 /P 1375 0 R >> endobj 353 0 obj << /S /Caption /C /Caption /Pg 9 0 R /K 136 /P 464 0 R >> endobj 354 0 obj << /S /Note /C /Note /Pg 9 0 R /K 137 /P 464 0 R >> endobj 355 0 obj << /S /Normal /C /Normal /Pg 12 0 R /K 0 /P 464 0 R >> endobj 356 0 obj << /S /Normal /A [ 357 0 R ] /C /Normal /Pg 12 0 R /K 1 /P 464 0 R >> endobj 357 0 obj << /O /Layout /StartIndent 36 >> endobj 358 0 obj << /S /Normal /C /Normal /Pg 12 0 R /K 2 /P 464 0 R >> endobj 359 0 obj << /S /Normal /C /Normal /Pg 12 0 R /K 3 /P 464 0 R >> endobj 360 0 obj << /S /Normal /A [ 361 0 R ] /C /Normal /Pg 12 0 R /K 4 /P 464 0 R >> endobj 361 0 obj << /O /Layout /StartIndent 36 >> endobj 362 0 obj << /S /Normal /C /Normal /Pg 12 0 R /K 5 /P 464 0 R >> endobj 363 0 obj << /S /Normal /C /Normal /Pg 12 0 R /K 6 /P 464 0 R >> endobj 364 0 obj << /S /Normal /A [ 365 0 R ] /C /Normal /Pg 12 0 R /K 7 /P 464 0 R >> endobj 365 0 obj << /O /Layout /StartIndent 36 >> endobj 366 0 obj << /S /Body#20Text /C /Body#20Text /Pg 12 0 R /K 8 /P 464 0 R >> endobj 367 0 obj << /S /Body#20Text /C /Body#20Text /Pg 12 0 R /K 9 /P 464 0 R >> endobj 368 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 10 /P 1380 0 R >> endobj 369 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 11 /P 1383 0 R >> endobj 370 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 12 /P 1386 0 R >> endobj 371 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 13 /P 1389 0 R >> endobj 372 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 14 /P 1392 0 R >> endobj 373 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 15 /P 1395 0 R >> endobj 374 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 16 /P 1398 0 R >> endobj 375 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 17 /P 1401 0 R >> endobj 376 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K [ 18 26 34 ] /P 1405 0 R >> endobj 377 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K [ 19 27 ] /P 1408 0 R >> endobj 378 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K [ 20 28 36 ] /P 1411 0 R >> endobj 379 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K [ 21 29 ] /P 1414 0 R >> endobj 380 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K [ 22 30 38 ] /P 1417 0 R >> endobj 381 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K [ 23 31 ] /P 1420 0 R >> endobj 382 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K [ 24 32 40 ] /P 1423 0 R >> endobj 383 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K [ 25 33 41 ] /P 1426 0 R >> endobj 384 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 35 /P 1430 0 R >> endobj 385 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 37 /P 1433 0 R >> endobj 386 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 39 /P 1436 0 R >> endobj 387 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 42 /P 1440 0 R >> endobj 388 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 43 /P 1443 0 R >> endobj 389 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 44 /P 1446 0 R >> endobj 390 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 45 /P 1449 0 R >> endobj 391 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 46 /P 1452 0 R >> endobj 392 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 47 /P 1455 0 R >> endobj 393 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 48 /P 1458 0 R >> endobj 394 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 49 /P 1461 0 R >> endobj 395 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K 50 /P 1465 0 R >> endobj 396 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K 51 /P 1468 0 R >> endobj 397 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K 52 /P 1472 0 R >> endobj 398 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K 53 /P 1475 0 R >> endobj 399 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K 54 /P 1478 0 R >> endobj 400 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K 55 /P 1481 0 R >> endobj 401 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K 56 /P 1484 0 R >> endobj 402 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 57 /P 1488 0 R >> endobj 403 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 58 /P 1491 0 R >> endobj 404 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 59 /P 1495 0 R >> endobj 405 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 60 /P 1498 0 R >> endobj 406 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 61 /P 1501 0 R >> endobj 407 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 62 /P 1504 0 R >> endobj 408 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 63 /P 1507 0 R >> endobj 409 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 64 /P 1510 0 R >> endobj 410 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 65 /P 1513 0 R >> endobj 411 0 obj << /S /Table#20Column#20Title /C /Table#20Column#20Title /Pg 12 0 R /K 66 /P 1516 0 R >> endobj 412 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K [ 67 75 83 ] /P 1520 0 R >> endobj 413 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K [ 68 76 ] /P 1523 0 R >> endobj 414 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K [ 69 77 85 ] /P 1526 0 R >> endobj 415 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K [ 70 78 ] /P 1529 0 R >> endobj 416 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K [ 71 79 87 ] /P 1532 0 R >> endobj 417 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K [ 72 80 ] /P 1535 0 R >> endobj 418 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K [ 73 81 89 ] /P 1538 0 R >> endobj 419 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K [ 74 82 90 ] /P 1541 0 R >> endobj 420 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K 84 /P 1545 0 R >> endobj 421 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K 86 /P 1548 0 R >> endobj 422 0 obj << /S /Table#20Entry /C /Table#20Entry /Pg 12 0 R /K 88 /P 1551 0 R >> endobj 423 0 obj << /S /Caption /C /Caption /Pg 12 0 R /K 91 /P 464 0 R >> endobj 424 0 obj << /S /Normal /C /Normal /Pg 12 0 R /K 92 /P 464 0 R >> endobj 425 0 obj << /S /Normal /A [ 426 0 R ] /C /Normal /Pg 12 0 R /K 93 /P 464 0 R >> endobj 426 0 obj << /O /Layout /StartIndent 36 >> endobj 427 0 obj << /S /Normal /A [ 428 0 R ] /C /Normal /Pg 12 0 R /K 94 /P 464 0 R >> endobj 428 0 obj << /O /Layout /StartIndent 36 >> endobj 429 0 obj << /S /Normal /A [ 430 0 R ] /C /Normal /Pg 12 0 R /K 95 /P 464 0 R >> endobj 430 0 obj << /O /Layout /StartIndent 36 >> endobj 431 0 obj << /S /Note /A [ 432 0 R ] /C /Note /Pg 12 0 R /K [ 96 97 ] /P 464 0 R >> endobj 432 0 obj << /O /Layout /SpaceAfter 6 >> endobj 433 0 obj << /S /Body#20Text /A [ 434 0 R ] /C /Body#20Text /Pg 12 0 R /K 98 /P 464 0 R >> endobj 434 0 obj << /O /Layout /SpaceBefore 0 /SpaceAfter 0 >> endobj 435 0 obj << /S /Note /C /Note /Pg 18 0 R /K [ 0 1 ] /P 464 0 R >> endobj 436 0 obj << /S /Body#20Text /C /Body#20Text /Pg 18 0 R /K 2 /P 464 0 R >> endobj 437 0 obj << /S /Heading#201 /C /Heading#201 /Pg 18 0 R /K 3 /P 464 0 R >> endobj 438 0 obj << /S /Heading#202 /C /Heading#202 /Pg 18 0 R /K 4 /P 464 0 R >> endobj 439 0 obj << /S /Body#20Text /C /Body#20Text /Pg 18 0 R /K 5 /P 464 0 R >> endobj 440 0 obj << /O /Layout /WritingMode /LrTb /StartIndent 0 /EndIndent 0 /TextAlign /Start /SpaceBefore 12 /SpaceAfter 0 /TextIndent 0 >> endobj 441 0 obj << /S /LBody /C /Bullet#20Level#201 /Pg 18 0 R /K 6 /P 1567 0 R >> endobj 442 0 obj << /S /LBody /C /Bullet#20Level#201 /Pg 18 0 R /K 7 /P 1568 0 R >> endobj 443 0 obj << /S /LBody /C /Bullet#20Level#201 /Pg 18 0 R /K 8 /P 1569 0 R >> endobj 444 0 obj << /S /LBody /C /Bullet#20Level#201 /Pg 18 0 R /K 9 /P 1570 0 R >> endobj 445 0 obj << /S /Heading#202 /C /Heading#202 /Pg 18 0 R /K 10 /P 464 0 R >> endobj 446 0 obj << /S /Body#20Text /C /Body#20Text /Pg 18 0 R /K 11 /P 464 0 R >> endobj 447 0 obj << /S /Heading#202 /C /Heading#202 /Pg 18 0 R /K 12 /P 464 0 R >> endobj 448 0 obj << /S /Body#20Text /C /Body#20Text /Pg 18 0 R /K 13 /P 464 0 R >> endobj 449 0 obj << /S /Heading#202 /C /Heading#202 /Pg 21 0 R /K 0 /P 464 0 R >> endobj 450 0 obj << /S /Body#20Text /C /Body#20Text /Pg 21 0 R /K 1 /P 464 0 R >> endobj 451 0 obj << /S /Front#20Matter#20Heading#202 /A [ 452 0 R ] /C /Front#20Matter#20Heading#202 /Pg 21 0 R /K 2 /P 1556 0 R >> endobj 452 0 obj << /O /Layout /StartIndent -10.24998 >> endobj 453 0 obj << /O /Layout /WritingMode /LrTb /StartIndent 0 /EndIndent 0 /TextAlign /Start /SpaceBefore 6 /SpaceAfter 6 /TextIndent 0 >> endobj 454 0 obj << /S /Front#20Matter#20Text /A [ 455 0 R ] /C /Front#20Matter#20Text /Pg 21 0 R /K 3 /P 1556 0 R >> endobj 455 0 obj << /O /Layout /StartIndent -10.24998 >> endobj 456 0 obj << /O /Layout /WritingMode /LrTb /StartIndent 0 /EndIndent 0 /TextAlign /Start /SpaceBefore 12 /SpaceAfter 12 /TextIndent 0 >> endobj 457 0 obj << /S /Front#20Matter#20Text /A [ 458 0 R ] /C /Front#20Matter#20Text /Pg 21 0 R /K 4 /P 1556 0 R >> endobj 458 0 obj << /O /Layout /StartIndent -10.24998 >> endobj 459 0 obj << /S /Front#20Matter#20Text /C /Front#20Matter#20Text /Pg 21 0 R /K 5 /P 1556 0 R >> endobj 460 0 obj << /S /Body#20Text /A [ 461 0 R ] /C /Body#20Text /Pg 21 0 R /K [ 6 462 0 R 8 ] /P 1560 0 R >> endobj 461 0 obj << /O /Layout /StartIndent -10.24998 >> endobj 462 0 obj << /S /InlineShape /Pg 21 0 R /K 7 /P 460 0 R /Alt () /A [ 1579 0 R ] >> endobj 463 0 obj << /O /Layout /WritingMode /LrTb /StartIndent 0 /EndIndent 0 /TextAlign /Start /SpaceBefore 0 /SpaceAfter 0 /TextIndent 0 >> endobj 464 0 obj << /S /Sect /P 1594 0 R /K [ 35 0 R 39 0 R 40 0 R 42 0 R 46 0 R 47 0 R 49 0 R 1563 0 R 53 0 R 54 0 R 55 0 R 56 0 R 57 0 R 58 0 R 465 0 R 96 0 R 97 0 R 578 0 R 166 0 R 167 0 R 799 0 R 235 0 R 236 0 R 1020 0 R 310 0 R 311 0 R 312 0 R 313 0 R 314 0 R 315 0 R 1259 0 R 353 0 R 354 0 R 355 0 R 356 0 R 358 0 R 359 0 R 360 0 R 362 0 R 363 0 R 364 0 R 366 0 R 367 0 R 1378 0 R 423 0 R 424 0 R 425 0 R 427 0 R 429 0 R 431 0 R 433 0 R 435 0 R 436 0 R 437 0 R 438 0 R 439 0 R 1566 0 R 445 0 R 446 0 R 447 0 R 448 0 R 449 0 R 450 0 R 1554 0 R ] >> endobj 465 0 obj << /S /Table /P 464 0 R /K [ 466 0 R 494 0 R 501 0 R 529 0 R 536 0 R 543 0 R 550 0 R 557 0 R 564 0 R 571 0 R ] /A [ 1580 0 R ] >> endobj 466 0 obj << /S /TR /P 465 0 R /K [ 467 0 R 470 0 R 473 0 R 476 0 R 479 0 R 482 0 R 485 0 R 488 0 R 491 0 R ] >> endobj 467 0 obj << /S /TD /A [ 468 0 R 469 0 R ] /P 466 0 R /K 59 0 R >> endobj 468 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 469 0 obj << /O /Layout /BlockAlign /Before >> endobj 470 0 obj << /S /TD /A [ 471 0 R 472 0 R ] /P 466 0 R /K 60 0 R >> endobj 471 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 472 0 obj << /O /Layout /BlockAlign /After >> endobj 473 0 obj << /S /TD /A [ 474 0 R 475 0 R ] /P 466 0 R /K 62 0 R >> endobj 474 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 475 0 obj << /O /Layout /BlockAlign /Before >> endobj 476 0 obj << /S /TD /A [ 477 0 R 478 0 R ] /P 466 0 R /K 63 0 R >> endobj 477 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 478 0 obj << /O /Layout /BlockAlign /Before >> endobj 479 0 obj << /S /TD /A [ 480 0 R 481 0 R ] /P 466 0 R /K 64 0 R >> endobj 480 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 481 0 obj << /O /Layout /BlockAlign /Before >> endobj 482 0 obj << /S /TD /A [ 483 0 R 484 0 R ] /P 466 0 R /K 65 0 R >> endobj 483 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 484 0 obj << /O /Layout /BlockAlign /Before >> endobj 485 0 obj << /S /TD /A [ 486 0 R 487 0 R ] /P 466 0 R /K 66 0 R >> endobj 486 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 487 0 obj << /O /Layout /BlockAlign /Before >> endobj 488 0 obj << /S /TD /A [ 489 0 R 490 0 R ] /P 466 0 R /K 67 0 R >> endobj 489 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 490 0 obj << /O /Layout /BlockAlign /Before >> endobj 491 0 obj << /S /TD /A [ 492 0 R 493 0 R ] /P 466 0 R /K 68 0 R >> endobj 492 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 493 0 obj << /O /Layout /BlockAlign /Before >> endobj 494 0 obj << /S /TR /P 465 0 R /K [ 495 0 R 498 0 R ] >> endobj 495 0 obj << /S /TD /A [ 496 0 R 497 0 R ] /P 494 0 R /K 69 0 R >> endobj 496 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 497 0 obj << /O /Layout /BlockAlign /Before >> endobj 498 0 obj << /S /TD /A [ 499 0 R 500 0 R ] /P 494 0 R /K 71 0 R >> endobj 499 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 500 0 obj << /O /Layout /BlockAlign /Before >> endobj 501 0 obj << /S /TR /P 465 0 R /K [ 502 0 R 505 0 R 508 0 R 511 0 R 514 0 R 517 0 R 520 0 R 523 0 R 526 0 R ] >> endobj 502 0 obj << /S /TD /A [ 503 0 R 504 0 R ] /P 501 0 R /K 73 0 R >> endobj 503 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 504 0 obj << /O /Layout /BlockAlign /Before >> endobj 505 0 obj << /S /TD /A [ 506 0 R 507 0 R ] /P 501 0 R /K 74 0 R >> endobj 506 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 507 0 obj << /O /Layout /BlockAlign /Before >> endobj 508 0 obj << /S /TD /A [ 509 0 R 510 0 R ] /P 501 0 R /K 75 0 R >> endobj 509 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 510 0 obj << /O /Layout /BlockAlign /Before >> endobj 511 0 obj << /S /TD /A [ 512 0 R 513 0 R ] /P 501 0 R /K 76 0 R >> endobj 512 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 513 0 obj << /O /Layout /BlockAlign /Before >> endobj 514 0 obj << /S /TD /A [ 515 0 R 516 0 R ] /P 501 0 R /K 77 0 R >> endobj 515 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 516 0 obj << /O /Layout /BlockAlign /Before >> endobj 517 0 obj << /S /TD /A [ 518 0 R 519 0 R ] /P 501 0 R /K 78 0 R >> endobj 518 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 519 0 obj << /O /Layout /BlockAlign /Before >> endobj 520 0 obj << /S /TD /A [ 521 0 R 522 0 R ] /P 501 0 R /K 79 0 R >> endobj 521 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 522 0 obj << /O /Layout /BlockAlign /Before >> endobj 523 0 obj << /S /TD /A [ 524 0 R 525 0 R ] /P 501 0 R /K 80 0 R >> endobj 524 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 525 0 obj << /O /Layout /BlockAlign /Before >> endobj 526 0 obj << /S /TD /A [ 527 0 R 528 0 R ] /P 501 0 R /K 81 0 R >> endobj 527 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 528 0 obj << /O /Layout /BlockAlign /Before >> endobj 529 0 obj << /S /TR /P 465 0 R /K [ 530 0 R 533 0 R ] >> endobj 530 0 obj << /S /TD /A [ 531 0 R 532 0 R ] /P 529 0 R /K 82 0 R >> endobj 531 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 532 0 obj << /O /Layout /BlockAlign /Before >> endobj 533 0 obj << /S /TD /A [ 534 0 R 535 0 R ] /P 529 0 R /K 83 0 R >> endobj 534 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 535 0 obj << /O /Layout /BlockAlign /Before >> endobj 536 0 obj << /S /TR /P 465 0 R /K [ 537 0 R 540 0 R ] >> endobj 537 0 obj << /S /TD /A [ 538 0 R 539 0 R ] /P 536 0 R /K 84 0 R >> endobj 538 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 539 0 obj << /O /Layout /BlockAlign /Before >> endobj 540 0 obj << /S /TD /A [ 541 0 R 542 0 R ] /P 536 0 R /K 85 0 R >> endobj 541 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 542 0 obj << /O /Layout /BlockAlign /Before >> endobj 543 0 obj << /S /TR /P 465 0 R /K [ 544 0 R 547 0 R ] >> endobj 544 0 obj << /S /TD /A [ 545 0 R 546 0 R ] /P 543 0 R /K 86 0 R >> endobj 545 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 546 0 obj << /O /Layout /BlockAlign /Before >> endobj 547 0 obj << /S /TD /A [ 548 0 R 549 0 R ] /P 543 0 R /K 87 0 R >> endobj 548 0 obj << /O /Table /ColSpan 8 /RowSpan 1 >> endobj 549 0 obj << /O /Layout /BlockAlign /Before >> endobj 550 0 obj << /S /TR /P 465 0 R /K [ 551 0 R 554 0 R ] >> endobj 551 0 obj << /S /TD /A [ 552 0 R 553 0 R ] /P 550 0 R /K 88 0 R >> endobj 552 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 553 0 obj << /O /Layout /BlockAlign /Before >> endobj 554 0 obj << /S /TD /A [ 555 0 R 556 0 R ] /P 550 0 R /K 89 0 R >> endobj 555 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 556 0 obj << /O /Layout /BlockAlign /Before >> endobj 557 0 obj << /S /TR /P 465 0 R /K [ 558 0 R 561 0 R ] >> endobj 558 0 obj << /S /TD /A [ 559 0 R 560 0 R ] /P 557 0 R /K 90 0 R >> endobj 559 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 560 0 obj << /O /Layout /BlockAlign /Before >> endobj 561 0 obj << /S /TD /A [ 562 0 R 563 0 R ] /P 557 0 R /K 91 0 R >> endobj 562 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 563 0 obj << /O /Layout /BlockAlign /Before >> endobj 564 0 obj << /S /TR /P 465 0 R /K [ 565 0 R 568 0 R ] >> endobj 565 0 obj << /S /TD /A [ 566 0 R 567 0 R ] /P 564 0 R /K 92 0 R >> endobj 566 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 567 0 obj << /O /Layout /BlockAlign /Before >> endobj 568 0 obj << /S /TD /A [ 569 0 R 570 0 R ] /P 564 0 R /K 93 0 R >> endobj 569 0 obj << /O /Table /ColSpan 8 /RowSpan 1 >> endobj 570 0 obj << /O /Layout /BlockAlign /Before >> endobj 571 0 obj << /S /TR /P 465 0 R /K [ 572 0 R 575 0 R ] >> endobj 572 0 obj << /S /TD /A [ 573 0 R 574 0 R ] /P 571 0 R /K 94 0 R >> endobj 573 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 574 0 obj << /O /Layout /BlockAlign /Before >> endobj 575 0 obj << /S /TD /A [ 576 0 R 577 0 R ] /P 571 0 R /K 95 0 R >> endobj 576 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 577 0 obj << /O /Layout /BlockAlign /Before >> endobj 578 0 obj << /S /Table /P 464 0 R /K [ 579 0 R 607 0 R 614 0 R 639 0 R 658 0 R 665 0 R 675 0 R 682 0 R 689 0 R 696 0 R 703 0 R 710 0 R 738 0 R 757 0 R 764 0 R 771 0 R 778 0 R 785 0 R 792 0 R ] /A [ 1581 0 R ] >> endobj 579 0 obj << /S /TR /P 578 0 R /K [ 580 0 R 583 0 R 586 0 R 589 0 R 592 0 R 595 0 R 598 0 R 601 0 R 604 0 R ] >> endobj 580 0 obj << /S /TD /A [ 581 0 R 582 0 R ] /P 579 0 R /K 99 0 R >> endobj 581 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 582 0 obj << /O /Layout /BlockAlign /Before >> endobj 583 0 obj << /S /TD /A [ 584 0 R 585 0 R ] /P 579 0 R /K 100 0 R >> endobj 584 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 585 0 obj << /O /Layout /BlockAlign /Before >> endobj 586 0 obj << /S /TD /A [ 587 0 R 588 0 R ] /P 579 0 R /K 101 0 R >> endobj 587 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 588 0 obj << /O /Layout /BlockAlign /Before >> endobj 589 0 obj << /S /TD /A [ 590 0 R 591 0 R ] /P 579 0 R /K 102 0 R >> endobj 590 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 591 0 obj << /O /Layout /BlockAlign /Before >> endobj 592 0 obj << /S /TD /A [ 593 0 R 594 0 R ] /P 579 0 R /K 103 0 R >> endobj 593 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 594 0 obj << /O /Layout /BlockAlign /Before >> endobj 595 0 obj << /S /TD /A [ 596 0 R 597 0 R ] /P 579 0 R /K 104 0 R >> endobj 596 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 597 0 obj << /O /Layout /BlockAlign /Before >> endobj 598 0 obj << /S /TD /A [ 599 0 R 600 0 R ] /P 579 0 R /K 105 0 R >> endobj 599 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 600 0 obj << /O /Layout /BlockAlign /Before >> endobj 601 0 obj << /S /TD /A [ 602 0 R 603 0 R ] /P 579 0 R /K 106 0 R >> endobj 602 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 603 0 obj << /O /Layout /BlockAlign /Before >> endobj 604 0 obj << /S /TD /A [ 605 0 R 606 0 R ] /P 579 0 R /K 107 0 R >> endobj 605 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 606 0 obj << /O /Layout /BlockAlign /Before >> endobj 607 0 obj << /S /TR /P 578 0 R /K [ 608 0 R 611 0 R ] >> endobj 608 0 obj << /S /TD /A [ 609 0 R 610 0 R ] /P 607 0 R /K 108 0 R >> endobj 609 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 610 0 obj << /O /Layout /BlockAlign /Before >> endobj 611 0 obj << /S /TD /A [ 612 0 R 613 0 R ] /P 607 0 R /K 109 0 R >> endobj 612 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 613 0 obj << /O /Layout /BlockAlign /Before >> endobj 614 0 obj << /S /TR /P 578 0 R /K [ 615 0 R 618 0 R 621 0 R 624 0 R 627 0 R 630 0 R 633 0 R 636 0 R ] >> endobj 615 0 obj << /S /TD /A [ 616 0 R 617 0 R ] /P 614 0 R /K 110 0 R >> endobj 616 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 617 0 obj << /O /Layout /BlockAlign /Before >> endobj 618 0 obj << /S /TD /A [ 619 0 R 620 0 R ] /P 614 0 R /K 111 0 R >> endobj 619 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 620 0 obj << /O /Layout /BlockAlign /Before >> endobj 621 0 obj << /S /TD /A [ 622 0 R 623 0 R ] /P 614 0 R /K 112 0 R >> endobj 622 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 623 0 obj << /O /Layout /BlockAlign /Before >> endobj 624 0 obj << /S /TD /A [ 625 0 R 626 0 R ] /P 614 0 R /K 113 0 R >> endobj 625 0 obj << /O /Table /ColSpan 2 /RowSpan 1 >> endobj 626 0 obj << /O /Layout /BlockAlign /Before >> endobj 627 0 obj << /S /TD /A [ 628 0 R 629 0 R ] /P 614 0 R /K 114 0 R >> endobj 628 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 629 0 obj << /O /Layout /BlockAlign /Before >> endobj 630 0 obj << /S /TD /A [ 631 0 R 632 0 R ] /P 614 0 R /K 115 0 R >> endobj 631 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 632 0 obj << /O /Layout /BlockAlign /Before >> endobj 633 0 obj << /S /TD /A [ 634 0 R 635 0 R ] /P 614 0 R /K 116 0 R >> endobj 634 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 635 0 obj << /O /Layout /BlockAlign /Before >> endobj 636 0 obj << /S /TD /A [ 637 0 R 638 0 R ] /P 614 0 R /K 117 0 R >> endobj 637 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 638 0 obj << /O /Layout /BlockAlign /Before >> endobj 639 0 obj << /S /TR /P 578 0 R /K [ 640 0 R 643 0 R 646 0 R 649 0 R 652 0 R 655 0 R ] >> endobj 640 0 obj << /S /TD /A [ 641 0 R 642 0 R ] /P 639 0 R /K 118 0 R >> endobj 641 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 642 0 obj << /O /Layout /BlockAlign /Before >> endobj 643 0 obj << /S /TD /A [ 644 0 R 645 0 R ] /P 639 0 R /K 119 0 R >> endobj 644 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 645 0 obj << /O /Layout /BlockAlign /Before >> endobj 646 0 obj << /S /TD /A [ 647 0 R 648 0 R ] /P 639 0 R /K 120 0 R >> endobj 647 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 648 0 obj << /O /Layout /BlockAlign /Before >> endobj 649 0 obj << /S /TD /A [ 650 0 R 651 0 R ] /P 639 0 R /K 121 0 R >> endobj 650 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 651 0 obj << /O /Layout /BlockAlign /Before >> endobj 652 0 obj << /S /TD /A [ 653 0 R 654 0 R ] /P 639 0 R /K 122 0 R >> endobj 653 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 654 0 obj << /O /Layout /BlockAlign /Before >> endobj 655 0 obj << /S /TD /A [ 656 0 R 657 0 R ] /P 639 0 R /K 123 0 R >> endobj 656 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 657 0 obj << /O /Layout /BlockAlign /Before >> endobj 658 0 obj << /S /TR /P 578 0 R /K [ 659 0 R 662 0 R ] >> endobj 659 0 obj << /S /TD /A [ 660 0 R 661 0 R ] /P 658 0 R /K 124 0 R >> endobj 660 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 661 0 obj << /O /Layout /BlockAlign /Before >> endobj 662 0 obj << /S /TD /A [ 663 0 R 664 0 R ] /P 658 0 R /K 125 0 R >> endobj 663 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 664 0 obj << /O /Layout /BlockAlign /Before >> endobj 665 0 obj << /S /TR /P 578 0 R /K [ 666 0 R 669 0 R 672 0 R ] >> endobj 666 0 obj << /S /TD /A [ 667 0 R 668 0 R ] /P 665 0 R /K 126 0 R >> endobj 667 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 668 0 obj << /O /Layout /BlockAlign /Before >> endobj 669 0 obj << /S /TD /A [ 670 0 R 671 0 R ] /P 665 0 R /K 127 0 R >> endobj 670 0 obj << /O /Table /ColSpan 4 /RowSpan 1 >> endobj 671 0 obj << /O /Layout /BlockAlign /Before >> endobj 672 0 obj << /S /TD /A [ 673 0 R 674 0 R ] /P 665 0 R /K 128 0 R >> endobj 673 0 obj << /O /Table /ColSpan 4 /RowSpan 1 >> endobj 674 0 obj << /O /Layout /BlockAlign /Before >> endobj 675 0 obj << /S /TR /P 578 0 R /K [ 676 0 R 679 0 R ] >> endobj 676 0 obj << /S /TD /A [ 677 0 R 678 0 R ] /P 675 0 R /K 129 0 R >> endobj 677 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 678 0 obj << /O /Layout /BlockAlign /Before >> endobj 679 0 obj << /S /TD /A [ 680 0 R 681 0 R ] /P 675 0 R /K 130 0 R >> endobj 680 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 681 0 obj << /O /Layout /BlockAlign /Before >> endobj 682 0 obj << /S /TR /P 578 0 R /K [ 683 0 R 686 0 R ] >> endobj 683 0 obj << /S /TD /A [ 684 0 R 685 0 R ] /P 682 0 R /K 131 0 R >> endobj 684 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 685 0 obj << /O /Layout /BlockAlign /Before >> endobj 686 0 obj << /S /TD /A [ 687 0 R 688 0 R ] /P 682 0 R /K 132 0 R >> endobj 687 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 688 0 obj << /O /Layout /BlockAlign /Before >> endobj 689 0 obj << /S /TR /P 578 0 R /K [ 690 0 R 693 0 R ] >> endobj 690 0 obj << /S /TD /A [ 691 0 R 692 0 R ] /P 689 0 R /K 133 0 R >> endobj 691 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 692 0 obj << /O /Layout /BlockAlign /Before >> endobj 693 0 obj << /S /TD /A [ 694 0 R 695 0 R ] /P 689 0 R /K 134 0 R >> endobj 694 0 obj << /O /Table /ColSpan 8 /RowSpan 1 >> endobj 695 0 obj << /O /Layout /BlockAlign /Before >> endobj 696 0 obj << /S /TR /P 578 0 R /K [ 697 0 R 700 0 R ] >> endobj 697 0 obj << /S /TD /A [ 698 0 R 699 0 R ] /P 696 0 R /K 135 0 R >> endobj 698 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 699 0 obj << /O /Layout /BlockAlign /Before >> endobj 700 0 obj << /S /TD /A [ 701 0 R 702 0 R ] /P 696 0 R /K 136 0 R >> endobj 701 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 702 0 obj << /O /Layout /BlockAlign /Before >> endobj 703 0 obj << /S /TR /P 578 0 R /K [ 704 0 R 707 0 R ] >> endobj 704 0 obj << /S /TD /A [ 705 0 R 706 0 R ] /P 703 0 R /K 137 0 R >> endobj 705 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 706 0 obj << /O /Layout /BlockAlign /Before >> endobj 707 0 obj << /S /TD /A [ 708 0 R 709 0 R ] /P 703 0 R /K 138 0 R >> endobj 708 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 709 0 obj << /O /Layout /BlockAlign /Before >> endobj 710 0 obj << /S /TR /P 578 0 R /K [ 711 0 R 714 0 R 717 0 R 720 0 R 723 0 R 726 0 R 729 0 R 732 0 R 735 0 R ] >> endobj 711 0 obj << /S /TD /A [ 712 0 R 713 0 R ] /P 710 0 R /K 139 0 R >> endobj 712 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 713 0 obj << /O /Layout /BlockAlign /Before >> endobj 714 0 obj << /S /TD /A [ 715 0 R 716 0 R ] /P 710 0 R /K 140 0 R >> endobj 715 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 716 0 obj << /O /Layout /BlockAlign /Before >> endobj 717 0 obj << /S /TD /A [ 718 0 R 719 0 R ] /P 710 0 R /K 141 0 R >> endobj 718 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 719 0 obj << /O /Layout /BlockAlign /Before >> endobj 720 0 obj << /S /TD /A [ 721 0 R 722 0 R ] /P 710 0 R /K 142 0 R >> endobj 721 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 722 0 obj << /O /Layout /BlockAlign /Before >> endobj 723 0 obj << /S /TD /A [ 724 0 R 725 0 R ] /P 710 0 R /K 143 0 R >> endobj 724 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 725 0 obj << /O /Layout /BlockAlign /Before >> endobj 726 0 obj << /S /TD /A [ 727 0 R 728 0 R ] /P 710 0 R /K 144 0 R >> endobj 727 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 728 0 obj << /O /Layout /BlockAlign /Before >> endobj 729 0 obj << /S /TD /A [ 730 0 R 731 0 R ] /P 710 0 R /K 145 0 R >> endobj 730 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 731 0 obj << /O /Layout /BlockAlign /Before >> endobj 732 0 obj << /S /TD /A [ 733 0 R 734 0 R ] /P 710 0 R /K 146 0 R >> endobj 733 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 734 0 obj << /O /Layout /BlockAlign /Before >> endobj 735 0 obj << /S /TD /A [ 736 0 R 737 0 R ] /P 710 0 R /K 147 0 R >> endobj 736 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 737 0 obj << /O /Layout /BlockAlign /Before >> endobj 738 0 obj << /S /TR /P 578 0 R /K [ 739 0 R 742 0 R 745 0 R 748 0 R 751 0 R 754 0 R ] >> endobj 739 0 obj << /S /TD /A [ 740 0 R 741 0 R ] /P 738 0 R /K 148 0 R >> endobj 740 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 741 0 obj << /O /Layout /BlockAlign /Before >> endobj 742 0 obj << /S /TD /A [ 743 0 R 744 0 R ] /P 738 0 R /K 149 0 R >> endobj 743 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 744 0 obj << /O /Layout /BlockAlign /Before >> endobj 745 0 obj << /S /TD /A [ 746 0 R 747 0 R ] /P 738 0 R /K 150 0 R >> endobj 746 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 747 0 obj << /O /Layout /BlockAlign /Before >> endobj 748 0 obj << /S /TD /A [ 749 0 R 750 0 R ] /P 738 0 R /K 151 0 R >> endobj 749 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 750 0 obj << /O /Layout /BlockAlign /Before >> endobj 751 0 obj << /S /TD /A [ 752 0 R 753 0 R ] /P 738 0 R /K 152 0 R >> endobj 752 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 753 0 obj << /O /Layout /BlockAlign /Before >> endobj 754 0 obj << /S /TD /A [ 755 0 R 756 0 R ] /P 738 0 R /K 153 0 R >> endobj 755 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 756 0 obj << /O /Layout /BlockAlign /Before >> endobj 757 0 obj << /S /TR /P 578 0 R /K [ 758 0 R 761 0 R ] >> endobj 758 0 obj << /S /TD /A [ 759 0 R 760 0 R ] /P 757 0 R /K 154 0 R >> endobj 759 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 760 0 obj << /O /Layout /BlockAlign /Before >> endobj 761 0 obj << /S /TD /A [ 762 0 R 763 0 R ] /P 757 0 R /K 155 0 R >> endobj 762 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 763 0 obj << /O /Layout /BlockAlign /Before >> endobj 764 0 obj << /S /TR /P 578 0 R /K [ 765 0 R 768 0 R ] >> endobj 765 0 obj << /S /TD /A [ 766 0 R 767 0 R ] /P 764 0 R /K 156 0 R >> endobj 766 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 767 0 obj << /O /Layout /BlockAlign /Before >> endobj 768 0 obj << /S /TD /A [ 769 0 R 770 0 R ] /P 764 0 R /K 157 0 R >> endobj 769 0 obj << /O /Table /ColSpan 8 /RowSpan 1 >> endobj 770 0 obj << /O /Layout /BlockAlign /Before >> endobj 771 0 obj << /S /TR /P 578 0 R /K [ 772 0 R 775 0 R ] >> endobj 772 0 obj << /S /TD /A [ 773 0 R 774 0 R ] /P 771 0 R /K 158 0 R >> endobj 773 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 774 0 obj << /O /Layout /BlockAlign /Before >> endobj 775 0 obj << /S /TD /A [ 776 0 R 777 0 R ] /P 771 0 R /K 159 0 R >> endobj 776 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 777 0 obj << /O /Layout /BlockAlign /Before >> endobj 778 0 obj << /S /TR /P 578 0 R /K [ 779 0 R 782 0 R ] >> endobj 779 0 obj << /S /TD /A [ 780 0 R 781 0 R ] /P 778 0 R /K 160 0 R >> endobj 780 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 781 0 obj << /O /Layout /BlockAlign /Before >> endobj 782 0 obj << /S /TD /A [ 783 0 R 784 0 R ] /P 778 0 R /K 161 0 R >> endobj 783 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 784 0 obj << /O /Layout /BlockAlign /Before >> endobj 785 0 obj << /S /TR /P 578 0 R /K [ 786 0 R 789 0 R ] >> endobj 786 0 obj << /S /TD /A [ 787 0 R 788 0 R ] /P 785 0 R /K 162 0 R >> endobj 787 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 788 0 obj << /O /Layout /BlockAlign /Before >> endobj 789 0 obj << /S /TD /A [ 790 0 R 791 0 R ] /P 785 0 R /K 163 0 R >> endobj 790 0 obj << /O /Table /ColSpan 8 /RowSpan 1 >> endobj 791 0 obj << /O /Layout /BlockAlign /Before >> endobj 792 0 obj << /S /TR /P 578 0 R /K [ 793 0 R 796 0 R ] >> endobj 793 0 obj << /S /TD /A [ 794 0 R 795 0 R ] /P 792 0 R /K 164 0 R >> endobj 794 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 795 0 obj << /O /Layout /BlockAlign /Before >> endobj 796 0 obj << /S /TD /A [ 797 0 R 798 0 R ] /P 792 0 R /K 165 0 R >> endobj 797 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 798 0 obj << /O /Layout /BlockAlign /Before >> endobj 799 0 obj << /S /Table /P 464 0 R /K [ 800 0 R 828 0 R 835 0 R 860 0 R 879 0 R 886 0 R 896 0 R 903 0 R 910 0 R 917 0 R 924 0 R 931 0 R 959 0 R 978 0 R 985 0 R 992 0 R 999 0 R 1006 0 R 1013 0 R ] /A [ 1582 0 R ] >> endobj 800 0 obj << /S /TR /P 799 0 R /K [ 801 0 R 804 0 R 807 0 R 810 0 R 813 0 R 816 0 R 819 0 R 822 0 R 825 0 R ] >> endobj 801 0 obj << /S /TD /A [ 802 0 R 803 0 R ] /P 800 0 R /K 168 0 R >> endobj 802 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 803 0 obj << /O /Layout /BlockAlign /Before >> endobj 804 0 obj << /S /TD /A [ 805 0 R 806 0 R ] /P 800 0 R /K 169 0 R >> endobj 805 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 806 0 obj << /O /Layout /BlockAlign /Before >> endobj 807 0 obj << /S /TD /A [ 808 0 R 809 0 R ] /P 800 0 R /K 170 0 R >> endobj 808 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 809 0 obj << /O /Layout /BlockAlign /Before >> endobj 810 0 obj << /S /TD /A [ 811 0 R 812 0 R ] /P 800 0 R /K 171 0 R >> endobj 811 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 812 0 obj << /O /Layout /BlockAlign /Before >> endobj 813 0 obj << /S /TD /A [ 814 0 R 815 0 R ] /P 800 0 R /K 172 0 R >> endobj 814 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 815 0 obj << /O /Layout /BlockAlign /Before >> endobj 816 0 obj << /S /TD /A [ 817 0 R 818 0 R ] /P 800 0 R /K 173 0 R >> endobj 817 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 818 0 obj << /O /Layout /BlockAlign /Before >> endobj 819 0 obj << /S /TD /A [ 820 0 R 821 0 R ] /P 800 0 R /K 174 0 R >> endobj 820 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 821 0 obj << /O /Layout /BlockAlign /Before >> endobj 822 0 obj << /S /TD /A [ 823 0 R 824 0 R ] /P 800 0 R /K 175 0 R >> endobj 823 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 824 0 obj << /O /Layout /BlockAlign /Before >> endobj 825 0 obj << /S /TD /A [ 826 0 R 827 0 R ] /P 800 0 R /K 176 0 R >> endobj 826 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 827 0 obj << /O /Layout /BlockAlign /Before >> endobj 828 0 obj << /S /TR /P 799 0 R /K [ 829 0 R 832 0 R ] >> endobj 829 0 obj << /S /TD /A [ 830 0 R 831 0 R ] /P 828 0 R /K 177 0 R >> endobj 830 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 831 0 obj << /O /Layout /BlockAlign /Before >> endobj 832 0 obj << /S /TD /A [ 833 0 R 834 0 R ] /P 828 0 R /K 178 0 R >> endobj 833 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 834 0 obj << /O /Layout /BlockAlign /Before >> endobj 835 0 obj << /S /TR /P 799 0 R /K [ 836 0 R 839 0 R 842 0 R 845 0 R 848 0 R 851 0 R 854 0 R 857 0 R ] >> endobj 836 0 obj << /S /TD /A [ 837 0 R 838 0 R ] /P 835 0 R /K 179 0 R >> endobj 837 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 838 0 obj << /O /Layout /BlockAlign /Before >> endobj 839 0 obj << /S /TD /A [ 840 0 R 841 0 R ] /P 835 0 R /K 180 0 R >> endobj 840 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 841 0 obj << /O /Layout /BlockAlign /Before >> endobj 842 0 obj << /S /TD /A [ 843 0 R 844 0 R ] /P 835 0 R /K 181 0 R >> endobj 843 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 844 0 obj << /O /Layout /BlockAlign /Before >> endobj 845 0 obj << /S /TD /A [ 846 0 R 847 0 R ] /P 835 0 R /K 182 0 R >> endobj 846 0 obj << /O /Table /ColSpan 2 /RowSpan 1 >> endobj 847 0 obj << /O /Layout /BlockAlign /Before >> endobj 848 0 obj << /S /TD /A [ 849 0 R 850 0 R ] /P 835 0 R /K 183 0 R >> endobj 849 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 850 0 obj << /O /Layout /BlockAlign /Before >> endobj 851 0 obj << /S /TD /A [ 852 0 R 853 0 R ] /P 835 0 R /K 184 0 R >> endobj 852 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 853 0 obj << /O /Layout /BlockAlign /Before >> endobj 854 0 obj << /S /TD /A [ 855 0 R 856 0 R ] /P 835 0 R /K 185 0 R >> endobj 855 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 856 0 obj << /O /Layout /BlockAlign /Before >> endobj 857 0 obj << /S /TD /A [ 858 0 R 859 0 R ] /P 835 0 R /K 186 0 R >> endobj 858 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 859 0 obj << /O /Layout /BlockAlign /Before >> endobj 860 0 obj << /S /TR /P 799 0 R /K [ 861 0 R 864 0 R 867 0 R 870 0 R 873 0 R 876 0 R ] >> endobj 861 0 obj << /S /TD /A [ 862 0 R 863 0 R ] /P 860 0 R /K 187 0 R >> endobj 862 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 863 0 obj << /O /Layout /BlockAlign /Before >> endobj 864 0 obj << /S /TD /A [ 865 0 R 866 0 R ] /P 860 0 R /K 188 0 R >> endobj 865 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 866 0 obj << /O /Layout /BlockAlign /Before >> endobj 867 0 obj << /S /TD /A [ 868 0 R 869 0 R ] /P 860 0 R /K 189 0 R >> endobj 868 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 869 0 obj << /O /Layout /BlockAlign /Before >> endobj 870 0 obj << /S /TD /A [ 871 0 R 872 0 R ] /P 860 0 R /K 190 0 R >> endobj 871 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 872 0 obj << /O /Layout /BlockAlign /Before >> endobj 873 0 obj << /S /TD /A [ 874 0 R 875 0 R ] /P 860 0 R /K 191 0 R >> endobj 874 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 875 0 obj << /O /Layout /BlockAlign /Before >> endobj 876 0 obj << /S /TD /A [ 877 0 R 878 0 R ] /P 860 0 R /K 192 0 R >> endobj 877 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 878 0 obj << /O /Layout /BlockAlign /Before >> endobj 879 0 obj << /S /TR /P 799 0 R /K [ 880 0 R 883 0 R ] >> endobj 880 0 obj << /S /TD /A [ 881 0 R 882 0 R ] /P 879 0 R /K 193 0 R >> endobj 881 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 882 0 obj << /O /Layout /BlockAlign /Before >> endobj 883 0 obj << /S /TD /A [ 884 0 R 885 0 R ] /P 879 0 R /K 194 0 R >> endobj 884 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 885 0 obj << /O /Layout /BlockAlign /Before >> endobj 886 0 obj << /S /TR /P 799 0 R /K [ 887 0 R 890 0 R 893 0 R ] >> endobj 887 0 obj << /S /TD /A [ 888 0 R 889 0 R ] /P 886 0 R /K 195 0 R >> endobj 888 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 889 0 obj << /O /Layout /BlockAlign /Before >> endobj 890 0 obj << /S /TD /A [ 891 0 R 892 0 R ] /P 886 0 R /K 196 0 R >> endobj 891 0 obj << /O /Table /ColSpan 4 /RowSpan 1 >> endobj 892 0 obj << /O /Layout /BlockAlign /Before >> endobj 893 0 obj << /S /TD /A [ 894 0 R 895 0 R ] /P 886 0 R /K 197 0 R >> endobj 894 0 obj << /O /Table /ColSpan 4 /RowSpan 1 >> endobj 895 0 obj << /O /Layout /BlockAlign /Before >> endobj 896 0 obj << /S /TR /P 799 0 R /K [ 897 0 R 900 0 R ] >> endobj 897 0 obj << /S /TD /A [ 898 0 R 899 0 R ] /P 896 0 R /K 198 0 R >> endobj 898 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 899 0 obj << /O /Layout /BlockAlign /Before >> endobj 900 0 obj << /S /TD /A [ 901 0 R 902 0 R ] /P 896 0 R /K 199 0 R >> endobj 901 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 902 0 obj << /O /Layout /BlockAlign /Before >> endobj 903 0 obj << /S /TR /P 799 0 R /K [ 904 0 R 907 0 R ] >> endobj 904 0 obj << /S /TD /A [ 905 0 R 906 0 R ] /P 903 0 R /K 200 0 R >> endobj 905 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 906 0 obj << /O /Layout /BlockAlign /Before >> endobj 907 0 obj << /S /TD /A [ 908 0 R 909 0 R ] /P 903 0 R /K 201 0 R >> endobj 908 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 909 0 obj << /O /Layout /BlockAlign /Before >> endobj 910 0 obj << /S /TR /P 799 0 R /K [ 911 0 R 914 0 R ] >> endobj 911 0 obj << /S /TD /A [ 912 0 R 913 0 R ] /P 910 0 R /K 202 0 R >> endobj 912 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 913 0 obj << /O /Layout /BlockAlign /Before >> endobj 914 0 obj << /S /TD /A [ 915 0 R 916 0 R ] /P 910 0 R /K 203 0 R >> endobj 915 0 obj << /O /Table /ColSpan 8 /RowSpan 1 >> endobj 916 0 obj << /O /Layout /BlockAlign /Before >> endobj 917 0 obj << /S /TR /P 799 0 R /K [ 918 0 R 921 0 R ] >> endobj 918 0 obj << /S /TD /A [ 919 0 R 920 0 R ] /P 917 0 R /K 204 0 R >> endobj 919 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 920 0 obj << /O /Layout /BlockAlign /Before >> endobj 921 0 obj << /S /TD /A [ 922 0 R 923 0 R ] /P 917 0 R /K 205 0 R >> endobj 922 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 923 0 obj << /O /Layout /BlockAlign /Before >> endobj 924 0 obj << /S /TR /P 799 0 R /K [ 925 0 R 928 0 R ] >> endobj 925 0 obj << /S /TD /A [ 926 0 R 927 0 R ] /P 924 0 R /K 206 0 R >> endobj 926 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 927 0 obj << /O /Layout /BlockAlign /Before >> endobj 928 0 obj << /S /TD /A [ 929 0 R 930 0 R ] /P 924 0 R /K 207 0 R >> endobj 929 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 930 0 obj << /O /Layout /BlockAlign /Before >> endobj 931 0 obj << /S /TR /P 799 0 R /K [ 932 0 R 935 0 R 938 0 R 941 0 R 944 0 R 947 0 R 950 0 R 953 0 R 956 0 R ] >> endobj 932 0 obj << /S /TD /A [ 933 0 R 934 0 R ] /P 931 0 R /K 208 0 R >> endobj 933 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 934 0 obj << /O /Layout /BlockAlign /Before >> endobj 935 0 obj << /S /TD /A [ 936 0 R 937 0 R ] /P 931 0 R /K 209 0 R >> endobj 936 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 937 0 obj << /O /Layout /BlockAlign /Before >> endobj 938 0 obj << /S /TD /A [ 939 0 R 940 0 R ] /P 931 0 R /K 210 0 R >> endobj 939 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 940 0 obj << /O /Layout /BlockAlign /Before >> endobj 941 0 obj << /S /TD /A [ 942 0 R 943 0 R ] /P 931 0 R /K 211 0 R >> endobj 942 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 943 0 obj << /O /Layout /BlockAlign /Before >> endobj 944 0 obj << /S /TD /A [ 945 0 R 946 0 R ] /P 931 0 R /K 212 0 R >> endobj 945 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 946 0 obj << /O /Layout /BlockAlign /Before >> endobj 947 0 obj << /S /TD /A [ 948 0 R 949 0 R ] /P 931 0 R /K 213 0 R >> endobj 948 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 949 0 obj << /O /Layout /BlockAlign /Before >> endobj 950 0 obj << /S /TD /A [ 951 0 R 952 0 R ] /P 931 0 R /K 214 0 R >> endobj 951 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 952 0 obj << /O /Layout /BlockAlign /Before >> endobj 953 0 obj << /S /TD /A [ 954 0 R 955 0 R ] /P 931 0 R /K 215 0 R >> endobj 954 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 955 0 obj << /O /Layout /BlockAlign /Before >> endobj 956 0 obj << /S /TD /A [ 957 0 R 958 0 R ] /P 931 0 R /K 216 0 R >> endobj 957 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 958 0 obj << /O /Layout /BlockAlign /Before >> endobj 959 0 obj << /S /TR /P 799 0 R /K [ 960 0 R 963 0 R 966 0 R 969 0 R 972 0 R 975 0 R ] >> endobj 960 0 obj << /S /TD /A [ 961 0 R 962 0 R ] /P 959 0 R /K 217 0 R >> endobj 961 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 962 0 obj << /O /Layout /BlockAlign /Before >> endobj 963 0 obj << /S /TD /A [ 964 0 R 965 0 R ] /P 959 0 R /K 218 0 R >> endobj 964 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 965 0 obj << /O /Layout /BlockAlign /Before >> endobj 966 0 obj << /S /TD /A [ 967 0 R 968 0 R ] /P 959 0 R /K 219 0 R >> endobj 967 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 968 0 obj << /O /Layout /BlockAlign /Before >> endobj 969 0 obj << /S /TD /A [ 970 0 R 971 0 R ] /P 959 0 R /K 220 0 R >> endobj 970 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 971 0 obj << /O /Layout /BlockAlign /Before >> endobj 972 0 obj << /S /TD /A [ 973 0 R 974 0 R ] /P 959 0 R /K 221 0 R >> endobj 973 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 974 0 obj << /O /Layout /BlockAlign /Before >> endobj 975 0 obj << /S /TD /A [ 976 0 R 977 0 R ] /P 959 0 R /K 222 0 R >> endobj 976 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 977 0 obj << /O /Layout /BlockAlign /Before >> endobj 978 0 obj << /S /TR /P 799 0 R /K [ 979 0 R 982 0 R ] >> endobj 979 0 obj << /S /TD /A [ 980 0 R 981 0 R ] /P 978 0 R /K 223 0 R >> endobj 980 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 981 0 obj << /O /Layout /BlockAlign /Before >> endobj 982 0 obj << /S /TD /A [ 983 0 R 984 0 R ] /P 978 0 R /K 224 0 R >> endobj 983 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 984 0 obj << /O /Layout /BlockAlign /Before >> endobj 985 0 obj << /S /TR /P 799 0 R /K [ 986 0 R 989 0 R ] >> endobj 986 0 obj << /S /TD /A [ 987 0 R 988 0 R ] /P 985 0 R /K 225 0 R >> endobj 987 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 988 0 obj << /O /Layout /BlockAlign /Before >> endobj 989 0 obj << /S /TD /A [ 990 0 R 991 0 R ] /P 985 0 R /K 226 0 R >> endobj 990 0 obj << /O /Table /ColSpan 8 /RowSpan 1 >> endobj 991 0 obj << /O /Layout /BlockAlign /Before >> endobj 992 0 obj << /S /TR /P 799 0 R /K [ 993 0 R 996 0 R ] >> endobj 993 0 obj << /S /TD /A [ 994 0 R 995 0 R ] /P 992 0 R /K 227 0 R >> endobj 994 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 995 0 obj << /O /Layout /BlockAlign /Before >> endobj 996 0 obj << /S /TD /A [ 997 0 R 998 0 R ] /P 992 0 R /K 228 0 R >> endobj 997 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 998 0 obj << /O /Layout /BlockAlign /Before >> endobj 999 0 obj << /S /TR /P 799 0 R /K [ 1000 0 R 1003 0 R ] >> endobj 1000 0 obj << /S /TD /A [ 1001 0 R 1002 0 R ] /P 999 0 R /K 229 0 R >> endobj 1001 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1002 0 obj << /O /Layout /BlockAlign /Before >> endobj 1003 0 obj << /S /TD /A [ 1004 0 R 1005 0 R ] /P 999 0 R /K 230 0 R >> endobj 1004 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1005 0 obj << /O /Layout /BlockAlign /Before >> endobj 1006 0 obj << /S /TR /P 799 0 R /K [ 1007 0 R 1010 0 R ] >> endobj 1007 0 obj << /S /TD /A [ 1008 0 R 1009 0 R ] /P 1006 0 R /K 231 0 R >> endobj 1008 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1009 0 obj << /O /Layout /BlockAlign /Before >> endobj 1010 0 obj << /S /TD /A [ 1011 0 R 1012 0 R ] /P 1006 0 R /K 232 0 R >> endobj 1011 0 obj << /O /Table /ColSpan 8 /RowSpan 1 >> endobj 1012 0 obj << /O /Layout /BlockAlign /Before >> endobj 1013 0 obj << /S /TR /P 799 0 R /K [ 1014 0 R 1017 0 R ] >> endobj 1014 0 obj << /S /TD /A [ 1015 0 R 1016 0 R ] /P 1013 0 R /K 233 0 R >> endobj 1015 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1016 0 obj << /O /Layout /BlockAlign /Before >> endobj 1017 0 obj << /S /TD /A [ 1018 0 R 1019 0 R ] /P 1013 0 R /K 234 0 R >> endobj 1018 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1019 0 obj << /O /Layout /BlockAlign /Before >> endobj 1020 0 obj << /S /Table /P 464 0 R /K [ 1021 0 R 1049 0 R 1056 0 R 1081 0 R 1094 0 R 1101 0 R 1111 0 R 1118 0 R 1125 0 R 1132 0 R 1139 0 R 1146 0 R 1174 0 R 1193 0 R 1200 0 R 1219 0 R 1226 0 R 1233 0 R 1252 0 R ] /A [ 1583 0 R ] >> endobj 1021 0 obj << /S /TR /P 1020 0 R /K [ 1022 0 R 1025 0 R 1028 0 R 1031 0 R 1034 0 R 1037 0 R 1040 0 R 1043 0 R 1046 0 R ] >> endobj 1022 0 obj << /S /TD /A [ 1023 0 R 1024 0 R ] /P 1021 0 R /K 237 0 R >> endobj 1023 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1024 0 obj << /O /Layout /BlockAlign /Before >> endobj 1025 0 obj << /S /TD /A [ 1026 0 R 1027 0 R ] /P 1021 0 R /K 238 0 R >> endobj 1026 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1027 0 obj << /O /Layout /BlockAlign /Before >> endobj 1028 0 obj << /S /TD /A [ 1029 0 R 1030 0 R ] /P 1021 0 R /K 239 0 R >> endobj 1029 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1030 0 obj << /O /Layout /BlockAlign /Before >> endobj 1031 0 obj << /S /TD /A [ 1032 0 R 1033 0 R ] /P 1021 0 R /K 240 0 R >> endobj 1032 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1033 0 obj << /O /Layout /BlockAlign /Before >> endobj 1034 0 obj << /S /TD /A [ 1035 0 R 1036 0 R ] /P 1021 0 R /K 241 0 R >> endobj 1035 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1036 0 obj << /O /Layout /BlockAlign /Before >> endobj 1037 0 obj << /S /TD /A [ 1038 0 R 1039 0 R ] /P 1021 0 R /K 242 0 R >> endobj 1038 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1039 0 obj << /O /Layout /BlockAlign /Before >> endobj 1040 0 obj << /S /TD /A [ 1041 0 R 1042 0 R ] /P 1021 0 R /K 243 0 R >> endobj 1041 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1042 0 obj << /O /Layout /BlockAlign /Before >> endobj 1043 0 obj << /S /TD /A [ 1044 0 R 1045 0 R ] /P 1021 0 R /K 244 0 R >> endobj 1044 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1045 0 obj << /O /Layout /BlockAlign /Before >> endobj 1046 0 obj << /S /TD /A [ 1047 0 R 1048 0 R ] /P 1021 0 R /K 245 0 R >> endobj 1047 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1048 0 obj << /O /Layout /BlockAlign /Before >> endobj 1049 0 obj << /S /TR /P 1020 0 R /K [ 1050 0 R 1053 0 R ] >> endobj 1050 0 obj << /S /TD /A [ 1051 0 R 1052 0 R ] /P 1049 0 R /K 246 0 R >> endobj 1051 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1052 0 obj << /O /Layout /BlockAlign /Before >> endobj 1053 0 obj << /S /TD /A [ 1054 0 R 1055 0 R ] /P 1049 0 R /K 247 0 R >> endobj 1054 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1055 0 obj << /O /Layout /BlockAlign /Before >> endobj 1056 0 obj << /S /TR /P 1020 0 R /K [ 1057 0 R 1060 0 R 1063 0 R 1066 0 R 1069 0 R 1072 0 R 1075 0 R 1078 0 R ] >> endobj 1057 0 obj << /S /TD /A [ 1058 0 R 1059 0 R ] /P 1056 0 R /K 248 0 R >> endobj 1058 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1059 0 obj << /O /Layout /BlockAlign /Before >> endobj 1060 0 obj << /S /TD /A [ 1061 0 R 1062 0 R ] /P 1056 0 R /K 249 0 R >> endobj 1061 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1062 0 obj << /O /Layout /BlockAlign /Before >> endobj 1063 0 obj << /S /TD /A [ 1064 0 R 1065 0 R ] /P 1056 0 R /K 250 0 R >> endobj 1064 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1065 0 obj << /O /Layout /BlockAlign /Before >> endobj 1066 0 obj << /S /TD /A [ 1067 0 R 1068 0 R ] /P 1056 0 R /K 251 0 R >> endobj 1067 0 obj << /O /Table /ColSpan 2 /RowSpan 1 >> endobj 1068 0 obj << /O /Layout /BlockAlign /Before >> endobj 1069 0 obj << /S /TD /A [ 1070 0 R 1071 0 R ] /P 1056 0 R /K 252 0 R >> endobj 1070 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1071 0 obj << /O /Layout /BlockAlign /Before >> endobj 1072 0 obj << /S /TD /A [ 1073 0 R 1074 0 R ] /P 1056 0 R /K 253 0 R >> endobj 1073 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1074 0 obj << /O /Layout /BlockAlign /Before >> endobj 1075 0 obj << /S /TD /A [ 1076 0 R 1077 0 R ] /P 1056 0 R /K 254 0 R >> endobj 1076 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1077 0 obj << /O /Layout /BlockAlign /Before >> endobj 1078 0 obj << /S /TD /A [ 1079 0 R 1080 0 R ] /P 1056 0 R /K 255 0 R >> endobj 1079 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1080 0 obj << /O /Layout /BlockAlign /Before >> endobj 1081 0 obj << /S /TR /P 1020 0 R /K [ 1082 0 R 1085 0 R 1088 0 R 1091 0 R ] >> endobj 1082 0 obj << /S /TD /A [ 1083 0 R 1084 0 R ] /P 1081 0 R /K 256 0 R >> endobj 1083 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1084 0 obj << /O /Layout /BlockAlign /Before >> endobj 1085 0 obj << /S /TD /A [ 1086 0 R 1087 0 R ] /P 1081 0 R /K 257 0 R >> endobj 1086 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1087 0 obj << /O /Layout /BlockAlign /Before >> endobj 1088 0 obj << /S /TD /A [ 1089 0 R 1090 0 R ] /P 1081 0 R /K 258 0 R >> endobj 1089 0 obj << /O /Table /ColSpan 2 /RowSpan 1 >> endobj 1090 0 obj << /O /Layout /BlockAlign /Before >> endobj 1091 0 obj << /S /TD /A [ 1092 0 R 1093 0 R ] /P 1081 0 R /K 259 0 R >> endobj 1092 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1093 0 obj << /O /Layout /BlockAlign /Before >> endobj 1094 0 obj << /S /TR /P 1020 0 R /K [ 1095 0 R 1098 0 R ] >> endobj 1095 0 obj << /S /TD /A [ 1096 0 R 1097 0 R ] /P 1094 0 R /K 260 0 R >> endobj 1096 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1097 0 obj << /O /Layout /BlockAlign /Before >> endobj 1098 0 obj << /S /TD /A [ 1099 0 R 1100 0 R ] /P 1094 0 R /K 261 0 R >> endobj 1099 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1100 0 obj << /O /Layout /BlockAlign /Before >> endobj 1101 0 obj << /S /TR /P 1020 0 R /K [ 1102 0 R 1105 0 R 1108 0 R ] >> endobj 1102 0 obj << /S /TD /A [ 1103 0 R 1104 0 R ] /P 1101 0 R /K 262 0 R >> endobj 1103 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1104 0 obj << /O /Layout /BlockAlign /Before >> endobj 1105 0 obj << /S /TD /A [ 1106 0 R 1107 0 R ] /P 1101 0 R /K 263 0 R >> endobj 1106 0 obj << /O /Table /ColSpan 4 /RowSpan 1 >> endobj 1107 0 obj << /O /Layout /BlockAlign /Before >> endobj 1108 0 obj << /S /TD /A [ 1109 0 R 1110 0 R ] /P 1101 0 R /K 264 0 R >> endobj 1109 0 obj << /O /Table /ColSpan 4 /RowSpan 1 >> endobj 1110 0 obj << /O /Layout /BlockAlign /Before >> endobj 1111 0 obj << /S /TR /P 1020 0 R /K [ 1112 0 R 1115 0 R ] >> endobj 1112 0 obj << /S /TD /A [ 1113 0 R 1114 0 R ] /P 1111 0 R /K 265 0 R >> endobj 1113 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1114 0 obj << /O /Layout /BlockAlign /Before >> endobj 1115 0 obj << /S /TD /A [ 1116 0 R 1117 0 R ] /P 1111 0 R /K 266 0 R >> endobj 1116 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1117 0 obj << /O /Layout /BlockAlign /Before >> endobj 1118 0 obj << /S /TR /P 1020 0 R /K [ 1119 0 R 1122 0 R ] >> endobj 1119 0 obj << /S /TD /A [ 1120 0 R 1121 0 R ] /P 1118 0 R /K 267 0 R >> endobj 1120 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1121 0 obj << /O /Layout /BlockAlign /Before >> endobj 1122 0 obj << /S /TD /A [ 1123 0 R 1124 0 R ] /P 1118 0 R /K 268 0 R >> endobj 1123 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1124 0 obj << /O /Layout /BlockAlign /Before >> endobj 1125 0 obj << /S /TR /P 1020 0 R /K [ 1126 0 R 1129 0 R ] >> endobj 1126 0 obj << /S /TD /A [ 1127 0 R 1128 0 R ] /P 1125 0 R /K 269 0 R >> endobj 1127 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1128 0 obj << /O /Layout /BlockAlign /Before >> endobj 1129 0 obj << /S /TD /A [ 1130 0 R 1131 0 R ] /P 1125 0 R /K 270 0 R >> endobj 1130 0 obj << /O /Table /ColSpan 8 /RowSpan 1 >> endobj 1131 0 obj << /O /Layout /BlockAlign /Before >> endobj 1132 0 obj << /S /TR /P 1020 0 R /K [ 1133 0 R 1136 0 R ] >> endobj 1133 0 obj << /S /TD /A [ 1134 0 R 1135 0 R ] /P 1132 0 R /K 271 0 R >> endobj 1134 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1135 0 obj << /O /Layout /BlockAlign /Before >> endobj 1136 0 obj << /S /TD /A [ 1137 0 R 1138 0 R ] /P 1132 0 R /K 272 0 R >> endobj 1137 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1138 0 obj << /O /Layout /BlockAlign /Before >> endobj 1139 0 obj << /S /TR /P 1020 0 R /K [ 1140 0 R 1143 0 R ] >> endobj 1140 0 obj << /S /TD /A [ 1141 0 R 1142 0 R ] /P 1139 0 R /K 273 0 R >> endobj 1141 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1142 0 obj << /O /Layout /BlockAlign /Before >> endobj 1143 0 obj << /S /TD /A [ 1144 0 R 1145 0 R ] /P 1139 0 R /K 274 0 R >> endobj 1144 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1145 0 obj << /O /Layout /BlockAlign /Before >> endobj 1146 0 obj << /S /TR /P 1020 0 R /K [ 1147 0 R 1150 0 R 1153 0 R 1156 0 R 1159 0 R 1162 0 R 1165 0 R 1168 0 R 1171 0 R ] >> endobj 1147 0 obj << /S /TD /A [ 1148 0 R 1149 0 R ] /P 1146 0 R /K 275 0 R >> endobj 1148 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1149 0 obj << /O /Layout /BlockAlign /Before >> endobj 1150 0 obj << /S /TD /A [ 1151 0 R 1152 0 R ] /P 1146 0 R /K 276 0 R >> endobj 1151 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1152 0 obj << /O /Layout /BlockAlign /Before >> endobj 1153 0 obj << /S /TD /A [ 1154 0 R 1155 0 R ] /P 1146 0 R /K 277 0 R >> endobj 1154 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1155 0 obj << /O /Layout /BlockAlign /Before >> endobj 1156 0 obj << /S /TD /A [ 1157 0 R 1158 0 R ] /P 1146 0 R /K 278 0 R >> endobj 1157 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1158 0 obj << /O /Layout /BlockAlign /Before >> endobj 1159 0 obj << /S /TD /A [ 1160 0 R 1161 0 R ] /P 1146 0 R /K 279 0 R >> endobj 1160 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1161 0 obj << /O /Layout /BlockAlign /Before >> endobj 1162 0 obj << /S /TD /A [ 1163 0 R 1164 0 R ] /P 1146 0 R /K 280 0 R >> endobj 1163 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1164 0 obj << /O /Layout /BlockAlign /Before >> endobj 1165 0 obj << /S /TD /A [ 1166 0 R 1167 0 R ] /P 1146 0 R /K 281 0 R >> endobj 1166 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1167 0 obj << /O /Layout /BlockAlign /Before >> endobj 1168 0 obj << /S /TD /A [ 1169 0 R 1170 0 R ] /P 1146 0 R /K 282 0 R >> endobj 1169 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1170 0 obj << /O /Layout /BlockAlign /Before >> endobj 1171 0 obj << /S /TD /A [ 1172 0 R 1173 0 R ] /P 1146 0 R /K 283 0 R >> endobj 1172 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1173 0 obj << /O /Layout /BlockAlign /Before >> endobj 1174 0 obj << /S /TR /P 1020 0 R /K [ 1175 0 R 1178 0 R 1181 0 R 1184 0 R 1187 0 R 1190 0 R ] >> endobj 1175 0 obj << /S /TD /A [ 1176 0 R 1177 0 R ] /P 1174 0 R /K 284 0 R >> endobj 1176 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1177 0 obj << /O /Layout /BlockAlign /Before >> endobj 1178 0 obj << /S /TD /A [ 1179 0 R 1180 0 R ] /P 1174 0 R /K 285 0 R >> endobj 1179 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1180 0 obj << /O /Layout /BlockAlign /Before >> endobj 1181 0 obj << /S /TD /A [ 1182 0 R 1183 0 R ] /P 1174 0 R /K 286 0 R >> endobj 1182 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1183 0 obj << /O /Layout /BlockAlign /Before >> endobj 1184 0 obj << /S /TD /A [ 1185 0 R 1186 0 R ] /P 1174 0 R /K 287 0 R >> endobj 1185 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1186 0 obj << /O /Layout /BlockAlign /Before >> endobj 1187 0 obj << /S /TD /A [ 1188 0 R 1189 0 R ] /P 1174 0 R /K 288 0 R >> endobj 1188 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1189 0 obj << /O /Layout /BlockAlign /Before >> endobj 1190 0 obj << /S /TD /A [ 1191 0 R 1192 0 R ] /P 1174 0 R /K 289 0 R >> endobj 1191 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1192 0 obj << /O /Layout /BlockAlign /Before >> endobj 1193 0 obj << /S /TR /P 1020 0 R /K [ 1194 0 R 1197 0 R ] >> endobj 1194 0 obj << /S /TD /A [ 1195 0 R 1196 0 R ] /P 1193 0 R /K 290 0 R >> endobj 1195 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1196 0 obj << /O /Layout /BlockAlign /Before >> endobj 1197 0 obj << /S /TD /A [ 1198 0 R 1199 0 R ] /P 1193 0 R /K 291 0 R >> endobj 1198 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1199 0 obj << /O /Layout /BlockAlign /Before >> endobj 1200 0 obj << /S /TR /P 1020 0 R /K [ 1201 0 R 1204 0 R 1207 0 R 1210 0 R 1213 0 R 1216 0 R ] >> endobj 1201 0 obj << /S /TD /A [ 1202 0 R 1203 0 R ] /P 1200 0 R /K 292 0 R >> endobj 1202 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1203 0 obj << /O /Layout /BlockAlign /Before >> endobj 1204 0 obj << /S /TD /A [ 1205 0 R 1206 0 R ] /P 1200 0 R /K 293 0 R >> endobj 1205 0 obj << /O /Table /ColSpan 4 /RowSpan 1 >> endobj 1206 0 obj << /O /Layout /BlockAlign /Before >> endobj 1207 0 obj << /S /TD /A [ 1208 0 R 1209 0 R ] /P 1200 0 R /K 294 0 R >> endobj 1208 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1209 0 obj << /O /Layout /BlockAlign /Before >> endobj 1210 0 obj << /S /TD /A [ 1211 0 R 1212 0 R ] /P 1200 0 R /K 295 0 R >> endobj 1211 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1212 0 obj << /O /Layout /BlockAlign /Before >> endobj 1213 0 obj << /S /TD /A [ 1214 0 R 1215 0 R ] /P 1200 0 R /K 296 0 R >> endobj 1214 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1215 0 obj << /O /Layout /BlockAlign /Before >> endobj 1216 0 obj << /S /TD /A [ 1217 0 R 1218 0 R ] /P 1200 0 R /K 297 0 R >> endobj 1217 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1218 0 obj << /O /Layout /BlockAlign /Before >> endobj 1219 0 obj << /S /TR /P 1020 0 R /K [ 1220 0 R 1223 0 R ] >> endobj 1220 0 obj << /S /TD /A [ 1221 0 R 1222 0 R ] /P 1219 0 R /K 298 0 R >> endobj 1221 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1222 0 obj << /O /Layout /BlockAlign /Before >> endobj 1223 0 obj << /S /TD /A [ 1224 0 R 1225 0 R ] /P 1219 0 R /K 299 0 R >> endobj 1224 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1225 0 obj << /O /Layout /BlockAlign /Before >> endobj 1226 0 obj << /S /TR /P 1020 0 R /K [ 1227 0 R 1230 0 R ] >> endobj 1227 0 obj << /S /TD /A [ 1228 0 R 1229 0 R ] /P 1226 0 R /K 300 0 R >> endobj 1228 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1229 0 obj << /O /Layout /BlockAlign /Before >> endobj 1230 0 obj << /S /TD /A [ 1231 0 R 1232 0 R ] /P 1226 0 R /K 301 0 R >> endobj 1231 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1232 0 obj << /O /Layout /BlockAlign /Before >> endobj 1233 0 obj << /S /TR /P 1020 0 R /K [ 1234 0 R 1237 0 R 1240 0 R 1243 0 R 1246 0 R 1249 0 R ] >> endobj 1234 0 obj << /S /TD /A [ 1235 0 R 1236 0 R ] /P 1233 0 R /K 302 0 R >> endobj 1235 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1236 0 obj << /O /Layout /BlockAlign /Before >> endobj 1237 0 obj << /S /TD /A [ 1238 0 R 1239 0 R ] /P 1233 0 R /K 303 0 R >> endobj 1238 0 obj << /O /Table /ColSpan 4 /RowSpan 1 >> endobj 1239 0 obj << /O /Layout /BlockAlign /Before >> endobj 1240 0 obj << /S /TD /A [ 1241 0 R 1242 0 R ] /P 1233 0 R /K 304 0 R >> endobj 1241 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1242 0 obj << /O /Layout /BlockAlign /Before >> endobj 1243 0 obj << /S /TD /A [ 1244 0 R 1245 0 R ] /P 1233 0 R /K 305 0 R >> endobj 1244 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1245 0 obj << /O /Layout /BlockAlign /Before >> endobj 1246 0 obj << /S /TD /A [ 1247 0 R 1248 0 R ] /P 1233 0 R /K 306 0 R >> endobj 1247 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1248 0 obj << /O /Layout /BlockAlign /Before >> endobj 1249 0 obj << /S /TD /A [ 1250 0 R 1251 0 R ] /P 1233 0 R /K 307 0 R >> endobj 1250 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1251 0 obj << /O /Layout /BlockAlign /Before >> endobj 1252 0 obj << /S /TR /P 1020 0 R /K [ 1253 0 R 1256 0 R ] >> endobj 1253 0 obj << /S /TD /A [ 1254 0 R 1255 0 R ] /P 1252 0 R /K 308 0 R >> endobj 1254 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1255 0 obj << /O /Layout /BlockAlign /Before >> endobj 1256 0 obj << /S /TD /A [ 1257 0 R 1258 0 R ] /P 1252 0 R /K 309 0 R >> endobj 1257 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1258 0 obj << /O /Layout /BlockAlign /Before >> endobj 1259 0 obj << /S /Table /P 464 0 R /K [ 1260 0 R 1285 0 R 1292 0 R 1311 0 R 1318 0 R 1343 0 R 1368 0 R ] /A [ 1584 0 R ] >> endobj 1260 0 obj << /S /TR /P 1259 0 R /K [ 1261 0 R 1264 0 R 1267 0 R 1270 0 R 1273 0 R 1276 0 R 1279 0 R 1282 0 R ] >> endobj 1261 0 obj << /S /TD /A [ 1262 0 R 1263 0 R ] /P 1260 0 R /K 316 0 R >> endobj 1262 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1263 0 obj << /O /Layout /BlockAlign /After >> endobj 1264 0 obj << /S /TD /A [ 1265 0 R 1266 0 R ] /P 1260 0 R /K 317 0 R >> endobj 1265 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1266 0 obj << /O /Layout /BlockAlign /After >> endobj 1267 0 obj << /S /TD /A [ 1268 0 R 1269 0 R ] /P 1260 0 R /K 318 0 R >> endobj 1268 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1269 0 obj << /O /Layout /BlockAlign /After >> endobj 1270 0 obj << /S /TD /A [ 1271 0 R 1272 0 R ] /P 1260 0 R /K 319 0 R >> endobj 1271 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1272 0 obj << /O /Layout /BlockAlign /After >> endobj 1273 0 obj << /S /TD /A [ 1274 0 R 1275 0 R ] /P 1260 0 R /K 320 0 R >> endobj 1274 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1275 0 obj << /O /Layout /BlockAlign /After >> endobj 1276 0 obj << /S /TD /A [ 1277 0 R 1278 0 R ] /P 1260 0 R /K 321 0 R >> endobj 1277 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1278 0 obj << /O /Layout /BlockAlign /After >> endobj 1279 0 obj << /S /TD /A [ 1280 0 R 1281 0 R ] /P 1260 0 R /K 322 0 R >> endobj 1280 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1281 0 obj << /O /Layout /BlockAlign /After >> endobj 1282 0 obj << /S /TD /A [ 1283 0 R 1284 0 R ] /P 1260 0 R /K 323 0 R >> endobj 1283 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1284 0 obj << /O /Layout /BlockAlign /After >> endobj 1285 0 obj << /S /TR /P 1259 0 R /K [ 1286 0 R 1289 0 R ] >> endobj 1286 0 obj << /S /TD /A [ 1287 0 R 1288 0 R ] /P 1285 0 R /K 324 0 R >> endobj 1287 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1288 0 obj << /O /Layout /BlockAlign /Before >> endobj 1289 0 obj << /S /TD /A [ 1290 0 R 1291 0 R ] /P 1285 0 R /K 325 0 R >> endobj 1290 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1291 0 obj << /O /Layout /BlockAlign /Before >> endobj 1292 0 obj << /S /TR /P 1259 0 R /K [ 1293 0 R 1296 0 R 1299 0 R 1302 0 R 1305 0 R 1308 0 R ] >> endobj 1293 0 obj << /S /TD /A [ 1294 0 R 1295 0 R ] /P 1292 0 R /K 326 0 R >> endobj 1294 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1295 0 obj << /O /Layout /BlockAlign /Before >> endobj 1296 0 obj << /S /TD /A [ 1297 0 R 1298 0 R ] /P 1292 0 R /K 327 0 R >> endobj 1297 0 obj << /O /Table /ColSpan 3 /RowSpan 1 >> endobj 1298 0 obj << /O /Layout /BlockAlign /Before >> endobj 1299 0 obj << /S /TD /A [ 1300 0 R 1301 0 R ] /P 1292 0 R /K 328 0 R >> endobj 1300 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1301 0 obj << /O /Layout /BlockAlign /Before >> endobj 1302 0 obj << /S /TD /A [ 1303 0 R 1304 0 R ] /P 1292 0 R /K 329 0 R >> endobj 1303 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1304 0 obj << /O /Layout /BlockAlign /Before >> endobj 1305 0 obj << /S /TD /A [ 1306 0 R 1307 0 R ] /P 1292 0 R /K 330 0 R >> endobj 1306 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1307 0 obj << /O /Layout /BlockAlign /Before >> endobj 1308 0 obj << /S /TD /A [ 1309 0 R 1310 0 R ] /P 1292 0 R /K 331 0 R >> endobj 1309 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1310 0 obj << /O /Layout /BlockAlign /Before >> endobj 1311 0 obj << /S /TR /P 1259 0 R /K [ 1312 0 R 1315 0 R ] >> endobj 1312 0 obj << /S /TD /A [ 1313 0 R 1314 0 R ] /P 1311 0 R /K 332 0 R >> endobj 1313 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1314 0 obj << /O /Layout /BlockAlign /Before >> endobj 1315 0 obj << /S /TD /A [ 1316 0 R 1317 0 R ] /P 1311 0 R /K 333 0 R >> endobj 1316 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1317 0 obj << /O /Layout /BlockAlign /Before >> endobj 1318 0 obj << /S /TR /P 1259 0 R /K [ 1319 0 R 1322 0 R 1325 0 R 1328 0 R 1331 0 R 1334 0 R 1337 0 R 1340 0 R ] >> endobj 1319 0 obj << /S /TD /A [ 1320 0 R 1321 0 R ] /P 1318 0 R /K 334 0 R >> endobj 1320 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1321 0 obj << /O /Layout /BlockAlign /After >> endobj 1322 0 obj << /S /TD /A [ 1323 0 R 1324 0 R ] /P 1318 0 R /K 335 0 R >> endobj 1323 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1324 0 obj << /O /Layout /BlockAlign /After >> endobj 1325 0 obj << /S /TD /A [ 1326 0 R 1327 0 R ] /P 1318 0 R /K 336 0 R >> endobj 1326 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1327 0 obj << /O /Layout /BlockAlign /After >> endobj 1328 0 obj << /S /TD /A [ 1329 0 R 1330 0 R ] /P 1318 0 R /K 337 0 R >> endobj 1329 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1330 0 obj << /O /Layout /BlockAlign /After >> endobj 1331 0 obj << /S /TD /A [ 1332 0 R 1333 0 R ] /P 1318 0 R /K 338 0 R >> endobj 1332 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1333 0 obj << /O /Layout /BlockAlign /After >> endobj 1334 0 obj << /S /TD /A [ 1335 0 R 1336 0 R ] /P 1318 0 R /K 339 0 R >> endobj 1335 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1336 0 obj << /O /Layout /BlockAlign /After >> endobj 1337 0 obj << /S /TD /A [ 1338 0 R 1339 0 R ] /P 1318 0 R /K 340 0 R >> endobj 1338 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1339 0 obj << /O /Layout /BlockAlign /After >> endobj 1340 0 obj << /S /TD /A [ 1341 0 R 1342 0 R ] /P 1318 0 R /K 341 0 R >> endobj 1341 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1342 0 obj << /O /Layout /BlockAlign /After >> endobj 1343 0 obj << /S /TR /P 1259 0 R /K [ 1344 0 R 1347 0 R 1350 0 R 1353 0 R 1356 0 R 1359 0 R 1362 0 R 1365 0 R ] >> endobj 1344 0 obj << /S /TD /A [ 1345 0 R 1346 0 R ] /P 1343 0 R /K 342 0 R >> endobj 1345 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1346 0 obj << /O /Layout /BlockAlign /Before >> endobj 1347 0 obj << /S /TD /A [ 1348 0 R 1349 0 R ] /P 1343 0 R /K 343 0 R >> endobj 1348 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1349 0 obj << /O /Layout /BlockAlign /Before >> endobj 1350 0 obj << /S /TD /A [ 1351 0 R 1352 0 R ] /P 1343 0 R /K 344 0 R >> endobj 1351 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1352 0 obj << /O /Layout /BlockAlign /Before >> endobj 1353 0 obj << /S /TD /A [ 1354 0 R 1355 0 R ] /P 1343 0 R /K 345 0 R >> endobj 1354 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1355 0 obj << /O /Layout /BlockAlign /Before >> endobj 1356 0 obj << /S /TD /A [ 1357 0 R 1358 0 R ] /P 1343 0 R /K 346 0 R >> endobj 1357 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1358 0 obj << /O /Layout /BlockAlign /Before >> endobj 1359 0 obj << /S /TD /A [ 1360 0 R 1361 0 R ] /P 1343 0 R /K 347 0 R >> endobj 1360 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1361 0 obj << /O /Layout /BlockAlign /Before >> endobj 1362 0 obj << /S /TD /A [ 1363 0 R 1364 0 R ] /P 1343 0 R /K 348 0 R >> endobj 1363 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1364 0 obj << /O /Layout /BlockAlign /Before >> endobj 1365 0 obj << /S /TD /A [ 1366 0 R 1367 0 R ] /P 1343 0 R /K 349 0 R >> endobj 1366 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1367 0 obj << /O /Layout /BlockAlign /Before >> endobj 1368 0 obj << /S /TR /P 1259 0 R /K [ 1369 0 R 1372 0 R 1375 0 R ] >> endobj 1369 0 obj << /S /TD /A [ 1370 0 R 1371 0 R ] /P 1368 0 R /K 350 0 R >> endobj 1370 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1371 0 obj << /O /Layout /BlockAlign /Before >> endobj 1372 0 obj << /S /TD /A [ 1373 0 R 1374 0 R ] /P 1368 0 R /K 351 0 R >> endobj 1373 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1374 0 obj << /O /Layout /BlockAlign /Before >> endobj 1375 0 obj << /S /TD /A [ 1376 0 R 1377 0 R ] /P 1368 0 R /K 352 0 R >> endobj 1376 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1377 0 obj << /O /Layout /BlockAlign /Before >> endobj 1378 0 obj << /S /Table /P 464 0 R /K [ 1379 0 R 1404 0 R 1429 0 R 1439 0 R 1464 0 R 1471 0 R 1487 0 R 1494 0 R 1519 0 R 1544 0 R ] /A [ 1585 0 R ] >> endobj 1379 0 obj << /S /TR /P 1378 0 R /K [ 1380 0 R 1383 0 R 1386 0 R 1389 0 R 1392 0 R 1395 0 R 1398 0 R 1401 0 R ] >> endobj 1380 0 obj << /S /TD /A [ 1381 0 R 1382 0 R ] /P 1379 0 R /K 368 0 R >> endobj 1381 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1382 0 obj << /O /Layout /BlockAlign /After >> endobj 1383 0 obj << /S /TD /A [ 1384 0 R 1385 0 R ] /P 1379 0 R /K 369 0 R >> endobj 1384 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1385 0 obj << /O /Layout /BlockAlign /After >> endobj 1386 0 obj << /S /TD /A [ 1387 0 R 1388 0 R ] /P 1379 0 R /K 370 0 R >> endobj 1387 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1388 0 obj << /O /Layout /BlockAlign /After >> endobj 1389 0 obj << /S /TD /A [ 1390 0 R 1391 0 R ] /P 1379 0 R /K 371 0 R >> endobj 1390 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1391 0 obj << /O /Layout /BlockAlign /After >> endobj 1392 0 obj << /S /TD /A [ 1393 0 R 1394 0 R ] /P 1379 0 R /K 372 0 R >> endobj 1393 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1394 0 obj << /O /Layout /BlockAlign /After >> endobj 1395 0 obj << /S /TD /A [ 1396 0 R 1397 0 R ] /P 1379 0 R /K 373 0 R >> endobj 1396 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1397 0 obj << /O /Layout /BlockAlign /After >> endobj 1398 0 obj << /S /TD /A [ 1399 0 R 1400 0 R ] /P 1379 0 R /K 374 0 R >> endobj 1399 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1400 0 obj << /O /Layout /BlockAlign /After >> endobj 1401 0 obj << /S /TD /A [ 1402 0 R 1403 0 R ] /P 1379 0 R /K 375 0 R >> endobj 1402 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1403 0 obj << /O /Layout /BlockAlign /After >> endobj 1404 0 obj << /S /TR /P 1378 0 R /K [ 1405 0 R 1408 0 R 1411 0 R 1414 0 R 1417 0 R 1420 0 R 1423 0 R 1426 0 R ] >> endobj 1405 0 obj << /S /TD /A [ 1406 0 R 1407 0 R ] /P 1404 0 R /K 376 0 R >> endobj 1406 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1407 0 obj << /O /Layout /BlockAlign /Before >> endobj 1408 0 obj << /S /TD /A [ 1409 0 R 1410 0 R ] /P 1404 0 R /K 377 0 R >> endobj 1409 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1410 0 obj << /O /Layout /BlockAlign /Before >> endobj 1411 0 obj << /S /TD /A [ 1412 0 R 1413 0 R ] /P 1404 0 R /K 378 0 R >> endobj 1412 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1413 0 obj << /O /Layout /BlockAlign /Before >> endobj 1414 0 obj << /S /TD /A [ 1415 0 R 1416 0 R ] /P 1404 0 R /K 379 0 R >> endobj 1415 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1416 0 obj << /O /Layout /BlockAlign /Before >> endobj 1417 0 obj << /S /TD /A [ 1418 0 R 1419 0 R ] /P 1404 0 R /K 380 0 R >> endobj 1418 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1419 0 obj << /O /Layout /BlockAlign /Before >> endobj 1420 0 obj << /S /TD /A [ 1421 0 R 1422 0 R ] /P 1404 0 R /K 381 0 R >> endobj 1421 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1422 0 obj << /O /Layout /BlockAlign /Before >> endobj 1423 0 obj << /S /TD /A [ 1424 0 R 1425 0 R ] /P 1404 0 R /K 382 0 R >> endobj 1424 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1425 0 obj << /O /Layout /BlockAlign /Before >> endobj 1426 0 obj << /S /TD /A [ 1427 0 R 1428 0 R ] /P 1404 0 R /K 383 0 R >> endobj 1427 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1428 0 obj << /O /Layout /BlockAlign /Before >> endobj 1429 0 obj << /S /TR /P 1378 0 R /K [ 1430 0 R 1433 0 R 1436 0 R ] >> endobj 1430 0 obj << /S /TD /A [ 1431 0 R 1432 0 R ] /P 1429 0 R /K 384 0 R >> endobj 1431 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1432 0 obj << /O /Layout /BlockAlign /Before >> endobj 1433 0 obj << /S /TD /A [ 1434 0 R 1435 0 R ] /P 1429 0 R /K 385 0 R >> endobj 1434 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1435 0 obj << /O /Layout /BlockAlign /Before >> endobj 1436 0 obj << /S /TD /A [ 1437 0 R 1438 0 R ] /P 1429 0 R /K 386 0 R >> endobj 1437 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1438 0 obj << /O /Layout /BlockAlign /Before >> endobj 1439 0 obj << /S /TR /P 1378 0 R /K [ 1440 0 R 1443 0 R 1446 0 R 1449 0 R 1452 0 R 1455 0 R 1458 0 R 1461 0 R ] >> endobj 1440 0 obj << /S /TD /A [ 1441 0 R 1442 0 R ] /P 1439 0 R /K 387 0 R >> endobj 1441 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1442 0 obj << /O /Layout /BlockAlign /After >> endobj 1443 0 obj << /S /TD /A [ 1444 0 R 1445 0 R ] /P 1439 0 R /K 388 0 R >> endobj 1444 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1445 0 obj << /O /Layout /BlockAlign /After >> endobj 1446 0 obj << /S /TD /A [ 1447 0 R 1448 0 R ] /P 1439 0 R /K 389 0 R >> endobj 1447 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1448 0 obj << /O /Layout /BlockAlign /After >> endobj 1449 0 obj << /S /TD /A [ 1450 0 R 1451 0 R ] /P 1439 0 R /K 390 0 R >> endobj 1450 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1451 0 obj << /O /Layout /BlockAlign /After >> endobj 1452 0 obj << /S /TD /A [ 1453 0 R 1454 0 R ] /P 1439 0 R /K 391 0 R >> endobj 1453 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1454 0 obj << /O /Layout /BlockAlign /After >> endobj 1455 0 obj << /S /TD /A [ 1456 0 R 1457 0 R ] /P 1439 0 R /K 392 0 R >> endobj 1456 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1457 0 obj << /O /Layout /BlockAlign /After >> endobj 1458 0 obj << /S /TD /A [ 1459 0 R 1460 0 R ] /P 1439 0 R /K 393 0 R >> endobj 1459 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1460 0 obj << /O /Layout /BlockAlign /After >> endobj 1461 0 obj << /S /TD /A [ 1462 0 R 1463 0 R ] /P 1439 0 R /K 394 0 R >> endobj 1462 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1463 0 obj << /O /Layout /BlockAlign /After >> endobj 1464 0 obj << /S /TR /P 1378 0 R /K [ 1465 0 R 1468 0 R ] >> endobj 1465 0 obj << /S /TD /A [ 1466 0 R 1467 0 R ] /P 1464 0 R /K 395 0 R >> endobj 1466 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1467 0 obj << /O /Layout /BlockAlign /Before >> endobj 1468 0 obj << /S /TD /A [ 1469 0 R 1470 0 R ] /P 1464 0 R /K 396 0 R >> endobj 1469 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1470 0 obj << /O /Layout /BlockAlign /Before >> endobj 1471 0 obj << /S /TR /P 1378 0 R /K [ 1472 0 R 1475 0 R 1478 0 R 1481 0 R 1484 0 R ] >> endobj 1472 0 obj << /S /TD /A [ 1473 0 R 1474 0 R ] /P 1471 0 R /K 397 0 R >> endobj 1473 0 obj << /O /Table /ColSpan 4 /RowSpan 1 >> endobj 1474 0 obj << /O /Layout /BlockAlign /Before >> endobj 1475 0 obj << /S /TD /A [ 1476 0 R 1477 0 R ] /P 1471 0 R /K 398 0 R >> endobj 1476 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1477 0 obj << /O /Layout /BlockAlign /Before >> endobj 1478 0 obj << /S /TD /A [ 1479 0 R 1480 0 R ] /P 1471 0 R /K 399 0 R >> endobj 1479 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1480 0 obj << /O /Layout /BlockAlign /Before >> endobj 1481 0 obj << /S /TD /A [ 1482 0 R 1483 0 R ] /P 1471 0 R /K 400 0 R >> endobj 1482 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1483 0 obj << /O /Layout /BlockAlign /Before >> endobj 1484 0 obj << /S /TD /A [ 1485 0 R 1486 0 R ] /P 1471 0 R /K 401 0 R >> endobj 1485 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1486 0 obj << /O /Layout /BlockAlign /Before >> endobj 1487 0 obj << /S /TR /P 1378 0 R /K [ 1488 0 R 1491 0 R ] >> endobj 1488 0 obj << /S /TD /A [ 1489 0 R 1490 0 R ] /P 1487 0 R /K 402 0 R >> endobj 1489 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1490 0 obj << /O /Layout /BlockAlign /Before >> endobj 1491 0 obj << /S /TD /A [ 1492 0 R 1493 0 R ] /P 1487 0 R /K 403 0 R >> endobj 1492 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1493 0 obj << /O /Layout /BlockAlign /Before >> endobj 1494 0 obj << /S /TR /P 1378 0 R /K [ 1495 0 R 1498 0 R 1501 0 R 1504 0 R 1507 0 R 1510 0 R 1513 0 R 1516 0 R ] >> endobj 1495 0 obj << /S /TD /A [ 1496 0 R 1497 0 R ] /P 1494 0 R /K 404 0 R >> endobj 1496 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1497 0 obj << /O /Layout /BlockAlign /After >> endobj 1498 0 obj << /S /TD /A [ 1499 0 R 1500 0 R ] /P 1494 0 R /K 405 0 R >> endobj 1499 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1500 0 obj << /O /Layout /BlockAlign /After >> endobj 1501 0 obj << /S /TD /A [ 1502 0 R 1503 0 R ] /P 1494 0 R /K 406 0 R >> endobj 1502 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1503 0 obj << /O /Layout /BlockAlign /After >> endobj 1504 0 obj << /S /TD /A [ 1505 0 R 1506 0 R ] /P 1494 0 R /K 407 0 R >> endobj 1505 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1506 0 obj << /O /Layout /BlockAlign /After >> endobj 1507 0 obj << /S /TD /A [ 1508 0 R 1509 0 R ] /P 1494 0 R /K 408 0 R >> endobj 1508 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1509 0 obj << /O /Layout /BlockAlign /After >> endobj 1510 0 obj << /S /TD /A [ 1511 0 R 1512 0 R ] /P 1494 0 R /K 409 0 R >> endobj 1511 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1512 0 obj << /O /Layout /BlockAlign /After >> endobj 1513 0 obj << /S /TD /A [ 1514 0 R 1515 0 R ] /P 1494 0 R /K 410 0 R >> endobj 1514 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1515 0 obj << /O /Layout /BlockAlign /After >> endobj 1516 0 obj << /S /TD /A [ 1517 0 R 1518 0 R ] /P 1494 0 R /K 411 0 R >> endobj 1517 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1518 0 obj << /O /Layout /BlockAlign /After >> endobj 1519 0 obj << /S /TR /P 1378 0 R /K [ 1520 0 R 1523 0 R 1526 0 R 1529 0 R 1532 0 R 1535 0 R 1538 0 R 1541 0 R ] >> endobj 1520 0 obj << /S /TD /A [ 1521 0 R 1522 0 R ] /P 1519 0 R /K 412 0 R >> endobj 1521 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1522 0 obj << /O /Layout /BlockAlign /Before >> endobj 1523 0 obj << /S /TD /A [ 1524 0 R 1525 0 R ] /P 1519 0 R /K 413 0 R >> endobj 1524 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1525 0 obj << /O /Layout /BlockAlign /Before >> endobj 1526 0 obj << /S /TD /A [ 1527 0 R 1528 0 R ] /P 1519 0 R /K 414 0 R >> endobj 1527 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1528 0 obj << /O /Layout /BlockAlign /Before >> endobj 1529 0 obj << /S /TD /A [ 1530 0 R 1531 0 R ] /P 1519 0 R /K 415 0 R >> endobj 1530 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1531 0 obj << /O /Layout /BlockAlign /Before >> endobj 1532 0 obj << /S /TD /A [ 1533 0 R 1534 0 R ] /P 1519 0 R /K 416 0 R >> endobj 1533 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1534 0 obj << /O /Layout /BlockAlign /Before >> endobj 1535 0 obj << /S /TD /A [ 1536 0 R 1537 0 R ] /P 1519 0 R /K 417 0 R >> endobj 1536 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1537 0 obj << /O /Layout /BlockAlign /Before >> endobj 1538 0 obj << /S /TD /A [ 1539 0 R 1540 0 R ] /P 1519 0 R /K 418 0 R >> endobj 1539 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1540 0 obj << /O /Layout /BlockAlign /Before >> endobj 1541 0 obj << /S /TD /A [ 1542 0 R 1543 0 R ] /P 1519 0 R /K 419 0 R >> endobj 1542 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1543 0 obj << /O /Layout /BlockAlign /Before >> endobj 1544 0 obj << /S /TR /P 1378 0 R /K [ 1545 0 R 1548 0 R 1551 0 R ] >> endobj 1545 0 obj << /S /TD /A [ 1546 0 R 1547 0 R ] /P 1544 0 R /K 420 0 R >> endobj 1546 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1547 0 obj << /O /Layout /BlockAlign /Before >> endobj 1548 0 obj << /S /TD /A [ 1549 0 R 1550 0 R ] /P 1544 0 R /K 421 0 R >> endobj 1549 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1550 0 obj << /O /Layout /BlockAlign /Before >> endobj 1551 0 obj << /S /TD /A [ 1552 0 R 1553 0 R ] /P 1544 0 R /K 422 0 R >> endobj 1552 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1553 0 obj << /O /Layout /BlockAlign /Before >> endobj 1554 0 obj << /S /Table /P 464 0 R /K [ 1555 0 R 1559 0 R ] /A [ 1586 0 R ] >> endobj 1555 0 obj << /S /TR /K 1556 0 R /P 1554 0 R >> endobj 1556 0 obj << /S /TD /A [ 1557 0 R 1558 0 R ] /P 1555 0 R /K [ 451 0 R 454 0 R 457 0 R 459 0 R ] >> endobj 1557 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1558 0 obj << /O /Layout /BlockAlign /Before >> endobj 1559 0 obj << /S /TR /K 1560 0 R /P 1554 0 R >> endobj 1560 0 obj << /S /TD /A [ 1561 0 R 1562 0 R ] /P 1559 0 R /K 460 0 R >> endobj 1561 0 obj << /O /Table /ColSpan 1 /RowSpan 1 >> endobj 1562 0 obj << /O /Layout /BlockAlign /Before >> endobj 1563 0 obj << /S /L /P 464 0 R /K [ 1564 0 R 1565 0 R ] >> endobj 1564 0 obj << /S /LI /P 1563 0 R /K 50 0 R >> endobj 1565 0 obj << /S /LI /P 1563 0 R /K 51 0 R >> endobj 1566 0 obj << /S /L /P 464 0 R /K [ 1567 0 R 1568 0 R 1569 0 R 1570 0 R ] >> endobj 1567 0 obj << /S /LI /P 1566 0 R /K 441 0 R >> endobj 1568 0 obj << /S /LI /P 1566 0 R /K 442 0 R >> endobj 1569 0 obj << /S /LI /P 1566 0 R /K 443 0 R >> endobj 1570 0 obj << /S /LI /P 1566 0 R /K 444 0 R >> endobj 1571 0 obj << /Nums [ 0 1572 0 R 1 1574 0 R 2 1575 0 R 3 1576 0 R 4 1577 0 R 5 1578 0 R ] >> endobj 1572 0 obj [ 35 0 R 39 0 R 40 0 R 42 0 R 44 0 R 42 0 R 46 0 R 47 0 R 49 0 R 50 0 R 51 0 R 53 0 R 54 0 R 55 0 R 56 0 R ] endobj 1573 0 obj << /O /Layout /BaselineShift 5 >> endobj 1574 0 obj [ 57 0 R 58 0 R 59 0 R 60 0 R 62 0 R 63 0 R 64 0 R 65 0 R 66 0 R 67 0 R 68 0 R 69 0 R 71 0 R 73 0 R 74 0 R 75 0 R 76 0 R 77 0 R 78 0 R 79 0 R 80 0 R 81 0 R 82 0 R 83 0 R 84 0 R 85 0 R 86 0 R 87 0 R 88 0 R 89 0 R 90 0 R 91 0 R 92 0 R 93 0 R 94 0 R 95 0 R 96 0 R 97 0 R 99 0 R 100 0 R 101 0 R 102 0 R 103 0 R 104 0 R 105 0 R 106 0 R 107 0 R 108 0 R 109 0 R 110 0 R 111 0 R 112 0 R 113 0 R 114 0 R 115 0 R 116 0 R 117 0 R 118 0 R 111 0 R 119 0 R 120 0 R 121 0 R 114 0 R 115 0 R 122 0 R 123 0 R 124 0 R 125 0 R 126 0 R 127 0 R 128 0 R 129 0 R 130 0 R 131 0 R 132 0 R 133 0 R 134 0 R 135 0 R 136 0 R 137 0 R 138 0 R 139 0 R 140 0 R 141 0 R 142 0 R 143 0 R 144 0 R 145 0 R 146 0 R 147 0 R 148 0 R 140 0 R 149 0 R 150 0 R 151 0 R 144 0 R 145 0 R 152 0 R 153 0 R 154 0 R 155 0 R 156 0 R 157 0 R 158 0 R 159 0 R 160 0 R 161 0 R 162 0 R 163 0 R 164 0 R 165 0 R 166 0 R 167 0 R 168 0 R 169 0 R 170 0 R 171 0 R 172 0 R 173 0 R 174 0 R 175 0 R 176 0 R 177 0 R 178 0 R 179 0 R 180 0 R 181 0 R 182 0 R 183 0 R 184 0 R 185 0 R 186 0 R 187 0 R 180 0 R 188 0 R 189 0 R 190 0 R 183 0 R 184 0 R 191 0 R 192 0 R 193 0 R 194 0 R 195 0 R 196 0 R 197 0 R 198 0 R 199 0 R 200 0 R 201 0 R 202 0 R 203 0 R 204 0 R 205 0 R 206 0 R 207 0 R 208 0 R 209 0 R 210 0 R 211 0 R 212 0 R 213 0 R 214 0 R 215 0 R 216 0 R 217 0 R 209 0 R 218 0 R 219 0 R 220 0 R 213 0 R 214 0 R 221 0 R 222 0 R 223 0 R 224 0 R 225 0 R 226 0 R 227 0 R 228 0 R 229 0 R 230 0 R 231 0 R 232 0 R 233 0 R 234 0 R 235 0 R 236 0 R ] endobj 1575 0 obj [ 237 0 R 238 0 R 239 0 R 240 0 R 241 0 R 242 0 R 243 0 R 244 0 R 245 0 R 246 0 R 247 0 R 248 0 R 249 0 R 250 0 R 251 0 R 252 0 R 253 0 R 254 0 R 255 0 R 256 0 R 257 0 R 258 0 R 259 0 R 260 0 R 261 0 R 262 0 R 263 0 R 264 0 R 265 0 R 266 0 R 267 0 R 268 0 R 269 0 R 270 0 R 271 0 R 272 0 R 273 0 R 274 0 R 275 0 R 276 0 R 277 0 R 278 0 R 279 0 R 280 0 R 281 0 R 282 0 R 283 0 R 284 0 R 276 0 R 285 0 R 286 0 R 287 0 R 280 0 R 281 0 R 288 0 R 289 0 R 290 0 R 291 0 R 292 0 R 293 0 R 294 0 R 295 0 R 296 0 R 297 0 R 298 0 R 299 0 R 300 0 R 301 0 R 302 0 R 303 0 R 304 0 R 305 0 R 306 0 R 307 0 R 308 0 R 309 0 R 310 0 R 311 0 R 312 0 R 313 0 R 314 0 R 315 0 R 316 0 R 317 0 R 318 0 R 319 0 R 320 0 R 321 0 R 322 0 R 323 0 R 326 0 R 324 0 R 327 0 R 325 0 R 326 0 R 327 0 R 328 0 R 329 0 R 330 0 R 331 0 R 326 0 R 332 0 R 327 0 R 333 0 R 334 0 R 335 0 R 336 0 R 337 0 R 338 0 R 339 0 R 340 0 R 341 0 R 342 0 R 343 0 R 344 0 R 345 0 R 346 0 R 347 0 R 348 0 R 349 0 R 342 0 R 343 0 R 344 0 R 345 0 R 346 0 R 347 0 R 348 0 R 349 0 R 342 0 R 350 0 R 344 0 R 351 0 R 346 0 R 352 0 R 348 0 R 349 0 R 353 0 R 354 0 R ] endobj 1576 0 obj [ 355 0 R 356 0 R 358 0 R 359 0 R 360 0 R 362 0 R 363 0 R 364 0 R 366 0 R 367 0 R 368 0 R 369 0 R 370 0 R 371 0 R 372 0 R 373 0 R 374 0 R 375 0 R 376 0 R 377 0 R 378 0 R 379 0 R 380 0 R 381 0 R 382 0 R 383 0 R 376 0 R 377 0 R 378 0 R 379 0 R 380 0 R 381 0 R 382 0 R 383 0 R 376 0 R 384 0 R 378 0 R 385 0 R 380 0 R 386 0 R 382 0 R 383 0 R 387 0 R 388 0 R 389 0 R 390 0 R 391 0 R 392 0 R 393 0 R 394 0 R 395 0 R 396 0 R 397 0 R 398 0 R 399 0 R 400 0 R 401 0 R 402 0 R 403 0 R 404 0 R 405 0 R 406 0 R 407 0 R 408 0 R 409 0 R 410 0 R 411 0 R 412 0 R 413 0 R 414 0 R 415 0 R 416 0 R 417 0 R 418 0 R 419 0 R 412 0 R 413 0 R 414 0 R 415 0 R 416 0 R 417 0 R 418 0 R 419 0 R 412 0 R 420 0 R 414 0 R 421 0 R 416 0 R 422 0 R 418 0 R 419 0 R 423 0 R 424 0 R 425 0 R 427 0 R 429 0 R 431 0 R 431 0 R 433 0 R ] endobj 1577 0 obj [ 435 0 R 435 0 R 436 0 R 437 0 R 438 0 R 439 0 R 441 0 R 442 0 R 443 0 R 444 0 R 445 0 R 446 0 R 447 0 R 448 0 R ] endobj 1578 0 obj [ 449 0 R 450 0 R 451 0 R 454 0 R 457 0 R 459 0 R 460 0 R 462 0 R 460 0 R ] endobj 1579 0 obj << /O /Layout /BBox [ 260 463 354 536 ] /Placement /Inline >> endobj 1580 0 obj << /O /Layout /BBox [ 79.8 594.83215 533.99921 663.62695 ] /Placement /Block /StartIndent 7.8 /EndIndent 6.00079 >> endobj 1581 0 obj << /O /Layout /BBox [ 79.8 373.79214 590.81828 496.88695 ] /Placement /Block /StartIndent 7.8 /EndIndent -50.81828 >> endobj 1582 0 obj << /O /Layout /BBox [ 79.8 140.15225 590.81828 263.24706 ] /Placement /Block /StartIndent 7.8 /EndIndent -50.81828 >> endobj 1583 0 obj << /O /Layout /BBox [ 79.8 606.59215 590.81828 729.68695 ] /Placement /Block /StartIndent 7.8 /EndIndent -50.81828 >> endobj 1584 0 obj << /O /Layout /BBox [ 73.2 158.75215 537.90001 223.28696 ] /Placement /Block /StartIndent 1.2 /EndIndent 2.09999 >> endobj 1585 0 obj << /O /Layout /BBox [ 83.39999 377.21216 537.89989 477.26695 ] /Placement /Block /StartIndent 11.39999 /EndIndent 2.10011 >> endobj 1586 0 obj << /O /Layout /BBox [ 257.7597 460.42923 372.94318 679.00188 ] /Placement /Block /StartIndent 185.7597 /EndIndent 167.05682 >> endobj 1587 0 obj << /S /D >> endobj 1588 0 obj << /Nums [ 0 1587 0 R ] >> endobj 1589 0 obj << /Producer (Acrobat Distiller 5.0 \(Windows\)) /Creator (Acrobat PDFMaker 5.0 for Word) /ModDate (D:20040412103007-08'00') /Title (Application Note / White Paper Style Guide) /CreationDate (D:20040412102813-08'00') >> endobj 1591 0 obj << /Type /Pages /Kids [ 1595 0 R 1 0 R 9 0 R 12 0 R 18 0 R 21 0 R ] /Count 6 >> endobj 1593 0 obj << /Type /Catalog /Pages 1591 0 R /Metadata 1639 0 R /Outlines 24 0 R /OpenAction [ 1595 0 R /XYZ null null null ] /PageMode /UseNone /PageLabels 1588 0 R /StructTreeRoot 1594 0 R /PieceInfo << /MarkedPDF << /LastModified (D:20040412102826)>> >> /LastModified (D:20040412102826) /MarkInfo << /Marked true /LetterspaceFlags 0 >> >> endobj 1594 0 obj << /Type /StructTreeRoot /ClassMap 37 0 R /RoleMap 36 0 R /K 464 0 R /ParentTree 1571 0 R /ParentTreeNextKey 6 >> endobj 1595 0 obj << /Type /Page /Parent 1591 0 R /Resources << /ColorSpace << /CS2 1605 0 R /CS3 1604 0 R >> /XObject << /Im1 1622 0 R >> /ExtGState << /GS3 1626 0 R /GS4 1628 0 R >> /Font << /TT4 1601 0 R /TT5 1599 0 R /TT6 1597 0 R /TT7 1603 0 R /C2_1 1611 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> /Contents [ 1607 0 R 1609 0 R 1613 0 R 1615 0 R 1617 0 R 1619 0 R 1621 0 R 1624 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 /StructParents 0 >> endobj 1596 0 obj << /Type /FontDescriptor /Ascent 905 /CapHeight 718 /Descent -211 /Flags 96 /FontBBox [ -517 -325 1082 998 ] /FontName /ECMIDH+Arial,Italic /ItalicAngle -15 /StemV 93.856 /XHeight 515 /FontFile2 1630 0 R >> endobj 1597 0 obj << /Type /Font /Subtype /TrueType /FirstChar 32 /LastChar 120 /Widths [ 278 0 0 0 0 0 0 0 0 0 0 0 0 333 278 278 556 556 556 0 556 556 0 0 0 0 0 0 0 0 0 0 0 667 667 722 722 667 0 0 722 278 0 0 0 833 722 778 667 778 722 667 611 722 0 0 0 667 0 0 0 0 0 0 0 0 0 500 556 556 0 0 0 222 0 0 222 0 556 556 0 0 0 0 278 556 500 0 500 ] /Encoding /WinAnsiEncoding /BaseFont /ECMIDH+Arial,Italic /FontDescriptor 1596 0 R >> endobj 1598 0 obj << /Type /FontDescriptor /Ascent 891 /CapHeight 656 /Descent -216 /Flags 98 /FontBBox [ -498 -307 1120 1023 ] /FontName /ECMIJG+TimesNewRoman,Italic /ItalicAngle -15 /StemV 83.31799 /XHeight 0 /FontFile2 1632 0 R >> endobj 1599 0 obj << /Type /Font /Subtype /TrueType /FirstChar 32 /LastChar 169 /Widths [ 278 0 0 0 0 0 0 0 333 333 0 584 278 333 278 278 556 556 556 556 556 556 556 0 556 556 278 278 0 584 0 0 1015 667 667 722 722 667 611 778 722 278 500 0 556 833 722 778 667 778 722 667 611 722 667 944 667 667 611 0 0 0 0 0 0 556 556 500 556 556 278 556 556 222 0 500 222 833 556 556 556 556 333 500 278 556 500 722 500 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 737 ] /Encoding /WinAnsiEncoding /BaseFont /ECMIDF+Arial /FontDescriptor 1602 0 R >> endobj 1600 0 obj << /Type /FontDescriptor /Ascent 891 /CapHeight 656 /Descent -216 /Flags 34 /FontBBox [ -568 -307 2028 1007 ] /FontName /ECMHLG+TimesNewRoman /ItalicAngle 0 /StemV 94 /XHeight 0 /FontFile2 1629 0 R >> endobj 1601 0 obj << /Type /Font /Subtype /TrueType /FirstChar 32 /LastChar 174 /Widths [ 250 0 0 0 500 0 0 0 333 333 0 564 250 333 250 278 500 500 500 500 500 500 500 500 500 500 278 278 0 564 564 0 0 722 667 667 722 611 556 0 722 333 0 0 611 889 722 722 556 722 667 556 611 722 0 944 722 722 611 333 0 333 469 0 0 444 500 444 500 444 333 500 500 278 0 500 278 778 500 500 500 500 333 389 278 500 500 722 500 500 444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 333 444 444 0 0 0 0 980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 760 ] /Encoding /WinAnsiEncoding /BaseFont /ECMHLG+TimesNewRoman /FontDescriptor 1600 0 R >> endobj 1602 0 obj << /Type /FontDescriptor /Ascent 905 /CapHeight 718 /Descent -211 /Flags 32 /FontBBox [ -665 -325 2028 1006 ] /FontName /ECMIDF+Arial /ItalicAngle 0 /StemV 94 /XHeight 515 /FontFile2 1625 0 R >> endobj 1603 0 obj << /Type /Font /Subtype /TrueType /FirstChar 32 /LastChar 121 /Widths [ 250 0 0 0 0 0 0 0 0 0 0 0 0 0 250 0 500 500 500 500 500 500 500 500 500 500 0 0 0 0 0 0 0 0 611 0 0 611 611 722 0 333 0 0 0 833 0 0 611 722 0 500 556 0 0 0 0 0 0 389 0 389 0 0 0 500 500 444 500 444 278 500 500 278 0 444 278 0 500 500 500 0 389 389 278 500 0 0 444 444 ] /Encoding /WinAnsiEncoding /BaseFont /ECMIJG+TimesNewRoman,Italic /FontDescriptor 1598 0 R >> endobj 1604 0 obj /DeviceGray endobj 1605 0 obj [ /ICCBased 1634 0 R ] endobj 1606 0 obj 744 endobj 1607 0 obj << /Filter /FlateDecode /Length 1606 0 R >> stream H‰”UMo›@½ó+æØ¼ì7KEŠ(Ê!•sKr €c*(Ióï; ØY,r¨|`…çÍ›yofñ¯ê6߯I ~ôQeà¯ã×¼ˆÛ¼,À¿jÛ8Ùe)<úQYÁ³¿\–á1à ƒ¡0mˆ’( Ï——Ëë•÷Ç …}Eñp" Øxƒï8$Ï¿;0¸.½_ž¿Úà›¦¤MRx rðü‡l¼e«r_Öù!kë<:÷üÛ€×Æ[FžED[ñަ•å©¢ƒ÷ ¾G¿½›È»¹_yþÚöx¿º»Æè¡RJ¨M‚0 R«!5þO)žXØ#½3Ÿ&51´ä$ø"Ëç(…"pCÊ.Ù­ãîŠ6«Qù¼x…Û.O3˜bJjºØ«4ÍŠ´;üèc©-Ì%3İûçœPnëFÈ}·oójŸ-–]Û¢¥›®ªÊº…Í›„2LÁU–äÛ<é‡ÁÆ£2zTfª„T‚0ª)ü õÙQýOÛÕÇܽÖTØî쉫žëä2‚`—ÊÔ§çYû?A1¶@årìÙ«/øù¸Ï†2ú vl¸?¡' ý岯í¬Ë´KÚ¼ö,–ñh¦fÌ×'¾ÒG:S){ó鉆Kš êG»a¤8 ñ£®”÷]¥1 ü̳ù(âªÍ“¾¯³è¾¯P'¼è4â³ôMHÉH1‡—ˆÑ“ÔîÂÌA¸ ÑJ!îÕ¨+^pÒ ˜Ó€ã2p†NH³&©ó—¬9fA‘™k°+ß¡-¡×­}/PÖ°-»zñ2¬¢Õi.™D…Ê\z+çlØ{[xxjA͵`' "帊‡9"C‰Ô\L#qˆ÷YC Úå Äã…3o$ÞK ¸#”•`Ö&eg´Ç)k`½ñ¹»›*.N»!Çݘ.ÄiG¼|†ïŽ=à¨!!r¸@Ÿ¸Ò˜ûŸ¬Jž endstream endobj 1608 0 obj 609 endobj 1609 0 obj << /Filter /FlateDecode /Length 1608 0 R >> stream H‰Œ”ËnÛ0E÷úŠY¶‹0|?Š ‹<Y¤Pý€#É5 GR)*iÿ¾#¹1D†‹ $;çޡº¯«ûÇÛêò ®®.oî@ÁõõÍÝmuSW—u-A½¯(¡oXn¨„ú %ÎÅ¿Óàœh Š "å¿T_ ¾Ö¿ª¨0DsjRxnO»ŠÉaœ¥‚1 íÜÄ ¦y,©$·D3ç2Õ"ÌE^I¢ŒÈŽU¶Ö„*{Ü8@çÖemv–Cu‚0j³cDèþİ+ƃéÐ¥? ¿Kù*xžcú‰ÀC,iÓD9+SŒ¡c’R9žÂëo» |¿ÂKQf±Lg5vÑ=à§$áX‰;™UЇŠYqéˆÓÒdŠ(v×r¥S4´o»ÐÁªX‡\œ§œ•¦œcs¨p™KßÂ4ìãjÕ`è˜KXsz÷¥êìëJ¾’1B•Ëz» Þºãq¹úòr"µv©¬Ø iðÂóŽÇ2눒yãºò`K<ÑŸ9ãxq"síãi"Î-X“*…dqø:Kg ³K¢(÷ýn¿Îúâñq¥éd¥©ÓJ»HÛï2Vtk5‡õNÙ»ù>ÄîÛâ}þ?_âj AH¹˜š-P§:X•8à”ÿøÛïÆè›)qãT ,Ønƒíø B—°R¥drþß³ ƒë ‹'L×¾Çð2£·°Àð©Æ±ÝÀÇîbA.Þú†l›¡àø›ÜªN+ ×ub¯ Ú ¾ÇuI'”¥„af[ _ Ü?Mð[Pâ^cÜ$¹>ã³-Ð?=t‹6 endstream endobj 1610 0 obj << /Filter /FlateDecode /Length 235 >> stream H‰TP±nà ÝùŠ€\ª¦•,–tñ´ªÝîÎ.R ãÁ_ V¢€Þ»{wÇíkëlþ½î(Á`‰4û%j‚ ÖÁÁX6To=©<‹»uN4µnðÐ4Œäâœâ w}ÿò î¿ECѺ13øù•™n á‡&r H †Æ'Îj"àUx#û5`Å»íoohJSTn$h„{YžÃ³ræíÿT—A«ÈnÝ(dAxÈQ> endobj 1612 0 obj 656 endobj 1613 0 obj << /Filter /FlateDecode /Length 1612 0 R >> stream H‰„UËnÛ0¼ë+öØÍ·H Ð8šCѨ’l©u(A”ôï»RìDh¾ÐæÌîìÎ.X ø± …":U¤æ$5½&ßÜ÷ìwò ”¤Lè%†ºñ໪höM‘M@°–0kø’Ð:æ>Kîw £š(iJ´žÀ%Ò@_%ûó’Ĭ¯¶Ïp}½}Ü=ÜA 77·w»„ªÅ”˜¤6ð…Kn³d›e dûéž2<ˆÉÞ bͬó㔢J.—³ÊŸy_¾ç}Eëü\ÓÏ´%\½d•U@Ʋ…Ts–:ÇYH”_©%N'5뤟yéY'•„~dÌê 2FñÛ—‡´ýÀ_fÁ+"3)z Å’ÞŽEýœ—ð#p¡‰±,$”ã±Ú@ã üšn¨LZ (¨"‚‡‚ü€‚¹B1"(þ5š_HN,Åi[æwÐåÅŸü€ÚëÜ“ð°}‚®qžÀÓ>FN¸àA©¹C ïíìðÙ¥“_ö‚_Â2" esŒs^˜¦kôU û¶ÿX ¯– endstream endobj 1614 0 obj 560 endobj 1615 0 obj << /Filter /FlateDecode /Length 1614 0 R >> stream H‰ŒTËnÛ0¼ë+öè.Í÷£0|ˆ“CZ²EÇ*ɰè$Ÿ_JnÝ]Ã/<ÌÌÎîYLvU 7åÏ‚J‡rÃÆÛ0JœÏéf8­ ãTAùRL^b²”HÍEŠìjÿ<…°ó½‡}Óö°©ZX{¨L‚9F˜Ô:Õxmj_Cӌ¹#N²ŒÒ¡P¡¢C–9„ð†‚¥‹V”ÍtaÓµÛæ eXET ?ªÐtmÿyœô}Yܯ–ÅìæóÙjùå,·wËâ¶,fKþƒƒr[|áÆ•`Û°±cçb)©‰¶§RsJ,±ˆ…fe)OR”†›Âä5ƒ^"7ù~Üï»:q&91–É”w|ðÖÇÐá3ljµ*cÅ@T=ô¡jëêPÃãä«ß†)¬šº~öÓ¿ù”‡!8'ÌÙÌ~ÔÌ…”Ø!ä ú[ó´ 7S¸Hs‚P3ò?ÐŽ8Ô%ó { *©$T哇ÐÁ¶yõà߃GiJÁ”È&9¼‘5jIÆW%¥ÍqOmO0¼b1È–©ÌaF¯eotà áòj|;ÇW\ޝµ‰ÞÕü:™¾Ý=Ó’[IàcÎÑôžC4šgó 3ÏŠ»´&ÿ“G4_<þ/ÚfvbQ,á&ÃÖpÜ:[ñÓKñèsÚ+$ËlôÍ{ÌíÅwñσÿÛ€’Ò£ôÿ’JÄVufJüÕ‰©ê/ÄŽ¢ endstream endobj 1616 0 obj 593 endobj 1617 0 obj << /Filter /FlateDecode /Length 1616 0 R >> stream H‰Œ•»nÜ0E{}Å”6pù~† ?  D¥íŠk)X‹‚De?ÃM° :Ô°83Ù{‡jnÖÛögÃ(q(~NRsâœT ¸!\RígsC ±ÏmóüúØìÞàîn÷úøòŒÁýýÃÓcóÐ6»¶•À =6”PJ-´¸œ4´g(ë†e¬A-Q–²K™—#ÄÁÃÛ‡¹«] N˜¤2[×ïqXÂö1Àç|ÓÄhV °ßb ÓJ °ï˜4füª6ÿ—ÚÜ)âøß\}8lÕ¶eÄ*ÇrÜOz¿–qïWÂù2º¬–‚3I¨1EŠ/PG”Ó6Ga_eq),3:g·**ˆÅáUa)‘);Fº öí9‡å:lv¶¨ [0³eeßÃûMwŠC¨ÞW(‡b*ÂJÙâÖªÖ– §x1¾©®¬† §xïýh¦ÞÏ~ê“ÌÕ),„ö*f?UQ.ˆâ¼(ƒTa!‰¥Fn«6{õ±„ëäuD‡néÏé!9„é8~lKÇ0½ßâŽTÝí(±ZIª-3§‰°Få(Ç©‡X÷'>2IŸ]°Ž¢nÚåäUé/ôãV&S³<*éŽÿý†¿˜ËzgI¶/vCE”2EO¸ë6×ßZ\<%Š¡áþ¤ H[ý[€Ê; endstream endobj 1618 0 obj 609 endobj 1619 0 obj << /Filter /FlateDecode /Length 1618 0 R >> stream H‰ŒUÉnÛ0¼ë+Þ±Ršû²r4úY¢aµŽ˜j±Ñ¿ï£œÅ¸ÐA„=oÞ›á*%ÎÅç¸ÎCnášr(_Šo¿—¿Š%TRE872…B¯Y4g„ºo•G*â”K‘ýØÖÓ®ê¡ S½}ªxÉÕ*¦‰°6­ ß]@„SB)uPÖ0¯”XRFœ³8¨¡DkªíýÆ÷0·žúÐLõϯ¾n7mnæa𩔥®Æ6t° HµÍjçí7ܦucª8±Bñš·…kI¨2.ÅF_>m±¶èœ-Ü*bØÒT2 ~våÏäûÖÐø¡îÛµo íð õ”K"•V¤œ¾Ëê•5H.S0ÉC5±”/f¥Þ—Åýãm±z‚ËËÕãíÃ0WW7w·Ñ-" 1˜Sꮸ)‹UY*`Pnf—Œ.ýˆK)g›ÄGëyep?„A&Êæ¦Ïa3O¸€9Ü;%Ø1‹ÔÄ(ÍRä¡ê=Ô¡Ú\ Ó‚hFMZÓø~Žßð•â݇™êD¿üÔ.%Q>3Ä¿þ<­ÙC¾œ;-iü¾­=l«ÆCø"ÍTT¥Oë0Ë„ „×7™ðÓïª÷t÷mž›çæÔâµG“éÇvï³s ncí)8;¨š(ªøbP¨º®×CØMc¾ƒÄk ³+ÎvÀó@ŒˆIO:xèfý_jÎDÏwPh6ž‹¥Ùÿ}qÄHÄ/…¦òh+Þï±È¦BpL¼ci¼cí·Õ·z×þF³Ò80? §QÜ?ÉŽí endstream endobj 1620 0 obj 571 endobj 1621 0 obj << /Filter /FlateDecode /Length 1620 0 R >> stream H‰t”»nÛ@E{~Å”I‘ñ¾€a –]¤0‚@jФ#&2)«Î×g¨DBv=›-îîÜ=3•úþž”èD „Eå„ú¥ú0—š±ƒþåcý£zcŠ­ô…iH pj-zB®ÖŸV­@!¤‚º…õ$èt‚7~é1øhsÿ–ý•Ò¨uŒ¹ô•—Œ*¦Mû³§FÒ®IÐíÔõt¦0Ø Œ ¨„6ezc‚é™5„ˆÎ¨" `‹[!08ëŠâ¼Ô¡Ví Ó× E¼m¹ ½ápñSß»i~OcjöÜ¥Vè}î:só«ŸÓÐ6{膹oÏáI"üTˆ./ÑðR‹ÒÊBÚ±R+ˆ¸RÚóRB9j[ô°}…ž‡ñ{?Cºæç®ùT‰Þ ךŽíŽ ):4B½> # §H“’ ÉѲ/o¬G•É-|ug1ZS¤r`¥^¢ñ¦à¡I;u&V×Þ÷pÒîÜ7çZió£Ya$ý’œfîøh¤t#›[ØD¤¢6ãÚæÿÒ#¯DëMQ•V_7Dð:;iÇ©QM³œ{ø6ŒÝtZ€½ØJ¥6´,2›ÿJepº(?ÓH ¿’ióÙ(s »ùˆ0Œº”.‰ßõZÒÆ’Ñçjmª›¯p{{ó´ùòÒÀÝÝý溯«›º¦^¡~®.#óoxÜ{ËÇIZBžÿðy»Lû#mäwpPëebîy‡‡€VåÒ? ˆÿŠë endstream endobj 1622 0 obj << /Type /XObject /Subtype /Image /Width 851 /Height 655 /BitsPerComponent 8 /ColorSpace 1605 0 R /Length 74695 /Filter /FlateDecode >> stream H‰ìÖ[ˆ]gÀñµ÷œsæÜö>g& q$ÞÚšZ¥^(ÅbQˆ¥Hk %Q*¨TAjÀÒ*%¥úPú ø  ˆÖ Ò(^^j)¤‚óÒF )­iMÔÆ4Éœ³¿us­oO¤3úàLj\ÿ9gŸ}û¾oïyú©FQEÿÕDYIUXΞ!?´?ÿØeÿ´Ä~Q{˜ì6eû¦S‰ü‘~èF¼ú½ú¾]Âvqn³´;> 5¶™çAâƒØGûZÉ&O>]Bm׋¢(Š¢(Š6&V3™ÑKþqÝe€ mdTËP³K3»(h9_s>ú¨î٫í 5ÁD¡âåáÆÔGílªím€œb²Ù|͵Uš|—PhÀ/Š¢(Š¢hÃbšf¥ÎÄZÔ¡óNòa+²L¿¹mýäsÇõ®{õÒ«N—µ[¦Z ºé]×é¿nòÌdó¡Ïès6Hy:aÔcG›— “vÞ—ÌËk¾פEQEQmHÉð…Ùw"yÊ”ÛmV }³ gsýþº~—ÀP»5A_‹‘‚}ziÛñkßmåÖbχðÚ$§õèñŠ«ýþ«®Ëà›s¾+/awP^/Š¢(Š¢(Ú˜²ù¨Ý˜90eþ¡Ä-æš;ò´îû"^²ƒ¡7ëUZ.2t¨˜*Œu¸²z÷]tæ„Ý×HKÚøOãÞ“¹2Û)» ÷}•ÊÚ† téáGì<™ùÈ}èâûçcDQEQEК¸çšDÝ`kÔ¹ý¦Súã´s—”¡ßtFºP7°¨°ŒEűîý ¿øWh84Áåígf‚ÌóøwލôÓŸ!,:ËaÚyÃYæ–ö&_].п!Š¢(Š¢èâÏõ%æ²äîʳ—Ȫ¾ø<}a¿®\©Ð§¢§ÅX¡Æb$&·Î²@­×ïæ'g¨¡á”¹È¶;g/Ø„–%§åkÞ¬P)Ll6}ü7y±9føI;0Š¢(Š¢(Ú \\ì>#Çšo>’nù/TZϦ*k* ~C…‘måMïÄŸ<äÈ“ EÉ|ká(í¤Lš’Ÿ5¢²kÒ~lt÷—–©è'›í¦ÛlÕ¤™}Š¢3‘ ú¯ˆ¢(Š¢(úŸŠü늓ÖSfÙc†1ÎǾ1ãÍý&´CÊ×eõ´~ã[òŽwgÝÕKC.Z ¸´3¿Zú[䞯óêKYy<ó Ñסó?·œ·{òÌóXö”eeò±ç ‡C»Šþ<¼)ÿ¤(Š¢(Š¢‹!"ç“CŽXD’&Õ$šu£Ië+»ž5èâ’9?®wî×­— L´sgÈ0žu† [²÷F© íܰ'½ð{ÖÓdùTYŒBI×a_ Q%¦ÉëÊÎb1²BEŸý\ Q»âO(›ò?Š¢(Š¢(ºHBÌÜ2Þù6›*£+SM°U9¶Võ‰§tÏíÚ]¦¢×”/T \ÔC*úC- }Ý•zàn6Ëfêù¬®G¶5ðüOCyá :´­é¿óm›¡VX¢ñ6=ñ7¿Á´}Ò(Š¢(Š¢è?Œ\ešP‘ÎÚ,»Û‹lôRLúó‡qçn„I*§‹&1…:AO‹1ÁHKS™m+,‡ôéÏÓ˧”“ÏÇú|ó¼c{îºvÅóåês‚¢ÍО:!ãí Ëc·åý¸ÅÔ—Ö(Š¢(Š¢(:§Ì±DF3“”‹ YS“OºWüæô-×j±(žéÎf[³Ÿ1ÏìGÅP‹¶?=sÙÛ›ƒ©Ó.kÊó³JÖŸÅ”w[þëìnnšv߯ÛséG>A¥©o  õü oÕyÃU{æõ&Š¢(Š¢(ŠÎ-ÓÉ„•2ûüm/áÉ¿ëWЕ =ìU &TÖ]û¤Î’‘O`¨P9ùŠŠ`¢·ïãÕ—|8ÖÔ]ÖÏ ‰6=çÓä”õGl”¢ÛŽ?–ÍȺzð—Y}CæHøù4˜Ö*Š¢(Š¢(zeI·ç/ÒÜ<õçtß=LÝþ¶UèÚ¢²0ækßïSê¿1dEQEQtNf'jLgN²cÀOÝ!‹+Xö¨è+Œ¤¬æÅX âb<+vFaY Ôr1ï×úáëÉ“¦5›)9™“ÎHóžˆ`^×Z[õ¼ö§¨ý9öØnc«¤;îTSq CŸ{:ô¸]j6áÿEQEQôj-µ?ÂIÖ¬Åì;.-ÖL)?0zÙ^öXã—ž~6}ô“²¸¬0œ/ŒÄQ×3×ùŒ[C„¡]â¢f¨ Z VÇ+ú½•Ä&ÕüÝКÿUتPaןDöÜ–ßÃ_1I~‘äL3w¥lôãDQEQ½rÞ¥vGÑ€§‚¤«vܰ´ÉZó몇Ìo¼U»µÂhV˜ôú†: Â’”ÂË~ê,êÂD`ê,«ºòžÐÑgÐ}eþJ› -[E¯¸FÜ¢C*ÇÚÛÆù¯½ý2’dÇâ\R¸/Š¢(Š¢ÿ‹9KèlvdöËpRdó‘*±6vþw‡ô¦½©œ*ØglðËÛ ;ÿTL ´°3cs`2òc.~Û½÷Ï0YÉgK›ò^Ìiÿ~SŸ”KæO‚.Þ÷e{'n_ÍÑÇÉÈn]Þ”GŠ¢(Š¢(º ™òÿ1%r.ƒÔ-$ù$““ðÐ!Ý}³8óêTt–ìƒ0¤…‘9‹©ùJ¡ŸÕ·DPKgJÅÐø';®iž<Œ:wO:ýlF›“_áÌ éȳÒTMYiYÑö˵ñ÷¢ö}ÉÞU¬¬?Ú„Š¢(Š¢(ºÀ±*¡yÌ”ÿ’JÊêË@zê0Ý|«@¥0™•Kl´+–yÅ@*„E‚ž;°[o¡r]uÇ×Ú3çÌmÏÞs’Sƒmc*(Z¥ŠØZk©(%¢‚ ­X/SQDP‹}(ÑŠ`mDE-}ªà‹‚6M±M[ôÁª´šˆ¦'çÌ^ëñ÷_s¼ÓÔk²Áoˆi&&¹Äi|@ïúRæTÂSé ÞÃÄØÇŠ_Y.…û:ÓÖ~ù ë—VxбÞþqÕóeo"e»õ<Ïó<Ï[µ@5ÄeøªŒ8¼øÒâ!)Üŀ fúç?Î?ô±<¾BûuŠçbLâéµê®{¦¹joÂpT€ ê$Ô8ò‹¯Ó‡€¥°ƒ´I‹õ–•YŽí%|æ‹Fë\­®´ï lSɤõöÈ.?Ïó<ÏóV02å‰} f$+'Òld+ƒC òð¦ÏwôŽÏj{ˆ«W“&´~™„Œ´Ðƒ. ¥W«a¯) i8æÎ2ޱÍG?¢çŸÆm‹5³ è§&«<_Ök(%“íéG5n`óÇÀª†}|÷=Ì:L3$;û<Ïó<Ï[ɶzÅ=Rè…HÓ7P}D]ÎÛúÕtåó¤ÚÈqBk¥ßpiKØÐÞ¾.Œ¸_k„—& Ÿ¸_ã.íúæsø÷i.˜d5ðáþ6д»ârÂs öÁjô|Ñ Æ «®a¯x ^‰½Lœ—׳¬}zžçyžçý÷±¡O…Ô„Wä•‹í"~,æÃœïÝ«/¹q'L(5L‹ú&† ×E©.W†u¶ Hh4nä0ÖÞúö͇õwO±)J ¥RVû³eÊ*Ýò^ÃB~Ø$¬ŸøtŠ#±Ç™âÑ \=õ€ÐâµpÞ}ežçyžçy«'ZH†í«Ó, ’í”+2ÇáÁSzÓ5¶)Œ4Nµ‚债ý9NS¯‘jc»‚ôÖ´ ‹GÜk96Æ©?ÂüÚkòÇ”Š%9jB˜T¼eCâópàágì]lE2Ÿ|ˆÖf¬††{S†o|ÓÊqøyžçyž·‚‘IîÒbà'-(œùÉ'ôíG5L¹š@q8j€ëÀ¡ê›ÇZ#®¬k˜¤j³ C£ac^„˜¶.=Ì&L¸ê¥ÝOOâÎDia+ebÚugà ¸e^Ú{Èš¹°Tu®Iä¹/Ó8’0Éö¼Ý|>oµy¢»jõ<Ïó<Ï[µL_ÄOñ† êùm½ãSytˆB«aÑC…ôp Ó\ ©7`“Þ”LþM˯³óc+aúøµ¥p ¿õÝ|îOÊIsGšM–]`1çBLÝQítɚ¾Èö¤;ÜÙà](—c# ûøšm2+;ü<Ïó<Ï[É 3Y4™jØ4¦'îÎ_ÀÕ„Lt“yohÆ‹í<Ö]eÌ#0/4j(ª»Ø–ÓIHiÞ/׫Iix•~åXAžQÊRe ¬ˆel½§6LR¼™—û´à³°N~t µVS  ìh«?›Û«²]'wŸçyžçyÏè ivõ•ílGˈp9íìç?›ßø:øÃÀû§Šc ­†æh„ ‹úªqWM)l„ÝZ+¡¦«¯—GNÑrù? >5Îq–rB¬ù²C`-KöÔû4 ùñÇðSÂß =˜çyžçyÿeâ%#‹”S%ÐÚÉ‚ó§Îê;Žá\ä4{ÁcC6m«ý¼ì· ‹Ùêmï•n[)-VZ©øï÷ݪ±tçqœCà‡?‰ËI»œåyžçyž÷L‹Xü²pgçTŒýåm>ö…4;¨±žWS¨´Þö‚_ަÍ(5Ú•yµ&ñYz°ŸÖò=ß°{Ë\t¥Üg{ål‡2Ä¿ï~›ì=€²ÓòìS¾ü…º½Ex‡š—¼[Ïó<Ïó¼ $&"Y„ l¤Ë?þ‰^óª¹áù¾qÎéª1…v/øi5žÇºX¨Öj ÕPC“Øâ>¾æZ=ý¸ØBIÍ—Ì´ì§þ÷üuƒŸà1Îþ'ÏVƒn«a,ÕŽúÃûÄ&¤eo×ó<Ïó^9 å…úTˆ$Û3|þ. “Z]kR˜tÕD×/—3gd©»ô<Ïó<ÏûI®ÐÉ庛SSÕp˜©©o„Ójµ+# )4´‡úðáÐp\w±Í âÕ¯ìû¼2eÀKdc "F©U©ìy÷XÌjƒGMՌ³nMa@ǧånÕó<Ïó<ï‚ÑÖ¹¿°[/±’TuÇOUÝÛ·»ºª»ïa¢<ÆàBÔ°@6ºP4³P$Á(1D"‘Ä…¢qAâJÃ]Á@”jŒ‰ƒ‰‰à‚˜h‚h”Dð1>éªsþÿSl¸1é™ëÿ;5ÝUÕuûTý{ó‘[oÓr!ÅHC òq9MÅ4a¿h`¹æRÎÍ~xÓî?ª¦jšÚ÷Üð)úçÉN_‘v8*g2 ø$k~ê=$vßbbêÃa»~óey òs[näï±K<Ïó<ÏóÎT‚t%.Ò¤Y)Ý /;†MHÃh×}ï!=|$m."fš §¡Á¶ð²îfÀa cpÑ@XÎ(ŒaE ›R¢{î×hËõÊ´îiœ¾ä3Ÿ%|a ÚæA}Ũƒú¸h(ïì? ­âÕ´%Ž¥‚áútíõú·¿ª©ÒlÙcA¼enîÏ^\j³új¹Åa®Õ6ÁÏ]¦)‚¼ žže˜79ü<Ïó<Ï;‘Aƒ•ÙÈaô:’ê)LøÔŸú«¯Ñr$PJ1çbfê ³,ºÉ?fŠf7øÅr.ªùp.›mÂÅø«/Ýo¬»ZÕ¨Ùë~vfªï{¿M¬Ü cÔ>¢=æÍ¯2ü÷<Ïó<ÏûŸG&YIƒ!Àˆý•q¯wÞ“f‡µ„OT,º°06¶…š ~+ÚiÞvƒ•³ü)¼7KaÁ‡/¦‡¿éE[tžLOÂ’i­£8Í%ºýµiÌ`¿¥M²IeM7ÞýöùóŒíh$vùyžçyžw’á?C ½°ÿÔŸõ赩hµlc˜pXhØ‘ x«%“‹[V_ƒMòù×Üú²¥°Á¸l¡W^%O×ä±êËxI*yEܰÉûÚ;‰~þË<À6áµÜ> “tÞzé¤ HÌáɦÁë¾YÏó<Ïóöc¢K1„‰h2xE¥c_Óæ [LwÉ|þÕ˪Õ0ÎÌËöÃù~F»×V_–áT‹ƒšî–[úÞTÓÛ"v—Y8¬Òã¤àhÿŠ'?iwè—<ï«…„ æ#ßùöp‰‘ß¿sð<Ïó•Ínð£bÌ›ôØ1skú8™mxµ8NÛ¡D‡û8Àû‘OüB ¼.ºjšÂ\?üqLßȧið¡MÉó<Ïó<ïu'¦,eø*;KHtЈ £o}SÛ ´˜H ÝwƒÜn (›`̦†mÂVádcJ¼ð­òãGzµ%†Õìd½³XG†^æcˆ)ºÕ0ÇN¬ ´u¾ð,æ‚©Äá×}·žçyžçÓ Ü'+Tôƒø§’âsÏÓÇn¦0âÍóbØéÂH˃{…Ÿ†ó8mlŠ ádUó»¯Ö¤¼8Ôƒµ4{Se¹îq¬¥ÄOþ&V u *k˜òFÃa&÷?0˜Ô¥Ìp‡ŸçyžçyÿMÆ¼Ì Æ®½‰àŒ2=ô°¾ñ-j)LnZlqy@Ã|¯ð³¿ xßl3ÑO.Æk^{Mw ÆOg³XW1‰þM˜vƒ‰Åj¦¡¶‰…:ý`Æ^ÄtV?çyžçyÞë.IʶXšº:%âåRn½­¯v´˜SC#©ÚÖ0î6F²wøiÑôaKËfº5çc÷Ùj2 &²öJ¼:„md½³XKlþÝðIÌ*…&Vyn¡•ªæÑ6?ûFdƒîÖ}¯žçyžçëüH$óCý¸^~¥†Cjöhf«fÑögd ©÷ ¿ÐrÕÂ3|þ¥ü£Gm)M”—˱ã(`g¯ÒÓºGqæ³ç‡ê¢ê}ßП¥r BÝl§»ëî„ëÈ|.¼îÛõ<Ïó<0o_ÊÇîÓÑH¯++Àc&±šö¥á Ìi÷ ¿åFMàßï¤gN˜pÈÖI“Øâ4hÓ챦5ã̇1Á6Œß=͡ѰÐPçi7icŸÆ÷~@óO$lB÷<Ïó<Ï{Ý<4ò?þ®×Ý Å„«9‡‘„M)çšFÊ:@Èã½ÂÏÐxýÍ©{Q´7Ýåõþ½í‰TsJ3úhÝã8ó FÒêâ‘·qûÍ4Ï ðÎ?Á\OgÎæcYóÝzžçyžwN†=úºôr *Tìd°M“Œ©– •0Éöžáwû—Ít §¦˰½‹ ü³ÏîK}¾àÿ+ó.¼³Üt#‡-Ì?Ã;ÿYݧî¼Sêì§Jë¾]Ïó<Ïó΢’F8ŠT‰TÚ‚2® 2À+åÃᬯ|‘Ê7p˜I×M_Úh5@“]!Zu ”H+œÔvR8HÅHË-\@E­ÅD¦¦¿»îyœí¥üãà÷üøî{c5ËäÆë<…¿cÈGâÓ•ž=Ïó<Ïó^ D ƒžùNDˆò¾ f`í´·8{ò¤^s…äVÌÖtø7Ó²Ý ~ŒË6pM6I1KÅ4C‡f®˜°}ÃB.y;=ö˜Cå?'L6$¶O>>¨/Ïö³9ÇͶ«Æ¿·YŠÏÓó<Ïó¼W£,>“žH„üÀh;HÎàÑ/~%—\žÙ6çªå0¢bܵsÀ£“Ýà÷òic˜âo¹„'Z4±ØäÐÙï¾AÞuU|æyƒ ­{glä#î$Äó/²°k­0çQæßœîº‹†‹=Ïó<Ïó^‰x¥>óŸ0¼‡÷ÞÎ08Ä_½WþÅný…Êq–qçÝ=;³3ûçœ$z‘‚ÆÜT ¢‚h±Ð ‰­bUE´bÅ -âß kn´P¤ˆÿZDðB)*h¡…ª`±ê… Ú S(µÔh,iΙyß÷yÏ»[E0‘=4ÝääùîìœÙÍÙÌž÷˜ÏxGÜ4uôµª¯¬Â°ÉŠ›üV´ƒÔÇnàA&Ñ»²f×B&2ÀûSýÞs'íR/ARTcZ—Lç’$âÁ*tyÛ;ÉmÁÒTäqøZòšËÉ7+á7ým-˲,˺¢RD ÂA¿|7)]/ïÿ0\!®î eždæõ~ÈeÔAq »êâð«{Õ¼W³Ÿ{ Ÿò‹àÆ}9–{ïA1“áiRùÿĔñİòëû¾ËLŽ +ŒÑׄr*~;œÿ§ [˲,˲®¨‚$æ¤ôê%k"ê1~Ò3OÉ+^'~NnLåL @®ÙNƒrn R1í\%å4ÿ[}yk¥ØÒ­œ'7Ó—%>>àê:yð;*=Öóá[àÔý¦WãÊo5šÂc¿a·•á·PZëòÎ3ÈëðÍo™£-˲,Ëú¯X’îi…„HIb’]ùé£|ä%qÐ$7wˆ|E0\¡êkU}®lEÓ5öƒ_ð‡ÄÕ»å)Nf2ÈÿÏÎ yì—ùÄ™š3¢ø Yƒ«(À"ãG•ÃÏ »ir]ÂÜ4C*æ _~•¼õÝm=-˲,ËúOÌŠ IÜãERW¨ú¾ú].áºíäfØØ·ª5¯À#øMø§ØÓwð¼ü’*±J¿¶à²&çӉצ§ž„òÔ0zîὸÔmz=®ôkÅÊå(šnõ-âFoÅØ5ÝPÔû W×Éî…M_˲,˲6‘ê.ExKô@–Õ}KmQ¶ßî³ò»ä"Š»ÄýXÔ³ÎMÅMWäÓmBEÓ•ŠC„׿QÎÝà2\ýÑÒ{A÷ƒŒ?Å®¹®|×|»Œn?}:H—•b'ý \¯ÚŽþ#,˲,˺¬±Þïq×O;Y:Ð"‘˜þú§p󭽇ëÂꈮf×$ßD·‡è6ÀqMÅ\Ü,#yû1àä1mr!®òXÅÎ̺†u¨~Ouí'Kf'ÝfÑ|ï‡Oyºïãˆ0uì7üWX–eY–u9# ;Z ÝôERà)?NÇn8(äÊuá§Ìp‡BÙ°R}#ƒ6º1‡H9¡OÜÝ«9(ÑòÄÖ¾Röe¶ÿûø€®E×Yá×û:ŒuÛ9.{vX}€I¯ÎO˲,˲t$Iï÷ú )Q€…ÕÿXÚ£{e»ç&âwÄևߌ<ö[âæA·š]%n äaK_üFVJ§Î”Lké2Иòœæ£×ë:cE=È77Me†_üJ(F‘¼äDK0²Áϲ,˲v¤wÿ·ÿNñ /2ù€À¾3$߈k¤˜±våáuá†->H~ÁP‡³o¡¾è¶ÒxNßÿÎÖ íª:b>©ÁoŸe·aGz@ºézÞv{*jÌ.Áíº~‹ÞOúA•>ywZ~*¯yZ®<Ûú[–eYÖŽ(‘r©_™%Æóò‘S¡l 4)Ú¤„+¥X¤5Õ‡-¹‡à½ÁHü\ü;pIÁ ïSüÝ9||i¶äë•v qòUW4RlÇ¢%PPÿiÊe#7ßvÏw’ðˆ›^Šk¦[ß’G0[©égK“÷Õ‘øì?õ"è¹ÇoR0[–eYÖÁ(ßÙY•Ç!éq~rÒž?ùy·8ªr+ƒfêc· µ_Ìhì è±§ÆHÅ<Ýö¹pž¥[ž—Èà÷buêsâ·`¿äu¬Ø“kD·6ºJN?¸XG²¼,˲,Ë:1‹z쇃D²`Àã‡ñdFn¹‘«h4 Ö…_µ°_Ý»¡þŒ¬¨˜ó»Þ—˜ÔKq²ùâÅ+ýà!rCð¤‡ú¢’oŠcØ/úZîüØjœ°·¹X–eYÖ ÷wNQ2¾$”wúo?Her*n"E+n´WÎÖ…_-üœT#.ÇFr3x#|ð.JÎI$}þ"Q¿mp%®­žù³ŽÓq“Þã Uò¹:•Y_z<ÎX¢^ bs±,˲¬Q‚¸"nì‰à>¢¥ý¾ò$Ü jvUr‹XL²šuá'%D1Ûó•xÙˆ‹›ÓG?Ci'7œˆ²/²þ¬#¬ýìXJ „_Àär[28Ü(9ƒKƒ(æü,˲,ë@o%JEد»ïËÏ3o’ü ‚nAª‚ñ>àŠê¹Þ›ƒÑÍÈMéSŸÖ“R&)¨Bô‹„´éŸv‚ǛNb¬¢cš‰ƒð[ѹ×@ òï ÷³èõ€3oúûZ–eY–õó·øDŠ1ºçóК H]õ/öë-ÔŽ«Žãøš™}.sÛ—“*†,EÁ>#ŠR)h)‚"‘J/jÁ/U“‹oDSABA[}òÁ*i|ÓÁ Þ¨69{fý/þþkvcÔ“Â(fŸƒÿo&;³Ï9ûÌdÿ¬ÏÖ0&:æ•l´4R}ö«hѰéq»/jýü)3§¿ÃYÔ^ì´—+·ãý北÷±Mg;‡Ò¬§”UVöëßþnÐô‹J>Ïó<Ï;XŬÁVö(ƒ¾Å0⇎‰múÔ7xZžÀŠšAvóBME õI>ëaŒÏ=Jƒído…§i ñK§5oìAúÖ†ê.o“ÕÛX7z©£´>ØèyžçyÞÁ©lâ=ûDˆì1qÖá߇‘0£|Ê9ÀÖŽ†ß¤a€!o9l)¤fœMÉ@8Õ°#ž<™ÐI œ¼î·ÃS}æ,‡’ Œ¬H/”Ü À$öš¿ŽWƒòyyžçyÞJt tiÏÚb_`ã ˆ'ÿ4Ö§}Ÿ²M?ʶÅÀ°Ó‡™L¦Æ80Ì%Ÿü9™n"’D\ k~7<,†çþbƒË›4¸i4±Ï @¬Í0»V¨Üx3‡* kªYIJ7 ªip¡¯“ÃÏó<ÏódÂ÷%€Ù–ßGƒiÔæöaŽa¡Y-ç»î›õ<Ïó|œC‰™Â{š5éƒ6âã–b‡.œ_÷ýzžçyž·g‘ÖÃÎNP±L——鎻4T”m÷ùœÌo%×ãÔ‡CÃlƒæÕ¥IEÕËøìÄ.šZ‰×÷6x/š}:H ø«ß”¿¦ša¾u‚ß6æ«vÒ–ÍSßY÷ýzžçyž·WÜ{ØÒ#/ _¤K}žï¾—¦f3ìïØÓ“ßZÙ(þ„ߌ²Šóz7ƒý*Ͷ4Ö3߀ôˆÄ®‹3ø(Ú¹·O#ŒÈÆÃÝÎÙóVÒd±BȦ<,PЄ¯÷}tÝ÷ëyžçyÞ^‰©ìSí±·ÛÓã_Ô¬ÄöMa!¡¥ç­†9Ã~E5~”7”mƒ1,º TPËñ“‚ áО„‡Ë“ö° 5¿Þ5£ßRE~õ›øÆH_ÔfœMñ•˜ÕœÍ#¾…•sä­ë¾]Ïó<Ïû¿ND®ýM ,ªt§O<¥Y{iÒþ'À³ìû5T@éÞëaȬå°Óã[yËïû0lù"·âíÏ(IË$’Ðæº“ÏÏÿ}%ØÜóVÿú7ÁO3¼h(DÙVWôÉ{žçyÞu튇J{5õɪÕahMGªÏà‡Û}z-‡Š„FBK¡ûÖ‚n;¢Ý.®*¸ w ![.iíÈ«^“àWa¸{Ã/kvxê3ð%øáýðrÏó<Ïó®OWÔ÷Ø|•þôg½ñÖݢа‰{,üÀ€¤>{!g ŽìwHB©¡ê¿B/œ1.í>âþóÞ“Øg[)8yÛ ŸÚpÛ«±wõzˆ'Náb/1ñ)³$ÿyžçyžw}ÚC}‹POQßr'ç[¦0›ŽV_°:§t°QO§ W“I{5üþÅ~ú’— ™ú^à"§?Ïó<ϻޭöß´+/qræ …-lÙ”oÍn^q>~É{õ¿d€™©ÏηôèüÚð#™¢d ðR«‚í8ûòi WìW] ¿v`©Ï>›Ôgëm5qwŸçyžç]¯VÞ[=±Cà°Ÿÿý² •ëªâø:çÌÜ;s>æÌ½I®‘¥Z* Z©%ÕR ‚~A¥õE¤ÕЬZ-ˆâ‹ ECüêCž|.h4V­¡Å‚JJQÓ¨©’Þ9{ïµ–kŸs}™‘Á“;0ùÿæÜ}öýسàÿÛ˜•;~`y=Qš†lÓFM–¿.ñ£û™ Ä·2ë+ýpÞü6½,>Vtþ?¥ÃJ>ðb-ĬáìÙv—§&~óûa¬ß?Óî{»Pm@ü€ÕÐZ_³;“£Çº˜ö´¥I¨2gª—?*íj'Ek}…YŸ¾Q.^Põmà3‹šðyuÊ«~|°,ÑÛ´9÷»§}¿L›Wµ¿»®öƒOsùè#ñï·Ž®Ï0?`?êÙ‡væü^³|àeoÞÅI¨Žê˜˜LÙê¾Di?°?ˆÅ/¶üeulQÌ=¦t /ñS2ß+%˜òyÚrÙD¿wFÕ­ú±Ao°õPÛEÖCRíå ú!PáÇ/×fWÕÇ&ˆ¨"aÕ\xÖør^c„»g¯Õ¦q_âg²±OŠÙp¬´­XC@̯ Ò]QÝbÉG=9)ç’’©ÖóOñmˉ­².\ñc× ¾±!XòrØe=vOC#M«¾ÄO³‰Ðd–Ù¼–ã÷¨s¢³è `]è6Ós°™¼þ.³¾EâG¹K§ò­Ó*Qø‚bc³ÚG®,¶Åwwþôg”J¥ièÉúìb2È}¶¥;·èŸŸ÷êbAåU?6è ÙE$îë»îÕùÖg—§±ÒÄècêƒt«!~À¾ÁÊ–¼AùOh6Ž’FyÈz¿˜òéH‡[þçOh—ôrÅÀ ru[ù¡B•.¿¤Ð´Ò×÷qYk}vì€ýÀ©‹î½È¯<ª1²74©ú?¶1­õ+_ m!m¼oýi%Îðó_ T->44Òñ¡àw…½)_ì 4°O°Š×Déàn:véT(÷ƒº/ñsYéÞ{¿¨oµU}ˆêçWýÔ ¸•¶NæãŸü:guX$~§6Ùô¿}VÅŽ&ð> oÄ^.ŽÜˆòl/m£‰ñÙŸÆDN7msR6in鼬àit¼‰RÞd£L5)ã“Jn¾]_ü»)ÕÕBW˜Wüi€>á ,­üÉ™Í2k†É¼> m«ø¤ÒïþPÚ…ñ `~@¯4Ý+&¬%-_Ö6tm.—/¹›n TE[Ks!³¾IX^ü¼­JrNǶïsp–¿,<ó«hÁ šlšüi€õ­äŠøéã?ñI±àà`'‚Ø!TêÃZ÷ÙBnÏ$èÞKWqêÚ¹ vâÑ@&{Ñ÷²±)Ÿ&&oõ²â§IÍ”3 •¶ƒÙ!K=}*Vm,ß}P/Ñ¢0ÃýÖ鎱µô7O¶j7_ü¨ T°ýÍ]ïè’¡}@ß³- XáÐú^¨^üä/9™„ÁAM ¦ ¡*¤–Ú£Á=ïjh¬™Åú– &f.êûhÔY5í¬/ØÿÐÆ<+¢~mˆ²g›j½%±­øO4µ“EâWxk¶´W]m´Ð/ÂÑÀ¤°x³—S½íN¥S­I©I-6¡‘§ºIóeÅO³ÊŵSŸT’廷ܪ—^²RÑ2Õ…Å ŠŸ×Ýøø•~ _8ª[«~réLùbñ³f Inú'þªÜ-@¯sk^í—·“ßlh¬I1ÖJÛŽ&QüÒ<¤“¥ÅrŸmqV3•2¬ôü3­\ ·Â×%{à˦|­óAüÖ‡îLÁÖie˜/~m«”Ñýh$ç~vÅÐ'¢QÁÔÙ­±9?ÿW‡9)• oÎ6¨_JLkŸšlzZZü8™°i$mÅdÿö©Y,U`ÖJ^LöX߉z6ë„ÛiŽ{ìm—ýôPXÔ*vÄ0÷›˜ûéÉoÀú€kE²°F ÎYLß÷åoHFÑÓ¨3½¬dX"{ÚR-+~žj[ËÙPß~¯Š ^+æ~¦y­4ÚVµ£ ‚õ@ÄÔ÷ÜÞv×öø7„´œ×'šØX)Ån‘OX78ÈÐ;¦b–ËÑýœž;§´m)¼  ç]!3Qœ*Už†šŒ…j¡Rc ÛXé‘Wë óQí|hËu'î±ææâ7¢îÖ;ôOÛ'E“Ml”;ߨ¶%Äè›àZósÂÜ~·ÐMK¦|Yñ‹š—šVf€L“`8Ì•j»œMÿqßæ?³UD ¯?QüBœDñ³ ç;Ž›ÝýñK+±Þ;|wKÑ'@¯ˆºÐôéh6 T8kR-/~?(]²Éé–дI ?¨˜ÆžJùħ¬ÌÌJ rÜ‘èkÏñ/†MÞô–âg§vv ’“‰õ\üK\Š6z†MÚÝYsäf¦QV.³üÍ—?M«YfÙ=ò4ᬠ‰½ÃM7äè1i̸ÓKé*†U?4¸æDñë¶{OüÞúÎâç“ÂŽjçŽl¢Të¹sWºýÁbùê¾ôUNÌ÷6,s…rS¸¥ÅŠ@cM-µ N OcŸmép‡Ÿúµ³3m¬–Ó&–×q£Ûݶ/~Ï} ÄÏ~eSî¨ä¬Öïœò? ¸yá×7(åŠYÔ¿ÚæË‹ßÔ”ÏR[“MŽßN$+õ _6ÓSÍl&¹Å9ÛWüÐ`ß`±í¶=÷P¨šß?gÖ—L&‡¹>òYôp `ùäç”Fœ.Ý Õ!-—¿`«’\Mü¨ðSÇÚ¿ön§3aK}Ö Xlvâ·þÈÍÚíf~ðÄBñ«¼5OZ¶'ˆ‘¾û}qaìô†¿oí=ùϤ;7“üÏÙgÍš93kŸÅ¼ð>k¨ø‰]ål¤óý”­‡|¿<÷çTÿ!ˆ4úH¤m%Úk|“ÿ ìvôfæî‹NÞOò…‡egñ ^ÿT¥Mâh,w¾/vÀp8‰W£?ÖÅì•`…|b‹ýArùlOaâ—Õ6ú¡âÜD\oâöÅo|óŠÞ‚·Âô_>'ëc™}é”,:8T1+£Ïu]EãMáZÜAZëâ´‹ûÉ…mÉ”µŠÝXµ-ú)ùºëßA—¸Æo¶#kððÞÉìÕ$–(îÕenýÄê~,ñáÓé\°S~êà ÊŠ$‡UX«â…“4`8VÃmêQs2»Ú¿,nÒî©Äå’Ê—]-v ³>+n¿\­îÇëÓðüsBûû€…zõëÅONEüBñÓú¢ËatEüíïçà–°&iæm¬U,/JñÆÙZÙú±‰Ÿ/[WŠ›¶£šÜx¨ø±[·Ùº yäëÜßO4÷ªÒ€¹?{öèÚYüØU”B8¿Š~øãÞ0"–h:#ÀG¿¦¶ÆÚ¶æ{eðÙ¤žù\FC­¯°ÖÖÉï‘+3¡6ˆ´ñ z{u¹^üì2ñ‹ #¤!Œ6æ:_É™ÇæÜD!=²=¹t©9üÖvm̮ҞmÜg•ŒêTÁcѧÅOÜ´u9ýæœÄFo»®ç¸ÜMƒ¥qMÙæâ÷ÈW_‡øU*~z‰Y-ŸýÒÜ"l³:ŸÖi 'ž$¼¢•äKí\›»\«Yõoæó¡â׺Z¶Nê}®‰ŸÌâ·âÌÕìb¿ù‰>×’¯Uüb–&¾‡®€˜iùjs£*™ä-ï·Ÿ]ž®B|Õªú*éŸJàæPñ“ƒw4¯üGb ½c‚U‡ú &~gÄ—;Šß¨Ðì©ï±“½­”w½º†AQË×zTÍì™§ƒÛÓfûÄUC/øŠý^©V3+ë2š7Žåɧˆ/GmùVšÎýú·º¤Xä’»‘NÂɇä\nYò¹ÅÉÍZ!å!¸5´µƒ£˜•µ»/fjnµdƒÅÏ>åòÖµ £Ûd7–Ñ´yÿG"½6S§ ©âÓݘQÛ« ÏÒÄRÁ'TüêÅÏk®’þyMfaÛ3•—/-sÀ®…“û©‹…þMüDܦÖkpã¡âתøù*u´´¸)ù)ýéQË]­OK&»—©f\ö¾ÁRa¹fÿÇO°Ûñ ‘Ä/ŸŸ,Jrã {þïKü߀]NPñkNŸb—k·6keÈò¡â3¿RW Ñ$döâç²µ[kyµ>3>?Ž:^×ú`Õ æâg¶‚Û1oÑÙi"EK'¥NôÍò‹_/u ÀnÅú7D¹Ü¶o:Ý„\]|5TüÄå­+Û‘Njmj:p˜_º¤K7ú+ÜšìYãÛ$J¤eo, Ó~V’Úxÿ§â¢hUvñ%9;Vh2ƒ/ø?Zö.€]Iï`?}F•¼:ÛTÜ†ŽƒÅOëX ÚæS‡ï|Ûœ’ƒ‰¥U=1Gµ>õ@ëý¥n,•0@2@ÝGÙ‚EMn]õOéoSñ‹Y)kÙ»v%}ßû ³>_‰›°[W ¿àJmdéËðŽ£r% ·³´<+Öò$ÑîB°;‚åñ³ñ®céÔ°£ø±Û WŠßL~8Ñ7˃§–»`—¢Ý_¾(ë‡Ùd/#­Ú2dùPñWD·_W =£ö©ŸéºÑ䎸» Åñ¥]â–ÁR œRÇš5@Žô®²ï­ eúW=’LÉÞV‹¦ôÓÇ—½ à¶&èOÔ½B#©zUÀ:/ûî3??^ë5׆j}ø‰_o²"ÜýqîÖ¥î.\Ù?õò×h åÈÛdq®\3ó½m¤| Þ“>N­ 4ÆnuHfË´cgb¬%É’º2Ø#‘Ü}oR¾J¼–l©U«=;Ìú|³’ÜXÜ>:÷»¤™üšI&ŠÜ€åÓÀ~[?>üæâ—ܯNâWDoâÇn“Ž~ ­ÕŒ®.ñzȺQ"[9ªìq¤±—¶·UÛÄoŠÓk/»*¸qtÕ ë³K½Ñ•áþæý›¬R›€ëèÝŒ;_k5ŽíÆ…â—«øéÁ¤Ÿ{'täí±[¤[Sé—FÞ#v=É6 êÒ E}Âßû~t>iÛTůQÌLä^¿øu×eýÔhSþú‚®Ò$ÄÞ6˜sUüØÒø¿¯·(oÑçv 0ñÓˆIü ®ñ|9±çÉÅöí?QüF˜ø†aÆâ IYg!×^ø9‰é\®7_¹uü‡§9õ7åÚŒµ‚ÚöeQÛa£X…øÅÝûLü Ã0 ã´DMJ?†ïÝîîœ4pÙõØ«ø‘ëò{·pâdkœ=tCüŸÃ²ªf¾Šu»öŠå ÅVzžVI†a†ñ c¹üØÍìòèòI7º.¹Yvsƒ¬wþJ»‹b’¸ÆY¡Ž&Þ—d Ÿyž}«Ÿ­æÙSwB£ [‡†a†1$‘4p1òúËEüX-n²ÀŬE®WÍäÕëßÐרհÓ* Y…HJJáŸ@Šu]­uhâ8ºBU¡n'u¥ç× tÊ¡“ïÉ1Õa˜<ºÊ8:G±~ ¼óar-lvV±ù‘Ý´Ò#fßÄÏ0 Ã0µàJrRüïŸÿFŸsì'\m%¸ëHJQ;Mãó qú!¦*µ /™îPÊ´ Oˆ©hz¤ òÒ¿Ú&NòA^¥Ý¦£ƒäŸLƒ PñšæMÃøÝà;äDüz&~†a†qÑX3JþÂ@ל\1¹øuÙ·¹u1¿ü¯”µHÓ¿˜î. ÅÀÔGUcd éÍ_»‹¸ÿü/”[xÀiõl˜xœ¨gLìoóVö]tö¹‰Ÿa†aœCDTX3—IügÛ§BC¢¶Ã®œ\üJv³ƒ'Ÿ®ŠV”N§W—(—ªß2C¿¶€,0•@O!þñ/|ïºî£Õâ%qFªî¤ò -ÇÏ“+1¹»<5ÙÑbAwÔ£ŸƒÆ5rtmºÎo½Žwü>Fkí3ñ83ÉËcZ°~£<™ê´Mü Ã0 ãÜ!nF\iN¾â*1ÊŠä?®´ ï®â2«ïiܪøM1p%ïAî´.†æ¿|‚x†£Ëîæí·Áâ†äubt‹Éu δ‰×ש²"4JÌæ†6è‡;ÒÀwÀéÑACÏ<Á ‹t¨Ë­KùÖ/ÃáWäÎÀ±?µYX;$ñÓ‡öê!Ë)‰_Õ4ñ3 Ã0Œs‹f¢†ã`™›óQ5¦œ4m¥‰,ñÝßO‰"WQ{ŽS­JÔ+F/ë–<Ä·~aia#g%k¥º2¬Ë±±ŽÝ‚î»2ú‚}ž\®ƒ®­.—e]ôåp? ^’=U>¹|´.4Ú²eõ–™pñÛèÐÁ ·Lq*Ö”‘,ÄgŸ7‹ú:úbâg†açŽ(™(Ù(éø×ÁͰ/¢ÊL>ià†f—_~I ´3M[‚QøNƒTS=„>ïü¿o«h­8›ø›[•uØ‹¼IÉ]9ÝŸKBØZ„« p¥LtµïÍÕSÄ'4Ìd´[lŠ1–U3gßÂ÷ß s Ó›‡5¦wæý24êé]Í;ˆ‰Ÿa†aœ-á$H»#ÂF÷´Ù:Ë®+‰\'6 r-ÌÚ!ëñµ7hWª[MpUÁ¿ˆ«„;Æú;DÕqΔø+úñÏñM›È71kÉÈÇ ƒ4ŸkK¦§f¨ûd …Ô+>,Æb‰¾-Œ®’£ÉÑnteš™úPÁ‹—>q3>ýT-ׯ™H¯ xÇé1Í‚ëÊ#˜Tüâ#{ëõ^=Ø”Ï0 Ã0ND¢¶V¿ê÷‹Øˆç€zÎØÀMVÓ ¾Íµùdr¦´?ø@³‘+ \¨•’Îûø#nB¡–=ªŸz˜Þú®¥ÎÍ÷µº±Â Ž!j' Y*Gõ¯×w ìÛ ®+s2Ï^Dw»öséUD(×óÕ[øö;ñÁâïËÿx‰Ø×DÕ_ª'Ù8-:EišðC—™—iÇlž\{Rñƒ]û˜Lü Ã0 c·¸áKwˆüˆÛ`ÒžqÁšä°W5f“MI“zT^†ÇŽhÖ‚„mäœ\ç¤.BR+HÎëN؇¿½À×~„Ü¢Œ2ìÎ +Ðç§?r-ÎJr%úžœ™”£Of£šóË~&f3”‰ï•UV Þ~5åü»ßÀÒ‘¡ÞEdŠª/"žiPúÑ9‰T»µ1™5JÏ/½B—Y6¾'“?±øíÙ_‹ßJdža†a‡ÔM!ß´] ²ò´v$MÌP¨jŠu£¨‘ÏaÛ-µã(¨æS±j`’¿ó=|d\†dzëÐ绿Ãn14Ûàg“¼åœõÒP /UÖÝÍý+¨Y\ ³vp é—vX§6ÈÝ7ÂW¿ÎŸcu9a¥áhVNX™c,µ<ÃáWäak‹{W®`?öd¬øí}<-i?Ã0 Ãx-@…øÊŠØT¾Ë.¬¬'¨õ3Ù΃=‰êI7"^*b42:ïær¿(Û¨ ðù¥+?|‹ý|peR¾Ž|:à®ü¨F7®.דmt-õX`7ÏÙ¢\…ÍœÓQx×føéϸ¿”JŠœT3•‰iWÝ’~ÊdÊaJ¿Ô?â0à5NzM€ê©'eª`g…¾bd“YŸ4Üà5ÄÏÄÛ0 Ã0F$kA~ÝhÌëªËù|l°ŠDù]‰µMe9—o cGS´Fâ@ÿc¿nCå¸Ê8€Ÿ™¹/;»ó²{“¦M+ZE‹_ð"j_úAúÁ*VJ("‚_ýTÐV[jlƒHªSAðS¨P©ML ±â Õ’”DŠP"Ô¢ÒÆJ±ÉÝ9ç9ÿçœÝ›P2+{÷ÞÂó¿³sçÞÝ™=gžÏoÄ’ÌSûÙ­<¾¥«ðëàC¼¼ H£dé¹TüšzSpV:³‚=wƒAt—`v9ÎõiíÌ@N!Meoø8ýò_ÐìtvÓ-Ïbx‘h”`G¼¢éˆÜ["ÿ÷y (â#F›ä— ?÷«ãr5¿Q+…ŸF£Ñh4E C¾mÐg)…Ö¿9Õ&èÈ%Œ1|h}þKN¼C±ÛÆVŽœßzñ€\vò*ÝzûzÒ³Ié1*LÄä‚ÒDüæ9Óo—‹±Yeù@üÒ~krZ][O£l{mºÆ×À?v”ýyá[ ÄZb·¦H"¼é¦Ó— ÷QÞð'îõØZN5shF|Ëm.źŠ…»LõɃÉñßr„~ü ~*oF£Ñhbœ4Çæ¥—Y€´ê͈Ñ=M§ý¿€«Õ&Cƒ^iMá9&¼qÒgC®aOVÂ~«sæoôŽað’7=˜ÁÊ1à·2Éú” Ù ½)YhNð“ÏìjƒqîúÚ›øCc?±ÁsìD&€â<þ ¬ ŒHìñ^8¢pCÏÞÓtÇG<_÷6#)S ¢£ÕåŸüÝÆ~F£Ñ¼6"âS§ÙÎÔœ@}ùœ†‹ ®0©Gf­Y½’_=¿Ø~ÚÈ* ´"Ÿü#Þà–‡NØVˆî )éžÃ–Èç½YÆ)p,%•Ër–Sú”ŽpÖ?·ÿù¦¤ÙˆõųaáÕXZ°:JÃs€'¥,ê&nÇ).-Üéçð"WsÂ>'WVvk4F3‹‡¦ýþ,^B}ð-õ’™>¼d…ƒŠ?õ&Ç´å½U¤‡nîqв|%óǹz3Ô× Yãðdl œ› Âg ±bÏf»³Â¦ž*b´‡?,“¡ fEd·z^šLŽ=aQÁ¤ö&‡Æ[‘|'àã[ëâ|YŠØpð÷a±Ø°T"ü¼÷J?F£Ñh¦!iŽí±ÇY T~œ æÀoÚjÃXêù‡~ÔÂb[ßX=jƒû¤›=ò(ç»1N'Û€³jŠÒ¤ˆ#œ3~—ôØŒÆð€³r6kœ®8Øï£7ñó/b6L÷šEåλ[¡{VÖrü’ ÂæÝÆ?Ï­£pR9üDñ‰i»ç¦Ñh4ÍÎHhŽÍᇡ ¡~€S'ü,>–‡£f©ðgþê$²0‘|Õ/ç´¢¬§ýר ªoŽýÄ·IMö»Âš‚Ç'ÃW¿I¾XR0œºoqÁÓâf‘›éá””`Av>nÁ{ðaé²PÜÞ®éåBåÈo+ü4F£ ÍÑÿø'èžÔ‡ýøVÕâC³æßþ^Ð` $/ݼU¶¦ÇfÄ_ùºÀÈÙ´W^þ™S~í †oOòq*6à0à9c¾xsÙj#>ìûå3¹¯öòožr°+ ç§f˜À -fÖný´4³œ´GŸ–êi1ð£ìÇfÍ›¡ß{-Ÿz7@øêÁJ+ ÷“ÂÿÛàMÍ"rß÷9Y³ê…ñ8È¥Ž¦ê†ß°ü䏯Š%ƒšÖöæ[{Súqü¥%Ôh4f#>P‡ï¹×¢á.¡öÑR¹SMNKoª6+ìRÁ¯¼ú+E+mièÜy~÷‡Ùô8ð J*—`¨5%…Ûà_ðê\õ W¸.Ñ5×Û3ÏAw\½• 8f­i”Oߎg »Ü Ø«›u¬ ®«Žõ$Ãèª)ÔÇóÈ.÷…/FìY¬j”ÖÍàGÛ=;F£ÑhvFÐ"ßú®ù’3eèªvÂ[hµ°}𓞈6Hr)·a°VTæDa´ïV2»½)Ö—1tüK!½~×8]ÒÃ+J„âçÅ´imw¿•O?#H à^¯Ä[X‚±åeÃG©-[ÇåÊJ7üœGÙ&¥·¦‚½<`ßww|{»g§Ñh4ÍŽŽ ÀüB«íGøÍo¸h²Öäüµ;jbòŽ6s@¸^‘Ür8j|ê#SrV¾Ú6)]ZÙnø±²©š¬ò´6[¢€ú{íS’KûÆÊwŠh)n|Úˆ·Ýcýùi¨¯•åkö`2çDR(ʂĉiÕ.å|ðÐöÎM£Ñh4š ðsw퇦B­ætÛYÃ@_þè9ßOm¶i‘áˆÇà\Õº±ÿ˳6¿Ò›êkRŒpäY0hª®q6f7'9<±ÊrÐû¥kãG†icsø6²‚_·yã×ÌOX*0Ÿ {)þsÏ~Ö•`/¬ÃXD7oB‰5@x¨&I!ðûùcÛ<;F£Ñhv~ˆíß ˆBÃ-Cc-çØÒÍFþ¥½Ð¬•N¾yðóÞÁ“ˆ1 ðÜéñ&__„/6p^ZcíL—dRùH,1šQ¸´hÜ­!/A«·*üœ‡>–¹ñ¦ø¸ÁâùA¬r(t÷"”Å0$<ª$r õMòöéÛ95F£Ñh^!oïÚÏ‚½)ü;{®Ër~ËûgÖk=m¢û$–Û&ü’íw£¡c`,š{íÂ89)´þ …Kn6Åç‡8ך~“înå"…ÿì>n¥÷c!+9çãWiY-cËQ€‚?úÏÙfpU$_(´”/ºëë©oX ¹3µMJ\Áž=»½“Óh4fçÇ;r÷ù(ü_ø¡Q|Û—/]ÛùFöÓ.¾ q2 0Ãå݉Íòäk3Qš»ÞÒêóËY¤Ú9N6=¹˜U.ðµïâ—ÿ/ˆc¶sÉ׆oÕ,$íVîwÄþ4 ~d×År5[ü$Žù×'}­|ÁÏ·ž89xø‘€bÒÁZ2a3`“9ø›Y±8Ä}6•ûJS6Zî$Þ˜ñÑcPyVâ5¶ÐËøµb¸+ñœŸA™‰l8 Ѷ‘ãWÝ<Ý0=ÃGË6þ„±7‹ß¤êõƒÉ¼³´;ãÂüΊ¢(ŠòÿI€ú0=ú˜Ø‘äiéÌ0º_Sàf®w}X½mB„W2­Ûc(Tb^òEæ@ÊïPOD|ñ_îúlH ôÚxÁ½)}"±nz‹wkSD›ê“ɬÉÂû?µ®s®ïN邃éÇsÃTz¾{›A—þšœ’Ø®›$º_<¹Ù¦(Š¢([¸P`ËϽå«z­\k–ø™ÂÞw̱¤wˆƒ»‰Ÿ•q1ÿ¥²Ñ|ýÿÃG+)£ð½¡7cQø[K1€õ…tÌù6ÿüsX&VëYÅoÓq~CÀŸ~¶êzÝÄÏ˹ ˆž?tgÏnö³)Š¢(ÊV'F°å‹—ØŒ‘¤l2„©Ÿ¸î‡?ŽÚ÷_•êèS"ŒÐÂ'2Wì^<ÃKÛ)]F OÓÅÐC¬£°ÖbàHlŸÁÌkÌÏHê}[€.La÷ÞïÌ"NØxÄO6j:ª#aô ®Ú?EQåÚ#@Š™Åd2d¨OaYe£P™a8ýWF!ºô¯[àb<$€È[5ÿ˜â?w™Å<3¿(þ 1ˆ ×A VxtC8ÎçØË-°§¹¾8¥=A$ýðò°ëmœñ¸Ñ¸ßšû›…(~>Á¦¹½·«Ø+Š¢(ÊU â\Ns÷>Ÿ ¡”æ3įŒùÂåÑ„° ¾Ëºë)ÈÕ{7»tÁOvødÅ.–d†Ô_vfØÁ pYS𡣘¸Ùs\‚ߪømzM|úY‡S†ÉIZÜZìC?J 6Ø´ãꟖÓC·#ˆ¢(Š¢\K@üÄÂö‹CoÆÁ,¹¿|àòŽ1aqƒE‘ã;®ŒÀ@ÅÏá³Mùá@>c "„LOnP¸dØV ¸?ªþvVÊ d¹VT¶ó~uJ[¤#Σáöó÷³É§½Ü÷†®£ø9É£øMì߈S«Ù+Š¢(ÊLDû až?uÄš"*_É’ª/¸kï|;BÀÊÑ?$l;®å ✫23$ò–ÛÚ €í\›^ºÄf›O2—H2ûÁ$)Ê@Ô?©Ñ©úm6žeóóþµo²f“• Ö7h/~¹ƒõ%co–ª^?<ù{lH¿ÙO§(Š¢([‘7¹ÓׇÊ7bÑ¿FñプqT Z¹ƒømxc­fDÈì§þ´ÚßÖ6ýáxA Î]š±(ôoÂp×'~VËd¬P Å"aÎïNi÷²cNþ†’'C2+8e¬õZ[ŸOEø=̱à¤äóÿ”.{í°¢(Š¢Ì¢¶>\ÓÇ^ûbtFàò—¾â£Hy‘7ñ)®-®ãÚ$Nœ8ÙgŽZ3h+‡`–!«ÞŒ}oÈf@¿×íµ\IiR¡e!PíÛ XŽâ÷‘;Èô!êKÑØÛõÝ™ UįWðot±Ë¬-VEQ”™ˆ±‘è›=s&F*ò´à™ûÈw"Z7Æ(~÷6~Ö“:°ãÊòö›yaØVÈ,AùØ”l–E!ÒÌŠ~µÂ¼ À+×k ÑT•ÍE¬ïâšl§œ2иÌ%9ÇG;á7%%™Œ’½÷ L|§ã‡¢(Š¢\C@Œjñcëiy''y âæÌýéãµ´ :ˆŸHŸ q"G'O9SÓZüP* ˆøM(Zë´—Ñ_ž£ Tq…Ä|ðõã*› Úð½ÇÈô«-+°ÙBZ†.â7"5ädÌ_;ŽÎúz3+Š¢(Š2“P`oûö#R½¤jѸöÏOA¨^*~Aîů¶Nõ;ôÛÍX·ùÂÌAùÄÆâ»ö`Úu— >àb•¬êæõÒ”nÈfyë;`k±Ý›®°É¢º·ë»Oe·pŠÖçþÄï\½ ÕûEQåjˆôøÓáωA!O›ƒØžûLe@ô½é°nl= ‡Š_+™‚Ò¶Ö—×ÕÂð…’$܃j¦ìÛu¡ËDýóóziJGžþ#›?2}î¡eEáâ—W½/l«.]ŒÛw³MQEQ¶>¢l؉}û»Þ”œ”пÆÌµ•Dl”*¹ªÅ±õ²X²Â<$iížÁ''ã`m Js©Yä!÷=|Ïù‰ªè{òA¡øTð¾Nu*óÅ~òNNrJ—ØŒ!êœô*s54š.—”Q¼g¯“Ó‡˜½Ó+Š¢(ÊL”^Ó‰Æ=ó4›B˜Jª–”ælFP² f5 fÉ^÷šù®Ž5¥‚‡`3 ø´›äÑT¡ŽËÔóå`£í)› ‰ØÇ­ÅÁ£Í,’áß<ÜÒRü<)¸½ï]¹`}UZ„ÿÐ]X §5®E_QEQ”F ]ìÉ"™å³ê³Wr:qfˆl…òAÿ®ˆ'C~õî9.e 8¬ÿÁƒ2¿h/¥å+Ä%LNûn¯ç[J7à{>‚„‹û­F·~ Ö‡~Õ-«Å¯›ºT6'Ãýý>‹aÖ[Yû®(Š¢(3¡ ‰Ï<ůw½;˜Âö$Ž ‰lÊ€Œ6#2Hçœo¹m~뮋_Àú;va¹*-;›‚Ä"ÆQüöλdò0·2•ŽD‹ÒçÄý`dî²½éV´ Ö×Ù÷®\8øT áü¹5®ÖOû®(Š¢(WÃÇO¨ð¾c>†r}G°ŠïAMüÏÛ÷ÏoÙÿ°_n¡v\e_kö>çì=gfÏ>'‰i$ Ö[õ͈Z¤äÁ>hI„\P’šBKkÄ4"x¥*±x)âƒ>/ÁKÕPPK 5ˆ¶ÑŠ5/¾ä¥ˆ¹ØìYk}ëóÿ­9çh‹Iœq§;”ïwfϬ³÷^kÍìoÁÿ·Äùdê¿çlÌfñJ¯„ŵ?Ü\¢oIýûÎð$¤0{ȇ•=E ñ LÇ—MDò½•£«õ¥#¿ŒÑÞ¸…eŠé"»EQEQ®©Q>´äúäi$r4…Cª¿&¬£)Úï}ÿ´æmì Óºã'¢YyëWL XÜç¨Î ~#Â8¿}O¦u—JW z¢ö çã¦ÐõïAþÓú¸Ù\¤£ƒøqoÄ÷$J‹óÈ’ÒÊ+Š¢(ʵˆB@hJdú ¿p™6Sy»Øˆ™aŒñ ;÷LmÞ”Öp´pø+6øܲƒø¡KÝ/|–'ñ+øÂ¥Fa•ÙÒxX#áÀøÔo8+k»ô¢ÚuT¾$üÍšüñ?¦µ+ÓÅY?¶¢(Š¢ÜüPŒìšQ’Ó‡­ÛÈŽœÉ“†•Ñä°²$c¾ûÞiÍ›2{×Þ”þ°¾²ƒ 5šÄ׿.™ቦuŸJgb nô>Lüö]l‡i9-®É^Ó ,°â—uo™Ÿÿ»ø%Aû ~nÖO¬(Š¢(7;)˜[mMèË XaS,Z5¦lÑgøU´ïþiÏíé­·œÍŒbVuSÉ}ÚÈ*o¹Ýs¨×žI™!Ôœ¤þì³p<­„¸ßKÅE§ÕwÚÁïxW³U‘­‹çš]Ôº+Š¢(Êup±N*øß?ì š1ízHØ*fKÞÌÁ̓Ÿšæ¼éDÅ2Û$ofäMkðb¤š.Ò]»‰ÒãLï.•nÈZŠ—ÖÎ}>°è}Þ^ðFÎ.¤µ1âÞÀÛ”ÏÛ’M=°ˆPìèI–/©÷)Š¢(Êõ ‡¼$YJ'®_àÍoŽYÙÄtÊëq4.~ÏÿÃÍ$¾'s‘µtñýÁ>°OÆŒ¬0{ ô±);ûÇh7°ø¹è}ñ[•FtÏÓNdœ¶ ãxæ©:ÍÔ”;F-»¢(Š¢\ïq ì"qô¸\Á¿{vâµ ¬¬b;Œf~bZ³F˜^gÿâìP&²Ð¿¼­¬zi#¨ãøÀþ˜†V˜9ž}ŒAôo×Þh†œå²ŠLk±·ÏxãÜÞe؃$ñÛø†‚cÇìdçÂ>ùÍø±EQå&'¦Ø$„4Œ qMaý‹ͳ%›u¡‡ð-bVBüâONkZ‚kBüžü•XAß›œÛ[A4¸1t,ÈŽãGƵá•CXQþ™?H}my1›ó}¸}kñ iSàPbYè>†ºþh?'ß“E‹F¬q³~fEQE¹é¡5KªYÒñI—.ø¥ÍdÑTb€¦ Ùˆ¾~zZ³Æô¢ïð07o%åÿñófîÛOãÆëίÜXV*pçØgƒIÍK±ÚÕÖ’þÕY.Ca„^™Œ??É5J-û”TðZË®(Š¢(×YIDé%G9†æƒ{Ù.’EÔ.r6ö¦¿:05ñ[™û›²-ñCÄw?ȀܘèAÉ;ïæU¥Tf‹Tàô)²ãI¶””oDÐ6;l_ßrb¥¾ÎI =”Y¾†.] ì›™¢œ|ZÃ3~jEQE¹Ù‰HË Ú¥…øtøúÓã®Wx“§ðE£Èßû?6ÅyÅ ¾úuß…4K[+H‡)e°Ó‚·nKsTñ›9t…ß~IMKß/'ÙB4ë;ˆ_4EâÚavé³y¼Ã»îó…fË‚…ƒ]¬OÍOQEQ®‰XÕ?´}ó–“ÓåK1_ÏYLÉ&g³X÷´ïÃS›—ÄÐüÃGj3\¿Ö·"~u–ËMnÙÚ8€2süÑÇ\¿‚°%±ÏÙVl*(\‡úR¯$3OvDfÙ›¹h7ÐO~Èi—‚5$kÖcç"èWW°¢(Š¢(­€>Å=aÛs&÷ ^ Äã¶=,^Ååoå›’Âm‘T:ÂÊWF襸Ak1 Sp6NÞ8¢M·ÈÝOwUnD_8 ¦(1 ÜS´ƒ ½†u¶oDÃ×.¹H{Uºƒ5á#Ì›Ÿù¡Ã°¾ÕÁ~ÁkeÅ¿mëLzh`„‘H äïé´àEQE¹*ˆÖà¯ÄÍo ¦ f€ÈöˆÝ·½[”Š$Þ½|…Dübç&~èH°¿FÛZ[g†lË í‚í"ÿù¹·¦ú[(× PÍ^vqe1øsçh°Ñ5Ög¡ô©R™ÔˆÚ‹ß$ù^̪´;(e)þòÔ¬ŸYQEQ^i8æ—Ïb3¦lÈâWñÆ[å³$~+Yß\Ûn§Ï}ÉgIüRÊs{1MG9ʺ_ðc?‹itåå‚&¨dÚ8üá¼mw’ù"‹ðyøŽÐ©¾Q|oTg%Ä>ô†þÕ·q}¥óNCQEQ”ÿAüˆÏ=GÙg‚ µ¹_Qp!’/^Iü¨S KoŒè?‹pÏeüöb@΢!3ô_< +uÓþ1”«‚%d#àQÐ@ü£c"xYÙ(Ÿhµ¦IÎ[×WÖ†-¼Eß›AøøgdN?EQE™.’ærÞ·;š!âÁíÍÏŸÇû¼$êyséÒcøÚ7¼ù·øQ{1 d}0fœp×nnOyYH[7‘³—/ðÆ[Ù,óZ²²?©‘T¹]q››ŽØkÜo™ÿô´zŸ¢(Š¢Ü"ÄØÑ’=‹Û>K>÷,›°mH1H±/a´ŒÄ ¢BërðP¶²)¿·r .~ËCfxIš…ï3`{—mƒ@9¬úÅÃÏ¢#ñåU1 OF¸iw"K,7ÇqÇq.C;Ø’öY~ðá&¬R¬èö·šF‘,Z0›M±©À¶ÑnIo“ÃXb?…JBµ}1¨`˜êd’PIoC^8eB¢ñ£p똤oáâ·<˜ÓȬƟÚ;MëÕzýƒïóÊ$øÂÈIÑ¡øMšÐãx=?¦¯›pïsÇqœÎmôÚÔ·²85²Åü†ýªUP dvz®Æ'”… ÔùæÛïÅöõFâof󽞄 |ûb ¿HØ£#˜@šû­ÑwÍš­’Ú\hŽââwckzI™³ºeºÿ—çeó5†\VjU5 ýîÄoج®ÃÝ÷Ø\VS‚Å®ÃqÇqœÎhr›Õ.oÍ–ÙÜéÑ#¢m=nÈG“pÒÎoOX^¢SöJö½XcìQØXB ²ø¡èå;c\5ïÖˆˆlž¦õ=W…«#W‹ó’h¯õ h6ãw¾'…¾ƒ\»‘žX-bÝ™øUJxò)]‘¶1•v4Žã8ŽsÍa->Y£oΉß\ÿ]‡æ±’/ßg­—¥1»0„e&@?û%)jˆÃyQËöÅ )G+u?Š•‚º‡ ¬OéøñƦ¡66\x¬ûß’XUþÈ<¿Hm.¿ðù¦TßžPÑ—0Å0Är˜Ìç]‰‡u¾ó€.2XìCÜâÇq§s´¹2f;#ë¹»íߎÑÞ[ä¶IþÉ’Z•²#/#~æŽBðØãTØêyTymW 0Ôûl²1¢b(QíÑ’>÷Eß‚³Ðñü„ÎrP‚…¤a6MÈKâæwE8[< ³:™è™k‘mÚ ²Àé3rûÛUÔ) :«—ÇÕ!nУ. «üЖäÚR!ö":Žã8ήC}¬ÑnNv">Ü„ž“ÔøQèÓ ûåÅÓ‚6‹ÌmR—†+3kµœìœóŸó-+šæñ݇0Œ1ö$Lºª—Ä1™òUóXQ¨¤¨çåPöî—­3hÎgÓ›ø1-¢rÇqg÷ÖÃs'×Ï7¾-±‚PQu%X¨CöùޯͲö™³¨º1\4ÅKm¦(ûÚ Û7é|âãXç¥ZŸ–¬³z¥l}«TLf+kb—#yàáy[;Îâɨ‹Æ‚`Üá,9Žã8޳²X@âÜÖOœ„X[ëã®D‚C…eŸ×§“ÏQ« ª~Îåafi³ÄÒŠHÒOö.iîPB-AÅO‹µ)k¨æ¡>zk‰ëPôäuwBšKcaØA«HÄæ~;š ÇqÇq–Õ0 ·s°Nþ–`âWw'5…¾Ä>~è£ÙÔ `‡_y7€­öQþ©ø%ÍKÒ¿ï~ʃùž¨W‡Aw¢Þ—r¤æŸ¬jèñ›ßj, „A¿Ù²PHƒqÇqgWÚÊõO›8ZW¿÷+ÚôµÝw%ó²'ÑÕRÿIV—¹ðN¿õÿ>Œ–$« èGs¦IÓ2ñ?—•‰&Â:•c ƒ³e!Ũ«zQÔ¡V%L0ê,zÓ;$™„6“ú'1£ž,âqÇqg7Á ‚‘Øú¸0ÑŸÿ4 SX«» ë&ie¬rB¯¾þñ< 0»ù½ØÄ$%=X€>ê}ÆšU)úRª§uféÜúy¬ œÚàá:þÑÕú o ²é‘FH{é8Žã8Î.[© míÊÜ ðmïâ0èJ$$Œ¸¤0‚PIì7ï¿G'Ìâà\²µÒÅY»Ž>-Õ’³:_µÄjVõ =ntU¯´¢¾·)¡Æ•U:x—F‘÷$í΀тYèžF˜v2GŽã8޳ûaæKž¿ÜÃí3‰è¢;󒉪…vsÊŽaÍ<=ü‡u “¬õ¬‹:[˜€jFì/£qEšº¬Ô*üú}Ùümz•f&ŸùJ¨»Dî,çY­²bùžy•Ý“rÎÙúÕ3Xß"¡×•àiq%ÖZY¶âŽ´.µ¾DUÊÅÉlu*¿û½Å‚‚ ;œ&Çqǹ¦Q+kýí2ÈKMï"ÎßüO“<GO)‹‡=lš¡œú»ôörK±Ša(q‡¾Ä1˜$ ¶+7’:F1š‡‰èeèa±Ožú©êDÎÊCÜi_’+hîµëkgå6ß#ˈ‰žÝ\ÚRózæ×2z•¹w¬»?µ>­KS ­Ä… +ç> •Šëò±O ͳõ5;$Çqǹ–¹¤³½ˆxá¯.T»‹4ï’SˆÙÆÂ¹0+G£Âqø“jhê+ µ„éA˜¤rÛ‚‘ì‡##(7I 0¬©lÈôµò‡ã"³ìœ9üp5yÛÛ˳½~NƒÖ w“åãgOJï:‰}ˆeSt'~¡ÒB¤Õv@óù,ù•¹ËæÍxú¤y§­ ø?rÇqÇùo£_}ì•ÈžœÓ¹óþvÈýûòüP|ŽK ÂÖÖ›¬L ßj`ðÛß@¡â·‡ŠaÖ¥AèKØøûõÇQÇ|fÖçû··w¶Û4¤PZEUÉK« FBNœ„(j!ÞQä,¨¼% x Š*…„? *V$)H¶Ï‘PR‰‡FA"ª¨ùÒ( *€“††&ÐØ»;~|gƶ®‘ÎÅålãz¾Þ[ÏÎÎîÎüö$¬xe±ÀP.¬*Q`dl,ÿªùÇžÒS7a??q=˶ŃD%*Š‘ÞÉý®nH¬›>þ ½ñ/ÈG’rþ‘”¿¿â­æ(ÔEG`>gïYÿNË~ä õÕÓ¨ªm {;?¼5¯>b•œU4]»¤¶=GJ)7=|'LÀ_HHHHHHG3999:::>>>6—sçÎa?Þ&8å/¼uë'&&pùùóç©uÏïÓ4¿É¥K—þ¦[pPnp•…ß}e H/ÿJ[ 4 XiH(+.5ÅjyätQˆ5+¯£_‹²duõä3tûޤÌ>2Çår×}Åc(5½Ê¾©Ò: E7‰FÆê:ªO aºÍ’NÁOÏ^EU¨ >—Si½¾òG|)4^ŠÂÇ~+ôüÔBBBBBBB:‘ýû÷ !cØsÎÑðûvÁYrk6›­×®]C¿Rö/u«çxæÌ?8Š¢þþ~ÛëðgHÛ¿òÆú#'•’Ñ;?­X=ãu˜XB¬š‰E#uw-ÄR#¸‚ÇŠ•ÜafQ‰Û,ÿüc”›ßÚƒŸƒ÷ŒkY÷j£ß~ƒv|ž¬ÍÊ3¨ïEýµÀa‘Ø¢áÝ~ܾPeß)xoÕŸOw5Ì·bø2àØì[ÉÍÂ+ Yd[±çž‚íàç-766ÖÚøðáyãÑ»Éç¸gÏžùÁ;vì0Ö}dÅåè¥54 °_¾l@>Ñ•EðFL¬—xq±À ±@/uÃꩨe]è©IVW"6¬,EcÔºÇè׿Á<àžå®ûJ'ÅÇÀ~9ÞB†Õ¿ú }ø)É*Ê:¹'å _Åwl®K^ëü pr{ÉÊdïC}ôô'(3’òû/Ínkñµ„„„„„„¬@¶oßî…vãÆNyÎa?>>ÞJÄ7¢Ó¯u¤ÏÔÔT+&qÿ¶ÏöôwÞËyD%·öH:+ɪæ‰ENT6Å ô³3Ú?“7:÷èг{|%bÕ¹:·‡_%✡ìh÷QW5?ú‚Zé"…„„„„„¬å, ?Ÿf³ ËrǯV«h Ñœô|æÛ›6mÂÝŽ;æo;00ÐöÙJgØk2_z>e%M‹)Jƒ nËË™ •ñîŽÁOÔ +jQÔV• ±ö†U,EJÐ÷†=7»›Åž#,ì'Iaû_+¼lqkÁËPvÊO\«·îÒŸ'V×<&T×$ë!Ñ /5ü,¶Y"yÍüáGÕ­×ma¥Yx!!!!!!!K—÷„\711áÇŒŒŒ\¸pÁ#ðìÙ³ócŒ CCC8µwï^´ß~†tJÊ"E’~­µ>tè …½{÷ütb?22‚1½½½Y–¡'Š" °¿¿¿Ým»?`ÑFÿõõ,þ”Ò)xh70ñªcOm³’auÙUŸæÝ&ЉÕr–Pã ó½c&—ä°ç¸«ífT»ÉÿF¹BÒíÛòË_Í£X‹¢ÁêÄC©¨[û±F΋ëòz û±d©áçTÖ;÷šT[OKêÌÂðs¢f³éÇ ãðêÕ«ÜåäÉ“4§>d÷îÝèA?8aÞùwæ&‡r3\-1¿Cßø•×/çÒ{ð³ÒÃÒD Ewkid+°Ôð³öÛø¤¹{ ˜v¤Nñe1+]¥µœ…áç3>>Þ ?dË–-8ܺu+ÍáðæÍ›BtNNNúN ‡Û¶mkûlmœú”¢. Ý§Ï )«$©¨An`ÆJàz–Z)Ê‚0Ñ<®Ž~WÞý›]•œ¤m·¹¿dMî£ ò'49äø“fî=»™wÝg>Ê?‡ZK·iãn¬|Cã‘ìa(WÎS6S7ôÁïP±× hË"ºÖM³J&ª9ž{%¯“hÌˆŠ¬®W¿}ÅŠ¯¥^´Š$òËûƒß‰'|Ïõë×é?ì×mˆWð33»Ù½ï»›5J¨´¤‰µR­±Ä"&a£[ú!¦öK‘–bãRQ°%à׈D[êB@A?D·Dê7_@²´ñ‹1¶†ÄlŠÍ˶Íê6{ÇÿsνÓën7in²{…}þ9{÷Ì™3çÌÌsa :t褷}ûö8#qÖ_iYßùå]}cÈø·fÝ÷zÕ  «‘¥¤û‘j¬6`ˆw©P6ÂtÞLO>­Oœ$ká]àß-¹œ(@,¢—†¡ƒÉ-êèÎÅÉ<­ý˜¾óľèrß¹6Û—:¾Kåñ¹¶ ;µmAy¶¡~ù%ûäS48ŽwÕ†QRín«þÞP)l¤ðÞÝÔWnrÕ4ý+oãÓǺâ]H$‰D"éOzƒßÅ‹³,KÓôàÁƒÖ²Ú¶mÛ† SSSèÇbÂîÝ»WZ–`B–‰ø X¢—_òÆ=$£Jy6Fj¬•”‰ÕŒMÊVÁN£@¦K+Œ@µÑ~d‡ýîý쫆™E]x:ÇŽñŸ3fm½yGÚ{KúöSò6_[†¾ »pèœëLu¬;>ó5añçùCó>6§ù7ô‘Ñ'vQZsÌãªˆê «vH¶êêó¼iͤø›VЃ5XÝ}ï°ôµAô\ZN«Ó‘H$‰D²öé ~ÈÞ½{1²eËô?ŽþàààÜÜ\< Æ$I‚ÁëÀŽq‰¬ Ã#9”àÌJÜUc½¨1JÇŒZ}ÃŒ“aLºÁ©!8›ºtˆTݨºÿ³ôÜaúÛߣñ‚_±Êšóá<Ó°-ؾ8ÎC–¥‡M¾lGqªïøÎûH¾bæ$˜ä¬Ž±®{Îü|ZññÖÐûõ@Igu0Õ¥jE'¥(½µÁ^w£dàlñ‹ÚÈTN3úÊ7BEñ¨Ì`~G&œ²ÁqH¼dbbb¥e= pmx‹CÆùèkϺ´bUÅ&ÃVÕ(YuÀ{”–½*Az”@S£¼¯ª’*»¤ÞRPV ·aoÿ°yúÿË_Û½I–oÊeÔ‘³¬8Ç0Ò@8 tøgÝÞaWãóÌÈ€#ïøRr ¼ˆvù×Sfêˆ{èJ?`Uƒøn˸“Ål0Ü0\Š»­GøuylÍXuIµ Î·ñ…ÇðáÑQÜÓ><¸÷Áºö¦¿²‰D"‘HzMoðCšÍæèè(÷ïß?66†Î±cÇŠ³ø+Y¸sçÎ÷v&o(ç~‹‡4™<ˆ!·Ö{¦Nm1Ùþ‘j¬6`(i,¦Õ<«Ûˆ‚÷jyZiòl˜’î¤Å¸jbþ°ÎªvÛ=ôØãôüè÷ts—˜pQ­8ô;[çÐϱ{ÙBq&ÿ¦#ÜH—Þ ?üÅžò½Û>ñuÿÍoÑ‘ŸØcþtB¿òª;.ϛϓcèêÅ}åMÖÝé×ÌŸOÒoçö ÿçíWŸÍ?÷°½í.?€‡-yÞˆ»‡7P ;ÖtgklÚä95£Ê6Üj½5S_heÏwU¥{haÁ[æ+×0ˆÖ¶Ìž e•H$‰DÒ·ô?¦ÑÌÌŒêäÀÝ—`Ó4Åú+îí¨ÉS!`ÏòHT‚È]Dý×/Ñ5IæUcµÓÊ ©: PÙ¬¢“!p ûBP6`Öj¥C”95¬3` ¬»¤ÐÅ}lÆ` ô ˜ì´¤[˜•°r$SÓ½3™;AU«éŒÉç0’Ârè ¹´gbšËÁ¨õöÊ˰·ü³É8©a¿c]™³¡¬áSó§ÕÞã·cö‚\ÒÖÍ|]%‰D"‘ô–ˆ·‰‰ -I’~q¼»?==]À¯û¬µvëÖ­ÐNÞ-·âs% ºw½°é…0_d,™<ðÏP‹G^9EwÜC ¤W3j„íÇ ÙØw­“æTo¾¹¡zØO˜G¿´h®F§çÎ[®·f®»6Ü%‰D"‘ô+…Ä ›®Ã§µ¶˜Ù=N],.,ÎvûðÖÅ‘¥[8¶V' F°SÍk³t÷}.5I…TÍö›Cë§Q l—Œ"5–§5ûÌxŲÔâÿBðס‰b™¢„‰D"‘Húu…ëèÝüVœ]Òéþ\â½â°ÛÝ»¼ÇxÒph2 ië‚)е—çi×6){Uí»ˆÖI»ª)«;U÷YÕŠ ë÷6 µA‡Õç(÷:v%‰D"‘ô1Ø–«o‰Ð–Èpy Ýuó¯èk­—¯ùÞc˜Žyæ_ –³Q€þj‹ý2¥ÃÿIÊ&í»ˆÖI#U&µ‘*Ì_|ëÃw\ú>ÚG9Yê±ð‰D"‘Hn]º9;˽Gÿk¹8¸‡×¸vÉx/öóÜ i^8 Ì)ôiÓ^Öšo?Gj„Ô†¾‹h4JJùÝŸ¤S'C¸::˜µÂg3È‹åùÉü$‰D"‘ÜD ‹à@V”ÑBç…i7z»KK”4ZI™;ªLªŽÆPQ ÈÐ%8¬:U²iÕ«Fú.¨ÿ“fC#] ï‡_]‚q~­¯¯«Š—æñ2÷>Eó¯ûP ®‚±9¥K$‰D"‘ÜúhÀϳþòÿ²[¿¡²UeÇ×Ú{Î93{öž?ç\üó&½Ú%£î2¨„ Ù‹Š"%¢KE…Z¦”FI”E½1é?‘ˆFaozQ$e‰Bþ`©i™‚ÔM½wö^k=ÏÓïY{Ž’ÅÚG{¾w™5kæÎ™ýÌyñ‘”ÔBñ¿‘ÃçŠÛ!¿nF®†•4p ¼W6+7–ž7®å4ºÁŵO–èmÓ &U}àß,º0³‚ãH©LnG'É>OôÏ(Äjoêx%}ÑägY–eYÖ³s¶žBƒŽ”X÷,±}Œ/¹L\Õú‰ø° »­ ’[¶ÄmJÑD¨Ï͸˜§¡¹µ–¬I<çb‰q±›ä‡NÄCÎxvÞ–¿ølþÕ˜týÑñsõuý‰~–eY–eYÏv”±&±Ýá^ ßýž,Š/£ÒeõuEÊ• 4@àh\#n{pqí“•7Åd â8šcPN. Àitu`QÉE—¶ËÐVâeySRs‹>H’8øaY–eYÖóµ•Ä 3õ8©±ï%aÀAûÀýéMo“¢À^MÀž›‰[’‡ᜱ.ß .®}²ÀcŒHüDô!fµ`¿C˜˜Ÿ¦bÖžvßòÃ<]%^«“×…‡1£wÌÆ>˲,˲þ;|Ú£Ôï{Šô8 îprÓ7yût¨F|™±×`Ɉ«¤hN¸­ÁŵO–ÀÆn®žü,áD¸ÉnG.¾¼}ôQÌ”óH[ñ N¤ÃVoç¡sÔ øç`Y–eYÖó9Rì# ìÆ–¶±ÏcµÇþ*ï¸DÜr50Cn+¹&ºet3ñÍàâÚ'+ã઴¹<àqµò 9üJ¹ó¶”Âzâ,‰ól%{„q§(P_\ ö×`Y–eYÖó¹Œ:½†õÝÂ0‰E"3U”…PJ¸ýGÝËÎׄÑ»‰¸åªoƃ‹kŸ,ƒÝv‹Í¨&7:qàtùÒõ-­Öƒ j¼(A½—Ú˜mâÆŽý·€QgZ–eY–e ^‡ŸØÊõ7Ɠς÷ÄÃ~ÓèjPPºJü2èChÊ~¤'nJ~Ê:䋟G·\h{\ä¶Ù5ºñuôØà2gI¯n”JÜ⤖¢†õÐסœåk¯xó¤pùGèô¨ú{³,˲,ËzúQŽ+!~ü1þäµíòÔvsƒÊ9ØyÜ¥ v‹ä*¼1€2© N)烋nÏ —SõûµèÜ4¹¹¸%¹IÕ0-¼—<|[uE£Üus~×ÅrïýJ> QZ1÷Y–eY–õL-C L‰Iù»|øSR*nGsŠD EE`´ÅnÆJ¾iÆádhÎíuu£:àrŠ…èç¯{²Âx ·^/ªõêX80º¥ào½P~{F”R`‰˜Wè‡fY–eY–õ\‹{Í%à†ô‹¸ûÛƒá×Èö!ЈʆÜ8”µ¸@å˜7£­¸1æ|"n1¸èö¸p ¸v0m“Š:lÔÑmQ1%·Ýú›°5!7’íxáûùž{T|BQ¤Ã°ÓéX8ô×fY–eY–õôË„!5 pRþAð/;Æ_ýºœyº[=ðjru5XJ> NX4ƒ‹n+º®BÜXFóä–­›K±A»‰+b×Ä/¤«¯‘‡þ’“²‡æÁƒ̃~g–eY–eYÏ,jÙ2 þõäû'qÚIúÁ­é H¹Èü›èçì°–z[4ÉWƒ‹n¯Ëï0øZLWn!½Ñ¢+À׆üL^užÜx³ï˜{ÞQ'y(ýthwbœŸ´,˲,Ëz®µÆnXšÔã3pp†[‰ ÿùúôgå´—„ì À1¼Gº™© ÝÞV*ÊÖWâw€=)'⦫ӎÐUãßý^$Á,A80§CÐA¨û"KÛÏ+aNH;àWfY–eY–õÌRÑ=±×­Þ0é}’]êkpžô;¹ã¹ôŠö”3Å×€S^³ÁE·Wø¹¥ø†Ü˜O9$フoý wÇŸ¼ê<Qìì‡Ã<Ýô¬Èß”eY–eYÖÿ<臕C]G?ûyúÀUræañ“äÇÉWIe5¥ÄK^äjñsÈò³äšè*ˆñ)ˆ|rí"-¿[~±¸Š]…}ê_¿~eÏN=‰^^€ß}“Ö¯™ö樂´hð1â‹Î‘^É?½MV­ú Ì㔀:˲,˲,ë)áˆM‚˜D7±Kü“\÷eyýÛe~¯¹Õ°›wåB÷ YQa‘›ä‡uVYÕ?Õ? ®‚ÖB©fËlkà·^ŒXù=›üžý9tWƒy+7á|¨Ïê‹kÊ>Ìœ©ÁQøó”Crþ;ÛoÜï»›D¹Çù.0E¡4ð@-˲,˲öi±0'Ö{ Õ)žbD8!¿¼K®û T!7OEv½·‹½9Ah~¦·½èÖÀË~ë_³^Ø–|ÅeÝ$•S¼ç§X7•rÆ~Å,®µ©Ï¦þüìWÈ{.‰7Üî¾@MùcK^J>‰ùÃÇ5iè±Z–eY–eíÃzîéMSˆcÂ&éãþ‰»¦¢–~ˆ¿ _÷59ú>9|n;;yULīШP¼í2¯"¸ÎW4ª©l¢Þz+ÂõÌÞ›èÿÊçy:zÙl茳âßBW~œ®¿1ýâ×Ô>J¦ÚÚ{„Ï%„O$ßéSPl¤ÝK²,˲,˲þ=V)õèãL§¤Ô ©]öÔÚ½‹*A…aþß?ÈwÜ¿ýùÌç⇮>~ô¢öµoNç¼Z¾T–/àñ«ôົyp³®\Hsªœt½\Îy¼î‚tô½Ý]]ûÅø­›å–Ë}òãÇcÿëÒú·÷·©ÿ¨ø{)ÚÝOµëÁ~1ÿ‡«µ,˲,Ëú¿âKBê9éHBXNV"A•X¢*Pÿý‹Ýzj 0œ¸ AíEA,­ƒX"ˆ ¤·µ#‚m ÁNT°°TDÄH [A°Ð.……)4A]Ï#wΙÍ8žOâ}p¿ådvvÎÌê/óÄjÚ0FVÝù”á­¶Óª0¨Š²Y÷U¡…¶,ªð\^Ö^ci°Y]í­âëe¬ÒðùÜlR¶·j„K55v?|nÞhß/ÿ‰#À¿]›TM)…0+šQüÛhû-ÆàRÛdM\ "­üTÆd‹‹b76Ùöeÿ6Øêvªl?E“mu]}‰ÄÁ²ö6EªÃfe»Ñ`Q?ñu[{Ù¯ÍÔ ›™âoøÏü·¤vJ>e諺\®¯6óšº[*¾~±hâol1ËÊA!¦œ+»Xµ'ÅCÚ~kÏ\>¾Tb•å_|Žßª/%Ù~)ê‰1a«æKù'þSÀ*©ëºóLʲì,ëŒÓ ªªá×Óü·^L¿Ö­Î[ûðÛB\}«ÍÒ|gAòæÍ›'OžÜ¿ÿÒ¥KçÏŸ?{öì¹sçÂàâÅ‹7nÜxøðáÜÜ\¿ß®Ä\Ø|Ťüáéü’c,ÿ5.ˆõ5??õêÕãÇïÞ½{Æ ###£££#™Î×`lllóæÍû÷™yðàÁû÷ïÓ¡eY®xVQq&,P}«(µ_¬¬ÔZq¾ßïß½{÷È‘#[·nÍ».Œ×¬YùsÅüm¥ ÑxáÂ…—/_æ‡v.“®ôý.à' ÷U³³³‡Z¿~}êºØoaÜI»\*ÀT†y öz½4³oß¾Û·o‡óö‹ˆ3ª`u•e¹”UÖâââéÓ§·lÙ+.·Øoyõ¥ñpæÅŸòg\ÐynÛ¶íòåËý~?žžG üXE1«âs~~þèÑ£k×®ÖëõRÈ¥¨K!—ÿ:ÜuÅÃût¢qûöí÷îÝ‹WнŸ1JX-‹‹‹ÓÓÓãããN‹©–:prròĉ×®]{ôèQ¨Ä·oß¾~ýúÙ³gwîÜ9uêÔž={&&&F¾–ï–—^gY ©©©………t«Ø~ü†º®Ó3úôéÓ™3gÖ­[c,o³4³wïÞ+W®„Ìûáæ?~¼~ýú¾•|1ðòÉÎsãÆ·nݾ3¿*ï¨ÇïØ±#öØp§MOOÏÍÍ-ýD}¥uëŋǎ›˜˜è¤]:«3™ Nž>C«“|ÁÔÔÔóçÏC}u6ùÎþéˆøV˜|õêÕáÇ{½^žyéˆ0Ÿ§`çüðáÃú‡ü„[XXصkWL¬¼úâxÓ¦M7oÞL‹ãó;Õ—ï¼´Ü~ùú§OŸNNNæQ—c|æóAlÂ;w¾{÷îgŽþb¿ÞB¢ú¾8€ë9ãÏîi=Tt£´^¢»ÐèEdõ"dv¡Â—‚Šz°È —¡‚þvƒÒ }©ì¡zèb‚ÑC„ѯD»ç4ÿÅ,Z¬ÿ>ãüõÇù~6ûœ93®‘½g}7“üFãÓ§O'L˜`0ZdáÂ…>|àw.A3^â7êKzàܹsC‡å¿È Sç@º#÷—Dõtttôé?`ã0VWW7bÄ ]´$nmܸñû÷ïÑxaÏÈr=qGæü^[[[çΛ¦ðŸ–ØÉB¡~uÙ²e}ùÔ8w]¹r…3•$=móæÍ‘HÄùŒIð'zJ‰|Ÿ3á?ÊÊÊ8v2=÷^R&;vlýRBmm-å½ô¯8.Y²äçÏŸœÐtÀKö¼tä“((y5ÿóÏ?Þ˜g ÔGãÒ¥Kÿÿ¯0Èx3=­ñãÇ·µµoéoTÒÈ‘#%…JaºBž—••ùPÀß0º¤n®ëöô@?ñ†·ÖÖÖQ£FY–¥ÃžZõõõÑÿ]®þùâÅ‹1cÆèJ¼ñ&UUU¾€Ñ+ù’Fi»4Ñ—ýJ§>ÇqhìììÌËËÓQŠ ÏyRXX¨Ï)>Ç¿—/_Ž=Z—gÌÉÝ»w}+  W팾ÙÝÝ- øAPŠŠŠ$AQÒ3ÂU(zÿþ}Ô÷Ô§wDSS•7øñäíÛ·þTÐ+‰|ÆMÇÑ/!þAû#—7nÜH‘EÙOG¬;w{Bá rúôi#õI‘™™™‘HÄçªâ’FIO.¹—/ø†V -¿oß¾åääp‚²m[F±š››å-Q߃Ÿœh2gΜ¸ÁoÚ´i~–Ð+nšêeÜuèorШ¨¨àødY–ÎTÿx2oÞ¼¨ {<‘ë[¬®®N)ó 6àèµ¤ŽŽŽ¯_¿þC“/_¾ðH—‘H©üG«®­­mÈ!:G!œ³²²šԧ¡×¯_óÞ …B²§nÞ¼‰…{Ðï?rrr¨7Y–%ýT&sçÎå·H{õFG€¾Å볪ªŠ#¯LN}z‰ÒýÅ‹[§çxwL™2EŠä:?~Pº$ïéËÆÆFÝUuo¥ñÈ‘#ÔËøIÉ~>ÈËËÓÙI¯O¹ÜµkW°'ÙMRMŠ‹‹­ôéÓ§àj€T§ µNîMºŸÊ¤©©‰ß‚Ô~jnn–ÔħY¥:PUVVX¤¤>㲺ºZo¥ÌÌLïÃþЩ/‰Œ3Æ{"++Ëu]iXè\à›£GrÞ“˜'ÁOŸS.^¼HK4À:õn’ÍòôéS½§¦OŸŽ½þ3"õõõF?¥V%M¶  @ºªnpý-??Ÿ×¤>èÈÇ“k×®['oß1|‡&]]]ºÚU«VÉ“þ“·}ûö´x¸g…Ãa÷úÀœB¡wAòDæ¶mߺu+À:u–3vǤI“¸N*²¸¸ØïÊbt{úõëרQ£¼íUÆwïÞEUêCüÜ¿_Ò—eY2¿yófÐÅÆA{díÚµ²§>tE¢\×å‘zÓ­[·âF>6cÆŒ ‹…uöìYceö´P¯_¿>0O"åååRd8ºHEÜ"¥QnÙ²%Í#ýÝ»wZ,¤®;vð"4–¥D>˲øþÅ‹fðkhhØ·oßž={öïßßÒÒ20‹€ÁMºã8]]]C‡ÕU÷Sº¼}ûv°ÕBÊZµj•^–zbDÁS§N]l:æ¹®ë½ àê>܉jjj¨{Ú¶æAñ/##£³³3èb!Eåææê¼g¤>9ž]l|óx¤sVÐå@J£~´aÃÝU¹™J\±bEÐ5BêÊÎÎN‰ÿtܺu+‡«k€—ƒu¢ŽŽŽÌÌLÝ@¥ÏZ1•••hX”IO¯UgÏžt±qðÞ¡Ñu]}ÀOÒ†.\¸ ;)%=còâÅ‹`K…T–æ!+Ó0dÈÇq‚®7Izˆ| nCkÖ¬¡¦™žž®{(_Ò8nܸÙLa°úM¾}û&+ÓX¢qo¾zõJ>DF9ãÄÅý"êiú¾Ìõý$Â5üøÑ²¬¸©])¤„¸›ˆ¶^ÜÈg¤A¹ ‡Ã:òÀ+nË QâŸLÇñ>™\ª««mÛööV¹¼|ùrT}e胕7õéUª_ …BÛ¶m“éîîŽþYºÉ¸7À½£¡$QáÔZ[[{ìØ±C‡í‹)---)))..Þ´iÓÆׯ_ßÞÞt¥*tÞ“×È‘#9×Y–Õkü;v,íY^Ûò!r `ÐI/qê3:T4 û AùšÜvom<мç&º3yòdÎu’'—|çÁƒúíI·+ÀOFŠã,ÔÝÝMsß¼ysçΪªª²²²•+WNœ8ñÞ½{ü|2$Ýgõœ¿…· øC¯½ùóçKê“t'©Ï²,ÿh,//wczú@ÆÝAZżp8|àÀ‚‚‚©S§†B!ÝzÝéì씞’ŒÍ…“-Ï)ëßEþÉøÕ ¹èµ§×[aa¡íâÎecfggG"‘€¾$É9@è3kÖ¬¸EîP2ä'“±³èà—à>Ot$ðÓ¥K—dÇIäónI½7óóóõ'$ãö€þfDÎÎNi.ÒhŒvsþüù(Ú @zöì™>mÙ¶ÝSäÓ=zdìh5×uyÞÐÐ@íò,öŒø×ÚÚú;&ز±_¿~ >\ïDcWƵnݺ("ôL"ÏOœ8¡ÃõÿHVVV$áÎÂïÕŸ}eùòåùç=½g>|([{â’±zõjo£áÈÇsz€ãàÇ#ô9Ú\Ç·mûo"Ÿ¤>,XÀŸ€Ôqqƒp‡&Æ ãÔ'aO"ß9räH4Ö•8õ¡¹ô“'OžÈîÓ;1qö£ý{åÊÊ ÎoMMM=un(4Þ½{W÷š#ûô9Þe'N¤ hÛvâȧf4™0aÂׯ_ƒþ0@uwwóäèÑ£:ìI¡‘S_¾|‘àÇ“ß1U0ñž:xðàßD>ïI­¬¬ »zÂáméÒ¥q›”úf̘at×uƒª`Ðkii¡­gÛ¶Þ½âç>|È"4¾Äž€ÁDÿÄÉñ‹Ç!' ®ÏŸ?S´óöI}4–””]&@ qgÑ¢Eö˜ÞÂS¦Léêêâß:þé£OÃO &ú7~âx"Ç[™à§Ï‹þ9ÿù/ûÕSEׄ1€"Š/öŒXK¨DcI¬Q䇯[,QÔþ1¨Qƒ%;ÔX[Ñj,Ø0*‰‰Š5 ‚¢¢ˆ¢Rý¾ý&L¾É¼çìî½\ñî^ØçÇæìÞ½{fæÌ<óLR’ ù°‰Ðww÷„„£-µ`¡aáØ±cP}\×É :åïÌŸ?Ÿ¾Cc¯q®X°`ÁBÝCieÕG  Wxx8¶®ýpMOž>}j¬µ,4(@yeuéÒEKï ÚO–©©©XãD}–ö³`ÁBýH>ÕçœåpmñžŒââbOOO’yrû€'>>>•••F[jÁBÃðÕþýûù ¦#üàêîîÎo[´hQPP@Ôg±Ÿ ê¸öÆÛÌÌ̘˜˜¨¨¨´´4ÅÒ~ Š={ö Æ£®!t¸Ž1Âhc-Xh(àSjEEE×®]u$Ÿ\­\†††âȆ¬h±Ÿ ê8§¡„uuuõ‘#GúõëÇõLbb¢Á¶š %¶ *@º¥ÅªU«Œ¶Ô‚…>½ž8q‚£=’ÿMzÏ~,X¨OàT™’’Ò½{wYÏ4kÖ¬´´ÔX;ÍÔ•+W¨Gª?¼pá‚ÑÆZ°ÐP€òŒD0ÛÀµT¯Sa^#)˜œœ,Ö‚ ê€!Ÿ?>bÄNzC¦¦¦m¦Y- 88Xèªøøñ£ÑÆZ°Ðà@ÃlVV/RZËü&_ðòòzôèI>Aû¹º üo ø­üPøÕÉÀs„­i!ÿä|«l‚Â9gøOô~nÍ!Û£jÆÚ`ZðÜV€jô´*Bþ®KKK¯®®^»v­§§''ÃF5à ¹cÇ­ï 5(¤>×Ii3ð§°»ª ´8pà€jã"æïïos_^‰fˆA? Š­rp hÑ/_¨f‚?ÈŸ5ÜrU õÿk¿ý<†{M6üþý›®€åË—sÕ×èÿ°©úð/~~~ÅÅÅrã6ƒ¿æñ>|¨¬¬NÖi^«žãjŸŸ_^^Î;ŽiBh‹ªlCïÔ•¦ÕâmXh¥.œõ§OŸ„÷ë%t&­NÏy0qÉùþýûëׯïܹxfÔ¨Q:urwwê˜8q¢©2“‘D‡¬èáá¡E†ñññ:Ÿµ‡óòò***øûŠ™2MËb!\¼~ýºE‹ÔA0n‚êÃëôéÓÝú•ƒV'CßBëñá·oßrssKJJøóÚª ó¦Eûèéù—/_rrr ¡ÌËÊÊ[ÝÐðCÄv©Ótä¦ÉGè÷ïßOKKKNN>\ƒC‡]¸páÕ«Wô÷Ñp è8½¿~ýêÕ«¯M}Õ'cذa˜'Š7’%®9]ùÙýøñcëÖ­;w¯}}}áܹq¦³t‚¸õ›7o-ZÔ²eK0¬GŸ?V\jÐBJžŒŒŒ+V 4¨[·n+W®üúõkŠXaÖÓá%(ð]»v3z–Ã’%KÒ¨¯àXøI•'é!œãË—/Ïž=;gÎ8A¡û·lܸÑYiB•¦ÀýÄÄDooo’.¸à¬ˆk|´oóûLuz~ñâÅàà`ølù¯ü»Ñ¨~Äi é¢Zƒüè zöì)4Tørì¡JÕ¡ÏhɰðöíÛQQQ@¹”Þ .”¥¸oÈ–ÓY1&%%Í;7 ÀÓÓS¨‹þù§ÿþ“'OÞ¼yó;w¸Ø¾l„Ýåc•óüñãÇÀè/°9K Êm??¿íÛ·WUU)º-ƨ:ŽÙ‹#-qMPQãbÁ‚Â^.'ùÈÕúðáCTÈtô€-[¶(N?_Á¶¸¸¸&Mšð<œ5k–3íq”~˜›xl©²€Q‹ŠŠµ¦ãÀ¦\«5N‹+W®L˜0¡™bÆ$…ü÷@”%p—ÐîñæÜÔÔÔuëÖM:µwïÞØˆC t|-,®]»f„ÿ‚pš“?þœ9s&OBtA‡srrìÙ‹ø&µñãÇó˜àãÆ{ñâ…–…†€là%C€‡wïÞõ÷÷NYK6Ãí½{÷lnŠ{ ‚¼.½ª%)ޔշo_¯°!BQp!¡˜ãkΈ3gÎŒ9²qãÆä²Püˆñ§–-[‚ ~ö왢‘<·<ȆÁHàäÉ“ÐC[·nò®œÊ„1–÷ß(iÍ#ä°S&ÇÄÄ (mcB^ïÞ½›>+‡×µ pàôéÓÍ›7'9ÅÁOÎKq»_¿~JÎRŽ&//O1SîqðX]¾|™øSµÉFEEÉÿu8ÚBûàõž’’$Ø@MÀöŽíë*àºN@eeå“'OöíÛ·xñâAƒyyyi>gBÌòòrÅèn®°€JÉÏÏ ´‡úmÚ´Ñ/1ÕFïíí-wdT,¼ ˜gä9‹Ïð$ߌ3ø|$è=ÞJðQ«««;¨‰òÐ$$FA¸téRWìœ%–.]*ü×ð<¯ðpq ‡•œœÜ­[77¦áù‰ $ g<Æ€VE7Ê/^M²f7nÜ€|nÚ´©ê Ž`…ºI Â5¯ÄÄD¹^Ì¡u¢mp¾aaaü4uØ[ÖºÈùééé| Åhâr|€|€Ì§—3!´Œ?$ ¤¤dÀ€Ä6BBÆÆÆr_̈-ØSåW\\nÁŒYZZª¨fŽm͇Y¼Þ¼ysðàÁ´»pÖܼ¶mÛ¢1õDS<ÈEEE{÷î7nœ'|™ü… TþB§` xÍÞ¹s§U«Vªì'xÄIoìØ±6¿Ï×0Ž >œç˜V™3gNEEÅ_€múÙÿæÍ›ÌÌÌ'N¬_¿~òäÉ;vB$èXÕ<‘ׂ 0222Œ†µ0eÊÙMa=sæLJo.¢\÷îÝÃQH`i75y  zôèÑÐIM (À$¥û÷ïïÕ«—VZji!9ÕáĉÅ$.S!#ø0¤ÔºukÙ-ðNðõõÍÎÎæªI1ãµ ›çÎ#q%ä3Þzzz2Ä™Z¶øþý{hh¨Î‰@Áš9ò·nÝêÒ¥‹`¹a·šNqõêÕºò…ò3ÿÝ»wÓ¦MÃM±%Ѿ8ËȶÅÇÇ׉%æ5,ˆÏ¥K—"""<<<´H³ŸLòCZ/Y²„¶3C–ž:u æ n¶jfʬ¸mÛ6}ùÊÉÿðáÃÞÞÞœ0u ÀÈ‘#ËÊÊœ5pŒŒ”g^>u Â@v‡<%uÀÿ Wˆ(OC€Fо}{n•œðx={6ÅMX¸ Ú+W®”[¼PÔòOªGrôèQcã@»WWWã-¸¹cÇa´æ;ò›ËáÈfø`+@'ÓÓÓÒ)L×?ÿ?Ê{¹ „àܽ{×ËËK5BKJJ¾ð÷é MA5Eùº°°Ð9öÔ±±±ªmTî˜`¤µþ¼”HõÁJ¾yóæZgJ'+6tèÐ?õßÄ€°@p<Ø»woÕÑ—ÍÏýøñã\ HY´hù%8ó‹ÍïCÒ–””Lš4‰SÞKu¢t«Ñ~ØD žQ‡´xF«ÝkÉ~›I"̘1F ªª*::Z'=¬Y³†‡Îå››ÌOSÐꪴ ˆÞ¼yó£åìNÌ“’’âçç§:¹PêÚ#ÿä7!€´£™s€“ð¦M›åF¬°°0$+Áeh(†xç0òóóÛµk§sôüÄajøñãe5ú.Ü:ú#¯—ÈÈH­âVßé$³ê-ôp‡ïk— yN†B”222ÜjÊüÔWgHVa~¿¦e´'ea ‹’ì+ÈÑD¢%m‚¢½× £AfE%-‚¶™…¶~´ ÚÚ^M¤MÓÔ~œï‡nnïç9Ç×W;¾]?ç=ï3î}_77‹ð…ˆ|ï[¿B@@†)ëO`¸Ÿœ)‘§–,Y"Ô!ÀÆ—ë‹Ù_Á5RW`@ÀÌâP6u«òëèÒ„„:O×X!66ÖcÓøœ‚Ñzvm—Û-##ÃM•‘),qo“&MìÔZ"wïÞ¥õîWÝùÈ‘#¨¤ r]‘äŽs ´Ë¥„ùO`1X(PÄúüÙ$á´iÓìʲ§ììlË4èù¦2o"Ꙟž^¹reÝFÓ½{÷2ZÃi­âM–þºvíZ:ux…ä½U¼ˆKLLôMžw0à‡z÷î-H²„UIÈ/^ð[üœò ¿™ñ3++kܸq<’=6U¦0ö}eR/“eøðá.[€”¥T/^L"Q¤9sÀüùóé >áª[233{õêů°£ÐƦÉc¯R¥J=²*.ÒÐ(eŒIá@n=Åy¬:A/_v6ÁʺuëºÃuEjœ8q¢ZµjÂFM¹ðùùù–F?ü±;vì íþ[Æm8m1šxúô©kJa沊ç Þüø1fÌ=ËìbÏ!1Ÿððpë_£|d¨7oÞ4jÔÈ΃ΠÅûöíÓçåË_3BYàôéÓ<Ú Zá’%K蜲Ïzâ„ÜÜܰ°0i¼~êܯV­Ze5‡×r* ¹À$JJJPPqt…E78v;wN·‰7RqÙN:U»vmO)G}%~¾zõʨ¦ß‚³_ñ×±cÇêÕ«g iÎåÿå<+©•qqqÔÝ7¢ÈS]`½¤sÕtÒ›ššÊù³Å˜CZZÆ®µ±_è]ÕSœ ÑKdd$'?®Ù º`.€.!!!Õ«WdzF5kÖÄåÏ" »íœÎõÅ2µ¥Aƒ¡¡¡Í›7oÚ´i‹-Ð+;vìØ¡C<¡i=À™{öì뎲˜wçÎB~ý]DÊH²ËÒ–  /×B¨¦×LAùìŒCaܪU+Ë­É…÷MJL b:uÒåä#Œžûz Ô7rõaº3fè’ø3Ä„róæM /z ;s!n$ÎåË—-­?ú-V‚}ùò…ނ߆@%ûüù³ le‰vn¨©S§½`Wˆ€>”Ñ&^‚w@Hx烤Ç&ãœ#êÝ»wFƒ8@-SSž .äw‰T-Ñ¿Bøììlÿ `Nmrrr&Mšä)©©éê{´ˆ—*Uªi‡+W®®™‚çàêÕ«u½ô鉿ë_>~ü¨ž——7sæLZll+ÆKi½]KݳgOE ¢‚‰²†—C‡y9Êõj#H‡Õ‹;„¯Û_WLjɓ' ùùxÁ’““#›]mó‹ný'Lª<îæÌBï÷îÝkÔ¨‘F岞z¨`j Ál"ô‚øz>‘Ñvúyþüya^wô- (D•ÑŽ?þŸ?ð”Dù8ˆ-c¸{üø1ì²ë}ÃСCyl8@o¨¼téRK«W¾q]º/^Ôï®Ñç2j²vÎÅûš5ktC…††ÂJÑÑÑFÉEÒ„û&•’çýû÷={ö䜨%BˆD=ËÏ#YÁØaŸ>}n´¼]¾×®]»[·n£G‹NHH8|øð… t_lß Ÿ={"'Z ½@ñþýûoÚ´éæÍ›ß¾}£]ꉚpûöí”””+V 2„BZô `ݺuî!Uúž?®XŸc9 ­!))‰Ö‹âF€¦?~üHMM>}zÆ i;?ŠTÞ²e í²Ø ôO@$õŒ3Ds†È<»té’——Gçû­5à_òl©èXœ˜˜¨´iK %q‘4¸ü=..ÎåúC?mÚ4!a«V­îÞ½K+ß¿ï,¼ú‰ª"†7aÍþýû«T©bôº?*ùàÁƒ1Í9;Z·0&D£Ê~ .ÞQÆU/ó°zEÀ—–-[.[¶ œYX[¨©Çvxx¸]C$Ìž=ÛáÌ¿ tä5jè"µmÛöÚµkœÛ`ÖÐI—ˆ“íÛ·“ðè‰#FŒ° ¤˜˜ {*}_¿~]´h‘yŒÇ¿´iÓÆM‹‰»ô†¨^~ÿþ­3^S§NUêsS;Üë~ZõéfG A…ä«W¯ÖÄŸð&ÌXêݧ=ÞýÁ¯„Wk4eÊ”W¯^ÑbÒ‹nVqg½xñbïÞ½cÇŽ§¢Ó0òTˆ‚Ÿ? óh-ˆŠŠúôéS‰'ˆâ ?^¿~Œ¨~ýúzªb´A.ˆ½~ÞŒP2C—áÇ ÅÐX†Â(B¥ÂõһϬY³”À¼é­ßX¨9PŸÅÉ>«ŒàÌÕ«W7êÖHQÊÊ×Ú"ø ñ¼Œ=š M3£Â­[·¸.vœöìÙ³v¨yQ%¨« ôéÓçðáÿ~ýÂJ%vzzz‹-ø¥\lV4À ÊÑžåc)VPfAóï2êè)ªü#G޼|ù²ÑÅv  GèÑH. [’’’¼9¶,ѨžhÍš51 †çææŠêÔ©#‚PO±Ç«ÅW¯^ 5V Ä|FF†äQ_À®É.+W®T8‹Z«Ë©ÛmÏž=óHv!ôeåÊ•$°ò>žàEwîÜQë© Úy 8p`…w7;è͈kÄSñŒÈ´˜‰¼QŠ—l|öìÙ¡C‡’““9úЋEWß¾}É•ÜSà¢ùùù>!v¡–¦¦¦:”ìÖ²eKð^]¤Ê8¨]»vÕ˸s¾‹‰å'WlùÒ]sïÞ=Õ)H´€øøøãÇ÷ë×Ïc¢[vÊž;w®ìÞ§½[·nUÇbüœ7oÞÉ“'‘S£F‚<:?á?1µ•ÍN¶Ð{™úŽŒˆ‰‰1gÎ|ª7QmÑúÓ¦Þ¡”´ˆRi𥤚x¤âB¼ Š(iH4M[­ˆD"(‘–Òz|Ð ª#‚ñªªˆ¡/ú î=w]+]Y³öžÓ1=ÓÉ]NöœÙgïõø­µ~k„võ¡5œ(¥3Ñ-P±/]ºÄ5ßÂb÷îÝ¢˜ Å處•å¦ï<&ܲ‘—bèÑ‹/æŽ%ÀŒ5ª¬¬Œê-\)Œ 3gÎä³)¼Þ÷ïß_ô…ޤ†+ÞÀÅ®]»l¬;âwïÞv»Ýе§sçÎáfm×À¦OŸ™ìNX ;l§N¢Í#ß Ü¦¥¥ñ»D:óìèÛ·¯I³ëáh­ZµJ[|¸þÁÁÁj¹ð¢pNœ8!@ëçç—™™‰þý[ª««µn¦5±}Jpx–——£Ú(8¼€DGG×ÕÕŽþQ+§ù†#Úi@𜈢?aÊ€ÉN-DY< ÍnÏ TÄP G÷>€pK­xýúuhh(VNîÏv‰•²nݺ=~üØÛÖüOxÄa]PPÀõ‹üõëWƒE/Ú™3´‚Z!ÊûŸ*)zMMÈGüü|1uòXXKü¨aýüùSÕ^R÷''œ9sÆ`ÞæNHLL|OÅÌöíÛÛõiUQQ1tèP‘ìË—/ohhžT³òáǜݩ¦õ•+W:ìH‹EP5ñì]´hom´NJJ¢AU=ÐAgB|¡ÌjãȽ çvÄdgÊðZqíÚ5Q…ÂÃᔩ¬ ?È CÄ02räÈ®]» KRSSl†ŽO QÙuNNŽ(Ax$Ož<ñaþ#áúGEE™iӦޮð"}åÊíA+zõêURR"4„2«¢š‡  ëÆÆFo加É?~ü€qO ÐÜ«ªªø~^*MâÅgLñÆ£DHŒx\Ã3fØÚ: •t•+Wv\1õ:^p ù—¨Ž½ÿ>T<3æYÏÓdÈ!H¨¼(¥8´Í㉠õéÓ§â+0ÿÇ0º¶k2þ›žžntð¼Âs,qDÅÅÅÑÕ‚±,[¶¬#·kõ¡5G;“„„hèƒÀ‘Áæç 6LÀã_Lðë, ;;J=òòò Ƥ<‡`¾åÀÖÂÖ¢6úˆ ¡5cá àØÀdqaa!î1‰‘‹è½yó&w '0\7OTEÁ~?}úÆs3""âýû÷†’˜h8¨Ä³I+Ü"²tÞ¼y•••Bm‹Q#E{`Há}J-)(¹¹¹Þe}\纺:sw¡ò)))ÞÖ×AÐP4 ÔsU¡==þœŸ6lÐÆ‚GjÒ¤IÞ5Ê\3;vìPg4¨~@nùfÚO©áâ-êªÞ*ÑÎn7nÜa¢½xñ‚ke‰JÂ3jËþKE0Û . Nl¦c©šû´˜>}ºÍAáI™™É•£Ž;¦²w”Ç£ííš -†¾âýô”äÀVQ„¡)((°µµ!¡´7î5ÑÇÐÕ¦¦¦Ù³gS§¿¿?d9YM„ÏŸ?‹Ö&Ђ¶@[q¥à\¿~=((ˆc X%ä¸6ï(B±ž={Š*¡FȤ{¡ô¨¨ œ–””DA!ÓBCC¡åŒ„NX±Ñ^íÂ÷îÝ+øžˆ&Þ[ZZªÉޝS‰Ž…RCj€ ­#ë#úÀÏÀÀ@B-£¿"##÷*´ð Fcþ/øGuúsñâÅVøÉ}áQƒ4ƒ’VŠ‹‹ù·¾Ð+**BBBxvŒ=ºººšï!=ÇŽëÌ4‚÷¶mÛ<1Ët\¸Vv»†>¡?Èœ9sh–M™œ¯Îqÿiu›µ"Ú"ê0uêTÞ h=nÜ8Ò wv°˜s0›á¿NTêŽÖedd´›éÎÊâÀÞ3ËAzõêEBØà_*c'@%**ÊE«ïܹc Ú9>EVÂÏïß¿c.«xãÆ¿]nÔ?õuéÒ/ .++›y ¹|ù²Íq°µ5Vz‚Ÿ]ñ^aa¡ŸŸŸõåøøøÚÚZµ|iM ÒįÝA&66ÖM—uŠpWÃ3;;› !Ó Ù•——Ì„.B”ë+~2eÊ5ß©!bc hnn¦ñR?T Æ7NÕÂÂÂÞ¼yC{ÔÔ†'xF =ï¢0k@%üùó§ð‡ºÚ:oäjþáÛ·oépòžêXà'rëBú§¥¥™ä IMMvtõ–€>ǵœàê &Ô××Ì4z~ùò…‚" Á+‘[L7xŽ?^À êgUUÛÚÚŠûUÜšÄNËÄ9¤XæÂ/}ýú5…FÀrÓ¦M&ªº}µ–ò¹^B}V¸ ´^·n¯‡®@^Ç Ý€y×"|îÛ·WuÿwïÞ©T‡ïâÅ‹í‹g®]»Öp¬$në)Ð%NƒYFÛ°RRRþôRWT2Xã^³f ±`}†®,€ìرƒj©Vsx®^½ZµTœœ——'|åÊ•*OÖvy.@_ùÕbT¡õªU«|0‘NŒß»zõ*g)h°/»Ý®~ÅßÐÚÅÂØÒÒhcŒ…;nŸ8q"î=ÅBò£Þ¿Lž×½{÷G9»‹Þ?~\Å¡œ ,øðá?Ð$͵ ­'85dª2àm_!ê0kÖ¬v‹DD„¨¨ÞÕ’}òäÉ¢0¹466JáþK—.ÙÚæQmxùúúõ«ámÓÌ%++K æõë×k'Ães´åBt.Ëó]{øþýûmŽdƒÌLOOw¦ª{bÎ,¹Â׿ÜiÓ¦q¯ªS[9©² 8°¡¡ÁpÞz<'t ¤ê?ÿüÕŸ5Ôz‹/«««-¿]+---ááá¤%K–m èl ÃÅ·oß0‹Í…b9`öÔ‚;¤¤¤ÄÚ{Ý“sçÎ9Ó“›pÿþ}^< ÇZêAî5üË—/øLZñ.\髉¥ðf Ã7¸„ª¼)//·±FÌ;2ôã·¥¾@\ÝÔÿöíÛ&™ á†(ksÿÿâŠp_]¿~½k×®Î*•xCDØëÓ§Omm­Áúu§bÏž=¨>cbbˆÆÐBèéHNNŽvÔ嬞ݺu¶`¹]‚eee©šÀ³²²ÒÂ{µã¤PI]«nÌÎÎ&æoS¦|9wî\í]pÚ±cÇø'p”qÜã6ÁöbSx»ÀðèÑ£Ý;¼së6RbáR»wïVVˆ‡¨5–Ò½7hÐ ï5W)55•sÔ¨Q@ç„ÕÎ2¢´´T5D¢bÛB‰ŒŒT½§b²¸¸Øë HNNá¶)‡ÿÙ¯Òªº.|ûÒ^­| L,„Ê«a³MDõ#iüÑ$I4×&*Œˆ„,hðG…T4_mž,³"0Œ l I’F55•÷;ߢE‹åÚû^óœs=×÷ëùqØ÷ܳ÷^ózÖ_UWWó]ÊL€vãv» ÓãÀ¿€Ñyri ê;®šv®Áç˜1cT`ѵkW®»ã„¼¡ ÷áB´YYYÆÖg `mdk{öìq1ÎÃãJ° µ‚ÁÏE‹‰ˆm”••…††r‘®]»f°d!Ih- œ ¯~¼,¤¥¥Ù.¿f×®]ju ¬¨¨°ýj/Ú…§/gÍš¥öþK‚FÚ`Ø¿?ß _ž8q‚ßn.„¢¢¢„ãÔ"¿páÂF‹Ï†­ýìÙ3質üsæÌñQ‰+,,É®¦?<§OŸî‹Û@G yÀÏ»téÙ­[70ýE£¥¡ ø`çÎÞ»(2iÒ$ú^,lALLŒ¶Zò:¸pá‚—šÆðáÃÕŠ'Þ 8ÐøI´Ä^Ç{®¶@ñÊ?—/_.Œ¯r?ð}ßx è  33…Çðnö °NNN6~ií¸ð& œ¸eËïù;räHƒE¿­ç~ Ñâ¸yUv'Þð$‚õƒŒF̸h÷îÝ\°aÆѿ ¢X©â-[¶Ì¥ët¤#ªïkÕ¶nݪV`è}öÞ«Mm$Óñ©“6vìØ,#l%’ôþýûâÀ¸Ž;&8° ”––’<‚½p ŸÀ»´ó—Ú¹sg.LFFý‹ñÀŸB0úùôéSUGµ†„„@‘´·á ©Ö¯_¯Vݸ¸8{­Ê3E« Ë ºåýû÷œöcpáa \,&n?~ü¸¨Z©©©Z1Ь¬,ŠFáAZÀ¿Ož<1qxã‡îC)ÆuY¹r%Ñ!ÛkžšÎ*¥ÇÉÎ×Ó¨áa*á \{öì©–/Q¯nܸÁ·ÛkO8sôèÑj"«o.^¼èlÛ‚Ûsssyvié¯S§Nñ~Å+Dx¨nýúõ«°¿ðþĨp<æIµóçÏ«’c!BÈÛœ¡Ë §|¸HJJò’¿hÈÈȲ²2:¡ éë8D¾ ÙóòòZ¶lIGMm• ÷çÎ3«,…àR 4H¨†O¤.ôžËFŸÑ0¥-ô¼víšò« ¾dÉä`äU«VÙx)|­ÒN.•Q·Œˆ/á/·Û­ nÀ‘#G ƒCùÂbEŸíÚµ‹n±6[¶lÑÖv.d«V­ü¹J<~üXº¨¨ÈðL,bÔ¨QÚa‡óÏ   •Æû¢—‰÷ZõáeII‰ZšT|ÿþ]s‘ßì\º1qûömÛ¯n(8 º^-ƒ¯^½2*îy$Èžö}ZZšPG]TVVò½þ'&&F››ðrïÞ½†ºØ„ÀÛÍŽ;Ô)Iõà¼yóœ•ù_†Ã‡‹’U/è³èèhN´l̸0`—H…éóSSSy6 ¥¨P/^¼ØPÒÊ–,C£M™2…_Â9rÄúùÖ!ú#ÐÑzƒ!11‘¾+effBuå4lÆ ¶X™Žq»͈‹‹sZL3 ÏÂ<åÝ )TúÞY ò„>|82pî ôŒ(-œ’Ü4¨"a•{ñâùE[Ï)¯CBB^¾|I*ó\þáF˜®¸¸Xm£Þ‹ÕŠ˜˜{ )÷ù¼yó¸x‡²âbØ;}útT"Àèç£GøFuºlÄÆððpq¥êêjÇÇO®&تªªªE‹õFII nþüyXX·ê´iÓ8™7!ßœùÇ.ÆØyç⮼zõªE—Ù‚~Âø5ÑÀäoݺµ¶Ö?Þ`‘oúRµ¡à:55ÕS´s1ÒÓÓ-ëí[€.@Q´)Ì‘’’"vÙÎýÚ·o¯­œHæ)JËËËm¼´¡€øþý;ÍZ§ã›äädå´È,ï] ÿ½{÷.~o=ѬƒË““#¤¥²Œ&­´M‹ðù¡žC¿ ðe\xX}EEUTDÓRßO€^€é%Y´éƒ‚hÌÎÎö÷C¼{÷.** «S»víjjj¸ð&¿téʯ­„l›7oÂØÒ‹áLˆ^q) 66ÖâÖ!X<ïÝ»WoÍý?,åkæÌ™4¢zÏjXøåüùó}$ÿùåË—˜˜¸R+ކ?~ühÛ¶­—ÃÔ6l˜Q— Ù]=ö„çêÕ«Á¶œo\A¬vìØá%$ð¯Å‹Ã÷¥¥¥0‘ñÂÕ§OŸ¯_¿òM‹Ä÷®]»V Jؽ{wU£Æ¯ê¸@"Íņé eîܹ3 5¼ÂÛ">»víê%µQž.]ºX¼Ñ×]Þ¾}«õ;ošÐâ!ÓÅF{%)))Öãk*/8Ù{uƒ·oݺU›/| ¡øíÛ7å4Šð ð„Ñ£GÓFL.]ÃÓüõë× ¼§&""B;út®ñDKÍÎΦ8äîkö ‰‰‰|»Zcÿ ^PØþý÷ßj)ðp ³6Š$¸½,++›0a§OŸè9Gã™P"x,‰ÐB#Àº¸¸XP>+„“ö=z”ß‹OOO7w²½†:uª÷áAè°cÇŽåïÃÃà à„ÚÚZÃBR‰ß¨Q£\Œ0kƒ¦H`Ñ~R H iðàÁ¢š‘ðXЄ¡¬°e®>¬?~ü¨Mm!Ì€Ž Þºœ>}ú??Ai+È FEÃÇÍ=//Ï{v âââ|q{ƒ0mÚ4Áú8;EDEEM³¢Ì0îÕ다¤$ ^åçN(ÀŠ+Ôš@΂‚Æ?&˜îƒÎBty¨ŠžbR˜ÿ:xð 8}Ú¸J4mP‘ß¶m›:ªÀ¢Ê™¹½ŒEŒ‹m|"‘°r8¨œ••¥ª)¢~¦¥¥iO0q/§Ž«W¯V[ÿçÏŸMŸoTÂ*ÒP5Z~~~BBôðáC£.a6¡V9|b ‚÷[·n­-Ý0`¹œ8q& Ý›>,ŸŸoqcˆƒxýú5ï"ä¡ yyyÎòthÓÓ§O»ÌTAAAíííz—K¨àáÈ ‚½ŸŒ¦¦&á]±Þµ'° ¼hÑ"Ã@6óÕàà`Hò´a/A5€tà~BÊ2´¿ v •eWÓœUjjªÙѺ}gÁ&¶ÿþ‚¼ëÖ­Óíh<„ÐuœÀ« \srrlg¥w‰sìØ1 {! ½wvvê èIàZXXÈÎ 1\³³³mü(y,w݉'Zë4P:]ÕþûÀÄ‚ÊÚÖÕÕÙø]®…ÉŽ;äNO (--µ‘IÏ©ÒâÂ… F'ÅjjjÔ4º50Ä ŸËÉJ¸3kÖ,žThœÆ&ù’P…'L˜à CßàíÛ·!!!}úôÑŒ¦'C¿ khh{xuºze!¤ˆ¶¶¶ððp_H¡šÔx iöÑ£G†Ûª ¤wóæM ¿"<{öŒ¿åÉõ_>ùðáC­{ÝӓЍ÷ãÇŒŒ —úIII±—OÎÐ9¯Y³Æ%¥3fPzw\Ϻ‰iMˆ ¼ nf;OÞ0üøÑÏÏÏZ7à3eÊ]ÑÌ€¬ ?JÏE¸†ÙŠ:X¿Î•Err²™˜ÜÖß¾}áÏÛºSZlݺUð:à*ÊšÞœjDD„\LS»ví¢U8)¨ªª2$Lw6nܨ ëmœ>}ÚÂ?àc#FŒxýú5ßDJ+« ¡÷ËÍÍå‘¢u  "ž?®•*º‰¶¸ÿ¾¬ƒçÅO¯]»–»?.®\¹¢÷N»ôè{)))Z÷¡É,Òiôƒ"ÕÜÜ,د‚%UP¤£hðóëׯ0úiF7W[¸™žžN²+®6癜œlxRÄcRR’Þ=?¸€ôÖ²eË=gΜI”<<‡àâ€'ôíÛ×:yÂðõþý{Œ8o(}ÿþÝeN\ºtI8Žƒ@›ÆÆÆZ”ݬ¬,xÌF¶4ÝÐ555ÕB1"S\\LTA=C@¶‘çPA^hþm&9Å 0ÀLIbµtéR+IvÇÌ­ÁÁÁ.£z~{Ð7@Â………f.A÷A„öövzK‘“¶¶¶8˜ÓHÈ×NÓô.ÐyÚÚÚÆŽ« SfON›6 Jm…ŒZÏ¥2dÿ_¾|¹,»á0Eå…­ +BQ;sæŒK 6ñäh„CCC…uàÀEü“· ·oßÖ,»bþoPPÐÇù&v•ÁkYY™æ*'À¿oß¾Îâ,nݺ¥I-?EUU•÷¾þólíçÚ¯þÍ›7ºJeÑÑÑÑf®H"_¸pÁŸæq Z 6⇔ýû÷ãó>Ôð555šÔKÈÒ]¼xQïµ…j–uf€¿âââtVκúùóç‘x‹`<4BŽ“ô(Ï?{ö :a—uYpã%K–tvv’÷þÓGϤ4¨1¦BYRR¢uuzšT§ø}RÊ ßSñìAþÐÜÜŒÉÙÚµÀé·} _¬®®Æ=ùwëëëuVmwW$°sçΞDªUî ò´ç¾}û¬í6l˜Þå*è …fþüùB[Bõaaa}ö¦ \ܼyÓºG >œÞuÜ ÍÐÒÒâïï/D¨Ö½ ÀúÅ‹6~T."ð“OF<= dÊËËuߦDm^^ž°²tï޽æHYÓ Q¯I5‹[ ´{÷nþ–ƒœ @cáÂ…‚ixa¤§§S ÿƒŒùJ³lã ;䌌 ½+éñz­ˆ­ï“a ÒAË­™‡r;ß¾}Ó»—Zú7¸Î˜1Ã̻ȩ ¹ÿ¸q.zeÏž=¼úÃ:**JgŠã¢‘2óæÍëIãÏlÛ¶Í{]9',–-[&;¤x†ÞÂBæ,ž>}*Ä‘À?%%Ÿ´Q=Ú Ó`rr²K;«¤¤$]ù©­¬¬L -g¤!C†Ønz>—áâÀÖzµ_¿~¸ƒ…Åd‹ÔÔT3¹hîùlëà8â0%XAû•¦***T;Ú§OŸ€6‘¦ZœG@uuurpÉ?Gýùógðkcc£ðua^Z^^.¿îmÈÕmmmƒ ÂGø ™ÛT©„ ]._lݺUëA¨¬¬t›‰í8ÐÏÄÄD<‹a»…ë]»vÙ{²/7ttt´KIsrrl¤ñ»láÚÒÒÒ“ž?77Wµ¦¨‡ÚIIIrXq'ëܹsfú_ngæÌ¸èß¿¿üÖŸ82¸"Ì#kê4Wy ž yòä‰ÎH§Ò›P[[+D&U¥¥¥ø®Ê^ʹQ>|¸¡;ñQ¢¹¹Ùp“ßÂñãÇisì###uÉ9JF~~¾0x"a.”ŸŸ_}}½ãþW¯^5´çÙ·oßÎÎNG¤þøñƒnYt)ðט1cÈÝÃÏŸ?9¾üõáÇàà`—¥àÒ9›0yã*0bS^ܸqC÷š[â¶­­­Ö¨®®ö—ôèìwîܱ°>ýUVV¦;mt÷œ‡ÊcJŽ2¸fgg;Íô@¯njjâI•»4ñŸ3gËAÎ>¦²ŽŽŽøøxC³š“j[[Û%—]€’h–% ÆiÖ=&7^.ÓÒÒè€ÂØH÷¯_¿îÉGÑ ´îEjûöíz÷ÙDw+W®äÇç²ÐzÒ¤IzwÚ^*¸yff¦¡ãñypòäÉÂ[¾Ô“Žÿ÷/ÀböìÙšI—‚„W¯^ÍÙzòiáfÅŠ= ^À”)S„S8îŠò@Dµ’ lð@cc£îþ\™ŠŠ k=Ø!Ct©÷ð£{÷îµæ €ž¿¥¥EWÀânfO9ÄÈçÉ=*++<O’D#//;0-ø0Ë Do´Žçøòå duBÛ:Qj]µjíðgêæ6¢££¹+ºÌwïÞÕ{•‹"Iè‹‹‹ “E ++ËÃoûùùѶX¿jkkå–ÉAõèÓQQQ<ñ¼J^±~ýzz‹ó··ý#JóæÍ\™ðÒ¿aî§Ïziê»øõÕ«Wœ!\¹áúìÙ³ž4ü˜ºd˜Åd«™%ÌÍ›7–'§@¸>%%%.3Ò¨Q£¼Ñkц¨Rnn®T;==Lßë‰_\¼x±…ÝQɘ˜þ¢—Æ7oÎxôèQîdH¶¸€LÔÙÙé8UE(8Æ‚ „aPö¨‹/:KÛY h0ÇA=&>—€\áxëXºt©¡+šáÞ½{ºõ¼¨QN¿"§’Ï‹w<|øÀ»9)áúܹsºT&¼t 0Ö Aƒd" ³………œ*W†7\HFbËî ÊÊÊ„wxm§Qª¢¢&ÞûL+øðRx·=::Z°I¥ŒooÝK…æ4°Í;—ÆnQUUÅG¬VSò,D€ÅÆÆª2òážÞcNwÆnݺh îîСÃׯ_UCL½ Æc§£ 999´ÑNo>€mXXõzѪèãÞ½{5«ï2\X¨ùyyyÂê-&$$ÄÕ x@>yò$44TM‘w¤'`Û¶mÚ©[[°k×.Ý)Èž?..›V[ NŒ\zzº[3aÎÑZ[«««ÕÁéýû÷4–ðùÄÂË)Z·aÃ’§>ø}Ïž=Åx€“—ˆ>}˜ð®–zèÅDÉ| ňRYYIc³« š3gO™¶¼OÀÖëýû÷ •Ô¶Â#(Ÿ“­m‘šR=HìòÈY¥q 7PoxŸÏØPëŒõÌ›7OØbBIä) Ïsçι­Û`Hii©·‰y OŸ>æøûûó`@Ü»wÏýˆsX´h‘SÀ¸qãx3µƒ –€RïÎ;AAAn㙄íÔ©S]]Õô}  óáÇM«q …E‰³m ªÄ®\¹bl ütþüùÖM}¸rÒȄϸ¸8R©íÝß³?~®?~ü8êãêöç`³tDD„8GøâÿÈÉÉá yARÞVtë­oi;jÔ(Q1DÅÆÆ6ß"ª3°¸wïžÔ°°0¼„Ú<ÐUÀÑtf¸sçŽ þÅWüøñ£]»v½ù“Ó»yó¦·ùƒœþùóçÀÀ@ãªøøñ£º·E@}hoEEE=xÂN›6Í ¿PséþÓˆV‹à)üþý›“׬Yãʲ111ÕÀí‹|:wî,†jGÓº±bÅ ¾×ä^C ñB­‹7j,„ìàzÄ 0`;ô:_Ã¥F¤‰åØ»w¯n)üïÞ½ËwÙÓ5^¸ŒûŽ<˜ššêïïï`-• ¼£¸¸ø”®ÕÈÎÎæAH*>"æÍ›çëãô† þj„Z:pݽ{w·‡pég-^¼X4ˆôôt/ZÒ6}(YÚÞ’À555ýû÷çÊlß¾ýÌ™3¸Æ: k*•Ĥûòå‹0G³4‹Ôg̘1Æ’úùùeeeiÊ<ìAÀ™EEEjRˆh|øð¡f…€ü%%%nƒpñâEšiMfÛ[¸¢ª^ Á€ïß¿¯Ym 0ÈdÊ”)*s`NÍ·\ãYÛéR3räHšôDb P$lÚ´Iby}³3233oµ¼ÖíÞ½[ˆésª^ºt‰ìÂ.)Š |Y[[«5Ã4^H?}úÔ©S'Q”ÊËËísý˜?¾êb±Ž‰‰ÑLq1¾âÀü¢¡R‚çàÁƒ½M¦9@·Â…TÜŒTÄÇÇóh©˜”n³¨¨(q>”Çääd <1½“€C† ÑôÆ$›¤0ƒgpp°žhÝ£G¼Dƒ†Éõë× IEUG¨bòÖïmà‹Ž;†Ã±hp_ †šmœ® 1Ïgdd¸jLôeHH^Q-· i744ŸÀÀ@ã©гgOË9[“<§`ýîÝ»ÐÐPîk‘Œÿú£FÂ]X*5ƒmÊlÙ²ET6Ý^†?]»vûÈ…­¯¯‡ÑÌ÷ž¡`f3O#²²²p/8yòdñû(õéÓGND:¬[·ÎLJ .TÃO¤yRR’i” ¨âbèС͈÷P­ñêªnoþ‹_¾|‰ŽŽæ‡8âþó0O^•|³téRõpkƒS-Ñ%%%b"`2üw#<ÎOCgEFFªòÅ©S§Tfê‰ê-Y²Ä­b}ûö5UÛÁ/;°€Bªë^¬f̘Á÷Z ŒŸ¢¢"6º˜8q"î"æv0Á|»4þÁ"77ס´'õ.Ö±cG^fñL3/b>ÐdÙ²e®ÒJÄm@@À§OŸÄvͧ©FEEqyðà:33³™F‘ƒ ú«tHAAÄ!¿¿ØÕÕÕêxÏuÀ_ÁÍDÿöë×O\èT×dgg›CÆ->|ø|üüü ª:ªmiQ0pÙaýýû÷±cÇrABBBÊÊÊà×?roêN}ðSÁœ5kÏ>W¨¬¬´gõ!&L˜À%%a!ÑD­‹‰‰Á->­-OKK6â“:NbbbsŽ¢:sóæM®<#""°ÌšÖZ„¼¼<ák^EI˜(Ìñ5HmÔU^À“'OLàcÀ“ž—/_v[ÕpII Õ4Í]îð¢G_œúÈSp,Äê¥K—ðo………jUT•|üø±ñK­æKRR’[UW­Z%fÏÎܺu«£é°'ŠáêÕ«Õ]gâ–'dÓét«ØÁƒq‹Ú^mN ©Þºu‹B•ŠèÈ2:Á2öÿƒ3..ÎU&rdffêfýª®nO¯^½ D§óÉD(\TT$6Ú6Ô-G¯^½T ňؽ{·ª¡/ªzæÌµ’ó£G6>Aôå„„¡UFF†fcq m麘#22ÒÌ Ÿæ( ÄQN288˜:¾åؼy³Ûª†üüùSkC$àÔ7~üx¡ þaûöíºaÌ?ñù“?­…à3tèP=gÏžÕ\ Ém|ÿþýÕ÷RѨªªR•4_Ï7n¸• pûömKèµäXÀί¢Ž¦C8~ Áÿ[n '¬îêüzá­é|b¹–@ ü¼XábåÊ•B:õãùóçuÏüÃA Eeª¶¶–ç”h.Bá—/_ZJß3€ÉáÍ›7ªu<ºvíj|Wòõë×~~~\1h²uuuôïÚÓ ˆœŒ1©’ÇiA:,Y²Dl÷*ÃmÛ¶ &*«˜˜·d¼]BéÌiÓ¦Wu@DDç :B|¯Î_¿~…©DÀ7.X°€ÿmêÔ©¢ªù Òy\ mcN§±¤`NYY™G^§5u‰÷î]]%1 áËE‹µ‘€§°gÏ]ž”;ðS»ví èµô§†¢i¥Œ7ý±cÇPÚ •  Íd¦Í)•Ø€IÙ`H!Í4@‚Òô#3¥Ašˆ"š4P+P ²Ðl€¨$û‘ $biŠš•–YaÞï{Ï·pÓbݵÏ=Þôœ{}ýz~ö=÷ì½×~öž5dÈ|.ü§æ‰›OhfΜɮfÆŒ?þ¤S<==e®Ø êÚ!0ÁóÑ£GJK…š2C²:ÕZDEEa+GC¤÷íÛ·m<µQÒ«g?á\¶ˆúç7ÔfN(«èœÆ‘X„™JpüC‡¡…²Wh*=³ÛÃË—/ËIU\SCCƒjí¦Î¶XdV­Z%{8Ö/?6ÝÑ·3P, þŒŽŽF™‹Rùƒ“'O:ÉvS ÌÏÇë¯ 8„ÒìááA{@II‰ø†Šm§@ÞâèÉ“'еÞÓÌNд:ÒT¡^¨Ë)¤•Sšµè¥K—ì$S0Os¾QÀ{§‘b+±oذAsº ¹ÈÖÕÕM›6í2vìØoß¾Ñöíýû÷ŠT÷åܘššj Fè£GÚbI Q­ëx[î—UøùãǾ}û*’rF&W¬XA½Ë¹€VÓýhøèh~JjME¤#Ùû÷ïëÇ—ø·  €©VÍ7t/c!öÎY j ž‘hj6ÊÊÊèîš—(**Òg•FºIÕY¬ÿôéS|ŽHHH`ÉÇh˜¦8¯¯¯Ÿ2e Kq­ÕÕÕ¬ŠeffÊD±® žÅÅÅÆò`"##õ«< ..ŽRÚº(cu’ .È¡¡îC4DÎn±{ee%íŒèíÓAZZšÎR” x¦§§gdd°½™ T¢ÓõصkW‹Å‚žš*Çf606EˆfÍš¥X÷­šð÷÷WuSÁÿ9ØÕÀEÃu+¶ ÄÕ«Wñã¿*ZÕ U«xQ&©ö‹U;‡wîÜÑŒGñvçÎ-.ÒØØèííͨƒöS“mgAö¦:±#F§› XE*X8?{õêoIì3Žò@n—d$''S3dKèKÌr555¾¾¾èŠ‚„þýûƒäψ’èÓܽmÃ>T‡ÒììlÕFBûSÂYÙ…Z œ³7nT%ÝèÀî ÐXÈÐ'zNii©Î"tŸŸïêê !ETUUág²¦2 ìFæÎ«_€   Õ:˱¾@îXKhø=Âú-Z ¥7Ø;ØõÁu³  þ¤I“ôÏÛÔÔäëëËËÍÍÅ,‹Ú>H£6”––Ò¤„%ƒ]ú½{÷T‡/ÂsÆŒtw9¢áÓ¢I¨Sb‹7jÆ C~~þ?¿¡c$Ö)è°üüüÄ\”m...yyyò:àÆrï&átxmm=έ[·ôÉÀaYqouí¦[ãE„„„Èâ*!!ÁÖ NApp0sEJeaaaö,õóçÏ€€š"""Ä_"©Ž:/ægètôA ##ƒÊ<S2ìׯ|¯JÑXûsrrP¯êaÛ¶m´9m{#Ó!Acª%6>Ъ°´ÿ—IUrõ¤¤$MW¤rž}úô©««ë` ÷X¼x±æ‘ÅËÞ½{묄dee1Þ¦L™B?PIŸbòôìdoÒÒÒXF’¥/Ô‘ÆÆF–BͳXêÖ­›fGqéÒ¥íY;oÞ¼¢¢"¶… ZBCCiα…7oÞ´h ¬ÊÊÊ‘#G*R#–’’B§Ó'´o”7f üï“““ dÀX ›ÅÇÇ·XèQÐZЊûÕÔá?–wD“† ê¿7¯³°`àî΢îÛ·O‡ükÅŠ”üÑ£G744Ð’á`ÕÏãÇë;ƒ@YY™*ù+v555ÇÇY»v-ä7y–Q8qâs[HLLdf8ׯÚä8]½z5²GÓP ™_µv!y3 ÓùW6ƹ-òØž~êܹsõÌ'÷ìÙÃü‡ãúúz6…Þ ŸŸŸB,¤ C`XDEEé\·`¬y¾ÊÔ  °°PßAòëׯÙRàh'Œá¾|||àc77·‹/²è3“'OVìHìïÞ½³U4) cÞ¾}ëåå¥Hu|óæÍx@ÕºÃàáÇÌúÉÏÏg¼©¶scLLÌ®]»šššŒeÌ0«,X°@ŽAÆçÁƒUÉ…Úh®0gÎÊ57nÜhãFÆâÅ‹r¯$¿ÉËËÓq?1ؽ{·BÚ Ð“Ð°P'qdåÂ###Ù¡dèÛ·/Ndå m†æÈßߟ.5þ|GÆ!::ÚžÚ 8vìËdŒ¦ÈIOO///ÿÓ¥ÚÊ$l}úôiY0´Ú–¬&NœHœò,’ƒc _™­:]5Qý¶eËz!6}útZXj¾1 ·síÚ5Íd‚/_½z%¦È ¯S§N”ºñãÇ;þ8öƒN‹éJ?ff˜AǧNÒ1FÐÛ¥K‹Å‚™UÿiFHHNT/¾‡÷ÚŒ9²E¥¥¥ÔfÆ*úÕË—/===©Ìƒ   °_¾|“œœ,û-8*Hb¶µæE€=;vìPš•ˆPÚm©Jv2‰(âôøŒ ñ¼ÿ>µ]¢ÕWÏÜÜ\Ê!î.Dà’%KTëã;=ž9sF\®f¼àY@öØ2XôMP¦Ù¬ÌÌL¹ËP.ÿFŒ!;huý‚ûýû÷ÀÀ@ºÎàÁƒëêêð3cóƒ` ¼E')€|j­ Û Þ?~¬_¿–:uê·oß <—=&‰îÕÛÛr£ú›Øÿ6£-˪„œ?2'§ãââbƒNóæUUU…‡‡ûøø,_¾<;;[µö(§g Aã³gÏt »]77·wïÞ1æ|CQRR"'LJÈÍ›7U¢çña XW‡ŒŒ gÆ€CB”+êÊ•+ª9×Í(=›6mÒ7I¤2U+ãáSd}>|ø ¶§Çß¼y³æ½SÇŽKgÉÂ5==],"ž01>>ž}ìøSÃŽµµµš'¢j àÿxÚ"‰¤»Ù³gÓï¡,((0ïPbY???J©æ ¤¤¤ÐdhÿF¬"ÃÏçÏŸ=OᘋÃ]¾|ù2jÔ(±;(Õ:6[§H‹HP¬Dï¸ß¾}›fKxB¤«í•"*YAcèd!DEEªóä® åÉ–%Ý ëTëbD ‹‹‹£Ã™]¶@[ê§tëׯ‹ïiR€\½zÕÕÕ–B'www-Jµ… ÊŒQÃ`Œ;²tDŸT)ç...¹¹¹2{†ó)LJKKSH$²ô.žBÆ ä£Ù©u›ª¿“””¤ØÐœ`Rjj*ú[ûI†&L`vRÿX¹r¥è­Ä YYYBç#–-[µL%ñ%ƒ{÷îiÞ{söìYñ=uaçÿ¸¯ÎЪš&|>°$Q»ØP,±D,KÀXPðµÄˆŠ`Æ‚úC±+±`/XcCÔ¨QXbKl`oXÐXc‹ K4ÑßùžÏ!ÃÜÝ=ç^“s¯÷õùqØ{îÙݙٙgŸÉËËCæÓg|Ç¥¥¥qÈrð*TÐ7bùòåÒl¥ÀPþ… ¨ˆÅ‹£`妸yýúõ`xgÌHJJâPÃ/ýD Ž ´jÕªJ`ùd9B ¸©0P·nÝ—/_Ú…¥¦`Ñ4hÂl–/»oŒ5Ê'˽ç¡”ë Ãà9}útÙRٵټys Ï:pà@8ÜN`Ÿ?¾¼Œ¨Y³¦­i -QÆoß¾u7‰‚¼zõjš%¯lŠ+ä Ι3‡µAð…„Ÿß`¦¤¤° |¥²mÐZ2ýxA <èd¿|‰&N©e=tC† QfQ|äÅ7wî\«€EɆ¥K—:ù í7qâDË—ˆ,qѳ#2-ÙøÂÑ{qïÞ½ˆˆ(ýû÷W¦„C¥ÿþ.z— „ 8Vž¢”Z¬ Ó´öõëW¹KˆÅž4’KCÏgN 33S!çææ&&&Z¿ôMÁj“'OÖE¬çw\~~¾Þ¿8aÚ´i\ŒCJž?~ðàAûöí¹Lh€¶ñèÑ£¡9;ÚeÛ¶mìÜ·½®;'<¹Im Æ„¨ˆÐçjõêÕÊ¡víÚ999¡4Æ T“åÛ7ñ@VY»ví~üøÁ5>M®·€_èpe”C6l˜í«4ðÜ¿¿¼ñ1a²Ò7(ÆwïÞ݈àb¢ðO0Žž¹+##ÃÝ$²êäÉ“¶ÐNlRjjªdƒ^½zé¾111zÂèhÙ²¥í+öè šB fl]eË–±JðåO8X²dI%ã—‹Ó ôsÒ¤Iò{<‡î2ÅCðÊ J r@ˆÞ´-¶ï±Ú0^…3’ÛI&¬_¿þçÏŸõíþ8%^ºtIO?¶œ}IOO·Mé·cÇŽ*-‚vïõë×ò¹](ý¥]PN5%é7;;[·óǸÂ,A @rr²\ß?`qt²zI:!))Éö¹»UÒx\:èyѳð^´ÔÈåË—=wÍÈœèèh:6ƒlP. Âsoß¾]¢D ZYj? Þxò;€´æT”ìM/›5k†6*¨wP€Øºu«ÒCÉ0ò›ØØØ÷ïßëÓÿJá7{ölËtcÒ¸k×®ü%¹ÿóçOÈ<¥x‘Ôÿ`J)[¶¬’:Ö¬Yc .ò#NcžþøñãFÉ/ñlß¾=Z-¹>ùâù!bñ‡ZÚUâT›UªTa² $¼L/^‡X¾×7€—Ïž=£Cp^´ÅàÁƒuûõë§\"…¨Vš‚æ«aÆ 30˜B 6~üx—˦¶jÕêÛ·oöÕNiiiÜâS‘û>ꡜäİ®ú˜›6m*§ {ÓÓÓ%Ÿà™æñaóîß¿¯ôJFà²S$“‡ê н{w{ÈàòåËÛZNB ÊÏ*V¬øôéS¾— M5~AkR‡ë7˜Ö/^zñâ…]@€«$r,SÇÑ¥KºËtËù ®\¹"ëW±‡nذAYÆ_¾|Ak£X ñüéÓ'[(£ ÞÆóÖ­[l0s©ñº_µj•S4~wS}< |ܤINiã^Þº€˜+§àj ÈD¢Dß¾}su¾¡¼’ÀB²×-Ôië@J4%¿<ßãÇÉ*Ø -ª¤¥’«:uÍÚ"ÙŠÛ™ý”÷+W®´D'¨' E²FèVŠhÒ¿ä#ˆB–§Œ=Z¯—ÞtèÐÁfðÊTæyyytùºcÀ€ìŠhàÀÊaíÝ»7HídzQ£FzÂ!‹N݈¶+;;;Nà¿ÒÒÒœRW"%%Ea³;wB‹Zâ&*Uªt÷î]ú€N'4Y Ž‚*Vît—xöéÓG†Â…ó.PÎfgddôïß«É{Š@9QAâ–5H«ä!ýìÝ»7ÛCLbi,·hÑ"Å$]®èƒ³gÏÖªUK×*ü¦råÊ÷îÝs±PÂh€þ½QSéÓ pÖéY*‹ÆÐ¨Ož|àÂT o42!ð…·@uûeH|P½zuô¼Ó§O'¤dš:uj°­5llù“(l¿þSNŒŠŠºpá‚lFØ}À?‘½«V­r²Aá¢nݺ-^¼899¹xñâúÇÑÑÑ/^´ *ÂiÓ`[|ÿþ¬ Dõ ÛŽ?®/å÷ç?¦L™bäjBbb"Z<»Èü<ÀÔ‚.ãÏ*Uªè7& pÛ¢¥êø³<†Ý÷ìÙc<c†ÿB³“- ö£Ë”)ˆ> zõêAÄnÞ¼yË–-)))hÐbbb,_iaùØÉÉgÇþIÀ+WãGþ#`i*ˆ_Â/t+Š‘NiöñãÇñãÇKÚ”Ý ###ÑÔ¸,b4^œvAb8­ƒ/•¶‘0tèPã!Ë¥qæÌ}©ß…r l8¼eË–´£Qìá% ÀŸ7n”–„³€ñì)b¥ó¡LðYNN2Mö•øùêÕ+Z„ª,<ƒÆV>|XÏL…”à ô¡œ(‹Å[{(åöíÛgfC$ÃÆŽËznªÈrPn ÅÉv'"""##C®,ceôˆ_nÚ´Éï^’‘8zL ø÷äWwlŽßó£T˜µÕhb„Ø{Õ·±*$»%F툽73DJP!j1BBJíQU¥5‚¢¢ˆ½<¿OÜ89=÷>O_¥ïûŠóÇ“û¬{ÏüœÏA“R¬Ï[µöìY—{|ÏÅ8?ØòÑ£Gy7·ó=»®W¯mEsr®mÚ´Q¬ÏÊʽ^Ú\¬SSSÉ]:¯#ñ(»ø»~²>! Çr‰3ü’ÄÄÄëE<¤|¦ªçõë×bÓnHOFg…„„¸ŸÒ2Ý@ºêQ®P¡‚`¹Íú, ‘fΜ)tS-7 ¥wüøqõ#יfÖ¬Yœ6sÛiç‚ b+µ ¿:D™2§Ljs'Ƚ{÷à@ãØÈ6kÖŒ §Ÿ1îJ0®¥K—þªpÊA&ܼy³gÏžùÃÕ‘’’ÂÍWÞó…Â÷˜ÀðN:‰xñt=tè¾>|¸HiLd<å,èÎ2{ölQDzqÕ¨QÃÊýfÇ÷ÇÜaÔGd¯ÐS=ŒˆˆÈ¶ïçžÄÆÆÚ•¹QµªõþýûÕ†b|àxhñ {÷îuö!’žêZ²dÉëׯÓT«$[ý³²|ùr1ŒdÛ1éËiÓ¦ª ÂLB~C‹ìÖ­›1X„ÞÝ»wÿöí›øÑîp0?LJJÒŒßÒˆj¬÷%K–ˆý-·¨g$::Zà­n£€t½}ûÖÒÆ(»$ù³¢\^ÍÌdvø^p?Hddä›7oŒd&—"HµÀÍTü–"¥³ vêÔ©3wîÜS§N=yòD•‚ÒµjÕªÐÐP???Ž“Ü3tJ‘"Eââ⸱\%w ±~¢kbbbTTTåÊ•é U8 –]»vݵk—Òиs¹rå\Xq´weíVüŠóÎ;9NHÎúâããÃÂÂrêµ£ÖùòåoÉÌÌþ-æÏJÿþýíj²uëVÐi‘Æú‡¬¿ÇQгC‡®¬S‰Þa‡*f:úýÏêCè´bÅŠlQÔ¾ªÍAƒ ˆóL,è”ÇÛTBÄgT•XlÛ¶ÍýC…¥0ÿêÕ«:´u12@O‚‚‚îÞ½keu¡ŠÇÀððp!³Íú¬hÑ¢cÆŒ9räHzz:tV ľÿþÁƒÇW½zuÝ?'L˜ Z›ÞL}¤Æyô“““]&^Ç+šW:·tÓ¦MØDML^© gQáÛ¼y³±ˆœSÂõsä,…ŠÅcúãš––æ¦ÚB=3…”-[Y­Îóšå©¼¥±råJa¦æ¼T¹§Nœ‰RðU¾|y$¿PÃr;¾ê{ xWÇŽÕ¶ a3fÌØ¾}ûþýûwîܹtéR Poƒƒƒ÷îÝkäEø‘Gʇ‚ÀÁÆÿâÅ‹œ…àÑ£G‹/®U«–Ý¡œ ªu»vínܸÁMðA”ËUᜠt =ÍHV¯^ݹsgñpË–-–¦³ Õ1ÅËŠ'‰j V.ƒ_cÐ˶RôèŒ5J½\U[?×Úµk;£´^•ô=D±>½ÅYFÖ§®Ÿ?öóóË–9“¹ëׯÿôéS±¿W@ Zµj.~:{R¢ùóç÷÷÷_róŨ `¾Q1D½¹ßºuËÁ.»T @Іv½Òì…žÆ(;^¡Z>Ë¡¡¡z8ìò™·i»°bõîÝ;>Ðøã‡A(ŽÝ¤I=Óôfj|ëÎ-ضmÛçÏŸë&;¸B|ƒ6ˆõš4iRFF†(‚Ö˜˜˜ *àÜ|üøQìÓ¾}{…áv6 6ìòåË– ÂóXc˜½xñâ¼yó7n¬ç†C0ùîÛ·O?â_aõäÉ“ð¤téÒŸ5ò–æ9elRR’C ¹}û¶ÇTR²qãF1êÚÕ}°`Á/æ­ªA¥ÀòåË …¿æ`ºÔ7Ì]!!!¹l§G ʼŽ@r½3Š´Ôsƒ>Ërõù/¨e(_ðƒû‚æ‹îï\£”/_>11‘6ñq{¯]»f2#)*Z´è¡C‡¬¬Õä¡£OŸ>í~hlÓ¨çÏŸ÷–Q’žžvdG_fÚEÖá!¬žÓNÑ%¾À>ذAƒwîÜÑQWüûéÓ§!C†àû–-[¾ÿž¾àÕÿýG6"ÊF,rÓð   ®[·îøñãèÂiii>¼råÊ‘#GÖ¬Y3vìØ-Z`DUçÍ›WÏ#܃¾‚1*ͽ^^NÏž=Û;ëþ»\m£££yÈŸ”(QÂÊ!ããã*Eà†ŸŸ_ll¬‡•´xõÍ›7Å‹wžé”äÉ“‡®… Ž‹‹£M¬­<Çj`z5úÊ·¸Î™3G¨p@ ¼¹*TwTA@6+#~Ò[¼ÊvLÐ=À¿§W X´h‘òƒh ¾/P»T©R”˜,Uo›7ož‘‘aý4÷YK•bhUºFš„&ŽFéƒFõíÛ—çž*%j­L >. A-ÀØÑ»U¢þPä’Àç©©©à~dÎ@DéUüÂ×­[·¾yó¦›Á嵬#Ûúõë±ahh(hÛ—/_à¯_¿£{ýC0OáIff&ß²jÕ*üÕ¥K—ïß¿óÝp;lØ0£uÇtpv“’WiC:Ž´ŠbÇŽJaÎvþeîǘ7ožÑÿ"Júõëgy¶Wþ¾ÀF¨­'•zصkW+7¾zõŠRZ/ ^•+WNHH°|ÀùR6lØ €‹4WeÈI‹ëÇd—œœLûp dDªl-²R¥J48ГÀÀÀcÇŽé®gp€ŒåÇ…ºLMÁ®?u*âw¤}Ÿ>}ßoƒƒƒwïÞ­×f¶!Ö¿‡Üºu+_¾|5úðáž={Eäçç§”,S¦ ‚U®\9]³f͵k×rdž>}:>[¶líOGìܹS˜n‚;bG9ûßq¹1êâŠy622òâÅ‹ÜQ:àÿ›"¼1uêTçèÐt†!ôùóç^Õ=‡R­Z5ã¬Á§³… z@åvj:(ŸvíÚ«€ß†‡‡¿}ûÿúN·¢,|Xäƒ óU«Vç¿PMyÕ‹ë’’R¢D Áxbó'‚•.]zñâÅà'žœËr&¤†‹±cǺ²’AÿD:”míÚµ7mÚ¤Ð^¤k¶PÉË™»®M›6ùóçOKK#¯B:vìˆãêÕ«G;£dÐè¡ITTý‹WÍ›7÷÷÷üø1íIù† öõ¼ÕKUˆñ­îFºsŽ ‰‰yÿþ½°š‹š|§‡zXŽ1Â!"Üá+W®´|» òìÙ3—ÖL9ì¨Å™3g~‡~ü’ð>yò$òÖ˜á4¯èÿzKôé VLž<™Ã([åíiÓ¦}ûöï 0ÇváÇèèhC(Ä+Vܳg.÷¿‡ƒÎÍÄÑ¥J•r@?eZ cì!CŠ+Æ_¹²R\± … 88xþüù>4zÀ*}G„†pH­ZµxQó B‡š8qâÇõtUâ± çL”zUDUÆ¢}£š”uz¶¼ VÖìº}ûvõêÕuÈ¥5†¼yó6mÚtëÖ­ Q±Ë(¼Ÿ&&&¶nÝZ·QDPg2êŠÈöêÕ+..N@6ÇÚÍM/j,Î;‡#tFŽá\èÌ=z´Ò4¶MHH€æãƳ²rKRìþýû#GŽ,T¨@~cGà ¾¦$ÑaMtpH```xxxllì«W¯xþëµ@¦©¦ã›‰äážéÙ³§Ë ©[·.êÑÛŠÿ²ÀR Ï€"""pŒŒŒø!ýû÷4hPÄOÁ«ÏŸ?{@`*ëÖ­è‰ñ°Fxž™™ii…ï]!ÂF (váÂÌ\zŸ‚U’““ÊÒæÙˆúñرc ÉH+Uª„iåË—/äv¨ž$:ñxðàî®ÿ³_®!Q=oÿ·k*ÛÅL©ÔêE ‚¤B•ÙÍ.DZ¾“B±ÒŒ ºÐE#+¢‹`%Th Ò…ŸF†©•¹YY‰Ö µ¥E)EXfî¯óØ¡a~sΞt½¬æ÷ób˜3;çìÌ9ó|Ÿï£Æšš~;é6U(iiióçÏ÷ôô'KëããCªž‘‘ÁnÿWÓõ“Ó%a˹ÕÕÕ¤üR^ 8¢§kk;â¡í½eÛ¸ªÏŸ?Ï;WŒ)ggçuëÖ‰^QmDª§úk¼C‰cïÞ½£FR§~ÖN›6 jÇ®Ü>ÔRFbïææÆÅœûQäÙ u¼½½)åçç“™çdß‘µbvòÜJ«¢õPh455)ÿÈÈH&Ñâ]ÙÙÙl‘´Q!èðdÖQ±_ê¿£-uˆˆ9räÿtËRi\<çÒ!"‘ŽŽÎÌ̤ð—L¬~1«£$ƒÉAAAÒ×ÑÌAwîÜqܪ»OÍìF}Q$ûì0¨ 7êÔ×דôQø'&&:tèÉ“'škë?'V³t"a!ùJMM]»v-åß;vt(ªLڱφ‰)¦¤¤dÛ¶mô×)))7oÞÿEœÏ:}ìyÔÿçŸ$1”Œ+µÃ† S»5¾ßæææªªªââbzí¹¹¹—.]*++£ÃCžAskú;í?§‹ckIl¼±±qÆ þþþ”È#‘Ëýðტu¸ç×yf¿‚ô«W¯ÒΜ9óñãGõâû¡8h¾êoß¾íÞ½›TŽ"”6Eß‹–Ϊ­Àe¡/k´®"n“ #Ù]Jšûöí#£âççGu(Ô©S§†‡‡¯^½š~*,,ä6^-ƒvXzéþ¨±cÇ.X°@­düHgÈøqI¡–Æj(:oâ_Ó ¤ñòòr['^~ÿþýÁƒŒ‰‰ 4™L¶¼Ÿ-7èêêêëëK.•ãÇ›Íæ––i_Ò«Ó â!Òö©Óq} ’î¤f¢>!¼ãÀ@ü;[+TôC…×ÏË qƒR jþdÇÔ­­e¨]__"­sëÖ­’ú‰% Ó|ˆbCu57(¾mÍãÔN”ÑØëÌQTQ'Ð.Ù`‡ îT:¢üR]ô+O«ù¶¥I• ú^¥쥫ØÚ—ˆ¾Œó'HÓlIœÎ_ði/_¾$%Ù¿¿ú§ˆˆId=zäîîNƒñññÒ:ëêêh<==ݾOCEÙãÇKKK©JÍÉÉ!/GÎÿèÑ£Ô;v,++ëìÙ³ä„+++Ÿ={F%í ÷i½™ïÞ½“,÷+bÇÓÓ“¾›?àŒý 1Μ9S§Úb&pûöí>@—]SEE)I^^ÿI2~¾¾¾¹¹¹äÁ–/_n´’œœÜÚÚª¨êG''§¤¤$»—¤6´ÒjÕUÔ¯G^cAAhù4³ùp:Ð%XQk2™l¹>Œ}/^ä7BúH–‰t¦°°ÄÄl6«Udd$ý4qâÄ•+W2å liiaOàJÅoqss‹‹‹³CˆDË'­Sg Ül@úº{‡‹…:Û¶m“Ò ·”t¨7o{ù4_ëÀ^xì°Nuuµ-×'VaïÞ½S~Ç,ÔðG$¡¸qãéÉ•+W¤ ÔFDDÈ„††’(­ZµŠiΑ#GÔÏaýáÇ“ñëæÚ$kª×¼ìΟS¦LáY†9=1é˜L¦úúzÇ.€¿ nÿ²²²xÄÙÂÛÛ–ÐI$¡`ö©¶¶–Ääĉ|W!2~”îgÏžMýÖÖV___£ÑH#f³™ÏáÏlii¡çìÚµ«¯vzþ›šš¸Ç“,ß+éééÒ-š—€ÎÀÇb±$%%é»>"**Šß‚ tfÛ˜hüøñÃÙÙ9..Nùmù2~¤3³fÍb—d]\\¨ 3fÌÛ·où¨¥_KJJhòÅ‹I¾ì[š¸ ñRÓ¸JËöÁ|NN7{ô­%ûÔÑÑ¡X“›/ €Î#N@@€tš8pÀQ« 8l¤ùóç7ŽKŸ¶lÙ2£ÑÊïÊÎÎfâ3}úô¶¶6E0cÉÉÉä šššº³<õ¥zÁš#0݇y¹… j¦ú¸T TWW+Bá ¾vxoº„XÞRÛÚÚJz«ïú( oÞ¼© ÚtQ4Μ9C’RPP y¿ððpo‰e´qãFþ/_¾Œ1‚æ÷’Ù2¶vìƒ|»fê1 Ô¦¥¥)ªoÑ™Oø#•••äëôAþPŠ>ÐG©¿ÿîíííççGÆ9·k×®EFFr©‰ŠŠ*++c“¿~ýJ3ÙxLLÌóçÏip×®]tY\\ìnÂÄáÇٗU'    ‹Å‚D@ÏÂc*##ã®Ïßß_ŒARl­0à9}ú4©Jjj*S•ºº:³Ù\^^~ûöí[·nQûêÕ+.8ì'âÓ§O÷ïßwrr wè@·  B¾Î××—»¾!VXÇÅÅ¥¦¦Y€^‚¢/::Ú`0迸¸8Å­\Q‹ì€IÇ’%KHXÎ;'*‰$/¬e€‰YD7oÞ8`é 'øe¥´´”O=Ìõ1<Èæ(H4ô&LÐw}›'Ož”ê/Ä#À>HL>þàää”™™)ú=®3¢Â°Á‡Ž?ÞÕÕµ¢¢¢ï× z–Ù³gFÉò3fÌ`Ÿ)€ž…ÅÅWss³fôITUU±5e:É/+Ôùøñchh(ÉËÒ¥KëêêDûÇú|¤µµ555ÕÅÅÅÝݽ²²â3йwïžfÆ>|xCC?  ½@QQ‘Žßc˜L¦Ÿ?*¿cPÒdè*Ô¶··§¤¤899Qù¹bÅŠ¼¼¼ÆÆF>‡ü^YYÙ¦M›FMB´hѢׯ_³Ú“W ` BŸ’%úîÔrxúôi6¾/R ½Äž={†XÑ1~!!!Ê•! °_VxŸÚ†††„„*0ÉQÇÇÇÇÃÃÄÇ`0ÐÈœ9s®_¿Îï‚ëÐܽ{W4{ º\¾|9ýj±X¤ãèX@Q»dÉ’?¿-[¶P0²Yñè&LFþµB¶¶¶¢¢¢}ûö­Y³&***66vçÎçÏŸÿðáƒ8Yþ pfÍš%fÖ÷òòjnnæsð‰è Xdyxxè»>âÂ… "ÐðªS=È`îÎÖL^„‚ÿ‚Ô¹|ù2Ë8Ô Ö!Ìf³C×Àߋė/_RÜñèë/>N¼xñBÔ^8@„<<ÏÔokk›8q"å£Ñ(f™Ý»ws·è X$R›ŸŸ¯iö¸å#<==Ù|)0aÿèóË K)))<×P‡%š3f´··;z™üåp϶yófÉøI ÌÅ‹+‚ëƒßИëcýÚÚZ1Ëîîî¯_¿vì"$0#7sæL€<Yf4ÙeZZ¿‹G1÷€nù, ¥Œàà`1ѰSTT$Môííí&“‰‡¡X…‰”””°ùbí†  Kdù¨=tè˜bXçÎâ@oSSSÃbÐ`0HñÈljææfÉæÁõè$OŸ>uuueù…Aý°°0‹ÅË@_rêÔ©¡C‡JÆ]rû7iÒ$ñ Rîú`ÿè@)£½½}òäÉ<§°Ž——×û÷ïùÇ.€ÁCbb"7{,ylò~ll,›,Ù<¸>ŠìÀׯ_/¥•¡C‡VTT°_™ëûe¥oW À`$ À`0P²VŠMÆÿÙ¯·¨º6àµgF£ßÌŽš»²Þ!v&((¨©©I˜úh¬ !ü'11‘—¤Xž¢K—.ýš`jRl+))Ñw“òòrqš>é!ûøUGG{<ò)Š"Ö)ûØÒÒbô›À¿%·+W®ðVÂ[Laa!ŸÐç!.ÑúüïîÝ»T’¼B¥ÔÇØív6Óívý²` <¶©ªª ll\UUe³Ù¤V’Í#Ÿ†ŒàgRUòë¾}û(éQüÓØuñâŨP ¼#¸Ýn~ååÁƒAAA¼ƒPCY°`Aoo/ÍÔúFŠ>þeddŒÊÞ½{5Ô) $F>ÒØØ®( ëüšœœìp8h‚ªª†¼*hžŒŠŠâåÉf»Ã¾ª¨¨0úMÀDXäóijj ãÝDñˆýôéMàKÿüM_¡Ì»wïFéðøÇííí#ÿÂ`ZÔSú<èNmmmhhèhJ}ìñæÍ¾ŠÅEq­/ð×\ååå>‚™0a‚´þf”ß4¡/ܾ};$$„Úo"ÁÁÁMMMÒLé à?úä¶sçN}Ò£;üæêÕ«Å3€&„·²²²ÀÀ@±›(ŠbµZkjj4Oë;ˆªª4@[1¼ÜæÌ™3ÊñÔV\\¬¡BÀ›#GŽˆƒ*++5ô3q¹\ÁÁÁ¼T½¦>v}òä U.êÀüh¯v»ÝâGm¸{¸¸JììÊšÈæÍ›¥ÞÁ(ŠrõêÕßùQøSIJ}ùò¥>õIXýþúõ ÁÀ´Ä¤GW¾i‹‡ýd¯- ³³sÞ¼y£=ÄÔgµZ¯]»¦ývà€?îÂ… >"UñôéÓQ³¦ÅÓ£ªª~‚‡A|&È«W¯Æo±X¤®¡( K}.—‹¿Ûð~þ~j£AnnîÁoãÆú³$˜ ÏZš·hà5 þ_hçç½ãüùó6›Ru ~½zõ*-ñÀX¼x-Zä#ø‘“'OJ{˜¥2>–vlqßöÎÕÕÕµfÍžôÄËW®\ÑÆNÞn`äQõñ-‚}Œ‰‰ñúE©®®¦ùâÞ桪ªÖ¿K‹A‹îüÎî-¦¸úúúøøx)ïQä³Z­Ò*ºÒ»€±X=~ÿþ}ÈÔÇ®ïß¿Kg7SṮσÆGmnnö:mÏÿùóçöíÛŰGÙÚDppp]]¾ÅD #—$+ƧOŸJ§6½   šOeër¹ {uÐỺ˜¸Š‹‹Ù>vìØ/^HIl?QYYGÍBß2¢££Ù¯ˆÏ¯R€qx1ÒàôéÓ¾S“””Äk–ÃÛ7À¯øîÜ9¾‡ÛíöêêjiÎ`ýÍæææeË–±ç(Š"¶'NœØÚÚª>˜„X•[¶lñz|±’×9Q€ˆ;óõë×)§ñ½>ìt:¥ù<é‰ËÙØív³‹sëׯ§¼gµZŰdzgÏîèè ù`BRlKNNöù¨®7mÚD“yi#û˜ߓ٠²²Òf³‰Û8%7&55õñãÇbHãÁOúøðáÃU«V‰Iwñ±ÙÙÙ===ÚÀ‰`6¼<‡x$L^^žÖŸúPÑæÄö纺ºÀÀ@ö¤œF7Yü+..~õê•Ó餅nîîn–÷öìÙ/å=1=Žö°X,EEERÌ#%˜¯Ó›7o™úØ„¬¬,Z‚¢0­ÆÆF»Ý.îÞ<°±œÆ3¿i³ÙXÆKII™:uê¤I“x´£ÉbÒ“ÑÑѵµµZ7QUU:€ ±Âd›““#nƒ™/ÞÑïðÒ&**êÌ™3N§SëOz^› Œ0ñäÅ*ñÎ;eeeÇ/((غukffæ´iÓ"##õ5.–¿ 4¿š0aÂÒ¥KwìØQZZZ^^~ÿþý/^´¶¶~øðÁáp|ûö­³³“ øëÆ=zD{¾~«çciÿ7v&,,¬°°°««‹žû633sÅŠ6lX·nݶmÛvìØ‘ŸŸ¿gÏžýû÷8pàСCÇŽ;éqâĉ#Gް9l>[ųfÍš2eJ||<;!²Ý#""‚ìÊÆl@» ûh·ÛÙ€½‰†]FÖÿέy endstream endobj 1623 0 obj 641 endobj 1624 0 obj << /Filter /FlateDecode /Length 1623 0 R >> stream H‰|TMSÛ0¼ûW¼#= ë[ò à =t†¡¾a+Äm°2¶ M}Ÿ 4±ÑtrÑ$»y«Ý}*NZÝ­_w½oáqÿ¥þQ0J* ?o'VY¢*QÓŒpKÔÏÅ |Ïa95D2nçØ}ïv±kFˆ|ßœ79º ”hJùœî!µ„Ù¥,÷8†íKô° C—¥iE¸‘jNû“…J˜Ðr }t[p} ¯>Ç’\+ÙB×€÷GÚ.Œ]ìBa Ðõ'?dogÐi‰æïü^š ÂѸ¼ŒWDR¡æ´k \¹èRÌqpýøœI4E/fv1b)ºôi¾\cz12æõqc‰åT.õ5?}œŠ‘.¶ c—ͪ’ÕœŽ!´>õ©ÍΔœZY3'=î§YÙþJec‹)Ù»K͉®–z°çY°eDYÎþæ¡¡bñǸ; L ¥ ¿i ¨€úäš#4¡œª‰Z§æÜ8t*¿L 6%¬×<ÔjÒvCý@&q×uqýí²(/°ëk×D8;+ëýÎCy㞺ÞM½//btÍ»+W!Æð åj~ÃnW p=)vJIN¸h&bàáü|uuY¬ê¢¬klÔëÉ Z%7N§£Jv˜ÉæÝ Ôlß^¬$rþ33šÉôtvX…=R¸[ÿ`ûHÊÄÑÀ¡{ÚD¸çŠá»H?3¸À­³;0ä[+0‰"VÿÓ¹JîIs}¼¹_ñÁ2”«™±Â. žÀÅv ·Iûg–ÀýÀ 91­ý𚈟ñŠc2Œ™ÂÒÓ§? ƒ™+\%RqÌ™¥1±Áë©J!y‚ endstream endobj 1625 0 obj << /Filter /FlateDecode /Length 27731 /Length1 46280 >> stream H‰\T xTÕþϽïÍ„l $™ ¼É#)d1Šli$°È:¡ ™,$AB&l&6YB‡Eäƒ""«©ø -*Z[¡hU¬e ø ¤ý>ÄŠÌë™)ôï½wî¹gýï¹  !‘3.?9¥ÈíÜ ´¤³tlq¥Ë½­­ñ0м %Åsgk î3syïKÀÒwª»¬òdmA#` æõŒ²éµS{GÛª$¶¯Ú\^ê*i ¹±™ý­a›§ÊYе²Ë[°Ž×½Ê+g×üeÛ,Ö Ù„o™^Uì±Ë#Mx½£ÒUãît™Ö³½ÆúÚ We醃]Îû{óú{wÕ¬Ùœ7?û|ûî<ïñk@ û 4ÕÈâצîB”ök^á÷ªïï­0¯úö}ñ [·Þ&¼MxÄ{ÔÁVïàZð"‰M¨Ã:Ô‰,ù5ò˜T–¯£(³ÉØÊùlEë>‹ù8Œîi^Ã,•³ÕRF:у*¬¢1æLÂye1b fÀM M§¹Ú\kîÀN’™wŠ™ÚÌêçæ—Hb‹õ؈ó´¶Ó¤s”…¬ù:f¢QNVÈ,3à ìxsP6:&Ø{)®P$ÕÉ ö²Ý4Ìã¬Õ“QŽF¦4RØÕIf¶Ù†î£†½nÄ>djÅQ|AÁj‡¹Ãì@ñ4×Ó‚StLzï.òcÄTF©óNþ€?á4éô®¨RƒÕ5]}Ñüáè‡ œí.¶ü'Ýó™È•,sB—W}hã\$%Ó8zFôUb³œ‰ŽØ©Œ÷ö~Žè ír»²G¹cyÜ{Á å‰ÃkxïRWªÑ,z™>¥¯D†˜"^—ä:e·rÆê⪟C%VanSWD¹ô+*§:ª§Wi#µÑiº*†‹ñâyqS–ËjyTÁ”¯ÌR«ËÔ–«^§÷¸÷¯ÞÛfй ¹Ü‹8ûõØÌ•B;Î2Ç%R)ˆB™4²Óz‰i>­¢mÔD»©…£œ¦KtþM·èŽ“ED »ˆaÒÅLñ‚X'6‰v¦Óâ[ñ!cd‚ Se¬â¬êå¦ò¢bSÚ“qNQÔ7Ô&uúžÚa ¶¾€€“?n¿÷œÞåÞï>o‹yÝø mŒBO¤rö.¦i|Þ Üqïàc fìlOi4†‘™BÓ¨šjÉ%ÔH;ý¹ï¥#ŒÒgt“s=ü9?)ˆbÓs¢TT‹5b­hŸŠ¤UÉβ›Œ—#ådY*gËZÙ yRþC^’ßÉ™L%Pé©Ä(qJ‚2R™¢ÌQ6+W”+ê$õ„úµ%ÐRiYfiµüËú”5Íšc͵N¶¾b=hý$ »ó}ÀïðÐCä"é°ZôW¢Ä)qŠûy Jd¶àNM´\Ì£ÑK­± Ci,:”8ÆúCñ†øN •Ù4šò1Mô»çÍ®ð´Bªò>®+G¸¶Sì¹ÆLóÅMK0öÄ`Žùì«$ÈøBž'«²W)‚®‹]2‡»à¨’¦:a—›°WVÓ<žNwVr¥·x.Œ§ú^šb,wÑ@ùãyñ9®ó=^ŽßP‰R†ÕèOu¸‚7ùVôQgXâ-ÝèÏ¢BñˆÇ¨BÙÍÕ ¦^$Õp,¡É²ÑrSœÅ´+8'ËÙ·‹½2[éPó¨œoÀ<,Cµ¹µªS9Ceô b• <ÝêdŠbçÿž*“x¦äÛ}˜çÀp™Í’Hîœ1ÜxB42mà9¡pUð–§Ø)´XÆ‹V”©¡ÄSPNxó0Ñ|Í2Ì0×"‰çA½YÇ›ð5^A-õ¾7žà›sŽÆ¨Y¢]Í2“„Gœù¢áÑóe´c)ß0íEÒÔßã|†| 3WšãîîÍv#ŠðK\æ*op„Qòú{ÇŠf3Kº¹ÞóÈ5w™=)åætŒÃì´ªpYÒ3&Œž>,í©C‡ 4pÀÏû§ôë›üdRbB|ŸÞ?‹‹í¥ÇصžO<Þ#Úѽ[øc]»„u  ì`µ¨Š„D‡žU¨q…†§•ä[ë.¸‹²Õ1´B¿šö¨f:kNý?Íô{šé4)LKEjR¢æÐ5£-S×Zib®“ùU™zf\÷óÙ~~ŸaÞngÍYž©T¨9Œ¬¹åGa&»k ÌÐ3J“ÑÄlsF„în¦ˆ4ò3"Â1¤Y „“2lz¦ÃˆÒ3}2Öá*1rrŽÌh»½ )Ñ Œb½È€>ÂèœàWA†?ŒaÉ0¬þ0Z…¯¬ÐšyV¶†¡¨0!¸D/qMrÒUà‹Ñ%ãf/^Žüß’wÍpÖ?¼-=ŽÈ Í·ôxê5cK®óá]»ï[PÀ>ØVÄfz²8ôJqt¾ÆÑÄÒ§AK9¤æ«ÄWÕ½úJu‡OR8M3:é#ôrÏ´B>›Ç@^­}ŸÍ–~ȼ›CóŒwêvcX´^àÊìÑO^íþ¨t-êÑ¤Äæ°.÷€mí|Ÿ y˜)}°ççüê>ntÞdÉ—‘þ47„¡kœ‰Sçšù>¥ƒà)Äjü[%|"F§ŒBOØŸÜgo¨±aºæ¹îýú·J\÷%–ذ[ð±¾>yÐj¼ÿo$$ññ¾±fð™rŽiþõ€¤Ä¹­B×Ýaÿ>ä0¶®‚!É ¿Ýî;à­é(â…±0×yo­¡(zÒ“ÿË}ÕEu]ñóÞ»ïíj´®ÒµQÆ"‰FQ”ñ‹j]E‰J4AXX6¶âGS#±±±ImÇÄuPÄ:i¢†ÕJÁŽ‹! 8iƒÎ$Ôt¢ÓL1mc?òÁL:m’1™‰^ç¾÷Öåá›´ÿ”Ù¿{Îý:÷ÜsϽoZIL-åšN§Æ䚈Sï^š†Hn#~ÊúcÞÛã¿Q¾±IË·dÇ”±ŸQýM«>¯ -/?JY-µ}›W8@²êçÇëìR,)'¤%«vIMÖd-‚r]¼1 ¡1‘ŽŸ!ƒzs»Ç‹¨”%%7æ+]aý/žšz“ÚÍ÷¹—¤ëÝl3cÙÓÊ_ 0oDTƒÁ¸ó ÃÑèðu5k•6!â©0”š’£ Nf:~ífç|FIr,—åpÄŸ¥²Å “ír þ8:3¦ç"ÑE£¹i)¹ÑÒè†v3²1-Å—íPÏ©ç¢Û——:Ónž9˜Ë­*¯¶(Ù8*-mMS*ó[JeA8ÔáÃw@eaè´ª¨9¥KKZ'£.Ôχ€Ôª¬e% ),Pž‚EžV½²}r¾"²VH…”7µ+$u^G§Ð¦vÕÒù °t©ã?Î19…¡Äè‘G²$ƒ¯2|9}­ åøèê©þ,_¶ŒÑ„?}Ša«øa#¦¾Nß;ȬôL ïéERöSXm¦] mÄIzm›!/Ÿá¾hþ ,Š€ñ¶n5°(`m;¸/ÆØÎãHÞAaïDzH/2û0_ÞE÷u(7Š·©ÉX@Û C¿Ñ5F3ÕBõ› «‡ 7 ¼ý2íò0O5¾ÕÀ€ýTŒsÐ^ïÚYš+v˜ob-%sP9îçyh“^ ìWº¨Ré2Q¦rÌ¿ŸõÀ2›W`œ}¨_Œ~“!—£<vàQ@*0E=I Ô/Ó à™X±µn ‹¶ðšãk‚ý¶MƒaÙ˜—Ìù+ M]`ö€‡%ØæF¹ +µ,Š€Ë€d _}•¶‰»I¿žÖ{Hcx‰ØO‰Í´²; ô6:Ì2°Zb‡Ù'ŽR½v…æ£îF Ö±þÆËWý˜fªÿ  #v#¾–aü=@Æü»Œ‡ÍTˆùg€³DŒ¡   sýËñûòìëZÌõ©—c¸™ €»°/àA¶óÏdŸó¾+Eý Ðö´YÇ€þ+X;Ç$÷áþ+ÝŽÃÆëLhS ¿þ ,?Ûà@Æ™ Ô½ŒqÆ0˜ô@ <LÁÜ„y5¯ˆŽMˆ ½ >„m2f­5ÔÉý´ÎLƒ=Ï“jœ¤2©<&ŸŽYØÒêŒÍgŠcÆaße÷ʼNŽ©8ãì‰^º‹mg±å0Ÿ;ØÌç¡F R%ø0⸜c–ís˜ý±&}‚3aó„µfÊ3ÖˆÒìX/wØñEœ·Ð1ŒYjlDN©§â»x{ÿˆ6Š÷i™6•fè™Ða=hS{i­ïrìå=Ÿvq-ÃÓ­lÕ;±Îø³›žO¿#ºÕI¢[Ñõó]”óz‹ú¸,b7”N«Ž™‘X÷Ÿê?ÔKz rf‹ùžÞmšXÏ“|&<½J&â0ô§p§wšRë-SÚ=AòDW€‡D€²õÍØ?ò<ÎôAýMzQ«¦¢Ûü£¡ˆÚM?mÀ÷Ó(žK½Då ¼=!ŽÄœ;–vâÕÍœó혚6pþ.ØxÇÆÇÀGˆ£Ÿ*Öó8?Ëû9¨°âÕ¼Ïót|ЉOWœ–¹âs„;.Ý,ïäwçœÂŽÎú9?rŽãÉyŽóŒÓÞÍ ý£j3â˜óð«¶Ïõ$«`ã[öÙGÆ~›¦‘kž0ÚÌ&mŒÙdÌFù€nžÀºwÆïÔÙoß§S»ÔÒÓ-Î=ªgÑ6;Ÿ“ùæCzJÞ£EÒ¾aÆ)Ú­_þ#J{ëí3Âî2Q Ÿ¦*¬cœ¶çz`ûDîÑ­|/𨂟ù.ª¦rí ¼¸o–÷Åb*†íç¥w*3ëôbj4zi¶"×vÒfÞ+^ÛÃ{ï}„FzýÈÝ4Kümü4íê¥tBÆ÷-Ãë¾ðl"bv Úðx ²O€ÆØþ8&}!ûã-ÂñžÀ˜†ŸÖÊ÷D/ýDR1ÎPƒ'B FgÎOMã8úÙô/ïëCtÎW%rS%rÉø›×´¬g'ò: EࣺUÀ‡eríË„•c÷óùÑšévŽãò0¿'QTL£åFUCW­#ObÞƒÐíÅùÍÄÙ=€þí¼M˜ûôÜw1¿eøÀçÅ $#"ß$màw æ×Þ¥mU"Ž—xÁû(÷…‚Ø» ˜eAÊÛ¨² u>‹•TÍGI}½¦6k· nùí{èQD³µY4NŒ¦ ñ;œÕOèˆ6ŠÖ‹Wèˆh§*–EMÑðJ×Úð¶dýEº—õêkk),¢%}[¬§Z+bï÷4\ܽF?ý‡ˆ“Éèÿ!Ƶ¡¼Ma­g«åOÌ“ÜNÎÑf3Ä Êý muà²Y̓ßVaOa/—Ø [ãv:6ÞÀ>¹Ný¸8B ‰ÌË@ºÅýùj5µõêŸ(G[MßWš`ŽR®Òµñ Z!¹ÈÇ?GÙÌsèy`ÊÓÁ¿NY2Þnsè `Æ> ~–¿ êRšË ]P üÖ©KÏu#}"ôd(?G†rÅìc¸ÛÃÏs1ß\±þ‹O0ŒÝö<Šý»úÛ0¦KÆ<³Ås´u({†‚r‘2¥-×èìxìMàr§0Ûwòïóû»øºôï?ÉoÇЗ”K4 \.Ò¡ ÈK*WkŒ&ú±ÔÇ÷ÏÒ#Vï¸En½[vïëP²ú,O„ñxx’ö2Äb´ܲ÷<íe/¡î¥Á²81Ât§vXÚD2Æ\²qîL@ [ÇË>UŒ¸|gà¶²ÿHªfȳ ¨mô#^?ùHðë\ö+æ”õÎþ8ûâÞØ€0îŠ ” ./q8ßv¾óùV¼ÇeÎ%=®6×ÏÄõ³q‘ïšùÿœW€.àåÿõ\œe8Gø8O\Æ;d1Þ‘ÝxŸÜGåD}È%ŸÎ~†ã;a¹û VbŸâ²>…µã5”²Ëì2Rû$Zì7œ@MÞ‘}y§´<ï8K‚öqjz‘œaO+ù\d»Ht€a°‹èü"Q€& 8˜á]‚w‰hÀÀ9@ðy+ >.‘e€ 4"»Â0v>åo#%ì#öGRŠIý û“Á²÷ þ3ûƒÁ€Ýà1ö~Ê-“H!âçH` \ƒxû]ºÊ)g#6Œé‘ak€0ÐìNf6Ì*S{e':$cØ\e–"_üKò–HÔý²ê_5¦pã_³L·ÒígªÿôT¹ñŸ|7þ¼ÿ Çáqãþ9ìÚ!×çT+ù9}ò2¤ȹ‹‘ì"—1¨×mt¸5”¡ûÔ%–Ó–VK£å)KвÄâ±È– K¹ežè%±Xœ#ÚDQ4‹&‘‰Dœ—ÉŽ«¼“yf‰ÿÓ׎áKŒ[c_£"#Ï}®gñ- 4®ì!ñÝŠ~{‹7CmÍmz·êÎ8‰·4è«ñŒ%»Y⺥é[­=”žL Ug/g(iiÍÐ,oz©\w®oí'”:^z½œó—^O$HYÉ‘pYعαúÑÇ˜Ž¼ <<Êñ+ôÓñ-­ú¯+z;ÙŠD\ÿ᥽µŸÞ¤×cÑ~zƒS¢µ_XGoÆ6óva]4‘ˆgè6CGz:¬˜†Nt…ëˆ"ºsº³9çCWÅ :«•ø Ïj5t&Êu=ɪX´§ªÊД*$ih’¥Ê¿kÆ|Ðø|†¦D#c†f¬Dã}!q¹ q» }‚¸ ‰‹>aH¶=”Ôä%'HN# ô¡Æ•ÓÏjŠÆ¡ ü¿GgC @Óu‰=í±No¬Ãë:ôWì+ӵ݊ҳ'ÁŠ.ø;vïÙÇyW§žðvFõ=Þ¨ÒS×þ˜p;×y£=¤=ÖÒÚÓ®vFSuj]Ì»+šHohª =2Ö‰cÕ6=¦³&ÞY-kCè1áoàc…øX!>Öuƒ11ÖxSkHëÛsœf…6¬×ŽrO¢¡D:´ÎX¼už²cå&þeZHès¼ zÀCOFžŒðž)*F³=*;Vç) ¿Ê‡$4;¼ $Ðu8y˜”žÍý’8ÐÔu˜OxÎ’ÿë@,¦«»¢É.Bâúâ-q=ÜÜÖÚc± µƒ_’¾f¶­°0–ÉŽä—¢q o„BÞVÏÛ¬Ö¼ð¿ïÿá<¯çOÆÓTuÓ.’Lº;Þ°´´áZÛÛZðºÄÿ’ \`’hr¶#m’ó ¿ÞYtÎ{ùyèÊsî,œ’œŽŸ%¾Oa¿*@ÁŸ‹…4ô2:a¶dØu.)0MÄf1MP²@4L0aˆ-'Vz†.%eévýýúoJ·ê7ݯ'aøÒ=˜åË<Ã]‘ÜS„‘{j¹KÓß¿7ÓÌ: >Á'çZÕVmÇžé´ˆ’”¡+Ò¤»X«Kwñ"H‚"Â;ŽŸ½Æ‡Ú~ÿö¤t{ã„1ÝNýÌQz*´ÂlA™/QzåGmj:þÝêµÞ Ì4Ñ;´øÚåûw/$^9=øÛyFydüNuÎB¶PbV›D‰ÓÊ3°u Ü‹×ýÅ™ìõ^Ib[áÜéµÛ g¢·¨Èpþ©Úm6¶Õ^,³âwœùù¤þGžs½ÄQ[íGYQRZ2_b÷Ó@ rmõ LJÚ6Ÿi¦ãôêPÿéWÚ>¾{ÿòµ™›3"²ü™4­1õ‘B²J•É+›…³õ€Íd›. ¬‘1¶`γmeÜ‚í›nÕOÖKõõ¤æn­åË|ÏJc…Ã3ßã`ô_lW lÇž™}Ýíãnwï}>¯×v9p.`ƒŸ×¸õ’€šP((Å€[NnŠE‰\J&@‚IÊS¤5L!cãÃ& m\(–NUd„”D¢¨2¡¡’‹ª&>÷Ÿ=5¶vvn3ÿÌ÷øÿͶàÝ'ñîlK¿y‚žOdóœÌÞÀ¯ 4ÑzD€ÿ| /°¢˜©%‹¸‰ðÍÀÔ"¾Føö|ÔˆV¡M¨¨Ò!9+IŒ «0/ÀO[5£Žf°¦Ç§—•W–û¼¼0¹ªªú|zÁâñ*&nÙzîÇ0ïLœ"ÍäçÀ¸Ç­Ðj²š!óð<˜²‘0·±«_§+N¨·Qé¼Ìô2Ô›YYè›IJpª§‡r©š6ˆžA“¬ ¡ÁÖæB<ƒØ¸ßÁÚQ>H$L.¨¾t:m§ç±ÏHxÀ ^@ÌØ.oœ¤ÆnX¦7¾ŸÁ„ùs¾—Ö"ì…§A" æ"w€09{n=Œ\«ŽdÔÖmÜ´Xb£:@1Å|¸ãÎöì’÷ùa‚êÇ>c5îð.ן%ä©…K,1l°œ×P”€35vÇæíX!J2§†dzùeZ™^C¥@°44iX]QÞYþÿG‘x:Òm`«Ý¹g…$‰§Cªô Re™¶ôÚÃ!ÙÍ›!5ôï"¦ôþØMä‡C‡Ã ¥ÏOY¾l—¶»¯º8§ ÉlÏ\ßœÐSy =K}KCÏæ%…¤´Ì³Ò— ý$où¿VZïnãûÔ«ÁOÈuþºô©;ü0ÜV§UX\QæÄÈ©:‰³½@kE`Ÿ– ®šÈ‚k7®ì̉ t•h‰eÆÃĉ”@5ôÃÑÐàQõªò~¿"ã‹‹&G=ª¿|F•¦F‹‹¾>9Ô±¶kÍ“ÍCG®­Ûs¡sÆÎΗ7ÌI!Ìâïœj<—û$›Í~xú@/~;»ÿ‹ûxn¾÷ü6Ê•€_v":c™Œ¥hIvÙM:ØS,v"ž#Œ“Ã2Áƒ¢½Hׄ0õ(mÎ]K³Ø€ºl@a—­…kŸ°ÌYŠ»‚›Ø‰2›œÅ.$õáZü*ÊI£%û2îåð#çÃu8ÖâtP"VX¬ñ¼P *,'_vÏZ¸ÿŸ¥kØ—¾»¡àÝï 6ÒµÕ—X›¯ŒsÉ©©JÐãáëJ%M³;÷,§ªBÏðr¥h€>`ô®qÁC¦‘)ÒoÉD ÌU#Ä,7(½–¦m•fh¤u´˜AÉKN(ë:±'´œnLÌsÓ’t©7¼ô» †¦R‘$R .lïâ7ÍFùL磳ٓYUOpOðýÜ|¿pÅq5"<#7È ]I¹Éµ^_ïyM¿¨ß ßÊ»–?z=$>¦òUCåß» ¿ÎN@+lˆªƒç#ao$vDÂàŽp„Q 5EŽ›¯aøÔ öÐ {;ܘÈbk`v›r÷“_#©¸Æ’µž:ÒHV‘M„%}ä[ðAµûlŽìà+bÔ^ìÄZ—M k:Eš6×´˜ ¬&ç´hB5(¿lh˜ä+ŒVâUU•@}Û„A`Ç(y¾ª&I¿?ôʼnƒ/m9Œ/xþóÑЃ§ßùËÑ¥ÆéÓ3k—]zyàÖòä[‡wxþþñÝÓKN^<¶ý¹éÀ”Ec·Y?0%†Æ“BA‹î0‚0¥jL†¸¤XTܲÛÅŸa’W¢+r0iÖT)ùM!JQ¤GK©û¤Ké?ÒãuuD2€_æ²zY«±ô øMá¿2[Ù¦°³µÅÚÚ<æYÿJµÙÛäAYçݦìð¾–w\9“±y#ÉŠ‹0Ì‹),, Q Rpe·,ûØ`9†Bd…5¢ä LEom4W™Ä R&››…Ö¨íMQŒ¢j”@Ä#½ôN´}j0…kºBC¸×@"¹dIÜêñ~óì„aÙ(Rω%r¾5:LÉ y’♃¤ ‚ZqKƒ§ÚO=ËN¨~ØÀ‚(ÐEuìMn:stcù\¯.µ¦¶5?¿ËÛ]x÷ݓ˛¶´gï\ÿó~%x°íO[6ñþ–¼¸qÙ–­[Íž+?ëjj<<ÍxïKÙ߆ Ãà*×þ¦à¨U¥/‘WȇäNùªÌÍeæ*¿a8Ždž8Qb$ƒØÖË0,£ "+¬Àô“~ä€b²ÃËÂ#hPdSdy/ljV~A…8á„b.1Ù{v†S¸ÚR«¨¸BØ\X)´» ¥“¤x+Q‰IB_¦ï@gø<}‡ô¸Rx—½ÓŸƒûÙF8Bí¥V½­Ú>…éƒZ-N79o›cA2n·¶Û®¿Èùz,çš%•Ç™¢©q†Íϯ¥C4ðŒå•-).o^—­h\.ŠÀyjÜvÛ(o+q¹Vî+Ö “}£[ÉÛo]¾Ü­ÄÇ™ó_Í9ž=¢Þ;šâÑÜ_ÈýÏ;žåëò§y§'èz,Ì8˸2©|Œu¨ѧ{<ƒ.·×åñºÜ HÄòÐ@,W´.·åÃãAõºYt¾ûW£7"‡Ãý{?úˆ(~ðj:xÕ‚\(ŸAq¿öJh’=—ðhfQn®ÑiçUSíÆ»F"$ʺ*s¿žÔ†Äµú¤! :¨·²É‘MÎbÇ!ÁºM™n¢o4QH˜ž*ðgå=Q1Ñ@`\åL ᓆðqC†©Ú×'y1±>éƒÆ¨’I:ɲäI¥ÝéÓý%ƒµp^€äEPY\dÆ>s…¹Âs[º“¯Òäã h^Ͻ®n¥7Rš-mè]ÜÎmSo[¤m);-Ÿ.¤3}Ç';läæpä‘Û×I»Ï!!»I`Æþ\<ᤛÎj°¦Ÿ©Sd“^qõée=£ïÇïõX›ŽA9 ãÇÝM¦ñ2Á¤˜SÇ×ÇË„ˆ§‘8D{‹ÐÍ‘D@!åŽHcj‡±ÇS4-!‘’ÙAOjÚN„#^Sÿêí³çî®]׺3öèڵأ÷Vl[»jëŽÚºí¥U›º{6o<ÈNòí]³ÿú­ýµ?ôå n?óa|n×y¼pUË–e/·¶Œ>©ì˜ÿów6îNÖ‡“v`𣠋S€V³ @ª¨C »Òˆ·’²a*ñ¨Õ@]j ÕƒÁjÈñ‹SízÝÝ|«Ó¥¡ÆTš¥È Ô1aïL"LÉ© ú#40 èÁ€· üdÂL7~=®Î'ñ4)Ù4!(ŠÿϪϮõ?KåM\H™Vj›kV\KÍ5®ZöUó:[«Ù¶ÁÞnk³¿o>d;c»k¾íxäH}ÎÜiî1³¥¾WxÆKr™ Àdu:xÇTû|Ý2’¸&“%ñ§¡8Íõ#¦ àå ϦªŽÂ}½„ú ãX2(ÆÐáÿÍDG ˜’T†" 8NdŸç™¢i^Â`pG&£–¡L!c¢Xªï1¯_^µ!4O?½®o vEßj¾ÿá/®3—~öú÷ŽZ¿¡ WÉÍß™»ñj½d­^‹ÕWoaùýØßcbÿŒ8z–¶¯oðÇí@c€™SPRlã<Àh*ܬB¼ aø Ç1Ïi™ hÄ*´KݵvQ)…Mý@Ã!µ¨ÐÄÂujhhˆ  ‚wŽÝÄ[è»uh«’×$nw‹Ä{¢ ÎÒ£-Ö–k«µ+µ'µÓ ¢V'5… Ï«tœx]Hq©‚5cB*^rÚ±T•Ç•qŒƒÃ\—>iRpd›”‰mòØXT¦âF"ù"œvjlHšFÕpqت)Lg“V7´y*Ó—/%'Óˆ»¸Rާ'3KñªxÌ ”Åâ,–²8ŽÏÊgðÌe†aΪMƒÓÕ5K¬þyò°|åUFᜈAjD ` ¼á,"ªÏɕޖ°¿%ûíî±}4z_‹-®¨® Y¨}©ÔpNÙav:³ŠR u/ê*¬/8ËÝ峪êš}:s–{4Ù_‘mz`fVµ5œ±ÔYí«®W¯´®Ìªõ}×ÖœÑèÞjm±µg´9[=é:9¤Cl‘ˆZ½7_ ‰Œ(˜O3³ÑL4‡9Ý;³”ÕN!Z­;üõ~Æ?€+‘—9Ý—7Û­°ÐÏlQôrèyä6î×»óåzHðøšÄtö–•d»a¾¹˜NEã(ÂEé‹kÚÉYŒD*£cD–E¢#cà"`Ó¼h4ñ< çR†`$ŠP(=³ø • —ZŠ Ù8ê‹§‹¦1nW&ǘҌ\¡Ã]\Èóœ+ÓíöÂìb#r€ 0ÉT«y=8-M7:†Û1£kA¸{õ5Ìv_FQuãÖ#±ž¡»± W®àÝ_`¯X|²ðqìðý›±±Ç3¾ÒŒÏcå1nk\þIßÕ¥¥ÄÌ›–¬o˜Ýº\iX£˜³tÕÕMà²ýK#ûÆ–·ë'yŸ á”]qæÑÏbuw¿ˆu:ööêëÿñƒ_~6rë±ãÒÅžK±›Ÿÿ.Û›ŽçîØ;³åRíö=3:~þ2C% ®ëÃ:½LK•½‰ÆcJÛ ÑašÂi:VÑß<9_®S¯Ò¼$og;䋪 ü9ùž,ªUa\Í„äUâ1ù¡ô0å¡NÃI\ §cE­FÅqPߪyA ­æ%#Ë(zÂÈÈ!Hi0İ,é3‘>ÖÁIið”Æ®R©í<Ë÷3õŠ©¥; ƒf‹žDÅ(9ÐJýfˆ»ÌÝâØÔ~Œ1$nIl‡„%ò_Ö —f£ðŽÀ»õþK<ÓႯÐaK—3­eA B ¾­ª\¿Ô{k®•Þ)AdµÊƒƒºÁÁVUü6ç˜X5ç˜}Á’ŽœžU OîAåð˜Pn7ÅO>.\ˆ]¬“Mu²//°Lá™Å7ŽŒí뺆ïÿ¨™%Šü"Ž+wU»j]Mš ¿Úö†ª^¬§Ú"ò^³†µz³íæ &ÕhÏÎöùÐä ;œÛ»Ý€ÔV/ÁÇCe«’$ÉI‚äyrò¼š¼§¾æÓø…Yi2yBÒ’yÁ…‰Ì’l9v&”í ã(žú 2_õR'Ç—~ß¿nÊÌYõÏìJˆ—/ŠÕÍ¿oî‹Ï¥»¤æþÇí«.y#µ´»¥R˜ãö/i˜ñäøá»sÊõsžª„1†–ÜüTZ-½Uyïh+Y&ØZ­y|Ÿ™2Ë@Uj+jC«Â)´>¼í^^Qû…õ”z …¿»5OØ e¶RwY¾Qð}µÉ÷HNSÞ¥'¿òüÖ³CxIۑ߉÷’N÷šùPP÷éA:ó“Ã¥ ¾*M,Mè.„Å7âBÑ¡Ç\3QÌ€&XˆS'ó†æEZržŒQB¢áÌh7O&T Ù ã8À ç)ª¶³ÇØRÀø­bÏàýé?_¸”þûËqÝàGxÂÔãÕƒ/ø÷ÂåŸýã¿©ürø$þé»ðºÏ¿=±ãù=é/·Kþ›7ØìÙÜ3í‚Ü]0Ë\G-tºõˆ QpÙ L®\8¨2C”#—?áÐã”,ë÷ ½o²Ð»ž…^äNèeìämÈUVÔ=eÖ !;µQ‰ŠT´åås‰M‘¡d~Ÿßël!!Å Ž\šÅ~ÙEÅx¼ ^ëp’!4àøA2Àgq´ªÖ(èÉè.üßWç¯i^µòá_n=½!Ý[_©|°á?y¸+ýŽ4~è±ôßÞÜŸNX\ÕU[ùàçû.~S¨÷3|yTЋfŽMŠPj·#Ad‰”Q;CGX÷ÔØç 3 ÙP‰TEÇÿѮΩ ,e’ÖÀ6Ùpu(~gŸVV@Ô9ÑÌ{X4²Kˆ| ¬—ºÒÓ_K«]¬‹`7@ ô;3ÎcØ ã?„°Ó †BHP¹¿M…;îÌ4aú.÷å© Ç¸?Æÿ!Xä,דwúÞ)|}Y$`üƒW€OßûÿdEª—„c†Œe.œä¼Xë‚[­Ü '¯eâçË3*²<>ß3¾„7[|Ј…¡ü`~^¾`sÆôâœXAŒ‹±Ââ\5E~—7 ìóv¸'Gq¾Èö¹áˆ8¢QT$ÀØÂÙêϾÖa³šTìþ{øöï ›ÝÆ*@¿[xˆ,ßœ>Óq.½»çnüp7ÆÏÇFë}rÃàÏ£S6b²uÍWß%Ó_ãçW¬ìÇ‹ÎÅ+{–öý¾¢-ÕðÃõ³7í~3}=µx2vC=ö£Œãp®©õ 7§F"¹C>#Y"D¡ÐÁ†Ý#ï2Ï7WL…O=O½>¦ÍøäÃ|ò%S*V‰b¡Ž•R†/½øÑ üÆ0Ž?Ó=†Š µQmQÛTqjsn<ÙžåŸ YuŒ3 B?MŸ–H–sÂ0ä’ð.„sï ¹188j“F÷‘ù7êÉ‘Ñðñ84Ô:È‚€Þ9Êz‡Hàõ‘)÷×ðkuuXa]KÇ[×ÂbëŽX×Ü ¿šeª^cH[¤ƒ`–µÍ¨Bb92Q#ú'ú InAÿsžIЩVvþ“ÍÎålv®™ºµéñììÏ6!ߺ…ó§`K6·¯˜6šÌ¦r0µbµûø [ ÆÉ7?óm耩?N–ÚV‘ŸÙ6©›Ü6ï·…µ[šŠq91Y¦1¥ïæ=Ì3n0‡‹¸a möÄô³Š)IË ¯émô¶xE/ޱyž¥Ä/²Eý(Ã)³<½ÙH.éÉv+¢K\^ºŸÎ”†w²Ÿ ÍÚIˆkŽ©ím­3–•6Ÿ|æäiÜ‘Ûù뺕k„+#y}o-û„ñ"ÛúÊ N -7˜–%D™ í#ûM—÷Lâ×î|¶»ߍÅÞV²£9ÛÉ»ð¯»à'¶#ds':ê&¤nî¼~D¡šëTSÝœ§ Ì`.›¥ÌrzØÇ’Ë)8&Ô¡hˆ:ˆ¬ØxôL nôòèàÜÅžL$׳‘ŒX‘”ƒ§ù`8qB?sæ„V¿xœï+qê¶1§Ì;G–Ÿ?E~Jü¤¬Û ™Eøxêc¼ªÝÖ62?íYéCY ˜“°Ó=5.~HNa †+…)Ëg߯ þ%ÇHò@®šL53‡lÙôó¯E˜ÅrµFoðiV0I+þâÌ™kqQ QqµóYç_!•ÎÎ.a¼X¬NÐæ ÄÕê/´*UˆDj­6›Ì°›´Aýž&o'/ ÛìÛh§°ßnó—¦UHÄ'I„:UµB¢`Rç×l‚˜¢Ô!+ÐÁš¦³:µxRâ HÅ•‡%ƒöáJSv:dÃt®U°2AjXOHH0‡ €èjÓ±ÞGš^7¤)%)Î#nFry ´®&§åθÊ;xëf( š Ò ù%Æ´×Æ§¹ô‚ tÑm‰õ'ä¼9 < 2ö,WX³9á³RøŒ±ÿõnMfOTØíû½Ñ„6!šPûÀœœÐª&sóèDx:1a¥¼4jOÿ4ü±?P;Gjq!voÇExA…?o~KÇÒMÓó¤á+[Ðø²0r£^|{x’x~˜5ãN˜Bl—ÁOw{”ìÄ ¹N?¨Y¦ ¢Ì¢ r ;¹K‰]¨C$Äa§¢`ØlR–9¥[ÃI²: ƉäpN 6”F¥EiSRФPØ‹øxRáÇîmAïžP·¤1´OÆùLj¿ú­™äIÀ2‘Hly…¬öëGÂÍó¯;Ý5Ô€Ü\YÁÖ¨A5ëþ‰Þú5«,³*a——`"¦7Ì*ËdO ¹i*… »æƒ·—Ý_íõ‚¶Ì0˜9̼ޓ©_i(a5f“»wžÈÀ©‘4l¸Š•N1Ò ûÛÇÒûHC!ô–ÙtaŸîó…¡(ê¢O (!ñ@ Wû‹&¹!b„M÷lïì€üåUÛÄy†ïûî>ûü{?¶ÏçŸ8vlŸó³‡´¸ È!¿l ã7ü‰€ØRµü„et¥¥‚¶ˆu¢ch4)?J«•FÝ ] ÒZÊ( jÚ¢ ÄZ¶i”{¿³¢M“6'wßkßÙw÷¾Ïû¼ÏÓNÚ-mb«4ÏÕé§Îõ·žöîÇ¢/IJrÈfñha¯t^Ð"˜óó‚»›é¡Ù‡àžAfZ–ˆA=þþT h´†¦G¨ÃÌ»¶¬mËä™»9ëÝ€:¨këæ™ÈxŽš C}ÕŠLr<#Uc°nÌ´Õü5}C?ùö}øÈYTpé ôÝúÙyý~-GGôW¯~¦¿râ,êü­þýªF!d{V¿™umÜ( ÛÁ¨Ì`ú;=ÒR7ž.Nww‰]nÎfÃ0^5«Úe·ÒçæÅ÷æt,ïûüûUÇÿ+æÿÓ‹øcÆ›)öÉ¡‰É;C=(5,X ,ŽD$ˆÇÜ.ÙÛ¼loÇýœ¾mzë¥ÌŒª§ô2ì”{N.Sý5‹vþ´ûIƒ"§ýánrãaŠÑâôsó´—5ìSk=Øä ©®vº£¦RRî-ÓêÈdï$m™ámÒ2¤5Ú®­$›Ød'»“<ǼÈþ‚9Ê^d.*7™›Þ›ª?HʘRRG¸ Ù«îÓ.j\\)Õª•”Ö¤6 ¢Óµ¹|»Ôêé vÌ-l ·-!‹. aZ W¹4HÇiU\Ó°?\Ú_ŠK#°“ÍPÑ6½6_É¿£·9g¿ ôÖß–¼©œ;ñ¦))žÏe§a&즜ܻ:BK˜qãðiMÜEz­–àþ¶muꥃ‡÷žþÖoŽ£†sð+F??²ü(àü²~®.îîê9˜)Û–ÚÔuuz-~GõÓúg»*2PjYŸÕ/ép²~>Q烚^?ÈW™"ô ‘mN$×; ñË 9‹h¨co6ö1*CiÊ4S4°ç[>O?¼>$û«a½;T”¨–èû‚Dµ˜[…Ü Çÿ4T eÃùbn¥ÇÓMÄÓ‚Ó³mÝÁåÁÕ– Î>a‹u»ð¼ã5á´ð¥ó A…–·$ ’`·Èñ+V“,‰;Q-Åë÷…¼t|øhѼ^&Rdô° 8pò!ÍyÀD!sLÙö4¬R‘ašLô‰M™plU¬?ÆÆŠÔÿµ¯MÿuEëŽä“kìæ1c仡j ‘ëï2869UØA¤mÎqed³ø.mù²G_LÎe¤­|ZH â$IžDGê5T‚&Žß—’`&ɰ9ÓÁ”X䆭¶±!CµÁxEñ¸MfÅ«x]Qv ‰tBù$9„w¼ûÁÆ÷?j.nñðÞH늶òÈô?£C[öÍ|þ°^I†gí;ðIA<6sÞ‹ªžÚ9Ñf]Ç&kû¦.ÞJu÷Ã/¸¿˜JìI'° ¸5ìZŽ‹'&°©à÷Ù&󌂆Â)±ÆÄl¶ÃÜ]ÐV<àrFA+ã&–âù@ˉ|5J‘=9Äó–Ô­5ҨءÅpŒMÄk„êè”xCEgxn´5¾ÌöcÇRç"wÚgÛèØ(l×ÅÖÄ·²;lŽÂ.qKìÉø^Ç>aŸ'”SçåMh~‹VvŠ)ñËÜø*éær”÷8Wå¡DʼnB(±jœ„Ê-¡Âs® 8"[nÉ *+ngÿéòxÌé°‘H° àÍ&ŽÅ&Ág& ”ûÓvÏÀì¹­0åÔ*¦ e%¢0jAóÑ*´™À8O»Êé%é¥áާY4¦•бítâÖzkú½ÿxx&¤ÉT²ÑCrä2Ų`tùÚ ¾ª] 3Í7 —,øwƒ ïe¸Ž÷ÝÝ£O0–¨Ä‚°ƒºÇÞoQ \èª ádm -–д Õ55I@%0$0¡Éãö*œ×)åK­û”cÞÙÍ+5»¥»N_öƒ%ÿ䫟þçV2,{íø¡ÔDt¹½ãÖo¾§½]WìjûÞš) G½?,«=ܳò…K>xÂùôî'ºf%“K‹ëN¬_waÍÚ[©• †ÍÌ@ÚApÎ@Þ g9× V¡S¦0Â,b!> j BØfПㆯòVõzž$äIAÏš&ú‹üÉýºVH'(Ò™Ï)dÇ}UeDŠLˆx"véÜ=@ÇŽÝÿšÞí!P|Ep·nærÚª í\;Žç ts5WÇ7rÓøõÂ/É—‚ÙÎ`é4~ó “Å­á¼&Çcš‹ô†1eÁ a)3a…•ÏWV)ý «8´°YóÀjС5O‡Ö”’IÈy=µª2ŽUTʳqk…½Ò>ß>ÀXöØÏØïÚma{‹sØÆã,œ² »áá'ëëéÐOÁ·­K˜'nž' @7ÆÄ—º¶‚íáQæi*mÅ©õó{xxPÚÓÅ©y=ƒ_ÆÓO¤0i!¸èr†Ü%\èö!Ûü#YÚ{º‰nª]ƒÄï»­ÖO¦^†õš° ¬Ótƒ›d¨Ä_-2¢ ߙh¼¨é,†Ój ÓÉ<<3±£Ãâ 5;"(™õI„=ûG´y\aQ9ÚùûÑp"—úWmØÀ•Üo¤9÷1Œy=ÕèJZ+a4©DÖÔS#¥äµ‰™*5ÉSÕv¦Mj—ÛTñþ!—ÈtRD~_™§šTÛ§)öéž9dŽ½Ë³,´/õ¬%kí›<ñØYÉ<´6êX_oTÍk°'M~ˆåùÙUÅu†ç½9vîÙÙ]¯÷°×ö€ÛØk–x’†`“†¶$ÙQWBj(Ð#R©*ŽB%¨*T©‘š¨U/êƒm -j­V4R‰R)MPãF”K)(¨u¤Òx×ýÿÙ5‡ªõ¼÷íÓóÎÌû¿ÿÿ¿ >8|˜(iºß¯-Ó´CaÇ)Yæ'‰³jpvŸ²Ár2<¥à;ƒ„0/ŠqÛ Ú¶cª’·M€f@õû“F hSREÇæýò ‰gÃï—$Q¤ðLŽiŒ ‡£ÆÃYÅ$F.—áɪ±d’‰”É¡Ó5aPŠF*Q§R‰F*ΊÅ½vWõêx¿ÀÌvuÀ³«äÿ› “öëÆø8 ÅñtÿÁöC°È Sv k hÅÜ=05êè°2¬º¼ÛS#ÅöªÂ2a²:H3Aë#äÕ¯ýñïéhL½³²96ûÚï«ÛÎVßjó…ƒÕ «}ß;úÏ4;Q‰VoþûÐû 0±¥o'7,ùôGõŒ] ì±è¨›…n!!…fͬÕCºÙ±GêÑzõ.³Û’M+i¦:Mt¨[Ã0kõYªÏ"Ö³p¸‹Åa7Ù­ÐV.ëË(9½Õ\Àõн þb¿ø$WŸQžÒŸ47’ Üq«²Yß`îä¾*¢&Ømî¶öq}å£\Y/³r™”G×Ö‹OÙ•…×4.¬›\9ÉD‚öïRX|ò+&‘³%çjäVéV €GÛÒ¼ÝÏ?@QߦPðû‘•Eqüþ©ÆÊñ5ž°­ù[2Ó±’ö4êJPMƒ3ÎÉU*r’[>KFá¹88þÆ7WtA\,Sû¢DuÂðÂ*&¢¡ò„¾30 Y ÚéäPѸbL1(;ñ* »QJ€¾€ôÕzëØŽ-`¨”÷Î’6¥ ÄIaÞMŒF ´É;Op–]dA7jWâKÙYúñ`ÿÔŸ¹èÔ…5ìÏFØãÏ/;qbÊ·ñØ¥eÓ7¸÷“aºélw–¤I¹ˆÍeµ\® -°»zsKs%­”Û¢mέ›{PÛ—ý~èÕèÏ5;Y?‚*³ «hÑO"Ç2c‘³™ñÈÅÌ;öñщ£Ã  5MÏ‚yF¬ {ÃjD‰pÂÉÏÊu¸Â¬¥\ÿ¬Ï‰kò/ˆ›ó»ÔýêõŽv'èîÔ g´§;ÃóSAgmöå,ÍÆÚõ>ý°þš>­ó¯é'õuVW‘à:Z+伎7¶ CX­«¨|uÁï‡Q±á2=6æ Æb>7E=s°¸Mžc•ìzc=#xIÒ’J£V7jîöfM«§9Ìø~^Þ“Þ)øú@ÞÒ3®#]¦O»z›Ë´­ÉÖ¹­'[ùðÔóx­åéwÇ<0×\-ÞÜ9·p¾@_/BŸíaüÅp‹ÓÔžþ­pQ  ¡O ‚Žo*x©,8ø]mh}mQÏ?†l; 7·²‚O§Á<À&¶øü¯¶œ<·dG×ÖKIÇâ_ÿJã)gÛÛß:plÐÂMçbáçÆ_~fþK›7ý°µñ›«;¾wÅ7Vu-šn‘·Í^´fÈ:ô¸»~Ùœ/ßþtï¢òA&fdÚû×=½rÑn`ô>`t*‚Á4’=î«„Wýi¾‹_Ìó}‰S šH4Å:bľ˜8’z­b¨]Z-‰%í þRèÙèñEm“[h[ô|â}õRøRä²u3|3òÆÓ‰H’o÷·çò}~—_îä_à/5~Âý×P [ç ®4Ä çÈvLWœôÛ 1WY§ìQ¸„‹ÑR<Ž*Ž‡Ñ¶aðÜö8¤ ™<>ôȃ+n;ÆSù t0ùÎ3±l ¥ç 9B^'§ÈmÂ%HYIX‚6I `ÊmDz*ij™ÄDª*¨FaÞÖÞš8x_Ä[H|I÷fY±½8`T`åŠQ¹·èGø <‡Å~h;3”j縠c~œÚÓÜÔÆÃH„®N¤ ™ýÓ‘í§Ÿ;9äVÿõës[içêïìzãÇ;w½Á¿YùäðÊÃÚQý×åE‘Çñéí™™ÝÙ™ìf`óZìž ÙD°R2ˆÄSÞ ”Ñpˆ¸;I H8_¨hQViùÄ |ˆK{åS*K+ zP¥ kÇœ%µsd_A±¯èøº0Ð!÷°»ÓÏuZûáeÃ*j mâ–’ ð ¨Vaµù¥q§^üëïÙš"] ri´ÇP˜•·JÖÅ–Öè5†W(—‹½%áuÊ5Ú±Úk {sïk¤>ÉœHðN_dNHòü\®E\çd‘]~ŽRgã_ 4Zs”ÙV‹wix…±ÌºÎ:¡ÿÇ?C¿N84­&LÇ"Mî@R5+(É»vÞqޏÔq#·ÍítM<e@Ý$’ãʤ…¨º:ž W ³_Á£q7‡û/%¥0ø6ºÕq7$ëð>~Œs†-à*/œôi>¾|¥l2-q™}xf|iáÒZÛç …®ÙÁš¬5kÆ×Oœµ·fèÅ`ÆeÁ€9êýÄ™:mÍÁ­l\ûþmœûÊPÕó7ýá™[7ï¾û÷;¾zUï[4SIœiQ’ïüí/‡Ž¾s5›.:8KƒfK¢ GÂ4Ô¤­Z«Xj®Q×i7Š5f,YPnÑb ñ½>ùOíŒ7˜eS’d¦„3“ó²3ÃEÉ+3‹ÃUÉßdW…›õÍéAe°Â!>µ­ Xè·ùë}ÕíN—£8« Nö+Ïá‰u³^ âî§€ž ‚Fãã ©…ZàO[˜ÿ1¤²õ“Kݵ²9¸{%?¡„×h&¦ÙÍù Nê&—F•ª£T(•*J|©(5Ö[ ó†úç;íP=·ãýêE«'È$ª^µ¿øå›Ÿ=E½?  úÃIãå»Vï:ª,ŠO[vïmÏÒeÁÓ=4f§ÏþëìwNÕ¾ý×Ó‡ïžuý^p‘HØ©½GjEã=Aí̹™ó2Qf}æ‰ø“Ö³V,kM´º3½–ÁxLÌæJãb–·Cƒ¦•‚—bªNŒ]õ†S òŒ¨ÊC`KÄ)ÓJx a®´“ÐL„˜d" 0i6&ÊF£Á!Å‘vÀ‘©ËÃx’r&ÿ– g^—eØÓ™·è~RM©AF{’Q dwEó€30ÐZnM ^˜îBlgÝyŽ« ®Ç BrD²’¸º]I¡Mœ¼m-' nmcCcéü&Àl ]-Ý®u_Þµ+•½cÓÜ++§M]|q_ŸúøŽöu¥–+’O-m¿Úñõ@ÄEg©ŸãÉdzcÔfššW4óÞ\s¶§‹q™qEs‚W¬n6y—™-Þ2¾Ü¼Þ46¸ž,BScÌîÚ}æÔY¶l¯HÐMÝþí»¼uËÞ5uýùóÇön¹í™nÙüÌòì¢üÔkVžß}?mþäQJw<ÚùÃÚoû6ÿQünïwÞ>ô6v–÷¢ž„¬åÑUo~:(©Ø¶Èò:ÏÕÙê~‹É© ‚L)ˆ¹q×S5JìPãžiÄó"jh* Ú+¨/sŒ¡ b¢|÷P…‹²¶Y|fË’%˜`Lü]a .øùk[1ßGƒRS©Û?í+ëý.¿Ûö™¯xyÉkäÀNÃ~Hœœã„!jÒPq’ÒrYß&l„Ð3åz(KE–œóÓ—,).FTƒî¡[Š1¢œl.—ƒÓi²LgBOð|BWR+\³°Ô´ÐP®}?íÖºRF=íÞÓs{ï¦çôl\·ðf( ¿z¨uÏ“CW+»ï¹uɃ[†þLn¡à#¨ú89]%šp ÄNÑ%ºE¯8&N NDN¬b×ÈÔq1,Œœ€‹3Eºz;%º¦3Cçy°]¬‹u³^vœé½ì4S«bGàŽ±r­¬,e?ÆÉ¸1•Igc£Îưǘ1„ÈÀ²ù±ŸG¯¢‡66c@¦|á‘ïh/¤Ò*De{OOû¢¯ïû4›ðýQ<—°gõ[س©¬Š*õr ¡/ÓW Õ¶þ« ꪈã*uì%pyÆè@ŒàÈžŒüÇ¥êM†’Ô«RÕ¥4!¯$ëK›¸&59Q-'¢;aFgLcúùâ¦åõ_Ë›ÔÆQõSïÕi­>çcÓõib†µÀZÁVèËù ±…ݬ=&éÿ`êýúgüý»X:išª2E×¹1¸±XžëçºÊX^3Üæ˜ ·†ÛÂq,V-‰frBFfAóâþ.…úqœ¢ Uí˪æ/PµÖ9ß!Œ›Ž5q1ŽºÏQª‰}˜£„¤±XަÐÖæ.“•ÙÚǸ;g¼Wðe؄љã”ÓŒL//0ƒþžœ/ÛãQvˆ¯û> q—¹ÑíBaѰB"Äż—´NâÃE¦* DQWtw”Žú|EŽh—†4’‰©„t ’‰‡|I0ÚG¾¨FC>Q ŸðDÀ5¢÷ù”2îÖQ:©Ñ. Y0u: ¦Ãç_$52ÝÀ‚€i.A²21>¿[d>¢«ÃQ4@!’ué EøÇÿüñOLôñNs/ïï$=ÐrrP8r”ŒD¡GJ ýøxbç­\)hBéLÓì•õÃí8åb“ˆ%HŒéJ„6߻̣hrÙ½ù†4nÑ1¾Þi¦È!×–À/6¨=Sö·nØ|íìo §žXó˾E+žz½–-ÛÙ´tù¢‡ŽfÊé߬^Z»³;³‹îݸñé_ý<óIÞ[ ãý¢£ÍI7Çðnúwê1õó÷mfÔͳDrëð†yUEï¨Æ5cÌ`C‚ÇáÑ]Ø[ ^·Kv‡âˆà' ð2¸ \…|ßUÈ@¹î + ®BWÏÿ“TW!×r(ƒq‘þ“› Bº"â0ŒÛ½ÆØm6ú Ö`èj¯ÜíÓ´óþ·±1Z±`Ǚ؟t=jTš|êhºý¦˜…wÀl«¦]iýY£kW¨m®6}…ñ=äyξ„yŽ{NZ¢¬fVr+¥ÕŠä+fm– OÄoÁ6°7ßf@‚UǯÞîƒ(K ð ¤ 8@ ”€àŽDãU6DÙT[ÈÆØ&b ן „ãU¸vD(ÅAâ 謾ŀ¯ðͱô‡Òá$ž’ÈMM.ŠO'âš~€œÚK¦ÓXâÁR‹óZ;i[âBn¡¸œ[.²¤7‘[Üêt åóOšÿúþé›n½5˜9ÞÛùfï‘m½´•oß½ž¹pëG(€ìçÏÿëésgñ uf[ØŒ ‹  åÉíŠú5õ›j£Ê&B‡Ct04A û§x§øgúׄºBB­¯Öšç›g5 K””/eµ «”µÍ·Êê]ô\1®] y†×Bc!=ÌÆÔ˜w*[«Îaç©‹ÕÏä[þ¬*kF/.&*¯;dÊaF$¤JIi™´EbCaàľm8) %cüünÞÐ}X‚³#Jd¯…ÉbKÈ]MW»¢Õ]Ú£Ûˆ ¢Z€Dú¨15F ÆvRÈ”ˆ™`·B@ ™K$Æ™Á†éŠ5©±š¹3ô Î¥Û1ŠFÂGBG*M'Õî΋ªîõÐ$¸•kLzݵ;¾óãÖõƒ›¿=IÛ¿aã{:Öõd[¸“?}晟½³/ûÕ[OÕf¾bº/œ:wùÜÙ¿ÎͶ0×0†*UŒ¦%·ËtŒžhÌ éW>áM˜fW`w€‹»ãV"Pï®·ºZ/¹_²–¶.ñ—]ÃüM埆:.UbÞzªò$=GYL·ÐŸ(Ÿ7ô›æ°uv"Öî)*–mÞSÌbà|Žj*ªªN¤:“ÎeÎ-N6”ñr=§‹(¡“(.ÑÉ“ewêð4R²ôN¬5‘ ` ÜžõèÐ"Ø>² ÚÆll›Ü˜Œ`ryÐV ÜÖsÆølú%ñ‚.™nŸ?’‰àT‡Qª{ªiÀ$-NÀñMÅž¯¦râ®çOfÿýÊÅ×N·ïÍ”üaãºý‡6¬ß—m¡…Mh²íÎnÝ¿ýî,æ.üù̥Ϸ CóŒŠF}˜œñu7RYfãì,v!û2ÛÁò¢&ˆ‚hwk¢b$%(I¬èPr#7]ªýÿ{ßë}™Ô  Bô£È…X¾Àä7¹N=b‡ÔôµCxqÈÒàÐ >¡†R?ìtl>Ej-Jç=ÏFÖņŶ½O´$–¼øÄÌ™3^ôز=ísk”7$–­Í\"«ûœéÁ«PÅø’›ØROi­8O¬¼Pº²ôâvñÈ~÷{•b좯ÈðU5V~ìã,úyšV§ ÉH )1%¥ä”’²· ­b«Ô*·*­ö¾²¾rgyY¤<2aZd±Ô,¯([QÑîˆl‰üBúµ²£bWåΪné÷ʾòîŠ#e§Ëôм-Íá|ɹt8~)Âù"’/ü8W$]šÅByT‘Ø¢P™—•'ù‹ŽÑ“¥f%Yü ™0˜KÍCæG&ï4ƒæ+æ ÉÍ·MÚ<‰±ñâ}qBU¹]EID«h=¤"ŸïÑã`whq„&¥ü«ý´¿ØkcÉk‡p1 “"é&ÿ—ìjâ8ã3sûš¹}ßqOƒÏ³Í-ÁÄ>cœz‰ qÁåQ‚W¨mŒH(¯TÓØ*ŠI”Ц‘ô!ÒT*AŠZ 6Ò´–šFyÔ ­€&´¨–J[„b)(„÷ûæÎ.míÛÙÙ¹›ÝÙo¾ï÷P*æG+34S›c©bNoIJK§J-VK:9’ÎáÌtg¥¥qL'$K°§ôÚL®h»P | Î(`yâm Óu gpR!#UU_(nnmbíM}M¬É¥”Ö’TIïʔ˕¢ ÐŽ\vÂ4."WëHväòœ\!> s7l ¦…ê?OÛÚô½È¤ÃPäe(ž€Ã…Óî•R"áЮ`Å]šx´0þ¨}b—ßÖXr6ÚòÉÈùdI=…õ÷Ì©Qãóê<×wcnD«¶rYÂô,UïfN.«ìš,©®±Lc®ÈÒ†z.´@É’Jw6ê¬ÀUVjÐ… ¿¿ŸÜG´{÷®îXk¢5õuõóYKqak‰  Æ¤‹'A›%ç°Ù×µŸrž}ªwoKþ¥·v.YTxqÍþ77x'Í'·ö>žH4füêðº­oïÿà#ú@Å»{ðšT¾éáþ•Ëö5TËŸÚ’Z½iukMÅ온m^Ò»iñG_Ç:­ú”Ô£$I>•ãý%_péM8Ãgó•iôž3Ñ†âšø ‚qo_\bYDŵ-Çbšnh†j€QÌ,± /KІ ýÀ¿0·ªEnM=lN³ ±û‘öÞK_úI§ŠzÛW­:tÿЇ–­³åIö½ÉÓ/Ü»lÕšïdm·¯ÀîÀE®Ãîzc±¥kׇIÕ ÂШ&ˆÊ •2µÓOm ®Ž¹WÇ 5íp©Ù³-*%Õ^›@|·¼66³h`ÃéNÙ–Ïð‹C>§ªH ‘º“Wç‹$ \] ¿Õ0¿HrÐ8æ\ÒÀëDiËÉ2±Ž®c]ÆzÞC{ØVc+ßKöÐ=lŸ±—ït€=yV?h<ÇDŽðÅëäUñ&9«ŠwÉoÄrI|Lþ"n“›b¼ŽH‘„h u¢Ut’Pp5ôER¥8¨Éwçð>øê%rèà6 "1ccRÎbTä(SU3 ÛÖx5€ØÀ1Œ¤±½]ne6lºa么s.H„1&qJa!$‹a0F5]ð¡j£IÍj# CÞÇ¡ÙáPíS™ ½çXH«£7~Ù4‘IOvOvgR׺Qj Úh_ŒpÙ¥; Îö¿50?…§. AŽènÓKº»ªhs,‘\Øk¦ôgw¶ýòZ¾2||îÎv¥nòÀ–k¿ÁBr@vh„¨g!;|ev);Ε©DM•Vö‡LKRìu¨Ðórfé‹Ñ!Û•_µbÏ åµð"”˜ †¨æ@4,SÂ2=Ê¡x/¼i ó€uÆÆÜËcîÅ` ³ŒŒS¦,†,T`œ”¹‚=âmôy/'÷odj\B 2ÝñvxeUÑ­˜]pýIx¶²¶¨h&iYžöU…(Z”GmÃwI,×+Œlt68ؼ^0»HZôûŒûí#Ë´P_atD—:˼GüÎjÿ ý«ÆŸöMýëÆ9í¼sÆÿ§v›7D½Ò`ÕÛ N½ß_DZý=Æ3Æ‘Èaó8}½ý©9LÎhçíw”ËÚGüºrÝù»SûŒWD5\±)[W¶¶lÙúå´Í ÛQ|⺑׼6ÎÖ#5óÖÈÔå°QÊ‚ì+H¯fÑxLQ¯NÞZeµØämóz½ç<á r·£´1ÿ u·”µÁMøàµ{ ÿKìŸl¨*–®r! ð(Âõ<À÷ŽÓ*ñA³<öÇÎýÚÓœîù~ êqUÕmØç¼eÇ-Ë6ÀîˆÃt¢ÎT aT÷ÃñLÛ’ËóÇ C×±t|DZm"â·\‹n¶vZ}VÄ¡ÇC‘ët‡xZ01¾òNîðžö˜‡WQW¥›ÕP\(®ãÃôVìV”Dé7»»S kàƒEÖúÛLe¹åxuZ®:O¶+î.¸ÿ>AVØî[ºí.Æûxtœ¬\³~ÈÊ™9ö‹©qдãÄžº0D89r”.*ÿuuœ,®Š3¦. ê ¨¨ZÓq²yÕ9:>¨çJ£>ŒÎ‘£p£3 áÞ€VNé ðާÈ"v¾ô¤™›ÏÌKÊyÞÔøi‘Sr¿Ø K7É»]<ã·‘yp@ÆÚàºÊd¶¡µ"XA (ObI•šH}„vÜyãü‰v¥ùĹc-œùù¡7NÌýÌ®yï±í“GÞc=·¯°Þá}HãýÆ¥*óÐ,‡F5…qid¤#¹ÓȤô’’Ÿ:Õé6 ùç é¶ ÎËÊËÆQûûΨ:ªêï;Ü m™HŒÏ²2n ½/ÚOEFÿQ¥K·Ó#âHô,1߉¾gÿÖ½¹ÄgýÑý«ð§‹+jßsR ÑÍÆž£f!Ô/dÀž²a¦Etƒsªi\U" ùàs‹:ŽåFAT0ëßìWypSÇÿvŸ,¿KzOOO².Û’,É2r±cù@ÆÔâr°ˆ‡`lhˆ9ʃ9’’N[:x˜SÓi§d0'¤dŠ ¤4Í´43Mé4Á´ôpšÎ8i!•ÔoeèÁ¤ÌäŸÎh¥ßî·çÛýöÛï8Y UDõœ¨A8j:g"¦ Ìé²Ì‰‚ÀqÔˆ‘€,ƒ˜ÐˆÖjÚ*ûE¥Ó(l‹hNÆsŒÛŒœq€N›½ÜVêO /[-›³jrdÔX ­P¯ª#ÿKþ‹<3[‘ÌIkr‹zØöeŸ•ÒÑ &ºM|SN(Ž›Å1‰ñ[*ŽÉþ¢‡`õc¾˜Êt¼h‹¿/&Ä=±1‹Ó‘\´A((hp¢EÌô4 …bB²#Ýû^ßxOe°ÿô×ÉîË¿jLÿ†Iúú½ÕS¢Ÿ¤åÔ›¤­#ÄsùÒ÷s Œ¸Èßr2R,ê 'q§¢%£5®)^).{s²â¬Š¸.»?s9UV0ÁΚ w¿â! ;ÄJO,¬ÏSŽŠ\ÜÇ ñ†«kU–Ê‚f79´r©\.7ÕËõ¦:s¯E kaë {‡Öaí°ukÝÖnÛF㓦–½Ç¶Óôe˳ڳÖgôýâaéõ”åeýâïõL)õºžñ”ŒI”Ý*yÜeš²CáçÍíg÷‡wÌÉQƒ¢È*êJôœºÕÔD+ŠŒÊ0(‰º$‰VM“eÉÈê¡UžW=Ô3@›O(È‹¸>@ÛãR³×èBíUjdÊ‹ ñÃt·Èº²ÜŠ{åj9!ssäŒLeÑ_¥ ohóq·w3*Fd^j †‹(DH;Ô‘!§:”\3ìr¨ÃY ,p“(% KGÄœ©]YùA­gFmã@ms äÌ52×ÈíºFÏüæÅ†˜èoˆ™ñ•°Å,~[,'=¨iЇAñ±–3·ýn¹0hªÐ~JŸXÙ4£È*Ò+Ï\ŽøK#WާWLTožW›^zD ÜË•bC8Õ»~ûæ'éòO^?:¥ãæå„Q÷\B¹2“£q“6@ÂSÔhEµ¨Cߌ Hϣ׊µ3ñ6$*hX¨Rc$&¶’Ú· õÒNÛùÂuYLóË„Md¿IØMvòÏ×Éu;ù©à#BŒÿÿ)d¯å¤j«¥¨^Ñ ¹/Ób„6 "åE1H(š?JÐ.igA(všÀÄ\P!kÍ#f‘å8Ãã)ú0b§uúMß10ÇÍ‹ÌÛÌš Ìl^€u™×¸•£@° 2Àƒ5ƒSQ×ù˜ÚˆÌAíÞ4KVSŒЍ#ìrS¦DšÔ«"^µ0›Ÿs5UóÙÞaÖdÝ1¼Í$ÄS2Æ=žñkgN2.2Vf’5$™½{Շ˜+®tÇÞîžÄœ³cE±lØ%ÚcTG¸ì·K´ŽË|u>)¬úlazð‰ùé·$õãU—‘?íáxãž ©G7 ðŠË|Pp­à"ÚšRh$Ѹw¯¶×~Àu ä9î°tØôRõ%í’ý]×»%oGYo^Í{è÷û}»U¬¬OÆŸ¢‹ ‚Æ´+®&D ¬ <øKÀØË× `£‘¯F2.²X?ÆK*+€«bÅø‹¸^W¿ïiCÝh”Ó% ƒ[ ®&|©]'dçÄþž¬'2kx¶úñ¬aTÙøf"RI†5x-É!55”Û£ Áq¤´"¤Í!, ÙCbÐr£ãêJ¡!ˆ™EÑ}PJ<>R$ å,Dª6\SJêCJÁjR}¤˜ÃÌ&9|à.Àì–O}{Ú¾};I’ƒfÓ©¡Ì uµZ Èo 6]3DkZ]- X‹ØS ÕÕÖ×GkìE…¡P™ßhÓÙ£¥Ÿ&Ë.œO÷ž=›î}ý§dÙéo§/>ˆTöõ‘Ê玤ßjßT2¸û…_/yiÃμJÖ'žØ÷•Õ ž.¸8˜Þ÷Ú`zÿùóäñÁ×ÈòÁ-}é_ìK¿}è‰ô$U})5°eßÐ…ƒ‹ŸZYÜ–8ØÛûÍÇáfZqø3ªƒ=9Ü@çs-b1‚â³c!/â|@ÄáÒ"“ }íGaÙ`Åñ:sý­QئÜBÂßpá8÷i€bŒ¯Š/”lðª>;¿ëe¸§Ð7Âq€Šuãz*¿0ƒ³{pš€è<€Z\£hÄïN| éÆÑüÀäç¦> 0]hù9ÀŒ@ν÷>ó£HL˜ƒß» ½àÁ¿<ô @Ç\€óp:,Äy‹Îtý`i@7îmù9€•?üÿĪoå‘Gyä‘Gyä‘Gyä‘Gyä‘Çg  @€%8FŸš¸\)É`VT‹fÕmö"‡Üžâ𔂡òpŸHåç ªúžšhm]}ÄXãĦI£§Mo¹wFkÛ}3avbÎýshpÞCó;<üHòÓ?~{Ú}wÃÿçd€Õ˜ÛAÅ£ñDPa´Áè†8’É`¿Â ؇™Ð ËY{æÊüÞÏqù¿%îŽ=c‰‡Çró91'¹Êø¥H9Ø lq@ GS0CSŽæ°½-GîÊÑF¤{¦OÕ:­%2ymwçŠ;Ñ0¦Â,h…iЂ§ž k‘°æÂ`)¬GªÛî4ênÛñdaÌša1àIT¨‚yxlržÃ:‚| {xR¬6VÂcTC&ÝLÿÎÎfLx_^8³eÞàenŽ«ôÆ{Ê_;Ö.Tš>âÝ|vôw¯”cå€åK¾GSKÕFžÝãsv嘠™² endstream endobj 1626 0 obj << /Type /ExtGState /SA false /SM 0.02 /TR2 /Default >> endobj 1627 0 obj << /Type /Font /Subtype /CIDFontType2 /BaseFont /ECMJBE+SymbolMT /FontDescriptor 1633 0 R /CIDSystemInfo << /Registry (Adobe)/Ordering (Identity)/Supplement 0 >> /DW 1000 /W [ 3 [ 250 ] 39 [ 611 ] 120 [ 459 ] ] >> endobj 1628 0 obj << /Type /ExtGState /SA false /OP false /op false /OPM 0 /BG2 /Default /UCR2 /Default /TR2 /Default /HT /Default /CA 1 /ca 1 /SMask /None /AIS false /BM /Normal /TK true >> endobj 1629 0 obj << /Filter /FlateDecode /Length 39323 /Length1 60376 >> stream H‰\U tÍWÿ}÷þÿïERkDÔ–O"H$ÒØB É‹K,AL[yA!ðÔ”ÂÉ*ëÃ<¼Ž™…¿K#rh#E2M¾%óåê÷ºŽ®§Ýº£î¥‡é½H¯ÔÑ'¬©Ö6ë²Ý×öÚÛœÞÀ¤Ài“iÞe.òjX$¡3ë'ŸÕ4ü|ÄTÌÁÛ(ÅRÖË lÀ6ÆýŽâ¾ÁßxHrÏÝ‹Yuóe)±V>‘rXŽÊ ù©ª%£:©ž*U¥«5ŸX©N©óêŽn¦Çè¹zQ®wéK,Ë2v"‘a—ÙŽcÎg†3/è«g÷Ÿ·}žóüj&_Vn›áfùG!íÉt!Y®e n&>f%îÂ|… 5\‰›ßXܬ†XžZOé#}‰2˜È&FÈ(Â+yRHÌ•yòŽ”È»²DÞ¯ÁƶY¶Ê.âsÙKœ“kòÜ“GŠE¬4«9JµVñª+#MU}Ô 5„(P“ Ÿšªfð„*Ôgj:¯Cu”ŽÓ^=E¯ÕÛõA}VÿÓRV¬ou·†[V‰uÒ:m]´žÚ¶Ç.´Ë탎¦Ž$G¶£È±Æñ©ãŽã™ÓáÌræ9ç8Ï:MPÕêÏŒ{'~þÅ;NÊ4»¡5S]ã½h¬}öBÉfÆj˜ž¨—ê¯í|y¨]rYJõx=ÁlÒéꉞ,ÃÕÒRGØÉ:‹ad›º¡«ÛV˜ Sw%ÆzO>W“uªrTobŸ±Â¬û . Y½)Uê°.Ñ%æH¶Ëåš]®NÃe]W¡¸Æ[½P­æ¤j¼*ÃH+É~ŠñÌûV{&óÝC-’¶ú¬UŽ[Ú­~‡²Šªq\úY­Ôkª«l£â>—¸/Sà“÷‘"ûäÙ ‘-ºBú«xZ~U[:ó:®#å¬FN5G‰Va’¥ªl½ßqJw¡J|Ù¢%µóß/€I¼+Ukjš‡jrFÑ«©÷û«Û¾h—±Î6êX A^UÇÌ»q‹‰HÄ^Öà"$¨5˜cæÉXêþê§Ân)B¼„P-ÃÉm.ß‹Fª%µp4w}Býÿ’ªŸ)ð†¸x³ªcU,¶”Z¨=ÍbsaÌGKf(¯èMãó–¡«ðR` ª4éÚÇê› !Á(4©¼û±ÙiS{æ¡…½™µ‹”ÞÙÃRzöx¹{·ä®]:wê˜ôRb‡„øöq±íÚ¶‰iÕÊÝ2ÒÑ¢y³¦M^lÞ¨ahƒúõêÖ©ýBHp­ §Ã¶´ÄzÜé¹.t®ßŠvgdÄU·Ý^vxÖ‘ëw±+ý—>~Wn›ë—ž)ôÌÿ?Ï”{¦üÏS깺£{\¬Ëãvù§¹]»eÔà‘´—¤¹s\þû5ö€{y]›vd$'¸< Ó\~Éuyüé3 K=¹i\®2$8Õ:.8.•Á!4ChùÃݾJ ï!5† ÷$W*Õ&)wšÇÿ¢;­š_Gy¼cýYƒGzÒšFFæÄÅú%uŒ;ÏwoÝv5.HýëÕÕU†ÿ{ÎÝGiB6ẛ˓My$¬$» ÛæAØ©n t€h‹Ã£¢¦èZªv(C†ÑC´Ü„VaÂ8¦:X'0}¨•m¡Ã€3Ð1×ï?wï²Ù¢ c&ßþçüÿyüç?ß9ÿ¹jÓ]kzÔ4þ ¼Úëï«JîðÑšD(§Óèìh™²#Îsä‡0o9éL¾]Å൱ݙÖ"™ŒLÞàçj2¹ÛomŒeZüc S£‰dïCšý˜KôÄc¦Öƒ ý¼^“½ºuF„5‰~ó>c™±>¹1)LšÔ´=Ð_X´Þ£Âˆ?Ù3æÒ"#ÞQWÜ7ž’MÛOM û§Œ¶TVôùòí°öÍKrr3 ëÒ6UR͹ÔÐ”Ž«ÆËAÓ¿ÖObÖ´Ö-¤äÚ…h†¿¸†^f'öcƒy_m"é«ÞÇýMWÐgø“7ûo|ôáhMGJãún™%i¢Áî”ÍPÈ,/g‚xj±£ðq‰ªÏ«¬Ø6 Lc“ÏðÑ#ˆmG¼¦ Áx{÷„i *fwcÌ®ûiMQ?…«BqS$Ø2äX&¬bK·cIwOàñ«ÄßLoiú?Ï7q\d}©Müæu¶½¡Ùhhl‹ù#ÉD*¶ -£j¶}aÚ–*i¶7õ "µÜõšÚb¬À¿+5"õ8jðÑW“E"n—D‘TC¿í鑹Ëá±ô [ñ¿sÀã•FóGM_¢Þþ î±Ó€õ1÷Râv·ÔšÌšÐèú¢QõQîå$%ÖKECK[29f”-ŠË*™Œþh2‘ì°º×~Ÿ‘”1KnŠ$œí°~¶·ÈŒî‹cëµP[в>CÛÓØÖö4·Å}øÄÚÓ뚨M,‹÷M‡-6èÇý¬´‚µ¬äŠŸ+Èo8ý«Ú ⣮[Yu¥Põµ)×Ñi´v@Ø:Ÿ£Ðé¶.¬tüÇ7EmK,“ê`Å+Õ_¨‘­öÑ'[Fš|5Šj®Ï¸«µb. xaË:êÑñ |Å}‚êÝÕXÅר¶`&ôôg(ˆö£Þ y@T“„~ð1P4~` VOhkßæ1ÈýÔîùu¸Î’ÏÕJ%À ” ý}*×7Såz®c¾¹r*•£\[™g*Úžµ.±íJT»VôÛLݰ/Aý~ À³ŸŠ ó€qÐbœãì3dƒ<Ãkµ®¢¼ ~,GùÈ(|­ƒ\ ýÃ(/rÑçs¢ÚZ‹r>Ê‹›|”s€úÝä>hŸ ;aºà¶˜7²ˆÛbÌ2yA+ÒáMuúôûX¬›×쬉ýgŸþ ¢ì_&lÿØWqÛ·OAdaœ«öjgj­‡Å9Ú$Z×P6Üã)Âð\ iX߇@µÞISOq`îs¤öÇÁýTüO(L& ž÷àçÀCÀ÷¸ ƈöÓàÇÓÌæ&󃹡ø>)Îò>nFl˜cö™ù¡xŒöã |”ìJ¡mÕyá}dŸù,ðØÌ-æŒ#a/µy¯]åu2§2¤áªPs«3ÈÜÊeÌ}–2¬ÖP&†h>sÖŽµ#•>|&éøÃçSHÙEã8v¼ïŽtb‘–G)ÛJ×[ô >›VË×Áÿv”\€øQgðªþ}ú@ôð Qö’Ïî‹Yò Ã3¬mÄxCˆe©~Ž^TrX”èÚËÕk]võЧm8åL™ mȶ±ddÚþ[ýÿqÞÕK¡ü7×°eéÃô<ÖJž¿k³¿#¡ïºroH;èíÒ<«ÈÞ\žÐÃø~ Ó}ˆ–êÔ¹ B¿ cWé]´ý$¾Ôž•«è˜»—>+‡±˜Kœ§g<>ä¦4²9÷i.)éðõ’Ï@®#Õ™ª¶þ ÎUµõGu&«­[R5羟U~ u7ç;|Móò%*•72ø™ÅÓ ~.B?_6/3äX–©Ü’ëœSô™È¹†×¯îÇVužÔ=[¿Ó>[¦ûŸ qÂzGÝÃç¨Í9×Àl û/R÷îaì7çÌýV»ûI«]®°Ú±ÎŸ¸wC^³N‰V_:§iNê.+tr)ÇÉuŽŠÓy4H§î³ çSý8r¸GÇ©üùšìº¦î¶9Ê_>‡|«pïÍ@ÿ‡uK/ Çå³Dç’õàH#Ût/M»‚¶È#ÖïäuEäÅeg}³É.AÅ®:j@RãqHÖ±ÿnüä» uì•s/óÞ»oQ.0Ãu÷Q+ÚœPk ª{ü Mç8¨¾[‘W0–'Dº PªMPõù*Þ *¸3b‘ÊÍKxLw“âlžê3׺å- j†ëešùƒj®zªñVS©«Õº¢Þô»®rµ’ÖM•ïw¨|žãª¢Õê=Á67Ms—ÑL†nÀ– Jù2Æy¼º…ò+–¥Þ¿§|žúhê}Âï¡ÎËoÑï ªä3Æ>¨|ÃþßÞ¤8'zŽ!†cø jâ]œÊƒ¨ Èïd๔®Ø–Z@¼E­ÊÖBï‰Óâ¤8muñ;P¾M_–?Àþ¤€lCþ~¹qrø Äê7“¿F¹ú#À6¼ý¶PžžGò"ÚÍmúÃÇ`gìBŸw!_¡Åò—´Aá}p‘ßзB> ÔQ­ö#ê7©Ë=9y‘õ’Ÿ±Åú¢Â1äÍ‹©¾)(_ÜÉçíxÛÝÁ_åk¦Ÿìãüã1x\Õmtòˆ¬w -GÅ~ꎊ·Ñö ´];ŽgþaŠj—€Ã)ü˜ê•ìqÆæiO3õyôS`'ʧ“vï=û ä)7>bø Ýà ð+Ç– žëNúL¸Šhtý5êfh×­2²Ûë;i>曯/&bÈËôýƒÚ<Û¨Mâ~Чa̬:晣¿FïæÏÝ ½I³T m„ïe÷ >»œŸÿ_ãÝ+°¿;€G•WpÛ«§ÈVÈV¹•¾Î@½õ¸Oí:¸Æ8NßUúôþÙzp…$çì,}v={_ïV§ðÖ̀Ã4ž§o1ô¥hd×½oü‹ûª nâ8û·§“„8KCÀÆ^ÛÒŒElD‰ùP#ɱ!þ˜Ø ¶Û‰\(aJ`l M¦©]Ã4¤Ð@í ì¤qÓ‰íZ>‘O:$“LܙδÓ`Zú«?ê$-´÷Ù•d“t¦ýSiž÷Ù÷cßÝÛÛ»{—¼  ]†ïò§uõÏ@#j”“rNDî±{t­–ìP¼˜k–ìsH`R¿Š³ beÏ. œ!_˜ô/'/ L[×GĺbLéOߟô}¹÷þ`~aõ Јzö )¯GÒ<¹¿Sï‹»öüºä~ŸÔÅ»äÏ÷ÄL=SÏž•åüž÷wwþ×cQ¼Ä;ÂÈu5©Ð–£öÜHp\½ý!ã™àÙø.àÉEû·hoŠÐ~ ¶à`¤¿û¾#ØJwN«Y¨ß 9 Ç–dßÛ·€ç’9n_ ä_¿OaO²ÿø!` |Ø…ãgìÞñ_åè“ÎóCè»À¿†¾6™kíÛ7€ïÕÀñ$~;Æø¨Gîsý¯òƒÎŸ—SçŒ`š?u†øOxõçâ»ÎéûÿYœ>K܇å:¤æ¯M›ÏƒÎ8w1ö}:PK{DM)êhQËZP?‹úq’ŹíqɳSyÒìß@Q;‹úÕ² 5³&çQ4íClDpFŠ"v«ônÛg ëÖxVN’õL$ƒm!ß’ é¾”*Ûbz‹ùyöÙi#á Þ®´³vµÝ¢–”S÷% uxƒsâfKH…<¤¥Möû^;sÙóì%ö°½Înifí¬ƒ1ΊYˆÕ²(³$&†Mëªe ðZmÕ²NG·#ævŒ8,1mXÑFµ1Í’§•ha­NkÒZ´½Z§Ö­Ù;µN«Òähqìu0—#ÏQâ;ên¥Ý‘ýl³ø6Aº€ P±ÆQØóØS@w#Š¥xJTºš A{læDœqNX°:a%ÂS4-)¯6éI÷ñcˆ¢(Ö ¬í(ä˜hUÐth:4Q#Ê8fè‚Ìê&m£v dÚW’ò7šôɘ´/,ú*ãá¯..¤±BÚ]H; i8ŠÂn·;ê‰Q_´Gmö4;æµÖSkÔúj{Ô'd„|¡µØSlûŠ{Tîá÷ñµ£f æRÍÕ5ZÓ\Ó^ÃJqëâfQI@r!ø¬9?+PêŒ¬Æ ”’(dp`„C! P•H®ôÃÚk?©¢€=úÅë’§|ÂÞ%}¢%üÊ]~† ï3W-«Tᕺ†Ü}ð÷Éèdk@Úc£Ò^›Šï–v™îÃð‚k”¯¹F<~$DÀB®²Mä:€Ìh•5⿉mRúñïSú˜?¬/ÃÉܹ(˜Ü³l®ˆK™‰= £Èò„”¥ Ié gTé·ªô_Ué/Vé‹ÐP|$ÇQ)óÃŽˆ~&¢×FôˆŽl‘|¢+s¤Ô„¤‘ò )ýáÌ|ý“|ýã|ýÃ|ý•|}W¾þÅ|Ñož]]É”Ò!$=&e•” î¿ÃõM\/åzD§§)F'eRæJ™-$ý茳ÜIìèG¤™¨,ä …H¢f0ºcׂn›ÁÓ šÁ#ü"ý„ÊO½ezoòÈú7Z© ýãH+I/x ¼ ü3¤øu3¸OÄÿýOBØDü«¤Nö뢕ÒþJªßOLÿfŒzÊô £ž$~9êqÓÖ#¦ÿ èG¦¨Ã4Ä·›ÁÅ<2‹n#^EÄn!†"fR“ñqdÞ^›ì\aúE¯r1@‚>fz–‚‰Y^¤R'‡ã¦G^dñÈ ˆGN:›’3¨SN^'’m¦g²hgŒ›üÁ âÂÉß©Ó<Íÿt×·êi¥ÙË3$–ËäWý jœãW<øeo‚n4ù°?aƒã’?¡Ð³|‹C¬BÏñÿ6Þï‘Þ¼¸Õ]Á%ü”§‘¿l@7ù>ÿE1 ²W¼îÿ£¼&ØË× w8ˆÁÂ3ø*Ï7øJ˜W$he¼—/õ&ÄTJ£÷_ŒzäT¾Tz^YN¬ô›a¿uu³u£uuµu™u‰5Ïšc]`Í´¹m.[†m¦m†ÍfÓlªM±[fbb4ŒC%™šK¦ ©Ê¶KB¼õjSðìÄf³j¥z}¹«Iõ†²XiQuÂ:ñdlEQuÌV÷åúAJÐ-¦HP²¡T˜ögÇÜÕJ‹÷ÎܺÿpC­Ž o!Õ›ób·Öã:f¬kŒY¯ìªxRØéóå “a¤@iA*þ–dXœˆ0R@ã2¬F†a›T”$ƒÞ¦•"Ûçm´-™Ë‹!«N”\╹¼J®Ã~H&sNO6“P§LæœId²"hÐ0â7DÈ`©€A£Tº{§Ü#9bÈq Ú Ç¡t*Æ÷oÖ«=¶ÉëŠßs¿‡ã؉߯„$~Ä6Ä$q¶Iê‘/W T% ÇIx JH31h“jêV 4ЊGWÖDkª¶(NBÁ ´¦©ýºŽý1!u™„ÚZc+¢%ÎÎu¢VÕøgÒ>}çœ{ï¹¾çÜs÷ø|‹sKshÎñü?Ÿþ¦ÿa2ÌôÜêë õ;BQG¨)š<¼w»99³Z§ún1…5ɹ¢±ÞíLöô'o9ú[’}ŽëTOï#Ô½LÝãh™"½¡S½RËtÔrô´tÍL 7‡¿gëà·¶š‡±Ø0[¬™Ùš?Bfê f+Ìl…™­ i"k+ÜÞá¶Î©ÒÔÕ¼yQÎPE.Þ‡h¡­«É¨Þ³:{9³™Ÿ-œå þm)<]I¥£)™‡ÄTååL…·“©òqXµ¤2?û˜­pÞZR©qXãh"bíhùöÇãCŒ ò¡„9;6„—ÖÖN>¾aSg2˜ †’R´¥ Øq$–žæNI}9x=H‚ÃÁÑàXp2($]8¬½l¿n§Ýöû°}Ô>fŸ´‹L±¹ó¼³ÿÃÎ%M0„O¨%k3_ÖJÄÙCÐ@iÑœ'áiîl´“^¬v+ór¢Cr Õ u äCäŸ"ý é+$žü ù+Ho Ͱ®œ+™w´0‹]–tÌ\õŒ×W½*…²gë¢ìØ´(Cëe°±ÚŒrº¡&·Q……7Yä!ýés¤HWÍUgO,¢¶+Nâ@÷ v†‹{†Àƒ `áŠ{<„8žNõÀ÷qO ž  <8);g?K0ùÝDÌÁ˜‹…lµLd¤uŠÂEz ËT½E/ãH®Œ5ÞbÉ…˨§„ƒD;a 1{Ô÷ƒóÁõê{ÁÖù iÀ¶ú!²*¯McÓ8‘aò'­Üû%|C¬üûhk×B÷ªp‰8ÉJâƒÑ©e—ºt;üî‚ÊÀ ¦+z…úÚpmwíÖ•ûL{-‰•{½û|…Egų²Iý¤áƒšßùþ-<ðér- å¸]ÏÛ|å3o5ªå¼ÏexÐ f¥;ÿ2#j!*’cÄ ½çT*¥¿w •‚ ^=g·—äÁE8‚1À‘™I=èSpT2V6¾ –XR ¸àùÖç–äyĵí±q¶ÕN—}&OÁç’RM¬¤› à¦-þY8Ž…„كщ´ÞKß‹d#¼iÅNZÆx©çÒiäóØ›Óhë´uuãÀ:&Ö™ióFeáîŒ\[ëJ-Ü•ò°!¨‘ù#YàTy›÷IeUËWç*¼U•UT¬(®ŽÁrEYŒT•ÇHqIEùŠ\7¹J¢ªƒž,C•=‡Œ@Ä£«1M—Ûå«õ|5£ »—Ë­1 zQfpø°Q4è:Àï÷պܻV*NÿkØwám©}UÑî¼Ã‡Ž~2+mùu b}=gÃËW5>ñ+Xðå|ºæðÎuOíOé6oòe«37Ç^ÉÏðÉ3ýA=2Â;–sð‰rÛú?<šgv JM{w±¢acf-= ¼Dt¤^rœÐœÑП+jhî)¹†œ¢9WþV¾½MqD¿q g$=Ä-’†tCºÊKp`À­QŸš ¢H zS1¥Nö= Õ÷÷¿¾ÞV°ö™Ì€sÝÖcpèà‡…Ýe-_fN\ûÓä¡3¿D*Ї'³>ÔI¥+ø²œ5‡Æ5è„«y.:`½¢$r∡óÍÿv":ÆTkP™Ïï×újÝ´âTÿèéÌõ¯÷µÚ,áB_YxëË™ŸÜÌ|”ÝÎаóÚÍä¡ æ“áÄHdL*¨¤•œ5Ç*ç+‰U°Š•Š2 £Ì:ˆŒs“\” LnüxÝ€øÎÁ–œÛp^¡ Q„ßâ æzÆ9÷ˆæ@ÎEQÁ^ DÑÜE+õR Ë›T°R ›•‹‘Ìz.B*Ósê¹"é^:ûÎÏECíÔØ|6MÆf°i¨)“ÿjƒ{åøªþ™QµgòØ©îμƒŸT¿'&Ò!¹»h—骑“›¢–NDÆóª-9¯•” ¾^e(1Œ8C ʰÄUu«¨Êb>ýæÒ›à•JÏiÙí1Õ±HàÎÇðév9ì2Ñag˜®©f0Þ½mP.“)œZ}U}Øß´m4óÎJûh›.O®—××T=ïÞ6żë€Ú‰li¬T)êó ÀÊØ$Ǫ†6ˆÂQ‡ B jß##üÆM,@óvæ•iäÌÃÐA…ùo¨é$[ùØÂ +x6i‘D'É¥zŸ\jðuËaL>)§òç•?þ)[kði‡í­ÊëÌz¿¸ •RcEEcã•,¯¨”غÜÂ]åH»$'ÂÇ%ÛüLv y”ÓSŠncæW”Hz+çå¢Ünœ»Í‰ÜE8K?æS00õf•e)ÌQ Á_žgÔW«¼ÐÕC|!¼ôàIám\‹¬]¸Ã]¶5)%³Ó=9Vü šyy)PIZyqI.*¹¢®q×mïÒ°á|–+‡É(Ç!‹sŠ¿Ë˜él®lM/]Ìnë ÔQj/¥"¨(s.+,*,.äDKåT¸Ì“…Š6^#%bA ôùØ2*±U Öæ Óª 1bÉE–­+ËRYÙsºZmÑa2jô#ìvÔ&cM5f8 hBtí‹C›¢§¼ö§±+Ï=u5T7è*®ð–Ö­¨oñ­©¥¯ß'ÚÇ®e&¿Ìœ?þ÷¾ÎÜ™:Þóô»Pw絸×öƒŽÌi<£»xáDŒ˜‘œ”ô’9j7ÿ‡érnâºÂø=w_ZI«•´¶¤•-±²,É–ð$L]|Â#M׎“iÀ.Ðb`¬8¦¯˜¦„’’b% ™@ F˜LH;¡)¦ôvÓvp©›Æéxšé„!$Øô¬lJþÙ½ÚÕht¿s¾ßùî '>棛ÉOuÌÒ` ÌÂ)›!E8o͵×a,ð—D…5ăOü—á)T¥2A¶Ø)Gà6~}>s;*sUUªê>5£òªî Å04!n¢æ18&’°º.Ó0ÕäÖÈ]¸•Hä¬ÛÚ E’®<ù¡ª™´ÊÀÜÿç° ¤Õ¬£MÓ=V)âÌæ?zíëî¶éA‰ÐÀ”vú×ýq#8ÉìÃɸǓ¸Ç ´°NÉg«öú ¿ò1¼èæE z<¥R4_:.‰ÌXÁ/·¬ð.÷­³ltmt¿jû¥ã×Û¶·—…ËÞßù®{¯û;üo~>x](È×=º7à“d¯Íg ¤ôyúNo!ùtJ½~Ý®‹ §SAôyÑ/’Æ+Yü²Ìòìµiä,—Äa-ø{tèÕßÕ©>À%Q¸½}@íÁ,ìe o.ÖµõZ‡ÆkY˜ÆpS~b0#mpMFÆ †~î Ï`,¯‘®§´‡^¤Wé új¡ú¤xñA?ÕŒLLÿûÃd´¡µ¦v´u|ÄŸë‘á¢|U¦¤¡µ>1d",WLÔ9þ•3Ûõ½:¾¯wÔt;…í:Ð’ÐÚÖ€3]¸P!8ŽÃE¢ž6Ž:I”¨š:mÚCÜÉÆ»ƒð$‡Ÿ}º7ѯ:ú·ÊÇîÌ„ægêæúAû:³áàñçŽmj=ÿÛ?í[½úõ³cŸOwN1ôRtù÷°žSaÑyb½7ø+{µœ½÷«±WÏ’±Îµ-,â¯ÊPZ:½”¥šRWSƒ©ÛV‰¤`–Ün/?Q|¾x ürùðÈ_Ê?+ŽØç[J³°§¯¤ÄI²t¨ï•P™åRg9ÁéOzÏX¢"Èœ>§RZrZH‘é?˜m Ö€îËÕ+ÙwÊv3®Ù–”¥Ëè¾²L-Ãçg¥Ü{–þ“YY 2©R4…Ü›yŽi5ªéI8Ÿþ¿@¹êŒ˜ƒ /C˜i=‰‘¶Ú‘†wuÅ8ƒ¦•W£V•‹BáPq(âE!âˆF­— ¾¬‚*®B6LYV¹\¬l†IJÀ¤ÍxÎJÜZ¦ÇÚHk"¡MË1ëäÉ+41¤¼h>“>U9öDÃaÓ‡fe¥–§»ŽÔÍØžÞðÒØ¿w>UÒý®{#ñU?û'%úÅ«˜M–Uz¹w9Êeá6óAmÎ^*4!¯UN™’îø†‡ZkrªAáò§y⨭®03¬sÄ9ÚVãªvå Ó]žàq^™KUU‘hm˜FZÛ ?ì c&$Þ€;ßtô7tÓ³GÇŠá‹Ç~«Ò\çÝ=ôµÑF“_ÍØï[„Ex<²9oðà®® vbG`¿7 UѪÐÜF]h]áfaKa7ÝåßUx„{K΄Ã* ƒêt¹5ÌÏ–<œ¼œ)•ËáÈå¿ “|¼€O{û #¤ I|œÆPS¸IèÍPSÙÌ$0ïlZʘ} ·°ÃÀÂMaFƒÜéwÒLBæ0Ù`ÎŒ“:õ"óÜ1œSl¨1ïl0Õɵöyâ@öÔŽä©oR¦ÛRžP.b~ SÚ ¶ÐI; ‰c‚93gå2f[ǯw?Ü l õ²¤Ä›,ŠßÈXÍ‹½nËãc-õ ÚQ×õni__öÇ*>¶éôáÝ?xxaщþØá²ëúÓ±‡–N-L8C©Ó[ÿ<£L¢ªÙ˰§±;}¤„ÜeñMòfëòõÈpD9ØÎµóíž^¾ÆR" \X/ÑEÎhÄ(‹ìè7¢ªÎööùˆ`†“>U—™5bn›ŸÄYœ²xS<Œóq}\w|E4§fh•ÓöiMÒôÒå.Ρ‰Œ’CUmiCá–glbHs"?&Fdw 0XHEWD‰Fä0ÂYÐLB\[£ÍPè6šI‘/ä~F1¡‘Cä;8é>×ÍŒâJ¹‹§%Á<‹ÝWáÏèzóȺâ}?Ý}eõ¶+»Ÿ|ÿ%P¿\7zÅ=onr~ÝζGë„–ˆ²øõv>5xêÄž+û ÐŽ-}¸{iÓßgW¼qðäWº`ѽ!î(ºÀF~}žð÷û´‚™BöÞ KàB·€ÀÅåÙ„)MJFù=\¦ÃÇtPAIÁDa GåϘŸ£yGyNؼ*á&ˆxo¶y^éÏØÀ¦Û…ú)á还ðNžñKø /ðïÑOˆ}Bwó45”ÃõæM8Gãù´Û±ýÉæ•7 Å.¡Kä''dêˆ ãkcœû½6V³^ÛÝZùÝd@Xýê}þRAy“ AH¶a¿íÂ~ÓI”$¡ ÔãÑ.9)­O¶¥mi{ÚŸ.茤£»’Ç}GýoFúìgüç¢b—¬—l×D¬ *Ô/Ç<Š×Q"Ž…°žWv8ŽÇ·È XHÂü’FX[™\KÖº:º6Ö’Ü Ûb›'oKöð=BZJ[:]îž¼ÏAþ€e¿ë€ûçXôØ;É,ßo¶}fv dž§–JŠûÙUÛÄy†¿Ÿ;Ûçľsüï³Ï?ñÅ66±ÿ@Üh¹¤”m-P Œ4T€ B6 tYSŠÐu‰º©E¥©4Ô1*„® ŒÑVBˆR*Á&1B׉1VÊJªM‹¦uº÷;gýÑÎþÞ÷û¾;Ÿ¿ûÞçž÷y‹¨ϯç˜P¥/ÆéFrëZÜÀÏeÎn 4 Àë Ÿµ ô%àb åµ<ÑòÝùÑüõ<—¯> '(¼sà0gÜš{ÄMÝÞÜ)üÉ,±0y>­“ÊÔÍé²Bg€Ç¬ê×'ÓJÄæâLN5ÌWƒ7Öâ”cÎZT[1ÂAŠT˜Oºæ®EiÛÜ2Ôg±Îò##›^µš/J6£Ë]®}blN-Ìb!ßn`n6[âý/w^<ú‹ó›oXtmìíÍËûqÝNmûúõƒùºÂ²¶g¿³ywÍ×ɱ=£Ë÷¼9¾mÑáMû–¬ï~·Mߪ±+›Z¿½c{knCzæÖÂ#ÝOڵ⠃–›ðKÀ„Åp¥–}"6Éÿ12ã6pýü€i—°£r§¥ß¾#ôŒéi»Y0 'È&>æ Ç<9|qýç^ÙñܟϽ|†d«Zúwìíhîªý¡_%ßÇÑ_?þÁãÏ=pìþ™þ§6’“»—¬ùËÎÑÃر<Q8þÙM/{£wé[\‚ò$(j*Á*ÓÒM=Nz¨pïWLóð¬0ý<ïÂYì›]üc=½‚ÑX¡V9êŠZz†é˜V^»vï^*2Üf·¡˜­[Ø×Õ3O£â÷¹Õ´Ј~0f0NÐØë|+×Åî ]Pƒ¤€>Ô(B©1ˆH˜Qt ]G<2xž ãKg°†G1EXÂ!LñjÁÈq”¢Õ¦•±84êªíß Ëô.jêìM6–AÞ•ë2@ÕúGåæÝ‡5Ú÷èô£ð×*ú-×ÁýÕÌä6$m d–ù+g2òš`Éñ¥ÓI}ëäqøcx­ÂÀ; ”xR ;åà®§h 2Жqâ€! ñdÑ$èb‚hI ã&¼?‰1‡yŽˆ¸6Æ/an Æ"NÃTœ=E–yþS‹@E¾ûB4ÔF`“8 n—AmòÐVض/v£ŽÞÆ©OuרˆÒ½S>o©ä󀓦¦@¢ytIûy‡å5Æ8Ͼ\Çý‹ô¥O×p9òìLírü~þ[3s>%„øãü&äGAâ#ú.Uá B”‚A ZÄq†Þ@nhFhfzCs›ˆ_¡¢Éï  àVxj‚±I$&”nb4òÞ¥÷ÒiÆ!°¶Oîàtù†Îž• ÕedM6YEÑ"™!Ø68E»ä³ùdÙï ÂP6Ž«yæNdVætŸ¬Õýx¢<ª)Oû”ò´[ŸwêNû™dÏYÄ ¸yƒø°¸Pú¦ÒîWH펕ÊF±GÚ l—¹!ëqHªÚ¯ì Im‡”“âIéw¾“Ê»âé|à‚ò¾xUúXüHúH¹+þGº¸«¤ñ™AmÀ&¡€¢ø«Y\~·ì2£lrÚ²s§"J!Iñû#6ÉaÛjÃ6I´Z'È;š(B”`àY߸ ü­Ò$‰Ôér™L‚É?ïi‚¿!G¬šm‚dN´*X™ w4kH³¶Yÿa¥ÖWB›èÈðú€<>&á§‘Ãì4ˆúR㵬܇:­‹!~àlÒƒ¤),½õÿvH8Ûhl„¯.å“ÿ;ð6Ðða£žFá|a^aÎbWyÀ襂У¥­Ž<°v¦½Ý›ýþ _mè\Vº½´!þÝïàsWZcÁ´QUEOæ'Üêû?ß·”WU®6œêÂ-ý‰)ªB܇ #”DóÉ€–Y…V)ûÑ>eö ïÅØ«¾Wc·}ÝJWÎG»býÙêfD•½ê»»7sÅ rë„ØS(2Tø#9浿:ݹ¬Nñ*¹z­:FäD¨û}“øJôZöoª‘‹bÕR/Q§Aö9WÔwfjëŠ>œ[WzWÅž'6 IÅv¼*Ú]ÜZ,ŽM¾Œ¯¾ QÉè‹*qoš3ª¸•Öì¾è Ñɬ1TÔŠmÅudíæ» ÝÆîÌvCŸ¯OÞª|/ÚÛßcØ+ïU†³ƒÅ éké£÷¢Þ“”…pD Ê®pu6 Ì“Bùd0J#‰ù©,­ÄóyÁ•ˆ»Ý.RgHÊ…Á¾˜×] sƒ'ššslxâÁ…º×0¿¨ËÍJÆOüí\28?UÇNHå«4PйÎQŽMš-¶âpˆÃ Ë/kjÊ`·“öT¥(2k±€–E‰´‹!67OãË(ŒÖ`äÐä’éd²qñ`§œÝÙûàÊ“¨ŽÎ½-ënª#)…B·MéÛV–Ðl¬èÒ`Äa+—Hɤ.@šÓ¹ê¸GÁFŸì•‰ÁPY”­‰{j²8m¬Ëâj¥&Ks¸.Kcr"‹3ü鮨&®;~ïí;;‰}vâϳ}÷î|‰Çà8´R>Ž HKDÒQÕ‚Œð¡ÁDl>ëÚ„­RÔ® º‘Q1$*Y*›ØTÓ$Vuc‚µZ÷A&QFL]•Ñi`gÿ÷’4´]•Ü»§ç;+ù}üÿ¿*Ë-ËEçó¹,LRG¢ã¡hB&ˆ'ù*‹\±ðI¼ä ° é iÓI.;A{ÎM{¨ž#\è¹á£ie:] î™¡Šæÿù‹KúG®¿_É®6ü‘¦eY¼ô§ëŽ}£ò¬±öÑ—^^þæ¹Þ…ñ }oŽv}YƧ¢=óí gWíz‘ßúëÝí{‘ßï; •øó¼½–wZpäq~ oM‹’;&ÃXeÇ2Bç¸2ÿäiõUk<Ì£2¾>îNœ”TæŽÖý¤וù´™n°ã‡š/•Þp#ÅÝíÆî ´w¨ä (`òÝäWÓ]ÏUK†_2×ó…½Ñ¸Q}wK¯×E%À¨Œ&QËÏâé2Šš Œv»Åî8™æ%Î%~“ø5ñåÇ}Ë}‡}Ð:hŽG¬#¶QàXö,ÚÚ2j4ëDYˆ(²Ÿh6 •ž4[e›“õΨ"7=Ñwˆµ8ðû“œÞÈÅ¥8ŽS¦¦¦Fìó‹M‰x‰kF\s¦Ùll¶4°Ù­Я$Ðh–✌I'#ÍɘtjÑc2Â#ŒÉÈXês¦›dó˽|¡r(öþ™ÿ„<à~)…‰ö*³w *tO䦔‰)¬ëî?t¦lÖûP_šå>GÇ>^½¢Î0PÓâE×9ÔÖ̼ʹ̪Æ@CQðÿªÓC‹7|H»ýä¶jnÅR£Ú·‰=ا~ß:½¯¾³vMœòEkÞàk1šž Îô˜ôßäŒòÔ½qŠˆÑVžz`zè¶!ÐÆÐh«‡Ìzz\´Zz×jZyê–É`ÓØƒZh¡óD®V¸Òp¥¸ZXípuÃÕ“FM'‹¥:q*ìÀ\wšÍoÃXqç[Pš¦‹o'èý¯‰‹ó2 Ù, öí¹Ò3Ñc©ï ›í½°ÅE®!š¦Èa¢µ)rŠh‹¹‹hX‘D¯Wd™èP>’DÏ)r'Ñ=“»:;kj8•L†Ã²è©×°©¡ëRµŒ6¨Õ®hšM+cÕ I=ëz.öðjêYlh¹Þ¶um¸mlIÿ_‰eÒd$Ñ!ŠL•޹¬?Ó‚˜Í&ttK »çöBMµÙ¼Ÿ“ùbQ̼‚Žã] †D&ƒ1 ƒZ3™Ê/2+ƒ•ýì£y•ó3BOðbÚù»è…ÍÓòðK ¼2§t¤ºþ!ålyè1ªœ,´ÌÝ …»dn#¬&bÆsAÒïh- È¢Ý®Èn¢{Ü`W1ÄT5A‘ª$h¡¯5û 8"Nˆü”ˆ2b¯¸Nä׊Å+"/Zèc"S XžúÏ)ú.lªf„µ~uŒ ÂgH/YGø‹ä Á””åÀ3+„ÔBqƱ̦Ó,ÐÕø\g™À»?€Ê 5>å*ºð¶§5C-<©ÜIS†Ù©œŠLí)¼ áýêaõuõ¬Z‹´2ú¾™u´¯ÆÏD1 ÄÍ·@vwjE–ˆ®**—áLŸþvK8¬c^äJh+.ã_›ißÿ v»ƒ9ÐÁN 4ÇéÏÏ.iºrMÒ¦CCÂ< T•EP%òóŸ‰ÅÞÆa²þÒn9HvÜ¿™í3¼¬ýoÜú”*ÕÎÿÖú?¿ ÕÆ#ê~ mýj1÷<(­T¼ ©€ Ì€¶• ºlÞr“ýÎ`]ÜÕìj±dO'êL¯ lC›_Kï ü½š~+ð^àºøßÕÛÄyÇ¿ÿwq|±}>¿Î¯Øw~ãØ¾8qÚ#isŒñH) jQ ¬ÑŠ´"Ú®äÁ£$ )iiC² ئ6Ý&1F[ šV*¨Tغ¶R4M](•–Ieëè¼vk×Îþw”NÕ”øûþg['ß÷ÿ½þV«€A±RYª0MB“²L`>A˜¢ojw+9—"x•œ€™»×ïóy©…e Q”¤Ì*ßFFùrY)ˆ'DÁ³b¥¸_ËC¨~ +gØú4Vo@{©ëÍJ=IèE‹CÍ•°¡†ÜÜ”/º:ÄfӦܸ F!|©BÈ‹ž´¢Åvhçªn…ò©‚àPŽW +¨Þ©¹é ¯êU\ª1C•_kg)td|Už€ÛxtÛÇÀ,½q5_¥”d¤Ë¶â~€¿Ã0[ƒ‰2¾*w㜲&ê¹ñ׷í ׯã‘^fÛ:9”Œ_»Ta\^¹õÁȵ ãæ.Ï]1ý ±•„×µ#<ð{§¨öÂ^ |ˆB’fœw:·;_ ¢sÔì”$žÓ}Au_½¯Q—Þ×(Ï;€R‰—\øÇÚŠóˇ“*-¨êåØü0¶IŸŠÊ®—3šWy¯RÎ/ŸŠaflŠ·™.oÿ™p©Ts¨dÞç‡?U¤“AP5~E‹£ÿ‹2#Π›¹KG ÌèXŠ]2hG`é@j¾«9Ôlº÷º™±Ý„ʵáŠo^ípŽ/©sZpö[>÷gÓvÓc¤šÈ+Zý(Ø|¤êWñô™‡`·¹b1k• ã–+-BK˜É1”0aFcLL[Hﯿµ i!r´p–ˆ…Ú-a µ´¿[΋úH¶’ëIZžÍŠ­Ec$ËCÀ_ð'œ [µ#C dÀeÆÊcŠ«²fÀGqáYw†x+p¹ý°ÒƒH`tÈD}½£IŸTžwp˜‹ÀÂS¥þÒG¥KO½ö³ÉMÃ{?ûùð&Óc¥®ÒJo•6ÂhÅo¿Ò6t¸t¦tr|7ÔÂ"xðèn”$]±+Ò†Ó×ÁöÓ$‹úã……\v«°%°%ø}¹;û\ÐÜ'œŠýZ¾¸|/VéKrY9¡ÆÕd³¬d×%Ivg² .ðSÁÁ?ú.L‡eø]ì¢÷½ØÅäŒüQ¬2¨EC2kÓ¥T‚pÀ,FQhÝb”„"uµ!¹5ÚÅxlv×Ê›²f–'~ίø5·ßäoËê-¸»µ@² eOdéϳç²ÓY&[†A‚a…`$Hv›Á¶ù´oø£m&;OŒ‹z¼Oë¶x?ϷΕ‹‘ &ó·€±×–Ã~³}®³È«*_vPlj0–ò…¸œHy  â’ôÕ6@<m óÍ$m«û4®å'Ú\!ÕDš±…aºh# ¡§“ôôB¯NÇô×(¬N<ž…«2*%’hÌù¦B#ê®d†—‚‰•7^EvП៓¿ßwé·õ½‹ ÷…6Ž.ßµºaÝQÚ:F¾3¼…ùž^­ë?4m[VUõ‹ŽÑN¥.S²ÂM䆖Zæç€©´Á¬6À6xö‘çÙߨ/K…]#ßæ–­˜¢ÓZŽõÈCjޱ¬ž_ºÉ© ÷±¬•IK-agÎI‰“sFœŠSsšœmòMÉoþαR»5l¥Ö¶ä×1è<õb'ò¨¥µÈ]-sI³$"ñ`bAuU5­â±h-ÿ:4Ч3PŸÒ6"eÒH©6tØÆ ðIÀ?8=ŸaÚb¿ÌP!ìÍnˆ1°Äñe¤ºhWl젛Û#Û¤íñм9 Gã§g2s1wed<Û•üiìex‰ŠÏœÍÌ(gæ2VžxÀOyYV¿0»PÙ{$WUËÒ`Üá€]”H\Œù61êÑg®¨FëⱘDÁ…?vŒF¨¹6õ²Yo®Wÿ¹fμÊü™Ùg>`¦f8lœ‚jö¼ ©Ýf ,/â÷Ç: ú¦-i/ñ¸HÛ1Qq‚k­©»iº‰ijd f³Æ9°³YÉã6˜í6ÞtÌvï/¬? >òeø5hÍuêSZ:­³:WfunžÕóá©XäÖ½¹4Ît->?W²a|B^õ£JpEàÎ¥‡8ÓÎ7êAç}¦¾&Žg¢¹¨¯Á%+Õ5hL‰ä€ÜDÖà ô"ªzÈušÄçfǪU@Ïs©ÈƒÙI—a˜X~2Á© gG‹„²3bÜJ§E Êÿ?I0"ò󢀚`ÚXz¾ThˆXk¸`âÞ‚!Fx‡̼³÷Å£ <ô_¾«?¶‰ëŽß{>ߟœ}&±}öÄçs.Éc;‰ŸÖBI!L$Y¼T¢Ðl¡KˆÒÆÒ – •¶Õ ÒÕÖ‘2&JÖcÕHÛuS5¦ÒíŸi ˜ë´¢¶RV'{ïBÛ»³ß{÷Îw²Þû~~»»Z³ï¼wâÙâVømÀÒÔSDéÕ§¦«ÊÒžýýNxÌ?3sBÀIgïò ÒŽx¢n1ƒ¾—š€x g#<¤J¤íÚF°²Þb¬5¯¶u´…l"9‡†EÊî²»‰Æ…"9ÉMº&ÝSžqi\×ǃÌ~nÖ5ëÞç™ÕæÉù,ïse]9W>’ä"yd¡a3•¢r:ÝœíݰDAC2d#¶:·:¿Îµ®±Ìmvmá7§7kÈPÌÊy±­(ˡ֡ìPn(?Ô6Øî¶q\ZàÄt‚‹;ÓFqÂ7!l8FÓóú‚úv㯵…â§Eÿ¦C$Æ x| ˜\"ª¶Ó•ŸË„ÅȘ,JÒ¥žÉçüˆ<ºœn¿ÓéÖœnRa­ŽJ€J@jÆ–Pý,<L)ž@V€R “×½—½ðšD½g½×¼6oξ)Ÿ‘4!ÿ@>Ñ.·|Ò²Œ¤Í|$o¶|€.lDK´Å@‚G¶¼Ö°VʽRÑv"²œX¼]C"V›(èÚŠ÷°t GÔ ªÖÜ8üÇ‹¨¤o£TˆGÀï¼}ZÛ ZP®‰Íi55´.ÍÎ,Á9›´$ÎãN7&}HæÂ5¯Yrf5+žU?ªý 2¤ìVn»ë ~«FV*i,±“°Rˆ“ x ¤á)d e€7Ñqj*ùz Zš‡3Fœ¢Þ¬WÊ<¥4(J>×–mÅœÜÖnûiÒW934r@ëþÛ/Ÿïùä­Îœün(¡“ÉPÿÅÓ/¶SK?>Ò{ýg;vwÔ‡b䈴ٓ_ŸÙÔí™ÞþäÑMs×X{IÒÁ‡‡_|lß`ëö&éÝÉʇÿÊ:®ünä^³¼Ñgfq ÂÁÈ 4 FáhdTbôX)¶1vÌþ}qÞþ‘† "!šäcq³g‚$ò&V… ¦À0ëÝ%Ÿ½®8‹ô² U3İϱ¥±ϱñú:Y“0?ºñ„ÄKÃÒI‰”.A•¨[þØä0 ÖYüW‡Þ~>úx% ñ(4,V0áIˆ`¹<~Áëœ'‡X»ÉwY´¸hí aryôýòÖ-ËêÔºuáßçßÇ©¹!¡à=Hüa·Ž¶E _ö(œ ?Q¾Œ¹^{Ûó «¹õ´ÂÛ{—Þ)7Û¿XüÒŠ“N·°ctãUå–¯ÛÏ¡UmÏþœ0PìhÔsŽÑ«7ËuáœJ©^j·‡L&’©ÖDkjMbMê•NR°Ï˜äöxæR—SÿT¨.7’(‹Ë²ŒÅeÄ‚,b‰` €t &UÛˆ2Úgðª¡Á-+ÀY¼‚iœÔx–eLg1‘Ia 2(Þ™^¿k¥C~Ͼa RÈú§—ò¼Æ“ÆkÆuƒ4䨵™Qk3£ÖfFã>ߌÆ XÚ%¸ñ=AÂ÷„ ¾øŸü‡óžµI%µ V± ª5‰qmI—fÙОM»Ïµ3ºJLuxã±D Ržd*ÙàŽ6¼Wq¦›çˆñÉfBå’8U€óƒœÆ(Â"±CÜO`~ÊÒi̓ÁÌoáïžÙ>׳}ÚªM·¯üù–]óh®Ï•‚‘ÞïŽ<÷ûG‘âØSÉäCòÎÚŸ®Üxyî™@ßô†d2ß0Q;·ñÊÄúÉ‹„É™hªqù=ê `“ÎAøP¹ÿ t¤¿·jû Ž—0ì!’œr ¡ë%Df¥_»ŠŽ g Ñ ²”‹v2–v8 ª@ûÜ¡àD_×ÃæP¿÷aÔ›¡A›×׳d?{Š¥Jcš8Õ© j(-6ª©LUåŒG¨‡énX¦úé~fÀÑïìõåÌ7¨ÇéÜHhDÍN‘SÔ=åØÅíqî í§Ã»¢OéÏ‘/0‡ÂôÆÁÌaú8wD88:&U_ÒóÌiö4w:4/¾>9¥Ÿ§Ï3o:ª¡ ÆoŒ;ÌînäNtýˆ¾ÍÉdÉq‡4&«™ÜFocFX[Û+¯S{tr@Ü¢o2l}t3ÈÙHšp ‘ ×éá´œ¡ {ŽÂËiF_gQ4Ø0ÉyWVVô148¦òAú®R¥‹¯½‡{rQ(ˆf3,ë#Õ“$† €H!¿(¨zZT}Nô–”¤ˆ©B¦C,T—ÇÏ‹œ#Z]3ýCGѯÅP8,±×*1Œ&Âz„aâ†î7 =CÑ4¾62è2#øRªŠ"9‡ƒah¶ó‡Ô+´g¯›ù ¦±¢Õ™J³‘32{3ßËØ6f†3eÆ­‹ë™O3Læ#æ¯ìW9ñbˆ»£DüËäLgŸóªÓæðÀ€¹7ÀrªiHP±Cüÿ-Í»»tÒ|×&Ö{BŠ€XýªZç*I¸‰¨‘>®´’$‘%«"Ï—èc‘²N,—@HáЂÏ&ÁŠ\&òôtþ+’_[Ú¯.ývéw KO6;ýk:Áç|Gàn¨Qä¡…`PHC¾¡#× H›"uÊj{oRÉ%ö}ñ ÛÖ»? ·?]¯$“I#žxºFÃÙ‰¯µ*‚ËÇPh*©Éðïß1êUÆÄìîAiæ,BuÉÖ´‚ê ^’ˆÓ¨b»šÄàæoŒh!•`T`¡¢„\‚Ý üÝûçw{+È*E°‹ø7ãUÛÔy…ßóÞ/_ÛÁ××NìØù¸¾Ž?ˆcß NBnðõi 0(  i›)›H ëF·®® DŒiãG5õcˆ D¶J|4MM©ÖHk§îš`b?†: ¡ý‰Æ&&õ;;ïuØÐög¶î=÷¾¾¾:ï9ç9çy¾ÔV$ÐöŸe(AK)Ú»ÈYaü¼5Þù"ùÿ%}"óRö-ýÍøy8¯LǦõéøùì´q-~-q-ùaÏlá3åÓè§ÚgÖ\ñ–zKûÒs¿Ø¤ЦêZ[&3Œ•Š©šÚ±î”™YGP$µ¢Y¼Qä—…²?2ŽeNüêÌNïÎ'Çã « ÅÁÈꔨsЖ{.v.v.Ç/"Pç#E{©?™£~ËñÑ E4"F\,ÑdO’ÁÐà¢aA^â`N3 Ó E÷+ºZ U ¢"Eň†oIeÓÂBoÔ€ j8Ú˜ÔÙ[Ñž¬®(:dƒYìœ*Û*Íjš‘‹ù ïœ@·zz°€h¤±Q×þ2àk¨ZwÃ(LÀ%˜ƒÏá> Ý2ýÊöõk[µ1Ó–ýŒNõ2ýí¬]üÅ#`=F"zwø?" ¿Ng©ÑPIK!õÁçñ³?ˆ!2Œæ FÁ “«w̰T7VqÈ4¿e£EÆ<3€ÌÓA™ooj¼‡¶‡`q¥Î¢å…¿Ú¯{¬ñõ VÒl`ës³ –žn°x¬¶+ V©6VTöã}Û£ZY—jéšjõàK®ø¬Tͨå…Ûh´šÉÔÌ*4—}V?ö!ÎÙÙÁStH²ºWà¨ÅI›â@D,ÿ{m@2™Bˆ³ÕP P{ª¶Â×ñ#ßÛUù°·©>*Kæ½êݬڽ¡ÚšO¬šXvõŸß}ãYzxóæ¿·¼¾Üzø‹ÕÖ½k ý[uhfH€GNB!ÿ:Ø]}½7U¯µs‰„ Dv|^‡©ÓÏâ—kJ¬«þ–u§ëë•z?à’/44ÎpRQ˜vXÝ­€ê𣠅.Û 4n6ùŽÐCG’GR'C'Rb£Ð(RbÖKõiÍÜl ‚€»H×S>F4h“Ò©¶t"gškÁ6¿ ;¤]-;Ò›ÍÃâaépúpû„Y‚’xT:š.µ—ÌÓíïÀ;ôŒùIó­æÏMí˜8%M¥9hjt¼5©E[I:%5bÞn޶´%ኌ –¿är1xè©4Þ¥ÃÉ‘–LWZJ%ÃB«„´¶¶0"j(/|5Ã^¾‹”þÞ°Â’»±Âò[éSî©,½!–Þ©\SJ0ÏÎÊc",sÓ5CLvž+AË]^øârЪ%bË»W„¸XÄôš({ëá1ÚQ:ѳ¿¾Äí­}çé|}²IØðµ8ñk±úf‚ÿ£±ó%ØŠ‘¼P}žŽ ˆD^µÃ¶ D’9^HrT‘Ä$âW…"£^vWc`ãÐñ] §q\‰ãKÜ)Žžá€›ÄK›é(¥8Îå2,{/ö‡]Îæ'™~AÙ9y=Zó\ÿ½G1¨ô9ÕÍ6 1¬:Z]åêЫÏK°éË_¢ŸƒÕqÊ9~µÛlùŒLGe@OE) Dø$åÔfÝ —D¡æ,3v :+h„Pø’pJ g¦Lr‘P‚~~ËHŒ<…w\ÞXs=R˜§Ã¹Zótr8€nvá1ˆ~®G?ᄄnÇÐÓ}›{[ØODò‘­ƒkÇ’±îÛ`€®å× ;a'ÝÎoÆaœîå÷ ÞEŠàåB g.ɉ)ä D¿áxŽòe.eË‚ÄI9ŽÝÕŽ' ð<űü¾-‹D ûÄ}ý ôcÏúßPÁŒ8sã|¥2¯ÌWpSÏrå2k)ØQ\h>’j<þÓ»«g«gGࢰ¿‚:¯2K¯ŒÜÀÂ]ûì{çœKrœ‡Ð˜:%,-M¶c.­`šÚ)]§™ÑÖ6[5ö¡" cV¤‘á£Ý4w…BÙ"±jêØ4ÔhʾÚyÊ´P!±4û¿sZ´E¹÷žŸßó½w÷ûz¯ãݨéìŽÞ ÒU½¤O鶬¾ s%뤿Î倂aà–š _Ä»³‰˜™i'Yo†’aR"¼DðÁÓÜ}¹/Zˆ6M›*‹CZ2µz—Œ•–ôaÄpqi>/UŠ}• ˆ†?SU ³ÊŒ3¼ˆÁ½*ð®ª:‘Û—èX«$íÁ®îÎnNp:\NÐêh't¸3ùãA‚>Õ£àºäZ{FAÝŽ4Åiw@‘ì­ƒ¢GèU˜­Á"ÀÚ €£¹¹yÿþýàŽà’¸8XÂì XÙÌ@–·ÃNÛX”¬ê¼7ÓE½,é1·¤ìTↄHÝ™¸†ö¨;ã‚WÙÕÈjÔ.¨P;3èÿ¢à6ا(Y—êH³°š¬#B¸&Tíë\³ºF®‘Ãþ,3Ûí ³þ?‹~׬æž­ï\·ã+‰¦_ýcËHŸžâÌ”nN{òáµJÀUã“Äpïø®öüÝ–¡þ±î‡ž~Â_ûõ/äÚû¿˜õGjDd‹ÉHÒð'+iW™ëÀNÛyû¢ VS/Š’gØ3î™òØJPL{xä‘<Ô³ šeÏ ñû/ôvx ú/´ˆÄÈcù(g)?Q±V:Ñç¯ÉÜ®üß¶¨ÑXKy7IQ>AqÔQPmÄ-*ø¤Ú4ŠkÝ1Å…EÕLÇHýûð€qH†Û¶a€™‘*¶XŠ«# ú¿Ÿ®s“xí3?xö—ŸþјF”f/¶®y"³ýèÑÇ::¹/ýë7‹ß)õôð3/nŒJÉñ¥Æ¥?®^síÓ?…À%7†Á=4|ûŒÃ†?ö.*ˆ ‚È0"X ȺÏI Ú¸ÆiðHfž´8(þ¹`ˆ…ÆõóÌQâíe{Ê~ÈV2O›e“dÍ’É!Sn£öQÇfã! ¦f—kÀ5æúžíÇÍÇMR6 ŽRDµ×ínpÁzé}„îr=NŸ¤ÇÐ1ú ¹DÞjv§Áq} ìÇäõJ"Þ¯Â4·­%l=5µ·´¨¼[EnM¤,`¹$Ÿ–yUž’9ùƒ¦aÖz¶±-Íê B®-÷µª>BÊXšÈCNgpA+L%K‘tO&£)ÃæhÐSŽ&Š D§¸ÙÞb #®Jb¾›!ð]ÄÅ<ø3¸sÕˆ`Ä÷”±jÇ5öd‡¿ûÃÜÕ\iðÈÜ7÷ BF ö·ú49Öêþh¡Mè}ÔÜúÀöéÇ·ïÞ°îî•+x`ÓOŽZBy÷։ş,¾oög†>íúïÑ^ŽðÓ(„âüWWÝèÁïD@y­Êk ¦7¼*‹0ià’ €ei%kdý~?´;¦û "áûšÍ&–ºÂ8b»¸ü®5×/06ØÚÝnKX‚1Tåóy Ö`ÇælùžÇÃ%t䈧–:ñÕETïè`7ÉÖ3K„’iÂ#R€àxœØÈ·m/ÙÎØxv+[cLL18‡BjöÉš°[€=Û-T^™uy½jâ-ܘ½Á\<9Ÿ7V[k…•2¸gk;"ùÚ*„ÞåíµT˜¦d䬒QÙª\¹Á´Ce¡ZkL[Ý#Ímé˜PëÜ|DÞQóÙÈö(Á¼S N‡hJ˜ä¾)IÏÄÈŠÌËýÞ÷i‘û7 HÁ1»›t¾A®ù8ñ<ÍñNÆx2ØéÜÀ 8‡ÔÍÜfçNn‚› NÖ~?xÒyÒuÑ1ãœv]åþÊ͉‹®ãÁè¿TWLç¾ÏgŸÏœïŒœ±±}Áç˜lc‚/@3!„65‘¦Vš«ÉªHSh³,ËZ ”©ëˆ¦ÐšMÝ¥©Û:•Ò° EjW´ISשM*Eýc SÖEÑ´•dïûÙ™:ÃÝû}ï}ßwwß½ïûG~m‘¼Ç2‡Î˜v}ôì³Çžsžÿœ¿|I¬¿½g2œ5ž>4Æ0ì)ËKLÂÄײ[Ó)^éÂŽn`bûD9‹qÂcŸ8`¯ÿf80AEM} R"‡ðdLø°ð0Œ=n¯ßÇ3ù­5i-¿±%mUAi éôºtÿÖQø>†¥«ŒÎa`ªÑç°'4 ‡H(¯¦ñ±QG³‘ú¡ÿ å×¢¨·=† Oñ·ßØ@ÞŠéØ÷bhÙµaÙÁúaïYöl½å¢™tè§Õ%nɺ¯Ø.I—äUÝ&qP§Ž¶M˜ü¼XðvrÀZay#ØX \˜rXóĸD¤dkÜ!s¼U À+äà[‹ x+¦WHk¢B$£!'»,]°ÛIƒõ­™™µ==U›ÏWm¸“ZÃíWSK"Á?*Ήkâ¦È‰Þ¶÷X޵VÔt5(G· t©²íóÅô PÀh»Ô›ße AñÇ¡EîˆæŠh‰:Ã~RC„ I²"­Ë¥¦!Ü2i¹%Ýj@ʘª„ ”Ÿ«ËE.ûµ¾CÛŸÆcýÞ+W&ßžz²'ðt‚ÁH»á¿ËîÛ¾¼°£-Ž >e:2Ü{þýƒz6V¿ßØØù½?÷Cø1»±N¾‹ù63žb¼àp¿YΰŒ.M'[O21­\;wðÅ9ß=Vœí>™+.š-gÄx„}ŒñŸ,àƒŽÄgü‘«…ìì5&Üûû7Ê7VY=Ò¦‚Ñ´Éš½n7í ö];lÙK6ïcc£aŽO°~ú@Ð?R úìë}×HNAâG2±|ªh‘3*V*=G o£”8.CÅx¯ÔŒH =øÒÁIì|¹<zŽÒ˜³uß)é8–œ:0ÑÔÉ’NÖôu½©_ÐïêaýRöÒÏð¶w`½;Aš Î ¦´ÉÀ 6€ú*Ù¬·ÓNð‘ø.®¬s\çGgfFGgg~hŒUZºû"b*90ÒCáM<0;::ÓJß·VJääl|ý•ý–!Û뀕ãº( Ö ½ÝVy'ÉÄÛ`­El*k kaÆÍ~lAÙo14bà;ÄOå\“´Å½‹Á\`rï2õvûQîÝŽÊ»•w‘¸-_aC QÍ®aIK° aÂõ+ÐúanÞ;Å´~ÊㆠÊn®DhŒq'ôá’úïì8m ¸ïlooc¢²Çœíë€ypxñAÉÉuM.™%¾WPü~yEjF›ô¼üšz¾÷5óõÒ›’T2JÉSÊ)õ”ù-åŒzÆ<ÏGî¤vLþ\äG=×C×åÛümyGý´·»¬–õ²9m•Kóò†ô]¹»À*Ö5\(M“iEìSêä)eÙêÊ*'È ù#å_Jø°ú¤ùNäéoRX‹ô+æ i⟅¨*ÇcI:(§zLáx¨Þu<ÜP–Õå¸`ȃƒ)ó8ßÕ&maJGRYD I¹IxG/RB_K‚‘£.Ýö&ʼ ^úGŒ…˜ò0Bð9c¡ë–¦¿t%fJèF7@>˜!iÌöùuE&¼Ú+†™L.M.#ñ‘”„>“ËNå •ÉÔÔWà¢qE±-3aÞ2ÁÙ‹„O‹³Ì8éÊñ²¤(ºäqœ¶E>ñ«:ým4* €wÃÐ¥h‘ž£ü]JnÒ(¿N·)O šöºNô¤Y"%0&Î.8Wq/ºÛîM7¼ä’snÓåݵéÒyþÍôÏ¿9òÑ{g7Vgk˜ýU6>ÃðÞ*øÕ®IÍâ¡ò¬Œ)-*Ì—{\ÝéùòîËÝ퀃 z›¿ÊQ¶ƒöe<ö®(6àýllœ…úruƒ¬²;Ë…Tó§mmš#7Ã>èðFä*-E±SKrÐE‚ŽB÷†Zb2Ñlƒ¬‚+bÆ991œ›L÷ ‚(ÆYFŠz1…©&AõÐWôöÚâ±ÛGhwz˜l>õíÊ;Ïdжñxëàð¾‘Ö? ·Örç³}Q¹ÇJöªD o~±þǹ^Jƒ¼eñîÌŸ[z!]è‘l›ôŵGɳ­›iضÕÒ_ =ñúÂ>5‹Jóø£ JÓG~ÒqG ̹c‚ D$L3Ó Â4ƒPL’P6 ø˜å‡´c€m‚¿¾…çÐðo@ºa¹8D4ž` ‘胔€qLI'ßs0ãS®ïÉùrqæq‰¶q8ãDÂlŠ0²à­ ì¦Ë¢x± °,Jµþ‡Ò¶2p$p©«Mm[»«…4ôžòüöþÒÌÑ.ÅNO-iÄ×–´5m]kj`¢Hó)ñH†äSB.›ÈÅ*ñTbnI$ŽØ1Ú^†2Ó™œ™hR²DÉ]§MzÞ¥az©éÉWyöK›‚‡ Ú1—yØY:ÈxÁ˜Xh•Ën²ÇÔ“#*QÛÿ©¬L2 ùç‚܇¹ˆP ý’;ú}ÛE´«>~+MeŸV­W‹½/âÅχ#¾Œß¸è°YΘ7ß™5ß™…#~gÍW*l^…¥Â€R©&ðjÕÎyÕŽ¿T; @ð¹oàܪ„ËTvºÃNw<ø€~<Oƒÿð£xž7€ {¬„Á©ώ󸆧²5T¶†j¡²5¬"3Ê­ïkX£¸üÿ‹Å©ß>þ`Ö±úÂø¡'1}³–ë>Î)Ôɱú™úKõP}EXÓ‡öGÅÙýa¬h°¦8¯®B¾v·Ž¡!èþ7lCZÀ»Ãúë,Çsv‘? ËÃêQ1,.×WD}lAeˆW­.f#+a6æxö¯ÂþUªð3ð[ÖI‹@ö‚jÿdG=ïd=«Aðov´ZmœlGÝm¸s¶Ã#pì™o”Ë(Ê€Þ‹±Åå“osónq‡`/À^|pë­¤nèPz[cŸ?0!Þl|Ú:o`­äÄH³%‘•Oé[ü—3^>5ÍTó©…#5ŸÒ *ºœuò©âV(v9[ɧæ!ðÏÖsµÊrª>×÷j~)?Ò͉C +'ðà í§RTºÂâÂüXQפ†¦%ÕN-²n]´xk‹Lú²—w{ºè‘uï¢Ç{8Ö_;Q±«U³¶TãÏÕš5ž«)5¾¼¾’蟨­llñ_ÏzIß"§Œ¾å`1US ¬º‡UÕ߃nöè¡oÌ}$Ç­Ì~5f`,å—ËíÖ[Š+cS96”¶iz€ôÈ™ž¡½\9» ê~Á ®ÿSvµ½$Çê.QûRGv‡Å=õØCyë£détï#ß|tåžg7ŸM÷Ǥ©ÇZ³ñ™´&uíË­L>Wåù¾ó­±j)Nï?65yücl±5SO²7'“„ÃrZ=}êùÅÅú[ß[±ú¡<Ó”¬ú_²Ë?¶‰óŒã÷Þ]Îç9Ÿ].vì;Ç?ÎçKâØÎLÐr4t@2HZÖ’¡V+lù(ƒQ±ÂÚ®S£ýQ&­¦nêÔ¤±B·²¬íЪ-"›ªIÝÕþ¨4±’Nš*m¬Åìy^Ûª‘ïõë÷}ïÍ{öçù>ßg„Œs¥!OÐù€ªt>v²¸\aâôæ8Ý(N·ˆ›*naRãl6 ²Y³h´S9µÍƒw˜L›îF!q7ž·Ô| ¢ W;\œIûÓ%W´ƒ¥ZR(@N¼uKƒ ˆ|Þß§2 6¨«²±§ `ãW#»<Ÿðù´‚ES¹ˆþØØy08!?U~¥üž¼ë~'þ¾[þÃC6»TvDN‘ÜÏùß¹4§dóÚ`wN#×#ïFYG#[ÄÆi‚<þèøÿa@‘'ËØŽðü?Ï/ðËçÀ¤ã;%Î@b`Hµ¶ÉŸÌX[WÆÑÓ -ä¶-Œ<´ó’/±å’Æoyxç蛌ïî"ÃÃ¥Ý]Ä80ú&Ê•ž s¥›òÍØ}!;ŒÕ ê%ñ`Fʲ™¶¬'#dþ°ÎÄIT'Šzª z¡fY'1šˆ·EgZ› © «6úM Ž Œ:Ãìaá˜ç˜t,øMå°z¸MƒBŠÇÝ&*1¸"ð¥_òVp§1@´|†!ÕndížÞÞ–vAˆ„ƒÈ$d–Y>qੳ7Ž=ñôŸ¶Û8wò±_ÛÄ]<û‹ßúlîÂw_;qûȆþ³ÇÿPýàüÛŸ¼0EÇÝÛÕAî `Í`*l{5³ÏAU-yòøæ%jetÎ Q é 5g ®¿lø5ª»:BÔL—³‚¼$DßmmÁ’ìGWFê\Ua†ª0C€NPXpn+TpiJ.Ô„vqQ¾ÂZ Ä6¤õ*SºûÙe±äA&Uìz<}ëàt”ÛÕÈ^Ëêc'FÍš«r‚d0¤U‚Ãxñ4xü¥ûåš2’šb‚x.×ÄsÉBªOxúÖŠ¼EÞ%?àOw¾Žþ¾¡Ž]Ožì8$ íxF¼àº)Þv7w÷–ÇzöðN)ˆ\Î †ÀVµžn¹2RŒ‘6ÌF6hå8¾Kî%xÖ…gjU¥RQóÌ{Ø Ïœç¢‡ó|¤³¡+ä '¦ë#É©$;—$LRN.$“Ëɦäĺ·†êÅÌz™ªâÌ 4+ðX3–Š\WDN’ÑÿP¢õ‚íj3=Y_¶;c»J:)4CSv÷ê¤èíÒf]Êé™qfzä2å:äÐE94¦¬¬¹W 5Õ,]7:,‰f7½8üüîég§^ìÍ•Z*CU½uŠÈ©„š!=néëÛ÷é¡ÝÎhw!ÍUfþzô±ƒÏ¼·òÃÙˆ¿³zsO9‘ÉÅ[ÜÏíëV¥Ùê«“©u£Û¿ú—émjXf6VyXŽ3y¯Îr4K¥2Qð-"W‚P„‰„5IM„D}ˆD}Œþj)tþ{‘–š`ˆ•]qÁŸ¦2ª`޽.©Æ Î{¥n–¬EJl šÅX%4–Gcyd0ê&•9ÒI-·®#¬Ó9×ù“ÜùN¾;Úìϯµ†e'ê$‡ó›­QÿHt,1’Ü™ßkMÊû¢û’“ùãòtt61œµNE¿g½ì)úrâ¥äòg­Ÿ)¯DÞöšuU¹'ø›uËúÔÊë‡2‡r/†Î„΄;]ÛC¤]”Ì„Ëh'fB0R1՟иTÔ$øX©L\u¹)c4MBì ŒFæ ;AæÈEŸ‚|”-Ê‘‘ûÛÈÈ¿"\DÆÑÈ@ÇÀ,UbkzfëÊkÓ3ò¸~¥ÿò¬Ôs³šÎ…ZÒ-YÉ… É()aS¯±‡6ôà[k13¨€d•µe •„¡þ{ WcÀëå¨åÁj)´6Vw=»åÔŸIøíÊDvýmcÿÔùêÛÍ]üôñÑR[&#{+`}ÿû7IF×ÛÒw 䯯ýîêb™çÛ x½dåÈå:W¹<ÕHAk ÔœªF”¬ÏU¾ZÃ×j Gª¡1-ŒôiÔÂj´â¥ ‰Ì©Jë¯:•ÉvÒ°1iÌœ‘s©>Äj +ܨo¿àJåw®7œh#¿§p»,Ü;éžu³nØ@à¤T(´‚Å3þ %tþI‹P켎sš–7ï™IØŸ)ô/-¯zȘ3 囿ĖüëøOò.'Oö扆*GëÅÓ)ÃÐ7dÆFÆãͺLxuÎMÜÙG|cǸ "Ü+G B—–'y&Ö4M'sú¼Î2º ⢾¬7éæ+ß p­Öx3NÏP²ä•™•ñ@­–«0 Á;þgͤNà¥^uÕý\£H«;:ò•CG×lîI§vD‚‘ÎîÐÿù®þØ6®:~ïÎgßÛ÷Ëvî‡íœc;Ç;‰“G¥¹nM®´D›—lÙ$ ¥±¡µ`þ`£ÚD­YW•ŠhÖÎÛ”-"êÒV¢-ã2„¢ªHõSéTIù¾g§Ûþ!ò{ßw÷îÞ{¹÷yßÏçz`ÓZ~k‡!°¡´Ùî(Êœ¾xñA×Ù0É=²¶ã!Ä[&FüÔä‰ÏƱ€¼<~o…¾ xéó ´ðâ”^JVg4Òñþ#ï7’,“s‚ø¾“’ÖÓ„‰´÷K}ΑR>5Ï¢ï²èI±Ù"B¨;`Ôåît÷”ÆKÏäžqŸ ŸJŸ.Ýdnă9®/I-ÐIÔŽŠˆFu”Ÿ§ udzJ·ž4¬¤Ùn"Ù´áËáNc!†;;T5“‰>É!M¢?R…bwEáj~Ï0ô:³Õ‹ÄŠøÃÒ睊—Rï§þ•bRu&â‰S𦤉‘êhƒg8¦QhççÖ4áL9U‡±^‡v^G6Õì—w­ŽÝéÛÄ­VÜ?/…*cå"èÊù{š  +ÐÔ…mÓŠÜ”\¸U*€OË„ÄH($>.äÇå¥1’oÝnT¦‘ܸÝh¶I³ ¢W 6 òc$§Ç»rí¶¬øíJ*Žü9.G8§]l­'vì½`.þnàŽ|G¹Û嫌¡i Ž*Ü4j¨FטšøRh&:cÎX3ñÙŽŸ¥k=AÇytS<&ÓÅÌ î\fÎe+cX4+]¶Q滌2ò„2 Å 1/”Mì$ ¡\€[.)|9('Õ‘°+óV™£œQ0¯•ÓÍ„pN+»ºÖKmŽ%©0… S¨e×Vñ;z’IeFÁÓ•+l›™‘¾·Â¬2Ç©,ÝÛBUÌñ0z¸–,í.|iß×Cv²å0W<K“‹­''PÅëùeØÑ¦„¿ÕÄárž„ÅëùOê¨}›à¦8†D[ÔÙlŒÚRlibcP!Ûôá+“H,SÀ÷L•ã:m‚<ÛOŒ©Ý «ýˆ`OÅúwáÁžª:-ì)¸†J^† R-b މ=¸Œu9ØUØæ‡3Žo@j¶··o·Y“Óö`ç™Ú“Ì:iÎA›In‹-f\zš@e³@Iøÿ ¢ Š)kÿ0u! M¡º„|¨N/xYÕ03ªºW›Ñè*Tg4ƒÎnÁ@×ùö÷?­Ó€Š~€> ãm¤ Ä^ù}¥Ô![qI‰Kfœ’KNÄÁÆÉ-ÀT#ÄR¶±éÁu‚n ¦Zè„+g™”R±v'¼öAÏwî>èÆ‡¶£Íc#ùoì*?Ì_½ZÛWÒß®>0öbÍnî·Pvu®ºwÃCtàsCt0ªF€Q›>ßÄè9ž§LÕyð¤@±¡ÐÌ?^¦ …5·nа-¬ôéoq<ß‘‚÷ÄH ïoDó+Äÿ)ªŸ&wà|Û¤aãq–óÿT¢c‹×—åëd[yõ Â~ýË9î½yq°³Ð£ÑÁˆ1Ó|‡Rl5£Û†móeaX-ëƒÆ°¹“ÛÁoFõQc‡y€û7ËÿÒ|ɪuü†:Åýš?iœ4OYorgùsÂ9ýUãuó k±ãª~G¸£ß5{j<³ü¾b€Ä|_3&s͸m[3:N3¦Óͨ($zž:QÓhšžbÙ?`¨íà‡¹a@/[ð/¦Þ3?ŽèÏ̺]§5=’Ô(ËNRª $á<ç¹¼iغaôòB„çË43<-.àg}>$™¦‚l¢ü¦!êuô4. YÈ5áœpE`…ü…A,{þâ î5î"œÞüñ”ùúÛÕÇU†çìÅsÙËœÙÛÌìzgw½;7Ï·x,£Ô’&¤QLÕ´j¥¶ ¤Ö!I…eKˆÚy@– ¥/­x ¨mb§‰ƒUÕ•Œ”—@^ÑHUypK+b0Q@‘ˆþ3c—˜Õ9ÿ9gçzÎù¾ÿû T™bá}ùT›%ï-ý¸Øìp%Þ¡ØU°KËè½Ëxͳg‘x™O·+„XelѽÛ'|‘ß’>•aÏKwó$NI5ñ÷:a×¹@NÍEmÉoX «6^}¸†Œª}rWø[ßBS oÞáʹDÈë³+Ùèe0  R8—v™2È((ÈHDL;–®d!‘NƒjÐAVt*Ùp@¨Š4M×t½=¨›ÙnŠLl¨¬v¦:¸½bn_Í%¡~YÕÊÕ‘íPb´˜dù˜ªFeßý¿†£]³  %ñ`=z ÐR_ßA‹VQ„d¨¾L˜—b5‰‰ji€ Û¼×sÑÅ[7àX}3W) ²ç£„÷¤AßRø5ø$Ô’ÆF(ÿùÙ:ªS§T¤ÆNȈw¯×•ŠÝ Ю$Ïêõ{}üQߘà»V S6Ù¤ƒ½NNƒ)¨zÙ~Ê>ɾ`®~nÜSïqrÂbºãŸw­PjWlÛ|¶[”åR¡Ší§µºæjGÄóây鼯ÄÔ½µ½úaêqtˆ>À а@X€Ù¥æáëÿÃÿÖ4fÆ™qŸ0&Q˜bŠXˆ¾E¸BÙx“%ˆiÂEW|(dHØ\]•„¬ß»˜ ¨ƒs Ä¡žhc—Hvú¨x$f! ¯ý®-é¹qti¿’an¼ŸÑ]Tù¦¹ý{ó“í¨Û·Š£ãÀ'e°Tßú;zsn\L†U5,âj&»uý«[N+!UMœ¼ÿ—Э+áÐV‚hÆE…ÿ 3¾³£ã'µµHƒ‚[9À3—i…Æeª¡Ñ8a™U¿ò .!o.õ5-$’ œ6×¾»)ÞÒoµXÞÖ85V‹Oq§bŸ6éÁ1›?ÞØ½h÷„Q­g¸í‘±±Ãø°°O9 =nl{cGå£êÄØ)z&6ƒg„™ÜŒø ý:~]8/­hJ2Êc^àë%\Ju“3EgŒÃcGØã݉±ÈŽR¨Á{ŸE£äC~è ÇÖÚ¡lò Š],º¶=æîšãôzäK|F[ jòM¿Ò›b.§·Û.·@~䬵;íVGM-ä ¥¹xqZžPâ¨ÏWgª¡êBUeÕ¶ÝVãŽiê­ ˜íéêD£´*Ót­£f:5žÓõ‘V<ÓjÅaå%6.¶tUŽ:šÄ…ãmºÃ¢Á¬„c“e€.$+Û‘j4¥ÈÅAb¾ó|ålu%—Ê2’ ¯ÆqÇ“/È’7å ÙX^ u©E£ï.vlø`‰j¡ÖJè}Ê¥ÆB‡–*ךÖ?ûw7ð–Õ·&7ÀÏØëïf[š~…ÇûDHùƆ@/i[sÉéh¤¤”;íH·ñzŸÌñº?Ñ)·ïôaû]ü£ÛТ<žŸKâñéµ5Ö˜5£ÇSý>IÕ“Ô$€ï*Lqn ¬ÉÖËJªíÏ– f‰Ie…^Â+àžDF¡C¢—“½¨—Šõh ª.i)Ñ4xr·Í˼«–y’ðÿ¸È»42ï6!\NÀ ÄãS®V&E€1\’Ñ ‹© d($\  @½”‹1ï Pê^ÖM¬ BŠ¤Â¬›‡ž—κ]&ë#ׄ"09—õo–sMO€’u›¤À“Eòt(äò‹Â¸åËõ_}ô¥?|òõKN÷âÙÕ/t:—³•N“Œê:¡&¿Olé^¢s èm³Rå¾zpÿ†º{j{ŽL¯?¹ßÝžhÈi寧?ÚhlP+hÇWßúú7¾Ä4(JMù­w©Âƒ{”ü`“ÊÑsxŽcï7,†í•´^1Cé¶{¶ûãèOB,M12“g­L^ck©Z^³FQ7Õ)<–:ÁžàNÊßÉ?S8Q?ÜåÎʧó?(œ©ŸãÎɯQ¯±¯æa­P7ÚŸ TA“XV}x˜C¾R—‰¼¯7w佯”å|~d˜ËÀ uËò…½5 — çÙÇÔ!Ê 4˜êŽÄ× a$ámu§êù¶(æe¢ ú˜ÛäBOs/pãÂÜ¿é®úØ&Î;ü¾÷Þ%vìóÛg'!öÙ>ÛñÇáÄI.v>$!¥¡ƒ /t…¢ã#P¦¡¥Ÿlݺ¶L û'›ªmA¤ F0±iù‡®X…*TMª&EÛ4-Ó4eýcÂÇ~wƒM­í÷½ß½w¶ï{Ïû<ÏïL¿y»yÚLÌg °µ©›âs~Ìùçý”ÿÍéVý *áMg΋?ƒ*5>N}|µr|µ¶^Y%­M íü꯭Æët¢?ƒ>L)7ujùB¡~$Îø¸N ñ/²â†7ÊÙl&—îŒJ6ÆèZñW2)~ú¡½Ñˆã˜õ˜½Úws—Ÿè˧ÄB´©}$4 ]ãD//¤ÑM‘!­ ÿ»#ê0[X0ëÑÖÿÈ«ßLÄÒn®o÷<µä“ƒVÞ èí]= èuáóªâ0Ñzžžgçmçé*Ý8/`VxžíÌM¢]ܤ‹´Ò‚­™û*½ƒû”¾Ã5n 2Љà&ec¬Û|šÁ“Ì^†bRÖ†AŸäð4w”£¸Õ„úk@’F§3r½Â-@i‹>ãùW;²TqHíb˜w›Ú-´ãB„vB EsØjXý_èI3)ÖÚÀOs˜Kaª‰»Aõ!¢©>5A°<Ó’'YœbUöKØEè¶ D°Ê–,¢0åu ?©KÈÄúññõÕ ¾ò`½²ÊÃt¤6S4º‡9êiBƒÚíì™æ×Àæþkã`P?š‰C‘fð¾íÁÕ ,ORÐÑ:`Y8U? ¹ \õÁ–Ý:êÔÃ{ËÎ}Ì¡‡o-; ´Ç¥‡YvAÈáîIq7&b‹5Á¼èÂb—Nxdåþ=j¯v÷ébs+m ¨ö#<ñÜ6·`¯öç‰yƒ][5éþÝ`Â! =ø#s‡9„8äC%4F…Õ¥Œj)tBKC‹BKB“¡) õæ,xdLOŒúöåè@S”•QeŸìS(.ÊÉ”ÙÑành1·+Y%wºù”ËÄ£Aê¨÷¨šöíµïȤ}R˜ö’Ó‘o)TBÙÙ£SD‘å+ш3De…D’ÑD¤¬”ýùÅ\f1[^Tþ‘©”˜M,&·þÐÏ‹‰~ñ–HÄ*P­()Ë9_ÿŒ‹>Ðcâ‡ñ ›ÌY”á3þ É|¿³äç}9œ;\œ…Òñð,8“þÌà‘+|φæC—C$T¥üª“N•Ëcc|'î¼Ò«ß,¾U$E¸°lmþé* ªçð¤[GÇ÷=c kµ Ô8†RY«Ì¬VÀFÀèº>Pzï×oš)nÜQ4J‚‚R1ª…ú‰cƒkêN¥3å)SÅá!É!Ù”ÔvƒSm·Hƒá‘4 Œô`;ç| ùpÛSX0Cäm„hX*§Q8²%¸µ7³üI¼‰@ç²xN¢VººîòÅøÿëò‹/BA/t`=ä5ƒÉ4î¢.'E!*›q„„M¹œ:Ýrd3Tˆ»Ü.gˆ3¶ Ü¥ÝíNë* (ÍÚ ÒkîÊ:h$MKxêÖMíRµª]¾y O]}G{ÿÒœYXÀÙ —´÷kwñKoÏøÆïÃíͪöÉXC²¬½ŠšI£”\;õõîã»Â2sèšvázU»tãÞQ½Žw^ë]ÐnŸ_Ð>X\„ß:ó w_®ŒðigV"âh¿ÛEQpóã”e++xµ—å'³Oá… i|C*៪ÃßSpEþšç„ç„÷ùä òkžW’¯ËçäŸ'dk99*ïö’‚<èj!]ž\K>A/ì‹ðY>ò„[â²É¿Rj­bó»Þ•RI‚âJI2‚øJ)l\J­”rÆHq¥”‡@íØWJìÓJÉúFÐé•“~7ÕâOx…\Bi¦BsRdN ‡sýì\.·y.Ÿ·²`ŠŽæsˆ€µè»ŠÝÔ$ò”ÚæZ[æJ%Ü‚•œ;(cù¢×[t€ªôqÿ ˆi<ƉX¬R£Ë½©s¨ˆñ1Õa"s”{NÈ!*‡Ïšbè¬ýÅ¢2ÄŸ,‰»^Ð8ç*¿®ã¶Aö! õm «gA¯]?]ƒ4ãS3nPêRr•c1ªì.ÖïÙør}OôkØ¥HHûÝæˆÃÝÌŒÝÞ2TûåT bC|5Ø?q»¶B%ìL k‰1:ÂîØþ[íõ­}°Ã N26„?‹º$X+“äIà`7J¢—@J‘öR«/0Ù-Q5°,ØUË2" ¹$N}¹înÆ› ‚Ú06ýãúÓZ_{L†ëFƒÑ6´±‹ëžDúüa<¼k¬É̲ GGïÖ|ùð«ÔWö«‹Õ’pwôŽo.|9Ô!ïë ²6®7‘:¹sßÅp¸{O_›ÍÆ÷Ä;·Ìì|î"zðàá*`‚V@˜ÞA0çc³ÂTŒt 8® õëd?þ+¬U ú’*"Ôà¡0j2aDóŒÉ©²Ëˆ´éKÄûøYžð°ï1Ý‚·µí&Ž!}„{‘±ãÖa|}­Îµˆ¿mø4½¬¨O4_Ÿic}ªù¾ù¬ÔjµpMŽV{´Ï/ ÜÕÊ÷e#Y?Ç5š‹Ét[xfêÔÓªžë¯!×¹nW7™½à^ÞìDˬê4²dº9Á'Ì‚+<—øÏÉòá.2lèÆCÒslÖËÝ;{>Ln#Õ¿Z,V›ÅÑ¢§ë.ÚÝCö+½ÿa¿ìbÚ*Ã8þkOaÇRZ`´|¬Ha]¡P`BùƒÂ9Æ qÝ„ p n!ÄÌmq. â6"Ù&áJÃ…"Ù…wA㕉‰YââŒÑD½ðc7ºásèQ¶…4ÆhržÓß{þï÷û>ïsÚžâìâôÈ‹ÜÙ‡––(‘wë²ÒÆ‚|Ëxµºâü†óùo.ߢGìÃI'íÇ’,É)îLG†ê³%Ïùª³b˜K¨¶ÅV¹ËZü&‡?ÝÔ¯ø—ÂqJÞE>²”9œéΣNÅ©íË‘RPx{ j›ºÑuS~åoÖ÷_ÉGÛÕíñwHÛßÛÓC.êåCá*kL¬Õårù‚M¥5N˜žêh²Zm±®¤x Ë’ÚƒÇn]ö=ÜU!A§ªÁÜ‚†ÁŽž™,Ÿ?\¾Ñ«ª•¹¡a Lt{îÞ˜gîD)f#X^†¨LaTøT¢3뎀º¬y`³B¬ìoAœ´‹O†õRžø.8kÀ§#ù¤/—Ií…´Ó®‚g2aão²K gç2Þ~ð]¿ò=P …Óòj(ã—aó8”MF¨|jž†ÚO $k }¡^ækh]¦Qækƒ– Mê;¦`Wìùº¿ƒ½ÓzlÐû Èú‡dÞáãpDú¼£Wáé÷Ò 8.s¿²§}0.OûÙaâùÿ“ç"\0ÿw¹(1s1_øÞý{Lü›`Æ„f‰(š2¥ ѬjаNˆ±awÄÅ'¬Otº’’SR7¸ÓîÇ“Ydçx7‘›‚¢*.)ÝLYy°¢’ê-P[ªoØöÈ£4?Öòxk[ûö;ŸØÕ¹»kå ߟ{oV»ŸZ©òäê þ«faAÒ<<¢l’f±‰r* ±ít²‡Fç o0ãIö¤xÜž´ŒÌÅE饵ö’K[h ‘ºèæ¯ñúÝ­¯¯|ɞş¯^» ×ĵ‰/zõsZ»)«¶PÙ§ªÈù£k‹èD]G‹òj‘a¹OJ¼umÆÎ^]+R>¨k‹èI]G‹ž¯ÛÚÔÐXŸÛÞÓjnèëî_kul¥iɃõâÍvñxa†h–ô0­ H¾›~Qaö3ÌAÉ ®¹×?ÝN<ååGñÑQâ¡8ì²+ŠäÅ9¦1©Q-¢´Üwö™ÄùÚÝÇT%FµDÕŒª ó±jW†ôÓ2½ÿÄüÏŸ=éþ¢¦¨K­§¯§Ík÷Kçf;}ö橸2Õ.Yíü–Fþ]€™#Ŭ endstream endobj 1630 0 obj << /Filter /FlateDecode /Length 13363 /Length1 23388 >> stream H‰ŒV{põÿ|¿½»¼ 䅲ǒ¹„X*!„W ¹L0&è%ö.äÅ#p…ˆ ƒÊÃí’ò¨m§RP„u`d ˆ -¶¥À´(ZЊU( eZnûÝKˆÄ?œî÷v÷ûü}ß;ÐË!QúƒYY£kÞUg™[2»Éð½8® xÒhÓì%Íêø›®“,û°•ÔšÊ6eö ¦ßo˜ßZ_òÞ(>ѵ‘ÑXç¯=v}ãÃÀ‡³Mv#3bb#X?ú¿Loljn‰™lÏbT ÿõù gû¡›fúV“¿%`ÿ%µq<¬¯.ð7Õmí8s¨dò.n6o±•Ó-y`Q]`¥a—â䘞³BRøÞd% ‰€ù¾¯ZïÐóš% -4?Ÿ±õþž»û:Œ£hÃ>ì`ÂI jÑŠ5 ïàŸÐ±¨‹±팿Io‰ª¸Š àx”¤y »ñõƒðºð6˜ëh ¢‘„|,ÂAy\þͼF…´)(ÀL×pŽ1Ñ–h[lf†Hü ]b:LJA‹i(A5Ç´“c}ç)Ý–o^€ y˜Åž[±Ûp‚Ö‰:ñŒh—ÇmæF“½ðIHC!æ°Öb<‹œÇ×Eéº,•M¡›¡»f;g>a ÅMÜ¡þ4šÆÓª§ùÔBoÐ~ú=}@§ÅSÂ/¶Š.©É*öÝ®@)PJ•ÅÊéB9¡¶P0ô¾ÙßÜkþÙüÒ¼ÇÕÊ5OåŠf‹:öülÀËìqöÀ`8„ó¼#Ÿså"œO 4œ¡LÊ¢l*¥2ª¢j¦VZIki=½L›È }Íz—>¢«tnre¸Ì"ZÄŠ¡b˜È™b”( bµX/v‹ýâ0Ã)qVœçÅeqCÜ•q2ža˜L“EòqY-ÊÙ*Ÿ—»¸ž'åEEáþÅ*éJ†ò¢²]Ù£| |¡ÜµEÛÖÚ^²ýÆvÙvÙ»Ó>Ñ^jo´ÿÊÞiÿÐ!eŽzÇóŽ+"¡EìÆ^ÞŽ gúÀ%ªñÎÐüvÈx±‹JÅNú5õ—‰˜'K±ãgb‚0h†,ÿEKh É×éná€PÄ9r+;i ó&µ‰y¢E‰¥'•ו{Ô¬œV¤¸„âšåǯìdoKxÿ›hc hÂ+"'E;wáÇø^±GŠõÜ÷uHECÓ¬Þˆ¯ñoGMÆ\Þ“{´ÍÖ,^£¥òªˆÁtO\ ñ¶fÔÛXAûD‰ÕHóJšVT”iÑšŸþ>CeVa_Cõ…ÕÔ¾šy¬Yÿ-ͼnͼ^Mrª0!3CõhªÑU ©TUæeüçZ¥j|Æg„q%-LôcÂåb Õ“ØX äS=Fá’FÝã+àó‚ÑQùZ~]Tf‚QÑŒF3f$h %L¢0"<¹Aˆ~•‘¬xŒ$­À Á©­QZæõ¤¸\•™åÏÖj hSXwXùa7†=ßp„ݨs¬t°F f¼­·u:QãsÇÔjµþj¯!ý•–87û-0–^Jü†äÃä{W?(M‘º'qŽj‘º¾Z5¶”y”º¬ge%ŸÁ¶"µÐ§²ë6«Š‰Yˆ¾•JwRušÇâøæªF¤6UkÔçú¸!ɺ™­®½ÉÉyÍ‹Hö¨z¹Ws“S´JÁ`<ô™­û’òÔ¤¾’ÌŒ 3®»šÁþ±=HL¿‘º^Y «[XñÌÞr’‘6ÇÀPg«‰WãDr¬G]ôÙ9¬ÆW%±•QËm˜cDæûtg®Å·ì [ªSSõÛà¶k_}Ù—ãïáØS·a¡ÖpôËïã†ÛmŒiÍ…#ŸÉ1N Óc23–tŠl-àTùÅåC©—Í*s³¸æ.—ÕÕ5y¨aÂX^æí¦UÔ¤ìE^–»Ò>Kòö}É  K²ü¾¤×ܧñøvÀú{7ȈHëýÅ:ô4æ4ø;ÄuÝòâYZqY•Wõ辞Ú—÷¡ºå9½²Ì˜ï•)¢)2,åI¬îU¶oŒ¡¤òÏžäÚNGb˜Cj¡áôu?+£\®ÿÓ¨Ó¼nY…_ߘõ„iäºûÒãûÐ}‹Ñ%¬¤‰âò*]ê#+äjj¡îÓýæòMujúA±]l×ßýŽvš‡Ö¤üõj®²¸Âgÿ×½1bÈÃRf/(M‰ÈSr‘$D0˜¤yÈ#…y$”¶IKA•°¥BªC‚77B%tª)ŒÔÁ`F´$$¨ƒ áïwö¿ÿåra”všÌ·ßîÙݳg÷?{ÎÞÝ#=›˜!Ã[5z|ÏwDÙø=~Q6!'»¯T_ÙÄì€&´ÓŸ¼§;ú²kðö+©–rËÇ-#àéÍ«ººÔø‰JT¯¡ª¤d^W&(?¨9²x%Ã_¾<¾¾gØÍq4Â[{ý“Ö1Þ×ñªñD&.ý ¥\yvP…ÚIkR.ð¼§+Õ™™ôª(Å»µ’ÞÐ*í zWj6vRcûA– ^¤ ²7aü:£Pôó€©À  ¸ ”¿Âø…<—u„Q( ¯¤¹f¦}ëM6ëèmàÔ§ghª5vÔQ&Ï5ˆÒ ºž¶*)òô€,ü'´§¡¾ólÔßCý¦gµ è>„z äÉÐÓxv—é‡1¶Ð^®UŠèÌÒ°F!x60ãxýY.êè1Qg{Ñ?õG±þ5¾  £‰Ï gÂóÇñY¢]‚ú6Ø±Õ »uzá0 ¯šƒÚN{"ö_á쨣ƒ¼çðž`Ȧ;áØ83XsY$nÙvJ¢ð¶ž"Ú‚7~`˜vŒæcñýÎÐhóM`xItÆ9å`Zê%û Øù¦¹óУƯÐýúeˆ¾­ôä¤õþE¯kÍô’ÕƒÀ¿² ¿Ø ‹”/ÐDÌï­ôœÃo»Bzàµ{ºçÄgã%ªð¬¦8÷^öáJ:œu æ—`ý">sþî"³µzÆcÌs@7Èç*R,Ϊßõ ø÷)è* ùá”[LSB~ÛàBùYêì+ñ¬¤Zàð1Îl 0 õ§€ÝÆ/Öî ?ê©ü>ƒsè©ü¾ÁþÏßJù¬³‡låcêÎó;AÏ&`‡µ“–UÀŒiàûÂ>ËvººùN±Ï¸¬ü{½¥UjíyŸìSaæ»G4/|á[.ó½cßgÖü4œ©§Ð öYö7—ù\”ý¸|'Â|k¯6ì{Nq=Í ùz‰Ë|Où,¼–²Ôyh/êÓ”§ÿŒÒ¿Sv“v›ñ-gÙËyoZýÄ[Ká[f ]Å›žz1Ó¬¥Kê<ëéwàùF½ö°Q/L³Ê¾`’8bViËUýކ¨uú˜‘}ÿ­üv¬¢é¨7šõ¶ý¬ç;ái}ŸË€ Áû}±É;K=“(Þ"ºlñ]ðÓ`ÓOŒZJ5: õ€|’ù)-ÔWÓ£‰~(J êE¬§rÀFzˆ×ÒNÐJëÏ‹ð£Û|.Ú—\vý5š9æ‡|Jqèî-» ‚O Î ŸU~@ŒVPþj¿öÏ#”~ÒõÏÛýÔ®‹ðÏfèíí—Ѭr â»{Oùn¸ûçøÈ1Žc$Ç9üÒìåŽæ[óE îI¹ŠÃÇ('t·lòÑ×vþ÷ Ç2¬õ‘•AùÖ»4Cÿ6åY9X¯™¦Y)Ôû¾ΩÏÚÍ¡|šìæR>'ô7»yÔìK^ÏÞ§,oÞ§$•GaçOëÔju$Ohn ßCuçS:çFc:m4ÖÛ°ßëoá¼!7²è§ªh¨þ¹}Ìȳ8'êT *0^¶Ïêgá{<÷Y{Žù!½b ¡‚°>fÛo½Cç ìÑÜ¡rþZ7ó·÷–ÚžÓØÿa:gìǘ®tÞ<Ê{ÁôW{š¬æn³‹Y—'ÓÞo\ |³2@ÍYj7…Î#3ò,”óY@§5EåìCæqôåÓÇž©”åÉúóé¼§d¼Öj|ÿÞàÛGU¾.A~K¢ýKøÖlå‹3Íö»z¤›‡õ:Ü»•ö)s)øGï]1â>îzoÀG¬]xŸñ{br|wú­UA‹­h±q•›g0¾?¥ê-¸Gê#í†PÜN×-ȯ æÂ¿·ŒóžñŒ²OY[ÕzéÊ~§Ò2ýsÊÒöS*bÉxo%|eŠÊÓ«àÿ.9 ?©!<é@»}Çá£/¢½U¡¾QK¡¿i•FGÈâ8ç+èy#“’õ~ˆ#mñ¦8NÛÄ5ڢǑm¥-FNŠkÈ“íé+}7MÐ÷Ò %ÿ€æb\šö! 56!~Å–Qƒ‘KÅúº®„=LG¬Ç ôpøæøîx8Á>f|Ó Î Örļˆ}“ñfiG%Ðy™¨u8°ã²ÁÍ A½70õÈ«ÁÓ!Çû/¥]pWœ8µ²™èB~üW´ñk¤µŽèÆEà­‚×KõÀH€¾þ‰cýðrÈ ïÆË˜síÔËk@ °X…9Ÿ¢?ƒv0ƒ}ûŽwÍÿïžÏî•9n±à¸‡ Ñ9éžÙýžßÀѹËýþßÄoÐ(vÎÁÝGD.ýÚœé2Tôbó0Ĩ¡—96r&å$äÈl_WçS«¬Û: aL±ª [ÂØ&±øŒib<¡ÜÅq Ä©A†´iKéÉ#ã@΢“¡ “¦“˜?ššNÛ 4.aJœ¦‡Î²úö, ™éÝÓíÇÛßÝÞ{ï÷Þ®LS(ùš ç×®OÞ¶pD½9‚ªG˜éiô‰rRY†õ³gÙ³pæÃëÑ0<ë=‡›Lš°ŽÇù¯ÁÇŒ¢(< iW`xúð0€³?Î^ç>†'ªÎ¾ ™k†,Žñ  Çƒùñx=nDð†Ì({G$ *PÄk9çÏï|ánÜÊ­d?çw  MEbù9Ÿ£»(GmØã±Øj¼¬òëÙëƒÐú UCgú’FÊÍ[ÔN‹z‚Úg‡÷i¿Pì—/Ïb"oYaÔTP¾å;Lõ› G™þL¦ noogîBÛ5özœåÊwRBE) 9Ý®à¬P­}vM¹¿T¤pxf÷Á¾GO^]´âXÏ/vºªnsÇ£/toYõPwxi$ˆ¯¦ñ¶kÛën}ñõ—ã×ú¾¹ß÷.èxbŽùQËò3Ÿ€1p5á2hiF»cÅqÒIã°ü~X^FÚdA6›ÓÃy-nǬœ\iÌ•H‘e“Ù 98&ÃFŠMKXr×Iâ¬Å„UäNã< ±lÁçÕaOu;t«s}ÖEÑ@ĸ«G{…nõ"³è®9D!T;5T ÂîýðøW¥½˜6TNíæ[»æ«íŸ[¾ƒá¬Í¿_¯¡£o/Ê[4¥£€³êÙb ­¶ÅUEÞÔ‚²)a®6/l5'È:óZÇS+ WNYUôdñV²•ÛKör¯uÎ]âCE…6UàÄ)"ÏC–r >ØFÑ9 )¾›~5 ZÚðïbfä-•£žÿžþû96ª^3â":js‡Ýal³‡™RàÒö`=àÊ9°¢¶üË, ¢H5ºyʪcÿØW/uï_ûôkÚ@ÁíóÝ>µ66þÁ®Iúw üâüÆÚEñ`dMßþ#ï]]û›Õ{—ýç{»#' ¶Q;Øâ1!ddÁE±:AÁ¯+¯[ÞVÞWÆWZRM£t»ð’òSË)Ëyˇ ÃÞ­ˆ* &"É‚ÙB‘¢XdÑq6æâx'Çñ d9à€ÂYvÄ2 •E¶0cT¯Ô}ZO@nåAa®ØˆÚ7j-„ƒ\ú9ÎÉêÅ™7˹ه޻¤]ZÜ´-ó)îäÜYqt|/q‘Õ™Ÿ±L´²Á!á*Gïžmv?ç&%zöò j«ØÑ' T³Ô@å5ÍR÷8¸ wYI³ûÕÂ÷Ý‚ÛæræW¢2¬š9Õj·¹\>‡ÝépØÝVÜ‚tlÔ¬Ñ0ë{‹MÇ›cŠ#ßu:xêÓ,6t&;-óV˜£E:Ù9XÉr$?#sT¹ƒeâÌXfTÍŒãrÑ„ Ë¶‡mÁ`¯Õ/–_P»#$æ;]Oj'ÙèШÆ”ÌwÞ_Z^>»f¿NæmŠ-ëÿÁ®Å}uGþJ>òg>^_¿£éä'‡Æ3‡{Þý.þ•½BjØ5¿óÓu[-X`&_ž¹ªêÓß¾1þÙO~øÁj‘ì—ÿ^RdEGcÍ’(Q’¨`’^”¬ŠBE)O0©Ê« &>ˆ¯bª8)UˆÂóÅLóxŽpªrˆb’4AÔñù˜•Ržç8$)oäíØî xÕ1ä‰FTv± ŒŒbC[8Ü d.À. ›„{UëEáâÅ^£¦j¤—% ?:üœÆa+¯é·¸èçÿ~g~æô ÅkÒ¬•BúV3>1¾œÔá >Øs ¶˜ìªÿ¥»êƒ£ºªø½÷}íÛ·ûö¾÷v³›ýʾlH6YCb² Í+hB3M+N¥„°(¢iT(IP S¨t€BQ‡¡Ag¬TùÒòQ ê8Lg ÊØ)ÔNý´´ ÉÃsßn@̾ûrw÷î;çüÎï÷;Ó BEQ ]°ZJŒ»4wÎFÏÆx#‹¦J†"””+F*‹Ås´ê7ÌTª¬ ñ‘¨‰;S<‰ÇÌ”Ž\Á ×ÙjyÕ TòxIgɪ¾¤d_°â1™ /Ѩ‹õË>TŬus¹C»Í³Æ(÷1úO‡sûÚîkú1Ûu„/=Š a>…+ä¤ 0Ôx/v‚ RccŽÀj±YŒ“€_”i‰b6zJ“&gÖLyˆ0$™í £gV4.h]³îÙe?ºò’ýk\~áÈÔù/Ø¿»Ž[39»dúêCözaØ­}ms{ïPuÙö®ÞK½Ü̵Ï=4·üöf™¶ýðËßꆎ¾sM¸JAƒ¶º°}vÀ§eœQC…V£,¿ZT7;¨h>ä‘Rmæ–Sžªþ‚@!Õ} êË nØÈŠ×+®°’—Q?Ø’ù–ßׯT€úWIXÊDÕ±Ì FèWUzÚ®SÇ €8Cz²@/Ÿj€¬7ähÝkh'Q24jÔ™5|P‚œ$$Qó³ãß95ÏÞñ®}Ó>{ã<~ðïØ ŽÚ`²sã¥ý?ùŒðÛÁ͸¯Çܵ[ïhƒÛÿqξòÁ3ŒÓ;YûY>”@/[­ÁeäOø«ý{ý¼ûDÆJ´G¢E‰*\•Zœ 4¯¢„‰qŠ£š)r…+\³Šé–,-‡fóŒ< ;”lŽx¯;¢–Ãȇ@ª@" äeBÎf{î““˜Aa e€†\ƒ‡ŸXþÚìî×­^°Áþóß¶÷=Z×2õÑŽ-[íQa8X4xcË>û½÷~îŒéÉÊÖ·wì?^„j̓è÷Aô :mMK“rn*±¤Dps„(‚Kæ]^/Ëù@EÁZ‘Ç›)  ·l¦ä’N!‹C䇗¹S„À½yQêw¬ËX yr-Ô} 9mÓ6!=}lûC§éɵ‘s½·‹ûB±8Ü ÙŽÍ½æáZ¾89òóNnfrdèin[RÞe×ï²ÉN¦6³]Nä—­V^v¹έ@H<Ç{=DQÆB–¤¸KðÃÛ²›çL·›(¢ ’ÂDa¹H!`[Y’ú] ÃpÊyÑJzeBÀºýWìHpAø®`ó–€4£QÀÛ9“M#Ë6«§c"o ß÷÷« ñèH€Hr< F”G¯ª*>ªiªáô‚`(X«ºd˜p¾y@еÄNY_ €PAˆë¿.¸ô€ î5Õ¯ DSÁéÅÕ¯(*“òPÀ'8˜Kdµß•‚"`ÒSº¦)Šl£ ¼¡ –qé!ÉÂZFÔþÈ¡ÐfAVUVÛòtÆY“œÕjTiF­R•ß(Übe¥rYᔪpS˜„ÿà†‡èŒo–ÂFt X êQ%ºá… ¤ÀeNS§ûþÊ®ôãž>ší9ɲV8ö¾¹ØG ©ÓÿwÝä@Ø™iÖÎz½‘^GŽ,ß.X…»oà‡˜9ý/¨¾¾××·ôd¿@3 ‚uàa¡mê QÂIÇ­psqÍG[bò´ „Ü´ÏüéO5eG/Ûì— Co Ã#­GölåÖCGýþs\»á#s{Vï9Ù3Òh]hU­~ÊêZÂ-zU®AmW ]ê**”y¦xjËÜË”²Î+¹ Å’ê£Ô«é¥õùnó=¹%?¼M¨×—˜9¥&Œ•¥¹ÃKç’”×ãÚ{aÒ¸e…=@Iý æa§Âˆp[–,i•D¤!ü‚UŽdøÇôÆ„ã‘% #·=+á÷œªBÖs…MÓ¬…ÇLP®®9¾Ê×ñ£¬³:ï°Í‰ä·>È—9¥¤¬–MÎáÎt1n(ò#ÆÀ=%Ë5ì!šp{2”ý°¢tºÝr²€²*2òÃNùâÚß~Þ3½´&R~ð¸}e~/= 4ø—‘= _{ã-îë·š¹ÇßÿÕ†·GÖ@ŽÜ¹&N‡DQÚj…ËHJ!½Æó~baÂ,8ÖI¡™8óIqØ 9Z`D¢| Ï =ip±JŽ Tzåp…È:¬¤>㬑bgµà13«@Eg™ZE5þÃ(“ÈÌb>ÉqI`˜jËY¥ gq™àŒ`Èe¡¸„LÉÏú’,FGð[xÖqû“ŸéÙº{¯}ù•“Ýç—öüñgÙ›¯Ú;È"¼_±·ÙçÿtxÝÙº™»qåŽÕûºãàÀ»˜·Ÿe.iø„W—FÛ¬úÝü.ƒ|Á˜j,7Öé¼JÃ>ƒª41ˆöùò(Õ¨ T‡ ÃŽYða;n*ªÄ&ñ+b§øŒ¸JÅ.0VK0Á4o–ºÀ$es.é³lÛèÕœŒ‹ÿè˜IŸ¾´1˜¨aæY% “3ÌÜüFi®% ¿ÝÚ³dúKíM+ñŒ£{Ÿ®_´É^+ ?²ï{Gûò™£¯“ÏÚ™Ù‘†G9vgŽX Õ¡ÉèËß^Þ%, ?æë «  &«;Í­– q††Iì¿/ÄI‘p$^ðº«(ŠóŽß~û`oÛe9î8¸óî¸ã88àPŽƒS”#¾¢C}’A”©IŸàŦD%’DÒúÍ4`ÆÄØŽ‚0Ñ“h´cZÒéäÙjfJÍHM[c§*Kÿßí!N¦åæöÛw·¿ï÷ý™->ÎoÊNʲþ,û.â|~rvsÚV÷ß_Š&3¥¶™6/7@<¶lÂXì,Aœ-;+7/Ї‹¢IY$‰Î<(½y‚hϱÄd‰3Èò€AlùQ'§ÀˆƒFl ÿƒFb ‚r«ÜN¢-m¼ÂZ#1ñ ݵ™HÚY”T>è:‹Ã…”jLfœ\,S+­Ø—Ul±°Í}zÉs«î]«i§WÌ™úîæ#]”x}ÚWÛÝþÍíïÇ6=¿nIMÝìòú­Õó7/Ù9kþ˜{uàLû‡‘ JÁ¿hmì2<§ë:æNi]—þ½·>cÁ¤öJÊÁ:ààÇÀA+ò¢[ÑgÜ´œ8\ƤÐ SOUTU¶¤z­é©–d‘sf&[¼Vkœ‹*°Ò$™á.U–H¦Éç”T«¸Ç’^—꾤 7ÆR«ì—³ ^¯hµŽå7pÙžLÑ™ãâ x†Ÿî£fÿt=ìîÿ qqz˜½ÊÈò%ÀM1‡ØL6Q]ãtCã*}wÃX)䨢%S3R{(Áõ^ ¯†¯ì=¿æ[í^UöÒ’†Ïë#s&­Ú2ÔzËç#^š7yY£–Á½5õ͖)‘göi7qÒµÁ‘-$‡“æ=ûXtyMíÐ —ï‹Ñ§ý( 0‡r:vŒòÍù»²™0N(q1ŒYz1Ý´, t“ 爜(åäæó–"GÄŽ"Øá°`\äɳ>¯HÄ͈f‘Ĭ—Z 2²Ú 2jSØ]"æL¤¤6ÀWM|ß‘“Vg§‡J†?䲨™ }Ðþ…Øû˜¶îȘ å{·Gn€ÖµUʤHPR†(¨:’T2é\,è:YÊòÑ—¯(ÆP„PV>Ð[àSÌoxQìYXío3óÎí<Û?qÒSe+–í¼u¨ûÎ|A2/üEMç3Jæ„Þ}µ´jñË£èõÿh—ðgjá¢+®˜)©«ð—ùqco]Ó•1Ežæ™º°ðÑâšð¢lÇâYþ¢ÃuÛ®®ÿ”¢? sýÈ'” ›F¿a-ì4”Ž^ˆ"¤Þ¼2ý0ϦRéXR1´%1KÓë•âvåHÇ›-ælq:®fªxÙkZ ao˜@;å1«:%Áæd%Tí¾3Y\‚Ï.W#“bbLŽ’ j} ÀùnW‚áÕ>ЄÚ!Pák¨[yp8˜tÕ «?E)ÍàÄÝ3ã^ç©÷aüú¯¯táMËÖuÖ4UWû“ß¿øÅÕÓ¸êÌÅãS÷i_ïjmÝ.µžòj,)9Ñ›ýÈ¡ç•>årÈ"áM¬ÃFê}‰½&Áb2;²OÊlÓo¶â vrS~bà&ãI†Ò” üˆan Ÿ*ËúÍ¢¥;EA6ÌNFJ¼fª6^Säåò¹Sfå>ìíu+.ÎçòõãL³~Ýø+‡F†èӗ›¶1 ÁOa€R¿2ã€þYca9&Å4:y2L Q^9yøjÇ­¦ËO5Ó~B+È]=·ùÉ=Ï>Y¾¦þÑ£]7þô.ï`¦Ü…/lhYÔò«»O¿4¹í#êÚ«r˜uÊ@o÷#7ÍIˆ“º·…¢RMQáým©m66Õ6;Pí’øH®´-mo‹è½(= 'ÉäUpˆVpì°x›ž–›Ô®v‚{¨¬Ëi¬À 0’ŸGÓÍ®ŸÇá’£VWÉŠÜ ß¤¦y}Ótzt~èðÄÈj§Œ€zè©È¹ TÙØHå¸W,fÁ×ìÖÁâIÕYŸvëÂÖK+atð·5Ýÿ'ûüŠÚsš—Yˆ[×lÀõêî›ëŸ;gwܼ6o¾Óvð—;ð»±õåNÀk*€æþ$à`Ôp‚\&_“ï +R-,Xz\lEâƒb‡xFGEq,‹ /(ÄÏ‚‡ÅfzfýçxÁÏ,b=+*˜Z„ʲôSá[ØA–a£’b·Po`­‹§Ã<å»@cÜ`úÒê6Z™_û7±ÌWÆF§eÆŽº+|úYS¹Κý°Q=ú%G>Úƒúhß*šé­Ž¬ØQ—Í]xøï ê=´SþЈèvø!/¸ÒRAÑÃc  tÏ œ h3®÷\g‡?øà^2ë»÷U 0`ëˆa«EÕqøq®…äHvrA®ƒ;à p£œÀâÑÕš¢GüˆBGÈz$ª:thý1-h¦+*©!´ŠYêâåüPÛ¨ƒ†¢©j QÐþË~õÇFq\á7»·»³{{·»÷{}Æ>|æÎâŒL}6‰[NpùQáØ d;S‚±{X¦Ô@¤ª–ÔBIÕTM•6´Šˆ±qÒB#WÅ‚üÑ?ˆÔDQK›J‘Rª@ZݹoöÖ¤JCÕ*Ýž¾™7³{{7ßÌ{ï{ÖÈ]œÂ’Œ¬|ÆNå{$ fIF’5‹$Í6ëÇ—³›QϽÌÍQ÷)æ³Übª?‰A{ ©Ë]&ÿ¹ ™Y‰!uzi•õúr©Vâ¢\9]­¢-Ü#j7·/ékÆ4½b¸ù@s  S$­/ÛCP%YU£.ݧãD¿N\.Ý[*JüÉ¥ Ìhb…t¹@! »ty‚Œ¨­:viW=¦6×:W»«×åp½Æ a´àÈäH°•LÉ´ë Ð‚ Ë>Ÿ¬°aÍÊõ˜êõ:KiãqÀŒ¦~#TÏÎ úí¬ÄFÓ®c´+FoR²t:3õÚ^,ñ+ßýYü±ÉÎ'N{ÊßÔø½·“;± o;º÷ÁƒÙ!î§VÕ®¸üQ΃‡`ƸȞ"0x Œj_èfb\&e{Ê8Qû}%|›o³¿¥¤¥´×ßQ*6$£øö}³ä/—:$LkN-éEU5›oF@Ò¥=/}£,¶ý®|†QËŠW,„÷acÁÉ«§òËÈ‹˜ K_áæbø¶ñS·/}ðL¾õæccÇzè´Ñ_z|÷¦£}µäIMŸ¹9=žûí™oÿÁª:ö¯îÚrì'ž»–ÏÜrO g ޤ>¤ukÚaíY÷½§å³Å—ŠÿâU€L <ÎJCÍRÞ©Ý4pßGôŒg’äÀË…G}­²:Á…G\çë\½* 2žrgye  8–yy‚ /e2nkâÖ[˜¨Y›Ï]ÙºzËTý Û¸¦¬8“jÞh*éMñI)jk9òAÉò/ïJ/.zbxÞpêÚ†‘’W÷,¬;ñŒQ[Ñ=Àõ%ÂPîÀÑìØž@¤ ×w÷oÀÃS—Kï5©)Ÿtž—Î+ïûÿ’dTqßV¿:)T~Á¿$Ò¸’ HJFÝ+I•¾Ìh2~3„Î0}<û$0™3ÔG£3P"¨iP¬Ð0y›!E(ª˜TЃ­v̵Pk½ItsÙnöšs‚ Ë­”yH±Y,·„÷„›_%Ô œ`… P¤,ý úV™‰¯V¡c7céÃü;Ëú%6ó8ð™CXJ «ètë–`rÈÖ–žÕÅ–2ŽòæÅËûO•û¾§iõÚã=óó:ÆÞ=}éúSÝ /pÛ³m›ªê:Ð’ú.yƒ-jrŒ(ûS~œ~Øç#ê*%­®WŸ”ŽÈ‡ÔŸ“•qâA 8âÊRYNRÁG©€k£\’€CŠL)  (r+PrȆƒ‰¥ún¾— £ø›qN’fn¬sÓŸ½Í¤^‹ºö¨íþvüëÛŠqùU<Á’h›ÏÏÉX²þ•³[´@ÍÒu1û¼#–ïx»ïiî [ÏL×ÓŒëш;íóèFÄàâZÚXotkû¤÷ Ñ`»iу5¢ñ/‹è–jàDQ’eª(<.Hu»5§““eÅ­iÔ-‹Ä¡QIÂòNTÐõ5\èZQér²˜)»×­ h—4É•È9GYFgîDˆoL‡^ =“äè„•ùÌí­7p÷³»…<ù–ÕLöÑ©Ã:r×å{´¦¦XM@§0‘ZEÑÖ>ä‡Õ”×j3aI „,;-ûƒ5ã.e'œ(!É` Èø‹Æcq“«¹¿_Þ\]AªßÉ­ êåe‰Ü朿ÚÙIŽdßÏ~t½±;7ù+ó?â,â¤*1·{oð¿ÏCxk²Ì©€þ@Æ÷*¯8Ï|õ×®Ý÷B/0®xPìz§ü›S¡¦ŠøÇ½@{_À×Â< $}/JŸû‘óyÌ¿Pö»GôÀЏžG¼²€ ( € ( € ( €/ À±ê^ðÌ"Xë>÷âïè†ÇëóC0t×\ù‚X¼ Á~cñ—ª“5µKRKÑ®›{bÕê5Ø®X6²‰GZÛ`Ëçÿôs9à°²WÇ¥ªj¨…Fh‚MÐÛ¡vA/ ÀàÌ >EPËa 4ãÝ.ëînȰ»3ü¬Íûg_HñÌßþãºí·ðàÅ–ØÿÜ‹Ÿ¼-¢c;ëq&Ël›7´Û6óÛ¶í¶-¢}¡±¡¹iåšÄòþžÎ]•M™Î]=]÷7…d5 M°iI 9ýHK'S‰sËêAª6"™;`/Ž:ñ‰ûûÎÿó©> stream H‰ÜW TSW~Y¤lMÐi‡âŠ „xeÑBÀç°™Dk“ð O³‘÷)*$*‚VK]p¥¢¶¢‚u).Óc<:.T(n·‘qªu©¶hU@ç>(‚¶vΙsfΜyïÜóÞÿßùî¿äÁX† °Œƒx žx©°i"âÔa˜XlȧAÈáŽyè½ÃxÜl[Žù<œ‹aoF´gŽ©0û³ý¼ÅdÄ0–ÖHè²þ²m2aC§"‘FÄð ã80Ìï ¢ß6šéiøhD?Â0v§ÉjÐÁUp,† ÞôfÝ ›Ã«Aúc<°Ù ÛlσȞ;†q_ŒÕ}3OLÔ…žb¬û=€NÑ}¾[HéØÒŸÜY.ìj§èb]f³X2øßµg‡Íãap*_ÊgqYÎl·Z Ó ¤Çwƒ_‰/Û}§bzŒÂ¬˜ #0­ÑÌ Á‹ö¸^Kjç_ot.=ŸXû4Vq¸Úéùt²Ð f‹Eåõ'ܨ9ü¥üèšEeƒ5A÷çXY\Éñ±l|‹ÏIç D2;©!s,@kÏ£hBÐVûtÙ@èÃE½€[ R™†ôlöi’fhhÙFZr€†°ç“¨­VZ6†÷H‡¦¤‚$\‡'áÚ‰@¡TªÒ´ªx jŽ^ôýºG€rY8Ñ5 ‘Q²ðÙÏäÿþëúÇœÅÃ8ŽE(îål‡;-÷Œ3%aR‡ïNþ®á^o÷ 4­ymÇ#BvyèöîðoV]G2×fN©äv…é½3¾¹ËÎd;{BÌ›ùŲ­õÉãnÞ Ø–±j¶ÿZSiøÄÓê7Ežít ;]µ†ÍAEýRIp®hïµóx£OÝ,é(:»¥½®°“×¹|Tnà–СW>åO%óYNZ­oô®)iß{@¼÷dƪé®zÕ‘ Ÿ^ó.Ûø¥¼š™n–Š•÷~üËâ5^¦Ì§ùŠÆòuW¸¶µ!³t‹Þæ®Þ|4[7jù²€ð•å žd¹¾ýàÔT¿MhE²}°/½W_PÞñïHÈœ[Þ˜PVtW<õÿ¯ˆëdC`Pa¿ß†Ñ{Rá+OúoAìàññ†žÌ†‹È·Ð„ÝBÐÐQõ‹’^ˆ²0Ÿ)éZÝúm‹*+.Ö{O!/ Šõ|YSó³²ÎáÑËnžá¿SµmÃŒI·wT©û„øý†ÈÚ0·+÷­CjÝÇOåÉS‹›µ©-{%q­Â–Eû¦<ÛSÒÒVY_€Çy™N¯ÜÁÊØxèkéºèöâÍ™›Î×?¨±vÿùÄ8ã»a³ºv³Yœ_)hóÔŽUü„üüt‘-TèÆoô9J³ã? ysr]i®Ü5ôᇗ¯î®¼±°æmÔ±±nU;.,¼à³¤‘sÝ-(ƒÿmÊ'‰ŸžœpfdÆÿ¦Cƒc‚›×\ûó˜ÄïZ͉ù×àFÏ’æâÖ˜ÙÕ—‡ÈB}žß¹´ãfºÂ–&™ n›Ðò¬æ°Yl¶Wav¥eÎŽ–=¬×-U õDnÄlTк_‰ú«3e= y^J«ÙLØ ¤Î4Ölº@g'@ZžÞDRFÂN¥¢»$GÂá²HŸ—$C†GÈ£äQ“ “õÞ„,Æ÷(*((æ#E )J Vó04­I[í…ÔiƇÕn“}!PÙR S×Ò$m:™¥£I«ä‡Ë„ÐÑç‹Øé™z3„«H0AGQëÑV‹Ì zô„ÂEMd™­–,™ôe8±OŸy%Âhµw›íݾb¼ÜEN–;†ø®l'‹…ÕWœ¼9ë·|=3)R­!¹ÍÒßi6…G^=cü›¼ ½µ²“øZ#¸ÇßpÜf^vûÄçÛCàêðÌ™{¶LÊYÕp­à;ÞõïÛ*Ú&|cÓg±sm×Y'§Î²zªU |Îc¯mÔzÓŠhaèŽÿW`qÔûú9¼ãovª«êª’*ÏŦdŽrÝu“gì66Ä©6ÄÈ6v´.ïH?*Ù¼ñPpjsûÒ{œAE÷}¢·<Úš6‡gÖß[(*y¾Í׃:ÈóÅÐC·š–ä=½k½6àaÎÌGó Ëë²[Ç?é²ûw–¾w¤}œÇíL]`rËÎ謫¢§›gN°}” jäNÞ%èäïÎÎ[".bPȼzr¹6¯:ÊŠÅu”ÀÙ%^E•?©ì2®üqä KÌBçzᑜïó{žß÷û»<¿W!éE…$x8¸û8jWé£ÝóåÞ.øø¥§·ÄÉu¡‡VÝ ÿ·“xÙ¡>îvÞ/o/O…|RÏ&‹\ÝÝ%ž Åöò’Üå= ž ù4ÞÕÎ}ªx¸.tõ}«óÎXODå-q´›oç,WXIr¹X‹S{^h×p”ã,w2í¹….‹í‹aá*, !Á’¨è(mX…†‡+Þ$‚],fF`&8$õ{‚;^"Q­PbDEÇJC$AÑø*¸g¥J¢ Š‹y“¡Ñ1‘=9#ŽsÜà ŒT­®vVâýÖ©Sÿ›47m*]T[I$ÜúƒÒTiª¨À&²é¥œè‚"]¬*<t˜é\I’¾ŸI¥¾RÃa}ê¡›b<çÝ ¹ª‡ÙðÞ“ø}M‘D„+­$±˜ ÿÜ]BÏ%öA¥3át¥"¬vøÓ§ïÑvj;Ý÷%ú´Æ.Ý<îL™äqDÍ×INI{Š×ž\#r1Ò´Ìòå›Ì5UO‡ÎHhÍ9Ò?Õ:w™KþY˜!VÔÍ.d˜G‚óÔ.îV1Oš×©£Çäüy[ñ;8æQŒéE,êX}PÒäG›=³^§ošnaÕY6cºíÉ_I3“¥qc°DèÒ¸ÿÁùñošÁ"Ý7¤Pž‡½ëKÞ³ÔÉ>ŒÓþït†éû7¼LOûé!“â·†T6mÊÔ%ÿ¦]y¹¯îW­Û.¼0Ø©çÖ7¨Ö§Ê“ÖEúGN³OŠÿñÞµÕ݆úny~-M)õB˜§­êYr[è4U!ò¡ƒLà3áÕ©‚rË¢øŽêDáÈì”ëKw>}”ª*Ö/ïgœ²ùüèôÉë‡Ö_º'IoíšœáŸxûš`R¾#Ï6-ËܶûŸI‡Ø—¬ã™ÞÏåדօ6ßjöèØR¡ÂšÆ/ï£ð6e;À@¸ýö¾«ñò«ÀL³Rh3×ÃÉß¼½ß\JËÁæÁx µdxÁiá2Ábú)|Œã9pNÃMp„` `L’A"Á`/Ì䌅jp‡ûºz0 ÆÂ, "0„0ØCÚÀÜp p†LˆÁß pü™oˆaî¾ ¡þ?®h-è¢Â·à€™Ipnòöüf0€<8åP÷ˆ)%]ì‘P-4 C-K5øc•„mP‚óÂjÆö ÆB’ð{ᘢõˆºÎâ^ω„ø’ ZÆ5¯„(¡y€6£õ(vˆÆbáÎlפJ•ÐOhF_:0 +ÑD´Ï+Ó:È€­ˆ¢Šá(Ü'Ÿä"yDÒTZÇ{éxèxô«Sÿ 8 Ïq0­]« 5·ÁvØ…š%¸×PƒšXbK\‰7É!›Èò’N¤×ék6ˆé±ḬdÖκuyµ§&_sYðK‚œ‹Ñ“ˆs!,…Õ ‚O!RѺl”\d¯¥ù¬CùnÀ”¸%ä·$Œ¨H>9FjH-9KºÈS:•ZÓ™Ô“zÓ0ºšÆÒ\ZI«h½KA+g19S±ÏX;Ãα+¬•n§ä¹8nWÉýÀ=æžrx3+^ÉïUïÓ¸iü…ñ‚(lrQî#Ç#Íx0G<^èÕ ¬üaˆj5¬AIDî6"¢]°¹Ó²w jà;ŒÒ3è߸ ­ˆï´Ã èFr´ø Éhò1‘!¿sˆ3ÊôS&k T$V)âTEU×Ú>T›ÝÔµ= ìyôK=¥žÆJO¢¨~ðûjÔ¦ÒO‚šš!ú¢È_j1•.˜ü^“¼¦Pˆ‚ÛjÈ1T)‰«!Ú5>’ Ń8^Úšß©uçûj oEÖŠ-ÕŽ§Ii1®4Ô’æ@.Ĭh¹ Ñ2-ÈR ¼'”¢½}ÑPÐévÇ|5”tj´Z¤›] Ó CÅN*™aÔQ68¯¦kæ’oeˆëCÚPâP”ò‰‹Q¬cÜ -ýÞ]Ç3·uFÏ­¶:ùdÈ1ª21™<§Ò÷û¢«­nÖÆb8úrž®x² C¿…U GTŒÆMÆ¢”LbH•Í„Íji~ÃZˆiâÇTš§uh#Écq\›ò$…}î™òrc6{ ÊCj²?ª¹i»S‹%‚ÓvH\f¨ek-¾š´R¼TØôº¢SP¸š^±™œÙqá}+•%,#íEÜTT1“¨†sjbÍp$›°^1‚^tWd”æuÆ“J Ó3jñ(šš|¸´…¿¯Õ$rÑ£<Ʋ}²²×оÌS]§ÕÕl‹H¸¦˜c›)ïðÕŒg¸€v\Q‘`ù k›ˆµÔaùÝn¶Àç3  @ÏôE—dœ3`Ôé1ÊÅ™enÙ²á%f9³lYqk¸“¯à÷ `•½+¿"¥d}h¤…’’ÿb^²‡#Z¸ï@T %ã¹Ú†û×HKö¦[Ž£ë;£¼“Ëqœ“7­¸)­tfB´€ ü‰æ¦ÊH2îJSCÔ.ªÄ»—ÚX¾Ûý?:e²Ÿ3/“©•O˜e\}ýNø¿ªìz x´CLÃ]ËHaúÄiØ%6C7ZÐÖð¡ím´y°ÿ«9ú6ל͢~7âsD "‚Pˆbâûˆ>®~…8¾~æÏ(¢Œ·| vË~Ø„Ô&܃ráTŠNèn€†:/Æßf)€ä=–Ó`—*˜Oö¯(ï=Øç˜Ãkà®Cú¶Z&¡sß…¶&Ktˆ‡0Þ(Áq~)Þ'Çî¶QÙÏàÿ‚c÷cˆ.þ„Ð÷EA‡]ünœß ðq?ƒN¤!´o@Ô ?Å9é°y–#ò1¤£Ø§}u´ïÂz0×^þŸpiŽ{ÿ3Ü ?KHç±ÿvá¬'͸~‚«…>;±V Š0+Šd+Ò!Éû¡Jºaÿð2å·ÁQV;üÂæj:þG1N€ÿ5ËÕ˜a3‹%|*ÜàšeÈ^À¹«âE\óÓàÃÚ|SºGÞÀZõ˜¸ ¤{p¼&D#¢5‡Ë’°¢=‚ònq 2H.h@ßZŒÕÏöÚ¶bž&rùïÉåoR̳ëXöwC5úè¼ "«+x€çø?ǤäúœDÿ6®ÿæ~±èämÙwxwx‰‚†üLоäl lW‰·—óÂ)Á§ãˆÙ~ÝlÛÍ¶Žµ\ÝLË•ájgÞg¤f¦¢ ÉfÃz»ÜU_isù+™\j´~»ÊukºÌuñaeƒëMƒë,¢1Ž2ëW9]å«{eì‡cç„F()ÁU¶ËF†Üùè%{ž=¯1•!¿7š¥Ôo¥Ôe)õ-)5$¥¾!¥º¤ÔN)U+¥t)å‘R›%»l“y\ ç˲,Ê‚ÌÉ Û3Ù[†Î~»¨0" ¬L^áXËt|pDæðß]χ¹p¤ƒ6éጔÝGõ0•zFÓ„LÅPK¹73ú£’eªI'ûjÏ!ÙÉ ÎÅH˜Î Bx@¥"Z†äã‹Ê¢uj C¸¿Ã%ãíŽv[[qsWð9M<×êÏ.‡¾ú ÷N\9Éþ|‘—%×;ÓFP›2µ)¦M™ZG½ŽDétEŒ60&[#—WSì×BÈ8=?>â gT5m\ͼñÁFÃôª6¤†TÓSÏ1Ÿbæ€LéP4}ÊÎŒ@HKc³ÐCÒÕSkÂýh9Ü,T“ÿ1CØÕ,bÏÔs"N1s‹8Å"N±ˆ=F14é áÞhZ†Ž~|Lz™³æãRÅîXG‰r¼Í\·V·ãuç5È`Åoqžë Ìä øÌ„†™Ö±#_Îäx½Õí¼F>È™Tk ŸÔ¿t½Æ.p„Fƒ ˜ÉlvŽ;3cs5è1öáØ'ÿýácŒ‹Öj¼ Jƒ¨³ƒ<ä‹–AžçÊó$a@™\ÕäÐ{”þ½Oý=Ê#ÿ^å©ÚýOý õ[ÝÅîb6¸·á‰ÊÏ=1,ð~qæÌý µ¼Œœ&Œ-žï->ÂÙ á^°ð•ÀÙ1áo*Ç3 Yˆpüo¸n–×ÿ9?Fïkd3~:Cþ$^ã^á^‡®<*{p÷°CY`7¦ƒIµ——-œ³Ô:tù´ò‡3tçñý¢—;Az¿³Ømyùñ}þã'ÍæÓ7¸›øv¶‚{xrÅX—'Ay¡XVPø™›M\﹫| í{ê·»¨mòîØ¾s[C wsþÝ÷æçß{wž ,Ñy«áÿzŸýÊßÓ_±{iEçð,e1OS(Pr –"SÃìÜ¿Yz¤ÈÿP®MõÏ»¯·2:³ç·³ÙÅ6ù¾lEѺ|Rû÷}#ëø endstream endobj 1632 0 obj << /Filter /FlateDecode /Length 20923 /Length1 33092 >> stream H‰\V P”WþºßÿÏPÄ Œ†ÁáP4â‰( DBDÄ ×eDŽx¢A–Œ»*bÔÅ;YsiDàà•d%«ÑX–qUt-£»ÑhŒÆ#FK`Þ6“ÔV²Óõªú½×ï_wÝo@Z¢ i#G÷ˆž˜’¹(ý\V_Êžæ,8¹åC ¤ @5Ùs í:áýµ²w°åäM£qŸ­¼2óTÞÔâÜô“³¾Âåüð=ù9ÎIGÛ¬ö´3}óe¡E‰uà"óüi…E­×fÍ–y² ×ÔÙN<L/”yÍ4gQ×%Z&x6‰½}ºsZÎâ°ïöóÏæ‚¯êŸeó/7ïÌÊ)(ît|x6— ª$#PÍD;@_“q³y¸GèFs î|ýo+§×ü6~ý…b–“Jð&qSP€Q¨Â Ü£ H‚!V¯£+âЄrb8ÅÈl9lú„ì¼¢oñ 0Öc`6Î#ÿ€¨7BÐ_c°Îƒ¿Y¾X„5ú_°}ðêõeíF2ÞG= ¢ÑªÔŒÅ˘‹yXF6Š ~4a‚¡_ Žýž©E ¤â%d y¨1Hî4‘†*:§âå¦L”ÓóT§wÀ.¨Â…¡Ô—»éx胂¿b5Öáu§Áª—±6ñɉýäKÔ™êMIÅxAº ØŽ“8IA”Á=T–ù‰û&|1C– çpŸ¼ée*â}j§{ˆž¬wë#r:FîIÀÁ]‚µâÝVìA¾”˜ÔS'J£µt×(4£›¸Ï¸¯ê}­ëäc:Þ@™äæ]Â%|‡'dµ¦CÜ“/)_ã]Ó¦¡73=0T¢U„ÅX"²_N%;u¡ÞTHçÙ—[ñTžÏ•ü£*SÕê?Æ÷:^oÓ‡%æ·`…C$ é’ÕÉÚ ÉÝ|ŠZìÃqü€{øY"9™Ê©šjé1·á|Îh4ëÍ{z³n„D;‘è)Ò["˜„ËtlL}…SR3Oñ”:RšO‹i)-§5TAßÒ/¼ˆOóU¡>Q.uÜ #Ú˜l–›W-£¬Nw…{ƒNïüåÛ}„7±Ãáâk‰MÇ]Ø‹ƒ‚í1$.þâm ¤t*¢y´€VÐßè"'ódžÁŠT'åPáj‰dTgŒKæ\³Üæ«»£™7Þ†‚;SäÏÈ•[抔Kªð¹d똰ö–°ùä6–<ûP[ ¦pJ#YϤ ä¤|*¡¨’.Ñ]öãvÜ™Wðjþ€¿áïÕLõŽÚ¨v«³ÊmhÓÇŒI1ÇŠ¿•æËK™u˜u¢u«××MMÇ›®¸[¸ÛºÃÝ£Ýq¦3õýºÞ¢·êºJ×y*U w; ¿ì"áè.•“‚1AðOÁLáäR¬ÄÛ"[ŇݨÁaÜ|ƒ+øVänJfo{|z„Fñ©9¨—ð%†ÆÓDÊ¥šë‘7i­§ä¢ƒTG'è,] zº*ò =¦'ü,ûsŽáN⑜ÎÙœÃü¯ãü1ïå|T²|ž/ðuv«@ÉD¢JVR$"ÅjÚ¢öªªsª^]SO$6†ä(Øp¡Æ#ÏXh\5»Hœ&™“Í÷DY|,“-U–Ý–“–›V‹µ‹5Ùšfýغ˪¥Rª°Jªôw?aÜ6êʯJE‡¹†Þ¡S¼Ë¸Ã¾4–æ*p”)OÅ .S¡«Š¨£Ôñ[x•ÄЗ7sB<ŸJ—*î-<Ì0Ïmi+À‹(_úÍiáOŠØ,Á„êz´ÆÛz jÉ&•£×K-”R ÕI åñLþÁhT~ÂÐkê¢ðæ†Ô~ª°œÄxî&lŒ÷€þ’Ï+(&;wÇ8¬WK$ÓÁhcª)=œ¨]ØÎ\Æ5ú+~”¾7ÎH"W¥ïG ˆnãSÁv‚ÏrÕÚB#C ò~CoFŽšM—òC£¹?S‘ôÀè¥ä5”<-ÄXºM^ØAü„‚±†JÅûët›¯£Is“ZÁùtœŽQw£aª'Ü|& šÜ5mäÅ1RGáÕ Þ®ri#Κ‡Ôe#UíA§nTvN TÕOßA¨å‰jé>§ã‘ÀZ¯2|š~’èÌÄE}DENcDCmÃi¶Ñ*5ÍÌÔÜ%æBŽE®yË:Å/â´¼EUˆ Ÿ¸ƒÄ=HVH¤lÆÊ†…N|¡ˆVHu„ˆ'Ò9ªGÛÄÖ”·iˆ¼O¹Rºfªš-}fŽÛçIo÷çlygò),¯„áy6Xþ=¤á yM+E{Îü(nhFÜØÁƒèß/æù>½£{õìÑ=*²[D×.áa¡!ŽÎÁö ç:vìо- mÿg[ûµòmÙÂÇû/«Å4"ó쮰,—æHNŽjž;œ²àüÝB–Ë.KÃÿhã²gyÌì´ŒËÜÿ³ŒûÕ2î–äg„AQ‘öD‡Ýu*ÁaßGãFeŠþV‚c¬ÝuÇ£§zô•½¥èÁÁrÀžØ.?Áî¢,{¢køœü¥‰Y ò¹jïxG|ŽwT$ª½}DõÍesT“-–< ÛT3¼Z (WGB¢«½#¡K…&:'¹ÒFe&&t 颸lÇDÃ\­ºyLï¹Æe‰wY=ר_möåöêȺ¥Ëöùý—öªŽªºÂç½ûÞîŠBùOøÙ¸&TBÒÊò“ˆŠ@wÓH7!P$hPZZ0-R˜åÁ‚€ƒm'ÑÎ&2²ÁHm™Á´¥4@ bcn¿s÷½elÅÎ4“oϽçÜŸsïýî9÷Qi 5®ÌSVRì ‰?ÏÑ#óN õ]z¡ßí*ÿÚDߪXk¢æô{ÂÍÕ`p•;´{º/֚Ŀ~?Æ@_=97ÌÅÔkyû¥ÃvŸ—YÔOkóÝ¡{<<ó‚ó8„`ˆf,IªMHðÖÉ?SBŽ;˜ïó$…Æ%zü%“Ôô¢àŒ%o÷÷ºûw´¤ «‰ïÙÍšnÝ­B\×ØÂœ¨M•Ts.å͈n§Æy¦€!÷l7<ñy°,þ™“EÁÙYh†?¿†^¡2á{&‚ñÙ¬çþ!39ÞãÞ »§õï5%–Æ‘ƒ¸Èäˆò v»JM ʼpNÄAÂÇo«úˆ´aφõËž…ñnl=êC7v:ö<)‰OuMØK¥¨„*§û"u7•&Ö’7=ÕÒli°-½ ØRi[¢ÝÐw/ñW@ï+%úß=¾OÏœyÙ!­Ï1ωØófzò¦ùÜ9Á€µ·yùj{VÔf•B='úD¢n•ôD¡¬`bq´1W|q!#ÿÅä²°Ó**æÎ Å&G~ý]’’î²SX^å^JÜîf¹ÊNíX°C½ƒ{qA‡=/¿(ìÒÁ–‹° æzܹÁ@°$,+K=îxO°o¼PpaNÀ>Ѱܿ&1”»ÖEÌÓ²ÁV&Ôx´ÕÓk¼Úê™E¾ºx¼lWçûjuMŸ˜à¯¹6_›È«´zTË57×(OÓku—2%Öyñ ¥¬†R¨úì°FJç²uÍë]¼Òá/M=ðµ—ÔžC¹ÊÛ̶v×M|K9cßâMÇhm—tUô²(ÖR ¢BGmtŒ¦Rí­+lkõ*™dvŸ9—êu’— ‰~9úhù.Ú/–n`à¦?>DŸ¥Àýã%à(KèÅTbœ—;“f!Í&yåSÀq³‰Ö£þ[Ìß ÖÉýf¡šÎˆ2S(Ë yE¯Òæ¡ßp`¤XÇ:éÕG·ï€ýê õÝÐ÷ByÆ÷p;` Ú ‚LÃØC1n+ìù¬GÛaX~‡bØšD&­Ó3©UdÊïùÔËZ÷+¼n^³½&åħ;€qylo,"þÝÆmß¾gáÓ!Ÿ2°–6½™Þ2ÒiAíû½h Ãyç^¥mâŒ2êï(·ÀÇÉæ^:cP„þ׌ò”¸N^ØR/Ñfè'ëàØªÕDÉô]¬7 ó™ÌìÛFÅ…2µo:ä ã¯ò}”¹žì¨u±öi'ïs¥¡ÿHÌu~´‹´ ðCøV lb0:ö<€sß§¶WcœàÞ€o`]Ë"çÁáMÐG»A.¢ç­yNÅÈS̽XXçc㌠µ÷UxQVQ#p¾¤eè÷d:ô@ÎÑ>“ù ^\pS¾ÅÜßÿý(ö]­üfŽEî¶TŸK¿*€D¯Zø)Ú¨ûœe?­±[™[Ì[ZÜ8¢WãÏëd^YRݽs4Dù€µ3·¢÷޹¯äEÜi–[i s–ÇŒÊ&Æð}ÄÙ¦D¥åßOijJ^¤B‹ëcliíÅá¨\'ßm™£/í22Áý0îÀê#®!Å>ISù[ée}%õr^¢tœå4Œµ½“ÜÆp¶hó1^ö³Ñh¦íÛŒý>£E3ÍjyÑhÕÌj}9—ï”a·eɈµ}UýÿýC³ßÕòof‹”F mÆZÉyI¸m }-P u¥jÛ\åZØY@ñàÍu ÂðR¶éçhœÑ[Åïdè „ý×(Ïx…i ZWQ ¥8ªi(ÀÅ\ú‡´‚ÁãC.Œò(µl[ÞÁ%KÚ|í$rÌç¸kKu÷W-éëPϦoqnàøÌùc4#ÂWùZ”—›‘C>ºÍÏŽ<•·bøù"ÆÌèÌËyŽ%çŽïœ[0ÿ,Ì¿ c½ÎëWñ1Žc$Ç9Üù‡íöe´•vñaŸŠÃÍTdßk€ïù'°=dÅÄaÚ«âa=î($¿E«x4™f™'È­r•SZùKËpŸì\ªòh‹ÜÍ£åµH<“GT¼9(ëø~ª¼‰üiîÖzšÇ(QÅ•Eôuù~JÙ˜«@¼‰˜Û&C—!Æ"öB/.S‘²¦Áb1úr çDñ$%«üxZVˆq4Nõ])½Æ§ÈÛo WXã©6æVpoG€ªXPÄ¡nv<æ³w–Ëw³ä!G5šb=¥ô¬¥YíAX6ª}à¾}eï…3_n7e;Úü^û”Ë:µأؽP¹™ßÓQA[Õ~pŸô±Ë'/0Ìyô¬ã3̃¹Ì±È%d½9AnR±Õ·ëŒÜGc™÷Χ¥ƒåq;‹zJËäëf¢Üƒ½{ÀÒá¸Ïo~oðÂü5ç~V}NâÖ…¼ cxYNsÅ`u7÷à-–/¨·B }]²J,Ãû&ò>á7Bº/ò ³–†òS>`¾û8È¥…ˆ%ãkä¯ ¾ ÎÀ~Oæ9Vý…Ãh'"m4ö|ýŸÔŠr1ÊßÓëÅõzÅï@ñlÏË#ú&¹\Fî5T.VÈfñ MOa¼tDü\^ëå±½A‡ÄïäJ#‹Þ3îÅXç¨QûíÐÿA;Q<æ¯Æ¯¤ ¿Â ðýb¡|µq§Ï¥z2ÅYþuð—}µý´}´ý[\fùÇëæqU?´1&ÓT"ù' 9"Û§ãLŠ8®«˜•ƒØãB,zœÆÀž@ôù5`/Ê›Ðö&påç€ Ê«¯O¡Ýu 3ŒúwŒzΊ3hŸ Ýý>?…ú ”³Pnúµ} ù40å[ôm¦… ;ú ä¹2,Ý´ß œAùUÈ™]ÛÛ(wµä~` °®Þ¯Þ%ÿù…ùène§<”Ñ9§|%™sW²C²Ïÿˤ•[ŠïÖ>Øëˆñç?å¼ü©ÇVŽoW9¶q<åx•ÿf½êƒ›8®øî­¤“?˲-É6Öž%ÝØÖ° “±L‚b ˜t,¾L[ÂGI m¦)f¦”ɤŸi MšÎ0ˆFç“`¦Îô†NÿëL¦0)¥igi›2Nƒ«¾]¹¡ÍtÚz§÷~»û~ï½Ý½Õîì©|_cç |€–°x‹í¥l?c{)ÛÏì/òó~‰ýì'Qã?ûum‚~6ŸLjF0ÜÊÑZºL›á†U›LÔYt$r„eš…Ãg dVÈ¡%ˆyÆò4r¯‚Õ×·Pèè,ò-+´[‰rxż"™AKK^ù¥­Ú‰ hÀö þ“”\$G­.Z•ð’eåÍ¥¨QÍ¡´è•¿Pü»RVè•]mºö]åœrYù…b³+`Õ:µú®e]]ħx!àôR¥S±]!GÙ'2\´Š²ÎÓ/S¡‚¶ë0ª?å)ö$»RŠ9QuäBà<ðËηAâwŒòó4 ‚álHk™Î!À&%cùeˆöûKþ°®ùa2ØÂÊ\|rHÓÔåz¢¼ø>É øô+Άÿ.]º žùø€ægØÖ¥¹Y¤VWaQòøªncÕ'ÖFÂDrhÖ}Fe“PÛ5- êÎ(W!y™Úج¸ ©0ɰ©0°V£Ž6GÜAÎ9ášpS°!9rÜ$¶guŠJÚHœ ‘Qb¯J¬îÁÃ}äAm ã ÏòZÖFC !"Àš++ÅÙ*æ–ÑOYØÿ‹XÂ=¸M¸!ŠÑèXÀ•a9‘× [Œ»Úi$*„CBE‘„{¹ŽqÝh4D¥SQ饨´'*¥£Ò¦¨ôxTZ•–F¥„KX‰d$ Lã‡\ÿ”ëõ\/7déYº*Kߥçeé ²ôYY•¥~YJHxîDêåºë&¦ñütÕ`*»†çÑ ’ÈLm¢B¥FiA¨µÔ8€ÓòÏÒD½à€WB V;HĶ€QkÇ(Âvü1 âϾe©-´€R‚,‹™¨Ãg‘ʼð‘+€o¢,¯¿"__ÀXÁgÀíû eø{ðI Γ´ÔV0?cEž£‰j¼r²æ=(ÄiIX" ã nAËš^ÁÍÈ/°*šVŸ§óà¯XôozÁ‰-úQ¨ d-úžZÀPûØ^³èÔŒ úÛÈúnäeú+µ à‹ô—ê zC)Ø€x)‰o©<Èy?4ÿtd;ý¶zš¾ZŠ}"ÄI/Âdfz †4¼C@˜ÁçèöR¨mAÞƒ§îòÚ0ô`HçëT¸†®‰ì¦j–®ŽÜ «‚Ûi…ö‹ô±Ð ò\­AîÞâ‡ÁAO–³tI$KŸŠ]Á?G">6ZÅŒø%q¯¸KL‰†Ø)vˆ+Ä€Ø,Ö:ÝN—s‘³ÒYît:N›^fµ…âm^«0ªu¸8lLÛxÙ%0 Š)v ðâgÖ”î3cáTA,n4;Ã)³lý–‘)Œ¿žÆ)óúçQês²ù`8XÀå6›ö`6Ý)”ÚÔç²)|µ€Ñ¦‘.2ã¦{õœYØ8~²‘aúøÉtyÆ}q÷ªêÇúÿƒÚ± Ã._øß/_“ù­Ôðˆy®)mj¬PlJ§Ì5ÃòÖ‘áˆp(Ù?#f™Á‘äFÖŽúÓŸÐ`A,êÃ%Zù Vw†Ó¶—h¼¦0`´³ˆrÅg –ãMei²ŠRα@YÎÉÚ”8 çÜýŽÝ…îrÎ]»‹§órJ(”HˆQ¦! L…ܼá‘9X2)™póþGf½d>W2Ÿsøÿt=Ý÷¿ɽÃ}8µ~dʉúÒ«·–Ðã:°Š¯ƒê ½“—ñbòkTN›åÁ>³"؇âq_ØÕƒÛ¶9*M´‰ ŒÞÝì{¡ñ² Á”3z%4K ¦‰ f‚åÌL‹ ¹jÁä{¡»’œ]0¹ ¹’À:n†u¹/i¶ìö§‘/¹·~ 0×ÄÄÄØØø»ÀAN™½6L©jÒ¬ßÑŸ'}{ûÇÿËøQÊl§8sŤi€ÓØX˜û…Ã¥ÄfÅO_ã¥6NEá±OÚ1‹;Æ¢„1Li¡ø›¼1?u/„uŸÖgà«îè”[gä4gÞ«a¬•ýÃÙÜp^Š(>-à9‡Xv5Èn›#¨\´ÍaTïtØçàͯ͗½ñ<—=ó=ë\ö Î÷ 8”]AEÚ›«›«P°™ ‡2¹þа£‘l»›I²øìByTü3íËQÇ/”ÕW~ñ¯¾0D„Ã{>ÒÓX5æ÷¾@ÉÇ<ǽ'åoz^ñž–T÷¦çuoÖŸ“g„é:Ë3í}ÛMÕ|„ì‹ x·ÑP.Õg'%,Õ+ì$¼€Ü"÷I‘ØIƒz7abÝ}°mðtzëõ½ø½H;Þ†YÏÑ!–zsÇ:¼‡ uµ]‹uÔ¸«£ªð³ÉܱƒÛw÷ ËìþÕeÜÄuÆñ÷½·÷®¤µ´’,Ë–lÙá#ÈGN,¡¥@  á…”À9OC \Ž' Žp˜„w ‰±kÇ–$@K˜t¦éL;mÉÄZê¡M )‰~+“¤µ¬}»Oš½ßûÿÿ·‡nÞðÜðqÓãDVNnœÎ×~úŇé¹{*üŸ^¿úX_œY>#}åóô>©]®Z@]¶y®EˆS‘B6¹÷Š^x’. «é*öž…G× 0lœd“;àáVIa¤Š‚H¼ÐŒoÅ^{!…­Û€)¬Ûl×0°ÅñtA?ñ2K\ÎÎ&¼$jN³0щ—ª­¹6°u°¢¸ªƒçÀŸÒEÃð9RÁ‚Dª#úYˆÜNôVß2ÅQS­÷÷5YK"kõs‘,»sýV_äk¸Eô>ÐÏM| ’•!ª*3¯Ax¨(/ÌŠE!65Ýã‹ÎRR)ëdïg xÝIYaÀ[eòµ÷þdh¨H …¨j÷—4°ÐXÕ1(?¬ÌBVyÈê,²Ê!mñÀéyu¿ôªòs©E;#uiK»•›ìïÜ ×MƒSµœ÷‘ù4<wæ0Ã͹xÜÄAÌ.0ƒsq vP×äïq_èԴ3ÔÀbúŠø‰€mI¥ïÚ½¹]pn¨eBoŸ~»yè©êšT/rþ—ôýƒè)Ð/¼#ÐQSžŠË6¦r¹,›ãHbÚCe$‰@ ‚ úDeeÔÔ™)3 «¬ŠÒ_§”{kÂúùÛfäGÏ­Øp2·lùt'L™¼È‡à@æÚMMú†ï¬{j\ýο¤ÿ::füh¬¤ÃÈ¥„\ê$Žûgãc²|5‰â%Å« ×o/Þ[ü¦ò¶ûDñizZlS:ÝgŠ­³ÈÎsÔ;(Oe›6˜ ÌÅ Š÷ßrŠœÃá Ž.¶oßß ` v1T6vÙµö…bûŒ—V>böo³íñ,(Í‚¬3ð)# ÊOe6Ôh-Í…Ün– ¥ä<›ILëIô÷#ÊD²¯ßô‹þÞš¾>{¬´¯7a²J&!™ˆ@Åwºy€K]æ+³È4–è0ÃO£ÃÌ/Bìˆ'ç~oùÔPyóœÕ»^8V»è¥{[ÖŒDC^¯¾vLhzýÄãôjNhñø…lUW5l«›y|Täprí½†úÃùÃ$~ŒñÉêÙ¯&ÐâÈô*?ž(Ø?XUX£‚JZ”TrUêJ¥‰o~ÃþÄY•µyJ½ÂMQ`¾¼éᆧ\À1^' Q4a‰^”˜*X4ª „ç¯ *®CUdù®¦:4YÒTIVTÍ"rŒ‚j³Ê§á5ü!mnc’ÄëÁ¸¢„ aÞÂNÓcø1¥´•ÈŠÒwÛU™™ç;X¸MÆ[ËrÒ—(´i‹¦ª§Ù`"ãýÔ¸*Xê.‚U9ß 7þ¯äû#Ï\w)î…žêÍDwä™áD$s¦›ŸáðO° "¦5Dô>’…ßÇ츚©†&©$£O4•¸M»°áC$²"™LàÞDÅ|–?(P ìj:u¤àè—¥]CXé®T'ìäǽùÙô+P÷"«K§SÏ£ÆÇâ~ü÷#HÞ/‚ö‡ï€É+«ó&ñ“…Iâþiái1É%…•âFn£°YÜÉíqÍB×™çZÇäsûF‹G„[p»˜ß´@rg‚NÆqwƒÄ ’ Çç·s,´R†VÊeãÍ/­»'ßß"uSóê|&=ôÛHaBŸžHÀ>à¦Mšë7©d¦b1sÚ4Ç$I`Ò°©w!‹ÿ#eœz å"ªÃ%é…ãŽLߺ`÷V­ž7"\^X12ìuæ${æíßÈó˜w\ýï¶~öÚÐê¡þ’‚hE@•?;µöä÷­¨Š ÷¯såèäõ«6Éî¶S·©ÇñFÌ4bAg%‹:c9ùžñmT×{väîR_ñìõe',‡]-þS¬UlsuûÎ9]R¶átg³ÑÜ´,l38§áôryŒ¡öµæåi€YÛNxïÍ’Ó¸Z*×ÈÔ&çÊT6ýU¾ Þ£ÅÖÏ#ù˜¼Õß°ÃðíO$’ñ¥²T†X4Jô È+™@\hNˆ@2™l'U•0ÇöŒA\yKºç§u£ŸkMÿöÝ#Çzàñµi¶£nÌÊVMίák‹ÂéûJ:ößLÿâæK°ü£Ã©ÃéË—¯‰^½Þ0ô:r+ËTýÑNÂÝ?Ûúè¤r,èÌÈ™cþ#™ë¸Obt8º§Âs\ˆkŒ:£S(Q2ëæS=èŒ]˜º2Ô¶ç* xT®îÆ ÏÖœ‚\ ´ËT£ö.ý‰j´Ä–µe*«×ŽúùVU!“Èt'A (ˆù°6§¤IôõtOãœø`~|ðnOˆ;T:;Â'°vþ†j0P¹eä|ÞA),ÔcbÖb­Ñhôp~¸%V4Öòƒ¢)0–óõkÊ6A£{SAã-Cªû,{}û wy£ì¸Þâk.x;t¢ì$tkÝ–.ýŒïÆÐ¼[ÕÚ2CÄÇÎGî–@ ±é6jëÂmѸ:  ÏC%-¬ ¾$Ù8g©qÎv®w^qrNï0ô¢o›²Ôí©Ûô‘õ j͵cë»ö²ªp €2ùP9Ø€.Q21§hëìiÿio¾tìú´šö¼Ôþòꆕ‰iKs†äì~½iéŠý3èWµí3šÿýáæäç-Ù>¦ñì[Ë–žÒC?[2¿~ù´Q±)½ÞhZÒxhÙ”N¬°È´/Ã4DÞï$$:ÁˆecqqÁQùõ¢‡‰~·Ûåg#øqüüÜgÝ«s·dÿ—ï*nâ:Ãûv%Ë+ËZí®di'Ù«Ý•l¶ed%ÆZH§Ó H€ª™„3¥ðpB;¸€“4MKC¥ ¤Ô¤€÷5!t¦M‡ÒL'™IÛ)MH&¤¤S·L°èÿV&±Ë´>öí{ûvWú¿ïûÿïß í íPž×^v¾\·ßÚ¯îÑN:Ëa±l5!9„k¢NŽoÇÑh”ŸpN¢0K êåýË„Ë-È1EÝj¼ìA`[yˆL_»}$„CDZ•ª±ü¿#L ’J;._S (e‡’¦À™TÕUUÚ¸»ÏØüöÌñ÷¶lÛò¿ÜµïTåÌÁGÑð³K'¯>¿l¦i…Z¦½óý°pñ©höÝoTVVÞÔLÏAá¿>¶¦rä½5ë@eÌ­ßS”ã8¨¬‰JRy´ÃZí3F ÉlÑ(f¿—ûzûºöå…ïf·ºwÆweæ~µyvÐQvŸ2ÎfÅÙÉ×´–O¥’¢ìÇ"R(Œ’©TXVü²¬°z&-¶¤Q>­ARLg´ç4ZÓDD‹µZ>™’;ãŠìcÙXª š¬Á"„ïšHŠ᪱x”ísƒ¾Œ(X.$O§ÞSŽ1“,¯ [’’; Ÿ“/ÉŒ ›Ê|GVFò1´âH'+åN÷ ´n×R‚@¢”€žî8%Ã#U¾Hî4ƒd쌇ìù‘Ì-¾¨öw=W†¯d‰DÏC½H¤ª’§AY&E„ ‹°RþÈgÿ’¤à´yh´ wùººˆJ¦ˆC»º ÚÕC9É8vëZgçèa°Ø ‹e=kñNXE%øœ–'« mZS!ÿöÇ)¡|S[Ã(ÛÕêsOoSC‘x44ê4ãEW?ûÐÀÙu+—ütÅ—_­põ÷«q>ÿG$ßßš€/½ñ­~½³ò“oŒÿñß·îiL;cÆŒþ«N§Ò/Î[xlQˆ7èz^5û™Ž%-Fbø"]î_¼Âóé<ï©—Ö=Í@®¾õ&t¼°(¬=–tX¢Ÿ”¶J?—˜Íê¦Ø ê¶Ô^eoꤣ,”Õ£)÷buµº‰bœœŸ›*1í–: $M tË âÀ¥r>åJz½ÕbÖçsùü™ N×L¡é‡¸Fy"üXÆŠ#‰’F')Ÿ/¬~]7òé$ör\ IÓ¸V¯fÀeE…bÆ…\ê€bC9?Š'ç”-é-)REd5·+u#E§ä½‚¶ ¶ûN0ˆ2˜I‡NG:ÙWçæt`I™Û„Óƒz•pw!\¢×&œ^%œNˆ„ÓGGFB8Ý &ÜÐÕ¡«$O$z†n&W2¥Ä•*éHÚ ¾¨v»øŒ­dw;ÿDcûJõÔånþ¬XÁ« ÏP¥bÚI«ÃDm—2všn¯.ŽeV4ßdo‹™13JoÛ±¾ÿñ¤ñL\ˆŽä;E‰¿wÍùKFß§ï×߯ÄÅø›ÚÑð0g.Y›}ÅÉ ¿ÿ•åw2‘“*Å šì÷>½¿²Ù =‚Ú¼‘i›Ÿ3Fåx:Ò¡§CaÔE`Ô`TM)4Žïn%Áß(Ý•szÞmæ^ó´£Ì5]Èë¥à |©¯'|iÀAÜ[’É<DZÛ| p~pÈëØ 8.ŒÃ~ŒÃ™´A§ë½Þ€A7jq6ÆÀÊe¹èß¹þâ¢]±-”™5-ó‹ærÓiÊ­Ô8ˆ0¤!ÀáÎ`¦#L˜eáÍYpÿ+ÞE„* p~<?­:ÀþøŽ¤ÓÛÐ÷~}×ÿ‚ž…óÈoä¿ý:¤ ªGxk Òæm¤m ´ûКoÍgãÜ—–^ݘ_ê„帨7°Ü>ÃãP˜uS ñgœŽákÓÖV„®Øø{*‹Ó¸ËpyÜÜÇ´Îï” Á¨ tÇ'öøÜàì¾wë²ó·Î¥Ô8ê¼5C´ü½¾à/´Nm+,ЬdWÖ¯mYxÂóBäUfOÞq¿ç•&+² a9ÛF× <ÖšüÏiMŠ,g ŽŽ@÷uŒ¡-«½}˸ ã]`°Ð-L$íIî­Y âŠFÚÈÔð~„X´¥BTã"iÚÅZ®Ó`•!Ф· ›œ¯-4ÙW^¬üúÂÎ×~Ó6gîü€Üò5µŽÎ¹{î“xsÁS¿(½Uù×úçÿ¼aðÂVe¤¨ê\Z™5]d[åO×*ïž©\"¨4%¡‹8CZ³²¡2pwì%Än<€Æÿ±ø@V &‰’ÎA™ŸJ £FWh ͇ʼnÝT„k¤g·‹ƒ Ó׈h–Á4+ !$bIPÉy·ó!I ³n?˺ž¦Q-‰»Y_è-R(ÁM‹Pª‰›Ì°ëÙçX'Û*° ÕC‰2mï`-3–#çV0ÞÑÇžc/±—Ùa'Оµ@Ú,QO„eƒlÄΣâ¨< ÙÊ–Q‘`-¡®ÈZ~êáôí'³bY+,سÁF‘Œ¶àØÁÙë\ØÅ Õ›Ñ"ÛÇIÕ‹uÂí±Û£ö¼ÏbA¥¬÷ÛWú«JûSÕíçjí":õþ·£Y"ÉRo"aÜ)@—Ihc˳}R7ü¦w¦’ 4E¯‡åŽí©³"©Œña£”7l‘…3k™¶E9Y qþiëo^ìHQ°?MQ®€}+­J4Bä[wAôf£¹aZÐj;ðdå>ü ú^Lnzÿ»cê¯0½oÂG0cb”Ò||7•…C˜œ¬¡ï™ù s'ÛÛÜêA*j¤ê@ᓿ_aÓ‘Å­"6k™VÚF—oøü]¸@Z¢)[IŠõhk v2¬3¶{4“p³àæ±`DH–FÈÎÒˆÆ@@÷ˆ§„/U¿ª*©d2 û#‘° Šªi«µ­ó¶Ë5¸‰ëŠã÷îêýòJ²wåµdiWHZkeÉÖÃB à¥‚ÂC¤ ¦8@ÆàNž1‰!˜0!-…‚™Ò’!`üÀ<2ió˜é0Ó’áK&_L) uÛ L›KôÜ•LBÓÑhï½»;;sÏ9÷üŠB”ÇiÞËÇ/«½ ´ä“Ù©´7í·I•þ\ž¤º®ž¤®Ï—§xUßmö¤ïâOZ^¡ö¡œ¡Á?UÌ^…±'½ŠÅšô–>à-}ŒŠ¾ä})Îs^Ž÷ÆMÙµŠ¡Œ™¼Z%£·T,P§ð@­€I.Q"Ëâ•üÆËg&êRû=ÜpïJwþOeýðºä±Þ«PYævAî="\¹Ê%ö-‡à^uãUG ª2'6ĉýôc¥ ·Ò8 ¥©½;h'ž½Þ)¤}Ùªà3.cþcSÕÉ[»+u}ãmh7¦š«VE|~²­&휇—5M½Þ:·cìäl9Tî XfɯhÇÃsšyc×!Ðø„Íô}Ñ¥ D=úø“o¡‚Ý`[“J¥Žb©§…žÀAáXà”þm߀¾_0éL8LR÷<ÐÁU#LfhKÛ¿¡~' X‡…«3+2»XÆLñH&“G’̺âÜd7C—“Ìæj–ƒÇ™ o0Š ¯×Ž(‡Ý`òøÙ‰cÿ0Ý…4˜ë K7Ì„8ÊyÁ±“Å,é_5F–ckTõù{ꯊ?[ìE,©èE0‚ö“{ýŽ ;Žß1@ËÝ’Ý n£ˆÄg€eü xÂoØ âô¶¬šøœŒ6æ°@ ¤NãCóXÒ¨`Hu ã>A¡ØÏþ¼«0vxÅ/Ö~bÊß6¯]P7"eV~²qú‹}«·¿Ô´R;§ÿ•5¿ß"öï ûº@ ù­ÙóGµù÷zõ#lÄÇ?=x½³ðŸÂ¶Þ¶.Ï^vàðÒ÷Wlþõïu³¥±e)s°[L˜œU¸‰Çü‰/ð Œ7ßÞüuAº¯±êæÀȧû¿Xºþ5üîà°xÙÝÔ< yŒ)»wG^ŽQ+¬+l+ÊÖZ;leÌk—­«l³³vg´×zÜÖ[ÆH(lMÖ.¬]#´Õn7l³uF÷^ ¿Z{ÌrÔv”9”x½g9k;[v†9=»ˆ¯Z.Û>`ú¢±Ñj6ÚjžoY`]V»0¦Ó•så³,3m³˜]Q]Y­5ªÑKȸb’Ú*ü„ šº„£¡ Ü´ëÉ$22²ÃtÆWWWGÕÁ«ýþÑ׉ûQ¿W(4~g† }•UI2*Ub(…-ðOÉgJ4å¸9YÉþ7ÑT8Ax)\ ã”Å çv”82×r NêyTur×¹Q¨ ÒëGÿÊŒ’&DItâÚˆ7rÎD)½E³ ¦’*1’ß÷é]$¯!r°- ¬‹zÛQöõîoìÚ*wôÆÛãÞg&élvOØl5'ºÛ_Y€åç^¼¶%ÛÞâ' ^ü¯æº½gÞz¡iâ‚ëmõ­KöÿѬ9Š®®/LɶÝ:FWáæ[ËÖ|¸–•ËæCþßW‡n,`YñÓƬÐXû­Xp‡´[K÷P¾b°ãK´™@dÕžT‡6ØÑ…©bLÐs‹¢nt›Õ{•rD W0¢LN‡¥*Æü™CÕjH¥:ÊÑâè¯)ŽÕ¾dQ´]|²‹“? ¢=DUŠFžãEÓš‹ô¬q–,¦B–¡!÷ó„ UÑç2|‰õÈ8èpNá•xec©Ê%¢“³c€1Ùlv¼÷Ê[™ä°+&“ÙL&ÊaHi>ó¤CPWÑSK€Õô~'¯ØOŽ´G4ºŽ ³V|}]áABiZòçÍüܰ'Æ•­?{ã9w@;§pdÞ”æ€{léû5Áú@ Ò¾äçô²/@^¬…vúc8—zôÉ* ЃO##õN¿A¦¢:ªDmŒ4Ún!£A“ÆŒ6 :Ò(᱘œO0‰*E¤uz=¥Ñj»I—„¾ªIKftÚ´¤G#ÇñÔéØÑSà/ ø¶H U"ƒ„áËSïEÜYŒ9Ž©áÃsÈ-“³˜)̾ºékΖ<Ü‘áªÝ% Lj–ÐJÏhšÑÔÜ@¢ào¥lø]¶p·àÆly¡]OOÿ÷k3‰«IÚ©{êŽï_â€æñÖjºŒØûüáÝOlc‰rÀþ’ôŒQõSSªmHLSmK_,^´/æHjƒq§‘!1ªA0"t ‚`Dzl8dZ\Pðª#Õ,£0UŠ ÂwÎ-+c).P[[¾„â®±•ŒPK_æÔ:…j”¡æ PÅaVT1JXHCxÒÔ½ü7…g+° U¸W®]÷m~ºnÓL¢ÀuîÐÒ{QtösÅeô„Þ…w…á#U¿ ‰žI Èæ:¢¥œ¥¼ñ${²žjÏòQ±2e±‰RÒFže`ÒÈÍãžçè§ê°E¥E©L]d?Þ Ò˜Òh0S ¬°XÙP, °šúŠH¢)Nš ŠH/!Æ[,¯¨ƆþËwµ7q]á}I+­¼«•VkÉZKBÒjµ²lË­Œü?¨Ÿ0†ãB ¸à‰IÚ”˜ ã‰ÉâfB384Mú $Ä©RB Áé ?:åG¦¦™Òθ3Œ†Î„tú²è¹+’þ¨F»gw¥{÷ÎýÎ÷ïÜýdŠw"GÖB­õò61¥*"ÏN—]Â;0Š 1ÖOþR9'¢~NDÏ…#ILäÅ:‘üžˆÃ£ÃsCšx‰˜Š}’Ø Õ&“>£Ç„fÓwxH›õÝö¾†”èSLÃÕâÆ¯):pÔ¡AkÕ,4”7¢§t¥ÞˆöÒsXˆ…âý›î{]àÈÀÍ;qÔÈÝîÿ=¯äóñe÷d1¤ö‹à iøb¨ â¯M¡ß- *üƒb±ß°ìXßùª¡¾óÍë6?pÓî~„%áPï~ŠEï~º>%ãNÒEÃŽŒ¹Û¨Z²© L‚qålB®ÂÝD‡h3aÔ•&T=È÷¯–“Œ¥Œ£«B]'2ñx¹øô¾Áþž‰Ë'o['ÊêÝã³Õ{Ÿm'ŸYÚ<ÊZù2+ïõìÚÕ¯í;ÛY`bÿÆÄ½weëpanªsðÌïþ2Ür/…rÏt²^ÆM:?*á§­ë°M¦‹•”‚6²ÒŸDQ×+¼I‡ z:ÙãÁÜ]Ü-µ¼Î=àañ 瀑<õXÎŲ\Pö§ƒQŠf½²ÍÆFTŽåý9òˆn§ïçèßÒD€Æéížw!‰Ü¸Œ±ð¢ªº$‹(­jFPŒ€^ÏŒ†×_a¯³cI6‡·\ˆ°n6ÂäˆÀ›¥„Y®‹ù%àåÍexó (¾–"¾àÑ¢Îôùøð/¦ ?„4ÜÝ~œL!$D¼^,!Z#QQw :M ~¸í¹5ûžÍnM½0‹×…ywíèàÒ±ÑÌØœb:¾4°£÷Ä¡3…÷ç&)÷ÑË:iå_ÿh:‚7¼´e×ÌQ¨­°÷{€÷*Îê«ÁpYj¡ƒGkÕ –Á›M™hF}–8|&z–ø±|!0/óÌKx© “7PÍGü»ÑéèkA²Üd´VsÍåF>j³ê*¡Bl…#‡Soùd†Ž€bÌK|â'zÈŸŽDIvÍõHE”€l–d·²” °ë­ !ìüfø)k4o5?l¦›_6Ÿ7_1_7›Ì±øFÃP»n®á (æó‹°ûñ8 €=Í_+ö¸“ˆ1A`L-0æ"¦øSF­ #%r8e‡A2D‰û®š”v}ôíã³gñà±½{”ÊX fO0‚OÛ~¥sýc;^øúLJ¾õòÔ‹¸úÎh{¦:¤ú…5.›È¹¦Ÿ:ujüñÿ@Qjä|òúiÚ»Bö¬ „“æ§Z“ :Ù9)銂îU¿-áRE«àZ™†Ÿ|•• ½“‹KÐpAFðw¾"¾Ùü—é‰Rʼnı´DRHƒ§ƒ¨E5ŸCßï_xèЊ¦íÿJ¬jºOjDgÌ‚Q ?­tXYghm¨û¤ªöG¿ÿøú¾þÉ÷^:øÍÔe».³‹A·&õ¦Ÿ,Ün¯Ýô<þïÛüŒ“õlw)!‘’d ËNÚµÙV4ÛÅ€HˆÞ(ÖC Z»9€”;¬®Ír:L4Ëá\…¿êY®Àÿ\DÍÑ@Þ0g`ÍÆâùJ˜Ѻ h§Q«­ ,°+“µ”"¢µ,ƒîç +2 6&,óÙý?´§ÍQ€ªÔCÝ¡ŸÜÜ}ôi1ÿûÏçðò“ãí›~öÈÂócjõãÅ4Gµìô}–{x_yncËPÿƒm1¯#ÖôbWUòà ³…Õä5àz>þFÂr6×dI´‡ÂpZXà¦LügüeZ°R°_°9M .¨P«?Kè­®l(T³9D§.]X6[#F3E‡I‚6è`S%\‹.:ªT“n*^”jn1–é #iâAç‰}=½»lÙÒZhŒH‘§­B|kok{ýun¨½©º%ÕûJwÿ–Z9õZÙŠlC‡&u““í…¾ÂÓ7†WÉêŠD¨¼\àh«‰N=´³ê3âÕv÷ª‘ï´Œ Ô„ëä >aáhFÕ&[nAj\+¬¦âÀÎÖ†õ㌞>ÑqÆùsálù+ç¾vÞyÙ10ßÁ8'ø‰¾ü¾S}¿è3;ìö@¦×•ÉôÚ™^*ô(éiKŽlœ«Æ€g'õ@â×r5Ý%{ìN‡«›HP¥.• –…ñª»Þu‰lÀ*±:pÉY¯[ceÍá=±UÍ•ï‚=éÅb µUZ %¦]Q“| ¿þ_¾«6¶‰óŽ?ÏñÅöÙ>ßïl_rvür/¾»Ä$>;¹^S š´°–Ñ@„—Ñ”v+ÐÂLCð U Õ:èÚаUW­ì…µS+UÚ‡Mš&-bCkÄFUiq÷ÜÙº²}¸çï{î|¶î÷ÿ½ü¨\.4¶TvÜÒØYÒʶ7É9a-Dí£ZlöÞžEèÏ"æ¸BýyY›¹S¥„í X4­×¹€´èŠj S„hš¶ sËY¨Y°Y¸! í"ÖÐæp›»6¿8 «=¢´$:Õæ7èmã¿~Ú`RKõj®câæáç?~¤ òßm]ùƒ­{¿ü¤´^//?öh¯ñø"¹Ò²r°{èÜÑJ›»°Ò“ù¶}›6yãdZ‚º˜3úV½\îzÂPÇzqJ•Gò¡#küUˆŸZ1ú·=åo¿ýÊÜ®ôÎù ÕÊR?K ¦ >!6·P«ñ!å5{Êõ”ûa³4ážöˆ{¤ÆAðŒè4¬d`Ðè€Ð‘Q5 ÐL¾¯uD6²ù2Lê°œ b|œáù8Ð@^‹é­Œ®·&ç9q]ó„½|§ç[u’9D#—½Hàéø4LMiÞ²WÍMæ?Ó­Ì‹¢®U'¹‚]š {¥»frv5©¢qK‡z¤“çtŽïô´¨¬5á¶´{AŽZžvj ÐÓ ·¡j¸¨ÂÖ¤ îæâºá¾Dú_¸†æ[Õ–ÞnG‰-Û;ñÄ|Ô ¨eL7 …Vt ñ—K4³€IT`BªFwìž#ûUG¦«š^m#OÂNû7Õ¿_úx,k6=ǽ¾`a~,1±6‘nKî`#LszÑpøå ož€K“jŒJ‡ŽüÛ€Ô» ;>ZhôS>m9m|o^[Z{þ¸¤2a6³=öçþÁ?8Ÿ}>*»0ÉòÞG¾ú‡£µ^ À”)q[‹û¢A©&e¨f„Ï 0’„,§ôµŒÈrV)`›k;iF \&„ˆ -Œ ´ð^!#·$wˆE€¾poÈi¸x[˜†É_(›)Áä Á­Ø•jàYÕt#43¯žÑ4›Ë G‡Éœñì®ayJë}{ˡӇëa¬Ï®µw¸<37sƒ¬¡mc}_°wfÉ:¸Ö´3f?rŠ3 ¦ÇgÃWàzÖÇ©@3…š#¿Ošéû𬫻€ð÷™b—¢t;Ãо@¨PL.]´@ÉE¾ñl_[Ì(]]J¦XÙ1×»ØO2¤>È=¹Ø˜—NÁ¶6±M^„aÄÌ"fvÀ)3K$˜‚aú9à †I¯‡{#Ä*°?x–Ä;¹£Ÿâœ|:"Fu¬fË1(¡d,ÇÐ`€ ŠŒS&Ú³e—ìIxzzþ5¤¸‚gÚ>ï° oJ˜Ãé„4Ä‘L¥¤ „NI–‚2b¾ ?ë#œÞ,ÑQQ§a“’íG2áp,%2©”8-»nJL0(A ý0!A4€¡ÓþŽÊ(Šê#\ŠìŽG¥„WUH_ÔŦáåKá™Ô43#¾µ¡^= dTxu²ý3ÅV>§T%Á>EIE©u•m ž¢¡Dr g§oÔ;5˜™»qÉÀÜìròj ÐS¶²HOw]ªôGü¯ºÂ]e°ì! jmÈYˆzÊ^Éëx#ÙÝØý’µ¾`¥?yíÚ°ÝWv¿BØiÇlQL&;[p—MtÖ²‹{á\1Cä¯7cyefûÕù‘Ô’^8å)méØbãyšf‚\®+¹eg6ÃÉc7„M é$׎@ÙðÊ@Äç&=¢è”ÄRóÀ’½”å 89¸¶¥ žØ]9åܵ!B‡ãž¤ÕY#öo@Õ s™@ Ä`ÌŒ«Áê¦[±/9§'îÍzMï ¯ÓÛÜ‘›²Í¨eЄՌŨCQ¡€—äEÞ»q³ç ¼Š™2 ,M ~@}J9¨iØez7ÅQ‚g÷@M-¯¶#…€ãü=”-í‘Ê”ûìbš­îÒÉÚmA»¦u£IòÕëHí[~íúªwO… ”ÉÖX=†ÍÎÜþ|ì¿åá]Çt̃1ŽÛúâµ~Çc-éÀ;ÉBÍöáHïâ¶¡òf„ö# +­è2ÄŽ8 ´ˆ2׆ƣ‘a&À•¡ØCÌ%RÛ°7wÃ1<Ç/ ”•‡G«N¢×œÄi\×­°¦"Êj¶{kÕ‹v)ÚÅbªV3s­JdÍFYþ- j–™kÿÃÌÕòìÌÌmõ›~þ7ï&g·[¢fY:ù5Oÿ?–nMcã6{±¸÷7Ô¾Jêdý—àµýW;ÚþPós!ÒMžØØ`±5­%v²QºIZvf¸-Ö~âR<%Ñ…¬ ÷öB£û‰Êº¥¤Ÿöe†èýI³»àOJ&Ö?yuÍÆ³ŽíãÛât¥ww£ž¹ˆzÆ"à‚ùP£Ã¹<Øëô[á3ü$5ɾv­ GöÓ? §O…ÏRxž.FÓK#k‡¨Õ4î!ˆ`Ê‹c \Êée¦±½&…¿XÌá/öGñÓ¸DýÖ¶,]f¯Ð LÁ ²Àg@øW? #„îT*߬‚U¾‰Â6‚Ç^,zY¯–q8ïÍ·v0vØï–Â.ž®Ì8xá§ß·ïgçÖ-9öÅú¥‡¿p¬8QùÓùŸÿð”Ï¿Õ?öxeݧm‚¯!WøJ¨,Ã~‡ÞB´ÃA³´&Nˆ÷| …P ôûûCK2k\ý»üÑóòåÆ÷”Ë™ëQobòcYK˜ƒ¾Ô¼v¿°Q.ˆüL6”ìã§á¦_NdÿÃvµÇ¶q×ñûÝپ؎ŸgßùîlßŸçØµ}±?r±-}%iš´éƒn¤uZ·*[iTT¬í¦¬Ð ÒŠ)eE ¯1ºŽRZ4/­]P ˆJìBHdC„ÑNã—ß¤ùô»ŸîüK,}?ßïç"b —„˜kR'`‡J8‰¨SDŸ ˆ‰˜ÍŽþÊ%¡ Š‚;3ƒ" :[¢q_§Ú[ÒØ _.ÑP* ÓÒ#ôgéiú m¦g¨^Ä«éËb4Úб7»K {‚ánƒèA o @ä 'lMªvq˽X‹+~诜{a±ÝµéÚ<·Ÿ0,îÖMÃÝa¨~‚š!ñÒÑ繫÷°¢—ò(K3Àh¥ÔûV‡Á™†2,4xgÕÓ¯oÛv¸õÍtåûY®8dm¥lcËc‹œ$‡ŠÏÔŸ*ŽïÙ¸¼_ÿF¿qô‰ûÿت²ÁVkÇJžxÜT9BúÄ0\dj¦®íÙüñ«X±¨HU„vŠø7\N"ŽTÐÚ6SÛ­ÛmSç¨ó®sï Ö…)ክ¦Ó&2,I€X¥üMMå‰!@údR"’sGœ…_Üb´ Ð!I’Ÿ,+²dSÙ·B눕²ÎP"IÍÉ,W•a±¯(ÃLI†1´"h!û*Ã`¨HÈ€ÏÊoË×å›òÙ‚¸ñ+?MË\·¡y·–àI§‘?5´è>eµÑA¯1>žéêËw³)ÀŽ‚‰SÞò'aJ¢ë^‚¸ËBÆ«=`Û© '7”D$°ŒSL$Ýa÷¸„Òè®®p—E>ý–ìò)þ µ¡Ò@úàÊd|…¾,,1–Ž'|ìÌŠÑÜaòéñ¬·ÓmEÕ¿³€üÂû¨úyâM뀋ˆîF‡Ýä Øý®ZÒ¬Ú£®Ó• 0 v ÷×&hËÎyÚKÑ|9Ø¢6ÀÙC1œ$fôÚ#€9gíºügùC™:"ŸDõ»"›äéŽZbJ˜äg†,K˜GK‰§WdàKÚ X 'i÷m<8ÞÝó0¿€h§¡Ï/´ïcF7§Q©hw)êbŽm;y£RQ¦€Úº.K"k_èæðs™|¿/n~r¨ÞÒ^X÷ÆÄÚíŠwï‹[ì^·Í¼T8±Oœ{<é¢ðß;´2¯è=_;Ÿüv¤3 V~ãðæºÑßÝ[ÚuÌL%s¨ƒ·¢>azžË[„ ü~WÕ…Æ÷Ì7Éÿ:©Íâ$ñ b¡ñ¨“rÉ!™<‚‰ N0™išÃ"‚¡pÀÌ›@â,ž7™¨—ˆiX;’n D–åYIåY7Ùï¢$мCj\&.ЮIç MR°ÓËžjñ {%YßIVTé!f„-‹ý‹‹YɰB‹(EÍ㎞os fs[rQÍu¬Ê' ÂèçªÑÅf]î9#v!<†¶@G?Q[£˜dHný·U>³±RÍTä¼l{æë˜žo}ØXüÉŽ Çõíá•åtÏ>òSÉðÁ—0[`…¼ŠúU/ÉŽ_#½%m¶IßË~ш=ï‡øßº9»©w¯•ôo"ñS=„î'5U%_·‚j¢¡«;ÔÛþØÛUÚ׫ëŒÕ–HVª5–3ü:“HŠ}ÙBaÉ+¥i°%1ºaô€Ó.2}È-éŒÛ6iÝI5QÕEý i(|‘A!Nb†™ÌIæ,cfšdvâ"Ì‚l\žòŠm·„·K踱ûüí=S4vÈGÕb^„â´H‰|ŸUäý¨íà/ ˆ÷m¹"ŒzÆ?@“‡÷‹lÛÙÝZs/'çÑ Ý5UÈUé «Æ#iäD´ÀP,mŽÂ°Žá¶ øöª14é¬ö¢•G+ŒÖ]GŽæ± üƒ¸#ÌvW:ÙS~Ø„ÕÉr™ºú£¤ÃîI†‡GË…dÆá<÷ÞcY˜Ù*{lþ®ipì‰çÔíIÞ¯ì½øìr–Ú¿xþŨ×#sÏõ&2ÑHeàãÖïBmðPÚ'vzÂ;ÙϕӹxÏW[?Ÿˆ2ÜŠ¿üò÷ë0óý uÒê¤Õ îv`Ò¢ º‹èuÁ"Ÿâpœÿ.ø!®ëµ¾ ÷Zè.¹¹ÝʳÊÿ+ÅlvvmŒR&^È®®tÖu¨*R$úTÖ»Ð{J+&WÏž&5%Íf#èÒl5™Í&ì¦.¾®Lžü6BFæäüª°†€Èx /¨XÈBü|öë0Tª××Èè8é¸à09„µÝüš&ð]üögóîcÞj;hÄ–7Po,`$ÌH{Œ›ûÖÛ{@ßK¸8ØbˆÇ@Å$añ„Þ—¢%bØGE[²½/ñ*þ®§ŒDËð`Æ{SŸŽ>ž„ÒW0æG6& Ô·ld‡?XNF»Ê‰Šâ_qf{_UUYŽ ÎN&÷¾næÖraêx±;=‘ßê¶e•„“·ºƒÅ©Ök×ð~a}¦‘©Ö?×w‡Ø¸’‘9wâ•9—÷1ŒìÎÖjêB¶øè+е’•øßÇ¿J^&g„Ëj³{–š5]㯠Ž~q›ø”H™´|.g¥Ã‚&xLù\vYZ ŠŠf¶ÐV›½³ƒ3•&+³>‚ŽÍ¥“a—ÒW`Yó@»·èòHÒ£v~žÃ®ú7Í‘#ÜQîÇ%syôŽâúk•þ·Ë Q.ï(Så&…Ó{æ_ 󯆟‹§Š§´ií¦FhG5RÖòÔ(­I/U»؈½1Á¦Ðމ=¦cžh,þ½¡ßZ0ع½ª„ß Ž6]m;õ48X–cÄø*—¤ë&"1¤m©l£Š.Ê@5 #‚#£(oÐìgo2ËÔÇ[¿þÃÿÙ/—Ÿ&¢(Œ3ÓÖ)`[PÚFJ‘RÒVÁòHÊcjyP0Z±@cy„bÃJLŒÆc4ºPc¢+eaL$lü ®\º2Ѹr#Qâ[Ït&RC «{&¿{¿sï™ÛÎ9Ó¤çþªb÷ñRÓ^Ñ(j÷èr«¥s®CMcW/\¯‹ÞMšÚ†æ»lyùÙce‰ã¨äï\Nü|AíÒa¿^ëµYöàùzþò£€î6lä?ðJ[¢¶â3ýÏ\´]€î# } e²'€œ…ÌV6ÉF`º¥Pxc+E¡M,<`ý p°Mþ’ ö«[‘3S:”Ñ\>8¿®BÀŽ|*(£ïV=§Pû¨[|Ïêí@Ãà4Y7 ¬-‹ ƒÁ`0 ƒÁøÀƒK÷­&²âÌ„MØâåÃh*(Ü Èl±®¯QçWæ(GIõxUðV+õðÓhnim“‚'BèèDw¸}'Oú2ö®˜Oh´ÃFŠ§Ñ…Z4¢ÚÑ^ôã bˆc—0›JQ¬㡘ætLzÒ1\Ä&1“J¥>m©•Èd”úÔ·m#D ©g °ÐÈ©Od¡KÑ:R^¹â=­xé‰ÍÀkªhýžª5¤—U­ƒ—㚛ڥ`«³76MtD§Ã㣑± i* îl‹ÒÖDi“¤$;)Á1Œ"Š:hœFãäG(•3E*Nƒ´Å0• N+“;Œ@Kσ}Tžyz‹ò)ÙÜmÚ5¤do}Æ¿nß°?ËÞ@F¿-fEù˜w¢GH¨Õç¿ ?6_É9›ëû!‰éè§ÅKoäùõÛçŽ5í¯›âªè!W~Ò'ÿ`ûÖñá endstream endobj 1633 0 obj << /Type /FontDescriptor /Ascent 1005 /CapHeight 0 /Descent -219 /Flags 4 /FontBBox [ 0 -220 1113 1005 ] /FontName /ECMJBE+SymbolMT /ItalicAngle 0 /StemV 0 /FontFile2 1631 0 R >> endobj 1634 0 obj << /N 3 /Alternate /DeviceRGB /Length 282 /Filter /FlateDecode >> stream H‰b``2ptqre``ÈÍ+) rwRˆˆŒR`?ÏÀÆÀ̉ÉžÁn! v^~^*øvD_Ö™…)p%•é?@l”’ZœÌÀÀhdg——ÅçÙ"IÙ`ö»($ÈÈ>dó¥CØW@ì$û ˆ]ôý¤>Ìfâ›aË€Ø%© {œó *‹2Ó3J ---Sò“R‚+‹KRs‹<ó’ó‹ ò‹KRS€j!îAˆBPˆi5Zh’èo‚Öç@pø2ŠAˆ!@riQ”ÉÈdL˜0cŽƒÿR–?1“^†: üSbj† ú ûæÛ'P endstream endobj 1637 0 obj << /S /GoTo /D [ 1595 0 R /FitH 795 ] >> endobj 1638 0 obj << /Title (TouchPad Interfacing Guide Addendum: Multiple-Button Support Specificati\ on) /A 1637 0 R /First 25 0 R /Last 26 0 R /Parent 24 0 R /Count 10 >> endobj 1639 0 obj << /Type /Metadata /Subtype /XML /Length 1296 >> stream 2004-04-12T10:28:13-08:00 2004-04-12T10:30:07-08:00 Acrobat Distiller 5.0 (Windows) Acrobat PDFMaker 5.0 for Word Application Note / White Paper Style Guide 2004-04-12T18:28:13Z 2004-04-12T18:28:13Z 2004-04-12T10:30:07-08:00 Application Note / White Paper Style Guide Application Note / White Paper Style Guide endstream endobj xref 0 1640 0000001590 65535 f 0000000016 00000 n 0000000416 00000 n 0000000571 00000 n 0000000726 00000 n 0000000881 00000 n 0000001036 00000 n 0000001189 00000 n 0000010206 00000 n 0000010227 00000 n 0000010569 00000 n 0000019317 00000 n 0000019339 00000 n 0000019731 00000 n 0000019887 00000 n 0000020043 00000 n 0000020199 00000 n 0000027061 00000 n 0000027083 00000 n 0000027456 00000 n 0000030932 00000 n 0000030954 00000 n 0000031335 00000 n 0000032662 00000 n 0000032684 00000 n 0000032752 00000 n 0000032866 00000 n 0000033027 00000 n 0000033155 00000 n 0000033276 00000 n 0000033391 00000 n 0000033509 00000 n 0000033631 00000 n 0000033766 00000 n 0000033905 00000 n 0000034044 00000 n 0000034122 00000 n 0000034649 00000 n 0000034995 00000 n 0000035149 00000 n 0000035247 00000 n 0000035337 00000 n 0000035490 00000 n 0000035593 00000 n 0000035745 00000 n 0000035830 00000 n 0000035981 00000 n 0000036057 00000 n 0000036147 00000 n 0000036309 00000 n 0000036399 00000 n 0000036491 00000 n 0000036584 00000 n 0000036744 00000 n 0000036835 00000 n 0000036926 00000 n 0000037017 00000 n 0000037108 00000 n 0000037195 00000 n 0000037282 00000 n 0000037391 00000 n 0000037500 00000 n 0000037652 00000 n 0000037761 00000 n 0000037870 00000 n 0000037979 00000 n 0000038088 00000 n 0000038197 00000 n 0000038306 00000 n 0000038416 00000 n 0000038526 00000 n 0000038677 00000 n 0000038769 00000 n 0000038921 00000 n 0000039031 00000 n 0000039123 00000 n 0000039215 00000 n 0000039307 00000 n 0000039399 00000 n 0000039491 00000 n 0000039583 00000 n 0000039675 00000 n 0000039767 00000 n 0000039877 00000 n 0000039969 00000 n 0000040079 00000 n 0000040171 00000 n 0000040281 00000 n 0000040373 00000 n 0000040483 00000 n 0000040575 00000 n 0000040685 00000 n 0000040777 00000 n 0000040887 00000 n 0000040979 00000 n 0000041089 00000 n 0000041181 00000 n 0000041261 00000 n 0000041349 00000 n 0000041502 00000 n 0000041612 00000 n 0000041723 00000 n 0000041834 00000 n 0000041945 00000 n 0000042056 00000 n 0000042167 00000 n 0000042278 00000 n 0000042389 00000 n 0000042500 00000 n 0000042611 00000 n 0000042704 00000 n 0000042815 00000 n 0000042915 00000 n 0000043008 00000 n 0000043101 00000 n 0000043201 00000 n 0000043301 00000 n 0000043394 00000 n 0000043487 00000 n 0000043598 00000 n 0000043691 00000 n 0000043784 00000 n 0000043877 00000 n 0000043970 00000 n 0000044063 00000 n 0000044174 00000 n 0000044267 00000 n 0000044378 00000 n 0000044471 00000 n 0000044564 00000 n 0000044675 00000 n 0000044768 00000 n 0000044879 00000 n 0000044972 00000 n 0000045083 00000 n 0000045176 00000 n 0000045287 00000 n 0000045380 00000 n 0000045491 00000 n 0000045584 00000 n 0000045695 00000 n 0000045795 00000 n 0000045888 00000 n 0000045981 00000 n 0000046074 00000 n 0000046174 00000 n 0000046274 00000 n 0000046367 00000 n 0000046460 00000 n 0000046571 00000 n 0000046664 00000 n 0000046757 00000 n 0000046850 00000 n 0000046943 00000 n 0000047036 00000 n 0000047147 00000 n 0000047241 00000 n 0000047353 00000 n 0000047447 00000 n 0000047559 00000 n 0000047653 00000 n 0000047765 00000 n 0000047859 00000 n 0000047971 00000 n 0000048065 00000 n 0000048177 00000 n 0000048271 00000 n 0000048353 00000 n 0000048443 00000 n 0000048555 00000 n 0000048667 00000 n 0000048779 00000 n 0000048891 00000 n 0000049003 00000 n 0000049115 00000 n 0000049227 00000 n 0000049339 00000 n 0000049451 00000 n 0000049563 00000 n 0000049657 00000 n 0000049769 00000 n 0000049871 00000 n 0000049965 00000 n 0000050059 00000 n 0000050161 00000 n 0000050263 00000 n 0000050357 00000 n 0000050451 00000 n 0000050563 00000 n 0000050657 00000 n 0000050751 00000 n 0000050845 00000 n 0000050939 00000 n 0000051033 00000 n 0000051145 00000 n 0000051239 00000 n 0000051351 00000 n 0000051445 00000 n 0000051539 00000 n 0000051651 00000 n 0000051745 00000 n 0000051857 00000 n 0000051951 00000 n 0000052063 00000 n 0000052157 00000 n 0000052269 00000 n 0000052363 00000 n 0000052475 00000 n 0000052569 00000 n 0000052681 00000 n 0000052783 00000 n 0000052877 00000 n 0000052971 00000 n 0000053065 00000 n 0000053167 00000 n 0000053269 00000 n 0000053363 00000 n 0000053457 00000 n 0000053569 00000 n 0000053663 00000 n 0000053757 00000 n 0000053851 00000 n 0000053945 00000 n 0000054039 00000 n 0000054151 00000 n 0000054245 00000 n 0000054357 00000 n 0000054451 00000 n 0000054563 00000 n 0000054657 00000 n 0000054770 00000 n 0000054865 00000 n 0000054978 00000 n 0000055073 00000 n 0000055186 00000 n 0000055281 00000 n 0000055363 00000 n 0000055453 00000 n 0000055564 00000 n 0000055675 00000 n 0000055786 00000 n 0000055897 00000 n 0000056008 00000 n 0000056119 00000 n 0000056230 00000 n 0000056341 00000 n 0000056452 00000 n 0000056563 00000 n 0000056657 00000 n 0000056769 00000 n 0000056863 00000 n 0000056957 00000 n 0000057051 00000 n 0000057145 00000 n 0000057239 00000 n 0000057333 00000 n 0000057427 00000 n 0000057539 00000 n 0000057633 00000 n 0000057727 00000 n 0000057821 00000 n 0000057933 00000 n 0000058027 00000 n 0000058139 00000 n 0000058233 00000 n 0000058327 00000 n 0000058439 00000 n 0000058533 00000 n 0000058645 00000 n 0000058739 00000 n 0000058851 00000 n 0000058945 00000 n 0000059057 00000 n 0000059151 00000 n 0000059263 00000 n 0000059357 00000 n 0000059469 00000 n 0000059570 00000 n 0000059664 00000 n 0000059758 00000 n 0000059852 00000 n 0000059953 00000 n 0000060054 00000 n 0000060148 00000 n 0000060242 00000 n 0000060354 00000 n 0000060448 00000 n 0000060542 00000 n 0000060636 00000 n 0000060730 00000 n 0000060824 00000 n 0000060936 00000 n 0000061030 00000 n 0000061142 00000 n 0000061236 00000 n 0000061330 00000 n 0000061424 00000 n 0000061518 00000 n 0000061612 00000 n 0000061724 00000 n 0000061818 00000 n 0000061930 00000 n 0000062024 00000 n 0000062136 00000 n 0000062230 00000 n 0000062324 00000 n 0000062418 00000 n 0000062512 00000 n 0000062606 00000 n 0000062718 00000 n 0000062812 00000 n 0000062893 00000 n 0000062982 00000 n 0000063071 00000 n 0000063160 00000 n 0000063249 00000 n 0000063338 00000 n 0000063450 00000 n 0000063562 00000 n 0000063674 00000 n 0000063786 00000 n 0000063898 00000 n 0000064010 00000 n 0000064122 00000 n 0000064234 00000 n 0000064328 00000 n 0000064422 00000 n 0000064527 00000 n 0000064632 00000 n 0000064726 00000 n 0000064820 00000 n 0000064914 00000 n 0000065008 00000 n 0000065121 00000 n 0000065234 00000 n 0000065347 00000 n 0000065460 00000 n 0000065573 00000 n 0000065686 00000 n 0000065799 00000 n 0000065912 00000 n 0000066025 00000 n 0000066138 00000 n 0000066245 00000 n 0000066348 00000 n 0000066455 00000 n 0000066558 00000 n 0000066665 00000 n 0000066768 00000 n 0000066875 00000 n 0000066982 00000 n 0000067077 00000 n 0000067172 00000 n 0000067267 00000 n 0000067349 00000 n 0000067425 00000 n 0000067504 00000 n 0000067599 00000 n 0000067653 00000 n 0000067732 00000 n 0000067811 00000 n 0000067906 00000 n 0000067960 00000 n 0000068039 00000 n 0000068118 00000 n 0000068213 00000 n 0000068267 00000 n 0000068356 00000 n 0000068445 00000 n 0000068558 00000 n 0000068671 00000 n 0000068784 00000 n 0000068897 00000 n 0000069010 00000 n 0000069123 00000 n 0000069236 00000 n 0000069349 00000 n 0000069454 00000 n 0000069556 00000 n 0000069661 00000 n 0000069763 00000 n 0000069868 00000 n 0000069970 00000 n 0000070075 00000 n 0000070180 00000 n 0000070293 00000 n 0000070406 00000 n 0000070519 00000 n 0000070632 00000 n 0000070745 00000 n 0000070858 00000 n 0000070971 00000 n 0000071084 00000 n 0000071197 00000 n 0000071310 00000 n 0000071423 00000 n 0000071518 00000 n 0000071613 00000 n 0000071708 00000 n 0000071803 00000 n 0000071898 00000 n 0000071993 00000 n 0000072088 00000 n 0000072201 00000 n 0000072314 00000 n 0000072427 00000 n 0000072540 00000 n 0000072653 00000 n 0000072766 00000 n 0000072879 00000 n 0000072992 00000 n 0000073105 00000 n 0000073218 00000 n 0000073323 00000 n 0000073425 00000 n 0000073530 00000 n 0000073632 00000 n 0000073737 00000 n 0000073839 00000 n 0000073944 00000 n 0000074049 00000 n 0000074144 00000 n 0000074239 00000 n 0000074334 00000 n 0000074416 00000 n 0000074496 00000 n 0000074592 00000 n 0000074646 00000 n 0000074742 00000 n 0000074796 00000 n 0000074892 00000 n 0000074946 00000 n 0000075045 00000 n 0000075097 00000 n 0000075203 00000 n 0000075271 00000 n 0000075352 00000 n 0000075441 00000 n 0000075530 00000 n 0000075619 00000 n 0000075708 00000 n 0000075861 00000 n 0000075952 00000 n 0000076043 00000 n 0000076134 00000 n 0000076225 00000 n 0000076315 00000 n 0000076405 00000 n 0000076495 00000 n 0000076585 00000 n 0000076674 00000 n 0000076763 00000 n 0000076903 00000 n 0000076964 00000 n 0000077116 00000 n 0000077242 00000 n 0000077303 00000 n 0000077457 00000 n 0000077583 00000 n 0000077644 00000 n 0000077754 00000 n 0000077874 00000 n 0000077935 00000 n 0000078032 00000 n 0000078184 00000 n 0000078750 00000 n 0000078904 00000 n 0000079030 00000 n 0000079110 00000 n 0000079170 00000 n 0000079228 00000 n 0000079308 00000 n 0000079368 00000 n 0000079425 00000 n 0000079505 00000 n 0000079565 00000 n 0000079623 00000 n 0000079703 00000 n 0000079763 00000 n 0000079821 00000 n 0000079901 00000 n 0000079961 00000 n 0000080019 00000 n 0000080099 00000 n 0000080159 00000 n 0000080217 00000 n 0000080297 00000 n 0000080357 00000 n 0000080415 00000 n 0000080495 00000 n 0000080555 00000 n 0000080613 00000 n 0000080693 00000 n 0000080753 00000 n 0000080811 00000 n 0000080880 00000 n 0000080960 00000 n 0000081020 00000 n 0000081078 00000 n 0000081158 00000 n 0000081218 00000 n 0000081276 00000 n 0000081402 00000 n 0000081482 00000 n 0000081542 00000 n 0000081600 00000 n 0000081680 00000 n 0000081740 00000 n 0000081798 00000 n 0000081878 00000 n 0000081938 00000 n 0000081996 00000 n 0000082076 00000 n 0000082136 00000 n 0000082194 00000 n 0000082274 00000 n 0000082334 00000 n 0000082392 00000 n 0000082472 00000 n 0000082532 00000 n 0000082590 00000 n 0000082670 00000 n 0000082730 00000 n 0000082788 00000 n 0000082868 00000 n 0000082928 00000 n 0000082986 00000 n 0000083066 00000 n 0000083126 00000 n 0000083184 00000 n 0000083253 00000 n 0000083333 00000 n 0000083393 00000 n 0000083451 00000 n 0000083531 00000 n 0000083591 00000 n 0000083649 00000 n 0000083718 00000 n 0000083798 00000 n 0000083858 00000 n 0000083916 00000 n 0000083996 00000 n 0000084056 00000 n 0000084114 00000 n 0000084183 00000 n 0000084263 00000 n 0000084323 00000 n 0000084381 00000 n 0000084461 00000 n 0000084521 00000 n 0000084579 00000 n 0000084648 00000 n 0000084728 00000 n 0000084788 00000 n 0000084846 00000 n 0000084926 00000 n 0000084986 00000 n 0000085044 00000 n 0000085113 00000 n 0000085193 00000 n 0000085253 00000 n 0000085311 00000 n 0000085391 00000 n 0000085451 00000 n 0000085509 00000 n 0000085578 00000 n 0000085658 00000 n 0000085718 00000 n 0000085776 00000 n 0000085856 00000 n 0000085916 00000 n 0000085974 00000 n 0000086043 00000 n 0000086123 00000 n 0000086183 00000 n 0000086241 00000 n 0000086321 00000 n 0000086381 00000 n 0000086439 00000 n 0000086666 00000 n 0000086792 00000 n 0000086872 00000 n 0000086932 00000 n 0000086990 00000 n 0000087071 00000 n 0000087131 00000 n 0000087189 00000 n 0000087270 00000 n 0000087330 00000 n 0000087388 00000 n 0000087469 00000 n 0000087529 00000 n 0000087587 00000 n 0000087668 00000 n 0000087728 00000 n 0000087786 00000 n 0000087867 00000 n 0000087927 00000 n 0000087985 00000 n 0000088066 00000 n 0000088126 00000 n 0000088184 00000 n 0000088265 00000 n 0000088325 00000 n 0000088383 00000 n 0000088464 00000 n 0000088524 00000 n 0000088582 00000 n 0000088651 00000 n 0000088732 00000 n 0000088792 00000 n 0000088850 00000 n 0000088931 00000 n 0000088991 00000 n 0000089049 00000 n 0000089166 00000 n 0000089247 00000 n 0000089307 00000 n 0000089365 00000 n 0000089446 00000 n 0000089506 00000 n 0000089564 00000 n 0000089645 00000 n 0000089705 00000 n 0000089763 00000 n 0000089844 00000 n 0000089904 00000 n 0000089962 00000 n 0000090043 00000 n 0000090103 00000 n 0000090161 00000 n 0000090242 00000 n 0000090302 00000 n 0000090360 00000 n 0000090441 00000 n 0000090501 00000 n 0000090559 00000 n 0000090640 00000 n 0000090700 00000 n 0000090758 00000 n 0000090859 00000 n 0000090940 00000 n 0000091000 00000 n 0000091058 00000 n 0000091139 00000 n 0000091199 00000 n 0000091257 00000 n 0000091338 00000 n 0000091398 00000 n 0000091456 00000 n 0000091537 00000 n 0000091597 00000 n 0000091655 00000 n 0000091736 00000 n 0000091796 00000 n 0000091854 00000 n 0000091935 00000 n 0000091995 00000 n 0000092053 00000 n 0000092122 00000 n 0000092203 00000 n 0000092263 00000 n 0000092321 00000 n 0000092402 00000 n 0000092462 00000 n 0000092520 00000 n 0000092597 00000 n 0000092678 00000 n 0000092738 00000 n 0000092796 00000 n 0000092877 00000 n 0000092937 00000 n 0000092995 00000 n 0000093076 00000 n 0000093136 00000 n 0000093194 00000 n 0000093263 00000 n 0000093344 00000 n 0000093404 00000 n 0000093462 00000 n 0000093543 00000 n 0000093603 00000 n 0000093661 00000 n 0000093730 00000 n 0000093811 00000 n 0000093871 00000 n 0000093929 00000 n 0000094010 00000 n 0000094070 00000 n 0000094128 00000 n 0000094197 00000 n 0000094278 00000 n 0000094338 00000 n 0000094396 00000 n 0000094477 00000 n 0000094537 00000 n 0000094595 00000 n 0000094664 00000 n 0000094745 00000 n 0000094805 00000 n 0000094863 00000 n 0000094944 00000 n 0000095004 00000 n 0000095062 00000 n 0000095131 00000 n 0000095212 00000 n 0000095272 00000 n 0000095330 00000 n 0000095411 00000 n 0000095471 00000 n 0000095529 00000 n 0000095655 00000 n 0000095736 00000 n 0000095796 00000 n 0000095854 00000 n 0000095935 00000 n 0000095995 00000 n 0000096053 00000 n 0000096134 00000 n 0000096194 00000 n 0000096252 00000 n 0000096333 00000 n 0000096393 00000 n 0000096451 00000 n 0000096532 00000 n 0000096592 00000 n 0000096650 00000 n 0000096731 00000 n 0000096791 00000 n 0000096849 00000 n 0000096930 00000 n 0000096990 00000 n 0000097048 00000 n 0000097129 00000 n 0000097189 00000 n 0000097247 00000 n 0000097328 00000 n 0000097388 00000 n 0000097446 00000 n 0000097547 00000 n 0000097628 00000 n 0000097688 00000 n 0000097746 00000 n 0000097827 00000 n 0000097887 00000 n 0000097945 00000 n 0000098026 00000 n 0000098086 00000 n 0000098144 00000 n 0000098225 00000 n 0000098285 00000 n 0000098343 00000 n 0000098424 00000 n 0000098484 00000 n 0000098542 00000 n 0000098623 00000 n 0000098683 00000 n 0000098741 00000 n 0000098810 00000 n 0000098891 00000 n 0000098951 00000 n 0000099009 00000 n 0000099090 00000 n 0000099150 00000 n 0000099208 00000 n 0000099277 00000 n 0000099358 00000 n 0000099418 00000 n 0000099476 00000 n 0000099557 00000 n 0000099617 00000 n 0000099675 00000 n 0000099744 00000 n 0000099825 00000 n 0000099885 00000 n 0000099943 00000 n 0000100024 00000 n 0000100084 00000 n 0000100142 00000 n 0000100211 00000 n 0000100292 00000 n 0000100352 00000 n 0000100410 00000 n 0000100491 00000 n 0000100551 00000 n 0000100609 00000 n 0000100678 00000 n 0000100759 00000 n 0000100819 00000 n 0000100877 00000 n 0000100958 00000 n 0000101018 00000 n 0000101076 00000 n 0000101145 00000 n 0000101226 00000 n 0000101286 00000 n 0000101344 00000 n 0000101425 00000 n 0000101485 00000 n 0000101543 00000 n 0000101772 00000 n 0000101898 00000 n 0000101979 00000 n 0000102039 00000 n 0000102097 00000 n 0000102178 00000 n 0000102238 00000 n 0000102296 00000 n 0000102377 00000 n 0000102437 00000 n 0000102495 00000 n 0000102576 00000 n 0000102636 00000 n 0000102694 00000 n 0000102775 00000 n 0000102835 00000 n 0000102893 00000 n 0000102974 00000 n 0000103034 00000 n 0000103092 00000 n 0000103173 00000 n 0000103233 00000 n 0000103291 00000 n 0000103372 00000 n 0000103432 00000 n 0000103490 00000 n 0000103571 00000 n 0000103631 00000 n 0000103689 00000 n 0000103758 00000 n 0000103839 00000 n 0000103899 00000 n 0000103957 00000 n 0000104038 00000 n 0000104098 00000 n 0000104156 00000 n 0000104273 00000 n 0000104354 00000 n 0000104414 00000 n 0000104472 00000 n 0000104553 00000 n 0000104613 00000 n 0000104671 00000 n 0000104752 00000 n 0000104812 00000 n 0000104870 00000 n 0000104951 00000 n 0000105011 00000 n 0000105069 00000 n 0000105150 00000 n 0000105210 00000 n 0000105268 00000 n 0000105349 00000 n 0000105409 00000 n 0000105467 00000 n 0000105548 00000 n 0000105608 00000 n 0000105666 00000 n 0000105747 00000 n 0000105807 00000 n 0000105865 00000 n 0000105966 00000 n 0000106047 00000 n 0000106107 00000 n 0000106165 00000 n 0000106246 00000 n 0000106306 00000 n 0000106364 00000 n 0000106445 00000 n 0000106505 00000 n 0000106563 00000 n 0000106644 00000 n 0000106704 00000 n 0000106762 00000 n 0000106843 00000 n 0000106903 00000 n 0000106961 00000 n 0000107042 00000 n 0000107102 00000 n 0000107160 00000 n 0000107229 00000 n 0000107310 00000 n 0000107370 00000 n 0000107428 00000 n 0000107509 00000 n 0000107569 00000 n 0000107627 00000 n 0000107704 00000 n 0000107785 00000 n 0000107845 00000 n 0000107903 00000 n 0000107984 00000 n 0000108044 00000 n 0000108102 00000 n 0000108183 00000 n 0000108243 00000 n 0000108301 00000 n 0000108370 00000 n 0000108451 00000 n 0000108511 00000 n 0000108569 00000 n 0000108650 00000 n 0000108710 00000 n 0000108768 00000 n 0000108837 00000 n 0000108918 00000 n 0000108978 00000 n 0000109036 00000 n 0000109117 00000 n 0000109177 00000 n 0000109235 00000 n 0000109304 00000 n 0000109385 00000 n 0000109445 00000 n 0000109503 00000 n 0000109584 00000 n 0000109644 00000 n 0000109702 00000 n 0000109771 00000 n 0000109852 00000 n 0000109912 00000 n 0000109970 00000 n 0000110051 00000 n 0000110111 00000 n 0000110169 00000 n 0000110238 00000 n 0000110319 00000 n 0000110379 00000 n 0000110437 00000 n 0000110518 00000 n 0000110578 00000 n 0000110636 00000 n 0000110762 00000 n 0000110843 00000 n 0000110903 00000 n 0000110961 00000 n 0000111042 00000 n 0000111102 00000 n 0000111160 00000 n 0000111241 00000 n 0000111301 00000 n 0000111359 00000 n 0000111440 00000 n 0000111500 00000 n 0000111558 00000 n 0000111639 00000 n 0000111699 00000 n 0000111757 00000 n 0000111838 00000 n 0000111898 00000 n 0000111956 00000 n 0000112037 00000 n 0000112097 00000 n 0000112155 00000 n 0000112236 00000 n 0000112296 00000 n 0000112354 00000 n 0000112435 00000 n 0000112495 00000 n 0000112553 00000 n 0000112654 00000 n 0000112735 00000 n 0000112795 00000 n 0000112853 00000 n 0000112934 00000 n 0000112994 00000 n 0000113052 00000 n 0000113133 00000 n 0000113193 00000 n 0000113251 00000 n 0000113332 00000 n 0000113392 00000 n 0000113450 00000 n 0000113531 00000 n 0000113591 00000 n 0000113649 00000 n 0000113730 00000 n 0000113790 00000 n 0000113848 00000 n 0000113917 00000 n 0000113998 00000 n 0000114058 00000 n 0000114116 00000 n 0000114197 00000 n 0000114257 00000 n 0000114315 00000 n 0000114384 00000 n 0000114465 00000 n 0000114525 00000 n 0000114583 00000 n 0000114664 00000 n 0000114724 00000 n 0000114782 00000 n 0000114851 00000 n 0000114932 00000 n 0000114992 00000 n 0000115050 00000 n 0000115131 00000 n 0000115191 00000 n 0000115249 00000 n 0000115320 00000 n 0000115404 00000 n 0000115465 00000 n 0000115524 00000 n 0000115608 00000 n 0000115669 00000 n 0000115728 00000 n 0000115800 00000 n 0000115885 00000 n 0000115946 00000 n 0000116005 00000 n 0000116090 00000 n 0000116151 00000 n 0000116210 00000 n 0000116282 00000 n 0000116367 00000 n 0000116428 00000 n 0000116487 00000 n 0000116572 00000 n 0000116633 00000 n 0000116692 00000 n 0000116939 00000 n 0000117076 00000 n 0000117161 00000 n 0000117222 00000 n 0000117281 00000 n 0000117366 00000 n 0000117427 00000 n 0000117486 00000 n 0000117571 00000 n 0000117632 00000 n 0000117691 00000 n 0000117776 00000 n 0000117837 00000 n 0000117896 00000 n 0000117981 00000 n 0000118042 00000 n 0000118101 00000 n 0000118186 00000 n 0000118247 00000 n 0000118306 00000 n 0000118391 00000 n 0000118452 00000 n 0000118511 00000 n 0000118596 00000 n 0000118657 00000 n 0000118716 00000 n 0000118801 00000 n 0000118862 00000 n 0000118921 00000 n 0000118994 00000 n 0000119079 00000 n 0000119140 00000 n 0000119199 00000 n 0000119284 00000 n 0000119345 00000 n 0000119404 00000 n 0000119532 00000 n 0000119617 00000 n 0000119678 00000 n 0000119737 00000 n 0000119822 00000 n 0000119883 00000 n 0000119942 00000 n 0000120027 00000 n 0000120088 00000 n 0000120147 00000 n 0000120232 00000 n 0000120293 00000 n 0000120352 00000 n 0000120437 00000 n 0000120498 00000 n 0000120557 00000 n 0000120642 00000 n 0000120703 00000 n 0000120762 00000 n 0000120847 00000 n 0000120908 00000 n 0000120967 00000 n 0000121052 00000 n 0000121113 00000 n 0000121172 00000 n 0000121263 00000 n 0000121348 00000 n 0000121409 00000 n 0000121468 00000 n 0000121553 00000 n 0000121614 00000 n 0000121673 00000 n 0000121758 00000 n 0000121819 00000 n 0000121878 00000 n 0000121963 00000 n 0000122024 00000 n 0000122083 00000 n 0000122156 00000 n 0000122241 00000 n 0000122302 00000 n 0000122361 00000 n 0000122446 00000 n 0000122507 00000 n 0000122566 00000 n 0000122648 00000 n 0000122733 00000 n 0000122794 00000 n 0000122853 00000 n 0000122938 00000 n 0000122999 00000 n 0000123058 00000 n 0000123143 00000 n 0000123204 00000 n 0000123263 00000 n 0000123336 00000 n 0000123421 00000 n 0000123482 00000 n 0000123541 00000 n 0000123626 00000 n 0000123687 00000 n 0000123746 00000 n 0000123819 00000 n 0000123904 00000 n 0000123965 00000 n 0000124024 00000 n 0000124109 00000 n 0000124170 00000 n 0000124229 00000 n 0000124302 00000 n 0000124387 00000 n 0000124448 00000 n 0000124507 00000 n 0000124592 00000 n 0000124653 00000 n 0000124712 00000 n 0000124785 00000 n 0000124870 00000 n 0000124931 00000 n 0000124990 00000 n 0000125075 00000 n 0000125136 00000 n 0000125195 00000 n 0000125268 00000 n 0000125353 00000 n 0000125414 00000 n 0000125473 00000 n 0000125558 00000 n 0000125619 00000 n 0000125678 00000 n 0000125815 00000 n 0000125900 00000 n 0000125961 00000 n 0000126020 00000 n 0000126105 00000 n 0000126166 00000 n 0000126225 00000 n 0000126310 00000 n 0000126371 00000 n 0000126430 00000 n 0000126515 00000 n 0000126576 00000 n 0000126635 00000 n 0000126720 00000 n 0000126781 00000 n 0000126840 00000 n 0000126925 00000 n 0000126986 00000 n 0000127045 00000 n 0000127130 00000 n 0000127191 00000 n 0000127250 00000 n 0000127335 00000 n 0000127396 00000 n 0000127455 00000 n 0000127540 00000 n 0000127601 00000 n 0000127660 00000 n 0000127769 00000 n 0000127854 00000 n 0000127915 00000 n 0000127974 00000 n 0000128059 00000 n 0000128120 00000 n 0000128179 00000 n 0000128264 00000 n 0000128325 00000 n 0000128384 00000 n 0000128469 00000 n 0000128530 00000 n 0000128589 00000 n 0000128674 00000 n 0000128735 00000 n 0000128794 00000 n 0000128879 00000 n 0000128940 00000 n 0000128999 00000 n 0000129072 00000 n 0000129157 00000 n 0000129218 00000 n 0000129277 00000 n 0000129362 00000 n 0000129423 00000 n 0000129482 00000 n 0000129591 00000 n 0000129676 00000 n 0000129737 00000 n 0000129796 00000 n 0000129881 00000 n 0000129942 00000 n 0000130001 00000 n 0000130086 00000 n 0000130147 00000 n 0000130206 00000 n 0000130291 00000 n 0000130352 00000 n 0000130411 00000 n 0000130496 00000 n 0000130557 00000 n 0000130616 00000 n 0000130701 00000 n 0000130762 00000 n 0000130821 00000 n 0000130894 00000 n 0000130979 00000 n 0000131040 00000 n 0000131099 00000 n 0000131184 00000 n 0000131245 00000 n 0000131304 00000 n 0000131377 00000 n 0000131462 00000 n 0000131523 00000 n 0000131582 00000 n 0000131667 00000 n 0000131728 00000 n 0000131787 00000 n 0000131896 00000 n 0000131981 00000 n 0000132042 00000 n 0000132101 00000 n 0000132186 00000 n 0000132247 00000 n 0000132306 00000 n 0000132391 00000 n 0000132452 00000 n 0000132511 00000 n 0000132596 00000 n 0000132657 00000 n 0000132716 00000 n 0000132801 00000 n 0000132862 00000 n 0000132921 00000 n 0000133006 00000 n 0000133067 00000 n 0000133126 00000 n 0000133199 00000 n 0000133284 00000 n 0000133345 00000 n 0000133404 00000 n 0000133489 00000 n 0000133550 00000 n 0000133609 00000 n 0000133746 00000 n 0000133874 00000 n 0000133959 00000 n 0000134020 00000 n 0000134078 00000 n 0000134163 00000 n 0000134224 00000 n 0000134282 00000 n 0000134367 00000 n 0000134428 00000 n 0000134486 00000 n 0000134571 00000 n 0000134632 00000 n 0000134690 00000 n 0000134775 00000 n 0000134836 00000 n 0000134894 00000 n 0000134979 00000 n 0000135040 00000 n 0000135098 00000 n 0000135183 00000 n 0000135244 00000 n 0000135302 00000 n 0000135387 00000 n 0000135448 00000 n 0000135506 00000 n 0000135579 00000 n 0000135664 00000 n 0000135725 00000 n 0000135784 00000 n 0000135869 00000 n 0000135930 00000 n 0000135989 00000 n 0000136098 00000 n 0000136183 00000 n 0000136244 00000 n 0000136303 00000 n 0000136388 00000 n 0000136449 00000 n 0000136508 00000 n 0000136593 00000 n 0000136654 00000 n 0000136713 00000 n 0000136798 00000 n 0000136859 00000 n 0000136918 00000 n 0000137003 00000 n 0000137064 00000 n 0000137123 00000 n 0000137208 00000 n 0000137269 00000 n 0000137328 00000 n 0000137401 00000 n 0000137486 00000 n 0000137547 00000 n 0000137606 00000 n 0000137691 00000 n 0000137752 00000 n 0000137811 00000 n 0000137939 00000 n 0000138024 00000 n 0000138085 00000 n 0000138143 00000 n 0000138228 00000 n 0000138289 00000 n 0000138347 00000 n 0000138432 00000 n 0000138493 00000 n 0000138551 00000 n 0000138636 00000 n 0000138697 00000 n 0000138755 00000 n 0000138840 00000 n 0000138901 00000 n 0000138959 00000 n 0000139044 00000 n 0000139105 00000 n 0000139163 00000 n 0000139248 00000 n 0000139309 00000 n 0000139367 00000 n 0000139452 00000 n 0000139513 00000 n 0000139571 00000 n 0000139699 00000 n 0000139784 00000 n 0000139845 00000 n 0000139904 00000 n 0000139989 00000 n 0000140050 00000 n 0000140109 00000 n 0000140194 00000 n 0000140255 00000 n 0000140314 00000 n 0000140399 00000 n 0000140460 00000 n 0000140519 00000 n 0000140604 00000 n 0000140665 00000 n 0000140724 00000 n 0000140809 00000 n 0000140870 00000 n 0000140929 00000 n 0000141014 00000 n 0000141075 00000 n 0000141134 00000 n 0000141219 00000 n 0000141280 00000 n 0000141339 00000 n 0000141421 00000 n 0000141506 00000 n 0000141567 00000 n 0000141626 00000 n 0000141711 00000 n 0000141772 00000 n 0000141831 00000 n 0000141916 00000 n 0000141977 00000 n 0000142036 00000 n 0000142201 00000 n 0000142329 00000 n 0000142414 00000 n 0000142475 00000 n 0000142533 00000 n 0000142618 00000 n 0000142679 00000 n 0000142737 00000 n 0000142822 00000 n 0000142883 00000 n 0000142941 00000 n 0000143026 00000 n 0000143087 00000 n 0000143145 00000 n 0000143230 00000 n 0000143291 00000 n 0000143349 00000 n 0000143434 00000 n 0000143495 00000 n 0000143553 00000 n 0000143638 00000 n 0000143699 00000 n 0000143757 00000 n 0000143842 00000 n 0000143903 00000 n 0000143961 00000 n 0000144089 00000 n 0000144174 00000 n 0000144235 00000 n 0000144294 00000 n 0000144379 00000 n 0000144440 00000 n 0000144499 00000 n 0000144584 00000 n 0000144645 00000 n 0000144704 00000 n 0000144789 00000 n 0000144850 00000 n 0000144909 00000 n 0000144994 00000 n 0000145055 00000 n 0000145114 00000 n 0000145199 00000 n 0000145260 00000 n 0000145319 00000 n 0000145404 00000 n 0000145465 00000 n 0000145524 00000 n 0000145609 00000 n 0000145670 00000 n 0000145729 00000 n 0000145811 00000 n 0000145896 00000 n 0000145957 00000 n 0000146016 00000 n 0000146101 00000 n 0000146162 00000 n 0000146221 00000 n 0000146306 00000 n 0000146367 00000 n 0000146426 00000 n 0000146554 00000 n 0000146639 00000 n 0000146700 00000 n 0000146758 00000 n 0000146843 00000 n 0000146904 00000 n 0000146962 00000 n 0000147047 00000 n 0000147108 00000 n 0000147166 00000 n 0000147251 00000 n 0000147312 00000 n 0000147370 00000 n 0000147455 00000 n 0000147516 00000 n 0000147574 00000 n 0000147659 00000 n 0000147720 00000 n 0000147778 00000 n 0000147863 00000 n 0000147924 00000 n 0000147982 00000 n 0000148067 00000 n 0000148128 00000 n 0000148186 00000 n 0000148259 00000 n 0000148344 00000 n 0000148405 00000 n 0000148464 00000 n 0000148549 00000 n 0000148610 00000 n 0000148669 00000 n 0000148769 00000 n 0000148854 00000 n 0000148915 00000 n 0000148974 00000 n 0000149059 00000 n 0000149120 00000 n 0000149179 00000 n 0000149264 00000 n 0000149325 00000 n 0000149384 00000 n 0000149469 00000 n 0000149530 00000 n 0000149589 00000 n 0000149674 00000 n 0000149735 00000 n 0000149794 00000 n 0000149867 00000 n 0000149952 00000 n 0000150013 00000 n 0000150072 00000 n 0000150157 00000 n 0000150218 00000 n 0000150277 00000 n 0000150405 00000 n 0000150490 00000 n 0000150551 00000 n 0000150609 00000 n 0000150694 00000 n 0000150755 00000 n 0000150813 00000 n 0000150898 00000 n 0000150959 00000 n 0000151017 00000 n 0000151102 00000 n 0000151163 00000 n 0000151221 00000 n 0000151306 00000 n 0000151367 00000 n 0000151425 00000 n 0000151510 00000 n 0000151571 00000 n 0000151629 00000 n 0000151714 00000 n 0000151775 00000 n 0000151833 00000 n 0000151918 00000 n 0000151979 00000 n 0000152037 00000 n 0000152165 00000 n 0000152250 00000 n 0000152311 00000 n 0000152370 00000 n 0000152455 00000 n 0000152516 00000 n 0000152575 00000 n 0000152660 00000 n 0000152721 00000 n 0000152780 00000 n 0000152865 00000 n 0000152926 00000 n 0000152985 00000 n 0000153070 00000 n 0000153131 00000 n 0000153190 00000 n 0000153275 00000 n 0000153336 00000 n 0000153395 00000 n 0000153480 00000 n 0000153541 00000 n 0000153600 00000 n 0000153685 00000 n 0000153746 00000 n 0000153805 00000 n 0000153887 00000 n 0000153972 00000 n 0000154033 00000 n 0000154092 00000 n 0000154177 00000 n 0000154238 00000 n 0000154297 00000 n 0000154382 00000 n 0000154443 00000 n 0000154502 00000 n 0000154594 00000 n 0000154654 00000 n 0000154767 00000 n 0000154828 00000 n 0000154887 00000 n 0000154947 00000 n 0000155032 00000 n 0000155093 00000 n 0000155152 00000 n 0000155223 00000 n 0000155281 00000 n 0000155339 00000 n 0000155428 00000 n 0000155487 00000 n 0000155546 00000 n 0000155605 00000 n 0000155664 00000 n 0000155768 00000 n 0000155898 00000 n 0000155954 00000 n 0000157465 00000 n 0000158610 00000 n 0000159438 00000 n 0000159575 00000 n 0000159672 00000 n 0000159757 00000 n 0000159898 00000 n 0000160041 00000 n 0000160184 00000 n 0000160327 00000 n 0000160468 00000 n 0000160618 00000 n 0000160770 00000 n 0000160803 00000 n 0000160851 00000 n 0000001592 00001 f 0000161091 00000 n 0000001635 00001 f 0000161194 00000 n 0000161555 00000 n 0000161695 00000 n 0000162177 00000 n 0000162415 00000 n 0000162858 00000 n 0000163105 00000 n 0000163713 00000 n 0000163945 00000 n 0000164584 00000 n 0000164810 00000 n 0000165278 00000 n 0000165309 00000 n 0000165352 00000 n 0000165375 00000 n 0000166201 00000 n 0000166224 00000 n 0000166915 00000 n 0000167226 00000 n 0000167385 00000 n 0000167408 00000 n 0000168146 00000 n 0000168169 00000 n 0000168811 00000 n 0000168834 00000 n 0000169509 00000 n 0000169532 00000 n 0000170223 00000 n 0000170246 00000 n 0000170899 00000 n 0000245768 00000 n 0000245791 00000 n 0000246514 00000 n 0000274338 00000 n 0000274418 00000 n 0000274659 00000 n 0000274867 00000 n 0000314283 00000 n 0000327739 00000 n 0000334529 00000 n 0000355545 00000 n 0000355754 00000 n 0000001636 00001 f 0000000000 00001 f 0000356139 00000 n 0000356202 00000 n 0000356383 00000 n trailer << /Size 1640 /Info 1589 0 R /Root 1593 0 R /ID[<8e51ef209f5a9d0dfc35c49c5425dfe0>] >> startxref 357766 %%EOF 1589 0 obj << /Producer (Acrobat Distiller 5.0 \(Windows\)) /Creator (Acrobat PDFMaker 5.0 for Word) /ModDate (D:20040412103129-08'00') /Title (TouchPad Interfacing Guide Addendum: Multiple-Button Support Specificati\ on) /CreationDate (D:20040412102813-08'00') /Subject (TouchPad ) /Author (Synaptics) /Keywords (P/N 511-000024-01 Rev. A) >> endobj 1590 1 obj << /Type /Metadata /Subtype /XML /Length 1460 >> stream 2004-04-12T10:28:13-08:00 2004-04-12T10:31:29-08:00 Acrobat Distiller 5.0 (Windows) Acrobat PDFMaker 5.0 for Word TouchPad Interfacing Guide Addendum: Multiple-Button Support Specification TouchPad Synaptics P/N 511-000024-01 Rev. A 2004-04-12T18:28:13Z 2004-04-12T18:28:13Z 2004-04-12T10:31:29-08:00 Application Note / White Paper Style Guide Application Note / White Paper Style Guide endstream endobj 1593 0 obj << /Type /Catalog /Pages 1591 0 R /Metadata 1590 1 R /Outlines 24 0 R /MarkInfo << /Marked true /LetterspaceFlags 0 >> /PageMode /UseNone /PageLabels 1588 0 R /StructTreeRoot 1594 0 R /PieceInfo << /MarkedPDF << /LastModified (D:20040412102826)>> >> /LastModified (D:20040412102826) >> endobj xref 0 1 0000001592 65535 f 1589 2 0000390733 00000 n 0000391085 00001 n 1593 1 0000392632 00000 n trailer << /Size 1640 /Info 1589 0 R /Root 1593 0 R /Prev 357766 /ID[<775ea800c2fd14356bbde5ba9d220ec3>] >> startxref 392947 %%EOF gpm-1.20.7/doc/specs/synaptics/www.synaptics.com/decaf/utilities/ACF126.pdf000066400000000000000000017060001204257734200263040ustar00rootroot00000000000000%PDF-1.2 %âãÏÓ 763 0 obj << /Linearized 1 /O 765 /H [ 1435 1181 ] /L 494555 /E 15256 /N 91 /T 479176 >> endobj xref 763 45 0000000016 00000 n 0000001251 00000 n 0000002616 00000 n 0000002895 00000 n 0000003041 00000 n 0000003188 00000 n 0000003335 00000 n 0000003482 00000 n 0000003629 00000 n 0000003775 00000 n 0000003994 00000 n 0000004181 00000 n 0000004644 00000 n 0000004833 00000 n 0000005528 00000 n 0000005715 00000 n 0000006096 00000 n 0000006284 00000 n 0000006397 00000 n 0000006781 00000 n 0000006962 00000 n 0000006984 00000 n 0000007713 00000 n 0000007735 00000 n 0000008465 00000 n 0000009037 00000 n 0000009232 00000 n 0000009254 00000 n 0000009930 00000 n 0000010523 00000 n 0000010720 00000 n 0000010742 00000 n 0000011531 00000 n 0000011553 00000 n 0000012274 00000 n 0000012672 00000 n 0000012873 00000 n 0000012895 00000 n 0000013563 00000 n 0000013585 00000 n 0000014140 00000 n 0000014162 00000 n 0000014642 00000 n 0000001435 00000 n 0000002593 00000 n trailer << /Size 808 /Info 751 0 R /Root 764 0 R /Prev 479165 /ID[<365a89889ff20675953961862f695481><365a89889ff20675953961862f695481>] >> startxref 0 %%EOF 764 0 obj << /Type /Catalog /Pages 753 0 R /Outlines 666 0 R /OpenAction [ 765 0 R /XYZ null null null ] /PageMode /UseNone /PageLabels << /Nums [ 0 << /S /D >> ] >> >> endobj 806 0 obj << /S 1747 /O 1849 /Filter /FlateDecode /Length 807 0 R >> stream H‰ÌTklZe~9¥-öœ¶°&Ûvl“n¡É!PÄ„»ÀDY«½ YÅR»n™q ]«™£µYë˜dÒní.ŠÓQšŒC¤6Ìõ"ôâÒjbŠüÔ±3õ;çÀ9tÕÿ~áÀó½ç}ŸïyÞ÷ PPè‡"Š@ÜB!ŠòAào–É `Ÿ¸WW%ë-SôŠI ¬Ê­ã¿RÈ—Í€ø Ü»ð^¾Ø ð®öWñ¢âгª1£üës5ð…ðÆÔòÐ µì¯ã/ïÕnªî–Í«O·ÕT6ž<ð(­|Ô4ûLÝŸ-–Ã'÷ýêl‰P9:RxÈúøüÒô È°ÛÿjËÀGO5F^#š”éß»/‹nïøm׋g¤?5Zù©áÅYý½_&ß\¾Ú¾üãæ qUÕô•ÍÖ/õï„Kcûû+ïÇ0F¿jé_=rJvåTrâ¹÷å“Çr½ör{.:máq§ùÈJpÏÛ«SÁëŽÕ• Ëlö^7Hn"´;-GgÂvsÛlð´ :-M¿6É$~ôBZ“)¯—\ ÐÛÚ‰´&” “;;}"yªY1uÑÜçÑÆÚõ6àÁBCåN{Ï5*_êd4Þ`õgµ­#mŽ?>=´ÖIŸØ†¼#‘»+á]Íòa×øjà–\ºã’æ¦ó/Íg›“+aæua•óÅM|NÕo®eFð¡‘<Ý” s¯iSr*Á }i¡¾·Ûîp$¬Ó-3Íwô,1áÏüßrãÛvr%\׫ÔÛÅ^Q:Á4‘¦Çm6¡q‡Î«biúºÊV7õ+@N!^5%(È7@.ŠÕQ~_ACuRïuîl=dª€ Òô ?MU É’Òœ8N(æURQP²ZW²j€ 4Òu€œF^Íâ¼0VC˰±2l,$”j7+Œþ¢êX¯Œ•¬ ®%Œ6wíž9¡€SŸ¯‡ 3PMg㎛æËKlEÔѼ ‚kèW×U&гÑm0[†ø”šÿû?9ß!°=$’B™XüNñw§©Oô›’æÛ%o–4¿^Òa‘>,Ø Ñìƒ'?¿ Øß€Mïp‡{0 ð¾-8©PlD/•ô@va>(®Ž#Ð °×ûÎõs› endstream endobj 807 0 obj 1062 endobj 765 0 obj << /Type /Page /Parent 752 0 R /Resources 772 0 R /Contents [ 784 0 R 786 0 R 790 0 R 794 0 R 796 0 R 800 0 R 802 0 R 804 0 R ] /Annots [ 766 0 R 767 0 R 768 0 R 769 0 R 770 0 R 771 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 766 0 obj << /Dest [ 91 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 480 408 488 422 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 767 0 obj << /Dest [ 226 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 329 336 343 350 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 768 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 265 300 279 314 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 769 0 obj << /Dest [ 428 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 491 278 505 292 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 770 0 obj << /Dest [ 466 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 479 110 493 124 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 771 0 obj << /Dest [ 501 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 222 88 236 102 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 772 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT6 781 0 R /TT8 787 0 R /TT10 791 0 R /TT12 797 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 773 0 obj << /Type /FontDescriptor /Ascent 905 /CapHeight 0 /Descent -211 /Flags 32 /FontBBox [ -628 -376 2034 1048 ] /FontName /Arial,Bold /ItalicAngle 0 /StemV 133 >> endobj 774 0 obj << /Type /Font /Subtype /TrueType /FirstChar 32 /LastChar 121 /Widths [ 278 0 0 0 0 0 0 0 0 0 0 0 0 333 278 278 0 556 556 556 556 556 556 556 0 0 333 0 0 0 0 0 0 722 722 722 722 667 611 778 722 278 0 0 0 833 0 778 667 0 722 667 611 0 0 0 0 0 0 0 0 0 0 0 0 556 611 556 611 556 333 611 611 278 0 556 278 889 611 611 611 611 389 556 333 611 556 778 556 556 ] /Encoding /WinAnsiEncoding /BaseFont /Arial,Bold /FontDescriptor 773 0 R >> endobj 775 0 obj << /Type /FontDescriptor /Ascent 905 /CapHeight 0 /Descent -211 /Flags 96 /FontBBox [ -517 -325 1082 1025 ] /FontName /Arial,Italic /ItalicAngle -15 /StemV 0 >> endobj 776 0 obj << /Type /Font /Subtype /TrueType /FirstChar 32 /LastChar 190 /Widths [ 250 0 0 500 500 833 778 0 333 333 0 564 250 333 250 278 500 500 500 500 500 500 500 500 500 500 278 278 0 564 564 444 921 722 667 667 722 611 556 722 722 333 389 722 611 889 722 722 556 722 667 556 611 722 722 944 722 722 611 0 0 0 0 0 0 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500 500 500 333 389 278 500 500 722 500 500 444 0 0 0 541 0 0 0 0 0 0 1000 0 0 0 0 0 0 0 0 0 0 0 333 333 444 444 0 500 1000 0 980 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 0 0 0 0 0 760 0 400 0 0 0 0 0 0 0 0 0 0 0 750 0 750 ] /Encoding /WinAnsiEncoding /BaseFont /TimesNewRoman /FontDescriptor 779 0 R >> endobj 777 0 obj << /Type /Encoding /Differences [ 1 /copyrightserif /bullet /space /Delta /plusminus /greaterequal /degree /multiply /Omega /mu /minus /lessequal /arrowhorizex ] >> endobj 778 0 obj << /Filter /FlateDecode /Length 306 >> stream H‰T‘Ënƒ0E÷|Å,Suí$$‘‹&”E*M÷Æ"¤`!‹ü}} ÔWã3ã;éþt8¹f¤ôÓw¦ä‘êÆYÏCwó†©âKãH*²çSTÓêžÒÐ\Þ‡‘Û“«;Êó$ý ÉaôwZ”÷¶ê®Ïâ‰ÒoÙ7îB‹oyþ  ¼õý•[v# * ²\'éþM÷ïºåž[#—ó…å¡×†½v¦\È"ˆ-ˆýŸKärj©êé<×BŽÙaW  J(°ˆ"”X!†(%2€5@ñ"2ÄY¬ÈÖ€ÍTglG‡ À1DI‡j=µÄâ*•ñÇ €™nYØùÝùqû††çÿ½N`-#ÍÍûàqÜ]´†6Žëí»þáK~øÊ“6 endstream endobj 779 0 obj << /Type /FontDescriptor /Ascent 891 /CapHeight 0 /Descent -216 /Flags 34 /FontBBox [ -568 -307 2028 1007 ] /FontName /TimesNewRoman /ItalicAngle 0 /StemV 0 >> endobj 780 0 obj << /Type /Font /Subtype /Type1 /Encoding 777 0 R /BaseFont /Symbol /ToUnicode 778 0 R >> endobj 781 0 obj << /Type /Font /Subtype /TrueType /FirstChar 32 /LastChar 116 /Widths [ 278 0 0 0 0 0 0 0 0 0 0 0 0 333 0 0 556 556 0 0 0 556 0 0 556 0 0 0 0 0 0 0 0 667 0 0 0 667 0 0 0 0 0 0 0 0 0 0 0 0 0 667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 556 556 0 0 0 222 0 0 0 0 556 556 0 0 0 0 278 ] /Encoding /WinAnsiEncoding /BaseFont /Arial,Italic /FontDescriptor 775 0 R >> endobj 782 0 obj [ /CalRGB << /WhitePoint [ 0.9505 1 1.089 ] /Gamma [ 2.22221 2.22221 2.22221 ] /Matrix [ 0.4124 0.2126 0.0193 0.3576 0.71519 0.1192 0.1805 0.0722 0.9505 ] >> ] endobj 783 0 obj 649 endobj 784 0 obj << /Filter /FlateDecode /Length 783 0 R >> stream H‰„TKOÜ0V¯þs´«×ï7 Tß*Q6,©Ô]”]@üûŽc'ph©VòŽíñ<¾ï›œ%²NI„tO¤ä1Fø«f\h­@ ~“õùÁBw˜¼:²¾¼•°=t2BꈀôB~Òóý#k—ô•) GGfpX#×tËrúÀòzv—®Éúk­ÄpÁÓ—ª#ôK¿ÞÕ)¸åºÉI…ž’V+g…¥Üb*Ãæ—‘{º«™[Ö8néãqè+ȇôŠ)õΣãPÎqUQP+EƒÑEÐÀii*;Èà½i·,‡ï™Æ¨XáÔÊE" !p5XÅ­P`´áÁÀº½‚±'÷älbÀT<Âl¡ Ú3.JnL0™±ÀŒu 6Šç<4Š›°à"ÕŒ‹6—ÛW°½Ò¦A $wIÒXþ±~Äs/öåâ©{(Æ Ã°‘¶›²…«]}Ù÷m7ÔݶÞ^>c¨î}¥8%W{5ØW¥×j+ëyˆ›U¦627[H–s3¦’üF ‹VHÑ™ðÓ’ ½â•ûòÊMrÊ‘XfTún¿Û ‡šÂÅfÀ@†ûÝRôGÄzË òoôt‰zzUÍ啳ܨó«âûA‘SoˆøEö¾ÜØ·Ç~s‚L¢ &ñj'¨â"‹Õ A¿µc÷€(¯@¢¶*J i—i«Óû£ˆÀ CNj*Dzs¬ëIEU¤qÝ=µ#k|žuVyEÉ>c¼›qØåârU6”Ñòöã0J­Ê(Ï,˜KgFÉx´;÷†Sý<(m«r$‡ïÏHs ýXþñ£dPüý´yÁŠ|»û#À¼öÞ endstream endobj 785 0 obj 650 endobj 786 0 obj << /Filter /FlateDecode /Length 785 0 R >> stream H‰\TËrœ0¬JnûsD©#Ø]CΩrJ•¹Å9ÈBR€(!¼ñß§õ`c»ö°zôôôôŒ j~ NMwà<«ëšrüâ²Î³¼, :ËŒŸª’šéâ,çXÊþº~%M?°´ÌÎÉÊÒ"ã =³*»O6–ò¬Lâ]vŠZw8É \˜xR+õúÊÒÚQH=…ãe³a¡ÌJbnIÇ}¯ ð;—}¯ rÎ!éÎòuB*ŠG:öm¿‹|ÏD¯Œ»Rf±Dˆ¹ûÚWjô&ûŸ,u`ÑfDì7Œm¾¯òÓî•[¯uƒY-­JÚAÏÑžà,³üxR,½d°[ CÑPyòÌjÜ(œ#Έq„ÞËW}dÈ~‚ ³·v˜CéE–ÞãFøx{»™œ.bŽÔ)a·ˆtû÷%·’ŠPš`‘Ê*#|Eˆp}Z\cÑ›“ëBîÊ–=ÖÝMHá…\u¤ë`{šÄì¥Îú:«ê‡Õj3HW+”4k ©#nZ„ …¬ÇV ù ûr“} ²_0PN­ä|FËù =õy½hÐ_¼Â"Yì C›`ë­#^±‹]ŒZ}Þ*‹’HÏêH1 ³ñ˜<(ú¸ˆg…ÓGdæ„Á«`è·8#ÕˆÀîuÜD‰Ô‰i½ÙÕ@ë¶,ÚX¼zyWŠ”õÓRùi,F[-õ¸R§MPˆ8mó E}½ÿõòsÐëðC€> endobj 788 0 obj << /Type /FontDescriptor /Ascent 891 /CapHeight 0 /Descent -216 /Flags 34 /FontBBox [ -558 -307 2034 1026 ] /FontName /TimesNewRoman,Bold /ItalicAngle 0 /StemV 133 >> endobj 789 0 obj 596 endobj 790 0 obj << /Filter /FlateDecode /Length 789 0 R >> stream H‰¬TMoÔ0•à¶¿b޶DÜØŽ7鱨B ±¹Qnâ6ì:Z;­øðƒlvUõÀ“?2Ïóæ½™lH; íÍUÛ6À¡}ØpÖp(¡½Ý%+yÙ@Ûm¾‘/;ZðŠÕä WIýÞ~ (qB]WgTYVuÚ=#æ£õ¶³Œ> endobj 792 0 obj << /Type /FontDescriptor /Ascent 891 /CapHeight 0 /Descent -216 /Flags 98 /FontBBox [ -498 -307 1120 1023 ] /FontName /TimesNewRoman,Italic /ItalicAngle -15 /StemV 0 >> endobj 793 0 obj 709 endobj 794 0 obj << /Filter /FlateDecode /Length 793 0 R >> stream H‰”TËnÛ0¼ç+öH#Jò#ÇA Àºµ=Ð]±Eƒ¤íäï»KÒN‚öÒ‹ÀÇîpggGý·›*)äúÇ›ïl>î·ÆƒÛAïŽz|V¯d-V¬ ëÓvg5˜—t¼fÑÌÁº9€~´øOD¼ë{Yƒ„~w#ï…ì &pühúœoØ×£ ïSd“Ñ•¸ªu]·)º¬ÎX &ho·&@ ¾9=þqFŠaòÛÙËl°†Íê­âÏé×¶–×i,{r!Ä#áù§L@W4ò )D³™zÿ„cƒ·èm®üúv1׊üÂÛ4Ø#üÃ8æ.ÄtH£yNvôd±? |dlV endstream endobj 795 0 obj 641 endobj 796 0 obj << /Filter /FlateDecode /Length 795 0 R >> stream H‰tTMoœ0½ï¯˜£-Ç6ßÇJ‘¢Tªi‘zÈöà€7¸%€0ÙmþTcÇ6Ë’D½àÏ{̼y6@õmÇ!L¤PÝî8㜗PÕ»èžw¤Ó4a99…¥cûáHcV’™"6&gåw&ÿ-dAC£’ ò:Œ:$YÊqΦëàiA¼ ïL?ëO´vù¶°cÌí ?±››ª*@@uÜɘñø¥/»¾xè¨^kš!Aû@EŒ«j.hÐ ‹ËìpÈ^ýÚs&Ó°í•…'_"÷‡ÛÉœ°×¨ ðõ–äþ^n‚ꉋè_@œ´æ™ºV[”š£‘'ŠbÉÒëàÇZ/.ƒ;éÎ 9rRk”KÍðÝÔÓà Òdd8ÎðÃåŤo†³õ*ËKå°„2/X–æ),BàZ½‘¼¸ä¯SJV–¥G-¡,‡!3\Súv Æ±£QâJIH­æ5z µêáÕb#þƒ+5ö/ŠJò[ƒë zR=Fn7l>kŽ <±Pt°O$2&åGaÓUØ4ThG]Õz2™¶Ž{dKXBÞpf)éÕ8›Ú‚³[û P}ƒi^ø”l³Å6½Y&ŠC&ÎGÏÜì52tº_°þÑõ”Çì@Cñþ$r­[ŠëT*,î½…1õz:xâRÉ-˜tò8MkÕôvsß7úÏûflkž­eËdT®Ì‚8û&Øl^ú¶2‚å6úhúåUãñ–Äâd:/á¬ël{S£ÆhÞl‹¾ÐaOM€†Cäq4˜aìz¾^Åöœ‰ë-@î^M£ŠòO€øy67 endstream endobj 797 0 obj << /Type /Font /Subtype /TrueType /FirstChar 32 /LastChar 121 /Widths [ 250 0 0 0 0 0 0 0 0 0 0 0 250 0 250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 389 0 0 0 0 0 0 0 0 0 556 0 0 0 0 0 0 0 0 0 0 0 0 0 556 0 444 0 0 0 0 0 333 0 0 0 0 556 0 556 0 0 444 389 0 0 0 0 556 ] /Encoding /WinAnsiEncoding /BaseFont /BookAntiqua,BoldItalic /FontDescriptor 798 0 R >> endobj 798 0 obj << /Type /FontDescriptor /Ascent 923 /CapHeight 0 /Descent -282 /Flags 98 /FontBBox [ -178 -340 1192 1032 ] /FontName /BookAntiqua,BoldItalic /ItalicAngle -15 /StemV 133 >> endobj 799 0 obj 588 endobj 800 0 obj << /Filter /FlateDecode /Length 799 0 R >> stream H‰\“Ën1 E÷þ -¥"£’õÚ¶ifÛÙ5]F¸pœ")úøû^‰²ëf3#qx/I1›·ë ›õ~|n†Ìz½Ác·±Æ­ßú1Ïó¥úbbõIzÌBž(ÄyZýÚ|±ŸÝ’=Û?ýìq«Ûïºýá–ˆÝ~÷re>õhçûºÞ\ø¨¾µà„Ì\ ‰ç\LH=Í”ºº *bu ÅæK¾Ú;×|´ÏX»wœ}±Ç 1×®`;Ï~*ìñbÕ™…= „{Oº Ÿ¹Îz·&íÑÜ Y¶OŸdû26wãèʼ‡‚X <ìïWÔýôìþŽ{åÆq„Ñ–30ÇùV'뛡ßLý(ªk]Frqd©§[±¼uƒQdqÜP.±2¦Ë"KŒ§"ó¿¦Õø¸ESªýÝ;T¬dÂ[¨B†ÛPéÑá«¢B¶U…ÜTæÃº Ã/Ù"ßB5 ÁWîM“j ìÛˆ‰>×2I‰ ]g’ÇW¸St"Ò:Á@óÿ1(—™ÑWž$xIÀHëZ,£‡áYXIËJp6Hö$'RGžâÃ$iæÁß2¿Ê¾v‡˜Až1Eý4-(iڟﵓHa’è«('4óDÔ,©“⩦N˜|*à‡ÍJp—Z'èÆ$ÑÓ$U”à+bJ¤sAí2bZ~Mà`8Œª%4aõÊ¡L?èó¬‹A´v>×®}.ç> §ÙÞÕq[.æuê> stream H‰”“±Ž\1Eûù ×)¶1àzº•RM¥‹RD»UŠü~®ýƳ]4Íè< — ¤t+½R6MÆBÅ-½¤•M$ÂÔ‹ƒüúrûzÿÓÒý‘xþ÷[No)§ß‰©Hú›2§oéûN?Œñþ¤ÏŒ™T|ÖÈÔgL%]:2Y e~¯” o"}#ÓטNµØ™9gÊ‹’6Tð&}ÔÊBÌzö Ò5¾M¢Ä²‰Ï<†žƒ´•Ç©­WJ>æŽNƒXè) ƒôð§@»Rá}J.AP+7¶òTô,m#ö6Hfj6ˆÃ Õ‹TâE\‚jI²ÊWAï2cº~&P0 Ö¨%< ãß'…²ôÀçÕW‰ÞóÕ{øl—ÏÌm¹1\ÛrÌk;Ÿ1/;§]÷Öj‹Ý~ÝãvÄüÿö?ÐGCT›[Öéc’VŸäý…„êAÊðsb±sª Y7™S Eá‹o2½?bx]ϳ¾µ "¶œnõÕ!§’á}a¶îIÑ«û í.›Džvy{ìq»~‘íâóUÄàªÕ_ò`k±©Y¡ËÝ—Bíƒ@ÏŒÙ})v¢?vJ±ê¾®Ç0Åäö«pue_³ÐEd¼ú'À#þo endstream endobj 803 0 obj 400 endobj 804 0 obj << /Filter /FlateDecode /Length 803 0 R >> stream H‰\“;vd1Ds¯¢ã 8’¶3±÷»ñÜíôžRñ+½^_Ê‹lΗ%õýú9Ä£ˆí$ƒI.q.2HN‘mE„,‰‘J¥£A&rñ®5|‚l’[k§f1_rP=È ã&;‰ÐñD8}­‡Xjœ„›ø ²Èíƒ`š!M¦QôóáŒÞUü½ztj~{> Dmö;׎WbtÄß&]â´d&qò$Ðrê²1żÛÑ¡l¾‰¿$7¢Þ>¹18›}ÖÂkë~Fö7m²î¼{.™5©?DC¿åþ~/llÔæ 2bMFÌ…diíµrϸ_Íl2ii]yI“ò˜¢’5Òi1ëÔUVÏ“1A?33Ö¯ªéd2ªA_Ï/—H¥½ÎUä&ÙªŸò«1ì¹Èý¬W³1Wt<ɾ>ÈØôœb§ û}<'-MOÞ<ÿjf§÷ñy2ŽIV_ŽsA?W#ù—ƒèÕhn,È®[D$û òÿßצÔÔˆ endstream endobj 805 0 obj << /Type /ExtGState /SA false /SM 0.02 /TR /Identity >> endobj 1 0 obj << /Type /Page /Parent 752 0 R /Resources 55 0 R /Contents 56 0 R /Annots [ 2 0 R 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R 38 0 R 39 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R 47 0 R 48 0 R 49 0 R 50 0 R 51 0 R 52 0 R 53 0 R 54 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 2 0 obj << /Dest [ 765 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 100 674 176 686 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 3 0 obj << /Dest [ 1 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 661 223 673 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 4 0 obj << /Dest [ 91 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 104 645 219 657 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 5 0 obj << /Dest [ 91 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 632 286 644 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 6 0 obj << /Dest [ 94 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 621 194 633 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 7 0 obj << /Dest [ 94 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 610 211 622 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 8 0 obj << /Dest [ 100 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 599 260 611 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 9 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 588 282 600 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 10 0 obj << /Dest [ 109 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 577 258 589 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 11 0 obj << /Dest [ 109 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 566 262 578 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 12 0 obj << /Dest [ 123 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 555 234 567 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 13 0 obj << /Dest [ 123 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 544 262 556 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 14 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 533 222 545 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 15 0 obj << /Dest [ 133 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 522 253 534 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 16 0 obj << /Dest [ 151 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 511 262 523 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 17 0 obj << /Dest [ 159 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 500 226 512 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 18 0 obj << /Dest [ 159 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 489 258 501 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 19 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 478 198 490 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 20 0 obj << /Dest [ 184 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 467 246 479 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 21 0 obj << /Dest [ 184 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 456 261 468 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 22 0 obj << /Dest [ 184 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 445 254 457 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 23 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 434 228 446 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 24 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 423 265 435 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 25 0 obj << /Dest [ 194 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 412 251 424 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 26 0 obj << /Dest [ 194 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 401 275 413 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 27 0 obj << /Dest [ 213 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 390 301 402 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 28 0 obj << /Dest [ 226 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 104 373 199 385 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 29 0 obj << /Dest [ 226 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 361 231 373 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 30 0 obj << /Dest [ 229 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 349 239 361 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 31 0 obj << /Dest [ 233 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 339 227 351 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 32 0 obj << /Dest [ 233 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 328 223 340 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 33 0 obj << /Dest [ 236 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 316 228 328 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 34 0 obj << /Dest [ 242 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 306 298 318 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 35 0 obj << /Dest [ 242 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 295 215 307 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 36 0 obj << /Dest [ 252 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 283 210 295 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 37 0 obj << /Dest [ 270 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 273 311 285 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 38 0 obj << /Dest [ 270 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 262 244 274 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 39 0 obj << /Dest [ 298 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 250 257 262 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 40 0 obj << /Dest [ 298 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 240 213 252 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 41 0 obj << /Dest [ 298 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 229 253 241 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 42 0 obj << /Dest [ 305 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 217 259 229 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 43 0 obj << /Dest [ 318 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 207 243 219 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 44 0 obj << /Dest [ 318 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 196 262 208 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 45 0 obj << /Dest [ 333 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 184 282 196 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 46 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 104 168 204 180 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 47 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 155 231 167 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 48 0 obj << /Dest [ 372 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 144 275 156 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 49 0 obj << /Dest [ 377 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 133 227 145 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 50 0 obj << /Dest [ 377 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 122 215 134 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 51 0 obj << /Dest [ 385 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 111 210 123 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 52 0 obj << /Dest [ 385 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 100 259 112 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 53 0 obj << /Dest [ 388 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 89 282 101 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 54 0 obj << /Dest [ 388 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 78 301 90 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 55 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT8 787 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 56 0 obj << /Length 3190 /Filter /FlateDecode >> stream H‰„WÛnãÈE^õýH§¯$ûq®› 0XcG@vä¦h›YÔHôLæKü ùÍÔ­IÊ90`ŠìKUŸª:uúÍfõj³±Ê¨ÍÍʘ"ƨ4üÉϨ íœU•…®]T›ûÕ«·§ ÚMÓêÔ®^ýòÙ¨ÛÓ æj µ«uúù}õÏìs¾6®¨³¹Õ…ÉöÍaìaùfxhﮚ­Ê×Vgs˜ƒ9N»|]ÂóxÓ´ý>_Ç"f·¹Á!õËC¿å/®´°žÆ”FgŸ»vØoÕûm?öÃ^åÿÚümõ~³2ªW«º.BtpSë•w¾¨½WàieÕ±[ݬÞl^ÀÕEô¶ÆóãÙLÄcj>àÛá¯kpN«²cîá^é¡ãøñ.Çÿ#;õêƒ î ¶6ïp«v•ý)ßü{ð-ò0êɨüBËÊ"Ê †À¾‰E ¢eŸ5ˆb™ÜAfk3ÚB~ÀhuŒ^ÃîºÖj­^ã¡,EWé쿜RꪹÍÑH—;\g'”à`‹ í|áhþÿ¦šÖE´U9Am,ü(ò Np/Üvw”˜[†›£n‰»g¸#™$g°ñX÷?p$ c³o<<|²´;=æ5ïËŽnþÌN¹Ù)ONÕâ”a§¬ÓÀ/´sàkr*PDq«\dÁßåù'74í|ƒŽOŒþÕì_âšß=O*Ÿ<÷)>Jˆ‰ë÷#’6€Dþ!>Ð!£„c+euªâ¯’)ݱ—pÓÂ;Ýè—*-•º6¾üúÈ;M0Î8²eκ£—+ì#%ò¸aÝ'zÛÓ¤±¿!&í[ MÙ GJ8€žê% rf­KÁ™z†Ú¦$‘‚ûñÞQ¨ïˆÃÕuOïœËs©¸'égSD‹˜o “T‹(KµèÈL¤Zt „cÇA¢¸"oáŒ^ÄÓyŸaa´™qŠw’1vŽÅ‹bwöËè ’÷ÿÉ¡±C*j6YGÿUÛ`ÿÊì]Y¿ëGÑš$6ú>ž¡1ahÍŸ†eæ;CŸ|†à3e”µ;z2û!ëî(¬`Ê Añ~²TÍ–J²Üøqk×PL ©S°CŠß's# Ýñ·‚ jfˆkjÙjp+cˆN8cüäÜúçö“^¸—~"#\È×?ðÌçÍ[¥©Î‘-焟¶ãã"~kÞìŠpýVf-¿vô ¼ƒ„e-ù8:4Æ.aQxÈ2³ÏXä, ) ÆÌNQ»ÆhéÁ†¶„j[#l=)É=¦ç-eæ "_¥ïô­;J¬øJä øÞ‚Œð³OÏHm*U[/H­f«±‹/Þ¦±È—2ø¡ß@ª{»Í±ª¿ ü8‘øì…³jâ,˜´å7Tz¨›GÙ_óã,œ!Lœ²ˆ&sJ@è*ãŽnV€RÕÚ7 ­=rGà‹` ææ9|šuÍÝg´¼¤–2{‘ãfý2»ã9[,Þ( Š›¢GŽÂ8œ†üÉgrCæ!úw ‘ãB=sLºŽUVÀ™³gªÅMµ_ÏÞ2Ë8¹%QPq3wО,u'z¹’Pm%ËZ$"< =M º ²ËžikÂeÖžÓÙ ½%|Xv‘YNÄcNd)†yÉF„a­AÅÂùSžÙQº9] H]EÑʬ,h­’ªùJj¢;ö"¨×©„QS$Ï’ªž})g_ø’N§]q VÿœíVþ÷ôÏ]ä–j9ùë¤Â i&éXxzýrÓ~z…p¤*¨wD¸,²–‚kNìÃp\âD‘þBü3U&°žªz7«úwt—eU/Âr„tP†'²ô”çÜšö Izù*‹0=)¸–ƒ‹…¢ š±ÀäaÒXt³dOlÁMD½æ^t Œ!ª’^2à]T1A#ùƒÔeÏ|Â‘Ž‡Ø©2->Šö"·*q Å 7ÿœœÎš¦™šæT£5Mˆ“¤II—½WO߈þ#Þ×ð­C«‘ˆd~Û§»kIÅà)KiŸÐÂöÜL‰O¼{1Ê?kÇyÑ*6"Ð/gàct=4Ç-°ÇYC8ŠÔZ6’#Süÿˆ/ƒ†a ßyŠ»Фκ>$¸À^ RLšºOÂëÿ¿“t+Ûiâ².•›üµ]ûs’–ªkÑâ'ZØDW“DCŒª*ô–hùR Ý£;j5mág5¼Ç=Oƒ˜£Í¥l/t¬íÈ&Ûcþßá÷ÀMF-ÑQýQc’°¢†.»X2¡ZÓ»Å+Fr•NL„SDõè†R…ú<œúZ.À©ü Nì8F®u[ŽaÖD/o˜/Mõļ½eÂò-5BõÉYŠ {}s nzf’† ç±§:ÁT˜šÂ©®ÅD¿5)bN·ò?täWœ,t#W ›tè 2æœ#Wâœp‘¤P½sEóÌM* »’ôn‰as ÙvM©5 ¦OÝÚ<;…A€b$}2´•Y¾ÓRÓÊeÙGA¡èÌ a:‡­µþ)7¼-µ¾ ˜âœ@nD`ÄHq°@ÍQ±^z˜Ùƒq7!#´ç†_´û¢Ã‚ÏÚ_b#ÀÄC©0Páš =6Tè©°S…ÏÞ¶Ú™xW[š»êG3øFK267? Dÿqö endstream endobj 57 0 obj << /Type /Page /Parent 752 0 R /Resources 89 0 R /Contents 90 0 R /Annots [ 58 0 R 59 0 R 60 0 R 61 0 R 62 0 R 63 0 R 64 0 R 65 0 R 66 0 R 67 0 R 68 0 R 69 0 R 70 0 R 71 0 R 72 0 R 73 0 R 74 0 R 75 0 R 76 0 R 77 0 R 78 0 R 79 0 R 80 0 R 81 0 R 82 0 R 83 0 R 84 0 R 85 0 R 86 0 R 87 0 R 88 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 58 0 obj << /Dest [ 398 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 708 293 720 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 59 0 obj << /Dest [ 402 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 697 270 709 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 60 0 obj << /Dest [ 411 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 686 289 698 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 61 0 obj << /Dest [ 415 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 675 277 687 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 62 0 obj << /Dest [ 419 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 664 213 676 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 63 0 obj << /Dest [ 419 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 653 253 665 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 64 0 obj << /Dest [ 423 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 642 259 654 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 65 0 obj << /Dest [ 428 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 104 625 200 637 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 66 0 obj << /Dest [ 428 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 613 231 625 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 67 0 obj << /Dest [ 431 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 601 227 613 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 68 0 obj << /Dest [ 434 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 590 215 602 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 69 0 obj << /Dest [ 434 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 580 210 592 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 70 0 obj << /Dest [ 434 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 568 230 580 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 71 0 obj << /Dest [ 437 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 557 230 569 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 72 0 obj << /Dest [ 442 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 547 230 559 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 73 0 obj << /Dest [ 455 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 535 230 547 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 74 0 obj << /Dest [ 455 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 524 213 536 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 75 0 obj << /Dest [ 455 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 514 253 526 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 76 0 obj << /Dest [ 458 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 502 307 514 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 77 0 obj << /Dest [ 458 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 491 259 503 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 78 0 obj << /Dest [ 466 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 104 475 188 487 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 79 0 obj << /Dest [ 466 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 462 198 474 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 80 0 obj << /Dest [ 477 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 451 297 463 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 81 0 obj << /Dest [ 487 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 440 221 452 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 82 0 obj << /Dest [ 490 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 104 423 190 435 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 83 0 obj << /Dest [ 490 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 410 271 422 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 84 0 obj << /Dest [ 490 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 400 251 412 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 85 0 obj << /Dest [ 497 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 119 388 276 400 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 86 0 obj << /Dest [ 501 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 377 232 389 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 87 0 obj << /Dest [ 647 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 367 285 379 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 88 0 obj << /Dest [ 647 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 112 355 268 367 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 89 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 90 0 obj << /Length 2616 /Filter /FlateDecode >> stream H‰ÄW]oÛÊE_õ+öqYX ÷ƒ\²o±›º€oŒ+¡}¸èCÑŽnQ ä¤þ%þ ý›3³+Êqœ{ -PüØÝ9{fæÌìùröj¹´Ê¨åí̘¼iUÐ/Þ6E^8gUðe^Ô®QËO³WûRu{V¨}7{õvaÔÝ~Fc‹‚êfótûeö«^dsãòZ?d¶ÈÞ¶»Ãš¦/‡ûîÃM»RÙÜú*£1ô1ÃCŸÍ+úoÛn½ÍæMÞè»Ìà“z{¿^É›3-Í¥c*SèEß Û•z³ZÖÃVeÿ\þmöf93j­fu—£˜ÜX¯¼óyí½"¤Áª±ŸÝÎΗß!ÀÕyãmýco¦Á6 ÙàÅ°Ëæ5£Ò,=fž®kBUäÀñòC†ëA@½ú)2îsG¶–—Xª›é?eËßNüAØù,„z6ï`YY°¬À0­DöM“WD",{Ý‚ÅJ3Ýg 4[{2¢Ëã } M¡KSÌiõ¢.Ô\½Æ¦,>5.úßDœRꦽË`¤Ïæ¹#Ë‘àÒæea_à—ÜV6–ù·ÆÔyíŠZbÉú*$†}} $SËn}Ž_ÆÁ„íX¢|‘Uy 0äfe^jµä=5z ÂÀ©uÇC>ÈÃM6/‰/ ¾ëaÕï³[é2ã§iŸà¶2ýµ9«·«Gòm­ËZ¶M4+EíÙ…@í&ÔnB]2jwDý Y$ £ýMF¨¯.‰ÐŠP 0Évɪ%`ÛŒãh\A€ÓeÌ©æGÑTŽ Æ„¢Š'cXo sH)·¦õƒn7ü§~Îûž ˆÈ—ú=îû‘prЙô>þµ¼ ó¤«â%–Ê ^9á ÌRùaÍã]†Ø…·Œx©Ô„x->.9,%®ÃV PPË®´é¯Í$x"së‰Ûy §ÊnŽ]Û|¾”,ôE¨vø—"è’}ÓfP2` ñ^e¾@ÎŒýnåÚ¯[x™Âq²l#cGÃÏœJ7Ƙɰ§^²£Ä‡·X¶‘ñ F‹7âÓŒÉݵÝG|êãÛ8i€{Gv€'ªH-jÝÀ‹ÓìSû‚O+¢`²9l4š$ÄÀˆ2¹ÏÀî ¬é ^ÙëYRìt,òòIàUi²,`ˆá?GSª¨I¤£µè(œë)g‘@ä=u¤3Aø,sB Š#Ïa „yçèÿfC‡QøQÎ3ì347Év ›%C¬YÍ™Â%spž.¼ÙôÝa\wí&Å Õ=äç¡cžÝÂ[m×?&ƒÏ’ž|#³òÉ\¨s*NØÔÉîYŽÄ–¼¹Bµ ²FdZš¶ÿ$ž\C0áÁ†¾ÉuÍ“\˜Æã"ͪÊ‚¤œrÇ$„¹ƒ¬¿¾d¶fpH×1Êø¢€|%žr 0L|>öò·óË?‹Qw4z$Þ³Qbà‚‹ÙÀñTC¬\Z?IPÑÞB"mCYšXÁ'/ K†Ÿ§ïoíÔÚdÈæ¢û ²ò÷jVR ¶éu$¢mté5;©aNŽÃâ\G|–ÇVÆløŠ†Ðé÷òЫhf„òK» —±Å^4t˜àµ{á¢.}…íZÊÒ©<–éàÓnEJ à"ÃÊ\}Pެ×; @&•±æLu{7wÒÍŽ§3¹ճ蚼Íäß¿®÷TJÑÄ#¾i†–±0ÿPÛ{–têÁˆûZ¢¸è„€îˆT3JGO`9>Ôä7$u(üPbî©#ø÷z5ÏX>÷ÒœáôQé9úȈ^!F $e¢ï9xb|&ÀÓy©('|"ÀÓyé§vÏÑsàøS7‚nÁæ^ÙIi-ðÞ?tã½j;ø5°öÍ‘ˆ'ªZõ÷ë¥9³GÏJÏa&Ͼe—ŽyÀ†ƒ–+J¨”$íð&9ZKG‰Ú¹RWé®ÿ—;‚D¬yÒåUŠ1›\×{C‰½vé ˆŽÐ~éoÙ“=ÂÅQ®Úf Ž8ù‹¢”œƒ¥~µ•eZ¿“§ÃºÛ«Íšzu<ý|ûÇFî ù{ÁÃÆ%ôé,à‡ô¨Ý>=q}¢0/¸‰…q›¡¤ øw ˆÒ%È.yà)VBxç …ü}-HÖ¦QýâmCp³ÊyÊ0HÕ>ÑÆ° ì€Xþvª Ø2ÍhÃò‰_Ôvzñf93 ¿}7«é Bõ„©RÞQL[„—6HÒ5ö³ÛÙùrF•·l,£Š·M™Áe* ‡X*üö‘`¤:Ó…ôŽY`Ïñ/Šæ\Tâß5 ¡È¥„k À\s[¶':û• V‡±·ý' .Róñ#=ƒ/+pòSM¥ioâ¬Û u=$ñfûd©¿¯G<þ!oÔ¢ãØÍ†N‘'‹<µ|#ûO È>I&¸b^@E¡êd'IKÚ±?­é%D’ä×GÉ%´!Ú‘ó¬Ò³š”ЩU|´…4§f¦ÍÂe/£>ŠÝa§ÎᦒP«å£ŠàâS+fXz¸`k<þ,cz¤wn4Üèoþ¶Ÿ‹ºzÁ¤¬»pêî)Îà††¼Òå§üWÆ¿WçRp®Á \¸R7âöE*\ÄslÓÁ6Æ€í2†ÍïŸýbˆ1è\R Å°!ì)¼æ\b(ÝNãm£"Ê{ô!Vü\E2°çñC´FQô!âåjšFŠ8è‚Ëî tŠlÆó¬x1Bû«¾^SÆï¹> endobj 92 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 93 0 obj << /Length 4325 /Filter /FlateDecode >> stream H‰¬WÛŽÛÈE€<é+ú‘ F4Ù¼ˆÌ>Å{³X¬dë<ôP­w(RiRd?#käò›9UÕäP#ÛñC`ÀC‘ÝÕu9uêôëíêÕv«U¢¶ûU’DUU©ÿücGqšjµÉò(.ÓJm«W_¹ª^«¡^½úæ]¢†ÖÆ1 Õ«õôø´ú9x®“4*ƒ†:Ž’ 3§±Áöm®ß› ×:¾ ±CZ2Úp]à¯Û›ºéÂuUÁC˜Ð'õ͹ÙÉK;5öâo’I¼³ußíÔ›]36}§Â¿oÿºz³]%ªQ«²Œò*E I”èLei•Y¦àéF+gWûÕëíg–Q•é’â§Ø’ŠÂŒ%À¯ûS¸.á"Ä®À…þoàU¥ä8½<„ôÿ(N½zë3žE)ÎÚþ™LÕ«àwáö—E=à[%Ÿ%¡êŸèd¥)ËŠ2 K8?©¢I¤“³ÀP‹€Ó}GI¢4k½XQGþ_7UäI¼†õ¸ŒÕZý‰‚Òô©J7qðá(õ½y馴/›³ìœë(õ'ò‹Ð2µ y-KIµžr]T[V&”l<ñë´ðëHmÃMåÁŒ"ÆÙ[kƳ³ƒÏó@»Øä@DUΧÅÕœæJNÛ¬Ïq)9&#cø{eÎf¨fPFú¦›ŽÒÜî쥩­Taß;UËþ>\ÓŽãéh:ßüñoMÇ–`@6ƒÖ8YcàpX£ú=ŸÉ/랃”ã\`=šú@gr$Û?HÎËg)%†Á¢¡Úm}‘g5öj«P›ˆóuüßÏ5¯ú¥6ÔÌÍ£”µoϬj}èÁ©²£0êâuE<:åéÎîü/à ð2÷îû‹§@Óy|íÔ½ÇM’-Cs\Ój³‹æý½ª¢P°ÍTA®êYÑN’÷(¬8]ë׿4XsÍO<íF~lhúür¿ár;}¢ŸR+zúȸ}yu`î*Òç4Þôüߤ÷d2m` >Þ¤¦iXR&ŒŒç5>cÙÜÆ/2–sÆÒ€¹ñ›wÓc³oxòBÙì—(–hf˜ÄÖ‚{œ§&!—³$áÎcG@<ÏôÞ§aº6ÈtÀa÷Yþ«g'ŒÝ§f<¨aD÷·óCŒ{eç ÚÝ0™¾m‚õôH©äa¬ÑtI¡¶è¡G\‘ ÿ©¨Ò.T-ß8t¬ËYØúe»Û¶J£¢ÆxFëå4ú¶jKsá'ùM'’f§n¸IÕ¢ÕfÔ&Ú¦ ïƒ{.$Ýé ågßP¤Ìáôú!¤kîXôÅ/ ú‹iš“¢´Ù k Zá_õÔŸ“VYÝå/'ð Šg a\AGnng)¯NÖmóH^àÔ®†I„s=:6¾9<âõ ègèÉ”Òù¼<ñ_ýòÀŸ*˜Y ðëÉq¼^óþ ?šñ“{ôä·T«‘eó?C%?~àǼ0ŸFyþæõ²»f!£}l?}ˆ$.µe©™s÷]6Q™.#éŠì3LÆ{⚦ÃîÈ—1Ÿ¹ûþ,¶µû‘£rÃÉXôCzD"™»ŽÄ¦–ÔýyÃè¦ìh ¼¢(cå ¯Rôª.ó¨,)Ö#;š1$ 8ÊÊ7òÛ¤…±ÒòŸz'¿ KâÑ0¥ùQVÐ!hž0¡[ ÍÖ1´näÿ1QŒà}(+(ÜŠdÚ¦{iœ¤õ¾ t˲ú‘Ãy³]ašC+]–0½ÀZ­ùgWû/ú^åÏßs,ßW+òM¤uùi ø^eÏß³2Ú$WtŒ É>eAÇ›(-Ÿ¿#êb“_­(þK|Õ,·mÄàKû{”:±Âå?I;饇ŒíKfr¡EÚâ„9$e'}öûØ]Ê’–ÉäÒ‹(X‹ßÅ&Hü6=Ëfzc#ÔÅ)K¢¯ ¿ˆïÑgGBt`騖’¤8w”cv„—Ã]ÔÇ1Ûéãx?Wûµ,6yÀˆ4ÝDa”s–/vš89i<ÔV`Ã÷MIo&"·¡UÎ4gB¼É#,67'¬Ìöë¹¢$‰ÃY‘ÈÒaÆÒ¤î7Ëà^B0Ÿ{I¨ |GCe¿¦~Ðq“ˆ5óó@m""È•pµ1†³Lkª4àó>˜Õ§î¿iꇎû`„”ò¹5" ":TŸµP¬µ'ulSHíÑœ7ÒØËªÎƒMG&Èh°ùYÕú•ªµ6¼à*‡M× K\¹„×çt£îòœ —t ›Ýyà>9'(†â*‹qÉâÚÆBFqÆáIjéš"rÞÞ¼§Ñòpœøê:‡³ÓËñ£í s( “è§ÚÛ§ÿ»½1ì°ûƒ\w‹ÑÜ4µ*`Ý5±kgôÄëóÚl(áiø ]NÖ†@Z–xzum+ŒL+•Ö™r×¢óŸÈW—= ã;Ìc?Ò0ô…Žä“`‘†¡/ ‡4 }iø$X¤aèKHcÁâ($E/•š—c¾¨—Ã]ÄÇ1Ûéã@©]«0Ì* ðFzÄiî`²žw - û—Œ½ZöÕGJÝisÞÜDyB™¤éoÒΨn TæoMÅ»ujŽ”ò¨Ug$©V>\ßï¾Q‚jÀl’ÜðWJ~¦ ˜CNÈ/§z!å WdŽÑÍ;nÿ–_ª¡|2 æY3YTM´Ì†Vø@°ƒÖ¾‹:‰ñÌSúBø$Ø:1ô…:ñHpubè uâ“`ëÄЗêdÁâ(äPšÎH7ŽÎëÄË1_ÔËá.âã˜íôq\¯å4¡uRc$aŸ|½NJR'·XdC³>í(q ³$Rm$˜…Ñ” '1ãRyH¡ðn9\•mj¤XB–ÙÂÃñ”O~©2* }¥ë‡é†¦™7› }!›}l6úB6{$¸l6ô…löI°ÙlèKÙ¼àqz^ÍY4ï–ƒ g\ø%,ÐÙÕ†¾äj¯ –çÃÃЗ‚áÓá8<:\¸ })\^–çÃÔÐêSâ8Ѽ-VªU%_Ææ‰¼QçrÚ*þ¯¦Ž @Η¥mùÑ1uo4öüfõ>´†õ¥™v³•òø*šqjF«ÚwîNì»@‘'‚ùÂÂà|þGné‡nê¶]û†Ä«ú«½ùvR[ij&€¡q¾é4"–Ìx[#Šð‹â É™zRÏ%0©X¡ÛdÆãÐí¼aQV°õxº¿8±¥v:̺óñΦ/‚AÂ+J˜bõr€ŽséwõД-ê¬Rïþ  ôÄ”JÏŠ7Ÿ× ̈ë¿ÈKh endstream endobj 94 0 obj << /Type /Page /Parent 752 0 R /Resources 98 0 R /Contents 99 0 R /Annots [ 95 0 R 96 0 R 97 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 95 0 obj << /Dest [ 194 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 431 637 490 651 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 96 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 126 623 152 637 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 97 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 326 510 343 524 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 98 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 99 0 obj << /Length 3359 /Filter /FlateDecode >> stream H‰”WÛ’œÖ­¼öWœGHu#®ÝP~’ÙQªœRY]‘mM §‰hÀ˜Q~#ÉK¾ oùƬ}¾Œ%;5UÓp8—}Y{íu^íW/öûÐfX—e™ññ§™ïùQš]œx~efZ½øÚ&¦°<Í7¶X½øö]`ì s}«Íüø´úà¼s7Aä¥ÎßÝÐ÷§Íû±Æò}7Ç·yiÜMè;o\ÌÁG—¦Œ•»Ùâw8äEݺ›ÌËœ7 OæÛ©.e¤¢•!Öâ7¶ï¼«Š®-Íë²ë®5î_÷Z½Þ¯S›UšzIÁ‘À ÂØÄQì¥ql`é.4Cµ:¬^í¿€(õ²8LÉò-ÈÈM_üºëÝM ãà!V9ƒã «|/"ÃiðèÒÿQŒzñF<ö"œµÿmU¬œß¹û¿]ä¶eòYó¡úD'›¢l(ÂØ ç™·EéäØÉ)Š[‡Ã½¦ Q˜ÃðbFáé¾î2ßIƒÝýÔ7ó’œ éSí|ç?¡cÞæ.R¹­K–(k€“ÐKüðÿŽïÎϼÐß2ÀØÙ ¥'rö 2dÛ&ó½»Á°#tòî†ÎˆAŠ|ì<Ê´Êœè­+«µéz¤è‡¶¡ .;É óšÃÍ @u=±×)tviJ}ëô³5mÇóM>ñ¯~`“®Í-r6NVId€èÅÿ(’ÄEAš‰û) ³Þ‚~…DGwËàˆ QeüV‘™û‡Ëþ·¾=2%%°››_ˤt-k5“œçí `ºO:ZŸ€††{íÜ?cýä è–¶Ø °ÐrXÛÞß´]­ŽC>5ÔÕ_-Z;83䯃Æ*Fjœµsvçþ"YSÕ¬•³v¾‡S×U] Øl ¦¦ËÜ—RÏT:Á¦œ»D&nÐ}@ü¼ƒ¡ oæ ´R¨Îõ’;WêèØYð¸½ì¦û¦b²#.8 2EEé*êÏT™ì%¸4 ÎÁâbºÈ[v‘7QûdœXîõûå¾”º9m³‰Ÿ¡ŸgÊ0v¬¥‡µyc³^%Â¥¬ÈY!ÀhR?T‡JæƒÜ)÷ó.$o8€gq1¢½)`·“‹S×Q3B(§Á‚ɽu ªÎ_ªÁ2áá–ÈÝœÚ+Ù€Ë7>2l\ ç¶w,Ì·#æ£Lɽ =P#±æÞËŽ55µ ,Õ=Y6%Å"‹øV¡12³õãÌÄÛÌÛù[¹·‘ú_‚éóËH%´ ·Ãmìé.Zn#Ï¥¨ÉÕ†ì°à'L½ôVƒ?Kî{I»‘ŠæÏûÏx$év·312? ~›'Á6 eˆDvLÓä|¯ –{U ž.ãºaõÏWÖ”o¬ä 76Œ |K‡?péè\Ã=¦§€k# -LI‚0Å@Îß']J\%ƒS!—CpŽØ3ű—æÈ¼Š-Ly Z\gæÉ. d§Ârèf"¹j焃¬ìqœ§ÙùR*Á=î·^±>VUo¦^¤qÃL é )P%Ä_BG¯g'Ìå¥ÔnD¦3)–³^¨´ÒY:ÕIC›7‹jãÔ†gŠõꄞëŒôÏЋC§nP¢‰3È 6¤›GÊz9/Ð\ "ÿD²2‘Æ<÷œþ¼XöC»Ç9Ñvˆ0 óxŒ´+ ´õp±@åü™GGRy²Œ?ɤQÒÈ2Ÿ¿7ó[A'ÒË…[9Ò@³ÕÔæf¾•ÁÒ5£ ñ¬)"¥¸y醱s/÷Û5¸zÅ|ãÅê NÕ/ŠŠ ÂЄ—š:^L/y‘A¯ —×Ô“¢ »Ëmkа£‹Þ|FÁ|ÎË{6»rch: um.×ä¹kŸ CùµÒÆÈ —uÊomžŽ2VÍbVêU™|”Üè3FUº"iØ‘B °f%I:¿#Óô,dtYãáR~Kªü˜…3ý‡¶uäa@ôt¬åÓ‘¤-=ô$I.qГîiû9H4 2Ž«TáDØÙZ¤m{ÞB­(q/Äœ¸¿®ÍBøw.ÆÖ7·«gŠˆb‡»Å±“´„µ¸ü™NUuuD¢p’(./ŠAu%ü ;x‹ŸHú)$êV¹ÌênB¥Ñõå‰ }C>YäÎèR Dí¬ øsq“ýL‹c~e©oÁrgÅœÀc8_óø²ƒ0YóK}1KØÞ›O¬‹´ošY!tý"”XÐÛÒ„u{Í·Ð;×…\ßW_‘×D{_Q3.vž"õ(Ù~TŒ Fª 5ÜïB¦Tâ;¢%}á$}ëï„4Fåé9(ƒ+LÞ9?¬Å„׿'–)eꘫWŠ– ©âGÛèTâ¡" ×DzÚ¡½·6}Œäèg ¶Gn° þº9}šQàCà¡°!œëVÇHÉîD(ÙBw蚆nü]‘g¥ z/o f´Ÿ€÷ b¸Êe cÂÃaz]ЬVñû;ùïçÊüƒóÆ H>·T:[µqÆ CDšö^p1ÓÝ|ߛѨ×8^’Å kBÍ5Š}-•ÁõÕ«r—š˜+äÀ:¾®Ê³˜Øþ¯ð*Øm¢÷~G#¹VˆÝÔê½çâS› àM@!€µR¿¾ïÍ›Å`§êŘÝegfwæÍ{¤_2’[‚ÇzØ&¡v‘5s¹Ã]‚k6Š¢ñµ»R/4„oãŠ_ö¢bAƒ‡¤uKùD†é$ë1ŠˆùjoXÔóæ©eýR—yƒÃºßGI»ÝÅÉNJr¡ IK";8ˆ äAhÏž„GŸZó1úèa`º¢)~Ç1±Âî9u¢vºikÿ†qkÕE ÍÌÜÁƒEíšJ¨pˆ+Hú…“v°îçˆçž ì@H³ hå"‡þG¤ ÜýÃŒAãÍÖy¼¾¯Jo0fuíÿ Æ}TŪYÃå/Œoò}Û¡ašb…oieoZÓ‹ ò‚œòJãEiõJÂ-1GA ˆååÎvÆk•s† MsŸ›"[ Í ­ë“²Ê×@ãÑ›u0ŸWÈ ©‘ŽT<÷|˜š+LD„îrCûU7N«>¤¼ù¼Lœ¼w¯¦žÁàoÂ9$‹ûÏ]!ÙüEøÉâT¯å¥ý¾ùÔ„0ÙV´F+Þµ}¢·1½Ûeñ%™êwß®ˆÓÖL}PþuÚ\Ž%¯š#l/==yÒYrýkjɽu[¼SV BZ¥^6B怇‡ g"‡8ú°ùcÌ3E}Oª´òh^Õk,‰ošx1±qõÉh—ø bb³Áö°ô䪲ÌGÛ¡ƒôâ“uˆŸ€“H°t=;§ò›«VmfÑ7í$²Õžóá|Õy\ ²Œ¼=äu; …;¦Mf®¤n·dwßäÄ÷Ó§¿þIí endstream endobj 100 0 obj << /Type /Page /Parent 752 0 R /Resources 103 0 R /Contents 104 0 R /Annots [ 101 0 R 102 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 101 0 obj << /Dest [ 305 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 237 275 263 289 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 102 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 199 204 225 218 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 103 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 104 0 obj << /Length 4110 /Filter /FlateDecode >> stream H‰ŒWÍ’Û¸®\õ8’©‡ ’8ìÁö®¤6)—­ÊŸG¢f˜U"ÇŽ÷Aò yÍ|ÝHiDÐkW‰t£ÑÝø¾Fãõfu»Ù(!Åf¿’21ƈÿÝФIšeJ”¹NÒ*3bó´º}Ók±íY-ývuûî£÷ý ºi CÛÕÚ¿®>EãµÌ’*ú«4‘Ñ¡>-–oºçíÃûz'âµJ£?ÆÐ0&•¡‰×¾§}½mñÚ$&º%‰Ä»çvggZ©°_) ™F›mw؉ŸvíÐvÿkó§ÕO›•­XUU¢M†@d"U.ò,Oª<ð´TâÔ¬ö«×›…dUbrUQü›4fj|Óãuç!VE§8Ço ¯Ò$#Çiò!¦ßÁ:uûÖe^gPÿ[ ÊQ€é‡úpßp¶²B"Ä?Ç… 7ªvýá~‚Vš%ŠøA¾§…àhÏbþ-r£'¹†zY\hè2Q^Ðä&Ÿäy•”ò‚J@‘-(¤;«&9¢.J}¡Q˜$ÕaH^–“\åe’ƒ"g*Z–‰4aß“‰ÂUåå²H´6/ÔÖð5F?ƒ¯Ï+êÊ °¶a ™p0ÏôT9 ‹ó¿†yZ* PfgYV²é ê(§IYfÐþCwjíï£J«¤RÓú"EÚõ¼†µ0£áòq”|åKÌ˳õèLiæUœ‰k•‘l ˆ²ˆÃ–WóìeQjœŸV@ã,Wó“Ÿ! …¥R€T”ã}—åS!p÷ü?|!ÈÎ Aî A>‚è¯Í ×½§¾´Ô7Ì霩Ÿ3õµ§þDüÒ)ñó3âK&>-¸ë†¡{¢"»f}QåpØo8/s:hÁÝp^¾áBü çåá.hÁÝp^¾pÃ-%Â& ßÊ,Ü`a)РÆHHcò3¤+®¤NçIn¤Áj&° ÖRCEYçYEýREˆ­òŒ«tLÍ»æ~«ª¢÷§†n Ùßg–žÑÄ–¯3Ã÷LÕ[ûõ©©oŸ`1z= æ´ËœERfa˜ZñJë=H­x£óëGˆZñBë=@­x Ÿáøü $…KiPá<Ây…³fÎ]œU Sã„7G¢ˆ·šñØœ*e‘ù7¤‚Aå\QMÁ˜”Ú>%ÑEoã‚oš "½Ý¢æDX%Œ}±6sÂÝÀŸRxjQ‘Åp'º3½’ðŽ=ž&öáQFµý4¢¥÷YƱhO¤) ÌP§÷,C©Íж9}»+)Ƀ-Í×ðÎѼ!mA|;ùÀC<Â|â #Æ|ä! åN¾ó…DØD¡GÒj© 5¦@ƒc !ÉÏF쨭Ð.衤qñ;°çrD»”î?¦¨Õ_S]ä˼âòXE\‘µ¦‡ Š{¥Tt±†ç”m7>Æ…[RÛ*³³$íÄœùã÷X¢äªNØ¥Y´%VzG J=kØö—ÐÍÝ Knb†xÊÚ\îyÚ)ùìýQºšía´»Áóëq´ À'4ÀÑœÞ52Ì›…ûÁÉø²àùãä ü Xùãä ü Yðüqò%þ,$Â& MáxÌò'¨1Ô iL~†4æù#QtJ¯&ÔÛ[xþ ËŸq宂,º ,ÙνM¦ËŠÚñïÒ ´‹jû±âé4kÛq§ˆz+&Ú°àîù\ÏþÚû@[ÊL™"rÍÏ0[òÑ6±¥òí/± ôl!×çå×,‘´³ÄÉX²àYâä , XYâä , Yð,qò%–,$Â&*‹ôK‚S A1ÆägH#ÀHü |nÊ¥[æ]œñ£R1jˆ¶2?__â‰Ìè>úe6Üý ƒg‹ÇÛ˜ûµÝ©¾·…û^îˆW®ºÚÒ^;îÚö;·ôòÊp׌ëñÒ«‹f~Ù-~»{/Y¥ ”³"È*/³*hÁ±ÊËì Yð¬òò0«‚«¼|UK‰ð‰¢*~¤„5Î hœ2¯qîç¼F€UxáÊÔ]àêȪ‚Xõ‰^®A:xìЋ 4ø[f=Qã¼6g€íz¶ÖÂÓ /ð{bVdž#„ïqÑ·.×\»JqGWa`;ù°C<°|Ø #°|Ø! ØN¾ì…Dp¢JƒÇ@5w]x_cÂäœj'_HuدÚÆ“/FpQ#°Çx\N¾p\á=¼Fh N¾t ÁMFÀ&ß“£‚Ün62ç6H­LÒÌH®&~¬°]¡xºKšïhÔ•öþùÔ¸ËO­UBÄëÅ›î0 <€¯îÛS=€SúS¼º³ª}÷ølGC#޵nq6ËsxYNŠÄúHCw2B¥¬pªŠ›mn¬~DmªL"n¬ÓèÕmMŸ¨S6T°hÇ]#ú¡†³öÝH’Fܵ|½r)Åç½RÖ«TPŒäüè¶.Ç­K»õæ¡ÓŽÝŽc]+o†B:܈Çö—F ÐýÐ<ÖCûeÔ½ÐÚ"¹u{èEß|i¬•ø5ÇAÎö°Q»Ü±oòÌ7=ú¦­o§æØÞ¡Ã¿Ž÷ÒÑ>¦^ŠwÏÛG£ÑúDˆWÑ>Ѻú0ˆ]»ß³#%Œ¶èŠœíaŠšŒFÎ [dç6¿%ìøàÆCÅàv`üè¨ÅK…œ!/D}¢SAN„ O”ѱsKOC³CŽŽ^¯fñÐ UŠRåL‹ý©{C}´.ºs9ìB;¾}‘AlÇv§~xö;÷7âëCãÿrëzJÀS÷Ü7kî§hÛ=q¶w/NùFÜ7d°A`Ž À³è2Ö±>µÿqRD7täOÎþ¨y=a1¦¼Ê¸ GrèÄW‚v[•cÏ£ñ8÷fì¼iHǰ‡]â¡þÄc:<ÜËe$º¨épúýÐÚÖÀ ¥ß¶õžè䲘ù±…¿pîjVølmÛ¹G;G§Dßo±"“7¢Ý¿p€Ïƒ½øŠ íds-šóÛZ?öä³oã5?s™wÖæ£ýÚõλ‹$½NlŠì ‰-7+­ýþÒ‹†_bêY\9BÄk”tx'#bK<ºqV.Ã8¸}œ#ŠÜrBDÁP3‚¹Þ~5h‰ùM˜ßvÈeâ<0¥ÆÈhH¡º$õ[ Z@×ÿ)¯ºÞÆm øÞ_ÁGHŒÈ²}6úÚkQ -ŠË×îE–蚨L ¢t¾ßÑý½ý d9 Ú‚Ø”)’»;;3¼Yc`ð&=¨oî‘'z²`SöéF~žhg›M´³;|5Q"Wð'BŽ@xe=øgºÙp»mì‘xw…Bi²ùð¼U}Ezc"_ï–T>Z‚)íÀóúscÒDÞ.¶®¤¤~ÝØÔmÀêÛ¢<¾B Ït§¡*e@h"K:$•Ž‚{a\:ogÙAGÞ8·Õ-ùî{Y@ÅçrÐô:¿ÂÙ~iz'üz"€ŒEäsÉ‘°Hη¼·¡h{_Fó¾Êã¯EEXãÌS€Ùhª†·PaIÔˆC+ß!M¢0KYÓà`rTË1 îãòsj¦7û¦è061]AÐ᱉CÛÖ*5œ) ŸqCxc㾨@õ® Ð;à|I¶t¥–Mr>úò(êÆ¸ÈÓº±w'SéK” ¨Œ'¼­Ñ«wòðòh¥Œ ž®¢|ï¢ï B¢€÷)OÀfNw¦.ö|‚Èé~4Ž}Á#c4ᵇ¾aßyíþé[#(Z šÃå87öª(hçý¤¿t«Ž·š8‚^1ÅHq(çÖ:ÒŠ[¿B¬DMCªÈìŶE;‚ ÛNgØ{›r<¨ËK.Êš†Eé*ñ%[Sª9;»-©{§æ½»ìÞ‡æäŒô ÉbN½ˆ¡w\ê5e.‘U&BÑ(Ñ?uïξ/Ojì0'~ºa83IxŠªò½oÂ…ƒy‘`²Ñ ej†j nǹÉìÞéÐñpù­å ¿±Oü„ ”;óñ»æô7J M1æàŽKC^%HI¦Ñ¥´î¬~ÐY¼öE×óòK„_§i·²Âõ‚:µƒüh ú W’V¹ã+4´Ø»ëN,Ó¥—ªôVxy»ÿâŸÑ‘’­v=“mu¡uXR½L¾¿™Úü?Á³%® ÄƒÇæL ÝäÖ.‰Ã±R%rŸ.ŒkpÞMìÒ‘H~ϲÊ132ÝÔ·ä,øZÒIÝI‡D#[þ-yz‘¦ƒïNgtóyàN§ýM^Uùôà¯vQ[{G¤Eqüv(åmgôËQ.H®ü‹|„¿âÿ iÄ•¶¸‡6ûbGÙe¿Ü‘ÁdÙd`” çVÒe¾vz”^0IiSW”€åúŸüÞ æañŠKÙŒGÚLøA|¹äWý4ûmM5SéVb'«=˸4âgßõCQ?™½óA&\sg¦4ΕåûH1]B¶VŸ¿œÊgò#¼®&G¯) ø¨hw£Ir‚ñåBEe³X1ÔO "NJ#ëÀÀ+°ð;£)ä¿Ò“{é¿Ü#©]T#]‹ˆIC-ʉ¾g •ÎUºê*º¬‚¦Åa¾D6~¿MŠñÇ­ù8 ä2ÅÛ1­2‘Aж#jb:ÍrAÃÖ ËðÙð©~_d’9 ÆÄ6ìýYŒVìv4GÝ[ÕÁ§v‘È/àã7*’:Æ-'ŒÕžQH’33ù¯ œAÆŽÁwz!•µ=Òõ®,(8ß醩 /¤t2œE¯€Зô(]4]ºµ'F”K7“Ñ„ÍÔî*Õ-÷TÊÛ,Œ| #ŸU'Nù Ü9ë¹€ ròßÍg'”¨›RçÄ„«&’§…¸*CÔžÖ­¨ßKdamÙüúkgø 7tçð蘟šëI1Îc9œ9²à…'!ëvŽ NdÉ0 då÷|àJyîíûoþ¦Iº= endstream endobj 105 0 obj << /Type /Page /Parent 752 0 R /Resources 107 0 R /Contents 108 0 R /Annots [ 106 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 106 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 458 660 511 674 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 107 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 108 0 obj << /Length 4672 /Filter /FlateDecode >> stream H‰¬WÛ®ÛÆE_õóà‡a`Ñœám˜7’‡Â€´NÜ‘:š”"^|lFøú›]{.”Ž$§@s9ÎìÙ—µ¯óÝfõb³‘L°Ín%DX‹ð¯[Qűdy’†‘Š ¶9¬^¼R¶ YĆíêÅo»V "0Ú®Ö~ù°ú…¿ Ö"ÿÈ(¼-£ÆõM7m÷oÊŠkñÐà0 ’±Ö~û]¹Õm°.‚߂ި“®ìNM7%îâWˆLDüm½íÚŠ}_éQw- þ¹ùiõýf%˜f+¥Â´ˆaˆ…LX'¡JMsÉúzµ[}·y€X…E"ÙO¶‰‚ÌŒ¬¯ºc°VPâïƒ5´ŠÂ˜§Í}@G«Ô‹×ñ$Œ!kóWbµ]ñ?›_ÏüÝ {lMŒP·"ÉLÊŒ'ÈE˜D’œð’P̸û9D0KyF± ݧyñTDkpTÄÖì%%騈óˆÿGBWÆÞ”÷ ©ƒ˜îå3ÊàT†i$ð…iê«¡)ÜÌ õˆ‚&¡ ¡XœFüåÝÐ5ÓX³°ÎǶ]×Wº-ÇzphŸek&é ÑbF´°¬7û£œ8Jüm&ðë…žÙ9vŽ Ùˆ{;ÝÞ×ý¿ uéõjºmiâÿÙøÅm˜ó)X.ˆvb/{VŽP„²Ƶc1Cœ™¡f3”5ƒ|$)cþ¡†X}¨CÆþöDÜQ»FÍŸ‘Wœé}¦Cx•÷Ýs! eÛv#»3Ö*CÃHS?ðf;5»2W†ÎYß×vÑ×&˜ˆ…ª;6ßXý…ðú çaÒ ]áѲŸaâì/,r‘ìä¥Ù ÐuVÇžNØ45(æØ;Öèši댞$ä>PäÙ ûî¡eÚÝh­ ìu"RÉ–¶*ûÊ&Jæ"Ä ËŒ¾ ê¶;4U^¹]KÙWä)iÍÄ÷0°ngd•Ûq*6èÏö–=÷§^ »Û]‡löz¸°*­J­UeÓtÛwÈØÝ5ÌÓFÜ‚›¢#õÀɦù¢Î1©± æcÉô¸ï¦‘µu]éÖ’•)'Öÿò[݃åwJéŒRú~Ü; “õ)'ëÀZíŒ`–&„Ìѱf#Þ¡jWb&d;‚)œË ˆlDûL iª¯[Š}!–‚¥ VÄyâËo¬Nå×E2!'EB9øQ£Ù‘†¹í"B2‡ÜwAŠ¿Wç®W*ÌÐÒ" Óc€>šúc‘… †° #—(f–N:,Q g?+YfÂtêõ©U›¨quüåä†Îþ6“ýEÚ 1ص;ê‘>H´Ò~¹{M@u=TôxÕΩ@ËÔOP›žfé4`æŸ(0µúK&ì"Á(ÉßógîÚÓBò/ÏMþ:È9ýÿ>¨TÒ¼e4Òý?y^dD®à2åI¸>ÇT¦ÎTLà©n“8%¯I|È.(9ßÖñìö-c„kšŸiˆ‰!Q7)¼‚WsÊ,9ÊûÑ«SF¥éeÚ.RœYq›à¤Ã…µÿHµ7FÉ)…ç7FìÞ›O&OL?ûÛÒ~5ìÎ.jêû1ÿ\7ËY*•‘ï³ôÔR¤k)@ZR†(þ%Mì6=J'ÅSêÅ’¿²/ÁÈ%ö3Gð>09ª¨…àRŽcâ8“—Ud_g3/‘EÄå"+S´ZzŠ-4"wüDÒ-0˜‘ç°Üˆ8øF43XnDKFxñìJ‹§Í"ŬãÁI‡%Š?±1œ¯ÀËÍ'¨º>˜€ƒØÕƒfl„ÁQcn§ù“Q]Ý×ì€6Cséš^^}@¯¹{ûA”­]/ÍÿcCEƱ ¨«0βˠK|H»Ž".Òl_ÇR]…o&/9Eçœ.‚8p)ˆÝñA¼À`bÏa9ˆ8ø ž,ñ’ÞFx/7*¢'i( ëÒý¥c‡‘;~ £%fŠ3Š^Æ(.Éð "<̳„'`^1S,ÈøÚùã<qÂ$º_K¼»²L,Ðb³8÷™]¿D^ë{¼\ñ²*8“ë8¤$À«ƒ½¼ÃÀiÖÍ4¢Ô¥gx°´v¿b¢Yަ°ï9{„§_ÂÛÒ~Œõu?ƒ…Eáu¦eâX²DA”JϺéÕ{ó=ÿ[7Öß2ö۳ߙn+íÞiîñiûúã£eUoõ¿¶ËQwmèSÛ<1N¹r$N³¯p³ïHP `2þâa¨†ù:¹wMm~Ÿû#ûyõPÌB„à\ñìp0Ï $¢ÒÀð¦4Îb¨ïú±{7 \b‡"µ ­¦?­—}M¯ÈE¹à9 ¥:G9ïÉËv¬ëŠÝuS[ ¬kÍ[÷=:=U3A«p¼UáÂJ¤³Ü(Ÿ“[ÉwômCÄzÓMnw W¾SV ²ëÞêhF¡Â4ó«[Ý“6þÖtƲÝZÚÚl !c¸„÷“ì„·ÈO.ujŽŸŽ™ÔD‡‰ovW›ÏÏö§¹{¦â vé­—g°—G z‚Æ›ì£YR*Õƒý!‰Šö£6bIóò%ÄÙ qæ žýFyˆ dûÚ‚—q¶Ó-|nÊ ¬{Ó¿A¾c‰§ƒ²SOGCgƒþl RI&èôXœøRà¾-¹l`‡ÎI™ZŠ ÝZ½7ߢdé%ó;Goy?Ô,9Oá1s†ñ)¶}p[ßUL‘Cmºq3IÙßëöÒg¨NÅY,œBÁû )K0­IMZ²aңݵù-7’ï‚„£"‚:ᬲg[óWÓÄ#yEè#؃µubK6Z‚}íÄ%¾\ÌÞ§9N\z¿˜­/¬¾Î¿Ä~Æ¿§çD®+:Íc–LREêܦ'ÇgljÚšvÍE §öºë] ÉJ5{wÕU”#’w˜ú]iåoë?›ÛÐk–kx"»¡”¹¢ÛÇ|ÔÜtˆ&)´ 6&¾í€zШ¾ípÄÝ®¶öœC@l]^{ ¸žwkÓtÞ†58Ïš]Ô±ÂøÎ]ÔMc¶†‘6­àÑž '-?”³Ï³n˜Ûy®Óyûˆ•3á[k^dÈÌM¦súß;e,1$d™éö&vU˜³ùõFÇ/¢eýüš%þÚxá ¯–Ý6n(º×Wpiötør–±Ñ, tåìê.$Yi\H–¡Qâ"¿Ñ~pÏ}CÉM Ö¼/>î¹çö éÆ¢Mô©¯ôÂÆùBã½|r€=Ðo@„1wÂh€S•&¾@ÃÓV ¶¾´ôÎ(ý®–à2\ˆ#KŠ"ÀPëÀKfÚ¨¬n–ÐŒo›‘ïr ˆ6%ÔmÍ5ÛjÍ&‚bá({Vüq¢—Ÿ%±eS‚@ÑYé¢d¼áeQÚ©ÒZt¾mKí1²Ž‡ÁhÎoòuÒU3íÕÌÎ<>¡Bò€N(¨ÕüÄfÄØ—÷sœüØÿn÷ ‚_XpûO#%Fqq,¼Ó­‹%ª3¼Ð¤[g¶3«ÅŒ¯p‚Ttždü¨ãÕNÆ8o„7™ñÌ]•éÃËöYUž9w$*½‘k‰v½Ý¬PÇLãFüHQ#º ðhŽÄbÁÔ|E¼G&”LÚÍe˜Ìs‹ã•®Jh¥ÔÚ3…Ë*çqÈ-ƒs±&ëoÀÔg¦‰éÇeœ?[„4—´  ¥ á¬& BHFëŒGF„ÿ%rZg¼ð)° ªÑŽ·«©+·4ó³>™Ã3r…·Ëeà [‹]J-™µÍQ¼ bì·rœžO8½9ìmlõk·PHÊX©Q„0là âßï G›Ö’BÓ’ò  µÞ)VhŠ‚§É×õœ¶m‚KÊ£ÀJú½¢4H¹D ,¯ŸN?F„—m>¸Mrw,mÌ<±¨ºêW+2Iÿ%9%ÛÙ ¬¼ìtbAÃ*(ÔÒ‚·œâå¶’š:®Òô掛•äúN¸dRˆ¢ØÎ±ÉÛ%Ù’ïéóáõÙ¬Ö‡¯ÛëÓÅòЙ()k'*§3§³;<÷K‘¸Ÿ{!êæÛáY¾”3þüžGBÜæÿ´Yüt7EswÏì¡7÷w k~ÁÇŸox5À·_Ío¿÷æqaî,ÆëúœAš†ÎAÈz lŸÍq»¸}}ú›è²Æ®Ç¹BŒØYÈ âÀ8·}@#jU­ç¹ö?LØ9Ž…#DrÎx—;‡fh?Ï ؘ9®4Ð{€÷Hc¤ç07%h6ZµPÆêc³˜gð‹™júÃ4Î>t E•(q«…‹}lëw ç#=i©ŒÒæÊ̈‘~!±â{‡Ã·³“c /…V$ʹ e¬>æÍ¹Œv‚ø³Zp [ _õQÆÐÐ(ªD[-\ìƒ7wûq1vc?1ý´˜ûç€ÊiQû˜ëÓߤ‰î5åmÈ…‚?×IxêÕQd%à÷½4y8$ @ ´dáU*l`­ Ç62Ûð„6·l±¨F¶Çתf¢kŠùÃÕ`Ã’;Ý?, I´¡³ÞÕj±ññÁÊWðEïÏbLq4€ÂPÕ}QïU˳–tO“³f³7Ë‹Ú$½ÅÍø I ±of€TÒ¸ï<§5z¥¹ïç1Ò0᩺V"uÔfU u,>H£Ì¤/I ¾s¹õ!chÔ(T¢F©.ö±Y|z·ðCêF¼øè»ìk?Oä7ÞÖ€±öLÄ9.W˜{Î8ª#Jnj®5‰¨oå0¹3„;´"¥ü̆]ºOZ™æ©à ¬n!|×㑺LØÆ–QR I&‘qÝ`©9±s©å5æÐœ…AEyF6z.#‡Qeô¼fËTÐ$ž¢Uff-—ŽçR&¹3$_Èå4€Îáœ,ÊvŠ Ê(.¢ãd<@×å<éy.˸QÎ03ÂÎnA° ør…L M*2Õ5ЧÎÌ2Ek–é©$¶„£0.œ Í Nf>Õ:3Ë­*sϰ¢4—§y"aï™qz N“™X’ÒŽt(8Íâeˆ76Ú:ë‚Ó<3çuÕö’/ź §Ù{YרŠöYìŒÓT¬0™*^3Õ2ƒûÅ ¸‘ØMÆú `vóXJ¤h dfn-”±ø 2ƒ~ÏÀ65>d¼YÌQ¨DR-\ìƒ7÷ïs°— endstream endobj 109 0 obj << /Type /Page /Parent 752 0 R /Resources 116 0 R /Contents 117 0 R /Annots [ 110 0 R 111 0 R 112 0 R 113 0 R 114 0 R 115 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 110 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 386 706 439 720 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 111 0 obj << /Dest [ 133 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 90 678 148 692 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 112 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 212 678 239 692 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 113 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 212 656 264 670 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 114 0 obj << /Dest [ 133 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 287 643 313 657 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 115 0 obj << /Dest [ 184 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 126 587 152 601 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 116 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 117 0 obj << /Length 4070 /Filter /FlateDecode >> stream H‰”WÙ®ãÆE^õýH#ÙÜš0ü`;'b°`ÄKx)jDC’šû3’ ¿ßÌ©…Ë]¨‹àW$«ºªºN­_î6ow;k"³;l¢((ŠÂ„øÓÇ" Â8¶&OÒ tqavçÍÛ¯úÔT=³…¦¯6o¿ù>2ïû xªÍv|ü¸ùÙûÞßFqà¼ß|‘w)¯Cƒã»öV¿+÷ÆßÚÐû‹}bj›á·;”Usñ·EPxïýˆHæ›[³—/5´8‹ß(Ê¢Ðû¾®ÚËÞ|½o†¦½ÿ»¿n¾Þm"Ó˜sAZĸHD61Iœ.I ,Í­éêÍaóåîŽb‰utº[TÐ5C¹àWíÕß:‡â”×ù þ7°* b2œ>}ú?ˆQoߩǓ †®ÝŸHTµñþàï~]àÛ !‹CVªO¤ÙXò²!CôGEÁ‰¤9ñJòb汻ߓÈÍÖ.8ª@@Í‹ÐK£p é¡ ÍÖ|A—²D*â<ôþka«1ß•ï}RRû1s“—ÕÁ© ÒÐþßþÍÃ"°aVŒ‹9Ž ¹ì;?÷ZÄ98Æó/ø9÷®ü©¥˜ˆ”2ÈOÉôfø7ÿšV¾.œUó×Ë ¿{–bvtçØChòWÄç‚ 'Ga77BA¸ý(®-?‰ MoªÞ©97ƒ<6C¶“b‰v[ÜDeZ°åo±*è$”… pÄéÙ™¸ªÁµºêX ΙG%^½ÿLL=´©?)­<_O5ß —z¨'}ŽáµÞÉè5èD)sm»¡+›Á\‘¼ÛÛic&JT^èþ“$‰ Œ»û£MÁ%#ž ¿ÙB‡ÿ7Æ&ñºÚX<éÛ/ž$Ín…’(Fv‘7œ‡ÞÃÓäI—¹O>ŠEý/¾i¦gðoE%CSÖØ ¬iN§[«uÏî™.ÞvM}J:È-·iZ‚ÅÙ;°ì ¤jÛnß\ʺìähÓ-°ÚÒtrÜ@0ùˆXÅ›ò±bÓ>ªƒ\`#b0¥AÐ䚣ÖëÛÓx†Ë"n²šýµÁM̹íÿ¾¾Ö—}ó8`VÂí™+!”ýsTÿ±!¹G¾¥„¨(pR¯<™¾ù]žÉ²Ô#Sø`¹G¸üBõ›-$÷ǽ~Ç—ÕpÃi¾U¬géVÄ,±¹o‡úý2<Ž¿0Ÿ¬Î±Û}}êÄX$LLE2¤œ»²Ü܃M¥™r“¸Á¥N”7åe/gD­M3(ía¨/¦oÏõÇc9€¸,r¯ª÷“…œs猴s>P5*¤­ õIñ)<Ñ$Ïü¼ƒ¼Tü·“n&!žÆHÎÚ1_#/<}i›^u•üƒëº kzŸnªrNª~m†AŠÌÀçÏæÏm?À bjýX.UÛE&JÇVŠ“Q*dxlhÕ¢ëu¼ÐÈ::ógrŠ×œØGòåjÖ»P/æF¨KfùàÃúX2žðBŸ¸Ý5ßIÍÿ@<ò~º ¹©ü odu%6MJ´[ߨ£Ô³˜f„±PÛ ÃÕ‚kÛóh£B>{-Äû)¡2Ô3JêXŠIá}@¡°Ô`ú¤QÉÝ Ìb\˜3¿‰J²Hçˆ\ߺòôÆ0,¤ .ûÚhêý\Ÿê7u (U»Vß4©}>©öqLeõi¹¿´Ãã‚G¹EÅ·éè zÂ(£Ûñõ´¤¹ÉsNC­ì —X™Ø;TÈ·Ô­-U\Ó¹/ÂÆ±Ñ:ï 0`CÕž¯(%oÌA«­S9µVím{­GÅ~Œax”•Ú%JÅ幪ãã’Î%$•{P˜¥ÔÒú¡ä‡ŸÊVsjõûo~L_ÞðwÝK-Œ”—Üzˆi !™-3ááìL½½fQu•ᵬ*gyRªÒ))Ùâ« ­øµé)UöeˤV_;Õ%o(ªíT6®` ,§‚A&Ä ÇAoç‘ÓŠ÷@ƬŠÓÐûâ {mδ«XžE­·× úÉÏ)?”¨½vÑI¡bžÉî„M*ÿDšÑ`@y4‚HO8[‰½5û@EãhDSÑ3EB®Ê1਱šì#å\i·K5Î58øTæ?û—'݆ô‰î= RaG¨Ëƒ);­åå½¼³ Ýð^„‹,¤F ‡nòª'G¢òöTÉ`e‰ÞOZX²m“÷0Œ!Žû¦°å4`“q²·‰ £WtðþÖ)ÔÙ_È~xI%úIÈ£€Q.ßyyå…/³1_˜¦¶X¶éËûeŸ%•íD³ÔîѨ [qâéÔ~”þÁW‘nJ©Âü:óúâž„ÒÓ¨LS]Ë-ý¬üÃã&|ó“ì½Ô(.c…¶ÊB§‡àY©/‚"-,/ˆúeTýs“dØ\O "ïè4Ø'´ÛýPR—Í<wé·6¹È¶¡«V:󷀺áK]Väi´Ž½Òï`¿"aÂ^é÷°_5b62Œ£{ ½Ê±Ôñ2Ç}ìãŽHqpLèlNèlJhKéìéümÛiM ± Ƭ„ÖND^k‰9›;@Æ ^é¸,›¹†•Òï`µ"aÂJé÷°Z5b42 \nïåé*Ǭcãe¬Ð2›'&¦é!§E±r3VnÆ*`´"©¾YžprR2Ö¾NïàÉdFDJSMuJ0-Š2õ‰eLRÂ6lSÁÖÍØ:Æ6åƒ~Ÿ ƒ8JVéë¯Iéw^7b4Ò!’;¯sÌ:Ö8^˜:1á IÓöaøf„¯ ø¾ó3º Â…10'BŠ·;æ¤îtÎS.I؂ӗñì€UxÆvëÐnùK§§ÊJ¼ÐuãËÆƒU°•~ì ØJ¿öª£‘(VQzìUŽYÇÇ+`'"\}ÌæíÐ.F)A;Mg´ÿV~B¾YôŒWMo#7 ý+:N ¯á±ãØFNн, 4@€íI™‘×Ó̇aÍØÛßÑþà¾GRc§±³{ñX"ERä#ErÀm°Ø 2HÙµ- ßzAÒ™G”€s*ŸîræèNätµ b_U³¬_füLÀÁ³¾w|ˆcrÎpñ ¸Ø,f‹k€XÂöåí-Ñ?Ä # Œþ nq6r¶X] æÈ±@›³Zß–p“n×4úÇ×¼nÃÈqCÇè£ÇוŒ7”|®S&^3½Ùb“K¤ÿsôÂë9æ…¸Ífœ&òó ™Û ùkõu8 óÀüÓrʈ>Ã=ý½×¿È‚úÂë²v_Ü1ýô¢¢vÍG³6›M²Š7к@Î7xæùØåç '· çsׇ»%­èw^þ e+еý*5Þ‘ÈkpÕ(oh‘N[y)Ý»TžÀÕ°¿gZb¸¦î›®ªÆTª´G;Q\Ú1è^íô¨r¢ Ȫ—7~e»%S}–% Žvr–»Zlzº®ÃAZ˜¾5ëõð XšÒO¿˜ËÒ ‘«ëº6¸§n(v¿£tôómGŸáaš³1YgØ)!òÈ:DÎÚe(·Ì=C>Ïvá0ujÿoìQù²Á"¯âŠ~â^B¡ Çâ8Ä ì…ß‹ _T½o'Ðÿr‹§Ÿ¬sÐÌæ ªÝÂ7mJ÷bóFœ ]Úc%e-V×ð+¥D¤÷µ Û­m}tNp>2®±s2W±X€!Æ×ª"3ä‘5HGçU½„ àPX/ñgÖG2RnŽ¡e …Âvpuq ñ}ÉFðÝ9D üŸ¼mgh:¨­¾13ÈÊ*¡fTáýÃô&ëœ0AŠQK½;?÷üJH‰Šû¬õû¾*â5"¾éÊPÓyx” ߺZÄv/ÆÀßmÕ™ë}b:ÜqЉ$È›¤¬þ燠 _£Ðl»ƒSpÁ ¤E{ÝÀh¨G×TyÕ `U­e%@‘”@8¯AœÇ/`^ ‘Èš²Gl“¯D#ôLC‹fë…‘| ôåt«qMð‘ ¤/Ô­KqªIAG‚ P‹î´ z R %*Æ›³ìRœ¯kA5ˆ´>ö‡îždÓñÂB¨-“¦È,qþè«ZzË®eðœe£À`Ðë-ôz—,fá­¾ã‹M„ÆGwÚ!æUÿ®øæ£ ss!õ²ò³!•«zž½Ø*Lœ‘{ý¤edk¼LM±1ËÑR”ÃS2­2M‘5M__bœÙkp».&AóJEØ曋ûP˜roTG×’ÎÎ øL¼,>Qé"<±ÓÉ!QÞ¦ìzŒÝÚ RWHœðMdbŽ;x ©ñDŒó/Ý å­ØyÉC”‘¢§á’ÜsÉe&Û‚öPDH©¬éx.,@hRu"Xè©ÆÉP ^~Râ!Ðó™…¨ÄsWqh49_rH|aás‡.Ñ?696ÒkÕ¾•½J™Û¯*^ÙÂ,²‰Ã¨ÊMý5ÎÓäèrG—SÆ.1è²W¶‰k†º¯öµÝãÔØWd|!Pú"ªÐÓ_šþ×z0 endstream endobj 118 0 obj << /Type /Page /Parent 752 0 R /Resources 121 0 R /Contents 122 0 R /Annots [ 119 0 R 120 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 119 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 133 501 159 515 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 120 0 obj << /Dest [ 151 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 180 501 206 515 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 121 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 122 0 obj << /Length 4486 /Filter /FlateDecode >> stream H‰ÌWËŽä¶E¶õ\RÁ”F$E=bdáñx °1È< ; µJÕ¥ ZªHªnÏw$H>!¿™sIêÑ]Eu²0iLIä½¼¼sz·Û¼Ýí$lwØæyÎ"ü¹×< #¥$KcF™ÊÙîaóö›^³²7lëËÍÛï> vßoÀETn¶ãëÓægþ)Ø füK £Pð¦85ŽïÚKyüXìY°•ÿ>ˆ± U°MðìEY7Á6s~"±ï.õÞîTtRâ,žB$"⟪²möìÛ}=Ôm¿ìþ´ùv·¬f›, u®`ˆ…ŒY¬â0‹cMSɺjsؼۭ8@eaËŒì'ÛDNfFÖÀoÚs°Í ,Ä)Þ1~kh…ЧÍc@¿ƒUêíçñ8T¸k÷žD•þ»`÷×E< [nÉÖ¡±¹Ô½ÑÍL’—y’p¿ÈÃN¤›c^nÜý†œDn–rÁQ†îÔ4¸ÑÒ£,b[ö5%‰”«4âÿ–Е±Å}@—T¢sùäeç`-CÉÿÙ¿i”‡2J À¬±ÙdlfÝ+vhO§ö©nH¨6´`§âw§ŠõÇÖ˜“ñ'8;æ=pä3Lãì±8]*Ú(Vt•õFy麪NÀ‘sdî+:p¨›jë:r®ŒÃt¤7î ºÔÙ8°’9Vr‘Þÿ¹øŠÈ0Ö¹4þp¯B¦a¦X’F¡$Äâ-Ò$¡©uÆO®5?]ì³b?VÕÞ½»' d\h^:æ³}A‚ß;»¨Oõð…Â/’ aý¾±ÛCÕ9î®Üq$•}iFùc‚Ei˜ ÌI&Ã8F|)æ‹È¿NÏB•ÏôD†2ÕÏ8à$IüRªl¦gUª–2{%ÀU¡JgºTÄ3Ž8ÏC‘û%¼FŸ½ °7Òbµ^Xé㘭ðqÌZø8Þ-Kþ-&a–¢¬$š<"¦š—N•ÝUŸÏìeÎÚª6[‡i*„+m~]½|Ç„›;Ÿ†úCíðuïàŒŒC6wãNó$T@÷|EOú‰±žótÃ5]ÞóùŒÊŽºÍa%\sL`ôè8Óoë¸<KG ·dbq^!æÙm'áŠcJo¬ÆXBR.æt‰ÕˤôrÌvø8f-|HʵTD7•¾šŠâÿ!U6ÙíT¤ÜʱꪊµHè'v:A—!5Ð¥–€Q*¥¶soŽP®¦”¤ÈVZS²Ù ôåj gkéo=޾’‰> cëqô•Öã‘0µG_i=^+F+m%×Z‹—cÖÒÇ1káãxÅ`ÍUœ¼Žby…b\©t±dž¯Êâü±jžÎ¨H2^ >VswP$•À'‰ætÚÌêì`æ³"˜adÇF…Ï”`4Ó°@âfaxï-sÕý¸þ¡’Ú6e>S̑۸”ðiûqéè+¸ôIqéè+¸ôH˜péè+¸ôZ1Z™·ñ.½³–>ŽY Ç:.5Î':ù/ª«B,5ñ”ÿ+HùJé;W µøf[àôgþg*T’ª(ÓÞ=»Ç©¸ÒÃ|Ý&<|QcU˜Ë4]~,š‰%”P+³\û¡äè+PòI¡äè+PòH˜ äè+PòZ1[)R½%/ÇRËÛK-nsx „ަÑY5f•â ƒ’N&,a”ÁÄâRcKxz… ´Ò8_¶ÒüY·>,N€bÂ$½7¿U Q¥h·*‡«Ö,rÌ:¯ÔA¡Æ6þ†/«ÚX÷\ekiH1Øšö;8TÒSa| „†&$d¿¨‚a@ƒÃUùÓ9ÔÆÔçÃìH÷cÖ+Áav¤û1ë“0bv¤û1ë·b´u!OW†K?Ǭ¥cÖÂÇq³"ŠÆh,E–¿‚ÙÌaƒÞ5htÛß´vŠÌ_Bõ§Iˆ…¢æ_0<>G!A™.Ø»A2±ƒdlÉÜ€»Ã¸8*'©®_·hâŒÎüuôŒú$ŒuôŒz$LuôŒz­­L0Ôe+uÕÏ1ké㘵ðqxêj*)¦cŒb1õc‡Q=cT›! *4sSàŒLDé7,§jžhlxŽÑŠ_³Ô¢Žî@%Œéë =b\ÁøsÛÑu1/P#3~w2‹j†²Lñ¨Íî~°²ŽFðWfÑWÕX{›•…¬ˆÈG2àÖÓòd¥ eèÆeÒŒ÷T¬4ŸW£¼¢´Ïéà @Л޾’> cz8úJzx$Léáè+éáµÂY©Q-u~+=FŽX†9¦I¯/ÝùÉÑWüä×aäðÝ1zÒÑW<é½câðÜ1ùÚÑW|í½câðÜñEd9‹ /LAß%*Š€ZÿĿ± Ø¡ÿgþ¡¾¿t€´Û$´}ƒ±¯ïúÖ¾Ÿ.ƤÌä’†=´{Çÿ9’Œ=§KÕ³¥‡s¨î”¡×+]"|\Ħ¶ÙJ›"åÞ¨¦|B%ªÛ¦g2ŒCÉŠfoÞbÖÛ'Fÿ‡c…g?°²hØß.&ÏQD¨9RÇûú¨`4¼‡Ëi¨·‡ºqLÔ M¥@GÝø}ÃÎUó†êBÄé2ôÈkOÄÈj=Ö?1Ï ÂÍ ð††ÔÁ>J»€ò̾æ÷l³iq˜Þ|ª£‘«Kжn˜å°šœí¢3µy¨­¼Ëi¹Ëž Þ¿qçû ¢=YN§çÛFøÁœo*N|jo/ÒNÝš-h™PÍÙgwÁ`«°Y¥¸7\8 tãP.ÞãDþý="‚Tj%èHG<Ei{ýщn²œ•¤¸nqÛØô€-M=ïêMÕ`7o¶¸dnp"žÏ .2•ÆÏÒF3q‹;3éO>ʬàÅ»z`uÏúʰ oœ%oì·Ág†–È­dyRˆ·®©ÑokØXL^ëf_—öÔ`A²[“ÿ3>Ýd}eu<ãØæ\6å\fÍ<{v,Hߦ¯ö.X_›áQR 51QP®60¥&p]{`AÒø¡oØbg–§z?CÆvË~ªøPMÖšû«þ\•uqÂåRÙ¤ÚýÞ…´CZ3žj ´¤Žþ÷ƒ{§Ì—È{SÄ2ltý?Lµw<Ž'p ¯,oY±Áîi·p‹g›#—OVXÑ¥jŸ“ü¸”ßÞa-É„ªh¦“å¤zãx-”qïѪ S‚nèi¬Êø‘|þ\«#U°g>£„õ‘ý x`] t@ ÉDácûêTß™EZå* .ÌG„pš1!‚¿ð[Ëm3G S™ÝköàNUEV3­“£žF;9çž‹æ#pl¾xô˜XÒT~>SrHÞþJÎËxý@»”ü+ÃPÒù…V''R¨‡^(‰”x¼eœ¸Ö6$„íÚ ‰8~$¶}`˜´úíÕ²ã¶ïùŠ9R€VIiµDàƒÄ@Ä€½‰/\‘‚hK$ÁÇnþÃþàTW÷”[‡Ä=È™žéWUuYIظ^ÿë2vm˜%nÌ]æc(ZïgßJ`^m¯˜ä(ø°˜hø¿è¨<~âîÛ ­Ãd° „8ßH*ù´™gO€3“g·Bk“BBbdŽèÖe°ÜoTšuÀ7õŠÑÜãf¡¸•µî|mrÈŠƒZ8 É1õëŽÞÉZf¾ ö>0¡*—Wþ̤s¾R}»òrödnÝ{QÜJ¨òªÓ©z¹’ÅJÔÒð³?W !ý”â÷7E´à×9ý”“)R}#!€,Dö@êÕ%ª}'Y&W² Á_ÂØÃæ$*> á(ÈËÏ'B»¡Y8ÐÃ=´ÎfÆP}$B™&¥‘Èã oÉ{ºÉ;}jY²8Gvô´ÞL¸‡gv"š&·#šm%H·ÐL ‡©‰ž¬Bý¡ðÐWÂC0Sè‹×¥«ž>Bk+jh‡µÌÀ½@aíîe!P\Á¼WdÚ¢’R÷YÞhÔ$§nùŇ _¶Åýà“Mi”gÅ_Ù¼QK÷4+2Jˆ‡íÆò}`ùBU s}ò!WÎOùź¨U#ª•0F¹´ëÒýN¡Gø@oÑðØª‡¹Ê&,}D-€žc4îmuþmU‡{gý¾+žs÷Te–ü0 \ BänêŽýRïbÉŠ¥å^»Ïµª¿ò‹®†“iiU.¦DÈ•PiΫA¾±} ñ\¸LÒ¯ ÷úe"q9Ü&½•²²*ï&>Õ‚@Å´j9³Ÿìoß.U€ ™³L%ªÐÄŸaÐÈÐ=ŠÐ2˜›¢ír˜G®Ëj;Üqkœ*ÌX.ƒZ-YQ†¢O¤Vâ Æ[¤œµ“Aƒú¥n*q®õåÒìËôé”UÂYÌÕø\²æºcßBß?Û 9O˜!a¼^E› F€o?N0Z%É8½“ahNºWœT×?ˆÄHd|"ɚĆŒ’g¥¥#"Œ• E’`2L‹Rë:­¼+ʺ‡(àƒ0°}qç S Åvc¡C„̰Z’h²*‡ÈÏ!R]@Ò^$ÜÄ[HŸAI~ŒÖQ< –FGïT È”%T]êØ5>˜åa³ ÃI` hGFÂösÞƈ„Ò"Ár¦²7‘1”lG¶5yþäz{-æoèøùÛ æ¼À•@ÀÕ™á ü5TWTˆL‚ß%.ß“pÁµ-Iud=k{!X$5fÓôš|¯Õô‡ÿ-m¸;Žƒ€quŸÜ,ñ}Õ4y[£Œ “@k s ‹ \¢÷5 q苘…‹™ïÙ—?†G‰³¬;¨ŽÌü+5…ú-Dº§q„âQ@ŸhãáÃPªˆ£G–ÞŠkUÊ ioAšx°bŒP9P |×ÖqöEz‚Véò¦¦/„”wz“‹nõbˆìQ°²­Ý‹á`“ûÉá |Ïÿö¸yƲZŸI¼ûUø€mèèa@}¥Ç¯ \sŸ}rp3~hD¦;ÏÞòÞ)§hö… #*A‹€&bæLO]݂غô ¥:íÕù<ãº&oÉqƒIléŒwÅg`%¨´©>!ÔO}7ÖýÄñ¿‚&…¡fÀÔÅМQ^þ‰4¡ò‹Ô¤ê}N_ömõµ ™ªÎ›®È1;M@7S4bO8€î%ŒL,q¢_d¸‰“ziºýÚÅF¿¦Å i2˜ƒ°ª«¶Pµ†ð?«ðU5%µÓž)%CQƒK‰1 Jg»™íü+é>Œt­HŸÒE[…ÔÄ×GÝ™»÷tõÑ•9rž1ãƒNs*Jq—"CoL›btýÚ-‡šÎˆw$éÙ&øQJ.á5ç¢L /8Y‚q¨”™1cX(7§Ã+ÔÝÕú`Ùeõ˜½½PÌS¢J÷û¾"HZ’VÒ¹P†ü±ýåíÿ 48l& endstream endobj 123 0 obj << /Type /Page /Parent 752 0 R /Resources 124 0 R /Contents 125 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 124 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 125 0 obj << /Length 3152 /Filter /FlateDecode >> stream H‰¤WÙ®ÛFżê+ú±9°hî"ä!öx<  F(²uÕ ™¤tü†ù…ùÍÔÖ%y20àKõR]Ë©SUÏ·«§Ûm¤BµÝ¯ÂÐ/ŠBðO>‹Àâ8R›$õƒ<.Ô¶]=}1¦ªéX ÆjõôÕ›P=Œ+8 ¨Z­Ýçãê­~ã­ÃØÏõï^ø¡îÊãdáú¶?U‡×e­¼uèï=8›™Œ·Îàï°/+ÛyëÂ/ôƒâ–zu²5¯¼Á]ø†Yè7¦ê»Z½¬ídûNy¿lÿ½z¹]…ʪUžûiƒ!¡F‰JâÄÏ“D¦›H fµ_=ß~ÁqîI”£ýh[X ™ø¢?zë” á–¼þ· UàǨ8.<üb¥žþS<žø1¼µýŠªVúoÞö×E<@·‚·Ù¡ =*_ø²ŠÐË = ’àý°ð3p"¾œè½˜ir÷tº9Š'*_>`wS: ƒ5Hò@­ÕwhT„[y¾ ôÿ"?QJ½.<|Äx1Þ ƒÙÍâá4òÓ úŒƒÁ6¸ñ5°…YᜠÒfLEh¸þ—§~°UÙ¨®ŸÌøìÚo™¿In¥0pfM[ëÐÏ£‹[ãÙ­1»õǦ6ƒx5b¯nÄg1x5öS}…aôsª–¸?ªG;Ôt0ë…Éà’lÐ0¹¨W•Ç—ï'ÓÕ¦¾6&õCg ^¹ø"ŒÙÊKA5P pÑ׎¾lc'Ì'„sg'e`ûmŸ0È9oÔÔÃCµ­Ñ©¬<¤¦‡³Ã6³Ã6¬Âx:ûaR~BWäZµ}müJmýhÔ±¬Gu(Q®zÄQÕu˜ABscO·¦OƒQ=9ziáÎ`ŽóÊDn}´58¸TÕŸºIõ{Öuû÷E¸ßê½í34qIÒ 4>Ÿ áÅ b6¨àËß©³àÕS˜glËðvjw|ÝnÊ¡Š)ûùÜÑ0Tr½ BŒ,ý.t¹k cF^{ë½îy4`úîd›Ií̾—°6¹ÃFÙnúúT]Ø-¸ M6[’±% è]T~ìPIµE͵ð°àö³™IwÁltÙ×`ëZ#¿¸¢¬;¨¨oÙq!;ݽûqú&H¼ÌŠoUðD¡ûC€’p¤ºS#xñ73ªr@,ÆÚ8¬oüôëÑl€¤[ ܃ÐB×0å!ÇÆƒ©ÕitËœüøþÏê\6'óL©Ÿ±~eZÙQEiªêÓ`&‘–Kt¸$!‰žÂÜ‹û¶£9+þ7J“9>ãzo@j•,z/šl4¯¼éiYD¦õUºS5’2z<€®ÙÇ«ó&èÊ ¬@)\èn÷ê«Ó“©&Sû3)€ .¦á5ùÉFÒZ@Iò½B«ï»}?´%çE -Á»“,„ØÉ‹fy¡ŸÅ_H—-88kRUÙ)™ÃTqŠ'ßëìQ Õ€³&5iS›±ìN<œ‘‡EÀhÿ`é肌éÙ Ÿë»ä¾°ÔzIStÀ þôˆb<$”}#õ[C›#¼RÐË´B×fì@žÝ·â~tí«0\Ì;ȵ?Àu¬¢?ýk?ÜÐYâ2}Òœ¤! ¡‘0Ö7$Î$^xî8Ø[fÈ¢“ Œƒ®‡¢ò¡-áÁüf§M’Â4m2b¹Ëáîsh¹‰S6ùáË9õrnßÔ@sŸòÖ7ÝàüY*RSŠ›ËÀ ëCjc;6t7š$³&Rtøù˜ŸÏîÈÚu ½•h~*¢ MôÜa,˜hr¥¤Cgs£·“5;š`ž$î ãetv¾\b&½¥&v4A>»&_GÛ¡ÞˆîÔ2ùQÓ«qÎ(©…:ÁPdÀƒ¨ Z̓êÌã•ùrÎCI®ëë@EóÜÉÜ&ˆäXðÿ`JŒÐüH„Œ‹à òo/¿å¬f•Ó™³ûTË"dа:B¸ÿ fAäh‰0O °háBÏO¸Ÿ÷"×K\‚\qú ZªdC®ŒØ·ß ô.’d\y#"Q1$Jãu¥1“¹Îb Ž„h×ͨȺO8U8ø˜.ã¼pKà ²9"¢ñ¾…|¨ñ½U´ÈšÝÄŒ=ßáw½?j\S„kÍ„¡Sb!¶¼(G°;Õè™ãí;^¿O8Úý3I‘ÙwÁYäô³ÖX{©´Š;Ñ®|Í¥Š7CÁ«ª|•Žåþ{$´MA‰\ƇJ;œÎ½8Cê½&Îãî¤dS¿£¡UäÝaß+ä§¶D )d´ZËÿß$ä2ì*ˆÔU°kDº¤ÄëÄŽ´(§ç±ÓAËq¤Èíp™¤Vƾ Ÿ-€òÈéòªÓ ¥&¼Î…O>H‰ÖH¼ü3|šzéÖµ/k\;EN“%(73áܶÒåe.@ £´U£7ÜG´3púÞÞïýE  endstream endobj 126 0 obj << /Type /Page /Parent 754 0 R /Resources 128 0 R /Contents 129 0 R /Annots [ 127 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 127 0 obj << /Dest [ 213 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 211 128 228 142 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 128 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 129 0 obj << /Length 5102 /Filter /FlateDecode >> stream H‰¼WM“£È _õ+êSUP@Ù§™Ýõ8ÂŽŽmݼ>h$4ÂÑ-Ú‚žŽõß°ÃÁÓ/¡>¤IûâÙ¯xYdåË|ý~³z·Ùh¡Äæ°R*³Ö ‰ÿÝ¥•™Ìs-ªÂd²Î­Ø<®Þ}èØõã2)úÝêÝO÷J|éWX+%ˆv«µ¿|Yý%¹O×*Ïêä×TËL%§íÓÐâõM÷¼;Þm÷"]k™|J±`JK†&]—ø=¶»ö”®mf“/©"HüôÜî§' ½©ñ.~•*•Lî›]wÚ‹öíÐv'‘þuóÇÕ›•­XÕuflŽQ™Ò…(ò"«‹B`§•çfuX½ß,$ ¯3[èš¾Ÿ¾MYúL9}à‡î)]ר¾o%ç´À¿-v%³œ6N)ý;L›z÷£Ëx‘刵ùHT»Uò›tó·‹óÀÞìO -Æ îŠ" MY”a0!¾²Y‰$Rä"ÙRËdL÷o)I”f­/Vì2w´²21J®Á.k)Öâ{ú(MP]W2ùÎ !ÄÝöKJAš4§÷” iv6:3R3 Æ·ÕoÖš¬ñfi}®AJJOß­d:ÃÎr#“?uûæA|ú(>·CïòS(Ö*+ÌB_'ïUyö¢\"Ï)ånhOSÄK;Å׿ÜS±å™G·ðk#úç§§î<4{±2ÿÏÇq›Ó)|ü—øûssÆM…$ºÈörlwÇé+ƽ«‹½›°w3í}ûðнôb86âØõƒ:ñÐlÏ'ÑžÝùq;Ê`û¹{Æ5OGÒZfÑâßñáínû \묚öb’§Ftci˜ä€¯6ÉôþvŸ ±9:¤—ß”*Z÷e^%Óþ7ßÍŸ_•ömÃêZÏmß~m÷HW{ÂG|ÝžÛî¹'d}h›‡}ÿ;!œ6”œN¶¦¢Ñc¹K%KT ªEYYitî+ˆ®¦Ä¹–ô¾„Nm’§ëbªþÿáÊ:…¹TÌÕ2¥”ãc…Ç–çôØè‹ÇuXmÊ">®ÂãâruéI(«*±õøÝîR¡Š”‘V”èRµu]*4¨D\w-*55]e¦ÊÇÂB;IkÓa§9Tlñ«ªÒm³¦{ÅŽŠ­rdêRèa$ò ©¿Cê¹]€Qö*´U^.P8`©-K@xU,á&£s¡²×,z_Yð Àm½„Û¬’7JÓ\®Ðx¤-¿Gm0rÕ2^åö2BQ]EÈ¡RþÁ1nó%\AFG@c®#”"ð€Ž9/kð_Òçꊾ@5Ú’ß`¡¡ó:â(æ ò¿\“-$¿·ÒùC-1øo,j•™2â9’¤ªË¸ÍdU³ „W¶ 8p~½“CàPËðÔ(³ÒzXgh¯ÔÄàA óx¬äy<Ö!ƒû*š‡c0x8¡y`ËO0ÇäŠ;š÷:ùÃö¼‡‹†“—T“‡Þ¦ÐGrn¦®siJá $µ°5‘¢}Œ¤?§k¤{*Jz÷{þ:ýº[„Áy&¯›µÏxø°ÄÆØ× âVÄq+ÞhݵÎTñûÖýÿìÚ¦F=à/&¶Œ9Ü—1ƒ‡2fðPÆîʘCs¸?%gÄàoûé‰JÕʆŠÎÇŠ^¿6ÔùÞÚyå’nlîí¬!;+¿-Æ[çns:¹JzS¬q[ªè¬/°¼=Z••¦f»ìa~ s~ _00™ep90°™cðù‚ȃÈÈ,Á4/Þg2Gà²ÇùÌ2¸¼ÀtÂ0¸ìq~ s ~ {œÈ,ÃøÝ³G´áof„Ñæñ¾euÇÀ^w^ÐCt8Ýq ^wž×Ãt8Ý1 AwžÕGàtßçtÇÝ9|Awƒ×ÏàuÇ1xÝ9|Aw CÐÃtÇ1¼‡z®³Ú؛˕ÁC1Îã±ÔæñXH îËdŽUÀàá„æñ˜y|Ö[Ô…¡œ`„›Ñ <Ž^{¥n£²¼"sL®¡…ÿUè/'L|ÔCŠpdU»?ýRËJ^¾ÿìõbGW[÷ûs áîÈ$d59Þñ9sì–:˜2D‚Pùøx\~µ¥HãÝ=°/cMQ'xê ÔãÓX£aÕo¼9õàZV7Þ\NŸø?tGê:5ÚbU8ÊÑeĈ3èú#­hOô*嬞rF7?5ݸù - ìpƃ2ù5EþÌí_HM6—æ=Ö5· 6³ V6³€J[ZÃ/0è(ù(nfÁµ]…Ê´ÆÅ·EŽü©Á@¡ØnÃÀ~z:xaz2á#> L×›®\„€3üôõøéËDˆø|„0cn:3">!LoÞ\3ün¸Gzn¸3üŸ†Œ Œ™Ý\„€3üh‡`®#„ÑÂDˆø|„·ðëæ€)ƒ– Æîà¯5² j- ~e© ÿ×­47ÝþØ~y>7)Ô™~ž‚ò›îyw¼K©)%Û½xìö‚¶Ž1—<ˆOÅçéÍ<RF=áeœ%:ìÒ¢²Ý&éÒÒÜ̱G©Ññ™n–JY}Ì]Ñ7dž6Ð<ÐȓɧT!™ÉÇtÜé¡möý„lÏÍt±oí©Ù‹m/ÝÃC÷Òg·Ó-£¦›!M~©Ø@ÛÓ¡»oN}w¾î¤bœ‡îwEWü’|n‡^hõoUþ’Ž˜–Ö Êó±l< 뿲íE¹NQàD!ãU;å»I‹i^ÓÍ^´ûéÁ)…^“¡uk§‡½ŽÓ•F’cHjZøäc”ZŒÖóøÖ˜Ú‰^tþ´d7Ç»íø»ÉÞ§ìÐòß lwZ1æzJõæ;÷}UÈQ5})¶'Ž]?ˆ¡ûfhÎ8,Úôtx}û2M ¿•ü—örÙÜVÂð«p)œnˆ‰Ò2A²208ãA™ì–Ç´ÕF_&3/’¼nþâMên$ðÆn±Jd‘úXõ—èÇx}&øNÕ_{ÌêbûØïh“ŠjW0½´?çüTz]C³Òôê~³ß´ÚE˜:…©}˜žœíø·ƒÎ²Ø b·=žÜ‹£;[颬Ýa¸ãÍ>K2 aèàAoõ'ñÜÄÃ…e íÖ¤àhLÌàÝ?Ú…@ˆ¸¨+‡Ss©¢‚.û¾ ®å‰BÇë¦X—•«éW7àVàÊV¯u[a*, ™3GíN{«enã#¦cn w[J’ €Â)‡»ÒtiKÊ(]¸:Ÿ_“²¨¿ÀÈÕb6#ý<…¡ý˜$ˆ´Õºiaè”)òëü¦—¡ì tµ6%[!gs3½3“*k–J07C,±Ñ.-îMuU¢ x ;ÃæéÜl´Ëf&`Ó&9iœG ‚sðUJq¤)¤}…@„¦z*Ф™©FÉP£*0ÓòâOCZýŠ"Æ>–˜¡\ð±N·Èý£›£©Ã*e=ùˆ£ë)JnÉÕùëK’¥¢þk¸áNw¤éô­4 \Eû-W“"¶Kñ£h×dêôYåݯ¡Ö—òuþ>­pc‡šÀYO1v7$ãGÄ‚‹q²/Ç8)F ¤µÞ—VCr3.~Š—€&ÿ±âÇÔ¤@&tînrÙc¾‘eç€û‘» $U]§üÛÐ¥€˜3µòw׊ ¶Å]I˜h¢B^'xt™Š>S,²›ηo—ʪ·Ã×H¾Æ•¤·F‡²-µ¯&F|„Ô#Á‡þ£èG?ºétª¡Áû ;ö^ ž½ËcIÅñÙ?|@@øÐ–7· h¾†ËÞÑž¹CÌ 1{G;Ÿ½¹böŽv>{󻈻D^²u&=óS”œG ‚sx?cוµ’ÅO½;~mÂ/È1Y8mш»-È é»-ü¡Wëâ¥TãNA¯RО¿ò¹vj‹Äâ-u5Ä#EÀQìê˜uÁž¡Ž™!QìêØ]Ä]¶ ²ÉQÇzLQr)Îá êˆêpÖuú½©ó2—¨S¡÷”mé2Y…¤gÔÙ?¾‡‰8Còa,¤w½¦½E ²·Â>YÄ‚=ƒ3CB,Ø3ˆ13$Ä‚=ƒ»‹¸KìF¶9ÄX)JÎ#Á9¼‰fu˜'Ê@FÄõ·‘f†ùþZ|.ðÙA ¥—z¬ÓMñ¸OîÑŽçaó¹ŒlÜ`èj5ÍÚ6|mº*ñÓnø†êŠöí dS ç,[í˜ó½—²ÿt p´8 ²`Ï@ÆÌ ö dÌ ²`Ï@ÆîbÚe¥»œxc=æQ.{Ì‚XvÈC¦Hy<\kß=ÉT=C½V”$ÒØ'ôPÆ•ÂÖ)¸¶8”TûMch‚©4òßú§Ñ?Í‹lSž “QÒS ÂĺH]ÊÈâ—-Rœ,6ƒxí7Þ(\U*"”\ªú*Õ¡UUŠÅ*Úy°¸"ZÑÎÃÅÍñŠv0~a—m·n*•aŒ÷HQ²1Öa3ÙÔ-ÕàÃWF_P¦QßTlPÿf‡ZÛöŸ&9›ÄZÍ;6ˆµ¹Œ*) f»B­.^S“úÚo殎ìYÇžqìµ ìY½¦³ì{†=f†Ä^°gØcfHì{†=vq— lê{¬Ç%ç‘‚àòì$U·<{³=ýì¥ú’ª$ôx J#qT<ܹê©]õ ²p^A[n熇[ÊjŒ75OY°g(cfH”{†2f†DY°g(cw1í²(#ãxy”˳ –ò”)|»Æ.5 R_w @·iK« ¦_‹ûÿ‘N¯‹¯Z¹Øy¢³h«ÐyŠ»YG‰Læ´Xññ÷; ?øHÉÍz¹¦—²VÎzR×ÞÂ…Ãm*^•E{.f†W°gàbfHp{.vq—ú©É¥0ÖcŠ’óHApy¸ª" ï±)¬~ïfljÒúEuEŠÐÒ 5W$n®ÙÕ¨ˆ_½¹/©QýÃã°¡H‘á†Çg?,{jTµëL±ÿòÝŠTv¯TðT-d°g€dfH@{Hf†d°g€dww‰ÿU®gà=¦(9çRvÈH’DZywÕ„£ššVìzŽã'×ìÐÃvHô÷P®¨‰¡öUºÁ•Åã³sëŸFÿä¦Y»ô¨½Ø£Q?Ù¦uñ_ñ¸ƒ÷ðèØp|_Øó:¡.Ñð.p\¡Ñ2Ïq°g8ffH{†cf†Äq°g8fww©Áy—«Ú¬Ç%ç‘‚àÀñŒ¹%¤QüZãuISS&}™D[åÙÚŸœðz%ªHPùvVÏ+z­øóºä›µiøTòuãKþÿ :bÅþcøøêÿ‡ÇÍÕ‚¸Ty¶ [oÆ–l V0ód1ïG°‚™çŠy?bÌ> endobj 131 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 132 0 obj << /Length 3639 /Filter /FlateDecode >> stream H‰œWÛ®ÛÆEŸ è+æqX4gxNƒ>Ôqì¶@Ñ GZØ} ÄщHê(Îo$È/ô7»öÌ¢®‡÷žÙ·µoo³×‹…d‚-Ö3!B­5‹ðÏ¿ê(ŒâX2•¤a”Çš-v³×ßt)[u–-bÝjöúý“`ÏÝ ¼Q„‹V³ùðzœ}äOÁ\ÄaÎ?2 ¯‹}_áø¢9¬6ß% æ2â Àb@,½ æžíºXUu0סæÏ {¨J÷ÅÐI‰³x ‘‰ˆ?™US—ì۲ꫦfÁŸ}»˜ V±Yž‡©Žaˆ…LX'až$ š*ÉZ3[ÏÞ,8 ÎCÈœì'Û„&3#gà7Í>˜çPâoƒ+h…1)N7ýíR¯ßy'a Y‹·tÕjÆÿ,þ;‰tÓŽìšX¡þ$3I^fäaÜùB‡œH’^3nÝýŠœDn–r± ý ¨JG<Ñ·GyÄæì/d”$Rž«ˆÿO† cì»â9 !&ˆéœ£›½‡S¦‘¼ã`Ø&¢{`)ŽH•3éPF™¼í@e½Í«zÝ<™ºkÚs_%!¢3ñU>ú*÷¾ê ‡ÎG’ïMÈœKÞ)\×8–ó–™­Kròžâ»`óýÖ¼bëú¢.‹¶d‰÷\m ÉGKÿÓ_C\»Š%ù¦gKÃvÍ¡îMéœ5·ÊÎÄ”þÈ—¦6E¿aEÍš—Aþç~"%àj¾}Ūš7ÕjÃVEgX¿ñ|fÌ$ÿ›Ã¶$¡M[š7î(ÙºmvN…ÅWÇc¶N’U¨e¤*œ[Ù—Ž+hÙíýé>Îìt¼[ü"‡¬ƒÄRðÞ†¼àî$´wŸzÏ^•ŽPÈþÊ6^d¿ñg\朄j2$ÏïÄÈu>õÖülȤ½aE‡³ËƒOܹLÂt:ë91©N[}­­5•m}´ª¾§\R¼Ù¹'t@dûy¸ÂkŸ†ÉY5ÈFí³“öHïÜiŸöáEgC„l•ýbcئézV¶Õ‹i¹Ò›£Háêl)VõÙ®=˜€Ùszwd¡ÎNÞ°zÉtЋެO^Ñå( ÜÔì@ø=ÿÈÖ•ÅWžpÁP Ÿ/ýŠ¢#¯üêƒñû+|Z8Gþ™IÖ7lß6/¬w.¥l±w›bOnæ†}ƒË€÷‰·P¤q!¹+;)¬Æ0*'ëí^?QõÖ¼© 2¿ë ‚Ѭ)ྊCkà eÉf¾"°í@AT|[´“;ÜKxå>4ÒTK[…ý«Ðh½Q³L ç‹Äö¼‰o‘‰Pƒƒ]£^7îùÞø—«ƒ¦o?³·f=ðQ_voþéGçHN&“*”iÂlטôŽßB×ɉ®ðPgÝGf¨ÔèÛ÷n ºŽOt‰DEg,‰ÊÈø»W|‰~2" Óx  üHõ¥’÷8N2îq¼™Žt×ñ•˜Q¢L¢QS UñµFçê#JvÎ>P¬”$ÿ¡FQ?ÚÆé¾² V ¸æÏ†úæÓ. ,úH>:ÒÚ2•P™’71€ö¯UêM“T´Ïcìé×1>q ,Ä·8FGèŠ"C$®èN†¤\½yÞI¸¦cS“ó0gn³ø+®YÆ ?ð„ó” 3ž@Ä—@ºËq’q@z¥QÔ8ËS!‹|*¤‡Å)*ïv€jÍjøý|°*VÏöÍ~ŽBõIê:(#v‡P€L>–Ó bR)"Uw«Â@¿‡{7 Ua ?¨ ”pJFˆ·zõ÷9N2îq|!X™UŒ/C°|ª+éS]²¾vèD&§´nå6†•téKºÝ6‹Ù›ª˜ÍïÇÂÓÄâÎ c,<ýQ,(1()ÓüQ,îrLeÜæ¸ h‹Å7'ð^FÝÞÅ"; ®ñ¯(I~f:tЬ×Ó'ÎÜèø=UIµ5Å€Ôùgûâžþgy1çÄa¦†AÔíœVÞ4~)ŠýýèYêƒØÝ<=FÎRÅí®p§Zê[b” @úîèÖ:OdßF†;"FxúC'Ü‘12Ü‘ñ%º› Ƶ!ÖÂbtx— pÓJ±Z%2@êÆÔùtN}W=0„j*Èr®Ã—dœ1 ;÷ÙÎìÃ6 0Ÿ¢ÿÞ;&Gî\íÀ­õ ½büD’,PQ³ÄN(§Íî¯h!Ç’Ïv»À¾ÞüN2ö‰/±Í0‘þª?õs»”¯/×kÕbSuLÍq˜­+³ÅNÔÁi_ìT#ÇìÖÄÖMkW›%æ›hX"±u=ÙY(~מ¯VÝõ,gQÀ1—ŒKmv¾Ô~ßô".—Z7OˆSœÎ g2¬ŽP¶HúÂhu2ZL¬¦sxDÖ´ºiwè?Øÿ2î‡Ý+Šp«1ÙÒÑÚöÎëˆ6”¦“¢ã,úã¹!Q˜L7°1ÂÇaÞš;Hæ¼í°eýìÞßäëæXÿâ·,ÓéeTÇ¥4òKéh+MWÙ­Ö-P)´UÐ’–½¥Ý­¨žÆ]Ù®9Ô=(‡}‡p^B®³yÕìö¥=CKZ‡ §ôg {¶~:=_yÕô¨švª=Ù›;¼ˆ/´v–{-}!Åu±ñ[è¿^ÿ›­š¦-«ºè!< /¨ál;V»ð~P˜ùÑ_µ7meê4w¸ÕÃ)¿kw®u#ü…îW°Z¬õÅŽÖV¶lú [é¾¶.ÎèÖP³iºžuͺ§Lv6ó3ëç„»6á6Ã2ÞÛ­?o•Ã5Çj»${Üîyü5Ų9ô£š@bÄÜGí‚d4dZñ/Ž™÷[“NŸ’ÎÇR'üÀ˜A$\~Ë.OC³¯ª43ë4²¡ý°Gv!8}ÑWMM™Xš5ÅAq ý„×[á\~ÆéAyÜT«¥®Š¥ó ¶#pUï ±/?Ó´‘£zÒ©wØ#`HšuÛìØÁ#CHk¥X¡Ë_3¨±£ ïšÒlñž þÛ®¹Rø Ub”*¼ÔcÕ{3šºÆò@Õ²IÆæÐÛí áÂ6>!÷Ì”žãÙî &°èkÖÖõ@5mg7X8”®(ÍÀbÍ@–-6çöãË}ç-ƒ©UHØë¼²ßXWÅÀÊå¡àÕÊBÝ6( …¥FƬSšÈIŠzì:ML9TØÂŒ’@Y£¸§S¡IùnTTNòQÝÜ©‹jAakرi`{«J+ü$yƒª@jyu%ò-˜çpà†4€7뱞bC†/·f€VhU5)ˆóT)-tþ4t}ÌÅC×·¯Xm¢]_è4Ìs­|׺…í]7fIÇ=Ócürˆ¾9ë$9–#ÌÈÈ4>M:ñ)™ã‹I'¡IG°E•g|€u¥:°á‚ÌU/Aý¤/Ü;¥Ü›ú‹óˆqÝÿY¯šÞ&b zϯðqKé²þ¶½NH•ª¤V ‡)(%QŠÄÏ ýÁ¼{wM¨@¢Uëµ×žñÌμyãm×µÉ}6p¹Úì6³ÅnM>þP=Áðã,è˜VOK8a;Ÿ¥„?C2êkžÎ”ªJl!/%Ò@Bâ)åÿÈbê‡Î(B#˜òj•¹ç,ÔÌPY5Üy¾§#÷J…¯Ö« Ïvi˜ñâb÷ÜÂ;Q ^ƒ<ÞPÚ¤¸’§"ÕdùµH›?7™Bð> endobj 134 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 327 692 353 706 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 135 0 obj << /Dest [ 305 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 282 398 308 412 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 136 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 191 384 208 398 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 137 0 obj << /Dest [ 298 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 282 335 308 349 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 138 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 139 0 obj << /Length 3216 /Filter /FlateDecode >> stream H‰¼WÛŽãÆEžð+ú‘4Fvóž ÞÙõ °1‰ÄÆ®8$5¢—"e’3²ýÎ?ä7sªºÙ¥ÝÁîK0ÀˆdW×½NU½Ú8·›Rl¶Ž”~žç"ÀŸyÌ?C%Ò(öƒ,ÌÅfïÜÞ±(G& ÄX:·_¯¥xЕÎj~<:oݵ·’¡Ÿ¹¿{*ð¥Û‡©ÁõMÿTîî‹Jx+¸ßz Á¡G$Sí­üÛ¢l:o•û¹ûèI:_?5•þRÓM…»ø•2‘»®Ë¾«Ä›ª™š¾ÞÏ›ïœ7GŠF8YæÇyC¤/U$¢0ò³(Ð4Ub¨­ójó‚ÂÌÏ#•‘ýd›ÌÉÌ@x×¼Uå`!n¹ƒá­?$ÅéãΣÿ“Vêö+ãñÈ!kóšX•ŽûoóËY< [®µC#jžH²PäeA'È—¹ŸÀ‰$9r òbâ²»oÈIäf¥Î(Jß<à4Í7–Á ܃,+ñ%¥è(ËÒÀý¯ò#!Ä}ñè‘Ú éž ­›‡cåÇúdËt*ÍDä¾ ’ܺ8²™$¹=y6r›Ú‹¡X7éß ž…&c/¦]Á_&×2W4“hF1ém«É5KÛéÛšôØTšÈâ#¥äýr£‰'öZÆ1Ì‘ýÈI¹‡¦4rѦø£6ïm³o¦Qû ŽFBƧ'6Ɖ6º@Foż`æM¡Íá9Ö O\ŠMıF{sKS ±¥hº‘ІŒé·b¬K.åƒP†²Åá`žûߌ€f_LukÕQ9;¡0„%ËÚÝR¡J[»ùB[©äl¥2 ñãjÛ+*léþ$ K!îa£Û£Æ àÊð¡hô¿ÃÆCQ±2Òõ5¥$á'›gü8rg~"ó˜ÓÌ1®¡ò>Š®éâš&F™ÊÀâfær¾ÈÏ*#ò 7QšiJ›×ê”×JÿUóø4ÔÃ…P+é±AIx”'¬ƒ¹!¼9úÙJÔ9*¢ñRܪ)ã©®ùØPŸY(| èe€ª€{¢j«ÈV!L·xžÐ÷<Üz`äǺ–èÒT¿›ƒYìì(‡´x¯7ݶÿW?É,Xt‰Ï/³E‘éhQQ\mxû¦ „Àrgº³Ä×ÜŠÉ©T¨eÑ¡†zË|àDÏ)¥§þ±†©ƒ†ÖBWTj¬^Épxªî“«“!¨n8*ÇŽýÊ£& bËOÔ?¸–‰ Õ/•úCÉÿ ÍÖ#iJwXÜä–©ÜGa¸—ç_³h¥U¡ó„"  %è÷öK sò4­£€ÜJ©ó/Ü7èúLÎnÍ|@ƒ³ÛÅLC· sF|¤OËãþƒœgðã[kçÕÆÉü ÌCŽyŒÈ¦$!O`¯”({GGi4éšåg°|G}™Æ§®ã‰ 9RrdÔdÀ Mg΄_Ã̱Û !#ŒSÈÎRvã¿E÷µ"@UfjѾÄÜÿI7O tÍCa‘ òf™4I‰…FaF’ÿ‘^.+nÄ@Ýû+²ì&Ä´Z*=>"`˜’ÍlÏ$‹ü?9¥·;“00ÞØ®®Ö£®tï­åý—{r¤{ñ1¼{¡k<‡”*SîÛ¦Aêu¸¯G2ç¸:’Ýf{n©å+˨üÇvk5mÄ`q~%ÑN=,=±SÜ”ÛÉm¬7"–C·8–ã8äDÇÒRÏÑ·Ây×·V7EÞšG眨."´#ö?D¨’…t‰^æÞIÓBìøæIêOëáKk .B$Zü:I¥ø4­¹üa™¬\ŸZñC„%5Ú6®*Ù'55qùˆ¾ÈâÌeUã{ù°f@òïK‰¡Áké}Ôî>^óŸÂ™Ü°f¡€\°¡ªQµ­Ì<<$ÜÍçh-(˜YÌ}ÙÝõ¹4(?~–ï˪=Iý£® üºþ>ìÜ)™±s›†ÏIeêï¯ÄßÛH ‰žñûã²£~YþãΉsðsÆÑn/âøøzcßÍ'SÆÑ)ŽŸ³GÏ8Šâ¸íaA³<øf:‡¶ÆÉ›á’.©pI†+-õOƒK–&°w^Îú /·ƒqo!oöL=ªøÉYP¾,êû”ÊÒ’ÎÛ‰|·ÝÏ”{ÆÃ© ‚Ë žza¶J :6Kó>ª¹½õÉë y¤yqÎr¹6`o½LP |Ô·En#£æŒÌ952è„ó˜ŸPW›s!ˆˆ.´ãyÖŒ~ê 8 ´·úœ§? ”D endstream endobj 140 0 obj << /Type /Page /Parent 754 0 R /Resources 149 0 R /Contents 150 0 R /Annots [ 141 0 R 142 0 R 143 0 R 144 0 R 145 0 R 146 0 R 147 0 R 148 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 141 0 obj << /Dest [ 140 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 419 643 478 657 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 142 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 363 383 416 397 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 143 0 obj << /Dest [ 140 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 329 341 388 355 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 144 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 240 314 266 328 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 145 0 obj << /Dest [ 140 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 191 292 250 306 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 146 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 126 199 152 213 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 147 0 obj << /Dest [ 140 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 250 128 309 142 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 148 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 254 114 280 128 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 149 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 150 0 obj << /Length 4596 /Filter /FlateDecode >> stream H‰ìWÛŽ¹EÞ}»ƒU›×&ù¸Þ¬ ``kÞ<ȧ©5ÐÅö~GòùÍ^š­‘Tm/ây I]§«ŠÅ:‡Å—‹Ù‹ÅB2Á÷3!ï=ãøË_=o¸R’Ymî”g‹íìÅÃV‡ãì°š½øé`3`9‡£Õl>|ý4{W½©çB5®ú­–¼U¿|™SAu š¿…ÈL†*³PaxB|á›E ‘uµ Ul«XîïB‘B™¥÷þî-è+æ ;õÝñÀ× žýâãm·ÙtÛôèxnùû§‡nŸ>°ŒZÆÿ}4Pâ 3"?=¢þÈ’mw»>j\`¢1Q lP«ÇjEÐ%o‘9{WtP‡°}T]­÷ñ){0•¿wýÍIö®â÷ô¤¯àV~ÓGvÑ¿Vñ‡àÛí¯uzQ 9GAã·(‡Sz5e·Œ†UF&Kúq8mPé®g ²‹ mµ,ËIÆ]z|Ÿ“ EZü)ï¢)]dR]–û]jsSuÛåq½Á‰òFY3a£yÞé.®ƒ½e«Ýn×õ§5£÷ñð°Õãn„LúýûÃnsºn²,§txØ.§&ø¸@œý:8 ¤²WÝáAôˆCæâÞïöìãrßíNñ`Ëd]«o@=Xû°ûÔ‡¬Bw¹*q½‹¾ƒ°Êê”yŸW$C Ø%½qþ/£Žæ¯®ŠÙ┵V«á¨ÒíØ‚mZÓëº ƒœbôp޶*ìT‡Ó!¶B”¡7ëþP‡ƒ`·¯óy \k±!¿D:etzõÿ'<ø˜ßØF`ú‚)íñÆW¿þ$«ÕCð`-XV]¥¶LŸë%Có£nª: àÙЉa0ઑ¾V©† œÄá¨:;°¾ÆîÍhoe#­y‚hÛFJK{€Ýk;áAJ4…¤svL&ÅnMcÅ“cWq7¤ÅÑ v´;¤lÕ„Ç9 íÁ«Fµ£]pO ÚCÐ1?R.¾d·òƒ]´1þ²Ôb,%…KE"J)(ĸ ñò|æ¾ÁdaQ=s-Êè•ñ…ÉqÎИ—´Fë6hm ½u”µ8ˆÔᘌuq'¹•j8“ÚqÀÑÏëWe­ç£À/'RcôÙ¹\´EdgŒê¹r6(¶HþéÀkQמEH‰|!ŒQYFßtÔ(Œ9õ\kŒ¶Ò¶1·+ï~o@íFÑÌS²ŽªŽ‘ýJ@X§LÞkì»»ˆl¿!¡Ñ-7C_Çí4…âÊžbÈ2óýáÚîìט#Ö¨ÌmDÎñ Q˜Eä8Úoç8Úoç(†/'Êû0«o#’‡kDá6‘ãh¿ãh¿£â¶qb|ßáþ£ÔmDòp1¨ •c±9;‘#´Éññ}DÉÛˆäáQôm¢ç'pA4ƒš&®”šDœ÷ÓmÄùnˆ³ZÞFŒ+¡Pê[“–i´ÂµÆ`¹A—e}V:é³ B笮¯}n4¦&³,ˤ²²|%9c^\ê3ñb¦å¹zÚQ=m3åŠÔZµ"¨µ—âùíÔZ%µáGµFùžM­¥Îjm®ÔÚxôŸoÉqn°ÓZLzÈãíaèlÊÃ0Î vzœ£< ãÜ`§Ç9ÒCçûÄ87UÊTj!kGjIë/KI!ÆRQˆ±$¢,•BŒ+¡„ Fžkf°n0„@tˆåÆÑÌâ2›W¦ û}ˆGe ë·ÊŒ‡2¡Q碹H4×h¸BsËùl47ÃP¦¯inq Q(šgûÍ)ÍI¥w …æÙ>AsÂC¡y¶OМò0Ð<Û§h>QÊTj®S4'c©(ÄX Q–J!Æ•PˆÛ4Ç£ ÎE£]Ã[Ïúy!™jœzÿ—z¿©çxw²ø±¯çñZ¶¬ç¶ñÕ¢žËpê>tÉÜ3€¬Ê}-ïÿ¿¯=÷}Íà #½§¥!Û'¤ò0Hé¡ô;á¡HC¶OHá¡HC¶OHåa†lŸ’†‰RÆRt–õSÒ@"J©HD)–J"ÊJH1à†¤¸bF¡íZá‡k@›nV *±ÿÖÅYànÍ|™@8ó„è±Ëñù­ùÝžýÎèçæ·Vgü6¸ =¿Eæ·½æ·–â‚æw¶Oð›ò0ð›ôPš–ðPøíü&<~gû¿)¿³}Šß¥L¥ÆÝщ)~“ˆ±Tb,‰(K¥ãJ(Áo,\pÄ]y«ô¿¥kå0ꇳýIŽƒÞUÛÚ€©ãC!<†uMxᮆý8L2^Ës*Ú‘Šv˜Âmࢭx ¾j±lœ´†?õu>ÚÅõ1ç\jÍ·£~X`¤¾¿¦>J¯¸¤©ŸíÔ§< Ô'=”~&<êgûõ …úÙ>A}ÊÃ@ýlŸ¢þD)S©%§¨O"ÆRQˆ±$¢,•BŒ+¡ÄÔ¸Á= ïó"Sߨ<õsíGîËê ª÷¯1×·UŸ~áÔG§Ê2Û£“åÄl½y)h“ØQ °°ç›ò³HàŠ(ùŒS€pY äµ²àÊFJA¶OHåaÒCéoÂC‘‚lŸÂC‘‚lŸÊà Ù>%¥L¥6 ˜¾%¡ƒCz˜²‡ÍìS›EædŒ¼tŒq;©‚Š1lø`ŸÚp*Æ€ b -1اZ‚Œ‘dŒÜ4ƒ}²i¨ ‚ ò%;T*!xJÑpåETðá»”aK¡ÚЦ•­$Þ áùŽôªûpÚ¯kß@¯å\dk[ìN«øøáçåÛ㫬Öõ<ˆû!þØÕ¨js ³_ ÁŸãÀ¬v}òpÈšWä O=¤7§¾z¤¡Bó|‘Î IŠQçRŠ‹‡uFJö¯øqê»ã=¦gûZWl»ýw|\ÆÏÍ©žû*ÈRV¬ëÙñ¡;°cB¼ßd—Ëâ%?8Á†üK¡î­IŽSE‘îwU×ߣ42 †UToÿKyµìÈmÁ{¾‚G*ØFi1|`ñ%1b°á½hFÜ’8Ñc×öoØð÷¦º›Ôk¼€sÒ‹"›ÝÕUÅþRU‹ ¬ñt&tPY+'ê(ä¨ëÍ|Mû«ný®–î&Žò¸öòØm7Õ­E! [˶W›50Fé“Á~Ôu_MÓ“Ût¦Úè\ƒUL¢ô9ˆ&”QÈa´ÖYSؾed1¨*››’ÿl X[ýLùâ6¨Øé¬nušðF}}£¼Á¸A¿p@‰õ·`µÓ·A@÷*kð„uìAvŒ;ˆ‡¸£ËÉV—¾3qD(áˆQúª/»âRrEÿ¶¨Ý¨ûIUuõsœ† Ú‡wüºV&Ã6øá”µæfÌFc†œ—íÙ>Ö„Ò1v1JƒÃؽ×è¨ÝЛÈ5B4êÎ6•¼B—,›„Ñ•Ùx¿4Ï}v–º?ð'³_Æ'?}¸úiÚCÑÎï+r ü†Ô¡È züCý´AÚTm;÷¤ÜÍ™ƒ#§{\¼6ø‡,o{yëÆrA§²;¬[@Ç([cpLPI0/u¹¸!M@´g?¹G7A%— ð‹ü܆B×FP¤ •Þ×õáÓäÖʵn-sZ6r’p¡DpÄ6ˆ4ןr<©£ tåØÑÈfG¹~‘K©Ê‚÷늠 ܽ‚—hgôò$N¾~JŒñ ÷›‰áñ\HgbZÕ^déšÂ˜t_:GÝG&P±ï*¢Ës• ]3!‚÷ÌIý¥à™çt P°^“QÅC‘5{P×Â1í²RV÷«4úa$=wdy,òî¬ì]  áôì´âøwÈV¥ÐÖ$äs.›ŽÚ“ßý4E"¬ð»ª(Ë¢’WÝì E,($P=È7(ÓYVtë> endobj 152 0 obj << /Dest [ 151 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 197 502 256 516 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 153 0 obj << /Dest [ 109 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 458 410 484 424 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 154 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 174 397 191 411 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 155 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 381 347 398 361 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 156 0 obj << /Dest [ 305 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 362 249 388 263 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 157 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 158 0 obj << /Length 3747 /Filter /FlateDecode >> stream H‰¬WËŽÛÈE¶úŠZdAZtU±ŠdíAÀ€dgAQì2©”»ýÀŸß̹UŇºYêÍ &‹çÖ}¿ôv·y³ÛI&Øî~#D”ç9ãøs¯9xK–*ñ,ÎÙîËæÍϽfeoÈ8ëËÍ›_> öÐo@Ë9•›íøú¸ùwð)ÜŠ8Ê‚o¡ä‘šâ<Ô¸¾k/åñcq`áVòàŸ!h†D2Tá6Á³»/ʺ ·y”¡ ˆýr©öKE7%îâ)D"xð©*ÛæÀÞê¡nþg÷ëæýn#XÍ6Yé<†!"R1«(SŠAÓT²®ÚÜoÞîn8 ΢\ÉŒì'ÛDNfrkàÏí9ÜfPâVÐ… ÿkhÅ£˜§ÇþV©7œÇUCÖî±*7Á_ÂÝï‹x@·ÜÂÖ¡Êuo$™Iò2#ƒä‹$g¹à›‹­O§ö±ÿÛT‚Ûr̨þ¥éîU j2FXžG\èxl2{^©ok¤sHõ¡Ñ¬ò±”T 3¤â ^š:Ú I?$|ì8™Tfœ©õÉž÷"‰®—gÆx÷*dŒôø„£Í¤:%ã%‚ ½; îO)©Y¨3jž¤•=ŽðØŸó„ú+˜ê(Ëfúò¢;¿§úœF*a¾‹³ *D–yžó¸æQ"³¥„\_I•ž)/IÞä3Nƒê Dç~Ý&½…£#æù c¤3¤x9ž§7pt¡$×K Y|-!Yþ8Å ºð þ€óô{%€ðÄË@ ¸HÞÂá"•ÜH• ‰éç`ýÈnà) <¿ ZRsI½^Õ"Ò¦íèE¢¯ÀË,]ƒ)¸/óg žƒ¿‚.c·/¿/½²c¹Cêj×ÆÝ«à¨!%Ãy›¤×;Šxžå¶›•ïŸBšå–‹Æ4{4­Xׯ[‚¥L?Ø1Ò¼˜¦†ÀéEÇÃz5iŒ5Dá‡Ì³Xù(f«}0üF ׸øÏíà:Ë£<Ç +^YãÃÇÔóâ.÷|ø˜|^ÜfŸÓÏ‹»üóác(|¸ýyqk§Ào¤K“† )²)ãìÅ šÔ©Üñ8ù“룾ëê¯òú(®ïò—N#®S_ã¹§úlGôûG´Á8¢½¸Ñ žíã0Žè‰ƒwD{9¸íÇíˆöë8gù:‡qD{q7¢ÖG´—Ñ·à<½Á~®³uãˆöãvDûe®T7¢½¸Ñ~æZ_çðn{Áë¶F(Mª?µ?'ø „ô•¯6åëƒ]ù:øFùzLåëÃÇò%øÊ×Ãa*ß‘ƒ¿|}Æòõâ®|½:Nåëá0•¯Ëw–à)_W¾7`*_/û©|= ¦òõâ®|½‰2•¯ÃX¾>|,_¯ Syz8¼†/*Eê~±a{àe–®Á‹\—ù³ÏÁ_A—±[ƒŽ_—^Y×7lD;7Uê)*n©ñ´a ÛÍÜŽœÅ"ŠƒòÓ©ªÎ,”é”å‡ö¦øÞ½ · Ö”¡ÁQQ‹‹ÑxZªEªÒ üÍÒ†«7>Ô̓ùÀÂX*”Ã-õÆâô%”Ûø»õd6x,ÐØîåJ»& nµNæÕz•bŽ–—b ˜`Ž™—b ›bŽœâ•_ *FëåòÏ¥#%Åó4šPȞЗ¥ç‡Ír0:¼Š×§Ðºô^ç? ©Y@’®¡u3¼.`šQ³ßŒò˜`€q„y-˜’v]À ¯ ˜&˜×‚1ç=üGÔÃÞÍ//÷©`ÖÙÏð:ÿi~yShª7€ öǗׂ©\×Ìðº€×ðë¢BP± S÷ã»ÈQ\‘n º¶”Sמ~‰º¦ý¡~¸tU(¨•2¹¨uT~1¶k/¥ý~üX˜£y q;CŸMq¨ì¡9TF0ú|q.ö–G}24µ%ýÆöµyzÛGæõ™¨±r9ýé5çÔ#àa®¢,Q¤¼Ñ™ç¦k¹7Rÿm˜=ëícÊž}ÿñ«f§G¨#Ð$‰AöÂ+Á…”΃.Üb²ÁI–Ǭ Oˆ$ÛØE_u_‰%}8°ûÖ½wìþ2ÀìÒWð™º;VìØöTrTíåt`µß´ @b¼ÀÑÅ#fün3¸]ZøµšïéR™gšHµ÷aLzwæ1BÛ|:Xàkȧ/‚quOÞz<Ú!¸bS8jêÆ^z°Ñ%½ j -ôgKh{{ùTßhH玞$GSô§üh”E´E¼s©©¦áD õþi¨(ÅÂÝÑä6>9nNì1³]4>“X&ôçÐJ¦àëÙëöŠžòJÛË»cÝ“§}…ǽ‰Yõd"ªh„hjr*‘PÔaÅž,w É·PõzÐ÷Gv>·ÝP¨ÒÆ„)‹Æ*¹ûi½ZÉûÕ`n<_êÆ~ƒzNã¡…Ææ›Cl¬©faµ Ü© ÕOдx3_à•Iíƒ=Áÿæ ;ÍÓJ?ÏŠ èg6 AÜÇT+&qNÖh¡1LÆ£ëélX½H$lC6!¶sF,Ú®. œ,#Ö´CÕ?ëIID}wfö¬ñÀ´êÔ>ºØ¹Äõ@ËY*be·jQ:»øY}-i,Ò:™Ó:qiM1.N=¢\›²LL'A}_ç'ÆÏ*p}vK; xžðj²GY¶Ã±LŠSÛ7 ¿¿ C®*èÇïÿú÷ÕÒÛ&„ïýÉI ØÆVO­ÚJ•)jå^0¬›U±A<’’üà~3³ ®ú¸öbÃ.,³3ó=–œûFǪÐ/Ä´…nskÌ^ËUAÜÛê¼3Õ©…MPWp• ­/çC]…â1k› ðibJp´¿Á?à/È_ðñ"RôÇ$\¤ª"LcÏœŽë›×qP7UWåU¹‰Û'0TsíüCOÆÐ¯Æ#ó´%’»¶©š+ÀóýH"RìhE;ü»Ýh‘ Â´yß¶(EöF”ùÌ!¿HC5©r¶u-‰OËÆ[÷ËÑpx‘ìÖ$Å)x¡ #VØ‹˜ÐÏÎÝ×B9rGçɪlÂnrŸñoÍ Éõž¯ö‰˜}¬ÔQšdAù‹dªüï>òë2Rðõå¼Ä1ž³|°‹Ë}u!sƒ‚QÉqØmÞõ]L gú7=›Øž%~š„sÿƦ iºí[ŒÙDn•ô¯¯k" h±É«uf©Þ8òžùï <«¾ìÌÍ“édч—ÙKO&˜rüràx×à¶q[©¾A;Ã={IXPfàV2”ÔŠŸCn8 ²V‡n|1,¬k6s)‰ÁŽ ~ü¶^D2ïáû²ŸäIl“›xy¯~òÛzXiô›]ab#Â&ä ªSiccчK*ú†Nâ Þî۪컉ýÛpß\¨‘×â”!7—ËݼÿîÕ]%ê `A §J׺õ%,Š,Ãñ®Ð`ä‹xÁ¡u; Ã>Ç)Å sþ¿A8Sâ%œ+³K¬¦¾ˆ‡äC²ú =2>šÓw͙ͣ‘H’¿|4B>ò1ï}öžôˆ#Ù[e.`Q¬Ã1ùôŸîì­Ôt&ä]êŒqŽòàð´/ÙeEÜPárfÕ–Û¡ƒ¶6U×pê{ÝŠ´æHÇ-9fmUÙe' |ŸnZ dú8¬ÑÖiÀ'Êz‹›-ã&¦]¥|0‹çA‰¸õh2^È™–ƒÑ8ƒY•@Xgùkq#alÔ!¤_Ç+5&) AÑ•n=•tæÚزp6²:Õ„«ñ[‡%np|q˜±oÍûÆl^¹ÙŽœ+:0ï@e 3 ;ÖöGÜÿÞS”]†âp4UÚ HU#ïÔv·Öµ†‡ DMC®ž: sÀîÕ•A¶÷º{ÒÔA&“Œçø:˜¥ÏJ/‚1þÎZ&í5ô¹§_ú$GS/}•t( Öwê}HÆ^w2ˆ<Ÿ¡Ñw×q< 1vœ(º¸!EáœÜRÖÜ€:îÖ*nCîuÜ–žpGN™ãM×ü’á¡OÒÓ% F‡á!h†»¢þò:Žƒc:WLÝÀh#«¬Ïx%RO\zStgº ðHQrÂT˜ˆÞóÇ”ñ57_Yý冉è­Rû+j‰ê´hYيƇ¯¯~ÆeÇ2 endstream endobj 159 0 obj << /Type /Page /Parent 754 0 R /Resources 164 0 R /Contents 165 0 R /Annots [ 160 0 R 161 0 R 162 0 R 163 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 160 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 374 602 400 616 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 161 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 182 461 235 475 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 162 0 obj << /Dest [ 123 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 404 404 430 418 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 163 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 444 87 461 101 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 164 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 165 0 obj << /Length 3177 /Filter /FlateDecode >> stream H‰œWËŽÛÈE¶úŠZdA-šïÇdå{& ‘…%–Zt(’ÃG·“ß°ÿ!¿™sï­¢(u·¤‹¬ª[÷yî©w›7»]¨µ;n‚À+ŠBùø7ÃÂ÷ü( U'žŸG…Ú7o~uy™¯ÆÃæÍ/÷z7XëûtØlíðióѹw·AäåοÜÐ÷§-û©Æö]7NÊJ¹ÛÐw~u±“.-™´»MñŽå¡nÝmá΃Дúe®+ù¢igˆ½xAøÎ½>tm¥ÞWõTw­rÿ±ûóæýn¨ZmòÜKІ^Æ*Žb/cM³P zsÜü¸ûŽ¢Ü+â0'ûɶ  3}1ð§®w·9”ƒ…Øå nŒßZù^DŠÓÇ“K¿“(õægãñØ‹pÖî‰:lœß¹»Ï«x@·B¦Å¡1jFt² ÉËŠ< I8?(¼N¤“c§$/¦»ûŽœDnÃÕŠƒg˜Í ßI é~î«­zKF…4•ç™ïü'ôb¥Ô‡òÁ¥C´Ѿ ]Ül<œ„^⇯8¶þkÉø±S²ù…ú)'+oÊþCÙœßiÊ’ V&ñéâ6¤Nj¼úRF:J}röõ¤üO®"‡oq|ªð$_‡‹¯C9wwªGEÛð5Gõµ‡"ª‚&J¸o<5÷}7Lºò”uy"ûár_¼‰o_ÿN¡ÁÛ¹«ôÝ75´­šˆÊ®&Ëv0:e‹N™ètÖå8zd,¹ìûr ¿d!TÔ¤Æúß$µ0_T7¨§ºšNª;òÆcÝ>èÁìGý š,X •Õu»¨óÑ¡96"w°_7•öv?vͧC°¤CxIÎvçOHòn¨Hlj1þpËÔË’U/‘  ¾ñÔU²Ñ%Ö‘Å7í&Lj_ÄÆIÞ(Jô¤(ѳäß^ÖÈ 0–P¡V é†Ñ%X” ûŠz•9L>Á_üläuªÍ;qƒ•(»uK V41úm¼Ê0àÃdͺçO!+"YíZwj‘<ZÂCÂb–åŠ.ÿ6·‚%·LÉôCWÍ@‘¦n5ðîmÓ,D½aB¢ NŽ…V ë£FR ØxÔJa‚çÉéˆaÄè“9}¹¯Ù–Èg‡ÜúCJ~þã÷ÑÉ»³Às3RÖwMŒ=“N6 êÛ·ùôå– $á ?ž'•:rÄjÂäÂDþ,/OdSâ¼R–6h휗&1Ð8^ÈÀ’ü!(aá…ôCõ&Ü0/ÇŸËu^Yiì*Þoà†šÂ3ÀyÖ z ¾@¦i–O§úpR•a_Y 2…²¶üRœm€SËíÔÞì]†aIK™Ð`µ‰j¿PAj>\A:@¶ýþÒ×Ù“,Ö$b 5c°óXK®&Üb# D9©ß'øè´,+}¨ÏeCÈ·âE‰hFöx%…)L"%&$°H±'?9½Y<Ôh´(r. ¶"sPG!ìŠ e¹èŒVVѶ‰,+#ìóŒúÜ7¨¾êõQ¨Z§n™žØs…¥Ü)._±¶ÂÔwOzbºû_¦‹/Sñe¥åÜLê±lf‹{ACèhô‰’"~A X(¡c™Ë†MGï]kn·×-h«ªv(ϦÃÙ° ‘%lÜÿõÝÈ( Ü:uOd¿úE‘P5Ói"žéVê˜#E˜ ·ñ©IøÞ´•éAo§r9¡öÎÛáuñ";â}K˜Ž÷ ½K?Cëꘄg€.Jk!œ'T@gˆ-ÕVinJ&±âõ]Ôl:°†‡çÂÃQ¦*Ç›²Ì­ ÆÃjï £Õëž‹¦Ç®iº'iØ…naÏÕÕl}øƒÙè#Ù¡þÿ‰äk¬ÝÊV8¼¾.QÖþE=z8Ÿ»áæº{~º¾e>KÒUyåT^í|ÞóHøJ[£ÅoC½GeÙ¥­uÞŠúWå;G—~UDqÚ_e$ütgP6óòèdŸÁR9ŽóY_á[²Æ·lAá"RŽîº7xt”ªW1iTî»—î˜Ì×-Ò“«~œt“l#ðnÖŠMnR?Ý•V8Gþí80òåL?° ý«<™ŽÂÿ‰ôÐ7¡Î…¡Î•÷Ē߬崞ûWà|‘`­sôÂNÜŠZ„ˆD‘_Ë¡¢‚ÑKQAºåm{¶:¿Ök=y©®J7øN(#rÔM<¨ë þ†¥ ÊT±R R*-p{iQè> èÿË ³ÐŽ9¯TJ¼(‹âéËŠç׊§¢xr£xpA’›m²Ä^_Öf¥Že‡¹³F©pA©ËÍ#—úß2ЀD&ËÝÃD$ЋĦ.PÓS÷z¨qýp£€:ŸÝ ‚ÒÀ‚QÝ` »*N¾ãªW¸oJj8÷$94s…–§æ¶FKc¹j<רÍÍ|•³dv N¦ÍR°°V?½ÂîŸ9Kåæ÷ši1wÃÔ9Æ¡Y=Ðí'R§$®¥™ìÑõÆÒ.Ö.ÆÚ™[S Š._Jx7ŽhvÇÒ|ÒÌín˜F¶¨ž-LÝZðIÚNư jÔh÷Ûl¾j¹Îf’7‘4üÂiÍ4™jïu%zÀcÍš¬ °‹dQZ>sˆ2+eñœˆ;çeûÊÁ¬"s¸ÏvÇzœÖTÅT"?&ìÀ0J Í'V-ÂN\Ãæ`Q‹ú·Ð>KJÄËË»á¬Xnr~í.ƒ¶d)‚²…DmÊÿÅ“ÃXäŒóñB’=)ôoÊP‘Ø"€ k‡Pñu o>r8.t˜ôEè2Œ¹…3Æi@Ú̆¹j:Ò£qçQÑ'“õíÈÚòJ뺿 Ay+èÏÓ€6#vêƒË}g––Q®ZžŒ[n“&t“/ÓmãÉÒÏ}#_'3ݶSp«ƒL *×-ÈÀÀeZyÓ(ó‰pÅ4LÀ˺͙®Üµb±ÎLBÀu&¼ £)lS·#’K`QÃo!Õ’<4ì(7,o!xÄk 4Ðxa¾â‚—P2GÊS`$,99ÂŒGC(4 äž;&H¹)´AʉÚ-2j™“…Y(•ŽÙÑõéÃtñyîXú‡¤øýhø*_â ¯³d Z §3Aìþ[yä4 QtÏ)¼$•!©87è²›R¥Rš Ä)¢×€3þ»„.Ø¥Ž3ví?óßø6e޾kZ,WÆ›‡@%uª¨×;LJ Ê¡L•÷X&KêIÏ´aƒGSöLª¹e$c¢Æ_ê-å½W%ù ™;º¨)ž©”¾Öµ5 ȉö²kÄ£&C%Ô×ÙÏR·Røà§ìE¤Ôr)‰PC§ËRÕÊGÓàö¶Ä¸ðLYõV—gàI}Ë)±T,$ ‰"+ ¦m–!`{8*T7Œã_”ÉêG¹– u¹ç|h¤€q$óA¼öØ»«3û9‡üÌ(ë5–ƒÇéÛ½ŽrÙ¹óÒ¬rÝ ü˜ÓÜ9Ý ¡ì•+x=þ€WL×ü>’W%ß­À\èÿäÂÔ”¾Ð<ä`ëÆí>|páUuû7Uÿ²(‰iˆùFŠ¡ÊÙ|¬”Ñ{Õ¯½±ÖWh6ÖúN!”RI A½ÄÍcȳóÈ®÷Wðl‘"§Z®"öÆÐ¬TÈ)HNa¯:nvzé£F%ÉŸŠ-“ÀæÒù¾X·Û' ®E.%õ¤µë~ÞÜ|˜Ú- endstream endobj 166 0 obj << /Type /Page /Parent 754 0 R /Resources 172 0 R /Contents 173 0 R /Annots [ 167 0 R 168 0 R 169 0 R 170 0 R 171 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 167 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 197 422 256 436 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 168 0 obj << /Dest [ 91 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 298 331 315 345 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 169 0 obj << /Dest [ 94 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 336 331 353 345 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 170 0 obj << /Dest [ 94 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 293 254 310 268 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 171 0 obj << /Dest [ 377 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 191 176 208 190 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 172 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 173 0 obj << /Length 3863 /Filter /FlateDecode >> stream H‰¬WÍŽÛÈF’›ž¢>‹§›ÿÜœìõÚØ €â85âš"’šÙÙ×H€}„¼f¾ªn6EY”/Á`D²«ºþú«Ÿ~·YÝo6¾Pb³[)åeY&$þÌk&=¾HÂÈ“i‰ÍauÿS‰¢g6)úbuÿñA‰§~^)!¨X­Ç×—Õ?w­/u^]_zÊiòãPaû¦=ûOùV¸k_:¿¸àÑ%–¡t×1žÝ./ªÆ]g^æ<¹ŠHâã©Úê•’vúØ‹§R±’ÎCY´ÍVü¼­†ªm„û¯ÍßV?oVJTb•¦^”pDyÊE„^†–&¾èÊÕnõns#Aêe¡Ÿ’ÿä›ÊÈM©ü©=ºëÆÁCìr:7Äo«¤á´¸wéwÐFÝ0½º6ïIT±rþän~=;Ø–i²hÈJÍi>EYP„! úUæÅ"iœ¢;î; …Ù÷Ï8 ϼ€šdÒ‰”\CºL¥X‹·ä”O¤4M¤ó_ß‹„Ÿò'—””n@ûTbÃl"Oú †oáw±&ë8ÎÆXûv;P`b·¡Á3pø»Áñv 0€Â#¹œQ RX70`R^ä˜ÈOÁXŽƒ)º™®Q³Ù—&´©-Âsabæˆ}Þ‹\ô‡¼®E_¢Ý rWq(çéÔåu)v$øÍ‡SWöú`^öU±yG¤„L&-¢lŠüØŸê|(·Ú~¶ZE kôúÜêªþ“Ée%µÏt„gxŠ¬Ç‘ñxÌÉEôñ•¢™ ï.b—z±&'ƒµÁd¼È]ŠYãÂ…tí†Îc5ú?hBÿUhµ¡)"×öƒ(øýlo¯©ƒZ+r­2Î3GÇíY¯×'#èÔW eœ!kªŽŠ„‡¼µñÓ1Hl m|,‹*¯qr‡CÞl=!6{>`‹(5¾~3 y1ˆ]Ûz:j8£7ižfÛ“Ý„ˆA ¬ÄrÀ^tް‘Ãè €WM¢Ü‚Ï•LtíÇæ‡¥r°ëÚƒh›R»vh‹¶æÀ5­–;û²»Àè¶ì©d"¹ Îâ®z¾š.Žß1ïã\…}mq:”Í€˜0•¤†»Šv˜âÓž÷sK¿bŠ@¤wG& GþVC_Ö»;Àã…Šrù™\€)»¼2¬ T;µù2r´}H¾¾êX,Ëá¥,£³`%mÝ{g¹•ú„ üÇö¥äŒŒœ5úIÕ ¯äœÚ¡ŒíFi8wÊ?wª$‹ß>)¾÷§ÎJh¬ÑG•¹É>´²;–}YÊ–6¡C9)u H“BP \©Vú«C­‚µw/.qâh(°ØÔ—ÝólËV”¿™…¢<Heĕըõc]ÕP›º‡teÁúLöùhÁ@§C•Yå9•'¹XŸ\¨Oîa,h”¹³ÔëâóæÕzŸ-9ÌfCÏûQ<ªn–×áXê׈Â)ÍeüZ“•¶’,t™Í¼V$:I¾iUog‚Î`"álæ±†Ú ÀBYßµuݾô?~sö)ÍW>ÏZæUѼ˜9aŠAAFñ8lé4P˜tx‡ÓÆ”·’€š}Æóψ?CªVôΩÁüÓŸªù^y9¦ù ³”m7¯ ÕJ8ò0É<ÇŠl÷#/óãè,Lî¨QJC?)3ôçHÇ×,¦ñÁ°˜Æ‚ÇÖ³áõûä$ºAN~9BySñ9ƒ QþÒtQÑ3yƒI/öÓs Y4ÓàKä`.Jð%º¡œè4Ç_Hˆ"/²e R?¹EO" ¸à÷¯l’>œ~šv`ý¤#1<ݹ΋À,Ú¼í„Øuí¹Œ*Ïæº­9Í!^ª,âS;X8oû¶> ¥»ùõ¬>@ Äì—eÃÇ:J‘|qmDµ›çÔ´Ãԭ;êÙR<ØÎž`“:µ~üKá¡ÂöÙÐ\šlrMªžõ"4»!†QælQÜÈYcEK@ásÿc½JvÜ6‚è=_Á#ÌÈds“Søà›ð!¹PbD„H “ÿHïÍ«…ûŒ%Ø.Í®êª÷ª^5¬dõ³³Zøc‡Eœ¾%`Ñÿž/ËLGc¦#Uý>Þœ;Y‹í.’h°«®:=ßI« ÿƒmr0 Hv̲Iv~M×™¡Yð‘ÔÄšåæS¼‘‡pR§¨_Sí‚ÐØ`‰RΦië¿‘›—ð¸ÐÓ3êáÐSG.oÕ9¥¡Egßdô,Ï˺ʸ øƒc2°{לM /÷JmloR]3ú°ßþ;~'s¿âwà:‡Áïdé÷qæ7;k¦,˜¹ß\„§Ð¢.åõÉ´(ïëK]t?:ÓÛÝÁå线‚EJ¸gð,ãqŠÀápø™¯ÀÏîÏé-s>8§ÂÚf F(¦‡êD `¤y7º‹F1¨üL€i¹Hžl›+¨Ò)tOx‡Àáoìíó²ìc_¼{ž²äGZ$],G¯B9 Î!=ÕÑ;Áþƒ™7ã¾ÅBßxž„Ïøûø¸Žß†3gÊ‘V±K°MÝöy¥O„-OÊ–Z21 F1ŒêNs2a#Ý„ö“öº¢3˜Üd×7Û«¢Loüa±ªfüÊ£õ®ÄzÇ„ë8l8A¡„B%x&6ô¤À*+­3vmû6lP1³=Xç¹_¥³VCKØ„ $ø³h€Ë$¤›qo^ÆÍyþå„!_‹Ï"nŽ=Wƒ‰ŽHÛá~ßÃÕ*T"^pˆ’Tt^½Œ@ͤ÷é¹¾õ#MÁO.¯ŒÓ¢³jt³ób}pŒhp ¹¢ÞyJúϧæQ®'Ôæ¦D–d¿»'”ô*×XñÿÂw1¥GyÄgj&üeÒ<ç„âàó\D׆rQ’¬9ºÅ”Ç`SO7¢»nlË™Ò6:¤þËí?Cóø"ù*CT1¯¢±RBØÂQ[¥WÙ'dØ#eáž-Ú£L‡UŒÙ†F:#‰Úˆ•:•{à 5(å'$>¨ô°Àú¦~µ-_9yVÈWN×Ëâ^•§h¡¯×üÂ7Wî¯j±Â<í„lù™ÂÙqÈÒú´G¥kcb@6C?ÎaŠ'( R>W?úÕ9ôÓΧo*yÖ©—òÛˆé¥tH¦ ´S‘F­ ê"Úhæ»õ=(×Ж¸²®ë,†ËšâÂ÷)ÿÞvj|£s\ÄÒˆþgTêÙc3i«çÏ+Y&ÛËÒ^¿Ñ$×eÍÌ×ÍÄìŸ;ot‰ÕsDCèB·˜qR2 „/“ˆ f(â•Ó †¦ÏÊæã”5Ée*sÊaè"œQÚ°ÒçöxäY+!(Ó¹yÀâþè)àÓŒ!°•ú5ËÆ#Ȫ/¬å(w…~ <ï_!m¼7÷¹Ë²C»½@žÓ¡uGìp¶ÊbäÊ:/«×hmG&F¬[oÀxií°ì&j«´ZóNx¢«„>ñßôù¥»§H³ÒµíŒhÌœûÀÞ·áB3Ô¡uè§_>³Á2v†¸ÀÎR¦•®Le:C¨›•ºu…fkHæ e{­@ bŽß]¸×µL@D-âão?ü7hW$× endstream endobj 174 0 obj << /Type /Page /Parent 754 0 R /Resources 177 0 R /Contents 178 0 R /Annots [ 175 0 R 176 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 175 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 230 446 256 460 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 176 0 obj << /Dest [ 109 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 227 369 253 383 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 177 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 178 0 obj << /Length 3767 /Filter /FlateDecode >> stream H‰¤WË®ÛÈE6Yè+z‘E3¸êËn¾cdaÏxŒIĘ+Œ“ØYPTËâ„—HÊדÏÈøò›©G“¢HÉ6(vu×ëÔ©ê›Õýfc„›ýJk•e™ðáã3_ùA`DFÊOƒLlW÷ßt‘(:óEW¬î_=hñ¾[¬ïÃAÅj=<>­ÞÊo­•ÊŸ=ã+-ëüØ—°}ÓœŠÃë|'¼µñå÷ÈÀ¢‡"½õÖ1ü¶û¼(ko©L¾÷4.‰W§rÇo,î4°~µŽµ/lÑÔ;ñrWöeS ï›?¬^nVZ”b•¦*ÊpD+mB¡JÃP€¥‰­]íW/6Ÿ @ª,4)ú¾é ÝôÙÁoš£·NÁ8ðvÉÖ á»«| áøòàáwÏFÝç"ªtm¾Å£Š•ü•·ùi’°-ãehHJÝj£,0Âpè×™Š!ˆ¨9”9F1–î; †Ù˜‰D¡Ü¬&™/#í¯át?õÅZßÊ –®‹ˆ/úFØ:ßVVüÒçÇO“_v­#+„x"‘#ù ø8\uïÁÔSk!Î,ضëÊšïDã¨k# G-»²#5_(÷ímAÍ¢‘A;×é𼄭ŠÈªd°‡ž±cD-C«i;`‰7,}@¶W5Sùï¡é‡#*Žöõ]»åcs‚6pÌ‹+¸PX Ó±i2x Ù×·‹ãadh šjãèV¸ßžú\ïúœ'”dº£8àyÜÌ2335Áþ»¯1ØD-9ƒˆ¼zâŠlÆö¤ZcþȳÄmcÏòNü‹…ùmÛ@¨7‡¡¶®µÆ8‘¯Ã;·Ï±“N¥|£Ò ‹)ø²1Oæ àä¤5…@ª¹;PËÉd¬b—>Îg«èJ𤅡y­\ºa²ƒ©Õ‘‡×J¼TVÝQ×YÆ‚NBMÚLYïÎ럼²‹Ùü©igM'TþÔÉÌõÝè†q,/½pð‚ÿ³ÑÁÌ9¾ó˜À›j‡¬Lže`¬ûGOäÝ$_g9v=’ì[ e¥#`–ü¦ã|ñÁÓîåN-Âv…Œu2 Ýk¨˜(Lhpn¨h#Û×P³©9ž3ó‚û¾ô¦²a¦âƈýøÒwn‹ws$ÞÙ xStLja®‰0·ÄŽ®çöî8&Ë3Ýâ è›ØvŸú’]ÌØñ†‘¢Ça&@³ ò(Â/À~€Wl½¦®€"­‡i¶t—Š÷`2^_h?í1`øëyë¶€í(ã´4ò’ŸHó VËðçÞº£¯°ŒÑÙ¼ŽßÊ7pU”HzÝ<ñ€ÝlRqspbVÞy@"Äs–ºN-úJ¼50M‡sJµ)xë§áÎë’É;÷¡™ï&Ta4'Û sü™¹ô Ô-ø"P—ýú¢î·¥‡ÚNý+›;½²q²~ß8cóhÍs€Q$’󥌛ß-J„¡ø¶_ŽtjŸõñ‚ÛâÑÚ˜Ëû÷Âçžœcÿ¬¨Æñ–•,FÔÅ-«/m‡ÞÔM½ž¼—¥Í+Žª|gºuºÉoæÿÁömVó«AWÕsÍ诹1p:®ª›ö\¿¼lâ¬B92r !=Ùs9|-U»–jëC^è]†>Í,~â.Óó?ëW9eš†›µc\ï„{8ð¶ÜýES»Çܵ‡z& ƒô>ë“€ëÀ…v‹sÓ“u/ݾ£RþëøcêržKÇ€¦ìåß=VØ& BåCű´CÉ*ä›sD‹±ÇxÓz¾mN=¯¡­òX‚4m‰)piáålkê/͸ó˜·}Yœª|èõÃÀ[ìÝum‡5qÍ2·ñÄ2ý0^£Œ›”ó¾›’ënó ¨¾Ê§Ž0‚)G¾žMw}šÍ&ô õ¤Â ¾|äÇ—{[ïìnVcÀ8“ÉÁŒ%æªE9GþÙ–UÙ»‚øÙ3†ú‹û?Ð+‘ÕÅÈ´¨\ 0ì’E påà.t „qP‘óA=7aãÃχ߄”ik»}ý`®;R8e1ž|/¹l€G»I,`QUÍ_=¡ØÖFL˜Ï$Þ7A“ דg °»æÑŽbˆuY ö ÷d\ ÃÕ¸‰Œbs‰qÁýÃq–¶c4Qòõý‰ýw e*‹2¼!øÂ=j¨á4yÞ$€Ñ8?2Hây³ü 2öµdPÿzEøz|O$jäÒSçÅȯXÚºùr¿éõåf¥ýîkF˜°á†ÌA?¡ïÖ®ö_±Ž“Õy=‚›]_HÄÀWp%¼yB f¥çuÔh=11”a”Þ<Â$Šä¼nL xº8"Ì`Ê„–wëˆ/­Oãà§Ã:D<в¥Ÿ×%¦n\—˜Zq]âÅfB0W€e‚ †Ä„Ù«ˆXÂ(?J]EýÆ÷ÅsDLˆÝ Çc¨Í•7É xîl8ß „áö¸g…òôÐK-€‚äŠ0pRYNÏ==—Xo/ixKáq!ª|ô 6F,´ cè&t!0ʤ3À¹õ+€%bâU‰!Uq¤‚8“­ë¬Ã ‘_ÝÏ–ëàï¼_û‰@_á#®ˆŒp¹aåyýº•çõëVB‘©TOöv‚T_qG,EFÈÞÌ×ÏH™0p „"Tp^ÛóÛT¸‡Z¸Ùv¸.Ü~€VÄ{X‘Äj*²"·˜ULLЊܢV½G»g7z‹[Ucîæ²ÆÜ‹eWÐÍPǘ-týÛ¡‹›c?¥U<~1­b‘FŠ!¡"Ç8†"y’Gš¬héHßåt2w°‰ºYÚ ýîî½ã§#/ïéE„² §…'˜ó¹es€1Ç c.rsÍBÅ\ä抉 s‘[˜«÷¨÷„ëc©Õ1W5š›šFóBÓxó7_¦¼Ì_§|‚üö‘3Ûîé‚m¨à±ô³-m?±ÂqHxŽ%K_×>R§€3åÚqu³öØ”>],c6VÏ» Ì䘖Á]DZì^}Ê›“N¢È 5 •D‘[$*&&En‘¨Þ£Þ3©i‰Äª­ä8dÝ‚*—/%rëK©>T íŒú-En~KíIC9dúÚ"7¿¶vȤ¡òš"vlÞoºˆ þÕçòfHLÀJûRã&Ô©d V_Žûóó23äàpã×°£_åsßo?¬{X ëëÂO {ÿ%õÓÎýÙòÂã™-üƦ=µdþoéÆ" endstream endobj 179 0 obj << /Type /Page /Parent 754 0 R /Resources 182 0 R /Contents 183 0 R /Annots [ 180 0 R 181 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 180 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 221 396 280 410 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 181 0 obj << /Dest [ 490 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 480 286 506 300 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 182 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 183 0 obj << /Length 4117 /Filter /FlateDecode >> stream H‰äWM“Û¸­\rЯÀÁ2eÑàVå°ãµw“=¬k­Z<9p$ÎŒ²²8%Qûåoæ5>HJ"èÊ×)åª1Än4ºïu7nV‹W«•d‚­îBdUU1Ž~YñŒç¹d¥Ò7yÅVŸ¯^5[­gÇõâÕï{8. Ë9 ­˰|^|LÞ§K‘g&ùšJž‰d_?u[l_µ§õã»zÃÒ¥äÉ_Rè@˜’JפËÿîëõvŸ.«¬JRA"öãi»q_Ú)±ÿ Qž¼oÖí~ÃÞl¶Ý¶Ý³ôo«¿.Þ¬‚mÙ˜LW9™Š©\eF)OKÉÍâ~q³šI@n²JICñSl¢¢0¹ ðuû”. œC„Ø•R…¿[xųœ§)ýíœS¯ÞúŒ«,ÇY«ÈÔz‘ü!]ý}tð­rb—Peõ+:™IÊ2£ ÃÎUV ‰t²JjÊb‘Øt¿¤$Qš¥i¬3¿€´¬x¢_Â:7œ-Ù÷”$‘1%Oþ!3Í{W?¤tH“æ´‰iöÖÐãò_NpÉ«LòÂ"ìc²zlØ}»ÛµÏÛ=W&¬ƒ«0¨rü½Û5ìøØú?ÛäÙ±ýÔôŠ6eò´]SÂÆû\ïNÍ‘Ý#dl… ²p`ŽüÔnvG€´Ù”´?˜kìv¶Ý[Í÷Ía[ïØÓ¡íÚu»ûÎßëj%¸»; TWÒFê—›R(VUÒô`’ÝëÇä7rŒÝ&©é1]R†›/·©û€‹ÈyUàÛ‡T# xÔ²Ó1-p[D ‘óRBþæþ¾Yw x™¸‹¢V ÃìÅŒ®çÛr“åÕ ×y&ËâL£YQ”q Ü2ƒœN”¥«ÈàÒ&jB–HE9È¥4™‘g&TUeÈŠ™ø–|ÈC™)äȸBý»ˆ3¦1„Ó¼ˆiÜŒKóœ$6‡9T˜t_¥«/8·%¶ }ï³H  óì~¢PTD‘Sn³_R*'?ۿجM.°úDÌ-,hp£¶ëή·Ä²<ùLfœ³ÌɧTRý'nÝ&B’?B&wõ‰TQÌEr›^£ÔÄPù¼È µ÷…^> QV™.&5Âý•ªzˆK¹?ADö»®åˆWû×R8©âML¨ôŠxÙË#^û§½ó2#Fû¨ÜˆI•`âZ¥Çqô¾ü}"ŠRVε¾dSTcœ‰iÞ‹¨ØçÂï\T=‡lA–×eH¤Øo¶­´Ëäp$0_„¢ÐTQàAžÔsMe—=õ†5jøv€H¾\v}­¤ôZðJ ïkŒH=^‚Z]7v} ¶9ñ„õ¯•·n8øL½¥ôZg„Õ–°þ  l¡Ûøè6²‡``IÅêGîO89É!åÖ·‘œmœ)÷Ëyuç\l6®F¸½œÙ*AKªPžªè*]$Ú¯¼|¦Ä,„~ååsý*b¢ïW^>ׯ¢q„8E¦´˜ëGQÁ͘ÆàELc–A¹ÌÊ2σ”0ëgÕhrã>D=ƒúPEàrÍdIƒå×ÔN¤Àõ!"ÛÏöï¸Ym-,„´…pÀ®°•×:¶¼¶k^Ú62»õÑmeþoð!|~ª×¿7î,v¨ÝÂs›T…Óâ=t•ƒn1 ]zV¡žG¡ëå3ÐYÐõò9èFLôÐõò9èFãqªLVr®øG57cƒ1YèªRý4>Qn_˜tÑB¥uõËÕ²ÖÕ§½«V¾ÎÝù²wgÐ94 ÷iË´)`‡†²äÎÉÜF¯¸s¥ÖWÀq‘Ÿ¨Ô„=~]0_Úa«X:î¾Òð¼a ›¿ûZÞª3^îx ]d¯ÌUº^>ݘ…]/ŸƒnÄD]/Ÿƒn4Ž!Nªa3ÐjŒÝœÖ{1­.掊£§á #‘°Þ¢Ÿ*µVi'ø‹9$Ç´SŠżŸ3„{†®ë§7_: ;OËM“ ° hò6ü‚¢‡'ì0¤ IÖ`tCÊŸI°«‚oýféνœƒþx5aÍA/ýTã“›»Œ›­ŒßÿèôÙ‡‰I Ä”QäyùQ ùA>ƒü˜‰€ü ŸA~<ާ&Ë™v×ÜŒi ^Ä4¾|ä ­Cô³ÒeI~ñÚ 4.‰Ê K„'† q 1âÊfŒ–ª6 K‰ûjG%ü¤$‚xbNÒ°vG2·ËªÖÔå§Ig»óF ¦1Çš0F¨£´Û~°3=-g€ì^eâÌêKF³ùHSøb9p®tiÏy‹ª¾ä}?ƒ»ÍŸ(¸½|Ü1 Ü^>Ü^>îh!Nð›vW/ظÆàfLcð"¦·†sÞáS®'g©×T›luœ¨”}þü¿ TÒ¥†\Sý<…6G”ÈíË¡@„­ûzPà„€FÑŒX)èIäYile°šnŸûæ˜D«¦³¬Ì‘Å:µï¡æ%£‹»š€Ú ‰‹N4ÞçÜ!öm¯Ù§ ‚Œ“ωg¸Ù¨çÄsÌ›6Ðωçx‹ ÌÎÌR1ùàß´|8~Z¥[YQBéáe†—KuA7;»¹&ÚiŽÂ:@XFÆ(ªíÐÒZ9@Khmm.]Œm µ´ôß0Í躲€6K79@çÐÕÐÆz‰š•¼BsÕÉúà­'à­¥q|{ù Àc½|â=ƽ|äÑ8|œ9î‹©É)h O—j†'Q¹Ï”—Ïd*îCЈréås¹ŒÒkDé³íåsÙŽÒkDù–UaÄgМÓ@I"¬%vVä—æEƋ܄Ûw,ÏÚ·Û‡Ó¡qM€É¥H-‹Œ±÷þëa[»;¢!:Ê'¢(ɨ_YÉWšË\s²Ÿ?×»““4GÇ'¸V!&ï%-+x‘ç’)£2mt|䃮²$?m]{Ø®ëÛ·]süî¼+Y©¯:·}C.­¬¦*ùƒ³)mÑKVÍå3jCysÃË2,m‹¾;¶»S× P*L±¿Övi_t祲Èr?J„Ù xUï7×§–#]|rSŸ6çA"—b¬§.v·íŽì±þܰz÷\§¹ƒb\ ü.©Ø7}nöìéЛ}Ƕ{ö󊲥Ò*ïë§n»>²=BQOëÇwõæDØ8—tв*ôàÏÐ Œó‡ÜvÍÁÁ¥÷/òl÷ݡݜÖ͆µŸéíB¥ùÀº-Õôäâ8²}óÌZ¸Óîqù÷ôê€NݼúI{¶vñÞ©7›`*Í“syõ§XÖº–ÁG¶òA"+äQ—YaLå—’ÁŒô$úÔ Tlàÿm’g—M´©® úåj¸”ãÖÿ$¼Z–'¢èž¯è¥\•„(±c»²£ÌŠ™,µb¥dI£–lŠÏ>˜sî½-Ùj²Ò£»ï«Ï¹ÉÖ•*ù´p¦}#1â\[ºAJèòV–g‡2^ø:ÉåÀ0fum[å²QíÂh2»®íÜEÙŽ½ãˆx/í ìé\kûJÄ|eI jʶ?d¼ŸgCz‡ôëÉ•µ…1WXˆP³Šq[ñC`áCNû·ÈA;˜&.ûÃb…`'Üû²ØÊðª‚$±¥«‚\,$,ØUb‚ØàõŒÚW¦Q¥T„™hùç-ó˜-ïþuWÛNžngHDUÝ¢ªTU)Ùª’T”p›_PU $Ua{ôgár\|´‘Û$‹"j;k¢ ¿÷ê€m5˜FŠíío—‡+'Õ…¶ó½\1sÅo¾ÆûQ¯)þíÛ0À¢±.°£ð‘ÇKw%ñVМ8Aœ›¤÷4HjÂ=‰&ÞOÖ…›É¶IÑgš¼?¤´Çlš+,—Ißh4“Û¿t_ÛxÑ÷.<»*9Œ}ãÞ*‡V.÷³ÀDf.JS#QÑ–¥<³âu4eð—V‡ÊT©¡âl0wøÂN\(› <7ËL-Ô‚×Ñ”ü±xGÆÞ·5}Ö@–UÅ‹fŧdŠé“Æ”ù›»baF–W53x¡ˆËlÌ!t]c‚w¯Qû.¸ ðª} C5 о:Úß߸ӾÊ÷ä#Г¹® •'ÙÈÙ“R)—éÜ£¤ŠÀ}õÂq&E~K…K¦„ç ÷yäŒÈϺä"I>\uèj=pÐGwè ƒ› ƒò3,À|wºæ9%L‡XOÓdìmi>ãN•‰öNŽgF7ò®7ŸL† ¾ðM¶éB! ýÞÉwõ…¿wª€¼Të/Éý4‘Ûšš©P >ûºÔp@Y€¹QÚn”¶†• ;Ü‹ Ê‚0Dê¼bQ ·I2]mì3×ña0dœÛÖ±?dƒô!ýõ„ºËB•#ûŒ€¢?Œõ”™hœ65– s/|”¢qlnµÏ¡;LŽÖæÜf'hË1Í’Aˆ.r¥öÁÈ+©e&¼Ý¥oµ,\,YZ„ê«n¬IT*W‡Ë2ñ0¥¹‹2ñÀ&$r}ÙY“’^õ¹Úi|­Ù=«ÐÉ÷Ux{½ìKpcs_ü?ìdoG~7íi"眈tB×dcPG}(ŒbíbæƒÃýên):JîÈØ£-A¤’_¿Ÿe<Ð¥aÁTkNVw÷WÍI:õY©õY;ŸgD×ÀqGz*i ¼û•)`™ü®ou™CYð¶×ÁÊ:ù<úø+Úx˜á‰›²²¤Ùø›Ç_Wº*ý ìpSú©}´¾Ûº‡n,C ±]Ýhk‘’ß±7]1ïsë/b>„æji¶ ŠÆÍ>œU0þÙˆU„¢~‰QËÄ,ÙÄMΞ­nv¾ ÈîRD7¿,6,Ò¾ü2 Ò¬B2Î e=“Ý»Zÿ5þ(á’qæÄaeõx–šHù•6Tؘé2 ¹Ú¡qž\Mº9ìYØtÃÑ´ôî*&oä. ª@Bù”üØžü1¶t¨‘sfJ§Ôd­\nm`ïqÃHÌsJ6¸ëþ=^Ì›‰ÿIlsæ=8_@òË™,œY‡8 jZß¡ðþÙù?m¶BGXÉÄ%]Ć©­ÉéÜ´[°~µºž¾¨?v SB€zv¼V5˜—2¶œ­DhaØUýc²\Nuu+Ø’Rƒ2Dœ?‘¾Év5nÀÎ`žKß}øæ¿D•Y endstream endobj 184 0 obj << /Type /Page /Parent 754 0 R /Resources 186 0 R /Contents 187 0 R /Annots [ 185 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 185 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 216 388 242 402 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 186 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 187 0 obj << /Length 3963 /Filter /FlateDecode >> stream H‰ŒWÛŽÛÈE^õýH#šW‘Ä>Ù›õ"kÄ âdÙÑ+±^F»ùŒìþC~3§ªºIj<ö6Fìf³»êœS—~³ß¼Úïc©ýaEAY–*Ä?ûX†A˜$±ÊÓ,‹¤TûóæÕ·C¦ê—…j¨7¯¾©‡aƒµaˆêÍÖ=^7?yïým”…÷«‡AäuÕelñùÞLõñ]Õ(‡ÞŸ}¬ÁKŸ–ŒÚßîðÛªºíüm”ÞƒÑ+õýÔ62£éËßâ7ŠvQè½×µéõ]ÓŽ­é”ÿ¯ý_6ßí7‘jÕ¦(‚¬LàHDqªÒ$ Š4U°4U¯7‡Í›ýWHŠ Lã‚ü'ߢ’Ü ÅÁoÍÅß0â+¯÷SümaU$d8M}ú;ŠQ¯ÞZÄÓ ÁYû?ÑVõÆûƒ¿ÿ´â¶•òZMùPûD'«˜PV„0vÂùQì"œz¡¸óî;‰`ŽãÕŠ:°x›—¡—EệE¨¶ê59Ó«¢ÈCï¿øP)õ®zðéí'ô]Î0[„³8ÈÂø ÷ôE­…Àz·+g¬óÙíL܆%ŒÈȶx×·]Ý^N<§e` ÷”¹èždS1|yÌ„Xhü¦ BÄò²@¯¶Q°Kì#r1bÔªÓ¿0€9vÆ¥§úª]“þué+^šÇ¶Ñj0g­¦A¦“º¯êŸí—½™ Ú¶;˜þ\±pñÿh®jÄ BíN¨MæàakÙÆ([lLfk£‹±Aw€9´Ý¬Ê-ýè~aT0ÎlG5öU7œªñùõª²ÎµÝhœ;Cjg4Ƕ#äÑý­mÅ0Þ½>V­éeå^̘ÇAò¹?Iæü!â£@½‡78FùÉ.ô„qB¤òù0ÑÇÞ¥×ðºæT’>Ïoš½Àï0—ªoˆ†øö’‰ÊaìŠB+ô,(²ç¢8rQ\Wä¹±}”xÕÌÁxk2¼ÌWûÄÎàØæH0…Æ LõT£íZ”)Di B b?úÕß%Øô±îô#¡HÇoã$ˆã§B+g°J9|¼¥O8«okâ#BÄQ<œeä©M?P–&]T½V—S%ËjݨÉ+¾•& aÜvè´[zT!Ñž «²´‡ôÐj£î©Ž`ÄEž•5¡Â{IÀÈÊ„;L·éïf‰þý;ûíúº‚íkW˜#Ó«ÖF …«n¥H(ÇéŒîMc »1_Tò$nÓÈpÆKf†-å“„K oˆõÊeqÄK™¼ ´ÈQc«o5Ú;gé<‹½žž¸Å~ÇÑ„9%î1ªb…ÇùH=¸Õë(¼YïCd”Gœ³}Ûcði}šƒ8ˆgyܺÏ~ÄÖ‘+Ë7ñFù!¥•º°«:ûúvâe\ù‘$íTRÇj̓Ÿ¨?pB#&ixóY¯n†÷ÚÕ½¶;^m‡¢»ÀRö3á“·?ËBMa‡†©ÖŠÅ7f\+pgŸ!Ç@Ę®–µ2vÝÁg‘è ñóU¥,jD×N²Ìl ý`R˜´š¢ƒ„ ¬êl¼ÕõDqÎ1y²<‹zø=§%žÔ,†þÜvš»˜Aº6(†ÆRz8PÕ‘ÝŸˆ$ÜÍyh'>Mßþ›Òhá™n„¾HHfÈÖ|ôÈü÷PíD«ÿøè»X4}Óv\öŒõ†í¢ê9¡•]k½f4q%æ¬e…]Èq”zà•ëa*á32j•vÎ(þ#ù,A¹žµOߢôÔ2¡ù¥a¶Ó¯ëTuŒä{¬æéØêr±h„2ŒkYZtŒ3ÙÇ¥ýv¡à·40²ç×åóÛ?4Q7‘ï®FTðó€ ¨E43>I@ñ‘|‚êÊKq’¿…dá„$$ÑÎ7“‚²«s¿Ȭ^bœÓ½þÝîs’¡±/ûv<žO`OÁÌLõÕU– #KÎ_èŒg–dw¾Lcµje‡³1£Oj?Þ¡?ÑÕ ‘AÉÚ0XèŠlb¸u'umç(`sªk”c:ÓZÄ‘H…Ž<é @—£}â¤QR’ত^%:™©lë«ýŒ“9¥zù«%ýÖüb”e=¹ÖójÓL„Sn×Ëë‰uk rÅ"ŒÎöËO-ˆeA‰J¿&þù "Xíõ^;øtÁR²@^_øu%S:ÿR{λÙCeV¾¶æöÖWzq'eÐñ†ã,M‘ÔOvéÍhAÓÒÿWívèBé­·ŒÁt#ORìxî"‹ʤ§V&4¡ü`?$+É|ÞTxÄ·¼¤®Gš6RëƒÏÒ¶‚çeö Îñ…Wù»ºRéB¢y°>’åYÍk$¢ø‡8œFD55áâ†O—:e}êÏͽ×ÖùÛ<šÍñ”  Ü2´K-ÆtÍüLY)YhŠùžFTfÖÿ×÷ƒ9M£fø%Ápá|S›¹ÄI9‚ÈT¯9[º °xÃû3 r0gÍYPÝWü;´µŒÄ–3Ê•<$ØXª€4tØa²YÈsëíÞ"úŽ×_äs{à ïê2l@¥3Gƒ:tQÈ#֤ɗ’œHÃJö×6¢Hò¯©µ=€ò[ê0ësC´Úè ÉLgâú(Ø1˜Ãx­¸ÐâfÆyþµ¤÷{b ¬YkGuæ´—IvË©¶éÒôãñzlOÔq1‘ËBÐbgˆI€¡¥IA|÷Õ-§ÅÂi!¶L…cnÇÂ\ê …· ¾ïÃBÜÎc•=C±9M²ÁA.ð³œA¢|Ûm¦¡íä»ù{ÂY§;§76Ùï]n‘Áªx‘+óÏd¯nƯ~¼¤’¯¦žg’ÎKéBÉ>¿ÈQí0~CÊ4ÍË&_ÞC!-\Öæˆz•åFÙ`íÂzwÌÉ>P®—ÌG%àGgÑÿUÿög”x”ñhäb£üý'j‚¢Pº <(J.;Äó±»v ڨ⪑³Ñ—TúI+•Y´Þ$·›D.)êu(9×zbwÊç¬G- 5WðõMš&=ßæ+ /y¬ \ñŸîšé‚k']d”ÊáTmc®;Ïö˜°¦ŸGŸ¤ª ÿÔ«˜ÙÔ³+ ‰aÇ<¥«Ov¿Ñ^ž®FM,b=fÜ›§ó>¸˜Ép‹%œ´b[ÏSwŠÖчA ´!ƒÊ´þÍ’è:Ù wkÈí¥DþJæWíœu']Gî|C>Grçr/X°SRÉ$¸rÌ%Xø”Oˆ—ÞN²­7wãTòžÈÅ?ÿÌÍOÝÜݨ¬˜¥j3$%"é™íujGÝ¥œß=é•kÈIŽÄ±ÜJpéÑ$Sï¹{uÖµ,È ÎT1Œ²œ-ªÿÑ^åJnA4÷W K»0æÀv9pà*gNäHJ +±v—”ÀC¥sùÛüº{p Ä5e'» ‰ééó½×ìa(J <+³ô¨ Ï!#Ú°5úð™­4OׂFì 6ÿÂWÀÑ#ŸOÊ…l08o‹L$´îF‹ŸÈ…_°‹’]íØJzT®*œvñÌÊ(½\ƒ —;Ìœuá옴܅H=º$¸› @gãK}•-ø aLk£.;QJo@=€x ŽÙ¡;4Ï™ÖÐY¥ óœ-¥Kk¸¡Ñ½³zµ‘Ä6ÝIæ¢íôÊ_šõQw ŽaìmÞ|.2Åmal‚ÁPŸ³b—ïÑŒjèà…]—…m“% Ðð~uïYŠ*–§mwX_»í ö6ÿ]HÁ"ªAÝÈÕyáŒÕE¨4 gR¨âÅÊ]ë!SùB™•°¦(mú’ÀÉÖ3é<Èèf›PûAÔHΫ-ᵄÊ]jºÐn°CÞ8Á„dK“§chÒÚ.ø—wå…1A ++ØjY7ôXézt SÈŸÚæ´Ù…Vð¬Ä m·ÒÄ6CÄ›¢)6 TyƒOõú‘ÒåÍ!ëz¥ù|l¶k±ØÀJÞ ¼Õ4m³~#‹ÍaŸ½?¶$/“8 ,¶†5-¨+u[»{l ÌÐT<^ÜÔò_·;øØ&éÓ%eÂ:±P‚ñÞçëú+|IÚ§ã‹™™ƒù®:r"v¬!Käži40 ¦á@"’&FçÏ?uò½io&å±YnfåqsTþûØglå_°ÏøØ5ö¹9ÒŽ~^é«¥|÷ôsÙ‹ùg–µ«ü3‹ááýßðÏŒ¾ÉÿD9g¨€UOX:¼/H“+Ú¬HÀãF̱ ¢•ŸVpÄ?À%Œ>V9ÙêS½yªß=ÑXSXómÍŠPïÀ»,Ž-r–E– „)±Ñ|®Û€Xª"¦êk7á™ ÂVr‰4…öD,ÏýXa¼®0ÕÓ™yªi×Ë–ˆTa×SÈTÙ.øR b_¥nû9ã¥Bå`ˆŠ/ ¿wÀ;P-­†ÁÏ0øâj³ÝÀS*ßÔüúêÎb㑈¥)û˜ƒºTb±"?ÉZ³*¨yÂTŸ¾{Çžäµì°ËÒãý Q<:°$<;O M%’`¹U Ö[Úæ"îVtÑaI²•-س<."ìøÙ2¢ݬ´¤@G޵ðKä¢/V›Â•Õ¹/‚8…ôôK˜Ðít~_ïPºuÛÔ²wÑØÑ<¿Osö¡mš~tiºöÏ;Ð3‹TEgšu}P­œ„PÉëd„¦fe¬;{ôä]‹¥¿ç1^Ë ù@’oŠt±ðv†VN×M¯F¡Õk.fôS¦³9€…ÿï©#áÈ#þªSDh™’œI¢±èÉnB3Mõ·¬°w¢’ Ç=€-û’T7böùF¤ÔÇN;]7º?®?fõ>ûkY­J¼ƒ‰Pï/ÓÜ5ƵŠ4ºCŠKä×x7 ^¯d•ë÷ï%εÖ¶4ö›¾¼„¦q;w‰ë쇒ûN\wµ­úÚŽ´.{(Œ½Š¬P”5ÿEâAÕו¦:l¨iL¾•]‰Ua­èá±,Püeû ŸAq0úµ a`·~{ýÃ?>v> endstream endobj 188 0 obj << /Type /Page /Parent 755 0 R /Resources 192 0 R /Contents 193 0 R /Annots [ 189 0 R 190 0 R 191 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 189 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 487 206 513 220 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 190 0 obj << /Dest [ 140 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 126 164 184 178 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 191 0 obj << /Dest [ 133 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 235 164 261 178 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 192 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 193 0 obj << /Length 4438 /Filter /FlateDecode >> stream H‰¤WÛŽãÆE€<úŠ~$“—ÝͦH~Xol#yXÇ“E­˜ÕZ’%ù ù…üfNU5©Ûh×ëxáÉî®:]×S_/g¯–K£´Z®gZGyž«ÿücG±µF-Å™ÍÕòiöêMïTÙó¶XõåìÕwï´zßϰ7Ž!¨œÍÇÇÃì‡à]8×6Ê‚…&Žtл¡Æñe»/7o‹• ç&þbCÚ2Tá<Åo·.ʺ çy”ïCMKê»}½’/48‹_­S者mVê›U=Ôm£Â¿/ÿ4ûf9ÓªV³,‹\nqi“¨Ä&Q–$ HFuÕl=ûzù Ø,Ê“Ñýén:§kÆrÁ7í.œg‡âTÐ… þÖ@G–€ÓÇMHõê[oñ$²Ðµü‰*gÁ¯Âå?Nül¹,‹AVêŸH³2deE†$è×y”ˆ¤9 ²b°¹ïÈHdfcNv”‘Àê"§ã9¤ÇY¬æê5]ÊÐR–-âà¿8¨”z[¼IIZ:gôdfoag"›/6ð"Î#§ùdác iHˆ‘„cDS ð}^?öívx!‹«§v%OwjØøoKq ‚ßqü»!uãÏ’ÏFѲc xÁÑ£oqBw»m]õþÅÚ7‡jò<}aÏkö<Ç4ëU«JÀ;Ú×¢®!¸ùxÔ+x–§H‹÷þ~k~­·g÷ŸÀ‰âŽñ³˜âg!Z2”ºWÒæ{µ*†BìºîÚ'<ÒPåF­k‰™ ‘KƒªSýеªHÉ‘?·‚+8HçŠíÖKఴ씺‡$`íê†ÂȽªFÑí^>n€ñ–¿Ê]×®öe¥ö}ñ(23?Äæ®í%×ú¡6ªiá‰UÕ×vW‚­è†µdèG°%ƒðmè.i ú#@T—u±U¹×+* ’ßsDM˜ÄœùdÎ\̹iûA•EÃ`ËîÅå)Ò†^µ,­X"C[?pJi´v-ðu³jäuz¥ŠçŠmËA³àÈòû½¬.4¤ƒB‹×)¶G帋WÙ-§•—õL6@pu²ÏïzUzNݘ°ëëmßÞ!¡Ôs%u§cÉX•`äëž™uã«PKP’À^”ð¬Ö„, ÖU9ø+ãE¾ñ†Ç=ÀÌëfÂÌUà ˆ̨.(ñ?çždžáÌ“¼Ë$ï ÙÆIÖQ¤9Î*Ã9ç$ãŒdܸ¢e¯—(NüË}È÷Ú>×ç ~"A¼‹„|Ü“¾cÏBбoÉY„":õmOúÎC`(È‚‡p<5öqÊúcßÐcÞkíó^í3\L™Þvê/|>C!Î-×fÿh3í™S)Ú_ê¦öçŒ9ÑT!¡ ,åºÂÛßÀªÅ%9¼bR€²Ùk¤<È$ö  6‘eÔ§MÀ&ÀÅjÑ×#©wUÓ#Uh]Œ:†‚RY> Ì‘š-÷ nòW©É骡¼ëÅT"ˆP€Êä]±ò•–rão¡“çb»¯hWÓvOžÕøî’Nååßò]xI×¢"-[TÄÁ«Bé(¦.–HK¨‹=µt¿“ú~Ù6õÑÏžˆLÔuÛ¶ÐÑB/"=àæE¯uSvUÑ3 ºúXqEdžFýœ¸ªï·?$Òó@éª~ÓnWw?¬†5 ã²7ÎØ´Ï괞ܠ½¨CRùOƒA~üНò_¨¤’™ËM÷dlDêŽÊomüzß2‚„:¼=î:H·IåZð„ÚáKˆ?[”üSE|‚u Æ¿näµRMõOίÜñý×#Æb+[ž6ŒÉ&k*¾É(»Sä¨äJe'»äZ~mï4ýðªrÁéˆÀÅŸ>";}õq_5娩3 1Ô ªçª!x*>€Eîw¿^]w€*mñ—x†Fyñ-¢§J”øÏŸx–Æ…:ÈÈGõßÐA.éD¶‹Á ä™Óm_M¯údÿSýT—^ìÅh»ÍÓ÷—GÀ)âtäñÜ’iÉ·dØúØ£I™9Jr“$'’x¦r2SÝÊHåX £^Xï¶•´YÞˆïQ¬ÕO<1 ç†î„Ù¯ê5}È„_TÓž·ß{’ÍÏþú¿=†ý•8ìq6ð,èi¿€°‡GVÂè Œ%øBÃkÐ\òˆS>­å½ä¿ƒLT-Í–é€|—=ûöäyBëdãHžˆˆ…ú¨£÷àXyœå—^,ãŒnàͽß½¶Æ¿?Éûö¢Ã]ù PIaù‘E9žDÎÂ;ÚkCÍgäAÑ©:´Ý ÙtôL>Õ0)ºçeÎþ¬i§Îc¥/Þ«¯Ô»|QhÑ¿¤c/0ï4EÅM3•sš™÷XŒ~ö ~s‰×+¾8B“²ÿ¨3d@æ’4¼'Cÿ=ß|kÉ!9IÒó+O#ÈçG$/¢ØØsh¾¯ýçÖàc (^бó–Ögžk»˜Ä¢ŽÇ/*Ù8&Á¤eâsã¼Xƒ‡ðNñD(/=1ÚÓzÁn‚êc¤lÁŒä!¼èÿÀ|ÒžOB›ÆÉ”ßqI‚gœÜåÍ çaœbä³9*K'|¡ót’aâË, µ“5Ìb"… øÕM)¦–,Mo øÂ)Áë2÷³ýîf¾˜(Ë:•rií—b»3› n ƒÐÕ™5g×ÞܬéZæBò/)·ŽÜ¬‚’ùŸÈkH/§M’Æ×n‘–ù% ÑêàzNA¦ØÏ§Êã/M•SîqÅbÀ1Á"¸ãÜ«šÙÑÔ¦ÒÀœŽX"k!M˹SoÆså¾ëÛnb㦾ìd`­ªFfÏ+fq„~#”rôIg@4Ð¥I·šMLå©…Q®Óc‚\Ÿ£¹ÕêÀ_\’/Îtž ½ÇÚBi‚óŸÕNc$lÏ&M™/ˆ‚@1o%/‡¶ëU~‡‘ÁÐŒËDzÇó/,dÉ^l÷åæm±â›ÑWšþGyµì8jDÑ}¾¢–Xš¶ kV‰”HYÌ&Ý‹HYaŒÛhx‰G·óI>8ç> chO&+C¨[÷œ{î¹°#™þÃc§ö¶ÿܦ7‰zV¹×å-ã6ô ùad™"Û±Éöpm[Y¾Ù²rgñéÈ1íùA’÷ ©E!†Jø°ßg’ic`aϘš€&™f­žH“ü>1<¿*‰‘Û’gÜEŸÐ8l}öص֧¤÷°*°oªu•ý®Ób3jaQ©ÏÓ~ì*ž±.˜t}ê,# Hg D×Wý— »õJ7´„ˆñœ•»±Lèd3Úð'7”…Œ¾¼ð qå!`‡€EÐDoq²4€Ô5 „v_O±¿UE8ŨÉIÝ „¥dà)6¦Yî³ÜzŸ¥¥òšs+ävæx‚]% ÿ'~SÖ¬C™oiö ÔL%·„PQRd´õ´TÛG}mz*…&6ª!¸»Å´¹N‰qÖ#ëdò~)² «È׺yÇ ãÕœ2Ô}QŸÆ~`åµ"‰÷‰† „vÌ1®ÉÜg•¦ ´y‡D³Ö¯Uˆ7ª0œ¹— ‡ –¯¹LhöëNµ›!ámµMa{>> endobj 195 0 obj << /Dest [ 194 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 219 615 278 629 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 196 0 obj << /Dest [ 226 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 149 87 157 101 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 197 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 363 87 372 101 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 198 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 199 0 obj << /Length 3923 /Filter /FlateDecode >> stream H‰”W͎ܸF®ý<ä nY¿-)>ÅŽ½Ùq#HÖ›ƒFbO+VK‚H³yŒì^ö ö5÷«*J­îAâLSd±X¬úê«âëãîåñ«HO»( ʲT!þܰ ƒ0Ib•§YI©Ž—ÝË7&Sµa±P™z÷ò«‘z4;Ȇ!Õ»ý2ü¼ûè}ð÷QÞ÷~‘×W£m±ý8Ìõù}Õ(‡Þ×>d°è“ˆÕþþ€ßéTÕmïïË ôýˆ–ÔWsÛÈŒ¦1öâ7ŠQè}ÐõÐ7êmÓÚvè•ÿ÷ã7»·Ç]¤Zµ+Š +\$ ¢8Ui’Eš*XšÇjÒ»Óîõñ¿8 )‚2 º?Ý-*éš¡\ðÍ0úûÆá†ØåM~Šÿ-¬ ƒ„ §É³Oÿ­õòóx$8ëø{RUï¼_ùÇlâÛJY‡¦|¨ÑÉ*&/+ò04áü¨ p"œzyñà±»_“ÈÍq¼‘¨7Àj^†^…{h‹PíÕïèR1-Ez?c£Rê}õèÓ!ÚOh_¯nvÎâ ãÿÛÁyXqx( ØÃž™Çq˜¬QÎ=Q(þI‚CêÜG1áž­Æ[/Fâ¶ñb±z±`íªfî4öf\gµ¥™à€;ýE¹±bÅ¿ƒ¿"À]û Î4v:ðçx`‡O˜üˆ`ã)Ó^æ®âeÛö¼U]Þ›ìR³µ@wÍ_]+¿ŸŒšÍ²Ážiƒ'õ„EÕ?ÊôJ¦ ëä8Œˆxž)¬DÙz¡äz£äšÑ#Æ{‚Œö3 ŸpÆÉm"Áù·ñIP5©œ$ñÚ'Íkòe”“l”‘ù'Þ ‰HL2-¨æKœ¤±Œi8Lö¸Yø:ƒ{»Äžj»Æª~à™¿Ü™×Š;»cý=©UDÅ4t82??b2u^ ɃEü!÷Ñ;ªÑV×VU €[ÉÈ£䊗ki‚‹~A1ºÒe7 ö ñlB@Õ· GsPm_c þŠ¡GW†¸‘ÒU=‚Q.{ē䨮`›qÂæ¹Àa½ÀA.`Ï“6ç¡k8{``O‡OÚÎ|‘ƒ7ñÄ¿ˆ‚ &‹SÕÉêI }GÔÍ5֤:Mt­ƒ0WáÕ¼¹|8ÁS†ùÝQÙçÖžU×ZÛi5LªÔ_é—í?þFŒ-¯Å¨»ÿì°ÂðHˆ¦{®,%eBk”m/”¹(õ§ÁÊKÈc‚™–ßQacU‹ÄLÅ)òd¥ùŽƒHÄI^µ né«Þž SÏâð³ØjÉm[ERL®´£ m¸(ί¼Åž¿'®muú\FÄ‹»üƒˆ+!ß}ò‹èèôÉòö±B¸ÌÀã§vB*ũ}RP?iâx-°ŒlÄŒó`,LÙÁlFë=Qãä°§!‹˜á§:íцœ;sK2S”‘,v-eZŠYfPô'­a¾,½yççÀ§[rÛgb-é"ODU¼ç¯(Wm×ÍÆÊ¢œlEÆ(AÃ2=*ùEr5N|±¯‘ôvûÕä@n|@‡”¥1WÚe¼”ZŒƒ¨¥™¹"„ü¼@GadlßnóžÌºËhÙÈã8Îô[¥ÊBêž’ÃZÛók^æ‡wí#¨á-È]‘Ϥ•ÃÇÇŠ\ÁŸì 7~”Eé–ÝDx+ÿ/­mZäAzÈÒµµK¯ qmšÓ:{Ÿ53O*R×ãbMŠØÓ.M±Ç´Í#á+04Q²zªx²›µ’‘ð§H+sÖ‘²ÌrÚÂxüÄgr©J=ëìCÜA¢êGÙÙ‰†Ó"nRQä'êTËÑc7X+ãÆ ·ŽzEìì¸ÓOº“ZNP¯‘s„w`ð˜V6õ2æuµ\¬—/˜iÍRï¥Û%Ò¿½_¶Þ/ÛSº«Y*_!ó¸p<¸n*2o¹`æ]»§`Û ETÁ¸» OšëL=O†š1¯z§îM‹7ç|±DÒ\|aïå„¢ˆ;X[¯©´á¨ê“F#ó´˜ÆJØ96ÒGÇE—ÔrÒÄir>iÌ‘÷3ñ~¶<)ï[¶hí9#×s>躂ËåóY[0xã âc"ã=%f•Ýs‚^cÔgîøh™!Z,IÜÑTKÿN~$D–'Ç\Éoäפh–3÷ç ³ç0P³jv†k®Wã/l¬3QLWCˆ*9CTQNÜ`­\±æZD#ÞGÃ@Ù >‡Ëñä‰Ó¥aEPÑkÇáx—AÊ8óñ:À9Ü££PWôè“¡ª«®[à¾mÜ#›÷æµOY^‘o›Gj,K ZŠ?rûÓ]•; @oÔdW5™kéЂ+nŸ¹¥‹Ë )¾ˆìàµoÚM\ÙÕ W2ãY\Ìo9⪯©PRùáºN­ø6B.œŽ»ntÝ£âBÚåí¤«úì` Í=Ž·ò¨‰ oG·FwižuƒšxEM¼¼èÜûì“6eÊ(¤WM©W…ëÁ} ç=_ob»7£Û`¸×‰°i!l›ÚáÚ>·x©Õ²ièmÛÏšñ¶ò®U":¬1L¨±æ("&K%.ä–‡­Gi–}jœ±Z.Pp‰ªøýH)u¯Ä9YjbÊ5-ö‚ô…€ŒI¶¢U+A’–‰˜ lYป€†Dê$YˆªÙµSžºË&Âtå5Á£rm縗's‘J[2ñD^C¯ÃÁ lÆQ»^ÖβF$™è–G·0ýÛP„ îèif¬j'êTÈô²¯^ˆŒµT9I-zèéDŸÈ%ÃÖç)ôo9yê"˳,'­F§n: “QUÿ¬Š\!´ßb¨í[ÛRó‡6 ØÐ<¥Ï©ùÃ-v²ôœëò ÜT´>@>ò+†€†«.Ñ}qÝ4È7oÖ0YÓÐaÆå†E•5Tf53oÂ¥5ƒÅìãóÜ7%žc­ÑHÄÆÜ[‰ ÎÏ2óúF ܳgÁZg[sîj Xïx¾6Žné-tG·Ïžj¶Ã zá°wÓN, €[¶nÝÕäžÑÝIÍ#5JÃg=íçñ•j¹V³ÔYº­Þx£—ìPt1«¡Ug†/µœ“¤¯«¸Ëcs,[€#ѧ®ÅÕi.>êÏè­úÎûµ[y”døfÞw>XÑ-\.U~M½Ù¤ú4ƒHëá2vÚêÎ5«ì—ôúìXQµw#ö'C ï"üÊp®Ãý'mòZâ õ½GÞ+îxiÝ/VâuE!©R~È] IÐ,ú…òªéq܆¡÷ü `ãZ–ãc;-PX höÔÙ=xǪ®c§¶“ü¶?¸¤d+“ÙÅ›)J$£Ý6£‰,²“ýÜ9UÙ…n€þØrIVN¯—Ïn­uÛ‹elï\çVwÎ"oÐÆ»ŽZK/}½ìÊíFvpÿï.HRu—¼çÈÌ‚<@½ E „c,`{¶Ÿ¥à+¸Fù£¼r€ì¤îÍØ‰]." å·H«wÊÊ %j¯ÖÉÑQÞ›Èê&Ë'jÒ´DIJ„nK»çžUg?®ðNE,4òòK&‰³" OùZõDPp!w¥æTðIqë‡â~( {qᱫ4„Im#?yÊò‰}²˜wh£™¦r[r^ÚõRpôÃ[ï†<12ò@鈬r–,œ=cZüq†ž‚u¤ï´íÿÉ—.™våwl-‘p1U®ÝÓ%?ªúÌ £¼šE㋄χã.¥hâ[¿J• âï\È—­èø hç’"á$£jÎáÖ5µSƒ»Í~ñÉÕ€à…!T 1sˆa:_aDur0¤‘›‰ãÙ×Ïèß ƒ§'B„ŽuóŸ¼G/¼G¼G;)s °8#¬4źw$Cíen¥…Ž[aCޏõþ•9 ‰ÚgôÈ©¶jµ˜{{PíU×^YW3AÄ]Òü¤~«ÇæF…®žÄ~úD7PÓpœoÞp Ü›oÎ91ñ6‹IVã+P2![2!s™q&äNÙšž¾ÔDÌx‚]‘ qç„̱óè&ŸF–‰¡˜Hu£ã$²—Õ§à9T˜d—žÝ›½âìp‡Ú`³«•·Û6åþ%n¹ ñK_õø%c|×¼Ö£.ñ¼óÄ,‚qŠ&G.Öq8­¤Úû™ïÆ% ¡gnéf¿Qýn f½W??í^Œ8äx¦†ù&ç`v™8ÆŒ³à2]¼¶ûdÍu윀SUÃpˆ¶Ñcã?'á;çÁÒðÄ€ƒUM{ç)#OêîËäG/÷i`“âºL«zk)Wd—­qx#G¿ãZ9ú•.ñÙÑRgÈ~áë4`Hƒ ò/âL(°Ô¤X;Úº[7" ¢Ý2=sµ‹è‹µìãÙø—,¡¸d‚}²/íßâ7bæ´Gº°ó¥«ï‹í_í~ŽÚzì,îªabW¹ARKÓ „¬Ÿ/3ŠÿŠ[p¢­Àtú‹ö8à°á2µð÷0œZù®È4PŬָÁÐï;> ©5ªñÒãQf‚Š1p8Ë`Å(ƒ W/1Ió`8ù~¬é6 “b)2Y–Á Ú£õYA§ äˬDáW™b¬Äo¶ÌA<<# %ˆ0ˆ*~çyèy›>l¾yšöê逭èïð´Ñê'ÿï*‰‹TÝhÌ{õü)QÍFgYœ¤•Ú—û¸Üê´Ñ%ÚF/é6ºBÊšarHÒ¤DI™P‚(dÕ2Iç:´c°¦Ô¡c@Uµ¹“ ‰pÜ@kPB[ $9.’U+ƒ¤D %%%Ðʪ<.ª*<—?ûcfŽ£/‡Apª‚ÚeID=Oõ[¯´áA°è,Þ=J¼Òâ®h‚̽5BY—y² Ü ×¡SoHX)ˆ·² ¼N–#ÅoIœ•ÃæŸ{*! endstream endobj 200 0 obj << /Type /Page /Parent 755 0 R /Resources 207 0 R /Contents 208 0 R /Annots [ 201 0 R 202 0 R 203 0 R 204 0 R 205 0 R 206 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 201 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 126 692 134 706 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 202 0 obj << /Dest [ 419 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 197 692 256 706 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 203 0 obj << /Dest [ 200 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 90 629 148 643 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 204 0 obj << /Dest [ 233 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 433 317 450 331 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 205 0 obj << /Dest [ 318 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 399 199 425 213 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 206 0 obj << /Dest [ 200 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 410 122 469 136 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 207 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 208 0 obj << /Length 3894 /Filter /FlateDecode >> stream H‰”WMsãÆ­\ù+æ8H‰0H ·½ëŠ×e+·|XåC°Ptþ†ÿDnùyÝ=RÒ®7)U‰æ«ûõë×=7›ÙõfcT¤6ÛY-òëCß]Ù5°ûá8ª±«Ø™T\\i5Xyïk7Ѐ øQûº´jW<[µï†_#s±ŒAIžýòG[)PeÜYåÏT•‹¹˜ê¡ô'=`níh€@¤”bóY¶dÂ%WêPô€ûØ=DX» ÈÑ‚fÔlÕR ’Ç`N!èü8\“y´\(´ÈC5î\ЬÚÇco]l?ÝÝou¯ÉOm-^.±5­ŠFÝYØRÃlYäŒîµÇ„hyi99¼ùë9«ËÙe~÷öÐ  c$oï®*‰¿ÜÍ bû*šÅ º-&Öƒ:õHÕ–pȵð F p ´„³›zûÊ x2(ƒ¶µc_pHj‰í¶¶ ½%Œc­]ݺsAŠÊ>ƒ4à^wíèøTrðG—[Æ3ȫ׶s$éÁ³Þâ·wG@âó¾8kÐdª™L5bjñÐq<Ó“&–3Ë2ÃAªc&qÜ:”%Bc(’ö"2`RÂÌù9ÊTÝ4Ça”¡C#‚-½«‘%ÌèƒlÂû–4Ò€Ù´`8ùFà:;YñÙà¼ùs9 ( q …cD̉_©v'Éá[^%k;9{¯xCæÒë”4Wš+c*)c§ õ+’uØà§­ºÓÀûdœ·ë]ÕY²èÆ:E\Þvý^ Çz, xó3‘›¥Þï­c‘Ÿ$â|^¸ºñZQ¾¢ž áJ Œ„f‚$þÉr˜ªêCç4³w¨¦ÚcÓ#ü¥9"‰[é5Å>Ö(3å®>¨zhìÞ¶ÄÛ¬†º²R ìŸeÿh•¥ŽQ€± #CåLGÏr)ü‰“Q*J'24q+›†>‘ Î]j`‰ð¶¯('0ôQVk‰^«²CÜY‹MëñLŠÏ\™' >×…Zsw¼Ò?JûQ"[ Úwï6ï°¾·^¡”*iGr׎<ئ;Q‘ó-L—žuML$ãb÷’˜o2§Û޶E¥…LÃÆ^NÄчYñàS¸†9–mš+P”ÇÛ¡;a;h ɆG*PúUÞw’Öç˦¥0 ÀKëÞ4º]Y5f8ÅÂê[¤—@³É„—Ýïe·J6]©'ß>É×å_,R’vŸåã¡#¥[†;ÖÍe"¿çž6Õ¿0©þ ÜØò•ÔCB=8œó£ë°HP“©U²:jô½oÄŸáß¶ïöê2=¡ynx'quð,ÏB5H Ë;Ž>~Š|&—¯¾•pÅ0p!x‡G㊱:›f ë-IñÚõc`Hˆ?*Ê}DäÀWàõ ~ óhÏIfØ3T™ªöéçŠOãö•œ ëÆ “ßôW®£b8V:‹h :A´ï.è‹?+ö‡"dhGÞ°ÑØ¥ðf­Ø,Œle„n-±KÈ•ÞKwïx©n½•«^.i^+YøF`¿—¦n-cÿBªWæ[—Û­ýÝa9 å=Á¼T¢½%ŒG»ð’º³öB©W‹Èß#R¨ê¡žäWþ·âø‹Ì5#0ŒO„r†)WGé˳ûÒ‹þLÓ"™÷ñZ†;uôô÷§yþ¥Îþ|wÅ•I®3Ý>©gé&åU}_7ÍñdùíL(2­:æ£~ºš.hÓ5—;ºËú&m: ̧¶êÊ#u\Ö1ù–hè è«W—>Ð.¿ØÑL×ã®%Š1b–ÇÕV±“b•$þ4è~pƒ¥Kà(o¨ [ÛT±™Ö)7§#Dcí_wòÊ >W› ‘ËKJ³Øvΰå7ÕÊW’—Àgy™„áàR³  …4â¹¶'VS¾9AvÍÜûÍìz=¤j}§°"K^ü¿[Ï"õ`ý Væ¿”W;o7îïWlì5>f†déÄŠ$¤.HœS$8CF”@?ßp9ÃÕÉe¨Ð‘;œÇÇy|\žÜÛO˯¿…åã‰^Ä´‘ÔåÓÜizœ—ë)7° |#I[z)ƒS™*d( ¤¸ÌÕeñɇSLhõ ˜ÑeêK”]£|Pl2×Ó=RYÿWè15AL§L¼ †!å´Õ²(h´ ä¹U\9ŽýðpRµ­õããgfXlý\ƒÉ†ôú4î.zÙ¬ï>¾*ïísøá/<ØI‚ˆã&â­cÁ!V8ëVHš4{Ϊ²¶ Í9”ÍóÓÒØ/ÚãÄýðÛÙB z¨‰eúþï>½FŒfKo,È7˜Bm ~0£ñfÈš)ê¦tTü¨¤NVËàÔ{N¸ç7ÃÙòD ' F)œy·¤cEÖ_@ŠÒz?ZÙ+›E¶Êßp…•´4òÂ5o-š9Óã›TÛr¥ç) yš÷H¡#–‚œÏD›0v>Ʀu‘Aá‰ŒÔ Øù² ®D]@ H)ì˜bàÀèûû¡Ô°ƒJ‰†bÎ8¢4d(î21ì2¸5®C³æ©XóµÕrPLH ”ÌA1áK•vP¬25µ¡¸FȰªëõOŠAêi’µ¯Xª oS˜f¼·4ÿðOâK ^—€EMµŒ[שUó¼ ù!*H|Ü«¥~òR"W9¨¥‚c*½í Ð"k.ŒŸI£iÀ ­.‘—³¬ˆX{akm•A¢ÀÞÑýEg @YïÆ ›èµàö™©On(âìLˆßÝ÷gÍiÒÂÛç¼ó¼ï0J°¦¾6€á˜0{@V¤P1âχÚF×ùó,;cAcÓÉüØYP[Ÿõí"µJÔu}]~ÐÁÛÌuL½ >Ã[‰¡¾ö<’yþs÷ú¡8ø²>¼ßÕ —êaêÖŒ\±9*æîðçQ¥¥{˜Ö/ #¢J)d§|¥óNý ‡uJÛ·»n:;KØ¡$s9ÝP—÷`Å—öWæï—ËOÐ¥H°>ñöKÓù!ÂÇÑc—ÉóÐõáþ\AïÑkÖtV瓦Aí»—Çk¿ïPc`Ÿ"ê^†Œœ–¨k;÷E–ˆÁ›«®$"מ¸¶¾œâÖS"¢-Ô©a¬Í†ž°ä*—Å40FOjÅmØ'†.á~ 7q\NO_.«ˆ–ÐBQIRIîeÕGTô®jÊ(§x… ©‰âîH}šþîË ‰ñÚq_ïˆdT½Ä‰HG  c}@Ä$ÌEÓpÄA…dtk¾ƒj‚Ç ¡ŠÁˆ>hžPE1£VÍW[O8¦Ä­kðõncâA 5$âxPÁð3 m=ñp óÒ4ÜÄñu<¨4•Œ6<”Î% 4ðKd»N$ßÁÄ,˜˜„Ò„úô±vâ¨4ÝÖ—<ßZš;”P9]bh°õ°¡'lÿñ‚q ˜ä¤ãÄlŒ5N˜.a~ 7qü/„Ö:G¨±vÒµ¦WxD½±|Äc z÷$êåéëXð0 ‹Ö4øz·qÀ#eiðüÛnc¬x¸ÄðÒ4ÜÄñ<:ýÉ¥ãA·xø¿¤zÀƒã­Îü iL3?l=ñp‰­kðõncâA„ “™ ã[3?l=ñ˜ÃKÓpÇ×ñ *Ù;ê*†ÇfØÁÅ endstream endobj 209 0 obj << /Type /Page /Parent 755 0 R /Resources 211 0 R /Contents 212 0 R /Annots [ 210 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 210 0 obj << /Dest [ 209 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 90 503 148 517 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 211 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 212 0 obj << /Length 3399 /Filter /FlateDecode >> stream H‰”WÛnÜÈE€<ÍWôS@3c²ÉæåQ–׋ìÂ#šÀÙØû@‘”†ë’ 9Rö7ö'ò›9UÕÍáX’× É®îºª:ýz·zµÛiªÝÝ* ·yž«ö1¶Ai•ÆfdQ®vÇÕ«ëѨrd±@åêÕ÷7¡ºW T®6îñqõÑ»ñ7a´Í¼ß|lC¯-ú©Áö]w*÷ï‹Jùxó!ƒEŸD¦Úß$øiýM¾Í½{?¤%õý©©äKM;5öâ7 “0ðnê²k+õ]ÕLM×*ÿ—Ý«ïv«P5j•e[“Gp$܆:Vqo³8V°4Õj¨Ww«×»¯ ʶy¬3òŸ| sr3¯»Þßd0b—7ø1þ7°*ØFd8}Üûô£^½µ·tíÞÐQåÊû“¿ûu‘ؖ˲4f¥ö‰4+MQVaœýa¾MDÒ{E1ñ8Ük …Yë…D¹µXMóÀ3a°ÁéA¨º"§4-eYxÿÅF¥ÔûâÞ'%µÑ>„Ò…ÙFØè­ ôÿà4È·:Hò9Â3Ž,ŒÞú)BÜù!Å×S‚œyꦦ7Š5L•oya€ñ Œ«µš*XD6àŸÐËâ´WÍ¨ÆæØäk™ÿpžœ%zlŸÔ´·[­BkÒ?¯þ±SV3äš^õ|â}±FØGdmY>뇹†ÍÉ ‹DBÕwÃ4ª¦§õÕÝ‘õ#¥3ö^û þ_o•º:ŒÝ*‡¦8¨¾kÚ©i)·p»â̼‡¦¬U54õ0 €îëߤ@@hï@¶i.ï0$A¬p_Â09/ä ¤N#n«§´u±û«ø‘›H6»äS™8Ê ÇŽþo N«ùeD ;ËDÒ°¦N¸M+ìš’3íG1üé÷®…3𬿖YI‘9UÍQäÚÉí%‡õ,<.U5â¾Hl,úNÌ´Ú¯wü¶ô¶94‚_ ÃºŒ$Ÿ=žChñ` gœŠ¶*†J½¦&ëýýf»ÀQ¦g…Fvßnïr/ÂIu¯âO¾:RVSv2Ì=uKV!\”pU70hPÅ/xW6ýi軑}@xÕ±cˆŽŽ|Íé±=-‡†|ÏÃ?›áo±2O9Pßí¹Ï‘Λu)¡ªÎ­ª8Ø€ÇnøLµ#°XÚ ÈNø´VŨkì(Æ?Bp' ½[@ë­€€ç\æY˜«ùZ<•—#¦/ iµˆÕNIáäIü´Døèc†>îAÙ^Y Õ\ò­z(,Ø-‹{W%VñŒFÛ~Û~±WÎûåXçØ×Ë2nlYX]·>yD whG&]_ˆ ÌNܦ`a;ŠIº¬j¸-ñ¤±w× Ç‚¹ÂÝÐYf»áÈŽa‚ÞØ©ò4ŒÝ ðÔ”º=M“ã³MélSj[×P£5ÕuËMÙUé¦2©Ô™0hü´U÷8ª²h©G^”jxÆ|4+‰D J[oSñ+Bd©R æÝÞ²Z´Ñb¬–®¯øßÎT%ÇjdL…Ò²Sªú#Ù"dÛm šö™ºðwßZ®U3ö˜¹(*VHƒ±=vµ«½òdË“Ð:teÖ6–œf@¹n ´áµ§Hàs»4j¨{Wé4!9ú…Kã~QÃ/¤òZTyhÊÏ|JÊ,($bñ\Ç1£ºÚ«¢ï±Kd8^¿ÛyúجÚw‡JâkQ&ž#ˆð#Mnã¡…ž ç¦íº6‰!‘5äê=ó¾ÜsüŠÍ!\‘ïߥŸØë†ˆM÷Ô;…¸­ ³\`æxzD<]Jù©y/Í ß.É)²"s±/çØDe'MòÉaT=Ñ[߈עI{3dj¥7 ë¬ªìŽ}á#ñ„•¶2»› Åg7|Ó¦loA5ÏÇ“L50ŒJ=bºD ü“¯µy<_L˜„i &"Pˆih ròy:Ǫ܀ü 9ù™M~nðôÓΙ+"e]ÚH6'f°W™l¾“ðÙ—‹IÌ7Å ÊCGäù9Ì€‰Ø¤¸”à¥/Sùæþê':dGnH9ê÷H~Î$bºO …µÀD/BÄ®èPÚíœ9^Áàô¨½îè&™Ú /K-Q1U‡4r¾•ͯ—¯)a†+• ù& 5sBx÷S7Õo‡/ 9zÙJð2¶˜c:žn ˜8qMêäœY#\h,ŽõšÚ”¼ñ6wªý9Q>7PªæîNHºá‚r§ç›qxæ|65ý"ŽBDQàÐ3ª…ÛaºT¬ÂŒzB7—„](Yn¯>;A¾~dòú GÀí¾ä|¨¶r8µµŒŸI~ö²S]¾R0¬½¶†äÍUÒZ×O¶_6Ó'SuYá˜â}׎Íí¡ž8“E—asÎpJH,§J¬ñÜײkÜDž ÞOÞ¿Öêçµÿïõ<ÍèìO>‡—…±á&yN¨Ž¸ZÉîüL;sq3 š ùô|$÷#f„©g'9Zò'OÊà­­ Uøe'ø³íVMÄÊ,En°˜; 6êÅIÏ¢‡<j?¯í¦™ræ_SÑ«å\§“^õ’›,xFÛCÙYPR“|IQžôèÚíù¢a;´tlê¨ëË ÑõV‚øc‚yyÂLXî{(ܫ۱;œ&ºU5{Èî$ìžöúŽH‹ƒìGï.ÔËp#±}ÝNF ¯š¡.'é-™sƒÇ°5f/ûSZ+.i^*Y9Ǭ'¢³ ˆÙÞ¾¾LŒ¨—ôÄNÖ¦'yRxOxüåT޹@àU3õáÎN«ïv«W×£Q×7 ­/‹/þß\¯Bõ@õ+>ä‰zT]ïÔÇ_U­"¿U¢ý'1–Àår­r€(Ô¨ôY"Ê@+Ìs¡É¶±NŸœ%¨št)ét›š|– Š/`‘›UÀC†¬M¡Q'*ÂI”©”æN¬¢xGVöõî™Á¦P˜aŸ!-¨#;t¥™m–Ýì$è/èÝÔIQ<ÒC¨8©²¹„çz'Êtš„—QÕ"곩yŒÞ}»©Y‚ç*)ªa<¶Õ{?·6è!öž@ãÝú´ zQêæ7îo>ÝU0ØÀ±¨sJå;Ú?LP˜ƒt/⬹cV¸Jo…DÄ‘íüsgÝ,[+Û€ËO=…m0dƒ#ÅÔÕr ü:çkì›Da* ÷ÇNƒ3‰á\-¹–™•œýF©BÔ_Ì…3)¸qðÞäš5ÚG ÷)4:…ûÒôm^)µ3ôâ|„šÈW‡èå1\T4;o·'Ÿ¦¦¨¼¶ü:J¦``bÁ$ÉL'Œv}9·lâšé+ƒA{ÈNr>€vé ãÌ—ÍŽÔ@ „ïûsäQ¦íþ{ 8!^aö†Äëó•ÓédÁ"«]y+ÇmW¹5³ZØJlîY[G,ç{C¬QÏ<ù¯}Vþ ßûù}˜˜ÉÄ´žÉÃæ“y)…Zîg‘æÚÇ€~Äs®Ú”¾EVòäõ]z÷uü>6œ¡&œáE–Æ¥áM¥]^H‚#_nŒñô‹#Ï–´8mÍvÄm"$“W$îxÆðŒ~Gkµ¡Þþ€iÏ Þ1³äÎÛ™9e޶œ™S1ÎÔ0ÅÏÌ;æ†4óÅJ]’ÂÒ¬ÿ¶Î+õ\zɲ«ÿOÚS}Ò’¬ñ庪þuK =ëHVPÕîÏ-idð¬#Y󥬭<áH¿Ö@×ö¶Ò¶²Ö¸2ÿ?UPע˃¾¡ âYr“çeÏ]{yt$#Q÷Cgd—Aëø3ÿš2xF„ :*ÓÙ:¦ î£óŒϤ.èõD«.©åÒüzâƒ÷Á™"¸ó"xÆl"¸߉à’<Œ¡q[ÉüÍÕ[’ˆLTÄØ¶ÑJï0%©gåÀ\“üƒÜ”UK¾Tc{ÌæoäA†­EUœãçhfa¬ÞaŒïÀQmõQKÕ£›ŽHâéèU=ލv!ИZ…¨ ¥¸GP qøbâHºŒÄkPòj©9=F&žúÒj :³x$NùGŸ£YÒk#Õù0à¯.?5ïêÄ^†Æ$¹O7’}1í²Jn³¹o˜²Ù)ÐË€TÑ ï«Õ#À–á¥ñ¢µo}5 ˜ëÚ­'+¥¾DªX_ÁI«hÔ]•øƒvåÆÈOtÞˆ4²®ÝÙ·ÆÞ"âœbŽˆn‘y`¢íé ÜóÀW„/È[„4(±{`Æ»èD›‘¢)Ìœh|§fcṁŸ{9g81š fú!Êõéå»òÔjñ endstream endobj 213 0 obj << /Type /Page /Parent 755 0 R /Resources 218 0 R /Contents 219 0 R /Annots [ 214 0 R 215 0 R 216 0 R 217 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 214 0 obj << /Dest [ 200 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 210 602 269 616 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 215 0 obj << /Dest [ 466 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 314 602 322 616 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 216 0 obj << /Dest [ 372 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 485 160 511 174 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 217 0 obj << /Dest [ 130 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 248 110 307 124 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 218 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT8 787 0 R /TT10 791 0 R /TT14 659 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 219 0 obj << /Length 3857 /Filter /FlateDecode >> stream H‰”WÛ’ãÆ ­¼ê+ú±™’¸ìæÝ~šÝõ:NÅeUF[v²›Å1–DIìüFRù…üf€&©Ëì8©©Ò4Én4poW³7«•UF­gÆøyž«n™~†V¥QìY˜«Õnöæ]«²ãmêÊÙ›oïzêfØTÎÃò4û¤ï½… ýLÿêÙÀ7z_úÇWͱÜ,‹µò6Ðßy؃mé+o‘àûX”õÞ[ä~®ŸÐg‘ úF;·fíä¡wWHwlKù àÍVêºßì:uÂ?õP]:4õÞùÑY·ú½ ð| ð\\~¨ÚǦݰpcõµ‚V‹ÈP® „ü¹V훓Ú(]”n/<“œ:¤Ú⤊‡®ÙûJ­Ý—³”¥Å\È÷)ÒvAïër£ê^•ÅþJãpÔ8!zØkžëuE :š£È‰õš¤Y½(NîE[©âpØÖ¥<Ä[ªž+yÞÓþômŽ”vЇugShœjÕõõv‹î˜“ ›IK}ãQßXôýQbñIröëæÔÁÒ®Ú>*€X¨®ÞpsŒÀ@Ê!$ÎþY`fVsÕ„‹"á"XPˆüKÎg´ãÑeä.Ü©šÓ^Ý-TK{Ø¡8"fGb+rɱã u%—‘ÙO¬4±2Mý4W™ß¤’°Ë€ˆc™¿â`¦ç¨Õ=Ö=È–è·d]ˆ¼³ØÊÞ¥mk‰•Ew¨Êú±.áŽÇ†7"‚IÛ¹r;I_J¬nC&?ðL"S¬É´T3ŽcXO/2íÈf ñ¶•KNW®¶£«­X†<Ðä±ì;Dò|²[~Fm%â6ýc]­9ÄéûpÇu&N?iÔUÆ«È2~”žLzé‚ 4/C-öÓ‹P»¡ÂùªØE9Ú) °j‘Ò]ßÖ{÷M(aYôª^–®GXKÀª‡¦hQeëÈ{!$æànˆsS7ÊŽ¹Ú4ë)ãÍyP6»Ýqï(ðÙÎÕ¶x€íX6휯î¨ö€B`ËÞªGy¬ŠþØ|dÉŽENwU9ȧbFÅ` ˜Oº•‚€ÔúBqJÖŸcnp¡pîŒ ›j‡BÎ_¼ÐD•ýmõp‰M;ÑpÓ'ª Ž@â°­PÀ£*;¦Öˆô*ž‹zëJå7¨ØÝ–µ/L5wÎf˜kRÄ ƒœä/Ï=2¿¸íœgøl›æçNmëŸ+&ׯ¦p,ˆ‚0ˤvk¢S FŠB¤}ÇÔH³ÆÖqjLã “h'!–ÿ$1tˆ¨ý'7,0êEzIŸ¨úˆÍY¦¿Å³MùOØG( Øš1¡+f((8îßÊ\qXL~ÌÚºåÐôGMJNÚ× E‰{;*º×¦™ŠˆðR3™8ñ»¸G/‰“Oå¶@ãÇâü !§FÙTFî0޾ïÈg1ŒøŽ&¹P¿ó÷L‘L_Ô‹\¼Aœ ¯„Þ¨òÊã!GY¡åSùt*œ¬ÿœŒl–·ÃïW—\UŒ ÈydøŽ,¸¬Žg8 ²áHêÚ»ã/ÒLÔۺ𨮶¿z!u4à‡˜ú~)ŸzŒ,‰[xÜ`±ùã%ù+¾…¨¦0ƒsD…×X2ù1Z69ûü,¾ÔÞ‘5Ûúçê¹îpÎ+\æfˆ^[ÐH!l’CÛ0ÆKéŽÆF‰4ýP?‘}\½íÂÊD¢òk—ªòeHØaò£:­Ûëúýå×FÈÓ$§ = ‰º¡êZï žI‡oõYÉÅð'QÎ0&˜üκ±lÔ!q•¤Ÿ…Úêûˉæ¼DÞ4êóÔ:³ŽÛj.U®èPݰ%Å¡(ëÍ•r:Kê2öT6€óx¦ÍA–ãì…nÁ%WèÛøªs‰òN‘Ïž/y2q¶Ä∧9ÃÓ¥x*)n%Å3IñH‚Òº ¤ °úMàMc™+ÏALF¢kŒÈìDר¬ûêÞ— á‚is Š2ÇÒKTD°vÍGÂÍG$ó2 pÝüИ[X|G 'šKº;X½º“q°C¨E#ÕMö£‘5ù öe„ÊaL$qåÊ›àêj‰½ÌQÔ9¢é@ÁÞbjàÈF¼cWsiwÊ1ô'@Â5šH껡3f X8LM§ºßPCCë®:mÑ;™‡¡ÚÕeÛx´âÆ¶êºÆÍ å¦>Üö /²ÿ'½lº®¦þbsQдx)¢à¦Ö Mz½/·Çõ Þ4‘ÜŽRËK¸áØ)Áeˆç)*¨ŸõòþýìÍÒtÂÑD™Ùood§¯öÍNúçâ]rA=èî¡áë†óÚ*ÄÜíÍw×7£VM7›q84ÑxóÝ{ê¦,×™D8ú@%K²« cfð ÔÅ´õð ?¡i(y²ÇëÝåÆ}ê{w±yvR^¾`¦Én̼¿63Nξ©0Sp¥Õ ®”Í^ž\Iøì Ÿª°N_ròêu'ß’˜EPgúO˜Zqåb[=£võ±™&ý¾ÆÓ0O™">`’f¿Xö*¥ý2ccGªö0[5.:z@O„_I®GhÙðBÕËÇZvfõÇ×ÌŽf‡¼ùx¸ÍDÖm xÿºèa$1&}ßœö,9Ò¸!¬õÌØ`M7‚’ÿ™¾ìA©8K*y±nÚ¾-êžS†*ã?Cú €ÿ_«¥Çm#ßý+tô!«jž¡ÇEZ @Nî-ÈÁñj»äxa9Øüü~œɵ‹öd“CÉù‘<έÝdœJÛ2•¶Ç~ Ôóz3}šŸ?ÐÁ÷kîL=GE Çcmåñº·—ãá%Ëö„’/æ_Uâx]óã<_Χ,t=¿vóS=ý;e´ üó¶Yê5ßΘ7?tÇ~î?Ü,ˆw%¶ÛÓŒÅÖs)§K©µbüç:_¢­Ýú‚¯G!ü‘'\o²GvÛ&³ËŒ9²v¤´Åë·5® ¬éßÀa:2ønÛÈó€+ ÈÉ®jdW5FŠÉSS;äÂ4³]rm™÷LÁ—ïÝ@hðÖ!¿?w_¾ÝÓÆÚØûh;õeÂ>vÚXïúA 3 T]Dez‡õ* ˆ g £F)¹„GGo?m­€!0gaYƒVŠ"‘”0cÓJÖ8 sÈRÒî9OsðHJEo„³0‡”Ü;Kúg‚ަ~TÑm˜æÇÍ¡¨§.¡ÞK .FÚ‘”!ÓO˜Û”%¬«Æˆ< ŸÎ«ÛL¶8î3FÅÉŒ¢‚¾ŸHu;é£þßÙGR§œÔE¤s–ƒa’ƒ½@ž¥®³Êž§‡¶Úö°Q)`„ ²ºÏd‹×a¥Båx™Q@âcòuXIK]7ûHûIΗ̰"A4ŽŽÃa’ã½°“ROOÛÓ"ö¬Ã÷ñ¢€y‹Èê>“-^šœWñ2£(`ƒ“ëLÄçöÊ>­&.(û€Ç AËŽÏï­ 5ˆ:[P8á$ؤíQÝOJï11ìYãµ{Ç+Œ¬`'‘å:˜B>G±oPû!IiSK‰RœB¶xï(^QÎ F…ôÁ“²Gån˜acÀeزŨ‡(œFQ ×1`XTw~XʼGü\MÜtK,Ò‚k¬7Ç4_ÑEN *,þL^•®¥dĵÁKWȪˆL'Å(-O9Èu>RƒQд‚«Òõ±Ì6Y:ŒêšµÝ ^­Žx£*]ï¯U¥ë]‚3¼Ã ¹…¬ñî6ÿ µDü endstream endobj 220 0 obj << /Type /Page /Parent 755 0 R /Resources 224 0 R /Contents 225 0 R /Annots [ 221 0 R 222 0 R 223 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 221 0 obj << /Dest [ 123 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 126 678 143 692 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 222 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 401 607 454 621 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 223 0 obj << /Dest [ 123 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 405 557 431 571 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 224 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 225 0 obj << /Length 1601 /Filter /FlateDecode >> stream H‰”WQ“œ6 ž¾uöWèÑtX`òÒ$M2íC'3á-éÇš[RÀ[ wMÿPÿf%Ù°{w¹´›9X[¶¤OÒ'ñªÚ]W• U»“2*Ëbüó¯eÅI¢ O³(.’ªawýÚfÐX‹Á6»ëw$ÜÚÊÆ1^ÔìÂõõ~÷Q|B™D…ø¨8’b¬Os‡Ç+³4Ç÷õ‚PÅâçep3 ‘YáŸS[7Ý„eTŠÛ@Ò¼[ºƒ[ÑtRáY|J¹—±ø 3àÍ¡›;3Bð[õËîMµ“ÐÁ®(¢¬LÐI•Bš¤Q‘¦€–æ &½kw¯ªoQ™ª‚ü'ßdInÆÎÁ׿„‡â)1)þïЪ8JÈpZ<ôvF]¿õˆ§Q‚ºªŸèªf'¾ ªÏñ@ÛJ·íMY©#Í e „ñ&Ô/Ëh ’æTÔ„â^0ÜWÁ¬Ô…DùÜÍËXd2ñö¸ˆ!„—䔢­¢Ècñ·Šrx_ߤD Sû fp¦¢,Vÿà<.#ï9Ü·ûÍÛý9‘Ò(sn¦["µ†Ø‹ º±5ÓPcôýÒõYf¨.'êÓ›ÉF^à“øÕÌæcÍ͘T˜¬ø[;QèQ”–Èc%æY£Ëû.–U%c¯SØŒíη$fì¿< ®$\.b´"j¥„“4;Ç=ÛȧzšÁ´lÄ`º‡qnô„QD|àþØ5Ghêq43ÜhúIc­™…ýÎ0ÛÊÌùz4v†?=uÚÂÁK‘ˉ°ÍÔÝè¢ë<®~øz> «.<¥Ñ§€ŠÉ—B­Èl£é}©Ž:ÈP ÔüX°N2ñ'å^&º¾s«—šÚ:a·Š±Âì Ë×ôl{îb¸Ü,BsGGVæÄYÁK=ô_=ƒ™1CËï†Oõ½¹çp ~ø-ãùŃ“yáBÐÍdÀéÒ\œmu6¡ )Ãd°ãGÉ WÌ=»Rì6*=Ö–q±KM™ Ð%Ìßf±³B3(A0In¢Kq_O ¿NÖzÛMý?Œ;-Ë×óâºuPHEta_!ÏÉú¤l1ÀpcP#Pm)î\À' ÝÁסç®ÅÔ#SˆWÈ­ÓÑozyVœŠ®!^+Ö²íþrï®6¯Àë“ö\Wc+˜±~µµkµT¾ö¢á# ›Õ£E Îþ¨äŒ÷p8ûTÔ¸ëbs oV>(\…cL/+ÜLÒÇ<]r¼ÚàSžãmÇ” ªÖ‚¸;Fà -òaaÇìŒþÈûìQAoUöÄŽï·šÌËHK.Ýó«…Ïú(æÈéÃ+BoêâÎ|ÅË›˜K‡˜P¢€¾³³k`H],L‚ÉL‹àô-½P‘ï¹8ùL¹Aiìs ü„m)'}×Yâ6»´m÷§çGæ؈´×އ).9¶#f=®š©æyÇEÌÜé©î{äsXšyeé;‡J‘º^ßé¡Ä‚ˆÉìußè=Œî›Àþ¸î>}Ô˜!Ú¾þ «£î endstream endobj 226 0 obj << /Type /Page /Parent 755 0 R /Resources 227 0 R /Contents 228 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 227 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 228 0 obj << /Length 4458 /Filter /FlateDecode >> stream H‰ŒWÍnãÈF®zŠ>ä@f-šÿ?Ù“Ç3³ØÌb0€…Éa'šl[ÌR¤@Rv’רE^!¯™¯ªº)ÙZÊ &Ū®ÿúªúÝfu½Ù„*P›‡UxEQ(æµð=?ŠB•ʼnççQ¡6»Õõ혨jd6_Õêú‡»@=Ž+ðú>U«µ}}^ýìܹë òrçßnè{Ó•û©ÁñM¨¶_ÊZ¹ëÐw~tÁ¢K,“v×)žÃCY5».¼Âyt"©M-_4 qÏ Hß¹ÓUßÕêCÝLMß)÷›¿­>lVjÔ*Ͻ¤ˆàHàa¬â(öò8V°4 Õ W«w› ˆr¯ˆÃœü'ß‚‚ÜôÅÁÛ~ï®sqÊÜÿXå{N·.ýŸÄ¨ë&â±A׿=‰ªVΟÜÍ?OòÛ !K@cVjÞH³ )ÊŠ" IÐ^Š ’æØ))Š©Ãá¾¢ Q˜Ãð„£òÌ ¨Yá;Ià¯!ÝÏ}µV7äTH¤<Ï|çÈRêKùè’íFt.Ìæ0›'¡—øáB€á[lj-F`ó\bmÞm°ÓÕçE›=2ñ<ŒÒL<<õåîÚ]'jèfìBù(³/}Íœ~꫾õ?Pèi– >Š|VíGsÐ#Q½ÙjÒªý :TÙ¶ýó¨FªC.¤!sºjkJ`pC2¨ëÈÃ}S7ƒ®¨B ¹D(§eZzhÊVUýnw蚪œ¨ŒQœV÷zzÖÚÔ52] ׎wÚv¦ë¦­FæŽÚöã¤J~GoÌŸ÷}ÓMMGÕéHmÔByj*~Ê/ÏY}hì9Ô¶£ÆÆðª»R© žÔŽšˆË¨Äùq×X ”Èîñu·›êYj]N†é .¢&£‡ ê„w*K+^‰Ëæ/ÒK¦7§f§¯ iÛBœ­ê»–€C¬zôæÔQñ ÚD¨µªÊ~”?1—IFèì´§ÔûÃÐp ›Õt€²mþCm‡p†A¸rADü$ÖH)®d.®DìuWœþ¹'lDòahÇÄê3î½ÈÕÔ³ÜZ#gdÑ]¿Ó|Öð•$«´„ï¡§2Õ§R’ª'2¤váçãa§»‰˜‚¦IPðÂø °ÆÁ±3Ä“°ê—®nÿ#XM6Õ¦IÝœ0œtÂÊ)ÚT—Õvv^D०A@öÄ>Ól$hÒêEª5>wsûI}sþüñæ›Ëþž²¾°çê­Œìûqlî[R“‰7"Šb‘˜¢´Õ®G¨¸_³½J'ÅW0šþÁ¥ÿH°I„©Ÿm9*Ý•÷­6úõn´IáÊjýÛ+—ÒÙ¥Ô4…Ô5üê»+*¡î¤ŽÔŽš9å 3©ÝQ“jÜ÷ÝT dý{órŵ=rmiÓ\™lq­Çjhî kXÜKãÎàõA),ð)1à ǨŸPÎÔ‡iŽS‰´WÛÒ©=GpŠpq2 'Q fçѬ“~p¾¦W‹±îšÄ¨®Ÿô}ßÿB¥¸?Lz€C ”:R±2·­9eà^Fm³…âz9"¼y™ñ³pÖ¢7-…((b;ßÏåpª-¦…›ø6ò Ê•E¾C¦'ŒÕ4 °/ñ¯²’Þz=õ8itÜ'Îjý|´5]ÕA5=÷À}ŠpB K +žSÃXP™ÏÔ£‘cª¿méÛwÉWL›g=;Ú faÒ‹ÈL•w5Ú€Ìx=ä^ìòÆx "^I/á^+Ù¼ˆ72˜•qÇc]©[^˜2ç'˜8Ÿ¸¨ÞÓV™87.™±¹Áа§0˜ELmÅQBøÍ|è»Yå¯Vø²×Ýš÷újó±žÁ‹ 7€Õ¿)ò"XtcüÞÈ6§·BÖ¢‰Q-²#rÐo5×;[¼ÇßêÖ".ÆÚ6†.=»¥„£¿9¤3u¾ãå/ù pmõ“n ²¥³8‘¤’ÿþ'µ·X!RÚv}Øc#›q<öÝ WÔÙJÓ²1ðÇy¢“ýùñf‘‹+ /Xèva6IMÎoèt~Ö.vU ý‰òòzN03'å‡êäÐþ€"¶¢wrFô•pMæË¼Ÿðn]˜Ý‚ÍÂÂßQ×7rŒìÙâ½ña9 à©n…†ôk§¢ã®Ù.à[UNÀ %–X*:_š`ÐüÊO³ ËGõàÒÕÁ0÷Â1ÑbCµoÄŠ][«e+=*ç9 •œë€[@ýľ1¹–'m•ô4_c¡9 %¹ŒXÖÉ‘cî{1Æƾ­Ï¬|Qù3Vø+n¹É¨ëù"ú‰òø{Sâ3à :S‹´ðŠZT;a[θ…Ä—XäÑ<ŽÝDU3*Ñ—Š¾úìÐ4gYàû›ÍÍB»}Oc´?LAhɶ"¯¨¹S©àêØ#'@ù³C W(¢V?LêÐÕ,ì^oi6hxh{¸ºel—Ü2ÇFFáßYàfY°žÊ½pnTÛt˜#öl ɶ|Ò°Ù&+G?ѵ¦ÄžÐ×lýÆ­Úÿ{ñ|àøw*ñ} Q ´õØ~ƃÝi9Kƒ4 .’$1ˆ-L/»èäÆd¯L½ªq‡ž…mÑB:?`õ¥PL3HSž¨ ÙéW; —a1ÂZ³²ÊO£‚F¬•9È'ù5º´G`²ð¯{ߊÖ:Á–ÂyQÅÁqÀÇs ˜µâ¦Sú_Ñ+ó€±%ó~×ÓöB·`ÑD« B¦v¸Ò¬ß“æP¶ÒÔù¼N%òE8…}¦bÌÛ7eB–b)h@UA\Ó¡’¦úÙE⛃EW™®37ÖñÔèg‰Ã7÷¯" µ—¡òñg^£(ðü" TD ú¹cáŒPœ¥øÎ›Òµ›¡ºCºê"a9ý{7…Ö™­þeØ›U8б°E!´(~ÅäZ’"“«‡E:þzèÑ‘ö,È_pĘ |"ΤP°,TˆY¾¦/hˆSÄâHϰ'/8bV§‹>,Ñ>XѾÑLO½?Î| ñá”ã¨cIƻͥD‡z6¥‚’D§6Ñ™It¨>="ä™¶Ò[—7ôó4úÐh”³‘/“ÄT›¢ºué6AG*ôf–šÅ^˜½>»¾ ÛZ–x)úzL’¼®á˜ƒ;s5,Éx#¸€4 Ü$±Ñ¥qÉWõ@(çe6¤M}Gw~ÔrU˜ûÊÿʼgÁslâa¸~K_N€åXJ¥/'aÙk#Úß/¤Ár,§aYÆiHpÞǤƒo2V_úg7,øÖ‹ ÅhܺdHœE:ÃŒˆ£åHú…HŽÅHú…H/Úp´1£ hb9–ÑdYÆ‘ޱœÅI¾86’ cãV6ÑŸÜ Á¤øÄCä< |È“å ú… ŽÅ ú… ,Ú`mÄM3M.Õºá¸Pë‹2ÞÈ@ˆ­?Í¢E@[?`•ÞNi:‡àÂV!×uêzó.™sÉ‚ôÄ>B]ï $¿}<ƒàœB®t]„¶~Áú¨ØÖ‘þSZ"DœÂ±‰µ[<½ÜÞ‚¼ôº®Û­Õéø-D©I3‰y,w$Z,ž˜SGb ‰Ùež–˜_FGBN«w'i’FÚÔüQÒɒТ®‰ûíHM¥þëÉ :ØÚt!­ë9í:lj—vÎåÔ5p⣺ϴe&£su‚òUº+ª’ô×QÁÉ]!Ú°Ö)ôÛñÇïiß ¸ù3ï¢hü7`)Í+Wò˜7^¿¾Ü0Ïâ¨I¹a-FËö—«ëþ¯+«Å{MÇ­H­œe]*çLB²E‘Xót=Á¤ØÖ‰®†…†šM:Œ [í9 %Ûô ´éÎ(¨Ù¨£ÖS˜ÎilÕÓ€õÌ9 ’ÍzS<£¡f»Žç@R&wæ2%v£A¢¿AÖM@RŒ+ 6¡C¿út×K¼•õ3L­Ø\Ø = áj £ÇÕºU¢ƒQÙZCb¶ QzÂ׺-¨{U¢ƒQ[£†}C$zÂÙúõat1D¢‡!¬­‹ÑžN£Jt0*oŒ.oë>è!œ_Q™µ”èr•MZ:^þ6ø°ÎêŠLÂyÖ¢¸\o䓸˫Ãû—î/©ÓìÆl/±÷´å›Z0›4Þ{–äΑ¿PH݈òs–=Ð-b•ÊŽêsuýä‡ë©†Ýõ…~†ù¥¾ÀÕáÍðöO5Ü]0®ªaž³ÃÇ6“&äEx‡'çQ&,R %¹ñB½ ÷xöqÐ{ʺÇÒ©l¯ã€ 2ãÁ .¬(0 SEñþBL™jbѰvbñ²øÑfÈÝ 1ošFJøø“8ýþð»  \P`UNãÚ x(fþƌݚÅÌ;lÈ7îÞ±W ÖÒ¾¨h_›)Êì•]¢~ÛÆ‘ž‰cJLLÀ¯±lp™‰i¢pÀòüÒñ„xtmL·îWŽ“ÓPƃvÈL,E.-ÆFçÈZJˆÝ¢aéÇþâ~ Ø™ou¦XF¯Uó8[nTâ’Ó|“"Ó$ ÌLƒŒ+n›‰E¢h(–WŒê[µB$ªÝEÃÊòMßG„Z´:‰¦âé€ðòx4mŒ3 a%1g¦¡Ž3í¿Iˆ‡ä?ÇÈcì¨V‰jeѰòƒï qJZó­ÍË`qäq±í¹® ÂQ=H PB©BÁ² :@Mb©)™6˜Ì åI þ•O½*¨ÇBÕ˜˜4°ƒ€8€±;PwIj¨³dZ‚ì°ArŸ·­¼îx5Àg况PD«£ÍÛi õ4`H*ï3¨¸JÚ< ^ÚÖ¿hœ9 endstream endobj 229 0 obj << /Type /Page /Parent 755 0 R /Resources 231 0 R /Contents 232 0 R /Annots [ 230 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 230 0 obj << /Dest [ 226 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 90 449 142 463 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 231 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 232 0 obj << /Length 5585 /Filter /FlateDecode >> stream H‰”WÝrã¶žÞê)pI6Mü‘@z•l²™¶ÉŒ'Vr“ôB+Ñ6;ZÑ#JëÍs¤ïÐ×ìw¤d‚™ŽÇ„spþ¿Ù¬î6Á8Û<®8/¬µ¬Äßp´eQJ)X­tQiÙæãêî]¯Ù®wh%ëw«»ï8{êWÀ-KÚ­Öáøºú5{È×\&û=eÁ³ãöåÜâù¦»ìžï·{–¯E™ý=€9¡œ›|]áûô¸ÝµÇ|m ›=åœ@ìûK»÷7 ½x‹oÎ+^fÍ®;îÙwûöÜvG–ÿkóÕw›g-[Sh+¡/¸PLIU¥$­;5«ÇÕ7›HSX% éOºqKj–^ÁwÝK¾6âUvÊ>[HU’§Ëçœ>Ï^¨»÷ƒÅU!Ákó-‘Ú­²¿ä›OüÙ¬{ƒ*Çt8g&ÈÊŒ, JàÏmQÁˆÄYe[²b•9sIF"3 1ÁØÃÐÚ–™æåÔKS²5ûš”2¦.³ÿÂ?Œ±ûíSNLš\Ò;˜$˜y°°….Åÿmິ…(+a¿f›ç†}¸œÏðbÿÚžwϬ=¾\Î=û-{i=Sl GëßrÜï—}Ã^.ƒ½‡õå¥gçŽ}¡a p­Ýþrh¾t¯œ¼P GÛêh[ímÛ?w—Þ}h)¬áU(–u—ãÞ1ÒY³g¯Ï.Rk2(]9^»ît‚9 £A<¶GOÀi‚·ø¤PÏv‡®èÀ¨2ëqù[^L5bÔDAôž R;Õ ë f 3A’ã±Ù»“wþöÔøÃ©é!w>ûcçô1Ù‰=^Îà\úæoD÷µ)DÁ`÷694ç„%«(`å¼AÀíe;ÂÇ‘Ud0ÇñÄž»þ|¥4_ðÈcw8t¯Ñ¼ûv0îÖûdpÛö#ë©@À°ÏÝkïÌÓÏÍÉ åQwT/zøúüÚ4>bHgÓAB8gÈ3å…×±’ÝšaÌÕõ˜¬ÙýËžȯ%¼q) ]V„sH £ ç®ðÄš“¹wo“‰Cв†ÓgU…—±Ì—ÒòðÐ…äj# £­ Yª*T:oëiÀ½oŸ&9Õ`&ײ Wg( Ðp8÷¿;pn>²½¿kó 7Û'rˆ/‚›ù³¾£*DIå«ÂØ^æ HNT%ü±wc¨K]R‘è¨\F¡ ’“H·d2½Ï5‘$]üˆì²£®‚Ò`¸xEAWT(Z^(ödFLgRrÍÉöˆ‚m~Tü>ÈÜ"jøn訣»?¾m æª1¼QƒKE©æí¨6dÿ¾`Þ k°²Õ°¾G«"f{ˆìí¡ï '“=6§~($ìÓÖÕ¶9;½C‘¶yD­¤ŸÐõÄ>t–BòGä—Æ§e•±f‹zˆâˆ¢Ÿu¯·f‹U{ó×Õ¤Ä8ÓxO.Æok% “«±lüñóîß³ÿ:å$ÄÖWàµû±yn=Œ%¼üŸ¸N^•Ýçk dñ¬aHm&Þ‘fÑ‘STåõâbº¡jܳÆÅ¬æ,ºe}ûÙ™ÚB`24Ý¡v>5ë—€J²gcøÊ›ÐP~ _kü‘äҊɺÆÀ¡tH¶ª&qPðdå*y†2Á$z¯f•³7ÍV +ÂVTDЀ}yAW¾ç§àøà¨Øj„cάy5Å¥AÊJ``Ä‚Ý<kqq Ÿç 0XØRN9H}ÍAëBh›æá c–µ d)ŠW)#|žƒ,1lY½ÄA™Âh‘æá º,ú@€\I«‹J™xs˜Üx‡á•˜Ü<¾Áz#É Ý7’ •f„+ ÓöJW¥`-£’1—‚1beÐF8²N¼‰)áu¸Âˆ1‘Â}šÄˆ>IbD[¥0F]Sº`êFè!ç‡#¯5õU&‘~Zëq¯qM$+1” w?ü“}ûuÎiøÝ¸.¡³á'Ë«’¾š¾¨öZtܺðòU4”?Ð.a©gú‡E<û)ô°Í¹¢-ÉÒ„æ¿Î¹¨ÜãZ¸ÇÆÆcIë Ë­´àóý Ý;:tíª}îýË­._hÿó—q ®¯ÑíPÞ\ãŠËÑåhĈ¡1`„ðá¶@E)Tèê×Bè¤(nk»@!†V‚ÁëZ/Q¡—¢ :µX¢B3EÁV…¬Ì‚%cè&}1úª¬œWX{ƒ¡ÑºA<™èIøàí¾Ð|†œÈ1AàVÔ ZIJ¢¸¹öæ­ ¡l¤(n ŸÆ´ÕWbYI%Ř3Bš™Ñ? pUT&ÙKÐ!ã<´ÂÎTßL—cÂ÷·ËMĘgÇÓÈAó›ÙoL‡ycžC#‡JÞLfc°Ïsˆóâh—ÒaÊ #Á! ^)Ó@ç1æ9ı(rמž†á|œEŒyFo¼Ûl°ÈaDXpÚ0¹ë“áÌÑöl‰š!,z“¡5qh”†å:©S¾oŸ.§&§&ÇäZ԰ꌱû‡;1œ>œÑ–lvBCóÚnž= u·Gö±Û_ vM꘻îxôàfçŸu'ö¬Uvì.þ×¹×*ó- ‰¨µ6èCG y%*¤ ß§ŒW¡mŸN¤Ìæ¹aüØÛÿ±^-½q$7øýŠ>öd1í®wUn†Ý ±Ç’ƒ‘ÃZ–­1Æ’cIYç’_‘œõî™fï£.’E²ªøøøßáêþéúöÍφ«ÔÁ_“ófÔâM±WoPNÒÀÚÕˤVÅKšIãøýûîêsçÜŒԉΦz`’Èôéáæaøyx8|‡MLã~'ñûõp7Ðíà^î¿ý!ÛÓÈÉŸÂ+ä¨Ñƒ4¸NkDy;O«'­¬¾‰MaЃì@^ ~N —!­DXë3¸Ìñ[]7>BÝ »aý¤­‚‚Ûëóñ±ò×-Hê$³ê-(³´` ‘)¬…Êg,;Ù6,( ¯$ÎBã¯[jœt0[´=›µPùŒ¼½D"þ— …þbµ¯”cGI6Žy—ì(ϤÎ<9Ñ{æ *Èìµ1»¬‡¸-hæbŽã·˜+1)PØuÏcŽ$ê@Ñ$º˜Y—èßœ‘èÞŒ‘èîr]¢•;Ëú`ãð Þ"¢Ð´u°q°A.×—8/è8/¸8/¸4/iHSÀ¥¡Gæ¡G§¡G¦¡GjªÓ4Rè4Rì1 A!A2A>A‚úÂN NnÄLãÓ0”Ty\»ßî$í<ì„?A-â6ý{ÜIwKwC D0WÊ~_³´£zw†ÚjMÊüR“:”^â#Kœ¡xÔ”Õ¦ÁN³[j(ñÃi?¸°¡¡Æ£ø¸¡¡Ä§“ qrKC‰ONCÀìiýÆMÖøeߢ½•ÔfÚT 5£W;>ÛY~~íÌßè@Ù‡˜[$µ5\âm ÎFéB¬>bÖmT ÆFíC¼.¦E‚³Q:Qæw(SºN„:K}'ª”et2¾œhf{Q9/ß‹Øø¬Œ_ãÿð§¤Ê~†«±–‹Š½é³ÃÞÀˆ’À·ø–zãëõÎfV(žwÀl"~  hTl`îë´™Peú¶$‚êãÄI‹û§Çß²QêQffÑP¶ªWu(ûòéýhïö¸eêD3 ÿpõz hc¬ÿ7 ­ç´¡¾¤Æ›ã¿nöe“CnÜÆÚ(^a\ƒŠ“'Xï—O,ÐÄkcÜé›`·Ëß~ÃNúÄawFÎ#ÞxgfrM¼ôº€p ýÞON‰3¨Ä°Kì!=”hlES¢[O¤ƹ˜³§X¯²×Õ „<Ò¤SoÂR½Õ裎×_ùŒ‹ü–nËrGFä,Tþº9#k­î-h·° |Ô‚µÐøŒ 4ãÅÆ¤Å-;Ï[¨|ÆÀ ~šõ$7Þ¹ñ×-¨ï`ÌÆ-)©p*Ÿ±ˆIXeã ÷lo¡ò g˜·¢U#¹åÌGkã¯[Ш§VÛ[Òh@b#ZŸ±€†m–Ñzz‡{¶|´6>cÁã ó"Zå²d*Êê<KIâøµ&•’åÔ¢ % ·ÑÅG2,%¾xÓ8¯‡Àé¡Nš¶U)ŸÎD¥+gvéÊÝД3 œNeĦð/û5Ô-÷—á€æM %8 à­{ ",4Ôc4ß[±áCM@Nø>ø 5A ÄÊlœ¢&0§üøÄ¼%Á9 à{64ÔÀh ~nãµ@pÀ÷Ë×<õ¡NøÞ‹>¦ƒYh¨†KŠ–3ñÂÏæ°" Asšm+;ç\fóH8Û?Ÿ5‹c `á̶~²j)Ð¥c¡H0&*Vm6ŒXJt)³n£Jp6 –dmô)±n£J06*ÖcïªùuU‚±Q±{Ž>¤E‚³Q°R *+±Q]%¿ÆGW~vu… $¦YêÃ_ùAL(t¸* `‡ÔË=:¶è}þ¢ýãáÓÓ·›nNŒƒÚÛ‰ÚÚÚðæò™Ìß—OïÓ×ëÃ]ú8 R·¦}aürÿáéx“×÷wwYßõã}ÿ†æIú¿ÐêÅxwÿôXûæ³fxqÝŸ‡Ëbø>>ãm‚~Ú^ïþ1.„³“–v0Úg5(ñarFÑÕ(\9ÞÎH‹ÄG©§ÛðhÛ! \^ÌÐ. A¨ ¤ŽW™4^æË…2_"RÎÃâ’Âïk¬œæ@RÒ©˜,eß±ÉX8¬?þ>ª’BD’ñ¤;{†MRЦ*aqA.¤mÕ'@þ€ê|Ê”…Oñ­{— ä¼è]Ò*6ä¥S™Ø¼ªûšHT¶)š‚ïnŠ×TÖÖÄ+Á.é‚‚¤NjôDqkh× &2Ÿ(U¹”ñ š]/ãÙ2%[34÷d%vÙxECH t@º;”&k鼕‚bq ©‚µ˜%5Ek·¾Æ”ˆ^‚ú.Ò©j(ël;*/md ÊM¦·‘×d#{Q%ŠßEÃò×ïñ*Ú!TÈ[³R܄ʪÀðBƧDl(¼±mËkˆëI÷|ësÝ]–I=É ð(m?Ú¾´¦Ń"Q,–GˆçšãË•DljµŒ/‡YCJ_)Ç&cQcþV™L96ŠCñŒyHõЪ5ƒx’D3Ô¶€£åE‰J96ŠDJ@ËñTK·©éEuÒèeÉxÔý…š¯AWˆŠ¦¥Š2vš¨”c QKšN|’‘€%R3B)jI*–!¤]LæLÁY(Jar*–%+h2Ü­ñª8™ë%¤žî4”u¶A; ÅOèjUꉖÍBZB¼¸PøÅç´ûä1hRC”|?”Ô`”AÔ8…}¥ª8³R/ÿ#æÝÕgêIÿ¼È¢üŒôY®:wñ¿wdv͘šQD%loŒìŒÎþ]þqÃc…w–B«%¿#%í¼¸Ü€.H›ó§ÔTýQˆé p–öƦ?Çã¾_¼¢màuaBäwŠ&m û2É"ÉÚËçWíV´œbŸÁå aq)¦ ‡þRV =Eú훬"*ø€…œ1Dèñ»½é¤²Îá(pü²C6ãò) Ü Ÿ@Âñ®ÏïFxd«6&¾– íµ²«ç»ñtQΡ›:BV8{ ¸‚çÃÃŶéß>í2ã-ùŽkHâ2B^ìh-ZPЉªwsV‹xx¾ƒý0Vkv!hÇ6–³‚.2ªÐzp  ·Œ´h (åø¸’hñ§¿àäH‚ñ%]?u7þ´›Çž¬pÐêO…QÀ¯í\É„ElðÂö0 R³±=Œ ˆ=aZ?Ú‡ÁGQ第qªÓ!~0ðw?þ-øjü‡èÉyõË‚ —tt²P,Í… ”jIÇÐÆÖrZÖ­`W‰\Ž«†Rž³®`Bƒ¶UlnÙÙ(ë®fW‰âwÖprŽ a|ºÃeJu ‘!œl® îÖ Å¸…°ÆBCZw‡«”ìZÖP]Ï6ºÃe/šDñ»hXž£áÒå è\Ö :£¢ÊH©ÐYÓ\!{è\dt®2:™‹LƒÎÅzƒÎ™Ò 3QœJ˜l–básL—ÿ{XÏÜ endstream endobj 233 0 obj << /Type /Page /Parent 755 0 R /Resources 234 0 R /Contents 235 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 234 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 235 0 obj << /Length 3653 /Filter /FlateDecode >> stream H‰”WËŽãÆE’¾¢Yƒ‡Å—Èx5/Û°1£Ýtl’=b ‘ŠHµìßðOä7s{&0h‘Å[ußçžz³]½ÚnCãÌöqåœŸç¹ ð§yàQšMœøAåf{X½zÛ'¦ìY,0}¹zõÃ'g¾ô+È*Wëññ²úl?ykù™ýÍ ßÙ¶8 ¶o»s¹û¥¨Œ·ûÁƒ >z$2ÔÞ:Åïé±(›Ö[ç~n¿xŽ>™ÎM%+5í ±¿Î¥.°Ÿê²k+ó¾j†¦k÷¯í?Vï·+g³Ê2?É#8â|Æ&Žb?‹cK7¡9Õ«ÇÕ›í7e~‡ùO¾¹œÜ ÄÁ·ÝÑ[g0b—=y1þ7°*ð#2œwýĨWßkÄc?‚®í;:ª\Ù?yÛ/òÛrù,Y©>‘fR” E'A¿ËýA$ͱ-(Š©åpßQ(Ìa¸(}}À×MØÄkœdY›×äTHŸ²lØÿF~hŒù¥øâ‘’Ú‹h_˜OaÖ'¡ŸáW ßâÿ[kb¦ùëPbíG§³Û°Ä§rØXó†|¶ƒ—PAÀ˜¡$dáä…ÈJÑö‡¦ï§ŠXÄ׬ŸFYºZ¹ï d2³%ÿG­y€ŠœóLEJËf8‰T‹ïP4èzeäa¸Èo=I™a§{©’õÃSS.Ä$[zp5oàå]צiE~%dé\‰Dod“éy@1¢êšÁÜ[/Ö#;£²äÅf9Édͽ©;‰ÇÇ%s&S&¡º¡jH$PTÎ ‘šYÒÜ“êõßÿIY©×ؾñR,šÇæÔÐË"w¦0ÇâÔ ÔÜ8†k:±êAWU/}½÷î¸!W \¼ïŽº¥€³úQl…Ó´µ4îÞóÇmæç—O–@lÿ_5*‰RaêF}|î|!Kú$s_ugè¾Ô”Yté†kë°¡hZ¸aÈ×ö|xäÐîѸß{ß, {w>5­˜‚j”0ÎEÇ6T5 ¦œ÷}-N¼eX¦œ0Lýdúk¯ZñªØ#~ÑýØŒZS”;Sè þä;~g.»f_OÆq­dóHȤl¤žS6—FCÁoþ™ôùãè Áão"GQt(%øxoåœf·JG«ùbµ’ß'r˜Ž+ùž%xA!òÕ¾Ÿ÷¼{½}m.(Ð5*¬ýsA*>5Yܳ¹;“ò6…E‚‘NÝ”JX¨+sˆs…w€¦½Ø# ½XÁ Ðø¸ïŠÁìÙÄUH!ShI`>¥¢ 8»™íDîF“ó-Ÿ…ÔòŸ¹?cFúa ™Ïôµ%Ü›j¬—"{8÷¦Då>Ô€'Óêk®U¯fžêš j¨û¿ßŒD± ›†"Yûç¿èhÌD*ôcœS…ÙÕ¾ö¯'(&K¸œ ›)ä ‹¹ÙGþkkl¤5ZcjgŠ?Ešî†À®åÒÈî8܆¸Þô¦íLQÍS3¨ ƒô`"iØü› ¬1ÎC DþGâ²{Ÿí‡v×*? žüÏY~{Ï1,&ÜùüÓyÄðL/mu›öÔÏ7Ë–pS¤n3ϵJ-!ع$œýJ’+8ê˜u€C„XM«k*(夳6(‚1jGPIÍG&YeC§´riÆs•*&ôc —¶C¹B‰ˆ~ÑbÁÿA¸\†ð0S,MET„PeZÔ™‘SòOÇ뇃JU4XbFwùUKÎ"&jÛ9ãBç FBõdpE˜’ª¥4¨ùÁŸøj¶¬$D)™/šg낚¯£$°?Ÿ‡ã™˜†Ää%þ'ßèšíL¤è‹V)F&!b¾à9jB¹ˆ›K}Ý—]Ýέwšµ?·1¢ŒšBWÛ Ï˜è‹hõF˜f[€™Q †¡q7”GK#k¦y¤Ncb=¬‰I aîÖ}=ró‘hë'Y÷½œõ+SŸ@QMíU\«+w¡b‰™_‡–È&Ѳq×È öuñTóª"Ó£Òõ´p¾þ$sT“9¬ÄQŽ·E²„_¼ù¼Æ©cÊý²¡ð@ÅÎ,&Çœˆf]Ÿ9È&ù_É‘ðáB„#RImƈâÌ7¿½ˆËbïÑÚ`’à{1Õ³TQuFÞûÀ…×<S2]‚b4%I»ŠîUkº­B“°—çºÞ,‹±^·U¯0F~^ãØ ŒøA(å#ÓËŽäÕ$6J`J 6Rcž¶¾ÎÛTæ-ó,‚9Ã蹺¥:ÚδU¡Ôšø;šW5zÝztäNÞÒæ‘/Ïœ‘t†<òÓxKçæÀŠßnùYš~‹„\„sJ‡¡ä¦ ÂÙ(›˜ûþÁ“BMHPKôœưlgé1-(›Ûëí³¬k·ÀQr Ð,ÛŒÉn[™‚¨HêEfÅœP!ÇßMø;FRÑ€G°¼îÒ[”LÆH&cb¢&‡¸q(‡”…⊈DWËîæ>‘Læ'Ó5k I¹Þ±ùÛ.oŒlwd§‹ãFÇ© 6 ”—KE¢— ¾; 녶󲸰Ô/XùŒoèEýÝ›¾Cóà·‘ù]˜Œ!ñž-9ÃB… Nçß{_Á×gId|ݾF7ø:§“&x¨á܇ZÑw*‚bìoÕô¥Â‰a¡ê¹ŽØ:UÅòžôl˜}åVBé=Õ%³Bg›'PLZ?²ÖºT‚˜rÞìgŸÆJÁ|(ä,Ù$•³é¡ŽÒ‹ÞLÇœÆ{¦z•£û ¯Ö¿ê{Yò«éo²O.Ås-~¬9¨÷ö¯¼=¶ßóÅä½GÏH(ÛK†¦¬w` M¹CúcGp*6ÆbcJ3 ¥)SÛO1×z˜³šÂN8)0rR{›˜Îöæ36çb:a8 ¬Ìõ¹ågb‘ã‚—™P‰x½XÈNº.²ÚóµƒEXþŸºX‰BžœË? ”†ógó‘}qjO¯fU ÿœ™ª.£*Ed/&Šá>‹Ý{ørMWÜ4©fN0‚Ê–MˆuD:"+o:Ä«„Cq„9Ðe±š,‰ø•Øq“žÑ=òfj¹|:d˜wºÅVšŒ½LÆDÆ\2NÆD&c¤“Qm©4ˆ£Yfרvݽ“eU7t£q²°Ÿ¬Ã`šƒÕß½ÈS_(&õ^sør™(»ºN·Žé\Æô©´àä‡Ö`Á±XÔS#‰ÓÇ¢Ý+'n„ÁvGú€6Ÿ5ò•Ó‡“5¡èòùªežÉx“èü*Ù9Ê›” ÷ʘñJBpï%ʇã$}.*͘XÅ$¦%£D],ÎÖ cb·ÇÌõJ}¼t$ÌGÙ|§”zÜúrÕ_ŸËGðsšôrW´l ±‘ŒÛ–ž{êê½aF*d¡ ðÐCý?Ê«e·qÞ÷+|؃¤Aí$®s,ŠžzÝp,¥âZã @¿~I%¿ö²—8–hŠ’ÈáŒðƒ…•D¤„)" æ¡+ô:6_qåäßOt%ý~  Øæj&ÝFì7S×Þì&ù~;Ya?Ÿ4ßÍ7OÇÖ¤ÄùÛ18Vt'âÚøÖ¸NÖ•ðîAxŸ#á½x5¢&7°î!ïÙóRwùÿË€,l'Ëò héTš–äRe1IüH9Pd—/ŲͯùÙ„Ì$ž¦cÛ2 ðJ¸"ýâ÷2ÇÏT9û¤lê¥;‹1ïZ‹L…¨¾Ÿ N¤…ûI/`I¡Qqžñ•@ ˦ˆÇ*¼•¡oÀ‚C:ª’•²AirP$ÜûÇ¿àÄuR¯T˜\ª¥è\âhœŽ7ˆùæUqöa JSÆë+GJS·¾¾R×}Ê”<åiÍ=–!P()\„£V€æ5-.çäëúÑS°Øà:á)QíÈ]ÁxN‹s€œX£>mÐ1œ†ÃÑ é%½×âÉ[Õ³HÍ÷!ÆY dÝ¥œœÂRZ°Õƒ;I¿l’·nÃ'Ò:2!ÑøÌæ$JŒÆ•D:I[Ë¿©¯“m‹§ItÒ$áëf3ñaðŸÂè¤r$ ßmtÕL •ƒ1û•_å`,·È‚"fA¡G%^àdDUÿŒbWŽ»Uà e Bévø¾‹ôuÃWÜ%¯oqì7z!ù¨D‘{L2ÕÏÓë]†W]›hЇ•‘ú-çÐì¿ûŸ%Ã~L†}Üa)Ú@š%Α…vrwܧŸ„«è,m¶—–è7üú uÔÉ ](©cUøÂ]´‡ò±ÕbÃëb«rrð“ÔlÚ¡ñØ}‚ì5X+vm >Óbqo¨ääŸëf’ æWößaÕO}®õÎ è’ºêjK!S´]¨Ëp¥@·å*M*cOÕªÚ¹[U;e(ØA,‰ä¹KRøÐ¹-_¥ œŽS¼ø–ÁSON‚2kGé“0&–ÿ€¤ùnöq7šÒ-T-¡ó'‚Üê2Ø>,½çMY½sÀQ}Ý®º‘Ô?íÒÛ[à {km,T)hÂ<¬»øzMU³ ÕEÀ3d©a ß Z xú)R%1ï~ý`¾ endstream endobj 236 0 obj << /Type /Page /Parent 755 0 R /Resources 240 0 R /Contents 241 0 R /Annots [ 237 0 R 238 0 R 239 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 237 0 obj << /Dest [ 236 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 136 650 189 664 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 238 0 obj << /Dest [ 236 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 102 517 155 531 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 239 0 obj << /Dest [ 236 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 102 132 155 146 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 240 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 241 0 obj << /Length 6343 /Filter /FlateDecode >> stream H‰”WÛŽÛÈEÞ}E?6ƒÍæXäÁk¯{yX¬äÁ“E K¤BR3ÞïH_ÈoæÔ…”,ùc Éî®®ª>uêô÷›Õ‹Í&4Îlv+çü¢(L€?},?ˆ¢ÐdqâyT˜ÍaõâÕ˜˜jäi«Õ‹ß:ó8®07`¨Z­çÇçÕ;ûÖ[»ÈÏí^øÎvåqj±|ÓŸªæ·rk¼uØŸ<ÌÁ GS¦Ú[§ø?ìʪí¼uáöÑs4d~<µ[ùRÓÊkñß¹Ôöm]õÝÖü°m§¶ïŒ÷÷ÍÏ«6+gZ³Ês?)"â|Æ&Žb?cO³Ð õj·ú~ó…D¹_ÄaNñSl® 0 ðUôÖ9œC„Xe/Æo ¯?"ÇécãÑï$N½x£ý{m^“©jeÿämþqqð­aIhÌ›êílBʲ¡ Ãöw…Ÿ"‰´slKÊbj9Ýw”$Js^̨|}ÀhV6qÁÖƒ<0kó’‚ i(ϳÀþ7òCcÌoå£G›Ô^Dë¢`I³f8 ý$¿9ÁYPøa2Â$Út‰6•h7Mmš~œÌ#Ë%^8Ñôû­yÅ0Kí¯”Ðþ"ïûgSî¦z0VOâÄœ²í8$w¦Þíj1WMíS½'P]Ø®?pŠR€²Û¶¯•¬ Éø×WïΙzI²”%_8¸¶kÚ‡vb§¶õS[Õf7ô3ÖrfóV©5»Ó05zL’ôÁlË©”øž›v_³ÎÌqè«zëÑœ× êr>ð9lß\xF‹§ô(žÒyú7BAø"ÒÈÖ™¼u|ñA½Ù¸`†´sŠi 8_ ž|ûý ÅýÈ#?¹Äx¾¤*çE¦DEëŠy '¾Øâ\‹ö÷òÚ¼óóèÒ~²ØO´†ý¶68ŒÑ”ú©1NË…òºðÔP{NcbLN¯JÙå~œ]³8ôçëŠN¾-*ï¯&Æ/­[G83ÆR|^’-K2 àʱp:š#ÃL@U½ŽwÛ;¸TÄVîQ£Ùõƒ)úÓdBsh÷ûvd%ƒy n¾4 ܼm»ªžá•Ïå“n[‡ÏT€[¼Ö®06ýsgÚμñRâÊ©’xýÄ–Áþµ‰ÖáÍÑ` ìgö=oÙQî»úÒí»s)`ƒhá\iž4‡“½Gˆ³›¿|ú4ÞáüËîz N gP¯T";†šçö©f¦É‰ƒ3Ž+ÄÖˆ¶¶º µlÕx£¬š¶~’J>”tN{8̱¬ÞדY Ê9°ç B*¦S}œé4ÉB?v€>5¬3V·$ì´÷Mír™½);‡I…›òsf~ºÜ$h¬QK‡\t€ø›öñ4ÔÚÅq°¾ôEt”·/B}ƉzÆ8ÙgÏ%¯³Oõ®—HpeãB;_•. ³¤uæ˜!>BH’’.gòÆK3j⑞ßI† –zpá ›¤—lrÓ1Gso¥ãMҩܽDŽڴÒÈr,Õ©*>á €•»3nqÆ-Îð.÷ä %*„/­º ñ5ˆV5b›®Aç›Û¶žÔh5i“+/¢RI,@·Ö$RQ ÇÓž®i¢2$;$a$hÄjjt‰ëEöQ€5.§³ñOéò™u>Ó)¥¦c­i$F^?Hg<Ê[uÙåÓÖcOd°áwi•Ý£Úœfã¯_’»¡%$¶~|nd“Vû¬",¦ ©4QUôÝÙÎVþSzåÃ(;Žjc<ÏýXÃÇ Î´‚¤,à ]~ö³N‹Y§éæ 8ÀXTQj§Š—òõÓµc˜´BÓPv ·qD À=aû\ò©Ì¢jj†^n4±Uëz|±]&^±Ï;ËÌÕÉü[EAêåaö aQømÊóVœ±snÔHu&À˜Õ‡|ê˜rP.: á–XäPÓ!¢§r‹¸lyHŽ.[d =ïŶ¼<ñšZw ç©QÔ8ᥠi8žWF£ÌÄBsÉJœ)(wg:_Ø\¢z¹›êAްî`Ÿaq ‚žßµÄ™hœÒLÏÏèæ©$1ÉÇ©?’£÷ˆc@YY{ïݱô¾æ–ÏH÷¡¸mŽ –TÀBüÒ/”ó)¹æ'ûAÛ1äR«óèËnzh:$";ù/ö÷ZÁ4.$ýžÂø7ó Á'[c.þª"‘Z)™;ÛP¸;­Ö}/û"Ý™›û¤vúíRûúÆ9že°@7´.$ÌtÖvMKç%`Ì•srâþ¯_OÝÔîÏ“fö„ÎÒ%ÿ’ô,¨ ΄¯ŽùV“|„ RT>ñ¼|Ûë ã‡êÃGä0Œ¹àpKt¬i¡„ú•†#-˜s1^¯'4Ë·Jñ°ÓwBšàöì­y6ÛÓ0Ï¡½è¦‘óMåÚø8ÇBu úåN,Ín×ʃŒ\Z.fË5ÍA ýðqWËÎ̤"¢¡ì'8é¾âù%m@œ“ñ)%ÜÆ2;w˜DO;±O­ª Y©ƒBüŒÊh»S­ÛhL„®0*oï&œA^Ìb*cò›]`¡å¨Ëè–:§¹[¼êxº!‘ œ _~×Õ:c{ÕïnˆƒøÜ»ÊqŽÕÐ>Ô[Ój…wä‡6¯®þ DÁj+§½+ºÌø²MRøÅÿh¯–å:ŽºË‚_1Ë™T8î÷£²Š${;Uª;' ’¢¬ëð¡TTù¯ºÑݘË{%Ó©”ªÄi\WÙ㩉?3î²0Å5y²·ò‘NôB© r.Rü©•‡Š^ŠUf_ÔÓªÔ5&ÈÜ[•ž»ÔaB¼KdXߢ®úÞF¦áYšà‹þZ ß-hrTÿÚ–&m`SùýÙ–œ¤Íœê8ªÝ4€^ú(EYóÅ #©:£Š¶Éª_žõ×´Fû¢þz¤Ö2àëåþ±”!T‘”«x¹A!‚,¬A]½ ¥Ô¬wctØk÷°…aË®~ÞUD;]_\}àöLee÷§Ú3ðHâêúæ³°¼mZ(.„¾šÄœ;&ëû6<{=ï‹;€ï¦ÛOx–—׌îî§›‹ŠB09õ6.Vÿær˜=˜C¤`ò÷‹™é®ê¿5«¯þ›áO ùQá=ì+Þ Öü®x‚V}=Ý¿0©€‚iÚ+5Ìûç£üÏ<ð•gž~Ñå·.¿ÿ:pÝ_zæG¼œ<íéÃP~9j#îü›­ñÃÏ™ö°èáë˜Ö–›¾o èš'+Æ¥1ôP„ï wÁhšÞPfíüô‰8oFOc¬šÊè!Õh ŒNÒÌ^ù›^þ†Ëÿ¢ p<œ›ú—ö ¦ø½bÎÿåòš®Ò†€>ðxºžÞ_Üðð—˱ÁÜë…àfoZq7z|ÂФ”A4·Š™Ûú´ç6Sûÿx}ýÉ´gÅ^hzRܚŠ’!äèF¤bCrPÃA~†å¶ÊzC[ …1—˜àá^”©kÈœHpíÃýç;LÄéòæâê_fÀðŒ ?=ÔðñbgßžŸ|óúÑO¯ÏÊ\TÓÙë=ýqùyÂK1ÓgÌýéoÓÿTÓ»¬§è¸f (½Ýt‹Þ€þh;á +rdòÔ@ŸVg¢¤ÊR Â/)ܨá!e`¾B© ŠA­#¤Œß¼”‰vÅÏ’’à”–ÖX…ާ7Ö°ãˆAÇHŽc70Vw x ¤ìä#œóI¨Qûh†5¸\¥«éRb,æŽÑârc1¯‰Ò5wŠàa©Á“Òªà¨àÉpBÉÓ(ƒ§I ¿è¢®‡HÔš”ôÔa6QÓ^xe æž²žQMz” €Ôh™t‹Œ&­%% †DR PóOR,”iw4ÍѲ$1$J—rÈLI{œ ’ö¸¨ÛJ ¢`”´§ù.ìi1ìq–S¾Ä'àQȔڈ+à–HE£ ê,gè8.»IþG.Íö˜ˆ·ÃÈîÈÙÉ«ó“DÞ–ÞÀŸ:ÇU'‡×€â ÂŒçF: çYðj÷´è²UÄH@3…0“v¹÷F?öBÏ£öì‰w,t.aË>Z¨eA-_OEó…%`ÿ@Éd§lçÞžóÜ=ãÝ#¢ôÌ=3Üó÷0Æ*ðË´ñÈ‘ÎÇ#&ZäléµË»¾j¢M0Ѥ°+†9Ûf ï-o½„Ùõ°+Så© [MS ÑL¹,1LXbMd\‹I ÄãÉqóýÇŸMUE»‚qŽ%ÅÄH}Åc =OÅŠü震˜¥ž¬K{äœ$®3€xCê‡%†_4mf¸“Ç1"}ny9¬:3úfýS± 1=Ú1.xýÃb)–ß/a^ŠÎ†ÍzdÛoÜ°Ú ëžmNsˆótX¶Ï¯%?f{ŸéVE…/¯*—^+(:[:j%tØ0Çùê„(zÃA=Fjgºƒ$ û©k@§M|Žâ|uÒ­èÍʦaëÇÕÉå7¸6  lHè4·m@ëŒ òbðw™ˆÁú¸‰— ocsÑÀÙÆM¼PqÃY–¥†qæxu {Û4´h´;F¼š£YÙ4lý(ñjASCP"(- ¡1>öDµó(†ÁQS=4Œ3Ý1ŠÁ§LݸƒO4Å|Å08ØÊ®aëÇñbhðh#Å/å^„GPŠsõî<çE„‡378jf‡†qæð4Js®ihη;Fxšƒ­ì¶~|!<5":¯ƒáAÔ‹Z@ oWO¥PFSÉdæ3am:[q®µ7¾:ß5´s½£JT sT 5"ï¨çZ¡yÃѬl¶~”ð4ük¬[ƒ %÷©5ÊMG©ïÚ¸Ã0‚6’Â(UH1TF©C ÈÈ1J £Ô!Õp¢¤T”*¤€ˆ“2J…{CÊ+@œ %† ÷¨bŒÞ¤¶S81¨¹ EâpVz“ZЃCÕGÚ5´sOm§pbºN\¿£§¶[Ñ8š•MÃÖ/T>ç› ý¶/ ½òmMµÇ±y ½\¨ÖL«P£Œ„él`ŒØ!a0 hJM§ñm;Ñ@ìD_kÉR…½m`ÊÒ:Fù ŒÅ$_𠣩g+ÎWp¥Å ‡—+5´s½£J4Šrq,AQqG=“D³¢q »ÕÞ¹ÞQÞ¶Ù{ۃ¦!$ÏÅtœ•8ãbôR'9xé\;祘Ö5°éýŽî\·¢q »ÕÞy8×"‚<çPzx§  ô(¢ï)—G”ù\ó 7– ºÐÐÎõ’ªÎªšŠ¼£žkæì†cØm÷ÎõŽ’9ŽÈp®SØ´Åfz‹²p.´7œËèÒ¹vÎ ŠeŽªMïwtçºcØm÷ÎÃ9ö˜Þ£"qÔô¨~:ßCÊÇ‘µþ{MI—nÇ¢}¤LÃú§!­V…örùê¿7ÛXzcû&YßN¨qš½EáOfXÎþÔ,tÚ±ûÓlQ“®övíÍŸ~;ÿÞl«Ò[Û‹?¯ÎO0;mYæÔÄŸÚøUEE]ÔSª#-¤´˜)cû2ûãü÷å4Î×KÂNöïå–ÍŸêŸJ{|ZNÓ|Jÿc…»_ÐCæÓ8o~¬ w…ô®¬s 9çb"o«vØ¥Š®Çxþó³ZJ6Ή”X‚ÆS_oŠéØ+XæÝ¢æ»ë kåÕýB“u¾{zX0´íÌç›#ºhW´Ý^×ãsÌJ›±Ì¨¸µòtÏLlÅÎ3DÃ|ÿdÍtÉ»x~:fœ±¤Æ½Ô8…qîýÚn*¨Øöj÷´h¦xÄ‹= XҼЬ(ël^f„>b„AšðÆóK#á€;uy-[#¨%[mx»`Î(m=—Ò óîé¿‹6Aºv‹¦2¯‰:¥ˆx(ÃÝo¾î“*BÀIž€þñ§î Ê›H˜Z³q86m¿m¯QëX‘æï›(JÆ ØËÀ§dÌVñ^°žÛC`02ÿn{Ô1{°3„_jŽ!àjÃËÍÉœ%Â&ÉÖ,íó˜c…æ±—dû"c5`½2ÁüžØéœý¡àµ/òíùaÔ­¼°°Fgà/Ú’´Á—í„›DvM&wÈF”u¡øU›p˜'Áã <0«ëDnÖñŪÀ"X70¸¯"нÔ_w“Cš¶ÜhzŠV ¨ÕÝ<Âò ¤uðk0ö‚'ð±‚êŒybÜE'IÁZ=Nè1†2%Wƒü:£¥”GK6u¦,…š£B+nú<Á»¢©§’7 ×ä‹ÃÁ÷K§ Þ¶ðPаæ P’ñ…Çå8ì«*ƒ‚på¦Ç«Ø)Äù@<©øp[¤œÉy,õJ¢Ð@©Sjîã5ÔÒÈÿ©n «…RP뤋M°È§q;¸@%s»*‚è:4Ñmrºú¶1§Û°ˆÜº}'‡|m6úTÏû' ”À?¿.(T endstream endobj 242 0 obj << /Type /Page /Parent 756 0 R /Resources 244 0 R /Contents 245 0 R /Annots [ 243 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 243 0 obj << /Dest [ 233 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 384 528 410 542 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 244 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 245 0 obj << /Length 3451 /Filter /FlateDecode >> stream H‰ŒWÉ’ÛÈ _ùuÐp4!¬$hŸz4­ñØŽpÇ4#||@E# ±4Ç¿aûü›~¹ØÒh¢#Ød-Y™Y/_¾ún¿z»ß‡&0ûÃ*¼Ýng|üé×ïùQšmœx~íÌþ´zû®KLÞñ2ßtùêíOùÔ­°Ö÷a(_­Ç¯—ÕçÉ]‘—:ÿrCß œ:;÷%¶ï›!?>f…qסïüèb &]ZÒ[w½Áÿöåeí®wÞÎùä4e~ÊBF,í ±ÿƒ`øÎ“Í›º0EÙ—MmÜìÿ¼zدSšUšzÉ.B „±‰£ØKãØÀÓmhZ»:¬¾ÛÿJ¢ÔÛÅaJñSlÁŽÂô%ÀwÍÙ]§pb—Óº1>Kxå{9NƒG—>{qêí{ÍxìE8kÿ=™ÊWÎïÜýϳû€o;™–„Æ|¨~£“MHY6”aXÂùÁÎÛ ‰trìd”ÅÃé¾£$QšÃp¶"÷ô f·;ßI ë~꛵¹§ BšJÓ­ïü/‚¯ÆÙ“P<¶îMs@ äRÞhP§SVfüšT³¼8™²ŒIU¸>dù6x³!SÀ¡‹4d-ÎÅmΉQ"!°óŸy)]ðkÎÓÆ¦rÛIú³ÞT6ëzÝkšÚ"5ݹ©;KÂÑÀ¸9´ÍÉŒcG:ݚ¾”¹õŒ„ÇA³ ¢)ªHÂzP¦Å ´Æ¾ƒøjV xRoë,C§µîVÃg8ÓªA윬W½•Xí/j ·çÞôGk~²…áΟ\¸œ8Ýñè;5áXÉÇk’8Úýïµ ¶SAl%ʬºõÁ¥ÆÅ9™HóÌœB[3œuy|Öu•í¯8–c D%„IZÖŽapÄàåý£C Ž 9ÎpÑM“¶/Op©hðQ7€§¥ÄÆrå¨Tñp¼v¤Ð›•P^Ù6œÀ ¸öDZìĆ^0†8£1Ö‡×emÂäÒêÊv»zlP÷[xhέ}Aát¦ì¥´‹FA2Pñ]£Jš1TÖÇò·Që’/Ö½ŸLN'â4ý¥\çYU>c©žÂV7EïIÉmpV‹¸{|\2aÓŽ4sæj]úœN>§âót£ðAIaê-wŠ­Ç­¾txª‚2ëà4„ÌUÎ2Â!”ÅHjÓ9;HA"×XÂ{þH­?tr˜–˜níú©ë¾´ýÈ÷v›™˜ÒI9ÄKå&X3CÓë($AvSq¯²SÖ½mÛA›Þµs‘Ó(wuñ„Ì”ÍÐM8œQ“©íeÖ§¤Ìtóâ’^~QvyÖB><ÀœÇJ’c'ß2ð¥žVpÞ–ÏSQ‚Î:›3ºHŽ_cÌÝäÃN|à; äŽvrGL ô;à ÁhkågnË—I()M#‘ÐHäkYŸ*d1•ñÖ£/YÅÁӿ¼¢tý@°¸c,êåU ôò¸;˜fBžÑêô-û~k+ë¼i[äʜհxÚ–ã~=èNû<½(E&“$ !d'í£ÛÆjmÓ~t… ]!îܦ”t(mT\*RÞu…¤·ø)þS»²ëZÓLÝ tMrÒW9É RÖ]oD0ÐØJgµ¹•{äÞkfWzq{I½QѶ#'Wh~|¯e1ƺÓÖ’8Ü}%¼oIÁÚ<=í"úØyG(ÙRð‹æä);þ]DÞQÄ—­¯®".±ç~ñF•š~ˉ™ …tGý½;6CU`ªoE#ª üBŽ_½îšÃáªcGÞ]#º©Þ8ããGß|ÜßcGñ?îdtRíôƒá½Ñ>=ëlUæ%E¹4Ç9ÜÞ„R¨SšØ)zV$ñ¯HJNVw§RÞ•­]´•;Vr?SâYKñ$OÂO±pBˆ>Åæâľ&¬ÎßjhÖúFn<¾û· œÇ§·¡97m/²…QÙZÈXV5ÖÃ!ËûadÕB´A‚–ʇ•‡+گȷWò`’±\È™TìFuÁÜzv@×¹«Ê>{®PÌÐÂÍÐßÎÏ'÷§GÂtFkeœeí—‰à —÷ÏÁvýºoÖpQÓY¨¼ìJ¹¨qïˆL!’UK´ùF-eçs¶y¸FÈþk‹:È$±%ž Bh…j8ç=ÜõɳîôU¦|S”9d(ÌfýÂv̶c±}D£|¶vYÔh›ºÖѼ &R›Pä½$30^ŸÓ˪äOe×7-ܪèrl÷‡¥DAˆÉL¢ˆ’ÂSd=¸Êü˜-I^(yQ½D™t#~}p+©C=铱2)÷×J Tèö–#?ónÉiΣÅjqJe“²¼%FzÂD¬­Ø©3Èï\Ï%O÷ÛªdÿbÛŽäJìiÒÆ¬Ç^´y•µ_–™ Â™R|]”¤ýMu#Ò¹5?«ŽDr£l›-k«Õ9bjØ SRp…,‡Ê‘·j ‰\˜ù+) †WYÏ^„¨,bG­DNÇ£pØpà eoŸ4ýæ³ñ¯.÷êRž‚Ÿí¥²´<ï”pà®Kbò7U”=ÞÚ‰b… F^?Úüs¹œ2¸¯'<Ö Zšj`µ9ibÊèu2•óUÄOzžÿ)ã÷^”‰È*ú‡4PßúärƒKŸ'Y¡í"eÂiB·vÄËØ'lÕJLÄÄ» Y7MXØývl±Ó×¢BÅeÒMD¤Ô_;éAÒSà=.çgú ¥„Cdoè×<×ðžƒüådª¦XèUè~$ŸÈ5×àÀãœu J6æ—Œp"SId¨{(‘H#˜r®ëÉÓ¢¡»w'w—çOpœ2<Æò™M–ËÅŒ ²(åû4Òóׯº6­†W Ž'F3 ¦ËЗ\Ž­@÷Dt=6"³.Ú,ÕAINÊvQ¿wEOólϓөáŒ÷7ѵö^u¤{¼š‹m×M=Ó"…6Vg«Âîà’[M{"¹ßÙJ%÷ýbl´¨!ôò¹ÍèvÙ"d­îÏFuIò«»6üo+H3”#&o kÞÜßþŸî²YR‚ð}Ÿ‚Ã0bEeÔëþ7b=î…@ ˆE0Ç7ÙçÝÊÌjÀ1ö¢M[Ý•õ•›ÜqB¨›ø›ñc—Kòëjxz¢MZ0ÝŒë=eUmîhb\ñ:€c§Ú4˜ÂÃÿ8ó;1F´fD)#rÜ\Ï ¥õ$—k›]ç†µÕ  9c›ç7«Œ÷2ÌÔà8ÚS‡eá&w?´eèe?ÿP|hF e5löjØl¶´‹u—ؘ £}‹«÷½Àa6‡ã³o±ì‹;†í²¾/ΗPG’ô »@yN¥7cïúÑb7£E¹>m<I䯒Û>!°ÍŸ—ÐÅ¢Ó8åÆö`ÎÇ="d¾ÃØfª’(.,Xš¶A²kT¯¯ˆÉæ¹7ýéÉó”Ll^ªR™ÆCZD}öÇ(x½\þMl¦3Êå¯ µhšC,ú©*cŠÔ?µuÝÞUs·ñÒç©Àº<¡7’2x8Þa'‘¥ØïX/QÇ#]ó »Þ‚Í®GÇ©uÀàTÊ6v¢ú »ÝåÎÛÊâe’—ĸd;bãçÌm-ÆF˜ä|°±ˆ‘>0 ޶éne+[ã× ßèÑ”lWÃÀW)%$Ç„—¥ÆÁ‘w¤ƒi«NR5t;€T¦ˆ.vlkû®ô•›Û ¬jÁiËh ÃG¦I`ÝÆœäëÌÈÉžš5K¬ÔØBÂùç4²‚SûßÀv0÷™„ζ¢ž£/š³È³›µ8þRF=I‰‹MÆ|t–ÏgÀ挟ž†‰_Š¢ô„Ó&* sLH“ÄU_ža-Vb0]Ç4£›Gþ†]hK&7õûÂßt½Ñ¼W×¶9û…žz(‘B¶.³B„fjÓ˜K½¢{èÈ&3XKù¸Žf–(èÃÕmïmïµm%²…åFÙîy,ûXbGÆ]ö2vXs ÚÂX\™£Þ˜2ó{l_Vß™¯hoö@HÄc–`¥ñE5!}?|ú'Àö t¹ endstream endobj 246 0 obj << /Type /Page /Parent 756 0 R /Resources 250 0 R /Contents 251 0 R /Annots [ 247 0 R 248 0 R 249 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 247 0 obj << /Dest [ 194 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 146 574 172 588 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 248 0 obj << /Dest [ 257 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 399 530 414 544 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 249 0 obj << /Dest [ 263 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 359 507 373 521 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 250 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 251 0 obj << /Length 2761 /Filter /FlateDecode >> stream H‰´W͒ܶ®$·y t S;\þÎöI¶$Û9$*íÜ´9`HŒ–‡¤ r×öc$©¼B^3ýr~Vvm*)•–CÝ_÷÷õ7»Õín«Hí«( Š¢P!ü“ŸE„I«mšažjw\Ý~k3UZZ*[®n¿»‹Ô'»‚µa•«µûù´úèÝùë( rïg?ƒÈku?Öðù®›Ê‡÷ºRþ:½|X“>.¿ÞÀs8è²nýuÞ'?Â)õÝTWšUÕq‚?m7*þdyòØjìoÚù‘waÉW˶îþÈa:‰“Jü›¦{’Kâzðo?Ëà~²ªnatù=0"‡~œøiÇ5R"¯ã7‹•`+KÛꟼ‹ÙY+{×Ç#ÿªêg¦3’ÂPfô3'‘ÃùgÝRZGÞì X<,fgL=…Ê9œ¿ÃW´;õ\|ª›RÄöX½öX ½„Üã¼-›®üŒ‡ÒPÝÒ¦èÔ¿[^p¨‹e*LÝBùÓMío!MÁða)Hàe©Š³ÁW%¥ìŽG f Ð:XÏö´`Ÿ®È´ÔÕ™¯á` L»ïè.Ý£†º2lWµ-õPÁZ©82÷êµ õܬÍlÖF@å€ÌÞñ6P†0(yØqÀ ¼æta¨õ~Ðtë~èdƘJ¾µx¹ÉNº¹,ŽÎ­{-+?ûk\†NO%ÅÀŒ¡£,:ÐÄ…ýÙlÆö»xaöB iõÁX3ª{ï“yïü Îzç¯1ïýÙŸ{Jñ­wèCæ‘Û$ÆjvŸø‡×’—¨ð]†;™íJ»æM‚„#L Å©)¦:ƒŽ@+Ñ,þÙÇÜ¡¤5Ë`Ä™À‹sâ†]øØü0P’0üWÖí…¡ÅlhÁ†æÇ©L¥mI)p‹J‚{Ðü˜œTØ<^*l>Ÿ“‹Z1bThÝA’cÓ€5#ñÌ@î/[Õµ.ÃÉ®ˆ V`Z—ú nÚXöðÆ `§¦E³is)‘J‚ucÀH Db¬rüCÄþÀLª;(7ã@e±ð#Kâhi”ü²˜ºPI ]ÃcòèðÓ'û¾¹ú6ë6²˜ ) ï÷8×-§²åŠÅ>˜¾Fˆ¥ÕǾka°¶”³Xr±Ú(dÖªÜm…éHàÝ{ìÁ ’Yõšg>•¤÷~pañù/Œ¾*Œ³Ñ„®™(ª`h H˜håñˆ¶¡QçìL2±zM²ÿ…­‹©ëS[ïz-If8ÝùUôÅÃò9&Žf\.ú~ãîÈR}ä_Jž]% KtÈϦáH3ùQ„ÓÿWìÞèQCÜúNÂ2ŒÌ¥rp“Þ7†CUaN¦Þ—¼õBKfg±Šõ^ï ;FÉ/óÙ@*¸ŸQ:7[‚+TòçŽTI‚ÕTÓR2P]»¶¡¼Ør¯•y¢¬çØÝ. ÙÎm& „XÅI;Ã6"§¨äC¹”õèô‚WD­ö °¨Åò3'0ì…}‰R²=&Œ„.)£™€±Ü3ƒÌË9©Ïôù‰3CÆÄ2Æ;¤—RúŠPîàû7æ §’×ñpA<{DAáx˜ØuŒè·nD °âlã#¬AMãÝe­u!¹ôDçTÑ^¤‹QÙc±4ÿZâDà%,ð˜p \ ldrFBÌH( ¼ùÈO²À–_£q| ¤d0¤É –ôÈ6ãèwÇCˆž&A³%PŸÏ\ûœ@¦\Aaú—Ì¿¬gƒ"å;Œê åª;ªY ÁV ëÇKæ»jЇgõ,¡z–0 ”àæui\À¶C8cÙÌ8vÄ›P‚Sñhœ,Äý:a6¾Táš4’8¼×ågºpï8Ûýуnñ¨! AYH˜ûGØ¿Lg«jî¡Ñ]!Q€?´©š…ýµžúàJÃtŒ ·Î4 û}mÇn¨¡ @@Ow¦U­3Ñ€ +³¥©sB^RבRrÌœR¦©È“h ¡G÷{fg•×*ô ~:·ÄFü«Ý$•'®»zhj#Ýä½ÏÈp•PÄÁâqL Ó v¢CPw28Ô(>…aõ•óBÛíI–/pÈ>¿TÓ“«ŠŸ“4È®¤êU %À¡®pTÆ–C½7reíät÷hnÔ~¢Òz!À(“å’U]Q¡Õ‡ƒÔÖR”[.•‘Ú¢]O‹'sÎz!Ù¶kGAÑØ2±?bã»%ÒC]Gר$_á# ÒíKñqÅŠxÉŒû;èE ’™@iBfglÅ9Èd‡zY˜±º·ª;Ö@¨Øp×Ú¡X"ùÑ»÷ S°”çVS¬n-¶œè¤ºHjè * §ŒŒµK޶¢5YqKP€:,¤Üÿg®!\Œ"ùã endstream endobj 252 0 obj << /Type /Page /Parent 756 0 R /Resources 255 0 R /Contents 256 0 R /Annots [ 253 0 R 254 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 253 0 obj << /Dest [ 242 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 155 511 172 525 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 254 0 obj << /Dest [ 242 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 280 343 306 357 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 255 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 256 0 obj << /Length 2956 /Filter /FlateDecode >> stream H‰ŒWËrãÈ _ù}Сá)<ùðœ´#Ízí‡bÄÛŒ Р4Ðgý»á_ðo:«ª‚¤´ÚP„6úQ•]••õÃzr·^‡*Pëí$f«ÕJùøs¯+æGQ¨q2ó—ÑJ­÷“»m¢²–§ùªÍ&w?>ê[;Á\ßÇFÙdÚ¿'_ô³7 ¢ÙRÿâ…þ,ÐUz°–¯ë.Û=¥¹ò¦¡¯ò0=šb7ãÙlÓ¬¨¼éj¶Òß¼€>©»"—C+C¬Å3毟MVW¹zÌ [Ô•òþ¹þÛäq= T¡&Ëå,YEp$˜a¬â(ž-ãXÁÒE¨3ÙN~XÿÑr¶ŠÃ%ùO¾+rÓ?Öoº„qð«tãÅø_À*‘á4¸óè¿£î>9ÄãY„³Ö´U6ÑòÖÿÝl[Ég4æCݬBBYÂØ ç«Ù ÒɱN Źf¸o $‚9 G3²™{Á×ÅÊ×IàO±»¿ôÕTÝ“S!}Z.¾þ_4‹•ROé71^Dë¢h€Ù!œ„³Äß¾ÅïÆš¬çóUuŠÛøÄNãÜ‚A«À9Öµéý>Ž{‚¡5ÖK€…ú„¥š³yt3ÀLdßõÎ8$cA2A¬„ }±ŒY¢UšeòÙl«,–o»²T­…1i“ âOÏw¡úu_w­ùMeµX #gJ­wE+f²qAr2n>7ãZ“qLç¦Íšbcè<¶7áŽ5VÕÛÓé|¤ØÕn*ŸŽXH˺¢kÄ »SiEIˆ ì7‡–µ“i)&®ÿüVšú`[À&œowõéX9O¥ŒÆæýs 'ÑÙx!ûPì¥Ù¬¬É¼µÃ•œ‚{ ºr'³Ëðär°v)Ö‚hBDõNâróRà&ÓZáNŠJ=ÛÆ¤{b. $s£¾j™ê¦˜Ú•ö«§è>å*d´Uc*eª~lS³óXÑ ¶¼qs>qÈÆÞ”~`Ï׃b5ø²_À·ä…€ð­jwuWæ*/Z>fpÑ]‹˜¢ÜçÞŠ[ꄬX‘Øž©;ÐxÒƒ\ݘmÝ `\ÝJ_„Ç+‘[åEm|éK}n5ll8;p`H U¸Qõ×úh^ú(ß„º¹UŶ÷”h«íê/¹Ž½ãň8ƒh`kצ=gYL4žÜ;àÊ—"€WŸ»”þîð_7ì—–»ÜM³1(L`ö‹û»ŠE 2ޝÛW"‘o+Ýàкjû] hàå|t6U‡4ûÙÚÂâ΀l£ v 4ÂtF{ÀÖ"©îqa:Bᘂl—ÜüÂe™krOË÷Ê t»/¬•YÀŸ°%Rˆ bνbïÞê-vPÇŒ5ö‚Á²/Õ|ýá4%—'Á³/y ³!#—½Ì G2”ú³¡2xž‹°hœ¸þbð|á²Q=±ÏPYà¡=ò²•B°Ð[{Lݧü $¥"@eiYlÜT¾SqEêëkNX[d'=9eßËìÙŸnꃟTí)ðî?þXWHŸUÖt{«¶uY‚ñÀ±C¦s¢ßÜßߪßWéÖrj7pû<8ÒêóUùE?ˆ¤Ys®pd/É5NÙ€7Xh'nhÙ¦Cbù`,m"‘6‘fïè {¬Å4néx[;VÒ4Nj•<œbáTº¿Ÿ¤Ñ{ð;H›4]|ဳënšž-`ú=U¬{.éÿÕ›IäÕÓÈ=üsC1wIæ"_¬T©G’ú‹‹¨ê#TŠÛ䛌›žO®$çUÑëÓÈuÖÖpeZ¹2èZ'µéÜÀvk¤Ø50³®°rDÚÐ~@~»™P{¦Wx}QEŠ ;\6¿Ó‰p²tÔüÔ§Óvß‹àªVižt¨s«B½1%V[®’ý.蜘ÄNaè® ÌÔ |löDQ;'Ï7à„AÑ*ñ¹÷<×èÜѱðtGö:=a>÷RØãî]z0K[—±1™)^̉‹jÀÐÙ6¾ê·Ñ¤?À *®„®óRHØYôGkÅœ{³TÐÉQ2ðqäz6ÞnZÔŒz€çĺ4´MÑñpË9vYLP\Wc)q%¢¸2Süª¬v§’`h{L¡Ë¬Gxˆjs3íúÔRag‡ÖTŒ’2­‚¾÷ª+¢ÝÛ”XD¡JCþófا.;2áVµTÂ]ßtK¼=ï;Cß9¸v‰Tg265baKzæÄ—[Çn,»†hZèONñ‰IàI&Eîy¤Wl%¹ÜBV³ÌK£šüNš»ÝoØ]ã:  ¢q[šôÅ<ûÄ ƒuÝe»'TZ3J×€ÓÕ\T±d‡]•2‘èËì ¶‡À FÂÃÅlòû1+g²ä¼ò¦‰.¥¢˜ku×]ã¢Ôƒ £F!08Ô-ú¤£€˜“x­Ä2DòM݃?j@ÈtëAÅWyÝ×Õ‡ž¶Sɉ¬®z3ÐXŠ®®íÒò@ü>È}éÇŠP¸h @6ó1|Cåôþp÷µ@ˆpZR—ÂýйÔºo’M—(R£®VŒn‚¢ã¥.òÎp~ çUÇÒUè)ІïuÓ Œ({Eß¶ Õó< eUŸµ0í®îÊ>Ù¤PN8Ž $Mú˜?)ŠA\/P{P†Ó áž‚…+OÒœ¬CMMiÂ) êV==ß…Ä€äOAŸÊâ?ô° ÈZÚößý¯hzqùµ€ReÈšqüGÖ&&™kw)¿XkJ~‰5¹Ì¡âNO·¢pš¬bå%ŸJYݹ-‰:¢1Dpv¶=¨rüÛm¹a™Î?å!ûËô ¿—òáŽízøÍR{•rÛ2¥˜Lt¯2+Û ZÁ“ª"Še’^;·êFÄ@Ì4}.áî‘”’`¾ûlôFmËT¼?úŒµ¯ZÚs£éOiÿÄh&×£Ý<Þ‹IÒåþ¿ëjÙA‚w¿‚ãšc¬À?ðè¥XI,Šñ÷™}YðBiK§ tvv^ºò²®Hm½Æ^þH¶4Ž,¼ÉÞzãìƒ2»…š1v‹×äqË¥ <Ôˆ¤5ò¯ëØnÔ †þ@ØXA¡€®‘ËÍ%B\‹œ2)ÉÁëòùÿÓý¼“›'Ë1–^öêj{¤þþ@“Ùž¹'×Ú´ÜÅ¡Ô2oEøÊ)ÝÍJsÁ?!:xBÒ»b# –‚Y.qÁµÇ&3w¹Â~ÚŠI  ßï£ê*ióËà<‘&ëfm¤¡bLÂ\ ÿrÝÌ&é=¬ endstream endobj 257 0 obj << /Type /Page /Parent 756 0 R /Resources 261 0 R /Contents 262 0 R /Annots [ 258 0 R 259 0 R 260 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 258 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 317 488 334 502 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 259 0 obj << /Dest [ 298 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 434 269 451 283 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 260 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 431 187 448 201 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 261 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 262 0 obj << /Length 3177 /Filter /FlateDecode >> stream H‰ŒWËŽ£JÕlý¹¨E2²)HÀfѪ«;©Õeé.nÏ‚‚t™i<€«ú~G÷?ÌoΉˆc»º§U*“¯Èˆ'N¾]Ïn×k£BµÞÌÂÐϲLøsÍ,ðƒ(2j'~F™Zïg·ïºD TWÌnyÕS7ÃØ ÀBÅl14_f¿ëoF~ªÿðLà‡ºÎ}…éëæXl?ä¥ò&пzƒN†ôÖ[,ñl7yQÕÞ"ó3ýä…Ô¥~9V¥|±4Ó`.ža¸ ý`‹¦.Õ]YõUS+ï_ë¿ÍîÖ³PUj–¦~’E8Hè‡&Vqûi+Xº2ªµ³ÍìíúˆR?‹MJç§³…3¾kÞ"…q8!féÖ‹ñ[ÁªÀÈpú¸õè·£nïÇc?Â^ë÷´T1ÓòÖÿžÄ¶eÒ-yS×¢•!/+ò0VÂþaæ/áDÚ9Ö9yq©ÙÝsr¹Ù˜ÉˆÂw ô®²@'a°ÀêA¨…zC‡2Ô•¦«@ÿ7òc¥Ô‡üÉ£M¬Ѽ(Ýì<œ? ÌO;8L0άRµ 2ßK†˜׌Ç5rÜÃ.¯;Õ7êÐìvÊ~aã >{+XTU¿Ã'»‰ S›ÆiÕ¾aP”yŸûjð§ä ¢-{ nÁÙ–n“W;W-¦[¬QZ•b|f8 `JNñIFƒ1¸¬ºüqgKõз6ß»ù-œí'ÀoUÚ»ä;UÕªßZÈX™¸0%d„èž§/6,bß©QäPysïQE|R»õ:pgî`­‰Æœ¥&ç¬åɽ—`cõï½ZÀyÏì¤W}ÐÉ:gåÆJ?l瀼ò‘r _EÖäkdº‘xìvÍ \÷Hü€Wö BÚÔp¡†i42ÕG™µ‡K's½C…å¸ÎáêªSE³ßS(;Ûwì|ñ'›z×0Ì¥™ûÁ[$8òƒ ~£¥±áή)t²:™ØõÈ~Ïh”3 § ±}sÅrÄ)W=ÄqÎ:ãØÚÍd¬ÿxA+Õ)/¶àai¶’qÏvØT½yGŸ2ýwDêÆYyOOõ*â¶ig…rmÅ6«J7Ev~vë–utŒ…çc Ù5'þ ÿä r9?¬i ¿öò@Tå¡åÆ8A> ¯ÿUX, Î×ÛË( yÀõÕ]ÕšGUEW`ŽHÉ{Ë¿nb ÙpÛtýü¼Wˆ¼!v‹õv"3Né%{® Tš›À}œŒ“å 7®óž¼»<[Ë>K½ðúz Ÿ$Z^% k.DF4[8j6î’ ÄM”!~–‚UEÎ!äÑ7AŽ µ|/¹ÍT+{t$ãVZÖààŧUäkϰÖ¤¬ >VT”ô»—>¾àXÞJõRA"L-êM-†~7[¯ ø¡mÀš;š/$šH®v¹ÈÔhë¡Ïûc•ððbOùs—![9Ì]WÇ^j¨*0`ÝôÀ«MàªM^ôÇ|GF8‰Lçª}©ÞØ¢§ˆð)) Ké^Yí éûÐöUMåÒ D/xK¬¥yB£i˜›!£USÐ˜âØ‚+/ ¾òš­äVÅjZÔ ¶O È%%¤>?Ñ—åºo›¹•À³Fïo‡eFUƒÔfab?˜›i!â?W×ȉè¢áªzð€h*;T˜\B&g9êï5ìMQ"‘(‘•+)âDÿ…Ëñ’_°>EïÏJ;óci7­¡®E~°0í=‘…Uë?Ö?wÊÊÏ–2DÙZ\M”´èZKiÔY®™T2†bAƒîßP…hÎt[&aÃÔÔŒ" »\TÊÁ‘áPJ1òWÊö•~ï\Ðpb©x‘T<ñiÄ>%Ï^:/üŽó‚Ÿpžƒ;êb —á— ò|ärš 23+7]«þٔӡׂx¸ÙñÙO„<ÈᇗJÈÏ0•¦tdâùhù•®#Ü`˜q ‚ŸÇ·™²ró;$³¬A+Rj‘2ѳ«b¼’[‡ze¥ã®{ÿò'—œ³ÖJnX¨¦“kÔü¼j )<¨K'-'76Hèâ3 õ¦2&: „zU1Žhÿ]ãb5b–i›ñÏË¿ÏÔXû퉰_MÀ©:æLº¹»S.y^»UIÙפ=kó!â:Ù‚)ÜÂQz‡Ë$Àýâ‘J®èjÀaŒ˜ë¹l•û\ËåÌõ6ò6\èÝ詾ÚbÛ0:–ú²†ø½§|•E“G ð ‡ojïV= -uº]•Ûv+¯nG–{±A\UÜ+•$Ø@¹S—j¤c£§pPóÒFNÉÚ/n^a”¡¸ßµÒ¢ÁX>%$h©êȘßD<µe°ÄëLžIVÚbŠ´OÚ£{Û óÔÝ»O¿rNB"ð‹åö Ê©]ðï–ç4¤‡B×þÌ'#> û=O‡ÈšÜ#cûjÿ:ýøÕ!÷Ý÷;ÊÂbÔŠt¸ÑE¡:JêÓçÔ–žƒú²¬¨OÔ@lcøÖ+•Æè1˜¨0H^ŽJÌ;¦´#³š+”çÖöǶîØáÐbn%&NH_Ükq™F™'¡G¨G𙉈{æÊ¡)4õ[ˆŸ Í9}%Ó„ÀD<= 9á eÕå;[rÚ˜‘7ì öó?pù?Áv%RqpIÊ.¡Üdû–z$UÖPr)Ýæ4IÙÍÆÊœ¢ÿþ­à oŒ1¦¡ðAš“ïBïá’KLœ«éüqú€ˆµ» …\ÅS}JgÈÑ]…ÔG=ÜžKŽðÁ2[Ø`@ª–ÅíÂ#Ž“/Ôœ³.ðq×®úâ ¹`ÓÝ+ºTs9›Ô)×KZêB ú™Ê Ý+¤´]ÑVÃ*–ÇÁx‹C(§ºå z}rOÕ]`eôáàÄ!è¹·¹pã£sⱃIý…E| pÅaH"NИ¿°š#¡:Ó[×u"ĉºBNæ»®Q/Mû™øUQ€‹L-úëLð§3W|_”ªöú¨Ú*^ž¨Ø¥Í *{˜À¯ˆç\ñD¤C³åüD´äÝ•A÷õ Ï‚?ÛÆÚŽ1Î# °?9ƒÏÐr˜eh͵¼ÛW}/K%Ïgî°“AªÚðDÊb‡²F–º@ëáªÙc´}¶5xq›?[¾Â‘ÐÂ%NKhœ©‰òoÛàêêÆÖê€ähïƒ&{[ˆ?<Ü\g/AyE`âKURêR–vsLêUAj9°ÇºtÔÔJ„S)÷1)ãD y‚ ÿ¯ó2éiˆ¡ð_‘ãDÔ,Jƒ8qàX ‰ÞèeHS%R³(øûØÏžd’H q©:Ù<‹Ÿý=#› —Tq«¡} Æž.P¢;Fœ¾¤úÊŽ…¸Ù¼|šu.³×JÝ”=ké|ªœüÉ06š¢è†³Ê5ÇìbãhdíJ#Ù?\)dúè»ÃStЮ”DWµ§d†"ÏžÎK»ó×Öwu‹6ÂGË  å¼Ê‘}4FŸ2l¹ñÉ¿p'ÝZ†Hñtã¹âµ«Ó®òô/'3R%ŠT¯e¸‡Ác0£J  íÁdük9w"¶_xtÀpt–Ƕî+K|DÙ¨GüWQñ‰zL=‹ôû‹e—4C„»9X>°{SäUÇÙˆˆŠiââÅQÂÏFÅÂ: Ü‘¦8›$KÉ!šM1ËØCe¨ü»*[* Êü—z©2¾®y3SÙ –%¥+¨ŽŸÏú²ÌÅñP¦‘…‡–*FT†“÷’ÊIéîNœ4?Xóu36jÚZ$?-1ÝW©äÞ*x¦AôÈáh¶˜¥mƱ‹ê…œà‡mzР;ú °ûW‰Ð..!!zÑP‰S-<o~ß_£Õ endstream endobj 263 0 obj << /Type /Page /Parent 756 0 R /Resources 268 0 R /Contents 269 0 R /Annots [ 264 0 R 265 0 R 266 0 R 267 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 264 0 obj << /Dest [ 270 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 398 210 415 224 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 265 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 397 98 423 112 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 266 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 427 98 453 112 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 267 0 obj << /Dest [ 298 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 477 98 503 112 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 268 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 269 0 obj << /Length 3554 /Filter /FlateDecode >> stream H‰´W[Û¸F_ý+øj+¼ˆ¢”b’ìì¢í.dü–ôAcÉ3jmiÖ’äõoö’¢ì‰Ž3š bQüÈs¿éífõj³QL²Ín%eZ–%ð–¥H…ÖŠṲ̀¢Ð%ÛV¯Þ †mwL°a»zõÛ­d÷à Π„¶«õ´ü¼úÈo“µÔiÁ¿$J¤’wÕãØÂõMÚ>¼¯j–¬•àKà € ›dÃ󸫶m—¬Ë´ä÷‰Dˆývjk¿ÓàMwá)e.¿m¶}W³›ºÛ¾cÉ?7_ÝlV’µlU©)5("S©2–é,-²Œ¤V±c³Ú­Þn®@i™©õGÝd‰j ¯à»þ1Y h·ø1Éà·©DªQpÜ|HðwôB½ú5XVÛ7#8¨Úal}”(Ž^(8ëw.îv7° ±‡Ø~ßö~‚u5V¯Ùd)¼! zå ,¥-S-Œe¹‚Ð*u¬1¸šJ©‰ m–C¼mGf±yˆ¯ùå«q¯ñpv‰êKT]¢ò^ ¥°,œìa‰²‹Ü ;XSgÚÉK#g—õ K¼´¹p–±P>à0*f 4ü‹«X¾ ˆJe€‡Ns“1WPÎÊÊsð2»†›4Ïg<i)íù ž1>¥,¸ð^¤˜B‘ƒó]rÈÁÎŽÀ­½‚[¨âeq…ƒ†zk4m Ù¢Ìu¼´æ“¥BJšàV_ÃMšyźÌSÓVÐ¥…)å:^{E‡ úxôõ2>{’À£Ÿ»Sù@â!(|Êù@â!(|r‰‡| ðÉMþNRè¤ìõ7Œe,Ùß&œîo…©¿Q úI!ô7šÂ˦þv…BŒ‚Bèo´æH"(„þFË0ÇÚ2…©¿]¡£‘ úÛ…Åþv-|¼dßÈg¾^ÆgOxôG/,ã³ ¿ctJîUò݈þVBzmБó lõ»‘ÝÆ±ïPðíéè¢Áò¦½KïF°É㱜Ò0yø»! ¦+noßTñPü°ùiY¿ü¶®}HÚÂKèwd2³LÖËdP¦ C¤q*©–WCXԘІ_$F9ÛQGÑBùøÐ¢C-À{š;;ÊÌ„Œ|>‘×±4|’×xyí¹ ½ýÍ… uØC6>Á5ÿ:“”Å<SÝH2H·¡ßŸÆ¶ï^cNú-¶uS‚í,¦_wc0ÚÙÞD… þ}1À%xéȰÝÞm˜€Ò‚):ö0šVžP"8«Q/‡¿Y ñ;Ñ9ñ¤>òSW7GH®Êb”ò¤Juq)Y,™_8ñþ×wµì¶ DÑ}¿bY`‰Rƒc«ê¢Ršu”d×ÕÆ †4ýŽöƒ{Mœ,æqçž{æ¤òVâ%‘8ÜiÇI‡ïù1e~L–94õQáiÐÃd¹4—Ü—~Pº¹k³¦Ø»ÜÀI>U%¾ª¡–ûÀÍý"EìV:ŽÛ}ý:ÐX—΂nT´ÄÉØ•öàèj4ß/wõ}‰YSöÜ" Þˆƒ·Å#9àð¹JÓ x®g¤Oºö‘ž[úQPÕúáIÆîܰ–véJ߆¼wå”7 ºVÖòf¿:ÞÒÄ©ÚIœŠêÊÍï¢,ß ïOµ†ìä¹Óý š=ö'ÿþ,ö|ÄyÓèI¦â!SñyôÌôYÙßéy§ßĈæÂm¬âmÌy.3ãvE•™ÕR LU+¯´DÄ)Ð%Lt“Nš;taùH½Xû¾EûÄÔ³®¡pN|cYÁ…Ö¤NØ™o@øÒôå²â¨Dg…À¢ë±œ¡¾wžª ðÈþ#D—£”SûÄñC…¼8´Ù4T™}‘Xiv3EE)ÆÂÊ»7ý Mr0ö]œ<×]öò`sÓžà„-µüǫ̃ؖ2ÙÜ}Å»3CsË!= 2pzàžkŽ'ãídÕ_`·"iþr˜AŠ5H=)hÒ-’>B}ˆìêä‹/äµ®ä=ºÐ¤¸¿ì&'Ìe§1D*·(±Ï¤õJ8Ó‹=.ì]])QZ¢;Yz¤ÔìIuŒK< éU¾È4ê•C }Ëy“à±­0Q÷ÃÓ—Äüm°þ3'ÛØ£v{ïšÈLäÎ*ÐÂÙÓUPNèé¼:g'^mÙ)×»ÖØÆQi‡ø‰C© Y¯d ^9—;3­y³\…p.¹6’$P鈖Á¦$¬¨w»rB’@¼l Ë8g¯¥4·Ø°«¿ZÅñžÛÜNh†Žu"«wA!ÿ^IU£ž€¦d-jB$ÃhŽÇ|lß6ï”1I¥^ö@úr}nƒ“/²Öô5Ǿo膅ˆäšoIj6 µ¤f#©aM³¹h@¯’Ü =§¦F¼È驜D¬)Ar‚•æ’HfìÐm·aŸv°4Ì  0Îä5ÐRÕþ³’³™ïl)FŒ×%{š: U,­½ŒïgCàpßÉùöæNµ4^.!Tü\at‘Î;¸ÛD@N­#%vÀ,Š/윥¶×%cŠÄr£Ù!´&,5§œ;²¬ñ.W*Øôhà] òHYóÇó§ÿRsé endstream endobj 270 0 obj << /Type /Page /Parent 756 0 R /Resources 273 0 R /Contents 274 0 R /Annots [ 271 0 R 272 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 271 0 obj << /Dest [ 252 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 167 512 184 526 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 272 0 obj << /Dest [ 252 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 188 366 205 380 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 273 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 274 0 obj << /Length 3369 /Filter /FlateDecode >> stream H‰¤WM“ÛÆ­\ù+æàà µ„ðE°O‘¼v%«DVå ç0†K¨H€À]ûoDúù›yÝ=ø ¹RœJmÕÌLOw¿~ýæívñf»T¨¶ûEúyž«î1ü Ž#µNV~ŹڞoÞu+Ut<-P]±xóó&TOÝsƒ‹åðø²ø¨7Þ2ŒýLÿîEêÚœû Ë·Í¥8¼7¥ò–Q ÿêa>z4¥·Þ2Åo»7EU{ËÜÏõ“Ò'õó¥*eÄÒÊkñ†iè-šºTeÕWM­¼lÿ¶xÜ.BU©E–ù«<†#¡F‰JâÄÏ’Dá¤ëHµv±_¼Ý~#qæçI”‘ÿä[˜“›8ø®9{Ë ‡ƒ‡X¥[/Áÿ § ü˜Nƒþ÷r¨7?¹ˆ'~ [Ûi«b¡ÿäm?Íò³åòYš°Q÷D–UDQVaìûaî§"YN´¡(¦šÃý@A¢0GÑlFá»|]ç^…Á»Y –ê/äTDŸ²lèÇþJ)õÞƒFc´ó‘yº³õÖ.Ò•á·#ÜØHÊ;°†¼[™W² !‹¦ -•²œÆS–Óñ8©g v=v6m©Þ¿SoY¾¤’ÆDÿ²™ˆ¬Ò¼¸Ô8$ºëíIuÍ^ÀéÓZ¢<ƒ·E¶Ì¶HÉát«•#ÛTÏ=~î‡Ì·hG?bñƒY–™àÜTu/L€*àã’ZÍ Ê T‘b‘1h/êh+¯oÙÿ5ùß]ÎçÆ©›³©È®ì`x½ì:0Ú0mÏ´Ê»Ã;85˜)ªc…(̵‚»!Javؘ„¢–ÝÁ\ÖRŒwî°(ˆ³é«ÝÑJ±“]r Æñŧ ·ƒœE©“¤´z‰ÙUù¼’£§ –ýÍeéŒNØ,Æö¹ˆ‹j_pf?¤¶=v í®¥Z¥D:D(jš<㦌ï)éÒI^Aœ…hN'ˆÂ®ªÝFÍ~7È4x¨Ó€ QNk+]9Õå-¹I¹Ê†~Ù°®NY¤_MËÕ8I§X£n©léPü>œ ºÕOs’aÎIf°Ž‚¦àÁNÉ`Ëó-?«BÆŽGy/ïXˆ]çÝè^ pŠÌQIýDVsüÐËÀ1¶.¨MÅÚv7œBÄœÍ-d£…L,ü®Dé?©0$ÙR1Bš°%‹EuvÄÌšËÈg—²¸‘ÅNqDÈÓ]×mÎ6j¢µP[h$¬$ŸÁCº,t#’DP~5æÁM° ‰»ˆaE‰²¬ê‚¶R¶n.2|Û¦gMK…• Œ„R2mÎÎiË¥y1¬QÉák€ß)…²…±¶Éœ[Uië¡©;ÍJžÉO8Wš†ÎŠF‹ã â÷äÏTÄÚGýhŠƒšõa²ÀBL4äɼé#ÝÔBÃE¶o.´ >È‹æxá:'A›¡ƒÎ˜{ê‡S­ ¥‚‹•=ÅJ/ ³æÉò# /àJÞj/Ö–2âºÍøUe¸qhô%cÈAÊ×S}ñô¢0¨á#q=d6OƒÖæßÚµÊg£Î'Ãå gäL„PÚ„Wº-A²XJ­,wϳ“}¥ŸÝQ ds:ƒÓ?PJG5SbX¡4N1¸˜¯Þ+Ü<Îåë2Ènž"V89™v"¥LÕ+7{‘…vPØÒI#[Þ*¨;ªZùátMÖ³†ˆCýÚüÓ¿¡ xv›€ÂÞó•Fº£8xÊ¡°j<˜©GÒ1Ü©K‡«“²{RèšnJƵ$8ÿïÓéŠÁ­Üéø¡¡#!ó›jExƬ¾n-³²U¤^|¢üC¤âzY^ÜŒ¢. n­7ÞmÉ]'˜¸¦I“®åàtßkû(ÉÖq›•ó ñäÄãÝQÔçvŒéÌo‡Có7ц0χoÝ7×_ˆ}û¶AÛ-±VN­ç†z¥B>ê±kO·Y—ƒjtbr¿w¢Ÿž›éAñ„ɠѧyº‘õœ4ùW7—‹Øygæ¹j¸¤RÊåï²9G€š¥­ ªÝ:sâ0{b>ëºt‡@‹=ʯÔZ"˜? çzùÊöÜCA—;™×»õn ^†w«Ü n ¹Vg¾ee±% éëA¾Ú©ßóŒq·‰›F—¥ÏîËp&+KZ7óË×=ºŽÎ¨ÞC§Þ;d…ŠíGˆIû˜ÝQžù!ië‘êîåÃ0XHQ7ßm@'ºHW 2á÷2ªOòp‘Ïݰ×õ*¨,‰!dÌÕâI››õÄ|õðÂA '÷cøØœV9ë8³¿ÚíÞâ·U¹\m@fç³£­I:Mã8Gx>ÑÕ¾? #\Sãk n…¯µö±.ô]g¥F«nnÔn[)Š‹TÌ ‘qE?Ýû!Q˜áâhkWÕS1¢Ž«ö®a~Ôêï¹*‰«£%5ø+R2®xïÑ]õ¾Dïež4¿á²Ÿ'òq;Ù»IF¢1#‘dÛGëU@úG©Wú]œŽ /qÒ•ê¶õ¶Ÿfý Ò1)ì`Ôð¢š46w&dÙ`!öÃðu ]÷?Yø8šà€Ý¹CÑh(‹¢ÉPßßZGÿ¿+Óþ—Ëõþ!ìϤ€æ}–tψ8]áh:âpè´5{k B'›´ˆ4ÈåÔ!‘ ÕA;ôýƒº¶ûéÜ¿p:) §3!Ý`f‡½sf©».-m/½Gý¶¾œvt[€Ú ·¦v­øièÖßý‡ö²In†¡ð¶“Sp‘5MRÔïš™ì{MBO2µìT¶¯Òóx)Yv³jW¶HŠ)â½Úà¤Áý¾wáËÛ3•RH’6H¾´vTßgVñLÇÛƒf"׊ë2¬Ì™Pj&ÀPþ1a‘Å$û«Ôþªl•Õ6‹:‰²,âñ—BÚYgâ*D'‚ïõK¢î9"òÂzþ ¬€ë›Ââ[Ë­¸ÎÀöúZ=>åÞ²–^ûeý^]/¯CmßH8MEüõ:*ÚI»Žêo©ûoBërhÞ/ßpÕÆ W9O.rä󜯛ÿ¡5rvW'Gåå¼Z’‰ÍZ'òªi‚Nz¾QuB”Fw)ä25ÉT¨zå72æß˜çýV’ðP8&Ÿ±ðœ ܱ¤ý„RÓ{<šUÉ‚ûY5szgrÊ@p¥V\)0QÞ®ç´[MŠK3¡;®”ˆî_ðuk?·ñ›Å¨ÏÊãUyàö`¤^Ù¯ZP! ˆô䇅ª¡êòH W+LÔ异PoŒþy“A,O— &0a”uƒçùNˉ̇.ùòSË)–ˉ†Ô¬CCpÚ¡aN )i°DžOG&~Î6ŒÛéܤ•ºÍåW/â?¬‘ÏüÄSŒFöÚÉ^K bç•-È‹ŽÕ2}%QI•z@–j#Ä@o ˜]üåùÝ·•0¼†_¬qDÔ¯ZAÉ-P¨£vþ–¥RgÇÖ£f¾¢àˉÑ8 ´,·uûú¹œöN…‰qüÃß__wQ¯¸Öƒt<‘’c/GçW°QŒ¨}HcðºPçy‚ƒ2ržŒ’#†òwäCÚN‡ÑÜ;Ç(M†I¢CY6ÅÝð’ó+/žH{ùþãîÞl) endstream endobj 275 0 obj << /Type /Page /Parent 756 0 R /Resources 281 0 R /Contents 282 0 R /Annots [ 276 0 R 277 0 R 278 0 R 279 0 R 280 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 276 0 obj << /Dest [ 123 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 317 648 343 662 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 277 0 obj << /Dest [ 159 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 340 349 366 363 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 278 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 354 247 403 259 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 279 0 obj << /Dest [ 490 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 303 189 329 203 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 280 0 obj << /Dest [ 151 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 311 167 337 181 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 281 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 282 0 obj << /Length 4190 /Filter /FlateDecode >> stream H‰´WÍŽÛ8Æ^ý<ä -bF$E‘ÚÛ$›dÁ´o“=82+ã–IN#ûBûš[EŠ”l‹N°I€6¥¬ß¯ª¨×›Õ«Í†F6ûc´,K’ÁÿqYf4‚•KšiQ’ÍãêÕ›^’ª·Û2ÒW«W¿=0ò¹_ÁÞ,AÕjí—O«?’‡tÍÕÉ÷”g”%Íö4Ôp|Óž«Ã‡íޤkž%ïRØ`Š[“® øíöÛªnÒuIËäsÊ"¿ë{cð$‡³ðËXÁ²äÁTm³#owõP· Iÿ½ù×êífÅHMVZSY p„QÆs’‹œê<'`©â¤3«ýêõæN„¦eÎ5ú¾±ÝÌœƒoÚSºÖ`x§’.Íáo VeT áøòâßÁõê×1â9 kóOU­’¿¥›/³|€m¥ƒ]@s«t\¡fÂ1Ê# ’@?+iADÍy²Å(‰ ÷K †™óÙŽŠŽ @U™%’ekžéŒ¬É/èGHk•%ÿTB>l?§¨Ä¤Ï   ŒsðéPW·¬¶ ùdȹ7;2´äÛx jÕ{xV“2¶¼â%XÒŸLUo¤j·ÀªYFeb¹Y&_Ϧ© y I5 í], x@2òÆÅŒ,pÔªAf ~È>]rô'ÏìèL–投 ܀­zý©ȶƒ,Bj0AyrNá@‘<XoŽV§¶Þó¤Bt2 j f·!íÞº½oÇö©nœòÕF­ðÒLW›þÎ4F¹5ŽþZ“YFFkÏr>²£Q†KtáÝΤ… *mõ`®öß¡M¤6'çÊn9|ÀF¡’펺J Å\Õób¹¡Ô‰´šÊ6NsÊ(!¾}Ýõƒ#Í-­l\“Á i£óX7mG¾™®G+šóã'Óùp±Ì¹RR&¦€)wNÔ;}9,lÁRn»«@äNdw3zýXïvG3Rá<Γá‚(Þ¿yéÙãã!ï96ïòÚõ2(ó<ên7*,BlöÄ4㫪ݧðÑ ……Éÿ²²Ñi3 xÆ2&®‚†u¥’÷)öÉ-ôba…Þ„NÌd¸~»ž7ܺAë@„Ê„ä ›«ôVìxQ`>v&ØIпIû©of0Óëô+šßqä=ÄJ„%Ç7¸ºt  \ÜŸÎr> ˆùHzðÞDTcæ¶WK¦ &2©ˆ,¡øe¡ü8zŠ”a{ͱd_CkR8«¥À‘Å壴as~‰ŠK”_¢ìÍœ†J©­íãmÏ ©‰Ô’æ¥Öö©k‘ËÑ‹äcj¬#¸·H%l%£cRC}À(œVᦡ\‚M3¦ˆ}³ ø¼Ìïá’Å„çP4ð3ÛÁyA%Ì‹˜Î¤ðïù„Ãu)— ¤cDàJÝÁ\8J}GƒÀÞ*âQР¸¼—JÞÓ ¡I2—¸÷pàdwò Ê‚Š"Q*¸PßÇ5L®¸9\Iñ‚“‹’ÊâFsßÓ ¡Mòxr µ•ßÇ¡„â $‡Q^ª¨€áS9)ÊKsœÂWÅÁ•—ñ‰ˆ<Ð(‚,ãS #xHÀ2>Åg½ùA?—‚–kUÁäx“û¹º™|¯¿ÃmUâ§þ€ÄëÙ Ÿdr?.4i-á’‡âË™x&/fš»ùîáÂÉ“Ö=¼‡·¨g|ì:¬œQ¯„ð-q”؎˰ÜÀœé"ŒŠÿó”P0E™ŽÓ6†{ÚFð@ÛîiÃ=m#x m ÷´à!Cü/ä§Àü蟕ŸêD”ñ)=âÐØ ±<…#ž$(¹Ì™èyOÈy?ebþîDÎûÓȵ|>L˜èyϾÈy?_fç—ÇK<ÿž3ö^—et–Ú[tž¸t––tô[tÒt°[tŽ[ôùCEH(&ž?TÄs†ŠP£ >iÄ}.¾DñÐBŽâë4§E_7œ2øº¬Àï|zßîÌÑÂoR_=;Cîmß~I׊æþyás(/hÁ€xè’Å7`¸ ¥âžßƒ„1ýSG—àTóVLpFó/ÔÐÜöØ¿Ód— ˜àe¡ O b]8¢ À¾KG„j_V0ÁË B+ð #¢ À¾ÏGszNDA€# ü ˆzÚÖ²‚ ^V&E\ï|Ž(ð£d®`y–,+˜àe?Â/{0:€»8û56H]`ƒÄ’ îd¦§þ«]ƒüµþ|îL ­šïšaËSIF ùðð*-à-O3lïv2Í`_×é:‡‰ËïéšAã`¬7í¹:|ØîÆÇÎô'w®mzsÝÚ€yáMÇ%ËrŠöæ%½°—¼0-ªÕ|nt-J™%¿Ä+í‰ùf:Òê˜ÑKNfG>ëï)+¡“èßЉüs³= uՓøm› øûÍþì…œÚnAÃ<€WÉ;ø>“»t0D¤ÞÃ{5Óa%ÐÅ)“Øe*¸¡œ!^_Ϧ³B”"ÈÁ¦u «ƒI×ê ŒcÉŸäé`ÀšÎ¡[Ì'§¶K`Œ2`À—äsŠrÈÎ|ƒlÉpF\O¶c ¯ÊÇÀš½ùûh,ÆòKc_’Þ4;²oÏy0ƒ³âwÓ·ÇóP· ¤³j· $dßí“Ë š1êÀ'°aØçk"è´† Ó^àK;ÈÖcd5›"ËÂAvIâþ½x«ño–={]:Ó2«‰OštФ/5}䨶’í`¹Ò›ªm¼ç¾lÂ,Cé: ¸ÐÆÆéº‚±þ)¥Ù!î„Ñ=)3.¼…¹½åWãÂZø)u‚?›õOm~†‡Õ­×¨\£bVö36޲‡¡`Ø{Å£@]o7‚œõ·pœõi\—MqÄȞ(?ìÓx¥ˆ+œ²‡’ÁMû$ÞÂtÐwü¸O1øq ï[½ÁÍû$ƒ›÷i\—J‹:øŸdpÿÞUíÆ7ø‰Ÿbð?‰Ã¢e§¶"¸‘Ÿdp#ÿ[ˆàGzŠà9<ÝNR‰p¢ÝÓÍÅ“VÎái#fñ¤²xÒ9<-aO ÃÓüäðõ‘(£çº.ûöªì:x)œ‡ê6ʹ;W\=­ñLóžZत»»”U R\ÈÞEv3aÕ¥¶£ì’-$ÇEâ_¼>UÙwI€@÷¢_ç~b‰-wè`,SR½¦;HPñJI²]Iܵ+…ûv%q×®$îÚ•Â}»’¸kW e"ð©Â"5¡Hÿw}P·dVnÐ=‚ÖÔY÷¥¼û& ­Îº+ÉàÜ•fˆ]gðî¹Áú„`pîHç!vÁàÜ^Cìµ<ƒw· †Ðƒs¯C“³Ÿ­~ðýR©zc?xRëžV2‹'uÊâIrxšã,žd0‡§ùÉá—Û&¢«›ËýG¾È€¾éP¶ H˜wýuÖ€@Ú¦Þ2 ò‰Ëµ­¢ª×õŸF›º“ýJá¾_ <ô+…û~¥p߯ú•Â}¿x¨¿ FkT¿–ÿ4µÑ6Ò¾á?CðŸÈ@ùÅàý‡dˆ]gþC3„>!¼ÿyˆD0xÿ!×{-Ïü‡fÝH0xÿIòþ³Ñ¶_ä3û™ÀC­óx¬$‡:x¨B9&ðÁ<ó“Ç/÷ÕÃE¿àüS_à?à=¥ê5|Ÿ®J•Уp8zá,èýé0°ëÇBÊRñ¥Ð|(ðŠ±¯ü]Ñ”’pï{±ƒá…¨ÊšOEÅ&wƯÔ×"##UÒ6Y»"Ÿ¸\ •‚ÜëæUýJ5eºw^߈+賆Þ¸ÑS‡oè)±‚ˆç#½(½¥"œˆàõ˜Œv1!âùA¯é^¨'"x='딄Šp"‚×{ò‚"žü€ŽàÕŒŠp"‚÷‹4BÞ/ˆÏGx_‹´ HšýµÔ¢”=R@ã7]ëÏŽÜ;‰Š÷nüþ0 t/¨éNØ…\”Œ}øô (^ËeQ• g‡ý¡âõü½Ñ^PÊ™Mðb " ‚(ù|:Ú÷çÁŠü…÷KÃKQ©RÕx(5­ºWf×#ìi ×x…+cŒóršÆ›ý+j¸Ï§eøõLïJ§4«äÒ¨Ÿ»2<ìÏ#»Ÿ†]±ë`•ªô >ƒ°"aåü¹VNˆ"“(hG6Š7&öùôi‡á7¿ý°?ÌoÙr;°oã4/ Q~ížy,†ÀÇ …»n æ¥ûÓ´ ûè??ÐŒÌbwë ÖP køâxjËÓ"pwþ"¨×~fP ßfEšOã5pG6CÁ@0ùÍ2žŽ¬-á‘Ò¥Æ0 ¥ët¼õté|Ö\BL®E´RW¾C²Î¡k~ßßï¯Ç»q‚öþ\ž²…}½aöi`ívÕ`ËðÇØçß=~TÃÈù8ØÓTßžî¦ ö[MÄSU‡¨ÚF~9ŽHßMø˜rkÙa¹—ù7[8ŒË<ÍÐfýS°†q6+¸99Úã¼ì {£Ú2î •O· endstream endobj 283 0 obj << /Type /Page /Parent 756 0 R /Resources 292 0 R /Contents 293 0 R /Annots [ 284 0 R 285 0 R 286 0 R 287 0 R 288 0 R 289 0 R 290 0 R 291 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 284 0 obj << /Dest [ 151 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 374 693 422 705 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 285 0 obj << /Dest [ 151 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 371 654 420 666 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 286 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 299 546 325 560 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 287 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 377 483 421 495 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 288 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 377 465 421 477 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 289 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 377 445 421 457 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 290 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 155 304 181 318 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 291 0 obj << /Dest [ 159 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 449 254 476 268 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 292 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 293 0 obj << /Length 5691 /Filter /FlateDecode >> stream H‰´WÛ’Û¸­¼ê+ð°dÊ‚‰;˜<Å·SµW¬·ud‰3£­±4‘4ñúGü ùÍ(ÉhZ•xjªF”Ð tŸîÓ|±˜=_,$lq3‚·mËüÅǶáR’9mxãUËŸfÏ_ [úe ;¬fÏ~/Øía†µMC«Ù<=~žýZ½¯çBq_}©eÃEµ]>7ؾØ=®îÞ-׬žË¦z[c À:,9võÜâs³\m¶õ¼åmu[‹±Ÿ7ëá—.ì”Ø‹O!¬hª÷Ýj·]³×ëÍq³Û²úŸ‹¿Í^/f‚mØÌ{nZ…‹.¤fZiîµf8©“lßÍnf/Pž·Zúpÿp7цk6Ã_îê¹ÇápCìªöµÆÿ NÕp~¼«Ãÿãp¨çobÄ5WðµxL­fÕêÅo'ùÀÙÚª{§ñ)xf2D™…Ãü‹–[1xÖÕ2DÑV}¸Ÿ… …0Ky²bÅãP×6•ÍÖß°9ûK¸” ÷®©þ£¸aŒ½[ÞÖÁIW«°Oùæa#¹i$`ÜM4Ãå|ˆ¯ìc…k¹jŒcóÚºm8ɤ2ñæ8¸Ó–»êÅæÈ\ ‚QáDá«=ÿjú¯y±>GÕ9*ÏQqŽ6Ãm%HÑúþìñ1œ½±Æ3×XT ®ΞI‚óže6]8;$eaœ2aq¸˜ñ(Dz|ÊDöšKiàÃsÛ8Ö‡ö$À×୞ ·vÄuÃ[áNWHi¹ñ’´ ¥C §pÏ9â¨ÆF{°dGÂpç&p>·~ƒ»Œ¢£ „äÒLã­3SŒæ´àNMá†k#&ò ZË•¥£ ZNã¿ÓwÐèx¡~) ZµÜØ ‡–^Oyð‚+IGA{Ô–žÆQB´#¨# |Ë Áò 9üe1x¦r‰Hà™FžIPÆÇxN@ãSÆ¿ÛÏâ­G­Ú}Gz‘û¹ûyT²_jÇMPþð‹Q(sÇ„â›h>>‚]\£,lk¸9µ~*Í0§ „ýêaùqs¿9USƒTcœø¸9ê ’8íWÏØ‡êÍW=ÖAÇçP?gYÉy˜@\%Ô‡ºÐ‘Í …Dˆ[{DjÅy'¤Å†a¤ñ&KËUÛBuŸÓ¬ÏYNÁ‘äœ8NÁ‘âNÀ‰àùMÀ)3|}Z¼EyxÿTiñ-×MKŠyÂÑÿ¬*Š5e!‰õ‰gŠbLZˆbL[Èù',$±°(BYˆbJÇ!³ˆ²Å’>C&a!‰á„…ÄEÊB»3 ¶¤VS|ø5ó-©V$žs]ÆÇLxÎç,”ñ1Æž#XÆÇø”ñëÕÊlmÝõj%¯Q«F¡Ø`Ë:Äáļ Öñnt+ØÆ+ÔFô{Ósøû¶/Ø”$‡^q}oÃ4íE#žòmÆ:¼’ RvÊh"kÍT-£‰¨e4Ñ´ˆf’–ÑDÑ"šÓRD¯O‰u“€~*¹AÆ¥ Õf€'Ħ¼?kMÞOI ±?) µÌyqÖrfEyRêþ#oÊû“ÆPþGf÷g…!÷gî•÷'}9Ù_–:ÿ===!.œ’[†sî8¥†€SäËp,§¸•á–2|½¨H u½¨¨«^,oû»Ç8þ¾¹¯M|:{ÿ‘óâKOèD™*E¢\ßì Ý쩚Ò£µ‹^<ÂÄ“t1Là}³ŒøD·,`„Ër7Pí”paÂAj·¤ƒ\³e#\vû1í U=á ă԰Éä¾A8È0á utò¹ó”ŒpÙAnù´ƒÔ»&$M8uP…²ƒ.;ø~ÞÀÿ0ø¦g©B#he¥¹RJ¤'rûC— =kßÕ¢ MÍE m%9cïÞ?G•¬ü£[®ÙËZ4„eè†=t?|‡îÀö5ø_u5<øêð°ÛæÝeO?£«Å3‡GÑh®j ÷`xyrN—F#z× ýµÒ–ÿus8îö›ÕòžmwÇîOçÍ/ôdwhÿÃîð‚ÂØß·ìaßÍCוæéô£{- 'güýÜ šêÙu>c.¶Ø=B*®«U ¢Twï–ëÃ3v¼ÛØ¿;èˆÃ¯_jÑ‘ K«ø[ׯ?>î·Ýë;öz-ÝÆPÏVÙB>¸0ý9ÃõN²ÓÿËî¸ÙmÙ§eÖ ëy¼ IÕfˆ_×½þöx8~ê¶GvÓ/ UÿÿOT»aûm¶¨q@N °Ý°s¸ÈêaÆ—¨±½÷/µÊ" 2.îƒÃå¤bº\ç\®Àû<$qÙ¾ÜÿdÌ3†ìcŒ[Šòä š~³|¼?þ™ŽË}8^=ªM=ÛÛº_¹<²ÇÅûC¢â2$¯Klϧôù”~8åàÔN%F—xJNθݱ{ϰêv(§nÏp;ü¦ªÇX`ÇåÇûŽ-·kö'qaçÍæ÷¸-˜Zã”ý–.Ì#=B!k^\ø'Ì@‘ǾXj¹Xš¾Xª¾3ü²[w÷ìí+~Yhþtë7q`ì}×±CöUODôH.‡|#”û.¦kßz^Ø =ñ½ `Çpá»ÛÝ%1Ü3á¬NZ`êRÏA³PŽ«P‚ìS›Þ1®Äâí†ïu˜œªWµÄ„ÈÉ<¿àî¾ç ãpd‡ÍíÐQ·uø¿¹A'#ÃòÝÍx¸L‹˜þІ¹Ú!«¸&f39\Óƒ'˜&Ñ–÷-(ž¹°‰º`¾VwNoßFö»ãnµ»çì²…†nLªTšFbÓY4”CfbæàÅi‹fÿ—rø* ¾Úó¯¦ÿšësT£òçh3\cbòÕ/0GZB?~Èø«[¨:5ßNáa¾¥qíqÝðVç_ÊBpiÜóFޏóBq&-Ä —ĺië'<¤—²FÜ)¼ufÊCœqI qÆ¥qõyHC.i!¹S¸oÜÄÒ”KYHS.‰ãÐÒë)qÌ%-Ä1w G ÑÒKø>–”×yŠ–þ²Ù¿#ƒ-JR8|ÍÎuP&n­ÕAåtPAW$v'B(±fñ².Š%¶¨m슗ӦQÈS-¨¶³ÖUý¤"®Ö2«ù^º€[îñ ÜËì âË7G7sÎxðÜÍzÏxˆø²‡Àí¼Ïœ‡€3<÷³y¬Ãy8ãÁk{†À[Œ‡ˆ/{ÚÁ{ðÌÇy8ãÁkË©‡emaRRq Ía -iRÜãŽC×ìÄ+Sж³{›mßíH”²äÖn8›ÑßaÑüµAÊ\¶¼uœ×nþæ¯QŸç ÏJvhœQlº;>Ü6ƒx•QÉü¼û×Ö¾Òw«k¼  üêŽDÓ$›ÃÔnÇ9 †N‚¿Ûm3ŠO Äx¿ÇöèxdÙîlw!ýÒím>9­¤õÜŽ>´‹š¢ú¾é¶ÍkØ"…ýÝdÝVÉ&Uø;4.~[ ´š?vb{߸[ûáßâŽjÛ:P1¨¤›Î¾l±´ yÃoÙ$f“þ£&”Nš'{çual]P\px·¨O¥;èùë°1 MT>Û•M¶¢e‚Ì}ö§Ê“‡¶k»ÔÜÀ°i|{»Uz¤cJ¹@8ÚyYgýµÎ9Ú kܧ ÓÓ$üÖgc#ýÝâÿn›s½³/gQpm°:íl [§ÂÄhP+o¨ö7öqÂF)äö•Æ­[‚~nmõšä±ªæ8#IßIGzéSò2ØçgyvC±ôŽ<`W9“ôÅ=uÖÂôZôôó(vk甇NÊÝ‘±™~xØ8—£¥’Ã0—OFÃ0ŠôºibÙŸ2>SŽË"®N˜ðþœ ÇÇLxF£O¶&6ŽÎtúg´¥\&[Wj–Ý'£ÓÛ#>þW–„+ê’ñØN›Û}#vÍõÕ.4.9î'›²-¥Ð4ïhImbn:ŽøtßtgM¶,¹ÐzŠ£ŸDž'@GY™)»Ù­­À¬h“8 ÆG (­K^e…ŸjQ{t8«vgµêxÝ -bþÛñˆ½¤º¦±ÌmÅ¡QìI¯R›åÁ!.(:i?¯Ÿj& >ÕÒD1A¶æp¤9уíôÊàÞA¡¨Gc;Eíº•ZòÎ~n‰«Ä­!@ˆé“[³wàÇùè¾W"»ôÖš£® Ü>D‚T¸½êü«2¸!YVn‚ÞÚ”É(Ôf®Ù]‹C¡ülLÌ )lø¨3À÷¶2¨Êò¿ÙBN¾¦û¹´­Žnƒ•RP7*x÷²v˜µi^ÑïŽÛƉKv"~OåÍþhc‰{¹Þm™:Ü>ÌkèM(òíþ¸Ãq,ï¨ù»=óùižL.$£—ñ¾ÿ䆉NlFñßoÿóÒyG¼¦q‡­ívÎz$ÄÏáMýð‡Þ€îûýîÑ~ê°ŸÚ¶Õ±Cs·4Žì6Ófýxx«hâSvú›éîŠÑ´·cê©úD!<'Q«¢¡·Ð€¯*×(z-Î_sû›sTŸ£ê•çhæÎ¬hª®ìÞçGÚ{Và>(kÌN53¸ú&Ök)ËyúDý䥶¤KÇÊI%þž¬Ç¿ßüEVDó9<à_ùäð¸6à|]6âåÙ-I)(‘ù½Rà«ì\­3`C×’sóâg÷ü{ÀeÉÃ%º¬®xó­”köôšÆîü"\—ùó¹YgR²¿\ê 0îd¹äc¯kº=°§×h—¬ºWYÉïÞhTš1Üï®×yÁÃØ¯ªÌó•\kÅžÞTh!sF«°Ös…¹¡.¹Ÿ?ǦAÃ×3ŒZ¨ý2ŠvŽE· ‡¢Y†CÒᘴe8}ŽaY„ßÞ<ÃÔ¹^×õcöBe{¢.#QÏûöKZÒøÚØ`P<šh0©å³õù<‚f§vÄ!¤ÎjoÞƒÞýQèQf˜ø1®ÕÕÚäè¯åÙÚÇ<ã¸ÍPÚ•ó–¿oÇ©Úíf/º~jÞœ“#•®û5èPÜÜ·£øýØ Øu‰mI)”‰À×ñx8ôÃÔìDß! ¸Çèwâc3Œm߬ýñB®Jt”óqrŠÏçû-ϧ°W0ocÚe ÷!™%{§êvbïž oôÏ€+’NDŸ®*äãνÙ}¬”YCº( yŒ‘ 1 w½•4þDEÒmS»ÅMÜÞ_mv#*Ãúÿ™<(*E¹ì_ã²7t¿SFl†F|Hé÷t3ÌýͰIWLWô>5ˆßÔ‹Û†r!6ûýS¨‚(Hö(M4ŠòAa «‚»RBq endstream endobj 294 0 obj << /Type /Page /Parent 756 0 R /Resources 296 0 R /Contents 297 0 R /Annots [ 295 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 295 0 obj << /Dest [ 133 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 309 496 335 510 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 296 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 297 0 obj << /Length 4628 /Filter /FlateDecode >> stream H‰´WMÛFÅ^ö _чÈÀ¢Ù_dóg“`XÃðè…±DÍ0˜'$µ±óCüöoî«n²)ºé1°Æ#’]U]õª^óÍfõz³Œ³ÍaÅyVUËñ7^Vy–K)X©t–Y±Íãêõ½f»Þ¾–³~·zýË gwý ïæ9 íVëéòÕ‡ä&]s™™äS*òŒ'ÇíÓÐ`ù¦=íîßm÷,]‹<ù{Šw¦ôÊP§ë¿Ýa»kŽéºÊªä.å±_NÍÞ=©i¥ÀZür^ð<¹©wíqÏ~Ú7CÓYúïÍ?V?mVœ5leL¦+‰ðŒ Å”T™QŠ!ÒR°®^Vo6 &«”0´Ú¯h›¹ÛàíSº6;ΤKþ7ˆ*Ï$NïSú?¸ ^ÿ4éBëïÛÓ\Cýø4°Ëo\”om”ì]Wš#'Øï§ºÃu9­LX{|À$Ï?±ûj#e6ž;Z€dF´ÉÆŽ©Øí?S*=O~k»k¶ñsºýõ9Ýô™Y·Çõ¼É„©Wl‹þj,\‹"+9e†«93ÚgF_dÙ7{$‚Rã h·‹}º:²¡e·õXá)¥K†ž“1Ü7ý˜¾rÊÕwõpêŽ=;¶Çõ\7®)ºÉŸÔ–™¥Ä~;lÁ‹ŽÝ6CϤþ,Tæ¶V™ •Fø\Ùü&ßå%sf¦”г”é9eãîßטp3hÊéä6]Só`ÊiD㔸9(@€&ÙTòy0uVqåýði€±.1©FÓvv¡?;w¼À‹BãÓÓžŠ`Ÿ3÷ØÝ^Rìy¡ b‡ªTEicŸÛ…]ÎRx^ŽÇ8 èRÚšÐÆ´Ál†¼ÌW^½ zLhø99V“žœ©ÊKðJ-á:+ŠWyVñòü A§1 b„ÀÏ—p“åbÆqÉ奇‰´yŒX^– x ¯Ì‚‰nÕ2ž‰žz¯J½äBžs·¼”K¸Î”æ uU‘É"žY•8¤.ã&/ö pÌ£CKÌ‚’ÅŽ …QK ϤˆgAô–ZÆÑBqZHœ˨/ás;aÔW.2õ¼°'ržY†=…°¯ž‹†}æƒðœ— üfó…1®eVjQ¸Q4å¦1^Îc|Ôê7ŸRÒ|åÐ,²gr¯=š/1^0¨?‰8šW×G›i‚2ÑQj¨!¬8kÑ{ ¹*“dêþHêÎé0Bw5é—}k°ÿûSXÈÏ Èõ$F H•K§¼UÏ“{ã2K’Rv¤}KE)ñ}CîÇRãóî’ã1|"y÷,áÍcøÄóî‰Ã'¦Gp_¥þ5’T#á‹ôÿ®O<™àˆ²Š>â‚… +vÄ‚WìÙB©Ãг0)rÔÂÌ‚°¯¸q ž' “¢Fó03)baRÌh 3×¼"Æ-x6F,LŠwn¡JÖ_ôŸŸKVö•Âsð¯QöÂsvðO]žó„_.Y˜È+ñrÉ_%Y0oxŽd‰Y²Ä,YÜJ–$ÉRöóÍþXÉÒN² IN…N²Ì(YôÖ`ÿ÷ƒ„ëÏ&8M†ÏRPµ¢o¼|"ꥨŠo*[ÎYT¶bøDôî™Ã'ªÇð‰ëÜ“=†Olà¾Lü+Ф¨Hæ[É–.2”!ªZ^­ðz¯Y~}L²"ë'ÅŠ­Ÿë\ïõ*ºÞó#¼~R«Øþgþ„×OZó?ó+¸Þ+Ut½ç_xý¤SgëÃ2¯ÿDÕ¨ xVØ+ð¼j×àYI®Á³|_çɼÏ2už§á |¹&)™å"7/×$ùUšó…ÈK¯I³$9ãŒÝà3¨²šÄ&•N“J§I’4I@‘DƒIx=2VJ«GEÂÊÏypJ MKbÁ_>åPAnöJzªÊ¯ª<茇­°€ÛQ9â ³2À ‡øY:;ˆ ÓˆGLÃ6êÀ÷mØÁ ‡øiw0õ~ć#¦q­ŸŽ8˜æyt~…ÌpØøqÓ‹8ðpÄÁ¤çÂ’v0Ãa_Â/gƒ Àí0˜®…h.™Fo´Å4ðøó÷sswêj:_sÌÒ5Oa¢JtÆØ»›×d<)›ñ•®Ùº7Òµ¤áð6å¿'¼ôx‹Ixsrøá`7Y—¢'0PáÕ$ýSëð#ôõóÑMñÜVè’ç*Sº[U™T(ûåXûR1N6ãL`ĸ©f5cþæÈí7Gò¾ÞîÙûºoNCÓûìr.br—n¹[dågº¢®Y_ïh5†¯Ê$rµ¹ozöû©îð…Rb·Ÿ°g™ Zé;öl¸¯Ù¯ Xžl{ö/·íµu†O®g‡Â;¿‘vmÛí›ãv¨‘I,Þ@†ŠÄï€5Göí½­ÙéØ ={B!›‡‡Æ*Ñc=Ô ’O×E¦`qzå0ø)å©WíBl.¾Í÷cLÚǤ]L´Ÿ®F-(!v~:î­Ý294ÇzOVHšëãÕ®~Ø¡íl"Û~`}s‡iÐ`M/4xQÐrÈ.îvÛãM^±?î›Ý=¹¸ŒHúˆ¤‹èÎ’ìDÖd²¥XtÒ¥d¦jw_ïÙвۚñÌónáHA•9‡7E¥ü‘ÄÌœóAy+íÿM3°·BK‰4Ómqy«í­Y]¢ò—(¿Ds·…À’¤óßò( ¤†@D¥~&¥Âx\xXåYŃç€ÈúI磰Á!Óʆfð[?ª| .óLU&n~ùÈúIãàªÔ æG‰­> ëLiÏý$ð±õ£¾/À&/ãÑOòY?©{ F¼Â¨ó£¸ÇÖÚ¾£U¢Ö'åŽ,ÿ<7 ºc>5óœôaØ“6Ϥ Þ4aØ=ÏE Ã>éAxNK~ñÇ£83è¯ùxä/ùx”0Àé‚O>=™÷ãôCÒ@ÄŠ„Î;eÒÒ寧´Hž  ø×"kúùy==ÅL âŠÿöªéqÛ¢·ú+x”‹µkJ–%5çí¡@äÐ"¹È½VaK®>vÛüèßí~I¶5^Ø"ÀFæ3ÙÇ÷Èì²$Ì„»ßƒ+¹Æ*\‘õ+S?ö—È8å쨌Ý#•³;¨rv‡UÆîÁÊÙZ»ï cÿŠÖPCéögõÚýÁM/º~>xñµöë'ÞÐÁi^_O¬¡ÇŒ'¡¬‡Ó¼JòÔ˜±û NÛ‡úLÛï©(ðŠYÉûE*ºç‘f‹4ƒD蓌W/¾‘~»ûD4 âR…ÖIrcÆý,—¤(ë*~ýWR”.‘\]5ÌÛy ‡,àoØ5AZû ‚d2ðv&‚'Ð!G \gç"8‚e#øcÉDðv&‚'`>‚;Ø\gç"8‚fûà©‹àì\Gàì<¹0¼‰à žà艋àì\'ãÓÀDðv&ÂKös*l@RsûWˆœ.×"Zc3qœ9Š”¡§Hú$>{[>öšI¬AÎ¥¹h¯B¼ûð=X. ™\„x¯òB¼ŸIæÀÎoëCoæwem>ªV43P)¦ Ì:hOue,­º$_¤ Fw™Ó§\®ô-Ú¹>Tî_ûÓñx^«Õb-GµÂÕÌfH_ºVˆ¥ƒG×íÅùG[_t—øW¥Ýi¢@Ǿlp¼Ï|ðÌßèÐõ‚nZ…5¨ƒ­ÈÇ”xÇ\*’Ë¢û--í–6u·9Tó/¸ÊÙÃM½¸ÚàœÈîRiQˆBb1NÁYÁtrT‡l¸’º}ÐMqµ ÞÎèþ¸DÆ bf(.@àv‰öKM-4ZSÿ3½O2Û¹Ofò¡7£¢6svÆŠ¬Ìp:ׄÆÜ.Ç.eðHíÈ‚^‡?šÉU÷0,|2þΣ´˜.ë2J·7Yñc4׎º1½’•.(´ó’±®q¶± ÃIH±ŽtkBüE£‰vÐ#ô=A·{Iµ+ÍLª!ý.&º/Vº‹áùÁ˜œp)í•n$ñ¥n>šk“÷ÎûÏ$‡:Ib÷išß(3Þ(šp<€‰Â0zd˜"3º²Õ¾ˆÝÁÔò$ØÖ³l[~1ÃZÎaräEQBÇ+ì»=©m‰ÿuù–CÃ>ÁÏñH”Ó*(@µµ^Äó¾´ß{ñœ·¢oá}¤G†ËÓ¨äÑgÙÚ6‰¢)ŸTÓŠ® Òª+w$½£…@˜Ý†šoú®«+q,·jaß(¿ã8Uk¹MÕî’²ÓZniUK:"ç‡CýLy鿢%~‰›©YySPú­Í˜LÍŒîâ¹ä^S/ÒJ|Z‰I«ÛçØcÞF©Ê¤)ÙÍêH’EÛŒ2$¦‘æÕˆ£­òJ—®UZòwd õ2. U‹L‘Û”;5ùRFÜ]úŸ‚Ê»^ = Õ®R±kØ0ht¯íøL[Ó5èÒ(b¡=˜-ÑÆ‹²Å¶»²êUñyö úöÁy¢–<Õåe-½.8>¥Âõtjt^ UÚQâw(WU‹C]=âKo'ÓéK,·ó¨èÒT% J-T2øBSÁ½¦,ØWúê¤Ì&îœ;ûûá%„’ö˜óœ8åwç¹pÕ3G¤r°}ÆÉÞº”{hrOõÑNtÊÊSBJ”@„@¦ÂÌèEnºaÖ£ AeP]nE÷\ÛÖYú–Rüøíüær¢ endstream endobj 298 0 obj << /Type /Page /Parent 756 0 R /Resources 303 0 R /Contents 304 0 R /Annots [ 299 0 R 300 0 R 301 0 R 302 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 299 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 323 660 340 674 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 300 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 362 660 421 674 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 301 0 obj << /Dest [ 252 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 332 523 349 537 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 302 0 obj << /Dest [ 497 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 329 361 355 375 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 303 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 304 0 obj << /Length 2940 /Filter /FlateDecode >> stream H‰”WÉŽãÈ…o†¾"uHÚ%wQ3ð¡×qÛ°§Ñ%`]>PdªE·Hj¸TµýCþM¿ˆH’Zªz0(@E23c/_ow›M |µÙ-|ß]¯×Êß}\{®†ZE±ë¥áZmªÅÝ›.VyÇÛ<Õå‹»Ÿî}õ¥[`¯çAP¾XŽO‹ÏúÞYú¡›êÿ8çúºÎŽ}‰ã›fÈ÷³B9ËÀÓìÁ¢C[zã,üowY^ÖÎrí®õǧ%õÓPòÅÐÉgñß÷ßÓ÷&oêB½+ʾljåükó·Å»ÍÂW¥Z¤©¯C8â»~©(ŒÜ4Š,]ª5‹Ýâõæ;Sw)ùO¾ùkrÓß4Gg™Â8xˆSºu"ü–°ÊsC2œ>îúíŨ»÷6â‘B׿-‰ÊúÎæß'ù€mkY–€F¬Ô>‘fP”E’ ß_» ‚Hš#QÍá¾¥ Q˜ƒàdGîÚ¬®ÖžŽ}o é^ê©¥zEN´”¦+Oÿ/t¥ÔÇì‹CJŒҹțÂl#nì/¾¥¿Yk^Š“ ךøO~ÇâwèÆnà²0öô?šÂ¨Îô}YÁÿ_SçÆÆy¥ZúnS,?S±ÁH½ƒÓø§2 `oȧ9â×ñ£×êx0êSÖ[=h9sãÀ²X¿oÕ=8*oª*Cí•:¶²Çä¦àðâ±P[*sÊϵyRÙa0p×ZÓŠ7›?Á`Ú7Á@Ei”(%¥@0É,L—·åZÊZuÔñ¸œã¸Ö±XQÞ;1"Wr S68ƒÍîJñ¢²j›“è¦ÁÝtŠn*Ñ%©¡nHN /Ì7Ö™êŒ áj¨ÙõŠO[wx»èž \Óö›7>êéÕ9à(ù«ö%Ù.X:ŽZò¯ö JZTã­}U¿À% •¢ñÙRñƒÑz"gLm¦@á65Ç2œ>5áPCgЍÁ Y²mEÑCÔU³“¼ØŠ³d.béÀ$Áõ ýzó.ŽÜx!ýÚgï…gŸ~ßóN?:•î'SO{Óš¹¥Æ¥)„T*—2À[JÛ3¨.”Ú5‡CóÔýp¢t=ëLH'Ú4¦'vîA“GçèN3óÞ9ú—Ç'™*­‚—?³|`-‡õwŠ'ñ¡5ÜO Ÿ]ž”\Œ¨Uø;µxë)%k«Eœà„²®¿(оm¾¥iŸÎy-]žšúêpP 1ñ•óÿS]eòé;@êc‚·¡²çxO™â;ìP[¡Æ?äò¯|”ÿTJò0бDwAó *êÕ›¿Ó` ‘qÃòß;Ô&¯6cýàðŠ5HÌþZ7bÀ“ì9PQ‚ÑðbÁ2˜6„ÔØóŠµ¾sÕ #አü³é©2à¹ÅPႤYÏ™°‡jkdMæ;à“™B©Ê¨é»+w…‡(nUÉs ¬ŽMÛgh-à›©;“\:.Ò­"}iGÀ ƒ¬0%F8eÇ@E•iáp¤c@cénÍÈÚ3¾S\ÎÀ~™ã¨ž0†›ù‘LnÍøÊÊG{ܨ ¦ÏM¿ÂžbG µé‡"¤–‘ŸÌ£HÎ$…l*û=Mçw„Éó„€Ç2r"‹ô3Ëp'vã{'ôÆB.YÌ,\`ä¯%Íè2ϪFMt?œ7p(»jrF›%/]@îUý|(Lû2¥YrÆú¥Ò © ð‡áH…ƒ<GÊ“#N5Ñh” óä2šÊ‘LÙÄ|ïæyÜt×Sñ³ÞZvÎ"W$õZØ$/Ö…âÌÜCÊ}6³À‰eIÞx¸-²¤-äáÒ©&¶T󵺱‚‰n¨Ÿëëð“ —í@9¶¦ƒÌuò:r/s~~w”}»Âåà—'ô÷,¤Žý3²0{M NXËw‘RËZ QUA.î ‚),\ó§‰öNq&®mì%Ôû[¤ö4ô¶SlS²ÈPŸùgˆì”{в*±·¤öÑPë uavXHóÊìDæp'<‰VÕk=‡ƒixÛ®c˜Ù3­B×a‰]Qû"KWŒóê–sßT Z'·‡:»É^0ÄšNe‡®9é&vrE€“70å ï~2†.f:^VàË(Œˆ>ŸhD…ö­ì…QU/’ÌKçÇ D[Jd~èlN ûãý]0!210P?ÐT‰mïóY³r}¾øÙVˆ&ôƒ3uðÅ’0 '¹/&.fÑZ«·YŸ)' <Ì# ÝŸ»*&ßK̸ʈ„ú åÆëߘ Ò[[e=5Š=‚Ê.d›Áf?Þ1¸wÙpè¯?3Ɖ<’}hNp \‰Ã oÁAfKJÏtIѼ…hÖ‚šØÕ1ëKŒ]:É=×õ´³.èW޼QÒçN—tœN¸²óùü88O­X-h«Y;“€8u›Ü]´–?%Áæ4+Š’Â†‰VÖS "sŒŠ³aQY—Jô¹³WÌdø–ÓP¢ìR.'(k˼±©H׺.ÿ+‹¦dÇã³”v/] ¯ì­¤Wp‡“¬FÔ¢ Äâf;~`êŽÏv~¢þ|K‹Ù _CÖ̉޽vȾ™!0EòêžÀ7 ò¾o5 "~·ÖÒÐe÷̈ì̽G(‚Ö”RNXy@ÊÙЄ 4wsÉT3]Œ¸¢ŒtEJH@‡Aänm•âÙÒ“=©¦˜ c’¡Fù”9àG¶Äö¦6ö•À ºÎKåŠìFk.J¦¶ƒ{wM«¶Cßã ¥NC~Ÿìe<2Siì×<Z×Þe.igŽPüBJ MÆÁžeˆj‰5g¥ºpâ t$Qu×3TïNJ‚ “ÁÆ0ЦÙöYy+#œôÏÔ,ÃÇ $¶b4;u%™[S“bd´º8¥»ˆîª²ë(„ :›n8´0ò6ŽíQ¾åüûÕ¡Œ$Ù$ò–oV|¨Y,‹Aö¨c×|=£ËYÄ…ÑÐ'V4‚WÏK™5nŒ[»÷ ;'ÖD¥~ÌZ{:I•ÆÜ…Œð4Æ7ÊE®0k„ÃÁ×À«:´aÖuCEé„Nž’ûFhT¯Š$ŠfYïËm)ןí@;»ô‹ˆÛC\ ž#€úýržb;‚ˆQ{‘çÒ>ÖB®m¡Ì7[Gn¨‰=e›ïÛ†¡ÎOl£GšÁlÜeÊu ^u^eK‡Ìn·B¨0Ï­Ÿˆ­—ŒÖKk‰ÞÖôO¶™Kj ´­èˆ):¬Î³Ú2> º’œD€µ)RO¹½=7÷Nô“š$ðØ_Í:g¦‘ž00šQþêHT¼=öô[¡)5(]áh†KÚ”]hd¡­.½¬–Dɤџ4úVãž7ªsTq¤÷ò"¡á'@žîáÑ›9L¡}¼Y}rˆ‹ÓÍ_iWJúyeí+ìÿ}WA‚@ ¼ûŠ}€š@ŒòàA‚ƒb¶ÀûvJX1z‚,íÒí´ÓD«Vf² M¬Û`+=-W2À®²q§,©`<ž‰þ‘Æþ®Õ“‡ŸÓ~eA0«½‡¥Ê̾z»ÛŽIxœÅ¥t—‚>?.®_ªÒd+aŠ9©ëG±É€»Ag¢–ž« \ëVJg˜RànÔ|V€”Ú`’1%ôšÇwøƒ¸þüö‘)bUš¬-ácJ\œ,Ku«ÔœŽ÷rŒ#!CØÂÉ“w¾lÞ šÇ endstream endobj 305 0 obj << /Type /Page /Parent 757 0 R /Resources 307 0 R /Contents 308 0 R /Annots [ 306 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 306 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 126 143 152 157 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 307 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 308 0 obj << /Length 3733 /Filter /FlateDecode >> stream H‰¼WÝŽÛÆF^é)æ’l-š3ÃáO€^ÔI´H ÃVÑ5â^p%jÅT+.$®·Î}_  ò }Í~gþ(ig´›- X$¿3çÿ|göÕbör±Œ³ÅzÆyÖ4 ËñÏ>6y–K)XU¨,¯e÷³—Ÿ[´XÎËÙ˯Þqvs˜A6Ï¡h9›»Ç‡Ù·É»tÎeV'ŸR‘g<Ùµwcã‹á~¹yÓ®X:yò§2S»t^âw¿n—ý.7Y“ܤœ öÕ}¿2_::)p¿œ—£ìeíq¼*UžH42BÅ5o u¬¡'DÞ®yTƒ 9Ë/㵘p„TŸY¨«¬TU\úMV—ð&˛ꂉm¤ŒjRÁƒKx ä% µÈD¯ḄcèŽ* ?±Pˆ&“e¼’…ÄÔÔ—ñ:Wb(*tS¯dQUðà^ÃK•VÝÆã•| Ÿæ¡Ê@UGæëónãS/Gp߉a|ê£î» ŒO5Œà¾a|ÊO’w9–ÏkV6D Žw«‰wíÆyõ)­2Eš~ ñœ±™•Uo¹ª@U õ*SGê•ðê…0êßcuBíð‘–¦HÖ)Ç€$ÛTAbW5\=!U—äœÕuHk\>z ÞìÌ -¤ØÕE!ш öh ˆª¦ Ê7Ffµ2Ö:í”z‹µ¨œŠQ1:—„RÞ¿¦[íÎ9™³~;¡G쯎ºç*\GÎú9&1utTÂ÷tLbêꨄïë˜ÄÔÙQ ßÛ1‰©»cèï ‹¸¤+Qà/_Äeƒe…ùpƒUœÖ!»"Ä`[ìÒƒmî#°K| ¶YÀ.åø‰|×%X¨ÖWåçæ«º@0±‹ŒÃ㙨{‘9Ò¹ÈÄ4¸‹LÜ_Ș{Q‰kðµŽhp‘ \;Ä4Ø‹F<¾c"ÜE"îƒoª˜{Qˆkð}í×/¸ÔÍ£E7uCŸjÁ}%ÃøT§î«ƧGpŸÁ0>å'Œ?ÑWX£¢©ž¿èÅ3½9µ)âGòHýô‡«(ö+¶JçʬBýÛ± °ByÔ¡•—x‚¢*\zi¨ÅJ¨ ‹G7BõíF]óQßzaÔ5^õmF]ÓQŸê úDšq Ãö-~Î&@e/_Ø‘ón øó±->ï—@ÌþT¼ðy·bç§òÏû=ï |ÞÑ,þ©E‚ç=ùÇìOM>ï¨?v~j³Hým{”X x? ûâF`W»0ìK]æÃ°Olvy Ã>-aøù|¯qÉåóù^þ,¾§¿ð$q¾ÿ¾]øÚé>&ð )êâÕ¯a{%³ñÓ½‡y–{8жQÜÒšÅ/ðZÄG 8Þ› Ĉ/l`‚Ã<1F#ðÓ1àáˆÇœQ~>Ã&8lÀSkÜ€›ðˆG 8îÖÀsDØÀ‡ xrŽFàY&bÀÃ޽£ü„† LpØÀSø)ÏqNÎõ¬»gÁ‹¬(Á‹%Ê-¥äŽŠx陎[.zÝßÜï»”C?xnÎS.ÀHUÆØ›w/Á~U"R0Fœж5"cÿÑ|èý6Éí0öÃξܵËX8…=‘Œç gAËÎozä9Ü–‚•Ð_+ENW…#Pz2:|\o?c Ï¼ÉÎþÀÀ©ñèÇv{Ï&;ÖýÓ>.»nelÜtlßîìûMZg5dªü—PêË-­»–ºýz;< #KçUV$bm¨ß™ŠŒ8ãpø »E¤s˜žÈáqÓØu?2üºñ…ñ¡»öc·ò¾?ôÛ-»†Û=à=û‰ÂËdÇØ°g¿O%UC©ÌØ[õð†¹7Ì¥ûÓâQ¦®Î3%§LÉ)Sò,SRgª dJF2¥L¦ä¥LùÝè6ïåL]]ÊTá3H'›ÚP3mûƵӡ¿1}»KéÿÏ\\¤Wê´¥íBªž*ZÙúY4ïHe“ñÄ äü®³*ÀhUö&% RW %ß›O{”¾Iíx7zÌŸ3Ì'OL¸ùÔTûç†uõ¿ ë±ê_ŸÚFù¶Q¦„ßô«Õ¶£>¯jÓææ »¾G°Œ.ï÷{Ó–ÝnÜÂ_+ŸRÞÐ ïÎA‡C·Òîë$%ûn +!ÙìÊM%Ù£ŒGfÿ-ŠÐà܆ÎÉdÔÃX(ãå9xæ¯6©ç¯2þVä/<Õ¹§âH Ök‡´ß¶¼^Y±/~g­½£µqôk–èºJÖÚI‘sã¤Î„E%À@Rk—Ti\Ç.–úÜŠ}HPd­ì¦;ŒX;¬ß™÷»ýpCâRŠBB(:÷:ó«“l7z–®­–tùËñÆ1m\Á@;²M{`É <4hjA51YG_#Dòã Ño†}ÿ=IñdØíöCjI ¥Å½ôŒKoÏ®êU¿ï–:†C¿[vZí¶=ŒìV7GIÂÉ2Ñ"«4ix|¬3r­]*M =ºtŠZE'4xiw+­÷"+@Z€B´ò59VÕÁ‰o¬i[Ï×5 ÓŽý” Ú›ø£ ÇM•—xRú|{Ýï42l öû^?Sˆ kÙN !sýùZ‹À!Ítô¼Ó_Hb|þ­å]i›Ú¥Û»-‰ÞÒè’~§³ªÐ|ʚϴVvh`‘¼u|»Ñœ6>´G<·rˆRœ0Ý C€[ó¶Ö£áÓSFΰ¥ß‰-çMrºòMÉûÿÔWþ®†X smÂßIk_ç¦ÑuΩWºéëÞˆíÌ©3%Öål›½ýl…—TÕ"i·æ50_Å¢öó…ùëR¯¹wªÛ ¶v-@[úêî W}¸i†ùÛä/ÃØª T›}çÖ’efv[ˆ`°Ùõ^0k-ŒV;€òÜm컈`1 ýÒˆ·[vxèÇ¥“BGßÝC+õD Î1lÍÍÈñ±¹ÞvMж'ü.f¬_»Û—æ!’²ÎƹÒ8'Ã#e²ôÞéͱ¬´£½‹ýв±½c#6-“ÓÍÅý%×Ömß’çÿ%¼JvÛ†è½_ÁC2±äEFO)’½m€.7Z¦k!²dˆrô7Òî›…´¼$½X”¥‘³¼÷†¤ü)¤½þº)ýg²·Í:ØL¬âþ/{@±HÊ“}€ùVä//kI¼1/|©4p|ÌŒòáïÞ™68g~L0'"Jè]YÃsÚ—G )RÔ`§Úi-BÈ…¼OÂë^ÀKŠrFEÉå!¹¢+%ITc/m©Þ¨11œ­5ÞÐ^+{ù‰Šæ¤£ÛcuE;MϵÏQiªÚjXy˜ƒ© ²Ôb…Ý / L½$(àS}#u‡¬èj»íÊ›ûfW¬ïìÒÇÃìÅÛùÝ–¢Oœut¬Xï¡^$B^f£—Í^èfp׋­Åô¼s:/sÈù×ñHÙ6¯hÙQ¬‘VÈ=+B GaÂ}–Q-f2ÐÅòžˆ¾Ö6O ða,À#·4ˆ’^í[뛥\þ8RV_Ó‹Qø81Ó?Öò؆ DúifΫ k«#àÛÁ¹‚cH=ÛÝ[ËÝXðïÃ`¤ýÚIóš'JEžÈK±ók´¾¬£C@I}.û]7ž$˺D¶‰ÖÁ†™qrκ“åÒügO]k£ß”Þ“{ú0$)"Ô|³Q(êJ] ÍLG;R{ÍQÄ› ä_GTfÎr ‘°æÌy²Ò EÊNÓäžÕ²pÛ`ñ•Ê¥±çjš5ÞºeXÊIúi'Êxl½QœgØýb#÷ú´Ô?{%›KÉN“ª¿EŠ_ϼE‹.ÕØ@]‡£ÿä}õ,Ý>‹Ý>“¨Y‘ Š}YäˆKåÊY‚½éŠkzÁ€5OVMKªC9Šî¬÷„{WuÓIõ[#¢•`íÂfP¨,˜ÁׇYŸ÷qk‹Çm”`Ìè±êc°(±óâÕc›*Mh¾ñMµ ÚÈ.œ%_…ÑëæŽ±˜=¥¡Ì4u°Œ˜ ¸NÇ<œàÀ#‚kµfÔÞÚåœÔtú+¹ò: A´ 3ƒÈ›UÌ k¥v ¬-+?Œ*#WIMâ1›¼¡T3¸Oaw™M®’ë4ÌÑFŸ¢Ä3³¤Ý ˜8 ÷f<çJ>ÓXáwª˜©Ð%¤6Ñ7)bWÛEEJÍÉ«Œ©õ¬WÑÖˆ=ȬM•ž$Å #Ú³>×r"˜’NìXrMà=O{:Ï_IÀIñ¸º vA¾Úp€æ'1*·jЍ§éÅUYkÎI- ÛX(¬{\í‘H”Â…úôæÉU•±¢f"~ ˆ`eŸ·÷ïþ lUù endstream endobj 309 0 obj << /Type /Page /Parent 757 0 R /Resources 316 0 R /Contents 317 0 R /Annots [ 310 0 R 311 0 R 312 0 R 313 0 R 314 0 R 315 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 310 0 obj << /Dest [ 94 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 443 706 460 720 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 311 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 404 656 421 670 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 312 0 obj << /Dest [ 233 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 356 579 382 593 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 313 0 obj << /Dest [ 309 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 406 557 465 571 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 314 0 obj << /Dest [ 309 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 420 291 480 305 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 315 0 obj << /Dest [ 109 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 170 88 196 102 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 316 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 317 0 obj << /Length 6512 /Filter /FlateDecode >> stream H‰¤WÛŽÛÈE^õýH‡Ý¼5äa½Y 6a ˆ½q4e1«‘šÁ~Q~3§úFIÃÒÌÂ`Äæ)VW×íT¿]Ìî %¤XlfR&u]‹î±N“4Ë”¨ò"IuV‹ÅÃìîǾ«Þˆ¥¢_ÍîÞ’â[?ƒlšBÑj6÷O³GŸâ¹Ìý«4‘Ñ~yZ|¾èN«í‡åZÄs•F‹!0&‘¡‰ç%~›åªÝÇó:©£o±$H¼?µkû¦¡/¾Å¯”¥L£OͪۯÅOëvh»½ˆÿ³øûì§ÅLŠVÌ´NŠ:ÃAd"U.ò,Otž XZ)qlf›ÙÛÅ d:©s¥éüt6YÓ1S{À»C<×0'ÄWÑ1Îñ¿…Ui’‘áôrÓÿÁu÷Îy‡û¦îý»R×½ Bãö]lŠ¢mÛݱ]-wbß MÙäÊDÇêªê#qßìº'T>š+Ôˆñž–a;=n§­ÿþ‰MK%%ÕÒ4t"‡ø¶bª€z_/®‡a›!ëÎÉ:T™åÊ í~ÛRë#?߃ýÐðU'vÝÞ0»åwÔÝðdûIÓì)”Š7b ”†0í„ÑP0í£i†Y¢iônNGÿí~Ó¹Qãø°$!ŽÓê`®Kû…'Rb¦Ïw_îÌ8)£_b‰«ˆÍàëdÇ[ Чm³^‡%#ßG'ÏÇ0Ó)ÿÄ·ßvO{JÑwJEc  N=y4"›“Ùy$õŸž©i2RfJr’ƶ -±ÈÉ]iíÑì¬ýÁš’y…1»¼…kXp+Ò†«Zò‘| ë¡Bó8†ÙëdŸ„ÇLž†CNÂcMÃ!&á1zÓppý$<úeÆMôv»•:‘ód1»NUÚm5¶[×üßþÓ­TN?ÐxÝ AS…Sïe‰Î¯J˜§Š¤8S_˜Á¦ëÂ]+%uV™V¸“FïbºR´q™›“–ž¦JÊ‘¯PªgÝõ#(Û|ÚÇ¥¹ÚÕÑÞ6›õ•ñ •Õ8¹æ%)Ü¥´§›”è¯ VxïfQ¸ú˜F‡˜öÀz%61žˆ+,uô1¦ÞÞ‰o[+bå…¹ÞÈègbå†fÚcœ$xg|G†8c>¨êú:‡Y‰ÆœÄ˜É¬DHfNbÌgV"¤4'1f5'ľE¼˜ÝjÎw¯’IE×WPJ_uaàp!àpîçpï|®gð—_’ãÍÔöZG#VEšMtt7Á8üÆÃið̨›` a‚amáä4ø …ÕÎh¯Á§§ÁO¬BÒ0ÂÁÚÒŠÓà'VCH<6|¾è‹Ä¼føixŒô4Â8 1š†C&áÑ»ÓppÝ$<úe~=çQ­¯gxõ †W©Nò’\“‚fÍ-ͪOµ¿<*eµ"_\<íOç »vhÝz¢Ö˜+ìÊý$‰¶Ľ õ}þN5ÏÚìn$CVb 'ñB·Lñ…οë~˜bDÑ9OS êÃ}A0xp‡û’`ðPî‹‚Áƒëü¶ãóº"Ç¿‡¦«,Íyšrø šâ4xš5p4Åh4ÅÚ0†“ÑàiŠÕ0|ZC )^CH Fƒ§)ÖcÒLk4ÅÚ0¦£ÁÓ«aL<.l¾äu}‘˜W4ÅÀ>ÒìÂÈÀ>FìÀÀÞ»ì\ÇÀÞ/ üjšÊ5\žÅëi*{Me ?\&ÔW(•"êõ¨^[õ¿Ð Lq86=vÈÁ0óW¶S\ƒXލ’$}Ö¨¥HäÏ¼Ä ÍJKx´¨¿ƒ%r!­J–%8<¤#‡û|dðî3’ÁCJr¸ÏI®gð_i8Ýàõ,A±’i9Ñ,Kxœg Vƒc‰3 Kpø|I/óš%¦á1ÒÓpã$<Æh˜„GïNÃÁu“ðè—Iøõ,Q"i%_Ïù+XBBk®Êʨ¯ÓÊk'ºpÚ•Ó.qA³Ðæñ¨A_p©À]£7HDäós@åJâ]J¥¦Ë{#ÔĬ%¹÷ Ò‘Ž1ò(jè¤%}UQkd¾m­ý‚4Eû9Éh¨œkX·¡• B× )]‡€œ“SH6^Âç+RŽ—ðYÇJ„Äã%|î±!ýX‰¡TðEU|—9¦€Š§baàp„ÿ³^mKnãFôWðH¦,™àL*»µµyÙJ¥oùRû¢s<*Ë’"rfÖŸÆ­AiúHšLì!u€ û àœ„ÇœÃð|€sè~!ðMoo^bÅ­¦;l°üŒ#†hʼnY1``+†{Hé ÑŠ!CJ¸ÌÀVŒX€!Z1ŒCÌÀV ÷d¢C†$<¤‡¤mÌ©%ÍÅ ÀóLKð,<Ï‘Ï ÀóèJð,t<‹_oÅ5=¦»ÞŠ›5lDßT«}á6gÅ¥gÿ¨öù¢!¿Ûù?#i­§uxßæÖ^UçߨwóÏ ’Ž!Úq¡zÕ伦ׯ±š”bzlg}"< à¬P„G‰œ5Šð(R€sè~)ð… |õÛ¨KÒ[m#àgl1DÛH È6ÛÜCJ'`ˆ¶RÂe¶ ÌÀ’ Ñ6`’hd¶ ¸‡$+Àm2$á!=D½è#ažÚ† §LË0§Q„SŽd˜ Â)º2Ì¡á¾Þ6JúEÕõ¶Ñ¾È6è.JlŸþ_¶QÑJÑ6àˆ ÕËÎmèÿjeC«éç¶Á8µ›ZcuCÐ)žÝ¢#ÁëTsu¨¹¤”/CÞ¸±îÏòZeßiE÷J’{²rºuoT;-¹qo<2 ÙŽþÝ¿>¸1Óú1ÒÙºÜÑ}±o›;÷qºpKîÝH{wýv|õ­wêÎ ñd›×îîÿiÉÚ0ÿÆ3ÿÈ+·"gÈ-»Æ»œ•6SriÓœpþ>ÖKk%®ªi¯>û6äöÅšŽ{ýDµ}øì„~ý`w7&R!sì³ÃwÿË*"O÷TˢͰ·’®j2Úg1ûZ&«òùè¼S¸Sågx)—,åÐ*­iE%r¤om þ•"ÔÛŠJ®Q»új|·…cѹVÙz@îÜÿõÙ…¶(~ó—™aY±ûW³Ò̤\¥u¡ŸétôZm|m_›ã×úøµ:~-_µ{5…{)NýüLßR¶ý²5U󊾥ììWiûŒû¾$â¸/ ¡ï˜1€¾1ľânʄӑL%ö!ôï—EßY!öˆ!öoiÕ¹B_B_qº@³LÓ ûÄûŠs¸)š3gˆ}d}Æ íà\¦c߀.áé>Ð×…©¸o©OÅ.ÂIÉ2Ì2á¤!fˆpÊž sèE8ÅE„Û-¡ÜÚ¾EÓ·lIõ§.ê†Ëm—ÊmíëÕÏ?rÛhëÛ?ÄxZ ûeßúð¨[ê€Ê–¶×ÐEœÑ7‰¾ì<½«²½1YáëºóAõh{/ëþîãÖu]þ§AUËe鯶Öoì4*°¹8Í7±_GïrÛL¸Ÿ¿Þû¡¡£#ަ©‰Žú(o×äÄUvG®IptZ¤©Î¦Á§‘uuÇ‚#X_PMÉvþÏHmo­§uxß’2Fÿþ,—Æ?X»,é:f_IsZ}jÚ6GUôB8‚3G\(–´BiÚWudôÅ_˜»Àù: <Þ€spoÀùJ <Þ €sè~)ðÚ¾{‰KUôñVtØ¥~Æ¥Ct©Ä€\ 0°KÁ=¤t†èR!%\f`— , À] Æ!‰Ff`—‚{H² Ñ¥ CÒCÒKa:èR2<Ï´ÏÒ(ÀóIð,<®ÏB'Àó¸ðõ.UZÏèºë]ªºÂ¥ª¢Y6}–Zú¶èئ*“è§ÿœëÒ:Åþ0Œ´BM³¨©{È©Êg‡AuËe!Ô"æs‹.G\(Vº¡ˆý—Ð䉯`—8ËáQgA"<*à,I„GMœCðK/mà«—¸„&¥»DÀϸbˆ.‘Kv ¸‡”NÀ]2¤„Ë ì˜%¢KÀ8$ÑÈ ìpIV€!ºdHÂCzˆz©Ž„yê2œ2-ÜFN9’aN€§èÊ0‡N„S\Døz—( rß¾ºÞ%ê+\B·TîKú,, ½¬gôMÏô$=G¯©!¡jaÜ%¤'‡ø”»c¿É*hM]fš†<䣕u©—]VØÇ¶!wÈ>¨Ç\k*-«¼Î6ÔÉ´™rpÑRʳw¹.ˆæ­~ÉC_Tú%~ËIlUÏån‡ÈkŽû܃’¦à–‘”G°¸Ðˆ¤/8‚%†F$•¡ç ¿îRgß½ÂquOÁê¡á8&Á!ŽáGpˆ=€cà¢àr_Šw¹4ý lÖ&ˆö‚\6ÀØdÑüà±i>°X0?:,\?%PžüÎOçGwÅóYòüà­ðüI#âüè¬pý$"y~ðU8?© ä?Ê£ž‹°>M¾„¦ÔŠ('NBSZD”ƒ.¡)¤"ʓР½ÚLµÑËVýõfÚ¼¤åÒöüv@_¸–ËyiéÙ?ª}¾°~µóƼ&?[Oëð¾%K3™êüu_þA( ´RÆà€ õÉf¡×Õkü 3Ëº×ØβDx&ÀYšâ8ËáQ çÈüRà+øö%Ö@"ßÇÞð3怢;$d€ýî!¥0D‡€ )á2{f`I†è0I42ûÜC’`ˆN’ð¢^š#ažš… §LËðY¯–ݶa xÏWðH•"š¶dz(P¤è­@ ¸)r‘mÆQ-K†þ‘äƒ;KŠTb“¢=8f8ä÷5›ø4NÂcަaŸ€IxŒî4ìC7 q™„ß?4RÜ‘ˆÐ»‡FúWC#Uq"góðиù_C“Ð+ÂS#xâ õZàßIꔋ–z=6<ž!L*\ÝA|PÃÿƒ†^àñƒSË‘!¤–†ŸfðjôÁ·aˆÁã§¶AßɆŸfðjfpbbðx€Á©u0^O #>ÍàÕ<胗¤ƒÇ Níƒ ¾U #>Íðþ\¥¤N—¦éÝZ¦Içv¯)êõÔ7§š²Û-NP抪ÓÍ©¡ç*ÄIQ+ådÕ„ÜìKkkÈVUì§ñoœ±—û endstream endobj 318 0 obj << /Type /Page /Parent 757 0 R /Resources 323 0 R /Contents 324 0 R /Annots [ 319 0 R 320 0 R 321 0 R 322 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 319 0 obj << /Dest [ 151 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 126 678 153 692 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 320 0 obj << /Dest [ 318 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 309 510 369 524 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 321 0 obj << /Dest [ 318 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 167 266 226 280 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 322 0 obj << /Dest [ 333 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 317 161 343 175 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 323 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 324 0 obj << /Length 4973 /Filter /FlateDecode >> stream H‰¬WÝ’Û¶Þê)pIv¼\ H0½Šã8m'i2¶ÜfêôB+q½l´¢*RÞñs$ïÐ×ìùàJ€v=îìÌŠä>|?ß^.×Ë%g[Þ.Š"kš†åø››<Ë…à¬.e–+Ѱåýâú›A²õ ‡ålX/®¿{[°Ãcó†Ö‹+ûø°xŸ¼M¯ ‘©äSÊó¬Hv«ýØaú²?®ï~ZmXzÅóä/)ÆLiÈØ¦W~·«u·K¯š¬I>¤Aì»c·1_ZšÉ1¿EQyò¶]÷» ûvÓ]¿cé¿–]|»\¬c ¥2ÙRd/Y)ÊL•%ƒ§5g‡vq»x¹¼¡²¦äŠâ§ØŠ†ÂÌM€ßôûôJÁ9DˆYÉ!-ñ¿ƒWy&Èqúx—ÒÿÑ8uýzÊx™ ¬µ|E¦Ö‹äéòß³zÀ·ÆÀ&¡¥^tz¢•§,3Ê0,aý¢É*$‘V.“e±Jtº_P’(ÍœÏF¬³éhÝä‰,ò+XÏUήØ×'H©:Oþ+²š1öÓêCJ‹´© y¥piž2,y&sþÙ ®ó&ãyÕØ çÊI™hܱ]H‰K÷+ä¸J¶lo6p¼kõ³‰ô{J{•\ã~¾3oº‘uë6f$±M%H~›Lš lìÏ òBÇMŸnµ#ßÇ„ƒù̘ Ýô7×¯Ø ÑW%Ï__ge]¥&%¢ñ9iLNœ›5Öéô&!®åškð'c iûMøAo®ãvìÞ>tãZ»ûÝÌÕy¬‘GèÎÛ4t].‹|jØyõŒ²z $ëÕþu<¼Ôi“¸Êä4nsá" GÍáuJ{}¥ÿïS›çýÜm»ñ±V$¾†C«GŒì—$•@l.™´æ«ñùŠWYYûü™¬I·ƒ¤v|h׺Uð¬ÌÊ_R¶BÝ&÷mÄu&ªÓ€ß'ÿ@¿Jî±kPÀ~£km®¦ÀÅ|ëÖnáz »Ý­n¶í†x«7a­š!Õ‰˜ËQÆwÚ©7º‰Öô•>¾¢Úlµzì­}©dlõžoˆ™4¬X«‘wû)-Ô“ª'Òò>¡%_õ»‰ÙØ]‡vØë¶\'k_€¶Û­ö±6G&è&9~[š¤I·Bí|ˆ¨†äö4ê€PÈÉmO½ERëäz½ÜJ/·e?ÿøÆD´ÝêQ·£)!6äåдC‘ ±°)þÞµíƒ'c=Ö?°¤¯¨|@/¦€‚AtÆéaeܼoÙÊ| º¥{Ãq·m‡Aw ÐyªËäšõ5²Ñ±Úžz_“˜9 æêvìá®›ö3[›<Ø ìšamš¡p®›f^¯[Æý~k¾ÞO>š·ÝˆÄëµgaf×|2#F³ÆÔ{–®7éÝ.¨Ý}·5~š˜¶ÓzŸRA~¸dDèi(o²}N êƒT½;S=C‰9›á˜vy‡D´»u¿évfŠùÞî†#øîm®ÌöÚ¯Ö¿ÚUƹºí–Ý´ìøÃD‡Ã†­ûûýjœ¶H‡ÍŽvE®ú›ã¯Ì@³ðªÛá“^ý¾Ýl¶Î¡:áab$ûm¸·+Œ¿³_[GXBoúÖ}œ<å’7É(ÎHã¡ßnÛÀŽ÷`bTºýkTN²O•Æ1ô4lu0¯… à%HÝn²3±Ðò¥¸“/îYÍuûýs7Œý¡[¯¶d¨¾:•ŽZžiîÏW"ë…ïb•‹´šNž=6åGÄI-^d\Òêô©D‡½í°ïíYt`ÇAwfZ“–cŽÁ›ö@ûÌTT—ò뛡7íO%G"Z…c«fˆ¥F~Òe§3ãôDþÝöl´’Ôo4¿fËœ%Rf¼ð"Zˆ™u»Ûþo-T°HàÓ‰Ñl.Cg;I·b4¢÷ý¦ÝÎΉ2y•Òöfÿ9ZÖë¤y2ê±Ó7Óé†=ø¦x×? º+Ý™ASbn]Ë¿_^‘ryrÐ)=SôQ—Ú¼DuþtªÏ‚8ðÿÈ+m¹Ô&ÑÅ“nPÚèhZ8)¶ë÷TK„DïlBW7ýG/]VnuW*’ãô›æ…+•UòT–Ï yÄ9÷¤ßnØ©7¯‘„R_I¸¾K5(Õq:vZ&Ðc¾:c¢:ׇõé± ÛCj• ΪUéîCbvZ·Ì£sN½é%(VãUä•}­¿ÊǯåãWñø•?~-ô«ÊõKÎNŠÌq»h”Žazô1¨&˹¾5¼’3îઓJEZ4{r7ÊRâ:Ø È}‰EwœÙMçi³J9¯RVF4èW\Æ-oJ9·PŠGx‰ó¶FÌ/A¶ü2®¸Ç’:YA¡Ê:n7BQ_ÂQ€¦¾°‚À%²"jA .á<—VP»<^)Â~ Y5«4V¨‹G+”›­ŠW²Ä‰'W—q•Ë 1”5ØTÆ+YÖt‡¹„+xp©Ò’ƒmE¼’Oá~? nq\ºNÉ„=“ð£aö ÃŽAØW/ »ÔaŸ— ürùD»-TV8·Që²â®ÝÖ'úø>yù)%[ý‹§°É9™Ÿ‹ªÎJ^Á=@ÌÌ—Ò™/¦n®»l£”y¨rÄü3Õj¢Ï)‚?‘xl$¾¡Ä?;Ñ;¶Ž,&üÂÁ"fÁ,¼…ØÁ"bÁ,¢>ørF,؃CÔ‚/xØ‚;Ä-8JD,XáæÁ“&lÁ {ÔO«ˆ+ÜQ žx1>X¾ f}*@ž AØW: »2a_£0ì „}vðK]öy ÂÏ^ì? y|¾ðò篬2UÕÌãFˆ*[óþŠƒ·¶þºÛ¥Wtý …˜H߆‘äÐÂ\£Ì³E^ª_~f{ó­7?CZÂÇnì¦÷6Ê óÆÍO–)kè´ë Qq—͹²8"EG8²DG¸šEG<ÑF%Žâ\ñ/Ñ/)!*®_Üm”nƒàn«Äp»W"¸Û,1Üî–îRÁŸJ|N‰—Ÿ£_¨UQª¸~MøýŠY°úå-Äô+bÁéWÔ_Έ«_Q ¾àa N¿â%"¬~EóàI¶àô+ꃧUĂկ¨O¼,_ø#bžêWö•îŒAØ×( »aŸÝ0ìR„}^‚ðóõ J!ʦ|¾~‰gè—Èe&…äÚ<Ê#œ~)§_ÜXŸˆâZJ§@\+JXmÞ²,7†« óÙˆŽx¢{¡Ì(–úÙUÆE\5°cg¶ì ÃŽز3 ;vF`ËÎ0ìR†ŸÊwN„þúj!°žŒ‹…/hEd¾• 7?¦áùN(bëû†ç[™ˆÍ÷5Îw"ïHžo%"¿gIp¾ˆØúžFáùVbó=Ï"õ÷ô˜ÑðT‚è¼´tV¸st^–:Kú9:Oi%ì§ã}¾&ð<ûéUÓÛ8rDïù}$KÃ&)QBC²É"@€ì`Ç—s¡$ÚbF"6eeò7vð¾ªþ¢=,Û‹9X&YÝUÝU¯ÞëÖ+ý~I(ßs¥YW`ÑuÅÞ«è½Üïzc½k¾±lp¡›J‘m»ä?)¼“nðÁ\SA†F­ 3œk1Ãö±²Â€˜FaÀü¥!P….¿G/t§Z Á¶&Ù=l{®d÷Ðì¼’ÝÃW°‡Ì ö·ŸSâ«ß#ºd0ŠÊáì¯H‡äÁkGô ‰‡à!¨‡¸†XNÁƒ×ÑC,ø¼‡  ²‡ Áƒ×14󂊈kˆ°@4ÏD,ð< f!€çi±IæDó|€@ãâ ‚YàY^ Zt>@4ÏxËþœ qxDƒkîuÿ¬K4n¹AW[Zœ„µŠ|¸²ÿcûxšt»\'ªXä)|”I¶Tê§ÓÁ¾,pàÆ?ƒ1y2¦‹ú¯'Ù:iÔÇOvÐ~ÏÓŒHµÞ™Þ~>Ùá×Ñ ?÷ö©µßûN]j;rÿÅ.bTêsnkòÈî¡ÿWsûËΨTã:“üYeŸSØ×ÉK↨O=nù~Þ.6ˬÂåÅÝY²l퉛ž( ÷ÇÖ¨þtÀz°’Q=ôùïøn‘ÜŽíþ¨Nd9¨ñHßx7‡ëåÔîëtA¤ŽÌäø×¨} ÈiÄ×To±Õ?`Vc}=¦ô©I R‡ñŠ›Qžêι=(skGÄÛµ£Qmg·™ã—zåïI:…ÔNzvébƒø_Ó\Sš…(ïÔV·Nj¼e®f²]RÖîN"(O ^yòÀ¿üN?w`·c­v¤}Vû8™Ürì–ýw.Ž[ä¥áUõÖ‰:õ¼ØGï¼°'ú9©coFиÑìùV‡HvGúÀ&›¶û?ZyÖ!]ôHé,"ǵR½Û0Ð5àW#7dì§Ö=?õüùÜv©æ™¼ Ÿ>äêPÛ±öŸ²ÿ òQ$ÀüÕ4À²Æ¾È»¹Òœrƒ¡7ÍúüÙ¾œœ×öÉ/öƒ]Î^Ž[¤õaÔŽð´u_8^?Ý ÑoœCÙ[cmi[Kââùq‡ž(‰Çö‘YáHá7ÉâÔ<ñÞÐ'u°îA¡`ã°I ,ü† ÉÜ£-ºæF§&ž†ó\b8íyÜ÷ÝX·á^2õ¹±Â# f%‰ºxZüX{Wzˆ°JÀIÎ41ÇÊJÛÂôr§v×Q‘µáÏ5=ÒŸ…FÝ¢µ³‚% CôQí¹M©ÿo­œJ~hÏ;?ÅàÇDçëpbtÁ# ©·Ü(Üh jôD¡ìãIq;xg7 ®æ"ƒQËäpÜ$~9Ï*«}a]†~ùÔ Û‡_)ÃÄ^ìäGFJKj%Wîå¡n ¾IžÝQÉ R—ÞZFÚŒÇô/†}²]è ócòkšóz9båôn©00w(ñæ(mg€\ð†&´xí99s0½2[7gKüõÐü ¨$Žfd*j–\™csDÞ_‡½ƒÞ¾?¸'ʦ¹âTwϸÜõ—ÿ9ª—ÊÕ~3iÚbR½õØØ³±&˜ªûþêž÷ tô‡© ‡Ûc}寶ˆÝ„“ÏàÜ=¦ô­v¾):!Þw¶ÏIïjó÷û?ü6<:”  endstream endobj 325 0 obj << /Type /Page /Parent 757 0 R /Resources 331 0 R /Contents 332 0 R /Annots [ 326 0 R 327 0 R 328 0 R 329 0 R 330 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 326 0 obj << /Dest [ 194 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 497 706 523 720 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 327 0 obj << /Dest [ 242 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 233 425 259 439 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 328 0 obj << /Dest [ 252 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 428 284 445 298 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 329 0 obj << /Dest [ 270 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 250 242 268 256 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 330 0 obj << /Dest [ 252 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 480 242 497 256 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 331 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 332 0 obj << /Length 3224 /Filter /FlateDecode >> stream H‰œWËrÛÈ­$;~E/²h¤DOŒW²ìqMœª(S³gM¡-Íšâ$Ÿûò›¹/€¤(ÉNJUÙ¸è¾sÏ=ýv9¹\.«åjÇáb±PüÉ×EFiš¨y–‡Q‘.Ôr3¹¼îsUõd©¾š\~¸Õ}?Û(‚ªÉtøºŸü¬oƒiœ†…þgDa¬Ûrë-¼¾t»ª¹)kL“Hÿ€ < ÐÄ›`:ƒÿݪ¬lLáBß1>Rv¶æƒo&ð.üãYé[S¹¶Vïkë­kUðåŸ&ï—“XY5)Š0_¤HÆI¦²4 ‹,Sàéªø¶àǜЌ•ox²J0Ë 3 ;Áùñ"œAñäL—˜Å™¦t_`’0ÍIrdQ…òžÎ‘Îãh »GE¤¦ê ƒJðQQÌ#ýŸ4œ+¥nÊû1AŠïA ‡4K†ó$Ì£äNðä p•J•Îçì|mûj×÷¦'O:·6'^}|ÌÂ\_+Ûª{K7×]¹VÞt›><:¦HÆcâx8&–f»R÷@U;'AufÅà4A‚;¬=øª+£îœ{PòØîÈ%ð&‡MÀ›^U¼}k:U('¿W„hõ˜Â{¼KÙ>¨Ç²Uìz½Û¬OªÿÝ ê—Ë8bd'‹0ÌÈï“£nZ6v,4¿3eË'Ù-$ì¿í'úïmíªÝÆ´ÞÔêæ:Þeã§µ:ãØªÜ Õ á!‚ý«üòˆèκô¥º“EŠ)ƒ¹ÍPÂòxÓbÊØÍZÅZ3‚VDÅ»0AûUÚ8pC•=ÇÇ UtÝ“Š1‚B¦Íæï„qUh¤© |ä1Ù>a×ø¢ø‰[Ÿ­Ý>MþL’Â@©”ã³aJ{sñ„þ‘8ÈùŒ€ži;”âР3ý·`ŠÏþªâ„ Z]¸†j3#Nj·+Þ‹ÂÅÕf ¤fV2†›p¸ØzÒ…\é„/°Ò–\kÙ·òQž—v]Þ­”´£–„pjµêÜF Þmν5o`bt ®¨•€-˜èùi±Ï¦*µ¾Y¯Ü¼éÆ4çìiΞÒÄJµ*ÿ€ã‡ó/€ˆÈ­\×ã>¾ø[%´)ƒ9Õ6;â¤Æ›ã¤šx~¥™*‚†;†”¥Ö¸#¼ ¾äÉf²`¹è•yA#œ'€”³´ÉµÚJð]€«@yv»lÒTKõ¨MƽÝÀs…J{g=δ—óD)éúœcl çñ*ÀÄïù# …-$[ow7/aö,¯å =* 5e!Häw+¿q,¹UëÇÖò )Ÿ"+ÓžÞmSÿäƒÅ¡5”2ekê9ì5@ý4ŒîÅ3â*bVD0;ø" jíOss-Qu†µË  ¼Dñ—Ê —,WüOè|-¢WŽS{ë›Ã¸Ì ö}ãvk‘ ÐÙå¾F{áÏñ÷“÷iô=ð³ù&’‡ü b½âÑwèÝ`Sy»Ò; Ô}ieR%ì4ÏÀ†‡ä°é8·Ë ˵659#U쾃߾tæ—é=+³¶¶úJÄa±HnØÞ?õ0À–êjàD¾š\]<Ÿ¤xÈÐÐ}„öüÆÜ É5¢¹m7ÀË#TB¸õïñv3Óï¹P¿`b¼8vfàPá8,vÔ2Ä9 eìê¨pO<ƒq#³¬ü®\Ck&•I„tM…fúýx=å«ÖÐTSì—ÿ£¯Î`·’•@²6HOf@’Ç:K ª“|qÔA×·ò³bš hË&Ø‚%5|õbTP’y~§@jä£VÉ^Ñ/˜î›ÛË„G=ä¿uCú Wn×ÖÐ@·îŸ•lZ¨o°Î3=X6ÎO·rHôý=›Àpn½“ÅáÊqÖ¿g·!P² n`T°§ÙËͦÇÀEÛãU–hœfÏØsΨg“ÍX‰ l7¢û‡‹¥¶C¡ðÅ£‹±¸HÊ KÀêºZ”!‰Ðq­q¡;†4j¾CÒØ6Õ`àâo/ÿ’¦ªÃPûÝ =¤zzœë[ÒoO€è{îq×®Éì(º=©+ãåom¬Lï‡A2ŒlèìÂT°3TRJ“Ñ©XPY› GhH'¹~ÞË È1|vôëö,PCèö±„¯k[… _fã CŸ ÀqBAàµ+ÅÍ»âƒÏ_÷t®˜í·ámàꉋt(Z" Ř24R®ó»ƒ·Ï¢ÿâ-[J8w>m.}¢x÷.ŸEEVaw”VÂÐ=ãJŠ–eïä6²oNï´ûrܽjn€]¿AÀ=¨ n„Ã'Í4U Èü&<䟅«¶ƒ†–êÜßdBý÷8ÛŠå!ÕöXB=` ¾N}K 0xžJ§ó~y½UžA%¶Ê1h@a‰=.n¶T£Í¡Ü÷„zÁï0ƒ`ã:ZÃW cöé­`Ka±ô÷Éb×HìKöc+{âôyº?ÍËfàßãh/E鬜 ÉFò…XK&&r}B.‘ åŸ_"*Óƒɴ畲ƒÑezç{ÑäÂjgâ”kÒ îç¬Ç ?­2–n£B°ýÈ®d†±•s¢¥-ˆ5s¢9žŠ ÅèÍâ0i¤Ç²ñBï<‚â;×0¥jÍ^nŒ Ô‡ò N^Éûpÿùr$PÅàëI¯–Ý„a xïW qq$R5<ÃTê±R{ä D‚QHà÷»³³qB[ÔC/ql¯×ë×ìLŸ¨&BTñå&ôR§‹ôj&Ý-M,äJÀ%erC–®8B“6…U%Ó¡‘EœhiA\D/9V]6²®uôEPøÊæÎ¤¨´2hÎ8ï¥ëÆn9ͦ/e2Á$5­ä¹cãÌ0E¬åFöI¦H—Š?ÀõŽp9ñd,¬Q€DKÁ §MßÒïäþ¦–=Øãi¶§E¥ýæ@xß6Äà‘h_¸X›°4 Ô<™ri2Ùîg8F/ÁgM©zуQ=ÚM_ЈMôtU–MS÷¬U»5oÎn‘#öý¡@„ÝÉÓ¹€Í!ø`:ÁY_D(³þ¦-ZðÐûÉ‘ˆiK³æ÷†'¡­UÎŽLØ]8òCYjÊáÛCVçdõaô¿ Ѓ=Ðç6§.œötáX!mŽWì¤Ü’'@—`§QŒ"°O쟑%IÒ&z÷¾°PbÎ4Žü½nêZ`É?"ë?°Ñ0n˜Ø –­Km1²›ÏŒºpù¨Ûì›oŠ­œCÛ¥¢Mdá +jóT²:P_Ñ; &!!6Š'ÉíÀ?k@¼J5wv€jað`+‡£˜¹]åKvêÊø»Á©,”H Ã&àl:ai­„ô赚8õ×÷Ô’u¼æ<²áxY~xý|ú`Ë endstream endobj 333 0 obj << /Type /Page /Parent 757 0 R /Resources 335 0 R /Contents 336 0 R /Annots [ 334 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 334 0 obj << /Dest [ 309 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 238 637 296 651 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 335 0 obj << /ProcSet [ /PDF /Text ] /Font << /F1 660 0 R /F2 780 0 R /F4 661 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 336 0 obj << /Length 3492 /Filter /FlateDecode >> stream H‰¼WÛnãÈE’7}EyiÍæM$ò4ãÙM6@ŒX@2Á‚¢ZcŠ-ðbÏüF~"¿™SUMIö$» «Ù·êêS§.ý~½¸Y¯ceÔz·0&,ËREøóŸeFI«Uš…Q‘”j}XÜÜ™ª^©¡^Ü|oÔðÀÚ(‚ z±œ?ŸÕ÷ÁÒ$a¡¿qÝUDZÁöµ›êý]µUÁ2Žôï¬Ád@KF,s´ý®ª›.X–a©CSêû©Ùʈ¥1ö¢5&7‘¾·µë¶êöשàoë?,>¬F5jQaV&¸ˆ Mœª4IÃ"M4]Ū·‹Ýâýú$EX¦qA÷§»™’®ÉoÝ1XP7Ä.Ý)~h… )Nƒû€~GQêæ£G< œµþŽDÕ ý«`ý÷ {@·R¦Дõ_t²Š eECÎ7e˜D:9Õ¡˜k†ûš@"˜ãøbEúÌ®ÊHg&ZBzTDj©ÞÑ¥bš*ŠU¤ÿ™„+¥Ô]õÐ!6Hh_š`ögq˜Eñ›6¦‹$*Ô**Ã8ÊËÄñ‰IôI×}Þ7ué½zvS»U­E§ÂÿØBÑÑ©©Û’Ö…¦©! «5dŽ˜×mxoS;hþ&¡-‹~$ºÑ~¶Z¬C7WÚ]«qÏË|0·jpneA¼a^ŰGð-;›0?™0—;Ü4Xµ™ÆŒÝ`?Žüda¦]€-¹î{C¡?³­r]Ž­½V[ûÔÔVý6þÇ ŽUýèg-4x6–²[¦÷BŽ®U%Ê­¯p¾?ùØÛaÀRûd;ÜÀM^;yY>“á(4­ ¯mwØÐtƒêœ¿È ªÞŠLòMH ºÄz‹ËyBHJÙvûñ‰ivÎõº¸ôNÄÞWLC°OK,“Ã8T÷Õ!àjö(Ò[\%I#}GQ'§Z—FobŒf‘næÅ¨9–Ìuãw£`R±•ÏÅêEéGvLósá°:A´…ÖÀW ¿\ðHPZ“ØR¿,°9P­PåTì…\ø'ÉË™†¹ÁŸêˆ0YÁÿP'î«n»÷{,2×"—2“‹Å&¨´ŒÜM¼“I——6ŽÄõûÑJBQ¤^q¸GGIïÈ1›¾¤OøHÎ+9ÂÒX//éxw_q\$ÓßzyÐëé·%”.wÕ+Mèô¯Y5PäK|^ÁÃ8 «.mb£º»U—£~KçÆW4ÿª~§ dxQåRf ª °Ÿ¿CRI…€h<|AïK~7±Ÿ™|&…8+õ¿€ Uäàì˜w÷ (9ŹuÅ5x0Z¼¸dSm_V¹È'#NÎF*ƒRO”î ù?N’ÚqÝÒóhÍ¿Ìy\Ÿ;”‹¿© H*ŠØŠ»j–´—Û%Km+¿œç¤o¤ô „g3ó ßלDüI¬ƒ%½¥É˜¾À…oQãqzFœ^„V‚-È9«’‡ïø·â‘Z& )Ì7žspi¼z7M‡Òskþy&-"²˜)B¶Ü¹¶uÏM'ï2µ›N¯;Þ5 [¤ä|ͪ‹·ž';* †©«MëÙ6óiç¾vu¹Hæ/bèK¸-ü‚"È¡l÷Ôô®;0Û}md$Ô¡€ÍeéMè? ¿ M¢Òø%qLoB:*ÍŠ äÇ/G»µ;;K¹î4±î†æ¡³ˆyY“öU?o¾Œöws˜5‘ÉÊè¢èJó3Óýí&Mô•ÏõïZîÊ/•ŠüQ©§ÀHÈâe2=IÇü`Ä£ˆ[«ŠeÀ¥þ¦áe"BAÁÀ¬ØÜôà”Ma@yE]Ý0¯^A·œÕ'ƒDE:›ä%Nö3»›aÚ|!œF;÷{‹‘Ÿnÿø§Ûéë*ô7õõƒâ†=ˆ*¨ô¹?I¿¨žèüäÀ=YPIcÅá‚uË­«Õ±$º»Æ¹¤š)Ê„ŒÈ·ðˆÊüçáñÝ»õ»Ošy çÚÔgÞdG,pPškðBüX^8Ü“•4 }0ÇÀ‹$;6<Ô]K]ãJ9F—̸c~>Sž]¾ÙÎýÁŽ?ÑE!Ÿz:«3:«3:© îßM-÷å—@­g@ÆHIã'dÛsPÒû“œ)Õ‘ŒáuÉ]”§À$™wOñ›ƒB™£¶»8ÙU~p/Kö'ùæ¥|rÌ•þ?À-<ÜÐçÑÎÒÚq:£MåÒ¥\Ц¾ü2Áè£ øMAS·S2ïdÀ¦ TF2JpP—à.µßAù*Ó"T‰0ßÙ]œëü±„5µk’f^ ¶èÝ"ù%œþ5ÖÏU3²ÓOçSDøEÜþ/)È©¥+î+®*ÕM®>6Öûïìò2,«k™s#líº­|zffTú5Ÿ…³³ðì\ý/Øyw3;mß»þar®w0×{jP >Pk ¨’ ÀšJQݶ”ÍÉe;nde’£vpP°Œ†*4Ø#R{ÃÚ€ÒQR®/æï8ÎÂ87¥Jbª4J.0؆ÉÙœ^ËÍÃÔó@Ø#¹Mbèo~Œ[‹]—`ó~Ò‹¼S¼Kü¢ûâ*˜æñÀWBÆ4{KìÂÓµ*G:ï³ µoÍa(¥kíâ T!×öòÉ~ vi[Êò—ƒ(7?ø+ãP]¥»5Ã8„½äm9ÐPýµ¤{êV|Y’ºÖ€Ï_.•˜;6yÅäþ^•½ø­%ÚØ‘E<íØøíœ«$öÍíˆdÁxY ™¦µr!BEµÜ¯á²"÷vŸØÎ@š~ò[e-Oì¸Jæ[õͬYúõ³Qdü™1Ñ—<<¿9³^d(µÙEñ?ÑŽmBF’Nî!õäõ=éùŠŠ„ ªbË‘z/E¥ÐÛ9Ò¼’Š_ãtñ_|MjVÛîÜ–©ÖvϪÉt4ìl8ærȹL‰ìÈhª÷øò×ͼÛ7§j«úòI9õ*ƒËʳªš+ÁΖœÀWO—Ì#u!µ¹Fâà•;^û¶èJY“ñ¶6UAÁ‘ä…Z±]öþc“¶ v f1È%JâÀ¤„Õ‡»ñ.¦Ñƒ!Òf` ¨ÖÈ~h_ÔL±‘¤±™hÌ*™À%ý“ðÄG¹|õCÚØó½Ãùщ±°_‚úYÉ{&ˆ5{Sߎ%R)ÄÃ’K‰Û4Š’pPíg¡)P/ ¢çaØ+1h›ƒ.«‰÷Í_ÐUa[¼”yq¯N ¾~¨D¬R©g ð ŠnÛr‘Ôý½¬çóæî¯hEœ endstream endobj 337 0 obj << /Type /Page /Parent 757 0 R /Resources 340 0 R /Contents 341 0 R /Annots [ 338 0 R 339 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 338 0 obj << /Dest [ 236 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 434 404 487 418 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 339 0 obj << /Dest [ 236 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 115 389 129 403 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 340 0 obj << /ProcSet [ /PDF /Text ] /Font << /F1 660 0 R /F2 780 0 R /TT2 776 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 341 0 obj << /Length 4031 /Filter /FlateDecode >> stream H‰¤WÛŽã6žú+˜—•i«IJÔ™y˜Ì%˜ÝÓH؇ôb ¶å¶6n˰åém,ò=ùÍœ")‰vwä, ˜±ŠäaÕ©ªg“ËÙL1Éfˉ”ažçLà纹E)–Æ:Y”³ÙýäòÝ^³ùÞ,l?Ÿ\þt-ÙÝ~‚µB@Ñ|2m»“_ùu0•Q˜ñÇ@‰PòM±m*ˆÏêÃ|uU,X0U‚ °ZÒ”Á4A»[ójLó0çw¤Oì§Cµ°3%I*È¢•2‘‚_—óz³`USÕü{öɇÙD²ŠM²,Ôy„‹ÈPª˜ÅQfqÌpÒT±]9YN~œ}€( óXetº›ÌéšÂ^ð]½ ¦‡BŠï‚ÿN%ˆN“«€þ{¨Ëñ8Œ°×ì=©šOøß‚Ù¼÷ÀÙrûÙ›M]vfŠPf„04a™‡ @¤c^Š 7p_H³RÞŠyè:øšæ‚k)¦Ð.2Á¦ì-]Jѧ,Kÿ# SÆØUqÐ&e‘\œt0;„µ µP/Œ»Ia/—Ø<2X»n®q_•²€©8I ØÎ\ƒ“Ñû('oºyªoëËãø$õQZ!ØvB®+ÍCËèHŠàŽuF{ÿÊoɵޯյúHÅïÊæ†ßö1GÝIˆP‰4éîÄÕèëx¢g\Ç—úŸÛkøœI†]³ÌŠEcx$5xDaO¡¤^D¼º@/VèÝVÍE;û•¡XºeoÚU¼‰T¡ÔxKë[0È,¶ª/¶oD “+ÿzI OˆsÝ¿^<Oô h<©#höeóåÝÏŸéúïþyÃåMðäR‡q&óöîB¨¨ãÔòÆå÷ì—r]û@"­6«ŠàeÕ’mÊyiç÷AB¿¥ÑÄc@\²ï/­Ó°$ •$š:ra=5Oþ Ô<©#ÔŠŠ`#Ô>lb¶i˨É7˜Ø¿(\%–a%¯¶¬]Èb{¢MÍ`Õ-Ø,1Ån»õóµ˜ÿˆGØž¢54Kø5ù½ñzUš”2%(é)ÊÛØM‘›mÔÛ›ïe LÊI‡2]ƒ‚>uú؃5M¶§g$Ømt÷Eù/ ë—YúÄk«þОŠs}²û_Ïž‡æ‡JßCñ~W…í#YßëSbݧÄÚ¤ÄrDJ¬5òþý½ÿ¨bºøÝÅ*Øý ÙG=)Š.2±w಄¯‚)nÅKPܲÞ`Ð_½°©Ò¶°éËAx#”ª/ÇŽá¬]zx==甓#tð^]«/%Ýi·«wÃ)å´âÖ¦µÏ32´+›qvH¦Lé5Xi[ìâ>}LÀ̜䥫%‡ T89ÀsP–>=”žžs-õä/2¯ü±îã²îóse#3ù°±6Ga—€$ÛˈƒÍ°1ÿˆ»€òÖŸ3šjS"è. àäR*‰ÔóVC=žžs>9ÂÿÛâ¸G8î–aÀvݘa½í ÉíœQZàt¸»RñóЩñ5ޝç\èNŽð,"Œ™‚ïË{Æl Ù'û¢Oø…û6„±ÊZFêˆG%ñ(^Óãј3WÕ‚íÍ  Lî¾…õ6­¡Ùhœ#ª -Ÿz|Õäë9“POðW ÕXhÖ[hÖ[¨ËÎáÊÉåc^ܱó|Í7w¬´Óö¿¶kíà»@w Zlœ¡ÎHžOÅÔøJÇSs¦½ž Cq_’£6•Î(GoíÏ Hpí«5ë5£l5á()јÉì.á”J%üÎ,Þ7f’)Sd&”jÙ)Vá aÆÍâ•ù€SîV™l+Á› ¬´ÝÕ†Jòç1_ðøzÎýäÇüzاçz\åvùmäç·‘©)c²Z;˜µílÓ 54+;,ÙÒæµQ+±¶ \¥q*6Ai«`½/]ž™‚R†™W]¬)lÜ•ÍñkEa®¼¼»¯%…KÙò°™7U½aTšîY½)‰º±ÿc s[Ka/j¯8Í‚»â+öl¿ª6(+ÙG„"·©¤Úç. ð6R· ¦)š´ÑC¤ØÌℵQô‰ú£ÆÝQ]ε-îJ ¼›9Î'bÔ„/mæJ$€7ˆÁ3{0[,hop@µg›º1—4·‹ííH²fÍ®Øìï«æÂ\Ï>Y‹´’ašž`mÅå’È#1=»É¾@”ŽÞØÜd„…ùGd)\º8%"KâëjSÚìQ³‡ K,J*EØ'˜(Æ;òì¿pÿ¡@Œ7¡ç°iª5C§Ú´O$^‘‰1²~ 8µ ; ëCµ_&‹šÕ@ÃèÚY™f§ KÏø9{XUkÈÇÚu¬Û»[xáB©¶jìÒui—’"'Üî3Z‘…)cFP޼Žõ«­HĉÑÈ.–Hçû%9Å]I~»¶ÃãÙ’Åxy;µrS6_QÆy2m/2wjj (­.¶-w®_/\g^¸•hµ0:Så"gFњ”}û?9¯ºÞÖ‰ úίØGûªI³vì8T<\àJ B¢/Hyqš ±šÄ%›4ªø€îï圙µ¤¡5¼Øû9;;;sæ 'í\é›÷ Š6°\ÚlE Ü-¿%§Fœs6²ì !89…‚´¯à—þñõ,fšÅã¥x0±9x>'C¾qÄ|ˆ NÓS rïv»ÃÓÞ PlâÖës¸š 'öj õ­öQ@Ä©ø3b‘àñò4Ô3%•%L;Úv­ û)µ.Æìä²ìø‘~+–Àõ€†IB‡¬à„zØüà€Ëî8@Œžj2ËY—‚k TÛ€t¯UÏnqÇÀòœ¤,¨7§‹¶ ·`P lÞ V!ˆuÕû/!3:x'2þå6¡Þ@Ÿê½ŽeZM6^5G¶Ÿå§oó ¥½9Òµ¸6ó Ñgkh&Io¨ú¦|tÆ#!‹‹¶eõsõàLƒä*À“Õ“`ˆœiÔLI2mÒmxÊ55ò{â-Ð"^ÑBÈ@üÐ2s~—1ëÔšJðxvdRè”t·1ë"46îäÕ³°á¨w©7²Z½‘ ènSñQ³hQqŒ~!§~‡»=>YÃ}Ûsö`E0ÄØoœ¡µùáÛ e¤X‰¤šIk`Ûت7•¨f£ÕÞl*¿'HO£G'¿€çlè8r‘liëi´0õRÊQõOO¦ú)¡žh× ™ë?X)IÛn« ,Œ·"ƒùeëV·qD¹“é=žDQ‘t.]´.]t )pàÁÛ‚p Í>Ã@È 6x|‰<’+y*w_:ÕÈÅ *°BZ]$¬YñÁUÏa±ãÌC/ìUAœº“pòHŸáþLSr°Y¾—A\¹QÈN¢“KÚì¼æ:#É´Q&)z¾µP]m{^ËF_ëCãˆÜPÊw«¬¸Þ°à]9¯ÂDOi…í¦ZŠ4 ìƒ4\cË„ŸFÊ4¯ÊíÇ |/$#àÓSWržÊÖ‘GÕ`4iª:ØüO5Ù󞤷ç­Ož}÷µñnQ Ý’LbnÝAñÂènLƒÏ÷uíBKÁË>¸£iú×s ê‰dTL¯Vª¶wav)¦­6Ÿë Øe+ ØxÄËÏ¢ù Û{×Ì¢åÀÁÍâþê[4l>}]ŽöÖüT‚BÛuå§P<½:=}÷t°æ7?Ì¢Ñ,~¥—͆ãÂN»ú§£™IšÛ1ë½È|í~ÓV[æžçÝU73MTgÕÒ„u€KïKmï^†&ȼ% ˆVo˜(éž$ÙÕÐÈúÛéBLk') žvšEvÔËNYW'&߯yôA‰¬ù Ý9?û˜ð€O`¹»¸ÐÂn4¯™Óè ‹ìH{#(Ã5°Ó-«ˆä}e`Y:¾j¢¼¿‰.Äœ¹Ò·ï©óÇžžôŽ…¾“1˜d‰E˜X”{ÞÙF%kµ…ÚZûaíQñV+ã:ÊPVjÔz4©N tÖˆ¸ó‡Ñ ±tÞÇÇ#Ûøº¡'ý }!æßbÖö±ô¸c¶ Ú‹hkº“ùDƒ¤¸/ËùZþ•|ufeþÂísqM–߮ۑEÝXtÐ (uþ–-æL¶þœ˜“jºÿâŸN.Ÿ` endstream endobj 342 0 obj << /Type /Page /Parent 757 0 R /Resources 346 0 R /Contents 347 0 R /Annots [ 343 0 R 344 0 R 345 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 343 0 obj << /Dest [ 236 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 110 448 163 462 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 344 0 obj << /Dest [ 236 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 203 448 217 462 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 345 0 obj << /Dest [ 270 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 415 176 432 190 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 346 0 obj << /ProcSet [ /PDF /Text ] /Font << /F1 660 0 R /F2 780 0 R /TT2 776 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 347 0 obj << /Length 3609 /Filter /FlateDecode >> stream H‰¼WëŽÛ¸Fÿú)¸ *kHêŽ4 d³™Å¶i3èèLÈ2íQã±\IÎ$(úÛ¾C_³ß!)Ù£x"-,^Ïùø XÌ. Å$[¬gRúY–1ŸkfÂA XF¾HƒŒ-îg—¯šˆY&XSÌ.º‘lÓ̰V*fó®ù0{Ço¼¹ ü”ö”ð%ßåû¶ÄöEu(î®óóæJðŸ=¬Á¤GKZíÍc|ëu^”;ožùßx’¦ØO‡reG4íTØ‹¯”±üFÕnÅ^¯Ê¶¬vÌûÛâ³×‹™d%›¥©e ‘¾T! ƒÐOÃAÓD±ZÏÖ³_ Hý,T)ÙO¶ÉŒÌÖÀWÕÞ›§Pb¯½ÿ%´~@ŠÓàGÿ­UêòÊ!úÎZüH¢Šÿ·øûÉ}@·ÌN[@Cs¨kÑÉLÊŒ†$œ/3?ˆtrÈsB1æî ‰`VêdEá»f“LðHŠ9¤‹T°9{IF)šJÓDðÿ~»Î7¢½€ö…I³C8R~$ÔÃ6)¬q)€ÍƒµkfìU K˜ ã„À&ÃcèÐæ)3]I+Dˆ2e¤¸¦Tĉè‘Rß;¾ö¢(„a•ûÖžà·ÜuJO*þB¸ÞsÓý}zìFqŒÆïÜ@÷½õ ãŸöj'Y(„¯D,äÙ¨q@UÄÙ—Â(µÖ=äeûž´~õæí«?ÞrAí[ïùP9"LDŽ}½çRKe–]—ϼyÒ²¿zÆsÛ-[¶®l³fÅÖ5‹lo[ûÙ•SÞhŸ91—€0£ÈÓÐÄiæ«4Bc/ÊOh(§¨Ñíû ”—‹—·üc¾¥öÇ^åo»†î“S°‹Â>ê)çš—E0˜.à,ì-BBBÈP¯5Sûƒý²Ò|~A|nêÎí" V¹ËMoiÛ!ßSä‚Ïè(5lo³è<°r:°9=°û¹]ƒFBeüÄîÙ¡'ð1ëù(OùÄ^ÅÁ6ïÝw›Ûo«ÁÂ4sýºl?;J\‰Ä%Œâ'¾’aÏᤦã4ó¤‡Ê©=Ëdб,"Ž»à¥ÆG©ƒ@’Dœ!Ø!Й±ÚKÈÿ42dEÃð]š$Ç=P«1óÚÊ7l³ ÞcˆEà_&Ÿ@,˜ŽØ@N±Fw\zñ—ºï„¿ï:Õ ,S=ËÒS–¥œ²*}ïì§\·¬.7ÆZÑÚÊíp³ÚâÝ wnìSË–NRëе]°ra”_*Rê<Âáä”x*ÇVÿrÇxΊqMJr˜³d4ýøˆÇ.ñê ¡b“Ö9wˆü0•Ù¤q}âþvIiË%+‰dõkƒLPY84Þ]@<œÇYéåÂä¥Ûc(”¾&î OA®x{°vo¿] Ü„ÎØ†Îð»ÐPÖ‰ ¼Âq¼$\5z"×$Óáz,æI¾L‚%ŒŽá3êç¯lE<|ÈH"):RBÝçµGe}iº­ùG‰O™yy:f)”D+7Gà(Me”Çgz‰;”óm«’ X}Óšnµïj“rmŽ0H‹Á3‹ëI"<®T§çQ¯…;†ržpªi$ÉŽdG b‹tÄ0ˆ¹c÷¹êÁ®lÀ¨›Yj&OrêxÀ‰”¯Qr5^÷Ø äüŸ]¨1dÝ=é6ôÀˆL);KŒâS¦çŸ†j¼ˆíaÈùFÇ9¢ÒBå>@•o<óh2#;ÍŠjך6•c1Õf O% tèk§ úž•ŠŒ1„"”Yvþý¤ÆËסœ¡rÝå¤[^ëܼQÈËàa¶=>ıXsEîʯØ¢ŒÅ0…p5½žŠèM¸¾Qï5)T×U};­öNŽwœ™Zæ#wþ ¹34©"4®¸;²Û°­i¸®ÝäØ`²­Y\ÙqZ¹$r»à;Ôšö±'š£A×ROÔäjzÅ8”óñc,Ã<Šˆ¶6©ØD³³kzÐ$f!‹ùÖ½T¾’—<\jÄ}[¿ŒG °í,€ÓkÞ¡œÀõžâפ?ȹÑmçMã ª¤+÷D÷*|Æþ¢ ]~Ô §ì@-Ä‘/á[½Úh¶üÜj< %‘¬mÁ»{¶ÒËBSî¥bµŠƒó5½Ê9a,Jæá÷]“øtesú¯‰'2T8Ôš«ñj´'ßOÔÑÔ1idÖæ¯)?€ÞË|¹5Ÿ ¹7Ukz Uu ,¿zmýÆîbW¯LõÁ´í;Yv­[RT+mKµÑ`fˆJ":ÿúQã媔~–Éà‘œóÏO¬ÄÉÒìîÚ2‹ý,`aæÄ±IIÇà¼k†WåæPã*gÁ\y’ì }ÆnôÎvV£ÈÆ»í²ë›K·Œ­ò6g„jÆÛеp—;³X³Eu°k oN#w×ùŠuW¬zͳ,ë§&ªR€Þa$ü4NûzòpíԾњ]™b¨ÄˆW/ÃÿÁžW{ó„ÁÛ##ÃRVíð:¡Q¬Ô,À&Z'`éâN;Õº <‘ZæÖ¯ŽxÛèÝÊ]‚³$D|9.75ÓÖT7œ­»¢-¡Âº¬›–•»»rY¶ kqôòаuU³¼e[c–dÏ)eÅ ìCà$8)ó…°ìé`ô#iç·ðŒÇš ’Ò»üÒ…šçP¢l˜©qáÀ³9Ô¦(§Ò0÷¨&Ÿ#1äpwŠ-d­]˜·Þ—MCfÂ.r’ýS¤Î=ЗQ¿ÙÈý¨m]»´‚5Â7<Û`ÇÊíïÚ\àÏžcR—Æ·[úwÌš+_$™@öŽ/5Ö¬láÃÛm¹Ò „·wFÏylÔ©šö˜[ç»Î P)ežðŸ=ð5#Êú„Á¸/»;GÚè®ÒÝ­^Ñ…æ0 -ïqœÑP˜ •=Q(ÇF=L©öØ+¹Ö»#Që'B_6²zz¼l}Ýe9À8§Ò:ǽI€×\$¸ý¾¹á5l©Xó¡Ü³m¹ƒê!.~Å"ŸêÔ˜J‹vDÔ¤ðööÈžøÒ•õÖŸ€•4ÅÅ<@Þ¼0@õþ7®á9ûw­ÿqpkÉmÞ´ó¶šo³Ãÿ1ŠìkM¾bÆáåÖ‘ò¬)7å™ ô’ç[ î\Ý¦í“ qtéw~ô\mÄÁZ7û GgÊ“â¾!Êf”cÀ[4Uv ðü0ñÒÌ`ƒQ9gM›×-jÔöÂFN ˆJuIþ¥°¸“fÖôÆ6­y¶0Àh½xæt<–1®À~cÏDH¤¸G—\ ¸: OÆ,7±1A® }3NÆ5år«M"Àˉ‰ ª(Õs¶w5®ÕÏ^×&œÒöN}CšåÐõ9ÛU-yEÞM²‡»G4Õ½îÍxÇ«í ¢n°&µœ€îôÜ£À¾oË¢¡ŒR ‹ü¯óò颸½Ÿ‚CDJ¢ð'„¨çVê©RÕ[NðjQ`½Â ý&ý¼}óÆ6Ý´R/ëØf<̼÷³¾²•>A…$xDw·1F]ưòUXZzÍOÂ4èÌq oh“ÖJÃJÊšƒiôoÌÿVë]ãY>X(ÕIýk©”úìô†â¬oCJ®£OÈ]èÔE”=]ÔU$KZõš Cz‚lnÖ.ÒÞDY?é„] T•ÿË¢Z³ú––©ëÅìªX„Õªs-ÂE˜û3›C÷NØ€æÙ‡N ¨ß*Z+_mVD½ ‡|Œò¢6ð*DAAA:&=„»äço¢‡ÀbB¿õ“ϽNSòÇ)d_[î~ÝOúQÎõ]+þ/ñïvr~¤×¾‰ñÉ Ôï!ad2Ãß]“AX¸ˆ /8ùDASŠ‚¶Q,)/cÊK¹ú æ´ó”Ø=‹|ƒ—Õ}]\Kñ‹§a?hì΀4ÞpÔ£¢fßÂæa”š¥fËթÛïò`’sâvî[8ÿÛa=îß%ñ0Ÿ±.z^”*&ètbRö!gñàBÁ¤qx£~Õç=MOº2cù‹ûpÎúÇäh^M;òÙsq–~Q·Ñ¬\nJç ÛIßé-‰~U|ÞñQσ>Ò‡l‰Ôî6±ª'®Ft±g­&¥±Ù ÛÓ<Å‚ÊJÍ{H»§dµ— 7!AW8Œ eνiý,1Ý*5Ë«dÉWéd6ê‘ÿ…ØLòY JL§ýžb\2†(»òY·NßügíÑÎPª“Çṵ̀ÇG®³º.`ÇxÃùËæ¹Lr“ç#g/ÒAA†Ö–LRÚƒ°%~gt{¼bÌù:û=Dí t6tÍhi@ŽfF) Øôà6þŒ=  "¶XÛ¹8Ò5èÌ–Þ*–n[/‡Äçÿ-¹¸…°k½ÛSÖzƒÜ]Õ›^ž6 ~\ûªî¡L¡y¨PâÇ&ÔI x‚G•ê•ä°“–\¨p·¸,÷”S¦:*ÜÀß;øO‚Aó ŸL?Ó„‹Â>ò„øvÓhû{žá}­_âš\`Kù˜ä~+@ˆç“†C q'ÓtäX‚Tc‡Aâs fsô€dÁµ†•üè׎Ý+¨J¢"mÃY‚´Jq²g°…cV'zI¦΃ð3¤ŠÛæ)·B®fgös¿˜`.ž8©ë“"]àΤ¾ùUò¬˜îRºNö¡à„)ÁYl+'‰™'ܼÝO§ÛÛèh¦-‚]ÊÿO¯º¶Ÿ»J­ª32É_ˆÖKÔ×_Ÿþ{#’K endstream endobj 348 0 obj << /Type /Page /Parent 757 0 R /Resources 353 0 R /Contents 354 0 R /Annots [ 349 0 R 350 0 R 351 0 R 352 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 349 0 obj << /Dest [ 242 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 204 565 221 579 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 350 0 obj << /Dest [ 309 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 206 405 265 419 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 351 0 obj << /Dest [ 270 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 472 330 493 342 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 352 0 obj << /Dest [ 298 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 454 264 476 276 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 353 0 obj << /ProcSet [ /PDF /Text ] /Font << /F1 660 0 R /F2 780 0 R /F4 661 0 R /TT2 776 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 354 0 obj << /Length 3743 /Filter /FlateDecode >> stream H‰¬Wënã¸Fÿú)X`± ¦±BR÷ÝÎÙídw‹b4þ7)E¦cMmË#ɹ´èK´Å¼B_³ß!)Kv2‰f±0`’âíœï\¾Ãïg“ÓÙL1Éf‹‰”~–eLà纙ðE(–„‘/Ò c³õäô‡&bEc– Ö“Ó/%»m&X+*&Ó®{?yÏ/½© ü”?zJø’oòm[bû¬ÚË‹|μ©ügk0éÑ’V{Óm½È‹rãM3?ã·ž¤)ö㮜Û/šv*ìE+e,¿ÔEµ™³wó²-« óþ6ûóäÝl"YÉ&iêGYE¤/UÈ ôÓ0d4Q¬Ö“ÅäûÙ ©Ÿ…*%ýI7™‘šÂ*øCµõ¦)„ƒ†ØÅk/Ä ©„àôqéÑk…:=wˆ‡~€»f¢£Š ÿ7û0°dËì´44—ºÝÌ¡Ìaœ„ûeæÇ‘nyN(ÆÜÀ}B ÌJ V¾ë`6ɤ˜ât‘ 6eg¤”¢©4Mÿ_à'Œ±‹üÖ£K´о0ÝÃ쎔 õ€¡›V¹ÀfÁÚu³úª„%L…qbÀÞãÌ¥ç\Úíð€(Sf»ëJl‹ì'àÂ(¥SÞó»Š|'ŠB¨ÕèÍÜ“Š_·Ûë¼¾¥î¿y$׋B…øxåYkZ_‰$Þ ÍÕhy[ù? ¼~cœf¾JS»-xí2²{"¢ƒ]à8Ý 8å·ãxI˜E½âáhY†[á5ihEYxVŒÊµµ'`7(ÉTo…}k† ûaÇèüÁ}èÚ/1e'¾’cFÑk‘n=@÷âR]7$*Ü‡wÔO¯¼/:‚b™ˆk°õ±®àô4¸íüà;ÿ]7€0OÕ›òÊžîó×]À_¦ EEJõÚ$cãe¸•ÿë(^°÷È.‡›¾™dñXÅ~û4ܳUdSêyy»«µIq,˜*JÞ!|$¾ËSÒ©EE¼Ë㡽5Cƒ\Fñ€ (×\lcsÎX±$ øC*uLÊØÂKÀ3»MaÙ°§¹1$‹Ð³(Þkÿ”«ÿbÅw)bcݰÈG^)Â.uËþª›jµ3×Õzنݗí’Á@:{ºÞ>_ëMÛ`á¦)›¶ÜtT^Y_xÄüì¦ÄšäS|¢Oá‰Õ 4„T.{Œö hÌŃOê„‘lò“`Õ‚¸l­&附°? Z8V: Zt×Pp9ƒ5¦Ž‘|Kà\­7 á ¥mîÜçZƒŒ?á'ö3Ë›ÎeöÒe­{ÉÊãÖr¯~çEµ#lue˜Xc}[±À·×Me×$)¹~¶8kØ\7E]Þè9+70´­ câÀNX»ÔXsW–^­¬/¸õ„©"¾:;;a_ “l*òR3«×ú`YË!>õ–IöžKȳnX¾huͶս­?t=ÝmÆ ªîõ;­>aeËʆ5ùB“ÎÈ•3s'Ù㪢jWÛñ¢¬›–ÂYu¾Ënô¢ªqƲtVš½qH%{¤‹T[®5+ƒ£ÍæÕæß-+¬óçÆ£kíBçÆH•`YkPìP‚RW|¶t˶uµ…ÞŪrË sÊß)^è’>s{‹›ßt§ß¯ôüVS¬é°÷fá¼BrX : ¬É#í4Áuw!ܹavX÷½×°:Z«‚­x¹þ®ËDIº:4áX™[èû‚ÿ ÈGQýXè†ô ¹êQ0â›…"â¾ûR”‹»ÚVÒ¨¥€Ãåä-9jÎ쮪ÂÕs“´÷y‰uÒ,D•+rÉ¡ïÁ뇈ï¶wÊü$„Ú|ålæÀûxqA`êe˜ü—Ê9i«{€–0n–ÕnEÎÈ ÿ67†9Ò Ì ºR¸Ê–íeËžF!l·PÕ{é\NCP·®[‘á3N oK¯)§Šu–Z4—gÈìf™nÚi[M) ¯Z¨àÏ{Z»tŸ5+vµQ ý'®úÕã§ÍÓÇ#"Q&1Ñ“¬©ª®øÙª©ìºM5ļZ,Ê¢ÌW64[]”ø÷œúyÿlÚ¼ÕÍ‘ùÖ'¸ÂfÆ¡hø˜sYr5k²a&èb»ótÊ&’OÉþr4 `ù ÿú: |j×À“ GC&÷65<Áú «p •oè9©¨²saÜa~Ä?`èTíK–AÍâ(ê'í…°uÉmŸb3·=ŠV0î2Í0Ä/¦óqgÛ %JzÓ¨?š•›²-ÝžòÝ÷¥ë¸¦·¼@å„GàáG‡ÀV7د7fÉÊsÙÅ·+ÖÞÔœ²®ì¾¹[»kL…cæör“ÝgÈåìÆ”Up›¼Íât ëø`á)KT4{¼ÝØÏ†ZÀwnRU0•©ÏÆãAšúa$Ýû NT_“H6¢0Ï2<9æð™ažô„ççϼ$Ø'CÜïëß°¯Î¥ ¼S¨­ø‚yU¨—³àA‰ÄOsÄgHµ)·ÿ`Kߨ­”Hô£0~ 5‰£cöHGvÏ)BåÖ<¾Ú+Þ?¨~ÿ¶{Q‰‡³³§×§8©'ÕáDngpJ9û(E”ØiÔš)mœéÆfxÔ˜4Ms¥™k*ØEFpv3óÈ6ùƒ¤E†ÐxÇÀÓÌB³"áÓ•Ù\mn™½¢taB§hÔ>fØãuSÄPTFѳ¦^5… pöñ1N©kóà­j2À¼^ƒá—Äá‘l<ï!G'üZ⩇¼ wˆ§I”ÇrGãá<:á·3€“H¢‘C±âñp°‹ÒÎu»½ÎI°úöÊ@Fý1¨¯¤º¸zcù‡8ÒòÐTqPîQUÎþóóüé\[.AFv°³MAóK³éÂÖ¬ywiþ‹E• &©ðlŽú‰5E lùè™*rg½p»ÀÑJÂíÿžV€–Ù1’] o‹çÑJÇ£utÌ­u¹©ê.K¼í:$(eÊ"c]ÿUò=/Ͱ6 lyØ1ðpÛfg¿±›G;¶Œýaí¶¦ôLñË,qÛÓI³Ñ6úîyjJŸW¡8L=t6éÃS~m’“14žõˆg=â±EœrŽ.ªg^Qs÷©1ÌÞše¹mvö›ƒÚ<<´xðdÄĽ%â~Kô{ùH•½YSšÿ+Ýf²KjíâáUð|XF¥¯¢¯ÒÌSR㹂RŒf›ãs~¶Q tŒUzÌ6r|¥{|Dù‡qØM}Ýu„'øƒ)Ï_ŽNûv;f žš(˜Øÿ¯–·m(ºïWp)ubROg¤@Ñ-:³p,z¬@–\‰š`ò)ò½=÷^ZrÜq­ÅxHŠ¢.Ï}s¿—AÝWarUF>^‹P É€Êì…šAy÷N} »?wò¿W½{†Ð §5aù‹JÃJ8¢öwœëáÉAÍ5űœh_žó}¿\Ü÷Sý*£.%IâtÊD¤à·8îdÙyÞ¤>qŽt•#&] ‘甩4¤ºgHÓ¶ÛX“×¹ukbØaƒ;íÜúxE’µæ3»V༡dÔ‘Aøð;\ Ó%ù˜Á)åY£o“é î‹s®+¼dηKž(ug1áulBQÓ¤ÿì\â¸AÓùµR'PÅm˜Ò i]i9¹¿<ç*L:]S9ÃTÎ0e“9¡£@õŠif¸?d{]K­4žFyŵò”aêv26„^‰’įs”Ý.ñ4ùëZMßVpç\¯eÀ3pÅ \*À!h>´ö±á§8#‘iòèðŸ•D/¢ÀR‰xÔ*—šxá‚°•¸x=ñl`j¤ä–Íé4ÜÀÂ$Áãz5ÓSуÙSt…&ú‘>Ot\#Z7(ý=SGdÜš?˜àa¿ë¼?( · ˜êðÐS™?°úR´+údaíbúU~_“Wj_Û¦þ*LÄâš|EjºNaÃ88y~DßQ]Ûà0Ã,Hoè ¾ O1Í÷²Ñ kEÍ)›¹Øfºghbv‡´TÇîK¼*©—÷«ñø‹jêpc¾—b§Ú΃ŸõõÖÃCÝm€[·% CáTî•.0|‰yÃPÓ…óêàzÚ¼ ›é>çg1V½|¾Ý‹¯@æÈP'Ÿ¢å$Zñ5ᄂšR$¢ñ¨*·³cC|Ò˜)Í È\Vò3Çq|ÉŽÏ¿ƒn‹ç¹“¿ƒçsò<ÙõÜTŠÙ[g›[O pärI"¾AGþ£þO{•y ã0”¸üœÜ‹e«†£“mùtÄDš,¶Õ@x¯A2Ý9T–{ F¼$^KÄpïšfKÂR7âºѵڰwe‘MDVªªCLWlºx¥ö¥˜ß·Š˜gÊŽ¦wHÐÕÛaBBY/Ô?‹¶ûp=j’ˆƒïG_gÓ-2¹ÅМêà Šç¨·„º`åž%IŠˆPác>ÜÿôïçèÆr endstream endobj 355 0 obj << /Type /Page /Parent 757 0 R /Resources 356 0 R /Contents 357 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 356 0 obj << /ProcSet [ /PDF /Text ] /Font << /F1 660 0 R /F2 780 0 R /TT2 776 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 357 0 obj << /Length 1909 /Filter /FlateDecode >> stream H‰œWÝŽ¤DŽ·ýçÌ44p¹êj4³ÉtbÌŽ14T84ÕRÕ;Yà _Á×ôüÐ3»k¢é¤)êïü}ç;‡¯ö›Ûý^Aûã&I¢ªª ÆŸVq§©‚"Ë£¸L+ØŸ6·_ÛËÛb°Íæö»»ì÷Æ1^Ôl¶óðió.¸ ·I•Á‡PÅQŒõÙõx|o.M÷¶n!ܪ8ø>Ä=¸Ò§ÃíŸÓ±nú1ÜVQ<„ -Áw—¾•M'žÅg’ì’8¸Ó[xÝö®7#„¿ìؼÞoèaS–Q^¥hH%*ƒ,Í¢2Ë5-LzsÜ|µÿ¤eTeª$ûɶ¤"3c1ðks·%*‡â©` 3üïQ«8JIqšìBúw¢Ôí·ÞãY”¢¬ý7tU³ ¾÷¿]Åu«dYš±P?"É ÈË@Æ›P~RE;t"IÎ‚š¼¸ ØÝ7ä$r³RW;šÈpµ¨â Oâ-Þ—1lá¥h©,‹8ø; x[?„$D‡)˪ÅÍÞùŠòXýgq©xÇ{¼ Y-ô!««-$ê¯$#ôX ¯Öxõ‡‹Óp2­†ƒŸñ®«ëgsEs8ô 0Çå„’ŠVîU«}*x…'-Î=Ô3Õ(íFG! r!á"[àŸøõ#¢±ståУ*øCÞ£Vóø÷‹<džòO$3 ÌehÁ¯#Š(°4>ðxð{bkd| 3¿ïCž9h1ÉÐ’'Ù= ÐeÙuþÌM þ.u8MûöZçÏô2iÅû/?‡ÔÞY=¡¶`/ç³™0(>®«Ä• @wÿl.ÐÔ£ÌÕƒ5€ïc¬8ÜšT…®—+:™…óŒûæQ;˜Òì+Š#† ÂþtËî>¼Á‹ÌÅ_³Øð™H.î!Á y¡c_èIÜ'\Ö¥\"Ù£›Å™²~á“V¯>ïŒuà Ø³÷sëÃv'®ïýõM> ñ˜uØböùè1ÎŒ1Æ\ò2ûq•ï‰)ñÔC¸VÉÌ=ÙBwÁÛ;õëƒvÏ™**uÍTåÿÒ3Õd.s Oõ{=q>5KNMÂý¶@ëfÁ°zp®iºDÅ-ËBíÊl•—/òr‘Ç’ H €9j©Nà$¥vŠþµ€({MdÂ9_ø^cN§zloPá¾é‚¬hõ̱vnªG{ê­7“MLh æäZ‰®¨B”Þ-JïDé3#×z¨îÈîR•9®ŸHisc¹¾Ýž'míeí(Þ|ƒŠÔÈ*"wÚw+AÞ‡˜a{T»Õï{6i1ùÉŒ:ø´ÐÕçE¾¦ˆw»#üåŒÌ”‘™è2AŠÒ³áÿG^Ö> endobj 359 0 obj << /Dest [ 226 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 200 554 208 568 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 360 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 361 0 obj << /Length 4743 /Filter /FlateDecode >> stream H‰œWÍnÛHÆö¢§è#¹cÑlþsæ4‰3ƒ]`6A,ä2ÙMµ,îJl¤ìÌs$È+ìkîWUMв#g°0 “ìîꪯª¾ªzµZ\¯V‘ÒjµYh”e©Bü¹Ç2 Â8ŽTž¤AXÄ¥ZíׯûTÕ=o U_/®½Õê¾_`oBP½Xދ߽[©ã ðþð£0Ð^[†ÇWöXoßUkå/£Ðû»=XôiË`üe†ÿݦª›Ö_–AéÝûš–Ô¯Çf-_ ŒpÿµÎtèÝšÚ¶kõfÝ m•ÿ¯Õ?oV ­µ(Š -c¢%*‰“ HMóHuf±Y¼Z½@\ed?Ù¦K23_Ûƒ¿, ,Ä)¯óü6Ð* bRœ>n}úD©ë_âIã®Õ ‰ªÞ_üÕ¿gþ€n¥,   _êžèfÊŠ†$Ü¯Ë ˆtsâU„bæ1ÜWÁE³uà°š—¡—êp éaª¥ú™ŒŠh©(òÐûoà*õ®º÷éãÇt. '˜Âi¤at`Ø–¸XKlQÖîy;+mI¡ m¶ߨò(."±< Ô­é 54l­öªò£8D ½sßí`k»£g2qÿ¡žå)"¤,¦ËŸÃ¾Úšg˜ÏÁ&Õèƒf´8Ük»ßÛ¦®Ó«ÇfÀrÉÖ_²#ÈÞÚ~PM¥*ÕU»®ºµ¸ïýí2‚Šl \³ÓStd“š™¨Ù´ƒ¡"Í v¼i;õùõÛßÔÁ²j™× ÁÙ¡f1’PŒÐ2+´æ½©“±!H3„½wƒúè½7»jhÌG_ÖÔޮ͟òüع§‡42µR‡N|$­þ&¹•L¢àdTâ}:¶Û±2…dÄÔ~JÎæÅý¡â·¡¹Û~"ˆ·¬ÈoììX˜í­HTofß2»ðDÌN^`ÍÑm ø‡â@î¸ý®B? þ¿A–’,snæbzŸáwbvd‚\6b%^Ï'¯ç‚U_íÚ0Ô¥W ÇaVõŒÀ»ÛëhòyÇ)™cOb›j9hIïÜÛï~8V=TõÌ ›6–S ë `¾{:s®šÖGzëf³1i‡@ÅqìR*±OVÄbÅÏ»Q»ÚI²E’l¹£¯˜#0u)·…¬4>"èa8©{f­†îhÈG°,õ(3—²dÛg_: žÀéUÓ2&‡é*>ÜWª‚3Zóx! ËÉ’Ò•?æ‚e]‰(€…Кk§/ãÆ¤”†ÑáXq Ç\V œöd×ç×vg¿¨µyhjC©¤IñÇmSoU<l7¨;ëbÞù=|:Ï@çøs²æ| ÄžÑ)½Y2G ѤbÁ|a«‡ÄCšÓý¤z—ªÎ;Ké“ ÒÑIË;³³ÁG_9E]9E3î$p€Ò3Öe2ÖKøÌ÷êÍ‚J ¤‚|ª©vÆqHƒ 14õ_üÇ'gí ©™Å/T BFjÖkõÍjÔ´õî¢AïµAq1AAÛU­xÜÞ€ª¢„©8Aïdžîý'WÍn8ÖW§×ÃîH±õíd&…][уá;ðæÐ¡,Éu…#œ÷QV¼ÝHÁñÿÂÖ«y ÎË`¯8ʹÌþÁ§ÔûÕ-k~ž¡é¤_*úݬÞC×È•©€‘ÒÊL‡ÆÂ8¨­Û²•-êÁܻ7Ì뮲3}ï¬{“C ‘{NÑ!Êæ’’)¹íÁˆ”n0ë•úgÏ9¶ ¿<) äÚA^Ûu0£b”ðËTL tÖ´#õÐ+ulÒzXi7¸[™ø–{•3y9Ò¥vBÝž™÷ÊÏÐa,ËÓ@U¸jœ¹ù.¤µ)¸îöß.&zlj´vMÍGocöÕN¦5&DÌ>,¢óøÑÿ‘‰w,Ò ±´¤¶&Tî1Ž%yœ¨(Iƒ$AK²ÚϧØ3?šr óÖÍë›gsh„EÏ*z4µú©kõÿi „Uczè}®Åþ2Bë'³tN¢ç 7oV‹X#XShBR„™º\п3‹ÍÅuüÊ:X2*gëeåÅÙŽåvä° ÍJ€˜x²~á†Ïú´ž@@™Ÿí(PÊ‘Ko˜Ö/ÜPÄA–ÌÖCš^£ù–¤Hƒ¨¸ˆÒ…åé‚ Dph–Žëè¸| ‚ìÎvLF\Ú1)qé’W«ã6ÂäSä¶ÿã½Zvë¸aèþ~Å,ç.<½¥µƒ-Ð ˆnŠ. ÇÍM8qšþH¿·‡©ÑµÍqWÝØW‡:”ŽÈ#bwP ®ÖN•\˜/ñ? :|?F4 |ñÝxKüsxlaò ÓϦ>µ¨HÕ8ï0WIMˆƒ 62îšÞ)Ãdž6xÈæ±‡œŸ‡=–m„ &xÈæj0_ì6oVÈ™`FÙ}- ÉXó·Ó á>Ø£ðæ!(U¡.òPuWºAÌ+‚ÊX.õ®R¡ß×G*b߇ÞÈR7__]¿ÿV§®Ña<=‰Hk¢ÌW!àø‘Ú¥!NäÚ^ÏHÜ}ô.hª¤Q2ÄBùú¤3Dæu†°‡ÊžßaˆA"t†hYô,¡á·ÃöØaˆêÑAh‹ì3Äœ’-E]3Ž+†'.Ä€ Ÿã4#ˆ ¼–VKüŠš_AÛÂ2ÅϤ‘õ™P•2ÉdKö)ücÂ/5ÒCF¬ K,:#d^g{¨ŒàùFh„‚Ag„–Å¥õeì±ÃÕcñø"O0"¡Ãã„&4µRᚨ1@8½x‰2aƒ›_ÜÞ4Ó”5ioúû†½Ž&$*kÿr\ëSõÞÁ› M¨Ÿ»L«ÇÎÚ©ó´~èÚ÷|æ²¾zäþž^ÌÀºLP:e…'N;@¡ê,n£gq["¿éb}åâÞ>'mæ‹v¯qöÞÌ¯Ž•[ô#Ñp÷–½Ï~'ÉàæOà%ÿ³Ï<Þ˜·ÔIþ¦ÇY"žÄA z+xÍMâ}¢W€Ÿ9jñHý@+[”žÊ#™×‰Ä*“x~‡JZá’`ÐɤeѳÄ2v§~ˆ‡^?tB[ä Fy }ámï(aë(üàI¢?k É­¡X‹4¦ÈPî&í1{7 ­›Cj? ž¡Þà•ÉÁêk¯¾¡Öúˆ"—¯ðp°%øõKg‹Ìëla•-<¿Ã-‚°E0èlѲèYâÉèÜ[Øc‡-ªG¡-ò[p„`B¥ÄV}’ãâ“§s:H×8’À”9>Ég——fÌtùÇ!âèoº|Þ¨f+Ý50é^ÞPéó×é®ýC*AÎH”¼i¶‡qx|¥ SDæuа‡Jžß¡ˆA("tŠhY YÚö(Â;Q=/Šà,m;Ê=²¬ Ò$™²ØÜ‹íŒK+nþñØzÊÿF:ÿ¢¿uû¼NöPiÂó;4Ñ"MƒN-‹žeÖø˜ŒÄ®ËúûßæeŸdž÷iðèûÔ0<¢”ÄC[[çÍ6MPL£GßIu ñÐÖÈn‰~˜_¡¤œ]ú^k{)ÊOLã.AO­®˜z…ä·µ¸|Öä _¯&÷÷öCº³á’ûÃû·w·×íM¡©íšyš.®oÔ¡Ì%¤XµÿÙFÓÕͧfÀ?´ãë«¡µÞ›j»>¿g§›»¯ý=;ÿ¦ó‹Šw.Îfú ÷õCÛÿ¿êôóôëoëôæ`|\ÜŠìKY 8ý±[,vÚ÷høõ•féa[åHÈÛÝüàápÕƒ#ðXÖÀÝ’:|`J¡ú <¤„>/˜ùëÓ®ï&¢«­iL‹-T¤óKèèHþ1­ˆ}õ£Pæ1BiuKÆ6¯°¥Åú¼`æ¯OS¨i岄5Œi±¥ƒÂ«%Û°=ScZ¸QÉ@™ã¡‡´º¥ã›WØÒb}^0ó×§)PZ—ʬnHK, %bñÖuÐ ¥aHË®aq¸³›Pf?DhãmÝÍRI†-+ô´‚ÌwÌíë{)Ô´ ¬fL‹-”C5±fmé^Ø1-”™âíà”Õƒ#ðxH«[0 °y…--† ósûú^ •„Î÷-£‘¢í},íÞ!‚ø4&!mš ¶Û D©Ñ±N"ȸ­A_°%eˆYòà @Ç5xL_0ŠîÁ({„Ó8CwFåK]eNòi²ž£åÑ V©<’‰4 ™²B•ØeõP$ê"…ú–u1×,”W·X¨ÑÀ…—ÆßÖSÍÝ,2è‘[¥ôPQ¶•õX # ¦5Sç›7›´ 4GS(Ö7g< 2ÑóT38i*²¡1ô¥m73šVGñŠdñíd] }Xo{Àá|«³Ø«Ú rµ@ÊòÀ™×PØg*ÕmÜØããf!píîð8ÃðÅÃm5H¬Š3¶ËB2¨ïªŒ´mªÁ[1m»jÊ”aWÉSßÕîÞ¶•f¹°´}¥èµ‰Öm5Î-$xW£ÚP†]%K"eÈ»JO^O"…wÕ8,—˰«]Zò®R¾+“="ä2îQ0Ü9Ø#QçîB_æqW/ÿ·Y| endstream endobj 362 0 obj << /Type /Page /Parent 758 0 R /Resources 364 0 R /Contents 365 0 R /Annots [ 363 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 363 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 280 480 333 494 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 364 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 365 0 obj << /Length 3799 /Filter /FlateDecode >> stream H‰¤WÙr㸭¼ê+ð&&M,Ü&OÓöt×$3.KÕ/é<Ðm1‘I•Hº#™Èoæ\\$ ž¤R®’I¸ç.ç.x·ZÜ®V’ ¶zZEÁbü¹Ç"Žb¥$ËtŹ*Øêeq{×%lÝ™m1ëÖ‹ÛKÁž»öÆ1­áðxZü•/ƒP¨(çßG‚7徯q|Õ×ÛO冡Œùö`1 -}„)þžÊuÝaü9´Ä>ëýRÑI‰³ø/D*b¾¬Öm³a?lê¾nümõ§Å«…`5[äy” †ˆHHÍ´ÒQ®5ƒ¦™d‡jñ´x·zÃ* -s²Ÿl™[ïÚ}æPâ?¿5´Š#EŠÓÇm@¿½Uêö½ó¸Ž°V÷$j½à¿ VŸÅºvÙ:TP÷DÈL’—y’€/Š(… Y󒼘rãîr¹YÊÙŽuä°š1ODBzœÇ,dß“Q’–ò<‹ù¿u(ö©|¤ KÄèfçáDFI,ÿggqÉ85 ³ÖÊÑZi­ýKÃúmå¬ÖÚ|äÓ²/›1Y#aÕA”˜,¸k_Û‰p/íæ¸«Øêg-ÞÙp¬V"¶.—ÐÚEÈ©ÃÌ¿~½ N~œWê ¥oŒÂyhÕÙ× {$ ý½ BeL:„2‰`}z&“P5 UV(ÞTë¾=°­ãW‰@$¼3HOínמˆyo(RgÀmýw''¯K÷=£D K3pC O3ÂÖ‘Vij Ò€i†,c9#wPv+‚¥9( DDQQ’Ú¨ûÖñëÖÌdZG¥ÉDz¶#Aœ¡NšË¨p:1 þòr݃ŠHÅÙA%g ^”¦Ê‹0­_G1Ò?Vo!$H—Ô0,{ä' %’Å/_Å`zâ˜Ö¯#¨X€~é[:‹âDúÆu‚Î#]È· ´ ûÆuB‘D2Ïß@Ð:ŽR¼ø¦õëZK´Ái]£Ðç9¼ðZÅ!<ËS. ¹"£<×ÑüW¹@;¬ós.{vL\¼¾aN&ÏŽ<;fÁ¼¾c ÏŽÁ[>o £`H\=sB¦Q– /¦I© ±u-ÎfMû~…*™ðTb1”`è£òÔÖ`*z®-ÓYW~oÙý÷ÔÏ7ÇQ]Ý«•DZŠ –$Y®Æ*nF"äB»¶Mg¡#ÿ$üž=ØFz H‹WÒ™âõ3µ“Šó0QP£Ë 9×=œl¶C:?Ñ•òº_›.šAJ2S_¦¨Ä"raEüTѼo=õ¤€ž¼–ßþ/dme\ˆH­„ÔÔ3jê¦áµÔÞø±Ù˜ÿö|"ÉÎ"7?Ÿ!©û¾mXwBÿß²ºÙûŽ}áÀìp¥,› K¾ø¾Þ7ÛM¯—|· {Üm[ô×Ï è–KVíªsÊvÛ3§Ž™Œ*$V…nÛwöX±gO6Kc¨"Ðáxµa§me& ™†¬u{8дƒݾm6ucKh!OÂ Ž­wm)°i8(L>~ ¢™¢4OÝ;·Ø0­Úãzû©Ü8ËØ¤í©>@&Ì'5yÉîß…{ª^Êö .¬F{ÄÕ)ðGcAW[Uå®{å4èòÕùáþ†=)fîWøºZÞ0ŒpüÎ,¯Å–6>ÞÏt6ªZÅ«þäÔ²ŠÚö§–­ígÒ›4îXéôZýþr쉅 b ÷¯Ër놽0K'(NüH ~¨À(£Cˆ \°’ €½1ÂànÖ÷ûöгýîø’·‡!á~WšÑ\ño ™ÆxK4’x¿|˜z¦î8Ò©;ÄÍK^7 ¯÷lâ‚OäRnë2Ú<~Yêr7±µÝ»‰¼2„S¼ìë¶ _øÇ¶G˜·eoâMS5QpI5†½»þµû²Q›lî¾§CûbNå¬}2œsÀBÍá!óºv42úd&»áØL'³á¤Ë®1W ãÕwˆU¿T¢öè>«n)¡Y´/tÃÕŽt…t\ÆrK—&á„@\Á)ó•ba¢Ð±ûåhþ¬ÛS¨Agÿ2ÏMÛ³c7|üW+מXJ”'aµt·;t™"2¢ˆD“>p$–܇S½ÛÁùöåH»›9œ)‚Fzù|l÷Õ!·D. IUGøÛ… ÕŸÕ=9 ©ª­h”‚;—ÀßìÑ}{B¢@À§å­4Ç#4…Yå”o”xJœ§v·kOcÞÔ®J–¶Ø¸Ú_¾°Î¸ÑmOá2¤:œUQP¹³¬²UkÛ‚·Î4c•ɪ †–SM½vu|¶ÄI=T—¦Ü÷õº›wçËOA¨ùؾ³ÒsÓr•éÂÃóІ®:Ëì¨0^2¹¹%¾nÞ q†â??f7ÿÖl"ó¨Èa¢Â"Íò²˜Î#2Î&)ÑS™ÙDƒða@e ÑÑT5ì÷}cÝ7s¢ë‘á)¯^ØÆ®»Ÿ)~ÿõx"s… QêiÏvîPðË#ŠT}­K»¡§Vc3Ag1'3ÌB¹Awd½(xPÎíÝŒ¼ÆæQ{jBa¡«}ÕÌ–¶l/[µi.ÍKT:Xq„  $øuíÌdž°ýÎ8›Þè+þ¡IV¬BF÷\B…ßa:6F0 ²9Ú¯ù%þØQÏ*Y1R pêûTžCAeÖ$(ô±u"3Ò ¾/M£+'z5-nÞäØH£sö¾«e7ŽÞç+æ8 `aø&s´8’ ‘ ø ä`­eÎJëdeØùûTusHndå´Ëžf³_¬.j{™åW]‘“˜eðßÀÎjü! ª­’lÙßi¥Š —Á˜Á(SÀnÉúã“øžÌR!\jÝ+Ë)&îÜíÖJgôc®•~ÐòïÞ•r¡‡=Ñ4éø¨ØŠ–šo÷‡ÝŸ5ÑtX^ I³¡YÒ¯’'u<í£VS6J"N³§5?jïo2c"©ð=8§ ÒEÈÍcýôA×µUçŽ.`ù&Æ… ëÏAõ¿¿…¢!ñî<Ø.Ža¾¸€Yçë‹ÉÌ?áÏG“呃×â%©;¥TÿLÛ‘+¿â‚ÚA¡ñµ:BüË?o i~ù$X¹¨Yç}–' >1“^X2ßCUû\¿|ø­ªfÞ‰ûP}CÃ-k„¬=z\}ôüxÐ×!¸ÝMg˜¸?3„©Ouùã‹Ïªÿ1$”‹=I²É¨†Gœ.Qâå0Öô¼Ÿï$¿¼ßPª z¤Œ”¾  QAUðœÈú œªn—żnQuuÏW¸ŒJâIo¤Œ/H²ÎY¸žRBÅk²¡U°ÅlÂ,rTBºå.ÙD¥,Z1Q«ë°})yÿÝó½ؽTÍÉ—ÿô&‚6¤alÂß«³uéÒžÄ1„\püBƉr‡ †»qcuÛBF{ÿ!xj‚tº °س…`­Ü—Ë×¼.pî¯It=4={d6¼€ÐBð3?’¡ÆÿöFn?î$òUllÞmÝryÍÖ²ËÕÐ.¾h[ÝÐy¾š®† ×T9wL2\ÏãGñ¸‘Ó'÷ ¢àp³¼I²|}]J©=ÿ¾B©G±#_Ù\qcšØÚ‹]%~“Æï~â²à¥]r=K2’/ƒ! ©ã¶M% DVËϱ?¶KÒCMÑC«¯WœûJ8G{YÇ5`qXï&Âz<Ñ@#žX¨ëzwl’$Ó,`½:ßϨëÝÔ¼h›ß›…Ó8ú`fëG“dˆ¹Â±æV¦'4 òƒŠÄàä™eˆÕvÞ³ÂˈO:1ŽqÝuÂÛë=$<ÊÄD¢©æÙ*0VB=¨’ÁƒîS-u—ôRoæ[©»M¥z)ü;âö"Z endstream endobj 366 0 obj << /Type /Page /Parent 758 0 R /Resources 370 0 R /Contents 371 0 R /Annots [ 367 0 R 368 0 R 369 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 367 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 443 227 496 241 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 368 0 obj << /Dest [ 366 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 360 200 412 214 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 369 0 obj << /Dest [ 362 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 416 186 469 200 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 370 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT10 791 0 R /TT14 659 0 R /TT15 662 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 371 0 obj << /Length 5725 /Filter /FlateDecode >> stream H‰ÄWÍŽã¸F®~ &')©ER”ÄÝÓN÷îd“`Ð{™ÉAm«Û Ü–cËèL^#òyÍ|ER”ì6Ýs 0V«Š¬ª¯¾úÑûÅìf±Œ³ÅãŒóTkÍ2üs:K3)+s•f•Ôlñ<»¹=(¶<µŒ–³›sΞ3èf.ZÎ’áñeö9šÇ —i}E–òh[ïúÇÝq¹¾¯W,NDýC˜Tú&N üîëe»êè)æ$bŽíʾiè¤ÀYür^ð,š7Ën»b?®Ú¾í¶,þóâ³3ÎZ6«ªTi‰@xÊEÎr™§Už3xZ ¶of³÷‹+È*Õ¹¨(~Šk 3³Þv»8©à"Ä©hçø¿…WY*Éqz¹ŽéÿÞ:uó“C85¿‰ ü!¾ÄÃq1œV*ÓL0— žûÒȤæ5̳Ð:å¥*áz™Šªääº?é®~±Ìá‹üUÄYi¾{lDI i¤ãD!ì ñ柒£,‡ˆm½•ÈPB‰ÚbœèX#Œhƒ_½‚A¦Y‘½†õ™æŠ!h¹06yš+YÙ,qv?‡×:º‰KÂ9F½ÆÊ…BüÕTCPïðHB*‹Š™š"PÄ©xàƒrKñ‰œŸøèðQÒl-ù}â‚88f•¾FA§q…‚Á;¦H4&‘^¶2äòoPåœsZ"ìpNnZ)i(Ù,j$6¨;Òž¦°™옠ð8¾²_ŒîÕQõ_›Tàò>çÒù¬¾Ñg¬ëg>O‹¨@óøÁ"rò+Eä4‚EääWŠ(àƒ§NPîŠhô1TD}}ôÔ â4àˆ=_ò‘šJ‘Óðô5<¡;F$‚>Ò•1’Ðo‘ÄÔ%î=ÛÊþtß½ÄB›€2Úû*ùúÅ|ûüoËäÕ>W±[»Â¹…nŽuT_¨ƒ»( Ö“_©§¬'¿R|öƒrW£¡:øèë è£gO§Çu"®ÕÓ¸RÁ;F$‚>Ò•1’ÐoÔ¾S*…3n˜¼úòQW¾|n©;ËèO1œÈ£?šï ÿs”ìÓ7ˆÄ—®–áqò+â4‚âäW $àƒ§EPî dô1T }}ô´ â4à¬Ky­@œÆ• Þ1"Ô𑆬Œ‘„îx£@2ð±„î°ð{Î<·œ+â¤H‹³…ß•mþvg oþ¦¨ZB\tò+\tA.:ù.|ðÊGC\ øè¹ôÑg0ˆÓˆc¦Õ… Jã¥,‚Ÿ¯a¹ÍÄ 21jL3A>\`»ÓÙ´èV£8dRhLru9ÎA#hã ù4Û—- oÝ–[¾L4|™hLørÉA#hC‘ü ’SF]ŽsÐÙxKN=…: /mSqÏ DJÁšJU`ÈÑÔ'¡™sàÖÚsœcóÔœŸ³Ê4g376Ñ©%ÂvͳHù"öUjóYEV“ᑺØOíÓqßÄšÆežä)Íö2blÞìñRE-Z[TÛ·zNÌBÐÓc—`I0’Áhþê¨^Õ»Þ^·GœnÂ;|è¦yZ”™{®]Üy»X7ì±Ûlº—vû+h¿+xÈžjÛíë}ýÌÐWåº{9°'Ûmßì—ÝvÛXÕeßvÛ{hú—¦Ù•uwè±ú ž]·ïY½]™×&†ŒRNd·8Ž{ܺ7§¶}9Å¿íòÀn»ç‡Ž-ºãr 1ÝLWì¹[7ÍwööÊ  0Ãó€Œ:•¼*¾•88VÂÑé±o"tÓL`mö'!ôÍ3[Ùw-–E„þDéy±ôk‡¡aµ6¡žÅ%ÌQà|N«óRŒ^š»è÷í¡ïöí²Þ°m×7‡ïNWÎ3g²pN@MŒ鮸˜néÓí0˜wÏ ë6«fÏLæáºÉ}és¿èLÊe„äßÛŒ7›;wD/CCYŠ¡àZø¹Ûw}·ì6ãBíò…â¹ó–|(G—»íæëù2M[Ñ +G`¤ûâýžl~©o;œE—çW>fešòYö œîÆŠù4O„t5ó`BV d±_» ;Ôì.Nðù½©ÍèÆAc‰t± v‹be´Ëëè§XAUŽÁT·ŠŽN߀{ü{8ö6ˆÅoá"yõØîŸ_j´ ’®%5"@ëÎÙ[œ´6Òçg“Ùèl+°Õ‰þ²"ò Á/OÃiú£ý»=טC¶u¸~ÏÖÍvÙ¼ó¾%“̹§ë0"y©0D›c½ ™a0i "|ØÇv³bµ5aûìà=ïLã£~+ éþx çб:IæAmœ—ÁÒ"˜[£À¾G:MÛ¤tY); @ûôØ–-pv$ºœqŸGcb][²"øÄk—øû žÒÛi(ž‡¤wqhŠÃÈñŽ5so—Í®?óýU÷ëºg;Ü^š ÔÈAâ=“äL£‡Áóî‘Ý.æìKth‘V[¼æM{@7Û7ž:cCۜ̎â´×|Ž Z˜^Ô8DfÒìzÃÈ&—j5úÇ2J'7êÊ÷ƒ×£ý#Z^œÓŒDŒæ¡§‘Œ†Ý’›pú¼Ç "KÛ6ÌE\Ž=æÃ±]5ïN» ¦®ž¨ ?…›‡ŒÖ€¸&êq0j·Þ×—ª gXcu°c¸ƒøŽqi€áÑÒ¼_ß“r½ú'êÐöÇf°5=Öîq~Á½’6g¿³ö‘\ØTÄ7{‡·mŽóȲ—OoØ97¬{+×+QBÅy«¬<³þTNlZ6ìˆ@»f_SþÃyµíØ•ÔÐ÷óçq÷ vÝvÕ~Ìt$PH·à¡5ÃÉ&ê΄i.â;øaÖrÙ®ÚM‚)}ìm»ì*_–“dñ"&Ê{hûç€@½Ý÷žÙ½+½·Þ}Ï4`¥£FµõZ‹rmWJpØðª>°Å56Àå§çËÄi±µ_ôûùó÷×>pjÒx„¾˜ÏKçÓŸ^ÝöV¸-O¼Ù¶ >›_ß½¿ø®ûóÛçr¾½“὞ïnOáü?>ÞïÛùïgäݯÏß®ç÷§èN‰ÕÐðDÒ€d÷Dt¶„M©B÷’Ï;Vˆ=žÀ^’ð‘½E^~<Ë*°aUH€2ÕóÓà”rixºGp²p™r°ß‘ƒƒÖ£ €Æ†]b’©+vÁ2Ë`Éj/d*,wŽžÞˆ³òÌÙ1ôá>ïæV¼£"¾=ìpÝ9)ÈÒVÚé½®@{ƒ¾BA$Êe=XPZÏèÓ.·€E­–}œ¡45Ô —0¿ÍÂ1Žëé_ÉáñÀh3) ‰0ãé[`è¸ ¹e\RÚàMã3£Á(l8¤¹’`òz⻵ù;Ðí¬­d·ÞÅ…¼¡ßE»ël½“×Óõ»ù¦ÚGß¿?öÙ´×9~pb­ˆŸœ´òL´T dÐÖpY_É«<òñ[œtB‘ƒVL,q‹mÝT§†ùqLÂÍb«MC!]¸¦’±e1{n°qv æ}ÆÚ%Š”-¸ˆëȯRŒïj-ô5–B¯cã¡^"ÆÏ.À>…tºä‰Æ+áW  ‹ pÁ®ü#³ [†‡ã*d3OMˆ÷$6<À¶ü’3H?«Í3‡˜,@O7Ha9SÈ¿ª€ÎÚW2úäªK éåÈϸ£íï[”Ñÿ=Ä8-hËk¸Ã޾E"±ÏJ㨸ɊòŠ{ãO„ý~ØË—À|ÄÜŠdÇš<;BDþ°|3‘ïÃ_Æ„Åg>²ÿZ [Wx÷ÃoZh…·ÝÅéᆌ?G8ø°Ü~#ûϯ !“2P9†¸‹‡Rºø/~#1ÖåÈ›8_œŒ¯êÑ›×÷¯oàú¾Lpe–ü’]*‚FƒÒg/bÏRtk•æÁñËÚRûLjØ‚;rµc@$3‹)å2h5óá«a>´Ù<8%´£ù„+m6ïRCÝ¢´æ#ÛÖ>+‚¥» @PÅßIF9tá¿ô™†¸÷ô²Ñà‘½Ç Žbe¹ýì†URX¿Óѯüد‰Êjžûõ5~ ÜSC½Té©_»„vc· ´ž1õk`Å\óè×­„<ÎPzê×.a~›…cÒ¯9ÐÙÛGlÊ0ÇPœÛä7àB>†çïèdzv'GTÆP—TÛr¥æÅ ©-àêæ‚wm R‘nÞ=póSÁ»*Š9 fuó.5d’`C5¯b^ðnÞ Þ]ð‚w™©àÝüq»ivÁ¥\ùÒ/. GVt‰éßic“£" †.hÀõlhc?ãþå[7¼Ü°á‰Ú6½Á“´­5äéU\f<®ÉŒK3™ÑMfÜÉŒ†h2óýƒÒ³ `·Rî üipˆ"—PXk81"ä}=E,9 Ó8¸ HÓwRÀÖdÜaÉ@j ï(ö\ü£qD÷ÁÌC3ð"†ëéù´ÊíÇ#Ö3"6ê7œ  //ö5²€»4FÐ3äip°ÅI•]¿åÁ@¦IˆÿC÷Nƒl6¹§¹2 "oˆn¼2’•ñ¿i /X™<Á-.©`%«À¯OÝí’ïBeÒðs4Ÿ¸@"OùÒ¶éÅ4–ÌXJ±è.ØQÏ7÷±^rÆ$àNÈÓ¸vŠ@–ÏU¿À{~]R×+]ë*ðèÎ/t+º•q"%ûÆ4䦊ÊQ{!CÝtÅj—¶¶‰“WŒh,•ŒjÝdŠtÐÞ¤¡î­8²¡SLïµÎœˆøz¿ZÁƒ±Oâ’[ìЋ1îÀl"uó†9g°;KÆ*\x”²Æ>Bº3¸xpzÏ }tN®l‚ÃÑ·fލÀjÃ2‡c¼´‘™®3·xÆà3œsDhhhå958y•Ð×uúÎß\Ù¨nœâÆIÈJ˜:ø[˜ìwšæ€I˜{fáK:c¶®¹ÎA9GüÂ,¶W§ÓxМëÔŠ³Vg¤}¿4W”88ê’««Ën߃rLÂÜ3 ÇTjVö)¨Á¿^wÛÝiìP-ï#(Ô’|¯Ø›†²S”sºKC½»<ì[PÓ0÷Ô‹$(¬mÎ>gˆWÀz¡wEH1…TàcßË&™¯ÊNyHÎQ‡\]vû’;`ê8z/el!%Î9G¼B“*5ºË˜Ì[‰SHÜ}Bßa¦$SvÊCrŽzäêê°Û÷Ü•p÷Ô‹¤ž0ZÛj‘ äiâ4 \t±Pz]'ô`.*Õy4R>¤ü$±2Ÿê°àt?ƒEbœŒ« Mµ¨µ·é ¥y†záæ¥Y8Æ!†þ^¤9ZlƒÓ=KØÖZnîyÂz)SÄc“µr›$0gâ:YpÚΜî™[PÏý ͽp óR-¼ˆCb«é²§94c¨_•o=ÜÆXŒaŽ -æ²ߘ\CÛHÊê‘j›Ãj}D¤§ûwõMµ¾K8˜Í)…9ç¨K°Ráæ1«(Ä9$Œ]I—@šSÂ,8íQ9G3 æ·13/L½T /â bû"èJ€ç¥k8¨€®x©;”ï¯J=,1ÝÄŠårÉ7Wš—róíýÛ°Sãà\u]OK jʭʦÈj«@xXj»è¯ËÞM`8ÃälbS൞ߞ”xù((µ¯ôÔØ…:#án×ÝÉ¿Rd#ž¾'Y€€lÂ5­!Ëú‘å>Á †UxEq@"ÙVbñFí\dºŠùÞWY4SŸÓ>d"iànÁðä”Úw^NJ¸GJ,NB§ÞV=èÀd©oDýl¼{í›ÆIï=k”f¡ùÔÁa‚Ç0Ȇjà| ¸Ö§k%8¨Ó½?·<®5Ó‡˜Ç÷]É5]7ƒ0 ÿ"§¢stÿ]j‡æ‘@è@`‚U] ±ª0V±‚ZÅ ¾:?+¸«•Í ˜ÆŸœh¦å«*‘î’džÊrÉ SpòÆZi.Y•þnÍ*ÐQ€7%°¯Àq|ôXÍuîS#ÞëW|qz endstream endobj 372 0 obj << /Type /Page /Parent 758 0 R /Resources 373 0 R /Contents 374 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 373 0 obj << /ProcSet [ /PDF /Text /ImageB ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /XObject << /Im1 375 0 R /Im2 376 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 374 0 obj << /Length 4769 /Filter /FlateDecode >> stream H‰¤WËr㺭lõ½$oLšÁWvsçUÉõ¸lf6SYÐm1E“.’’çþFfþ!¿™ÓHI¶¡,R.‹$ºÑ§_ènüZ®.ËR’ ò~%DXEø³¯EFq,)SIåqAåãêòý˜ÐzÔlëÕåç[Aã ¼QAëU0¿>¯¾y·~ â0÷þðe ¯«ž¦ÛË~·Þ^WòyõÁ¢Ï,Sí)žÃ}µn:?(ÂÂ{ð“èó®Ù˜•šwJìÅSˆTDÞm½î» }Ü4SÓwäÿ³üÛêc¹ÔÐ*Ïäˆaˆ…T¤bæJ4Í$ õê~õkyÆqJæl?Û& 632¾ïŸü ‡r°»¼ÁWøm UƬ8/n}þŒR—Ÿ¬ÇU«üÀ¢Ö+ïO~ù¯£x@·ÂC•µoŒL’½LìaH¾(ÂNddåUìÅÔÓî¾`'±›¥<âX‡öÔ¬ˆ¼DD¤GyD½c£$“ò<‹¼ÿ¨Pt]=ø Rû1ïKâÅÍÖÉ “H: Ûòÿ™kQŽi±ø:^RŠ_Ùn¨‚?h'‘W–WA[û °7–nÍË ‰¾¯ZsziëgÐþÚœƒ:*ÇS B•<Ÿ,žOI­ B»W•ýd•øÙ›å?7ñçµ5ýˆ¸R`ý'ÙµÑø–¢¯Z¿VGÕµ]Çê‡xµùÏÉW˜ª©_ú.°ÔÎb±If¥Þ Áˆî¬öVk$ÏÀ‡ŽkÛ¸³rìæJ×;ËYÓ}?œºèuŽ¢võzjŒ»Ä£M3èúšyëÉD,›Ó˜S¶2–üãÝM©“§GU5ÝTûº3yÖ¶Þ[¹þØkƒqÛ܃Éì_o›§Ù+!ëÐø®G6žª-jgFm“¨±IÔL'êšõ…Ÿ|Ý#è®&“*Zû‚[ÚÝЫ¢ûfx|®ôéÉ´rÈ‹uÿøÔ´FÓ`jk#G€[gêg÷‡Éü™/uF¶3ÂœÜØr[MÕþ¤§¹n,¦ÈÅiLÈ®‡ûÀ;LÔßÛJ-Œ¿soÎ|6Ìj6Ãû·/A¥qBRVÆþfgy×µMW_Ð]رŸ'ÔLºþ쫦Õõgf°`4>i«Qö5Œ8Õ?GM­†ªÓ›“5àGýè üWw“y ÍúQ9Ê塽 l‰âvp°9ò0©cSiŽVk}Ì‘4Q|ä£VxÏ\0^$ðëÍž+眕áx¬„㥂ÑÚña1ÚÌ£È#Ü Ç½]^_/ì>‡×·—’6õ¾Y×#Réï|†mþò™ÚéQþ®D9wÙ^X„ð‘™ ?•K¼ïß_Ž'XtÒÖ'be¸Ð¸yðÔtôéÓ{²Å€«€,²ƒ…ß¼m5ê÷}ÛöÏæ”#Ù±à/:÷¥tÎíZêÖm_&ªH0ÈP¥"›{wª“2NS£ a–"E ¥”Q®•á«”(J)ÝW±vIjF¿–ŽS•èW3‘žp$8P'Q” Òc ù’î@HEGÙ1Bœœ ÈÍ-úÛsˆâs úlê˜Éù &2ÌYnùq„3™¸ô·âH„i‘žCPY%Ò°Ð*U!Ï!¸k¨Ü°ÐEÊœ…ù¬`K::f§Wg9ŒÇǹìà8äâÛ ÇÉäà8JÇQ0ßæ8†ƒcö–˸– Ô%¶¢ÙWÜC¡O£Èp*årÉ›äuÿìÇB@)Êãàó=×¶0ÎâDWX?ÙÒ.õŒîabÔ•)S¨ü-œ=Wu€[T¡ì.%x^ûî'šoÌC£¡¸)A@– Ht¼Á8…šbTæ ‹½‚Oæ…<Öï¨k›ûMcž¹OcV˜ÖzrÉ …;¿‚“’&ìÒÆCß¼+L’ïW÷+ ¼Y[û!+#ã…ˆÔHøl¦ÛA Šõ0)©ÛèçB$ÙËèØýÑ×$•‹âeˆ¤41Êò\_I½/—ï‰ÿ_ö3‰iCI›u:9Oû•¥Ïýêˆc>£–c®2 =…Jù®RÌ'–3ì £,Œóøœ{Æ]ÐPDVœ°Ô‡¦YzNÂ\#\@Ï2yNÂ\C\ N¦üŒ„¥Æ8$(…Ñ Ug‚9× g6ÌÙ’‡©œé2C)Ê_pÀa) œ5ßI·ùfégæ#«ƒ1òD‡™Ã…1OH ׄäÄX8ËŒäÆ˜sÖ a\ó”äD8$µ báp`,s’cI{'ÆÌá˜'%7Ær0œ3‡ cž•œ‡£ãÂX8Ë´4c8§%çá™\çÉޝj"ŒâBèQa~)tŠÐ†UŽ+©,f…7ïgß¼O€Û{Ø µû•B«òu¿#*Ë«sDýSà±÷—WKÀmVo±«ƒŸs£ôS¯šF½4™/¾zš ƒ¹âšSZFßñœ 7Å'«lg6à"Èߙ팇K)kàì~-`ss1E¦§YrðH¼x$6¹m›¶Z}ÅL¼?|ÉÌ»ðîÝÔwÔãZÊ=ñ£½iëmMÓ²Gðž§z4·ÞëÛKIÞ•ïˆy=Üaé®^÷µ¹âÞܺ•ß­¤|˽ ¸Éz.H“É«(. ï¯|‰œö~#ÂzÆ ´f1œƒz{c`… ‰à\¯dú Æm¿k7ISã£Éyõ†¦ž*jûS*n0ÖFëò«­\´•z4ù!~RsOÍDÍH]?Ñn¬7¡žT´¥<¯}€Q_ú XÛjÒÚBÄ›µxë÷5múÚhº}oâ¥<¬ß”·„lùPÞ'NÛ±¸ÄàZ€çŠó§ð_rÚÕûº}åèeî'`5FVd­¯´±˜°+½Ðš*ûÝZ/l¯ aã ž›¶Õjöw5² +ÓzxFýÐß}”hï§Yzb2£ôSoö-{B¿NÌB·ýóhßiœÌ Ÿ¯YQ­ÂÈv§Þkõ[d0Üo¶Ÿ†-_–ë7C³¯Ž9JE!«ìdÌá—8”ÿå¾Z¶Ü¶‘è:ú ,¥ØVHÉYÆ÷kâîã,ìY¨%*b"QŠH¥|F’ž{«À‡º“É™3»9}l…ê]uñ‚‹úWîU/Réc®GÝ9›íž¨—ýª«YH[dO[©LWâ<‰"žk±H-YÔº9\ÚάÎg‚÷ìEFD@e¶;Ý[‚§ B‚hlTíµè†“°Ä<óñøks:>À²cñ6ëEš‡]d¨¹^D; rÁ¹†ïNÇs÷[+ùÖÖW^Àfݳ%bév©ö{ò‹íÊçOšÑ7 2ÿضõ=ÚK{Ü_Äq¨6Ôr.Ű«ÎÕ?ô¢BÚ\&¯ÿî[ŸÍ1CŠÌÉÃqxÍ¥îž6L¼5;Q ÓcÊü·Ó­±€µRšcè¯{-§G‡‘éS0‚«­aþf¹ø~ÃÏÏÂqK'P詜@Lr/¡ˆ,í/r°í„\Ì&J_}¯‡Ï«ŠUv;ÝÙÅ®ÿên!Íq¾œNÇÈN¦ÿbö+æ¶67ö×Ïžf ùvðf~ÜŽÓá˜7+!ŸºZÙ[¶žÅ ÎØ5G¢v î üùÒÝ èñ«´ €3šïL×x­Ñ}³U©æ ¬Ö½Ã 3-²mó)ÏÕRöìÄzVåu±0uetKyÛ}X?Ö ÿYMª&Œ2Ê«W-:O º=^ÎkŽ@)zÇÉ&õw®ÚºíÐ0ÞÎ1N0ZÒ/Þ.8ß;-{~Òwù»H½1ûU‰DK91=šîZ+Ô E‰k&øˆ ´è/mÝ0çœÆ›£|7hµQínõcEWÔÔi½•ì ½%ŠN£ ƒ´2¿+‚‰×üA…Z‡cW¹öa9ø°T>ó¯5Pm}8hâI§¢1ÒîEB)U(O&dnª¯¦Ná¹”Éò°â.­MYa<ˆ‡ŽêôŒú—s¯äqÚ &e.•­Rtÿ¯Ñ—­7/oeä%æöå,5Ÿãã¾` ÀÂWæÍ¿³™¥yX:Œuȼ› •Ö”ÙÒå–ÏÛ,`4¥Ã~š¸%1ÅÈp‹Û0˜²@Œރ֚Ä–)()Uêº \sëõŒ'Ÿr$xÅx;Þ0¬UN ¼¢DFƒ]æW2tM½=G¯eõëÙ=š ü7ºª b¡d·…PgÍ~àÉüN8¸¶xFíG 2VîÀc6dÂ`K'¤#ËDÊx&U‘,(ûbs8¼ûé-Qûže¼ÁuLõyÐâ5ÁÉ5I¾ÌRðdJÓ@`*”Ä9n¡ O%ʃ>^Ž”=ÒæÃ»YA8fë§õ¨¶²,$>Eaýc¬ªeˆÙÏoô‘¸LBÈùRô¿x+ÊB¦fì 12ó$ŠŠŸ)"^ïLfaRYäƒ(?ŒË"ŽK¢=ÏÓðQÉ'ÜžxŠ=¿ÖŸµnü¡Dùœ;F¶KÜÙý3^¯Ùˆ` Yá¹ ÑyÑù§G6LÌμäÕÄÔ‡~dàÊòh–C­ßèúyâæÞõvf9$ ¶§i9qó—•Øáæ[¾qœzÜÔg|Ë@×`!. Ü)Z0 x½B®×# ʲxæTF,‡«ÿ4Žo$/Â0çÐçlüžç0‚/"B†êö¹J&…p .tÉ,SSK.›³§ùýÀcK¾HÙ¾ÿ× Z¤LP´Ê¢@%ôYãTÍøˆÍç¯ûÌ18¯ÍrÀÀ (0—ÑO+ØèÇlIóÈ37íüÕÄ5®Tb÷NÙ«‰;Ô,ë`Ë®oÞ xûŸªÎ_ñ û¬“A áÍü“¯‘l7j??Y$ó)™HnPå§Y–¡¿Á ÆqÁ`f©ÁãÖÑ¿ý¾-í2$vBá‰ýì»÷MƒÉ¿vóˆK鸇b7Ìô¼0‚‘°˜B×O3BY8}êd(_9™A$!عYf|vHÍÍqö-þ8ÿgm[ZŒ4Oâ)ͳ‘0 uq´‚C4p|HÇ5íD/N§}>÷7ŒùMë!ãm 9ô†˜žƒŒ~­¾¤GÔr¸á‘ë'±@²fÚ:ÀcˆJƒÊôå ‰R#I%t0!wAä‡ÂÑ@Ø>ÿ¿þk@°sfŒc±Ã<ô†~ˆ„ýH°}F *7)Ó å4Èõ¤y²Xælp¶ìG– mÐÚÎzb?ïq.ƒàrŠ,X_E oäII&‘<Å„¢„T1þE X4í',ø-lÔ5S_Lú5Î%éU»–•dPK”| jÉB‰‚°€Š2—5O¿àˆÿàc 6s·¡j×N²ÿ·Ñ–¢¸Þ–‰ë >a\ƒW” b\f•â"Å‚GüÆvã¯x Θ‘§`¼ó+HæSY˜LÖO):ÑB<ÄÿC”†Œ<# À¿k¡#¿ endstream endobj 375 0 obj << /Type /XObject /Subtype /Image /Width 19 /Height 18 /BitsPerComponent 1 /ImageMask true /Length 75 /Filter /CCITTFaxDecode /DecodeParms << /K -1 /Columns 19 >> >> stream &¨Â0Œ AE$’J’I$©$’IRI$’ŠI$•$’IRI$’¤’I%’I*I$’¤’I%I$’J)$’T’I%I$’J’I$”RI$  endstream endobj 376 0 obj << /Type /XObject /Subtype /Image /Width 8 /Height 7 /BitsPerComponent 1 /ImageMask true /Length 16 /Filter /CCITTFaxDecode /DecodeParms << /K -1 /Columns 8 >> >> stream 0•$©%I(¤©%I(€ endstream endobj 377 0 obj << /Type /Page /Parent 758 0 R /Resources 378 0 R /Contents 379 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 378 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 379 0 obj << /Length 4536 /Filter /FlateDecode >> stream H‰„WÍŽÛÈF¹è)ê°šÁˆfóO$‚Ök{“ ‡ÁZ@ž(²gĘ"²5³»±ö;ä5S¤¤Qœ`0"Ù?ÕÕÕ_}õõÛíêÍvƒ…íãÊÚ°,KˆðO_Ë(Œ’$†Mš…Q‘”°=¬Þü0ePO<,‚©^½ùñ£…§i…c£ Õ«õüú²úd>k›„…ù%ˆ£Ðš¾:ú§o‡S½¿¯Öqdþàì hˆwÁ:ÇçøXÕm¬Ë°4O¥.øñÔ6ÒâhfŒsñimn#óÑÕCßÀû¦õíÐCðÏíßVï·+ -¬Š"ÌÊ7bC§&iX¤) §›F·z\½Ýþ$EX¦qAû§½Ù’¶ÉŽÁº@çp‡8ËŒAŠ¿-z… 9Nû€~½8õæƒF< \kûŽLÕ+ó»`û¯‹ó@ßJé–€¦¼¨¾ÑÊS”"Œ–p}[†9‘VNMEQÌ ‡ûŽ‚DaŽã‹u¨/Ø»)#“ÙhÖ£"‚5|O›Š©«(6‘ùwÆp_=´ˆ š—¥K˜5ÂYfQüãÞÒÿ‹µcçåëXb&­ó¶Ñ“à°1ð–öl| p3èn‚†1ˆñTª~:´Ó´ â"¾°¶ažœœ/Îe¥w•¯À&^†ñó$Áô{SupÐöàZü¡iGŒ$…§ö€q?ô!À–ƶºT£Ÿ›ªƒ—vtð`¶?kÓ;DIn`á§¥é!¿Ù[›1Z‚ù’iV½í‚^nn?5]§&—hvtÜ>ù d„ÖÔ¯_Ð tä©@6'So-¼å/ünÙ˯:IŒ>Ë£Ãݰ½˜rjK×ku<¯´Ïf<<1” ?À$ƒûFW/wøA¦ éu“2öðdÜÜ!1‘É=ÇÃô^FI§xûG…ÁfÁF;¹¾Á˜Á—è+LžÏµ4Õèa×ú;tó™ «4=4l(ˆ„ù»ÐžähnÞ9f*<¶ãäMËJ ±1 ½£ã? £Ó[Zs8²UDÒƒùØöµ£}¾r;[ÜÎÄmF×èø¼ýbCÄ&yÑ̈¿uÕÃŽÌ'‚iföñˆ‰„㪉˜–ÜDZmïݸÞ{cSO†Ì Î!‚HL‡$dsÜ™€ƒ[¬œF×PîàòËNÎéÙJt¾=ÐyÅf &x¼Û½´c\.ØE¤íax”®âþzÏ Õü!SºÚ ùðòyÒ¡íå³ ,cŽShÎ?/=ó‰„P\£+ƶˑp14»êÔÀXywwÍôihíå¼d™§”§qšà¨e…›™ÁG5/WÖqŽ$4QÄdë“ù€~nÌ@‰ŒXçƒG Æ—Åâ²k5¸§„LLÕ(TÜØ"W<ÆkrŠ%?€ÅDp-s|Òæî`#K"Ü!XšûbûŽÕØJŠ- aþœa…çõH™•aJÂN¦!—ºÑàÚà 5®OGòÛÆjB]UVnÜs[Ët,ó½%¦˜¥N×¹vSŠýËpNSÞ2%Ôèj)ÂR.‘þÄØ9Ëi+é\MÏ^äL®‡Ã©È5AxÒžCZ.Ž•â*«˜•ö—Fhƒèqèºá¥í)Ù­ÛIÑAn;;'§¿Ó&> Òf|g3o5ð]š(בÈáEÎfW·‡ªÃV2„àÔû…@œçíÄÉ¢ˆXaÙU<ðìÞWsF;Écû†IBÀŸ¡HN²Ykar¦ª¶ÌC„hx¥µ²\¥Ør¾È6@£Rt¼ÌY«èë¬UÒašf,Ux¿Õ66BfHâ« 2ö‚=pl””vžÇï1ÊâÞ›C ñ£Yƒk·ÓBRÕàbWítˆ+H¿‡RœQ1‡<%™Õ5Ñq…E‘ÒE‘Ýõ´Z—ð½¨<t8áE"WÌËÅ~Y–|AiNɾH¡äÕ¡Zèï¸Cù#ýà©ëþY.W¿Y\ðiH ÞMqè1§àÌX—HtœU¨¡-f@R|*<þåBDµ-=)f¬‘¥)Q™¢¸¥f² (DìWÅß.ÅyéQˆ4zþ»ä¿*5wx“?ƒ“F>ýÊcÒ@¯žtaŒ#ë6bŽ’æiØö*dΞ®ŽF(²žqª‡›Û»øÚp‚Rð§~ì¦K›pw¬ØIû°Ò>lÊôXÝ,t‰Îol,²—Õûú»‹sV„¶þñÇP‚Õ_¯ÿ¦;tÔjÙp¹ÅH´½ÆÕfµM#ž M¥‹áé8Äæ´d’by¸ÝÆß{#ixã}µ¼ àEt‰%˜åŠÑ)×°l½ßmèqž>jw'R -å(!$±Èq›]ë"“[¤?, ë@’š¸uC¾¥ÂFú|%i)n—!)ÇØÚ/«¤zÜ2Ðì~Uí&NTãn}xˆ ÷2ðŒ«CIÈ*1rø+[˜zÚ9}îœ>¤ñ¹«Ðã| Òuœ+èJ1Åíµçè)SÚ` sèæ#þ£.ÇoP4³žxj™ÔéûSñ½çfO m0N;©*Ž/#—¦³'…šùME~Ë®]í7Ò|™"š¶OÎzÖÅáŠÎæoªV•§'•è–!DvcuÍ–[ ÍÒYWp”9˜n5Rÿ<Ä㦠R™<$pU®Â¼24­ñóA[ÅO; [ð€ÓºiµFæoháõYý™—ü°8{~>ºêü‚—µÕÅù™ª~‚†ú£j›^W îêuõî·¶Zž)©¥‡ÊÕ8t‰Í™PƒØ6Yî²Eõœ‹‡7Ðú3Y¥)5µ™³È*­‘íZÏYò*‹æ§Õœ%¯êñˆ¡3–¼j°Uýœ%¯Â-ÕÍYd•ÑhÊÌYd•±ˆÒs–¼ jÆ k¬F¿hÝœE¹ºÛûÂr²@ ªÛ‚ ³),˜qaAÜ:hL F,‚Iñϱ&Å?cÄ’0Ád‹`Rü3F,‚IñϱÆ9ÄÄ—±&åHƈE0)G2F,‚I9’1bI)¦Uù†Ù"˜”G#Á¤<ʱÆ>Uù>Ù"˜˜l’ ‚\£Ûò³E0ò¯-_'[Æ¢¡gL¶&åuƈE0¸çЖ–-‚qPmù‚Ù"˜Sd[^=[3LüJ_/ξ_Ìõee6=éËÜÛ]OÝù]}q`ìêÝ=+s9à™q¸ª©¬¬%Ãâ bL[ë±}®h<¸{â°Ñ=Ѳ‹Û¸Æ{ïØ¥øi´oZg »4t¨E¢ ìl¼°Mtkh x­gnV4xÏÇ×4×túhO¦fŸÇ^(dMÛ9}‹/u@y¤rgO:€;[×§'<ëB:¬w QŒ*ë½Âžø±nÿGÓÌöÑ„ÞYýE+OéÓ›hSH¶Ž…OM•4€¢@i_»E3Ñ%%Š%Ì&¯Ê‚ô4aÄÒšF R¨ç5‡*~R+0¬ DiÄÀÛ.K¶¨ÑÛêEõ­Òoƒ0ŒÂÚÙ˜>EÐOd¸ï ¾íóW÷^¬ñ®Lx—6 ª¯´XDTÛ8—BÁÛu!•¦I£~K¼Nà!GY’CGʬed-,™µ L²dL‹.ƒ×°^¡¯Lö‰ÂôüÈvwǘ~˜`¥Ð9 ½-ž¡³_ô a´ÌGÏrü¿ß‚´æ {ê-Â>cêIÂ),9¥ñÕB ‰'«$ñ¼iú¾+SºÀÄÄKIé$|òéb‘ÓDPº8=¯J§ÚîM‘ö%&œ.˜"íÿzïÏo endstream endobj 380 0 obj << /Type /Page /Parent 758 0 R /Resources 383 0 R /Contents 384 0 R /Annots [ 381 0 R 382 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 381 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 154 650 172 664 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 382 0 obj << /Dest [ 194 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 432 244 458 258 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 383 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 384 0 obj << /Length 3698 /Filter /FlateDecode >> stream H‰”WÛrãÆ­¼ò+æa)ÂàB‚•§µ´ëØUZ«,&©”•ŠX‘ƒ‹´ÎoìþC~Ó§» Dz×I­-bn=}=}æ»õìr½•QëÍ̵Z©ÿÜç*ðƒ( Õ2Nü Vj½Ÿ]^µ‰Ê[Þ¨6Ÿ]~gÔc;ÃÞ € |6>_f¿è;on"?Õ¿zaà]e‡®ÄñuÝçÛÛ¬PÞ< ôö`Ñ£-õæ ü6›,/+o¾òWúÑ3´¤¾ïËBf, q¿Æ,L ïl^W…zW”]YWÊû×úÇÙ»ǫ̃RÍÒÔOV 1¾ cG±ŸÆ±‚¦ËP5v¶™}·þ†¢Ô_ÅaJö“mfEfbàU}ðæ)”ƒ…8¥/ÆßZ~DŠÓäÖ£¿(uùÞy<ö#ܵ¾&QùLÿÉ[œÄº­dYó¥î‹nV!yY‘‡! ÷›•¿€éæXgäÅ…fw_“ÈÍa8Ù‘ûî«ËU Ì!=H5Woɨ–Òtèÿ’®JÝf]b½ˆÎ%Éèfçá$ô“ ü¿¼ V~,8Ã~Ñë­UÛºíTžUªr°ŽnLtk;ÕaµàIôs™[•u*«(',µêʽU'“‡~×–Y€ÁÏë;U912•ñ]ùlÕ¦vñkHúÎmË ’ ‚}ë+±ŽBB%Ç%cŒ‰Ñz[¶êÐÔ¹-z¶$Aæbꩪ_*‰JÖ²IŸI¡mVí6{²šD¡›¡­ú‡|l½9MÛŠõ'½]»9\T·%ëŸÉnYÏÊj˜Øx!™hÑýg§÷bÔ{!z“F£2âsVIb’çIdê†ê¥ÜíTkQ€´7«ªº¯Æü³G4hTuʼn¡xâóÍœ,œ[ ïˆN[®¾#È2‡Œ‹ŽJÏhùÞ[þ©<ÙzMÑRfÜz/£  |éj¹6ŒeLPÄ{àÞ;^ê9ÏöT(+} œ¤µÜßï:Õvò݉YM(ƒ¤$ÍäúWv p$B¸Ñ0YäðX­~à*Ã_ü[ˆÈ}íô:‰x8F<JLB‰IJ1¹‡®¸YÛœ™sï9Z·‚Ø/kpÛ› ð'E‘†Ç¢8K®·Ê@Ê“iÎéÅÙ"9wUïêc÷ee¥d:jÜ[8VÕupr¤z¬k7ê$ùê¼ÞfßÿZÊ»º~ôH4¡ëÿÉÕé5ÓX_‚:AۄЖ6LǸÍJ!6e¶ãØ\¼–±óìv¤-ªþEhw…鱞áõHpJ.Sp éÄ—3|Þë›g}kÿ(öݸ@¦ª†iMVµû²ëÐ)ù/…™váp sïM’™œÌn¹1Í–}{àOîøµ¤L`ÔU…l³¯ ^h>Í JñX*øì†ÓÊ?µ¬qR&WEoyì”—ïB~Û’yÅ‚‰ÇB«š¨E¬EÜq·$a΃R.ix‹Lõe¬·=Ú,.‘C"±íe#—ˆH§œH9^ñ:>Ë1>K1·°ÜèrÉfdOà ±ÒyGV‡øâ •¶Ü”nÚí“zA긽„eÜz>ˆ­.TÉ9Pî¶É\'lÔì\’õ$©KÙÒ2\¾Ò<5OEóÆnølÊ]hÓÔûirQ^…®\\r9S{±cÿÌ—bÛ°¯á©Ü’rcºK砞æ¤X§]{øâ‚[ ™ñJU3¢’q9uKAJ([éçÒ›m UV€²ÊÀRBÝ´ÊkÆ[Îží°´eÌFä‘íÈþ§;M\«C)[ªc»óÅ+5ßÀ"®´™ÊŒB‚ |lûáná™ëµ „K"xfB5u½Ýõsò<4¿Ýe¿ÇMütÊ@Íè19Î] y¹aóRý…˜Æ^`)”Q›z·CÆÜ6 ‡HªZw–Ü›¢—#a.<膰Ñ#bq ÑÑè–H4j»fàwN¹S ˜)=rsBµyV¹qA¸iò„ð½áÐÜ–úZº­š\ÅðŽ;*C`ç wm**$Âý@ 0¶Ã'6ðß1ÑÓœ=F`Á¨‰\jKªJ4AЉ˜.nf&DFE€‚7q@ízøêßÔÔ$Š5…ìî«L¶¾ˆ>Òçᦔ‘·Ø\–2^’ü)‹Á×g„ãìùÂÐ]Vè臆i=Ò\8!àkc½ßÙ¶Uÿ‘‡Œ<9šz¾¯™Ž²üÉÊ7÷…þ ºA·­{iÍìÎ >tŸý+_Ê#ŸtšÕ=š.©tN‰qéƒÇ,PËLç=ñ3ÿÜPç@öËœðWþ>,ÓÏõE IÔKÍAî ´EQ4½XOY)$IŒpÐñ&èÀã[á:TÏ¡ÑcnÆÈ]¦ê²_®ŸêªœgÿÒÙñzÙ:¨uÀÀM`‚@¡ a1bþH¹­»ù: ÞŸàÜ‘)šñ.“Ï'«——ÔÞÑk½”­F2FpæM6P2!LGã~O]{üÔm;ÚÖˆ€’¾+‘©xÀ«­ä“e‰YpsWößý€X@8b <؈L•#3‚°ê±<u4MnËÔÞÞ '¸b’”’–PÂé*ŠEÐïóU3’:ãH]²…rbSát$Ò†¯×–`¡²Ï:·ýC×dRu97fž~:ÜkñžßJ¤ýä5Ûvo‡ë²œð†Ä5ž‘:q½%•Þ.üø´#iÜ´þ8i@ÆxÒ€ÂÿBW©Ÿ98~$áæ "5ûØ€4„'lØÒ ™k'¸~Ÿö“³‡Êù;õMún!ÅùI]4« 7=´ôø¾ÛG,íƒØhöä1¼ z²¿P§.¢ö;2ßsÓÐÞá§hâ§±/r[ÔêÿÜ 'Ué|…`ß©ªØAÿŒº¿§ÿnW%…RSwêMßRÎbþƒ¬ Ã@†ïÇá•:²VtþJýu<üV]ŸD(LÏ2DY&SË1#ˆÎU~fz´:O<ïk‰'7ΣÈ7æ®B¾L¿lmcOõB‘¯ÎôÒÏϧפéd×9Ö*Gž SÑ%ÛUVD¾Ñ7ØÅÔз«~ÿ`×÷Ó5w¶% ìÀº8£†]<1áëÀz¯~ºQ× ì.z¡©»ƒ¤Ìñ`ÍE…S@vœ÷‰±&ã³7ÁY eÏY¹ËvxÊJ-5üŠÃCô¦Ì›º­7sŸhûRŸ1vè„"ºÎó´ ý„)âŠø? dTeE8¿ÒÌÒŒþðjÙ‰†¢û~…—ƒh2Ã0̲Hݵºcc£‰š‰£ØªßQõ{{îÃN2CË*OÛ÷yî9Ê1Ÿê¶Žµåûªé7ߟͪäJ|Ю魗=å‘èÛZ¸Ü.Üp‚‹ÙÆÜðRø$SøqUÔeÈV©¶ÔÏâ‚<2 ŒrÿƒØ€x±^.ÿ¼K>–Ûõ­„§ÀíJô TJøÌH¦ˆØþA¥p ì¸ ÖDÈhŒ· Käì†å|(÷u«kåGsÿSŸoM}8¸ª¶‘øZAËÁ{w¹™ì êO5æFON{U’s‘PX@ akR1Lf÷Q]ñ®ÿ—5™ ;£2F”K9•1!¬8D£¯=Ås@ ó÷Ækv3Õ *ïš‹D‹¨Aò8o|ˆå}¥‹'&Ì=Aƃ‚UBÞ,Qˆ¶#G‘Ó¨KžZ¢WÁ{¾2ýód¿~åØnÄ@Ñz09ì‰ø'V@Ü—³½]aoЍ^¶xG”œD½ë} ±¨UrµÐh±Æl=¯“7µÐøô´n¬1>»×(QøZ,~p44Jþ‚Å—ºvc€ŸÐLý‡Q¤•­í3 Ô]¡‰»ÀËÉÙ3iTŒ£6c»lùµ5=smÒ4&}Y ¿²üL„ H%<²½@¼¡Ü³•¡œ[!ÿĘ¥‘v‹Îõ5è³ì┬Aît¨>?Œöàâ¹Q¼ä褖»ºXÐpÁ¸Ãl³âÞû:å4:aèºF3žêð¹÷o-*© Û—~B*€Ûá*MUŒÒ4q¹xµŒX¶ÐócÞÃíÓÙå´Ÿ7ÜÏê(¤{o»ÎIÄ´éôÎr7TRL…œð ‡:NYñ¸H`­È]Ï^¦iÒO_Rŵqʬ¸`ä7Åt¹ 5Õ%dbAc‘y¾—ô{/Do-‹q’Rîò‰1fôW³):e»yIƒlŒ±]]1ÂòóÆ8! ¦.‡Æb>´BÒTE«qéi hf5sJ.J;„ÉÅ©N¢ CçÛh[‡5RŽ™ ëÝkZÇ,P÷ÒƒÌMÎRJ´æþsð͹Ðï]ƒ"|uS&?¼Ãîz¹4ÂáÖ\<›ÅÀ&+ú`‡jVˆ[.Ä­@;Ïþ†xÀXÉ¥¹]'4çÈÝu¢ÿÙYêh8)ƒï…õ0Ä>²iGN=-†0XJùjÜ’;n«DÊ–²Ðã½u•úže2 è  &ÜËGˆþÒÛÃ1œ'Ìì}Ð@9bœ_|ÿþùþѼÑTr̲'™Hr¨žÎÛ1ÞaBeé`%G®¥ f6î²»qÖSnjÙ,ØÂfÛV[l”>¾¡®ê/†N!þîñÓ_8Õ6 endstream endobj 385 0 obj << /Type /Page /Parent 758 0 R /Resources 386 0 R /Contents 387 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 386 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 387 0 obj << /Length 4387 /Filter /FlateDecode >> stream H‰ŒWË’ÛÊ ­lõ½ð­"S#šO‰ŒW~ÜW*I¹lÝÕ,ZdkÄX"²5r~#våò›9º)iäGjªF$»@À«Õìùj•ªD­6³$‰ªªR1þÜcGq–¥j™Q\f•ZígÏ_…ªGÞ«±ž=ÿù}¢ÆöÆ1Õ³¹<Í~Þ‡ó$‹Êà_aGIÐéƒmq|Õëí[ݨpžÆÁ¯!ö`1¤-Ö„ó~‡®Û.œWQ<„ -©Ÿm#_ Lq¿I²Hâཀྵû®Q?6­mûN…_ýyöãj–¨VÍÊ2*ª I¢$ÍUžåQ™ç –.S5˜Ùföjõ deTåiI÷§»%]3– ¾îἄq¸!NC˜ã «â(#Ãéã6¤ÿVŒzþ“óxeеzC¢êYð‡põ‹xÀ¶J–Å¡9+uO¤Y¥äeE†$èOªh'’æ<ÐäÅEÀî¾#'‘›ÓôbG¹¬.«8(’xéq«¹zI—Ji©,—qðß<Ê•RoõCHJL˜Ñ¹b1¹Ùy¸H£"N¿â`Ü-‰¿ ¶¸ŠÒxQygCÚ„©”.üÒŽ¶ÚZïT×[3þéÚo‹hY\¸•Ä{`Ïœ—æIT¦g·.&·.bû½Qý®1ƒzo†Z¬ì«Eð6œçQèfTvÐݸo­5ÒÊžúùÚmâPäÅk ì“·Ø•ˆîºþØÕfï×:«€Ûwj;r.ÜÚo “µIq¶¶œ¬-ÅÚgùu|úëgÄ0¸•îȘgY&ê°”±Qeð9̰ᅲÛvTmÅí¦…évkÔA7n—²½ªÍ`uÛÁ»ÝèJóh)WJ ;´Ëe1«h†öÑ £Ò£·zõǯùÖncæë£µÈÐ}M·ð›Q‡ü¿»÷š=èƒtöf¤à«ñx8ôƒUý Ìþ¸ÓÖP(¶íÐL¦üˆ¾;§b’}Så£ÙÑì6t) eS)×_ BCÓvzÀÒònÀÕÝ$ßW«Ü¥´š#?špJšŠ{²Tœƒ‹Àsz ɃñÚï)žaž ¤ù$3d&Ñ"óBãâœ.…È]mMH¡¶ý°ñ³æÿD¸E FYïWÞ-{ÞBhM€úÅöû륓Gù aâßF¤Ë‹u”× /¤*`m÷"pxIüt¹¸ï™ÐrD΋¦¬ÁL Dl–"øJU$+ñÎ`Æò!·[mÕ ÕgIÕÇ(Éf”š0%FçìD ºLû5•/,2h ó¨­`$dÔêÁˆskÝùU³ÛsÀ;.’ œ=§•Ñ ?êzû$n’¿î Ž@FaŽOD?@w|VõVÓëÀ¯üˆ\BÀtÓ2x‰Ú”ï_»BZL[Ý3º÷ô* Ô³´¸ï Éëgûy ^î<•0v¿Mýb«w;G‡>•Fóh$å0e%šðãQ’pÅ®D£[¿O×֟ƽó`„?‘ª1­;Æ‘G/µëJûîQïÚ†oævâã ,\_%MüUR×éô`‰H2*þ‚Qäq'oz¸cD¥ˆ³á·ûÄ]1÷õÞô½;ýʉtGüëC¸\Äríô¸ÅìFÊÈ)N8E–ˆ¬Y•ùè¶Ôæà%oÀ¤Ÿ~ŸÏV^Xv‘N“|¿G$–àÜ<+¨%ãúY÷ŒˆtF¨ªèJHyVN×äox¥·îá‹—ßh„^ GføvppÉéU.y°7ÒuûØÉUnCÿ=*wF:›Ã®%—ú¤Õ»R'Yx®_#±MJd Ç.:«4f_¡ŸådûRl_ëcƒTÜ;È*Ø„ä Õh«Å¬%›•Têü&¦#‚ˆd±ÄÄÕjIÞ}¼³ázf€w¦$–aÀÒjœqGß÷ Ò©µ[*…Åô˹ˆ’:ªýõem`ÏaÊDNÎ3Už‹e׃تûºSEìJñ~„3lB} ¥³+»µ“"KHäÇ×]0Ü\óÍ Tsع´w‘9§v·»2=gÓso:÷ÉW'ç=ÕÓ´›3 ¯¸ö<ÑMí $e†ºÆ^=N-:iðtÃy~mþ Zô†˜®Û™q×±~aDì‰[Ŷ”ízɇ¬|éÐУ×ÛÎ}sšá> Éß²y6™—‰y£é©“K©…W §'Šâì\s’ÑIsÅ&œÁ«;£áV‡ˆŒ±6ºRk1IŒÇ=2sän"á´(Ü@C Çœ~& 8¼Ñ<ºeS{”dž·ÑWùÿ03U2z¶®S¥täKïù}è[•Õ–ì_ºýÒÅðÓÚØ“<ÊÿŽÅRƒ¨D;(ªiÉdÅš‹o£´P­#l'^NÉÚQ6ÊB#j6ò­ß³ÃA<‰rm¢Kt¢_ì"‡ñ"²Kz¹é«•îä¥aö nªµƒZ·Ö5ŠlFuAöĪrŠÜ´k<®GóÏ#µé£EU…W+¬«H%‹ÏþÙÚ˜|YÉùd¼; '^‚¢/Éæëq5ΪÄäç45¥I©ÒeÅ%,ðkynÁ]£öSûpŒÜ4Gm ¥¦3¤¦–ê9ÂÊ_©€Žä 5Ò%Ã+D Ê)^O‹äíż;Ò¼)Y'¸÷Ar1z.¸Å%šñQ—H/˜_8Ôù%nçìQ’—C廼åL€‡þ–¡¹LºÚ”isBÒ¼¤.øV¦Ãíñ.ú,Cc„“v÷eí{ÍC——JŒó=ÎÇ¡Å<&õ´E¥%Ñ[ǽôàßÙ£Êtê]Håþ£Ûô†²=äÇ­ì7XÉ­—‰b2OYã¶?îÜ<ÕJBmšo'vOl¾™JÚîp´HdÉá‰.·nvhwFÉ6 . +ð3F£0Ó4!·ƒkÄ%¥nÂ-ÔòŽêÿ“RÉ€ÊÁh9ÅEƒ¥¢,¤ÀMÍÀ=êȉz½ImWŸQ#³ a뛈ézbñí îÀ@%€ÕIòv6 "¶k¢ûð¢Ó*“s§UL.-Ä¥+Œ`Ò2mýŒWpÊ‚cã^Õ ­aǸÂÐ9\m®©”-Q1æ<„Z.íÜúá˜ïÅ܉Ʒ¿†i*‹Õð¶/wŠ7Å•;Å}ß\ÂŒ;®]Z-mÚo/ß­ ¶þ0Ù§¸€’Ë2W1ôæÚ¹ÂÝØRÕCã£úÛoT Á_Ð|<‹c  ÒÓ)Je8V@Ê]8§sËz÷â’6ÎnëöI‡èv» ·ycÎÀ8×Ó ˜jÁT(ñ¬`´í.¤øÈ¥×YñQC2þy–EÛ‰¼‚‡Cÿ0P;Ë~—èR†•hÿGzµìÆUÑ‹q7‘&¹é®~/Á`K,"ÈNd'‡d%ÿÌ©®~ÝyØN,GÎL»ª«êt=N ƒ-üoäqBKÎþJL©l.0îfy'ËìFå—?½gvßDËši¯üõ2ÿ~ËG8á„Æ’öùDrw™r-j[ñü)_ù៛…®PÃ¬Š¬Î›¿]OÕÉUüñž  5Õ“®íe x’™ý‹Ÿ|¹Ì›$ú)oœd®ì›ÜbÛU—"œgc]Ðå_ßÜÞl¯_]}'#bªkÓ=ø¯ŒùGÁèÝ?йÂH¾•¹XÒóúæòº7¶Þ£Ëˆ}µìm}ÆHùb~ß|äU‘Ù[à güñ> ’4üÞ^®´ó³¢8ëf“Âäì›2Ë -hõzõül릳ó̯Ôt~¶ÒÓÏ ^oøš>Mà‰¿L/ÿTÓÕJ(›Öù: aÚ¬l@Ë¥~ònuŽz3­,›°~2foÀEA]œ´|ƒáóÕ# t‰²å£%x«œ™À€¡IX/ÿl/Gúû¹0Ú›…)ÅóFØ.à11΄FõLrsðrôçaÆ]ÄüÖ2îÁŽxí—WÈ^a\×ë¾Ü8ðó(Ø)ÚÙô¶-Ú-Ýcúˆ=‰Ã[/ÓŽ!Ì k}ÑîÇŠ¾Â¹9E,W£Y_2W^ŸW :¢lÁñŒØ{ƒ-è„Æl-0C,)y[-h©×úûf "Øøå<ØvË J JOš…ÜIÈ¢“ÀšAä°ÔlœCÿè'&w¦w+Rx5oŽžˆNàŸVf¸§ŸT-ChÿáøI½¿¥.Û=ý¤jY“Ð…ìÑ“zÏ ð´s¢]œƒCýH&•w~¹þ•g–ÒË·`¼P”^þa%ª š>[%Ï™2ñ¬Où]þ˜nµ(÷¨|ZÍo²+OòÛ)M<¾÷îˆf~ÌgØøà¤Ìòc[#üþŠg*­·=rœƒ-g. @ÜétôGÜøûî(€²:.ù=¼½xùþö©fy2 ÖqV&™|Gùˆ1'k%ÀÑ‘êwxÁ ±ÈI0 ´g@X(8±„Íî)¦—†±˜i{þSéVÄý, ŒØ·ûíÌ!ÝœœÐœÈ´cÚ(/i{—뙢ñÃå2#ï³êN©5 y¥qëÍÓgx÷ò´ž‘¶°ò‘< @4”̬"C±íf´aæZŒ0³©¢Æ0KûØÙ¬8D¥(- ûæ G4;‹&7FÄyºá nËT*s4²‰ ¡Å¬Y»"µ‡¬Ÿµ·ôdïw„ÜQGØWáqŠ‰Û™#¸Ä»SéÑîØü wô}Ïô5îœx¦ÒZôÄ?LnCšsŸ°x<Œt/ØFG5©P[t‰ÃÔcµ LWõ’V§›OÚJï|®ú0+‡)‰y>YcÐhÌ}u¼øÌ­Ð¬_ ·W •ÀB³×ÜúGJïüŒ®„`_ð&çŠJnšqÂM¥²„¾¢~l*kð…°l€9ÅØ¶ÂÈåµ c­o¯²èÕh{(N5'8ºé'¨‹ˆAÇß½çï1/›NQp‚*†HÔh r‰õ’QId"ñ‰CÍjÖVÀ%–×bÔŠy¹–'Óøáîm;)Þ”¥Q'ÞS—P(6²C<]¢ÄCxM3¼9PdÄ}>³#S\^«¦B"ŽtJ`…2I‡)'R?$-©·sþIÊ94ãäZ%~j-•7PëFäø¿áÒ$.¼Â8æ{cà¸qÙWd*.tÏÝq¯U ‰†KéÞ6¥’•5YzÞ¶ô‰Ø’åÊTamí±ÌðÁZˆFÓí¤&¾»¨ÇÂÖAcþXðƱöUD$ƒ_ªÐД׽†;%y ÀûC¯…"Ðý¬wÇïy Gs2~†W •{ëIßÑlÆøƒ/€€¾çâˆÀž’È8^àÖÑÅ‚áZÁ),@¨"ÝÛ¦t7 [;CÂ0Jc_l'|÷n싆›Dú¢Qè‹Æ0ì)‰ S¨ƒQè‹fè‹ãµR/ 7öÅ&Òë¥)•êæéÀËE—ÀI´iH`eiŒ'b ³Ã³šªÓϾ’È^EZkWo-8»â*níd0> ñ€çÅ Åc¹!/æ+Ù†xXÆsËj<Ø8·øZM¾ÇÃi1·šåîmó¥¦)diú4­4é9ð:êyÿãÕv¡Ÿ°ôÿG‘Úà endstream endobj 388 0 obj << /Type /Page /Parent 758 0 R /Resources 396 0 R /Contents 397 0 R /Annots [ 389 0 R 390 0 R 391 0 R 392 0 R 393 0 R 394 0 R 395 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 389 0 obj << /Dest [ 275 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 212 474 271 488 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 390 0 obj << /Dest [ 377 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 277 438 294 452 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 391 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 238 296 297 310 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 392 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 347 296 364 310 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 393 0 obj << /Dest [ 151 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 485 296 523 310 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 394 0 obj << /Dest [ 151 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 90 282 115 296 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 395 0 obj << /Dest [ 151 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 164 282 190 296 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 396 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 397 0 obj << /Length 3735 /Filter /FlateDecode >> stream H‰¤WÛŽÛ¶ÅyõWðá€XáMùؤMÑä èø­=Ž­É(ØÛ“ ßÑüCó,R¼x&ÜòL‹ɋܗµ÷^¤^­/W+É[]/„h¬µŒã_x´¼áJIÖë¶áFY¶ú´xùúزÍÑ/ãì¸Y¼üéJ°ÇÖrC›Å2>~YüZ]ÕK¡SýQKÞˆj·¾;ؾÚßonÞ­·¬^J^ý\c ÀÚ-9 õ²ÃßÃõz3îê¥mlõ¡b?ÝÛé—Áí”Ø‹¿Bt‚WWÃf¿Û²·ãiÜïXý¿Õ?®‚laLÓZ…DD#¤fZéÆhÍi/ÙaX\/^­fP¦±Z—¿ËMX—&Ÿ|½¿«—Á!C쪵Æÿ#¢âr»oj÷ÿi êå›À¸n|­~p¦6‹ê_õêãY=›à‰Pí†'ç™IÇ2s Ãü Ût ÑyÖÕÚ±ØUžîŽ$G³”g+6MxÚ[^µ‚/aΖì{—”t1=¯þÒfŒ½[¨“¡Vn_Û'šílZ. ‚‘›¹ØkÜ`gg#×¼Ë-ÕMy#”F6ˆLµÈi;ìNãµKVƒŽàÐ\®]ºÊµ˜ãdlÙfïGUŸ>¹fëª5ze*Gfœ-±¸Í”·‰òvr½Ú³1:ì›vâ¼­&zס:þ<Ý¢ ŽCã»(ú*´ÿ vÇéf@|ˆl)$@ÚŸßù ¨ê«ßÜ0¶Â¢Ãävð¿ïö»£–¾b_ÆÛ[ö~`×ûûÔ—ÏFœe#S6rÊæ½ONá Þ1g'ú  ™%²Ú…å®LåƒÆ‡7µ#Õ´ ÿ0Ü´»?‡Ó¸ ÇÓ‘}èà·Žnbw÷ŸÞ‡&UEð©,Æ5ˆôÍ…@o*nX×LÈØ-Êän %Cm4—Ž£Wã‰u®mx_Û‡¯úá«zø*ý«áþE<Äøã^’hgk|Ðáñ,hL¡½ ie×žé «‘“­0lù)iôK m#…`~ºÎfì2.Áçq#3Ý7ª{°sÞ!^Ò‚ÁŒ™s.x;ãAªb+H RAÖº9¼Gb΃Q@zÚp«æpÝtmî¡<(íïiA)Ñp;¡frP}ßtš®¤ê¡Ýnq¤ÏUZKœc’®¤–-"˜Ã;D0WiÝËFrº’—ðÜíÐ\qì1{µŒçN#ðÔ'ei!wDÙB’tÚBjªš±Úl«hI&ð\)Ou(ã™eO–ņ̃üËøÓ%*¤”–O“dùIÆÁî%Ù霗3’ 4Jò÷µÀ5¦¤Éõ\ê¢&“+.ˆ¾1´ÐÝ?e|žHdC‰rNMFÀ±ÇÊpj1ŽV†Sƒp¤´ ?n/ð©B{ùÇL-7±­?ï0ÓøPqÌþêÙdÌ¥:B¿å³Ã½³¥ÇšÄƒˆÏàþ»"à3ß”…(ò¿+H¹êe é ñð]A{HCXˆ‡‰‡ïŠìú® ,¤Cd÷ßd¹} ñ!ñð]AzÈP¶!ß´‡4D„… ø4eAaçô‹C’{ì¡~=Qº8â¶=j$Fm÷£ð™Q£,ÄQ£ð8j¤‡4j„…4j$FöG²GÄèeÔ¨Ò¨Íà~ÔÈÒ¨Q⨑x5ÒC5ÂB5£F{ˆ£DY¸€Ÿw»è#^¸/øy§ñ³>)áçU.âg5*áç ñ³üKøÅû"¸MIÉpµC"ׇSÆß•ðÔ‹éÂôK½D¹ªa3Œxª>Là w7Hö´k£`Ú92ÁumĽ"^¯jç³pkäò¬à¸ZñøÖH®˜¿5¶¦•½øû·ÆMeûžl6 ÍFâ¡Ù(<6‰‡f£ðØl$˜¥ðK¼jÇ«v¼>•Gȸí C=Qÿö323MXGm!×¢l!13Rµ á9³ Uñˆ ,Ä#‚Ž!Wœ°ŽÚB…(ñ3R×PÕŒÕn/LMÏ•"ðT‡2žY&ðÄaÏ xÊ¿Œ?]¢{ÕpaÔ³$Z>O¢u똆£N9+Ñ:Iô .DQ¤[PŸK^izÅ1ézi_Ÿ#ÒmúÞÒíFà©Ý(<¶§v£ðØnžÚÂ#³~‰WíxµÏiTB[K‹tÀgDš²Eš´kQ¶Dš¶ªEXˆ"-P"MXH"MÆ+NXˆ"MZÈ=Q¶Dš¶º†ªf¬vwajÊx®§:”ñÌ2'ËxfˆÀSþeüé"Ý*\o­}–H«gˆ4‡är´`ÛêF Ìnie±PøÐôŽÆ¡Õ®F¢º®uÕ~z{»ß·~]cô+¼²¹åëõßÐgs.ä¹tÔŠL>µâ‚hiÓô†«p´ ßÐ]]†SSpìé2œx!àØÑe854GJËð%>[ÇgûŒCPôàÑ™ ¼;Ê?±;±_ܤŸÚ‹SÞe?î¦D¿¸;I>á;•¶¼;Ê=±;U¾¸;I=µ;6Q±XÏ~vÊp®HN”áÌiN¤áÌJNiá§Ë»‚FJÑ>KÞõsîà¨XßaÁ¥”îº=É»8—´"ínÞ×µuÚ=½¼Å¯H.¾$c­ÀÁŒ“+.†´`UØGüDíPî¯ü¶Ù"ã‚KºWI<¨OÀgô‡Š ┇¨P¤‡4„‡„’ŠÑâPQ"NyˆJ—=PZGxH8á!©!™CmÊCÄ)Q1II '<$U¥=Ä¢¿aò¡ÀÄè"Åm{ÆÉ”kÏ÷äï³×ãp»=²õa`ƒóßWëÍ Ûïö~<±ãÍþp  œ:ë£c<°wW/åçR€…oܱ=¥“Ì=9O›ýý¦îe_NGö~út·>¸oS µÓ{ïÆTìMÃÃ奪þ\ºâTx o¿ÕÍwþ1)t¦«=·Ãî4^;‡-:MX_TXriÝï~ßí¿ì¦÷〶½eÛáó¸™XA|ˆ­A»Âw >.¢‰Ýúîä* ±lã—ÑûÞ@hãí ð|8ž&ãwÃázøäˆ< þŒ¼ÐIáÉÿç/«+v³Þm7ë߇¯l C®­þßvµ4µ á{…0#wH&~`â#ÌpèKË‘Kb‹‰?RË)íïˆp¿Ý•¸[^íóÛo“QWdŸ,oM£l¯œ©';ôªÀZ†[ªÞ… õ›‚ñõñi–çÑpc™¥Têygúh x|þGÈçãõý¬~‚F£;¥lðPöªÉ¨¡TçH ÿy#”B3Ù'Ó¿ž/lËêCê‘nÛá1m½µ`dzÔŸ³$ŒŽ¾›|Z|ž@JlâñJ, =±+_F‚QŒêéêlë€X%Þ7ôHŠÎ*u£ÐDÖ©~˜€›n88³`ÔOvÛúx÷ƒ*{‚y¥/üøÔEââxѸLƒX2b ‡¡zã`”"Ý»ÁqÚ†}˜|·ýK2j*_+TT޹®\PJYÈÙž*¾åêÓãuB6ïgzF7#w5À¯Ñâî"ˆ»„§ÚŽ™®h*!—;NkJ;nhGŽ®4œyÌì„döCÏŸK½øAhsF´Ÿ:˜AMŠ^’2Ⱦ&ôËa5^ĈÒö• 5æzŸ—Çàr îÔö0Iò ¾}ØKlÖœìLrq§¹vò¥§QïAðÌ“'ifžÚ©½d „ò€²¨„‘°–‘°¢E"/â0ÉN“0“@mË÷ùíJÿ4›ÆÓšFãåihŒ“4Ö°[)]— Í2îú‹ ÄÜV”qHFki¤å1)4MصÞðo“¤aè®=Dk~>à ô¯|Æþ §¸-ÄÛ|ä7$Nä@GLìá·ÜBÞ¶v²þQ^¸»D».*D×ú!Yë™O–D™¤78þµ¯Šˆ—BÉïݶ­Úb Ë,)yð•zG0(¤à¢Ô¹ÖwKB¨mG@·"n1YM_í½œœƒuþ`LH;Qe¶â)–‘Àä­VëÔðªšM8[˜,u´4â—À­üŠDËjV€ÞM›~RÇüa–¢BI‰·¾›Úˆ×0ÅaW×´ ÜjÉÊšÃ)ôa”oFeèrÖ1óI2ù²åíKrÃÃìp;¯9ŽLï7[ª¸·äÍ[^I¾´å=£¼ú2Ê*Fé×a8”³CÑ4-*ê‘¥¼a52±S¶ú&'.¥È€Îz22mÈ.MÿaèÔq5›«._å+z¹ÊY{¥+°&ìëH‚¢á;h®çsÏOK†'.(¤ðSÍZ)û-©.ʸh=>ûþ¶% endstream endobj 398 0 obj << /Type /Page /Parent 758 0 R /Resources 400 0 R /Contents 401 0 R /Annots [ 399 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 399 0 obj << /Dest [ 490 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 90 428 116 442 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 400 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 401 0 obj << /Length 3902 /Filter /FlateDecode >> stream H‰¬—Ëndž‘ín”bŒBÒ¿|å ÑÂÛqÁD±ûçæÕ›ÛQ\ÞN·Iq{¹yõý;%®o7t¯”dt¹Ù–Ëo~êÞõ[e†ÐýÚk9¨îóÅ/wz|wóõòÓÛ‹+ÑoµìþÚÓ=$öé–»}¿uô÷ËÇ‹ËÃç~‡Ø]÷*Iâû¯‡«ù›}zRÓ³ôW)§d÷nyóùJ|{u¸;Ü|ýßwÛ|»Û(q›†1Úˆ”¶Â;k­Ôkñe¿ù¸y½[H€ C´:¤ý§½©˜¶)ç ¾¹ù¥ßZížê¾ô–þ?Ъä`ÒÂÓ—Ÿúôÿݼ¨WßåŒÛÁP¬Ý_’Õå¦ûC¿ûÇQ=hmq–ç„Ú)h¾J‘…NY)ÃäDñU%1E¶ÝEÊ¢ë¦t“’”Ò¬õÑ—C¾ ÕGÙJnÉ])¶âÏiS:I!xÙýf+„x{qݧ ûÞ¤çÆÀiÎõ0J L{SrÞ\HùÕS®ó¥RÏÈ 9}P5™ËÅÑÔ 1L‹Î—uÑÒшÐ^iÑ”ä¨ÝxÔ#¢i—%°^qROšÉ! Nz1eì(o뺔\Öƒ®:Ír0îÁT;Gë…!Ò t%Ç…ÚŒ4@ :hC­ê–tO+PK‚´òØôh–t;¸ÑGðêAchž½ƨAÆe=(³°ãýà,®¤ña0nIÔƒK•¶šØ¤q%­iKº£,UÚz=h‰+¹¦×n÷'ëôLxÜ«m½vйOÚz­2йFm½fè¼ÿ¶¾NIšvEmäb D3‘)™x9SR¥ËéèݧSsìèPLd£#Öt‘FGé˜#äKM¶Ñ9Š0ãQk™Ã*Ÿ@¤ŠÿötüŒÝŸúthÿ¯Áµñ¨Ò´Oë£\ ;( Ìuéx–¦g3×EšIr*U°› ȥǜ[ ȥÜ È¥¿œS ä•|G=¦×œóG'ƒ¥³IE·nÇæ™ò™ƒ¸ À¡œ) ¥PÈ!ŸGÖ4ÏäPμ.7rÈÌÇÜÀ¡0}Á¡4 ¬f©6Õ,DÈd¤×JëÐÖk–Î9lë5C@çý·õÓ™ìé­AG“õ9LŽ”¡ÄdOðQ„“­f&¿¦÷Y ðÊiÔk©[PÆw¬@ÄKzÍ‘êP¦ÐÜ"&7Un±¶Z¬©r{µÕÒ\M•[«­–\6ÕÇmEy4¹­¦ËšRG6QN\¦Y¦_()£?MYbúõ—ù4’v§ÉÝXN¿&²ŒL ç לJ@ûZèæó }$Ï¿#°=wJûùr" yþQíÁoð<XÊàÕ×^m?_Î$Ï? }möæó|Ð yþí€íyZÚÏ/Ëó4e‚.ñitƒ÷”Ň|:M#q8.ÌÔóP-èÓTe}a¬C™+¤—Á‚x²€Ôóláe¸C™.¨çñªÐ|°}š0¸1äPf êyÈ`ž2àÀcõtÂß[!ÞwŸzZ‰íöÿ™ÿŠ«ùÆëùcZ0±`~ì}?mã)­,ŽKè‡w¬ JXü^€~IÁ¼ÃM tnb¤—&:71ÒK›é%³@_Îë#å•hy:ú©é]týY_@?r(臵mF?vàj‡‚þê€Ðýp µâÀ¡ :Ôžh;0ú±w ªf©¶\™š¶^+t®C[¯Y:ç°­× ÷ßÖOFÿH‰´‘sÞÎí3 Ÿâ8E]ñ;AßÜËß úc G-Ô‚>¾cNHï½}>ôÇ`ï=l_¤—ö…zn_¤—ö…zn_¤—ö…zÉ,ÐWòêcÊ«?ú©6ú&fèC:dèc‡Z‹¶Cþ‚W 8dè9è#‡}¼†Zqà¡jO´ ô¸kP5Kµ n>,LM[¯•:ס­×,sØÖk†€Îûoë§Cßzî,êçP_&ê; ›%wÍq¤žã¼é=Aù‚л_.>~>ÜõÛ@aèHßúïn{—Ø®Æ{¥gèÓòóÓBþõtq¸{ß?|B…a îðŽ9CEˆêpwã@Ñq›Ûé¥MÎmŠôÒ¦@ç6EzÉ,Ð×ò*S^Íp§Jè1ܳ¾wäPàj-Ú wìÀÕîÕÁ80ÜájÅC;t¨=Ñv`¸cîTÍRm½25m½V è\‡¶^³ tÎa[¯:ï¿­Ÿw|õYpwÏû(Mp÷ wÃpŸÐŽÑîf´F»!´«ûf|f»ŸÙî Û=`;‘¢vJ“íðŽY;ŒAº°Ü,¼´eîQ —mËÜ¡@. Ú–¹?\RÚ–×ò©R>ãL§ PGc¦g}éÈ¡0:Ô*´˜éØ  Ó«b:p`¦Ã5Ôr‡ÂtèP;¢íÀLÇÜ4¨š¥Ú†þª…qiëµR@ç:´õše sÛzÍÐyÿmýt¦ÓB­Vá,¦ûç0=õU41Ý1Ómaº£‘MT÷ÇT÷3Õ=S]wÂß[!*ÖÝŒuW°îÖéom–&Öá+¢†5Aë`]Ó¯• q£é¥QΊôÒ¨@çFEzÉ,Ð×òªS^íxOë‘ã=ë xGïС֢íÀxÇ\-àPð^Þ㮡V8¼C‡ÚmÆ;và®AÕ¬Õ^žš¶~\©å©iëÇY^žš¶~œ¡å©ië§ã])z“6ö,¼‡çà…èÅx7÷ò9x׊šÅ,áÞ±‚!é¨ &¼ïÒ1اÊú8xiq£C=c-ë XC+`D(؃x˜@„ª·#0q„2Ž(ë BÁf€° "T½± ÷ÀH@X va† ˆPõvÆ2ŽPæE`DXÑbˆBc¨¦‰,×s·Rš,µ¥Ô£)¼‘>Mä¶\¦¹üîpýõ˾Cè„ݪž<\§!ÞÍ_~9\ÌßýÜo ³øqŸ¿¸š %v=!Âv7_/?½½¸=A1v?Ü\Íߊ/ô×þ¿ìjÙqÜ‚¿Âà۰$Ëäd7HÁâÛî…#Ñk lÑéõþÇøƒSÕ¤äÇÌ[j’ÕÕÕÕmá–XíO®‹«½í/0ã>?n¯,9ðV³jANà‹ø‚àõß­®oksP Öÿ–mßîŒx9[UØvû‰”Œ>„˜©¼šÒŒùZöÌWƒ牚/:õvºt =|~ žÎøaÿŸ0!Š3lþÑðÕÖe’,t‘H²è'*ì­Úµ½*\œXúF,„Ú“K+ú`9—X‹)¿«÷#ˆW¯Ù´àWÌ .ÂÉ Îìñ_—kãUc}ÝgÓb1ÖójÕvÊÛ:´®‹%BÝ%ÙÊ+&òUã’:Ë'ÊtÀ< Ü¹s˜é¨G´ý=‚…Ž«>7)‰_©…ìB»˜€8š>í×)Ó¼}8Ú.Ä$v¦†<0û`)?ÞþšØ®F¶«È¶ÛÉÙµ9¥é=ŒXÀãŒÍ7œèœ±è€-"q6ù©eõ„`gÈþJG›B™J‰ZTø¹¦bTãæM:9F [œáwåƒéCÛÅ£” OÙŒ—~b6?lïI|]ã‡Ò¯ãi…FSDžÎ¢IÔýÇó×’PÁ¾\é>+x¡ˆ™™Wtz^Ÿ–_b åø3­å»†™czV]gãMhÄOÛãmçS„]Þ¸Œ@YøIJšëÿl`7ÀGh¹F9é#^ÕÙÚÀxÑÇ#A=ݹæ”çbyë³\mª÷æ9y¤H=EÛÑÂømh¤ü͉ò"PÑ«Nú¯ÝQÃßRÜû/^чƒ» žJ··m„°§Î×:•z~벘Æí~¸Œiìm¬ÁwD”]7¶nð¿h i9ÛÕ®IQÒÖkÝÅ·÷Î"–úÌŽžà÷.­½dL´S¯‰ >‹V׺Þß§Ú¤0C~¥€­ŽÆ´iáÜ!ç£ÑÆœv½;ª÷ùU§Þ7äW_q©})ç|ò"Ê î²®W1–§úŒN—Å'eÕŒ‹Ð7›³~ÁŠ»,–ß2äð¥u#–™ku>dÛO]ôÐÁÂç†hkæÅ?õâ‡Â˜ºŽÛS° N ÿd9óß%øHÄÒ¨ñµ¾“ÉX ðõ2²mŠ‹œ‹dàêê©Æ£&$ªÝ)ªýaKq¿´ÈÞj˜vÌÕÂI˜CÛLÆ„¿jª~×ö¢ué¿–ƒ­ÄÇrý†$âH#ðæ^jÉ]ËQjØC[šò; þøx&$Ö endstream endobj 402 0 obj << /Type /Page /Parent 758 0 R /Resources 409 0 R /Contents 410 0 R /Annots [ 403 0 R 404 0 R 405 0 R 406 0 R 407 0 R 408 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 403 0 obj << /Dest [ 179 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 110 473 169 487 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 404 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 219 473 236 487 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 405 0 obj << /Dest [ 402 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 188 410 247 424 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 406 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 126 339 143 353 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 407 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 270 293 323 307 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 408 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 374 293 400 307 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 409 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 410 0 obj << /Length 3962 /Filter /FlateDecode >> stream H‰¬—ÝŽ·…‘Ûy ^8@7àiñ·›¼ŒÛH4wq.Ö»£Õ–ÖØ]!ñsØï×Lq†,ÎŒêôôh«Þ=Í*²êð#ûõfõj³±Ê¨Íû•1CJIiúW“´sVM> :º¤6W¯Þ<uû´M«§ÛÕ«Þuÿ´¢wµ¦@·«u}ü÷êÝ»~mÜ»ßz«Ó}ºùõyGÃ7Ÿo?¼½¹SýÚêîo=½CbŸ_yÞöë‘þ|s»ûÔ¯ÓºûÞdIýðywwøË6´4–þ7f4º{·½}øt§¾»Û=ï>©þŸ›¿¯¾Û¬ŒÚ©UŒCHŽbc½òÎÑ{E3¬zܮޯ^of àâ¼yýym&åeêÃß<üÚ¯#MŽVH£ºÇÞÓÏÍJ.O<ÿñCŸ>&õêûRq?8ʵùku»êþÔoþuÔš[:ȇ‚ú}Òò”3+›«¬r…)å7i©ˆ9³ïnrÇn_îos‘r™­=zãv(¤NIwÁè5E×Q«µúK^”ÍRŒ“îþ믔z{sßç$ÛÞåq!q™K…ƒ‚¶ À´6£‹‹¹¾v_ëòh ås:ª‰*ý8Õj»ØLÊÊûµ×v¦îõîYô«Ócý5œþêOu§¿Úý¯Qï1§š.íâŽXrCŠûI—Ç6i=Ò¡µÒ¤©ÈÉŽáÈ#ª´ÊŽ ØžØŸäIEˆÃ¨'µ¯ØQÝ.ëv0z^¶é´—£OÞ Þ4_!&šÁŒNÛÄè0“Áº@ÈÀÖ‘UÇ9}¢˜¹ Ñ ÖL8éÉÍé~Ãtœa2'œ£ý<9Á93è4¯GãfÖà¦i=âàÆ9=‘ç:í-±ÉâNzhsúH3˜ë´Ÿì`5îä%½¹}Ê 1Ù;fò›>Ò]öK&çÞ:-1¿q!“¦[Ž6/`2Í€¶-B²¨²ÃdµúKTÙ]²Z½%ªì,Y­µÕSWéÜè÷gyl%iéA»}Ï÷Š*(ú4Pæý÷áÿõnšå¤Uš ‹yär8`9¯® ñõärùXá›—Äñ|¬ ùð¥‚óåñõÌAòá3¥…_)`<HXŽÆáÙ·í ¯§’(0|ÛOâx>Ê|ø:ÁáyCB߆lÌ‘ÎAF͸ùnÊÆ’ål dj¬Ë•åÜ·1WÈTX§– cñÔòºžÚDåð™cûHMúü¾½ëD1?à $V`yÏŠƒ<à 0¾²È•(<³BϬ@ra _YÆWV ¹°‚Ã#VÈã™X޳͞YÆWV ¹°…gVÈã™H.¬€á++.ù–Ù®Œç·Qm®Unº¤¶ž‰*—\R[ÅD•,©ËïÀ\gLXvvWÜi3ê‹v&_wñص;°£ Ã(]‚ g6ÕÖŠ—`øÆ…K0]šÆdÒ .ÁÁ©-þÔ:[ éÕ\@g{!½ èl1¤×ÊýR]‰§Éî?.Ö1__Žý¹Rt ‚|r õ耸 Ÿ8BíŠP€Á;ñ 3Î;Ž"TŒÃì I#T×ÀnÖnÇWÓX–[Ÿd™› ʭ²ÌååVYæ…‹òr(Ó½qf”ýP޹#ãHèökÜ“½e&¿î×9¾Àdj¾æ…ŠL†o\`õÉ'w~y½†ÉŽf@{2èì/¤Wƒ†ôj1 ³Ç^+ ô uµS®ët“]öÇL.ú “Q„Êd¡õBŽÀLƸ[ Ber‹€˜ "0“áZÇA„Êd¡yBŽÀLÆØ5¨›¥Û–‘uõ Så­Å >È3ã+ÑøV{q<óŽçîÈã+}y<‚¯<žÙ‹ò·Ëã+yÑøæqQnµ‘e^¸(_䱦äSž»ÕtnÙ‰yìÝ1Mæ±Ñ½É0¾Ê”&Z;¾˜ÊTÓÄ˹ ߸@¨Î¼€Ìf"r¸/<Ʋ§;¡Ã…zRÑg€&À2HPyð>4YNÀ8à êN X *íZD;9A“å C¸ÞÍ Ë Ae%LÀ<4YNÀ(Å ê X .è§D2&o?³ß‰õÙ$ÚÚOʧH0÷¡ÂB†E~ÌûñûÝýçÇmŸʯMO1|g¥Þþø¸»9üí—~í3ªÊßŸÕæá |¾ýðöæNe´¥îLJ»ƒþ¤n>~¼!Ô±Æ8ë|ócF›sôM0Q)}†åÇ2ÇqŽòt èV}ßÓgd·#°Ù!v÷”æÐÓšl¿&wtÛž\Þ)»6£zx¯ž¶ýz¤WoŸwŸT¾s¿xT7ê—ÿÕ]E»jã@ôWüÐJÎ "’Àö­Õ­´}X­´Ë[y ‰®BŒb§t¿>xÏÌ8 í}áÚgΜ9“XøyoCyh¢•úQ6½ñlNF‘‘:$óœ.ø7Éèº/ŽÀm `€U#é. ˜)½œ¾OhG Ô;'ˆ¥*Ù}ËM6YnÆœ7’óAm‡XÃÕÍAÚ”X¢À0Ð}‡]N]àÈŽ>›6¨š*âÑ7çÖýŠá:[¡Í[Œÿ:x’¶·t½‚¬Ññ©Ý¹Ëçühô.5_E_ dµêÒ™ù’ù´Öé¯ñ@Ù‹ÿŸÏ1,ÒU.6ÿS¡=cT1Ú¤E`{x”™¨'Œ½”`ÒF”ÄÄÔeÈ졦Á¨,îÜùUzUÇ)³¯:{0\JÎóeYL òM{3J¶èÅ(Ú'ѹ¾Cá´ó!Nøb»OHY“§O ½zÉ1ZË4ÏËð)A^–oû$¿²þça+Š endstream endobj 411 0 obj << /Type /Page /Parent 758 0 R /Resources 413 0 R /Contents 414 0 R /Annots [ 412 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 412 0 obj << /Dest [ 159 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 327 366 353 380 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 413 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 414 0 obj << /Length 5481 /Filter /FlateDecode >> stream H‰¬—ÝŽÛÆ†ÑS]Å4YXôüq†ÓÕq’º@#Ö™ÓEâî*ðJ IŽãëH[èmör~´ëy)í®dMé%ßoæûy†zµ˜½\,$lq5¢qÎ1Nÿ…KÇ®”dV· ï”c‹ÛÙËo-[†Û8;¬f/x'ØõaF÷rNF«Ù<^~š½¯ÞÕs¡š®ú\KÞˆj»¼;nèñÅîãêæírÍê¹äÕ›šî!±ö·ûznèßýÕrµÙÖs׸êº^b?|ܬÇozÿ¤¤gé_!ŒàÕ»~µÛ®ÙwëÍq³Û²ú¿‹Ͼ[ÌÛ°Y×5­S´Ñ©™Vºé´f´R+Ù¾Ÿ]Í^-& ºÆiÙùýû½ ç·ÉÇ ~»»«ç-ŽvHOUûZÓß ­Š7Ê/ÜySû¿ÇqQ/¿×¢X‹×Þj5«þR/~9©­Íò˜P= W>2“>ËÌg˜œ(¾p¡$úȺZú,šjH÷ Ÿ$Ÿf)OîX5á‚TëxÕ >'wÞq6gÿô›’^ê:Ë«ÿéF3ÆÞ.¯k¤¯•Îð”æáV6-— Á´7ÁÇÍu>¿rÈu¸‚â)Þ1Kë´±1ÛªËMÕ†×sÍ¥ilõjsd†>*nâÇöþG}ÿ£ºÿQ;>|÷µ°¹\IÝàºaÑá2/šÚ+-š’ì¤iOz„Õ-í²¢æ«ÔŸÔ“ªsäÐ5†[6dì$oçuÙ>­w2ë4Ë2÷î ÚZ/tè­`B§1¼ˆ UK$ ƒTÔªfJ·´1¡S;îÔ”®ÓÚÓVÜ‹ ͳUÐA)Ñp7­wBMìAYÛ+©l×(3¥;êÁ©JkIl’¸’Z¶´‚)ÝÐ ¦*­­l$Ç•<§çn· 'èôL÷°WËzî4 §>)ë¹Ê@O5*ë9Ã@Oû/ëç)IÓ.¨Œóh&%=/GJ 9½½?5ÛŠEO6:bUõit”¶!B¸””a팡mÓžDÐ:qX„说Sö{MÇO[}SûCû×Ú“JÓ",¬rî lL0×øã™˜žÌ\ãh&É)VAßo2 ÇCrh1 ÇCrh0 ÇþBrH)Ïä³3Ô“ÝðšsaþèdÐtö 3)êÚ4m[ŽÉÎz&[:€O"”˜LßE&¿¦×t[`²Ÿô\é“ñgb9½åpñ &Ó hl’‹jê°²û«¨¦î*«±·ŠjꬲsYTvåQ…®.sJ Ù8>`™F™~ øŒ¾²ÈØðãÏ'òËÿS]óªÀJsÒ=ôéÄÃWLxÇ™WLÚvk¥yÆ+&ñVQPع@O‹ôع@O‹ôع@O‹ô˜Y ŸÉ+œòê|^/Í#x Ï» ù“3g8Äó :äZ”Òy…Rµ€C<²ƒVåó8¤ó®!W8Äó:äž(;¤ó;¤®AÕ ÕVnØ-œ §J!=Öè)ËH9zÊÒãþ~9ïéèÕBuâ½| ï¥mxôdÞ x/ÌWá=Ñ#wO‘÷ðŽ3\’Áꇯìá½T°w.ÐSç"=v.ÐSç"=v.ÐSç"=fègòJ”×ö¼—¼éœÆ¼úï‘Cä=tȵ(;$Þc‡T-àyŸïCâ=\C®8pˆ¼‡¹'ʉ÷Ø!u ªf®öôÔ”õÓJMOMY?ÍòôÔ”õÓ MOMY¿œ÷ÜÒFÚöQ¼WOá=êD«ŸÇû6ò^~Þ Z“k§xï8Ã%N4±m÷ Þs f î\ §ÎEzì\ §ÎEzì\ §ÎEzÌ,ЧóÚ:Gy%D^Î{êtã æ}Ð'x"ï¡C®EÙ!ñ;¤j‡Èûì€xïárÅCä=tÈ=QvH¼Ç©kP5cµù™©)ë¹R@Ou(ë9Ë@O9,ë9C@Oû/ëó¾¥DpÚÈcp¯Ÿ€{ÇêŠgá^ÜwZÈgÒ¾uÝIï”hï8C¥Žo­~:íÛN7ÖZØ·H} õзH} õзH} õ˜Y ŸÉ«u>¯örÚûJhg |iuL{èhr-Ê‘ö©ZÀ!ÐþÄÐ9DÚã5䊇@{ì{¢ìi?áºU3V›¨f»‰©)ë¹R@Ou(ë9Ë@O9,ë9C@Oû/ë—ÓÞtôÒÝ™Gá¾p¯‡{ã ¸÷â÷ºéðõ|ÿÅqøë¡o+fÿô0•ý”ú"P_ Ô÷\O]ˆýVðO0Ñ®›Â?¼ã ¦Œ¢29ñ ü›¶¡è¸‘ž鱑ž鱑žé1³@?—Wî󪪄tã?èøGÿÐ!×¢ìðRµ€CÄv@ø ÿp ¹âÀ!â:äž(;$üc‡Ô5¨š±ÚòÌÔ”õ\) §:”õœe §–õœ! §ý—õËñ¯Ç³|þÍSÞö[BnôLü«€þµñO0ÉÍTÄ?¼ã ¦´nÚŽ›gàŸf@^c’¬‰^ÏÔõ‚>A=°€$ƒŠ0@µr€,—$fâqVA€$ƒ©9Bj9@–Ëqá-@€$ƒÈ0@ÂM9@–˯q€8@ @’A€3ú}Ü áÇO “¯ A 7ŠÖ(m£¥‘CBfÉq¿ß\Ü÷ªbz.1„Õ0ö.|»ß,Ç/?ÔsÕ˜Šý؇/ÖµÐB·¹hãˆháË}¸ïÝmý8è´Jç±2.Ø_:ZRÄgîÛßCy\.ÏËåÃr«mÇÝ~³Z~`Ûݱ?ü½^ür‚dÓØ–l¯=mrh}tÏ|æ¢é¤—çÙ>»¿¯ÞøµvÕ60ó]=§fÕçZ8ÿõòî¸YØb÷q8dµª}BnÞ.×濪îö›Ýžwì×~Øì¶ŒÆí;Þô£|ë¡?^¾©¥õºžÓ ð3ò~ŸkétÏiºêûûÔûSIS6ý®Çç7·wúÛ~{ì×ÿóÊýöD›¶'âî‰ãWñû7¯ÿŸ_íno—Û5»Y®Ç/¶;Ö_]Q$ë7vd^¼ÛïÖ~¯¢Zõk¶®vô·b¾°CI¯üöµ¬v·Ã>)9«Ñç…Úh±—·ø[ȺKYwãÂÖý±ßßn¶=ûtÓo†Ü:Ú¼ô Ä–)ßÿg¾Zvä¶•è¯hq ¨ R”H-o Yeq‘g3ŽÝ¸óp¦Ûvþÿ7ÅGÕ3¯>(it‘]EÙU^Ö¿óûÛ'º°t*ªÚ·¾Ð4‚öÛ‡”…+J‘gš[N”ÏÅxh¾\íò)ùK.–ŸB•ßoiðÚ6þmv¿Q )1„žÂ-ƒI5Wñv‰}¤fÓ~ñ$‰°Äðà—ÝáÃîúä~ßÜ„ç¨Ô»‡÷±ßšÇo¿ûcsá?±ùÙïvTkjP ÜÆ€‘nwŸž¦-E¢Üö]sôÝêånæ²ÝøFù7§þ?xJª]øíjcÍía÷9Bñë|g…oÃ3´è{ÿÝj$±†—H.%hN?ý7¾³KŸMm‚î7Þˆ|>|º¿^.'èúñžJ)/õ„U‰xLÏÀâÉa½€Æ  ¸¼ßécXF ð1>¿ØÑúeÇé¯Èïn·ä®‚Wt—›&Yš‹–ÖûÑ1˜Ši™ÎtSGKƾ%o¾%ç&Ͼk~ùtýŒìůŒ]$¸Jsó˜L,úÀ³Ím03å°VÂÚ–úúÉóý·Eƒa©6y§€¡‡÷Íív“nw×d&$ãýöæàKäÕ8·dxÝø6¶¢çLiÉ¿¾ùiÑ‘EÇ{žÜwí×7?ÿé=(šŠk·l\aÁÝSÇzëh¯n>pÈæËîî®¹ÞÆ& ïQëðåÕf ž¹¡N‰M2S ©GšíCʨko}?úßéCžûö™ Œ,ÔÄ…^‡WM4¦©¥ÑF­Üܦ_¯ÂápÕI™*§Þ‡~Àøí@š¦ñ°ã¼¿0½¦ÑØþ@ 1y õߎǷæøv8¾ÕáÖõáFcýsqUÙsoçWJà(Ç–—§ŒÇÓA w:ãf¤ìO! Nû Õ•|>@ |>À¸¥¨Z„t@€ 退q2£Ñ.#XU<@ >!Ôp§†Ê7ð2¤#Æç®wµJó1ðãt2˜j•æCdXÁ³Ú]çì ²ÏJ¸è¤Œç*\jTÆs†.ß_ÆI%—¤nW^FþÌ¡½!F—œ,»¤šÒ¤‹¡±¥ÉàM…mÁ3K£ 6¦éRS†Í¯§æ‘}¯ œÆR ‰i,ÄÀc2äZ”d¬`©`౑ÌP €AÆ\C®8``Û‡ Ye±uÌ ªAÕŒÕÖó\í„s¥ žê€pÎ2ÄS΂xú~„ŸlËÚÑîQkuš-ëóly¶dËÚÑ^h¡dËôÛòO´·[öž+]2füÄŠ‡8:¡8=~¿7{5§±Ê.*C8« à¢2„³Ê.*C8gàÏUFy’ÊÂeN±¥qC°ijmšÔ>ÃïBV¯)û2¯Šâ¸»!½¼†û#ãøˆ’×C<1p„\û2ÏŒÇ#F%‚¨0¤YñxÄXDG ÄÀ³¤†;5T¾!+0¤YƒñxÄÀr”xa<1*¤‹Ã »,mÍÇ&ÛÙ‰ zìc'Z˜í©C n5ˆ§V«à¡Õ^i5ÄÀ­†pn5AZ 0H«A<µŽÀ­†¸Õ žZ-G@­¤Õ*xh5ø Òjˆ[ â©Õ`i5À ­ñÔj8·bXÁEíÓÜã…pQÂY'—*#œkpÉ0Âùû¾ºmìUggM»»‘Z¦7“÷š°•\Ø3Ñ•UqãôŸÍ•«ÝÞlwtÕ~Þ6нßH6'ì)³ßêÑÒŠc °{̛Ǵ;ÝPÊÛí†l¨}Úm m¯î¿æ—ߪ~Ú\èöÞoam{í¯·Oo›ëøä!üÝo(«m3¨oÚÑs´¾Ëöƒ¿ØþnoãÃïýÍò½Ë͆V›ᥙ’gy÷ªð‰•½ê¨¨p¯ÙªŽCè!¨l€‹²Îʸ(á¬l€‹²ΉøJZói|^OÍ#ù­ ’æaÂ_]s¦Ï;ÈkQfy†¤Z€çUf0Cy™Gp ¹â€ç dÈš(3È<Á ¢TM®v¿Ò5ekèï™-S ÿñ<Ðö›6Ï< {Éò*ÎøÄŠq š 7=ßóŸ3Ó)"€Ò¸Há,m€‹´ÎÒ¸HáœY€¯äUÏ>¯óÁo°Å!á•€x @†\‹2ƒ Ì Õ <2€A\C®8`à²&Ê 20ƒ¨U3W»Þ5e|Y©z×”ñe–ë]SÆ—ªwM?} øNêí|Ö@¾g P ×[÷ÿ8 Œßý÷ íò*øÄŠqÑ£jrÃ+‚"‰LKà"m„³´.ÒF8Kà"m„sf¾–×ÞçuÇÿéööÙкÉràæ×Ã2µå÷C²Ó09= ÿ&ÁûÝáróÒ zZý¯>|¢nLj¦G§Ù}¿á«yì,Þʘ…‹à¤[³lœT `-‚SJ¼–OÚXX¿y8Õè}Ì }>ÁØæÑûÉåáû¹Å÷ÙãñûR¢òûÉáóûÀàÁûìï0~.rùýäîðý¬‚âûìíø}‘ ¨—W×Û£çâ”aÉ}Ω-Ã’¹"œS†å»‹ðéŽnçÎ)u–¡§ºë;³dÿGù¹w S³søÀŠûX:7Xe^áæ–„N€z¸á¬X€‹dΚ¸ˆáœX€¯åUù¼Ú3\*¡g…m=á_G lì!×¢Ì ÖŽ¤Z€Í=3 w bïp ¹â€ 2dM”Äâ1ƒ¨U“«=ªt¥kÊx®À¥e> endobj 416 0 obj << /Dest [ 133 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 368 328 394 342 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 417 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 418 0 obj << /Length 5815 /Filter /FlateDecode >> stream H‰¼WÛŽÜ6ľöWðaH ·,’âíqsÏ>AÜoÉ>tz4v/ì™`z&{ùó û›{H‰‡ò˜¥ž±½º‹*’u«ØŸï6Ïw;%¤Ø]n¤ìB¢§ócè»^k%Ü`ºÞë vo6Ï¿8q8¥a½86Ï¿y!ÅËÓ†Æö=6ÛüøÏÍOÍ‹v+uç›·ªïdsµÿõöH¯ï®ï¯~Ø_ˆv«úæ»–ÆØÆ!·c»µô÷ær8^µÛÐ…æe+#$¾¹;^LߌñMEïÒ_)­ì›ãáúêB|uq¼=^_‰öm¾Úm¤8Š÷ š6";©1è¡óà h¥N‰›qs¹ù|·"€ö]”û{“!n³Ÿ6øÅõ¯íÖÓâh‡ôVsÓôÿ‘VÕw:.<~ùªÿßN‹zþõ¬øÐišk÷e¤:lš?µ»,êAk < :¤Iç§8³PQe&&š_†Î’ˆqæ¡ÙGm“ä~EŠ2+µqèæB]è#û-±÷¾[ñ׸)!ï]ßüwè!Äû—mœdlu|ÏJ–yVبÎô ¬HÍà“Àó£”4‰î½pÒuƒ·*JL‹ Êš…Æ¢5T†Pž¸¾TSíƒp*jcEšq1ïy\u²/ø`;cì;#ho–Ö| Ì ƒÒ†HB¥©TV®1xÝ)é0áA»%àßaКúÑiÈ µìú WÖ ë쀕ÔÎwÚ®)9(: +9(C3¬)98Õ©+yçn ³¢|Æéÿ ÖçJ"<× à\„gÎ "<ïàŸ'Ç—ýd1>ºœJr~”’Nƒ”´ÀÞvZ9™=Ϻlí2>&k£+›†LWŠd󺙎MŒ¬ÚÌ3ÌŠ‚µi†°˜a8<äìp¦Šß[²7Ó|ÖÆPxûþ¹'ç(•¦E²çZ g<©—¤›³áI½¦àt¸ËÎ]†ðÜeç.Cxî2€s—!<+ ðu]mðQ×§Õ±ï<½ ½{ÆW¼1dï† ¥uönÌÀÕ Ù» ònÀÀÞ ×P*²wC†ÒuönÌÀ]ƒªYªÝ{¿rjêø²RU|Q‡¾T¹Š/4¬áK…ªøbÿ5üÑÞl½£k¬÷ófõ4o޼9Îà茮y3}—½ù[ººŠ7Ûà•®y3qÆC<}ãÃGÜ-uƒ§¿¨Ëž» âs—!:Úš”þ)©*DúÑ…}_WÙÙ>ÀÓñÉË×p¯ N¿I½®z=d˜½âôsOöfe†Rû:CÎŒ;Z\›»0ÌYñ¡³Æ-gp²š%ˆ!gÉî¥^ÙCé`À0g ÆC<Û+3”3PgÈY„qºÜÚµJ—SÎàÓ)›vÍǬï$]£øØ#-Ìõ]9iž†Ó9›à•cÞϧ Àù!z>cõ÷ùˆ!x>a>0ð~>_žÓ£ÓUŸ†ÓÙB«ç£ÞÏ' ÁóÁBô|®êïó±Bð|ª }>4àýu˜ÛÚÒm¥üæte妪£¹'ª(—´ŽæŠTQ´Žæ Wѳ×Aúyê‚RÂÛù “‡¤+šöé.DONN¢Û-Õ¦㑞šßF!)ÀãQ<âVH„xï£Îï† ß Ë¥p¾u¶$s3¶d0ÍͱèR¸þˆïÛx½k·ªy¯¦®ù%>7ÏÄ/ÓÈÛôÿ©%=šó^õ4ŽÖ÷só*>ŒÿJ/¦Á/ã‡å{?·-­$_r—&i]g²¸tÁtáá 8s5’Š&ÝGÜ@ MF‚7P€s3#<·3À¹¡ž[àÜÔÏÂüŒ®Cü "Óµó±:JjK…ƒnÆßÿEZ” 9Ë C©Eã 3pµCN¤Â0èz渆RqÀs2”ž¨3pt`îTÍ\múÎ)èÿu¸Ô©sªpQ¸³|U¸hS‡yãUøñ1@WTxR ¨‰MG5ÐiþÿÇ€ ÷Ò~š [Ѭn5àˆ3†¥ÕM?¼Â?%ô@ ¤qœ›ṫÎmðÜ×çÆFxVàgtU!êjŸT 4‚_ ă2”ZÔ80W 0ä ( (\C©8`ÈAJOÔ80w ªf®¶|§«A.uªÃ\„*\®Ã,_.ÚÔaÞx~|Ð iü” Ð’~O†aø#‚ÀÜKõi‚€lEºa-àˆ3†ECÂG4Ô^À¹©ž»àÜÖÏ} pnl„ge~NWjLgä‚€*уƒ`ÆW‚1ä € ¥uÌÀÕ 9  ÀÀA×P*r@†ÒuÌÀ]ƒª™«­Þ骇AP‡Kê0¡ …ë0ËW…‹6u˜7^…&JP+ŸÃAœÈûG䀼÷´2©>Aô´ V·pĺa™0Pݬùð 0ÁRYÏM ñ¹«žÛâs_#<76Äge~NWuu45¦ƒAqaÌPjQgÈA°ÂÀÕ s,@ †x ¥â€aÌPz¢Îƒ`…»U³T[:‡‚ÀË:ÕàE*ðRἯ/µ©Á‹WàÇ'3Î=)̇Mdƒã$˜æISÒùå,p”’NlÊ3e™²@¦,èæ40) ºE˜dë&åÁÐw?$à@  ЉÿL‘`(â§åËS&˜÷3Á’˜…®eqÆ»œ¡zù™à,¥‘Ç™pîo„ç8w8Âs‹œ{áYY€ŸÓUE]õ2Á Ô£gÂŒ¯dbÈ™J-ê œ ˜«r&” €3®¡T0äL€ ¥'ê œ ˜»U3W[¿ÓU3¡—:Õa.B. ×a–¯ mê0o¼ ?>lOaô“2Á~H&XÙ qê?*ô}ÿI3ÁÉΰÐÕL€#Îx—¡.sÁ}D&×Õ"aÓ|4:Û`BWLLÍp•<;$ çsW'/pœÍ‘çS È®’g_ÍäÈUë䮑³å‚•³cr†«äÙ9ûM¼À5r6jDž g¸J¾Š¾ëtRÆÃ%Ó9ËÏ2¨ÎÛÁ £}ç•”Ù‚zW,ÈM§íëãË»›qòˆa+[â°ÍÐ ñbúò渟¾{Ýnr$ñã8qÑÒšñbú4’CüÞðïïÞü23ÅdSól§_¯¯Nô44ãé¡«™vÞS|¤Ûg¯5¹·tT`÷¦;»w|Š;úŽ f¾l·.šÇí«QüþÙôá›·âpýæÍþêBDCoh)ô½lnïn®Nâwâx+.¯oÈ]oOB›{•l?4ƒ¸¾LD§‘6øZ\¥M¥WÉ‹¯o橎—4Í‘vÓ‹(Û—´¦›qšâêš¶?í|K;#ïy¯æyÒãoÇÃ(Ž'qwçk£³Êfß’S6¯ÿ™æ/DÜF|ï^ß>‹Óï‰IE¦·2ШgÑÛ‰÷zžà²ÒÌš|Ûn=-ám"ž½ûKéŽÃfÙ'Y·´¬‹ñòx5^P—$wD÷ÛþõrÖ)}McH«ÛWinGÐRãâcâÅ%ƘL[—³I7Qú‰%¦0-¬HšW'¹æ2ðê¦~›ÿìS¤Òr÷7c\oR;4´ì ‚ÇÏ´zZ|“LcIAµJ[9ìOcÇ]šÏ^*±W±ÄI*UN—úñÕ²7r;ˆºÑÀاÝpØëÛÆ®»!]ÈP„ƒäŒç!ê?¬Ð÷ºúQÕó膢if˜@UwUVf·]WþÓ¸Û¯·ãÒRf½v*Þÿãˆæ¦ìh¼Ýë┞¹qD÷1•ôD1½³K'‘µ“xCšÕøÞÓŸo7ûq¹ËÞ¯®*_RÙÛüáçÛÕÎok³‰íûuöyØîÆõs¦Ëó=Ò¼‘7œ/òËéFèüÐøgÀJßùéq¥­]ûÛm‡§áy?¬þì9eWvCë!M—Ñò||uÈç9c·h9kÇŸ¼ ÿékææßMTk¡]öp»²S9ÜûGî‡å>¾¸Ùú¿®W‡å°:^;HCv¿]s¸¸HâéQ­¨þK[sš–m‰}í¸ÂT`ã‹7WÖVÊÚòQ‰WúèVÔ¹ ª|O%å´»lwØlÖá»Ý‡áÿ›ßÙW÷|öÏÃ`å¹£'{Z×±@j$âðAÑ%µÓÙå¶6€›Ø19͸éåïe;îÇg%ÐTs"¦©oDH¸Ïîÿøá9Цq´QŽ6Vmv‰é6ÞýÙŽ¸ÎíÎmevë䎷CØ€¡—ÛÝ™)¶ñž}|¡M׆¼Ë-]ûÍ“£y㟥o» <Ú?Xá "×»Rj+rQNzQ“†¼ítÒ>ë²£‡oT[åd¾+ràÝúñ°§yÝ]ât­ΜÔI„CÂþÞ’úv×¾\¯·+’îýMÒ qLJµZ »åv¼³J ¢¡±êA—±R½£ŸÁ˜üâ¨ÈÞ:¼ w^¶|#ê¼Ì.ìÒ/TËBuX¨·:ß/·²—‘æéŽteüâQ+袔? üÓNƒÎWÃr|"­Y¶øÆ9Ìð¼\¯ÂS£½V™üÙ£nå¿ÅÉúÝ›–vôÓGU 3c>ä?Ü9Àš ¿¡|¢Õ…©§aoïl›ÇÕŽþ¾Z=ÙsjE\j¬Zï?ÚÜ›ý2î¢Óf«Ûýí¥%®¹|Çjz]öU£R·Ï¨ºjìü8î3c)VþÙžþÔ§?ÕéÏÆýì+÷£>ŪsJN\ ›nQVšÉß}1lzº’ï~÷·¿)¼o"®Û²WÉû!Œ®€§#n]µøˆ"ð=ãtvîë© á*#„Ë ÆuiÚî8CW'¯‹(ß§ð¾V{àK!Œ®…'öSæ›!ŠÀwCŒZÁT§ù#Ìà‘íUÙkuqýŒ\Mã‘iž¤ñØe€KÒx¬0ÀeÿiüÇ÷s*IÓ^[™®ì{btPIÓ±JÖ&øã¯CáŽdVÙjwz8“´E¹hC†ðµ¡ ë…1”¾Øö† Z‹×ÁØþ@;ÍþUÐ5¤ÍÿX2ů—ºF¬¦E,èêsZ øUcJs )›¦f¿æšzÚdÀ…eg–\X†pfÀ…eçÊ|¦®íÂÖUÛº^[G:˜æàM×t@hÓÞƒ"°÷À±éâ-8‚t D`J{ˆ Þ×;"°öÑé¢í8‚°u“»]ÏLM¸ô!Ç*\j˜Æc….ûOã×k³¦Bô­ºN››Wh3´úµ¦Ñ ZVÛLi3ýµùïE•ÖfšôØé¤6Ã'f4D+˶î ÚL‡ M÷?È2€ ËÎ,¸° áÌ2€ ËΕø9˨®*°Ì}%¦6Ú8™¦Ñ¦‹‹­ðWÕÌrJ»Â^Ö•.¯Æàé†xÐò ÜÝ3>qÏ@XëÎ÷ ˜!ö>A¼âáž3{@ö ˆ‡{FÌ€î ‚xÉîîp‘Á { ÄÃ=fˆ3Ž ^ñpÏÀdŠ@„ÜOYÚ)kôãTÇ®”0E‹Ð5ˆ‡Q›Àݨ|bÔP5„ó¨Á 2j ‚ŒÄèá +Vúè$6>7Dü~í?;øÏÿxzzwv(Õt¥)¢×ÿ‚NžÙÝX´tÞÜ»ÿwEŸgÝ7{ÜÕ9I?æþûðÅf+ÿø'ÿóøÝ…;¸^ +©r-§Si·8?·Â'fέôhÛôÍέu[*:ÌÁs+À…èg¦\¨Žpæ:À…ìçÊ|®®•­kkëzmѶOÈI0Ç€_Þcc¥A6?!ö"AÌ Gnl^1‚VisÄœàbÇA6!r"AÌGÖ nr·›V›CŽ}JÃÒ„$+œ†¥|I8Ö& ËÆ“ðÕæP/䪋öUæÐ\m6|¯úÿi*˜Cõ2‡Š6I§ã s€OL‹X½ÐÔËEÿýæP/LIFä fš#8ÐÀLsš˜iŽàPRÏÕ“ª¢èí«M¡^¨’”yB€±% ÷ƒ#À÷c’ï³à÷¥Eé÷ƒÄ÷€÷Ù `þØäôûÁ àû‘É÷ÙðûBпØÞ#éËæ]¢Ç­I G…¿DËš@Šv‰—$mø½^ý{Òζ~•ø«Yñ7t‚S½qÑÍqts$g¸+›|°Zßæ»ð¹ýì?ÃÏÕ™¨Òtö È@'ð°ÞJ•tß—•xûA ÿiÜ,³NUS2˜QŽÜCÕú *Þ×Ë8À…ªg²\èŠp&,À…²çÂ|®®­k÷ 5ï´ã”ó€Oè9ŠÀ‚#Ä^¤#ˆ¤ãÒ-E=F@ª"ˆ¬Ã5ÄŽƒ,ì0BäD:‚H;Ž ¬AÝänÛz4PÝÓpìS–&$áXá4,åK±6iX6ž„¯yS‘)6æU*¯çU^—UÝSiL]ê¶iÿ›2/ ®–ù ó½×ùÞé¼ûB;è)fRò»ºl¥’I͇ÖSK4Rê šßvd6Gw€ θ0áLa€ ‡Î…ø\Yõ ͧFèVaÍø„棬ù0BìE:‚h>Ž ÝXóc¤ù ‚h>\Cì8ˆÀš#DN¤#ˆæãÂÔMî¶>aÕ¹æ§áا4,MH±ÂiXÊ—„cmÒ°l< _¯ùT Ójõ*Íog5Ÿ†HU­ž¾4­n$¼=~‹ÞÏ>ôýÚþ~ðŸÿñôôîLïuÙ+{‹a½×.š \ó¹þn,HÔéß®èìèwßtA«UáÄï¾’ø?­ìßøEQå ¥ Í¨É |bFµhÎ;¥ÍÜ@‘…)ÝàÂl„3µ.ÜF8“àÂn„se>WWeëºx…P'š¶Ånð 7@Ø `„Ø‹tqAº"°ÄÈ @q¸†ØqÝFˆœHG7À„5¨›Üm:LªºAŽ}JÃÒ„$+œ†¥|I8Ö& ËÆ“ðõn@*¤Û¶•˜ëÝ Qeuþïê[õF7 m©¥ÄI7€ǪVÝQóLó7¨Ikh°/Ü@ðŽêoð\@<¨`À'T­@pUfé"žÎ *Š3𣠂ƒ ¬²1RY!âé ¢Âp"#(ƒà «4Ì J2D> endobj 420 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 126 185 152 199 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 421 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 422 0 obj << /Length 3731 /Filter /FlateDecode >> stream H‰¤W]ÛºE_ý+ør©ˆ‘Ôç-úÜï"‚Ä-š>hez­Æ¶\IÞmú7nÿCÿfÏ%oDor›^J‡œáÌž¡^oV/7Á8ÛìVœGeY²ÿí°Œ£XJÁò$âB–ls\½ü®OYÝëi1ëëÕËŸÞsv߯07Ža¨^­ÇáãêoÁûpÍeTŸBG<8Uç¡ÁòM{©÷o«- ×"~ 1`HS®3üívUÝœÂu•Á}È b?]š­y£h¥ÀZüå<ãqð^ÕíiË~Ø6CÓžXø÷ÍŸV?lVœ5lUQZJÂ#.–È$*’„a§¹`ZíV¯77 ‹¨LDAñSl¼¤0càwí9\Ø"Ī  ü6ØUIÚ8½Ü‡ô;˜M½üÑf<‰$|m¾'Sõ*ø]¸ùǬØ[i`“ÐD;µ#òÌe™Q†a þyeH"yN‚в˜:Ý/(I”f!f3êÈ€æe¤<^Ãz\ÄlÍ^QP‚ ¢Èãà¿I”2ÆÞV÷!9Q¡¤u™pi¶NE”ÆÂ“`ÄÆãgÉ—‘ˆ³rL6¬9N <ø¹é‡¶kêêÀNí úo¯ó–Ey:K«.âÀœµ†Ö<*Ä”VîÒj 2  YÒ”CzEb’[Îé«sǃ™È¢ro’|îš¶cCËTב¹lØ+Ö!ÍX¡ôо=\4Oï¬!Ї< x¨¦ÅõiA§(Xã¢9žê¨NƒÚþÁ ¦¨xê¢â.*n£¢ üúaê/†”ÿ¡ýÈ€ÕíñXáäìq‰°´! ˜Úí”™VŒ&»v{±“j…­ÙS§ús{êÛf|{Ô‘ëÓn½ ×iPm#†·fó›ßÛR䮹ÙôV ª;6'Å÷jØëLå:5pÀ*W†\—ë2°þr>·ÝЛœ+$Z§´ .TÑ<ÐYÿçEér䦲2xÁz½ÁÔšG¨û•r_ߘ™ši#ÜDM›{¬šÁE£C('Ú–¶-ëÔ" _Öì`ª È‚~ÑéÇ´|ªÌã;#"h4¢ZÚ½<6þ9±4>ö¬ÖóP•æ¤ÕÓÚ]ˆCÛ7ÿ" EÆö¡AíUÈil!l;c¬9ÚÙlÛXƒÍУŒó¨ùÔFâ}°Œ¯°¥å±ÓïN!·¾ÀûæÁ@&6+§˜²[8îÁ¿å¡‘à¹ßðRÞ“(K󹇜_y ?—^ Rò(.oã—7bye‰¿’2/"™ÝÂË(.nU:h[Â_ÉD¤ØÁ-}$»Ué$‡¬ÇþJ>‡OlÇN‹Qò”ª‹ðijeØ‘dž*¼ »ò,ÂSn—aø"üzóœ:Ê(˹` hddFkc>icb´æõ§î|¸¢è«gOU w‚Ô·CžA"`ÆqËuÆ“tºøYáÕ ™Ä%ºÖ›PÚ)º]¥èµºŸaŠ_Liš`ô.¤vØè·÷ûPß6Ý)Kd4ø+®%èã[uЀє©3æQDꞤ’î3yvægšŠx\²‘¼,ŸÉ7câ’w†£“oÆDߌ‰¾`Æ­¾ƒY–TûßÜwDgŽ¢x’ eØeÇ©Y†ÝIóÀcÚ–awÒ<ð˜Òeø¹|JÊgNùüÒüetf¼mÙÀ ~Óå®ëY?6]ßú©‹ë]Kõ®w%Z^?6L·>‘Ëýpy½k‡>ÿS‘—×Íη~bÁâz×ʼëM<õË‹FUro#Z†§â,Ã.÷‹ð”ÚeØenž³ »¸á/oDüœóìË[‘øªV?rf~¡Åô%$ó$¿ÙÒ(Š-¬»àƒwÆ”@ߌg$&Î1Uü?Ÿ hÀ:o>ÍöàŽ•>|¤¥w¼ôá#1=¸c¦3ëÁŸËkBy•_!ݨ„ä¯Ý¿!Þ> £z{-LµX¶àôÛoÁUËcaTðÉ‚OÂ=œ†{÷0UÜcaTq¯…‰ËœŽû-8Öøª9V;{æÔ,ãS¥<¸«Ã2>eÙƒ».ãS†<¸‹ÿbE—%RŠ/Wtù5Š.K|ÌÌßTô[ËŠŽÓ?U!•ü©¢{gLô͸­<ÒRf¿]Ñe Žà¤}ÆÍ‡Î/·ý¸Q²÷+™w#îó`•Îïa÷x•ð†{½FÜçÁ*å̃G)}îñ0*©?†Q¼FÜçÁ*­ßè#>÷x•ø†{޼FÜçáüZÉ8§cÈõ‰Çƒ6{gú³7¯µkª@lu“Þ×ëõrl@h™ÛVøß§ô‡mÝâໃ±ê´êÅÝAL¶uoB­'ÊšÚ:€€†„]EW%við}±//bWvKôÏEäct‹èpDxèó ¶”^ÞwòèâŒ|‘þ”Ž“CJÉF—LÝ-ú*Þüv¥cˆ[mþ%Ì/BÉ ÿ%¨°n•MkzÐ-üü'ý«Ùû®þCxómoÎ2è ÔméÄÝä‘t>P?”ɘä:ep6 "ñ‘Äô ½©ä­—r–Ÿ%ÿý'kN|¶€SH{ ÈrߟŰ㥊ç4¶¨[çчº¯OÈ{2zåFzå-zÜ[Ç`ëvêB/³x¡‘I4òŸÍ«ÿ†—ÿO ¯&JW#¥ QË; ØÕ›>¹®¯Ë/Ön~Ñn~­ÝLµ›MÚÍD»™j7cíf¢Ý,’=,¶œ´ûäå÷s{kR^ÎÊËß0Ù<Èêp¼Ýs%Ô,šŒg"bA¶še4 Póy]O¼®ióÅÒ Zæq ·1OGp0{{ÉD‹ ¾ØGPj·~èMšÍu“yzGÍ·ÿcG¾øvÜz\`»Ê¼G£$Öý2jíQw#:€m«ïLpîª}]û^L¾â{p%{ƒPfKJó:ðyEÔ!`*X. DªnÂl𯑿ªMòáé%ø)Kõç:ô¨$ŸÖ÷.|{+Ý|V¬>‘·!›„—îŠE>¡Pi½÷g|SÁßÊý;‹ÁÄ]§ä—öh·Òh FÄ Ô‡¡±HR>4hÅú¯C]UûŠ‚£¾­;©}a2›æORÏV'Û–TuÀd¥3 §š¤!O' Ölöšˆêõ³#ç Ìb]oÎ~hÆýšÈþ,umè¨&¦sž#R:[|.Æ;ȬsG¯7t½ãT2‚!›0dŠJ9Õrf.ò£ªkð .ýç2|q'ôaùƒ8á¦ãNw<‹„{‰[ëMãÛÓÑ- Ç£‡¯ ó Çû˜BY¦Ñ‰Â‹.1ñw.MGpi*àqB¹ï+‡ú.ïˆDJÍÓ<Ç(ÔE©5²hùC-kyœÆ +†Æ3÷£Ô/®pj Qâ[DÎý®†¥<„»Ó. Å´àº$õàÖÉnlô<ü&¤ƒT¨.¤Ug\J> endobj 424 0 obj << /Dest [ 94 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 471 660 488 674 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 425 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 184 611 201 625 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 426 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 427 0 obj << /Length 5483 /Filter /FlateDecode >> stream H‰„WÍrã6®½ê)pÚ"·,ñG‡f’Ij÷šŠµ5I<{ %ÚæŽ,ºDÊÎÌ íkî×R– ÛU"‰nôïׯ‡ÕâÝj%g«»ç™1†åø÷¯&Ïr)+•ÎòJ¶z\¼û±×lÝ[¶œõëÅ»_®9»ïàÍsZ/–ãëËâ&¹N—\fUò-yÆ“]ý4´Ø¾êë‡Oõ†¥K‘'ÿLÁbJ,C“. <÷wõºÝ¥K“™ä>åDb¿Ú[ih§À^<9/xž\7ën·a7íÐv;–þgõ¯ÅÇÕ‚³–-ª*ÓFžq¡˜’*«”b°´lß,îV «Ì(Q‘ÿä7äfîü±{J—Œƒ‡Ø•ìS…ßVå™$Ãiñ!¥ßÁõîgq•IèZýD¢Ö‹äoé꿳|À6ãÈ. Ê*õo¤™ Š2£Côs“"iVIMQ,î+ …YˆÇ:ó/ –&O4Ï—žW9[²÷ä” RU•yò?•iÆØ§ú>%%M*i_!C˜}„µÈt."†oÕ›XË+ì,,ÖnhÍD#¤Î“÷·}·= {ª×_›ÝÁløÝ¥KŠôþ1å"+“z e²ÜÆz '[òLiŠçMò™‚£‘»µÙ± û±Û4¬íY³«o·ÍæŠ5޵^?€f‘µož|vGÕôú¶zÖݱ¾ýËÓ¯õÍs³»bÝž5-°5ì– `Ì^ ð÷s¦[ƒ¹ž`ŒÀê¡é/Á8 T>d¼5À$kòfxh\þkŠ OnI·I¼Ã¿_±?ض[×Ö7˜?ØŠåÎD*´»vwßì¨$©§zƒ¥M*@ÝõpêÉk«íbV÷ì¥Ùnéi]YýûP çIü“ŠÛB 6~IžöMßöd«šH¾¤ìÙê( ƒ¶‡†Õ;¿´aÏõ¾í>ÄíÙcS÷OÛÃ$•ØVÉ#"…G³Cžj´Š~¨ìºm :ú‡ Èd°ÚVûÔÔ¸oj›¶_Û2?ô}c_zŠ}cŽÒí÷½Cé#+„ |sïfàç¾}îí©¶O'ì+#R1°vÇlKá¶Ïð¤qlóû÷Ýn³ˆ*1è$;ª,9(ëÛï.p. TÀù°ï¶¨ Âe´¸C3°0ó5Çs_çè!Eèq¤îSm·• )*`êuû½yUª2+ļóUÁ抄$6y¾YM™Ñ³fêµ}ÆÁ‚´ XO‘=V°Vs5:¨Ñ¾Á2Æ’cÕj”Ät|‘È¥@øT®7‰í".@ÚH£0G„÷iúKš Ç›6Â6GÿÊ‹"SEQ1m Cá$Öf˜¦J=Æwý!MémØgkÍ+Šù'×8Sþ¤·<­M­çO)ŸÓɉfNJ‹\f²D©—Ï:úÛt¬W½@`æŒCp 2*Aðä% e•ºŒK( Ö':7Wqt0©Rf¹âQoѧ0à©G:,W˜˜^¹ånÄ8&+bæÃÜ U(¥5Ó%Z"GT=†ÜÐfÑäÏ•<]jêAxh OΤÈq²£hÿ²ˆ±§á®ð'Ï—d\¡ÒO í£ge€BâÉßSj+¬ò«{>ÚÕvšò%M—*å3DêªÈ/}Šêq#ý/‡ÊÊòǘ,âÈuÒÍOèNÜ)bûIÃ)½DCžöˆÔç9¼§.Q=bãlÿYÑ-*>íçaê<‹q†e„l<[c6efd9AZkó:–QŽàIŒc²"ÆÂ¹T.Z£åšÐríª3]Hi#jÚ¯Ï"Œ3•™a²˜J¿¹µ!Ðkî¹vOÿ¹9=Ñ´ç׫u^¦aº2DÚðH¿ùˆ„± _0¦!&Á·á‘~¡ ÇÝÝĵF› möG03Æ1Yãx-²ÄT:ôhÑÓð(üðÈg}uÖQÓÒYÏn¾kÜÌ·s_¶ÑÒ-AHÛVu˜Êú´ÂÉGØyÓq°Šu´ÇÞH‹°u.`ƒéú¤Áj@XÄ¡äÈt~Rtÿ˜ ÈþFŽ| E1¼ Ù¥†£öEèA}„þxp+s ÌuÌYpô…mJG¥½7ºtÒáêaukOYãÐ"=•’--ZÌ™U‚_]H¸§_ÈxDBHy\ÂÓ˜„1éž~)ëQ7&7E€Å<1û•¥û@£ÞÅ@·!pDt„PÆuÌBÑ1rÄtŒÁöô7‚}^Iàˆ(y‹î&Ùpšò,—†ÛŠßWT)Sx®”û-/B¿åþ‚ûs{Ø7©½t2µä)jC'eÆØµ_Ý·µ[Ü¢Ó¼Yߺï¾ÛÜÛ–5hHý ÷(·Õ¯àN…O“ô¸yáEŽë={uŒÃcÌè ½Ø*¥`ª,3áäp·Þåtí½IVMªè†v‡Z®’ƒ®·[æVÑà!RQk õK––•:‚=ßRéú…cõâÞßÂQ¿ä„žòTÛçÚþ~uü}' àfmÏê½Uá~ÿ.]’¶ûÙ†}gŽÞ§¹½ ä‰ó¤óžt/=Òòk7ªê#m/íð":âC ªÙ`䧬Ï)NÃGµ Ó¼Êú„™Íg\Žw î¦:ö˯섵¤ž"ðŒëÀŸ—#?½‘ºá¡aŸéˆEw}®·‡†B³ëö´oúfGÎ.ëw›ó~Ò…šÛTμùÄ]·O“|O—Š'¢™e&ôø[û±„uä…~°hBMlݳ¶¿H ¬oï¤w)ý¶”(<ÖŽË-ì¶zÖ9ûyâ†ýqåÜ[Ò-P½^v.§àm›ºwjU°¤2jïÚ5U'õn`ÃKçL÷jÙŸd¢N®³ -‰²7„T+24d'©¨@ÝQí_9ù#Q uTòœÕ*gÕª}¼qyÅag>´+hÔË‹ñSªãOyü)ìg•Û~LË_wA²²Fû×Éh¡³¼Ìí|!€jQèÄ0>ØÙá-Ì Šãè1€&uf6‹Œ f~‘\‰@VMåÑu”W8´`kl…3«Š“Ñay®ãâ…Ä|„ã(²ƒ´_ A¿ ObŽí÷÷Ò(YÙ{_ò#ñH”¥Œí—G¦¹H®¸Œ[am)š;‰yBÈ&Ë« ©U=IDsGˆ-Ô2&¢âBjU‰%æî òë"«JO™zÊsÔ Tg©ç¨SJÏRCFÎQ§€ž¥‡ÏQç®sÝgL‰Ë­ÂKixº_9u?åºÉ‡o˜˜4 ô€Ä×}êÌ=mù¯2Lyz_„.…«É3+ÇÊŠñ§‹”¶§Ý$¿5v¢¡+Oá2û…Ž”$ÏÍæäøT”‘p‚*ƒ;&bß±7¨&E3ƒÐÿ³^mKnÛHôWøHVyT¼_jŸârù)®lÅNm¼ë͈k)žU"åÙÝßH>x»tƒ#áè’É“(žÆÐ}pl̽„û]Sæ5÷>v玱÷æ«kc;"÷Ò¸ßsgÊrnY?òµ²4«âK-­qlÓ5<ôƒ»Z=š_fnLGþ™¾á ÇüuÍÌ2òÄ­ËEIùt7t®Yw¬]áõ #TÃ(ÂëF¨–Q„×3ŒPM£Òõ¹®˜¶t²î]‘ÊR7¹'ú.y™e€kŽ.¸æá’]€kn.™ø¥¼ÒAkróAse©E—|ØÝ^ò·fø†€äŠ´€Ao˜Aª…¤Ñ{†²·rÀ ½®A+ޤ]CÕ`ÐŽŒD5°šRíæ…ªŽÛjöu ÃZ„ ì3†5}AØç& ëÆƒðÕݵèJºÙõÝ5¿¥»]µÈfôi+Ÿc|V™=å™s'Êò¶ª¨Oýíì»ÁþŒÔpÊx3mÜÿ-õØ–º¼ý—ÛŸÅ¢¢“ƒN¯5CÁÆ#|–QÄy[¢ù)ÍÅ+>‚èjB¦€vp‘.Äv.â…¸S/ÂE¾w™Eø¥¼Öœ×öz»çJd] í^pl÷ÁÙ=fÐZ±û3 R-Äàì~Æì1ˆÝã5hѳ{Ì š b÷gD5°šRí–TU"»°¯SÖ"aŸá0¬é Â>7aX7„¯·{ºí“å7×Û}q“ÝóÇÄŒžftvŸµj÷%»÷‘Ýó»Áþ°Ý·ÎîùiKë [¯í¿Å"s ¡3^/RMNÈéq„O0ЏàHMJ…©òW8=¯ ©°Ó\U‹p‘-ÀU·á\•‹pÉ,À/äµn8¯å N_“*» ;½ÃÏ8=b§‡ Z À N¤ZˆAœÞ3 § êôp ZqÄ NT€A3ˆj`5}µçª:vú0<¯Sž!Ï3‚gé ÀóÜ„àÙÆðõN_ÕÔ"ëòz§/orz¢oºº¸åbÿù¯½Ø5…k†‚v#|–QÄ[ª2ªNݾÂî«‚Mƒíà*]„‹v®âE¸¨à*_„Kf~!¯%=4Í n_Ñ]ƒÝÞágÜ1ˆÛC_Š0ƒº=fÐbq{Ï€Ü0¨ÛÃ5ø‚q{Èà%fP·Ç *TM_í¹¨ŽÝ> Ïë‚gEÀó ‡àYúð<7!x¶ñ|½Û“Ôº®é®wûê&·/hÌŒþš{ýç¿î^_RŠ59A£‡š`qÁ zÓ´Å+Œ¾(¨Å´Øè®ªE¸Èàª[„‹p®ÊE¸dàòšwœ×ú§''«º;½ÃÏ8=b§‡ ¾auzÌ Õ âôž9=`P§‡kð âôÁk"Ì NT5¨šRíô…ªŽ> û:…a-BöÚ¾ ìs†uãAøz§Ïö®úz§¯orz: p9úÒÓSâ¬Õ³ÉYÚ’Éÿ3¡ueq´Û÷cB#ãñd´µxßGÍb‘Ÿžâœ†Q#9ãå0BS#.xNF›äØ?ïåY¹¨ÏXyVUXT†U•U†aU%€%¥aøB>ÓnѶi~ƒ‡g,xèà=ãßáÑâÞ`´Ï~h´:7­Å Ž×–Ñȳƒ£Õ±Áܾ´ÁÑâÖ`´¯|h´:5­ÂWLê™ÍeslÒAÔ×#ˆj¾C¨ÏgÕ|…PŸ ªû ¡W»sÞÑÖÓ,»Þ›[Ü9ï:^¥ÒWÊž{o.èzNžüŽîÛ_¾C?'YM·I–ñ%=¯‰²‰11tO·/ -âÏæe´ØÑë8²~_vd÷¿ ²‚Œ.ò¦”Ú jÓ 2îÙb‘ž:yGÞžk(@õDB(@UDH(@Õ‚ÎgÞ‘\Ú¬úó(ïè«Í`'B¸$â.w—ÔAÜeár!î‹ðKyM9¯íõ ‰+‘ÓáA-IpÜ” ƒkK˜Á×"Ì ­é ƒV 0¸ö4c 1H‹Âkð ®Ma¯‰0ƒ´ª3 ªTM©69z›£~`_§0¬EÂ>ÃaXÓ„}n°n<_ß¶r÷4o¯o[íMm«5-ªúZÝŽÖ§ßæ«¬5"ùôÎ. 0ÑÿŠNîê3}rG!ñè~÷ßí¯û»Jî:nLGk£}V4«!õœvµÝß?¢ï ]&5ÆÇƒùÓGE¨y±Ï¤šîP÷Â^.(ÂE\pÁ¦$1ù+ºKS“ã'çDá‚îý>fw¦êð3¦  0˜@<N g9<‡Ã¨%ã ¤¼`…ÁâØ~äØá <ž@ î@ L 0˜@üN žžÀÃá ´à ä \À_º*}/ÐñËÌI”眮…]J'0¯È²Ò²ã#«ßÉÜýýæëaß'YÊëò.KÌå½]DÑG÷v¿YÚ—t·gs[ÞÛÿã@6ež&2å‚=0eüi˜6æÅ°vËËòͱM'Þ˜q3õó#ûNÁ«§ÓÐäuÉ«·k6mAžxõŸÖ}ôû‡ /¬‹W«GûÐÿÝ»w“ý¡ÌíøS„½uïÞ‘{X@ïûht/–î·†Ÿíè)çÇÿ&äxE<Ò_r~7ßÃÒ­?ZÒøÉþ9Y`ä€á0öÑýaz±Øaû7Ç1š }6ñL}$ì2ÉÃaŸÜµ¼)jT­ì×$9%Û^ð5ßvÒ”vÌæï£ùaQ[ZÚ¯ùG{”‰ÆÉÒM\‰3ÛÈc’‡ ÷ÑfFûü»¦É2Z’yê":vm,ÛáqÚ||ÞLæåÚ-õ¸z)²Á^bS0»æ¥®4íìBceàÚñÃr÷~8ìßxå|’yiG'” .ów—@U"»d»Ç]’ê~ïÍóæq3¹|Ô\€)mž&²šŸØ(Ì?Ú†Íé`†ÚäEÏk)˜KŽšˆÚ`µÈå‚u¼=SRoLÛ¼¼?H̉#Ò7'ô® ƒR"/¤üdf¤£Yò…p¹ÃÞÁÏì|:GsÚHöF€Œ¸€‘OmFÊÝ÷VBûž/˜-_0YFEüÝQ¬^•\í‹’¹¢¼%ϠܓŸ– }ÍSI/¾%VÆüfežOrY-æ÷_·EKº÷{ ±|ýíWGÙ,e9W›zvê<›½ …l–M cåÚßkØ{\ ÛD¯¢åHÄÞ湧t¤ÆƒÍPý§áð°þûrõ&ZÒÑ×ÃáÑ _EĺùjB·F l˜ýÊnœ³\Ÿ¯\íÚä½–ÛŶvÆõ0N§åPÛ©x€]ÙÊ{cm9kAƦ2©çf×¥µ"6äh¢®NÓè~ypÖö4¬úèKlŽüQ s2ÖeÈý7Ï["pájFö>?ánÏæ”r$~3•Í:'!ç$Øò”f¡"£»¼^¤Õq:+ÍFe©]¨.Ù—„Žw¿†]Ïz Ê,-qÃm“¶\º*ÖDl¶Ñ÷|ù˜zŸr‘/ñS”å.EÜšLѪØ{6SÎü´<#Òi¿ÜŽO¼ÿ­ÈHtš§|«ùætÔÓÛõ{r³‡AZ »çOÆÆÉ7 çÕrZFO÷Ö tm;äm‡‰óó½'–¬ñZ_>˜¦Ïo–†gê”Cù†úÿ‰qÂ^ endstream endobj 428 0 obj << /Type /Page /Parent 759 0 R /Resources 429 0 R /Contents 430 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 429 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 430 0 obj << /Length 4146 /Filter /FlateDecode >> stream H‰ŒWÛrÛÈ­<†_1@,˜\÷ͶìMRµ‰«ÄòË: ŠHH€E€–ó»ÿßÌéî@J­KU€î™î9};ó~µx»Z¥Õj»Ð:*ËRÅøseÅÖ•'i¶T«Ãâí‡>UëžÕbÕ¯o¾Óê¡_@7ޱÑz±¿wáRÛ¨þš8ÒA[‡ËWÝy½û\mT¸4qð·:†¤2Ôá2ÃÿÓ¶Z7m¸,£2x5‰ÔÏçf#_jZi°ÿµÎtÜÕë®Ý¨›fhºV…ÿZý}ñqµÐªQ‹¢ˆÒÒâ :Ò&Q‰M¢"I<Í:Õ‹íâýêl•‰)èüt6]Ò1c9à‡î. 8‡bUp ü6ð*Ž,9Nw!ýâÔÛOñ$²°µº¥­Ö‹àOáêßñ€o¥ˆЄº'²¬ ¡¬aìûºŒ2€H–“ "³€á¾!fc.4Ö‘{€4/ã Õñ»ÇE¬–êʨ(ò8ø_Á”ú\=„d¤-­Ë’ f‡pj¢46€q¶ÄåZ`‹B°vÏ#ØY‰lK MhóÉM*'76Oåäiÿß[:e¼W¡±1>ŸèCtC·îöôœõHô,Ç1MYL¦ãl=Ó«]­ÞûZÝÖý†î(о3r±* zùv<‰ªéÕ¹¯7êžñÎ$R ;´d³_(ׇ®ß©c‡‡¦%œ¡²©¿¹EÈ(ƒ®ë^UHónØÕ'9Â…´NçLI'§^ÇúÔ¡8› Á³Á¾”âÓÜR¨-! œ“©œ%ÅYªý¾{ìÕ¶;©ûfÓœê5ÕW%ØîÕº;Îm³®¸êîëá±®EÖªJíºÞeýê/>H±Ãñ<à4t®óQ Ò™:ÖZñ¼ÚTU#mß7­ƒçA ”ý®:Øç^=6|dÉWDxæ¼)«D‚•ã¥}=Á ÝÌ¡¶fl¹³5›Ü6ðµúz¿U•KŒJ:$Ÿh]ÓI†[_Ão÷ˆª%@š––?‹4»›Ïí6Ï75ÚOláFŽ@Óóy?ÀžP.ŠðŒf‹øí©}BÀý9w9¹fÝŽ:­ GÙghî÷n“ÇfØIÈû¡‘òñΜ\"&´rtÈ÷aNF‹v–E‹ÿod™³*NʯlsâçžâŒI0Œ›÷ —v‡=¸¯×)WN.¦¾T·Uu?œOõ ]m¾U’R%²l£¶µ¸^]êõ®ú"&áÙ†ÑÁ¸® ~¯ç\M]ȵ@Ľr % rÑê2{œŽBNmõqš S.ù´F=„ÖÆz à¦æ™ÉoÕ:,dF^w>ΟÌNùcæü1Sæ‡É±Œ#†!@µÔ´W€t1Á™’ CUðØ6¯ëžÔÆ}«Æ•£U‘×$Þȸ–¨ôß €&HyýtÃGÒ–u~¼·yvÖDÜÝ6›È%ß•C,ºðèÅÖù,SàsMES]5¿½˜ÿ­s!?Öížâ4~:! tð;<`¤êèœ$œ#ûÕvÜÊàPqZ&œJjWï‘ŒÃØ/v¬ÞÉjùü5x“:c_À/lð5Tûú[½§nèó¸[uqZc'ÆÁ &HòX1ói‰Ž0g™x~FIŠKJò¬qªãy”ÁtY¢‘£bš~ÀÜàWó0@h>6\=ã—~š!7Eéµ57Ó…\ºÖèz2•áØ7YÕ D*,û£­òÛUïr®Ê3¥ýZúJË'“V¹Ÿ5$£Ç¥0(•k–TøâVã­dŠ&Mvh5€ø+'7ùPË67ÒQïn¥YÞL9O†aùtÑÙ[Vïåeíšt×öS÷c²:srí8yÅ•ˆªfÏK2‰2”ïƒ|ºRp=·\(K/f©žS"ŸRÂÁü®UõwŽRŽ­OT;t¸ p ºà4C¢*;À“%O×”®jÿX&n,umˬ½™ÒŠÇ%϶#Ž"¤‰¶u¬ GKÔWª¯ÚSïÅän1’ØàÝ¿5ÔûƒG”V‚ÒúIvÀÝ#- “G÷h­2°F&½6öˆ56Ëç"S\b°i$3‹87cn¦ÌìáW^XqB½¥ ¸à9±[­ :Ï:JJ—¢–.`ú{ 9v4Pq‹p%#‰¥ÂKB&ÓLˆ¸GŒ_'Æô²¯ˆqÈ|#Ÿ zÂ¥B’DYŠ+€AkC¡ lóTüòöIÅå$Îm”¦W ]r’Ìw8xö~<{l'u‡î3ï¡ Þ_*Ì<;àžóRŽhËjeK4äÔäãURr„bïÊŨÏÝchcWšù4¸ò`2ŤDMä/©`aIš¯]S8ê¹.®4Æ#;1b³Í¦¢s]Ñ2ò¦äY’Ó,qE÷&ý"}ï)æ¶DÕÖ‹ù(÷c>jø0å~Ìý>Œ>b0–öÌG ?æþ=þó #©$¤‚´#™‰úÙ¥¶fÚòXmåßFîúñÖ}~ŽÛ¡Mýà;ù+à; /øNþ ø^fµN_ßi¼¾wønQ'Mò\û§Ñ%˜)øåë—~¹Û+—i1Êý㻃£Ü?|;&0X;r‹Ü´¥fÈÆgc‹('`‰V–t“&'3ktײOÍn‚!ÓÏtIW4bÞŠ8 ¸â½¼‚)R³®ÕQÞyoåHÉ“‹¾—e9:E%ŒZ‹~]â"h4»ä!ݸê¨ßø¢Ä¬ù´ìÚ߉ѵ¥íAf‚%œî’A;Ü …8ámsŦÁŒÝ–ýªpåêwÝ×’û׌-6l×ãîÌ™êÍ“Brùk{qÅm%Ìî84ëž/ DQÜ6§Ô‘lÁc… ™ÐÁªU§s+”ݾZõÕÁqDÕðº:mž™rÊUHW.1H÷YÆ·C·9{Iã³0´[pÆÏwoÜ`êÿŸt+w¾” ôìÓê—D¿Ó`ÊN°ƒòâ†e‹¹h¿z+.Uc3yÅm6ШK9†Ü°Š%åħOÔÌq™”¢(ãâéõ´›»ªƵKæÚÈçŸ88#-(ƒ¥+¹Gø¥IIݸŒâ$ÂêO™x­Pë*Q©B­«blTšX¦R‰;?ã}>ùØ4â¯ÓYŽŸëìJí£€;†˜#þ?%®“Üg!CmÇù¥›^Y0qe™õZ˜ä &."Û×,¤6B'ôpbßþ)-ZÓÆo`’{,ØXGY™½f!É£ãÀka”û,$–yÍÈL‘~ £Üg ÙÅ+’/> “Üc!I r–cB–åµ…"§’õƒG<ׂ«øg’IŽ–¯Ëçµ@Ž\h\æ²GcÎÅ—.“É£q‘ ‹`¾¬q †CˋƋ—üsp>¹h(Bâ…㎠0H(ݧ’©È†Tñå(Vïà#[ïãzxÝŒ‚XFkbpj'0ƒ£Ü#&4îíõݵxpö0ÿØÔ·%L¤ž$›gÜ÷wOá{p¼­&Zý$Þ·²&æŽb½FÈ}.Þ¾nÆ‘ï‚vÇg Ø!­Ï¥ßд«›±7+~(µXÝ,¤ø/èE 5â] ü)îÿ­ÅÓB¡0½ÚšŠøökœi$2ŠFõF…jÁ§­+®Å=êY†kÔȾ2è9Âz«°ÞGõ0P33ÉÊР~– ‰Cãõ"¸f¢ÓÞÂ<ˆõbÄy¼ K+ w!{dEÑÇ@Ÿ˜‘hi/?þÂ!Ô !(P$Ã×d†4¤ØcFWêlæ ò“Ú+ŽÊ6ØXÕU-©M¸Ä- )´pmÎô§ôVÔt¼Hðİ”uÝjv7Ì@ÛGîk+l7’k×Áþ4¦3og ó¤ÉB; Òp3Úö^ÂY #3±0clq¦öÞ‚÷> endobj 432 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 433 0 obj << /Length 3695 /Filter /FlateDecode >> stream H‰¤WÛŽÛÈEäE_Ñ/È`D³IQ$7Oãû.bÀÈØÏ>pÈÖˆ»©°©™8Ÿ‘™ÈoæTU“¢$Û›M`cD²oU§Nª~¹š½X­"¥Õj=Ó:Èó\…øçó0ã8Ré" Â,ÎÕj7{ñÊ&ª´<-T¶œ½xw£Õ½anb£r6gŸ¼®ã ó>ûQh¯)ö}å«öPn>•òçQè}ïc}šÒ¾Äo·.ʺñçy{÷¾¦!õîPWòÅÐÊkñ«õR‡Þ)Û¦Roªº¯ÛFù?­~˜½YÍ´ªÕ,Ë‚$áˆt´P‹xd‹…‚¥i¤:3[Ï^®¾@œù"ÊÈòMçäf(¾j÷þ<ƒqð«¼Î_ào «Â &ÃéãÆ§¿½õâ­C|Ä8kõš¶*gÞïüÕÏ“xÀ¶\†ÐêžèdÊŠÆN8_çÁ ÒÉ ¯ —Ã}E ÌQ4™Qî£iz‰çØ=ÌB5W×äTDCY–†Þ¿“ RJ},î}:Äø1­[&#Ìá$ ’0úͧaDá’&Þ&£·‰x»Úµn·Ûö±nȈÄS¡©øšzò¹+vÊ)€É¦}´ªÇʺéM~4F¦–Ä«îLÿhLÃS6­íUõÆ%ÇÛ…`›Œìe§Ø”Œ҃Ŏùׯ_Íɯô#äÀæ£?'rÕw²EÆîÇŒÈð<@²$iœDLº‘oHr ¤†Áa k¦Ëd2¥Ã1ÅÃ8×ÃB~Žb•é…J–Y°H²å1уH\z[ß:ã#<•Ì〲2õ”"Wíg‹Äëý9Û©Jk?!ï)*ÂþÕjñk‚“ áÒPë!á"I¸ Ö [:§¿¤ààX:Ñ…Jø1tA>t^{Ecwµµ£,L’Œ‚¸ŒY¶}^ywýš²aá½ô—Dû}×ömÙnUmU±cfÞ~ë˜+˜U[Ù2¯«ïL ª‡¢«ÛøÃv½ßoÚî¶uY0¯”…,J²BÜÁÞ!„q ¯D5FU˜Oe4Ò@„¼}+ëç²ê”¯a<ºê@¥ó>èö­Ý¨·Å®Þ~VïEÝb¤g]õXtæê E¨w|¢UÌQVÔÙ8u¾õ®«ª¶xú‘0Z°¢,=»5òÊ fÞ•ÒyÞú¢TZvG΃;™€ÐÇÒ£]¾o ‹ñƒ!QÖÞT{uþ\ð_ë“_òE5mÏÊ¡‡Éš·¼xО£Ü¾Ýd‚<˦.¼|—‡;à®v»x`‘#-Çž>SŒÏRŠ£¡˜ŸÆ‘4`.«G|±X{CÄ ‰òi9J= ñáH¿õžÎÅ&ÀØHÔt1©™ï>¼õ©º¼?ãQLˆyÉ'ïùÖÿ¢zœÕOR“Wù±Šþþ§vƒù“tÉ>çc~wèˆíÛ½º«{ÎjùôÄ?!‚™{Ïò‰&¬Ûl;îÚ~£JhyÒn'+›jØqçŽE{òÞËÏ_(ÊkÞ…Š˜t ´ÃA&ËβlÎo:V­ŒÊBf O¸àJN™1 –>`ÿþê"ô^'ˆPš!”‰¢¾ô_:jl b\ðo/?'hÊ r)uÛÆ@·œ ‰ô†”ëFÉ–ôFOR(‘p$žöiò3?¾ ‰T‚6‹^AÈTÕ×;÷3Òð”>tâ·àsêè¼K–ßH¼Ož+A uçZ‡–ÌçbHýÉFÞŠ¼²( PòOÒRGG!sâ m Ô›ÚÏ= .&þä2øË žš«ÓÓØŸgG–M}»¨ ªCsÈõéì 0c„Q© Õ¸†·uubWlyð±FŠŒ}Û±öS%î£é;¥øÈ0gAAÕ¢nj[ßmÍ­¯65çJÌá†Êî9+@-ÚýJ çvÔͬY¶b0®¼èÕ®/ìGm²µíYÙE¹Ç/š4鈎c¿m·Fê~.% KÝöçl[ŽúùkdK'zuy¡²Ké!Øçà\¡K.ùÙy_ǯ0³ˆú^Ç_IFucº‡º”FÚ¨¿™¿Œí¯¤]¡Ó`;4ÊÒˆ¸ùáêÞ5ðÄ®Øû—=ÅüÃÍì ‰)Bxg¦Q‰Î<‹Ã]0€®8üfF³³«žU'„Ár1Å?^l‘|:‡B¨ç†ÜMÅžûV—#zVµeypß;Õ6[ºÞ”Û6'``]Qߢ†æ}yÄÑGO?š—æeÇ^¯*úbܦ]£g} £#&f˜SX‹¾Œ2ŒR}?… È€b´í¿º"UÕì]IŠ=àSy¥‘®/¿(ûÄÚ“¢ÿ+äþJ(•?—Z5ç¾­oç“þ­—ŽMZ:¢*$WR°ì¤/t]ÝVfM›Ä~8¦ä™/·…µ+»Ë®ô GË@%ÝëÚu›»ãÆò¥–£-„nN7´{™ïß»¹u3 Í„!cl†àL5R¶îäÔ3=F‚N4Õuê{W¿±iM’Mrµq_ÇR€Œß¸TûO­K¾¡¼kÞ1¦~)ä¶UJtDSÃD½™Ä{“JWÉ4ˆÒßR%ó •’#•\²#y8†ßûÑ‚õ’Ú)Ðã= äç‚ÿZRo*ª‰T éQdŒò‹ßx—ZÖ‘RðrM¶Å•%ƒYQÉáVÞl/{vÔ?cPØËKˆvr™ ]µøF¢îLaòt na·ÈñOµwÖâÛ;P´Ï梤 僣€öÇ"a©#ª"‚È#”À©Ðÿ+_émV­*ê ’µÝÂrб2½)¥‹Ø?‡$ÅN {ZÛ_Tüìâêoô"³.´·ÃôvWÿ“%´Z$þêÆ%!j»;Ó©{Óæwö@•Út[mÜT‹ÿ”ž)!¦¦jšË•#‚` ›¢¬À«î"Ã>yìÐó Ýv`óõÖ¶‚„« Î * ”ÁT x"™î/œÙrUO$òÃ:8lí³Z×fëJÄêÏÇëX9ÞÑ%Ç ¶+Ï~ÄŠgì-›¹*DW°k¨!ÖwÇ3®1t>¤Ñ^tJÿ“ô1=ôØ'iRsW#\Ÿô$­ó_}êNÑ^šæ”2À–ku²¼Ð(³¦ £Ç²§Ì°\W$è2Iù•C†­Í£h½‘“P©;Y.³²íÎ4=u^½€4Ô+h‘†ðâ!Èç$þäq/I‡ML¶CS™uݘ Dy#c=(@W:ñ9bŸ3ñ™ÇŸ°V"iDs.õ"b¤fÅ@Á±3jè heÓò&|:gÁ7FíËä¢?#pšOzÛ'ik!qøh¨í9¾Bã†ÊgwËûrkk¨d.&OU0Üþ„|™˜W¤‚Ød,†MšB–ìûº´êú57ö^úK²xÕ cÉíóæc†˜µÈÌíÖ)«Pˆ*n9 ômH„7«Ù‹W6Q¯n@oúwój¦ÕxøY!¯–êQ¡`~PŸ~úãÕ®[U kîWœ2éÈïG@)M:PnCHÁß3³öÚ>!ª{=g¼ÞõÚ³k³}:Ùœö€Þ2–¸'TÌŠKUÝVQOðóãóÉ'ã»5_ìB¸FbÞâJ}ßN> ˆì¶„ãh}ÜÎqiw5l÷@pÛ‰xtCÙ‰¨VÙÁ.Eà”=Ø_’u+§¯°p𛢫ǰgoW$%Ì ñ'ç1)Àeù)‚`"9ŠÀÁ—ÁquO~¥L [A~–Tä~"šŠ· ìeðn œUöò„ƒ{Œ€#ã:'ía*BËxØvcg»ñhs絜Ä­ÌZ«Ü2¤$Žú÷H§pX‹å8í~ßaFDvWF@nW :nkp†"Üý¸M ^ž®nønxl7ˆKºƒNzüëûnB °ƒpZ.Þ°]ì‡ns{ ıœŸ#O²¦ ;¡=RÙ[‡Þ3þ™[pÜv<Ñ£¼d˜VFšo/®â)#âÚŸ$`C °‡Nsñ·´µr®5¨ü#m-òQ­"ÅËÿgò¤åQ7rWq‰CrÆK•»j܆dp‚à)¯µ7Èsn˜¬ì‰ðCððËãf*çþôår‰ºC­Rà ”jA$©y°Lµrù4:kAÐi÷“‚í 64ë´bÂO븱Yž屨[®Â ÈÚŒz KÔÂlZ¢& b¾Dí*Ätáˆù¦‚X¢¼¨à@º†!ç…;­§;?UÇ8F”iZÐñPÁt ºÆ5† /”¡^ª…c¢‚u¡æ´æu Í5ŽY'ÔulNÛ¨2†W«ØjAǺðDškÓBs}®¡ÁM/”¡^ª…cœ7©ïÑÈÜ@ú¾›(‡wä…E62gpá ×ó t<27¾ïÃBÏËXcdnx¡ õR-ãàÚ­‡-×½á牠crÒ¹\¥›Èµ`5ãùg“â2Û•òdžp\†²ô›Êû\¢vDg!y’´Ej¶³'Äu»iqœÉ ¯ö`9ö£Ð¦9[ rGŸ¶%°W]IâŸM †¥Î~¡ —–D¿÷~CgëP¬/ýHb–ììGà}bÇ0ì·ñÒ †ú§H:ሢø endstream endobj 434 0 obj << /Type /Page /Parent 759 0 R /Resources 435 0 R /Contents 436 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 435 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 436 0 obj << /Length 3351 /Filter /FlateDecode >> stream H‰¬WÍŽã¸F’›Ÿ‚‡=HÁX#R¢~öÖ==;HÛ¾-rÐÈòX[2,¹;û™E^!¯™¯X$m·-÷.°h %¹Šdý|õUñ~1{¿X(!Åb5“2*ËRÄø³¯eÅI¢Džê(.’R,¶³÷-êÁ¨Åb¨gï?=Iñe˜A7ޱQ=›»×—ÙÏÁS8—IT¿„*ŽdÐU»±ÅòE¨×ÕR„s ¡aH*cÎ3<÷«ªn»p^Feð%”$Ÿí’ih¥ÂZ<¥Ìd<5uß-ÅÇe;¶}'Â.þ>û¸˜IÑŠYQDºLàˆŒ¤JEš¤Q‘¦–æJì›Ùjv¿¸€¤ˆÊTä?ù&Kr3f?ô»p^À8xˆUÁ>Lñ¿…Uq”áôã:¤ÿ#õþñ4JpÖⶪgÁŸÂÅ¿NòÛJs@Ss¨}£“…¢( Š0vÂù²Œ2‘NNƒŠ¢˜&Üï(Hf¥N4êȾ@š—q e<Çîq‹¹¸#§‰Š"ƒÿiØ*Äcõ%¤Cš0¡uYæÃl#¬U¤c5`ø–¾‰µ±Î²ÒǺ`·å܆%‘1B<ö¡$‡^¬Ž"àÌ‘‚" `U°o†0'İt4B›‰c°Å\FYrŒvæ£ñ±‹ucC­9Ô)ÀL1.‚sHc`];ˆêó¦c ;Â&^ï(°ipfÁχAŒûj… `ͪ­ÅK;®ÛŽr»D¿»þ¥Gd®1R꣑Ú©ÙÈÃ.‚,]6Ïmm )þ3ØSsªÄÎØ¨ƒ>œÓc?’±«ÃfƒßVÿ ·:t5SµaU«Ñî¹°r€qm7ŠU¿Õ 6}GèÀ:|}c;ímÌ_üõ ÉdqPív›¶YF‚°oü+”©ˆœß6‡Ý;ÛðÞn‹}ɶ_6â3Ñ âŠZ$„ŒÆW24#eá»8¶j;Ðü»{ Ø mÕriá´y­©£a åÉ;Q!׳Qølløx²ÿë6†-D˜¥‚°›õ9²b ³­³dìØvVD¡UÁNaåžS€­±ß7KÞùeÝtͳ]⎫Ä'ÊlôŸaÉO á<#hZ:/%® 0crüÔtK¬&Â¥jEÝoM„‹`KÅUœ¾®{@·;æÊƒžðùÚK}í5\Ö•rïÊ=Àþø€ÂMÙ$ØnM¨¸áJBx»žsïaþºž3Æ{bë¹¼VÏy šíaS ªZ # °Êû¥­.mª ¦lûÃÐ ÇT'„De1v»~?^/> Zîƒ©Ø h•Þú’­ÿ±"csðåI¥´=j­£ ͹}òKm“€¢|i ð#žô J¥,õ›%À"ãxnð­bãtÄóå®5›R7æýø¨áÌA¢U»áfèC$œ³g`“¾‘I[àÍ¿-¤Ì&™9ÐZþì;ɯk‚?z›ýÄiüb=‹_^©7bÝnÉx¦*ªºn†×ûd(ÍMµ –‰±ÅD. ¬Qµ±Ñ¡$œkgµÕ»†Éœ5¬ze>¬™beUœqt’zæÀ‰¶·9a+âyKrð,óì{¡¡¼Uo¿{ð37ï–°Höb«Œâ<Âßg:?P8Ód»iY¾&^@ÂN×LTè^›Æ ¬>® Ý:Û.f;þF^õÃãi5‰ƒe=K‘OêfŠí`+"ŽÁô+.‰š0mÇüJ;1z3í$f %’âA¿PgÿjžãÜ~¢ã÷翜ÏuÂéXwQÚDLßÕæ«­Á_M½ k½0Äo¦*Æ£û ]'ꈙQ³Ýè ‘‰ª3©*9èÒüæzÕ Ìc¹á1ÈýIÊLà´¦å*<É„TûžÒ] æä#Å¢ü]±Ò3ƒ<‰•ÿ€yÐâèî׳|Z¶)™=Ðäö†£»æE<‰4Õ—›µc ¹ïìï‹qßljRn÷‚ÇxÚÒ”Á”“¿Ïlj|ÿlÃÚeÝ'¼vœÝT¨Å‹,îìNS·´ƒËº‘¹íªúk3¾CÁƒèÓƒL…}Y­šzîöÄ•˜zÛ]kæ73á„sjÊkb …pö‡Ê>9À¯”,gÑouóÇDõhØILŸˆ•©–?á- ±‡,QÁ?üm_yr »Õ%«aó7š è›F(~¼+f8æšøËc>µ1ú¢hœÂ9n 8o׫3iòPvËg» šùhb§¨ƒa‰ýÝ®x »ž¾ËÆ»ó“æX¹þæ2âkXý‘—¢qßT#µˆçjÓ.=Æm>– sÙPmCË7Þ*D› ñ¥qÞ3åÑQo§´vbH‘<ÍJ?Üí3ßí5w{V“¶i«`gµ[~ÔÌý'_£ñ¿»Ø“5œSLBrþ^ÐWi)¦0“ºm»¾Ù Ñy1â7Ï=2ñÚÖ7îWÔÌ6¼Ò>zÖx¾7 óãh,c.Ø K…ꉅ}•ÎòL$”%„M,¶&~©‰äü4”h œ¸Ç=âKkfï!, éæfŸ+™`ªmÓ³1Ü}a¥5ÄyVPV?šE³âÕöÉ;²á3™˜Y)p'¥À8®ÄÜüß7³ÕocÖ(Žò"ŽTžœj(…k@¦&wP4 GyZà‘iä¨?YLïy™å2GmÆg[¤iÅi2¹Å[òÓ0Héäñ×奛'n\×8µâºÆýâ„§¯€­»§Z Ub4ÉdN`û9ˆ ­ µâÿjP k¥EÈ!4ü±ß;ˆˆ_¬Zb‚+ð•—†’m¨s_œóÍBeúoêxuF®Ò¯v ÒM¯ /F©gÒ: (^¡ËÊ/ÑuÔ€CꚆOL ›céS+/ä|Ì®¯ç.å(6u\ŸbÄ)'4x‡+S6zù„^>acžEI~\/3\ ² Þ⊊‡çd¶\6ü&ðM“×E2­q‰ëG+¦4P$·J'dqây˜o:ÊËÜÞ$u ·°Ï0Q™¦ryøQ„:/iœl—,Äe,35ÀƒaÒì»B]Iû^W¶ùcTä%¡í‹PDÚ©šdX'ŸFøÔŽa|ša'w° ëä7vÚ£›R© zCãÄÌë§V\×xµ©¨538´òMÚÍåŠÈ”AP•êu<ýBc"æ“fÞ¥»ÍŽè®4ÔXb¸IlûŹ0xÑÄ—1¾¼ŠUÖüñHcg‰ùG€nA¶ËF|6üK÷EŠ#ñ3î.~ãò ªPÆ:K§Qeå7P5±ƒG••ß@ÕÔUV~ U“n87qzšÞBÕ´†7sJãhŔƨJ 4;RŽö”“3¨v…²OG9w„…C.|VÁ= ·4¼‘fÒ–„ C<ʲ´#!mH(»Mt®§ábå7à2±ƒ‡‹•߀ËÔ.V~ .“n87%य$Òk$:¢«Øä“r(+¿¨)¼ÆÄ>”V~+”“g8©3\°­üf°§ñ‡¼%çi×Ý­P qRJSaî]¥è¨YŒXàv™(êà¶ÄOÜÿïºjzÛ†aè_áÑÐ Nâf>(ìÚæØ‹k+‹0Çr-;ý!íÞ{¤ì ‚XŸäã%’lòŽýô¿gÔ‡LG¥ÄÛjϬÈ'-¸¬ëùê–,Öݱ¾¸×y»JUU 6+hÚï1]1üU@L{E K‹8NX¥Z ö¬4W@Y@msæÙ,TÙ¯Pó¶.6iο¡Fõ½L'Ñ5¸Ó}”7×…Ö·ÇlcAeýÝ@o™«í‘í<%d‡ÙÁ!7ßµ}¹Í-^1ñ±s&ý0ù?2 9ÿ#åÒ8a­z¤U;|þ‘À®4¨IkÌ0À&¤™µü³ïõ;€—‡­ž€\-” åÇ6Bô:ÐÖS½ü•ï(z2…r©£±ƒIžê„5¾î ¾‚.J=Œap#7s7"9ÁC@=‰Ç/Š»“ÆÞûìkÆÓ8dŸÊÊ©îþÈöKÚà¢ôa’ÑfÎÆ!,fµ¯¹ø3ÁŽ’û°Ø7ð6„q‚Mpƒyúx—'¹ÎøBü°÷Y>ÃtWð´U(ß`‹­oê®S“J}̨£ø ¤ånø¤îÖÝ|ã)Õ¤:F0‡\q=Ü#ÙÒ¢}¾¸›|ç}NYދӗ|\\¿ô­°¼ñTJñs¡Q¥uLFÁ±m® Wp{&¯%&Ý 6ÞæIZI¡NÂ÷&ˆöÖÒúóÙ¶Ïr%8Úb¡ëSQ˜ pý÷Ñ7/?à.‘~­‡§##Q÷y0¶¬sbKá侟m8*kFs«ø½Ü‡n¹>)¼«$Eü¾/q34tz‰t…2¤÷mLúÖÿóKqZ endstream endobj 437 0 obj << /Type /Page /Parent 759 0 R /Resources 440 0 R /Contents 441 0 R /Annots [ 438 0 R 439 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 438 0 obj << /Dest [ 455 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 152 525 178 539 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 439 0 obj << /Dest [ 458 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 182 525 208 539 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 440 0 obj << /ProcSet [ /PDF /Text ] /Font << /F1 660 0 R /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 441 0 obj << /Length 5040 /Filter /FlateDecode >> stream H‰´WÛnÜÈE’·ùŠ~X`I@C³/$›äA²¼‹,à`aMžÖy f8“ÑpÀáXðol‚üB~3U}#¥aQÖ† ÍCVW×9U§yµZ¼Y­ãlµ]pž”eÉRøç.Ë4I¥¬PY’jY²ÕýâÍÛcÆÖGóXÊŽëÅ›Ÿn8ût\À³i Ö‹¥¿|XüÝÄK.}‰Ešðh_ú^_µ§õÝ/Õ†ÅK‘Fác|¤¯ãe¿Ý¶Z7ûxY&eô)江NÍÆÞ©ñMïÂ/ç9O£›zÝî7ìݦé›vÏâ¬~^¼[-8kØBë$+%l„'\(¦¤J´R 2-ëêÅvqµš)€ÔI©„ÆýãÞx‰ÛLíß¶‡x©!9Ø!¼u±‚¿ d•&Ç›w1þímRo~tW‰„µV×j½ˆþ¯þ9âr+-l ªÌ¢î Wf«Ì°Â Öçe’CqeUXÅ<2å¾À"a™…=±NÜ E™FO—=Õ)[²KÜ”@Hë"þ—%Š1öKõ)ÆEêXâ{yÊì*œ‰$KÅ« \¤e"Ò¼ :r2ú7TUG+(£†áõ’‡ÿÅÒÿ˜ÿ³¾……Ì¥}`ƒ`ú;{‹íë[„ûÖÈccêíOÂØå6V¨=ü/p1‹Ø—-¿ k^°ö¤ÙpÇARv zìµùÛB^÷õ‘Ù{÷ö¥C2† TQÄNû¾ÙÙÚ Ú,è€^x…µÙž:x[¢ÌêŽÝÛËã‘wsÏÚõúd–*¢î˜Œ–ÐbZX"uK¬îj§³ÜêLB'£ÀÊhÜÏñ¨6FWEÄŽ§Ã¡íú#ÐÐÕ5kµ}§«úfJ’‘'eSƒJëj}go<4ýkàÍöa϶mw_õø3]’T†|¥Í÷CÑ Ü7)éXúÓö³Û.Cš†Žþø'׆Ú>%@øCrªï”ù·vÛ.£¥éñ·×ïÙì$]@ ;ØëçÚmÓNƒÖÀA¡ËÌ=•ØÔÆÃ8Õãîa‹Âu?[Ý5GÖ`qk¶©·Õi×3,$ƒZÚ‡ºƒ¶E-a†z²úþ ú*7!—v%,¨š)hÛ5®¢ûjÇxš.YëF\g6€Ãh¹94v£—×WqŽwïÛÓ±Nž~‰5…_YúPîJ`j]ï*×:Oê¬mSf¨6:?+4•뜇ç¡Îè8f8<‘GPpSä‡ Š¿ï»vsZ×»î­)‰kèþËÃaWã`2hµÛµFŧ=Î ¤¥íˆ0™<æa›Íå®Úov¦s"Ön]TöÐl@Þæ?]…ÃÃ+.oí8¶»“½êk˜J°]‰Œà`ØØûè"üŒp­qü,ÄÏÓ|6?eóÓ6?nw ‡=Ø Ô¡ö½dumÚOv$N>ß8]íŒ*‹–í~‡ÇIsNµ­ =}³Eú¡çו;4ôƒ¾³23G‰¨knýh,±8š¯÷økt<Ôëfë¢Á™ã£a ÜÇ ×6 ‹…SÄlO½}½¶z·‡8;§Û‹PZžº.Í’<÷‘Y/¯Ñ¡òèêñç3•ðTfþ¦à\+Ò,g*‡#!œùðfN¬Sž¹áà×=?ã) %JÕã×§?à˜aÏþìïû¾ÝmØMßv_~ð¢ÏºïÜnÕJ¶kjÆ%tá{{ýb¦?{ß:³[º8÷\ÅÏKæ®ÌèùÙ¼ Gœ@§Ê8¬Ó œ•yY*{¦ÖÑÇxðWˆú¤³Ã`÷;7Ó¬´ÓÌ[qz 7»Jwfç¸0Èäñ7Ô…kãÒ¶‰Œ\ãYk.±ñB³ôw.P ƒýÈžÃЭÐW®êè¥6|ºK®44­–Lñ ”lÜÃÐÖ©K ¿)2aZ‰Å™Æ“tøõ8žQk4kRáERd@~>Œ>"žÇy"õ€ƒ×åð5~B÷,tðBgãYö8B ¾m¨p‚ÔLnJÒеr9“ƒ€^H… #^(1—ƒÙ  $öÙÌûPÎK:@¾)˹=W)艌¸æz.àJ•á|¬¦Tz\$BŸke)a ó<‰XœÄŽ&á“ø¨À“ø¨rä#ÿ*¦ÜÊLѦáðÓ "xÓ"P¦AD¦Aæh¦"xÓ sB "xÓ spR¡8Ó ß÷Z¢xÓ ÷àÕFEð¦AçàõHªÁ«EÏ·+…¦§ñG,¸ç€€C‰ <ÀCy¦ñ—›FžAé³üå®!_æR¡käy"Š,óÑ3ál#Õ… þ]þŽMŒ€HÏæŒƒ|â™A•à 2ÿ¾‘á™"…{!x"…{!R¸"{!R¸"…{Bü:`’â«øP˳œö ‡ÏøÁûÆò "Bð 2‡f"‚÷ 2‡ADït^*DçôûAKDïô‚ÚˆÞ7è‚)58µdå|»R¸gšÀîY¢pÇûS¸/ …ûòøË}Cåð=Pð—û†zÍ׆*’týìkNg_ ®ñIÓ ŸxfJ)Å*¾škœo\ª¸B_Ë Ðpá6.Œašªj»Þuý9Ö‰ˆšX$e´®Y³©÷æN/Ë„;`ÛÔû‹+ùÜV>0ØêÚFWa#Ñ÷7_ö«ï±¦Cç5Q>ØD&'ŠQ¢3>`\Ùaî;ŒÀC‡Q¸ï0 wFÁ¾Ã(Üw…{±ø3R“¥¦Kíw[£JAgš¶F‡ÏX#Á[ã²F"B°F2‡p"‚·F2‡ADot^4DgôûAUDoô‚îˆÞé‚2)5 jRÏ4.˜žÂǨŬ,dåò2_§·0äÔ†œÞÁÓ»Š0ú7ê!KªGò›<¨”Üæiɳ†Õßa ΂cÅnjϬK™ Ž5X 0kð>8¨0,kðß{,1kð1x´1kð>xJðR“|/qz×KŒÞ÷§w½Äém/qj×KœÞõ§w°bôo EÅWÿÝËic÷^‘a¤¶i&y2´ú;dÈYpd¸XàȱàÉõa)?Æ‚#CÞP -òfô¾Ò·õK½¯£w5`Ô>ÅŒÞ'ÑûôÜÖ¿› ño[êý\˜ªNa:ëÙb=3Öé…Q#^©ÇE¤‚ÇPaø7!nBÁ3X#$`ºu§UÓ‡4%|Îz‹Yh®&ŠB­ Ý¢W~ÇýI¨ŠéWñoA¯Ü<$3@‰C8«·çôá¬Þ"œÕ„³j‹pVoÎê]iý[…‰¨0ùô:ã+‹K¦Xfrzž™X –™Vfâ,8fâ}XêÍX°ÌÄû° ‚±`™éŽ3ŒÃLw¾÷ b Xfºƒ‡cÁ2Ó<0948´¨7ú–ÑûJßÖ/udô¾JŒÞÕ€Qû3zŸ@FïÓs[ÿ~fÊ0Ó‹8}?5ßCM¨’ZYO oÕ·Ô¤nQÓŸA?ôTÙp |3R3ŠaJEÎнs𦡠½iRûwèéñ“u©C&¬â{dÅîxc&f *’üO¹*˶ Ž¸Â´×#wYÂ÷ «·ÖêïLXίgNpx9›ÀÜ ^û?¡Ù|g3',zæ7ÁÙülàNðzæ7áùìtápjƾ%Þ¼›Nœ}¯gpÁ§ÈÍ7î¯gNpÂÇàú˜;Áë™Þпœ°èXŒ©'‚û-Ël+#BR’ゞ&n Få2cK3þØ>G\Ä£@¤›tš ~|üI|nžŒØ†L¡`šÃœf M¼2?ñññ“•Ú]Ó›Ís‹]{úSWôýxè_Ooì#8Çég Ç☦xsÿjdüð¶Ôð×CÛ5˜¶x |6ÿk_:Žæñ4›ÕÓƒLŠv'#Åb$M?‹¶•^ê:qvVýA´3}t4º¶7æ;LI²ÿk¨H´_žN][›ŸßB½Íú6:GÖÅÎl™Ûg«öÇm…ÉN„¿•`­G[¥XqûK× û‹` (ã`Í?µCx/O]óȦFŒöXiB€?˜†î<·È>b›ª£ˆÀ~ e‰Ç—H¢HìN­zhÔZC†·  «Èmíñvå+=-¯¹÷57¾~…3ýùøMó¦øvžgP£qä4Œs³3gTx™›=ò¶É€–¾Ë`Öá쫚~TF:à&šÁ¸£Žð"¥²KzRÖU'h‰Ö.¡ÖÌõATýŽIpâ¶ÈzÒoMJ^u2šITî§v_§= t`ÖçgúL”GìÚin{8Þ Oö}»!=ùgšÿÜwÍ„‡n'D7^Ú©ù`Mëpu‡‘ã_Çuðn ©ÁT òb$1á¦B?È1¤éR™u³G\Z»ýàÉ.â<ýƒZCºóeX*×£J•YŸÚþÉ´~gwš]PØõ>Ü”°cöwÆ ûµ9 UzŸÌß>¤OõíŠ>F›iÙ¥Àžúš¥&•i@óÓhj“êJ¦ÁX§ˆ•KñKo¨\‹iˆ:Ë ŽÇ¦ß¡¾—p^D$™k§´oY{s»§J¿^‰/(v¢§„^é«ÓÜÖ“AûÆØcHùø)Ì苯ù>ü¥ÚQoÀêd=¨ÆÚü8P»# ûa„õ]óÜêÛ'|l®`­§¤Z¦2‘]Úù +Œ»ë©V˜!R½á¢KI‚‘PÈÉÃ^‹sKŸM?س¶åÒù:yÙ‚ÉÌœ&nñUã @Þ™ÿŸÛÚ`Mü+¤«õD¡áäaÔb«{7 4† ö•þDÃ' @K”…¼å$ån7šÐJ³4‰Xüh‹³ùô0œ m‰³|Ðóߔĸ5è•®k'‚‘õy6ÿ™_ÇJƒ2Óð•ä{kNè]t‰¿:cþ¼ž7W;Tz¬>gÔð;m”š‚ÆRÖvjßî÷Íhðf¶€Á*dÀ.MÓ/áü½ý÷§T|ü¢96_>>Hñ'pá?Ìâ"p‰ø$þöw0Àƒ*ÁC2 .™Y,Å+€^¼¬¨Ð;ˆ­Õ"GÀsªDýàVbÜ`$˜º[­0y"b\’ãr^nUL2î‹H“ë‡×;¼…<Û¦eº’ñúJÓõ© hKæëSÜÀrܤl$1®ŸEL²‰Õɵ>Žs¬«èÝŠ·Ã¹–ñðÈ‹µh}\ÃÖ~€W\}l¸;(-Ûè­¼ŠÞ®,™µ, xQ®OÐë3#Ü¡¹Äa iÙFjå%v…Nš­+ïVœM’£b-x©Ê•ªDF#µòƒV"Ì ™*Aƒ‘ò±;y‰Ý­,ÔVªµŒ¶Rk¼©¯‚äÅ©XQôq‘‘™–m¬V^E_àt<®VÑÛoˆ,Š—²‚¼ò#G§à¢Ö½X¡«› ¨MU¼DoåUôve±€&%ÇêÅ©*Ÿ¬»V"zªºHðIéiêbµrýðåáßi`-ã endstream endobj 442 0 obj << /Type /Page /Parent 759 0 R /Resources 448 0 R /Contents 449 0 R /Annots [ 443 0 R 444 0 R 445 0 R 446 0 R 447 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 443 0 obj << /Dest [ 437 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 264 671 317 685 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 444 0 obj << /Dest [ 123 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 416 330 442 344 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 445 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 320 287 337 301 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 446 0 obj << /Dest [ 151 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 425 251 451 265 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 447 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 415 229 441 243 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 448 0 obj << /ProcSet [ /PDF /Text ] /Font << /F1 660 0 R /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 449 0 obj << /Length 5126 /Filter /FlateDecode >> stream H‰¬WÛŽÛÈE^õýàÑ}%›òà±½N,°ˆä!ȃFâxhÏHQ³ÇÈ'ä7SÕì ¥tQcïb€!©Ó<Ý]uªNózµx½ZI&Øêv!DÕ¶-ãðço[^q¥$k´©¸U-[=,^¿ Û ngÃfñúÃGÁ> Ë9mËpû¼øWñ±\ UÙâk)y%ŠÝúñØÃë«ýÓæî—õ–•KÉ‹¿•0À‡»rYÃõp»Þô»rÙVmñ©±Oývü¥Ã7%¼ W!jÁ‹Ýf¿Û²÷ÛþØïw¬ü÷êï‹÷«…`=[X[™VÁFD%¤fZéÊjÍ`¥d‡nq»¸^Í@ÙªÕÒâþqo¢Åmòqƒo÷åÒÂâ`‡ðVq(5üïaU¼R¸püñ®ÄÿÇqQ¯òו‚¹Vïj³(þT®>OòkkGx ¨v“ú;œ™IŒ2ÃÌ/Úª† â̺XcëÂ…û ƒ„a–r2bSù@›–Fð%°sËÙ’½ÁMI„¬mxñ_SiÆØ/ëO%NÒ• ß«m ³°‘•áòÅœWVIÈ o+Ék'±q»MÜn3nWV°€Õ]ÇîÖ»í}wˆÒ‘°ùw`S°ì¤jÜòDñ¸?»í¸õ·Õf ’*Øzüù·Õúþ S߯§Íþá¸&OB¾¸"ë+.®àŸ¼bû\õŸŽr;‡P‰ÊÊ”%—mÇe«°ìm÷k¿éÆ™ÝðbØqºñ…U¸_ŸûãëzŒºÁdtƒ[wE%ð÷c~¾s[´EwèØ1>°ÛÞÅŽ»©áíÛýÓa\=ì×/…!,Ú¦¶¾€o@×(ïci°ìF=eã¢xÀG~õñ"Aä²I2Ö±rŠ_w«SÅË js¢ø6Ʋ×ò­6ÜíÝæÚâ’®Šëwì'XĪÃÄc´DñäGA8ÌÒTãŽAÔ­p9Óiž:ÎSóüu?Ù°¿=>¯ám˜ðé~Ë6cLQüPY¶Ø€Èdñ…ukÿ|Çö·ùnèXìvãGÞîe= OýÎsà¡€þáGŒ°|‰‰:‚¸åÌ;Ø0PNÄ& .9ÖG\Ûó&ºß?ÃÇhZß?°)=Ó@ ¦+'ÍðâÍ»kXΧ~ûo ÌÕ¸ôM+õ%\…®¯‰¼fä]Ýõ=nÊŒ›j OÛ­ÄšºÛ߃ü·ëãš¡01‘(oSt›þ¶ß`eàÆ¡»I ëpR7É?К»”˜opÉã”PI»ãºßùâ€d;gñL-g9í9¿vÐÍ Eƒ„&„æ²{z¸™BW%6œÇýÈöΦTáŸoÆ'g‚ ®O`cÁ+¶vW(ùøþØŽÜý>º Æûwßß÷çkéz»éCÓ%ø˜/‹Vº®ëo¬š}ÍŒ±•n[ŒMÙŸKXŠ–5&îº?²ÅÂãc}úhNõé£:}”§Â=Zîø¹æ$øpkÝü-îAµnk;skem&Þì΢1ƒ@`¯Ð¢Xº‹'8Þ´º&è!5s–51®‹0 ¡‡áɘúd@ }Bò}€[m&ïkuò¾Ô°SèÆÄûÏ4|¶2°{Fo!>¦!ßcWÍ ÜV¼mhz'V)ê}¥ Ì>×0»š¡·`œL­œUU§Ô}#N资²­ÉÜi¥bgaË ½zÝ€v4™;Ý€ËÖ3°­¸I­‘ -AæîœtMG{¢mÏe…“jópT]NªÉÃ1ëY8e-Ǩgá–,|½ºÐ\¹Â#-3PxÆòt¢•ñ8SËð逶PpÞovÛñê{|çOîo%xa]#¹¬„åñ‹DËI×{³ÝJ<ñuC9üN›)æÍúO ×õeêú25N-A~¢xõžý…ý†hªX¹ƒ1xÒ=¸^[|q§R&¿eZ©L’Ïö<±Ä€}bÄÎ  a@äÕâðÙ§@'¤ò M0D£žÁS“{HEC0¯&qoÖä ©ìò cÙ½à@ }¯FYŸ¶Àïî~Ò¸â%ËŽÄ}Ùy|¦ì(†Pv‰*;‚!–Ý îÊ.Ì@—ÅÊŽÄ}Ù‘3IJ#bÙ‘¸/;z†PvC(;÷e—f ÊŽ`ˆe7ƒ»²#÷ËŽbeGâ¾ìÈbÙ]Ô»®´ ¸¬ô¹˜³pRjŽ2ËÂI#y8&8 §ìäáÚ,œâ’…/ƒx¿€ªNJ‡£ªjÒiSDzë¯pN5űs`dg'ÖÌA˜C}ÕxÌúvJïNÙp`4܈‘¾/5ž­áÔÇÙÛ^¨‹ýøôó~ÛÝ;ømiá, lnøús¹l*ž™® íXªtnmÚó“/9"EœqáìË¡QJeÿ³/‡pÈ™¯>z§ð xQ¢ð yš§ð z9 ðKP ‡ |Äñª3ýÇû©Çgü”b~š(?%¢Ÿ’kHy%‚_’ )óy†è‡4CÔÁüŽŒCROž!ú¹†¤/‚!øÉHé!éeªÐs?ÊÃÓLçàI3ð4G9x’€ PƒètCû€Çg|€b>( ¢kHy%‚ )óy†è4CÔÁ|€ŒCROž!ú¹†¤/‚!øÉHé!è¥>Qè¹äá”é<Ó˜…SŽòpL@NÑÍÃ1tY8Å% ¿Ü ´RmåË}@¿À„dוÒ``9Ò«J·ØýM)DqS.ëJÃ~¼Þc«€FñTšª‰Y)´|Uüîà®øWâ*]¼ë‡ÝP.-Æ_•„…"Îá$ªŠ"¤Š‡6í¾FpŽíxéJlgE¦ÿèJǸNý&IŠ‘TEŽˆÂ¢F$m‘#¢¼¨Iaäˆ(2jDÒ5â‚h ú´õ™ûÏÆïôÃá `i&ð˜ ٠𘠙 ð˜ Y 𘿔ƒhÈ…!{ ®¤ {|Æ…)†à‰ra‚!º0¹†˜WŠ!¸0É3O0D¦‚6(†àÂd¢z†èÂ䢾(†àÂ$CT ©‡ ˆ¸lÏÝ(‰! §Lçá˜Æ,œr”‡c²pŠnŽ¡ûëÕ²Ûº‘D÷ó½È‚Xß”’Uîx`^ d‘%µ¯8‘Iƒ¤ìÜïÈýà9ÕOZî’4^X–XÝUÕuN×);.Aóí*Œ3T%níÍ*\Ý Âù¦L,hš-ÜãÖPÆ7䬼ÿ¥}ŽWÀ0jÑ’5 2ýêŽÝ¬´8¾zB(­ežD¦¿Vú_’¬õ—@©ÿæ’º°+®ô6 Wiþ!êRd¸z¼¸„ÍŽ»ŒÙr7lvÜeÌ–»a³ã.c¶Ü ›]íÃæk…¯©ðÕ7‰ ÒÎ*^S´ù‚¤0û­¢¸ýœ „÷;=áâ;,™ýVM¸ýìð~§%ì~Ëf¿UîüŽ.áýNG¸øŽOÌ~«"Ü~G8KõÅ{6{pÃf‡]Ðì¡ ›]åƒf_ذÙÕ-höe šo׬JÊ&+o×ú& i’¼ªpö¬NÒ…ûÒÆŠGʉ: ^'½4l²sñ`W\éaYŠ‚gë¼–æEγ–±;ÚrvË[ÆîˆËÙ-s»£.g·ÜeìÆ~´yöM*’Cs^FŒý‚Žp¬xœ’0œ”°98\9VLXyƃ“ÞƒåçÁ [Çƃ“6Ç/΃Öƒc ËÏ—‹7”±/±¾xCû§‹7”±/k|ñ†2öe}˜z›¾›:É›âvyin’—"²äÊûÚ{/½w䮼ÿsØËc ‹ÄO÷1>·ú5«Ï)Æ…‰ÓëC”du eÔ Š¥„]q¹‘Èþ))P’´à În‰ÊÚ Q9»%*k7Dåì–¨¬Ý•³[ 8ûÐ0@ó-RIS¬”X;/%¬#% Œ”p¬”ð9x\FJxù°+%<8n0Œ”ðuðì {°RÂçàùÅx0RÂ{ð äøàù’â²ó74l_b´/ Ù—8í BöeƒöECöe}BöÛ¥P¤MYß®%ë›´/PU¥Ý× ®“Ü‹I¾“’ÚĤ ú=«Ï a×°DÉI¥ú•æ}ëdMU^~Å•†ÖГêC¥)’5\½ã«³g¸ ÏwÖnú£±_è\ÎÎD°ýÓGàú'ÁÛÃ\eÏàn%ÁÙ™¶ÿ²ܽf"x{8‚ëÏ|Û¸ÎÎD°ý›ÅÁõ&‚·‡#¸þΞÁu'.‚³3lÿg#¸+ËDðöp„kö·ý1ËèÆgêòÛïy ®”uUb®KÛÂÒÊwÈJ÷€¿uŸO£Œ7ÔªUF•Ñl,~¼ÿ$~–ŸõÏ.^•˜‹§9Fq"9Š8KÑ#òï…xhõ’ãob„—<’Ôã°öyèµe’çMÑÉmÊôUI^+Š¢@ßZç”ðÊg¼LøSLí¯Š¾ÄàZ;~æ˜Ô%Ú/¢"@ÛïEN­-Fù<Œ³˜Rÿ~N»ÃÚ½x‘ãÔ ½èúÇa|2.Ú~“”øÛÑ´Ó2É*¨y#µûkYˆB´Ç×xEï-,5,_âŒNº:‚2£”ðhœ'•ánè§¹ígñ]ñ u®"÷áÏWã•¢Ó>ž Hb¯òT­U!gy§OßNb/§ÝØmå'” %ãÎjª!þ5Ì[S<ƒŸ%]Nè¡ š•èçbûðß%Ú¸~m–yÍÔHæLù÷Ã,hç*‡o¨ØYE»L§gG™º~'Už?êšßÇjóIlOÁ@0<Ë1^Ñ\Ъ*Îr¢ª´ºXÏÃñߪ ¯Ý|@zâ±ûÝ”H’žÑ^†í[DÞP&»2“¨qkÕ(=k¥ŽŠwTÙï‘Ó.^ÑqtÖÏí¶;vÖ™9"•tº\9x‹ºÔÛ=ÁËÿ›à“hT¶kŸ­þ"¦ÓÖÀÚ!†GGÍ£^öS _•IåJÄ4lÜ©‹t}¢y"ÞSq“¬7 *–žŠï¦y»]{4¼RKÏxµv¼Z«M`¡D[{Kadkè®7nS¡É¨NÔD} ;¨eûÌ$žt8OLönÅ<¸îS&ç§AÉÓÜœÆä÷·Ù€€ùÅlîL (4zA¯RèU=¨Š†‹.yR£@ÚDúÑÐ#Å3`×=ûÝ·ÌW:]Ìœ¿àæDOtïÖ‚)æ毺/€<ê,t’@·ºLµ*šQM¦Eô£î¡\0ÖÖ¥ -Fl}·Ø˜ÚÚn•ÞQ´I^+õ(ç“å@/N¸À]/uõ÷bßέí¶*“U†ayY:×^Wö+eÎŒ -ÑW¿ßƒqqΧ³:J°¾^‚'ÝU=T9·Rœ&\\|ØÎ-î¯f”ÖY%°B¾È^àÿpÜ›:¨6ŒS<Óy=HóÛ–¤NòììÚjñ"òkôÇ/Æ üªº±Á>þªó{i'ÕYŸ&y|AÃoµyT,—Zƒh¡S—¨ ͇HïÚINwªMea®èŸõ7—;Òm cúº ƒ×îxŠ Uô"Õ?’)ý °èOԹ£2(Î`%æ³ÕÆ“OÆåâÏ4ã54úÑêiÖkôäûÜjo¿Å©Ú³ô¬ƒÚ=`_Áö÷âÅz#©»“*©8îáX™ˆ „MT„N‡;ˆý Q2£‘ª‰Ÿ)ÒìÍtpÖÐ ¸»8ôbòËôäw­™ç®WÏÞ_%ÜL¼C^÷JOafð…²p@RgS—äQ5N£,tI©l=FuõDå^iК׉¬žBatr ê7®ˆé9¸Êsat7Ì–t«ÚX¦/üFKFG ­#êFLìÀù]ŠF‰÷#†¾Çµ»ÇµŽò0ˆÝ¡íUâ5΃Ô>UWà4Ä«®ŽÌȱ;#M}xЫk’_³TX³3ÿ“¶‚ÔL¥ÜìNf›‰Òjmèÿÿ ÓæTQZ3ÑLSFov`61¾¾j»Á„2ÿZ½l鳚­Öö$¸s“f>½y¬ÕÑÊ×q‰VãÐj–h™‰†[;ªÑ±¸¦§'šWšè ¥ÓaxíÅVj‰ßÐõ%Ûë÷¹¿>üéàù¸] endstream endobj 450 0 obj << /Type /Page /Parent 759 0 R /Resources 453 0 R /Contents 454 0 R /Annots [ 451 0 R 452 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 451 0 obj << /Dest [ 450 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 170 366 223 380 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 452 0 obj << /Dest [ 490 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 264 123 290 137 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 453 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 454 0 obj << /Length 4529 /Filter /FlateDecode >> stream H‰¬WMo7Å^çWô!‡n`‡n~“‡=Xqlìb, ‡ÅI¶'XKGFàß‘ù û7·ØÓ,¶¤z=#iaÀÓ­G>«ë±ÏÎ7¯ÎÏM§»ó­Uιéßü˜G5Zkºè¼“ÍÝùçÍ«ï÷¾»ÜOÃÆn¹yõî½î>î74v‰èr³­¿mþÕ¿¶ÚªǪ̂tsñëÝŽ¦Ÿß~½üôãÅU7lÍØÿ} 1eÈÝõ° ôûåÃÅåîfØf•ûƒ.P÷îëîêð—ë2ÓÐ\úÕ:è±}y{sÕýpµ»ÛÝÞtÿÏÿ±ùá|£»]·IIùli#Ziã:gJÎui4Ý—ë͇ÍÙùJlRÙ™Tö_ö¦sÙæxØà÷·¿ÛDÁÑiVÿepôÿŽ¢•-—?~Êÿw‡ ^½3µÎߪËMÿ—áü—E=(¶|€ uÓ¢óSY¹3%Ë]É01Ñú:«@I,+»þ¢d1ôSºÿZ’TÒlÌbÄ¥šyì½·Ä>¦±Ûv¯Ë¦LRŠcÿ_¯\×u?^|Ê"׃-óBæ4ÏöFùÑ€ÓÞôxØ\*ù5S®çGMú B)cÉ…X³mS•Ÿw>l AÅþlw×Ezµ#¿†û¯þþ«»ÿjᅳû¯zzMãô2ÎÕãGNÓæÇ²›ËÆ@'†¶N{ œgüB2“du¤iO£_Ùƒ‹¤&‡+éb¤ÖðD¬UÚR›Æ•<†·óõ¬§Ì§‡j—ñ¦e€³e¼éà¬o58W@Æ[~dühɧÉìB¦}Jõ®©ëšÉîŠÓë ýçχ‡›É‹}hYäÊ~fœqÔ £W~f,„Î__]}(Øþz?ýì4ØR¯4{àÔþmµ@['µ)k æ»aKÇ¢] —ëß dÈ–&û'ur2Éݾ\/è¶ÉéÜ’‰æýA-ów_¿P[™H÷‚õF#ZEЪɊ‹„rÿ(Çöÿà"’”ÆÄªp÷€ë™@ð|$\3„àù@¸žÏÇÀ5÷>’øä•-Ò£Ä?9Ñd8Žvõ¨ýÌv\qÁŽyDT9ˆ#jµh„q™[ ~„Ö ýÃùe…Ç8í;¹#Õ/ƒsŒF°d@Œ —c\Ηb4Ž®˜‹½Ò`ÀáãUµ(BÆA„‹ùb„4/é¸"@1òÑ16\Žq9_ŠÑÚH×"»cc¬çÅÈ8ˆq1_Œ1ÑgMÈ+jl#¹‰€.Ǹœ/Åè¬&kó+yl#P¹“¡1.æ‹1ÒÕ+z-Fbäv »[í~‘ân8±<ê<¾<õ"¾8s¾Ô»ˆ/´&áË:‹ø"ÇÞò#ãG/_:QÊɧBt”T2£ù®dc±üé6ºƒñŸ}£Û’ïé"S~ˆñá‡é㛘5$-oÝDŸfú‰TçÅ•‚îP$€þí[ÁÕܤ ¾Âdî8âµ!Sh£ypÉy²íF­è]ú̲pU ³è\5'Ã,9WÅÉ0§]†å<”œûgÝoBRQúúš//xåîæœ_ÌwV¾ÈóÓJ¯ÏµóSR6F<Ÿ‹-Ï·–îøÞ®Ì¯jóSÑ~Æûg¹Èó¥Óœ<^ŸõæÇHô+ùcÁ¡ú7y¬C^wíÊð²4kçP†—‰];‡2¼L‹|OìûÞÓuK»Óû¾yRß'ú0Ó?©ïOÕÖk}Ž8Òƒ<…áu~iß÷ô}ç ÀYq¯’8káUtgÕ!¼Êàœ~€I¾£Ë½7úYà²òÑ`˜ñ @ Õ2ÀÀ.càº"†ê+Ø 0CÕb¨^óÀê ì0Öb¨~XPU/iý„¼Õà\Iou8WAÆ[ŽÎ”ñ–?ÝHP)[}º5Ø“¬!V²Kòʶ²‡ÀÆÐgϺáü—û§?,ª-q¤'‘f“·þ¥†`Ítü ÜÎrCx•ÀYn¯r8Ë áUnçôüHòé¢@ÉÏ2*œÂŒ¯b¨†Ð!6C«+`¨†Zåe6ÌÀÚ Õ`šzd6CÓ`¨†š‘f½P¬Á;|BεFx­$À¹N¯U8çá5ƒçüütCдPvátCp'‚¦›dv…¾fö§-ô–L‚Š:±¿´î¶AÙ~{øýOéÔ1¾ô=@ wƒ¶Ôümÿ'=¥é·üÊ”ëßìöï®÷Ã6•Áå¯Ô¶ü4vLŽfýT ÛhÓ¾Ÿ×¸:ü\%kýãFDMÌF'8O“ÑÄG°¼Ðˆ&08‚%†F4‘Á,34¢ 8b¥þ¡ÏߊOôZÕ<ëçr ¼à\ „×BœË€ðZ€s ~¤tD¨öYnLÅÓÑ Ýwvã_qcÄPݸ1 7 ìÆ0†VWÀPÝ2´ÊË ìÆ˜µªÃ<4õÈ ìÆ0†¦/ÀPÝ24"=T½ŒGN¨Œ·Zœ+)ã­Nç*ÈxË1À9ƒ2Þò#ã'»±Ï‘¬1˜ÓÝØŸôyU¤}Rã‚~ùyFa?ü<£ÎѪ-š±Þ“((ÊSˆ/ü<óÙ)CJErCx•Äg¹!¼Ê â³Ü^åñYn¯éGø‘ä§\’ŸŸc>Ó½ŽZ&2„ŠcC€ ³!,€! †j8†VWÀ0fh•—ª!¬0°6Ãl8M=2C5CÓ`˜ 34"=4½WN¨Œ/k-â‹JJø²N"¾¨‚„/s,â‹ Jø2?~º!ÄDP1ŸnáI†@ô)Çtš!x:­Ú’!àGzR$=ød^jÑ«Ñ',7€³Ü^åp–«ÜÎrCx•À9ý?–ü±$ß?Ë¢Q1&l3¾bˆ¡Bc@†Ø` ­®€¡dh•—Ø0k0TC€yhê‘Ø` M_€¡dh DzhzY?¡2¾¬õú •ñeÖO¨Œ/s¼~Be|™pBO4Ÿé ŸÝ醟dDr¶’!Œã#C™ª× Ž8Ò“¼£<åüRCð^¥•f±¸jM†Yj®J“a€«Îd˜Ó.ÃÇr®Õ¨a>ǼU~ÅðŠ €ùÕx>òy>[Z¿ÕRž_ ÍoÅçsû‡óY òüÚüÑþ›\ÄùÜúÑúMOòüÚøÑü&8Pÿ*³~E¸W†¹v"ÜJ#Üyn‰•aΛ·´ˆðéÝÞRƒµ>½Û§'u{J°õ‰ÍÞ­Äb¯GŽ´ªS Ú¿´ÕÛÒjôc1î&1A‰B|na3¾ÒÃPŒƒj“k+ .Vh¸¼·A¸>KhÆÁ µQÂø8‚.¯À­¯PO4Zq°Bm¶°ÜÀ —Wàv ÷À}­À8X¡6l¸ŸV°BÃåŽá÷{›Öå´ëéà×gcé]Ó‘¢ÃG“kÿÝ-ºÛÛÝǯ_®‡¬RßùmT‘”~ðþð·»»!ÐÏîæc÷úÍY÷yÐAÙþöêºûùÛaÀõÃvHÔck@å1Ó‚ÖšÎå@çÔÅÎ!35Äùij¶‡åîöÝþÓío7ÝžûýÏ?ºÝMw÷ézØ’`úÿ^-=nÛ@øÞ_ÁèÂ6,É9=µH‚h‹b³@{âZt̬$ z¬“üþÞ|3C=²Î&—]S$çùÍ7C•;óu7 N´‰R˜\Ò¾ÈÕƒU­íTçÁnkl«/rÏò±Æ«“oÔÑ—µé܃+\‡s ö?G1Gáâ‡î¬N}‡èˆ‡kpîŠXô5Qxàñ{ý>b*Æõd­+SwîØª;ßÏÿš\•>'3Xy¦‹v5“•%,‹¼?Ly9ˆØ;¸»Yí5‹â_ÇÿóhMü|qE¡äË1Zn‘9&×êhyXź㰱6ã¯(‰± q¡íd¯‰‰ ž—e)«\y&Ç j¸LþÒ-wŠÈýI‘¬ƒŠ†-n²1/vˆè†ëQL’zQÄË„Ñô“[E_³Qi}–¬±™¤…¶~ó6Úâ¸ü VÁW¸¡ ÓŠ­†¶Ñ· $@mti«Ž¬â£f³Z$îaQ‚¿V¡Ã¯”úÇ ¾v ÅÉtÊ é`ˆ@:*fIvð>Ÿm]YA‚@ÚÄÇ»_Ù!^xè'ùF‘80úìeÕ† !UOÑ2 ñ:ÀÜ ¢KJµó•ªúòázg¨@¾â ÎpüÍ)‰…&ãŠHé@Çõ`{Æè z”ûñ‰Ê‹0ùœGôí7¨u­ ª‹ZL‡3^•®r¥‹hý%Hâr¯ÅX”3DŠ©‰n•‡íZõ•l~ˆP*¢1ã€el/Ë'A¾w²"Yf~”vq Š–‡«CƒþîLJÌ\´º°QA(ûr+¿)£µ¥c(KD zÓ¦rB<G—­ÏYýè«“#Ô¦µ{†%2\…¥lˆ¹;å`ކ€ iHÔŸù@m2U{„€ à;¹}ŠÄì5¡‰IéhR:9Òä ur§î¼PóÖ}bƒRŠM‚ùú 3¶ÂÀ+展òàÛ ó§ìÄž<$CYÒØ+…²×R{[®=HPeX1\¼ƒ6‹<Ú†Ú¥Œm²(Ǫí h(€XݤԢöz¡n¶ÛÅ d“Îgl¶[jeÒÓPJo)€b"ö\VmYo¦—ÈU¢÷ …NÅ}/Þ‹­ÀÈ~O-OWÊÏ~06ƒ±Oáí=©ô ²Æ0H’ŽB8~¸‚%–TbÓßO±Õ4¶­}•?“?˜šÒhPûÖuXÊ@›ãàüÀM<ÖÅ#u!¦Àp0‡¾³ÕÑ.OTøD þpÔŽGÉìæê‚üÆ;±¨A…Í)s=Qæ:P&5:Ùr:9¥ú÷×Ràá‡å­µ«XPs•Âfñ‘xm dŸ|QøKû*`duà‰€’¾ª7Ÿ†|{D2ST(÷Ô¤<"`¤YeK {6$·ã„ñšÐ„á#¾Q;E9ßZž£ƒ„†¶ôПN¶yaT¹]Bfÿ}?ÊõaZS‹Œ§F›h µü]ð” nóUăܘÂÙø•ΔïeÊoRºŸ”f¬t½^Hwž9ÿ€º6s«t¤‰lxlmH>e%DˆÇ5–gAû;O¦è‡Ó/±éUngPÙP™X3àó ¬™ÈÎ0[ÀÆKƒöÖ2ð̓(%É Õ·¡ä¤Ö'é‰J‚íËï ýºÌFä1X…ûg„‚ÚëטhD¨Bì½}Sj¾‹Ð+p\ÛÒ¸Ï$C”Wµm0ô—2Jt©ÚÐŽÜÁ=è…‚Bφ«Qœ°àÆ)hxöŒ/±Õ&ÛgxÜëÿ"ÔaÉTŽÌ?{%!zá´„h7†h'zÔƒëˆó>ö€ F“`? L•5*<Ÿ‚ã¸Óc–ç1¶2CfzÞ ‡ódn:C}I2¸Ymvßì0*æ•ÅqLˆ“²ÕUDžSG2Q?÷ô;×v¾qGS¨ÊCà«èîã,Fè³ÛYDÙ˜3KÞúÙÈ T d”/rƇñÖ.®+Rδ*ý7±å~6† 3H¸G”kÜt¨ó¾¦ØŸ|ß¼PòíDH¥ùf”R0à½6ùǾíx¼©McJ+à¥ç¤ˆzoéÑ+hF³ZÅüÈ-}x¿„§ŠÈ‡Â Ézs÷Ë×tJ endstream endobj 455 0 obj << /Type /Page /Parent 759 0 R /Resources 456 0 R /Contents 457 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 456 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 457 0 obj << /Length 4038 /Filter /FlateDecode >> stream H‰¬WÝŽÛ¸Foý¼È…TÄ ôCu¯2q²Ø‚Ä@/’^hdy¬®Çr-9ižc}…¾f¿CR”==)°`Lêã9‡çŸçn½xµ^K&Øz»")Ë’qü¹eÉ®”dEš%\«’­¯Þô«{sŒ³¾^¼úù£`ýg9£z±—_Ÿ¢ñR¨DGßbɪãЂ|ÝëÝûjÃâ¥äÑ/1ÎŒéÈÐÄË¿§mU·‡xY&eô ‚ØÏçvc¿4D)A‹_!rÁ£MÝ6ìí¦ÚîÀâ¬ÿºx»^Ö²…ÖIV*("!S–ª4ÑiÊpÓB²S³Ø.îÖ7  tR¦R“þ¤›(IMn|Óã¥Æå !¨¢Sœâ‹[ñDÑÅéã.¦ÿƒ½Ô«wÎâi¢ k½"Võ"úS¼þç…?p·ÒÂÖ ©êV$™I²2# ƒä‹2ÉaD’œFY1Œ¹_’‘ÈÌR^œ¨·Z”<Ê_‚;ל-ÙkRJ¤uÁ£ÿfIÆ{_=Ä$¤‰ÑÜ›ÙY8“IÆeÀÀÐM?k\ƒ27±ö)Ê’¸„ÊxôzuÇ>4mo#$‡©Í-”3ëd9¶Iš‘é>Eë]Ãö0† g£î<° ±òØT‡v4‡ÕÌZªÛ’$óž$£]¥-„¶=Û¶ÿvÄÖ ¶íN¬ÚïîÓi¶¹:𥭛>ñ÷Ü^X“ ¤1‡[ d ü‘³¼‰ÌÆÈSzJ°ÌEA¼Lež'Et׬ [q¿Í¯·Ùõ6½Þªë­¼Þ ³ÕÜløS“Kx¯ÔF·$ TI€EZr£⯔yv‘>&}EA¦bqíñ;­|£•i ^e‚˜7Qu[ÏÂpE®G»,˯”*‘°rˆp™fô©º¢—)tÕ"D/©ìð›°–†.ú { ûdE¹§Š0>—E˜½B²–J…è•Ê ýœCººÁ^#‚yÐ9—ò¬’|r-ØâŠ}*ËDåAߥ É¢ošgáÛ§b' ú.- H¿kH¿áÚL"´DÐwÏÀSÜ£V—†µõÓ°ž…§¨‡}ÔÍÂSÔÌÃÞë³ðäµyØ[}žÌ2 ÛVs£¸ ôkÁQ²,QJ¤¾¼SyuMöî[\$=JèŸV>E¸èÁO‚&p` ›Ð8SèLþ €‡ouœ NþC:^4RHcé+ÍÃÞFx´Ð<ìí€ÇÔš‡}jà1µæaoúyøçò­Ì<ÞþOC§e¢½À™æíðÝ;Äal߇Pÿpð ºBÆ~äà0S¼ðR~Wü/£a¿ôõ,~áÉ9üÒO³ø…æðKÏâœÃ/í3‡ÿxóÃÃM(õã½Oþ@ï“%â\e–{a¹žù8½ºÎ·¢iª@[(_0e¡GµÝº¯l‡¹Mòè@C”ŒööŒOf°RûÅ-Ǚ’_Òl› žx¦Ü)©Ò?¤Ï(…V§¾ë3æIîá™lâ®z:üFõ \ÀÃcq„Šë¼€ žàkoPŸ±KsP€OùyFÅ‹öæË};0Zbhˆ‘ãîÙGú9a.1C þ·5>Òôÿ_gKhNÇx±GC϶漥ê Õ#ì ¨ÌGZ~ñœ~ÂLjá"mU?G†Î\Ê\ÇÜdcÅ|Ž Èîíö[,…¯,W+—ˆÎû!q噣$5}åÜë›­œq/©ÌW1 g Ç'\±a˜ÂLoÊ¡4:”Žúž®« Å‘WD³«ãé=Ýë—XÝ †@Ñ NZ ÎÙæØ²ÇΜûæsü’«­ { ë?ãª÷ «!ÃPÑC³aC~ü$ñsÀ1¦¬ˆˆ¹áʺN¥8õfõ·ÑZ¤ {êÎ8ü-%Å7Åv]?Í¿ÆÒôǦn«½¿ 11Ú“VdO2Â¥öˆV£½pŽª»MCVàvkÔ!tÃ^¼[ýçÅ;¼¢w¬"(Èݪ}ß±þ|,ˆø¸sÎ1ÖAžc‹ŸvtОݟ‡ÉÚm‡zçoÔ°Žð]œ!«íÿ—ä–œLìÀ†õÍ~»èeDIÔ ~|¤ØU=;tl Ë­ »~™Âw k™÷§Ýÿ#Q ^6AŠR%)T&÷Úºcƥؾmí¹ºrnß™ë!vÛóiä×1‹è„ðwŸPÊÆ¢XÐS~`3…‰/h©-hœ*f4¸Œ#%Ç8‚É’Ø<´VÕP±XáyjÈ÷íááiy4öÈÕ”æ©÷g:¥ùº;×»÷ՆȬ”Ì ÿ‰%Òùõ«¡…;«ûî<°mk3-Ðr*ïÆ9ÙÄ;sîÃ`¨›¢ qœ/Aß§Ì©éÝ¡o(+²ëjÿ+ã¿9ã‚ÜFDQx¢Å °` ûsŸØƒ¦YEX·µ¡f’ƒY†æ¸z‰×Y ½Õ´½Ù¦96‡M?J¬ÏÆ"::ÐÓØÚ°ÚcWS¹"ò̆òüˆ„H÷›¾ˆz}¯œÇ)¢2­lì³%QR}=Võ¯ cΧGª°(üÃlP¤¹eþwQIcµùm*UÒjiJUŠ Ñ¹ocújlÓâCLÓ…6#Ld5DÀ+¼ÀHÞT\iKÐuÔ¥2•„œë¢zìÈñ³ KyŸ(W™¾vË{—¦0ï`eÇŠò>‹&C©èLZ«h¿w™ìˆ¨Øðh±öÝ~^ûƶvtbN¦¶v›s=ô.¢¦„¾1§b¢Ê ž1•A`™û9UOÏ­ÌOZ)—4üÝá)PPð|Üæ×Ûìz›^oÕõV^o…Ùjn6üiÄÌ Š^…_h:œd>T™}‡À0nÀ€An»à˜ðBÆî®å„C%­fG¼ 7Ã…ñ2áeqCÂ8Ä…8ŒC\ÏquK‚›â‚ÜÆf¨òRB!f§¼‡qŒ»…kžÝÐaœã‚ÜÆ5npËÓã âð>åƒe=ΉR?öy|Šåî#qŸâèäWËnãF¼äCæÃ0°Åg€=Ä1È!9>ØÈ^h‰¶˜P¤@Rël>#_œêá?Ëö—ÝÙUrZø:Á\™ç‰ÓÝüâš{ý%ÈѦ: 9ˆç’X†ejàÍW…²­‹<<Æ' OÈ ñ–‰ ¯©ùäh>™Äp„®„[&V¸J‹’šß–Ö4S—²ª½\ƒ¹Ù¿¢¤”ç à<|9dñ5¹_£U¯óòkä~©­Ž¥/cwôåì–¾ŒÝÑ—³[ú2vG_ÎnéËØ]êû[‰OxºÚìߟh(VZ,èˆé›ÆþJßälßô\ßd\ßdcðådl_d|Á—\ßã%ÛרoœÇ’†¼eëò«®q„W^RÖÚ©4¯LRœÙäl~E¹å­Á·òéð9õdð}߉+¿;‘¾µ3øVz9|w¢|g_ÆwÂÌâ[Eàð­Á·²Íåß) ƒïìËøNÔ¹ø"qøÖÎà[ÉçðÝÉdð}ÿ óK=TŠŽµÒ'Ü~ñs#&EäD‹tðL?6OÇ¡JÒÃtU†@ bâ—¾[ýx¨Lþ,~¸¹û~júÎXÕæýŠ“9ë(Ü Í6(úª¢¹ˆE\ÐêqN!­|L/T:@ú1¡ÃœÐÞ}/‚U™F2Ä…Q4£Ø‡æúDÖÝÔ"&Hœü¨’.ü&gë1Žõö a~ö ´9‘m]ðTa,ëm(ÄíÀÍ$6ýþ¡éêQvÉ “;¼›MÕÎûGƒ€‡ :zc6»ÍÅóæÆçfÚìDÕm¡É'ä±Ð!p¢R¬p‘«w$ùP!V½h,ÅÃqÞn÷ØûŠªÎˮ̺%-hø½@š*J_žERïÓ®Õ¾?v“èMaM?Úúe!ª ü&¸ýý¤´Q˜©Ù¢w»Ʊ]u R"‘.p^Væ§ØU£è7¨ª‰çCÑηº\Ø_3»uó[g 5nhŸäçz0ó&Xø¨Úùç§ÀdˆxªEâk‘ºZ¤s¤Ûf¨7z÷cÓmj˜¶'±×1å²'ša^ —m…» ¿ž,;ãW·[Jl%ò1flžôéèæ×‰n:¬È³C‡QøÓh†ˆé¹ÿT(ä¸ÒŒ Lím­î甯é¦ú)P:Á*Õ$§×Bý‚7ýs÷\Í϶ó3SnD{èÇfj>Ï`W³õxx®ôoóùéÐo¿ó~É®~ª4C.Yø›¼ûHêfÊZÎI¼ÃÕtJ·ÓË€¥¤9NfšNÇqZíú¡ù‹¼”컩jh”žŸ-Çá×†ŠªF(`E˜Ø½Fú.³}%Úú^ƒÎm§Ë§§ÃBš\ê•QKZ·(ý>3·Ïlá§€â“9tŽv³ƒ®´ZB ½aœ:­2ÆzNžXøÛH]ÑS$3;âi†3vVhýzδßùÕPNÍ•VsCK½cq!ÎÙ;`ãÓ"_4‰{4ñoº+Ͳ¬àá0ôš d²öí Öí@E‘8vy:¡2õ2lv¡°UO1=Röãõ¿–ýøšý˜Ï¾½\ü33ú7‘ endstream endobj 458 0 obj << /Type /Page /Parent 760 0 R /Resources 460 0 R /Contents 461 0 R /Annots [ 459 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 459 0 obj << /Dest [ 94 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 305 167 322 181 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 460 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 461 0 obj << /Length 3991 /Filter /FlateDecode >> stream H‰¬WÝnÛÈE^é)æ¢$1œ?rf\ÄñnÐ MÐí-Ñ6weÉéyî¾C_³gHÎvæ“d¤0 “<3ßï™ï«ÅëÕJ0ÎV× Î3k-Ëñ7^Ú<Ë¥¬T:Ë´lu·xý®ÕlÝöËrÖ®¯ßäì¦]`mžÃÐz±ô—‹%Ó%—™I¾¦"Ïx²«î»ÛWû‡õí‡jÃҥȓ¿§X0uKº:]ø¸®ÖÍ.]ÚÌ&7)w{ÿÐl†'µÛ)°ÿ9/xž|¬×û݆ý¸iºf¿cé¿WÿXü¸ZpÖ°…1™¶‰ðŒ Å”T™QŠ!ÒR°C½¸^\¬Ž@šÌ*a\þ.7n]šùà»ý}º4bWrH~D•gÒîަzýÓXq•IøZ]:SëEò—tõÛ¬ˆÍðPPÕ;¯œg&\•™«0,Á?·Y":Ï*©\‹¤/÷+W$Wf!f+ÖÙx´´y¢y¾„õÜälÉÞº¤„ƒŒ)óä¿:ÓŒ±ÕMêœÔ©tûJÊÂI:Ôí=@;¤ÿØt·ìªîëz< }|–ƒ9ˆ!‡îqÏ0»vE¼r1ƒ=­ NeËö×ìnˆZ$ýÛT]ÅÖû»ûªk®¶5ë¾½¿ßÖÿi™ëL{_¯›ëfíÊë()Áî’û·ße¡Ú<Êm%DOñ’;æ–`@¡ Á…?‹ÒL#gä  ráúyÑt¬tDÉ [<½ÕOoÕÓ[ùôV<½åý­Éû›ü9eølMŸÃx9Ë–—.<³¢Ð³‚c–"Ië.ÂU˜fÅVY˜ÀàœõçkvÊNã … 8nµ.ž¬°2BÓ€[¥ç”|bA(L>ÃI ÂMáü8nÄ„#%ó̃)³B—´L#YÃm–Ûòˆ‰f¥$-H©Á1¼@ò˜#2‘Ór¸Çp¦Y§á¡äO<(a3YÐT§ÆÇM®ä J°IÑTe‰Žáë´`§;y ŸÎƒÊ”õ8*ož³=ŽO\&ðÀÄ8>ñˆÀ âøÔCˆãS}âø ÊGæ.Ç« Ï10p(µE˜»å4wÇ÷‘‹¯©“T¼¿¹°ø|$â½MæÇK®‹,î¤*ˆ D#ü+–×&^# >: •IÓ­HBmËþýOYc’Ï ¯†ÚɦSÕ-”©p÷Y–»‘ Š*@G†Š@qK¼…<ãµbª*µu=&˜—ß3ÿñJª`Á÷S= =6°'s\&`Oå8˜LÀžÈq8T<Ÿ*7ÞV­ìßή/ˆüDôsÄè'eÁëçdÒOÂBÐO2†©‘„¯¤…©×q Aÿh „¯od&ÆÄ-ý"c˜HEXðúDZ˜xGñÁóúc%­/>õšÀC'ãøÔ']ˆãS ëd Ÿ÷)ŠÏºÃç5Žâ³ Æðy}bøù“K|c Ó³%Fž#1&­(ÊÞ|93¯t0®öæ9$¥((|N%t„mêm åLºþ·J1NXÎÊ~%^v‹ù¦O'7}3cäŒSQ "WL}'W„ÎS+¦ÞQ+ŽUm fq!¾GÆrt€¤ŒÅáphØŸ™8JGÀ¾nq8öç%‡’ÇáSõÖ8c…zŒi‹R?ßʘÇi#-Œ26³@ÈeÁ˃o$ia”1Ú‚ï5eÁËØ #H £ŒÑuðŒ¡,x£cð¤"-Œ2F[ð¼£ùàù™³/ŸË…O½&ðÐÉ8>õ‰ÀCâøTcŒãS}âøÙ2¦ ÉR/cê%2¦Ê´,¥7¯y0/øLƸ½ŒáË+’éÉ@‘Ü÷¦J–¥x/æ ² ;f›?½ù›™£f‹É½bâ¹"0Z1õ’ZqbÌ–³¹4ß!kÚà;”JÖ8"ög(‡Ò°¯[ˆ€ýù‰Ã¡äqøT½Á,û’3]šL7Uñ#ªFYðª6Y T°TŒ!ô‘²àU´ZMXªF[ðl ,xU#ëCXªFÆ8EYðªFZ´#ùàù‚Š[C«O½&ðÐÉ8>õ‰ÀCâøTcŒãS}âøùªV(|=ÙóEM¿HÔ IiìÿAÔtÐ%ùrQ{²ù›‘£g‹Š¹b¢¹"Z1µ’ZqbÈj‹Élå÷ˆZÁ¡§öQó0<ˆG!‰C{Ä m"SüLŸP3=î À„ƒ0òÉ Â  x˜ràt(w`ÂA Úg(áÀÔ¯'d¬‹;0á È ™A–„S¼‘Â;0áàþtXsî8ïϺ¿×E!Ó ³NåÆÔ|6¯ËáÄÿÔÜ<êCÃzÉSØ(’t’zÓ×ïͰl7ìzf¤fŸÙ¯É—ú0>ƒÇÆUk;ÜþšŽE¨Õ©~nšC½î³o›Ýºî ³­ÚwèëZÒ/ÙT]åN.­§Øu3®«·WØŠ•KÐ1w??ÿã½ vÛ6‚è=_±Gº Q%ú˜À=ô8깬ÈUD„ä \Jòm?¸oÞ,IÉNœ[NÉÝÙÙ™7oÞø«”ªkO¿© ùD'yÔgë[ä6O¶U¾Ü¤žVƒɵ–‚ëÏþ. „„n(øÕseÃâX%>Õº±Ñä»j{ýÿE:¸ãbcü¹=+@ßô±Ô&¸åÁ‡ª¯Nj`¦_‡«ý€˜Ž‡³í¢6Ò„€yÃZ€à…±PÎ_aùù`Íwpü~8µßÛþ¹è:ÉgªÈ‹ÌG‰Ï@èÞwÕ7Y•& [ÿ‘—Wa\=2ñ@ý<éÏ$)”eR~'3S»]?E–;-“vRˆÝ)¤ãDP¼C a<ÆHÝå z÷“`¥«‘Î9¿ V ´kƒ"œ/,ò¾?ËÁ+ðüþ¾>JÕfÖÎ$äǶ¡\‡‡b?cžlUÛmíÌ®ó z°ÐCš|¸YK {¼Â^%Ä’IYÃY;)Àºúã¯6BErÜÇõýKJÉFg3u6vO£ØÈH×ËäT.ÌÚç…xî&9Ê!Y2$w5Ÿ¿¸ÙU7]¼V‘¥ãY¦P Z õ^úÒÞûàôé½tDßõH‚ f“J“óM o÷׎›»è³DtèÔ !±²ÊbŸMôŽ=›[œ-[æß'[5óÿ..sÈWYGˆ¾ ÚÎЄc®4ƒ1=Õ®*lË.?¤ë¥ƒG?“M×3sJ^€‘‘ä 5¹u…o†Ä“„H%вïÅ´v±#ÍA €ˆÃ-Œj׸Y±}MçÖI|èd£ä½ð$ÉŸåveÕÒáU܃ƒ¿é6ñi•Ä»3§—ïMfH׃¸ÀF߈‹­“ 6^RvEÈùÝØk¢S»ª Häjl¡Ü™­ï÷šF/Š fCcëÚ¸Öé¸ ”… †m€²J»&ž¶ŽÊK®&ú Y¡Ecx]ˆÒL—Ãáú=êîÎ5¶j«V{å1- 6Iˆ!û„+ÆG¾·öÐWE0OþXì?ÚÒ@¸I¾ãp-Ð6®Ý³¿o=ôé°àç¼w­; +»ëÖ¾˜¸T*ðщ¤—GÒ“¡f¹zÿÙ]v·Ä¶Ûe6OÞoI€.곓àÅ@íÒ•­ cx=S°ØVë7„Пª6÷*w\kÆ_R†»VhµT{¯ªëáFÆ!W@ò)Bb 9²THðé£(3Œ¥±õYa›š˜ {ÇÊE½ôá’VFù<¨ç(I1‘LLGFN##?ªBfKÀ5ÇÐÈR†¡^‘¿ùÀËÁM\fõ¡+븎&B`I“ 7¼¦XçØ$aÁÿ6Ú…lhǽÀ`$EÖ?p$°òš“À›/RN^ 17œOG&(ñ2RÝà5ì6.a—Yj“IÕÖdÊ<Ï ª¿KÇ/'µÚ– jâ8‘ÝËÍða¨Ä)(×PÑÁ1êR0gêÀ/ŸÅÊß(¨:ö+¼(ÍÉvƯ47*’ù*ÒŽ!:Ž‘}IÖA•Šœ+³àQ†Å^¨ãStpaVª„uŠcPÎpœñh$Â@¾³r`}*œkÏ^Uë*VóÐ.uÀ££(BÈÎÒ]UµÀïOïþÀÎÔ endstream endobj 462 0 obj << /Type /Page /Parent 760 0 R /Resources 464 0 R /Contents 465 0 R /Annots [ 463 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 463 0 obj << /Dest [ 133 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 462 458 488 472 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 464 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 465 0 obj << /Length 3218 /Filter /FlateDecode >> stream H‰¤WËnÛHÅlõµè9°*¬ɪÙÅqwÐÌ èh‘t2 Y¢mvÛ¢!Òm䋿7çÖ›²ëJÊb–NÕ}œ{ëòrµx³ZqÂÈêfÁÕZ“ þùG]ÑJNZYÓJ MV‹7ïÆšlF»­"ãfñæýGFnÇì­*0´Y,ÃãóâKñ±\2AUñ­äeÅný8õp|5¬·¤\òªøµ„=–fËÔ•ËþîoÖ›~W.5ÕÅmÉ DÞ?õ[÷KgNr8 kXU|ì6ÃnK~ÞöS?ìHùŸÕ??¯Œôd¡­µ€De\)$URˆ´ådß-n—«#EµäÊäorcÚ¤Y¹ß åRAp!œ*ö¥„ÿ{ˆª¢Ân~¼+Íÿ“ êÍ/žqIøZ]S›Eñ·rõǬ›v°#TZ§þÉx&ܰL Ã` ü3M Ñx–ÅÚ°Ø–î C’¡™óÙŽ õ€¶º*jV-Áz¥*²$oMRÜ@JµUñßšÖ„ëÛÒ8éJaÎyfÏpÍi]q„`ÈU.9eøå–kÿÈLlmU“S²iÛB¥¦ª}æåRV¼¡mqÙO¤…¥¨š°l—õáR.Åá’.™]ªÊ.*_½X Í¡•ÍÁ?¦ªn ¤9Àoš7õ¬e€È²†´ÍC|Šý —MK &mª–Xg<žÆ¡ìŠ8,ëº9Ø¡弯-®e=· Å.¡·C-psϪã¸â ‡”Ô ª¥MÝâ ßD{ ×´ÒíZT Z¢†Žá D ŽyPœò ¯”Á5?† ÚÌ* ZvàArMEƒWR ¸5ê8®ªúH²…n’x%eÛBÇp«tÍ¡Û^ÉSxº-…Qåq`^½ìö<žzÁc'æñÔG» §"x¬@Oüäñ“s—x±J‘FC"˜s·Ms×+Îå·²¥µQhó,¾‰ Ìµ7ïY “ÃMm4HÈÌ|U=ãu|U0Úòl$Sý´±¯5ˆgc¼™Rƒî|& ¹`­ÜŸ$—FöÝzç(·¢”»‡Ìˆ­g-¾ZÐüMƒíH´c;€ø# јw s7ÿ…h4ð… —‡±#pèw öíŽÀ¡Û1Ø7;‡^Ç`ßê(Gà|«®‡²ïpçò "!LaŽ+,jÁ+ìÌ¢°˜… °x ±˜¯ ¸…XkÄBPÈ#B;`¼â<ÄŽA,…ÃcˆM…Yð †[ˆ}‡öCèP(¥QÂðTk•Ìã©N«ÇÇÌ㉟<~¾µð†Ãu{¾ñ³HRøœ0æámf¾j¢yëï»qz*ÍgÓ^üá# ³ªÃ¤T|rª#êH«:<ªŽ´ªÓxÕ‘AuäkÕ1“(µQNuð‰jllj)ØÂ Ÿ™? :-Øb¨èdÑØáy4ôwÝGCogÑØÙy4ôuTgÑ47‘6={¾Ø@e8õÆÁG¤9”&žÇ„&>ê æ?/>¨ v>•7{>j z>6@þ|P,ÿÔ"ÙóQ_0ÿ©‰ò烺`çS›!õ÷íÑ€ö‘–<‹‹À¡vy8–óy8‹À·<iÉÃçK |~Ô‚‰ó%Eœ#)p¿%o ¼º¥L0%EEIáÎ:3*ÀÍ×KÝ>ÃÇ w2­ŒÈ(#Üʈ‚o+·ò(Õ3;²}möÓš}9Ž ÃØŽYÂ6¤®Á6ľA6¤Ú#N ßšÁÀfíh\-¨„ªb"—‡ãmCàpÛòpä ky8Þ6·-GÆóð ¾¥‚+Ê¿Gë BUt“;Q;ÌB»dÓ;ÄB<4†TGÄB<ÔB*uÞB=ÜBìÄB=”‡Ô0y QøÐRO!‚ô¡RÛaýú´Qs\ý<ÕÁc%óxª‚Ç*äñÄ1‚Góxâ'Ÿ¯‚JŸ>ç« ü.ózfþõ‡ ßBËZ*–TðÔÇ”?'Ã7•_ó™9-_[?óSí”õ—c ]jÓ¬(¢;b+á;B3¡;b; ;N j ñ#Âipx›Â„1Ç{ˆÀáæáHÞòp¼ƒ®`Ž”çá|ƒk®aì~‡2 FUô“QFQFÌBPÆdSFÄBTF4†THÄBPFÔBªuÞBTFÜBlÄBPF”‡Ô1y QÑRS!‚2¢Rßaýú¥ÒWFŸ×:‹Ï*™ÃçuÊâ³*äð9ÇY|Æ`Ÿó“ÃÏWFó à^œ­Œõw)#˜‡ï3ÌËdÞ| Xi4²¥•*~/a”³‚<î»±„‹RŒO%ƒÄŠ}GZJkØ×@Tç”ò×Ó…+è&yLÀÐ±âøŽPstG¬ºãÄ@…­œIý#ÆjÐÎú•€E\E8sßPÜÏg™ÏHF„ñ`ã;ï Áyqº£Ä™€8ˆ0â ÔAl±¼ƒçDmÀ„EDq¤­Aky Î;ˆÊ‚fç"â ˆƒ <¨ƒxEóœwp ?œËŒ™ Îì]ÏÚJZÈß* få.ü/ýíÓ¾+µ¹èõ’•ædÁ(!o¯.ÉÛëqp¿Ü?¹¿¼ôë¢+—02†©·ËaG×kãOgjz9Þá0hFÒ§HÝJ*k¸TcœéîÃ'L÷S¹Ö/7³Ú¯î ií—/~îȽ[nýðç² ÈuïÖþ籄 4 7¤[oîˆ9fÎÝ” T|º Ÿ/@4XU¬w[÷ð;äÊ ÿ#èѳä펣ØÝZaqûnöÃïÛ«r©!Ç»þÉ¡‡Xr+˜úÚcuåyÓ‘7íxƒ¢üÙÁIiÎܸ„t±p¿¬=rAÖ#éݳ%¡µ¡™¥ ¼’_Ìל*ü.›+º½åÐüâ÷S³_Íã3uõñ¥Zódâ[Ýuäãs?Û†Ó÷Ý8=íË%Œ@piٺj×›É0Q´.aÊ÷ÀÜU|+™6šPvX»i?Üßwnµ%×þTØ6Ï»K»í=dbÝýZ‚IY@”ÙÛýÕíÐï\Mž¦îù_ЇaÛýƒÌLèó¿ó¶6L<À½ûy¾ó ú Ú®·éØ6´ëŸàÍékñîê_ÄXÿZ^[;8Ôçk]êBû`i„¦*ÍËÍã°Ÿº­)³}õw_ "\A¶ý8õ»ÍDï#ï†ç©qn/˜>ÈmÎ^ëØƒ†ëGH‚‘Á f&üTq›„1î >“}g‚Ÿ/B|Õ3›ááºß­§†\Õ1áKº%·¥©sgK;ï§~w3ììÁ‹ùþW¶áúþy {›Ôi¶B²ˆ1ö‘Àà,WøÖç©õë˜FZÿ“­ßg_°Î¶—IkÞl¦ø†Iå¸~茓m7Ú«,Š d)Š} Õ…S£í²¶ØX3ÐÉT\ø&Î ŒŠÇ¨¸‹jºž ª¸#¿Yc²pëÞ È}‚b3òÜßß“Í`9„ =óÔ‘iðU„"Zú¸­BSÄÄ ^²ªÈÕ8hÆ…m(e¦†1ã»ì«åÆTË›÷E‹|ñ„»œ…é®Ä£·óxßw#vnpHWNV·¹f¿u÷àç/GùÙ “A A¿–óÑÆOŒ¶·~Ž\–&@²ž6wÿ«»Zv¢è¯ÌrL°A¨MXÀĉq3Ð6)mô¨ß¡ì9w¦Ÿ¤´·wÎ=Û“ zÁ¼ÄÆónw/º·ÎpÓ»kËûŒl°)²dWÖ{œ¾tÿ }[ @NÞ¿ë2±É%‡Zø0š§²Ÿò4döBçÔ©ëËÎl*Ž hצGò7”Tåêdª¾óXóbÁ!/Ù©4I~ȸæL“rEzîÛÉØîb¨ µg$‰¥ ½u¸’µ4zjåªÄàî hMN²‚ÜVlG½ _ÔJMåÖ‰l4´ØqѺQ»>ü*Ð"GCfûÑŒ;ý“¿‚tkÛs #5ûn› ·ëÆ¡lÕ¶ÌÓ%q¡ö¾‹x½x{\˜ìÍ=œàñj Ãn>à ÉF2¤Ã÷ß÷šäËôOôJAÐûf™ˆ:ņWÚÊlM!6~¬O$üL"m)´Ï´:Y_ïè‚ðÆWq€¹gr¦½§È©&V\}u¹uqÖIø ½•#\„ï3äí ”œù’ ]›¶ãóÁFà’8ÏqÊlš*/¨žO4¿vDÁÔ endstream endobj 466 0 obj << /Type /Page /Parent 760 0 R /Resources 472 0 R /Contents 473 0 R /Annots [ 467 0 R 468 0 R 469 0 R 470 0 R 471 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 467 0 obj << /A << /S /URI /URI (http://www.synaptics.com/)>> /Type /Annot /Subtype /Link /Rect [ 206 289 333 303 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 468 0 obj << /Dest [ 226 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 133 672 141 686 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 469 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 162 672 170 686 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 470 0 obj << /Dest [ 209 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 152 595 211 609 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 471 0 obj << /Dest [ 194 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 262 595 288 609 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 472 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 473 0 obj << /Length 3742 /Filter /FlateDecode >> stream H‰¬WÛ’ÛÆ­\žøó$ƒ¿­dI¥T)ÙʲJ¶å<`Ap XŒý¶ÿ!oùÆœî€Ø]i¥‡ÔV-síé>}úÌ‹õâj½•VëíBk?ÏsàÏ6óÀ¢(T«8ñƒ,ÊÕz¿¸ziUž(S.®ÞÜjuo˜ب\xcó¼øàܺžŽüÌùÙ _;mqj,_wÇrwSl”ë…óÖÅ º4e¨\/Åo¿-ʺu½ÜÏ{WÓzs¬7ÒSÑÊkñ«uªç¶*»v£^mê¡îZåþký·Å«õB«Z-²ÌOòѾcG±ŸÅ±‚¥«PõÕb»x±~ÆQæçq˜Ñýén:§krÁ—ÝÁõ2‡b•Ó»1þ×°*ð#2œ:w.ýĨ«×Öã±á¬õ·´U¹pþசŶå2,ùPÛ¢“UH^Väaì„óuî§p";y1uØÝKr¹9 g3Jß60ºÊ'ч݃,Pžº¦K…4”e«Àù"¢”º)î]:¤r#Z·Š&7['¡ŸágŒ»Åk1›eâkÛæ@[œéÑÛÁJ.Fq$O}õm_Ÿ`IæT½rÃ$…5×nÀ´W;o­£¿Ûé*$r‰íV¡È¨HU¬º­vµQ6F:á -Ar›ÕÆ>|À£ˆÖ®8Ujà ÷eŽ)ûú®Ú`_Û‰€Áã7·W!z[õuѨCß ]Ù5‹Aí;cqäéÐåÓÉ30ArQÔ_¸Åìºyé•ÝþP õ]S)4]'ŽCÕu4•Úv½jº³@Àsi´©NU£JUçz„›ýþØÖeÁév®‡ ¬¦Ìö•X¹þ løGKÙúcÛÖ#OÖø®Ô»ºì;Ómõ^NC.1l7ÝÙð–B—GMÛŒ40£áì4‰à> ç).OA!c bK㕟 #äò å6Ù:âíÀQ`$ù ©¡]p{ªÒBU¹£ .DDÅÄ—;f5äm$ëRÐ'{¼I#£'ùiÆç~øåó³@`×¶ë÷EÓØ¸Z^Pû¢µœpÐÝñÂßãèoû‘—ñß%»•$rŒâq¶Ëû ±½>šÚÂÁöóñ2±¯¦à{ó–=ÍG º{€äH.‚6„°•Ã;umC\Ͼ„±‘£êvS÷ll\ô2zªmG!3ø¹‡/fäÓ,|Ƨ×F™]w†;[õÚM`ŠEáý…¬’(ì*P„ÚPèöÓ%üôü) «"5ŽMó0¦É%¦6s TòÈÙœä· öÕ*ú_%½„Uƒtã"%·jY×X.á;—6täÔÚÇÐ ¸…kˆrîþÚ]qµ MzY&‹þ-Sdþ^ÔС‘±o„7Q5glþˆ©ÿø§'/ËÁŸFý5%š€—B~FF\FàÏÀzÁ©…©ÅÛ±ÙP-[ª}цTïzçÙÌï•Udö¹´G…*µéÊãƱ$XâóÜ6v¥#žˆ€M5I~–‹ =u5êc=È;í š`ªÒ·ì†H ©·RzI}Úºþ^&Þ)Ôi.GøR0M¹@½ˆæÁÔ3·ïØJhÄáðÍÕÕù|ö ÷Xhæò,OäA»¾Z/€B«0‡óS„5L}䊜y½Ø.^¬¨Éyž+6BšQ¤ý44ÖáB™FíÙÈ€Œ”×—?1Y7 ºª=êƒ0— G:ä8Þw9õ ´C*¸7öZo•…sWÂè#$r~§á3d´þzb‰1x¢¦bGîÒ¶„D¸È§—ù¥˜ßýª²)Œ!ZÞY–ÅüójYR‚¿â£©ZÈbfkOIN¹Qµ¹…‹ÖxY°]~|~ºgFÂÆI6ÉlYIóèîɬi*¢çœ¤ºg§F`Oú ÓØVe0UjsfoN¶?ûvrê_ØHLØ ªk«Â¦D¡5]U•5JQŠagÀ&M]‘Þ2VG'§mÑÒtIçô‹¾Ù´æQXm®!×Bï·öÙedR¶åVäÍñäž©b¥Ö~ÕL¿î&£&V9÷šàê‹!¶aîUlÞ/$ï>ú(¹|9K7ýÊ@T>F³‰üb̹î^š sQåj\½ÓÆ”mLâE¹dÛÞÈDM^Ž»Ò÷†}kBè[±EÅV°8:+Û÷Ew± Ñ:Ðê\Ö*¶€ …"EÊV8YQÌ×e*þZ„ø€DÞÅZI|³ó»7…³eÛ§wÉMû6òspKuê(¢ü‡ùÇŒ<å5%žŸ·›À[âüTš^KxŸAe´vŽÔ4 ñ2ð9´Y@ Ÿ;@ºÕº—=Ë”jAðà¢Û‰Ü~ƒ8ȧ‡~>ÝŽO§FüÄTœ3«›PÏC¨çjª cl|Ô¿Œ¢¯÷ÎF&kª2FŒ’iÛ«/6àµD¤"¿"Wip¾óE†Ø¢bŸWoo…í¯þ®ÊÆæŽŽµ÷'uj—cKsdSä-ëç½ë'6}š•²Êée23¦ìçÔÖ6ìÔ’ÿÍH9á¯ð†NAá=wm[I_ĆNQ{g=Š·V³ÀÉê?‰²×|¹úlë²W†TY„¥=;ädoù¸þèD)§Lª ލŸ6±Ð'Ç6MkíGEªòcÔÈ«l®uÀ$ÌÑCN¦+dœP“l¡-£P/“ÎJåÜ ¸:’‘B­Ø>…­/‚)®¥"nyÙÁG^ :®=žÆ4ÖfTG) ­Þo²æë>™`OÜü3o­wõx>vórÀ)ÁÏ÷ÞϨ䦭;©« ® ™ @iÝ« |1Å QƒzAäɨ~’±lßÖ‘úÒø Γ—æP‹‡ïÈ5À§‹û>ý¦aÒ¾¨V}%;¬ânÂß³vEEû±ùš°MC6Ôۡ̓ù2é:Þ—iŸ¼•ÍŸ£"2M5š™ßí„èP /‘]bP¾’’’›R\oÊáºFµ (zTÔïÒ~¨,%â endstream endobj 474 0 obj << /Type /Page /Parent 760 0 R /Resources 475 0 R /Contents 476 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 475 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 476 0 obj << /Length 3688 /Filter /FlateDecode >> stream H‰”WÛŽãÆE^õýH#.¯?ínlÃŒ,°6NœÕÑ#‘ IͬÃÉ?ä7sNU“¢F“Ý [}­ë©Sï6‹7›Ml"³Ù-¢((ŠÂ„øsÃ" Â$‰Í:Í‚0O ³9.Þ¼ï3Sõ²-4}µxóýÇÈ<ô ì C\T-–ãðyñ7Œ’ ÷~õã0ˆ¼¦< 5ŽoÚsµÿPn¿ŒCï{°èsË`ýå ßnWVuã/‹ ðüˆKæûs½ÕË“1ÎâE«(ô>Úªm¶æÛm=Ômcü¿oþ´øv³ˆLmydEE¢ ŠS“&i§©¤ëØtv±[¼Û|ÁIiœSêT3Tß·'™C8hˆS^ç§ø_Cª0H(8'÷>ÿ*Ô›ïœÅÓ Á[›?òªjáýÎßü2ód+tY šÊ£nÄ—ML+Z7áý¨V0"_N½’V\ybî;‰fŽãÙŽ*p¬®‹ÐË¢p‰ÛÃ<4Kó–JÅ\Êóuèý1Æ|(|>bý„çÖédfgá,²0þ¿ ¼‹ Waªm>i›«¶ÃÞšºÙÖU9Øí?QÕÞMa#@ìΞD¹Ü³Ü@°$Ó¢œ@°ôCw®º*ñ*Æ5ñÐf…êø4ŽænXÏ}?Šñ¡¬hîÂ{´Ãxƒsã:ÈfÇ£dÔ‹#ñb{φñ—Iy¶t·•.Ž—q¬#³Døf/Eq#ÞUžNˆñ_ál_O«úþ…ͼ;Ÿ>ñÌOw毚TãŒì*‘A-LÝÑÂbÁµWùLNÉÖm9”¦ì !ûwuãvÑ~‰‡ƒÇöÉMY9Ø›²kϼ×)³ù½³Åd J/>Ñ£Lƒºæñ¢ÿǶ³–ŠÒ.öOµû]•ºÁ8.‰-Õ>šj¥çö|ØÛåý¡î÷¦¼ œN]òù4žùg­Ÿ{Û‚Õz1Ù$zæ\¾ëÚ£Øpƒ0¦ä\â}„N5]3ËÁˆÔkdu‚çÞöc` $V/#š’'“Ç_¦!ÚÈù–/d¸íB‚^–[]6M+?kþÛa.״ʧÓ=1°é´±7iݽmì“„wÎÐ(,qt¹O¯“ÝÛõàËCÿÔIÙ€zV))5Ý}â_>Ní!ÌøZÓØð]ÛûÙÍ—GžU‘íÝ—R!gžRuOãÔ»¤ªA´5ïøxi÷óq\=òAÏ*C»3H•Ø`K«bø2¦½ËNô«ŸàS†Óè@60l·×R†„„B&YVÈÂl.§N$3M`¨p:œ˜¬ÈOünî̹ÁÔT¯–ú)\þfdhݪ»»c¥uS;™ªõÀùj®?÷u3ÝÌäxß6C×PR{TEÍúè’:7U`ƒã[ÚªÓ(N%Š‘óp@>Z‡úÝЛ6éʃyDÙè < ˆeí¶ÿƒ{/(^âL1½Xè‹ÂÈÈ$(ØTŒP‰`莸G¯ƒ‘XXŠêmE†B¬y"ko)Bi>qkÄø¾³mŸ{s´½ÄæÚã—9þ`ÍÏÞs=ìå:¬÷¥žÃBã.?«(Ç{Ü.ºD¨3 HÇ㺴;“±þªÉßJb =¹¬W>Â¥­+‹ïϾÎqü¤»8ìBòñ3ÔGN›’ÿþød¨5¯ìš £¿s4ð2 ¼ÌÞs}8˜œíÙ^NâŒ9Ÿ¤òœª“ãQr¿»ÎM{^TЉ’FëKm2Bh %¨ F9C¢}?•Bh9\Ͳäê¨W‘QyÊ­PˆµRˆ„6æ/c¾-õŽjoŽzÈ þ:ðÔxHÜäxoã·r✷–0=–o ëD„ÃJÓ~âÈÕ<|Ü›÷NÅîî:…W—^†AÞ’æ ÊËè&½Rr»Yf¬æÙÅ`_ 2Xf–i¯t iqÛÁÌÚ†KæÏøþÖ$ÀÓÙLxÿÀCšx°ÑêeaŠfjñ#bîôG­¿žôŒi}›×ê›ü§Zi­žêDscÛ$X¯/´>žWÝ Ö_yÝ¡­ðyäø%ÇO¯ ë5ŠïÒ{"ÝŒ¼V´\éGû4’´çnÖ¼rä#˜Ñ6Ö™hE•hêôK=â€gµ†­~º¾·pMÑ‘ îlÚçƒÝ^÷w#pBm}Ȭڱ œaOAºrÕ îØ³]˜ž†„òlg#IŒ¦·®ätì}v¿š-÷„ €ÏöÕÞ”AøÏÕ×kÏÄ+>éL­g.Å`°¦5OÓè˜ÔXHya‡À´O:ƒˆ¢£ò2ïÁ\žÕBÞXþd2S¾[ÈsÔƒô³iäçÄ7Ý€„àÈkzJÝÑþU:n˜¢?rïkX¬um†g#Æ5ijó ÂdV²ë%õ3oñÖ.¡Ø”7ÝçèO#(Oïöó=ÂvGöå“¥;*^j¾Ú¿!ñ‹Çô%ãD)üÇ˯kém[áðs"Ûî$¯‰7¶‘&¦sð²-$c”1‰twŠmˆ…À^yÐÖOnígˆ™1oHj: ™:¨´¤môwk¬¤ØJªÝ˜p+$Ü7†ÚUu͈K*¼*3ƒyÛiÛ”z'ŠBô*¹±DvT‰\„V>¢úÞ™{²A_}ß~vÚž,µlœZì¿?È$œNŽÔäÎ æä~ÊkPo?Úmܧ}å¼â¦—Šëì×;%…ï‚`0°ÕýùÅBà‡S1~­ìÄ“O¦²“+8á4..};ª(NÛÖ½ª.ððI)q­®ÚžÔ'±˜ ™³‚o*½e.,˜yãvêžK¾ý€!+ê~Oøð¿4Šc?…(’†N»³sS¹K¢Uë“6‘g×9"klåxðu…=[5¶‚r¸©u´¥[ÛûW­äÔáiï§-åÔÎ{ÊKë¨-åeWiŬ·ðT:…›dÊWâ¼Bb»ÌEí„ê`I^]èF©äè“a( p1D6ˬj3çú¬œxÊîàG4šcöh<óˆƒ&¾²Õ­ßèÂüî/Õ0–'znª¢ò½+óÊr8è$ågƒy),º«%/âà3WYøq5ñEïÖHø©«k%Ø«T[iD¿þô•.ÉE×õÔGbz[—òh– þ8H&ZèxtVâaí¶4¾¬Ô éÄ›Eq¢,K6iÍåÈ=»ý&£:õÂËn·i ˆÂ÷<…/)TuhÝZ\U^€H\ÿ€©ãµÖN*ñí3sÎØÞ8¸îÆû?sÎ7MÇ“¢¦¸—õÙMM2ÔK˜ó†Ë]“t6ÔñjÉS´Ùÿ aU"€Õä.€Uð¦ÆfwÄ· RMw!ª^D· jULaÉ“‚Ìñ%1ù¢S°IäB¤U^uÂߪL¿…›ä¹FgÃØ>Z'¿´ÌÉÖvORÑd‹F]¡™5k0Q´Jõ- É'C ÔUÁ§yl]¬ 0¬¯Æ«­ŠÓn‚‰9zò€0C º58©ÍîéuÀ£ª©à­¶¸¬ RŽã2žSÌ|ÄnÛ_XÄZÍŸ§LÿÉ7(¥È¡™r¨ ÿˆb+¬¿Z,™Äüjd§†Û£ªÂ£Þ˜ð¾iƒÜÆ‘Îâ0oÙ2Í:UpĈþd ÆlÆŒ{}b4â`Ê(UË{ÀN„¯C¯9ËÛϤç-r–õ¥À d°]6RUPølÉ40§ö™·•4L Sý­Í½áGf[êè¥M°“XÆüœÕ‡óÿàw£„™³½(®Ϋ^êŒù³À=þ>–ISkï¬mܪ Ð{]O>9UÝønY{wˆîÄmß.cu%Î,Ž:èò+ Mæ¼ÄÑÀ†›#ˆ«‹ äIRqaÕö ú©˜EÒ¤o%5t?¯§ÆCL*b1Ù¡ðN#÷oÜom«ä£"® Ç=ßÁ<|„¸Ëû±)†ÿ™JI— [cKŒ¾a{Š$4"GÃèèY`žOú8g¦d-Ù9™Fçú<[¼ïÀNûiskoòÞBó\Ø%jŸM•Ž»yŸÍóàj†"8‡É¶þºÎ>r“† ý¸0´™³>’éÿâïrŒ‘gþ&×uâ_^€l®–¸‹mèŒ5hR”d¦ 8¾Æ·¡AØpX9û9Lâ‹j«ï‡"اlAX,°_¶g‰#|Ææ ðgIÕбg#º5#Ú/¨Æ(äÿñï-þ?yHCS~§ÖcEwª¼dXm­ª¶+{« À`Í~ê5à*‘†Ô˜l¡:¢W¯gï,8N4ØkÛa¢™‚<ᤊrÌæplmàÙÔöÈŤkÅ»¸Æƒœ Ê\»ÖÐú›äÞ˺%±™˜!|05¤õãòÒ4æŽl­vŒ¬þ|ÅFµæx&0öX_÷þ 0$2 endstream endobj 477 0 obj << /Type /Page /Parent 760 0 R /Resources 485 0 R /Contents 486 0 R /Annots [ 478 0 R 479 0 R 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 478 0 obj << /Dest [ 123 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 478 593 504 607 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 479 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 376 551 403 565 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 480 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 391 538 417 552 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 481 0 obj << /Dest [ 151 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 413 524 439 538 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 482 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 423 510 449 524 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 483 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 408 497 435 511 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 484 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 432 482 458 496 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 485 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 486 0 obj << /Length 3259 /Filter /FlateDecode >> stream H‰”WÛrÛÈ­¼ò+æqa`p!ðä²%ÛÙÔnEe±;ë<€hb—¸(­÷} ?‘ßLŸîÁE¤ä²KUâ`¦gú2ÝgN¿^/^¬×Fùj½]ø¾›¦©òèÏSÏõ‚À¨U¹^¤j}X¼¸î"•w,æ©._¼xwç«ÏÝ‚d=ÊËaø°øYß9K?pýÅ1žëë:;öm_7§|w›ÊYOÿà -:éKgÓo»Íòªv–©›êÏŽ%õîT2Sb§¡½ôëû±ïé»2oêB½)ª¾jjåügý÷Å›õÂW•Z$‰¥9⻾ U„n†Š,]Õ–‹íâõú+7 MÿᛟÂMO¼nŽÎ2!ãÈCÚ¥['¤ÿYå¹ ÇäÎÁÿ^ŒzñÖF9ø°K9‹•p¢ƒ’w>48á{Ž©üB 0=1G_èù0è˜d«ñVV0šÍ/eÞ«f»¥ŠçÌì¶œ×ßû0G™YmJÎ6li—.w̺IÁr®^ù”>·H_ µŒÿ¬ËxÃãjO¸-ò„W "{Nˆc e®•tÑš÷öV®©·,RY3øÙXBð¬hãÇ¡9ýÈÞ>ÂÊŸ[þ-øtwVs‰™âñl|é”8àçÌÀ ¹b:•CQúæ‹“ Úyéù²ªêTQÞW\™r%4êÍõÑ𘲳´>dÅK˜A ý T\¦…5û]Ù¿%Œ õ¿ 6Õï©v¡ýÞf¬ &JŠA׋mÕ€ƒt³­­Îû²íåútØÐP}Ò])Gæœ\|Æ ]ÿ“cƒ»þëT¡ùb^«3ënÚŠŽFê¦úŸ ™¢ˆíK!iâHì+XTÝÛ¥’Àƒžæ™UçzãQo|¡÷¶iéé^Æ«X?¶MßäÍžñQp£ï³|ÇÊb}(ë^±ç“.]; À µ{¥®ÿñÜ3`nã(aW`aT‘rg ¤£›àGÝ5íšü0R$THKCî1a2eÄÆ 8!6CB“ªÞ6w|ð9œ˜Gpry3yS”¸\N@J”W3»^3^ï’ÐÌKÎà#´Þš4Ýuàloìä`'[›Ö_œ´˜Äcgyý+/Ï\þ™}~W2ÞdŒùröšPA¤_GU7‰…à*2qŠüÉPÕIÏ‹òY,¡ ¸ÎŽÙFà±Ã{:äxù»M¢¾¬ zèóìh'Dœ> cÁBÌÜT½ÔãdZxY„ÁhMpaÍɵÖÔà´Ír>à'”&f›®ÙŸú’R¥i‹ª¶¬8£ˆÃlµg‰ Îí f!íº`9í.ü(Ïvùú}u ‘p0gSþ1<¸òý`VSªèo1Å)ož2†€(7È£_®&ü¯¶ŠYz$¶b‰ª¶ÿíl6Z+,) »ñ3q£„Á,¶÷yÈZ™¬êΖ¢Ñ_·|4üé«MØr1/ÁŠôVx Œ.Ê׎¸D.À$= 1Bi)[­ø¯ö9ó€lzÒ$çÂGž'ë¯@TÕCÕïV%· JÚlùPQe]žñ‡Á1Õuù=xþáæ–{¦ÜqãÆ´%'k²\ÕSîžjdÄ‘ž“ªÎw“"b85*á  âÒÝO§}_½uVHóŽ¥+ Û!±¹kdJÌ­!T÷¹…ÃxÃã½3œÎuð¬W`âYü¼gà´óSø|×:ù®í¯:ÀÖã µeب'ºŒs»—ÂX+t0DZÐèëÛ²¾¶pEpÖOuɇÁê\xr”ÃzE{fntCTY§¡Jêihj;BÞa0*R‡ƒµa Î]y–аu¾X·ÒkÛ0eÌ1Žoj˜VLœ$DôЏQŸ;Ul…¥g9õ„¶Œéh÷ê˜Õåf­ÎJF£’'Œ2bT¬o$Ñà Ñ¨6vÜè7¢>Ñ“‘ɈØ0²`S’ù‰±Œ)¨ºëOmiª¬åòVzò¥yl?XPŸÿùÉ™Óè±uô§îÌ·a¾£×`¬]qiP<ìÝ}qŸ>¯ßö®,sñðGn<øEƒ}ø¯Qr)3ŠÁ5ÕˆýÜfù¯Äº“*Þ9¸tVÈ©„).±µ£´Ë@6ùUI4qNj;ÔöT[Fh‡®°'ÆßårÆØ{u=ž&ˈ:'ç¼á,4iègôœÀŠ8ÝEçò,8r…’D!qlJ¢_k£÷*/NIê¦);©IÛPâÚ3º~aÿD‹¬ÏÔ¶m„£õ˜"kGeÿž>×£˜ñu5—¯+n0!ŽQä¿ F11 ÈùAŽ^Ô®üíÄe‡ù¼TÃðÆgôA7ò5ï žir'[¤¡\WLQùIŽ3PR¢\½¬ÐÈöžÂ Õî²æÔ’í<ø•{Îò‘¼ì¶o;¶¸4w/‚Åùó÷µ&ïÃúŠÒ´q Jø„u€À‚u ˜)0€^‹ššŽX(‡Àª>gc2úÉS·¦ÿ æ@s«ò 4'BHPkUv݉+’ÊàüU7#y1—ì×€±Xbµ “¹–ÙR[)rN’ À_r‘SøÁ®V|÷=ìïšÔ±"*ØP¿ecFÒJ +S4t/e¥ÒX9ÅbŠûZŸ_kNí‹;þZÏp#—ÌÏ@ ?Êp>²d';4'ºd ’½çˆï9’·qÅO¥Ç¡BÕD<ÕÄ»bv@ú…ž½¦¸ÆúJó‡ù¥±Mœ‰=ŠR<ätŒ(±0=,f¸Éxe¿¯ºžKˆ° ]WÀÌ Ÿ¹ýOøk9g/LJ2ÑaüÉ52s<8s7šÜ½ˆ´ƒüè?¼Ïxðp¥þDªE#“¹‘…^~ˆR\É÷Nú`-{r–Á‹ÄÉÇËâwÝàaƦê^TÊ—=¯Ú÷óÙJˆI-§~–Ní›{¼÷ò§FÏ2¦mgéÀÎxOP5ÊÕ]«<Ø~:­U¶Ù˳½Ú—Ûÿs^-9 Ã@tÏ)º $ÒÔiºb;$$¸@”Adç€3ï͸!bÕÆÇöä}ü‡. ³EV[E€¦žh2~mýM¤nFm;ªâur㉊íÅj–3·YŽ¢LAd&p>øÊÛ%q~É1é™ÔÉóûé/?­p­˜(›S4aú[_˜ÏÁGïÁÒÉ. A‚Iß½Ù-Ïð¡ xÚ4,vH&v6æU1íú®,>W ‹ðâïõf…ˆÕPÀqñéb´5¥nEe¼í%qF·‚Hà<¦è|)r4ÌÛ;cyƒ=”:X5sòy¹:ÈÔ­A˜Âö2¹"äÆ+òCN»»QØÊÝêû¤Œ8­s¶ŠmÇíÌg²¦C»Ûš -ÚÞ²| "QÃWño;_Ç|š(.Ú Žk¨mYO»hs_í­mG4RùdvN³Z6oñä;}²]㘠žÉßȉ×îôÚ³äöû—o `õ„%ÖÉ‹¢?Í£°t´zÂå"—}÷؈ ´:8¥Å•S’óÌ£¦“9 7ãõŸ°oôõL£«}…ìÜ*¦ÂZ©Ä.TºAÏ{ëøNÁçsÞCË´`-¡PsX€áióä¢2KÝ04V[ûcä&†F°¯3Õ4PtÜN!uþ!¿’Ïu÷ÚFf¬çËYÂàFÆÃZãŠwƒ,\ˆÏ*5>´:´×ôí}[•¢ˆÂ³Q]C.5"Šý}ywò%ÀÍ7Ý= endstream endobj 487 0 obj << /Type /Page /Parent 760 0 R /Resources 488 0 R /Contents 489 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 488 0 obj << /ProcSet [ /PDF /Text ] /Font << /F1 660 0 R /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 489 0 obj << /Length 2618 /Filter /FlateDecode >> stream H‰¤WënÛÈFÿê)¦é2•h’"%r]ÀqlWmœ¸Ó½ØÅ‚&)‹‰Dª"ÇöyúšýÎ93¤)i‹Â5—3ç6߹̋dp’$¾òT²xžDZrñ§‡±ë¸ã±¯¦Aè¸Ñ8VÉzprÖ„*k˜ÌUM68¹œ{ê¾€ÖuÁ(ŒÌðapcÍí‘7v"ëÑö]dzªtÓ–8žÔ»lyæÊù®5³AƒM›HÚÂMð»]¤YY٣؉­{Û£-u¹+sY)褳øõ¼‰çZó"««\çe[Ö•²ÿ‘üepž œÉ¤àI#¶'”\1Þ!+µIÉs¹ /2wáéàÑöÙ#ÈX”ô³mZž_Nd¥w+Z(l‚³ÿ$y„O®/L¿$í±¢¸= á†4ª´ÊÅWOÈ*•¥Ì–?0Ýçà}ÂéŠ9–‘?)ã0O‚¿‡I­•ËŠ†üFdFfö¡`>·Ö­ýÔüC(šÈP¢äÄŸ†êç¡ø:¶ ú/ºÀdµ\¥ÜíØÊË*m: QY¬×ªÐG³%’}ÐgŠÖ1)Þ“0A© cŸSžzœú<¤Ê §cÊy¤wF{eåe•­vH£0ðá‰gÚážw;ËgÃØsƒHP|f"‚¨žãdàä†Vi…v¾çs$n<ñ(b/œÊé5ÕV9sõ8«èHÙ2Kâ0¹º7ž}ñúL)åFýêÜ  »MŒ Fԟ̉pÃÞƒY!{h!ë5Gò\ݯLÄ×äµ «º÷8A"ê¯:³#\ÝÖ¦È,Ò–vºt™>à(t‰âv;w¢Í¨ïÞË™Lȧ=2ê7^ßj¹0¶ÝZ¿ß$d\ePeôìIjZ–Uò8|®1ð™EöN67pc]!>R:v_¼¨?ÝZÏhüº6Âæ|›Ò{™Å}9FBŽôû°^äŽ!<ÿ„ŽŠÖª{çö¶z…0ù~/‹j{o¬ëºiÿÆlË–tb©÷Å­åîB Þ@r1KúPݧfn‹v·eM4Ž'hüШóÁøÁÓi>úa. ì6EÁ1sk-¯¬ò¡ñGyõ¸o†}B—7ö{†“…þÄÀõUÉäÁn£ÖÜ*RrŸ"7Æ”âù›Þ—LSq÷89€šºç›C¨= 6ØÚ2>¶moës¨‘œŽÃÞ¿ï:5' ¼¶6:"Τ‹Uý`s±Fµ¦"Ô1 ªˆ‹#gêÆ>4à B/ýåíI7ó›îaŒj …!fT>6 ÛlRËú ;CmAj]P?Zgˆ}(D•Š—½9<Žð²øX¬êͺ¨Z”Äå–YÔ- •0,¸$¡”ó‘ ³ìÔ¶7áV¶*‡;HNsœ¤z|x>BÆ}‰1cÂgLDŒ‰ˆ1Q¨%T_1Y±åÅïžzô)à5^œ_Î^ÿzu>§KŸŸ^žÿzuÊùüYþlÅøhša—s†‡ýÕdó†Ù1?°»¥ ¡1ç {ŽèŽÛ› ©‡Óǘfz$lo¬ó×/™-+ÇZBÃ=M¾… î÷Nè¯zc“2-O–ì»U†B­¤2°Cè­J¦¡žˆP‘¢sDæD^¾²é1uqƇÐFÝu¬¯(¤>©k¦ßtÍb‡ê±ÞÉŠ2B»Óx2ŽûƒY‘kÊâ éJ%è÷MŒ"'˜8¸#Ã8¹r‰ËR™¯Vˆ~)½ÒÈSnQ=xh¾;ÖUqlžœppÜ!GMüiÿVí2î«·çów¯’[ ™W¯^œžýÕdXÁ@w½­3ä_FÒ‘Lë€W­‡kIhèÚÍÒJ²–13ÒJî7.ÚcYïFíkÄyHçCª–=Î7ô4•S…žïdŽ–“A!Ä_dUw¿©;Ì_ÜÈ.¦¢=G.YðnÆÝC²çiz;`­óô«7¯/Íý¬ºíÿ¯;<ÏÏß&óÂs¿gøf%¸8JñÔäM¤É+Á²”p©Õ½ÖuŠ6ƒž¢(LÔסåáë[ô<ÈÓÏŸZ˜àòËFF\™EµÌ9žÙÇ}fß«•Ä7Æ£Hê=µZÖ«¼á ôÛAHÀì•lQµ™ZÿÜUV0ʪÝú®Tâ˜&gEyécº*©  ·Ç€l¢ÂHÏêªM˪1ÑÍ 4ìhØ'P_IͺäaÕò'QnCýL£ô†vм¸”©ôÒ|OZu½WŒ~„»iæ“ ‡îhªç ó§:812µ°Žûš ®¹|S!¸§  õþ±(ùzït¶ß;]SCökT?´º4uO.šåϹUשè ;=È+Šq½×Ýö°ýÇD¹3kþÎ÷ îÝ[€I>´n•ú?¿‰fò”AÕ ¸Ý ·‘žsÇÖ¦–“Ð¥•¦—ÊO¨,ËÑP4=}Ḧ́߅ð«î a¥îdAh‡6@tg8¤;9S¨O(Oxu¾*Õ6UÑKÕzó<ŽùW:®iïƒií@Õ®Zñ høå'_ ~Á«%Y{^§yhˆe-ï/ kè‘$rÅØÀ"ã]¼ìå23všÅL~/ŽÉ Œœ„3Ð[›š’wv`óˆÓ#ˆœÿ¢ ¼zD}%eèÒ8ÿù”ýh mç²h"„ueÄ"oþ|d£ýÅtgý°phiÖ\”•4‚[íÁkíiuàVÿHS(çÉàß6Kåò endstream endobj 490 0 obj << /Type /Page /Parent 760 0 R /Resources 495 0 R /Contents 496 0 R /Annots [ 491 0 R 492 0 R 493 0 R 494 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 491 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 384 530 410 544 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 492 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 359 515 376 529 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 493 0 obj << /Dest [ 385 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 338 375 355 389 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 494 0 obj << /Dest [ 442 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 377 375 403 389 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 495 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 496 0 obj << /Length 4564 /Filter /FlateDecode >> stream H‰¤WÛŽãÈ E^ýõ°RÐÖÔM·äi{v²ÙAÛÈlÔ²ÜÖ¶IîžÎå7sÈ*YòuÓ–Š%yH²³‹…J,V3¥¢<Ï…Ä?ÿ˜ËH£EjãHf&‹íìÃÇ.eÇÛ¤èÊÙ‡Ÿ”xéfØ+%•³ùðø6û<…se¢,xµŒT°+ö}ÏÍ¡\.–"œküb„!mé«pžà·]e½ çy”/¡"‘øñP/ÝJE_j|‹_¥%ƒ§ªlvKñiY÷u³á¿›}ZÌ”¨Å,Ë¢87pDEJ[a2k,Mµh«Ùjö¸¸€É¢ÜêŒü'ßTNnJçàÇfÎ3ñUІkX%#C†Óâ:¤¿½3êÃ_<â628kñ©*gÁÂÅo“xÀ¶Ü‰ –õOt²Ð„² „¡ 竤¿¯à¯N4pQ÷k'ñ»’§;œlëŠ2?:÷° yïEl`§9Í— Ùm N³YE©¹ÃQp²î×>7Y ìÌ)Aˆ’DÌ4; )ÍØIÌX™ ßÎM,ƒl–ó®ßTbK½Ãd¢Û%ú½w€UŒÁõ´Éh³9ÚìËeßÖMKø½R:31Ð&Òy¿oÚ5P`GVh<ç¯~È®Ush¹8Ä35¹¡)©(oŸú¢íœ`©‡ëëðÕ—Œyýº›¢ëEÿÖU’C†C3:ÔåË[ÕºB¥zHÀ,“r~›ªx­wþS2* Äo¯wÝtý¼«ú¾xðlæâc»/gÓÆ?1B9#rïùG¦´}úØýðW.2RE&û¶Ðnš"—;ª…†Ž%:_™ Øl®0ÎLÝg·r9'ce'¾õrÏç&KtKçPÍ&Zþ¶ü܇$ÁºB3°~ ½ß–‡’‘>½ß ÜJã4šIzÛ‚¥Ï¬¿ÞÔ=#›8ŽI‚—2Î2'9†Æ[„.DçXÍTCc–&.V±B¨Ë_(<fv‚’í"PÔˆ™Ì&üQïVÍS½Ýo*öéãvyV“÷Ò)œå:˜¹îÑ`ºªäÑNG6Òè :åR'Ç9쟲ó—­b¨×Î¥s³«®— ¤Š£è¨óÒ„”¼B=˜»^ÇI‹!Ê[­_ÜÒÚwÀÝH:Å=I,} ±5 €W|­d‚´™Ò“.p‘ v°ç qÁx'âîK7Pƒà&€MÉŒQò«„[¸YeyÜëV7Í[4!7šð‹â£E±³è§Ðñ"AãÏO4¹é›²Ù<ˆª¡‚Îbg¶~â´m«‚Š‹Mˆ1¬êÖó‹'Î?>’$‘€juªÛï§™–µW7Øú¢æ:w;™ÒóiµuC¹±ëÖ¹Ž¤Ý®1dÑÌC®ûâ÷µˆï¼@:;g!i­¾zQ¹¡) §t_<{6Ñ|KszPol§xv$ó,¥àyY þuÖòA›»k‘dêçe.W·aM9Å;Ç|-ޚõȕ¦^A©êÒ2uii(о¶yøwyy}Ø„DÞÐÄIù8Œ“ǃn|øg_‹}_m÷à#B¸‹nðQ§Nåï‡ öLf/º("¾™ëÉÊð– ë8`ÔnÝäO’—öíØ`îÆôÓVËêÒwÈô (2÷ÉCÝÖ`Qâ–ïéTüšÏƒÇhÌß^Œã3 ´Ìsëo4y‰’ ¤õº@?%BÓÍ0lžî)Wç>c⤩ñàw¹tóÍ”V6(°Ý’ï`•požd–޼Кò@ù?4Mn—~Sç°ÅdfÌ7‘¡(3·z^„ÞM˜íîœN5Ó©ç3òTû‹’›vÜÊ Ö½1â ÏŒhºõ3VdJQ–Uçhû¯ZNÜ<Ü!cmŽt~r>#Í™ÿüZ7‡N¼|U2ò-Wš .2 K_µÃ­Ô]CkêÅð…7)å"V÷ï ©ÃÃx{r¶‡îDoœD¸NV®Ëã©õþ®[ u6D˜ÝŸ.ÆÜóœe)ü£Ò:JR4q£m$ úÄ–SÆdcóðê­Ô”ù ÷”îu2^“Ó×øôÕž¾šÓW}úªø5“ü"Ïoƒš¬ÌØÿ8º€aZ§yL>`-×I<×h1ΨcLžXù§ÅLÙ8Êmƒ<ø«Åœÿ¶Õlõ ò$J’ì(Çk'';r$–Žok€<·ñTƒ5'´EÍc»¥A[”¿¼/Ïô(‡KÙÙ ª*NokÈ2ÜÀîÉóHæéŒ±QnÌM ÆÄ°àžœî€æÞ ™Ž´¼)’çúž=eiœª“,hr;’Ö j²ûòLÆw|°)²ÉÞŽ¤MÑo’{ò Ü‹t¬‘mêv$O>­™r Ÿ]fû5ù4—¯Ê'™xM>Í£«òI\“OcxU>‰À5ùŸkòÇÅïÐ.¨J)\-L#¥éèy7=»~ ßÔ¯:ü甈I!öêý£Š“HjªT¨O'êíx÷F¯ŸR76¡QîBE ÃX8c™ÿœÓt¤ÐbêWNL#MÎA6,5Þ@M(Uu²Od]šF˜½Û&þNÍ$&‚OË o‚ÔSó_oÛ—d›Tæ¡Wü,ùnÈÉsC~LŽòcðoÈü{]Jb%“ùÿÓ¥¤‰þGzµì¶mDÑ_™Eda©¾‰¬šE ´@]¤ÙÐ"e1¥E¤’æ;R ¿Ûsç)Û¼’ŒllRgæÜ;÷u8%º‡í:w]Çá¶ëÜŽÃm×1¸ ,‡Û®cpx?ø¸ªh*J üÕFýEraü¹7ø¹ç¬Ü{Nî'÷¬> ƒ•s–Á'|™ÁÉ5ÏàJ‚a°rÌÆÁÍ2ƒ“[Ö_V ƒ•S–ÁW¶^¢ ¹Œû\3¸Ëä2îóÄà. ˸1ƒ».ã>>ËøÕrH­âøz5Œ¯RC‰ìy¹Îƒ»Ð3ø…À¾xªS®ÒÈz®êçUe0ª~ÂÀ¨:Ç`U÷Á§“a0ªÎ3ø„/3XU?ÃàJ‚a0ªÎÇÁÍ2ƒUuÞ_V ƒQužÁW¶^ úer¦1—qŸkw™\Æ}žÜea÷1fpÁeÜÇg¿^ÕIæbÀÕ²ž\!ë1ny®8Ç9Oèe¢F/=šý]w%„Ôî@Ÿ³hý~¯Þ[Ó\+6Tô·ÚZÿ4š}Ý S­ÙYŠ¿Aö Ú‰-E° +3DÿÄ´ –üéœÂhK£dIme°+\îØÆjŽà–©ü=˳uZ¦|Û0¸k·mÃà.8nÛ†Á]Ûp¸mw¡gðK(ðÉKô ¹Š£”×3ƒŸÑ3ŽÁê™gàôŒapzÆúàÓÉ0X=c|—œžñ ®$«gl|Ñ,38=c}ðeÅ0X=c|áqõ`ë%¾Ð˜Ë¸Ï5ƒ»L.ã>O î²°Œû3¸‹à2î㳌_¯gi…‹dö‚kjz•žQ»&8_­å ½,œž%šý²ë¸‹à@‚“XåI”òZy G¡ºJÖúUËY¢å¬Ôr&ˈàÒ¥’Ðy6f3CíE âå ÐÈÝ:­•gó*:©ÏE]cWør+.Œ×4Eî³ü[t —ùóöqxŠTå|û±¸×?3®9ÎX°ãÜ[àÆ9cÁãËܸgÏà†gÁáŒ+¬WDŒ/[prÁ[°ƒŠ³àpÆ‚•6nÔ1<¾lÁÉ {7,9 g,X9b-¸Ve,x|ÙÂ%üñ¸–’:]ª¦·Ï²’ë¢LAÃÙ¸v¢‚Í ì\·þÏÝýqlÕG½(V2GÄk!Þþñ}˜ã×8TŸò·Ãq£VíÞ†;yP7âahZq÷EýgVèI ®Ûá8W•Ü_BY)šDC <·a‚A¾ W…Rz9ösÛˆy¯’7ð0 nÄ«(Ÿ,»ê~Rïý6¶Ó㟎±Q{çîSÛÃÝŒµRˆF=ë͇ás;®Ž‡µ>ðíwú ±tsWyÞ~|”Î5ÍïÛŸ´ìÑÒ¿‚‡q߆)$e|»x]Vz¹ŽOéâSšÁ~×áÒ·¯ïz:*üJpÄÚ2hÅFÑ® °Æ8Òj®Úóm[ÏÇ‘B…e¯Em6"jÁA £hÆš¶Ý#áZ£à¾°¥ݾ›»zV´ ÞÄŒ#DB¹9Í+èÖZfÞëÜymjrìˆ;ծ渶n•F\÷í(ìË~ãúH&¨Æ©SÊ\Ǿ¦ÔÖb´?=æ[Ý¡õ{±é»Íßðrš[ì¶ØÑ› T/q°5KA³Í¡ýk(ɽ½ìž¦ùy©R…Ž{ÕG»·u3Ý x­« …¦¢JÏäkf㪞uñN&)xŸDÝÆr™ûú›ðJßCôŸpô?ë`ÐÉÚíìN,Þµú¤…i*hÕD¦\#JÏ&é%e%´6x¿šwhœÝÐ7fµ©ZÔ@qRäÒÍ$z´U‹#¢ä« ïÑGê©¡L«'±¦™:W/iBÔSðñH¿ÙïiUT£þEù!ŽS{²Elñ"ñùG/£z¦AŸ?zÙ¬ÿmôK·¿'VI¬§«tÄ;LÜ'¥í¾`鉎v@DÚý†2]©¼‚ …G5¬{FÚö'YУJý)ߎÈcâSmJ$PcÍö1}íU¡×çiý×*`Ìàú“‘¦h’à_í¡*_#)‹8uî›Ïû©íÛê­½öׯ<Øtu¯k*×ìh‰¾3?ÜïfmÃ÷}™êÞASåiÝ"ÊßT [´­i#ä6ÒoÊKX3ª0“¶Ý?†¡U šÊŽ&ÝÑLÑÕ‡Ã8èm2èÐ4ú4‰> ‚”Dâˆù6­Ý§ñÿ€)p; endstream endobj 497 0 obj << /Type /Page /Parent 760 0 R /Resources 499 0 R /Contents 500 0 R /Annots [ 498 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 498 0 obj << /Dest [ 298 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 188 113 214 127 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 499 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 500 0 obj << /Length 3239 /Filter /FlateDecode >> stream H‰¤WËŽãÆE¶úŠZdA#’HÆÈÂ÷ØI`ÅLl²Ô¢G">Zq~Ãþ‡üfÎ}E©;Ó6ŒZd±ê>Ï=÷Ö7ÛÅÛí66‘ÙîQäynBüéca’Ä&]­ƒ0Kr³=.Þ¾ëצìy[húrñö»ûÈ<ö ì C*K÷x^|ôîýe”™÷£‡Aä5Åi¨q|ÛŽåþCQ‡ÞŸ}ìÁGŸ¶ Ö_nðÛ튲nüeäÞ£Ñ'óÝXW²bédŒ³ø¢Mz÷¶l›ÊÜUõP·ñÿ¹ýËân»ˆLmY¬óŽDA¯Ì*YÙje`i›Î.v‹o¶_@’ù*ÎÈò-ÊÉÍP|מüeãà!Ny¿ÂÿV…AB†ÓâÞ§ÿƒõö½F|$еý–D• ïwþö‡Y>`[.Ÿ% +VªO¤ÙÄeC†$èò`ƒ ’æ•WP7‡û ‰Âdze øšæ¡·ŽÂ%¤‡Yh–ækr*¦OY–†ÞӪ̇âÑ'%ÖOè\šMaÖ¯ã`Æ¿:Ài˜q¸a„±·q4…ØÛî‘l M*VƒL#÷ê¼mq2k+{Ð@<h24Ñ€>ÔCoζC<PrríIèÂÐ ­©ê¾x8XSf€ŽGÛcg_(ÆwÛðçG¤€œzó0¦iSu¿Ôà ¸Â±[®ƒ,3Ks}1m3™¶Óf ,ôг·àb—îÌ#ñ+Ï%œ¶E‘Ùµ›:´åg=¨Æ8ÙÈÑŸa$¹¿¹‘óY¨‡½¡ãuóHÝè-^>/¾nÿ þ­'ÿÖâíZsÄbJ"ðnÎíx¨ {¨›ÑE6õZr›}‹¯ðñTwÃX(ÒŠ¿jÏqèÀ_ÇÞvÆþ›†Ô’,K½q°ìí…7œˆ52ËñÑ⫞;ß©¾#8 7^ꚉÝz³×s{ödIß0äTháï|Í¡ÏçÛºÿUé{îœ< âdVñÕ¦n(3õn'àŽ9Ô ¥¤eŒb_]PÈ,—Ì”"þ$Wð"دžYézntʬFæ’©W¥K㙥©Zú'¬•-[˜2®Q„ý Ùé)!·úÒ 3 D‘ƒbMVpD᮳[µ« Þçúäžò·Á¤xÚÓdŒGF Z+¶á§.‹ƒ0ý¹Ê=lí,Y¥ËdN책ǺªhZù‚šc‹Þ¨]ÓÁÝÁ Ng 19.þR§[úy¢É!@Ð;L¥¹)å9nÙâu$BVìÁ-[eÉ«cœ) 8¦é/[Æ»ÆvKJþ´à³¥ûv†‡T?7†P"béëãx(몣†O 8åÀW?ØÂe}l’ëŽúÂõ¨Ý!5z»ÙËõÇ ¡Á—Âø IWZŽ÷=n*W‘Œh8ÿâ ã…JšâD·¾b0ie•²Tðý€3Àƒ§€s#s¦Á)–ä<‰Úˇç!Ô6<„IHí>óQùYùó°­'(ßIé\¢eQŠOj% 1!… ŽÔÛñÂ'N}ªQ*N Ï̹ÌÌÀG‡!Q•Q*Âí´ºSM…„5Ùè>a'½žŒŸ¡ù‰&6®+f µK3&پߡdê,“ƒ\;zê„np®ˆû ©¯òš0€¹çÄo$ðQäYj®Ç¢{¬Ÿuø0~µÃ›]m®Éö”"P,t{¶2žïÛ~ Ä’«]+óþ©íkJCï„ óþ|ÔN\ð«ö\ÙQ7³®Ÿ½Ž6Èþk¬ŸŠƒm"ÂXˆpñ†u÷õÚf.6)æMÈèÞ¶¡$ÍJ‹ÌÃõ£Û®íI¢p7 ›™-”Á€6ò=F÷•T úœÞ\Ë¢éÚéµÓ0€+ž­P©~1ÆÄ]÷žt½à•.i!Ê¥uÛÇ’/YÍÕ®®kÏœ„I—»NzݦõGx!C.NºÞùÔÛŠ5(9ëʾVPE¦ùšÊô~(ºAǰDùbpÇ}²RdT4/U‹|­`iõÃØP†Èøúy§‹œ+€mÓ˜¬Bッ7Í%y‚¢ø ÷Ô¬cïmŒˆGÔîZÙA‘BÐ~ä¡Ð(·” s3y11¬Öó&M”0—·á9CdÓ,ÏDzÙ\Q7»ö¾>žÀÉh˜Þ»cu£sàâò*Kô–I 9žÜˆÆ‹ÈYÓrz½%’äæíJæä¢«Ì‡{„F*>µis[òÙ¤0…e{<ã–˜)i¤Æì À³àŒf"ú+c‹¾&‚gl"¬©Uº½â 1v2›>𸗠uÄÞ@ã=zˆííÖ2¬» äÜz4£Ú8E¢þû;Ü—ök£@võ„T·j÷S[“«ÍnÔ<‰â¢à|·p¦“(Vè’~*à¹&Ÿ3çäŠ3dÔ>,Šaj§S¿;[¶WtÙMÜZ™¶q¹Ò¯œ¬¥hû“k¼e]܉»€£Nx½ã^›N"¶þ’º‚"üÆ¥õäÒZ\êÑ lSªÍŸèrB-b²Hu©¤*Ù‘[8§{ö"ôVI¯ŸqqRçP]’ø¸³ÅªÂ}áEÐc¡Þh,‘Ik3¿óÌ)dê«áæšBh"$|ÜCª6¡^ÑLôÇÈ|Bltù“/ó„œÕÅJ.ræŒ ã–Ç·Ù÷aºDƹ¸2»# ÁL’;†&+ƒäZÇf‚¦ùúÝ_É­%¾xÖlÖ®¥LÉS©êK%¦*Ü(#‚/Ùíì,¥T:q³ëGšõ:}(iš®)‚ —FK!Ï/—®\£VCmfIÄ’ß8üDáʲΠÊyPŒx 9Ap%G`hå.• Ÿ|^|ËÌõtÞ¼¨VNT²u²`Çd+Ϻ¼.ŒNû‘O>€Ù’t~î(<“•£¨“mØ„A>|uÃ#YGJÖ ö\j!¸ýîrÙm¢è¾_Á’H4 æ±mÔu­ÔM7¦‰%Wª~I¿·w@žZrÔÏì<$Ï(qeúú–h[ßÝ,&¯¶cßK<ëQV½J$ZŽˆ ˜Z0ƒg ?jQ#¨Uµ€Þe“ûå ¾v5tàÇIÔ¨¦³§Ú3 N´Q2ÛD 0ò(ú C½Ä™4½¾u\ØY²^ô¾¢YMï0ýwLÉò©ˆ ÂÀ@y` Ù­û\HȾ¼?ü 0jz4ò endstream endobj 501 0 obj << /Type /Page /Parent 760 0 R /Resources 512 0 R /Contents 513 0 R /Annots [ 502 0 R 503 0 R 504 0 R 505 0 R 506 0 R 507 0 R 508 0 R 509 0 R 510 0 R 511 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 502 0 obj << /Dest [ 94 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 317 557 334 571 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 503 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 423 508 449 522 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 504 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 453 508 505 522 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 505 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 290 431 316 445 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 506 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 251 368 277 382 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 507 0 obj << /Dest [ 242 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 447 332 474 346 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 508 0 obj << /Dest [ 428 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 333 248 342 262 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 509 0 obj << /Dest [ 242 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 359 198 376 212 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 510 0 obj << /Dest [ 377 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 254 170 271 184 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 511 0 obj << /Dest [ 466 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 404 121 413 135 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 512 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 513 0 obj << /Length 3410 /Filter /FlateDecode >> stream H‰„WˎܺE¶ý\xAÓ²H½ÜÅØ¾¾pƒ¸wv‰=­X-5DiÆ7¿aA¾àîò©¥V«Ç6˜¦ø¬*ž:uøj·y¹Ûi¡Än¿QÊÏó\ðçšyàa¨EÅ~…¹Ø7/_ÛX”–¦–›—¿}PâÁn`nÀFåf;5Ÿ6åo«B?“¿{:ð•l‹ÓPÃò]7–‡»¢ÞVòs`ÐÃ)ƒñ¶ üöû¢¬[o›û¹|ð‰ßƺâƒ+5¬…_¥È¦ìÚJüZÕCݵÂûç_w%j±É2?ÎCpDùJG" #?‹"–¦Zôf³ß¼Úý aæç‘ÎÐôMåèfÀ¾îNÞ6ãÀCX%{/‚ÿ5Xø!ŽÿlÔË·.â‘ÂY»7¸U¹‘òvÿZÜØ–ó04¢C] O£,0°œ¯r? âÉ‘,0Љ¤pß`0ÌZ/f”¾kÀhš2VÁv²@lÅ-:¥q(ËÒ@þ‘úZqWÒù>R´FN71¦•œ(Spb¼Ëà26’½¾È(í$>ÏÐRZâé@Þ*0l ÁE\Sˆ§Îô•èzTã¾Ks€¥ªm9Z¸B¾¼Œ…€àa¦V6¾Xg|ìÜð•Bô¢ÜÙ$Aî z™Ž9 D×8Á«J—>†«ˆÜ¬C’ä‹3Ù¿±IÇB¼½¹·êš¦@v ¥°HÂ1²\À쬠l£1æ¾Uw½§•5of…Ûõ glA÷•ô¿>rgãvŸ$ípOÛñ˜…‚K\Ê-ª„7ü䱡Œ±Ø’5Ä®ètÊÆ¿ñ"} {¦’ÿ‹_DðÅQååaþ‘¾åï†#Âù:ˆRÈ ¦à\i*¶9A£åyÓ˜  † Zܬ¾¯‡íèѽ¦pÇé7•}qN·†ûÜÏ5r_ÇK,$g,ôÆšþÀz `¶lY’¦L› õH~ö€#™Ï‘tP½½÷¶ÀÿÒvÍÈ­Áˆ÷]Åí5§.»Îý’*}È[qì*ƒ ùt¨Ë1ÁŽ 6•ŽýzsêúÁ>Ë¡<9ƒÚ.O*îÁdÊëXŽ@£†õÔYbø+³³ìd"—\µÕFµF`6;šññPKð~5±pÆ"îš¿ÁãµGº B[ê’SQ².ùl†•éôj¹l¶|fþO’h_j?üä]ñ™jŒ„†.œ™#'àýÃÍßyD”‡Ø~6–é%P]ËA@!°"á}@åGTñûrå?ÇQ§ˆ½m U£.¦½šuèØ±ßóŒ¢4âÈ3¨d²°”Œ‘{¨Ñ&8>òÃ4¯ †4K^(—‘ËK€T¸@< f7Ÿêá¶'(wX%]U-»®¯j–1P_q„¸ZBª~±´Ù˜Js´Ñ@ÁªÛ®3¸ à"—âb÷g¶BÏ•_»Êß`žFp_[ôæÉô[×cö7&³úÖ`Ä"Àjû$FQ»(™ éÒXà¹*,JgÂv™ =&_"`äGjñ70ÂÇ¿ÊÅ0\RÈ#¢̾¾ÈÕšA£ˆOÝ"Ö˜Þ º¯g¯á$+Y´.±‹š‰ü‡g0ÿa nëæÄmd,”Cá¦5Füã²Q1,P:} v­Ýˆ~×zÇ !ÌÎâVÍ<£²Iܾ#6%#äÀ¥š/(Ê«ˆ¤0Í3‚!ˆ7 O8¬Kñˆ·qü­ ¡ò¼‹.$ìÑ‚ô$wH¹J”EKôí†{^M¾«Ì¹ù2¿(¿µK T¢¬I«Æ²/Ç£ Ö 1%*dŒï2ˆ¥îépN(\m1”œ¶(‹F€ï#ÑHè¶p”C|±˜¦µ §4û޲b±Ã긇ôÊ¤Ž† œ–pR¨‹£aœÅsoÇÚ§ã½€1Ü&NÀ=º5£Yˆ'  Ø–ÅÙ|Ê¤àœ¢ã~qù˜÷^°Èõ´EßwO¨•‹U/\è úl]´<4Úøçu áhúUæ+¢“EÝ»-KÃÔpë?Xu\ÕÐŒù‚3ôì€çš†I ïø5EtH)±ñø5ð×e烗"ö*óèúKN mÀŽž¦!J h°Éó83l·Çø…rئŽBì‰qcN.”)ÀYÌÆ‹"‚8ª˜J|uóù‡ƒÃãÔÌλ9«ºö›˜¢XÀô‹fºÎÏtíøõ+à'iŽ )¨Ý4µ…‡)µí7ú!ÙF­T"nõ®^Я¤·EŠ!´”FjðÿŠ{^È;œ…!ŽqØ–#âP?¸íÜœç6µX,Ÿ%Ÿk Ôõú`šUØ‘µyN".IJåd꣡ñrì‰!øN›®uÃXŽ`:¼%‡‚7 'øf¸¦ÂÂc¢9s˹¸ÒèÒ(aåv)߯‡j¿¼}ý·õ«PëD°;‰Cä¨UºÖqÄKJkùEöBxñ–ˆãââØTê›òsÛ=5ÄŸ¬zá§‚ H·)_èí{èìÀn'~š­ïdÎÞI}–ÝñX´Â­°IèÞN#¿±ŽÓëÊCêtO2ŠQr˜$Ó݇—ZœúnèÊ®áƒÉϪãçƒ<±ÓkòëÎCùîJ—GÑe >T,ƒo«GWÎFóu×î¹RÍ¢¦/xa!0wˆ9ñ¾hÝÀƒáߣÿÉ®wžÖT”¨¬ n¼ß»¥¹™0ën"N~zXv«¢¯0|€Q°ÁLÂuâºw‰×–¯çòšñ¾.ûÎvûá†\ÙuöPßSÖ@=ñ¿s ê¹K·o^­á®ÔOãžDøÓ ÄÚc?ÝI¼òÖŽÄÿTìÈ ¬Ô‡oÕÁ,¢‡¼0¹Ÿ³ûj¢(Hêûq °™¢ojs†{–ÿ„‚œaï‹„È {™„9ªâ@¸&< üœ˜3êcb_ûÜóèßüJ2 S­dÖ1€ ͬiÚ3ºwÃBGŸðü"„铟Ɯ"†é@Ë/gY˜6ÉÔÕûšÚí½¯ª½'°hB¨™“=)ŒáSqþ•Hß…Aç<’¹žT‰ÆœžêMËÐßx4GëS  VOTCçÌH鈰C–-ê a€nƒãfµ‰rãv/ôuW¯©oƹùhZr=®®E»ÔÍqŽÛÌgáL ,œòÛBq„8ÖƒRr%{yAÁ(õ?½¼,’§4Ý€jp½õLPù{õŽ5Ä(ÚÁÞÒûù–ÃlÉèÄ Ý­¦Èœ»Ör|ÓXw©¢H§i’u•üȎɬ;‰Ñ#vñ-š«—\ÍqŒr®ìà$“ á”R߸µÊGk2* ;§+…MwzÑ ãAµ3_|ù'À2èü  endstream endobj 514 0 obj << /Type /Page /Parent 760 0 R /Resources 523 0 R /Contents 524 0 R /Annots [ 515 0 R 516 0 R 517 0 R 518 0 R 519 0 R 520 0 R 521 0 R 522 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 515 0 obj << /Dest [ 466 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 236 678 244 692 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 516 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 244 434 297 448 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 517 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 250 378 276 392 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 518 0 obj << /Dest [ 194 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 479 321 505 335 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 519 0 obj << /Dest [ 151 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 364 272 391 286 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 520 0 obj << /Dest [ 184 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 308 236 334 250 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 521 0 obj << /Dest [ 226 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 301 137 318 151 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 522 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 389 88 406 102 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 523 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 524 0 obj << /Length 3373 /Filter /FlateDecode >> stream H‰ŒWÝÎÛ¸Eoý¼”ŠXõcK—I6»Ø¢Äw›^Ð2ýY]YDùûº¹ï$7}‚}Íž™¡dÙF’€EQÃápxæÌÌÛÝêõn—(­vÇ•ÖQY–*ÆÏË8ŠÓ4QÛ,â"-Õî¼zýÎåªr,+W­^ÿòQ«'·‚lCQµZO×ÕoÁÇp­Ó¨þ“8ÒAkú±Æò]w©NÌA…ë$~ !ƒ!‰Œ6\oðަªÛp]Feðjú¤~¹Ô™±´2ÁZ<µÞè8øh«®=¨÷‡z¬»V…ÿÜýmõ~·ÒªV«¢ˆò2ÅAt¤“LeiY¦`é6Qƒ]Wowßq@ZDe–t~:›.阱ð]ׇëÆá„X a†ÿVÅQJ†Óä)¤ÿQŒzý³÷x¥Øk÷©ªVÁ_ÂÝ¿÷ÛJù,ÍxS?¢UB^VäahÂþºŒ6p"휆¼¸ ØÝ¯ÈIäæ$YHT‘àë¶Œƒ\Çkh‹X­Õ:TBŸŠbn£D)õÁ<…´‰ SZÉÉÍÞÃyåqò;X—E' —QobrÜ|>n.Ç=ئÞÛÁŒ¶¡«¶râæIf¹÷zàÄ›”‹Ë"u’G›ÍýM=$ÜûLëk™þ²§tb"œ}–ùüXI Æ-Q–=Ÿm{ið}oæ$Ú(w2=_Mâ„}礄!Ò¸ñ¼NgVMÅ$kª“÷5!´œžàäœBþ yÐ(iÒ(È+_Õ(ó'™·ÊÃ1g8æ_¦ºÞ¶µŒ[¿±á6P~±Ä¨ôúºNù¥†õ OöÕ$êE&ãpr½• d…·`›IìiÍþ›¡TðÜ6Xà D3–4Éõ$ƒ „7à~9Õpûà¥n”(îÒŒ \`ì΀Ùç±÷9 a0ûƪ/_èY8ÛõÝ}­SÅÅ,x 韭ñ·ŸóíýâØv.Kv)btgÓ4ðÚ¨ÎFNË¥‹ ×¢[û¢»Ûƒ P‡êàRq9:ÒÞÛ–MQ琢O‘AÖT×Ó±KöÎöŽÀÿ_1Ryv˜É˜‰Ì£å*ásH1Øñ,säbÊ?Ô]^¬–GËìBy}KrUç߇Ô$"\ à P‘Ì·²Öµ\šá’^—¤-ŽIõwz¯ååL©’J zÝ]bË£ôGy-ÍòH7ê…±z6ÍÅ#U½Ð™A¡—†8ï»a$þ¹«”ùšÌœkò@ÒÞ”9zÕÉB‹‘©'º4„mÝ:ßÑàÞ®wtÍrëešâ~åÁmœ–ÆŽ®ž?u Pz“*žë˜›*šoyl½Pw”笘Wíåå³<ªìEÑx12å P´Xºˆ4O"xâ]dfÏãÆžß§©Ï5 ÷ƒ¼öòÙtím\׸,®>È i{y~–“Z_ŒӵȬ™«½<=#™YŸ¼×’h&vàÙWès®’““n¶÷'ZZ/p[/ñæNÝKKùs¸‘Ҍͅî3ç‹ÊÙQpq²æ·t: MÞðü÷!cŠÇ‡ƒ|?ˆÎ¯"ŒN¦[E%¶TEEZ9kÅ6uîÑ#Ëys[o¯]Xㄟ~@ª{O †{Ô¾èñül¾e<é@d„{O,y%à=Å¥@¾œ–óHñ(rT\Š‚¢î Š8Õv£‘¦îÕý J±°^V (¼¡t!îgðÄhùAIÇE{ˆjÁˆ&} Év.0Ñ©=npK®;ËäXŸ§¯·Ùö¡èz¦:TSQåË®EùŠ<9¡­Œi L+ ²ÜJ"}‚ì¡o^ûr²-SïW.”r/ìøR'I¼³aÈ/Ò l„7LŠjaÔ§àOÔ©Qò)üa;“Üv329åæ±kZš2_P¿4ByTðˆ©ÿ£TÉÖ>äsLû|~íDç¦ùü…ôÎþÂߤô<ÊŠïÕR€Ë’i?=××ji.œ°¦?ýáêên"-êq©Ú£i‹É“ÔŒæ×4{M0¿ïLSïf`Ã\=2­×BòŽÍnûØŒQN-b²1a~¿ëÂ<íCp¾]ŸLs%O‰Ôù.­¢lùrš"…Ð8µ†Yçלù[0·’¨’z¿µ­ã°®|—Ö›ª^T±‚(…ø†ÍpIEÔP”ŽßèìR½Yôé;nê1”âçÞ7^|èáŠ,ÉÉ‹T™]V_u#ÔÜ¥ï;ßrQR©ð6ÎM³^šÿ"}aez?ï­’®£´²¯Ç¯¤Ö{6¿ïäJ§¹’;s8Ö}Y䛨JjºšhjšÂ$‘6(ÁiçeTäÑV/}tunðËìõJÝFÂ5ä¿‘~„è%ô’B–™È{…†L¶š½âÔI„ž—Õÿ}Ö²Ýßš3@·g¢K8¹S0%·RœL­ å—ûsÃu‰ƒ,f¦ÿϽ¥ßm9¾N¸Í¢Œp{Çèô6wÜ*þºb—è•ÚJ Ãz¤!ù˜Ú0ûPf'Å9!ÛÆ2³² w:…æi­GFAV›(¢k=ʹô˜¢š“ ¥W \{eÎÉXç>Êß;ø‹* ¡ÿ1^-ËmÂPt߯`©Ì8Žƒñº“UºÈŒ»Ì†be̘‡¨û!É÷܇A‚4é.&Ø’Î=:{(÷Al$®S€¾GêèF/â‡Õÿ¸ïfU);/få£Ã.–®G¤èÐWÏb[S‚*_^Ò±‰ýt>òÜ/¯\.R„õÚVWP•ðéoþ,Ô|1y™Ì‡ÒÏ/wìÛœù±US‚Žvî™ôfÞ8Õ»õ/Íš,RÌŠ¦Ù ^U6ïuA\ž±üú*l¨ßJçÜð(cn¤Q4ÞA¤:­¡zÈÛâwÕwrIÝ’Êá*ë,”Üg{¢†àc_×È (ßHC}ZÐ!ܹƒÛî­îbi’Aú+$Ä·¢j‹óúR-*x>> endobj 526 0 obj << /Dest [ 226 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 328 615 345 629 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 527 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 355 615 372 629 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 528 0 obj << /Dest [ 428 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 382 615 400 629 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 529 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 473 579 499 593 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 530 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 391 530 408 544 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 531 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 351 453 378 467 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 532 0 obj << /Dest [ 226 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 254 417 271 431 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 533 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 269 354 286 368 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 534 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 290 354 343 368 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 535 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 417 275 444 289 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 536 0 obj << /Dest [ 226 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 208 162 225 176 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 537 0 obj << /Dest [ 226 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 229 162 281 176 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 538 0 obj << /Dest [ 130 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 438 113 496 127 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 539 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 540 0 obj << /Length 3611 /Filter /FlateDecode >> stream H‰”WÛŽÛ8Åóä¯à#µh)uL:“`Xl0í‡ ’}`Ët¬,y%Ù=³¿‘üC~sO‘”¬K_fÐ@[Ь:uêTÕ›íæÕv+XÀ¶ûMxyž3ö2÷=? K£Øó³0gÛãæÕm³¢ÓË|Ö›Wïïö¥Û`­ïc£bã—›OüÎqƒÐËøŽð½€×òÔ—ø|Ûœ‹Ã¹cŽ+|þ‹ƒ5xéÐ’^9n‚ßv/‹²vÜÜËù' Wìý¹Ü™'оø¿A>¿SESïØÏ»²/›š9ÿÞþcóóv°’m²Ì‹óŽ^ "…‘—Eƒ¥©`­Úì7o¶Ïf^‰Œü'ß‚œÜôƒ·ÍÉq3ñoÿKXå{!NýïQ¯ÞYÄ#/ÄYÛ·´U±ás¶ÿ™Ä¶åæµ4Ò‡Ú+:™ B™ÂØ ç¹—D:9â’PL¸†û†@"˜…˜¬(<{·iîó8ð]ìîg>sÙkrJЫ,K}þ#õcìƒüâÐ!Ê é»,a¶Ç‹}ñÀð-{‘k~î ?Ñ\Ó~Á lŠ6À> °²ÞLGØ"/¶ z# áE$bŸÿ«V¬iÙ±i» ï5G¼`jÇ:U÷ô>°ï zýA±á¬À·~$^]óÃÑV~hº~ÐÀKÒÉÚôš+©5³oNb¾:Jxi<¡ƒˆ'°ìE+åÐ.Âo¡  *Ó-í•E.JÃäÐ`&¹ÿžüÀ®È¾½A7Ö¹ œ˜‹€ÄWžf#O3³7·S—²Päà ¶¦Hî¦=²®Ñ ÌøQ1Yè´ExdÝ=! Y‹%GŠ1îLÀÞ`ê×~ØÝþá1K;Wäô ÎÄõ#m0q ‰Ãoû£Š¾iŸ"×”šöjJ´×ìT¿85ƒ@Õä>²ÞÖvžæ…tûûJƒ%ÙQ‡²VfÀ¡‡faÝXì)±Öc+lÈÔyd‚)eþ)+Ç ÉÍUü©~<†3¶>Z/" êØA^;‘ä‘éuÇeq`û²':c}Û’É1WÝÉD<æõŽüω釦R+köX†¹ÚžÑ‘•"ì•ÖÛ£¬ÖŽ$ÉÔ‘tt$]:’kGD#“ð#$ø”K‹·Òe³å‡»W…„ ú:â7+£‚xE؉P¤À´Óѯ?-E°•¬Dzì®Héô 'øLŒ95e­YŸ†,;¶§ü#Ï jð_ð«ï‚<÷×nSâ¯àüĽÓM¹+B±ô¢:Ñâx¼ ¾ºëÄÀÚøLÆ™û£Ô?•}kîŒßæ‰u>öVòŽa0äÍ+äüàögþ È ûéÿØö³3"0ˆG®…#ý™þx&¼`Ä@Ü–=xq¥ï».x6£P2ÚœŒ:Æ¡ÖY¶¬Ù³ú|¼×±Ê82®Ü¡D•{]ò#n2/³…=áä*ª³¬×ALGþMrB ¦¼ïšêŒækV³B/̧=Ê ¨Ã†¾'¦åVóˆwº[n%Âçų1Щõ3"§´ÚpCîѼ-â=–2_—2¬h“¡ÁD„ï”Zš{~4q ŸkøG$[Óêð-€ˆ½YÄEŽë¬\‚„‰¦ßˆñaþMwnEØ2ªÁp]ðDÓG²G:B}> ÍòÄgg^ñÀêd?Ý™eP[·Tþ÷ùáðæ…ºvf¾Ï·@ÿÛm¥dkrkÛ õî;*DmÅû_ïH5Ø©mú¦h*xL›†62 -*…4µÆ ÚªtVžÈ¡o·Íñ¾ù~5¤IŸÂ¡^¯?˪²ycÓˆ;Ô¡ÛíJ¶µ)D‰f×µjùÅnxµßÉI½£6rû÷§:[¤ˆºaZãQ3Aó l‘ÿO§ÊS‹atåèišô4bªMgŠ(únÕÏ„žŸ¼Ô8ÉIˆ:ÝÅ„ƒE€¶‚ûÝ©¬Ô/¨²„|GÉ, ˆEsŒèÑ=zFa>q›±³u’¢B…§¥ŠÖì{U¥1¡ý àJr»ƒ<èªüª¨\ØÎ²m›}šm\eF;oPÑ©Ÿˆ±4/˜'½º¼îí+j]ðSQ_ß©  -š¦G0ì`(Ø%u¦` ê4©¹½Ã!1ÿݲÐ>4Sša% @ìhž7»GmßS«×fÒ‹9yFÕ…HdÈj7l†ãÆ£GæyÛØ+kõäÏY¨ ÃLVJUTeñÕt(‘iõ¡ßŽ pÿÎîϽU™¾±*€Ó ŸoQ&¢nuàík+í¯WÔËÂg©G* #íZ®ºÒ¤“î‘Q³*öP¶˜XR#ŒŠ&Û¶4ƒ[Çv²—ì¾ì;¤vÿ lÿɇÌ|´ï`Ïl´›v[º‰#6&Œ/³I÷éBí Ô˜ü™É‚zÍHÏgK±ð¢t¢š¿œعD /Ógæn"=Ÿ©v-ës2 åŠdÂÝ|åþ¬³ Æž#×*M%…²Æ`颲èAHÓV˜©—íäv¦ .a@·¯»Xí›)ìs<Ä¢Åh~ìpˆJÕwÔ·5GŒ• n˜,l½b(A9¿*¿šVF&AyÞ’*%üC3 ‰¶ž µç7&õNÐùAQÚ {bÈÝ}yVƒÀT•;-‹ú $l¼²yLøÕHbÒ'5éE­:S.ßÑ$ó0På P䞪3Í,µ}¢-‚¢5DS”ϘÆSS¥½×ªl_²ºéúu‘èOúæ¥ehšº±ë¸aï¢\i;ò ægò€Î2u]Wp¹/ŒOî"Ùø[Uõ²[òež? I‰Ÿ==$•ìÎv$"00(Õ“ÑH÷wXàOWúRò]'›è:¼FæøÖÌv•ìË‹¹DۢǞyJ‚žtíöÊè€qßʪFFP¡C×ÃmK‡@(aŠ.Ý)iõ=V¿kJb³ŽxIKµßïí·ôä«yTÑuß«qc É»AÎ -étfÒÆÿ4 ^µQ㘦cFÅö)?PÇ‚¬Ô7;ǧ„.mXŽR?5 œjÇtã¡ÚïÍ]e^ R€J6Áî Þ $ʼnÒÀdbd2äÞ›ª2ô÷à ¶t)6n6Pzª $»Ø7R?kK;xÜ›3*e;¹os€Qñ×N3ÓV~üîÔZ°SªÇ;¢êP>,.ÐQ˜ÏZâ©qÒŒ@Ê ™s*ÛÖGÁ¿(Vê™L|¡Û(º9˜OW…£âš)‡)W‚c3Ÿ0›äÒ\É>ØzÃJOy7 çå…`ý`ÕÂ[ÙÄ®–)½sˆ±Þ]oÌœª-yw-žÑŸÀÊùixÈ¿)Ìg€«ì„píeg‰{Q-=uá™öÈfñrÔ˧2оH-etÞÜ­Ë®mî~qÀðÜdB`š2ÌwšÊ9F´FŸ»Žòü§ú@Ž„œªÄš™‡ËÉÎSmÓ7ESu7s;#ÏŸÚ¹ä+ûff§ÿ^6KjQÞç)Xb•Rƒ 5«T™E6“Yd—lTP)¶À)ç9RóÀ9÷§ÛŸY!дÐ}ï9ß¡ºÛ@ÖȱК0·­^ôkš{ÕJÐg.4\)…uA‚|2ÚÖ“4¨b ¢¡ž"ïÇ76ÅÔƒžcùy¶­QI¨oÃ.¨æÎr=âJ‰žKqì:-£§¿üù:[<öX‡Q¥féjàÍÔk¡9„óC?i6!&#ŒœHRj”!;†Èä?B¥æã¾ßçŒá¾i˜<è;Ÿ³’¥E‹ø„‰#4xR´Yä’åƬÚÜW¢úÝr'#>0Å»øKe&þ^\ҬضýuçQïÐØ?87=ƒ K?¯=9\BBÁý(gP,:ÔeSθ%—dX!5/½Ê™ÜZŸò ܆”YLÎÅïe–‡î ©©Þ–+Ä¢áxf™3Ño䑼ôCN)úÑUù/«B‹.Jýa?aãO}‡F¯úʇv-$Uo^µUÞ5l×Ô+º£ÒßFèLjãi¥i}D¬ÊÑϵN²Ù# uîÍåû„½d†*™’Û˜ˆ™‡Iêw“gè$ñ&˜Â‹¹úi/`‡þ} ŽzÊ‹ÊÓœ°4gÁw²]ò÷_-@3ôË‚'OÄEr¸&Ï4H“¯º;Ä™XanÎͧ'å™20cN a%£”6—ïz}@ ΋-–/W\êXãL;<Ìï7N†^¼Ã‡P‘!ZôÆÈ·fV¬ôÿ¥üþ ÂÃâ@¶(¾ŒK0c\È ¼k…·‰×æt2µ7¦ÐÝ„O™T&žû¢`k“¿W…åZŽ"¿…‹ÒLÂfÇ©ŒF¢5ÚÞ ODóFqI[”ÇP2áeÐ)¼§z ã]éM‚ù5é¬]Ò§ÿwBuìØ úøÉqœ(0]¾¡+ÐË ƒ4fÖ¯_Öf:çhlæú”Š %Û’ìI ™­H§\SÚ¹[yK$¼é6mÑ™ê õÅE’ø"¹õLÒCÉy_Ø$yäÕŽücU¢°—‚ œ8Ÿý;¢ìpá?gŒƒ ­dn´æé³÷špÁ„ØÂz‡]_ÉQ…NkÅrZ :µŽD˜1 Ь)u$Ç™£éJîTëÓ?~û/ÀŒ«é endstream endobj 541 0 obj << /Type /Page /Parent 761 0 R /Resources 552 0 R /Contents 553 0 R /Annots [ 542 0 R 543 0 R 544 0 R 545 0 R 546 0 R 547 0 R 548 0 R 549 0 R 550 0 R 551 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 542 0 obj << /Dest [ 133 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 208 636 234 650 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 543 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 245 482 271 496 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 544 0 obj << /Dest [ 194 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 275 482 334 496 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 545 0 obj << /Dest [ 194 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 208 405 234 419 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 546 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 370 356 387 370 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 547 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 365 306 382 320 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 548 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 392 271 418 285 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 549 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 453 207 479 221 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 550 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 399 131 425 145 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 551 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 435 131 461 145 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 552 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 553 0 obj << /Length 3416 /Filter /FlateDecode >> stream H‰”WÙŽÛÈE€<é+ê‘ Z4«¸#Oži10ÜB6YjUL‘ —Ö8¿‘¼ä ü›¹KqÙ¶3h Ek¹Ë¹çžúá°{u8(!ÅḓÒ˲Løðg3ßóƒ@‰$ŒlTìöããu÷Áyp÷2ðR糫|O:u~é ,?4Cqz——ÂÝ+ßùÙ…9ðÑÅ)½v÷1ü¶Ç¼0µ»Ï¼Ìyr%~oSòˆÆ• Ö¯”±ô]4u)Þ”¦7M-Ü¿þ²{sØIaÄ.M½( ÀéIŠ0½4 Xš(ÑêÝq÷ÃáR/ UŠþ£o2C7}vðÇæâîS0<„UNë†ð߀U¾ á8xrñÏF½úÉF<ô8ëp[;çîá‹|€m怆t¨}“…Â( Œ0ìçËÌ‹!ˆxrèäÅØ¡pßa0ÌJ-fž}€¯Iæ;‘ô÷°»Ÿúb/^£S ?¥iâ;_O !ÞåO.¢Ý×¥j ³p¤¼ÈWÿw€e–z¾ b~æ)?&ˆù‹è6µCmzÑŹÁÄzB¼®EþØ5ÕÐkØ›0ã0"â‹ûw„¹ ý q¶xÊëNô§Ü&|,D}Œi<#7æ£sH$øXÐÏ  Û!Âdè8g=%+Åi´c41‡ßØSêñ $<…жËÈ¥ùˆ­ÉÉéý¥mÊ¡°0ÏQÁT‘2ÇO¾NÿsÐu¡Eƒ¤ä%Îê xbLÅ'Ý»{„f'®§qRa…0è;À7?ZðU„óÇ5IÄrA–™ìL§„Ò’q[õûweZ_²ú¯â™Â% ‰S ºyY20‡‹èÊñˆ òŒhJQÝ…óÞélÅGç dÌ >ºÂÚ“²=û WÛL~FĘ÷-ðÑåʃ\,â‘NñH-i6¢Ôw'-ò²@8Š å1)vt×üRÛÑ'—¸ÐâN“¾ÍQä…Ë@m êÜXX ÔÏÐ÷M=îa-޼ YçÌÌ¡•š ª{ŸÅ@¡7es­Ç° Â™ÎØ5Y¢xÇëÉT8ôÙP•¤¸¥†â0u?”ú™K ØH{“·_Ë‚?¡Íg´a>Ä[ÝõC«oóyé"NЬS^)kðÆ:¶á”ÊPŸ^Ú\¡ÿß‚+”ùsSYϳ— GÙÃ,r>±Ï/·§@²o戅c òæØTUsÕ¥0gËQg]š¼×#1Žd´æÖ~ä#=fÙ÷”ZeYNY–6Ž­†ðÅ¢™#¸­[¬HìÀCȉ`Z7€ÂâwL¶ø«±_¯®t´-åœK@9 ,nÅÈ„º˜LÁú;lyŠ¡tÛZVÐø@¤ û'û‘̈ZéTøRu¢2Ÿ *ÛÃcE=†÷$yÀoq¢ƒ:Ë›¤÷(JRšÕ ý›èu]¢Ö¨9Zûe¸üÈÝÈ‚#•?ð?k Läÿ½,pÒõmóIÿyÌ$YÀj>ß"¥?Íöæ”zwê”ünLˆÚôð©æg;¾á"ßKÓ­`A¼FÙçûS^7¥y#C‰{÷*ö¹†Û¦á¡»ØŽ†xŤˆ²µÝY3°Zë–çAõØ'cEší~‚g#> Ó\T¡¸)QuÀžù´¼·»@ûYÛ±‰ˆø`N†ÍŠ/božMke{Ï› yõ5Ò—° À “w6” ¼Ö•ëS}|xÕ;%®[/UK@’'rιU- e抪àDvÓrÛ,dËBàž;µ_â /iˆ¬Ø©ø'§ÿ·z.Acð®'~­ùµ·¯Ö`Úˆ¤ph¥plwç •á)}'ø?6´ÙyÞíÂç—‚{Þqþõ 4ÇOƒË²¨hsqâR…x‘àˆ½ðNüäFzn~,0cÖ¬¨ã‰­T{~• ª”¤\Ë1ÛA·kzHoèdCç²(ƒKîkq1uåÙO©‘;Æ?Xw]s쯖Ð[Rß—¦îÌc5B Ù\,Ç·9u}Ü÷dI>wÑû¶¼Âb|±…c7^axÃñ¨ÐJÐÚúd‰8'ƯŽh»-zi›Á œ9¶ \WξÒϺbg¸øyËvS-}ŠÓ;èf ˆ%–ì­&¯Æ®Æom^A»QÁÜ×n5öBm¨raÙ Æù¹èú©W–y[¾$“x«F™8pWCœÝR ãͲ°Â5¬ÆÁŸÚúåR°™…bE1ö‹=˜lÈh#aR „’›KÁOr ð½ëõùŽîcTnEŒ.`4ŽÕù¥7EùÆ›Ýã(‰\#ã}a*àõ!öâï_Xc~pîð6(÷ë¸.ƒMˆækBñ5áß÷ÔfbQ<è^¼×yIÁµ^EÎÀ¼ç;¯Fł޿\)¼NöMÑTàÚƒn ÐóBxG67ëúšd¬\Vܳ™ â†ú¹žµgÚIuqÿðž;Q tÙcwƒÑÛÙ¥±¯Gb *­î9—¡½4¾ÃŽ´•Ì+~¥ô\ªá‰„Æ¥Ê?‹µÎÈä¢ýZ.6%Zv4…qì _LÍô —€x.’™|1ß¶žî@œàË&éž”ßÍ{¾÷ƒnϦ†Ä½×ˆ'¤%úaºÂÝÈYãÀ’kš}—\ˆ‘|UC0°J/, ’ëgž7Îûæ0Dž'JšIŸJàÜÛâû°Àe¤Ü«¥û:Jõq»ï$oÓ$'ö‘–}Þ¸{–䣸%oŸHø¥ÈÜ8Ø­{~°¾¿MÝ&V%Š R€_ÐOÓ´ð+Á{R×é IšU™³éQÍ_ÑE@-½×.¾~?»Š>ôãö¥y6%f‹vƒ}jìf™Ý·ƒIW½Üh^¾.6h›ö›N!w6Õ¿šZßÖˆâ›2iUߊx@£8aƘ6;„mmo”¬3?:æÄù‚ cËÅ.TšNÆe ©àæzuµºLùG~0‚Æä£ÞÀˆB›0€«ÍC@Û廬ûR1N×ÑyP´é"ÓLDÞW¤‘i»òw$t´BGW¡ïÇ(Î/E#•èíË«m:®ûÁFÑE¥¤èœAÈŠé~ÔžK#Bªfæ‘ëƒìV½%ß“[*䀰\hŽ«àÊóxšñx”ç%9ù'LÚ1®bUÉ…p€Îƒî|ÞÓ9ãxF‹á=ED·oè7eÂ.›º†{ue¢(Ô™üš[y¼XÉÏÃ\Ô_J;Ü€ßRº†d‡U]jÔ`q3¨ÖX«Û’q4WíÑ/-Z(ØNP%efíDm”xÑði$ÃÆ¾®àC(äZÉÈg¨Ô‚¶÷M.¨(\N‡B 9œãÎJ:§Éüð.žKÙMðÓu¤á~Üà±L– ¼yCV|ýŒÐeŒÇ‹v"™ú“Ì.G‡°ýÛ=%•jR)'Õ[qb$~ÖÚ-äàÔЦSC=µ,Iü‰÷ÿ¸ (QÑ#sðþÆúêÀ†ˆ$s}ÁTø8›ä%(Òg¦FM/ÔŒz—zÍûÔꥎTgºA8ÐÓ"É„¥­C’+¦<ˆBª·;·ªÎlZükÛtuà‚ar¿†Ô¨¡º&¬“üâá£Kœ§tŸ"0tyúÅ…JÒB õatæYçÑJNÊʈ/róYˆ¤–)…ù°ÞÓÐ\ªÎ^±ÅøÈøzMS¯Ÿã«Iìˆ[¨,«1MOîEÌFÌÚ•Ä©í ðoîŠF© ñ D@ÕÕâ»áð§ï4ÐÔøƒ§(ѽÀ>yVò‡gÈ,QXÅçÿtœ|x endstream endobj 554 0 obj << /Type /Page /Parent 761 0 R /Resources 564 0 R /Contents 565 0 R /Annots [ 555 0 R 556 0 R 557 0 R 558 0 R 559 0 R 560 0 R 561 0 R 562 0 R 563 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 555 0 obj << /Dest [ 466 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 283 615 300 629 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 556 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 422 516 448 530 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 557 0 obj << /Dest [ 184 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 308 425 334 439 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 558 0 obj << /Dest [ 109 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 344 425 370 439 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 559 0 obj << /Dest [ 184 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 431 390 448 404 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 560 0 obj << /Dest [ 236 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 208 299 234 313 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 561 0 obj << /Dest [ 377 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 244 299 261 313 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 562 0 obj << /Dest [ 194 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 422 173 448 187 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 563 0 obj << /Dest [ 194 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 208 123 234 137 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 564 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 565 0 obj << /Length 3536 /Filter /FlateDecode >> stream H‰ŒWË’Û6­Ùê+°§Z4¾++Çq\™•kZ‹™JfÁ&¡c’Pdw’Ϙäò›s EIŽ=ÕU- à>Î9øö°{s8h¡Äá¸S*,ËRDðç›eFq¬Ež¤aTÄ¥8ô»7ï\*jGÓ"áêÝ›J<»Ì"0TïöKóu÷£| ö* ùk £PÉ¡:O-,?ع>}¬ìu$` 8e2Á>ƒßñXÕíì˰”ÏÂ!ñanî1¸RÃZøU*S‘|4µñ¾i§Ö"øÏá»÷‡­ØE˜–1\D…J'"‰“°H'͵Íî¸ûöðÄEX&ºÀûãÝT‰×Œø‚ïì9Øp8¸!¬’cÀÿN…1;OþŸøPo¾÷OÂö:|‡¦êü[pøy8[ÉÃìЄ6õ-ÜYhô²@ƒ%Ø_•aNÄY¡3Iî~@'¡›µÞ̨C߀ѼŒdª¢=XŠHìÅ[¼”Æ¡¢È#ùgj!ÄÇê9ÀMLãº"^Ýì=œê0ôÿí`Ua¤H±¨ u”•«‹/™¤|&¡cìŒîus7…BN­î\Q5}qß~‡´9w˜$Ъ(HÐsÂë-³^,¯¯ítŽ·äÑ ·…é¸Áó&°† JÚ¡õ«žóÒÖþìð&ÌN/Tk ýÍÔ‚¨.Eáðj–cÖ·CÛ·Aæò7ŒhL¾Ï¥˜NFŒ­û$ìQ¼üN4­ç3¦þï{ø»ß/]÷Ky¿Æ¸ã˜b*DðC—Ã… zplw²s׈ºòÝæ8wèA ”e©äÃm×ÙWÌ@@>ø1_ãÿå9#”%åY*ûÞ M…Gtb©Ðõ”ÚŸRa O‰',èL…´óдœ·Úˆ ŠëépP×LÂ/5£òµPå“ùÍtצ¯gGñê¨ØWzŠ.žÒ®¹ÂuÏ‚ìU* q¡K**6ñ=xWåèã\6Ëâ¿8A±ž ð'€äQ$ߢª1€;¢¦&¤›,%à ©o?"ä«køõÔB‚Q4ӑѧf–émvÞ9¡Žvì«íVÕùܵ5wUOvžÄ±žÍH1yš=öM“åS6Þ7W•Û+@þÿ$ÿø)>d‹·Krµº„xµ£¼Ë¾Jtv!û ’66¸à§¥ ~)¸ÆÔ8c²ãM@ò°È6‰½õ¢Œ—€@²c1s—|¨ñ6˜é& 0j¾ÊjØ5¼Ù6 uº¥‚Û[C8Ëä’dt´ gâuÖ^ÛMâ½+àsx¾Ù"F$Ž–Õ*¾àk¼¦ZÅjâÙ)Ò1ÿŒýtbòß²MÈ w¤/ 8ûÑ ¶æ’—Mü#ÎÜÉSoSÂrüïV6Y‚çw:“U)çmù=§2,%0Ò´`²l@°y^ÝÌÛ]ÀÏñŸä4R¿Î½àµÐ/æxÄt»5}íso£‡eyñïä`[à”äVÛ¤J¶C惕t¦BÊiÿ9×F¸ÞZ¨˜Qô닸pt8TQ—Û‘õò¢ÏÊ¥º‘½r‰øWœ‰Är¸âKEØ†å Æmvpêè&s?NjMA)LÕÖ0)¸%"ª¦EÓ©w`keå@,3ˆÙa+ù‰·»‘|õ[N®~ûäl7OÜÒñ/òâ¿—bZ"ò1_‹ ÕÖŽÀ.ÕdÜu”’µdV!R¯ê„¢È(Î#ë?SC˜Å+ ë%§áìqz­–I^oU•_Åß…­sfë˜Ù:¥¬À@õ@Ó ;ˆ~sT1î„H]=Ÿ;ÏaˌގÆ38rD?ã¤õøê0ýr(|CzåIÙ@4ô¼Ð2à-àÞ‚æ½ÊX*ùàÅ+IÖ޺鯥/ªÓÍCÃ÷Äò%¬¢±ßí²d+kGDøDþÁ·Ÿa£'àj±”jÔò¢†ûéþ¿ÓÛo½ÿ~ôûüÁ‹!~¾|îˆ ód##8 æ¶¹£Ÿ$Ùd6½h~Oz‹VD‰¯nÙò^°îÜ4 2)DZèëÔ €WH¡ í ˆG-¯Å«£—•¢\t.öa¹˜D{œ¡ÛVr9T¹Ê’FRWU®¶’€å‹/™’J:^a ƒÚ~‰É—±7Íò-ð“ úî1©õ *]_(¤–5’å{ zZQžìc‘II¼G„Äï*pÖ|{Öµ„#µæŠÖåŠøøøF“úçã^Ç$‹lmíŸ@E"Èón¥˜wJJŽ–ð8fÎÍì°¨«nÿÔN|qÐñWCùûq¬˜¤‚uà+ÖµÎc@©éyøHĺ­›ªÈ·DSM¶€ºñ"w/ÃH^~»Éž¯ã I’îµµ‹.¯±UöIØûÖJ”}1[$ù!ÐÈjx5vPoËà‡GS›–UË ¹)G!vˆÆL^ý~—ÐK‰',˜*^G|÷Òºgxà½TÏ™{$bo:ßaÏàtnúžž"®{I6€Z¬ÂåÚdµL¼ð÷ü1Vƒë[GUj0ñ8U/«„Œ=YÖÕìLCÞœH°¡‚…ÈYÈ?¿äÁíò©³‹ª! T=ÆôÄLf˜ìL†ùd ÁkH_¸Û1S–«†vÙΚõŸ>â•Ì«—ÛP f×N¸)¤Px¡ÎJ@”áÄ»&µæMºßàC(9¡ã ŒsI#otÜæÑÊHµßBªï8‹ä[q$ #X€zFDOˆR¸!2äBë=G_'r× u:úúxþ™°ŽÛÜ?¡¦Ã† мÿîlØVKÍ%÷w‚{-Ùé{î]P!E øšo7 Ѱ7ˆëþÜQ/bœR*cåÌ7áí<Ý¡Èìù ·>ç ¢SuÿÇx•ì¸ Ñ{¾‚#–l4€[9%Q¤‘rÌsAÀØ(Ø Æ6Éw$œWK³z<¹ØÐ4MuuÕ[ÒÃzŠ!p½Á që¦è=¸}k;BºÌÔULåW€/^Í3ÁGìŠör5¨Ä»•ÕKA¾gáL?>fIÔ_ ódõ©¹RK"… šI"¹éºßÜ58)[é¼^êlÝbX7V‘N^ÀY¼¨Hf²ßêX4eUí45J‘Hœ ƒ.¦á[™ÉÛB™ù‡ÿޤ÷.ðW†K¥LYï¼âeÊÓIÞÊK'df¨¦›ŠÞ'8Èx´>Ÿem™”-ßËeñ Tø½´µ~¦aÆ;@\ó‘?¶Ç~é×ät¿ÞVڶȬjh% ŸöÊVcYÝл9JÅ}ûüeNŠûè±³PÞ8+̉'K[Ú…}çé<´Ä ’Q/ì‡ÈHòÌCë{t`}È!}÷šdPȲ ¦+‘Tž«ÑD "b윩5éë^Š<YI•ÓC#â*q[Ñ@@ÑÜ”·Â®Ðäõ z²Hú؉ ªÞ›Rˆ<°¸ÔïFòÝ¿+¡§Nlª2K²á".]jЉõ‰ušwOæÎp"¬J ªAƒ(ÂùŽÕW>]v"kSlލ#ö–„{O»1¸„ýnÃAÖÆ°@Ÿd¿šØÄ•MPKAk@eFr.!KN$×\{ž9Gx¥–{eÌT°LJù°ª­ÓÉ)Eîå8±©­þÝ/4\q “¼*~©”&%ÌXɱ^Ô4¸l™®i.Ó.8ĦìÔ¬Ô6±i¨Ç"×V–ÛÄJýQ7^N?z~< G"w¦!!½qÊZÓšü³ž—Ô´oœjÚj©ŸÐš³>¹©i)æ7Õ›äç¹FùÂËF ŸtTu=¨UçIJÆdôRÎöê5| … Sêdw^}u@ÿÒìXÊ•¨ö-«vöC¹Tâ1(KæYC mè9¦^d$•:»|¶"YsÔ5mÉ}’`­äÞ@!‘‹Ä¤œáícÒî]Û×Ô]a Ð¯nÕ2j­+ÎÏÓ;ÇAÆ7 e™ÇgÓ°-6±y!â–(ÛÉk˜Ôs}y!»ÚüD+_Žõõš²„œOáh-°8ƒà«©OÜãÒekHB ©”dzPܤ"÷4ÂßüúòáŸm endstream endobj 566 0 obj << /Type /Page /Parent 761 0 R /Resources 578 0 R /Contents 579 0 R /Annots [ 567 0 R 568 0 R 569 0 R 570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 567 0 obj << /Dest [ 377 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 493 637 511 651 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 568 0 obj << /Dest [ 233 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 257 574 274 588 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 569 0 obj << /Dest [ 194 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 208 524 234 538 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 570 0 obj << /Dest [ 318 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 244 524 270 538 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 571 0 obj << /Dest [ 184 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 266 461 292 475 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 572 0 obj << /Dest [ 236 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 482 440 508 454 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 573 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 236 360 262 374 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 574 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 467 311 484 325 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 575 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 326 275 352 289 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 576 0 obj << /Dest [ 213 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 478 239 495 253 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 577 0 obj << /Dest [ 213 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 479 163 496 177 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 578 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 579 0 obj << /Length 3417 /Filter /FlateDecode >> stream H‰œWÛ’ÛÆ­¼ò+æqZBÀàþ(ÉŠãØJT%æ%v°¸DD î–ü¶«ò úÍœî€ °^;)U­ˆÁ`¦§çœÓ§ßì6¯v;£|µÛo|ßͲLyøgfžëQI¹^djwÚ¼zÛGªèyš§úbóêë¾zè7˜ëyX¨ØlÇŸO›ïõGgënª?;Æs}Ýäç¡Æç»öR>ä¥r¶ÆÓß8˜ƒ—M*gãÿnŸuãl37ÓŽO¯Ô×—º”‘о4øÿû~ì{úcU´M©Þ•õP·rþ¹ûËæÝnã«ZmÒÔ²ñ]ß„* B7 C…H£ºj³ß¼Ù½€ u³Ð¤t~:›ŸÑ1=9àÛöìlS‡â+Ý9!þÖˆÊs œý$¨W²Ý{í¾¢¥Šþƒ³û×ì>[&¯%¡!ojÑÎÊP–e+a?sc$‘vuNYŒ5§ûŽ’Di6f6£pí¼M2OG¾·Åê^ê©­zM‡2ô*MOI\£”ú?8´Iåô]Ni¶ŽŒyæw'ØÏR×3! æe®ñâlL±—]‘”Éq› ™M´ü-•L÷*秆ŸÔ;F‹¯eðž2_ü_Ëc§ÓøO—µÔЪ{;yèp¾LÏïOõ0Ô “ÏòNVý$ëÈÇ’ŠÛè]¥þÜ[Î àEÓ]úþx—¾¥ÉùxyxpRB]fkyT¹úXuu~T¥¯ƒm뢒[•y2ÚÜÌéòã, ¼ÚSkgtŸ$§êñö›;u>VyσD³¦*¹åÝåj¢ëÕDýpÈuÀiåHQ¤…º‘¶ªî-úw;ß„ãîÓ˜PûÝòÀwM:çA:ñ µ<èÀüÓ©jʪTû–AêN}øøÊÜÎÀjÊâj;õú+w¬ß81CœÂB¬A¼¸&/ž¶Še«²¢¼÷ÿ¹gJu‘_úJÉ–±Þ#ƒ`Åp°7SV}M| é^h‚j÷xkgW zÕŒ m×ßÙ7³TÒÇucÇåqºŒï±}`cÂ*)(EÓ“öMœI¶N4ôTwUO0çàNù'Ž`Èe‚À}ÛA˜j4¤Îíå+ÒU§úËù|´ë³àZ–ãÅï¦Ø~E²žuqP6oZ!é/ÇAÕ*ó“•­™AÈ”SÔŒQ¹xœêÇO½ª$šÍŸÊË¡k(0þƒþyüÁ™à— ®¶]wjˆÑ$3Uÿ¦9Ô÷ V %'øãÇ”84åDè±î!+Qêqi£\ñ-ø‚ Â¥:wíÐ-ÉpY0Ã]ϮϋW~Ú~E8y!Íù®é@õ »Éçãf ™}oæÕ“ ôb¹e"¢y kÙ¦Û;‹žŠ@>²žV3må¨Dy…‹° T#ñÝ©K‘*L¥á³C„’Þ_îûº¬óŽÃ6v:ÂìO“e-ЦµmÑ=ÕE×"õ¨G½T ˆª·Hì‰51á²€Àªš°ªF¬ª0(||)B©f¥)ÒϤ™ó—<—´œ-Ó’f×¹þ ä£8ÖÍP±O&Vù(œ!³Ä Mhõ!cfï£,7]¦eQb4ˆZàÆw @"~ Š“ì‡f†ÄïêýàÐ…Ó^Vü•7ÿ;2<†:„«÷ò|SÚ÷‹Aë:1§*op=|…)_¡ÑŸ(¢ìÆ^`‘”ä=UÒØNëäUÕØZÛ;?X’ËFOÈ+}ÂPôae»’Då p%Z$}eÁ(¦þB–`³5òël©ðt©zk>Ø0òk´€M«Ž-…M ÔV°ÊYT‡ªë¯lµ3¹â*‘0ö\Dj:k¤EôMÇ£?ñß^¼þ¹#¥Žì£ü&y†£—Ù|-WF]ð™KH ¯5"Òëòm¨í™`®ŽÙXòþC=Â|H ¨>^Öe5Kft ¯eulþölsH¯>{é]ð³}²’nÖqaÇ+=·¡½@6ˆ*D3/¹­¾2×™?´Çò–ï ÚK]ÿàHe b>CHÊVºðbé5céHMxeòwê­¡‘#j4òO´¡q:ª7õÒ¬%.8zMæUffÍ3OðÊTsà\ÌÚÐ1o|ö+þµ2%óˇUŽÿ÷ Âs¯öñnd×oíÚ¢ 整䎆=[LP^yµàE Ã51=¥ŠK_˜æ°XÔr3Ncóù>GÅ»Dœ¢BLñŸ ­+zÐE|hCÌêdØ*ÆNï£mLÖ ¼)ÅÑ,+SŸ•pŸå.¶U¢YªWøD% ¯øÅáH'íj:+aãvÙàÖVËi ¿ç4hž9ÍTüuU>TêD{7p]Ëx¡ôK¿uƒ’÷OvûÏ«Ào]ת‹£JG®ëoM=¦œZê=Oí@¼Èa—«sÛ U)€ºwØÓK¥‰¥†[¸©j¡F£î¶ëãàÀò`Y„f‹ÉuÕ™àÅÂ/¸`kÓÒ–ä@2F-Ì\i„ˆ·FK&…n¾p?œ¢ÐÇÁ_7*Ý’˜<æyu¨Ž¥’dD’ŒHÏm׎Tm­uqœ; wÈkëçà ó®F²I¢zɘ/³“L%c‰FÉ-Äsbï«CþX·Ö1Ør=€D¾cÍË4ű”8\Yô|!ù^KÅ4y[ÐBÚÜÄÂ[…$©ƒ—}„ím ÖÆCšÀy˜«§œ=4§“z2µ'y¡N«»:\`©«¨k“60oJUòÆ>ƒK4óÔÂÓåÐØg‡ªQÑ3Z¸ÔZPR¡õ܆z.ªQꛯVxòÒßjtÂ8ž” O(Äç¶åp´Ü…|É*àÒ¬ï,ž,Ŝ֜ú_ªîóma‚ú¿¤@ˆH ZŽØ•¦¢èêûÛNm_ÿ(ú+ƒ|¶×xÍoúËþŸ+uŨ5•L¥E+ü{Ç/dØ ûlùZêâ3µ‹®,¶•Ë–1õ× n ïå=ÛÀu »-±Ï]¤1†…!?žÁË©êêb¤zYÝ©ža™è …ù=ýy÷>ô?üýµ„¶ýåN>²÷P]sO ©­<*&/Ëx„£¤ O´°©;ïÿâáO”1j .õÇg¼lô2”p¾¶++¶ÿ#pJqW¨‘&+G4u²ç¡.ú‘›É3 …ù¸šÊ`®Rï¢J+[]V1·&kHªa"–±€ç¼+ŸA¦\”­¼ÃüD‰œÈàD|E ºhRŸ¦~FZ×/cLV,ù/ßÕ²Û6 ïý m  b˱%ôÜcoùZ¦`¡’ˆ´ ôë;³»R( í!1)Q\>vfgVlvMˆ“S«‰Õ Õ¬qîÍrµÏ&^Q:ðˆ¿¡–`ö6ÅD­”¡š§Æk²[ÕäÁùìªß jFs¤rØ×œ™XY£ÑŸ7Ⱥ-)¾¢Í 4vh‡@`Ù¬{öÖ•Åhó:NS‡'à¤êf#iFõ«ÈáW•'¼ö{©{F†"ÇÁs¥};ÛëZý@µx-’¯ð`<§(³G…óÙT®mçÏ2ˆµèèÕ¬ÚàzñŒw´äjL»KÒÏ\zöp ®~›l¡Œ0¢æ°Á¹ËñŸý*æ Öx8.l_™Ä½Ç¿<9™rç|ûRÖÜÅ»jæ€Ä«`Ü€/?a¾¼ü¿EÑ«û¡ÃÑ1[}öìP˜$ðac¢’\¦šrªJ ¶€p(NÉFtǪCrÔæÓ¿Ô?ñNÊœ’ê¶d¾"_ˤIò(‹”¬©>%jXÙð]9ª@°à4Ðwð·Ð5Ù†Tòðínô0)íšj².©<ñ¶§^aâ ê Ö}½¥»Œª¦¡váF±>óÒ¶“•vÚâ‚ô=RKÈU2Lš8Ay‹<³a *€¶äŽ´y&‰Ê&ä# uñº$}oã|â‚7W'•dxiŽ$MwÇMx&;…¡%ˆz¤R§ ¯UÜ:äõ‰A_5ÞÏo­X? endstream endobj 580 0 obj << /Type /Page /Parent 761 0 R /Resources 592 0 R /Contents 593 0 R /Annots [ 581 0 R 582 0 R 583 0 R 584 0 R 585 0 R 586 0 R 587 0 R 588 0 R 589 0 R 590 0 R 591 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 581 0 obj << /Dest [ 151 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 389 671 415 685 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 582 0 obj << /Dest [ 305 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 425 671 451 685 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 583 0 obj << /Dest [ 94 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 274 579 292 593 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 584 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 401 579 427 593 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 585 0 obj << /Dest [ 226 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 448 503 465 517 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 586 0 obj << /Dest [ 91 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 476 453 493 467 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 587 0 obj << /Dest [ 94 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 204 440 221 454 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 588 0 obj << /Dest [ 94 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 323 321 340 335 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 589 0 obj << /Dest [ 109 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 315 222 341 236 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 590 0 obj << /Dest [ 151 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 351 222 377 236 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 591 0 obj << /Dest [ 233 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 290 118 307 132 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 592 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 593 0 obj << /Length 3417 /Filter /FlateDecode >> stream H‰„WÛŽãÆE^õýØ F\ÞE"O»ëá±;BÄ·jè¡Ø/3¶?#öK¾`3§ªš”(½`Ôì®®®®Ë©Óï¶«7Ûm¤BµÝ¯ÂÐ/ŠBøsÃ"ðƒ8ŽÔ&Iý µ=®Þ¼ïSUõ,¨¾Z½ùú>Tý ²AEÕj= _Vßë{oÆ~®ö¢Àu[ž†Û·v¬ËòÖQ ¿ñ ƒEDã­3üvû²ª[o]ø…~ôBZR_õNf 팰¿a˜…¾7•mwêîjÛ*ï?Û¿­>lW¡ªÕ*Ïý´ˆq‘УD%qâçI¢`é&RYíWï¶à€8÷‹$Êéþt·° krÁ÷öä­s‡b—î¼ÿkXø1N“þbÔ›¿:'~Œ³¶_‘ªj¥ÿäm¼ˆl+dYšð¡nD'«ˆ¼¬ÈÃЄóÃÂÏàD:9Ñ%y1Óìî;r¹9Š.$*ß °º)†ÁÚƒxÃÔOòËæs ù\­Jd¬Û2$çÅçóbÞs:üÜ×ÕïˆÂI.rŠsTûÓÎûë(ñáÌuèçÑtNÄ÷‚s=r!<³Íैv}ÿBŽÕ”.2Y±àáÊÑZ\8ž/;G#f ê­p²Eòv£OFYW4{¡Ñ.±£I u«%r/Õg¡ §šÁäåPWÕ§“í†^í)QxO'¯C ?$·îšL^\u7ç¾ZšßkBºˆ3JÇvwG‘¢HP¬NöÅtœi0*"ð%á;oMËÊv5Ê4ì»ùWWj_›f‡-! ü ?¤¹nå,ÞÄnÿ쬚Á/pà75NþDê#uõ‘r}ÄzÙf{$—Q¥zæ®°=f ÏbèvS:rŽf8Xlìl ÷¼3…®”u[kXê_ 0!ä È@~ö^ÂåLÿ …¡lÐÂ@Ž*tSyQµ”m=‚ÊX’ºã/Â9§ï'‘:§‘探ÊÛÚi³’“Jþߊ¦Ë©‘§&áëa¡èF•^E¢˜#QÈõ)Xÿ¼Sÿº'ßýÛ#j¢ž9èf4=¢ÅŸÌn¬$Üâ-ušd«'72ƒêÊÁ•D µF½ ná†IF([í•y78SÙãC9ˆCN€A6B°$BÅÚã–‚' "ÓÿpŠsãüˆ/ØÐwe 3)B¹µBåÖïm# îua»›…}¯8÷½b¦(LÐ:šÞª_&äËÉðo»FÒzוüYKûjýßøS)î6Q(,‰œìöQþÑFµ«e¡DE£zÒ ‡£b§S^•ÐpˆÃx¶c]†«€µ2#{dD¦‘ãY§8®.–&<éÐéjæ•.IC75Ö?xÊ’"rK HêË㉓'aÊÈ¿Bü,8f>ß•¡D«ùõuݘ€¼Ò»o‰Ék͉ê"F&@—V諒ʵ¯›Ž´`,›Ù>W$ÿ£‡Ušãa¥ö¦Fæ`PI1¾Ç!£&^Tåi¨«ž^,8èzÀ Ý©«MOÝ!¸¡ëQìÇÑÅëî•R•ú(¹Xš#ÈŽàe%¸¹]ݼØÑ¸“ŸÄ×mé*:ôøØ9 Z5£\ O§NÚ¾!ö=÷³ßógÞ×”<®ê÷Ù¦7èÈÔŠÿÏyµä¶ CÁ}O¡¥¤F$Ër|€®›Ew톖X˜,2…$ǰÛwÞ‡ú5•?¢$ò½™73¦¼é„xk¦À 5bh>ïS&P€H&„Þœï÷ð ÿ8Þc£˜—1_mæ,˜%¼1M #ý¥í˜Ý‰ÌYE°kíYÓT º¡R¿] ¹°Wï’G…ü‚ûCmú´ˆKÛyD€ n¸›ìÎŒÿf.|Û©Tg-é&ÜaÅu·ìyÙ~jæ,xµgþ¢>ËW,«¢¡Ñ~^ïL>q/8 Ã6ooËÏÙÄ0)«ì1ÂÈÀ´ùt”!üRÏÓuÀÇ"ÉäÛq˹ åÊŸx,­?4%ÙvÐÒs@I-=ɉƶÑÀ¶mÛ´!\L®C3Áµ¦«A#M0ëMo–õ›¥ç’( ®ÑžB"Ü«g#R«‘5¨që<–žîh­¢zbωðÎ’Ó%¹F8ôå‰Ï•4¨1’XM'¸ÖìÄ=õ ad¶]Ü–F¢WMY¢ïþÐû]èAÍÑFè2'.*y÷mÌ'‚m_‹mßÅ¥®¿X僻æhaåRa ëA„ …Ú³pNÊzºT .7ƒ€P„Çj8½0õƒS+~EN`®/AÝkˆvSjÿú/Ò©dÜ©;IrBy3æ1Œ‹òS(€5#°JÊÔÅõŒ´gþ‘GWö+EwÝ´|jî .…Yg/GB¾è÷»Ê;½_Yz¯oY€ÿ“™'ú|T'«<ñ6íy›¼Ý&x[‘gËvwÿJFL9;èâ!‹ËÔ¾ëòžÂf!äÉf•t|7Ú. VK1N~1k²ñ¨™õ3HÉö ì85®Ljì è ¡›dp“ óâgü½–l—õÝÄ-ÚMå,W”X*˜ò€„ÈÅÉÖS£4íœ^`T¥uý‘v»¡iÖúÊm( bk ‡Ì{W9ÿA¹7S!2-â ©!]ŽtkbE^è9\ ’øíÇ— ±d5{ endstream endobj 594 0 obj << /Type /Page /Parent 761 0 R /Resources 607 0 R /Contents 608 0 R /Annots [ 595 0 R 596 0 R 597 0 R 598 0 R 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 595 0 obj << /Dest [ 109 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 361 678 388 692 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 596 0 obj << /Dest [ 100 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 370 587 396 601 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 597 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 331 510 348 524 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 598 0 obj << /Dest [ 377 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 358 510 376 524 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 599 0 obj << /Dest [ 133 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 399 412 458 426 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 600 0 obj << /Dest [ 109 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 433 335 459 349 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 601 0 obj << /Dest [ 184 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 469 335 496 349 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 602 0 obj << /Dest [ 226 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 261 222 269 236 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 603 0 obj << /Dest [ 252 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 404 187 421 201 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 604 0 obj << /Dest [ 252 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 398 151 415 165 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 605 0 obj << /Dest [ 123 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 440 116 457 130 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 606 0 obj << /Dest [ 91 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 317 80 334 94 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 607 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 608 0 obj << /Length 3302 /Filter /FlateDecode >> stream H‰ŒWÍ’›Ê®lõ½„Ôˆ¡PYÍØ×7I•+Sw´»Î‚Ah„@h&ÎkxÞánóˆùÎ9ÍPl§ìAÓÝçÿ;߹߮n·[£´ÚîWZ{iš*ÿìcê{~‡‘ç'Aª¶ÇÕí».RyÇÛ|Õå«Û_µzîVØëû¸(_­‡Ç×ÕïΣ»Ö—8_]ã{Ú©³S_âø¶9燇l§Üµñ¿¹Øƒ.mé w½Áo»Ïò²vש—:Ï®¦Oê×s¹“•‚NœÅ¯Öí;EÞÔ;õË®ì˦Vî?·_ý²]iUªU’xQÀíiª0½$ 4j‹Õ~u¿ý‚ÄKC“ýd›NÉL_ |לÜuå`!N9­âo ­|/ ÅiñàÒß^”ºý`=zdmßÓUùÊù“»ý<‹tKå³84d¡ö‰$+C^VäaÜù:õ6p"IŒ¼¸qØÝ7ä$r³1³¹gð5N}'Òþ·û‰¯Öꎌ2ô)Ibßù#öŒRê!{vIHát.ÙŒn¶ŽŒùæÿv°NÏ7!RÌO=ãoÒÁÅþfʤ˜ÛðlèÔöW†wO©íaX¤ìûIáAᯔ@G=Ù}™lpy1Ëù­?Ëj…3´üÉ•pWS¯ù¡”õú‹deˆàÒñO.U¯­ìêËúÙJëz$©fñ†ìÍg ù ŽFBFSŒã1ƱÝ´ªìÙŒ ˆCÐLíK‰fìP`§­kðRge%qMVS©aãpIÓŠVµd•á£U¼ÑËîF±Ùër¹ÅuÎûò¥PÍÓç"·É¼ý³U=UDõþõªìªò¥¨Ë¢îÕzœ‘95{*…$"‹‚Ëÿ€â^øÉµ¥²Ý&R ë”|•.’b¦1"ðµ†J[S¾vežUêþÜ÷M=\e kãÅѼ°6£æ6Ó”|ß¹SO|^AíîµìóƒÂKFIÆñmHmD|0yµ+^ÊÜFçõPâDWÔvûN¶w¸!oŽÇ `ÅšÏDËD0£NÖ¸®$ ¯º„m}£Auhºð(Ve÷&Î=yÂ89ŠÆÈSÖ—OU¡ÞÝðQ„bP=™T¿ˆê•oz^"Y:'rsEP<­©CÖ©þµ±Þë i¹ÊžŠªØ©ogiâì‘¥(»7Å® Õ¿ÙtLñç¡÷ÞÛîN§j©Þ&~¤žÑ7ÝáÊÂ#"¬™=ë¼PsfǸÆv|>w½­¡º° à,T¹*ÝӡͺB};. ¯*ŽT.| m±ê·£ðÂh[ø¹Ký5œ úì‘HCjk_r›â`{ ©Êy)[>OM†Ã5¥oåžæÈí—µº™Õ‹n†F”åpg(I?/„"hAv1b׆䃘C±Ð;ò‚hÒ[ëIï>;]ª£=“ÌÛ¦²Ÿ‡«|*§I]¾Êy.ºþÜÝåUs$ˆÆF,ÛI"ÉÙìqÌ ¤G½ã”t<‚a]Ee9çgÎõËÅìë "/;cºs‚§„á©ë©cvò î”O"èᕃmüRUÍk' ïÖØ+{øÑŸ”ý‚»Ž§s_ØÛׄ^HÌr'+5¾÷垘Cõ&gÙšÀó¯@íªZY»{µD¥-¨S ÜýYÃ7¬‡Ç[³(j©çNí.‰º(vce~‡“f–UZNªº“å”y‰Éú½Š($ÄçÂEf¦ÇSÅ¥«Ç“h õP¹ágàÊUë‡*“£vë_ìIõX´$e4Bˆí%–,òðwg0²f|ˆ©¢2¨mßкqkÞ°·Ð[kxl 3€UïS§°qªÎœecGOÍ­µ‡­;ôÆ‘!ÎÄ×÷@oC§Â$%ÃÏT7¡§oþ?îæßixîÔcí±ê=û᪟oæDÙðUÆó7Æ^¥î®ð&Ad=¡ŸÎ±9wÅZ"…?/ÉtªÉÔöEáý ’"òE=eüPU7W²Ã ¾Cdz GTkuÊv7 kqúG˜kÁV„ÛqÖØ„á.Øü fnK¹ÊX³²eÍ&ãõ‰õ eÔuLH×Ó ÉÏm×´Ëž²Ñ×þ·Ob…$nNìEK¤F cy[Èzf¼Ì-þ(ºÌ/mí°©%Uˆ¦c¢4±¼Ä45ñêѾ\úÌ4üsŒMÐ|jÚ¾ÍÊ~Ý´D}-«·Rx~àDD*„'"mÓg{©ÿ©¢}ÛÅÙ¤GD}øgŠ–€nÐî”ÈÍnT×(QaC™ÇÞ/~)Úž™²´‰Y°…2ø_5 ±õ0ó N»t gõ¤š 2á™ôù÷0HôYe9Ô ®b.µ~EË")w°»8bçòBe•IyB"úY Y\°ÑT»¶bª†pX£, m@mÏ7ä‚®9ÊZ_Ú 4?T•,€ÐÊ»h%ë]g·d—÷Æ?âgL–Ä‹>¸±+e€cÀRd§q× Þ׬ŒÖ8³äzœá’j{º,4û,cyHÃÄzÍfífÊÜ9 ‰S[â¢ëHÃe]ÄfN¹FÐÐÉT~€ºèÔœÐ)2ºEh¡–É!¡fb§Ú-ðÀ%’@úš€@*ݲxr jéMÝt:"›ÈH”n‚Vh¨žCçì’-˜“è…ÿ\Èà=ÙÃÃ@HYEoüœá>4TžI•§G-§@ÛÀ„Ûì‘ S2r¹Tó%R<·ÎS$D?tµp”½óý õd!|D·1ÿÁfµGÿ+Zâ@än¹š¦¤%wX¶,Èb³ó ˆß ¤ŠLßWE‡±v/ȉ$j ûŠÉjÎ=¹7æ© ÃgYwÔŸ.å_Ç^\ ÖÁѪÅËð¬4|ËÀs$óØÂA-P”à¿Ã9úö\ uÙÖ3OrÙç2N&{²E6]Ú±Œ/hû·ÄêmppMIM“}ª‡¥êY7ŲˎÅ0[ðš3¨ÒXï“¥¡ƒÙ’4LÒé†F6yS]UæÐg/ˆH‡Ô¥v‚ åŽEhvj/wµÂ#AxçÝAȶ£žŠþÕÖ’â Ÿ‘çÏq 0³¦Kd„JSÇ>@;æmU\PëÀ‘÷ Ódž3“Jƒ¥Ž ?áá¡ézo9A¦s5M0´•§©³ `¯ÅAØœm.‰«C#Êúíqmss) ü‚t.¹•˜yÉ«ô%¯Ò“K»÷÷Þ’U ºqCp®FVCi4ެ3f„”‚ÉšºÒ-S³ˆÑB©>fIµI"êê'0JFá—ò>OBšF#uú¥ÁUx}ÑÖóyˆ·ŒÌ5`æ£ë–5ÍwÅSÓ|‘˜Ä`øK:tE;òF(cwÃÎUbQ=öH£àÅ Wq1P‰kå‚qâd䈀>¸”Ö%õ¡Ôia›½¿„æ«gvo2M²¥%V 0^Cf©Ÿ‡¹ˆl[Y@&8 V˻ݯ9ýÔ\P£G«½£B˜’¼ñºn7¦K  éˆ ‚k+‚~²ÀÛª…ç߉˺®–»„õŽ9"x€«WutlÅô ­‹,[ÄÓ‘ 5ŽYL²Ð*¼šMèËôeú”З} ¢ ¾Ùì‰)žCÚèÍvRšRÿĘÂÕ3¦¥ÿ±AHdøáy(Ä«ÉêÈ’tþkÞÒt¼Tfi1Øü7èòãäì{°üÇ “ûç‡ÅÂÙä¯&_Ù¦–@؈ cH×O٪Ț—½ ¯DCY¡©£šseT=Ÿå2òÐØÏJ_@é ¬l´ÖØn ynz/½·œ‰ÊË-¤ÙÎô}Ò“®úÐÇO¾±,¿Ö¯£]/ <ùúÕDWÍÒŒ)Ì'Î$è*jp’5^¦=# IµNY¥h`Ø6¶ÛEǦÊF®òÑ›fúŽ%á„IÄ`1—Ë¿äß&‚ᜠkŸì÷\ÚÏJ'†³J´šÒäž•,VÅNœ½2Ü8Îl8ÉàØÓciÒŸA å ‡Y÷ ,"è^ÐÀ£M0 ²·ØN«ƒ»¿¼;ù` Q0l endstream endobj 609 0 obj << /Type /Page /Parent 761 0 R /Resources 620 0 R /Contents 621 0 R /Annots [ 610 0 R 611 0 R 612 0 R 613 0 R 614 0 R 615 0 R 616 0 R 617 0 R 618 0 R 619 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 610 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 341 650 367 664 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 611 0 obj << /Dest [ 233 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 208 602 225 616 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 612 0 obj << /Dest [ 242 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 335 447 352 461 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 613 0 obj << /Dest [ 377 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 484 447 502 461 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 614 0 obj << /Dest [ 434 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 470 434 487 448 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 615 0 obj << /Dest [ 133 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 291 384 317 398 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 616 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 369 285 377 299 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 617 0 obj << /Dest [ 377 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 411 236 429 250 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 618 0 obj << /Dest [ 377 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 494 200 511 214 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 619 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 466 137 483 151 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 620 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 621 0 obj << /Length 3273 /Filter /FlateDecode >> stream H‰¬WËrÛÈ­lù½È¢‘"! @f%ÛcgR5•È]œH4EÄ$À@±&Ÿûü›9·oãAP–6)»D<Ý÷yιïÖ³»õZ _¬w3ßwÓ4þÙËÔs½ P"#×K‚T¬³»÷M$¶Yæ‰f;»û´òÅS3ÃZÏÃFÛÙ¢»¼Ìþ)WÎÂÜDþá(Ïõe™ÚŸ¯«óvÿåÂY(Oþâ` ^:´¤ÕÎb‰ßz—m‹ÒY¤n*ŸŸ^‰Oç"ç'š¾Tø¿¾¿ô=¹ÒÛªÌÅÏyÑU)œ­ÿ>ûy=óE!fIâFiG|×W¡ƒÐMÂPÀÒX‰ZÏv³wëW$nª„ü'ßü”ÜôØÁ÷ÕÉY$0â+Y;!þ°Ês2œîúÛ²QwmÄC7ÀYë´Õv&ÿä¬ÿ=ÊlKù544‡Ú+:Y(в c'œï§îA¤“C™Q—Ò„{NA¢0+5Z±uíÞÆ©'#ß[`w/ñÄBÜ“SŠ^%IìÉﱫ„Ù“C‡h' ï’¸³p¤ÜÈS?0|KÞ¬5/u•·4µfüöýÎoß–Ô£>dmñ¬Å¯åžJ çÐöÑ[ºÉr½¤^b£‡ox½Þk±Ýg”D>iQ”âT5\EÕN´X°+Ê']‹Âx/­ meÞ›ðÒ"DGáý"–õŽr}fF¯äòTëç¢:7ýÉ®÷ý¬KºÍâˆ×05+ÙŒÐ&ád“ˆXÐOÝŠª<àeÚ–ÄõÖrcÛú/³!:‹!<òXÑ©sQV(Z.Kßëªiç²¥õqß 2Û4ÕáŒþ½ªãÀ Òq™O÷ó\ö3½…€ NâÆ/å6p•åÖï£éÛhÎÅFo3 Wë,D`€PÄ‘ïM(MÒöY'ÅíâDz„Bf?¬øCŽ[Lré÷•åÛÊjt‰Ý‘'gÊ3í’È–®µƒ®:U]—æ‰à2Nä(—µÞQó%fi­Kûv«ÅgÙœ»;¼Û o¶ØóZPæC¶:‘]/|æ»óaÛªîvDEwUðƒ&±åŸë拨j[‚'Û*Ú ·×ŸGÁvTígù¥çŸÑ¥Í6ý"¥Ð%ªK5ÒÞU]šÖxÆ0ßËßÏüÛ´NäF”!Vü¤Ì'_„ô~C³G!…Jê•@ßVwJœêª­¶Õa.2.‹me¼´t‚ÿ´zƒm÷Y+Z}pb˜…øòdÃ0`ÍêJ[…nŒ ¾ Ä‘£ãED@¬'þ`ÇpÚb‹îF°C]´P‘«Ò)¸D½÷6ªµÑöŽhrWWGØl¼ŒP8ûªi©œš žf‡šbsÐÈèJ£šMõ’{Ù™ Pð¸^¹×0˜WW0`=Xºj ñ% NeÄû\W‘?•ãQ7º~&µ!õ´>Ð÷¸>n"„Ø„ ¢s/6EK•ŽŸÅ®Ð‡\øZco¢S :!i$ŸuþMÜ'û kÊ–…êv%&ÎÑ8¹>4"·1„œZN³vS³½Ôn0Œd ÊÒ|,Ñg§óæP4{ûœÀ=’9âe°l‰»ÔµÕ.ÖýZNw³¯Îð*ÊV× ¡–êä5f@59Á¦ðØð?z&e¦ì›Ü!X0á$ëͳ’)˜H®Gc,5}ú“ÜÂ`TL¤­)Ðf 6ü­µ‚úWÖ™47Yg£×¿LœS¯¡PõéPÕ9X—§ZPÜeçC+žMPÁ!6=œ5ÅõR’Ûí¾hnº4;†”í„8•†¯K˜Ï¥úR$IêŠJÒ0¶a+Ü£2ë;«ë1ëÕ¥x‡àÌ ÒUš8¦ò`B›š5i“™¹%å`.ö|Î%d9¢·5yUéø”ˆC¯ìÓœžr"9óÛ ÇPùH=,¥Ò±ûåýwfë -/¬…×y»eãM¶ý2!É&;öLül¹0Ã͘«|¯Ð“V0Â;t;M_0Æ~6Ý•eˆ æý±e’©E‡Ï-PJ‘jÚªÖ]cŽñw2"ɘ^ìàeXf ½À½pC4ËÀ}5”‡­zꬢmPÌ ÁÌßÍQøøÝ!ø”ÙHRXy„#y“š6k‰VHxÆ@XOM6ÌIç¶>ìÄe¯I”_z&Î%hÞ1öÄÂxNv: ã€ëÂèºsíþ@/”M5:ÛîàG,ȉ,Ò€v!- `Ò5²«ê£}¥d|øÚT;»Ëµš±ò®®¼š§*mö¥Š1 ¿™Û¿ÚºYÍ”%¡>iBPI$WÔN¾¼ã…jþdJ™ÂPüùãGȨTŸ:ÀBWN ¡O@¹Pn?x­t]dH·Ùe½—¢&ú=ìW\3ÓÜxçÐ:F¤O‡jƒQ†j &Kž\ðõßM³<«”9/%kíLCÍ+"²âG=:ˆo¬¸°æ"åGưo†«Èз#cy>n Ÿ‘önbãéÌ|.©c ³)÷)Vtsª %;·K‰·_,$Ÿ¯èEÔR#Þ§ùÅá2ö‡Ä“ž‹{Ëc º®Äaeì)˰£vèrr^ÔxþXXïÃÃ/· ÏÇ礪øÈ >o4¶¶øL + ©v-Úý „cØùŠÈ89‹!;ÒèøÚd˜²á qmnÙÔ|jF–G–k­ e‚¯®¦4ª%$´™Pö˜¯ýp†ê‰#OþVjž¥ÐN¢Q“Zá'cxQ5¹! â÷œ£—¦  þiàfÞ`` Žä- ¹q4úzT#$Ö¦5²Œ_!EI°RÛÐrw˜)¥ ïVÊ Çt™ëƒÒ#øï¦Ÿk›žd<™¸7U1á~.nù¸Z¨@M·ó¯Ú`Ù»¸ì !Z† #Ýà)LùoL¯/¹×AêßÏ”Ð^ €27( Âõt*ìà2DËÉð…)DszìzÑ›´Ó‡!¥ùÓdº‰ÉfÛž³ ô¯ ¤’Ô òFB(µÖøf‘ùÆîÇg5XÍ%Jþà)3?ý~‚ï»fB=ÇÓÚêÙ´£Ó–G¶jn攜 flj5YìÈĨÓÿ^n» A¾ïSì¥$¦‰‡Ú»&6½·¾ÀvA!Ah,ˆÏÑôûÏuªWº‡awæ›ÿx":  4­âv!¸%Jø»½}©ÒaÄ­O«4ZÞë q2óê„û>ͬÈ3@G¤ûk¸F•ú¬ãÉ?K«­Oœ˜ñdÅëÊ×o|>cá£wcà`¥­Ç¡Ûàl7çUTBÂ~H¦ðiñ Ÿzí»†*­=·ÍTH—Ö®Ýãò¦}´ ìSDäìTïšÊîÑ ·‡zoÂPÁåv‰ß. D:ýXdÝ‹wW@Êœ4WgY®S¯í•ÚÆBŒàõÄÑM¨Kõ1äÂt#Ÿ(³Û4?ÃÜsBüpQŒBÓŒ(ª²D¢š÷ˆ…lbô[0ÄÂ2”S²6 cÒ/m^GäÚSÐj%awhí!»nÊ—I;À»éòÂ寉‹ ‘ŒGÂpv>OrÊNèãÚ/~ã2º¢JëŽ[©Ó×µŒ,û¬•Ö>¢û‡ä#ÇHöhNª„$_ ꛱ǙÂ?‘.ü7Z¥µáVp%©H†ÖúÄñ1Ey_LF}Ȩ-Cáy´—™gàå¹ • Ÿmãó—kP¶½óI©ü¨_À¯åš•l@W@Ûu6ø¯.ï?=ŒSçm/V“ÉF7 —R¼Ëè†lÌ£X§o7ß.˜6r#òi'¹ÏJ˜AfòзÍßxZ endstream endobj 622 0 obj << /Type /Page /Parent 761 0 R /Resources 633 0 R /Contents 634 0 R /Annots [ 623 0 R 624 0 R 625 0 R 626 0 R 627 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 623 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 288 602 296 616 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 624 0 obj << /Dest [ 159 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 402 552 428 566 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 625 0 obj << /Dest [ 166 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 329 503 346 517 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 626 0 obj << /Dest [ 236 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 395 425 422 439 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 627 0 obj << /Dest [ 377 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 432 425 449 439 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 628 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 491 376 517 390 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 629 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 477 269 503 283 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 630 0 obj << /Dest [ 184 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 419 140 445 154 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 631 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 344 105 370 119 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 632 0 obj << /Dest [ 490 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 380 105 406 119 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 633 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 634 0 obj << /Length 3194 /Filter /FlateDecode >> stream H‰¤WË’Ûº­lõX‚©M‚ïÊÊW²ðue´³³ HhĘ"’š‰ïgÄþÿfN7À‡({ìªÔT@<ݧO¼Úm^ìvJøbwØø¾›e™ððg›™çzA DF®—™Ø6/^÷‘(zžæ‰¾Ø¼x{~ƒ¹ž‡ŠÍvl>m>È{gën*?;Ês}Ùäç¡Âò]{)ŽïóR8[åÉ¿9˜ƒA‡¦ ÚÙÆøíyQ5Î6s3ùàø4$Þ^ªÒôhZ©°¿¾ûž¼×E۔ⷲª¶Î?wßü¶Ûø¢›4u£,ÀE|×W¡ƒÐMÃPÀÒD‰No›W»g¤nª”îOwó3º¦g.øº=;ÛÆá†X%;'Äÿ Vyn@†SçÑ¡ÿƒ1êÅ_­ÇC7ÀY»7´U±‘rvÿZĶefØ84äCm‹Nм,ÈÃØ çû™Étr(sòb,ÙÝwä$r³R‹…kM2OF¾·Åî^ꉭxI—R4”¦‰'¿%®B¼Ï:D;­KÓÉÍÖÑr#OýÀÁ¸[úS¬y™«¼8}­ü…¯ïµÁMßvÆ““³”›^9+œ•Zg9Û(=¹;j1´gÑ_€/Ü[Z´1µñÑ®e§¤ÒâóÔ–—Z߉§cUEÕ‹|_Ó¢×M¯ÍõV_l­ˆƒI§Fs"DÆœàP˜Ä¹ƒó"i¾zgK01 öHüagçf¤ç¶g`›9°™w±ãÂ|êÜd܇“f<ÈêŠÑo6ÛŒ OÕ=ŸwU^‹7ú±*ô5B#7J-€)+ÔtgjZ§>ÐóR|q"¢ëCN%«Íú+þávU3P¶§p=' °WÒT>30>¯<ðļñ–½ÃPFdÈÓXplûA\zòE,«fÜÔŽŽ~ð=  ØMÂ%‚â wò÷[¨ë»+0Â2y o±‹Šg(˜‚É£q˹k‡¶hkWˆwùI—bÏ”‡»äd/ìô9Ã"¶V˜ãŸ È3³›²ûjèÑA!ª±Ùgx ‘w抻?›£³™±¢m‰P"ÂN0~‰¡:™á;Ñ>šA(“&M쬧ªÓ¸ÅGÉCïbñv°ûÇ«ï„éD 2iÚ ·1³½Pœ|ƒYâKþ&i’ï„K¹H¬ÑÿˆÑûû«ù%\E( Àýj„8áë¾9yzK޶^FJŒ“î>A˜œO,™€Çù…ÆN&nÃi0Åçƒlô£îDa;gn­kàâ˽6}´ Îë¯t o Õ„n>È.7ÔÜ» «(!övy¸ôØø©Ž7>…)Û¹ŠÏE\|‰ærÚë®w¯Ý Ä«EÞLkÍRÂÆ·¶ØE#íø-#êñ§¥j\ª&é@lÏ>çt¯Í¯xw1#'¤´ÜÛY¦^­ëBìþ2«³éjÙDQ* ‰¢. Î!ÿû¢é®æ7yßW,c|, •­Áð6ÁWi¾Ä`V´öSçT0L_SÚÆ£ý-/tj±2ßÓ™—È©—&>t¶†k4]ÂÖ–IMq\óf´XY(F¶æƒ)KqMxŸW%ÏÓÙzÏ^ßæœ?sÞ “Bª?t¹BGèú×49ñ$ÊËóY('ô®qkNÍB¦ÅÏ”þ±€qŠè5z#ª}¼øƒÁªrC7²€`»*—*tãtU2ƒt)Q(”‰Dp‘Šú|#STºL–9[ü ŽqÈÂC£èYáAu7°ÅA°t9ëÎÈÏœYe š„íÓÜW^ ¸îl×’¾ÁÏžõK¢®õ‹?ëßbŒ¤W ÿCsÑÅ©Z0!·›3APiŽpŠïšb ,ufˆì0 ´3/üÑ,÷%™cv­«c‘uE(5!ÏŸ>Ù)fóúzÁ9k8š¬‘fáÞôUËS3ô¹ ˆ`\8r¶ÚÄX#eí/ÃÐ6(Ë—A4€ïÁ0t ë?:Èj.ž ³è;èZˆ1v}8G!4X&éú æ^„Ÿ,ò2žK}<‹_•zòw.ùPI-Õr„“mØnV¬,ãEÇÀ'–”¡lŸñhúê‹]d>¹ÈÇcÅírÓ†z7ÕfvÁÿ¨þ´ÄØ`FîëOÕ0˜Å¥ñ´f°&ŒUú@åw"K ¼·H›ì޶S›2Ú•¢ê!5§XOþ…¥t1|¯JαßÎÁ—‡.?!ÜBw]Ûõ¹©’Ñó‰d4fݱ%æ¢Ø®H °K ¢w’$›Ð¤©‰ÏT9vç]Þ \µ°‡¶^ܲ+7Þ xÀRóØùOZãDã¶€üC^Dßeßk”Ëfp½òP€Ùõ)\O’#”ÿEyònÊVxlAøLAë4n¥üñU‹|/Ž]ÛTЮ k$#Ъ냕ü‚­fÜt,I¿.èöN| mísÕÏS.È–\>81<Ú9 F’¸ŸôíÃ3¸}6¬r/SÄèDˆb?tí'M…·5Ué‡ g›§s ÜsY1¦HÜ…i0ylëGC+ȲsÕ¸íã·¬}—&?Õ–¢ˆÙ·$5é}Ùð>ç¼¼£§g_ík«lD14XûXâÂìÃë«ÎëÍóŽô>G‡NiOzE®ádih,ÍOíHkü8á4iD]f¼<9ÄÉ[úÝË'Ô‚”^>}ñ=b*CȳÐJìö4^Ûµr ò`³Bü\ã%·FJ¼”¢F5 DaZ¤Xí o¥WJri-²™uκq×ïžøöݳ”ÞÊ ÒYzÓ~ìjXyå$@[7ožÝ˜ùÿ‚ùØoQŸn˜ó|üÜW4š)ŸîÅžÁ³ÃÕ,PÔ(‚ó³xKÏGâLDMöj6FÇ_ëÄE9_ÊFÅVV2eYpTà‹{„S½9º.8WAP“Tþ˜¯™ Ë¯Âåñ Î@¢Ø[@ÛW > •Z@˜Øx°¯Â£E=¨âtÒe•º¶CãtS @gþJõÍrÉärPÚÉ ¼´lmOY¹‘õAJ$ $›1H>ygê‹uh«u)•µ]ÛÒ ˆ£Ÿmm„÷d(ZBÍîñ]CkA®×d’LþOÌÕf~c éfE ±-=ÆàùRm9ÉKêîM­Ém-¤Hã``S€duºÔð>êä•-þü\ûÑ\?h”ësº‘INÊJÄŧýëÄ\K É„I%a}Ê2'§²Ùlz¬ºá²LI\V¬N†˜X‚\MµOÅÓc(&ò‡jzÚ¦²oo’*p£¥4ZW(Yvùƒ°Ivóz ž+¾r¢ð(üšTRôšTÔ‚ÆA'[ð‡’H.Û0?GÜÎ8Ü8#º¡Gèèè1týìÿöÀ‚‘nø3v=uÍø\°äîÕ›5myñÏÔLgžü²k¡ Y#›üì }ué~âõ(eš!‡~Ƶ}z±1ù@ßçç¡*z“=Tù—n8Ž:ÈîrÄÐ)'poj/y]~gæ ,uíˆOI½Å{Ç'é–s’–«°ÒÃÿ^-¹ Â@tßSxi¤¦ª q€öY¥+DŒ@JÂ$=H«^¡×ì›c~M»I‚qìñÌó{oþÈ=Ÿ85†ü[×6çatK8úµ)vô½nÊZÆ^”.¿ó4Fmˆ j¼‰ºå¹à©íÙµÞùq9%½ZÒõ$¤Æk–¥ÀhÅŸèru‰Æ•Ä„Tâ×%"®”I."¡håAâŒvDÕg·MúÚð˜ùU ¹¦ì¬óû?¢RBqð+‚A íB¤ì±ËŒ&åh{·°}£ ¡„ ’%f´~ÈÖ«‰Ÿª©ÐIŒIN$¿jèHyjÑÚs¡|–ÙŒWîy¯Ü¿@…!þ?J…ãq/ª®ÅébUë—¬üœAlá?}ù7`)¥^À;(”ìØ“ÒÇ´g)Ñ[§¥Ü •Ü»ü\ò’pT’L4ÎØÛŽ• ú ø ª-³ë!$Öè_ " …Œlfz˜|³ÿ›¹iŸÅùäæò¦2Üß}ÝGrÍèÓac¨sK$ŒÇõ}΂­ãã'“×LÞL’Ó}¾@¾Ñ(S)é óCí=†Ñ¶Æ¶±™¶ˆ³)vöú ÕݹƒÌC…òÑkí[WôöH¡­T¤$Ê`æ²Ï"¬ÞãF°eÈLyøîŒ!1]µ|ïCkpZ„êfÁÉÌAL’ŒÎ{¢{õèBqŸ÷w? Ã’É endstream endobj 635 0 obj << /Type /Page /Parent 761 0 R /Resources 645 0 R /Contents 646 0 R /Annots [ 636 0 R 637 0 R 638 0 R 639 0 R 640 0 R 641 0 R 642 0 R 643 0 R 644 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 636 0 obj << /Dest [ 372 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 208 650 234 664 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 637 0 obj << /Dest [ 358 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 465 587 482 601 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 638 0 obj << /Dest [ 377 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 266 524 283 538 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 639 0 obj << /Dest [ 130 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 202 440 260 454 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 640 0 obj << /Dest [ 194 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 435 404 461 418 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 641 0 obj << /Dest [ 123 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 252 341 278 355 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 642 0 obj << /Dest [ 188 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 469 278 496 292 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 643 0 obj << /Dest [ 109 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 380 135 406 149 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 644 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 306 86 332 100 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 645 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 646 0 obj << /Length 3385 /Filter /FlateDecode >> stream H‰„WM“›H½êWÔ±Øhaª æÖ¶g&¼1c;ܲ}°÷@C©Å¬, nïßXû²¿`nûçeVr·Ãަõ‘™õòåËç›Å³ÍF %6Û…R~š¦"À?7L?C-ÖQìI˜ŠÍañìE‹¼ãièòų_o”¸ë˜Ø(_,‡áÃ⓼ñ–*ôùO¾’UÖô%–oêc¾{›Â[ê@¾ò0=šÒo¹Â³ÝfyYyËÔOå§è“øõXö¡•kñTj¥ycòº*ÄÏEÙ—u%¼nþ±øy³P¢‹$ñã4„#ÊW:QùI XºÖ¢5‹íâù扄‰ŸF:!ÿÉ7•’›uðEÝxËÆÁC¬’­áo «?$ÃéåΣ¿½5êÙ/.â‘â¬ÍKÚ*_È¿y›?&÷ÛRûÙ4âC݈Nš¢,(ÂØ ç«Ô_!ˆtr$3ŠâJr¸¯(Hf­'3rß ðu2VÁ»I –âšœÒô)IÖüsík!ÄÛìΣCŒÒº$Ãì"k?ô#†oɱ¤¾Véëp µÜl~;ž†g5†g僬ã@^W¢Þ¦½ÉwU½¯Ùë®Æ>9npf;|hm´Š’|dÙg{‘—m~,ûN<ìÊ|'èÎy.c5Á¥k yo ñPö;‘‰øƒ ÍZ,¹ødg8ÚZ;›úÆuǦÙ¤ýØZ´–¸‚é âßåÞ Î¥ØeÀ:Eë2ÜJ [–kFíaf{Š[c73•=2³?+»79pë ;¬xñû››+ëÌæï°—¢ïÎÌVzäJŠ®ÏˆY[°‰Ý±½/ïMá Ü×õƒhážnu‡ÏÀÝ•(J·­EßÂ`GR%C$iD‘ì°$Â|.Y€‹ÉöôªÃ…ÁoÜSÖÓožçfØéÖ*û•¼Ëx¶G¦Qoù½ñ°­˜Û}÷ÃëB|Ýli%ƒµZ.í—{â&œaø§xÜ>ÿ›8wÎe;ãþ³ü3ò¢Ïžƒ¿ ,þÁ™«)÷Ý%…èÍ“(T1ÏÜ|yyžJ˜sF6ñˆÒø”MÉ*›¯Œ1 ¸PVÝ¡ìÅˬϾ‰¦t³ÇÔw7K¬nÚº¯ózë§ 6_±|É ¶^ûJÒ哤 ÆBr¯»k™}-Þv©íi»ºëÿ °™¶¤œ¥y_·þ<¸9øºî vÈú+Á†—(êüx0Þ8kCœƒ÷Uv@’lÛú ¦öáØSŠ4uYõ€¸/ÍÃOâŒ}%z 8âHF²-Mçhq}›qT)áéà±`øì¹Rrºì”/ZW¨õ Aï¯ßmfÔé'áä¾G$öS­\DpÐ5°I„Ò‘ÅJÖó#Mö˜øI¾¿±Eœv«ôÚpŠ45&1[*êv†bå‡C•¤r0-½7/<:ãÕìå¯ÖžðIúž õû ”Ôv€Ê5ù¨X¦¨”sSæ;J^ÙÖU}tWóÎä†Vˆg6¨ÉjÎïãqÃy›ñ. ˆ×"ß• »É°uÅ••òÐì ®›&%de*Â,OHÛ›{³Ÿ¦×› ÅçPn êµl+ñöÅ•Å5þ÷̬Äðš6lÊœ.+ät^Ëý~üÌç9j´S„ZÅq s_憽8K¬Y–æßÇò>Û㺚 {NSé9EEjŠ#N­ ã­aʶ¬ì ˜]yäGñ $šÉg¥ëA ÜdØH˃á‡ð¢0 ŸèG–§|t;ä I7%ÄdbTkÀ0àv”W´y"R)Žg¬»u±r½oě֋I_~T=„ãŠJ= `g.¢J‡—¹‘chÄD°T‚¹öòÝ}=6ßpWTPCBÎÊX#oq12gxEa.DfAÈf@Ý\™ Á…̰3XÔBš¶È­H"xiy ùb¾8ùDZ‚©ôÖìJˆwšÝ×0Å(ÒH‚^I„:Z4Bî"ÿqo@ä¾ñ¯xÛ-áÝ4G@l‰wÙ&Ùö˜éú¯qÅv ˜ý–òIÌ´+³µü‘ù,ñH™Sà‡ºlÐN,Y_¨à³œƒ/öÃxRÙ-‹góþ`ù5MÉD‚ ä%(¡ÇãïVˆW?¿àÑ4þ¡ÂN‚)ÞØÊ˨{ŽìŠä‘BYÇÔÇï²bôQ¤tÞ—ÕÙµ‹}ý°@ò ‚x‹¦Ź<–]ca¦)+/mǺ¡­uÅáÐAËÝ JÁPÚ)W‹­²z^ô܈ ø€ýHçaš 'K= ¯x}´ƒƒÇ`¼µ¿H—’˜Z(ú‘ ã¶÷Zôõ²ÉÚ^TÇí“H­( $c¹µB©<& j|¬œn¢(£…àœ"÷[„«£ìµU¥vÓ¶ž¦ dáúõúwq#w‘¶9µ ÈfJÿfǩ̀2pT˜®´=7)€Å©½àæÉ£b2kLi9Ù–íá!k Ò2AÏ•IzÖQ^x"Ä+[’Á ɽ³Å¬åøYu@íS2 ñ¢^øÒZñ5òãoWޝ£o\¦®›ø†‚<Õ6Á¸]ÀÛÉCö²Š²‘*È_Ä~œ\ʵ r9Ó¾Æ\ýµ„ Ÿðeoì,¤/ ‹GÃ&vY“Êʉ:’X±žÆv$ÎdÿÜft8é$YT 8YE|Ùý\ˆâ1´K£ì%¦çìŒHèÜ÷öµxî-8é>öýwêr¨&ޝÇJOá.G%jWŽû Ø‹!âøQ@ª¡ÒðXÜi{®›übG °Óí‹ZÊ(Gbéöð¸‘JL­¨;Õ¦É!÷T2ªÎÔzŸy|çÍEÐéšÃ"fÖ”¢jDßBÑfw`¡98MåŠ0Jd7‡A>™eÕõ]"HåöœO ‡—¢;÷˜†9¦{(û|ÇéÉÂvzœØ›ƒÍ#}5CaÉ8ïh>±›¥6|ÚѶ&sâþ)Þ£°Þ—nG ¯,8ìÒ-¨èjnXEŸ5bˆÚ¤QžUÂJW®@†4^摺º7 8C"Û£0Vs÷¤Èlæ{r{-ÿÕù.õO—IN65f…VCÞ‘úE7ƒ¿J’‡79¿°¯kZÎý¾¬î. 㔤Cçcœ„ÎÇÿY…C…ý’©p]é…¶êò¶æÓ†Xút]2ïTœ€úéZ{XZ>t3s=+7n¨B´JŽ@4+òæ`M‘ÿ§3! Ó4ån¨"\”¬…¡¢UH+×d‘&¶¤à µªv¿©š»Òõ{ ¯»zÛ‹V¡³>HÐnÕÎKëÃ(ñW ]Ì…õ6¸Æ-S—.\VDÒæ$•3à@ù¡.É>(ÍB›4 ,¥|¯–Ó(J-š§a2ϪlN‘òÆ\Êj=¬ìÜTãöï®Dm3”îð;Zs=ÆÚ1;²‡—ÚÀ¥ONǤ_éÚõ_”WËŽ›@¼ç+8bɶÌÃ`”c”crZÅ›äÄšñ‚‚ÀKùúTuóÆ^íÞ`˜G3]]U}؆Aø¾{sFÂÔ»hüÐR¿t„°ëPÚ£:ÀÎë1$ëûÓ£tî#ì~øPT^°ç*o•½(Ð|ä |Wí£õ­DÛ9ãû`¬;Nãû]@Eý£ß(Â`áw[ï𦃎_ê2‡ÿ‡·NqL«wÏÐßl&nkµ˜í|¬Ê\ʪ¹o焇gÑñÚC\OÏ8ÒcFR¤f–Àž¤¼Í#f>Æ/@ˈM¬°EØ—îñi¬ö¹V{aÝLžS"ž×Öϵj=¥âûöYÿoÑjº aB”÷²þ#ί‹´‡ã†ÓéõË9Œ¿câÏåµÚ¼Ð»Ñ ÏNe"4U[þ‘ŸðœŠ‘µûÏ…,±óJ$—\U‹Ë› êxJq!(gÅ'*#&VD›PÔA—äÒuiÏЦ6E;p2mÇ„ÄÍyeŽn³E·co× W#Ž[–4)O%„Ιl RÛà[µ–Á¶‰(åË™0L‹0«^Ë‹äð–,©†í'¦ÁíÃé”Î@Ì¿§WÀm <…´'Þ“z n ù.0‰ïõ“²Ž¢¹˜Y·âlý Ž£ÇQ‹-Z ÓTÔüȾÞÓüÃØ”zÃÁ¸§WSÍÚèŽÿ޶ÃSï³$=g€ÿƒK}¶¾”e•°¹õàm"a¶ûƒGL„ýýn˜ÖåÏúý5Ïø‰gfpu³Âó{Ýr3æÛ,a«c°Bd°ïÐW¸Ž-¡Ž ¼€+™g¥H3£RŒ ÿ¢X¾å:`]Ê:k²’ë `{å–Ÿ‡…7’Ýõ÷üܪt°u¼y1 ÕÔŸ—7ȸV·bÕò0ijR#uC¹Ñ!Ø!“¼š®Þ´¦q#¡(¦ê0<±‘2þŸç´Ó'ÇuöÛÆÁ•*K¤ÊXž\m7:b’¡jWôbÏ–a{g¶¿>}ú/Àï2ó endstream endobj 647 0 obj << /Type /Page /Parent 761 0 R /Resources 654 0 R /Contents 655 0 R /Annots [ 648 0 R 649 0 R 650 0 R 651 0 R 652 0 R 653 0 R ] /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 648 0 obj << /A << /S /URI /URI (http://www.synaptics.com/)>> /Type /Annot /Subtype /Link /Rect [ 197 410 325 424 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 649 0 obj << /Dest [ 105 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 374 656 400 670 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 650 0 obj << /Dest [ 109 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 358 597 384 611 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 651 0 obj << /Dest [ 490 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 90 101 92 103 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 652 0 obj << /Dest [ 126 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 90 101 92 103 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 653 0 obj << /Dest [ 233 0 R /FitB ] /Type /Annot /Subtype /Link /Rect [ 90 101 92 103 ] /C [ 0 0 0 ] /Border [ 0 0 1 ] /H /I >> endobj 654 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R /TT4 774 0 R /TT8 787 0 R /TT10 791 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 655 0 obj << /Length 2843 /Filter /FlateDecode >> stream H‰ÌWÙnäÆE€<õWÔS@"Å*îã'4ž8€ éŸÅ³zo;ˆgÉÁšâ'Žƒq=p£Hª‹õ¶ã éñ¨È¥ 22Ç_0§(íxSÙÉJjp!£DU”ÍPm xêÅö15€pŠRè(_܆>Ûé}3½[ÝUÿà ÓÍÕbS5¦û˜x6&£ØiÌ#w:‘ÁБÊM„#ÝDž`1>á&¿·Zw«!' {‹–Š“üøÌ!ÎGÇV˜kŸƒò+=Eˆy’ãšU“ÁìG©«û‹ÉŒi2c y‘%Öˆ®bÙJ(%0ž‘JXê/žpeñ"‡£szËè·†¡˜+­îY˜ô†zÍSð{ÅýžÏ¬³œö+Qëƒaò12œb0…À@÷ D.{‘uÁ –M ÈÇ0sg+æÅG= z'ÊâS‰¼ÀO- 2ÐåÉÊkÝ—=Nd;>ŠÁ ©Û¾/»'ûJd ·´ŸõoaÁmÚJçwÌâL½Vlj¬2ë` µŒ]/Zh$‡YPtG1qTäBþé©üoÅâûÿ'±à=úÓý3±ˆ©F¨ÔY,BS°HáÇKbñ\vÀf êŒÌtpLÙqßÿB%‚hÜ>áîþ"~”%mU'¼„æò˜ræúˆ&ï{Öhö»²«rf o±+[Ý äC0PQˆÄm,Ûª;Ÿ\‰ùšÛ !‡rØVùÖ|»2ë÷P{¸¾Ð “9+„ma;V%8U° ^:/5§2i9‚ŸR¤$Ÿu•TäÚ4‚šçÜNþ“=í0˜£‚UÙwC9²L³*^rm 6èƒÇúÉP‰ Z b0¾te“—6ƬgýzC­àJ× }B×WWƒŒM˜"PIþèœáé!˜‘ššâ>¹Ë—3Cùå¬.ÛmÕŠÇ$*ë q¯‹} ñ½äð x#:ø”â±%ôÔ¼ÚÕ‘ÍW¼oŽåWú®ºÌYo«æx-p¨óZÄÆÇö|%ÒÏ/¬p_5•3ÍÍ ¸pªá¾õ‹–xÜ\¬Â˜ÞÏÂlf7,x¤›i8ùÖSÇš&5 è.plRñ{èY2Mc÷”!©›¼RjšhjÆ|Ùqå¤v¢6ïÊ|›5Ɇ²P©Üa˺ÌÓБ<öÔ©3"Ò‹îÐ@¹ko¥÷ ìw„sv*0t¡zåX¾DGª^-M—â|×U æâæá›«$|„h,:r ’\…: :Ô…AxBSP*ÓðÄž°éZz.šD™I ÀÚel6#6M¨zh\àô­Ý=+~U3”ÝÆ4å Ì­„ê¨,ýLAòÉŠïÑUTÒP²"ä²f˜ŠŽû?c•K°Êõz30~ uÓÝEFå<Q¾øÆì Õtñýš`°uÖGp[øü‰•?½£ð ú|…É_Vµ0Û)znµ¸We½¹¾>.y6>c2®êšÚëÝx_“M2 DÁRÀ( .JBá©¢éÂv~Oó<õc"•ßÔð¯ÏÍ=–‰*ñ"·¨†—÷ ê…Ç5&˜m/œOá›ñà“qÖÆ#;ôZWñÑP]–~9ÃËG` {~å¦+LUzbn<²à9ïˆrø ãÏ®žËíŽs²kâ D!xfm3 ±_KÏš·=îÎq>/p™—;îæœ2ovUÞäª<ãª>4‚"¶eÝ’q‡LŠÀ‚ ’Ï®0…>ô´Tâz>±ÏæQE`´Ã$~‚±$Ç~¨cÜÏ)ìÂaÂÁÌÇ1æ5òñoµâÛõ˜‹Pg(SÈÆ~ÂÁwÓø‹ƒ:^°ðM¹ò°TPF·Y/öæ;ÙÈÌÎ1bÒUeSÔ$£`‹9ú¼«Z–yŒVjWÛe͉Ä1&q13—r’û‹’òJ`Ÿ¬[M&ÏTГˆšûF|{"™…oÚ¶6uZ|«Y7è°G x9äî¹Yûažl¢?ç®mb@6Q.mbÈÎ0"›è/£M çl"˜ ña ‡-^'`ïlñv‘ñÃë¶ÐÿBÜ¿*çp€ú`ÊöÃíÕ‰GIѰŸéëBÄÅ×°‹”j ¤ló•sTR¨B˜ìâ}U×ûCy%nŠ¢2zÜëÆ¡¬ âÈêÙL£*Sµ ÆÈ'®Ÿ|‘ÉwUŸïûÞ\<ÞR^$c ýðVbßÃEaßäÌÉ'+³…")$ÝHª@¥~ÀÐÄ#S?j´ÉÔ˜Ç:]×ã ïÉb®æ0Ï6£™3õ“MEÖ= Ñ%:ŸÝMêý'2Uuö"Þý37à¥hÑÛ÷â®|f™ ÇÐímxnoç˜b­H~Æ,v_åÆZÎæ%Fß÷Xò—’ìåì_Àì¤'¥ËØ¢;Ã)ŽžlH ¥ ˆ…y…sáv£Ñ?±M$–@~L(ûÖemPúÑQfÃ-Àh56;0¾(ŸÇáyÉSÿR÷8Ýÿ¼pNìù~_X’ Aåç{ Bµ,¤êésÁ(ÝoQqBë_Ô*¾ÎvUýÂÃ~Ì:dOršà¼t™‚'VRPCÊ„*V2=.PLÀ)ó"bL0fÞÊZE`Wl:Ýz´…?ßéÒ,&Å´Ý0ñ T†%Çþú~FæçH|Å•ìŽ1°8•„ð4±‚Ù âÇ~¯!©–×Û ´1Þ¢¨w9hÁõγË>õº€˜ÄÛðŸ#ÓC OðãL»Hý00²—è8Y7‘È©y4ßœ=[×Ê#i‹ú¶îþñ¾\~J&ütþy² endstream endobj 656 0 obj << /Type /Page /Parent 762 0 R /Resources 657 0 R /Contents 658 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 657 0 obj << /ProcSet [ /PDF /Text ] /Font << /F2 780 0 R /TT2 776 0 R >> /ExtGState << /GS1 805 0 R >> /ColorSpace << /Cs5 782 0 R >> >> endobj 658 0 obj << /Length 390 /Filter /FlateDecode >> stream H‰”’Ëjë0†éVO1K Ž'3’lKËÞ9]¢Ý¡ ã8© MJ’RúD}ÍÎÄnéªp0ȃæòÏÿÙÅ,JñÀPÖ†sÎ@òÌa&¤<´±FJ!Cy6‹ËC ýáTFpèÍâvɰ9©%’A½©¾Â7óÏ.]Å“}wží¶{9ŽÒ^v¯ýã}·Wy²ÔHÒiÉqpU#ïýºëÇ­«2f»q¬)¸}WÓÍ ^zåÍÜ0ÙåÐï¶+¸^Çq·÷PîÌu1 #˜”°ÎAŒ0²CÄ#Ȧ­‡ý`Öæ¢ü $ÌÑ'õ¯Þ8«Mš ^î^\•d9q(]v£lEtq½|tz§¥73ñˆA´Ê•Žê=såéÇ÷Ýò”ž€Æ“è©2x¥ JX&‰>gl¢*GÛ)ÅÆžpÿQHŠÙû=ÎdÛL¶fªd:%‚ ÎÕ”×TJ-Ù#Üw§"ƒ Ú—ùóL¸öX“ÿoÀ-eôÔœþ0ú†+êBD† 0Ê[“¥ endstream endobj 659 0 obj << /Type /Font /Subtype /TrueType /FirstChar 32 /LastChar 150 /Widths [ 278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 556 0 556 556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 778 0 0 0 0 0 833 0 0 667 0 0 0 611 722 0 0 667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 556 ] /Encoding /WinAnsiEncoding /BaseFont /Arial /FontDescriptor 663 0 R >> endobj 660 0 obj << /Type /Font /Subtype /Type1 /Encoding /WinAnsiEncoding /BaseFont /Courier >> endobj 661 0 obj << /Type /Font /Subtype /Type1 /Encoding /WinAnsiEncoding /BaseFont /Courier-Oblique >> endobj 662 0 obj << /Type /Font /Subtype /TrueType /FirstChar 33 /LastChar 34 /Widths [ 979 979 ] /BaseFont /PBEALE+Wingdings /FontDescriptor 664 0 R >> endobj 663 0 obj << /Type /FontDescriptor /Ascent 905 /CapHeight 0 /Descent -211 /Flags 32 /FontBBox [ -665 -325 2028 1037 ] /FontName /Arial /ItalicAngle 0 /StemV 0 >> endobj 664 0 obj << /Type /FontDescriptor /Ascent 898 /CapHeight 0 /Descent -210 /Flags 4 /FontBBox [ 0 -211 1359 899 ] /FontName /PBEALE+Wingdings /ItalicAngle 0 /StemV 0 /FontFile2 665 0 R >> endobj 665 0 obj << /Filter /FlateDecode /Length 3121 /Length1 5968 >> stream H‰ÌV}PT×?÷Þ÷±»€,È"uÓøÖ'„À"ñ+*Xew…eL@0îj­» ˜EA:Ô¯8XMÁéL&$XS1­)~à¼c1ã4ÖCÇf¬¤MFkúAG' fªµNKÏ}v€iÒþÑ?úÎþÞ9÷œóÎ×½oö€h•ÏT.¬ê¬.ÈFíÓµM‘–‹ëÙ{¹demÛ.å\á©Sh» mmy®é'÷WèR€°å¹Æ=[ÿtî…@Únô¹«Ôý´ck À,´Ã“1T¤Ï´}ÀÆíóbM»v—¯ÖŽàúëll®8Ö:léaÌw­)²»…=+åa=}è¯ìˆ4Õ¿ŸÚ|ÀqíóZšwîºñrÔq{Kk}Ë3ï=¶`Æ<ŒWÿo×Íϵ,@ª%AznDéÛÅûQDâuè:`úÀ"„ŽRîŠÃ°Z ý"Øw/ü•ôÁ7 ÍJˆ¢=ŠÞCÈ‹ÑV‹œ1zH·Á_€Ãû3:@¯Ò«†µã¸‡It@F=wÎÁr}öÁ+h»7ùS¹úá!ÉEê"¿'£´µ„çÇ8ÛÑ»ëý!|&¤˜hä2ú¤ÓƒF-f¶vôBºiDá´–4’fÒJŽ`ÌÊèŒÚL;i/ÕéUŠÅa)]Z*7bOAvÈ£= Õ˜9 Ï'¢šôsBI©!1òéņÈ(Ò}Z@Kpêœ^ea!Y¸'nßD–ÖËoX$Œ-‚³AlXŒ]ù0GÖ\Û`¯Aûöã,¿Ç¡NÀ)ˆÃ;ð#žnÁxˆÓIEâ}-%ËɤR+9@ã<º&ÑKä ï`}×ÉtvmR#voVyˆ¥èuú3ú1¡ŸÐÏ0+Û¢l';ÉN³ì†P&ô '„ÛÂm‘ˆº1©t)CÚ,u!uËVy»|X~Y~C¾h›³°/7ö€ ØÕìd?t‚fìZé¼4 Ÿð>ÆÆ;á´œx‰Ÿ¬G ‘$LšÈN²;ÑÑ÷È[¤\À^>@úÜ"¿! 4è!•h&ÍOôWI«éº¾F_§Çè<‘ô2ýÞÁGèì1‰¥3{”ù˜©†mb»Ù!ÖÏ®²[l÷-YxJ(Ö ›±÷kˆpw’ŠLÌ—ˆEH1q‡x@쿃'zT•’©¤K3¥R‡t\>’þ!;äLy.Ò|y\-7ÊmòiyD¾k9k]em°¶ÚÜpž€L{{߯ÓýcºY*„Ù䞆çY*z)üÝ£Ér£µðêäj’‹;õ+xȬP!\ƒ l4ŠQ–$ }d§pœa~8 'å6r™…Ù(;)fK+Ìyң촼GËw±Òûì1&Ï'«Ä.ÒGKðn%Uðò¾Š™wÑ<¸G “´z,gI ¾kCtéßdç…^æÇqâ0{–€’!æâY!ž¥Ë–.^´pÁ…ó Üùyç>–“=OëRæ<úåGœ³¿”5+Ó‘13=Íž:#%9ÉfµÈ’(0JÀíSýaEÏ ëBŽZVVÀ×j‘Iа® Ê?ÕGW†›2ÕÓƒž[§yzLOO“ؕ•°²À­øTEß«*ƒdcUå—¼jHÑG y­! 9Æ".>¡ø²b^E'aŧûÛbš/ìÅxñ$[©ZZo+pCÜ–„bJº_m‰11ê÷Å)XR°*= z}z¹êå%è,Û©Ó+«‚>¯Óå ¸uRZ«FuPWë©ù† ”it©T—4Joº”¸ûŠÖ=h‡h8?¹N­‹|%¨³HˆçHË×ר^}ÍÞ‘¬÷ y«&¨[K Ô/A`¬=^Þîõ†x¶ôÒ`‡á> Ýgíq2Í—Õ ð¥¦u(zoUp²ÕÅï¡-pW¬ º°jÕ×­ð6Ö0(É*Ä"¹Ž·i6\¯ú¸&¼MÑ­êj5¦m ãfÍÖtX·Çu~vÀsiì×ð)ZMPué%N5ñ>ÏmÝžrR>ÕRàŽÛÓÌIÇg¤Ž É)“…ú„Í w.aÕ£&¼"µˆ®Ô*XIPÕiö2~«_Zí2tÃ+Dp¢ 8¿°f/â!fÛUE{xÔÑO§j"ã)Ûþ¸ÈKâÈ¡}BÖóóõ¼<~RäRÜZ¬¬ØX/)p·éj‹]Ñ+pdPćBE…8r—‹ïr× ¢¸ÐÛ«‚æZ¨óôÙ7mÿcà7`?;eöl䙎ã&þ“ŸÀýF&ûû¸í&Ê©ÿ6¶¦ëø|ßÿ–è4à·½Å<¿ ¾6 ϧdî¹±ïSãþ2!ÿbãkiÉTX4 ûß§"¡ßC| yòI`· –9 Ö²ê<Éà÷céiO™2HŸ<_¶Ù!ƒ‘³&;c²S&ë3Ù÷Mö]“0Ùq“•›¬ÌdkL¶Úd“›l¥É–›L2™ð/öË/6Š"Žã¿™ÝÛ™g¹+g¹p(ÝV…p¶ð@”î6hŽ„Óš”#Ä‚”’KQhÏR-Ù@â›UCцxöJùÓH¤µ ÇÁ!ÐýÒšhU´j;Î:/ ÷Sážî€pßî^áöw·p· w›p³ÂÝ*ž‘õ²N>-—Ê%2&keTÖȰ¬–!”RZÒ”\â-.2Ò<Ý‘béâ¥]”~£®øGGÃ8 ¾²­hH±bMšÒ¯¥bÅ–D‘õNã¬2ÊØ±#què˜ Æ*Gâ¾f³T›¸ßb÷ÔÒ™C_Ñ2¶ŽʵcbÙe¡Z;Ðêz­®ju½Ö;“¡5éïïxŠþ!ñ_Æþ5zOÏöœnf먤Tvãv­c|AãÙ·³©Úðþ ÞàÖÛ±ÞøE“Ø0-ÀÞÂaî  B«’«’*„K…ªÕ9ÏÅz×Ûñ‹lØ…ÑÁTâ»{›‘Ç»ÞÀ œ…b†™3ì$‘Y¡@Ř`7ˆ˳áYjû esÓÚˆyÖŽØyƒJyNe LßnÉ›Ój/-`7]‰\’:ÏËçýNÉ(Þ;Ü0tEUG‰Ï±lˆ,–s‚’7,!­À;Šß›]ÜJm¥Òl¤µ¹©?°:q8|¹uLÉ"f3ûIPà¿°Å¥¾€q»Äß-ßRh¥¾©R_¥r÷_l¢Iñ=Ñ%rÔöýÜãë!¹rôöÿ¼”qÿ„Å cK€EóÛäÔèô›I+¼ÒTó3Wç€æìJ%U8QV:zEÌ•3Áë¢ÕеþS€f;÷Ä endstream endobj 666 0 obj << /Count 84 /First 667 0 R /Last 668 0 R >> endobj 667 0 obj << /Title (Overview) /Dest [ 765 0 R /FitB ] /Parent 666 0 R /Next 709 0 R /First 750 0 R /Last 750 0 R /Count 1 >> endobj 668 0 obj << /Title (Appendices) /Dest [ 490 0 R /FitB ] /Parent 666 0 R /Prev 669 0 R /First 670 0 R /Last 671 0 R /Count 6 >> endobj 669 0 obj << /Title (Driver API) /Dest [ 466 0 R /FitB ] /Parent 666 0 R /Prev 676 0 R /Next 668 0 R /First 677 0 R /Last 678 0 R /Count 3 >> endobj 670 0 obj << /Title (Historical TouchPad features) /Dest [ 490 0 R /FitB ] /Parent 668 0 R /Next 673 0 R /First 674 0 R /Last 675 0 R /Count 2 >> endobj 671 0 obj << /Title (References: Other literature) /Dest [ 647 0 R /FitB ] /Parent 668 0 R /Prev 672 0 R >> endobj 672 0 obj << /Title (References: Synaptics literature) /Dest [ 647 0 R /FitB ] /Parent 668 0 R /Prev 673 0 R /Next 671 0 R >> endobj 673 0 obj << /Title (Glossary and Index) /Dest [ 501 0 R /FitB ] /Parent 668 0 R /Prev 670 0 R /Next 672 0 R >> endobj 674 0 obj << /Title (Old-style mode bytes) /Dest [ 490 0 R /FitB ] /Parent 670 0 R /Next 675 0 R >> endobj 675 0 obj << /Title (Fast PS/2 mode byte access) /Dest [ 497 0 R /FitB ] /Parent 670 0 R /Prev 674 0 R >> endobj 676 0 obj << /Title (ADB Protocol) /Dest [ 428 0 R /FitB ] /Parent 666 0 R /Prev 680 0 R /Next 669 0 R /First 681 0 R /Last 682 0 R /Count 12 >> endobj 677 0 obj << /Title (API basics) /Dest [ 466 0 R /FitB ] /Parent 669 0 R /Next 679 0 R >> endobj 678 0 obj << /Title (Sample program) /Dest [ 487 0 R /FitB ] /Parent 669 0 R /Prev 679 0 R >> endobj 679 0 obj << /Title (Information available from the API) /Dest [ 477 0 R /FitB ] /Parent 669 0 R /Prev 677 0 R /Next 678 0 R >> endobj 680 0 obj << /Title (Serial Protocol) /Dest [ 358 0 R /FitB ] /Parent 666 0 R /Prev 693 0 R /Next 676 0 R /First 694 0 R /Last 695 0 R /Count 15 >> endobj 681 0 obj << /Title (Electrical interface) /Dest [ 428 0 R /FitB ] /Parent 676 0 R /Next 692 0 R >> endobj 682 0 obj << /Title (Data reporting) /Dest [ 455 0 R /FitB ] /Parent 676 0 R /Prev 683 0 R /First 684 0 R /Last 685 0 R /Count 3 >> endobj 683 0 obj << /Title (Command set) /Dest [ 434 0 R /FitB ] /Parent 676 0 R /Prev 687 0 R /Next 682 0 R /First 688 0 R /Last 689 0 R /Count 4 >> endobj 684 0 obj << /Title (Default packet format) /Dest [ 455 0 R /FitB ] /Parent 682 0 R /Next 686 0 R >> endobj 685 0 obj << /Title (Absolute packet format) /Dest [ 458 0 R /FitB ] /Parent 682 0 R /Prev 686 0 R >> endobj 686 0 obj << /Title (CDM Relative mode packet format) /Dest [ 458 0 R /FitB ] /Parent 682 0 R /Prev 684 0 R /Next 685 0 R >> endobj 687 0 obj << /Title (Power-on reset) /Dest [ 434 0 R /FitB ] /Parent 676 0 R /Prev 692 0 R /Next 683 0 R >> endobj 688 0 obj << /Title (ADB Register 0) /Dest [ 434 0 R /FitB ] /Parent 683 0 R /Next 691 0 R >> endobj 689 0 obj << /Title (ADB Register 3) /Dest [ 455 0 R /FitB ] /Parent 683 0 R /Prev 690 0 R >> endobj 690 0 obj << /Title (ADB Register 2) /Dest [ 442 0 R /FitB ] /Parent 683 0 R /Prev 691 0 R /Next 689 0 R >> endobj 691 0 obj << /Title (ADB Register 1) /Dest [ 437 0 R /FitB ] /Parent 683 0 R /Prev 688 0 R /Next 690 0 R >> endobj 692 0 obj << /Title (Byte transmission) /Dest [ 431 0 R /FitB ] /Parent 676 0 R /Prev 681 0 R /Next 687 0 R >> endobj 693 0 obj << /Title (PS/2 Protocol) /Dest [ 226 0 R /FitB ] /Parent 666 0 R /Prev 709 0 R /Next 680 0 R /First 710 0 R /Last 711 0 R /Count 17 >> endobj 694 0 obj << /Title (Electrical interface) /Dest [ 358 0 R /FitB ] /Parent 680 0 R /Next 707 0 R /First 708 0 R /Last 708 0 R /Count 1 >> endobj 695 0 obj << /Title (Data reporting) /Dest [ 419 0 R /FitB ] /Parent 680 0 R /Prev 696 0 R /First 697 0 R /Last 698 0 R /Count 2 >> endobj 696 0 obj << /Title (Command set) /Dest [ 385 0 R /FitB ] /Parent 680 0 R /Prev 699 0 R /Next 695 0 R /First 700 0 R /Last 701 0 R /Count 7 >> endobj 697 0 obj << /Title (Default packet format) /Dest [ 419 0 R /FitB ] /Parent 695 0 R /Next 698 0 R >> endobj 698 0 obj << /Title (Absolute packet format) /Dest [ 423 0 R /FitB ] /Parent 695 0 R /Prev 697 0 R >> endobj 699 0 obj << /Title (Power-on reset) /Dest [ 377 0 R /FitB ] /Parent 680 0 R /Prev 707 0 R /Next 696 0 R >> endobj 700 0 obj << /Title (Serial command timing) /Dest [ 385 0 R /FitB ] /Parent 696 0 R /Next 706 0 R >> endobj 701 0 obj << /Title (Read Resolutions command) /Dest [ 415 0 R /FitB ] /Parent 696 0 R /Prev 702 0 R >> endobj 702 0 obj << /Title (Read Serial Number command) /Dest [ 411 0 R /FitB ] /Parent 696 0 R /Prev 703 0 R /Next 701 0 R >> endobj 703 0 obj << /Title (Read Model ID command) /Dest [ 402 0 R /FitB ] /Parent 696 0 R /Prev 704 0 R /Next 702 0 R >> endobj 704 0 obj << /Title (Set TouchPad Modes command) /Dest [ 398 0 R /FitB ] /Parent 696 0 R /Prev 705 0 R /Next 703 0 R >> endobj 705 0 obj << /Title (Read TouchPad Modes command) /Dest [ 388 0 R /FitB ] /Parent 696 0 R /Prev 706 0 R /Next 704 0 R >> endobj 706 0 obj << /Title (Identify TouchPad command) /Dest [ 388 0 R /FitB ] /Parent 696 0 R /Prev 700 0 R /Next 705 0 R >> endobj 707 0 obj << /Title (Byte transmission) /Dest [ 377 0 R /FitB ] /Parent 680 0 R /Prev 694 0 R /Next 699 0 R >> endobj 708 0 obj << /Title (TTL-level Serial TouchPad) /Dest [ 372 0 R /FitB ] /Parent 694 0 R >> endobj 709 0 obj << /Title (TouchPad Features) /Dest [ 91 0 R /FitB ] /Parent 666 0 R /Prev 667 0 R /Next 693 0 R /First 727 0 R /Last 728 0 R /Count 23 >> endobj 710 0 obj << /Title (Electrical interface) /Dest [ 226 0 R /FitB ] /Parent 693 0 R /Next 722 0 R /First 726 0 R /Last 726 0 R /Count 1 >> endobj 711 0 obj << /Title (PS/2 implementations) /Dest [ 318 0 R /FitB ] /Parent 693 0 R /Prev 712 0 R /First 713 0 R /Last 714 0 R /Count 2 >> endobj 712 0 obj << /Title (Data reporting) /Dest [ 298 0 R /FitB ] /Parent 693 0 R /Prev 715 0 R /Next 711 0 R /First 716 0 R /Last 717 0 R /Count 2 >> endobj 713 0 obj << /Title (The keyboard controller) /Dest [ 318 0 R /FitB ] /Parent 711 0 R /Next 714 0 R >> endobj 714 0 obj << /Title (Sample PS/2 implementation) /Dest [ 333 0 R /FitB ] /Parent 711 0 R /Prev 713 0 R >> endobj 715 0 obj << /Title (TouchPad special command sequences) /Dest [ 270 0 R /FitB ] /Parent 693 0 R /Prev 718 0 R /Next 712 0 R /First 719 0 R /Last 720 0 R /Count 2 >> endobj 716 0 obj << /Title (Default packet format) /Dest [ 298 0 R /FitB ] /Parent 712 0 R /Next 717 0 R >> endobj 717 0 obj << /Title (Absolute packet format) /Dest [ 305 0 R /FitB ] /Parent 712 0 R /Prev 716 0 R >> endobj 718 0 obj << /Title (Command set) /Dest [ 252 0 R /FitB ] /Parent 693 0 R /Prev 721 0 R /Next 715 0 R >> endobj 719 0 obj << /Title (Information queries) /Dest [ 270 0 R /FitB ] /Parent 715 0 R /Next 720 0 R >> endobj 720 0 obj << /Title (Mode setting sequence) /Dest [ 298 0 R /FitB ] /Parent 715 0 R /Prev 719 0 R >> endobj 721 0 obj << /Title (Power-on reset) /Dest [ 242 0 R /FitB ] /Parent 693 0 R /Prev 722 0 R /Next 718 0 R >> endobj 722 0 obj << /Title (Byte transmission) /Dest [ 233 0 R /FitB ] /Parent 693 0 R /Prev 710 0 R /Next 721 0 R /First 723 0 R /Last 724 0 R /Count 3 >> endobj 723 0 obj << /Title (Output to host) /Dest [ 233 0 R /FitB ] /Parent 722 0 R /Next 725 0 R >> endobj 724 0 obj << /Title (Acknowledgement of commands) /Dest [ 242 0 R /FitB ] /Parent 722 0 R /Prev 725 0 R >> endobj 725 0 obj << /Title (Input from host) /Dest [ 236 0 R /FitB ] /Parent 722 0 R /Prev 723 0 R /Next 724 0 R >> endobj 726 0 obj << /Title (Connector pinouts) /Dest [ 229 0 R /FitB ] /Parent 710 0 R >> endobj 727 0 obj << /Title (Mouse-compatible Relative mode) /Dest [ 91 0 R /FitB ] /Parent 709 0 R /Next 745 0 R >> endobj 728 0 obj << /Title (Synaptics TouchPad model numbers) /Dest [ 213 0 R /FitB ] /Parent 709 0 R /Prev 729 0 R >> endobj 729 0 obj << /Title (Principles of operation) /Dest [ 184 0 R /FitB ] /Parent 709 0 R /Prev 730 0 R /Next 728 0 R /First 731 0 R /Last 732 0 R /Count 6 >> endobj 730 0 obj << /Title (Mode byte) /Dest [ 166 0 R /FitB ] /Parent 709 0 R /Prev 737 0 R /Next 729 0 R >> endobj 731 0 obj << /Title (Sensing finger presence) /Dest [ 184 0 R /FitB ] /Parent 729 0 R /Next 736 0 R >> endobj 732 0 obj << /Title (Host interface to TouchPad) /Dest [ 194 0 R /FitB ] /Parent 729 0 R /Prev 733 0 R >> endobj 733 0 obj << /Title (TouchPad calibration) /Dest [ 194 0 R /FitB ] /Parent 729 0 R /Prev 734 0 R /Next 732 0 R >> endobj 734 0 obj << /Title (Sensing tapping gestures) /Dest [ 188 0 R /FitB ] /Parent 729 0 R /Prev 735 0 R /Next 733 0 R >> endobj 735 0 obj << /Title (Sensing motion) /Dest [ 188 0 R /FitB ] /Parent 729 0 R /Prev 736 0 R /Next 734 0 R >> endobj 736 0 obj << /Title (Filtering position data) /Dest [ 184 0 R /FitB ] /Parent 729 0 R /Prev 731 0 R /Next 735 0 R >> endobj 737 0 obj << /Title (Information queries) /Dest [ 123 0 R /FitB ] /Parent 709 0 R /Prev 738 0 R /Next 730 0 R /First 739 0 R /Last 740 0 R /Count 6 >> endobj 738 0 obj << /Title (Absolute mode) /Dest [ 94 0 R /FitB ] /Parent 709 0 R /Prev 745 0 R /Next 737 0 R /First 746 0 R /Last 747 0 R /Count 4 >> endobj 739 0 obj << /Title (TouchPad identification) /Dest [ 123 0 R /FitB ] /Parent 737 0 R /Next 744 0 R >> endobj 740 0 obj << /Title (Reading the mode byte) /Dest [ 159 0 R /FitB ] /Parent 737 0 R /Prev 741 0 R >> endobj 741 0 obj << /Title (Serial numbers) /Dest [ 159 0 R /FitB ] /Parent 737 0 R /Prev 742 0 R /Next 740 0 R >> endobj 742 0 obj << /Title (Extended capability bits) /Dest [ 151 0 R /FitB ] /Parent 737 0 R /Prev 743 0 R /Next 741 0 R >> endobj 743 0 obj << /Title (Coordinate resolution) /Dest [ 133 0 R /FitB ] /Parent 737 0 R /Prev 744 0 R /Next 742 0 R >> endobj 744 0 obj << /Title (Model ID bits) /Dest [ 126 0 R /FitB ] /Parent 737 0 R /Prev 739 0 R /Next 743 0 R >> endobj 745 0 obj << /Title (Packet rate) /Dest [ 94 0 R /FitB ] /Parent 709 0 R /Prev 727 0 R /Next 738 0 R >> endobj 746 0 obj << /Title (Absolute mode state bits) /Dest [ 100 0 R /FitB ] /Parent 738 0 R /Next 749 0 R >> endobj 747 0 obj << /Title (Absolute mode W values) /Dest [ 109 0 R /FitB ] /Parent 738 0 R /Prev 748 0 R >> endobj 748 0 obj << /Title (Absolute mode Z values) /Dest [ 109 0 R /FitB ] /Parent 738 0 R /Prev 749 0 R /Next 747 0 R >> endobj 749 0 obj << /Title (Absolute X and Y coordinates) /Dest [ 105 0 R /FitB ] /Parent 738 0 R /Prev 746 0 R /Next 748 0 R >> endobj 750 0 obj << /Title (Table of Contents) /Dest [ 1 0 R /FitB ] /Parent 667 0 R >> endobj 751 0 obj << /Producer (Acrobat Distiller 4.05 for Windows) /Creator (Microsoft Word 9.0) /Keywords (Second Edition) /ModDate (D:20010122152755-08'00') /Subject (Reference information for TouchPad system integrators) /CreationDate (D:20010122152622) /Title (Synaptics TouchPad Interfacing Guide) /Author (Dave Gillespie) >> endobj 752 0 obj << /Type /Pages /Kids [ 765 0 R 1 0 R 57 0 R 91 0 R 94 0 R 100 0 R 105 0 R 109 0 R 118 0 R 123 0 R ] /Count 10 /Parent 753 0 R >> endobj 753 0 obj << /Type /Pages /Kids [ 752 0 R 754 0 R 755 0 R 756 0 R 757 0 R 758 0 R 759 0 R 760 0 R 761 0 R 762 0 R ] /Count 91 >> endobj 754 0 obj << /Type /Pages /Kids [ 126 0 R 130 0 R 133 0 R 140 0 R 151 0 R 159 0 R 166 0 R 174 0 R 179 0 R 184 0 R ] /Count 10 /Parent 753 0 R >> endobj 755 0 obj << /Type /Pages /Kids [ 188 0 R 194 0 R 200 0 R 209 0 R 213 0 R 220 0 R 226 0 R 229 0 R 233 0 R 236 0 R ] /Count 10 /Parent 753 0 R >> endobj 756 0 obj << /Type /Pages /Kids [ 242 0 R 246 0 R 252 0 R 257 0 R 263 0 R 270 0 R 275 0 R 283 0 R 294 0 R 298 0 R ] /Count 10 /Parent 753 0 R >> endobj 757 0 obj << /Type /Pages /Kids [ 305 0 R 309 0 R 318 0 R 325 0 R 333 0 R 337 0 R 342 0 R 348 0 R 355 0 R 358 0 R ] /Count 10 /Parent 753 0 R >> endobj 758 0 obj << /Type /Pages /Kids [ 362 0 R 366 0 R 372 0 R 377 0 R 380 0 R 385 0 R 388 0 R 398 0 R 402 0 R 411 0 R ] /Count 10 /Parent 753 0 R >> endobj 759 0 obj << /Type /Pages /Kids [ 415 0 R 419 0 R 423 0 R 428 0 R 431 0 R 434 0 R 437 0 R 442 0 R 450 0 R 455 0 R ] /Count 10 /Parent 753 0 R >> endobj 760 0 obj << /Type /Pages /Kids [ 458 0 R 462 0 R 466 0 R 474 0 R 477 0 R 487 0 R 490 0 R 497 0 R 501 0 R 514 0 R ] /Count 10 /Parent 753 0 R >> endobj 761 0 obj << /Type /Pages /Kids [ 525 0 R 541 0 R 554 0 R 566 0 R 580 0 R 594 0 R 609 0 R 622 0 R 635 0 R 647 0 R ] /Count 10 /Parent 753 0 R >> endobj 762 0 obj << /Type /Pages /Kids [ 656 0 R ] /Count 1 /Parent 753 0 R >> endobj xref 0 763 0000000000 65535 f 0000014721 00000 n 0000015256 00000 n 0000015401 00000 n 0000015544 00000 n 0000015688 00000 n 0000015832 00000 n 0000015976 00000 n 0000016120 00000 n 0000016265 00000 n 0000016410 00000 n 0000016556 00000 n 0000016702 00000 n 0000016848 00000 n 0000016994 00000 n 0000017140 00000 n 0000017286 00000 n 0000017432 00000 n 0000017578 00000 n 0000017724 00000 n 0000017870 00000 n 0000018016 00000 n 0000018162 00000 n 0000018308 00000 n 0000018454 00000 n 0000018600 00000 n 0000018746 00000 n 0000018892 00000 n 0000019038 00000 n 0000019184 00000 n 0000019330 00000 n 0000019476 00000 n 0000019622 00000 n 0000019768 00000 n 0000019914 00000 n 0000020060 00000 n 0000020206 00000 n 0000020352 00000 n 0000020498 00000 n 0000020644 00000 n 0000020790 00000 n 0000020936 00000 n 0000021082 00000 n 0000021228 00000 n 0000021374 00000 n 0000021520 00000 n 0000021666 00000 n 0000021812 00000 n 0000021958 00000 n 0000022104 00000 n 0000022250 00000 n 0000022396 00000 n 0000022542 00000 n 0000022688 00000 n 0000022833 00000 n 0000022977 00000 n 0000023153 00000 n 0000026418 00000 n 0000026806 00000 n 0000026952 00000 n 0000027098 00000 n 0000027244 00000 n 0000027390 00000 n 0000027536 00000 n 0000027682 00000 n 0000027828 00000 n 0000027974 00000 n 0000028120 00000 n 0000028266 00000 n 0000028412 00000 n 0000028558 00000 n 0000028704 00000 n 0000028850 00000 n 0000028996 00000 n 0000029142 00000 n 0000029288 00000 n 0000029434 00000 n 0000029580 00000 n 0000029726 00000 n 0000029872 00000 n 0000030018 00000 n 0000030164 00000 n 0000030310 00000 n 0000030456 00000 n 0000030602 00000 n 0000030748 00000 n 0000030894 00000 n 0000031040 00000 n 0000031186 00000 n 0000031332 00000 n 0000031495 00000 n 0000034186 00000 n 0000034341 00000 n 0000034518 00000 n 0000038918 00000 n 0000039107 00000 n 0000039253 00000 n 0000039399 00000 n 0000039545 00000 n 0000039722 00000 n 0000043156 00000 n 0000043343 00000 n 0000043490 00000 n 0000043637 00000 n 0000043815 00000 n 0000048001 00000 n 0000048180 00000 n 0000048327 00000 n 0000048505 00000 n 0000053253 00000 n 0000053472 00000 n 0000053619 00000 n 0000053765 00000 n 0000053912 00000 n 0000054059 00000 n 0000054206 00000 n 0000054353 00000 n 0000054531 00000 n 0000058677 00000 n 0000058864 00000 n 0000059011 00000 n 0000059158 00000 n 0000059323 00000 n 0000063885 00000 n 0000064043 00000 n 0000064234 00000 n 0000067462 00000 n 0000067641 00000 n 0000067788 00000 n 0000067966 00000 n 0000073144 00000 n 0000073302 00000 n 0000073480 00000 n 0000077195 00000 n 0000077398 00000 n 0000077545 00000 n 0000077692 00000 n 0000077839 00000 n 0000077986 00000 n 0000078164 00000 n 0000081456 00000 n 0000081691 00000 n 0000081838 00000 n 0000081985 00000 n 0000082132 00000 n 0000082279 00000 n 0000082426 00000 n 0000082573 00000 n 0000082720 00000 n 0000082867 00000 n 0000083032 00000 n 0000087704 00000 n 0000087915 00000 n 0000088062 00000 n 0000088209 00000 n 0000088356 00000 n 0000088503 00000 n 0000088650 00000 n 0000088828 00000 n 0000092651 00000 n 0000092854 00000 n 0000093001 00000 n 0000093148 00000 n 0000093295 00000 n 0000093441 00000 n 0000093619 00000 n 0000096872 00000 n 0000097083 00000 n 0000097230 00000 n 0000097376 00000 n 0000097522 00000 n 0000097668 00000 n 0000097815 00000 n 0000097993 00000 n 0000101932 00000 n 0000102119 00000 n 0000102266 00000 n 0000102413 00000 n 0000102578 00000 n 0000106421 00000 n 0000106608 00000 n 0000106755 00000 n 0000106902 00000 n 0000107067 00000 n 0000111260 00000 n 0000111439 00000 n 0000111586 00000 n 0000111777 00000 n 0000115816 00000 n 0000116011 00000 n 0000116158 00000 n 0000116305 00000 n 0000116452 00000 n 0000116630 00000 n 0000121144 00000 n 0000121339 00000 n 0000121486 00000 n 0000121632 00000 n 0000121778 00000 n 0000121956 00000 n 0000125955 00000 n 0000126174 00000 n 0000126321 00000 n 0000126468 00000 n 0000126614 00000 n 0000126761 00000 n 0000126908 00000 n 0000127055 00000 n 0000127220 00000 n 0000131190 00000 n 0000131369 00000 n 0000131515 00000 n 0000131680 00000 n 0000135155 00000 n 0000135358 00000 n 0000135505 00000 n 0000135652 00000 n 0000135799 00000 n 0000135946 00000 n 0000136152 00000 n 0000140085 00000 n 0000140280 00000 n 0000140427 00000 n 0000140574 00000 n 0000140721 00000 n 0000140899 00000 n 0000142576 00000 n 0000142734 00000 n 0000142912 00000 n 0000147446 00000 n 0000147625 00000 n 0000147771 00000 n 0000147949 00000 n 0000153610 00000 n 0000153768 00000 n 0000153959 00000 n 0000157688 00000 n 0000157883 00000 n 0000158030 00000 n 0000158177 00000 n 0000158324 00000 n 0000158502 00000 n 0000164921 00000 n 0000165100 00000 n 0000165247 00000 n 0000165438 00000 n 0000168965 00000 n 0000169160 00000 n 0000169307 00000 n 0000169454 00000 n 0000169601 00000 n 0000169766 00000 n 0000172603 00000 n 0000172790 00000 n 0000172937 00000 n 0000173084 00000 n 0000173275 00000 n 0000176307 00000 n 0000176502 00000 n 0000176649 00000 n 0000176796 00000 n 0000176943 00000 n 0000177121 00000 n 0000180374 00000 n 0000180577 00000 n 0000180724 00000 n 0000180870 00000 n 0000181016 00000 n 0000181162 00000 n 0000181340 00000 n 0000184970 00000 n 0000185157 00000 n 0000185304 00000 n 0000185451 00000 n 0000185642 00000 n 0000189087 00000 n 0000189298 00000 n 0000189445 00000 n 0000189592 00000 n 0000189739 00000 n 0000189886 00000 n 0000190033 00000 n 0000190211 00000 n 0000194477 00000 n 0000194712 00000 n 0000194859 00000 n 0000195006 00000 n 0000195153 00000 n 0000195300 00000 n 0000195447 00000 n 0000195594 00000 n 0000195741 00000 n 0000195888 00000 n 0000196066 00000 n 0000201833 00000 n 0000202012 00000 n 0000202159 00000 n 0000202337 00000 n 0000207041 00000 n 0000207244 00000 n 0000207391 00000 n 0000207538 00000 n 0000207685 00000 n 0000207832 00000 n 0000208023 00000 n 0000211039 00000 n 0000211218 00000 n 0000211365 00000 n 0000211543 00000 n 0000215352 00000 n 0000215571 00000 n 0000215717 00000 n 0000215864 00000 n 0000216011 00000 n 0000216158 00000 n 0000216305 00000 n 0000216451 00000 n 0000216616 00000 n 0000223204 00000 n 0000223407 00000 n 0000223554 00000 n 0000223701 00000 n 0000223848 00000 n 0000223995 00000 n 0000224186 00000 n 0000229235 00000 n 0000229446 00000 n 0000229593 00000 n 0000229740 00000 n 0000229887 00000 n 0000230034 00000 n 0000230181 00000 n 0000230346 00000 n 0000233646 00000 n 0000233825 00000 n 0000233972 00000 n 0000234174 00000 n 0000237742 00000 n 0000237929 00000 n 0000238076 00000 n 0000238223 00000 n 0000238400 00000 n 0000242507 00000 n 0000242702 00000 n 0000242849 00000 n 0000242996 00000 n 0000243143 00000 n 0000243320 00000 n 0000247005 00000 n 0000247208 00000 n 0000247355 00000 n 0000247502 00000 n 0000247649 00000 n 0000247796 00000 n 0000247985 00000 n 0000251804 00000 n 0000251962 00000 n 0000252125 00000 n 0000254110 00000 n 0000254289 00000 n 0000254436 00000 n 0000254614 00000 n 0000259433 00000 n 0000259612 00000 n 0000259759 00000 n 0000259924 00000 n 0000263799 00000 n 0000263994 00000 n 0000264141 00000 n 0000264288 00000 n 0000264435 00000 n 0000264628 00000 n 0000270429 00000 n 0000270587 00000 n 0000270815 00000 n 0000275660 00000 n 0000275938 00000 n 0000276154 00000 n 0000276312 00000 n 0000276490 00000 n 0000281102 00000 n 0000281289 00000 n 0000281436 00000 n 0000281583 00000 n 0000281761 00000 n 0000285535 00000 n 0000285693 00000 n 0000285884 00000 n 0000290347 00000 n 0000290574 00000 n 0000290721 00000 n 0000290868 00000 n 0000291015 00000 n 0000291162 00000 n 0000291309 00000 n 0000291455 00000 n 0000291602 00000 n 0000291780 00000 n 0000295591 00000 n 0000295770 00000 n 0000295916 00000 n 0000296094 00000 n 0000300072 00000 n 0000300291 00000 n 0000300438 00000 n 0000300585 00000 n 0000300732 00000 n 0000300879 00000 n 0000301026 00000 n 0000301173 00000 n 0000301351 00000 n 0000305389 00000 n 0000305568 00000 n 0000305715 00000 n 0000305893 00000 n 0000311450 00000 n 0000311629 00000 n 0000311776 00000 n 0000311954 00000 n 0000317845 00000 n 0000318024 00000 n 0000318171 00000 n 0000318362 00000 n 0000322169 00000 n 0000322356 00000 n 0000322502 00000 n 0000322649 00000 n 0000322827 00000 n 0000328386 00000 n 0000328544 00000 n 0000328722 00000 n 0000332944 00000 n 0000333102 00000 n 0000333280 00000 n 0000337051 00000 n 0000337209 00000 n 0000337400 00000 n 0000340827 00000 n 0000341014 00000 n 0000341161 00000 n 0000341308 00000 n 0000341498 00000 n 0000346614 00000 n 0000346825 00000 n 0000346972 00000 n 0000347119 00000 n 0000347266 00000 n 0000347413 00000 n 0000347560 00000 n 0000347750 00000 n 0000352952 00000 n 0000353139 00000 n 0000353286 00000 n 0000353433 00000 n 0000353598 00000 n 0000358203 00000 n 0000358361 00000 n 0000358552 00000 n 0000362666 00000 n 0000362845 00000 n 0000362991 00000 n 0000363169 00000 n 0000367236 00000 n 0000367415 00000 n 0000367562 00000 n 0000367727 00000 n 0000371021 00000 n 0000371232 00000 n 0000371404 00000 n 0000371551 00000 n 0000371698 00000 n 0000371845 00000 n 0000371992 00000 n 0000372170 00000 n 0000375988 00000 n 0000376146 00000 n 0000376311 00000 n 0000380075 00000 n 0000380302 00000 n 0000380449 00000 n 0000380596 00000 n 0000380743 00000 n 0000380890 00000 n 0000381037 00000 n 0000381184 00000 n 0000381331 00000 n 0000381509 00000 n 0000384844 00000 n 0000385002 00000 n 0000385192 00000 n 0000387886 00000 n 0000388089 00000 n 0000388236 00000 n 0000388383 00000 n 0000388530 00000 n 0000388677 00000 n 0000388868 00000 n 0000393508 00000 n 0000393687 00000 n 0000393834 00000 n 0000394012 00000 n 0000397327 00000 n 0000397579 00000 n 0000397725 00000 n 0000397872 00000 n 0000398019 00000 n 0000398166 00000 n 0000398313 00000 n 0000398460 00000 n 0000398607 00000 n 0000398754 00000 n 0000398901 00000 n 0000399048 00000 n 0000399239 00000 n 0000402725 00000 n 0000402960 00000 n 0000403107 00000 n 0000403254 00000 n 0000403401 00000 n 0000403548 00000 n 0000403695 00000 n 0000403842 00000 n 0000403989 00000 n 0000404135 00000 n 0000404313 00000 n 0000407762 00000 n 0000408038 00000 n 0000408185 00000 n 0000408332 00000 n 0000408479 00000 n 0000408626 00000 n 0000408773 00000 n 0000408920 00000 n 0000409067 00000 n 0000409214 00000 n 0000409361 00000 n 0000409508 00000 n 0000409655 00000 n 0000409802 00000 n 0000409949 00000 n 0000410127 00000 n 0000413814 00000 n 0000414066 00000 n 0000414213 00000 n 0000414360 00000 n 0000414507 00000 n 0000414654 00000 n 0000414801 00000 n 0000414948 00000 n 0000415095 00000 n 0000415242 00000 n 0000415389 00000 n 0000415536 00000 n 0000415714 00000 n 0000419206 00000 n 0000419450 00000 n 0000419597 00000 n 0000419744 00000 n 0000419891 00000 n 0000420038 00000 n 0000420185 00000 n 0000420332 00000 n 0000420479 00000 n 0000420626 00000 n 0000420773 00000 n 0000420951 00000 n 0000424563 00000 n 0000424823 00000 n 0000424970 00000 n 0000425117 00000 n 0000425264 00000 n 0000425411 00000 n 0000425558 00000 n 0000425705 00000 n 0000425852 00000 n 0000425999 00000 n 0000426146 00000 n 0000426293 00000 n 0000426440 00000 n 0000426618 00000 n 0000430111 00000 n 0000430371 00000 n 0000430518 00000 n 0000430665 00000 n 0000430811 00000 n 0000430958 00000 n 0000431105 00000 n 0000431251 00000 n 0000431397 00000 n 0000431543 00000 n 0000431690 00000 n 0000431837 00000 n 0000431984 00000 n 0000432162 00000 n 0000435655 00000 n 0000435923 00000 n 0000436070 00000 n 0000436217 00000 n 0000436364 00000 n 0000436511 00000 n 0000436658 00000 n 0000436805 00000 n 0000436952 00000 n 0000437099 00000 n 0000437246 00000 n 0000437393 00000 n 0000437540 00000 n 0000437684 00000 n 0000437862 00000 n 0000441240 00000 n 0000441492 00000 n 0000441639 00000 n 0000441786 00000 n 0000441933 00000 n 0000442080 00000 n 0000442227 00000 n 0000442374 00000 n 0000442521 00000 n 0000442668 00000 n 0000442815 00000 n 0000442962 00000 n 0000443140 00000 n 0000446489 00000 n 0000446741 00000 n 0000446888 00000 n 0000447035 00000 n 0000447182 00000 n 0000447329 00000 n 0000447476 00000 n 0000447623 00000 n 0000447770 00000 n 0000447917 00000 n 0000448064 00000 n 0000448211 00000 n 0000448389 00000 n 0000451659 00000 n 0000451903 00000 n 0000452050 00000 n 0000452197 00000 n 0000452344 00000 n 0000452491 00000 n 0000452638 00000 n 0000452785 00000 n 0000452932 00000 n 0000453079 00000 n 0000453225 00000 n 0000453403 00000 n 0000456864 00000 n 0000457083 00000 n 0000457255 00000 n 0000457402 00000 n 0000457549 00000 n 0000457694 00000 n 0000457839 00000 n 0000457984 00000 n 0000458175 00000 n 0000461094 00000 n 0000461252 00000 n 0000461403 00000 n 0000461868 00000 n 0000462304 00000 n 0000462407 00000 n 0000462518 00000 n 0000462680 00000 n 0000462860 00000 n 0000463066 00000 n 0000466277 00000 n 0000466344 00000 n 0000466485 00000 n 0000466628 00000 n 0000466786 00000 n 0000466947 00000 n 0000467068 00000 n 0000467208 00000 n 0000467333 00000 n 0000467445 00000 n 0000467563 00000 n 0000467724 00000 n 0000467826 00000 n 0000467932 00000 n 0000468073 00000 n 0000468237 00000 n 0000468349 00000 n 0000468496 00000 n 0000468655 00000 n 0000468768 00000 n 0000468882 00000 n 0000469020 00000 n 0000469141 00000 n 0000469247 00000 n 0000469353 00000 n 0000469474 00000 n 0000469595 00000 n 0000469719 00000 n 0000469881 00000 n 0000470034 00000 n 0000470181 00000 n 0000470340 00000 n 0000470453 00000 n 0000470567 00000 n 0000470688 00000 n 0000470801 00000 n 0000470917 00000 n 0000471050 00000 n 0000471178 00000 n 0000471311 00000 n 0000471445 00000 n 0000471577 00000 n 0000471701 00000 n 0000471803 00000 n 0000471968 00000 n 0000472121 00000 n 0000472274 00000 n 0000472436 00000 n 0000472551 00000 n 0000472669 00000 n 0000472851 00000 n 0000472964 00000 n 0000473078 00000 n 0000473196 00000 n 0000473307 00000 n 0000473420 00000 n 0000473541 00000 n 0000473706 00000 n 0000473812 00000 n 0000473931 00000 n 0000474053 00000 n 0000474147 00000 n 0000474268 00000 n 0000474392 00000 n 0000474563 00000 n 0000474679 00000 n 0000474794 00000 n 0000474912 00000 n 0000475039 00000 n 0000475170 00000 n 0000475291 00000 n 0000475421 00000 n 0000475588 00000 n 0000475748 00000 n 0000475863 00000 n 0000475976 00000 n 0000476097 00000 n 0000476228 00000 n 0000476356 00000 n 0000476476 00000 n 0000476593 00000 n 0000476709 00000 n 0000476823 00000 n 0000476952 00000 n 0000477087 00000 n 0000477179 00000 n 0000477512 00000 n 0000477666 00000 n 0000477808 00000 n 0000477967 00000 n 0000478126 00000 n 0000478285 00000 n 0000478444 00000 n 0000478603 00000 n 0000478762 00000 n 0000478921 00000 n 0000479080 00000 n trailer << /Size 763 /ID[<365a89889ff20675953961862f695481><365a89889ff20675953961862f695481>] >> startxref 173 %%EOF 00420773 00000 n 0000420951 00000 n gpm-1.20.7/doc/support/000077500000000000000000000000001204257734200146535ustar00rootroot00000000000000gpm-1.20.7/doc/support/README000066400000000000000000000002751204257734200155370ustar00rootroot00000000000000This directory contains emails from/to companies, which were asked, if they wanted to help support gpm. This also includes the XFree project, perhaps sometime we can share mouse support... gpm-1.20.7/doc/support/logitech_1000066400000000000000000000030311204257734200166110ustar00rootroot00000000000000Thank you for using Logitech's Electronic Technical Support. My name is Jesse. The following information addresses your original question. You may wish to print this out and/or save this on your computer. The information you are requesting is proprietary and not publicly available. Please visit our web site for all public information on our products. http://www.logitech.com/cf/index.cfm Logitech does not currently support Linux. If you have additional technical questions regarding your product, please visit our web site at www.logitech.com and submit your question. Thank you for your interest in Logitech. Regards, Jesse Logitech Customer Support --- Original Message --- From: Nico Schottelius Received: 03/05/2002 11:42am Eastern Standard Time To: eShare - Logitech Customer Support Subject: mouse support Hello! I am the Linux gpm mouse maintainer and I would like to include some more mouses from logitech into the support. Gpm is the primary Linux mouse driver. For more information about gpm visit freshmeat.net and search gpm. I only need some protocol specifications and possibly other informations from you. Do you think we can corporate ? Thanks for you answer, Nico Schottelius -- Nico Schottelius Please send your messages pgp-signed or pgp-encrypted. If you don't know what pgp is visit www.gnupg.org. (public pgp key: ftp.schottelius.org/pub/familiy/nico/pgp-key) ------ Please do not remove your unique tracking number! ------ <<#140786-104335#>> gpm-1.20.7/doc/support/logitech_2000066400000000000000000000073751204257734200166310ustar00rootroot00000000000000Thank you for using Logitech's Electronic Technical Support. My name is Peggy. The following information addresses your original question. You may wish to print this out and/or save this on your computer. Following is all the information I was able to find on Linux and Logitech mice. I hope it will help you some. At this time, LINUX is not a supported operating system for Logitech pointing devices. Do not use the software which comes with the Logitech mouse. Linux has Logitech drivers built in. Run either Linuxconf (for shell use) or XF86Config and tell it you're using a Logitech mouse. There are specific entries for serial, bus, and PS2 mice. Currently, the kernel does not support USB mice. As a demand for this operating system increases, Logitech will consider implementing support for it in the future. Please visit our web site periodically for information on product announcements and releases. Configuring 3 button support in Linux (X-Free): In LINUX, you normally have only 2 button support, but it is possible to emulate a third button by pressing the left and the right button together (chording). This is a very uncomfortable solution. So, if a customer is asking for a nice solution, tell him following: Edit the file: /usr/lib/X11/Xconfig and try the following: MouseMan "/dev/mouse" Emulate3buttons and then you have 3-button-support in LINUX Configuring 3 button support in Linux ver.1.1.59: The following information was entered in the configuration file for X11R6 found in the directory: /USR/X11R6/LIB/X11 In this directory the user will find a config file called: XF86CONFIG They need to change, or make sure the information in the "POINTER" section reads as follows: Section "Pointer" Protocol "MouseMan" Device "/DEV/MOUSE" EndSection PROTOCOL specifies the mouse protocol that your mouse uses (not the make or brand of mouse). Valid types for PROTOCOL are: BusMouse, Logitech, Microsoft, MMSeries, MouseMan, MouseSystems, PS/2 & MMHitTab DEVICE specifies the device file where the mouse can be accessed. On most Linux systems, this is /DEV/MOUSE. /DEV/MOUSE is usually a link to the appropriate serial port (such as /DEV/CUA0) for serial mice, or the appropriate BusMouse device for BusMice. Just be sure the device file listed in DEVICE exists. BaudRate and SampleRate are only for some Logitech mice. An example of these, which would be added under DEVICE line are: BaudRate 9600 SampleRate 150 If you have additional technical questions regarding your product, please visit our web site at www.logitech.com and submit your question. Thank you for your interest in Logitech. Regards, Peggy Logitech Customer Support --- Original Message --- From: Nico Schottelius Received: 03/11/2002 03:59am Eastern Standard Time To: eShare - Logitech Customer Support Subject: Re: mouse support Hello Jesse! > The information you are requesting is proprietary and not publicly available. Please visit our web site for all public information on our products. http://www.logitech.com/cf/index.cfm > Logitech does not currently support Linux. It would be nice for many logitech users to get mouse devices from logitech to work under Linux. When you start sharing information or supporting Linux, please drop me a line, so I can include the support into gpm and possibly later into X. Just one more question, why don't you release those information ? What's the problem when the information are public available ? Thanks in advance, Nico Schottelius Please send your messages pgp-signed or pgp-encrypted. If you don't know what pgp is visit www.gnupg.org. (public pgp key: ftp.schottelius.org/pub/familiy/nico/pgp-key) ------ Please do not remove your unique tracking number! ------ <<#140786-104335#>> gpm-1.20.7/doc/support/logitech_3000066400000000000000000000023131204257734200166150ustar00rootroot00000000000000Thank you for using Logitech's Electronic Technical Support. My name is Donald. The following information addresses your original question. You may wish to print this out and/or save this on your computer. We do not know when or if ever Logitech will support Linux. If you have additional technical questions regarding your product, please visit our web site at www.logitech.com and submit your question. Thank you for your interest in Logitech. Regards, Donald Logitech Customer Support --- Original Message --- From: Nico Schottelius Received: 03/21/2002 12:11pm Eastern Standard Time To: eShare - Logitech Customer Support Subject: Re: mouse support thanks for the information. but I am the gpm maintainer and I know all that stuff. It would just be nice, if you tell me when logitech starts to support linux, so we can work together! Greetings, Nico Schottelius -- Nico Schottelius Please send your messages pgp-signed or pgp-encrypted. If you don't know what pgp is visit www.gnupg.org. (public pgp key: ftp.schottelius.org/pub/familiy/nico/pgp-key) ------ Please do not remove your unique tracking number! ------ <<#140786-104335#>> gpm-1.20.7/doc/support/mouse-maintainer-XFree000066400000000000000000000013711204257734200210640ustar00rootroot00000000000000On Sun, Feb 17, 2002 at 10:46:48PM +0100, Nico Schottelius wrote: >Hello David! > >As I am the current maintainer of gpm I found out that partly X can handle >mouse protocols better and partly gpm. Why should we not join our work ? That sounds like a good idea. >For example the X I use cannot init ps2 correclty, if synps2 was taken before. >gpm can (1.20.0 and later). >Who is the mouse maintainer in X, who may I contact ? The maintainer was Kazutaka Yokota , although I haven't heard from him ina while. I'm also interested in the mouse driver, so if you can't get in contact with him, let me know. David -- David Dawes Release Engineer/Architect The XFree86 Project www.XFree86.org/~dawes gpm-1.20.7/doc/support/mouse-maintainer-XFree.status000066400000000000000000000001041204257734200223770ustar00rootroot00000000000000Didn't get any answer from . gpm-1.20.7/doc/todo/000077500000000000000000000000001204257734200141045ustar00rootroot00000000000000gpm-1.20.7/doc/todo/1.20.6000066400000000000000000000003531204257734200145540ustar00rootroot00000000000000- fix Gpm_GetServerVersion - remove all warnings - use -Werror -W -Wall - seperate "drivers" from the rest - remove the unneeded typedefs - seperate add daemon and library stuff cleanly - split off gpm.c and gpn.c - add report success gpm-1.20.7/doc/todo/1.99.0000066400000000000000000000000531204257734200145630ustar00rootroot00000000000000- splittoff gpm.c -> finished, 20080220 gpm-1.20.7/doc/todo/1.99.1000066400000000000000000000000671204257734200145710ustar00rootroot00000000000000- splittoff gpn.c and startup.c => Done by 20080222 gpm-1.20.7/doc/todo/1.99.2000066400000000000000000000000541204257734200145660ustar00rootroot00000000000000- begin splittoff of mice.c => no, later gpm-1.20.7/doc/todo/1.99.3000066400000000000000000000002211204257734200145630ustar00rootroot00000000000000- Fixes: Remove glibc-hacks, where possible and posix conform: processConn - begin splittoff of mice.c - check for rmev (1.19.6 or 1.17.8) gpm-1.20.7/doc/todo/1.99.4000066400000000000000000000000311204257734200145630ustar00rootroot00000000000000- cleanup autoconf stuff gpm-1.20.7/doc/todo/1.99.5000066400000000000000000000000311204257734200145640ustar00rootroot00000000000000- finish gpm2/doc/DESIGN gpm-1.20.7/doc/todo/1.99.6000066400000000000000000000000341204257734200145700ustar00rootroot00000000000000- finish main core for gpm2 gpm-1.20.7/doc/todo/1.99.7000066400000000000000000000002261204257734200145740ustar00rootroot00000000000000- first vertical prototype: have on mouse input running - Add buildtest for gpm1 and gpm2 in ~/temp/gpm, based on the tar -> fix release errors gpm-1.20.7/doc/todo/1.99.8000066400000000000000000000001741204257734200145770ustar00rootroot00000000000000- freebsd release: check that gpm2 compiles and runs on fbsd - double check that the os speficih code is in gpm2/os// gpm-1.20.7/doc/todo/1.99.9000066400000000000000000000000271204257734200145750ustar00rootroot00000000000000- cleanly design conf/ gpm-1.20.7/install-sh000077500000000000000000000112431204257734200143770ustar00rootroot00000000000000#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. # # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" tranformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 gpm-1.20.7/scripts/000077500000000000000000000000001204257734200140615ustar00rootroot00000000000000gpm-1.20.7/scripts/git-archiv-tarbz2.sh000077500000000000000000000020511204257734200176550ustar00rootroot00000000000000#!/bin/sh # # 2008 Nico Schottelius (nico-git-dev at schottelius.org) # # # This file is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This file 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 ccollect. If not, see . # # Written on: 20080314 # version="$1" me=${0##*/} if [ ! "$version" ]; then echo "${me}: Version" exit 1 fi if [ ! -d .git ]; then echo "There is no .git in here." exit 2 fi pwd=$(pwd) name=${pwd##*/} git archive --format=tar --prefix=${name}-${version}/ HEAD | \ tee ../${name}-${version}.tar | bzip2 -9 > ../${name}-${version}.tar.bz2 gpm-1.20.7/scripts/gpm.release000077500000000000000000000040151204257734200162110ustar00rootroot00000000000000#!/bin/sh # Nico Schottelius # Build release tar # Date: Sat Oct 15 21:38:29 CEST 2005 # Last Changed: ls -l # only release if I tell it to release [ "$1" = "now" ] || exit 23 #if [ $# -ne 2 ]; then # echo "This is a maintainer-only script to release cinit" # echo $(basename $0): source-dir version # exit 1 #fi DDIR="$(cd $(dirname $0)/../../; pwd -P)" DIR="$(cd $(dirname $0)/../; pwd -P)" RDIR="$(basename "$DIR")" VERSION="$(awk -F= '/^release=/ { print $2 }' configure.in )" #VERSION="$(cd "$DIR"; pwd -P | sed 's;.*/gpm-;;')" #VERSION_CONF="$(head -n1 $(dirname $0)/../../conf/version | sed 's/^"\(.*\)"$/\1/')" #VERSION_CHANGES="$(head -n1 "$(dirname $0)/../../CHANGES" | sed 's/cinit-\(.*\):$/\1/')" echo -n "=> Version: $VERSION; ok?" read ok #echo "=> Version directory: $VERSION" #echo "=> Version conf/version: $VERSION_CONF" #echo "=> Version CHANGES: $VERSION_CHANGES" #if [ "$VERSION" = "$VERSION_CONF" -a "$VERSION" = "$VERSION_CHANGES" ]; then # echo "=> Version confirmed." #fi #DIR=$1 #VERSION=$2 TAR_NAME="gpm-${VERSION}.tar.bz2" OUT_NAME="$DDIR/$TAR_NAME" D_HOST=home.schottelius.org D_BASE=www/org/schottelius/unix/www/gpm D_DIR=${D_BASE}/archives/ D_SOURCE=${D_BASE}/browse_source/ LINK=current echo "$VERSION in $DIR to $DDIR with $RDIR?" echo "Copying to ${D_HOST}:${D_DIR}" echo -n "=> Continue? " read yes if [ ! -d "$DIR" ]; then echo "$DIR is not a directory" exit 1 fi #( cd "$DIR" && make dist ) || exit 1 echo "Creating bzip2 compressed tar" tar cj -X "$DIR/.exclude" -C "$DDIR" -f "$OUT_NAME" "$RDIR" chmod 0644 "$OUT_NAME" echo "Transfering to $D_HOST" scp "$OUT_NAME" "$D_HOST:$D_DIR" echo "Extracting to $D_SOURCE" ssh "$D_HOST" "tar xfj $D_DIR/$OUT_NAME -C $D_SOURCE" echo "Correcting paranoid permissions" ssh "$D_HOST" "find \"$D_SOURCE/$RDIR\" -type f -exec chmod 0644 {} \\;" ssh "$D_HOST" "find \"$D_SOURCE/$RDIR\" -type d -exec chmod 0755 {} \\;" ssh "$D_HOST" "cd \"$D_SOURCE\" && rm -f \"$LINK\" && ln -s \"$RDIR\" \"$LINK\"" echo "Please do not forget to update the website..." gpm-1.20.7/scripts/report_success.sh000077500000000000000000000034651204257734200174730ustar00rootroot00000000000000#!/bin/sh # # 2008 Nico Schottelius (nico-ccollect at schottelius.org) # # This file is part of ccollect. # # ccollect is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # ccollect 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 ccollect. If not, see . # # Sends feedback # # Adapted for gpm # software="gpm" author="Nico Schottelius" subject="==> success: $software" to="nico-gpm-success" host="schottelius.org" fullto="${to}@${host}" info="$(awk -F= '/^release=/ { print $2 }' configure.in; uname -s -v -r -m)" echo "Reporting success for $software to ${author}" echo "-----------------" echo -n "Your name (leave free for anonymous): " read name echo -n "Your email (leave free for anonymous): " read email echo -n "Your normal gpm parameters (-m -t -o ...): " read params echo -n "Comment (leave free for no comment): " read comment echo "" echo "The following information will be send to ${author}:" echo "" cat << eof Name: $name (will be used to contact you and kept secret) E-Mail: $email (will be used to contact you and kept secret) Comment: $comment Info: $info Parameters: $params eof echo -n "Is it ok to send out that mail (press enter to send or ctrl-c to abort)? " read yes cat << eof | mail -s "$subject" "$fullto" Name: $name E-Mail: $email Comment: $comment Info: $info Parameters: $params eof echo "Send. Thank you for your feedback." gpm-1.20.7/src/000077500000000000000000000000001204257734200131615ustar00rootroot00000000000000gpm-1.20.7/src/Makefile.in000066400000000000000000000142731204257734200152350ustar00rootroot00000000000000# -*-makefile-*- (gpm/src) # # Copyright 1994,1997 rubini@linux.it # Copyright 1997 dickey@clark.net # Copyright (C) 1998 Ian Zimmerman # Copyright (C) 2001-2008 Nico Schottelius # srcdir = @srcdir@ top_builddir = .. include $(top_builddir)/Makefile.include # Main portion: regular build rules GSRC = mice.c twiddler.c synaptics.c \ daemon/add_mouse.c daemon/init_mice.c daemon/reset_mice.c \ daemon/build_argv.c daemon/disable_paste.c daemon/do_client.c \ daemon/do_selection.c daemon/get_console_size.c daemon/get_data.c \ daemon/getmousedata.c daemon/gpm.c daemon/gpm-killed.c \ daemon/header.c daemon/main.c daemon/old_main.c \ daemon/open_console.c daemon/check_kill.c daemon/gpm_exited.c \ generic/isodigit.c generic/getsym.c \ daemon/processspecial.c daemon/processconn.c daemon/processmouse.c \ daemon/processrequest.c daemon/selection_copy.c daemon/selection_paste.c\ daemon/cmdline.c daemon/loadlut.c daemon/find_mouse_by_name.c \ daemon/usage.c daemon/check_uniqueness.c \ daemon/startup.c daemon/wait_text.c GOBJ = $(GSRC:.c=.o) report.o tools.o LSRC = lib/liblow.c lib/libhigh.c lib/libxtra.c lib/report-lib.c LOBJ = $(LSRC:.c=.o) tools.o @CURSES_OBJS@ PICS = $(LOBJ:.o=.lo) HDRS = gpm.h gpmInt.h twiddler.h synaptics.h message.h PSRC = prog/mev.c prog/hltest.c prog/mouse-test.c prog/disable-paste.c \ prog/display-buttons.c prog/display-coords.c prog/get-versions.c POBJ = $(PSRC:.c=.o) prog/gpm-root.o PROG = $(POBJ:.o=) SRCS = $(GSRC) $(LSRC) $(PSRC) report.c DEFS = @DEFS@ STRIP = -s ### BUILD PROCESS # allow CFLAGS to be overriden from make command line # ideally one would never have to write this rule again, but the GNU # makefile standards are at cross-purposes: CFLAGS is reserved for # user-overridable flags, but it's also all the implicit rule looks at. # the prog rules are not very clean... prog/%.o: prog/%.c $(CC) -Iheaders @CPPFLAGS@ $(CPPFLAGS) @CFLAGS@ $(CFLAGS) -c -o $@ $< prog/%: prog/%.o $(CC) @LDFLAGS@ $(LDFLAGS) -o $@ $^ @LIBS@ $(LIBS) %.o: %.c $(CC) @CPPFLAGS@ $(CPPFLAGS) @CFLAGS@ $(CFLAGS) -c -o $@ $< %.lo: %.c $(CC) @CPPFLAGS@ $(CPPFLAGS) @PICFLAGS@ @CFLAGS@ $(CFLAGS) -c -o $@ $< %: %.o $(CC) @LDFLAGS@ $(LDFLAGS) -o $@ $^ @LIBS@ $(LIBS) # old, unused, but good rule [dependings] #%.d: $(srcdir)/%.c # $(SHELL) -ec '$(CC) -M $(GPMCPPFLAGS) $(CPPFLAGS) $< \ # | $(SED) '\''s/\($*\)\.o\([ :]*\)/\1.o \1.lo\2/g'\'' > $(DEPDIR)/$@' # Do it all! all: gpm lib/libgpm.so.@abi_lev@ @LIBGPM_A@ $(PROG) gpm: $(GOBJ) $(CC) @LDFLAGS@ $(LDFLAGS) -o $@ $(GOBJ) @LIBS@ $(LIBS) -lm # construct dependings of sourcefiles and link sourcefiles $(DEPFILE) dep: prog/gpm-root.c # make links in subdirectories -@for cfiledirs in prog lib; do $(MKDIR) $$cfiledirs; \ cd $$cfiledirs; for cfiles in `echo $(srcdir)/$$cfiledirs/*.c`; \ do $(LN_S) $$cfiles 2>/dev/null; done; cd ..; done # make links in srcdir -@for cfiles in `echo $(srcdir)/*.c`; do $(LN_S) $$cfiles 2>/dev/null; done # create dependencies for DEPS in `echo *.c */*.c`; do \ $(CC) -I. -I $(srcdir) -M @CPPFLAGS@ $(CPPFLAGS) $$DEPS | \ $(SED) 's/^\(.*\)\.o\([ :]+\)/\1.o \1.lo\2/g' >> $(DEPFILE) ; done ### INSTALL check: all installdirs: install: check $(INSTALL_PROGRAM) gpm $(sbindir)/gpm if [ -f lib/libgpm.a ] ; then \ $(INSTALL_DATA) -m 644 lib/libgpm.a $(libdir)/libgpm.a ; \ fi $(INSTALL_DATA) -m 644 $(srcdir)/headers/gpm.h $(includedir)/gpm.h # POSIX requires the range of a for loop be nonempty and Bash # 2.x goes along; unfortunately that means an additional # headache in cases like this if test "x@SHLIB@" != "x" ; then \ $(INSTALL_DATA) -m 644 lib/libgpm.so.@abi_full@ $(libdir)/libgpm.so.@abi_full@ ; \ cd $(libdir) && $(LN_S) -f libgpm.so.@abi_full@ libgpm.so.@abi_lev@ ; \ echo "WARNING: We installed a lib, you should now call ldconfig" ; \ echo "f.i.: ldconfig -n -l $(libdir)/libgpm.so.@abi_full@" ; \ echo "Or to update everything just type ldconfig" ; \ fi # The unversioned files seems to be not needed -> correct me, if I am wrong. # && $(LN_S) -f libgpm.so.@abi_lev@ libgpm.so ; \ # prog/ for i in $(PROG); do \ $(INSTALL_PROGRAM) $$i $(bindir)/`echo $$i | sed 's,prog/,,'` ;\ done install-strip: $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) $(STRIP)' install # Note: this leaves around /usr/lib/libgpm.so.1 and /usr/lib/libgpm.so.1.nn # This is probably the right thing, because programs may be linked to it uninstall: rm -f $(bindir)/mev $(bindir)/gpm-root $(bindir)/disable-paste \ $(sbindir)/gpm $(libdir)/libgpm.a $(libdir)/libgpm.so $(includedir)/gpm.h for i in $(PROG); do \ rm -f $(bindir)/$$i ;\ done # Configure & unconfigure Makefile: Makefile.in $(top_builddir)/config.status Makefile # Subdirectory prog/ prog/gpm-root.c: $(srcdir)/prog/gpm-root.y $(YACC) $(YFLAGS) $< && mv y.tab.c prog/gpm-root.c # gpm-root needs an own rule, because gpm-root.c is not in $(srcdir) prog/gpm-root: prog/gpm-root.c lib/libgpm.so.@abi_lev@ $(CC) -I. @CPPFLAGS@ $(CPPFLAGS) @CFLAGS@ $(CFLAGS) -c -o $@.o $< $(CC) @LDFLAGS@ $(LDFLAGS) -o $@ $@.o @LIBS@ $(LIBS) lib/libgpm.so.@abi_lev@ prog/mouse-test: prog/mouse-test.o mice.o twiddler.o synaptics.o prog/open_console.o $(CC) @LDFLAGS@ $(LDFLAGS) -o $@ $^ @LIBS@ $(LIBS) -lm $(PROG): lib/libgpm.so.@abi_lev@ # Subdirectory lib/ lib/libgpm.a: $(LOBJ) $(AR) rc lib/libgpm.a $(LOBJ) $(RANLIB) lib/libgpm.a lib/libgpm.so.@abi_full@: $(PICS) $(CC) @SOLDFLAGS@libgpm.so.@abi_lev@ \ @LDFLAGS@ $(LDFLAGS) -o lib/libgpm.so.@abi_full@ $^ @LIBS@ @SHARED_LIBS@ $(LIBS) lib/libgpm.so.@abi_lev@: lib/libgpm.so.@abi_full@ $(LN_S) -f libgpm.so.@abi_full@ lib/libgpm.so.@abi_lev@ # unneeded, isn't it? #lib/libgpm.so: lib/libgpm.so.@abi_full@ # $(LN_S) -f libgpm.so.@abi_full@ lib/libgpm.so include $(DEPFILE) ## Release / Dist ## Cleanup clean: rm -f gpm lib/libgpm.a lib/libgpm.so.* $(RDEPS) rm -f core *~ $(GOBJ) $(LOBJ) $(POBJ) $(PICS) gpm-root.c $(DEPFILE) rm -f $(PROG) $(POBJ) prog/gpm-root.c prog/open_console.o distclean: clean rm -f headers/config.h headers/drivers.h \ Makefile $(DEPFILE) allclean: clean rm -f headers/config.h.in gpm-1.20.7/src/daemon/000077500000000000000000000000001204257734200144245ustar00rootroot00000000000000gpm-1.20.7/src/daemon/add_mouse.c000066400000000000000000000112701204257734200165310ustar00rootroot00000000000000/* * general purpose mouse support for Linux * * *several tools only needed by the server* * * Copyright (c) 2002-2008 Nico Schottelius * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ #include "headers/gpmInt.h" #include "headers/message.h" #include "headers/daemon.h" #include /* malloc() */ /* DESCR: add this to the list of mice. initialization follows later */ /* RETURN: - */ /* COMMENT: does error handling and exiting itself */ void add_mouse(int type, char *value) { struct micetab *tmp = option.micelist; /* PREAMBLE for all work: */ /* -m /dev/misc/psaux -t ps2 [ -o options ] */ switch(type) { /*---------------------------------------------------------------------*/ /********************** -m mousedevice *********************************/ /*---------------------------------------------------------------------*/ case GPM_ADD_DEVICE: /* first invocation */ if(option.micelist == NULL) { gpm_report(GPM_PR_DEBUG,"adding mouse device: %s",value); option.micelist = (struct micetab *) malloc(sizeof(struct micetab)); if(!option.micelist) gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); option.micelist->next = NULL; option.micelist->device = value; option.micelist->protocol = NULL; option.micelist->options = NULL; return; } /* find actual mouse */ while(tmp->device != NULL && tmp->protocol != NULL && tmp->next !=NULL) tmp = tmp->next; gpm_report(GPM_PR_DEBUG,"finished searching"); /* found end of micelist, add new mouse */ if(tmp->next == NULL && tmp->protocol != NULL) { gpm_report(GPM_PR_DEBUG,"next mouse making"); tmp->next = (struct micetab *) malloc(sizeof(struct micetab)); if(!tmp) gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); tmp->next = NULL; tmp->device = value; tmp->protocol = NULL; tmp->options = NULL; return; } else gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); //} else if(tmp->device != NULL && tmp->protocol == NULL) // gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); /* -m -m */ break; /*---------------------------------------------------------------------*/ /************************* -t type / protocol **************************/ /*---------------------------------------------------------------------*/ case GPM_ADD_TYPE: if(option.micelist == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); /* skip to next mouse, where either device or protocol is missing */ while(tmp->device != NULL && tmp->protocol != NULL && tmp->next !=NULL) tmp = tmp->next; /* check whether device (-m) is there, if so, write protocol */ if(tmp->device == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); else { gpm_report(GPM_PR_DEBUG,"adding mouse type: %s",value); tmp->protocol = value; option.no_mice++; /* finally we got our mouse */ } break; /*---------------------------------------------------------------------*/ /*************************** -o options ********************************/ /*---------------------------------------------------------------------*/ case GPM_ADD_OPTIONS: if(option.micelist == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); /* look for the last mouse */ tmp = option.micelist; while(tmp->next != NULL) tmp = tmp->next; /* if -m or -t are missing exit */ if(tmp->device == NULL || tmp->protocol == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); else { gpm_report(GPM_PR_DEBUG,"adding mouse options: %s",value); tmp->options = value; } break; } } gpm-1.20.7/src/daemon/build_argv.c000066400000000000000000000034511204257734200167110ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* str* */ #include /* calloc */ #include "headers/message.h" /* messaging in gpm */ /* build_argv is used for mouse initialization routines */ char **build_argv(char *argv0, char *str, int *argcptr, char sep) { int argc = 1; char **argv; char *s; /* argv0 is never NULL, but the extra string may well be */ if (str) for (s=str; sep && (s = strchr(s, sep)); argc++) s++; argv = calloc(argc+2, sizeof(char **)); if (!argv) gpm_report(GPM_PR_OOPS,GPM_MESS_ALLOC_FAILED); argv[0] = argv0; if (!str) { *argcptr = argc; /* 1 */ return argv; } /* else, add arguments */ s = argv[1] = strdup(str); argc = 2; /* first to fill */ /* ok, now split: the first one is in place, and s is the whole string */ for ( ; sep && (s = strchr(s, sep)) ; argc++) { *s = '\0'; s++; argv[argc] = s; } *argcptr = argc; return argv; } gpm-1.20.7/src/daemon/check_kill.c000066400000000000000000000040451204257734200166630ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* kill */ #include /* unlink */ #include /* exit */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ /* itz Sat Sep 12 10:55:51 PDT 1998 Added this as replacement for the unwanted functionality in check_uniqueness. */ void check_kill(void) { int old_pid; FILE* fp = fopen(GPM_NODE_PID, "r"); /* if we cannot find the old pid file, leave */ if (fp == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN, GPM_NODE_PID); /* else read the pid */ if (fscanf(fp,"%d",&old_pid) != 1) gpm_report(GPM_PR_OOPS,GPM_MESS_READ_PROB,GPM_NODE_PID); fclose(fp); gpm_report(GPM_PR_DEBUG,GPM_MESS_KILLING,old_pid); /* first check if we run */ if (kill(old_pid,0) == -1) { gpm_report(GPM_PR_INFO,GPM_MESS_STALE_PID, GPM_NODE_PID); unlink(GPM_NODE_PID); } /* then kill us (not directly, but the other instance ... ) */ if (kill(old_pid,SIGTERM) == -1) gpm_report(GPM_PR_OOPS,GPM_MESS_CANT_KILL, old_pid); gpm_report(GPM_PR_DEBUG,GPM_MESS_KILLED,old_pid); exit(0); } gpm-1.20.7/src/daemon/check_uniqueness.c000066400000000000000000000037011204257734200201250ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* kill */ #include /* kill, getpid */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ /* itz Sat Sep 12 10:30:05 PDT 1998 this function used to mix two completely different things; opening a socket to a running daemon and checking that a running daemon existed. Ugly. */ /* rewritten mostly on 20th of February 2002 - nico */ void check_uniqueness(void) { FILE *fp = 0; int old_pid = -1; if((fp = fopen(GPM_NODE_PID, "r")) != NULL) { fscanf(fp, "%d", &old_pid); if (kill(old_pid,0) == -1) { gpm_report(GPM_PR_INFO,GPM_MESS_STALE_PID, GPM_NODE_PID); unlink(GPM_NODE_PID); } else /* we are really running, exit asap! */ gpm_report(GPM_PR_OOPS,GPM_MESS_ALREADY_RUN, old_pid); } /* now try to sign ourself */ if ((fp = fopen(GPM_NODE_PID,"w")) != NULL) { fprintf(fp,"%d\n",getpid()); fclose(fp); } else { gpm_report(GPM_PR_OOPS,GPM_MESS_NOTWRITE,GPM_NODE_PID); } } gpm-1.20.7/src/daemon/cmdline.c000066400000000000000000000106741204257734200162130ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* atoi */ #include /* getopt */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ /***************************************************************************** * Check the command line and / or set the appropriate variables * Can't believe it, today cmdline() really does what the name tries to say *****************************************************************************/ void cmdline(int argc, char **argv) { extern struct options option; char options[]="a:A::b:B:d:Dg:hi:kl:m:Mo:pr:R::s:S:t:Tuv23"; int opt; /* initialize for the dual mouse */ mouse_table[2]=mouse_table[1]=mouse_table[0]; /* copy defaults */ which_mouse = mouse_table+1; /* use the first */ while ((opt = getopt(argc, argv, options)) != -1) { switch (opt) { case 'a': (which_mouse->opt_accel) = atoi(optarg); break; case 'A': opt_aged++; if (optarg) opt_age_limit = atoi(optarg); break; case 'b': (which_mouse->opt_baud) = atoi(optarg); break; case 'B': (which_mouse->opt_sequence) = optarg; break; case 'd': (which_mouse->opt_delta) = atoi(optarg); break; case 'D': option.run_status = GPM_RUN_DEBUG; break; case 'g': (which_mouse->opt_glidepoint_tap)=atoi(optarg); break; case 'h': exit(usage(NULL)); case 'i': (which_mouse->opt_time)=atoi(optarg); break; case 'k': check_kill(); break; case 'l': opt_lut = optarg; break; case 'm': add_mouse(GPM_ADD_DEVICE,optarg); (which_mouse->opt_dev) = optarg; break; /* GO AWAY!*/ case 'M': opt_double++; option.repeater++; if (option.repeater_type == 0) option.repeater_type = "msc"; which_mouse=mouse_table+2; break; case 'o': add_mouse(GPM_ADD_OPTIONS,optarg); gpm_report(GPM_PR_DEBUG,"options: %s",optarg); (which_mouse->opt_options) = optarg; break; /* GO AWAY */ case 'p': opt_ptrdrag = 0; break; case 'r': /* being called responsiveness, I must take the inverse */ (which_mouse->opt_scale)=atoi(optarg); if(!(which_mouse->opt_scale) || (which_mouse->opt_scale) > 100) (which_mouse->opt_scale)=100; /* the maximum */ else (which_mouse->opt_scale)=100/(which_mouse->opt_scale); break; case 'R': option.repeater++; if (optarg) option.repeater_type = optarg; else option.repeater_type = "msc"; break; case 's': (which_mouse->opt_sample) = atoi(optarg); break; case 'S': if (optarg) opt_special = optarg; else opt_special=""; break; case 't': add_mouse(GPM_ADD_TYPE,optarg); (which_mouse->opt_type) = optarg; break; /* GO AWAY */ case 'u': option.autodetect = 1; break; case 'T': opt_test++; break; case 'v': printf(GPM_MESS_VERSION "\n"); exit(0); case '2': (which_mouse->opt_three) = -1; break; case '3': (which_mouse->opt_three) = 1; break; default: exit(usage("commandline")); } } } gpm-1.20.7/src/daemon/disable_paste.c000066400000000000000000000021021204257734200173620ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ void disable_paste(int vc) { opt_aged++; gpm_report(GPM_PR_INFO,GPM_MESS_DISABLE_PASTE,vc); } gpm-1.20.7/src/daemon/do_client.c000066400000000000000000000042151204257734200165320ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* write */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ #include "headers/gpmInt.h" /* daemon internals */ /*-------------------------------------------------------------------*/ /* returns 0 if the event has not been processed, and 1 if it has */ int do_client(Gpm_Cinfo *cinfo, Gpm_Event *event) { Gpm_Connect info=cinfo->data; int fd=cinfo->fd; /* value to return if event is not used */ int res = !(info.defaultMask & event->type); /* instead of returning 0, scan the stack of clients */ if ((info.minMod & event->modifiers) < info.minMod) goto scan; if ((info.maxMod & event->modifiers) < event->modifiers) goto scan; /* if not managed, use default mask */ if (!(info.eventMask & GPM_BARE_EVENTS(event->type))) { if (res) return res; else goto scan; } /* WARNING */ /* This can generate a SIGPIPE... I'd better catch it */ MAGIC_P((write(fd,&magic, sizeof(int)))); write(fd,event, sizeof(Gpm_Event)); return info.defaultMask & GPM_HARD ? res : 1; /* HARD forces pass-on */ scan: if (cinfo->next != 0) return do_client (cinfo->next, event); /* try the next */ return 0; /* no next, not used */ } gpm-1.20.7/src/daemon/do_selection.c000066400000000000000000000052251204257734200172430ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ #include "headers/gpmInt.h" /* daemon internals */ /*-------------------------------------------------------------------*/ int do_selection(Gpm_Event *event) /* returns 0, always */ { static int x1=1, y1=1, x2, y2; #define UNPOINTER() 0 x2=event->x; y2=event->y; switch(GPM_BARE_EVENTS(event->type)) { case GPM_MOVE: if (x2<1) x2++; else if (x2>maxx) x2--; if (y2<1) y2++; else if (y2>maxy) y2--; selection_copy(x2,y2,x2,y2,3); /* just highlight pointer */ return 0; case GPM_DRAG: if (event->buttons==GPM_B_LEFT) { if (event->margin) /* fix margins */ switch(event->margin) { case GPM_TOP: x2=1; y2++; break; case GPM_BOT: x2=maxx; y2--; break; case GPM_RGT: x2--; break; case GPM_LFT: y2<=y1 ? x2++ : (x2=maxx, y2--); break; } selection_copy(x1,y1,x2,y2,event->clicks); if (event->clicks>=opt_ptrdrag && !event->margin) /* pointer */ selection_copy(x2,y2,x2,y2,3); } /* if */ return 0; case GPM_DOWN: switch (event->buttons) { case GPM_B_LEFT: x1=x2; y1=y2; selection_copy(x1,y1,x2,y2,event->clicks); /* start selection */ return 0; case GPM_B_MIDDLE: selection_paste(); return 0; case GPM_B_RIGHT: if ((which_mouse->opt_three)==1) selection_copy(x1,y1,x2,y2,event->clicks); else selection_paste(); return 0; } } /* switch above */ return 0; } gpm-1.20.7/src/daemon/find_mouse_by_name.c000066400000000000000000000035301204257734200204130ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* str* */ #include /* isspace */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ /***************************************************************************** * the function returns a valid type pointer or NULL if not found *****************************************************************************/ struct Gpm_Type *find_mouse_by_name(char *name) { Gpm_Type *type; char *s; int len = strlen(name); for (type=mice; type->fun; type++) { if (!strcasecmp(name, type->name)) break; /* otherwise, look in the synonym list */ for (s = type->synonyms; s; s = strchr(s, ' ')) { while (*s && isspace(*s)) s++; /* skip spaces */ if(!strncasecmp(name, s, len) && !isprint(*(s + len))) break;/*found*/ } if(s) break; /* found a synonym */ } if (!type->fun) return NULL; return type; } gpm-1.20.7/src/daemon/get_console_size.c000066400000000000000000000046351204257734200201330ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* close */ #include /* open */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ #include "headers/gpmInt.h" /* daemon internals */ void get_console_size(Gpm_Event *ePtr) { int i, prevmaxx, prevmaxy; struct mouse_features *which_mouse; /* local */ /* before asking the new console size, save the previous values */ prevmaxx = maxx; prevmaxy = maxy; i=open_console(O_RDONLY); ioctl(i, TIOCGWINSZ, &win); close(i); if (!win.ws_col || !win.ws_row) { gpm_report(GPM_PR_DEBUG,GPM_MESS_ZERO_SCREEN_DIM); win.ws_col=80; win.ws_row=25; } maxx=win.ws_col; maxy=win.ws_row; gpm_report(GPM_PR_DEBUG,GPM_MESS_SCREEN_SIZE,maxx,maxy); if (!prevmaxx) { /* first invocation, place the pointer in the middle */ statusX = ePtr->x = maxx/2; statusY = ePtr->y = maxy/2; } else { /* keep the pointer in the same position where it was */ statusX = ePtr->x = ePtr->x * maxx / prevmaxx; statusY = ePtr->y = ePtr->y * maxy / prevmaxy; } for (i=1; i <= 1+opt_double; i++) { which_mouse=mouse_table+i; /* used to access options */ /* * the following operation is based on the observation that 80x50 * has square cells. (An author-centric observation ;-) */ (which_mouse->opt_scaley)=(which_mouse->opt_scale)*50*maxx/80/maxy; gpm_report(GPM_PR_DEBUG,GPM_MESS_X_Y_VAL,(which_mouse->opt_scale),(which_mouse->opt_scaley)); } } gpm-1.20.7/src/daemon/get_data.c000066400000000000000000000033511204257734200163420ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* read */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ #include "headers/gpmInt.h" /* daemon internals */ /*-------------------------------------------------------------------* * This was inline, and incurred in a compiler bug (2.7.0) *-------------------------------------------------------------------*/ int get_data(Gpm_Connect *where, int whence) { static int i; #ifdef GPM_USE_MAGIC while ((i=read(whence,&check,sizeof(int)))==4 && check!=GPM_MAGIC) gpm_report(GPM_PR_INFO,GPM_MESS_NO_MAGIC); if (!i) return 0; if (check!=GPM_MAGIC) { gpm_report(GPM_PR_INFO,GPM_MESS_NOTHING_MORE); return -1; } #endif if ((i=read(whence, where, sizeof(Gpm_Connect)))!=sizeof(Gpm_Connect)) { return i ? -1 : 0; } return 1; } gpm-1.20.7/src/daemon/getmousedata.c000066400000000000000000000064721204257734200172630ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* guess what */ #include /* read */ #include /* exit */ #include /* strerror */ #include /* KD* */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ #include "headers/gpmInt.h" /* daemon internals */ /*------------------------------------------------------------------- * fetch the actual device data from the mouse device, dependent on * what Gpm_Type is being passed. *-------------------------------------------------------------------*/ char *getMouseData(int fd, Gpm_Type *type, int kd_mode) { static unsigned char data[32]; /* quite a big margin :) */ char *edata=data+type->packetlen; int howmany=type->howmany; int i,j; /*....................................... read and identify one byte */ if (read(fd, data, howmany)!=howmany) { if (opt_test) exit(0); gpm_report(GPM_PR_ERR,GPM_MESS_READ_FIRST, strerror(errno)); return NULL; } if (kd_mode!=KD_TEXT && fifofd != -1 && opt_rawrep) write(fifofd, data, howmany); if ((data[0]&((which_mouse->m_type)->proto)[0]) != ((which_mouse->m_type)->proto)[1]) { if ((which_mouse->m_type)->getextra == 1) { data[1]=GPM_EXTRA_MAGIC_1; data[2]=GPM_EXTRA_MAGIC_2; gpm_report(GPM_PR_DEBUG,GPM_EXTRA_DATA,data[0]); return data; } gpm_report(GPM_PR_DEBUG,GPM_MESS_PROT_ERR); return NULL; } /*....................................... read the rest */ /* * well, this seems to work almost right with ps2 mice. However, I've never * tried ps2 with the original selection package, which called usleep() */ if((i=(which_mouse->m_type)->packetlen-howmany)) /* still to get */ do { j = read(fd,edata-i,i); /* edata is pointer just after data */ if (kd_mode!=KD_TEXT && fifofd != -1 && opt_rawrep && j > 0) write(fifofd, edata-i, j); i -= j; } while (i && j); if (i) { gpm_report(GPM_PR_ERR,GPM_MESS_READ_REST, strerror(errno)); return NULL; } if ((data[1]&((which_mouse->m_type)->proto)[2]) != ((which_mouse->m_type)->proto)[3]) { gpm_report(GPM_PR_INFO,GPM_MESS_SKIP_DATA); return NULL; } gpm_report(GPM_PR_DEBUG,GPM_MESS_DATA_4,data[0],data[1],data[2],data[3]); return data; } gpm-1.20.7/src/daemon/gpm-killed.c000066400000000000000000000032021204257734200166120ustar00rootroot00000000000000/* * general purpose mouse support * * Copyright (C) 1993 Andreq Haylett * Copyright (C) 1994-1999 Alessandro Rubini * Copyright (C) 1998 Ian Zimmerman * Copyright (c) 2001-2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ #include /* SIG* */ #include /* exit() */ #include /* getpid() */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ void gpm_killed(int signo) { if(signo == SIGWINCH) { gpm_report(GPM_PR_WARN, GPM_MESS_RESIZING, option.progname, getpid()); opt_resize++; return; } if(signo==SIGUSR1) { gpm_report(GPM_PR_WARN,GPM_MESS_KILLED_BY, option.progname, getpid(), option.progname); } exit(0); } gpm-1.20.7/src/daemon/gpm.c000066400000000000000000000066651204257734200153700ustar00rootroot00000000000000/* * general purpose mouse support * * Copyright (C) 1993 Andreq Haylett * Copyright (C) 1994-1999 Alessandro Rubini * Copyright (C) 1998 Ian Zimmerman * Copyright (c) 2001-2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ #include #include #include /* strerror(); ?!? */ #include #include /* select(); */ #include /* SIGPIPE */ #include /* time() */ #include #include /* O_RDONLY */ #include /* wait() */ #include /* mkdir() */ #include /* timeval */ #include /* socket() */ #include /* socket() */ #include /* struct sockaddr_un */ #include /* VT_GETSTATE */ #include /* for serial console check */ #include /* KDGETMODE */ #include /* winsize */ #include "headers/gpmInt.h" /* old daemon header */ #include "headers/message.h" #include "headers/daemon.h" /* clean daemon header */ /* global variables that are in daemon.h */ struct options option; /* one should be enough for us */ Gpm_Type *repeated_type = 0; /* FIXME: BRAINDEAD..ok not really, but got to leave anyway... */ /* argc and argv for mice initialization */ int mouse_argc[3]; /* 0 for default (unused) and two mice */ char **mouse_argv[3]; /* 0 for default (unused) and two mice */ int opt_aged = 0; int statusX,statusY,statusB; /* to return info */ /* * all the values duplicated for dual-mouse operation are * now in this structure (see gpmInt.h) * mouse_table[0] is single mouse, mouse_table[1] and mouse_table[2] * are copied data from mouse_table[0] for dual mouse operation. */ struct mouse_features mouse_table[3] = { { DEF_TYPE, DEF_DEV, DEF_SEQUENCE, DEF_BAUD, DEF_SAMPLE, DEF_DELTA, DEF_ACCEL, DEF_SCALE, 0 /* scaley */, DEF_TIME, DEF_CLUSTER, DEF_THREE, DEF_GLIDEPOINT_TAP, (char *)NULL /* extra */, (Gpm_Type *)NULL, -1 } }; struct mouse_features *which_mouse; /* These are only the 'global' options */ char *opt_lut=DEF_LUT; int opt_test=DEF_TEST; int opt_ptrdrag=DEF_PTRDRAG; int opt_double=0; char *opt_special=NULL; /* special commands, like reboot or such */ int opt_rawrep=0; struct winsize win; int maxx, maxy; int fifofd=-1; int eventFlag=0; Gpm_Cinfo *cinfo[MAX_VC+1]; time_t last_selection_time; time_t opt_age_limit = 0; int opt_resize=0; /* not really an option */ int statusC = 0; /* clicks */ void get_console_size(Gpm_Event *ePtr); /* in daemon.h */ fd_set selSet, readySet, connSet; gpm-1.20.7/src/daemon/gpm_exited.c000066400000000000000000000022761204257734200167240ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* unlink,geteuid */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ /* what todo atexit */ void gpm_exited(void) { gpm_report(GPM_PR_DEBUG,GPM_MESS_REMOVE_FILES, GPM_NODE_PID, GPM_NODE_CTL); unlink(GPM_NODE_PID); unlink(GPM_NODE_CTL); } gpm-1.20.7/src/daemon/header.c000066400000000000000000000017361204257734200160270ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ gpm-1.20.7/src/daemon/init_mice.c000066400000000000000000000032361204257734200165340ustar00rootroot00000000000000/* * general purpose mouse support for Linux * * *several tools only needed by the server* * * Copyright (c) 2002-2008 Nico Schottelius * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ #include "headers/gpmInt.h" #include "headers/message.h" #include "headers/daemon.h" #include /* malloc() */ /* DESCR: mice initialization. currently print mice. */ /* RETURN: 0 - failed to init one or more devices 1 - init was fine */ /* COMMENT: does error handling and exiting itself */ int init_mice(struct micetab *micelist) { struct micetab *tmp = micelist; while(tmp != NULL) { /* there are still mice to init */ gpm_report(GPM_PR_DEBUG,"initialize %s with proto %s",tmp->device,tmp->protocol); if(tmp->options != NULL) { gpm_report(GPM_PR_DEBUG,"and options %s",tmp->options); } tmp = tmp->next; } gpm_report(GPM_PR_DEBUG,"finished initialization"); return 1; } gpm-1.20.7/src/daemon/loadlut.c000066400000000000000000000057621204257734200162460ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* datatypes */ #include /* open */ #include /* malloc */ #include /* str* */ #include /* errno.h */ #include /* getuid */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ #include "headers/gpmInt.h" /* GPM_SYS_CONSOLE */ int loadlut(char *charset) { int i, c, fd; unsigned char this, next; static uint32_t long_array[9]={ 0x05050505, /* ugly, but preserves alignment */ 0x00000000, /* control chars */ 0x00000000, /* digits */ 0x00000000, /* uppercase and '_' */ 0x00000000, /* lowercase */ 0x00000000, /* Latin-1 control */ 0x00000000, /* Latin-1 misc */ 0x00000000, /* Latin-1 uppercase */ 0x00000000 /* Latin-1 lowercase */ }; #define inwordLut (long_array+1) for (i=0; charset[i]; ) { i += getsym(charset+i, &this); if (charset[i] == '-' && charset[i + 1] != '\0') i += getsym(charset+i+1, &next) + 1; else next = this; for (c = this; c <= next; c++) inwordLut[c>>5] |= 1 << (c&0x1F); } if ((fd=open(option.consolename, O_WRONLY)) < 0) { /* try /dev/console, if /dev/tty0 failed -- is that really senseful ??? */ free(option.consolename); /* allocated by main */ if((option.consolename=malloc(strlen(GPM_SYS_CONSOLE)+1)) == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); /* FIXME: remove hardcoded device names */ strcpy(option.consolename,GPM_SYS_CONSOLE); if ((fd=open(option.consolename, O_WRONLY)) < 0) gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN_CON); } if (ioctl(fd, TIOCLINUX, &long_array) < 0) { /* fd <0 is checked */ if (errno==EPERM && getuid()) gpm_report(GPM_PR_WARN,GPM_MESS_ROOT); /* why do we still continue?*/ else if (errno==EINVAL) gpm_report(GPM_PR_OOPS,GPM_MESS_CSELECT); } close(fd); return 0; } gpm-1.20.7/src/daemon/main.c000066400000000000000000000023121204257734200155120ustar00rootroot00000000000000/* * general purpose mouse support for Linux * * *main.c* * * Copyright (c) 2002 Nico Schottelius * * small main routine * * isn't that a nice clean function ? * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ #include "headers/daemon.h" #include "headers/gpmInt.h" int main(int argc, char **argv) { startup(argc,argv); /* setup configurations */ old_main(); /* LATER: exit(daemon()); */ return 0; /* if we didn't exit before, just give back success */ } gpm-1.20.7/src/daemon/old_main.c000066400000000000000000000207641204257734200163630ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* UNIX */ #include /* SOCKET */ #include /* open */ #include /* guess again */ #include /* guess again */ #include /* unlink */ #include /* chmod */ #include /* linux hd* */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ #include "headers/gpmInt.h" /* daemon internals */ #ifndef max #define max(a,b) ((a)>(b) ? (a) : (b)) #endif int old_main() { int ctlfd, newfd; struct sockaddr_un ctladdr; int i, len, kd_mode, fd; struct timeval timeout; int maxfd=-1; int pending; Gpm_Event event; for (i = 1; i <= 1+opt_double; i++) { which_mouse=mouse_table+i; /* used to access options */ if (!(which_mouse->opt_dev)) gpm_report(GPM_PR_OOPS,GPM_MESS_NEED_MDEV); if(!strcmp((which_mouse->opt_dev),"-")) fd=0; /* use stdin */ else if( (fd=open((which_mouse->opt_dev),O_RDWR | O_NDELAY)) < 0) gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN,(which_mouse->opt_dev)); /* and then reset the flag */ fcntl(fd,F_SETFL,fcntl(fd,F_GETFL) & ~O_NDELAY); /* create argc and argv for this device */ mouse_argv[i] = build_argv((which_mouse->opt_type), (which_mouse->opt_options), &mouse_argc[i], ','); /* init the device, and use the return value as new mouse type */ if ((which_mouse->m_type)->init) (which_mouse->m_type)=((which_mouse->m_type)->init)(fd, (which_mouse->m_type)->flags, (which_mouse->m_type), mouse_argc[i], mouse_argv[i]); if (!(which_mouse->m_type)) gpm_report(GPM_PR_OOPS,GPM_MESS_MOUSE_INIT); which_mouse->fd=fd; maxfd=max(fd, maxfd); } /*....................................... catch interesting signals */ signal(SIGTERM, gpm_killed); signal(SIGINT, gpm_killed); signal(SIGUSR1, gpm_killed); /* usr1 is used by a new gpm killing the old */ signal(SIGWINCH,gpm_killed); /* winch can be sent if console is resized */ /*....................................... create your nodes */ /* control node */ if((ctlfd=socket(AF_UNIX,SOCK_STREAM,0))==-1) gpm_report(GPM_PR_OOPS,GPM_MESS_SOCKET_PROB); bzero((char *)&ctladdr,sizeof(ctladdr)); ctladdr.sun_family=AF_UNIX; strcpy(ctladdr.sun_path,GPM_NODE_CTL); unlink(GPM_NODE_CTL); len=sizeof(ctladdr.sun_family)+strlen(GPM_NODE_CTL); if(bind(ctlfd,(struct sockaddr *)(&ctladdr),len) == -1) gpm_report(GPM_PR_OOPS,GPM_MESS_BIND_PROB,ctladdr.sun_path); maxfd=max(maxfd,ctlfd); /* needs to be 0777, so all users can _try_ to access gpm */ chmod(GPM_NODE_CTL,0777); get_console_size(&event); /* get screen dimensions */ /*....................................... wait for mouse and connections */ listen(ctlfd, 5); /* Queue up calls */ #define NULL_SET ((fd_set *)NULL) #define resetTimeout() (timeout.tv_sec=SELECT_TIME,timeout.tv_usec=0) FD_ZERO(&connSet); FD_SET(ctlfd,&connSet); if (opt_double) FD_SET(mouse_table[2].fd,&connSet); readySet=connSet; FD_SET(mouse_table[1].fd,&readySet); signal(SIGPIPE,SIG_IGN); /* WARN */ /*--------------------------------------- main loop begins here */ while(1) { selSet=readySet; resetTimeout(); if (opt_test) timeout.tv_sec=0; if (eventFlag) { /* an event left over by clustering */ pending=1; FD_ZERO(&selSet); FD_SET(mouse_table[eventFlag].fd,&selSet); } else while((pending=select(maxfd+1,&selSet,NULL_SET,NULL_SET,&timeout))==0){ selSet=readySet; resetTimeout(); } /* go on */ if(opt_resize) { /* did the console resize? */ get_console_size(&event); opt_resize--; signal(SIGWINCH,gpm_killed); /* reinstall handler */ /* and notify clients */ for(i=0; inext) kill(ci->data.pid,SIGWINCH); } } if (pending < 0) { if (errno==EBADF) gpm_report(GPM_PR_OOPS,GPM_MESS_SELECT_PROB); gpm_report(GPM_PR_ERR,GPM_MESS_SELECT_STRING,strerror(errno)); selSet=readySet; resetTimeout(); continue; } gpm_report(GPM_PR_DEBUG,GPM_MESS_SELECT_TIMES,pending); /*....................................... manage graphic mode */ /* * Be sure to be in text mode. This used to be before select, * but actually it only matters if you have events. */ { int fd = open_console(O_RDONLY); if (ioctl(fd, KDGETMODE, &kd_mode) < 0) gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_KDGETMODE); close(fd); if(kd_mode != KD_TEXT && !option.repeater) { wait_text(&mouse_table[1].fd); maxfd=max(maxfd,mouse_table[1].fd); readySet=connSet; FD_SET(mouse_table[1].fd,&readySet); continue; /* reselect */ } } /*....................................... got mouse, process event */ /* * Well, actually, run a loop to maintain inlining of functions without * lenghtening the file. This is not too clean a code, but it works.... */ for (i=1; i <= 1+opt_double; i++) { which_mouse=mouse_table+i; /* used to access options */ if (FD_ISSET(which_mouse->fd,&selSet)) { FD_CLR(which_mouse->fd,&selSet); pending--; if (processMouse(which_mouse->fd, &event, (which_mouse->m_type), kd_mode)) /* pass it to the client, if any * or to the default handler, if any * or to the selection handler */ /* FIXME -- check event.vc */ /* can't we please rewrite the following a bit nicer?*/ (cinfo[event.vc] && do_client(cinfo[event.vc], &event)) || (cinfo[0] && do_client(cinfo[0], &event)) || do_selection(&event); } } /*..................... got connection, process it */ if (pending && FD_ISSET(ctlfd,&selSet)) { FD_CLR(ctlfd,&selSet); pending--; newfd=processConn(ctlfd); if (newfd>=0) { FD_SET(newfd,&connSet); FD_SET(newfd,&readySet); maxfd=max(maxfd,newfd); } } /*........................ got request */ /* itz 10-22-96 check _all_ clients, not just those on top! */ for (i=0; pending && (i<=MAX_VC); i++) { Gpm_Cinfo* ci; for (ci = cinfo[i]; pending && ci; ci = ci->next) { if (FD_ISSET(ci->fd,&selSet)) { FD_CLR(ci->fd,&selSet); pending--; /* itz Sat Sep 12 21:10:22 PDT 1998 */ /* this code is clearly incorrect; the next highest descriptor after the one we're closing is not necessarily being used. Fortunately, it doesn't hurt simply to leave this out. */ #ifdef NOTDEF if ((processRequest(ci,i)==-1) && maxfd==ci->fd) maxfd--; #else (void)processRequest(ci,i); #endif } } } /*.................. look for a spare fd */ /* itz 10-22-96 this shouldn't happen now! */ for (i=0; pending && i<=maxfd; i++) { if (FD_ISSET(i,&selSet)) { FD_CLR(i,&selSet); pending--; gpm_report(GPM_PR_WARN,GPM_MESS_STRANGE_DATA,i); } } /*................... all done. */ if(pending) gpm_report(GPM_PR_OOPS,GPM_MESS_SELECT_PROB); } /* while(1) */ } gpm-1.20.7/src/daemon/open_console.c000066400000000000000000000036551204257734200172640ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* open and co. */ #include /* stat() */ #include /* ioctl */ /* Linux specific (to be outsourced in gpm2 */ #include /* for serial console check */ #include /* for serial console check */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ int open_console(const int mode) { int fd; int maj; int twelve = 12; struct serial_struct si; struct stat sb; fd = open(option.consolename, mode); if (fd != -1) { fstat(fd, &sb); maj = major(sb.st_rdev); if (maj != 4 && (maj < 136 || maj > 143)) { if (ioctl(fd, TIOCLINUX, &twelve) < 0) { if (si.line > 0) { gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN_SERIALCON); } } } } else gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN_CON); return fd; } gpm-1.20.7/src/daemon/processconn.c000066400000000000000000000114211204257734200171230ustar00rootroot00000000000000 /* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* accept */ #include /* malloc */ #include /* close */ #include /* unix socket */ #include /* stat */ #include /* str* */ #include /* errno.h */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ int processConn(int fd) { /* returns newfd or -1 */ Gpm_Cinfo *info; Gpm_Connect *request; Gpm_Cinfo *next; int vc, newfd; socklen_t len; struct sockaddr_un addr; /* reuse this each time */ struct stat statbuf; uid_t uid; char *tty = NULL; /*....................................... Accept */ bzero((char *) &addr, sizeof(addr)); addr.sun_family = AF_UNIX; len = sizeof(addr); if((newfd = accept(fd, (struct sockaddr *) &addr, &len)) == -1) { gpm_report(GPM_PR_ERR, GPM_MESS_ACCEPT_FAILED, strerror(errno)); return -1; } gpm_report(GPM_PR_DEBUG, GPM_MESS_CONECT_AT, newfd); info = malloc(sizeof(Gpm_Cinfo)); if(!info) gpm_report(GPM_PR_OOPS, GPM_MESS_NO_MEM); request = &(info->data); if(get_data(request, newfd) == -1) { free(info); close(newfd); return -1; } if((vc = request->vc) > MAX_VC) { gpm_report(GPM_PR_DEBUG, GPM_MESS_REQUEST_ON, vc, MAX_VC); free(info); close(newfd); return -1; } #ifndef SO_PEERCRED if(stat(addr.sun_path, &statbuf) == -1 || !S_ISSOCK(statbuf.st_mode)) { gpm_report(GPM_PR_ERR, GPM_MESS_ADDRES_NSOCKET, addr.sun_path); free(info); /* itz 10-12-95 verify client's right */ close(newfd); return -1; /* to read requested tty */ } unlink(addr.sun_path); /* delete socket */ staletime = time(0) - 30; if(statbuf.st_atime < staletime || statbuf.st_ctime < staletime || statbuf.st_mtime < staletime) { gpm_report(GPM_PR_ERR, GPM_MESS_SOCKET_OLD); free(info); close(newfd); return -1; /* socket is ancient */ } uid = statbuf.st_uid; /* owner of socket */ #else { struct ucred sucred; socklen_t credlen = sizeof(struct ucred); if(getsockopt(newfd, SOL_SOCKET, SO_PEERCRED, &sucred, &credlen) == -1) { gpm_report(GPM_PR_ERR, GPM_MESS_GETSOCKOPT, strerror(errno)); free(info); close(newfd); return -1; } uid = sucred.uid; gpm_report(GPM_PR_DEBUG, GPM_MESS_PEER_SCK_UID, uid); } #endif if(uid != 0) { if((tty = malloc(strlen(option.consolename) + Gpm_cnt_digits(vc) + sizeof(char))) == NULL) gpm_report(GPM_PR_OOPS, GPM_MESS_NO_MEM); strncpy(tty, option.consolename, strlen(option.consolename) - 1); sprintf(&tty[strlen(option.consolename) - 1], "%d", vc); if(stat(tty, &statbuf) == -1) { gpm_report(GPM_PR_ERR, GPM_MESS_STAT_FAILS, tty); free(info); free(tty); close(newfd); return -1; } if(uid != statbuf.st_uid) { gpm_report(GPM_PR_WARN, GPM_MESS_FAILED_CONNECT, uid, tty); /* SUSPECT! */ free(info); free(tty); close(newfd); return -1; } free(tty); /* at least here it's not needed anymore */ } /* * register the connection information in the right place */ info->next = next = cinfo[vc]; info->fd = newfd; cinfo[vc] = info; gpm_report(GPM_PR_DEBUG, GPM_MESS_LONG_STATUS, request->pid, request->vc, request->eventMask, request->defaultMask, request->minMod, request->maxMod); /* * if the client gets motions, give it the current position */ if(request->eventMask & GPM_MOVE) { Gpm_Event event = { 0, 0, vc, 0, 0, statusX, statusY, GPM_MOVE, 0, 0 }; do_client(info, &event); } return newfd; } gpm-1.20.7/src/daemon/processmouse.c000066400000000000000000000232731204257734200173260ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * call getMouseData to get hardware device data, call mouse device's fun() * to retrieve the hardware independent event data, then optionally repeat * the data via repeat_fun() to the repeater device * ********/ #include /* stat */ #include /* KD */ #include /* vt */ #include /* open */ #include /* close */ #include /* time */ #include /* gettimeofday */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ #define abs(value) ((value) < 0 ? -(value) : (value)) #define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL)) #define DIF_TIME(t1,t2) ((t2.tv_sec -t1.tv_sec) *1000 + \ (t2.tv_usec-t1.tv_usec)/1000) int processMouse(int fd, Gpm_Event *event, Gpm_Type *type, int kd_mode) { char *data; static int fine_dx, fine_dy, i, j, m, newB=0, /* old buttons and Type to chain events */ oldB=0, oldT=0; static Gpm_Event nEvent; static struct vt_stat stat; static struct timeval tv1={0,0}, tv2; /* tv1==0: first click is single */ static struct timeval timeout={0,0}; fd_set fdSet; oldT = event->type; if(eventFlag) { eventFlag=0; if((which_mouse->m_type)->absolute) { /* a pen or other absolute device */ event->x=nEvent.x; event->y=nEvent.y; } event->dx=nEvent.dx; event->dy=nEvent.dy; event->buttons=nEvent.buttons; } else { event->dx=event->dy = 0; event->wdx=event->wdy = 0; nEvent.modifiers = 0; /* some mice set them */ i = 0; FD_ZERO(&fdSet); FD_SET(fd,&fdSet); do { /* cluster loop */ if(((data=getMouseData(fd, (which_mouse->m_type), kd_mode)) == NULL) || ((*((which_mouse->m_type)->fun))(&nEvent,data)==-1) ) { if (!i) { return 0; } else { break; } } event->modifiers = nEvent.modifiers; /* propagate modifiers */ /* propagate buttons */ nEvent.buttons = ((which_mouse->opt_sequence)[nEvent.buttons&7]&7) | (nEvent.buttons & ~7); /* change the order */ oldB=newB; newB=nEvent.buttons; if (!i) event->buttons=nEvent.buttons; if (oldB != newB) { eventFlag = (i!=0)*(which_mouse-mouse_table); /* 1 or 2 */ break; } /* propagate movement */ if (!((which_mouse->m_type)->absolute)) { /* mouse */ if (abs(nEvent.dx)+abs(nEvent.dy) > (which_mouse->opt_delta)) nEvent.dx*=(which_mouse->opt_accel), nEvent.dy*=(which_mouse->opt_accel); /* increment the reported dx,dy */ event->dx+=nEvent.dx; event->dy+=nEvent.dy; } else { /* a pen */ /* get dx,dy to check if there has been movement */ event->dx = (nEvent.x) - (event->x); event->dy = (nEvent.y) - (event->y); } /* propagate wheel */ event->wdx += nEvent.wdx; event->wdy += nEvent.wdy; select(fd+1,&fdSet,(fd_set *)NULL,(fd_set *)NULL,&timeout/* zero */); } while (i++ <(which_mouse->opt_cluster) && nEvent.buttons==oldB && FD_ISSET(fd,&fdSet)); } /* if(eventFlag) */ /*....................................... update the button number */ if ((event->buttons&GPM_B_MIDDLE) && !(which_mouse->opt_three)) (which_mouse->opt_three)++; /*....................................... we're a repeater, aren't we? */ if (kd_mode!=KD_TEXT) { if (fifofd != -1 && ! opt_rawrep) { if ((which_mouse->m_type)->absolute) { /* hof Wed Feb 3 21:43:28 MET 1999 */ /* prepare the values from a absolute device for repeater mode */ static struct timeval rept1,rept2; gettimeofday(&rept2, (struct timezone *)NULL); if (((rept2.tv_sec -rept1.tv_sec) *1000+(rept2.tv_usec-rept1.tv_usec)/1000)>250) { event->dx=0; event->dy=0; } rept1=rept2; event->dy=event->dy*((win.ws_col/win.ws_row)+1); event->x=nEvent.x; event->y=nEvent.y; } repeated_type->repeat_fun(event, fifofd); /* itz Jan 11 1999 */ } return 0; /* no events nor information for clients */ } /* first if of these three */ /*....................................... no, we arent a repeater, go on */ /* use fine delta values now, if delta is the information */ if (!((which_mouse->m_type))->absolute) { fine_dx+=event->dx; fine_dy+=event->dy; event->dx=fine_dx/(which_mouse->opt_scale); event->dy=fine_dy/(which_mouse->opt_scaley); fine_dx %= (which_mouse->opt_scale); fine_dy %= (which_mouse->opt_scaley); } /* up and down, up and down, ... who does a do..while(0) loop ??? and then makes a break into it... argh ! */ /* rodney 13/mar/2008 wheel movement similar to mouse movement * must also be excluded from time (click) processing */ if (!event->dx && !event->dy && !event->wdx && !event->wdy && (event->buttons==oldB) ) do { /* so to break */ static long awaketime; /* * Ret information also if never happens, but enough time has elapsed. * Note: return 1 will segfault due to missing event->vc; FIXME! */ if (time(NULL)<=awaketime) return 0; awaketime=time(NULL)+1; break; } while (0); /*....................................... fill missing fields */ event->x+=event->dx, event->y+=event->dy; statusB=event->buttons; i=open_console(O_RDONLY); /* modifiers */ j = event->modifiers; /* save them */ event->modifiers=6; /* code for the ioctl */ if (ioctl(i,TIOCLINUX,&(event->modifiers))<0) gpm_report(GPM_PR_OOPS,GPM_MESS_GET_SHIFT_STATE); event->modifiers |= j; /* add mouse-specific bits */ /* status */ j = stat.v_active; if (ioctl(i,VT_GETSTATE,&stat)<0) gpm_report(GPM_PR_OOPS,GPM_MESS_GET_CONSOLE_STAT); /* * if we changed console, request the current console size, * as different consoles can be of different size */ if (stat.v_active != j) get_console_size(event); close(i); event->vc = stat.v_active; if (oldB==event->buttons) event->type = (event->buttons ? GPM_DRAG : GPM_MOVE); else event->type = (event->buttons > oldB ? GPM_DOWN : GPM_UP); switch(event->type) { /* now provide the cooked bits */ case GPM_DOWN: GET_TIME(tv2); if (tv1.tv_sec && (DIF_TIME(tv1,tv2)<(which_mouse->opt_time))) /* check first click */ statusC++, statusC%=3; /* 0, 1 or 2 */ else statusC=0; event->type|=(GPM_SINGLE<buttons^=oldB; /* for button-up, tell which one */ event->type|= (oldT&GPM_MFLAG); event->type|=(GPM_SINGLE<type |= GPM_MFLAG; event->type|=(GPM_SINGLE<clicks=statusC; /* UGLY - FIXME! */ /* The current policy is to force the following behaviour: * - At buttons up, must fit inside the screen, though flags are set. * - At button down, allow going outside by one single step */ /* selection used 1-based coordinates, so do I */ /* * 1.05: only one margin is current. Y takes priority over X. * The i variable is how much margin is allowed. "m" is which one is there. */ m = 0; i = ((event->type&(GPM_DRAG|GPM_UP))!=0); /* i is boolean */ if (event->y>win.ws_row) {event->y=win.ws_row+1-!i; i=0; m = GPM_BOT;} else if (event->y<=0) {event->y=1-i; i=0; m = GPM_TOP;} if (event->x>win.ws_col) {event->x=win.ws_col+1-!i; if (!m) m = GPM_RGT;} else if (event->x<=0) {event->x=1-i; if (!m) m = GPM_LFT;} event->margin=m; gpm_report(GPM_PR_DEBUG,"dx: %3i dy: %3i x: %3i y: %3i butt: %i vc: %i clicks: %i", event->dx,event->dy, event->x,event->y, event->buttons, event->vc, event->clicks); /* update the global state */ statusX=event->x; statusY=event->y; if (opt_special && event->type & GPM_DOWN) return processSpecial(event); return 1; } gpm-1.20.7/src/daemon/processrequest.c000066400000000000000000000067411204257734200176670ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* close */ #include /* open */ #include /* free */ #include /* vt */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ int processRequest(Gpm_Cinfo *ci, int vc) { int i; Gpm_Cinfo *cinfoPtr; Gpm_Cinfo *next; Gpm_Connect conn; static Gpm_Event event; static struct vt_stat stat; gpm_report(GPM_PR_INFO, GPM_MESS_CON_REQUEST, ci->fd, vc); if (vc>MAX_VC) return -1; /* itz 10-22-96 this shouldn't happen now */ if (vc==-1) gpm_report(GPM_PR_OOPS, GPM_MESS_UNKNOWN_FD); i=get_data(&conn,ci->fd); if (!i) { /* no data */ gpm_report(GPM_PR_DEBUG, GPM_MESS_CLOSE); close(ci->fd); FD_CLR(ci->fd,&connSet); FD_CLR(ci->fd,&readySet); if (cinfo[vc]->fd == ci->fd) { /* it was on top of the stack */ cinfoPtr = cinfo[vc]; cinfo[vc]=cinfo[vc]->next; /* pop the stack */ free(cinfoPtr); return -1; } /* somewhere inside the stack, have to walk it */ cinfoPtr = cinfo[vc]; while (cinfoPtr && cinfoPtr->next) { if (cinfoPtr->next->fd == ci->fd) { next = cinfoPtr->next; cinfoPtr->next = next->next; free (next); break; } cinfoPtr = cinfoPtr->next; } return -1; } /* not data */ if (i == -1) return -1; /* too few bytes */ if (conn.pid!=0) { ci->data = conn; return 0; } /* Aha, request for information (so-called snapshot) */ switch(conn.vc) { case GPM_REQ_SNAPSHOT: i = open_console(O_RDONLY); ioctl(i,VT_GETSTATE,&stat); event.modifiers=6; /* code for the ioctl */ if (ioctl(i,TIOCLINUX,&(event.modifiers))<0) gpm_report(GPM_PR_OOPS,GPM_MESS_GET_SHIFT_STATE); close(i); event.vc = stat.v_active; event.x=statusX; event.y=statusY; event.dx=maxx; event.dy=maxy; event.buttons= statusB; event.clicks=statusC; /* fall through */ /* missing break or do you want this ??? */ case GPM_REQ_BUTTONS: event.type= ((which_mouse->opt_three)==1 ? 3 : 2); /* buttons */ write(ci->fd,&event,sizeof(Gpm_Event)); break; case GPM_REQ_NOPASTE: disable_paste(vc); break; } return 0; } /*-------------------------------------------------------------------*/ gpm-1.20.7/src/daemon/processspecial.c000066400000000000000000000120771204257734200176160ustar00rootroot00000000000000/* * special commands support for gpm * * Copyright 1996 Alessandro Rubini * Copyright 1998 Ian Zimmerman * Copyright 2001-2008 Nico Schottelius * * Based on an idea by KARSTEN@piobelix.physik.uni-karlsruhe.de * (Karsten Ballueder) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ /* This file is compiled conditionally, see the Makefile */ #include #include #include #include #include #include #include #include #include #include "headers/gpmInt.h" #include "headers/daemon.h" /* daemon internals */ /* * This function is only called at button press, to avoid unnecessary * overhead due to function call at every mouse event */ static int special_status = 0; /* turns on when active */ static int did_parse = 0; /* * The actions are described by these strings. The default is: * left: kill -2 init * middle: shutdown -h now * right: shutdown -r now * * such a default can be overridden by the argument of the "-S" command. * This arg is a colon-separated list of commands. An empty command * is used to make gpm kill init */ static char *commandL=NULL; /* kill init */ static char *commandM="shutdown -h now"; static char *commandR="shutdown -r now"; /* * The return value is 0 if the event has been eaten, * 1 if the event is passed on */ int processSpecial(Gpm_Event *event) { char *command=NULL; int i; FILE *consolef; if ((event->type & GPM_TRIPLE) && (event->buttons == (GPM_B_LEFT|GPM_B_RIGHT))) /* trigger */ special_status=time(NULL); if (!special_status) /* not triggered: return */ return 1; /* devfs change */ consolef=fopen(option.consolename,"w"); if (!consolef) consolef=stderr; if (event->type & GPM_TRIPLE) /* just triggered: make noise and return */ { if (!did_parse) { did_parse++; if (opt_special && opt_special[0]) /* not empty */ { commandL = opt_special; commandM = strchr(opt_special, ':'); if (commandM) { *commandM='\0'; commandM++; commandR = strchr(commandM, ':'); if (commandR) { *commandR='\0'; commandR++; } } } } fprintf(consolef,"\n%s: release all the mouse buttons and press " "one of them\n\twithin three seconds in order to invoke " "a special command\a\a\a\n", option.progname); #ifdef DEBUG fprintf(consolef,"gpm special: the commands are \"%s\", \"%s\", \"%s\"\n", commandL, commandM, commandR); #endif if (consolef!=stderr) fclose(consolef); return 0; /* eaten */ } if (time(NULL) > special_status+3) { fprintf(consolef,"\n%s: timeout: no special command taken\n", option.progname); if (consolef!=stderr) fclose(consolef); special_status=0; return 0; /* eaten -- don't paste or such on this event */ } special_status=0; /* run now, prevent running next time */ #ifdef DEBUG fprintf(consolef,"going to run: buttons is %i\n",event->buttons); #endif switch(event->buttons) { case GPM_B_LEFT: command=commandL; break; case GPM_B_MIDDLE: command=commandM; break; case GPM_B_RIGHT: command=commandR; break; default: fprintf(consolef,"\n%s: more than one button: " "special command discarded\n",option.progname); if (consolef!=stderr) fclose(consolef); return 0; /* eaten */ } fprintf(consolef,"\n%s: executing ", option.progname); if (!command || !command[0]) { fprintf(consolef,"hard reboot (by signalling init)\n"); if (consolef!=stderr) fclose(consolef); kill(1,2); /* kill init: shutdown now */ return 0; } fprintf(consolef,"\"%s\"\n",command); if (consolef!=stderr) fclose(consolef); switch(fork()) { case -1: /* error */ fprintf(stderr,"%s: fork(): %s\n", option.progname, strerror(errno)); return 0; /* Hmmm.... error */ case 0: /* child */ close(0); close(1); close(2); open(GPM_NULL_DEV,O_RDONLY); /* stdin */ open(option.consolename,O_WRONLY); /* stdout */ dup(1); /* stderr */ int open_max = sysconf(_SC_OPEN_MAX); if (open_max == -1) open_max = 1024; for (i=3;i * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ #include "headers/gpmInt.h" #include "headers/message.h" #include "headers/daemon.h" #include /* malloc() */ /* DESCR: when leaving, we should reset mice to their normal state */ /* RETURN: 0 - failed to reset one or more devices 1 - reset was fine */ /* COMMENT: does error handling and exiting itself */ int reset_mice(struct micetab *micelist) { struct micetab *tmp = micelist; struct micetab *end = tmp; while(tmp != NULL) { /* FIXME! I never get NULL, as free()d before */ end = tmp; while(tmp->next != NULL) { /* set end to the last mouse */ end = tmp; tmp = tmp->next; } gpm_report(GPM_PR_DEBUG,"reset: %s with proto %s",end->device,end->protocol); if(tmp->options != NULL) { gpm_report(GPM_PR_DEBUG,"and options %s",end->options); } free(end); /* be clean() */ tmp = micelist; /* reset to the first mice again */ } return 1; } gpm-1.20.7/src/daemon/selection_copy.c000066400000000000000000000040541204257734200176120ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* open */ #include /* close */ #include /* time */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ void selection_copy(int x1, int y1, int x2, int y2, int mode) { /* * The approach in "selection" causes a bus error when run under SunOS 4.1 * due to alignment problems... */ unsigned char buf[6*sizeof(short)]; unsigned short *arg = (unsigned short *)buf + 1; int fd; buf[sizeof(short)-1] = 2; /* set selection */ arg[0]=(unsigned short)x1; arg[1]=(unsigned short)y1; arg[2]=(unsigned short)x2; arg[3]=(unsigned short)y2; arg[4]=(unsigned short)mode; if ((fd=open_console(O_WRONLY))<0) gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN_CON); /* FIXME: should be replaced with string constant (headers/message.h) */ gpm_report(GPM_PR_DEBUG,"ctl %i, mode %i",(int)*buf, arg[4]); if (ioctl(fd, TIOCLINUX, buf+sizeof(short)-1) < 0) gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_TIOCLINUX); close(fd); if (mode < 3) { opt_aged = 0; last_selection_time = time(0); } } gpm-1.20.7/src/daemon/selection_paste.c000066400000000000000000000030551204257734200177540ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* time */ #include /* open */ #include /* close */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ void selection_paste(void) { char c=3; int fd; if (!opt_aged && (0 != opt_age_limit) && (last_selection_time + opt_age_limit < time(0))) { opt_aged = 1; } if (opt_aged) { gpm_report(GPM_PR_DEBUG,GPM_MESS_SKIP_PASTE); return; } fd=open_console(O_WRONLY); if(ioctl(fd, TIOCLINUX, &c) < 0) gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_TIOCLINUX); close(fd); } gpm-1.20.7/src/daemon/startup.c000066400000000000000000000123161204257734200162750ustar00rootroot00000000000000/* * general purpose mouse support for Linux * * *Startup and Daemon functions* * * Copyright (c) 2002-2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ #include /* atexit() */ #include /* strlen() */ #include /* errno */ #include /* unlink,geteuid */ #include /* geteuid, mknod */ #include /* mknod */ #include /* mknod */ #include "headers/gpmInt.h" #include "headers/message.h" #include "headers/daemon.h" void startup(int argc, char **argv) { int i, opt; static struct { char *in; char *out; } seq[] = { {"123","01234567"}, {"132","02134657"}, {"213","01452367"}, /* warning: these must be readable as integers... */ {"231","02461357"}, {"312","04152637"}, {"321","04261537"}, {NULL,NULL} }; /* log to debug, who we are */ gpm_report(GPM_PR_DEBUG, GPM_MESS_VERSION); /* basic settings */ option.run_status = GPM_RUN_STARTUP; /* 10,9,8,... let's go */ option.autodetect = 0; /* no mouse autodection */ option.progname = argv[0]; /* who we are */ option.consolename = Gpm_get_console(); /* get consolename */ /* basic2: are not necessary for oops()ing, if not root */ option.no_mice = 0; /* counts -m + -t */ option.micelist = NULL; /* no mice found yet */ option.repeater = 0; /* repeat data */ option.repeater_type = NULL; /* type of */ cmdline(argc, argv); /* parse command line */ if (geteuid() != 0) gpm_report(GPM_PR_OOPS,GPM_MESS_ROOT); /* root or exit */ /* Planned for gpm-1.30, but only with devfs */ /* if(option.autodetect) autodetect(); */ /****************** OLD CODE from gpn.c ***********************/ openlog(option.progname, LOG_PID, option.run_status != GPM_RUN_DEBUG ? LOG_DAEMON : LOG_USER); loadlut(opt_lut); if (option.repeater) { if(mkfifo(GPM_NODE_FIFO,0666) && errno!=EEXIST) gpm_report(GPM_PR_OOPS,GPM_MESS_CREATE_FIFO,GPM_NODE_FIFO); if((fifofd=open(GPM_NODE_FIFO, O_RDWR|O_NONBLOCK)) < 0) gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN, GPM_NODE_FIFO); } /* duplicate initialization */ for (i=1; i <= 1+opt_double; i++) { which_mouse=mouse_table+i; /* used to access options */ if ((which_mouse->opt_accel) < 1) exit(usage("acceleration")); if ((which_mouse->opt_delta) < 2) exit(usage("delta")); if (strlen((which_mouse->opt_sequence)) != 3 || atoi((which_mouse->opt_sequence))<100) exit(usage("sequence")); if ((which_mouse->opt_glidepoint_tap) > 3) exit(usage("glidepoint tap button")); if ((which_mouse->opt_glidepoint_tap)) (which_mouse->opt_glidepoint_tap)=GPM_B_LEFT >> ((which_mouse->opt_glidepoint_tap)-1); /* choose the sequence */ for (opt=0; seq[opt].in && strcmp(seq[opt].in,(which_mouse->opt_sequence)); opt++) ; if(!seq[opt].in) exit(usage("button sequence")); (which_mouse->opt_sequence)=strdup(seq[opt].out); /* I can rewrite on it */ /* look for the mouse type */ (which_mouse->m_type) = find_mouse_by_name((which_mouse->opt_type)); if (!(which_mouse->m_type)) /* not found */ exit(M_listTypes()); } /* Check repeater status */ if (option.repeater) { if (strcmp(option.repeater_type,"raw") == 0) opt_rawrep = 1; else { /* look for the type */ repeated_type = find_mouse_by_name(option.repeater_type); if(!repeated_type) exit(M_listTypes()); /* not found */ if (!(repeated_type->repeat_fun)) /* unsupported translation */ gpm_report(GPM_PR_OOPS,GPM_MESS_NO_REPEAT,option.repeater_type); } } if (option.run_status == GPM_RUN_STARTUP ) { /* else is debugging */ if (daemon(0,0)) gpm_report(GPM_PR_OOPS,GPM_MESS_FORK_FAILED); /* error */ option.run_status = GPM_RUN_DAEMON; /* child */ } /* damon init: check whether we run or not, display message */ check_uniqueness(); gpm_report(GPM_PR_INFO,GPM_MESS_STARTED); //return mouse_table[1].fd; /* the second is handled in the main() */ /****************** OLD CODE from gpn.c END ***********************/ init_mice(option.micelist); /* reads option.micelist */ atexit(gpm_exited); /* call gpm_exited at the end */ } gpm-1.20.7/src/daemon/usage.c000066400000000000000000000024141204257734200156750ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ int usage(char *whofailed) { if (whofailed) { gpm_report(GPM_PR_ERR,GPM_MESS_SPEC_ERR,whofailed,option.progname); return 1; } printf(GPM_MESS_USAGE,option.progname, DEF_ACCEL, DEF_BAUD, DEF_SEQUENCE, DEF_DELTA, DEF_TIME, DEF_LUT,DEF_SCALE, DEF_SAMPLE, DEF_TYPE); return 1; } gpm-1.20.7/src/daemon/wait_text.c000066400000000000000000000036271204257734200166100ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include /* sleep() */ #include /* open */ #include /* KDGETMODE */ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ #include "headers/gpmInt.h" /* evil old headers */ int wait_text(int *fdptr) { int fd; int kd_mode; close(*fdptr); do { sleep(2); fd = open_console(O_RDONLY); if (ioctl(fd, KDGETMODE, &kd_mode)<0) gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_KDGETMODE); close(fd); } while (kd_mode != KD_TEXT); /* reopen, reinit (the function is only used if we have one mouse device) */ if ((*fdptr=open((which_mouse->opt_dev),O_RDWR))<0) gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN,(which_mouse->opt_dev)); if ((which_mouse->m_type)->init) (which_mouse->m_type)=((which_mouse->m_type)->init)(*fdptr, (which_mouse->m_type)->flags, (which_mouse->m_type), mouse_argc[1], mouse_argv[1]); return (1); } gpm-1.20.7/src/drivers/000077500000000000000000000000001204257734200146375ustar00rootroot00000000000000gpm-1.20.7/src/drivers/README000066400000000000000000000020441204257734200155170ustar00rootroot00000000000000This could be the home of the new driver structure in gpm2. Some ideas: - clean seperation: one directory per driver - shared objects: make each driver being a shared object - and put those objects into libexec? - and make etc/gpm2/enabled_drivers a list of drivers to be enabled - each driver has the following functions: * int gpm2_dr__detect(struct gpm2_dr_info *): detect whether a supported mouse is connected returns: -1: cannot detect mice 0: no mouse detected 1: mouse detected * int gpm2_dr__init(struct gpm2_dr_info *): init mouse returns: 0: mouse init failed 1: mouse init success * gpm2_dr__handle(struct gpm2_dr_info *): the main function that handles the mouse --> perhaps need to pass info from gpm2_dr__init to gpm2_dr__handle - gpm2 passes a structure to all functions: struct gpm2_dr_info { char *dev; char *opts; } - gpm2 creates a fork for each mouse connected - gpm2 forks die on sigterm (normally issued by gpm2) gpm-1.20.7/src/generic/000077500000000000000000000000001204257734200145755ustar00rootroot00000000000000gpm-1.20.7/src/generic/getsym.c000066400000000000000000000024711204257734200162550ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ extern int isodigit(const unsigned char c); /* routine to convert digits from octal notation (Andries Brouwer) */ int getsym(const unsigned char *p0, unsigned char *res) { const unsigned char *p = p0; char c; c = *p++; if (c == '\\' && *p) { c = *p++; if (isodigit(c)) { c -= '0'; if (isodigit(*p)) c = 8*c + (*p++ - '0'); if (isodigit(*p)) c = 8*c + (*p++ - '0'); } } *res = c; return (p - p0); } gpm-1.20.7/src/generic/isodigit.c000066400000000000000000000016541204257734200165620ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ int isodigit(const unsigned char c) { return ((c & ~7) == '0'); } gpm-1.20.7/src/gpm2/000077500000000000000000000000001204257734200140265ustar00rootroot00000000000000gpm-1.20.7/src/gpm2/Makefile000066400000000000000000000040311204257734200154640ustar00rootroot00000000000000# # cinit # # Nico Schottelius # # Don't edit Makefiles, use conf/* for configuration. # #include Makefile.tests # Build tools / locations CC=./tmp/cc CFLAGS= LD=./tmp/ld LDFLAGS= STRIP=./tmp/strip SBIN=../sbin # directories and files CONFIG_H=include/config.h BIN=cinit # # End user targets # all: out/gpm2-daemon # # All objects depend on headers. # GPM2_DAEMON_HEADERS=$(shell cat deps/gpm2-daemon-headers) # # Objects # GPM2_DAEMON_OBJECTS=$(shell cat deps/gpm2-daemon) $(GPM2_DAEMON_OBJECTS): $(GPM2_DAEMON_HEADERS) GPM2_DAEMON_PROTOCOLS=$(shell cat tmp/protocol-deps) CLIENT= COMMUNICATION= OBJ= # # Programs # out/gpm2-daemon: $(GPM2_DAEMON_OBJECTS) $(GPM2_DAEMON_PROTOCOLS) $(LD) -o $@ $^ # # Generic # %.o: %.c .configured $(CC) -c -o $@ $< # # First do configuration, so we include the right variables # Makefile: .configured .configured: conf/* @./scripts/generate_cbuiltconfig.sh conf $(CINIT_OBJ): $(CONFIG_H) $(CONFIG_H): ../conf/* ../scripts/cinit.mkheader > $(CONFIG_H) cservice: $(SBIN)/cservice $(SBIN)/cservice util/cservice: $(SBIN) $(CSVC_OBJ) $(LD) $(LDFLAGS) $(CSVC_OBJ) -o $@ $(STRIP) $@ ccontrol: $(SBIN)/ccontrol $(SBIN)/ccontrol util/ccontrol: config.h $(SBIN) $(CCO_OBJ) $(LD) $(LDFLAGS) $(CCO_OBJ) -o $@ $(STRIP) $@ install: install-dir cinit cservice ccontrol @echo '*** Installing cinit ***' ./bin/cinit.install.binary install-miniconf: ./bin/cinit.install.miniconf install-dir: ./bin/cinit.install.dir ################################################################################ # # Build targets # cinit: $(CINIT_OBJ) $(LD) $^ -o $@ uml: cinit ../../vm/uml/uml-mount.sh cp cinit ../../vm/uml/root/sbin/cinit ../../vm/uml/uml-umount.sh umlstart: uml ../../vm/uml/uml-start.sh ################################################################################ # # Generic targets # .PHONY: dist dist: distclean .PHONY: distclean distclean: clean rm -f os/current ipc/current .configured .PHONY: clean clean: rm -f ../tmpbin/*.configured rm -f $(BIN) $(CINIT_OBJ) rm -f test/*.o gpm-1.20.7/src/gpm2/TODO000066400000000000000000000001771204257734200145230ustar00rootroot00000000000000- read cconfig-directory - create mouse structures - use cconfig-protocol-options as base for each protocol char *fullpath? gpm-1.20.7/src/gpm2/client/000077500000000000000000000000001204257734200153045ustar00rootroot00000000000000gpm-1.20.7/src/gpm2/client/README000066400000000000000000000006551204257734200161720ustar00rootroot00000000000000The files in this directory should built up the client interface. Some ideas: struct gpm2_conn *gpm2_connect(): client connects to gpm2-daemon gpm2_get_mice(struct gpm2_conn *g2c): get list of devices, including protocols and ids struct *mouseinfo gpm2_open_mouse(int mouse_id, int type); returns set of descriptors: - to read mousedata int gpm2_close_mouse(struct *mouseinfo mi); gpm-1.20.7/src/gpm2/conf/000077500000000000000000000000001204257734200147535ustar00rootroot00000000000000gpm-1.20.7/src/gpm2/conf/README000066400000000000000000000007341204257734200156370ustar00rootroot00000000000000This is the conf/ directory Nico Schottelius uses to configure his software projects. They evolve with every project and the aim is to replace autoconf once. In general, the idea is to create extremly simply configuration files, that are editable by non-interactive programs (distributor friendly). In most cases only the first line is important and the other lines are simply the description. programs/ - contains definitions of programs we need in our built process gpm-1.20.7/src/gpm2/conf/built-options/000077500000000000000000000000001204257734200175635ustar00rootroot00000000000000gpm-1.20.7/src/gpm2/conf/built-options/protocols000066400000000000000000000001101204257734200215220ustar00rootroot00000000000000ps2 List of protocols to enable (at built time: not expandable later). gpm-1.20.7/src/gpm2/conf/built/000077500000000000000000000000001204257734200160725ustar00rootroot00000000000000gpm-1.20.7/src/gpm2/conf/built/ld000066400000000000000000000000361204257734200164130ustar00rootroot00000000000000gcc The program used to link gpm-1.20.7/src/gpm2/conf/programs/000077500000000000000000000000001204257734200166055ustar00rootroot00000000000000gpm-1.20.7/src/gpm2/conf/programs/cc000066400000000000000000000000341204257734200171120ustar00rootroot00000000000000gcc The c-compiler to use. gpm-1.20.7/src/gpm2/conf/programs/cc.params000066400000000000000000000001121204257734200203710ustar00rootroot00000000000000-pipe -W -Wall -Werror -I. -Iinclude -g flags to pass to the c-compiler. gpm-1.20.7/src/gpm2/conf/programs/ld000066400000000000000000000000301204257734200171200ustar00rootroot00000000000000gcc The linker to use. gpm-1.20.7/src/gpm2/core/000077500000000000000000000000001204257734200147565ustar00rootroot00000000000000gpm-1.20.7/src/gpm2/core/main.c000066400000000000000000000024071204257734200160510ustar00rootroot00000000000000/* * gpm2 - mouse driver for the console * * Copyright (c) 2007 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * * main: Where life of gpm2 begins. ********/ #include "gpm2-daemon.h" int main(int argc, char **argv) { set_defaults(); if(!commandline(argc,argv)) return 1; if(!read_config(opts.cconfig)) return 1; /* creates a fork() */ if(!mice_handler()) return 1; /* listen to messages: exits only on failure or shutdown */ // listen_ipc(); // shutdown_gpm2(); return 0; } gpm-1.20.7/src/gpm2/core/read_config.c000066400000000000000000000021501204257734200173600ustar00rootroot00000000000000/* * gpm2 - mouse driver for the console * * Copyright (c) 2007 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * * read cconfig ********/ #include "gpm2-daemon.h" int read_config(char *cconfig) { /* open cconfig-dir (FIXME: write small framework for reuse) */ if(!cconfig) return 0; /* remove, just to make gcc happy */ /* set options */ return 1; } gpm-1.20.7/src/gpm2/core/set_defaults.c000066400000000000000000000017611204257734200176110ustar00rootroot00000000000000/* * gpm2 - mouse driver for the console * * Copyright (c) 2007 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * * set the default options ********/ #include "gpm2-daemon.h" void set_defaults() { /* options */ opts.cconfig = GPM2_CCONFIG; } gpm-1.20.7/src/gpm2/deps/000077500000000000000000000000001204257734200147615ustar00rootroot00000000000000gpm-1.20.7/src/gpm2/deps/gpm2-daemon000066400000000000000000000002121204257734200170050ustar00rootroot00000000000000core/main.o core/read_config.o core/set_defaults.o generic/commandline.o generic/daemon-usage.o generic/mini_printf.o mice/mice_handler.o gpm-1.20.7/src/gpm2/deps/gpm2-daemon-headers000066400000000000000000000000261204257734200204210ustar00rootroot00000000000000include/gpm2-daemon.h gpm-1.20.7/src/gpm2/doc/000077500000000000000000000000001204257734200145735ustar00rootroot00000000000000gpm-1.20.7/src/gpm2/doc/CONFIGURATION000066400000000000000000000010661204257734200165300ustar00rootroot00000000000000Configuration: /etc/gpm2/ mice/ default/ mice-userid: userid of person reading/writing mice devices mice-groupid: groupid of person reading/writing mice devices / device: link or device to use protocol: one line, containing protocol userid: overwrites default/mice-userid groupid: overwrites default/mice-groupid options/: options for that protocol clients/ gpm-1.20.7/src/gpm2/doc/DESIGN000066400000000000000000000037361204257734200155000ustar00rootroot00000000000000Possible design of gpm2: gpm2-starter: - reads configuration - starts daemons * first gpm2-daemon - connects daemons * connects them through stdin and stdout? - perhaps a job of gpm2-daemon? * stderr is relayed to the log console - which can log to syslog gpm2-daemon: - main daemon - starts mice handlers - listens for ipc - relays input data abstracted to clients - does *NOT* draw a cursor or something like that - can be used by x.org (see below) - opens mice devices? - should be portable gpm2-io: - gets list of opened fds or of devices - uses poll() / select() on mice devices - retrieves data packets - forwards raw data packets to gpm2-daemon from devices - either - forwards raw data packets from gpm2-daemon to devices?? - decodes mice packets: does protocol handling and forwards decoded packages to gpm2_daemon - has a mouse - fd_in - fd_out list - has *NO* root priviliges gpm2-decode: - forwards raw data packets from gpm2-daemon - forwards decoded packages to clients (like gpm2-cdisplay) gpm2-raw-relay: - reads data from gpm2-daemon - writes raw data to clients - a client needs to connect n times for n mice gpm2-cdisplay: - Console DISPLAYS: displays mouse cursor on console - reads input from gpm2-daemon - reads mouse information - perhaps os-specific versions gpm2-ccandp: - Console Copy AND Paste daemon - reads input from gpm2-daemon - copies selected text into own buffer - pastes buffer to console - perhaps os-specific versions gpm2-xorg: - interface between gpm2 and x.org - could make mouse support unecessary in x.org - should be portable gpm2-syslog: - connects to the gpm2-daemon logging port - reads messages - relays them to syslog gpm-1.20.7/src/gpm2/generic/000077500000000000000000000000001204257734200154425ustar00rootroot00000000000000gpm-1.20.7/src/gpm2/generic/commandline.c000066400000000000000000000022601204257734200200740ustar00rootroot00000000000000/* * gpm2 - mouse driver for the console * * Copyright (c) 2007 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * * handle command line arguments ********/ #include /* getopt() */ #include "gpm2-daemon.h" int commandline(int argc, char **argv) { int opt; while((opt = getopt(argc,argv,GPM2_ARGS)) != -1) { switch(opt) { default: usage(); break; } } return 1; } gpm-1.20.7/src/gpm2/generic/daemon-usage.c000066400000000000000000000022551204257734200201570ustar00rootroot00000000000000/* * gpm2 - mouse driver for the console * * Copyright (c) 2007 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * * Print out, how to use gpm2-daemon ********/ #include "gpm2-generic.h" void usage() { mini_printf("gpm2-daemon: written by Nico Schottelius\n",1); mini_printf("\n",1); mini_printf(" -c : specify configuration directory\n",1); mini_printf(" -f: fork into background after startup \n",1); } gpm-1.20.7/src/gpm2/generic/mini_printf.c000066400000000000000000000006431204257734200201270ustar00rootroot00000000000000/*********************************************************************** * * 2005-2007 Nico Schottelius (nico-cinit at schottelius.org) * * part of cLinux/cinit * * Print the world! * */ #include void mini_printf(char *str,int fd) { char *p; /* don't get fooled by bad pointers */ if(str == NULL) return; p = str; while(*p) p++; write(fd,str,(size_t) (p - str)); } gpm-1.20.7/src/gpm2/generic/read_packet.c000066400000000000000000000025631204257734200200560ustar00rootroot00000000000000/* * gpm2 - mouse driver for the console * * Copyright (c) 2007 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * * read one mouse packet and return it ********/ #include /* read() */ #include /* NULL */ #include /* malloc() */ #include /* errno */ char *read_packet(int fd, int len) { char *packet; errno = 0; /* no library function ever sets errno to 0, so we do */ packet = malloc(len); if(packet == NULL) return NULL; if(read(fd,&packet,len) == -1) { free(packet); return NULL; } return packet; } gpm-1.20.7/src/gpm2/include/000077500000000000000000000000001204257734200154515ustar00rootroot00000000000000gpm-1.20.7/src/gpm2/include/gpm2-client.h000066400000000000000000000016341204257734200177470ustar00rootroot00000000000000/* * gpm2 - mouse driver for the console * * Copyright (c) 2007 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * * client information ********/ /* functions */ gpm-1.20.7/src/gpm2/include/gpm2-config.h000066400000000000000000000016321204257734200177340ustar00rootroot00000000000000/* * gpm2 - mouse driver for the console * * Copyright (c) 2007 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * * values shared by daemon and clients ********/ gpm-1.20.7/src/gpm2/include/gpm2-daemon.h000066400000000000000000000025761204257734200177420ustar00rootroot00000000000000/* * gpm2 - mouse driver for the console * * Copyright (c) 2007 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * * daemon specific include file ********/ #ifndef GPM2_DAEMON #define GPM2_DAEMON /* parameters and options */ #define GPM2_ARGS "c:f" #define GPM2_CCONFIG "/etc/gpm2" struct gpm2_options { char *cconfig; /* configuration directory */ } opts; /* functions */ int commandline(int argc, char **argv); int mice_handler(); int read_config(char *cconfig); void set_defaults(); void usage(); /* structs */ struct mouse { /* pointer to init and decode functions */ int (*open)(int fd); }; #endif gpm-1.20.7/src/gpm2/include/gpm2-data.h000066400000000000000000000031051204257734200173750ustar00rootroot00000000000000/* * gpm2 - mouse driver for the console * * Copyright (c) 2007 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * * data definitions used by clients and daemon ********/ /* structs */ struct gpm2_mouse { char *name; char *dev; int fd; }; struct gpm2_me { /* mouse element */ struct gpm2_mouse mouse; struct gpm2_me *next; struct gpm2_me *prev; }; struct gpm2_packet_raw() { /* raw mouse packets */ char *data; int len; }; /* must contain everything a mouse can do */ struct gpm2_packet() { /* decoded mouse packets */ int nr_buttons; int *buttons; int pos_type; /* absolute or relativ */ }; /* structure */ struct gpm2_mic /* gpm2-daemon needs a list of mice, containing: * - name of mouse * - device used * - filedescriptor * - mouse configuration as found in cconfig */ gpm-1.20.7/src/gpm2/include/gpm2-generic.h000066400000000000000000000017371204257734200201110ustar00rootroot00000000000000/* * gpm2 - mouse driver for the console * * Copyright (c) 2007 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * * generic functions: used by daemon and clients ********/ /* generic functions */ void mini_printf(char *str,int fd); gpm-1.20.7/src/gpm2/include/gpm2-io.h000066400000000000000000000020051204257734200170710ustar00rootroot00000000000000/* * gpm2 - mouse driver for the console * * Copyright (c) 2007 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * * data definitions used by clients and daemon ********/ #ifndef GPM2_IO_H #define GPM2_IO_H char *read_packet(int fd, int len); /* needed? */ #endif gpm-1.20.7/src/gpm2/mice/000077500000000000000000000000001204257734200147435ustar00rootroot00000000000000gpm-1.20.7/src/gpm2/mice/README000066400000000000000000000037401204257734200156270ustar00rootroot00000000000000This directory should contain the mice-protocol implementations. Each file (or if bigger: directory) implements one protocol. You have to create three functions: gpm2_open_(); gpm2_handle_(); gpm2_close_(); It's not yet clear, how to register protocols to gpm2. First idea of inclusion: - create deps/mouse- containging all dependencies - conf/built-options/mice specifies which mice protocols to include - a script generates include/gpm2-daemon-mice.h containg a struct-array that looks like: struct mice_protos { char *name; int (*open)(); int (*handle)(); int (*open)(); }; -------------------------------------------------------------------------------- More design ideas for using mice: - The gpm2_handle function gets a pointer to a char array containing the data packet. - The gpm2_handle function returns what the packet means - gpm2_daemon may then decide what todo with this information -------------------------------------------------------------------------------- It would be nice to have a read_config_ that reads and verifies the protocol specific options. For this, it would be nice to have a libcconfig() like this: struct cconfig_fd *cconfig_open(char *dir); struct cconfig_tree *cconfig_read_tree(struct cconfig_fd *which); struct cconfig_element *cconfig_select_below(char *basepath, struct cconfig_fd *which, ...); The tree, cconfig_read_tree creates could consist of elements of the following definition: struct cconfig_element { char *path; struct stat sbuf; }; -------------------------------------------------------------------------------- gpm2_open_*: - needs fd - needs options -------------------------------------------------------------------------------- struct datapacket *gpm2_read_*(int fd) - reads one packet - returns it -------------------------------------------------------------------------------- gpm-1.20.7/src/gpm2/mice/deps/000077500000000000000000000000001204257734200156765ustar00rootroot00000000000000gpm-1.20.7/src/gpm2/mice/deps/ps2000066400000000000000000000000131204257734200163170ustar00rootroot00000000000000mice/ps2.o gpm-1.20.7/src/gpm2/mice/init_mice_handler.c000066400000000000000000000022001204257734200205360ustar00rootroot00000000000000/* * gpm2 - mouse driver for the console * * Copyright (c) 2007 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * * handle mice ********/ /* unclean headers */ #include #include #include #include /* close */ #include "gpm2-daemon.h" #include "tmp/protocols.h" int init_mice_handler() { /* open connections: pipes */ return 1; } gpm-1.20.7/src/gpm2/mice/mice_handler.c000066400000000000000000000032141204257734200175210ustar00rootroot00000000000000/* * gpm2 - mouse driver for the console * * Copyright (c) 2007 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * * handle mice ********/ /* unclean headers */ #include #include #include #include /* close */ #include "gpm2-daemon.h" #include "tmp/protocols.h" int mice_handler() { /* init_mice_handler(); * open connections to gpm2_daemon: * - one for each mouse: * * raw channel (unidirectional) * * decoded channel (unidirectional) * * control channel (bidirectional) */ init_mice_handler(); /* init_mice: * * - open mousedev * - drop priviliges after that */ //init_mice(); //handle_mice(); /* forks and maintains mice */ /* dirty hack */ int ps2test = open("/dev/psaux",O_RDWR); gpm2_open_ps2(ps2test); gpm2_decode_ps2(ps2test); close(ps2test); return 0; } gpm-1.20.7/src/gpm2/mice/ps2.c000066400000000000000000000061261204257734200156200ustar00rootroot00000000000000/* * gpm2 - mouse driver for the console * * Copyright (c) 2007 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * * handle standard ps2 ********/ #include /* usleep() */ #include /* tcflush() */ #include #include "gpm2-daemon.h" #include "gpm2-generic.h" /* protocol handler stolen from gpm1/mice.c */ /* ps2 protocol description * * 3 Bytes per packet * * first bit of data[0]: Left Button * second bit of data[0]: Right Button * third bit of data[0]: Middle Button * fourth bit of data[0]: Always 1 * fifth bit of data[0]: X Sign * sixth bit of data[0]: Y Sign * seventh bit of data[0]: X Overflow * eighth bit of data[0]: Y Overflow * * data[1]: X Movement * data[2]: Y Movement */ /* standard ps2 */ /* FIXME: implement error handling and options as described on * http://www.computer-engineering.org/ps2mouse/ */ int gpm2_open_ps2(int fd) { //static unsigned char s[] = { 246, 230, 244, 243, 100, 232, 3, }; // write(fd, s, sizeof (s)); // static unsigned char s[] = { 246, 230, 244, 243, 100, 232, 3, }; char obuf, ibuf; /* FIXME: check return */ obuf = 0xff; /* reset mouse */ write(fd, &obuf, 1); read(fd,&ibuf,1); printf("RX: %#hhx\n",ibuf); // if(ibuf != 0xfa) return 0; // obuf = 0xf6; /* set mouse to default */ // write(fd, &obuf, 1); // read(fd,&ibuf,1); // printf("DF: %#hhx\n",ibuf); obuf = 0xf2; /* device id */ write(fd, &obuf, 1); read(fd,&ibuf,1); printf("ST: %#hhx\n",ibuf); read(fd,&ibuf,1); printf("DI: %#hhx\n",ibuf); /* set resolution: 0xe8 */ //if(scaling = 2) { e7h // // 0xe6 scaling =1 /* do 0xf2, get device id and print it out */ /* do 0xe9 and print out values as status */ /* FIXME: time correct? */ usleep (30000); tcflush (fd, TCIFLUSH); return 0; } /* returs gpm2-readable data */ //int *gpm2_decode_ps2(char *data, struct mousedata *decoded) int gpm2_decode_ps2(int fd) { char data[3]; data[0] = 0; data[1] = 0; data[2] = 0; read(fd,data,3); if(data[0] & 0x01) mini_printf("left!\n",1); if(data[0] & 0x02) mini_printf("right!\n",1); if(data[0] & 0x04) mini_printf("middle!\n",1); /* decoded->button_left = data[0] & 0x01; decoded->button_right = data[0] & 0x02; decoded->button_middle = data[0] & 0x04; decoded-> */ return 1; } gpm-1.20.7/src/gpm2/scripts/000077500000000000000000000000001204257734200155155ustar00rootroot00000000000000gpm-1.20.7/src/gpm2/scripts/generate_cbuiltconfig.sh000077500000000000000000000016301204257734200223760ustar00rootroot00000000000000#!/bin/sh # Nico Schottelius # 2007-05-11 # First script to generate built environment from # a standard cconfig directory for building. [ "$#" -eq 1 ] || exit 23 set -e # args confdir="$1" # paths below the configuration directory programs="programs" progdir="$confdir/$programs" # paths directly in the srcdir tmpdir="tmp" # # generate built programs # for tmp in "${progdir}"/*; do prog="" params="" baseprog="$(basename "$tmp")" destprog="$tmpdir/$baseprog" # ignore *.params, those are parameters, not programs if [ "${tmp%.params}" != "${tmp}" ]; then continue fi # check for params pfile="${tmp}.params" if [ -f "$pfile" ]; then params="$(head -n1 "$pfile")" fi prog=$(head -n1 "$tmp") echo "Creating $destprog: $prog $params" echo '#!/bin/sh' > "${destprog}" echo "\"${prog}\" $params \"\$@\"" >> "${destprog}" chmod 0700 "${destprog}" done gpm-1.20.7/src/gpm2/scripts/include_protocols.sh000066400000000000000000000010331204257734200215750ustar00rootroot00000000000000#!/bin/sh # Nico Schottelius # 2007-05-13 # Create protocol related files [ "$#" -eq 1 ] || exit 23 set -e # args confdir="$1" # paths below the configuration directory builtopts="built-options" builtoptsdir="$confdir/$builtopts" # paths directly in the srcdir tmpdir="tmp" # # generate built programs # : > "${tmpdir}/protocols.h" for proto in $(head -n1 ${builtoptsdir}/protocols); do echo "int gpm2_open_${proto}(int fd);" > "${tmpdir}/protocols.h" echo "int gpm2_decode_${proto}(int fd);" >> "${tmpdir}/protocols.h" done gpm-1.20.7/src/gpm2/tmp/000077500000000000000000000000001204257734200146265ustar00rootroot00000000000000gpm-1.20.7/src/gpm2/tmp/README000066400000000000000000000000511204257734200155020ustar00rootroot00000000000000Directory for temporarily created files. gpm-1.20.7/src/headers/000077500000000000000000000000001204257734200145745ustar00rootroot00000000000000gpm-1.20.7/src/headers/daemon.h000066400000000000000000000166761204257734200162300ustar00rootroot00000000000000/* * Daemon internals * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _GPM_DAEMON_H #define _GPM_DAEMON_H /************************************************************************* * Includes */ #include "gpm.h" /* Gpm_Event */ #include /* fd_set */ /************************************************************************* * Types / structures */ struct micetab { struct micetab *next; char *device; char *protocol; char *options; }; struct options { int autodetect; /* -u [aUtodetect..'A' is unavailable] */ int no_mice; /* number of mice */ int repeater; /* repeat data */ char *repeater_type; /* repeat data as which mouse type */ int run_status; /* startup/daemon/debug */ char *progname; /* hopefully gpm ;) */ struct micetab *micelist; /* mice and their options */ char *consolename; /* /dev/tty0 || /dev/vc/0 */ }; typedef struct Gpm_Cinfo { Gpm_Connect data; int fd; struct Gpm_Cinfo *next; } Gpm_Cinfo; /* and this is the entry in the mouse-type table */ typedef struct Gpm_Type { char *name; char *desc; /* a descriptive line */ char *synonyms; /* extra names (the XFree name etc) as a list */ /* mouse specific event handler: */ int (*fun)(Gpm_Event *state, unsigned char *data); /* mouse specific initialisation function: */ struct Gpm_Type *(*init)(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv); unsigned short flags; unsigned char proto[4]; int packetlen; int howmany; /* how many bytes to read at a time */ int getextra; /* does it get an extra byte? (only mouseman) */ int absolute; /* flag indicating absolute pointing device */ /* repeat this event into fd */ int (*repeat_fun)(Gpm_Event *state, int fd); } Gpm_Type; /* this structure is used to hide the dual-mouse stuff */ struct mouse_features { char *opt_type, *opt_dev, *opt_sequence; int opt_baud, opt_sample, opt_delta, opt_accel, opt_scale, opt_scaley, opt_time, opt_cluster, opt_three, opt_glidepoint_tap; char *opt_options; /* extra textual configuration */ Gpm_Type *m_type; int fd; }; /************************************************************************* * Macros */ /* How many virtual consoles are managed? */ #ifndef MAX_NR_CONSOLES # define MAX_NR_CONSOLES 64 /* this is always sure */ #endif #define MAX_VC MAX_NR_CONSOLES /* doesn't work before 1.3.77 */ /* for adding a mouse; add_mouse */ #define GPM_ADD_DEVICE 0 #define GPM_ADD_TYPE 1 #define GPM_ADD_OPTIONS 2 /* all the default values */ #define DEF_TYPE "ms" #define DEF_DEV NULL /* use the type-related one */ #define DEF_LUT "-a-zA-Z0-9_./\300-\326\330-\366\370-\377" #define DEF_SEQUENCE "123" /* how buttons are reordered */ #define DEF_BAUD 1200 #define DEF_SAMPLE 100 #define DEF_DELTA 25 #define DEF_ACCEL 2 #define DEF_SCALE 10 #define DEF_TIME 250 /* time interval (ms) for multiple clicks */ #define DEF_THREE 0 /* have three buttons? */ #define DEF_KERNEL 0 /* no kernel module, by default */ /* 10 on old computers (<=386), 0 on current machines */ #define DEF_CLUSTER 0 /* maximum number of clustered events */ #define DEF_TEST 0 #define DEF_PTRDRAG 1 /* double or triple click */ #define DEF_GLIDEPOINT_TAP 0 /* tapping emulates no buttons by default */ /************************************************************************* * Global variables */ extern char *opt_lut; extern char *opt_special; extern int opt_resize; /* not really an option */ extern time_t opt_age_limit; extern struct options option; /* one should be enough for us */ extern int mouse_argc[3]; /* 0 for default (unused) */ extern char **mouse_argv[3]; /* and two mice */ extern int opt_aged, opt_ptrdrag, opt_test, opt_double; extern int statusX, statusY, statusB, statusC; /* clicks */ extern int fifofd; extern int opt_rawrep; extern int maxx, maxy; extern fd_set selSet, readySet, connSet; extern int eventFlag; extern struct winsize win; extern Gpm_Cinfo *cinfo[MAX_VC+1]; extern struct mouse_features mouse_table[3], *which_mouse; /*the current one*/ extern Gpm_Type mice[]; extern Gpm_Type *repeated_type; time_t last_selection_time; /************************************************************************* * Functions */ char **build_argv(char *argv0, char *str, int *argcptr, char sep); void disable_paste(int vc); int do_client(Gpm_Cinfo *cinfo, Gpm_Event *event); int do_selection(Gpm_Event *event); void get_console_size(Gpm_Event *ePtr); int get_data(Gpm_Connect *where, int whence); char *getMouseData(int fd, Gpm_Type *type, int kd_mode); int getsym(const unsigned char *p0, unsigned char *res); void gpm_exited(void); void gpm_killed(int signo); int open_console(const int mode); int old_main(); int processConn(int fd); int processMouse(int fd, Gpm_Event *event, Gpm_Type *type, int kd_mode); int processRequest(Gpm_Cinfo *ci, int vc); int processSpecial(Gpm_Event *event); void selection_copy(int x1, int y1, int x2, int y2, int mode); void selection_paste(void); void startup(int argc, char **argv); int wait_text(int *fdptr); /* meta-mouse functions */ void add_mouse (int type, char *value); int init_mice (struct micetab *micelist); int reset_mice(struct micetab *micelist); /* gpn.c */ void cmdline(int argc, char **argv); int giveInfo(int request, int fd); int loadlut(char *charset); int usage(char *whofailed); struct Gpm_Type *find_mouse_by_name(char *name); void check_uniqueness(void); void check_kill(void); /* gpm.c */ int old_main(); #endif gpm-1.20.7/src/headers/gpm-proto.h000066400000000000000000000116771204257734200167050ustar00rootroot00000000000000 #ifndef __GPMPROTO_H__ #define __GPMPROTO_H__ /* * This is a draft for a protocol to use for a "generic input device" * that can feed packets to gpm. In general, this "generic input * device" will be a program that collects data from whatever source * fits its scope and pushes packet to gpm for handling. The same * protocol may be used to get events into X. My main motivation for * this is exploiting my screenless touchscreen to do handwriting * recognition and other silly stuff. * * While it may look complex, I think it's in fact easy; also, it * fits the fixed-size contraint that simplifies data transfer, features * aligned data items and does not pose any limit on the number of * axis/buttons/keys delivered with each packet. It can be * implemented slowly and each functionality can be verified in real * usage. It should be extensible enough to be pretty long-lived. * * Please note that I don't know of any similar effort, so I may just * be reinventing the wheel or doing some other stupid errors. * * Please note that timestamping is still missing, although it should * fit the design (just forgot about it, and the joystick api reminded * me about that). */ /* * This is the fixed-size packet, multi-byte fields use the network * byte order, so ntohl() and ntohs() are needed, but portability is * ensured. Note that it is 16 bytes, 4 of them are "control" info and * the rest is three 4-bytes data items. */ struct gpm_procotol_packet { __u8 flags; /* 10xxxxFF flags defined later */ __u8 buttons; /* 01BBBBBB button-1 to button-6 */ __u16 key; /* how to read the following data */ union { __u32 l; /* "long" */ __s32 sl; /* "signed long" */ __u16 w[2]; /* "word" */ __s16 sw[2]; /* "signed word" */ __u8 b[4]; /* "byte" */ __s8 sb[4]; /* "signed byte" */ } data[3]; }; /* * these flags can be used to build up longer packets (thus placing no limit * on the number of dimensions, buttons, keypresses per packet). A complete * packet has both flags set, otherwise other packets must be retrieved to * have all the information available. Most "simple" input devices will * just need one chunk of data (it offers three dimensions and 6 buttons) */ #define GPM_PROTOCOL_FLAG_FIRST 0x01 #define GPM_PROTOCOL_FLAG_LAST 0x02 /* * The "key" field is made up of three bitfields, each defines what the * corresponfing "data" item means. There are 15 meanings for each datum, * and the top four bits are currently unused and must be cleared. */ enum gpm_protocol_item { GPM_ITEM_UNUSED = 0, /* the data field is unused */ GPM_ITEM_RAXIS, /* relative X, Y, Z or further (signed long) */ GPM_ITEM_AAXIS, /* absolute axis (unsigned long, full-range) */ GPM_ITEM_BUTTONS, /* 32 buttons (7-38, 39-70, ...) as u32 mask */ GPM_ITEM_8BITKEYS, /* ascii or so, as u8. 0xff == unused */ GPM_ITEM_KEYCODES, /* keycodes as s16: pos/neg, 0x8000 == unused */ GPM_ITEM_KEYSYM, /* X keysym. positive/negative (?) as s32 */ GPM_ITEM_RESERVED, GPM_ITEM_RESERVED, GPM_ITEM_RESERVED, GPM_ITEM_RESERVED, GPM_ITEM_RESERVED, GPM_ITEM_RESERVED, GPM_ITEM_RESERVED, GPM_ITEM_RESERVED, GPM_ITEM_RESERVED }; /* RAXIS: relative position. First axis is X, then Y, then Z and so on. Use of third-and-further axis is application specific. As for scaling, I think every motion must be rescaled, and a mouse tick may be 1/1024 of the whole screen or so, but I'm not sure about that. If it is not rescaled to match absolute movements, then you can't mix relative and absolute movements, something that I want to be able to do. AAXIS: absolute position on an axis, scaled to the whole 32bit range. BUTTONS: if more than 6 buttons are there, a data field can host 32 extra buttons. If 38 are not enough other data fields can follow. If the complete packet is made up by more than one protocol item, the "buttons" field of trailing items is unused. Use of the buttons is application specific. 8BITKEYS: One to four ascii-or-so keys to push in the keyboard buffer. This is needed by the twiddler, for example. I have to study how the X protocol works before I can use this in X. KEYCODES: Raw keyboard keycodes. I feel these must be discouraged, as users remap their keyboards (although smart use of dumpkeys can unmap the keycodes properly). Positive for press and negative for release; up to two keycodes can fit in one data item KEYSYM: X keysym. (range 0 to 0xFFFFFF). Once again, I have to study X, but I think there is no need for press/release events. Each data item can host a single keysym as they span 24 bits */ #endif /* __GPM_PROTO_H__ */ gpm-1.20.7/src/headers/gpm.h000066400000000000000000000231571204257734200155400ustar00rootroot00000000000000/* -*-mode:C;tab-width:3-*- * gpm.h - public include file for gpm * * Copyright 1994,1995 rubini@linux.it (Alessandro Rubini) * Copyright 1998 Ian Zimmerman * Copyright 2002-2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ #ifndef _GPM_H_ #define _GPM_H_ #include /* _PATH_VARRUN etc. */ #ifdef __cplusplus extern "C" { #endif /*....................................... Xtermish stuff */ #define GPM_XTERM_ON \ printf("%c[?1001s",27), fflush(stdout), /* save old hilit tracking */ \ printf("%c[?1000h",27), fflush(stdout) /* enable mouse tracking */ #define GPM_XTERM_OFF \ printf("%c[?1000l",27), fflush(stdout), /* disable mouse tracking */ \ printf("%c[?1001r",27), fflush(stdout) /* restore old hilittracking */ /*....................................... Cfg pathnames */ /* Provide trailing slash, since mostly used for building pathnames. */ #ifndef _PATH_VARRUN #define _PATH_VARRUN "/var/run/" #endif #ifndef _PATH_DEV #define _PATH_DEV "/dev/" #endif #define GPM_NODE_DIR _PATH_VARRUN /* itz Wed Jul 1 11:56:46 PDT 1998 this definitely ought not to be world-writable; umask doesn't apply either, as gpm is most often run from init */ #define GPM_NODE_DIR_MODE 0775 #define GPM_NODE_PID GPM_NODE_DIR "gpm.pid" #define GPM_NODE_DEV _PATH_DEV "gpmctl" /* itz Wed Jul 1 12:09:29 PDT 1998 let's simplify this by placing the file always in /dev whether it's a device or socket. It doesn't really belong to /var/run anyway. */ #define GPM_NODE_CTL GPM_NODE_DEV #define GPM_NODE_FIFO _PATH_DEV "gpmdata" /*....................................... Cfg buttons */ /* Each button has one bit in the 16 bit buttons field. * Mouse movement and wheel movement are not associated with a button * i.e. buttons=GPM_B_NONE in these cases * (except for ms3 mouse, for reasons unknown?) * The middle button if pressed down (or clicked) is independent of * the wheel "device" which it happens to be associated with * The use of GPM_B_UP/DOWN with ms3 is unclear. Maybe the wheel * could be rolled forward then backward * and this would generate a 'click' event on 'button 5' GPM_B_UP, * but really the expected behaviour of wheel is movement, typically * used for jump scrolling or for jumping between fields on a form. */ #define GPM_B_DOWN 32 #define GPM_B_UP 16 #define GPM_B_FOURTH 8 #define GPM_B_LEFT 4 #define GPM_B_MIDDLE 2 #define GPM_B_RIGHT 1 #define GPM_B_NONE 0 /*................................... Strange requests (iff conn->pid==0)*/ #define GPM_REQ_SNAPSHOT 0 #define GPM_REQ_BUTTONS 1 #define GPM_REQ_CONFIG 2 #define GPM_REQ_NOPASTE 3 /*....................................... The event types */ enum Gpm_Etype { GPM_MOVE=1, GPM_DRAG=2, /* exactly one of the bare ones is active at a time */ GPM_DOWN=4, GPM_UP= 8, #define GPM_BARE_EVENTS(type) ((type)&(0x0f|GPM_ENTER|GPM_LEAVE)) GPM_SINGLE=16, /* at most one in three is set */ GPM_DOUBLE=32, GPM_TRIPLE=64, /* WARNING: I depend on the values */ GPM_MFLAG=128, /* motion during click? */ GPM_HARD=256, /* if set in the defaultMask, force an already used event to pass over to another handler */ GPM_ENTER=512, /* enter event, user in Roi's */ GPM_LEAVE=1024 /* leave event, used in Roi's */ }; #define Gpm_StrictSingle(type) (((type)&GPM_SINGLE) && !((type)&GPM_MFLAG)) #define Gpm_AnySingle(type) ((type)&GPM_SINGLE) #define Gpm_StrictDouble(type) (((type)&GPM_DOUBLE) && !((type)&GPM_MFLAG)) #define Gpm_AnyDouble(type) ((type)&GPM_DOUBLE) #define Gpm_StrictTriple(type) (((type)&GPM_TRIPLE) && !((type)&GPM_MFLAG)) #define Gpm_AnyTriple(type) ((type)&GPM_TRIPLE) /*....................................... The event data structure */ enum Gpm_Margin {GPM_TOP=1, GPM_BOT=2, GPM_LFT=4, GPM_RGT=8}; /*....................................... The reported event */ typedef struct Gpm_Event { unsigned char buttons, modifiers; /* try to be a multiple of 4 */ unsigned short vc; short dx, dy, x, y; /* displacement x,y for this event, and absolute x,y */ enum Gpm_Etype type; /* clicks e.g. double click are determined by time-based processing */ int clicks; enum Gpm_Margin margin; /* wdx/y: displacement of wheels in this event. Absolute values are not * required, because wheel movement is typically used for scrolling * or selecting fields, not for cursor positioning. The application * can determine when the end of file or form is reached, and not * go any further. * A single mouse will use wdy, "vertical scroll" wheel. */ short wdx, wdy; } Gpm_Event; /*....................................... The handling function */ typedef int Gpm_Handler(Gpm_Event *event, void *clientdata); /*....................................... The connection data structure */ #define GPM_MAGIC 0x47706D4C /* "GpmL" */ typedef struct Gpm_Connect { unsigned short eventMask, defaultMask; unsigned short minMod, maxMod; int pid; int vc; } Gpm_Connect; /*....................................... The region of Interest */ typedef struct Gpm_Roi { short xMin,xMax; short yMin,yMax; unsigned short minMod, maxMod; unsigned short eventMask; unsigned short owned; Gpm_Handler *handler; void *clientdata; struct Gpm_Roi *prev; struct Gpm_Roi *next; } Gpm_Roi; /*....................................... Global variables for the client */ extern int gpm_flag, gpm_ctlfd, gpm_fd, gpm_hflag, gpm_morekeys; extern int gpm_zerobased; extern int gpm_visiblepointer; extern int gpm_mx, gpm_my; /* max x and y to fit margins */ extern struct timeval gpm_timeout; extern unsigned char _gpm_buf[]; extern unsigned short * _gpm_arg; extern Gpm_Handler *gpm_handler; extern void *gpm_data; extern Gpm_Handler *gpm_roi_handler; extern void *gpm_roi_data; extern Gpm_Roi *gpm_roi; extern Gpm_Roi *gpm_current_roi; /*....................................... Prototypes for the client */ /* all of them return 0 or errno */ #include /* needed to get FILE */ #include /* to get the prototype for ioctl() */ /* liblow.c */ extern int Gpm_Open(Gpm_Connect *, int); extern int Gpm_Close(void); extern int Gpm_GetEvent(Gpm_Event *); extern int Gpm_CharsQueued(void); extern int Gpm_Getc(FILE *); #define Gpm_Getchar() Gpm_Getc(stdin) extern int Gpm_Repeat(int millisec); extern int Gpm_FitValuesM(int *x, int *y, int margin); #define Gpm_FitValues(x,y) Gpm_FitValuesM((x),(y),-1); #define Gpm_FitEvent(ePtr) \ do { \ int _x, _y; \ if ((ePtr)->margin && ((ePtr)->type&(GPM_DRAG | GPM_UP))) \ { \ _x = (ePtr)->x; \ _y = (ePtr)->y; \ Gpm_FitValuesM(&_x, &_y, (ePtr)->margin); \ (ePtr)->x = _x; \ (ePtr)->y = _y; \ } \ } while(0) \ /* the following is a (progn ...) form */ #define Gpm_DrawPointer(x, y, fd) \ (_gpm_buf[sizeof(short)-1] = 2, \ _gpm_arg[0] = _gpm_arg[2] = \ (unsigned short)(x)+gpm_zerobased, \ _gpm_arg[1] = _gpm_arg[3] = \ (unsigned short)(y)+gpm_zerobased, \ _gpm_arg[4] = (unsigned short)3, \ ioctl(fd, TIOCLINUX, _gpm_buf+sizeof(short)-1)) /* the following is a heavy thing ... */ extern int gpm_consolefd; /* liblow.c */ /* #define GPM_DRAWPOINTER(event) \ * ((gpm_consolefd=open("/dev/console",O_RDWR))>=0 && \ * Gpm_DrawPointer((event)->x,(event)->y,gpm_consolefd), \ * close(gpm_consolefd)) */ #define GPM_DRAWPOINTER(ePtr) \ (Gpm_DrawPointer((ePtr)->x,(ePtr)->y,gpm_consolefd)) /* libhigh.c */ Gpm_Handler Gpm_HandleRoi; Gpm_Roi *Gpm_PushRoi(int x, int y, int X, int Y, int mask, Gpm_Handler *fun, void *xtradata); Gpm_Roi * Gpm_PopRoi(Gpm_Roi *which); Gpm_Roi * Gpm_RaiseRoi(Gpm_Roi *which, Gpm_Roi *before); Gpm_Roi * Gpm_LowerRoi(Gpm_Roi *which, Gpm_Roi *after); /* libcurses.c */ /* #include Hmm... seems risky */ extern int Gpm_Wgetch(); #define Gpm_Getch() (Gpm_Wgetch(NULL)) /* libxtra.c */ char *Gpm_GetLibVersion(int *where); char *Gpm_GetServerVersion(int *where); int Gpm_GetSnapshot(Gpm_Event *ePtr); /* tools.c: do they really need to be exported? Can't we keep them in gpmInt.h ? */ char *Gpm_get_console( void ); int Gpm_x_high_y(int base, int pot_y); int Gpm_cnt_digits(int number); void gpm_oops(int line, char *file, char *text, ... ); /* report.c / report-lib.c */ void gpm_report(int line, char *file, int stat, char *text, ... ); #ifdef __cplusplus }; #endif #endif /* _GPM_H_ */ gpm-1.20.7/src/headers/gpmCfg.h000066400000000000000000000046011204257734200161510ustar00rootroot00000000000000/* * gpm-Linux configuration file (server only) * * Copyright 1994-1996 rubini@linux.it * Copyright (C) 1998 Ian Zimmerman * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ #ifndef _GPMCFG_INCLUDED #define _GPMCFG_INCLUDED #define GPM_NAME "gpm" #define GPM_DATE "May 2002" /* timeout for the select() syscall */ #define SELECT_TIME 86400 /* one day */ #ifdef HAVE_LINUX_TTY_H #include #endif /* FIXME: still needed ?? */ /* How many virtual consoles are managed? */ #ifndef MAX_NR_CONSOLES # define MAX_NR_CONSOLES 64 /* this is always sure */ #endif #define MAX_VC MAX_NR_CONSOLES /* doesn't work before 1.3.77 */ /* How many buttons may the mouse have? */ /* #define MAX_BUTTONS 3 ===> not used, it is hardwired :-( */ /* all the default values */ #define DEF_TYPE "ms" #define DEF_DEV NULL /* use the type-related one */ #define DEF_LUT "-a-zA-Z0-9_./\300-\326\330-\366\370-\377" #define DEF_SEQUENCE "123" /* how buttons are reordered */ #define DEF_BAUD 1200 #define DEF_SAMPLE 100 #define DEF_DELTA 25 #define DEF_ACCEL 2 #define DEF_SCALE 10 #define DEF_TIME 250 /* time interval (ms) for multiple clicks */ #define DEF_THREE 0 /* have three buttons? */ #define DEF_KERNEL 0 /* no kernel module, by default */ /* 10 on old computers (<=386), 0 on current machines */ #define DEF_CLUSTER 0 /* maximum number of clustered events */ #define DEF_TEST 0 #define DEF_PTRDRAG 1 /* double or triple click */ #define DEF_GLIDEPOINT_TAP 0 /* tapping emulates no buttons by default */ #endif /* _GPMCFG_INCLUDED */ gpm-1.20.7/src/headers/gpmInt.h000066400000000000000000000072301204257734200162050ustar00rootroot00000000000000/* * gpmInt.h - server-only stuff for gpm * * Copyright (C) 1994-1999 Alessandro Rubini * Copyright (C) 1998 Ian Zimmerman * Copyright (C) 2001-2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ #ifndef _GPMINT_INCLUDED #define _GPMINT_INCLUDED #include /* time_t */ /* for whom ???? FIXME */ #include "gpm.h" #if !defined(__GNUC__) # define inline #endif /*....................................... old gpmCfg.h */ /* timeout for the select() syscall */ #define SELECT_TIME 86400 /* one day */ #ifdef HAVE_LINUX_TTY_H #include #endif /* How many buttons may the mouse have? */ /* #define MAX_BUTTONS 3 ===> not used, it is hardwired :-( */ /* misc :) */ #define GPM_NULL_DEV "/dev/null" #define GPM_SYS_CONSOLE "/dev/console" #define GPM_DEVFS_CONSOLE "/dev/vc/0" #define GPM_OLD_CONSOLE "/dev/tty0" /*** mouse commands ***/ #define GPM_AUX_SEND_ID 0xF2 #define GPM_AUX_ID_ERROR -1 #define GPM_AUX_ID_PS2 0 #define GPM_AUX_ID_IMPS2 3 /* these are shameless stolen from /usr/src/linux/include/linux/pc_keyb.h */ #define GPM_AUX_SET_RES 0xE8 /* Set resolution */ #define GPM_AUX_SET_SCALE11 0xE6 /* Set 1:1 scaling */ #define GPM_AUX_SET_SCALE21 0xE7 /* Set 2:1 scaling */ #define GPM_AUX_GET_SCALE 0xE9 /* Get scaling factor */ #define GPM_AUX_SET_STREAM 0xEA /* Set stream mode */ #define GPM_AUX_SET_SAMPLE 0xF3 /* Set sample rate */ #define GPM_AUX_ENABLE_DEV 0xF4 /* Enable aux device */ #define GPM_AUX_DISABLE_DEV 0xF5 /* Disable aux device */ #define GPM_AUX_RESET 0xFF /* Reset aux device */ #define GPM_AUX_ACK 0xFA /* Command byte ACK. */ #define GPM_AUX_BUF_SIZE 2048 /* This might be better divisible by three to make overruns stay in sync but then the read function would need a lock etc - ick */ /*....................................... Structures */ #define GPM_EXTRA_MAGIC_1 0xAA #define GPM_EXTRA_MAGIC_2 0x55 // looks unused; delete //typedef struct Opt_struct_type {int a,B,d,i,p,r,V,A;} Opt_struct_type; /* the other variables */ extern int opt_kill; extern int opt_kernel, opt_explicittype; extern int opt_aged; extern time_t opt_age_limit; /*....................................... Prototypes */ /* mice.c */ extern int M_listTypes(void); /* special.c */ int processSpecial(Gpm_Event *event); int twiddler_key(unsigned long message); int twiddler_key_init(void); /*....................................... Dirty hacks */ #undef GPM_USE_MAGIC /* magic token foreach message? */ #define mkfifo(path, mode) (mknod ((path), (mode) | S_IFIFO, 0)) /* startup_daemon */ #ifdef GPM_USE_MAGIC #define MAGIC_P(code) code #else #define MAGIC_P(code) #endif #endif /* _GPMINT_INCLUDED */ gpm-1.20.7/src/headers/message.h000066400000000000000000000275561204257734200164100ustar00rootroot00000000000000/* * defines used for messaging * * Copyright (c) 2001,2002 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _MESSAGE_H #define _MESSAGE_H /* printing / reporting */ #define FL __LINE__,__FILE__ #define FLS "[%s(%d)]: " #define FLP FLS,file,line /* for switch (intern) */ #define GPM_STAT_DEBUG 2 #define GPM_STAT_INFO 3 #define GPM_STAT_ERR 4 #define GPM_STAT_WARN 5 #define GPM_STAT_OOPS 6 /* for print (extern) */ #define GPM_PR_DEBUG FL,GPM_STAT_DEBUG #define GPM_PR_INFO FL,GPM_STAT_INFO #define GPM_PR_ERR FL,GPM_STAT_ERR #define GPM_PR_WARN FL,GPM_STAT_WARN #define GPM_PR_OOPS FL,GPM_STAT_OOPS /* messages */ #define GPM_TEXT_INFO "*** info " #define GPM_TEXT_WARN "*** warning " #define GPM_TEXT_DEBUG "*** debug " #define GPM_TEXT_ERR "*** err " #define GPM_TEXT_OOPS "O0o.oops(): " /* strings */ #define GPM_STRING_INFO GPM_TEXT_INFO FLP #define GPM_STRING_WARN GPM_TEXT_WARN FLP #define GPM_STRING_DEBUG GPM_TEXT_DEBUG FLP #define GPM_STRING_ERR GPM_TEXT_ERR FLP #define GPM_STRING_OOPS GPM_TEXT_OOPS FLP /* running situations */ #define GPM_RUN_STARTUP 0 #define GPM_RUN_DAEMON 1 #define GPM_RUN_DEBUG 2 /* messages */ /* info */ #define GPM_MESS_VERSION "gpm " PACKAGE_VERSION #define GPM_MESS_STARTED "Started gpm successfully. Entered daemon mode." #define GPM_MESS_KILLED "Killed gpm(%d)." #define GPM_MESS_SKIP_DATA "Skipping a data packet (?)" #define GPM_MESS_DATA_4 "Data %02x %02x %02x (%02x)" #define GPM_MESS_NO_MAGIC "No magic" #define GPM_MESS_CONECT_AT "Connecting at fd %i" #define GPM_MESS_USAGE "Usage: %s [options]\n" \ " Valid options are (not all of them are implemented)\n" \ " -a accel sets the acceleration (default %d)\n" \ " -A [limit] start with selection disabled (`aged')\n" \ " -b baud-rate sets the baud rate (default %d)\n" \ " -B sequence allows changing the buttons (default '%s')\n" \ " -d delta sets the delta value (default %d) (must be 2 or more)\n" \ " -D debug mode: don't auto-background\n" \ " -g tap-button sets the button (1-3) that is emulated by tapping on\n" \ " a glidepoint mouse, none by default. (mman/ps2 only)\n" \ " -i interval max time interval for multiple clicks (default %i)\n" \ " -k kill a running gpm, to start X with a busmouse\n" \ " -l charset loads the inword() LUT (default '%s')\n" \ " -m mouse-device sets mouse device\n" \ " -M enable multiple mice. Following options refer to\n" \ " the second device. Forces \"-R\"\n" \ " -o options decoder-specific options (e.g.: \"dtr\", \"rts\")\n" \ " -p draw the pointer while striking a selection\n" \ " -q quit after changing mouse behaviour\n" \ " -r number sets the responsiveness (default %i)\n" \ " -R mouse-type enter repeater mode. X should read /dev/gpmdata\n" \ " like it was a mouse-type device. Default is MouseSystems.\n" \ " You can also specify \"raw\" to relay the raw device data.\n" \ " -s sample-rate sets the sample rate (default %d)\n" \ " -S [commands] enable special commands (see man page)\n" \ " -t mouse-type sets mouse type (default '%s')\n" \ " Use a non-existent type (e.g. \"help\") to get a list\n" \ " -T test: read mouse, no clients\n" \ " -v print version and exit\n" \ " -V verbosity increase number of logged messages\n\n\n" \ " Examples:\n\n" \ " gpm -m /dev/misc/psaux -t ps2 to start with a ps2 mouse\n" \ " gpm -m /dev/tts/0 -t mman to use mouse man on COM1\n\n" /* Later ... but first when it's running */ /* " -u autodetect mice [not implemented yet]\n" \ */ #define GPM_MESS_IMPS2_AUTO "imps2: Auto-detected intellimouse PS/2" #define GPM_MESS_IMPS2_PS2 "imps2: Auto-detected standard PS/2" #define GPM_MESS_AVAIL_MYT "Available mouse types are:\n\n" \ "r name synonym description\n\n" #define GPM_MESS_SYNONYM "%c %-8s %s\n Synonyms: %s\n" /* generic messages */ #define GPM_MESS_DOUBLE_S "%s: %s" #define GPM_MESS_DOUBLE_I "%i - %i:" #define GPM_MESS_X_Y_VAL "x %i, y %i" /* mem */ #define GPM_MESS_NO_MEM "I couln't get any memory! I die! :(" #define GPM_MESS_ALLOC_FAILED "allocation failed!" /* files */ #define GPM_MESS_SOCKET "socket(): %s" #define GPM_MESS_TEMPNAM "tempnam(): %s" #define GPM_MESS_OPEN "Could not open %s." #define GPM_MESS_CREATE_FIFO "Creating FIFO %s failed." #define GPM_MESS_STALE_PID "Removing stale pid file %s" #define GPM_MESS_MKSTEMP_FAILED "mkstemp failed with file %s!" #define GPM_MESS_NOTWRITE "Can you write to %s?" #define GPM_MESS_WRITE_ERR "write(): %s" #define GPM_MESS_OPEN_CON "Opening console failed." #define GPM_MESS_OPEN_SERIALCON "We seem to be on a serial console." #define GPM_MESS_READ_FIRST "Error in read()ing first: %s" #define GPM_MESS_READ_REST "Error in read()ing rest: %s" #define GPM_MESS_REMOVE_FILES "Removing files %s and %s" #define GPM_MESS_READ_PROB "Problem reading from %s" #define GPM_MESS_CLOSE "Closing" /* error */ #define GPM_MESS_CANT_KILL "Couldn't kill gpm(%d)!" #define GPM_MESS_FSTAT "fstat()" #define GPM_MESS_SETSID_FAILED "Setsid failed" #define GPM_MESS_CHDIR_FAILED "change directory failed" #define GPM_MESS_FORK_FAILED "Fork failed." #define GPM_MESS_VCCHECK "Failed on virtual console check." #define GPM_MESS_PROT_ERR "Error in protocol" #define GPM_MESS_ROOT "You should be root to run gpm!" #define GPM_MESS_SPEC_ERR "Error in the %s specification. Try \"%s -h\".\n" #define GPM_MESS_ALREADY_RUN "gpm is already running as pid %d" #define GPM_MESS_NO_REPEAT "Repeating into %s protocol not yet implemented :-(" #define GPM_MESS_GET_SHIFT_STATE "get_shift_state" #define GPM_MESS_GET_CONSOLE_STAT "get_console_status" #define GPM_MESS_DISABLE_PASTE "disabling pasting per request from virtual console (%d)" #define GPM_MESS_UNKNOWN_FD "Unknown fd selected" #define GPM_MESS_ACCEPT_FAILED "accept() failed: %s" #define GPM_MESS_ADDRES_NSOCKET "Address %s not a socket in processConn" #define GPM_MESS_SOCKET_OLD "Socket too old in processConn" #define GPM_MESS_GETSOCKOPT "getsockopt(SO_PEERCRED): %s" #define GPM_MESS_STAT_FAILS "stat on %s fails in processConn" #define GPM_MESS_NEED_MDEV "Please use -m /dev/mouse -t protocol" #define GPM_MESS_MOUSE_INIT "mouse initialization failed" #define GPM_MESS_SOCKET_PROB "socket()" #define GPM_MESS_BIND_PROB "Problem binding %s" #define GPM_MESS_SELECT_PROB "Problem with select" #define GPM_MESS_SELECT_STRING "select(): %s" #define GPM_MESS_SELECT_TIMES "selected %i times" #define GPM_MESS_OPTION_NO_ARG "%s: Option \"%s\" takes no argument: ignoring \"%s\"" #define GPM_MESS_INVALID_ARG "%s: Invalid arg. \"%s\" to \"%s\"" #define GPM_MESS_CONT_WITH_ERR "%s: Continuing despite errors in option parsing" #define GPM_MESS_TOO_MANY_OPTS "%s: Too many options for \"-t %s\"" #define GPM_MESS_NETM_NO_ACK "netmouse: No acknowledge (got %d)" #define GPM_MESS_NETM_INV_MAGIC "netmouse: Invalid reply magic (got %d,%d,%d)" #define GPM_MESS_WACOM_MACRO "WACOM Macro: %d" #define GPM_MESS_GUNZE_INV_PACK "gunze: invalid packet \"%s\"" #define GPM_MESS_MMAN_DETECTED "MouseMan detected" #define GPM_MESS_INIT_GENI "initializing genitizer" #define GPM_MESS_WACOM_MOD "WACOM Mode: %c Modell: %s (Answer: %s)" #define GPM_MESS_IMPS2_INIT "imps2: PS/2 mouse failed init" #define GPM_MESS_IMPS2_FAILED "imps2: PS/2 mouse failed (3 button) init" #define GPM_MESS_IMPS2_MID_FAIL "imps2: PS/2 mouse failed to read id, assuming standard PS/2" #define GPM_MESS_IMPS2_SETUP_FAIL "imps2: PS/2 mouse failed setup, continuing..." #define GPM_MESS_IMPS2_BAD_ID "imps2: Auto-detected unknown mouse type %d, assuming standard PS/2" #define GPM_MESS_GUNZE_WRONG_BAUD "%s: %s: wrong baud rate, using 19200" #define GPM_MESS_GUNZE_CALIBRATE "%s: gunze: calibration data absent or invalid,using defaults" #define GPM_MESS_TOO_MANY_SPECIAL "%s: too many special functions (max is %i)" #define GPM_MESS_SYNTAX_1 "%s: %s :%i: Syntax error" #define GPM_MESS_UNKNOWN_MOD_1 "%s: %s :%i: Unknown modifier \"%s\"" #define GPM_MESS_INCORRECT_COORDS "%s: %s :%i: Incorrect chord \"%s\"" #define GPM_MESS_INCORRECT_LINE "%s: %s :%i: Incorrect line:\"%s\"" #define GPM_MESS_FIRST_DEV "Use -m device -t protocol [-o options]!" #define GPM_MESS_ELO_CALIBRATE "%s: etouch: calibration file %s absent or invalid, using defaults" /* warnings */ #define GPM_MESS_REQUEST_ON "Request on vc %i > %i" #define GPM_MESS_FAILED_CONNECT "Failed gpm connect attempt by uid %d for vc %s" #define GPM_MESS_ZERO_SCREEN_DIM "zero screen dimension, assuming 80x25" #define GPM_MESS_STRANGE_DATA "Data on strange file descriptor %d" #define GPM_MESS_RESIZING "%s pid %i is resizing :-)" #define GPM_MESS_KILLED_BY "%s pid %i killed by a new %s" #define GPM_MESS_REDEF_COORDS "%s: %s :%i: Warning: Chord \"%s%s%s\" redefined" /* IOCTL */ #define GPM_MESS_IOCTL_KDGETMODE "ioctl(KDGETMODE)" #define GPM_MESS_IOCTL_TIOCLINUX "ioctl(TIOCLINUX)" #define GPM_MESS_IOCTL_TIOCSTI "%s: ioctl(TIOCSTI): %s" /* debug */ #define GPM_MESS_PEER_SCK_UID "peer socket uid = %d" #define GPM_MESS_LONG_STATUS "Pid %i, vc %i, ev %02X, def %02X, minm %02X, maxm %02X" #define GPM_MESS_SKIP_DATAP "Skipping a data packet: Data %02x %02x %02x %02x" #define GPM_MESS_KILLING "Trying to kill gpm running at pid %d" /* other */ #define GPM_MESS_SKIP_PASTE "Skipping paste; selection has aged" #define GPM_EXTRA_DATA "Extra %02x" #define GPM_MESS_SIGNED "Signed." #define GPM_MESS_CSELECT "is your kernel compiled with CONFIG_SELECTION on?" #define GPM_MESS_NOTHING_MORE "Nothing more" #define GPM_MESS_CON_REQUEST "Request on %i (console %i)" #define GPM_MESS_SCREEN_SIZE "Screen size: %d - %d" /* #define GPM_MESS_ "" */ /* functions */ void gpm_report(int line, char *file, int stat, char *text, ... ); /* rest of wd.h */ #ifdef HAVE_SYSLOG_H #include #else #define LOG_EMERG 0 #define LOG_ALERT 1 #define LOG_CRIT 2 #define LOG_ERR 3 #define LOG_WARNING 4 #define LOG_NOTICE 5 #define LOG_INFO 6 #define LOG_DEBUG 7 #endif #endif /* _MESSAGE_H */ gpm-1.20.7/src/headers/synaptics.h000066400000000000000000000070131204257734200167630ustar00rootroot00000000000000/* * synaptics.h - support for the synaptics serial and ps2 touchpads * * Copyright 1999 hdavies@ameritech.net (Henry Davies * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ /* ** Design/Goals ** I want to use the Synaptics Serial touchpad as a cursor device under ** Linux (gpm). With this device I want to support operations similar ** to those supported by the Synaptics WinDOS driver, and some others ** of my own devising. ** ** Features: ** Corner Clicks ** This recognizes taps on the touchpad in the corner(s) and ** translates them into specific actions. Initially I am looking ** at actions on the order of alternate button clicks. Other ** alternatives include drags and whatnot. ** Edge Extensions ** This recognizes that the finger has moved from the center region ** of the touchpad and dragged to the edge area. At which point ** I want to be able to extend the motion by automatically moving ** in the direction of the edge. ** Toss n Catch ** This recognizes a quick motion of the finger on the touchpad and ** uses that to define a velocity vector for the cursor. A tap ** on the touchpad at a later time catches (stops) the cursor. ** Tap n Drag ** A quick tap of the touchpad followed by finger motion on the ** touchpad initiates what would be a drag with a normal mouse ** type device. ** Pressure Sensitive Velocity ** The Synaptics touchpad indicates the touch pressure of the finger ** (really an interface area) this is used to accelerate the cursor ** motion. This can be used in the normal motion, Tap n Drag, or ** Edge Extension modes. In normal motion and Tap n Drag this may ** be awkward due to increased friction caused by the pressure. */ #ifndef _SYNAPTICS_H_ #define _SYNAPTICS_H_ /* ** syn_process_serial_data ** ** Process the touchpad 6/7/8 byte data. */ void syn_process_serial_data (Gpm_Event *state, unsigned char *data); /* ** syn_process_ps2_data ** ** Process the touchpad 6 byte data. */ void syn_process_ps2_data (Gpm_Event *state, unsigned char *data); /* ** syn_serial_init ** ** Initialize the synaptics touchpad. Read model and identification. ** Determine the size of the touchpad in "pixels". Select 6/7/8 byte packets, ** select 9600 baud, and select high packet rate. ** Return how many bytes in a packet. */ int syn_serial_init (int fd); /* ** syn_ps2_init ** ** Initialize the synaptics touchpad. Read model and identification. ** Determine the size of the touchpad in "pixels". Select 6 byte packets, ** and select high packet rate. */ void syn_ps2_init (int fd); /* ** syn_ps2_reset ** ** Reset the synaptics touchpad. Touchpad ends in relative mode. */ void syn_ps2_reset (int fd); #endif gpm-1.20.7/src/headers/twiddler.h000066400000000000000000000023511204257734200165640ustar00rootroot00000000000000/* definition of the twiddler protocol */ /* * 2400,8,n,1 5-bytes * * bit 7 6 5 4 3 2 1 0 * 0 4L 3M 3L 2M 2L 1M 1L * 1 Mo Al Co Fn Nm Sh 4M * 1 V6 V5 V4 V3 V2 V1 V0 * 1 H4 H3 H2 H1 H0 V8 V7 * 1 0 0 0 H8 H7 H6 H5 * H and V are two complement: up and left is positive */ #define TW_L1 0x0001 #define TW_M1 0x0002 #define TW_R1 0x0003 #define TW_ANY1 0x0003 #define TW_L2 0x0004 #define TW_M2 0x0008 #define TW_R2 0x000C #define TW_ANY2 0x000C #define TW_L3 0x0010 #define TW_M3 0x0020 #define TW_R3 0x0030 #define TW_ANY3 0x0030 #define TW_L4 0x0040 #define TW_M4 0x0080 #define TW_R4 0x00C0 #define TW_ANY4 0x00C0 #define TW_MOD_0 0x0000 #define TW_MOD_S 0x0100 #define TW_MOD_N 0x0200 #define TW_MOD_F 0x0400 #define TW_MOD_C 0x0800 #define TW_MOD_A 0x1000 #define TW_MOD_M 0x2000 #define TW_ANY_KEY 0x3fff /* any button or modifier */ #define TW_ANY_MOD 0x3f00 /* any modifier */ #define TW_V_SHIFT 14 #define TW_H_SHIFT 23 #define TW_M_MASK 0x1FF /* mask of movement bits, after shifting */ #define TW_M_BIT 0x100 #define TW_SYSTEM_FILE SYSCONFDIR "/gpm-twiddler.conf" #define TW_CUSTOM_FILE SYSCONFDIR "/gpm-twiddler.user" gpm-1.20.7/src/lib/000077500000000000000000000000001204257734200137275ustar00rootroot00000000000000gpm-1.20.7/src/lib/libcurses.c000066400000000000000000000106561204257734200160760ustar00rootroot00000000000000/* * libcurses.c - client library - curses level (gpm-Linux) * * Copyright 1994,1995 rubini@linux.it (Alessandro Rubini) * Copyright 2002 nico@schottelius.org (Nico Schottelius) * * xterm management is mostly by Miguel de Icaza * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ #include #include #include /* select(); */ #include /* timeval */ #include /* socket() */ #include "headers/gpmInt.h" #ifdef HAVE_NCURSES_H #include #else #ifdef HAVE_NCURSES_CURSES_H #include #else #ifdef HAVE_CURSES_H #include #endif /* HAVE_CURSES_H */ #endif /* HAVE_NCURSES_CURSES_H */ #endif /* HAVE_NCURSES_H */ #define GET(win) ((win) ? wgetch(win) : getch()) int Gpm_Wgetch(WINDOW *win) { fd_set selSet; int max, flag, result; int fd=STDIN_FILENO; static Gpm_Event ev; if (!gpm_flag || gpm_fd==-1) return GET(win); if (gpm_morekeys) return (*gpm_handler)(&ev,gpm_data); gpm_hflag=0; max = (gpm_fd>fd) ? gpm_fd : fd; /*...................................................................*/ if (gpm_fd>=0) /* linux */ while(1) { if (gpm_visiblepointer) GPM_DRAWPOINTER(&ev); do { FD_ZERO(&selSet); FD_SET(fd,&selSet); if (gpm_fd>-1) FD_SET(gpm_fd,&selSet); gpm_timeout.tv_sec=SELECT_TIME; flag=select(max+1,&selSet,(fd_set *)NULL,(fd_set *)NULL,&gpm_timeout); } while (!flag); if (FD_ISSET(fd,&selSet)) return GET(win); if (flag==-1) continue; if (Gpm_GetEvent(&ev) && gpm_handler && (result=(*gpm_handler)(&ev,gpm_data))) { gpm_hflag=1; return result; } } else /*...................................................................*/ if (gpm_fd==-2) /* xterm */ { #define DELAY_MS 100 static struct timeval to={0,DELAY_MS*1000}; static fd_set selSet; /* JD patch 11/08/1998 */ #define MAXNBPREVCHAR 4 /* I don't think more is usefull, JD */ static int nbprevchar=0, prevchar[MAXNBPREVCHAR]; extern int gpm_convert_event(char *data, Gpm_Event *event); int c; unsigned char mdata[4]; /* JD patch 11/08/1998 */ if (nbprevchar) /* if there are some consumed char ... */ return prevchar[--nbprevchar]; /* if ungetc() didn't suffice... */ /* if ((c=prevchar)!=EOF) { prevchar=EOF; return c; } */ while(1) { do { FD_ZERO(&selSet); FD_SET(fd,&selSet); gpm_timeout.tv_sec=SELECT_TIME; flag=select(fd+1,&selSet,(fd_set *)NULL,(fd_set *)NULL,&gpm_timeout); } while (!flag); if ((c=GET(win))!=0x1b) return c; /* escape: go on */ FD_ZERO(&selSet); FD_SET(fd,&selSet); to.tv_usec=DELAY_MS*1000; if ((flag=select(fd+1,&selSet,(fd_set *)NULL,(fd_set *)NULL,&to))==0) return c; if ((c=GET(win))!='[') {prevchar[nbprevchar++]=c; return 0x1B;} /* patche par JD 11/08/1998 */ /* {ungetc(c,stdin); return 0x1B;} */ /* '[': go on */ FD_ZERO(&selSet); FD_SET(fd,&selSet); to.tv_usec=DELAY_MS*1000; if ((flag=select(fd+1,&selSet,(fd_set *)NULL,(fd_set *)NULL,&to))==0) {prevchar[nbprevchar++]=c; return 0x1B;} /* patche par JD 11/08/1998 */ /* {ungetc(c,stdin); return 0x1B;} */ if ((c=GET(win))!='M') /* patche par JD 11/08/1998 NOTICE: prevchar is a lifo !*/ {prevchar[nbprevchar++]=c; prevchar[nbprevchar++]='['; return 0x1B;} /* {ungetc(c,stdin);prevchar='['; return 0x1B;} */ /* now, it surely is a mouse event */ for (c=0;c<3;c++) mdata[c]=GET(win); gpm_convert_event(mdata,&ev); if (gpm_handler && (result=(*gpm_handler)(&ev,gpm_data))) { gpm_hflag=1; return result; } } /* while(1) */ } return 0; } gpm-1.20.7/src/lib/libhigh.c000066400000000000000000000125561204257734200155120ustar00rootroot00000000000000/* * libhigh.c - client library - high level (gpm) * * Copyright 1994,1995 rubini@linux.it (Alessandro Rubini) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ #include #include #include "headers/gpmInt.h" Gpm_Roi *gpm_roi=NULL; Gpm_Roi *gpm_current_roi=NULL; Gpm_Handler *gpm_roi_handler=NULL; void *gpm_roi_data; /*-------------------------------------------------------------------*/ Gpm_Roi *Gpm_PushRoi(int x, int y, int X, int Y, int mask, Gpm_Handler *fun, void *xtradata) { Gpm_Roi *new; /* create a Roi and push it */ new=(Gpm_Roi *)malloc(sizeof(Gpm_Roi)); if (!new) return NULL; /* use the roi handler, if still null */ if (!gpm_roi && !gpm_handler) gpm_handler=Gpm_HandleRoi; new->xMin=x; new->xMax=X; new->yMin=y; new->yMax=Y; new->minMod=0; new->maxMod=~0; new->prev = new->next=NULL; new->eventMask=mask; new->owned=0; /* use free() */ new->handler=fun; new->clientdata = xtradata ? xtradata : (void *)new; return Gpm_RaiseRoi(new,NULL); } /*-------------------------------------------------------------------*/ Gpm_Roi *Gpm_UseRoi(Gpm_Roi *new) { /* use a Roi by pushing it */ new->prev = new->next=NULL; new->owned=1; /* don't free() */ /* use the roi handler, if still null */ if (!gpm_roi && !gpm_handler) gpm_handler=Gpm_HandleRoi; return Gpm_RaiseRoi(new,NULL); } /*-------------------------------------------------------------------*/ Gpm_Roi *Gpm_PopRoi(Gpm_Roi *which) { /* extract the Roi and remove it */ if (which->prev) which->prev->next = which->next; if (which->next) which->next->prev = which->prev; if (gpm_roi==which) gpm_roi=which->next; if (which->owned==0) free(which); if (gpm_current_roi==which) gpm_current_roi=NULL; return gpm_roi; /* return the new top-of-stack */ } /*-------------------------------------------------------------------*/ Gpm_Roi *Gpm_RaiseRoi(Gpm_Roi *which, Gpm_Roi *before) { /* raise a Roi above another, or to top-of-stack */ if (!gpm_roi) return gpm_roi=which; if (!before) before=gpm_roi; if (before==which) return gpm_roi; if (which->prev) which->prev->next = which->next; if (which->next) which->next->prev = which->prev; if (gpm_roi==which) gpm_roi=which->next; which->prev=before->prev; before->prev=which; which->next=before; if (which->prev) which->prev->next=which; else gpm_roi=which; return gpm_roi; /* return the new top-of-stack */ } /*-------------------------------------------------------------------*/ Gpm_Roi *Gpm_LowerRoi(Gpm_Roi *which, Gpm_Roi *after) { /* lower a Roi below another, or to bottom-of-stack */ if (!after) for (after=gpm_roi; after->next; after=after->next) ; if (after==which) return gpm_roi; if (which->prev) which->prev->next = which->next; if (which->next) which->next->prev = which->prev; if (gpm_roi==which) gpm_roi=which->next; which->next=after->next; after->next=which; which->prev=after; if (which->next) which->next->prev=which; return gpm_roi; /* return the new top-of-stack */ } /*===================================================================* * This function is in care of all event dispatching. * It generates also GPM_ENTER and GPM_LEAVE events. */ int Gpm_HandleRoi(Gpm_Event *ePtr, void *clientdata) { static Gpm_Event backEvent; Gpm_Roi *roi=gpm_current_roi; /* * If motion or press, look for the interested roi. * Drag and release will be reported to the old roi. */ if (ePtr->type&(GPM_MOVE|GPM_DOWN)) for (roi=gpm_roi; roi; roi=roi->next) { if (roi->xMin > ePtr->x || roi->xMax < ePtr->x) continue; if (roi->yMin > ePtr->y || roi->yMax < ePtr->y) continue; if ((roi->minMod & ePtr->modifiers) < roi->minMod) continue; if ((roi->maxMod & ePtr->modifiers) < ePtr->modifiers) continue; break; } /* * Now generate the leave/enter events */ if (roi!=gpm_current_roi) { if (gpm_current_roi && (gpm_current_roi->eventMask & GPM_LEAVE)) { backEvent.type=GPM_LEAVE; (*(gpm_current_roi->handler))(&backEvent,gpm_current_roi->clientdata); } if (roi && (roi->eventMask & GPM_ENTER)) { backEvent.type=GPM_ENTER; (*(roi->handler))(&backEvent,roi->clientdata); } } gpm_current_roi=roi; /* * events not requested are discarded */ if (roi && (GPM_BARE_EVENTS(ePtr->type) & roi->eventMask) == 0) return 0; backEvent=*ePtr; /* copy it, so the main one is unchanged */ if (!roi) { if (gpm_roi_handler) return (*gpm_roi_handler)(&backEvent,gpm_roi_data); return 0; } /* * Ok, now report the event as it is, after modifying x and y */ backEvent.x -= roi->xMin; backEvent.y -= roi->yMin; return (*(roi->handler))(&backEvent,roi->clientdata); } gpm-1.20.7/src/lib/liblow.c000066400000000000000000000472321204257734200153730ustar00rootroot00000000000000/* * * liblow.c - client library - low level (gpm) * * Copyright 1994,1995 rubini@linux.it (Alessandro Rubini) * Copyright (C) 1998 Ian Zimmerman * Copyright 2001-2008 Nico Schottelius (nico-gpm2008 at schottelius.org) * * xterm management is mostly by jtklehto@stekt.oulu.fi (Janne Kukonlehto) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ #include #include #include #include /* strncmp */ #include /* select(); */ #include #include /* timeval */ #include /* socket() */ #include /* socket() */ #include /* struct sockaddr_un */ #include /* O_RDONLY */ #include /* stat() */ #ifdef SIGTSTP /* true if BSD system */ #include #include #endif #include #include /* VT_GETSTATE */ #include /* KDGETMODE */ #include /* winsize */ #include "headers/gpmInt.h" #include "headers/message.h" #ifndef min #define min(a,b) ((a)<(b) ? (a) : (b)) #define max(a,b) ((a)>(b) ? (a) : (b)) #endif /*....................................... Stack struct */ typedef struct Gpm_Stst { Gpm_Connect info; struct Gpm_Stst *next; } Gpm_Stst; /*....................................... Global variables */ int gpm_flag=0; /* almost unuseful now -- where was it used for ? can we remove it now ? FIXME */ int gpm_tried=0; int gpm_fd=-1; int gpm_hflag=0; Gpm_Stst *gpm_stack=NULL; struct timeval gpm_timeout={10,0}; Gpm_Handler *gpm_handler=NULL; void *gpm_data=NULL; int gpm_zerobased=0; int gpm_visiblepointer=0; int gpm_mx, gpm_my; /* max x and y (1-based) to fit margins */ unsigned char _gpm_buf[6*sizeof(short)]; unsigned short * _gpm_arg = (unsigned short *)_gpm_buf +1; int gpm_consolefd=-1; /* used to invoke ioctl() */ int gpm_morekeys=0; int gpm_convert_event(unsigned char *mdata, Gpm_Event *ePtr); /*----------------------------------------------------------------------------* * nice description *----------------------------------------------------------------------------*/ static inline int putdata(int where, Gpm_Connect *what) { #ifdef GPM_USE_MAGIC static int magic=GPM_MAGIC; if (write(where,&magic,sizeof(int))!=sizeof(int)) { gpm_report(GPM_PR_ERR,GPM_MESS_WRITE_ERR,strerror(errno)); return -1; } #endif if (write(where,what,sizeof(Gpm_Connect))!=sizeof(Gpm_Connect)) { gpm_report(GPM_PR_ERR,GPM_MESS_WRITE_ERR,strerror(errno)); return -1; } return 0; } #if (defined(SIGWINCH)) /* itz Wed Mar 18 11:19:52 PST 1998 hook window change as well */ /* Old SIGWINCH handler. */ static struct sigaction gpm_saved_winch_hook; /*----------------------------------------------------------------------------* * nice description *----------------------------------------------------------------------------*/ static void gpm_winch_hook (int signum) { struct winsize win; if (SIG_IGN != gpm_saved_winch_hook.sa_handler && SIG_DFL != gpm_saved_winch_hook.sa_handler) { gpm_saved_winch_hook.sa_handler(signum); } /*if*/ if (ioctl(gpm_consolefd, TIOCGWINSZ, &win) == -1) { return; } /*if*/ if (!win.ws_col || !win.ws_row) { win.ws_col=80; win.ws_row=25; } /*if*/ gpm_mx = win.ws_col - gpm_zerobased; gpm_my = win.ws_row - gpm_zerobased; } #endif /* SIGWINCH */ #if (defined(SIGTSTP)) /* itz: support for SIGTSTP */ /* Old SIGTSTP handler. */ static struct sigaction gpm_saved_suspend_hook; /*----------------------------------------------------------------------------* * nice description *----------------------------------------------------------------------------*/ static void gpm_suspend_hook (int signum) { Gpm_Connect gpm_connect; sigset_t old_sigset; sigset_t new_sigset; struct sigaction sa; int success; sigemptyset (&new_sigset); sigaddset (&new_sigset, SIGTSTP); sigprocmask (SIG_BLOCK, &new_sigset, &old_sigset); /* Open a completely transparent gpm connection */ gpm_connect.eventMask = 0; gpm_connect.defaultMask = ~0; gpm_connect.minMod = ~0; gpm_connect.maxMod = 0; /* cannot do this under xterm, tough */ success = (Gpm_Open (&gpm_connect, 0) >= 0); /* take the default action, whatever it is (probably a stop :) */ sigprocmask (SIG_SETMASK, &old_sigset, 0); sigaction (SIGTSTP, &gpm_saved_suspend_hook, 0); kill (getpid (), SIGTSTP); /* in bardo here */ /* Reincarnation. Prepare for another death early. */ sigemptyset(&sa.sa_mask); sa.sa_handler = gpm_suspend_hook; sa.sa_flags = SA_NOMASK; sigaction (SIGTSTP, &sa, 0); /* Pop the gpm stack by closing the useless connection */ /* but do it only when we know we opened one.. */ if (success) { Gpm_Close (); } /*if*/ } #endif /* SIGTSTP */ /*----------------------------------------------------------------------------* * nice description *----------------------------------------------------------------------------*/ int Gpm_Open(Gpm_Connect *conn, int flag) { char *tty = NULL; char *term = NULL; int i; struct sockaddr_un addr; struct winsize win; Gpm_Stst *new = NULL; char* sock_name = 0; static char *consolename = NULL; int gpm_is_disabled = 0; /*....................................... First of all, check xterm */ if ((term=(char *)getenv("TERM")) && !strncmp(term,"xterm",5)) { if(gpm_tried) return gpm_fd; /* no stack */ gpm_fd=-2; GPM_XTERM_ON; gpm_flag=1; return gpm_fd; } /*....................................... No xterm, go on */ /* check whether we know what name the console is: what's with the lib??? */ if(!consolename) { consolename = Gpm_get_console(); if(!consolename) { gpm_report(GPM_PR_ERR,"unable to open gpm console, check your /dev filesystem!\n"); goto err; } } /* * So I chose to use the current tty, instead of /dev/console, which * has permission problems. (I am fool, and my console is * readable/writeable by everybody. * * However, making this piece of code work has been a real hassle. */ if (!gpm_flag && gpm_tried) return -1; gpm_tried=1; /* do or die */ if ((new = (Gpm_Stst *) malloc(sizeof(Gpm_Stst))) == NULL) return -1; new->next=gpm_stack; gpm_stack=new; conn->pid=getpid(); /* fill obvious values */ if (new->next) conn->vc=new->next->info.vc; /* inherit */ else { conn->vc=0; /* default handler */ if (flag > 0) { /* forced vc number */ conn->vc=flag; if((tty = malloc(strlen(consolename) + Gpm_cnt_digits(flag))) == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); memcpy(tty, consolename, strlen(consolename)-1); sprintf(&tty[strlen(consolename) - 1], "%i", flag); } else if (flag==0) { /* use your current vc */ if (isatty(0)) tty = ttyname(0); /* stdin */ if (!tty && isatty(1)) tty = ttyname(1); /* stdout */ if (!tty && isatty(2)) tty = ttyname(2); /* stderr */ if (tty == NULL) { gpm_report(GPM_PR_ERR,"checking tty name failed"); goto err; } conn->vc=atoi(&tty[strlen(consolename)-1]); } else /* a default handler -- use console */ tty=strdup(consolename); if (gpm_consolefd == -1) if ((gpm_consolefd=open(tty,O_WRONLY)) < 0) { gpm_report(GPM_PR_ERR,GPM_MESS_DOUBLE_S,tty,strerror(errno)); goto err; } } new->info=*conn; /*....................................... Get screen dimensions */ ioctl(gpm_consolefd, TIOCGWINSZ, &win); if (!win.ws_col || !win.ws_row) { fprintf(stderr, "libgpm: zero screen dimension, assuming 80x25.\n"); win.ws_col=80; win.ws_row=25; } gpm_mx = win.ws_col - gpm_zerobased; gpm_my = win.ws_row - gpm_zerobased; /*....................................... Connect to the control socket */ if (!(gpm_flag++)) { if ( (gpm_fd=socket(AF_UNIX,SOCK_STREAM,0))<0 ) { gpm_report(GPM_PR_ERR,GPM_MESS_SOCKET,strerror(errno)); goto err; } #ifndef SO_PEERCRED bzero((char *)&addr,sizeof(addr)); addr.sun_family=AF_UNIX; if (!(sock_name = tempnam (0, "gpm"))) { gpm_report(GPM_PR_ERR,GPM_MESS_TEMPNAM,strerror(errno)); goto err; } strncpy (addr.sun_path, sock_name, sizeof (addr.sun_path)); if (bind (gpm_fd, (struct sockaddr*)&addr, sizeof (addr.sun_family) + strlen (addr.sun_path))==-1) { gpm_report(GPM_PR_ERR,GPM_MESS_DOUBLE_S, sock_name, strerror(errno)); goto err; } #endif bzero((char *)&addr,sizeof(addr)); addr.sun_family=AF_UNIX; strcpy(addr.sun_path, GPM_NODE_CTL); i=sizeof(addr.sun_family)+strlen(GPM_NODE_CTL); if(connect(gpm_fd,(struct sockaddr *)(&addr),i)<0 ) { struct stat stbuf; if (errno == ENOENT) { gpm_report(GPM_PR_DEBUG,"cannot find %s; ignoring (gpm disabled?)", GPM_NODE_CTL); gpm_is_disabled++; } else { gpm_report(GPM_PR_INFO,GPM_MESS_DOUBLE_S,GPM_NODE_CTL, strerror(errno)); } /* * Well, try to open a chr device called /dev/gpmctl. This should * be forward-compatible with a kernel server */ close(gpm_fd); /* the socket */ if ((gpm_fd=open(GPM_NODE_DEV,O_RDWR))==-1) { if (errno == ENOENT) { gpm_report(GPM_PR_DEBUG,"Cannot find %s; ignoring (gpm disabled?)", GPM_NODE_DEV); gpm_is_disabled++; } else { gpm_report(GPM_PR_ERR,GPM_MESS_DOUBLE_S,GPM_NODE_DEV ,strerror(errno)); } goto err; } if (fstat(gpm_fd,&stbuf)==-1 || (stbuf.st_mode&S_IFMT)!=S_IFCHR) { goto err; } } } /*....................................... Put your data */ if (putdata(gpm_fd,conn)!=-1) { /* itz Wed Dec 16 23:22:16 PST 1998 use sigaction, the old code caused a signal loop under XEmacs */ struct sigaction sa; sigemptyset(&sa.sa_mask); #if (defined(SIGWINCH)) /* And the winch hook .. */ sa.sa_handler = gpm_winch_hook; sa.sa_flags = 0; sigaction(SIGWINCH, &sa, &gpm_saved_winch_hook); #endif #if (defined(SIGTSTP)) if (gpm_flag == 1) { /* Install suspend hook */ sa.sa_handler = SIG_IGN; sigaction(SIGTSTP, &sa, &gpm_saved_suspend_hook); /* if signal was originally ignored, job control is not supported */ if (gpm_saved_suspend_hook.sa_handler != SIG_IGN) { sa.sa_flags = SA_NOMASK; sa.sa_handler = gpm_suspend_hook; sigaction(SIGTSTP, &sa, 0); } } #endif } return gpm_fd; /*....................................... Error: free all memory */ err: if (gpm_is_disabled < 2) /* be quiet if no gpmctl socket found */ gpm_report(GPM_PR_ERR,"Oh, oh, it's an error! possibly I die! "); while(gpm_stack) { new=gpm_stack->next; free(gpm_stack); gpm_stack=new; } if (gpm_fd>=0) close(gpm_fd); if (sock_name) { unlink(sock_name); free(sock_name); sock_name = 0; } gpm_flag=0; return -1; } /*-------------------------------------------------------------------*/ int Gpm_Close(void) { Gpm_Stst *next; gpm_tried=0; /* reset the error flag for next time */ if (gpm_fd==-2) /* xterm */ GPM_XTERM_OFF; else /* linux */ { if (!gpm_flag) return 0; next=gpm_stack->next; free(gpm_stack); gpm_stack=next; if (next) putdata(gpm_fd,&(next->info)); if (--gpm_flag) return -1; } if (gpm_fd>=0) close(gpm_fd); gpm_fd=-1; #ifdef SIGTSTP sigaction(SIGTSTP, &gpm_saved_suspend_hook, 0); #endif #ifdef SIGWINCH sigaction(SIGWINCH, &gpm_saved_winch_hook, 0); #endif close(gpm_consolefd); gpm_consolefd=-1; return 0; } /*-------------------------------------------------------------------*/ int Gpm_GetEvent(Gpm_Event *event) { int count; MAGIC_P((int magic)); if (!gpm_flag) return 0; #ifdef GPM_USE_MAGIC if ((count=read(gpm_fd,&magic,sizeof(int)))!=sizeof(int)) { if (count==0) { gpm_report(GPM_PR_INFO,"Warning: closing connection"); Gpm_Close(); return 0; } gpm_report(GPM_PR_INFO,"Read too few bytes (%i) at %s:%d",count,__FILE__,__LINE__); return -1; } #endif if ((count=read(gpm_fd,event,sizeof(Gpm_Event)))!=sizeof(Gpm_Event)) { #ifndef GPM_USE_MAGIC if (count==0) { gpm_report(GPM_PR_INFO,"Warning: closing connection"); Gpm_Close(); return 0; } #endif /* * avoid to send the message if there is no data; sometimes it makes * sense to poll the mouse descriptor any now an then using a * non-blocking descriptor */ if (count != -1 || errno != EAGAIN) gpm_report(GPM_PR_INFO,"Read too few bytes (%i) at %s:%d", count,__FILE__,__LINE__); return -1; } event->x -= gpm_zerobased; event->y -= gpm_zerobased; return 1; } #define MAXNBPREVCHAR 4 /* I don't think more is usefull, JD */ static int nbprevchar=0, prevchar[MAXNBPREVCHAR]; /*-------------------------------------------------------------------*/ int Gpm_CharsQueued () { return nbprevchar; } /*-------------------------------------------------------------------*/ int Gpm_Getc(FILE *f) { fd_set selSet; int max, flag, result; static Gpm_Event ev; int fd=fileno(f); static int count; /* Hmm... I must be sure it is unbuffered */ if (!(count++)) setvbuf(f,NULL,_IONBF,0); if (!gpm_flag) return getc(f); /* If the handler asked to provide more keys, give them back */ if (gpm_morekeys) return (*gpm_handler)(&ev,gpm_data); gpm_hflag=0; max = (gpm_fd>fd) ? gpm_fd : fd; /*...................................................................*/ if (gpm_fd>=0) /* linux */ while(1) { if (gpm_visiblepointer) GPM_DRAWPOINTER(&ev); do { FD_ZERO(&selSet); FD_SET(fd,&selSet); if (gpm_fd>-1) FD_SET(gpm_fd,&selSet); gpm_timeout.tv_sec=SELECT_TIME; flag=select(max+1,&selSet,(fd_set *)NULL,(fd_set *)NULL,&gpm_timeout); } while (!flag); if (flag==-1) continue; if (FD_ISSET(fd,&selSet)) return fgetc(f); if (Gpm_GetEvent(&ev) && gpm_handler && (result=(*gpm_handler)(&ev,gpm_data))) { gpm_hflag=1; return result; } } else /*...................................................................*/ if (gpm_fd==-2) /* xterm */ { #define DELAY_MS 100 static struct timeval to={0,DELAY_MS*1000}; static fd_set selSet; extern int gpm_convert_event(unsigned char *data, Gpm_Event *event); int c; unsigned char mdata[4]; if (nbprevchar) /* if there are some consumed char ... */ return prevchar[--nbprevchar]; while(1) { do { FD_ZERO(&selSet); FD_SET(fd,&selSet); gpm_timeout.tv_sec=SELECT_TIME; flag=select(fd+1,&selSet,(fd_set *)NULL,(fd_set *)NULL,&gpm_timeout); } while (!flag); if ((c=fgetc(f))!=0x1b) return c; /* escape: go on */ FD_ZERO(&selSet); FD_SET(fd,&selSet); to.tv_usec=DELAY_MS*1000; if ((flag=select(fd+1,&selSet,(fd_set *)NULL,(fd_set *)NULL,&to))==0) return c; if ((c=fgetc(f))!='[') {prevchar[nbprevchar++]=c; return 0x1B;} /* patche par JD 11/08/1998 */ /* '[': go on */ FD_ZERO(&selSet); FD_SET(fd,&selSet); to.tv_usec=DELAY_MS*1000; if ((flag=select(fd+1,&selSet,(fd_set *)NULL,(fd_set *)NULL,&to))==0) {prevchar[nbprevchar++]=c; return 0x1B;} /* patche par JD 11/08/1998 */ if ((c=fgetc(f))!='M') /* patche par JD 11/08/1998 NOTICE: prevchar is a lifo !*/ {prevchar[nbprevchar++]=c; prevchar[nbprevchar++]='['; return 0x1B;} /* now, it surely is a mouse event */ for (c=0;c<3;c++) mdata[c]=fgetc(f); gpm_convert_event(mdata,&ev); if (gpm_handler && (result=(*gpm_handler)(&ev,gpm_data))) { gpm_hflag=1; return result; } } /* while(1) */ } /*...................................................................*/ else return fgetc(f); /* no mouse available */ } /*-------------------------------------------------------------------*/ int Gpm_Repeat(int msec) { struct timeval to={0,1000*msec}; int fd; fd_set selSet; fd=gpm_fd>=0 ? gpm_fd : 0; /* either the socket or stdin */ FD_ZERO(&selSet); FD_SET(fd,&selSet); return (select(fd+1,&selSet,(fd_set *)NULL,(fd_set *)NULL,&to)==0); } /*-------------------------------------------------------------------*/ int Gpm_FitValuesM(int *x, int *y, int margin) { if (margin==-1) { *x = min( max(*x,!gpm_zerobased), gpm_mx); *y = min( max(*y,!gpm_zerobased), gpm_my); return 0; } switch(margin) { case GPM_TOP: (*y)++; break; case GPM_BOT: (*y)--; break; case GPM_RGT: (*x)--; break; case GPM_LFT: (*x)++; break; } return 0; } /*-------------------------------------------------------------------*/ int gpm_convert_event(unsigned char *mdata, Gpm_Event *ePtr) { static struct timeval tv1={0,0}, tv2; static int clicks=0; int c; #define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL)) #define DIF_TIME(t1,t2) ((t2.tv_sec -t1.tv_sec) *1000+ \ (t2.tv_usec-t1.tv_usec)/1000) /* Variable btn has following meaning: */ c = mdata[0]-32; /* 0="1-down", 1="2-down", 2="3-down", 3="up" */ if (c==3) { ePtr->type = GPM_UP | (GPM_SINGLE<buttons = 0; */ /* no, keep info from press event */ GET_TIME (tv1); clicks = 0; } else { ePtr->type = GPM_DOWN; GET_TIME (tv2); if (tv1.tv_sec && (DIF_TIME(tv1,tv2)<250)) /* 250ms for double click */ {clicks++; clicks%=3;} else clicks = 0; switch (c) { case 0: ePtr->buttons=GPM_B_LEFT; break; case 1: ePtr->buttons=GPM_B_MIDDLE; break; case 2: ePtr->buttons=GPM_B_RIGHT; break; default: /* Nothing */ break; } } /* Coordinates are 33-based */ /* Transform them to 1-based */ ePtr->x = mdata[1]-32-gpm_zerobased; ePtr->y = mdata[2]-32-gpm_zerobased; return 0; } /* Local Variables: */ /* c-indent-level: 3 */ /* End: */ gpm-1.20.7/src/lib/libxtra.c000066400000000000000000000073751204257734200155540ustar00rootroot00000000000000 /* * libxtra.c - client library - extra functions (gpm-Linux) * * Copyright 1994,1995 rubini@linux.it (Alessandro Rubini) * Copyright (C) 1998 Ian Zimmerman * * xterm management is mostly by Miguel de Icaza * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ #include #include #include #include #include #include #include "headers/gpmInt.h" #include "headers/message.h" /*-------------------------------------------------------------------*/ /* * these two functions return version information */ //static char *gpml_ver_s = GPM_ABI_FULL; //static int gpml_ver_i = 0; char *Gpm_GetLibVersion(int *where) { if(where) *where = GPM_ABI_LEV * 10000 + GPM_ABI_AGE * 100 + GPM_ABI_REV; return GPM_ABI_FULL; } static char gpm_ver_s[16]; static int gpm_ver_i = 0; char *Gpm_GetServerVersion(int *where) { char line[128]; FILE *f; int i, j, k = 0; if(!gpm_ver_s[0]) { f = popen(SBINDIR "/gpm -v", "r"); if(!f) return NULL; fgets(line, 128, f); if(pclose(f)) return 0; sscanf(line, "%*s %s", gpm_ver_s); /* "gpm-Linux 0.98, March 1995" */ gpm_ver_s[strlen(gpm_ver_s) - 1] = '\0'; /* cut the ',' */ sscanf(gpm_ver_s, "%d.%d.%d", &i, &j, &k); gpm_ver_i = i * 10000 + j * 100 + k; } if(where) *where = gpm_ver_i; return gpm_ver_s; } /*-------------------------------------------------------------------*/ /* * This returns all the available information about the current situation: * The return value is the number of buttons, as known to the server, * the ePtr, if any, is filled with information on the current state. */ int Gpm_GetSnapshot(Gpm_Event * ePtr) { Gpm_Connect conn; Gpm_Event event; fd_set sillySet; struct timeval to = { 0, 0 }; int i; if(!gpm_ver_i) { if(0 == Gpm_GetServerVersion(NULL)) { gpm_report(GPM_PR_WARN, "can't get gpm server version"); } /* if */ gpm_report(GPM_PR_INFO, "libgpm: got server version as %i", gpm_ver_i); } if(gpm_ver_i < 9802) { gpm_report(GPM_PR_INFO, "gpm server version too old to obtain status info"); return -1; /* error */ } if(gpm_fd <= 0) { gpm_report(GPM_PR_INFO, "gpm connection must be open to obtain status info"); return -1; /* error */ } conn.pid = 0; /* this signals a request */ if(ePtr) conn.vc = GPM_REQ_SNAPSHOT; else { conn.vc = GPM_REQ_BUTTONS; ePtr = &event; } if(gpm_fd == -1) return -1; FD_ZERO(&sillySet); FD_SET(gpm_fd, &sillySet); if(select(gpm_fd + 1, &sillySet, NULL, NULL, &to) == 1) return 0; write(gpm_fd, &conn, sizeof(Gpm_Connect)); if((i = Gpm_GetEvent(ePtr)) != 1) return -1; i = ePtr->type; ePtr->type = 0; return i; /* number of buttons */ } /* Local Variables: */ /* c-indent-level: 2 */ /* End: */ gpm-1.20.7/src/lib/report-lib.c000066400000000000000000000040451204257734200161550ustar00rootroot00000000000000/* * report-lib.c: the exported version of gpm_report. used in Gpm_Open and co. * * Copyright (c) 2001 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. */ #include /* NULL */ #include /* va_arg/start/... */ #include /* exit() */ #include "headers/message.h" void gpm_report(int line, char *file, int stat, char *text, ... ) { char *string = NULL; int log_level; va_list ap; if (stat == GPM_STAT_DEBUG) return; va_start(ap,text); switch(stat) { case GPM_STAT_INFO : string = GPM_TEXT_INFO ; log_level = LOG_INFO; break; case GPM_STAT_WARN : string = GPM_TEXT_WARN ; log_level = LOG_WARNING; break; case GPM_STAT_ERR : string = GPM_TEXT_ERR ; log_level = LOG_ERR; break; case GPM_STAT_DEBUG: string = GPM_TEXT_DEBUG; log_level = LOG_DEBUG; break; case GPM_STAT_OOPS : string = GPM_TEXT_OOPS; log_level = LOG_CRIT; break; } #ifdef HAVE_VSYSLOG syslog(log_level, string); vsyslog(log_level, text, ap); #else fprintf(stderr,"%s[%s(%d)]:\n",string,file,line); vfprintf(stderr,text,ap); fprintf(stderr,"\n"); #endif if(stat == GPM_STAT_OOPS) exit(1); /* may a lib function call exit ???? */ } gpm-1.20.7/src/mice.c000066400000000000000000002440131204257734200142460ustar00rootroot00000000000000/* * mice.c - mouse definitions for gpm-Linux * * Copyright (C) 1993 Andrew Haylett * Copyright (C) 1994-2000 Alessandro Rubini * Copyright (C) 1998,1999 Ian Zimmerman * Copyright (C) 2001-2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ /* * This file is part of the mouse server. The information herein * is kept aside from the rest of the server to ease fixing mouse-type * issues. Each mouse type is expected to fill the `buttons', `dx' and `dy' * fields of the Gpm_Event structure and nothing more. * * Absolute-pointing devices (support by Marc Meis), are expecting to * fit `x' and `y' as well. Unfortunately, to do it the window size must * be accessed. The global variable "win" is available for that use. * * The `data' parameter points to a byte-array with event data, as read * by the mouse device. The mouse device should return a fixed number of * bytes to signal an event, and that exact number is read by the server * before calling one of these functions. * * The conversion function defined here should return 0 on success and -1 * on failure. * * Refer to the definition of Gpm_Type to probe further. */ #include #include #include #include #include #include #include #include #include #include #include /* stat() */ #include /* select() */ #include /* MAJOR */ #include /* JOYSTICK */ #ifdef HAVE_LINUX_JOYSTICK_H #include #endif /* EV DEVICE */ #ifdef HAVE_LINUX_INPUT_H #include #endif /* HAVE_LINUX_INPUT_H */ #include "headers/gpmInt.h" #include "headers/daemon.h" #include "headers/twiddler.h" #include "headers/synaptics.h" #include "headers/message.h" /*========================================================================*/ /* Parsing argv: helper dats struct function (should they get elsewhere?) */ /*========================================================================*/ enum argv_type { ARGV_BOOL = 1, ARGV_INT, /* "%i" */ ARGV_DEC, /* "%d" */ ARGV_STRING, /* other types must be added */ ARGV_END = 0 }; typedef struct argv_helper { char *name; enum argv_type type; union u { int *iptr; /* used for int and bool arguments */ char **sptr; /* used for string arguments, by strdup()ing the value */ } u; int value; /* used for boolean arguments */ } argv_helper; static int parse_argv(argv_helper *info, int argc, char **argv) { int i, j = 0, errors = 0; long l; argv_helper *p; char *s, *t; int base = 0; /* for strtol */ for (i=1; itype != ARGV_END; p++) { j = strlen(p->name); if (strncmp(p->name, argv[i], j)) continue; if (isalnum(argv[i][j])) continue; break; } if (p->type == ARGV_END) { /* not found */ fprintf(stderr, "%s: Uknown option \"%s\" for pointer \"%s\"\n", option.progname, argv[i], argv[0]); errors++; continue; } /* Found. Look for trailing stuff, if any */ s = argv[i]+j; while (*s && isspace(*s)) s++; /* skip spaces */ if (*s == '=') s++; /* skip equal */ while (*s && isspace(*s)) s++; /* skip other spaces */ /* Now parse what s is */ switch(p->type) { case ARGV_BOOL: if (*s) { gpm_report(GPM_PR_ERR,GPM_MESS_OPTION_NO_ARG, option.progname,p->name,s); errors++; } *(p->u.iptr) = p->value; break; case ARGV_DEC: base = 10; /* and fall through */ case ARGV_INT: l = strtol(s, &t, base); if (*t) { gpm_report(GPM_PR_ERR,GPM_MESS_INVALID_ARG, option.progname, s, p->name); errors++; break; } *(p->u.iptr) = (int)l; break; case ARGV_STRING: *(p->u.sptr) = strdup(s); break; case ARGV_END: /* let's please "-Wall" */ break; } } /* for i in argc */ if (errors) gpm_report(GPM_PR_ERR,GPM_MESS_CONT_WITH_ERR, option.progname); return errors; } /*========================================================================*/ /* Provide a common error engine by parsing with an empty option-set */ /*========================================================================*/ static volatile int check_no_argv(int argc, char **argv) { static argv_helper optioninfo[] = { {"", ARGV_END} }; return parse_argv(optioninfo, argc, argv); } /*========================================================================*/ /* Parse the "old" -o options */ /*========================================================================*/ static int option_modem_lines(int fd, int argc, char **argv) { static unsigned int err, lines, reallines; static argv_helper optioninfo[] = { {"dtr", ARGV_BOOL, u: {iptr: &lines}, value: TIOCM_DTR}, {"rts", ARGV_BOOL, u: {iptr: &lines}, value: TIOCM_RTS}, {"both", ARGV_BOOL, u: {iptr: &lines}, value: TIOCM_DTR | TIOCM_RTS}, {"", ARGV_END} }; if (argc<2) return 0; if (argc > 2) { gpm_report(GPM_PR_ERR,GPM_MESS_TOO_MANY_OPTS,option.progname, argv[0]); errno = EINVAL; /* used by gpm_oops(), if the caller reports failure */ return -1; } err = parse_argv(optioninfo, argc, argv); if(err) return 0; /* a message has been printed, but go on as good */ /* ok, move the lines */ ioctl(fd, TIOCMGET, &reallines); reallines &= ~lines; ioctl(fd, TIOCMSET, &reallines); return 0; } /*========================================================================*/ /* real absolute coordinates for absolute devices, not very clean */ /*========================================================================*/ #define REALPOS_MAX 16383 /* min 0 max=16383, but due to change. */ int realposx=-1, realposy=-1; /*========================================================================*/ /* * When repeating, it is important not to try to repeat more bits of dx and * dy than the protocol can handle. Otherwise, you may end up repeating the * low bits of a large value, which causes erratic motion. */ /*========================================================================*/ static int limit_delta(int delta, int min, int max) { return delta > max ? max : delta < min ? min : delta; } /*========================================================================*/ /* * Ok, here we are: first, provide the functions; initialization is later. * The return value is the number of unprocessed bytes */ /*========================================================================*/ #ifdef HAVE_LINUX_INPUT_H static int M_evdev (Gpm_Event * state, unsigned char *data) { struct input_event thisevent; (void) memcpy (&thisevent, data, sizeof (struct input_event)); if (thisevent.type == EV_REL) { if (thisevent.code == REL_X) state->dx = (signed char) thisevent.value; else if (thisevent.code == REL_Y) state->dy = (signed char) thisevent.value; } else if (thisevent.type == EV_KEY) { switch(thisevent.code) { case BTN_LEFT: state->buttons ^= GPM_B_LEFT; break; case BTN_MIDDLE: state->buttons ^= GPM_B_MIDDLE; break; case BTN_RIGHT: state->buttons ^= GPM_B_RIGHT; break; case BTN_SIDE: state->buttons ^= GPM_B_MIDDLE; break; } } return 0; } #endif /* HAVE_LINUX_INPUT_H */ static int M_ms(Gpm_Event *state, unsigned char *data) { /* * some devices report a change of middle-button state by * repeating the current button state (patch by Mark Lord) */ static unsigned char prev=0; if (data[0] == 0x40 && !(prev|data[1]|data[2])) state->buttons = GPM_B_MIDDLE; /* third button on MS compatible mouse */ else state->buttons= ((data[0] & 0x20) >> 3) | ((data[0] & 0x10) >> 4); prev = state->buttons; state->dx= (signed char)(((data[0] & 0x03) << 6) | (data[1] & 0x3F)); state->dy= (signed char)(((data[0] & 0x0C) << 4) | (data[2] & 0x3F)); return 0; } static int M_ms_plus(Gpm_Event *state, unsigned char *data) { static unsigned char prev=0; state->buttons= ((data[0] & 0x20) >> 3) | ((data[0] & 0x10) >> 4); state->dx= (signed char)(((data[0] & 0x03) << 6) | (data[1] & 0x3F)); state->dy= (signed char)(((data[0] & 0x0C) << 4) | (data[2] & 0x3F)); /* Allow motion *and* button change (Michael Plass) */ if((state->dx==0) &&(state->dy==0) && (state->buttons==(prev&~GPM_B_MIDDLE))) state->buttons = prev^GPM_B_MIDDLE; /* no move or change: toggle middle */ else state->buttons |= prev&GPM_B_MIDDLE; /* change: preserve middle */ prev=state->buttons; return 0; } static int M_ms_plus_lr(Gpm_Event *state, unsigned char *data) { /* * Same as M_ms_plus but with an addition by Edmund GRIMLEY EVANS */ static unsigned char prev=0; state->buttons= ((data[0] & 0x20) >> 3) | ((data[0] & 0x10) >> 4); state->dx= (signed char)(((data[0] & 0x03) << 6) | (data[1] & 0x3F)); state->dy= (signed char)(((data[0] & 0x0C) << 4) | (data[2] & 0x3F)); /* Allow motion *and* button change (Michael Plass) */ if((state->dx==0)&& (state->dy==0) && (state->buttons==(prev&~GPM_B_MIDDLE))) state->buttons = prev^GPM_B_MIDDLE; /* no move or change: toggle middle */ else state->buttons |= prev&GPM_B_MIDDLE;/* change: preserve middle */ /* Allow the user to reset state of middle button by pressing the other two buttons at once (Edmund GRIMLEY EVANS) */ if (!((~state->buttons)&(GPM_B_LEFT|GPM_B_RIGHT)) && ((~prev)&(GPM_B_LEFT|GPM_B_RIGHT))) state->buttons &= ~GPM_B_MIDDLE; prev=state->buttons; return 0; } /* Summagraphics/Genius/Acecad tablet support absolute mode*/ /* Summagraphics MM-Series format*/ /* (Frank Holtz) hof@bigfoot.de Tue Feb 23 21:04:09 MET 1999 */ int SUMMA_BORDER=100; int summamaxx,summamaxy; char summaid=-1; static int M_summa(Gpm_Event *state, unsigned char *data) { int x, y; x = ((data[2]<<7) | data[1])-SUMMA_BORDER; if (x<0) x=0; if (x>summamaxx) x=summamaxx; state->x = (x * win.ws_col / summamaxx); realposx = (x * 16383 / summamaxx); y = ((data[4]<<7) | data[3])-SUMMA_BORDER; if (y<0) y=0; if (y>summamaxy) y=summamaxy; state->y = 1 + y * (win.ws_row-1)/summamaxy; realposy = y * 16383 / summamaxy; state->buttons= !!(data[0]&1) * GPM_B_LEFT + !!(data[0]&2) * GPM_B_RIGHT + !!(data[0]&4) * GPM_B_MIDDLE; return 0; } /* ps2 */ static int R_ps2(Gpm_Event *state, int fd) { signed char buffer[3]; buffer[0]=((state->buttons & GPM_B_LEFT ) > 0)*1 + ((state->buttons & GPM_B_RIGHT ) > 0)*2 + ((state->buttons & GPM_B_MIDDLE) > 0)*4; buffer[0] |= 8 + ((state->dx < 0) ? 0x10 : 0) + ((state->dy > 0) ? 0x20 : 0); buffer[1] = limit_delta(state->dx, -128, 127); buffer[2] = limit_delta(-state->dy, -128, 127); return write(fd,buffer,3); } /* Thu Jan 28 20:54:47 MET 1999 hof@hof-berlin.de SummaSketch reportformat */ static int R_summa(Gpm_Event *state, int fd) { signed char buffer[5]; static int x,y; if (realposx==-1) { /* real absolute device? */ x=x+(state->dx*25); if (x<0) x=0; if (x>16383) x=16383; y=y+(state->dy*25); if (y<0) y=0; if (y>16383) y=16383; } else { /* yes */ x=realposx; y=realposy; } buffer[0]=0x98+((state->buttons&GPM_B_LEFT)>0?1:0)+ ((state->buttons&GPM_B_MIDDLE)>0?2:0)+ ((state->buttons&GPM_B_RIGHT)>0?3:0); buffer[1]=x & 0x7f; /* X0-6*/ buffer[2]=(x >> 7) & 0x7f; /* X7-12*/ buffer[3]=y & 0x7f; /* Y0-6*/ buffer[4]=(y >> 7) & 0x7f; /* Y7-12*/ return write(fd,buffer,5); } /* 'Genitizer' (kw@dtek.chalmers.se 11/12/97) */ static int M_geni(Gpm_Event *state, unsigned char *data) { /* this is a little confusing. If we use the stylus, we * have three buttons (tip, lower, upper), and if * we use the puck we have four buttons. (And the * protocol is a little mangled if several of the buttons * on the puck are pressed simultaneously. * I don't use the puck, hence I try to decode three buttons * only. tip = left, lower = middle, upper = right */ state->buttons = (data[0] & 0x01)<<2 | (data[0] & 0x02) | (data[0] & 0x04)>>2; state->dx = ((data[1] & 0x3f) ) * ((data[0] & 0x10)?1:-1); state->dy = ((data[2] & 0x3f) ) * ((data[0] & 0x8)?-1:1); return 0; } /* m$ 'Intellimouse' (steveb 20/7/97) */ static int M_ms3(Gpm_Event *state, unsigned char *data) { state->wdx = state->wdy = 0; state->buttons= ((data[0] & 0x20) >> 3) /* left */ | ((data[3] & 0x10) >> 3) /* middle */ | ((data[0] & 0x10) >> 4) /* right */ | (((data[3] & 0x0f) == 0x0f) * GPM_B_UP) /* wheel up */ | (((data[3] & 0x0f) == 0x01) * GPM_B_DOWN); /* wheel down */ state->dx = (signed char) (((data[0] & 0x03) << 6) | (data[1] & 0x3F)); state->dy = (signed char) (((data[0] & 0x0C) << 4) | (data[2] & 0x3F)); switch (data[3] & 0x0f) { case 0x0e: state->wdx = +1; break; case 0x02: state->wdx = -1; break; case 0x0f: state->wdy = +1; break; case 0x01: state->wdy = -1; break; } return 0; } static int R_ms3(Gpm_Event *state, int fd) { int dx, dy; char buf[4] = {0, 0, 0, 0}; buf[0] |= 0x40; if (state->buttons & GPM_B_LEFT) buf[0] |= 0x20; if (state->buttons & GPM_B_MIDDLE) buf[3] |= 0x10; if (state->buttons & GPM_B_RIGHT) buf[0] |= 0x10; if (state->buttons & GPM_B_UP) buf[3] |= 0x0f; if (state->buttons & GPM_B_DOWN) buf[3] |= 0x01; dx = limit_delta(state->dx, -128, 127); buf[1] = dx & ~0xC0; buf[0] |= (dx & 0xC0) >> 6; dy = limit_delta(state->dy, -128, 127); buf[2] = dy & ~0xC0; buf[0] |= (dy & 0xC0) >> 4; /* wheel */ if (state->wdy > 0) buf[3] |= 0x0f; else if (state->wdy < 0) buf[3] |= 0x01; return write(fd,buf,4); } /* M_brw is a variant of m$ 'Intellimouse' the middle button is different */ static int M_brw(Gpm_Event *state, unsigned char *data) { state->buttons= ((data[0] & 0x20) >> 3) /* left */ | ((data[3] & 0x20) >> 4) /* middle */ | ((data[0] & 0x10) >> 4); /* right */ state->dx= (signed char)(((data[0] & 0x03) << 6) | (data[1] & 0x3F)); state->dy= (signed char)(((data[0] & 0x0C) << 4) | (data[2] & 0x3F)); if (((data[0]&0xC0) != 0x40)|| ((data[1]&0xC0) != 0x00)|| ((data[2]&0xC0) != 0x00)|| ((data[3]&0xC0) != 0x00)) { gpm_report(GPM_PR_DEBUG,GPM_MESS_SKIP_DATAP,data[0],data[1],data[2],data[3]); return -1; } /* wheel (dz) is (data[3] & 0x0f) */ /* where is the side button? I can sort of detect it at 9600 baud */ /* Note this mouse is very noisy */ return 0; } static int M_bare(Gpm_Event *state, unsigned char *data) { /* a bare ms protocol */ state->buttons= ((data[0] & 0x20) >> 3) | ((data[0] & 0x10) >> 4); state->dx= (signed char)(((data[0] & 0x03) << 6) | (data[1] & 0x3F)); state->dy= (signed char)(((data[0] & 0x0C) << 4) | (data[2] & 0x3F)); return 0; } static int M_sun(Gpm_Event *state, unsigned char *data) { state->buttons= (~data[0]) & 0x07; state->dx= (signed char)(data[1]); state->dy= -(signed char)(data[2]); return 0; } static int R_sun(Gpm_Event *state, int fd) { signed char buffer[3]; buffer[0]= (state->buttons ^ 0x07) | 0x80; buffer[1]= state->dx; buffer[2]= -(state->dy); return write(fd,buffer,3); } static int M_msc(Gpm_Event *state, unsigned char *data) { state->buttons= (~data[0]) & 0x07; state->dx= (signed char)(data[1]) + (signed char)(data[3]); state->dy= -((signed char)(data[2]) + (signed char)(data[4])); return 0; } /* itz Mon Jan 11 23:51:38 PST 1999 this code moved here from gpm.c */ /* (processMouse) */ static int R_msc(Gpm_Event *state, int fd) { signed char buffer[5]; int dx, dy; /* sluggish... */ buffer[0]=(state->buttons ^ 0x07) | 0x80; dx = limit_delta(state->dx, -256, 254); buffer[3] = state->dx - (buffer[1] = state->dx/2); /* Markus */ dy = limit_delta(state->dy, -256, 254); buffer[4] = -state->dy - (buffer[2] = -state->dy/2); return write(fd,buffer,5); } static int R_imps2(Gpm_Event *state, int fd) { signed char buffer[4]; int dx, dy; dx = limit_delta(state->dx, -256, 255); dy = limit_delta(state->dy, -256, 255); buffer[0] = 8 | (state->buttons & GPM_B_LEFT ? 1 : 0) | (state->buttons & GPM_B_MIDDLE ? 4 : 0) | (state->buttons & GPM_B_RIGHT ? 2 : 0) | (dx < 0 ? 0x10 : 0) | (dy > 0 ? 0x20 : 0); buffer[1] = dx & 0xFF; buffer[2] = (-dy) & 0xFF; if (state->wdy > 0) buffer[3] = 0xff; if (state->wdy < 0) buffer[3] = 0x01; if (state->wdx > 0) buffer[3] = 0xfe; if (state->wdx < 0) buffer[3] = 0x02; return write(fd,buffer,4); } static int M_logimsc(Gpm_Event *state, unsigned char *data) /* same as msc */ { state->buttons= (~data[0]) & 0x07; state->dx= (signed char)(data[1]) + (signed char)(data[3]); state->dy= -((signed char)(data[2]) + (signed char)(data[4])); return 0; } static int M_mm(Gpm_Event *state, unsigned char *data) { state->buttons= data[0] & 0x07; state->dx= (data[0] & 0x10) ? data[1] : - data[1]; state->dy= (data[0] & 0x08) ? - data[2] : data[2]; return 0; } static int M_logi(Gpm_Event *state, unsigned char *data) /* equal to mm */ { state->buttons= data[0] & 0x07; state->dx= (data[0] & 0x10) ? data[1] : - data[1]; state->dy= (data[0] & 0x08) ? - data[2] : data[2]; return 0; } static int M_bm(Gpm_Event *state, unsigned char *data) /* equal to sun */ { state->buttons= (~data[0]) & 0x07; state->dx= (signed char)data[1]; state->dy= -(signed char)data[2]; return 0; } static int M_ps2(Gpm_Event *state, unsigned char *data) { static int tap_active=0; /* there exist glidepoint ps2 mice */ state->buttons= !!(data[0]&1) * GPM_B_LEFT + !!(data[0]&2) * GPM_B_RIGHT + !!(data[0]&4) * GPM_B_MIDDLE; if (data[0]==0 && (which_mouse->opt_glidepoint_tap)) /* by default this is false */ state->buttons = tap_active = (which_mouse->opt_glidepoint_tap); else if (tap_active) { if (data[0]==8) state->buttons = tap_active = 0; else state->buttons = tap_active; } /* Some PS/2 mice send reports with negative bit set in data[0] * and zero for movement. I think this is a bug in the mouse, but * working around it only causes artifacts when the actual report is -256; * they'll be treated as zero. This should be rare if the mouse sampling * rate is set to a reasonable value; the default of 100 Hz is plenty. * (Stephen Tell) */ if(data[1] != 0) state->dx= (data[0] & 0x10) ? data[1]-256 : data[1]; else state->dx = 0; if(data[2] != 0) state->dy= -((data[0] & 0x20) ? data[2]-256 : data[2]); else state->dy = 0; return 0; } static int M_imps2(Gpm_Event *state, unsigned char *data) { static int tap_active=0; /* there exist glidepoint ps2 mice */ state->wdx = state->wdy = 0; /* Clear them.. */ state->dx = state->dy = state->wdx = state->wdy = 0; state->buttons= ((data[0] & 1) << 2) /* left */ | ((data[0] & 6) >> 1); /* middle and right */ if (data[0]==0 && (which_mouse->opt_glidepoint_tap)) // by default this is false state->buttons = tap_active = (which_mouse->opt_glidepoint_tap); else if (tap_active) { if (data[0]==8) state->buttons = tap_active = 0; else state->buttons = tap_active; } /* Standard movement.. */ state->dx = (data[0] & 0x10) ? data[1] - 256 : data[1]; state->dy = (data[0] & 0x20) ? -(data[2] - 256) : -data[2]; /* The wheels.. */ unsigned char wheel = data[3] & 0x0f; if (wheel > 0) { // use the event type GPM_MOVE rather than GPM_DOWN for wheel movement // to avoid single/double/triple click processing: switch (wheel) { /* rodney 13/mar/2008 * The use of GPM_B_UP / GPM_B_DOWN is very unclear; * only mouse type ms3 uses these * For this mouse, we only support the relative movement * i.e. no button is set (same as mouse movement), wdy changes +/- * according to wheel movement (+ for rolling away from user) * wdx (horizontal scroll) is for a second wheel. They do exist! */ case 0x0f: state->wdy = +1; break; case 0x01: state->wdy = -1; break; case 0x0e: state->wdx = +1; break; case 0x02: state->wdx = -1; break; } } return 0; } static int M_netmouse(Gpm_Event *state, unsigned char *data) { /* Avoid these beasts if you can. They connect to normal PS/2 port, * but their protocol is one byte longer... So if you have notebook * (like me) with internal PS/2 mouse, it will not work * together. They have four buttons, but two middle buttons can not * be pressed simultaneously, and two middle buttons do not send * 'up' events (however, they autorepeat...) * Still, you might want to run this mouse in plain PS/2 mode - * where it behaves correctly except that middle 2 buttons do * nothing. * Protocol is * 3 bytes like normal PS/2 * 4th byte: 0xff button 'down', 0x01 button 'up' * [this is so braindamaged that it *must* be some kind of * compatibility glue...] * Pavel Machek */ state->buttons= !!(data[0]&1) * GPM_B_LEFT + !!(data[0]&2) * GPM_B_RIGHT + !!(data[3]) * GPM_B_MIDDLE; if(data[1] != 0) state->dx= (data[0] & 0x10) ? data[1]-256 : data[1]; else state->dx = 0; if(data[2] != 0) state->dy= -((data[0] & 0x20) ? data[2]-256 : data[2]); else state->dy = 0; return 0; } /* standard ps2 */ static Gpm_Type *I_ps2(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv) { static unsigned char s[] = { 246, 230, 244, 243, 100, 232, 3, }; write (fd, s, sizeof (s)); usleep (30000); tcflush (fd, TCIFLUSH); return type; } static Gpm_Type *I_netmouse(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv) { unsigned char magic[6] = { 0xe8, 0x03, 0xe6, 0xe6, 0xe6, 0xe9 }; int i; if (check_no_argv(argc, argv)) return NULL; for (i=0; i<6; i++) { unsigned char c = 0; write( fd, magic+i, 1 ); read( fd, &c, 1 ); if (c != 0xfa) { gpm_report(GPM_PR_ERR,GPM_MESS_NETM_NO_ACK,c); return NULL; } } { unsigned char rep[3] = { 0, 0, 0 }; read( fd, rep, 1 ); read( fd, rep+1, 1 ); read( fd, rep+2, 1 ); if (rep[0] || (rep[1] != 0x33) || (rep[2] != 0x55)) { gpm_report(GPM_PR_ERR,GPM_MESS_NETM_INV_MAGIC, rep[0], rep[1], rep[2]); return NULL; } } return type; } #define GPM_B_BOTH (GPM_B_LEFT|GPM_B_RIGHT) static int M_mman(Gpm_Event *state, unsigned char *data) { /* * the damned MouseMan has 3/4 bytes packets. The extra byte * is only there if the middle button is active. * I get the extra byte as a packet with magic numbers in it. * and then switch to 4-byte mode. */ static unsigned char prev=0; static Gpm_Type *mytype=mice; /* it is the first */ unsigned char b = (*data>>4); if(data[1]==GPM_EXTRA_MAGIC_1 && data[2]==GPM_EXTRA_MAGIC_2) { /* got unexpected fourth byte */ if (b > 0x3) return -1; /* just a sanity check */ //if ((b=(*data>>4)) > 0x3) return -1; /* just a sanity check */ state->dx=state->dy=0; mytype->packetlen=4; mytype->getextra=0; } else { /* got 3/4, as expected */ /* motion is independent of packetlen... */ state->dx= (signed char)(((data[0] & 0x03) << 6) | (data[1] & 0x3F)); state->dy= (signed char)(((data[0] & 0x0C) << 4) | (data[2] & 0x3F)); prev= ((data[0] & 0x20) >> 3) | ((data[0] & 0x10) >> 4); if (mytype->packetlen==4) b=data[3]>>4; } if(mytype->packetlen==4) { if(b == 0) { mytype->packetlen=3; mytype->getextra=1; } else { if (b & 0x2) prev |= GPM_B_MIDDLE; if (b & 0x1) prev |= (which_mouse->opt_glidepoint_tap); } } state->buttons=prev; /* This "chord-middle" behaviour was reported by David A. van Leeuwen */ if (((prev^state->buttons) & GPM_B_BOTH)==GPM_B_BOTH ) state->buttons = state->buttons ? GPM_B_MIDDLE : 0; prev=state->buttons; return 0; } /* * Wacom Tablets with pen and mouse: * Relative-Mode And Absolute-Mode; * Stefan Runkel 01/2000 , * Mike Pioskowik 01/2000 */ /* for relative and absolute : */ int WacomModell =-1; /* -1 means "dont know" */ int WacomAbsoluteWanted=0; /* Tell Driver if Relative or Absolute */ int wmaxx, wmaxy; char upmbuf[25]; /* needed only for macro buttons of ultrapad */ /* Data for Wacom Modell Identification */ /* (MaxX, MaxY are for Modells which do not answer resolution requests */ struct WC_MODELL{ char name[15]; char magic[3]; int maxX; int maxY; int border; int treshold; } wcmodell[] = { /* ModellName Magic MaxX MaxY Border Tresh */ { "UltraPad" , "UD", 0, 0, 250, 20 }, /* { "Intuos" , "GD", 0, 0, 0, 20 }, not supported */ { "PenPartner", "CT", 0, 0, 0, 20 }, { "Graphire" , "ET", 5103, 3711, 0, 20 } }; #define IsA(m) ((WacomModell==(-1))? 0:!strcmp(#m,wcmodell[WacomModell].name)) static int M_wacom(Gpm_Event *state, unsigned char *data) { static int ox=-1, oy; int x, y; int macro=0; /* macro buttons from tablet */ /* Bit [0]&64 seems to have different meanings - * graphire: inside of active area; * Ultrapad: Pen in proximity (means: pen detected) * Penpartner: no idea... * this may be of worth sometimes, but for now, we can say, that * if the graphire tells us that we are in the active area, we can tell * also that the graphire has the pen in proximity. */ if (!(data[0]&64)) { /* Tool not in proximity or out of active area */ /* handle Ultrapad macro buttons, if we get a packet without * proximity bit but with the buttonflag set, we know that we have * a macro event */ if (IsA(UltraPad)) { if (data[0]&8) { /* here: macro button has been pressed */ if (data[3]&8) macro=(data[6]); if (data[3]&16) macro=(data[6])+12; if (data[3]&32) macro=(data[6])+24; /* rom-version >= 1.3 */ state->modifiers=macro; /* Here we simulate the middle mousebutton */ /* with ultrapad Eprom Version 1.2 */ /* WHY IS THE FOLLOWING CODE DISABLE ? FIXME gpm_report(GPM_PR_INFO,GPM_MESS_WACOM_MACRO, macro); if (macro==12) state->buttons = GPM_B_MIDDLE; */ } /* end if macrobutton pressed */ } /* end if ultrapad */ if (!IsA(UltraPad)){ /* Tool out of active area */ ox=-1; state->buttons=0; state->dx=state->dy=0; } return 0; /* nothing more to do so leave */ } /* end if Tool out of active area*/ x = (((data[0] & 0x3) << 14) + (data[1] << 7) + data[2]); y = (((data[3] & 0x3) << 14) + (data[4] << 7) + data[5]); if (WacomAbsoluteWanted) { /* Absolute Mode */ if (x>wmaxx) x=wmaxx; if (x<0) x=0; if (y>wmaxy) y=wmaxy; if (y<0) y=0; state->x = (x * win.ws_col / wmaxx); state->y = (y * win.ws_row / wmaxy); realposx = (x / wmaxx); /* this two lines come from the summa driver. */ realposy = (y / wmaxy); /* they seem to be buggy (always give zero). */ } else { /* Relative Mode */ /* Treshold; if greather then treat tool as first time in proximity */ if( abs(x-ox)>(wmaxx/wcmodell[WacomModell].treshold) || abs(y-oy)>(wmaxy/wcmodell[WacomModell].treshold) ) ox=x; oy=y; state->dx= (x-ox) / (wmaxx / win.ws_col / wcmodell[WacomModell].treshold); state->dy= (y-oy) / (wmaxy / win.ws_row / wcmodell[WacomModell].treshold); } ox=x; oy=y; state->buttons= /* for Ultra-Pad and graphire */ !!(data[3]&8) * GPM_B_LEFT + !!(data[3]&16) * GPM_B_RIGHT + !!(data[3]&32) * GPM_B_MIDDLE; /* UD: rom-version >=1.3 */ return 0; } /* Calcomp UltraSlate tablet (John Anderson) * modeled after Wacom and NCR drivers (thanks, guys) * Note: I don't know how to get the tablet size from the tablet yet, so * these defines will have to do for now. */ #define CAL_LIMIT_BRK 255 #define CAL_X_MIN 0x40 #define CAL_X_MAX 0x1340 #define CAL_X_SIZE (CAL_X_MAX - CAL_X_MIN) #define CAL_Y_MIN 0x40 #define CAL_Y_MAX 0xF40 #define CAL_Y_SIZE (CAL_Y_MAX - CAL_Y_MIN) static int M_calus(Gpm_Event *state, unsigned char *data) { int x, y; x = ((data[1] & 0x3F)<<7) | (data[2] & 0x7F); y = ((data[4] & 0x1F)<<7) | (data[5] & 0x7F); state->buttons = GPM_B_LEFT * ((data[0]>>2) & 1) + GPM_B_MIDDLE * ((data[0]>>3) & 1) + GPM_B_RIGHT * ((data[0]>>4) & 1); state->dx = 0; state->dy = 0; state->x = x < CAL_X_MIN ? 0 : x > CAL_X_MAX ? win.ws_col+1 : (long)(x-CAL_X_MIN) * (long)(win.ws_col-1) / CAL_X_SIZE+2; state->y = y < CAL_Y_MIN ? win.ws_row + 1 : y > CAL_Y_MAX ? 0 : (long)(CAL_Y_MAX-y) * (long)win.ws_row / CAL_Y_SIZE + 1; realposx = x < CAL_X_MIN ? 0 : x > CAL_X_MAX ? 16384 : (long)(x-CAL_X_MIN) * (long)(16382) / CAL_X_SIZE+2; realposy = y < CAL_Y_MIN ? 16384 : y > CAL_Y_MAX ? 0 : (long)(CAL_Y_MAX-y) * (long)16383 / CAL_Y_SIZE + 1; return 0; } static int M_calus_rel(Gpm_Event *state, unsigned char *data) { static int ox=-1, oy; int x, y; x = ((data[1] & 0x3F)<<7) | (data[2] & 0x7F); y = ((data[4] & 0x1F)<<7) | (data[5] & 0x7F); if (ox==-1 || abs(x-ox)>CAL_LIMIT_BRK || abs(y-oy)>CAL_LIMIT_BRK) { ox=x; oy=y; } state->buttons = GPM_B_LEFT * ((data[0]>>2) & 1) + GPM_B_MIDDLE * ((data[0]>>3) & 1) + GPM_B_RIGHT * ((data[0]>>4) & 1); state->dx = (x-ox)/5; state->dy = (oy-y)/5; ox=x; oy=y; return 0; } /* ncr pen support (Marc Meis) */ #define NCR_LEFT_X 40 #define NCR_RIGHT_X 2000 #define NCR_BOTTOM_Y 25 #define NCR_TOP_Y 1490 #define NCR_DELTA_X (NCR_RIGHT_X - NCR_LEFT_X) #define NCR_DELTA_Y (NCR_TOP_Y - NCR_BOTTOM_Y) static int M_ncr(Gpm_Event *state, unsigned char *data) { int x,y; state->buttons= (data[0]&1)*GPM_B_LEFT + !!(data[0]&2)*GPM_B_RIGHT; state->dx = (signed char)data[1]; /* currently unused */ state->dy = (signed char)data[2]; x = ((int)data[3] << 8) + (int)data[4]; y = ((int)data[5] << 8) + (int)data[6]; /* these formulaes may look curious, but this is the way it works!!! */ state->x = x < NCR_LEFT_X ? 0 : x > NCR_RIGHT_X ? win.ws_col+1 : (long)(x-NCR_LEFT_X) * (long)(win.ws_col-1) / NCR_DELTA_X+2; state->y = y < NCR_BOTTOM_Y ? win.ws_row + 1 : y > NCR_TOP_Y ? 0 : (long)(NCR_TOP_Y-y) * (long)win.ws_row / NCR_DELTA_Y + 1; realposx = x < NCR_LEFT_X ? 0 : x > NCR_RIGHT_X ? 16384 : (long)(x-NCR_LEFT_X) * (long)(16382) / NCR_DELTA_X+2; realposy = y < NCR_BOTTOM_Y ? 16384 : y > NCR_TOP_Y ? 0 : (long)(NCR_TOP_Y-y) * (long)16383 / NCR_DELTA_Y + 1; return 0; } static int M_twid(Gpm_Event *state, unsigned char *data) { unsigned long message=0UL; int i,h,v; static int lasth, lastv, lastkey, key, lock=0, autorepeat=0; /* build the message as a single number */ for (i=0; i<5; i++) message |= (data[i]&0x7f)<<(i*7); key = message & TW_ANY_KEY; if ((message & TW_MOD_M) == 0) { /* manage keyboard */ if (((message & TW_ANY_KEY) != lastkey) || autorepeat) autorepeat = twiddler_key(message); lastkey = key; lock = 0; return -1; /* no useful mouse data */ } switch (message & TW_ANY1) { case TW_L1: state->buttons = GPM_B_RIGHT; break; case TW_M1: state->buttons = GPM_B_MIDDLE; break; case TW_R1: state->buttons = GPM_B_LEFT; break; case 0: state->buttons = 0; break; } /* also, allow R1 R2 R3 (or L1 L2 L3) to be used as mouse buttons */ if (message & TW_ANY2) state->buttons |= GPM_B_MIDDLE; if (message & TW_L3) state->buttons |= GPM_B_LEFT; if (message & TW_R3) state->buttons |= GPM_B_RIGHT; /* put in modifiers information */ { struct {unsigned long in, out;} *ptr, list[] = { { TW_MOD_S, 1<in; ptr++) if(message & ptr->in) state->modifiers |= ptr->out; } /* now extraxt H/V */ h = (message >> TW_H_SHIFT) & TW_M_MASK; v = (message >> TW_V_SHIFT) & TW_M_MASK; if (h & TW_M_BIT) h = -(TW_M_MASK + 1 - h); if (v & TW_M_BIT) v = -(TW_M_MASK + 1 - v); #ifdef TWIDDLER_STATIC /* static implementation: return movement */ if (!lock) { lasth = h; lastv = v; lock = 1; } state->dx = -(h-lasth); lasth = h; state->dy = -(v-lastv); lastv = v; #elif defined(TWIDDLER_BALLISTIC) { /* in case I'll change the resolution */ static int tw_threshold = 5; /* above this it moves */ static int tw_scale = 5; /* every 5 report one */ if (h > -tw_threshold && h < tw_threshold) state->dx=0; else { h = h - (h<0)*tw_threshold +lasth; lasth = h%tw_scale; state->dx = -(h/tw_scale); } if (v > -tw_threshold && v < tw_threshold) state->dy=0; else { v = v - (v<0)*tw_threshold +lastv; lastv = v%tw_scale; state->dy = -(v/tw_scale); } } #else /* none defined: use mixed approach */ { /* in case I'll change the resolution */ static int tw_threshold = 60; /* above this, movement is ballistic */ static int tw_scale = 10; /* ball: every 6 units move one unit */ static int tw_static_scale = 3; /* stat: every 3 units move one unit */ static int lasthrest, lastvrest; /* integral of small motions uses rest */ if (!lock) { lasth = h; lasthrest = 0; lastv = v; lastvrest = 0; lock = 1; } if (h > -tw_threshold && h < tw_threshold) { state->dx = -(h-lasth+lasthrest)/tw_static_scale; lasthrest = (h-lasth+lasthrest)%tw_static_scale; } else /* ballistic */ { h = h - (h<0)*tw_threshold + lasthrest; lasthrest = h%tw_scale; state->dx = -(h/tw_scale); } lasth = h; if (v > -tw_threshold && v < tw_threshold) { state->dy = -(v-lastv+lastvrest)/tw_static_scale; lastvrest = (v-lastv+lastvrest)%tw_static_scale; } else /* ballistic */ { v = v - (v<0)*tw_threshold + lastvrest; lastvrest = v%tw_scale; state->dy = -(v/tw_scale); } lastv = v; } #endif /* fprintf(stderr,"%4i %4i -> %3i %3i\n",h,v,state->dx,state->dy); */ return 0; } #ifdef HAVE_LINUX_JOYSTICK_H /* Joystick mouse emulation (David Given) */ static int M_js(Gpm_Event *state, unsigned char *data) { struct JS_DATA_TYPE *jdata = (void*)data; static int centerx = 0; static int centery = 0; static int oldbuttons = 0; static int count = 0; int dx; int dy; count++; if (count < 200) { state->buttons = oldbuttons; state->dx = 0; state->dy = 0; return 0; } count = 0; if (centerx == 0) { centerx = jdata->x; centery = jdata->y; } state->buttons = ((jdata->buttons & 1) * GPM_B_LEFT) | ((jdata->buttons & 2) * GPM_B_RIGHT); oldbuttons = state->buttons; dx = (jdata->x - centerx) >> 6; dy = (jdata->y - centery) >> 6; if (dx > 0) state->dx = dx * dx; else state->dx = -(dx * dx); state->dx >>= 2; if (dy > 0) state->dy = dy * dy; else state->dy = -(dy * dy); state->dy >>= 2; /* Prevent pointer drift. (PC joysticks are notoriously inaccurate.) */ if ((state->dx >= -1) && (state->dx <= 1)) state->dx = 0; if ((state->dy >= -1) && (state->dy <= 1)) state->dy = 0; return 0; } #endif /* have joystick.h */ /* Synaptics TouchPad mouse emulation (Henry Davies) */ static int M_synaptics_serial(Gpm_Event *state, unsigned char *data) { syn_process_serial_data (state, data); return 0; } /* Synaptics TouchPad mouse emulation (Henry Davies) */ static int M_synaptics_ps2(Gpm_Event *state, unsigned char *data) { syn_process_ps2_data(state, data); return 0; } static int M_mtouch(Gpm_Event *state, unsigned char *data) { /* * This is a simple decoder for the MicroTouch touch screen * devices. It uses the "tablet" format and only generates button-1 * events. Check README.microtouch for additional information. */ int x, y; static int avgx=-1, avgy; /* average over time, for smooth feeling */ static int upx, upy; /* keep track of last finger-up place */ static struct timeval uptv, tv; /* time of last up, and down events */ #define REAL_TO_XCELL(x) (x * win.ws_col / 0x3FFF) #define REAL_TO_YCELL(y) (y * win.ws_row / 0x3FFF) #define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL)) #define DIF_TIME(t1,t2) ((t2.tv_sec -t1.tv_sec) *1000+ \ (t2.tv_usec-t1.tv_usec)/1000) if (!(data[0]&0x40)) { /* * finger-up event: this is usually offset a few pixels, * so ignore this x and y values. And invalidate avg. */ upx = avgx; upy = avgy; GET_TIME(uptv); /* ready for the next finger-down */ tv.tv_sec = 0; state->buttons = 0; avgx=-1; /* invalidate avg */ return 0; } x = data[1] | (data[2]<<7); y = 0x3FFF - (data[3] | (data[4]<<7)); if (avgx < 0) { /* press event */ GET_TIME(tv); if (DIF_TIME(uptv, tv) < (which_mouse->opt_time)) { /* count as button press placed at finger-up pixel */ state->buttons = GPM_B_LEFT; realposx = avgx = upx; state->x = REAL_TO_XCELL(realposx); realposy = avgy = upy; state->y = REAL_TO_YCELL(realposy); upx = (upx - x); /* upx and upy become offsets to use for this drag */ upy = (upy - y); return 0; } /* else, count as a new motion event */ tv.tv_sec = 0; /* invalidate */ realposx = avgx = x; state->x = REAL_TO_XCELL(realposx); realposy = avgy = y; state->y = REAL_TO_YCELL(realposy); } state->buttons = 0; if (tv.tv_sec) { /* a drag event: use position relative to press */ x += upx; y += upy; state->buttons = GPM_B_LEFT; } realposx = avgx = (9*avgx + x)/10; state->x = REAL_TO_XCELL(realposx); realposy = avgy = (9*avgy + y)/10; state->y = REAL_TO_YCELL(realposy); return 0; #undef REAL_TO_XCELL #undef REAL_TO_YCELL #undef GET_TIME #undef DIF_TIME } /* * This decoder is copied and adapted from the above mtouch. * However, this one uses argv, which should be ported above as well. * These variables are used for option passing */ static int gunze_avg = 9; /* the bigger the smoother */ static int gunze_calib[4]; /* x0,y0 x1,y1 (measured at 1/8 and 7/8) */ static int gunze_debounce = 100; /* milliseconds: ignore shorter taps */ static int M_gunze(Gpm_Event *state, unsigned char *data) { /* * This generates button-1 events, by now. * Check README.gunze for additional information. */ int x, y; static int avgx, avgy; /* average over time, for smooth feeling */ static int upx, upy; /* keep track of last finger-up place */ static int released = 0, dragging = 0; static struct timeval uptv, tv; /* time of last up, and down events */ int timediff; #define REAL_TO_XCELL(x) (x * win.ws_col / 0x3FFF) #define REAL_TO_YCELL(y) (y * win.ws_row / 0x3FFF) #define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL)) #define DIF_TIME(t1,t2) ((t2.tv_sec -t1.tv_sec) *1000+ \ (t2.tv_usec-t1.tv_usec)/1000) if (data[0] == 'R') { /* * finger-up event: this is usually offset a few pixels, * so ignore this x and y values. And invalidate avg. */ upx = avgx; upy = avgy; GET_TIME(uptv); /* ready for the next finger-down */ state->buttons = 0; released=1; return 0; } if(sscanf(data+1, "%d,%d", &x, &y)!= 2) { gpm_report(GPM_PR_INFO,GPM_MESS_GUNZE_INV_PACK,data); return 10; /* eat one byte only, leave ten of them */ } /* * First of all, calibrate decoded data; * the four numbers are 1/8X 1/8Y, 7/8X, 7/8Y */ x = 128 + 768 * (x - gunze_calib[0])/(gunze_calib[2]-gunze_calib[0]); y = 128 + 768 * (y - gunze_calib[1])/(gunze_calib[3]-gunze_calib[1]); /* range is 0-1023, rescale it upwards (0-REALPOS_MAX) */ x = x * REALPOS_MAX / 1023; y = REALPOS_MAX - y * REALPOS_MAX / 1023; if (x<0) x = 0; if (x > REALPOS_MAX) x = REALPOS_MAX; if (y<0) y = 0; if (y > REALPOS_MAX) y = REALPOS_MAX; /* * there are some issues wrt press events: since the device needs a * non-negligible pressure to detect stuff, it sometimes reports * quick up-down sequences, that actually are just the result of a * little bouncing of the finger. Therefore, we should discard any * release-press pair. This can be accomplished at press time. */ if (released) { /* press event -- or just bounce*/ GET_TIME(tv); timediff = DIF_TIME(uptv, tv); released = 0; if (timediff > gunze_debounce && timediff < (which_mouse->opt_time)) { /* count as button press placed at finger-up pixel */ dragging = 1; state->buttons = GPM_B_LEFT; realposx = avgx = upx; state->x = REAL_TO_XCELL(realposx); realposy = avgy = upy; state->y = REAL_TO_YCELL(realposy); upx = (upx - x); /* upx-upy become offsets to use for this drag */ upy = (upy - y); return 0; } if (timediff <= gunze_debounce) { /* just a bounce, invalidate offset, leave dragging alone */ upx = upy = 0; } else { /* else, count as a new motion event, reset avg */ dragging = 0; realposx = avgx = x; realposy = avgy = y; } } state->buttons = 0; if (dragging) { /* a drag event: use position relative to press */ x += upx; y += upy; state->buttons = GPM_B_LEFT; } realposx = avgx = (gunze_avg * avgx + x)/(gunze_avg+1); state->x = REAL_TO_XCELL(realposx); realposy = avgy = (gunze_avg * avgy + y)/(gunze_avg+1); state->y = REAL_TO_YCELL(realposy); return 0; #undef REAL_TO_XCELL #undef REAL_TO_YCELL #undef GET_TIME #undef DIF_TIME } /* * This decoder is copied and adapted from the above mtouch. */ static int elo_click_ontouch = 0; /* the bigger the smoother */ static int M_etouch(Gpm_Event *state, unsigned char *data) { /* * This is a simple decoder for the EloTouch touch screen devices. * ELO format SmartSet UTsXXYYZZc 9600,N,8,1 * c=checksum = 0xAA+'T'+'U'+s+X+X+Y+Y+Z+Z (XXmax=YYmax=0x0FFF=4095) * s=status bit 0=init touch 1=stream touch 2=release */ #define ELO_CLICK_ONTOUCH /* ifdef then ButtonPress on first Touch else first Move then Touch*/ int x, y; static int avgx=-1, avgy; /* average over time, for smooth feeling */ static int upx, upy; /* keep track of last finger-up place */ static struct timeval uptv, tv; /* time of last up, and down events */ #define REAL_TO_XCELL(x) (x * win.ws_col / 0x3FFF) #define REAL_TO_YCELL(y) (y * win.ws_row / 0x3FFF) #define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL)) #define DIF_TIME(t1,t2) ((t2.tv_sec -t1.tv_sec) *1000+ \ (t2.tv_usec-t1.tv_usec)/1000) if (data[2]&0x04) /* FINGER UP - Release */ { upx = avgx; /* ignore this x, y */ upy = avgy; /* store Finger UP possition */ GET_TIME(uptv); /* set time for the next finger-down */ tv.tv_sec = 0; /* NO DRAG */ avgx=-1; /* FINGER IS UP */ state->buttons = 0; return 0; } /* NOW WE HAVe FINGER DOWN */ x = data[3] | (data[4]<<8); x&=0xfff; y = data[5] | (data[6]<<8); x&=0xfff; x = REALPOS_MAX * (x - gunze_calib[0])/(gunze_calib[2]-gunze_calib[0]); y = REALPOS_MAX * (y - gunze_calib[1])/(gunze_calib[3]-gunze_calib[1]); if (x<0) x = 0; if (x > REALPOS_MAX) x = REALPOS_MAX; if (y<0) y = 0; if (y > REALPOS_MAX) y = REALPOS_MAX; if (avgx < 0) /* INITIAL TOUCH, FINGER WAS UP */ { GET_TIME(tv); state->buttons = 0; if (DIF_TIME(uptv, tv) < (which_mouse->opt_time)) { /* if Initial Touch immediate after finger UP then start DRAG */ x=upx; y=upy; /* A:start DRAG at finger-UP position */ if (elo_click_ontouch==0) state->buttons = GPM_B_LEFT; } else /* 1:MOVE to Initial Touch position */ { upx=x; upy=y; /* store position of Initial Touch into upx, upy */ if (elo_click_ontouch==0) tv.tv_sec=0; /* no DRAG */ } realposx = avgx = x; state->x = REAL_TO_XCELL(realposx); realposy = avgy = y; state->y = REAL_TO_YCELL(realposy); return 0; } /* endof INITIAL TOUCH */ state->buttons = 0; /* Motion event */ if (tv.tv_sec) /* draging or elo_click_ontouch */ { state->buttons = GPM_B_LEFT; if (elo_click_ontouch) { x=avgx=upx; /* 2:BUTTON PRESS at Initial Touch position */ y=avgy=upy; tv.tv_sec=0; /* so next time 3:MOVE again until Finger UP*/ } /* else B:continue DRAG to current possition */ } realposx = avgx = (9*avgx + x)/10; state->x = REAL_TO_XCELL(realposx); realposy = avgy = (9*avgy + y)/10; state->y = REAL_TO_YCELL(realposy); return 0; #undef REAL_TO_XCELL #undef REAL_TO_YCELL #undef GET_TIME #undef DIF_TIME } /* Support for DEC VSXXX-AA and VSXXX-GA serial mice used on */ /* DECstation 5000/xxx, DEC 3000 AXP and VAXstation 4000 */ /* workstations */ /* written 2001/07/11 by Karsten Merker (merker@linuxtag.org) */ /* modified (completion of the protocol specification and */ /* corresponding correction of the protocol identification */ /* mask) 2001/07/12 by Maciej W. Rozycki (macro@ds2.pg.gda.pl) */ static int M_vsxxx_aa(Gpm_Event *state, unsigned char *data) { /* The mouse protocol is as follows: * 4800 bits per second, 8 data bits, 1 stop bit, odd parity * 3 data bytes per data packet: * 7 6 5 4 3 2 1 0 * First Byte: 1 0 0 SignX SignY LMB MMB RMB * Second Byte 0 DX DX DX DX DX DX DX * Third Byte 0 DY DY DY DY DY DY DY * * SignX: sign bit for X-movement * SignY: sign bit for Y-movement * DX and DY: 7-bit-absolute values for delta-X and delta-Y, sign extensions * are in SignX resp. SignY. * * There are a few commands the mouse accepts: * "D" selects the prompt mode, * "P" requests a mouse's position (also selects the prompt mode), * "R" selects the incremental stream mode, * "T" performs a self test and identification (power-up-like), * "Z" performs undocumented test functions (a byte follows). * Parity as well as bit #7 of commands are ignored by the mouse. * * 4 data bytes per self test packet (useful for hot-plug): * 7 6 5 4 3 2 1 0 * First Byte: 1 0 1 0 R3 R2 R1 R0 * Second Byte 0 M2 M1 M0 0 0 1 0 * Third Byte 0 E6 E5 E4 E3 E2 E1 E0 * Fourth Byte 0 0 0 0 0 LMB MMB RMB * * R3-R0: revision, * M2-M0: manufacturer location code, * E6-E0: error code: * 0x00-0x1f: no error (fourth byte is button state), * 0x3d: button error (fourth byte specifies which), * else: other error. * * The mouse powers up in the prompt mode but we use the stream mode. */ state->buttons = data[0]&0x07; state->dx = (data[0]&0x10) ? data[1] : -data[1]; state->dy = (data[0]&0x08) ? -data[2] : data[2]; return 0; } /* Genius Wizardpad tablet -- Matt Kimball (mkimball@xmission.com) */ static int wizardpad_width = -1; static int wizardpad_height = -1; static int M_wp(Gpm_Event *state, unsigned char *data) { int x, y, pressure; x = ((data[4] & 0x1f) << 12) | ((data[3] & 0x3f) << 6) | (data[2] & 0x3f); state->x = x * win.ws_col / (wizardpad_width * 40); realposx = x * 16383 / (wizardpad_width * 40); y = ((data[7] & 0x1f) << 12) | ((data[6] & 0x3f) << 6) | (data[5] & 0x3f); state->y = win.ws_row - y * win.ws_row / (wizardpad_height * 40) - 1; realposy = 16383 - y * 16383 / (wizardpad_height * 40) - 1; pressure = ((data[9] & 0x0f) << 4) | (data[8] & 0x0f); state->buttons= (pressure >= 0x20) * GPM_B_LEFT + !!(data[1] & 0x02) * GPM_B_RIGHT + /* the 0x08 bit seems to catch either of the extra buttons... */ !!(data[1] & 0x08) * GPM_B_MIDDLE; return 0; } /*========================================================================*/ /* Then, mice should be initialized */ static Gpm_Type* I_empty(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv) { if (check_no_argv(argc, argv)) return NULL; return type; } static int setspeed(int fd,int old,int new,int needtowrite,unsigned short flags) { struct termios tty; char *c; tcgetattr(fd, &tty); tty.c_iflag = IGNBRK | IGNPAR; tty.c_oflag = 0; tty.c_lflag = 0; tty.c_line = 0; tty.c_cc[VTIME] = 0; tty.c_cc[VMIN] = 1; switch (old) { case 19200: tty.c_cflag = flags | B19200; break; case 9600: tty.c_cflag = flags | B9600; break; case 4800: tty.c_cflag = flags | B4800; break; case 2400: tty.c_cflag = flags | B2400; break; case 1200: default: tty.c_cflag = flags | B1200; break; } tcsetattr(fd, TCSAFLUSH, &tty); switch (new) { case 19200: c = "*r"; tty.c_cflag = flags | B19200; break; case 9600: c = "*q"; tty.c_cflag = flags | B9600; break; case 4800: c = "*p"; tty.c_cflag = flags | B4800; break; case 2400: c = "*o"; tty.c_cflag = flags | B2400; break; case 1200: default: c = "*n"; tty.c_cflag = flags | B1200; break; } if (needtowrite) write(fd, c, 2); usleep(100000); tcsetattr(fd, TCSAFLUSH, &tty); return 0; } static struct { int sample; char code[2]; } sampletab[]={ { 0,"O"}, { 15,"J"}, { 27,"K"}, { 42,"L"}, { 60,"R"}, { 85,"M"}, {125,"Q"}, {1E9,"N"}, }; static Gpm_Type* I_serial(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv) { int i; unsigned char c; fd_set set; struct timeval timeout={0,0}; /* used when not debugging */ /* accept "-o dtr", "-o rts" and "-o both" */ if (option_modem_lines(fd, argc, argv)) return NULL; #ifndef DEBUG /* flush any pending input (thanks, Miguel) */ FD_ZERO(&set); for(i=0; /* always */ ; i++) { FD_SET(fd,&set); switch(select(fd+1,&set,(fd_set *)NULL,(fd_set *)NULL,&timeout/*zero*/)){ case 1: if (read(fd,&c,1)==0) break; case -1: continue; } break; } if (type->fun==M_logimsc) write(fd, "QU", 2 ); #if 0 /* Did this ever work? -- I don't know, but should we not remove it, * if it doesn't work ??? -- Nico */ if (type->fun==M_ms && i==2 && c==0x33) { /* Aha.. a mouseman... */ gpm_report(GPM_PR_INFO,GPM_MESS_MMAN_DETECTED); return mice; /* it is the first */ } #endif #endif /* Non mman: change from any available speed to the chosen one */ for (i=9600; i>=1200; i/=2) setspeed(fd, i, (which_mouse->opt_baud), (type->fun != M_mman) /* write */, flags); /* * reset the MouseMan/TrackMan to use the 3/4 byte protocol * (Stephen Lee, sl14@crux1.cit.cornell.edu) * Changed after 1.14; why not having "I_mman" now? */ if (type->fun==M_mman) { setspeed(fd, 1200, 1200, 0, flags); /* no write */ write(fd, "*X", 2); setspeed(fd, 1200, (which_mouse->opt_baud), 0, flags); /* no write */ return type; } if(type->fun==M_geni) { gpm_report(GPM_PR_INFO,GPM_MESS_INIT_GENI); setspeed(fd, 1200, 9600, 1, flags); /* write */ write(fd, ":" ,1); write(fd, "E" ,1); /* setup tablet. relative mode, resolution... */ write(fd, "@" ,1); /* setup tablet. relative mode, resolution... */ } if (type->fun==M_synaptics_serial) { int packet_length; setspeed (fd, 1200, 1200, 1, flags); packet_length = syn_serial_init (fd); setspeed (fd, 1200, 9600, 1, flags); type->packetlen = packet_length; type->howmany = packet_length; } if (type->fun==M_vsxxx_aa) { setspeed (fd, 4800, 4800, 0, flags); /* no write */ write(fd, "R", 1); /* initialize a mouse; without getting an "R" */ /* a mouse does not send a bytestream */ } return type; } static Gpm_Type* I_logi(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv) { int i; struct stat buf; int busmouse; if (check_no_argv(argc, argv)) return NULL; /* is this a serial- or a bus- mouse? */ if(fstat(fd,&buf)==-1) gpm_report(GPM_PR_OOPS,GPM_MESS_FSTAT); i=MAJOR(buf.st_rdev); /* I don't know why this is herein, but I remove it. I don't think a * hardcoded ttyname in a C file is senseful. I think if the device * exists must be clear before. Not here. */ /********* if (stat("/dev/ttyS0",&buf)==-1) gpm_oops("stat()"); *****/ busmouse=(i != MAJOR(buf.st_rdev)); /* fix the howmany field, so that serial mice have 1, while busmice have 3 */ type->howmany = busmouse ? 3 : 1; /* change from any available speed to the chosen one */ for (i=9600; i>=1200; i/=2) setspeed(fd, i, (which_mouse->opt_baud), 1 /* write */, flags); /* this stuff is peculiar of logitech mice, also for the serial ones */ write(fd, "S", 1); setspeed(fd, (which_mouse->opt_baud), (which_mouse->opt_baud), 1 /* write */, CS8 |PARENB |PARODD |CREAD |CLOCAL |HUPCL); /* configure the sample rate */ for (i=0;(which_mouse->opt_sample)<=sampletab[i].sample;i++) ; write(fd,sampletab[i].code,1); return type; } /* wacom graphire tablet */ #define UD_RESETBAUD "\r$" /* reset baud rate to default (wacom V) */ /* or switch to wacom IIs (wacomIV) */ #define UD_RESET "#\r" /* Reset tablet and enable WACOM IV */ #define UD_SENDCOORDS "ST\r" /* Start sending coordinates */ #define UD_FIRMID "~#\r" /* Request firmware ID string */ #define UD_COORD "~C\r" /* Request max coordinates */ #define UD_STOP "\nSP\r" /* stop sending coordinates */ static void I_wacom_reset_wacom(int fd) { /* Init Wacom communication; this is modified from xf86Wacom.so module */ /* Set speed to 19200 */ setspeed (fd, 1200, 19200, 0, B19200|CS8|CREAD|CLOCAL|HUPCL); /* Send Reset Baudrate Command */ write(fd, UD_RESETBAUD, strlen(UD_RESETBAUD)); usleep(250000); /* Send Reset Command */ write(fd, UD_RESET, strlen(UD_RESET)); usleep(75000); /* Set speed to 9600bps */ setspeed (fd, 1200, 9600, 0, B9600|CS8|CREAD|CLOCAL|HUPCL); /* Send Reset Command */ write(fd, UD_RESET, strlen(UD_RESET)); usleep(250000); write(fd, UD_STOP, strlen(UD_STOP)); usleep(100000); } static int I_wacom_wait_wacom(int fd) { /* * Wait up to 200 ms for Data from Tablet. * Do not read that data. * Give back 0 on timeout condition, -1 on error and 1 for DataPresent */ struct timeval timeout; fd_set readfds; int err; FD_ZERO(&readfds); FD_SET(fd, &readfds); timeout.tv_sec = 0; timeout.tv_usec = 200000; err = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout); return((err>0)?1:err); } static int I_wacom_RequestData(char *cmd, int fd, char *buffer, unsigned int buffer_len, char *p) { int err; /* * Send cmd if not null, and get back answer from tablet. * Get Data to buffer until full or timeout. * Give back 0 for timeout and !0 for buffer full */ if (cmd) write(fd,cmd,strlen(cmd)); memset(buffer,0,sizeof(char)*buffer_len); p=buffer; err=I_wacom_wait_wacom(fd); while (err != -1 && err && (p-buffer)<(sizeof(char)*buffer_len-1)) { p+= read(fd,p,(sizeof(char)*buffer_len-1)-(p-buffer)); err=I_wacom_wait_wacom(fd); } /* return 1 for buffer full */ return ((strlen(buffer) >= (sizeof(char)*buffer_len-1))? !0 :0); } static Gpm_Type *I_wacom(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv) { #define BUFFER_SIZE 50 char buffer[BUFFER_SIZE], *p; /* * We do both modes, relative and absolute, with the same function. * If WacomAbsoluteWanted is !0 then that function calculates * absolute values, else relative ones. * We set this by the -o switch: * gpm -t wacom -o absolute # does absolute mode * gpm -t wacom # does relative mode * gpm -t wacom -o relative # does relative mode */ /* accept boolean options absolute and relative */ static argv_helper optioninfo[] = { {"absolute", ARGV_BOOL, u: {iptr: &WacomAbsoluteWanted}, value: !0}, {"relative", ARGV_BOOL, u: {iptr: &WacomAbsoluteWanted}, value: 0}, {"", ARGV_END} }; parse_argv(optioninfo, argc, argv); type->absolute = WacomAbsoluteWanted; I_wacom_reset_wacom(fd); /* "Flush" input queque */ while(I_wacom_RequestData(NULL, fd, buffer, BUFFER_SIZE, p)) ; /* read WACOM-ID */ I_wacom_RequestData(UD_FIRMID, fd, buffer, BUFFER_SIZE, p); /* Search for matching modell */ for(WacomModell=0; WacomModell< (sizeof(wcmodell) / sizeof(struct WC_MODELL)); WacomModell++ ) { if (!strncmp(buffer+2,wcmodell[WacomModell].magic, 2)) { /* Magic matches, modell found */ wmaxx=wcmodell[WacomModell].maxX; wmaxy=wcmodell[WacomModell].maxY; break; } } if(WacomModell >= (sizeof(wcmodell) / sizeof(struct WC_MODELL))) WacomModell=-1; gpm_report(GPM_PR_INFO,GPM_MESS_WACOM_MOD, type->absolute? 'A':'R', (WacomModell==(-1))? "Unknown" : wcmodell[WacomModell].name, buffer+2); /* read Wacom max size */ if(WacomModell!=(-1) && (!wcmodell[WacomModell].maxX)) { I_wacom_RequestData(UD_COORD, fd, buffer, BUFFER_SIZE, p); sscanf(buffer+2, "%d,%d", &wmaxx, &wmaxy); wmaxx = (wmaxx-wcmodell[WacomModell].border); wmaxy = (wmaxy-wcmodell[WacomModell].border); } write(fd,UD_SENDCOORDS,4); return type; } static Gpm_Type *I_pnp(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv) { struct termios tty; /* accept "-o dtr", "-o rts" and "-o both" */ if (option_modem_lines(fd, argc, argv)) return NULL; /* * Just put the device to 1200 baud. Thanks to Francois Chastrette * for his great help and debugging with his own pnp device. */ tcgetattr(fd, &tty); tty.c_iflag = IGNBRK | IGNPAR; tty.c_oflag = 0; tty.c_lflag = 0; tty.c_line = 0; tty.c_cc[VTIME] = 0; tty.c_cc[VMIN] = 1; tty.c_cflag = flags | B1200; tcsetattr(fd, TCSAFLUSH, &tty); /* set parameters */ /* * Don't read the silly initialization string. I don't want to see * the vendor name: it is only propaganda, with no information. */ return type; } /* * Sends the SEND_ID command to the ps2-type mouse. * Return one of GPM_AUX_ID_... */ static int read_mouse_id(int fd) { unsigned char c = GPM_AUX_SEND_ID; unsigned char id; write(fd, &c, 1); read(fd, &c, 1); if (c != GPM_AUX_ACK) { return(GPM_AUX_ID_ERROR); } read(fd, &id, 1); return(id); } /** * Writes the given data to the ps2-type mouse. * Checks for an ACK from each byte. * * Returns 0 if OK, or >0 if 1 or more errors occurred. */ static int write_to_mouse(int fd, unsigned char *data, size_t len) { int i; int error = 0; for (i = 0; i < len; i++) { unsigned char c; write(fd, &data[i], 1); read(fd, &c, 1); if (c != GPM_AUX_ACK) error++; } /* flush any left-over input */ usleep (30000); tcflush (fd, TCIFLUSH); return(error); } /* intellimouse, ps2 version: Ben Pfaff and Colin Plumb */ /* Autodetect: Steve Bennett */ static Gpm_Type *I_imps2(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv) { int id; static unsigned char basic_init[] = { GPM_AUX_ENABLE_DEV, GPM_AUX_SET_SAMPLE, 100 }; static unsigned char imps2_init[] = { GPM_AUX_SET_SAMPLE, 200, GPM_AUX_SET_SAMPLE, 100, GPM_AUX_SET_SAMPLE, 80, }; static unsigned char ps2_init[] = { GPM_AUX_SET_SCALE11, GPM_AUX_ENABLE_DEV, GPM_AUX_SET_SAMPLE, 100, GPM_AUX_SET_RES, 3, }; /* Do a basic init in case the mouse is confused */ write_to_mouse(fd, basic_init, sizeof (basic_init)); /* Now try again and make sure we have a PS/2 mouse */ if (write_to_mouse(fd, basic_init, sizeof (basic_init)) != 0) { gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_INIT); return(NULL); } /* Try to switch to 3 button mode */ if (write_to_mouse(fd, imps2_init, sizeof (imps2_init)) != 0) { gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_FAILED); return(NULL); } /* Read the mouse id */ id = read_mouse_id(fd); if (id == GPM_AUX_ID_ERROR) { gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_MID_FAIL); id = GPM_AUX_ID_PS2; } /* And do the real initialisation */ if (write_to_mouse(fd, ps2_init, sizeof (ps2_init)) != 0) { gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_SETUP_FAIL); } if (id == GPM_AUX_ID_IMPS2) { /* Really an intellipoint, so initialise 3 button mode (4 byte packets) */ gpm_report(GPM_PR_INFO,GPM_MESS_IMPS2_AUTO); return type; } if (id != GPM_AUX_ID_PS2) { gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_BAD_ID, id); } else gpm_report(GPM_PR_INFO,GPM_MESS_IMPS2_PS2); for (type=mice; type->fun; type++) if (strcmp(type->name, "ps2") == 0) return(type); /* ps2 was not found!!! */ return(NULL); } /* * This works with Dexxa Optical Mouse, but because in X same initstring * is named ExplorerPS/2 so I named it in the same way. */ static Gpm_Type *I_exps2(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv) { static unsigned char s1[] = { 243, 200, 243, 200, 243, 80, }; if (check_no_argv(argc, argv)) return NULL; write (fd, s1, sizeof (s1)); usleep (30000); tcflush (fd, TCIFLUSH); return type; } static Gpm_Type *I_twid(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv) { if (check_no_argv(argc, argv)) return NULL; if (twiddler_key_init() != 0) return NULL; /* * the twiddler is a serial mouse: just drop dtr * and run at 2400 (unless specified differently) */ if((which_mouse->opt_baud)==DEF_BAUD) (which_mouse->opt_baud) = 2400; argv[1] = "dtr"; /* argv[1] is guaranteed to be NULL (this is dirty) */ return I_serial(fd, flags, type, argc, argv); } static Gpm_Type *I_calus(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv) { if (check_no_argv(argc, argv)) return NULL; if ((which_mouse->opt_baud) == 1200) (which_mouse->opt_baud)=9600; /* default to 9600 */ return I_serial(fd, flags, type, argc, argv); } /* synaptics touchpad, ps2 version: Henry Davies */ static Gpm_Type *I_synps2(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv) { syn_ps2_init (fd); return type; } static void I_summa_reset_summa(int fd) { write(fd,0,1); /* Reset */ usleep(400000); /* wait */ } static int I_summa_wait_summa(int fd) { struct timeval timeout; fd_set readfds; int err; FD_ZERO(&readfds); FD_SET(fd, &readfds); timeout.tv_sec = 0; timeout.tv_usec = 200000; err = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout); return(err); } static Gpm_Type *I_summa(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv) { int err; char buffer[255]; char config[5]; /* Summasketchtablet (from xf86summa.o: thanks to Steven Lang )*/ #define SS_PROMPT_MODE "B" /* Prompt mode */ #define SS_FIRMID "z?" /* Request firmware ID string */ #define SS_500LPI "h" /* 500 lines per inch */ #define SS_READCONFIG "a" #define SS_ABSOLUTE "F" /* Absolute Mode */ #define SS_TABID0 "0" /* Tablet ID 0 */ #define SS_UPPER_ORIGIN "b" /* Origin upper left */ #define SS_BINARY_FMT "zb" /* Binary reporting */ #define SS_STREAM_MODE "@" /* Stream mode */ /* Geniustablet (hisketch.txt)*/ #define GEN_MMSERIES ":" char GEN_MODELL=0x7f; /* Set speed to 9600bps */ setspeed (fd, 1200, 9600, 1, B9600|CS8|CREAD|CLOCAL|HUPCL|PARENB|PARODD); I_summa_reset_summa(fd); write(fd, SS_PROMPT_MODE, strlen(SS_PROMPT_MODE)); if (strstr(type->name,"acecad")!=NULL) summaid=11; if (summaid<0) { /* Summagraphics test */ /* read the Summa Firm-ID */ write(fd, SS_FIRMID, strlen(SS_FIRMID)); err=I_summa_wait_summa(fd); if (!((err == -1) || (!err))) { summaid=10; /* Original Summagraphics */ read(fd, buffer, 255); /* Read Firm-ID */ } } if (summaid<0) { /* Genius-test */ I_summa_reset_summa(fd); write(fd,GEN_MMSERIES,1); write(fd,&GEN_MODELL,1); /* Read modell */ err=I_summa_wait_summa(fd); if (!((err == -1) || (!err))) { /* read Genius-ID */ err=I_summa_wait_summa(fd); if (!((err == -1) || (!err))) { err=I_summa_wait_summa(fd); if (!((err == -1) || (!err))) { read(fd,&config,1); summaid=(config[0] & 224) >> 5; /* genius tablet-id (0-7)*/ } } } } /* end of Geniustablet-test */ /* unknown tablet ?*/ if ((summaid<0) || (summaid==11)) { I_summa_reset_summa(fd); write(fd, SS_BINARY_FMT SS_PROMPT_MODE, 3); } /* read tablet size */ err=I_summa_wait_summa(fd); if (!((err == -1) || (!err))) read(fd,buffer,sizeof(buffer)); write(fd,SS_READCONFIG,1); read(fd,&config,5); summamaxx=(config[2]<<7 | config[1])-(SUMMA_BORDER*2); summamaxy=(config[4]<<7 | config[3])-(SUMMA_BORDER*2); write(fd,SS_ABSOLUTE SS_STREAM_MODE SS_UPPER_ORIGIN,3); if (summaid<0) write(fd,SS_500LPI SS_TABID0 SS_BINARY_FMT,4); return type; } static Gpm_Type *I_mtouch(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv) { struct termios tty; /* Set speed to 9600bps (copied from I_summa, above :) */ tcgetattr(fd, &tty); tty.c_iflag = IGNBRK | IGNPAR; tty.c_oflag = 0; tty.c_lflag = 0; tty.c_line = 0; tty.c_cc[VTIME] = 0; tty.c_cc[VMIN] = 1; tty.c_cflag = B9600|CS8|CREAD|CLOCAL|HUPCL; tcsetattr(fd, TCSAFLUSH, &tty); /* Turn it to "format tablet" and "mode stream" */ write(fd,"\001MS\r\n\001FT\r\n",10); return type; } /* simple initialization for the gunze touchscreen */ static Gpm_Type *I_gunze(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv) { struct termios tty; FILE *f; char s[80]; int i, calibok = 0; #define GUNZE_CALIBRATION_FILE SYSCONFDIR "/gpm-calibration" /* accept a few options */ static argv_helper optioninfo[] = { {"smooth", ARGV_INT, u: {iptr: &gunze_avg}}, {"debounce", ARGV_INT, u: {iptr: &gunze_debounce}}, /* FIXME: add corner tapping */ {"", ARGV_END} }; parse_argv(optioninfo, argc, argv); /* check that the baud rate is valid */ if ((which_mouse->opt_baud) == DEF_BAUD) (which_mouse->opt_baud) = 19200; /* force 19200 as default */ if ((which_mouse->opt_baud) != 9600 && (which_mouse->opt_baud) != 19200) { gpm_report(GPM_PR_ERR,GPM_MESS_GUNZE_WRONG_BAUD,option.progname, argv[0]); (which_mouse->opt_baud) = 19200; } tcgetattr(fd, &tty); tty.c_iflag = IGNBRK | IGNPAR; tty.c_oflag = 0; tty.c_lflag = 0; tty.c_line = 0; tty.c_cc[VTIME] = 0; tty.c_cc[VMIN] = 1; tty.c_cflag = ((which_mouse->opt_baud) == 9600 ? B9600 : B19200) |CS8|CREAD|CLOCAL|HUPCL; tcsetattr(fd, TCSAFLUSH, &tty); /* FIXME: try to find some information about the device */ /* retrieve calibration, if not existent, use defaults (uncalib) */ f = fopen(GUNZE_CALIBRATION_FILE, "r"); if (f) { fgets(s, 80, f); /* discard the comment */ if (fscanf(f, "%d %d %d %d", gunze_calib, gunze_calib+1, gunze_calib+2, gunze_calib+3) == 4) calibok = 1; /* Hmm... check */ for (i=0; i<4; i++) if (gunze_calib[i] & ~1023) calibok = 0; if (gunze_calib[0] == gunze_calib[2]) calibok = 0; if (gunze_calib[1] == gunze_calib[3]) calibok = 0; fclose(f); } if (!calibok) { gpm_report(GPM_PR_ERR,GPM_MESS_GUNZE_CALIBRATE, option.progname); gunze_calib[0] = gunze_calib[1] = 128; /* 1/8 */ gunze_calib[2] = gunze_calib[3] = 896; /* 7/8 */ } return type; } /* simple initialization for the elo touchscreen */ static Gpm_Type *I_etouch(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv) { struct termios tty; FILE *f; char s[80]; int i, calibok = 0; /* Calibration config file (copied from I_gunze, below :) */ #define ELO_CALIBRATION_FILE SYSCONFDIR "/gpm-calibration" /* accept a few options */ static argv_helper optioninfo[] = { {"clickontouch", ARGV_BOOL, u: {iptr: &elo_click_ontouch}, value: !0}, {"", ARGV_END} }; parse_argv(optioninfo, argc, argv); /* Set speed to 9600bps (copied from I_summa, above :) */ tcgetattr(fd, &tty); tty.c_iflag = IGNBRK | IGNPAR; tty.c_oflag = 0; tty.c_lflag = 0; tty.c_line = 0; tty.c_cc[VTIME] = 0; tty.c_cc[VMIN] = 1; tty.c_cflag = B9600|CS8|CREAD|CLOCAL|HUPCL; tcsetattr(fd, TCSAFLUSH, &tty); /* retrieve calibration, if not existent, use defaults (uncalib) */ f = fopen(ELO_CALIBRATION_FILE, "r"); if (f) { fgets(s, 80, f); /* discard the comment */ if (fscanf(f, "%d %d %d %d", gunze_calib, gunze_calib+1, gunze_calib+2, gunze_calib+3) == 4) calibok = 1; /* Hmm... check */ for (i=0; i<4; i++) if ((gunze_calib[i] & 0xfff) != gunze_calib[i]) calibok = 0; if (gunze_calib[0] == gunze_calib[2]) calibok = 0; if (gunze_calib[1] == gunze_calib[3]) calibok = 0; fclose(f); } if (!calibok) { gpm_report(GPM_PR_ERR,GPM_MESS_ELO_CALIBRATE, option.progname, ELO_CALIBRATION_FILE); /* "%s: etouch: calibration file %s absent or invalid, using defaults" */ gunze_calib[0] = gunze_calib[1] = 0x010; /* 1/16 */ gunze_calib[2] = gunze_calib[3] = 0xff0; /* 15/16 */ } return type; } /* Genius Wizardpad tablet -- Matt Kimball (mkimball@xmission.com) */ static Gpm_Type *I_wp(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv) { struct termios tty; char tablet_info[256]; int count, pos, size; /* Set speed to 9600bps (copied from I_summa, above :) */ tcgetattr(fd, &tty); tty.c_iflag = IGNBRK | IGNPAR; tty.c_oflag = 0; tty.c_lflag = 0; tty.c_line = 0; tty.c_cc[VTIME] = 0; tty.c_cc[VMIN] = 1; tty.c_cflag = B9600|CS8|CREAD|CLOCAL|HUPCL; tcsetattr(fd, TCSAFLUSH, &tty); /* Reset the tablet (':') and put it in remote mode ('S') so that it isn't sending anything to us. */ write(fd, ":S", 2); tcsetattr(fd, TCSAFLUSH, &tty); /* Query the model of the tablet */ write(fd, "T", 1); sleep(1); count = read(fd, tablet_info, 255); /* The tablet information should start with "KW" followed by the rest of the model number. If it isn't there, it probably isn't a WizardPad. */ if(count < 2) return NULL; if(tablet_info[0] != 'K' || tablet_info[1] != 'W') return NULL; /* Now, we want the width and height of the tablet. They should be of the form "X###" and "Y###" where ### is the number of units of the tablet. The model I've got is "X130" and "Y095", but I guess there might be other ones sometime. */ for(pos = 0; pos < count; pos++) { if(tablet_info[pos] == 'X' || tablet_info[pos] == 'Y') { if(pos + 3 < count) { size = (tablet_info[pos + 1] - '0') * 100 + (tablet_info[pos + 2] - '0') * 10 + (tablet_info[pos + 3] - '0'); if(tablet_info[pos] == 'X') { wizardpad_width = size; } else { wizardpad_height = size; } } } } /* Set the tablet to stream mode with 180 updates per sec. ('O') */ write(fd, "O", 1); return type; } /*========================================================================*/ /* Finally, the table */ #define STD_FLG (CREAD|CLOCAL|HUPCL) /* * Note that mman must be the first, and ms the second (I use this info * in mouse-test.c, as a quick and dirty hack * * We should clean up mouse-test and sort the table alphabeticly! --nico */ /* * For those who are trying to add a new type, here a brief * description of the structure. Please refer to gpmInt.h and gpm.c * for more information: * * The first three strings are the name, an help line, a long name (if any) * Then come the functions: the decoder and the initializazion function * (called I_* and M_*) * Follows an array of four bytes: it is the protocol-identification, based * on the first two bytes of a packet: if * "((byte0 & proto[0]) == proto[1]) && ((byte1 & proto[2]) == proto[3])" * then we are at the beginning of a packet. * The following numbers are: * bytes-per-packet, * bytes-to-read (use 1, bus mice are pathological) * has-extra-byte (boolean, for mman pathological protocol) * is-absolute-coordinates (boolean) * Finally, a pointer to a repeater function, if any. */ Gpm_Type mice[]={ {"mman", "The \"MouseMan\" and similar devices (3/4 bytes per packet).", "Mouseman", M_mman, I_serial, CS7 | STD_FLG, /* first */ {0x40, 0x40, 0x40, 0x00}, 3, 1, 1, 0, 0}, {"ms", "The original ms protocol, with a middle-button extension.", "", M_ms, I_serial, CS7 | STD_FLG, {0x40, 0x40, 0x40, 0x00}, 3, 1, 0, 0, 0}, {"acecad", "Acecad tablet absolute mode(Sumagrapics MM-Series mode)", "", M_summa, I_summa, STD_FLG, {0x80, 0x80, 0x00, 0x00}, 7, 1, 0, 1, 0}, {"bare", "Unadorned ms protocol. Needed with some 2-buttons mice.", "Microsoft", M_bare, I_serial, CS7 | STD_FLG, {0x40, 0x40, 0x40, 0x00}, 3, 1, 0, 0, 0}, {"bm", "Micro$oft busmice and compatible devices.", "BusMouse", M_bm, I_empty, STD_FLG, /* bm is sun */ {0xf8, 0x80, 0x00, 0x00}, 3, 3, 0, 0, 0}, {"brw", "Fellowes Browser - 4 buttons (and a wheel) (dual protocol?)", "", M_brw, I_pnp, CS7 | STD_FLG, {0xc0, 0x40, 0xc0, 0x00}, 4, 1, 0, 0, 0}, {"cal", "Calcomp UltraSlate", "", M_calus, I_calus, CS8 | CSTOPB | STD_FLG, {0x80, 0x80, 0x80, 0x00}, 6, 6, 0, 1, 0}, {"calr", "Calcomp UltraSlate - relative mode", "", M_calus_rel, I_calus, CS8 | CSTOPB | STD_FLG, {0x80, 0x80, 0x80, 0x00}, 6, 6, 0, 0, 0}, {"etouch", "EloTouch touch-screens (only button-1 events, by now)", "", M_etouch, I_etouch, STD_FLG, {0xFF, 0x55, 0xFF, 0x54}, 7, 1, 0, 1, NULL}, #ifdef HAVE_LINUX_INPUT_H {"evdev", "Linux Event Device", "", M_evdev, I_empty, STD_FLG, {0x00, 0x00, 0x00, 0x00} , 16, 16, 0, 0, NULL}, #endif /* HAVE_LINUX_INPUT_H */ {"exps2", "IntelliMouse Explorer (ps2) - 3 buttons, wheel unused", "ExplorerPS/2", M_imps2, I_exps2, STD_FLG, {0xc0, 0x00, 0x00, 0x00}, 4, 1, 0, 0, 0}, #ifdef HAVE_LINUX_JOYSTICK_H {"js", "Joystick mouse emulation", "Joystick", M_js, NULL, 0, {0xFC, 0x00, 0x00, 0x00}, 12, 12, 0, 0, 0}, #endif {"genitizer", "\"Genitizer\" tablet, in relative mode.", "", M_geni, I_serial, CS8|PARENB|PARODD, {0x80, 0x80, 0x00, 0x00}, 3, 1, 0, 0, 0}, {"gunze", "Gunze touch-screens (only button-1 events, by now)", "", M_gunze, I_gunze, STD_FLG, {0xF9, 0x50, 0xF0, 0x30}, 11, 1, 0, 1, NULL}, {"imps2","Microsoft Intellimouse (ps2)-autodetect 2/3 buttons,wheel unused", "", M_imps2, I_imps2, STD_FLG, {0xC0, 0x00, 0x00, 0x00}, 4, 1, 0, 0, R_imps2}, {"logi", "Used in some Logitech devices (only serial).", "Logitech", M_logi, I_logi, CS8 | CSTOPB | STD_FLG, {0xe0, 0x80, 0x80, 0x00}, 3, 3, 0, 0, 0}, {"logim", "Turn logitech into Mouse-Systems-Compatible.", "", M_logimsc, I_serial, CS8 | CSTOPB | STD_FLG, {0xf8, 0x80, 0x00, 0x00}, 5, 1, 0, 0, 0}, {"mm", "MM series. Probably an old protocol...", "MMSeries", M_mm, I_serial, CS8 | PARENB|PARODD | STD_FLG, {0xe0, 0x80, 0x80, 0x00}, 3, 1, 0, 0, 0}, {"ms3", "Microsoft Intellimouse (serial) - 3 buttons, wheel unused", "", M_ms3, I_pnp, CS7 | STD_FLG, {0xc0, 0x40, 0xc0, 0x00}, 4, 1, 0, 0, R_ms3}, {"ms+", "Like 'ms', but allows dragging with the middle button.", "", M_ms_plus, I_serial, CS7 | STD_FLG, {0x40, 0x40, 0x40, 0x00}, 3, 1, 0, 0, 0}, {"ms+lr", "'ms+', but you can reset m by pressing lr (see man page).", "", M_ms_plus_lr, I_serial, CS7 | STD_FLG, {0x40, 0x40, 0x40, 0x00}, 3, 1, 0, 0, 0}, {"msc", "Mouse-Systems-Compatible (5bytes). Most 3-button mice.", "MouseSystems", M_msc, I_serial, CS8 | CSTOPB | STD_FLG, {0xf8, 0x80, 0x00, 0x00}, 5, 1, 0, 0, R_msc}, {"mtouch", "MicroTouch touch-screens (only button-1 events, by now)", "", M_mtouch, I_mtouch, STD_FLG, {0x80, 0x80, 0x80, 0x00}, 5, 1, 0, 1, NULL}, {"ncr", "Ncr3125pen, found on some laptops", "", M_ncr, NULL, STD_FLG, {0x08, 0x08, 0x00, 0x00}, 7, 7, 0, 1, 0}, {"netmouse","Genius NetMouse (ps2) - 2 buttons and 2 buttons 'up'/'down'.", "", M_netmouse, I_netmouse, CS7 | STD_FLG, {0xc0, 0x00, 0x00, 0x00}, 4, 1, 0, 0, 0}, {"pnp", "Plug and pray. New mice may not run with '-t ms'.", "", M_bare, I_pnp, CS7 | STD_FLG, {0x40, 0x40, 0x40, 0x00}, 3, 1, 0, 0, 0}, {"ps2", "Busmice of the ps/2 series. Most busmice, actually.", "PS/2", M_ps2, I_ps2, STD_FLG, {0xc0, 0x00, 0x00, 0x00}, 3, 1, 0, 0, R_ps2}, {"sun", "'msc' protocol, but only 3 bytes per packet.", "", M_sun, I_serial, CS8 | CSTOPB | STD_FLG, {0xf8, 0x80, 0x00, 0x00}, 3, 1, 0, 0, R_sun}, {"summa", "Summagraphics or Genius tablet absolute mode(MM-Series)", "", M_summa, I_summa, STD_FLG, {0x80, 0x80, 0x00, 0x00}, 5, 1, 0, 1, R_summa}, {"syn", "The \"Synaptics\" serial TouchPad.", "synaptics", M_synaptics_serial, I_serial, CS7 | STD_FLG, {0x40, 0x40, 0x40, 0x00}, 6, 6, 1, 0, 0}, {"synps2", "The \"Synaptics\" PS/2 TouchPad", "synaptics_ps2", M_synaptics_ps2, I_synps2, STD_FLG, {0x80, 0x80, 0x00, 0x00}, 6, 1, 1, 0, 0}, {"twid", "Twidddler keyboard", "", M_twid, I_twid, CS8 | STD_FLG, {0x80, 0x00, 0x80, 0x80}, 5, 1, 0, 0, 0}, {"vsxxxaa", "The DEC VSXXX-AA/GA serial mouse on DEC workstations.", "", M_vsxxx_aa, I_serial, CS8 | PARENB | PARODD | STD_FLG, {0xe0, 0x80, 0x80, 0x00}, 3, 1, 0, 0, 0}, {"wacom","Wacom Protocol IV Tablets: Pen+Mouse, relative+absolute mode", "", M_wacom, I_wacom, STD_FLG, {0x80, 0x80, 0x80, 0x00}, 7, 1, 0, 0, 0}, {"wp", "Genius WizardPad tablet", "wizardpad", M_wp, I_wp, STD_FLG, {0xFA, 0x42, 0x00, 0x00}, 10, 1, 0, 1, 0}, {"", "", "", NULL, NULL, 0, {0x00, 0x00, 0x00, 0x00}, 0, 0, 0, 0, 0} }; /*------------------------------------------------------------------------*/ /* and the help */ int M_listTypes(void) { Gpm_Type *type; printf(GPM_MESS_VERSION "\n"); printf(GPM_MESS_AVAIL_MYT); for (type=mice; type->fun; type++) printf(GPM_MESS_SYNONYM, type->repeat_fun?'*':' ', type->name, type->desc, type->synonyms); putchar('\n'); return 1; /* to exit() */ } /* indent: use three spaces. no tab. not two or four. three */ /* Local Variables: */ /* c-indent-level: 3 */ /* End: */ gpm-1.20.7/src/prog/000077500000000000000000000000001204257734200141305ustar00rootroot00000000000000gpm-1.20.7/src/prog/disable-paste.c000066400000000000000000000033671204257734200170220ustar00rootroot00000000000000/* * disable-paste.c - trivial program to stop gpm from pasting the * current selection until the next user action * * Copyright (C) 1998 Ian Zimmerman * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ #include #include #include #include #include #include #include #include #include #include #include #include #include "headers/gpm.h" #include "headers/gpmInt.h" int main(int argc, char** argv) { Gpm_Connect conn; const int len = sizeof(Gpm_Connect); int exit_status = 0; conn.eventMask = (unsigned short)(-1); conn.defaultMask = 0; conn.minMod = 0; conn.maxMod = (unsigned short)(-1); if (0 > Gpm_Open(&conn,0)) { fprintf(stderr,"disable-paste: cannot open mouse connection\n"); exit(1); } conn.vc = GPM_REQ_NOPASTE; conn.pid = 0; if (len > write(gpm_fd, &conn, len)) { fprintf(stderr,"disable-paste: cannot write request\n"); exit_status = 2; } Gpm_Close(); exit(exit_status); } gpm-1.20.7/src/prog/display-buttons.c000066400000000000000000000066331204257734200174450ustar00rootroot00000000000000/* * display-coords.c - a very simple gpm client * * Copyright 2007-2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Compile and link with: gcc -o display-buttons -lgpm display-buttons.c * ********/ /* * This client is connects to gpm and displays the following values until * it is killed by control+c: * * left/middle/right button * time: when packet was recievesd * dtime: delta to the last packet * */ #include /* write, read, open */ #include /* strtol() */ #include /* printf() */ #include /* time() */ #include /* errno */ #include /* gpm information */ /* display resulting data */ int display_data(Gpm_Event *event, void *data) { static time_t last = 0; time_t now = time(NULL); int delta; delta = now - last; last = now; /* display time, delta time */ printf("[%d] delta: %ds",now,delta); /* display mouse information */ printf(": p=%d, l=%1d, m=%1d, r=%1d, clicks=%d\n", event->type & GPM_DOWN, event->buttons & GPM_B_LEFT, event->buttons & GPM_B_MIDDLE, event->buttons & GPM_B_RIGHT, event->clicks); return 0; } int main(int argc, char **argv) { int vc; /* argv: console number */ Gpm_Connect conn; /* connection to gpm */ fd_set fds; /* select virtual console, 0 if not set */ vc = (argc == 2) ? strtol(argv[1],NULL,10) : 0; conn.eventMask = GPM_DRAG | GPM_DOWN | GPM_UP; conn.defaultMask = ~GPM_HARD; /* inverted GPM_HARD mask */ conn.minMod = 0; conn.maxMod = ~0; if(Gpm_Open(&conn,vc) == -1) { printf("Cannot connect to gpm!\n"); return 1; } if(gpm_fd == -2) { printf("I must be run on the console\n"); return 1; } printf("\tp=pressed (0=release)\n\tl=left\n\tm=middle\n\tr=right\n"); while(1) { /* read data */ FD_ZERO(&fds); FD_SET(gpm_fd, &fds); if (select(gpm_fd+1, &fds, 0, 0, 0) < 0 && errno == EINTR) continue; if (FD_ISSET(gpm_fd, &fds)) { Gpm_Event evt; if (Gpm_GetEvent(&evt) > 0) { display_data(&evt, NULL); } else { printf("Gpm_GetEvent failed\n"); } } } Gpm_Close(); /* close connection */ return 0; } gpm-1.20.7/src/prog/display-coords.c000066400000000000000000000060361204257734200172350ustar00rootroot00000000000000/* * display-coords.c - a very simple gpm client * * Copyright 2007-2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Compile and link with: gcc -o display-coords -lgpm display-coords.c * ********/ /* * This client is connects to gpm and displays the following values until * it is killed by control+c: * * x/y coords on the screen * dx, dy: deltas * time: when packet was recievesd * dtime: delta to the last packet * */ #include /* write, read, open */ #include /* strtol() */ #include /* printf() */ #include /* time() */ #include /* errno */ #include /* gpm information */ /* display resulting data */ int display_data(Gpm_Event *event, void *data) { static time_t last = 0; time_t now = time(NULL); int delta; delta = now - last; last = now; /* display time, delta time */ printf("[%d] delta: %ds",now,delta); /* display mouse information */ printf(": x=%2i, y=%2i, dx=%2i, dy=%2i\n", event->x, event->y, event->dx, event->dy); return 0; } int main(int argc, char **argv) { int vc; /* argv: console number */ Gpm_Connect conn; /* connection to gpm */ fd_set fds; /* select virtual console, 0 if not set */ vc = (argc == 2) ? strtol(argv[1],NULL,10) : 0; conn.eventMask = GPM_MOVE; /* read only moves */ conn.defaultMask = ~GPM_HARD; /* inverted GPM_HARD mask */ conn.minMod = 0; conn.maxMod = ~0; if(Gpm_Open(&conn,vc) == -1) { printf("Cannot connect to gpm!\n"); return 1; } if(gpm_fd == -2) { printf("I must be run on the console\n"); return 1; } while(1) { /* read data */ FD_ZERO(&fds); FD_SET(gpm_fd, &fds); if (select(gpm_fd+1, &fds, 0, 0, 0) < 0 && errno == EINTR) continue; if (FD_ISSET(gpm_fd, &fds)) { Gpm_Event evt; if (Gpm_GetEvent(&evt) > 0) { display_data(&evt, NULL); } else { printf("Gpm_GetEvent failed\n"); } } } Gpm_Close(); /* close connection */ return 0; } gpm-1.20.7/src/prog/get-versions.c000066400000000000000000000023361204257734200167250ustar00rootroot00000000000000/* * Get gpm library and server version * * Copyright 2007-2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Compile and link with: gcc -lgpm * ********/ #include /* printf() */ #include /* gpm information */ int main() { char *ver; int intver; ver = Gpm_GetLibVersion(&intver); printf("lib: %s, %d\n",ver,intver); ver = Gpm_GetServerVersion(&intver); printf("srv: %s, %d\n",ver,intver); return 0; } gpm-1.20.7/src/prog/gpm-root.y000066400000000000000000001150161204257734200160720ustar00rootroot00000000000000/* * gpm-root.y - a default-handler for mouse events (gpm-Linux) * * Copyright 1994,1995 rubini@linux.it (Alessandro Rubini) * Copyright (C) 1998 Ian Zimmerman * * Tue, 5 Jan 1999 23:16:45 +0000, modified by James Troup : * (get_winsize): use /dev/tty0 not /dev/console. * gpm-root.y (f.debug): disable undocumented f.debug function because it uses a * file in /tmp in a fashion which invites symlink abuse. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ********/ %{ #include #include #include #include #include #include #include #include #include #include #include #include /* sigaction() */ #include /* pwd entries */ #include /* initgroups() */ #include /* KDGETMODE */ #include /* fstat() */ #include /* uname() */ #include /* winsize */ #include /* VT_ACTIVATE */ #include /* K_SHIFT */ #include #include #ifdef HAVE_SYS_SYSMACROS_H #include #else #define major(dev) (((unsigned) (dev))>>8) #define minor(dev) ((dev)&0xff) #endif #define GPM_NULL_DEV "/dev/null" #ifdef HAVE_LINUX_MAJOR_H #include #else #define VCS_MAJOR 7 #endif #define MAX_NR_USER_CONSOLES 63 /* needs __KERNEL__ */ #include "headers/message.h" #include "headers/gpm.h" #ifdef DEBUG #define YYDEBUG 1 #else #undef YYDEBUG #endif #define USER_CFG ".gpm-root" #define SYSTEM_CFG SYSCONFDIR "/gpm-root.conf" #define DEFAULT_FORE 7 #define DEFAULT_BACK 0 #define DEFAULT_BORD 7 #define DEFAULT_HEAD 7 /* These macros are useful to avoid curses. The program is unportable anyway */ #define GOTOXY(f,x,y) fprintf(f,"\x1B[%03i;%03iH",y,x) #define FORECOLOR(f,c) fprintf(f,"\x1B[%i;3%cm",(c)&8?1:22,colLut[(c)&7]+'0') #define BACKCOLOR(f,c) fprintf(f,"\x1B[4%cm",colLut[(c)&7]+'0') /* These defines are ugly hacks but work */ #define ULCORNER 0xc9 #define URCORNER 0xbb #define LLCORNER 0xc8 #define LRCORNER 0xbc #define HORLINE 0xcd #define VERLINE 0xba int colLut[]={0,4,2,6,1,5,3,7}; char *prgname; char *consolename; int run_status = GPM_RUN_STARTUP; struct winsize win; int disallocFlag=0; struct node {char *name; int flag;}; struct node tableMod[]= { {"shift", 1< T_STRING %token T_BACK T_FORE T_BORD T_HEAD %token T_BRIGHT T_COLOR T_NAME %token T_BUTTON %token T_FUNC T_FUN2 %type bright button %type menu file %type item items itemlist %% /* begin grammar #########################################################*/ file: /* empty */ {$$=cfgall=NULL;} | file button menu {$3->buttons=$2; $3->next=$1; $$=cfgall=$3;} ; button: T_BUTTON '1' {$$=GPM_B_LEFT;} | T_BUTTON '2' {$$=GPM_B_MIDDLE;} | T_BUTTON '3' {$$=GPM_B_RIGHT;} ; menu: '{' {$$=cfgcurrent=cfg_alloc();} configs itemlist '}' {$$=$2; $$->menu=$4;} ; configs: /* empty */ | configs cfgpair ; cfgpair: T_NAME T_STRING {cfgcurrent->title=$2;} | T_BACK T_COLOR {cfgcurrent->back=$2;} | T_FORE bright T_COLOR {cfgcurrent->fore=$3|$2;} | T_BORD bright T_COLOR {cfgcurrent->bord=$3|$2;} | T_HEAD bright T_COLOR {cfgcurrent->head=$3|$2;} ; bright: /* empty */ {$$=0;} | T_BRIGHT {$$=8;} ; itemlist: item items {$$=cfg_cat($1,$2);} ; items: /* empty */ {$$=NULL;} | items item {$$= $1 ? cfg_cat($1,$2) : $2;} ; item: T_STRING T_FUNC {$$=cfg_makeitem('F',$1,$2, NULL);} | T_STRING T_FUN2 T_STRING {$$=cfg_makeitem('2',$1,$2, $3);} | T_STRING menu {$$=cfg_makeitem('M',$1,NULL,$2);} ; %% /* end grammar ###########################################################*/ int yyerror(char *s) { fprintf(stderr,"%s:%s(%i): %s\n",prgname,cfgname,cfglineno,s); return 1; } int yywrap() { return 1; } struct tokenName { char *name; int token; int value; }; struct tokenName tokenList[] = { {"foreground",T_FORE,0}, {"background",T_BACK,0}, {"border", T_BORD,0}, {"head", T_HEAD,0}, {"name", T_NAME,0}, {"button", T_BUTTON,0}, {"black", T_COLOR,0}, {"blue", T_COLOR,1}, {"green", T_COLOR,2}, {"cyan", T_COLOR,3}, {"red", T_COLOR,4}, {"magenta", T_COLOR,5}, {"yellow", T_COLOR,6}, {"white", T_COLOR,7}, {"bright", T_BRIGHT,0}, {NULL,0,0} }; struct funcName { char *name; int token; int (*fun)(); }; struct funcName funcList[] = { {"f.debug",T_FUNC,f_debug}, {"f.fgcmd",T_FUN2,f_fgcmd}, {"f.bgcmd",T_FUN2,f_bgcmd}, {"f.jptty",T_FUN2,f_jptty}, {"f.mktty",T_FUNC,f_mktty}, {"f.menu",T_FUNC,f_menu}, {"f.lock",T_FUN2,f_lock}, /* "lock one", "lock all" */ {"f.load",T_FUNC,f_load}, {"f.free",T_FUNC,f_free}, {"f.time",T_FUNC,f_time}, {"f.pipe",T_FUN2,f_pipe}, {"f.nop",T_FUNC,NULL}, {NULL,0,NULL} }; /*---------------------------------------------------------------------*/ int yylex(void) { int c,i; char s[80]; struct tokenName *tn; struct funcName *fn; while(1) { i=0; switch(c=getc(cfgfile)) { case EOF: fclose(cfgfile); return 0; case '\"': do { s[i]=getc(cfgfile); if ((s[i])=='\n') { yyerror("unterminated string"); cfglineno++; } if (s[i]=='\\') s[i]=getc(cfgfile); } /* get '"' as '\"' */ while (s[i++]!='\"' && s[i-2] !='\\') ; s[i-1]=0; yylval.string=(char *)strdup(s); return T_STRING; case '#': while ( (c=getc(cfgfile)!='\n') && c!=EOF) ; case '\n': cfglineno++; case ' ': /* fall through */ case '\t': continue; default: if (!isalpha(c)) return(c); } /* get a single word and convert it */ do { s[i++]=c; } while (isalnum(c=getc(cfgfile)) || c=='.'); ungetc(c,cfgfile); s[i]=0; for (tn=tokenList; tn->name; tn++) if (tn->name[0]==s[0] && !strcmp(tn->name,s)) { yylval.silly=tn->value; return tn->token; } for (fn=funcList; fn->name; fn++) if (fn->name[0]==s[0] && !strcmp(fn->name,s)) { yylval.fun=fn->fun; return fn->token; } yylval.string=(char *)strdup(s); return T_STRING; } } /*---------------------------------------------------------------------*/ void cfg_free(Draw *what) { Draw *ptr; DrawItem *item; for (ptr=what; ptr; ptr=ptr->next) { if (ptr->title) free(ptr->title); for (item=ptr->menu; item; item=item->next) { if (item->name) free(item->name); if (item->arg) free(item->arg); if (item->type=='M' && item->clientdata) { ((Draw *)(item->clientdata))->next=NULL; /* redundant */ cfg_free(item->clientdata); } if (item->clientdata) free(item->clientdata); } } } /*---------------------------------------------------------------------*/ /* malloc an empty Draw */ Draw *cfg_alloc(void) { Draw *new=calloc(1,sizeof(Draw)); if (!new) return NULL; new->back=DEFAULT_BACK; new->fore=DEFAULT_FORE; new->bord=DEFAULT_BORD; new->head=DEFAULT_HEAD; return new; } /*---------------------------------------------------------------------*/ /* malloc an empty DrawItem and fill it */ DrawItem *cfg_makeitem(int mode, char *msg, int(*fun)(), void *detail) { DrawItem *new=calloc(1,sizeof(DrawItem)); if (!new) return NULL; new->name=(char *)strdup(msg); new->type=mode; switch(mode) { case '2': /* a function with one arg */ new->arg=(char *)strdup(detail); /* fall through */ case 'F': /* a function without args */ new->fun=fun; if (fun) fun(F_CREATE,new); break; case 'M': new->clientdata=detail; new->fun=f_menu; break; default: fprintf(stderr,"%s: unknown item type (can't happen)\n",prgname); } return new; } /*---------------------------------------------------------------------*/ /* concatenate two item lists */ DrawItem *cfg_cat(DrawItem *d1, DrawItem *d2) { DrawItem *tmp; for (tmp=d1; tmp->next; tmp=tmp->next) ; tmp->next=d2; return d1; } /*====================================================================*/ void f__fix(struct passwd *pass) { if (setgid(pass->pw_gid) < 0 || initgroups(pass->pw_name, pass->pw_gid) < 0 || setuid(pass->pw_uid) < 0) exit(1); setenv("HOME", pass->pw_dir, 1); setenv("LOGNAME", pass->pw_name,1); setenv("USER", pass->pw_name,1); } /*---------------------------------------------------------------------*/ static int f_debug_one(FILE *f, Draw *draw) { DrawItem *ip; static int tc=0; int i; #define LINE(args) for(i=0;ibuttons,draw->width,draw->height)); LINE((f,"UID %i\n",draw->uid)); LINE((f,"fore %i - back %i\n",draw->fore,draw->back)); LINE((f,"bord %i - head %i\n",draw->bord,draw->head)); LINE((f,"---> \"%s\" %li\n",draw->title,(long)(draw->mtime))); for (ip=draw->menu; ip; ip=ip->next) { LINE((f," %i \"%s\" (%p)\n",ip->type,ip->name,ip->fun)); if (ip->fun == f_menu) { tc++; f_debug_one(f,(Draw *)ip->clientdata); tc--; } } #undef LINE return 0; } int f_debug(int mode, DrawItem *self, int uid) { #if 0 /* Disabled on account of security concerns; the way * "/tmp/root-debug" is used is gratuitously * open to symlink abuse */ FILE *f; Draw *dp; switch (mode) { case F_POST: if (!(f=fopen("/tmp/root-debug","a"))) return 1; for(dp=drawList; dp; dp=dp->next) f_debug_one(f,dp); fprintf(f,"\n\n"); fclose(f); case F_CREATE: case F_INVOKE: break; } #endif /* 0 */ return 0; } /*---------------------------------------------------------------------*/ int f_fgcmd(int mode, DrawItem *self, int uid) { switch (mode) { case F_CREATE: case F_POST: break; case F_INVOKE: ; /* MISS */ } return 0; } /*---------------------------------------------------------------------*/ int f_bgcmd(int mode, DrawItem *self, int uid) { int i; struct passwd *pass; switch (mode) { case F_CREATE: case F_POST: break; case F_INVOKE: switch(fork()) { case -1: gpm_report(GPM_PR_ERR, "fork(): %s", strerror(errno)); return 1; case 0: pass=getpwuid(uid); if (!pass) exit(1); f__fix(pass); /* setgid(), setuid(), setenv(), ... */ close(0); close(1); close(2); open("/dev/null",O_RDONLY); /* stdin */ open(consolename,O_WRONLY); /* stdout */ dup(1); /* stderr */ int open_max = sysconf(_SC_OPEN_MAX); if (open_max == -1) open_max = 1024; for (i=3;iarg,(char *)NULL); exit(1); /* shouldn't happen */ default: return 0; } } return 0; } /*---------------------------------------------------------------------*/ int f_jptty(int mode, DrawItem *self, int uid) { int i,fd; switch (mode) { case F_CREATE: case F_POST: break; case F_INVOKE: i=atoi(self->arg); fd=open(consolename,O_RDWR); if (fd<0) { gpm_report(GPM_PR_ERR, "%s: %s",consolename, strerror(errno)); return 1; } /*if*/ if (ioctl(fd, VT_ACTIVATE, i)<0) { gpm_report(GPM_PR_ERR, "%s: %s", consolename,strerror(errno)); return 1; } /*if*/ if (ioctl(fd, VT_WAITACTIVE, i)<0) { gpm_report(GPM_PR_ERR, "%s: %s", consolename,strerror(errno)); return 1; } default: return 0; } return 0; /* silly gcc -Wall */ } /*---------------------------------------------------------------------*/ /* This array registers spawned consoles */ static int consolepids[1+MAX_NR_USER_CONSOLES]; int f_mktty(int mode, DrawItem *self, int uid) { int fd, pid; int vc; char name[10]; switch (mode) { case F_CREATE: self->arg=malloc(8); case F_POST: break; case F_INVOKE: fd=open(consolename,O_RDWR); if (fd<0) { gpm_report(GPM_PR_ERR,"%s: %s",consolename, strerror(errno)); return 1; } /*if*/ if (ioctl(fd, VT_OPENQRY, &vc)<0) { gpm_report(GPM_PR_ERR, "%s: %s",consolename, strerror(errno)); return 1; } /*if*/ switch(pid=fork()) { case -1: gpm_report(GPM_PR_ERR, "fork(): %s", strerror(errno)); return 1; case 0: /* child: exec getty */ sprintf(name,"tty%i",vc); execl("/sbin/mingetty","mingetty",name,(char *)NULL); exit(1); /* shouldn't happen */ default: /* father: jump to the tty */ gpm_report(GPM_PR_INFO,"Registering child %i on console %i" ,pid,vc); consolepids[vc]=pid; sprintf(self->arg,"%i",vc); return f_jptty(mode,self,uid); } default: return 0; } return 0; } /*---------------------------------------------------------------------*/ int f_menu(int mode, DrawItem *self, int uid) { return 0; /* just a placeholder, recursion is performed in main() */ } /*---------------------------------------------------------------------*/ int f_lock(int mode, DrawItem *self, int uid) { #if 0 /* some kind of interesting ...: if never */ int all; static DrawItem msg = { 0, 10, "Enter your password to unlock", NULL, NULL, NULL, NULL }; static Draw switch (mode) { case F_CREATE: /* either "one" or anything else */ if (strcmp(self->arg,"one")) self->arg[0]='a'; case F_POST: break; case F_INVOKE: /* the biggest of all... */ } #endif return 0; } /*---------------------------------------------------------------------*/ int f_load(int mode, DrawItem *self, int uid) { FILE *f; double l1,l2,l3; l1=l2=l3=0.0; switch (mode) { case F_CREATE: /* modify name, just to fake its length */ self->clientdata=malloc(strlen(self->name)+20); self->name=realloc(self->name,strlen(self->name)+20); strcpy(self->clientdata,self->name); strcat(self->clientdata," %5.2f %5.2f %5.2f"); sprintf(self->name,self->clientdata,l1,l2,l3); break; case F_POST: if (!(f=fopen("/proc/loadavg","r"))) return 1; fscanf(f,"%lf %lf %lf",&l1,&l2,&l3); sprintf(self->name,self->clientdata,l1,l2,l3); fclose(f); case F_INVOKE: break; } return 0; } /*---------------------------------------------------------------------*/ int f_free(int mode, DrawItem *self, int uid) { FILE *f; long l1,l2; char s[80]; l1=l2=0; switch (mode) { case F_CREATE: /* modify name, just to fake its length */ self->clientdata=malloc(strlen(self->name)+30); self->name=realloc(self->name,strlen(self->name)+30); strcpy(self->clientdata,self->name); strcat(self->clientdata," %5.2fM mem + %5.2fM swap"); sprintf(self->name,self->clientdata,(double)l1,(double)l2); break; case F_POST: if (!(f=fopen("/proc/meminfo","r"))) return 1; fgets(s,80,f); fgets(s,80,f); sscanf(s,"%*s %*s %*s %li",&l1); fgets(s,80,f); sscanf(s,"%*s %*s %*s %li",&l2); sprintf(self->name,self->clientdata, (double)l1/1024/1024,(double)l2/1024/1024); fclose(f); case F_INVOKE: break; } return 0; } /*---------------------------------------------------------------------*/ int f_time(int mode, DrawItem *self, int uid) { char s[128]; struct tm *broken; time_t t; time(&t); broken=localtime(&t); switch (mode) { case F_CREATE: /* modify name, just to fake its length */ self->clientdata=self->name; strftime(s,110,self->clientdata,broken); strcat(s,"1234567890"); /* names can change length */ self->name=(char *)strdup(s); /* rewrite the right string */ strftime(self->name,110,self->clientdata,broken); break; case F_POST: strftime(self->name,120,self->clientdata,broken); case F_INVOKE: break; } return 0; } /*---------------------------------------------------------------------*/ int f_pipe(int mode, DrawItem *self, int uid) { return 0; } /*====================================================================*/ int fixone(Draw *ptr, int uid) { int hei,wid; DrawItem *item; ptr->uid=uid; hei=0; wid= ptr->title? strlen(ptr->title)+2 : 0; /* calculate width and height */ for (item=ptr->menu; item; item=item->next) { hei++; wid= wid > strlen(item->name) ? wid : strlen(item->name); } ptr->height=hei+2; ptr->width=wid+2; /* fix paddings and recurse */ for (item=ptr->menu; item; item=item->next) { item->pad=(ptr->width-strlen(item->name ? item->name : ""))/2; if (item->fun==f_menu) fixone((Draw *)item->clientdata,uid); } return 0; } /* read menus from a file, and return a list or NULL */ Draw *cfg_read(int uid) { Draw *ptr; if (!(cfgfile=fopen(cfgname,"r"))) { gpm_report(GPM_PR_ERR, "%s: %s", cfgname, strerror(errno)); return NULL; } gpm_report(GPM_PR_INFO,"Reading file %s",cfgname); cfglineno=1; if (yyparse()) { cfg_free(cfgall); cfgall=NULL; return NULL; } /* handle recursion */ for (ptr=cfgall; ptr; ptr=ptr->next) { fixone(ptr,uid); } return cfgall; } /*---------------------------------------------------------------------*/ /* the return value tells whether it has been newly loaded or not */ int getdraw(int uid, int buttons, time_t mtime1, time_t mtime2) { struct passwd *pass; struct stat buf; Draw *new, *np, *op, *pp; int retval=0; time_t mtime; gpm_report(GPM_PR_DEBUG,"getdraw: %i %i %li %li",uid,buttons,mtime1,mtime2); pass=getpwuid(uid); /* deny personal cfg to root for security reasons */ if (pass==NULL || !uid || !opt_user) { mtime=mtime2; uid=-1; strcpy(cfgname,SYSTEM_CFG); } else { mtime=mtime1; strcpy(cfgname,pass->pw_dir); strcat(cfgname,"/" USER_CFG); } if (stat(cfgname,&buf)==-1) { gpm_report(GPM_PR_DEBUG,"stat (%s) failed",cfgname); /* try the system wide */ mtime=mtime2; uid = -1; strcpy(cfgname,SYSTEM_CFG); if (stat(cfgname,&buf)==-1) { gpm_report(GPM_PR_ERR,"stat (%s) failed",cfgname); return 0; } } if (buf.st_mtime <= mtime) return 0; /* else, read the new drawing tree */ new=cfg_read(uid); if (!new) return 0; /* scan old data to remove duplicates */ for (np=pp=new; np; pp=np, np=np->next) { np->mtime=buf.st_mtime; if (np->buttons==buttons) retval++; for (op=drawList; op; op=op->next) if (op->uid==np->uid && op->buttons==np->buttons) op->buttons=0; /* mark for deletion */ } /* chain in */ pp->next=drawList; drawList=new; /* actually remove fake entries */ for (np=drawList; np; pp=np, np=np->next) if (!np->buttons) { pp->next=np->next; np->next=NULL; cfg_free(np); np=pp; } return retval; /* found or not */ } /*---------------------------------------------------------------------*/ Draw *retrievedraw(int uid, int buttons) { Draw *drawPtr, *genericPtr=NULL; /* retrieve a drawing by scanning the list */ do { for (drawPtr=drawList; drawPtr; drawPtr=drawPtr->next) { if (drawPtr->uid==uid && drawPtr->buttons==buttons) break; if (drawPtr->uid==-1 && drawPtr->buttons==buttons) genericPtr=drawPtr; } } while (getdraw(uid,buttons, drawPtr ? drawPtr->mtime : 0, genericPtr ? genericPtr->mtime :0)); return drawPtr ? drawPtr : genericPtr; } /*=====================================================================*/ int usage(void) { printf( GPM_MESS_VERSION "\n" "Usage: %s [options]\n",prgname); printf(" Valid options are\n" " -m modifier to use\n" " -u inhibit user configuration files\n" " -D don't auto-background and run as daemon\n" " -V increase amount of logged messages\n" ); return 1; } /*------------*/ int getmask(char *arg, struct node *table) { int last=0, value=0; char *cur; struct node *n; if (isdigit(arg[0])) return atoi(arg); while (1) { while (*arg && !isalnum(*arg)) arg++; /* skip delimiters */ cur=arg; while(isalnum(*cur)) cur++; /* scan the word */ if (!*cur) last++; *cur=0; for (n=table;n->name;n++) if (!strcmp(n->name,arg)) { value |= n->flag; break; } if(!n->name) fprintf(stderr,"%s: Incorrect flag \"%s\"\n",prgname,arg); if (last) break; cur++; arg=cur; } return value; } /*------------*/ int cmdline(int argc, char **argv) { int opt; run_status = GPM_RUN_STARTUP; while ((opt = getopt(argc, argv,"m:uDV::")) != -1) { switch (opt) { case 'm': opt_mod=getmask(optarg, tableMod); break; case 'u': opt_user=0; break; case 'D': run_status = GPM_RUN_DEBUG; break; case 'V': /*gpm_debug_level += (0==optarg ? 1 : strtol(optarg,0,0)); */ break; default: return 1; } } return 0; } /*------------* * This buffer is passed to set_selection, and the only meaningful value * is the last one, which is the mode: 4 means "clear_selection". * however, the byte just before the 1th short must be 2 which denotes * the selection-related stuff in ioctl(TIOCLINUX). */ static unsigned short clear_sel_args[6]={0, 0,0, 0,0, 4}; static unsigned char *clear_sel_arg= (unsigned char *)clear_sel_args+1; /*------------*/ static inline void scr_dump(int fd, FILE *f, unsigned char *buffer, int vc) { int dumpfd; char dumpname[20]; sprintf(dumpname,"/dev/vcsa%i",vc); dumpfd=open(dumpname,O_RDONLY); if (dumpfd<0) { gpm_report(GPM_PR_ERR,"%s: %s", dumpname, strerror(errno)); return; } /*if*/ clear_sel_arg[0]=2; /* clear_selection */ ioctl(fd,TIOCLINUX,clear_sel_arg); read(dumpfd,buffer,4); read(dumpfd,buffer+4,2*buffer[0]*buffer[1]); close(dumpfd); } /*------------*/ static inline void scr_restore(int fd, FILE *f, unsigned char *buffer, int vc) { int x,y, dumpfd; char dumpname[20]; x=buffer[2]; y=buffer[3]; /* WILL NOT WORK WITH DEVFS! FIXME! */ sprintf(dumpname,"/dev/vcsa%i",vc); dumpfd=open(dumpname,O_WRONLY); if (dumpfd<0) { gpm_report(GPM_PR_ERR,"%s: %s", dumpname, strerror(errno)); return; } /*if*/ clear_sel_arg[0]=2; /* clear_selection */ ioctl(fd,TIOCLINUX,clear_sel_arg); write(dumpfd,buffer,4+2*buffer[0]*buffer[1]); close(dumpfd); } /*===================================================================*/ /* post and unpost menus from the screen */ static int postcount; static Posted *activemenu; #if __BYTE_ORDER == __BIG_ENDIAN #define bigendian 1 #else #define bigendian 0 #endif Posted *postmenu(int fd, FILE *f, Draw *draw, int x, int y, int console) { Posted *new; DrawItem *item; unsigned char *dump; unsigned char *curr, *curr2; int i; short lines,columns; new=calloc(1,sizeof(Posted)); if (!new) return NULL; new->draw=draw; new->dump=dump=malloc(opt_buf); scr_dump(fd,f,dump,console); lines=dump[0]; columns=dump[1]; i=(columns*dump[3]+dump[2])*2+1; /* where to get it */ if (i<0) i=1; new->colorcell=dump[4+i-bigendian]; gpm_report(GPM_PR_DEBUG,"Colorcell=%02x (at %i,%i = %i)", new->colorcell,dump[2],dump[3],i-bigendian); /* place the box relative to the mouse */ if (!postcount) x -= draw->width/2; else x+=2; y++; /* fit inside the screen */ if (x<1) x=1; if (x+draw->width >= columns) x=columns-1-draw->width; if (y+draw->height > lines+1) y=lines+1-draw->height; new->x=x; new->X=x+draw->width-1; new->y=y; new->Y=y+draw->height-1; /* these definitions are dirty hacks, but they help in writing to the screen */ #if __BYTE_ORDER == __BIG_ENDIAN #define PUTC(c,f,b) (*(curr++)=((b)<<4)+(f),*(curr++)=(c)) #else #define PUTC(c,f,b) (*(curr++)=(c),*(curr++)=((b)<<4)+(f)) #endif #define PUTS(s,f,b) for(curr2=s;*curr2;PUTC(*(curr2++),f,b)) #define GOTO(x,y) (curr=dump+4+2*((y)*columns+(x))) x--; y--; /* /dev/vcs is zero based */ ioctl(fd,TCXONC,TCOOFF); /* inhibit further prints */ dump=malloc(opt_buf); memcpy(dump,new->dump,opt_buf); /* dup the buffer */ /* top border */ GOTO(x,y); PUTC(ULCORNER,draw->bord,draw->back); for (i=0; iwidth; i++) PUTC(HORLINE,draw->bord,draw->back); PUTC(URCORNER,draw->bord,draw->back); if (draw->title) { GOTO(x+(draw->width-strlen(draw->title))/2,y); PUTC(' ',draw->head,draw->back); PUTS(draw->title,draw->head,draw->back); PUTC(' ',draw->head,draw->back); } /* sides and items */ for (item=draw->menu; y++, item; item=item->next) { if (item->fun) (*(item->fun))(F_POST,item); GOTO(x,y); PUTC(VERLINE,draw->bord,draw->back); for (i=0;ipad;i++) PUTC(' ',draw->fore,draw->back); PUTS(item->name,draw->fore,draw->back); i+=strlen(item->name); while (i++width) PUTC(' ',draw->fore,draw->back); PUTC(VERLINE,draw->bord,draw->back); } /* bottom border */ GOTO(x,y); PUTC(LLCORNER,draw->bord,draw->back); for (i=0; iwidth; i++) PUTC(HORLINE,draw->bord,draw->back); PUTC(LRCORNER,draw->bord,draw->back); scr_restore(fd,f,dump,console); free(dump); #undef PUTC #undef PUTS #undef GOTO new->prev=activemenu; activemenu=new; postcount++; return new; } Posted *unpostmenu(int fd, FILE *f, Posted *which, int vc) { Posted *prev=which->prev; scr_restore(fd,f,which->dump, vc); ioctl(fd,TCXONC,TCOON); /* activate the console */ free(which->dump); free(which); activemenu=prev; postcount--; return prev; } void reap_children(int signo) { int i, pid; pid=wait(&i); gpm_report(GPM_PR_INFO,"pid %i exited %i",pid,i); if (disallocFlag) gpm_report(GPM_PR_INFO,"Warning, overriding logout from %i",disallocFlag); for (i=1;i<=MAX_NR_USER_CONSOLES; i++) if (consolepids[i]==pid) { disallocFlag=i; consolepids[i]=0; gpm_report(GPM_PR_INFO,"Registering disallocation of console %i",i); break; } } void get_winsize(void) { int fd; if ((fd=open(consolename,O_RDONLY))<0) { fprintf(stderr,"%s: ",prgname); perror(consolename); exit(1); } ioctl(fd, TIOCGWINSZ, &win); opt_buf=win.ws_col*win.ws_row; close(fd); opt_buf +=4; /* 2:size, 1:terminator, 1:alignment */ opt_buf*=2; /* the new scrdump and /dev/vcsa returns color info as well */ } /*===================================================================*/ static int do_resize=0; #if defined(__GLIBC__) __sighandler_t winchHandler(int errno); #else /* __GLIBC__ */ void winchHandler(int errno); #endif /* __GLIBC__ */ int main(int argc, char **argv) { Gpm_Connect conn; Gpm_Event ev; int vc, fd=-1 ,uid=-1; FILE *f=NULL; struct stat stbuf; Draw *draw=NULL; DrawItem *item; char s[80]; int posty = 0, postx, postX; struct sigaction childaction; int evflag; int recursenow=0; /* not on first iteration */ prgname=argv[0]; consolename = Gpm_get_console(); setuid(0); /* if we're setuid, force it */ if (getuid()) { fprintf(stderr,"%s: Must be root\n", prgname); exit(1); } /* * Now, first of all we need to check that /dev/vcs is there. * But only if the kernel is new enough. vcs appeared in 1.1.82. * If an actual open fails, a message on syslog will be issued. */ { struct utsname linux_info; int v1,v2,v3; struct stat sbuf; if (uname(&linux_info)) { fprintf(stderr,"%s: uname(): %s\n",prgname,strerror(errno)); exit(1); } sscanf(linux_info.release,"%d.%d.%d",&v1,&v2,&v3); if (v1*1000000 + v2*1000 +v3 < 1001082) { fprintf(stderr,"%s: can't run with linux < 1.1.82\n",prgname); exit(1); } /* problems with devfs! FIXME! */ if (stat("/dev/vcs0",&sbuf)<0 && stat("/dev/vcs",&sbuf)<0) { fprintf(stderr,"%s: /dev/vcs0: %s\n",prgname,strerror(errno)); fprintf(stderr,"%s: do you have vcs devices? Refer to the manpage\n", prgname); exit(1); } else if (!S_ISCHR(sbuf.st_mode) || VCS_MAJOR != major(sbuf.st_rdev) || 0 != minor(sbuf.st_rdev)) { fprintf(stderr,"Your /dev/vcs device looks funny\n"); fprintf(stderr,"Refer to the manpage and possibly run the" "create_vcs script in gpm source directory\n"); exit(1); } } if (cmdline(argc,argv)) exit(usage()); openlog(prgname, LOG_PID|LOG_CONS, run_status == GPM_RUN_DAEMON ? LOG_DAEMON : LOG_USER); /* reap your zombies */ childaction.sa_handler=reap_children; #if defined(__GLIBC__) __sigemptyset(&childaction.sa_mask); #else /* __GLIBC__ */ childaction.sa_mask=0; #endif /* __GLIBC__ */ childaction.sa_flags=SA_INTERRUPT; /* need to break the select() call */ sigaction(SIGCHLD,&childaction,NULL); /*....................................... Connect and get your buffer */ conn.eventMask=GPM_DOWN; conn.defaultMask=GPM_MOVE; /* only ctrl-move gets the default */ conn.maxMod=conn.minMod=opt_mod; gpm_zerobased=1; for (vc=4; vc-->0;) { extern int gpm_tried; /* liblow.c */ gpm_tried=0; /* to enable retryings */ if (Gpm_Open(&conn,-1)!=-1) break; if (vc) sleep(2); } if (!vc) { gpm_report(GPM_PR_OOPS,"can't open mouse connection"); } conn.eventMask=~0; /* grab everything away form selection */ conn.defaultMask=GPM_MOVE & GPM_HARD; conn.minMod=0; conn.maxMod=~0; chdir("/"); get_winsize(); /*....................................... Go to background */ if (run_status != GPM_RUN_DEBUG) { switch(fork()) { case -1: gpm_report(GPM_PR_OOPS,"fork()"); /* error */ case 0: run_status = GPM_RUN_DAEMON; break; /* child */ default: _exit(0); /* parent */ } /* redirect stderr to /dev/console -- avoided now. we should really cleans this more up! */ fclose(stdin); fclose(stdout); if (!freopen(GPM_NULL_DEV,"w",stderr)) { gpm_report(GPM_PR_OOPS,"freopen(stderr)"); } if (setsid()<0) gpm_report(GPM_PR_OOPS,"setsid()"); } /*if*/ /*....................................... Loop */ while((evflag=Gpm_GetEvent(&ev))!=0) { if (do_resize) {get_winsize(); do_resize--;} if (disallocFlag) { struct utmp *uu; struct utmp u; char s[8]; int i=0; gpm_report(GPM_PR_INFO,"Disallocating %i",disallocFlag); ioctl(fileno(stdin),VT_DISALLOCATE,&i); /* all of them */ sprintf(s,"tty%i",disallocFlag); setutent(); strncpy(u.ut_line, s, sizeof(u.ut_line)); if ((uu = getutline(&u)) != 0) { uu->ut_type = DEAD_PROCESS ; pututline(uu); } disallocFlag=0; } if (evflag==-1) continue; /* no real event */ /* get rid of spurious events */ if (ev.type&GPM_MOVE) continue; vc=ev.vc; gpm_report(GPM_PR_DEBUG,"%s: event on console %i at %i, %i", prgname,ev.vc,ev.x,ev.y); if (!recursenow) /* don't open on recursion */ { sprintf(s,"/dev/tty%i",ev.vc); if (stat(s,&stbuf)==-1) continue; uid = stbuf.st_uid; gpm_report(GPM_PR_DEBUG,"uid = %i",uid); draw=retrievedraw(uid,ev.buttons); if (!draw) continue; if (stat(s,&stbuf)==-1 || !(f=fopen(s,"r+"))) /* used to draw */ { gpm_report(GPM_PR_ERR, "%s: %s", s, strerror(errno)); continue; } if ((fd=open(s,O_RDWR))<0) /* will O_RDONLY be enough? */ { gpm_report(GPM_PR_ERR, "%s: %s", s, strerror(errno)); exit(1); } /* now change your connection information and manage the console */ Gpm_Open(&conn,-1); uid=stbuf.st_uid; } /* the task now is drawing the box from user data */ if (!draw) { /* itz Thu Jul 2 00:02:53 PDT 1998 this cannot happen, see continue statement above?!? */ gpm_report(GPM_PR_ERR,"NULL menu ptr while drawing"); continue; } postmenu(fd,f,draw,ev.x,ev.y,vc); while(Gpm_GetEvent(&ev)>0 && ev.vc==vc) { Gpm_FitEvent(&ev); if (ev.type&GPM_DOWN) break; /* we're done */ Gpm_DrawPointer(ev.x,ev.y,fd); } gpm_report(GPM_PR_DEBUG,"%i - %i",posty,ev.y); /* ok, redraw, close and return waiting */ gpm_report(GPM_PR_DEBUG,"Active is %p",activemenu->draw); posty=activemenu->y; postx=activemenu->x; postX=activemenu->X; recursenow=0; item=NULL; /* by default */ posty=ev.y-posty; if (postx<=ev.x && ev.x<=postX) /* look for it */ { for (item=draw->menu; posty-- && item; item=item->next) gpm_report(GPM_PR_DEBUG,"item %s (%p)",item->name, item->fun); if (item && item->fun && item->fun==f_menu) { recursenow++; draw=item->clientdata; continue; } } /* unpost them all */ while (unpostmenu(fd,f,activemenu,vc)) ; close(fd); fclose(f); Gpm_Close(); recursenow=0; /* just in case... */ /* invoke the item */ if (item && item->fun) (*(item->fun))(F_INVOKE,item,uid); } /*....................................... Done */ while (Gpm_Close()) ; /* close all the stack */ exit(0); } /* developers chat: * author1 (possibly alessandro): "This is because Linus uses 4-wide tabstops, forcing me to use the same default to manage kernel sources" * ian zimmermann (alias itz) on Wed Jul 1 23:28:13 PDT 1998: "I don't mind what anybody's physical tab size is, but when I load it into the editor I don't want any wrapping lines." * nico schottelius (january 2002): "Although Linux document /usr/src/linux/Documentation/CodingStyle is mostly correct, I agree with itz to avoid wrapping lines. Merging 4(alessandro) /2(itz) spaces makes 3 which is the current standard." */ /* Local Variables: */ /* tab-width:3 */ /* c-indent-level: 3 */ /* End: */ gpm-1.20.7/src/prog/hltest.c000066400000000000000000000331601204257734200156020ustar00rootroot00000000000000/* * hltest.c - a demo program for the high-level library. * * Copyright 1995 rubini@linux.it (Alessandro Rubini) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ #include #include #include #include #include #include #include #include #include #include #include #include "headers/gpm.h" #ifndef min #define min(a,b) ((a)>(b)?(b):(a)) #define max(a,b) ((a)>(b)?(a):(b)) #endif /* * If you happen to read this source to get insights about mouse * management, note that most of this file is concerned with user * interface and screen handling. The mouse-related part begines * at "MOUSE-BEGIN" (so you can use your editor capabilities to * look for strings). * * If you use parts of this program in your own one, I'd like some credit. * If you want to overcome the gnu copyleft though using parts of this * program, just tell me about it, and I'll change the copyright. */ /* this is used as clientdata */ typedef struct WinInfo { char color; int number; short hei,wid; Gpm_Roi *roi; } WinInfo; WinInfo left_cldata; /* for the msg bar */ int colors[]={0x40,0x60,0x20,0x30,0x47,0x67,0x27,0x37}; #define NR_COLORS 8 #define LEFTWID 22 /* Dirty: use escape sequences and /dev/vcs (don't want to learn curses) */ #define CLEAR (printf("\x1b[H\x1b[J"),fflush(stdout)) int dev_vcs=-1; int wid,hei,vcsize; /* * These two functions are only involved in the user interface: * dump and restore the screen to keep things up to date. */ unsigned short clear_sel_args[6]={0, 0,0, 0,0, 4}; unsigned char *clear_sel_arg= (unsigned char *)clear_sel_args+1; static inline int scrdump(char *buf) { clear_sel_arg[0]=2; /* clear_selection */ ioctl(fileno(stdin),TIOCLINUX,clear_sel_arg); lseek (dev_vcs, 0, SEEK_SET); return read(dev_vcs,buf,vcsize); } static inline int scrrestore(char *buf) { clear_sel_arg[0]=2; /* clear_selection */ ioctl(fileno(stdin),TIOCLINUX,clear_sel_arg); lseek (dev_vcs, 0, SEEK_SET); return write(dev_vcs,buf,vcsize); } /* I don't like curses, so I'm doing low level stuff here */ static void raw(void) { struct termios it; tcgetattr(fileno(stdin),&it); it.c_lflag &= ~(ICANON); it.c_lflag &= ~(ECHO); it.c_iflag &= ~(INPCK|ISTRIP|IXON); it.c_oflag &= ~(OPOST); it.c_cc[VMIN] = 1; it.c_cc[VTIME] = 0; tcsetattr(fileno(stdin),TCSANOW,&it); } static void noraw(void) { struct termios it; tcgetattr(fileno(stdin),&it); it.c_lflag |= ICANON; it.c_lflag |= ECHO; it.c_iflag |= IXON; it.c_oflag |= OPOST; tcsetattr(fileno(stdin),TCSANOW,&it); } /* this one is the signal handler */ void killed(int signo) { CLEAR; fprintf(stderr,"hltest: killed by signal %i\r\n",signo); noraw(); exit(0); } char *dumpbuf; char *dumpbuf_clean; #define DUMPCHAR(x,y) (dumpbuf+4+2*((y)*wid+(x))) #define DUMPATTR(x,y) (dumpbuf+5+2*((y)*wid+(x))) /* * This function draws one window on top of the others */ static inline int drawwin(Gpm_Roi *which) { char *curr; char name[5]; #define GOTO(x,y) (curr=DUMPCHAR(x,y)) #define PUTC(c,a) (*(curr++)=(c),*(curr++)=a) #define ULCORNER 0xc9 #define URCORNER 0xbb #define LLCORNER 0xc8 #define LRCORNER 0xbc #define HORLINE 0xcd #define VERLINE 0xba int attrib=((WinInfo *)which->clientdata)->color; int i,j; /* top border */ GOTO(which->xMin,which->yMin); PUTC(ULCORNER,attrib); for (i=which->xMin+1; ixMax; i++) PUTC(HORLINE,attrib); PUTC(URCORNER,attrib); /* sides and items */ for (j=which->yMin+1;jyMax;j++) { GOTO(which->xMin,j); PUTC(VERLINE,attrib); for (i=which->xMin+1; ixMax; i++) PUTC(' ',attrib); PUTC(VERLINE,attrib); } /* bottom border */ GOTO(which->xMin,which->yMax); PUTC(LLCORNER,attrib); for (i=which->xMin+1; ixMax; i++) PUTC(HORLINE,attrib); PUTC(LRCORNER,attrib); /* name */ sprintf(name,"%3i",((WinInfo *)which->clientdata)->number); GOTO(which->xMin+1,which->yMin+1); for (i=0;name[i];i++) PUTC(name[i],attrib); return 0; } /* and finally, draw them all (recursive) */ int drawthemall(Gpm_Roi *this) { if (this->next) drawthemall(this->next); else memcpy(dumpbuf,dumpbuf_clean,vcsize); return drawwin(this); } /* * This one writes all the messages in the right position */ int newmsg(int window, char *msg) { static char *data=NULL; static char **strings; static int current, last; static time_t t; int i,j; /* first time, alloc material */ if (!data) { data=malloc((LEFTWID-2)*(hei-2)); strings=malloc(hei*sizeof(char *)); if(!data || !strings) { perror("malloc()"); exit(1); } memset(data,' ',(LEFTWID-2)*(hei-2)); for (i=0;inumber; int delta; if (ePtr->type&GPM_ENTER) { newmsg(number,"enter"); return 0; } if (ePtr->type&GPM_LEAVE) { newmsg(number,"leave"); return 0; } if (ePtr->type&GPM_MOVE) { newmsg(number,"move"); return 0; } if (ePtr->type&GPM_DOWN) {newmsg(number,"press"); return 0; } if (ePtr->type&GPM_DRAG) { newmsg(number,"drag"); if (!(ePtr->buttons&GPM_B_LEFT)) return 0; /* * Implement window motion */ delta=0; if (ePtr->dx < 0) delta=max(ePtr->dx,LEFTWID-info->roi->xMin); else if (ePtr->dx > 0) delta=min(ePtr->dx,wid-1 - info->roi->xMax); if (delta) { info->roi->xMin+=delta; info->roi->xMax+=delta; } delta=0; if (ePtr->dy < 0) delta=max(ePtr->dy,0 - info->roi->yMin); else if (ePtr->dy > 0) delta=min(ePtr->dy,hei-1 - info->roi->yMax); if (delta) { info->roi->yMin+=delta; info->roi->yMax+=delta; } Gpm_RaiseRoi(info->roi,NULL); dorefresh(); return 0; } newmsg(number,"release"); /* * "up" events can be double or triple, * moreover, they can happen out of the region */ if (!(ePtr->type&GPM_SINGLE)) return 0; if (ePtr->x<0 || ePtr->y<0) return 0; if (ePtr->x>info->wid-1 || ePtr->y>info->hei-1) return 0; /* * Ok, it is has been a double click, and it is within our area */ switch(ePtr->buttons) { case GPM_B_LEFT: Gpm_RaiseRoi(info->roi,NULL); break; case GPM_B_MIDDLE: Gpm_LowerRoi(info->roi,NULL); break; case GPM_B_RIGHT: Gpm_PopRoi(info->roi); free(info); break; } dorefresh(); return 0; } /* * the following function creates a window, with the four corners as * specified by the arguments. */ int wincreate(int x, int y, int X, int Y) { static int winno=0; Gpm_Roi*roi; WinInfo *cldata; int tmp; if (X=wid) X=wid-1; if (Y>=hei) Y=hei-1; if (xmaxMod=0; /* put a backpointer */ cldata->roi=roi; /* init the window */ winno++; cldata->number=winno; cldata->color=colors[winno%NR_COLORS]; cldata->wid=X-x+1; cldata->hei=Y-y+1; dorefresh(); return 0; } /* * This extra handler is only used for the background and left bar */ int xhandler(Gpm_Event *ePtr, void *clientdata) { static int x=0,y=0; int back=0; char msg[32]; msg[0]='\0'; if (ePtr->type==GPM_MOVE) return 0; if (!clientdata) strcpy(msg,"bg"),back++; if (ePtr->type&GPM_DOWN) { strcat(msg," down"); if (back) x=ePtr->x,y=ePtr->y; } if (ePtr->type&GPM_UP) { strcat(msg," up"); if (back) wincreate(x,y,ePtr->x,ePtr->y); } newmsg(0,msg); /* GPM_DRAWPOINTER(ePtr); useless, gpm_visiblepointer is set to 1 BUG */ return 0; } /*============================================================ MOUSE-END */ /* * This function is not interesting, it is only involved in setting up * things. The real work has already been done. */ int main(int argc, char **argv) { Gpm_Connect conn; char *s, t[4]; char devname[32]; /* very secure buffer ... */ int c; int vc; struct winsize win; if (argc>1) { fprintf(stderr,"%s: This program is meant to be interactive, " "no option is needed\n",argv[0]); exit(1); } if (!(s=ttyname(fileno(stdin)))) { perror("stdin"); exit(1); } /* retrieve everything */ conn.eventMask=~0; conn.defaultMask=GPM_MOVE|GPM_HARD; conn.maxMod=~0; conn.minMod=0; if (sscanf(s,"/dev/tty%d%s",&vc,t)!=1) { if (sscanf(s,"/dev/vc/%d%s",&vc,t)!=1) { fprintf(stderr,"stdin: not a system console\n"); exit(1); } } /* open your dump/restore buffers */ sprintf(devname,"/dev/vcs%i",vc); if ((dev_vcs=open(devname,O_RDWR))<0) { perror(devname); sprintf(devname,"/dev/vcc/%i",vc); if ((dev_vcs=open(devname,O_RDWR))<0) { perror(devname); exit(1); } } if (Gpm_Open(&conn,0) == -1) { fprintf(stderr,"%s: Can't open mouse connection\n",argv[0]); exit(1); } Gpm_Close(); /* don't be clubbered by events now */ signal(SIGWINCH,killed); /* don't handle winchange */ signal(SIGINT,killed); /* control-C kills us */ CLEAR; printf("\t\t\t This program is a demonstration of the use of the\n" "\t\t\t high level gpm library. It is a tiny application\n" "\t\t\t not really useful, but you may be interested in\n" "\t\t\t reading the source (as well as the docs).\n\n" "\t\t\tWorkings:\n" "\t\t\t You can create windows by clicking on the background\n" "\t\t\t and dragging out the desired size (minimun is 5x3).\n" "\t\t\t The first 20 columns are reserved for messages.\n" "\t\t\t there is always one invisible window on the backgruond\n" "\t\t\t which gets shift-mouse events. All the others are only\n" "\t\t\t sensitive to mouse-only events (the library leaves you\n" "\t\t\t free about that, but this program makes things simple\n" "\n" "\t\t\t The left button raises the window\n" "\t\t\t The middle (if any) lowers the window\n" "\t\t\t The right one destroys the window\n\n" "\t\t\t Keyboard focus is changed by mouse motion\n" "\t\t\t Control-C kills the program\n\n" "\t\t\tEnjoy\n\t\t\t The Author\n\n" ); /* Ok, now retrieve window info, go to raw mode, and start it all */ ioctl(fileno(stdin), TIOCGWINSZ, &win); wid=win.ws_col; hei=win.ws_row; vcsize=hei*wid*2+4; dumpbuf=malloc(vcsize); dumpbuf_clean=malloc(vcsize); if (!dumpbuf || ! dumpbuf_clean) { perror("malloc()"); exit(1); } scrdump(dumpbuf_clean); gpm_zerobased=1; gpm_visiblepointer=1; if (Gpm_Open(&conn,0)==-1) { fprintf(stderr,"%s: Can't open mouse connection\n",argv[0]); exit(1); } /* Prepare the leftish roi, and the catch-all on the background */ left_cldata.color=0x07; left_cldata.number=0; left_cldata.hei=hei; left_cldata.wid=LEFTWID; Gpm_PushRoi(0,0,LEFTWID-1,hei-1, GPM_DOWN|GPM_DRAG|GPM_UP|GPM_ENTER|GPM_LEAVE, xhandler,&left_cldata); gpm_roi_handler=xhandler; gpm_roi_data=NULL; raw(); newmsg(0,NULL); /* init data structures */ while((c=Gpm_Getchar())!=EOF) { char s[32]; Gpm_Roi *roi; roi=gpm_current_roi; sprintf(s,"0x%x",c); if (c>0x1f && c<0x7f) sprintf(s+strlen(s)," ('%c')",c); newmsg(roi ? ((WinInfo *)roi->clientdata)->number : 0,s); } noraw(); exit(0); } gpm-1.20.7/src/prog/mev.c000066400000000000000000000345061204257734200150730ustar00rootroot00000000000000/* * mev.c - simple client to print mouse events (gpm-Linux) * * Copyright 1994,1995 rubini@linux.it (Alessandro Rubini) * Copyright (C) 1998 Ian Zimmerman * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ /* * This client is meant to be used both interactively to check * that gpm is working, and as a background process to convert gpm events * to textual strings. I'm using it to handle Linux mouse * events to emacs * */ #include #include #include #include #include #include #include #include #include #include #include #include #include /* to use KG_SHIFT and so on */ #define ALL_KEY_MODS ((1<type, event->x, event->y, event->dx, event->dy, event->buttons, event->modifiers); if (event->type & (GPM_DRAG|GPM_DOWN)) { if (0 != opt_pointer) { GPM_DRAWPOINTER(event); } /*if*/ } /*if*/ return 0; } /*-------------------------------------------------------------------*/ int emacs_handler(Gpm_Event *event, void *data) { int i,j; static int dragX, dragY; static char buffer[64]; /* itz Mon Mar 23 20:54:54 PST 1998 emacs likes the modifier bits in alphabetical order, so I'll use a lookup table instead of a loop; it is faster anyways */ /* static char *s_mod[]={"S-","M-","C-","M-",NULL}; */ static char *s_mod[] = { "", /* 000 */ "S-", /* 001 */ "M-", /* 002 */ "M-S-", /* 003 */ "C-", /* 004 */ "C-S-", /* 005 */ "C-M-", /* 006 */ "C-M-S-", /* 007 */ /* idea: maybe we should map AltGr to Emacs Alt instead of Meta? */ "M-", /* 010 */ "M-S-", /* 011 */ "M-", /* 012 */ "M-S-", /* 013 */ "C-M-", /* 014 */ "C-M-S-", /* 015 */ "C-M-", /* 016 */ "C-M-S-", /* 017 */ }; /* itz Mon Mar 23 08:23:14 PST 1998 what emacs calls a `drag' event is our `up' event with coordinates different from the `down' event. What gpm calls `drag' is just `mouse-movement' to emacs. */ static char *s_type[]={"mouse-movement", "mouse-movement","down-mouse-","mouse-",NULL}; static char *s_button[]={"3","2","1",NULL}; static char *s_multi[]={"double-", "triple-", 0}; static char s_count[]="23"; char count = '1'; struct timeval tv_cur; long timestamp; static long dragTime; /* itz Mon Mar 23 08:27:53 PST 1998 this flag is needed because even if the final coordinates of a drag are identical to the initial ones, it is still a drag if there was any movement in between. Sigh. */ static int dragFlag = 0; gettimeofday(&tv_cur, 0); timestamp = ((short)tv_cur.tv_sec) * 1000 + (tv_cur.tv_usec / 1000); if (opt_fit) Gpm_FitEvent(event); buffer[0]=0; /* itz Sun Mar 22 19:09:04 PST 1998 Emacs doesn't understand modifiers on motion events. */ if (!(event->type & (GPM_MOVE|GPM_DRAG))) { /* modifiers */ strcpy(buffer, s_mod[event->modifiers & ALL_KEY_MODS]); /* multiple */ for (i=0, j=GPM_DOUBLE; s_multi[i]; i++, j<<=1) if (event->type & j) { count = s_count[i]; strcat(buffer,s_multi[i]); } /*if*/ } /*if*/ if (event->type & GPM_DRAG) { dragFlag = 1; } /*if*/ /* itz Mon Mar 23 08:26:33 PST 1998 up-event after movement is a drag. */ if ((event->type & GPM_UP) && dragFlag) { strcat(buffer, "drag-"); } /*if*/ /* type */ for (i=0, j=GPM_MOVE; s_type[i]; i++, j<<=1) if (event->type & j) strcat(buffer,s_type[i]); /* itz Sun Mar 22 19:09:04 PST 1998 Emacs doesn't understand modifiers on motion events. */ if (!(event->type & (GPM_MOVE|GPM_DRAG))) /* button */ for (i=0, j=GPM_B_RIGHT; s_button[i]; i++, j<<=1) if (event->buttons & j) strcat(buffer,s_button[i]); if ((event->type & GPM_UP) && dragFlag) { printf("(%s ((%i . %i) %ld) %c ((%i . %i) %ld))\n", buffer, event->x, event->y, timestamp, count, dragX, dragY, dragTime); } else if (event->type & (GPM_DOWN|GPM_UP)) { printf("(%s ((%i . %i) %ld) %c)\n", buffer, event->x, event->y, timestamp, count); } else if (event->type & (GPM_MOVE|GPM_DRAG)) { printf("(%s ((%i . %i) %ld))\n", buffer, event->x, event->y, timestamp); } /*if*/ if (event->type & GPM_DOWN) { dragX=event->x; dragY=event->y; dragTime=timestamp; dragFlag = 0; } /*if*/ if (event->type & (GPM_DRAG|GPM_DOWN)) { if (0 == opt_pointer) { GPM_DRAWPOINTER(event); } /*if*/ } /*if*/ return 0; } /*===================================================================*/ int usage(void) { //printf( "(" GPM_NAME ") " GPM_RELEASE ", " GPM_DATE "\n" printf( "(" GPM_NAME ") , " GPM_DATE "\n" "Usage: %s [options]\n",prgname); printf(" Valid options are\n" " -C choose virtual console (beware of it)\n" " -d choose the default mask\n" " -e choose the eventMask\n" " -E emacs-mode\n" " -i accept commands from stdin\n" " -f fit drag events inside the screen\n" " -m minimum modifier mask\n" " -M maximum modifier mask\n" " -p show pointer while dragging\n" " -u user-mode (default)\n" ); return 1; } /*===================================================================*/ #define PARSE_EVENTS 0 #define PARSE_MODIFIERS 1 void getmask(char *arg, int which, int* where) { int last=0, value=0; char *cur; struct node *table, *n; int mode = 0; /* 0 = set, 1 = add, 2 = subtract */ if ('+' == arg[0]) { mode = 1; ++arg; } else if ('-' == arg[0]) { mode = 2; ++arg; } if (isdigit(arg[0])) { switch(mode) { case 0: *where = atoi(arg); break; case 1: *where |= atoi(arg); break; case 2: *where &= ~atoi(arg); break; } /*switch*/ return; } /*if*/ table= (PARSE_MODIFIERS == which) ? tableMod : tableEv; while (1) { while (*arg && !isalnum(*arg)) arg++; /* skip delimiters */ cur=arg; while(isalnum(*cur)) cur++; /* scan the word */ if (!*cur) last++; *cur=0; for (n=table;n->name;n++) if (!strcmp(n->name,arg)) { value |= n->flag; break; } if (!n->name) fprintf(stderr,"%s: Incorrect flag \"%s\"\n",prgname,arg); if (last) break; cur++; arg=cur; } switch(mode) { case 0: *where = value; break; case 1: *where |= value; break; case 2: *where &= ~value; break; } /*switch*/ } /*===================================================================*/ int cmdline(int argc, char **argv, char *options) { int opt; while ((opt = getopt(argc, argv, options)) != -1) { switch (opt) { /* itz Tue Mar 24 17:11:52 PST 1998 i hate options that do too much. Made them orthogonal. */ case 'C': sscanf(optarg,"%x",&opt_vc); break; case 'd': getmask(optarg, PARSE_EVENTS, &opt_default); break; case 'e': getmask(optarg, PARSE_EVENTS, &opt_mask); break; case 'E': opt_emacs = 1; break; case 'i': opt_intrct=1; break; case 'f': opt_fit=1; break; case 'm': getmask(optarg, PARSE_MODIFIERS, &opt_minMod); break; case 'M': getmask(optarg, PARSE_MODIFIERS, &opt_maxMod); break; case 'p': opt_pointer =1; break; case 'u': opt_emacs=0; break; default: return 1; } } return 0; } void do_snapshot() { Gpm_Event event; int i=Gpm_GetSnapshot(&event); char *s; if (-1 == i) { fprintf(stderr,"Warning: cannot get snapshot!\n"); fprintf(stderr,"Have you run \"configure\" and \"make install\"?\n"); return; } /*if*/ fprintf(stderr,"Mouse has %d buttons\n",i); fprintf(stderr,"Currently sits at (%d,%d)\n",event.x,event.y); fprintf(stderr,"The window is %d columns by %d rows\n",event.dx,event.dy); s=Gpm_GetLibVersion(&i); fprintf(stderr,"The library is version \"%s\" (%i)\n",s,i); s=Gpm_GetServerVersion(&i); fprintf(stderr,"The daemon is version \"%s\" (%i)\n",s,i); fprintf(stderr,"The current console is %d, with modifiers 0x%02x\n", event.vc,event.modifiers); fprintf(stderr,"The button mask is 0x%02X\n",event.buttons); } /*===================================================================*/ int interact(char *cmd) /* returns 0 on success and !=0 on error */ { Gpm_Connect conn; int argc=0; char *argv[20]; if (*cmd && cmd[strlen(cmd)-1]=='\n') cmd[strlen(cmd)-1]='\0'; if (!*cmd) return 0; /* * Interaction is accomplished by building an argv and passing it to * cmdline(), to use the same syntax used to invoke the program */ while (argc<19) { while(isspace(*cmd)) cmd++; argv[argc++]=cmd; while (*cmd && isgraph(*cmd)) cmd++; if (!*cmd) break; *cmd=0; cmd++; } argv[argc]=NULL; if (!strcmp(argv[0],"pop")) { return (Gpm_Close()==0 ? 1 : 0); /* a different convention on ret values */ } /*if*/ if (!strcmp(argv[0],"info")) { fprintf(stderr,"The stack of connection info is %i depth\n",gpm_flag); return 0; } /*if*/ if (!strcmp(argv[0],"quit")) { exit(0); } /*if*/ if (!strcmp(argv[0],"snapshot")) { do_snapshot(); return 0; } /*if*/ optind=0; /* scan the entire line */ if (strcmp(argv[0],"push") || cmdline(argc,argv,"d:e:m:M:")) { fprintf(stderr,"Syntax error in input line\n"); return 0; } /*if*/ conn.eventMask=opt_mask; conn.defaultMask=opt_default; conn.maxMod=opt_maxMod; conn.minMod=opt_minMod; if (Gpm_Open(&conn,opt_vc)==-1) { fprintf(stderr,"%s: Can't open mouse connection\r\n",argv[0]); return 1; } return 0; } /*===================================================================*/ int main(int argc, char **argv) { Gpm_Connect conn; char cmd[128]; Gpm_Handler* my_handler; /* not the real gpm handler! */ fd_set readset; prgname=argv[0]; if (cmdline(argc,argv,"C:d:e:Efim:M:pu")) exit(usage()); gpm_zerobased = opt_emacs; conn.eventMask=opt_mask; conn.defaultMask=opt_default; conn.maxMod=opt_maxMod; conn.minMod=opt_minMod; if (Gpm_Open(&conn,opt_vc) == -1) { gpm_report(GPM_PR_ERR,"%s: Can't open mouse connection\n",prgname); exit(1); } else if (gpm_fd == -2) { gpm_report(GPM_PR_OOPS,"%s: use rmev to see gpm events in xterm or rxvt\n",prgname); } gpm_report(GPM_PR_DEBUG,"STILL RUNNING_1"); my_handler= opt_emacs ? emacs_handler : user_handler; /* itz Sun Mar 22 09:51:33 PST 1998 needed in case the output is a pipe */ setvbuf(stdout, 0, _IOLBF, 0); setvbuf(stdin, 0, _IOLBF, 0); while(1) { /* forever */ FD_ZERO(&readset); FD_SET(gpm_fd, &readset); if (opt_intrct) { FD_SET(STDIN_FILENO, &readset); } if (select(gpm_fd+1, &readset, 0, 0, 0) < 0 && errno == EINTR) continue; if (FD_ISSET(STDIN_FILENO, &readset)) { if (0 == fgets(cmd, sizeof(cmd), stdin) || interact(cmd)) { exit(0); /* ^D typed on input */ } /*if*/ } /*if*/ if (FD_ISSET(gpm_fd, &readset)) { Gpm_Event evt; if (Gpm_GetEvent(&evt) > 0) { my_handler(&evt, 0); } else { fprintf(stderr, "mev says : Oops, Gpm_GetEvent()\n"); } } /*if*/ } /*while*/ /*....................................... Done */ while (Gpm_Close()); /* close all the stack */ exit(0); } gpm-1.20.7/src/prog/mouse-test.c000066400000000000000000000540321204257734200164050ustar00rootroot00000000000000/* * mouse-test.c * * Copyright 1995 rubini@linux.it (Alessandro Rubini) * Copyright (C) 1998 Ian Zimmerman * Copyright (C) 2002-2008 Nico Schottelius * * Tue, 5 Jan 1999 23:15:23 +0000, modified by James Troup : * (main): exclude devices with a minor number of 130 from * the device probe to avoid causing spontaneous reboots on machines * where watchdog is used. Reported by Jim Studt * [Debian bug report #22602] * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ /* This code is horrible. Browse it at your risk */ /* hmm..read worse code before :) -nicos */ #include #include #include #include #include #include #include #include #include #include #include #include #include "headers/message.h" /* to print */ #include "headers/gpmInt.h" /* to get mouse types */ #include "headers/daemon.h" /* FIXME: do not use that..rewrite mouse-test, anyway */ #ifndef min #define min(a,b) ((a)>(b)?(b):(a)) #define max(a,b) ((a)>(b)?(a):(b)) #endif /* this material is needed to pass options to mice.c */ struct mouse_features mymouse = { DEF_TYPE, DEF_DEV, DEF_SEQUENCE, DEF_BAUD, DEF_SAMPLE, DEF_DELTA, DEF_ACCEL, DEF_SCALE, DEF_SCALE /*scaley*/, DEF_TIME, DEF_CLUSTER, DEF_THREE, DEF_GLIDEPOINT_TAP, (char *)NULL /* extra */, (Gpm_Type *)NULL, -1 /* fd */ }; /* and this is a workaroud */ struct winsize win; /* this too */ struct options option; struct mouse_features *which_mouse=&mymouse; char *progname; char *consolename; int devcount=0; int typecount=0; struct item { Gpm_Type *this; struct item *next; }; struct device { char *name; int fd; struct device *next; }; static int message(void) { printf("This program is designed to help you in detecting what type your\n" "mouse is. Please follow the instructions of this program. If you're\n" "bored before it is done, you can always press your 'Interrupt' key\n" "(usually Ctrl-C)\n\n"); printf("\t *** Remember: don't run any software which reads the mouse device\n" "\t *** while making this test. This includes \"gpm\"," "\"selection\", \"X\"\n\n"); printf("Note that this program is by no means complete, and its main role is\n" "to detect how does the middle button work on serial mice\n"); return 0; } /* I don't like curses, so I'm doing low level stuff here */ #define GOTOXY(f,x,y) fprintf(f,"\x1B[%03i;%03iH",y,x) /*----------------------------------------------------------------------------- Place the description here. -----------------------------------------------------------------------------*/ static void raw(void) { struct termios it; tcgetattr(fileno(stdin),&it); it.c_lflag &= ~(ICANON); it.c_lflag &= ~(ECHO); it.c_iflag &= ~(INPCK|ISTRIP|IXON); it.c_oflag &= ~(OPOST); it.c_cc[VMIN] = 1; it.c_cc[VTIME] = 0; tcsetattr(fileno(stdin),TCSANOW,&it); } /*----------------------------------------------------------------------------- Place the description here. -----------------------------------------------------------------------------*/ static void noraw(void) { struct termios it; tcgetattr(fileno(stdin),&it); it.c_lflag |= ICANON; it.c_lflag |= ECHO; it.c_iflag |= IXON; it.c_oflag |= OPOST; tcsetattr(fileno(stdin),TCSANOW,&it); } /*----------------------------------------------------------------------------- Place the description here. -----------------------------------------------------------------------------*/ void killed(int signo) { fprintf(stderr,"mouse-test: killed by signal %i\r\n",signo); noraw(); exit(0); } /*----------------------------------------------------------------------------- Place the description here. -----------------------------------------------------------------------------*/ struct device **gpm_makedev(struct device **current, char *name) { int fd; int modes; if ((fd=open(name,O_RDWR|O_NONBLOCK))==-1) { perror(name); return current; } modes = fcntl(fd, F_GETFL); if (0 > fcntl(fd, F_SETFL, modes & ~O_NONBLOCK)) { close(fd); perror(name); return current; } *current=malloc(sizeof(struct device)); if (!*current) gpm_report(GPM_PR_OOPS,"malloc()"); (*current)->name=strdup(name); if (!(*current)->name) gpm_report(GPM_PR_OOPS,"malloc()"); (*current)->fd=fd; (*current)->next=NULL; devcount++; return &((*current)->next); } Gpm_Type *(*I_serial)(int fd, unsigned short flags, struct Gpm_Type *type, int argc, char **argv); /*----------------------------------------------------------------------------- Place the description here. -----------------------------------------------------------------------------*/ int mousereopen(int oldfd, char *name, Gpm_Type *type) { int fd; if (!type) type=mice+1; /* ms */ close(oldfd); usleep(100000); fd=open(name,O_RDWR); if (fd < 0) gpm_report(GPM_PR_OOPS,name); (*I_serial)(fd,type->flags,type,1,&type->name); /* ms initialization */ return fd; } int noneofthem(void) { noraw(); printf("\n\nSomething went wrong, I didn't manage to detect your" "protocol\n\nFeel free to report your problems to the author\n"); exit(1); } #define CHECKFAIL(count) ((count)==0 && noneofthem()) /*************************************** * This is the most useful function in * the program: it build an array * of data characters in order to run * several protocols on the returned * data. */ int eventlist(int fd, char *buff, int buflen, int test, int readstep) { fd_set selSet, readySet; struct timeval to; int active=0; int pending; int got=0; FD_ZERO(&readySet); FD_SET(fd,&readySet); FD_SET(fileno(stdin),&readySet); to.tv_sec=to.tv_usec=0; switch(test) { case GPM_B_LEFT: printf("\r\nNow please press and release several times\r\n" "the left button of your mouse," " *** trying not to move it ***\r\n\r\n"); break; case GPM_B_MIDDLE: printf("\r\nNow please press and release several times\r\n" "the middle button of your mouse," " *** trying not to move it ***\r\n\r\n"); break; case 0: printf("\r\nNow please move the mouse around, without pressing any\r\n" "button. Move it both quickly and slowly\r\n\r\n"); break; default: printf("Unknown test to perform\r\n"); return -1; } printf("Press any key when you've done enough\r\n"); while(1) { selSet=readySet; if ((pending=select(fd+1,&selSet,NULL,NULL,&to)) < 0) continue; if (pending==0 && !active) { active++; to.tv_sec=10; continue; } if (pending==0) return got; /* timeout */ if (FD_ISSET(0,&selSet)) { getchar(); if (active) return got; } if (FD_ISSET(fd,&selSet)) { if (active) got+=read(fd,buff+got,readstep); else read(fd,buff,buflen); } if (got>buflen-readstep) readstep=buflen-got; if (readstep==0) got--,readstep++; /* overwrite last char forever */ to.tv_sec=30; } } /*----------------------------------------------------------------------------- Place the description here. -----------------------------------------------------------------------------*/ int main(int argc, char **argv) { struct item *list=NULL; struct item **nextitem; struct device *devlist=NULL; struct device **nextdev; Gpm_Type *cursor; int i, mousefd; char *mousename; #define BUFLEN 512 char buf[BUFLEN]; struct timeval timeout; fd_set checkSet; int pending, maxfd; int trial, readamount,packetsize,got; int baudtab[4]={1200,9600,4800,2400}; #define BAUD(i) (baudtab[(i)%4]) consolename = Gpm_get_console(); if (!isatty(fileno(stdin))) { fprintf(stderr,"%s: stdin: not a tty\n",argv[0]); exit(1); } progname=argv[0]; message(); /* init the list of possible devices */ for (nextdev=&devlist, i=1; iinit; /* the first one has I_serial */ signal(SIGINT,killed); /* control-C kills us */ raw(); /*====================================== First of all, detect the device */ trial=0; while (devcount > 1) { fd_set devSet, gotSet,savSet; struct device *cur; int gotthem; /* BUG */ /* Logitech initialization is not performed */ (which_mouse->opt_baud)=BAUD(trial); printf("\r\nTrying with %i baud\r\n",(which_mouse->opt_baud)); trial++; FD_ZERO(&devSet); FD_ZERO(&gotSet); FD_SET(fileno(stdin),&devSet); maxfd=fileno(stdin); printf("\r\n The possible device nodes are:\r\n"); for (nextdev=&devlist; *nextdev; nextdev=&((*nextdev)->next)) { printf("\t%s\r\n", (*nextdev)->name); FD_SET((*nextdev)->fd,&devSet); maxfd=max((*nextdev)->fd,maxfd); (*I_serial)((*nextdev)->fd,(mice+1)->flags,mice+1, 1, &(mice+1)->name); /* try ms mode */ } savSet=devSet; printf("\r\n\r\nI've still %i devices which may be your mouse,\r\n", devcount); printf("Please move the mouse. Press any key when done\r\n" " (You can specify your device name on cmdline, in order to\r\n" " avoid this step\r\n. Different baud rates are tried at " "different times\r\n"); timeout.tv_sec=10; /* max test time */ gotthem=0; while (1) { /* extract files from the list */ devSet=savSet; if ((pending=select(maxfd+1,&devSet,NULL,NULL,&timeout)) < 0) continue; if (pending==0 || FD_ISSET(fileno(stdin),&devSet)) { getchar(); break; } for (nextdev=&devlist; *nextdev; nextdev=&((*nextdev)->next)) if (FD_ISSET((*nextdev)->fd,&devSet)) { gotthem++; FD_CLR((*nextdev)->fd,&savSet); FD_SET((*nextdev)->fd,&gotSet); } } if (gotthem) for (nextdev=&devlist; *nextdev; /* nothing */ ) { cur=*nextdev; if (!FD_ISSET(cur->fd,&gotSet)) { printf("removing \"%s\" from the list\r\n",cur->name); *nextdev=cur->next; close(cur->fd); free(cur->name); free(cur); devcount--; } else { read(cur->fd,buf,80); /* flush */ nextdev=&(cur->next); /* follow list */ } } } /* devcount>1 */ mousefd=devlist->fd; mousename=devlist->name; free(devlist); printf("\r\nOk, so your mouse device is \"%s\"\r\n",mousename); /* now close and reopen it, complete with initialization */ (which_mouse->opt_baud)=BAUD(0); mousefd=mousereopen(mousefd,mousename,NULL); FD_ZERO(&checkSet); FD_SET(mousefd,&checkSet); FD_SET(fileno(stdin),&checkSet); maxfd=max(mousefd,fileno(stdin)); /*====================================== Identify mouse type */ /* init the list of possible types */ printf("\r\n\r\nThe possible mouse types are:\r\n"); for (nextitem=&list, cursor=mice; cursor->fun; cursor++) { if (cursor->absolute) continue; *nextitem=malloc(sizeof(struct item)); if (!*nextitem) gpm_report(GPM_PR_OOPS,"malloc()"); (*nextitem)->this=cursor; (*nextitem)->next=NULL; printf("\t%s",cursor->name); if (cursor->synonyms && cursor->synonyms[0]) printf(" (%s)",cursor->synonyms); printf("\r\n"); typecount++; nextitem=&((*nextitem)->next); } /*====================================== Packet size - first step */ printf("\r\nNow please press and release your left mouse button,\r\n" "one time only\r\n\r\n"); i=read(mousefd,buf,1); if (i==-1 && errno==EINVAL) readamount=3; else readamount=1; usleep(100000); #define REMOVETYPE(cur,reason) \ do { \ printf("\tRemoving type \"%s\" because of '%s'\r\n", \ (cur)->this->name,reason); \ (*nextitem)=(cur)->next; \ free(cur); \ typecount--; \ } while(0) for (nextitem=&list; *nextitem; /* nothing */) { struct item *cur=*nextitem; if (readamount!=cur->this->howmany) REMOVETYPE(cur,"different read() semantics"); else nextitem=&(cur->next); } read(mousefd,buf,BUFLEN); /* flush */ /*====================================== Packet size - second step */ printf("\r\nNow you will be asked to generate different kind of events,\r\n" "in order to understand what protocol is your mouse speaking\r\n"); if (readamount==1) readamount=10; /* * Otherwise, the packetsize is already known, but the different decoding * alghorithm allows for further refinement. */ packetsize=1; trial=0; while (packetsize==1) { int success3=0,success5=0; (which_mouse->opt_baud)=BAUD(trial); printf("\tBaud rate is %i\r\n",(which_mouse->opt_baud)); mousefd=mousereopen(mousefd,mousename,NULL); printf("\r\n==> Detecting the packet size\r\n"); got=eventlist(mousefd,buf,BUFLEN,GPM_B_LEFT,readamount); /* try three -- look at repeating arrays of 6 bytes */ for (i=0;i5 && success5==0) packetsize=3; if (success5>5 && success3==0) packetsize=5; if (packetsize==1) printf("\r\n ** Ambiguous, try again\r\n"); trial++; } /*====================================== Use that info to discard protocols */ for (nextitem=&list; *nextitem; /* nothing */) { struct item *cur=*nextitem; int packetheads=0; int match=0; Gpm_Event event; if (packetsize!=cur->this->packetlen) { REMOVETYPE(cur,"different packet lenght"); continue; } /* try to decode button press and release */ for (i=0;ithis->proto)[0]) == (cur->this->proto)[1]) && ((buf[i+1]&(cur->this->proto)[2]) == (cur->this->proto)[3]) ) { packetheads++; if ((*(cur->this->fun))(&event,buf+i)==-1) { packetheads--; continue; } i+=packetsize-1; /* skip packet */ if (event.dx || event.dy) continue; if (event.buttons==GPM_B_LEFT) match++; else if (event.buttons) match--; } } if (match<=0) { REMOVETYPE(cur,"incorrect button detected"); continue; } if (packetheadsthis->name); nextitem=&(cur->next); } /*====================================== It's all done? */ /* * At this point, msc, would be unique (and 3-button aware) due to the * packet size; sun,mm and ps2 would be unique due to the different * representation of buttons (and they usually are not dual mode). */ /* why checking and not using return value ??? */ CHECKFAIL(typecount); if (typecount==1) { noraw(); printf("\n\n\nWell, it seems like your mouse is already detected:\n" "it is on the device \"%s\", and speaks the protocol \"%s\"\n", mousename,list->this->name); exit(0); } /* * If it is in the "ms" family, however, three possibilities are still * there, and all of them depend on the middle button */ do { printf("\r\nYour mouse is one of the ms family, " "but do you have the middle button (y/n)? "); putchar(i=getchar()); printf("\r\n"); } while(i!='y' && i!='n'); if (i=='n') { noraw(); printf("\nThen, you should use the \"bare\" protocol on \"%s\"\n", mousename); exit(0); } /* * First trial: remove the "-t ms" extension if spurious buttons come in */ got=eventlist(mousefd,buf,BUFLEN,0,readamount); pending=0; for (nextitem=&list; *nextitem; /* nothing */) { struct item *cur=*nextitem; Gpm_Event event; /* try to decode button press and release */ for (i=0;ithis->proto)[0]) == (cur->this->proto)[1]) && ((buf[i+1]&(cur->this->proto)[2]) == (cur->this->proto)[3]) ) { if ((*(cur->this->fun))(&event,buf+i)==-1) continue; i+=packetsize-1; if (event.buttons) pending--; } } if (pending<0) { REMOVETYPE(cur,"spurious button reported"); continue; } printf("** type '%s' still possible\r\n",cur->this->name); nextitem=&(cur->next); } CHECKFAIL(typecount); /* * Second trial: look if it is one of the two mman ways (In the second * test, extended ms is caught as well */ printf("\r\n==> Looking for '-t mman'and enhanced ms\r\n"); mousefd=mousereopen(mousefd,mousename, mice /* mman */); got=eventlist(mousefd,buf,BUFLEN,GPM_B_MIDDLE,readamount); /* if it uses the 4-byte protocol, find it in a rude way */ for (pending=0,i=0;i 3) { noraw(); printf("\nYour mouse seems to be a 'mman' one on \"%s\" (%i matches)\n", mousename,pending); exit(0); } pending=0; for (nextitem=&list; *nextitem; /* nothing */) { struct item *cur=*nextitem; Gpm_Event event; /* try to decode button press and release */ for (i=0;ithis->proto)[0]) == (cur->this->proto)[1]) && ((buf[i+1]&(cur->this->proto)[2]) == (cur->this->proto)[3]) ) { if ((*(cur->this->fun))(&event,buf+i)==-1) continue; i+=packetsize-1; if (event.buttons && event.buttons!=GPM_B_MIDDLE) pending--; if (event.buttons==GPM_B_MIDDLE) pending++; } } if (pending<0) { REMOVETYPE(cur,"spurious button reported"); continue; } if (pending>3) { noraw(); printf("\nYour mouse seems to be a '%s' one on \"%s\" (%i matches)\n", cur->this->name,mousename,pending); exit(0); } printf("** type '%s' still possible\r\n",cur->this->name); nextitem=&(cur->next); } CHECKFAIL(typecount); /* * Then, try to toggle dtr and rts */ { int toggle[3]={TIOCM_DTR|TIOCM_RTS, TIOCM_DTR,TIOCM_RTS}; char *tognames[3]={"both","dtr","rts"}; char *Xtognames[3]={"'ClearDTR' and 'ClearRTS'","'ClearDTR'","'ClearRTS'"}; int alllines,lines, index; ioctl(mousefd, TIOCMGET, &alllines); printf("\r\nSome mice change protocol to three-buttons-aware if some\r\n" "\r\ncontrol lines are toggled after opening\r\n"); for (index=0;index<3;index++) { mousereopen(mousefd,mousename,NULL); lines = alllines & ~toggle[index]; ioctl(mousefd, TIOCMSET, &lines); printf("\r\n==> Trying with '-o %s'\r\n",tognames[index]); got=eventlist(mousefd,buf,BUFLEN,GPM_B_MIDDLE,readamount); /* if it uses the 5-byte protocol, find it in a rude way */ for (pending=0,i=0;i3) { noraw(); printf("\nYour mouse becomes a 3-buttons ('-t msc') one when\n" "gpm gets '-o %s' on it command line, and X gets\n" "%s in XF86Config\nThe device is \"%s\"", tognames[index],Xtognames[index],mousename); exit(0); } } } /* * still here? Then, the only resort is keeping the middle button * pressed while initializing the mouse */ printf("\r\nYour damned device doesn't respond to anything\r\n" "the only remaining possibility is to keep presses the middle\r\n" "button _while_the_mouse_is_being_opened. This is the worst thing\r\n" "ever thought after caps-lock-near-the-A\r\n"); printf("\r\nNow please press the middle button, and then press any key\r\n" "while keeping the button down. Wait to release it until the\r\n" "next message.\r\n"); getchar(); got=eventlist(mousefd,buf,BUFLEN,GPM_B_MIDDLE,readamount); /* if it uses the 5-byte protocol, find it in a rude way */ for (pending=0,i=0;i3) { noraw(); printf("\nWorked. You should keep the button pressed every time the\n" "computer boots, and run gpm in '-R' mode in order to ignore\n" "such hassle when starting X\n\nStill better, but a better mouse\n" "\nThe current mouse device is \"%s\"\n",mousename); exit(0); } noraw(); printf("\nI'm lost. Can't tell you how to use your middle button\n"); return 0; } gpm-1.20.7/src/prog/open_console.c000066400000000000000000000022421204257734200167570ustar00rootroot00000000000000/* * general purpose mouse (gpm) * * Copyright (c) 2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ #include "headers/message.h" /* messaging in gpm */ #include "headers/daemon.h" /* daemon internals */ #include int open_console(const int mode) { int fd; if ((fd = open(option.consolename, mode)) < 0) gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN, option.consolename); return fd; } gpm-1.20.7/src/report.c000066400000000000000000000165531204257734200146520ustar00rootroot00000000000000/* * selects where we should report to * TODO: - possibly include errno (%m) string in syslog * - njak ... someone should optimize this code and remove double * fragments.... (self) * * Copyright (c) 2001-2008 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. */ #include /* NULL */ #include /* va_arg/start/... */ #include /* alloc & co. */ #include /* strlen/strcpy */ #include /* these three are */ #include /* needed for */ #include /* stat() */ #include "headers/gpmInt.h" #include "headers/message.h" #include "headers/daemon.h" /* FIXME: this is wrong; we need report fpr lib und daemon */ /* * gpm_report * * Destinations: * - syslog * - current console (/dev/vc/0 || /dev/tty0) * - system console (/dev/console) * - stdout * - stderr * * * Items in [] are alternatives, if first destination is not present. * * Startup Mode: * debug : - (ignore) * info : syslog/stdout * warn/err : syslog/stderr * oops : syslog/stderr [exit] * * Running Mode: (daemon) * debug : - (ignore) * info : syslog * warn : syslog+system console * err : syslog+system console+current console * oops : syslog/stderr [_exit] * * Debug Mode : * debug/warn/err: stderr * info : stdout * oops : stderr [exit] * * Client Mode: (to use with mouse-test etc. ; NON SERVER ) * debug/err/warn/info: like debugging mode! * */ void gpm_report(int line, char *file, int stat, char *text, ... ) { FILE *console = NULL; va_list ap, ap3; #ifdef HAVE_VSYSLOG va_list ap2; #endif va_start(ap,text); va_copy(ap3, ap); #ifdef HAVE_VSYSLOG va_copy(ap2, ap); #endif switch(option.run_status) { /******************** STARTUP *****************/ case GPM_RUN_STARTUP: switch(stat) { case GPM_STAT_INFO: #ifdef HAVE_VSYSLOG syslog(LOG_INFO | LOG_USER, GPM_STRING_INFO); vsyslog(LOG_INFO | LOG_USER, text, ap2); #else fprintf(stderr,GPM_STRING_INFO); vfprintf(stderr,text,ap); fprintf(stderr,"\n"); #endif break; case GPM_STAT_WARN: #ifdef HAVE_VSYSLOG syslog(LOG_DAEMON | LOG_WARNING, GPM_STRING_WARN); vsyslog(LOG_DAEMON | LOG_WARNING, text, ap2); #else fprintf(stderr,GPM_STRING_WARN); vfprintf(stderr,text,ap); fprintf(stderr,"\n"); #endif break; case GPM_STAT_ERR: #ifdef HAVE_VSYSLOG syslog(LOG_DAEMON | LOG_ERR, GPM_STRING_ERR); vsyslog(LOG_DAEMON | LOG_ERR, text, ap2); #else fprintf(stderr,GPM_STRING_ERR); vfprintf(stderr,text,ap); fprintf(stderr,"\n"); #endif break; case GPM_STAT_OOPS: #ifdef HAVE_VSYSLOG syslog(LOG_DAEMON | LOG_ERR, GPM_STRING_OOPS); vsyslog(LOG_DAEMON | LOG_ERR, text, ap2); #endif fprintf(stderr,GPM_STRING_OOPS); vfprintf(stderr,text,ap); fprintf(stderr,"\n"); exit(1); /* we should have a oops()-function,but this works,too*/ break; } break; /* startup sequence */ /******************** RUNNING *****************/ case GPM_RUN_DAEMON: switch(stat) { case GPM_STAT_INFO: #ifdef HAVE_VSYSLOG syslog(LOG_INFO | LOG_USER, GPM_STRING_INFO); vsyslog(LOG_INFO | LOG_USER, text, ap2); #endif break; case GPM_STAT_WARN: #ifdef HAVE_VSYSLOG syslog(LOG_DAEMON | LOG_WARNING, GPM_STRING_WARN); vsyslog(LOG_DAEMON | LOG_WARNING, text, ap2); #else if((console = fopen(GPM_SYS_CONSOLE,"a")) != NULL) { fprintf(console,GPM_STRING_WARN); vfprintf(console,text,ap); fprintf(console,"\n"); fclose(console); } #endif break; case GPM_STAT_ERR: #ifdef HAVE_VSYSLOG syslog(LOG_DAEMON | LOG_ERR, GPM_STRING_ERR); vsyslog(LOG_DAEMON | LOG_ERR, text, ap2); #else if((console = fopen(GPM_SYS_CONSOLE,"a")) != NULL) { fprintf(console,GPM_STRING_ERR); vfprintf(console,text,ap); fprintf(console,"\n"); fclose(console); } if((console = fopen(option.consolename,"a")) != NULL) { fprintf(console,GPM_STRING_ERR); vfprintf(console,text,ap3); fprintf(console,"\n"); fclose(console); } #endif break; case GPM_STAT_OOPS: #ifdef HAVE_VSYSLOG syslog(LOG_DAEMON | LOG_ERR, GPM_STRING_OOPS); vsyslog(LOG_DAEMON | LOG_ERR, text, ap2); #endif fprintf(stderr,GPM_STRING_OOPS); vfprintf(stderr,text,ap); fprintf(stderr,"\n"); _exit(1); /* we are the fork()-child */ break; } break; /* running gpm */ /******************** DEBUGGING and CLIENT *****************/ case GPM_RUN_DEBUG: switch(stat) { case GPM_STAT_INFO: console = stdout; fprintf(console,GPM_STRING_INFO); break; case GPM_STAT_WARN: console = stderr; fprintf(console,GPM_STRING_WARN); break; case GPM_STAT_ERR: console = stderr; fprintf(console,GPM_STRING_ERR); break; case GPM_STAT_DEBUG: console = stderr; fprintf(console,GPM_STRING_DEBUG); break; case GPM_STAT_OOPS: console = stderr; fprintf(console,GPM_STRING_OOPS); break; } vfprintf(console,text,ap); fprintf(console,"\n"); if(stat == GPM_STAT_OOPS) exit(1); break; } /* switch for current modus */ va_end(ap); va_end(ap3); #ifdef HAVE_VSYSLOG va_end(ap2); #endif } /* gpm_report */ /* old interesting part from debuglog.c. * interesting, if you want to include ERRNO into syslog message * should possibly included again later...when sources are clean and * there is no doubled strrer(errno) #if(defined(HAVE_VSYSLOG) && defined(HAVE_SYSLOG)) static char fmt[] = ": %m"; char* buf = alloca(strlen(s)+sizeof(fmt)); strcpy(buf, s); strcat(buf, fmt); #endif */ gpm-1.20.7/src/synaptics.c000066400000000000000000003346141204257734200153550ustar00rootroot00000000000000/* * synaptics.c - support for the synaptics serial and ps2 touchpads * * Copyright 1999 hdavies@ameritech.net (Henry Davies) * Geert Van der Plas provided the code to support * older Synaptics PS/2 touchpads. * * Synpatics Passthrough Support Copyright (C) 2002 Linuxcare Inc. * dkennedy@linuxcare.com (David Kennedy) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * ********/ /* ** Design/Goals ** I want to use the Synaptics Serial touchpad as a cursor device under ** Linux (gpm). With this device I want to support operations similar ** to those supported by the Synaptics WinDOS driver, and some others ** of my own devising. ** ** Features: ** Corner Clicks ** This recognizes taps on the touchpad in the corner(s) and ** translates them into specific actions. Initially I am looking ** at actions on the order of alternate button clicks. Other ** alternatives include drags and whatnot. ** Edge Extensions ** This recognizes that the finger has moved from the center region ** of the touchpad and dragged to the edge area. At which point ** I want to be able to extend the motion by automatically moving ** in the direction of the edge. ** Toss n Catch ** This recognizes a quick motion of the finger on the touchpad and ** uses that to define a velocity vector for the cursor. A tap ** on the touchpad at a later time catches (stops) the cursor. ** Tap n Drag ** A quick tap of the touchpad followed by finger motion on the ** touchpad initiates what would be a drag with a normal mouse ** type device. ** Pressure Sensitive Velocity ** The Synaptics touchpad indicates the touch pressure of the finger ** (really an interface area) this is used to accelerate the cursor ** motion. This can be used in the normal motion, Tap n Drag, or ** Edge Extension modes. In normal motion and Tap n Drag this may ** be awkward due to increased friction caused by the pressure. ** ** Parameters: ** search below for configuration constants */ /* Pebl - pebl@diku.dk 20/12/2001 08:06. ** ** I want to have more features :). Every touch pad (ps2 and serial) is now be ** supported according to STIG and every feature/capability is read. However ** there seems to be some very old serial touchpads that have an advanced ** mode not mentioned in STIG. ** ** ** Further I have added the following ** ** Emulation of scrolling ** The window drivers allow using the edge to emulate a wheel ** mouse. When putting the finger at the right edge, a movement up or ** down translates to wheel movement. Taking the finger to the ** top/button edge keeps the wheel turning. Lift the finger again to ** operate normally again. Another option is to do a toss scrolling. ** ** Stick attached to a synaptic touchpad (aka styk) ** Some touchpads have a stick "attached", so they share the same port. ** In absolute mode the stick protocol is a simple ps2 protocol, except ** it is sent in an absolute packet. (In relative mode both uses ps2) ** Some sticks send packets when pressed (different from moved), which ** will be reported as left button. ** ** 4 Way button attached to a touchpad ** Likewise some touchpads have a round button giving the choices of ** four way to press the button. The packet is nearly identical to the ** stick, turn off the stick if you have this button. This is no longer ** needed. The button can act as a mouse or as buttons which can be ** changed on the fly. The buttons can be configured just as the ** touchpads corners. ** ** Four buttons to work ** Some touchpads have 4 buttons. Only 3 was read and the last was set to ** up or down "button". They can be configured just as the ** touchpads corners. ** ** Multiple fingers ** I have added an option to detect such by looking at pressure levels, ** which is not that great. If the pad have the capability to detect it, ** this is used instead, but this far from optimal. It does detect two ** horizontal parted finger if in same vertical position, otherwise the ** detection is bad. This is/was a problem as my wrist lays on the ** laptop which gives a 45 deg to horizontal for my fingers. Now I try ** to add further detections, which works for me in 95% of the ** time. ** ** Multi finger tap ** Using 1,2 or 3 fingers to make a tap translates into left, right or ** middle button pressed. I originally thought about doing what is ** called a "HOP" where after a quick finger shift the distance of the ** hop decides which button is pressed. I dropped it partly because ** synaptics did in version 3.2 and because it was harder than I ** thought. Multifinger taps can be configured just as the touchpads corners. ** ** Multi finger less sensitive ** Adding or removing a finger or just accidently touch the pad with ** the palm while using the pad causes the pad to report the average ** position between the touched places. This of cause gives annoying ** erratic movements. When adding or removing fingers are detected ** the mouse is stop for some small time to avoid this. This is not ** perfect as the finger detection is not perfect, but it helps a lot! ** ** Palm detection ** Some touchpads tries to detect whether the reported data is from a ** palm or similar. When reading this signal the movement is ** stopped. Except the detection does not work very well :( ** ** ** Enabling/disabling touchpad ** A new corner action is to disable the touchpad. It is enabled again ** by tapping the same corner. This is useful if I know I am going ** to write a lot. The stick still works. ** ** Debugging corner action ** A corner action now allows toggling the debug information. ** ** ** The structure has changed to handle both serial and ps2 touchpads. Many ** variable names have changed. ** ** The documentation referred to is from ** "Synaptics TouchPad Interfacing Guide" revision 2.5 ** or just STIG ** **/ /* ** TODO ** - handle other versions of synaptics touchpads (mine is 3.4 firmware) ** (this should be close) ** - test this with more Synaptics touch pads (laptops and such) ** - provide a configuration interface to adjust parameters and ** enabled features ** - determine appropriate ranges for adjusting parameters ** ** TODO (pebl) ** - Two pads can not be used at the same time (internal/external) ** - Move a lot of the comments to a readme file. ** - Allow normal taps in unused corners. ** - Better detection of spontaneous reseting touchpad. ** - Implement resend command for serial connection. ** - Only start scrolling if mostly vertical movement. ** - Disable/enable command for serial touchpad. ** - Clean up the mess about extended packets with pressure 0. ** - source splitting of normal touchpad functions and synaptic specific and ** add other touchpads. */ /** ** Notation: ** A gesture means a motion or action that is not a regular mouse movement. ** ** Wmode is an absolute mode where no gesture is signaled by the touchpad, only ** supported on newer versions. ** ** variables *_enabled are use for enable behaviors that may not supported in ** the touchpad. ** ** Many variables have two counterparts (and some that dont should have): a ** *_time and *_packet, where the first is in msec and the latter is the same ** time converted to the number of packets, when using 80 packets per second. ** ** Variables: ** last_* is for last reviewed packet, not last reported/calculated movement/event. ** was_* is for last event, not necessary last packet. ** ** ** Data process line: ** ** syn_process_ps2_data ---- syn_translate_serial_data -- ----------------------------------------------- ** (handles also wmode) | | | ** | | V ** |- syn_preprocess_report --- syn_process_wmode_report --- syn_process_report ** | ** syn_process_serial_data --- syn_translate_ps2_wmode_data -- ** | | ** | | ** -- syn_translate_ps2_data ---- ** ** */ #include /* ceil */ #include #include #include #include #include #include #include "headers/gpm.h" #include "headers/daemon.h" /* which_mouse */ #include "headers/synaptics.h" #include "headers/message.h" #define DEBUG 1 #undef DEBUG #ifdef DEBUG # define DEBUG_SYNAPTIC # define DEBUG_PARAMS 1 # define DEBUG_FLUSH 1 # define DEBUG_RESET 1 # define DEBUG_SENT_DATA 1 # define DEBUG_RECEIVED_DATA 1 # define DEBUG_TOSS 1 # define DEBUG_PALM 1 # define DEBUG_STICK 1 # define DEBUG_TAPS 1 # define DEBUG_MULTI_FINGER 1 # define DEBUG_CMD 1 # define DEBUG_GETBYTE 1 /* this is VERY verbose */ # undef DEBUG_PUTBYTE 1 /* this is VERY verbose */ # define DEBUG_PUTBYTE_ACK 1 /* this is VERY verbose */ # define DEBUG_REPORTS 1 /* this is VERY verbose */ #endif /* The next is UGLY, but I only want debug info from this file */ /* it's really ugly and you shouldn't use this. Instead use * gpm -D | grep filename.c. * ifdef DEBUG should not be used anymore! */ /* pebl: But this require that I boot my machine with gpm -D which I dont. The intention is that when I am doing my normal doing, and the touchpad suddenly behaves strange, I can start debuging without restarting gpm, using a corneraction. */ /* BAD CODE BEGIN #ifdef DEBUG_SYNAPTIC # include static int debug_syn_to_stderr = 1; static void gpm_report_static(int line, char *file, int stat, char* fmt, ... ) { va_list ap; va_start(ap, fmt); if (debug_syn_to_stderr){ vfprintf(stderr, fmt, ap); fputs("\n", stderr); }else{ gpm_report(line,file,stat,fmt,&ap); } va_end(ap); } # define gpm_report gpm_report_static #endif * END BADE CODE */ /* Prototype */ typedef unsigned char byte; static void syn_ps2_absolute_mode(int fd); static char *syn_model_name (int sensor); static void syn_ps2_send_cmd(int fd, int stick, byte cmd); /* Defines */ #define abs(value) ((value) < 0 ? -(value) : (value)) #define check_bits(value,mask) (((value) & (mask)) == (mask)) #define sqr(value) ((value) * (value)) #define distance(dx,dy) (sqr(dx) + sqr(dy)) #define mod4(value) ((value) % 4) #define max(x,y) ((x)>(y)?(x):(y)) /* ** Define the edge bit values. */ #define LEFT_EDGE 0x01 #define RIGHT_EDGE 0x02 #define TOP_EDGE 0x04 #define BOTTOM_EDGE 0x08 #define UPPER_LEFT_CORNER (LEFT_EDGE | TOP_EDGE) #define LOWER_LEFT_CORNER (LEFT_EDGE | BOTTOM_EDGE) #define UPPER_RIGHT_CORNER (RIGHT_EDGE | TOP_EDGE) #define LOWER_RIGHT_CORNER (RIGHT_EDGE | BOTTOM_EDGE) #define is_corner(edges) (((edges) & (LEFT_EDGE | RIGHT_EDGE)) && \ ((edges) & (TOP_EDGE | BOTTOM_EDGE))) /* ** Define the action button bit values. */ #define RIGHT_BUTTON 0x01 #define MIDDLE_BUTTON 0x02 #define LEFT_BUTTON 0x04 #define FOURTH_BUTTON 0x08 #define UP_BUTTON 0x10 #define DOWN_BUTTON 0x20 #define ONE_FINGER 0x01 #define TWO_FINGERS 0x02 #define THREE_FINGERS 0x04 #define FOUR_UP_BUTTON 0x01 #define FOUR_DOWN_BUTTON 0x02 #define FOUR_LEFT_BUTTON 0x04 #define FOUR_RIGHT_BUTTON 0x08 #define STICK_RIGHT_BUTTON 0x01 #define STICK_MIDDLE_BUTTON 0x02 #define STICK_LEFT_BUTTON 0x04 /* ** Define additional gpm button bit values. */ #define GPM_B_NOT_SET (-1) /* ** Define the guest and touchpad devices. */ #define DEVICE_TOUCHPAD 0 #define DEVICE_STICK 1 /**************************************************************************** ** ** Configuration constants. ** ** Those with C at the end are suitable for adjustment by a configuration ** program. ****************************************************************************/ static int corner_taps_enabled = 1; /* are corner taps enabled C*/ static int tap_gesture_enabled = 1; /* are gestures treaded as taps enabled C*/ static int tossing_enabled = 1; /* is toss/catch enabled C*/ static int does_toss_use_static_speed = 1; /* is toss/catch speed C*/ /* based on toss dist */ static int edge_motion_enabled = 1; /* is edge motion enabled C*/ static int edge_motion_speed_enabled = 1; /* does pressure control C*/ /* speed of edge motion */ static int pressure_speed_enabled = 1; /* does pressure control C*/ /* speed in non edges */ static int tap_hold_edge_motion_enabled = 1; /* Enable edge motion while holding a tap C*/ /* pressure induced speed related configuration constants */ static int low_speed_pressure = 60; /*C*/ static int speed_up_pressure = 60; /*C*/ static float speed_pressure_factor = 0.05; /*C*/ static float standard_speed_factor = 0.08; /*C*/ /* toss/catch related constants */ static int min_toss_time = 100; /* ms: 0.10 sec */ static int max_toss_time = 300; /* ms: 0.30 sec */ /*C*/ static int prevent_toss_time = 300; /* ms: 0.25 sec */ /*C*/ static int min_toss_dist = 2; /* mm */ /*C*/ static int static_toss_speed = 70; /*C*/ static float toss_speed_factor = 0.5; /*C*/ /* edge motion related configuration constants */ static int x_min_center = 1632; /* define left edge C*/ static int x_max_center = 5312; /* define right edge C*/ static int y_min_center = 1408; /* define bottom edge C*/ static int y_max_center = 4108; /* define top edge C*/ static int edge_speed = 20; /* default speed at edges C*/ /* gesture related configuration constants for when wmode is enabled. */ static int wmode_enabled = 1; /* is wmode enabled C */ static int drag_lock_enabled = 1; /* is drag locking enabled C */ static int finger_threshold = 30; /* pressure before it is a finger C */ static int tap_lower_limit = 5; /* a tap last at least this long C */ static int tap_upper_limit = 200; /* a tap is at most this long C */ static int tap_range = 100; /* mm finger movement limit C */ static int tap_interval = 200; /* a tap reports button press this long C*/ static int multiple_tap_delay = 30; /* time between reported button pressed C*/ static int pads_tap_interval = 8; /* if pad sends gestures, what is it's tap_interval. C*/ /* wmode capabilities */ static int palm_detect_enabled = 1; /* Ignore when palm on pad C */ static int palm_detect_level = 12; /* Detecting a palm level (between 0-11) C */ static int multi_finger_tap_enabled= 1; /* No of fingers decides which button is pressed C*/ static int multi_finger_stop_enabled = 1; /* less sensitive mouse with multi finger C*/ static int multi_finger_stop_delay = 8; /* how long to stop after a multifinger detection. C*/ static int fake_finger_layer_enabled = 1; /* add an extra software layer to detect multi fingers C*/ /* mixed configurations */ static int touchpad_enabled = 1; /* Disable the touch pad, see corner action turn_on_off. C*/ static int stick_enabled = 1; /* Some machines have a touchpad and a stick on * same device port. The stick will be ignored in * absolute mode, this option try to recognize * it's packets. C*/ static int stick_pressure_enabled = 1; /* A (hard) press on the stick is reported as left click C*/ static int four_way_button_enabled = 1; /* Round button giving 4 choices on some touchpads C*/ static int four_way_button_is_mouse= 1; /* Is the button: 4 buttons or does it moves the mouse. C*/ static int scrolling_enabled = 1; /* Simulate wheel mouse in at the right edge C*/ static int scrolling_edge = RIGHT_EDGE; /* Which edge is a the scrolling edge C*/ static int scrolling_speed = 10;/* less is faster, 1 fastest */ static float scrolling_button_factor = 0.5; /* How fast should a button/corner tap scroll, higher faster C*/ static int auto_scrolling_enabled = 1; /* Moving to the upper/lower edge keeps scrolling up/downC*/ static int auto_scrolling_factor = 2.0; /* How fast should autoscrolling be C*/ static int reset_on_error_enabled = 0; /* If a packet does not conform to any absolute protocol * should we reset the touchpad? This is wrong, because we * should rather find out why it does that in first place. * Do not turn it on per default. */ /* ** Types for describing actions. When adding a new action, place it as ** the last item. It will break old configurefiles otherwise. */ typedef enum { No_Action = 0, Left_Button_Action, Middle_Button_Action, Right_Button_Action, Fourth_Button_Action, Up_Button_Action, Down_Button_Action, Turn_On_Off_Action, Debug_On_Off_Action, Reset_Touchpad_Action, Toggle_Four_Way_Button_Action, Toggle_Stick_Pressure_Action, Toggle_Scrolling_Action, Left_Double_Click_Action, } action_type; typedef struct { int action_mask; action_type action; } touchpad_action_type; static touchpad_action_type corner_actions [] = { { UPPER_LEFT_CORNER, No_Action }, { LOWER_LEFT_CORNER, No_Action }, { UPPER_RIGHT_CORNER, Middle_Button_Action }, { LOWER_RIGHT_CORNER, Right_Button_Action }, { 0, No_Action } /* stop flag value */ }; static touchpad_action_type normal_button_actions [] = { { LEFT_BUTTON, Left_Button_Action }, { MIDDLE_BUTTON, Middle_Button_Action }, { RIGHT_BUTTON, Right_Button_Action }, { FOURTH_BUTTON, Fourth_Button_Action }, { UP_BUTTON, Up_Button_Action }, { DOWN_BUTTON, Down_Button_Action }, { 0, No_Action } /* stop flag value */ }; static touchpad_action_type multi_finger_actions [] = { { ONE_FINGER, Left_Button_Action }, { TWO_FINGERS, Right_Button_Action }, { THREE_FINGERS, Middle_Button_Action }, { 0, No_Action } /* stop flag value */ }; static touchpad_action_type four_button_actions [] = { { FOUR_LEFT_BUTTON, Middle_Button_Action }, { FOUR_RIGHT_BUTTON, Fourth_Button_Action }, { FOUR_UP_BUTTON, Up_Button_Action }, { FOUR_DOWN_BUTTON, Down_Button_Action }, { 0, No_Action } /* stop flag value */ }; static touchpad_action_type stick_actions [] = { { LEFT_BUTTON, Left_Button_Action }, { MIDDLE_BUTTON, Middle_Button_Action }, { RIGHT_BUTTON, Right_Button_Action }, { 0, No_Action } /* stop flag value */ }; /* ** These types are used to read the configuration data from the config file. */ typedef enum { Integer_Param, Float_Param, Flag_Param, Action_Param } param_type_type; typedef struct { char *name; param_type_type p_type; union { void *gen_p; /* avoids complaints by the compiler later on */ int *int_p; float *float_p; int *flag_p; touchpad_action_type *corner_p; } addr; } param_data_type; static param_data_type param_data [] = { /* enabling configuration parameters */ { "edge_motion_enabled", Flag_Param, {&edge_motion_enabled }}, { "edge_motion_speed_enabled", Flag_Param, {&edge_motion_speed_enabled }}, { "corner_taps_enabled", Flag_Param, {&corner_taps_enabled }}, { "tap_gesture_enabled", Flag_Param, {&tap_gesture_enabled }}, { "pressure_speed_enabled", Flag_Param, {&pressure_speed_enabled }}, { "tossing_enabled", Flag_Param, {&tossing_enabled }}, { "does_toss_use_static_speed", Flag_Param, {&does_toss_use_static_speed }}, { "tap_hold_edge_motion_enabled",Flag_Param, {&tap_hold_edge_motion_enabled}}, /* pressure induced speed related configuration parameters */ { "low_pressure", Integer_Param, {&low_speed_pressure }}, { "speed_up_pressure", Integer_Param, {&speed_up_pressure }}, { "pressure_factor", Float_Param, {&speed_pressure_factor }}, { "standard_speed_factor", Float_Param, {&standard_speed_factor }}, /* toss/catch related parameters */ { "min_toss_time", Integer_Param, {&min_toss_time }}, { "max_toss_time", Integer_Param, {&max_toss_time }}, { "prevent_toss_time", Integer_Param, {&prevent_toss_time }}, { "min_toss_dist", Integer_Param, {&min_toss_dist }}, { "static_toss_speed", Integer_Param, {&static_toss_speed }}, { "toss_speed_factor", Float_Param, {&toss_speed_factor }}, /* edge motion related configuration parameters */ { "x_min_center", Integer_Param, {&x_min_center }}, { "x_max_center", Integer_Param, {&x_max_center }}, { "y_min_center", Integer_Param, {&y_min_center }}, { "y_max_center", Integer_Param, {&y_max_center }}, { "edge_speed", Integer_Param, {&edge_speed }}, /* use wmode */ { "wmode_enabled", Flag_Param, {&wmode_enabled }}, { "drag_lock_enabled", Flag_Param, {&drag_lock_enabled }}, { "finger_threshold", Integer_Param, {&finger_threshold }}, { "tap_lower_limit", Integer_Param, {&tap_lower_limit }}, { "tap_upper_limit", Integer_Param, {&tap_upper_limit }}, { "tap_range", Integer_Param, {&tap_range }}, { "tap_interval", Integer_Param, {&tap_interval }}, { "multiple_tap_delay", Integer_Param, {&multiple_tap_delay }}, { "pads_tap_interval", Integer_Param, {&pads_tap_interval }}, /* Additional wmode parameters */ { "palm_detect_enabled", Flag_Param, {&palm_detect_enabled }}, { "palm_detect_level", Integer_Param, {&palm_detect_level }}, { "multi_finger_tap_enable", Flag_Param, {&multi_finger_tap_enabled }}, { "multi_finger_stop_enabled", Flag_Param, {&multi_finger_stop_enabled }}, { "multi_finger_stop_delay", Integer_Param, {&multi_finger_stop_delay }}, { "fake_finger_layer_enabled", Integer_Param, {&fake_finger_layer_enabled }}, /* Additional options*/ { "touchpad_enabled", Flag_Param, {&touchpad_enabled }}, { "stick_enabled", Flag_Param, {&stick_enabled }}, { "stick_pressure_enabled", Flag_Param, {&stick_pressure_enabled }}, { "four_way_button_enabled", Flag_Param, {&four_way_button_enabled }}, { "four_way_button_is_mouse", Flag_Param, {&four_way_button_is_mouse }}, { "scrolling_enabled", Flag_Param, {&scrolling_enabled }}, { "auto_scrolling_enabled", Flag_Param, {&auto_scrolling_enabled }}, { "scrolling_edge", Integer_Param, {&scrolling_edge }}, { "scrolling_speed", Integer_Param, {&scrolling_speed }}, { "scrolling_button_factor", Float_Param, {&scrolling_button_factor }}, { "auto_scrolling_factor", Float_Param, {&auto_scrolling_factor }}, /* corner tap actions */ { "upper_left_action", Action_Param, {&corner_actions [0] }}, { "lower_left_action", Action_Param, {&corner_actions [1] }}, { "upper_right_action", Action_Param, {&corner_actions [2] }}, { "lower_right_action", Action_Param, {&corner_actions [3] }}, /* no. of fingers tap actions */ { "one_finger_tap_action", Action_Param, {&multi_finger_actions [0] }}, { "two_fingers_tap_action", Action_Param, {&multi_finger_actions [1] }}, { "three_fingers_tap_action", Action_Param, {&multi_finger_actions [2] }}, /* normal button actions */ { "left_button_action", Action_Param, {&normal_button_actions [0] }}, { "middle_button_action", Action_Param, {&normal_button_actions [1] }}, { "right_button_action", Action_Param, {&normal_button_actions [2] }}, { "fourth_button_action", Action_Param, {&normal_button_actions [3] }}, { "up_button_action", Action_Param, {&normal_button_actions [4] }}, { "down_button_action", Action_Param, {&normal_button_actions [5] }}, /* 4 way button actions */ { "four_way_left_button_action", Action_Param, {&four_button_actions [0] }}, { "four_way_right_button_action",Action_Param, {&four_button_actions [1] }}, { "four_way_up_button_action", Action_Param, {&four_button_actions [2] }}, { "four_way_down_button_action", Action_Param, {&four_button_actions [3] }}, /* Synaptic Stick (passthrugh,stick) actions */ { "stick_left_button_action", Action_Param, {&stick_actions [0] }}, { "stick_middle_button_action", Action_Param, {&stick_actions [1] }}, { "stick_right_button_action", Action_Param, {&stick_actions [2] }}, /* end of list */ { NULL, Flag_Param, {NULL }} }; /* ** The information returned in the identification packet. ** STIG page 10 */ typedef struct { int info_model_code; int info_major; int info_minor; } info_type; static info_type ident[2]; /* ** The information returned in the model ID packet. ** STIG page 11 */ #define INFO_ROT180_BITS 0x800000 /* bit 23 */ #define INFO_PORTRAIT_BITS 0x400000 /* bit 22 */ #define INFO_SENSOR_BITS 0x3F0000 /* bit 16-21 */ #define INFO_HARDWARE_BITS 0x00FE00 /* bit 9-15 */ #define INFO_NEW_ABS_BITS 0x000080 /* bit 7 */ #define INFO_CAP_PEN_BITS 0x000040 /* bit 6 */ #define INFO_SIMPLE_CMD_BITS 0x000020 /* bit 5 */ #define INFO_GEOMETRY_BITS 0x00000F /* bit 0-3 */ typedef struct { int info_rot180; int info_portrait; int info_sensor; int info_hardware; int info_new_abs; int info_cap_pen; int info_simple_cmd; int info_geometry; } model_id_type; static model_id_type model[2]; /* ** The sensor types as of STIG 2.5 ** Page 11. Plus some guessing. */ static char *model_names [] = { "Unknown", /* 0 */ "Standard TouchPad (TM41xx134)", "Mini Module (TM41xx156)", "Super Module (TM41xx180)", "Romulan Module", "Apple Module", "Single Chip", "Flexible pad (discontinued)", "Ultra-thin Module (TM41xx220)", "Wide pad Module (TW41xx230)", "TwinPad", /* 10 */ "StampPad Module (TM41xx240)", "Sub-mini Module (TM41xx140)", "MultiSwitch module (TBD)", "Standard Thin", "Advanced Technology Pad (TM41xx221)", "Ultra-thin Module, connector reversed", "Low Power Module", "Thin Module, ATP", "Snap dome Module, ATP", "FlexArm Module", /* 20 */ "TWIII Module (TouchWriter 3)", "TWIII Module (P64)", "Combo Module", "Squish Module", "Thin TTL Serial module", "TWIII Ultra Thin Module", "PS/2 Passthrough", "4 Button On Board Module", "6 Buttons Off Board Module", "6 Buttons On Board Module", /* 30 */ "Ultrathin TTL serial Module", "ClearPad Module", "HyperThin Sensor Module", "Pad With Scroll Strip", "UltraThin TTL rounded, serial Module", "Ultrathin ATP Module", "SubMini w/6 buttons", "Standard USB Module", "cPad Dropin Plain USB Module", "cPad", /* 40 */ "", "", "", "UltraNav", }; /* ** Define the information known about a sensor. ** STIG page 14. ** Resolution only apply for absolute mode. ** For older models the default resolution is 85x94. */ typedef struct { char *model; int x_per_mm; int y_per_mm; float width_mm; float height_mm; } sensor_info_type; static sensor_info_type sensor_info [] = { { "", 0, 0, 0.0, 0.0 }, { "Standard", 85, 94, 47.1, 32.3 }, { "Mini", 91, 124, 44.0, 24.5 }, { "Super", 57, 58, 70.2, 52.4 }, { "", 0, 0, 0.0, 0.0 }, { "", 0, 0, 0.0, 0.0 }, { "", 0, 0, 0.0, 0.0 }, { "", 0, 0, 0.0, 0.0 }, { "UltraThin", 85, 94, 47.1, 32.3 }, { "Wide", 73, 96, 54.8, 31.7 }, { "", 0, 0, 0.0, 0.0 }, { "Stamp", 187, 170, 21.4, 17.9 }, { "SubMini", 122, 167, 32.8, 18.2 }, }; static sensor_info_type *sensor[2] = { &sensor_info[0],&sensor_info[0] }; /* ** The information returned in the extended capability packet. ** STIG page 15 */ #define EXT_CAP_EXTENDED 0x8000 /* Bit 15 */ #define EXT_CAP_STICK 0x0080 /* Bit 8 */ #define EXT_CAP_PASS_THROUGH 0X0080 /* Bit 8!! */ #define EXT_CAP_SLEEP 0x0010 /* Bit 4 */ #define EXT_CAP_FOUR_BUTTON 0x0008 /* Bit 3 */ #define EXT_CAP_MULTI_FINGER 0X0002 /* Bit 1 */ #define EXT_CAP_PALM_DETECT 0X0001 /* Bit 0 */ typedef struct { int cap_ext; int cap_stick; int cap_sleep; int cap_four_button; int cap_multi_finger; int cap_palm_detect; } ext_cap_type; static ext_cap_type capabilities[2]; /* ** The information in the mode byte. ** STIG Page 17 */ #define ABSOLUTE_MODE 0x80 /* Bit 7 set */ #define RELATIVE_MODE 0x00 /* Bit */ #define HIGH_REPORT_RATE 0x40 /* Bit 6 set = 80 packages per second */ #define LOW_REPORT_RATE 0x00 /* Bit 40 packages per second */ #define USE_9600_BAUD 0x08 /* Bit 3 for serial protocol */ #define USE_1200_BAUD 0x00 /* Bit */ #define PS2_SLEEP 0x08 /* Bit 3 for ps2 protocol */ #define PS2_NO_SLEEP 0x00 /* Bit (only button press activates touchpad again)*/ #define NO_TAPDRAG_GESTURE 0x04 /* Bit 2 for model version >= 4 */ #define TAPDRAG_GESTURE 0x00 /* Bit */ #define EXTENDED_REPORT 0x02 /* Bit 1 for serial protocol absolute mode only */ #define NORMAL_REPORT 0x00 /* Bit */ #define STICK_DISABLE 0x02 /* Bit 1 for ps2 protocol this disables any stick attached */ #define STICK_ENABLED 0x00 /* Bit */ #define REPORT_W_ON 0x01 /* Bit 0 set */ #define REPORT_W_OFF 0x00 /* Bit */ /* ** The format of the translated data to a report. */ typedef struct { int left; int middle; int right; int fourth; int up; int down; int x; int y; int pressure; int gesture; int fingers; int fingerwidth; int w; } report_type; static report_type last_report,cur_report; /* ** A location record. ** This is needed to make an average over several packages, ** because the reported x,y might not be that accurate. */ typedef struct { int x; int y; } location_type; /* ** Parameters for controlling the touchpad. */ /* touchpad information */ static int res_x; static int res_y; static int x_per_mm; static int y_per_mm; /* status information */ static int packet_num = 0; static int was_edges = 0; static int was_non_edge = 0; static location_type last_locs [4]; static Gpm_Event last_state; static int tap_lower_limit_packet; static int tap_upper_limit_packet; static int last_corner_action = GPM_B_NOT_SET; static int last_finger_action = GPM_B_NOT_SET; static int last_normal_button_actions[6] = {GPM_B_NOT_SET,GPM_B_NOT_SET,GPM_B_NOT_SET,GPM_B_NOT_SET,GPM_B_NOT_SET,GPM_B_NOT_SET}; static int last_stick_button_actions[8] = {GPM_B_NOT_SET,GPM_B_NOT_SET,GPM_B_NOT_SET}; static int last_4_way_button_actions[8] = {GPM_B_NOT_SET,GPM_B_NOT_SET,GPM_B_NOT_SET,GPM_B_NOT_SET}; /* toss status information */ static int is_tossing = 0; static int was_tossing = 0; static int min_toss_dist__2 = 32000; static int max_toss_packets; static int min_toss_packets; static int prevent_toss_packets; static int toss_timer; static location_type toss_speed; static location_type touch_loc; /* Multi tap information */ static int gesture_delay = 0; static int fake_forget_tap_interval = 0; /* if hardware sends tap-hold, we need to keep track */ static int fake_time_to_forget_tap = 0; /* not to lose user defined actions in the hold periode. * (action like: Multifingers, non-repeating actions etc.*/ /* Multi finger information */ static int was_fingers = 0; static int multi_finger_stop_timer = 0; static int multi_finger_pressure = 0; static int multi_finger_xy = 0; /* Scrolling information */ static int is_scrolling = 0; /* Scrolling using touchpad edge*/ static int is_always_scrolling = 0; /* Only report scrolling, no mouse movement */ static int scrolling_speed_timer = 0; static int scrolling_amount_left = 0; /* Tells how much to scroll up or down */ /**************************************************************************** ** ** ROUTINES for processing either type of touchpad. ** ****************************************************************************/ #if DEBUG_REPORTS /* ** Dump the report data for debugging. ** ** Because the synaptics sends (trivial) data in one second after last touch, ** which makes reading the debug data harder, only dump the report if it is different ** than the previously dumped. */ static void tp_dump_report_data (report_type report, int edges, Gpm_Event* state) { static report_type last_report_reported; static unsigned int times_report_repeated = 0; report.left |= state->buttons & GPM_B_LEFT; report.right |= state->buttons & GPM_B_RIGHT; report.middle |= state->buttons & GPM_B_MIDDLE; if (memcmp(&report,&last_report_reported,sizeof(report_type)) == 0){ times_report_repeated++; return; } /* Was the last report repeated ? */ if(times_report_repeated > 0){ gpm_report (GPM_PR_DEBUG,"\rSynps2: Last report reported %d times\n",times_report_repeated); times_report_repeated = 0; } last_report_reported = report; gpm_report (GPM_PR_DEBUG, "\rSynps2: %c%c%c%c%c %4dx%-4d %3d %2d %d %c%c%c%c %c%c %3d%3d %d %8d %8d %c", report.fingers ? 'f' : '-', report.gesture ? 'g' : '-', report.left ? 'l' : '-', report.middle ? 'm' : '-', report.right ? 'r' : '-', report.x, report.y, report.pressure, report.w,was_fingers, edges & LEFT_EDGE ? 'l' : '-', edges & RIGHT_EDGE ? 'r' : '-', edges & BOTTOM_EDGE ? 'b' : '-', edges & TOP_EDGE ? 't' : '-', report.gesture && !report.fingers ? 't' : '-', report.gesture && report.fingers ? 'd' : '-', state->dx,state->dy,state->buttons, multi_finger_pressure,multi_finger_xy, (multi_finger_pressure>4500 && multi_finger_xy>50000? 'f':' ')); } #endif /* syn_dump_info ** ** Print properties for the hardare. ** */ static void syn_dump_info(int stick) { gpm_report (GPM_PR_INFO,"Synaptic %s Device:",(stick?"Stick":"Touchpad")); gpm_report (GPM_PR_INFO,"Synaptics Ident: model_code=%d Firmware version %d.%d", ident[stick].info_model_code, ident[stick].info_major, ident[stick].info_minor); gpm_report (GPM_PR_INFO,"Synaptics model:"); gpm_report (GPM_PR_INFO," rot180: %s", model[stick].info_rot180 ? "Yes" : "No"); gpm_report (GPM_PR_INFO," portrait: %s", model[stick].info_portrait ? "Yes" : "No"); gpm_report (GPM_PR_INFO," sensor: %d", model[stick].info_sensor); gpm_report (GPM_PR_INFO," %s", syn_model_name (model[stick].info_sensor)); gpm_report (GPM_PR_INFO," %s", sensor[stick]->model); gpm_report (GPM_PR_INFO," %dx%d res/mm", sensor[stick]->x_per_mm, sensor[stick]->y_per_mm); gpm_report (GPM_PR_INFO," %4.1fx%4.1f mm", sensor[stick]->width_mm, sensor[stick]->height_mm); gpm_report (GPM_PR_INFO," %dx%d res", res_x, res_y); gpm_report (GPM_PR_INFO," hardware: %d", model[stick].info_hardware); gpm_report (GPM_PR_INFO," newABS: %s", model[stick].info_new_abs ? "Yes" : "No"); gpm_report (GPM_PR_INFO," simpleCmd: %s", model[stick].info_simple_cmd ? "Yes" : "No"); gpm_report (GPM_PR_INFO," geometry: %d", model[stick].info_geometry); gpm_report (GPM_PR_INFO," extended: %s", capabilities[stick].cap_ext ? "Yes" : "No"); gpm_report (GPM_PR_INFO," stick: %s", capabilities[stick].cap_stick ? "Yes" : "No"); gpm_report (GPM_PR_INFO," sleep: %s", capabilities[stick].cap_sleep ? "Yes" : "No"); gpm_report (GPM_PR_INFO," 4 buttons: %s", capabilities[stick].cap_four_button ? "Yes" : "No"); gpm_report (GPM_PR_INFO," multifinger: %s", capabilities[stick].cap_multi_finger ? "Yes" : "No"); gpm_report (GPM_PR_INFO," palmdetect: %s", capabilities[stick].cap_palm_detect ? "Yes" : "No"); #if DEBUG_TOSS gpm_report (GPM_PR_INFO,"Min Toss Dist^2: %d\n", min_toss_dist__2); #endif } /* Get model name, STIG page 11 */ static char *syn_model_name (int sensor) { if (sensor < 0 || 44 < sensor ) { return "Reserved"; } else { return model_names [sensor]; } } /* convert the model id from bits to values * STIG page 11 */ static void syn_extract_model_id_info (int model_int, model_id_type *model) { model->info_rot180 = check_bits (model_int, INFO_ROT180_BITS); model->info_portrait = check_bits (model_int, INFO_PORTRAIT_BITS); model->info_sensor = (model_int & INFO_SENSOR_BITS) >> 16; model->info_hardware = (model_int & INFO_HARDWARE_BITS) >> 8; model->info_new_abs = check_bits (model_int, INFO_NEW_ABS_BITS); model->info_cap_pen = check_bits (model_int, INFO_CAP_PEN_BITS); model->info_simple_cmd = check_bits (model_int, INFO_SIMPLE_CMD_BITS); model->info_geometry = (model_int & INFO_GEOMETRY_BITS); } /* Translate the reported data into a record for processing * STIG page 14*/ static sensor_info_type *syn_get_sensor_info (int sensor_id) { if (sensor_id < 0 || 12 < sensor_id ) { return &sensor_info [0]; } else { return &sensor_info [sensor_id]; } } /* Translate the reported data of extended capabilities STIG page 15. If the extended bit is not set it should be assumed that neither of the other capabilities is available.*/ static void syn_extract_extended_capabilities(int ext_cap_int, ext_cap_type *cap) { # ifdef DEBUG gpm_report(GPM_PR_INFO,"Synaptics Device Capabilities: %02X",ext_cap_int); # endif cap->cap_ext = check_bits (ext_cap_int, EXT_CAP_EXTENDED); if(cap->cap_ext){ cap->cap_stick = check_bits (ext_cap_int, EXT_CAP_STICK); cap->cap_sleep = check_bits (ext_cap_int, EXT_CAP_SLEEP); cap->cap_four_button = check_bits (ext_cap_int, EXT_CAP_FOUR_BUTTON); cap->cap_multi_finger = check_bits (ext_cap_int, EXT_CAP_MULTI_FINGER); cap->cap_palm_detect = check_bits (ext_cap_int, EXT_CAP_PALM_DETECT); }else{ cap->cap_stick = 0; cap->cap_sleep = 0; cap->cap_four_button = 0; cap->cap_multi_finger = 0; cap->cap_palm_detect = 0; /* Wmode is not supported, but this should be turned off after reading the config file.*/ } } /* ** Check for edges. */ static int tp_edges (location_type loc) { int edges = 0; if (loc.x <= x_min_center) edges |= LEFT_EDGE; if (loc.x >= x_max_center) edges |= RIGHT_EDGE; if (loc.y <= y_min_center) edges |= BOTTOM_EDGE; if (loc.y >= y_max_center) edges |= TOP_EDGE; return edges; } /** ** Handle scrolling. The wheel is way too fast to be usefull, so only report ** every scrolling_speed. This function is also called when scrolling is done by ** buttons, which is why DOWN and UP must be removed in the case of not scrolling. */ static void tp_handle_scrolling(Gpm_Event *state) { /* Limit the amount of scrolling, so that we do not overrun. */ if ( scrolling_amount_left > 256*20 ) scrolling_amount_left = 256*20; if ( scrolling_amount_left < -256*20 ) scrolling_amount_left = -256*20; state->buttons &= ~(GPM_B_DOWN | GPM_B_UP); if (scrolling_amount_left > scrolling_speed){ scrolling_amount_left -= scrolling_speed; state->buttons |= GPM_B_UP; }else if (scrolling_amount_left < -scrolling_speed){ scrolling_amount_left += scrolling_speed; state->buttons |= GPM_B_DOWN; } } /* ** process_action ** ** Do the action and return a button state for a given action list and mask. ** Actions that should not be repeated should report GPM_B_NOT_SET (when ** holding down a button). */ static int tp_process_action(touchpad_action_type *action_list, int mask) { int i = 0; int status = GPM_B_NOT_SET; static int Left_Double_Click = 0; if (mask == 0){ gpm_report (GPM_PR_WARN,"Action Mask is 0"); return GPM_B_NOT_SET; } while (action_list [i].action_mask) { if (check_bits (mask, action_list [i].action_mask)) { switch (action_list [i].action) { case Left_Button_Action: status = GPM_B_LEFT; break; case Middle_Button_Action: status = GPM_B_MIDDLE; break; case Right_Button_Action: status = GPM_B_RIGHT; break; case Fourth_Button_Action: status = GPM_B_FOURTH; break; case Up_Button_Action: scrolling_amount_left += ceil(scrolling_button_factor * scrolling_speed); status = GPM_B_UP; break; case Down_Button_Action: scrolling_amount_left -= ceil(scrolling_button_factor * scrolling_speed); status = GPM_B_DOWN; break; case Left_Double_Click_Action: Left_Double_Click++; status = GPM_B_LEFT; if(Left_Double_Click == 2) status = GPM_B_NONE; if(Left_Double_Click == 4) { status = GPM_B_NOT_SET; Left_Double_Click = 0; } break; case Turn_On_Off_Action: touchpad_enabled = !touchpad_enabled; status = GPM_B_NOT_SET; break; case Debug_On_Off_Action: # ifdef DEBUG_SYNAPTIC debug_syn_to_stderr = !debug_syn_to_stderr; # endif status = GPM_B_NOT_SET; break; case Reset_Touchpad_Action: syn_ps2_reset(which_mouse->fd); syn_ps2_absolute_mode(which_mouse->fd); status = GPM_B_NOT_SET; break; case Toggle_Four_Way_Button_Action: four_way_button_is_mouse = !four_way_button_is_mouse; status = GPM_B_NOT_SET; break; case Toggle_Stick_Pressure_Action: stick_pressure_enabled = !stick_pressure_enabled; status = GPM_B_NOT_SET; break; case Toggle_Scrolling_Action: is_always_scrolling = !is_always_scrolling; status = GPM_B_NOT_SET; break; case No_Action: status = GPM_B_NOT_SET; break; default: gpm_report (GPM_PR_WARN,"Default Action: Action no. %X not defined", action_list [i].action); status = GPM_B_NOT_SET; break; } return status; } i++; } return status; } /* ** tp_process_corner_taps. ** ** last_*_action is an easy way of remember which taps/buttons should call/repeat ** the action when the tap/button is held pressed. It could just as well have ** been one variable where each bit held the repeater info for all the ** tap/buttons, but that will mean more code. ** ** The reason for not actually reusing last_*_action, instead of ** calculating it again, is that some actions like scrolling have "side effects". ** This may be perceived as a design fault. ** ** tp_process_corner_taps and tp_process_button_press are more complicated than ** to what is obvious. This is because 1) in a corner tap-and-hold the hold ** could take place at non edge. 2) A normal tap-and-hold can be moved to a ** corner. */ static void tp_process_corner_taps (Gpm_Event *state, report_type *report) { static int edges_at_cornertap_time; if (report->gesture && ((is_corner (was_edges) && !last_report.gesture) || (last_corner_action != GPM_B_NOT_SET))) { if(!last_report.gesture && last_corner_action == GPM_B_NOT_SET) edges_at_cornertap_time = was_edges; last_corner_action = tp_process_action(corner_actions,edges_at_cornertap_time); if (last_corner_action != GPM_B_NOT_SET) state->buttons |= last_corner_action; } } /* tp_process_button_press ** ** Handles finger taps. Same way as tp_process_corner_taps. ** ** Should only calculate a tap if ** 1) There is a gesture (tap) ** 2) The tap did not start at a corner with a corneraction ** 3) If it is calculated before it should have returned a repeating action. */ static void tp_process_finger_taps (Gpm_Event *state, report_type *report) { if (report->gesture && last_corner_action == GPM_B_NOT_SET && !(corner_taps_enabled && is_corner (was_edges) && !last_report.gesture) && !(last_report.gesture && last_finger_action == GPM_B_NOT_SET) ){ if( ( multi_finger_tap_enabled && (was_fingers == 0 || was_fingers == 1)) || (!multi_finger_tap_enabled && was_fingers > 0)) last_finger_action = tp_process_action(multi_finger_actions, ONE_FINGER); if (multi_finger_tap_enabled && was_fingers == 2) last_finger_action = tp_process_action(multi_finger_actions, TWO_FINGERS); if (multi_finger_tap_enabled && was_fingers == 3) last_finger_action = tp_process_action(multi_finger_actions, THREE_FINGERS); if (last_finger_action != GPM_B_NOT_SET) state->buttons |= last_finger_action; } } /* ** tp_process_do_repeating_action ** ** The function test whether a feature's action should be repeated/called. The ** action should be called if the feature is there and if it was there last ** time, then it should be a repeating action. */ static inline void tp_process_repeating_action(Gpm_Event *state, int feature, int last_feature, int *last_action, touchpad_action_type *action_list,int feature_mask) { if (feature) { if (!(last_feature && *last_action == GPM_B_NOT_SET)) { *last_action = tp_process_action(action_list, feature_mask); if (*last_action != GPM_B_NOT_SET) state->buttons |= *last_action; } } else { *last_action = GPM_B_NOT_SET; } } /* ** tp_process_do_repeating_actions ** ** Call tp_process_do_repeating_action foreach possible action (right now only buttons.) */ static inline void tp_process_repeating_actions(Gpm_Event *state, int features, int last_features, int last_actions[], touchpad_action_type *action_list) { int feature_no, feature_mask; for(feature_no = 0; feature_no < 8; feature_no++) { feature_mask = (1<left, last_report.left, &last_normal_button_actions[0], normal_button_actions, LEFT_BUTTON); tp_process_repeating_action(state, report->right, last_report.right, &last_normal_button_actions[1], normal_button_actions, RIGHT_BUTTON); tp_process_repeating_action(state, report->middle, last_report.middle, &last_normal_button_actions[2], normal_button_actions, MIDDLE_BUTTON); tp_process_repeating_action(state, report->fourth, last_report.fourth, &last_normal_button_actions[3], normal_button_actions, FOURTH_BUTTON); tp_process_repeating_action(state, report->up, last_report.up, &last_normal_button_actions[4], normal_button_actions, UP_BUTTON); tp_process_repeating_action(state, report->down, last_report.down, &last_normal_button_actions[5], normal_button_actions, DOWN_BUTTON); } /* ** syn_process_wmode_report ** ** Translate synaptics specific values. */ static void syn_process_wmode_report( report_type *report ) { /* STIG page 9: Values of w, vary from pad to pad. It is not precise when pressure is small < 25. * 4-7 finger of normal width * 8-14 very wide finger or palm * 15 maximum reportable width */ report->fingerwidth = max(0,report->w - 4); /* Check whether there is one finger on the pad */ report->fingers = (report->pressure > finger_threshold); /* use w values. w = 0: 2 fingers, w = 1: 3 fingers, (if there is pressure) */ if (capabilities[0].cap_multi_finger){ if (report->pressure != 0 && (report->w == 0 || report->w == 1)){ report->fingers = 2+report->w; } } } /* ** syn_ps2_process_extended_packets ** ** The internal synaptics ps2 touchpads can have extra devices attached (stick, ** 4 way button) to them, and they reports there state as special embedded ** packets. These attached devices are handled here. ** ** The function returns 1 if it does not make sense to continue normal touchpad ** processing, 0 otherwise. ** ** I dont think that the external touchpads (serial) can have the same devices ** attached. This code should be moved to ps2 specific part, but it is easy to ** have it here. */ static int syn_ps2_process_extended_packets( unsigned char *data, report_type *report, Gpm_Event *state) { static int last_stick_buttons = GPM_B_NONE; static int last_4_way_buttons = GPM_B_NONE; int tmp_buttons = GPM_B_NONE; /* Sanity check of data. */ if ((report->pressure == 0 && (report->x != 0 || report->y != 0)) || report->w == 3 ) { /* Something is wrong, should we assume it is an extended packet? It * cannot be processed further than here as the pressure is 0, which would * break things, if the user uses it simultaneously with the touchpad. */ /* Allow some simultaneously usage: tap-hold on touchpad, with extended movement. * Do not do buttons, as they are not always correctly defined yet. */ if (last_report.gesture) { report->gesture = 1; if(tap_gesture_enabled) tp_process_finger_taps (state, report); if(corner_taps_enabled) tp_process_corner_taps (state, report); } /* Stick invariant bits (I hope). See absolute packets */ /* Stick pressed: The stick do only generates one packet, so double tap is * a problem; squeezing in a non-clicked state. It is probably not a real * problem, as it is hard not to move the stick a little between pressing, * thereby returning a non-clicked state between the packets. Maybe * press-lock mechanism is useful. Forget it, the styk supports it! */ if((data[0] & 0xFC) == 0x84 && (data[1] & 0xC8) == 0x08 && (data[3] & 0xFC) == 0xC4){ tp_process_button_press (state,report); if (stick_enabled) { state->dx= ((data[1] & 0x10) ? data[4]-256 : data[4]); state->dy= -((data[1] & 0x20) ? data[5]-256 : data[5]); } if (stick_pressure_enabled) { tmp_buttons = ((data[1] & 0x01) ? STICK_LEFT_BUTTON : 0); tmp_buttons |= ((data[1] & 0x04) ? STICK_MIDDLE_BUTTON : 0); tmp_buttons |= ((data[1] & 0x02) ? STICK_RIGHT_BUTTON : 0); tp_process_repeating_actions(state,tmp_buttons,last_stick_buttons, &last_stick_button_actions[0],stick_actions); } last_stick_buttons = tmp_buttons; # ifdef DEBUG_STICK gpm_report (GPM_PR_DEBUG,"StickData? %02x %02x %02x %02x %02x %02x :dx:%d dy:%d b:%d", data[0],data[1],data[2],data[3],data[4],data[5], state->dx,state->dy,state->buttons); # endif return 1; } /* 4 way button invariant bits (I hope). I dont know the official name. */ if((data[0] & 0xFC) == 0x80 && (data[1] & 0xFF) == 0x00 && (data[3] & 0xFC) == 0xC0 && report->x < 4 && report->y < 4 ){ if(four_way_button_enabled){ report->fourth = !report->fourth; /* Note that this is reversed. */ tp_process_button_press (state,report); if (four_way_button_is_mouse){ /* Report motion */ if (report->x & 1) /* UP */ state->dy = -1; if (report->y & 1) /* DOWN */ state->dy = 1; if (report->x & 2) /* LEFT */ state->dx = -1; if (report->y & 2) /* RIGHT */ state->dx = 1; }else{ /* Report buttons */ tmp_buttons = ((report->x & 1) ? FOUR_UP_BUTTON : 0); /* UP */ tmp_buttons |= ((report->y & 1) ? FOUR_DOWN_BUTTON : 0); /* DOWN */ tmp_buttons |= ((report->x & 2) ? FOUR_LEFT_BUTTON : 0); /* LEFT */ tmp_buttons |= ((report->y & 2) ? FOUR_RIGHT_BUTTON: 0); /* RIGHT */ tp_process_repeating_actions(state,tmp_buttons,last_4_way_buttons, &last_4_way_button_actions[0],four_button_actions); } } last_4_way_buttons = tmp_buttons; if ( scrolling_amount_left != 0 ){ tp_handle_scrolling(state); } return 1; } /* This is unknown packet. */ gpm_report (GPM_PR_ERR,"\rSynps2: Pressure is 0, but x or y is not 0. " "Data: %02X %02X %02X %02X %02X %02X", data [0],data [1],data [2],data [3],data [4],data [5]); return 1; } /* Multiplexing with the stick (guest) device. */ if (stick_pressure_enabled) { tmp_buttons = report->pressure == 0 ? GPM_B_NONE : last_stick_buttons; if (tmp_buttons || last_stick_buttons) { tp_process_repeating_actions(state,tmp_buttons,last_stick_buttons, &last_stick_button_actions[0],stick_actions); last_stick_buttons = tmp_buttons; } } if (four_way_button_enabled) { tmp_buttons = report->pressure == 0 ? GPM_B_NONE : last_4_way_buttons; if (tmp_buttons || last_4_way_buttons) { tp_process_repeating_actions(state,tmp_buttons,last_4_way_buttons, &last_4_way_button_actions[0],four_button_actions); last_4_way_buttons = tmp_buttons; } } return 0; } /** ** Preprocess the report even before doing wmode stuff. ** Is always called directly after the conversion to check the data received. ** return 0 if it is reasonable, 1 if there is something wrong. ** ** Checks for correct data package, palm on the pad, number of fingers. ** */ static int tp_find_fingers ( report_type *report, Gpm_Event *state) { static int fake_extra_finger; static int was_fake_pressure; /* Check whether there is a palm on the pad */ if (palm_detect_enabled && report->fingers && (report->fingerwidth >= palm_detect_level)){ # ifdef DEBUG_PALM gpm_report (GPM_PR_DEBUG,"\rTouchpad: palm detected. finger width: %d",report->fingerwidth); # endif /* BUG should not return 1, as this drops packets. Return a repeated report ? */ /* last_locs [mod4 (packet_num - 1)].x = report->x; */ /* last_locs [mod4 (packet_num - 1)].y = report->y; */ /* or */ /* report->pressure = 0; */ return 1; } /* Extra check for vertical multi fingers which my pad is very bad to detect. ** Only check for extra fingers if no of fingers has not changed. Faking ** fingers may go wrong so sanity check needed. This is not an attempt to ** know the number of fingers all the time, as this is not needed. */ if (fake_finger_layer_enabled){ if (report->fingers > 1){ fake_extra_finger = 0; } if(report->fingers == 0){ fake_extra_finger = 0; # ifdef DEBUG_REPORTS multi_finger_pressure = 0; multi_finger_xy = 0; # endif }else if (report->fingers + fake_extra_finger == last_report.fingers) { multi_finger_pressure = sqr(report->pressure) - sqr(last_report.pressure); multi_finger_xy = (sqr(last_locs [mod4 (packet_num - 1)].x - report->x) + sqr(last_locs [mod4 (packet_num - 1)].y - report->y) ); /* Check for a second finger. If the move is larger than tap range, * then it is not a tap, and adding the finger does not change reported * buttons, but it will still stop the moving if * multi_finger_stop_enabled is on. These tests are complete base on my * imagination and experience, so any better idea are welcome. */ if(report->fingers == 1 && multi_finger_pressure > 4500 && multi_finger_xy > 2*sqr((double)tap_range)){ fake_extra_finger = 1; was_fake_pressure = report->pressure; }/* Check for third finger. */ else if(last_report.pressure > 180 && (report->fingers + fake_extra_finger) == 2 && multi_finger_pressure > 4500 && multi_finger_xy > 2*sqr((double)tap_range)){ fake_extra_finger = 2; was_fake_pressure = report->pressure; } else if ( (fake_extra_finger > 0) && (was_fake_pressure - report->pressure > 20)){ fake_extra_finger --; } else if(multi_finger_pressure < -5000 && multi_finger_xy > 2*sqr((double)tap_range)){ /* Probably missed a placed multi finger, as this is one removed! */ last_report.fingers ++; } } report->fingers += fake_extra_finger; } /* Check whether to reduce sensibility when adding or removing fingers */ if (multi_finger_stop_enabled){ /* Is a finger added or removed since last packet? */ if( (report->fingers > 1 && report->fingers > last_report.fingers) || (last_report.fingers > 1 && report->fingers < last_report.fingers) ){ /* Updating the timer right after another added/removed finger, * would make the undo moving become redo, so dont.*/ if(multi_finger_stop_timer != multi_finger_stop_delay - 1) multi_finger_stop_timer = multi_finger_stop_delay; # ifdef DEBUG_MULTI_FINGER gpm_report (GPM_PR_DEBUG,"%s multi finger %d %d %d", report->fingers > last_report.fingers ? "Add":"Remove", last_report.fingers,report->fingers,fake_extra_finger); # endif } /* Should be tested last, because of undo moving when removing fingers. */ else if(report->fingers == 0){ multi_finger_stop_timer = 0; } /* Stop moving the mouse after a finger adding/removing. */ if( multi_finger_stop_timer > 0){ last_locs [mod4 (packet_num - 1)].x = report->x; last_locs [mod4 (packet_num - 1)].y = report->y; last_locs [mod4 (packet_num - 2)].x = report->x; last_locs [mod4 (packet_num - 2)].y = report->y; /* Undo the previous move (before detecting of the adding/removing). */ if (multi_finger_stop_timer == multi_finger_stop_delay){ last_locs [mod4 (packet_num - 2)].x += last_state.dx * 2 / standard_speed_factor; last_locs [mod4 (packet_num - 2)].y -= last_state.dy * 2 / standard_speed_factor; } multi_finger_stop_timer --; } } /* If wmode is not used, we do not know all the informations to reset the * was_fingers variable or stop waiting for a tap-hold, so set a timer to * reset the variables when we believe it is time. pads_tap_interval is * optimal when set to the touchpads tap_interval. */ if(fake_forget_tap_interval){ if (report->fingers || report->gesture) fake_time_to_forget_tap = pads_tap_interval; if(fake_time_to_forget_tap > 0) fake_time_to_forget_tap --; else was_fingers = 0; } was_fingers = max(was_fingers,report->fingers); return 0; } /** ** tp_find_gestures ** Process the report from a wmode enabled device. No gesture calculation is ** done by the device in wmode, so the find tap and drag hold and tap hold gestures. ** ** Tap mechanism: High when touched. (=: assigned, -: decreased, +: increased) ** ** _________________________ ** | tap_lower/upper_limit |tap_interval| ** ----------------- ----------------- ** ** stroke_x/y : = ** finger_on_pad_timer: 0000123 +++++++++++++0000000000000000 ** time_to_forget_tap : 0000000 000000000000=---------3210000 ** gesture_delay : 0000000 ... 00000000000000000000000000000 ** drag_locked : 0000000 00000000000000000000000000000 ** gesture : 0000000 00000000000011111111111110000 ** ** Note: ** 0) When gesture is high a button is reported pressed (usually left button). ** 1) finger_on_pad_timer is increased at most to 1 larger than tap_upper_limit, ** but then it is not a tap any longer. ** 2) If tap_interval is larger than 1s (80 packets) then time_to_forget_tap never reaches 0, ** before the touchpads stop sending packets, so gesture is reported until touched again. ** ** ** Tap hold mechanism: High when touched. (=: assigned, -: decreased, +: increased) ** ** tap_interval ** ________________ v ___ ___ ** |tap_l/u_limit | |not tap| ** ----------------- ------ -------- ** ** stroke_x/y : = = ** finger_on_pad_timer: 0000123+ +++00000123++ +++0000 ** time_to_forget_tap : 00000000 000=----11111 1110000 ** gesture_delay : 00000000 ... 0000000000000 0000000 ** drag_locked : 00000000 0000000000000 0000000 ** gesture : 00000000 0001111111111 1110000 ** ** Note: ** 0) time_to_forget_tap is set to 1 when touching the pad 2 time, so the gesture is stop when released. ** (two fast taps would be a problem). ** ** ** Two consecutive taps mechanism: High when touched. (=: assigned, -: decreased, +: increased) ** ** tap_interval multiple_tap_delay ** ________________ v _______________ v | ** |tap_l/u_limit | |tap_l/u_limit| ** ----------------- ------ -------- ** ** stroke_x/y : = = ** finger_on_pad_timer: 0000123+ +++00000123++ ++00000000000000000 ** time_to_forget_tap : 00000000 000=----11111 11=---------32100000 ** gesture_delay : 00000000 ... 0000000000000 ... 00=----3210000000000 ** drag_locked : 00000000 0000000000000 00000000000000000000 ** gesture : 00000000 0001111111111 11000000001111100000 ** ** Note: ** 0) There is no gesture if gesture_delay is non zero. ** 1) multiple_tap_delay (gesture_delay) should be less than tap_interval (time_to_forget_tap), ** or else no second tap is reported. ** 2) Three fast taps (shorter than multiple_tap_delay) would reset gesture_delay the second time ** and only report 2 taps (the first and last). (likewise with more fast taps). BUG ? ** ** ** Drag lock mechanism: High when touched. (=: assigned, -: decreased, +: increased) ** MISSING */ static void tp_find_gestures (report_type *report) { static int finger_on_pad_timer = 0; static int time_to_forget_tap = 0; static int stroke_x; static int stroke_y; static int drag_locked = 0; if (report->fingers > 0) { /* finger down for the first time */ if (finger_on_pad_timer == 0) { stroke_x = report->x; stroke_y = report->y; } /* don't want timer to overflow */ if (finger_on_pad_timer < (tap_upper_limit_packet)) finger_on_pad_timer ++; /* dragging and consecutive tap gestures is to end with finger up * forget fast that there was a tap if this is not a part of a tap.*/ if (time_to_forget_tap > 0) time_to_forget_tap = 1; } else { /* interesting things happen when finger is up */ /* tap determination: Was the finger long enough on the pad and not too * long, while staying at the same place. */ if ((finger_on_pad_timer > (tap_lower_limit_packet)) && /* minimum finger down time */ (finger_on_pad_timer < (tap_upper_limit_packet)) && /* maximum finger down time */ ((distance((double)(stroke_x - last_report.x), /* maximum range for finger to drift while down */ (double)(stroke_y - last_report.y)) < sqr((double)tap_range)) || (multi_finger_tap_enabled && was_fingers > 1))) { /* not a consecutive tap? */ if (time_to_forget_tap == 0) gesture_delay = 0; /* right -> don't delay gesture */ else { /* a consecutive tap! */ gesture_delay = multiple_tap_delay * 80 / 1000; /* delay gesture to create multiple click */ } /* is drag locked */ if (drag_locked) { drag_locked = 0; /* unlock it and don't gesture. */ time_to_forget_tap = 0; } else time_to_forget_tap = tap_interval * 80 / 1000; /* setup gesture time to count down */ } else { /* It was not a tap */ /* a drag to lock? If user did a tap and quickly hold the finger longer than a tap. */ if (drag_lock_enabled && (time_to_forget_tap > 0) && (finger_on_pad_timer >= (tap_upper_limit_packet))) drag_locked = 1; if (time_to_forget_tap > 0) time_to_forget_tap --; if (time_to_forget_tap == 0) was_fingers=0; if (gesture_delay > 0) gesture_delay --; } # ifdef DEBUG_TAPS if (finger_on_pad_timer) gpm_report (GPM_PR_DEBUG,"A tap? %d < %d < %d && (%d)^2 + (%d)^2 < %d", tap_lower_limit_packet,finger_on_pad_timer,tap_upper_limit_packet, stroke_x-last_report.x,stroke_y-last_report.y,tap_range*tap_range); # endif finger_on_pad_timer = 0; } report->gesture = ((time_to_forget_tap > 0) && (gesture_delay == 0)) || drag_locked; } /* ** tp_process_report ** ** Process the touchpad report. Do tossing mechanism, edge mechanism (edge ** extension, corner taps), speed pressure. ** ** Tossing mechanism: High when touched. (=: assigned, -: decreased) ** (Pause) ** ________________________ _____ ______ prevent_toss ___ ** | min/max_toss_packets | < 1s | .... | ... | ** ----------------- ---------- ----- ---- ** ** is_tossing : 000000000000000000000000001111111111000000000000000000000000000000000000 ** was_tossing: 000000000000000000000000000000000001111111111111111111111111111111100000 ** toss_timer : ======================= ====================---- ... 321000== ** ** Note ** 0) When is_tossing is high a motion is reported/calculated. ** 1) if prevent_toss delay is 0 then toss to toss is allowed without pause. ** 2) if the pause is to short (< prevent_toss), the timers start over! ** 3) The 1 second limit is due to the touchpad only sends packets one second after a release. ** ** */ static void tp_process_report (Gpm_Event *state, report_type *report) { location_type loc; int edges; float pressure_speed_factor; float edge_speed_factor; int edge_motion_on; float dx, dy; /* extract location and edges */ loc.x = report->x; loc.y = report->y; edges = tp_edges (loc); if (report->fingers > 0) { if (tossing_enabled) { /* this is the cue to stop tossing, if we are tossing so Force a touch free pause before a new tossing is allowed (prevent toss time) */ was_tossing = (was_tossing || is_tossing); toss_timer = prevent_toss_packets; is_tossing = 0; /* if we start tossing then this is from where */ if (last_report.fingers == 0) { touch_loc = loc; } } /* Save the edge state, so we can detect a movement from non edge to edge. */ if (!edges) was_non_edge = 1; /* Need enough packets to perform smoothing on dy and dx * but it should work with only 2, so why is 4 required? */ if (packet_num > 3) { /* Is this start of scrolling? */ if (scrolling_enabled && !is_scrolling) is_scrolling = ((edges & scrolling_edge) && /* Note: only one &! */ !was_non_edge && /* Must start at edge */ !last_report.gesture && /* No consecutive tap */ (!corner_taps_enabled || /* Corner disabled or */ !is_corner (edges))); /* no corner */ /* ** 1) if edge motion is enabled, only activate if we moved into the edge or ** if not using the corners taps. Dont activate right away after a gesture ** from a corner tap. 2) No harm is done if activated when scrolling (as ** long as the scrolling edge is vertical). 3)If user is tap holding (then ** he cannot lift the finger and hit the touchpad boarder). */ edge_motion_on = (edges && edge_motion_enabled && (was_non_edge || !corner_taps_enabled || (!is_corner(edges) && !last_report.gesture))); edge_motion_on |= (edges && auto_scrolling_enabled && is_scrolling); edge_motion_on |= (edges && tap_hold_edge_motion_enabled && last_report.gesture && was_non_edge); /* compute the speed factor based on pressure */ pressure_speed_factor = standard_speed_factor; if (report->pressure > speed_up_pressure) { pressure_speed_factor *= 1.0 + ((report->pressure - speed_up_pressure) * speed_pressure_factor); } /* use the edge speed factor if edge_motion_speed is enabled */ edge_speed_factor = (edge_motion_speed_enabled ? pressure_speed_factor : standard_speed_factor); pressure_speed_factor = (pressure_speed_enabled ? pressure_speed_factor : standard_speed_factor); if ( auto_scrolling_enabled && is_scrolling ){ edge_speed_factor *= 1.0 + auto_scrolling_factor; } /* Calculate dx and dy depending on whether we are at an edge */ if (edge_motion_on && (edges & TOP_EDGE)) state->dy = -edge_speed * edge_speed_factor; else if (edge_motion_on && (edges & BOTTOM_EDGE)) state->dy = edge_speed * edge_speed_factor; else state->dy = (pressure_speed_factor * (((last_locs [mod4 (packet_num - 1)].y + last_locs [mod4 (packet_num - 2)].y) / 2) - ((loc.y + last_locs [mod4 (packet_num - 1)].y) / 2))); if (edge_motion_on && (edges & LEFT_EDGE)) state->dx = -edge_speed * edge_speed_factor; else if (edge_motion_on && (edges & RIGHT_EDGE)) state->dx = edge_speed * edge_speed_factor; else state->dx = (pressure_speed_factor * (((loc.x + last_locs [mod4 (packet_num - 1)].x) / 2) - ((last_locs [mod4 (packet_num - 1)].x + last_locs [mod4 (packet_num - 2)].x) / 2))); } /* If (packet_num > 3)*/ last_locs [mod4 (packet_num)] = loc; was_edges = edges; packet_num++; } else { /* No finger on the pad */ /* Start the tossing action if enabled */ if (tossing_enabled && was_fingers == 1 && !was_tossing && !is_scrolling && (packet_num > min_toss_packets) && (packet_num < max_toss_packets)) { dx = last_locs [mod4 (packet_num - 1)].x - touch_loc.x; dy = - (last_locs [mod4 (packet_num - 1)].y - touch_loc.y); #if DEBUG_TOSS gpm_report (GPM_PR_INFO,"dx: %2.1f dy: %2.1f tdist^2: %2.1f", dx, dy, distance (dx, dy)); #endif if (distance (dx, dy) > min_toss_dist__2) { is_tossing = 1; /* determine the toss speed */ if (does_toss_use_static_speed) { toss_speed.x = (static_toss_speed * standard_speed_factor * dx / (abs (dx) + abs (dy))); toss_speed.y = (static_toss_speed * standard_speed_factor * dy / (abs (dx) + abs (dy))); } else { toss_speed.x = dx * standard_speed_factor * toss_speed_factor; toss_speed.y = dy * standard_speed_factor * toss_speed_factor; } #if DEBUG_TOSS gpm_report (GPM_PR_INFO,"tossx: %d tossy: %d", toss_speed.x, toss_speed.y); #endif } } /* no fingers therefore: no edge, and restart packet count */ was_non_edge = 0; is_scrolling = 0; scrolling_speed_timer = 0; packet_num = 0; } /* if we are tossing then apply the toss speed */ if (tossing_enabled && is_tossing) { state->dx = toss_speed.x; state->dy = toss_speed.y; } /* if we are scrolling then stop moving and report wheel amount. The reason ** for having this above buttons actions is buttons can then move the ** mouse while scrolling. */ if ((scrolling_enabled && is_scrolling) || is_always_scrolling){ scrolling_amount_left -= state->dy; state->dx = 0; state->dy = 0; } /* check for (corner)buttons if we didn't just complete a toss or is scrolling */ if (!is_tossing && !was_tossing && !is_scrolling) { /* ** If there is no gesture then there are no buttons, but dont clear if we ** are about to make a double tap. Otherwise compute new buttons. */ if (!report->gesture && !report->left && !report->right && !report->middle && !report->fourth ) { if (!gesture_delay && !fake_time_to_forget_tap) { last_corner_action = GPM_B_NOT_SET; last_finger_action = GPM_B_NOT_SET; } state->buttons = GPM_B_NONE; } else { tp_process_button_press (state, report); if(tap_gesture_enabled) tp_process_finger_taps (state, report); if(corner_taps_enabled) tp_process_corner_taps (state, report); } } /* Is there any amount of scrolling left? Should be checked after corner actions. */ if (scrolling_amount_left != 0){ tp_handle_scrolling(state); } was_tossing = was_tossing && toss_timer; if (was_tossing) toss_timer--; /* remember the last state of the finger for toss processing */ last_report = *report; last_state = *state; /* Dont do anything if the pad is not enabled, but after corner actions are * done so it can be turn on again. */ if (!touchpad_enabled){ state->buttons = GPM_B_NONE; state->dx = 0; state->dy = 0; } #if DEBUG_REPORTS tp_dump_report_data (*report, edges, state); #endif } /* ** syn_read_config_file ** ** Read the configuration data from the global config file ** SYSCONFDIR "/gpm-syn.conf". */ void tp_read_config_file (char* config_filename) { char line [80]; char *token; char *end_ptr; int param, tmp_read_int_param; FILE *config; char full_filename[100]; int status; float tmp_read_float_param; status = snprintf(full_filename,100,SYSCONFDIR "/%s",config_filename); if (status < 0) { gpm_report (GPM_PR_WARN,"Too long path for configure file: %s", config_filename); return; } if ( !(config = fopen (full_filename, "r")) ) { gpm_report (GPM_PR_WARN,"Failed to open configfile: %s", full_filename); }else{ while (fgets (line, 80, config)) { if (line [0] == '[') { if ( (token = strtok (line, "[] \t")) ) { param = 0; /* which param is it */ while (param_data [param].name && strcasecmp (token, param_data [param].name) != 0) { param++; } /* was a param found? */ if (!param_data [param].name) { gpm_report (GPM_PR_WARN,"Unknown parameter %s", token); } else { token = strtok (NULL, "[] \t"); switch (param_data [param].p_type) { case Integer_Param: tmp_read_int_param = strtol (token, &end_ptr, 0); if (end_ptr != token) *(param_data [param].addr.int_p) = tmp_read_int_param; else gpm_report (GPM_PR_WARN,"Integer value (%s) for parameter %s is invalid", token, param_data [param].name); # if DEBUG_PARAMS gpm_report (GPM_PR_INFO,"Param %s set to %d", param_data [param].name, *(param_data [param].addr.int_p)); # endif break; case Float_Param: tmp_read_float_param = strtod (token, &end_ptr); if (end_ptr != token) *(param_data [param].addr.float_p) = tmp_read_float_param; else gpm_report (GPM_PR_WARN,"Float value (%s) for parameter %s is invalid", token, param_data [param].name); # if DEBUG_PARAMS gpm_report (GPM_PR_INFO,"Param %s set to %3.3f", param_data [param].name, *(param_data [param].addr.float_p)); # endif break; case Flag_Param: if (index ("YyTt1", token [0])) { *(param_data [param].addr.flag_p) = 1; } else if (index ("NnFf0", token [0])) { *(param_data [param].addr.flag_p) = 0; } else { gpm_report (GPM_PR_WARN,"Flag value (%s) for parameter %s is invalid", token, param_data [param].name); } # if DEBUG_PARAMS gpm_report (GPM_PR_INFO,"Param %s set to %s", param_data [param].name, (*(param_data [param].addr.flag_p) ? "True" : "False")); # endif break; case Action_Param: tmp_read_int_param = strtol (token, &end_ptr, 0); if (end_ptr != token) param_data [param].addr.corner_p->action = tmp_read_int_param; else gpm_report (GPM_PR_WARN,"Action value (%s) for parameter %s is invalid", token, param_data [param].name); # if DEBUG_PARAMS gpm_report (GPM_PR_INFO,"Param %s set to %d", param_data [param].name, param_data [param].addr.corner_p->action); # endif break; default: ; } } } } } fclose (config); } } /* ** syn_process_touchpad_config ** ** Extract important information and report (as desired) to the user. */ static void syn_process_config (info_type ident, model_id_type model) { sensor[0] = syn_get_sensor_info (model.info_sensor); gpm_report (GPM_PR_INFO, " Firmware version %d.%d\n", ident.info_major, ident.info_minor); tp_read_config_file ("gpm-syn.conf"); /* Limit the options depending on the touchpad capabilities. This should be done after reading the configure file so they may be turned off on purpose and can'nt be turned on if not supported. */ if(!capabilities[0].cap_ext){ wmode_enabled = 0; } if(!wmode_enabled || !capabilities[0].cap_palm_detect){ palm_detect_enabled = 0; } if(!wmode_enabled || !capabilities[0].cap_stick){ stick_enabled = 0; stick_pressure_enabled = 0; } /* fake_forget_tap_interval must be set if the hardware does the gesture. */ if(!wmode_enabled) fake_forget_tap_interval = 1; /* Save important information */ x_per_mm = sensor[0]->x_per_mm; y_per_mm = sensor[0]->y_per_mm; res_x = (int) (x_per_mm * sensor[0]->width_mm); res_y = (int) (y_per_mm * sensor[0]->height_mm); /* convert the tap times to packets (80 pkts/sec and 1000 ms/sec) */ tap_lower_limit_packet = tap_lower_limit * 80 / 1000; tap_upper_limit_packet = tap_upper_limit * 80 / 1000; /* Convert the toss dist to touchpad resolution from mm */ min_toss_dist__2 = sqr (min_toss_dist * (x_per_mm + y_per_mm) / 2); /* convert the toss times to packets (80 pkts/sec and 1000 ms/sec) */ max_toss_packets = max_toss_time * 80 / 1000; min_toss_packets = min_toss_time * 80 / 1000; prevent_toss_packets = prevent_toss_time * 80 / 1000; } /**************************************************************************** ** ** ROUTINES for interfacing to a SERIAL touchpad ** ****************************************************************************/ static unsigned char tp_hextoint (unsigned char byte1, unsigned char byte2) { unsigned char bytes [3]; int result; bytes [0] = byte1; bytes [1] = byte2; bytes [2] = '\0'; sscanf (bytes, "%x", &result); return result; } static void tp_serial_flush_input (int fd) { struct timeval tv; fd_set rfds; unsigned char junk; FD_ZERO(&rfds); FD_SET (fd, &rfds); tv.tv_sec = 0; tv.tv_usec = 0; usleep (50000); while (select (fd+1, &rfds, NULL, NULL, &tv) == 1) { #if DEBUG_FLUSH gpm_report (GPM_PR_INFO,"Serial tossing"); fflush (stdout); #endif read (fd, &junk, 1); #if DEBUG_FLUSH gpm_report (GPM_PR_INFO," %c", junk); #endif FD_ZERO(&rfds); FD_SET (fd, &rfds); tv.tv_sec = 0; tv.tv_usec = 0; } } static void tp_serial_read (int fd, unsigned char *bytes, size_t count) { struct timeval tv; fd_set rfds; int num_read = 0; int read_count; FD_ZERO (&rfds); FD_SET (fd, &rfds); tv.tv_sec = 1; tv.tv_usec = 0; while ((select (fd+1, &rfds, NULL, NULL, &tv) == 1) && (num_read < count)) { read_count = read (fd, &bytes [num_read], count - num_read); num_read += read_count; FD_ZERO (&rfds); FD_SET (fd, &rfds); } for (; num_read < count; num_read++) { bytes [num_read] = '\0'; } } /* Write a string of commands */ static void tp_serial_send_cmd(int fd, unsigned char *cmd) { unsigned char junk [15]; tp_serial_flush_input (fd); write (fd, cmd, strlen (cmd)); tp_serial_read (fd, junk, strlen (cmd)); #if DEBUG_FLUSH junk [strlen (cmd)] = '\0'; gpm_report (GPM_PR_DEBUG,"serial tossing: %s", junk); #endif } /* write 'mode' to a serial touchpad, STIG 58 */ static void syn_serial_set_mode (int fd, unsigned char mode) { unsigned char bytes [15]; sprintf (bytes, "%%C3B%02X5555", mode); #if DEBUG_SENT_DATA gpm_report (GPM_PR_DEBUG,"modes: %s", bytes); #endif tp_serial_send_cmd (fd, bytes); } /* read the identification from the serial touchpad, STIG 57*/ static void syn_serial_read_ident (int fd, info_type *info) { unsigned char bytes [5]; tp_serial_send_cmd (fd, "%A"); tp_serial_read (fd, bytes, 4); #if DEBUG_SENT_DATA bytes [4] = '\0'; gpm_report (GPM_PR_INFO,"Serial ident: %s", bytes); #endif if ( bytes [0] == 'S' && bytes [0] == 'T'){ /* reformat the data * The out commented is wrong according to STIG page 57.*/ /* info->info_model_code = (bytes [2] & 0x07) >> 3; */ info->info_model_code = bytes [2] >> 3; info->info_major = (bytes [2] & 0x07); info->info_minor = bytes [3]; }else{ gpm_report (GPM_PR_ERR,"PS/2 serial device doesn't appear to be a synaptics touchpad\n"); info->info_model_code = 0; info->info_minor = 0; info->info_major = 0; } } /* read the model_id from the serial touchpad (in ps/2 format) */ static void syn_serial_read_model_id (int fd, model_id_type *model) { unsigned char bytes [7]; int model_int; /* * for older touchpads this command is not supported and no response will * come. We should do non blocking input here to handle that case * and return byte2 as 0x47 ... later. * * pebl: It is easier just to check version number less than 3.2, STIG page 60. */ if ( (ident[0].info_major >= 4) || (ident[0].info_major == 3 && ident[0].info_minor >= 2)){ tp_serial_send_cmd (fd, "%D"); tp_serial_read (fd, bytes, 6); /* reformat the data */ model_int = ((tp_hextoint (bytes [0], bytes [1]) << 16) | (tp_hextoint (bytes [2], bytes [3]) << 8) | (tp_hextoint (bytes [4], bytes [5]))); # if DEBUG_SENT_DATA bytes [6] = '\0'; gpm_report (GPM_PR_DEBUG,"Serial model id: %s", bytes); # endif }else{ model_int = 0; } syn_extract_model_id_info (model_int, model); } /* read the mode bytes and capabilities from the serial touchpad, STIG 57 */ static void syn_serial_read_cap (int fd, ext_cap_type *cap) { unsigned char bytes [8]; int cap_int = 0; tp_serial_send_cmd (fd, "%B"); tp_serial_read (fd, bytes, 8); #if DEBUG_SENT_DATA bytes [7] = '\0'; gpm_report (GPM_PR_DEBUG,"Serial capabilites: %s", bytes); #endif if (ident[0].info_major >= 4){ if (bytes [0] == '3' && bytes [0] == 'B'){ cap_int = ((tp_hextoint (bytes [4], bytes [5]) << 8) | (tp_hextoint (bytes [6], bytes [7]))); }else{ gpm_report (GPM_PR_ERR,"PS/2 serial device doesn't appear to be a synaptics touchpad\n"); } } syn_extract_extended_capabilities(cap_int,cap); } /*------------------------------------------------------------------------*/ /* PS/2 Utility functions. */ /* Adapted from tpconfig.c by C. Scott Ananian */ /*------------------------------------------------------------------------*/ /* PS2 Synaptics is using LSB, STIG page 29. ** ** After power on or reset the touchpads are set to these defaults: ** 100 samples per second ** Resolution is 4 counts per mm ** Scaling 1:1 ** Stream mode is selected ** Data reporting is disabled ** Absolute mode is disabled */ /* Normal ps2 commands, Command set is on STIG page 33 */ #define PS2_RESET 0xFF /* Reset */ #define PS2_RESEND 0xFE /* Resend command */ #define PS2_SET_DEFAULT 0xF6 /* Set default */ #define PS2_DISABLE_DATA 0xF5 /* Stop sending motion data packets */ #define PS2_ENABLE_DATA 0xF4 /* Start sending motion data packets */ #define PS2_SAMPLE_RATE 0xF3 /* Set sample rate to value in a following byte */ #define PS2_READ_DEVICE 0xF2 /* Read device type (ack and idcode) */ #define PS2_REMOTE_MODE 0xF0 /* Set touchpad in remote mode */ #define PS2_WRAP_MODE 0xEE /* Enter wrap mode */ #define PS2_END_WRAP_MODE 0xEE /* Leave wrap mode */ #define PS2_READ_DATA 0xEB /* Read move data (in remote mode)*/ #define PS2_STREAM_MODE 0xEA /* Enter stream mode (device sends move data) */ #define PS2_STATUS_REQ 0xE9 /* Ask for status request */ #define PS2_RESOLUTION 0xE8 /* Set resolution to next transmitted byte */ #define PS2_SCALE_12 0xE7 /* Set scale to 1:2 */ #define PS2_SCALE_11 0xE6 /* Set scale to 1:1 */ /* Normal ps2 responce */ #define PS2_ERROR 0xFC /* Error, after a reset,resend or disconnect*/ #define PS2_ACK 0xFA /* Command acknowledge */ #define PS2_READY 0xAA /* Send after a calibration or ERROR */ #define PS2_MOUSE_IDCODE 0x00 /* Identification code (meaning mouse) sent after a PS2_READY */ /* Additional synaptic commands*/ #define PS2_SYN_CMD 0xE8 /* Four of these each with an following byte encodes a command*/ #define PS2_SYN_INERT 0xE6 /* This ps2 command is ignored by synaptics */ #define PS2_SYN_SET_MODE1 0x0A /* Set the mode byte 1 instead of sample rate (used after a sample rate cmd) */ #define PS2_SYN_SET_MODE2 0x14 /* Set the mode byte 2 instead of sample rate (used after a sample rate cmd). * All other sample rate gives undefined behavior (used to address 4 byte mode)*/ #define PS2_SYN_SET_STICK 0x28 /* Send byte to stick */ #define PS2_SYN_STATUS_OK 0x47 /* Special synaptics Status report is recognized */ /* These are the commands that can be given (encoded) by PS_SYN_CMD */ #define PS2_SYN_CMD_IDENTIFY 0x00 /* Identify Touchpad */ #define PS2_SYN_CMD_MODES 0x01 /* Read Touchpad Modes */ #define PS2_SYN_CMD_CAPABILITIES 0x02 /* Read capabilities */ #define PS2_SYN_CMD_MODEL_ID 0x03 /* Read model id */ #define PS2_SYN_CMD_SERIAL_NO_P 0x06 /* Read serial number prefix */ #define PS2_SYN_CMD_SERIAL_NO_S 0x07 /* Read serial number suffix */ #define PS2_SYN_CMD_RESOLUTIONS 0x08 /* Read resolutions */ /* read a byte from the ps/2 port */ static byte tp_ps2_getbyte(int fd) { byte b; # ifdef DEBUG_GETBYTE gpm_report(GPM_PR_DEBUG,"Getting byte"); # endif read(fd, &b, 1); # ifdef DEBUG_GETBYTE gpm_report(GPM_PR_DEBUG,"Got %X",b); # endif return b; } /* write a byte to the ps/2 port, handling resend.*/ static byte tp_ps2_putbyte(int fd, byte b) { byte ack; # ifdef DEBUG_PUTBYTE gpm_report(GPM_PR_DEBUG,"Send real byte %X",b); # endif write(fd, &b, 1); read(fd, &ack, 1); if (ack == PS2_RESEND) { write(fd, &b, 1); read(fd, &ack, 1); } # ifdef DEBUG_PUTBYTE_ACK gpm_report(GPM_PR_DEBUG,"Responce %X to byte %X",ack,b); # endif return ack; } /* Read a byte from the touchpad or use the Synaptics extended ps/2 syntax to * read a byte from the stick device. The variable stick is used to indicate * whether it is the touchpad or stick device that is meant. */ static byte syn_ps2_getbyte(int fd, int stick) { byte response[6]; if (!stick) { response[1]=tp_ps2_getbyte(fd); } else { response[0]=tp_ps2_getbyte(fd); response[1]=tp_ps2_getbyte(fd); response[2]=tp_ps2_getbyte(fd); response[3]=tp_ps2_getbyte(fd); response[4]=tp_ps2_getbyte(fd); response[5]=tp_ps2_getbyte(fd); /* Do some sanity checking */ if((response[0] & 0xFC) != 0x84) { gpm_report (GPM_PR_ERR,"Byte 0 of stick device responce is not valid"); return -1; } if((response[3] & 0xCC) != 0xC4) { gpm_report (GPM_PR_ERR,"Byte 3 of stick device responce is not valid"); return -1; } } return response[1]; } /* write byte to the touchpad or use the Synaptics extended ps/2 syntax to write * a byte to the stick device. The variable stick is used to indicate * whether it is the touchpad or stick device that is meant. */ static void syn_ps2_putbyte(int fd, int stick, byte b) { byte ack; # ifdef DEBUG_PUTBYTE gpm_report(GPM_PR_DEBUG,"Send byte %X to %s",b,(stick?"Stick":"Touchpad")); # endif if (!stick) { ack = tp_ps2_putbyte(fd,b); } else { syn_ps2_send_cmd(fd, DEVICE_TOUCHPAD, b); ack = tp_ps2_putbyte(fd, PS2_SAMPLE_RATE); if (ack != PS2_ACK) gpm_report (GPM_PR_ERR,"Invalid ACK to stick putbytet sample rate"); ack = tp_ps2_putbyte(fd, PS2_SYN_SET_STICK); if (ack != PS2_ACK) gpm_report (GPM_PR_ERR,"Invalid ACK to stick putbytet set stick"); ack = syn_ps2_getbyte(fd,DEVICE_STICK); } if (ack != PS2_ACK) gpm_report (GPM_PR_ERR,"Invalid ACK to synps2 %s putbyte %02X, got %02X", (stick?"Stick":"Touchpad"),b,ack); } /* use the Synaptics extended ps/2 syntax to write a special command byte * STIG page 36: Send exactly four PS2_SYN_CMD (which is otherwise ignored) * and after each a byte with the 2 first bits being the command (LSB). End it with * either PS2_SAMPLE_RATE or PS2_STATUS_REQ. It is hinted to send an inert command * first so not having five or more PS2_SYN_CMD by coincident. * * If data is for the stick device every byte has to be encode by the above method. */ static void syn_ps2_send_cmd(int fd, int stick, byte cmd) { int i; # ifdef DEBUG_CMD gpm_report(GPM_PR_DEBUG,"Send Command %X to %s",cmd,(stick?"Stick":"Touchpad")); # endif /* initialize with 'inert' command */ tp_ps2_putbyte(fd, PS2_SYN_INERT); for (i=0; i<4; i++) { syn_ps2_putbyte(fd, stick, PS2_SYN_CMD); syn_ps2_putbyte(fd, stick, (cmd>>6)&0x3); cmd<<=2; } } #if 0 /* write 'cmd' to mode byte 1. * This function is not used. * Code 0x0A is unknown to me, maybe used in older synaptics? * * This is used for some old 2 byte control synaptics. The function is not * used, and is probably leftover from mixing with Van der Plas code. */ static void syn_ps2_set_mode1(int fd, int stick, byte cmd) { syn_ps2_send_cmd(fd, stick, cmd); tp_ps2_putbyte(fd, stick, PS2_SAMPLE_RATE); tp_ps2_putbyte(fd, stick, PS2_SYN_SET_MODE1); } #endif /* write 'cmd' to mode byte 2 * See ps2_send_cmd. PS2_SR_SET_MODE stores the touchpad mode encoded in the * four PS2_SYN_CMD commands */ static void syn_ps2_set_mode2(int fd, int stick, byte cmd) { syn_ps2_send_cmd(fd, stick, cmd); syn_ps2_putbyte (fd, stick, PS2_SAMPLE_RATE); syn_ps2_putbyte (fd, stick, PS2_SYN_SET_MODE2); } /* read three byte status ('a','b','c') corresponding to register 'cmd' * Special status request for synaptics is given after a cmd. * Byte b is PS2_SYN_STATUS_OK to recognize a synaptics */ static void syn_ps2_status_rqst(int fd, int stick, byte cmd, byte *bytes) { gpm_report (GPM_PR_INFO,"Status request for %s, %X", (stick?"stick":"touchpad"),cmd); syn_ps2_send_cmd(fd, stick, cmd); syn_ps2_putbyte (fd, stick, PS2_STATUS_REQ); bytes [0]=syn_ps2_getbyte(fd,stick); bytes [1]=syn_ps2_getbyte(fd,stick); bytes [2]=syn_ps2_getbyte(fd,stick); gpm_report (GPM_PR_INFO,"Status request %X %X %X", bytes[0], bytes[1], bytes[2]); } #if 0 /* read the modes from the touchpad (in ps/2 format) */ static void syn_ps2_read_modes (int fd, int stick) { unsigned char bytes [3]; syn_ps2_status_rqst (fd, stick, PS2_SYN_CMD_MODES, bytes); # ifdef DEBUG gpm_report (GPM_PR_INFO,"Synaptic PS/2 %s modes: %02X", (stick?"stick":"touchpad"),bytes [2]); # endif } #endif /* read the identification from the ps2 touchpad */ static void syn_ps2_read_ident (int fd, int stick, info_type *info) { byte bytes [3]; syn_ps2_status_rqst (fd, stick, PS2_SYN_CMD_IDENTIFY, bytes); if (bytes [1] != PS2_SYN_STATUS_OK) { gpm_report (GPM_PR_ERR,"PS/2 device doesn't appear to have synaptics %s identification\n", (stick?"sticks":"touchpads")); info->info_minor = 0; info->info_model_code = 0; info->info_major = 0; } else { info->info_minor = bytes [0]; info->info_model_code = (bytes [2] >> 4) & 0x0f; info->info_major = bytes [2] & 0x0f; } } /* read the model_id from the ps2 touchpad/stick */ static void syn_ps2_read_model_id (int fd, int stick, model_id_type *model) { unsigned char bytes [3]; int model_int; syn_ps2_status_rqst (fd, stick, PS2_SYN_CMD_MODEL_ID, bytes); model_int = ((bytes [0] << 16) | (bytes [1] << 8) | (bytes [2])); syn_extract_model_id_info (model_int, model); } /* read the extended capability from the ps2 touchpad, STIG page 15 */ static void syn_ps2_read_cap (int fd, int stick, ext_cap_type *cap) { unsigned char bytes [3]; int ext_cap_int; syn_ps2_status_rqst (fd, stick, PS2_SYN_CMD_CAPABILITIES, bytes); if (bytes [1] != PS2_SYN_STATUS_OK) { gpm_report (GPM_PR_ERR,"PS/2 device doesn't appear to have synaptics %s capabilities\n", (stick?"stick":"touchpad")); ext_cap_int = 0; }else{ ext_cap_int = bytes[0] << 8 | bytes[2]; } syn_extract_extended_capabilities(ext_cap_int, cap); } /* * ps2_disable_data * * Disable data reporting (streaming), and flush eventual old packets. As the * kernel keeps a queue of received data from the touchpad, the next byte we * read could be old data and not the ack to our command or request. Disable * data should always be called before sending commands or request to the * touchpad. * * Note that this is a general ps2 command which should not be in this file, * but in mice.c. */ static void tp_ps2_disable_data (int fd) { struct timeval tv; fd_set rfds; unsigned char status; byte cmd = PS2_DISABLE_DATA; FD_ZERO(&rfds); FD_SET (fd, &rfds); tv.tv_sec = 0; tv.tv_usec = 0; write(fd,&cmd,1); usleep (50000); while (select (fd+1, &rfds, NULL, NULL, &tv) == 1) { read (fd, &status, 1); #if DEBUG_RESET gpm_report (GPM_PR_INFO,"PS/2 device disable data flush: %02X", status); #endif FD_ZERO(&rfds); FD_SET (fd, &rfds); tv.tv_sec = 0; tv.tv_usec = 0; } if (status != PS2_ACK) gpm_report (GPM_PR_ERR,"Invalid ACK to disable stream command, got %02X",status); } /* * syn_ps2_enable_data * * Enable data after a disable data command. Should have called the disable data * before calling this function. */ static void syn_ps2_enable_data(int fd) { if (stick_enabled) syn_ps2_putbyte(fd,DEVICE_STICK,PS2_ENABLE_DATA); syn_ps2_putbyte(fd,DEVICE_TOUCHPAD,PS2_ENABLE_DATA); } /* * syn_ps2_send_reset * * Send reset command and absorb additional READY, IDCODE from the * touchpad. Should have called the disable data before calling this function. * Synaptics garanties always to return PS2_READY. STIG page 31 and 48. */ static void syn_ps2_send_reset(int fd, int stick) { byte status,id_code = PS2_MOUSE_IDCODE; byte reset_cmd = PS2_RESET; gpm_report(GPM_PR_DEBUG,"Reseting Synaptic PS/2 %s\n",(stick?"Stick":"Touchpad")); /* Send reset command without eating the ack. */ if(!stick) { write(fd,&reset_cmd,1); status = tp_ps2_getbyte(fd); } else { syn_ps2_putbyte(fd, stick, reset_cmd); status = PS2_ACK; } /* Sometimes the touchpad sends additional ready,idcode before ack the reset command. * I dont know why! */ while (status == PS2_READY){ gpm_report(GPM_PR_INFO,"PS/2 device sending additional READY, ID CODE.\n"); id_code = syn_ps2_getbyte(fd,stick); status = syn_ps2_getbyte(fd,stick); } if (status != PS2_ACK || id_code != PS2_MOUSE_IDCODE){ gpm_report(GPM_PR_ERR,"Sending reset command to PS/2 Device failed: No ACK, got %02X.\n",status); } /* Wait 750 ms to recalibrate. */ usleep(750000); if ( (status = syn_ps2_getbyte(fd,stick)) != PS2_READY ){ gpm_report(GPM_PR_ERR,"Reseting PS/2 Device failed: No READY, got %02X.\n" "Check pc_keyb.c for reconnect smartness.\n",status); } if ( (id_code = syn_ps2_getbyte(fd,stick)) != PS2_MOUSE_IDCODE){ gpm_report(GPM_PR_ERR,"Reseting PS/2 Device failed: Wrong ID, got %02X.\n",id_code); } } /* ** syn_ps2_absolute_mode ** ** Put the touchpad into absolute mode. */ static void syn_ps2_absolute_mode(int fd) { /* select 6 byte packet, high packet rate, no-sleep */ syn_ps2_set_mode2 (fd, DEVICE_TOUCHPAD, (ABSOLUTE_MODE | HIGH_REPORT_RATE | PS2_NO_SLEEP | (wmode_enabled ? NO_TAPDRAG_GESTURE : TAPDRAG_GESTURE) | (stick_enabled ? STICK_ENABLED : STICK_DISABLE) | (wmode_enabled ? REPORT_W_ON : REPORT_W_OFF))); } /**************************************************************************** ** ** TRANSLATE FUNCTIONS the incoming data to an uniform report ** ****************************************************************************/ /* SERIAL PACKETS * STIG page 63, note 7 bit! * * byte 0 | 1 | reserved | gesture | finger | left | middle | right| * byte 1 | 0 | x-pos 7-12 | * byte 2 | 0 | x-pos 1-6 | * byte 3 | 0 | y-pos 7-12 | * byte 4 | 0 | y-pos 1-6 | * byte 5 | 0 | z pressure 7-2 | * byte 6 | 0 | down | up |y-pos 0 | x-pos 0 | z pressure 0-1 | (new_abs set) * byte 7 | 0 | reserved | W mode 0-3 | (new_abs and wmode set) */ static void syn_serial_translate_data (unsigned char *data, report_type *report) { report->gesture = check_bits (data [0], 0x10); report->fingers = check_bits (data [0], 0x08); report->left = check_bits (data [0], 0x04); report->middle = check_bits (data [0], 0x02); report->right = check_bits (data [0], 0x01); report->x = (data [1] << 7) | (data [2] << 1); report->y = (data [3] << 7) | (data [4] << 1); report->pressure = data [5] << 2; report->fourth = 0; report->up = 0; report->down = 0; report->w = 0; report->fingerwidth = 0; if (model[0].info_new_abs){ report->up = check_bits (data [6], 0x20); report->down = check_bits (data [6], 0x40); report->y |= (data [6] & 0x08) >> 3; report->x |= (data [6] & 0x04) >> 2; report->pressure |= (data [6] & 0x03); if (wmode_enabled){ report->w = (data [7] & 0x0F); } } } /* PS2 PACKETS * * Handle error packets. It may be garbage or not, as the synaptics pad keeps sending data 1 * sec after last touch. */ static void syn_ps2_translate_error(unsigned char *data, report_type *report) { gpm_report(GPM_PR_WARN,"Unrecognized Synaptic PS/2 Touchpad packet: %02X %02X %02X %02X %02X %02X", data [0],data [1],data [2],data [3],data [4],data [5]); if (reset_on_error_enabled) { /* Hack to get the fd: which_mouse is the current mouse, and as the synaptic code is called, it is the current mouse. */ syn_ps2_reset(which_mouse->fd); syn_ps2_absolute_mode(which_mouse->fd); } report->left = 0; report->middle = 0; report->right = 0; report->fourth = 0; report->up = 0; report->down = 0; report->x = 0; report->y = 0; report->pressure = 0; report->gesture = 0; report->fingers = 0; report->fingerwidth = 0; report->w = 0; } /* * STIG page 42 * wmode = 0, newer version. Gesture, right and left are repeated. * * byte 0 | 1 | 0 | Finger | Reserved | 0 | Gesture | Right | Left | * byte 1 | y-pos 11-8 | x-pos 11-8 | * byte 2 | z pressure 0-7 | * byte 3 | 1 | 1 | y-pos 12 | x-pos 12 | 0 | Gesture | Right | Left | * byte 4 | x - pos 0-7 | * byte 5 | y - pos 0-7 | * * STIG page 43 * wmode = 0, old version < 3.2. * Second is a second gesture!? * * byte 0 | 1 | 1 | z-pres 6-7 | Second | Gesture | Right | Left | * byte 1 | finger | 0 | 0 | x-pos 12-8 | * byte 2 | x-pos 0-7 | * byte 3 | 1 | 0 | z-pressure 0-5 | * byte 4 |Reserved | 0 | 0 | y - pos 8-12 | * byte 5 | y - pos 0-7 | * */ /* Translate the reported data into a record for processing */ static void syn_ps2_translate_data (unsigned char *data, report_type *report) { /* Check that this is indeed an absolute 6 byte new version packet*/ if (((data [0] & 0xc8) == 0x80) && /* Check static in byte 0 */ ((data [3] & 0xc8) == 0xc0) && /* Check static in byte 3 */ ((data [0] & 0x0F) == (data [3] & 0x0F))) { /* check repeated data */ report->left = check_bits (data [0], 0x01); report->middle = 0; report->right = check_bits (data [0], 0x02); report->fourth = 0; report->up = 0; report->down = 0; report->x = (((data [1] & 0x0F) << 8) | ((data [3] & 0x10) << 8) | ((data [4]))); report->y = (((data [1] & 0xF0) << 4) | ((data [3] & 0x20) << 7) | ((data [5]))); report->pressure = data [2]; report->gesture = check_bits (data [0], 0x04); report->fingers = check_bits (data [0], 0x20); report->fingerwidth = 0; report->w = 0; } /*th Old style packet maybe */ else if (((data [0] & 0xC0) == 0xC0) && /* Static in byte 0*/ ((data [1] & 0x60) == 0x00) && /* Static in byte 1*/ ((data [3] & 0xC0) == 0x80) && /* Static in byte 3*/ ((data [4] & 0x60) == 0x00)) { /* Static in byte 4*/ report->left = check_bits (data [0], 0x01); report->middle = 0; report->right = check_bits (data [0], 0x02); report->fourth = 0; report->up = 0; report->down = 0; report->x = (((data [1] & 0x1F) << 8) | ((data [2]))); report->y = (((data [4] & 0x1f) << 8) | ((data [5]))); report->pressure = (((data [0] & 0x30) << 2 ) | ((data [3] & 0x3f))); report->gesture = check_bits (data [0], 0x04); report->fingers = check_bits (data [1], 0x80); report->fingerwidth = 0; report->w = 0; } else { syn_ps2_translate_error(data,report); } } /* STIG page 42 * wmode = 1, * * byte 0 | 1 | 0 | W 2-3 | 0 | W 1 | Right | Left | * byte 1 | y-pos 11-8 | x-pos 11-8 | * byte 2 | z pressure 0-7 | * byte 3 | 1 | 1 | y-pos 12 | x-pos 12 | 0 | W 0 | R/D | L/U | * byte 4 | x - pos 0-7 | * byte 5 | y - pos 0-7 | * */ static void syn_ps2_translate_wmode_data (unsigned char *data, report_type *report) { /* Check that it is an absolute packet */ if (((data[0] & 0xc8) == 0x80) && ((data[3] & 0xc8) == 0xc0)) { report->left = check_bits (data[0], 0x01); report->middle = check_bits (data[0] ^ data[3], 0x01); report->right = check_bits (data[0], 0x02); report->fourth = check_bits (data[0] ^ data[3], 0x02); report->up = 0; report->down = 0; report->x = (((data[1] & 0x0F) << 8) | ((data[3] & 0x10) << 8) | ((data[4]))); report->y = (((data[1] & 0xF0) << 4) | ((data[3] & 0x20) << 7) | ((data[5]))); report->pressure = data[2]; report->fingers = 0; report->fingerwidth = 0; report->gesture = 0; report->w = (((data[3] & 0x04) >> 2) | ((data[0] & 0x04) >> 1) | ((data[0] & 0x30) >> 2)); } else { syn_ps2_translate_error(data,report); } } /**************************************************************************** ** ** INTERFACE ROUTINES ** ****************************************************************************/ /* ** syn_process_serial_data ** ** Process the touchpad 6 byte report. */ void syn_process_serial_data (Gpm_Event *state, unsigned char *data) { /* initialize the state */ state->buttons = 0; state->dx = 0; state->dy = 0; syn_serial_translate_data (data, &cur_report); if (wmode_enabled){ syn_process_wmode_report(&cur_report); } if (tp_find_fingers(&cur_report,state)) return; if (wmode_enabled){ tp_find_gestures(&cur_report); } tp_process_report (state, &cur_report); } /* ** syn_serial_reset ** ** Reset the touchpad to relative mode. This cannot be called directly as a ** command should be sent in 1200 baud, not 9600. */ void syn_serial_reset(int fd) { gpm_report (GPM_PR_INFO,"Reseting Synaptic Serial Touchpad."); syn_serial_set_mode (fd, (RELATIVE_MODE | HIGH_REPORT_RATE | USE_9600_BAUD | NORMAL_REPORT | REPORT_W_OFF)); } /* ** syn_serial_init ** ** Initialize the synaptics touchpad. Read model and identification. ** Determine the size of the touchpad in "pixels". Select 6/7/8 byte packets, ** select 9600 baud, and select high packet rate. */ int syn_serial_init (int fd) { int return_packetlength; gpm_report(GPM_PR_DEBUG,"Initializing Synaptics Serial TouchPad"); syn_serial_read_ident (fd, &ident[0]); syn_serial_read_model_id (fd, &model[0]); syn_serial_read_cap(fd, &capabilities[0]); syn_process_config (ident[0], model[0]); syn_dump_info(0); /* Change the protocol to use either 6,7 or 8 bytes, STIG 63 */ if (model[0].info_new_abs){ if (wmode_enabled){ return_packetlength = 8; }else{ return_packetlength = 7; } }else{ return_packetlength = 6; wmode_enabled = 0; } syn_serial_set_mode (fd, (ABSOLUTE_MODE | HIGH_REPORT_RATE | USE_9600_BAUD | (model[0].info_new_abs ? EXTENDED_REPORT : NORMAL_REPORT) | (wmode_enabled ? REPORT_W_ON : REPORT_W_OFF))); return return_packetlength; } /* ** syn_process_ps2_data ** ** Process the touchpad 6 byte report. */ void syn_process_ps2_data (Gpm_Event *state, unsigned char *data) { /* gpm_report(GPM_PR_DEBUG,"Data %02x %02x %02x %02x %02x %02x",data[0],data[1],data[2],data[3],data[4],data[5]); */ /* initialize the state */ state->buttons = 0; state->dx = 0; state->dy = 0; if (wmode_enabled) { syn_ps2_translate_wmode_data (data, &cur_report); if (syn_ps2_process_extended_packets(data,&cur_report,state)) return; syn_process_wmode_report(&cur_report); if (tp_find_fingers(&cur_report,state)) return; tp_find_gestures(&cur_report); }else { syn_ps2_translate_data (data, &cur_report); if (tp_find_fingers(&cur_report,state)) return; } tp_process_report (state, &cur_report); } /* ** syn_ps2_reset ** ** Reset the touchpad and set to relative mode (ps/2). */ void syn_ps2_reset (int fd) { gpm_report (GPM_PR_INFO,"Reseting Synaptic PS/2 Touchpad."); /* Stop incoming motion data (of whatever kind absolute/relative). */ tp_ps2_disable_data(fd); if(stick_enabled) syn_ps2_send_reset(fd,DEVICE_STICK); syn_ps2_send_reset(fd,DEVICE_TOUCHPAD); syn_ps2_enable_data(fd); } /* * syn_ps2_init_stick * * Initialize the attached device on the synaptics touchpad (usually a stick). */ static void syn_ps2_init_stick(int fd) { if (!stick_enabled) return; gpm_report(GPM_PR_DEBUG,"Initializing Synaptics PS/2 Stick Device"); /* Reset it, set defaults, streaming */ syn_ps2_send_reset(fd,DEVICE_STICK); syn_ps2_putbyte(fd,DEVICE_STICK,PS2_SET_DEFAULT); syn_ps2_putbyte(fd,DEVICE_STICK,PS2_STREAM_MODE); /* Unused */ /* syn_ps2_read_ident (fd, DEVICE_STICK, &ident[1]); */ /* syn_ps2_read_model_id (fd, DEVICE_STICK, &model[1]); */ /* syn_ps2_read_cap (fd, DEVICE_STICK, &capabilities[1]); */ /* syn_dump_info(DEVICE_STICK); */ } /* ** syn_ps2_init ** ** Initialize the synaptics touchpad. Read model and identification. ** Determine the size of the touchpad in "pixels". Select 6 byte packets, ** and select high packet rate. */ void syn_ps2_init (int fd) { gpm_report(GPM_PR_DEBUG,"Initializing Synaptics PS/2 TouchPad"); tp_ps2_disable_data(fd); /* Init touchpad */ syn_ps2_send_reset(fd,DEVICE_TOUCHPAD); syn_ps2_read_ident (fd, DEVICE_TOUCHPAD, &ident[0]); syn_ps2_read_model_id (fd, DEVICE_TOUCHPAD, &model[0]); syn_ps2_read_cap (fd, DEVICE_TOUCHPAD, &capabilities[0]); syn_process_config (ident[0], model[0]); syn_dump_info(DEVICE_TOUCHPAD); syn_ps2_absolute_mode(fd); /* Absolut mode must be set before Init Stick device*/ syn_ps2_init_stick(fd); /* Enable absolut mode and streaming */ syn_ps2_enable_data(fd); } gpm-1.20.7/src/tools.c000066400000000000000000000054231204257734200144710ustar00rootroot00000000000000/* * tools.c - tools which are needed by client and server * * Copyright (c) 2001 Nico Schottelius * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ #include /* NULL */ #include #include #include /* these three are */ #include /* needed for */ #include /* stat() */ #include "headers/gpmInt.h" /* only used for some defines */ #include "headers/message.h" /***************************************************************************** * check, whether devfs is used or not. * See /usr/src/linux/Documentation/filesystems/devfs/ for details. * Returns: the name of the console (/dev/tty0 or /dev/vc/0) *****************************************************************************/ char *Gpm_get_console( void ) { char *back = NULL, *tmp = NULL; struct stat buf; /* first try the devfs device, because in the next time this will be * the preferred one. If that fails, take the old console */ /* Check for open new console */ if (stat(GPM_DEVFS_CONSOLE,&buf) == 0) tmp = GPM_DEVFS_CONSOLE; /* Failed, try OLD console */ else if(stat(GPM_OLD_CONSOLE,&buf) == 0) tmp = GPM_OLD_CONSOLE; if(tmp != NULL) if((back = malloc(strlen(tmp) + sizeof(char)) ) != NULL) strcpy(back,tmp); return(back); } /* what's the english name for potenz ? */ int Gpm_x_high_y(int base, int pot_y) { int val = 1; if(pot_y == 0) val = 1; else if(pot_y < 0) val = 0; /* ugly hack ;) */ else while(pot_y > 0) { val = val * base; pot_y--; } return val; } /* return characters needed to display int */ int Gpm_cnt_digits(int number) { /* 0-9 = 1 10^0 <-> (10^1)-1 * 10 - 99 = 2 10^1 <-> (10^2)-1 * 100 - 999 = 3 10^2 <-> (10^3)-1 * 1000 - 9999 = 4 ... */ int ret = 0, num = 0; /* non negative, please */ if(number < 0) number *= -1; else if(number == 0) ret = 1; else while(number > num) { ret++; num = (Gpm_x_high_y(10,ret) - 1); } return(ret); } gpm-1.20.7/src/twiddler.c000066400000000000000000000357161204257734200151570ustar00rootroot00000000000000/* * twiddler.c - support for the twiddler keyboard * * Copyright 1998 rubini@linux.it (Alessandro Rubini) * Changed 04/23/2001 nico@schottelius.org (Nico Schottelius) * --> removed hard wired dev names. Instead used symbolic constants and * generated option.consolename * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ********/ /* TODO: resolution change (mice.c) switch up/down (mice.c) manage X.... modifiers */ /* Done: two cfg files mouse buttons unblank special keys... meta keys auto-repeat: double press plus hold... README */ #include #include #include #include #include #include #include #include #include #include #include #include "headers/gpm.h" #include "headers/gpmInt.h" #include "headers/message.h" #include "headers/twiddler.h" #include "headers/daemon.h" /* * Each table is made up of 256 entries, as these are the possible chords * Then, there is one table for each modifier (two of them are not allowed). * Each entry is a pointer: a "low" pointer represents a single byte, true * pointers represent strings. This is not very clean, but it works well. */ char *twiddler_table[7][256]; /* This maps modifiers to tables */ struct twiddler_map_struct { unsigned long modifiers; char *keyword; char **table; } twiddler_map[] = { { TW_MOD_0, "", twiddler_table[0]}, { TW_MOD_S, "Shift", twiddler_table[1]}, { TW_MOD_N, "Numeric", twiddler_table[2]}, { TW_MOD_F, "Function", twiddler_table[3]}, { TW_MOD_C, "Control", twiddler_table[4]}, { TW_MOD_C, "Ctrl", twiddler_table[4]}, { TW_MOD_A, "Alt", twiddler_table[5]}, { TW_MOD_A, "Meta", twiddler_table[5]}, /* This is different!! */ { TW_MOD_C | TW_MOD_S, "Ctrl+Shift", twiddler_table[6]}, { TW_MOD_C | TW_MOD_S, "Shift+Ctrl", twiddler_table[6]}, { 0, NULL, NULL} }; /* Convert special keynames to strings */ struct twiddler_f_struct { char *instring; char *outstring; } twiddler_f[] = { {"F1", "\033[[A" }, {"F2", "\033[[B" }, {"F3", "\033[[C" }, {"F4", "\033[[D" }, {"F5", "\033[[E" }, {"F6", "\033[17~" }, {"F7", "\033[18~" }, {"F8", "\033[19~" }, {"F9", "\033[20~" }, {"F10", "\033[21~" }, {"F11", "\033[23~" }, {"F12", "\033[24~" }, {"F13", "\033[25~" }, {"F14", "\033[26~" }, {"F15", "\033[28~" }, {"F16", "\033[29~" }, {"F17", "\033[31~" }, {"F18", "\033[32~" }, {"F19", "\033[33~" }, {"F20", "\033[34~" }, {"Find", "\033[1~" }, {"Insert", "\033[2~" }, {"Remove", "\033[3~" }, {"Select", "\033[4~" }, {"Prior", "\033[5~" }, {"Next", "\033[6~" }, {"Macro", "\033[M" }, {"Pause", "\033[P" }, {"Up", "\033[A" }, {"Down", "\033[B" }, {"Left", "\033[D" }, {"Right", "\033[C" }, {NULL, NULL } }; /* Convert special keynames to functions */ struct twiddler_fun_struct { char *name; int (*fun)(char *string); }; /*===================================================================*/ /* This part deals with pushing keys */ /* Function support: if a chord maps to a function, we need two pointers: one to the function and one to its argument. Therefore we must keep an array that keeps both pointers, and the pointer in the table is just an handle to this pair of pointers. The table has a maximum len */ #define TWIDDLER_MAX_ACTIVE_FUNS 128 /* These are the special functions that perform special actions */ int twiddler_console(char *s) { int consolenr = atoi(s); /* atoi never fails :) */ int fd; if (consolenr == 0) return 0; /* nothing to do */ fd=open_console(O_RDONLY); if (fd < 0) return -1; if (ioctl(fd, VT_ACTIVATE, consolenr)<0) {close(fd); return -1;} /*if (ioctl(fd, VT_WAITACTIVE, consolenr)<0) {close(fd); return -1;} */ close(fd); return 0; } int twiddler_exec(char *s) { int pid; extern struct options option; switch(pid=fork()) { case -1: return -1; case 0: close(0); close(1); close(2); /* very rude! */ open(GPM_NULL_DEV,O_RDONLY); open(option.consolename,O_WRONLY); dup(1); execl("/bin/sh", "sh", "-c", s, NULL); exit(1); /* shouldn't happen */ default: /* father: */ return(0); } } /* The functions and their name */ struct twiddler_fun_struct twiddler_functions[] = { { "Console", twiddler_console }, { "Exec", twiddler_exec }, { NULL, NULL} }; /* The registered functions */ struct twiddler_active_fun { int (*fun)(char *s); char *arg; } twiddler_active_funs[TWIDDLER_MAX_ACTIVE_FUNS]; static int active_fun_nr = 0; int twiddler_do_fun(int i) { twiddler_active_funs[i].fun(twiddler_active_funs[i].arg); return 0; } /* * Ok, from now on it's normal handling */ /* This returns the table to use */ static inline char **twiddler_get_table(unsigned long message) { unsigned long mod = message & TW_ANY_MOD; struct twiddler_map_struct *ptr; for (ptr = twiddler_map; ptr->table; ptr++) if (ptr->modifiers == mod) return ptr->table; return NULL; } /* And this uses the item to push keys */ static inline int twiddler_use_item(char *item) { int fd = open_console(O_WRONLY); int i, retval = 0; unsigned char pushthis, unblank=4; /* 4 == TIOCLINUX unblank */ /* a special function */ /* a single byte */ if (((unsigned long)item & 0xff) == (unsigned long)item) { pushthis = (unsigned long)item & 0xff; retval = ioctl(fd,TIOCSTI,&pushthis); } else if(i = (struct twiddler_active_fun *)item - twiddler_active_funs, i>=0 && i < active_fun_nr) twiddler_do_fun(i); else /* a string */ for (; *item!='\0' && retval==0; item++) retval = ioctl(fd,TIOCSTI,item); ioctl(fd,TIOCLINUX,&unblank); if (retval) gpm_report(GPM_PR_ERR,GPM_MESS_IOCTL_TIOCSTI, option.progname, strerror(errno)); close(fd); return retval; } /* return value is one if auto-repeating, 0 if not */ int twiddler_key(unsigned long message) { char **table = twiddler_get_table(message); char *val; /* * These two are needed to avoid transmitting single keys when typing * chords. When the number of keys being held down decreases, data * is transmitted; but as soon as it increases the cycle is restarted. */ static int last_message; static int marked; /* * The time values are needed to implement repetition of keys */ static struct timeval tv1, tv2; static int nclick, last_pressed; #define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL)) #define DIF_TIME(t1,t2) ((t2.tv_sec -t1.tv_sec) *1000+ \ (t2.tv_usec-t1.tv_usec)/1000) if (!table) return 0; message &= 0xff; val = table[message]; if ((message < last_message) && !marked) { /* ok, do it */ marked++; /* don't retransmit on release */ twiddler_use_item(table[last_message]); if (last_pressed != last_message) { nclick=1; GET_TIME(tv1); } /* first click (note: this is release) */ last_pressed = last_message; } if (message < last_message) { /* marked: just ignore */ last_message = message; return 0; } /* building up a chord or repeating */ if (message != last_pressed) { /* building up */ marked=0; last_message = message; return 0; } /* Hmmm... double click */ if (message > last_message) { marked = 0; /* but don't use it */ GET_TIME(tv2); nclick = 1+ (DIF_TIME(tv1,tv2) < 300); /* if fast, counts as double */ last_message = message; if (nclick==1) GET_TIME(tv1); /* maybe the next.. */ return 1; } /* so, we are repeating... */ if (nclick == 2) { GET_TIME(tv1); /* compute delay */ if (DIF_TIME(tv2,tv1) > 500) /* held enough */ twiddler_use_item(table[message]); return 1; } return 0; } /*===================================================================*/ /* This part deals with reading the cfg file(s) */ /* retrieve the right table according to the modifier string */ char **twiddler_mod_to_table(char *mod) { struct twiddler_map_struct *ptr; int len = strlen(mod); if (len == 0) return twiddler_map->table; for (ptr = twiddler_map; ptr->table; ++ptr) { if (!strncasecmp(mod,ptr->keyword,len)) return ptr->table; } return NULL; } /* Convert the "M00L"-type string to an integer */ int twiddler_chord_to_int(char *chord) { char *convert = "0LMR"; /* 0123 */ char *tmp; int result = 0; int shift = 0; if (strlen(chord)!=4) return -1; while (*chord) { if (!(tmp = strchr(convert, *chord))) return -1; result |= (tmp-convert)<instring; sptr++) if (!strcmp(ptr,sptr->instring)) return sptr->outstring; /* finally, look for special functions */ for (fptr = twiddler_functions; fptr->name; fptr++) if (!strncasecmp(fptr->name,ptr,strlen(fptr->name))) { if (active_fun_nr == TWIDDLER_MAX_ACTIVE_FUNS) { gpm_report(GPM_PR_ERR,GPM_MESS_TOO_MANY_SPECIAL, option.progname, TWIDDLER_MAX_ACTIVE_FUNS); return s; } twiddler_active_funs[active_fun_nr].fun = fptr->fun; twiddler_active_funs[active_fun_nr].arg=strdup(ptr+strlen(fptr->name)); return (char *)(twiddler_active_funs + active_fun_nr++); } return s; /* error */ } int twiddler_key_init(void) { FILE *f; char *files[]={TW_SYSTEM_FILE, TW_CUSTOM_FILE, NULL}; int fileindex=0; char s[128], buf[64]; /* buf is for the string */ char mod[64], chord[64], *value; int index, lineno=0, errcount=0; char **table; static int initcount=0; if (initcount) return 0; /* do it only once */ initcount++; if (!(f = fopen(TW_SYSTEM_FILE,"r"))) { gpm_report(GPM_PR_ERR,GPM_MESS_DOUBLE_S,TW_SYSTEM_FILE,strerror(errno)); return -1; } /* ok, go on reading all the files in files[]*/ while (files[fileindex]) { while (fgets(s,128,f)) { lineno++; /* trim newline and blanks, if any */ if (s[strlen(s)-1]=='\n') s[strlen(s)-1] = '\0'; while (isspace(s[strlen(s)-1])) s[strlen(s)-1] = '\0'; if (s[0]=='\0' || s[0]=='#') continue; /* ignore comment or empty */ if (sscanf(s,"%s = %s",chord,buf)==2) /* M00L = anything */ mod[0]='\0'; /* no modifiers */ else if (sscanf(s, "%s %s = %s", mod, chord, buf)==3) /*Mod M00L =k */; else if (sscanf(s, "%s", buf)!= 0) { gpm_report(GPM_PR_ERR,GPM_MESS_SYNTAX_1,option.progname,TW_SYSTEM_FILE ,lineno); errcount++; continue; } /* Ok, here we are: now check the parts */ if (!(table = twiddler_mod_to_table(mod))) { gpm_report(GPM_PR_ERR,GPM_MESS_UNKNOWN_MOD_1,option.progname,TW_SYSTEM_FILE ,lineno, mod); errcount++; continue; } if ((index = twiddler_chord_to_int(chord)) <= 0) { gpm_report(GPM_PR_ERR,GPM_MESS_INCORRECT_COORDS,option.progname, TW_SYSTEM_FILE,lineno, chord); errcount++; continue; } if ((value = twiddler_rest_to_value(s))==s) { gpm_report(GPM_PR_ERR,GPM_MESS_INCORRECT_LINE,option.progname,TW_SYSTEM_FILE ,lineno,s); errcount++; continue; } if (table[index]) { gpm_report(GPM_PR_ERR,GPM_MESS_REDEF_COORDS,option.progname,TW_SYSTEM_FILE, lineno, mod, *mod ? " " : "", chord); } /* all done */ if (value) table[index]=value; else table[index]=""; /* the empty string represents the nul byte */ } /* fgets */ fclose(f); while (files[++fileindex]) /* next file, optional */ if ( (f=fopen(files[fileindex],"r")) ) break; } return errcount; }