pax_global_header00006660000000000000000000000064120636122650014515gustar00rootroot0000000000000052 comment=16cbe449f30f8ef363015e7a5955c079f09b7564 tinyos-tools-1.4.2/000077500000000000000000000000001206361226500142045ustar00rootroot00000000000000tinyos-tools-1.4.2/licenses/000077500000000000000000000000001206361226500160115ustar00rootroot00000000000000tinyos-tools-1.4.2/licenses/bsd.txt000066400000000000000000000030621206361226500173230ustar00rootroot00000000000000/* * Copyright (c) 2011 * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. * - Neither the name of the copyright holders nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */ tinyos-tools-1.4.2/tools/000077500000000000000000000000001206361226500153445ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/Bootstrap000077500000000000000000000011411206361226500172440ustar00rootroot00000000000000#!/bin/sh set -e srcdir=src ACLOCAL="aclocal" AUTOMAKE="automake" AUTOCONF="autoconf" AUTOHEADER="autoheader" set -x ( $ACLOCAL $AUTOCONF [ -d config-aux ] || mkdir config-aux $AUTOMAKE -a -c ) set -x ( # If you include this above, errors regarding $(EXEEXT) in # tinyos/java/env/Makefile.am cause the block to be exited # before running this command below. I was able to address # the $(EXEEXT) errors for windows, but it still died in # redhat 9 so I'm moving this call to below. (cd platforms/mica/uisp; ./bootstrap) ) rm -f config.cache $srcdir/config.cache tinyos-tools-1.4.2/tools/Makefile.am000066400000000000000000000000701206361226500173750ustar00rootroot00000000000000AUTOMAKE_OPTIONS = foreign SUBDIRS = platforms tinyos tinyos-tools-1.4.2/tools/README000066400000000000000000000006511206361226500162260ustar00rootroot00000000000000This directory contains the tinyos tools that are distributed in the tinyos-tools package, along with the spec files for all tinyos packages (the release directory). To install the tinyos tools from CVS, you must first prepare the configure scripts here and in platforms/mica/uisp: ./Bootstrap (cd platforms/mica/uisp;./bootstrap) Then you can configure, make and install as usual: ./configure make make install tinyos-tools-1.4.2/tools/build.xml000066400000000000000000000013271206361226500171700ustar00rootroot00000000000000 tinyos-tools-1.4.2/tools/configure.ac000066400000000000000000000101171206361226500176320ustar00rootroot00000000000000#!/bin/sh # Copyright (c) 2005 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. dnl -*- m4 -*- # force autoconf 2.5 on Debian systems AC_PREREQ(2.50) AC_INIT(tinyos-tools, 1.4.2) AC_CONFIG_AUX_DIR(config-aux) AM_INIT_AUTOMAKE AC_CANONICAL_HOST AC_PROG_CC AC_PROG_CXX AC_PROG_RANLIB AC_PATH_PROG(pathperl, perl) if test -z "$pathperl" ; then AC_MSG_ERROR(I can't find perl); fi AC_PATH_PROGS(pathpython, [python2 python]) if test -z "$pathpython" ; then AC_MSG_ERROR(I can't find python); fi if test -z "$NESCC_PREFIX"; then AC_PATH_PROG(pathnescc, nescc) if test -z "$pathnescc"; then AC_MSG_ERROR(I can't find nescc) else NESCC_PREFIX=`dirname "$pathnescc"` NESCC_PREFIX=`dirname "$NESCC_PREFIX"` fi fi nescc_prefix=`(cd $NESCC_PREFIX;pwd)` AC_SUBST(nescc_prefix) if test -z "$DEFAULT_TARGET"; then DEFAULT_TARGET=mica fi default_target=$DEFAULT_TARGET AC_MSG_NOTICE(Default ncc build target is $default_target) AC_MSG_NOTICE(...but using a tos/.default-platform file is a better choice) AC_SUBST(default_target) if test -z "$TOSDIR"; then if test -d ../tos; then TOSDIR=../tos elif test -d ../../tos; then TOSDIR=../../tos elif test -d $HOME/nest/tos; then TOSDIR=$HOME/nest/tos else AC_MSG_ERROR(I can't find the tos directory); fi fi TOSDIR=`(cd $TOSDIR;pwd)` AC_MSG_NOTICE(TinyOS directory is $TOSDIR) AC_SUBST(TOSDIR) AC_MSG_CHECKING(for cygwin) case $host in *-*-cygwin*) AC_MSG_RESULT(yes) JNIPREFIX= JNISUFFIX=dll JNIVERSIONS=. INSTALLJNI="install --group=SYSTEM" CYGWIN=yes ;; *-apple-darwin*) JNIPREFIX=lib JNISUFFIX=jnilib JNIVERSIONS=. INSTALLJNI="install" AC_MSG_RESULT(no) DARWIN=yes ;; *) JNIPREFIX=lib JNISUFFIX=so JNIVERSIONS="-32. -64." INSTALLJNI="install" AC_MSG_RESULT(no) esac AM_CONDITIONAL([CYGWIN], [test "$CYGWIN"]) AM_CONDITIONAL([DARWIN], [test "$DARWIN"]) AC_MSG_CHECKING(for JDK location) JAVAC_DIR=`/bin/sh tinyos/misc/tos-locate-jre --javac` if test $? -ne 0; then AC_ERROR(java not found) fi JDK=`dirname "$JAVAC_DIR"` AC_MSG_RESULT($JDK) function jnimap { for v in $JNIVERSIONS; do /bin/echo -n "${JNIPREFIX}$1$v$JNISUFFIX " done } GETENVLIB=`jnimap getenv` TOSCOMMLIB=`jnimap toscomm` AC_SUBST(GETENVLIB) AC_SUBST(TOSCOMMLIB) AC_SUBST(JDK) AC_SUBST(INSTALLJNI) AC_SUBST(JNIPREFIX) AC_SUBST(JNISUFFIX) AC_CONFIG_SUBDIRS(platforms/mica/uisp) AC_OUTPUT( Makefile platforms/Makefile platforms/mica/Makefile platforms/mica/cc1000-channelgen/Makefile platforms/msp430/Makefile platforms/msp430/motelist/motelist-linux platforms/msp430/motelist/motelist-macos platforms/msp430/motelist/Makefile platforms/msp430/pybsl/Makefile platforms/msp430/pybsl/tos-bsl.1 platforms/msp430/pybsl/serial/Makefile platforms/msp430/pybsl/serial/serialposix.py platforms/msp430/pybsl/serial/__init__.py platforms/msp430/pybsl/serial/serialwin32.py platforms/msp430/pybsl/elf.py platforms/msp430/pybsl/tos-bsl platforms/sam3/samba-program.py platforms/sam3/Makefile platforms/intelmote2/openocd/imote2-ocd-program.py tinyos/Makefile tinyos/java/Makefile tinyos/java/env/Makefile tinyos/java/serial/Makefile tinyos/misc/tos-ident-flags tinyos/misc/tos-install-jni tinyos/misc/tos-set-symbols tinyos/misc/tos-write-buildinfo tinyos/misc/tos-write-image tinyos/misc/tos-storage-at45db tinyos/misc/tos-storage-stm25p tinyos/misc/tos-storage-pxa27xp30 tinyos/misc/tos-dump.py tinyos/misc/tos-nwprog tinyos/misc/tos-deluge tinyos/misc/tos-build-deluge-image tinyos/misc/tos-mote-key tinyos/misc/tos-check-env tinyos/misc/Makefile tinyos/ncc/Makefile tinyos/ncc/mig tinyos/ncc/ncc tinyos/ncc/ncg tinyos/ncc/nesdoc tinyos/ncc/nesdoc-py/Makefile tinyos/tosthreads/Makefile tinyos/tosthreads/tosthreads_standard_api.py tinyos/safe/Makefile tinyos/safe/tos-decode-flid tinyos/safe/tos-ramsize ) tinyos-tools-1.4.2/tools/platforms/000077500000000000000000000000001206361226500173535ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/Makefile.am000066400000000000000000000000701206361226500214040ustar00rootroot00000000000000AUTOMAKE_OPTIONS = foreign SUBDIRS = mica msp430 sam3 tinyos-tools-1.4.2/tools/platforms/intelmote2/000077500000000000000000000000001206361226500214355ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/intelmote2/openocd/000077500000000000000000000000001206361226500230645ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/intelmote2/openocd/imote2-ocd-program.py.in000077500000000000000000000110401206361226500274510ustar00rootroot00000000000000#!@pathpython@ # imote2-ocd-program.py # # This script programs an iMote2 connected to the local machine using # 'openocd'. This is just a wrapper to openocd and the telnet session # used to issue the device halt, flash erase, and reprogram commands. # # Usage: # imote2-ocd-program.py [main.bin.out] # # The "main.bin.out" file is produced by compiling a TinyOS binary # using "make intelmote2" and will be located in the build/intelmote2 # directory. If not provided on the command line, # build/intemote2/main.bin.out is used by default. # # Requirements: # - 'openocd' must be installed, on your PATH, and setuid root. # - Assumes that the "arm-usb-tiny.cfg" file is in /usr/local/etc. import os,sys,time import os.path import signal import subprocess import tempfile import re import telnetlib CHIP_TIMEOUT = 4 # How long to wait for JTAG, in seconds def usage(): print "Usage: imote2-ocd-program.py [binfile]" sys.exit(1) expect_found = False expect_timeout = False def alarmHandler(signum, frame): expect_timeout = True # Wait until expected pattern is received on the given filehandle. def expect(fh, pat, timeout=10): r = re.compile(pat) expect_found = False expect_timeout = False if (timeout != -1): signal.signal(signal.SIGALRM, alarmHandler) signal.alarm(timeout) while (not expect_found and not expect_timeout): try: line = fh.readline() except: # Possibly due to alarm break matches = r.findall(line) if (len(matches) != 0): expect_found = True break signal.alarm(0) if (not expect_found): raise RuntimeError, "Did not receive expected pattern '%s'" % pat def main(argv): tn = None if (len(argv) > 2): usage() if (len(sys.argv) < 2): binfile = "build/intelmote2/main.bin.out" else: binfile = argv[1] # Check to make sure filename exists if os.path.isfile(binfile) == False: print '"%s" does not exist. Exiting.' % binfile sys.exit() tempfn = None openocd_proc = None telnet_proc = None # Create a temporary file for the binary we want to install. # (This way openocd can read the file from /tmp.) tempfd, tempfn = tempfile.mkstemp(prefix="imote2-ocd-program") try: print "Programming imote2 with binary: %s" % binfile # Kill off any openocd daemons running. os.system("killall -q openocd") os.close(tempfd) # Don't need to keep temp file open # Copy binary to temp file and set permissions correctly os.system("/bin/cp %s %s" % (binfile, tempfn)) os.system("/bin/chmod 755 %s" % tempfn) print "Starting OpenOCD..." openocd_cmd = "openocd -f /usr/local/etc/arm-usb-tiny.cfg".split() openocd_proc = subprocess.Popen(openocd_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) expect(openocd_proc.stderr, "JTAG device found:") # Connect to openocd daemon print "Connecting to OpenOCD..." time.sleep(3) tn = telnetlib.Telnet('localhost', 3333) # Uncomment the following line for debugging output #tn.set_debuglevel(10) data = tn.read_until('>', CHIP_TIMEOUT) if data == '': print "Could not connect to OpenOCD." sys.exit() tn.write('reset\n') tn.read_until('(processor reset)') print "Halting device..." tn.read_until('>') tn.write('halt\n') print "Erasing flash..." tn.read_until('>') tn.write("flash protect 0 0 10 off\n") tn.read_until("cleared protection for sectors 0 through 10 on flash bank 0") tn.read_until('>') tn.write("flash erase_sector 0 0 10\n") tn.read_until("erased sectors 0 through 10 on flash bank 0") print "Writing image..." tn.read_until('>') tn.write('flash write_image %s\n' % (tempfn)) tn.read_until('wrote') print "Resuming device..." tn.read_until('>') tn.write('reset\n') tn.read_until('(processor reset)') tn.read_until('>') tn.write('resume\n') tn.read_until('>') tn.close() finally: # Do all cleanup here print "Doing cleanup..." if (tn != None): try: tn.close() except: # Ignore pass if (openocd_proc != None): os.kill(openocd_proc.pid, 2) if (tempfn != None): os.unlink(tempfn) if __name__ == "__main__": main(sys.argv) tinyos-tools-1.4.2/tools/platforms/mica/000077500000000000000000000000001206361226500202645ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/mica/Makefile.am000066400000000000000000000000751206361226500223220ustar00rootroot00000000000000AUTOMAKE_OPTIONS = foreign SUBDIRS = cc1000-channelgen uisp tinyos-tools-1.4.2/tools/platforms/mica/cc1000-channelgen/000077500000000000000000000000001206361226500232525ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/mica/cc1000-channelgen/Makefile.am000066400000000000000000000002231206361226500253030ustar00rootroot00000000000000AUTOMAKE_OPTIONS = foreign dist_man_MANS = tos-channelgen.1 bin_PROGRAMS=tos-channelgen all: $(EXES) tos_channelgen_SOURCES = tos-channelgen.c tinyos-tools-1.4.2/tools/platforms/mica/cc1000-channelgen/tos-channelgen.1000066400000000000000000000007741206361226500262510ustar00rootroot00000000000000.TH tos-channelgen 1 "Feb 3, 2006" .LO 1 .SH NAME tos-channelgen - Calculate valid CC1000 radio channels .SH SYNOPSIS \fBtos-channelgen\fR [\fB-p\fR] \fIfrequency\fR .SH DESCRIPTION \fBtos-channelgen\fR computes the CC1000 channel which is closest to the requested \fIfrequency\fR. With the \fB-p\fR option, \fBtos-channelgen\fR prints a table (suitable for use in a C initialiser) containing all the CC1000 settings for the channel. .SH EXAMPLES tos-channelgen 916000000 tos-channelgen -p 433000000 tinyos-tools-1.4.2/tools/platforms/mica/cc1000-channelgen/tos-channelgen.c000066400000000000000000000231131206361226500263230ustar00rootroot00000000000000// $Id: tos-channelgen.c,v 1.4 2006-12-12 18:23:00 vlahan Exp $ /* -*- Mode: C; c-basic-indent: 2; indent-tabs-mode: nil -*- */ /* * IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. By * downloading, copying, installing or using the software you agree to * this license. If you do not agree to this license, do not download, * install, copy or use the software. * * Intel Open Source License * * Copyright (c) 2002 Intel Corporation * All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the Intel Corporation nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL OR ITS * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * Author: Phil Buonadonna * Revision: $Id: tos-channelgen.c,v 1.4 2006-12-12 18:23:00 vlahan Exp $ * */ /* * This tool provides two things: * 1) To verify the actual channel generated by the component function * CC1000Control.TuneManual(freq) The computation engine used in * this program is EXACTLY the same as it is for the on-device * stack and should generate the same result. * * 2) To generate a C-code preset-table entry for a given frequency. * * The assumptions used are: * XOSC Freq - 14.745600 MHz * Separation Freq - 64 KHz * IF - 150 KHz * LO Injection - High Side * Baud Rate - 38.4 Kbaud (19.2 realized w/ Manchester Encoding) */ #include #ifndef __CYGWIN__ #include #endif char gfPrintPreset = 0; enum { IF = 150000, FREQ_MIN = 4194304, FREQ_MAX = 16751615 }; const uint32_t FRefTbl[9] = {2457600, 2106514, 1843200, 1638400, 1474560, 1340509, 1228800, 1134277, 1053257}; const uint16_t CorTbl[9] = {1213, 1416, 1618, 1820, 2022, 2224, 2427, 2629, 2831}; const uint16_t FSepTbl[9] = {0x1AA, 0x1F1, 0x238, 0x280, 0x2C7, 0x30E, 0x355, 0x39C, 0x3E3}; uint32_t cc1000ComputeFreq(uint32_t desiredFreq) { uint32_t ActualChannel = 0; uint32_t RXFreq = 0, TXFreq = 0; int32_t Offset = 0x7fffffff; uint16_t FSep = 0; uint8_t RefDiv = 0; uint8_t i; for (i = 0; i < 9; i++) { uint32_t NRef = ((desiredFreq + IF)); uint32_t FRef = FRefTbl[i]; uint32_t Channel = 0; uint32_t RXCalc = 0, TXCalc = 0; int32_t diff; NRef = ((desiredFreq + IF) << 2) / FRef; if (NRef & 0x1) { NRef++; } if (NRef & 0x2) { RXCalc = 16384 >> 1; Channel = FRef >> 1; } NRef >>= 2; RXCalc += (NRef * 16384) - 8192; if ((RXCalc < FREQ_MIN) || (RXCalc > FREQ_MAX)) continue; TXCalc = RXCalc - CorTbl[i]; if ((TXCalc < FREQ_MIN) || (TXCalc > FREQ_MAX)) continue; Channel += (NRef * FRef); Channel -= IF; diff = Channel - desiredFreq; if (diff < 0) diff = 0 - diff; if (diff < Offset) { RXFreq = RXCalc; TXFreq = TXCalc; ActualChannel = Channel; FSep = FSepTbl[i]; RefDiv = i + 6; Offset = diff; } } if (RefDiv != 0) { uint8_t ucRxVcoCurrent, ucRxLoDrive, ucRxMatch; uint8_t ucTxVcoCurrent, ucTxPaDrive; uint8_t ucBufCurrent, ucLNACurrent; if (ActualChannel < 500000000) { if (ActualChannel < 400000000) { // CURRENT (RX) //gCurrentParameters[0x9] = ((8 << CC1K_VCO_CURRENT) | (1 << CC1K_LO_DRIVE)); ucRxVcoCurrent = 8; ucRxLoDrive = 1; // CURRENT (TX) //gCurrentParameters[0x1d] = ((9 << CC1K_VCO_CURRENT) | (1 << CC1K_PA_DRIVE)); ucTxVcoCurrent = 9; ucTxPaDrive = 1; } else { // CURRENT (RX) // gCurrentParameters[0x9] = ((4 << CC1K_VCO_CURRENT) | (1 << CC1K_LO_DRIVE)); ucRxVcoCurrent = 4; ucRxLoDrive = 1; // CURRENT (TX) // gCurrentParameters[0x1d] = ((8 << CC1K_VCO_CURRENT) | (1 << CC1K_PA_DRIVE)); ucTxVcoCurrent = 8; ucTxPaDrive = 1; } // FRONT_END //gCurrentParameters[0xa] = (1 << CC1K_IF_RSSI); ucBufCurrent = 0; ucLNACurrent = 0; // MATCH //gCurrentParameters[0x12] = (7 << CC1K_RX_MATCH); ucRxMatch = 7; } else { // CURRENT (RX) // gCurrentParameters[0x9] = ((8 << CC1K_VCO_CURRENT) | (3 << CC1K_LO_DRIVE)); ucRxVcoCurrent = 8; ucRxLoDrive = 3; // CURRENT (TX) // gCurrentParameters[0x1d] = ((15 << CC1K_VCO_CURRENT) | (3 << CC1K_PA_DRIVE)); ucTxVcoCurrent = 15; ucTxPaDrive = 3; // FRONT_END //gCurrentParameters[0xa] = ((1<> 16) & 0xFF)); // MSB printf("0x%x,",(uint8_t)((RXFreq >> 8) & 0xFF)); printf("0x%x,\n ",(uint8_t)((RXFreq) & 0xFF)); // LSB // FREQB printf("0x%x,",(uint8_t)((TXFreq >> 16) & 0xFF)); // MSB printf("0x%x,",(uint8_t)((TXFreq >> 8) & 0xFF)); printf("0x%x,\n ",(uint8_t)((TXFreq) & 0xFF)); // LSB // FSEP printf("0x%x,",(uint8_t)((FSep >> 8) & 0xFF)); //MSB printf("0x%x,\n ",(uint8_t)((FSep) & 0xFF)); // LSB // CURRENT (RX) printf("((%d << CC1K_VCO_CURRENT) | (%d << CC1K_LO_DRIVE)), \n ",ucRxVcoCurrent,ucRxLoDrive); // FRONT_END printf("((%d<\n"); } int main(int argc, char **argv) { uint32_t DesiredFreq; uint32_t ActualFreq; char *szProgName = argv[0]; char cOption; if (argc < 2) { PrintUsage(szProgName); return 0; } while ((--argc > 0) && ((*++argv)[0] == '-')) { while (cOption = *++argv[0]) { switch (cOption) { case 'p': gfPrintPreset = 1; break; default: PrintUsage(szProgName); return 0; } } } DesiredFreq = atoi(argv[0]); if ((DesiredFreq < 300000000) || (DesiredFreq > 1000000000)) { fprintf(stderr,"Frequency %d not in range 300000000 Hz - 1000000000 Hz\n",DesiredFreq); return 0; } ActualFreq = cc1000ComputeFreq(DesiredFreq); return 0; } tinyos-tools-1.4.2/tools/platforms/mica/uisp/000077500000000000000000000000001206361226500212445ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/mica/uisp/AUTHORS000066400000000000000000000013141206361226500223130ustar00rootroot00000000000000This version is a patch of the regular uisp distribution, maintained by Phil Buonadonna (pbuonado@intel-research.net) David Gay (dgay@intel-research.net) The regular distibution is: Original Author: Uros Platise Current maintainers: Marek Michalkiewicz Theodore A. Roth Contributors: Dean Ferreyra Daniel Berntsson Jason Kyle Uwe Bonnes Bryce Denney Alexander Popov Hamish Moffatt If you have made contributions and your name is missing, send an email saying so to . tinyos-tools-1.4.2/tools/platforms/mica/uisp/CHANGES000066400000000000000000000224671206361226500222520ustar00rootroot00000000000000From 20020524 on, see the ChangeLog file. The project is now hosted on http://savannah.gnu.org/projects/uisp/ . Changes in uisp-20020524: - add (GPL) copyright notices to all files, as required before the project can be added to savannah.gnu.org (again, thanks to Theodore A. Roth) - add preliminary ATmega8515 and ATmega162 support (untested, not yet supported by pavr/stk500, just added signature bytes to the list) - add a few items to the TODO list :) Changes in uisp-20020420: - add preliminary ATtiny26 and ATmega32 support (untested, not yet supported by pavr/stk500) - another parallel port programmer (MAXI - http://www.invtech.com.au/), thanks to Hamish Moffatt - fix upload/verify of >64K srec/ihex files, fix STK500 swapped signature bytes, and support case-insensitive AVR device names, thanks to Theodore A. Roth - ATtiny15 has a calibration byte, too (was not in an older version of the datasheet), thanks to Alexander Popov Changes in uisp-20020303: - add support for fuse bits with avr910/pavr programmers, and fix NULL pointer segfaults with no -dprog, thanks to Bryce Denney Changes in uisp-20011025: - DASA2 (aka PonyProg interface) fixes (thanks to Uwe Bonnes): AVR RESET# = inverted TXD (so sending BREAK resets the AVR) -dinvert=sck,miso,mosi,reset (invert each specified line) -dt_reset=N (reset inactive high time in microseconds) - add S2/S3 record support necessary for ATmega103 (thanks to Uwe Bonnes) - add ATmega64 to the device table (untested) - read/write ATmega64/128 extended fuse bits (untested, no pavr support yet) - tested on ATmega323 (thanks to Lars Thore W. Aarrestad for sending me samples) Changes in uisp-20011006: - add ATmega103-old back (bad sig bytes), these chips still exist :) - comment out free(argv_ok) to work around a segfault Changes in uisp-20010909: - add preliminary ATmega8/ATmega16/ATmega128 support based on recently released datasheets (not tested, no extended fuse bits, no pavr yet) - add support for yet another parallel port cable (DT006) - include pavr firmware source (hacked a little by me) as part of uisp (should also work in existing old "Atmel low cost" programmers after 1200 -> 2313 upgrade, assuming the original 1200 was in a socket...) Changes in uisp-20010818: - clear O_NONBLOCK flag with fcntl() instead of re-opening serial ports (failed with "Permission denied" on Cygwin, reported by Jason Kyle) - enable direct serial support only if TIOCMGET is defined, remove dummy TIOCM* defines added for Cygwin port Changes in uisp-20010813: - STK500 support (not yet complete, reverse-engineered communication protocol), thanks to Daniel Berntsson - Win9x/ME/NT/2K (Cygwin) port (needs the giveio.sys driver for direct I/O port access), thanks to Dean Ferreyra Changes in uisp-20010805: - fix recent termios changes (forgot to clear CRTSCTS and set VMIN, VTIME), also now set termios modes for dasa, dasa2 (still untested) - rename ATmega32 to ATmega323 (now that the official datasheet is out) - accept -dprog=pavr (for now as alias for -dprog=avr910, but may include more features in the future, see http://avr.jpk.co.nz/pavr/pavr.html) Changes in uisp-20010715: - rename AVR3 to FBPRG (-dprog=fbprg), as it seems that smartcard development boards might have illegal uses in some countries ;) - fix avr910 page write for ATmega163 (please test ATmega103 too!) - save/restore termios modes on serial ports, please test - change -datmel to -dprog=avr910 - uisp --help now prints to stdout, not stderr - change #include to #include - #include in Terminal.C - fix -dspeed handling in Serial.C Changes in uisp-20010701: - fix compile with g++ 3.0 - fix Programming Enable error message after 32 retries - add yet another parallel port interface (FBPRG/AVR3) - more about --download of=file in uisp --help Changes in uisp-20010616: - hopefully fix serial support (can't test), broken by my 20010211 -dpart changes, in code common to both serial and parallel modes that use different AVR device names :( - CHANGES -> CHANGES.old, README -> CHANGES, TODO - document FBPRG interface (not yet supported), and possible new design using tables to make adding these new cables easier, in DAPA.C comments Changes in uisp-20010501: - direct serial support: -dlpt=/dev/ttyS0 -dprog=dasa (or dasa2, see help) warning: completely untested, might or might not work - incompatible change: programmer type (for all these dummy parallel and serial programmers) is specified with -dprog=... (-dstk200 etc. is gone) - more portability changes (please test especially on non-x86 Linux and FreeBSD, and send me patches if I broke something...) - fix AT90S2323 signature byte (0x02 not 0x04) - increase SCK delay (4us to 5us) for devices with slow RC oscillators - don't skip 0xFF for page write - fix a few typos - remove OLD_DELAY_LOOP - longer timeout for -datmel (500ms -> 1s) Changes in uisp-20010211: - now available from http://www.amelek.gda.pl/avr/uisp/ and officially maintained by me (many thanks to Uros for all previous work) - device type can be specified if auto-detection fails, necessary for AT90S1200 and other parts with erased signature bytes: -dpart=at90s1200 - assume -dno-retry -dno-poll for AT90S1200 (data polling should work according to the datasheet, but bug reports indicate it doesn't, and 1K of program memory doesn't take that long to write anyway...) - support for yet another AVR ISP parallel port cable (not tested), based on information from http://www.bsdhome.com/avrprog/ - FreeBSD support (not tested, uncomment -DHAVE_PPI in the Makefile and tell me if it works, or send me a patch if it doesn't :) Changes in uisp-20001216: - ATmega163 now supported, and tested (many thanks to Odd Jostein Svendsli of Atmel Norway for help - sending me two samples of these new chips) - reading Flash and EEPROM contents to a srec file (--download of=file) - read/write fuse bits and boot lock bits, read calibration byte (use --segment=fuse, address 0 = fuse low, 1 = fuse high, 2 = calibration, 3 = lock bits: 1 1 BLB12 BLB11 BLB02 BLB01 LB2 LB1) - data polling with page write, if supported by device - added timer{add,sub,cmp} macros for systems that don't have them - security fix, drop privileges before opening the serial device too (warning: installation setuid root still not recommended, these are just random fixes, and not a complete review for security holes; using ppdev instead of direct I/O is highly recommended) Changes in uisp-20001125: - fix a bug where erasing a locked device (not possible to identify) might fail, now always wait 200 ms for chip erase - add support for "Atmel AVR ISP" parallel port cable - various cleanups (duplicated code to report statistics, etc.) Changes in uisp-20001118: - make it possible to compile without direct I/O port access for non-PC architectures, but still allow parallel port access via /dev/parportX (Linux ppdev driver) - include the latest ppdev driver (kernel patch) for Linux 2.2.17 - security: drop privileges before opening /dev/parportX (only matters if accidentally installed setuid root - still not recommended!) - data polling statistics reworked: min/avg/max ms/byte (so you can compare them with datasheet specs - maybe it helps in detecting chips that were programmed too many times) - fix a longstanding bug in data polling that caused random programming failures (could be worked around by specifying longer t_wd_flash - no, that really wasn't the chips failing :) - update write timing specs from the current datasheets (flash 8ms -> 4ms for most chips, programs a bit faster - now that the above bug is gone) - add more device codes for "Atmel low cost" (serial port) programmer (still looking for updated avr910.asm - it must exist somewhere, as avrprog.exe from AVR Studio claims to support all devices...) - started work on fuse bits (not finished yet), will be needed for ATmega163 (internal RC oscillator enabled by default) Changes in uisp-20001014: - fix some stupid bugs (SCK delay, writing lock bits) - avoid "invalid parameter" errors for -dt_wd_flash etc. if device locked - updated help and version information Changes in uisp-20000930: - compiles with g++ 2.95.2 (tested on Debian 2.2), does not depend on kernel header files for parallel port bit definitions - as in PonyProg, support for the "ppdev" Linux driver (included in pre-2.4.0 kernels, available separately for 2.2.x - please bug Alan to add it to 2.2.18 :), as well as the old direct I/O port access (works with any kernel, but requires root privileges) - more reliable delays on very fast machines, using gettimeofday() (programming may be very slow on <=486 but should work otherwise) - support for more new devices, such as ATmega161 (not tested) - support for programming lock bits with --lock option (currently only both at the same time, and no ATmega161 BLBxx bits yet) - when not programming, try to disable (PS/2) parallel port data outputs - this may allow cheap cables (no 74HC244 inside) to work if the ISP pins are also used for other things (not tested) - removed endian_bug backwards compatibility, various other cleanups tinyos-tools-1.4.2/tools/platforms/mica/uisp/COPYING000066400000000000000000000431271206361226500223060ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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. tinyos-tools-1.4.2/tools/platforms/mica/uisp/ChangeLog000066400000000000000000000370461206361226500230300ustar00rootroot000000000000002003-06-20 Theodore A. Roth * configure.in: Bump version (back to cvs track). * src/DAPA.C: There's some bug in recent linux kernels which makes ioperm I/O port permission changes be delayed (you get a segmentation fault at the instruction accessing the I/O port). May be related to this: http://www.securitytracker.com/alerts/2003/May/1006778.html. Known to affect RedHat's 2.4.20-13.9 kernel. [Thanks to David Gay for finding and fixing this and for the link.] 2003-06-18: Theodore A. Roth * Release 20030618. 2003-06-18 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Cut 20030618 release. * NEWS: Minor update to note release. 2003-05-27 Theodore A. Roth * Makefile.am (EXTRA_DIST): Add doc/uisp-parport-connect.txt. * doc/uisp-parport-connect.txt: Add note about mega128 PDI/PDO pins. 2003-05-27 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Bump version. * TODO: Add note about fuse and lock bits. * doc/uisp-parport-connect.txt: New file (found on net). 2003-05-18 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Bump version. * NEWS: Fix spelling mistake. 2003-05-13 Theodore A. Roth * configure.in: Update copyright year. * src/Avr.C: Ditto. * src/Avr.h: Ditto. * src/DAPA.C: Ditto. * src/DAPA.h: Ditto. * src/Error.h: Ditto. * src/MotIntl.C: Ditto. * src/Serial.C: Ditto. 2003-05-12 Theodore A. Roth * uisp.1.in: Added new options. If an option takes an argument, show what it should be. * src/Main.C: Make a few usage notes more verbose to clarify some of the options. 2003-05-12 Theodore A. Roth * uisp.1.in: Update pavr URL. Update bsd URL. Update bug report email address. Update download URL. 2003-05-12 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Bump version. * src/DAPA.C: Fix a bug in which setting -dlpt= for direct IO tries to open the default port name instead of the direct port. [Thanks to Pavel Celeda for reporting the problem and isolating a fix.] 2003-05-10 Theodore A. Roth * src/Main.C: Update URLs for pavr and bsd programmers. s/Futurtec/Futurlec/ for ett programmer. * TODO: Update pavr URL. 2003-05-10 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Bump version. * src/Serial.C: Fix select() failure on cygwin due to use of getdtablesize() function. [Thanks to Marc Wetzel for the fix and Jason Kyle for reporting.] 2003-05-08 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Bump version. * NEWS: Add note about pagesize fix. * src/Stk500.C: Fix num fuse bytes for mega162/mega169/mega103. When writing a page to the stk500, set the pagesize based on the pagesize parameter or if the parameter is zero, to 128 (this was causing programming of a 1200 to hang since the pagesize was fixed at 256 which was too long). 2003-05-08 Theodore A. Roth * src/Avr.C: Mega162 has 3 fuse bytes, so set flags to AVR_M128 instead of AVR_M163. [Thanks to John Norgaard for reporting this.] 2003-05-05 Theodore A. Roth * src/Stk500.C: Add a unique string to some "Device is not responding correctly." error messages. 2003-05-04 Theodore A. Roth * NEWS: New file. 2003-04-18 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Bump version. * TODO: Updated. * src/DAPA.C: Handle TIOCMGET #ifdef's so that enum values are still valid in switch statements. Also, add check to see if TIOCCBRK is defined before using it. (This was causing the build to fail on cygwin. 2003-04-16 Theodore A. Roth * src/DAPA.C: * src/Error.h: * src/Main.C: * src/MotIntl.C: * src/Serial.C: When throwing an Error_C, pass an argument so that the user has a clue as to the cause of the failure. (Maybe the user won't then have to spend two hours looking for what went wrong. *cough*) 2003-03-24 Theodore A. Roth * configure.in: Add check for strtod function. * src/MotIntl.C: Calculate ihex checksum even on ignored records. [submitted by Pavel Celeda ] [patch #1322] * src/Stk500.C: Use strtod() instead of strtof() [strtof isn't available when using gcc-2.95.x (debian)] 2003-03-11 Theodore A. Roth * CHANGES: * ChangeLog: * uisp.spec.in: * doc/HOWTO.windows: Update all occurences of my email address. 2003-03-02 Theodore A. Roth [Thanks to Richard Barrington ] * src/DAPA.C: Add support for Futurlec ETT parallel port programmer. * src/DAPA.h: Ditto. * src/Main.C: Add note about ETT programmer to Usage(). 2003-03-02 Theodore A. Roth [Thanks to Klaus Rudolph as this is based on his patch] * src/Main.C: Add --{rd,wr}_{aref,vtg} options to Usage(). * src/Stk500.C: Add read/write of aref and vtg voltages. * src/Stk500.h: Add ReadParam() and WriteParam() prototypes. 2003-02-21 Theodore A. Roth * src/Main.C: Update copyright year. 2003-02-20 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Bump version. * uisp.1.in: Fix -v option so max is 4. 2003-02-19 Theodore A. Roth * AUTHORS: Update email addresses. * src/Avr.C: Remove const from parts array so we can change some values at runtime. * src/Avr.h: Ditto. * src/Main.C: Add command switch '-dparallel' for stk500. Fix -v option when printing help to note max is 4 instead of 3. Update email and URL addresses. * src/Stk500.C: Rename VerifyPresense() to Initialize(). Remove const from prg_part[] array so we can change some values at runtime. Before calling Initialize() process the -dparallel option. * src/Stk500.h: Rename VerifyPresense() to Initialize(). Remove const from prg_part[] array so we can change some values at runtime. 2003-02-19 Theodore A. Roth * src/Stk500.C: Add support for firmware version 1.14. Add support for at90s8534, mega8515, mega8535, mega32. * src/Stk500.h: Remove cmd, len and sync from SPrgExtDevParams struct since its len varies depending on the firmware version. 2003-02-18 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Bump version. * src/Avr.C: Add support for mega169. * src/Stk500.C: Add support for mega162 and mega169. 2003-02-17 Theodore A. Roth * src/Stk500.C: Change MagicNumber to ExtDevParams (see appnote AVR061). Add ext dev params initialization to prg_part structure init. Wrap a few line strings. Change the "Device is not responding correctly." error messages so we can tell where they originated in the code. Add VerifyPresense() method: does most of what was in EnterProgrammingMode(). Simplify EnterProgrammingMode(): doesn't really need to set the params every time it's called. * src/Stk500.h: Add struct SPrgExtDevParams. Remove MagicNumber. Add VerifyPresense() method prototype. 2003-02-17 Theodore A. Roth * src/timeradd.h: Fix some typos in timeradd & timersub macros. 2003-02-17 Theodore A. Roth * src/Terminal.C: Remove C++ iostream usage since this was the only file to use it and it was not consistently used. 2003-02-15 Theodore A. Roth * src/Stk500.C: Add support for mega16. 2003-02-15 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Bump version. * pavr/Makefile: Create .lst file. Change default lpt port to parport0. * pavr/pavr.c: Use latest avr-libc headers. * src/Stk500.C: Print out the version of the stk500 firmware. 2002-12-19 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Bump version. * src/Stk500.C: Add struct entry for mega8. 2002-12-01 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Reset version to 20021201cvs. 2002-12-01 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Cut 20021201 release. 2002-11-22 Theodore A. Roth (Thanks to Jake McGuire for the patch and porting to Mac OS X for use with a USB-to-RS232 dongle.) * configure.in (AM_INIT_AUTOMAKE): Bump version. * src/DAPA.C: Make sure the ioport_*() functions are defined in all cases. If par_release() isn't available, define it to nothing instead of (0). 2002-11-15 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Bump version. * src/DAPA.C: Use /dev/parport0 as the default interface instead of direct port access via ioperm(). Using uisp at root or setuid root is frowned upon so it should not be the default. 2002-11-15 Theodore A. Roth (Thanks to Christopher X. Candreva for reporting this.) * src/Serial.h: Increase serial timeout. Programming 8535 parts with the stk500 was timing out to early and caused failures. This also seems to affect the at90s1200 devices (also reported by Klaus Rudolph ). 2002-10-30 Theodore A. Roth (Thanks to Seth LaForge for pointing out the buffer overflow problems.) * configure.in (AM_INIT_AUTOMAKE): Bump version. * src/Main.C: Add comment about dropping setuid privies. * src/AvrAtmel.C: Remove unused variables. * src/Makefile.am: Add -Wall and -Werror compile flags. * src/MotIntl.C (Htoi): Make sure hex digit is valid. (UploadMotorola): Increase size of seg_name[] to avoid buffer overflow. (UploadMotorola): Check for possible read past end of line_buf. (UploadMotorola): Add case for "S3" records. (UploadIntel): Check for possible read past end of line_buf. 2002-10-29 Theodore A. Roth * doc/srecord.htm: New file (from Marek's site). 2002-10-28 Theodore A. Roth * src/Stk500.C: Allow firmware version >= 1.7. 2002-10-28 Theodore A. Roth * bootstrap: Check for proper autotools. * configure.in: Check for autoconf version 2.13. * config/check_autoconf213.m4: New file. 2002-10-28 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Bump version. Make cvs version rpm compatible. * src/AvrAtmel.C: Make -dpart more compatible with gcc device names. 2002-10-05 Theodore A. Roth * Makefile.am: Add man page. * configure.in: Ditto. (AM_INIT_AUTOMAKE): Bump version. * uisp.1.in: New file. [Thanks to Shaun Jackman ] 2002-10-02 Theodore A. Roth * src/Stk500.C: Use struct for programming parameters instead of just a byte array. Add tiny26 support. * src/Stk500.h: Define SPrgParams structure. 2002-10-02 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Bump version. * doc/README.stk500: Add note about specs available from Atmel. 2002-08-19 Theodore A. Roth [Patch from Tetsuya Okada ] * configure.in (AM_INIT_AUTOMAKE): Bump version. * src/DAPA.C: Added Xilinx cable support. * src/DAPA.h: Added Xilinx cable support. * src/Main.C: Added Xilinx cable support. * doc/README.xilinx: New file. 2002-07-04 Marek Michalkiewicz * src/DAPA.C (OutReset, Init): Fix PAT_BSD bug. 2002-06-26 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Update version for release. 2002-06-24 Theodore A. Roth * doc/HOWTO.windows: New file. Thanks to Marc Wetzel . * Makefile.am (EXTRA_DIST): Added doc files. 2002-06-24 Marek Michalkiewicz * configure.in (AM_INIT_AUTOMAKE): Update version. * pavr/pavr.c: Add ATmega323 support. * src/AvrAtmel.C (ChipErase): Wait up to 5 seconds for chip erase. * src/Serial.C (Tx, Rx): Use Info() instead of fprintf() to log sent and received characters (now enabled at run time with -v=4). (Send): Accept optional timeout argument, default is 1 second. * src/Serial.h (DEBUG_LOG_TX, DEBUG_LOG_RX): Remove. (Send): Update for optional timeout argument. Thanks to Bryce Denney for suggestions. 2002-06-13 Marek Michalkiewicz * src/DAPA.C (SendRecv): Read MISO just before SCK falling edge, leaving more room for propagation delays. 2002-06-13 Marek Michalkiewicz * configure.in (AM_INIT_AUTOMAKE): Update version. * src/MotIntl.C (UploadIntel): Handle hex record types 3, 4, 5. 2002-06-09 Marek Michalkiewicz * pavr/pavr.c: Fix to build with latest avr-libc. 2002-06-08 Marek Michalkiewicz * configure.in (AM_INIT_AUTOMAKE): Update version. * src/Avr.C (parts): Add ATmega8535 signature bytes. * src/AvrAtmel.C (prg_part): Update list to match AvrProg 1.37 distributed with AVR Studio 3.54. Sort by device code. 2002-06-03 Theodore A. Roth * configure.in (AM_INIT_AUTOMAKE): Update version. * src/Avr.h, src/AvrAtmel.C, src/AvrDummy.C, src/Main.C, src/Stk500.h: Implemented the new '--wr_lock' command line option. * src/Stk500.C: Implemented WriteLockBits. Simplified usage of UniversalCmd. * src/Avr.C, src/AvrAtmel.C, src/AvrDummy.C, src/DAPA.C, src/MotIntl.C, src/Serial.C, src/Stk500.C, src/Terminal.C, src/cygwinp.C: Add include for config.h. 2002-06-02 Marek Michalkiewicz * configure.in (AM_INIT_AUTOMAKE): Update version. * src/Avr.C, src/DAPA.C, src/Main.C, src/Terminal.C: Fixes for g++ 3.1 errors. Please test with older compilers. 2002-06-02 Marek Michalkiewicz * src/Main.C (main): Fix typo (missing %) in 4 format strings. 2002-06-01 Theodore A. Roth * src/Avr.h, src/AvrAtmel.C, src/AvrDummy.C, src/Main.C, src/Stk500.C: Added new command lines options for reading/writing fuses. Stubbed out code for new lock bit writing implementation. 2002-05-30 Theodore A. Roth * configure.in: Changed version to -cvs. * src/Stk500.C, src/Stk500.h: Added functionality to write lock/fuse bits. * src/Stk500.C, src/Stk500.h: Added functionality to read lock/fuse/calibration bits. * src/Terminal.C: Added space to prompt. * src/Stk500.C, src/Stk500.h: Fix write_buffer (separate buffers for flash and eeprom segments). * src/Stk500.C, src/Stk500.h: Fix read_buffer (separate buffers for flash and eeprom segments). 2002-05-27 Theodore A. Roth * doc/README.stk500: New file from Jason Kyle. * TODO: Remove note about autoconf/automake. * CHANGES: Added note about new ChangeLog file. * AUTHORS: Added Hamish Moffatt. * Makefile.am, acconfig.h, bootstrap, config/README, configure.in, src/Main.C, src/Makefile, src/Makefile.am: Conversion to use autoconf/automake for build system. * uisp.spec.in: New file. * AUTHORS: New file. 2002-05-25 marekm * CHANGES: Added notice that uisp is now on savannah, mainly to test CVS write access. 2002-05-25 Theodore A. Roth * CHANGES, CHANGES.old, COPYING, INSTALL, TODO, kernel/patch-2.2.17-ppdev1.gz, pavr/Makefile, pavr/pavr.c, src/Avr.C, src/Avr.h, src/AvrAtmel.C, src/AvrAtmel.h, src/AvrDummy.C, src/AvrDummy.h, src/DAPA.C, src/DAPA.h, src/Error.h, src/Global.h, src/Main.C, src/Makefile, src/MotIntl.C, src/MotIntl.h, src/Serial.C, src/Serial.h, src/Stk500.C, src/Stk500.h, src/Terminal.C, src/Terminal.h, src/cygwinp.C, src/cygwinp.h, src/parport.h, src/ppdev.h, src/timeradd.h: Import sources from uisp-20020524. tinyos-tools-1.4.2/tools/platforms/mica/uisp/INSTALL000066400000000000000000000005401206361226500222740ustar00rootroot00000000000000Installation for TinyOS-specific uisp: Execute ./COMPILE (you can run the commands it contains directly if you prefer) Then: make install (you must be root on Linux to perform this step) WARNING: if you don't use the COMPILE script, you may get compilation errors (depending on whether you've installed autoconf/etc, and what versions you have) tinyos-tools-1.4.2/tools/platforms/mica/uisp/Makefile.am000066400000000000000000000045751206361226500233130ustar00rootroot00000000000000# # $Id: Makefile.am,v 1.5 2008-07-08 12:31:18 beutel Exp $ # # uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. # Copyright (C) 2002 Theodore A. Roth # # 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 # # Makefile.am -- Process this file with automake to produce Makefile.in # auxdir = @ac_aux_dir@ AUX_DIST = $(auxdir)/install-sh $(auxdir)/missing \ $(auxdir)/mkinstalldirs $(auxdir)/README man_MANS = uisp.1 AUX_DIST_EXTRA = EXTRA_DIST = bootstrap config acconfig.h \ CHANGES CHANGES.old \ kernel/patch-2.2.17-ppdev1.gz \ pavr/Makefile pavr/pavr.c \ doc/HOWTO.windows doc/README.stk500 \ doc/README.xilinx \ doc/uisp-parport-connect.txt \ uisp.1.in AUTOMAKE_OPTIONS = foreign if CYGWIN SUBDIRS = src kernel else SUBDIRS = src endif DIST_SUBDIRS = $(SUBDIRS) MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure src/config-h.in \ src/stamp-h.in $(AUX_DIST) ACLOCAL = aclocal --warnings=none -I $(auxdir) install_aux_files = AUTHORS ChangeLog COPYING INSTALL CHANGES CHANGES.old \ TODO DOC_INST_DIR = $(DESTDIR)$(datadir)/doc/uisp-$(VERSION) install-data-local: $(mkinstalldirs) $(DOC_INST_DIR) for file in $(install_aux_files) ; do \ echo " $(INSTALL_DATA) $$file $(DOC_INST_DIR)/$$file"; \ $(INSTALL_DATA) $(srcdir)/$$file $(DOC_INST_DIR)/$$file; \ done uninstall-local: rm -rf $(DOC_INST_DIR) dist-hook: uisp.spec cp uisp.spec $(distdir)/uisp.spec rm -rf $(distdir)/config/CVS tinyos-tools-1.4.2/tools/platforms/mica/uisp/TODO000066400000000000000000000047271206361226500217460ustar00rootroot00000000000000 - The handling of fuse and lock bits needs some serious work. As it stands it does not work with Hi-V parallel programming (on stk500). I've started working on this, but it was way too intusive a change to do just before a release. [TRoth/2003-05-27] - improve pavr support (many thanks to Jason Kyle for sending me one of these nice programmers, see http://www.avr1.org/pavr/pavr.html): - add option to force device type for chips with broken signature bytes - use consistent -dpart=... device names - more firmware improvements, speed optimizations (send OK response and receive the next command while executing the previous one, use data polling if supported by device, etc.) - support for parallel port JTAG programming of ATmega8/16/323/128 - AT89S52 support (similar commands as AVR, but RESET active high) - option to generate XTAL1 clock for target device while programming, as in FBPRG / AVREAL / modified ByteBlaster / STK200 (LED output) - how to talk to these new USB programmers Kanda is advertising now? - better documentation - clean rewrite in C ;) (for parallel port interfaces only, maybe port the program already available at http://www.bsdhome.com/avrprog/ from FreeBSD to Linux and extend it to support all these different cables? [This program is now called avrdude and has been ported to linux and cygwin.]) or at least, some better way to add all these parallel interfaces invented by various people, with different pin assignments. See also "cisp" by Marko Makela available from http://www.funet.fi/pub/cbm/crossplatform/transfer/C2N232/firmware/ cisp-1.0.tar.gz - ATDH1150VPC cable support - cleaner way to describe all these different cables - free/open firmware for the STK500 (which is based on AT90S8535, and schematics are available on avrfreaks), implementing the same and/or our own different protocol - uisp-compatible (avr910/pavr mode) boot loader for recent ATmega chips, share common parts of the code (comm protocol) with pavr.c ? add multi-word read/write/verify commands (faster) mostly done, needs to be merged - see http://tlw.com/bryce/robot/avr/ - pavr firmware for ATmega8: new hardware design, more features possible than with the original 2313, board with TQFP32 part should still fit in that nice small DB9-DB9 housing, and it would be nice to be able to flash the firmware through the same serial port, using a boot loader and uisp of course :) tinyos-tools-1.4.2/tools/platforms/mica/uisp/bootstrap000077500000000000000000000001111206361226500232000ustar00rootroot00000000000000aclocal autoheader autoconf [ -d config ] || mkdir config automake -a -c tinyos-tools-1.4.2/tools/platforms/mica/uisp/configure.in000066400000000000000000000037401206361226500235610ustar00rootroot00000000000000# # $Id: configure.in,v 1.4 2006-12-12 18:23:00 vlahan Exp $ # # uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. # Copyright (C) 2002, 2003 Theodore A. Roth # # 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 dnl Make sure we're using the correct version of autoconf AC_PREREQ(2.50) dnl Process this file with autoconf to produce a configure script. AC_INIT(src/Main.C) AC_CONFIG_AUX_DIR(config) AM_CONFIG_HEADER(src/config.h:src/config-h.in) AM_INIT_AUTOMAKE(uisp, 20050519tinyos) AC_CANONICAL_HOST dnl Checks for programs. AC_PROG_CC AC_PROG_CXX AC_PROG_INSTALL dnl Checks for libraries. dnl Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/time.h unistd.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_SIZE_T AC_HEADER_TIME dnl Checks for library functions. AC_PROG_GCC_TRADITIONAL AC_FUNC_MEMCMP AC_FUNC_VPRINTF AC_CHECK_FUNCS(gettimeofday select strstr strtol strtod) AC_SUBST(ac_aux_dir) # Set the DATE variable for the man page DATE=`date "+%B, %Y"` AC_SUBST(DATE) AC_MSG_CHECKING(for cygwin) case $host in *-*-cygwin*) AC_MSG_RESULT(yes) CYGWIN=yes ;; *) AC_MSG_RESULT(no) esac AM_CONDITIONAL([CYGWIN], [test "$CYGWIN"]) AC_OUTPUT( \ src/Makefile \ kernel/Makefile \ kernel/win32/Makefile \ uisp.1 \ uisp.spec \ Makefile) tinyos-tools-1.4.2/tools/platforms/mica/uisp/doc/000077500000000000000000000000001206361226500220115ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/mica/uisp/doc/HOWTO.windows000066400000000000000000000064051206361226500243320ustar00rootroot00000000000000$Id: HOWTO.windows,v 1.4 2006-12-12 18:23:00 vlahan Exp $ MINI-HOWTO to build and use uisp under cygwin/w32. ---------------------------------------------------------------------------- ----------- 2002-06-23 Marc Wetzel * First release. Cygwin part. 2002-06-24 Theodore A. Roth * Minor formatting changes. Cygwin: ------- Short version: -------------- Get uisp-source. ./bootstrap (Only needed if you get source from CVS) ./configure make make install Long version: -------------- Install cygwin as explained by redhat Be sure to also install the development tools: GNU-C and GNU-CPP, and don't forget to install 'make', too :) Create a directory e.g. "/home/username/uisp-cvs". Get the latest cvs source/ or snapshot out of savannah.gnu.org into this directory. CVS: cvs -z3 -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/uisp login cvs -z3 -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/uisp co uisp Create the configure script by calling `./bootstrap`. Now we call `./configure` to create the necessary makefiles depending on your system. Your are ready to type `make && make install` to build UISP. This build will link uisp with the cygwin dll's to provide the unix subsystem (posix layer) on a plain windows box. See the cygwin site to get a deeper knowledge of it. But you can use this uisp/w32 by just copying the necessary dll's out of your cygwin directory into the windows\system or system32 directory. Necessary are the following 3 dlls: 13.12.2001 11:33 22.016 cygintl-1.dll 22.11.2001 00:16 41.105 cygpcre.dll 25.02.2002 18:16 769.352 cygwin1.dll Installing the printer-port driver: ----------------------------------- Under Windows NT or Windows 2000 you need to install a special driver to get access to system resources like the printer port. A ready to use lpt-driver for uisp is for example giveio. One place where GIVEIO is found is e.g. here: . Unzip the downloaded file to a location of your choice: e.g. "c:\Program Files\Giveio". Copy the unzipped giveio.sys to your "winnt\system32\drivers" directory. Now run the program loaddrv.exe to install the driver, you'll have to change the "Full pathname of driver" to the location you copied the giveio.sys to: e.g. "C:\WINNT\SYSTEM32\DRIVERS\GIVEIO.SYS". Now press install, then start. You should see the status change to "Operation was successful" - Now the driver is installed. You should now extend your preferred compiler-startup-batch e.g. `run.cmd` with the line `net start giveio` as this driver is not installed automatically. Or run the loaddrv.exe (with changing to the right path) and press the start-button. You could extend your makefiles with the following two lines to have a new rule `make install` to flash the built .rom file into your avr. My programming-interface is a stk200 compatible one, and I like the hashes to see that uisp is still working... ISP = C:/PATH-TO-UISP/uisp.exe install: $(TARG) $(ISP) -v=3 -dprog=stk200 --hash=1024 --erase --upload if=$(TARG).hex MinGW: To be continued... Any comments and/or corrections go to Marc Wetzel: tinyos-tools-1.4.2/tools/platforms/mica/uisp/doc/README.stk500000066400000000000000000000156721206361226500237310ustar00rootroot00000000000000$Id: README.stk500,v 1.4 2006-12-12 18:23:00 vlahan Exp $ NOTE: Atmel has finally released the specs for the protocol for talking to the stk500 over a serial line. Here's where to get the files: ftp://www.atmel.com/pub/atmel/avr061.zip http://www.atmel.com/atmel/acrobat/doc2525.pdf STK500 Commands **preliminary information** --------------- Extracted by Jason Kyle 20010701 Updated 200201 The latest version of this document can be found at www.avr1.org. Notes: - Incomplete but sufficient to make progress on free tools. - All commands are terminated by 0x20 - All successful responses are framed 0x14 data 0x10 (i.e. NULL response is 0x14 0x10) - Commands invalid in current mode (i.e not in pgm mode, pgm page) give 0x14 0x13 response. STK500 BOARD COMMANDS --------------------- ** ?STK500 Command 0x30 0x20 Response 0x14 0x10 Use Establish STK500 presence and UART sync. Re-send n times until response. Notes STK500 won't respond to other commands unless this has been sent. ** BoardID Command 0x31 0x20 Response 0x14 "AVR STK" 0x10 Use Identify board. Notes ** VTargetSet Command 0x40 0x84 VTarget 0x20 Response 0x14 0x10 Use Set VTarget voltage. Notes 0x33 = 5.1V , 0x34 = 5.2V , 0x32 = 5.0V ** ARefSet Command 0x40 0x85 ARef 0x20 Response 0x14 0x10 Use Set ARef voltage. Notes Same count/V relationship as VTargetRead ** POscSet Command 0x40 0x86 POsc 0x20 Response 0x14 0x10 Use Set P parameter. Notes ** NOscSet Command 0x40 0x87 NOsc 0x20 Response 0x14 0x10 Use Set N parameter. Notes ** SDOscSet Command 0x40 0x89 SDOsc 0x20 Response 0x14 0x10 Use Set SD parameter. Notes ** HWver Command 0x41 0x80 0x20 Response 0x14 0x02 0x10 Use Hardware version identification. Notes ** SWmajor Command 0x41 0x81 0x20 Response 0x14 0x01 0x10 Use Software major version identification. Notes ** SWminor Command 0x41 0x82 0x20 Response 0x14 0x07 0x10 Use Software minor version identification. Notes ** VTargetRead Command 0x41 0x84 0x20 Response 0x14 0x33 0x10 Use Query present VTarget voltage. Notes 0x33 = 5.1V , 0x34 = 5.2V , 0x32 = 5.0V ** ARefRead Command 0x41 0x85 0x20 Response 0x14 0x33 0x10 Use Query present ARef voltage. Notes Same count/V relationship as VTargetRead ** POscRead Command 0x41 0x86 0x20 Response 0x14 0x01 0x10 Use Query present P parameter. Notes ** NOscRead Command 0x41 0x87 0x20 Response 0x14 0x00 0x10 Use Query present N parameter. Notes ** SDOscRead Command 0x41 0x89 0x20 Response 0x14 0x01 0x10 Use Query present SD parameter. Notes ** DeviceParam Command 0x42 (20 device specific bytes) 0x20 Response 0x14 0x10 Use Tell programmer how to program device, i.e data polling byte returns. Notes See table for more details ** MagicNumber Command 0x45 0x03 0x00 0xD7 0xA0 0x20 Response 0x14 0x10 Use Ask Atmel. Sent before entering programming mode. Notes This may well be a code checksum, software version requested first. STK500 PROGRAMMING COMMANDS --------------------------- ** EnterPgmMode Command 0x50 0x20 Response 0x14 0x10 Use Enter programming mode, nRESET = low. Notes ** LeavePgmMode Command 0x51 0x20 Response 0x14 0x10 Use Leave programming mode, nRESET = high. Notes ** EraseDevice Command 0x52 0x20 Response 0x14 0x10 Use Erase device. Notes ** SetAddress Command 0x55 AddrL AddrH 0x20 Response 0x14 0x10 Use Set address for read/write operation Notes Word address FLASH, Byte address EEPROM ** UniversalCmd Command 0x56 0xAC 0xFD 0x00 0xFF 0x20 Response 0x14 0x00 0x10 Use Sending lock and fuse bits. Notes Could probably be used for byte by byte programming of devices. The 0x00 returned is read from byte 4 SPI return value, i.e. if read program memory SPI command sent then this is the byte returned. ** WriteMemory Command 0x64 LenH LenL 0x46 DataBytes 0x20 Response 0x14 0x10 Use Programming FLASH/EEPROM/PageBuffer Notes Change 0x46 ("F") to 0x45 ("E") for EEPROM. Length in bytes. Written in 0x0100 chunks for 8515 ** ReadMemory Command 0x74 LenH LenL 0x46 0x20 Response 0x14 DataBytes 0x10 Use Reading FLASH/EEPROM Notes Change 0x46 ("F") to 0x45 ("E") for EEPROM. Length in bytes. Read in 0x0100 chunks for 8515. ** GetSignature Command 0x75 0x20 Response 0x14 0x1E 0x93 0x01 0x10 Use Requesting device signature bytes Notes Response shown for 8515 ** ReadOscCal Command 0x76 0x20 Response 0x14 0x42 0x10 Use Read current oscillator calibration value Notes Varies between devices, 0x42 in an ATmega163L-4PI 0035 COMMAND SEQUENCES ----------------- Startup: ?STK500 , BoardID , HWver , SWmajor , SWminor ReadSignature: ?STK500 , DeviceParam , SWminor , SWmajor, MagicNumber , EnterPgmMode , GetSignature , LeavePgmMode WriteLockBits: ?STK500 , DeviceParam , SWminor , SWmajor , MagicNumber , EnterPgmMode , UniversalCmd , LeavePgmMode WriteMemory: ?STK500 , DeviceParam , SWminor , SWmajor , MagicNumber , EnterPgmMode , EraseDevice , SetAddress 0x0000 , PgmBlockMode n bytes , SetAddress 0x0000 , ReadBlockMode n bytes , LeavePgmMode ReadMemory: ?STK500 , DeviceParam , SWminor , SWmajor , MagicNumber , EnterPgmMode , SetAddress 0x0000 , ReadBlockMode n bytes , LeavePgmMode Normally memory is programmed or read in 0x0100 byte chunks, obviously if a program doesn't align to an 0x0100 length then there will be a < 0x0100 chunk at the end. Writing mega163. Set address to 0x0000, write 0x0100 bytes, set address to 0x0080, write 0x0100 bytes etc... STK500 must auto detect end of page boundry and write current page to address specified in last setaddress cmd. Set device paramters and programming mode command for STK500 8515 42 60 00 00 01 01 00 01 01 7f 7f 80 7f 00 00 02 00 00 00 20 00 20 4414 42 50 00 00 01 01 00 01 01 7f 7f 80 7f 00 00 01 00 00 00 10 00 20 2313 42 40 00 00 01 01 00 01 01 7f 7f 80 7f 00 00 00 80 00 00 08 00 20 1200 42 33 00 00 01 01 00 01 01 ff ff 00 ff 00 00 00 40 00 00 04 00 20 2323 42 41 00 00 00 01 00 01 01 ff ff 00 ff 00 00 00 80 00 00 08 00 20 2343 42 43 00 00 00 01 00 01 01 ff ff 00 ff 00 00 00 80 00 00 08 00 20 2233 42 42 00 00 01 01 00 01 01 ff ff 00 ff 00 00 00 80 00 00 08 00 20 4433 42 51 00 00 01 01 00 01 01 ff ff 00 ff 00 00 01 00 00 00 10 00 20 4434 42 52 00 00 01 01 00 01 01 ff ff 00 ff 00 00 01 00 00 00 10 00 20 8535 42 61 00 00 01 01 00 01 01 ff ff 00 ff 00 00 02 00 00 00 20 00 20 tiny11 42 11 00 00 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 04 00 20 tiny12 42 12 00 00 00 01 01 01 01 ff ff ff ff 00 00 00 40 00 00 04 00 20 tiny15 42 13 00 00 00 01 01 01 01 ff ff ff ff 00 00 00 40 00 00 04 00 20 tiny22 42 20 00 00 00 01 00 01 01 ff ff 00 ff 00 00 00 80 00 00 08 00 20 tiny28 42 22 00 00 01 00 01 01 01 00 00 00 00 00 00 00 00 00 00 08 00 20 mega32 42 90 00 00 01 01 01 01 02 ff ff ff ff 00 80 04 00 00 00 80 00 20 mega161 42 80 00 00 01 01 01 01 01 ff ff ff ff 00 80 02 00 00 00 40 00 20 mega163 42 81 00 00 01 01 01 01 02 ff ff ff ff 00 80 02 00 00 00 40 00 20 mega103 42 b1 00 00 01 00 00 01 01 00 00 00 00 01 00 10 00 00 02 00 00 20 mega128 42 b2 00 00 01 01 01 01 03 ff ff ff ff 01 00 10 00 00 02 00 00 20 tinyos-tools-1.4.2/tools/platforms/mica/uisp/doc/README.xilinx000066400000000000000000000003211206361226500241770ustar00rootroot00000000000000I've made a quick hack to support Xilinx HW-JTAG-PC cable. Connection is as follows: TCK --> SCK TDO --> MISO TDI --> MOSI TMS --> RESET# -- Tetsuya Okada Computer Creators, Inc. tinyos-tools-1.4.2/tools/platforms/mica/uisp/doc/uisp-parport-connect.txt000066400000000000000000000013471206361226500266530ustar00rootroot00000000000000 Connect AVR with parallel port AVR Parallel Port Signal name Pin Pin Signal name GND 20 ------------ 19 GND GND 20 ------------ 21 GND SCK 8 ------------ 1 Strobe MOSI 6 ------------ 2 Data 0 MISO 7 ------------ 11 Busy Reset 9 ------------ 16 Init This scheme works with all parallel port modes (EPP,ECP, classic). Copyright (C) 1998 by Alexey Lapshin and Sergey Larin. This scheme can be modifyed as described in send_byte.s Note: The ATmega128 (maybe other megas too) uses PDI and PDO for spi programming instead of MISO and MOSI. You will need to modify the connections accordingly. tinyos-tools-1.4.2/tools/platforms/mica/uisp/install-giveio000077500000000000000000000004311206361226500241160ustar00rootroot00000000000000#!/bin/sh # # This is called by the InstallScript Wizard. The Wizard # determines, sets, and exports the value of $TOSROOT before # this is called. # cd $TOSDIR/../tools/platforms/mica/uisp/kernel/win32 $TOSDIR/../tools/platforms/mica/uisp/kernel/win32/giveio-install --install tinyos-tools-1.4.2/tools/platforms/mica/uisp/kernel/000077500000000000000000000000001206361226500225245ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/mica/uisp/kernel/Makefile.am000066400000000000000000000000521206361226500245550ustar00rootroot00000000000000AUTOMAKE_OPTIONS=foreign SUBDIRS = win32 tinyos-tools-1.4.2/tools/platforms/mica/uisp/kernel/stargate/000077500000000000000000000000001206361226500243365ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/mica/uisp/kernel/stargate/Makefile000066400000000000000000000010601206361226500257730ustar00rootroot00000000000000# Comment/uncomment the following line to enable/disable debugging #DEBUG = y # This Makefile has been simplified as much as possible, by putting all # generic material, independent of this specific directory, into # ../Rules.make. Read that file for details KERNELDIR = /home/pbuonado/Projects/stargate-linux/linux-2.4.19-star5 CFLAGS = -v -O2 CFLAGS += -I. -I$(KERNELDIR)/include CFLAGS += -DEXPORT_SYMTAB CC=arm-linux-gcc all: stargate_ssp.o stargate_ssp.o: stargate_ssp.c $(CC) $(CFLAGS) -c $< -o $@ clean: rm -f *.o *~ core tinyos-tools-1.4.2/tools/platforms/mica/uisp/kernel/stargate/README000066400000000000000000000012101206361226500252100ustar00rootroot00000000000000Stargate SSP driver INSTALLATION This directory should contain a precompiled version of the Stargate SSP driver (stargate_ssp.o) for STARGATE Version 5 (linux version 2.4.19-rmk7-pxa1). If not, see the instructions on COMPILING below. To install the driver, copy 'stargate_ssp.o' and 'ssp_load.sh' to a directory on your Stargate platform. Execute 'ssp_load.sh' to install the driver. NOTE: As of this version, you will need to run this script each time you reboot the stargate to reload the driver. COMPILING Edit the 'KERNELDIR' variable in 'Makefile' to point to your Stargate kernel tree. Then execute 'make'. tinyos-tools-1.4.2/tools/platforms/mica/uisp/kernel/stargate/ssp_load.sh000077500000000000000000000004661206361226500265070ustar00rootroot00000000000000#!/bin/sh module="stargate_ssp" device="ssp" # invoke insmod with all arguments we got # and use a pathname, as newer modutils don't look in . by default /sbin/insmod -f ./stargate_ssp.o $* || exit 1 rm -f /dev/${device}[0-7] mknod /dev/${device} c $major 0 chmod 644 /dev/${device} tinyos-tools-1.4.2/tools/platforms/mica/uisp/kernel/stargate/stargate_ssp.c000066400000000000000000000201521206361226500272010ustar00rootroot00000000000000/* * sg_ssp.c -- Stargate SSP Driver for mote programming * * Portions Copyright (c) 2002-2003 Intel Corporation * All rights reserved. * * This file is distributed under the terms in the attached INTEL-LICENSE * file. If you do not find these files, copies can be found by writing to * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, * 94704. Attention: Intel License Inquiry. * Portions Copyright (C) 2001 Alessandro Rubini and Jonathan Corbet * Copyright (C) 2001 O'Reilly & Associates * * The source code in this file can be freely used, adapted, * and redistributed in source or binary form, so long as an * acknowledgment appears in derived source files. The citation * should list that the code comes from the book "Linux Device * Drivers" by Alessandro Rubini and Jonathan Corbet, published * by O'Reilly & Associates. No warranty is attached; * we cannot take responsibility for errors or fitness for use. * * $Id: stargate_ssp.c,v 1.4 2006-12-12 18:23:01 vlahan Exp $ */ #ifndef __KERNEL__ # define __KERNEL__ #endif #ifndef MODULE # define MODULE #endif #include #ifdef CONFIG_MODVERSIONS #define MODVERSIONS #include #endif #include /* printk() */ #include #include #include /* everything... */ #include /* error codes */ #include /* udelay */ #include #include #include #include #include #include #include #include #include #include #include #define SG_SSP_PHYSBASE (__PREG(SSCR0)) #define SG_SSP_SIZE (5*4) /* 5 Registers, 4 Bytes each */ #define SG_GPIOCNTL_PHYSBASE (__PREG(GPLR0)) #define SG_GPIOCNTL_SIZE (27*4) /* 27 Registers, 4 Bytes each */ #define SSPS_TNF (1 << 2) #define SSPS_RNE (1 << 3) #define SSPS_BSY (1 << 4) #define SSPS_TFS (1 << 5) #define SSPS_RFS (1 << 6) #define SSPS_ROR (1 << 7) #define SSPC_SSE (1 << 7) /* * all of the parameters have no "sg_ssp_" prefix, to save typing when * specifying them at load time */ static int major = 0; /* dynamic by default */ MODULE_PARM(major, "i"); /* Since sg_ssp_base is vremapped in case use_mem==1, remember the phys addr. */ unsigned long sg_ssp_vbase; MODULE_AUTHOR ("Phil Buonadonna"); MODULE_DESCRIPTION ("Stargate SSP Driver v 0.91"); /* * The devices with low minor numbers write/read burst of data to/from * specific I/O ports (by default the parallel ones). * * The device with 128 as minor number returns ascii strings telling * when interrupts have been received. Writing to the device toggles * 00/FF on the parallel data lines. If there is a loopback wire, this * generates interrupts. */ int sg_ssp_open (struct inode *inode, struct file *filp) { MOD_INC_USE_COUNT; GPCR(22) = GPIO_bit(22); // MUX -> Programming mode SSCR0 = ((10 << 8) | SSPC_SSE | 7); /* SRC=3, SSE, DSS = 8-bit data */ /* Put attached mote into reset */ GPCR(77) = GPIO_bit(77); // RSTN -> 0 return 0; } int sg_ssp_release (struct inode *inode, struct file *filp) { SSCR0 = 0; GPSR(22) = GPIO_bit(22); // MUX -> Serial Comm mode /* Clear the reset */ GPSR(77) = GPIO_bit(77); // RSTN -> 1 MOD_DEC_USE_COUNT; return 0; } ssize_t sg_ssp_read(struct file *filp, char *buf, size_t count, loff_t *f_pos) { int retval = count, lcnt = count; unsigned char *kbuf=kmalloc(count, GFP_KERNEL), *ptr; unsigned int value; if (!kbuf) { return -ENOMEM; } ptr = kbuf; while (lcnt > 0) { while (!(SSSR & SSPS_RNE)) { cpu_relax(); } value = SSDR; *(ptr++) = value; //printk(KERN_INFO "sg_ssp: read 0x%lx from ssp\n",value); lcnt--; } if ( (retval > 0) && copy_to_user(buf, kbuf, retval)) retval = -EFAULT; kfree(kbuf); return retval; } ssize_t sg_ssp_write(struct file *filp, const char *buf, size_t count, loff_t *f_pos) { int retval = count, lcnt = count; unsigned char *kbuf=kmalloc((count+1), GFP_KERNEL), *ptr; unsigned int value; if (!kbuf) { return -ENOMEM; } if (copy_from_user(kbuf, buf, count)) { return -EFAULT; } ptr = kbuf; while (lcnt > 0) { while (!(SSSR & SSPS_TNF)) { cpu_relax(); } value = *(ptr++); SSDR = value; //printk(KERN_INFO "sg_ssp: wrote 0x%lx to ssp\n",value); lcnt--; } kfree(kbuf); return retval; } unsigned int sg_ssp_poll(struct file *filp, poll_table *wait) { return POLLIN | POLLRDNORM | POLLOUT | POLLWRNORM; } struct file_operations sg_ssp_fops = { read: sg_ssp_read, write: sg_ssp_write, poll: sg_ssp_poll, open: sg_ssp_open, release: sg_ssp_release, }; void sg_ssp_interrupt(int irq, void *dev_id, struct pt_regs *regs) { unsigned int status = SSSR; if (status & SSPS_ROR) { printk(KERN_WARNING "sg_ssp: receiver overrun 0x%lx",status); SSSR = SSPS_ROR; } } /* Two wrappers, to use non-page-aligned ioremap() on 2.0 */ /* Remap a not (necessarily) aligned port region */ void *sg_ssp_remap(unsigned long phys_addr, unsigned long phys_size) { /* The code comes mainly from arch/any/mm/ioremap.c */ unsigned long offset, last_addr, size; last_addr = phys_addr + phys_size - 1; offset = phys_addr & ~PAGE_MASK; /* Adjust the begin and end to remap a full page */ phys_addr &= PAGE_MASK; size = PAGE_ALIGN(last_addr) - phys_addr; return ioremap(phys_addr, size) + offset; } /* Unmap a region obtained with sg_ssp_remap */ void sg_ssp_unmap(void *virt_add) { iounmap((void *)((unsigned long)virt_add & PAGE_MASK)); } /* Finally, init and cleanup */ int sg_ssp_init(void) { int result; /* Set up owner pointers.*/ SET_MODULE_OWNER(&sg_ssp_fops); /* Get our needed resources. */ result = check_mem_region(SG_SSP_PHYSBASE, SG_SSP_SIZE); if (result) { printk(KERN_INFO "sg_ssp: can't get I/O mem address 0x%lx\n", SG_SSP_PHYSBASE); return result; } request_mem_region(SG_SSP_PHYSBASE, SG_SSP_SIZE, "SSP"); result = check_mem_region(SG_GPIOCNTL_PHYSBASE, SG_GPIOCNTL_SIZE); if (result) { printk(KERN_INFO "sg_ssp: can't get GPIO I/O mem address 0x%lx\n", SG_GPIOCNTL_PHYSBASE); return result; } request_mem_region(SG_GPIOCNTL_PHYSBASE, SG_GPIOCNTL_SIZE, "SSPGPIO"); /* also, ioremap it */ sg_ssp_vbase = (unsigned long)sg_ssp_remap(SG_SSP_PHYSBASE,SG_SSP_SIZE); /* Hmm... we should check the return value */ result = register_chrdev(major, "ssp", &sg_ssp_fops); if (result < 0) { printk(KERN_INFO "sg_ssp: can't get major number\n"); sg_ssp_unmap((void *)sg_ssp_vbase); release_mem_region(SG_SSP_PHYSBASE,SG_SSP_SIZE); return result; } if (major == 0) major = result; /* dynamic */ result = request_irq(IRQ_SSP, sg_ssp_interrupt, SA_INTERRUPT, "ssp", NULL); if (result) { printk(KERN_INFO "sg_ssp: can't get assigned irq %i\n", IRQ_SSP); sg_ssp_unmap((void *)sg_ssp_vbase); release_mem_region(SG_SSP_PHYSBASE,SG_SSP_SIZE); return result; } SSSR = SSPS_ROR; SSCR1 = 0; // Enable the SSP alternate functions set_GPIO_mode(GPIO23_SCLK_md); set_GPIO_mode(GPIO25_STXD_MD); // Enable the SSP TX/RX lines set_GPIO_mode(GPIO26_SRXD_MD); set_GPIO_mode((GPIO27_SEXTCLK | GPIO_IN)); // Avoid driving the RED LED set_GPIO_mode((22 | GPIO_OUT)); // MUX Selector set_GPIO_mode((77 | GPIO_OUT)); // RSTN /* Set the state of the reset pin */ GPSR(77) = GPIO_bit(77); // RSTN -> 1 return 0; } void sg_ssp_cleanup(void) { free_irq(IRQ_SSP,NULL); unregister_chrdev(major, "ssp"); sg_ssp_unmap((void *)sg_ssp_vbase); release_mem_region(SG_SSP_PHYSBASE,SG_SSP_SIZE); release_mem_region(SG_GPIOCNTL_PHYSBASE,SG_GPIOCNTL_SIZE); } module_init(sg_ssp_init); module_exit(sg_ssp_cleanup); tinyos-tools-1.4.2/tools/platforms/mica/uisp/kernel/stargate/stargate_ssp.o000066400000000000000000000103301206361226500272120ustar00rootroot00000000000000ELFa(|4( @-å\Ÿå ဂãð!á0‘å0ƒâ0åð!áAâ ‘åŽD ãDB á ‚ã5 ã*  ã$0„å€â å: ãù$ ã‚å,0„å ã@äð á ãù4 ãŽ ãƒåA á% ã: ã å 0å, Ÿåá€Àã ð!á0’å0Câ0‚åð!á Bâ0’å0ƒã0‚åð áðA-é á€ á ãP áþÿÿëPãp á@ á  á àð½UãZÚùd ã á0‘åãF0‘åãC 0–å BâRã0Àä@ÊTãZÚ-Íã? Âã 0’å á˜àÐ0 3Qã á^ PãP  Pà áþÿÿë áð½è á á  áþÿÿëWêðA-é‚â@ á ã` áþÿÿëP〠áP á àð½-Íã? Âã 0’å áÀ”àÀÜ0 3Qãp á• Vã’Wã àð½Vã áŽÚù ã  á0’åãˆ0’åã… 0ÑäPEâÿ0âUã0€å‚Ê áþÿÿë áð½è áþÿÿëzê á  áþÿÿëp ázêQ ã€âð á@-éùD ã0”å€ãŸå á€½þÿÿë€0 ã0„倽è@-é€àÿN ã@„âAâ1 ãÃ9 áàà@àà`à  ãþÿÿë@€à á€½èà-åÿÀãÀãàäþÿÿêðE-é˜aŸå˜1Ÿå˜qŸåA ãÐMâ á  ã0‡åþÿÿëPã@ áA tŸÞQ ãl1ŸåA ã  ã áV…âþÿÿë á ál  ãþÿÿëPã@ áâ <Ÿå áþÿÿë áÐâð…½è á$1Ÿål  ã áþÿÿë ãA ãþÿÿë QŸå Ÿå ¡Ÿå0 á  á•å á0ŠåþÿÿëPã@ á%º0•åSã…À ã0 áÔŸå ã" ãÀåþÿÿëPã@ á  ¸Ÿå ãþÿÿëšåþÿÿë áA ã  ãþÿÿëßêù$ ã€0 ã¥ ã0‚å€â@‚åþÿÿ릠ã€âþÿÿëF ã€âþÿÿë ãþÿÿë– ãþÿÿëÍ ãþÿÿëŽ4 ãC2 á* ã ƒåßê4Ÿåþÿÿëê$PTˆ”¼@-é ã ãþÿÿë@0Ÿå@Ÿå“åþÿÿë80Ÿå8@Ÿå“åþÿÿë áA ã  ãþÿÿë ãâ ál  ã@½èþÿÿêkernel_version=2.4.19-rmk7-pxa1parm_major=iauthor=Phil Buonadonnadescription=Stargate SSP Driver v 0.91<4>sg_ssp: receiver overrun 0x%lx<6>sg_ssp: can't get I/O mem address 0x%lx SSP<6>sg_ssp: can't get GPIO I/O mem address 0x%lx SSPGPIOssp<6>sg_ssp: can't get assigned irq %i <6>sg_ssp: can't get major number GCC: (GNU) 3.2.symtab.strtab.shstrtab.rel.text.rel.data.bss.modinfo.rodata.str1.4.comment4D XX )xL% °( /Ä4Äp=24àL$U\ à  < ñÿ (. B0RH'glsl\ÈÌœ¤ª¾”ÜËÕëp ÷H|0¬D(2ð?IØUdu…‘¢°¿ òÿÌÜhÛäöØÜhstargate_ssp.c__module_kernel_versionmajor__module_parm_major__module_author__module_descriptionsg_ssp_open__this_modulesg_ssp_releasesg_ssp_readkmallockfree__arch_copy_to_usersg_ssp_write__memzero__arch_copy_from_usersg_ssp_pollsg_ssp_fopssg_ssp_interruptprintksg_ssp_remap__ioremapsg_ssp_unmap__iounmapsg_ssp_init__check_region__request_regionregister_chrdevrequest_irq__release_regionset_GPIO_modeiomem_resourcesg_ssp_vbasesg_ssp_cleanupfree_irqunregister_chrdevinit_modulecleanup_module__udivsi3hÄÜü08`tŒ¨äì$<DTXdl˜¨à( <X!h t€ !¬Ð"Ü#$4$8T%`%l%t%|%„%˜ ¤¨&¬°´¸¼ÀÄÈÌ'ÐÔØè)ø*$0$48<'@& $ ,tinyos-tools-1.4.2/tools/platforms/mica/uisp/kernel/win32/000077500000000000000000000000001206361226500234665ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/mica/uisp/kernel/win32/Makefile.am000066400000000000000000000002471206361226500255250ustar00rootroot00000000000000AUTOMAKE_OPTIONS = foreign tinyoslibdir=$(libdir)/tinyos tinyoslib_DATA = giveio.sys tinyoslib_PROGRAMS=giveio-install giveio_install_SOURCES = giveio-install.cpp tinyos-tools-1.4.2/tools/platforms/mica/uisp/kernel/win32/giveio-install.cpp000066400000000000000000000116771206361226500271340ustar00rootroot00000000000000#include #include #include #include using namespace std; int help() { cout << "usage: giveio-install [option]" << endl; cout << " [option] is one of the following:" << endl; cout << " --install Installs GiveIO driver" << endl; cout << " --uninstall Uninstalls GiveIO driver" << endl; cout << " --help Prints this help message" << endl; return 1; } int error(const char* msg) { cout << "giveio-install: " << msg << endl; return 0; } class auto_sc_handle { public: auto_sc_handle(SC_HANDLE h_arg) : h(h_arg) { } ~auto_sc_handle() { CloseServiceHandle(h); } operator SC_HANDLE() { return h; } private: SC_HANDLE h; }; bool is_installed(SC_HANDLE scmh) { bool result = false; size_t ess_size = sizeof(ENUM_SERVICE_STATUS) + 256 + 256; ENUM_SERVICE_STATUS* essp = reinterpret_cast(new char[ess_size]); DWORD bytes_needed = 0; DWORD services_returned = 0; DWORD resume_handle = 0; do { BOOL success = EnumServicesStatus(scmh, SERVICE_DRIVER/* | SERVICE_WIN32*/, SERVICE_STATE_ALL, essp, ess_size, &bytes_needed, &services_returned, &resume_handle); if (success == FALSE && GetLastError() != ERROR_MORE_DATA) break; for (DWORD i = 0; i < services_returned; i++) { // cout << essp[i].lpServiceName << endl; if (strcasecmp(essp[i].lpServiceName, "GiveIO") == 0 || strcasecmp(essp[i].lpDisplayName, "GiveIO") == 0) { result = true; break; } } } while (bytes_needed != 0 && ! result); delete[] essp; return result; } int install() { // Taking out the input from stdin -- eases installation and if // the user chooses N, TOS won't work right. // -lkw 1/25/2002 //cout << "giveio-install:" << endl; //cout << "You are about to install the GiveIO driver" << endl; //cout << "on your computer! This driver can give applications" << endl; //cout << "direct access to I/O, circumventing" << endl; //cout << "Windows NT/Windows 2000 prohibitions." << endl << endl; //cout << "Do you want to continue? (Y/N) "; char c; //cin >> c; //cout << endl; //if (c != 'y' && c != 'Y') //return error("Installation aborted"); auto_sc_handle scmh = OpenSCManager(0, 0, GENERIC_WRITE | GENERIC_READ); if (! scmh) return error("Could not connect to the Service Control Manager"); if (is_installed(scmh)) return error("Driver already installed"); bool copy_failed = false; string WINDIR = getenv("WINDIR"); if (WINDIR.empty()) { copy_failed = true; cout << "giveio-install: warning: " << "WINDIR environment variable is not defined." << endl; } else { replace(WINDIR.begin(), WINDIR.end(), '\\', '/'); const string cp = "cp giveio.sys " + WINDIR + "/system32/drivers/giveio.sys"; cout << cp << endl; if (system(cp.c_str()) != 0) { copy_failed = true; cout << "giveio-install: warning: " << "Copy failed." << endl; } } if (copy_failed) cout << "giveio-install: warning: " << "Please copy giveio.sys to the " << "$WINDIR/system32/drivers directory." << endl; auto_sc_handle csh = CreateService(scmh, "GiveIO", "GiveIO Port Access", SERVICE_ALL_ACCESS, SERVICE_KERNEL_DRIVER, SERVICE_AUTO_START, SERVICE_ERROR_NORMAL, "system32\\drivers\\giveio.sys", 0, 0, 0, 0, 0); if (csh == 0) return error("Could not create service"); BOOL result = StartService(csh,0,NULL); if (!result) return error("Could not start service"); return 0; } int uninstall() { SERVICE_STATUS status; auto_sc_handle scmh = OpenSCManager(0, 0, GENERIC_WRITE | GENERIC_READ); if (! scmh) return error("Could not connect to the Service Control Manager"); if (! is_installed(scmh)) return error("Driver has not been installed"); auto_sc_handle csh = OpenService(scmh, "GiveIO", SERVICE_ALL_ACCESS); if (!csh) return error("Could not access GiveIO driver"); BOOL result = ControlService(csh, SERVICE_CONTROL_STOP, &status); if (!result) { cout << "giveio-install: warning:" << "The GiveIO service could not be stopped. " << "Uninstall will complete when the system restarts." << endl; } DeleteService(csh); return 0; } int main(int argc, char* argv[]) { enum actions { a_install, a_uninstall, a_help } action = a_install; for (int i = 1; i < argc; i++) { if (strcmp(argv[i], "--install") == 0) action = a_install; else if (strcmp(argv[i], "--uninstall") == 0) action = a_uninstall; else if (strcmp(argv[i], "--help") == 0) action = a_help; else action = a_help; } switch (action) { case a_help: return help(); case a_install: return install(); case a_uninstall: return uninstall(); } return 0; } tinyos-tools-1.4.2/tools/platforms/mica/uisp/kernel/win32/giveio.sys000077500000000000000000000122001206361226500255060ustar00rootroot00000000000000MZÿÿ¸@€º´ Í!¸LÍ!This program cannot be run in DOS mode. $PELõ4c1 zà 2€Àå@À €@U3€’ 4ÀT.texth@€@ `.rdataTÀ`À@@.dataJ ` @À.idata’€ €@À.relocH ` @BU¹ ‹ìƒì0VW¾$}Ðó¥f¥ƒ= th ¡ PÿäEÐMøPQÿàMøQÿÜ‹Mÿqÿð_^‹å]Âÿt$ÿØPèóÿ5 jèàÂjèÙÿÿÿÃèóÿÿÿ‹L$3À3Ò‰A‰Aÿô3ÀÂU¹‹ìƒì\VW¾L}Ìó¥f¥¾$}¤¹ h ó¥f¥ÿ£ …Àu¸šÀëi‹= 3À¹ó«EÌMôP‹5àQÿÖM¤EìQPÿÖMüUôQ‹ujjj"RjVÿü…À|"EôMìPQÿø…À|ÇF8ÇÇF4@3À_^‹å]ÂÌÿ%èÿ%ìõ4c1° €õ4c10õ4c10@\DosDevices\giveio\Device\giveio¨Ø’2Jbx¨¾Öè’2Jbx¨¾ÖèÂIoDeleteDeviceÃIoDeleteSymbolicLinkRtlInitUnicodeStringrMmFreeNonCachedMemoryKe386SetIoAccessMapKe386IoSetAccessProcessÍIoGetCurrentProcessýIofCompleteRequest¾IoCreateSymbolicLink»IoCreateDeviceiMmAllocateNonCachedMemoryntoskrnl.exe4N2[2h2o2}2‡2“2¥2±2Ü2ó2ÿ233,3B3i3{3†33ž3¤3z @ÀÀ.fileþÿgC:\dale\ddj\distrib\giveio\giveio.c.data .text@_.data$&.textŸ .debug$F .text¿.debug$F°.textÇ.debug$FÀ.textå¶ .dataL.idata$6.idata$5Xú.idata$4ÐXú.idata$6èXú.idata$5üXú.idata$4ÌXú.idata$6ÖXú.idata$5øXú.idata$4ÈXú.idata$6¾Xú.idata$5ôXú.idata$4ÄXú.idata$6¨Xú.idata$5ØXú.idata$4¨Xú.idata$6’Xú.text¢Xú.idata$5ìXú.idata$4¼Xú.idata$6xXú.textœXú.idata$5èXú.idata$4¸Xú.idata$6bXú.idata$5äXú.idata$4´Xú.idata$6JXú.idata$5àXú.idata$4°Xú.idata$62Xú.idata$5ÜXú.idata$4¬Xú.idata$6Xú.idata$5ðXú.idata$4ÀXú.idata$6Xúheaderþÿ@  Ÿ ¶¿ ÀÇ å Ýœô¢^ #$ØL´€Ë”؂ܠà¾äè5ìjð,ôHøfüâend€þÿü_DriverEntry@8_GiveioUnload@4??_C@_1CG@GPLM@?$AA?2?$AAD?$AAo?$AAs?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AAs?$AA?2?$AAg?$AAi?$AAv?$AAe?$AAi?$AAo?$AA?$AA?$AA?$AA@_SetIOPermissionMap@4_GiveIO@0_GiveioCreateDispatch@8??_C@_1BO@MPDE@?$AA?2?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?2?$AAg?$AAi?$AAv?$AAe?$AAi?$AAo?$AA?$AA?$AA?$AA?$AA?$AA?$AAo?$AA?$AA?$AA?$AA@_IOPM_local__imp__IoDeleteDevice@4__imp__IoDeleteSymbolicLink@4__imp__RtlInitUnicodeString@8__imp__MmFreeNonCachedMemory@8_Ke386SetIoAccessMap@8_Ke386IoSetAccessProcess@8__imp__IoGetCurrentProcess@0__imp_@IofCompleteRequest@8__imp__IoCreateSymbolicLink@8__imp__IoCreateDevice@28__imp__MmAllocateNonCachedMemory@4_IoDeleteDevice@4ntoskrnl_IMPORT_DESCRIPTOR_IoDeleteSymbolicLink@4_RtlInitUnicodeString@8_MmFreeNonCachedMemory@8__imp__Ke386SetIoAccessMap@8__imp__Ke386IoSetAccessProcess@8_IoGetCurrentProcess@0@IofCompleteRequest@8_IoCreateSymbolicLink@8_IoCreateDevice@28_MmAllocateNonCachedMemory@4NULL_IMPORT_DESCRIPTORntoskrnl_NULL_THUNK_DATA܈.\i386\free\giveio.sysŸ ¿Çtinyos-tools-1.4.2/tools/platforms/mica/uisp/src/000077500000000000000000000000001206361226500220335ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/Avr.C000066400000000000000000000262621206361226500226770ustar00rootroot00000000000000// $Id: Avr.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: Avr.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002, 2003 Uros Platise * * 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 * **************************************************************************** */ /* Avr.C Top class of the AVR micro controllers Uros Platise (c) 1999 */ #include "config.h" #include #include #include #include #include "Avr.h" #include "Error.h" #define TARGET_MISSING 0xff #define DEVICE_LOCKED 0x1 /* ATMEL AVR codes */ TAvr::TPart TAvr::parts [] = { /* device sig. bytes flash page EEPROM twdFL twdEE flags */ { "AT90S1200", 0x90, 0x01, 1024, 0, 64, 4000, 4000, AVR_1200 }, { "ATtiny12", 0x90, 0x05, 1024, 0, 64, 1700, 3400, AVR_TN12 }, { "ATtiny15", 0x90, 0x06, 1024, 0, 64, 2000, 4000, AVR_TN15 }, #if 0 /* 12V serial programming only; here just for the evidence */ /* ATtiny10 = QuickFlash(TM) OTP */ { "ATtiny10", 0x90, 0x03, 1024, 0, 0, 8000, 0, 0 }, { "ATtiny11", 0x90, 0x04, 1024, 0, 0, 8000, 0, 0 }, #endif { "AT90S2313", 0x91, 0x01, 2048, 0, 128, 4000, 4000, AVR_2313 }, { "AT90S2343", 0x91, 0x03, 2048, 0, 128, 4000, 4000, AVR_8535 }, { "AT90S2323", 0x91, 0x02, 2048, 0, 128, 4000, 4000, AVR_8535 }, /* no longer in production? 2333 -> 4433, tiny22 -> 2343? */ { "AT90S2333", 0x91, 0x05, 2048, 0, 128, 4000, 4000, AVR_4433 }, { "ATtiny22", 0x91, 0x06, 2048, 0, 128, 4000, 4000, AVR_TN22 }, { "ATtiny26", 0x91, 0x09, 2048, 32, 128, 4500, 9000, AVR_TN26 }, #if 0 /* 12V parallel programming only; here just for the evidence */ { "ATtiny28", 0x91, 0x07, 2048, 0, 0, 8000, 0, 0 }, #endif { "AT90S4433", 0x92, 0x03, 4096, 0, 256, 4000, 4000, AVR_4433 }, /* no longer in production? -> use 8515, 8535 instead */ { "AT90S4414", 0x92, 0x01, 4096, 0, 256, 4000, 4000, AVR_2313 }, { "AT90S4434", 0x92, 0x02, 4096, 0, 256, 4000, 4000, AVR_8535 }, { "AT90S8515", 0x93, 0x01, 8192, 0, 512, 4000, 4000, AVR_2313 }, { "AT90S8535", 0x93, 0x03, 8192, 0, 512, 4000, 4000, AVR_8535 }, #if 0 /* aka AT90S8555 - probably doesn't exist, use ATmega8535 */ { "ATmega83", 0x93, 0x05, 8192, 128, 512, 11000, 4000, AVR_M163 }, #endif { "ATmega8515", 0x93, 0x06, 8192, 64, 512, 4500, 9000, AVR_M163 }, { "ATmega8", 0x93, 0x07, 8192, 64, 512, 4500, 9000, AVR_M163 }, { "ATmega8535", 0x93, 0x08, 8192, 64, 512, 4500, 9000, AVR_M163 }, #if 0 /* 12V parallel programming only; here just for the evidence */ { "AT90C8534", 0x93, 0x04, 8192, 0, 512, 8000, 4000, 0 }, #endif { "ATmega161", 0x94, 0x01, 16384, 128, 512, 11000, 4000, AVR_M161 }, { "ATmega163", 0x94, 0x02, 16384, 128, 512, 15000, 3800, AVR_M163 }, { "ATmega16", 0x94, 0x03, 16384, 128, 512, 4500, 9000, AVR_M163 }, { "ATmega162", 0x94, 0x04, 16384, 128, 512, 4500, 9000, AVR_M128 }, { "ATmega169", 0x94, 0x05, 16384, 128, 512, 4500, 9000, AVR_M128 }, { "ATmega323", 0x95, 0x01, 32768, 128, 1024, 15000, 3800, AVR_M163 }, { "ATmega32", 0x95, 0x02, 32768, 128, 1024, 4500, 9000, AVR_M163 }, { "ATmega64", 0x96, 0x02, 65536, 256, 2048, 4500, 9000, AVR_M128 }, { "ATmega103", 0x97, 0x01, 131072, 256, 4096, 22000, 4000, AVR_M103 }, { "ATmega128", 0x97, 0x02, 131072, 256, 4096, 4500, 9000, AVR_M128 }, { "ATmega103-old",0x01, 0x01, 131072, 256, 4096, 22000, 4000, AVR_M103 }, #if 0 { "ATmega603", 0x96, 0x01, 65536, 256, 2048, 22000, 4000, AVR_M103 }, { "ATmega603-old",0x06, 0x01, 65536, 256, 2048, 22000, 4000, AVR_M103 }, #endif #if 0 /* not yet */ { "AT89S52", 0x52, 0x06, 8192, 0, 0, 1000, 0, AT89S52 }, #endif { "", TARGET_MISSING, 0, 0, 0, 0, 0, 0, 0 }, { "locked", DEVICE_LOCKED, 0, 0, 0, 0, 0, 0, 0 }, { "", 0x0, 0, 0, 0, 0, 0, 0, 0 } }; const char* TAvr::segment_names[] = {"flash", "eeprom", "fuse", NULL}; /* Private Functions */ TAddr TAvr::GetWritePageSize(){ if (device_locked){return 0;} assert(part!=NULL); return part->flash_page_size; } /* Protected Functions */ void TAvr::OverridePart(const char *part_name) { int i; for (i = 0; parts[i].name[0]; i++) { if (strcasecmp(parts[i].name, part_name) == 0) break; } if (parts[i].name[0]) { if (vendor_code != 0x1e || part_family != parts[i].part_family || part_number != parts[i].part_number) { vendor_code = 0x1e; part_family = parts[i].part_family; part_number = parts[i].part_number; Info(3, "Override signature bytes, device %s assumed.\n", parts[i].name); } } else throw Error_Device("Unknown device specified", part_name); } void TAvr::Identify() { const char* vendor = "Device"; Info(3, "Vendor Code: 0x%02x\nPart Family: 0x%02x\nPart Number: 0x%02x\n", vendor_code, part_family, part_number); /* Identify AVR Part according to the vendor_code ... */ if (vendor_code==0x1e){vendor = "Atmel AVR";} if (vendor_code==0 && part_family==DEVICE_LOCKED && part_number==0x02){ device_locked=true; Info(0, "Cannot identify device because it is locked.\n"); /* XXX hack to avoid "invalid parameter" errors if device is locked */ GetCmdParam("-dt_wd_eeprom"); GetCmdParam("-dt_wd_flash"); GetCmdParam("-dvoltage"); #if 0 return; #endif } else{device_locked=false;} if (part_family==TARGET_MISSING){ Info(0, "An error has occurred during the AVR initialization.\n" " * Target status:\n" " Vendor Code = 0x%02x, Part Family = 0x%02x, Part Number = 0x%02x\n\n", vendor_code, part_family, part_number); throw Error_Device("Probably the wiring is incorrect or target" " might be `damaged'."); } int i,n; for(i=0; parts[i].part_family != 0x0; i++){ if (part_family == parts[i].part_family){ for (n=i; parts[n].part_family==part_family; n++){ if (part_number == parts[n].part_number){i=n; break;} } if (i==n){Info(1, "%s %s is found.\n", vendor, parts[i].name);} else{Info(1, "%s similar to the %s is found.\n", vendor, parts[i].name);} part = &parts[i]; break; } } if (parts[i].part_family == 0x0) { throw Error_Device ("Probably the AVR MCU is not in the RESET state.\n" "Check it out and run me again.");} if (!GetCmdParam("--download", false)) SetWriteTimings(); } /* This looks like a good approximation to make the device table simpler (only specify the 5V timings). */ #define CALC_FLASH_T_wd(voltage) ((long) \ ((part ? part->t_wd_flash_50 : 22000) * (5.0 * 5.0) / (voltage * voltage))) #define CALC_EEPROM_T_wd(voltage) ((long) \ ((part ? part->t_wd_eeprom_50 : 4000) * (5.0 * 5.0) / (voltage * voltage))) void TAvr::SetWriteTimings(){ const char* val; page_size = GetWritePageSize(); if (page_size) Info(3, "Page Write Enabled, size=%d\n", (int) page_size); else Info(3, "Page Write Disabled\n"); /* defaults */ t_wd_flash = CALC_FLASH_T_wd(AVR_DEFAULT_VOLTAGE); t_wd_eeprom = CALC_EEPROM_T_wd(AVR_DEFAULT_VOLTAGE); /* set FLASH write delay */ if ((val=GetCmdParam("-dt_wd_flash"))){ t_wd_flash = atol(val); Info(0, "t_wd_flash = %ld\n", t_wd_flash); if (t_wd_flash < CALC_FLASH_T_wd(AVR_MAX_VOLTAGE)){ Info(0, " * According to the Atmel specs the t_wd_flash\n" " should be at least %ld us\n", CALC_FLASH_T_wd(AVR_MAX_VOLTAGE)); #if 0 throw Error_Device("-dt_wd_flash: Value out of range."); #endif } } /* set EEPROM write delay */ if ((val=GetCmdParam("-dt_wd_eeprom"))){ t_wd_eeprom = atol(val); if (t_wd_eeprom < CALC_EEPROM_T_wd(AVR_MAX_VOLTAGE)){ Info(0, " * According to the Atmel specs the t_wd_eeprom\n" " should be at least %ld us\n", CALC_EEPROM_T_wd(AVR_MAX_VOLTAGE)); #if 0 throw Error_Device("-dt_wd_eeprom: Value out of range."); #endif } } /* Set Timings according to the Power Supply Voltage */ if ((val=GetCmdParam("-dvoltage"))){ double voltage = atof(val); if (voltage < AVR_MIN_VOLTAGE || voltage > AVR_MAX_VOLTAGE){ Info(0, " * Atmel AVR MCUs operate in range from %.1f to %.1f V\n", AVR_MIN_VOLTAGE, AVR_MAX_VOLTAGE); throw Error_Device("-dvoltage: Value out of range."); } t_wd_flash = CALC_FLASH_T_wd(voltage); t_wd_eeprom = CALC_EEPROM_T_wd(voltage); } Info(3, "FLASH Write Delay (t_wd_flash): %ld us\n" "EEPROM Write Delay (t_wd_eeprom): %ld us\n", t_wd_flash, t_wd_eeprom); } const char* TAvr::GetPartName(){ return part->name; } TAddr TAvr::GetSegmentSize() { switch (segment) { case SEG_FLASH: return part->flash_size; case SEG_EEPROM: return part->eeprom_size; case SEG_FUSE: return 5; } throw Error_MemoryRange(); } bool TAvr::TestFeatures(unsigned int mask) { return ((part->flags & mask) == mask); } void TAvr::CheckMemoryRange(TAddr addr){ if (device_locked){ Info(0, "Device is locked.\n"); throw Error_MemoryRange(); } if (addr >= GetSegmentSize()) { throw Error_MemoryRange(); } } long TAvr::Get_t_wd_flash() const { return t_wd_flash; } long TAvr::Get_t_wd_eeprom() const { return t_wd_eeprom; } long TAvr::Get_t_wd_erase() const{ #if 0 return 3*t_wd_flash; /* right factor is 2, but just in case */ #else /* Device might be locked and not possible to identify, assume 200ms which should be long enough for any device, and is not that long compared to the program time itself. */ return 200000; #endif } /* Device Interface Functions */ bool TAvr::SetSegment(const char* segment_name){ for (int i=0; segment_names[i]!=NULL; i++){ if (strcmp(segment_names[i], segment_name)==0){ segment=i; return true; } } return false; } const char* TAvr::TellActiveSegment(){ return segment_names[segment]; } const char* TAvr::ListSegment(unsigned index){ if (index>3){return NULL;} return segment_names[index]; } const char* TAvr::ReadByteDescription(TAddr addr){ static const char* no_desc = "No description available."; CheckMemoryRange(addr); return no_desc; } /* Constructor/Destructor */ TAvr::TAvr(): part(NULL), page_size(0), page_addr_fetched(false), page_poll_byte(0xFF), segment(SEG_FLASH){ } TAvr::~TAvr(){ } tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/Avr.h000066400000000000000000000140071206361226500227360ustar00rootroot00000000000000// $Id: Avr.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: Avr.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002, 2003 Uros Platise * * 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 * **************************************************************************** */ /* Avr.h Top class of the AVR micro controllers Uros Platise (c) 1999 */ #ifndef __AVR #define __AVR #include "Global.h" /* Virtual Addresses for fuse and lock bytes. These are used to map a read/write of a byte in the fuse segment to the underlying operation. The real address may be different, but should be hidden in the more specific code. */ enum { AVR_FUSE_LOW_ADDR = 0, AVR_FUSE_HIGH_ADDR = 1, AVR_CAL_ADDR = 2, AVR_LOCK_ADDR = 3, AVR_FUSE_EXT_ADDR = 4, }; /* Define the lock bits */ enum { LB1 = 0x01, LB2 = 0x02, BLB01 = 0x04, BLB02 = 0x08, BLB11 = 0x10, BLB12 = 0x20, }; /* Flags for device features: */ /* Old command (LB1=b7, LB2=b6) for Read Lock and Fuse Bits. */ #define AVR_LOCK_RD76 0x0001 /* New command (LB1=b1, LB2=b2) for Read Lock Bits. */ #define AVR_LOCK_RD12 0x0002 /* Read/Write Boot Lock Bits (BLB12,11,02,01,LB2,LB1=b5...b0). */ #define AVR_LOCK_BOOT 0x0004 /* Read Fuse Bits (0x50) command supported. */ #define AVR_FUSE_RD 0x0008 /* Old command (bits 0-4 of byte 2) for Write Fuse Bits. */ #define AVR_FUSE_OLDWR 0x0010 /* New command (all bits of byte 4) for Write Fuse (Low) Bits. */ #define AVR_FUSE_NEWWR 0x0020 /* Read/Write Fuse High Bits. */ #define AVR_FUSE_HIGH 0x0040 /* Read Calibration Byte. */ #define AVR_CAL_RD 0x0080 /* Data Polling supported for Flash page write. */ #define AVR_PAGE_POLL 0x0100 /* Data Polling supported for byte write (XXX not on AT90S1200?). */ #define AVR_BYTE_POLL 0x0200 /* Has 3 bytes of fuse bits (ATmega128). */ #define AVR_FUSE_EXT 0x0400 /* Sets of the above flags ORed for different classes of devices. */ #define AVR_1200 0 /* XXX no polling */ #define AVR_2313 (AVR_BYTE_POLL) #define AVR_TN22 (AVR_BYTE_POLL | AVR_LOCK_RD76) #define AVR_8535 (AVR_BYTE_POLL | AVR_LOCK_RD76 | AVR_FUSE_OLDWR) #define AVR_4433 (AVR_BYTE_POLL | AVR_LOCK_RD12 | AVR_FUSE_RD | AVR_FUSE_OLDWR) #define AVR_M103 (AVR_BYTE_POLL | AVR_LOCK_RD12 | AVR_FUSE_RD | AVR_FUSE_OLDWR) #define AVR_TN12 (AVR_BYTE_POLL | AVR_LOCK_RD12 | AVR_FUSE_RD | AVR_FUSE_NEWWR \ | AVR_CAL_RD) #define AVR_TN15 (AVR_BYTE_POLL | AVR_LOCK_RD12 | AVR_FUSE_RD | AVR_FUSE_NEWWR \ | AVR_CAL_RD) #define AVR_M161 (AVR_BYTE_POLL | AVR_PAGE_POLL | AVR_LOCK_BOOT | AVR_FUSE_RD \ | AVR_FUSE_NEWWR) #define AVR_M163 (AVR_BYTE_POLL | AVR_PAGE_POLL | AVR_LOCK_BOOT | AVR_FUSE_RD \ | AVR_FUSE_NEWWR | AVR_CAL_RD | AVR_FUSE_HIGH) #define AVR_M128 (AVR_BYTE_POLL | AVR_PAGE_POLL | AVR_LOCK_BOOT | AVR_FUSE_RD \ | AVR_FUSE_NEWWR | AVR_CAL_RD | AVR_FUSE_HIGH | AVR_FUSE_EXT) /* XXX no boot lock bits, but ordinary lock bits are in bits 1 and 0. XXX has 4 calibration bytes for 1/2/4/8 MHz, can only read one for now. */ #define AVR_TN26 (AVR_BYTE_POLL | AVR_PAGE_POLL | AVR_LOCK_BOOT | AVR_FUSE_RD \ | AVR_FUSE_NEWWR | AVR_CAL_RD | AVR_FUSE_HIGH) #define AVR_MIN_VOLTAGE 2.7 /* V */ #define AVR_MAX_VOLTAGE 6.0 /* V */ #define AVR_DEFAULT_VOLTAGE 3.0 /* V */ class TAvr: public TDevice{ private: /* AVR Family Device (Part) List */ struct TPart { char* name; TByte part_family; TByte part_number; TAddr flash_size; TAddr flash_page_size; TAddr eeprom_size; long t_wd_flash_50; /* flash programming delay at 5.0 V */ long t_wd_eeprom_50; unsigned int flags; }; TPart* part; bool device_locked; long t_wd_flash; long t_wd_eeprom; protected: enum TSegment{SEG_FLASH=0, SEG_EEPROM=1, SEG_FUSE=2}; /* ATmega page programming */ TAddr page_size; TAddr page_addr_fetched; /* Becomes true when first byte is written */ TAddr page_addr; /* Fetched Page Address */ /* Page Write Polling */ TAddr page_poll_addr; /* address of the last non-0xFF byte written */ TByte page_poll_byte; /* value of the last non-0xFF byte written */ /* Variables and Functions */ private: static TPart parts[]; TAddr GetWritePageSize(); void SetWriteTimings(); protected: int segment; static const char* segment_names[]; /* AVR Signs/Info */ TByte vendor_code; TByte part_family; TByte part_number; void Identify(); void OverridePart(const char *); const char* GetPartName(); TAddr GetSegmentSize(); bool TestFeatures(unsigned int mask); void CheckMemoryRange(TAddr addr); long Get_t_wd_flash() const; long Get_t_wd_eeprom() const; long Get_t_wd_erase() const; public: /* Set active segment. Returns true if segment exists, otherwise false */ bool SetSegment(const char* segment_name); /* Returns char pointer of current active segment name. */ const char* TellActiveSegment(); /* Returns char pointer of the indexed segment name. Index is in range [0,no_of_segments]. When index is out of range NULL is returned. */ const char* ListSegment(unsigned index); /* Read byte description at address addr (as security bits) */ const char* ReadByteDescription(TAddr addr); TAvr(); ~TAvr(); }; #endif tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/AvrAtmel.C000066400000000000000000000451551206361226500236640ustar00rootroot00000000000000// $Id: AvrAtmel.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: AvrAtmel.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002 Uros Platise * * 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 * **************************************************************************** */ /* AvrAtmel.C Device driver for the Serial Atmel Low Cost Programmer Uros Platise (c) 1999 */ #include "config.h" #include #include #include #include #include #include #include "AvrAtmel.h" #define AUTO_SELECT 0 /* Low Cost Atmel Programmer AVR Codes Valid for software version: SW_MAJOR=2 SW_MINOR=0 Code 0xff is reserved for invalid code. Update the TAvrAtmel constructor if Atmel comes up with it. The list is current as of AVRProg 1.37 (shipped with AVR Studio 3.54). */ TAvrAtmel::SPrgPart TAvrAtmel::prg_part [] = { {"S1200A", 0x10, "AT90S1200 rev. A", false}, /* old */ {"S1200B", 0x11, "AT90S1200 rev. B", false}, /* old */ {"S1200C", 0x12, "AT90S1200 rev. C", false}, /* old */ {"S1200", 0x13, "AT90S1200", false}, {"S2313", 0x20, "AT90S2313", false}, {"S4414", 0x28, "AT90S4414", false}, {"S4433", 0x30, "AT90S4433", false}, {"S2333", 0x34, "AT90S2333", false}, {"S8515", 0x38, "AT90S8515", false}, {"M8515", 0x3A, "ATmega8515", false}, {"M8515b", 0x3B, "ATmega8515 BOOT", false}, {"M103C", 0x40, "ATmega103 rev. C", false}, /* old */ {"M103", 0x41, "ATmega103", false}, {"M603", 0x42, "ATmega603", false}, {"M128", 0x43, "ATmega128", false}, {"M128b", 0x44, "ATmega128 BOOT", false}, {"S2323", 0x48, "AT90S2323", false}, {"S2343", 0x4C, "AT90S2343", false}, /* ATtiny22 too */ {"TN11", 0x50, "ATtiny11", false}, /* parallel */ {"TN10", 0x51, "ATtiny10", false}, /* parallel */ {"TN12", 0x55, "ATtiny12", false}, {"TN15", 0x56, "ATtiny15", false}, {"TN19", 0x58, "ATtiny19", false}, /* parallel */ {"TN28", 0x5C, "ATtiny28", false}, /* parallel */ {"TN26", 0x5E, "ATtiny26", false}, {"M161", 0x60, "ATmega161", false}, {"M161b", 0x61, "ATmega161 BOOT", false}, {"M163", 0x64, "ATmega163", false}, {"M83", 0x65, "ATmega83", false}, /* ATmega8535 ??? */ {"M163b", 0x66, "ATmega163 BOOT", false}, {"M83b", 0x67, "ATmega83 BOOT", false}, {"S8535", 0x68, "AT90S8535", false}, {"S4434", 0x6C, "AT90S4434", false}, {"C8534", 0x70, "AT90C8534", false}, /* parallel */ {"C8544", 0x71, "AT90C8544", false}, /* parallel ??? */ {"M32", 0x72, "ATmega32", false}, /* XXX no ATmega323 */ {"M32b", 0x73, "ATmega32 BOOT", false}, {"M16", 0x74, "ATmega16", false}, {"M16b", 0x75, "ATmega16 BOOT", false}, {"M8", 0x76, "ATmega8", false}, {"M8b", 0x77, "ATmega8 BOOT", false}, {"89C1051",0x80, "AT89C1051", false}, /* parallel */ {"89C2051",0x81, "AT89C2051", false}, /* parallel */ {"89C51", 0x82, "AT89C51", false}, /* parallel */ {"89LV51", 0x83, "AT89LV51", false}, /* parallel */ {"89C52", 0x84, "AT89C52", false}, /* parallel */ {"89LV52", 0x85, "AT89LV52", false}, /* parallel */ {"S8252", 0x86, "AT89S8252", false}, {"89S53", 0x87, "AT89S53", false}, /* 0x88..0xDF reserved for AT89, 0xE0..0xFF reserved */ {"auto", AUTO_SELECT, "Auto detect", false}, {"", 0x00, "", false} }; /* Private Functions */ void TAvrAtmel::EnterProgrammingMode(){ /* Select Device Type */ TByte set_device[2] = {'T', desired_avrcode}; Send(set_device, 2, 1); CheckResponse(set_device[0]); /* Enter Programming Mode */ TByte enter_prg[1] = {'P'}; Send(enter_prg, 1); CheckResponse(enter_prg[0]); /* Read Signature Bytes */ TByte sig_bytes[3] = {'s', 0, 0}; Send(sig_bytes, 1, 3); part_number = sig_bytes[0]; part_family = sig_bytes[1]; vendor_code = sig_bytes[2]; } void TAvrAtmel::LeaveProgrammingMode(){ TByte leave_prg [1] = { 'L' }; Send(leave_prg, 1); } void TAvrAtmel::CheckResponse(TByte x){ if (x!=13){throw Error_Device ("Device is not responding correctly.");} } void TAvrAtmel::EnableAvr(){ bool auto_select = desired_avrcode == AUTO_SELECT; for (unsigned pidx=0; prg_part[pidx].code != AUTO_SELECT; pidx++){ if (!prg_part[pidx].supported && auto_select){continue;} if (auto_select){ desired_avrcode = prg_part[pidx].code; Info(2, "Trying with: %s\n", prg_part[pidx].description); } EnterProgrammingMode(); if (!auto_select || !(vendor_code==0 && part_family==1 && part_number==2)){ break; } LeaveProgrammingMode(); } // OverridePart("atmega163"); // XXXXX local hack for broken signature bytes Identify(); if (auto_select){ /* If avr was recongnized by the Identify(), try to find better match in the support list. */ unsigned better_pidx = 0; TByte better_avrcode = desired_avrcode; for (unsigned pidx=0; prg_part[pidx].code != AUTO_SELECT; pidx++){ if (!prg_part[pidx].supported){continue;} if (strstr(prg_part[pidx].description, GetPartName())){ better_avrcode = prg_part[better_pidx = pidx].code; } } if (better_avrcode != desired_avrcode){ Info(2, "Retrying with better match: %s\n", prg_part[better_pidx].description); desired_avrcode = better_avrcode; LeaveProgrammingMode(); EnterProgrammingMode(); Identify(); } } } void TAvrAtmel::SetAddress(TAddr addr){ apc_address = addr; TByte setAddr [3] = { 'A', (addr>>8)&0xff, addr&0xff}; Send(setAddr, 3, 1); CheckResponse(setAddr [0]); } void TAvrAtmel::WriteProgramMemoryPage(){ SetAddress(page_addr >> 1); TByte prg_page [1] = { 'm' }; Send(prg_page, 1); } /* Device Interface Functions */ TByte TAvrAtmel::ReadByte(TAddr addr){ CheckMemoryRange(addr); if (segment==SEG_FLASH){ TAddr saddr = addr>>1; TByte rdF [2] = { 'R', 0 }; if (buf_addr==addr && cache_lowbyte==true){return buf_lowbyte;} if (apc_address!=saddr || apc_autoinc==false) SetAddress(saddr); apc_address++; Send(rdF, 1, 2); /* cache low byte */ cache_lowbyte = true; buf_addr = (saddr<<1) + 1; buf_lowbyte = rdF[0]; return rdF [1 - (addr&1)]; } else if (segment==SEG_EEPROM){ SetAddress(addr); TByte readEE [1] = { 'd' }; Send(readEE, 1); return readEE[0]; } else if (segment==SEG_FUSE) { TByte readback = 0xff; switch (addr) { case AVR_FUSE_LOW_ADDR: if (TestFeatures(AVR_FUSE_RD)) readback = ReadFuseLowBits(); #if 0 /* TRoth/2002-06-03: This case is handled by ReadLockBits() so we don't need it here. Can I delete it completely? */ else if (TestFeatures(AVR_LOCK_RD76)) readback = ReadLockFuseBits(); #endif break; case AVR_FUSE_HIGH_ADDR: if (TestFeatures(AVR_FUSE_HIGH)) readback = ReadFuseHighBits(); else Info (1, "Cannot read high fuse bits on this device. Returning 0xff\n"); break; case AVR_CAL_ADDR: if (TestFeatures(AVR_CAL_RD)) readback = ReadCalByte(0); else Info (1, "Cannot read calibration byte on this device. Returning 0xff\n"); break; case AVR_LOCK_ADDR: readback = ReadLockBits(); break; case AVR_FUSE_EXT_ADDR: if (TestFeatures(AVR_FUSE_EXT)) readback = ReadFuseExtBits(); else Info (1, "Cannot read extended fuse bits on this device. Returning 0xff\n"); break; } Info(3, "Read fuse/cal/lock: byte %d = 0x%02X\n", (int) addr, (int) readback); return readback; } else return 0; } void TAvrAtmel::WriteByte(TAddr addr, TByte byte, bool flush_buffer){ CheckMemoryRange(addr); /* do not check if byte is already written -- it spoils auto-increment feature which reduces the speed for 50%! */ if (segment==SEG_FLASH){ cache_lowbyte = false; /* clear read cache buffer */ if (!page_size && byte==0xff) return; /* PAGE MODE PROGRAMMING: If page mode is enabled cache page address. When current address is out of the page address flush page buffer and continue programming. */ if (page_size){ Info(4, "Loading data to address: %d (page_addr_fetched=%s)\n", addr, page_addr_fetched?"Yes":"No"); if (page_addr_fetched && page_addr != (addr & ~(page_size - 1))){ WriteProgramMemoryPage(); page_addr_fetched = false; } if (page_addr_fetched==false){ page_addr=addr & ~(page_size - 1); page_addr_fetched=true; } if (flush_buffer){WriteProgramMemoryPage();} } TByte wrF [2] = { (addr&1)?'C':'c', byte }; if (apc_address!=(addr>>1) || apc_autoinc==false) SetAddress (addr>>1); if (wrF[0]=='C') apc_address++; Send(wrF, 2, 1); CheckResponse(wrF[0]); } else if (segment==SEG_EEPROM){ SetAddress(addr); TByte writeEE [2] = { 'D', byte }; Send(writeEE, 2, 1); CheckResponse(writeEE[0]); } else if (segment==SEG_FUSE){ Info(3, "Write fuse/lock: byte %d = 0x%02X\n", (int) addr, (int) byte); switch (addr) { case AVR_FUSE_LOW_ADDR: if (TestFeatures(AVR_FUSE_NEWWR)) WriteFuseLowBits(byte); else if (TestFeatures(AVR_FUSE_OLDWR)) WriteOldFuseBits(byte); break; case AVR_FUSE_HIGH_ADDR: if (TestFeatures(AVR_FUSE_HIGH)) WriteFuseHighBits(byte); else Info (1, "Cannot write high fuse bits on this device"); break; /* calibration byte (addr == 2) is read only */ case AVR_CAL_ADDR: Info (1, "Cannot write calibration byte. It is read-only.\n"); break; case AVR_LOCK_ADDR: WriteLockBits(byte); break; case AVR_FUSE_EXT_ADDR: if (TestFeatures(AVR_FUSE_EXT)) WriteFuseExtBits(byte); } } } /* Write Fuse Bits (old): 7 6 5 4 3 2 1 0 2323,8535: x x x 1 1 1 1 FSTRT 2343: x x x 1 1 1 1 RCEN 2333,4433: x x x BODLV BODEN CKSL2 CKSL1 CKSL0 m103,m603: x x x 1 EESAV 1 SUT1 SUT0 */ void TAvrAtmel::WriteOldFuseBits (TByte val) { TByte buf[5] = {'.', 0xac, (val & 0x1f) | 0xa0, 0x00, 0xd2 }; Info (2, "Write fuse high bits: %02x\n", (int)val); Send (buf, 5, 2); CheckResponse (buf[1]); } /* Write Fuse Bits (Low, new): 7 6 5 4 3 2 1 0 m161: 1 BTRST 1 BODLV BODEN CKSL2 CKSL1 CKSL0 m163,m323: BODLV BODEN 1 1 CKSL3 CKSL2 CKSL1 CKSL0 m8,m16,m64,m128: BODLV BODEN SUT1 SUT0 CKSL3 CKSL2 CKSL1 CKSL0 tn12: BODLV BODEN SPIEN RSTDI CKSL3 CKSL2 CKSL1 CKSL0 tn15: BODLV BODEN SPIEN RSTDI 1 1 CKSL1 CKSL0 WARNING (tn12,tn15): writing SPIEN=1 disables further low voltage programming! */ void TAvrAtmel::WriteFuseLowBits (TByte val) { // use new universal command. TByte buf[5] = {'.', 0xac, 0xa0, 0x00, val }; Info (2, "Write fuse high bits: %02x\n", (int)val); Send (buf, 5, 2); CheckResponse (buf[1]); } /* Write Fuse Bits High: 7 6 5 4 3 2 1 0 m163: 1 1 1 1 1 BTSZ1 BTSZ0 BTRST m323: OCDEN JTGEN 1 1 EESAV BTSZ1 BTSZ0 BTRST m16,m64,m128: OCDEN JTGEN x CKOPT EESAV BTSZ1 BTSZ0 BTRST m8: RSTDI WDTON x CKOPT EESAV BTSZ1 BTSZ0 BTRST */ void TAvrAtmel::WriteFuseHighBits (TByte val) { // use new universal command. TByte buf[5] = {'.', 0xac, 0xa8, 0x00, val }; Info (2, "Write fuse high bits: %02x\n", (int)val); Send (buf, 5, 2); CheckResponse (buf[1]); } /* Write Extended Fuse Bits: 7 6 5 4 3 2 1 0 m64,m128: x x x x x x M103C WDTON */ void TAvrAtmel::WriteFuseExtBits (TByte val) { // use new universal command. TByte buf[5] = {'.', 0xac, 0xa4, 0x00, val }; Info (2, "Write fuse extended bits: %02x\n", (int)val); Send (buf, 5, 2); CheckResponse (buf[1]); } void TAvrAtmel::FlushWriteBuffer(){ if (page_addr_fetched){ WriteProgramMemoryPage(); } } /* Chip erase can take a few seconds when talking to a boot loader, which does it one page at a time. */ #ifndef CHIP_ERASE_TIMEOUT #define CHIP_ERASE_TIMEOUT 5 #endif void TAvrAtmel::ChipErase(){ TByte eraseTarget [1] = { 'e' }; Send (eraseTarget, 1, -1, CHIP_ERASE_TIMEOUT); CheckResponse(eraseTarget [0]); Info(1, "Erasing device ...\nReinitializing device\n"); EnableAvr(); } void TAvrAtmel::WriteLockBits(TByte bits){ TByte lockTarget [2] = { 'l', 0xF9 | ((bits << 1) & 0x06) }; Send (lockTarget, 2, 1); CheckResponse(lockTarget [0]); Info(1, "Writing lock bits ...\nReinitializing device\n"); EnableAvr(); } TByte TAvrAtmel::ReadFuseLowBits () { // use new universal command. TByte buf[5] = {'.', 0x50, 0x00, 0x00, 0x00 }; Send (buf, 5, 2); CheckResponse (buf[1]); Info (2, "Read fuse low bits: %02x\n", (int)buf[0]); return buf[0]; } TByte TAvrAtmel::ReadFuseHighBits () { // use new universal command. TByte buf[5] = {'.', 0x58, 0x08, 0x00, 0x00 }; Send (buf, 5, 2); CheckResponse (buf[1]); Info (2, "Read fuse high bits: %02x\n", (int)buf[0]); return buf[0]; } TByte TAvrAtmel::ReadCalByte(TByte addr) { // use new universal command. TByte buf[5] = {'.', 0x38, 0x00, addr, 0x00 }; Send (buf, 5, 2); CheckResponse (buf[1]); Info (2, "Read calibration byte: %02x\n", (int)buf[0]); return buf[0]; } TByte TAvrAtmel::ReadFuseExtBits () { // use new universal command. TByte buf[5] = {'.', 0x50, 0x08, 0x00, 0x00 }; Send (buf, 5, 2); CheckResponse (buf[1]); return buf[0]; Info (2, "Read extended fuse bits: %02x\n", (int)buf[0]); return buf[0]; } TByte TAvrAtmel::ReadLockFuseBits () { // use new universal command. TByte buf[5] = {'.', 0x58, 0x00, 0x00, 0x00 }; Send (buf, 5, 2); CheckResponse (buf[1]); Info (2, "Read lock bits: %02x\n", (int)buf[0]); return buf[0]; } // ReadLockBits tries to return the lock bits in a uniform order, despite // the differences in different AVR versions. The goal is to get the lock // bits into this order: // x x BLB12 BLB11 BLB02 BLB01 LB2 LB1 // For devices that don't support a boot block, the BLB bits will be 1. TByte TAvrAtmel::ReadLockBits() { TByte rbits = 0xFF; if (TestFeatures(AVR_LOCK_BOOT)) { /* x x BLB12 BLB11 BLB02 BLB01 LB2 LB1 */ rbits = ReadLockFuseBits(); } else if (TestFeatures(AVR_LOCK_RD76)) { rbits = ReadLockFuseBits(); /* LB1 LB2 x x x x x x -> 1 1 1 1 1 1 LB2 LB1 */ rbits = ((rbits >> 7) & 1) | ((rbits >> 5) & 1) | 0xFC; } else if (TestFeatures(AVR_LOCK_RD12)) { rbits = ReadLockFuseBits(); /* x x x x x LB2 LB1 x -> 1 1 1 1 1 1 LB2 LB1 */ rbits = ((rbits >> 1) & 3) | 0xFC; } else { // if its signature returns 0,1,2 then say it's locked. /* Read Signature Bytes */ TByte sig_bytes[3] = {'s', 0, 0}; Send(sig_bytes, 1, 3); if (sig_bytes[0]==0 && sig_bytes[1]==1 && sig_bytes[2]==2) rbits = 0xFC; else throw Error_Device ("ReadLockBits failed: are you sure this device has lock bits?"); } return rbits; } /* Constructor/Destructor */ TAvrAtmel::TAvrAtmel(): cache_lowbyte(false), apc_address(0x10000), apc_autoinc(false) { /* Select Part by Number or Name */ desired_avrcode=0xff; const char* desired_partname = GetCmdParam("-dpart"); bool got_device=false; if (desired_partname!=NULL) { if (desired_partname[0] >= '0' && desired_partname[0] <= '9'){ desired_avrcode = strtol(&desired_partname[0],(char**)NULL,16); } else{ int j; for (j=0; prg_part[j].name[0] != 0; j++){ if ((strcasecmp (desired_partname, prg_part[j].name)==0) || (strcasecmp (desired_partname, prg_part[j].description)==0)) { desired_avrcode = prg_part[j].code; break; } } if (prg_part[j].name[0]==0){throw Error_Device("-dpart: Invalid name.");} } } /* check: software version and supported part codes */ TByte sw_version [2] = {'V', 0}; TByte hw_version [2] = {'v', 0}; Send(sw_version, 1, 2); Send(hw_version, 1, 2); Info(1, "Programmer Information:\n" " Software Version: %c.%c, Hardware Version: %c.%c\n", sw_version [0], sw_version [1], hw_version [0], hw_version [1]); /* Detect Auto-Increment */ if (sw_version[0]>='2'){ apc_autoinc=true; Info(2, "Address Auto Increment Optimization Enabled\n"); } /* Retrieve supported codes */ TByte sup_codes[1] = {'t'}; Tx(sup_codes, 1); TByte buf_code; timeval timeout = {1, 0}; if (desired_partname==NULL){ Info(1, " Supported Parts:\n\tNo\tAbbreviation\tDescription\n"); } do{ Rx(&buf_code, 1, &timeout); if (buf_code==0){break;} if (desired_partname!=NULL){ if (buf_code==desired_avrcode){got_device=true;} if (desired_avrcode!=AUTO_SELECT) continue; } int j; for (j=0; prg_part[j].name[0] != 0; j++){ if (prg_part[j].code == buf_code){ prg_part[j].supported = true; if (desired_avrcode!=AUTO_SELECT){ Info(1, "\t%.2x\t%s\t\t%s\n", buf_code, prg_part[j].name, prg_part[j].description); } break; } } if (prg_part[j].code == 0) { Info(1, " - %.2xh (not on the uisp's list yet)\n", buf_code); } } while (1); Info(1, "\n"); if (got_device==false) { if (desired_partname==NULL){ throw Error_Device("Select a part from the list with the: -dpart\n" "or use the -dpart=auto option for auto-select.\n"); } else if (desired_avrcode!=AUTO_SELECT){ throw Error_Device("Programmer does not supported chosen device."); } } EnableAvr(); } TAvrAtmel::~TAvrAtmel(){ /* leave programming mode! Due to this procedure, enableAvr had to be taken out of TAtmelAvr::TAtmelAvr func. */ LeaveProgrammingMode(); } tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/AvrAtmel.h000066400000000000000000000052261206361226500237240ustar00rootroot00000000000000// $Id: AvrAtmel.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: AvrAtmel.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002 Uros Platise * * 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 * **************************************************************************** */ /* AvrAtmel.h, Uros Platise (c) 1999 */ #ifndef __AVR_ATMEL #define __AVR_ATMEL #include "Global.h" #include "Serial.h" #include "Avr.h" class TAvrAtmel: public TAvr, TSerial { private: /* Programmer AVR codes */ struct SPrgPart{ const char* name; TByte code; const char* description; bool supported; }; static SPrgPart prg_part[]; TByte desired_avrcode; /* Flash word's lower byte cache */ bool cache_lowbyte; TByte buf_lowbyte; TAddr buf_addr; /* Speed-up Transfer by using the Auto-Increment Option */ TAddr apc_address; /* AVR Programmer's Current Address */ bool apc_autoinc; /* Auto Increment Supported by AVR ISP SoftVer 2 */ private: void EnterProgrammingMode(); void LeaveProgrammingMode(); void CheckResponse(TByte x); void EnableAvr(); void SetAddress(TAddr addr); void WriteProgramMemoryPage(); TByte ReadFuseLowBits (); TByte ReadFuseHighBits (); TByte ReadCalByte(TByte addr); TByte ReadFuseExtBits (); TByte ReadLockFuseBits (); TByte ReadLockBits (); void WriteOldFuseBits (TByte val); void WriteFuseLowBits (TByte val); void WriteFuseHighBits (TByte val); void WriteFuseExtBits (TByte val); public: /* Read byte from active segment at address addr. */ TByte ReadByte(TAddr addr); /* Write byte to active segment at address addr */ void WriteByte(TAddr addr, TByte byte, bool flush_buffer=true); void FlushWriteBuffer(); /* Chip Erase */ void ChipErase(); /* Write lock bits */ void WriteLockBits(TByte bits); TAvrAtmel(); ~TAvrAtmel(); }; #endif tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/AvrDummy.C000066400000000000000000000413161206361226500237100ustar00rootroot00000000000000// $Id: AvrDummy.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: AvrDummy.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002 Uros Platise * * 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 * **************************************************************************** */ /* AvrDummy.C Dummy device driver for the AVR parallel access Uros Platise (c) 1999 */ #ifndef NO_DAPA #include "config.h" #include "timeradd.h" #include "AvrDummy.h" /* Private Functions */ void TAvrDummy::EnableAvr(){ unsigned char prg [4] = { 0xAC, 0x53, 0, 0 }; int try_number = 32; bool no_retry = GetCmdParam("-dno-retry", false); const char *part_name = GetCmdParam("-dpart"); if (part_name && strcasecmp(part_name, "at90s1200") == 0) no_retry = true; /* XXX */ /* Enable AVR programming mode */ do{ prg[0]=0xAC; prg[1]=0x53; prg[2]=prg[3]=0; Send(prg, 4); if (no_retry) break; if (prg[2] == 0x53) break; PulseSck(); } while (try_number--); if (try_number>=0){ Info(2,"AVR Direct Parallel Access succeeded after %d retries.\n", 32-try_number); } else { Info(2,"AVR Direct Parallel Access failed after 32 retries.\n"); } /* Get AVR Info */ vendor_code = GetPartInfo(0); part_family = GetPartInfo(1); part_number = GetPartInfo(2); if (part_name) OverridePart(part_name); Identify(); } TByte TAvrDummy::GetPartInfo(TAddr addr) { TByte info [4] = { 0x30, 0, addr, 0 }; Send(info, 4); return info[3]; } void TAvrDummy::WriteProgramMemoryPage() { struct timeval t_start_wr, t_start_poll, t_wait, t_timeout, t_end, t_write; bool poll_data = use_data_polling && TestFeatures(AVR_PAGE_POLL) && (page_poll_byte != 0xFF); TByte prg_page [4] = { 0x4C, (TByte)((page_addr >> 9) & 0xff), (TByte)((page_addr >> 1) & 0xff), 0 }; gettimeofday(&t_start_wr, NULL); t_wait.tv_sec = 0; t_wait.tv_usec = Get_t_wd_flash(); Info(4, "Programming page address: %d (%.2x, %.2x, %.2x, %.2x)\n", page_addr, prg_page[0], prg_page[1], prg_page[2], prg_page[3]); Send(prg_page, 4); gettimeofday(&t_start_poll, NULL); timeradd(&t_start_poll, &t_wait, &t_timeout); /* Wait */ do { gettimeofday(&t_end, NULL); if (poll_data) { TByte rbyte = ReadByte(page_poll_addr); if (rbyte == page_poll_byte) break; } } while (timercmp(&t_end, &t_timeout, <)); /* Write Statistics */ timersub(&t_end, &t_start_wr, &t_write); /* t_write = t_end - t_start_wr */ if (poll_data) { float write_time = 1.0e-6 * t_write.tv_usec + t_write.tv_sec; total_poll_time += write_time; if (max_poll_time < write_time) max_poll_time = write_time; if (min_poll_time > write_time) min_poll_time = write_time; total_poll_cnt++; } page_addr_fetched=false; page_poll_byte = 0xFF; } /* Device Interface Functions */ TByte TAvrDummy::ReadByte(TAddr addr) { TByte readback = 0xFF; CheckMemoryRange(addr); if (segment == SEG_FLASH) { TByte hl = (addr & 1) ? 0x28 : 0x20; TByte flash[4] = { hl, (TByte)((addr >> 9) & 0xff), (TByte)((addr >> 1) & 0xff), 0 }; Send(flash, 4); readback = flash[3]; } else if (segment == SEG_EEPROM) { TByte eeprom [4] = { 0xA0, (TByte)((addr>>8)&0xff), (TByte)(addr&0xff), 0 }; Send(eeprom, 4); readback = eeprom[3]; } else if (segment==SEG_FUSE) { switch (addr) { case AVR_FUSE_LOW_ADDR: if (TestFeatures(AVR_FUSE_RD)) readback = ReadFuseLowBits(); #if 0 /* TRoth/2002-06-03: This case is handled by ReadLockBits() so we don't need it here. Can I delete it completely? */ else if (TestFeatures(AVR_LOCK_RD76)) readback = ReadLockFuseBits(); #endif break; case AVR_FUSE_HIGH_ADDR: if (TestFeatures(AVR_FUSE_HIGH)) readback = ReadFuseHighBits(); break; case AVR_CAL_ADDR: if (TestFeatures(AVR_CAL_RD)) readback = ReadCalByte(0); break; case AVR_LOCK_ADDR: readback = ReadLockBits(); break; case AVR_FUSE_EXT_ADDR: if (TestFeatures(AVR_FUSE_EXT)) readback = ReadFuseExtBits(); } Info(3, "Read fuse/cal/lock: byte %d = 0x%02X\n", (int) addr, (int) readback); } return readback; } /* Read Lock/Fuse Bits: 7 6 5 4 3 2 1 0 2333,4433,m103,m603,tn12,tn15: x x x x x LB2 LB1 x 2323,8535: LB1 LB2 SPIEN x x x x FSTRT 2343: LB1 LB2 SPIEN x x x x RCEN tn22: LB1 LB2 SPIEN x x x x 0 m161,m163,m323,m128: x x BLB12 BLB11 BLB02 BLB01 LB2 LB1 tn26: x x x x x x LB2 LB1 */ TByte TAvrDummy::ReadLockFuseBits() { TByte lockfuse[4] = { 0x58, 0, 0, 0 }; Send(lockfuse, 4); return lockfuse[3]; } /* Read Fuse Bits (Low): 7 6 5 4 3 2 1 0 2333,4433: x x SPIEN BODLV BODEN CKSL2 CKSL1 CKSL0 m103,m603: x x SPIEN x EESAV 1 SUT1 SUT0 tn12: BODLV BODEN SPIEN RSTDI CKSL3 CKSL2 CKSL1 CKSL0 tn15: BODLV BODEN SPIEN RSTDI x x CKSL1 CKSL0 m161: x BTRST SPIEN BODLV BODEN CKSL2 CKSL1 CKSL0 m163,m323: BODLV BODEN x x CKSL3 CKSL2 CKSL1 CKSL0 m8,m16,m32,m64,m128: BODLV BODEN SUT1 SUT0 CKSL3 CKSL2 CKSL1 CKSL0 tn26: PLLCK CKOPT SUT1 SUT0 CKSL3 CKSL2 CKSL1 CKSL0 */ TByte TAvrDummy::ReadFuseLowBits() { TByte fuselow[4] = { 0x50, 0, 0, 0 }; Send(fuselow, 4); return fuselow[3]; } /* Read Fuse Bits High: 7 6 5 4 3 2 1 0 m163: x x x x 1 BTSZ1 BTSZ0 BTRST m323: OCDEN JTGEN x x EESAV BTSZ1 BTSZ0 BTRST m16,m32,m64,m128: OCDEN JTGEN SPIEN CKOPT EESAV BTSZ1 BTSZ0 BTRST m8: RSTDI WDTON SPIEN CKOPT EESAV BTSZ1 BTSZ0 BTRST tn26: 1 1 1 RSTDI SPIEN EESAV BODLV BODEN */ TByte TAvrDummy::ReadFuseHighBits() { TByte fusehigh[4] = { 0x58, 0x08, 0, 0 }; Send(fusehigh, 4); return fusehigh[3]; } /* Read Extended Fuse Bits: 7 6 5 4 3 2 1 0 m64,m128: x x x x x x M103C WDTON */ TByte TAvrDummy::ReadFuseExtBits() { TByte fuseext[4] = { 0x50, 0x08, 0, 0 }; Send(fuseext, 4); return fuseext[3]; } /* Read Calibration Byte (m163, m323, m128, tn12, tn15, tn26) addr=0...3 for tn26, addr=0 for other devices */ TByte TAvrDummy::ReadCalByte(TByte addr) { TByte cal[4] = { 0x38, 0, addr, 0 }; Send(cal, 4); return cal[3]; } /* Write Fuse Bits (old): 7 6 5 4 3 2 1 0 2323,8535: x x x 1 1 1 1 FSTRT 2343: x x x 1 1 1 1 RCEN 2333,4433: x x x BODLV BODEN CKSL2 CKSL1 CKSL0 m103,m603: x x x 1 EESAV 1 SUT1 SUT0 */ void TAvrDummy::WriteOldFuseBits(TByte val) { TByte oldfuse[4] = { 0xAC, (val & 0x1F) | 0xA0, 0, 0xD2 }; Send(oldfuse, 4); } /* Write Fuse Bits (Low, new): 7 6 5 4 3 2 1 0 m161: 1 BTRST 1 BODLV BODEN CKSL2 CKSL1 CKSL0 m163,m323: BODLV BODEN 1 1 CKSL3 CKSL2 CKSL1 CKSL0 m8,m16,m64,m128: BODLV BODEN SUT1 SUT0 CKSL3 CKSL2 CKSL1 CKSL0 tn12: BODLV BODEN SPIEN RSTDI CKSL3 CKSL2 CKSL1 CKSL0 tn15: BODLV BODEN SPIEN RSTDI 1 1 CKSL1 CKSL0 tn26: PLLCK CKOPT SUT1 SUT0 CKSL3 CKSL2 CKSL1 CKSL0 WARNING (tn12,tn15): writing SPIEN=1 disables further low voltage programming! */ void TAvrDummy::WriteFuseLowBits(TByte val) { TByte fuselow[4] = { 0xAC, 0xA0, 0, val }; Send(fuselow, 4); } /* Write Fuse Bits High: 7 6 5 4 3 2 1 0 m163: 1 1 1 1 1 BTSZ1 BTSZ0 BTRST m323: OCDEN JTGEN 1 1 EESAV BTSZ1 BTSZ0 BTRST m16,m64,m128: OCDEN JTGEN x CKOPT EESAV BTSZ1 BTSZ0 BTRST m8: RSTDI WDTON x CKOPT EESAV BTSZ1 BTSZ0 BTRST tn26: 1 1 1 RSTDI SPIEN EESAV BODLV BODEN */ void TAvrDummy::WriteFuseHighBits(TByte val) { TByte fusehigh[4] = { 0xAC, 0xA8, 0, val }; Send(fusehigh, 4); } /* Write Extended Fuse Bits: 7 6 5 4 3 2 1 0 m64,m128: x x x x x x M103C WDTON */ void TAvrDummy::WriteFuseExtBits(TByte val) { TByte fuseext[4] = { 0xAC, 0xA4, 0, val }; Send(fuseext, 4); } void TAvrDummy::WriteByte(TAddr addr, TByte byte, bool flush_buffer) { struct timeval t_start_wr, t_start_poll, t_wait, t_timeout, t_end, t_write; TByte rbyte=0; bool device_not_erased=false; /* Poll data if use_data_polling is enabled and if page mode is enabled, flash is not selected */ bool poll_data = ((segment==SEG_FLASH && !page_size) || segment==SEG_EEPROM) && use_data_polling && TestFeatures(AVR_BYTE_POLL); CheckMemoryRange(addr); /* For speed, don't program a byte that is already there (such as 0xFF after chip erase). */ if (poll_data){ rbyte=ReadByte(addr); if (rbyte == byte){return;} if (rbyte != 0xff){device_not_erased=true;} } t_wait.tv_sec = 0; t_wait.tv_usec = 500000; gettimeofday(&t_start_wr, NULL); if (segment==SEG_FLASH){ /* PAGE MODE PROGRAMMING: If page mode is enabled cache page address. When current address is out of the page address flush page buffer and continue programming. */ if (page_size) { Info(4, "Loading data to address: %d (page_addr_fetched=%s)\n", addr, page_addr_fetched?"Yes":"No"); if (page_addr_fetched && page_addr != (addr & ~(page_size - 1))){ WriteProgramMemoryPage(); } if (page_addr_fetched==false){ page_addr=addr & ~(page_size - 1); page_addr_fetched=true; } if (flush_buffer){WriteProgramMemoryPage();} } TByte hl = (addr & 1) ? 0x48 : 0x40; TByte flash [4] = { hl, (TByte)((addr >> 9) & 0xff), (TByte)((addr >> 1) & 0xff), byte }; Send(flash, 4); /* Remember the last non-0xFF byte written, for page write polling. */ if (byte != 0xFF) { page_poll_addr = addr; page_poll_byte = byte; } /* We do not need to wait for each byte in page mode programming */ if (page_size){return;} t_wait.tv_usec = Get_t_wd_flash(); } else if (segment==SEG_EEPROM){ TByte eeprom [4] = { 0xC0, (TByte)((addr>>8)&0xff), (TByte)(addr&0xff), byte }; Send(eeprom, 4); t_wait.tv_usec = Get_t_wd_eeprom(); } else if (segment==SEG_FUSE) { Info(3, "Write fuse/lock: byte %d = 0x%02X\n", (int) addr, (int) byte); switch (addr) { case AVR_FUSE_LOW_ADDR: if (TestFeatures(AVR_FUSE_NEWWR)) WriteFuseLowBits(byte); else if (TestFeatures(AVR_FUSE_OLDWR)) WriteOldFuseBits(byte); break; case AVR_FUSE_HIGH_ADDR: if (TestFeatures(AVR_FUSE_HIGH)) WriteFuseHighBits(byte); break; case AVR_CAL_ADDR: /* calibration byte (addr == 2) is read only */ break; case AVR_LOCK_ADDR: WriteLockBits(byte); break; case AVR_FUSE_EXT_ADDR: if (TestFeatures(AVR_FUSE_EXT)) WriteFuseExtBits(byte); } t_wait.tv_usec = Get_t_wd_eeprom(); } gettimeofday(&t_start_poll, NULL); /* t_timeout = now + t_wd_prog */ timeradd(&t_start_poll, &t_wait, &t_timeout); do { /* Data Polling: if the programmed value reads correctly, and is not equal to any of the possible P1, P2 read back values, it is done; else wait until tWD_PROG time has elapsed. The busy loop here is to avoid rounding up the programming wait time to 10ms timer ticks (for Linux/x86). Programming is not really "hard real time" but 10ms instead of ~4ms for every byte makes it slow. gettimeofday() reads the 8254 timer registers (or Pentium cycle counter if available), so it has much better (microsecond) resolution. */ gettimeofday(&t_end, NULL); if (poll_data){ if ((byte == (rbyte = ReadByte(addr))) && (byte != 0) && (byte != 0x7F) && (byte != 0x80) && (byte != 0xFF)){ break; } } } while (timercmp(&t_end, &t_timeout, <)); /* Write Statistics */ timersub(&t_end, &t_start_wr, &t_write); /* t_write = t_end - t_start_wr */ if (poll_data) { float write_time = 1.0e-6 * t_write.tv_usec + t_write.tv_sec; total_poll_time += write_time; if (max_poll_time < write_time) max_poll_time = write_time; if (min_poll_time > write_time) min_poll_time = write_time; total_poll_cnt++; } if (poll_data && byte != rbyte){ if (device_not_erased){ Info(0, "Warning: It seems that device is not erased.\n" " Erase it with the --erase option.\n"); } Info(0, "Error: Data polling readback status: write=0x%02x read=0x%02x\n", byte, rbyte); throw Error_Device("If device was erased disable polling with the " "-dno-poll option."); } } void TAvrDummy::FlushWriteBuffer() { if (page_addr_fetched){ WriteProgramMemoryPage(); } } void TAvrDummy::ChipErase() { TByte init[4] = { 0xAC, 0x53, 0x00, 0x00 }; TByte chip_erase [4] = { 0xAC, 0x80, 0x00, 0x00 }; Info(1, "Erasing device ...\n"); Send(init, 4); Send(chip_erase, 4); Delay_usec(Get_t_wd_erase()); Delay_usec(Get_t_wd_erase()); Delay_usec(9000); Delay_usec(9000); PulseReset(); Delay_usec(9000); Info(1, "Reinitializing device\n"); EnableAvr(); } /* 0 = program (clear bit), 1 = leave unchanged bit 0 = LB1 bit 1 = LB2 bit 2 = BLB01 bit 3 = BLB02 bit 4 = BLB11 bit 5 = BLB12 bit 6 = 1 (reserved) bit 7 = 1 (reserved) */ void TAvrDummy::WriteLockBits(TByte bits) { /* This handles both old (byte 2, bits 1-2) and new (byte 4, bits 0-5) devices. */ TByte lock[4] = { 0xAC, 0xF9 | ((bits << 1) & 0x06), 0xFF, bits }; TByte rbits; Info(1, "Writing lock bits ...\n"); Send(lock, 4); Delay_usec(Get_t_wd_erase()); PulseReset(); Info(1, "Reinitializing device\n"); EnableAvr(); rbits = ReadLockBits(); if (rbits & ~bits) Info(0, "Warning: lock bits write=0x%02X read=0x%02X\n", (int) bits, (int) rbits); } TByte TAvrDummy::ReadLockBits() { TByte rbits = 0xFF; if (TestFeatures(AVR_LOCK_BOOT)) { /* x x BLB12 BLB11 BLB02 BLB01 LB2 LB1 */ rbits = ReadLockFuseBits(); } else if (TestFeatures(AVR_LOCK_RD76)) { rbits = ReadLockFuseBits(); /* LB1 LB2 x x x x x x -> 1 1 1 1 1 1 LB2 LB1 */ rbits = ((rbits >> 7) & 1) | ((rbits >> 5) & 1) | 0xFC; } else if (TestFeatures(AVR_LOCK_RD12)) { rbits = ReadLockFuseBits(); /* x x x x x LB2 LB1 x -> 1 1 1 1 1 1 LB2 LB1 */ rbits = ((rbits >> 1) & 3) | 0xFC; } else if (GetPartInfo(0) == 0 && GetPartInfo(1) == 1 && GetPartInfo(2) == 2) { rbits = 0xFC; } else throw Error_Device ("ReadLockBits failed: are you sure this device has lock bits?"); return rbits; } unsigned int TAvrDummy::GetPollCount() { return total_poll_cnt; } float TAvrDummy::GetMinPollTime() { return min_poll_time; } float TAvrDummy::GetMaxPollTime() { return max_poll_time; } float TAvrDummy::GetTotPollTime() { return total_poll_time; } void TAvrDummy::ResetMinMax() { min_poll_time = 1.0; max_poll_time = 0.0; total_poll_time = 0.0; total_poll_cnt = 0; } /* Constructor */ TAvrDummy::TAvrDummy(): use_data_polling(true) { ResetMinMax(); /* Device Command line options ... */ if (GetCmdParam("-dno-poll", false)){use_data_polling=false;} EnableAvr(); } #endif /* eof */ tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/AvrDummy.h000066400000000000000000000045471206361226500237620ustar00rootroot00000000000000// $Id: AvrDummy.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: AvrDummy.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002 Uros Platise * * 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 * **************************************************************************** */ /* AvrDummy.h, Uros Platise (c) 1999 */ #ifndef __AVR_DUMMY #define __AVR_DUMMY #include "Global.h" #include "Avr.h" #include "DAPA.h" class TAvrDummy: public TAvr, TDAPA { private: bool use_data_polling; float min_poll_time, max_poll_time, total_poll_time; unsigned long total_poll_cnt; /* bytes or pages */ void EnableAvr(); TByte GetPartInfo(TAddr addr); void WriteProgramMemoryPage(); TByte ReadLockFuseBits(); TByte ReadFuseLowBits(); TByte ReadFuseHighBits(); TByte ReadFuseExtBits(); TByte ReadCalByte(TByte addr); void WriteOldFuseBits(TByte val); /* 5 bits */ void WriteFuseLowBits(TByte val); void WriteFuseHighBits(TByte val); void WriteFuseExtBits(TByte val); /* lock bits */ void WriteLockBits(TByte bits); TByte ReadLockBits(); public: /* Read byte from active segment at address addr. */ TByte ReadByte(TAddr addr); /* Write byte to active segment at address addr */ void WriteByte(TAddr addr, TByte byte, bool flush_buffer=true); void FlushWriteBuffer(); /* Chip Erase */ void ChipErase(); /* Transfer Statistics */ unsigned int GetPollCount(); float GetMinPollTime(); float GetTotPollTime(); float GetMaxPollTime(); void ResetMinMax(); TAvrDummy(); ~TAvrDummy(){} }; #endif tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/AvrStargate.C000066400000000000000000000420201206361226500243600ustar00rootroot00000000000000// $Id: AvrStargate.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: AvrStargate.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002 Uros Platise * * 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 * * Portions Copyright (c) 2002-2003 Intel Corporation * All rights reserved. * * This file is distributed under the terms in the attached INTEL-LICENSE * file. If you do not find these files, copies can be found by writing to * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, * 94704. Attention: Intel License Inquiry. * **************************************************************************** */ #include "config.h" #include "timeradd.h" #include "AvrStargate.h" /* Private Functions */ void TAvrStargate::EnableAvr(){ unsigned char prg [4] = { 0xAC, 0x53, 0, 0 }; int try_number = 32; bool no_retry = GetCmdParam("-dno-retry", false); const char *part_name = GetCmdParam("-dpart"); if (part_name && strcasecmp(part_name, "at90s1200") == 0) no_retry = true; /* XXX */ /* Enable AVR programming mode */ do{ prg[0]=0xAC; prg[1]=0x53; prg[2]=prg[3]=0; Send(prg, 4); if (no_retry) break; if (prg[2] == 0x53) break; PulseSck(); } while (try_number--); if (try_number>=0){ Info(2,"AVR Stargate SSP Access succeeded after %d retries.\n", 32-try_number); } else { Info(2,"AVR Stargate SSP Access failed after 32 retries.\n"); } /* Get AVR Info */ vendor_code = GetPartInfo(0); part_family = GetPartInfo(1); part_number = GetPartInfo(2); if (part_name) OverridePart(part_name); Identify(); } TByte TAvrStargate::GetPartInfo(TAddr addr) { TByte info [4] = { 0x30, 0, addr, 0 }; Send(info, 4); return info[3]; } void TAvrStargate::WriteProgramMemoryPage() { struct timeval t_start_wr, t_start_poll, t_wait, t_timeout, t_end, t_write; bool poll_data = use_data_polling && TestFeatures(AVR_PAGE_POLL) && (page_poll_byte != 0xFF); TByte prg_page [4] = { 0x4C, (TByte)((page_addr >> 9) & 0xff), (TByte)((page_addr >> 1) & 0xff), 0 }; gettimeofday(&t_start_wr, NULL); t_wait.tv_sec = 0; t_wait.tv_usec = Get_t_wd_flash(); Info(4, "Programming page address: %d (%.2x, %.2x, %.2x, %.2x)\n", page_addr, prg_page[0], prg_page[1], prg_page[2], prg_page[3]); Send(prg_page, 4); gettimeofday(&t_start_poll, NULL); timeradd(&t_start_poll, &t_wait, &t_timeout); /* Wait */ do { gettimeofday(&t_end, NULL); if (poll_data) { TByte rbyte = ReadByte(page_poll_addr); if (rbyte == page_poll_byte) break; } } while (timercmp(&t_end, &t_timeout, <)); /* Write Statistics */ timersub(&t_end, &t_start_wr, &t_write); /* t_write = t_end - t_start_wr */ if (poll_data) { float write_time = 1.0e-6 * t_write.tv_usec + t_write.tv_sec; total_poll_time += write_time; if (max_poll_time < write_time) max_poll_time = write_time; if (min_poll_time > write_time) min_poll_time = write_time; total_poll_cnt++; } page_addr_fetched=false; page_poll_byte = 0xFF; } /* Device Interface Functions */ TByte TAvrStargate::ReadByte(TAddr addr) { TByte readback = 0xFF; CheckMemoryRange(addr); if (segment == SEG_FLASH) { TByte hl = (addr & 1) ? 0x28 : 0x20; TByte flash[4] = { hl, (TByte)((addr >> 9) & 0xff), (TByte)((addr >> 1) & 0xff), 0 }; Send(flash, 4); readback = flash[3]; } else if (segment == SEG_EEPROM) { TByte eeprom [4] = { 0xA0, (TByte)((addr>>8)&0xff), (TByte)(addr&0xff), 0 }; Send(eeprom, 4); readback = eeprom[3]; } else if (segment==SEG_FUSE) { switch (addr) { case AVR_FUSE_LOW_ADDR: if (TestFeatures(AVR_FUSE_RD)) readback = ReadFuseLowBits(); #if 0 /* TRoth/2002-06-03: This case is handled by ReadLockBits() so we don't need it here. Can I delete it completely? */ else if (TestFeatures(AVR_LOCK_RD76)) readback = ReadLockFuseBits(); #endif break; case AVR_FUSE_HIGH_ADDR: if (TestFeatures(AVR_FUSE_HIGH)) readback = ReadFuseHighBits(); break; case AVR_CAL_ADDR: if (TestFeatures(AVR_CAL_RD)) readback = ReadCalByte(0); break; case AVR_LOCK_ADDR: readback = ReadLockBits(); break; case AVR_FUSE_EXT_ADDR: if (TestFeatures(AVR_FUSE_EXT)) readback = ReadFuseExtBits(); } Info(3, "Read fuse/cal/lock: byte %d = 0x%02X\n", (int) addr, (int) readback); } return readback; } /* Read Lock/Fuse Bits: 7 6 5 4 3 2 1 0 2333,4433,m103,m603,tn12,tn15: x x x x x LB2 LB1 x 2323,8535: LB1 LB2 SPIEN x x x x FSTRT 2343: LB1 LB2 SPIEN x x x x RCEN tn22: LB1 LB2 SPIEN x x x x 0 m161,m163,m323,m128: x x BLB12 BLB11 BLB02 BLB01 LB2 LB1 tn26: x x x x x x LB2 LB1 */ TByte TAvrStargate::ReadLockFuseBits() { TByte lockfuse[4] = { 0x58, 0, 0, 0 }; Send(lockfuse, 4); return lockfuse[3]; } /* Read Fuse Bits (Low): 7 6 5 4 3 2 1 0 2333,4433: x x SPIEN BODLV BODEN CKSL2 CKSL1 CKSL0 m103,m603: x x SPIEN x EESAV 1 SUT1 SUT0 tn12: BODLV BODEN SPIEN RSTDI CKSL3 CKSL2 CKSL1 CKSL0 tn15: BODLV BODEN SPIEN RSTDI x x CKSL1 CKSL0 m161: x BTRST SPIEN BODLV BODEN CKSL2 CKSL1 CKSL0 m163,m323: BODLV BODEN x x CKSL3 CKSL2 CKSL1 CKSL0 m8,m16,m32,m64,m128: BODLV BODEN SUT1 SUT0 CKSL3 CKSL2 CKSL1 CKSL0 tn26: PLLCK CKOPT SUT1 SUT0 CKSL3 CKSL2 CKSL1 CKSL0 */ TByte TAvrStargate::ReadFuseLowBits() { TByte fuselow[4] = { 0x50, 0, 0, 0 }; Send(fuselow, 4); return fuselow[3]; } /* Read Fuse Bits High: 7 6 5 4 3 2 1 0 m163: x x x x 1 BTSZ1 BTSZ0 BTRST m323: OCDEN JTGEN x x EESAV BTSZ1 BTSZ0 BTRST m16,m32,m64,m128: OCDEN JTGEN SPIEN CKOPT EESAV BTSZ1 BTSZ0 BTRST m8: RSTDI WDTON SPIEN CKOPT EESAV BTSZ1 BTSZ0 BTRST tn26: 1 1 1 RSTDI SPIEN EESAV BODLV BODEN */ TByte TAvrStargate::ReadFuseHighBits() { TByte fusehigh[4] = { 0x58, 0x08, 0, 0 }; Send(fusehigh, 4); return fusehigh[3]; } /* Read Extended Fuse Bits: 7 6 5 4 3 2 1 0 m64,m128: x x x x x x M103C WDTON */ TByte TAvrStargate::ReadFuseExtBits() { TByte fuseext[4] = { 0x50, 0x08, 0, 0 }; Send(fuseext, 4); return fuseext[3]; } /* Read Calibration Byte (m163, m323, m128, tn12, tn15, tn26) addr=0...3 for tn26, addr=0 for other devices */ TByte TAvrStargate::ReadCalByte(TByte addr) { TByte cal[4] = { 0x38, 0, addr, 0 }; Send(cal, 4); return cal[3]; } /* Write Fuse Bits (old): 7 6 5 4 3 2 1 0 2323,8535: x x x 1 1 1 1 FSTRT 2343: x x x 1 1 1 1 RCEN 2333,4433: x x x BODLV BODEN CKSL2 CKSL1 CKSL0 m103,m603: x x x 1 EESAV 1 SUT1 SUT0 */ void TAvrStargate::WriteOldFuseBits(TByte val) { TByte oldfuse[4] = { 0xAC, (val & 0x1F) | 0xA0, 0, 0xD2 }; Send(oldfuse, 4); } /* Write Fuse Bits (Low, new): 7 6 5 4 3 2 1 0 m161: 1 BTRST 1 BODLV BODEN CKSL2 CKSL1 CKSL0 m163,m323: BODLV BODEN 1 1 CKSL3 CKSL2 CKSL1 CKSL0 m8,m16,m64,m128: BODLV BODEN SUT1 SUT0 CKSL3 CKSL2 CKSL1 CKSL0 tn12: BODLV BODEN SPIEN RSTDI CKSL3 CKSL2 CKSL1 CKSL0 tn15: BODLV BODEN SPIEN RSTDI 1 1 CKSL1 CKSL0 tn26: PLLCK CKOPT SUT1 SUT0 CKSL3 CKSL2 CKSL1 CKSL0 WARNING (tn12,tn15): writing SPIEN=1 disables further low voltage programming! */ void TAvrStargate::WriteFuseLowBits(TByte val) { TByte fuselow[4] = { 0xAC, 0xA0, 0, val }; Send(fuselow, 4); } /* Write Fuse Bits High: 7 6 5 4 3 2 1 0 m163: 1 1 1 1 1 BTSZ1 BTSZ0 BTRST m323: OCDEN JTGEN 1 1 EESAV BTSZ1 BTSZ0 BTRST m16,m64,m128: OCDEN JTGEN x CKOPT EESAV BTSZ1 BTSZ0 BTRST m8: RSTDI WDTON x CKOPT EESAV BTSZ1 BTSZ0 BTRST tn26: 1 1 1 RSTDI SPIEN EESAV BODLV BODEN */ void TAvrStargate::WriteFuseHighBits(TByte val) { TByte fusehigh[4] = { 0xAC, 0xA8, 0, val }; Send(fusehigh, 4); } /* Write Extended Fuse Bits: 7 6 5 4 3 2 1 0 m64,m128: x x x x x x M103C WDTON */ void TAvrStargate::WriteFuseExtBits(TByte val) { TByte fuseext[4] = { 0xAC, 0xA4, 0, val }; Send(fuseext, 4); } void TAvrStargate::WriteByte(TAddr addr, TByte byte, bool flush_buffer) { struct timeval t_start_wr, t_start_poll, t_wait, t_timeout, t_end, t_write; TByte rbyte=0; bool device_not_erased=false; /* Poll data if use_data_polling is enabled and if page mode is enabled, flash is not selected */ bool poll_data = ((segment==SEG_FLASH && !page_size) || segment==SEG_EEPROM) && use_data_polling && TestFeatures(AVR_BYTE_POLL); CheckMemoryRange(addr); /* For speed, don't program a byte that is already there (such as 0xFF after chip erase). */ if (poll_data){ rbyte=ReadByte(addr); if (rbyte == byte){return;} if (rbyte != 0xff){device_not_erased=true;} } t_wait.tv_sec = 0; t_wait.tv_usec = 500000; gettimeofday(&t_start_wr, NULL); if (segment==SEG_FLASH){ /* PAGE MODE PROGRAMMING: If page mode is enabled cache page address. When current address is out of the page address flush page buffer and continue programming. */ if (page_size) { Info(4, "Loading data to address: %d (page_addr_fetched=%s)\n", addr, page_addr_fetched?"Yes":"No"); if (page_addr_fetched && page_addr != (addr & ~(page_size - 1))){ WriteProgramMemoryPage(); } if (page_addr_fetched==false){ page_addr=addr & ~(page_size - 1); page_addr_fetched=true; } if (flush_buffer){WriteProgramMemoryPage();} } TByte hl = (addr & 1) ? 0x48 : 0x40; TByte flash [4] = { hl, (TByte)((addr >> 9) & 0xff), (TByte)((addr >> 1) & 0xff), byte }; Send(flash, 4); /* Remember the last non-0xFF byte written, for page write polling. */ if (byte != 0xFF) { page_poll_addr = addr; page_poll_byte = byte; } /* We do not need to wait for each byte in page mode programming */ if (page_size){return;} t_wait.tv_usec = Get_t_wd_flash(); } else if (segment==SEG_EEPROM){ TByte eeprom [4] = { 0xC0, (TByte)((addr>>8)&0xff), (TByte)(addr&0xff), byte }; Send(eeprom, 4); t_wait.tv_usec = Get_t_wd_eeprom(); } else if (segment==SEG_FUSE) { Info(3, "Write fuse/lock: byte %d = 0x%02X\n", (int) addr, (int) byte); switch (addr) { case AVR_FUSE_LOW_ADDR: if (TestFeatures(AVR_FUSE_NEWWR)) WriteFuseLowBits(byte); else if (TestFeatures(AVR_FUSE_OLDWR)) WriteOldFuseBits(byte); break; case AVR_FUSE_HIGH_ADDR: if (TestFeatures(AVR_FUSE_HIGH)) WriteFuseHighBits(byte); break; case AVR_CAL_ADDR: /* calibration byte (addr == 2) is read only */ break; case AVR_LOCK_ADDR: WriteLockBits(byte); break; case AVR_FUSE_EXT_ADDR: if (TestFeatures(AVR_FUSE_EXT)) WriteFuseExtBits(byte); } t_wait.tv_usec = Get_t_wd_eeprom(); } gettimeofday(&t_start_poll, NULL); /* t_timeout = now + t_wd_prog */ timeradd(&t_start_poll, &t_wait, &t_timeout); do { /* Data Polling: if the programmed value reads correctly, and is not equal to any of the possible P1, P2 read back values, it is done; else wait until tWD_PROG time has elapsed. The busy loop here is to avoid rounding up the programming wait time to 10ms timer ticks (for Linux/x86). Programming is not really "hard real time" but 10ms instead of ~4ms for every byte makes it slow. gettimeofday() reads the 8254 timer registers (or Pentium cycle counter if available), so it has much better (microsecond) resolution. */ gettimeofday(&t_end, NULL); if (poll_data){ if ((byte == (rbyte = ReadByte(addr))) && (byte != 0) && (byte != 0x7F) && (byte != 0x80) && (byte != 0xFF)){ break; } } } while (timercmp(&t_end, &t_timeout, <)); /* Write Statistics */ timersub(&t_end, &t_start_wr, &t_write); /* t_write = t_end - t_start_wr */ if (poll_data) { float write_time = 1.0e-6 * t_write.tv_usec + t_write.tv_sec; total_poll_time += write_time; if (max_poll_time < write_time) max_poll_time = write_time; if (min_poll_time > write_time) min_poll_time = write_time; total_poll_cnt++; } if (poll_data && byte != rbyte){ if (device_not_erased){ Info(0, "Warning: It seems that device is not erased.\n" " Erase it with the --erase option.\n"); } Info(0, "Error: Data polling readback status: write=0x%02x read=0x%02x\n", byte, rbyte); throw Error_Device("If device was erased disable polling with the " "-dno-poll option."); } } void TAvrStargate::FlushWriteBuffer() { if (page_addr_fetched){ WriteProgramMemoryPage(); } } void TAvrStargate::ChipErase() { TByte init[4] = { 0xAC, 0x53, 0x00, 0x00 }; TByte chip_erase [4] = { 0xAC, 0x80, 0x00, 0x00 }; Info(1, "Erasing device ...\n"); Send(init, 4); Send(chip_erase, 4); Delay_usec(Get_t_wd_erase()); Delay_usec(Get_t_wd_erase()); Delay_usec(9000); Delay_usec(9000); PulseReset(); Delay_usec(9000); Info(1, "Reinitializing device\n"); EnableAvr(); } /* 0 = program (clear bit), 1 = leave unchanged bit 0 = LB1 bit 1 = LB2 bit 2 = BLB01 bit 3 = BLB02 bit 4 = BLB11 bit 5 = BLB12 bit 6 = 1 (reserved) bit 7 = 1 (reserved) */ void TAvrStargate::WriteLockBits(TByte bits) { /* This handles both old (byte 2, bits 1-2) and new (byte 4, bits 0-5) devices. */ TByte lock[4] = { 0xAC, 0xF9 | ((bits << 1) & 0x06), 0xFF, bits }; TByte rbits; Info(1, "Writing lock bits ...\n"); Send(lock, 4); Delay_usec(Get_t_wd_erase()); PulseReset(); Info(1, "Reinitializing device\n"); EnableAvr(); rbits = ReadLockBits(); if (rbits & ~bits) Info(0, "Warning: lock bits write=0x%02X read=0x%02X\n", (int) bits, (int) rbits); } TByte TAvrStargate::ReadLockBits() { TByte rbits = 0xFF; if (TestFeatures(AVR_LOCK_BOOT)) { /* x x BLB12 BLB11 BLB02 BLB01 LB2 LB1 */ rbits = ReadLockFuseBits(); } else if (TestFeatures(AVR_LOCK_RD76)) { rbits = ReadLockFuseBits(); /* LB1 LB2 x x x x x x -> 1 1 1 1 1 1 LB2 LB1 */ rbits = ((rbits >> 7) & 1) | ((rbits >> 5) & 1) | 0xFC; } else if (TestFeatures(AVR_LOCK_RD12)) { rbits = ReadLockFuseBits(); /* x x x x x LB2 LB1 x -> 1 1 1 1 1 1 LB2 LB1 */ rbits = ((rbits >> 1) & 3) | 0xFC; } else if (GetPartInfo(0) == 0 && GetPartInfo(1) == 1 && GetPartInfo(2) == 2) { rbits = 0xFC; } else throw Error_Device ("ReadLockBits failed: are you sure this device has lock bits?"); return rbits; } unsigned int TAvrStargate::GetPollCount() { return total_poll_cnt; } float TAvrStargate::GetMinPollTime() { return min_poll_time; } float TAvrStargate::GetMaxPollTime() { return max_poll_time; } float TAvrStargate::GetTotPollTime() { return total_poll_time; } void TAvrStargate::ResetMinMax() { min_poll_time = 1.0; max_poll_time = 0.0; total_poll_time = 0.0; total_poll_cnt = 0; } /* Constructor */ TAvrStargate::TAvrStargate(): use_data_polling(true) { ResetMinMax(); /* Device Command line options ... */ if (GetCmdParam("-dno-poll", false)){use_data_polling=false;} EnableAvr(); } /* eof */ tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/AvrStargate.h000066400000000000000000000052751206361226500244400ustar00rootroot00000000000000// $Id: AvrStargate.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: AvrStargate.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002 Uros Platise * * 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 * * Portions Copyright (c) 2002-2003 Intel Corporation * All rights reserved. * * This file is distributed under the terms in the attached INTEL-LICENSE * file. If you do not find these files, copies can be found by writing to * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, * 94704. Attention: Intel License Inquiry. * **************************************************************************** */ #ifndef __AVR_STARGATE #define __AVR_STARGATE #include "Global.h" #include "Avr.h" #include "SASA.h" class TAvrStargate: public TAvr, TSASA { private: bool use_data_polling; float min_poll_time, max_poll_time, total_poll_time; unsigned long total_poll_cnt; /* bytes or pages */ void EnableAvr(); TByte GetPartInfo(TAddr addr); void WriteProgramMemoryPage(); TByte ReadLockFuseBits(); TByte ReadFuseLowBits(); TByte ReadFuseHighBits(); TByte ReadFuseExtBits(); TByte ReadCalByte(TByte addr); void WriteOldFuseBits(TByte val); /* 5 bits */ void WriteFuseLowBits(TByte val); void WriteFuseHighBits(TByte val); void WriteFuseExtBits(TByte val); /* lock bits */ void WriteLockBits(TByte bits); TByte ReadLockBits(); public: /* Read byte from active segment at address addr. */ TByte ReadByte(TAddr addr); /* Write byte to active segment at address addr */ void WriteByte(TAddr addr, TByte byte, bool flush_buffer=true); void FlushWriteBuffer(); /* Chip Erase */ void ChipErase(); /* Transfer Statistics */ unsigned int GetPollCount(); float GetMinPollTime(); float GetTotPollTime(); float GetMaxPollTime(); void ResetMinMax(); TAvrStargate(); ~TAvrStargate(){} }; #endif tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/DAPA.C000066400000000000000000000716421206361226500226560ustar00rootroot00000000000000// $Id: DAPA.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: DAPA.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002, 2003 Sergey Larin * * 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 * **************************************************************************** */ /* DAPA.C Direct AVR Parallel Access (c) 1999 Originally written by Sergey Larin. Corrected by Denis Chertykov, Uros Platise and Marek Michalkiewicz */ #ifndef NO_DAPA //#define DEBUG //#define DEBUG1 #include "config.h" #include #include #include #include #ifndef NO_DIRECT_IO /* Linux and FreeBSD differ in the order of outb() arguments. XXX any other OS/architectures with PC-style parallel ports? XXX how about the other *BSDs? */ #if defined(__linux__) && defined(__i386__) #include #define ioport_read(port) inb(port) #define ioport_write(port, val) outb(val, port) #define ioport_enable(port, num) ({ \ int x = ioperm(port, num, 1); usleep(1); x; }) #define ioport_disable(port, num) ({ \ int x = ioperm(port, num, 0); usleep(1); x; }) #elif defined(__CYGWIN__) #include "cygwinp.h" #define ioport_read(port) inb(port) #define ioport_write(port, val) outb(val, port) #define ioport_enable(port, num) ioperm(port, num, 1) #define ioport_disable(port, num) ioperm(port, num, 0) #elif defined(__FreeBSD__) && defined(__i386__) #include #include #include #define ioport_read(port) inb(port) #define ioport_write(port, val) outb(port, val) #define ioport_enable(port, num) i386_set_ioperm(port, num, 1) #define ioport_disable(port, num) i386_set_ioperm(port, num, 0) #else /* Direct I/O port access not supported - ppdev/ppi kernel driver required for parallel port support to work at all. Only likely to work on PC-style parallel ports (all signals implemented) anyway. The only lines believed to be implemented in all parallel ports are: D0-D6 outputs (long long ago I heard of some non-PC machine with D7 hardwired to GND - don't remember what it was) BUSY input So far, only the dt006 interface happens to use a subset of the above. STROBE output might be pulsed by hardware and not be writable ACK input might only trigger an interrupt and not be readable Future designers of these "dongles" might want to keep this in mind. */ #define ioport_read(port) (0xFF) #define ioport_write(port, val) #define ioport_enable(port, num) (-1) #define ioport_disable(port, num) (0) #endif #else /* NO_DIRECT_IO */ #define ioport_read(port) (0xFF) #define ioport_write(port, val) #define ioport_enable(port, num) (-1) #define ioport_disable(port, num) (0) #endif /* NO_DIRECT_IO */ #include #include #include "timeradd.h" #include #include #include "parport.h" /* These should work on any architecture, not just i386. */ #if defined(__linux__) #include "ppdev.h" #define par_claim(fd) ioctl(fd, PPCLAIM, 0) #define par_read_status(fd, ptr) ioctl(fd, PPRSTATUS, ptr) #define par_write_data(fd, ptr) ioctl(fd, PPWDATA, ptr) #define par_write_ctrl(fd, ptr) ioctl(fd, PPWCONTROL, ptr) #define par_set_dir(fd, ptr) ioctl(fd, PPDATADIR, ptr) #define par_release(fd) ioctl(fd, PPRELEASE, 0) #elif defined(__FreeBSD__) #include #define par_claim(fd) (0) #define par_read_status(fd, ptr) ioctl(fd, PPIGSTATUS, ptr) #define par_write_data(fd, ptr) ioctl(fd, PPISDATA, ptr) #define par_write_ctrl(fd, ptr) ioctl(fd, PPISCTRL, ptr) /* par_set_dir not defined, par_write_ctrl used instead */ #define par_release(fd) #else /* Dummy defines if ppdev/ppi not supported by the kernel. */ #define par_claim(fd) (-1) #define par_read_status(fd, ptr) #define par_write_data(fd, ptr) #define par_write_ctrl(fd, ptr) #define par_release(fd) #endif #include "Global.h" #include "Error.h" #include "DAPA.h" #include "Avr.h" /* Parallel Port Base Address */ #define IOBASE parport_base #define IOSIZE 3 /* FIXME: rewrite using tables to define new interface types. For each of the logical outputs (SCK, MOSI, RESET, ENA1, ENA2, power, XTAL1) there should be two bit masks that define which physical bits (from the parallel port output data or control registers, or serial port DTR/RTS/TXD) are affected, and if they should be inverted. More than one output may be changed. For each of the inputs (MISO, maybe TEST?), define which bit (only one, from parallel port status or CTS/DCD/DSR/RI) should be tested and if it should be inverted. One struct as described above should be initialized for each of the supported hardware interfaces. */ /* Alex's Direct Avr Parallel Access */ #define DAPA_SCK PARPORT_CONTROL_STROBE /* base + 2 */ #define DAPA_RESET PARPORT_CONTROL_INIT /* base + 2 */ #define DAPA_DIN PARPORT_STATUS_BUSY /* base + 1 */ #define DAPA_DOUT 0x1 /* base */ /* STK200 Direct Parallel Access */ #define STK2_TEST1 0x01 /* D0 (base) - may be connected to POUT input */ #define STK2_TEST2 0x02 /* D1 (base) - may be connected to BUSY input */ #define STK2_ENA1 0x04 /* D2 (base) - ENABLE# for RESET#, MISO */ #define STK2_ENA2 0x08 /* D3 (base) - ENABLE# for SCK, MOSI, LED# */ #define STK2_SCK 0x10 /* D4 (base) - SCK */ #define STK2_DOUT 0x20 /* D5 (base) - MOSI */ #define STK2_LED 0x40 /* D6 (base) - LED# (optional) */ #define STK2_RESET 0x80 /* D7 (base) - RESET# */ #define STK2_DIN PARPORT_STATUS_ACK /* ACK (base + 1) - MISO */ /* Altera Byte Blaster Port Configuration */ #define ABB_EN PARPORT_CONTROL_AUTOFD /* low active */ #define ABB_LPAD 0x80 /* D7: loop back throught enable auto-detect */ #define ABB_SCK 0x01 /* D0: TCK (ISP conn. pin 1) */ #define ABB_RESET 0x02 /* D1: TMS (ISP conn. pin 5) */ #define ABB_DOUT 0x40 /* D6: TDI (ISP conn. pin 9) */ #define ABB_DIN PARPORT_STATUS_BUSY /* BUSY: TDO (ISP conn. pin 3) */ /* D5 (pin 7) connected to ACK (pin 10) directly */ /* D7 (pin 9) connected to POUT (pin 12) via 74HC244 buffer */ /* optional modification for AVREAL: D3 (pin 5) = XTAL1 (ISP conn. pin 8) */ #define ABB_XTAL1 0x08 /* XXX not yet supported, just documented here... Atmel-ISP Download Cable (P/N ATDH1150VPC) (10-pin connector similar to Altera Byte Blaster, but no 3-state outputs) http://www.atmel.com/atmel/acrobat/isp_c_v5.pdf VCC ---- 4 GND ---- 2,10 ---- GND SCK <- TCK(1) <- nSTROBE MISO -> TDO(3) -> nACK RESET <- TMS(5) <- SELECT MOSI <- TDI(9) <- D0 XTAL1 <- AF(8) <- AUTOFD (optional, not yet supported) */ #define ATDH_SCK PARPORT_CONTROL_STROBE #define ATDH_DOUT 0x01 #define ATDH_RESET PARPORT_CONTROL_SELECT #define ATDH_DIN PARPORT_STATUS_ACK #define ATDH_XTAL1 PARPORT_CONTROL_AUTOFD /* "Atmel AVR ISP" cable (?) */ #define AISP_TSTOUT 0x08 /* D3 (base) - dongle test output */ #define AISP_SCK 0x10 /* D4 (base) - SCK */ #define AISP_DOUT 0x20 /* D5 (base) - MOSI */ #define AISP_ENA 0x40 /* D6 (base) - ENABLE# for MISO, MOSI, SCK */ #define AISP_RESET 0x80 /* D7 (base) - RESET# */ #define AISP_DIN PARPORT_STATUS_ACK /* ACK (base + 1) - MISO */ /* BUSY and POUT used as inputs to test for the dongle */ /* Yet another AVR ISP cable from http://www.bsdhome.com/avrprog/ */ #define BSD_POWER 0x0F /* D0-D3 (base) - power */ #define BSD_ENA 0x10 /* D4 (base) - ENABLE# */ #define BSD_RESET 0x20 /* D5 (base) - RESET# */ #define BSD_SCK 0x40 /* D6 (base) - SCK */ #define BSD_DOUT 0x80 /* D7 (base) - MOSI */ #define BSD_DIN PARPORT_STATUS_ACK /* ACK (base + 1) - MISO */ /* optional status LEDs, active low, not yet supported (base + 2) */ #define BSD_LED_ERR PARPORT_CONTROL_STROBE /* error */ #define BSD_LED_RDY PARPORT_CONTROL_AUTOFD /* ready */ #define BSD_LED_PGM PARPORT_CONTROL_INIT /* programming */ #define BSD_LED_VFY PARPORT_CONTROL_SELECT /* verifying */ /* FBPRG - http://ln.com.ua/~real/avreal/adapters.html */ #define FBPRG_POW 0x07 /* D0,D1,D2 (base) - power supply (XXX D7 too?) */ #define FBPRG_XTAL1 0x08 /* D3 (base) (not supported) */ #define FBPRG_RESET 0x10 /* D4 (base) */ #define FBPRG_DOUT 0x20 /* D5 (base) */ #define FBPRG_SCK 0x40 /* D6 (base) */ #define FBPRG_DIN PARPORT_STATUS_ACK /* ACK (base + 1) - MISO */ /* DT006/Sample Electronics Parallel Cable http://www.dontronics.com/dt006.html */ /* all at base, except for DT006_DIN at base + 1 */ #define DT006_SCK 0x08 #define DT006_RESET 0x04 #define DT006_DIN PARPORT_STATUS_BUSY #define DT006_DOUT 0x01 /* ETT-AVR V2.0 Programmer / Futurlec AT90S8535 */ #define ETT_SCK 0x01 /* DB25 Pin 2: D0 (Base + 0) -> SCK */ #define ETT_RESET 0x02 /* DB25 Pin 3: D1 (Base + 0) -> RESET */ #define ETT_DIN PARPORT_STATUS_ACK /* DB25 Pin 10: ACK (Base + 1) -> MISO */ #define ETT_DOUT PARPORT_CONTROL_STROBE /* DB25 Pin 1: STROBE (Base + 2) -> MOSI */ /* ABC Maxi - just like DT006 with two pins swapped */ /* all at base, except for MAXI_DIN at base + 1 */ #define MAXI_SCK 0x02 #define MAXI_RESET 0x04 #define MAXI_DIN PARPORT_STATUS_ACK #define MAXI_DOUT 0x01 /* Xilinx JTAG download cable RESET=TMS, SCK=TCK, MISO=TDO, MOSI=TDI */ #define XIL_DOUT 0x01 /* D0: TDI */ #define XIL_SCK 0x02 /* D1: TCK */ #define XIL_RESET 0x04 /* D2: TMS */ #define XIL_ENA 0x08 /* D3: ENABLE# */ #define XIL_DIN PARPORT_STATUS_SELECT /* SLCT: TDO */ /* Default value for minimum SCK high/low time in microseconds. */ #ifndef SCK_DELAY #define SCK_DELAY 5 #endif /* Minimum RESET# high time in microseconds. Should be enough to charge a capacitor between RESET# and GND (it is recommended to use a voltage detector with open collector output, and only something like 100 nF for noise immunity). Default value may be changed with -dt_reset=N microseconds. */ #ifndef RESET_HIGH_TIME #define RESET_HIGH_TIME 1000 #endif /* Delay from RESET# low to sending program enable command (the datasheet says it must be at least 20 ms). Also wait time for crystal oscillator to start after possible power down mode. */ #ifndef RESET_LOW_TIME #define RESET_LOW_TIME 30000 #endif void TDAPA::SckDelay() { Delay_usec(t_sck); } #ifndef MIN_SLEEP_USEC #define MIN_SLEEP_USEC 20000 #endif void TDAPA::Delay_usec(long t) { struct timeval t1, t2; #if defined(__CYGWIN__) if (cygwinp_delay_usec(t)) { return; } #endif if (t <= 0) return; /* very short delay for slow machines */ gettimeofday(&t1, NULL); if (t > MIN_SLEEP_USEC) usleep(t - MIN_SLEEP_USEC); /* loop for the remaining time */ t2.tv_sec = t / 1000000UL; t2.tv_usec = t % 1000000UL; timeradd(&t1, &t2, &t1); do { gettimeofday(&t2, NULL); } while (timercmp(&t2, &t1, <)); } void TDAPA::ParportSetDir(int dir) { if (dir) par_ctrl |= PARPORT_CONTROL_DIRECTION; else par_ctrl &= ~PARPORT_CONTROL_DIRECTION; if (ppdev_fd != -1) { #ifdef par_set_dir par_set_dir(ppdev_fd, &dir); #else par_write_ctrl(ppdev_fd, &par_ctrl); #endif } else ioport_write(IOBASE+2, par_ctrl); } void TDAPA::ParportWriteCtrl() { if (ppdev_fd != -1) par_write_ctrl(ppdev_fd, &par_ctrl); else ioport_write(IOBASE+2, par_ctrl); } void TDAPA::ParportWriteData() { if (ppdev_fd != -1) par_write_data(ppdev_fd, &par_data); else ioport_write(IOBASE, par_data); } void TDAPA::ParportReadStatus() { if (ppdev_fd != -1) par_read_status(ppdev_fd, &par_status); else par_status = ioport_read(IOBASE+1); } void TDAPA::SerialReadCtrl() { #ifdef TIOCMGET ioctl(ppdev_fd, TIOCMGET, &ser_ctrl); #else ser_ctrl = 0; #endif } void TDAPA::SerialWriteCtrl() { #ifdef TIOCMGET ioctl(ppdev_fd, TIOCMSET, &ser_ctrl); #endif } void TDAPA::OutReset(int b) /* FALSE means active Reset at the AVR */ { if (reset_invert) b = !b; switch (pa_type) { case PAT_DAPA: case PAT_DAPA_2: if (b) par_ctrl |= DAPA_RESET; else par_ctrl &= ~DAPA_RESET; ParportWriteCtrl(); break; case PAT_STK200: if (b) par_data |= STK2_RESET; else par_data &= ~STK2_RESET; ParportWriteData(); break; case PAT_ABB: if (b) par_data |= ABB_RESET; else par_data &= ~ABB_RESET; ParportWriteData(); break; case PAT_AVRISP: if (b) par_data |= AISP_RESET; else par_data &= ~AISP_RESET; ParportWriteData(); break; case PAT_BSD: if (b) par_data |= BSD_RESET; else par_data &= ~BSD_RESET; ParportWriteData(); break; case PAT_FBPRG: if (b) par_data |= FBPRG_RESET; else par_data &= ~FBPRG_RESET; ParportWriteData(); break; case PAT_DT006: if (b) par_data |= DT006_RESET; else par_data &= ~DT006_RESET; ParportWriteData(); break; case PAT_ETT: if (b) par_data |= ETT_RESET; else par_data &= ~ETT_RESET; ParportWriteData(); break; case PAT_MAXI: if (b) par_data |= MAXI_RESET; else par_data &= ~MAXI_RESET; ParportWriteData(); break; case PAT_XIL: if (b) par_data |= XIL_RESET; else par_data &= ~XIL_RESET; ParportWriteData(); break; case PAT_DASA: #ifdef TIOCMGET SerialReadCtrl(); if (b) ser_ctrl |= TIOCM_RTS; else ser_ctrl &= ~TIOCM_RTS; SerialWriteCtrl(); #endif /* TIOCMGET */ break; case PAT_DASA2: #if defined(TIOCMGET) && defined(TIOCCBRK) ioctl(ppdev_fd, b ? TIOCCBRK : TIOCSBRK, 0); #endif /* TIOCMGET */ break; } Delay_usec(b ? reset_high_time : RESET_LOW_TIME ); } void TDAPA::OutSck(int b) { if (sck_invert) b = !b; #ifdef DEBUG1 printf("%c",(b)?'S':'s'); #endif switch (pa_type) { case PAT_DAPA: case PAT_DAPA_2: if (b) par_ctrl &= ~DAPA_SCK; else par_ctrl |= DAPA_SCK; ParportWriteCtrl(); break; case PAT_STK200: if (b) par_data |= STK2_SCK; else par_data &= ~STK2_SCK; ParportWriteData(); break; case PAT_ABB: if (b) par_data |= ABB_SCK; else par_data &= ~ABB_SCK; ParportWriteData(); break; case PAT_AVRISP: if (b) par_data |= AISP_SCK; else par_data &= ~AISP_SCK; ParportWriteData(); break; case PAT_BSD: if (b) par_data |= BSD_SCK; else par_data &= ~BSD_SCK; ParportWriteData(); break; case PAT_FBPRG: if (b) par_data |= FBPRG_SCK; else par_data &= ~FBPRG_SCK; ParportWriteData(); break; case PAT_DT006: if (b) par_data |= DT006_SCK; else par_data &= ~DT006_SCK; ParportWriteData(); break; case PAT_ETT: if (b) par_data |= ETT_SCK; else par_data &= ~ETT_SCK; ParportWriteData(); break; case PAT_MAXI: if (b) par_data |= MAXI_SCK; else par_data &= ~MAXI_SCK; ParportWriteData(); break; case PAT_XIL: if (b) par_data |= XIL_SCK; else par_data &= ~XIL_SCK; ParportWriteData(); break; case PAT_DASA: #if defined(TIOCMGET) SerialReadCtrl(); if (b) ser_ctrl |= TIOCM_DTR; else ser_ctrl &= ~TIOCM_DTR; SerialWriteCtrl(); #endif /* TIOCMGET */ break; case PAT_DASA2: #if defined(TIOCMGET) if (b) ser_ctrl |= TIOCM_RTS; else ser_ctrl &= ~TIOCM_RTS; SerialWriteCtrl(); #endif /* TIOCMGET */ break; } } void TDAPA::OutEnaReset(int b) { bool no_ps2_hack = GetCmdParam("-dno-ps2-hack", false); switch (pa_type) { case PAT_DAPA: case PAT_DAPA_2: case PAT_FBPRG: case PAT_DT006: case PAT_ETT: case PAT_MAXI: if (b) { ParportSetDir(0); } else if (!no_ps2_hack) { /* No special enable line on these interfaces, for PAT_DAPA this only disables the data line (MOSI) and not SCK. */ ParportSetDir(1); } break; case PAT_STK200: if (b) { /* Make sure outputs are enabled. */ ParportSetDir(0); SckDelay(); par_data &= ~STK2_ENA1; ParportWriteData(); } else { par_data |= STK2_ENA1; ParportWriteData(); if (!no_ps2_hack) { /* Experimental: disable outputs (PS/2 parallel port), for cheap STK200-like cable without the '244. Should work with the real STK200 too (disabled outputs should still have pull-up resistors, ENA1 and ENA2 are high, and the '244 remains disabled). This way the SPI pins can be used by the application too. Please report if it doesn't work on some parallel ports. */ SckDelay(); ParportSetDir(1); } } break; case PAT_ABB: if (b) { ParportSetDir(0); par_ctrl |= ABB_EN; ParportWriteCtrl(); } else { par_ctrl &= ~ABB_EN; ParportWriteCtrl(); if (!no_ps2_hack) { SckDelay(); ParportSetDir(1); } } break; case PAT_AVRISP: if (b) { ParportSetDir(0); SckDelay(); par_data &= ~AISP_ENA; ParportWriteData(); } else { par_data |= AISP_ENA; ParportWriteData(); if (!no_ps2_hack) { SckDelay(); ParportSetDir(1); } } break; case PAT_BSD: if (b) { ParportSetDir(0); SckDelay(); par_data &= ~BSD_ENA; ParportWriteData(); } else { par_data |= BSD_ENA; ParportWriteData(); if (!no_ps2_hack) { SckDelay(); ParportSetDir(1); } } break; case PAT_XIL: if (b) { ParportSetDir(0); par_data &= ~XIL_ENA; ParportWriteData(); } else { par_data |= XIL_ENA; ParportWriteData(); if (!no_ps2_hack) { SckDelay(); ParportSetDir(1); } } break; case PAT_DASA: case PAT_DASA2: break; } } void TDAPA::OutEnaSck(int b) { switch (pa_type) { case PAT_STK200: if (b) par_data &= ~(STK2_ENA2 | STK2_LED); else par_data |= (STK2_ENA2 | STK2_LED); ParportWriteData(); break; case PAT_DAPA: case PAT_DAPA_2: case PAT_ABB: case PAT_AVRISP: case PAT_BSD: case PAT_FBPRG: case PAT_DT006: case PAT_ETT: case PAT_MAXI: case PAT_XIL: case PAT_DASA: case PAT_DASA2: /* no separate enable for SCK nad MOSI */ break; } } void TDAPA::PulseSck() { SckDelay(); OutSck(1); SckDelay(); OutSck(0); } void TDAPA::PulseReset() { printf("pulse\n"); /* necessary delays already included in these methods */ OutReset(1); Delay_usec(1000); OutReset(0); } void TDAPA::OutData(int b) { if (mosi_invert) b = !b; #ifdef DEBUG1 printf("%c",(b)?'D':'d'); #endif switch (pa_type) { case PAT_DAPA: if (b) par_data |= DAPA_DOUT; else par_data &= ~DAPA_DOUT; par_data &= ~0x6; //0x6 par_data |= 0x0; //0x6 ParportWriteData(); break; case PAT_DAPA_2: if (b) par_data |= DAPA_DOUT; else par_data &= ~DAPA_DOUT; par_data &= ~0x6; //0x6 par_data |= 0x4; //0x6 ParportWriteData(); break; case PAT_STK200: if (b) par_data |= STK2_DOUT; else par_data &= ~STK2_DOUT; ParportWriteData(); break; case PAT_ABB: if (b) par_data |= ABB_DOUT; else par_data &= ~ABB_DOUT; ParportWriteData(); break; case PAT_AVRISP: if (b) par_data |= AISP_DOUT; else par_data &= ~AISP_DOUT; ParportWriteData(); break; case PAT_BSD: if (b) par_data |= BSD_DOUT; else par_data &= ~BSD_DOUT; ParportWriteData(); break; case PAT_FBPRG: if (b) par_data |= FBPRG_DOUT; else par_data &= ~FBPRG_DOUT; ParportWriteData(); break; case PAT_DT006: if (b) par_data |= DT006_DOUT; else par_data &= ~DT006_DOUT; ParportWriteData(); break; case PAT_ETT: if (b) par_ctrl |= ETT_DOUT; else par_ctrl &= ~ETT_DOUT; ParportWriteCtrl(); break; case PAT_MAXI: if (b) par_data |= MAXI_DOUT; else par_data &= ~MAXI_DOUT; ParportWriteData(); break; case PAT_XIL: if (b) par_data |= XIL_DOUT; else par_data &= ~XIL_DOUT; ParportWriteData(); break; case PAT_DASA: #if defined(TIOCMGET) && defined(TIOCCBRK) ioctl(ppdev_fd, b ? TIOCSBRK : TIOCCBRK, 0); #endif /* TIOCMGET */ break; case PAT_DASA2: #if defined(TIOCMGET) if (b) ser_ctrl |= TIOCM_DTR; else ser_ctrl &= ~TIOCM_DTR; SerialWriteCtrl(); #endif /* TIOCMGET */ break; } } int TDAPA::InData() { int b = 0; switch (pa_type) { case PAT_DAPA: case PAT_DAPA_2: case PAT_ABB: case PAT_DT006: ParportReadStatus(); b = (~par_status & PARPORT_STATUS_BUSY); break; case PAT_ETT: ParportReadStatus(); b = (par_status & ETT_DIN); break; case PAT_STK200: case PAT_AVRISP: case PAT_BSD: case PAT_FBPRG: case PAT_MAXI: ParportReadStatus(); b = (par_status & PARPORT_STATUS_ACK); break; case PAT_XIL: ParportReadStatus(); b = (par_status & PARPORT_STATUS_SELECT); break; case PAT_DASA: case PAT_DASA2: #ifdef TIOCMGET SerialReadCtrl(); #ifdef DEBUG1 printf("%c",(ser_ctrl & TIOCM_CTS)?'I':'i'); #endif b = (ser_ctrl & TIOCM_CTS); #endif /* TIOCMGET */ break; } if (miso_invert) b = !b; return b; } void TDAPA::Init() { /* data=1, reset=0, sck=0 */ switch (pa_type) { case PAT_DAPA: par_ctrl = DAPA_SCK; par_data = 0xFF; par_data &= ~0x6; //0x6 par_data |= 0x0; //0x6 break; case PAT_DAPA_2: par_ctrl = DAPA_SCK; par_data = 0xFF; par_data &= ~0x6; //0x6 par_data |= 0x4; //0x6 break; case PAT_STK200: par_ctrl = 0; par_data = 0xFF & ~(STK2_ENA1 | STK2_SCK); break; case PAT_ABB: par_ctrl = ABB_EN; par_data = 0xFF & ~ABB_SCK; break; case PAT_AVRISP: par_ctrl = 0; par_data = 0xFF & ~(AISP_ENA | AISP_SCK); break; case PAT_BSD: par_ctrl = 0; par_data = BSD_POWER | BSD_RESET; break; case PAT_FBPRG: par_ctrl = 0; par_data = FBPRG_POW | FBPRG_RESET; break; case PAT_ETT: par_ctrl = ETT_DOUT; par_data = ETT_SCK | ETT_RESET; mosi_invert = 1; break; case PAT_DT006: case PAT_MAXI: par_ctrl = 0; par_data = 0xFF; break; case PAT_XIL: par_ctrl = 0; par_data = 0xFF & ~(XIL_ENA | XIL_SCK | XIL_RESET); break; case PAT_DASA: case PAT_DASA2: break; } if (!pa_type_is_serial) { ParportWriteCtrl(); ParportWriteData(); SckDelay(); ParportReadStatus(); } OutEnaReset(1); OutReset(0); OutEnaSck(1); OutSck(0); /* Wait 100 ms as recommended for ATmega163 (SCK not low on power up). */ Delay_usec(100000); PulseReset(); } int TDAPA::SendRecv(int b) { unsigned int mask, received=0; for (mask = 0x80; mask; mask >>= 1) { OutData(b & mask); SckDelay(); /* MM 20020613: we used to read the bit here, but ... */ OutSck(1); SckDelay(); /* ... here we have more room for propagation delays (almost the whole SCK period, instead of half of it) - good for long cables, slow RS232 drivers/receivers, opto-isolated interfaces, etc. */ if (InData()) received |= mask; OutSck(0); } return received; } int TDAPA::Send (unsigned char* queue, int queueSize, int rec_queueSize) { unsigned char *p = queue, ch; int i = queueSize; if (rec_queueSize==-1){rec_queueSize = queueSize;} #ifdef DEBUG printf ("send(recv): "); #endif while (i--){ #ifdef DEBUG printf ("%02X(", (unsigned int)*p); #endif ch = SendRecv(*p); #ifdef DEBUG printf ("%02X) ", (unsigned int)ch); #endif *p++ = ch; } #ifdef DEBUG printf ("\n"); #endif return queueSize; } TDAPA::TDAPA(): parport_base(0x378), ppdev_fd(-1) { const char *val; /* If the user doesn't specify -dlpt option, use /dev/parport0 as the default instead of defaulting to using ioperm (ick!). If the user wants to run uisp as root (or setuid root) they should know what they are doing and can suffer the consequences. Joe user should not be told about ioperm failure due to permission denied. */ #ifdef __CYGWIN__ /* But on cygwin, /dev/parport0 does not exist. So... */ const char *ppdev_name = NULL; #else const char *ppdev_name = "/dev/parport0"; #endif /* Enable Parallel Port */ val = GetCmdParam("-dprog"); if (val && strcmp(val, "dapa") == 0) pa_type = PAT_DAPA; else if (val && strcmp(val, "dapa_2") == 0) pa_type = PAT_DAPA_2; else if (val && strcmp(val, "stk200") == 0) pa_type = PAT_STK200; else if (val && strcmp(val, "abb") == 0) pa_type = PAT_ABB; else if (val && strcmp(val, "avrisp") == 0) pa_type = PAT_AVRISP; else if (val && strcmp(val, "bsd") == 0) pa_type = PAT_BSD; else if (val && strcmp(val, "fbprg") == 0) pa_type = PAT_FBPRG; else if (val && strcmp(val, "dt006") == 0) pa_type = PAT_DT006; else if (val && strcmp(val, "ett") == 0) pa_type = PAT_ETT; else if (val && strcmp(val, "maxi") == 0) pa_type = PAT_MAXI; else if (val && strcmp(val, "xil") == 0) pa_type = PAT_XIL; else if (val && strcmp(val, "dasa") == 0) pa_type = PAT_DASA; else if (val && strcmp(val, "dasa2") == 0) pa_type = PAT_DASA2; else { throw Error_Device("Direct Parallel Access not defined."); } pa_type_is_serial = (pa_type == PAT_DASA || pa_type == PAT_DASA2); /* Parse Command Line Switches */ #ifndef NO_DIRECT_IO if ((val = GetCmdParam("-dlpt")) != NULL) { if (!strcmp(val, "1")) { parport_base = 0x378; ppdev_name = NULL; } else if (!strcmp(val, "2")) { parport_base = 0x278; ppdev_name = NULL; } else if (!strcmp(val, "3")) { parport_base = 0x3bc; ppdev_name = NULL; } else if (isdigit(*val)) { parport_base = strtol(val, NULL, 0); ppdev_name = NULL; } else { ppdev_name = val; } } if (!ppdev_name && !pa_type_is_serial) { if (parport_base!=0x278 && parport_base!=0x378 && parport_base!=0x3bc) { /* TODO: option to override this if you really know what you're doing (only if running as root). */ throw Error_Device("Bad device address."); } if (ioport_enable(IOBASE, IOSIZE) != 0) { perror("ioperm"); throw Error_Device("Failed to get direct I/O port access."); } } #endif /* Drop privileges (if installed setuid root - NOT RECOMMENDED). */ setgid(getgid()); setuid(getuid()); #ifdef NO_DIRECT_IO if ((val = GetCmdParam("-dlpt")) != NULL) { ppdev_name = val; } #endif if (ppdev_name) { if (pa_type_is_serial) { ppdev_fd = open(ppdev_name, O_RDWR | O_NOCTTY | O_NONBLOCK); if (ppdev_fd != -1) { struct termios pmode; tcgetattr(ppdev_fd, &pmode); saved_modes = pmode; cfmakeraw(&pmode); pmode.c_iflag &= ~(INPCK | IXOFF | IXON); pmode.c_cflag &= ~(HUPCL | CSTOPB | CRTSCTS); pmode.c_cflag |= (CLOCAL | CREAD); pmode.c_cc [VMIN] = 1; pmode.c_cc [VTIME] = 0; tcsetattr(ppdev_fd, TCSANOW, &pmode); /* Clear O_NONBLOCK flag. */ int flags = fcntl(ppdev_fd, F_GETFL, 0); if (flags == -1) { throw Error_C("Can not get flags"); } flags &= ~O_NONBLOCK; if (fcntl(ppdev_fd, F_SETFL, flags) == -1) { throw Error_C("Can not clear nonblock flag"); } } } else { ppdev_fd = open(ppdev_name, O_RDWR, 0); } if (ppdev_fd == -1) { perror(ppdev_name); throw Error_Device("Failed to open ppdev."); } if (!pa_type_is_serial && par_claim(ppdev_fd) != 0) { perror("ioctl PPCLAIM"); close(ppdev_fd); ppdev_fd = -1; throw Error_Device("Failed to claim ppdev."); } } t_sck = SCK_DELAY; if (pa_type_is_serial) t_sck *= 3; /* more delay for slow RS232 drivers */ val = GetCmdParam("-dt_sck"); if (val) t_sck = strtol(val, NULL, 0); sck_invert = 0; mosi_invert = 0; miso_invert = 0; reset_invert = 0; if ((val=GetCmdParam("-dinvert"))) { #define MAXLINESIZE 256 char temp[MAXLINESIZE]; char * p; strncpy(temp, val, MAXLINESIZE-1); temp[MAXLINESIZE-1] = '\0'; for (p=temp; *p; p++) *p=toupper(*p); Info(3, "Inverting %s\n",temp); if (strstr(temp,"SCK")) sck_invert=1; if (strstr(temp,"MOSI")) mosi_invert=1; if (strstr(temp,"MISO")) miso_invert=1; if (strstr(temp,"RESET")) reset_invert=1; } reset_high_time = RESET_HIGH_TIME; if ((val=GetCmdParam("-dt_reset"))) { reset_high_time = atoi(val); } Info(3, "Reset inactive time (t_reset) %d us\n", reset_high_time); Init(); } TDAPA::~TDAPA() { OutData(1); SckDelay(); OutSck(1); SckDelay(); OutEnaSck(0); OutReset(1); OutEnaReset(0); if (ppdev_fd != -1) { if (pa_type_is_serial) tcsetattr(ppdev_fd, TCSADRAIN, &saved_modes); else par_release(ppdev_fd); close(ppdev_fd); ppdev_fd = -1; } else (void) ioport_disable(IOBASE, IOSIZE); } #endif /* eof */ tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/DAPA.h000066400000000000000000000050771206361226500227220ustar00rootroot00000000000000// $Id: DAPA.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: DAPA.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 Uros Platise * * 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 * **************************************************************************** */ /* DAPA.h Direct AVR Parallel Access (c) copyright 1997, Uros Platise */ #ifndef __DAPA #define __DAPA #include #include #include #include #include #include "Error.h" class TDAPA { public: enum TPaType{ PAT_DAPA, PAT_STK200, PAT_ABB, PAT_AVRISP, PAT_BSD, PAT_FBPRG, PAT_DT006, PAT_ETT, PAT_MAXI, PAT_XIL, PAT_DASA, PAT_DASA2, PAT_DAPA_2 }; private: int mosi_invert; int miso_invert; int sck_invert; int reset_invert; int reset_high_time; int parport_base; int ppdev_fd; long t_sck; TPaType pa_type; bool pa_type_is_serial; /* not ppdev/ppi */ struct termios saved_modes; unsigned char par_data, par_ctrl; /* write */ unsigned char par_status; /* read */ unsigned int ser_ctrl; /* TIOCMGET/TIOCMSET */ private: int SendRecv(int); /* low level access to parallel port lines */ void OutReset(int); void OutSck(int); void OutData(int); void SckDelay(); int InData(); void OutEnaReset(int); void OutEnaSck(int); void ParportSetDir(int); void ParportWriteCtrl(); void ParportWriteData(); void ParportReadStatus(); void SerialReadCtrl(); void SerialWriteCtrl(); public: /* If enable command 0x53 did not echo back, give a positive SCK pulse and retry again. */ void PulseSck(); void PulseReset(); void Init(); int Send(unsigned char*, int, int rec_queueSize=-1); void Delay_usec(long); TDAPA(); ~TDAPA(); }; #endif tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/Error.h000066400000000000000000000041041206361226500232740ustar00rootroot00000000000000// $Id: Error.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: Error.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 Uros Platise * * 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 * **************************************************************************** */ /* ** Error.h ** Uros Platise, (c) 1997, November */ #ifndef __Error #define __Error #include /* This error class is used to express standard C errors. */ class Error_C { public: Error_C (const char* _arg) : arg(_arg) { } void print (void) { if (arg != NULL) { printf (" -> %s\n", arg); } } private: const char *arg; }; /* Out of memory error class informs terminal or upload/download tools that it has gone out of valid memory - and that's all. Program should not terminate. */ class Error_MemoryRange {}; /* General internal error reporting class that normally force uisp to exit after proper destruction of all objects. */ class Error_Device { public: Error_Device (const char *_errMsg, const char *_arg=NULL) : errMsg(_errMsg), arg(_arg) { } void print () { if (arg==NULL) { printf ("%s\n", errMsg); } else { printf ("%s: %s\n", errMsg, arg); } } private: const char* errMsg; const char* arg; }; #endif tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/Global.h000066400000000000000000000100331206361226500234010ustar00rootroot00000000000000// $Id: Global.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: Global.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002 Uros Platise * * 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 * **************************************************************************** */ /* Global.h, Uros Platise (c) 1999 */ #ifndef __GLOBAL #define __GLOBAL #include #include typedef unsigned char TByte; typedef unsigned TAddr; /* Smart Pointer Class */ template class TPt{ private: TRec* Addr; void MkRef(){if (Addr!=NULL){Addr->CRef++;}} void UnRef(){if (Addr!=NULL){Addr->CRef--;if (Addr->CRef==0){delete Addr;}}} public: TPt():Addr(NULL){} TPt(TRec* _Addr): Addr(_Addr){MkRef();} TPt(const TPt& Pt): Addr(Pt.Addr){MkRef();} ~TPt(){UnRef();} TPt& operator=(const TPt& Pt){ if (this!=&Pt){UnRef(); Addr=Pt.Addr; MkRef();} return *this;} TPt& operator=(TRec* _Addr){ if (Addr!=_Addr){UnRef();Addr=_Addr;MkRef();} return *this;} bool operator==(const TPt& Pt) const {return Addr==Pt.Addr;} TRec* operator->() const {assert(Addr!=NULL); return Addr;} TRec& operator*() const {assert(Addr!=NULL); return *Addr;} TRec& operator[](int RecN) const {assert(Addr!=NULL); return Addr[RecN];} TRec* operator()() const {return Addr;} /* think once more! */ bool operator<(const TPt& Pt){return Addr < Pt.Addr;} }; class TDevice{ private: int CRef; public: /* Set active segment. Returns true if segment exists, otherwise false */ virtual bool SetSegment(const char* segment_name)=0; /* Returns char pointer of current active segment name. */ virtual const char* TellActiveSegment()=0; /* Returns char pointer of the indexed segment name. Index is in range [0,no_of_segments]. When index is out of range NULL is returned. */ virtual const char* ListSegment(unsigned index)=0; virtual TAddr GetSegmentSize()=0; /* Read byte from active segment at address addr. */ virtual TByte ReadByte(TAddr addr)=0; /* Read byte description at address addr (as security bits) */ virtual const char* ReadByteDescription(TAddr addr)=0; /* Write byte to active segment at address addr */ virtual void WriteByte(TAddr addr, TByte byte, bool flush_buffer=true)=0; virtual void FlushWriteBuffer(){} /* Chip Erase */ virtual void ChipErase()=0; /* lock bits */ virtual void WriteLockBits(TByte bits)=0; virtual TByte ReadLockBits(){return 0;} /* Transfer Statistics in Bytes/Seconds */ virtual unsigned int GetPollCount(){return 0;} virtual float GetMinPollTime(){return 0;} virtual float GetTotPollTime(){return 0;} virtual float GetMaxPollTime(){return 0;} virtual void ResetMinMax(){} TDevice():CRef(0){} virtual ~TDevice(){} friend class TPt; }; typedef TPt PDevice; extern PDevice device; /* Find command line parameter's value. It searches the command line parameters of the form: argv_name=value Returns pointer to the value. */ const char* GetCmdParam(const char* argv_name, bool value_required=true); /* Print Status Information to the Standard Error Output. */ bool Info(unsigned _verbose_level, const char* fmt, ...) __attribute__((format (printf, 2, 3))); #endif tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/Main.C000066400000000000000000000365421206361226500230350ustar00rootroot00000000000000// $Id: Main.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: Main.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 Uros Platise * * 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.C Micro In-System Programmer Uros Platise (C) 1997-1999 */ #include "config.h" #include #include #include #include #include #include "Terminal.h" #include "MotIntl.h" #include "AvrAtmel.h" #include "Stk500.h" #include "AvrStargate.h" #ifndef NO_DAPA # include "AvrDummy.h" #endif /* Globals */ int argc; const char** argv; char* argv_ok; unsigned verbose_level; PDevice device; TMotIntl motintl; TTerminal terminal; const char* version = "uisp version %s\n" "(C) 1997-1999 Uros Platise, 2000-2003 Marek Michalkiewicz\n" "(c) 2003-2005 Philip Buonadonna, Intel Corporation\n" "(c) 2003 , Crossbow Technology\n" "\nuisp is free software, covered by the GNU General Public License.\n" "You are welcome to change it and/or distribute copies of it under\n" "the conditions of the GNU General Public License.\n\n"; const char* help_screen = "Syntax: uisp [-v{=level}] [-h] [--help] [--version] [--hash=perbytes]\n" " [-dprog=avr910|pavr|stk500|mib510|stargate]" #ifndef NO_DAPA " [-dprog=type]\n" " [-dlpt=address|/dev/parportX] [-dno-poll] [-dno-retry]\n" " [-dvoltage=...] [-dt_sck=time] [-dt_wd_{flash|eeprom}=time]\n" " [-dt_reset=time] [-dinvert=sck,mosi,miso,reset]" #endif "\n" " [-dserial=device] [-dpart=name|no]\n" " [-dspeed=1200|2400|4800|9600|19200|38400|57600|115200]" "\n" " [--upload] [--verify] [--erase] [if=input_file]\n" " [--download] [of=output_file]\n" " [--segment=flash|eeprom|fuse] [--terminal]\n" " [--rd_fuses] [--wr_fuse_l=byte] [--wr_fuse_h=byte]\n" " [--wr_fuse_e=byte] [--wr_lock=byte]\n\n" "Programming Methods:\n" " -dprog=avr910 Standard Atmel Serial Programmer/Atmel Low Cost Programmer\n" " pavr http://www.avr1.org/pavr/pavr.html\n" " stk500 Atmel STK500 or Atmel ATAVRISP\n" " mib510 Crossbow MIB510 (for Atmega128, 115200 baud serial only) \n" " stargate PXA Based Stargate \n" #ifndef NO_DAPA " -dprog=dapa|stk200|abb|avrisp|bsd|fbprg|dt006|maxi|xil|dasa|dasa2\n" " Programmer type:\n" " dapa Direct AVR Parallel Access\n" " stk200 Parallel Starter Kit STK200, STK300\n" " abb Altera ByteBlasterMV Parallel Port Download Cable\n" " avrisp Atmel AVR ISP (?)\n" " bsd http://www.bsdhome.com/avrdude/ (parallel)\n" " fbprg http://ln.com.ua/~real/avreal/adapters.html (parallel)\n" " dt006 http://www.dontronics.com/dt006.html (parallel)\n" " maxi Investment Technologies Maxi (parallel)\n" " xil Xilinx HW-JTAG-PC Cable (parallel)\n" " ett ETT AVR Programmer V2.0 [from Futurlec] (parallel)\n" " dasa serial (RESET=RTS SCK=DTR MOSI=TXD MISO=CTS)\n" " dasa2 serial (RESET=!TXD SCK=RTS MOSI=DTR MISO=CTS)\n" "\n" "Target Device Selection:\n" " -dpart Set target abbreviated name or number. For some programmers, if\n" " -dpart is not given programmer's supported devices are listed.\n" " Set -dpart=auto for auto-select. Auto-select does not work with\n" " all programmers, so it is recommended to always specify a target\n" " device explicitly.\n" "\n" "Parallel Device Settings:\n" " -dlpt= specify device name (Linux ppdev, FreeBSD ppi, serial)\n" #ifndef NO_DIRECT_IO " or direct I/O parallel port address (0x378, 0x278, 0x3BC)\n" #endif " -dno-poll Program without data polling (a little slower)\n" " -dno-retry Disable retries of program enable command\n" " -dvoltage Set timing specs according to the power supply voltage in [V]\n" " (default 3.0)\n" " -dt_sck Set minimum SCK high/low time in micro-seconds (default 5)\n" " -dt_wd_flash Set FLASH maximum write delay time in micro-seconds\n" " -dt_wd_eeprom Set EEPROM maximum write delay time in micro-seconds\n" " -dt_reset Set reset inactive (high) time in micro-seconds\n" " -dinvert=... Invert specified lines\n" " Use -v=3 option to see current settings.\n" #endif "\n" "Atmel Low Cost Programmer Serial Device Settings:\n" " -dserial Set serial interface as /dev/ttyS* (default /dev/avr)\n" " -dspeed Set speed of the serial interface (default 19200)\n" " -dhost IP Address or hostname of serial server. This option\n" " overrides the -dserial option\n" " -dport Port number of the serial server (default 10001)\n" "\n" "Stk500 specific options:\n" " -dparallel Use Hi-V parallel programming instead of serial (default is\n" " serial)\n" " --rd_aref Read the ARef Voltage. Note that due to a bug in the\n" " stk500 firmware, the read value is sometimes off by 0.1\n" " from the actual value measured with a volt meter.\n" " --rd_vtg Read the Vtarget Voltage. Note that due to a bug in the\n" " stk500 firmware, the read value is sometimes off by 0.1\n" " from the actual value measured with a volt meter.\n" " --wr_aref Set the ARef Voltage. Valid values are 0.0 to 6.0 volts in\n" " 0.1 volt increments. Value can not be larger than the\n" " VTarget value.\n" " --wr_vtg Set the VTarget Voltage. Valid values are 0.0 to 6.0 volts in\n" " 0.1 volt increments. Value can not be smaller than the\n" " ARef value.\n" "\n" "Functions:\n" " --upload Upload \"input_file\" to the AVR memory.\n" " --verify Verify \"input_file\" (processed after the --upload opt.)\n" " --download Download AVR memory to \"output_file\" or stdout.\n" " --erase Erase device.\n" " --segment Set active segment (auto-select for AVA Motorola output)\n" "\n" "Fuse/Lock Bit Operations:\n" " --rd_fuses Read all fuses and print values to stdout\n" " --wr_fuse_l Write fuse low byte\n" " --wr_fuse_h Write fuse high byte\n" " --wr_fuse_e Write fuse extended byte\n" " --wr_lock Write lock bits. Argument is a byte where each bit is:\n" " Bit5 -> blb12\n" " Bit4 -> blb11\n" " Bit3 -> blb02\n" " Bit2 -> blb01\n" " Bit1 -> lb2\n" " Bit0 -> lb1\n" " --lock Write lock bits [old method; deprecated].\n" "\n" "Files:\n" " if Input file for the --upload and --verify functions in\n" " Motorola S-records (S1 or S2) or 16 bit Intel format\n" " of Output file for the --download function in\n" " Motorola S-records format, default is standard output\n" "\n" "Other Options:\n" " -v Set verbose level (-v equals -v=2, min/max: 0/4, default 1)\n" " --hash Print hash (default is 32 bytes)\n" " --help -h Help\n" " --version Print version information\n" " --terminal Invoke shell-like terminal\n" "\n" "Report bugs to: Maintainers \n" "Updates: http://savannah.nongnu.org/projects/uisp\n"; /* Find command line parameter's value. It searches the command line parameters of the form: argv_name=value Returns pointer to the value. */ const char* GetCmdParam(const char* argv_name, bool value_required) { int argv_name_len = strlen(argv_name); for (int i=1; i verbose_level){return false;} va_list ap; va_start(ap,fmt); vfprintf(stderr,fmt,ap); va_end(ap); return true; } static void cleanup_exception() { fprintf(stderr, "problem during cleanup - exiting\n"); _exit(2); } int main(int _argc, const char* _argv[]){ int return_val=0; argc = _argc; argv = _argv; verbose_level=1; if (argc==1){ Info(0, "%s: No commands specified. " "Try '%s --help' for list of commands.\n", argv[0], argv[0]); exit(1); } argv_ok = (char *)malloc(argc); for (int i=1; iSetSegment(val)){ Info(0, "--segment=%s: bad segment name\n", val); } } /* Device Operations: */ if (GetCmdParam("--download", false)) { motintl.Write(GetCmdParam("of")); } if (GetCmdParam("--erase", false)){device->ChipErase();} /* Input file */ if ((val=GetCmdParam("if"))) { if (GetCmdParam("--upload", false)){motintl.Read(val, true, false);} if (GetCmdParam("--verify", false)){motintl.Read(val, false, true);} } if (GetCmdParam("--rd_fuses",false)) { TByte bits; const char *old_seg = device->TellActiveSegment(); device->SetSegment("fuse"); printf("\n"); printf("Fuse Low Byte = 0x%02x\n", device->ReadByte(AVR_FUSE_LOW_ADDR)); printf("Fuse High Byte = 0x%02x\n", device->ReadByte(AVR_FUSE_HIGH_ADDR)); printf("Fuse Extended Byte = 0x%02x\n", device->ReadByte(AVR_FUSE_EXT_ADDR)); printf("Calibration Byte = 0x%02x -- Read Only\n", device->ReadByte(AVR_CAL_ADDR)); bits = device->ReadByte(AVR_LOCK_ADDR); printf("Lock Bits = 0x%02x\n", bits); printf(" BLB12 -> %d\n", ((bits & BLB12) == BLB12)); printf(" BLB11 -> %d\n", ((bits & BLB11) == BLB11)); printf(" BLB02 -> %d\n", ((bits & BLB02) == BLB02)); printf(" BLB01 -> %d\n", ((bits & BLB01) == BLB01)); printf(" LB2 -> %d\n", ((bits & LB2) == LB2)); printf(" LB1 -> %d\n", ((bits & LB1) == LB1)); printf("\n"); device->SetSegment(old_seg); } if ((val=GetCmdParam("--wr_fuse_l")) != NULL) { unsigned int bits; const char *old_seg = device->TellActiveSegment(); device->SetSegment("fuse"); if (sscanf(val, "%x", &bits) == 1) { device->WriteByte( AVR_FUSE_LOW_ADDR, (TByte)bits ); printf("\nFuse Low Byte set to 0x%02x\n", (TByte)bits); } else throw Error_Device("Invalid argument for --wr_fuse_l."); device->SetSegment(old_seg); } if ((val=GetCmdParam("--wr_fuse_h")) != NULL) { unsigned int bits; const char *old_seg = device->TellActiveSegment(); device->SetSegment("fuse"); if (sscanf(val, "%x", &bits) == 1) { device->WriteByte( AVR_FUSE_HIGH_ADDR, (TByte)bits ); printf("\nFuse High Byte set to 0x%02x\n", (TByte)bits); } else throw Error_Device("Invalid argument for --wr_fuse_h."); device->SetSegment(old_seg); } if ((val=GetCmdParam("--wr_fuse_e")) != NULL) { unsigned int bits; const char *old_seg = device->TellActiveSegment(); device->SetSegment("fuse"); if (sscanf(val, "%x", &bits) == 1) { device->WriteByte( AVR_FUSE_EXT_ADDR, (TByte)bits ); printf("\nFuse Extended Byte set to 0x%02x\n", (TByte)bits); } else throw Error_Device("Invalid argument for --wr_fuse_e."); device->SetSegment(old_seg); } if ((val=GetCmdParam("--wr_lock")) != NULL) { unsigned int bits; if (sscanf(val, "%x", &bits) == 1) { device->WriteLockBits( (TByte)bits ); printf("\nLock Bits set to 0x%02x\n", (TByte)bits); } else throw Error_Device("Invalid argument for --wr_lock."); } if (GetCmdParam("--lock", false)) { Info(0, "NOTE: '--lock' is deprecated. Used '--wr_lock' instead.\n"); device->WriteLockBits(0xFC); printf("\nLock Bits set to 0x%02x\n", 0xfc); } /* enter terminal */ if (GetCmdParam("--terminal", false)){terminal.Run();} /* Check bad command line parameters */ for (int i=1; i -Werror removed AM_CXXFLAGS = -Wall bin_PROGRAMS = uisp uisp_SOURCES = \ Avr.C \ Avr.h \ AvrAtmel.C \ AvrAtmel.h \ AvrDummy.C \ AvrDummy.h \ AvrStargate.C \ AvrStargate.h \ DAPA.C \ DAPA.h \ Error.h \ Global.h \ Main.C \ MotIntl.C \ MotIntl.h \ SASA.C \ SASA.h \ Serial.C \ Serial.h \ Stk500.C \ Stk500.h \ Terminal.C \ Terminal.h \ cygwinp.C \ cygwinp.h \ parport.h \ ppdev.h \ timeradd.h tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/MotIntl.C000066400000000000000000000306621206361226500235340ustar00rootroot00000000000000// $Id: MotIntl.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: MotIntl.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002, 2003 Uros Platise * * 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 * **************************************************************************** */ /* MotIntl.C Motorola and Intel Uploading/Downloading Routines Uros Platise (c) 1999 */ #include "config.h" #include #include #include #include #include "timeradd.h" #include "Global.h" #include "Error.h" #include "MotIntl.h" TByte TMotIntl::Htoi(const char* p){ unsigned char val = 0; if (*p>='0' && *p<='9') val += *p-'0'; else if (*p>='A' && *p<='F') val += *p-'A'+10; else if (*p>='a' && *p<='f') val += *p-'a'+10; else throw Error_Device("Bad file format."); val <<= 4; p++; if (*p>='0' && *p<='9') val += *p-'0'; else if (*p>='A' && *p<='F') val += *p-'A'+10; else if (*p>='a' && *p<='f') val += *p-'a'+10; else throw Error_Device("Bad file format."); cc_sum += val; return val; } void TMotIntl::InfoOperation(const char* prefix, const char* seg_name){ Info(1, "%s", prefix); if (!upload && !verify) { Info(1, "Downloading"); } if (upload){Info(1, "Uploading");} if (upload && verify){Info(1, "/");} if (verify){Info(1, "Verifying");} Info(1, ": %s\n", seg_name); } void TMotIntl::ReportStats(float elapsed, TAddr total_bytes) { float rate = (float)total_bytes / elapsed; Info(2, "\n(total %u bytes transferred in %.2f s (%.0f bytes/s)\n", total_bytes, elapsed, rate); if (upload) { unsigned int total_polled = device->GetPollCount(); if (total_polled) { float min_poll_time = device->GetMinPollTime() * 1000.0; float max_poll_time = device->GetMaxPollTime() * 1000.0; float avg_poll_time = device->GetTotPollTime() * (1000.0 / total_polled); Info(2, "Polling: count = %u, min/avg/max = %.2f/%.2f/%.2f ms\n", total_polled, min_poll_time, avg_poll_time, max_poll_time); } } } void TMotIntl::UploadMotorola(){ unsigned char srec_len, buf_len, srec_cc_sum; char seg_name[256]; /* data field length is a byte, so this is safe */ char* p; /* line buffer pointer */ TAddr addr; TAddr total_bytes_uploaded=0; TAddr hash_cnt=0; TByte byte; struct timeval t1, t2; device->ResetMinMax(); do{ /* convert to upper case */ buf_len = strlen(line_buf); for (int i=0;i MI_LINEBUF_SIZE) throw ("Bad Motorola file format."); /* Load address */ addr = Htoi(p); p+=2; addr <<= 8; addr += Htoi(p); p+=2; switch(line_buf[1]){ case '0':{ /* Load segment name */ int i; for (i=0;iSetSegment(seg_name)){InfoOperation("Auto-", seg_name);} else{InfoOperation("", device->TellActiveSegment());} /* Print first hash */ if (device->GetSegmentSize() >= 16) Info(2, "#"); hash_cnt=0; /* Set statistic variables */ total_bytes_uploaded = 0; gettimeofday(&t1, NULL); } break; /* 4 byte address */ case '3': addr <<= 8; addr += Htoi(p); p+=2; srec_len--; /* Note that we fall through. */ /* 3 byte address */ case '2': addr <<= 8; addr += Htoi(p); p+=2; srec_len--; /* Note that we fall through. */ /* 2 byte address */ case '1':{ /* Upload/Verify bytes */ total_bytes_uploaded += srec_len; while(srec_len-->0){ byte = Htoi(p); if (upload){device->WriteByte(addr, byte, false);} if (verify){ TByte rbyte = device->ReadByte(addr); if (rbyte != byte){ Info(0, "%s error at address 0x%x: file=0x%02x, mem=0x%02x\n", device->TellActiveSegment(), addr, (int) byte, (int) rbyte); } } p+=2; addr++; if (total_bytes_uploaded >= hash_cnt+hash_marker){ Info(2, "#"); hash_cnt+=hash_marker; } } } break; case '7': case '8': case '9':{ if (upload){device->FlushWriteBuffer();} gettimeofday(&t2, NULL); timersub(&t2, &t1, &t2); float elapsed = t2.tv_sec + t2.tv_usec*1e-6; ReportStats(elapsed, total_bytes_uploaded); /* verify check sum */ for (int i=0;iTellActiveSegment()); /* Print first hash */ if (device->GetSegmentSize() >= 16) Info(2, "#"); /* Set statistic variables */ total_bytes_uploaded = 0; gettimeofday(&t1, NULL); device->ResetMinMax(); do{ /* convert to upper case */ buf_len = strlen(line_buf); for (int i=0;i MI_LINEBUF_SIZE) throw ("Bad Intel file format."); /* Load address */ addr = Htoi(p); p+=2; addr <<= 8; addr += Htoi(p); p+=2; rec_type = Htoi(p); p+=2; /* read control byte: 00-data, 01-end, 02-seg_offset */ addr += seg_offset; /* this allows access to more than 64K */ switch(rec_type) { case 0x00:{ /* Upload/Verify bytes */ total_bytes_uploaded += ihex_len; while(ihex_len-->0){ byte = Htoi(p); if (upload){device->WriteByte(addr, byte, false);} if (verify){ TByte rbyte = device->ReadByte(addr); if (rbyte != byte){ Info(0, "%s error at address 0x%x: file=0x%02x, mem=0x%02x\n", device->TellActiveSegment(), addr, (int) byte, (int) rbyte); } } p+=2; addr++; if (total_bytes_uploaded >= hash_cnt+hash_marker){ Info(2, "#"); hash_cnt+=hash_marker; } } } break; case 0x01: /* end */ case 0x03: /* start address record */ case 0x05: /* start linear address record */ /* don't need to do anything, except calculate the checksum */ while (ihex_len-- > 0) { byte = Htoi(p); p += 2; } break; case 0x02:{ seg_offset = Htoi(p); p+=2; seg_offset <<=8; seg_offset += Htoi(p); p+=2; /* seg_offset is bits 4-19 of addr, so shift to that. */ seg_offset <<=4; } break; case 0x04: /* extended linear address record */ seg_offset = Htoi(p); p += 2; seg_offset <<= 8; seg_offset += Htoi(p); p += 2; seg_offset <<= 16; break; default: throw Error_Device("Bad Intel Hex record.\n"); } /* Read Check Sum and give a report */ ihex_cc_sum = Htoi(p); if (cc_sum != 0x0){ Info(2, "Intel check sum: %d uisp check sum: %d\n", (unsigned)ihex_cc_sum, (unsigned)cc_sum); throw Error_Device("Check sum error.\n"); } } while(fgets(line_buf, MI_LINEBUF_SIZE, fd)!=NULL); if (upload){device->FlushWriteBuffer();} /* Print transfer statistics */ gettimeofday(&t2, NULL); timersub(&t2, &t1, &t2); float elapsed = t2.tv_sec + t2.tv_usec*1e-6; ReportStats(elapsed, total_bytes_uploaded); } void TMotIntl::Read(const char* filename, bool _upload, bool _verify){ upload = _upload; verify = _verify; if ((fd=fopen(filename,"rt"))==NULL){ throw Error_C(filename); } /* Set-up Hash Marker */ const char* val = GetCmdParam("--hash"); if (val!=NULL){hash_marker = atoi(val);} /* auto-detect Motorola or Intel file format */ fgets(line_buf, MI_LINEBUF_SIZE, fd); if (strncasecmp(line_buf, "S0", 2)==0){UploadMotorola();} else if (line_buf[0]==':'){UploadIntel();} else {throw Error_Device("Unknown file format.");} fclose(fd); } void TMotIntl::SrecWrite(unsigned int type, const unsigned char *buf, unsigned int len) { unsigned i, sum; fprintf(fd, "S%01X%02X", type, len + 1); sum = len + 1; for (i = 0; i < len; i++) { sum += buf[i]; fprintf(fd, "%02X", (unsigned int) buf[i]); } fprintf(fd, "%02X\r\n", (unsigned int)(~sum & 0xFF)); } void TMotIntl::DownloadMotorola() { /* A short description of S-Records may be found at http://www.ndsu.nodak.edu/instruct/tareski/373f98/notes/srecord.htm */ TAddr addr, size; TAddr total_bytes_uploaded=0; TAddr hash_cnt=0; struct timeval t1, t2; unsigned char buf[40]; const char *seg; int s5count=0; seg = device->TellActiveSegment(); InfoOperation("", seg); /* Set statistic variables */ total_bytes_uploaded = 0; gettimeofday(&t1, NULL); device->ResetMinMax(); size = device->GetSegmentSize(); /* Print first hash (except for fuse bits) */ if (size >= 16) Info(2, "#"); buf[0] = 0; buf[1] = 0; strncpy((char *) buf+2, seg, 16); buf[18] = 0; SrecWrite(0, buf, 2 + strlen((const char *) buf + 2)); for (addr = 0; addr < size; addr += 16) { int i, len; len = size - addr; if (len > 16) len = 16; buf[0] = (addr >> 24) & 0xFF; buf[1] = (addr >> 16) & 0xFF; buf[2] = (addr >> 8) & 0xFF; buf[3] = addr & 0xFF; for (i = 0; i < len; i++) { TByte rbyte = device->ReadByte(addr + i); buf[4 + i] = rbyte; total_bytes_uploaded++; if (total_bytes_uploaded >= hash_cnt + hash_marker) { Info(2, "#"); hash_cnt += hash_marker; } } if (addr < 0x10000) SrecWrite(1, buf + 2, 2 + len); else if (addr < 0x1000000) SrecWrite(2, buf + 1, 3 + len); else SrecWrite(3, buf , 4 + len); s5count++; } /* number of S1/2/3 records written */ buf[0] = (s5count >> 8) & 0xFF; buf[1] = s5count & 0xFF; SrecWrite(5, buf, 2 ); /* starting address is 0 */ buf[0] = 0; buf[1] = 0; buf[2] = 0; buf[3] = 0; if (addr < 0x10000) SrecWrite(9, buf+2, 2 ); else if (addr < 0x1000000) SrecWrite(8, buf+1, 3); else SrecWrite(7, buf, 4); /* Print transfer statistics */ gettimeofday(&t2, NULL); timersub(&t2, &t1, &t2); float elapsed = t2.tv_sec + t2.tv_usec*1e-6; ReportStats(elapsed, total_bytes_uploaded); } void TMotIntl::Write(const char *filename) { if (filename) { fd = fopen(filename, "wb"); if (!fd) { throw Error_C(filename); } DownloadMotorola(); fclose(fd); } else { fd = stdout; DownloadMotorola(); } } TMotIntl::TMotIntl(): hash_marker(32){ } tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/MotIntl.h000066400000000000000000000036721206361226500236020ustar00rootroot00000000000000// $Id: MotIntl.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: MotIntl.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002 Uros Platise * * 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 * **************************************************************************** */ /* MotIntl.h Motorola and Intel Uploading/Downloading Routines Uros Platise (c) 1999 */ #ifndef __MOTINTL #define __MOTINTL #include #include "Global.h" #define MI_LINEBUF_SIZE 128 class TMotIntl{ public: enum TFormatType{TF_MOTOROLA, TF_INTEL}; private: char line_buf [MI_LINEBUF_SIZE]; unsigned char cc_sum; unsigned int hash_marker; FILE* fd; bool upload, verify; TByte Htoi(const char* p); void InfoOperation(const char* prefix, const char* seg_name); void ReportStats(float, TAddr); void UploadMotorola(); void UploadIntel(); void SrecWrite(unsigned int, const unsigned char *, unsigned int); void DownloadMotorola(); public: void Read(const char* filename, bool _upload, bool _verify); void Write(const char *filename); TMotIntl(); ~TMotIntl(){} }; extern TMotIntl motintl; #endif tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/SASA.C000066400000000000000000000106331206361226500226710ustar00rootroot00000000000000// $Id: SASA.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: SASA.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002, 2003 Sergey Larin * * 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 * * Portions Copyright (c) 2002-2003 Intel Corporation * All rights reserved. * * This file is distributed under the terms in the attached INTEL-LICENSE * file. If you do not find these files, copies can be found by writing to * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, * 94704. Attention: Intel License Inquiry. **************************************************************************** */ /* SASA.C Stargate AVR SSP Access (SASA) Phil Buonadonna (c) 2003 */ //#define DEBUG //#define DEBUG1 #include "config.h" #include #include #include #include #include #include #include #include #include "timeradd.h" #include "Global.h" #include "Error.h" #include "SASA.h" #include "Avr.h" /* Default value for minimum SCK high/low time in microseconds. */ #ifndef SCK_DELAY #define SCK_DELAY 5 #endif /* Minimum RESET# high time in microseconds. Should be enough to charge a capacitor between RESET# and GND (it is recommended to use a voltage detector with open collector output, and only something like 100 nF for noise immunity). Default value may be changed with -dt_reset=N microseconds. */ #ifndef RESET_HIGH_TIME #define RESET_HIGH_TIME 1000 #endif /* Delay from RESET# low to sending program enable command (the datasheet says it must be at least 20 ms). Also wait time for crystal oscillator to start after possible power down mode. */ #ifndef RESET_LOW_TIME #define RESET_LOW_TIME 30000 #endif const char TSASA::dev_name[] = "/dev/ssp"; void TSASA::SckDelay() { Delay_usec(5); } #ifndef MIN_SLEEP_USEC #define MIN_SLEEP_USEC 20000 #endif void TSASA::Delay_usec(long t) { struct timeval t1, t2; if (t <= 0) return; /* very short delay for slow machines */ gettimeofday(&t1, NULL); if (t > MIN_SLEEP_USEC) usleep(t - MIN_SLEEP_USEC); /* loop for the remaining time */ t2.tv_sec = t / 1000000UL; t2.tv_usec = t % 1000000UL; timeradd(&t1, &t2, &t1); do { gettimeofday(&t2, NULL); } while (timercmp(&t2, &t1, <)); } void TSASA::PulseSck() { PulseReset(); } void TSASA::PulseReset() { close(dev_fd); Delay_usec(1000); dev_fd = open(dev_name, O_RDWR, 0); if (dev_fd == -1) { perror(dev_name); throw Error_Device("Failed to reopen ppdev."); } } void TSASA::Init() { return; } unsigned char TSASA::SendRecv(unsigned char b) { unsigned char received; write(dev_fd,&b,1); read(dev_fd,&received,1); return received; } int TSASA::Send (unsigned char* queue, int queueSize, int rec_queueSize) { unsigned char *p = queue, ch; int i = queueSize; if (rec_queueSize==-1){rec_queueSize = queueSize;} #ifdef DEBUG printf ("send(recv): "); #endif while (i--){ #ifdef DEBUG printf ("%02X(", (unsigned int)*p); #endif ch = SendRecv(*p); #ifdef DEBUG printf ("%02X) ", (unsigned int)ch); #endif *p++ = ch; } #ifdef DEBUG printf ("\n"); #endif return queueSize; } TSASA::TSASA(): dev_fd(-1) { /* Drop privileges (if installed setuid root - NOT RECOMMENDED). */ setgid(getgid()); setuid(getuid()); dev_fd = open(dev_name, O_RDWR, 0); if (dev_fd == -1) { perror(dev_name); throw Error_Device("Failed to open the SSP. Is the driver installed?"); } } TSASA::~TSASA() { if (dev_fd != -1) { close(dev_fd); dev_fd = -1; } } /* eof */ tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/SASA.h000066400000000000000000000037761206361226500227500ustar00rootroot00000000000000// $Id: SASA.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: SASA.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 Uros Platise * * 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 * * Portions Copyright (c) 2002-2003 Intel Corporation * All rights reserved. * * This file is distributed under the terms in the attached INTEL-LICENSE * file. If you do not find these files, copies can be found by writing to * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, * 94704. Attention: Intel License Inquiry. **************************************************************************** */ /* SASA.h Stargate AVR SSP Access */ #ifndef __SASA #define __SASA #include #include #include #include #include "Error.h" class TSASA { private: int dev_fd; static const char dev_name[]; private: unsigned char SendRecv(unsigned char); /* low level access to parallel port lines */ void SckDelay(); public: void PulseSck(); void PulseReset(); void Init(); int Send(unsigned char*, int, int rec_queueSize=-1); void Delay_usec(long); TSASA(); ~TSASA(); }; #endif tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/Serial.C000066400000000000000000000161071206361226500233630ustar00rootroot00000000000000// $Id: Serial.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: Serial.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 Uros Platise * * 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 * **************************************************************************** */ /* Serial.C Serial Interface Uros Platise, (c) 1997-1999 */ #include "config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include "Global.h" #include "Serial.h" int TSerial::Tx(unsigned char* queue, int queue_size) { Info(4, "Transmit: { "); for (int n=0; nh_addr,server->h_length); const char* val; if ((val = GetCmdParam("-dport"))) { sPort = (short) atoi(val); } serv_addr.sin_port = htons(sPort); if (connect(serline,(sockaddr *)&serv_addr,sizeof(serv_addr)) < 0) { throw Error_Device("Error connecting to server.",GetCmdParam("-dhost")); } remote = true; } void TSerial::OpenPort() { struct termios pmode; const char* dev_name = "/dev/avr"; const char* val; speed_t speed = B19200; /* default speed */ struct TSpeed{ const char* arg; speed_t speed; }; const TSpeed speed_array[] = { {"1200", B1200}, {"2400", B2400}, {"4800", B4800}, {"9600", B9600}, {"19200", B19200}, {"38400", B38400}, {"57600", B57600}, {"115200", B115200}, {"", 0} }; /* Open port and set serial attributes */ if (strcmp(GetCmdParam("-dprog"), "stk500") == 0 || strcmp(GetCmdParam("-dprog"), "mib510") == 0) { speed = B115200; /* default STK500 speed */ } if ((val=GetCmdParam("-dserial"))){dev_name = val;} if ((val=GetCmdParam("-dspeed"))){ const TSpeed* speed_item = speed_array; for (;speed_item->arg[0] != 0; speed_item++){ if (strcmp(speed_item->arg, val) == 0) { speed = speed_item->speed; break; } } if (speed_item->arg[0]==0){throw Error_Device("-dspeed: Invalid speed.");} } // COMn and cygwin don't interact well. Use /dev/ttyS instead if (strlen(dev_name) == 4 && strncasecmp(dev_name, "com", 3) == 0 && isdigit(dev_name[3])) { char *new_name = new char[11]; sprintf(new_name, "/dev/ttyS%c", dev_name[3] - 1); Info(0, "Please use %s rather than %s (the latter often doesn't work)\n", new_name, dev_name); dev_name = new_name; } if ((serline = open(dev_name, O_RDWR | O_NOCTTY | O_NONBLOCK)) < 0) { throw Error_C(dev_name); } tcgetattr(serline, &pmode); saved_modes = pmode; memset(&pmode, 0, sizeof(pmode)); /* VMIN, VTIME=0 is fine as we use select in Rx anyway */ pmode.c_cflag = CS8 | CLOCAL | CREAD; pmode.c_iflag = IGNPAR | IGNBRK; cfsetispeed(&pmode, speed); cfsetospeed(&pmode, speed); tcsetattr(serline, TCSANOW, &pmode); #if 0 /* Reopen port */ int fd = serline; if ((serline = open(dev_name, O_RDWR | O_NOCTTY)) < 0){throw Error_C();} close(fd); #else /* Clear O_NONBLOCK flag. */ int flags = fcntl(serline, F_GETFL, 0); if (flags == -1) { throw Error_C("Can not get flags"); } flags &= ~O_NONBLOCK; if (fcntl(serline, F_SETFL, flags) == -1) { throw Error_C("Can not clear nonblock flag"); } #endif } TSerial::~TSerial(){ if (!remote) tcsetattr(serline, TCSADRAIN, &saved_modes); close(serline); } tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/Serial.h000066400000000000000000000036131206361226500234260ustar00rootroot00000000000000// $Id: Serial.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: Serial.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Uros Platise * * 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 * **************************************************************************** */ /* Serial.h RS232 Serial Interface for the standard Atmel Programmer Uros Platise(c) copyright 1997-1999 */ #ifndef __Serial #define __Serial #include #if defined(__CYGWIN__) #include "cygwinp.h" #endif #include #include #include #include #include "Global.h" #include "Error.h" class TSerial{ private: int serline; bool remote; struct termios saved_modes; protected: int Tx(unsigned char* queue, int queue_size); int Rx(unsigned char* queue, int queue_size, timeval* timeout); void OpenPort(); void OpenTcp(); public: int Send(unsigned char* queue, int queue_size, int rec_queue_size=-1, int timeout = 4); void SendOnly(unsigned char* queue, int queue_size); TSerial(); ~TSerial(); }; #endif tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/Stk500.C000066400000000000000000000656031206361226500231370ustar00rootroot00000000000000// $Id: Stk500.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: Stk500.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 2001, 2002, 2003 Daniel Berntsson * * 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 * **************************************************************************** */ /* Stk500.C, Daniel Berntsson, 2001 */ #include #include "config.h" #include "Stk500.h" #include "Serial.h" const TByte TStk500::pSTK500[] = { 0x30, 0x20 }; const TByte TStk500::pSTK500_Reply[] = { 0x14, 0x10 }; const TByte TStk500::SWminor[] = { 0x41, 0x82, 0x20 }; const TByte TStk500::SWminor_Reply[] = { 0x14, 0x07, 0x10 }; const TByte TStk500::SWmajor[] = { 0x41, 0x81, 0x20 }; const TByte TStk500::SWmajor_Reply[] = {0x14, 0x01, 0x10 }; //XBOW MIC510 cmd to enter cmd MIB510 to take control of RS232 lines const TByte TStk500::IspMode[] = {0xaa, 0x55, 0x55, 0xaa, 0x17, 0x51, 0x31, 0x13, '?' }; const TByte TStk500::IspMode_Reply[] = { 0x14, 0x10 }; const TByte TStk500::EnterPgmMode[] = { 0x50, 0x20 }; const TByte TStk500::EnterPgmMode_Reply[] = { 0x14, 0x10 }; const TByte TStk500::LeavePgmMode[] = { 0x51, 0x20 }; const TByte TStk500::LeavePgmMode_Reply[] = { 0x14, 0x10 }; const TByte TStk500::SetAddress[] = { 0x55, '?', '?', 0x20 }; const TByte TStk500::SetAddress_Reply[] = { 0x14, 0x10 }; const TByte TStk500::EraseDevice[] = { 0x52, 0x20 }; const TByte TStk500::EraseDevice_Reply[] = { 0x14, 0x10 }; const TByte TStk500::WriteMemory[] = { 0x64, '?', '?', '?' }; const TByte TStk500::WriteMemory_Reply[] = { 0x14, 0x10 }; const TByte TStk500::ReadMemory[] = { 0x74, 0x01, 0x00, '?', 0x20 }; const TByte TStk500::ReadMemory_Reply[] = { 0x14 }; const TByte TStk500::GetSignature[] = {0x75, 0x20}; const TByte TStk500::GetSignature_Reply[] = {0x75, '?', '?', '?', 0x20}; const TByte TStk500::CmdStopByte[] = { 0x20 }; const TByte TStk500::ReplyStopByte[] = { 0x10 }; const TByte TStk500::Flash = 'F'; const TByte TStk500::EEPROM = 'E'; const TByte TStk500::DeviceParam_Reply[] = { 0x14, 0x10 }; const TByte TStk500::ExtDevParams_Reply[] = { 0x14, 0x10 }; /* FIXME: troth/2002-10-02: Get rid of all these magic numbers now that we know what they mean. (See REAME.stk500) */ TStk500::SPrgPart TStk500::prg_part[] = { {"AT90S4414", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x50, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x7f, 0x7f, 0x80, 0x7f, {0x00, 0x00}, {0x01, 0x00}, {0x00, 0x00, 0x10, 0x00}, 0x20} }, {"AT90S2313", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x40, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x7f, 0x7f, 0x80, 0x7f, {0x00, 0x00}, {0x00, 0x80}, {0x00, 0x00, 0x08, 0x00}, 0x20} }, {"AT90S1200", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x33, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0xff, 0xff, 0x00, 0xff, {0x00, 0x00}, {0x00, 0x40}, {0x00, 0x00, 0x04, 0x00}, 0x20} }, {"AT90S2323", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x41, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0xff, 0xff, 0x00, 0xff, {0x00, 0x00}, {0x00, 0x80}, {0x00, 0x00, 0x08, 0x00}, 0x20} }, {"AT90S2343", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x43, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0xff, 0xff, 0x00, 0xff, {0x00, 0x00}, {0x00, 0x80}, {0x00, 0x00, 0x08, 0x00}, 0x20} }, {"AT90S2333", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x42, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0xff, 0xff, 0x00, 0xff, {0x00, 0x00}, {0x00, 0x80}, {0x00, 0x00, 0x08, 0x00}, 0x20} }, {"AT90S4433", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x51, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0xff, 0xff, 0x00, 0xff, {0x00, 0x00}, {0x01, 0x00}, {0x00, 0x00, 0x10, 0x00}, 0x20} }, {"AT90S4434", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x52, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0xff, 0xff, 0x00, 0xff, {0x00, 0x00}, {0x01, 0x00}, {0x00, 0x00, 0x10, 0x00}, 0x20} }, {"AT90S8515", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x60, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x7f, 0x7f, 0x80, 0x7f, {0x00, 0x00}, {0x02, 0x00}, {0x00, 0x00, 0x20, 0x00}, 0x20} }, {"AT90S8535", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x61, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0xff, 0xff, 0x00, 0xff, {0x00, 0x00}, {0x02, 0x00}, {0x00, 0x00, 0x20, 0x00}, 0x20} }, {"AT90S8534", /* NOTE (20030216): experimental and untested */ {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x62, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0xff, 0xff, 0x00, 0xff, {0x00, 0x00}, {0x02, 0x00}, {0x00, 0x00, 0x20, 0x00}, 0x20} }, {"ATmega8515", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x63, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0xff, 0xff, 0xff, 0xff, {0x00, 0x40}, {0x02, 0x00}, {0x00, 0x00, 0x20, 0x00}, 0x20} }, {"ATmega8535", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x64, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0xff, 0xff, 0xff, 0xff, {0x00, 0x40}, {0x02, 0x00}, {0x00, 0x00, 0x20, 0x00}, 0x20} }, {"ATtiny11", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00, 0x04, 0x00}, 0x20} }, {"ATtiny12", {0x00, 0xD7, 0xA0, 0x01}, {0x42, 0x12, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, {0x00, 0x00}, {0x00, 0x40}, {0x00, 0x00, 0x04, 0x00}, 0x20} }, {"ATtiny15", {0x00, 0xD7, 0xA0, 0x01}, {0x42, 0x13, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, {0x00, 0x00}, {0x00, 0x40}, {0x00, 0x00, 0x04, 0x00}, 0x20} }, {"ATtiny22", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0xff, 0xff, 0x00, 0xff, {0x00, 0x00}, {0x00, 0x80}, {0x00, 0x00, 0x08, 0x00}, 0x20} }, {"ATtiny26", {0x04, 0xD7, 0xA0, 0x01}, {0x42, 0x21, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0xff, 0xff, 0xff, 0xff, {0x00, 0x20}, {0x00, 0x80}, {0x00, 0x00, 0x08, 0x00}, 0x20} }, {"ATtiny28", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x22, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00, 0x08, 0x00}, 0x20} }, {"ATmega8", {0x04, 0xD7, 0xA0, 0x01}, {0x42, 0x70, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0xff, 0xff, 0xff, 0xff, {0x00, 0x40}, {0x02, 0x00}, {0x00, 0x00, 0x20, 0x00}, 0x20} }, {"ATmega323", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x90, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0xff, 0xff, 0xff, 0xff, {0x00, 0x80}, {0x04, 0x00}, {0x00, 0x00, 0x80, 0x00}, 0x20} }, {"ATmega32", {0x04, 0xD7, 0xA0, 0x00}, {0x42, 0x91, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0xff, 0xff, 0xff, 0xff, {0x00, 0x80}, {0x04, 0x00}, {0x00, 0x00, 0x80, 0x00}, 0x20} }, // FIXME: add mega64 {"ATmega161", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, {0x00, 0x80}, {0x02, 0x00}, {0x00, 0x00, 0x40, 0x00}, 0x20} }, {"ATmega163", {0x00, 0xD7, 0xA0, 0x00}, {0x42, 0x81, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0xff, 0xff, 0xff, 0xff, {0x00, 0x80}, {0x02, 0x00}, {0x00, 0x00, 0x40, 0x00}, 0x20} }, {"ATmega16", {0x04, 0xD7, 0xA0, 0x00}, {0x42, 0x82, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0xff, 0xff, 0xff, 0xff, {0x00, 0x80}, {0x02, 0x00}, {0x00, 0x00, 0x40, 0x00}, 0x20} }, {"ATmega162", {0x04, 0xD7, 0xA0, 0x00}, {0x42, 0x83, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x03, 0xff, 0xff, 0xff, 0xff, {0x00, 0x80}, {0x02, 0x00}, {0x00, 0x00, 0x40, 0x00}, 0x20} }, {"ATmega169", {0x04, 0xD7, 0xA0, 0x01}, {0x42, 0x84, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x03, 0xff, 0xff, 0xff, 0xff, {0x00, 0x80}, {0x02, 0x00}, {0x00, 0x00, 0x40, 0x00}, 0x20} }, {"ATmega103", {0x00, 0xA0, 0xD7, 0x00}, {0x42, 0xb1, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, {0x01, 0x00}, {0x10, 0x00}, {0x00, 0x02, 0x00, 0x00}, 0x20} }, {"ATmega128", {0x08, 0xD7, 0xA0, 0x00}, {0x42, 0xb2, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x03, 0xff, 0xff, 0xff, 0xff, {0x01, 0x00}, {0x10, 0x00}, {0x00, 0x02, 0x00, 0x00}, 0x20} }, // FIXME: add at86rf401, at89s51, at89s52 {"", {0,0,0,0},{0,0,0,0, 0,0,0,0, 0,0,0,0, 0, {0}, {0}, {0}, 0}} }; /* Get a stk500 parameter value */ TByte TStk500::ReadParam(TByte param) { TByte buf[0x80]; TByte rd_param[] = { 0x41, param, 0x20 }; TByte rd_param_reply[] = { 0x14, '?', 0x10 }; memcpy(buf, rd_param, sizeof(rd_param)); Send(buf, sizeof(rd_param), sizeof(rd_param_reply)); if ((buf[0] != rd_param_reply[0]) || (buf[2] != rd_param_reply[2])) { throw Error_Device ("Failed to read parameter", pNodename); } return buf[1]; } /* Set a stk500 parameter value */ void TStk500::WriteParam(TByte param, TByte val) { TByte buf[0x80]; TByte wr_param[] = { 0x40, param, val, 0x20 }; TByte wr_param_reply[] = { 0x14, 0x10 }; memcpy(buf, wr_param, sizeof(wr_param)); Send(buf, sizeof(wr_param), sizeof(wr_param_reply)); if (memcmp(buf, wr_param_reply, sizeof(wr_param_reply)) != 0) { throw Error_Device ("Failed to write parameter", pNodename); } } /* Read byte from active segment at address addr. */ TByte TStk500::ReadByte(TAddr addr) { TByte val = 0xff; if (segment == SEG_FUSE) { switch (addr) { case AVR_FUSE_LOW_ADDR: if (TestFeatures(AVR_FUSE_RD)) val = ReadFuseLowBits(); else Info (1, "Cannot read low fuse bits on this device. " "Returning 0xff\n"); break; case AVR_FUSE_HIGH_ADDR: if (TestFeatures(AVR_FUSE_HIGH)) val = ReadFuseHighBits(); else Info (1, "Cannot read high fuse bits on this device. " "Returning 0xff\n"); break; case AVR_CAL_ADDR: if (TestFeatures(AVR_CAL_RD)) val = ReadCalFuseBits(0); else Info (1, "Cannot read calibration byte on this device. " "Returning 0xff\n"); break; case AVR_LOCK_ADDR: val = ReadLockBits(); break; case AVR_FUSE_EXT_ADDR: if (TestFeatures(AVR_FUSE_EXT)) val = ReadFuseExtBits(); else Info (1, "Cannot read extended fuse bits on this device. " "Returning 0xff\n"); break; } } else { /* FIXME: TRoth/2002-05-29: This is still broken. If flash or eeprom changes after the calling ReadMem(), you won't ever see the change. */ // Xbow: the original STK500 version reads all 128K of Atmega memory // before checking. This takes ~15sec on the mib510. This version reads // a 256 byte page. If a new 256 byte page is needed then it retreives // it from the mib510 if (read_buffer[segment] == NULL) { page = addr >> 8; //page number read_buffer[segment] = new TByte[GetSegmentSize()]; //create buffer for data ReadMemPage(addr & 0xfff00); //read the page } int new_page = addr >> 8; if (new_page != page){ page = new_page; ReadMemPage(addr & 0xfff00); } val = read_buffer[segment][addr]; } return val; } /* Write byte to active segment */ void TStk500::WriteByte(TAddr addr, TByte byte, bool flush_buffer) { if (segment == SEG_FUSE) { switch (addr) { case AVR_FUSE_LOW_ADDR: if (TestFeatures(AVR_FUSE_RD)) WriteFuseLowBits(byte); else Info (1, "Cannot write low fuse bits on this device.\n"); break; case AVR_FUSE_HIGH_ADDR: if (TestFeatures(AVR_FUSE_HIGH)) WriteFuseHighBits(byte); else Info (1, "Cannot write high fuse bits on this device.\n"); break; case AVR_CAL_ADDR: /* Calibration byte is always readonly. */ break; case AVR_LOCK_ADDR: WriteLockBits(byte); break; case AVR_FUSE_EXT_ADDR: if (TestFeatures(AVR_FUSE_EXT)) WriteFuseExtBits(byte); else Info (1, "Cannot read extended fuse bits on this device.\n"); break; } } else { if (write_buffer[segment] == NULL) { write_buffer[segment] = new TByte[GetSegmentSize()]; minaddr = GetSegmentSize(); memset(write_buffer[segment], 0xff, GetSegmentSize()); } if (addr > maxaddr) maxaddr = addr; if (addr < minaddr) minaddr = addr; write_buffer[segment][addr] = byte; if (flush_buffer) { FlushWriteBuffer(); } } } void TStk500::FlushWriteBuffer(){ TByte buf[0x200]; int wordsize; TAddr addr; TByte seg; const TByte *pgsz; int pagesize; if (segment == SEG_FLASH) { wordsize = 2; seg = Flash; } else { wordsize = 1; seg = EEPROM; } pgsz = prg_part[desired_part].params.pagesize; pagesize = (pgsz[0]) << 8 + pgsz[1]; if (pagesize == 0) { pagesize = 128; } EnterProgrammingMode(); addr = 0; for (unsigned int addr=minaddr; addr> 8) & 0xff; Send(buf, sizeof(SetAddress), sizeof(SetAddress_Reply)); if (memcmp(buf, SetAddress_Reply, sizeof(SetAddress_Reply)) != 0) { throw Error_Device ("[FWB 1] Device is not responding correctly.", pNodename); } memcpy(buf, WriteMemory, sizeof(WriteMemory)); buf[1] = pagesize >> 8; buf[2] = pagesize & 0xff; buf[3] = seg; memcpy(buf+sizeof(WriteMemory), write_buffer[segment]+addr, pagesize); memcpy(buf+sizeof(WriteMemory)+pagesize, CmdStopByte, sizeof(CmdStopByte)); Send(buf, sizeof(WriteMemory)+pagesize+sizeof(CmdStopByte), sizeof(WriteMemory_Reply)); if (memcmp(buf, WriteMemory_Reply, sizeof(WriteMemory_Reply)) != 0) { throw Error_Device ("[FWB 2] Device is not responding correctly.", pNodename); } } LeaveProgrammingMode(); } /* Chip Erase */ void TStk500::ChipErase(){ TByte buf[100]; EnterProgrammingMode(); memcpy(buf, EraseDevice, sizeof(EraseDevice)); Send(buf, sizeof(EraseDevice), sizeof(EraseDevice_Reply)); if (memcmp(buf, EraseDevice_Reply, sizeof(EraseDevice_Reply)) != 0) { throw Error_Device ("[CE] Device is not responding correctly.", pNodename); } LeaveProgrammingMode(); } TByte TStk500::ReadLockFuseBits() { TByte cmd[] = { 0x58, 0x00, 0x00, 0x00 }; return UniversalCmd(cmd); } /* ReadLockBits tries to return the lock bits in a uniform order, despite the differences in different AVR versions. The goal is to get the lock bits into this order: x x BLB12 BLB11 BLB02 BLB01 LB2 LB1 For devices that don't support a boot block, the BLB bits will be 1. */ TByte TStk500::ReadLockBits() { TByte rbits = 0xFF; if (TestFeatures(AVR_LOCK_BOOT)) { /* x x BLB12 BLB11 BLB02 BLB01 LB2 LB1 */ rbits = ReadLockFuseBits(); } else if (TestFeatures(AVR_LOCK_RD76)) { rbits = ReadLockFuseBits(); /* LB1 LB2 x x x x x x -> 1 1 1 1 1 1 LB2 LB1 */ rbits = ((rbits >> 7) & 1) | ((rbits >> 5) & 1) | 0xFC; } else if (TestFeatures(AVR_LOCK_RD12)) { rbits = ReadLockFuseBits(); /* x x x x x LB2 LB1 x -> 1 1 1 1 1 1 LB2 LB1 */ rbits = ((rbits >> 1) & 3) | 0xFC; } else { /* if its signature returns 0,1,2 then say it's locked. */ EnterProgrammingMode(); ReadSignature(); LeaveProgrammingMode(); if (vendor_code == 0 && part_family == 1 && part_number == 2) { rbits = 0xFC; } else { throw Error_Device ("ReadLockBits failed: are you sure this device " "has lock bits?", pNodename); } } return rbits; } TByte TStk500::ReadCalFuseBits(int addr) { TByte cmd[] = { 0xc8, 0x00, addr, 0x00 }; return UniversalCmd(cmd); } TByte TStk500::ReadFuseLowBits() { TByte cmd[] = { 0x50, 0x00, 0x00, 0x00 }; return UniversalCmd(cmd); } TByte TStk500::ReadFuseHighBits() { TByte cmd[] = { 0x58, 0x08, 0x00, 0x00 }; return UniversalCmd(cmd); } TByte TStk500::ReadFuseExtBits() { TByte cmd[] = { 0x50, 0x08, 0x00, 0x00 }; return UniversalCmd(cmd); } void TStk500::WriteLockFuseBits(TByte bits) { TByte cmd[] = { 0xac, 0xff, 0xff, bits }; UniversalCmd(cmd); } void TStk500::WriteFuseLowBits(TByte bits) { TByte cmd[] = { 0xac, 0xa0, 0xff, bits }; UniversalCmd(cmd); } void TStk500::WriteFuseHighBits(TByte bits) { TByte cmd[] = { 0xac, 0xa8, 0xff, bits }; UniversalCmd(cmd); } void TStk500::WriteFuseExtBits(TByte bits) { TByte cmd[] = { 0xac, 0xa4, 0xff, bits }; UniversalCmd(cmd); } /* 0 = program (clear bit), 1 = leave unchanged bit 0 = LB1 bit 1 = LB2 bit 2 = BLB01 bit 3 = BLB02 bit 4 = BLB11 bit 5 = BLB12 bit 6 = 1 (reserved) bit 7 = 1 (reserved) */ void TStk500::WriteLockBits(TByte bits) { TByte wbits; if (TestFeatures(AVR_LOCK_BOOT)) { /* x x BLB12 BLB11 BLB02 BLB01 LB2 LB1 */ wbits = bits; } else if (TestFeatures(AVR_LOCK_RD76)) { /* x x x x x x LB2 LB1 -> LB1 LB2 1 1 1 1 1 1 */ wbits = ((bits << 7) & 0x80) | ((bits << 5) & 0x40) | 0x3f; } else if (TestFeatures(AVR_LOCK_RD12)) { /* x x x x x x LB2 LB1 -> 1 1 1 1 1 LB2 LB1 1 */ wbits = ((bits << 1) & 0x06) | 0xF9; } else { Info (0, "WriteLockBits failed: are you sure this device has lock bits?"); return; } WriteLockFuseBits(wbits); } void TStk500::Initialize() { TByte buf[100]; TByte vmajor; TByte vminor; TByte num_ext_parms = 3; bool bMIB510 = false; //----------------- XBOW mod for MIB510, cmd MIB510 to control RS232 lines---- if (bMIB510 = strcmp(GetCmdParam("-dprog"), "mib510") == 0) { int itry= 5; //try 5 times while (itry > 0){ itry--; memcpy(buf, IspMode, sizeof(IspMode)); buf[8] = 1; SendOnly(buf, sizeof(IspMode)); try { Send(buf, sizeof(IspMode), sizeof(IspMode_Reply), 1); if (memcmp(buf, IspMode_Reply, sizeof(IspMode_Reply)) == 0) itry = 0; } catch (Error_Device e) { } } memcpy(buf, IspMode, sizeof(IspMode)); buf[8] = 1; Send(buf, sizeof(IspMode), sizeof(IspMode_Reply)); if (memcmp(buf, IspMode_Reply, sizeof(IspMode_Reply)) != 0) { throw Error_Device ("Device is not responding correctly.",pNodename); } } //----------------------------------------------------------------------------- memcpy(buf, pSTK500, sizeof(pSTK500)); Send(buf, sizeof(pSTK500), sizeof(pSTK500_Reply)); if (memcmp(buf, pSTK500_Reply, sizeof(pSTK500_Reply)) != 0) { throw Error_Device ("[VP 1] Device is not responding correctly.", pNodename); } memcpy(buf, &prg_part[desired_part].params, sizeof(prg_part[desired_part].params)); Send(buf, sizeof(prg_part[desired_part].params), sizeof(DeviceParam_Reply)); if (memcmp(buf, DeviceParam_Reply, sizeof(DeviceParam_Reply)) != 0) { throw Error_Device ("[VP 2] Device is not responding correctly.", pNodename); } memcpy(buf, SWminor, sizeof(SWminor)); Send(buf, sizeof(SWminor), sizeof(SWminor_Reply)); vminor = buf[1]; memcpy(buf, SWmajor, sizeof(SWmajor)); Send(buf, sizeof(SWmajor), sizeof(SWmajor_Reply)); vmajor = buf[1]; if (bMIB510){ printf ("Firmware Version: %c.%c\n", vmajor, vminor); return; } printf ("Firmware Version: %d.%d\n", vmajor, vminor); #if 0 if (! ((vmajor == 1 && vminor >= 7) || (vmajor > 1))) throw Error_Device ("Need STK500 firmware version 1.7 or newer.", pNodename); #endif if ((vmajor == 1 && vminor >= 14) || (vmajor > 1)) num_ext_parms = 4; buf[0] = 0x45; buf[1] = num_ext_parms; memcpy(buf+2, &prg_part[desired_part].ext_params, num_ext_parms); buf[num_ext_parms+2] = 0x20; Send(buf, num_ext_parms+3, sizeof(ExtDevParams_Reply)); if (memcmp(buf, ExtDevParams_Reply, sizeof(ExtDevParams_Reply)) != 0) { throw Error_Device ("[VP 3] Device is not responding correctly.", pNodename); } } void TStk500::Cleanup() { TByte buf[100]; //----------------- XBOW mod for MIB510, cmd MIB510 to release RS232 lines if (strcmp(GetCmdParam("-dprog"), "mib510") == 0) { memcpy(buf, IspMode, sizeof(IspMode)); buf[8] = 0; Send(buf, sizeof(IspMode), sizeof(IspMode_Reply)); if (memcmp(buf, IspMode_Reply, sizeof(IspMode_Reply)) != 0) { throw Error_Device ("Device is not responding correctly.",pNodename); } } } void TStk500::EnterProgrammingMode() { TByte buf[100]; memcpy(buf, EnterPgmMode, sizeof(EnterPgmMode)); Send(buf, sizeof(EnterPgmMode), sizeof(EnterPgmMode_Reply)); if (memcmp(buf, EnterPgmMode_Reply, sizeof(EnterPgmMode_Reply)) != 0) { throw Error_Device ("Failed to enter programming mode.", pNodename); } } void TStk500::LeaveProgrammingMode() { TByte buf[100]; memcpy(buf, LeavePgmMode, sizeof(LeavePgmMode)); Send(buf, sizeof(LeavePgmMode), sizeof(LeavePgmMode_Reply)); if (memcmp(buf, LeavePgmMode_Reply, sizeof(LeavePgmMode_Reply)) != 0) { throw Error_Device ("[LPM] Device is not responding correctly.", pNodename); } } /* TRoth/2002-05-28: A Universal Command seems to be just the 4 bytes of an SPI command. I'm basing this on my interpretation of the doc/README.stk500 and Table 129 of the mega128 datasheet (page 300). */ TByte TStk500::UniversalCmd(TByte cmd[]) { TByte buf[6] = { 0x56, 0x00, 0x00, 0x00, 0x00, 0x20 }; memcpy(buf+1, cmd, 4); EnterProgrammingMode(); /* Expected response is { 0x14, , 0x10 } */ Send(buf, sizeof(buf), 3); LeaveProgrammingMode(); if ((buf[0] != 0x14) || (buf[2] != 0x10)) { throw Error_Device ("[UC] Device is not responding correctly.", pNodename); } return buf[1]; } void TStk500::ReadSignature() { TByte buf[100]; memcpy(buf, GetSignature, sizeof(GetSignature)); Send(buf, sizeof(GetSignature), sizeof(GetSignature_Reply)); vendor_code = buf[1]; part_family = buf[2]; part_number = buf[3]; } //mib510: read 256 bytes of flash memory starting at addr void TStk500::ReadMemPage(TAddr addr){ TByte buf[0x200]; int wordsize; TByte seg; if (segment == SEG_FLASH) { wordsize = 2; seg = Flash; } else if (segment == SEG_EEPROM) { wordsize = 1; seg = EEPROM; } else { throw Error_Device ("TStk500::ReadMemPage() called for invalid segment.",pNodename); } EnterProgrammingMode(); memcpy(buf, SetAddress, sizeof(SetAddress)); buf[1] = (addr/wordsize) & 0xff; buf[2] = ((addr/wordsize) >> 8) & 0xff; Send(buf, sizeof(SetAddress), sizeof(SetAddress_Reply)); if (memcmp(buf, SetAddress_Reply, sizeof(SetAddress_Reply)) != 0) { throw Error_Device ("Device is not responding correctly.",pNodename); } memcpy(buf, ReadMemory, sizeof(ReadMemory)); buf[3] = seg; Send(buf, sizeof(ReadMemory), 2+0x100); memcpy(read_buffer[segment]+addr, buf+1, 0x100); LeaveProgrammingMode(); } void TStk500::ReadMem(){ TByte buf[0x200]; int wordsize; TAddr addr; TByte seg; if (segment == SEG_FLASH) { wordsize = 2; seg = Flash; } else if (segment == SEG_EEPROM) { wordsize = 1; seg = EEPROM; } else { throw Error_Device ("TStk500::ReadMem() called for invalid segment.",pNodename); } read_buffer[segment] = new TByte[GetSegmentSize()]; EnterProgrammingMode(); addr = 0; for (unsigned int addr=0; addr> 8) & 0xff; Send(buf, sizeof(SetAddress), sizeof(SetAddress_Reply)); if (memcmp(buf, SetAddress_Reply, sizeof(SetAddress_Reply)) != 0) { throw Error_Device ("[RM] Device is not responding correctly.", pNodename); } memcpy(buf, ReadMemory, sizeof(ReadMemory)); buf[3] = seg; Send(buf, sizeof(ReadMemory), 2+0x100); memcpy(read_buffer[segment]+addr, buf+1, 0x100); } LeaveProgrammingMode(); } static TByte convert_voltage (const char *val) { char *endptr; double v = strtod (val, &endptr); if (endptr == val) throw Error_Device ("Bad voltage value."); if (v > 6.0) throw Error_Device ("Voltages can not be greater than 6.0 volts"); if (v < 0.0) throw Error_Device ("Voltages can not be less the 0.0 volts"); TByte res = (int)(v * 10.01); return res; } TStk500::TStk500() { /* Select Part by name */ desired_part=-1; const char* desired_partname = GetCmdParam("-dpart"); pNodename = GetCmdParam("-dhost"); if (desired_partname!=NULL) { int j; for (j=0; prg_part[j].name[0] != 0; j++){ if (strcasecmp (desired_partname, prg_part[j].name)==0){ desired_part = j; break; } } if (prg_part[j].name[0]==0){throw Error_Device("-dpart: Invalid name.",pNodename);} } else { int i = 0; Info(0, "No part specified, supported devices are:\n"); while (prg_part[i].name[0] != '\0') Info(0, "%s\n", prg_part[i++].name); throw Error_Device(""); } /* Force parallel programming mode if the use wants it, otherwise, just use what the device prefers (usually serial programming). */ if (GetCmdParam("-dparallel",false)) prg_part[desired_part].params.progtype = STK500_PROG_PARALLEL; Initialize(); /* Handle Reading/Writing ARef voltage level. */ const char *val; if ((val=GetCmdParam("--wr_vtg", true))) { TByte value = convert_voltage (val); printf ("Setting VTarget to %d.%d V\n", value/10, value%10); TByte aref = ReadParam(0x85); if (aref > value) { printf ("Setting ARef == VTarget to avoid damaging device.\n"); WriteParam(0x85, value); } WriteParam(0x84, value); } if ((val=GetCmdParam("--wr_aref", true))) { TByte value = convert_voltage (val); printf ("Setting ARef to %d.%d V\n", value/10, value%10); TByte vtg = ReadParam(0x84); if (vtg < value) { printf ("Setting ARef == VTarget to avoid damaging device.\n"); WriteParam(0x84, value); } WriteParam(0x85, value); } if (GetCmdParam("--rd_vtg", false)) { TByte val = ReadParam(0x84); printf("VTarget = %d.%d V\n", val/10, val%10); } if (GetCmdParam("--rd_aref", false)) { TByte val = ReadParam(0x85); printf("ARef = %d.%d V\n", val/10, val%10); } EnterProgrammingMode(); ReadSignature(); LeaveProgrammingMode(); Identify(); write_buffer[SEG_FLASH] = NULL; write_buffer[SEG_EEPROM] = NULL; read_buffer[SEG_FLASH] = NULL; read_buffer[SEG_EEPROM] = NULL; maxaddr = 0; } TStk500::~TStk500() { Cleanup(); delete write_buffer[SEG_FLASH]; delete write_buffer[SEG_EEPROM]; delete read_buffer[SEG_FLASH]; delete read_buffer[SEG_EEPROM]; } tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/Stk500.h000066400000000000000000000153331206361226500231770ustar00rootroot00000000000000// $Id: Stk500.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: Stk500.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 2001, 2002, 2003 Daniel Berntsson * * 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 * **************************************************************************** */ /* Stk500.h, Daniel Berntsson, 2001 */ #ifndef __STK500 #define __STK500 #include "Global.h" #include "Serial.h" #include "Avr.h" #define STK500_PROG_SERIAL 0 #define STK500_PROG_PARALLEL 1 struct SPrgParams { const TByte cmd; // Always 0x42 (Cmnd_STK_SET_DEVICE) const TByte devicecode; // Device code (as defined above) const TByte revision; // Device revision. Not used, set to 0. TByte progtype; // Defines which Program modes are supported: // 0 - Both parallel/Hi-V and serial mode // 1 - Parallel/Hi-V only const TByte parmode; // Defines if the device has a full parallel // interface or a pseudo parallel programming // interface: 0 - pseudo; 1 - full const TByte polling; // Defines if polling may be used during SPI // access: 0 - no; 1 - yes const TByte selftimed; // Defines if prog insns are self timed: // 0 - no; 1 - yes const TByte lockbytes; // Number of lock bytes. Currently not used // but should be set for future compat. const TByte fusebytes; // Number of fuse bytes. Currently not used // but should be set for future compat. const TByte flashpollval1; // FLASH polling value. See dev data sheet. const TByte flashpollval2; // FLASH polling value. Same as val1. const TByte eeprompollval1; // EEPROM polling value 1 (P1). See dev data // sheet. const TByte eeprompollval2; // EEPROM polling value 2 (P2). See dev data // sheet. // The following multi-byte values are sent to the stk500 in big endian // order. const TByte pagesize[2]; // Page size in bytes for pagemode parts const TByte eepromsize[2]; // Size of eeprom in bytes. const TByte flashsize[4]; // Size of FLASH in bytes. const TByte sync; // Always 0x20 (Sync_CRC_EOP) }; /* Set the Extened Device Programming parameters. In the future, this may require more than 3 arguments. */ struct SPrgExtDevParams { const TByte eepgsz; // EEPROM page size in bytes. const TByte sig_pagel; // Defines which port pin the PAGEL signal // should be mapped on to. e.g. 0xD7 maps to // PORTD7. const TByte sig_bs2; // Defines which port pin the BS2 signal // should be mapped on to. const TByte reset_disable; // Req'd by firmware version 1.14. It's a // flag which tells whether a device uses the // reset pin as an IO pin. Where 0x00 = // Dedicated RESET pin, 0x01 = Can't rely on // RESET pin for going into programming // mode. Not needed for SPI programming // though. }; class TStk500: public TAvr, TSerial { private: struct SPrgPart{ const char *name; struct SPrgExtDevParams ext_params; struct SPrgParams params; }; int desired_part; int page; /* page address for reading memory, mib510 */ const char *pNodename; TByte* write_buffer[2]; /* buffer for SEG_FLASH and SEG_EEPROM */ TByte* read_buffer[2]; /* buffer for SEG_FLASH and SEG_EEPROM */ TAddr maxaddr; TAddr minaddr; static const TByte IspMode[]; //XBOW MIB510 static const TByte IspMode_Reply[]; //XBOW MIB510 static const TByte pSTK500[]; static const TByte pSTK500_Reply[]; static const TByte SWminor[]; static const TByte SWminor_Reply[]; static const TByte SWmajor[]; static const TByte SWmajor_Reply[]; static const TByte EnterPgmMode[]; static const TByte EnterPgmMode_Reply[]; static const TByte LeavePgmMode[]; static const TByte LeavePgmMode_Reply[]; static const TByte SetAddress[]; static const TByte SetAddress_Reply[]; static const TByte EraseDevice[]; static const TByte EraseDevice_Reply[]; static const TByte WriteMemory[]; static const TByte WriteMemory_Reply[]; static const TByte ReadMemory[]; static const TByte ReadMemory_Reply[]; static const TByte GetSignature[]; static const TByte GetSignature_Reply[]; static const TByte CmdStopByte[]; static const TByte ReplyStopByte[]; static const TByte Flash; static const TByte EEPROM; static const TByte DeviceParam_Reply[]; static const TByte ExtDevParams_Reply[]; static SPrgPart prg_part[]; void Initialize(); void Cleanup(); void EnterProgrammingMode(); void LeaveProgrammingMode(); void ReadSignature(); void ReadMem(); void ReadMemPage(TAddr addr); TByte ReadParam(TByte param); void WriteParam(TByte param, TByte val); TByte UniversalCmd(TByte cmd[]); TByte ReadLockFuseBits(); TByte ReadCalFuseBits(int addr); TByte ReadFuseLowBits(); TByte ReadFuseHighBits(); TByte ReadFuseExtBits(); TByte ReadLockBits(); void WriteLockFuseBits(TByte bits); void WriteFuseLowBits(TByte bits); void WriteFuseHighBits(TByte bits); void WriteFuseExtBits(TByte bits); public: /* Read byte from active segment at address addr. */ TByte ReadByte(TAddr addr); /* Write byte to active segment at address addr */ void WriteByte(TAddr addr, TByte byte, bool flush_buffer=true); void FlushWriteBuffer(); /* Chip Erase */ void ChipErase(); /* Write lock bits */ void WriteLockBits(TByte bits); TStk500(); ~TStk500(); }; #endif tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/Terminal.C000066400000000000000000000116141206361226500237150ustar00rootroot00000000000000// $Id: Terminal.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: Terminal.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002, 2003 Uros Platise * * 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 * **************************************************************************** */ /* Terminal.C Device Terminal Access Uros Platise (c) 1999 */ #include "config.h" #include #include #include "Global.h" #include "Error.h" #include "Terminal.h" #include "MotIntl.h" void TTerminal::Run() { #if 0 enableAvr (); if (isDeviceLocked ()) { char q[20]; printf ("Do you want to clear it and enter normal mode now " "(enter y for yes): "); if (fgets (q,sizeof(q),stdin)) { if (q[0]=='y') { chipErase (); } else { return; } } } #endif printf ("Entering the AVR Terminal. ?-help, q-quit.\n"); char cmd[32]; TAddr addr = 0; do { try { printf("avr> "); scanf("%s",cmd); if (!strcmp(cmd,"?")){ printf ("AVR Terminal supports the following commands:\n" "ul fileName - uploads data from Motorola/Intel format.\n" "vf fileName - verify file with memory\n" /* "dl fileName[%segs] - downloads data to Micro Output File\n" */ "ls - list segments\n" "ss seg_name - set segment\n" "ce - perform chip erase\n" "rd addr - read a byte from a segment\n" "wr addr byte - write a 'byte' to a segment at address 'addr'\n" "du addr - dump segment starting at address 'addr'\n" ", - continue segment dump\n" "\n" "Written by Uros Platise (c) 1997-1999, uros.platise@ijs.si\n"); } else if (!strcmp(cmd,"ul")) { char inputFileName [64]; scanf ("%s", inputFileName); try{ motintl.Read(inputFileName, true, false); } catch (Error_Device& errDev) { errDev.print (); } catch (Error_C) { perror ("Error"); } } else if (!strcmp(cmd,"vf")) { char inputFileName [64]; scanf ("%s", inputFileName); try{ motintl.Read(inputFileName, false, true); } catch (Error_Device& errDev) { errDev.print (); } catch (Error_C) { perror ("Error"); } } /* else if (cmd=="dl") { char outputFileName [64]; scanf ("%s", outputFileName); try { TAout outAout (outputFileName, "wt"); download (&outAout); } catch (Error_Device& errDev) { errDev.print (); } catch (Error_C) { perror ("Error"); } } */ else if (!strcmp(cmd,"ls")){ printf("Available segments: "); const char* seg_name; for (unsigned i=0; (seg_name=device->ListSegment(i))!=NULL; i++){ if (i>0){printf(", ");} printf("%s", seg_name); } putchar('\n'); } else if (!strcmp(cmd,"ss")){ char seg_name [32]; scanf("%s", seg_name); if (!device->SetSegment(seg_name)){ printf("Invalid segment: `%s'\n", seg_name); } else {addr=0;} } else if (!strcmp(cmd,"ce")){ device->ChipErase(); } /* else if (cmd=="rsb") { unsigned char byte = readLockBits (); printf ("Lock and Fuse bits status: %.2x\n", byte ); } else if (cmd=="wlb") { string mode; cin >> mode; if (mode=="wr") { writeLockBits (lckPrg); } else if (mode=="rdwr") { writeLockBits (lckPrgRd); } else { printf ("Invalid parameter: %s\n", mode); } } */ else if (!strcmp(cmd,"rd")){ scanf ("%x", &addr); printf("%s: $%.2x\n", device->TellActiveSegment(), device->ReadByte(addr)); } else if (!strcmp(cmd,"wr")){ unsigned x; scanf("%x%x", &addr, &x); device->WriteByte(addr, TByte(x)); } else if (!strcmp(cmd,"du")){ scanf ("%x", &addr); goto list_contents; } else if (!strcmp(cmd,",")){ list_contents: int i,l=0; while (l<4) { printf ("%s $%.5x: ", device->TellActiveSegment(), addr); for (i=0; i<0x8; addr++,i++) printf ("%.2x ", device->ReadByte(addr)); printf ("\n"); l++; } } else printf ("Ouch.\n"); } catch (Error_MemoryRange){Info(0,"Out of memory range!\n");putchar('\n');} } while (strcmp(cmd,"q")); } tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/Terminal.h000066400000000000000000000024211206361226500237560ustar00rootroot00000000000000// $Id: Terminal.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: Terminal.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002 Uros Platise * * 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 * **************************************************************************** */ /* Terminal.h, Uros Platise (c) 1999 */ #ifndef __TERMINAL #define __TERMINAL class TTerminal{ public: void Run(); TTerminal(){} ~TTerminal(){} }; #endif tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/cygwinp.C000066400000000000000000000062271206361226500236260ustar00rootroot00000000000000// $Id: cygwinp.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: cygwinp.C,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002 Uros Platise * * 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 * **************************************************************************** */ #if defined(__CYGWIN__) #include "config.h" #include #include #include "cygwinp.h" #include "DAPA.h" #include unsigned char inb(unsigned short port) { unsigned char t; asm volatile ("in %1, %0" : "=a" (t) : "d" (port)); return t; } void outb(unsigned char value, unsigned short port) { asm volatile ("out %1, %0" : : "d" (port), "a" (value) ); } int ioperm(unsigned short port, int num, int enable) { if (enable) { // Only try to use directio under Windows NT/2000. OSVERSIONINFO ver_info; memset(&ver_info, 0, sizeof(ver_info)); ver_info.dwOSVersionInfoSize = sizeof(ver_info); if (! GetVersionEx(&ver_info)) return -1; else if (ver_info.dwPlatformId == VER_PLATFORM_WIN32_NT) { HANDLE h = CreateFile("\\\\.\\giveio", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (h == INVALID_HANDLE_VALUE) return -1; CloseHandle(h); } } return 0; } bool cygwinp_delay_usec(long t) { static bool perf_counter_checked = false; static bool use_perf_counter = false; static LARGE_INTEGER freq; if (! perf_counter_checked) { if (QueryPerformanceFrequency(&freq)) use_perf_counter = true; perf_counter_checked = true; } if (! use_perf_counter) return false; else { LARGE_INTEGER now; LARGE_INTEGER finish; QueryPerformanceCounter(&now); finish.QuadPart = now.QuadPart + (t * freq.QuadPart) / 1000000; do { QueryPerformanceCounter(&now); } while (now.QuadPart < finish.QuadPart); return true; } } /* cfmakeraw() defined in Cygwin's libc for Cygwin >= 1.7.2 */ # if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 2) int cfmakeraw(struct termios *termios_p) { termios_p->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP |INLCR|IGNCR|ICRNL|IXON); termios_p->c_oflag &= ~OPOST; termios_p->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN); termios_p->c_cflag &= ~(CSIZE|PARENB); termios_p->c_cflag |= CS8; return 0; } #endif #endif tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/cygwinp.h000066400000000000000000000030511206361226500236630ustar00rootroot00000000000000// $Id: cygwinp.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: cygwinp.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002 Uros Platise * * 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 unsigned char inb(unsigned short port); void outb(unsigned char value, unsigned short port); int ioperm(unsigned short port, int num, int enable); /* cfmakeraw() is declared in termios.h in Cygwin >= 1.7.2 */ #ifdef __CYGWIN__ #include # if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 2) int cfmakeraw(struct termios *termios_p); #endif #endif bool cygwinp_delay_usec(long t); tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/parport.h000066400000000000000000000374411206361226500237040ustar00rootroot00000000000000// $Id: parport.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: parport.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1999, 2000, 2001, 2002 Uros Platise * * 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 * **************************************************************************** */ /* Id: parport.h,v 1.1 1998/05/17 10:57:52 andrea Exp andrea */ #ifndef _PARPORT_H_ #define _PARPORT_H_ /* Start off with user-visible constants */ /* Maximum of 8 ports per machine */ #define PARPORT_MAX 8 /* Magic numbers */ #define PARPORT_IRQ_NONE -1 #define PARPORT_DMA_NONE -1 #define PARPORT_IRQ_AUTO -2 #define PARPORT_DMA_AUTO -2 #define PARPORT_DISABLE -2 #define PARPORT_IRQ_PROBEONLY -3 #define PARPORT_CONTROL_STROBE 0x1 #define PARPORT_CONTROL_AUTOFD 0x2 #define PARPORT_CONTROL_INIT 0x4 #define PARPORT_CONTROL_SELECT 0x8 #define PARPORT_CONTROL_INTEN 0x10 #define PARPORT_CONTROL_DIRECTION 0x20 #define PARPORT_STATUS_ERROR 0x8 #define PARPORT_STATUS_SELECT 0x10 #define PARPORT_STATUS_PAPEROUT 0x20 #define PARPORT_STATUS_ACK 0x40 #define PARPORT_STATUS_BUSY 0x80 /* Type classes for Plug-and-Play probe. */ typedef enum { PARPORT_CLASS_LEGACY = 0, /* Non-IEEE1284 device */ PARPORT_CLASS_PRINTER, PARPORT_CLASS_MODEM, PARPORT_CLASS_NET, PARPORT_CLASS_HDC, /* Hard disk controller */ PARPORT_CLASS_PCMCIA, PARPORT_CLASS_MEDIA, /* Multimedia device */ PARPORT_CLASS_FDC, /* Floppy disk controller */ PARPORT_CLASS_PORTS, PARPORT_CLASS_SCANNER, PARPORT_CLASS_DIGCAM, PARPORT_CLASS_OTHER, /* Anything else */ PARPORT_CLASS_UNSPEC /* No CLS field in ID */ } parport_device_class; /* The "modes" entry in parport is a bit field representing the following * modes. * Note that PARPORT_MODE_PCECPEPP is for the SMC EPP+ECP mode which is NOT * 100% compatible with EPP. */ #define PARPORT_MODE_PCSPP 0x0001 #define PARPORT_MODE_PCPS2 0x0002 #define PARPORT_MODE_PCEPP 0x0004 #define PARPORT_MODE_PCECP 0x0008 #define PARPORT_MODE_PCECPEPP 0x0010 #define PARPORT_MODE_PCECR 0x0020 /* ECR Register Exists */ #define PARPORT_MODE_PCECPPS2 0x0040 /* The rest is for the kernel only */ #ifdef __KERNEL__ #include #include #include #include #include #define PARPORT_NEED_GENERIC_OPS /* Define this later. */ struct parport; struct pc_parport_state { unsigned int ctr; unsigned int ecr; }; struct parport_state { union { struct pc_parport_state pc; /* ARC has no state. */ /* AX uses same state information as PC */ void *misc; } u; }; struct parport_operations { void (*write_data)(struct parport *, unsigned char); unsigned char (*read_data)(struct parport *); void (*write_control)(struct parport *, unsigned char); unsigned char (*read_control)(struct parport *); unsigned char (*frob_control)(struct parport *, unsigned char mask, unsigned char val); void (*write_econtrol)(struct parport *, unsigned char); unsigned char (*read_econtrol)(struct parport *); unsigned char (*frob_econtrol)(struct parport *, unsigned char mask, unsigned char val); void (*write_status)(struct parport *, unsigned char); unsigned char (*read_status)(struct parport *); void (*write_fifo)(struct parport *, unsigned char); unsigned char (*read_fifo)(struct parport *); void (*change_mode)(struct parport *, int); void (*release_resources)(struct parport *); int (*claim_resources)(struct parport *); void (*epp_write_data)(struct parport *, unsigned char); unsigned char (*epp_read_data)(struct parport *); void (*epp_write_addr)(struct parport *, unsigned char); unsigned char (*epp_read_addr)(struct parport *); int (*epp_check_timeout)(struct parport *); size_t (*epp_write_block)(struct parport *, void *, size_t); size_t (*epp_read_block)(struct parport *, void *, size_t); int (*ecp_write_block)(struct parport *, void *, size_t, void (*fn)(struct parport *, void *, size_t), void *); int (*ecp_read_block)(struct parport *, void *, size_t, void (*fn)(struct parport *, void *, size_t), void *); void (*init_state)(struct parport_state *); void (*save_state)(struct parport *, struct parport_state *); void (*restore_state)(struct parport *, struct parport_state *); void (*enable_irq)(struct parport *); void (*disable_irq)(struct parport *); void (*interrupt)(int, void *, struct pt_regs *); void (*inc_use_count)(void); void (*dec_use_count)(void); void (*fill_inode)(struct inode *inode, int fill); }; struct parport_device_info { parport_device_class class; const char *class_name; const char *mfr; const char *model; const char *cmdset; const char *description; }; /* Each device can have two callback functions: * 1) a preemption function, called by the resource manager to request * that the driver relinquish control of the port. The driver should * return zero if it agrees to release the port, and nonzero if it * refuses. Do not call parport_release() - the kernel will do this * implicitly. * * 2) a wake-up function, called by the resource manager to tell drivers * that the port is available to be claimed. If a driver wants to use * the port, it should call parport_claim() here. */ /* A parallel port device */ struct pardevice { const char *name; struct parport *port; int (*preempt)(void *); void (*wakeup)(void *); void *private; void (*irq_func)(int, void *, struct pt_regs *); unsigned int flags; struct pardevice *next; struct pardevice *prev; struct parport_state *state; /* saved status over preemption */ struct wait_queue *wait_q; unsigned long int time; unsigned long int timeslice; unsigned int waiting; struct pardevice *waitprev; struct pardevice *waitnext; }; /* Directory information for the /proc interface */ struct parport_dir { struct proc_dir_entry *entry; /* Directory /proc/parport/X */ struct proc_dir_entry *irq; /* .../irq */ struct proc_dir_entry *devices; /* .../devices */ struct proc_dir_entry *hardware; /* .../hardware */ struct proc_dir_entry *probe; /* .../autoprobe */ char name[4]; }; /* A parallel port */ struct parport { unsigned long base; /* base address */ unsigned int size; /* IO extent */ const char *name; int irq; /* interrupt (or -1 for none) */ int dma; unsigned int modes; struct pardevice *devices; struct pardevice *cad; /* port owner */ struct pardevice *waithead; struct pardevice *waittail; struct parport *next; unsigned int flags; struct parport_dir pdir; struct parport_device_info probe_info; struct parport_operations *ops; void *private_data; /* for lowlevel driver */ int number; /* port index - the `n' in `parportn' */ spinlock_t pardevice_lock; spinlock_t waitlist_lock; rwlock_t cad_lock; /* PCI parallel I/O card support. */ unsigned long base_hi; /* base address (hi - ECR) */ }; /* parport_register_port registers a new parallel port at the given address (if * one does not already exist) and returns a pointer to it. This entails * claiming the I/O region, IRQ and DMA. * NULL is returned if initialisation fails. */ struct parport *parport_register_port(unsigned long base, int irq, int dma, struct parport_operations *ops); /* Unregister a port. */ extern void parport_unregister_port(struct parport *port); /* parport_in_use returns nonzero if there are devices attached to a port. */ #define parport_in_use(x) ((x)->devices != NULL) /* Put a parallel port to sleep; release its hardware resources. Only possible * if no devices are registered. */ extern void parport_quiesce(struct parport *); /* parport_enumerate returns a pointer to the linked list of all the ports * in this machine. */ struct parport *parport_enumerate(void); /* parport_register_device declares that a device is connected to a port, and * tells the kernel all it needs to know. * pf is the preemption function (may be NULL for no callback) * kf is the wake-up function (may be NULL for no callback) * irq_func is the interrupt handler (may be NULL for no interrupts) * handle is a user pointer that gets handed to callback functions. */ struct pardevice *parport_register_device(struct parport *port, const char *name, int (*pf)(void *), void (*kf)(void *), void (*irq_func)(int, void *, struct pt_regs *), int flags, void *handle); /* parport_unregister unlinks a device from the chain. */ extern void parport_unregister_device(struct pardevice *dev); /* parport_claim tries to gain ownership of the port for a particular driver. * This may fail (return non-zero) if another driver is busy. If this * driver has registered an interrupt handler, it will be enabled. */ extern int parport_claim(struct pardevice *dev); /* parport_claim_or_block is the same, but sleeps if the port cannot be claimed. Return value is 1 if it slept, 0 normally and -errno on error. */ extern int parport_claim_or_block(struct pardevice *dev); /* parport_release reverses a previous parport_claim. This can never fail, * though the effects are undefined (except that they are bad) if you didn't * previously own the port. Once you have released the port you should make * sure that neither your code nor the hardware on the port tries to initiate * any communication without first re-claiming the port. * If you mess with the port state (enabling ECP for example) you should * clean up before releasing the port. */ extern void parport_release(struct pardevice *dev); /* parport_yield relinquishes the port if it would be helpful to other * drivers. The return value is the same as for parport_claim. */ extern __inline__ int parport_yield(struct pardevice *dev) { unsigned long int timeslip = (jiffies - dev->time); if ((dev->port->waithead == NULL) || (timeslip < dev->timeslice)) return 0; parport_release(dev); return parport_claim(dev); } /* parport_yield_blocking is the same but uses parport_claim_or_block * instead of parport_claim. */ extern __inline__ int parport_yield_blocking(struct pardevice *dev) { unsigned long int timeslip = (jiffies - dev->time); if ((dev->port->waithead == NULL) || (timeslip < dev->timeslice)) return 0; parport_release(dev); return parport_claim_or_block(dev); } /* * Lowlevel drivers _can_ call this support function to handle irqs. */ extern __inline__ void parport_generic_irq(int irq, struct parport *port, struct pt_regs *regs) { read_lock(&port->cad_lock); if (!port->cad) goto out_unlock; if (port->cad->irq_func) port->cad->irq_func(irq, port->cad->private, regs); else printk(KERN_ERR "%s: irq%d happened with irq_func NULL " "with %s as cad!\n", port->name, irq, port->cad->name); out_unlock: read_unlock(&port->cad_lock); } /* Flags used to identify what a device does. */ #define PARPORT_DEV_TRAN 0 /* WARNING !! DEPRECATED !! */ #define PARPORT_DEV_LURK (1<<0) /* WARNING !! DEPRECATED !! */ #define PARPORT_DEV_EXCL (1<<1) /* Need exclusive access. */ #define PARPORT_FLAG_COMA (1<<0) #define PARPORT_FLAG_EXCL (1<<1) /* EXCL driver registered. */ extern void parport_parse_irqs(int, const char *[], int irqval[]); extern int parport_ieee1284_nibble_mode_ok(struct parport *, unsigned char); extern int parport_wait_peripheral(struct parport *, unsigned char, unsigned char); /* Prototypes from parport_procfs */ extern int parport_proc_init(void); extern void parport_proc_cleanup(void); extern int parport_proc_register(struct parport *pp); extern int parport_proc_unregister(struct parport *pp); extern void dec_parport_count(void); extern void inc_parport_count(void); extern int parport_probe(struct parport *port, char *buffer, int len); extern void parport_probe_one(struct parport *port); extern void (*parport_probe_hook)(struct parport *port); /* If PC hardware is the only type supported, we can optimise a bit. */ #if (defined(CONFIG_PARPORT_PC) || defined(CONFIG_PARPORT_PC_MODULE)) && !(defined(CONFIG_PARPORT_AX) || defined(CONFIG_PARPORT_AX_MODULE)) && !(defined(CONFIG_PARPORT_ARC) || defined(CONFIG_PARPORT_ARC_MODULE)) && !defined(CONFIG_PARPORT_OTHER) #undef PARPORT_NEED_GENERIC_OPS #include #define parport_write_data(p,x) parport_pc_write_data(p,x) #define parport_read_data(p) parport_pc_read_data(p) #define parport_write_control(p,x) parport_pc_write_control(p,x) #define parport_read_control(p) parport_pc_read_control(p) #define parport_frob_control(p,m,v) parport_pc_frob_control(p,m,v) #define parport_write_econtrol(p,x) parport_pc_write_econtrol(p,x) #define parport_read_econtrol(p) parport_pc_read_econtrol(p) #define parport_frob_econtrol(p,m,v) parport_pc_frob_econtrol(p,m,v) #define parport_write_status(p,v) parport_pc_write_status(p,v) #define parport_read_status(p) parport_pc_read_status(p) #define parport_write_fifo(p,v) parport_pc_write_fifo(p,v) #define parport_read_fifo(p) parport_pc_read_fifo(p) #define parport_change_mode(p,m) parport_pc_change_mode(p,m) #define parport_release_resources(p) parport_pc_release_resources(p) #define parport_claim_resources(p) parport_pc_claim_resources(p) #define parport_epp_write_data(p,x) parport_pc_write_epp(p,x) #define parport_epp_read_data(p) parport_pc_read_epp(p) #define parport_epp_write_addr(p,x) parport_pc_write_epp_addr(p,x) #define parport_epp_read_addr(p) parport_pc_read_epp_addr(p) #define parport_epp_check_timeout(p) parport_pc_check_epp_timeout(p) #endif #ifdef PARPORT_NEED_GENERIC_OPS /* Generic operations vector through the dispatch table. */ #define parport_write_data(p,x) (p)->ops->write_data(p,x) #define parport_read_data(p) (p)->ops->read_data(p) #define parport_write_control(p,x) (p)->ops->write_control(p,x) #define parport_read_control(p) (p)->ops->read_control(p) #define parport_frob_control(p,m,v) (p)->ops->frob_control(p,m,v) #define parport_write_econtrol(p,x) (p)->ops->write_econtrol(p,x) #define parport_read_econtrol(p) (p)->ops->read_econtrol(p) #define parport_frob_econtrol(p,m,v) (p)->ops->frob_econtrol(p,m,v) #define parport_write_status(p,v) (p)->ops->write_status(p,v) #define parport_read_status(p) (p)->ops->read_status(p) #define parport_write_fifo(p,v) (p)->ops->write_fifo(p,v) #define parport_read_fifo(p) (p)->ops->read_fifo(p) #define parport_change_mode(p,m) (p)->ops->change_mode(p,m) #define parport_release_resources(p) (p)->ops->release_resources(p) #define parport_claim_resources(p) (p)->ops->claim_resources(p) #define parport_epp_write_data(p,x) (p)->ops->epp_write_data(p,x) #define parport_epp_read_data(p) (p)->ops->epp_read_data(p) #define parport_epp_write_addr(p,x) (p)->ops->epp_write_addr(p,x) #define parport_epp_read_addr(p) (p)->ops->epp_read_addr(p) #define parport_epp_check_timeout(p) (p)->ops->epp_check_timeout(p) #endif #endif /* __KERNEL__ */ #endif /* _PARPORT_H_ */ tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/ppdev.h000066400000000000000000000115341206361226500233260ustar00rootroot00000000000000// $Id: ppdev.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: ppdev.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 1998-9 Tim Waugh * * 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 * **************************************************************************** */ /* * linux/drivers/char/ppdev.h * * User-space parallel port device driver (header file). * * Added PPGETTIME/PPSETTIME, Fred Barnes, 1999. */ #define PP_MAJOR 99 #define PP_IOCTL 'p' /* Set mode for read/write (e.g. IEEE1284_MODE_EPP) */ #define PPSETMODE _IOW(PP_IOCTL, 0x80, int) /* Read status */ #define PPRSTATUS _IOR(PP_IOCTL, 0x81, unsigned char) #define PPWSTATUS OBSOLETE__IOW(PP_IOCTL, 0x82, unsigned char) /* Read/write control */ #define PPRCONTROL _IOR(PP_IOCTL, 0x83, unsigned char) #define PPWCONTROL _IOW(PP_IOCTL, 0x84, unsigned char) struct ppdev_frob_struct { unsigned char mask; unsigned char val; }; #define PPFCONTROL _IOW(PP_IOCTL, 0x8e, struct ppdev_frob_struct) /* Read/write data */ #define PPRDATA _IOR(PP_IOCTL, 0x85, unsigned char) #define PPWDATA _IOW(PP_IOCTL, 0x86, unsigned char) /* Read/write econtrol (not used) */ #define PPRECONTROL OBSOLETE__IOR(PP_IOCTL, 0x87, unsigned char) #define PPWECONTROL OBSOLETE__IOW(PP_IOCTL, 0x88, unsigned char) /* Read/write FIFO (not used) */ #define PPRFIFO OBSOLETE__IOR(PP_IOCTL, 0x89, unsigned char) #define PPWFIFO OBSOLETE__IOW(PP_IOCTL, 0x8a, unsigned char) /* Claim the port to start using it */ #define PPCLAIM _IO(PP_IOCTL, 0x8b) /* Release the port when you aren't using it */ #define PPRELEASE _IO(PP_IOCTL, 0x8c) /* Yield the port (release it if another driver is waiting, * then reclaim) */ #define PPYIELD _IO(PP_IOCTL, 0x8d) /* Register device exclusively (must be before PPCLAIM). */ #define PPEXCL _IO(PP_IOCTL, 0x8f) /* Data line direction: non-zero for input mode. */ #define PPDATADIR _IOW(PP_IOCTL, 0x90, int) /* Negotiate a particular IEEE 1284 mode. */ #define PPNEGOT _IOW(PP_IOCTL, 0x91, int) /* Set control lines when an interrupt occurs. */ #define PPWCTLONIRQ _IOW(PP_IOCTL, 0x92, unsigned char) /* Clear (and return) interrupt count. */ #define PPCLRIRQ _IOR(PP_IOCTL, 0x93, int) /* Set the IEEE 1284 phase that we're in (e.g. IEEE1284_PH_FWD_IDLE) */ #define PPSETPHASE _IOW(PP_IOCTL, 0x94, int) /* Set and get port timeout (struct timeval's) */ #define PPGETTIME _IOR(PP_IOCTL, 0x95, struct timeval) #define PPSETTIME _IOW(PP_IOCTL, 0x96, struct timeval) /* IEEE1284 modes: Nibble mode, byte mode, ECP, ECPRLE and EPP are their own 'extensibility request' values. Others are special. 'Real' ECP modes must have the IEEE1284_MODE_ECP bit set. */ #define IEEE1284_MODE_NIBBLE 0 #define IEEE1284_MODE_BYTE (1<<0) #define IEEE1284_MODE_COMPAT (1<<8) #define IEEE1284_MODE_BECP (1<<9) /* Bounded ECP mode */ #define IEEE1284_MODE_ECP (1<<4) #define IEEE1284_MODE_ECPRLE (IEEE1284_MODE_ECP | (1<<5)) #define IEEE1284_MODE_ECPSWE (1<<10) /* Software-emulated */ #define IEEE1284_MODE_EPP (1<<6) #define IEEE1284_MODE_EPPSL (1<<11) /* EPP 1.7 */ #define IEEE1284_MODE_EPPSWE (1<<12) /* Software-emulated */ #define IEEE1284_DEVICEID (1<<2) /* This is a flag */ #define IEEE1284_EXT_LINK (1<<14) /* This flag causes the * extensibility link to * be requested, using * bits 0-6. */ /* For the benefit of parport_read/write, you can use these with * parport_negotiate to use address operations. They have no effect * other than to make parport_read/write use address transfers. */ #define IEEE1284_ADDR (1<<13) /* This is a flag */ #define IEEE1284_DATA 0 /* So is this */ /* IEEE1284 phases */ enum ieee1284_phase { IEEE1284_PH_FWD_DATA, IEEE1284_PH_FWD_IDLE, IEEE1284_PH_TERMINATE, IEEE1284_PH_NEGOTIATION, IEEE1284_PH_HBUSY_DNA, IEEE1284_PH_REV_IDLE, IEEE1284_PH_HBUSY_DAVAIL, IEEE1284_PH_REV_DATA, IEEE1284_PH_ECP_SETUP, IEEE1284_PH_ECP_FWD_TO_REV, IEEE1284_PH_ECP_REV_TO_FWD }; tinyos-tools-1.4.2/tools/platforms/mica/uisp/src/timeradd.h000066400000000000000000000042331206361226500237770ustar00rootroot00000000000000// $Id: timeradd.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ /* * $Id: timeradd.h,v 1.4 2006-12-12 18:23:01 vlahan Exp $ * **************************************************************************** * * uisp - The Micro In-System Programmer for Atmel AVR microcontrollers. * Copyright (C) 2002, 2003 Marek Michalkiewicz * * 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 * **************************************************************************** */ /* I'm not sure how portable is to use these macros (they are available on my system, but not mentioned in the glibc manual I have). Similar macros are provided here for systems that don't have them. -MM */ #include #ifndef timeradd #define timeradd(_a, _b, _res) \ do { \ (_res)->tv_usec = (_a)->tv_usec + (_b)->tv_usec; \ (_res)->tv_sec = (_a)->tv_sec + (_b)->tv_sec; \ if ((_res)->tv_usec >= 1000000) \ { \ (_res)->tv_usec -= 1000000; \ (_res)->tv_sec++; \ } \ } while (0) #endif #ifndef timersub #define timersub(_a, _b, _res) \ do { \ (_res)->tv_usec = (_a)->tv_usec - (_b)->tv_usec; \ (_res)->tv_sec = (_a)->tv_sec - (_b)->tv_sec; \ if ((_res)->tv_usec < 0) { \ (_res)->tv_usec += 1000000; \ (_res)->tv_sec--; \ } \ } while (0) #endif #ifndef timercmp #define timercmp(_a, _b, _cmp) \ (((_a)->tv_sec == (_b)->tv_sec) ? \ ((_a)->tv_usec _cmp (_b)->tv_usec) : \ ((_a)->tv_sec _cmp (_b)->tv_sec)) #endif tinyos-tools-1.4.2/tools/platforms/mica/uisp/uisp.1.in000066400000000000000000000120471206361226500227170ustar00rootroot00000000000000.TH UISP "1" "@DATE@" "uisp version @VERSION@" "User Commands" .SH NAME uisp \- manual page for uisp .SH SYNOPSIS .B uisp [\fIOPTION\fR].. \fI-dprog=TYPE\fR \fI-dpart=AT90XXX\fR \fI--FUNCTION\fR.. [\fIif=SOURCE\fR] [\fIof=DEST\fR] .SH DESCRIPTION .IP .SS "Programming Methods:" \fB\-dprog\fR=avr910|pavr|stk500 .RS .TP avr910 Standard Atmel Serial Programmer/Atmel Low Cost Programmer .TP pavr http://www.avr1.org/pavr/pavr.html .TP stk500 Atmel STK500 .RE .HP \fB\-dprog\fR=dapa|stk200|abb|avrisp|bsd|fbprg|dt006|maxi|dasa|dasa2 .RS .TP dapa Direct AVR Parallel Access .TP stk200 Parallel Starter Kit STK200, STK300 .TP abb Altera ByteBlasterMV Parallel Port Download Cable .TP avrisp Atmel AVR ISP (?) .TP bsd http://www.bsdhome.com/avrdude/ (parallel) .TP fbprg http://ln.com.ua/~real/avreal/adapters.html (parallel) .TP dt006 http://www.dontronics.com/dt006.html (parallel) .TP maxi Investment Technologies Maxi (parallel) .TP dasa serial (RESET=RTS SCK=DTR MOSI=TXD MISO=CTS) .TP dasa2 serial (RESET=!TXD SCK=RTS MOSI=DTR MISO=CTS) .RE .SS "Target Device Selection:" .TP \fB\-dpart\fR=part Set target abbreviated name or number. For some programmers, if \fB\-dpart\fR is not given programmer's supported devices are listed. Set \fB\-dpart\fR=\fIauto\fR for auto-select. Auto-select does not work with all programmers, so it is recommended to always specify a target device explicitly. .SS "Parallel Device Settings:" .TP \fB\-dlpt\fR=address|device name specify device name (Linux ppdev, FreeBSD ppi, serial) or direct I/O parallel port address (0x378, 0x278, 0x3BC) .TP \fB\-dno\-poll\fR Program without data polling (a little slower) .TP \fB\-dno\-retry\fR Disable retries of program enable command .TP \fB\-dvoltage\fR=value Set timing specs according to the power supply voltage in [V] (default 3.0) .TP \fB\-dt_sck\fR=time Set minimum SCK high/low time in micro-seconds (default 5) .TP \fB\-dt_wd_flash\fR=time Set FLASH maximum write delay time in micro-seconds .TP \fB\-dt_wd_eeprom\fR=time Set EEPROM maximum write delay time in micro-seconds .TP \fB\-dt_reset\fR=time Set reset inactive (high) time in micro-seconds .TP \fB\-dinvert\fR=[sck[,mosi[,miso[,reset]]]]] Invert specified lines Use \fB\-v\fR=\fI3\fR option to see current settings. .SS "Atmel Low Cost Programmer Serial Device Settings:" .TP \fB\-dserial\fR=device name Set serial interface as /dev/ttyS* (default /dev/avr) .TP \fB\-dspeed\fR=1200|2400|4800|9600|19200|38400|57600|115200 Set speed of the serial interface (default 19200) .SS "Stk500 specific options:" .TP \fB\-dparallel\fR Use Hi-V parallel programming instead of serial (default is serial) .TP \fB\-\-rd_aref\fR Read the ARef Voltage. Note that due to a bug in the stk500 firmware, the read value is sometimes off by 0.1 from the actual value measured with a volt meter. .TP \fB\-\-rd_vtg\fR Read the Vtarget Voltage. Note that due to a bug in the stk500 firmware, the read value is sometimes off by 0.1 from the actual value measured with a volt meter. .TP \fB\-\-wr_aref\fR=value Set the ARef Voltage. Valid values are 0.0 to 6.0 volts in 0.1 volt increments. Value can not be larger than the VTarget value. .TP \fB\-\-wr_vtg\fR=value Set the VTarget Voltage. Valid values are 0.0 to 6.0 volts in 0.1 volt increments. Value can not be smaller than the ARef value. .SS "Functions:" .TP \fB\-\-upload\fR Upload "input_file" to the AVR memory. .TP \fB\-\-verify\fR Verify "input_file" (processed after the \fB\-\-upload\fR opt.) .TP \fB\-\-download\fR Download AVR memory to "output_file" or stdout. .TP \fB\-\-erase\fR Erase device. .TP \fB\-\-segment\fR=flash|eeprom|fuse Set active segment (auto-select for AVA Motorola output) .SS "Fuse/Lock Bit Operations:" .TP \fB\-\-rd_fuses\fR Read all fuses and print values to stdout .TP \fB\-\-wr_fuse_l\fR=byte Write fuse low byte .TP \fB\-\-wr_fuse_h\fR=byte Write fuse high byte .TP \fB\-\-wr_fuse_e\fR=byte Write fuse extended byte .TP \fB\-\-wr_lock\fR=byte Write lock bits. Argument is a byte where each bit is: Bit5 -> blb12 Bit4 -> blb11 Bit3 -> blb02 Bit2 -> blb01 Bit1 -> lb2 Bit0 -> lb1 .TP \fB\-\-lock\fR Write lock bits [old method; deprecated]. .SS "Files:" .TP \fBif\fR=filename Input file for the \fB\-\-upload\fR and \fB\-\-verify\fR functions in Motorola S-records (S1 or S2) or 16 bit Intel format .TP \fBof\fR=filename Output file for the \fB\-\-download\fR function in Motorola S-records format, default is standard output .SS "Other Options:" .TP \fB\-v\fR=level Set verbose level (-v equals \fB\-v\fR=\fI2\fR, min/max: 0/4, default 1) .TP \fB\-\-hash\fR=perbytes Print hash (default is 32 bytes) .TP \fB\-\-help\fR \fB\-h\fR Help .TP \fB\-\-version\fR Print version information .TP \fB\-\-terminal\fR Invoke shell-like terminal .SH "AUTHOR" Written by Uros Platise. .SH "REPORTING BUGS" Report bugs to .SH "SEE ALSO" http://savannah.nongnu.org/download/uisp/ .SH "COPYRIGHT" (c) 1997-1999 Uros Platise, 2000-2003 Marek Michalkiewicz .PP uisp is free software, covered by the GNU General Public License. You are welcome to change it and/or distribute copies of it under the conditions of the GNU General Public License. tinyos-tools-1.4.2/tools/platforms/mica/uisp/uisp.spec.in000066400000000000000000000043361206361226500235130ustar00rootroot00000000000000## -*- mode: rpm-spec; -*- ## ## $Id: uisp.spec.in,v 1.4 2006-12-12 18:23:00 vlahan Exp $ ## ## @configure_input@ ## %define uispVersion @VERSION@ Summary: Universal In-System Programmer for Atmel AVR and 8051. Name: uisp Version: %{uispVersion} Release: 1 License: GPL Group: Development/Tools URL: http://freesoftware.fsf.org/download/uisp Source: http://freesoftware.fsf.org/download/uisp/uisp-%{uispVersion}.tar.gz Buildroot: %{_tmppath}/%{name}-%{version}-root %description Uisp is utility for downloading/uploading programs to AVR devices. Can also be used for some Atmel 8051 type devices. In addition, uisp can erase the device, write lock bits, verify and set the active segment. For use with the following hardware to program the devices: pavr http://avr.jpk.co.nz/pavr/pavr.html stk500 Atmel STK500 dapa Direct AVR Parallel Access stk200 Parallel Starter Kit STK200, STK300 abb Altera ByteBlasterMV Parallel Port Download Cable avrisp Atmel AVR ISP (?) bsd http://www.bsdhome.com/avrprog/ (parallel) fbprg http://ln.com.ua/~real/avreal/adapters.html (parallel) dt006 http://www.dontronics.com/dt006.html (parallel) dasa serial (RESET=RTS SCK=DTR MOSI=TXD MISO=CTS) dasa2 serial (RESET=!TXD SCK=RTS MOSI=DTR MISO=CTS) %prep %setup -q %build ./configure --prefix=/usr make %install rm -rf $RPM_BUILD_ROOT make prefix=$RPM_BUILD_ROOT/%{_prefix} install %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) %doc ChangeLog AUTHORS CHANGES CHANGES.old COPYING INSTALL TODO kernel pavr %{_prefix}/bin/uisp %changelog * Sun May 26 2002 Theodore A. Roth - Integrated in to build system. * Sat Apr 20 2002 Theodore A. Roth - Update to new 20020420 release. * Fri Apr 18 2002 Theodore A. Roth - Added patch to fix reading cal byte on tiny15. (from Alexander Popov) * Mon Apr 08 2002 Theodore A. Roth - Added patch to fix reading signature bytes. - Added patch to fix some problems with srec uploading. * Tue Mar 17 2002 Theodore A. Roth - Added kernel/ and pavr/ directories to %doc files. * Tue Mar 17 2002 Theodore A. Roth - Initial spec file. tinyos-tools-1.4.2/tools/platforms/msp430/000077500000000000000000000000001206361226500204015ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/msp430/Makefile.am000066400000000000000000000000651206361226500224360ustar00rootroot00000000000000AUTOMAKE_OPTIONS = foreign SUBDIRS = motelist pybsl tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/000077500000000000000000000000001206361226500216645ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/AUTHORS000066400000000000000000000007161206361226500227400ustar00rootroot00000000000000Andreas Koepke Based on bslsh code by Dirk Jagdmann and Michael Stickel Based on bsl.py by Chris Liechti , which includes fixes from Colin Domoney and maybe others Based on the application note slaa96d.pdf by Volker Rzehak and Stefan Schauer, published by Texas Instruments, Inc. Based on the application note slaa089d.pdf by Stefan Schauer, published by Texas Instruments, Inc. tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/COPYING000066400000000000000000000030011206361226500227110ustar00rootroot00000000000000 Copyright (c) Technische Universitaet Berlin All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the Technische Universitaet Berlin nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/ChangeLog000066400000000000000000000000001206361226500234240ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/INSTALL000066400000000000000000000227661206361226500227320ustar00rootroot00000000000000This software is tested only on Linux with 2.6.11 or higher kernel, on CPUs using little endian byte order (like Intel and ARM in little endian mode). It needs the GNU C++ compiler g++ version 3 or higher. See README for further assumptions. 1. ./configure You may want to specify a cross compiler: ./configure CXX=name-your-cross-compiler-g++ 2. make 3. cp src/bsltool to destination -------------------------------------------------------------------------------------- Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. (Caching is disabled by default to prevent problems with accidental use of stale cache files.) If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You only need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not support the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the `--target=TYPE' option to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc will cause the specified gcc to be used as the C compiler (unless it is overridden in the site shell script). `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/Makefile.am000066400000000000000000000004211206361226500237150ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## Makefile.am MAINTAINERCLEANFILES = aclocal.m4 config.h.in configure Makefile.in *~ SUBDIRS = config src . # #bin_PROGRAMS=mobfwtest #mobfwtest_SOURCES= #mobfwtest_LDADD=src/libmobfwtest.la tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/Makefile.in000066400000000000000000000452641206361226500237440ustar00rootroot00000000000000# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = aclocal.m4 config.h.in configure Makefile.in *~ SUBDIRS = config src . # all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ cd $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) cd $(top_srcdir) && $(AUTOHEADER) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d $(distdir) || mkdir $(distdir) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile config.h installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-lzma dist-shar dist-tarZ dist-zip distcheck distclean \ distclean-generic distclean-hdr distclean-tags distcleancheck \ distdir distuninstallcheck dvi dvi-am html html-am info \ info-am install install-am install-data install-data-am \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am #bin_PROGRAMS=mobfwtest #mobfwtest_SOURCES= #mobfwtest_LDADD=src/libmobfwtest.la # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/NEWS000066400000000000000000000000001206361226500223510ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/README000066400000000000000000000035461206361226500225540ustar00rootroot00000000000000bsltool is a C++ based tool that can reset, erase and flash msp430 CPUs with a bootstrap loader of version 1.6 or higher. Your should be able to use it for telosb, tmote sky and eyesIFXv2 node platforms. bsltool provides only a very basic set of functions, it can not be used for debug purposes like the full blown bsl.py. For the basic tasks like reset, erase and flash an Intel Hex file it can be used as a drop-in replacement for bsl.py from the mspgcc tool chain or tos-bsl from the tinyos-2 tool chain. On resource limited devices like the NSLU2 it delivers higher performance and allows you to flash images on more than two nodes at once, which can lead to a significant gain in time compared with the python version. Due to the reduced CPU load its impact on other running processes is much lower than the python version. However, this is a specialized tool and may not work under all conditions. You should make sure that you have: 1. the GNU C++ compiler like g++ to compile the tool 2. little endian byte order on the executing host 3. \n (new line) appearing somewhere at the end of the line in the intel hex file 4. the image to flash as an Intel Hex (TI text is not yet supported) 5. msp430 CPUs with a bootstrap loader version higher or equal to 1.6 Trouble Shooting: If your host needs something different for 2. and 4.: tell me. 1. Node should be supported (telosb, eyesIFXv2) Can not flash (but erase and transmit password work): Maybe the flash memory of the node is corrupt. ... to be extended ;-) 2. Unsupported MSP430 MCU - Check BSL version with some other tool - Check schematic assumed by bsl.py and your schematic, if TEST and RESET are swapped implement your own ...Serial (see Serial.h) - Play with --invert-test, --invert-reset ... you are somewhat on your own here. This tool works great for me! Happy flashing, Andreas tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/aclocal.m4000066400000000000000000000776101206361226500235370ustar00rootroot00000000000000# generated automatically by aclocal 1.10.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(AC_AUTOCONF_VERSION, [2.61],, [m4_warning([this file was generated for autoconf 2.61. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.10' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.10.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.10.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 3 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 13 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.60])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) ]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/bootstrap000077500000000000000000000002131206361226500236230ustar00rootroot00000000000000#!/bin/sh set -x aclocal -I config # libtoolize --force --copy aclocal -I config autoheader automake --gnu --add-missing --copy autoconf tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/config.h.in000066400000000000000000000067441206361226500237220ustar00rootroot00000000000000/* config.h.in. Generated from configure.in by autoheader. */ /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `popt' library (-lpopt). */ #undef HAVE_LIBPOPT /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_VERSION_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_POPT_H /* Define to 1 if you have the `select' function. */ #undef HAVE_SELECT /* Define to 1 if stdbool.h conforms to C99. */ #undef HAVE_STDBOOL_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strerror' function. */ #undef HAVE_STRERROR /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_IOCTL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SELECT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_TERMIOS_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if the system has the type `_Bool'. */ #undef HAVE__BOOL /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to the type of arg 1 for `select'. */ #undef SELECT_TYPE_ARG1 /* Define to the type of args 2, 3 and 4 for `select'. */ #undef SELECT_TYPE_ARG234 /* Define to the type of arg 5 for `select'. */ #undef SELECT_TYPE_ARG5 /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME /* Version number of package */ #undef VERSION /* Define for Solaris 2.5.1 so the uint8_t typedef from , , or is not used. If the typedef was allowed, the #define below would cause a syntax error. */ #undef _UINT8_T /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define to the type of an unsigned integer type of width exactly 16 bits if such a type exists and the standard includes do not define it. */ #undef uint16_t /* Define to the type of an unsigned integer type of width exactly 8 bits if such a type exists and the standard includes do not define it. */ #undef uint8_t tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/config/000077500000000000000000000000001206361226500231315ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/config/Makefile.am000066400000000000000000000003411206361226500251630ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## config/Makefile.am MAINTAINERCLEANFILES = Makefile.in config.guess config.sub depcomp \ install-sh ltmain.sh missing \ mkinstalldirs *~ tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/config/Makefile.in000066400000000000000000000200731206361226500252000ustar00rootroot00000000000000# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = config DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in depcomp \ install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in config.guess config.sub depcomp \ install-sh ltmain.sh missing \ mkinstalldirs *~ all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu config/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu config/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/config/depcomp000077500000000000000000000347711206361226500245220ustar00rootroot00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2003-11-08.23 # Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc. # 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, 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. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit 0 ;; -v | --v*) echo "depcomp $scriptversion" exit 0 ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # `libtool' can also be set to `yes' or `no'. if test -z "$depfile"; then base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` dir=`echo "$object" | sed 's,/.*$,/,'` if test "$dir" = "$object"; then dir= fi # FIXME: should be _deps on DOS. depfile="$dir.deps/$base" fi tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1="$dir.libs/$base.lo.d" tmpdepfile2="$dir.libs/$base.d" "$@" -Wc,-MD else tmpdepfile1="$dir$base.o.d" tmpdepfile2="$dir$base.d" "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi if test -f "$tmpdepfile1"; then tmpdepfile="$tmpdepfile1" else tmpdepfile="$tmpdepfile2" fi if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/config/install-sh000077500000000000000000000217701206361226500251440ustar00rootroot00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2004-02-15.20 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # 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}" transformbasename= transform_arg= instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= usage="Usage: $0 [OPTION]... SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 -d DIRECTORIES... In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default. In the second, create the directory path DIR. Options: -b=TRANSFORMBASENAME -c copy source (using $cpprog) instead of moving (using $mvprog). -d create directories instead of installing files. -g GROUP $chgrp installed files to GROUP. -m MODE $chmod installed files to MODE. -o USER $chown installed files to USER. -s strip installed files (using $stripprog). -t=TRANSFORM --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; -c) instcmd=$cpprog shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit 0;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; --version) echo "$0 $scriptversion"; exit 0;; *) # When -d is used, all remaining arguments are directories to create. test -n "$dir_arg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then instcmd=: chmodcmd= else instcmd=$mkdirprog 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 test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -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 test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" || lasterr=$? # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test ! -d "$pathcomp" && { (exit ${lasterr-1}); exit; } fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $instcmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else # If we're going to rename the final executable, determine the name now. if test -z "$transformarg"; then dstfile=`basename "$dst"` else dstfile=`basename "$dst" $transformbasename \ | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename. test -z "$dstfile" && dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 trap '(exit $?); exit' 1 2 13 15 # Move or copy the file name to the temp name $doit $instcmd "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now remove or move aside any old file at destination location. We # try this two ways since rm can't unlink itself on some systems and # the destination file might be busy for other reasons. In this case, # the final cleanup might fail but the new file should still install # successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" fi || { (exit 1); exit; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/config/missing000077500000000000000000000246661206361226500245460ustar00rootroot00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2003-09-02.23 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # 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, 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. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal*) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then # We have makeinfo, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; tar) shift if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 fi # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/configure000077500000000000000000006064121206361226500236040ustar00rootroot00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for cppbsl 0.1. # # Report bugs to . # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell autoconf@gnu.org about your system, echo including any error possibly output before this echo message } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='cppbsl' PACKAGE_TARNAME='cppbsl' PACKAGE_VERSION='0.1' PACKAGE_STRING='cppbsl 0.1' PACKAGE_BUGREPORT='koepke@tkn.tu-berlin.de' ac_unique_file="src" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir localstatedir includedir oldincludedir docdir infodir htmldir dvidir pdfdir psdir libdir localedir mandir DEFS ECHO_C ECHO_N ECHO_T LIBS build_alias host_alias target_alias INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA am__isrc CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE GREP EGREP LIBOBJS LTLIBOBJS' ac_subst_files='' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP CXX CXXFLAGS CCC' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute directory names. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { echo "$as_me: error: Working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures cppbsl 0.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/cppbsl] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of cppbsl 0.1:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-debug=yes/no compile with g++ debug options, default is no --enable-optimize=yes/no compile with g++ optimize options, default is no --enable-prof=yes/no compile with g++ profiling options, default is no Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF cppbsl configure 0.1 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by cppbsl $as_me 0.1, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then set x "$CONFIG_SITE" elif test "x$prefix" != xNONE; then set x "$prefix/share/config.site" "$prefix/etc/config.site" else set x "$ac_default_prefix/share/config.site" \ "$ac_default_prefix/etc/config.site" fi shift for ac_site_file do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in config "$srcdir"/config; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in config \"$srcdir\"/config" >&5 echo "$as_me: error: cannot find install-sh or install.sh in config \"$srcdir\"/config" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. ac_config_headers="$ac_config_headers config.h" am__api_version='1.10' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm -f conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi { echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. test -d ./--version && rmdir ./--version MKDIR_P="$ac_install_sh -d" fi fi { echo "$as_me:$LINENO: result: $MKDIR_P" >&5 echo "${ECHO_T}$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$AWK" && break done { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='cppbsl' VERSION='0.1' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' # Checks for programs. ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # # List of possible output files, starting from the most likely. # The algorithm is not robust to junk in `.', hence go to wildcards (a.*) # only as a last resort. b.out is created by i960 compilers. ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' # # The IRIX 6 linker writes into existing files which may not be # executable, retaining their permissions. Remove them first so a # subsequent execution test works. ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6; } if test -z "$ac_file"; then echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6; } { echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi { echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; } GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi { echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Extract the first word of "grep ggrep" to use in msg output if test -z "$GREP"; then set dummy grep ggrep; ac_prog_name=$2 if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS fi GREP="$ac_cv_path_GREP" if test -z "$GREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 echo "${ECHO_T}$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else # Extract the first word of "egrep" to use in msg output if test -z "$EGREP"; then set dummy egrep; ac_prog_name=$2 if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS fi EGREP="$ac_cv_path_EGREP" if test -z "$EGREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" if test $ac_cv_c_compiler_gnu = yes; then { echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5 echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6; } if test "${ac_cv_prog_gcc_traditional+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_pattern="Autoconf.*'x'" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include Autoconf TIOCGETP _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then ac_cv_prog_gcc_traditional=yes else ac_cv_prog_gcc_traditional=no fi rm -f conftest* if test $ac_cv_prog_gcc_traditional = no; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include Autoconf TCGETA _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then ac_cv_prog_gcc_traditional=yes fi rm -f conftest* fi fi { echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5 echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6; } if test $ac_cv_prog_gcc_traditional = yes; then CC="$CC -traditional" fi fi { echo "$as_me:$LINENO: checking for error_at_line" >&5 echo $ECHO_N "checking for error_at_line... $ECHO_C" >&6; } if test "${ac_cv_lib_error_at_line+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { error_at_line (0, 0, "", 0, "an error occurred"); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_error_at_line=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_error_at_line=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_lib_error_at_line" >&5 echo "${ECHO_T}$ac_cv_lib_error_at_line" >&6; } if test $ac_cv_lib_error_at_line = no; then case " $LIBOBJS " in *" error.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS error.$ac_objext" ;; esac fi { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5 echo $ECHO_N "checking for stdbool.h that conforms to C99... $ECHO_C" >&6; } if test "${ac_cv_header_stdbool_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { _Bool s: 1; _Bool t; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; bool e = &s; char f[(_Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (_Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; _Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; # if defined __xlc__ || defined __GNUC__ /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0 reported by James Lemley on 2005-10-05; see http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html This test is not quite right, since xlc is allowed to reject this program, as the initializer for xlcbug is not one of the forms that C requires support for. However, doing the test right would require a runtime test, and that would make cross-compilation harder. Let us hope that IBM fixes the xlc bug, and also adds support for this kind of constant expression. In the meantime, this test will reject xlc, which is OK, since our stdbool.h substitute should suffice. We also test this with GCC, where it should work, to detect more quickly whether someone messes up the test in the future. */ char digs[] = "0123456789"; int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1); # endif /* Catch a bug in an HP-UX C compiler. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ _Bool q = true; _Bool *pq = &q; int main () { *pq |= q; *pq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdbool_h=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdbool_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5 echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6; } { echo "$as_me:$LINENO: checking for _Bool" >&5 echo $ECHO_N "checking for _Bool... $ECHO_C" >&6; } if test "${ac_cv_type__Bool+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef _Bool ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type__Bool=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type__Bool=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5 echo "${ECHO_T}$ac_cv_type__Bool" >&6; } if test $ac_cv_type__Bool = yes; then cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 _ACEOF fi if test $ac_cv_header_stdbool_h = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_STDBOOL_H 1 _ACEOF fi { echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; } if test "${ac_cv_header_time+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_time=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 echo "${ECHO_T}$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then cat >>confdefs.h <<\_ACEOF #define TIME_WITH_SYS_TIME 1 _ACEOF fi #checks for header files and libraries for ac_header in linux/version.h popt.h fcntl.h inttypes.h stdlib.h sys/ioctl.h sys/time.h termios.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## -------------------------------------- ## ## Report this to koepke@tkn.tu-berlin.de ## ## -------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking for poptGetNextOpt in -lpopt" >&5 echo $ECHO_N "checking for poptGetNextOpt in -lpopt... $ECHO_C" >&6; } if test "${ac_cv_lib_popt_poptGetNextOpt+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpopt $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char poptGetNextOpt (); int main () { return poptGetNextOpt (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_popt_poptGetNextOpt=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_popt_poptGetNextOpt=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_popt_poptGetNextOpt" >&5 echo "${ECHO_T}$ac_cv_lib_popt_poptGetNextOpt" >&6; } if test $ac_cv_lib_popt_poptGetNextOpt = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBPOPT 1 _ACEOF LIBS="-lpopt $LIBS" fi # Checks for typedefs, structures, and compiler characteristics. { echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; } if test "${ac_cv_c_const+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_const=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 echo "${ECHO_T}$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then cat >>confdefs.h <<\_ACEOF #define const _ACEOF fi { echo "$as_me:$LINENO: checking for inline" >&5 echo $ECHO_N "checking for inline... $ECHO_C" >&6; } if test "${ac_cv_c_inline+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_inline=$ac_kw else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 echo "${ECHO_T}$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac { echo "$as_me:$LINENO: checking for uint16_t" >&5 echo $ECHO_N "checking for uint16_t... $ECHO_C" >&6; } if test "${ac_cv_c_uint16_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_c_uint16_t=no for ac_type in 'uint16_t' 'unsigned int' 'unsigned long int' \ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(($ac_type) -1 >> (16 - 1) == 1)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then case $ac_type in uint16_t) ac_cv_c_uint16_t=yes ;; *) ac_cv_c_uint16_t=$ac_type ;; esac else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_uint16_t" != no && break done fi { echo "$as_me:$LINENO: result: $ac_cv_c_uint16_t" >&5 echo "${ECHO_T}$ac_cv_c_uint16_t" >&6; } case $ac_cv_c_uint16_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF #define uint16_t $ac_cv_c_uint16_t _ACEOF ;; esac { echo "$as_me:$LINENO: checking for uint8_t" >&5 echo $ECHO_N "checking for uint8_t... $ECHO_C" >&6; } if test "${ac_cv_c_uint8_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_c_uint8_t=no for ac_type in 'uint8_t' 'unsigned int' 'unsigned long int' \ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(($ac_type) -1 >> (8 - 1) == 1)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then case $ac_type in uint8_t) ac_cv_c_uint8_t=yes ;; *) ac_cv_c_uint8_t=$ac_type ;; esac else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_uint8_t" != no && break done fi { echo "$as_me:$LINENO: result: $ac_cv_c_uint8_t" >&5 echo "${ECHO_T}$ac_cv_c_uint8_t" >&6; } case $ac_cv_c_uint8_t in #( no|yes) ;; #( *) cat >>confdefs.h <<\_ACEOF #define _UINT8_T 1 _ACEOF cat >>confdefs.h <<_ACEOF #define uint8_t $ac_cv_c_uint8_t _ACEOF ;; esac for ac_header in sys/select.h sys/socket.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## -------------------------------------- ## ## Report this to koepke@tkn.tu-berlin.de ## ## -------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking types of arguments for select" >&5 echo $ECHO_N "checking types of arguments for select... $ECHO_C" >&6; } if test "${ac_cv_func_select_args+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else for ac_arg234 in 'fd_set *' 'int *' 'void *'; do for ac_arg1 in 'int' 'size_t' 'unsigned long int' 'unsigned int'; do for ac_arg5 in 'struct timeval *' 'const struct timeval *'; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #ifdef HAVE_SYS_SELECT_H # include #endif #ifdef HAVE_SYS_SOCKET_H # include #endif int main () { extern int select ($ac_arg1, $ac_arg234, $ac_arg234, $ac_arg234, $ac_arg5); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_func_select_args="$ac_arg1,$ac_arg234,$ac_arg5"; break 3 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done done done # Provide a safe default value. : ${ac_cv_func_select_args='int,int *,struct timeval *'} fi { echo "$as_me:$LINENO: result: $ac_cv_func_select_args" >&5 echo "${ECHO_T}$ac_cv_func_select_args" >&6; } ac_save_IFS=$IFS; IFS=',' set dummy `echo "$ac_cv_func_select_args" | sed 's/\*/\*/g'` IFS=$ac_save_IFS shift cat >>confdefs.h <<_ACEOF #define SELECT_TYPE_ARG1 $1 _ACEOF cat >>confdefs.h <<_ACEOF #define SELECT_TYPE_ARG234 ($2) _ACEOF cat >>confdefs.h <<_ACEOF #define SELECT_TYPE_ARG5 ($3) _ACEOF rm -f conftest* for ac_func in select strerror do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # Checks for additional packages and features # optimization features DEFDEBUG="no" # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then enableval=$enable_debug; DEFDEBUG=$enableval fi if test "$DEFDEBUG" = "yes"; then CFLAGS=`echo $CFLAGS | sed -e 's/-O2//g' | sed -e 's/-g//g'` CFLAGS="$CFLAGS -ggdb3" CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-O2//g' | sed -e 's/-g//g'` CXXFLAGS="$CXXFLAGS -ggdb3" fi DEFOPTIMIZE="no" # Check whether --enable-optimize was given. if test "${enable_optimize+set}" = set; then enableval=$enable_optimize; DEFOPTIMIZE=$enableval fi if test "$DEFOPTIMIZE" = "yes"; then CFLAGS=`echo $CFLAGS | sed -e 's/-O2//g' | sed -e 's/-g//g'` CFLAGS="$CFLAGS -O3 -ggdb3 " CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-O2//g' | sed -e 's/-g//g'` CXXFLAGS="$CXXFLAGS -O3 -ggdb3 " fi DEFPROF="no" # Check whether --enable-prof was given. if test "${enable_prof+set}" = set; then enableval=$enable_prof; DEFPROF=$enableval fi if test "$DEFPROF" = "yes"; then CFLAGS=`echo $CFLAGS | sed -e 's/-O2//g' | sed -e 's/-g//g'` CFLAGS="$CFLAGS -O1 -pg" CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-O2//g' | sed -e 's/-g//g'` CXXFLAGS="$CXXFLAGS -O1 -pg" fi # Using the results # ACX_PTHREAD(, AC_MSG_ERROR(Posix threads missing)) LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS" CC="$PTHREAD_CC" # CXX="$CXX $PTHREAD_CFLAGS $LIBS" ac_config_files="$ac_config_files Makefile config/Makefile src/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by cppbsl $as_me 0.1, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ cppbsl config.status 0.1 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "config/Makefile") CONFIG_FILES="$CONFIG_FILES config/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim am__isrc!$am__isrc$ac_delim CYGPATH_W!$CYGPATH_W$ac_delim PACKAGE!$PACKAGE$ac_delim VERSION!$VERSION$ac_delim ACLOCAL!$ACLOCAL$ac_delim AUTOCONF!$AUTOCONF$ac_delim AUTOMAKE!$AUTOMAKE$ac_delim AUTOHEADER!$AUTOHEADER$ac_delim MAKEINFO!$MAKEINFO$ac_delim install_sh!$install_sh$ac_delim STRIP!$STRIP$ac_delim INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim mkdir_p!$mkdir_p$ac_delim AWK!$AWK$ac_delim SET_MAKE!$SET_MAKE$ac_delim am__leading_dot!$am__leading_dot$ac_delim AMTAR!$AMTAR$ac_delim am__tar!$am__tar$ac_delim am__untar!$am__untar$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim DEPDIR!$DEPDIR$ac_delim am__include!$am__include$ac_delim am__quote!$am__quote$ac_delim AMDEP_TRUE!$AMDEP_TRUE$ac_delim AMDEP_FALSE!$AMDEP_FALSE$ac_delim AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim CCDEPMODE!$CCDEPMODE$ac_delim am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim CPP!$CPP$ac_delim CXX!$CXX$ac_delim CXXFLAGS!$CXXFLAGS$ac_delim ac_ct_CXX!$ac_ct_CXX$ac_delim CXXDEPMODE!$CXXDEPMODE$ac_delim am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 86; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$ac_file_inputs $ac_f" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input="Generated from "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; :H) # # CONFIG_HEADER # _ACEOF # Transform confdefs.h into a sed script `conftest.defines', that # substitutes the proper values into config.h.in to produce config.h. rm -f conftest.defines conftest.tail # First, append a space to every undef/define line, to ease matching. echo 's/$/ /' >conftest.defines # Then, protect against being on the right side of a sed subst, or in # an unquoted here document, in config.status. If some macros were # called several times there might be several #defines for the same # symbol, which is useless. But do not sort them, since the last # AC_DEFINE must be honored. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* # These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where # NAME is the cpp macro being defined, VALUE is the value it is being given. # PARAMS is the parameter list in the macro definition--in most cases, it's # just an empty string. ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' ac_dB='\\)[ (].*,\\1define\\2' ac_dC=' ' ac_dD=' ,' uniq confdefs.h | sed -n ' t rset :rset s/^[ ]*#[ ]*define[ ][ ]*// t ok d :ok s/[\\&,]/\\&/g s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p ' >>conftest.defines # Remove the space that was appended to ease matching. # Then replace #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. # (The regexp can be short, since the line contains either #define or #undef.) echo 's/ $// s,^[ #]*u.*,/* & */,' >>conftest.defines # Break up conftest.defines: ac_max_sed_lines=50 # First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" # Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" # Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" # et cetera. ac_in='$ac_file_inputs' ac_out='"$tmp/out1"' ac_nxt='"$tmp/out2"' while : do # Write a here document: cat >>$CONFIG_STATUS <<_ACEOF # First, check the format of the line: cat >"\$tmp/defines.sed" <<\\CEOF /^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def /^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def b :def _ACEOF sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail grep . conftest.tail >/dev/null || break rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines conftest.tail echo "ac_result=$ac_in" >>$CONFIG_STATUS cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then echo "/* $configure_input */" >"$tmp/config.h" cat "$ac_result" >>"$tmp/config.h" if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else rm -f $ac_file mv "$tmp/config.h" $ac_file fi else echo "/* $configure_input */" cat "$ac_result" fi rm -f "$tmp/out12" # Compute $ac_file's index in $config_headers. _am_arg=$ac_file _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/configure.in000066400000000000000000000231531206361226500242010ustar00rootroot00000000000000# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.53) AC_INIT(cppbsl, 0.1, koepke@tkn.tu-berlin.de) AC_CONFIG_AUX_DIR(config) AM_CONFIG_HEADER(config.h) AC_CONFIG_SRCDIR([src]) AM_INIT_AUTOMAKE # Checks for programs. AC_PROG_CC AC_PROG_CPP AC_PROG_CXX AC_PROG_GCC_TRADITIONAL AC_FUNC_ERROR_AT_LINE AC_HEADER_STDC AC_HEADER_STDBOOL AC_HEADER_TIME #checks for header files and libraries AC_CHECK_HEADERS([linux/version.h popt.h fcntl.h inttypes.h stdlib.h sys/ioctl.h sys/time.h termios.h unistd.h]) AC_CHECK_LIB(popt, poptGetNextOpt) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE AC_TYPE_UINT16_T AC_TYPE_UINT8_T AC_FUNC_SELECT_ARGTYPES AC_CHECK_FUNCS([select strerror]) AC_DEFUN([ACX_PTHREAD], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_LANG_SAVE AC_LANG_C acx_pthread_ok=no # Steven G. Johnson http://autoconf-archive.cryp.to/acx_pthread.html # We used to check for pthread.h first, but this fails if pthread.h # requires special compiler flags (e.g. on True64 or Sequent). # It gets checked for in the link test anyway. # First of all, check if the user has set any of the PTHREAD_LIBS, # etcetera environment variables, and if threads linking works using # them: if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) AC_MSG_RESULT($acx_pthread_ok) if test x"$acx_pthread_ok" = xno; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" fi # We must check for the threads library under a number of different # names; the ordering is very important because some systems # (e.g. DEC) have both -lpthread and -lpthreads, where one of the # libraries is broken (non-POSIX). # Create a list of thread flags to try. Items starting with a "-" are # C compiler flags, and other items are library names, except for "none" # which indicates that we try without any flags at all, and "pthread-config" # which is a program returning the flags for the Pth emulation library. acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: # pthreads: AIX (must check this before -lpthread) # none: in case threads are in libc; should be tried before -Kthread and # other compiler flags to prevent continual compiler warnings # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) # -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) # -pthreads: Solaris/gcc # -mthreads: Mingw32/gcc, Lynx/gcc # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it # doesn't hurt to check since this sometimes defines pthreads too; # also defines -D_REENTRANT) # ... -mt is also the pthreads flag for HP/aCC # pthread: Linux, etcetera # --thread-safe: KAI C++ # pthread-config: use pthread-config program (for GNU Pth library) case "${host_cpu}-${host_os}" in *solaris*) # On Solaris (at least, for some versions), libc contains stubbed # (non-functional) versions of the pthreads routines, so link-based # tests will erroneously succeed. (We need to link with -pthreads/-mt/ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather # a function called by this macro, so we could check for that, but # who knows whether they'll stub that too in a future libc.) So, # we'll just look for -pthreads and -lpthread first: acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" ;; esac if test x"$acx_pthread_ok" = xno; then for flag in $acx_pthread_flags; do case $flag in none) AC_MSG_CHECKING([whether pthreads work without any flags]) ;; -*) AC_MSG_CHECKING([whether pthreads work with $flag]) PTHREAD_CFLAGS="$flag" ;; pthread-config) AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no) if test x"$acx_pthread_config" = xno; then continue; fi PTHREAD_CFLAGS="`pthread-config --cflags`" PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ;; *) AC_MSG_CHECKING([for the pthreads library -l$flag]) PTHREAD_LIBS="-l$flag" ;; esac save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we # need a special flag -Kthread to make this header compile.) # We check for pthread_join because it is in -lpthread on IRIX # while pthread_create is in libc. We check for pthread_attr_init # due to DEC craziness with -lpthreads. We check for # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. AC_TRY_LINK([#include ], [pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], [acx_pthread_ok=yes]) LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" AC_MSG_RESULT($acx_pthread_ok) if test "x$acx_pthread_ok" = xyes; then break; fi PTHREAD_LIBS="" PTHREAD_CFLAGS="" done fi # Various other checks: if test "x$acx_pthread_ok" = xyes; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. AC_MSG_CHECKING([for joinable pthread attribute]) attr_name=unknown for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do AC_TRY_LINK([#include ], [int attr=$attr; return attr;], [attr_name=$attr; break]) done AC_MSG_RESULT($attr_name) if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, [Define to necessary symbol if this constant uses a non-standard name on your system.]) fi AC_MSG_CHECKING([if more special flags are required for pthreads]) flag=no case "${host_cpu}-${host_os}" in *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; esac AC_MSG_RESULT(${flag}) if test "x$flag" != xno; then PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" # More AIX lossage: must compile with xlc_r or cc_r if test x"$GCC" != xyes; then AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) else PTHREAD_CC=$CC fi else PTHREAD_CC="$CC" fi AC_SUBST(PTHREAD_LIBS) AC_SUBST(PTHREAD_CFLAGS) AC_SUBST(PTHREAD_CC) # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$acx_pthread_ok" = xyes; then ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) : else acx_pthread_ok=no $2 fi AC_LANG_RESTORE ]) dnl ACX_PTHREAD # Checks for additional packages and features # optimization features DEFDEBUG="no" AC_ARG_ENABLE([debug], AC_HELP_STRING([--enable-debug=yes/no], [compile with g++ debug options, default is no]), [DEFDEBUG=$enableval]) if test "$DEFDEBUG" = "yes"; then CFLAGS=`echo $CFLAGS | sed -e 's/-O2//g' | sed -e 's/-g//g'` CFLAGS="$CFLAGS -ggdb3" CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-O2//g' | sed -e 's/-g//g'` CXXFLAGS="$CXXFLAGS -ggdb3" fi DEFOPTIMIZE="no" AC_ARG_ENABLE([optimize], AC_HELP_STRING([--enable-optimize=yes/no], [compile with g++ optimize options, default is no]), [DEFOPTIMIZE=$enableval]) if test "$DEFOPTIMIZE" = "yes"; then CFLAGS=`echo $CFLAGS | sed -e 's/-O2//g' | sed -e 's/-g//g'` CFLAGS="$CFLAGS -O3 -ggdb3 " CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-O2//g' | sed -e 's/-g//g'` CXXFLAGS="$CXXFLAGS -O3 -ggdb3 " fi DEFPROF="no" AC_ARG_ENABLE([prof], AC_HELP_STRING([--enable-prof=yes/no], [compile with g++ profiling options, default is no]), [DEFPROF=$enableval]) if test "$DEFPROF" = "yes"; then CFLAGS=`echo $CFLAGS | sed -e 's/-O2//g' | sed -e 's/-g//g'` CFLAGS="$CFLAGS -O1 -pg" CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-O2//g' | sed -e 's/-g//g'` CXXFLAGS="$CXXFLAGS -O1 -pg" fi # Using the results # ACX_PTHREAD(, AC_MSG_ERROR(Posix threads missing)) LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS" CC="$PTHREAD_CC" # CXX="$CXX $PTHREAD_CFLAGS $LIBS" AC_CONFIG_FILES([Makefile config/Makefile src/Makefile ]) AC_OUTPUT tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/src/000077500000000000000000000000001206361226500224535ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/src/Bsl.cc000066400000000000000000000162431206361226500235100ustar00rootroot00000000000000/* -*- mode:c++; indent-tabs-mode:nil -*- * Copyright (c) 2007, Technische Universitaet Berlin * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * - Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - Neither the name of the Technische Universitaet Berlin nor the names * of its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /** * hand rolled bsl tool, other ones are too slow * @author Andreas Koepke * @date 2007-04-16 */ #include #include "Bsl.h" using namespace std; void Bsl::makeFrame(commands_t cmd, uint16_t A, uint16_t L, frame_t* frame, uint8_t dLen) { frame->HDR = 0x80; frame->CMD = (uint8_t)cmd; frame->L1 = dLen + 4; frame->L2 = dLen + 4; frame->AL = A & 0xff; frame->AH = (A>>8) & 0xff; frame->LL = L & 0xff; frame->LH = (L>>8) & 0xff; } int Bsl::rxPassword(int *err) { frame_t txframe; frame_t rxframe; for(int i = 0; i < 32; i++) { txframe.data[i] = 0xff; } makeFrame(RX_PWD, 0, 0, &txframe, 32); cout << "Transmit default password ..." << endl; return s->txrx(err, &txframe, &rxframe); } int Bsl::erase(int *err) { int r = 0; frame_t txframe; frame_t rxframe; makeFrame(MASS_ERASE, 0xff00, 0xa506, &txframe, 0); for(int i = 0; i < 2; i++) { r = s->invokeBsl(err); if(r != -1) { r = s->txrx(err, &txframe, &rxframe); if(r != -1) { cout << "Mass Erase..." << endl; break; } else { if(*err == EAGAIN) { serial_delay(1000000); } else { return -1; } } } else { if(*err == EAGAIN) { serial_delay(1000000); } else { return -1; } } } return r; } int Bsl::install(int *err) { unsigned len = 0; int r = erase(err); if(r == -1) { cerr << "Bsl::install: could not erase node" << endl; return r; } r = rxPassword(err); if(r == -1) { cerr << "Bsl::install: password not accepted" << endl; return r; } r = parseIhex(err); if(r == -1) { cerr << "Bsl::install: could not parse ihex image" << endl; return r; } r = highSpeed(err); if(r == -1) { cerr << " Bsl::install: could not switch to high speed mode" << endl; return r; } cout << "Program ..." << endl; for(std::list::const_iterator it = prog.begin(); it != prog.end(); ++it) { len += it->len; r = writeData(err, (uint16_t)it->startAddr,it->data, it->len); if(r == -1) { cerr << " Bsl::install: could not write data" << endl; return r; } } cout << len << " bytes programmed." << endl; r = s->reset(err); if(r == -1) { cerr << " Bsl::install: could not reset node" << endl; } return r; } int Bsl::writeBlock(int *err, const uint16_t addr, const uint8_t* data, const uint16_t len) { frame_t txframe; frame_t rxframe; memcpy(txframe.data, data, len); makeFrame(RX_DATA, addr, len, &txframe, len); return s->txrx(err, &txframe, &rxframe); } int Bsl::writeData(int *err, const uint16_t addr, const uint8_t* data, const uint16_t len) { int r = 0; if(!data) { cerr << "Command::write(): data==NULL" << endl; return -1; } if(addr+len>0x10000) { cerr << "Command::write(): addr+len>0x10000" << endl; return -1; } int l; uint16_t adr; for(int i=0; iCHUNKSIZE) l=CHUNKSIZE; adr=addr+i; r = writeBlock(err, adr, &data[i], l); if(r == -1) { break; } } return r; } int Bsl::parseIhex(int *err) { char buf[512]; Segment segment; segment.len = 0; segment.startAddr = 0; int r; FILE *readFD = fopen(image, "r"); if(readFD == NULL) { *err = errno; cerr << "Bsl::parseIhex: Could not open " << image << endl; return -1; }; while(fgets(buf, 512, readFD) == buf) { uint16_t len; uint16_t addr; uint16_t recType; uint16_t checksum = 0; uint16_t byte; unsigned i; if(buf[0] != (uint8_t)':') { cerr << "Bsl::parseIhex: " << image << "is not an ihex" << endl; return -1; } sscanf(buf,":%2hx%4hx%2hx",&len, &addr, &recType); checksum = len + (addr>>8) + (addr & 0xff) + recType; if(recType == 0) { if((segment.len != 0) && (segment.startAddr + segment.len != addr)) { prog.push_back(segment); segment.len = 0; } if(segment.len == 0) { segment.startAddr = addr; } for(i = 0; i < len; i++) { sscanf(buf+9+2*i,"%2hx",&byte); segment.data[segment.len] = byte; checksum += segment.data[segment.len]; ++segment.len; } checksum = (-checksum) & 0xff; sscanf(buf+9+2*i,"%4hx",&byte); if(checksum == byte) { } else { cerr << "Bsl::parseIhex wrong data line format in " << image << endl; fclose(readFD); return -1; } } else if(recType == 1) { prog.push_back(segment); } } r = fclose(readFD); if(r == -1) { *err = errno; } return r; } int Bsl::highSpeed(int *err) { frame_t txframe; frame_t rxframe; int r; for(int i = 0; i < 32; i++) { txframe.data[i] = 0xff; } makeFrame(BAUDRATE, 0x87e0, 0x0002, &txframe, 0); r = s->txrx(err, &txframe, &rxframe); if(r != -1) { serial_delay(10000); r = s->highSpeed(err); } return r; } tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/src/Bsl.h000066400000000000000000000061101206361226500233420ustar00rootroot00000000000000/* -*- mode:c++; indent-tabs-mode:nil -*- * Copyright (c) 2007, Technische Universitaet Berlin * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * - Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - Neither the name of the Technische Universitaet Berlin nor the names * of its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /** * hand rolled bsl tool, other ones are too slow * @author Andreas Koepke * @date 2007-04-16 */ #ifndef BSL_BSL_H #define BSL_BSL_H #include #include #include #include "Parameters.h" #include "Serial.h" class Bsl { protected: BaseSerial *s; const char *image; const int CHUNKSIZE; enum commands_t { MASS_ERASE = 0x18, RX_DATA = 0x12, RX_PWD = 0x10, BAUDRATE = 0x20 }; class Segment { public: unsigned startAddr; unsigned len; uint8_t data[65536]; Segment(const Segment& a) { startAddr = a.startAddr; len = a.len; memcpy(data, a.data, len); } Segment() { startAddr = 0; len = 0; } }; std::list prog; protected: int rxPassword(int* err); int writeBlock(int *err, const uint16_t addr, const uint8_t* data, const uint16_t len); int writeData(int *err, const uint16_t addr, const uint8_t* data, const uint16_t len); int parseIhex(int *err); void makeFrame(commands_t cmd, uint16_t A, uint16_t L, frame_t* frame, uint8_t dLen); int highSpeed(int *err); public: Bsl(BaseSerial* ser, const char *img, int cs=250) : s(ser), image(img), CHUNKSIZE(cs) { }; ~Bsl() { } int reset(int *err) { return s->reset(err);}; int erase(int *err); int install(int *err); }; #endif tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/src/Makefile.am000066400000000000000000000003751206361226500245140ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## src/Makefile.am MAINTAINERCLEANFILES = Makefile.in bin_PROGRAMS=cppbsl cppbsl_SOURCES=\ Parameters.h \ Parameters.cc \ Serial.h \ Serial.cc \ Bsl.h \ Bsl.cc \ cppbsl.cc tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/src/Makefile.in000066400000000000000000000317401206361226500245250ustar00rootroot00000000000000# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : bin_PROGRAMS = cppbsl$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(bindir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_cppbsl_OBJECTS = Parameters.$(OBJEXT) Serial.$(OBJEXT) \ Bsl.$(OBJEXT) cppbsl.$(OBJEXT) cppbsl_OBJECTS = $(am_cppbsl_OBJECTS) cppbsl_LDADD = $(LDADD) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(cppbsl_SOURCES) DIST_SOURCES = $(cppbsl_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in cppbsl_SOURCES = \ Parameters.h \ Parameters.cc \ Serial.h \ Serial.cc \ Bsl.h \ Bsl.cc \ cppbsl.cc all: all-am .SUFFIXES: .SUFFIXES: .cc .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) cppbsl$(EXEEXT): $(cppbsl_OBJECTS) $(cppbsl_DEPENDENCIES) @rm -f cppbsl$(EXEEXT) $(CXXLINK) $(cppbsl_OBJECTS) $(cppbsl_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Bsl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Parameters.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Serial.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cppbsl.Po@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-binPROGRAMS install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/src/Parameters.cc000066400000000000000000000111041206361226500250620ustar00rootroot00000000000000/* -*- mode:c++; indent-tabs-mode:nil -*- * Copyright (c) 2007, Technische Universitaet Berlin * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * - Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - Neither the name of the Technische Universitaet Berlin nor the names * of its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #include #include #include #include #include "Parameters.h" using namespace std; Parameters::Parameters(int argc, char **argv) { int c; action = NONE; device = 0; verbose = false; action = NONE; image = 0; telosb = false; chunksize = 250; poptOption optionsTable[] = { {"debug",'D', 0, 0, 'd', "print many statements on progress"}, {"f1x",'1', 0, 0, '1', "Specify CPU family, in case autodetect fails"}, {"invert-reset",'R', 0, 0, 'R', "RESET pin is inverted"}, {"invert-test",'T', 0, 0, 'T', "TEST pin is inverted"}, {"telosb",'b', 0, 0, 'b', "Assume a TelosB node"}, {"tmote",'b', 0, 0, 'b', "Assume a Tmote node"}, {"intelhex",'I', 0, 0, 'I', "force fileformat to be IntelHex"}, {"erase",'e', 0, 0, 'e', "erase device"}, {"reset",'r', 0, 0, 'r', "reset device"}, {"send-chunk-size",'s', POPT_ARG_INT | POPT_ARGFLAG_SHOW_DEFAULT, &chunksize, 0, "program msp430 using chunks of this size", ""}, {"program",'p', POPT_ARG_STRING, &image, 0, "Program file", ""}, {"comport",'c', POPT_ARG_STRING, &device, 0, "communicate with MSP430 using this device", ""}, POPT_AUTOHELP POPT_TABLEEND }; poptContext optCon; /* context for parsing command-line options */ optCon = poptGetContext(NULL, argc, (const char**)argv, optionsTable, 0); /* Now do options processing */ while((c = poptGetNextOpt(optCon)) >= 0) { switch(c) { case 'R': invertReset = true; break; case 'T': invertTest = true; break; case 'd': verbose = true; break; case 'r': if(action < RESET) { action = RESET; } break; case 'e': if(action < ERASE) { action = ERASE; } break; case 'b': telosb = true; break; default: break; } } if (c < -1) { /* an error occurred during option processing */ fprintf(stderr, "%s: %s\n", poptBadOption(optCon, POPT_BADOPTION_NOALIAS), poptStrerror(c)); exit(1); } if(telosb) { invertReset = false; invertTest = false; } if(image != 0) { action = FLASH; } if(device != 0) { dev = device; } else { exit(1); } if(image != 0) { img = image; } else if(action == FLASH) { exit(1); } // force sane chunk size if(chunksize < 150) { chunksize = 150; } else if(chunksize > 250) { chunksize = 250; } // must be even! chunksize /= 2; chunksize *= 2; poptFreeContext(optCon); }; tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/src/Parameters.h000066400000000000000000000043471206361226500247370ustar00rootroot00000000000000/* -*- mode:c++; indent-tabs-mode:nil -*- * Copyright (c) 2007, Technische Universitaet Berlin * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * - Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - Neither the name of the Technische Universitaet Berlin nor the names * of its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /** * keep parameters for bsl tool * @author Andreas Koepke * @date 2007-10-23 */ #ifndef _PARAMETERS_H #define _PARAMETERS_H #include class Parameters { public: enum actions_t { NONE, RESET, ERASE, FLASH }; public: const char *device; std::string dev; const char *image; std::string img; bool verbose; bool invertTest; bool invertReset; bool intelhex; bool telosb; actions_t action; int chunksize; public: Parameters(int argc, char **argv); }; extern Parameters *parameters; #endif tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/src/Serial.cc000066400000000000000000000350611206361226500242060ustar00rootroot00000000000000/* -*- mode:c++; indent-tabs-mode:nil -*- * Copyright (c) 2007, Technische Universitaet Berlin * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * - Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - Neither the name of the Technische Universitaet Berlin nor the names * of its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /** * hand rolled bsl tool, other ones are too slow * @author Andreas Koepke * @date 2007-04-16 */ #include #include #include #include "../config.h" #ifdef HAVE_LINUX_VERSION_H #include #else #define LINUX_VERSION_CODE 1 #define KERNEL_VERSION 3 #endif #include "Serial.h" using namespace std; int serial_connect(int* err, const char* dev, int* readFD, int* writeFD, termios* pt) { struct termios my_tios; struct serial_struct serinfo; int r = 0; *readFD = -1; *writeFD = -1; for(int i = 0; i < 2; i++) { *readFD = open(dev, O_RDONLY | O_NOCTTY | O_NONBLOCK); *err = errno; if(*readFD != -1) { break; } else if((*readFD == -1) && (errno == EAGAIN)) { serial_delay(1000000); } else { return -1; } } if(*readFD == -1) { return -1; } for(int i = 0; i < 3; i++) { *writeFD = open(dev, O_WRONLY | O_NOCTTY); *err = errno; if(*writeFD != -1) { break; } else if((*writeFD == -1) && (errno == EAGAIN)) { serial_delay(1000000); } else { close(*readFD); *readFD = -1; return -1; } } if(*writeFD == -1) { close(*readFD); *readFD = -1; return -1; } /* prepare attributes */ #if defined(HAVE_LINUX_VERSION_H) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) r = tcgetattr(*writeFD, &my_tios); if(r == -1) { *err = errno; close(*readFD); close(*writeFD); return -1; } *pt = my_tios; cfmakeraw(&my_tios); my_tios.c_iflag |= IGNBRK | INPCK; my_tios.c_cflag |= (CS8 | CLOCAL | CREAD | PARENB); cfsetispeed(&my_tios, B38400); // dummy cfsetospeed(&my_tios, B38400); // dummy r = tcsetattr(*readFD, TCSANOW, &my_tios); if(r == -1) { *err = errno; r = tcsetattr(*writeFD, TCSANOW, pt); close(*readFD); close(*writeFD); return -1; } /* hack for baudrate */ r = ioctl(*writeFD, TIOCGSERIAL, &serinfo); if(r == -1) { *err = errno; r = tcsetattr(*writeFD, TCSANOW, pt); close(*readFD); close(*writeFD); return -1; } serinfo.custom_divisor = serinfo.baud_base / 9600; if(serinfo.custom_divisor == 0) serinfo.custom_divisor = 1; serinfo.flags &= ~ASYNC_SPD_MASK; serinfo.flags |= ASYNC_SPD_CUST; r = ioctl(*writeFD, TIOCSSERIAL, &serinfo); if(r == -1) { *err = errno; r = tcsetattr(*writeFD, TCSANOW, pt); close(*readFD); close(*writeFD); return -1; } #else r = tcgetattr(*writeFD, &my_tios); if(r == -1) { *err = errno; close(*readFD); close(*writeFD); return -1; } *pt = my_tios; cfmakeraw(&my_tios); my_tios.c_iflag |= IGNBRK | INPCK; my_tios.c_cflag |= (CS8 | CLOCAL | CREAD | PARENB); cfsetispeed(&my_tios, B9600); cfsetospeed(&my_tios, B9600); r = tcsetattr(*readFD, TCSANOW, &my_tios); if(r == -1) { *err = errno; r = tcsetattr(*writeFD, TCSANOW, pt); close(*readFD); close(*writeFD); return -1; } #endif // clear buffers r = tcflush(*writeFD, TCIOFLUSH); if(r == -1) { *err = errno; r = tcsetattr(*writeFD, TCSANOW, pt); close(*readFD); close(*writeFD); return -1; } if(r == -1) { *err = errno; r = tcsetattr(*writeFD, TCSANOW, pt); close(*readFD); close(*writeFD); } return r; }; int BaseSerial::setPins(int *err) { setRST(err); return setTEST(err); } int BaseSerial::resetPins(int *err) { setRST(err); return clrTEST(err); } int BaseSerial::disconnect(int *err) { int r; if(serialWriteFD != -1) { r = resetPins(err); if(r == -1) { cerr << "WARN: BaseSerial::disconnect could not reset pins, " << strerror(*err) << endl; } r = tcsetattr(serialWriteFD, TCSANOW, &oldtermios); } if(serialReadFD != -1) { r = close(serialReadFD); if(r == -1) { *err = errno; } serialReadFD = -1; } if(serialWriteFD != -1) { r = close(serialWriteFD); if(r == -1) { *err = errno; } serialWriteFD = -1; } return r; } int BaseSerial::reset(int *err) { int r = 0; r = setRST(err); if(r == -1) return -1; r = setTEST(err); if(r == -1) return -1; serial_delay(switchdelay); r = clrRST(err); if(r == -1) return -1; serial_delay(switchdelay); r = setRST(err); if(r == -1) return -1; serial_delay(switchdelay); cout << "Reset device ..." << endl; return clearBuffers(err); }; int BaseSerial::invokeBsl(int *err) { int r = 0; r = setRST(err); if(r == -1) return -1; r = setTEST(err); if(r == -1) return -1; serial_delay(switchdelay); r = clrRST(err); if(r == -1) return -1; r = setTEST(err); if(r == -1) return -1; r = clrTEST(err); if(r == -1) return -1; r = setTEST(err); if(r == -1) return -1; r = clrTEST(err); if(r == -1) return -1; r = setRST(err); if(r == -1) return -1; r = setTEST(err); if(r == -1) return -1; serial_delay(switchdelay); cout << "Invoking BSL..." << endl; return clearBuffers(err); } int BaseSerial::readFD(int *err, char *buffer, int count, int maxCount) { int cnt = 0; int retries = 0; timeval tv; tv.tv_sec = 1; tv.tv_usec = 0; while(cnt == 0) { int tmpCnt = read(serialReadFD, buffer, maxCount); *err = errno; if((tmpCnt == 0) || ((tmpCnt < 0) && (errno == EAGAIN))) { FD_SET(serialReadFD, &rfds); if(select(serialReadFD + 1, &rfds, NULL, NULL, &tv) < 0) { *err = errno; return -1; } FD_CLR(serialReadFD, &rfds); if(retries++ >= 2) { cerr << "FATAL: BaseSerial::readFD no data available after 1s" << endl; return -1; } } else if(tmpCnt > 0) { cnt += tmpCnt; } else { return -1; } } return cnt; } int BaseSerial::txrx(int *err, frame_t *txframe, frame_t *rxframe) { int r = 0; char sync = SYNC; uint8_t ack = 0; if((txframe == NULL) || (txframe->L1 < 4) || ((txframe->L1 & 1) != 0) || (rxframe == NULL)) { cerr << "BaseSerial::txrx: precondition not fulfilled, " << " txFrame: " << txframe << " rxFrame: " << rxframe << " txframe->L1: " << (unsigned) txframe->L1 << endl; return -1; } for(unsigned i = 0; i < 2; i++) { r = write(serialWriteFD,&sync, 1); if(r == -1) { *err = errno; if(errno != EAGAIN) return -1; } r = readFD(err, (char *)(&ack),1,1); if(r == 1) { if(ack == DATA_ACK) { r = 0; break; } else { cerr << "WARN: BaseSerial::txrx: received " << hex << (unsigned) ack << " when trying to sync with node." << dec << endl; } } else { if((r == -1) && (errno == EAGAIN)) { // retry to sync } else { cerr << "FATAL: BaseSerial::txrx could not SYNC with node" << endl; return -1; } } } if(r == -1) { return -1; } r = clearBuffers(err); if(r == -1) return r; // transmit frame checksum(txframe); r = write(serialWriteFD, (char *)txframe, txframe->L1 + 6); if(r < txframe->L1 + 6) { *err = errno; return -1; } // receive response int len = 0; rxframe->L1 = 4; r = 0; while(r >= 0) { r = readFD(err, (char *)rxframe, sizeof(frame_t), sizeof(frame_t)); if(r == -1) { return -1; } else if(r >= 1) { len += r; if(rxframe->HDR == DATA_ACK) { break; } else if(rxframe->HDR == DATA_NAK) { cerr << "BaseSerial::txrx frame not valid, command " << hex << (unsigned) txframe->CMD << dec << " not defined or not allowed" << endl; return -1; } else if(rxframe->HDR == SYNC) { if(len >= rxframe->L1 + 6) { break; } } else { cerr << "FATAL: BaseSerial::txrx: received " << hex << (unsigned) rxframe->HDR << " when trying to execute " << hex << (unsigned) txframe->CMD << dec << endl; break; } } } return r; } int BaseSerial::highSpeed(int *err) { int r; #if defined(HAVE_LINUX_VERSION_H) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) struct serial_struct serinfo; r = ioctl(serialWriteFD, TIOCGSERIAL, &serinfo); if(r == -1) { *err = errno; return -1; } serinfo.custom_divisor = serinfo.baud_base / 38400; if(serinfo.custom_divisor == 0) serinfo.custom_divisor = 1; serinfo.flags &= ~ASYNC_SPD_MASK; serinfo.flags |= ASYNC_SPD_CUST; r = ioctl(serialWriteFD, TIOCSSERIAL, &serinfo); #else struct termios my_tios; r = tcgetattr(serialWriteFD, &my_tios); cfsetispeed(&my_tios, B38400); cfsetospeed(&my_tios, B38400); r = tcsetattr(serialReadFD, TCSANOW, &my_tios); if(r == -1) { *err = errno; } else { r = tcsetattr(serialWriteFD, TCSANOW, &my_tios); } #endif if(r == -1) { *err = errno; return -1; } return r; } int TelosBSerial::reset(int *err) { int r; r = telosI2CWriteCmd(err, 0, 0); if(r == -1) return r; serial_delay(switchdelay); r = telosI2CWriteCmd(err, 0, 3); if(r == -1) return r; r = telosI2CWriteCmd(err, 0, 2); if(r == -1) return r; r = telosI2CWriteCmd(err, 0, 0); if(r == -1) return r; r = telosI2CWriteCmd(err, 0, 0); if(r == -1) return r; serial_delay(switchdelay); cout << "Reset device ..." << endl; return clearBuffers(err); } int TelosBSerial::invokeBsl(int *err) { int r; r = telosI2CWriteCmd(err, 0, 0); if(r == -1) return r; serial_delay(switchdelay); r = telosI2CWriteCmd(err, 0, 1); if(r == -1) return r; r = telosI2CWriteCmd(err, 0, 3); if(r == -1) return r; r = telosI2CWriteCmd(err, 0, 1); if(r == -1) return r; r = telosI2CWriteCmd(err, 0, 3); if(r == -1) return r; r = telosI2CWriteCmd(err, 0, 2); if(r == -1) return r; r = telosI2CWriteCmd(err, 0, 0); if(r == -1) return r; r = telosI2CWriteCmd(err, 0, 0); if(r == -1) return r; serial_delay(switchdelay); cout << "Invoking BSL..." << endl; return clearBuffers(err); } int TelosBSerial::telosI2CStart(int *err) { int r; r = telosSetSDA(err); if(r == -1) return -1; r = telosSetSCL(err); if(r == -1) return -1; r = telosClrSDA(err); return r; } int TelosBSerial::telosI2CStop(int *err) { int r; r = telosClrSDA(err); if(r == -1) return r; r = telosSetSCL(err); if(r == -1) return r; r = telosSetSDA(err); return r; } int TelosBSerial::telosI2CWriteBit(int *err, bool bit) { int r = telosClrSCL(err); if(r == -1) return r; if(bit) { r = telosSetSDA(err); if(r == -1) return r; } else { r = telosClrSDA(err); if(r == -1) return r; } r = telosSetSCL(err); if(r == -1) return r; r = telosClrSCL(err); return r; } int TelosBSerial::telosI2CWriteByte(int *err, uint8_t byte) { int r; r = telosI2CWriteBit(err, byte & 0x80 ); if(r == -1) return r; r = telosI2CWriteBit(err, byte & 0x40 ); if(r == -1) return r; r = telosI2CWriteBit(err, byte & 0x20 ); if(r == -1) return r; r = telosI2CWriteBit(err, byte & 0x10 ); if(r == -1) return r; r = telosI2CWriteBit(err, byte & 0x08 ); if(r == -1) return r; r = telosI2CWriteBit(err, byte & 0x04 ); if(r == -1) return r; r = telosI2CWriteBit(err, byte & 0x02 ); if(r == -1) return r; r = telosI2CWriteBit(err, byte & 0x01 ); if(r == -1) return r; return telosI2CWriteBit(err, 0 ); } int TelosBSerial::telosI2CWriteCmd(int *err, uint8_t addr, uint8_t cmdbyte) { int r; r = telosI2CStart(err); if(r == -1) return r; r = telosI2CWriteByte(err, 0x90 | (addr << 1) ); if(r == -1) return r; r = telosI2CWriteByte(err, cmdbyte ); if(r == -1) return r; r = telosI2CStop(err); if(r == -1) return r; return clearBuffers(err); } int TelosBSerial::setPins(int *err) { return 0; } int TelosBSerial::resetPins(int *err) { return 0; } tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/src/Serial.h000066400000000000000000000161301206361226500240440ustar00rootroot00000000000000/* -*- mode:c++; indent-tabs-mode:nil -*- * Copyright (c) 2007, Technische Universitaet Berlin * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * - Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - Neither the name of the Technische Universitaet Berlin nor the names * of its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /** * hand rolled bsl tool, other ones are too slow * @author Andreas Koepke * @date 2007-04-16 */ #ifndef BSL_SERIAL_H #define BSL_SERIAL_H #include #include #include #include #include #include #include #include #include #include #include #include #include "Parameters.h" inline void serial_delay(unsigned usec) { struct timeval tv; tv.tv_sec = usec/1000000; tv.tv_usec = usec%1000000; select(0,NULL,NULL,NULL, &tv); }; struct frame_t { uint8_t HDR; uint8_t CMD; uint8_t L1; uint8_t L2; uint8_t AL; uint8_t AH; uint8_t LL; uint8_t LH; uint8_t data[252]; } __attribute__ ((packed)); /** * Connect with serial device (dev), returns the opened file descriptors in * * readFD and writeFD. Returns on error with something != 0 and errno is * * hopefully set correctly. */ int serial_connect(int* err, const char* dev, int* readFD, int* writeFD, termios* pt); class BaseSerial { protected: const int switchdelay; termios oldtermios; protected: int serialReadFD; int serialWriteFD; bool invertTest; bool invertReset; bool swapRstTest; fd_set rfds; enum { CMD_FAILED = 0x70, SYNC = 0x80, DATA_ACK = 0x90, DATA_NAK = 0xA0, }; protected: inline int setDTR(int *err) { int i = TIOCM_DTR; int r = ioctl(serialWriteFD, TIOCMBIS, &i); if(r == -1) { *err = errno; std::cerr << "ERROR: BaseSerial::setDTR could not set DTR pin" << std::endl; } return r; } inline int clrDTR(int *err) { int i = TIOCM_DTR; int r = ioctl(serialWriteFD, TIOCMBIC, &i); if(r == -1) { *err = errno; std::cerr << "ERROR: BaseSerial::clrDTR could not clr DTR pin" << std::endl; } return r; } inline int setRTS(int *err) { int i = TIOCM_RTS; int r = ioctl(serialWriteFD, TIOCMBIS, &i); if(r == -1) { *err = errno; std::cerr << "ERROR: BaseSerial::setRTS could not set RTS pin" << std::endl; } return r; } inline int clrRTS(int *err) { int i = TIOCM_RTS; int r = ioctl(serialWriteFD, TIOCMBIC, &i); if(r == -1) { *err = errno; std::cerr << "ERROR: BaseSerial::clrRTS could not clr RTS pin" << std::endl; } return r; } int setTEST(int *err) { int r; if(invertTest) { r = clrRTS(err); } else { r = setRTS(err); } return r; } int clrTEST(int *err) { int r; if(invertTest) { r = setRTS(err); } else { r = clrRTS(err); } return r; } int setRST(int *err) { int r; if(invertReset) { r = clrDTR(err); } else { r = setDTR(err); } return r; } int clrRST(int *err) { int r; if(invertReset) { r= setDTR(err); } else { r = clrDTR(err); } return r; } inline void checksum(frame_t *frame) { uint8_t i; uint8_t frameLen = frame->L1/2 + 2; uint16_t *dat = (uint16_t *)frame; uint16_t check = 0; for(i = 0; i < frameLen; i++) { check ^= dat[i]; } dat[i] = ~check; } int readFD(int *err, char *buffer, int count, int maxCount); virtual int setPins(int *err); virtual int resetPins(int *err); public: BaseSerial(const termios& term, int rFD, int wFD, bool T=false, bool R=false) : switchdelay(30000), oldtermios(term), serialReadFD(rFD), serialWriteFD(wFD), invertTest(T), invertReset(R) { int err; FD_ZERO(&rfds); setPins(&err); } virtual ~BaseSerial() { int r; int err; if((serialReadFD != -1) || (serialWriteFD != -1)) { r = disconnect(&err); } } // communicate inline int clearBuffers(int *err) { int r = tcflush(serialReadFD, TCIOFLUSH); if(r != 0) { *err = errno; } else { r = tcflush(serialWriteFD, TCIOFLUSH); if(r != 0) { *err = errno; } } return r; }; int txrx(int *err, frame_t *txframe, frame_t *rxframe); // handle connection int disconnect(int *err); // change connection speed int highSpeed(int *err); // do initial magic on serial interface virtual int reset(int *err); virtual int invokeBsl(int *err); }; class TelosBSerial : public BaseSerial { protected: virtual int resetPins(int *err); virtual int setPins(int *err); int telosSetSCL(int *err) { return clrRTS(err); } int telosClrSCL(int *err) { return setRTS(err); } int telosSetSDA(int *err) { return clrDTR(err); } int telosClrSDA(int *err) { return setDTR(err); } int telosI2CStart(int *err); int telosI2CStop(int *err); int telosI2CWriteBit(int *err, bool bit); int telosI2CWriteByte(int* err, uint8_t byte); int telosI2CWriteCmd(int*err, uint8_t addr, uint8_t cmdbyte); public: TelosBSerial(const termios& term, int rFD, int wFD, bool T=false, bool R=false) : BaseSerial(term, rFD, wFD, T, R) { } virtual ~TelosBSerial() { } virtual int reset(int *err); virtual int invokeBsl(int *err); }; #endif tinyos-tools-1.4.2/tools/platforms/msp430/cppbsl/src/cppbsl.cc000066400000000000000000000072251206361226500242530ustar00rootroot00000000000000/* -*- mode:c++; indent-tabs-mode:nil -*- * Copyright (c) 2007, Technische Universitaet Berlin * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * - Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - Neither the name of the Technische Universitaet Berlin nor the names * of its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /** * hand rolled bsl tool, other ones are too slow * @author Andreas Koepke * @date 2007-04-16 */ #include #include #include "Parameters.h" #include "Serial.h" #include "Bsl.h" using namespace std; Parameters *parameters; void errMsg(int r, int err, const char *msg) { cerr << msg; if(err) { cerr << ", system error: " << strerror(err); } else { cerr << ", internal error"; } cerr << "." << endl; } int main(int argc, char *argv[]) { int r, readFD, writeFD, err; termios oldterm; parameters = new Parameters(argc, argv); BaseSerial *bs; Bsl *bsl; err = 0; r = serial_connect(&err, parameters->dev.c_str(), &readFD, &writeFD, &oldterm); if(r == -1) { errMsg(r, err, "Could not connect to serial device"); delete parameters; return -1; } if(parameters->telosb) { bs = new TelosBSerial(oldterm, readFD, writeFD); } else { bs = new BaseSerial(oldterm, readFD, writeFD, parameters->invertTest, parameters->invertReset); } bsl = new Bsl(bs, parameters->img.c_str(), parameters->chunksize); switch(parameters->action) { case Parameters::ERASE: r = bsl->erase(&err); if(r == -1) { errMsg(r, err, "Could not erase node"); } else { r = bsl->reset(&err); if(r == -1) { errMsg(r, err, "Could not reset node"); } } break; case Parameters::RESET: r = bsl->reset(&err); if(r == -1) { errMsg(r, err, "Could not reset node"); } break; case Parameters::FLASH: r = bsl->install(&err); if(r == -1) { errMsg(r, err, "Could not install image on node"); } break; default: break; } delete bsl; bs->disconnect(&err); delete bs; delete parameters; return (r != 0); } tinyos-tools-1.4.2/tools/platforms/msp430/motelist/000077500000000000000000000000001206361226500222415ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/msp430/motelist/Makefile.am000066400000000000000000000004431206361226500242760ustar00rootroot00000000000000bin_SCRIPTS = motelist dist_man_MANS = motelist.1 if CYGWIN motelist: motelist-win32.cpp g++ -O3 -Wall -o motelist motelist-win32.cpp else !CYGWIN if DARWIN motelist: motelist-macos cp motelist-macos motelist else !DARWIN motelist: motelist-linux cp motelist-linux motelist endif endif tinyos-tools-1.4.2/tools/platforms/msp430/motelist/motelist-linux.in000077500000000000000000000167531206361226500256050ustar00rootroot00000000000000#!@pathperl@ -w use strict; # $Id: motelist-linux,v 1.4 2006-12-12 18:23:01 vlahan Exp $ # @author Cory Sharp # @author Joe Polastre my $help = <<'EOF'; usage: motelist [options] $Revision: 1.4 $ options: -h display this help -c compact format, not pretty but easier for parsing -f specify the usb-serial file (for smote.cs) -k kernel version: 2.4, 2.6, auto (default) -m method to scan usb: procfs, sysfs, auto (default) -dev_prefix force the device prefix for the serial device -usb display extra usb information EOF my %Opt = ( compact => 0, usb => 0, method => "auto", kernel => "auto", dev_prefix => [ "/dev/usb/tts/", "/dev/ttyUSB", "/dev/tts/USB" ], usbserial => "sudo cat /proc/tty/driver/usbserial |", ); while (@ARGV) { last unless $ARGV[0] =~ /^-/; my $opt = shift @ARGV; if( $opt eq "-h" ) { print "$help\n"; exit 0; } elsif( $opt eq "-c" ) { $Opt{compact} = 1; } elsif( $opt eq "-f" ) { $Opt{usbserial} = shift @ARGV; } elsif( $opt eq "-k" ) { $Opt{kernel} = shift @ARGV; } elsif( $opt eq "-m" ) { $Opt{method} = shift @ARGV; } elsif( $opt eq "-dev_prefix" ) { $Opt{dev_prefix} = shift @ARGV; } elsif( $opt eq "-usb" ) { $Opt{usb} = 1; } else { print STDERR "$help\nerror, unknown command line option $opt\n"; exit 1; } } if( $Opt{kernel} eq "auto" ) { $Opt{kernel} = "unknown"; $Opt{kernel} = $1 if snarf("/proc/version") =~ /\bLinux version (\d+\.\d+)/; } if( $Opt{method} eq "auto" ) { $Opt{method} = ($Opt{kernel} eq "2.4") ? "procfs" : "sysfs"; } my @devs = $Opt{method} eq "procfs" ? scan_procfs() : scan_sysfs(); print_motelist( sort { cmp_usbdev($a,$b) } @devs ); # # SysFS # sub scan_sysfs { # Scan /sys/bus/usb/drivers/usb for FTDI or CP210X devices my @ftdidevs = grep { (($_->{UsbVendor}||"") eq "0403" && ($_->{UsbProduct}||"") eq "6001") || (($_->{UsbVendor}||"") eq "10c4" && ($_->{UsbProduct}||"") eq "ea60")} map { { SysPath => $_, UsbVendor => snarf("$_/idVendor",1), UsbProduct => snarf("$_/idProduct",1), } } glob("/sys/bus/usb/drivers/usb/*"); # Gather information about each FTDI device for my $f (@ftdidevs) { my $syspath = $f->{SysPath}; $f->{InfoManufacturer} = snarf("$syspath/manufacturer",1); $f->{InfoProduct} = snarf("$syspath/product",1); $f->{InfoSerial} = snarf("$syspath/serial",1); $f->{UsbDevNum} = snarf("$syspath/devnum",1); my $devstr = readlink($syspath); if( $devstr =~ m{([^/]+)/usb(\d+)/.*-([^/]+)$} ) { $f->{UsbPath} = "usb-$1-$3"; $f->{UsbBusNum} = $2; } ($f->{SysDev} = $syspath) =~ s{^.*/}{}; my $port = "$syspath/$f->{SysDev}:1.0"; ($f->{DriverName} = readlink("$port/driver")) =~ s{^.*/}{} if -l "$port/driver"; ($f->{SerialDevName} = (glob("$port/tty*"),undef)[0]) =~ s{^.*/}{}; $f->{SerialDevNum} = $1 if $f->{SerialDevName} =~ /(\d+)/; $f->{SerialDevName} = getSerialDevName( $f->{SerialDevNum} ) || " (none)"; } return @ftdidevs; } # # Scan Procfs # sub scan_procfs { my $text_devs = snarf("< /proc/bus/usb/devices"); my $text_serial = snarf($Opt{usbserial}); my @usbdevs = map { {parse_usb_devices_text($_)} } grep { !/^\s*$/ } split /\n+(?=T:)/, $text_devs; my %usbtree = build_usb_tree( @usbdevs ); my %usbserialtree = build_usbserial_tree( $text_serial ); for my $tts ( values %usbserialtree ) { $usbtree{usbkey($tts->{path})}{usbserial} = $tts if defined $tts->{path}; } my @ftdidevs = map { { UsbVendor => $_->{Vendor}, UsbProduct => $_->{ProdID}, InfoManufacturer => $_->{Manufacturer}, InfoProduct => $_->{Product}, InfoSerial => $_->{SerialNumber}, UsbBusNum => $_->{nbus}, UsbDevNum => $_->{ndev}, UsbPath => (($Opt{kernel} eq "2.4") ? $_->{usbserial}{path} : $_->{usbpath}), DriverName => $_->{driver}, SerialDevNum => $_->{usbserial}{tts}, SerialDevName => getSerialDevName($_->{usbserial}{tts}) || " (none)", } } grep { ($_->{Vendor}||"") eq "0403" && ($_->{ProdID}||"") eq "6001" } values %usbtree; return @ftdidevs; } sub build_usb_tree { my @devs = @_; my %tree = (); for my $dev (sort { $a->{Lev} <=> $b->{Lev} } @devs) { my ($bus,$lev,$prnt) = ( $dev->{Bus}+0, $dev->{Lev}+0, $dev->{Prnt}+0 ); my $devnum = $dev->{"Dev#"}+0; $dev->{nbus} = $bus; $dev->{ndev} = $devnum; $tree{"bus$bus"} = {} unless exists $tree{"bus$bus"}; $tree{"bus$bus"}{"dev$devnum"} = $dev; if( $lev == 0 ) { $dev->{usbpath} = "usb-$dev->{SerialNumber}"; } else { my $sep = ($lev==1) ? "-" : "."; $dev->{parent} = $tree{"bus$bus"}{"dev$prnt"}; $dev->{usbpath} = $dev->{parent}{usbpath} . $sep . ($dev->{Port}+1); } $tree{usbkey($dev->{usbpath})} = $dev; } return %tree; } sub parse_usb_devices_text { my $text = shift; $text =~ s/^\S+\s*//gm; return ($text =~ m/([^\s=]+)=\s*(.*?\S)\s*(?=[^\s=]+=|$)/mg); } sub build_usbserial_tree { my $text = shift; my %tree = (); while( $text =~ /^([^:]+):(.*)/mg ) { my ($tts,$params) = ($1,$2); $tree{$tts} = { tts => $tts }; while ($params =~ m/\s+([^:]+):(?:"([^"]*)"|(\S+))/g) { $tree{$tts}{$1} = $2||$3; } } return %tree; } sub usbkey { if( $Opt{kernel} eq "2.4" ) { (my $key = $_[0]) =~ s/^.*-//; return $key; } return $_[0]; } # # getSerialDevName # # For each device, force to use dev_prefix if it's not an array. Otherwise, # assume it's a list of candidate prefixes. Check them and commit to the # first one that actually exists. # sub getSerialDevName { my $devnum = shift; my $devname = undef; if( defined $devnum ) { if( ref($Opt{dev_prefix}) eq "ARRAY" ) { $devname = $devnum; for my $prefix (@{$Opt{dev_prefix}}) { my $file = $prefix . $devnum; if( -e $file ) { $devname = $file; last; } } } else { $devname = $Opt{dev_prefix} . $devnum; } } return $devname; } # # Print motelist # sub print_motelist { my @devs = @_; # If none were found, quit if( @devs == 0 ) { print "No devices found.\n"; return; } # Print a header if( !$Opt{compact} ) { if( $Opt{usb} ) { print << "EOF" unless $Opt{compact}; Bus Dev USB Path Reference Device Description --- --- ------------------------ ---------- ---------------- ------------------------------------- EOF } else { print << "EOF" unless $Opt{compact}; Reference Device Description ---------- ---------------- --------------------------------------------- EOF } } # Print the usb information for my $dev (sort { cmp_usbdev($a,$b) } @devs) { my $desc = join( " ", $dev->{InfoManufacturer}||"", $dev->{InfoProduct}||"" ) || " (none)"; my @output = ( $dev->{InfoSerial}||" (none)", $dev->{SerialDevName}, $desc ); @output = ( $dev->{UsbBusNum}, $dev->{UsbDevNum}, $dev->{UsbPath}, @output ) if $Opt{usb}; if( $Opt{compact} ) { print join(",",@output) . "\n"; } else { printf( ($Opt{usb}?"%3d %3d %-24s ":"")."%-10s %-16s %s\n", @output ); } } } # # Cmp Usbdev's # sub cmp_usbdev { my ($a,$b) = @_; if( defined $a->{SerialDevNum} ) { if( defined $b->{SerialDevNum} ) { return $a->{SerialDevNum} <=> $b->{SerialDevNum}; } return -1; } return 1 if defined $b->{SerialDevNum}; return ($a->{InfoSerial}||"") cmp ($b->{InfoSerial}||""); } # # Read a file in # sub snarf { open my $fh, $_[0] or return undef; my $text = do{local $/;<$fh>}; close $fh; $text =~ s/\s+$// if $_[1]; return $text; } tinyos-tools-1.4.2/tools/platforms/msp430/motelist/motelist-macos.in000066400000000000000000000030041206361226500255260ustar00rootroot00000000000000#!@pathperl@ -w use strict; my $help = <<'EOF'; usage: motelist [options] options: -h display this help -c compact format, not pretty but easier for parsing EOF my %Opt = ( compact => 0, dev_prefix => [ "/dev/tty.usbserial-" ], ); while (@ARGV) { last unless $ARGV[0] =~ /^-/; my $opt = shift @ARGV; if( $opt eq "-h" ) { print "$help\n"; exit 0; } elsif( $opt eq "-c" ) { $Opt{compact} = 1; } else { print STDERR "$help\nerror, unknown command line option $opt\n"; exit 1; } } print_motelist( scan_dev() ); # # Scan /dev for tty.usbserial-* # sub scan_dev { my @devs; foreach (`ls /dev/tty.usbserial-* 2>&1`) { my($dev, $serial) = /(\/dev\/tty.usbserial-(\S+))/; if ($serial ne "*:") { my $d; $d->{"InfoSerial"} = $serial; $d->{"SerialDevName"} = $dev; push(@devs, $d); } } return @devs; } # # Print motelist # sub print_motelist { my @devs = @_; # If none were found, quit if( @devs == 0 ) { print "No devices found.\n"; return; } # Print a header if( !$Opt{compact} ) { print << "EOF" unless $Opt{compact}; Reference Device Description ---------- --------------------------- --------------------------------------- EOF } # Print the usb information for my $dev (@devs) { my $desc = "(none)"; my @output = ( $dev->{"InfoSerial"}, $dev->{"SerialDevName"}, $desc ); if( $Opt{compact} ) { print join(",",@output) . "\n"; } else { printf( "%-10s %-27s %s\n", @output ); } } } tinyos-tools-1.4.2/tools/platforms/msp430/motelist/motelist-win32.cpp000066400000000000000000000261231206361226500255510ustar00rootroot00000000000000// $Id: motelist-win32.cpp,v 1.5 2010-06-29 22:07:42 scipio Exp $ /* Copyright (c) 2000-2003 The Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. * - Neither the name of the copyright holder nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */ // @author Cory Sharp #include #include #include #include #include #include namespace TelosList { using std::cout; using std::endl; typedef std::string String; typedef const String& StringRef; typedef std::vector VecString; struct RegValue { typedef long long int_type; String name; String data; int_type data_int; int data_type; RegValue() : data_int(0), data_type(0) { } RegValue( StringRef _name, StringRef _data, int _type ) : name(_name), data(_data), data_int(atoi(data.c_str())), data_type(_type) { } RegValue( StringRef _name, int_type _data, int _type ) : name(_name), data(), data_int(_data), data_type(_type) { char buf[16]; int nbuf = sprintf( buf, "%lld", data_int ); data = String( buf, buf+nbuf ); } RegValue( StringRef _name, const char* _data, DWORD _dlen, int _type ) : name(_name), data_type(_type) { char buf[256]; int nbuf = 0; switch( data_type ) { case REG_BINARY: case REG_EXPAND_SZ: case REG_MULTI_SZ: case REG_SZ: data = String( _data, _dlen ); data_int = atoi( _data ); break; case REG_NONE: break; case REG_DWORD: data_int = *(DWORD*)_data; nbuf = sprintf( buf, "%ld", *(DWORD*)_data ); data = String( buf, buf+nbuf ); break; case REG_QWORD: data_int = *(long long*)_data; nbuf = sprintf( buf, "%lld", *(long long*)_data ); data = String( buf, buf+nbuf ); break; default: throw std::runtime_error( "unsupported data type in " + name ); } } }; class RegKey; typedef std::vector VecRegKey; typedef std::vector VecRegValue; class RegKey { HKEY m_hkey; String m_name; void openKey( HKEY hkey, StringRef subkey ) { LONG result = RegOpenKeyEx( hkey, subkey.c_str(), 0, (KEY_READ&~KEY_NOTIFY), &m_hkey ); if( result != ERROR_SUCCESS ) throw std::runtime_error( "could not open key " + m_name ); } void prefixName( HKEY root ) { if( root == HKEY_LOCAL_MACHINE ) m_name = "HKLM\\" + m_name; } public: ~RegKey() { RegCloseKey(m_hkey); m_hkey = (HKEY)INVALID_HANDLE_VALUE; } RegKey( HKEY hkey, StringRef subkey ) : m_hkey((HKEY)INVALID_HANDLE_VALUE), m_name(subkey) { prefixName( hkey ); openKey( hkey, subkey ); } RegKey( const RegKey& key, StringRef subkey ) : m_hkey((HKEY)INVALID_HANDLE_VALUE), m_name(key.m_name+"\\"+subkey) { openKey( key.m_hkey, subkey ); } RegKey getSubkey( StringRef subkey ) const { return RegKey( m_hkey, subkey ); } RegKey operator[]( StringRef subkey ) const { return getSubkey( subkey ); } RegValue operator()( StringRef value ) const { return getValue( value ); } RegValue getValue( StringRef value ) const; VecString getSubkeyNames() const; VecRegValue getValues() const; }; VecString RegKey::getSubkeyNames() const { VecString v; DWORD i = 0; while(true) { DWORD len = 4096; char name[len]; LONG result = RegEnumKeyEx( m_hkey, i++, name, &len, NULL, NULL, NULL, NULL ); if( result == ERROR_NO_MORE_ITEMS ) break; if( result != ERROR_SUCCESS ) throw std::runtime_error( "error iterating keys in " + m_name ); v.push_back( String(name, name+len) ); } return v; } RegValue RegKey::getValue( StringRef value ) const { DWORD dtype = 0; DWORD dlen = 4096; char data[dlen]; LONG result = RegQueryValueEx( m_hkey, value.c_str(), NULL, &dtype, (BYTE*)data, &dlen ); if( result != ERROR_SUCCESS ) throw std::runtime_error( "error iterating values in " + m_name ); return RegValue( value, data, dlen, dtype ); } VecRegValue RegKey::getValues() const { VecRegValue v; DWORD i = 0; while(true) { DWORD nlen = 4096; DWORD dlen = 4096; char name[nlen]; char data[dlen]; DWORD dtype = 0; LONG result = RegEnumValue( m_hkey, i++, name, &nlen, NULL, &dtype, (BYTE*)data, &dlen ); dtype = REG_NONE; dlen = 0; if( result == ERROR_NO_MORE_ITEMS ) break; if( result != ERROR_SUCCESS ) throw std::runtime_error( "error iterating values in " + m_name ); v.push_back( RegValue( String(name,name+nlen), data, dlen, dtype ) ); } return v; } struct Device { String id; String comm; String info; int sortnum; int refcount; Device(): sortnum(0), refcount(0) { } bool operator<( const Device& a ) const { if( sortnum < a.sortnum ) return true; if( sortnum == a.sortnum ) return (id < a.id); return false; } }; typedef std::list ListDevice; String join( StringRef sep, const VecString& vs ) { String j; VecString::const_iterator i = vs.begin(); if( i != vs.end() ) j = *i++; while( i != vs.end() ) j += sep + *i++; return j; } String join( StringRef sep, const VecRegValue& vrv ) { String j; VecRegValue::const_iterator i = vrv.begin(); if( i != vrv.end() ) { j = i->name+"="+i->data; i++; } while( i != vrv.end() ) { j = i->name+"="+i->data; i++; } return j; } VecString split( const char* chars, StringRef str ) { VecString vs; String::size_type n0 = 0; String::size_type n1 = str.find_first_of( chars, 0 ); vs.push_back( str.substr( n0, n1 ) ); while( n1 != String::npos ) { n0 = n1+1; n1 = str.find_first_of( chars, n0 ); if( n1 != String::npos ) vs.push_back( str.substr( n0, n1-n0 ) ); else vs.push_back( str.substr( n0 ) ); } return vs; } int getRefCount( const RegKey& dclass, const RegKey& key ) { int refcnt = 0; try { String symstr = key["Device Parameters"]("SymbolicName").data; VecString sym = split( "\\#", symstr ); if( sym.size() >= 4 ) { sym.erase( sym.begin(), sym.begin()+sym.size()-4 ); String devstr = sym[3] +"\\##?#" + join("#",sym) + "\\Control"; RegKey ctrl = dclass[devstr]; refcnt = strtol( ctrl("ReferenceCount").data.c_str(), NULL, 0 ); } } catch( std::runtime_error e ) { } return refcnt; } ListDevice getDevices() { ListDevice devs; String ccs = "SYSTEM\\CurrentControlSet\\"; RegKey dclass( HKEY_LOCAL_MACHINE, ccs+"Control\\DeviceClasses" ); RegKey ftdibus( HKEY_LOCAL_MACHINE, ccs+"Enum\\FTDIBUS" ); RegKey usb6001( HKEY_LOCAL_MACHINE, ccs+"Enum\\USB\\Vid_0403&Pid_6001" ); VecString fdev = ftdibus.getSubkeyNames(); for( VecString::const_iterator i=fdev.begin(); i!=fdev.end(); i++ ) { if( i->substr(0,18) == String("VID_0403+PID_6001+") ) { Device d; d.id = i->substr(18,8); try { RegKey devkey = ftdibus[*i]; VecString devsub = devkey.getSubkeyNames(); d.comm = devkey[devsub[0]+"\\Device Parameters"]("PortName").data; } catch( std::runtime_error e ) { d.comm = "no_comm"; } try { d.info = usb6001[d.id]("LocationInformation").data; } catch( std::runtime_error e ) { } try { d.refcount = getRefCount( dclass, usb6001[d.id] ); } catch( std::runtime_error e ) { } String::size_type ncomm = d.comm.find_first_of("0123456789"); if( ncomm != String::npos ) d.sortnum = atoi( d.comm.substr(ncomm).c_str() ); devs.push_back(d); } } return devs; } void prettyPrintDevices( const ListDevice& devs ) { const char* fmt = "%-10s %-10s %s\n"; printf( fmt, "Reference", "CommPort", "Description" ); printf( "---------- ---------- ----------------------------------------\n" ); for( ListDevice::const_iterator i=devs.begin(); i!=devs.end(); i++ ) { String comm = i->comm; if( i->refcount == 0 ) { char buf[256]; int n = snprintf( buf, 255, " (%s)", i->comm.c_str() ); comm = String( buf, buf+n ); } printf( fmt, i->id.c_str(), comm.c_str(), i->info.c_str() ); } } void printDevices( const ListDevice& devs ) { for( ListDevice::const_iterator i=devs.begin(); i!=devs.end(); i++ ) { cout << i->id << "," << i->comm << "," << i->refcount << "," << i->info << endl; } } ListDevice getActiveDevices( const ListDevice& devs ) { ListDevice active; for( ListDevice::const_iterator i=devs.begin(); i!=devs.end(); i++ ) { if( i->refcount > 0 ) active.push_back( *i ); } return active; } void usage() { cout << "usage: motelist [-l] [-c]\n" << "\n" << " $Revision: 1.5 $ $Date: 2010-06-29 22:07:42 $\n" << "\n" << "options:\n" << " -h display this help\n" << " -l long format, also display disconnected devices\n" << " -c compact format, not pretty but easier for parsing\n" << std::endl; } int main( VecString args ) { bool showall = false; bool compact = false; //bool recovery = false; for( VecString::size_type n=1; n!=args.size(); n++ ) { StringRef opt = args[n]; if( opt == "-h" ) { usage(); return 0; } else if( opt == "-l" ) { showall = true; } else if( opt == "-c" ) { compact = true; } else if( opt == "-c" ) { compact = true; } else { usage(); throw std::runtime_error("unknown command line option "+opt); } } ListDevice devs = getDevices(); if( showall == false ) devs = getActiveDevices( devs ); devs.sort(); if( devs.empty() ) { cout << "No devices found." << endl; return 2; } else if( compact ) printDevices( devs ); else prettyPrintDevices( devs ); return 0; } }//namespace TelosList int main( int argc, char* argv[] ) { try { return TelosList::main( TelosList::VecString(argv,argv+argc) ); } catch( std::runtime_error e ) { std::cerr << "error, " << e.what() << std::endl; } return 1; } tinyos-tools-1.4.2/tools/platforms/msp430/motelist/motelist.1000066400000000000000000000015271206361226500241700ustar00rootroot00000000000000.TH motelist 1 "Feb 3, 2006" .LO 1 .SH NAME motelist - Locate connected USB devices .SH SYNOPSIS \fBmotelist\fR [\fB-c\fR] .SH DESCRIPTION \fBmotelist\fR lists all devices conntected to a PC through an FTDI USB-to-serial converter (see www.ftdichip.com). This includes the Telos A, Telos B, and Tmote modules. Options for All Platforms: \fB-h\fR display a help message \fB-c\fR compact format for automated parsing Options for Windows: \fB-l\fR long format, also display disconnected devices Options for Linux: \fB-f\fR specify the usb-serial file (if not in /proc/tty/driver/usbserial) \fB-k\fR kernel version: 2.4, 2.6, auto (default) \fB-m\fR method to scan usb: procfs, sysfs, auto (default) \fB-dev_prefix\fR force the device prefix for the serial device \fB-usb\fR display extra usb information .SH SEE ALSO .IR tos-bsl (1) tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/000077500000000000000000000000001206361226500215325ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/Makefile.am000066400000000000000000000010571206361226500235710ustar00rootroot00000000000000AUTOMAKE_OPTIONS = foreign sharedocdir=$(datadir)/doc/tinyos-tools-@PACKAGE_VERSION@ sharedoc_DATA = tos-bsl.txt tos-bsl-license.txt dist_man_MANS = tos-bsl.1 if CYGWIN # Cygwin support using native windows binary # (this code is not compatible with cygwin's python) install: tos-bsl-win.tar.gz tar xzvf tos-bsl-win.tar.gz -C $(DESTDIR)$(bindir) else # Linux support SUBDIRS = serial tinyoslibdir=$(libdir)/tinyos bin_SCRIPTS = tos-bsl tinyoslib_DATA = elf.py tos-bsl: tos-bsl.in sed -e 's,@tinyoslibdir\@,$(tinyoslibdir),g' tos-bsl.in >$@ endif tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/elf.py.in000066400000000000000000000271071206361226500232660ustar00rootroot00000000000000#!@pathpython@ import struct # ELF object file reader # (C) 2003 cliechti@gmx.net # Python license # size alignment # Elf32_Addr 4 4 Unsigned program address # Elf32_Half 2 2 Unsigned medium integer # Elf32_Off 4 4 Unsigned file offset # Elf32_Sword 4 4 Signed large integer # Elf32_Word 4 4 Unsigned large integer # unsignedchar 1 1 Unsigned small integer #define EI_NIDENT 16 #~ typedef struct{ #~ unsigned char e_ident[EI_NIDENT]; #~ Elf32_Half e_type; #~ Elf32_Half e_machine; #~ Elf32_Word e_version; #~ Elf32_Addr e_entry; #~ Elf32_Off e_phoff; #~ Elf32_Off e_shoff; #~ Elf32_Word e_flags; #~ Elf32_Half e_ehsize; #~ Elf32_Half e_phentsize; #~ Elf32_Half e_phnum; #~ Elf32_Half e_shentsize; #~ Elf32_Half e_shnum; #~ Elf32_Half e_shstrndx; #~ } Elf32_Ehdr; #Section Header #~ typedef struct { #~ Elf32_Word sh_name; #~ Elf32_Word sh_type; #~ Elf32_Word sh_flags; #~ Elf32_Addr sh_addr; #~ Elf32_Off sh_offset; #~ Elf32_Word sh_size; #~ Elf32_Word sh_link; #~ Elf32_Word sh_info; #~ Elf32_Word sh_addralign; #~ Elf32_Word sh_entsize; #~ } Elf32_Shdr; #~ typedef struct { #~ Elf32_Word p_type; #~ Elf32_Off p_offset; #~ Elf32_Addr p_vaddr; #~ Elf32_Addr p_paddr; #~ Elf32_Word p_filesz; #~ Elf32_Word p_memsz; #~ Elf32_Word p_flags; #~ Elf32_Word p_align; #~ } Elf32_Phdr; class ELFException(Exception): pass class ELFSection: """read and store a section""" Elf32_Shdr = "= section.sh_addr + section.sh_size) \ and (not (section.sh_flags & ELFSection.SHF_ALLOC and section.sh_type != ELFSection.SHT_NOBITS) \ or (p.p_offset <= section.sh_offset \ and (p.p_offset + p.p_filesz >= section.sh_offset + section.sh_size)))): return section.sh_addr + p.p_paddr - p.p_vaddr return section.sh_addr def getSections(self): """get sections relevant for the application""" res = [] for section in self.sections: if section.sh_flags & ELFSection.SHF_ALLOC and section.sh_type != ELFSection.SHT_NOBITS: res.append(section) return res def __str__(self): """pretty print for debug...""" return "%s(self.e_type=%r, self.e_machine=%r, self.e_version=%r, sections=%r)" % ( self.__class__.__name__, self.e_type, self.e_machine, self.e_version, [section.name for section in self.sections]) if __name__ == '__main__': print "This is only a module test!" elf = ELFObject() elf.fromFile(open("test.elf")) if elf.e_type != ELFObject.ET_EXEC: raise Exception("No executable") print elf #~ print repr(elf.getSection('.text').data) #~ print [(s.name, hex(s.sh_addr)) for s in elf.getSections()] print "-"*20 for p in elf.sections: print p print "-"*20 for p in elf.getSections(): print p print "-"*20 for p in elf.getProgrammableSections(): print p tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/serial/000077500000000000000000000000001206361226500230115ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/serial/Makefile.am000066400000000000000000000003051206361226500250430ustar00rootroot00000000000000AUTOMAKE_OPTIONS = foreign tinyoslibdir=$(libdir)/tinyos serialdir=$(tinyoslibdir)/serial serial_DATA = __init__.py \ serialjava.py \ serialposix.py \ serialutil.py \ serialwin32.py tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/serial/__init__.py.in000066400000000000000000000012721206361226500255310ustar00rootroot00000000000000#!@pathpython@ #portable serial port access with python #this is a wrapper module for different platform implementations # # (C)2001-2002 Chris Liechti # this is distributed under a free software license, see license.txt import sys, os, string VERSION = "$Revision: 1.5 $" #extract CVS version #chose an implementation, depending on os if os.name == 'nt': #sys.platform == 'win32': from serialwin32 import * elif os.name == 'posix': from serialposix import * elif os.name == 'java': from serialjava import * else: raise "Sorry no implementation for your platform available." #no "mac" implementation. someone want's to write it? i have no access to a mac. tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/serial/serialjava.py000066400000000000000000000157011206361226500255100ustar00rootroot00000000000000#!jython #module for serial IO for Jython and JavaComm #see __init__.py # #(C) 2002 Chris Liechti # this is distributed under a free software license, see license.txt import sys, os, string, javax.comm import serialutil VERSION = "$Revision: 1.5 $" #extract CVS version PARITY_NONE, PARITY_EVEN, PARITY_ODD, PARITY_MARK, PARITY_SPACE = (0,1,2,3,4) STOPBITS_ONE, STOPBITS_TWO, STOPBITS_ONE_HALVE = (1, 2, 3) FIVEBITS, SIXBITS, SEVENBITS, EIGHTBITS = (5,6,7,8) portNotOpenError = ValueError('port not open') def device(portnumber): enum = javax.comm.CommPortIdentifier.getPortIdentifiers() ports = [] while enum.hasMoreElements(): el = enum.nextElement() if el.getPortType() == javax.comm.CommPortIdentifier.PORT_SERIAL: ports.append(el) return ports[portnumber] class Serial(serialutil.FileLike): def __init__(self, port, #number of device, numbering starts at #zero. if everything fails, the user #can specify a device string, note #that this isn't portable anymore baudrate=9600, #baudrate bytesize=EIGHTBITS, #number of databits parity=PARITY_NONE, #enable parity checking stopbits=STOPBITS_ONE, #number of stopbits timeout=None, #set a timeout value, None for waiting forever xonxoff=0, #enable software flow control rtscts=0, #enable RTS/CTS flow control ): if type(port) == type(''): #strings are taken directly portId = javax.comm.CommPortIdentifier.getPortIdentifier(port) else: portId = device(port) #numbers are transformed to a comportid obj self.portstr = portId.getName() try: self.sPort = portId.open("python serial module", 10) except Exception, msg: self.sPort = None raise serialutil.SerialException, "could not open port: %s" % msg self.instream = self.sPort.getInputStream() self.outstream = self.sPort.getOutputStream() self.sPort.enableReceiveTimeout(30) if bytesize == FIVEBITS: self.databits = javax.comm.SerialPort.DATABITS_5 elif bytesize == SIXBITS: self.databits = javax.comm.SerialPort.DATABITS_6 elif bytesize == SEVENBITS: self.databits = javax.comm.SerialPort.DATABITS_7 elif bytesize == EIGHTBITS: self.databits = javax.comm.SerialPort.DATABITS_8 else: raise ValueError, "unsupported bytesize" if stopbits == STOPBITS_ONE: self.jstopbits = javax.comm.SerialPort.STOPBITS_1 elif stopbits == STOPBITS_ONE_HALVE: self.jstopbits = javax.comm.SerialPort.STOPBITS_1_5 elif stopbits == STOPBITS_TWO: self.jstopbits = javax.comm.SerialPort.STOPBITS_2 else: raise ValueError, "unsupported number of stopbits" if parity == PARITY_NONE: self.jparity = javax.comm.SerialPort.PARITY_NONE elif parity == PARITY_EVEN: self.jparity = javax.comm.SerialPort.PARITY_EVEN elif parity == PARITY_ODD: self.jparity = javax.comm.SerialPort.PARITY_ODD elif parity == PARITY_MARK: self.jparity = javax.comm.SerialPort.PARITY_MARK elif parity == PARITY_SPACE: self.jparity = javax.comm.SerialPort.PARITY_SPACE else: raise ValueError, "unsupported parity type" jflowin = jflowout = 0 if rtscts: jflowin = jflowin | javax.comm.SerialPort.FLOWCONTROL_RTSCTS_IN jflowout = jflowout | javax.comm.SerialPort.FLOWCONTROL_RTSCTS_OUT if xonxoff: jflowin = jflowin | javax.comm.SerialPort.FLOWCONTROL_XONXOFF_IN jflowout = jflowout | javax.comm.SerialPort.FLOWCONTROL_XONXOFF_OUT self.sPort.setSerialPortParams(baudrate, self.databits, self.jstopbits, self.jparity) self.sPort.setFlowControlMode(jflowin | jflowout) self.timeout = timeout if timeout >= 0: self.sPort.enableReceiveTimeout(timeout*1000) else: self.sPort.disableReceiveTimeout() def close(self): if self.sPort: self.instream.close() self.outstream.close() self.sPort.close() self.sPort = None def setBaudrate(self, baudrate): """change baudrate after port is open""" if not self.sPort: raise portNotOpenError self.sPort.setSerialPortParams(baudrate, self.databits, self.jstopbits, self.jparity) def inWaiting(self): if not self.sPort: raise portNotOpenError return self.instream.available() def write(self, data): if not self.sPort: raise portNotOpenError self.outstream.write(data) def read(self, size=1): if not self.sPort: raise portNotOpenError read = '' if size > 0: while len(read) < size: x = self.instream.read() if x == -1: if self.timeout >= 0: break else: read = read + chr(x) return read def flushInput(self): if not self.sPort: raise portNotOpenError self.instream.skip(self.instream.available()) def flushOutput(self): if not self.sPort: raise portNotOpenError self.outstream.flush() def sendBreak(self): if not self.sPort: raise portNotOpenError self.sPort.sendBreak() def getDSR(self): if not self.sPort: raise portNotOpenError self.sPort.isDSR() def getCD(self): if not self.sPort: raise portNotOpenError self.sPort.isCD() def getRI(self): if not self.sPort: raise portNotOpenError self.sPort.isRI() def getCTS(self): if not self.sPort: raise portNotOpenError self.sPort.isCTS() def setDTR(self,on=1): if not self.sPort: raise portNotOpenError self.sPort.setDTR(on) def setRTS(self,on=1): if not self.sPort: raise portNotOpenError self.sPort.setRTS(on) if __name__ == '__main__': s = Serial(0, baudrate=19200, #baudrate bytesize=EIGHTBITS, #number of databits parity=PARITY_EVEN, #enable parity checking stopbits=STOPBITS_ONE, #number of stopbits timeout=3, #set a timeout value, None for waiting forever xonxoff=0, #enable software flow control rtscts=0, #enable RTS/CTS flow control ) s.setRTS(1) s.setDTR(1) s.flushInput() s.flushOutput() s.write('hello') print repr(s.read(5)) print s.inWaiting() del s tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/serial/serialposix.py.in000066400000000000000000000352531206361226500263420ustar00rootroot00000000000000#!@pathpython@ #module for serial IO for POSIX compatible systems, like Linux #see __init__.py # #(C) 2001-2002 Chris Liechti # this is distributed under a free software license, see license.txt # #parts based on code from Grant B. Edwards : # ftp://ftp.visi.com/users/grante/python/PosixSerial.py # references: http://www.easysw.com/~mike/serial/serial.html import sys, os, fcntl, termios, struct, string, select import serialutil VERSION = "$Revision: 1.5 $" #extract CVS version PARITY_NONE, PARITY_EVEN, PARITY_ODD = range(3) STOPBITS_ONE, STOPBITS_TWO = (1, 2) FIVEBITS, SIXBITS, SEVENBITS, EIGHTBITS = (5,6,7,8) #Do check the Python version as some constants have moved. if (sys.hexversion < 0x020100f0): import TERMIOS else: TERMIOS = termios if (sys.hexversion < 0x020200f0): import FCNTL else: FCNTL = fcntl #try to detect the os so that a device can be selected... plat = string.lower(sys.platform) if plat[:5] == 'linux': #Linux (confirmed) def device(port): return '/dev/ttyS%d' % port elif plat == 'cygwin': #cywin/win32 (confirmed) def device(port): return '/dev/com%d' % (port + 1) elif plat == 'openbsd3': #BSD (confirmed) def device(port): return '/dev/ttyp%d' % port elif plat[:3] == 'bsd' or \ plat[:6] == 'netbsd' or \ plat[:7] == 'freebsd' or \ plat[:7] == 'openbsd' or \ plat[:6] == 'darwin': #BSD (confirmed for freebsd4: cuaa%d) def device(port): return '/dev/cuaa%d' % port elif plat[:4] == 'irix': #IRIX (not tested) def device(port): return '/dev/ttyf%d' % port elif plat[:2] == 'hp': #HP-UX (not tested) def device(port): return '/dev/tty%dp0' % (port+1) elif plat[:5] == 'sunos': #Solaris/SunOS (confirmed) def device(port): return '/dev/tty%c' % (ord('a')+port) elif plat[:3] == 'dgux': #Digital UNIX (not tested) def device(port): return '/dev/tty0%d' % (port+1) else: #platform detection has failed... info = "sys.platform = %r\nos.name = %r\nserialposix.py version = %s" % (sys.platform, os.name, VERSION) print """send this information to the author of this module: %s also add the device name of the serial port and where the counting starts for the first serial port. e.g. 'first serial port: /dev/ttyS0' and with a bit luck you can get this module running... """ raise Exception, "this module does not run on this platform, sorry." #whats up with "aix", "beos", "sco", .... #they should work, just need to know the device names. # construct dictionaries for baud rate lookups baudEnumToInt = {} baudIntToEnum = {} for rate in (0,50,75,110,134,150,200,300,600,1200,1800,2400,4800,9600, 19200,38400,57600,115200,230400,460800,500000,576000,921600, 1000000,1152000,1500000,2000000,2500000,3000000,3500000,4000000 ): try: i = eval('TERMIOS.B'+str(rate)) baudEnumToInt[i]=rate baudIntToEnum[rate] = i except: pass #load some constants for later use. #try to use values from TERMIOS, use defaults from linux otherwise TIOCMGET = hasattr(TERMIOS, 'TIOCMGET') and TERMIOS.TIOCMGET or 0x5415 TIOCMBIS = hasattr(TERMIOS, 'TIOCMBIS') and TERMIOS.TIOCMBIS or 0x5416 TIOCMBIC = hasattr(TERMIOS, 'TIOCMBIC') and TERMIOS.TIOCMBIC or 0x5417 TIOCMSET = hasattr(TERMIOS, 'TIOCMSET') and TERMIOS.TIOCMSET or 0x5418 #TIOCM_LE = hasattr(TERMIOS, 'TIOCM_LE') and TERMIOS.TIOCM_LE or 0x001 TIOCM_DTR = hasattr(TERMIOS, 'TIOCM_DTR') and TERMIOS.TIOCM_DTR or 0x002 TIOCM_RTS = hasattr(TERMIOS, 'TIOCM_RTS') and TERMIOS.TIOCM_RTS or 0x004 #TIOCM_ST = hasattr(TERMIOS, 'TIOCM_ST') and TERMIOS.TIOCM_ST or 0x008 #TIOCM_SR = hasattr(TERMIOS, 'TIOCM_SR') and TERMIOS.TIOCM_SR or 0x010 TIOCM_CTS = hasattr(TERMIOS, 'TIOCM_CTS') and TERMIOS.TIOCM_CTS or 0x020 TIOCM_CAR = hasattr(TERMIOS, 'TIOCM_CAR') and TERMIOS.TIOCM_CAR or 0x040 TIOCM_RNG = hasattr(TERMIOS, 'TIOCM_RNG') and TERMIOS.TIOCM_RNG or 0x080 TIOCM_DSR = hasattr(TERMIOS, 'TIOCM_DSR') and TERMIOS.TIOCM_DSR or 0x100 TIOCM_CD = hasattr(TERMIOS, 'TIOCM_CD') and TERMIOS.TIOCM_CD or TIOCM_CAR TIOCM_RI = hasattr(TERMIOS, 'TIOCM_RI') and TERMIOS.TIOCM_RI or TIOCM_RNG #TIOCM_OUT1 = hasattr(TERMIOS, 'TIOCM_OUT1') and TERMIOS.TIOCM_OUT1 or 0x2000 #TIOCM_OUT2 = hasattr(TERMIOS, 'TIOCM_OUT2') and TERMIOS.TIOCM_OUT2 or 0x4000 TIOCINQ = hasattr(TERMIOS, 'FIONREAD') and TERMIOS.FIONREAD or 0x541B TIOCM_zero_str = struct.pack('I', 0) TIOCM_RTS_str = struct.pack('I', TIOCM_RTS) TIOCM_DTR_str = struct.pack('I', TIOCM_DTR) portNotOpenError = ValueError('port not open') class Serial(serialutil.FileLike): def __init__(self, port, #number of device, numbering starts at #zero. if everything fails, the user #can specify a device string, note #that this isn't portable anymore baudrate=9600, #baudrate bytesize=EIGHTBITS, #number of databits parity=PARITY_NONE, #enable parity checking stopbits=STOPBITS_ONE, #number of stopbits timeout=None, #set a timeout value, None for waiting forever xonxoff=0, #enable software flow control rtscts=0, #enable RTS/CTS flow control ): """init comm port""" self.fd = None self.timeout = timeout vmin = vtime = 0 #timeout is done via select #open if type(port) == type(''): #strings are taken directly self.portstr = port else: self.portstr = device(port) #numbers are transformed to a os dependant string try: self.fd = os.open(self.portstr, os.O_RDWR|os.O_NOCTTY|os.O_NONBLOCK) except Exception, msg: self.fd = None raise serialutil.SerialException, "could not open port: %s" % msg fcntl.fcntl(self.fd, FCNTL.F_SETFL, 0) #set blocking try: self.__tcgetattr() #read current settings except termios.error, msg: #if a port is nonexistent but has a /dev file, it'll fail here raise serialutil.SerialException, "could not open port: %s" % msg #set up raw mode / no echo / binary self.cflag = self.cflag | (TERMIOS.CLOCAL|TERMIOS.CREAD) self.lflag = self.lflag & ~(TERMIOS.ICANON|TERMIOS.ECHO|TERMIOS.ECHOE|TERMIOS.ECHOK|TERMIOS.ECHONL| TERMIOS.ECHOCTL|TERMIOS.ECHOKE|TERMIOS.ISIG|TERMIOS.IEXTEN) #|TERMIOS.ECHOPRT self.oflag = self.oflag & ~(TERMIOS.OPOST) if hasattr(TERMIOS, 'IUCLC'): self.iflag = self.iflag & ~(TERMIOS.INLCR|TERMIOS.IGNCR|TERMIOS.ICRNL|TERMIOS.IUCLC|TERMIOS.IGNBRK) else: self.iflag = self.iflag & ~(TERMIOS.INLCR|TERMIOS.IGNCR|TERMIOS.ICRNL|TERMIOS.IGNBRK) #setup baudrate try: self.ispeed = self.ospeed = baudIntToEnum[baudrate] except: raise ValueError,'invalid baud rate: %s' % baudrate #setup char len self.cflag = self.cflag & ~TERMIOS.CSIZE if bytesize == 8: self.cflag = self.cflag | TERMIOS.CS8 elif bytesize == 7: self.cflag = self.cflag | TERMIOS.CS7 elif bytesize == 6: self.cflag = self.cflag | TERMIOS.CS6 elif bytesize == 5: self.cflag = self.cflag | TERMIOS.CS5 else: raise ValueError,'invalid char len: '+str(clen) #setup stopbits if stopbits == STOPBITS_ONE: self.cflag = self.cflag & ~(TERMIOS.CSTOPB) elif stopbits == STOPBITS_TWO: self.cflag = self.cflag | (TERMIOS.CSTOPB) else: raise ValueError,'invalid stopit specification:'+str(stopbits) #setup parity self.iflag = self.iflag & ~(TERMIOS.INPCK|TERMIOS.ISTRIP) if parity == PARITY_NONE: self.cflag = self.cflag & ~(TERMIOS.PARENB|TERMIOS.PARODD) elif parity == PARITY_EVEN: self.cflag = self.cflag & ~(TERMIOS.PARODD) self.cflag = self.cflag | (TERMIOS.PARENB) elif parity == PARITY_ODD: self.cflag = self.cflag | (TERMIOS.PARENB|TERMIOS.PARODD) else: raise ValueError,'invalid parity: '+str(par) #setup flow control #xonxoff if hasattr(TERMIOS, 'IXANY'): if xonxoff: self.iflag = self.iflag | (TERMIOS.IXON|TERMIOS.IXOFF|TERMIOS.IXANY) else: self.iflag = self.iflag & ~(TERMIOS.IXON|TERMIOS.IXOFF|TERMIOS.IXANY) else: if xonxoff: self.iflag = self.iflag | (TERMIOS.IXON|TERMIOS.IXOFF) else: self.iflag = self.iflag & ~(TERMIOS.IXON|TERMIOS.IXOFF) #rtscts if hasattr(TERMIOS, 'CRTSCTS'): if rtscts: self.cflag = self.cflag | (TERMIOS.CRTSCTS) else: self.cflag = self.cflag & ~(TERMIOS.CRTSCTS) elif hasattr(TERMIOS, 'CNEW_RTSCTS'): #try it with alternate constant name if rtscts: self.cflag = self.cflag | (TERMIOS.CNEW_RTSCTS) else: self.cflag = self.cflag & ~(TERMIOS.CNEW_RTSCTS) #XXX should there be a warning if setting up rtscts (and xonxoff etc) fails?? #buffer #vmin "minimal number of characters to be read. = for non blocking" if vmin<0 or vmin>255: raise ValueError,'invalid vmin: '+str(vmin) self.cc[TERMIOS.VMIN] = vmin #vtime if vtime<0 or vtime>255: raise ValueError,'invalid vtime: '+str(vtime) self.cc[TERMIOS.VTIME] = vtime #activate settings self.__tcsetattr() def __tcsetattr(self): """internal function to set port attributes""" termios.tcsetattr(self.fd, TERMIOS.TCSANOW, [self.iflag,self.oflag,self.cflag,self.lflag,self.ispeed,self.ospeed,self.cc]) def __tcgetattr(self): """internal function to get port attributes""" self.iflag,self.oflag,self.cflag,self.lflag,self.ispeed,self.ospeed,self.cc = termios.tcgetattr(self.fd) def close(self): """close port""" if self.fd: os.close(self.fd) self.fd = None def setBaudrate(self, baudrate): """change baudrate after port is open""" if not self.fd: raise portNotOpenError self.__tcgetattr() #read current settings #setup baudrate try: self.ispeed = self.ospeed = baudIntToEnum[baudrate] except: raise ValueError,'invalid baud rate: %s' % baudrate self.__tcsetattr() def inWaiting(self): """how many character are in the input queue""" #~ s = fcntl.ioctl(self.fd, TERMIOS.FIONREAD, TIOCM_zero_str) s = fcntl.ioctl(self.fd, TIOCINQ, TIOCM_zero_str) return struct.unpack('I',s)[0] def write(self, data): """write a string to the port""" if not self.fd: raise portNotOpenError t = len(data) d = data while t>0: n = os.write(self.fd, d) d = d[n:] t = t - n def read(self, size=1): """read a number of bytes from the port. the default is one (unlike files)""" if not self.fd: raise portNotOpenError read = '' inp = None if size > 0: while len(read) < size: #print "\tread(): size",size, "have", len(read) #debug ready,_,_ = select.select([self.fd],[],[], self.timeout) if not ready: break #timeout buf = os.read(self.fd, size-len(read)) read = read + buf if self.timeout >= 0 and not buf: break #early abort on timeout return read def flushInput(self): """clear input queue""" if not self.fd: raise portNotOpenError termios.tcflush(self.fd, TERMIOS.TCIFLUSH) def flushOutput(self): """flush output""" if not self.fd: raise portNotOpenError termios.tcflush(self.fd, TERMIOS.TCOFLUSH) def sendBreak(self): """send break signal""" if not self.fd: raise portNotOpenError termios.tcsendbreak(self.fd, 0) def drainOutput(self): """internal - not portable!""" if not self.fd: raise portNotOpenError termios.tcdrain(self.fd) def nonblocking(self): """internal - not portable!""" if not self.fd: raise portNotOpenError fcntl.fcntl(self.fd, FCNTL.F_SETFL, FCNTL.O_NONBLOCK) def getDSR(self): """read terminal status line""" if not self.fd: raise portNotOpenError s = fcntl.ioctl(self.fd, TIOCMGET, TIOCM_zero_str) return struct.unpack('I',s)[0] & TIOCM_DSR def getCD(self): """read terminal status line""" if not self.fd: raise portNotOpenError s = fcntl.ioctl(self.fd, TIOCMGET, TIOCM_zero_str) return struct.unpack('I',s)[0] & TIOCM_CD def getRI(self): """read terminal status line""" if not self.fd: raise portNotOpenError s = fcntl.ioctl(self.fd, TIOCMGET, TIOCM_zero_str) return struct.unpack('I',s)[0] & TIOCM_RI def getCTS(self): """read terminal status line""" if not self.fd: raise portNotOpenError s = fcntl.ioctl(self.fd, TIOCMGET, TIOCM_zero_str) return struct.unpack('I',s)[0] & TIOCM_CTS def setDTR(self,on=1): """set terminal status line""" if not self.fd: raise portNotOpenError if on: fcntl.ioctl(self.fd, TIOCMBIS, TIOCM_DTR_str) else: fcntl.ioctl(self.fd, TIOCMBIC, TIOCM_DTR_str) def setRTS(self,on=1): """set terminal status line""" if not self.fd: raise portNotOpenError if on: fcntl.ioctl(self.fd, TIOCMBIS, TIOCM_RTS_str) else: fcntl.ioctl(self.fd, TIOCMBIC, TIOCM_RTS_str) if __name__ == '__main__': s = Serial(0, baudrate=19200, #baudrate bytesize=EIGHTBITS, #number of databits parity=PARITY_EVEN, #enable parity checking stopbits=STOPBITS_ONE, #number of stopbits timeout=3, #set a timeout value, None for waiting forever xonxoff=0, #enable software flow control rtscts=0, #enable RTS/CTS flow control ) s.setRTS(1) s.setDTR(1) s.flushInput() s.flushOutput() s.write('hello') print repr(s.read(5)) print s.inWaiting() del s tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/serial/serialutil.py000066400000000000000000000040071206361226500255410ustar00rootroot00000000000000 class SerialException(Exception): pass class FileLike: """An abstract file like class. This class implements readline and readlines based on read and writelines based on write. This class is used to provide the above functions for to Serial port objects. Note that when the serial port was opened with _NO_ timeout that readline blocks until it sees a newline (or the specified size is reached) and that readlines would never return and therefore refuses to work (it raises an exception in this case)! """ def read(self, size): raise NotImplementedError def write(self, s): raise NotImplementedError def readline(self, size=None, eol='\n'): """read a line which is terminated with end-of-line (eol) character ('\n' by default) or until timeout""" line = '' while 1: c = self.read(1) if c: line += c #not very efficient but lines are usually not that long if c == eol: break if size is not None and len(line) >= size: break else: break return line def readlines(self, sizehint=None, eol='\n'): """read a list of lines, until timeout sizehint is ignored""" if self.timeout is None: raise ValueError, "Serial port MUST have enabled timeout for this function!" lines = [] while 1: line = self.readline(eol=eol) if line: lines.append(line) if line[-1] != eol: #was the line received with a timeout? break else: break return lines def xreadlines(self, sizehint=None): """just call readlines - here for compatibility""" return self.readlines() def writelines(self, sequence): for line in sequence: self.write(line) def flush(self): """flush of file like objects""" pass tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/serial/serialwin32.py000066400000000000000000000262261206361226500255350ustar00rootroot00000000000000#! python #serial driver for win32 #see __init__.py # #(C) 2001-2002 Chris Liechti # this is distributed under a free software license, see license.txt import win32file # The base COM port and file IO functions. import win32event # We use events and the WaitFor[Single|Multiple]Objects functions. import win32con # constants. import sys, string import serialutil VERSION = "$Revision: 1.5 $" #extract CVS version PARITY_NONE, PARITY_EVEN, PARITY_ODD = range(3) STOPBITS_ONE, STOPBITS_TWO = (1, 2) FIVEBITS, SIXBITS, SEVENBITS, EIGHTBITS = (5,6,7,8) portNotOpenError = ValueError('port not open') #from winbase.h. these should realy be in win32con MS_CTS_ON = 16 MS_DSR_ON = 32 MS_RING_ON = 64 MS_RLSD_ON = 128 class Serial(serialutil.FileLike): def __init__(self, port, #number of device, numbering starts at #zero. if everything fails, the user #can specify a device string, note #that this isn't portable anymore baudrate=9600, #baudrate bytesize=EIGHTBITS, #number of databits parity=PARITY_NONE, #enable parity checking stopbits=STOPBITS_ONE, #number of stopbits timeout=None, #set a timeout value, None for waiting forever xonxoff=0, #enable software flow control rtscts=0, #enable RTS/CTS flow control ): """initialize comm port""" self.timeout = timeout if type(port) == type(''): #strings are taken directly self.portstr = port else: # CSS 20040528 - open wasn't working for COM10 and greater, but by # chance the '\\.\COM10' format seems to work, yay! But, only use # if for COM10 and greater in case it introduces some other # incompatibility. if port < 9: self.portstr = 'COM%d' % (port+1) #numbers are transformed to a string else: self.portstr = '\\\\.\\COM%d' % (port+1) #WIN NT format?? try: self.hComPort = win32file.CreateFile(self.portstr, win32con.GENERIC_READ | win32con.GENERIC_WRITE, 0, # exclusive access None, # no security win32con.OPEN_EXISTING, win32con.FILE_ATTRIBUTE_NORMAL | win32con.FILE_FLAG_OVERLAPPED, None) except Exception, msg: self.hComPort = None #'cause __del__ is called anyway raise serialutil.SerialException, "could not open port: %s" % msg # Setup a 4k buffer win32file.SetupComm(self.hComPort, 4096, 4096) #Save original timeout values: self.orgTimeouts = win32file.GetCommTimeouts(self.hComPort) #Set Windows timeout values #timeouts is a tuple with the following items: #(ReadIntervalTimeout,ReadTotalTimeoutMultiplier, # ReadTotalTimeoutConstant,WriteTotalTimeoutMultiplier, # WriteTotalTimeoutConstant) if timeout is None: timeouts = (0, 0, 0, 0, 0) elif timeout == 0: timeouts = (win32con.MAXDWORD, 0, 0, 0, 0) else: #timeouts = (0, 0, 0, 0, 0) #timeouts are done with WaitForSingleObject #timeouts = (win32con.MAXDWORD, 0, 0, 0, 1000) #doesn't works #timeouts = (timeout*1000, 0, timeout*1000, 0, 0) timeouts = (0, 0, timeout*1000, 0, timeout*1000) win32file.SetCommTimeouts(self.hComPort, timeouts) #win32file.SetCommMask(self.hComPort, win32file.EV_RXCHAR | win32file.EV_TXEMPTY | # win32file.EV_RXFLAG | win32file.EV_ERR) win32file.SetCommMask(self.hComPort, win32file.EV_RXCHAR | win32file.EV_RXFLAG | win32file.EV_ERR) #win32file.SetCommMask(self.hComPort, win32file.EV_ERR) # Setup the connection info. # Get state and modify it: comDCB = win32file.GetCommState(self.hComPort) comDCB.BaudRate = baudrate if bytesize == FIVEBITS: comDCB.ByteSize = 5 elif bytesize == SIXBITS: comDCB.ByteSize = 6 elif bytesize == SEVENBITS: comDCB.ByteSize = 7 elif bytesize == EIGHTBITS: comDCB.ByteSize = 8 if parity == PARITY_NONE: comDCB.Parity = win32file.NOPARITY comDCB.fParity = 0 # Dis/Enable Parity Check elif parity == PARITY_EVEN: comDCB.Parity = win32file.EVENPARITY comDCB.fParity = 1 # Dis/Enable Parity Check elif parity == PARITY_ODD: comDCB.Parity = win32file.ODDPARITY comDCB.fParity = 1 # Dis/Enable Parity Check if stopbits == STOPBITS_ONE: comDCB.StopBits = win32file.ONESTOPBIT elif stopbits == STOPBITS_TWO: comDCB.StopBits = win32file.TWOSTOPBITS comDCB.fBinary = 1 # Enable Binary Transmission # Char. w/ Parity-Err are replaced with 0xff (if fErrorChar is set to TRUE) if rtscts: comDCB.fRtsControl = win32file.RTS_CONTROL_HANDSHAKE comDCB.fDtrControl = win32file.DTR_CONTROL_HANDSHAKE else: comDCB.fRtsControl = win32file.RTS_CONTROL_ENABLE comDCB.fDtrControl = win32file.DTR_CONTROL_ENABLE comDCB.fOutxCtsFlow = rtscts comDCB.fOutxDsrFlow = rtscts comDCB.fOutX = xonxoff comDCB.fInX = xonxoff comDCB.fNull = 0 comDCB.fErrorChar = 0 comDCB.fAbortOnError = 0 win32file.SetCommState(self.hComPort, comDCB) # Clear buffers: # Remove anything that was there win32file.PurgeComm(self.hComPort, win32file.PURGE_TXCLEAR | win32file.PURGE_TXABORT | win32file.PURGE_RXCLEAR | win32file.PURGE_RXABORT) #print win32file.ClearCommError(self.hComPort) #flags, comState = #self.overlapped = win32file.OVERLAPPED() #self.overlapped.hEvent = win32event.CreateEvent(None, 0, 0, None) def __del__(self): self.close() def close(self): """close port""" if self.hComPort: #Wait until data is transmitted, but not too long... (Timeout-Time) #while 1: # flags, comState = win32file.ClearCommError(hComPort) # if comState.cbOutQue <= 0 or calcTimeout(startTime) > timeout: # break self.setRTS(0) self.setDTR(0) #Clear buffers: win32file.PurgeComm(self.hComPort, win32file.PURGE_TXCLEAR | win32file.PURGE_TXABORT | win32file.PURGE_RXCLEAR | win32file.PURGE_RXABORT) #Restore original timeout values: win32file.SetCommTimeouts(self.hComPort, self.orgTimeouts) #Close COM-Port: win32file.CloseHandle(self.hComPort) self.hComPort = None def setBaudrate(self, baudrate): """change baudrate after port is open""" if not self.hComPort: raise portNotOpenError # Setup the connection info. # Get state and modify it: comDCB = win32file.GetCommState(self.hComPort) comDCB.BaudRate = baudrate win32file.SetCommState(self.hComPort, comDCB) def inWaiting(self): """returns the number of bytes waiting to be read""" flags, comstat = win32file.ClearCommError(self.hComPort) return comstat.cbInQue def read(self, size=1): "read num bytes from serial port" if not self.hComPort: raise portNotOpenError read = '' if size > 0: overlapped = win32file.OVERLAPPED() overlapped.hEvent = win32event.CreateEvent(None, 1, 0, None) if self.timeout == 0: flags, comstat = win32file.ClearCommError(self.hComPort) n = min(comstat.cbInQue, size) if n > 0: rc, buf = win32file.ReadFile(self.hComPort, win32file.AllocateReadBuffer(n), overlapped) win32event.WaitForSingleObject(overlapped.hEvent, win32event.INFINITE) read = str(buf) else: flags, comstat = win32file.ClearCommError(self.hComPort) rc, buf = win32file.ReadFile(self.hComPort, win32file.AllocateReadBuffer(size), overlapped) n = win32file.GetOverlappedResult(self.hComPort, overlapped, 1) read = str(buf[:n]) return read def write(self, s): "write string to serial port" if not self.hComPort: raise portNotOpenError #print repr(s), overlapped = win32file.OVERLAPPED() overlapped.hEvent = win32event.CreateEvent(None, 1, 0, None) err, n = win32file.WriteFile(self.hComPort, s, overlapped) if err: #will be ERROR_IO_PENDING: # Wait for the write to complete. win32event.WaitForSingleObject(overlapped.hEvent, win32event.INFINITE) def flushInput(self): if not self.hComPort: raise portNotOpenError win32file.PurgeComm(self.hComPort, win32file.PURGE_RXCLEAR | win32file.PURGE_RXABORT) def flushOutput(self): if not self.hComPort: raise portNotOpenError win32file.PurgeComm(self.hComPort, win32file.PURGE_TXCLEAR | win32file.PURGE_TXABORT) def sendBreak(self): if not self.hComPort: raise portNotOpenError import time win32file.SetCommBreak(self.hComPort) #TODO: how to set the correct duration?? time.sleep(0.020) win32file.ClearCommBreak(self.hComPort) def setRTS(self,level=1): """set terminal status line""" if not self.hComPort: raise portNotOpenError if level: win32file.EscapeCommFunction(self.hComPort, win32file.SETRTS) else: win32file.EscapeCommFunction(self.hComPort, win32file.CLRRTS) def setDTR(self,level=1): """set terminal status line""" if not self.hComPort: raise portNotOpenError if level: win32file.EscapeCommFunction(self.hComPort, win32file.SETDTR) else: win32file.EscapeCommFunction(self.hComPort, win32file.CLRDTR) def getCTS(self): """read terminal status line""" if not self.hComPort: raise portNotOpenError return MS_CTS_ON & win32file.GetCommModemStatus(self.hComPort) != 0 def getDSR(self): """read terminal status line""" if not self.hComPort: raise portNotOpenError return MS_DSR_ON & win32file.GetCommModemStatus(self.hComPort) != 0 def getRI(self): """read terminal status line""" if not self.hComPort: raise portNotOpenError return MS_RING_ON & win32file.GetCommModemStatus(self.hComPort) != 0 def getCD(self): """read terminal status line""" if not self.hComPort: raise portNotOpenError return MS_RLSD_ON & win32file.GetCommModemStatus(self.hComPort) != 0 #Nur Testfunktion!! if __name__ == '__main__': print __name__ s = Serial(0) tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/serial/serialwin32.py.in000066400000000000000000000262261206361226500261420ustar00rootroot00000000000000#! python #serial driver for win32 #see __init__.py # #(C) 2001-2002 Chris Liechti # this is distributed under a free software license, see license.txt import win32file # The base COM port and file IO functions. import win32event # We use events and the WaitFor[Single|Multiple]Objects functions. import win32con # constants. import sys, string import serialutil VERSION = "$Revision: 1.5 $" #extract CVS version PARITY_NONE, PARITY_EVEN, PARITY_ODD = range(3) STOPBITS_ONE, STOPBITS_TWO = (1, 2) FIVEBITS, SIXBITS, SEVENBITS, EIGHTBITS = (5,6,7,8) portNotOpenError = ValueError('port not open') #from winbase.h. these should realy be in win32con MS_CTS_ON = 16 MS_DSR_ON = 32 MS_RING_ON = 64 MS_RLSD_ON = 128 class Serial(serialutil.FileLike): def __init__(self, port, #number of device, numbering starts at #zero. if everything fails, the user #can specify a device string, note #that this isn't portable anymore baudrate=9600, #baudrate bytesize=EIGHTBITS, #number of databits parity=PARITY_NONE, #enable parity checking stopbits=STOPBITS_ONE, #number of stopbits timeout=None, #set a timeout value, None for waiting forever xonxoff=0, #enable software flow control rtscts=0, #enable RTS/CTS flow control ): """initialize comm port""" self.timeout = timeout if type(port) == type(''): #strings are taken directly self.portstr = port else: # CSS 20040528 - open wasn't working for COM10 and greater, but by # chance the '\\.\COM10' format seems to work, yay! But, only use # if for COM10 and greater in case it introduces some other # incompatibility. if port < 9: self.portstr = 'COM%d' % (port+1) #numbers are transformed to a string else: self.portstr = '\\\\.\\COM%d' % (port+1) #WIN NT format?? try: self.hComPort = win32file.CreateFile(self.portstr, win32con.GENERIC_READ | win32con.GENERIC_WRITE, 0, # exclusive access None, # no security win32con.OPEN_EXISTING, win32con.FILE_ATTRIBUTE_NORMAL | win32con.FILE_FLAG_OVERLAPPED, None) except Exception, msg: self.hComPort = None #'cause __del__ is called anyway raise serialutil.SerialException, "could not open port: %s" % msg # Setup a 4k buffer win32file.SetupComm(self.hComPort, 4096, 4096) #Save original timeout values: self.orgTimeouts = win32file.GetCommTimeouts(self.hComPort) #Set Windows timeout values #timeouts is a tuple with the following items: #(ReadIntervalTimeout,ReadTotalTimeoutMultiplier, # ReadTotalTimeoutConstant,WriteTotalTimeoutMultiplier, # WriteTotalTimeoutConstant) if timeout is None: timeouts = (0, 0, 0, 0, 0) elif timeout == 0: timeouts = (win32con.MAXDWORD, 0, 0, 0, 0) else: #timeouts = (0, 0, 0, 0, 0) #timeouts are done with WaitForSingleObject #timeouts = (win32con.MAXDWORD, 0, 0, 0, 1000) #doesn't works #timeouts = (timeout*1000, 0, timeout*1000, 0, 0) timeouts = (0, 0, timeout*1000, 0, timeout*1000) win32file.SetCommTimeouts(self.hComPort, timeouts) #win32file.SetCommMask(self.hComPort, win32file.EV_RXCHAR | win32file.EV_TXEMPTY | # win32file.EV_RXFLAG | win32file.EV_ERR) win32file.SetCommMask(self.hComPort, win32file.EV_RXCHAR | win32file.EV_RXFLAG | win32file.EV_ERR) #win32file.SetCommMask(self.hComPort, win32file.EV_ERR) # Setup the connection info. # Get state and modify it: comDCB = win32file.GetCommState(self.hComPort) comDCB.BaudRate = baudrate if bytesize == FIVEBITS: comDCB.ByteSize = 5 elif bytesize == SIXBITS: comDCB.ByteSize = 6 elif bytesize == SEVENBITS: comDCB.ByteSize = 7 elif bytesize == EIGHTBITS: comDCB.ByteSize = 8 if parity == PARITY_NONE: comDCB.Parity = win32file.NOPARITY comDCB.fParity = 0 # Dis/Enable Parity Check elif parity == PARITY_EVEN: comDCB.Parity = win32file.EVENPARITY comDCB.fParity = 1 # Dis/Enable Parity Check elif parity == PARITY_ODD: comDCB.Parity = win32file.ODDPARITY comDCB.fParity = 1 # Dis/Enable Parity Check if stopbits == STOPBITS_ONE: comDCB.StopBits = win32file.ONESTOPBIT elif stopbits == STOPBITS_TWO: comDCB.StopBits = win32file.TWOSTOPBITS comDCB.fBinary = 1 # Enable Binary Transmission # Char. w/ Parity-Err are replaced with 0xff (if fErrorChar is set to TRUE) if rtscts: comDCB.fRtsControl = win32file.RTS_CONTROL_HANDSHAKE comDCB.fDtrControl = win32file.DTR_CONTROL_HANDSHAKE else: comDCB.fRtsControl = win32file.RTS_CONTROL_ENABLE comDCB.fDtrControl = win32file.DTR_CONTROL_ENABLE comDCB.fOutxCtsFlow = rtscts comDCB.fOutxDsrFlow = rtscts comDCB.fOutX = xonxoff comDCB.fInX = xonxoff comDCB.fNull = 0 comDCB.fErrorChar = 0 comDCB.fAbortOnError = 0 win32file.SetCommState(self.hComPort, comDCB) # Clear buffers: # Remove anything that was there win32file.PurgeComm(self.hComPort, win32file.PURGE_TXCLEAR | win32file.PURGE_TXABORT | win32file.PURGE_RXCLEAR | win32file.PURGE_RXABORT) #print win32file.ClearCommError(self.hComPort) #flags, comState = #self.overlapped = win32file.OVERLAPPED() #self.overlapped.hEvent = win32event.CreateEvent(None, 0, 0, None) def __del__(self): self.close() def close(self): """close port""" if self.hComPort: #Wait until data is transmitted, but not too long... (Timeout-Time) #while 1: # flags, comState = win32file.ClearCommError(hComPort) # if comState.cbOutQue <= 0 or calcTimeout(startTime) > timeout: # break self.setRTS(0) self.setDTR(0) #Clear buffers: win32file.PurgeComm(self.hComPort, win32file.PURGE_TXCLEAR | win32file.PURGE_TXABORT | win32file.PURGE_RXCLEAR | win32file.PURGE_RXABORT) #Restore original timeout values: win32file.SetCommTimeouts(self.hComPort, self.orgTimeouts) #Close COM-Port: win32file.CloseHandle(self.hComPort) self.hComPort = None def setBaudrate(self, baudrate): """change baudrate after port is open""" if not self.hComPort: raise portNotOpenError # Setup the connection info. # Get state and modify it: comDCB = win32file.GetCommState(self.hComPort) comDCB.BaudRate = baudrate win32file.SetCommState(self.hComPort, comDCB) def inWaiting(self): """returns the number of bytes waiting to be read""" flags, comstat = win32file.ClearCommError(self.hComPort) return comstat.cbInQue def read(self, size=1): "read num bytes from serial port" if not self.hComPort: raise portNotOpenError read = '' if size > 0: overlapped = win32file.OVERLAPPED() overlapped.hEvent = win32event.CreateEvent(None, 1, 0, None) if self.timeout == 0: flags, comstat = win32file.ClearCommError(self.hComPort) n = min(comstat.cbInQue, size) if n > 0: rc, buf = win32file.ReadFile(self.hComPort, win32file.AllocateReadBuffer(n), overlapped) win32event.WaitForSingleObject(overlapped.hEvent, win32event.INFINITE) read = str(buf) else: flags, comstat = win32file.ClearCommError(self.hComPort) rc, buf = win32file.ReadFile(self.hComPort, win32file.AllocateReadBuffer(size), overlapped) n = win32file.GetOverlappedResult(self.hComPort, overlapped, 1) read = str(buf[:n]) return read def write(self, s): "write string to serial port" if not self.hComPort: raise portNotOpenError #print repr(s), overlapped = win32file.OVERLAPPED() overlapped.hEvent = win32event.CreateEvent(None, 1, 0, None) err, n = win32file.WriteFile(self.hComPort, s, overlapped) if err: #will be ERROR_IO_PENDING: # Wait for the write to complete. win32event.WaitForSingleObject(overlapped.hEvent, win32event.INFINITE) def flushInput(self): if not self.hComPort: raise portNotOpenError win32file.PurgeComm(self.hComPort, win32file.PURGE_RXCLEAR | win32file.PURGE_RXABORT) def flushOutput(self): if not self.hComPort: raise portNotOpenError win32file.PurgeComm(self.hComPort, win32file.PURGE_TXCLEAR | win32file.PURGE_TXABORT) def sendBreak(self): if not self.hComPort: raise portNotOpenError import time win32file.SetCommBreak(self.hComPort) #TODO: how to set the correct duration?? time.sleep(0.020) win32file.ClearCommBreak(self.hComPort) def setRTS(self,level=1): """set terminal status line""" if not self.hComPort: raise portNotOpenError if level: win32file.EscapeCommFunction(self.hComPort, win32file.SETRTS) else: win32file.EscapeCommFunction(self.hComPort, win32file.CLRRTS) def setDTR(self,level=1): """set terminal status line""" if not self.hComPort: raise portNotOpenError if level: win32file.EscapeCommFunction(self.hComPort, win32file.SETDTR) else: win32file.EscapeCommFunction(self.hComPort, win32file.CLRDTR) def getCTS(self): """read terminal status line""" if not self.hComPort: raise portNotOpenError return MS_CTS_ON & win32file.GetCommModemStatus(self.hComPort) != 0 def getDSR(self): """read terminal status line""" if not self.hComPort: raise portNotOpenError return MS_DSR_ON & win32file.GetCommModemStatus(self.hComPort) != 0 def getRI(self): """read terminal status line""" if not self.hComPort: raise portNotOpenError return MS_RING_ON & win32file.GetCommModemStatus(self.hComPort) != 0 def getCD(self): """read terminal status line""" if not self.hComPort: raise portNotOpenError return MS_RLSD_ON & win32file.GetCommModemStatus(self.hComPort) != 0 #Nur Testfunktion!! if __name__ == '__main__': print __name__ s = Serial(0) tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/tos-bsl-license.txt000066400000000000000000000054111206361226500252770ustar00rootroot00000000000000Copyright (c) 2001-2003 Chris Liechti All Rights Reserved. This is the Python license. In short, you can use this product in commercial and non-commercial applications, modify it, redistribute it. A notification to the author when you use and/or modify it is welcome. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING THIS SOFTWARE ============================================ LICENSE AGREEMENT ----------------- 1. This LICENSE AGREEMENT is between the copyright holder of this product, and the Individual or Organization ("Licensee") accessing and otherwise using this product in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, the copyright holder hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use this product alone or in any derivative version, provided, however, that copyright holders License Agreement and copyright holders notice of copyright are retained in this product alone or in any derivative version prepared by Licensee. 3. In the event Licensee prepares a derivative work that is based on or incorporates this product or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to this product. 4. The copyright holder is making this product available to Licensee on an "AS IS" basis. THE COPYRIGHT HOLDER MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, THE COPYRIGHT HOLDER MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THIS PRODUCT WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 5. THE COPYRIGHT HOLDER SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THIS PRODUCT FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING THIS PRODUCT, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between the copyright holder and Licensee. This License Agreement does not grant permission to use trademarks or trade names from the copyright holder in a trademark sense to endorse or promote products or services of Licensee, or any third party. 8. By copying, installing or otherwise using this product, Licensee agrees to be bound by the terms and conditions of this License Agreement. tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/tos-bsl-win.tar.gz000066400000000000000000043357401206361226500250570ustar00rootroot00000000000000‹`ç÷BìZtU–®îPh‡.´[¦Y·d£f˜@ˆÆ™M „€1Vw§»ÁÚ"¡Ûd–3N¡|Ûç0;þÁžuÏÂŽ3˪»ë ÒQqHlHPPÝsÏ{Öu*8¢(¶ŠS{ï{U•îüÜýgS‡¢R¯î{ï»÷~ïÞ÷£gûƯ’’Ò’óæásÞ‚óá9·´tîxZ7§dî‚y æûK,àJæÌ)õÏç|ó¾yh—Ø_Ýîóqk×=´ú‡WÛððCí›mÍ­Ík¿ XßÖ5û{­ëü†9ðõý?wnIé¸ÿ¿‹ù¿í‡ë7ÆضnËÜÒÙk[[ÿ¸}”Ì)Ûÿ~Ëÿs Øø>gÞÜys8_ÉÆè×ÿsÿß÷Àn®ž<ܺÎqÝFyÅ5Ô½÷”[^žÂ½0ù͙ݶÚ7gÖ+ë·øÚÚ7=Ô¾zƒoÍê7Å}®óµ'6úÖoôUÝòmØ´vÝìÂÂë$£³ŽgǼûݽ§>[ö…ç}KZö¼Fß•=ýð¬X¢ì9FeK÷tÐòðžô¹ÞÛDŸÁõklo8fy1ÇÕÚxî_~ܰÐ,;ËM™y½mÒuÜ^x9ÉÊBOÂ"ÜÏÑW‘þ-2;qÜГû‘ÉÁe7DÙ»h•ãcU–ãþüŽsýž£ÝŒy­²q«œW·}ö}Ž«É-œçìcËÏŽ¯ëŒÃ³ð' ½œ…ϼ|Ðûìöµ«ã«9îïw°6¹Ýœi몀³™W{#ØheúÌ—ë™Ý¾®uÓŽk›Êt£r«FÈ-䯝ñkü¿Æ¯ñkü¿Æ¯ñkü¿Æ¯oôRžxŸµGær\æ^¤—ÔJ|„Ì!'Õ¹d3¯¶ód³ ¶ d©C]æhzçNä^¤×ÿºZãRköSVæ e©z©$(C7£Â~ü…—‚÷`´ –;Ú“Ù‰Î=ðE—ºNNxµ’—ôV‚F^4\4è†+·I$³hÐNŽ.v¦—ÙAh®HF«u·@;‰¯2z—*Ê{Ámç7À8§ø{Ég CY¹A'ÐH@CAg`*°µD §l#i÷nEó£÷énäà¯áóøaî°Ý  )Üeð×ó¹ü·„~zhø±›Ÿ™6tß77õá~¨B£ ©æË{;¾€z ̳&›œ]¿‡" çsŒBÀ¯éûè@”næWk 4e¢€÷(ùP& pºtç‚wwcÑ…®KÀG\ G‘5‡Ìf·GBdÆYx ƒ‰NRÉ[D7yD”[À»`|t#ƒ¢ÛðóDh»F˜¸ GtÙ­D[ –kÛ‚^®†FÝ "÷óQ=€"Ív3ºûG ¥\fHw0ü`õ‰ø5|$;D… t÷dð1?0+nòä9$‹Ì|Áôš^û‡?è:U s‚%20žä‡ô©¢*óª,@¦‰ª²˜jâƒêê4ÝÝ …RÀ§’ŠdÔ¾`ªÚ!§6 a¥˜¬œ|úÅA/#“’GŠjÔI d” ¢’€[ôëåýà*ꘑK6¢ÖÀN¸äW¼Z®þ c.ýóž›)£É>1"kïo«­¸w zVQ)Clëfðu·%æ{ÅfìÛÅH¢Àk`p qwâ»]Ùõ"Hˆb  èó7.mPP£†—™¯/¡áˆ®{8ñ6Øw­q£ý æ É,ßÑ #Zž]T‹²öü  ÿdR'´ýh¶ïm )D_ÉPGѧò ÂQ¸ƒœÔuÀ# ÁÿJü§»[)5Š›2Ľ‹Áß?ßà<)ìdŠ{1?/4eŽÎ·áž¸¦wnü §A0…Èà"o«6µ’W+µÒ¡VŠj¥K­ôR¤”ZéÕj/Cp9…ÚœIðÍ +2áH ÇXC.¤À/rê~!ŠòÁ¨Ò†d¹ Z„"Œ,DÃ!# 2]çRØŠ,qSÚ†zƒÈm1Ù¿‚Ž5RzÕ¨P?ćÕšÈÑFDrÂòÒU{øOêáe2QáÓhWG îI£Á¥4Ú8=dã"wÉsHäÓ( ÐÌôë2Å7‹wËûã7ÊJ-TÖ¾ó ‹Ípgp°†eÆ€;ð€ç®m’à| 9¦Õx®dŸ°;UÇ´4ê6Ôe—)Ô …*S¨¨‹Š€Gß•£aÝ­ Æ £$Ùç[Ržmÿ%ŽŒ¦€”h„¥ßǽÂ|ذ—ÿ|ê8LÊä \œ, !Ä.=á£ÙÈà^@QÒ”|V"]‘I-Ëj3êÌAËÓoz ¾d¼¡°FôßüˆÆgAå ÿI£ò'ãû8.î’1ûÊÚÑ8µjcmHAÞ…`µXÁF{ò(ÌP¿Š ß`ã­Ø‰™ðƒÊ霌/ ½mäzò¥•íéü¬³%|rÈ”˜ãi¶Œ©ÛiçA9¤£ dŽøŒ¶ä3ÝÂ+êÒv|ŠEƒNÌæ-\@ã™!–k™¨›FiZU6«›K­È4¨}ä†'J¾Ó)Q‚œBJwSÅoh¬‹Ïà kgÓ FXÁÉWÞW´bECOiÅ4 xš›À+FÒ¡”††ElØPNš »ÀmÿÊ$­ø06žË׊熧¸ñ<ùÕUñ¸º¯€'€¼„„ž¸‰:4ÿ¨èÎ43Zâh@.[ôÜ~¯EϦf‹žæu '¼p"lptõéÀÀpŽ¢å€6³Ýàhëû¿ Gÿ‡«¹hˆÊJk.jÑhil’ç“´(Ÿ¤8çƒé'2µØdêß}2‚©¿ýØ`j=25¨=°ùŠLm2˜ÚŒL…5Móм)<Ì?R¼$ÓX‰í§ÐàL¬ìîÎYmxÐæ4•ºÐ-<®K"ZÝ …À’ ¬<‹•´i”µ^”¶^¸BG¾VU¬¿³´¿_|5vÅP¡,„4òŸAòÝSþ¥º’ÁJIÖJCÁ1Ûab]Œ$«g+»øtJpYûÇ?¡&–-üX«¸@jyŽTH=jIÝR¸ÜÁt¸2D‡J@;Pcry2]kÒ¾êaäUQ9WÕ]Žê.GK-jXÌ~Œr`à³aÌž5ªä ¶dcö¨V.·KFrû6褊¸)·íQHZ/åC´Ú›Ý®|v{F°{yŽF,"¯4yþâGù<¯ ihEä*ŒÈíGòü&“çÍÏ)ÊFË¢És‹oC\%Pä⢠RóRÎú×ǘçÉœ SªÒpH«úðµ8HÜ5ÀA9 ´Bõ ö×”ƒÖÌãß5ô¿ëÙ-ë?íÿ†Qû§ës¤Ÿ‰Á‹ERP9’‹Á 4ó`w4ò yùj“­“ ÛQx,ø:c(µ€Q¢º=l ÝõÁpŽÊÊ{Еö³V6ï‚ D[»¦ø{‹µ!p᥼ ³•±Ø9ÄÌ\VºPE4±µy bà)5§ ¥CZì<ã"Lð}/ø›‹Í• æì16ÃbCþð¢?öÉà>0¨×Ì‚JéË9éD€:ÞÌP¦n‚W/ZºŒ®ð ¨8¨Ä_Îgõœ×òܲª|Ïy¯à9Üì ³<7Ãæì:7Ò}»Ñï·ä¸Ï;ZˆÅ}>+u*O½œ—ïÍfþïþCZÓèBU°œXÒö ZN<…*Ìl¹V'z-'zGæ—ZèQ¦þ¬‡£¸hÆ…ÜŽÄ Ëµò\‹“¢Ú [nC° }[†¯eºÚÄÍ¢Š€Rú m€y×kp‘“rJ!åLñä&¦Ršrª¤â©*ÒnÊMLUj=î•DS¸¨h7/4 #4S¥k3„e8ܧBáü@D‘–ák|¹Ñ åýήK#©³”ÐþI±Ö´í‘«ƒQ²“ÏÊLJÛ+¹YÚjæëQÇ‹sF“:TED|-Ã×  êsI´*¤­°H´•yï¡+d¥œuBd+ü+/> JÏ+cí¿:Ó²üC7sO€”~®>O «rìúE³ú{£UgõÏ^©Þlà¨ý#`Í9Nù䕜 œƒ¥1Íi 0úñ@s5qƒ¬p‡À†{bÔ†(L—ÿ΃“ÙIQò\´;wê¸Q{p׎bè^JuÂ# ßÕ`ñý6çÁ›`Ù̓»áÐÐn]¢™Ç«…Tòëþ3ûmÔáÄdc#œd/ÙìCo§Ê³‰©å§…tûáù%°Ò—ÃRåà߬T# m„ñ•Šxƒ$«­?É©Tu±¬íZB H7Uç hKØ~‘N4h,âjóQ8;x=mùvZ“í±ye©ã¹p( ÆQļŒÜ`Ckä=”7)Ÿà»¾îNNÜ w¤˜þ Õn·Ùll?=õNÅ¡aÞ±ÓU€ÓŒ…nÙx™[DY©E·ØÖQ·¬Èä¬Ùþ¥' ±ƒ—ýç•娋Ú*yáöÀ-æô/ÂŒè×ZÁ3ÌàÖCùÁtî * ²-YrŠ\ìý`BÄ<' o±ñþŒ÷·`l#uñÜÀuñéÄwŒ‰‚²7¯ÝÓ`¿Þu†ü÷#?,H-Åõ®ˆ°íâpD{æN£Àdb¼jØNWò¨oIù—íÇi8ŒÃº³Z`+Œ>¶Ÿ?SVN¡õ2k¨õïÀ6nGØŽäàÍ=ƒx^ù_ºŽ;ÂÔ®*p¡ëÌ#w°}%ïa<(I­•¸»¶gN2ådíÃFJ¬dŸïÞĘÿÆQ@+îk#Ÿ`Ùõø$co¨ë|¼@_Ì‘£æÒæ¸bŽR) õë<™áØÉLž¿¦álR„#(k¡´‹À¦Í4YãÊ»R`Ë âЩČP(+ü«`„_=Èqƒ7 Ë‚ŠïU“Ø$Ëv½„dÖ–˜Š3õÄFóÈs(Ñ&Ïѳ¯ôª‰—ß\ 7,µ¿Õòqû2ôl%7®á0,1ðÀÿ*o{ypº9_‚©öÚW‡F§ƒd“Û$SÁÇT¸oå >T!DVJB„| õWÓSÀþ‰6š)‡³ä8ÍZêvÁ:À‚êô ËEê9`ÇWÍô¨WàŒóQrºk­[ÃÀ¨ÌÚT 4ía³x¾ mcØ©%É ?.>ÁÎøD+Ìù)ê áT©¨°®«˜®k¼ 8d¬5r¾ã³«‚9„î"™Î@sÞÚâÐv­7wÐ]ƪ&$Ç´ßÑm!ãï±60i€z#Œ-XDëb3Üß%¶üÄΗÉTU´Î“?äž'“Óa°W÷b›èLß'‘ÞØ&J>Mm­i|˜åL‡¥‚7ÌŽìèe‘#q«3½x­Gg ½2±+«úrç fe²ÕQð›p|šsXÜØ¿ˆé0gå;Á™žÐYm£'¥ä#8‚(‚qã'gú·$«nwU†“:GL @r¼jã9.¦*>rœŠ¤¶‹ uÜðüÓÍ1ucIL”öW3 ”ƒ@©Æ†áóYÀ³ ñÄ·áˆ3=Xpt4d(Da9Ó¯¥EcC‹õWøl<}_1kè Ÿ!|3aÓ|Dë¯.±ñ#qš&#•8À‡8‹#ýÑNŠ-ç|}oß°óuëX}øï[èÞ’ì}‘iŸu¦3Îô[Ç ¤4¿0­bjû¬˜ú€ë_ˆ:Ap¦Á+É×Ä+Kš‹Š¦ÊFs—"3Ô?̨‘¡¤wôk­ÔXΉDêÃÄôÒõ˜¸Þ¹ø‹Ä„ÇÝ2è9|ŒO6‹ïx|Ѻd¦zGO‰KÖ ž gZ|85×P@.þ7¨ÍšìºócdѬté ¨3’œéc‚wƒÃÚÁŒ°î^žS†ñCž+”«Š<¦7Ðé]ôðÙ|}œ]{Ù®³®>R˜Ô Ÿ*6°’Yݹã ð†ßäç¾í·î£'eB‹O9×—ÿ“³L¯þK©…HÏj¯vj‡CíÕ9­vx0Þvx!Îàè?nŒþ‰ü…ƒÍ 4h²¡Kw‘„Ìa_ž¹]?»êçFE]ÜÔ©Îjò;Õ¯náÕ-‚ºÅ¡nÕ-.u‹GÝB1“Óì÷ל\ðãS|‡WöGð]8¹ÀuÈ|.Ì|CÀã·ãtF ´<ë.Ù~«yîøV®?8Š*ÏO’!öJ“d# šZG/ºA#ƒ'µ/(„A£öL¤60ãÝRTïW…2ƒ¨°ÈMfËÞgvùƒ½Ò«ó”;·îêv«nñVÄ;nM GˆüÒ(.–ËîZ[­Èn„5 l¤ïûý¾×=Ý=Cd×µŠ˜t¿÷úû¾ï}¼ï÷ó}šÖïŽZÄÃ)!Ê>jŽ9ü1Ðd@š9F£y`?•8êÅm¯4xõÁìx÷cA¶]vwê,¥¹ìÿ(2†G òqŸ­¤íC'-߀g.)‘»Nû1fÖ/þe¦5J€!ªýƒi®3Äõ‰ÀñÌçØž\žÇN×îï÷¨K]k¹µ/t»µ} kp8=(4’°wù:7Bg=k‹®¯æ³¾¥w3Ø ÁDàÕc»[iؤf8·QÅ|j×ÛS»Z…y]7Í3¨™ârq0417®øžGÄ^¶½ ª{)öAV5êþšóâ…,þ\Ïù“¿J[0à žiG7¯¿Ú{zjyUÜW7¸ >±§‹†êÜÔ«óošõ‹^&ï«O{Füs±Îþ¾5°ÔŸ`UæÃ‚ 5?Ç6H‘;‘n}ƒÌ…Kf>jÑ£à‡Ý`8kŒˆP`¾NѺ ñqŠœó óóÎ÷ù9‡A)\„)@!‚Ùt3I:¦á\è>ÞÿÙòó· Ð3!0Ñß*ó í„bqÿ‡cû[%äK«Ÿ`VqŒf•ßhWlqq–"·e¯™Ÿ­ÚÐüàl;ظY¿@(o³¿¾š¯KipúgT>ýþL'ùcœÎ S$ 56X<øA/ëY‚^ú³´? Œ¹›Ïk…¬¶Äå|-p¨…7×°G%xÙrdNOáô¥V|ë&¥?=þk¹=wò­UFÀyã3"lá]سÈ!Ù€çA1}NRÿû¼ô°é;>A£¦* 3))˜îÑŽñÖ@´èÄÈM4Û=€fb„uEQV8TE´¦—98I -ì³#Pµã'²ï)âk’ö¡ëkAñµ~êÆât>Aÿ#¸²CÛÙæðøa‚SÊS¼¯Àˆì³×®.C&¿¹x œôû¤î{&ö–€ïUç“•Ú*Ø•àŒì; »·,/G9äý˾Çü7Köάÿ[çðÌ,ƒê›Òýß U¦‚á»iðwq0W˦g«Ìk¬ä#ª+üIΑÖþèÌEÓtðÓBÂ-& 5µMÀh0.A˜ÏôméÍÝâÂÇ9ÔVÓ Wm©\m'¡KH'ÈTO`W/û”«¤èa¤:l•Lj l9ªò©¢ÉGû—“ çêTm vú*ïë)Žf»z„–/Å‹Üñ¢Ü­Ù ñz§e_0 wk„=W‘ËÞË­)œÇ‚sô韤SŸµjeò<Õ=º[Iã&L³` ðX‰ &.|bÙ§”£üIâa}ßú„¨ƒùüÏ7ÊæSš ¡¾'™O‰¿ò`þf¾áåïe†¶ø‹ÚµíØ6 ߸Ç_·ì¥¯û%‡´GbA}:øzŽ>’žPK.‘É$¤û²>JŠñý¸ÀæåZÑN¤(¥°‘Ò'S*ÿ$JG’ϯàôf¶ýD5~A@R¦\X–öýA¯¥µémÇõC¦ùॿ e޾‡Yl:äÑí8€}úºeÊŠIY3iì¶ò¹ÓÌU¡s y0büz©%3¢«óû>Ç÷ý¿¿´ìû>ëûÆ–e4mñ¨l?Iäs pN¬9ää8Ô}"ç+Þ@/1èÙ“¢m?…y½hqn_Y¯ >.y¿vËüßÎõëøÁ¢éPB¢¼ú÷âsXo¡_êÞ(½´~n ˜½“¦·‡Zè•À¥¨#ÅT‰m–kÎÕ|Zs¼ºt~ʾK&—ÊÒзG"ToëçÜöO>§]4'Ìöñ9•4‘œ(Ÿ“š ÷ª–Rh"ûÊÖ¶Ï q‹ÅFíMæ(«¬—V;ÖóÞÂqþßȈ…æûiÇôÉÜ”Xdá ÿ5Yim?*y1ìs]Ç96ö;Èo ëÉÇ©ï±Ã %»¹aЙ]¥ÂОΣùÛ©ù6 ×xpÓ\Å:–µ—ç)s§Õ:Æaïõëx&¾W9Âî•É‹€GQ#Í72¶JÓI:ŽZŠTEÚvr®ÅXg”Ü{ÕŠ; eÚL6½Ã¤PªpìØFÑgÅX êJ5¾×.lvšAUfÜo`¤HÒ8F‰Þ¹ösŠm‘Š&ÛV=öAq”ùv´û¡WSþc}áë¾¼´¢ðquqpû¹–#¹¯MhöžG4;øW;÷ÎK üçñ„ÂZa«V×~InßË5‰Š01ø[èM†Šg]oáú-ó³i8¸=3Üe]ÿEïÁlÅFc&eȸ¥·ÕÄßAÎLäx¼~6l¹¿{Ã2ygä ä'¥²ô­ÑFcx1l ðê2»ø\ÍûtÆEv½»'@þMK_¾©¸œ¿ ƒ ñÂÙj‚Ó7lÛ‡©ßÔsjR1nv™ôZ¤žÕ?»‡Ô{ä°S½wR¨£pȤFÚ¯€Hmâfví±ô¶õÖ£Oãã’²²ø1%˜¢tËz÷Òé5…ÓJfZ‰X©ˆçXÆíõ[áð´)À6Jc?/÷½7ö¾Qbç?>Øñs;7ʽ<êÊK~…ì׬× O‚÷Åì"l†_ÀÞ9úí†îÜ–«w®/ÜEûå·|¿…ýr¹_p¿)Æ(ׄ2zÇôª~”’‹f~š}ê®qFeÝúW1ö~©þÅJ’äƒÅÑ-²jEÀµ©z.ëƒ%¿ü’Ø`ÍÁÇÓ˜Ü&åýÍKäÇs½TÏ’{Èí«/K©F©;ÇÆo8Èãù€MÕ” áùasÁW±#½®×›1™Vë 3ÂÇâÞjBB±ARiç{u„ÒÉ+ô«ù˜c'çô´:ôu¢D L¦]Ï£-FÖwEÍÍÓø°­$|ß²ßåÓ–ö %´]‡ˆ[ëæçZ ~íY—‹ÃAÎ8³çÀ6ÂÏŧ"Î/4õœ¾ÑŸÑ%>7J*‡’ªqŽk#Âm«ˆ)Q8àùÞÌ =ކUÄÀÒ®”òŸ{~—ŸßЗ›_Ò1¿Í4?½9¶Ù€ÑÄ8Ž––Mß>s«´«£žÚ$³ªRXÎ3¿ùO„¹Ú?6óÑ˵ß[jeõ‡¯påG⇽õ‡‹‡¨ù–GôxLÇᎯ=Ò8š„t%¬+]iÐãQ¯¿ÛË=°î-R섞 é©0E\cÿ!‹GZåªÍªŒ®Dn)ƫڢ˜84A £……>WyO¦ŽgÂ+5‚†L±´³õ$56ò…þ¬×_,ëQ¦oÀ€±ñŸ Ky|Ó17Qè{ >•ïÎèAøÃ’p©”ô%ô;æê×ÈûEœý"é>‘—)Á‰°çIìYkõ Ñq8ÞpA -ŒNÚá—Œ+ž‹ñŸ`ñ&ö·xú°ç@B‰™æèrÒú8…ö/¿8ýmt)»GCæêéhÖW8V;ŒWFUƒÔ´ê5˜ (G.…››ÖaG@ô¶p†·ÿ™ì"åNJÄ"%â!ŬÉèéˆÕ74ädÜ]\‹Ï ª?µ¤ÁÖé³lri >•;8‘mÄã`&mŸ(¾»è°'>|W¶ÑÈÝ‹F‹Œzs·V0—ˉ˜#¬€ûÜ”ÿë„üÏŒõsóA×ÍGR¯vk_[‡ðøaOn»@x®ž’.xÕŽØ)ð¥¦;cׄ‘0Ž€: N!&Rdp³ðg!¬hÕ×D#ð¯Áø{héË-TQ!虞áê Ô=ׇ3..¤Q)è«¢ì$ÿžj]Œõu Ȉ•ÏXòGi7J/UcVÜ‘öúµôë´Ëè×Çýʽ.ýºfÈ«_ѵ_"ƒq_!‰a¦9mEÅÇýå 8kjOþ³/¸n76UÖé7âÿ ³r}–'ÉûÛd ï×qâurƒ¬2ÞÜÔlˆ Í!Ÿ£Üz›ËUÄ×äd?ÌGMª‚t3J,7«'„’JYœþ¶Hʯӧáàî¢ N(P½¨¶èEü ¦ú\³£lzw› .á׺ .±åx°»±ìÃñÓâƒTQz;+ÍË­Ù†³ÆôcVïÅ|¾dÜ`Î N*"iÄ8b½Z"‰m³DpcèK˜É0wSJö!¥j«’îxùÂ6u‰ùVJk€‰ª¶ÒÅšgö€Xú\À| üŸTÒ¸kç:K:5vñD~¶¥Ž‡†¼ñ!ÔØ Ž)¯|}Þ³ó¯aªtY …8–ô·+’D‡âRLp˜oh}<6q=xæ][ÅÉoºU÷~üaù~D(€¶tÈ£ånˆïñX˜îçU÷<=ç,qì"ü3ÖãÞVð½ÿ.ÿ |G¥ç(FÏ_Ùè%}X>K_xÅ@5üK-•ç[ò.Ñߣø‡Ç™õÍžeS ¯dÈÑ=¨ùUvؽDÐðZ¶5˜§«ÕR‰ .ñUt/íïðÊí@,ô¡˜ŠÅLM: "; ´5À¿ˆE_HTˆ³UT{”4¾ŠÓµ ~Öb©N±‘Ý#‰DàÞ DÝ™¡t‚jœÅkx% &>^þ·ÆÖA@†ñÊŽ¥n$ ?€}À¶ÚsNÁœ«­9ÏãsfsÉ„UCº`šªq7ýÜäWºÍt®6EûXÀÜ;3t÷Ö_v¬¬Àm);;¥è€?k&ãOx¯Í¾UÃ}d›Ør‰FTø|rj‡îªºc¶£ cþ)æfÌÖ‹Ðo͘vÔøhÂØÅc~7†,¹Yb|çåü§rµøð%“¶ :9clÿüúç( §£¦m8êöà]ßç)˜0™:ð1—LX¦8?WÑžÆY¼3Ÿ'SKN:ð±ü ° ŽC£§E6hü]K%~6 E!þy¡(]£¶ã…'Žÿ×®a%•Ù’{;«½4&iyQJÔ‰O§¢6XkÜ# #2ÕQ-i‹BDAMQ¾¥}ITØxá­z_¬Õª‘…¨˜ÛÉÒ‚¯ ¾R;€¬úÑí|Á¿&œ;%¡%aü¢»0¤¡å³’0<ù®ö+ôó¶QKZ>·dMEËÿaHµéóJò'Ä/ó°JÄNi§‰A0OqVÇ3{Þ­äfSØ„5‚Ÿ}Å®ä"¢#.º Báuh¾c0Ýý͢؛Ô4r©‰€ÔdƉQ>wø÷IMT¸†ÒliÂÿ¶Ù¤]5î#‰8fß…Ë Ì]¿G¶m¡Ÿ/ÿþ ö–-/#ä%~ÌƒÛ ”ïÕ°Ê‘TÛŸºNÑÖá4^º{8žÖ]Î|‘ÝåìòHå.<㑸¤år6e¡%g’3Çæ°ˆÎÊ»`ß— âëI»DÍæÇ”¼üµ¯ÄÙîÆ#eü8€“Ûu«=9griK5ЪuÊÀ~Ÿ`¿5•û‰Ó‡"à;ñ¬løï´ÐPº.¡’4`À¿™¦w˜¼ç‰˜b8£ïH¾lþÌ®ÀéøŸÂŸ(ô2ró®? ì~íØoQå~øóá“ò§pøÏÂ~?SPÓֹݺóÌåBÑi FwócXœ×º&>/lEF‰“íûa»ŸÒüíp¯^}«âµ·;Î?éÒAw·–¬ ‘$Qâþ±÷»>b¬`w(Êy¯EN8°\¨-nU½ZÕNˆòàåþ×(Ú"hnüË×ìªW§èzÎÜ?^s¢r}n®òE÷3Jš6Yÿö/¼ß±0Â^Syôî±)ûPƒ(v±ÏV¥DÝŽåöæ¤;bÜ Š6e»¯×u«ŸÀë‹Jƒ‹aŒßÝîj.âs¥úJÒ™UMiÁûÜñ¸™"ϪmÀÊüŠa·ãm¾UEá)IÔbiv½œÏ|»¬?H* DÔÅrAÑ>ÀÁJð·z­…Æ3µ¯¿à>¡i£óR'MyfjfÑšad;öÔù–`‡H°H°nÀ˜}‰*Ú«c£ìnÀ 0;˜¿ÝJägÙ—×i®ø Yç†'gPm™”nˆ &µŸƒÀÃTMh+°Róê7Û×D¾éäj†ëçwh+‰«´·¡Ã™™ôÔXñ[q‘bþfÍg/јt<`ÛÛͶQ¥e×,“\uâ_ñ(c8“vtuËm|Á§œ½ç^Æ7æ¡* âÁf„‡#p@,ŽÚþñm XEfÿ.]ÙPø c{ÍŽ@˜£þC*«ÿ¸­býǕij6ÞïŠgÉÃWÏÂø(¯-fßU3ÿœI7”À£kù%(Zó°CçF» ×»üê?¼ÍϾm ]Œ[nzWöè]Ù®çX5<É}¸&Õ—%|ïºáÊõö*{íÙ&°—îöméÝ4 MWƒÈ' °²ºÏ޾ {³h‚èÝ5½¡/¶/NÖŸê Ë‹7•\ñPmß°ã¢g\´Ø£nmá‰ÚÒ¸è*ø[¶}bâ—x€;Crù³4„…½Ý?ì¹@Óa3­û<û$2ÛâáI/ûx»­Dˆ2%°7îOÂ/5 ø­«úðNùÇ .qâµ›*{/µ²ÿÚö¼ÊWœ($à‡#ȸþ¤ÄÞÌ_뽬8“^‹Á’Ï{ôxÌcM)ö)ÖÓð¢~œîKOÙö·CIémè[»Zœß¿î±—ŽúîÓíê»ÙÿJ6y¤¦bflt1IrÈRÄ2ñp`5ìqrå,i¿©”C¢õÁF„Nÿ ¢˜2szÒ­kñÂ앞ºö#ÑgPÕ5øÿì]PWžo ÑgLf<¢D‰=IÂÄÃC²+J<ÄApFK…\­R]¬[•53¹üP7°åØrçmek½ºì^<¼+k/·‹¹\B6žñDnÝQ£ ¸„ܶ‹Ö‘ÕT.}ßÏ{¯{º‡ÑMÝýwůéþ¾÷¾ýÞë÷ãû¾ïû#¼Üõîšd×»e)®wrÇ #¥ƒRqs’=ù•a–Ó{0§p¸s䔚ºiºiÝ´ Ý4TN×v¿Ò>%KV L-¸óÆšÚ_|ŒÛ»ÀŽ´ÜœkšåEŠv‘}®a•Á¹¦ptwïö­U£>~¾!NÊ”ÿk¥ ±“Ôþ™‰9:¹ÁŸÈÄ+!W53ƒ¡“ ©æ6ùQþ¤ýŽ"j€[ËNbêH9$¤°þvTUëÙGމôêÅe=ûûœÉÈ36cð¤œöµü¯°›ŠÏîªê˜½‚f2¡$F+¹ýJþNŠd‰ÝGfVŒ$q5E p,rc"”•b3]MUI`­lçb¤)ÁÊô'x,Ãc9+ýÊj#ŸµŸJ\/¸Üje¦RI‰F^ÜÚ àî8êf*ˆû¶ˆ;k«ÐŸ²‚1ž<³9Èxð1›QF‘ü~¥•—A€ZÙ’8µ2X‰UÚ)…1‚ãd\"§ :…¥­LfŸ –?pº8ŸŸ0ÓƒôX ã[”j•uS^¿2JصVn‘)ò€'ñ½G ÁöÁ†H*ç]%ð \»¹Utp¯ÜÌxÄŸß6SZúç]ôi —l¾Œ©Æ¶PvèóÙ§ó{ÒC_eO¥‡ ä'ŒÇ`é ù‚†X'kk™·u€Úš)ÝÖ€qßIó–À2Ö‘öò΀Tµc|¬ªé\8]íx*ã_ÒŸ© ™ŸÈD²êlÊ-Kr×=:Ö™^LyÕN–{|Œeí<Á²â!鵃V9«ŠâÌ–W6C‹ kƒ!eÓ'¼’º¤ª‹ Æ—Á+UXØ3›ël¶!¶úd2B›kÔOêw×4tìšY¥y 5߬‰VúÒ( ˜“`@æ„AÐdãàù5`LÕÐP\ôÏ㋵8 */"i.£"ÚŠ™H"É*@R9ó´98FB’ŸãOˆÞRÿ {A&oÚžÔ9ÊãakD3ßyܭĘ/¯<㸒Á¾âT}Š&Q‰Šº’éÓ½Û¸ªÑ<¿ÒF³öê!òÏ1«âf”[”=HYnO)1ÄÕP”'þm÷û 8Ò ‚)ú¶È_ä(w|:8vê™pÚ•Þ6l)ÝÀK}Åaädh¦Ôw =—šøê«~‚ú/4µì¥^ëæ¢ö§ò;]ïQ×3'-ý\ÐŒÝf‰£Ü%â¨7×õ}@ô7dšef;*}ÉÌÛÂ{²ž0ͯ{l×LI*gn)(7õÅ|ÔL÷–iÚ‘Î7‰ÐŒ^+*JÅêÓp­•ê_`ÝÆ^+õAÐao‰žÈ!Í{|™7þþHõHH©'Xó<åÒÒÊ]‰„€k\ÝÛ+„+°º†½úEs#K¨”°rœ§¥‹çgÝÈ,‰Ìb„lÔFŠbæa'¦Í¯3T %6¹Ê>MEYBåÆªê©ÚÚpª5N¥:/#yh8V”e6Œ«éÇX%àÊG‚ gø•C½àÿrË…|¹AŸ ~ØÚËD›R%!¨™ïè´ÊÏŠ¤¶ñ”3l)ç$JÙÎS:l)݉Ržá)e[Êû¥<›¨œžD)/ð”3m)ç%J9(eF¢”ÉÞ>?AJ5±¸æVX7âf¬ñ= BÿZoœph\¼ÔwïxÏ]⯾¿PŠ›W3@6燘S:Í%¶óŸC~¶HŠ›_øÏ‘µA\žF/tFìæŒùÌè•o‹ãÀ"ÿUÈGXÊË÷'Éÿý ú?óÊ‘Tœ4ƒòú¹;õ±zF¶Â;aYÿdäá X[hcô\n8¹ËµrË«Þ=¯'ÆÒ•ÅÙ¬˜o2äfèÞV¬8Bv çá…B¼ÖÕ=*9O€FÚ΄gÝŠÓÕÈlG¢®­É¨Sšßfì]dκ—ìK·3yíêGšc\×±^sý ŒqÀ}mÌ„üG50°­ è¼¶ž¬G2ÚdøPæ·¥rÀÏp  HP,ÅšU7·mOÐ,r,4[b Õ|郆`ñ*c°›33CµCý3góžÉA½’›Xfã*šÚ£þG¼½ÈK¡*óÇÚ^Íà8h‰<~LðÞJ´I§2ûrͥ˓Ëîmî”PVsYR¹¿<…kÚŒƒÿT(…ÒÀ¥hê%G“ª9jcüƒùl˜ÉP¹·§yÊW¾Qy3O'»Ù‡÷$˜À36ó3{Fát›U'õd ùù$Æo3XU§k%X§9ÃO c]Ȇ|nZàƒag…î-ª£kˆèá¨Z@*x%ÏrŠ>“Zë,=NŸD+K"•L3 [¢ÃW¡±ž±2¦gátè áoq¹Ððƒ|ëé›"íË¥JÁ~áF¾`ƒÂ<óA|¬x? Í6{cèu­CÝà¤V ´x+€›JùNñîûD¬ûúÔ }•žì³®Ò‚Û Oo¥o‹îrœÙ o~5)ÈÛMݹ;šZ£Åd°v@•»jj¿q„:H†PØ£Û‡­— GÜÔ]åú¡á7Åà÷ÃL/>˜[ý7OsT}_iM`ûXçÕ‰fùi¿(S©Ño“h‹+lš+—íZ ê:ƒ~5<•dªs7šß{eѪf[Dh;M1VKŸÕ³‘þîϬÿ5õ»á±¾æ™ýt³I} µ°!U«óN÷‰Q+»v¡©‘ÕxÙ6‰ˆ:ÌÜÀÛ̬ÞÒpžgX§h»líi11WL°^))õ—qú‚œ[;…~wÜxã4}/*vþ_€+œ²õÚ†à×KÚÒÎèƒ5µÌŒudÎçsÆñùŒ™ ‹>ù£v}ò e»ø3—íÖØ{€€ë³m-XõBbp&,îÆ_ÈíÁE¦½Ô$?7ÏC¾d‚÷•ÇÄ9Û»£Cìœ ¨¬Á• †4õ”ÐÞ« &îÁŠØÜìÝ€ ËX?ûôl ‹A¸!Ö,±>òƒD(ˆ‹õ±[J %“NLK\¬¯Æ´ÄŸ/|’­Ë¹}È6F¶*ÒÕÐÅÜÉöÛeŒµîEΩꋴ8ž(ê1ÏJi¿ÍL¦™£ÎÁˆ^y¼Ö®eA´Çê:›×tÉ/9äEl…zZû.„34.âüdS¿eÊhìO0e`J¥š­Î.ç=&:òöYÖ/³G”[ÔCM•×OM 9Þª“‰Zõ7¿¿UóWÐMK.ã*ØJ&µÑÓ×Gh«'ÓÖ zôØ‹6ì7 Ž€âˆóÿjæ hÍ\6ïZ¼I̱{„H)í¯™ Ö– Á¶` "ËÓ꯬FT…Éì‘Ú)£l~*ä‡Í«ŸNö›ëŒ˜Ó©C/2ÇÂëñõd/ úiN4ƒÚ«KôÑ7žiÕ“VœøùÚôß ÖP"ÿÝ_S>Ão“Ïð$°`UŽáï ý(r %åîf¿#š]'G×9¢ëœ5Ñuv\1{T±L‰lívF¿ç¬Q7ºk¢åîš®¢ IbK(¯P4§i˜[›©ùÒmðâß_DsMGœFÆBffåUV£¨än^5;½Å‡á`¥&:©€Ñº«À+bôâá•XÚ‹”CŸ¢Ž †ôKŒø‚)|p5ù ›}ŒGØy¥£çÅ Nnϧ¦{Zq>v ϵ½uõ_ŒÌuï]HÌy¯6e)ÿ5ó´'?º^íXŒ.÷Ø·¾‚ô\kâ -7ñ…—Åퟌî—9h)ølžhÒHžý Jå`û°"74uS–ÌØ6ˤÍxrø “ʤÏrÜ>ÅÆL6 ÐKÆò–¦ä¾;e¾YkªÖQ[¤{ObÓ”³fºôÜŠ$7ÚÏ0jP¿äÎ`sdu×Fs ‡‘V­8Aÿœ( ‚ΛÀ™ðm¹C"Æþ6Õ Ôžü³ Y‡êè¹jŠEBëûY{N³9ù˜/½=5>`$€£œ¥ÔF„êJ-ã3y‘†mb6ò¸w f_*¿ÃŽ_MÏGæ[i{R¸½Ü,?Û1˜=Ø Ï<°opð~ç|&z°n£,‹a¿À‹‡LÏÔÍÇÜÙ†Ô…ÏOî– s_t>iwþûžÿÂ90!Vå&`°Ë‡RÏ ‚áz“IÜ‚'¤û%IkÑÓ(”zBZ IMú&C‚$¡Laÿ Ç1l‘?ÎE›·ÒÜ&ÊÇÃÜö*õCl½W8­ŽóN(Q¢–hU0f”ƒ–Úd$dϤçX*Âf«*J㊫ŠÝL£!Ïfú·84tq6ÐÙ| 6õìÜ`Jþ7î•ÿcÍ_®-½Á”ëø±ƒ:WÂ_ŸòæeÁóÄ+'C÷‚Žð­éÞ¯±´Ó¦à‹ô‘knåèPœÈs¶ L´>P} Û®½ösaÞ.¶¦syV•™ØT¾c‘i\óÄ*ýN\¥CµBž«QT›©@ÖFiµrCôfS”6 ‡e©†®ƒIá2ááÐ&8 žÑÖr©K&'P«XPT²øóal.üÊþ¤Àpˆ’/ p¨”ŠøÁQ*Å, )Û Œ%üY‘°Í¯¼dà Oi4Rú`-É ÜÛ>³Ò#öï¡úœmÕeØ«e€Càj<Ì[é (m?V‰øuVÎZp¬¬ Zð¡«LXp0ªx†cx½Ur,¸UJ,x=T¶Yð`§„ @5A ˆ‚}BD“ªB•„ŸøÍVTä][rô¤S±G n¬Öoѽm§oÿ/ô@W*FuÚñM„yzáxè‘urè¡©ƒv|¬vEWmÈ«;`EÍÄMŽHƒ(–&ÇHc:Jˆ® ãRÏÎ÷Í£¥öÔü4¸";'%}½û¥9êzDzõÎèz‡¾É3r=²~R×¾Cñ'Ý’Z|-Z<¬ÒŸ-T‹ ¾ýÂwCî®â6™tª;µ‘_jãÉ’t¶Ö©´ûï’}XRÃNõ´ëçÅî¤b‡ñ¶ÙKÕ¿j´«x˜IúàkÐn&³×FöKṠЉæ;õ°CûÕõl·eGY«è…yõ·²^˜áú§žó·;Õ“·Õ-:?ÑI7êÉDû/èJÌ>ƒ-< ûñ!z]Åømf)v|‡Ï“Âï†RÎo¥(=Ûc¾q“z-r-+2<Ú×ÞWéËøtÏýé.æÁÃ`®üõÕ¦s//ìËôÑšÑð%Ø’ Tð×"=Xw<‘sÒHŽˆåð^¿LÔnÆOnëÛæË@èÚná9+R èCÖ=®§ã?QZDë`+3+š¾’á L„†ó¶šÚ·´¬h„‘—#YÒa<µÑEû öVžŸÐGú%Ýuɾœ"c]´¿€À {Í–‘§é+Y6ªVÞÈýj:r«³šºC3õYDä1€ä©ø÷¯ iÃlÄI[òÚ‹h€Q‡8ƒ1„Íl{õ¥<=ºw’úEáxعb^æjÄV­p4”ù*9üÃ%¬W‡è«Ó`;ôʵbï°«®_Pû‚¦`‚SºÝêvÚS–y‡Á"_%…çv…Ó*‚€~@)iÜò”ðRžð(S×§D÷qè~ã•iæ Ñ%©Û̧ :ÔYDëÑŒ8¡GDZ‡ãØóuqøø¨õ±ºd‹óßY<ê×v2÷5mûãÕ¿7¬Xök~| ÀWRr`€; à#x@ÿ¤ÍÁY†*•'ÈøOJð„ô6®p¾ìçÀçL5€§9°ÀÑ;â¥ÇÝþoE|Ï‘é¯8ð€܉Éßk~-Ìã&÷·wl>¼ §A-¯MI#0öÒý[Ÿ×Mß¼;Åmìú»î`W…]w±ëótm9^ŒÛÝvÆð7®á?³6°¥’™÷ðø#%Sãw<ËôÙù×Åâ­›ï+á•N­ÅŸZŸ ÿ†~eC|¼š¾™-«ðÊÔ":)¯½ÅMd‹— \2qÉÂŇ˒r4R%zÓµ%‡Òôoú7ý›þMÿ¦Ó¿éßôoú7ý›þMÿ¦ÿ?oþV’Z)œ p†Â9 £¤IòPÈ¢Oa#…Ýê)¼A¡ÂE 7)8®IÒ OQØFá% û)ü”Âi ŸQ®KÒB 9VRØHa…}~@á'~q—é© IzœB&‰ÂÍqI pŽÂ/(ü…ý^¢PKa…2 SpP“¤áÿaïêc$)®{í‚mŒI|Æ8Æ(‘™c÷œ½½»ådt7;3{7bçÃ3³{Ç eÒ;];Ó¹žîqwÏîÎqHäG²¢8ÁŽCŒ±,â 'r°„A‰EJŠüG¢X±”X–‰q„$EùR~¯>¦kf»çÈÇñÊïºûÕ«W¯^½zõêU ¼xð$à €G—þ[²­›ðÜyýü2à×_< pP¶ (NÛÀ3<ÿÏï¾x ð'oJ~ï«÷®üà9Fÿ÷O S}{Ï›^cìvÀÝ€s€ù×dÙÿÄØm€À:` |ð4àÀß^ÜðÏÐ`p° p1à3€¯^|ðà†¢ïo0v'žk€‹€ðà+€ç/¾x ðãè“øOÔYó‡g p °¸p-à•×û Àó€'¿ð?¨r€EÀÍ€ë¯þ#ô8 ¸pàuèào/ž|ð(àaÀ€ð yð$àW|ÀwÑþ‹€gO‘œÀ­@ÖGðn¡àû±7{¿âº¹|aµzÜ ¶~wbË,?ˆ-ÛªP¢°D›+ûnìÚž{™³ä5ßñDY´‰Oú;+…aZ!B‡‡®ßµÀ&gmøö–Ç­8°lÏ :vÌ-»ãYÁ¶‹uØa YƒÄaùHGÂk¢á`„1w¬ò˜ô5){ÅÖ8[}{0 ¶·»o‡£%«ãÙQd¹~Û~‡/Y<î€ó~„g»M´í6ñ® ½Øx¼‚#çµmb“RÆÊ÷cwÛå!ìAâZ]¿¯a_¿&rYÀm×'qœb¾”%È’Á}Éhu)‘æ!Èêyµ+5 P‚‹P5ËE=è»=î[Kë«ÕØh¶J¥v¹Ù¡²—>QLƒ|lè»ÀáWáTÍWJÄÇ$ ÁÅ&Líø;dNþrködjóÝ×?Ș½x0ÊÕ–¢œg@õ¡DNÈÓÃ\fÛîð(ª@YL½×yØw£¼#¥çÒ…úz¹Pnµó…B©Ù¼ºÝìc”sýx)iJ|Rˆo%]Žx>[ñjìÊü`JßÏò¸´7ðÜŽ—| Ö /ýÅáé9½5²âfú‰'ù…ó®ï»hsÖpŸ÷pÈ5lb.TæÕryÇ‘’åA±ËñÁ…ý§hÜ­AZ侫Г<Œ3iÿÛû•ÑÒ^ÒþzªÎX:Q–þ‘»¶_r馥ªöÉoN×—â&™r¼hUÅÐqcÕ„ª3‰aûqWéÚx”ö®LÕ×4õO#SpWTæûðc5¾mùkû{°o¬ÓŠ2ðo³? ¿œwŒU`L4»”ì…ñ#ÞUè8ËOOû¸Y¾c–¯žö{³üÈçz¦-¦§Þ|ÇDaš¡¶9Ó^f­Óc9k¼®6"ÆÏsùjq]Äfg>Ä}9Ç}ó;dÝÈ=|šúcà@s_é~ÑþTDò±ñÑ–Ó†vduî©ñžRäʧ1opVÓO¶c특ŸLIsŽÓ‚¢izâË$*Êçšgw#©“þf‚žnðwgùûáyÖK¯Q®¶Jõ|¡TþwýUÉ„îo¶J©=ú®UKõ1ÿjÈýŽ˜ ¾Îõ¬”O{ùB¥Âã^àÈ÷2ìHø£ w\[ìêaû.ù.ùóãáwN°ä}Eø$ŸöÒZ-ú[«@­E,ú]¬ 䎹O³¾/ÓKÖVL¥V,™ï¹Üøž’Ó…F‚Œ¥ä¹ æækÚÛ„ÜMònð‹ÆÆéIï`câ!²aSv¬ßZÛ”C--d"c,ùC ªÁÉ ü.Ô+±d[‹z pdj-¿rÎЭÁ¨øœì_øÊ—`™:Q”ã2ôluÅ.š÷_{{‰+nn0É6tÖTædáþ–Óó¬ŠZ¥Z ^ñs˜-Xrâû–"íN©O¦>'â¶ž¬2QÿÔá^Dnæ0©Eüsä4.Êáõ´YgËÆ@Q‚ öË)“ô±Á»Ø›„#1_º‚ý}|Äò–¬mŒ?ˆºwÛËS—²l“ukW\LÛ2ÔîÝ"– UT a °Â:e*ǹedq€0³ù‚ù3æÃÖl¼k;±»}ѱ“¬ gäºN¤aŒŒ)–³Ø–M.3¦¦#µGA^}TçLÅX*YÜHˆCfË2ñ¶ØV”ïA§pTqŒx·/œ–h€üX¹¸¸px7Z8"÷KëùÆÙ’pgKqw ÝJ,,º*8² ÷Xo³Ò®ëß±ò@v¨&ª.wâPüxÜ%R•Òµ™«m’c¯×áÙÓíq{[ÆÊâ)±½ÒŽÐ§>½pvƒ(F{±ŒØiY†8vŒÛ ˪K}Z *¯<6» ;Ï5K…F¹u;ßj5Ê«­R“±¬¹ŸBlœ¹¤–¿¥’³jš³1U±Ô,4ÊõV­1Ù×´fŒN§ÕOÁM,<)å¬È2õwÅË¥±Æ²3 )|CðÝ ÝA¨]ÏdV%Pþ1@¼M9ùZ:;½.ölR¬\–¥#!_I_Sþ9Úß¾7E.½Ÿ³¶±m¶4ßäøƒc# ·WcC“É»,9¯HiŸUìK¼‰Vª‘&fD.¿%¢¾Ôïôó;ÝbqBnÍ¥ŒÕþ¢­s™eº.}¥Ò5%¥‘öÖv}ŒÚŒ"–%š*NoóÝÔ=ÃíCÔ Eòœ3›6«o²0»ÈlÙA—Å_ÀÁúÁ¿8kläÀeM²Ï¦Ëä_@˜*o•Y<ÕÌLZ§E×=’9^š§p9_ź¼ßñˆ55ÝvtS3 Ùä9õ_¥J&r¡³ì~–=ÌËYãp5ÝÍš,³ìeÅÌù?ˇ(¹´ª 5gz¼Ùã9µvN¬éë¢ášu1#fkš1âdq@}\>·Äß‘šüdÑp˲‡1¥'bJÛÛ%¹«» @DËûèÇTb¢kŸºÇº›ÖWõ÷ÛRñÏûޱ$HÍXË’˜%}Ý2fÚ´dfÚ¾+&ÿp+¯ä©¶\l¢÷¨©`(r ØŒtùÔ\™®ªr\o6ªæ:É©ÿ˜AÎ/½èökFß\ñwd²?‰m6§zaÚj†˜Óøl¹¤ýŠ1=ˆ 6ö†G;¾wøøJ/û’”ŒÈ™ncBÇXL)XÊ2ùn‰iR={ÇØmÝia2‘ Q’£ˆHýâ¸láp´ ¶YjO>ŒdªÒ¶×±ÂéòÁ•ZŽÒ 6}îиz¼k{2ˉ˜_gF5q 67íеý¸…ÏVÐAC}zgÉk+Xs=Þº }V{/$V¸[Ó‰o%þ·ž%s)§µm£mµ—SƒYå§ê#*ÎެÃÑélyGòx…õáöÈîv9¿äØ#FÐ †²Ìõ‡”)CÌø˜}¼>mÏPÜÄßÍožIËè=ðtäTuc}ýÖ[OÄV&¶åòж忾ñ|á\žÜ:;ï:¼Ð³ÃV nç¬bÿŸš›É’Ëðwû3Z¡¥/8)‘X q…¨Räàî8à ÂÑD.o’iNrû@}KÙ ´èìò2ò«ÍVcb/¯ÕF»øj yRy?/–ÂëÿplUûW—yÚ°— )‡ý¿-{î|~³´VkTò­Ò…Ì5Ô$Jüß$sY:‡–ÝÕþNxÍq®aÙ"ú¶¬Ð®*Öâ‰#–¼¦A—Ãúp $“Ëò}y¦œwvÆH¿i÷áØéü IžA~Šô:)Iº ¢ËïtÉ\Ç„ŒrzŸº!ùs4jw¹Øzá+"Ú$%qþ ’qt!Ù-‰±¤äÞ¶ìYlw—­ò¶•tšz2ÕÁ%kJ+’gÄBþ9Laà ;"˜ìÈûù«0–KyÏíJý$ŸL¼b²áÖ³Döe‹†rk²Xä÷€†‡uûÃ>Ä ïvÈSÈCJ<è~Ó]†a¨Ï‰|é¯mÑÕ]u0¤ÆÔqwÄùÝÖȺÛZ Q*Ø$½%VJ¯î&—{âÎeµÄlø2×ì`Öáâ |Œ‰C½áui¦™]!ˆò—¯G½m¬«~€µäñøêo²Ý õhL!¾dÅ…d/°ÇB”B•ÌrIM²¿Ózån"ŠÂŒs^ F,æ¼¶?!¢Àµ3>L†ÀÊw^=î‰Ôº¨³<ÝŽY(šòƒý¼6àù¸ÞG(K~¢Ú;ˆzèÜKÄÚQÒB­bÉûãˆd÷(—tù2µœöW.s]øÙ‚HÊ¢«=>Å ¢pk_ 7W8å®õ“nÃ4ì]Šë[Xt)úfd )+¯cG£iF·g(hNËÒ¦í>õi¼Iƒ˜er¹`ƒVnšJѲÐ×N½‚§sWš@4Š®Ú©DÒ¬¥Öå:]ÙdD§ÖÄo-¿.Ϊ§¦¬è·:F%=ˆW¥%ñžÒw‰W´Ð‘xʾKN‰nå·:¦Nt»yg'_/ß±²ìx^ú÷Œ»ci÷ÀÞÕ}²wpwlÆ=±«å1Òþ连óáÇØ¡»c‡ô7=1¾?ò8;tûãÉ÷à}îKÉwï%õ}.«¡üoÌ:ó2;tÞ?ó8c~‰±_ü6àyÀ·¯Þóc·r€àÒéý@&ë=¿þ1úÏb=ü²”ošæÓÍ“44–AóûÍ«4ß4hý}:ÍËÍÉ š5h.dÐ|ð‰„æJÍm ¡ç1EKÿw_Π-ü^Ê ùyƒæõšg¾Ÿ¼¿H¿Ûzš±ŸüA‚ûp½o0v›»@¿SîZ·\¸3&Ý›°àžy%Áý~;Ü9×øÆ}zZ2ù÷£ßìýè7{ÿ_~³wbnò—w§æT6RÜçý ¹&aúÞøVñkÙw‰Ï“Œ³–"QûÑ”[Ï_7n&[óS·ÏÓ4˼ŒÒïϼƒ|žýùœy/亹쓌K/'H/S'ïO/Ug/«ÛÙe_neèÊàûÒkŒWå/Ì¥À^Ÿ^Ke…ïÑc•räúù¹éÓÚ•¹Ùg´Çæ³ÏVîH/š:‘^¦4u<½Tiêô¸d+wÌMfù?:'³Ù“©ý›S°2þ‘¹ìì÷EºI;"®ßb%ÚŠjÆyÅÏÎMÆïùâ¦!þÕün$®˜nçÙF³ÔÐø÷2qÓ‡¬±]Dò×%yQ“œ“/„:»Q.®°¤kÙÑ¥ ï à³ÌZÈ9û ¾Í}BàqÕdm½”ßhéö;¬>Â~§­óÙ¿Kß{vEl¨ÄNˆ=¨hhd¤D¤¨(:–4w]Ó®Ú”íjŠmŒÍÑÝþ°Û®ÛaÄ[2ÿÞ¹ú¨ìÇmêɺ¸“ôuÅ©ÄeÚŠSVƒ;’ç×@-£Ô6MlUUó¬­$’·û7èæýr–cÞ‡'Dͦ:o¢º{v¾>‚ŒQÿfÒ‰éMͫʱ#ûÍD‚ö–ê–çq`+òç½íBw.±:q†.Úåf&sÔ4'±…øSÕÏMÊÐËî±ù}‚UÁ Ñ Ÿˆ•ÇÒ’(O㫽:t=Gp`÷Ku§`öEŠÅþj­¹¾£$oh9…L¿cê³Ïí(5³›@'uÝNìÂÉKûN+e×%Ø|¤pOík¡©Zxÿ~ê1ÿ”®ÔO¼”¶zjÌk‘s€MÏ+kÊGÒ–>O;¶×nð>ƒ·D €±ßÐø¦½£‘Ï%’‰ÛÜŒ­Ò¨ŠŸ?yÐ/d{ŠÛÒ3…Ç<­l[îŸW˃)ð£I ù¨6We²ø‹†MÑ(EìIy—MJÈ?›à*"¿ÁŽC=–¿<ß–‚­Ú޾™FÆJa²”ŠîµmcW)å*&ýlR?WTy RúÞVý­Ò0ö礪©ý× Zó[Îéb0锨X$øP¶Q[fµu~Z ‰+»xÞ{ãð±ÄF„a<5?>KPz¿%¡ˆ' Š"§GeµÐdì^Ùç¶pìŒúRêd_5j•ü¤ÖçüF¡¹"z˜”ìN•棤l¸¯L¯ I3’–Ú:÷ÈM]ØoMúùÊn…~è“RTZg+4ƒ… 7)³ÕnîÚXŸóÜŽmOÞ±)*ò ¿¨µïˆ”¹žŸKf ¦Žñ?=ÅCÆ`Œ}b /}ðådPÒsm?|·¤S¦Œ}V·Fö-ÙDˆº§<¸öó÷ŠUå"½ªœú5…ÆÔh4g(Ý:qA$Mú dÁIÊUQJvå¤\õnd÷Þ{Ç™ûóêù g.2öæ¼úû½ùma#7ßWÖñ!Ю€¤e¢ý$k· {{k¡ÝW—œCöíyŠ —²Ò˜WC³_ç\‚¬Šcºr€ì¹åê²§¯lh‹ ³Ú5³N+-Ÿ1YX¥öÂU«ÝFºîéþˆ*Ø(;ƒmpAlõ-‹´|U¨iÁõŦŸÏÒQ=|_ÇX)1ÏÕIŒi¥•·žù³ÄEX"uªo4T¡DMÍ5­ ;›:W Ï×0†ÖæµzƒnvÅܺŠãN%æ\7]ZÆÎGRÔÿ¨:SÑÐýÖÎ_%…\¢F QD+ļç¤ ýè\œ ˆz€(bqÕõ±·ª0^æâ÷bpÑsS˜oPúÄrÄ$Ð+{×°_Ûn„#>?gi¡MÇwâ ÎâkD<1Ä€M |×qˆãXœ 4ôáwK;³0—KC#âjç“ñ{Єìî’Ü({ùæ4¤íFܧøíà±ø ¸Ç¡ g"ùJƒt·è›{üv±;ˆ'5 x€Vø _ÇVâXÇàFÛO¢ç÷5w9±I;EÙÎ>v­\è» èc¶ÌÃas)ü„±Ÿ*ÀÃʬña¤•@X¬T¡­˜sO†ý$Ä{ P ¹J¡D5~Õg)ä®Q(\«P ei¼ñüy›ùfä~_¯ÐD gÒ¸œÒ’¬MÀnäŀ܀ð¥Hÿ*„_øPW)”µq5ò{¸ÅÇ9Yýùàù6‹¥2Ý„3ÚNß…ˆ åI^¼ƒÛs ÒC^ü³‘oÔaü6ØœÃnj! ¿c·â $Á <€<û¿ß! 7ήéð“ ñGQ¾F iæûçв‡ÑàÆ?8~ôÏ”1„¡O@—DùcÐÇæÂoðUânÄ9};ß…ü±¼ü¶È·ŸµQ–ÔYõ¾ r#Ò !ŽࣞÃÓÀÅê"|â‚O’×!ßÐ%Пb¬í£Í'Y;€.62tþجÄí6ŽrÆ`EX¾‹£Lq”)2¹Á!V§8'PWq¤‘‚}ý)ŒþÔƒ¸S×BF¸×ÅÔö~*~³:Ä9…4SȇùëƒH£q¥ú×®Ã9ˆ6åB;r£µÁ'›ÊJ¢ítãE[O±~ÂòÀÊ{ì‰=­`íúxÊ€6Gº4é°òÝpSød/z°vòaáIa´~'à£ä½ˆó¢Q·Š€`!Ð <<¼þ ¬Ðt`>ðcà1`/ð0ì0…F¥À"àj`5ð8ð Œ;i €NàV`=^>QèT`0ˆ1àa`'ðà:B¡s ¸ xxÀB‚Ü@P4Wë€]À×€ï(…–€½Àà¡ •Àz ì>N¦XüxØ :Z¡IÀeÀ:`;ð Óƒ|Ë€'.”¸xQ P%°¸Ø«Ð ¸ˆ»×q ÕËÍÀ  Whp°ø=0àx…Îæ+€Ÿ{€0ú…fË»^àÀ°òõ@°xØ| L¡Ð%ÀÀóÀà“*.ØS†ÀŸ€Q'£n{€À—À„Sà àà3À7í èRÀÙ§*ÞƆöÜ <¼| ŒBÛ5ÀãÀ'ÀYn…‚ÀíÀ6ö·¦£‘_`p?ð>pÆø ¸x 8îtøhV?öCÇbŒ[€‡€—€!g`ü.VφŒSh20xøðáâž¾ ÆÃ˜ Üüxøû=´àJ`° x(˜ Ð9@X <쟅¾\Ü l>N˜ÿW÷{ag#/ÀeÀmÀÀ'ÀÈIhÀ÷uÀÏíÀàðÉð)ЬîžÞ <è'@3p;ð(ð*ð 0¦q]ÀZà)àmÀU¤ÐL`ðàYà-à¨)hCÀ|àûÀà]`Œi·1/›M¡MÓ@Dƒé0:œ†Ðt$ECiMÇ`úQ€ÕÇq4œŽ§èDA'ÑÉt ¤S1En¬úÆÐé4–Πqt&§ïÑ:‹&ÒÙ˜‘O&RM!/OS CçÒ4 ·çãò8üTJe4ÃmͤJª¢jšE³±&¨¥:šC¬_æb²Ö@ó°êšOAº˜.¡K±b_@—Sˆ©‰Ò"LMZh1-¡¥ÔJW`ýÐF˨:(LWQ'E¨‹–ÓÕt †ö˜×®¤Ut=.§7PëÌ›èfº«û[釘E¯¦ÛèvZCwà²ô#ŠaxÝMk±î¼‡î¥õtýÝOèúgzzè_è_é!ÚH?¡ŸÒÏhýœþ¦Íô=J¿ 8ý’£§-ô8=AÿA[éIúO¬€¶Ñ¯h;í =MÏгÔK;é9ú5í¢çéz‘vÓKô_ô꣗éÚC{é¿i½Jûé5úú_zÞ ßÒ›”¤ßÑ[ô6 ßÓ;ôz—þˆµÁûô}HÑÇ”ÂjìSúŒ>§?ÑŸéÿè ú }IÿO_Ñ×ô }‹êW”Ê@e2X9L9\¢¡©¥ U†)G+Ç(.¥@9V9N®¯œ œ¨ŒPNRNVNQF*§*§)£·2Z£œ®ŒUÎPÆ)Æ ¾r>Ý£~1Åï¿°´Â_U…©Y(R=„olÐB+¥Zf£½É¿¬£¹¥ÔÁ6È•Ú. MWZv‘'Í´uµ¦ž]q±ŒV Üêêr:/Änuy16lp«²‹"µ+ŒW6ýGªžsÉ>#5i ?›¥-jc«F¨¶Eaeů׋_%S :¶5²>³º¦¢¡º¶Âȯ9\û²c–]U§«Ä0éøºÌZg®îœù­í¡Òå]l\éêÔ‹Ã[£¹íÕÇŠ êr³R/z†®H7êjA©·Ýy¢Nm¡¢Æ)ÌÍ£0Cå§ Õ–(¼YèäM5Ôk·´}Íèp^sg¶‡ W¨÷U{Þcí!gÙ N^ËÀ´¸OÂtÌNºuÛƒl¾–PdN·Ò²4IF/Tù…šA™Éíõ^Ÿª•¦†þ¢†‡Š 3_™_רUÄå™F½hq2“ †4Y5X²kÍÏÛZ})»|hûûüìRR„‘XnRqmÒ{Ôr6Lo‘ë¿E?²gÙp—‹iKC¿ rË›ds_63õî½_œ‰›Þôråaü¬ Šz}TUµéÙò©}o$‡ôµÛ¸~½Ã;Ñ*ÕoÈù3=q òÐìy¾¡—5ýù½ÜØì™WL½æÌ#¼mNÇ‹¥mñ; ’1 ÙÈ’˜idF¢Šgª¾Ôï|9`6Ò0ݸܩ4Æ ÊhÕå~ãú èöØ„ä»aIDê˜C“ºÑæÄT…“î¸É¡e‰;xúI×;i6uÐ& ˜ˆ×9Y§ÞN,ëœñ°¨cß®2”²ò =\1y¨ñ€(Ûè`bö«šÌ–™œVQ·Gù)G&:Ú GfZØIb*EÜäÖïrhÛŲ:*M;ÈØ3ºHMœU¨ß?e^ˆ-çuN) ^=2í_ÌV2ÕZ¾727SéÆÍì¦Æ»ò2ñ÷8äêæ–ÒHÃ5Õí]ö¼ÊœÄj-•Êr%Enç™ß÷'ëðI²ÑP23•Ö²¡5»oëÕ7´Ø¾©93fW4Hüà -lÒâûO¬î ”UjTýy¹5ߢblú²GW®E§o§Qç0Öüië[6ò”±&Q7'…[ÕÍ ‰1‰”sj3Q*Û:6µEBí‘åé­æ0¶ð1‡TïœÕÀëúÞ™Ì$¾‘ÆLÒvà±Ý0jí^l­ÝB½vM\ýÚ#]EsäŠó°M¤Ó°þÚŠk®¶ý(–våÍ‘l^ùg4JoåãÕgéqéåC•ÝB[KKL*¡™mç—#;~„©Ïø¥ù1Íÿ%ù2&/6sëÌÆlh´J[ªAI:ÚF–E I3Ç›²-_ÆäÁÌ7}0PbÉ>AmbØ£0÷‰CE‚$ËÅíúöðfõ#öh|ÌE¨ò µo^4Iòq‘™!ɈC?•”HÊÌ£¹÷æTýõÒštà 3eIå['Òãô5É–V¹Ü×lÇ|¶*s®©yÙÛœ•bÄ:Ù+Ér¿]âµ~æ\Û×'ïÃr®¬[™Æ]Cu_e¥,ܨ!0ʳ2¤qÈë̉…бLϲX´ á7W˜E®mTV‰Æ¸lm¶mV[qT6MdlOz¬–N“… ”ÌëÔ’?}D–™HfæåœÕÀÖ?L¦Ù‡dÇœš ½ ¥×\ÙÒ Í0’#–5EZ«D§z ¥_K2. •é…­‰ ^wËg«×[ƒ¥Zg%•*K«Þú¢*½†àÁjúNåxZõYn€ë; 2}ã¡¿·½ßû<$ÔnçWJILs§»¾7¬›Ô—Øü¦G³‚b@úž2W׫­ÃôÙˆ˜QØat®˜ÙÔÚ†qmæòöE9<>“Ùd~’¶¨cY¸©³ÅœÛLÑ`9Þé5(–§F˜õÙ#3ߊ—plž1=vfµVÙhb)²³ës‹T¯ ;¯Y{ƒ‰óø-Ä µÌf–ðÔ7 ÓðN"wN–Ù7YÈÒ TîVæÎšÍ*§ìëµ…f^¸Iè‹Ù›“Ùz#.iébŸêÊpo˜_U b†žnãš«#;ß¡Fúa˜eµ:Œ6bº»[æ+›ÃÍìŽ\vG€Ë&Š —/v.¤©ËB”í¦’QÀD´,Y¤?ËÌ!™@i•ÄP’'.mŠˆ›,ô‹ WëC·¨3_•˜Ò6b̲6{Ň‹L½žlœÖö®ìW531c'ÓþüŽý ¦e‚=lRl ;Œœ!í"Y¨bEZ¨±²0ý%îò–Å~3Í<êȹì¸4J¦u4·.^Âô3ÜÖ¤n‡w˜¨³ðöŽöëZ:;2_Bý6¢ô*Æhê±’©DkëÚ½/•“9E«IgK¸Sh¿Ö‰–z¸¹½JÛ@ËØÎ"㮥å3ÙaÐÍÕ*ã(a²²Œx橆FìÊäΈó@̃së¶1“× –Ó5ÂÌÊX5êçú3gö8Z9Ïš5›p¨½åšŒ×ÓÓPÕ´Y.ïW,2y!TÞÖVÛÔÚî/,"ö’¹øÇü‘?òGþÈù#äü‘?òÇ¡=¢’«HÔC.7à(Ð$zìßIfÇÒ_‘+0œ\ —» Çyd:Íc,ÜmÈ› ÇN7ä^& üýÝ£ 9Ù5Ö‡n_ÝÝã Ù 9u¦!×@öL0ä ä° /…ä.f/È«Xz ¹rôCÞÈøBøÈ=“ ¹r`²![QŸÚ®}cœþBÍÿ ¼¾+Gp ¹j?àÆC¶hyî~¾š xÂ(K`ü>ÅÙ/A„†ó.7CŽì?/<\·ò®+âºg ÷r—4ÿä:×¥ ×$4—pÛȱ„–Çó¸®ò®»€ëRÏ{ZÓù¹® òR®+ãº.Èkb|wqn»òWܶœë=Ÿ>£éfr]%äªgÌß³BŽqÝ,= È{¹®†ë^gò³š®Žë†@næº×…!ïæº¹\·òÄ^M×Àu^ÈÁ^KAŽöj~¾šëÖ@ÞÚ«ùùZ®ë…ü.×­âºÏ™¼SÓE¹nd×ÝÂu~Èa‹® rŒëº¹n#ä-\·†ë¶CNp]Œë^€¼›ëÖrÝ>Èû¹n=×½ ù×mຠ§¸®‡ë¾„ü×mäº#žƒüœ¦ÛÄu'CùœÙãŸsîëb?io3ÿ/éßøàñ‚?U³ypfnw™âÚd‹3\œ=86ÿZãê>ìÙž#\ {Îuçc‘ x¤ÎÕÎ2.‹':ÍÌ÷œÿ·³ÛviyêþÅ.-~±\ñ]êçäÔ#Æò6cây¯gÿgþï›Îó>ýwMp—ii7–ÙË}\#ôß3ÌyŒ1¹Ü¬KpNJàú«²··Cy¬Q«7½n|Ñ\[¸¬gj—‡;Ä'ú£ÜñüwôB^ÖZÔqÆ¡Úïæu}Ónsù¶î6QÖC,ol·QÿñyZù’õ¸Ž5|7ËÊŽ®W07¸Ôo¢{.7ä ûš y+ã/4佩Y˜¯Bv·²k®‰!Cž¹§Ñ« ‡/3ä€Enƒ[ Ì?! ók.Ș}Ð7CN´8§©%ZÝx–Úûóî=Æ|4~…?¾$÷útÕü}ûóˆ}hoWå 9!È!§Ú ù<ÈaA®‚äFÈ$ÈaÈÑe®Ošobv®ÙgŒ÷‰çÛù<²Ã٧ɰÖXû÷õ§~Œ¦—6»xØ |   Øô*Êuö;’סI@+Q_׈rYÊ%õ›‘jx\°û[Êiº>¿jÔ—{%ÏøÙƒsÐ]gÔG#£›þqãÝš×µ´õñz=ä½\w$×%!þºù:7è ÌGß0_ëSTPLTR(2,½@©|©4ͨÔÌèf¥ù‘ÝPH´°ÐÌ,üÀ²ÄkåG˜æ¹k¬nußÞ÷yÞç¾÷Öóì3ûÌžYgæ7kýÖÎÞœ«zWÒ‹pGF’$2¤“™d%)#«É:RN*É)rŽ\ Wˆ`øŒP£‡ÑÛèoh7â ·‘dŒ5RŒTãM£Ö8`|j\1¼F K'Òt:ƒÎ¦¹t-Ý@ߥ_ж,³pÖ `ÃØ,¶’­f/±K¬»eF›wšnó yÜ[ÀV±5¬‚ía³£L0;›}Llê¦e&›SÍÅf©¹ÂÜnþ`:¸Ìçð%ü5^Ž<Ðêf9­‰ÖCV…µÇ:Ú_èÇv=Ñí(ÍDóÑ6@ðúàQøü.>†OãóXcÄ¡âÝb•X/žÅÒÒ#Ò£R‰ÔEî-GËñr†ü¨¼B^/¿#×Ê'ä r%Rª¤)3”9Ê'ÊJWÕ©Þ¦®T·©«ÇÀJ5ía­@{RÛ£}¥Ó.j~z€¬wÑ =F¿[Ÿ¤OÓgéUúWú%ýfÒ—d0FâÉ4òY@#KÁ67­¤‚T‘ä¹D®Û"mLÓ<ãã c³ñޱ×8j¬¤]Y/v;‹cE¬˜­`o³*v}¾gf¸ÙpÓÌ3K3瘘 ÍÍÏÍ@Þ‹÷çç<Ž'ò <‹/å/ò÷øþ¿Âo³¢¬uÖ+Ö6«Ùþa!Àç×ýSPZ€V Óèê†oÅ}ñŸq2NÃx6~‚OâFü ¾]D¢&.ï”ÆIiR¦ÔSŽ’@ò^¹X~R.•e2XàýÊ|e¥òšò¦ò7°CY¦PÏ«Íj¸©Uj5`sgÀ§#uªÇé"“É2²›&ͤŸ1ÐaL1æÁ7«÷ƒÆ`°«¹´”® ëè+ô :Mb*ϳõìUv‚Ýa^1]ód>™Ïä…|øßN¾‹ïåÇx‹ZC­ÑVÌ}+ØP­uØ:f ¼¶Ú72ᨊF£gÑ:ô z@_¡!7æ½Ø_ì(öÅYââa1PrJC¥Qà‰$?9P‘ò²[N–³ä…òãÀë}žY#!_•Û(‰Ê¥³JÔD5G}TÝ¢îQ¯ªm5¬¥hhU`I½tM·ô!úH½P_ª/ÓËõ×ô}úAà¹ý;½˜n ‰!÷’l2<Öa 2Þ2Úо4žN¢Eôiú ½FCXoæf㙇•±³“kŽ0_6+ÌH~XÃTþ2›WóÓü[fu·–[å–*y0ÿN0ÿ‘èð¤‘î€p ^ŠŸÂŸâsø"¾Eì-ŽLj‰ψ?ŠévI ˜)5Hg¥@¹§ì‚Ù'ÂÌ=² tPúÝ£LQ*¥¬`—²_9¤Ô+—Á§º«}|œ4ZMQçªB4(SßPw¨Ç!´ÓºiT›¡Í/+ÕžÒžÕvø¬å˜vJ»¢ z;½>XOÔ³ôyú‡>lN롤;DF‘1/{ØÿUr‹€égUÆy£ ¦]hO`õ9ôIú,}n^¯¥ŸÓ3´= /càgn–Ì&²\à©'ØÓl+ðÔA`©6f ÙX~¸™`N0ÓÍ™¦Ç\f>c®57››õæu³= ;Ïå ù*þ ßÄ÷€·á'ø%þ#wX¬~Ö=Vª5Í*²^°vX{­ÖeÛî² î(݉Ü( r´µÁ!¸ îŽ<Çñ#¸ ¯ÇïázÜY êbœ˜$¦‰+Äâ;â^±£ÔUZ"=.}$]’üÁ 7È»åzù´/lÒ"t§þg}¬û—ë/êÕúÇúuÝAÂÉíD"Ã!®æw=O¶“}äsˆ¨AFOC5†Bìœc,1ÊŒõÆ.à¬! 4ß~4ðžN_¢ï€EÞÄ:°H6ÐMe3ØslÛÍö±:6ÃÜ`n1ß2?3Oš£ù›üC^vÙÁJ±6X‡¬ã–}SO>àãvŠG¡ÇÑJô<0Sþ/¼|q˜*æ‰%·Šâ§âqñ+ñœ+”þ"½$UK§¥+’yÉ`ðÉiò\ùAy­Ï?½r€ÒGÑ VަÏVò•EJ[µ‡:Ðg•“ÕéêêZu°ýõÕO»Uë~ªj‰Ú=Út-K{H[¢=®­ÒÖj;!z¾§ÔÎkô¾àÁ&DÐ4=P,×÷ë‡õ3à¹^Ýbi_"B<&w×-€,åUò>9H>%—!8 ;é ˆN6¦Y†Çx ¢Àa°Û¶´íMûÓ»è(š yɰÞUt ÝL?¢Giu¶Ø,-…|äu¶ ¢Ä—¬ÄÒLs‘¹ÇìÍÄ‚~'°â<ˆËù:`€7ùÇüK@:ÊR,fM^œcm²vZ»OY¬ë–ïf§6‚ˆB}Å á(¥¡Lôz¡b´ mG» âA'!ê^AÁ8Gâ~cÇwÌÀ9`¹Eø ¼òÅzÜ]ì'> –ŠeâZ±Z¬»wÞ-Mf@FS"-—HG £ •#ä1EæCT.–Ëå×åjùœì¯t>•µÊˆ&•ÊûJòä7§•o•ï‡Ú8u‚:MÍRR¨K Z?«¾ nUk fŸRÿ¬Ò «ØN Ѻh½´(MÒ¸6X®ÅÃjNÔîÕfBž™§-Њ€q–ã¬Õþª½®ýM{W«ÿhÔ.ó´‡(ß¼d€ŽaA¬O„hŸ<” 9é£ú3­Ó·éún½F?¤¦Ÿ€,À’[I‚‰Yj<G²Èýd!YDJÈròÙDvø¢^9MâŒuFú"7j× Ú†(aû÷ô˜2Bqà ]ÉQò€ÕŠ•2¥¼EP°@j`Xª.SWŽ•j5ìj³ûZmd›Õk€n€>¦EhcÁ?е•Z™¶vcµ Ø‘EëÃô=CÏÓóõbÈWVë!ÄI0\&Ɇ++wB N12€ÓrŒFÔE•i4¥nšDSa§•Es€× !·[FWCv·‘n¡•´šÖÑC`ÿ§€å.BV;/E³X–ÅØ)ÖÄ.ÂþÁa†˜a¦Ót™È”!FÇš©f†™ÜWj®„èRi¦ó ¾ˆóRÈWò2¾°œoàù¾WðJȆöò:~"öQÞÀÀN-ÚfOI±Ò­«Éºh n?!Eh±3Û 䳯$dïÞÑ¿²—¸—âex5^v³WÂ~® øn‚ŒJbˆ&þ~ÃÝ*­Ò*­Ò*­Ò*­Ò*­Ò*­Ò*­Ò*­òÿ+Q3§O˜=5sꔜ¨¬ÓÿŸ0Bš¢ÉЦ©Pв,b(mí#QaQì¿·HªàDÿ³êÿ»äfç¤Íu:…ô©ÓÒüƒv÷Íœfÿ£èI™“þ-ý§dä¸R¡-”8¼^AØ~£>úÑ·Ž›oÝy³°%päv¿û#“2¦g;³æÎž67í>ç”´Y³fç8'OuÎÍåœ>Ë;*ÑiÿETÇŽí]7t<”½ ÜêtþêO‡ÑkéUî+O^¥¾r³¯¬è¶ùªákóÍÕž¾úMW5_ùÆö[|eÂô)¶žßŽÕ'#üBeü]?=Ž/47Gvðk×Þ÷Ð˧C:GÜ8wÚïB{úÎÛ´à#¿”¾ï•o¼iã{ ¹¡#äg]vQ×§åoíé‚ãÀÀƒüa5|n?h¶=ò—gý}âüå™ô%Q9Sór ¼»ýýó$~V‘57=-'M"ü[*| ýæ‰btTK3¡ÖÖa;¨Ý>âwí*£æNÍœ=Ehy*| õú]»AB«üGeL²äõ\ð (ªÌ¿Ãã_T™ÓÙàñ/Ð…Üöža·7>¢ ÚQc¯²0´`OÐB¯¬dþ“jxA&VÕþJ ¾J=&ÙÓä‰u9¥úŒ¯¡=÷Š/øÐ»8žï<ÕEç‚ 50 OœÃÓ1j鮜^ñnoø»…¯ÆnU™è°8Év¶'.`q¬+ ô†U/µÿáAI\PÁ»6.û:•‚BPÕõ'U-J<#\!rÖß3:ÈÃVyƒ wBwOpLòâ`ox¡¯¡£ ê‹ìú$—ÓÓ~áÛfkb]>ëÎö_»Äám³ðª];8´ Y<äš=šÅ7·à3¸`· ¢G`À!5þ6<ÁÅéðêÉwExGÚˆŽtŒnA´d¨ß¤‰ÆTU­YdÏ9 £Šxoxq˰½ÁÐ<Ù‘ìM°›·ôŽƒÞnû-t-Øëõõþ5üµ‰cú!R}Qer~oÏÏußÜÝŽø„Æþà³°À~ƒ=£Â j‚ŠöyjæŸLô†gÙŸÔÕç‚êñU `´t,‚øº‡y†8âÝgÛúºßâñwNl™±7<Ç7Ú hçêS[éù~þ¾ “&zªÆWy;À°‰-³€J©rü¯†¼}l*’.0²5cAU 6¾$ÉàYæÊ€K°¸%°Àn¸Ÿ‘Ú3ÖÄÕòéI¾O€%n·°ÚÖT Bo²U%æ¶“êÏØë ¶ànYbhè\SÚwtä?à ãúIX[‚7|ÔKqõ8v“éë{ FòÙ™ —«cçµ÷†ÇÂuPWcW퉠})ôG·èøoôÛ§¶õMÍY”®£™ ¥cti¼«åR¿’— Àw”,s! ã1 %…®h°ÅšB×°;X{½pš„~>MÖrÚ˜w L®Éžîåàâm¶—ª"Jvƒ÷?Ø»Ø8Š4]=3~ÌÄNì¼pBbƒÆÆãÇŒ8$¶3 1“ötÛÓñ¼˜î‰í]'pr"2áVìŠ[éÐiÒ ­ön9±:¡…ÝËÄC‹NÓÞ‘{À=r‹Q.ì¢KEø¾ÿ¯îÛ pH»·+“TuUuUýý¯ú«ºÝ…3÷S•ËT"ú$ªœz¼¶ æ~7±•Ñ×L3*1Ñ–<žA•MŸõL_Úô⋳+ºˆÄÀm ZE§/£û®>t²¨îÞ;ósÔßGÕv:ºõÙlþú™.+~ÔV½¶NHÊ|¸ ¥'þ+ï^)‰ ¨Xrü¿‰y}}‡¼³+’dG@ðwÍtÕÔ«U÷ž¬Bº†jɉ·Ii¥±úð² ß©íD±í ÕÌY ÙA$ ¢Í¼ƒBB¸ŠÉ½f7ÊuõyÔTßå²pÍÀ…u¤ø¤õ TE´o·‹0"Q%”`?%bý> Å¢OMøÆò¦•–oT-h;õtma¿ÿS útí=„ô.™ÞCˆnEš:|È•,Ò§½‰O ?‡D¢TNœoEô2Л]¡#>D7Æ!dÄ™ƒ$¦U}w&²(Øû,qå$F<ȃ >tf¶®Ö9næøqŽs|ŒãqŽm޳'9Np¼“ã.Ž·s|Ç}ïáxヒóí†ÅZ|é]ï«S§}'Äw¦Eß™Ý0å|H·):¡ÈjÝúÆô«'”é.ŸÞâë#‚Ü?ýÑÔGêÔù‹çNŸÛS[óþdmÕûIppóª ¼ízïÃïL¬;·¦vº¢ö‘Áäcü jôSgi&X>õޏtîÊòweù?ˆ Ë)qé*Í¿xn°¶†Â›d„hÚYÜYò"¨z´i¶’®S—•éÊr¢ºÿdåË(È÷&ޱ«`)Ûÿì«Tèk=}abJÏPîÙÓˆf¾ I[…ÔR¯ûj}Íà«@4³³ fÿ…;³‹›aX­–MWRëiÿ‰7í²Ù·ùÆT#ù:Kèb½ËXKü®£{bëé-¯TˆC‰ÇȽ®Qr²û|ëìÉ#W¦ó›.å+:7°%ÇiþÝtÑ.™úÌ“=óÊ6½nWÌæ«öÎæËgÏ¢Uç‘ór>u gþã3¨a÷yÔËM¨ê粂²©Ï”üâM¯çýû¨ô%ÔÜt‰:÷ædÅçP„ñyO¡Žíe.È@àÔ®+³ÓÝç/¬žîþàïÛ=óÀïßfÚ˜¡›­§gÈéÀßš­«e‰«¢áo¦áÏæKgë–#› Ú$¸È®­˜Yƒ4Ñ"ã›y¬¾ôîõ§/½»ÿž3 Ôw‰Pô §×»Ï?pSõÚGŽðźiʸçæü4͘‹fÏ^(%]4¦ºÏû.üb†(H}ÔÇl]E¥±LÖ–+ùeS›‰<°'„õì ;’¹‰®ÕÕkõgÈ–õ‘œ„2œB¸õ_úáµu_>iÌôMw_y½û M%'»/Ÿê¾¨?KÕÏLﺨŸ¬¤ä~8 oîÜ5 ·†c‚ñ[sS¿þý–~V'¯;q½!Œð4Âi„A„&§N¦q)Â;Ÿd»^Ø Bá8B3Â÷^F8‹ðo—£ýR\=Ÿ¬G9ÂY„WþáI„£I„ïÖ^£»f§%$kiD䮕v&£¦´ô„:l& U/œ¢eѦƒ¬T߀&Zn$Ÿ2Ò¶¥†[ÕTÞâÍ Ëx8o¤ãs>6ìxÓVÛL™¼­fœ™ÑU‘̤GèÅû[eÍ‹íÖs{ÓT>cGÍäÔžLÚ½½½“½]L…0è08áâÞäfÙqûEMõÚ_ÖH-¢¼ ‹ŸZUÌÿ9Òéäçí|Åßóä€ÁÂÐÒ<Ú¿½ÿ§o­){á…ÈÎþù×ÿTûØ» ­ˆoLfŒ1ÓÌÉ#ñ³v"“ìÛ6”7“ú »e¨Íë»kõÕð>¹©˜>U!|ë‹e*ä£ egçÔ{eå({cNÙ+$‡êµÇôû*Çûú{·Ý×ÚÒ¤'“⛢o¢;—£³å!}âU*ÇöjɼÑ-eáÛJßDá¤Ý» ÑÅcáDŸ§o‚ήí°úóCtD‚ëP§iÙ1º!þ¹~G¢cwi–-V»÷v‡m¤„¨qKzŒ1!î¥>óÙ¤ëÓâ£B¤ŠX5:7rŸ™Ö3c …xŠîÖ’±¨a#CXIßÿqÊûµÃnáóÎèz9hŘ`Âé¿7ÏçrÚþ-Jî"­¡Æ3ù¡$Fõ§- J¶‹ëž<+Û–0Su¶æF€wÎ2xBD¼±¾‰©Hœ'Û…vòôÇØV]—”…:X€cdm3“âo@‹ØŽ´iËmBH©oicŠx†s Ü¡Äè  ÛÈ¥ÄûžŸÁ%ÄK"¦é‡`búy˜ÞƒÅ¶e³ij6øˆÊâc3Z,¡¥õ¤‘k~ý{·E#!0ЏûqÓ/*1'u\l7- „‘”Ýiå´ÜŸ’)îëŽötïtDŒ{y³üÞŽ.C~¯ üì !*o¦ZsöþiLESõõïÿáÏ™.ù¨¨ :&/ãty0¨:“ݵñvõZu}ši«ù´m&U/̓)˜‰«§f …$˘µQÇʤ uvFÍ «;nëm ìIP£fU2‰µ0ySˤMõ¯êÛÎÐT<L ºß`\ÕÆF.tÐ+B§Ìq`ì kåL›jÏ«Ew´´zð áš-©Æ3iݤô-·v ƒÉ ¦†;ÂÂ}Õ´ÏÛÕƒjV³,õÁܧñgåTg5¶.'µ5L®¢€ñQƒÝ®%Ø R÷È@Á²#ÉÀn¥ÕavòVP;©oPå]jœª/æÝ0°ÈXFS€¹‘qG×f' ìP­¬7‡MpBsåCº]4Fk“ ¥´ ð#à¸F ¡šÍ5ÍÖœ¸%;™sZœ€0[.šT$D7®6dfÀq®‚L$ÆxÌD”6Sw@BÖ9ÃÎçÒêaša¹ Õ¦™BŽ‹É Ž`.²²>~˜P²çË_  ›TC‹'ˆ…¶fSªhå˜-û4ôµP:vþaAüæ† Ô»úz£{¶öìQ{z÷ìØÖ­¢0ЛV¹7(eHrÙQ|6›ÉAÂ7¿îO›ãA•H±^“   cK¥¿WÕ|íU?¹Kñ¬çö 0ÖD:žÈeÒ™¼EZI€Rù¤m¯‚óÛˆøúûc¿ñ_•çq9؜濠yªùçÍÿØì M‡ž ùZ¶´L·ü°å§-×òA˯[>mQZWµ®oíl½»µŸÿFøTkgÛÁ6«í›mO´=×vCûöösíïµÿ{û‡í¿jÿ´Ýö‡«ÃkÂ7…ëÃMá¶ðÆð–ð]ááhøðCa=|(œ O† ?~"‹ŒD²‘ñȉȩȟD¾ù~ä¯"/E^‹¼y/r!òqärDé(ëXÙÑÚqwÇ;>í¥K:—w®ê¼£ó¾ÎhçTçu>ÕùZç[ç:Ùùqçí·o¼w£à5íÞ>úVèéÐ÷B?=ú$t9DÏ/é'ýuÎÅÖß)~g?çýQo²’Mß0³¿i_ôþG(Ò µ…èý¤Â­m‘½ÿ‰´}ýþÇÿůï>¯O~ËóÌ#å­ÇÎþ(ç+Çê¼\~T³iùµA<õ«ÊÀSŸ¼¹5î6¤çÿ[¬Ÿ ~³a±"F1 Ý#F=bÀ#FP>Í?àº%Â(†Gè%bÊ#2ÕB1J(o–‰)E(iÃG±2a” ½TBµ½BÑ˸½_èåœ$Ý/Žj… NüÜ¥p/@Ýs¦Bè‹„^!¦¼…|%ß$X裿~1 …>B(ŒYm¤i(3æ¾Ð’’¾Šn ›pŽ ó ÕV‡óiÇq‘¾§1nÄó˜Òy¸j:“ƒ Vx1†–fZ£ú˜4{ÑY‹^3^è%×`n‰‘ ’Ë"!êM›^Êpoõ0+Jœ°ðY0ŽøÄø 4;*\L¯˜bÐ+Žà¿Gb¢ZLzŤ‡Ž[x‹Ã}û…Ï.‡"³L(ø”©P3t†›T„žGýâˆ"è^@ø@7ÏŽ{'a.¢Š ›<@ÍöMú£C~‘Y#ÊxŪI–¾”ˆUzsA衲u’™O«´£ç~ü|:*~1*t–Ò‘ÊÎið-T‡š38 'X7h‰1‡KäwxD=%5‹üÖ ãó±ÿHå=}é˜w ¨KG8bÀaSÖF“8a’{eÒe=½cc“‚—ÊLÃâ f¦‡36íŸÏÃÚ¦·¯²ð­©>#Hì„M±85Ê)RÆþ P"Õ¶ÜÆBÖOUá3CZ|ÔfêÙkŽoð¹µ´ßPOýDË(¢~¢T/ÊeŒ­p#{¾ÊÛ¤óGJØ[ª”;O©âeÊ Å«T+‹•*\ýJ¥PVx*•8Ã}¯¬—ZѾ ÍTšä¿ü‡ð {Y[™ó„‰õ÷sÄ›Ö&»è”ú%:%EƒCƒôA‹ôœÆÄ™Ô¨YXÞWšhÃK2[ŠW]X}Ô˜ƒ„}I³É" óIËf´.¹Pê²§Þ[àL±¬Àž(QŸÏ`¡=‹_â*eµ#ù’âL,–ÂÊ$+ØjÅ5~i î¾[Ò¼Ç HuKÓZe—ÖŽ".&é¹Yâö0¤å¬E4œ y°ê¹aóDÏÄc1' )ŒÅ¢~W"¢‹]Îòý„fѱÈQ"§Ãд–2Ђvæ£4]G™b4¸úòB/«æu%»_Yh±ôC¢^î`³¡’0yüøWªøküþ*Oµâ‡"SI…7Å®Ræû ·ÿ¤îO¯‚ª‰Ör®·púüÓEo¡Z8Þñ®à-ŒºÞfgÌõ˜ä1½cVÇü-gmÌÕúb¡/z•Ы…¾TŒT“waxÙ©XF…¾\  í ¡¯úu×̉çgG*Å ¬Ã@c5¹˜µöêõ\´¦Pä'—B_Kv Þ¥×qz;&7pº‚Ó*§+…Lo¤ô`™X"ªÄ]*€&p\A8j+é}Pò`€ézN¯ZN¬z'V ýfN\/ô[8±FèõœX+ôN¬úNÜ ô[9¡2 ð?(ŽÃ»ÑÍ6rö&ÂMoËA´šõB¿M Ô c½0j…ÞÌUêÜlˆ³7;PI‹8Šß2§¤•Kê…Þ&„W`ƒ0ˆ%øg˼•È8z;c×(ØØ³>×Bø¶92£ò\Å»%Å ¾'cêXÂH«ñL*«åxc&aXlŹ™ånÔ`šµd0îCT¡>Ô°Q½s"çIƒ«¼ªiž‚º+ƒÌ„ªYsö{¨ÀÙÉ3ŒÑ =ПŸ[‘½…zJuçs™¬¡Žéðþ@½¡I½ß¢-J›û£>д¾Èh—ès!©õÍ›%BA5¼YBlhêa7€ÚKˆpóûµI÷æ>›VÒвl<(b‹M‹[‡Œ~*“¶9-=b°WÂY—<\9›ã2†_Les¨Ä=*DÚvI;f“5'« å¸ÀË{n†î'éK‘ÓeÒ{Ð&½3l“%Œ%3h~ÃÐcU×¶ªô¼Ã¢'¸p1`R°îðIyƒ.n?°žL–ðþÍR29û¢×!œ–‰¥_'„À—“6›~Ç‘À2fÉYoÈÈ"wR!¢ýõdh{ädðv™ëfñ¹O_x²òÉÉÊ™ì‚9.N†ãsü±…f•IÖ•ÔRCºvûlN©†;%æabç$O‰1¶¶ýÜ}ef “ód³ËiÉa9ñ]W˜RгÄòâD‡b1zl;w*ž·þ Ã@&¥§ˆUXjR¶\ç…B|Áê¾ßö+i9‚5-DЦœø´ôázqÔ'úÓ‹±XðËûç Âïâ*çR–‹Ig²|²£Ê‚gZf«ûtÜà–X9ö`è·–ã-) Ÿ¼Ôèõ‘F×]ƒ‹˜PÞx,FÏÐ,>]ƒçÈ ç˘nVÎc:Ã]Cz `|,ÖX$¸ô&æ:šÛTx­©Ù튛‡ÕzÇ;‘ËZ¶»z{¶oÝ-äûï§<[¨âë-Ñ[ bPr úð áXPÿÖ)•ž«WšÄÆI²•=mÞÀÔ€à¯È.–>·†³»DO‘¢ò™`ˆ´’¤Np ƒ&•¤3éÆbi“Iü–n mýšßR \§;TIŽè¶kŒˆØ2à §`ƒ|îX¶ÆÒq„­§ØVóÕt —Êze—Îûd—šëœñÝUŸó|fq4¼/F“ƒúàD(¨N´4È}.ü¶ZV>e¨!µk3n4I?Æ·`ÜìCP4’—i‰#ÑÐ5(@<äjF®ð/îÅý!¦Â*qÕþüZ@8ÛC{ŠC+xscX=Jn|#$²ÙGãTëC‘æÆ¦¦¦† Ê.JC- Aw´Ü:ÔØ‚‡Í”›cUˆ‘¼|þöþ0Ž#»Æ«g nž (QJ¢P $R%ŠÔ$ÁcE‚\´”èÑÝšÌÓÁ]ïj}ßYÛñ}åpœ8qb;ñ‘ÄWì8qâ܉?;qâØñ‘Ïqâ#vâ\ûÕï÷ªª»ŠÚµÿñ÷ý³Zª»««ëxõêÕ«÷~ûzSˆ5›z6u¼Ec)ª»áΘáÎ% “]Ÿ£ë¦¸ß4Å9ÒfŠ72¦C°BR«ù;–, ¢“hG.½" ܽnªiÎÎèCïÝoz‹“ ¬Åáã/¡wÐ¥¶Ïг¦; u€OSíæ!ý,Řõˆ?c¶gØyFÑäÃ}·& Á\}­\ßžÃDùt¯ãœnêÅ]1¼êt›®×œÃÛé’!À»ív~RY.«;Q/ÁoeÔý6u¿ò:8oĽ$ëªm¶©}z„Èl²jßý¼Zÿ˜ÚÌ«Ív [-ÒHvÓÿÛÕýµ~‹ùù[§°¬kIE¿çÆ] à¸×À®t‘ºSäíydÐ_[­©Y=¦º³7¹ê{«g YÇø¢IÑZ<¾å¢–ëëáz±¬ÔK`×\–¡ŠÜö×Mú ¬õÚ½ø˜H€L^2¨­5¢Ðô&•UÚ~Åw‚zmLÄ+ ŽmŽGÊ¢Øc‡¤ÕБôG#®éd#õ\8©8ëôc‘_cm©T\Þ e‚—\ñÇí7¦^nA#ì.ü{ÌÐÈ/ïu{{½¬êññÚUÞ{Lõz½šn¶*w4QÍÅXq ‘ã:Ô°¶Ñ=^±új­X îUÂj6“µmÇC ùzëÏ4ºï^è7–„™":øÔé­ `g¬ÔñÊÇUó¢Ò–ä2oêPsV­O Êço9›ã˜Œe;šÚ«]:E‰sï}2Ž‚hH.ó®'×£f5EëñÞ¤ÎÞ¬5Ï8‹šŽ£-ePg“êÒu‘zãðñ±â$õ˜–7DÒ$<ަNÚÖÏk êìæ¾] «"ĺN›‚uöÔ[B3 låç¡Ð¦÷òø¯3Óéí¡,§â;Äe¾Ý&ÜÖCÇVÛ)é”°õÓ`[º’ n\Þ…4?Œ3t''¶,é{uiŰ`X6;ø„îà,ŽÕ°îy–s?’œÙKAçX48±-Ä4à$œúg]—ëhŠ„‰êbDU²ô¥è§ÝÌA¿NaW6…¦ ³=ížòó-è°Ó±Ôé+“½‰~Ìë>Ý­ûô)oÞ®}®7’ÓH–ªwsÉÉ4˜˜L[ø–9Gáâl&V%® :-j*Œà=þV¤EŠ.âvóS—[P øÆÔœB"Ÿ¬ù_•šû"œpò4(œ¡ ò÷,˜Wgųìa9@»õÏ>=¸8çV\ ²j÷V޹ܰ÷õŠ´þzÚ1œó·†8‡Û ÚÌ™Zl}mõ¾^/xÙUÄb–‰„仵cÝdå¹öQ3Y©ãD'ŽŠ‡ë$·÷:…Ë“[/—×㮕ƒª‹®ãÏÚ¹[ÇGV¦&Üm·TZ1qfŠ,ÖbÀ¦®Ø×š‡Äð­Ê"º>ýßµl¿&ÀÃ^ˆêqš·{ò¼ÐG¶’¢îÖwÛp@æÈñ¨%ǨøÜÑùZem¹Z4ú3*¬­Äé4Ë"NR"ùž›—Î%E–ù;Ç_Qèé2ÉúIÏÑJy^g*ŸÄö‹S@›˜¢7Õb6v$>õÝ)¶Mv‹ÖL£Š '1ç4ÙàßÞp73‰›f‹9á¨(ŠY¼éXÛ¬ô9s_宅]ë÷B-ATõ#éÂh̰¬¼kèÙTãv¿¯¾˜ºª¾wË<~hŸŠ9ƶ"§}&M ¬ln»Mõý-õÑl=ŸÈ8~ÃùÓ á7IöãÅìG–è´Éj´èˆ½‚2Ìe“¼h÷&»p³Ã2¢ 8G7¹H¾ÂcÚìÿóüH›y¬é³½Fˆ\ÿßÏëoæ°;9k޻ߥ6»]¡º”F¿ÚìRƒòõ³IMTƒM%Ø÷ôGà Ûí;l[nBÝ¢ @9³ÎN¨ûª±›ƒJ»Ÿûºv{ÕfZ£‰ùvNÕúõzmoér(d·«pÀÜòV‡¼Ùõoaá9ÑF~¥º_à·µòþù[çQòf!.2Á]RJò€þž¹ÑØl:ÿ Œ¡y:«»¨Ay^·i2òKÇ6]¢»aõ¾7»úÝ oë[–»ƒ”¢c©yÙDµ8·*cÖnæg‚Á‹(ÏNÞ.Ç$ל§E>¸•®9E ×;¡|Îä×,»&¿'ÿiST$|ôƒå*¶}dˆ«r,m´ÔeóR¸¸ÔmW-Y5PUDá¯n¤2Ü0P–ÖËI$ëIï6rêÃø¹á˜Éø¹eK™‚ÒfjÖµáÍS<&WÑ«f ÷ñ¿Þ3zOñ˜7 ×Ÿ§3CNêóvyýÞ¯GåȹËÛ‘yLï;žðÂïi7ÇE(Ô-P«ÊJžÅ·ò˜šlïÓKS;¦w;ËvÊõ¢0)€fô<Þ§in€\ rOØ„z€ó™| S_uq¥çð}r#Ûc oTëA¥Ì3ÕµFK)ƒÝÿókÈ@«mZÞGòòЬ¯ÎŒÉæ¦ž"-9ᔦøM*ŽþRmMŽ—ÃêZ#Ó&úÄj±~ªÕê~XÕ„À£‰ë×Î]*]›:OÑ•ß@Qrø)eIÚ8ˆÄ õÔT ? ÊJ½¬ô^SeG@­ãÔÛ-È3æß è^CzC^/ÿ³Ônì@ØŠ”1¥3ö:~ ž‚V–'-T]S¦IžV¯FS£¶°™ÓPº¢ò³ç'å âÁÌ¥S¼@O^˜ºlïOÏܘ‚ÞbŽì ¸¥B“ /.hi›¤)ŸÕŒ!{´}×Î]»º½î,þÊäqLÑQÈÚ m…B¡O§º ]}¹¾î^/ŸÑÛvævóÞ#™´}Nñë~ã'~_wþ‰˜¹²amsƾyïYw®ŽÉG«ÙV¶9w2ª’…¯'Gq ž9y£LNênæaQª£;íªÒ³9o¶:¨rA¥=Ö|T?¨f”÷Ì}h賘åYºþZ7ÎÒÍ¡zmzu¢W-á€V4~'oí€>†&;U°K»U°G{U0 ‚}*TÁ~< ò÷€ZèÖ«v?le‚*èWÁcêÔê¿P³ë¯À°çü­ç`=‘;8h´¬Èü˜5\íU^âÍßÖë÷oëÍz/«sH­RÁãÆff!ë>uȽ0îÍú}Ì|˜†Bq¡‡™§CÔ}~?ó<¥‚§x[×}Hz³ŸVÕ vO0Ç–aìäGTpľ±SŠ/žN^Œ&/Ž&/ÆÔ)=xñõ3êÔlu—¼g9xí<[œçXÓ;Ç·}'•í¹‡(úùdÝ^H^<š¼8 Nù»ØþUð¢½{BßÝÍ»/©à%{÷e}wïžTÁI{÷]\j8N¦†c/_8c2$N«àtb\ôkþ>Ú¿ªô½émµ&û¬ÉðêŒÃ¦ Z·.ý3´–v6ÏqJè£UÔåWíÜ0­Á‡;;¯©`(jÕÛÅòÝZèGÆÒ Ô܆é×;ú9(je£n»³\h~FÏÀ5k‡Y$|Cµa+Á9 »wé¡J ú1ÝKõ£Æƒ¥È™§mÝIu9U ¶2·¢¸?³`ãVËQ®òtJ*v¡<ð†_Ó¥mVúzcE_rR •/&(ë¥xfJ˜Û¥Û㵪#Gð®pu°¤kU<Q¿7I i ·Å™D%Æœü´Ã$RMMr N\•]‹‰Ž"X§†EyÆ—´­_§{K·Ý ÓÎYW߉/¢b§³ -iÛ·ÇÒz…sÓecU&àLw¦Ïk÷z¿ý™î·‡¿]úªµáâfÚ²OüfâTÓôês]./¯±á«–ãhšÂì;§×®J°$#^ߨ†ó5?àuŸËEk*7ÍJ¨îxïúíuõƒxUr]\«oÆÕÜÚʽÛd»Óvùûø¦NÉÂð±¦o¢w4õ£®µÂAjbÁ§IÜMQe¸Â»ÎàO|[ï³{ÄdáKhõPÝKVó./̳¬*µÙ/ðÈ„ EÙC Í*:åºÓœ­lÒ-Éø(Ã2¢ËÕzUs£“V9ro3kŽí'©ÒH¯ÄB鉥ØÜH,ÄÎcÌz±Ã©V:dç)]B  cèrЛÂì'–W”=hA+¶ï(]tU0¨åô][%¸Xñ#T«Qq6ÔbT;cJ×4D Õ{ýôþ솸þí׫=w¦_¬üðž;zûOlÙ:ÔíšR,qðbC7pövdÁ€µÛ“®NPt[õÝÓCö•<êò JN¯6ÛèɼÙŸëRªÏ{ÞÆ.ž¼ä!+àn‡¢®Js°”®ê¾ÑUmv° =š©‚~Cßê瑚ÔpÛ/þ¸Î¸#Q5YzúË"Ž¢>_çÚmgHÙtF?g3~–ËØ–ÎØc3äzÉåÊØ\RÁ^© /Ç{°¾éºÙUo/«ÏõÙr¶ó= Ç©Æ@Ü:m²¸œo±íø#YÃxÍ(Yy­T¢ú•Ë!»H_/‚ÔŸ<`ζÏάå`¹Æ…‰ Vèsbprù¢·¥ûH5¬ˆå90—Jä‹kcWB.ZÆ%Z›ãdeúrž3ØáÛ‰“+¡Ü¨-‡ó¢¨v~²ÒÍ“ó’Ç]œóØÀ•ʽäi ÌgêÊŸM¿ìVQ9Ñxn›ÙN6Íapä‡Ef=ÝÞN¯GK‹²ÀîÊd½]zîw1Ýç~·.¶š?dödàDê¬êÞ{ÉͤÚÑ\?(êÿYb5±f¶ŽÓàÔN àÄîʱ—SëOŠAÜ£ÊØ»Ñh vñ í5KvKí2àìÒ1[3cÐÑäÏà¨Ì~b;ŽÚ›q¨Ÿ~SYûU/¯y(Î÷KÛR†HßcÚÖ¦ÒmiÃrØÈ5µ¥GÍ¢}ʰŸnNæ,ö*PÆj6ؤŒ]¿€ƒ‘™ß5~9£´<"gܤ˜<f¼ƒr³¾!\÷újU°ª;OŽ#Ÿ:¥S¶3{\gît½ó’%¹DÓV”úZ°!3Ä96ÙCß„×Oؤ©çIç§·ƒ¾Ô°”ßS†}XËÀýzYËê½^›·K_ïÑiøIwÆv—îÄg=KʘZ¦ÉîEÊ!9ðhؾ•1xöxÀôKvC±úòÔê ¶ï:¶#D6‚:|ÒRâN°ÁŽ!ð™Ðe[ºwxJ?þpĉh‡—"ÎÕíã 툧ì°ížYiCÛ Þlõ)Mr9’Ü~’œ~°è¥²Ÿ’C"gŽsÕ+Q eéëV) nÖ–³FIwPkúþ\¬ò…“°ÎÖ‹¡?Š ð– W­¨™ôZ==ŒQÖêÜTêXÇœfL繬ˆŒ¼¥Ú -Ù²¬Y³0¹À2–l¨yt ¬–u×µY ç—Œâ/ Ô…®ƒ §´|“µj%ˆ"'«O¯–¢M²C&1…‰ë¹066–£ˆiè%G'ß›õB£²Ó³N:¥çÆ#zŸµÕXú)~‡è“HR¦“ 9#'Ùò}q{ã\ù‘r âŒÈcžå€dfžå_§Z‰ü]fk`Eþ\4òñÔÃ¥Bñ §Â^c';€^ ûì=ÎTÙðØ{ìÅ6Ìç']ߎº1`¾ÃŽÆžmÃn„X es'ÄÓï­yR?X†OOjÈñ{ŽÙÁ6r|_,ÉS–ï³Ò<¶/9Õ¿Z Ô„Í¡“:Ø™n\=,Fúþ ,¥Û ^R˜UIá_Ð É‹áY7­Çòêv>õš'F0”×±AèæÉ]N$Z>Ô›˜d£Ð<3d’2:C3ø²6uƒ"ô‚yÝdàvƒ‚?÷!bb×.Fc4¹jj AhñÏÐŒk÷)§”·þ2–Àó·ŽÒf,.¯Ç–×#åõªp·3B{BóHµ)hRôdðó·>ÀUCoO¹­=.ÅuÚâ:­¹ì’Ò»XÉN½˜TLÑyUûY:’Ú åí+y¼Ãs¡‚ûÌÆ[ýÊ 7o·ö„ _Þ˜“Þ6“,Ϻæ9SM§æ¸a’Ví–b÷«ð[rU¦ÉpL7{ 0|T–ÌGãÆ7˜6éÆÓk5ÌÌ¢^¦7­÷/exÚÿRæns3‘—-žò0¶ÙwœOÝDë8»#ÕΧñGgz·#Žœ…TmÁÖIðm,ZB›xŠ <ƒû°r‹úY/³¼ œž§Â†,ºè¥H8ö¸[ÆŸ´M£$UjÄŽŸþ±g”Ñ+D¢~£–4…ÆÖW ¡‘íkްº4ü»’þ&-é&·a5Ü›¼ æ2g˜K‡7@x¨no7¤½bäS¿zû@¦ÓC™ W{˜îÖi˜Îa#Ñ.&t™'4cÂ{»õ?È!zd•}¢ ¦;iô«DÝ‘„¤97`±èº.Ëøþ®GK? ^C~¢çÌb†6f“=µ@Q]ßYìâ’–1ê¢ûÜuoÒ5õâ%=° g×›~ÒÖò½=‡¹A‡57¸/k\ÁªÕÅãDœKâoÊÖ 'Elò'—úÆ6¤84 úpبftÓr>ÝUü.5˜=•þ¹à.®¢te7ª3ÓVs#ß|#×|£ÍÜhû#*˜G3=dtõëÂÎçÆŽ=ÿlòâ­¸¾ñÎ;äå¹yþ?{Žsüœ£½Œ¥½ãŽö„T`-’Á|BÀ³ ÑçùžæA¥”Ü~Öé‚až(0W%ÏBdp*cüŸ÷“ÅÞÉ)±âÔìŒ+šqSjg‡uAïÒû(,@… svDÎuD GŒ ZJ:Än­¤#ꋜM“Î((ï  ]hJ%$Í!VMï•©`YXa·ÎWj‘QDÒâŽf·´Ç½¹uv¦àH>ÇsnÂÏ4w€©­Si;iÊJNLÏh¶AÀ"T‚˜Å½aRöŒ¨€®±>ñ=ÏÞkf¡¾È{€>öÙëG”øY$Ö3ÙÊÞ:k¼žÅß.VŠä3>“fÁ×]uâÎqOÇ[ÔkÄ— žŒßGæ¹õ¬f ÒG²} ³±>ÁÈáäD¥¼ '´$¬Ø67’G-yTƒ{ìËD×rÅy»EE!y\ÑGôÚ _p¬[VÙ’í}‘‰GÕ6<Îãõ,øƒ×ÝYȲQŸŠÃ£;=âÒ] ¼a ‚LA !ïò(„´\9f<¡Ì¢=cóÌs±–<ÇåÏsÎ`^Ú$žíø¡ ,­UiŠŒ€34OmžÄø€1ó]Ï ¿˜éöº4íwyø»kw·žHµéÿìß!è.´ /ÿÅi‹‡OÓ™UÔtf%Ϭ†éÛ•¸£2ÙÜQ|©,R‡IÙÄEÛ£¿4¶U­¾8&7Ææõn¹Ñ|VëË4ma«;þºXQs¦PÃÄ A,?*€èê…áÜœGo”üª‚„Ð>„zÞš«Õ*âöª­úB½öNPÕòõ¾Tû­‹>Š.;Pî²d|õìZXi„Õ ÆÞdÆž¬6䤞:\À¬Èçµ ("Ÿ–ÿ„‘ê‘S‘ºîËFEIB`ôøxÁöÀåjÃ(^ÑÍáêÅÈ*îðñ¬nVPf}ˆ #"¬–ùµ†ÑDl”}Îl5F Éõ-–†\oL¡ùÌõ²Í€È2¼óÛo ÍÂ[çìχì–rálÄa~¦â{Ámoh'û0±kжµü’äÃX¦tÈ^Û©Su×?ìí•t¡1‘ÐÞ]9r¹c)Eh†Ôêá¬TLÅ›œa9i˯E_£hËíõdöfòFíÊôé;…BáÉÎL!ó¼Êg{)áB•¾SßFoX‹úwgO&›é{±“×ö?)§-‘Šïð¿L!¯ÿíà_JÓ…þžžL÷ ÙL6»+[x¡§ »ñ?ësÿ´ì݉ijíÃÿÒ±¿yÆ 4èÛ3hÝÏ©´}x%#fáiüÆÅ6H7K"Úì"bšG¸E1îîPRôĸ3©|~j¿‚Áp Ú‘-è"¨3>Ói×òU˜‰÷3qcݧŒ¥u?¿¿ƒ¿;ù»KëÝ4¥VDb꽨æô0z'BL¾KAeE žWêµ»°R£áfÎ…•°!±@Äê™ùëü;f¬Ñ¬EêZ,¬U¨Jô}“׆9àë¦@˜MÑTÍÚÇ…ÕÎs£Tó‰…•±@…~°•ÝX§˜4¥Ù1øMÎøÄ‘?íGt•JîûcìD怔6ÊQ ˜ "ÍhIYËRÖ"0+½[r¤ö@"ûóˆ—§»”-ömÓÚ¤™U­’ÁÚêñvevjzg= &÷í*±‡¹âY$¢ÛJ´³¤oýU3>!nŽÐ{8O?CQ ï¦ÕAØáLw­My×Wé]Î!5«'’ê„Ñ ‹¦°zÌÚRèrñd·˜èeyÌÙ£öZ4ëálø\ï÷¸±Ú _؇q˜­–T®±ƒ δ€Üï´Æƒ K ­ãy` ØõËìêSž-À؉P׬o{oFå cAM ÏF÷PŸ’Gm¦‘Cn€†9Á0]DMiÌy*eØ ÑE}¾ Ûx³zŽì¹“ÉIŸþ\Y1©çC “…¬a™øçRI $˜›s%ù”?̉'P¯µF­…’Ó©šŒ„v—ë5-‰ï±Älí˜u­¼41~}æÃ×'Äc®ÇÑ,•u)[_gì´Ån Ùìe+6ah¸ÕˆIÊy²û**#àÊÆuØUˆÓ)½£”™Ô)3ɘaâ̌څ¤çòxýú¬&²ËÈ“%…s•vo‡˜ Úý7vTfl&pо$¶ù˺y¾×V6LùÔvõ3Ñ´S*½™àmÖÞ×abý˜ûnh—ƒÔæÌ®rr´³È *Ð2ÃWrz‘^ÐŒ`Î(Îßš…ÒÏ…Çm=ÆY¡.³æ6NeÎßzÌè¬pêÓnÍrõõÎÕ»šIÜUɪˆ)ñš¾zMÍnÐ?:¬N=§):êZ½ÁÃ7*¸¿ÁS1Ð ƒµ!š˜ž E‚áÅž$]s^L®¾@÷#V§ÏäÐØL6˜Ð‡8IÖ¬;‚@ñžœ ˼B½žlØðcx-žeK«c<æzz¯\¹Sôk÷ªîàöªDd› ¢Ze‚Ë5²À‡5Ÿ×”_…ïuºlÝTà:JMXQñÙþ7ÌV–‰õ9‡ ñÃY®ùˆÂƃq‰¯±µÊèšå0rpaæ]:ª¼€È q…‹±LF¤m=Žq<4³à“[]A×½”ïÔƒ…RIÔõQrGMYÄ…{À•`-”cð#rj‡¨'Úa]Â[£zAoŒÑPiÚEÏb‡+Örv¹fã¬DT–vRÙ¼žç¹l§‚¹ÄD.Ë \.ãä ·®þŠIÇ*Øah[xÀLpÓ†=ãk‡Ð%çµÇ$,K»)[?»-Ç´¾™Ë›| Óó1)™v²r>£„˜žwNd¥öOà‹ZdÍ‹áOÖä8å»ù)¨V6ÌG5±‚ŽÉ ~êSŸú(!×p(t lj[&#¨8ïXÃØC)+F„¼xX„“NfÅ)Ì@ÊvˆV-„·šL”€ÆŠ¤gkeAb»$•©oP !Öaõn€0wî™n/;B£šùäVB£¶“[ ®¬û·›à†ÝÞh¦Cÿ},ƒ±Àê¹›ÊÂÜ 'G!Yµ²—n‚ùf($ËÓ½„ ¶Œ,‰ÑmЦî´XgœŽÉ¢K‚õ=V‰º,˜ JbÛ/á. m&ýÀôzŒN ñCBÙf| ÒdÜD¡7ÿ1׫Ć£¶?=NÜÖ>ô@ 9Ê®Ò2£™ýLöx©ÓGv¯ÌkQø{~“%=!ìäø²ªÅ÷P/:ɪ=9ãžoQ·¦”SíqFÑŒ’Kº2¢E§Ñë5*‘,8Ay¤›½àz5ÆÙËØ>‡€î)ûó¬{ã´+t,]2   Ãÿ:óN©h×Ön…7CÎò™žÌžl>ÓÝSÈg½(Ʋ…l®ÐÑ™+*d G·’ÏvºÓj°Ó_x÷·viIÿP ½C° ¡'“°›Ü I¬3@%dÕŒfÍúO%õ—— j²˜TÂÀÍœz³'ÇV1æÙf&æ ÒÿijÿïVŸÈ™$@L豺°^‹˜ÐgTaäX_óÞ´¯ù;NZ/üËz÷NÄWc›=·Ñd^Ñÿw¹ @½p>›ŒS‚¶%WÏÍ.ùkK&qâþœMÍלàé,&?ÛsèŠz—×Ç¥…ÓňY;yÍ’Ã6fê›­þöówwª…ÙâiÝÂî½xi£Wé•B^óf«é énî'wj1ö~–‘&.jæzñm /­~§–y¿S‹¹Ó®®íÖ7FLõ©{AlvôísOÝÓzhzs]îçþ™4Aƒ‘jš&¬\hÝdž³ƒ “m‹Ô< ^\­¹øW𽎠rÑR\˜2óÚ¤¸A.‹ŽŒÇ+:Qâ’›÷v¦ªF|ÃÑI N×êõ“FÄW#p fïTk÷ŠKúŒ"5ŠwÒÄ´·XõF¾ÓÆìµù ¦ÅÖ×îtÓ`9,Cìr¹mÖ2DìÉ ¸~Œ2†ˆû,ßJ%Üš½gyx¬ä1d´8å|ÆLƆ‰I¢WJ¡0¹ûŽ‘6ÅLˆæ‹Ü§#u5¬“Õ!(ô‹Â8a£yò^Æ °ÿú¼Nö<+h‰¸—D=ƨ7vËsò1Žsd‚cö¿F­ŒÄ5ÔÓx¶ú¨³(îµN›…ȧ5û£fOšb«§”Ãɬ óEf?¾8áåxÓÌ(Ç”\6Á…N6‘øÈ7zR¤ï7‘¢àµ’sTò:# ,sx·G÷k¡äàY4”/'´9½á_oL9Ïi}ƒÞìù%žaú>>Šzô`z}Ì.ÅhÄ%“Ø®¢¾èõ²ªSíô ¥ŠzÂîäxiÎit "sŠÀ):çŠ`P­MÊ}®v÷ üÍà {Ç2ð=ꄾ±öD†z-=á%U]tOj#«}\ì&Å2Tß%#ˆB%¨ßÛ{±ÚF£‹âÑï…R„mwmËÍ”¡+¤uUÈ3-¸«.5î1°xY¯ä0í‚' —<úŽIűXØ äÄ ½Ìisà~»i;v¹bö±š½Ä*ÔbÀîû~'ŒPM}zäó:÷ ë~@×¹×X¥j^¯3׳O \\2° m<œ̹ÉhKÈ–Îs€yöH:@çØRÔcMElQT‘yvKŵÈð83¼@óZ=úFå‹âž`¡O®ŽÚ«Ä7Qî_Z½¤'µ~wz˜Óû·L]ÙK’û µ€P?çó/à&ð÷èÑW)p¿*ŠE1Å$0±Z¡\®2& mø;Âs @¿L¶“|¾&*ÎÔÖj¦Jy.¨DœŸ&éŒzmètµCB%.“¾0Ö#³‘{_o7a¡åεêA`ÎIxªP÷Yµšb‘8Ûq¸¹½‰»wm…Kóñ&v—Æ_Ÿ(O]¼qubr†Ïj+úƒ¬ÁÄ3“ç'Îã99Ž^ yøÀõŠ+¶¾ˆìÚé‚‚é'ԨطëAžÏÐBæ\³t·\—Œ¶pĉF7¿¼RÒ­2E°Ùæ­ù RÑoFöÏp-¦=4–·‚´ˆéh @³îPbÈù—Z°Ot,¶C xöY .¸Ûã~„˜ó0‡Å‘}4E™Õáå<ùÝåíðà1wÄËó/´Ç=Þýf´ûÍ_Àêß}õÛ•ä¿“Bph‹¥?Ãd5{ýÚ²È^„®8úzP3"¬Ší†-ov$ye&Á+;,ßM2QÍ3&R¤ý¼ðÊn°ñÁ°Ç2OÌòA ìÄÑxå Ï,Ǩx¥½@NòÊpP&ÁøJ|*o?Õ%%Ó Õ:J3ù—`ÛÒ]XaÇ¿óÈLòZ4_ýuÝþNp9ûf6aª®ß×΃ål÷æÇ,û”ô@5ã™l{™mHìïMÑ™÷(zŸcžÝ`ñ‰Ì¿îÖw¬ˆi“1s3³Ì­SëÛÊÔÄNž§ P´ ';ìÇ,m˜Æ7£ééqÌMæ!áÛÇ +fb«nBÁZÑ0 «HÌ…b=.Á ‰ƒXr˸î]®^ü(­Ùi¥[¸ÀÕðÁGV@“'ØL7§®›¶-&ëSúwEÞý™Ø»ùw?ïIzŸ¾t$§ê(ë¬Úp@(9# ¬ÿ¼µÉÖ“ôï‹ÆÎ,b4áYy˜‡ôÀcVL§oDÉÿ®5²099 `’5aq¯åÞëµ)¾Æl÷;Œ™ùý¼%ç[„_h76ùço]¡FEÌ4³}ÆÆÁz·_ è×õ#nRF>a$áMšœÀAü'Õlüroòe§‘¦Úð«ôÏ…PNÅÞ›Ô$ZÂhñ`Ý8šFµµú¼U‚»‡q+å°ÐA–9Ê7ªµàoûA4¯7oš^ômÏ@` +ÁØ|’@'cTnAJ¶gUr¾ed§JµÖ(ÏÅ”I³#Ô¾Vçáîª(ï¡ ‰{" R†ÔžÔÏØ"Iü:s+o^ÕIžÂû¾(Þ WX÷)^¹ü@Lë„Ñ&ô/ͽ‰¯oÓ<ü­Tø¿¢” 6ïðN 25<éÔÃ0b½¤yêiS翪¬â]ÝÁZ‰îˆrÞ|°vH®¨?,)^çŒQšg¼CãUÈík÷Jâ°ÁsèR±éüíö Ú­†²AT€›ôˆ-[6†¼§ Àë…h´,²ëA‰P (T÷9ÐF±§ß4¨Tà Ó8pxŠÃÅE½åoV}•‰e7Ûe¤µ¨¼œ,ŠÝuQ9Å7n"ï­NnŽRÝ{*jøaõUÒC°ÌOŠGkÑÒ(½>ˆiÜðƒºlîÁ%ݼ6Äé£*4(ÖLºD Å{†._Êâ4‹ÝDœÁ—®Ð'JΑíæiçëo%¬Ønþ§P6N" ˜÷Rõ´CÓÒã‘ÖÃÕ^<Óvz)w¶:æ[tÙ'qs—TÓ|EîG¸%¢L|ÜÁsš9ç,Ïdb^ãt\6'+îQ÷ZÎŽÁÔª{íQ÷n·ë¡¦ŽàŠg§Œ– àuìõ²™î§º;»íÖw÷öšÍ‡¿å»^ÞwMo±ñá¯-/o”K4{€ò—“(è‹3øÖ·«ÄŠàKßÜ&üûb;Ý¥:áÓt“ÞLAžàÓ]b·¦½8‘³“¶×ƃí³Ñš *èæËýîe†j/÷Ô·¼ÃïÄú`T÷Îùzmå(B&+•ò<9(OŒ±H{ rfàW€Ðê)g]ôta®®‰æ¨œÑÚ¶×0¢ˆjæeÀ¢KP,;qÔ #SR=À *¾Ëpè[>nOHI†®ËôÚâ¢&rà`vë ' :p8ÁM0ÁRïtÏ(&œ,¶äN޶DçÛĆ8«·ßâ9Ø”U%0 nœ1NµúbÂãƒ8=X[iî(ÅĬËŠîJ¡¯›$–Ëìþõ²£ÿˆ>”@šõµ•§¦ñ}˜¿UøäVgP÷EònR˜gáuGnMÍy´®H^c`ŸÔÍš9³-ü£ÙÖCn;36k7'À ãà¸øi´šN)kOÍÊq°À¦ æÒà˜)&Õ™úp*÷‘‚¹(÷wÝžÊ8+o·?ùkÊ:ú¿Ë4rD§Ó·³­Í½­1Kƒ,wKÞ¤õ·æ™åvàÇoÚx<_¦ ›Bå…¤wÀNQîÛã9}iΪ_ÖÔÁ’uIŒIcm˜³Æ§1úwÞ{l3!™ ®P:³1þGDZÙ„-—ïÀh!F yûm õÛoÓÖD¦ü_h¶õöÛwî%ž}ç3V,^^Óãcc ÀÍÍpszCOìå =GŠÃ"¤ v죈šªÎ1<2"oË´µÅ%AÖìbÉ€hãµWdÓETlW8YA $ÝÖÚš ÌÁ¿è&îDYJú=×i—ÐRÂÃBÙ¨!°Šéyˬ¯sµrÝ¿lï…ºJsbS'³?WžØ×Ù §øqÝ<ÝÉÎL½,@{òçêÍÏ0“±œÝpÆU¨ét K¼Œb¬¥EÞ åJ$rJÌŒœý?]ªÜ¸É4vðׇ,u¦¾f\\W5px¿¥—Ä(tå$ÍVî»üežâN7“ôó6“âJ”ã9\^ßi÷ò-,Y:…|Ü‹ãzGO=·$ ë¦Øé‰ ¢¸Ó–1Ö– °«={(÷;ïýi·t8šœ $qL™^Àµé³cmCb(#µ¸Ê$¼[éò0jæbT^,dÐrà ›-66ñù€†Ñš_3•„ÍéZă ÑyÙ©Œrõ(Ðñ¹þŠªBm×èšq×ùVÝØ.ãø®‹©üÌ{÷djÙG3¿]5ðõ¶Mçoœo]‰î ϵYù¼ 7¢¥=ã}±gNÀãJƒ!ùn‡• –¯Ë™;°“ÐúÀ/Áâ|MØ©0_2ò9q«4˜í@zŠDIût ï„ô_70Þú¶³õÅ£Ñ"Ìô—F-]³|²õˆÄ.´þl1UCÂ°ÈæxÕXôëuGÆN¯; Í[à~Þ!MÕæ5áJαâE=–Êw OXÂæ[–•-îE=Ê=”2IiˆÌŠn•<C¶T· eu´ *0 è ’þõ™ä'ñÐø¦tˆï½pJT£NS?]yÂL­$sèÄôê ‚ MW{›Ä ï; E”çW×Âzà˜ þ£Æ9´=Ç…o´)‘€Öt¿ê²æ óÌûF̓µ€k¶åÅòŠ;½`hÚç*cÐu5õf© ÿ{ûí{å°Ÿ’·ßC¸ÜÛŠ ာä}CNdwó5Ö®wða‘XÃЖf jMWK”Â,CÆ©}BЫUý½8D«ô ÞICeU\ÍM‡`Iê}MÝÔD‚¸ E=z,„Dç›(œ %Û ±‘s7‘2íYb‘üÀVú£$m}… Õ©ˆ8Ñ¡ÍNüÍtèmtkg;1‡Xé$q%ìh çÑÈY£éy Y‰  ,ŒÃ€¶ÅµVn2¡9ÛNV½.e6”ó÷RÙNVz+ös»«nÊ\Õ}xû/åÝ|¾OUÑ~óT†Êˆ;EÓGí"~m· ÐKÊÖ¼» 2…l÷¾Baëêf⹚Íèåvöw9›[`§?­é7–¬Š ¬âœiú/À‹Í‘AI_[eÕµ•#ž`ÏÄ„)-ÉmÿvÍð~®˜ D°Ný;¼Ëö–ÙÕi&±T«ë]Xžz…ª¸=žè™8 V¬¤C Ì…‚†³ÝM:næ]íw•ßm+*Çk|ïIû²8L°Ôˆ#cßo¦¥!ª Ð@Zjˆ‘î#ÙBfo¾û`!W(r{ŸËgòMqÍ~ðS×zBÓ þ¡í`¨Fçôj¿‡5CÏ ðǬéŽU;5A§ ¢jA%ÚÉ ·òî!‘S˜K~–‡n *ᤇúÅK·»ZX ›1(˜ci(lq«VÀzkvÃm{ãݰÎrñ’ßÖî‹—Ö÷²D0ë‚•oУŸ®þ˜šs 2G¯@Ê$2ýj2ÓfêÛ’©Klà¸Bc 4)vW.8ŠÙªEéPê3 Ò‘6ReA¹å›ºÓÁ|ëχÚ": ª’@*ÝdpKm´­ÎS3ØNµ`u‚b@Ýi`:ÝMâô2²ZÀü~êw< Kä€aòÄ Ø©n(ƒlŸ2aÇ•‰4¶½ƒE‚Á„EU2IóèËtê²û_′:Ó¤Ù,:[¢¿Ó¾ÅT²ÒSo{’üÔG?õQÏÝU™øn6ΛUŽÿ;p³%Åi²È9²û­N‹9Ea¿Y#á—N€%,—h­Qêˆá¥Jô×Õ‰n›è±‰^«gŠúg^÷â-#lU{ÛGÆ^Kº¦S¹ø¡Î•ÇÇK¤<›nX£Y¦K­}Àc¬‚¤åŒÎ>‰ÂwÜëZ:¿cÓDþëŽß.WÂEÙÏëQðž,Ò!Z–æYËeY4ÛÒ\0ÏQîá´Ì®ÏÞå, ­œ¤ëÆç†RqÍdÆé½Æ¿]fHd<Ì`¸õ«²Þ<»î— ½²)+a3rÒGr 'P]Á¢Cµ 'qeá¹ã¥é%Ýá\:ãéuÞVývPÒðSdA Åß÷h‹¾í41GÓ›àѹ¡–ÀÔN¤I©¼ìüš¾4Sš¼qå '2.®O]»xöòÌ´(æôé_?_ÎLáÒ¾;5qeÜ]\Ÿ¾DÛA\œÿðäøÕËçâ¯\›™p¥L^ã7ÚãRØgüÀ¥+—ãÏéRtÜå•kº~çÜå¥Ë©Ë+×nLOL%žòR ¾Pšº¬k`¯Æ¯\Ñoö˜«‰7&Î]žÔm3ýp¡tu|ú5.E½GÔV9Õɉ°U¡I|7”‡Ù¼÷Àÿ2ö¯–åò<ÚÐ+ûu9›¾D¶²u}¿§þ×÷<×÷×÷,×÷.ƒ„SCB™SÃX¯ ŸRD×È2­ì•rA퉺pC"îœz«vëÅÙ±©‚eST©µ·ã}¯½fuíL¬®0àêÈò:êÖ×El²ŸI7Mr÷™êÄŠ—Õ•äâ¹RºËeUÒ+LK&XDï˜ËÁ²KÇk2£V,V…gÄ¡ŒZp’è Ay3õOgÜâè:ð²j¹8v¼ïÅ1^¡20K!¸iz=$'£~¯ë²x ¼®×@‰¾[”Ѹ˜6Ä-,%¼ðqš~™jµÜuÚnW­–;Q}ÉÊöà…m¡€¥‹ºö/]»­—®•xÕZi^— }$®Wš®…NÌÛ¤“Ž—?C':=’ KÙ¡zï§k·%/ð½¯JöªlÀãÍ2•.°a%á^7+ŠI_¹6~žC~=^ ryyrfbêº{ D‡¤e0®_:?e_1 €¹2üõº~¡4e³6ñÆÃpïc21ì}î5Ü:¯¹5õW.\£ð½•Mÿ¬úCdÓ²é,ÙtŽlº<:OÝÅmX7·anÃ²Ü†å¸ Ëp–å,Ç XÙ€3G¬È£öxÌBÀ´¹"–"ÁÁÀFÛÀ-鿝L\°Á'H¿}N{1ºt‰‹Â%þï¡7tà¡úíQU¼0ôÙ ¨ÔÂÐûmʶݸ5ƒøC‰5£¨7Z©–JÙ·ã–ÞØjä™nX_Å ´\ž_ «öÊÄl5¯èê&½²¤Y‡IG‰´,’‰;®.ó‚ÝÙªkËæYÔô,â³N“Öœ»ê¯?x±ùáµËŒ’ßÉlYjBÆ—3|5kÔ>Xzß÷Xà—–~¥~þÒ>¢D®Ò.þî6Ü[ìxù‚Üð¦œpSߣñg/ŸŒ'Ÿ È“}|2”|2¨±-2ÆûÓpX‹r¨ósî ‰ù&C³ËJ®õ/ ¥â:J…õ»¶Ž»¤ŽAºŽ;ÓuRápsí=Öqˆuì€åq¢Ž:ãS¬Y‡Ôì§¼Ùõ{JnŸ¿U¡¥½T,¯Â§åÏ„Š G­a;.KGysŒß}† ǽ4ÆŸ56ÈtÌB„ÇÅ=î>§VOff×ÇÝ—_ä—y±I¿¶ÁPŠ^+VW*±Þu/ªÕïËÌÆ§pÀžX©ÄØÁš‚8¢fcî8†Fú¦³¼ˆ‚àNÒ…äìTû¨^sÈ/és:YƒJè®^úý¢~À¨Mм‡ëú¶2×Ä’‘HMMb£Rz˜•+ó` ±ÛˆD8`Ô†9 ³ÝFè@Bóüá K1h&h3•1(râréÜ•ñéi«ÀäÅsÇYýìüøÌ8“~„ôñ+Ó²ýÓÏ^Ÿ˜š¾|mR‘‰)ù²ÙlUWp'‹»rÑÐh¶&N ”M˜wÉŠà&‹ÈŽn ¢ 3ŠÈX‘/,²²`ž˜˜RL¼§G¸CO[ÞÄ¡|$F6¶ñ•«ãrœw9q´"¦*îDðÞ!hLÁ冯»‰ºï-meÔbf£Iî‚çŸDÙçñ,£2ÉÏåú³‚°c÷eâÃwzv"h¥ ÓÅù§TB‰(m›÷šÛ!n‘±7×_0ŽDn̘XÖzœ4—»mâ¿x1„"[ãßì¦Û ¦uàMûd9í…Ùr¹~GlbÅ(Œñµ0å8„º­…æ‰õtŒ, d%Uªõ ’Ny[™“¤Ùp&œÂÏBº÷h;½Ú¢÷¤úF/±ŒÏ›žŒÚtÁ‚§š­”îÌÂ’lEÌÿ/ ßt¤ñKiÒÈŠãVSÇþ Üj7‘ëϺ[öbÀÿúd2W§'›tx€ÃUÝ:4z –1Q²HÒƒÕö6¼ž—RvðÅ,ø¤»•Á28 OJ9S¿©Æ>GÞòРÄJŒwLÈaƒtîÄš†æyGâœÿ'[¡®SaÌ1˜Ã–w ûy1=¬á6ÃJó÷ž;VÅDø[ZL…éx*\pSá•æ©p¦ö¤ Ü£‰.j=7FÒ3?ŠKkF®™q%œ§!ɤxϬ´`ÛvL+*oÅ#ºR<":è(Û3”í= ʶ½ã*°n~°&ÞažFÏßê7¢úª v®Žªxj¡í!õ p£; ÓL&0J…º1›q‰ä-³›0·¤qúbÄôe“– ½ÔÇžUÛòÜÆ6ýÉö—Tr_‰Õpp²"ÀÕñ‹Ï&ÒÇéã‰ôsSÀéO)·à2ª]?/›òË¥ÉËçámÏw Q˜œL¢b6·¡ìµ·ÏxÒÞ>wmJÔÃ)5ÄS3˜`Ê/(šþY)©æÅç“’ ó|–%1+Þ\>+Z ¢æCK$ ütJ‰l¶ÔT€â¾”7KØ£·ÐTdZ\™ßB{ád!_è.ô:R~;4Iá´—­ ‚ÉɶNAúaP Zb±G(¢@Èn[˜Wp–³-‰ƒã lNÕR„ﻉ¾êú]%Ø´,ì ñ£\‰«î{ZLtZU÷€S^Ù›Ùõ®#»¾ pA«-WÀ”WŒ™“ø›¶´¸ÿ£¿Ÿ×sÿŒˆQ[iXc‹¸|îU§riU%|\d€Å5Em*ÍSA–FIóŠ€~>‹Ê† È3íPÒ &|€‰P°ºüN«Ëï‚ßõõiúÏÝé¡©CÖ!£ô æï@˜®w‰³å1«ñùù"Ýqס뭓-Í×´‹ÕµR2ë•ðNàzn´¨…JHªµ{æcÔX=j/mwuŠàI3±åpVØY ýPrì«1ÌSÐç§ Ü!u(dGc{a˜‚›¯…Õ»µÊ]ûŠøL˜BÇ:ÉQßLøNåÝ|éßµ9ö{rÖÖŒ5¨ Xa¬«õ¬©u"Ù” †eO9? 'æ¢$çå´™1êGƒ*jÝw¬#¶ùm³üo9ZŒ6²ä4ÿLÃÚs1à12Wâ&G©4C¢‰ƒ.s8Tx?–î­ ÛÅW5qú ‹ykÚèLL·1|9-ÆQKƒYÆå“¹3ô “U­»Íá¹:¬Äÿ¡’8âaå׫ÛÞ0%1\ã{ÄÂÔ‚ ¯?Ú^ûn*ˆ¼-!âôCjñäžQ"~Q|CžûäF›:¨—«ëFËd ¡º ,×ÄÏ5oæÕA!¼önÎF;Sjõ]‹³ê BV­²ÎJF~ ÊâL›úa¸áŒÚ™ÿæhœJæò–žý¯â™Î|bLƵäöÀö;z†ÄX‘¯&ý7\¸0bL ÏG iƒ´O“~1pÞ±Zü™Öªô,0Ûe°Ä1ÿ5.*šƒGÅÇíJñ汓·×Ù¢%=ùѦNcZ-^uñ'°,MK+ ·ûf®OÅ{€U±¶åˆ±X ß ¤Þ®øR= ­3X°kðB lSÖñl›¯U¸c£ñê…õ…ßÕ?©e «D4BKtq×Âjµ¢ç0ph–¸S8Ðv6,Š™£¸Ë:Æ"*Ée+9›:F»jqɉ‡dH¯yRÿ%=Úó쪴υ¬ª‚Õ@ŒéW|^—uͬ4±H«îŠë‘ê8½¦­®éE1 ë}xèôЈƒ ,d¼XãÃ1Hw†´Y/øD'Fµ5R]&%JuG¥Œ¥xEá?|K8¶Ÿ­Ö&^ûØ·ÁB#éni+$Z}ÄÁYYÑ­n¡šØˆ!}["½§5þN ‰ªÚ€&ôfÎzTϼ£Ò`Ô5ötX*;ç·\G„Ý—òLwŒÂõyk´q~).màl¨8Œ-޲ˆ¡£ëCzù/[Ôôjo‹5ýãÊ­ ^5 &„deªGSˆ®eÕP›¥JqªB’~EZL˜Z]Ì 1éûZªÝ™µ‰Ì¢¿Í"–×*^¥,œì%²BíLÁ&\ ŒŒf„ÁÊá!¤²†£\ÑŽ*VÛìUQ ‰ lgk:z}"©˜&2FB¢×JxA ªõ+3LÃÎDÿI5q ¿ß8ˆ+%êõãyªA½;ô‰ÖU£Dajóv{OgFÅ‹9Ÿ\=o Îý6»†RÃc¢XoY:Ûâ¥SôŸ²ÌòÌIDÁÔÁX5O*ã—vÛ5µ“`è&øu£©õËøçdñÌqÝ»-A¸ÝZxð„®˜[`s\F‹&VØ>%oÌ#»ÂfÜ²ÙÆeó£ñûý~»{¿?ù~Æ-»­ÞÏɲϚ±V¼›¥ÊP x×ÉÍK³›ŒÀµšã»3ó¬ÕÜ&¸­Î½ZýN¤'OJš7x\k¸/ilÀ±AmÜ\!žu$[Í hë˜Ù…påû-÷©5ßM¥Ä¦€sÝ­p®¶‘¾!¼Ëø€†‰… ܳ&¼¬Üjïa°ô¼Ö€˜÷iÇjá~nù²LÖc™TT|ûé!ò°0^1ƒêݰ^«ò3wËõêöëצ/¿qåÃÐMMœ›¡k+ð‹è–èˆD[ØÀ‡iI‹Vç<-‘†1É›>/èu†#QDsƒ–)éÚbÉñœãX|P×hƒµ“¥ì¶üŒÎÕȧ3$‚}$X˜b™fú)O„>ÞÂ¥ÜÉcè+v‰™•mÇÎP:´|‚—Ü£¨ÄêCËöâh—׉P’ª]B>föxO{ú_.gm™^_fmJÅé‚{ôÆ.cÇÆò™­ªœnNsø*†]È©¢ü>ÜÁÌ}Æ9 ]føƒR»$¨oŠþ–'ÈVÈ}ÚBìÓ;„z ÁMÚé²óDOúiåU²œšyµ­Å«4-ðYÁ†àŠ“±§ì–áÐh‘¤uZŽÈâz=ã„¶ÈX.®UÃUˆº”YÅ®ý´?ŽÏ$H(¥&štÒg¥™`¤a ‰Ðïî€å{€nµ š}ùti(Å¢ªêSR#õÅ´E”©8 ìX ƒæå;b{Ä„€¶àY™]Ùo¿æV}ún¯7oîü à2ëßi·³Ö¨ŠMf9pa0…ÕnH&Ñ{$Øõ:Û^ÁL°ŸŒ°–'á=[FFØaׄ hë3’à€~ÃlV³qbŽCÏÔX”–141æ­˜3‘® ÊH×X¯ã¦TlYƒ,%17I³„¼»äiœ¹};n€Eëo(e£ IrùÛ‰9èíЋУñ!·[Vpx±>CLÏ`ÑxêŒ /ëÄ`.k!ò8œŒ[UÛgm›$¶æ÷»0•в¯þ7‹ œMO`ªE‰n=);˜îÜôÄvì˜F2‚…æ‚ã%ͰG²î^«øyì*l4þžræ»TÞ{\wMêXIê…ÂÊ'ç¨~,WV–ʧ%®gÐ('âzJОd\ú?w¸ÑmòÍÝcg—9ñܼÛNs 0û®»bÇ?Ré·_iQöA[l³²“'Hý–Bò»¥zoW>Óýt÷ñÂÞžBâLš@áö}í—þô·}T)üCe´8¶œus\ôß>t"öÍÝŸÁ¾6³ Ü,uÔY¢¿QA}§Í€‚ÜÉÓ°X'Úy0¤<Ò‰†t¢“C:ÑE;㜗Ófãåämèèv:ºÃº†¬kH§Å„““¦]ö¤i·52ÞcŒ÷ò «êô}ÖÎxÐÚï·vÆX;ãG­Ãèë0ú˜ò÷Z[äc‹ìïcâò™xœ¡¬ŸPþ~^>©üG˜8¬üG™xJùè£ü˜;WRþA ó´­èîŽ(ÿ3>înQþ,äiå?ÉĨò3qTùO11¦|]Þ0›ùŒòϨ·ôè<«nS7«›Ï)ÿ(³=¯ü1&^Pþ3L¼¨üg™8¡‚Ê?Æ^b§ñÿÁËÊ?Ž þsü}¿Èù‚ú„Ü“Ìð"àïK6ÃËêš0^Q¾nÒI{Jù¯ð[§yóo¾Êôi¦?€ÓÇðŒº9Λ¯òæY¦?Àô9±„&–ÎZŽG06¦7|? ÝdiX:VB-#šðI&®LÓ ¡Þþ”W¢µJ¹a@a¸y\(Ï6À¸‹,É'813çx 3¨aÆÇ92Zœ¯á7\Æoc¿Ac~lDðkêa€h8À,GK#ú°(½±[–ç‚zÄ\°Ô1×<9­º7ˆë£‡=Z€Ù€‰j¡K:mY06Å·J;ÜrƒŸahQWøP”ìx[”^)Ì‹8ªÀæÃÕP?ZK€ÏTã¢\›Lëü€šŠªI[{Zå¹ÖÍSk¯©Ù¾ÏqiÔ)¢\çrê‚…F5JÃ+"tI“]¹>¿´á:[Mʦ%X¨hêšBWªòÎLœæ$­„–é–(ÇÝHeNRÚwÝÖB¯'è%25 «ÕøN‹ºð‰’—¡6“5 ñ5هφXHUðñ¶/g ¢@™u™¿ŽØ;¹ø¾V>z3óÃAP<µ¢Sg* ÷£ù*E’cÅê6öÙc“î´ÓÉÕ„©å§ÄJ‚¼%Fi?†¥Þ€¥òÄj³…¨Èw¨¦hÒU¡ÃÞì Ç;QÒR3F 5‚޽l¢Xw™1KâܸÂAKqx9U¸g6 X¥fp£Jº)¾UŒc’ˆÝÅðZ| ø_rÊ›ÆÄm4I,”ð,¯ÂæJ̼ÚT‹8õÅ­ýÌ0­Üúžô;嵿ýÞýžŒG,gd½n©åš=®yž‹#ؽ² …l|¿ûQzc —Ø;§, ­Õ ]¡dU8òàNßž¸ÿ¼÷^ « !dfu«é»t=/¶öš=Ïc«D›*$º<Ã+>÷öz>A&MãfJ™ xþ’,ÜÖU×±^»ÔôÝV¤3)3Y :\Y®kõú°µ&:5'gZzJC)f ß›H'o{z1³”9;‚éhE0—ÁÈ”¬½$0µ6nd7¼ øMoj»aýìæt3´mÎ^¹¯Î¼7•V ôÿJ£V7”vvMŒÀPs’×+ÉE,QîÂg’±Ê®ü^O x|ì8O8G`·B¬ÊHj¨GOK˜c%`@”Jâœ3îF}¥,Ü–ãEù%jõK°,J…Ÿ3ÕdzÏä$¶tB†¹`£Æ³Vk‚ð¨9!ÑâôÇ–nF˜cµhÍáU£h›Fí$«- ;´\Rè$©EO Ån½(s®TøJÈ[9“pÌnß è·@ˆ¤¸L="xaÔÆyŸ æËkÌ•kÊÔüC¯d¾ô=ZÔâ4p>µÜŽÃé"GŠXôã†-Ö -}º g3ûžÃËg·f´Jì’t‡Q-‘x1¥ã­¡ˆ˜ÁA}$YŠè·ŒìïöÄñ<Œ‚ êº:VJÈÛ ¶ÓÄyæ0×Oã´ëó¥D4c—Òf,ßSo:)¿¹=²r[ÐóÞû,G,Óåã‡/(ÁÕŠ-Û;45?íù¸žŽŸÆ|\(1.ªÛòêaQ°ÈÍ£¦úÏ¢‹Ž¡…0Cúl_:}©daKÏ\ÃZ ǺÄÓ·‰‰(îè¦{0ãÃù J–•l¶›;¨Y>²áÝL²cåŒßez[ã½ô瓌 îÚ¼Aý3À0p}7¬ò½hmrZ˜ˆ1dHUÔÆ_ݦ¢1uÓ×"]‰Ö3Ì®O|'ñÜçŸî¼}o9Ï­¯±‚¬žVžmÎa·„¢“ø#Þ}ÔêábX5œ^6|IáÛU6Qtuq[•uå÷©©ƒ©ÉYJJ6'gwçt_ã/¯Zçsƒ÷®§VžLèçhêcÕsDÕ·Ú93º„x°x£xçp`<[‡×èJ]k‰SJ# šq¾GûÌÑã·¸öY)”êLë໿È8ë×âÈ¿çoÃ|NZ$VL÷iQ)A(=Ivo"g ’h¢d,jð¨ƒq²6ÉQÜ)ÀêhyÒYÆJÄ:é<¢Ù°õþ¤ )êšñï„vƒþÔFyfËmyhº¢9à‚1ãa á "lbiÕâ‡õØgúN Ø`8<Ô³‡g:¬—±6e%Qm¨KÒµ•ä8ñCœXÚ¼4ÅwpÇHñaðŸEÐu îGÊ{}Þï¯3¬ëÜ  ·Šã¬çRqÖÅÝ`ýMo³ ÇuÚP J€qㇼ%!«ýbµ¨Œ™¬Þ Æ4Ó³eÊ„}VyëG1þ4ËÌ›@â¦ì.š1êü×W?¦iâcŠ˜Xæå‚BTäïHÖ¥#Y¯©.툭¦ëÒ裯“¨É°£C|Uy²Ã=ÉòÉ„{²Ó=Éñ œv™ ó<.Ûm.˜‡±OiŽGCaÀ}í1P%ý‚`l­Vp90Ž‹E9ëÙäxîÑX9eâÙ­4åpE" µ><_²¬{c±<£ŸÁÒðüQ".`Æ;M³xçž"yV<äD³lXz2LÌ1É`™Q¬î5nU£ }udýKˆùßœ ÿâú,’µá|h5Ä[^EÄÖg¨éUy¸í»F%¹1äĂĻöa‹÷•ÿ#‹Ú\ wwkõ‡Mö](‡’wä4ÂävÙKÏšÓK®oVoȾMhÖM%Çå9y;拵9JSˆ¾¥ž; `±ÔÛ¡”¡(Yc½ÄëS©4ÊZ¢W 7‹qcðSÙ0Q6 BL²*2„Þ…Œñž~ÿ6LÖ~\*LUoòõsc¶"oJÿݲÎ,[ôêÆ‰Îë–r%Y ìFÅ §ì¤¡IY$ØmI× ƒJ#EaŒš$W+3´Bfnîƒ7£r“ÃÎÕ\º^ãê g©x–×k„[áò@á“9eU‰1ùÅjSú@ÐçnK0\g¢ÏSêÚr€’i¿‰ 9}’µ¤‡®d†N°Úº]ÃÕÅ<¦v*1åªÇIꆦ´æ¥*ͬ –D‹Mš^Ç ¶.*}óµÛ~)\Ø0Xì¨`ôW¬¤ö*Æ2Î{í*Ÿë÷vdú²;½žL;‘Áôâ–;àíÈöÑÝÄþÛŸÓÉÌV +ˆ©/–Œñô7†Ô¡•μõÇ NãÃg”8Ó‰W‡·:ªføyÛ ½ò¼–Ù?â–Üö³–\aZD‹1Ýe×½d35ë€öû_Qãn.ã=^Ðßt›]ìV·G@/¥Î§ºdU†¿ÁcD‘¼ïYqLšÐh3öÏÓ1ÆÛ¥X¸r!ÔÖ™M% :°¼`©1²¶&ÔZeÍH ~P·'xš®qjÇŽèpM>éÈãeÛkü ،اͤg;DR¿×ÅP×®CÜ ª²©-Gó%úkŽÚbð}Fº<›èÚ2ú4¢ƒ¹n+7‘8­jX³§º¬ÐÆ_¯oÁzcÌÄí2Á%tg áúŠÞWéMºu95sUßgÚz=kŽÉÒ€šú@‹iÃSOÖìôT +Þ'=‚w¦ï߬ïlôðúR 8_ª.ñ¥Bì8Mo4è4РS Á—ÁÙ8ˆýmXào§õM!Ii)QÊìn.ó§Ë$~ðÖ?Y.TçoMP"ÛÁÂváÉE˜¯=¡©t‡¹«¯÷aîth„¹¼Zýr=¿œòÍói\=ìS¥äâ'vÞ ËÝÖ\ðE=·ŸS â.£ø6p{þÖ>#§i ˆ¡%yjõ€@±®?Nךýòœ즛M h±IY=ãy³ëDq­p•é¦PÊLâVë­:Z<È:Šuñ{H1 ÄZ—kr‹­´„UÓʼq½iÑÆB(MÂo Éb™®é)‹øŽk+(ÖÂXpC9L%5É‹¤h—ë(#íE¢lói˰a¤at³ºª û)ÆÕæŒÜN-× ã¤ ãœ.ó¥z¯\÷)<˜|c·&â Z6ñBúYÊ[­Ú¼ø Y¡‚~BSÀ¹”}>·ø uÁcgÁ/üœ:m/Q­ˆ¼úF5DSÅëÈz*pU/¯‡ z¹\_ «2AÏàgÜÖR¶…‘–N•E^¿㟊§î¯ÔVÈn×ÂêplÛ¸¶õ<~È¢¯X¾ÐJ§$†·}žAƒíYÖƒ#³:tú ÒÙ‚×¥WxÏõ{™voŸþ»Wï÷g²j—f øÝÙBµ'¹U¤?vf벓5nn¹¦8Ùmö½3tx ÛcÐ~L{j¸TX6YX§-¬Gòu¡>énzÒãžô6=ésOú›žìpOv&‰·ìê“3õ‰g/è`¶V¿ƒ“1 æ!ê_Áâ2'â¡°oU¡ê98f¤<1)eð-¨}Óêc s*!PÁ·L7ì­,ëH¥I#k$¨.q›ƒ/ç„bÇäÓdpø:9à2ƒ”c²H>pé±grµŒŸ¹ƒ†ñ?U)/ÏùåW'1jŠê±ÔD²Z)Ј®n×diBqy…õF•ÜöURÍ@@úí½RÙŠj°¨ h®!}ï •„}^²O%_¥EKzä›2ØŽ¾æYm&BÀ8÷é-L»Úéíˆe[§S~B%µu"+u[?ÐA2§˜"¸ëŠEÚQlu§' ¥g¹G©Ú&²sQY‘KÙêÚ{5ºáT04®[7‹MjKΟïM5)kñØñvð] ø˜á–m§8Ãzª¨ð€ñ‚]ŸŽgK*}¸ï{Æ ¯ŽPç.EcáêÔ…/è¤Á¿öózf½¦gÖkjVSGHÉÑ(¬;øiéâ¼ñ¥&àk¢‹Ó§~dõ£&q°€¤±ðhi‡ÊvðÛDž™:A‰a΄¬(YÖ&ôæ$ 4Õ§nãÞG—$DnÌ1åD: ܸ2ØkP8¿à^^²%l3б›ÐM ôn7ÐEMÉ=ªÏÓ›÷]±(áXÊ3*Á4M"«Ü1ÏDòæBþo¶i?w8üeæ¸õ5‘3·Yt[ ÏP‘…~@-Ô‚U¥Z¯)cÚè<ÞåÀjTÂ@Cr•c’NQá՗˽‹ŒÞʨݖ×p.Åí½‚ƒƒöô`zàõyhk©y.B{½×³#¾ýŠf´ÿú5´sÁ³§69/WNßÿÝ)!®ƒr5IùkÀNk CÀ]`¿¼™­²í+$·}y³•Ä<ëâÔÛ—(MßÂ&Ë·þA3áÓ÷ej\2ÆÍuyBNŠzñj£ àZBkXDwýÿS«ß §ì7¨Ù‡ú¢ÜÇþ ø ƒd÷ºù¸3$ÊD/ë`ôý‰[‚¶°)"ÜhN¯¾íy‰O´ñ ¢‘1 “颷m"Q”®éê_¢bV3Þ’›oÏ^ C› H0®±)šÃ>X/ð4 d/Ì!'T8ô0oýC €h }ÀrïÙ¥t8õºå7äFœÛ`Œ¦8 òpjcëĨå Wuʺ²¢òì4WÆY dêË™´<•ùÆš?ئ>?ïâçcøùœÓª\ÌV0«NþuœÞ:é U?7W=ØBQ!9”E¢d‡‡MTæ…=&åæ¢ã‚¿œ‹&ºº™YDö Љm¥ŸX#‰c·Bv*‹BBÏ™$Òˆ<ªÉç{\ÖW P,¢2ׯ`n À–EF¦Àš¥~†"ƒñw ¢Èê×ë™÷õz±lOGÚiìjÚSív{ª=MOöº'MOö¹'ƒMOö»'Ø'× ’ƒÐ/×Wí‰JáÍð”߇i)ýP0| q$(k“eH¤ٞ4[說[È )aõ‹­ý`=ˆ¬Î”ÙË ‹T:^-^¾Æ=¤µî·6 Ée•@š@]êºÕÀú#X;Ì;L†-ˆ_¬$ Çg½a'é¿„DzkŽ@7ñ«tp–9#ºo¯2LgýÅ`tM¯9cŒøMØÀéÇg ëoêoE#›ÃcG†?pêÐ[÷Fd[3|rSßÙdž3#ôŸm®Rr;N[€´„@¦F¶…úÍkQFö?º+8HÔ ‘WšŽN`û’õâ‡Û©z`tY”ŸDQUnH¡3Êh¥d7(9Bøg14a¸¼…y0"À€[>>×.M ý¥Ž9±­‘(¾>´àƒž‘qþ °h„v‚9Î {úã“ÚÇáOv«Ükþ¯Ÿ»ý>¢ÉìVm:Õ«ÑèÔ©ûaco̱ß⎞ºïZb¬ Í ¢P‡Õª[‰©¶Ã#FO ´&àaعç0OÖÈ '[›³TÇL@,(±Ç,Z#¤1Ô¬Ws=³Eê|(lrjµÈŸ¦¾ŸÅ»:WÑ—x. 9*¢=øá‡¸OJ¾vZ^˦^–8^½Œ°O™ ²‚Ø4lÓVC×Yú¡ÔÇRÅ#Ÿõªßëy¢ ãý3Õþy0ÞA³Ã¥Â}Ÿ v![›ª½ã± v%>—¨Ò[®yd)ö¥5]”`eY[o±uÇw·} –Ow)¨Æ[µüøe‹Ï¹ÉõûH\ºù¨ŠW˜}ougÆœH<‹¢Ðý†X.{B*Ò+äÚñ#«_¬_kõJ{ëWÚÕÈêg¶1H¥!"´Nd0rJ°lè¿~Xn„J æžnƒaq]¹ÒD"¸ÒSÐæ)W‡F 1VVLu,’?qHq—Ûå'Ì ÙÏ—9sɱ™/À“R%[à‹|.>-À©œD_3 ”¨U_Ž{qŽ ÕxHÕ}âL€¯$ôû|þÕøAÐÖ©¯tubí>Ù‚×™8öë?f‡nØåe½½Þn¯éô•êÔlì9͆ ÄžÕÇýúj_¶‡‡ãg3%Ÿ Õ£Þa}uˆ ¿d¬Wô²<µM˜ë¢tt2~* kS†DPüÔAq^7v¤e"­¨‰9<&‡±Qñ´h „ö˜ •ì4a°¨p`þ¾%Ê“ùDH§¬íÓ»ßáŠ.ëkmŽV*G‹æÿïÝžÚ"ó§ŽàñcW9ã6ÄáœZ ÝÀ¦{òDzpºÚ&;V<ËŠ“@¾•isü:» Y²¾qõ[­fóÄîþMÏ€4©`¥“²¹êsë†&L}=~¾!UXâþOêŸ_³G͈Á[ÈI`ªmá,Ž ·J‡#”©TÐ÷á–_úFýóŸ=3¯óBûüÀ ÜgDgRôØ¨Ý ª°÷ª§(¨3ó #¬‹Y›_< kmêkhÐ3:…RÖ&r6Ñfóä·Ði»Kp†­Õ`ˆˆ(Á Áœcs¤ETP*G Ñ}m‹.ÅÐþ×$ÈóKÜr{ÒiF¶¡8€tìA7i:±2ÎÅ ‹F^öJQI×h&Ö쇤ቋ‚ªþ&çCƒ€Ó&h£Ç<K©WUJvlUÓ,®úƒrÕ!]ûŒöäãUýWZ?K;`Oñ {l2ølüéºË¼“™ŸOdÞ·i#ÕâZP«›>¶zÍóªc®Œ]îƒíÛ¼ÀÕRYèM9·„ Lm>8¼ñÑ·ªÉ¹¼QœwØÁGõÚ=IÌ×*LöN ïQ}«%*¼ƒž‚…÷Ô·Ù¢@:sÙØÃ“³W.ONL!¨ÕÔ·ÛéÉz_žD$/!Y\ŸŸ`d/Ú£_1Và»ðóç•=îyQþ¼$è°WžçÔŸÃÏwn%_ò™x²~Ê3f>ûˆùKñ#3G;0‘éåïnïÀ8Þ÷mLJ¾Iÿü~Šãµ;æïÎ/`k°ñ•Ø*6ƒmö»œ0°¹š­>©·ynöéÍÁ}"ë©S¯E£4%¬@Ñ€ €[M¬cç.܈üÇÚbX[¤FmÅâAÈŽ]<¹¢ŽÅØžb²>õ•aæ"l|ƒm)ûA—¢MmÎáâ Ófö¿ÚbtÌ&“µÈ$Œ´²Þèý̼µ#pK&‚‡¥6R™ØLÍj™ÈÇ©Z´ˆö›r&$ªš<‹£~ÿ©XÍ’ D~áâÿj–´Še¾V¯Ñ  Û€µQKº…l£r¡‹ ˆ—ˆãàÜo’ЍÝšµ±vÐ-‹äÔÓXÀ“÷§§IÒ#m[‰æœ«ßoYaB5ÐJRëU‰Ã(éŒ]éÚ•·3Ó£z[DÎ||;µk û*ŸVá5è½µ½ é 8kwÏá´(7„ïsø(™š‘û#Gץ釹BräŽf¬cÂtàô/p’…ŽBBwfl 0 €zÞúîž¿õAZòåÌA/Ô¸ÿx3k-QG‚è¨ VK«?ñL2vzEþƒæÄ0*¢‚ùµzÄL O‚m$½ƒÓÀƒcôÓÙ*)£oÓ§†¢¬7‚1ÚËë¼,PXªD û¡k“*ÔÉŒ³„àÖNB²á£]ÖÆÛ±M²ìa—Š/m\Ü+Wî°Òœt?C™}¥Œ\RÄ#-jñ7õωL€!ïí‚¥6w‡=ÎõùŒD·dþ[ý³Ä4FŸ”±ûâ8lmí–òÖ×ÍÅù[¯Øvœå·;M‡XÌ<™ ó6–- #vÚørhWVêa=ªfáe†Å¤…#M÷ªõA[ߤ'í·USvC+ßÉ0ëó0ެ=¯†ø0n(·®ÐÖ¸:¬jV^Ž(é†D°Ç¬Ð<@XÉ,yx9ùxƒr]³0áácËÕ›¥0eƒÉâöÃȈzpë-T5AaÉÆ:2YÁSŽ'܇¨/Æ Å€93r&Jš’¹8 Cr°>”ŠRbñ¾¥L?(ƒä릱ö¤Áq:A(X3¶¬î _ªc2Ç=XðÔ¹§ùÞ¨ë«5‡ÙÐDæ@Cç ÅÇÔ¬®až&z[H·sAAb­â¨FpY·Ò„ðåT¢åg­ÖˆdzýŒS?lç&g›t'URÂeùʺ÷~Ø–:õ#-8ª1irœh““Ï;õA˜œt%„ûݪ‡&oí¼³Ç‹c(…4úé°l¬?ÉŠ?;“<¹ìçÉeê\R¬7M`å6úýÑS› 8½Ù¡ŠïRí 7¼‚Zÿ»4Þì£Ç¿îÝïÞq³‡Qý`í£÷WFÃýõf¿ü?›¹ßE»¹nµ¾ ?ÅÆc™ÅË-6œºÑ'÷!¥ Àn¶þ'᪔ŸñàÃîÅÝA(}“¯¹ ¼i¦»î÷òV»–ű _°u|ÌZ~oö ?êN\¬~Ê£~¹“;Æ¿¬Ÿvñi$.‘Þfïå}ÿCoÌÔ©ë«ÿ]ôå]ì—}’<µ~KÙ›bËôš|~P\h»M +gXT×A)É|Ënn)zõË䔓YðuT~õ“ŠÿfMe¤N­¾©o¿©fýnuŸ&ºáÕxL©=âE;tïvÒƒ ZdÏÛìE}G*»‰b¡¯:yì ÞJ§¬½žèž“¨Ö‚QÛHÈ\šÍ^Űk‡1³¤' Lz`+zËWNMا»åºKܹ72j¤é!ܲbpâhÔ²26¶?If™dïØ… ™O ‘á ñ{CŸØ@°x„YdÆÈ5F|IËa1N´:À)ËQäÐR¹g¦½ØÀO^?÷ZiæÆõ+ô 37¦'>tcbòÜ7äÓ3צ&JƧgŒ¦B­qQÐ|Êu£§©.7”Ls]‹+b|ßÉ<±Ø ts‘Ú¦þš½Ò½·"’î,’pÆwÆ!¢eAñÔšŠÓ\݃Ñã®Ñ`äÒøë¥ñ©‹7®B!¡nðyq¹f»¦Ü—Ãw±kAËÌx™£Aö`Vz}|J—9mü¾õHr«"^›øð쵩óӛغ?ŒRòÏñó/ðóñóóøA˧~??ƒŸŸÅÏ?ÀÏ?² •ý'-Vë„®+úYXÞVÇ2=^Fý^> GñG¼Ý´ÿ_ºï)qêÑ …þ׆0Nm™:bÕuSÖkóh®º7“× •<–­vÄ0ŒMÏz¬›š5åÈ&—“\“™K -i‡ì¬Å¾…6ÈܰU¼ØZf &K®»VˆŠcœXyk<bôî·nYDbµ ‡µ_Š ’¢ãM;ûfNÊÑð‰4“ûCdR”­ä®uí5nÁM½E™ðPÕd_¡,ÆIqc k»wRb|tÙYDsÿØd€Çpÿ ?o:bÿYKûœ¢)À@Aóø…­Y·³ö¯ñã{ª]e¬Òp_ R}Ú‘j˜IÐ\ÖÄS‹|¡HÒeýÙm×£xˆwê[º¨ù5+ç&ÿ3§;ÐùcMuRÅ!ÅU àØ wíúFZ™)ýbŒfÿ•eõâr«©Ðàߊ •ü¢Ëõó6ë6R³ƒåÿN§ŠÈ+K)ûåsIVfÂ8íæI¸z'JÓ:*.ýŒïÙTæ}@‹Óñ©€œ[Ó²7Ž8:"$Úàˆ4Å-cQ°šÐ´p-ÿ•mø><ËtöïuMÒ\{wÆEGw›ò«É&IÜ}‰¶È=³ ¨‡#6±V̈mp— »¨&Çâ*¡8Ñ"´ PKz§£÷U£F3.lÃ;M¡ÛÁ=ÆCrÁÚ·úœ4êºpzì‡lÏÞuÔ¯+»ú÷[»‹:•¿Ñ¤SáÉ;Ø<ádœ¨ðô|ÂLÅ•œþ‡ÊI<Õ»A½‘Ђý7^MŸý5ý󃙄£ÄA¯˜Ùª:ÂS9@0g‡lÙþ£ŽŽnÓ²·-{˜¢I|Gºì¿µ¥l§f핲i¥*ši.ÇA F¾tp›/ý„ûz ƒÛ”þ%úÁnðg8ë:sÚFÆhköéÍÍg–ÁGÜsî9?Œm¨œbß•R1kh?ÿ}[ïA°]|”{³M Ï»û°oÐy«f·× w{'Õì&-”€[3àž&œÐiT#†Dé<ùØÊ] o¸ õ»yü6RÓÔÝEzS§.´&«€ž·ë¹ÓžèmQ¼D&´ÖrÀ(±™ªï-óð}QX $ÊÖ2¨JfÔ “‰‡ÒHâ/Ú8Úâ±\4 ¬8ÿ€J>ðLÓ¸¼ZÛiŒÞt5–¶(šÊÕÄg­6W¿ë‚ÀŽS¥áƦ~YYF]œúwdtTÏâ`^6¶GÄjƒ{,5ìXó,ÞÈó£ Cv!›ÄöèrÏØNÙ—pésföö1GFVÄä[zœ¸nHüÏôÒ9õÛøù]üü>~0¦~Ï2-©"b³NýgüüÖÖù™¨€!¦ÅdeTÅ.hŸÚ½ý4ĵңÜR ðßÃ0¤©ßL3¡²£õGÈê~áý³º©ÿ¨¬½Îr¼í\î_§¸\w’Ëý¸RF.6ŸÈZ¨®.µ~‚l-ŸdkOPÓEà*e4³Ïêp§O“AÕ‹"ª³&Ãàİp Á¨y-‹2y3é¼~úimØEîŒ8—é…ÏaɃπeYq9fXÄ6þÿ¿š·Û'KAE´i@e²e*aG-/{•„tÍ'à2þ^ ‚†àó«Ã.U¦ëܱµ—ÀefçÍ1"²¾_sÌég×úyǺÈçºÝk1Ÿ‹?ÔŠÏý÷V,º°¦^?Ÿ1æˆ`r;³y²¸CšÙæ?¥ìÈÇR.x{¤ÝB!Ò)wÛˆ’’OjF¶s¢ÿuù¹ß–pgùF±O‚N—bÈþ}÷ó4dïI~çÄ›†ìý´RÙaA\r÷韾ºP.´¹–‰ ÷¹]„RÙ›pìÉY¼–w-LË&-Ý7%üõ¡û´P“P51!0z'ܵºÎ”U“ØR'!úGá¶U»g±„ à4§Ò˜1ÍeCÿ§²Ê/¶h”1Û‘Øu¶Ñ*†\sjÀW”Øã¨v툸óråY°¶Ò‚LF©Á°=¥V 8`rð¯ÿÈ´2ž[ !3fòì¹R).…‹Øx0|+MØBà x -¯'a1Ó=³‚D§Æ&:"-¼Çt—Y-3ÚÍÞÀ>µpa”ùñmqü¢[ß<ÏМA;aÑlš³Þ¶Q‰À‘ƒY«øÌ):´{àã´e¸ÎÆÃõ‡ëhb¸Â,G,×bÄò-Fì¿Çˆ9î05‘ þ¸Y»ív$5æd¬ÞJX»p2H“2byï!F,ØóÉ­#V´^i©M¡%©å í¼håï[Ì"“‡ñÔ‹é]#é2v‡—±0!¶¡!´d[²Ìm–ñ¿¶² žTKpŠ H6ä]î¤S-9÷ð-AÌÀ{©¥ÊÅØ3K«Õá&¨`Òn‹Rƒv_H6ˆ¶²ž2Í üQy­±T«;¯{¿ÜêéüN6LíîâçŸâ‡¨´Üý<~hÍÃrò ‘‡)\P¹@Òá’0àÄQã²÷~¨–#‘Åi îD²øeEÙÅN^S›øù„² *ÀÏiEL2˜°½Kûa1'†ù¦˜þ ~hÕòcʬ‰ç®•®]Ÿ¹|õò͉óö,ͯ¿2=õsÈû/ñÃ#¡ƒŸ_Âϯ*#ö‹¼QŸJæÔs“/ãYåÐ<ó½d \96íÂ4ü{9Εó7aœuÝðý®k\ƒþ«ëšp}öc®¿Y‘/tí`åö¸‘ü7“~É ì7¹ñc{wâi¿g‡ó”­³ ûnØ»- Ë¿l{H–ý÷U͸ñûUGmv$…‚8Î=ž¥4Žø7:RèrTúOÕÖ™êÿdºRQ>—÷ò™e ú¿®ÂîBg¡GÿÛ©ÿ+Ú»» õýÎB[áÉÂ>þí.tä3…báHá讞½™]‡t>¼ÑÙýÈÎLá•B¿Nç»Ûì?4Ø}¨ÐÖÝ¥ËÈt箿–ÍzFý­u<×õ9'|QO4üƒBÊùBXgùwz:ã Ç Èè *\Ö?p"ß¹ãÑ—H'2t'¢ƒ‹Þ9-féTÔfœŠt#Ët½Åe¦@Hpƒæw0{&A¸Ù‰›Ó4 ‹`B5Jú¼aér±×¶¦X$Gøq%ó, ¶¬ó=Z\âž?䉶Y;@¾ ‘†˜«Ujµ;E¿v/…#"ø´‚£cä)؃Ïmtr·!°ù“Ö€NGh p%ëâiÎKÄ)祓,{§žÃyâR¥eˆ\ö¶'N39£GÒ×ÕŒÊx¸)ÿ:ç¾m=åèïIõwÊ×= ü<Æ{ ‹º*Ë3'Wö|Š®ˆØ’´?’ãšnïI-¾;‚rb:ú¢dä)3œC—™EvÞÁAT6´dÁöÐhOš]R8ï‘óÜâ½fZEžÀéõ&§#îй¢ÛŒ°®ÄÁHâ êÆä."JÒAl@Ên  uc+W¢%håׂκö4¹\5Æ›q%DT@Õv5Ž®>`3k,_ºÂ³›ûl猌˜´°GR¨G?¥,BòmãA&ñT‘úR†mÈ9§Ø¥,ò´Ÿ4§{iýs¡!;ë~ T9Ô¾¼A»ß¦6va%.n›!ðÙj‘ÐHaWBŸ"/Ÿ^=«Ä݇ÚS¸Áe©Ý•G؃ëš(d÷ô¿Ù˜’ás>ŒæË‡-ÕeŸo”ŽPŒh (6ìÂîj¦À©ªYÇÚJ­j¬eµÌwhdr¸×öµ—1ÁÕ`#’튙Z‘3‰2à~¡^_ùÂZ¥Â ˜Àèä8óXŸÆKè4 1»ÍÎHYY5®RÔöµ | ôOŸPK=z›Ëˆ]zÖÛ¥·Öí^‡–§I(†XH(÷¼äÔé²Sç´±ií^ä_#›ÂöqÀø>vÐ&}Úd¼ßNŠÀ¹vGޏËz Šø:øå.Ê¡ ”,P×7‰ЮÉn ö³ƒÊd¤™ìfÖDµ˜­êB{°‡0àí¤´Õ¯Ðôµ±»¹×gõƒD%™õÏ,›Êܲӹþ‹cs¸Ãš‘zp~„q©|~7Ëê1 r…€–ù"Ü«2÷ TKŒ™¼.z!gæNÑÑ‚¤xÃYÊ ÊÞà®Ì¸ŠÃ¢<íä&>-p÷‚'Þðë­Ë½z­º8Z\©ë¥7A•õÖÏ7Ó&Å‚ëâ`“ø ×òJcCTm1&1U×§^•Õ‡h)7&‡SüKÈs§£[zkRÓ-Æ@•…8 YIn¬§ºÃié ‚Ó`«-à™³¶¢[„š-¬ðëÉ̇ҚA›³X0N÷ÚiÅY&ìlÕã®-¸)ɉ¸Ï5÷ÀvS’îÛhA‰³˜’]Þ!=󜌻2{ažÍzƒÞîL[&ëõymzŠrén½í…™â.=y‡b¬A‚fäö´¹«™˜¾«ÜHxv•`\`‘‚Qˆhõº\–!÷ôQ÷Pmm‘ȹÔI#K6”™¾L¡3Ÿ-´kiu -‘þÒw}òÕﻪþ¡N<>qâèñoÞ{ÖIèÒ3(÷{;·Š£V ¸-mŠÅ¹ß Cm¿[ù=ÊïU~Ÿòû•¿C-öCvÝÐvª;Y53[]Q¹ Ç™ê‹r—º©ËÚMáu%×½ê¦.t€’ë>Š­ƒê¦.b¿ºÙ­‚uSàJ´}*Пy”bîåàÍÊŒ‰]²¾ùyµûEæÝ£üC¼¹WÊœ7÷)ÿ ÞTþ“LìWÁuóåæå£ÊЉÊbâ1å³¥ºv#`%þuPºO3]dGMÝÊ£LRf`+LùÏ(ÿY•Q)xBùǘéIU=¡¼›;¨;ï)vÞ.v2·{u[qã9sC ~9ÿyå¿ ²§rþ‹6qBù/1ñ²Mœ´‰Wlâ”Mœ¶‰WmâÊ?ÃĸMœµ‰sÊ?ÏÄ„M\°‰‹Ê¿ÄÄeå‰×”…‰«ÊŸdâšò¯3ñ!åO11m36qCù¯31«ü7˜ø°òo2ñ¦M¼e·”ÿYL”lâmIÜ’Î)+Ž÷ç•ï3ØÄ‚ò™X²wBåßfâŽMTlbYùÕt'×lbÅ~bUùu&"å7˜XSþ]&î)‰ ›xÇ&>[ù›LÜ·‰(ÿ£L|Žò?ÆÄÇmâ]›ø„ò?—‰ÏSþç3ñÊÿB&¾È>úbå _ªü/câË•ÿL|¥Mœ²•ÿÊÿ$_¥ü¯fâk”ÿ'™øZå_¯üo`âí£o²¯³½ó-ÊÿV&¾ÍÞùv›çOÙÄŸVþŸaâÏ*ÿ;˜øsÊÿN&þ¼òÿߥü¿ÈÄ_Rþw3ñ—•ÿW˜øûú÷*ÿû˜ø«ÊÿkL|¿ò€‰Tþ1ñוÿ7˜ø›Êÿa&~Dù?ÊÄ)ÿÇ™ø[Êÿ &~Rù›‰Ÿ²‰¿£ü¿ËÄOÛÄß³‰¿¯üŸaâ(ÿ2ñ,‘ücåÿ&þ©ÍóÏlâŸÛÄ¿°‰ŸµãõÙÄÏÙÄÏÛaú—ÊÿWLü‚¥¨mÿFù¿ÈÄ¿µ‰_²‰_Vþ¿câW”ÿ«LüšMüº}ôïmâÿ¶£óÊÿLü¦½óíÿdïü–½óÛÊÿ&~Wùÿ™‰ß³w~ß&þ‹­üµ‰?Pþcâ¿+ÿ0ñ?•ÿ¿˜ø”}¤·D’ðl"cYϼ•³‰6›È{¦œv›è°ol¢Ó>ê²wºm¢Ç&z=¿ÏC¢ß&vØÄN›Øåù»™Øãù{™ðü}L ÚÄ~Ï„‰G=3Ø;yþA&Š6qÈ&÷ü'˜xÒ&ÛÄSž?Äİç0qÄ3Œèi›µyŽÚh¯yf¾_±‰«ž?ÉG×<ÿ:²‰)›˜öü&nxþëLÌÚÄ6ñaÏ¿ÉÄ›6ñ–gxø-›ø,Ï0ó’½ó¶½S–ÄÍaYkæ<ž…øž0±àù‹L,y~ÈÄmÏ¿ÃDÅ󗙨z~‰Ï_e¢îù Ï_câ®çßcbÝó7˜xÇó?›‰MÏ¿ÏÄG<ÿ£L|ŽçŒ‰{þ»L|Âó?—‰ÏóüÏgâ <ÿ ™ø"Ïÿb&¾Ä󿔉/óü/gâ+<ÿ+™øžÿI&¾Ê󿚉¯ñü?ÉÄ×zþ×1ñõžÿ :qsDùßèAn:¢ ÒमºË‰4² ¬öAŒÑ»µ§•ÿMŽö‚Q峇ííA=í¿Å»xéRp„û¾Kþ·òj?¯Œmêôð·iÑ8úýS¼B)·­­@I™°Ñ2G]6ÂaßÑJp7¨ÐQ/Š,¬Å9½ñšŠÄF+(Ž_¿¹-ZÙ÷#žñåÍÇÃZb!;îðХˑ"*a™î¾Au…ú‹Àº»s‰T˜DohÊ-‘°tÍMÛ¨ÙZF` ³1–(ÃQ'>[|-—Wh‹±Œó¯h-l ¨0 ‚‡HÜÃô‚8Ù )sxÄiŽ/ëÝm%ªÅÕ²~;ŒM3jò* ÏTÚÕOꦛ;ɽ¢û·‰²§Œ7-°j7*›ú|­R±éõ…ú²R˘ÓiÔl"ús¥s3¾.^„¸¸våÊøÌ Ó—3—¯NP¨ÓW¯MNÌŒO}Øf¼qubêò9~K_Ž_¹"1—/O•®Ž¿1ì\)Ž„U<—æ±µ)Dð·ôAÛ{9Ë8‘opϵèÉÒ†W4ÜäŠfí6ÑAd¬hö·f\Èìë=6ÑkóôÙ;ýöÎ{g§Mì²vÛ;{äÎ4Á¹#ØŒã!ÒôqôUºÔŒ¥¢OZ|E=]‚z8o‚TaK¹a^?j,†æáœÕCPâBDÇ^¯­!¸8{˜qrº6¿QŠ6–çjÁ`ÄVKQ¸X-­Ô"æ^)ÍG% 1À;ÕÔìÑu…JöÔpèB‚•Òœ.!§ø–¯ë¸\®è‚‘‰¬RZ°Xn„w~V¾X‹ÂøN/ë*õ×…”Ð[ÿ.É–ªzc©¶é‹ðzc‡©hú.M­ëåù’.†ÈåJW×~1‘s²IÙ/gieµ@½’#笱¶É$I¶Ö›„TEøågYÆšÒ‘^bv‚æŠ>*&¨§¡ó%%#cÚÿk¶sBϬ®Ô8>¢:Øwê‰ÞÃ3Ú)™¼ÁòZE øÈ. OŠŠŸ{Ü'G“¢s‚…™à£Ä!”ršŽSÎ9hG‹µú: ½Ía«ËÁi¼œd=]/º£*·Š­\ŒÎ}Ž&ŒoXºÆô;Kwbº§Îé%¥\‡Jþž³îÅW«'ћ̻7  ~æ—WØwe ÿ!öYtmÑ8¼q%AÞVÓ1<ٴЃ†„y'ÒjÔ-ç(ÛPtÁ»L‰PBË$"!$ŠôHÍAK6mê%Dèü3BwÆêâë.Bn¡y"ØðÝ+oSÁÃIQþaðµH-G4sø(ß1&ÍÎYq¬ž'êƒp ‹F” ûÄÊJ%Œ±ÎKaÝå‹<4FKš^š=‚â’™©ÕDÚ7«z‘«:q†LØa‘ScvR˜@e(aŒ]·ž™8¢ð?Š©”ö9ÖNA'8±ž·¤-‡¤Œ"ü²{éGøŽæ›y->û1|ú)Ãk;5qÃ?ë1o—wHÿëÍ2YÕžï#:ô^¯/³Õ^Ϭ’~“½!*rNœ_‹ •Z™”¬€“Õ#h9b;=9d/xÖeà]îùŒ«€¯½Âè³LQ[™½‚Éò´d±]ÇeÐ2³&J–.5=ÌzŸ³ ZbÕЖ²!ÀTpq® 04²eZekHMÄc︚˜Zä仞ýnÎÎn„øé0(ﲺÕv1gðüŒ™­ÿôê1×44ƒGvýè³b ØÅzs*þ™š‹•?VdTJV­äÜ“…H:¬|€íÓ%êefèîÕ„(QàåW-ÙW-”ÃJ$ÎIé•¡.OîmÍ-–Qè§KŒ[cUIÖzèNµv¯ÚäúdõÜŽõ W†í¨d»o¯söNlŸ+6e¦j\EOÊ ±ÜÒ,°ñ~9¶úƒ'AʉՆž·+ºÝ.R¨­"õRR‰Ú?À–Fµ1ЍC7O¿FÍ‚}]Þ¾}? ÷@Ý×ðC_£Ë-f5ÄjG]? ÒÃê­ú”žÕ=`jz;3ZÍ" Xõ½ ýˆÀ„˜7Ù­`·Î1íw¥@VmLªq™TV}+cЕdj@à{„»)ÌAÞ/Bn/nÕ¯CV}D°š¤@+r ²WÞÌ»`›…8h½þöjù“‘E(/þ&YL›©tÂh'rðÆø_…Qœÿ†1ØkåEëqgÇk¤if&Š&½»éŽŸÆ’–+—UsEpô²x¬8^|²î¸]„M‚dÓh³k ‰±wWÐ~s“-I8&S{>uá\ñ؉_+ p]mÛÖäPºÄLTÆè¤ãï#B}™q¡F® ¶A> ‹yH{dQ¡‹CYbž@úµz37êââX;úÒK/¼|ôØ 2“!ŒÒ Æ–+ýr²x8ipÒ`²|(=±Ü\^Ö-Ô2t]<40ä2_AOñ ˆˆ¿>Ób"B.±ãK11À;@}{`öÛ“ÙãíÏíÔrÒ#Œè&³Ã…ɳ¦k‡-m%tH'Î2R.ë‚?bê‰W&¸cÇç°Æ/ž] õ6Áh˜)a-t…a·$x7p­²tèq¶TOa»- ™6PÆÊˆ§´üïr “_v¬¦‡Þ•®Ã1Âo×õàè'º~Ÿ§pC*÷¿##§ ã“oŒ_œ ‰áÂ)Žœù/ܾ7Ò”JYSFÊBN3Æd/s$vữÞpÃç96Æ/Î`“âþ£Üf”+˼²Ɇ»®E—ÙR‡ÝxÈÏò!êdí O¨ˆ¾©7Ôú߬ÏÀ%m—½aþ…îÛ⌘×âI›Z‚›Äí$ãL.ÙËïeŽ'¥úëצ/¿ÿº•zmQo¬'ñRÙ˜ ¡…0#‡9£ÅÇ)Öתµ‡j˜ÇcC熶¨Kωƒç6%iJŒ`”¾µìˆrÜl:unƒAG‰ñá±âtïŠ{º€lÛï•«n[[_,¢Z+½„érÑXZ‹Œ\*E-jhââF-À†ëáÖ8ç%Wh!B±±Çá¥æ¹sa%llHxGÏÙäI- ¢÷©lO®©fRÿAì·Q*Yb';›#2Ü%ÑoAõî]@2;-ÊXˆ£J.#ÒÁôA™K,"XÜ\1 !Ò YÄ~)kfݼ8yøpÇ|%î³Fq2d¹¢»-rÞ²¢™öqEB›‡)¾kN*%7Õ”fÞcu¥l·Þ>Ü:ëŠI­·¦’“\Ïî…Õ率N ðìºh^y4ÂSÚ¿L&ªûÈt§Ü•åî5Ë®/Ó{h[Cbk† FjɈùtEüÚ½È|j ¸qô”³Fþ프ï†u=‚R»³¶boc”Y¦ñSãrŒp²£mâoçê,Qçém۾Ѽv@ÑÜjì¡£'‘g¯Êd3¢µe‡3f;³¥Ï3XdA‹Ï.¼‹[ÃO7 ΛTJ€áïçnäÞÁ,ÍØ£¶†…Ð1 ÷Jr ™ä–1´Ú=íaVrÂ=<_vo›¨µªƒöÔ<òˆÑÁŠclQ¸&¬ ’,ÑÍE{dÿÿ¦yCÉó:‚¸®fÚm¬³…0ŽøôÏu+ÉÔˆ£LÐ}Úö^ˆ•rëÈvähqXÚ›žUÔtC„Ùßòä?€bzFOHAFoåQ²—Ú«F6ÆŽ»op`rÉóJNÞ ÐÜ´uéŠJ“™í–±ä¾Çô|¼1º¼ÑXâ|?ã•&ñ¦ *„Dqq´Ç£‰ªZi4±ÔÈŽÊ™Ù#Õz`we~X3 i=ó€)a—³ÖsÃꌎ$âð3Kö#IJ]¶ô Œ•­”Aåß²g¢õn ¨w÷[aF÷«„ªµAµwE…{‚!ªF9jf×VÓVö1§iCÙô3$±ñÓR‘AÒp/má³#cñ'›X8‹YËD+íúIºí޲ºÎ‘Ó‹•fv"Ý÷¬¶W‹è‚ÖB=L¹®W&ƒç2¿•‘ÃNfëg`fºð´$Žñ3¿„í_#>“Òâ7ðÐRÑÄ (N¨2Ú\¯Þ¶—Ô!ùµ;)µhÛna+õ@‹‘õÀ·s苽ØÇÓÆœLùxv©ä‘†iÂܧфxWH>ºAÿ`\@eÇeœVqN´h^zäÖZù]ýóÕn¸¬¯jJ1]ΠO’ã52†¥IÚêë¹/“½”<>'›å®D†„?«ÿ÷Å–Ó ˆCzs¤×B¸¸V-‡aí¶D±_°dY«øzøÅªRÇÂ¥¡s×ÎOLOÌð˜NvÆ|ŸǶéͯ÷ì9n~;·ÂݲFÏ?w‚¡„âG¨%K„ ]ž¾& ².$)Y"qŒ©r4†”ãLl óö1.\ú¢dÞÏÛ×^àWð \óì[/X=yí…(ñôèñTŽ'¿w<ý½Ô³R¯½|ôbêÑ‹ÉG'RN$½”zôRòQºÛ^vj«ãÏ?~ôö »ñƒ—§O°óo‡b¢ ÿžû{gZça—5ÂèÅãÏ293~nFߥ]$Àkè»6ÿÁë6eŠ_Ó…ðTt­± +—•”*»™xÔ&÷æ#—zG²¿#Ùßi‘ýd’T`šˆb§›¾èKçúåÒù×­o“{þ³¦UÃhIò’?(ŸhÎ”Ê ût|fëSS :wiëS_NJüµ†É§ùÔÙ‰&š äóAPšˆ=/*ò¨Rºwë !ãJiQ´±šËk–"Ço4ÕBß›/Û§)j0OçìÓ‹g·> ûôrsßè{ÕwìÓÉ›[Ÿ®Ýq)9X×R¦þœÙ®.VtÿÛ×'&¯wÆÏuÑžäe5ÔRíQ8ºQ:c$=&ÔD¥‰éæE%3=uj|jëÓ¹š}zöÚÖ§óûôÜ•OÝ»çZ½ë¾{®ÅwƒyWçs-žF6µØ°ù.6S¢¾·¼nŸ^}cëSMìæéäå­OWÊöéõ-¢ŸîéÐO7ÜÓo}ݵO§_ßútͽ{£Å»wÝw_ß2gLW4Òs¦Mîb°± m^KšÛ¬ï-„$Ä…°êÁBÝ²Í ÍäïÍöéÙænÐ÷æË.3ßf– ï-ÔÅ©$’ša Â3“°^®ÎËèbP/ù.¹\®<3$KògÃêp¶¥`®ÜcÂ{¥Ë1±¾ÄF. ×ЬZ§xC˜ÇÒZéRÌ<„ãê{Kk\e–Öª²Êˆ2hqË…pèt¹y! }yä—.Ÿoê}/ô´«MÞÖ˰JÌ©Uó!Ų¦õ6-ñ81Ê KI)§t¬Ñ•º|Aê(D6J—›ç“¾g†Q§¶ £¾6Dl`+-ˆá=yx¯Vxãv™í¸].}ðún;n—Çn›Ë#ˆ9„žÔO¢ô#Š7mry{Å>¸½2Á† —ºtû-¹Ò™w¸ë„\•x'ñ%¹:ÁàÂr¹Añx¥³Cv2[)‹@Ë”L)rq5KÞ@åäÅ]ûéNu¿S+½6…ǯM1ƒ¾¾Sg}™â‹y^ÕÓåÁJ£te&ÁøHOånéÊëM–ïðÑòÒÕX>±Jß[¾ÃLÕŠ]°'›Ù½¾7ØTUƺ*ü¿Z+M6ó}¯Z³ö÷‚EK/+ò…•Jéú•¦y§ï­T$Jh «©ê´µÅ5ô0ßk”®'ÉvG*Ki®^~'¬Øœg›ù|7Ö£N›:ªå\žVAF¿3W·)}`ÒÆz­4u­©Âú^½&™„›Ô×JS7š:Wß«¯‘Têkšo¡Úåi?õ¹ZJ¤ÔKû‡“l‰Šð±¤Y˜Í”’;ÍÓhŦ6ÖäEùèNiúµæìwJ‘Œ|$½UÒ’e›Ü3«NE¡Í7}9‘fM•ÚÝòñàÒÉ ÐjTò¯$ô‚±SE ™}EäÒž8 gq-Ò;‡)Eï®7w‹|t·4ݼ@é{“$ºø¡éÀÆR©±ÄÙ©S3—ÆÌƉ*éØF½4wìËŸ±Ôp¡ÆZýÊ⎩Þåd6TÁÜêQYfÉ;ò]½‡˜¯’ø˜› …›Ë¥åúªqÏÞoÜÃý0—3Ë÷!a®#¾<7æíSÊþá.{ÉYì%«:—¯……îørüFXè/χ…ÝñåäͰ°/¾¼</oއ]öC=Ânw Á"ìîˆ/ÏN„ÝÝñ¥þPwâòRØîZ„ÝIØáš€-AØc/¹Ð‡}¹xM½<ö»K¬pá{‰¥e<Üí:<+ÜkkE¾vºÞ€$ŽÛÌѽÒkáw Z tÄ—º½íSRFS&“?íIŒbšê#Ì‚µ‚‡»ë&=KNûY‚Òø}÷ÅKŒµ( ŠŸW7uMsÊóÛ‘¯C_gâëK~!ùöúëô hCço]b9@UÄï„Aj‡QúÇŸèjúDwÓ'V7Ôì%¿'UK: x4Ÿûu5»±Ç(Z”ñ{©¢›…Ý—çù}x¡?;ôO5To\òwþÑwÀ;Þ¬¿KMCÏá§8à`ÚzÏJ c«•tŠwü¬Ÿ2 VÑŸ¿õtÂ8Žg2EcÒ+æ<~9µÚ¯<ýo6S躮œ+ T!q+µ¹r%2Ä,GÔÚÝáï]SuºÞÞŠzðC@弆Ÿë^ëÃÏRX…TèÞûÉŒ=cðúU··ÃãIVsˆâ4õåf…ÿVÿIÖíh»&rÆ+æèd‘ÂÑðZÕœòðñ„QfëÇÄ_tÖ'µ*Ðzµ0°r2BûÆÆÆh\ŽÓ¢¸`s'QÖh‹²Ê pà0gÅÄi®µh£›'¯ÍLœ¤‡BksØ™&[ØŒÐeBŽŒyÁµémôäÉnÞ¦¢-«qrRÂVp¸áñA-»Ä@ÕýBJÒ[°©IÏÜ¥Y+OSjø©«¤y¹˜¡ÎxöÀåR¯»¢?Ô‚’Ðå%⦙C~Æñ|Eò^w®ÝkÏ´y¯Ïë×ÿyL÷h+x;y§-ãy¸×Þt7«I0«Ÿèg&Gò¹súž˜ž¿81m’aæR*q{u%}4x’æ‚“ÍÎÿ'‡ÚIfaÂæã‚ÆÃ€¾ Ü ñ FȲ7Ð5J¢×ƒ 𨃧=î—97y¬ãé: 5z~ˆC-&”=þâ©!N‘ã3°ÄøùvÈgêkUÿSÊœ)Oêñ–Ch†FÓ§`ò"¥ègWV‚ªoúäQ*ItÞWë Wë‚«»".“5|ÓuEÖ5ñ®«uàZ̪ϻvz®WÛ]›f]×f\‹ó¶ÞÒÉj+9m 5ˆ>Gm­ãÅ\6Ó•éÍ彦ÿ2…}Ý…|oWáÉî…\wO!Wè×w_(ëux½™m݃ŸR|JÅÿÕâSª»X8Éšd{2=šP=MÊÿ¦±Ý>òõOªß{Rñ°\ž‡­’w{»r"Æ.*îö½Vànw2jæ}¼`àÛ°¨mþ>àµùûÑæ? P6ÿ1åôšXk‹E?ôbÿI¢¿&úÛD{ŠèoOýÍ#îÛpßüa"®õh ‰^b­@k:!(kŠHpG-ܘA‚óŸ± pÏ2±‡kD€‚šN 9Mîy‹÷‚Áó_dB·è„…‚{ÉBÁ½l¡àN2¡[ú º½§˜Ð­>­‚Ç·ÀwôJþá›O(ÿ|ü$ðÓ8¬üq&žRþY&†T0¬›‚“v  ýëzpÍ9Fúh=€!Ÿ_¬­r"cÑ_-Ïû-ZK¸@ᬄy-LZŒ$\ž‹bŒGš¿Ã)Яëu&á#ØaSÁzfd+’pç"Á©r¸nA›ĪNbÕ^”“ó¼ lF¤—(ÑÖëˆk꪿cž–ÕFPOQt¯ëí £ÕÄ¥3ùB£‰|‰é&3¢æ×ê¶Ô•2“< Äj ÙlZ/Æî-½_Ãm©`#Îq·ºV©È>(W˜FçdúyèJ1†-}JèÂuRdœ±ˆÈ°ÎwONê·ºÓ£‰Î­ÊÍrÎÍã“>(rHþDн5š8™&ÿ$RV‹SˆQ±ë†sz²ómg$N`zsò]_3 à´ „ ì\T«¬YHàkUK¨£E2b#±¿‹sÁ¢phKŠðñ•Z5v¿¥O#BÊZfš—˜½Z“üLÎ:„¨±ŸW7ˆÕZ *Q¬[qX"9ЃpmÅ¿‹M)‹6ÁƒYÌ]ýβwŽŒ1-#·¢<µumáBàR±PhS £®è[e”ÉûIHøço}1·@îI—×Äj_ç[í±&ß[6 úÆÁûComŒO\ ÀGÍçì¬:h°œ·vâñ¦\é/ÍnÚ[é¸s«!–úOØ®@‰Û-¦8|NôÓá­#K ƒ|3£Ê{{ès´ÃÄ|Ç_¤M%¶ÑßlÜP•BiȨõ—}S"láacl‰àƒ&À²s=@8²çõ6ëyÝze¼r÷%y0#±ÌôVžKRÖs‰aåà2èñʘ䋛Â.Lƒ½šé"@pO€buG$L¬Ì`çT Ê~3‘VË´46â ^–S iÇqj0aÔ-f´hÃ{¹OŒÄA¾Œ;Ó0ÜúF0¢µù%ÉŽuÃÜß yÚñφ“éAxž8—±]¡ÝÏ­QÑ…Â'ÐúŸ“pB¡$Abл–˜Â¼ˆº½·$#dÆÊЃÄ&¸ÂåíP;þkI(eyÙqYß<ŠßuèGP„0¼PƳºËBgåÏA:^dš«é?iiåz ÑË`ƒ «ƒÈ©Ð÷îú=¸Ô ëâÖXK‰Ýkü†Ýâš…8‚‚­~­ªûófàGÓeÎZ€8°ØZb?Še;Y:¯>ªOŸ.®Œ H3Åüå@õ‡ì¸Ö!Ð+7ç[!±`2\°ë›æ…™>D%k‘ºÓMî…8Ü·Ý$*)ÏØtó&€Ÿ™ õÀŧwý5V,Þˆ‚…µ Tç¯M?3+¦çÏLμ‚[néâ¤dᮟXˆàw‹Ó†õI¬œ‘Y0H!`iÕFY‹D•8ÛÔ5ßð´Ñ ¡®—ùv> u= 9/ËœƒÆ5d. èà'шͿcV¢ÅG)G/b#ný£8Õ4T´.Ú²|¥©W©T¨úA”– ²ð”ûP«u’;I‡[ïã#ÞûùøÐÛ©¤,8Ï&?²ÒAKhñ ÍÆöùÎð>½h@F¢Ù¾]*3–ý‰É©ÃXˆùà-²âœOeœ·‘ /¹Ì­lõŒéÝ2@-`”itppìŽY\›J8 \«äš2[ݯr ÖÁ!­K0»=ƒ­/ óâdÀ¹ÇAiÁþSvÒÈ42˜ ”éA•ŽÇŒÜÄS“¦ˆ Ò-<ÀiŽÞ0]º<}þò”ä°¬EëDç¼Ðbœ¡É#Ou8!1Z™¹ö˘»n ³Öî¹É\»†¼åâ iÖ ÎmkÑÚ0<2f̉í\:LL"Åöp#R£‘Ì¢ÒçÒ•æj!^«†b÷õþ›ÁЦÃgl[ì9Ö?ÝúŸnQ‹Úù™×¼üàšƒZ6·Ô<%+ùiãÉ´7#½È>é]zlNÏV9™4!ƒ¼á;7~+P¯Ø&MÆxAâ(€~>W®Ïi)âöÉywÍIÅ{Œ èMÏÝ`*MÜ”iólšÅ¼Ú¢;Às?–žEï/û™ñöIFœ^Ñ{ÆÅ”£ÿO‹¿ÔƒÅµJ¹N²3Üñø;&£v9®25q‘àFïÁN`TðÅŸ);9™¦ìùzð‡6!çLÖPÉ~UK²vã÷ü§7~¦iÀá©×½¥€^¡Fè­ÎX îÇÚ«¹zíNPM“xd6 ;«²~1ƒ¦ùk·³?ÄÆŸ{ØÆ£ÒÕvÑépQ|bkÐfLÿÄ6'}W¤zÛ>@G:ö/Qd}z|Ï÷À-«Ö+â;îs/ý&6Òœ|ã^ú¢9F ¢ «†$ô OŠFAo–îgmØpÑa¾u}õe½Û~YÍ®¾Û(¨G.Š•s¶Ì MBrõ–r1 öŠI·ovB¥°äž”<IÁ6ªLB÷6‚åSv0œ}ì¥fná‘Ç£¢E=jæZ»ê ÊŸlCW@ßéyOìLœžœ_[^Þ0A³ák,Þàåùàè¶þØFIŒ#}I"£–ýr ¡Tç } ‹øcS=œ¯þh²z˜¡í-QLt' (R¼Ý/ààC!JÍ”hO *öüH ¿"À¨É3-PUÅõeâÄ/®c¢¢P%ü„2úÕîØÉûïò’êªnQ)5`g\¬„ <‡žV럇)㔀úæ¾ÛZr®*¼Ðl;j×ì äàÍ,žÌ|Ë §Ë!^0—úC«ßC¯b?ãÕcöÍ<ÒWˆ æM-² fôRBO žœ… õmi43-¼ñ˘ß£ÊÉ“ýãâ‘QןUI¥Ú …iè(À®µÍ’‹0òŸ •èÎM€–Šœu}$^"ù{>¹ìöRZñ?•Ó)¢ß9ÑØqÚ?›l€®êFdŠ;Õi€¨N1³Ýt¡)EšÞŒCv†mñÚ.è[ƒ<,RjýŒî:xþÖóT2vÄ` ÷É•C‰ýʈwåå°‹h›J­Þæ1•Ñ<Æ'”¢í¶m•Ž¢†ÛýfŒQ 5˜Þ½Ò¥Ø’70𦛠,  ¿)Y¦EHæG^·EµT,D{NHîö²<â+0hjŸNu‘šžð†yÞsÅ­hÔ’FV –N:apÈ8ý#v*ÁŸº a^ÅÖ9S*1T¢ê€Kýq7Wh³EÓ¡n7uƒLK'4ÑÒ‰FN£%$A:h=eƒ=vÉh dGWD÷vMésMq8­òKÔ~B*õˆ«7+Å}ØuCѵ`Àuƒ„•\…<×È ×ú¬kiÆ5á¸ë¯vdZZTQàÆà!~e{f¡£É–*WÈ: ý…¾BO¡. yýwÛôý‚þÛ]èÒÿÚ ¹½Ù£…ý…öB_Ú:ê_üðÿZÓ oL"_VI㨹¤q­3¨Ñ§ZG¹@ì"YÞ̾ïX˜Ÿ†©”ÿ„Z||‹Ô“ ;©!ÚI 3Jæ­¥Ž¨ ËhÎyø{w«8…mz·x~”†UcÖ°êkXõ¬5¬:f «Ž[êç¬aÕóÖ°êkXõ¢5¬:a «^²†U/[ê“Ö°êkXuÊV6†UÁZU½j­ª>`­ªÎX«*±–zÜZK=¡üs֢꼵¨š@¢ü”jÅæ™Ð1dì)dø&+´áÔ’ÐHsfZŠ•Úœl«"ìÔSǽFáÛ+)1}bX]£-ÄrÖJ›0üät|–ÃöÌ[& @ÖÕºEýEˆXêhNl„†Ð”ë+=gÊõ ¦\›Þ}.+‚n4Ÿb˜”SÕϱWì»îYÃ,½î>yV­ì¶0 ö^òõÕïÓ¯çmè ª]Vžlº%øÊ(·Ý…rI`,•pÓY—%ŠðXj;a”?î¥JÊSï°Ò'¬í™½¿Ó‘A¨=B¿Ð3wN˜OØ‚’C’õÍcÍŦsI‘zU†±Z²Ø‚-EtÉ”xDõÁ4 ÷jØ®-×êA £šH+¥?þÖãàÎÕ ð_à¡ê‰c»‰a§Äs¡ÛŸyËΖ›¥lÆFrsäAs¥{úƒ$/g E´Äˆµ¨US˜-Ÿ(2R¶~F©-á7H«¨¢tð¸´*uyàÚfz ÙÎì‰lo¦ÝëÌî׸}ÞÎŒXØÑÞ.³3ßÛ",à aF‰­ã „{2C:Û»6g¹#> j;Ë1o±ÏV €Àp TüãG‰íÖùø0³"ëÈ㯋A(P¤e½ÎØ5ÚåÄÃD=\<~Fçü¬›ï϶èìá²;Ô;ºÝÉÝ¡SèþóV½3Ä\Ò Q4žÈaö~œ˜+†¹/}œ[c³Íd!qLÔ ZPئ|›YüÆš_è—m϶L•šÌ×8f®X™5Û[[ݘ}qœ$$š‰‘–¹/+¦Gèê!8n"@,Üb³Í,¼QÔ™Vo› d9 Õ!ªnÁÊHÎ>Ò‚¥‰Óæ’ïL(¬Œ@œ€µ¤N7ÙQʉ3ÊJÆ|b;b–0O²L˜±îpȳv½ðE•EÂá(£>‚©«!¨$úÎqÑ‚q¤•‰Ašhi@S­¦`<sÂhFna|¹3ÓíeÕ£^Ÿ·'ƒó‡}:ÕÓâ˜üMÕÊLVFÜYÊštÖÀH& gs2œu‘P¾Ò P#eKôù-c6±Ñ¬ÃªwÖ²FTý±ähã,aßÝž‰Ýk,›EÄͲ„õ+C`,—Ëë"Z>k‡¤y ðÒ÷«”ìpK+ضÜçÐÛ2q.Dè$1*±=ÆÎ#S®âÛ¯~Œ¿­hĵ]µŽ6U+>½Ù®jê}U ¬ñg¶TíÿϬÜòPÖ ±±½èQIŽìê3ŽaàØœq¼šûì韩÷cÒðÖPÏ:"yxãJ ¢Épô=,,/´hTž¿ü`âÞ¾ægÓ5ÿ4-, ÷€å”h[QÏ–­ª~ñkŸnõOµ¨þû1°|`ÅË®8$Êßøt+þ‡b?׺Úó®6Tfÿ©eµSÆ1 •4b )+NzÄ¥´ŠFæ´³&rƵ̉KÝžiQ7¨æKÝþÍÛö«™·A5îÖgì MZqKH€´á÷®WZ´Ë OåŒÑš·½áÞ™O§ebÅÒdxúø6­Äž ^ÀŒ¨–n­O1H›ù@‹õm[3ŸnïÿÇ­>ü V'­jßWÃaTËÓã·3}pÛ§öØo¨¦½†…m±ÎTMÇ(õïÒ‹Ñ5ÖbÉÑ1N’0\Ê‹ê‹ ·í‰ä.wØÚèm'Ý£4ç§1Š…DÙõ¡mNÕH¿)›L 7wúm4ÛÒxcØÚ±S§Ýƒ©Ý‹ÓÀÃÉîEàà^(-Q`>IPߨ‚ Þ¯)â"êÚ51(ºh›&þy=.…´u‘5(jiOôUúßUþ›"JOÿǦèÿØý›¢?,›"niÍÑ•0êänËíßÃàèª]×SGržgL¢Øþ(c:1=¢ê¡s l ~ùB㑦ÈmOÛ×^ô¬ê"e$ îžXu‘2–üe•´Es„”°Ìñ @øõNz‹x”ì(«`i{Ðj,hTG¨ôÄ4öèœ7àçê6‡Ûv—¤°MÖ£œZýMêÅM†vWܲ™äÍsí’qd¿=Â~Ûí+:O=L~½œ½+jMhÙM¬åà€Yá°OðµøNÏ0>ÁL3Wu3QK K{¢æò5sS›õóìãE1¥—9>¢/Ú¥í,aõ7=Í*¦îñ‡z“ýŠz±°eO_ÊÙs››ñt–½ÇöôâÇÃ’'õ-r‚'?[§î›ùÄFócE¬ DgNÖ''9ñKG¸?Ôt<úÙü½?ÜëdÜDxyì_¤dNR$,A¸¨å-Å‘U¸ºhXN4œ1,¤t‹1߇•¯è÷eßò68@‡c,†˜d‹ø!TþᔒXcÍ<Vg äžgë‚·›ÆlP¡KÐÐ^Ú3öyûuªSó”ïQý·WÿÚ'š· ÊÓL^ÿîÐïî×;½½úÉÿg:u¾­¡oõ¶ØƒÜç~;µ5’Ó9‰<¦¼õ7•èß-P̾$Ü‹<ÂìàÉluLLUmôÚ¦Ìa›y{o`’ÚH¤Â×ÖŠG³÷GûÞØ_¥@Úï²7N¯~GüLŽB×e…m£É Îm%‡¤v΋bò¦myAþ¾„Ùz¶gÿvÚ6%>mòåÔ ¼õªé ÚÛnrgôßüvëY$ 朗&¸4öe±e¨TK}•p9¬Šû“_[ƒTgÎ!õ³ÆüXó C¼ƒL g“±¸&8=ަy Àý"ô¸b)ø{$ ,†i·B-{‡夛R\yýøÁùK ùÄ+lÝ~¨y¢ÀHô0Q0Çdë¹³³'“U;@òÙ~N ñuøÖ¥ÿ=ï€×•éÍôe°ü:×)·Ü~¾þÑ"’¸^WHmš^Gµˆ$ñt‹""e`(gSåœry׋²kG´¤Õov¯Bdz«÷u)ùDT^}C¯~=4z ;Œ™µìaßu¾Ü´Ø5’Î@ÝØ ƇâzFøÔÅ 8ñVíÿ‡d.ŸL9M¡ˆÛç-¿ÝbßB›(®oÆÜî76Fó)ÏÉ–×,ňv„5ç‹ë-( …ý êõ˜¡,ДWÈå½¾L»¾î‡!y¦Û#¼®¡ &jÆD,uHÍOÛ%Ä"x:í–‹Lš´4§e6²iDíŒÌÅG# µ†¸Òz‚[AÙ&ÑÎZ¹Ñ‰-Ψöá´Š Ñc$OZf7™Ÿs²÷Úª_ÙTÑ^›Fà4§‰ønÛ»2EûâR9Ò»ÌúÔgã.ü†Ÿríëuí‹+›ŸpewÚ†K•ûmQSqM{Ä5ƒÝwе gk#êÄ×A÷]s?GÙÝbƵÞsÍÙáúð1KæÍÄLtŠØPÂ6æ•&+tp£~½Üæó…žBGáåB¡p¨0Xè+´ÃÚœÖè9¦;òí´SßQ8\x¼ðJáha ŸI[£ÿî'þóο­;ÿÐ;µŒ:kô/øÅ3ÎÍ9ƒºýû|Âý=­Î»i®þ¿`«®å–›YþæøÛÆß<ÛùÛÁß P`B>¨=¤ï¾Ù¥Ö« <ñ ‰ø#*èŽåÞ  ©S«Ÿ£fßìñº1?`Mdz¦ãéxÐkìÚÈ š·Û‹'aÜn/ž‚]»½†a»½8°O{1 œO{1³u{ñ,,ÖíÅq«Û‹ça§n/^„‰º½x Öéöâ$ ÓíÅ)ؤۋWaˆn/ÎÀÝ^œ…ù¹½8Ës{qæåöâ’ò/»‹*ÿ5wqEùWÝŤò¯¹‹ëÊÿ»˜Rþ´»˜Qþ wñºògÝÅÊÿ°»¸©ü7ÝÅ[Ê¿å.>Kù%wñ¶òËîbNùóîÂW~à.”¿è.–´(î.n+ÿŽ»¨(Ù]T•_s+Ê_uuåGü5wqWù÷Üźò7ÜÅ;Êÿlw±©üûîâ#Êÿ¨»øåÌ]|\ùﺋO(ÿsÝÅç)ÿóÝÅ(ÿ ÝÅ)ÿ‹ÝÅ—(ÿKÝÅ—)ÿËÝÅW(ÿ+ÝÅŸPþ'ÝÅW)ÿ«ÝÅ×(ÿOº‹¯Uþ×¹‹¯Wþ7¸‹oTþ7¹‹oVþ·¸‹oUþ·¹‹oWþŸrZùÆ]üY击øsÊÿN ×úçá¸è¹ù”Nó¹¾ø.åÿE—ù/)ÿ»åBÏÜ¿¬ü¿â²}ò¿×]|Ÿòÿª»økÊÿ~wñÊÿAWÚ)ÿ¯»‹¿¡ü¿)ZTÙÅ OÞùaåÿˆËö£Êÿ1wñãÊÿ[îâ'”ÿ“î;[ù?åžüåÿ]¹è`Ñ×ýÓÊÿ{üŸqûÊÿ‡îâ)ÿ»‹¢ü*Z’ügÊÿ简¡üŸuOþ/åÿœ{çç•ÿ/ÝÅ¿Rþ/¸‹­üã*ú‹Êÿ·rÑΊþ[©¨~òKÊÿåä“_vOþò%ùäWÜ“_Uþ¯¹¢]ùÿÞ]üßÊÿ wñ”ÿ›îâ?*ÿ?¹‹ßRþoËEEÿ¶+úw”ÿ»É'¿ëžügåÿ^òÉï¹'¿¯üÿâŠþ¯Êÿwñß”ÿßÝ…^Rþ‡Ðãÿ€ÛЛ½êÍ>õf¿zS÷éÿÔ‚ê§(YéŸNY­¿ÌÑâJ­¡·ñ¡¶6Š‘Þðã_KoA€C 9Þ yçáüR§J ôxqn£0\“9¥X ‚•¥Tç+ ½ñzGK€#câ8²¼RÒw;D¢ÔŠEΊD§o׃ŠKà Ǽ@Ìzn¯øöòŠ®®Í·PÄA¦¶Â¢Ú˜\.¯PÕqiüõ‰ÒøÔÅW'&g(O¼131y~â<îRd9Å}Þ©ÓüsZþ:ÍG¯òâÕÓh«Jé¼J(H¹Eây%­D†³Zøâr¹1¿DÁöìøyƒÏé³S‡ë¯Î[ <·ĶI1 A'œ¥ß)?F"æ6Ò©÷iìNãœÊ|²Ou²h“?H,‰Æ'XÐ#yÑX2t¶^QOöF&<¯lŒŽÏKT¬Íɉ±(L}T¼¥Ý¶vs9š„©­Œ+Õ*¢úgT)J°{ÔYqu@º:OüV'÷~ª£'„®ÎP²:TöOÏ\»^Bèaª.˜÷º¾£ïÊ™w ×fJ3³×DIX°7.MMLH,ä9C^"•u˜<®Ý˜ Á|“ú1!cÏrcr|êÃ¥ëצ/Ï\~}"ìLߟœ¸8Îû]ö“æþµ™±ŸzÜ­s×&_Ÿ˜š q‡sTn_–» Å8—§gJãׯëéî´YÏ^6µ˜˜ éÜß½zãÊÌåëW>î¶4Î_~ý²î¯=M·¯^;ãʵp¯3æöøùóá@SÑÓ7ÎÎLŸ› ÷5•¡LŸ› ±³kìŠo_¸ríÚ”ý.£ÀïŒÎLݘ°ÏèHú^ž¼~eüÜDúÍGm±öiòUÂ^Ó*äÊåsO?>–¾q,<˜¾q<,¦o<bCÉ-šª¦&J¶¤áV·…#­n´ºý\ˆ]"­XÏO\™˜‰ ?Þòþ±ð¹–÷‡Ï·¼ÿ\ø‚¥Û98xÑP}boº‘{©ù‰#——-)Û'¦ƒO6ß7óŠ¥FÓ^!S–2l5åöé&‚¹2}éò…™ðÕ¦ÛSrûÍ´¨‰ÿLÓ½7®M…ãv–™{úÖY[¢­­L’svz_œ˜)]žÑwÎÛò®O]žœ)M¼q}*¼¾§ó] /ÚåÞäÄì•Ë“ ”¸¬š„—m÷¦rãÉ›»ÑtÁkÍ÷M\Ù2®º®6ßD/LÚZÛ›úÞ5×[S㯕ôlº^w<åÚøy}ëÜø•épÊŽâÔÄÌ©ÉÒëãWnL„Óî;W¯_›š)MÏŒO…3¶·'Þ˜8§o] oØ|¾we|z:ĉ|xÓÖ^Hkrüê3šÂuø¦åM7&¯Ÿ{­4=ñ¡“ç&·ìP_ЄC}+]ÜøÌÌTX²7eòæÛi’¾xåÚÙñ+a¹‰¤Íí9û³„¼ÎÛï°ƒ5ƒŸž }ۼǚévÏܸ~e"\pÆ›`ûá¢#oÞ»:~=\JÇJ‡öÍs×®^×ÕÖC}»iüøÝ;M7/L]»Vl“?xãêu½ðMÍŽO«¶É¼{ùB邦•‰°–ʬoƒ‡+©Ìãg§¯]¹13®¦ÈÍtZÃæÕ½3syR³q’æ=7Bš ¯Ë½u7¼7ñƹ‰ë3á†-@îZZz'Õ/Æuïm¦G÷î7:o~Ä95~yzBñ”–’§Ã»ªê/”.ܘ<7sùÚdø®½}uüµ‰øö'ÒƒJî~®móž»rmúÆÔDøyö®‰¹ûù)â9?15q!ü[¨4An~!nîh®ª~‰å>éG¯Í†_ªÌ»å%<ý2Lº/WØÈ ¥¨ÕzU³?ˆ¶ì¢‡ÚDf0LA$¡Oi•ڪÈn¥Ã¦XÇMAì}@)“BgŒÜB¥3•ÉÔQ3ÎÛNW²gïÉ,ù¾ûP\@ΕÙj³5:³º­ÄYjŠid¸ßƒ¦øH.ŸMG}‚iQÊ«=^6ctÂùÏý—I¤2©ë­y¶ûûÞW­¾Æß|ë²T‡Vo<¨Fú·YÛ}åõ_z÷MͬñÞÈjºóÞ³NÓá8ƒ¾=×¾w% zò{­,v&¥›Êæ6@¯ôû¯-èMaSz ›Ò§ît¨ö#U)@ûíÍVw©\Й8ÞãY jÑÅèS2ßìPA†A› :Œ3÷f‡ªnf<Gò“;øÉö“½î“½ñÉ>ûÉ^èÔãOöºOöªjAr—ýä×)\¤>Ùï>ÙÿŸDïPzƒâï¦ôžˆ÷ÐìMêR‹]¬Ø^ug·ªìÖ ïöCÏײßÕ²_Uç=ÏHvÌk¹ÏÖr¯«åÞ‡è˜Û1{/r¯ûä^Uý-ý•Áä'Ó³Ï}rßû‹}°‰?¹Ï}rŸªÞ×_ÙŸüäþ4Å ºO>Ä'÷ÛO*'þä ûä ªv*O¿í?$Π›Ó„ B§üêΣªr:•Ç¡S9üœJà9•C@Ω<ØœÊÀÌ©< Àïͬú„GÜœ¢DvÈF"c=äÔÆR-fEñ7ÌC©Ãê ç ÓÓ8ÀÁ³ =]FÑÒAÝÒ£ E6Š¢?ÄâÇl|·gl|·gm|·c6¾Ûqßí9[—£æØGÎ{üãjQŒ.P£çØç*ñ‚íî£Éîþ¦»_T7_TAG!>н`à:žìçŒØ¡Ÿ¼ î¼¤*/«›/+¯z^ž–øÞýT—ó¢Ò{.Dz;á"½½¬ªû›¾”x¼ŒnÒõÖ}‚š¿Ìš¿bûò¤4Ip’N©à¤`¢ò–þºMtsR®^å£qýÂÔÍÓ8¡ÊÝ|UÝü€K:cÁ’Æ-XÒY –t΀%ÝX'ÐÑÉÎbñhÑz2˜€ƒp¨^Aq£ÅjCÕ2ã»Cõ0š¯ECöe‰_ó­¬ „oÕwµ —3 G ”vrh$nÆ{—„Àæ‚lI‰¢¢`Åz€ ‹¡ÍùûŽÄP&žÎ1<ôŒ­ÿ¼õV\˜àXÙòb¯ùäÛ¦ÏÄo –}« ç‰j¹´ü8ýšÞ7[¶€Ø»;~naµø$LÁAöÝ ¨6~—‰×ࣃ¨SâÚ2<ôVÝ´¹jþÖuÊÕÀ{Ù²l8å(€é¨øqazëÁ¼8SDñ›ý²oâs’ßúÚà¡ÎÝÿ:õ n qtv^¯×ëååH¼@ ÖΪ€/­©ss[8Ìb\æ¥ružs€›:ñý;âî……€´R)7`¨ wŽk º{á>ÃPTÅ嵈 ÕNúÖàkñd5)±Ëܧ³+PÈFÍ|íäÙyD}D*LðN+`<8Ÿ˜ñï4EEª¡ßH݀우֬ÍÐF ¸Íž2Å8J ж­¶‚PäÀBÌei™9=[½ªrú£à¹ã之Jåà#h éÎßzÜÂæx‚2’M‹î\}N/Ï©dŒ1¡`WvY’àF9%n3l®pºäZžšƒÌ­5Œ±2^)½yì»ÝC‡±ŠãÖŸ&O}©ík#ÞwQ’aã%|Ÿv£o+¦rÜ‹“‰JÒDØX±RÄs]DØ0¦~ÔôtZ¬:*ç'®¾Q¼xîœÄ€ä[ÒÞê}1ÏÂ{ èk)<™ñE« ç–e€jkUŸÅÒLø˜t¢˜t"C:Q‚t¢¹D1¸_“a” ™( <=Ë©Ä颼$ý ° =9hŒ)Ï2©gÆb¿ö*­k'$›Euë®=%àK{"·I°õfÄê;"¶'IÉ£©g<ôé &{zs½œ~öĉ·FÄpzm%¨]¾£s½"Þñp~Ó3y!±Y°?†j0Ð÷X”#qMœ­ÕïÀåï(È(ЖRÝH¿((OÁ"ý5 DxÛð¦b=\\j`Y7À9ãµ%aÁ†Å8'˜1Ž!¢æÄ¡xĉ¿ c¹òÚx 9…9Δ›mi€œ,e‡Š{ÐsSοžíÓfê–ŠÊZ5HkЍ’´q ¯ôðíñÚ½Aï U%Ý-Œ–?©TlÎ [Þ0› - mì|ì9§uÏ@ëWq·6áˆl£—EÊvq¶ºÛÙ.w«]ÿ°VÅ­ž•8†°¾ËƒKÅrínLZ)bª/“˜$Kkb’ˆÍ$%®– «M±¼$IÚOM%ˆÖL#ã S ´˜t¯i±-Òb‡ñÕi®hÄÇ¢%ÐÈáJ}Ü÷ÊzåÔ‚[Å"ÿ &÷h2bä ¾óµexÖv ܺX›uêæ‘yGE­î0`+tà,®,^Óh «5µ=*+øbP ê´vYÊ&&kj x¯œ@:sS Ý’-»2a+üHŠlcèY?ÚDÔTmÇdðmʨNXagU¯^@7ï9®éˆü›c®é¥¹¦&ا„+l抽–+ÚM›xY«…–L8Ã='Š–i`=L¼ÙÕ¯WÖÛ˘ð=Lø½$#=“ACi“=\«hRª÷ÒχŽ}&)0 Æ²¡|?Ðkz@¦ï¨8hÍ›8¼†êl œšø©õwßÜI5˜H¤Á½X&[¬Õ|nF4½é/¾¸KƒÑéJŒ;t2[‡‡›9.:j‘zÌD…>>zÉS ÿ™6Uá´ªdÕý.:Å8ôŒû5[}^ϨvÎ(=Û¼ûíâ—¨¥â‚ÅÑØlw³×·R±ªõÿ#;¯ÖϪ͂–«OªûÝs¼sZ tf {y ú˜†¾‘O߀w53lB?]Ȫ׹0ÆhÝ©’ïwªÍ.µIÇÑ•Ã:ãã8–Ó×câü­Nu¿Cmv¨×Wóšyücý¥Ì/­´ú’-(ÂÉõõÿÌ Ž»\|Îà£òUÃJDŸbP ¢Q2uv&r$£.â¢Å̋÷:ìŠHÞ0°‰ÂBS´‚w0 –»-…›k[¿±µ|Í?ŽÆ*š‚ø#cŽƒÈÒ¿nãfC8ä.™òªér•jMÚc›0Ý5=ÖšX3;ãâ0­P5+\ «‘áIµ•‰ßIu‚&†$t¦Æí£Ç`Ý=@uFbüi%ÎzqHÁ¯Ý«Qm ‚ú,Þª/cO¿ŠH--d´†jifk¢ÛWD›ˆÕ øö¨i(YÖpjm¬‰ò@̨ÀEtÝMmÉÜe•¬œ 8—ƒm*Cl¦êPÖÍȉ)R{@ÝæjFm¹¸¶b;wv)¨&«ˆþ”Ë ½à$PQÜHá¢H—ˆ&äà(ŒÒªI-ÁQ\eZC£pqvsS´aÛ‚£´F¹ÊvCM•À­AeÒ}ÆaE"¬ ºÎ@g.F!]I"l ]– æV´TäpSœ,ér¼ÅŒ‡<ÑÊæ.³γNýˆ`î @©t$Éðˆõ€4ŒXNR•]Kjªééb8ÕÓKï]£¥ÚZ“‡ü@¤“Wô‘{ìv4䛈Ul×@ êm¹—Ь£­ Š1û_*©Ðe6=l€«kA,ý€–£¦šðóΨCÆ^s¢9[r5³E<~{WËVÔG ¬rŠ#CΕåÁ±ýˆÀÓ˜Q8W^ÃÍ“NöÌ !ÅðÐ,qíZ'¬5Š‚/à>l•ò÷´8 $î´¥ˆ¸,83¨“i'™¥–µÖóË”Ôõ[[¢¸Sæ+!³Õ‚HWL„{ʶy¶ ä¡“rE"sÇ¢C-šÈŽÑ Þ,öY£ñš…ú­l4–jÕg®„sÏ`†W†FNº¥|¥ð1yùq#GG6=×w‡ß4_æ‚"op5á÷ ~·|ûÖHs Éuz|T‹ÂÕafÓlëñ«íãî]=ÊCç^Ÿ2<)Šëmæz4&ûËaf)Ÿ0NfSÔ7‹[˜¬Õ+¢!‘ .ÅÁG&‡wYùØô}%¥9 •“3zÂJózºI¡2ù])&¨F¢w¶NõH4P±_Ÿæ(Ê*¼Å°'P­‹»>üÒ—@þtn&^1öq ßýŒÛpŒÚÍ|³^ VÅÿÛeu\eÛ³Ù~¯_âjezˆŽ´×Û‘Ù‘Ä¿Dkë!~k¿Þàó}‡4ˆ>`4‹NyµE' ËB¨T†uóˆfmш8h±ÌȺˆ8DÆeÙ ,¢x“°z%5‡h©Ù¿R¯aß=V4ÑGÚ̧ïøóŠ Š·¢¼Òb'e߬Ê@ÔÅ‚/²eÉžÐûýêÝO¿;À“„ç ŸêtS7mí"ƒ(ž³= ô\½k¢ºÓÿͦ:ª(|§¥iiÙ £cÎû!”¯¶¥¬¼OJ1¢5^Š.‚Ǧe…šn<ÏGÌZû0µ-5¹ŽYIÐ̓ÉÈuÌÊþðèè{]¡Ÿ!}†½%ºÜ‡"6QmGp¤$ðb§><¹µÇpÁÑ[[kG°ÐÛ˜b,¹ýñ 6ÁøCG`y»±­›€Zx‘ýwL™ãHöâCÐ&ñ¼¯9ªÔÝG%¥JvÞîdçY:tý÷oâ¡KôàÿF2,>ÌÚð>û7Æ‚n¢É÷¦Sâ¤ÏºÎ+OB-À1†h8Sçì80+û‡J€Ó¯§”pF GÝš¢nm/±]îw™ñYÈ@“VÝËóA¹»@ˆ´F'ôâ.¢9M¹à˜å\¬‹ÃœW_b|ÿŒ2k3 !¡DïT!žv@ó·Y@‰T¶¡V÷{ùÛ£Ö¿жó·¾LÝïç—Ôf¿…¥éÑ;>Ùg?9»ú#*פñuè»õ7QᣌʗÕßí€Ê.TPÎá°ý¨®‘\Kür OñÛ·;ÄF?ÔuÙì@]V¯zž.ß{CÿÌê\ r3¨tj³G}\ŽeqÝüúÚwR…Ò1 “×&&gäP{òÚ 0›‘„*(1t§4§)ÕZ#~§‘xGbª2,&ݦ,"¦,Á aW_$˜ïËŽÓ ‘'oHuñ ŽÉ©6 ”ð4ÄsÔûf_s‡yÁ0çUcN@XŽXî=]s)Úby ¶ ‘žÖçKau¡ÆsúÆÜðŽ­Ô?uÉU‹H-´øaB@c­“À£ðcš‚Ó“ÀB3®p‹9„©7‡9„©£¼]°.÷ú3y¯àå38q´š]3yâD ¸çNš0@¨=ªïïÒ¹ú[„Ž—ß, –}’nÏÃÎxE31-áÍ;Á†€"½¾µ²‚@Yäþ*Ï8Y(O Ȥ'X•öÂÙ¿ƒxÀ¢Ï“šI¸QØôqê}‚(.z.|‚@.°hméî£*È©n¿àZ嘣]ð ¿Í\ùy&:`2ÿ ‚½èöú´2íbºÀt7Lé‘¡G0&ç-ª¸[>(5 goÄwËõñÃÛ0uÏßzÔò2hös(ëÔêSj6ág\°}x# êçÃy ØPÒ„6J% ãTdsUn”Lœû·F°,Aeït—w×ô6Ë„Cƒ£³ Ð'Ü˦>«¹Áií›0rŒ´¢É¦àõ¨îxitÄó¤!Y3rÆ¡Œÿ´4=éÿ#ؾn§=ê,õbmÞVvQyÓfkÆ#%u±K4áýRéÛÝú’ôñvA@ã›ö¼UŽ®Ö`Ò'?Q×]-2©Z´®À¢­ÀŸ‰é|ëçwoýüé&T€O»~P‘üùÕÀ:¹{ E]rÍu!™Ìºj4 Ì+4ÿÀ¿Dg‹z@ÿ€ïzœ-4á(ášü=:ÂI”4SúËê„?’wsL˜³¨TúžD ¶L—AGa&î™:©9â¾Nn«©,®›‹ÝÚÜíæ™²ÔbTàyù}MÝbÑìÁ ¢/•n©Ý˜?ÛA Öþ¼ &SÅñ$Ìþö’›µ1ä˜ '·i>öŒš]]ÕÌv½wþÖndohSƒ6Ï ]ª1ÿ’ƒÃ°=iÓ E§ òÁ‘Ð Ú˜–ð0ú΢=wþöþ>®l» „÷9U*©J¥‡%[²ü,«í–ä–e»ßívwû%»}Û-ûÊöU_Ù¾ºeÕ‘\íR•TU²¥¾ÒÍM»“ÜL „0™0@€a˜ð Ãá1ÌüxL†f†ßÇëã ùöÿ¿öÞ眪’Zvw€0¹}U>}ösíµ×^{­ÿz q–—«Ëš/‘ž„¹a±tÎfÑØWð ýÞ5çð <žß®y_›h„Ú[Ä`ɨˆÍ’­¾ï Fdµ¼Ó‚€Ð°ùÊòúŸ‹¬”Ä«®OL9šœÌY¼9ý&b3–MNXJ9S:µ`b2Nêsî¸"k-Ú6Ç5¬H¤àÈüC1\‹méDÚOhá¢ÛëNà:ígýloóbý%µÍbMÙ«j×딵çoÚós™NÚչͬÎÓçlªy:T-_^Í%U#Kc„÷YGïÙù™Ýïµè|ñC–ÖÛbN‡¬µÅx¶±nñãªá2Ÿ¾æq¼ÿJÓB÷«f.Ëdàl1‡ez‚8ŸqÞþÏŸ:o›(h¯j¹*6­Í-ÖÃ,…ÿ$¶~®Lƒó÷# ƒ–žðt's„=¼h»G±l+·=ø ž±ØÔ@Ïúl¯p€6?hÖ-Å"P‰zɨF¾¡®À ÓQX¤lÁMb.„®8çW±"x„‡Œµ`1$œ&G¸rÎ#³ˆO†9Õ´q¬8áípYKy¤>çè®4w‡…‚Õõÿ?ÝxêIN0_7¨Î°gë}qÖ›3åAgGo %£ñ!{àb<Ê—B3]€â°5·jqª!óbÆû¯Bñ=¡éÃ'ÛìJU‚Ð×–ó˸ÁãâÍ£LV·ÅùG2º`"m˜õË_ЬåEf‹’A,’BöWŽ>@Ìxo­ü}´[×O"azúþƒòwpÎÕÓÖ²{£Mô-ke†»a¤Rã]ªs6ÛU öSX1VªJÿß«wÛg=ú¦ÇÜtÞä»^û®›š¹‘W}ðþØg²ùB˧Šßb{BàÙ¡ž‚¥H½¢wQÒ/j2“<ý…wÞy‡ÇjÓ~À¬X." îóŽ îÜ[}}cnêúÌù«¢!yœ/Öur† êê5J3W/,êÆä%Jÿ¸½zeêü5}ŒfnMN¿¯ŸPÐ/'?¸zË&ÅõÍ[çoݾ)ÆtäȹXݤҬ/ )5àë-È ÙÏ ý )=j|é§½v-+ty»üÝšèúPJè꡽ÝÄéöÝê|*®`E€½wl³|dgÉu¶è㹈¦:wâmÚ„.ÕLÆjZ›ŠŒ]5žEÄ“¬­ÞwºÐ« ôȽõVÎŽ…eM´í*ìù}ëOš>T#5’Hޏ}ÂÞp3eàœ—ÖßÌ¡ï1 Ìç'ôð›ºúÒ:Z ÙÉiûÃ"m$Šu(f¹V~Òb,I{˜Ü"YÄß6ò|à“ñ#*Úù¤jˆÚ8FðɈŽÑ7FAÓ ‰2ü³”³âÈ8Ó’èÂò_æ@rRBK* Y‹·­V3ÇÝ ¶Gö£;žx¯»A]~š™j”*•‡-Ž4ZxæÿasóÜÎæfd4—_æSOÑ»áh>ýýüÆ4´Åª­./—þŸ3‰/<Í$î‡=8w+|»SóÞ†qâBÀØ/ÅÆûø¯­œf[°Öbþí`N:ù¹4[5£Ž> 1 _E mgÐ rŽ“ÖžÁ- ¥ y°~VÐÿ²æž1«h‹Ï¸o‹ åÓ/ ¥`Æ·–íØÆKŽÀ2›vÙ4ލžfBθA^~ªùkÜw§3úÛŸmF‡C¾\lâ¶Ï:¥ï…£ý súׯügýw<Û¬ïI ¨5L{f ËÅéï²ü/òœµîB;¥ TÅfEÔ&Ea¾Uh$mÀß$ÌU wøyYÔXHÑâ„.?óK…7´'œE¤ßžºúÁ¸¤ˆ™;ãžZ°²”<óiÖ¼xÛZêq.Š‹UÌ‹Kë¹z%–£_€x¬*«uSOzf>°K¥œÍªr‹lÝÇŒKs-£ð0šHjb£ß²X¾Dåa¾ÆÁþoäþêlº[¹!u!)d!¨æL¬êõ³«'¯kj_¦ö-c9eÿ'ÎI´Ú¯åFçK…9XF—ÇsîFwƽ$„šƒÂ„!N¢Y‚8tÛÉkLMd?|(>úÈPÄÈïqd ÿùéïÇÏ÷Ù¼7ðxöm¾1¯€(’ööz!™¾DmèéFõ"š0º™24*®}†LÿÞ¯‘é¯z2ÜÕjѶ[¢šþG‹ßë(ðû-”¯%õ¶ô:ýZ-²þ8ÑîíË;àªÞ¸êßü5rýUO®[ÑiÊØoÜ‚NŸ™"«ßÞÈL›Ï½í@E½ä ‡¶ÈŒ)[Ï×çàpUª‹÷Ìê2ÏöäÄéñSl!‡—øs‘ ~¿ZpXó=w”kC1+y¢,øƒGßtOæA䄉S¢jì ªAau>0Feõõå@¤£ß¤¬Ðü_++1ý–5űÇÜrqþa)Vןt´×÷´ýÖmúíÑBÍäé¨íûmw¬ß þèçÔuÒ¿Ùv†tËoÛaW 4tUX½Ÿ‰öeƒÕªfL•%ç5â|‘Ž;TeDyëýÐCÍèžÌ#2çËJó PK@:ÏEpÝFªý؈ÄоŽ.'áˆÏ­TåÍ)´X,ƒå^ïÕ%1Üë¬r—£³ÚBXóÑ2·5š÷„¾õ&î§ãHzCQÎIòœøÐÕV‹Æ0‰Õõå:øá²æªðгªÁæŠØr¦<%> B æÍÅGyÄ:£·7‘2¦o)gcÉ9`¾X(P+ˉ€Å‡»ësÓ—®O]û2 }ªR¿ Fðõ  dh8+Ïù­‹"æ3ƒ®,„g >óÛõÏÏù†áz›Ž¢ª¦¢×|ödC˜±–Ïh ÑùE;1Z…ÙäRk"nÒɎǘ\ÌIï _I4ú†@¥<t0”â´gÄûvÀÞ <%qÈY+SÔ¸¡• רöb°ÄŒä\QßÌÑùÐB¤³œßŒKÁ/ßg‡P€ÒÄɔؾ­P×S‘êÖ‚e:'üy dæÏ¢«‡·ß4¢“ˆ­(¶ub_ ûÐòˆÓå*kÙ6‚Lô"Ú·&¿+ø‘­©l±|T¢Q˜]úuQ6S‹I͵ܬ†:*·mtXâHâ°<ÓŒhQúÞÞq˜þ­¶xá[ÓðL#Û~ÑôáçG,!¾åºú»]÷Û²˜Dz‹å¹^UvH¤žç]'»­‚D·e{º\'ïsã•tôzÉø·¹!%Bþuôcn€fÜØ&ŸýÙ"ù?…ŒŽø|â:“£ÎÞiwtò]®_þ~~FÙ¹ó5GOì°?¬Ì|’Å4.ÖGk笟LûéÄÑ óiÔo0 Û<ýýþNŸy]úM×Ó}åJ) øÉ¾–H´gûÒé}~Ïí®„X uú«ÿÒú7}ØÏKøÆ‚a]þ.]›ƒCÏeýlR׫c‘ÝSéýú‹l:Ó•éJâê`¢+‘Îè“À‹ëÉìòÃß=¨_"LxƒÆ6 ×Y¯“w¨s~¿ðÏ^Ñ}?ˆ!ãqgK¯w–0ý©Õ`[^ˆÃðãÂ7&ŽÛÇŸ-tø¼Ð¸óÂ.à®ú,€åUø{a˜Ú–àq‰+ã‹Ã´¢[†êÍœ‘KtNÙ]JBµ0feüpkôÈ£ñ(Dànúáx¤`\.HæX¾oé~‡ºŸ(xy‡|§i¤RZ­År\NÞ5&² WómE¿ʪñ=eß’*â‡_’Ñ‚·ÖœXCÏÐE4iì˜+š7ë÷+]ÄQÔøÐÌ3a9,-b‰·8I›Tƒá“™ (P©5ƒ¨ô… pµWˆÝ8)ǯB-¨•0£ÀŽ€ý·|ôXäáw'ïž1CÞf‡<â>ãv™¿÷Ù)r B ô@kŒ·èAô4„^ú/¡Å­°ËËx‡¼n¿¯…3ákÊzê¾9‚¾ñUeH†ŸûÎ#B‡±·æî“(tÜi·Û¹)ÐØa¾ÉIúµhôOÀ•½%Ô]/H·áQ&'Bëð›‹Xóu«¾#˜¢Øzú¶ÛÎÐì“Ý;%¤uÂÙ‰]„†ÃÍSTE¾òvkQË‘™3¢ý{­ºE“L!i[_tˆ:…8 B ðÕnKo>Å yPù˜¦Å{:ÏbÒ|ðÄ·˜Ü[”c ´Â`ã½4*y‹’@”59ù'<—- Ð)³¶¼ÛSs\5rËXôÌâ7ŠŽ§ð@§00cšÕëLÆkõ±7·Ï ‹§çŠDXª)ä n½fÀ¹‘“'Tjõ“¬×UµâR±”¤Õ¦ÝýüüÃZ)_{Ô hÕ¹¾€G•ç×%¿byyUt¥üX«rÆ)Œ@L$Þ!ík‚´d¼Êì´C> R`l8ÓIp˜áÂßͱg»¥Jñ]ÎέDzkAéÁªn¶¹ — z‘4Ê aä„Ò!€ÎéTŽœ”EQÑ*‡‚b¸-ëõi1¾Û ºb@(?¦±ÿ}Ñ…Áè×”‰Œ,¤»ö¨·òœ9ì^BÉ·[®Š'à¡G obšœüsØJ3uu›mjmGÀÍÓqfbX3ät¢•‘I›ZNR»µé˜ñA{dÀ•éë-¸Pœ, ID{<í1shkP†x]‹…zðCH>=ða=ÉhOnEÆ$³æ™áîp ß Ë® D>âe±¨w›yò¢(Á9Ò¡*ƒhJÄKz£Å˜S†:@hÒœÌïó³^Bðz¼=>S{iÎÝÌë~ê• u©kß±¾tïçdË´(c3dc ê7ƒz }ùh¥ß® DdOð\b›ð71¡ýDlýaŽ¡³³}¹óq7#9„ Î÷»¡®Ç"ˆ UãèOº÷ñ!v yzháÄR·ç+Ày#tcÆt9cã[31Aµ 'ü4ýDô9nÂhâÈS€‹Öê!qÌGæ7õÒ48Ûb¬A'ßtó[ÏŒ,ú~¨ ô¶ŸÑ¿Ýzž7 ~ݪAð3¦/Ì×,Ë!å‡O€æì:·q~ruÞzÑ1CŸd´æ­äÑ­ªu¢¡Z!BÛVUSOU5Ô6U-f¥‹-ª®×² e`~ŸæDk%™,Lžµ;`”E&Ö¡{IÜX­5Q焜y Iû¨ˆ¡z©Þ”4~4lʺ±ò†òôßÌJΈ¤äx†¯è5 ®Eµ}P³ŽZ&ôLà€6ô ‰Lë:0\²Š¡G3)rIöv²QM*qþ»|Ù²%¡Ü·—¢âðíý žøûåêæµ«-ž’zõßA}Ý¥:,ŸŠ‘HÌmí ýòÍñ)G$Æöè£@ˆBŒ·gRà6q^ª·Ô£cb}ÆÓµŠìîñÜ,Ì¥pß^«Ïlt±E‹ µü™í‰{ëš_ˆ×œÌˆX¬Åy‡Р;k‹¨b/ØzÊv½>GeÂÖÕ‡ø³ÏZý³-ªŸgDƒÏ¡âùí+Ž#ŽÿñY+~&^q‡Y¿£ZOl[íùí« ýÏϵ¬¶g«”j›ªbé禧lµõ¥û•RqᤊÍÕcF´µ³žxµ²jôBlµo„–þç›ê„ÒŸ$f:/#½©ùÚLyŸJÖé;ñ•l3¾’õ”mÃ>ÕZq š+#‡Ý9ngf­Æy Nó°O´È«-Z„åäAÖ´§t»¼t‹–{––iZân¬(ŠÒÊá-ZI»·p¹0ÞZqâ#ô›‰¹9wõ&àš ‚õæ§´¡“þÑìVÛ®ÕÕ`qUïÏ8›žªáÓ“Wˆ°ô)-Æ ÿ¿·lqLÌý@5llfe6(öÒ)Yr]-Î×ÐFñ0â­AkÓ;–”¨ÇXõÎv=ÝLÚ°ezw Q‡αF92âÙjÕiÜP4$“ 4èæÒ@I+çÚµz¸ á’-ì‹zý¸Þ¢{qþKÑîíƒ\iQ,»÷‡ZT²5AQ²A¯'Æ" F_’ÛÂ0èAÂDTÀÖòe=Ц0åÎA«²[¿ë4R–Áû[ùúï}þI< JMÿL57¬ò@ÃÏ—JP8´k³‡ x11œ¨ÑÈW_[¢vŒêûñ\Á  qCt:5¸üŸÁ €½iñ“m”ï^ *ÙâZ˹†€©Ûð¶Ô‰)îCŒ†\¦RôAÖÎÇOÁ &jÕè¼×M6Ç»æâ×É‘2XOHe' -9äˆg¹„WkÀb³Ÿu{v'ÛNê^§Ðt;Ù¶( þ;eµv9£Èî ¬~ÓÉ©[ʤB ï'”ìI›"wa€a„Ks† 파EžËø?&½f8Oh4Yn“ì ü‡§¸ºIžåä¾NÊø:Žx˜†qcjaȾдzôÝëïO‚ÈVËË•Çem(W¸Oµ÷_7ˆO(ðྠ4GÀÍ¥é«_š4úØŒc3n£ 1ÿB¢ "Àr¨ÐƒÊ’xÈ鿬 BÊîq›ÝÖ°h¤$˜3%á¼!»¼˜ë¨C¤ ^¢íuørLÞéíó“BUQª‚ÅkAŒ¬ÚãåãtÙ(s©³(B'Õ a“§Ì°Nk·1¥ÖÎû ¹iî%ßÒœS ƒºV,)jB<¼©b¬ñ¸*…IJjoP7<~’ë]ù߯‹ÚO²jÁ» ž|ï]‹ï}PþaÏw”þí^¤tY˜w{*—\$‰É¥Å7ñë\k:Z´æ‚mMƶF4×€ølZW±‹3lK–{ýb(€se'Í\ÑÍD- êjn|äjüµKˆ$ÙÇ«¢Œ’9>¦oÚ¥íÛæ°òÏ=Í*vR÷° îh¿¢žWjÙÓïƒÁa‰«³átÃ` ÕÂ`ÔšÕÈ Ž~M_mšù[æz$= uæ *s†(È™êÑ)Nü¹¡š€BÇHÃIÌ×ø»I(,‘BÄàƃ²¾ˆ2 ÅÅ¢‰\ø(º8wNˆ°"ªí—-ƒ€;=l5¹ä|)_Z5Eò¹ˆ”÷”É w`.ÜŸ=ç~'ã Š™Í®Y ³FÚÛM[¨RqŽ´y}­ÙÇ>}•Ñ̤Ë; ÿíÖ¿öMF3•!y Í\jŸþ7ã è7ÀÖèó3:]³Œú¡×t½©”;72R«"R%!ºrF_´×oâìR^a¦­Œˆ¾hMH7IqPòþ<ˆªnáŸÀŒþ¸ÕÖi®…L]\Ø·VŠá;aQdqÔÔ›T•Wì[]ìÞ!L{Í(sчFåõй!G²lg–'¢YæâY¶ÇÕJ…$O“TcY£žÎVäø­HX2‹n%T´õÍ”Gáù¾' JÅ¥b9ÏsÜBe6®æLIâ"GNíC =*Z™Ðé­Ä®ˆ ‹F±j2ª*¹îA+W“µíe;‰$¡èÎ4%›C#5ïÑ?ßjFZÝû4îò@y=ÆRu—^ô^ÒÏ»õo§ßãcAl>#F¹“ äYOX,De¨”'g8²7Œ¨Y¬‘€µä 5·Æ1Ài(Dˆ—ÁA—_Ƶ©Ý‰¬ÄNvÐ5›UßëÚÞåÚ™³}(Mp=Ã&•Kã»{® »\¿²cÜ0’bTÉÕâlÊO{i¿Ô‘òbÿ¥Ò]éŽto:>’J¦Ûõ=é$ÿƒ)cGªM§È¦w¥¤‡Óo¤÷¥ÛS~ÜÀpöÿ¥ à¨RøCŸˆ‡¨5.|ù‡.8ãBÔæjtk'Æ…‹ Øÿéíp@ÈPaB³mZÔ?LÐã Z?…·6¸` ë¸C-Ä1!½¾ cÁŒ 2H/tº§*ði^Èê%¡‹/½Ê3ϺÉ^_SÞŒºÓÚ6~âÓÆPnûxë,ûyÛ£Ê絜+vÇ?Øÿ`À|hÆÐK£Ê Î Á| ƒÆT1èƒõ¤YZ‚]¨ºçâ—‚‚ke$äãTÃ:|ÑωîHŒë…hmâodã$º»àÍ• žGZιÅzàì´ïÃàŽÎ/$²´‰E§,ú]ÅœÌhµR­<* eèôDÇ®…¿ŒÐÅ¢Gr ¥ü¢DHgPJkRÖÎE«S“Ðd“Ãt*䫲<Æ‚9 #Ñßì "6„¢íhy¢ŠÎg6ôbX¡/Z[áØ¹³u¡×Z°Þ“Îܤu¥ÂÃ÷p?ý˜¿Õ).Œâ²9¬S—ýñ‹à#rC}ý¸Z¬Ë‹ù—Ý }-/ ÂÅÆ@̰uï­º£¶b9Äå¹8b$X¦˜*V—__¼êjyŽ-rP Ü”*51R_(Ð5/ŠŸ Áãä#È—è¹cEq…j¡ ÌÊÆ(ÜÉŠ']Š·”l)üö;Ñs·“5Âs°\;L€ȶ²KJ‰¸‡zÔë÷2vÜn½+êòöò¨˜´@ê0„œ™È÷˲‚]5Y`¥Ÿ‚MÖÅ„5Ì\{{§ÍDtªK÷N`Sp*‚Æ<³ò’Ó ›`ï/!ÌKj棽LšV²Y2ñ¡°¾âyÆnyª–PÜŒþrò~±|²ö€;ÑóEÔ=$;j“8¦Åš]¥B‡=82E޳ýà•–._k6ó÷Û•ýúMQÑ„ÁÇB U9 Çp´y€¸ŸÁÖÀD÷zý^¯^ØES›ÖÿîµÇÔÈÌéj¿¡" (5´°²~ #RLo\·YüjDƒ¼(g{û,øœg‡D¹•jfe˜ÜÅØÈ¬ëζ ›g¡„¨p ·¾ÄÕùÀj-ÆŸœ (p;°w]Ðd©yj!Œ\©YÛ‰Óa À-ÛD¹õ >alžœÿœ… å˜DAjCÏΙ©ëºN/ _·GÉ+6‰KY{sÔð1úÈžð6¡"º„¯6ÐUªÜèˆ8±ƒ¡iãY´ ÍÊ—CÉ l$gt³M¨çBïèÓFÃöh»ë*%Hâ'\—p+ ›ßô•q¾)ÖNk7ñpØoz+ "³E˜ƒêUgØA=”h¸å[GÆ ep›…†d}å§üža½Iî åå—¼ >AyyŸŠÊË +&{pn›–Ξ—(È ¤ÿDµH W{’‚èYÓ‘9yÖ«Ùœ‘9Ï[‘Tì‹­Ì)°Ó~ý›ø¾³QÐì2gƼ馛4gÆ(µW™DmÑD) .Ñ.„+ö;yÑ1Ú†udRµ°ž&RQ +ºé˜Šs‰XÇ– 2?í= ˆL³tî˜ðgÆq¡ýŒä÷ŒØ11á<”K?'ؘÏ2&гZLϨXn gÄ™¢,)“ƒBs"4N­¶8±Ÿ±/˜¤‘qgQ¤”fÀÎ–Å‘Ú ­I-a‚nl ·“!ÈÖŸû5‚ûÕCpŸ‚¦2jÏ×GaŽô$à ]4à›ÛR!¾ûf” yŸ™áý©_£¿ÿ¬éÏÐÚNùž¿á=ÏCV?ЂçÅŽž‡•=ä«[R3–-äsZØþµµõW ©í€ÆÒŽ€^qTD¢¢8 ÁRNšh¬­yáꇢäÕׂ¼F?•¼ðÛþkëé¯N"ÛÉzêH. “Ԃ츗Ø1ía!ýÑ-hÏé;Ú]™s¿òûµ%ôW Éíh ¥4öjœ~ž‘³(~2J]=Õ#QÎö½M6yü¿é]£ ȈQ»/æ~6~è&õ WÞu~F'"©iß®ÍÁ “_Ò*ÒXÞ¤hµOyõ.°A»‚V`».fýPBtI‹Ì÷n¶©¢0ÃÅ£ÛV$òNÿÁç]Qɸ+ƒ’¸ƒ)½hJ%÷š£dÆ9,öÉQòoF¿ æA #"ÍèÆRÃèÏr&‘¯sôò÷só…L]`÷ÌV²H,í Æƒ[s´<1A¿±ÇÕŠæǪ9¢è›“¾„¤ÐÒ¬–ƒ5Mõ°ç×éõ,2åæ„;„5`mÎëyuý=‰BFŽØn2×SR”¶ÖšÞ€LW‹Ë&ž¹±¶aXÂ6Ö¸XD/~y9–Y¬Ô 'eWÃ-Jh¶D­a‡{qÎÍ‘N—„ò'ˆ~úrólý>AoHœ²+Zêôz™dÖkò€—ñ²^¿·Oß%¼úo(ò,ëµ{ƒ<¾ïfäs£ ]ÊËssÒW4#gÿPÅ»^‹Úp‰£Ôzm¾R^ y¡qÎ×uçÝ×]Z~Å5:\“h—Îó³R¾›Ù+¯(T"Í® ýç ߸<•Ëó ®ˆWm6’á»¶ ÝG£'6ø.bôÔãÃõa·×éëûdÿµ=G¡³Íôdú3=ü¯ßO?×Õ€›–ºówþàë'•Âø±%lÚQe,›~~'–M¿¢°i…£@K[É‹¹÷óóã¹™b¹Py\Ϙâ&T5”i;…8-Ô•‘›,ó"õäëËİ,ZG"_®X.ÔRª``NÇs‚Ÿ:¦;òfeÉØè óT¯«4ÒbÖj-XX-¡AåJùD¬™ºŒÊx¹fÐ#Q(QÔœ–õ¼ƒ!Ô\L4ß0ÎôVqþ^Æ‘(Aì¬Êqå¹—²;Ùý…ÁcÌ3-Æ• §1¾íÆo¨€P9<'hPÃQ8¨aƒ5Œ»akóõ©¨PÛ@Bq$ ¤JýE â{ñœ¸ È(è4ˠ삘¿6 ÒAô‡m_iéqwHÿ:§¹Ú0‚(gžˆSç ¥kËý­€å Ië]½Sh¦O‡ebß·‚f ‡p8‚Ì4¼4\…qÊ }áCü4?Ö¿½ŠÆyZÂsûÐ .r+Ã{q%%’}¡%¶H¤"‰lvܼquB‰!ÐÔ§!²Ò(|Áñ8ÿi@—~…° X-ÂÌ«m„ÿXP¬C94U-v&÷±j‚rNå@$p0y>øn½Í›8&îÛˆÝÐn ž/Ý ¢†ŒGø\Ö!CÝ\¹®<ý7#G~9ÓŸ7” ²€6/‘-i*¥ÄpZnókrûbb'LjMР8u¨(xÕq*êÖˆY×Ä=Þ!Ý) ¼ *«ÿÛïuéÕd…€Ý!ªÏiG ;Çšx& ¨wZ4½÷ÛSöÖU¿¯ú3AYd"‚šmÕªþ`^¿þYëÿV‹ú? Ôö5Ïo_sh¨¾ÿYk~>^s=ÚùB¾/õçQûùík¥ú¿jª},Ž Ôm­Ðzr\¥ÞfÊ fOÊbö´ÃXšçtÄ/.ƒ["ÕÄ0¦ ˆ&8Ôhpk€¦궈"½n,ºÏµ©÷¶€5šlÑAØ ð€1 ò3ØÖè³ÁT]Ú¢[d‡‘=Ø$ª,îW+5Žõ™´ ©Á5ŠÓ-‘¬Z5ú{ßÓé³5þâNJï¬í—¶h;Õ¦Û·;êûwÖüsÏÒüÏäµý(G€¼¨þ”ц‘æÏþÇnîÓ"xí¬Å@ðÚA‹Á˜ÿrËã»Ø9nÌ,Ï\rkw‚u éK”26îÆÆa_íÄ$Ñ[ât6ÔЦÎ48>‘ÉóNS ‘ëE‰®,€ÑT-'ú46gF uë0M†CþçÔÜ3­š %WüXµE³ÚKÖ½@Qˆ;‰eÓj¹ij6žnnÛlØ2ÿÖͶl6̈7l;‹ž8Ç#ŠÃEž¬6‚#F›‹J;ç«-[š´õ48%sÅr…•·÷…à‘Ðîë¶Y-BóÿߪqånÎR„–[¡õ8 Ìœ³ Ž›½©èìm·pi ¬å8%NñBlP“èªÞ¢Åg¹§HñÂ7¨hWÖ&C¶²‘8ºÝüàÖeäÔhO .ÀNò„¼€_â6<:m/^”“³[öîûÓöâE!BæÊˆN_vù7ìK[ Î[ÿtȱ’ï™ þ8ù×Ùü: ‘ ÙiÛŽñëÚˆ9·VÃÕ¥{9Æ1°:“wÚì‰7Í;#ÎDW îW'ÆÇÞ]á®»áî ÿÝŽ³ájb t»â6èv—›áê P]!žÕvu‚oGغq=õ7ܾ™¡Žcdbbdl\¼î#°yr®0ž[ ?ìmóÔúÙòÚœ~¸JÉñŒ|ÙÛôpìa^­€ò˜Ü6/ùnQe-ù ºÌ Š%îÊŒ»¶Ä¢‹åŒÖbŽ„µ¤” Á­iÙga‰{Ÿ1qì"´ŒN gA¥uÍ«æW«5£"»Š×öñƒJͶ®à`\'efR“7Ãã&9e¢)OÑA”=L=¨Ž€oaÞ À` Ý•Šµ"ôËtaÏÕtåzq^œ×-‚¥–™[Á«N (m¼¬Wà /^ý0„!´4BçÂý¶­·ã=RJ‡åì~ìI7£Ì’5‹Z•0”ÆG¸ §%s½]]Âù™h±2èÁÒ˜@̇#FÀÍTœÄ¤†¢$‰²¹OG¼l¹X ÑZpS¤(<éX& MÅF ÄH„gQ¬e'Èvüân ^‡Ïz<Ë뺔b$BßcĨ«úá$f¼¸êw9j'  rÞÆIÒW¯7jãŒxÖÔé² Ò/øOÇèHÿ°Ýšïtð]F½üK{ü]>œu÷ÑiÄÙÊHNÐí÷¶XÔ¸|@p}kGÓ:=¦ycóE뺵¿âªü9qØK…1Æ…ö–Û”wƒÃN:,$#±M¨Ru^ÓBî@º ¸¢ ©«×à7LÄóhÓ¡Ž„S@Ó¢&6@ý½a£¢Þ´ÕÈÉ[èuæ¶+ÔoÐjî5 µ—°>¯fxZK@Ïg@økî' tk„?ˆNwŽÞ}üÂÆÝ¯ÝùÊæ½ãw7ÇBoÆ(ÀôFû,ˆ•–.Ö©ÜU þ@eiYók¡#H{"W€û“+êZu˘ï‡$ËÅjeuYX!NÚY0ÓÃ0""Î9beøWªž—mâFŠÅiå—@±§ Å Ê_»‡ø˜ÀDk§÷›·G³ÐáA3ú:ëuû-ŽŽzpÖm#C=C©rj\yÁ=%ù¬ÒÜ“ò²Á#±ç™*$uMċР}›‚Œ¼j#³dHsíZ¬Z¶&PyË£¯ƒô™]Þ+±V†-Ե݂†—»xÅêŒ"AYôd¡Íe•À¿¦i‚b,[±I ¯ô1*µ¾ÚMäMe›€ =è«|¤=AºvGx‚A{R‚¨¸Ñ­”J•Ç5hÛ9ôòNoÈJ¹Çµ~ÈWŤ ž«Aê{ Ö›yà4$o¿ÆÆIŒ ,ýØ¢#:ƒZ`+¶Û£Ñ¥ _v¡˜`„îJeÙl×§FIÄgƒ]ܾŒ²œšKmòcW`¬øou4I+hp8-½ Bà)“2Êø'-häúç§@#&þ—ó.MúhßYoHóÕÑ–&-˜F¨Ý‚†x 9ü4€.°Et(!þrm ¸0ÐÖäiA§x…h@hE¼·FtÐaÛ¢~ƒ:utÌ5f¯+耫dNèa—}Ƶ7Ä E~Ûý kLPqÄ5&éj?lû·,ô®ÂFoš³4ÔxZDãy P)Šñ|5Ý€ TÐtº/ÝCäPà…v9¼Ðlº@(ú7£ÿK§÷¥GÒ‡t>¹ô~}?˜Þ7±ÿCÿö䉽ºPü z޵­ÿž/žyÛÙÖ£5ç”Q±:ÛúY.WzKsK¯`úŸÑB½ÐŽ GÒïk1È•ÃÕ`˜†z ¸_,ëë¹ÇU"UÍ%nAn¸†Ð_hr¦C &Ä\µ„6›ÇyY‹P¹±}ˆÌ±\-/5÷V s"É7ƒzØ2,‡ë½ŸòÛÜþý¿8óÿúeM_øV°\µ½÷ûªÿüœë½„í½/F{OwÝ¢Ï>LX焤z˜P¥$ÀÈ”k|hÔ6´áj6¥â9ÍÐ,̤ˠ 궯NLL|57êàÙ‘cÔgR…е¸NËù¥J­Nû’ÚW»iý‰ñºY®ŠyVÍš9Ï1z ¦ìD ¦ŽG«}ª\>|žLw‹Oˆ«wŸe»Å£ì0x”;Kg \d 0ì,3>‘ˆò]Ö;¢ÛzGôïˆé›” ¦šm&—.ûò9Ï^øö‚Ö®¸ †‹6û*e/Úí÷Üê#ñƒç2Ê`/v*zl̦Šì2‚ó,¬§ +‚zFcé@:KùµRð((Ùšu’dñ¦X«Ûza̯Û…⼘xëëZP§-¸¾\¨V> Êx`>*Àq“â†@öÈ»¢¯M2:Œ:î™QêŽAÎÑNYlžÒ-þs‡b¡ŠDEÅdoÈ3?±½KÚ²EˆÓ%žæ<\ãd•iËŸ]qÖÉu Á§¹Rr2‚º: ê_* l÷„ˆM›2¾Œ|Ĩ))ëÖÈhǘÚÍy–9g2ú»Etû"<…ÏÌ¡6ÏSj‚ÒÏ û8÷ Œv÷þ¨×д|mj¯&§}&,PÃ-Òí5ª Jí9ƨˆæ›T{e§!NŽ7I‘èƒ)vcŽ¿s®sçD1‚Ž’ (®4ë š˜ñ®/ìì8¢W‡y:öÑó‚ú8­‡^ ³ùZ¾^—°'ÖÍćdßÉÜï¯Ku8ÉM‡æùÖˆXäuk¾'ÇT·ÈQ¾£ Y͹Ts…§Àå{¨Í€aÐ}AÐùDº‚£š–ʽoŸþï¨GôyT߸ß_’Ó&Ñø bk ]DZ|fõpuªòŠ8ˆ4óÞì‚4ŸÜÌpCÇ·}´ÕÛ:‚Ђ}Õ·òEõõŒÚÌ)A<’RãpˆfØ3:D€|eY¡NÂÊŠJ{‰›º¨ÄÆí$ÙN°$Ô@ýËCx<Ç¥àX ÿ‰â,g»Ý„Ã9h»\¼W‚Ç^^KTswNß«‡‹ŠeEE-½ó}P L¼Îb0Ô¢‘öYÞP¯Ú0ÃÕââñ©JP¢v4P•oô üHó[‚ÍS½B‹êG+/غ6Ð ­ÂædÚèšB9RNVÓLÆÏhž÷’×¥viJÚ­º…á¯Ý ŠùŸoä¨yaÊØýË„åïÇECÃ¦Š·.߉æ†7¶ cç=——WUœWÚ“dÖóÀ6õ|ÒfÜ¥’wø{ï³W/m«‡ï†Ú%£µCǬ]ÅÀ¦Å\4ÇØvE× <¬*½s¸zŽŽ«Œçî0÷{c¢u<l L¤:¸3ÕH£Ø¼ —ªHCßhÑ(×ç,û¬rF]-z[ÇRìÙ8mÑf‘ûõQ׺ÊP$¤y§T¯¡;»îë}pý\XõìçSu0}'«Ä ®Û­ªžÞaÕ»mÕ] 8¹4ÐêY ¯ñ 4_?8-Q…UÞ’ô3;¬­£f|µöÑQîÌóŸÄ::ELÇfµ½[‹:¨Ñvµ„°Ùf&‡^{ PêPk_ÆP×->Þfd5z‡ [Ƭ;FøÈ°ÒjÈŽNÂëOúÚŽ‘µ°6qgÑr² LÂ….¯á‡¶“v"æ•P ê ˆ®ÄªÙ”á Ó rÊOw¥éž,~Tr¶á>NwpëSúE߇l¯rcQ©”jÂß‘=wy(»ØéD*o¿`“Di´E'†êÁ,k™õÓ^—ß¿’nP~ýVðB§Ãµ%zw3_·j·ÿé¿ C3!·sH‚íªž1ŸPSìô¥œ}$¿@•Zåº|ñ§ë¸nE{e„1c"Òf@êÄ^W¬jõ†´ÞaMMÚD“哼cu–¨\‹KËÖÕŒúÙuÙ§EÀ,Ò‚sØvJôX©’/ÌÖuŠâ|\¹À=~¥!lö:e¬¤“tlLêñ®eUææP'Ÿáî@¹o|N‰>^…£›q£ËOQbº½QõûâŸõþJA“<þhuêÍG¯.‡˜4ƒvH;üm0i<¨}gŸ8Íâ U®CP¶Ôb%gÛ¡^ 309›Q.ÊVr¶ *TÜôè›^ƶòP•œíˆ nöè›ÀÆàf¯¾P nö‰CHhyñú¯óú ¯s¼>Äë#¼>Ìëa^çxýC–·mªrPy¦ÙcÖĈ„Ï1áó¢ÁذÜrÇ ÉìÒŽxGÀdèßø;®‚¬ö xtb9êœ &ÏI`òà“SäÁÅi‹Éó¢Åäy‰cö²š}ق󼢂—UñUL¨@_Ÿ’0à'©Â?åTø¯ÉÆqí_k¶ySP3xèaýS‚5(ík„wžcü¯µšÓç–òõy•FbjÅ¥"’ѦBg¯Õ2ÏØoÕ’Ø«ZðŽÜýJýAîõ÷áã­Ý,ƒ¯W{“ï3æl'¾LÅI‘»UL+_†åa¾€ôÈÝ_¯‹s±Róó¤Šp75Ý&ætûfîüÍ‹W¯æx„¯?Ý¢_¢Ù²Î´8È—$‚ZµP,çáLíJ˜È¼sŽoÆs¥âà 7|~x<7œ¦!îð©áqÚ˜‰ï-¬ŽkõL‹ñ™r°.IÖ¥÷ñdI3¢GÌ}¹²Šºft]çóõ ¬ÿZW¢V1ž²ÈÃbýªá^Œ˜(p¶‘ÎÓ=ÃÃëá‰aÁ|ßd’/G ÉI„ó\>­\±ȉ÷ðW>’’>`9X “úh‹ÔA¹Ð2íñ†´§ Èèb5 ëcðA êEãdãÍó×§''”"ÿw…_åpŒ_3ÖñQº>_ÌÐz,×<"éѺ_² ~¡¡Z§Ÿ±ZÃï´jßé0—-¿<þÎø ó ¶OHjH4ZÞ£beµfBß5»dõµ¥ñòf´ÄX‚ÅxygÍ`ïÀö¡©2ö£üýÊ#Û{wïšV° 6ŸGT¾„ âb9_ªYÃ|` QÉîÎ=3´WËø‡ÓR¤ö›êþwžD›·ˆUÀ8*/F2Âa³8  Á:[Ó† Ó„óÆMð:bcMO UEHʘ£œGc.Èç£ZŠkœúS-L[¶¬çdY_Ԃƺcƒq-Õ¸ T=k‚Gp9¨PÈÁÒ¿j-¡¢Ójôâµ¥ÚêÚXîf ð$WÇsׯsïçnŽçn“}ÀxdžTWn´¦‰è~Pª<³Ùœ‘vȰWV—ÑG‘·ì®©-£ïÜ8 Iím~Kœ; ¯²µ7Q™/}%è@IˆW„N±y½…»±&¦ð.—]¯–Šº;bÙâ»B,¯ç¤Eçéø +ýfN“ŸžØ›à-I`Ë).äôÇs˺Hñù)TšÁf~u)h1GZæd¿ÚA~ lÛRYGÎ)ÆêŒÐ±‹³]x†#†vk^BÐÉ@欔ÝGã¸â­^ºj«¥ºÌú(u³]Á<<[\NÒ»åÕ¥û:ÛØ˜8Â5|AÆÁ²~¸³ÈW&‹ó¹8¤g‰‚·å swv›¯¶XiîÞoø†i2c’ɨ¶(¿j³ÌçëN5Ù]ØQvèîäVhÈ +TA“lb=þÍ\Žå”ä‹õܾsêÄ÷L&—ZdÈ=fÞ–Y}%’W­E^èMrmn_[fv'w·~·|·zwáî#›×Í-êµM~Ìë+-2{Ü"³|iùA^“UP-ÎoSµü‰ÎŸ˜Õœ»×Àqg`ïríúÅó×&Çä…hGÏÝË-—ôrY¿ŒgX<;½ì”‚:ß[ö:¿Z‹Ì•*óy+eÜiACáz"¹ûØ$½ÛØì\‰ŒZXÎÏ?p®ø@‹ ×¹Òœ’S6Öêãâ‡6Ú|sùV+ÆR¹,Ë4‘$G瘸;ä`©Å ûÖõ‚X͸›oWͽ‰…¢X‡™ve^ºm^Ü?Üáö¤¡üÕûeɃží5 Ü~Uj~-gæ©z_v÷ñ¸žKúOö]-­IjΠò–“ï}ýÿÛ×n]½vu yAZŒî«bTŽó.IùZÓâÒð?쀢™Žÿ©ÙhFyéú­ó×®™l&ÂlâÛ48˜–JEt^É êèžíƒ\îK“ӮߔžºJ!'ÊÂ!LHØ”ÞÇë¬K•ÊCFŒ,w;Äÿ‹×/M>E—[­€íòkâlÎI™Zv Ñbë`#;Eí+›q¥5âê}1ŒÓÓ=bX›™xQ—,18 ‘£{½HCnÓOÎ*ò®ò÷ßçïMþ~ÀßÛÔ†ôʯ…©=v¤Ä2ˆ¬„^›^ 1„xRùâÄ‹§yà›Æ–*u:øÉayèÞ²¢€ªÃÐ ùe¨bj—-¥( —¦/¯±¬âRÌÝÝ„µÄZ®˜w‰Z¬ÙîÄÏŽL@rÓÇ$å ”¦¿(Ñ_ÅÊ7m²y·µªGT¤aà2ç÷Ô}ƒ¬›Ø=éÍqeuñeà–ÀÄ›ZùJ´ç>îi4e÷l«·ï1[Gâ'±Ö['wvÀµ^4ôE?4ly’°XûuNQˆ8éÊ}èÄd¦·ÿ¥ü¼å 0Ž‚±/›Õ@ïé«%MZü,¾„EI­XŽ/ü^²Q×òÈîh­‡«®—£©7ba!ò‚ÙHèJÿ ˆ ÙÙÒj­nÆÎ \´¦=ÖÆíÞÆ=MÅÇ‹ˆÆº¹“ÑuD,z˜ì€ƒ-†™|Ó aÛ³áo ‡0Ÿ{ñ„@¹µ&š3 ï=;­E¬1»÷ð…‹àþ+8þÌ¿²Z·ØQi©) Ìb^XyÌÊq™LÔ-«¥tö©D$R”%¤g""C¿¦×Ÿ…ˆ-Hd§´ƒo¿ÏÑN{+æ7´í~5ÖÇv÷°“ž5ž*ñŽånâÖ§t/fÒuo“£ï_t5ŒµµG½^ ¡–“ÝðÕЦgl¡“‰=ëu ¯Ê¾ò½å7Ñ ú6¾Ý/>Ñ·©ðí Y€…ný®ÃÀô]ùÃúŽö¢ƒöÉaåé?82*ç€nÒÛ© ÷IQM´RGDõnEGÜò¿ñ÷<gù{Š¿oðWúóî©S§j¸½kV*î é y0Å8•8q‡Qz”Ì;C•ȲNó&ú4`pT±OüSÈØÈzý*¥éqÖëòºýq!) ÎÙî  ÐðUdÁ‚MØR@Œ!œ e蚥[&á: Œ`ø0†y"æÀÆØ8"ÑÌa¹KŽùêcAèX€ßw‘‘Ó&@ó¸™ò!•¬÷™¨OyÞ¦–sÐÆ¯ì¶ ÕÓÖûh©¡éÕí'+0èuRÞÙ +òc^Ø?ÈÁ (òýý "ì™ýgÁ#Ï;§$g›‹!&ŸÐ7´”“PaAÝćp.üá<Å~¿X³Æo‚` ™cÞô¿­n ÜÁŒãÆú–N%XC” ,a=¢—‰˜ò½þƒ‹ç/¾;I{=‘!i÷Š£©×lh×HS`.CYË_ÎI6p‰Þqˆúõ_FØ´Ç"]ý j€Ý$|K„€ü%`:Z å„1éZH‡´Ç·dH ( ´u´ ˆøgiÁ7$~v#ôö£±M_u½Ã>!DâÛOìN Çr¾Z hØÏ«9˱Å›&†tò¡U5{½Íåvø-:\èÀ 9_TֽǷ}ßÐçM¢ÐpØç¾…/aÓ1}·ÄKûIçðC+ñ×`˜VJ  °¬l(r(ûEc+h)ÿ[åDë>YcuVÖ‘ÀTT D4ÊVF8™7è1$¨$¾Tž1šAˆ›ö‰%/ã½".5K<s[tÌÿ“=rÑõÛš¶j3:RžóœÁ¿ëY¡ÉxWv¸g Ù2 Þþ¬ýª1„ðœßëeÃ-¤à¢o .| ŸiÜ £ÃPDðì³–c¹\œX :Æ 0ñ<ƒ~9áÌ9dT‡l¸b{41LŸìéè‘~ÓæøkJ õšHç’ÍA½ ë*½(4t?¢L€Í+æÒjmZ¢ }ܤnŒ½Cê.2qUMZ˜¼è·‡l¤·-òˆ·ò¶š ¿MsIœx— U±¢»°éÈ<Ñ5Þ-¦¬\{Dè­\˜>?uñ]ŽèÍÛnœ¿ukrzŠÔ: œráÿ\#êbÚ*_Õã_9xo쟭K· ð9;„7dmw‘!K°ËªˆlFçF·D‘™XÈê}ûå„%G2¾ìWvœâ±’²ÅÕ„4è=#øŒ×lÁRÖŽ°µ4vv@ÏäuôÞí9Gï~/í§4/L{í*ë]H±èÇéètø»Jï"xüˆ'…ÛÛèïCαö#tuU­q6äÞÒ±i:é+1Τ© E{7Ì,Ä©_<‘6è#ûD8ž8v maUì¦eÿFèœdìNñ¦Ãèa»86G;yÝãô]ï7X¶ˆìZ‘‘Ø$‰Ÿô!G‰k þôf;X㨠G”\l9"S‡c¼Ïæ=  =Áþ¢Y)y¦Å' Á ;ôC/3i‚ÎÀ©rY½úµy{õošN»½NO7b†Û „7þJ¬Ìˆxó®þ^"(MNÝ£¯;–gŒù]yÆ5$U\ÆÅ’¾‡ÆÍéɹË×Î_™ sû…£ÓM!'<âQÁ=boô­9Ï'ò„¾èkw&$¾2}M¹Ë1‘Èô7ånNŽÄÛbí®èë[“ï߸v^s—çlÛ'~ÂB&/ܾBŠàU&Dðá2ç`|8D‚5ÓkB ‡-÷h„öÉ)+Ÿ®.”­¸ˆqe¥#ÇeG¥•åu-9-ÒµÃxpcñâ`¾à ãW¡‡gÚU4g+*¹÷»J±-XìñŒkÕWŸ‚kýe× VžÀqê´¤ ÃÁ}Î×4‚9É ºÓ÷]GLèŠë%vqÐìà7Î*º€ôkSÊ øxéÄ{m©D—çþÓ×éDº-‹ÿ:²ý›!Üh{6©Ÿ&Ó=)/åïEÀÜÝéžt[:›öÓ‰þ¶¸#ÂÀ¿®ßû%ݳøC{"Û–– è\´¶¶ËÛ6HîĺÐÛ*H2`†(bZŽÐ2¿œ´t¡ÁÛäRn§ú.íÒ¥ÃBºx„w‘8· æÒiÁ\²̥ˆºí6¡n×;T°K³ßò°J}܃ )7è‡#„l—gw«rNïCÜ3}¡¿’kñCDÜ^w—ˆK ÔjP,óѱôÑwˆfÆ6ÞžoãhQ÷q$€äñšá<6ÉR±&† tßúå_VÀERê—¿å—¿%¡œÜè´i c¢©‰”èò]¹Ð‹‘W½Å“yÌqD_¬¯[ã ˆ—QbTÒy:³Ãz:or¿™†cD²Nä›ÄÙd=%zõæóûé0ýв®Ò;ú&ÒWF÷äÕ™8²6ý&ÏlCžÑféÊÖŸ7}^ùQiceªß,768låˆdVîqOFÿãWùW¤³Z”ժƚ†ùxl˜ë/8Š•â+£îÛñXeÜŽïÕuØmåÖ°b^X1“Íø§g£ÿ´•³T×Kªsõ·s¾Ôè?Òøz‹>5Å%¬¶(|U~S^ëzO@N7»Énn»#¤Kè=e5˜h@»z²U»?LŸbÏî¬ ®¨§.æ4‹yÒTŒžÍ/êÙ¬—·úKªø2ón3™V‰öŠIðjS‚aIðšIðzËtoàQŒÐΰ>ÿSc}°{ËíËDV­Õm¿^º÷€\ûiºå-ÓÆlø™!=K­:ìÍÔL˜bí/yº2—îícµ\òŒ$Ïèä?š±mz›mšnÕÇèB((ßaG gö…]‡çÜ Óe盺ì³?®&­V“¹Å×%L³hn™ÛßÛ"qÃô»=ѪÛ&¼®wåAÓ(¸,’ªÕÀQ';Ä•=»=“KJ÷' CÝ"´´~r¡nÜô£™ŸìÓu…ªA{Êý'ᤴ?»~C²HóÚ¼l~‘ÏÕ)Ù&lÏÖ—¹;wªE<IÎO}¹ÕÆžÅéws¸n¹wD“l²¦œŸRv…ôéÜõ)ÙÛ‡ÀGi3·§n]½&w:Ü5è!“L:ýž ¤26¹Tá?$B÷ET÷zP[ë4dLnEص VJ'6w­”(2ä·Ü-ûîVHF¯Êù P·Œ¹ˆún¿ƒ »¨»öÊõé/³Ø‹ïÚb3r-áâ»R¾º2}ýöéÉËl€½™›üàêÍ[Bp ‚uƒ4‡ër…Y~)_Z•s>""Š¢Â™ˆšXM!¨–4U ÔP qNYM•)T×QoA¥ÄfŽD¬:Æ(7ÊÜÏ^ïˆþÛKÅk—×éõyûün¯Û\÷&ºuš¯Ÿª:ýÄïã¿ibÀCºÝúo¯·O?íócÏ"w»ùV¾ìÖùïæ¿ÃxJÕ߀·‹GÚÐadLŽò¼×]wê;û'_A©Ø©tí|¤Ú§Óe%à€I/Rê€ßíÊð¤üýÅn]Ï>­-c¡éV<B%³œ‘wP/¡g!bñ@x8‹P²6ŽÙ¥{/xw©Ààè§Ìâ˜Âq82Ð[¸•Sò Ë»E=œ0 \ÂM‚.&$0{#îšg¾{f?ìæ‡»(Ià4${Û»íÛ]|{‹ç3š3Š¢³[Õ÷ ­H!+w<&ˆ%lHÀ§xd ЂŒh{ôÍŒt‘Þzó5—í†s>}¶^&éÐkVÈÑ}n"…ÈáÎLƒõdÍÔiÀÁd©øQÈ’iû/× sÂçŒgò Ô¦Äg¡ñüÔË ÎOßœ¼%žku{ÄráêóFŽœÖo-㇇ÔSRcIôèü2ð}÷EÚMÿƒÛÎhèÇEkÌhÌ ^=—1ƒ“úo7ÿ0‡v™?3‹ü>¿KYb¤7|9d‘ˆBD!•ðšÐvoújýO©µŸÕ_º÷“ÜHuQjdlKÐiBò°’Cÿ¼~ÖÅÍ»$x(µ d?{NO­i%áSbndϬÿ‘ˆ½ÜMv×LÍØÌdú˜ˆIx¨ÿf$,´DÇÚ-${"r -tÀPMê ŠÞ† /ˆˆW¤l» ¬K÷î™c(„òÒû —§ùÃAU)æw²žkæ]eŸe±1}Sà^‡É3’<£V†½$ßÝœœñ=æ8I¬®*_Óýu.Ý{#ÂzK騔Œ°x²nD~Úã³ sgƒ@¬’“P“bQû‚ ŠàtÖÁù~såšïDKó1 mš{•v› ÒQƒ–2 ¾1ʳKLÏÊj]prÒrc–j;=—òË2;Â9 =¸(×9O®Û)*FX,‚SPœqpø%q·ã|`U\Œi!gÅœ_³ÁPÔ¦2ÜPPï/SKçîëºjº3_ÏË¡g·›Ë¬ÙmWeF°c$Ø»øù*~ÐÈüÁ“‘îf·šî8Ðû ˜¦³œî)†ìL˜Å{·ùÕ‹ ^ì°,úX”S þÊtX›î0.Ž›Ýœjí#fÔ&•X'ó@ò 6h—GŒª$£Š›6º©Sãš"ëçY\usrÒuí–Õ¡¼Z M"¶aqYùºçé¿b‘Zµú~U<U¦—í”XÛil‹µº¦¶išÖ¢1DÚ<ǬäóM&(6ùáÀNgQϩҭxŸnÚ5¤À¿êÃfÅZÄùW&Âû•g&"ްd) ¦ÏÞ8VÞ}Îrs‰N€)zu ŸØH:+Š_å`ölÛ/ H¸&AœÈh)Á¦ÁÍ¡¦Kù5»"„aÏMœž|z¿T™È9+ÀጬÀäVË p\½,äWK²é/9Ÿ£ÐÔ"ðH8mYL½b,BiZ–Fƒ»øóµZPÅ!œ¬a´Ì©ÐԩذâP„\Åϒ똇øAôµé*~Vçc€6öKm«µ¡¦¡(«Ý'?Jp;…õ'åV L‹ö½4¤Ÿ z)¦Oñî°N#l¯åmþ^½MÜG[Ôyk çÖ ÔÖ˜4‹{À]Z Ü 1'4zW9FîŠ0ÃBý2™°ƒ©h—Î]ŒdMSDý§ûøÃ„“]|»|ÐúßD1…c‘òu1ØiwýÌ]ܸckn•.¢†¡ŸEî—¶±×'ϳ€ƒþ·Ú<~Ýå÷¿#© v¹é—]Äößr6ìnÑšDÁZŠLxS¬ðd·QÎÀ]ç–_õ½µßgÂ~^º÷;˜s?÷~›G½§tsÆ®_ÓÝân¡y½•¯ê»~»Ï|O¾mk° }YÍÆ&´E™Ý±,5«¿|ñ3£+’­|ÛS]çÊŠ½jÊIjð'\Q•Ÿú´RwSH×÷:™“?ñÙœ>&(Içv}£»ÕÚ¬mÝ¥{—Ôf/μBK´ÞæZ…%u7”ôÃhåk>ß…‘BÁ+ßü”ÂW>·Â÷ûºðý¾-Ü<`…Ò<^ùnß³vtm8‹ÇaĪï3§›½‘ž>´› j"*“r"Þ£¢$%¶_¾æ`>ñ™Û-2Á!Ml=j%—ðÊÜð؇ù‚u♢=óÏq7Ó-wÉîj2'éOD"ÕW¹MnÁâɳ’¼“w¦¨þ/Ê÷½m’VaÁ4úÍ”=#I¸ô»µ¤¶ö}8æqéÞ%ƒvàMƒr‰«³k÷TxÊ…à|EäiÿD^âÒöÈíMo²^ù· ofåo'fLÍÂæ0[~@ºx·œ¥­izÂìP{›ÞZ)x$\.QÌ÷·àš!ø«æYwoöcîÁT¬\yT`:F‚'[>ä–ºPL „µÜXÌýô>o¾æ^ìˆ[P(8þ«S—¯SË»¥|í¡ÓhãÕ´ÂW?p:l>³G'±‡Vg„¸R´¡ÉšbEƵR ŠõÆßÀÏ×]Ã,ò›î3 ˜Þq+ò1~>QvÇù¢k`‹õ?îÌP,/T X–~$¡[íàv4%zY?C Ÿà£ ºý6ý_uÉv«ju¸0 íå6´ÍïÞâ9D…¾5Ï>Þ¤¼ H¬·A>rÏP˜Ðÿú²Áíò÷ÑejÀK¨W½¼=ÜðJ䪿UÄC\ÖžÇÁà¥{‡ÐÒõB6æ ¢ ë½T!´Ö ·•IK¢7oMã@ëÖ—oLÞä±H}¹Ñ?ˆ ûÊù!¢pNw‹úý Ïú pó׋€öXÓ5b¯Ø`‰‡÷ÝŽE‰Âš´vDgiÝÚSöÔÁí&hƒ=ض£G"!É‘«M"àpjeìä@¸ ÷™û¢ÕéÄí¿ëÜk¥¥ÆT¢7ÑïïòÅ¥À‚»ˆ7SEÜ¡3¨Ô „dv8Épøí·‰Lø[÷ÂsÎÙkÞuÎ{‘pÓÅN KÊFâåG»éâ(U"4G¬%£¤ ãÛF‡82þ šÑòF±Ïø@mDËP|ŠÁ*\ zõÑ—´V©V×”Š.àMÀsc÷ô©S»P¬÷EåùÒ÷Ú!ˆ»<…Þ(rËñ¡ýþ÷Ù‘Šz|ÍfÀ{ÆˆËØ;š• ãŠÏ˜3÷/ÜÎ=6ÄÁÚSó>fý׎Àþ+ü|?~~°™z¦³þù?@89<ƒõ+N«ô6¢§­ßëmCÜ­.èÂýÍ!F÷ÚòmtSîÀ*–·ÅÝ3Ђ÷Ï_¹z‘—}™s‘<û‹Æ¾ô†`°ul’$ÔwÚÒì~’¡Gô(ÉÎzN—¦ï³Míq}Ù•;çæ[Ò•Á¿Ë~&!O¿Ïå7f«Ö8éhKLD8o¤ü>¿ÝßçË,Hÿ@ö`ú¥ô éWÒíé^ÎðüC~:•î‰[ wü‘Öõ×u¯âoWcZ[áÌÂK¡­0ÆéRkk ú)>EAÖ·zkf® ].Q%Ä£Äw”àŽÙQÂ:JLG è(Ñ%”ã,±Íg o>K„óYÚèÎç|–Pç³D;Ÿ%àù,1Ïg÷ð|`Þ³„!ŸÝòÙ€6ù!¢’&yŽHäGˆA>Lôñç€;^8ªfD|öàÃgŸvø,1Â)>F4ñã€/¼(ñÂ8 Ä 'Ôì  €>ü$áÃO;ü4Ã_$jøK„ ¼ðW^xU;ª ¯)@‚¿®f_W…7ÔìªpFÍžQ…7Õ웪pVÍžU…·Ôì[ªð¶š}[ÞQ³ï¨Â95{NΫÙóªpAÍ^P…‹jö¢*\R³—#4H© ]*H« £‚Nt© [=*èUA¦Ñ0îSÁnìQÁ€ U°WC*ا‚*8¤‚œ Ž¨à° †U𜠎ªà˜ žW‹º÷&U0¢‚QŒ©à¸ ^P@ªO¨à$°ÏƒÓ*xQ-êñ½¬‚—€ŒLôWUðš ^WÁ*8£‚7UpVo©àm¼£‚s*8¯‚ *¸¨‚KjQûU˜¤ö»*ÐÿŸ$Fû$¯/óú2¯¯ðú íѰ>•8›”†á‚­ÂÛ“8;{UR²xΪëç_çÇÑ<-ÑÏßsÏOÛç/âù5yþZˆç/£¸x­ÅÅ«h3.^Ckqñ:ÚŒ‹7Ð ¸8ƒ¾Ð¹½ïr{Ëæö¶Íí›Û9›Ûy›Û›ÛE›Û%ä6¥ —ÕìuU¸¢fo¨Â»jö‹ªpUÍN«ÂÔìMUxOÍÞR…kjö¶*¼¯f¿Äô3LÿÓY³ª0ÅþsžW¸Î‘¸£‚»ª sü"VäÙ{*¸§Š_Q…in“ÌÍM ø3þSp ôÈnQj1÷—UávôþŠ»— ¾¤‚ë&y0£‚±¨à‹±ººÓ±³*¸{ ‹º{pW·ctMfb¾¢‚bæTðåðÁœ€^|U]y—‘òZ"ÀʳÿâØžö¨X …b@ôåìPÖ—sÚ wNÖÜÂëªÁתޒÓÓM‡y´sK‰GéB¾XZ­Š…Rm•€Í}óe €¥ÿ…ç•X¡QÁÉ¢år®\©‹–<½_\´göH¿ª%i O6ãÒV+Õõ衾/A(ÑEnÎìÍœ@9ÇŸkÅš^ý©î+K¨—²M˜äÝBEÀV—–cVÝáuôƒ¥|õ¡Õ,ω²Ð†Ícˆzy©K‰¾Ô·ò2Tos·«ûdÎØ¿·…†G â:ÈL3îr®R3±Úê}k׫SdÙñsØ’£}0ðHÚÎÅžýu§yŒ»¼¹/WÊá³”<³y¹”l»Â{“¡É ¤å6—Aø,–±I«å®¦´xKÛ!›9B³_Ý#t°<Ž¥$(fsJyÜ} Øfv^,!ŸÆ>G»ïWƒüÃú@câðU,´›ùìi|Úº´]š2Ðø8leÓÒ¤–_È«]¯šëd?à›¦¬Âæíkõ‘{=ßkÜ‹ÜÕ rmXÎ,÷™3ƒ##§?YéW3 È!²WJZ±¸`P[,‹Lz½“_{úÒ‡Î{—bœQÌŒ:8¹Ø%ýÔR¢¼A/ÒN—n/´XÞÜèCT„|\„€\üFÈ•—ò`ìB›9?vNNç/X.Eb’ҳ筽Œ§—îÛm© ÔhV­/4T½ añycDÍ­¨E™·f¾-u3G&&°“t¥ó6Ë‹·Ù{[ôÑÙR~é~!ÿöÿ†ÌðŠ'+Ï ÐkîXmîXMÿfd“ˆŽŽl*ie[1ðÍ<~˜èqµh [Mì(<Ô‹fP€Œ/Ú,Ńê±V.ë΢· ™ýÿªœûJxÕB×9»>`5×*úŸ“Ç3¹ã¹›Á¼æÊ¹kùûµ‘œ<3âVM–5ï tJ$Þ.OM8uýÖä™ar6¥ÿ] Ê0ˆ¤ÆÆZþ×+«¹ròã8»ÒK¤^'€,ÇYÅrîAP ÆsšxëMYï°º ¸µ S‹‹•åuKÎÎåN¿ñÆk'^"›“™LmO„~ Xåö=w¬!)àÉõ¤g}IP‹h☩5>¢ÌÕ”"B4û[¥1Óx¨ÕûIzË, °3ÞhõÞB,o™À¢9·*!¢™n™ATK½u£±fÿrŽh±ajô«ªÁãÞéQ⇠¼›´H΂ý5ø:X«ù¨…üÖæÿÆ=n‹ÙhN“õ˜õwÔ¤skoþ–Fßâ Àv]² íAhru¦è¯£Ðæ¾ÁY"n¶ßàX·âÍV›¼5úâ÷¶ÐаµÁy#â7ÐàгÀØø_˜¼rujêêÔJÑs´üïo|*úrÖϯߞºt~Z|$ÎcH§Âg)y69uÉ&×—’mWxo24èÙfÐ>‹elÒêiÕ”Ïbi»#d3wéê•«âõࡃåq,åÍç/N6§”Ç]ÑÇ3×§/±ób ù4ö9Ú}azòü{”©b‰ÃW±|Ðnæ³§ñiëÐviÊ@ãã°•M_H“Z~!¯v5¾j®“ý€oš² ›·¯ÕGáë¨OÔI$âÎAŸ‹¸ƒO³»JÜ%¥Áûd[Ǒ֮<[ùµr‡ÙÂ¥¦•QK_™V8!­P?>ÛÁ%e½ÛV`ª, „`ÂY©£Ôöo⇮.ߎŸÿ???š'Ñ>–¶°¿?”9˜öéôïÄÏï·%Nÿ·øùÝÊü¨²g?ŒŸ e9y,ú›ðCÃ'à‹ÏFÿü|„ÀÕÊÙ(›@`ŽueNéä<€‡«?©ìÁ×oÅŽB§¿ ?ûÅΓvUßZ|þüüˆ²júRVuÿ?”Õó’G•Ó¿QYÅþ7”=ø½ø¡eµx”ËÃ_™*üü~~=~°Ë‘ã‹ß†Z€ñÈ‘G+<ý»”=Fà¹-Ri›JÃ1?ÿ:ü|¨ÌaD£ŒÌ‚rBšO%õmmIyŸé¿ÄS>þç/:Þ~6“îÈj=›8Þ¾· ÿMuNe[ææwy鶯«w—ßëéÿü]^ä?¹ó3 Q[ÿûò¾D›ÞâàÏ"ñHÍü‡ÿVxüõëRýl‹Ø­>Î0o$lkWƒ6cL:›â5MjgÛyMçt„`mÃi®p£`ô…Œ)IœM:íÃläa—}ØyØcöFî²û"ûíÃÝ‘‡{ìÃÈÃAûp¯{8›•Ú™ƒ„°ž]8T0·ûxÛko÷+ÑÆýƺÔiѰ öóís8öÀÅQäÅ1œ‚àâyœ‚àb‡"¸5G Ã8B„×ãîì9áѸ{tgDx4áÃQêÏ›è°8f:m£×¾È‹1}Âе¦æœ}¶…×xqçGÁÎ>ñyütÆF¯}ÓF¯…eïYõ È6àwï|mtìø ï|åèÁjôå׸pž:ýâK/¿òêk¯¿A!ÜÞRßåïÏëÝÈù /M^&ú^.éêÌRõ|7O¸Þv¹¹Ï›¹YàIVæMFnª¼é’›:oÒróˆ7rsW€åæ¼üsAþ)È?—䟚üsSþy,ÿÌÈ?³\àk9*_ã¯(6V£PͰŒD}³°Œ"±|ƤÅgl3g©š…LcÖf]XyAà i1‚ ß³ŸK€®q‘Œ Ftg4T²8…¡s¼“"†qÑecëI½‰‰Æ0æ 8røoÞZñ8×M¬TˆHÐi2`N H”ï¦5Pó—‚2Å!rNyušÁÕÓ[PºX711ÃÀ“¹cŒö$ŽÞd{GÄk1Uƒ˜&îÓEñdvÑéêØë^¢¼¬ ]è:Nß&©§Kcèÿ/úM–@3Z Æ×z‚ڥͰ²jâj}f<ྻGÿåôZÙâ¦;*Û­âæIÎï3fÊ ¸ªUƒ¥Ê£€u[©¬­Zc­À<(a²ZPëY¤ª¦j@ó#裺0êìR´˜P¶ÇëÓëwÖl'5yÌ?dMn‡5¡yø¶ð†èHŸ£ MùâA.Ârh§wÞN‡”ŸnËv¦ý”Ïf¦Á×0 Nyð %Þð¤åm†oh¹-1ØÒ¼ÈX¶N À–µl]`;˜ÔSÚØÄ«n$æ”’ƒb±Z gÙ_F˜ YOÞA|óœ3Q©r˜£qÜhù\‹NÅ`‹b½âN›öB;4t¶c5OMÀ@´]µyûý> Í+~#¤èKL™Qœ#C®Îœ#-–iauÂ˰šÌÍm„ŒîéJ³x3;)PË:ñÜÜ×Õ6,lzÃâ¿a! pf´ZŒðô—[”+À°…GíKssߨ®ìÎhÙC­ –BvRæ"­£Ì#eZFê<£ðGÈ$Î6,«ð§± ‰XÃ#õ¨Ùz|Ò¢Ž!³,¨âsu¤£þˆ+Øñâˆ_-¥Éze9R?B(œiQ¿¬í§Z©8¯WÑoß®£U\ÀG¯aI‰PHŠ{”H}z¯McÆ~s;2Ù±0ÄÁÚçÊ ‰¦U±H÷ëT|&bÝ™q¯o‹…“¬\Ñ+Œ¨ôéÕ½¯‡B·¼nÍÁR´ˆïDg/ðyíûøm·æô߯u-Ãe%cݪJzq n:äPËñDÿÍÔ³°^pLÍöØÃßìôÌðË®¾ðßÂ3äµUf1 ±Ÿì¹\x|dÎÀ¶ k‚\º=uÕ(å·‡ £_ /EmÏyAèq;QÍŸõçÅ£¥üš¦}LJq0+<’µ\‚Å.éÄ ù,<'l‹Uª”›Î(õ·‚%À›´U›~ ?TwÓÈ–´§›rÒ¶£q.Ã, ç>Uz蠟lÖך´Y÷û¼½ægøÒgþpÿî%’Ü¥½—<Á¦ ‹Ç–» î;èE,ú1¦ ƒ¨0tÊ›–© +z?VßH¥Á×áTM`ÿ”ŸMe¤ýøî¦ò0(?jn›šF½†obM¨5•6»QIÙJ»Ù¨LTˆf¶‹F»-‡QyØ¥Š¶—JYk¶,iiKìÐB®/o®zK¬Õ#Üùƒƒ~f 4‰.Fý…õrvk(BÛÉĬ»Šy5ÝÅêm0ò€uæ5‹,Ó9…Çq¤TÞú^M6‚ð^3åaZB¯á¤ ܯ@&pQ´›0W2«Oñ#•‰`¼˜xY”ÇA-÷+‹«5E|4Þzl4RçJú¢í9ÙºQ»¡»UÄ—Z2 K  ÞDÖdwtÔ()0*lj!Þ†ÇÒƒ€àG»¼„ž,Ýüo@,´š7¬§UTu ;ø ™?ÝB¹Í{b‚ìªÚÊS¬ÍVPê;k›JÆ/ÇÃds-ãâ]ÿå¶«½ô†ëðœ{›§šäžM/Bí^ ÃÕGRŸ¬ó-ÈSýÏGÉ:Ób Ðëj ½‰bÓ N¡ü­·¬XP*ýeÕ,\91o@Æé®ou Vƒ+òåX“?EgððçÃreoòR²Q:ì|Õv‹¼Í«-¸%<žpúI­xÊK'Ó]Ù”þm –‡Â¯ZÆäè•èÛHL¾ éS´7)€OIÑoNºÿŽˆV³ «ŸÞì#þ¯)Õ´÷sß¿mÅÍìˆFßÛyá4Yý …ÇCbð–;^Rp_^å _¾tï8%\e$ñ,ñŽ“îÎ|´rT‹ZGµ¨ÕÖB Îm Op~óór¾T d ?´4t«º©íÞªqÜsÔ "ü[ÊÚú»ô¼î$ºa¶…ÒûöTë‰ìé§ ßæíúoÆw:b–ÁrøÝO¯sÎr7ÑtDbµyƒL f€•'ŸH Á•»ˆpãoÝ>ñwö‹£es¨ƒÈêÖõFw)R ­…u £üä·@ùÑõøj´jÝOSµcªæIÕ\aéXaǤ0!ŒÔWòwu¶Ì§äŽ{mè3‘¸ÙÍ3å~½êîâªÛÎUWbÝ5gL^%Ð9N'¶ -†ÉM£Ëê™Ü±šYviGüËʘöÙé2yóâùZn°$&_r)F+"•_ÕiîÚ4:t }wòýÜ”¥:Œa ÉáyÄ’æâ-IÆLÌ%& À`P¹ðÐ ƒF\½[é!Äý¼”¯Õæ¤æÿõ;ÃÉÑ£¾O~KÓå'ÔsÞ½õ{ûõá½¾öõÓz¡lóœMµ›Hý†‰D¤N•d‹‰Ôôv½ÛL¤„Á,Y<þL)–.!H¤ë¡,;s3× Dg×SJˆøºÇ}¤\Ö¡ëiêð÷QWŒž7…ŽX1ÿ;y‰™…GÄ!7+W›34sÃTâ†ÕBÛï¸äþdsÛÔfåÏ{žá"æýÏ ÒA9°‹­|A4}F†1LûÁì´ÞmPdÔÃÎn1Ý;‰óµÅtÏ4M÷~—81>Ý;·šîᜦ5'vMœ%ÊåJ=W ‚* ºq.g|À[qˆQ¢ÓöiÀM8†n«¸©Ç™H+-Úqš?ŽÍp±KZµ‹\èð]«…‹çd‡,wˆÙÒŠ×[-ÃYÿQlêÓØª¥îWÚâÁåû ÛÎ|숻»ÃÄ¢êõ^Lô2Øb/A%ºÉ„„VE®¨rÜ¢ŒÜý2å„< ŒSV£(i"e ?ñ"¸Œíjí[@N€£[ÆÇ—î]l ×iںɹä~ÖÝéà2¬”~ªÿfÖöHn]&7ì­•n½Ž¶ß…ž#PÝÐÞÌÚ¦$}‰á;m|Fy.ïq…ààE¶ 7ŽºÃœ[×Y}Õ²Z>)W„&÷¸Eሣ Ò~+Gˆ´i†£'‰9°±7ý¤õĈ.H…ž²¡B{ô¨ão—Ÿòi:ÉjÎýP.JÿK§ ws-¤3ñ~š‡rsD»™…=ÐO'ÔæÒm@=ê´<ÜìUkßÚ‰ô}@ˆ#Ž‘J Ñ}jcŸå¨î•§Š{!ýº¾Ûxt|ŠUaJV…}V,;®Å²œŠevÊ•³ò“ú ý7£?[ù»&†è>‘_öA^ªï…Ù ¡û Øš~#rÙä”$Ͱ°Ÿö½Ã&xP1« PþnZÔ¢1Äiò¬ýB¼ÁYæ×Ç÷ÖdøxyZ*xÔU°Ð¥,‚ÛaN»}œv{UyD’b·¯7^BÆ=ëTÄ 0¡÷*‡½VµxWg´WzcØEÅÚ ‰p‘ÇÆmì•i×nzÊü“ÆÞXy>Á ýþO«û*÷7WzHÙJ q­ƒuÅPä¹ÄØÖZ2©"‡äJK»qf “â©u¥ŸÇËÝ‘E uvý´rË{ºŽÀ3€o¥šÙ ÆŠ­›oên2êWæ9?ý ^øå.~y9þåA~yZ¦bÙrQö•þ³-BÆý[‘"®¼ç;²å9#úl4ñÂiÁíø`ùžÇ—ý| ýyAÐ|óöy»Û½MEß‘·{G—pÂÅq^§ŠåS `¼º5Æ5Ò|¢>ÁºÄHòn[2jåQR÷7f@ÍczêÇ?Ñì6Ü`Pgºòãú ¬A,ßrè–o5á‘ÝI'•MYxy‚[ý€)Ñt·{L3n4Ü îÒà‰k¾Í³³rge—ˆ]ÀÇ9lÑ¿­¼œ…VÒ!­a‘`-¼è€Z]Çz˜Â‰3)ºÆ*x`øïgÈÇ6³²J΂ ˆiýÒ°ÅC%_wæKÖgf‚™$ÂyšÂõ ª°ÿ[Ä…ýÁà€ð¨è±šÀpEwÌ>\»d9}Ê„ Çl0í;âÚ—P,2õ ’êV~KÊ›‘ºÔõn~Ðm_vãô‹íÞÊ{–ÎÉYù½O_º¿Ué{Ûõ¾¤e¹vÝ{ƒvµ|Àêî†bŽº´ºÃßÄû°ÃYí-+xÌIWG€§¤ßcó¼r]š:¦B¿¼‹p¤æ1Ú+ZŽ[;m&šdÊ-˜Ü7´•å{+»;d¦úÑ†Ž²ƒ§¤²(Aä‚=¤Ò?ªÂÊc€³ b”wÊ–¶q€ËµÉoÌ6I“$ÒÛÏÙÊ·â2l˺ØñJ8ücÝ«ï¨Ãah{GÌú͹VolWfWý!–CÏN,‡„X©•É´&Õ]–TYñ;¤>ÂL:ØŠJVþ}š”¼Þ‹PŠ.ñŒ~–DļðôÒѾNýA80„×ÞL?k§Tø>Em´Ø.š&]Ðæö¨•ÃÁ~Þéïä?f©Ë«K«r¯|}ÉÒ|­¡P3iPß?¡)&Òî|XÓÖ]Ì4‹—9‰ggÏZÌÄFS³¼µ¿¼Í¸ÛzÜðú8;ñ—2”7Éþ:£üñEU·‘?¾Àƒ\´D‰4W—íÓ ì¿`*A ÜÜEÐá]î;TgÜN7@ß}Ñm”¸éáÖý-þáïÙp_ÿœ8xˆ)(.ïð÷+ü½g<9`Õ²ZÖ–ƒy'˜³éf~t‚a™ïç N¨æõÕ‘vBûw¦]q/ð÷ku÷`œ¿›.AÛÉ1ÀÑ£|‰F’س¹(G„Çm7N䉥ÕR½¸\ Ì3f?ÁßQþÞà·«È©X&2}ðîmnãm)–#î´ê_-?,Wǵì1zp0òQM').ƒê™Ü;7މ{ËîâVË÷ó%˜Èô‡Õ \×›Øb‡ µõr=¿–£¯‚©¾äÆKn(Ž217‰UI,gjŽ2ä„—N–ô…?¤$qÏÄÌC¨Db„`¨ä0ïšÛë~ÛðŠ&„ÛYž£P±B ÏbP—c_*G@§aEŒ¬±šœº49}S¼×‰Y@ÿYú>_»~ý½ “ï^ºy#ˆ3›y×mÂónONÃÚ–¾PÅ̼{õÖdè`~óÆäÅ«ˆÓÈŒ©Ï¥B–ÂUF"^ÑÞÞ«&B!8-º€óÑg/ŠqíšÎá»ïºØ?@Ê®Š Ç‘ðïÛnìˆx´â¬\ÔÌÐA4 zG\žšR‹ÀsU:§2ú=5TŠ¡/«ôY5q}¶†‹ nX¥\qSÑ-'·º+oŠ]béŠqÓ¶-†rbˆ§1Ï®rŽLH??êºù¿·-“êS§ö;]ãØ™t‡þ]ŽìØ®7¼f»RH‘=ÿ»ݱwèýŽPØù¿ÇuÛÁŒŒ zEË_ç1z6!VÖK6ë'ˆÍÛF¯¨îºQ(áü$:ý½Þ>¿ 0Ð @6·›wûô7{a—î @ƒ”í¢­Ú€~Ó®¯ûý>†ç.æ‚=‰Qýû–w ±Û߫˃Ö~—/aÌ$ÞDBõÒçÿ6o¢`ìåÒ§uMºõ»SÆ?©Ë;èôQÃ.Ó¶.xÿ²æ¶5ø¯ÍëñÄ®¾Õ›.¾µj÷å Rfxê ¼œN•åSÄ¿H3§^B[w™¯ÑÎôáåö±ö AìKôšVætiºž| ø6§]:¯x}¦…ƒzTú¼îD·AS¶ÚRwÆ ‡¦¼™Œ8âHüŒ'¡/m¾æäÄÇ Д“ÆèìIÂx‰Óü¦ÍD°¼N‰c7xöY2²sг뜉QìrÆTxÑ­Îe­œJ«"£žã¡| Á(Ÿ˜£·DÌ$kÂvkœ3ä¸Ì­‡µœ^·”$äÊŒå7µzUæû°ãÍ–A‹ójv=»qª|7—î·Á5ûØ1]h–½"úœ~^‚@ÍØ®ÎŠ!ˆ¬|”@Iýœ––D~jö‡l€p|¯(cÿ%¡dªæÄÃÏvôQ} ÓDµ×¥ëtüI—óp9Ó’oÕ~&e€|¤B.SÆ;šø^WÓš«éÇ–”W[ ªÑŽ 3"•Ô{ip!F;úÏÿ‰Î¿Ö5™íìÿrÿ‘tBÿ—NçÒãÙ7ÓÝé_Vûz¤gâxYùýÕ¹'z®áfŒõ|ÝBe}Ï_ùÞ3Î ëö9$xÉÛ"RˆƒÉÚa|ƒO‘µøO%Ÿ0P.+<ÅÅ#†à‚ACpÁ¸!¸ˆ‡ 0tÈA†9ÄÐ!‡:$ÇÐ!G:äC‡fèC‡ Öé9b:% SšhN„rj#ˆS‚N>ᛎi‹°j5Œ÷EËCN.¬–çaVT3èºzÕÛÙ:4ËzW»Zª×°×­Ô&0*£c„ÚÕw%¹Èdn®..Ò^M°xÏ䪕¥^犌Κ;žip!-Ò3’fi´›£s A4jrÂ+ñÙ8g½ñ~¹ÇbK#¯¥J!ïG®¥)qМ»ú¾ž£àÂ[´(Ný_Öý„y·(Šˆ‡‚,B» ÕÔ‡¸¦oÕ4Hé§T[Í´âÌ °¨ ºµStë€Ü†ØcI5tê?O¿Í†È ´‰@ô¨^u ði±À¡úB pwz!íAô(½u©ü€qûp/%¶nbjö8LÍ} ƒý H·Ë==á ûÝ£ƒöÔÂ~sü=Âßa+;>geÇ£Vv<Æ* ²JÏóz/¯Gx=ÄëQ^S‚碣Aà“‡øðH“ZdDú>€”B øòl#qÊe&&ü0†R̃Ö#ÃÏ=öüàÇOLœ<óæÙ·Þ~çÜ»÷¾2÷Õ¯ml~Rª¡nòâ‡1dž§–“)J2¹éï¤  ¾ŸÚ[¢ÑŠYyßÊõuƒ«Ç“§¾á¶j£µñÜZ°|o,wâmÓ©™LNÿïær©X'WÉWWÁ, ¨äø™f&èòÒŒkn±\ÔC^ü(ÈùùüÉLªðõ8uP¨ Ït/ Ñlù=Mä¦*uz4™øÆÕ`¹¤™A q†¨Œˆ0—ÈÐk–†,4‘èÜ4Á0Á„4‹òRnJÐVÍA‰SóŠMÖÓ÷ ä2ÝVÑF¾œ‘ž3•–C«N'3f¬¸Q8Äe#†Pºò(á­õ>¥fΤÂ]’uV²^"ÔÙ[kç¤Zî§-F¬µ¨“OÚ7P⯞©ízmõry“jöÚ˜h¾ÚH Ž¡³+E†3/fcªù”Þ8KªWóåÚèBui\/,M4ÔW«e= LV SxÔM`=ˆ/¾òª2=Ž\hÇømmµ()¡ŠÒ+NÏL?ÚÜ‚‰6ó¸–ÓÕ yÕ+ÌaiU/Îz­3ës Ê¥ ¼X`(¡6m…£òš|ù ÿ(öÿ)ÁÙÀpA,«•%]Q»Wp0Ýd±°”_¾f°Ã–³¸|ò¥ü¶(a˜FªÊ$8:é­Ïm,´Øðà,mŒÆ̨pF]š,ÚyæÔãõ«”7àIP¢9š‹êŠÄT¬DÜÊ % (ð¬oq·w+ @-N%X®½”ô ™#Go¾²t_8´³HÕÅ,cÌÌHÜ®IT²‰¯Õò ÁÜøfmõ~­^¬¯ÖƒÑ1F"cÌ|Ë¡~¬c*Él·ã7ÁÛft&ƒúc ½üíà‚«º#ªë!j9¦íœ}*Þ²0 Ä}ZÝ­(0Ða²ãn1:ÌÌ–ßq<À‚•ûQ¥úzO/t¦|H%5•@¼í£xë¸ÿÐM‘tÀ*Y™#–luÅi±'ËW&<֢ P£€›2 ë MDÝžtœ4«%ruì‹»è‘X1aYÜY3#Û¦»%É£™¹[æÐìý ž'm5Óé`H§^ ÎçTí¤NKê86 ´Ö¥±Úè;gø —}çÆYÁ(¼í^å6ô«çr“‚NV VVqÊH¦ò¸’cª"…¸0t²(ð=ÿ'™¸Ô¤Ý¼•ù‰‘DKh“É×Ë}½˜…Ùln™‰¤kÎy˜3Ò·M-ìÿžË]שš+–J'A¢¤Í&lÒaÄóvQr¡ß!Ý,†zEq(®X"”Mô•ñʘx6œ¤¹ˆ¾y€0>¦(p Ü#Ê…xPwêë tpÝ‘‹.þv« OdⶫЖ$ ñMÆÉÖ¾sa”$Ì…|Uó%*]Ä&¢TÔJÂÈÁð‰îkÉ^¢æë‰›¹jÅ! p]&a€ ¶ .\YZ.–$näܯŒ¶ÌMèÀT‘nýDVo1+POa ·D²˜HÊ‚@ Ò˜ý”i[N-´|Áò›”—JsÊÚyÕ<.©8Û‡J†Nð³4^›MÙí¾Ã‚.¦-èbsñ¡ñ:ï¤v·8o<ºÇßS'Þ¸w¼¸ërܲ@ß²&wꟋ3¼·¶èî'* CøeM( Â}•+÷‰ÅÑ‚Yhïúó”ƒV¬ ‚ç”9Äö`7c„-Ì,ºæ´×CÖ=i_Ê‘¾™æuð¦~ç}™‰¦¹öV4C_2ü½.Ã}‘ a|«S âã¦NË8õiS²}˘ŒÍ“Ô7Eê6“O‚YŠã!½ ‰óóŒÓPl‰Ü |ÞQ$çÝ»[Í;ç²¶å¼#­ÃR‰^˜ŠN1‰œ]vË5_˜ Ø›€2c\Ìî-'œxJ}–ÙÆyƒMk8å~bË)·Gj l<Þ£DJøÂ¹%»¹Ñû$öݹ¸c"Ãñ7cZ¶ð «..ŒYMŒ¯è§ÛÒÙô>w ? 1e'É‹j]ƒÕ壵­Õ9ó•åu§VŽêVpH9bpw³Á9Œª2X„gŸ56vlÿ«²;㶈 Á§V^¸¦Ê; ÿ•—"¶¬<ŒMÿñÓWÎ|µÇùeüÔõçë•ãÑD¨ •=\˱áòQQïfõËZ¾Ek;¢uÚ²Á€4þ®Á©VÑ,º\ƒem1mîðD9ºÔ„©ÓÓG/"5Ý5á)£¦£ÀLìC,?í-TVË­ÖÜŽžÈ’0Õ¢™ð‹»à5 µ;i&œóªOÙÎêçÚД«ÁNZ Ì‘÷ž©¥?‡©¤ëP7 ½cXPËvšY‚†ˆÃ(]+ÈÞµÝæÔ¶Bíw˜÷d­çÆõåF͈”M²ã³ÜÉyuÐ~Œ™".:çó[ Ûµ“îÃ1Â-×}íOÑ} ã¾=™4õ¶35˜¦èñes@!Õ ±ójBãÆ¸`þX•˜wÆŠf(E@)ÙîoèÞøAssï´{MýOœ†áÞ‚–W«A‹žG¢KvÒñÅ KÏÀˆRX³?½ç› ÷AqñÁ±}OŒv~ JMszÀžß™Ü˜žÇÎY/b f¿¿Pªä›{™OÑ—Ë0P²ÜQUƒšµàŒ H±¼X˜0Ù¼oµµ®Ìף̯H‹'KEN ¶ LiëuEÊ~8IÝšv0X‹Û·Ã ~”»ø=²‡È¤IÈH5m§OÅLrÆ„‡€"Mjy‹9脾'ŽC§\+Þ/­çt-惂Tvc‹eQ$¨ôÔx®X·²Ùü-ДŻ<Èl}#›2°ïñÜ)žqÒR߬éâ™Å©øT$\C‚’‚la¶«åRP«…D'°¸9 K„vW}Ê®—>­ÇÃnµ7òŸxª—Þ-ÈçÞã)×ú§ërl‘ÿDS—ǦnaªSk›zÂÂ’)ž4×çþýóÚ2ºf†£inäa^§Å­ Zœ·µ&½ùQP­8§ð&Ø?³oìÀØÕ'68v`¢]¿æ:?Òñ¶ Ñq<Ð/ÖŠôÒŸÓ3£¬©2!_Æ’JÚf»Ø©ÂÍ»l7v/Ü þ‚g9SŠqèw¿c½ø/(‹jRÏ߯Q ÀEñ£à™´ãpáÐßGWTcò/jD…ü2—T‹º¯"»g!¿q-",ˆj$ãfÀMuÝ…•V—Ê⇀w¦¶¹Q«Yz}¬Åf k&-Ḃ‘óQ‹.úÆ/Ä(Ø2Œ¤íYØøne‹;³<}F·É Þtqck‹p±ñš·ˆÑüñBP hF÷”ã0n¶p Î4¢™pêIé×J£Ò!çJå†Ìœk¸Îæ·ú¡ñ׉dOcûû®`ÂCVS­¬.>hÿ›ü¬Thmý£^b¶ç™pVKì*hZŒàT‚&¡@ í¶9ª3jC´5¶f @%/¡ª íHˆ;ªás$zÜ‚J€ÌòÝDLÃ@wÛÎŽ±*E ¿é Ó™/±&Ê>ŽÙ;¯GÞ9¯E:-DÜùÖù †­ÀÞZèlSrˆ­¡3> œèÜO?|Ø¥ÑN¶l‹¸u}9Ç~XãH¬_F€ƒŽlŽPäì2ì¹ã· ñÛ’Ü ¦Ì:š8zÄ«Ã)-ë$Ž\x8ÈSf°tÛ‚  m!µVdT¢Z°}ÂÛ î 'µˆŸñô¾bC4†Ø~kvêKü0cÌ § êy•8@Ú•NßêÚÇŽü~~À5’1枸Ò?rÃ𽮸7]·|ŒŸowmÌ»Zöýë4T@¶Ù ¿Áv¤téšÏéßèZsc Â÷»žø6×ètAä–°;†}÷]¶¿_þ ë¢\ß1L½R±ý6±@C5´<•$†ŒûíæU_Ûo—He»R^z í÷ïèŸ5¸ €ÜJ§3Ùl6“íìɦ=Ùl§yÚ™îJw™T™lO¶W?á³lg¶_?éMx‡ CÇ~øc?¶§ûŸêúá«^åaP¶Ð_}éxý:‡êÿ=ïsB鈮§Åçp.AæX.Áä@.Aãj€â‘Åu˜P\9Bq!×0Ñž#tÃQâ6#hÃó„k!PÃ(!ÆÅuœÈ /aœ 'ˆÀ0Aø…“Ä^8Eà…Ó@](¼¨f_T…—€½PxY;¬ ¯¡ðªš}U^Â0¬]RÁŠgð‹¨šw}€/ÌžUÁ[*8 i]_ˆ!¬ 꼩‚×ñîìÊ‚çé¿™Âë˜á ^¼£ gxqNÞ4 ÁU8K”àNÅyÀ]xK/Ø´!…›Ù-PCÎ!æF©/"y0<6ñô`ÔBÉF1O‹XŠ˜>EÌ  ³Ï"¬.‹)Š Ö"xu¬¾HÄH̰"ü%‹pí.#¦¿ƒ"¦cS¾§½b?hJî{EÆaƒY„s\®Eø¯1Q‹°ã,b%,b*aUZĦ´÷‹"||‹ðò)Â˧/Ÿ"¼|Š`vÅW”%j}\°Aðaƒ3‹x"Ó´÷ÖÜõË—oNÞj u›™â‰tóÖäôûW§Î_ƒÕû–ðL‘¢ÛbE³‚δÄbbíºXÎÔõ)[Ôõå7Å&LN]€ìdkP1–ÙÆ2'¯_žŽ”…_ƒóÙùk‚>£Ùñ&½>ºÈ¾DzÏ ¤-1z‡ègO¬pÍ¡àE2±ÑŒe|·¤ôÔ~I8î^Þ Æw»š)ŸUIÝŸRž·Ù+!p:AÅèÞEˆj^=|Ómf©Á‹n}?!‹q8pÕÛAå˜y@Òï«ÄÅnºv·' ²ï—$zŠìm ü,3 L+A½S˜ DÎÐØ@ví™|ý€ŠéŸzƒAçÏ®ü åé? FëÉò„a6Ò˜3¨‰iwâSÚ}x»vwlÛîŽH»×Ÿö¬žŸ‚룛0k|y”1jŸ™ò)]‡£¬ÃQq“u5¸w¦ÜlX®×¯¡e—îaì¤×KôÃІg½°¼•ãþ °í;Œ+ñ ëý¦ôšôÄæŽè‰wD]P|ÞÀí>‘ØŒ¦'hãOÜ2ᦠyâå^-Ï—V ÁIÃs çZñþIˈd}õäu ƒÐ߉sS;£Ÿ+ Årp'—¾‡¿ã£wΟ˜…ÛùwîÞñ±ÈK¾¡WÞù9ýcž;qBhÝ: ôÉ œ×Fƒ¡ê´ZúÎ*ìÆÍ¡0vãK0¸ÊWBJÁkñZî­Ü±™ác.£`ÉF&~½fýp…9\IÊ—‹¥` .ŸXS*«uwáÙôˆ–Î –¹u¹z=ôâÑÇmC­^П‹¿ª7AvëÀ ‚µbݨæò…–Dƒ£Bïnç5Š–«•EÈ!”†! æ Ñ£Ã`ëÎ¡ÕøAY¡ž/¦_jº)¶ ¶9ÒÝ¡iPè(­.Ñ {Btî+™l±tŠ“•4¯¢ì›SV§3Á׸¥àM×yJÐ˱ ìAع’=P,¤¼¶@æŸ&žò^-Øöká5A½æ>¯O É/ígM iDHÙëeõó¬—ñã©úK|Û«ï%õaºœô›4žñwGÉssS£Xbbnîm¶nSçßèÀ©Ûï_˜œ6¸€X¦³Üä †ñøêԥɩ[¼¼4ÉKdpíÆùi^LÛ‹k7¿xAžà‚+Üõk×§ÌÕûïŸçË›“ï_åÅk·oò^õßÝÒYáÑÍkço¾ËG_º`ÿƤ)gòæMVòÊô$‚>ñõäoŸœŠK×3P'¿ˆÊbÄ.œ¿øÞo_¿% ºva0Îôõ”Ëvæ y §tRÞ¤Myr— •(ùÖÕk—$rÕÅ«Óo¿ùÚäæ»Ë·n¾{õ²Doš¾zåÝÈí¥ë·/èŒÑà´éŒ°xÝ#añH#wÛ3amL#Ã÷ì¦ðctŸÜõÄ*(Ϻ£µ “…U Ÿ…õ•gá3ŽUoü^a&œ¿Å®ß`õ&§§¯OߺþÞä”ôó¯o†ˆ™š“­C²XªÜÏ—jaìz9æ{Z<”5Tj’9¶'m¦‚Ûñ^ĦÀ„ë\Ü{¹‹¦·;#WÑ­‰nW˜FâW/'N<‡:’ÑY“ººgqCm—„¹âîƒ\-[}àŠr€ž^t=ã6œZƒ÷mÝ%fÀ-eµlåMúÇQ“ðUüÐm;zÆD ž¾Êâk†ÕS´ Ô¼è:‰þb¡#*uÔoP‰¿%‰í}D#£€Ë ´ ©ÌN°?·ÿ)¯We½!¯O"“éW»´ÿçïzEý¤^|ñ—Uf…*~´T€‹c¹dŸLÚ'—1ŸpqÅ^¼k/®ÊÅì+T'½ªÖ4ô¬ê…†)x Ÿú÷ìÊoMÌ}“ND¼. ~&1S˜%èœ!&ê]€ú¦*ܳO¿âžžU…9ƒ ÕW‰öù¶*ä­ê¾Ñ@çUažŠ§/rKþðPAƒ‹ÐH/qØÉ-ù!=ñu§Mšú)B2/Kœ¥ïHò­~uÅ>£ú çMFùÙ„Q_?’CÆAi™'‚ªbx5¿„ÁÅ  °Ð`N$òQÈøÈÇÄyü֟ÒÖõ¾~ý°&ç“A~)WYÈÔµx-ˆz&sÉFÖŒ Ø|O”`/xŸæÔ&iÄéÌH„× €§J;)–£B|TtIË«õܨ®Ðð0›4yýò˜f›R˼r‚‘C¬¯ñG—Æ3:càópfN ä€Ü(ÐNí¶r¬!…y _8ŸœÑjåñ¸9ƒqÑÄÅ>Qê#õ¯×Â|ÌÿgÌ¥R-.q”ÇNµ•Í\å©p!€= 8or‹eÝWšfÜFÇN/zÀOÊÏ×KëãúC˜áðÙ¬Z)¬¢vе i†Û"¤‰Q3ÊqzX“Þ½~ƒ¯õgš¶R­e2׉â¢ÓW×Å&¸fœ—¤ s¥JeÙ‘ã¸<uTÇbéZ&y‹Gd¼Ë䫃γí‰Úûº‘ÈÃhL4'™ Ïûùù‡‹b‹ÎêEίäŒwŽîëùjñ>,·ïýE/çk51å~%´ûÏa2W/.á´¿<6ÃlÌ'Pç½ü‰¨Ö—5už…“í¹ÒÂã‰Juñí¤+¦Çs“7õÏ­âRîF€sE}ý ²¤ ›ÑzÞ_tè¥jþ!|z—sïC)QÎW+S£yûx@Z`ÎÌðZ›]M¹¾aPVŸºêÁ)#Y$ š“A}] hT´†ãƒšY ZØ+jbù»Áß±Q·!&˜%u *˜¢<ÍÄÄËz£´ª ÅFð—°RΉ;1¸únÖnЄÄÍ,u·YWV‹Rå`mÌ—×O<}9"ï¸ Ñ¬ß&lQ4²¸“»»p·~ï8O¹Ÿ»ó•»Õ»e}‡»{÷nõ»e*ÍîäO|tþÄìܽ»s8NÝYûàÞ»…ü‰…ó'.ß;~§tíÞ;LzêΩ¯ÙÐvÜ9}â{w ‘$w‚É{wN¼pï»…X ýïÝ ¤†Zâê…ZBKM /Üùð ÷xfÏ œbÜùÊÈÝ»÷޾sæîÝ s3v|ļ޾–wõc±ïäõÆÈè;GFFÆÆÂYµOVñ„PL$W6Õ´M5mŸÜ¶On»ï¦ÝwÓöÙm—×íª{æÒÝF:Ö¶Êßiþ®ò÷6»»:"ÿ óŸi¹›–»U¹[•»Ûrw[Ú­Û`þ•ûÛæþ¶¹×u5ÿš÷æ^׈'„ÔvPj£FÒm5Ž]‡²8vÓM¨p[V6«P5‰SV>e"óÖ+ËFbÔ«ÌŽË£’¸63R–°o KšÇ€Q!7žeA²!§6m<ÔIØÀ}à•mÊÄíÀr yè¯x~°RWÞ-X²)jåÆNð÷LúXMÿ”5§žXËXr¡å,ÑkÛ'žÄtIVA·Hå"#!ôrÊ(t¹þM¼,ÿ¼êÚ¹ƒhpTjîŽU(§|‡í¨½-T¡…^ßs]ñ$k‡BgCìÕ¸·¦¼•.5S­ ¸V$mÙaÍæŠå…ŠT%«Ot«‡ã7ÂãIØÝ.•’óþ!%Ø™àµo¤(Ë%7ñ·Á‹õ<,&!âB²õ7jsš+p³µ™†ks¾Yô\|íÛ6” O”ÂÁMžkn¼A… ¿É¸ÈªòoHžÐè»pŒº‘Åé­ä½§æò Âw«ÊCwÌ)< õ5K­"3°Ôv•Ôy #Û‘ŽuÚÔ— «¼r,ó€Ê¬D¡].tP9yE¤õƒ ¼ªâ›e˜ü]k¤–Dö&ïs’½|¢›šÈ«òŸö¼½´RðUå×{ˆÿœ­|›ÇΰaËõÛÍ=jíë<½îb$òeV vЦøbà°Gúx*_ _gùz€¯ëûÔ$ÑÿîF²ƒa².&ËØÂÀeo5¯'ö+ßëy3¦ôh$w‡…ª%êt¬×ÚØkèõÜ ‚vZ¢—õƒ^2èÇPÕ™¼sºzÁN–0d²VT‘|t‡`>ú.§)³~ºêhub¬üŒ¯ž¡È!¡È]Ê•Ò%úªO­ýÿüp`þ…ïÕs†ZÅ3`³_môK˜û~X) Zç]ÆæÝ$n¡^ùM-„TÛU‡…GЬ v íêˆ\ ù›Æ¤ccý¾¼OW4 ½*†æ¨¾éäMBpGiÑC!Ã4ïpŠôsÔ^P–“\bõ˜¦>¶åw|yh¦SÕ3ïMæ¤ÚÔ²;Þ-2߈Ïã°Á¾:¢Š -E4ŽÑÿÑæ¹®Ë}}x“ÓLÏ­¦¶õqöѰtËn•3vɃ=öAeMhr) °7T¬4$­†–÷Û6á ch9ënwëÛÍݶ"ú­/,ÆÖGW8lMc§ntê‰-;~ÐÍÑ6Ð}¼—ŸvË8b¾îUåBCñW{ñ “h¢¹ŒÑ9›ÌÛ†©\î°ýÑŒž¶ÞÌÚiN¶6uøÒ½cC¶SÌÍQ¹ÐYÜË©™ú©m“höys”‘8ÿPTÆkZÉ#êÛj°²Z¬B«X¦¨I!*rQ°ܨ _[ ^ÆAfÇÂ×Ö‚—¸`>“ð6Ý©,·S 7h„ß E&>“ìßÌ…ZØÑ•¶ØMŒY•¬q‘[72sN§€”ñØ2nIaa÷?+‡ª¬VçƒX1‹ L1üd«¢¶*&( |ã?&=ZŽè4å»Çy«d§2™Qhñ.U‹óFÿü&žŠe+‰BׂÖ\ŽúF9Åoˆ@„›‹Ýåäõ˨7Cnœ`ñ2Åÿlpw3Å_Â5UN] ŒC;°4³|óœy󜀊ïß"k={03˜t‚ÙweBó^c]†ß»ÌuôÎ×øïØ½M³#¦á¬rbpx{ÚnDKåÕ% Ñz_”KÁ#Ú]˜N3PÓÆ²ÙkI±C%RsѹÉÁw®Ãl‹/‚ €û0JK‡IAÉ]×n¡/9Ã1ü»\©™H/k‚MÝ!5C*â_— ´è ­·:ä©ÜX[«ˆ©PƒI%jRlÔQì%쇱ËjmYÄMt-X-TX“Nw+Uà†9_ŽX€É£ŠXúBöñÒÅz1_Šš9Em›¸ª"òËÜÊjEoŸlsQtM¢Ù½Ë¾vvSÆ %åú¼Á&xÈmLJF´þø²1¡] -LhB›š•Ñ"„æ#´N¡mChËA ZœSÖxƒF-´å8Ýb„šÿ7hB®«.E¸bXœ¥ý-Ó2^¿ßÎ<=ü=ægõ³1ï9`õzí~pÁþ¯]µéû„êòv©ný7 ÿ2žècÕæïòÞòÛõo—7¢ÓìÒߌ&Ú½!/åã‹>ó/çíõGüAæ¿Ëÿ¾xòA–šòÚ¼“‰]º~£>ÌÛ˜š)ý.]*þu»ýN½{.nóF3¿j.›u’q]æZÊíæVZÊ–Ú̸æRl Íjÿ'RX޾kgŒ/,zÇüª^è«úVBíÌWƒB±hØHYG3Î6‚¼ @r,«Æ@²Ô‚€Î#fîÅ6Ñž’¼'&.40KŸ ÷x~%g‘Â5Ë•ªèòh‹¹÷n°&.×¼»>_Ü] æ#wWËöj4¹¶¬Y©ÎeÞÀñ½Îì;¹Aó/ãÊ|HKØ¥ü¢¹%{ /o’gS«¬jyK‚óéK¼–Ç/1É-2 ùPV }Ýœ«2ù…j~þa ,ú&ÄÍÒÐm—WËe‰ôt£¤iŸ _±Hä•t[¹®³SAòÑɵz5/~ˆò@˰3øu®à‡4Ÿ>i‰ãÏi ÑnŽ6r°Z#ÔÅ& §gÂ%y`«e ñ^d0c³S›3b¹uÑÖbšsq³i˜A‹fH–‚B±>й;GkäâÃliá^š’ÝqÎ\IóK‘Dy+¹w¸{“yýþœ„âŽG¶ÍÅhOXV˜^ƒÖÛ,–‚TƒÕ¥b˃hÀÉ œ±¤hšb4Íj£»IµÛZ‚aH|xfv1ÖŠÞ1mJ øq)úqÝ¥ÚfʬM‰æIjB¨NFZH¨nm´©Ê~٠弿2P˜óíÊþÍÐäò<øÔ ’—ìf ø²l÷ó5£<„FÇ,”]ŒÐôcêŒ H;Ò´* ÁtC¯Op7™ËÁû&7|¬6<¤ÒûËc5 Ö«ÿw¬6%¡3 ÷eÖÍ'âÅÒ’zPzí0ƒìŒÙ õ87wöHo}¾/!ªöºçÉäcøâÌ^§QRÖ%cžI Ýõ]ú¿v¾[Ëà<¸“J¬8ð@óÕÚ—eÔ¿hG½ ô°™²ãÍ“Œ·&xóí¥/ Æ:ÇYŒõà¦ÄÕ„¨MI±ìRз›”ÕeÃbÂq·4lÌË ,PT䙦Ñ]húÏN1ãV?•o§&l½¡pwÜh‘«ÊæÄÒB´3“ð¯fÉ^ N%ê1QÁìÒX cd2/È*‚htF}MĨQê»”_wŽkTíÁ´Ð¤f×<J¥q9Ø” ë$'•y/ ¦\ÝÙml»4½v`û“¡áL™ÌÜ y×ê¡Ñ°;ig ÔEp-BÕ£yÉgL|ØeÛnP$Ûïˆ?­(uô1èì^o—` eT$¤äö 0ß±A߯›2oŽ0ÈTr„æg6e då]cÎëc®¬ýOLJ1XÒäÁ¨i4†ÀÑÊo€¥4ÏécŽã“6¸˜Kô¾bFp0‡ ºŸõL𨄮·–ñÖwÃß|#-'J»qü ižðTf£Cø²|Ÿ¤¿ê^ÌUX±{¥l¾«ºvÔ…§BOÍèj›Ї=Ë«W—AÖ#D¼‰1YÌÛ"¦¬© §ôHýþˆ™½WÜÇšÄ*ú¢.Øô˜¾TrÑ…Z<¸ðÒ ŽÙô-íjÅ–aÞœºžšEO{~3WAäÑÇEƒ®)yYE5tçåöFÍ]å¿bùlUéÄïÉq­ƒVÑ’Ëü ÿwMfÅ-öÓVš¤™6E‘ö9®O¼`ˆ*O|7Ñh Ƀ|M¯sUÙšãKqÕ‚J‡* ´`À›Ùøì³3laSL>_¡Ð3_™³Ë'™Ù"Ò°Fæ×§´Y­æ5s;ýïüC¹¥/W@EehD#*Âûs°¥‡·UϹ6w3<ôÆt“»Ñé’3B -*¡§žPÿëe ¼„¡ ¦ü‡*)µ?ã8†åÂÉŠ‰Nˆ/=ÛyÐGá9k$"ŒŽÆW“Œ«œ±±‰¨]ƒk³(˜ÃÛ†¦apàfÂ2©-]«^ŽA-Sò•Dd·L‰V `J2¹• ªYÓŸ&kJ’5ýAaMÉfÖô›…%t€íH”ÜMñõÏšèsÅn²&~ò€'è€e@}<m`@ð?ïg‚E‡*ëqƒYA9Þ åi PŠÌ°AØ Ã””ÞÒLi£Íê«ýs ®àvýîÄší‰åjEïLpôçNN`¶‡OÅš•\X-Ëw®¢õÀŠ”Æò>¶ãWnò,ÍɈÓå×ñš6òÔu±g_Yͪr¾d窰A,¥nj<4’÷XÏÇš Ãbû9ñY`µ¶ªk»n¹®tD´B@RHÂ3¼0”F«xX‘F³÷f®¸9Ù2↜o=ÒŸñ S°C„Ì.Äp™üsŽWu sØÉ ÇÜŒq\ƱÆPx"`Œ;–ñiðñÔ MÐBµ#Ok`ga ¶çilãiåøY#GnÖK]LÚëñhŸæ¿GÿlP·—gœTn$™¤aì3}³Cm©w„,QsµaÌSÍCr—î €‘H23ñÍÊ]5S·Ñ‚`R¼ m&\píß9 Âm¿w*K@z`B.ÙÑ)[(.,Ä‘ÉìN}tÌ Õ  +’óëµ3¹ÑÓúÕ‚Ås4²IDÐožÕæs4)ÕÜð-—t”Ñw’m!=1·¡:;3üfnôűHôrM¥S £ÞÁ›9—_€ŸŠÛ„-×¹¼4ƹtÝn®k©~M„ß?ˆœÚG!IeZ7TƒGx¼\c–‚Àa Â X°"μfSu aºrÑÉ)ï˜Ë]+êò¤6HªõObþfï€ùغ£}Ès^9 ¦²rjÔ4C2åv[y@&d{JIí€q%¾ãõB¶ ÜZ„QÏ$’—íLmœ¤<Ç)¸Iª÷ÕúAAqJµÛsëˆmLºÍ«Yqå}‹8é+î˜Ûe¡–—Épò Ê#¹úQtç/Ö& $¸‹XX„A,ˆ{êÌA–‚1VP5…GæË°„1-bÔ–KùõœÞ0k±”¨óޱÊòËóÖ««[Y ƒ\Ò~~1º’,¸Âqpë±Økéä²—å#µ…Ò±sÂæÿ¬¤y›­4™P†Ž*íœ&‚æ%¼;VûJÆ ^ VW‚ךÅíµl*DfyÑ®¿¸»§‹ˆ((ôq—'Qtã›—ÜÚN™š!ì¡‘ˆ  œ[×Cý!µ•……ZP-"=Y!Í‚jÜoˆ‚ åïw" µA!é‰GB<$’*â:õ'A5qmMã:N¥ïȺÆsöŽL*¼uLÓ(t+#‘i6z‘»æEÄ^E€@ûø‚ÞzhñH3?½y‰ŠW<ƒ¼®þ§ 'Âû“‰±)ÙM¶ÒýÑhÍÒ(0¤­Ô âD(ɾäˆûùã‡Yò—Ðq8+ÒÄEq6¡IoŸgð2“Ñq„½ÂG¯€èþ® •‡1Óƒ … ³”“"TÒ&ŽÛ}ŽWRR†ÀÖ˜aÝHédðÅx$Ï ³H»^¹Ÿ¸Ï[Fïs±îpj¡íç>½GÐÉÕÊ’¢{#gÕp~´7ÞÚ–ªëð‹<.(¦øÛ!ãf±°º§|£®±õº•w<¾GhX’lEĦ[m©xbC¯-„*Þ0j¸ãÙG´šŽî»™üCe½ÇÌyäž0…S]ë êIŸzFyëôÝÇžšY¹¢’ú~“é7)Âìz éžÆAŒR:™÷G ]EUâ£á…„÷o”ÕFÄ÷QT$ A±ü¨2/ 2]D$(‡Â?²0žÛÍça.ipð ¦Þ8UpšÄÈ^ŸÊyÄó5ÆÛ'™h(ÀhF@‘³lâÜÉeó.†¦ÑæL{Ô’A¬6¨V.î‡+odªâR8îKTñq]õ¶¤”úÏ”ÝäYNF/‡[xÐÎþŠÑµü$„WšWèøG&L7fbÝ(Xqñ^·d¬¿"þ–­ÎÐÿÎõ’×ÔKéh/}Á“^jûì½$nö`¡ƒ ~ô`!Í]Íjx°Ä Ÿ¶uÐ{«ßɉ mö`áûd㙥ã8´ÍyB/7 >àe±e•ÍŽèf´n‹-T¯ ÑòS?âyB›=¦2ɱµGÏØ\h(±™kS+Ÿ`«˜(÷56ÊJÓÆJÎøó#CwÀi¢ûDçt„OÄö@Fa'ÕÚWÉn®‹/ðvœÏÂiàù >œ0×&ÍIÞžâõi\/2n_â+éø—Uð Pƒ×uˆ~ƒkx9¯+ÿ+›•_?‰O$äF¡] ;É\Þd.gÍuñ-Þ¾mÿN ÄýÝ7MŸŸcŒ …øì"¯Û Àáì$o‰Z8{EÝñÔ#êΈº3¦îœbz™!âñÛ¹:Ô,€œ¨këK÷+¥Zîa¹ò¸ìÜëzéÈW ‘ÚUÍr 02Ú8Ac…¦[+§– &'t’j~}Œ)q‡% ‹SŽòcÄ\ŒØáº 1§Í!šÈÌ-`~†PaÛåH_k#Úˆ¯Ãü©Ÿ+å—îòo·Ì7Ô©èžýR¨½ábتʒ/kºˆý­1ø•'cYˆ*6eLã1|±Œæ¥¤U¹FÖ‚ÒBËz,½n[&Ñ~·;"§lÕ"2Ý×l{Reƒf'&k‡ë”_ Cà4¸à 5‡Ôy±"×yÉ7È À>ÄÛ/Ë3Ú/VŒ¿Î5}qË,ŠÓ¨…NC.õýJ¥Dæ}¡2¾°7%-.áÝE¹æ;FSÑ=ª:­ ¸¸ ¹ V%2 30Qù®3–T,’ï¯â\œ¹\५7eYè-\…­´æÊ×ô…{Z(ÎËÓKEÓKÝæ±ºŽG⌕ð²oYÕÁ5Ò¹k&„G1=#š”mÑÕ2pe×é@l®Xp–ÃêÇ”Ê$n]o—ïÃãù}Úã1Wâ3¿jâ—ºzE’Yq?»ªCÞX3"ά»Â$‘ ˜‰ÙõÍúÑDhÞ].&ÌÒ0K×/¸áªù¬9:Â::‚v~$A\¹á9_×Ôpµnò¤®½T4ònâÊå2Y*—±<¹‰¨ë1þz’u™A¿Q­¬­»r¦*õ« ã%ÆR¯÷5=BÊQŠÚtdбsÊ K{í$çiƒØtŽ¥<ÅÏèþJHvJQ9eErêñÂTÑSŽãæ ´¹ãY>·ÔÝsÃ@;êø)xÒƒ—zA ît¶¥àÎíÅz t5ó)‘ã­ŒŒ*ÝŸ[ë6•2ò|›ŸjKè»^5óå-­²Z†Gl‡n¿ÍOû=~¿'|îËò’<'"‹´‰6äáeýý—ÿÑ¿ûñÿÏ´øŠ? êíZPÅÐY‘ð'Nÿ‰snMñc@xZáDÂe-J?ôÑÇMíS¿YLJ@1¢üäÎKÜ{DˆG xáujȪ'$ÎK!÷¸ŠÉ¥Å„*¦o®à8‹š %ÚV¸šcnp5û—Ê­f¬<ü£VPLÉp¶ÍÔ}–ö͸h7U‡ïV;/Ò8ÔÅE‡¹¸èÄù,.¹]8>6nZ]ÖM«Û‚° û.8Œá¢UÚÅ*õóº×»y-.d{¬ Ùǃà ðb/“‰çbÁ^××z¹Æä™rø[øúùöÁ¸ù›£ó‘Î ™]ñ@Ôr&-È5^ô­S‡k>y¬]îeUÈ×óáòà\bÀäV— ùzÈUñèácD¿ ·O¼Š/ûõFR5üÎýss,œÊcn€ázÞÏ«KYÐÖ¢ÑïIõ¶ú0‚” P’ðl}"ó™ŒUJFê¹9*šUNºC¸7Myž‰þM°|©îÒ¿Œ£¼+þÏ"Û*Êv±\Í/-GjíÇz±±ê"é/ææèÄ+xh½Þ ÿtýÙYoßWR é¹¹Þ¦®rE¡.În(V+ƒm}¬GZØÛ¢@qR×Ë(”Xss»\¡ö0Á^Ix,‰a}¶•=O\¤ÄD¬ îvÑZÔl-ú¶nzw´éoEªo½”¼“¦‚’Úï mÚw¹B1´*6›z]¢@ùê–cLÍËîXaÖÈ…Õ\auÑÓrï±AøQ6ƒº SyHÓty¹é«Xv•àœIšÓëÍaeüô»` “2/Å&dN"€¦…ö!ê]…r-DeŒYŽÿ)pŒ†–ùƒnö¶h:Þ¢ùbñ‡‰D\Bÿõëzd¢ŒÈõ~®^z‹žO ½×¶îxè l=Ê;,Ç…ÕÙº H:ß¹ ´Tý” }î3Öa Û¾¡v=ú™Ëʘ²¨Èߦ4H°Ç>si`½ŸVÔ“Ï«-™No´$Yòc€›aaÆ‘hNwãX…ã‘X¹ÖÖ•ÒÇŸRÊ š$µ$ñë„ÐöЬ‘²Sv„À1ï’µƒ<á2 L»z‡9e×÷ÙÊîø×ütTykG™WZbÐÐ1i|è6h våjFËFà‰åÓ óP"¦=ܯptB•³Šõ_i­nwéÖ-‹fJHø¿dI¥ÔÓæòp’ ·èò6skXP——$ñvû]*«7]áAº#€œŠ¬:ºyË4¼i|ý¢«pH‡í¨³ ùbI‹à«áÑæ*råÖ+2öZNâèðšWäçk%f›R¡³;«›T`•¢äÔõ>#¿Zª¿­[p-!ÿû¦ àjÃYŽ˜U–+ËÒY°¤ÖX©Ñƒ‰¹û±Æ ´OË#Ú¥à´[3 ì ßŽÖÄ&X˜g$¤SñÂzc%~Šh‚©¡×^cX97w.R¬µðp–É£ÒÆ'<=^Û‹*&Ø™{%ô|íU3< û_„á’˜ñÜ;6gî/ÃÅ{x’ÇöŒ·¨;«•%¬$ÜQÚ"/v{<}ÜVI*åù‘Y‰ 5ðü+<Á¢¼ÑÂ:D &5¸.…‡–ŒyG¿Mˆ;â„Ú¨C% àŠ*E(8R^6¥Å—¶Ð›(\CéÍ&³É´ÿ²m¸jú¸iþTúäïÒ0¦;ߥ!õÜÜBrâ¥:‡Z¥WbŸFz¤«ö»”'Rº}ï׊åf5Ãïmn¤Ñ1$¬Ž!iu mVDz:†v«cè°:†´Õ1d¸ËÏp—ßRÍ ¨ið¨iPT6x[(vñ¢½ßçzßÎxž*€´0㬠ߥ{ŠãžúR0wÈpH¬\™BÐj¡BO3j„Û²Y·YÀ\ï6,Hofʃ¿SLTô´ç¡T=ŒnG9',¼¬‡:ÎËùRMô¯·ªš $š¿i%άÏLyX°vGý„ãœ2²r5÷’[ >E‚ÂôSñÀº$sˆ ¬ŽÝfpLw-øz˜ÚcÃÔ0$ÛÐ~[†ŒP»…I­@×Ô'­Šá|ÚVÞ^hh]fY²Á‡`/Å5ÏØ5’a( ãjN,¦Â®'Zâs-j–úa”"³¡Y«[°L °ã¦]Y«~ÖÊç¢D{Ö¾•]êëqÀáá…ŒÔ%¬ù›ÛV,I5‹1a>䘪%Ó$Ć«Åö½J ês"Èfmt|ºÌ~ê‹íyĨKàŠŠóKŽG€y¯g-Ñßœ)tFl»$œz(32T¹ß‚\8çqzHYÉH<á­U|^º;ä ±{„'X{hJŒëf\|ã¼qqÇ/X|÷ša8 Èz„ý%4ûÓkXèÁW0+îL Ýz|ñ±’Sz3 @IŽ„)Vka0¬-óôb«çè™öb4¼Äb¥.ø½TÐËnÍŽ@‰ Lœk²»vÔ¾m%â䎡ؕ×ïñ…¯¶ëžì°ðC±Ç)Ïúè„Î[ Áˆæð¡ÁHxDèÏh·XŒïhp#’JH¸`i¹¾jŒ„¥ ]ðp•!ÌPžv!¸E‚²BâqI[‰ÜÀë3äðö¦7ï•ÿÕ¸WþA» 6X/èíÇÜÙ&¢;Û„qNC³!)Oèºã>Uô˜þô ?m—Ow‡œlÈ~XÔ넇Doûw·É¤›¶Ë蔩žŠæ°\ ¶"²ñÛÙaÇEØǃ»Üp—u޽ز«‘ø×£#Á@•/ûb°ø>þ›òüvîÛ[°˜ã,fб˜N; Ei¹9æ"d\ëÞ©ˆ¯ jÖìØ3 "x$2ìOšÕ7œ£a¡Û³|ì~‡jÞº2oűC¼x@UÜ Ð©Á¨lDEk\RÆ]Ù½0‡Q«•7¨¡&åU× ’F—k@¸„œoÑl¯þ[åøs—æ)½ÞÀÓ¯›‘#Ž¡m;[¹ ;p”{¹øC¤¿Ðø³aCÇÞ×ú† ]¸Ó‹o[îZÐi°HäBJ§éT:ÉØØ îÚz‡—M·g{²mú.eN:¢v–Ìë%›—t…rãñRs™;EtYÊï¿<ŒŸ9í»ô­ÿ@7õ˜3çÇù* ‘⥸à¶TÈär;æ==VçböY‹²ÉjÇël¯<ƒáÂozÜUù³Ó"pfí‰nÂk¨O¢}~Ò† WàžôK³Çn¬zMLíÁÿ4§Þ}ö·ßà{xz˳]Ä–ö€sæ‰èÜ ©ìêgfî~äéPä)­ëˆg²±¡€=cš¾ÎÕVïÃ*Xš˜â¢†åû òؤâÒ&Æçö èm¡›.¦îžDd(Nh‡¢æÀ$xv¶ÕÀ9åñš8gÈ4,ûhOP—Û©ðýBR?“bƬ7›m\«’ºjàÑ"¤é?@ø±ïVô3°4\ô1$uJ6l± ‡6Sâ/ Bâ…dÄ=ûmñ-¬"bÛkâÜ,÷Šgö^P#tÉâ®i1wð7<¯|ŠÞ߈¸$ 'ê9Ú‚Ÿ‚Çôp†‡‹¸y@M®Ð}ûðž¯0‹“Òƒ+CZ=Ié:wjz ¬'vWk5`‰X"‡±#ŽæŠ„Ï†"âˆä‹5â›9_  cL­ó6o`Ȥ߀œ0—íEEp:$ ²K(Ú~>1µ©‹z[R]Ÿ››bÜ“†cn•ñ‡æõŒ¡ÈØAžÄ?È׃ÅJu=45  \-¨Úo$k=ø™XAÕôûºõdrv‚Ì]—(ÆSÔà ¡< $†·‰éÜ— M ³œ9‘ÎJ•ûùR- êI·9û‚zE‹‹T¢0´Úò84(J*©çB¹d£Ô€È‚bǵÚ&¬›t3§-º~NoJÅù¢Á[ W•ÐËš‚×€[¥»UêXŒÿ×™9W ”Š»‚§|-kù÷ôiÄ䥽N_ܺ‰ ©?çõù°Úhg€yôE¯ŠøRjA‹hD"œäæG¤P=³‹0ßÍaO϶¤Z9k°Úì·zV=Pb¢NXÅ:AÈ*CÒè‰g}¨ú*÷ úEÊèYðšˆc",/$ˆsÖN#ðf””HHk? ê=Ztþ„QߺÔÝ6„B¬Nà_lrîJÕ–þÙ†ðkb£“<+àaâ “-ð¢H½¾8TѯɆ.[ùåé¿™ú^…ª (}t‰‚óUZ¬ØYÝ£”ÀKºÁöÜ ö¡T$üJ:£zm ½ÐÓØ :µ~¥ŸŸ-¯d$¬{š¯Ëƒ4¼ÓœsAº8k»8Û"s|Õ™¿(ye,!„y•%x—æ:£¡›V?hù¨€í$Ͷ„=† Ñ´- ŒÁ>È:…ALˆ SÁÅ ”x 2yh^ Qðv¹ÌWtQïÁÅKjôX•`TnÉR[;“É«r3°ÇM܆¯Ë&«KEàv%s·ºÖ~†"§œàIQÎÎEjÎzYD9SÉ×å¾R Éi©Ɔ<†®pù7ß·›ÞÐ’IàÚ1"顺}3í¥„ÝçK!û9èσÊִʤ‚Æœ]©M eð×c\KdkˆKмՠ“V„ZÔܼ F”€d€ye¯×áCºÇ+$Ó~м¬C‚è«,O2»yêÚEì{{ßH{-†uÀ½T²Ù+\°×Ös6’J8S”*!JlØÌÖ±a±ã|·RyÈ8ö0³W~<ÊÓÅûM€ý•àÊ\\È­WVs@0w_gœ,ôÖo)ÞàW; r9Ûn1@bC)ÛõV£x¶Åpð \©¨G+<ÝrØ[µšÛžc™)ØÞˆî¯…$a§ëDšvàYÅ’³MÂBJDO„¤$hdÒJX3”d ¼ÑkÖ3ìɨ[ `Xåcµ3‚€"((è ¹b|€Ãö³;R¶w øH:5‚•‚~;0ðQ÷qcמÃÏ¥ý‹ !¬„ƒ.òöêwÀ“Ð\øá ‰Á í}žì½èA ÷ÝKZL.—z³3ð±/&ŒrzF¤•}ãƒ20áËŒ¼¤ÆHuäM§û,ÑaÖ½I‚éØmD»´Û\²n&à jç¢A)¹ØcüüÍÃU ½·É¨€Åû°=Ø+›ýÈ^|‹e»EKF¨ñ®–!BRpβô¶¨fnóexmnÔ€1-T5“´“oCø¶Ò(Q‰‰škü›J¥V½Õââƒ:§&¦DO@+µÛ«¤côœÅò£|©h—M£Ub³pCax@ƒ¼´W…Ru4x ¤gAµxid휕² '#BmS|¼OYÙ8L@xòÜÛoåN‰§µ[akáÚ[ רZdëY ¥èš]ީޱQЏÐÕÀ­”˜ïçkÔ‹ói+ˆ"9°ÏºÞu˪õ ²1s0£¯rý‰¸‡È¡¼D ÃX‹Òët|&»|ů”KØåÓ¥2¸8 ³iï¿Ï;èíÓÿø'üvo—ïÀÝ„ÑbwºyìA¬‹ÎcÎÍiìäâD·“˳“zƒgÒÔ¡@«ÞF<áö³Ø¿ldÈ/’2‰2vú$2‰rµ">ÛT:os‘T9 )p8/…NpF7„ob„?ÓÚ O}>4Üé(%$^ ]_zõœr„C'ÆŽ†4N i«¬$;Pú*énCb‡üÄ~a)ó¿˜÷"5<£¡ƒ‹8³©%žl§ƒv1dÆ¿h›ŠlÇ6cÿ“k¡K”‘[¼÷ÁªšÖ÷”Êïµø Y¯cXÉLOvMm{}6ÓØÇµ–®Ë)¥>[>tÏvŸ=Ç–ñ ³ÖûÙ“AºŒliä6Šm€J»ö¬E«© ªê8›a( P}¿›C¤ ØŽ‹¶¼fÃ×Òõ¥»ì¹ä@= …º×^s#aìÛ» nÄž0Mþ±¦ãq¹Gf`à•ÕH³-0Q6ð0_”ó`X‰Äº_ŒÏr®ätxÛ/Üz€’*ÖûøVás羺8c­'ž6åšFã#f»v¨ò¼ŠÙ24fïD0å®âê|õÆÎ„®ÆºÃÁcÈw£¥jPu[¹®«®o¡%]Aƒ©'çØ‚²ØN®ª\Ç$&s\/îQ£;µP&Ë{ÕÆ€ûmÕP<Мèà  k¸ì¼ìŽÕÜ2»Ñ9„£ÔÓzJJ÷˜ÅÊcxóð¾=ªjuø+U' üÚQ~T¥ºÉ¾ˆ ÛlEç~Öámæ W ­ª*øÁ+¡U&ER4Uñv bˆÏ k+³žhŠ/ĉFÏ’aÐõŽfôGí&lïÿ–Uï››ÀñÓDÞ{ë¢ìN6—NsýT®»ÈŽñ&”ãd>Ÿ»¬ùO~¼x£C’‰Ùm6ºÃkò ý÷Ö78ØvÞV8ý³Þ–2ÕWHÌ(SÝ›¬ä£µâã3$¬›î‚±~ÿWÔ¯“6œg£¥YºËØÞRß ªïÿr® èv\u–,]6:ªßô‚ǽ¸¤#^Ïø›!:6ó·8U­;i¼{öPo-¡À»ìáVynrÆZ”zì|+`ú'Üy¬ÊýDžö+C‘0g±—dš>+¬þ_˙ԕ3n-©~9“'ºÝ¦tè¤5ܦî#7/ðH4{—”…ëÒîÎ[­s¶ú|˜¸ÝêÛ{Ú“&|¡5‚ú¥K¤…ªD¶šN;ÖÛ,A”õÍ¿¼N¡ïÚ3ÔuÝ»Tµ¸C®hK\ÁK6:˜µÝOtÅ XhQÛÝ´í0>š¯ã M†Éávk$¶ˆ†Ã]Ó&OH„Û§„Â]á™áîð̘3¥éÝʉ[=g''€WOÆöž7wç%{Û¥ð¹käS Ýëmãa{ù–Â{/‚ ß‚&^ÐÊ zA[/xµà’·à5Ò‚Wêný²¤àê¶àZ6V±\Âæ­=²—†'pÕšWõÈI\¯æm=r O!OådÞÆ#§Ä J2“R­D WæÕ;3ÓÄ*üš©¾VÅm=Š8MÌâW›úZ_íêku~­¤¾ÖàWH}­É¯•Õ×ZüZE}­Í¯UÕ×:X7—³SźüZM}­¨¯ËI>ÜÆ³.߆ðK™`\ɳ.☊;yx›ÏTÜȳ.☊ËxÖESÅl¦dS5—úGýΧ~7¦~P¿›P¿›R¿›1Ôæ µCmÉP?b¨­jk†Ú†¡’ •b®¤™+æJ–¹ÒÇ\ég® 0WrÌ•mË cÉêƒz>ÆWd|%ÆWf|Û1¾ ã«2¾ãb| õ…1ÌXê‹b„q Æýcƽ=ãÞqÿ„%b”%bG–ˆÅ,;±DìÌ!Y"êxGTì°»’Ïnä9Fv§ {P†=Éy/rÞ›œ—07‘sûðk õµ/¿ÖT_Kr­€Ø/ ׈e¹N@ìëĹ^@ëÄA¹A@¬úqH ¾,  Ô÷ˆÃTû‡êÄúAqd ~p@,È â(–Ü£©ßc¨ßc‰9Ž˜ã‰9z>‘z>‰z>™z>…z>•z>i‹º=›z8‡:9—ú98Ÿ¸€¸º½ˆº½˜º½„2\ -ˆË\ý\Î/”ì+ø…’}%¿P²¯âJöÕüBɾ†)º–ð:ò¼žéºéº‘麉麙麅)º•)ºi¹éºƒ)º“i¹‹©¸›òßCùï¥ü÷Qòûr£€x äâ§9;  È9ñp@Î ˆGr^@<óâg¹q@ü< Äc”óqÂ'(í/˜S¿ ÈMâÉ€Ü4 ~EêS¤þšiyŠ¿aŠžijH¼xfCü–i|> 7 ˆró€x1 ·ˆßä–ñû€üQ@¼[Ä˹u@¼Bm¼ÛÄk™ ˆ×2Èt@ü1 3ñ§€ÌÄŸ²/ ÞÈþ€øK@Ä›™ ˆ·rÛ€x; ⯙ˆ¿d! þÅ€x‡zþG@–âÝ€,Ä{¹]@ü3 +ñ¯€¬ÄûY ˆr( > HUgÿÃñQ@ª:ûq@ŽÄ'úoâÓ@ýù€ø,PÿG@|¨¿ÿ H_äâË€Ü> ¾ Èâë€üI@|£ñm@îßäâ€øo@îßäÎªÍ J©Úœ ¬«6'(wQmNPîªÚœ ÜMµ9A9¦Úœ Ü]µ9A¹‡js‚rOÕæå^ªÍ ʽU›”KT›”û¨6'(÷UmNP.UmNPªºÙ”ªnö¥ª›‚RÕ͉A©ê椠TusrPªº9%(QmNPªÚœ :ò®ÍµÝAÉ 9(™Ät:àß倘˜n:‰0l”˜˜ƒãä™p åª×A‰š@?Ä;‰qMvPN¦8('S §9(-Óég†S9b¦S;b%§Þ눕úG¬âÔŽX•ñÎrêŽX|VwêÓ±†ƒ´¯éÔ×tÄZN=∵ú$G¬ãÔ;±®SïvÄzN}¢#Öwꓱ#ÏPößA ²‘ƒÖäZ–:h#f;òLeÿy–²ÿŽ<[ÙGž£ì¿#ÏUöß‘ç)ûïÈó•ýwäÊþ;òBeÿy‘²ÿ޼XÙG^¢ì¿#/Uöß‘—)ûïÈË•ýwäÊþ;òJeÿy•²ÿ޼ZÙG^£ì¿#¯Uöß©ÏwDŸSߨý޼NÙG^¯ì¿#oPöß‘7*ûïÈ›”ýwäÍÊþ;òeÿy«²ÿ޼MÙGÞ®ì¿#ïPöß‘w*ûïÈ»”ýwäÝÊþ;òeÿy¯²ÿÌEÌåæ² &LüöÄï@üO˜Ë£Ìý™Ë‹™Ë;1—wfÞIæoù² svWæìnä3F>»“ÿä¶'¹íEêÞ¤.qä}Êþ;ò~eÿù€²ÿŽ|PÙGþTÙG>¤ì¿#Vöß‘(ûïÈG•ýwäÏ”ýwäÏ•ýwäcÊþ;òqeÿù„²ÿŽü…²ÿŽü¥²ÿŽ|RÙGþJÙG>¥ì¿#­ì¿#ŸVöß‘¿Qöß‘Ï(ûïÈg•ýwäsÊþ;RõÁNr¤êƒìÈ”ýwä‹Êþ;òwÊþ;ò÷Êþ;ò%eÿù²²ÿŽ|EÙæÝÙÌ»s˜wç2ïÎcÞϼ»€yw!óî"æÝÅÌ»K˜w—2ï.sä«Êþ3¯`^ɼŠü¯&ÿkÈÿZò¿Žü¯wäkÊþ;õëq£S¿Æ79õëq3µ} ÃÞʰ·1ìí {ÃÞɰw9õ;q·S¿Í÷8õ;q/ÃÞÇœºŸùøóñAÖæ§ìÌC,çÃÌÙGXÎGY–~ư?gØÇêqúy‚eé,K¿dYz’eéW´'OÑ"ýšéi–®ß°t=Cê³´Ï9h‰~KŸÏ;˜SyÁ‘¯+ûïÈ?(ûïÈ?*ûÏØ_bì/;ƒ¼BÌ«„¯ÿ:¥úƒ#ÿ¤ì¿#ÿ¬ì¿#ßPöß‘Qöß‘o*ûïÈ·”ýwäÛÊþ;ò¯Êþ;òoÊþ;òïÊþ;òeÿ©zéï8RõÒÿáÈ÷”ýwä?•ýwä¿”ýwäûÊþ;òeÿù¡²ÿŽü·²ÿŽüHÙG®¦ì¿#?VýG~¢úÿŽüTõÿù™êÿ;òsÕÿwäTÿß‘_(ûïÈ/•ýwäWÊþ;òkeÿù²ÿNýG|ëÈo•ýwäwÊþ;ò¿Êþ;ò{eÿÛd (‚mœsjãœS眈 ÓALgr¹« š ·!—»ÛË‘6är´ 9kC.ÇÛd0(mÈÇòém£ýoCnNlC~MjC~MnC~MiC~MmCÎNSþƒbzòwFòwf¬ÇJm°+·Õ{ÚÄ*ä¹*e›EÙV£l«S¶5(ÛšmõÕÚÄZmõÕÛÄÚmõ5ÛÄ:”v]J»^zë+A±âª°A±‘JEPü MvÅ•üA1[Isã\Æ81Îg\3Õ HÝ„ÔMIÝŒòlN?[Pž-ûûV µ5uµMúÉ6ô%RmèK¤ÛЋȴ¡G‘mC_¢¯ õ¢¿ }‰6ô%rmWnK}RŸyê³@M©ÉuX¦ö¶£ö*mèAU k*lP ©°A±P… Ša*(1-#L‹`Z~Ì´l¯¸Å¤þ„ée*v$f1ýïDÿ;“*)se`æã®”d7J2Fÿ»Óÿä¿'CíE]íM]-¡®öa,ûRWK©«ý¨«e„û·Õwo«ïß6UÐVßSȘ¢¶nCŸë6ô¹mCŸë°6ô¹oCŸëÊ~$eYNYŽ¢,G ᱤGx<ýœ@x"}žDx2e?…²ŸJÙO#<)8ƒðL¦ã,ò<›ÜÎ!<—ÜÎ#Ÿó / · Éí"ò¹˜.!‡K©‰Ë¨‰Ë©ƒ+¯$ç«Èójò¼†Ü®%·ëˆ¿žøˆ¿‘ø›ˆ¿™ø[ˆ¹•±ÜFÞÞ†>ûmè³ßÙ†1Ù]mè³ßÍwKÙ½,e÷1‡ïg?À~œJÎ1ƇÉÿò”©øËûÏYÒcŒ3מ`ÿóî—Ì»'™w¿"|Šð×ÌÁ§ÛÐkþMfbž!|¶ }ççÚÐwþmfbžoÃLÌ ¬1/²<þ® 31¿oÃLÌKm˜‰y¹ 31¯´a&æÕ6Ìļֆ™˜×Û0ó‡6ÌÄü± 31jÃLÌŸÛ0ãòFf\þÒ†—7Û0ãò–ÒCP¼­ôUzŠ¿)Åß•ƒâ¥Ã ø‡ÒaP¼Û&g©v M®¡Ú6¹¦jÚä” x¿MN ŠÚä´ ø°MNŠ·ÉAñQ›œ©ÆJ“j Ê†¨²¡Æªl¨q€â¦Æmrµ ø¢M®_*ÎAñ•â_·Éµ‚â›6¹vP|Û&× ŠïÚäºAñß6¹^P|ß&׊@»Ü@µíràpÚåFAÑÖ.íí°1¡vùàèh—³ƒ¢³]Î Š®v97(Âír^Pt·ËùAi—E´].ŠX»Ü$(âírSÕ´ËÍ‚¢§]n½ír‹ ˜Ð.· ЉíòGA1©]n“Ûak§´ÃÖNm—[Å´v¹jÚe2(f´ËTPÌl—é X©]f‚båv™ ŠU(Ûªí(³ÚQWkG­Y½µfvÙk¶Ëþ X«]ÅÚíhÏ×iG{¾n;ZòõÚe.(Öo—Ûªv 37nÔÎy vε£ ÏnGžÓÎy Æ2±ÌoGÝܸí@;Jõ&í¨››¶£VnÖŽ¾y;Jøí°ë[þ¨½¾a»Øª½þ£v±5ãÚ†q%WŠq¥Ûëév‘aŒYÆØGŸýô9@Ÿ9úÜ–~é'O© ”ªH©J”ªÌ°Û1l…a«ô_£ÿ!ú\ØŽºû†äƒA±4$û…äCA±,$ŠýCò‘ 8 $ ŠCògAqPHþ<(ÉÇ‚â|<( É'‚â°üEP’¿ Š#BòÉ 82$ËCò© 8*$G‡Ðƒ=†z>–ùróåxæË Ì—™/'1_Nf¾œŠå©,§1gO'‡3ÈáLr8‹ÎÕωsÈç\ò9|Î'Ÿ ˜³2g/bÎ^‚•¾$+}iVú²¬ôå!Xé+B°ÒW2÷¯ Õ/‰«Cõ CâšPý¢¸6T¿2$® Áz_‚õ¾!ë}#%¼‰ÞL oaì·s1·Sæ;(óô©wóû~ßKŸ÷Ñçýôù@¨~OH<ªß? Õï ‰‡BõûCâáPýx„2?B+ð³ÚÙŸ‡`ë£åyœ5ô‰PýñPý‰PJü"„ñì/Ó“ŒéWŒã)ÊúkòzšÔßúL3·Ï†0sûsâ·”õyb^ õÅæxÂ|ïïCX1|)„×Còé x%„] ¯†äo‚âµö9¼ž‡?„°BñÇV+þÂ(èÏ!ŒˆÞatô—FJoòû-~¿ª? Õ Õ߉¿S-”ªÿYýÞP¿·Ôïm•ÊwBõBõ×5Eü#T1$Þ Õß ‰÷˜¶2Íÿbšßgš? þ>¤þþMý}Dý}Lý}B­}Boî3¦ÿóÆgÿá÷!ŒÒ¾ä÷W”õkÊý Óóm¨þq¨þ‰’ã;~}¤¤z_¹þË4Ïô: ‘`ôåt@ƒm³½yêà>¥HØÙ »: a¸²uw Ÿé€lÑHë€<ñH’ Ÿòéí@ª'ÛĤzyN¦Ÿ)ô3•~¦ÑÏô”Á¨+3;êS:êÓ:Rb¥ŽúÔŽútõµ2¿€[…TàVí€f‘ãjä¸:9®AŽkv Ô¬E?kÓÏ:ô³nG}Žúº*üzô½>ãÜ€>6¤(é˜ú2õ³;?s¨ƒ¹ 5qÌgÊ6î@Ž- n6¡n6¥n6ë¨õ^§Í;ìŽ-:ìŽ-;ä3ª-a¼[1Þ­ÉyÂ$ù§È?My2”'Kyú(O?c` s„Ûv Ö vÀ–å ä_$ÿu\&ÿí:`¿*òYÕ–tÈçT[Ò!«Ú’ù¼jK:ä ª-é/ª¶¤CþNµ%ò÷ª-é/©¶¤C¾¬Ú’ùŠjK:䫪-鯩¶¤C¾®Ú’ùÕ–tÈ?ª¶¤CþIµ%òϪ-éo¨¶¤CþEµ%òMÕ–tÈ·‚b·ù¶jK:ä_U[Ò!ÿ¦Ú’ùwÕ–tÈwT[Ò!ÿ¡Ú’ù®jK:ä{ª-éÿTmI‡ü—jK:äûª-騶¤C~¨Ú’ùoÕ–tÈT[Ò!?VmI‡üDµ%òSÕ–tÈÏT[BFNmAmIm/§¶¢¶¦¶¡¶eîǼ>žy}óúDæÂI¬'wÔë¨Þ‘ªÿQÕ(îêGÜ­ø;â•^GÜ«$tÄ}JBGܯÒåˆT*ñ ’Ó?Ur:â!%§#Vr:â%§#Ur:âgJBGü\éÖ)9ñ¸’ÓOtÈ^GüBYGü²CNtÄ“r’#~Õ!';â©9Å¿îSñ4uþjéjéYÂç¨áß>OÌ ü~‘þuø{eñR‡œîˆ—;ä G¼Ò!g:âU¥gG¼¦rǯ«ÜqÄTî8âŒåOäögr{ƒÜþBnovÔÿÔQÿ³*o¨ß›Êæ¼EÿoS¿òûo ûwæõ; ûæõ»Ìë÷:Їø'mÔ¿:ÐoxŸœ?èÀìÃŒÁþMëûQÚ;Ð|Ò{ÿiìýgr–#>ï¨Ü!þCøá—r5G|Õ5”¯;Ðn~Ã6á[ÚÍï:ÐÚþ·­í÷hm6Ø iN¤´­Ò¶wÖƒu§3UoïL‰P'¯vêdûÑYïè¬w*lW'Êa¸³ÞÕYoS>CêVøîNè!BÎQrŽu¢<ÇÉ?Aj©½¤N u"ñ“ˆŸÌï)üžJ?Óèg:9ÌèDmšI?+ÑÏÊô³ ý¬Jü,âW#~ubÖ fMb֢ϵÉmr[·us½Nä×úÔÀȯ j#†úýÿº˜M]ÌéD­œÛ‰Z9ژ߉Z¹q'ÛŽN¶l;:Ùvt"O7ïDžnщ<ݲyú£NäéVèÏl݉–|›NìÜKvbç^ª{öÒruGd:åŽÈvÊ5Ñ×)×rD§\ÛrGä:庎ضS®çˆÁN¹¾#òrG:冎(vÊQRœQVœ±]§œíˆŠâïˆj§œëˆZ§œçˆ¡N9ß ;åÆŽî” ±¨Sn∑N¹©#„ÒŒ#~Ü)7wÄör GìÐ)·tÄO:±.?JmïH½-¦ÞvêDyÛ™xÙ‰XïDiÜ…þw¥övëÄ{¬½üÝ;±Î»ýìÙ)䈽:åVŽØ»¥zI',í>ä¶/ù/e¾ì׉ùŽeÌÍý™›t¢‡} óñ NÔ¸ƒ;Qãa.Ê\>¬}÷Ã;Q`ÎÙ‰¾ûòNôÝêDïüèNôÎéÄÜʱ˜[9®óÚÇwbVå„NÌ’œØ‰z}R'æVNîĬÊ)”ðTêá4Êy:¿Ïà÷™,gQò³‰?‡øsù}¿Ï§Ÿ èçB¦ë"¦ëbú¹„~.¥ŸËèçr⯠þJâ¯"æjb®á÷µü¾Žðzbn ¼‘˜›êfJ~ á­¤ÞÆïÛù}¿ïä÷]JoîS»[)÷(½©–‚åù>–óû;ë÷ÃsJ<À¯võõ ¿Bêë§u…~PYŽŸ*ËñP'fonÆ©˜ |2ãÂ(ú#¤?Ê<ýóñ笡±†>Î2ökè/XCÉúdg]™ÐÏ:R2å¤Ä¯Èé)rú59=MN¿!§gÈéYrzŽœ~KNÏÿC½H¿ã÷ï©§—ˆy™˜W:Ñ{U•)Õæ¨2¥ÚU¦T›Ó)ûT›£J–#þ¤J–#þ¬Ê²#Þè”3T›£J™#Þ씃ŽxK•/G¼Mž%Ï¿Q#§´ïPÚú.©ï‘úORÿEêûLË”ùC¦åßLËGLËÇ´UŸÐV}Ú‰~Äg¬‘ŸÓný‡ùùíÖ—Ìá¯:1ûº“íL'Flßvbìñ]'Ú–ÿvÖ¿éßSž@ä vA§‹kÚÄ´êbûÒÅö¥ Ruu±méâø¤ yé‚52lŒaã ›èBêzÈ¡—¡&ÐÏDú™D?“ég ýLíBЦ‘:>gð{flÀJ]9òÙ–šìB™É3w ôY$,uÁF–ù½ÃV¶Ê°5ê|ˆi_HÍÓç"úé‚Äü¸K–T{Ò%˪=é’Û©ö¤KV1Ú%«ŽØ±KÖ±¸K9b§.¹Ð;wÉaGÈ.¹Èõ.9âˆ]º¤pÄ®]òÇŽØ­Kn.¹ƒ#vï’?qÄ]rÔ{vÉU{Ò%«ö¤Kîäˆ%]rgGìÓ%¥#öí’uG,í’»8b?JµŒrîÏÀÈÄLBÚ[²¬+Uß_ýP¿Õï õ;XýQ¿C»Râ°®ºê®)Š8¼«®ºl~Ú]õ/;Ä‘Œe9c?бÍØ!þXÆ~c?ž¼ŽR¡U¿ãÔﳎÄ6â2>Z9±¨»ê ËÏ“ºê_é@Ö‡ |¼õ}2c=…ñÚ…ví4–˜Ó)Ó¤žÉs%;›ð–ûsYÎcM8Ÿ.èâÇòQ­ðE„w¡e¿„œ/%çËÈùrr»‚a¯dj¯bj¯¦®¯¡®¯¥ÿëH½ž¡n Ÿö&ú¼™n¡ÿ[inc}»ÖäŽ.Xº;Y²ïêÂΓ»»°¯õž.ì*¼—RÝÇXî'ÿˆy|~JüCÄ<ÌïG¥ÏŸQ3?'õ1â'þ Êö JõKRŸ$õW¤>Eê¯I}šéú ©Ïú,©Ï‘ú[RŸ'õR_$õw¤þžµñ%ò™>_é ‚W»°öóZÆA¯wÉ]U«Ó…Õ‚?2ÔŸº°®ógZ«7ö/äÿ&ù¿Å½ÍXþÊ\þsùïÌåwÈáÌåw™Ëï1ÿÙÅÑMfHßïB/ëjûCJõï.ô²>bŒwaÝý“.¬»Ú…u÷Ϻ°îþyÖÝÿÓ…u÷/öË.¬*}Õ%wsÄ×̵o(Õ·”ó;rû/%ÿž˜@’Ãlu¼-ÌY±0gÅHíCæN®0$ÓO7ýDè'J1rˆ‡‘öDiïa¨^†šƨmbû&…¡ÃÉä3…|¦’Ï4ò™N>3Èg&ù¬†WC‡«çªä9+ ®†WC‡k„¡‡5ÃÐáZ µ6ãZ‡q­Ë¸Öc\ë3® ׆Œk#úÿAXŽ9â‡a¹»#f‡åŽ˜–{:bnXîåˆyaœ+™†]Þ8,÷f§nAX.áÇ&ÄoJ¸ãÝœñnÁx·d¼?b¼[1Þ­ï6Lc’±§*ÍP†Ê2-}Äô‡å>j,Ãï©Û’ç yæÉ³@žEò,‘g™zÛŽz«PoUê­F½ Qo ©·aƵ(Œ²7FiaŒ~L¸}ugŸ„Ñf†Ñçß1Œ}-‹ÃèùïFÏç0Æ2Œþ=ŒšµK=ÿ]ÃXUÝ-ŒþÿXi÷0Fô{°lìƪê^,!{‡±ªº$ŒUÕ}ÂXOÝ7 Û²4Œu¾ýÂXç[Æ:ßþaX­Âè%F/á 0Vkcµæ0Vk cµæ°0Vk£ŸtD{öŽ ÃÊ-Ë}qTX.uÄÑa¹Ÿ#Ž ËeŽ86,÷wÄqay€#ŽËqBXäˆÃò`Gœ–‡8âä°<Ô§„åaŽ85,wÄiay„#N'<#,tÄ™a¹Üg…åQŽ8[ÉéˆsÂæãýôó¿$þ§äöñ3ì#äö(ÃþŒòÿœò?Fù'ç'ê õK†z’%óWÀ¨€[‰§€åׯ‚_O3Ôoê†z–q=Ǹ~˸žg\/Ðç‹ôù;úü=1/ó21¯„Ñ&¾ÆJöka¬R¿Æøúa¬jÿ1̽µaî­ cÝú0Ö­ÿƺõ›ay¬‡„åqjÆÞ׿†qjìoaî­E\”ø7=ÿpÓó.dæ×{›_ÿ„ìüúå|?Œ¶àƒ0öÙ~–Ç;âßaÌ6F¿ùã°<ÁŸ„剎øTÕG|–';âópýðøO¸þQX|®_†ëŸ…ÅWáúçañ59C |®ßQÿ¥¿§ÝÐa°:tº‘_mÝœëæžÛn„íèF¨Înî¹íæž[†êf¨CE*ÖÍ=·Ý(¥‰n”Òžn”ÒÞn”Ò Ý°H»‘a‘&wÃ"Mé†EšÚ [4­Vhz7¬ÐŒnX¡™Ý°B+uà ­Ü +´ e[•²Í¢l«Q¶Õ)Û”mMʶe[›²­Ãx×eØõºasÖ٠ýŸ ‰ß¨vãÝþ°=¢ÙÄÏéÆ8pn7æç1ÞùŒwcRð{ƾ)ãÝŒ1nN=lA lÉ´ÿˆ©ÞŠéÝš)݆iL2u©nX×t7ìj¦5Ûz×× +Úßù–nØÏ\7ú-ÛvÃ~vc'J¾[žâˆ‚J‹#ŠÝè?”º±c¯Ü½zÛQÎ %¯RÚ56D™RcÔ|}ŽÐ§ ÏÓÏöLÑ”ÿ'”j´Ö`ÇnÔ©ÅÔçN »3CI†ª3Ô. µ+CíÆPc µ;ýïÁ¸öd¨½joÂ% »Ãî˰Kv?†]ưû3ì { ¿â÷Áäp9J‡‘Ãáäp9I™—³ Õ¾ñÑÝhAŽa8–eà¸nØóã»1~;eàDÆrc9™±œÂXNe,§1–ÓËŒåLÆrc9›±œÃXÎe,ç1–óËŒåB¦ë"Ær1c¹„ðRÆu©—“zñW^EêÕ¤^Cêµ”ä:Âë»a1n þFú¿‰þo¦ä·Pò[)çm”óvÊy弓rÞE9列÷PÎ{©ûº9ÓÕ™‘º1£û`7æG~Ú݇º1£ûp7æJéÆ\ɣݘ“ÿY7fL~Þ“Ǻ1còx7fJŸ „¿ „¿dZž$æWÄ<ÅûkâŸ&þ7Ä?Ãïgùýýü–©{ž¥ú–êi~Çôþž6ê%ÖÍ—i£^a }•6ê5ÖÓ×i+þ@Íü‘6êO¬³¦zƒ5÷/´Qo²þ¾Eõ6kñ_i£þƺü÷nô”ÞaþG7zJï²^¿×žÒ?™;ÿêFOé}ÖñºÑSú5ýßÝè/}Äúþq7úKŸ°ÖÚÀŸ±îÞ½hÿ¡ø¢›g®»y溛g®»y溛g®»y溛g®»y溛g®#„߇òû0Ær8uuD¤~DD©Ë#õÃ"â¨HýЈ8šþ¡ÿcûq uw¡Ï]és7ú£ÏÝÉy¦bO¦b/†Ý›a—0ì> »/Ã.eØývÃîϰ0ìÔêAÔêÁÔê!Ôê¡äyyNžGç‘乜<"Ï£Éóò<–<#ÏãÉóò9‘|N"Ÿ“Éçò9•|N#þt–Ÿ3Ïd):‹aÏ&õœ¨<—“Šç’tIç“tATžGÒ…Qy>?.ŠÊ øq1=_BÏ—^FÌåü¾‚ðJb®â÷Õdx e»–øëˆ¿žòß@ê”ÿ&ú¹™òßB=Ü­_·Eë·FÅíÑúÍQq9ÜIw1]ws1÷’ç}äy?y>­?’óOÉù!r~˜º}„º}”ºýuûsæ×c̯ǣ°ÛOþ"Êû—ã“Qž¿Žbü©(æ Å<áÓQy¡#~ž‘g¢Ø7òl7>=Åî‘ßFåEŽx>*/vÄ Qy‰#^ŒÊKñ»¨¼Ì¿ÊËñRT^ሗ£òJG¼•W9âÕ¨¼Ú¯Eå5Žx=*¯uÄ¢ò:Gü1*¯wÄŸ¢òGü9*otÄQy“#þ•7;âͨ¼ÅoEå­Žx›’ÿ5Z2Ê=“‹Ö¥¿þî~½­ÿ:*þ­?ïFëOGÅ{ÑúóQñÏhýÙ¨øW´þ\T¼­ÿ6*>ˆÖ_‰Š£õW£âßÑúkQñQ´þzT|­ÿ!*>‰ÖÿŸF늊Ϣõ?GÅçÑúQñŸhý/QñE´þfT|­¿_E뿊¯£õ—¢â›hý­¨ø6Z9*¾‹ÖŸ‰ŠÿFë/FÅ÷ÑúÛQˆ!ƒ1ä¯Cþ¶Å¿í1äo(†œíˆq!†ÜìŠ!7Ã1äfw ¹‰!7£1äc,†V8C+œˆ¡C+<1†VxR ­ðäZá)1´ÂSch…§ÅÐ O¡žC+<3†Vx¥Zá•ch…W‰¡^5†VxV ­ðj1´Â«ÇÐ ¯CË»f -ïZ1´¼kÇÐò®CË»n -ïz1´¼ëÇÐònCË»a -ãF1´Œ?ˆ¡eüa ãšÙ1´sbhçÆÐ>΋¡}œCû¸q íã‚ÚÇMbh7¡}Ü,†öqóÚÇ-bh·Œ¡}üQ íãV1´[ÇÐ>nCû˜Œ¡}LÅÐ>¦ch31´ÙÚǾÚÇþÚÇÚÇ\ íà¶±ú¶11CŸ!CŸ¡CŸ¡CŸ¡CŸ¡CŸa»ú •ú Õú µú C1ôÆÐgŽ¡Ï°(†>ÃH }CŸáÇ1Œ˜¶aÄ´C #¦ŸÄ0baÄ´c #¦Å1Œ˜vŠaÄ´s ##ÃȨÃÈh—FF»Æ02Ú-Æ»˜b˜±ß=†û=b˜±ß3†û½b˜±ß;†û%1ÌØïÃŒý¾1ÌØ/aÆ~¿fì—Å0c¿ 3öÄ0W` sõÅ0ƒqpLÞæˆCbòvG“w8â°˜¼Ó‡Çä]Ž8‚eþH–ùå±úò˜8*†Z|tŒg°I=–ÔãX#Ž'<ø‰?‰>O&<…õåTÂÓb°~§Óçôy&ñgs61çs.}žÇZs>ËöÔù…ôy}^LŸ—Ðç¥ôyY »Ë.aåŠfT®¤ W1ÔÕLÅ51Œû®aÜw] ã¾ëcX¸ÔI½‰þof,·0–[ËmŒåvÊs幓>ï¢Ï»éóú¼—>ï£Ïûéóìöƒ1® S¶‡b˜ÿy8†¡G(ó£1Ìý,†Ù¡Ÿ3-Å0:x<†Ù¤'b˜_úE 3N¿ŒaféÉæš~ÃìÓS1Ì2ý:†Y¦§)Õo(Õ3”êYJõ¥ú-¥zžR½@©^¤<¿£ ¿§ ŸÉíߌå#â?&þ~33~Šúý|NøÂ/˜Ë_2—¿bøšeà–oc8/ú]LÞíˆÿÆp.ôû˜¼Ç8N‡ãò^5:ˆs÷R»ÚùŠ#öŽ8¤êŒCþ®8Z‡p­Cwí~$ŽEãèYÅâh/âq´‰8Ú‹ž8Ú‹Þ8Ú‹ q´ã<]G{19ŽöbJíÅÔ8Ú‹iq´Óãh/fÄÑ^ÌŒc6r¥8n“[9ŽÛäV‰ã6¹Uã¸MnV\ÞçˆÕâò~G¬—8b¸|ÐkÆåO±V\>䈵ãòaG¬—8bݸ|ÔëÅåϱ~\þÜÄåcŽØ0.W­@\>áˆ0í?dÚg3ís˜ö¹Lû<¦}>Ó¾1Ó¾€iß„iß”iߌißœiß‚iß’iÿÓ¾áÖŒeÆ’d,)Æ’f,Æ’#gû賟>è'GÌ¶Ä “§$r.’Z"µLêv¤VH­ÆQŠjqÔ‘¡8êÈÂ8jîp3Ë☉cfXÄa±‡]Ý>Ž™á˜?‰£žŽÆQ7wŒ£æ.Ž£¶îG]Þ9Žú+㨳õ8êì.qÔ»]ã¨w»ÅaÆâ°»ÇQ7÷ˆË_¨V€©Þ‹poÊ¿„pÂ} —2EûQW˘®ý‰?€ø‰9ˆ)=8^?0^? ž‡ðë õuh¼~°ÆÆ/àByHÁ¥)qutd¼~¤‹Ë]BE×ÁÆu´ë‚Ïc¨·c©·ã¨·ã©·¨·)íI”öd¦âÊ|*S}óútú9ƒ~ΤŸ³èçlRÏ!õ\RÏ#þ|â/ þBâ/b¨‹ÉójãR¦é2ú¼œ>¯ Ï+Éá*ú¹š~®aI¸–%á:–„뙢˜¢™¢›˜¢›™¢[ÈíVr»Ün'·;ÈíN–´»èçnú¹‡²ÝKÌ}ÄÜOÌ û eþ)KþC¬_“Û#¬_²~ýŒõëç¬_±~=Îúõë×/ï/i[ždÙþUkÁOűþûë8N5?—¿T£ ¦ñ™¸|ÒÏÆ±ë๸ü•#~KÙž§l/Pª)ÃïÈù÷¤¾DêËü~…߯2¯ÑÿëLÅHý#©"þÏļAÌ_ˆy“œß"ç·©«¿RÏcÝü;凹ö†}—aßã÷?ùý/òyŸ|>ˆÃþ‡ýÿw­ÛG û1ýBÿŸÒÿgôÿ9ãýý|A?_ÒÏWôó5ý|C?ß’ú©ÿ%õ{R Pƒ Hî$ s[B>¥ÚŽÊF(Á•åW–l;f¨n†Š0T4”Æ({ñò%‘@ÙëIÔ# Ñ›¨'bBeobeoR£ƒÉä?…ü§ò{¿§3®Œk&ãZ‰q­Ì¸V¡l«&¸ó•¡Vc¨Õù½¿×$‡µˆY›˜uˆY—<×#ÏõÉsòÜòo”¨¯“¨¯›H‰$êêßÚê뇉ºú·^"U__ý6P¿vv+l}CE™Ã8ç2Îy ”©ùŒyãÊÔ‚jÆ& ÔŒM)Ëf ÔŒÍ\…N fl™@ÍøQ5c«jÆÖä¹ y&É3E˜&ç 9g ûȳŸ<Ø­“K`¾m'ñا“Oà {1c‰1–ãvÔn…ª&P k ùkG %äÓŽX˜¿qÄpB>ãˆE ù¬#Fò9GæÆ)çö ù[GìÏ;â' ù‚#FòEG옿sÄâ„ü½#vJÈ—±sB¾ì™¯8¢ž¯:b—„|Í»&äëŽØ-!ÿàˆ±Æv»'äÕhƒü÷¤ö¢ö¦–0íûP·ûR·K©‡ý¨‡eLéþLéLéLéAÔíÁ XC˜ÞC K ÎÁdŒËãQ‰ú q4ñÇ,ñÇQ’ã)É ‰ú1 qb¢~BBœDŸ'Óç)ôy*}žFx:©gz&áYŒ÷lâÏá÷¹ÄŸÇÔOÌLÝ… ŒÂ/JÔÕ¿óSëç$¦Š‹á—$ê&Ä¥‰ú qˆâòDý¼„¸"Q?7!®$ï«ÈõjJq 1×^Güõ‰úõ qC¢~>RâFú»‰ñÞÌRt ËÕ­ ÌîÜ–Àm·³ŒÝ‘Àmw&°ó®n{¸;ûîIà&„{òOޏ/!ÿìˆûò G<qă ù¦#~šo9â¡îCx8!ßvÄ# ܇ðh÷!ü,!ÿꈟ'äßñXBþÝ'ä;Žx"!ÿáˆ_$从øeB¾çˆ'òŸŽøUBþËOÑÒü:!ßwÄÓ ì`ÿMB~àˆgòCÕn$ä¿ñ\B~¤Ú„üØÏ'ä'Žx!!?uÄ‹ ì`ÿ]B~æˆß'äçŽx)!ÿ㈗ØûóJB~áˆWòKG¼–_9âõî@øCB~íˆ?&ä7ŽøSw ü91ý ù­#þ’À˜þÍ„üÎo%äñvB~&d Mü-ÓW¶³M¼£òºMüCåJ›x7›ŽÞSyÓ&þ©ò¢MüKåE›x_•Ø6ñ²dmâC–3?b.~œ@òIcµO?}–@íóúnÿI ÷E}º/èß}Ű_3ì7,«ß2ß¿c©þ/©ß“èáÞÕÄèôpÌÁïv~‡øÝÑÃvƒß]=ܑԃ\Ý=èoFzÐߌö ¿ëÁ¹À8}&È¡‡a{‰™@ÌDb&1ÞÉÄO!fjêì´Øòé=°å3z`Ëgö -Z©­ñÊ=hyV!\µíϬžúÊ=b5å¿M¬Þ‹·FO}jO}FOJ¬ÙSŸ¢¿Ö¢ßµ)õ:Œs]ƹã\ŸqnÀ87dœõ`—ÒÔw›ø!¹Î×SßPñšÓS_WÍÑ[Ìg 3†Lç&ŒaSêk³îPbl[0¶-ÛÛVLáÖ=hm·éAk›ìAO/Å4§{»™ät¶¹Þ׃Ð߃Ò0Ы—c\Ûö ¿1¨¸µ‰|O}°Gzê3U{êÛöˆRO½÷4Qî©ïÕ)¶ë©çzD¥§žïUê¥FÙ‡Èo!óh˜)XÔƒ’3ÒÛ%z`™Ì4mß˼Ãþ„aGvG†]̰;1ìÎ +é³NŸ»Ðç®ô¹µ{“º„Ô}HÝ·³\K{P‹÷ëÁ®½eJ‹mb¥¿6q€Ò_›8P•–6qÊŸ6q°Š¥MÒ#'´‰C{äÄ6q˜*ÃmâpU†ÛĪ ·‰#{äÔ6±œqŸŽf\Çs,1Çs|Ú—ˆ9‘Ô“O&æú9•˜Ó˜ó§3çÏèÁ|ç™Ìÿ³˜óg3çÏaΟ˜?9>Ëù,YR?±¼\܃{/a,—2–˨ŸËËŒåJÆ{ý\M?×P“×ÒçuÌ‘ëI½Ô‰¿‰±ÜLü-ÄßÊïÛø};9ßAÎw¿ïæ÷=L˽LË}LËýLËL˃LËOY?b¨‡êr~”²ýŒ2üœ²=ÆÒò8KÚ,i¿`Iû%Ã>ɰ¿bاê×Äd,ÿ¦„1-ÓÏ'„Ÿ²4~ÖƒS­Ÿ÷˜;¦ô½7ÓÚÄzäô6ñEœÑ&¾ì‘3ÛÄW*Þ6ñµ’¹M|£´Ý&¾UÚnßõÈYmâ¿Ê’·‰ï)U —«½\è… m½˜uhïŬC¨­@G/ZÎ^´]½˜u÷bÖ¡»³‘^”«h/Jr¬%!Þ‹v*AØCŸ½ä0Ü&2ÆI½ÈµÉ½Hé”^äÚÔ^ÞÛ‹57êE‰úA/êÂ)álJ8‡ÎíE¹šÇ°óvc†ZЋ\Û„a7íåɆ^ØïÍ{aË·è…]ß²6þG »ÃnͰÛ0l’aS •V©núÌÒg¿ûù=@is »-µ4HÍç)s¡W®Ñ&Šô_¢ÿ2}nÇX*Œ¥JŸ5Ê9DŸ ‡éùôš›ÐT ¤þ˜ÔíÉmrû ñ£½rÍ6±c¯\«M,î•k·‰ˆß™þ%ý×éƾ+cߺ£nw§n÷`©Û³1îŲ·7KËæþ>,iûRŸKÉ?ò_Fþû“ÿä 9D?ÓÏ!ÌýC™û‡8ñG0쑽ö¥¢å½ö¥¢£ø5%8Uͯ©êë~MS_Çòkºú:Ž_3Ô×ñüš©¾Nà×JêëD~­¬¾Nâ×*êëd~­£¾NáתêëT~ÍR_§ñk5õu:¿VW_gðk]õu¦–T}¥%U_gók-õu¿ÖV_çòkCõu¿6R_çóëêë~u«T^ȯ*ÜEüš­¾.æ×õu ¿æª¯Kù5O}]Ưùêër~m¬¾®à×êëJjþ*jøjjø–¥k©ùëXï®gNÝÐ kc/F|7õò®B†½…aoeØÛövæÑÌÁ;Éç.ò¹›>ï¡Ï{ù}¿ï§ÿzå:mÕuñ¼íž• ´àé@¾ˆ'ÚÆðpÜžLÃÓðc³ðnÛØr¼;<†·ÜÆ]=³¶XN~A    `À6Ëc#àò0Ÿdz…c|RøI€_´|Á±:¾vÁÓux÷oç%{í%÷Üu4ŸªÖ÷Lï¶xï]벸dÙØ./›â#Ww[¼´¾plÉž|noÙ©olÏ:S, òÁ>‹N/ÙsÉR…›èçR_VéO‘‡W-'7xìÛ[Vêûì¹xçúØ÷ê$_Í.‡f—#™Ë¡ÞåHër¤uùX`G€ï¿W)ü/‚}€×ÇðîâCÄcxÛu / ŽAæ1>KËçI!ÅÞå› ŒñIJ¼¨>†×Ç ¶1<|;Æ÷(ñRãØ*«¬°:Àk¬€—Çðdà^˨cx2p 漏á DZð ìž/ÃSÜcxôt o'á5ȱùà]Ë1¼a8¶)7Û` €-ðóØV[àéÓ± žåÃÃ’cýxÿp ïQŽáõÛ±A€<ž‡ÛÓcx6*ŒmP5Åi€Y=]ícA^    /—ÏŽ•+ÅÚ^´Þ„åù#rJÌxLQ…N!ÃÇÆ¡þ̘ ° @`G€}–œ ø!fÌØ  °#À>Ë q$ê-€Ðаà(€£Ž8à8€ãN8 àd€S>øà#€|ðÀûÿø'À{ïüà€¿ü à¯o¼ð&À_Þøà¿ß| ð À×_| ðÀ>ø àS€BL>¬X°:¸ÙrÀÝ÷àUî±ûîxàA€Ÿ<ð0Þ5{àg<ðK€'~ðÀÓÏ< ðÀožxàE€ßüà%€—^Àÿc¯¼0e'¢²4Š,ö€O>øà?_ì+¼/ÀR€ýð¦çØAÅ»Îcxõ†%0¶á-α]ðdëŠêØîx¼ulO€½öXˆöX °À2€ýð‚óØ pÀ¡‡pÀ‘G p À±ÇpÀ™g\ pÀÕ×\ pÀß¾ø àk€o¾øà¿·Ü€7êÇ®¸þ`f¿øà#€÷þðÀ>øà]€wÞx/®ŽáñÕ1¼®=†Ç[ÇN¸à&€ rÆhhtttÄâ €€^€ &L˜0`U€Y«¬°Àšk¬ 0`À|€l°)@­±Ã&  ÐÐ Ðèèè˜0`Àd€)Ó¦ÌX `u€5ÖX `m€uðpöØz³æÌ˜0à(€£Ž8à8€ãN8à,€«®¢ëã´´„::ºÂÝ€(@ èè˜0`À"€Q€ŽXpû]ªg¤ÀcªÁª‚µp4À1Çp<À 'œp2À)§œp:Àgœp6À9çœp>À\p1À%—\p9ÀW\p5Àu×Üp#ÀMwlH¤2Y€>€~€€À¶ƒy€@ €ÏǶÀ{ÈcU€ÀÀB€a€E#‚F`{€~0 °#Àb€ÞDå| àm€wþ ð7€÷þÉv^5ô ¬Ênñrt‹—£[¼Ýâåè/G·x9ºÅËÑ¥^޾ñrô—£o¼}ãåè/GßÀhè蘰 Àr€ÀQG p"À™W¢syä˜ê.øF<~è˜ðxtÜãËÊÛTùþ|qì{UìÖ…'¾'¾ç®c’® ºÙÞ»ÐËšp^†Þf¹’+$+#ùd±?—ùX…@ ð?£ÝÚF‹¾«/¢QVŠÏlW‡R:ŠOm*Jéߣ‡õ jïö¨@/(/cFP6A¨ ÇI@mì3„ø\ŽªõôÒúâeõÚ’=ê{——Ž ºþ»Ö—­LRr¿ýÆvv¯ÅKnò1™>òKvÞ£PßkÉÒƒ=Ê4Rr{ï¬ïWßnÿ%Ë{Ä™$í½ß’=Çv[V—¹½÷Ù™GŸNzañλí]Oî¼ó’ý÷öQã¤ÖvÞÉCM$ªZßyÿ¥cËÆIQ[¼G½tàÞõ¥ûí6¶ÏxáËŒÂÕ—6«¼ß²ú^å¥KvQØæ`š¸ll/eURL€êØÞ»"Ø’ëûí×ìÇê%¥~ж¤Qêé¾,)/ÞµÞÿ ?µ¾t¯Å{×ýÚé%9µxç=ö÷¥u±•ú~Ë–,­ÓÛnû/“Kôåkñ™úNûïÚŒLî/Ç|Ñ­äÓFvïÆ–.Ù{¯y¦jq9ÕÐæ„VTÑY6^ˆ±Êèc¶î¬¶åâ¥;ï¶U÷~¨;;v£CèÞ2ýpVãlÂŽ¯q]!U§pU)wo ØjÉÚ‡Ïe¨Œ¥¥rlïÅ{Rƒª¦÷gGK•L®˜Ìöå“ýºÒ®Ñ¢ÒNvýW‹ÉòhjĆ»)üÿÃFx¦é{kÖ4|5EkïÍXFÇ‚˜†pÚÚB]a€n€@ HôL˜ð ;zˆèC€ ÙÜÀÆ< ұlôA)€…Ã#?˜•-ôµVÒ‹ÒNÊ—OAmµÆ´nÖi¡Øír2Ÿ­Õ²¹b&»h³Xsm4í:ªdVÔÜ1÷²t×4ÿõV`ŸûëË* ï¹}«qÌÿWÐåfêz_­£ègÛü?EÑóÿEŠQ¤l˜ˆÙà1ÌÆ<ÃÄÉc˜y 3 aä±±SN8à €3Î8à€sÎ8à;€Íƒ g¡„´´„¾Bûàs€Ðr”Z€N€.€0@7@ ˆ$zz&,gãùýªT}¡˜¢0–Ù®›¦FucÓfÌX `e€Yg1û#Ý1Õ²‹*xmô{æaäÔû z®k;cÊè#%Z÷7˜ƒê+0„Qæ÷JHDˆÄ+`¶qÀd€)S1‹8 _ÓfÀ9_+a<¿2Àªp®†þê*ÇÖ@Ó¿&R´ÀÚð²ªåzð·>¾6Øà³Át®êŒÍS?¶þ6¿ÍØiÓ$˜¦ÙŸá#¾ø‚ð-5‰Ø–bæa)<Œ,»üv—Ç”[¾˜nª@`à|þ€¯·žÀäègï¶)€ÎLÀhhttt„v/(YØTÆvÞmV­~вY}KTc¹l¿Y-³†Ç–í¶dÿe³J;í^ßyÙ~ûM7ž²ª±Óï--µ¸îƒª•]†™Øá\qa¶Â†b¸0:TUߘ¥-ŒÎ¢Ý)õG+Ùd¦T̰¹¢¤Â Wrµl¹R*”klYÈe²®ç„AKéÕóËfr—cu 4<Í—Ù"[L¦òÙRi •‡ªe å|²–eŸf…æKÅþb²­º Í.*çU7uŲ‚éJgó¹â`•M,H^è© :ÍÓù¡LVÉ“ëqÓ§iÕœÈû]™™¾>¥ÚÚ@¥4Ô?àÊFB±¤R^tã#Ž˜ètš¬( vW>©QãÈs5¥¥,C¡rM—JÄÐ¥¼J›AN°ÞÉÂ\I •¥.o²n7Ú|V°¸qÖFÊYÃ%áÆN¨’]0„-ha#ÆÑŸ­UœnÄâÃRcq˜Ø‰ÍØ\&Ò4Áà«ÙZºT¬UJyUÌj.cT,ƒ7Š¡×ŒÊ`å‹éKVúSО–.=Ú7¤J~9[Ô¼Ó£e¥UÈ]´ñæVŘvûjb¯ãVÄ©­°¦Õ’ª„iUL+6–dqD»aiú*£™Òp‘y®¾‡Jù¬*ç‹($két²šeh…èSÝž¢M©rW²*Ò´ŽÎsªâh1™\2_ê¯e+Ë¢!™ÊÝ”Lã&Ó„+–†Ê6nÝžt.ÊKÁÔV¼|ÊQ4ä¥áÙãa<®>¤Ç—e¶o´ªLD¶Ø§JBU—>•­¹¢J¨Æuj\ª¤ŠZÄiÈß¾qùÛ×2›±& S4 Ŭ¦²³Ÿ±Ö*CéšN5!ÕÚˆòÚmØ(ÛšV’uig²\VMƒñ›¤ùUn/u¹r­JTF)ƒ®‚—LòbYR}lb\oÕœ²ñ¬ûÚ(*d>WÈÕ”áÊÚ„öåe3åœR4£0TsÃ#ý®§R%smæV´dú`À°ÆÁ(+WԊЧʠ²Vž”T0QOJA„åÊI'Û*AyÒjPÞâž*5`„uZ³™Qà`ƨS<$bÑ%ÆÃA¸”²<¾r5Õl¦ÙU²ý*;¶ƒÊrÀáa!#>æ4Æ‘©æú=Ì4Ý¿PŠ/U©\@S~Z«qJ+"F®UÆœO±}PeP5OI=µ¢[‹b­£á÷{¢1òPð¤ø* ê÷„jS¨öûQ°D>T¬YÍÉ/6j>tùðÇO/þèé¥!v“ _ä¦meôÅš¬ªiÚFHlÚ">Tu(ÕàNf2t—3è&•Õè[WåÖEM©ñjqÈġܪœº^båzêÖ•LÚ†%´V‚6l¢TÚ‡Ê6fÝ{@ M̺¿”I7ºsi]è]ºê¨^žõäš½ Ú­Ícs{™.šñ=eœo×.NÂ%­´ÂPÆn®´Â°ÆÃDíAYÏLva¡„Ö¾œS¹1Yã3¹ªÇZëÏ$ÍD tsß‘U²8j”TV}±‰ºb•«:k)T&ßïÇ£«ZÝæI¾+’•þ\‘„^ÁÃú¼÷+ 4ˆî >þÙâÂj-Y(?ÙÃ$b¦ÚïÆ®û¯ äŠj£þ*5ä Ùdu¨bŠœ_ت.®˜UNßéàªL UUNÔªJÅô€RýÊ.u`¨˜©d5±Ë«vEµ‹m‹)˜Î˶ m̲.ðUùžÒè±TÉ)ãªû¯½†ÔX¶{š8'ËY=¦Ò-ñV+¦8ÚÌeùžÙšæ–äÕþ7Ý”Öñ1”“¶bMm–Ñ‘à‰® K'R;0˜M«îµê@ŒVJ¥š;TÁðLO'Xl¾¤Úd•—é\Qw7ˆ†']oè,£kT)$Õ(hT “”¡«êW÷åŒÉ>3RÔ>[ò`·|Z+J1_%‘-Çp13šª”’™´Ü•ÉVk¥2{CDÀq””6 žoE,¨N„ÇQ Í Êõ£†qÕ¤1óUÕN.Ò ¾ë1/Te•]ÄÈ@3",»†ŸARªš­x,;féÊlôUÔ€ÒÅŒ¸7ÌÂÚÀP!åñÐî°uçT6¸®º\¿*§ª%_üÆíú.¨6Gwvà¶Ã$ÚâF|¸‹L·Í)»¡zâÖcAYU_U™/Ö<}4kl‘ÕX—Fd²©¡~›öêp²lJµñv•…ÙÌœfÄÜfļfÄ|Ez‘2c®cWsìẺ «ÛÕ3¡ÛUCC.g­’LzùæbânÞ–†T-Nç=Ôˆ‡êñç^µœL£’÷ø3Ñ"'«œÊTT7!Ÿë/ eµêVꬨÚx2©tUÛ—ŒË’ù£µ[õe8ºõ:i^†{¸¸_Q¨eXͦÑx¸ÊÍfú}Ê¥+áSŸM^§@‹ójd¡¡8·'Da\«˜¾ t{9§ôØ€q1&³“• »qŸ´j<$²/bå1N.j.÷ùÇÉE™è}wëL>›,¦`Ô]Íf*É~O³tÙ*¤²jIµ¹U_œ*yªUö‰12UÅDŸizMyS½#e€m9²¥ÅHµ•ª±4uÝx_´0W© %­©0Ø‘Fì×’¶D7ù¶ (”Ô˜¹¤Z&#CU:ÕDªVu„-HÍÍlÕ¹¨äÒº ](¦GUM)™" g:_2#pe©[˺žÍ§&W9÷ E=KÕ­ºè’%ˆäP­¤ä*äªU§gS#å’ÎàÈ·TIôÄB!§Ôš\4Íõè ˜”*7ýd¥P¡ÐCÉ陆A@c6=y0Ѹ8]P+©q Ë·ã t(†¬ÐɰÐZê/õö'Ë´p©èILE=d¶RQíˆq£ Ôi®˜ i ´J€`úUo°jDW8u]“ñxW¬Q ;•«’e/î>wÜ=* ªQջɧlųÈêHs““|¨B*‰)°j ¥dr3ÁÖqÝoòStAljèQ=“Õ’“¢MôÑÊ¥òPÙ0›<oåš2ŽbMF+’•êè/dréþd†µ’È~dj‰At¹¬• £ùl_Í7_TeÒ7²Þع¾ÒY”‹ûCjTÔ j¦ñ¢l@,ô´ÌtO®‘Ù€êß Un“y—¦uriBuŒõ컕S÷ÿÓ=N×t´aϨr®-TC.@eJé!·q%"Wá,Úˆë… "å¼®@@”+¥~ÕuƒTUEÍ»E8S…•àS³Ðw"°Ž”©±+Û©?¡]Võ­Õþ‹rQ£,õÊaTg}úº¿Ê…iÏT%›ÔM‘BTUýÉc)#k1ÙEeŒÙ’©ªåˆoÈa8*ó—Ïé)zW‘U­Ê&3¶.BÀd>]±F“T« úÖMË¡‚i+6™œ£g!P(Lí*}åÊÕœ6›ð³Ô„SöWå®oJ*©å+F¢/é^PŠQÅ8EÁ²‹´&•ÛlÀ¡E&ÊÒÙÉè6Ÿ¹ÉTaÑU““×jRΡbÎôWárkZ—A¨¶«äúõå`zѨé?‡3­š_]máB»¥†ÉZ­Ru‘ÈÕFçÕˆºØ€¬æR*sͼe,%Õ˜ƒ•]Äõ™J¿”Ù£ºm5 {ý •3vA­Á«ÁO2x5’Ô 1„¨!¸‹‰œ4S=W«¸^ÏÝ1µR%§M¦õ•­–ò ³ªÅÌé9éF[©š§ª^ "R¹k¹…ÙtIe½™ÆÓžÍö<¢*™a•W¨^¥ (‡ÙÌ `•Iªê”Àåšh¦EtƒE\¼wÝnf% JÕ 38­¸¢* QüES6€ð„š¯v³5<ªGT l« ‰íÒ-\Â*¨¥Œ—­¦Ìœ„^é18S¢[#i¬z›·ãǕDžv×qXÖZø¬Ô2Z‡ìûJ¶òôúqh¹üˆeøBj´4¨û øJcž!¯;G©Ñ¤†×TûP1=ĸÆd«*Ó´×.ÊÒÄÐ k˜ Líèîvo7¤šn˜… Õ*YÐ3T>¯èaWrÕApvŽ+ê ÍÞ–\1ì|’ЂǴ;“íÓ-÷œq˜¹ã0óÆaæÛøÑ‘TÆ×Xq…Ð)2~jÉê Ftj„»x¬¾UyU­ª®ÇŽõÛJÖtn§ºÑbšÎÎòŒº«L`n&nLŽèòeÄõµS-ûÊÂæ”ÐP=¿ŠÐQ,(Q­^îÓ¨ônW*¿w ܹjšn®—Q½µ}SßÕÁœ*– s°ÍfÞ`ÝFb¢©Šþr/—'jy.tŒªý©Ò"½òaqhG5K‹ÁJ8¼EýÈT­ØˆÀ$õ?BÕEmŒ½ù\º1¬êtjOM{\œoÈ2ÑE&Ó4Îf”>ÙÅ犔n—ÂÁBÔuújºáÍFx¡Ø†÷4y$Ò mâ#vB“”frnÒ8! Áç¿\ÆóYŸVTÑ̳xNc”1O[µb_ch…©$‘X/Yý•äÈø€ÄL_‘.›Ò¦ü{ryÚ™—É šèb>dÞµÞ–w_‰ £ ¨Ô ÏÏ@©¦ƒÍôËá”|C&¯<ŽÞ\ ñä+6?ô¶½˜Æa& =P)´ F“{¬£lv·–*ý~¤¶ø@æùR2Ó§ø¸{ Î߃Œ7ÈA½ûB+ó“¯Ú‰MƒSiž§÷ê±5bçžÚL.U5{U&zRA Ô‡*i]&ó½4£'²rºÖwéo*JÏtä&PrœšIšÉ˜\ƒÀ«¢ð&càð­_–Rߌ>\¶¼Yw¦Øè®ô7ºó}ÚÝméÙÌPZG '«€ÖWC=¿WxÖ6ÑçÛCÑ<„‘ͤ¿ a¤Ë¸QŠ^=dâK…T©9†\s ¹ærÍ1äôvc…Àæ6­R«·èX²Õ±gõìÇY]ûqÍúNÕÜX¦Ç]‘r]jH“­º(ÕeK—*ElRˆû£ÒÙõ¡˜u â˜ìcÔ銿Âé™4¸\“‡6iÆ5Tv}¹…” ¬‘°ך¹kÍ,b8Ûà4ÖÌ:“¦i1ÌU¹we0Æ Ÿ®qƒÃoÜ4—ÆZ¦ª»Œ“þ­Ó®#•4&ì«×Ò(‡jó¥þ’ç6ÓaãÖs ãòOL0“**ßïL%‡ÓÚç8©`ç]Gá¢ÆáΡØþ ëÉ=‰„_Vº}²’‰++\~YÛ‰+ ÚfAOòtÒÁé"óÍ) +²ž< Ñ1¢”©™¨üÑ~uUÒm[ •sçøaм9þ¬!Žj8ioCj(PIÛ¹I0B ïîöVˆr²Zu7=gõ’¤í¨øPþÎJSÚØ g÷ß*D)[PåK,–±{4ÅøNkæ0†IHq¨2;]²E=É“6ËŽÊ=˜Ëç5"¬¾AŽr™ÉcXå’Ywk7ÖÑívåðõ¼”Ó¦’¥©\½L§8­•ÚˆÒbQ8o”-TsU¶EvÖY÷ì±À–ÍTòúqº  *zLªlð,®&é²b¨`‰d®â‘¹øPËMšÐ'!²yëªjW·KãúJ·K¤3Úà,–ÝÀ>M(󮊎?ï-=­ši—‡ŠA¯¬ø˜DÂõNéÒPÑ ÏSúB™ n_ƒˆ¸½oÉ']>[ì¯ XŒ9‹Ð˜|¯üô®t¯$ ù!ÕA×õJ5ø6Ñõ´jS:-ªÜU\u(‘ôª—Þy¨Q¶ѧAg åÚا†pàI— sh¥R­™Y>Ê÷åïì—F¹+såJ)mñýÍø .¾A–˜—Af»dÌËCƒI¸~UíZ äÍ÷›³·z‡€²/ù¡~ìŽd3‚‹ô¸ Rs†}·‹ð+Bu”õ¨§še%4߬~ú;]s½pW@X£½Òó²ÆE[æs»'WÛkù§¼àpùƒÃíÎ.B°oé.wÄ|H½×ÈnwZUS>K›²­k—vy£0nŠÈ˜N4à óØÝeý¶¾©„ê°XèñèÞVa?ÒÝõÑHw>º×Ï™‹cvg¥Áº!üÛ½¸L ¬ˆŒ’ºŽ»ó qè?!£P<Äéòîp¥Óg-TÚGýÿUøÑ’»ÝÃqCÎw’`¢?¬/™F»}©Tuø)¯Ê²V8±Óà à+îó5Tt'€’Ã(Ç£ºd,ÌúqvçÅ©2>Îp®¿°Æ™f¹ÓpÊ™Š§¾Ýttiw5¢q¨j_ÔÙ=اoPÈK­Üªcw%ÃÑmÈÉ|¥?¬j¤”U]¸v éÙê…ƒ£y_GN9+¾N±rš9 C,b§v¦l%QßÊDQh„Ég“ËÀ ø ©:ë«YnvWŸáF{jü•“CfÕ„2”q`ÖúL𢩾9!0”·‘Á9”·L¶*n›´Ž>\rdÊŸGáÁËA ~“å¬OB±˜vÕ Þ`Œwð²KçAB=GaÓË) ›¨Jά›€úüFwÈcƒÀ\¿ù¦± éo3‡…º]:åp3qé%G/²¢«i»m=b|“eU“ÜTø–’ÁS/[ìRµÓ~W|ߘD´Q©2XNff7:ç4:ç6:ç5:ç7:7nt.htnÒèܴѹ™M±Ù;b5Ž“¸Q«6»¢eµ3Dóï*OåiÎk8s QAM¾ôÍq¿æº_óܯùîׯî×÷k÷kS÷k3+bßœÙÞçïs®÷9Ïûœï}nì}.ð>7ñ>7õ>½Øæz±Íõb›ëÅ6׋m®?‹°›Ó-‚ºÑ3®¼®íÖh—QrÞV~ã®X·)¾y¿5¨Ð³»”V½"¬dÚâW«¹&]©f]&ÙE~G%[ê³AØÓ1ß®á tX+4Ç–’R¶`ì›±R«¯÷]Ä:˜hÆ•Çùä›àEvŸ]£{.Û$å^XʲªàšãÜÊíÒx(ÙDkDUW”ÆeT÷aðXžn‰Wê067aL{¥4¬Œ‚6ñqªµNV2úB£ô)(>«ýj\V3Û bÛÒö¼ª>:&˜'4 )ÙG4Zåhª¾1íÆ •9m×Ñàö5œ0‘§Sz®J}b›†—ê· (æ¼#ÈõABãà|}¸z`ÔÛk˜Ë˜ájcô˜ 7Š=šÏÛˆë¨YZ†[õ„º]eñØn·K¡Åo ;€iŠ•K) hg†”;þt‡*ÍÏÜ©Ðåsë3µi*û*ÍjŠÓ×g<¥jÜéà{ÓœÝ^dâSîíª†úÖ »Ãf鈨ŒêVJ#Ãfóqno¦× ˆá%d/g}a•ÖÆá””þÍHggs¸›Ce¯jÙé=¢L1.ìá”Ép5îY$Ê·y£Ë ”ôqà@•çuX6LÖ,pëc4~‚ц"ÍðHVt™ØÆ…´žô!¡ô›³ý1[ɺS!Ã]´I³ÓY£°t6„j3Ý/Œf.…©·=…È4Z XU OüX]•ˆíñ°,ÜDrÃ@~pÀ×3õP¹â¶Jv³ H£l‡´ËÅ •Mˆ‚?Ëô`~ÔÝ&GÑî'Ì÷5–2 T›­ÒPSÆrÔ\6ìP»ʼ¨ÊÌÿ­nJ¸n®!@m.«™jäáFÂMȦýaº —j/Ì’Ï=˜½ÈœÆHmË»x&ùð¦é’0a¥ÖÏÖÁ6“}øFÃ:u<ŵ®½>F˜nÈ6ÈÄ +¬?’ê0.ï±›*q ?Ó§/xãˆI¬ïЀñš Õ¬%‰ £ÙvÓšÙõçK©d^uì z¡ÆJ·(W³GŸ{…Öšém”Øw¾¸Ú7j÷fÃJ •r£újœ.ãbçÁ:xÂ0j0&£Õ\ÆlUUß´c1ã`”E³W•xÑ[sÂ¥ç- Õ½¡;j܈ƒ“GaNTö§ó4‡E{ˆTÅ·÷:b±¾É/ºÝ¹EºT#2d®ÿƒ;ÆzžêPøPé|U£l(›RËÓ›<ïO«áoÍl˜q£«ìýˆÅ!Ó™ÄDú²¾ní2ÆÖzdSh¾Ý&M}»v‚éY3Mš-ܺ%Oê–Ê  ƒ†Åån\ˆU3;u½ Ýí"ܵÇa½ži÷›{Nc>º4R/‡Þ 0A;¶ÊVF0µKnFáDçjVzáus1#ð¤û‹{q [Ù|É^ègýyl S-¾Ù…Ñ—¾øn4 Ìû‘öN÷H¼//Ô`ÑF©ÐF1°>؈Ñœ×ð”lJiÍ}Uò¦ƒxƒU.Ÿq‘žz†²Õ‘bÚ—ºÓÃUý¨/XðÊôiW‘F2´H™|?f6­2Ê¥R>[1 œ¦¡8p ÄèÁ\˜“³³ØÔFÜ~ÌBÕÀÖJ~ –X Æ+[œKöÊž–Ì~ϨK7ˆ_YÁt÷z„á‚ÞZg¤óêÆÁ~Ò5{¦Rc fµd’[VTÉ)—ªÌM{Í8‚ií¡tn<…å*WFÍž|ö%sy}ÇrT‡ªØÙ^Ér«¾¶Ç®*+îzN«&Ç} :be-ÐJÚ‚ÂfZM[­Mb¦›ü/–‡jèh™mìZRm‚ji4e¦Žº—¯š[_mâþèÌÅ_ì«ðº> Ǫx%3/XìÓyÇœ/¢ÿ¢nr×.»¶`Âäº9‘hFšif”D}E‚I‰W²Ü¥„áÆ'Èž6¦9jÝÖ8Ç\É|šfÙõ2€-U·ìÓÚê¹!ÜŠsE@Uó[(néýÓh z,ÊLnº7Jú‘Ce›ƒž?½ô寴 ^¼Ò:x¡UðÂøà…†àF¯ª¦êƒ%Ý®Ûí=kçPÙ/îŰöFuZÜ­ÚÞÛ ?ÆÌ›ÁnæÐN—‡7Ï´L5%¾å®Aßæ'{¡hª*ú)<Š÷ЖÌÖ¨\ͬ¨u{&é™^ßHÑÖ6ÅÆ׿٠ÆÔ8#wå°n}Š$f­tqÈw¹‡ÁP'QÛbÖx¬[ÚàÁ+¾P¼lÅçÉ3¨F3CÅFâ¾M2MKdOÖ™~‰F,øMhÄÙC~ñF4Žù5¡pÐoR#Ê67ÅoûYe¡âéÂõaXM$þŠm@™£»>?º˜€•ñ+Í+­Æ,4l¬xþÔè¹:jÜC]$¡Í¶mݼ»Í;Ínúî¦%á´ƒÊÏ| .Ý­Šûq:ç{|eË’,?Œ\\œ5¾ÖЛvËÜms+Y®©®†µña›š…>?lw½«ÓxeæqÊ6*¦eWc•LJ·-ü£ÑV1Ž£êP†÷¨6?ÊÄ0ÙCé†Ü6ë,¬ Ëe<¡QÚ>ÂCJÜBÕëK©‘¥’Wt9°4XêJ÷î|YbI Þ1Ï«¯ôÇŽmaÖ—„5Ñ8mlXØ2–É™v4æ"lCw1Ííbû¼]êS´›õ´Ó]%ö|Ôìæq²šNf²¶H( ™›ãF ‹zxä…ÅÎBŸ1eÉE[ÏÊï+¹.Τ×ÞoRõÅZQÙ‘­Ÿíz£©Ñ—tÛ­ëÛã6.zždJËö+ÉþðÖž} ܶŸ×ØPù ŠAùš XŠÜÜ€Égq «ÃÔÊ¡šÛn«¾¨7î«Ö²Þ¸K ö™lQ5ª¬`ž­bzŠý¸$F¦@W-Þo^ÅvòÔˆÄCZ;€¾”‡ØÐtŽcÜô¦ÉIVÓ)-§Ü‘ŠQ:¥þϹ÷ 43öq‹ÙaóþŠ{¯©yŽÅNô6šLœèXÍV|ÝD:T´¨©F@ì9VtsŽ7шô̾J`ߢ†.™r“lYsKƒöó£èÉä>†¿ZʪÐ+¼ÝÖ¥Wv»¬Ód¶zŽùÚÄbÌ~”D£›¡zqÞò@MŸnàsÍŒ+Ø75+&VmšdO_k—=#«]ý•Ò0:šf7… Ô|~|‹…5mcrß–^lÄ7Ëc† ¥å×i iùÍÖW~¹º¥ËÓí@Íïgͧ¥˜ÑèŸÓÅÚai9ÜÓ^:‘^áÐnæ»f:|FöŒÇ€>\ÉÝ9…ZÉîê¶îWW{¬“‡Jr}Cæê ßÒ"¨OÒxÎ5Ù8Mîs«¢­ 1õm¥™ØŒ1>y°Q™×Ñj!i.â¤3e.rEb½ókq‹iº‘(wSÔ‡â%?‚dº ¯l®ÄU&i—¥o‡å€li` Y²>-Tck\fï=q, ?Æ•¸ç«v 5`&ü¬{¡paÅ¿bC2.Ø©p¦‡§÷ß¼ý7]Úém˜)xfŒ³àÛª£jÖ¨nw¬K·9ÖåMÀevõ°À#{˜ê¨òÁ™|’«s]£»§Æ¡¯)ÐSâÞ–²ní¶3ä†ìžO˜°þ«§|8÷."˶¡×Rõ››almwïÈE$öþ[+ƒXmVÝóü&±µœÝØlÒÇí“Ö·½ã,Þ˜\wLå‰ ”áPËÙ †õ¾kU`mìÆçÄfUûFVá(ª¨Åx Ê0Ì.2Ã’y¨I.ÆûÆ$1—`oËéu1zc“¯ƒ¦ý5ÖXô Y"z| Kv¹ÓCj/uõºM!Ò‹Çð<âb½«Ð´ÛkÚ4¹ñb7ã§V±È‰ ½¡í¤Æ<ÂÄyÖ¤Ü㮇Áî5µFuå²o¥WãÆå²ÇÛô`|÷!“#YXÓɾì˰Ÿ^‘”¹÷E©;mdÖ]߬?_|¶ž—çTì•r4:õÈØ<'ÂÍø™´¥ñòpóL@ºj†»Ù\¼fɸˆ •3/j(wjDµ.0§¦SÑŒö•s…Ö‹yŒ‘í¦Bå ös§ˆ5<1ƒÄn=Í»ÛzÓθqú¦ô£.#c…ÂãÚv¥2ʘ'Õx'£TmVÓÛûqÚ_®XçOã§CY—¦ñ,š*Q†‰ç6ç\·>Ñ ñÁ*˜; ”y[Ä#̵#A§ŸîŽŸ4½5械2ž3køéaý\‚÷ìCŸÊŽáQ×:·ÿveƒRvC7>Æ4çH-™“w=Mˆb©Ï\YUŸª¾ÝÓ¸í†s‰¢¾œžÓ_ÝÆƒY ‰i§Ïšª2eòÙBÕÜYmºbL_¿ˆ»JæJ¸LU?h£¢Ö×KVùM.ï[™ÌTÝ6Ú00û~ã~—Þ”÷üûM~¬J©Ù¬»/Oåt6dxæÑΡÒŽhWµ –ïOó¬-Îë¥K‡mº= žòyw‡‡‹ôï»"rïðé‹jÌ ‹>kUW&»jN+D¹ß%w»wÅsæU1!xf7á †¾ªÖègYâƒRYê5<ñhŽñ÷ˤÙ6 ¼7ttRÜsµS\_Þ%¾ÜbT³¤j R¯§ìŠT-H¦6`S®²†'Æ|±YÁ=™˜¦5¢¸ZètQ‰ñ™çBˆÈ(z]~~l'0NW7 û[!MäæÖïž! rBs.d%Í¡>Í@[J_ 1ˆˆO{¾œÂ†uIÓiJŦûæ¼riŽim»G續³Š»¢.Íô1a/G¶æ%ï?3K›ËNPza²’ã΋¸¡ÀB1ÁU—ïrÁ©In万µ¿’Ì…5¡ ެ“ÝÞÉU^×·ÝðV5÷ƒgF:|PÌŽ6t”îëÚéÕPì¼SCl»Pœö´´gÐÒM-ÝlÐÒã ZÚ3hQ׃Ï|¥ÌWÜ2ÅUËÞ¦ ‹òÝÒK¾•RÙ]NLóì¯J’yPʈ¢”SÒóÂw”$r‚FÓåÚÓ„ðÞkl],Ò-‹EÂPü7WÄ­o力.+LÉœM7¥I5®ØL´R6ezÌà½k7,Æ»wCcP÷ ]÷Áº”ï®ã¥:ÎKc“njNLÁ…ޏ‘x—0¤ýM‚‡È§¼Ç/}ˆ¼¹ƒ8Ý¢K7µNF^ŸñOØø¨›*#ƒõ„e6ÿã® ¶7Ýh{§¹¾P«L¿‹æ»§Á¿Ï\¦›Í¥çÓÖ衜ϧ9¡9B½‰vBsÂ={›n¶·i¿½õ’ÙÐ¥Û¦)®¯–-aºuK8NVÝNpC4 ã6=KÖ(cÔõ Ǫ>Ûi¬>QãpoéDã}ÿU÷.ïŠþª½G@£¦”™1ó·š6³‘æ› õÆ>º+Üý•œžÉ©êÃø¸¡Â:ûµ3êQ+î·~„i®¢^0¯­Â\mºÛ½^hm¸µ¬× ìÃò¸e®o´ân‚ KÉúð&%½žƒïfc5xžè€Gã+ÎåªîýáúyL}ñ£^ôD˜àCúN˜äC»…8WHën NIàMf#)ðÕ&üŸß’œ}qÒi"MkÊÌ LkÎ7óbBêõZwÛ™?¾fÒdCbƒæ'R `ke1ès<-Mf†€Ü¦<šIêvé+_YjGŠ¸Þ¯ˆyN¤ÇöÌLW sû’Î8bR·€Í} ~j Š=8±Í–¼°ŒK°ýxèÌàù{ýpS®f66`t¨ ·†›©ýþ,Îj§µ”1BK—ðaü§-±2mæfîÁl¥˜5g÷+:Ÿ|… &øxÏIo»ÒÅÁ m†à÷®O ÿ¸Ž¼˜1¤nåöûæò }i<Á,ÍŒ'T³ ³æšF‚»{ƒº$ËY= ‡>@E÷A|H<®—0€Ãaºôá–5ºÍëò~ïæl™ëÝï6Kè1ëÖ7$ š—mè#Ç7&u/P{‚>ÂD/®b¿?ÅâÕðC )ToØ&g‚ôCe%K)«Þt¦4Þƒ+{…³Å^ìn,z¹pBs=}ü5ՙà ¾¦‚—lÐךÑHªdó<Ú®úµC²§…¦pUl§(Ör*ʾ‚_y–\û¿‚UÌ-7¬§zNŽÍ«iövLjÄ¢‡“ãIß) œÜŠÄr8½%eߘъš+ð|eM[w™Ÿé$ž®«4s6y\HæÜgK›Üœ¥šdG?†Ú§n|”¹©A7Í*P¶eXèÃñ&R:Ýì nŘÐH*«J ©1g‰›Qƒ3Iªö—àÁfU‚î•ÕqdUn¤oŠFÂÚŠ&Q­Å"=hÍÅÌæT âù²uúxY¨{-ʌ֢ãÊ„ÇÇ…ÕB ò„JPùÔB7þ¼š2žló«EHžMm$7ä×´q4  ã”ëeä´q¤‡óÛ£iÍ™âÚ#¿5²µeœ5² \5rÓÿkU–+höª>sßœ&m…åGWÑÅ­©^Šf¶ ¬›¨ÂŠ‚ë–ª…èš Î&šlªi0g¶ÂúRäÚOm§Ê¸[V?Éäµ0´Î~’«×D7ôÝýj:¼‹w*zeLG«C쨲9m"ùînMæ[…µW¿NOÒû¤ôc…EîìÔ=_~wi¼nBº4A;L¶ &„ÿëö›—°šÀ:8K¨Æ†£Åìäé),"RCù~Xû¢ç‡/qšé%¨”TZ“fí„‘Mè©^83Éb®:à‘3C5Evf‹ýyÐ]D_®È.ƒ>ÜDås«±rÁŸ"÷„ÆÞ$-´‹ÊñÜmÆ<£QÖ›§ñˆØVµ“L™Ï êú¹¨nèp¶\/åeOxîJm¨¨AA•’’¶A‡•!e(ýlªùÒ¤/ pgè:]lPSu¯'úµ¡Ê ¦:”jÈQ?Î.®NôáT÷ÞÅÏôáMncìŸÉ™=£Ó¬j¬Ê¯2zþ1¿”,%“›1£©lžY0ÁG1Eht¨Ú=ØV‹NU[âÓ+à^zÒ„Îæì¥U†`Šë”q(Wö©ãI*R¥ád±! C«ãÝV¦L‡2~§Ž'¨ÔÖX)üEÁV‚Éãq†“?7Ýò¯ú£ƒMoI,ލïê`ƒ}õb¥–èÑT%)rùfm©Ÿ:7ZÈ.Ê!¯¦´¢•2j(¯§®ÐRÙ²=Á"lm]´mNOÉ4¢íI¸^K±¥5•ëßX+ÞµÞ– mÇè`UߥëÇ¿^Å#Æè‹ùªÞ¶gvx-Y»§²Øïž77•³Ï.iR2_HšW…4Æ¿KÝâúò°ÔT{ξåeH\wÈêSG®wle§â±]Ru‹6=oÓMTç£?‡ËÍõ¤™Wõ®ìÃêM £µÎÏLòQ0ËUñ^óè¹§§çs&ø™¡ò¨¹ÇyÊø(í|‡_Fô6·*©¾ÝÔ&¬ÿºõé>÷36Pý$Ý/ôp‘©lÒ„Aš3#£¾³£†ÒŸ­ÙÝ~tÕ‡žÒˆö‹3Í#—ujc8+_iÐŽ¦FF.ˆn¢›ÕVƒÔ«á½~”-slc•ÙÁ´jν›È˜33—Ù`«Í‚ôhÒ¬©ú²U+—ó“8ÒÔêLerµÖ”|²Rð(PŠ>Ù7jŽf€f^,.Ö’¸¯¼‚Ê\,a ¤ú-°g~"teÝhž‰ä=}Z’¾rLÏõ0)j88jŒ8E× 1Ù#5Tï .-È•aº\%¯üx˜Ã‡ŠZùP5dÔÜfeÊ‹6—¦4d3ÅÈCë{ì“ÈëFÊì絸q>«-|V}š¢WÍòŠ?½F°lUDŸN)‡/1Ž+³“VàÇhÎGÀLÛi&{ò–Š¡F¢Å,ˆèÌÎvðñžîEè¶d4©šÒþb¯LTF|dÝ–èE Õ1TO㵩U%«Y=†Ö$m£•á­–TÆ1 }Q‘¦NÕÔB’Ó$®)º¯c(éÒ©Q÷wÕëq4Ä\Kš<®äÊMÂb¨Ê½ ALMRUÀëdMð“8^tû^Ôw©s‘ywö !*ùÊ’éŒ)y"NmP6Æ ^„ÓiœˆËZódŒ#Q¦Ô™#®zâµ–3…WË6`´Mñg¶QD¶¸0W) nô“lº£gº}þáê×ZsÄœ³ÄèB4jJ‘ÞRA‚Û‹ÒK;Äù§".V7'4ºm‡lªSŸxõÁ¬¢ùi¬èU¿tïo Á›³év‘ìxré.qÌuû‡µ£e´Fˆ·yfGŒüÊŒéÐÀ¡vj̃1¥]IÜ0Å Ý«!-E ’ïrƒ|®¨¯/Ž)‡–?béãÆíÓ,M%Û¿âAÅŒ–ÜQÁ*†lŸ[µ;ÉPÊT/0gÎ¥kE}Žª~AŸÙEeîæÕþÑT®ˆ6N½D5ÕïRœkµÌ6ëÅO²—÷®²Bîm¿(lz â›HñVc@Ö’–d$ƒR«+¤êMêI3ݧº±ì‚*S1»˜5‘XÛ·«*³\²~&ÛŸìD+îÙª`žkVs•¦ô†Ñ8OÕZfœ§U›=qâ ÑÏLO$?1ƒÝ8ý¹´6[¤7Šáz˜:NnWr{û4³Pa"Ÿ8Ž>RH•òfo>ñ#}+¾9zz ‚wÛ´T,‰TìÞ f¢9˜Ü*œ]yõ)`™Êæýúw)¦›ÀÉ­¨²z”qy­)Ts« º¶Ò‡ÍëV)3™=}ÅY£r{¥æzÄé=_ejÌvP3^¶OjAÈõ4"MÀ¯SWàÑ’™mýÝ—ÖPÛÆÙäîÍù’`VÈM÷™öobk"G(ø¬¹º«¢÷õ§,Ó-ªñÓ ¥¯ ¹th ÃÖ˸>¡õiÚZÕ±«¬‰q×Zk+à³íî@ ,±lNÏïÛúáÃÛHàiGO¥² áßo4Ž˜ÆãVÓ[SpánvØW0|Ô¾r©5ÃB®šöõ—|w®ÇWÂýsxým¥V¤6ãàX^%íӳܮA/˜Òâ­E”²ÛuÕìsÙÆišFGyöNJø£@’0íÈþ¶¯ƒ¤Ÿ@´¾¼™v ²ÃÞåx¼€2c^sÆ=Ã){+»¾vÅl„4>ý}ÔêïÕp“ïGª$ûj»;S?oRMW‡Êe{_oðP÷iVƒŒyÿM•}|곤µòÀH•·pÛqÃú§*tªl(VTO`'qÿ`_2mç }ØŠƒrÄÌšûc¢6må½ø­›ÐÓ('9wÎIqÞþÄk©xp)ã‰5®ì0'byQ­êuôXD©Äì ªÁB¤“æJPíܶ”+ZÐÔðžýü<öÎã$yB«s¸Ì‹«‹î5*Ž…¬R8¸lþu‘©ŠÊ÷e3›¨úpæ"^Ó£“™ÂÚw¯‡ƒ^K•œ½û!Ë÷6­?#k&—2šÖ—–•«6;ôŒ† SÈ*îZÑl”Í=¨¥jMOôê‚ÝÛˆ3çS¹c —k©ú‘ËëÙ¼L ù2„û Xa};è‡2tÁq7Ÿ)FªˆéÊÆK¸p›I)™R1¡ÂíÚ$Ë›V²&ØhÝ÷Œ³5ÆÇ÷{LíÈ籞…Œª-CœÄÌÖÌí Rf‹µÖ¯¾/•ƒ (¥FE>D¯7çs4SDt隦 Ls…9Ž0ê«»ìÊXºf^ÄN.Ô]]jh9ŒyÏ™ëÂxXÎ}‚j”¶Âßá^q›ÐQ-³?ôÛ×ç,»çËy7%f^­Ñ¯Å¥6D ‘UÍ‚ž<Ô‡‰ì;Ê8àÅ”bV¶±yfæ ´rJÕ¬õ3¥± úëóÙM}ßó­úVéä¼€ÙR^(÷Ù#n¸4I/R©-«çÖ5EQ¸k•¡,'\ù´O ›OûUÑgÈàVCl}m#<ó¡/È«•å ¹N÷P>ïâ¸eÈŸÇîˆtNÛ uïËb',L…j1%2Î{i0k±1ƒ­ck A¶’¬úxNðBs_KZý8r1è‰Ö5%d²Å“y‚¥4 ¶h΂ĭ+? HÕCÕ°Qc89b.Ç ÜLÆl8±’¨Ñ!ÞÏÔ1¢óÒ€Q”RŸ‹eÀsÂ\Èql`IHa+|/#Ϫº‚;½ËžY2ß(ŠU”[ý%“¯Û“áÅ}Uª?0j[ "-Ž…3>.жóCÛbw§/¬y‡ÝÅ1õ Ëqñ4±Ù‚ë†ôÛ–’©†X²©Jv¸¥r<•K7„ãáÂ)Ì9;Çw‹sY¾F wTÍ+#’¹Y”Ø¡J©œm`i6$ L7È–Jâê¸/}ªÞãq;ûÚp_Ÿ>lhúWX;Ì‘(ã2-DÌpÁŸI÷I¾ao§v×LïP}óáż{u½ÂhGX;Ì~kã‰ݡ‚e[Ír´<†-¿£>¶D®ª5\8b#UeÆFÚ­1Ö¢Y‰-ë¨/€Ÿ]* û³¸Š-ŸÓR¤ªÞ ¼~ »ùtw—´éëoÓô{­“·g™‹kyK[ÊzH4cŒ®=›.Ú”½Áú^ÿýHq¯QŠj·j‘“ý<‘i)Ñ¥éJ©ZµT5"Ö~ŽÅ¤<Œá Õ6Tç>;§Á5·Á5¯Á5¿ÁµqƒkAƒk“צúmÞa84=&h$™ï«aÅ8â“-¯˜wŠUñ\l–¨„Ï :ËÀMhôfÑ1Ÿ×Ô 0=5ÒÈ”,çFímee1RŽLÒôqð]2Bk4œ±'0&‹_\«êxxw—«zç®ûkûM9oö(A Puû“Ð^„XÕ· ÷4àªÊ¦›«²Oõ›Pdg"ÀØÐ0ócRÙ…æ~‹áÀÑÊ©1`шt©ZÀ³~ÖC¶¤‡E¡gD‚—Ù ž­¤± ¢Œ™Vð.B7’Øÿ‡} ö]s߈—%¹Tì½ÀzDG§¡¨Q¿AÀ7-Æ•Uó¦_W/çq*Tw—† ìÌš0]ªBkI¸Øû¬»´]XÍO9ô“fZº?C)ØRÒs”ûLõàÜœŽRCÖI—Ì‚k|ÔnŸbˆNÈ–Ä%[µE¾o­ ƒ×“JGLguQ£sD”„ö‘œˆN†=Ü¡£Gš*F5Õ7È—`Èt®°ƒfÞzôa8<7¥DcÒIl}³^ØÂ©ŒHêVCaܾ¹qƒ'ݼÎ4­÷‘tëïtN•–¬¹¿=­z":ÓAÀªED;²y¼a2Q¹‡ñnGX³:™ëÈ5Å`¢CñsÈKƒ`ͨؗWòF ˆþF"GõÕ¬éQ]Dôõšj0&¬+I¾A’ü8Iò~IhJ|š(kÖýfTÆ©°tMkãKfšü`Æ/+JæRp…PYÃù~Ëß®Ü \yœpåfáÒe-\T{Ò„-¢ß®á<¯ÿ­{RÄéž·E¤]D—ATF7›­¯æ¢«€qíªö.Aƒ]¶Á«Ie¥‡ì<¢FøÏAk ö„劑uÃtkD Ažs¨ÑY-58+Ô…Æ1T[±läú‰ˆ¼îXUÒÂÕm\œ”ë·Nÿ˜ö«ÆË æëîez´?“›;{ÔÌŠÆý8}4*f¸è÷0ÔŽjL&ç{+„ßžªaæÛ+×ï^‰†ÞÄaØ—/•pKv¾É‹bd…ÅYÇEVXÃWEÁ‡8]’Ka,=j,ªE•±³N£>T˜]ÇY\‹ŸàÃãâ ƒæÜæzó£ÞëUa6$<Œê«xU¦Sö%q$ªË`°/A³´0ÏËôøqÕ¡JŸ{ã²Ò  wǼÂ`òÉÝ@Ž{û•1·MŸAé)S½†Õ(=‹lïݲ³Ó0æCéùè.Û—Ȇµ#]*çÌÍž™‚6›‰é„áÓnÇŒ]6XÞL#”žö52Œ`i&?ä½1PÅ¥´5ÛŠëÐy»kßܨôJ ö<ÓB¥£%z~kôÆ.ÚÏ?5É-I7Vû_ÕÐõµÖÿ¥ÈÖÂ-pÑ3Z*ö“ç­˜LEÿo²§¯† °©oTÈ‚…4˜•¹0+½ÍìGÓ[a].~ûUž³`°1oî`C]/~ú%-³íš;5oéFÁ{<6]nå7ßÒo®lÖYÒM8=Χ›,pº•æ4er´¨Æ„¬Þ1íæYÔ\Þ>’’Ëç‡pMfÑÝÛc+N´‘šlF¤šú‘v?ÃgGm<µ`n*‰˜Âw·y|¥TÖwãöÖDÜ­§†‚Äéׯ¦xHÚ m# öapŸÝûŠûÓ(« ½+ Å•~/‡ ¥…*ßL/ͦR• ø±iÊ.Jç‡2YEy²i %Äñ—⊋ÎÔ r $–ÛÒ‰5§LÚU­Ùã«0>•ñ=wï­>ÏD Én"zúÁöyS,w½,ƒÝ S0,+Xúq÷´ƒ¦/·4,¬æØÉIVÒn›µd_ ìÚ¦‹iX &sî‚paÚR°bÝÛ»âÖÛ˜ƒõiÉ ì©í^O£¾eü .–׎Xt›ç5o…Îf‘©äaOxåòÛ >]ç« Ê‡· ÛW%} ¬n¸)œ»¾]}3Þ.p¤[¡ûrý°u6RˆGOnò¹¬:´.%Þ@iàˆí.µ¬ŽÕÊl™Ð }”ñú¨ˆ?†þLΰÃÊç¯nÜÑS1oê:Äí&>/å$šåþ¢[cTVx"€`³Ã,ûh×XmôØCc׊É;ß§¯¬dr)¾Äh:#½¼4•“IF]èú¸®³vØU§w"!Ù7Ü¢™³ÀU„iæ,׬ÌYàf…¿ùQèž&ŸDúýúXô6¡ÇÇ…Â;g[|uJ1ÖÕ»Ög6à½Íz¤–kþšãY¿„®nZ ‡Ýzo÷Œëì[d®Æ;¾æ>ÌI¡µ…œ ?‡L2ÆÂ‚€«„úô^0ïAg†¹¦Øä·ª‚Ì·€H˜`v°iÐÓ-wV#nñm(Y)øc¶‘è¹]ž—ðÞ¨¡Ëp7v#vÑ€_R‹M«n¡ªû£8À¢uÄ‹ö¦æ"îQêËéã䞆ô4vÿQo#Íì܈õíƒmÔ¶²Ê˜ºÉ™Y WÛJYæÒaUJá,n+ŠÞz§)+µ ã÷ÐÓ"hSäܔۈJa–¢1Öì¢d?¯Ê¸ÙeÂãA´Sô^Õ.«­“FÊÄŠê4•5¾Qnei+æ•ÉæÐ<¬ì+Ÿ q}ZÞ}1×GÉ»«õ>$Sß„K•Jƒndg浚|b»ðøÐùLsÔzrRo%n ]D+nŒÚ5ª×GÌÐE›Øý8Ü%3ª÷ô6ày?Z¶‰±ª¢Ü*ko87h*Ð 1uÉ 6±QeeÊœôr«œµEyr±:§Jî^\Š=ÌÜ€Ô9@ÚÄÖ4öèZ…áä8©ˆÒR*’¬æ¤F¿ê>áj”\²E4ôWDã+Ä+ ñ¹âÉ´J²œËèP-) ÓÄ/‡_‹5jŠGK²lÁ¼Ž æ# cÃÄ ‚‘ã*-IæºKÖÊxÑÛÝŒ[S¼É•iâ8´–g¼wÊ2cºAŽñä¬дXSÅkpÍ¥4Í4];}ÖÆOL•°z Šé"úꑟj-ØŒ45Þ²[b¦´ KÞ j)•ÇÍÕn:¦·"º ™ÒŠªS2£ÉKJËHmZf¶"ú3µݤƶf¶YwŸýUM Ÿy[¡¾Eó¿<0×}²[¨è.û–D˺%ѲmŽWe®ˆ+’Üõ°"É]6Š©M”t¹·¢YÆ­h–§ÍhÛcò"åN¦i+$×þGX.4¹…Ï’3CúHÍyꊨµÌ Cj¾äqt±˜Á›w˜°Ž¸8=IÝkÜ]>n Õgý0ñvÒé™CÇ gÍ”´‹­¬«°v?³»ÇÖ¸UcÉ{‹í.æb‰Êj4_Y‘n°¡eà­ÔôYÖr÷̓¤gƒôúñy5RÈÙ¾ “Ì,LÑÌvj7}³ÿVkä†5ÊŒº#ÚåξªžÀÑÇL ìëêcchgÍÚqä|§,H÷¿¹GÑe¸ çÊUKÍUK˜ÂÊéI…À[Õ¡Q¼ØO3O©?õéU½Æ¦¯v0×§èËYóÞ¡³á¼ ©‡\ÜÞ^ÃêœApÉÈsræ~Ї` Sæó¯oÂtýëƒ]v#´§”uh¸ºlX8d%ÔG¹³%Ç}¸˜Å©ñ‘Æè‡×y÷2ݽòj@ºÜÜ“•¾‰Ö‹CŸ³Çô.Ë çÙóœHÀÅíz{2O`'sµÑÙömv`’Ø-^½g†–ðh|é YÖÙkp¸»dvŠV°Á|¦‡ªfûõ…Ò¸ؼ›é§óýÞ‰=º0WÊ'ݨ Ý]Õ)䪜ötws)5žÔ¯•MðEkz ÿ{ogQþ¿»¹Ó\m“6=hH!@[röniŽMšc»›£'KšÝv·¤IÈnz`‹@ RB•ûŠåA‹ ¢  ¢‹Z•£Ê‘ÿ|>3ó¾ï)àýÿþ(ì›wžç™gž9Þ™gžyfFÌ´cò(O ·R*´p!ÀL5¶ÎÐcZâĸ˜öîè˜X\’.渊Q{™âغmñq©$é…bÛŒÕyÇñë2y¼Aâ'äó4ánÃZ·Ûc†}*œcáyŽ ði@®ƒÜ$“kã!!…Ír÷ªÚ6œdìq+;E‹ÈS\ªü &)P“È‚å’kƺb+ y0 Öªô×\l%“ˆœ˜,¦ú¼'&‹¨p¬x˼MõBÅiÅ&w}ÔƒŠ²å¸Þí[ÞUƒ%ò@²!ôöô$EW4IÑIÄD[9io.]J6nMl˜íÍî.œfã‹°•«è­:êqQÙuÙÊ5YdË­uÍË¥ÙlBŒÚL31‰€ÍmrŸZ’hMuËQv[emG{»˜*uÕxìU˜À±ÈJ­A(jí5¾å¾®&ó6c+c—Â[³ '®È¥RŸ½EÄ£lùBŸÐ Wíse“pTŠyŠ™X}’x ¸q±åöÅ‚ó-0nƒ«Œ [fƒµèxšÌÛx‹óuÓn¼EnkÒ¯»ÁNŸn~ ^ëüç˜SÁ ,z1ÿQoXÄÐö9pÿwK[LÕËìŸC,¢ ¶ö-3° hÛ±¦³/úßF!lk!¢£çu_º²¡okhˆGùFåKŒU”˜–깊“ŠÃøFãKˆ“gaê:¼>½ÙÚÖÌbš±šAñî!ôîöfœ€³•,ÂímË–5»íÜT¤ëOßúkï ÔÉo¶ïÁž߄п{½Üßgn"j¬­åÐUŠ×ÀØÄMÅqÌ@<­ Z'g ÐgÚ¸úEÈcÌl\“@A+jdùªx lPÛ7!ÕYÝžlßD,ÂÎW¤$p· ¶z²Áb•½Öìà q¥Ñ)a ‰GML+n|ñ%Á%‹Çá¥(Y,bìM±Ñín–;ÁaŠéŸp±µ'Xu4ÙëÙŽ“JêGcã$’ÐI6®‰mvнfåƒøxx| ïokí»Q_<¦<ˆITm[mÛÊD¤/ò[çÕäzäJÙË2„4ÇXÑG¡°Õ –€0¬ÖÕ¨+ylu“€+ŠÍ''²ÖŠb3jÃLJ(ÛÖúvïòÕRÿ”P²v¬í›hlk7‹ÛöMØÁSíc–×-KÄ+úsœjÅKN09¹¬ñh_rô”dé74×ø¥ïÔdÉÛð*[ ÊÙ[(.<¤HƒÅ§_/žøOÞa¥ÇQ‰Q0ÞU.•Þ¹§RåÁ`8«Jô©-8PšMÏä$°ö6ir¬°$ÈU.kgB$QŽ$¢J£©g– HÚtê°¨Ì+¢hÄaòÒ;ïò¿Õaªs6$ØrŸ·`<Á¼³±®Áo×µÔ ™[‘ 4aô,5ŠU@³¡ÉÛ"qòp&“Ôg+˜•òøX†1Í×ÕûTMË»¼ò´€ÛÝÊ¦Ž”eÙgÉãahYs[mÜŽ OUwØe) ”}URÐsO‡q,ðÜs!fÏæ­hæ5™ê¤ —Fœ«=.®,Lñäµ5õt O¡µ­]fZíØˆ"}V“ ä-´ûàb ¡Naƒ*‚øôÕ½;Àè²´P<™byƒßÒ;TÝ7,¯{@êÀĺ·H­ºoˆiuct\ÌÅ´ž&ljJ_‚¾drø’ÊáK"‡oy|dõXÇiÃ!Î’•ªèr:ÐÈãSò4 «ìÌškš…š)‘3auíͦåk摇ñ”Þ$±½Ib{“ÆÆL1!¶ –g—Qtæv‘ ‚X c鼉Q½‰Q½É¢Rº¸¨ò¶,ǹ…J9UUÞ’På-ɪ¼%i•·$©ò–˜*Ï5“­cvëŒS\SŒƒ–y°¾ÏL³² ¸›-bôЉ`‹˜=õøDjÂsíy7ÏkÚ´)Y-•ÒÖ*Z›Ù2чù|ˬÖÒ^pÝÞ`żnŒ*[ŽÇÆîŠ‰Ý™ÚÕ'ƒRÁS±»¬Ø&A]‡Cԙ;¿M7×_µÏ^ÅbÕÆÅ×fNqTÄö„¶Ñž¬m´'míIÚF{LÛ`þ›µÙ6O…Zš0$X* ºnK[kn-Vꄨºµ@Ÿ€ÑQRd«»ã{x…Ä™ì æðÅ“µ›šëqc·»¹Aîn'%,çÒ‡}¬ dÞ­Q0Uw¹&À·Ê¥T®ƒÂÚ®­ñêÓ•ˆil²1é”ê³ ¢j[¸,ó6Ic±â#2ÜnçKC€ ¦îDVXÖ½Ôy5V¥m¡š•Öyú^\%,9OŒ[º§u[Æ¡ä0_˜ åVkt O›§Ã##NØ XÌ-:´n‘ «Â"æä¾bª‰—Q‹GC#î1 |E³q¯lot7+©re£Hš:ÌY°êŽ’ºF#n"R¨°mËdÌ„*Ȥ%mNàF)iŸ4Ui¥%U‰L^ÎÊ‚:Z9+4âš-êuFéKnkL Žcö¼mÒ¡9Ù}"”“€&^·5KŒA4´‰ÞÙ–GÍ›ûô½lÉQ5õõÖ=Š X\'­Üž“ˆR„Coq,5C›ÔWõ(üÄx<6R*Ü´$I'p+zBÚ¼ð@!2.FK­_áòŒ>½Î–n‚h0…5c©³Í«Hh á ºÕ¡I‰™_QB]Ø-ÇW;†koãâ¡6—;xE‡hg¦Ǝу[q<Â~%e?Þ¹ —¯DŒú ¤õÍŽQ[Á:<‰ié]bú¢ždÇcM¸b0rF?>IýÝÇŠ&ú_ìì©Q~’³ÜâjDZ'à’¤ljäe’1h]¦ãâ²vÀòêô¢x0îªå9 rÓ­ EZ1º«f†ûT7ÍŒ™ßò&(Sy7-[u5™OHŠc*“Q6&†É¡:hHIçkk01êH …áéìê›uäi u~]-™*̉X¶ ¨)–Jó‚<Ú¡¡ÎêLåá u>ÍžÈÒ/ÕmQ~Ø1°y‚¦fy–† }Hž‚ WtÄÐÖ ’.ZùvP­˜-««>bcZÕO¸Ì­Œóc!Ôâ`¬¢‚X˜d7>¨—âáædµ89Üknb#R½Ì\Q,ËDm¼Ošnã0\&(H‚°jM+¥2?꯳YDæMåc4x}œëJlfŠv÷L £–•l©ü²²4ŒíÕ ±ÅªRìÔɸ†Naƒe}ýn:´Þª¯ ëÅ5¶í¦z1"Á3P¢eP¶á\+¬>žDÞ ™gÉwuäI¾ 飿±ßSSûV5/—çÉã‹n0™454Èe…›»…Ý:(z\-§xxÁC½wÕ(¿‡:Þû$ÉSìwTeJP#¦É:˜ 5»µø4U–Øk#œ£Þç!ï3¨Šaœ ˆ)‰±&Ø.†JÎŽØÞäõ™Ò*˜¹ÃA€–‰f[{º¤ÊµƒHÄKZ:›¼4Çñî˜Ö6¹GžYjF“JyFS¨QWÎuy”Ï’éÏ8AU—„+ÙåDÞ]ÐÆ›D8FÔŠ¯´8á"ýõg+€j…:¨Nü¦ «¾v‹.\æu+Š¥oÈ[ÉDPN®%{Ÿ¥’f+ö3¨¯AQeò«1  ¿Î,–ì4V닚ZI/Tˆv“§øt›ÍuFbúO W·8QÏ’aÊÖØU¼´œ›NÚ`€S›NÚêµµ¼èG£±Â4¥P)(YS½Áïk­ñ(SãØ œ¡ȃnê}B‡ËisîÖ”§t­ÔÁ4g¼ïu×BÉRA1óªs›ÔÚÑHîGÒ覆ÆåS냂…¾ßÓÖêÆ™ Ú¹²Þ§®ñe¿,úNPnálæDb|ê†N0›Õ Ÿºˆ‰¨üª;G| ¶‰BòÆIµb×®/d†—œòJ¾limƒ¥@1oàa¤-¢øjÔb7#Ùr:ÁŒ¦–šÄ×N¢Zo[M}vÕR"¸yK‡šúÚ.Ñ×pMQîS“†`_îwàÄÎ ²éä˜ÁÕ¶eÄüç†ä™¶E}@<6Cš@êM:h¨ªõh¬\q låò¬â1cMûB»‡„[û@ïÍU`ˆ&ïá)° lv.:ñÙ¹½noÏm2¬ñ­j­“Òr©á4/3¾Q‡$‹~Žs翾&T/DXñ&4®qa%HAY¬…q@è4üÆ%A(;‘LÅZ„ŠÇtÈÃc’¥¶Ê(ñ‰KT‡'an÷âÐ <¹¦¥Ö&Ö^™6P£vÕxõ]Œ-mܵT£Ö à ÈœÈĸ– £Æ Ø“Í Ÿ^MS£¬¨N]ìŸM¦áûðêiÑÄh7š8K‚ÔzR¦- |Z‘‘ì¿%@È[¢[¥ #·¨¨–]¨0Ðubãu~(u¸„G޳³²Àcm|,¨N—žS­jC¦yÄ•Â`™NDr›v·D²S›ÌñL°óoÑß=¦‹“¢Tælñì™Ë\…ZÖ!>óð9@”ú!7þ‰™‡^“°¢£Iê ÉGrc¨Q9ù‚‡šÄ˜TpD5ÏYÑ3êØ¸¤¥©0OCÙ›ÊAº©ªXÒìhJ ºÜvé¿cI@ y6 º¨YB©ôMUG&ɽVr]-Ì¢%5]r…Äø"¬r’…çÇå]Écam¸òB¨Ý¢™{•^Þˆ-uLd¼ ·4ù°ɬœ‰ ¾Ì-zé¦:k¥+]áÚ–+­¿Qp-Q^v‡ Y9˼J±ꕺpYž ¬APJ|Þ:š)ßåw.5jQ¼*TQÉ~ž›KÛÚ5‡1fP¢©¹qd/°Ù:$S§×´›I‹w‰È’•§K>{ˆûS[Ýê>Gî]eˆûh+Ô‰$y2 ¤‘IªKoI¶ADRÄш @° $¼|¨Â¿’—{Û"+jy?YÞòCÃdåÑâQ6%ŒŠ­%±S(QÆÄ‚t†Y,Nà ‚©ú&e2O!ù¦÷Ûî –'+ç"Ü·RA˜åe­ŠS† ¡U¤«wXdSÊ$Þë1ÓÖ±¦Ò§;ñ]îÄ:ýs’£kµ­UÖ%§f8È»½šU"æˆô>©Yw” ýÍÛ‘:K­Õèó ­]êí5¢^¤OY\y3œ!ô–dÊwË|%ê\ˆtjWSQñª,wŠ_­ø(Ì;ÄÚkäý~È]§™©¦Ÿc§™\¶ ©ôtP¥’¡‚HŸ€ö6=“ÒAÛ>}y¢›²rȻ𔃠J*j•`ž ÕÔÕu´ð‚m“ ^ÌUW)kE-ºKu$m­:X+jõš©ÏŒ4+Ò:tÑŒ€“ M|ìõ}dž*iÊ)F}  Ì¡u¶¦Ù6x«å¸Øâ±ŸJ°:žÎâ¤Î´ZgìÅn2uuÆk®`êe2ßò^*[¶ôiŸ&g(;âÆã%p¬UÖòÆÎXRyŒ¢ÚÚ·yŽb“˜SBã[½<‹5[CåAö&j?.6ßjúèCK*y⢼)o\lÚÚB8Þ*“˜“9M¸Zy³äiVª€©S? ì…o?uW—·µY B6UÁãl [O¶õù£Ö)ˆ Íб¶ò°Z· 9[ÕL5ölÓ‰ñ`[’âpîVóøÖ¸höC+¥o…‹=÷ul,RµÞ7-4uyT©¼_Ae—‘FIàC0QÐ(ü]^œ1ÒÞ(>Õeòž) ‡í>Í5‰&Ä „š,Ï•×ûM,vØ·µ¨#Ø[8oªÃ×vÆaeqûÛÔljaá;Š›Ü-¸1¾.ž5¦d+mXZ‘YDþV·tTAÛ÷˜b?¸¯]ßKIˆ¢Pgõˆ h»Û¢âIbM·>ô ©•'ÈÓmpñmÕšž{v„:?_ƒ¥/"kÆ„ñ 3+µnÀ``6P„ZÛºô¥z cŸçûÔ®R3åX°6äi d ñØ&,ÖÐŽVž†«Î­À„FmûÕ¯©}•žùÍ­:íX·h&´ßòZ¹„®q¾m>:1 Æð”û÷‰·ÝyØî5ÂÐ*˸8¸ÒlŠâÀ؉êk¬Y.û*o»/)#;ÜÆÈ¶ÅGP›4yP‹>G´dwÈÓ˜ÿZ<8LÍâpkÆÃ©¼—sŒÅ‰·@è°ŠbjpŠS;î_]®tLÂ|Ð,Îõõn c‹Îfy팙¬«>Œ;k+ËE»å‹§ÝkeNɩ̤*ºår{ovŽ-¶æ„bkN,¶æÄbkN(¶æ¸bkŽ/6ŸÅæQ²Ø¬³ØŒ,Êùu+Ò$ÂÖEМXͱEÀUPwmÇ2¿v`šhBðíà8QŸ‰+°z4_‡_¨UQì_kŸ«Ý Êê y–Z›jÙê`.Aæ§,æ]Ê>&rš .­‹…CLh0CÆãŠcW2ùá¢ìa¯j9—5yÛäI mYtÞ/^ºÚºüõÒYLãЈëMÌ$ £O­â,Ùoe¯åi³o’q41oŒÑ€åb¯‚òœžš:· ÝÖŠÜäšq«»Z…åÒE{W›¦#C-îµ-3ß+ˬ÷9eeê6l\'h TTÙUólùˆ“¥ãTUÙCó+l¡Êyv\µˆf Í—lSºê {°b^™-X!£ÒJˆµÏ·»Å£Ë†­Ù׈c¢¹þ‡U D#±þ®dG9µ·É%QÈ„Dlã­-&SàNÕ3j„ÒA‹m œ½­{]"Q°m ÔC¥KCƒœqȪ’ È—öæêdJ]&Œ <ÆÛÁX÷U<Ç%À™n"˜»Ã”8¢%)“¸È9ˆuâ(ÓU:¤Œù:$7?¨ºwK±ädA£¼nzþÈìùÐùãf^.÷Ê&\?%¾Åñrˆa‡Óè®ñøÕìnZ<\ÌIÚZ„N¥Ük:÷Çp³šô©’gjV£àMõ‹Ëu>e…ø„x–W.çX/4ô8â8¶±+æ&'lqÀ6_Eù ¤3*=⛚õÂáFH@Åo™‡p8ÂL61æ‰L’€ˆÉ³µ •‚~ÉŒ9‰ÝzÝr9§iú›ä%rínåmbÍ–HíMêEÔ å\´©µQ4y`¡. ¹¦\ÑXü–c£žW)k>²°Ì-Æ¥NÇp}ßB ZvÝñhßÑcûF ‘eHOÑ´q ¬n’;&‘D:`~èöª;9â(˜e9æ±½%C7 ­Cù('.· $I¿Æ»¬£EžÅí­Y•Œç¼ò”¿y¬2(èÃIÇX ®ÚHÜ5Th̉*EÂ\ÛWxoÛYà`{Q\ŠE…P;lš¤O½nöS’Ø÷Ip-¢ôÂS‹>Ê»¦]”y-Ü&Y8µqX¨ÌîVÙE[XµéÒgæQ9Ç"•ô0ç©}Þötÿñ®/ž7ãb@1çúY`N‡ä†ß‰1˜ç¬M°p\ªnk5÷OŒGÙöljÛ^/?QŸ>YU!”›Ê{‹î58ÉY‹’ðó"Bñ AÝóÒ͆æ‘b­!67ÕzEW毑'Ér1ýÄv2Ù^ÜØ‹{Þý¼´‡¶Žztí]~\w… ôEB„ÓEã,f¸zË0òÊì‡M¹ÆqMD¼°ïR{Ä-ƒV‘‹A~ñ]ê¸uÃCöÄÈÓÞÔ¬½×&ÊዃuG»¼VQè­Ë„¬²7]ÖÖZYAg¸V¹î \ùÆ'`kkôñs±pLµpûO± #Úμ4w'GŠFØÚ^YÍ´:yezM;¯yˆÊŠ[u"ܯOw+JŽVÚz{Ö¢²eA¢ûÖÁe˜Ã<š–7áÉ#=jê¸tƒU ®;äÙa­Ú@º³ %Æß>7¨¥Õy•e¸ç¢ ªO”šÓ²DŒÈÏ2mË‹ÁÀô+ê3³á´L“mÑK`U°FÛã575XTUOO¨=¸-ÚÞŽÖ7tõF¥cd«¿Å·LÝÏX ^7÷ÊMås7«‰ d4aŸ¨qXYaÜX÷¸Î¶\ÅEÌZa¿mÓ±šÌ}š*u¬\a½Æò À¶f¡î©SS2 j±Î"@@ñÐAuõ«Ú¶¡#¨ýìäÒ –뚺=­µ%®t\«4Ä* ±JBóO,Š[Î)¦9÷)UAQnuo¢éÜÚ¦ò’¯ˆô.Z½ÉÇC{aÍCwÓì6unŸus¦ ·¶5µX‰»›ôádb¨àÖ]mÞzkp¾ Ói—BÁí¥,`­mpÎD†rÄÜ—§]5X±£‘cŒéB(Ða{5#3'YÐF·%™/†Ô™ 2 ½zdh¥:I «VÚÒ0É—aôÊȳ¹MijNi@žæ£•å!ѵêBâxyÄ/Öª=ð xQ€´ž:1Ôbà@¯‘-Í¢õÊŠšý*zxÄñº=ÅQL Eš<~5×°'Ú`1ÉVx)6—Ç+Ì :ÉCnGh‘÷'e«6›ê”§‹ß<ÖÌ„@a]ÎÓ¿4Äú`4G~sY*`¹Á Ô ÆY31¹Š-Ïhjh‘癨–P×à¶ æŽÌ ˜;A0·M0 AK—òàÃÜÞ o EëB݃žh¤¥?•nÄØ£ë¢Î^Àm9Â!Â+¯JÂí j¿0—;DNb€ãLÒºvo³ «ic ”Û'Lˆôakiæå¾ê¹•MAä­ËŸËaµ‘×˜Ž¥­Íb©­ó±8  ¦Ù#ÈÄ Oßàr¡O/¯i­1MÞšed)€˜3ÖÈQ !š¡M¯aµë%@Ø·9Ód~Ë}z;™Çb]D-m‰ÈØØ­õG'¨ô¾ A•˜Ä°zQ uÊT\ ì#ã41(àX ”;St¼†šS —;f`ÌÃH ÌÈòŠ+x&¿`ðˆOÕ"<¾}®^1ñé :<¦}ŒÕÀÜk ëýãÌ(üðµ.^`‚1ïPv€±:.Ír¢¯£AEC¹'[½yJœ®£U§”¥%ñxšWÙ…çFäšH—É™¾]«ÕÁY²Sò©­øÊ8?¾(š¬œñˆÜÖ&_#w’ƒ­´ptnM­Þ·4^A›|ò½T?Á¢V(ÜÆ®Öz³¤i†e>ÞJRÞº­rœÞer7ᾎZeTT—Y¢½M:¡ç›ÂÔ£{¢€fù ÑF¡£Ôº>šLn¹±TMV\CŸ>FC6¡ƒÕÏ’ ´Ý›ƒ}gõõoí“ænnêíݾb¨»7¼! ÔËÙ¾îÍuý›º£áõ½A3z}82ÐÛ½]vAd>{(Ø $Ôu÷õ÷…{º{MF‘à g0Ü×Ðüx:÷6S_ppK¸'hk¦õ}‘úþÍÝá>ùù ±†¢ÁA`ZƒÑÚ¦6i5±ÃEŒF1â÷‰W¹p‹SÜŽIÄÄ– v Oh{Rët§‚·§ŸŠFÉ1ctŠ8yx SWT»ô®L8bÝÑÜ‹@¢³UHúÞ–Þ%ªÈ;,´ïXñÕx+±·_”¹÷Š4ñ(wŠÇ€]šÀDÞ—€8€h׆Þ1x¼…h7áq¿¨aï-ˆömÉA· ìo}š÷PŠx,« €-öaŒ1“w?FÜÍú¢¯ÛË4&#Ú^À~’fHˆù`_V»Ü#«÷^HÚ ~?ƒôßF°oq0U<¾V϶ ©} Ùú%`EB‡ñžVÇ"3mHw Rû%dù°_" I~ù8 ìÏÄ£ˆg;1,ňQŠÇoðø8Ÿ@’ãñØ .Ó£<àÏ€¸ \Nƒ#H·°+ ä×!ä)¯ Ø™€Uökü ™~ ¬Žv°ŸG.Cž·ß N ~„Wá­Øˆñ;¤û+°ÿ:Šiø=àm~Ø{ËDŒ©€mDâä÷0˜†4þÀ’Diü°å  "î£xû.P³Ä!˹íGè ŒB|Øz¤VÁC`5 ²|q€xg ¡`#¶‚°'»Mü¾Ø7ÀïFp^G½²ìGâÇ!n-ì.~çw‚#àâGâÈê~ûxû>;pþ â^Jq‘™ƒžì$xØ£ ^ÂÛ× K.X-q è®݇Áù*ÐMb*`Ïâñ d9„¸?Aþ>q¿1Ž«i¨™]`åqu€}oßâ-ªt ®ƒ“ x>zˆõ@\ŸBÛ Æ€x¹ü{$”Ʊòvð›EѾXúpHÐÄLƒÕ.*6x”RÅFö§P;¿+‘ÐNнÄîÁ/!µÉÈyš º=ô7HÍI5ÙI:@|%R{U{8¬ÖòªH>ƒà"Hú8ÞnÓ^0 Ví ©Aâ—áír'› ’l¿2¼ýü ¼.çB¾NˆDqþ2ÏEð÷À^~K@ò&Ú Á×#Ý?€Ë~<<èjÈH²1®ƒûÁà—€}bœŒ$OÂãvD{°L$YØñx‡Ç­xœHýxü‚¿LÄ‹·NŽHhD«¬¹| įö'`çB uˆöa$ù82ócÁ`¢½4£ŸCðV<æ#GˆÖ„ªÍF>^ÃÛ\ 2Ì@Œ#ûíxœÍˆG ¸”C û!P%߇¢[‡L7 î—8ìbĸ½ìLH:˜~< q_Eâ[!é÷ÀêuÄ ý,Äø;Sm`×"nâ~ŽCd¹ ì3¼IÎìrÈ|dIA×BŒk@òØÏ  ºOáí»@|å·©] Yê­ÄÇ!µµÀ_fÛq°³@òmËñø?AâN63pyÁW8xqvöG ó"0˜Â/  á­ñœ.q$Á£‰xLÀ£}§}HcÒ½iü™ – ØG@|‚[@œƒhé(—*ç!É Pñ×¶Ý ù:äË‚|ÙÀ¾Š¸/ƒK.‚7á±Ùú ìk!ÝZûù­‚• iÔp*âÏQ£Ý~NU˜È©4#݉`ð$wK+b,@ŒÐD-è–#Æ­`pÞº‘Ð*;À¶}`Ù ™ÄBdæ*Žñ(—“€l&‡¼-Bõ°?¿ˆ[ÀqÒÙ:¬Üˆû"HNAÜ î¢}\>Žt?†¸?‡ô3¼é8ΠƹÔ"£ùx$ص '©Â"Éçó# ‘ Y6AÈ:Ä=‡@0ø%ìƒ@'ÓÐÃiÓå ün€Ì-´LàñIïñ¤¯„hÏâq9ˆŸa’`ÿivÒà²į@ /Hîû“!äÈRâ6È÷Wåt¹| > !¯¦ZX Šý\|¬ÎDŒf$>âC K© áÑöi@ìûy Û. À.¥ÎÏošê H <ê趃}­`H· ŽCº×Aªãi˜a\¤ûC º‘·pvöÆÛ§©óƒø$°ºÄ% ~ˆÆF ¾†eÀn@´±Híy¤›ºSÁù~äèm 6áíSÀ^VŸ@Ü_3«ìF@œ… oƒ(ìMy2ªâUÄÝÎ *wû7HpdBj{!Á0; ¼ØG=ì¯ç‚“Qj'#ñ¿€ó>Èrêâ‰Àêx4ä â pž„"^Ͷ~S< ®ÆÛÃ`:²G~‘®ØÅH÷|py°K[ÈOÁ/@ÜŸƒ_ $X ÁOâÚhˆ¶œ?ËQר¨C«)$Ø!ƒƒ€Ý…„žâÓ`rù v#TÚ ä<ÆsÒ ¬»©¹ðví/êÔ2@wû@²Ÿ}'ÇÄ} ©½žÀãU`ß„eà€ô_ÉJĸ’~‘³;¯ƒ»-ì÷òÎCðóˆq°_Åãk`õy ¾Ây¿ndf?‚% ¾Œ£Šó"À–±—ÉE@lû ˆö}? Ø"*r4» !û¿FÑý ˆ«hÕÓG©ÑÑÈÙ¸t"«!µ?–âÇ_€Õ'ð˜Ìy› °ò ÆÝà·ƒÖ2°_ÊÂFáìã‡ö÷S©„-`ÿe”ÁoA7fH‡‘Æÿ¬žG½… Ÿ'äÒ‡q*õX*Ÿ´h"˜ Ѷ#Z ‚Óš‡hc,Þ~ 1> ºL`o¦!ÁŸäM`OÌïÐ8ÇœS×c1±b5¤ZƒÇíÈþGÁe2]Š·&4‹c!Úh£@â7ƒ8•Åì2Àƒ_!øMb¿† AjSÀt3X`°qßA´Y@,£ ØvKˆQJu•Ÿ$°ó©žƒ¤q¯ÅÛNˆ@r?§2œ»àíëtg €}¥ñ1À ¶v¼ýšMж4Kîâ®Ór†Ëþ°{Aò êˆö×8äƒx°÷°oÂÛÔÖur!ˆ¿Bü#X½†réç<¤ûqp^Ãñü¦Ñ,~oq’ŽÇ©Èå<Äý8€î{àr.↹"Àe3¹@Èn<~Çþbœºß–X1‚õxüìÏã´¯AÜ9àRºŸ@‚›Áþšþ­9 ™Ç9,âÖCŒ‹!¸“–@ˆÖƒ ŽÉbTÀ÷©£ƒî.´‚ýSHí‹x[1®FBߢ]ÙÔ9»ƒ›{ˆ ˆ?‹`;õ Hð'dë÷àüQÄHÃã+œÖƒä“xËæ\¢} Øå”œ_ É©Õr~ ÄZ$tÞ|ŸÆÛq »2¯¦ùñYì81&s¶ .?lÿ DK7Aæãý5dÀ6p¢ˆ¸_€ôêÔTk©r‚Ÿ\Þ¦)‚–;`§r”ägJù€øõDš{ãm;»vx,+¼u€Á3èB”Aâîâˆñ8Ò¸ @ü‘ffâ04‰¢}‰§óOÀôÔôdf5`u ¾R-åç ~ã{tÏqçØÃû%”ËŸÀê‡dº€=ʱ‡k|xÛ‹‚ýÏ@jNäcXÝI])J¨ŸËl þ2uüSÈÑ!`ç¢}ow‚óÙÍqºI{ˆŸE´<<~Bõ°ëñ¸Žæ'ЭE´äãZ4iJDð2.†!øe¼ Õüœ÷ZDû2$Èàì“Cê ;ü b6•"È|7òq€š%Œq%’|Š5ˆh?¢ÁMˆv MòTüi„¦A$+9Ã¥î:ƒÖZ°ú‚×q=I~Ÿ–TĽB:x bŒ€‹’Oâí*`ã­ å7à ¾ ùø6¸üìñö< c!‹ðx•#Þ>¸ÏÓÂLc?­°(Ó0X :h,éÏÇc°©´A´[·ü>âP»,“3\Ø5üAâtqŸ]—ˆA2ÙÏçŠ,R¦~~…$OGŒ+ñ¸†kÑ´}øEZîhƒ«ãFÀž„h“ñöQ >Ž\žŠàñ@âŸç­àr7gOˆû"W h#Cj[Øà¸ô†²ê—NZgä*šñVÇÓÔï‘éa¬6"8îýœW"ÉB0-â²1Ã`5,N.@·‰Ï«õ\yÄc;d> V¿b²<I/FI>’Î÷AòcpΧB…RûØßÊ’þb¤VÊe,Ä}Lç‚Õ·£ó@÷ö»\¿v ˜þykö‹†Q.åíWnƒßrÊÍ1°M`=dù°µ ~Šv$~‚ǃËk¼ uR‰Áã2 ¼\xÀc& ÕÃà|6¸ü°wPG¸"A“â~$³[YAûg8ÃEŒ0èΗ•£—½ 5<ÄØ@mÑ^v°ÙÀ®€3{t<C!~oƒÌqW€Á¤j¿vÄ]1¾@‹0²u°—°8!Õ4gß 8Áà N€u@‚Å Yà,`OEŽäú§2œ R9l HÊ@22oCB¿A}¬¥Éi,ä"D»q݈æFŒvŽe\i@º'rìF÷q*„|ÙºÁ{¸Àn Ä—öÍ1à<‡ÖP¤ûpÙÊ›ì9ÒâV`¿Kj\®æZ büË·\1Ì­€• …´iq© €Õ§»t·!¡Ó¹rì7s ºxûd^Ã^ŠSŽ3Hãc`¿”å ~ âéà7&y0h¿ñÀV‚î—`ðK껈û3Ä8ì‹Awoƒø^oâJr´òMFº'øx›öñvI®@’ßÄã N°éûP’Ÿ«\ ®ÂÃ4ÒñøĘÎßåÚ`oqR ~?¢‡ ÞÎáÒ è@r ‚Ÿ£Wl4ñŒÓ'8K€h9ìŸiaçªL4qÑÁE`?Œ¬^CÝ›yl UDš³€È㊲u| 1ªÙôð6 ØnÚôÁà Hð;Òáñ]HÕÂ5dµŸ¢$§ãÍÓc © iôZŽÙA—IŸ¡?ØY µOr†Aó;dYÅ~taZ¢ÙÑâ±àí[x«¿ÅxœÅ®Ñî¦É ØO€éjC ÐFNÒ9i Q2ŸDw  f Øyqß×Áå\.gâÑÆÇ>ª°ìJñæq:Þf#«Ç!çkÀùbzÖ ÆòQ<üœÝûÐí º@»2Òx A?¡!1NEóy¬>†$ŸÄÛÙTÆ(3Þ&€Õ‡ðv<òû)ä÷»À>…¸å ƒv3<ÖQŸÄÛ4ó!Ý—kA´GÜ Vw°ãFEÍ ‚ª3ªÉ+@ô#è—O ÆJ¤6›Ë xœ‰"yLï@ŽîåPDÑ6ƒéq(ê (¦•`u-X]M½±Tž¸¢ ö8›¿›Áêb`ç±.AüM¶À–#ÆXdk1˜>€¸E¬ ´Ž+S4ír^ËåGÚš™8oFŒ“è¹Â…/äèM±\cÂÇ4€MG‘|L‚äL$ù0'™¨…Õ ;Œ\ Ø’l0øR+` BŠ`Õsêfx+GÜ tŒ|ñ¶›]3Ä8 q/FjÓ¸xØD60ø¿¡WÞŠñ8‚t‰ÇHí|är‰R}ÁuÈѳ\=Dj?Ö ÎË!Ïpââ]x|EÐý«×ö±«q3~HZB\¦é\̆ߧó&ØŸ€lOÛ$½›ËIÈÌ œJ#ƒ¯{ °xÜÎ¥ñÁ.av3ˆw@Œ‡ðVD/ `§B‚UôkáB°÷q-âà± B™ Õg¸8Î:B —=Á`Ò݃WÓ8…àkù# {’.AÙ÷ƒÁt¢‘®%ÈQ•6°ú.’üÔ‚}„‚s> .» ý‰ÀêèÁù¤örþÄm¿»Øc"Ư艧!îSHòWÀnFŒ«s»qŠÇ§!ß™àÒCŸ'$¾ˆ+ãx.\sá¢àJĽtÛ,GÏs¹Bž.yx îïA¼”‹f€}ß‚x/Êùú½‚ój¤VņI»#bœ4>ŸF ~© YnC´#ÈÖ!©°GèÌ©%Òø;¤Úì¼…ð¨ƒ~jŒtœç|ÏöËœ6£„6Óv ؼµÒ™‰°¢ÀÅ$ur9øDwHõ(XÝ Ø×!i. t´s}*Þv±ó w˜>ˆ·¹º ~¿Ej§1. ¦€•Ñ·ˆ-4Þr$A1}IÞìù`:•ú Jã8?NG>Ž¿ˆÑÑÖqm–³ûõ ;L§£ün§×õlö4ÝSëI;rù×réÆtº–pÍ^ˆû$H¾OÃ%ë¬ÂÔ½ñv¤Š"î- {ö¼Ý‡#œ\ ¡ñ`ú$4Ë:€Ý1†ð¶œËÀ´y»üv°~i¿¢5™S2¼ùý#Ø¿F½ b<‡·,®¸C çÀåz®"_# —Ë+xTã1‡n3ô£ƒùœG!Ýrˆ/!Ú78ãÂhÀïL`û ß5hÓ© ØCHòdÈW ìY ²)ƒó_ùÅÓTŒÇFdÿÚõ@\ˆ4¾‡ÔÎÓ7iª£Ê’OÓHÎFÈn. £Ô¾È†Ž¸ÝdJK>b\Ôv‚®šëþìÇ"µ›¨!Z+­Î\ÉÄ[ì¯`AŽj€ø`{:`gá-̱ˆ#Hò›H|²ú’|–Iê»`Õº:\!XÎÝt^çru`öWÔFÀômêÔHèu”dÞî¡aŸê“\QDfîÄÛç逸ƒHm„Ø8`W@ŒßqîÌ•e:è!ñÓ@òQô&‚©ˆö!râ"<&qJ‹Ä+YØw2ìhY¿ãY¼}‹®» »LϦºJ] ~’Íþ§(ˆoF)0Øù.Dp8ŸYf€_}èJÇS 'gˆ±‚÷"ÆèˆFœŸƒÑjÀêæò<`—#Æ4v!ãíKHc.Ý%¨Õs„+ßìïw=G&Z08£Óóü Þê¸Âù¾ü>Œt}(ù­çÒ%«qoÓ7ðö8¿ÈÉ(¢5pV VÅ€5ƒó9uCBçqõœ? ùérCÇD{©MGŒÛ@·\^ÆÛÝHüÓ`PÆì³§ÝÙëÑ$‡ ÕWm?ppöCzØ·é7’%M!Á™ˆûYç#x"âæ#èf’úhBGº^ÀžEðv.1!ÆhtÉÍÈô#  €K”‹íàr‚—Ð$¸ÁÉ…ë—ˆÖ‡à.t­êNDû¸dàí;xœìËàçíHò4ã"¸ –ÕìûA<¾~uˆûgû¸k†þÛtŽìgþûx,ÀÛ5\Ž¢Ÿ³1°j`/ Í,0xœ®*45A‚û9éb_ûˆñ*—ö©@â­€ó$dõÞ^6ŠrÁ=ÈÌBNy¨ÝкOç%<ò!ÕzÐ]ζ‹àÿ ö7ù `OAÜûã:HµLŸ¤ü›xÛÍE.Dû µÐÝÄerÛ\Ë—á1bFÜ¿ 8’?#Ý®ÓÕ‡M”]Hõ-Z˜¸ Úç¨5ƒóœÜBªŸsåE2‚?â… ãQ0ø,¿Ö9; ä&Šü¾ÄLƒ¤ ô‚Ë—!ib\Ä8N×¹þÁ2ƒy þ3§æTÈsÀ¯txÜ |Ø¿Ò ‚Ë! »e°„²°A÷¹IÎà2%Kœó-ºýâíwÀþÅ´œ†T@+è>Ìž>¸ ·{9ÚÓH‰àY@"ñˆö.²fè4Àžtó Æ³à7 Ø«À`#oÑ/—£$d>Y¸o·€îYŽÎx;°~°ÊEðE:Ë€øEr ‰é~œ?B™.û 8.p퉶Höˆ[ƒ·‹Q#x{o»ÀêfDË@¿Ý€í§o]cëæÒ* 5³™¢‚Þ l§Ô‘Ày<‚Ÿ¥—8G¨Û"ÚzbÇi` ª¨žC¾?ðóCÜUxô"x °~Ä8 íDÞÖÒÈV¿ÁÛ…àò]΀ØÂ¸6†ÇJ¸Ì½þYXO)\ ‡9‘¬\^@Ov7d @Œñœ"ñ;€ÈÝS€­C´c8©æB 2¸ z÷J䣀а·Pɧ6‡»ˆEG+;Â# 5Ð–ÆÆ’­`z+oÀà‹ˆûMra×GY€ý*;‚·(†\ìE\Áãó(ƒ½í§àüˆo¡ †·¯ \ ‘7¢]Ä)H2‹^Rl“¬P~Ü€·—‘P&˜^ ìÉ Û†w"îj$ÙÅL#FÒ¨¤›28o³èÇ)xTàQŽG×fÙI#GT¿AŸ uw.õb$éáD oã8õEðT·ƒä<)ÁàÛj:rA´O" ÐB÷Q|tƣƃ„ÜüAòe:ßÐâ"6VÎü!šˆ>ÀÞ \.åYˆ1iœÁ1ünÝ ®‘‚d?`o@œnåý³Áô: §·°ÃÈÂhk¦‰†g$~?µz²ûçXÄÀ~Mƒˆ ¡6<®‡Áêqĸ‘ö °ézÁþd ¾Î6ħ‘·0˜ÁÀ =\Taß Ø.»#ƒ?¸ÏržÌÆ€:ºˆåÈÒ’.À¾O¥qËéâ;{L‡À~;}Hð(Í‹\»£w*û{äãzÉJO"š…9ùI=gàòy<û'!ÐT`Ý´:s˜¶ˆHªÌæJ ‚—Q­@¿F’sÙ_áñ Þ¢Eo§QB~ï@p °Shâôi\ìýlÙ@¼ º¿Ó• Ä¥\íãªHÂlRˆö*ÒýÇDáìCj÷öa0= 2_D˜>É©9gxÀ‹Ü» •|:dÙ¸+‘/‚ý]tkäj8m´Û‚ßw Æøó« Ù¥öÞàz-ÊtHaÿÌUK.RsÎÎ_⊠¿UÐýŠ PôvåD‡V¼}‚¦gv¥ [Àñe°Œ1N¸P€` ºÙšöO‚ØàZ*=Å Õí@TÓîât/áÌ©}žÓ>~.HòÏü.é›Ìå8ÎÚw:Çi. Ò‘it!Ú¥m)‚c¨dáÑLÇHÿ0Ä=1>ƒ` :°f:V"Z °“9[Dâ!úâm=tŸ¡ÒöÏÐ0ƒ·/¢8»ðø%`“éÍG_D$dÐØOë°Õ`Õ ¦_@ЦW#[/q E’K\I+»M¯¤eŒŠ+—{7­’l„l»Ô¸9ŸAa?¼H÷ “¼Ø)x»—Š:0ØŽ2pƒiÛøæª*Hn@B·q=ÒHÇ[jãêˆoBðB¤v?ÞNÝGÀà£(Øyx;ŽŠ&Òøu3,ûAZÁtyl t¤¢«WéhCS6Ù`õq .bG0D{„º->ŽHã <¾É\²Ã£¹qÿq—{˜~ˆê4!ˆ[Èõ2TʧÙùB +ñ¨ )ˆ0dqÒŠ:ØÝ\#…|ç6ŽVðûÒ˜‰‚x«}´VpˆFŒ\¤[ ØÍœ âQÄ^ž«#45Q¡C6ø-ì)Ämñ3t_A!^Æ/žú‚8åÒ›1>‚ìÿ™YØÛôE¤k‚¿TƒÈôkx|•Ž'Hh:Þ.Ãc—\ FÞ.ƒ5ŒÔª@ü< {,8à*(èŽì`'ÓÛ |À:¸ö‰Ôn¢¥üþÊé5`ß—Ÿq}‰·ö4˜¾ ?ƒë!d>-c`9Þ&ñ7®¡!Z€/ä-° y%t€Ú:|Yp±`AÒ™/¢Y&~ôeiË€Tåœqq—æ1$ôHµ\îE’?G‘4Cú€½”öV¸|Ñ^§³*{$ ~Bó $x†nQ`õD+§×`OãíiÈ|º 7‘ÐYt6Û=ø=â+ø9ƒé"`/âô] >Œ¸?âøKu þĉí9\ó§Ë'¹4h¿„@KÁôlÄxYBp×ðx”¾e€}—ÖiêÔxј‰œÏ§gâÞ@í(g³`PÎeY:èÑQÖs<.£3 °©å‡ô»¦Õ° @ªÇhçŠ$«¹ì޵ÈÑ \¯à °QjAâ«B6jˆ¶ÁÏ‚äJ<Ò€ø;ÞCܯ€Ë_PS¹¦‰Úÿ-äë¿o°8‘Ú×Áå/ü’E3nùÀ½ób dD.8Þ0ÒÿøÙï鿜û?#[¬Œÿ NGÏÿ{Š‘ò.Düÿý¿öŸó¿.Áÿ½¿ÿ>¨±ÿ­ÿFíEúéjîŸûï?W~)ï’š3ÉÛÿ•¼ðßþ¿ÿ°&ö¯ÑP'§ç½¹³yVÈ™nµè÷Ò²S”Þ›$=æå¨r0fî¿"Çÿ®ÿÆý×%ødMVoïÞÌX²íd‹ð¸ÔÿvžÞçÿãòf9³T)˯ßþöò’ÆHý—ÿ÷?^nÿ–ÿ¾’²²lñ1˜‰éãÓÆ¤Ÿu´˜ü/ý?&ùÿ)ë€õMü¿’ã÷ûß?k={¶©ÿ§Ëøßø_Ú?/%ݪ“ÛóÿÿŽž_{Ù¤$…¤$á¤ßþS}ŽN罦ûg$þ µê‘ cØ{ÅÞÿÿL¦@‡Ï¦ÿM÷ÿúØ{þoýg¶u­%a§þû¯K÷ïùï½2Îwé œïÿ{½’sBÚäÌ£ÐüãýÏ{Óþ-ÿ­µü»Vžÿ×ÿ}ÖñÏi²ÿ³åù¯o_ÿîÑæÿþHÿn9L¶b$ßR²ÿäÉÒŽ¯Q3ìYž’Š{Û cÿù™•µo®ûnëÁ/OÀ¶†û*+‚[‚}ÑÙÛ{6ÿ%7{ÉïÞ¨í1Ô?8óà€—®mÆnÃXmAÃØ%pkÈaøàçg0Fºø¥ˆ67DÚdŒ³ c§ƒ/cg*_œÆNÃØaácgб#Õ§átcG ØíX§±Ãa„3Œh¦±ÃIH"Ê”Z# rà½jà„=#¼yAý#Û#ضi 7„·á61#äeï©wGC|ÙÔîãì½ýÝ`» ÷`Gƒá÷ƒÚï'»ÍýܵbÀ·ÙðÒç) °À–LyL»åM,bŠã÷#:Ie²˜§8²EÎÖRòƒèÖ›å_•ë_…T³22âjøþ+O¾§›ã—«“ßî þÿ§‚ãÅþß­ß„þ·WoÆ¡_ïœ#Ê|ެ^$:8 o6«÷õí{jÌêMÑÕûš¬¬Õ¬QQS«|q«|I1V‹Úqg¥½iÆêtÃHa ÃX!© d«³D Í8+Ûèc¬Î1ÛÇtã¬\£7ÏXo8ºú ‡ÃX†õ9Œ•ÁH ãŒ@–±Qˆ0Þd³Á1F°ÈØ „ÊD4¾U«'\#8‘Ð<Zlóñ¶z’,ÆK÷d#o¬žb„pª(0cÝ‚ý1²ñŽCö±§Ó§ jÖ`°·; ¸zz»#‘`ÄÕÝpmê뉆ûû"³³³ëšk|>·oA¶Kükîïéî ¶‹x®Y³\õáHOÿ–à Œ‰öŠø½$™ö„7„{\HÄîÛÐ?¸¹<ɼn𨠊ä#®ÁàÆà6ñWйDCû\"BO(Ü·ÑÕ-˜â¥ƒ+Üuõô÷E»Ã}Dvö ée7t´Öµ7µµª<ø7£½Ý‚™H½!¼qh0èꊺ¶†º£.À‡º7 ×ú RŠˆ²PÑPPå\tCcº{{†z™ P,ðC=Q‘-ñ1FDo'¸¬ßNôÊ90+ܧ2•-?œIdôôoàhZÖÚæu×ո܆/*ééP4ø."iÂ7ÐÝ 1£AñÙõœÁg^;ŒF…”}}¢J `=K¶GCý}³û7òÛ×92?§îÛ%*zŸ¢‹BKBz­¸óÊàW.‹;º ”¯ !GÍuþö¦·õe[}EÌ×*ûU7Ó¬“Bà”NÃjw1}u-ÈZ¤t«ÙíÊŸ?`¼ˆ^8…/¢WMåKº!>Z¼dàkÅK¦!¾H¼d^_)K§ ùd“Fë‰Go’æmki.ý)EûÙÄǃ–RÓÞîmªíh×ßþmðo Ï toGóÙ0ÔÛëÒaô¿WéÜYáhp³«7‰ždÆê¶Çê^/jqK˜ ¾—Èü›ÅG2”!£¼ÒвÐÚ¼y»kKwï¾$ך²u3Åçî %|lø'>•î@@¶ïžþ@Ð.¯™¤]ÚQSž—rÒä,iŽ–òfÿÀf¤[Órª§Åú e=•V$+ ÑPñ!ùõW-ëU÷<è€>•èx†’(×èlÞ ‡ÑyO2€èœþ>²£7¼1Ŷ,ºY&$Ò½ED‹Xä±|“Ö½Ñ'G‚ш•°î\›ugÊ>TÔQ¸/íîë šñ£C½ªÖpß(¿i³× Êïz•'¿S©PÐÄð–j¾¥™oéæ[ßÌØ¢ÏÚ”bôP&µ.‡qñCô>vbÜ’ë F]¢ût‰ñg0¼~HtèêÆ¿¶Á@p¹êT¨?q‰Ž Í™£•¹Á`_ Ø×³]cwDŽ šA»9‚ÄŒ3$åÐпaC¢ŽD°ÏÕ öœ%’èÞ(;1 ‰$‚&»à¶pTÔÜl0lÄÿ¢ßÙÜ}–{0¦ECŠ©•ÑOD_”in ‹¯°Ûd·9¼ ™³÷gû7‹¯U2ës¡qHùuš[û‡zñ=‹VÐ>+Ø»Ýäê%!¾SñŠ ÝFC¢DD© Fܾ ‚°Ҭ{V]„Q«çRÚ¾zQvÝ"‚‡]ˆ¶Q¼ªt%fT[g‚¶s@DâÚ‡úúd‰zûèT ºÌ&äD%[íã+ ]|/˜ÐHQd^ãd‰Ï»+‘°ÉËJ­„õîbA á(,Qÿ=ÝQ·ý›ƒúEžQ•Q¡!%úW¡Ã˜ÜýRŠpLûíëÝ®2>Љ„×÷‚{dˆi„7˜œeLU†šd 0™!eHôœÙÑsМ(ºhrè”ûc­7 öoìÞ¼988S„û‡6†fšœDãè Æ™*›Ø`4$ÞÛ+56l¤mË[¤ÄTALùCì/…– w÷†Ïa›n-ÍÒóN…"ÁÞ |ÁÄÒ5ü~ñÖ£ÝèĤXŽf£à8 E''ÅéLF§$E›CõŸNŒˆîÁÁþA9Wʈ+!jþ†ìúýØÜ®oŒ796kÉxp5ôí<ÙÑî`¿(f¯bÚ/¦-˜”rŽà¤ÔÑ—'a©8}gkØ,„fƒ´(IõŸèÙ¹FתN~C–Z.K o¸Ô-L[ÒXz/ì¼S9¶:3¼ø©úy‹tÇ%h6Î*’eŸj–ýÉxp[ò‰G/vJ=8í5ÒÓFºãdÇñ²è‘÷qºèq禜ÔÊX˜´ÖÉÿ7²ÝE©\ŠÒ p—S©—¢„E,R¸1 ¸—›€Ë0Ê©r¾9)P`lzmúÔI±:œ-ñãtxŒÄ×á$4)Pˆp ÂT*#Pmæ¹F`ž˜o…F`‘±q,,Š;ÒŒpžüþ2É£@´6M’)âm†æÎ‘¡M •Ï•¡Ce•2´™Vò©o•äe2Ô$ÿ¬ÆÑ§†Œª0òO—$/ç·ÿ¾Šo×TTjZvmE 1å`̰@f‰X ³X,Y6È, d–’uŽ)ªÌ5[m|tÉÉÎÑÖ@¬ÞR5 0cÎXi+Dvª):‚í‘n"Xˆ0ɃÝN2TßÈVÔ ]ìLÍÑ{ ÌUêǨ `c¯Š[† 1ëïíî n“¡d…åJBp[T¨%òØM›J+;þsü´ÔDØ"¢ç0†œÂJAƒA1ûÚ¤ŠÑ348ærzIͰ¿7À¿}Á­z• ÌΆpŸDvø»ØÅÛÍ3Ú°€~œ£›Ì,/2ç-¯dàÂsÔ`3”waq ¯Ç£ žºƒ¡!~€ù3^+ǰ4t#3ß‘ï˜ÊÿÎÉ\â,0 ng9iŽÉÄÀ9l²#סÔTäÉT£p|Ðö<5ÁdÑÕ7ÞHå¹)ÛèÏÀÒ£O¨Þ+£ZÒô!4¥%‰‘J*QZ=ú]†CÐ*ªT“JªöN£/›ø]†Zu½½QüÙ²3„d­,÷¡hÿnÜeÃccÄ5å²õqÔç̵[£ œ¤Ht°ÿœ`Ø•œ Kj`Àöõû¥åI+³´FQ?uGNV%îç±ÍxçBg’zÊ·êI·Ók =JM¡¯Qšã8Q=.g–C*å1‹^Ù lî õ"˜Á` ¿Çï÷æ› Á>SÃl„óI* ,¶Àœé,q —ïŽ&õœ±†3똬¬¬Ì¬Œ¬œ¬“YNre$ÆO+7ftv+w-+;©ÚЦ ÝéÚÐk6**R%4acík6¦G™ͯ•& µ3‡û²Éfè&‹“ÊDËéÏåPj–}" ­2Õqq2J¥]-oR ‰J8eQªÔmñ’Ý/ToñB /c0nã%k^xÉÇŠ^ÆB9ÂËxChAx)2ø2ÑÀì1¡jM„@Ç¢DBÅ5)%>‡ÉÆtUè)±è1=E£§Æ¢…z6U£ŽQ¨À4T‰"È5êÅ)pŠhº!þOYÄYµzZÀÅRËÇjž€ e ywsqEt,ùÕ\ÇÔ†>.=>}|,ºP£%¢#Àñ©¤%è\g·GN•Ý}2›¨h,=CÒÒq…7ˆ> »/úî6Q*"†²ÒÓ<‹K*×”Í*_·cMù¬Šuk;ÊÄË|ÅÓÅ?'1Nc¤XÅi\R!âT "ÄqÖ$ISd²"iZR.ëbØI¢M‘eŠhÓ’Ê9‚jκ¡œ”¦x±³ˆPrÜl&»yôd[pí ‰Z–èÔ´Ü>3k¾%sTqÄ‘t˜$KªÍÜWÙI¶r’­K˜- Þ£ÀÛ— gº ×®ºŠP SÃg7ŸµøºžÏ>W›ã~œõ¢>·±ù­›ÂÙí84çúuÙœ³:ŒÎ³Ç]g§]tlK‰è«×ôEaSÆÁ`÷úÞà:©{œÃ~:ÂQ]޼’‡ƒ|’ñÊè¢Á>Á$*ÚapÖ5Ðï-ÁmSÔ;ÓÅœ)3ÒÅgŸÛø\ÙZÊ)*ÊLš¥f•¡;sƒ‘¡à oþ£ê²¾;´ ²G÷û#Á³Ûû½n©†Q£.fªaç˜h£X ƒ oÔa/Z+G&µHî=Q—ãÑlÄŒ“CxlM2A4NÎ6$tG†#×™#t•cÒÄ"ç Çtñ_ÖSÒuÇ?`h3¡èÅEomÚ‡STé¶Àë×c ·ƒ \oÏÙÓ ‡øu /@ç¹ø ú]R/¡yc­@B™€p|Ô#"=£Ž£VëXtCT·¤ìëb6‡s8³u6]è’LÛ·I,{5°\”Cbo?–˜J$$º2ñ®–:8tÛÖÍd°½/Ú½ÍÕ-8Éæ°¥ÆL¾Ò5k×Î>£ääSN[[ºö¤í\»fíºëNâH°víÚr6¤µ‘SÔß“92„M·›üGj¼È¥$öñƒý=AxõèÙm¶lÛÊ›‡8%õ#ÊYoh=›ªŠÁjkHtò‘1öÛ¦ãl’b6,æâè¹ÍŽÍO˜´•¦›Ít/< “wy ã±'É…+ ÿdé†#=5Ç1Î_Š‘ëï8>e¼l¦ú‹g3 š1ä·¥¡NÙZ*¬6ÑíRÙ¸°à»~“{”¦Ñ*¿³KÌ\|Hg%çåŒÉhühó Jw¨!Þ:5;y’/¯‚àå/ 5z·™I~Üeâ†Á·öqá)Ça8sNÊŸ51œ¦¿òÝ®ë]3® f´,˜ásÍXÅâÃò^¶.¾'Ó Ûdÿœ ÇTrª±3Ý#&Qyøj1€b^Ec~·“î BŠÒô/ÊeSªÑŸ'@Y˜Ž€ ²0ûPKyEÆŽ"cà©ðçÇ@.B”®€´ÉJ”sЊYÑ$c`²à[ˆNIvè,Šh¦"”á"ð€àÓd®Œ™ˆé¶h¢Û™¾ Ëm;sÑG¥î'~caU}ÏÎ,>'òY€gêÎbš«»ciÂÈ1¶}9eGŽ>ÁúuW¦À´‰.n“ÓèŸ/d˜S²OBn2`}=Ù&Klc®ŸýçT†Reh•Ã.cÈ¥Ðä2FsÑ9q9’ Õ$È%K$%jô#|"ÉrIáRµBc#γŸ¤‰ó’çÇ%/“Î5 â $Á8“`, ®0 Æjh¦×bn  1èíÄËDª‘ùX(½ƒ*lUqbÈÂ.–½º¨âÅZ|¥;ÆbuM0€»C–Zö•bqÛG}»û3¦ÂW¿œo„û†L7Fåã¯DÊ ¹Ê/IÌât5’ó)I»ÀEÜâ—kÃæ¨øUy¨O©ùpýAÜÁàæîp_dkF$Ük®°`Hˆ¼C- óøNÞˆjè•6˜s˜›îÍ›¥]Ç4øØ¸›‹hÁ¾¡Í0Piþ‘·}.5ô/;è0”¿<—»P±|dêL· T¡˜"õˆé•(jA%„Α¥ñ‹y0èäÊ]ÿ  éîeõÀä¡Ãùödƒ‘¡Þ(×K¡Æz¿`èƧðÀœÕûE¦?9æUj•MVlToáGryŽ®°Ñ„ý#Q˜?ýëŰeÁ__¡ÕòY÷P4Ô?è÷+k:á^s1Mpðû¥÷%‹9)”†TÊ$¾9ÙG}OâÁ«>>­ë™˜$v­™áýf°§K×ÄòŒu™x¿ƒÇ-fN6Ù? ÓˆŸPrÿ2ʵÞt³>ä)ޱøñ8Ç,gVê„Ë&¬ÎJÉâ†ÓØ}j+/Ï,óÌ] ”h$8îî=UþÙÔ½¥[ïWûzÿo­íˆjðEšzsájCm.” jËšÁ-kr»aƒÒ!Œ>xa§Ë$cmvº¬Î2Vg«¹aMh*Ž´,/kà8.k\3YNÓÍÏÜÊ@Ë'5°Smb³~8þ¥Û–«õQì_,çêœòË•’p•C3r6‹w,5Êð5§wœ=Eþº¤/ê$mw…lRÑÆ¶ñëéß¼™Cdxñ¹›àÞÊ‘SŒò±Ð£aœ"'d5Âq"Ôié º{i¦Šp,é n‹*;¦ bÓöíÒæió¶û}noSM³Í ˜=ø‹´Ö¥ U­L³³O‹ùJ£ÖÇ´6öc"Û€¨Ûž ª™ îy+Gô¨¤ñ1šùÍ!%.¸Ã0Üøž‚)FPºréKí1KíjOY¦ÞS–¥÷”e+¿M,ÖÑ»¹d {ë”QÑË1î` Ó´¸<.@K5Šª}üÆ& ä™ÉI]†¤jÕp“M†9vH÷päR®‚µE÷¶žàœHäñ‘–cc¶ÙÏEÃrš";n+NžLµ V_Th¤›åô­/"ùß6µjÿPTQrœƒÇWL¢Â[èå%Ð䣋œ†¦NwmS»rIA˜ ëkÚk€óWk¥»õÀð5­4£™ts(†ÏÝénMDΕ%Ó´¬±=9/nsr¥—OÝ×Þæ!i[«[ «åd¼É¤Gío¬iîtÇ2)yŠ´wµÅr­MLŽô5Þ¦öUþV¤Ø”ˆCÆÉE…Ûêëíè–ïr¦ªÂ>OMⵡ·«˜ƒgêwÔÒ­¬Gd ÊACs[W][k»·­Ùïm÷Õ ›Z¹Ú–ÓÖÑNÆÛúû¶õoØ@¶²­ue[C8LãÙX£V»ðtvoŽÈfÔ=ÀtŸå-ˆ„Øu¢õö÷¶ô,ã ²ùáHbƒ”~®Nî—jă†ìåò†&ýBèÝʉ8­ hà^Îä—Æ¨QôZŒÙ@Æ^f-#o’c½CR¸rå(ZÔ8Îp'Øb4jÈͳïñމòé<ÎQèÄ|ªØ™¸ÿZØê½ýU²wuÆn¶: ´ ‡¥êKE8Ý,0îáqJ/îéí¥ærwÝ„ÄÂñâ”ØåÎ3NÚéÒ«WHM%k)ö@6Ç@µàeŠ)½&¡eq.¡¶+‹!È<]&yä6F—n/®î QîÜäKôžÒßÁÊ•\Š­ýÑ6g—@‡!Ù@8é­Ä2Jëão cdó¬UÉãjPu|‹È¼‘í0ëË¡3~ìQ2ž¢6lëêH‹­ŽV³N¸ÏmKw¸~ÔÚ Y¸¯«›; ±|Ëz%™®³%•¾›dj5z{¡€ÇéF³Uô`¦¥ÛV¾$ Ç+·KÈù%Åsmý££ˆp(om¡ecÑ7`8¶uC’œÃÛCŒbMz¼š_r_ü°¤z¯v9©Åp±æ1e<™óM,Ó|¢H°®>éˆêã¬UÚ¼!>-çr»]lá°4hâ€qRyÛÈz¥Kû$Â{BjvG.0pJ·î®$Äy†öT`•&Å/:%ײœ“‰ÝGù»Vº|IÓ{åÞ¥ö]:—‘³Â^q”ÎBÚy{‡"!*#{ãÚg—3ã=|9vñ’}=fãdº£‹6F“H=ècÿŒlö^WË–š(¿Öˆ˜ß׊rÖè],V[>ùŸ‡VœH½Ï;z1A¡, šÏü'$¢q)RW?º@iR ºúÏÿçäñ6½«<Þ¦kÿs5&T´w­1Aó%ãŸô×#$ùäÔBT´¾Ý+a볓´o,8~õ?+›Ðk¥(G— ŠÞ7b%+5·æŽ²=†ÎqÞùx «•«_pA¦ªÄUNï C €²wçêÍö\Xåš*W\¹ˆÔeDqâ½°('¦pXHã´7Ý1­%+#+=+5+5'O뿜T%:–€…¬ÐpÂÆòwÓ’ÙÎBÁÞÞ~ªµï)ÎLÖ8DéhâÒã 5êá|>¶¹¹N­ˆ¢Xiž Ó¬œq£…‰ ô†åÒe§Ûëkjk•%Nß5nqãž¶%f-`Ë¢›}¼øìäAndmªÛ‡œ§s&î 6‡Ï’ë\ÃæX‘kÚb« ©‘~`PÖ)ª¸tBl‚­¦8Öˆ¢Ê”Nûra|Д=Ogß–½¨™e Ù—Ø2äB g¿ð@,:Áxg–üRrœYY“®È;!4Ç í=›z|¡cLܱ‚'—?ò‡C¢}à‡¼Å,× ôGÂÛôzÍgŸ³‰…Þ¥ ÇÇï¾^“—Ԙ…¼¤Ó¬,^xÚ VZ2íK9YF0[®—pí†ë8°"o€#ZÇÙ˜°ŽÃ >0bô*û",ê`7u0oŠ$ÛN2Ë=$qâM®ú€+.8up¬±.å+‡XÒ˜=Ùè›ãp›kbò4fªÄ䛘qJLŠàHÿ´zƒ€tG@¥dÀx޳ôAkE)2S˜ S¸Fb' l±‰¤±HlªÀN6±S46 ±ÈïT{ŒÆ6¦ìÓLìt-—*º È`vÒOÀ)Çb¥êø|]àäÉÓøœnlk0!£~ÝcµËØ>ÛkjàqFÐE}•p<ÁiFðxc‘ø§#¼¨ëìfQ˜ñ\)~]Á)¨ƒžS"ža `ÖYo¬ža(¼ÛŽ?AâŒÕ'hü2;þD‰o4VŸ¨ñMv|©ÄŸn¬.ÕøåvüI/êIßlÇŸ,ñÕ'k|‹ŠÄ·«OÑø6;~¦Ä{ŒÕ35~…?Kâ½ÆêYï³ãgK|»±z¶ÆwØñ§œi¬>Uã;íø2‰Ÿe¬.Óø.;¾\ò_i¬®ÀÒR¸Ò¬‚; Y]eA‚'RmƒœDÈ#8׬æ—8Ϭ1‚°ycQv­¹(»À.4ëÌEÙH!p†(7~.ÊžisÄDÖæõ\Ží!M€²82V/2‚‹à ¦×aÁÈm œ&—bÅÛRó­Æ%A-cשE¹(»ŽWrQv‘e©Áà3Ê¢l…^”M1ÇÜ$#mø°ápЇÓ)OÎ ÷ mKœÒ(KÌ}Ä.&E§‚[NF·ûf¨W™6p©r:b¨5*¬l ôC †\jìÙ¾qk¸Ï”Èœøç˜‰R8AªDK¥zÁŒ€ÜmÉ’D*yPoŠ ê”‘_˜‹ÖG•ï»4Ti¼‡4gÚÒDX¤Ç\÷£xåÙ:ƒÁ ~W"Éâê´Ì{®g¨»û½ We G NÎpÃï¿}lxï‰Î³•þ„ÞsÝçØRœ({_µ¿È–®ÜŸØ×ILzœL:j¨YȤñA¹%RZºäÉ ƒ÷ ÇR›´–m´}ïVö2/{ŸÍ¿ÞJ˜öX¡xÏèíŽÂiѵØ5c0»?2³ˆý‚]zw¼ÀE"7¤í‚§éÅœŽˆS^q¼"ýx21(äôhAvöŒHv6¶ùáˆRÊ>çžJê ^ ¤Q±òlDÉîéêƒmÓEßňµoöx³³± ÐubbËìÑÊNÌ&wøèZŽºz‡zÎrmïrõt÷¹Ä¬Ù.»yáìÙÙ´¢Ùq汃‚Húõ œ.Ú™®HÿààöÙrÞE<Œ©a(ìá‹ð€Û`ø1e`>‘ïø^ ǬÕÅ;Æ ×1×l¾„ùÚx}ά\õçù©8Ä*æå4“®úJ¥ß›'Òõp’ í³`†Õ¼çð™kÔâOžQ«fœÊa&ßr˜ÁÁòZ èX8Æèvo:ÌDÇã@¹*-Ä+LS Çö§‹ ˆ?.ùçXùç8ùçxù§Dþ™!ÿœ`Ôæ/ÝÁ#·ÀëDr)5$ìD¸º@€ûõZßɤ9…Ï™’Ë,ùg¶üsªæy²Ñwò»Å±o/† ÎL ‚…\i¨“ú£Üè"°,‡a+•j%ï$ušÀD™°$˜k¨òê;Ͼá#†fžI³VÒd&ÒÌ7iæIš¬Dš& ¶U¡ÅGÑEœ*7¤%ŒVlvš™òDKyŸÏ{ xïH3y›E]Ãg­U¸ðÿ©7ô>/“£›ÏM'8o•¾BËH{жÁ*f[|-Ñi2^#ãMKšFœð9,˜&-¼jk¹lk^éJ4ÃÞ|–óÙ,ÛM‹bw²qöžÔ£™-±Frœ–”£bÕ75)VóPæQÂ9¶sÅÖO›.³‹ÒbÀfé.Y—\òGåâIÎÅcqÕy º•MbÉ•®@N”E;–íbŒ.Z¼V—×X´#ÛÎ ;ŽÁ82ÈŽamcà D ].ŒsDúræQ©ãåÍ›©ìXÐÍ—ŠÊpSG]s]¤ˆ,¶t÷†\bwa‘›þVœHrJÉÉešÖ”55vp»zƒbj9ƆHß @q½N5…t|Yà’R¬¬i]ÅyPô=áÂ\]«»Kù¢„G¬œÊø[6‡‘h¾O‘®ÖRn1¥LŸ+¨À1>%À“<ûÀÜ ¯/ªÓv?-êÒÚbmúl¡XÚüÞú./•Ž6k[]{û*Ú±h­mn«[>ŠC×{ðãâ"fO_´—o u­íͪÁ/Ô­†f:Îøe$¿?Ú#´Wœp.3Üî—õ¤C}<6ôvo$^)~ÌB²¦™uPš¤É€¤@7ÕÕˆ¬0×îºÆ6bñâ6ß–“o­R@¼Öµ7›àånFoò5-“,Ý+ÛÝ­ŒßÏtðÖæióI§£Pw„¡aÃÄ7µ6×yåÛ²VýVçmmöÂßBò]ÖZë]νhÊM}Ñö~7ܵcüØšEó Ê)w¿|ócipëWŒËçj¾yêï\õwŽú[-7”__NØ8º‹ŸDo2™gO,Ý&_»·És4Ÿ²tv·Öê×8÷±dÞe)’_Œ¯«je[«ú<Û䚺åOæÅBøMôô0NgK“ŒÓ‰kNâ[gD¶ÎRz±s7'®Ü×Åó¸êÅ•0ºçp‹!×Eè¨Ãc ¹ÿÊ0ì³Ü_-̬"Øþcˆ>ûS²“¹NxlÍR[“8þn¼£È9ÙÑì,Ð*çIÎG1÷¯`ÒDûÏ9Þ™+pòmŠø;Ë$ÀMsŽO)pd8f8OpfˆÐ'BÅõ7m² +pʧ9Û7O@àùE\<“Þ ÑÔxW(©.㙥ÎÂÅsŒrÿÞ˜A-×ò•*eˆsGÄÄ×<ï'÷£jfm^€ 7DÐýIîƒÓõc.Ì'ÙYÔùDÐ%—3¹NÈ©¥†^Î¤Û N¦‘ƈ’T“<½ÉLæ Ãv(…Y6™ºl–Æ• VxX~y6ËÉ/§'j–g–>ÁñÝ ec²BW( å_QŠë›IËÀ´¾aP®u÷£]Èex—t…Úa¹÷™ÙÍ6”'ó¦VÄ-éyÀ—åí7ãhâzÏ޽¦·›>¯'æ ”5ÆÑ|v ¯`¢A×29ÑÐÕ¦'\ÓXûD#K*:æ$ïÍpte¦Uºj™%‘ÜC‹´^³[²ê‡lz#†v8A“$«a›¯`šC©LÚW0[÷4ó©T]Ž3ûƒ(·´ã¬£ µô)Ï7Âê§ôHãùr¡þ­®Í1gñ °}³ùÙCÁ¡ ÞÔÕíst{÷÷D{mÅÃϾ©­®©uÝÉ¥uåœà`?¶/Ë…q½t?Ô#}‡úº{β•ÐyIJ(Æ_±ÀazZ¢ßìÑî£fÛ Ò¶¢Úûc'ÛÎÕ[ÈÓÖTªgq¯Žê;ú.Áu²Útyx+Æ9"'áೡa+$½]Ýzƒ¾2ošÚu|[â91GjÁ’e•§:Zßt˜°Ïömr§/ÓÂEÞ‹’|Œ‹Ç‡Ú¡›SŽÚÄUä°»Rf6ƒÎ£” t¥ È›M‡ÊÏŽmW¢öc*ÏãÚ‰Yœذ·ÑP#Ó®T¬¾ãìštü/Jv^•¬¦«ÓÚá°øË«wpvWKÉIùdær>ž#}3Ë ~±~˜¼c’7ÖtÛöyPI“ÇÖéúšs×M ¸¡{¨Wö}AWéPîêqáŽÆÈItkTõ›—¤~µ[';Mµç}Àôñôî6L_£^ìä-Õ5Ž8ÛYãÒQH® m(Í0ÁÙÇrÿ.©²Î¬úh’†:ä=ˆrUŽ Î“…î‘&´”lÑÏä9×fþE)OPäÆ.L§}`Á~€`ïOZm™0KJŽŸœ„ôпR*´ÑÖ554wøG"cýE+1£Oö¿0?9:!\y(’=+rÇ´-mï’‡8ÇÒySÞC&êHZ³§k¨õ˜õp&uEÂ…Š£pÚ(y¡lPÂúë-Ôd™ˆñT]2jÞÕ[Ïž…]1ªJ±aÓÌfÑFÁÃr×÷=JdÃÃk¸ïèU@Yõ1òÛ}3ÍÑ·ê(òë.Ljèx¦Ç©ÞGÏK²–E/œ¢/]ð°ºtôìôõ÷­ÇibDjJZ1ÊDý{û,¢éZÁÈdlW0Ä·¸Tu·ð¦dwK³òÜPÄÕî‹Q*ÆŒ–Óx ÅòPKyÁùxð0I|t½ÁrCns˜{Odeÿÿ>ÿSÞ=ÿ¦×sÇÿ½ìO}ÏÙ÷6­ù¿—ý‰ï¹õ×µûº“ä_OÉÌü·’œV?™.ÊÒÀu¼¨4$ôMŒÃdjLl?kB²’PSŠ8µIúƒÛŠÓ!ZèÌUbÌ(äEgV!\=J!H/ó5‚ëBÀ96ÿËÅ ìµ¼í¾÷Y"F²B(åö·£8«Çn¢•nÍgâA§eúcž+§Â°xwà± ÌA¤žjJÃóh°3ÄûYW§.ïð;í*#½ E@®± Ô§·ËÃÉÈ[¡¿t`Íoïoê‹Ú<ð»ÕÄà–î^î§· Ê-cõçÆKîû…•HnIrSžÜŒ!I:ߟ«ÓqCöß_Äãæîõý[¬[™•[c¿KV+yа-Ï…³ ßÚU§ÄóbƒxçÉ­ÝÒT^ŽþÖ6¿K-y3Z¶<,^åu½¼º.–½.¬Úƒ¸º/¸•èRål©óS»ôuÍ‚ î_8Ia*D²ŠMÞ݇«Tˆ*:´.ﯢlxáÄÖþÁ³\¥B1k¨»ÏÔ[Z²Q¢¢¨O:VÞ’®µ=4mj{Ù²•]à0l;i„åqPýÑ&]×Á€¼@˜ßƒé" My¶~É‘/žeðûHZÒE=']÷q‘øL»p¡N!Â…BóâÓÈ $@£÷¶nåñ¦.Hà÷~7}‚ÄÛÜü³ÃIï mŽ…7ÅØ”EW¨(O´UF^½>h8ÎÎÂKNPKÕæÖM†ine³Ø ÷„xϺT€£ºµû³ú7Ì’m'Øß{’µ$aZbKOÌ>ѵ~»¶ÆžämL¶?í™"ËBÌÔ5À¹w£gê‚”·²‰Tx ¾åô¡,ñ¥Öˆ4ÀШ›äR2Y ™*‹H‡[&Ë>ŽvƒGebHF–3ݺÆ´áaéOYêÒŒM™òÄzºN*uÈ]ƒ:ó"ÀêÙe8äåý'ʃì2U­ "qmªPß³QÔÎ x9AžoçãöüÈiöÚ‰Da ç783¶Xm÷ŒŸ …ûhoìc€7_ûlÝHK‡¯]^’" ˜}ˆô¿Qußu,«ŠÅËCÔˆíÝæo#ïJâeAY¥¶“§kÇ~#¶YÒ—B /i G«Î,[urfaÖ'Žk‘u:×ý8ÆÊúLúM+³¥¾c™Kt›†"êÂw«³›%o¨GÑà҅§Õúôm³|óL…x¡‘ä6“+ïÜ4—‡õ’«ÙÞ°"ºmмlH^YËUC¹Àâ8;#æÖ™T³ø‚gûz‚ò0AJ‚Tåµ4 N­H³u7E鸙@.ÝáB—ÄÍ¯R%‡ÒWæö ¶‘Y o­2-‡"YÉØØ,«¶3Hk £8uSÓwfê|Ém²cuùKMÕÔòãç£,„TõaË‹ s g–h ùù9b^ªîæŠñè’»zSÍ굂q¹ ‚kjMRbUÉÔóþ¼ãKÓ ¿„¶[Ã}•IuI$´ä/ÿèNÛ`j©ÁLÛ¾Z}Jj`÷ÕÊ=¶ã¹¯–{låîÚà8¸çî’Ç1fÓ3}Œ:+U” oôsøÌˆÊQœïÁs›fQ1ëÀÑÒ¤XŒâ][(ˆîÜh†3­R”–š•õ]mÞzÅ?1¶‚µtGäUîN¿we]c× !sÒ »ÓïözeiÊh¾¨v…mª¾®6ÖEš£xu ù™Ÿ$0£š…ãÎí<Š 3Û\›„H'fIÇÓžÑËÄ‹Šçߌ¤Å_…<º36Ýö[Ý FbŸ ®M †w6Ä5LŠX+æÂƒÛãÞÄêŽ>³±¦µÞ×X³Ü-½D¼Ñˆ:ò’”X …²>:¨)ÇÅñt·ÖÔ6Kk;¦£KÛPt[]4‚#6-@}d»ïwšB®”WÏ7õ­” Ö¡Þ^éœÃ‰[˜ÕËk7jÖ‹¥MúOÊR²·/¿ghpcß"x:¼ËÜþö•uÍnÑRíšÚ6o» âM ñJéBNesC¸ÿKtž¹Ã‹÷¨‰C_“ Y,2*ÿ.ã觘švŒc9ZÂÒ‘+&p*OÏu9Ç:SpY†#…—là>:™;'¤eäÒ^05íÇøÔGqÚ8G–S_— þsæ2¶íé”fà$¿ .pæˆg–ý?'¸%ζ06g«ö#±Ìà–Û¯œg¥Ä„<+KÍ¡‚½~?VóÔL+ÑYæ"3µþmú@R©"*¯_ˆYGå,Ï 1Ö¥b€áŸ,¥â¤jÿv‡òr×л÷ÓîõlºBÅz=ÛøØJxq«µpj[H––¡&1¼s?1ošÅ}îrDn°¶Ø•u›N+gwqíIö´Ö%{gâÑm(s¬tÄ@yw!V´Ü†ÁUÁAYƦ÷†´›3…>“e¿®‹øNÊ\ƒú‘aè+bXNÔÃ4G†3Q ¨>j©«o—ç ã™®¦¶–j’1Zp<6GáÑÕ•Xgñ­®5¹‹ï¿W^S]Þ8Çð—’¬—!(pë(K[îN‡aׯv9ÌKÎ-å+î;éeŒÖ ©e³Ë*ä™éIº4LCeOfÓçé.ˆzƒb–3nÊãŒMUSË|ŒCùAÃÔõ,¡éæ&ÙZö~øRµ‚Ë!V?:º_²‚áJ•è²Õb#ºX7/•CþÔR˜4»Ûµ’Y×쯶‚Ù–X0tÄ9lGqhü,yS8[ÿvC[ÌÝí8óGe\¼¾KÆá¸w$iÆßÏ.¸o`)¶€¥è‰ÁQ]wUOœž¤¶ÑX[|~Þ„ÑjÕ¸²àz Np‡"£ì–Ë®1êîƒÿvþê}^?ºs½knD„´ÿ½ÜdËÜx›Z—½Çì˜îäÙÿ»¹iöÕ¿¿ÜÔÕçÇç†çõìjzÊrs=·ÙSÓ°N¬ÆDV:9b—¯Ôìàè oòåYÅ[ þgö<<èÖŽqq[m?ÞàÈmléŽi;³R²Š²²²ÒrвÆÐ83Gü—•†ÿb~¥éù½:òÒûex&ÜÖ­üfí>²ãu9Í=–ÅDÍ2³ÀèZ‰“lߥº-OÙiÒ3’®šô§¾PWŽé8ÊòáFPí<ÑdnÒËd:Ìô3Ìú6Óï3Ó*53ÎTéfº×{¼™•Ùºl¼IêÊv¤4æýÒ5ÎòÏtæ¤(oI礿ÁE&vaûÓX°ÀOÞÄ…mmZKzß'êt)h±ö(«ÚA§emâÒu*NÓ×}ŒábÐYéF{ßbáPivT†@g¢Òí¨Lʯ¦cíÓG_æ,«O•Ê‚;YÝ Ë['qÀ9w›ùpB «¯ßòA”§)‹d{ÿРy˜ Ë¼fviLûåÞŠ˜Ô“·`Ó§zŒYüœÚÂR>keRÊûø `:âØì§V…®µW¨­É c›âÀQcêçô,w8 «‰œwà¶ÁTA_¶aý»­Ö³Ømá(ØÆÇ[òí_Ør¼aà—o¦àÔÓÝ+ôÍîÁd1]Ÿ9ôÐë³ ¿Ì˜˜OœKÏÀöd±®:ãÂ×.übÓ;¸JÆÂ5àÉb.Þ³åðx1"à—óO½¼Ú*Y¤«oœ_Ü&’¯ &Ò‰ÅÞ8œ,öÝ#žÇÝÇ 5õØø$¯¿בnHiç]3_OŸ,zäÉñ5‘w™þ¤5Q|åÞǯ£~cbâ-zæ/8&8æ¼ßÙ(RÂ/7&bz»ƒ¾a¼”=YÔ_Ýø‰%·‰"~±²^y†ˆÚúOïÜÏ–¯‰^¿XY£7:ŒÍÝ=ÝÑP²ˆ¿¸`Æ;DW‰_l‚JèÑÑâýu÷«ã#1~±ñ\¢§ëèúd²xͿڵFÌÛñK­Œ‰"^Ò68´aBµø6ñË‹‰³w âT7oMÎÕß®ý–(übåü㜢 öU$‹—¾æg·Î;Õ0ð‹­Ã‡÷;e×7Z’·9uV±è,ð‹Íbé_B}JçÍ?.xaDt<øÅ~»WÜO‘´ÖÛƒ¿ù¦H¿ØÌíÉLQ»ö“Å«xØñý€$ñ‹ýŒüÙ"^r'¼]÷¶èHðˉtp#ùá'NÞ>3ï<”ûŒ˜‘á76&ò¸:rŸÐ%û¢I[Àm}“SÒ–~±µQtžŒ>Ð=Išò“÷ðïC ~±%ëþžˆ*¨d±©<ö[ÏÔykšÍ3)jdJåýN”~Y1ñ~?!ÕˆöŸìKíO_ª6nz~±ð‘T´ð9I³÷ô”í™ï] ¿Ø’ùa«ˆ9ØÝ\ßÝsV²¨ç|wã/ !ñ‹•õÍí©ôtHZ/ýí믞>Í0ð‹•uÌîT£CŒœõáäÍ®d\ýù¿±~™óÃ_L5¶vâ`â¤iŽÿónß'Ö; übc^ò`ªéY‘,fí›ë¾t‡ø<ð‹í;–•dØŒÖÉâÞåÉ÷Þ&âá[¶'a9{$‹šñFè×;…BŠ_lÔÌÒ #`’J5þ6y+êMgd$¿[>žEü ' ÿ¶8æÉöñ<â·Y<ÎýjFòMAñ,âÝ?-ß½5cgÐxñš¶Åã‹?ÌH¦w{–§±Ó=Yüw±hÖûŸ±÷püûŸü7ûÔÞðúS·Î߯yvp[ð_ŸFYyYÙÜêj£¬¬ªzîÜ9âoEUUE¹ø‹å[f”—UTTTW‹P… ¯ªª¬2\eÿzQÿ á$x—Ë7vo? Ýæ³6ö ø{ýÿ„Xÿ©-«/§q ³‘øKÁ—¾‡¸°3çM¿'ϸ-ëÉcïr4?y,wª öoìÞŒ3ðá!¸ž'ßc×U}›çÝgçæf—(—ÜüsÇ÷ÜêÕ¿ï=ÿGïüû´÷ü{ÿþüY oŸ$í-Þ§ˆÅ»_&7ÜŸÑdö¸ £Ù‘bܽâôZ {ÑÈSÉŒlêŒJSyº¦I.UxwÊr2 ë/ JRø,PÓ«sšeŸm½$æOž÷P¶ïöïbÁ§Ñr^|úÙbÚ 7Ïo¦*Ò [&LgÎÄqc†ñ©T ]v,ÝRñÿlIÆ»8 |¨N#6£’nß{ÎÐÿþ+ÿv½²²c¸·äÌÎÊ×w½íÜ-ÉÜyƦ×GŠ ]K ÏHQø³ëˆsèØáú’ÐpæpQAÙR£s…·s¤è<:ã.˜fÖízhåþkέB¼]ºB%Ç.5VŒ•ÁC96BßðÚ’Þ»\ør×¹ÅéÃ{·9.)Xºû‡C;åÑš…Oî6¤ì8Ø ’˜)"ÞõPê…¯ Éz‡Æø×œ±ë±²y€þtîòáÂ{7¹¼#E¥L)óg§ì{ãÙhê#éÇ5 çÜ{ÉØÝ?ŒN8ïïÇ ÈÚ†KÆ^<á’ކ‘Úï/Ü'ÉIw5,[øöŽÛI7†«‘óÊ}wãûß»£¤ä¯_ßôú£õ%¥8Füm‡9äÇ›^ÛS_r¦øûªøùñðŽ’^¼í­/)ôìm.)]±Éà<»6#E9‚o×ðá‘¢ *ò­n/)Ü4"„Ïd9D †›K “(»Td_P WâÍ+R©/)öðO( ƒøkí¦ÒÐJQì·Š±r¤k¤¨XÄÛpþ¼–ÕCÓ‡¥.óŠðPNèôB¿h-x¼Z B9Êñ%þq¼xû­áZعŸßë~Þ3R=Uöº_ôìu?+~ψ&ëbñºö¸ŸXøèÎÌM™aè^J;좋š!MË‹BÊ¡G†žzæàá·FFv=T8|xÏÐców¾4”!š`£ bµ‹ç¡YÃîWÄ'µ§å€gÅAx‡®Zµ8xpxèÀ®/$_Dòy¡å­‘áGž(ÛÿÄÈŒ¥@Ìð±˜E5”>2c›†P~!‚¢%9ó½ø^ö‹@êÁ§FFFd{^Õ¸SN(„Ê…/å£î—žïçïäŸÈq»‚oÃî—† Ѥnj8”Q¹o)Dƒ»Ü/¥úÑAžÛÀ£SòxQòxñ½ò€‹Ðþ‘+!6†»–†vË’¨Ü·ÿ‰'ž]%ê1€ã) ÚéžÞ’‚½âwÊ‹¾Î®a÷‘=Áƒža÷[ºßÂîÎ=î#{݇×|ÿpËáÀNÙVùÏXóÝ"¥–Z”Ïzñüàß¿úß}ÇÆãâ÷¢ø½.~™Ç‹£ø] ´gÅ{«øuŠß™â·Iü¢âw±ø}\ü>‹° ½Eü½Gü¿Äï ø½*~™W,~¥â7GüÅo­ømRü«Ž—c4G}ÊÁúí.Ïöh¨¿ïĈ Jn6Ñ;…³õ>ÿn¡—÷ÉýÊ›ÃjÙCh›]á¾@ÿÖˆk~õ©óçÍv¹šà©š 4Äñ†ò¡2©nT3X`Vw/ÎóT²`-«IŸÅ'à ø<—O$½1bg€»©t¹¢uÏ]ÖRñÓៈ÷çlá)âS™^(Ã1ºÜûüW,:âÆ8pUa"¾ê8ëý”·Ë0n³Ájì<k·Áv˜˜%ý÷¿ÒffÛ¨ ¯cY0êÞŽÖ‰)†g°¿'‰ˆ¾4%‰W¢q¦ò’Td5†qbcå´}û@и!_4 XËÝÞVwseÅì@o¯aüÂÑ""uo Ööo«1:|n¯ÆÜèÄU|†‘–‰ö„ ãçæn8OÆ—Ã}Ñ FÃî_uùÎ:ïÜrF}Üð÷ø±2eüÝ—þ•=I´>ãI'Øø´SþÝaøý~i€ öm1¾cø»7G6ÊÈFŸÀn F±ÈFjœæ !¼Œ«.ŒŠv;×B¢=ƽ"v»Ñýá-¢.%wlÅi‘á 2t•äàïðÃ\i†Ôذä±Ì+±Îê÷‹¼‰¯ "Ýåð«·ç Øœ±ûdÀalEY·Ðƒ@wÍ?ô|ðï_òïb—ìGZ»ôÞÿ¶,üû÷ÿSö?»5þ_nß:ºý¯²RÛÿ悬Šö¿9sç~`ÿûOüûgì˜þ³ö¿ý+N¾ô#eõ/èß‹–¿pÿNyá<þôÂùâoê¼I/\@÷ w^òÂnþ-VôÓøö?ð‰—UÚýRý¬±ÙýòŽ¥Ý;³&KØqðˆ‚K6¾‚Qí~VÀ©H“ÙýÎ[*í}¯Î3ŒmG+Ì3…^“òîe~å¼8]QÈ™ã^Ûýš‹•@“£Úýè¼ÃCuZ,ÝR›Ý/™FÆœ†.+;ݾكAj=ßL‘ycš tµÆÿþ«ÿVtGKr:GŠ®/3 `•Ú74åÚkÄûpf¨ Ü(X1Rt1™•ûÎXµ¿CP^ ìÁ½…ß@|ïHQTâ/Ü·§¾$shêµWÈØU1±×1º¯«räÂ?li~öPºH·xx¤K0| ƒÅëQ÷&Ã'@/2VÎ…û†Ó£{Ò‡²‡;S;G¼ÅBÄe»ö§.|{ð˜†ÛK¦îqŠ7—ÍžÒu4…‰t€òŒdžükdê’O«à³|Dܯ$Ò9öØeÎÑñž°ýÛõJæÞú’TØøRWx~û˜Œ„œC©Bþý¾Î®‘¢›À«¹dªà_<¼¶$gøäƒ5¤p…×'ĺXÐx£”o×;#Cã6¡¨H}¤è%Y`‡²E1Ü | Ö™~äŒ5H+©<³bå ]N–©"ª ¥çTÉ ‚ÎÐU‚BÈd°.|}h|ȱ԰ˆÎ`¶ÞC®~lËQ±ÎÑ]ï)GkD–tŽâò³îíQËWJ!ê’Lõ¬ð‰Ê\9JÑ>óm²ò}ò­ ¾ÛGꕬ¾EZ{SK<¡Ì ÑZ­/¡_ÆHѳú›‰§–l2ö¶—dz=¶oi(½r8 #/#EÙ*Æ{B® ›  ¸ö6ñ>bÄ•…L¿X”G&Ê£`…`T*R)öÒbªRòÀK¶r—ú[l—¯XÈW%Ê&u“ƒQ…€GLÁ§ˆ2Ì„Õ\°Ï\!êóU¢ ´ìÅûm^ÈGag¢°]+À«9®¬E—R"Ê;:]”îa/gð¯ÈÜúÙöŠ÷#a¯„Šši´HŽŸfþ ÷êY"9ÞP»ˆàÑYµA¡=ë…Ìz;³ÞŒÆ›õf•u°_‘õB+ëBT¶d½Ð ÚÆwË5„LÈuá~–™ë@|® ÷µ¾þê»þ_Rß¿ßú¾ò¿[ßKÿ%õ}SÒú.Ðý]êÛ%ò[ˆúÎñ„Rõ_¿è P¢©à÷"àYqðûGØ]SžŠ?y ÒÒ½èÀY¼¡—D"^]¢:‘©2f ‡ zV nÎÁ¿éD„ø¦ü¬4B™•±õ•POSXO†è5“·Ä{K,જl‰ ]ônÕqxWèˆ3W˜ÕQ\W£ç§äßšŸyÿ’üT½ü,ý·æ§ê_’Ÿö÷‘ŸÀ¿5?eÿ’üìHžK¿¸¼òŸÒ/fšúÅ5•ïC¿°Ò¿ñŸK¿Š}|B¢¾0ŒX:]è¾JÙáØS)`*9H%¹"!•³+ 3¿bó[ ôÄájJ’ŽšôJEoøYJ'êoáá!×H¦ Í3Ä¥1Õ£æ(•êŸH®!u8÷rA±ðÁŽáYOˆ—hõ ‘ûejö5tB—gø‘¢gØÄ¼êGw$š7’/8v¥vÉÙ“ßGLæ…Ï­¨1U—êñ01•ÔhõñÒ?W®äõañõŸã?59ÿ’Ní”Q¸Bf%ø^— Pñ *%•¯‡Œ*ñÅ”ˆ_©øÍ¿2-„K1„/¶SÄqá4…ˆ®c#€Æ/dxK×F´¢Ì¹‰N.âüÒ*®âdËšQïz¨d¿ )4¹¤*4ÞxŒüШ‡tvBê2”E±•gÒ%Õ×rÔøÝXe¿ã‡X5Ž Í(µD´ÖÙGˆÈSE2?–ÅAa¤îÄŽ«X”„ÄE_B£»*ö†TÏ å7Qè ªlßÙXrï·µ·ÝŸëþ4ÓÚV%ûÓø~"ç°@(*™ïú3‚L`ŽªÏ\Qõ~õ™?þ9QŸÁ´ÐÖŸÜVõô'9vuON! P€e‰sÇ ¢ó~Â^œè¼ƒÐ‹>d&ŸDy¾4Jy ! KX·1­ü¨ƒR¥œQ$5ªã$\BÅÕq’ì­<§V­<ï³wöH.þî:âÎ݆V’µ'÷ˆ µÉâ¢AõÂ}«®3¼˜Z¹ïÐö].ãZ„®{KмþpŸ(ÞÄÛ£©âSMЃ•¨m&³êÐi"ÍEŒ&>–ÊCã‡s{8ëÂïF3Fž"b×,€Rç§áOäÚd:8cUå¾¥ßÉ1àw&òtðÁZ@ö¸_ªÙ³ó­á¡œ…o åÌ_ŒÄòwãvŸ…‡£i»Þq•_›*â/|4š32$õPæÈkþΗòwÃOþæ8€½$è‡×‰o °ÓD"¶ëÇPÞÂG‡²}]€Þ+(¾æ)C'IÂHä/eÏN0ŽŽ×IfûÌéç~éÐdå·'úïŸÚiÈÊ}qã–ÈãÈŒÈ÷b䛞y! ¡PBÁ3¯øhžyÛPB¸£éQ÷KÅûù;ùç=yÕÝ`Hϼ‹ÁãLÉã°äqø½òÀšäþ‘g";J2Cãw-F‰eòŽe Œ¬Ï'ž--5 þu>zÅgô–Å{ðïÿÿ®_bwˆßéK £Bü¦Š_ºøýå4Ãø­ø=+~‰ßmâ÷eñ»\üοñ[/~§‹ßñ;Aü&àîñ{Ið{|‰ä¿Aü)~Ÿ¿KÅo›øU‰_'ÒT4W,ðòýþ…"®xÿ…ø?§Š_©ø-?¯øm¿ÌE†ñªøû¼ø=!~· ÚoŠ¿Ÿ¿KÅoÛBɯTЭ¿‹Äï6ñ{Vü2Æ"ñ»\ü~,~o-¶ÊCº E\›q1Çú Ëº7òn FÌÓðp$[÷à`÷v`¥×Sä=Åo‰lTNi-C½Ñð€vKÃAWpÊÒÞd£Ò¹·7óQ#ˆm êºûz‚½ Áá8'²$ƒ¶…ÂÜ:fñíÁ6Ý2 n3ìïm½½é nîõ­øÈâ›v2X[¸·wÁQ ø£°zEz<¥TeÈþ®q2§ß5Ξ™ø°¦‰/Û¤°ž¡ÞˆU®öPÛo°7ØQE)ÊR¬Ô†Œ FMžm |f¨­­·­- @¬$Ò“£~º)ãXôQá‚àÂ[Ãe±ÖôÀé%‹:Yp”ú ‚d]µ™Qcœ:“?iô’>œ,yïI‡G6Á4 h“ÁßGšGý6G+§dåšP‘Ý3ëÞÞ’µ•Ø×þFiÃñmßþè„ÿ¡¾Ìì’õVª‰}L5YßeyºFGkS][½Û C7ʹ¦©ÝßPÓÔì®—ïmµ§»ëÚýeWS[ÓZßÖ*Ðqa’HX{S‹»­£Ý 7µùëÚZ<Íîö¦¶VÄßÔÒÑâ·ñÇIWæ©x_áó×47ãz‰“á¦V`+ÞÛÚ—»WI¸ÊwÅß–¶ŸæÃ÷ÚŽöv¤­Ã-mï©ijÕñ=m¾ö·ÏW³ÌͰÏÝZo#gÜWIÉ ’¿¦®NX°–¶ú¦†U~_{ râ[ÕZ×èmkmZí¦¿ûK'¯ õD„ÏS˜¡­ðíâýnþgüá/zû‹Bs†3ÈÒÒDüáùÖû BoØ-jï-l²Ð.°æ6˜ÐU^°'ltKLhÜF¯ ¶a©‘à¥ÿ} kYºÖ+ŽÑ¿ú'œ‰½©ÝËþ°Ã³Ý§®ó/ F›¢Á͆ñuóݽ­ÇßÜÜ?¸ç¤oÚ)q¯„ñ!P ú}ðïÇY"Æ·U<8þËX/ÛcÕ…‚=gáP9Ïö¦¾¨¿a°ss¿ˆf| ñ¶t÷úE—ÝP;ÏN2ŒOk¸¯{‹ÎMñ{¶û1PŠD‡0V9UÍàF¿§§´ Å"f¡-ú[ƒ[EÏëôl‡Lþ¦ˆoh½ô²§)jx›1M‡¹ká&Ã_;î ð¨8£S¤AY”‘ʰÑ&bI‡{”( ãûˆÛÔVžøU¢ÕqçME•,ó+ŒÓ<Û»Â}²Žü5Ü(Ñì^ºtUM£§¦Ã/ï^[ºÔSã©YÙ¸tµa|WÅ@ê5ž&-Èc©ëOíã6ÚÚîH¸Gt™I#ú+±²4 ƒ2k ^)x ¢oÅÓôo¶$Ža%x^Ÿ?‹cBþêd¹ˆô¹„8îº^bÞãKʠß”ÅöéxžÍ5¸¬BôÒîenoníþ8 äæ<Åíºf ¬Š²Ò³{<$Õ²Þþõݽ¿»/24d!®\-ê_Œ•<‹F·½»ÅÚÓbßÁbßa¿›¤ÙðûëlûYÞÏ~‘+±C[ujAîêI¶gÄÜé“ DìíꄤZB“]¨Áq6£w,Çé 5Øq“DW©Á½¦$Bç8M I„ÎuÆèOr¾3AËÐ9ízØ]ÎX-íng¢&÷Ó®éI±tÀú”DqYJ2]ò¤{§.JE¹Û¨GÈ“}^sxý`÷àö:ÑR"qû§âÿiŸì[–Z÷àwƒß(~7‰_Ùñ†ñ ÆV#n¯Úœ]©ûàß?õ¯±Ú(¸ü8©;áßZ~ñX+᥶ðÅÀ»¬ðõˆo ß'¦[á Ÿf…_áóláÃ"ì²…ßáÃS­pÁÁßv‰p-:çú9ûæ|wÎós^ž32'}nÎܹs;çöϽdîÕsï˜ûÀÜÎ}aîksßšëœ7sÞÂy›wͼßÍ{gÞ¤ù³ç»ç·Îïžß7÷üáù›çüïÏyþ;ó‹L[P¾`É‚ökt/øÈ‚/,¸{Á÷üfÁ8æ-,YxÊÂò…] ûîYø……·/¼áS ±ðÕ…o.t,šºè”Eu‹Ö, .:kÑÖEW-úú¢ý‹ž[ôâ"çⱋOZ¼|qÇâ5‹7-ÞºøÜÅ—.þæâ;?¸ø‡‹g.Y¸Ä·ä¬%K.]ò¹%·.ùÞ’K²Ns6ï´¶ÓÖœ¶ñ´¾Ó†N>íã§}æ´N{è´WNÃÆŒ©¢nRÊŠËüeá²þ²e_)»£ì­²1åÞòîòíå—•_SþÕò»Êï/²üéò7ÊÓ+¦UTVœ^á«X_ªØZ±³â‹7W|·â‡EdVæUSy|eyemå²ÊæJoåªJåY•gWžSy^åÅ•Ÿ¬ü\å×*oª| òáÊg*VùråŸ*UUã«&Uͨ:¥jAÕÒ*oÕʪU›«vT]PuYÕU×U}µêöª{«­zRÔã U¬zµÊ¨N¯W]\}bõ¬êEÕµÕ+ª»ªûª·ˆzýHõÕWUMÔîÝÕW?^ý£ê_Vÿ¡úïÕÆœŒ9s&Ì™1§vN§¨ß̹ys'Î:÷Ø¹Ëæú殞;<÷Ós¿0÷ûsŸ›{PÔoí¼Æy˜caݾwÞÀ¼óΛwé¼Ëç=3ïÙyØ“‚ÅñÑ•¹ÊJÊÊʪʖ–Õ—yÊÚËÎ, ” ”EËÎmûò²+Ê®)»¾ì¦²ÛÊö•=Tv ì™²Ë^*;\öj™QžZ^P^Xî*/)/+¯*_Z^_î)o/?³

¾ƒÿè÷ùoþgÛÿ§NÔû×oo;êþ¿ lÿKØÿW5÷ƒó¿þ#ÿþÛûÿÆüº¡³í‚Ò4ý;ý²ÓZùwkZ£øûÄ%CiM 1ÜvÁIia¸1m9ÿFý ÿbÿøÄ˪÷ÿ}'Ùþ¿k L™øï.¼Ãuƒ|/H²ÿ¯Ìaîó;Úþ¿²·Å˜.þ>$ ëÒ£¦ÐÎ4ù/t0Î6&äÌ9ʾA½ÿoÍ'•@:¶.Ûþ¿s[$Oîí»)–n©mÿß«êš CÝîGgîÿûE¡ÌÏ+H û`ÿßÿ>ø÷Á¿þ}ðïƒüûàßÿ>ø÷Á¿þý‡þíz¥¸“»¹¹g¸¹d¦Þ0Tì Üj¬¨|}¤èÀÍzkLšÜT_’Ó5¼øú[Ô&!—×owì¾ÈôÛw 9ÔN‰ŒþÅ_þ‘9’î)zâfóð„‚ágyÀ­x”póP»Àù†Œ]y‹Üæ8²f¨ôÂ×£y#yös<6¡™·bçÅ5·˜5Š÷_øúPN×HQê­Œ:|XoüNØoX‚½gzk ·¶óì†E<Å—y Õß*w˸Pbº4°'lápj vœì©/I=T¤¶± Éo¸E›eTtý-1»TJ¸%Ó×Ùµb¤hàf%©*H³Üí>"Ä*ƒX¥¨£²N@qÛçflhyÖ*¤ç†Žé)êEÙ…ÖÚÊ%ÇÝ}ÜJ6Ó#(ž(Ý^&œ3ü¨"ˆ)“9ÜY*jûFÁfïEUNx7”ìm¹b¸Õåîœ*äØÛPÈêÙÛš³B½u¦zåÛpº'ÔKQžeZ3ýgèT:†_ÙõÒ‘ó_Y+ط䈢g l»Õv¶€.rQnù»W9¥ áæY¹?­è¶[Ô¦ üÝ €n/)¬Üw÷p.þë×Õ^µ¢¥(Xn£÷ìÙQ"ä¹IÚ®‘‘¡Š‘¢z¤rĹɨe}ˆBþͺý¡‹c›8ÖdÃÏÊ‚/ ®ñf8Ú+‚á%9Lûàm¨£¬ówã"²NÑøŸGÜtÁ/î„›Ù±ÿŒŸ£h#Í7s;Ý RT¹Íw×ǽñ‹)¯{dÚ¢Ý×q[çòTŸù}\™Dx%+i}‚V¥¬°þ3†÷ó%î{‘í¡!‡Ugx$ ј^’…uÆ~‰¿èLQBÐõí•oÅò  ]ät¼ž»ˆ8[í}ogŽøþÿ®²îùîÄ Í }€ÍзuU*ºö”¶5”2ˆîGTLè{–Íæ¦÷›vq“dè AT9²B´…B[ãG›ÙÕ%wöÚZv@úå±9/¦;ûÃ7Ë“‹R¾14Aí®VMê EêÛs?2¾ç~ÉÞ3r*÷=Ú o7æsøÍ¿~ÝüÞs|^ä´k bžÕQFàŠb%¿fh¾ÙX£% ½á‹1Y§²FPú¢ôÛö]#·×a†ŽÜÊÓ^½Yí<Ý?Üén˜Ú…2¸ é³ (ñ‘šyŽúÈ÷6¤Š.`8ï+B‡mŸ{±ß¾¿³°£³‹ýYzÝ©+*ÿ*¾Í(ðîé-™)~.ñ+¿©Ö¸Ã’÷ã¼óÂý ßî舎ãFNú#kçPÏçPç‹<$ëkáÃù»qF>’…GÎ5‰±žÐÔÛ¸ÅVf4çeÜ›°©DöÀ²6_*¾ö-Y(ón³Ê!¿³¾=ül§{ ëe'4ïf ¢*á¹qwáÛk†Æv„<·ÙêçP.ä;Åf(ÁHU÷¾[äG"åû$ÝÂ×¢Ùº³ÆÆÔ©ªDb¿ÏÊ}w_þ¤`Ç0OÄ"è‚v½R¥‹žûaëmûƒ2«æ`oí».L2vUqü´Töu Ïzì D‹Ën榵çÀ­Ò¹Ù¸n " n¥r öÈOö®-)Eg,™tŠh¯:ID+±¢eŸá_W¹OǬBÌRÄŒ–àP™©2&7ÉM‰}T/2ÉÅxŽ6ãéô‰ VÉ^t¢en‹ùR¤„ׂå°Ö¬Û“ÉÁ²|ñ‘ïze÷«ï¶—Wâ>õ¸òZÄ©úS>,zº\ÙÉp€â†Û™zP6»»¡¢®ÐÅ·Å©7‹PöK…,‹¯yÃÕø.¡ÌC•΃r0ƒ²È57os+í¼êÅ(_EŒ*OèúÛbFfp·Ú“Ìoó{S|~'3¿ÌqŽíË݃«s,³ˆ¼•Þ¬öàªLb®Kvh‚)vãÞŸáéÖ©:"hɇý¡'âœÄƒ‡Lùâjò #SªZé’r@Î’w•ó@R93“È©ÿ­àpŽÒ|>NØ!çªýÃ…%¸ B&ǃçv½âêàù‚o™>€Èåæ‹·áÀ‚Þ’Rt˜šO!•R|R ­´·$Si¥9±Zi1íŽD¥TŒo¢OqA+ͱS‡kR‡s§âÛ¬|}áƒ]ù»_EVÅ·¨sò/ü):˜¨èô:S‡k=èt¿‚òLgª#Ô-ølZí³Ã*C3MÙ Ž/®¸®²ò¹…oç_XÌ«¨ë<{þ›¿|ów§ Øùoþ&︣BtŒq‚ùbôˆæ©ãýT‡é µßn««5ìÜé y»õQç,|møˆ*$SÇT…$‡UHk0 sÛx=UŸPÊýødCÛmçÛØŽN˜º8§„-§ôWÒ]Ód†ñh…ÓEëòˆ¶˜ÏV½Éð²¥Z4¼"çZVJ¦7½Ý6øæøÉ[Ä¥Q"(öÔsðʼnV.É\ž‘#’8eŠú²æf+nñuV>gN= ñI–pX¢BíêBYNM숬–ˆÖÓºÉÞ¦ÎXCÕœ×þ½å_x¶Pø¨2%^_è>{©¨1ýþÛã:³±²wxB ´£Þ*9Zü³j?ëKÎg dU‰äÊ8§å<$tàö˜ãµ$÷©ïy*›™¤škÁx02t¬9Ô5Þ;ÔIÕ¿p¿Ù±ààau× Á1UÀ:tfõà|øÜsöÎñv퉢ü¢¶d\zJ·ûö¬£¤B­¨«Ó7|pÔН½‚¥Úgqz¹KdóÂׇ&êo<óN]æ//(tUœB¦LMðöBKѧGÍ”µ-Zoþî"eæZêA™Y–ÊÓêÆÔ;cÕ •áYÈÊÈ”BëZÑE­« /“ªVB¦¶t&)3«jVÞ9JÕüˆæÛgeµt®•ÿ„á¢+¤®u¥%ô¡Qd…ºÈž7‹ìPÊ &Å"Á.ûÔ·P$¿FÎ};:y¼Ž4ÃDAQ?RI;cøáuû‡2}]O¤Ucþ3Z ‰nÜû9´b¡y¼¡WîÔ}2ŽSÓvtu(û\ís¢gX–Ú¥z†tÁ`ÑpNz ºü”Ÿ.|vkÕpkæS/¯ =ÄJfèê‘chɰ;µCFõ¯þ†kÛ(^Ñ¥6ÆÔ#âd·ˆ8+lq´>ÆïcמTm»Î4O6›ÊI>Ù¬Ôj¼‹œM›µÔÐÈc~jIþ…Ò)˜å_w>ž­©•þ…FOŽÕܦ˜úòy’­2‹P¯QiÈ–Êr—eOÉuçÕ:ͦlNáÜWW“@=›0šyO¥ QhÖ…Ïõ­›„&£ÕÍ*“M|䌡iædT蹡»㔠¨áí8¶Úœ&.€@¿‰ìß–à:4n8÷bÚÉöˆ¸#3.…i!Tr·5XƜ٨NHKE÷už*EÁdüp™8ïKemíGÄà‘Z ^3ÀKÄ?ÿ•«x®:9èìl×8“Fh¢}ïA±›¦ÂáKKnÔ¶#ˆgÞ-G¤ª¨#VÇ›ˆŒiÅîy³gUî;ÿ!¤¸ß7| J]t3O땞yÞPªK|ÔVCð†…ñ7N‘ÃRÁ±¢@Ùa-º;¦å‰.QqǹôÃ7–À´ÈI®woï,—M’üÝÇ9ø¹Måf¥(?k¾°; ÈBsî¤çñuÎ}[aÞ¹ÃK…BÝ5Â/LÌð"“‡‹Ø¨¡Æ»í_ء1ÅÁU%¾§Ý%pDݵ¯€YÆ—â᱂§¼ÖéYá=øN°©âã]8\üŽüx1'>3G~ì ]cÏúHþP§Õ=®³—OŸl(veJÍXç· ]bºgÙv·½+ŒáÅï14܈ÓoÂØZ‚6~àü_`Í=ÿއ<¾\ÇwW<ø{9Ý(9îÆàŽf$^óóÂe—ñßû…ûº†ÿ6”gײýûóïÌ~p×Agt⦼]:»V„î³}‚À×9üèÁî,ñT>wáëÑÊÊ}†—¡ñï$ùw>¶¢3t—EÔAº¨—¸E,¸ø÷ŸÿÊ•¨ú+J®äZXåGðо»a%ßQ2Sü\¢Í—¡Í‹÷©âW"~¥âWl_Ê(àw µ·40ë;È“Ñóº’B‡T:9’—‰F1Sjßó<üø!¬Ð‚µÐ¸ëÍ‘¡ãô‡ð¬½5ˆÁÙb¾lØ“:ÿÏðU%(ñ½k§¸òwc-B¨›{1Þ“)ªt¸ÉÓå+[ó_#SUí ½t·Ýð2®¿Mx·lªۀ¦sD«R%úðÈ©úÀÇ4*ÏŠSþÚé=ø—Q°2›RDÏw‹©íäï>O.ç߉•œóôL;ZºgYŽ>‚óàO߯ÑcÑÂ=˸8ƒ4>LØÐ1±g­ %i6Ug¬Û³¬ÐVfŽPá=v}4¦ôž°Mª•ÝXŽNÎÍû&1Ë,6{§{l•R¹/~êÈ6þ…4ÎÖkðbv“éb=tôDšžÈ®WJ|œ îU¦–EºžŠ+ÿà ­EÞÕ’O–€*ŸS‹@°k–ÙºôüÝ—ªÅm·4›3Ïf-à̉£¯5‘_«š"Ú¢¾¥±ÑRhê9~5¦Î{¢“G †<©Ã§{¨HׯÈùOÖ„nw%mvý¬YÚk`Q ñË¿TñË”Mþâ«Aþî,©(`̲™ãB÷Æšã†Òü»ŠrE‡‹»ºhår ¦šªWï½vÕëå=ré¸PDeª"ëÖwŽöÖwh- ÄÚÀ)õØ®Ð}öܪV«ü¬¯1‰^Œ!*`#æõ²„E] #¯†„\®íü£¥h,ÈßµÛ¤H¥÷Ú'tDÅÍç2¯½^¤ÙYùú…ûpݽø¥MÑÑÄDç­Doå¡Éóî³µ¸å —©ŽÃfÃËA–,w‘ctA-ºÏ^Pêº#µ’q½*O(pŸ½Ò•ÍRNÐnÒÊxÔ9’s_R1¿Ñ^0}š¿øÁN·Qµ¹ÌØØÐŽûl.(ñi*k©uzè¶ûbçµl=ôå+°ZOLc˜¢óx_L_þ”R¥èFS(/ ù9·PŠôÒ}v‹Ò¡T~¦´…½d~¦“ÌöYøm{û<4G ¯ì29W¾ÁlMß¶—eŽ6oÙ“yÔ–??ÞõJïµWÉö²ð‘Äö²òÛqí¥íe›l/×;I{ée{éìLl-§è’|ìÛfI"w‚±×l¬z&’Ê/­Àö¥•ˆ±ÉÌöh1™®ü®hË(•ÅÄÙó_píÁÞ'æ5ûö¬}ÑZQkíePx¿½ Ö¨‹&¦îEó–³tÏý¶á4®rAúM²ïZçeµFß°ðÿQwõ±qÇýŽ;çàœ° c0¦ÒÐ2íœm¶8’â‘®¾ˆ‚-¶eãSÀ”RÃÃU ý¡$ä´jË¢Wƒ)˜V‘(“–N%1Ž]#Õ¡>}‚(€…UM³;3ûÞÛ}Ç£DË®ùãç½y3³³³³;³»»Ç¾]Zwknì• „|I˜T¡X‡­OÍbíˆä^ħsXó&ÈÈO™íÀÉ8’–›ÉñÕ2iÈ …7Ûp¶ÞH2ìíO2G ø“üÙ>Ìç\\ ݽ¿w0lÊ2sÄÍiЋ^NÃæ3üa!þ«Ž>ÿ°¯’1%¨;úôͨC#Þü7µñ„…¢§þ£6Û|šÒœVÕˆ]$¡;k#¦{\åðrßê¸Éÿ¨Ý¿°?ª%à‹ õ(ëƒi{¬ór/óãÒüQb~UR»f2ë |=J»Ôܯ :Ó %!û ¡Ygþ ©¿ ¢½¢—¶è_…Ï<Ž}»bàun•¯Ñë`•¶‹³ºñÏÒ¾ãon¸÷­‹ú›¬¯Ú¾uÛf¹EúIý ý ½Î6hõåò'W5ʟ̲»Éí“ø=öêóÐk·a"åyߘ8kAÄ=®—ƒÄÓFöeÜŸÊï×êo(zc@­¤™3Žc©gdHAÃRHûkG¶Cj€Q5r;PûÈ÷@Ž+’~‘Ï9颕ÌI”(ï‚^ëœþãc7a ð«;ÿ¨Ÿê»\ºûî€Ådº-`$DWÿùòÜÒÅWIõ¯wC„Áb Ì…hf8óŒ;ÛÕ·oþ do¯ÞõW~Ü¡êâ«Ð{¥ð‚ àG ñGkܩ濰 n§gjI—îxÖììè{bg³ÖP_}2­¤ãt\ÑŸll=Q)xÆå¬^Úéë ÀÙ€4Ø¥ ÙMþ~áÃOþóV&í“éÌÜØ`ã}b~ºÇþé£>óÓþVöuÖðL5±¯¿/jJ9M½'‹~ëñ$O6•ëðýt‰¼ŽÜ};õÛ%­ü;åì/+‰@[Δm AºÂ\ÑDÇå>‘k¦pwÏÜæfäÃ|0Ô7¨Ûp v"WÿÙ/=?Où=÷ù¶™ìùß=í¹wÜfÏøþg‹dÏùÚ"{îböüe9ÙfÚó¬D‰¹:N˲ç {¾Íí¹[°çü‚=¿Äíù‚žoqµg™íê‹hšPÐÎþÙâaÏð£„ø#xÁ¢3˜oÚlØórÁ¨Ú&$£ºxs™dÏ鸪¯ml9Qü3FïéËɤ[¹Iç ›¢l®™“&­ä/ý.x-˜ôr“µý{ܤ;ý-ŒngkÙg7* þY7# ¾/+JÞ4Þ}1õbgI §†"€*P1…Û„°¹OFIJÍã–m¾ð1³Í­Ä¢mf! B`_í_™8Cc¬Þõ÷” µb¬P=¯®yŠ!h;1ÁF``¢ºÆN©!`2r ‡ñ#)4åÞƒ¦ÕXΗÿ­ÿÅÃ!¸°MìõP߇GO€S\³±ÏËÜž÷Åe®\z‹ M+oýñ¥“w”·ë¸‹¼ß¼÷ òÞ[PÞ,Ê Kù§Œ€rïq9éOV€b§áé%ˆÓ›pe]Q}Wˇ´SŠéfΔ”^âAehœ?fj¾n%ꡞ/õùù_âÃ\ ý ×îÔeMíÜ;îBã1çóó<÷íXŸ1uh|rhÒ)oøÄbäÝrbÉäýÆÿòfEy'My{Nx,dI1‡V"ËÛ7:ô µn[èg›Ü±qs«>)EüO8IhìV5j'„ýC^/£¬Ö§m˜Ý±‘/jÌ hÆÒ—¬Ç/Ù4ÕA³x½·ä9™¿gçÑ:5 Úƒʆco?Ó˜0Ê4&EI‚H©€ÉÁ7BM°‘…Z"¸©U¯x<’tÐù²‚®oþ$k)çk„M鬰)½ÍÚDÊ¡=ED{ fíE#¸×Á²å¥Z}VP$DÆš®ÆøÎëš93žn2~J?0³oý²^ñÉ ªºË‘DQX¥•³Ä˜xVÊÂ!Oõøè,ŸuyiËÐ%”'&ʳ)ë°“P¬Éx51"™I„›Éž¬l&©háõôô`TßnuëvÜsƒÆìÛêÕFØ??ä©´ |œNPAç`)ž~À ¿&¡MÚ%Žñz—hc“–zS•2"àB´KYaÑ A¦œ)*ƒUUX¢2›5JT¤÷)³Òû”EæQ©0šÞ¢vdO¶oÛ%<¾“R bdSû„÷,C͆¡˜•±¡¦ê‹šz΃la!Ü–X ªG¡ UÚÊÝÌ«4!Guš›å­\j¢w 57KY‚ÔU«ê4‚û<KE›8~µã˸-ûu8Æ+  4ÿÓf-"ÈÄãÆ!^yÖ_‚Ư¤Ã†–.ÐS©úèýÚÍÆûÎ^òW,Jþ‘%”ÿš§ü›ü5…äÏ'¿ñ~­BeZýIªèq7a¼î)é±D­?9Ì3aæq-^Úï7ö“¯É·U Àù(¨¹t&£ü<ôe«Ö&ˆË_6ê±u 1F?5^(v‘O{`ùFR¾KÞòeP¾ Ë—qÈ6í·B²ß½6û­ð²ápc8ìnÃ0e¢¢’R§,ùa^aÎÙÌôæÜŒ»ÁÜ”AafÊŒûø²ò îúl«ôáœ0¬Œ;lì‡zéçð¢õS`Œ/~Î{ê'cÓÏùBúÉ­ŸŠf#ZÙ9fÆsë!fˆÇ^ñ8Bþ$G¨dªØŸõ 7C_,H½ öÜÜì8À™‚Ô‰ŠÕ1˜Ë-U¬3Ót¶Ó”µ©ÏÆ€£Ä¹¼—6X˜…\ÖbÀƒÚTÆ~b!õ<¼eMÒå¤é„á) uTà&|#ÁÍÚ}y$bƒЗrjqúyôúš,V_w}eP_‘Sžú 5; ž#8¿žzTñ•MaÒç×lÑñEí©%Š/\äoX”ü_ØåŸ(:¾è($‘ñÅ»°ŽÑzN ç}Üß§)gž¶àRìË'|·I~m ý§l“ªbxIÃ?* [Ü ì²Jüï[4ÿ# òØ› Þ)ŠÿÌüãyûS…Öþâ×ññXo>µðzÃâ'»TüŒz­òEðÄðŽ¯“ƒT¦N ç‘…æâRÓžš¦-9¹§1 •¡Ï±ùÜÝwS¿>7–ÔêNKYRk¢RO§kaeÆN;BF{~ÀÔwýé%ÒwÆKß§Óÿ½ùYÄúwØ‹Ÿ}EðÛC¡4‚êÛÚ¡ÓTo‚GŒwø´´8¯¦ ;wS„(æ?d÷µ¿Þñ…d؃-Ú¨ÜHŠöíšç—ëte ”ê9~˜7°avǺy:ì€õž‰@‚6éõ;·¶ë¯ôǶ¼ ‡­ô¯Ây³TµœÿbAÀÇüxÛlkRÖpmpÒ%Ÿ¶KȧLZù´p‹xð@¥‹äG'é>³0T4‰K78×hqž¬§KzüFJÕ< Æ#|é–<¹Éoé¡Ó°8cýµ-Ú”0í*à‡…Õ9üçÄ_è{#â?T ¿°X’û‡î/˜ã}•F"7ب]›ô¸ OM}ÒX÷Ð Î;½zs“ÒB/l-ô÷í`>ÈÜà 6² ÌwJ4è–(ÎÂÒ™'ã‚°IÇ ä­8€éC$K7Ü{ ûsDÈf|H_ÆiØ’ú2ÕˆŸ§Æí+ #xŸsûMÏ1{iäŒ=A-«ܤšdç¨q-â×üóÔ8Žà.N6sùÁŽr˜h7]¦hµ®†Z¶c˸©U»ìº£‘:a݇H›0Ç #•gß1sB?žGd}¹5óÍ R!´ñ]ÁHÂtvØLEpÄüâÁY ÂW„¹6†mÆ„À® ‘U°ÁÕ0NÍÛ©P­É¾‘Q9ÒíB0g4ÌKR3AÀˆ´ aÐ.Dà‹ßÐaÚ>l¶‹xX‰ã‘)Ô0"“)í0‚ B@3‰H}™5Š/!²IèÁDjåô]Å%Ä%!DúUKÀ D4aÖ©Ad½I 5Gp Ò6DºHœ8Ù"LWýˆ´¤àI¢qzOEõ[YÇ•&¸ŽÜרÄ\ÉU+å%¦Ô Á16$Ô¦¸Ò÷“áûÚàU!©mn³Àrx÷|%æßb ÿ¬f}ødÛøw{=+ýÁÔSæU»ç¯J7Wᡤ¾1…¿'ð“ԨߟÀ碫?`\éÿ^›NÒI%TÓÉ`:J'Ã'üŸØ&ïŸÐûßÇZz”®€ ‘Øïoßö^À'¶·ßW„Uµ­G÷]ƒm©*ÈÁ¿Ýñ9ÌÌÆƒ}—ýÖцíÛÆ°5\Çþø¦£é;Ôô1£éS¼é±›%޶#žmKm'¨­êlè»\*·¢¶AgÛåºÓÔö gÛ޶sÔv¹³­âh{ŸÚ.s¶]éh¸ŽmËmËmƒ×½x(w´ _÷Ò™êÐYŒÚ®r¶]å »þº»Ý»¹Zj›8,ì[á‡aQgdù}¦ÁÝw<=Tƒa V{]¼¬­/;¿/ýb6ÚfûÖú+ÖÃYëäÍÖ2­µ¾y2€Oá᥅ûl VOé/c²üŠ{õ{ÛÒ/áÚË£šö›iwí?´ÑþÓ`é#\}B¿Ð7]²½zj[º‘ˆ÷\—»¡ ñ~ t?6]bRˆÔ÷/Šú! þn©“z©I]©Ú §0õ  ¾É…zÀ¤^%RŸº.ÏÂÔ§úÝ'õå&õ:‘úìuy@ÿNAêŒú~ê+8õç! é‡oȰ0ý(Яq¡¯ôÁg‹ô+nÈŽ£0ý* Ÿó;é¯4é—ÈôknÈΦ0ýz ßãB¿Ì¤é'¥Ÿ6 v¡_nÒWdúí7dÛ,L¿ èúœôU“~•L¿ç†ì%§°V¦¿Bëg­om¶_e¯“‰ï¿!{œß‰ÛSGÚ k=4Èܧb$šÄýÀKÊ~Ž}öØôêï^™ÿûl¹éèš)ÖG̾Pû®Qb5.ÄÅÄ;£ŠïŒÜ(6ÞÁp~ÍÓ %]–~#~SXEt,)5Ò_d1Qúkú·é? èMJºQ1Ãx&øjw¥m^rNÎ[CÏ(.ñL5-³Í‹Š[<³Þ³­3ž©ólp´møÈ5–`m—9ÚnúÈ5>PÜbŸ-6>g¶]á2÷+ŽyÜøË1ŸkyÍçý6ÕžÏ÷±Ö7¿gsŸ ÌçŠ8Ÿ+8ºm´ ÏçÃ@û+v׬8çs">jSÖs"?k÷kŠË|NÔ§EýPïv¡î˜Ï‰z~QÔç€ú.Ô­ù<(R÷åeó,L]a­oŽØ=2£¾Ì¤©ó²A¿^ЇYë[oÙI;B"ÍËjù½‚Þ¸2¿8o¬ 7^Ñwå;äŠÁÃXrwŦ?Ó&¯ÊõÖ©otÆòð`a^Îúµäb—ÌC‹ëÇÝwå·ý{W#G‘ÝËw gs›ð!tGÐè†b{ 1ËÇ1;Ó»;çÙîqwïÎîɹa¼ÓëmÜÛ3éî±½È s'¬å"„P„"„°"Dò%(º» e#'ù"ç‚B(rÐÞÙI6`À!>6¿WÕ_ÓÓ3Þ5(ÊÛð«®z¯êUÕ«Wßíã_(ÿ÷:î.g~þyùs(äŽÞO⿺s<ú=uúÑ_ÄÚ~’×ï…õ»ù«ççXÿ7»LQMº×çêùF(ïÆÖÙåZš]~gÊÚ±zvtÍìÍ/aµÞý ­ZñòGõ»Šê·¸þ™ŸÐ¿¾{Ž»q÷q’•§¿,ܼòÎKÞ_»ªçáÛ×Ñûà¹U³ëž"öå‡Ö¡©ˆƒSþÆ87~ô W÷Ξ9˜a‡)ttÎüã(üÔ GXÏ%á_mÞ,"¾ð9ÿȯzˆ{WY^¡…>¿8+:ýYéÌìšÙËK;æßAöããÇgyböÎÍß‚üPÇÅõOP½ï¡z/6/]\¿Á)RÊ'y7®¿–÷еÇX=ÿËÅÅÅOßþæÜ§o‡††HCG¨ŸH§~ ÿŸ<Ä_î·ç 1ËÐ_[ÆÝ§¹ûwÊÝ7àö¾yô$„öÎZ÷6‚GßEàõKÞ‡{î_|§à;1ÆzŽžáŒ¸g8ã,|=Ä8Ï ‰ßæŒÕðõ”ÁX{)1zà¾ÁWcŒë9#÷gÜÃG7rÆ&¸ÏsÆVøÞ×Á¸›3îƒû4gä)­F‘3Jpå ¾'T0vrÆýpœQ#ß0,ÎhÀÝÉ¥(q€3[äŒG)ŒÇ9ã ¸÷qÆSÄÁx†3žƒ»•3ž'Æ0/qÆ1¸8ãø2Äx•3æà^ǯÁ·Pã-Òý rNò¦yîqn?å£0Ëüìa-s—ÇìÄ翺&â3ŸÏVž•gåYyVž•gåYyVž•çÿÛ³ú·Œ=ÏØ¿ÿüxxxx°1à{ÀÝÀ-À7€+€³ÿÃØ)àWÀkÀËÀÓÀ£@¸¶ß®Ö 8ûcï¿^^žþp€]@Ø|ø]àì3vø[àà/€PFû€[€k¯Ÿœcì7À{À[À«À‹ÀÓÀ#€Œ}À À•Î~ÊØ<ð0vß¶€ëµÀgŸ0öþ'B·¿Âû ààp)p%pð-`#p/P¾<üxÒOÿüÇŒûXøOâýp%Š|Pþ:Þ@q¼3(ð ðsàÀ;ÀùOØpxxøsàa ”€{ ÀµÀgqxx xxxh;ψz?ÙsÀ‡ÀÖÿx xø¸öC´`/o7|„ü€‡w€ÛÎBÇÀcÀ à:èî^`'P[ˆúƒ¢˜f_Î1ªžQ¨çêÓ Ëð̺]ª;ë@fŠå~Û: ô彿çÛžS·X2lɲlái6‘¦oÀ´k¦e¸eÊW„×#RY„ecL “¿àNÕ«;¼ì‘ÌœLg¢ 2½í½Uˬe,c¯ae&ëNf P”¤±JAPHÖ“9ï¦õµ›2¦›±ë^Æm6¨²Qc’ã MÕ²êžiïÎìjNN(Å Á³Êzžcîjz†+í‡N¥O Ýœ6¨¬ñ åç§+Ø(Êt•tÛ?3Tµk–!Êlò‡q© Ãu ^]Í|„ÆäpŠÉÛ £Uá,•¸Ê‹ŒÖ¬…åîD׌‰º]Ë4ªNu:3Ýt½Ì.#Sµ3¦í» 'CJð#gê»0&`±ì˜©øe(;¦gªÂã¹™údÆ›iа{SfBIÅ_3ð­™Ì>¤ñ ;ãÕ‘É$OÃ,‹Ú±‡"Aùxâ!…Ø#¶žQnËR˜°ª+Õ]oGÓhµÈú5¯ê5ÝHïMË*U½)¹:m”û2M»ºË2xÙ…n ̉zÍ€†½¦c·ØÌ——vÄ6ö7 ?£–qEã™öÚÔ5àAò?nB½Ag\a:mrRh©Åš˜‚e 3'Q°/’65VBúõ{ägW­ŒÁ;p ¢jdô·fœ¦m“¯>9™1 Öé Ûe SÈÖ >x·Ö'oõyÓUgÙ„aPVßk8VµÑ@Qª$$ ªõ&z—ö!¹n“âõ)Ø¿õTè›:w5s$&Ñïo465œú^³†a)>.‰Þ¼:™Á8”©ºaOe¢æy?«;3¹©ª½[ Ä Œß›Ju®,ô3êÇœ‡q,;1a4<ÞQbÞㄇñµ ÿz+(…U·wwŽŸIZóX_»-øýer¿2õ¡™ƒXúqµVsÜÿ“²•µ¬´×°=Ͱ8á¬;cOa¨ë€Ùª›Y¢\1 º˜=ìÝ·‰ °rÕôbd>ÎÂ&FëVsÚ®7m›FëŒf¼)Ø"ìÓÅàHý§ŒÉ·¾Ïë ÆxÒLƒ§ Š,jJµö8ÄelôÙ®ñƒ2Qï¨;ÉúólkŒáÆÅW‰ô·Ôú¤çÅüõÔPÕ©M{Ï2ò¦FÂ#ûø¬x!MIûM—K‰Œ§×i7,Mʨ}¼’ÕuµÐ?¢KÚFJæc‰º\¸m–c<¼‹_ ¥—ÚK±™0N0s,£°Ê«¯-}šLšÑÚfĶ9´MŽ„Io¦ÁÇçåõ¿Ö´°É‹”ÓKÉm; ùò‘(oº¼nËЛÉÚÓóu>Ve!]¬¸–e;d0N+Í ®XVœútI’sêxI/(r%'©za ËêR¥XÐôÔEŒßd^³ÁË+cNb_†\.0ƒÅîô²ä eµ¡¥e•ƒ}ß—#?Qh²¹ÎÕû©cÐ^)-šh•âb5gØ5eàçÛ… ¥­ßH={#­‹2µ}9Ãñи|§Ónâæ¶údÝå*ªêNe,Œš_PNzü/^>i@k‰Ø_Tú…¾ýu5AfC»vn&-¦ç–²ääëSÓñÅ-!e0ä¢ ^Õ´År™FÞZf%1'M^üZÕ«v·Ð̾˜‘ ƒÁvÑÝÈ/”(%Ÿ‹ëMÒpÇD_Ž|X™O‹ýtlpžÊïìÙöØK;3#.†lÅöÇfq–±œ9£¯£”Îòýzr>ÖÒ´šÉî†]]|Aürt•¶´mù&>–·œ·Lgz¤Ü ¾¨UÜßÎ/³¸ßRhå;iÚF¾îŠƒm– §Ä)‹½f;bÒ®0Ðo<ç•[xeÿŒ›Ÿy²ÈÇâtqš#×ý!vÆëÆUL«/<OáwãYaÞtÊžš5ëÆEZ«éNQå„Ù£'´Sü=`¿iWZǰÖÏǶaÏ€cZ£Šæ`í”´xâŒ(*â:æ^Cdb±$­ÑZOý;ÑyÛ·ðü Vš¨шT¬ï†¾,ž«ÄEK‰Î ·iy,F£Šž‰Gçáþ=Œ‰€CO+—9P+d’žâþV^™ÅýÁ”&X‚â÷ ÍðrMÇÁ ›BâKvM™¥§1.¸o¡±O¯‹Ñ¯•¦HÃ”Ö ©Qã±ð~¦…˜·œ·Ìõ=«» ‹Å΢|‚h—èöò‡Ì¾ÊnëÔÝÉ©àz}µ¯RovœJ:OžE’ì¾Ä$ÊÔß4-ºÁ˜ÎçúYK@Ȗ܉jà Ú@Óžð;p‘Û*‘h;mwRA(¨DÒ’ü¾ðô±Ãì>ß$(aÃUw óà!Ñ3ˆÒaõ9í÷Ó¨a\ê‡õ¦çFñBJT—(R’€ò”šÎn®%¾þÂä~½ZC¼­(F³áÇû•‰>Ý©Úî´8’Åê°6Bbîo_‹ˆõM§5×…Ö‚KY·v[ow:I;ïI9Oâþ®gj]Îò’ç’ÎbÓΉÃspêX•¦÷D»µ´kÜ’ö’´±4ÛŒÛtÜö“ý$Ù·’}1­ÿ&Ïþ“c½‚Û†àÎ y¿‘sR/bXëNrðJŽpÉ»Øøx˜?“÷TiãpÚ8ž2 °”邵Î*©óOrþêx¯–>'¶Î«ñù7~gŸ¯;ÌùÉ%BÛÝg|e¿1ß§Çïí»ÝwCV'Vð]>µ~“ÐéÛ…nß?Ä¿•Hù¾"¼«N~w1Ø-]9%¿ŒVw­áNëÄ´ufr}š¶¦mÿZ%F+w_7_h½Þi­ß3$¿Ï‰®Ñމ­c|Ÿ˜¶G,³ö=_ÚþnI{»rëÞ¬}OÖþ Òöfþ>,ÚcÅ÷TûL»w‹ø¼„È…œ’—˜áß}ÒWA•AI–ÔB®¢JÙ|’VV t¢ËiÙb±’Íå$Mcy4[,ä+CY9#üÜ7!Š%Ä„aiLÊ€ÂåjCYUªä¥¢ÄãÄh\L,ˆa9pt©"KåП-–³ã­)J’Œ š^ƒ°ÏÕÕ™ñÅø¢nÁ½_%«æ† £R=_P¥œ®¨ã¬=MN.©Ð‹”oç òyIn§ËŠ:œ-¶Ó•bAnÏŸt¡ÈÅñ$]×t>È'è –5+ï@1;(TXчTedp(F÷Žx|Y©ô  ÕHY]EË+Ã=DtMÚ1"Éz![¬h¹¬Ü"K4q…N[‹Š&µðú³¹í#%$Î"uN‹óJŠV‹³Xt_++òø°2¢Åh…<€Ÿå9F.Iª¦È‚Ñ©Xƒ‰¸9EÖ¥1½¢«(—°“'A96Ráí¡å´Jï–þ‚^é/Ⱦ¾‰–W´BaEÛ²ùŽDœRa %ލikœ²R)y•²‘·ËJ™t+Âh#UQt2ѦJÃÊh¶¿(ùáš6â‰~$¹¼ª ¼ìp¾ mÚF/Åó‹h"RΡƒÆÃ¥B 9  §å”Ò8 J™XH‡î³ãÈ@/Q¬~Ô"â©R©˜ÍµôÕ×jÆ"ß~i° û~IŽìͦÂ"¸>•ÊH)χ nIÚÙç!$£i+zaXâ뿲2RÌ÷•Üv±”%=Ošà~E§øÜ_uR½ï/©Ê a$=à#FÉ?)ê>])g¤TòÃÚЈÈÌkƒZáû’ŸÇ(;ÈO…Èö+ªÍá C £¥rdïðW J£až+“ÂUnù•@t–÷ÇÝ|4Þ¯Ð% ÞBq‚æëKøý.MþŠÆßƒhž’ ¹Ê5dê’Ôj[˜<(q¹ù<éŒßçäpžÊÖöfK…Þ-·Õèä·å®ßŸûZÃK½k§È]÷vXôDirÑEÏPÕ*Ò ê¿÷à{ˆ{×=†cVTï í Ë,å[Œrêþ/¶fhgµî+Ë-ûìwL­ôÃp¶sýVrºÆßyMåoIo>‘л¨åù{L ÂOã½ðëc˜ÀtŒy¹~µ²yó&ñ¾s˦MLÐz7 Zï¶­!íŸv;<m³H"èxGHß²5¢oÞ|;Eþ­Ûbô-Û6ô;ïˆè[ü xœ­BP^Wùp¢*EÅØ£I2'µÐhý„¥Ívê8ª®µ¥Ó‚ôqZ§ôº28Hq¥QI.eiÖÂØ™U·~Y |Xåóa@+¡Sú!E–4])abcä¿Ý𾬗•0˜+ªyýðVu>ë<ŒwâF¼ù¼«‡v‚4¡¿4¢bHã#QVa},W”¸½ü ìûüFWhʧ´€­ÏΉ/—Âx±94‡(<Mƒ-|ŒÚ¶©”"ž&©¼ÃéΗQU,˜ÿ¹{ø7iâkñÔoúü³ ú¦6ú6–nàèÃH0ãß•F_È6(ç3ê¯ÍšêŸ›ìÃþÚpöÒgµl¬nÍizON’§Æ ¶®¬TE÷žA»yõF¿É)>?"¢øÁY?jñR]¥½‡ymflRìÙ¤/xRizûsž;`Õ÷‘λNÎ{N°‡›]3l×ô̽<-Ì,ÓnŠM…ñÓÑ»`ñô±‚MÊM>NªžÊÌî C¶?×Læ›ÓÓ3[ØDÕ¾ÉËÔø™!õV£tX‡d]ºÕ©[»Ö¹Ký—¢n:Jê*MgiúKÓc7vÐqðîÃJÓ³zgûö#t°ñ yü‰]s3Þ¨$y(_´ÁPݪ »NèW-·æ&IGq¿&ÎG'aÔ<®¾Ÿº ÒDý§ÅV‚¢Æí%žo§2t*O·²¥•3­Ìɲ§Ô!î§¿ÂòàaÖ3{˜‰ÒÁsÙÖóµ#Qx;üŠbÿl»bUϱyÖC…åä‘vþõ§#ÿècoý„±…íÉ{î¯;ó›ˆöhÏ Þ¹í3Ð^í¥íÁOÛ Zé×-ó[8ÇÒ˺òï)Wþ=åÊ¿§yý/{WU‘µ_§""D@†UA6ß¾ÔÛÒ$!Ä$“BÀ4!i ’& a›°(ÈfFƒ‚l‘EYe#¨," ‚€?*"" ‹(ÂÄP6ñ¿õú%ï¥;ðŸ93çÌÎÏ;§Ïé¯Þ­[·êÖ­[¯Þ—ô+°ÚÆŒËÊsúQTPèIQh<¼Z]ž’5®ºÐe®ÂánH>OªŸŸÛ<$©$Å Õ”\ÿWW~Žß±îº×6iYy°x7u$•à.·ËëÅokZVã¾Ș+ÕÐ{=¢ÛPXè†çƒÂÿ.ÆÅÙn¼‡ñGãÓâP§»¦V“mÖêmÒÃ(›µ’áÁ(w´ÇL^ëÍÒDx¦+,ñî5Ë [M9kwãæ¡kcqÎj Rþr¿Õ!`u\>f8&›3ѲÚ?Ħ^|ÌîW›ã‚‘;Η2vh‘qüÞÐÔã?Œoe«1”¡vùL½­­2£ÒƒÁ25žp›VïÔˆ ÙßO9í•B®›ãñï¶Ws‰¯Èc¾|PÃå31Æê¯ñT\X˜ºÊÔ×Ï_¿Y]ó„¨oöùG/ žZÆà¾ejé[P‡ÏÒGÜZ¿ÆøIh9Ó¹«@[ŠÉ²uÇš…Ä-{©1?ÚK¢Fx²áx5÷\>ãQ¸úÍP¹ýŽí•ÑcÕs×û4¼;ÏÓ³ƒD?J,È›gX„% çਈËÏ-òß` â«OÞ0<¹‰7­²XO¾§07¿»„Ý‘\={Œ–{á<£‡Â|X­,œ‚ñRs kžNÌ™í-)QO³þS‰M„H¯÷¿ˆŒèJrõwû·l‘‘I®ôÈ ‚øÄ”Çm¸’â Á¢ÑOcÙòÚº]>KsŸÚò ¼®±0°†u°]g­þn»VñVpðã> 4ÓÕ«¿Ûºu×Öõxàã \1=É‹-\haDq±Pëá:xš椎/€©ï ´¦Oˆ® ¶À?¡l&¼ù¿ÈDƒÌò@+-‰ 3£M3_¬c·€ZQ_«®ÿ%nÝÎñ×[²ÿe`6¦Õ–0æÊ¶`O÷Kˆ©öF- ½b¾?¸|6/´»‚˜€¥1WÀc `¿¨ø˜Ô:Ä Ù·ÿ[ Ââ ÿÿ Û]&|’¸{•Á6¤ÄEׯKƒÚ«{à°Ü¬¹‚ Ÿßà£àؘ Nº\©î@ Ðóz`«ÁZ ¨S lýzŒÕÍ›k®AL- `gmJÅæ ÍÊó¹cò}c =F¤g/˜w=°æà¤S{ Ìw*’Ä-{KÆçæã´í«^?í ç]X&‰)ðô1*´ b¦H5ÖÆj¡ÝÕçÆB†áMñ}Èhã¯#âZlËŒ¯¬s|¶/Ï“{lG [e»#ˆŒçôya(FÁÂUØÞ¡_aeœ…Û®`-ÜðéR GŽ´áÀ›ÿláÁ€Ãlxà¤).Æ÷'[xÖ?ÑÖ?¬ß†×`ù Þ¸´ÄÂ{ï*¶ù ßoásXÿ8 _ǘ±õÿ¿a|m÷[&—ÙÆcÚæOÀCHÛø.kapU‘m|—õ°ùËwµ°ß·É—âöl¸ ð®p Wöú,¼ãB›ÿ‡?iჀ7±ÍlŸ×ÂW±~=öØp[Àá6ÜðÛ|\‘oá$À›;Ûüï¶pÆy¶þb<ÊÂs1iá…€´·ð*À§s-¼°w„m>Ž´áãØþ _Äú†ÛúûkÓO| òY¸àŠ6¶ù˜|ÜÂ,ÆmýìµÉçÞÕÚæo¬ß†gáú­lý\õ'[ÿŸ¶á€ØðIÀe[ÿ‡Ùðm|?ÇÂa_Á}\–maßϲp4`"ÓÂé€7¶ùp¸ O\ÕÜ6—6µÅ7no…+±¾ [üb}6\…åÚúƒíyÄæŸ¯ýëwÿþŸ_öq¨|›Ë ñ'›×ÎsÿÌu郛ô/è­ëZsÖ¯/솱‘YÞ0þu¨æ&îbâ&&MÜÒÄ"`üÛ~­Mmâ6&N0q[§Æ¿°ÔÎÄCLü˜‰óLÜÞÄÅ&7q©‰;˜x–iOÇ»ôóö…Úý«÷ƒ_þnƒiwAÔ­‡#ËýU†,‚uⵯ/þ—ÝþP›ó{Õ2¿Íee°î¼ü×þ¾"wü§m¸Ý¿î_÷¯û׿pA†)ƒdÔŽ|‚TÉRr ¹šÜG$O“(–J£ ¨ÙÔj7õ)uœ:E£nRNºKÐ é7é}ôúúa¦5ó$óãbža&3o1•Ì!æó3ó;ÉÆ²Ï±ìZ¶’ÝÃ~Æ~Ã~ÏÞaâ"8‘Ó¸dî9îen)·†ÛÎãNpðøf|¾'ŸÎgòÏñËø=ü1þ2¿Í7Z „.+Ä Ï Ã„"a‚ðª°BØ,4›‰ÝÄ^âÓâ3âLq·xU¼#Ö“šK$EŠ’I^éEi¡´ZZ/퓜èAÔ1( EEh2šƒ^AKÐtC—QC¹­ÜIfdMŽ–Êä©r¹¼]þDþY®§<®Ê(e–òe•rFùI©Rj¨ÚD}BEjœš¤P'«KÔ•ê:õ z\=¥Ö×­·ö¬6R{E[¦­Ö*µýÚOÚ-­¥ÞAï©kz´>X/Ñÿ¬¿¦¿®oÕ÷èŸèUú:al Ö€?:ˆìG’ÉÙdù ¹‚\K~KþD6¢:QˆJ§²(/5ŽšDÍ¢^¤¶RïQ'©^t=”~‘ÞLHï§ÏÐ?Ò7i‚éÇ e&0Ë™w™ÃÌqÃ+²Í٬¦±#Ùbv&;Ÿ]À®aßg?ß\f¯²·ØÆÜc\gNÅp©\7„Ísó¸µ\%·“ÛÇ}Ãýƒ»Í5ã;òOò$ŸÂæGóEüD~&?™_ʯçðãë „vBšP*Ìæ Û„3ÂEáºÐRŒ)Qu1E,Ž}âq¶¸A|GÜ+~*^¯‹ˆõ%AÒ¤R¡ô¼´BÚ(í’>“ŽJ?H У¨êŒz ”²‘• èstÝF䮲hx®@ž+’¿”OÊm”.ФèŠW™¬ÌQ^R)ï)ç”KʯJKµ½*¨ª:D©zÕõêWêeðXWÑ\Z¬–¨½¦­ÐÖj74‡ÞVŸ¬ÏÐçè«ôô}úWúIý¯úeýªŽ›ûø©Ù‘ìFʤ‹Œ%“ÉA¯“ï“_’?’×ÈÎTOŠ£2¨)ÔLˆ¡ÕÔzª’:@%Ñcè¹ôZú"݈y”yœa‰éͤAÔìdöþÁ<óÉ&²)¬-aW±ÛÙÝì öïìŸ8Έ›tn7ž›Ì•sïpG¹ãÜ߸úüÃ|sžçU>šÄ{øQ|)?›/ã+øMü'üþkþ**4ZÝFHÜC£…iÂ\á%a©°FØ+5<ô7¡‰ØBì!FñT$N§‰‹Ä7Äâ6ñsñ¸x |tCŒDI—zKƒ¥liª4O*—Kk¥¥ÃÒ—ÒY麊"‚¢ÐÓȃòÐlôÚ~ú]B×Ð-Ô@n#? žJ—Ýò0y’<]^&¿+ï–÷Ë_ÈßA¬µTÚ+O(Š¥d*%Êtå¥\Y®ìUŽ+ß+Œ¸{\u©ñê3ê`u¸:ÃŒ»]ê~õ´zG Õk­µpÔ’µ­Ú­ÞU§tQ¨çé…ú4}‰¾R_§«ÿ¤ÿ¢_×ñÏ o?¶";>@AÌM#·{ÉÏÈïÉdª1õ(5ˆAQ©iÔbj-µ™z—úVÄóT :™H¡'ÓÓéWéUôzz+½‹>OߢC™&L f*3)g3›˜O˜¯™SÌy¦+²Ñl<›ÌŽï–B ¾É¾Å¾ÃþÈvâºs —hD\7‘[̽Å9øGø®àW7?|ú<¿–ßñu˜ÿŠÿ…wÀªØCè¾ô ã„EÂz¡RØ)ìO^® ·„Ž"'gˆóÅrq¹¸C<*~'ž/‰M¥NR¬T$M‘fÀê¸LÚ ~; ž{µD]ÀsihZŽÞ@ÑiôªB¡rc¹ƒÜCfeYγäñòVðÖ!ùŒü‹ü;xì!E„8¤Œ…H›¡l‚8Û©|¥œT®)·•†j µ­Ú]•Õu„:V¢ÎWËÕ õSõŒz]í¡EC¼ejùZ‘6]›£}ªÑ®k=`}LÔ3õ|½HŸÑ·G?£ßÖ‰$ÿÚø(Ù•TÈðÕ³d69bn¹›< ×j ë£@©Tõ 5r×jê}ê6Õî@w¥e:ž~<5‚^GLŸ¤Û2]!g=Í bF1c˜RfxçÓ˜í ±—ÆNeg³KÙuyûÙC°&v‚ÈÀy¹ç¹-¯A¾ú…ûûëÊ» _ÍãWñùùÏ!cå/ñ]—.ÌV ……Ï…cÂYá’ÐNdÅ~bŽ8V½¹âKâBˆ¬JðÉU±‰!Q’¤d)]&KK c}$—ÎKW¤;R=™KF)h‹¦ ù¨U@TB7PcÈZ=åH¹·œ"çÊ^yœ¼D^/$—ÏËWä;àŸ0¥»"+)ÊðÐe>ÄS…²K9¬\Tî(aj+µ›JÁz«ö‡ˆ©>§ÎS_UßT/¨aZ{MÔújZ±6[+ƒ\ö†¶MÛ®íÖk—´ß´zo=]φ<6G_¬ŸÐÖÃ9lˆOÑŒlO>Eæ““È™äJr¹“¼C†SOQ}¨Lj5ÖÄÅÔëÔj¬Š‡©ï¨Ôô£t*= VÈyô"cü•v0í`w!1ÅLÄÐæ ós™¹É„³O±}Ø,v8;š{ŒMìö ûä°›l8÷ׇËâ†CMà–p빸+ÜUî&×ÖÉöO½ùd~(ÿ:ÿ6øìÿ•ç„(¡¯P(Llu|åÛˆÄÎbŒ˜ fˆÃÄ<ÈS‹Ä-¥N‹·Å¤¦RK©‹ÄKª/åKã¤R©Lr€—º e¢áh<ì/^@ï ƒè,j Ù‰/¢'W#¿#”ÏÊ-•® £D+©J†’«ŒQ¶+GÁ#íT2S_5SÍQ}êDu»zT½¨¶ÓXMOdj9šO›¨mÔöjßkW!C5„ÕQï¢óz}4äªåú6}·þ©‘©.ê¿bxýqJv‡L•BŽ‚˜O.€½Þ:ðÊ‘Ã~ï¬tȪìúâ`­Ë1vÓ¨2j9øçê*õ Ý†Ž yZ¡{ÑI´›~Ž^B¿ ºI;™æLÄ’ÑôðÞÿ]a~c°³­XĺØTðÓHv,;‘]Ána³ `‡¸Ã3û¹¦<Å'ð%ü¾œƒßÀoåwÁúöwXÝZ =…H!Nùj䪕ÂáˆðWðÎuáŽð0ì%h±¿˜)Ž‹Å/ÄE‡ÔSŠ”â¤’[%Í…¬ô¶tÖ¶SCW%µEÝ +¥£‘°w(EÏ£h%Z‡*ѷ躂î dXÛJäùr…¼V~OÞ){¿[r3ØG ÈFIJšâQ|ÊØ®W¶ý{WU™ïÏ #̰!`Ž:µdçu˜wHÉÌk6b¦¢ޤ”,̤¶¾ (3'Z5K«›‹IæÇ­.• ¦m€’f…f®Y­¶Q *†/¢4÷ûœ|IÛÛÝÏݽÿÌóÑ9çɯâ×ÝÀ/?à÷ñ_ã~ÃŒb„$ØÀ²„Ñ£)æ …¥‚(¬DN°Aø/p›apPøBð ð]J§Ò Ô ÕýVÇé º»uÿ¡{P7CW¬+Õ-ÑU‚ë<«{Üs›î=XϧºvÝ1ä òŒ¸ŒÄŒ[ÁzLˆÈ¹°¤¢ŒÇ2g¸Á{ÖflFþð^ÆNDçÃà>2}ØO2ò FŸ¥ Ûš¢Ÿ­T¿P¿T/êWêk¯ßDÄ&\õ3ýý)ý`«JÆÁ†[ é“a$¢ Üu†a–¡Øà4<~äÆ>kø£¡}‹ámðÙ݆$«üÚpÌp|é'CŒ1Þx³q˜ñ6#kÌ0Z÷€ãæ§g"ÞÿÎø8bÉ2d+«Œ/ ê¿b¬7n3úYö#þ·Ï˜âL7›†›î4 ¦»L÷˜òMSME¦ÇL‹Á®V™Öš6›êaÏ;ML‡M¦ïM2s”9ÁœlN33æ,óhóàZ¶ËÍËÍkÌ/š_5¿ ûn1·Çÿލô£¹×|òÁ–¡–;,œe¤e ð|²Ån)¶,¦×Xž¶üÑò²å K£¥Ù²[ÊŽÁ.ZäàcñÖáÖT«`5Iìz²uº„÷.ë2ë*ëZku³õmë{Ö¬û¬_Z¿¶~oýÁª@\K@dKE¶dÌÌÊ, ¹Ò»™Í<’ù-88üeEÕ!®%€¬¡ÿLûµG†”Èèÿ…È]WaÞaZ?s†‰g‡°Y`Åì|䮨öc¶“íeÈ^‡r©œ Ùë4ع“[ýƽÍíäöqg¹þ|?Œ®F,Ú‹®çwñûù¿ñÇÀ ´-˜4ÅB…ð”ð¼°QØ+üHÓ>ž®© µëžÔ½¤{v¹Kwö ÎvkƸŒ‡`‡Od,Ëx5£ üà0øÁ ú!°¼ ½Ùì8ý4ý2}þu}«þcýAp„~†Û ³ U@™zÃv°µïÀ²o4òÆLã ã\ã“Æ5Àš°‰cÆSÆnØákÓݦٰéÓzS tÿ­é4Á0ðµlij©f—ùYóKæ×=3Ÿ5S¥%Éb¶Lúˆ¶ÆòšåmËNpµ6ËaËqKœ5 Z4CƒÏ[׃|b= } „žô™s2—Y fýFæ¶Ìv°ë® öÔR/åIJz }3˜Kg»ÝOO¡g‰æÓn)¿}‘ÞH¿Jo§Ñ'èéÌ:¦Žy ym#XAÓÅ eï`y¶¼` ëa‚»}Å~íaϳý¸Ð_:ÇrzÎÊeƒÏÙMMEÞ[Ä=Æ9ýº¸åÜÀÁŸçÖquÜ&h÷-äÃáv ßÚ˵q¹ÃÜðòî{d_ÝÜOœœæ•ˆi‰ü`~( ;Oó<ÌÊâï•"Ü$~*¢œ/æK$\[ÊWñäÒ«ùµü: Ü+ük@ºF~;ìáÛøÒ»$v"“ëæ/òr!R ¨…Â`a(2nN¸K¸¨H þÝÆŒ4NoCž_ÜÏý~`J³aªV=1Òâ™5uRÊ.ŽÓ&×(=—Ö$æiãÅî}IüËcX—»%ºêœã.Ü)i•oólj¢D¿énQŽñD:û‹ãùœ$r÷ÎE79â‘ãýîñ,Ò&cŽäE1.yzÁ´)Íx‘¦ÞKŠû„º&[«°ÕŒÓ*r0¹¦&O«ž€ª$[Ñj^™’ÓŠS²0“ÉC§ý=¿¤Ü-IU>GН%ûÂ0åΔ9~%º`AU¾Å‘œÏÝ¢n¶ù.'ä¢o>%™OÙ7Ÿr‚TU´%4Ÿ&4ŸVšÏÛ7ŸSºÄ©¢R›/Mš”ã_óS @䣬:·8Šó„ú)Ä‘ Kô¹A)ŽQEä`óŸüÏþ£ÏÉ„®°åÕcÞ¢Mdr¿Å-C‡xlnk Ú9\´)l D¤Ç/ÈñÞMÖ„].Zè×vóM)[ÉKAp‹W•Ÿéá?§ÿß_£[¾?îÔ?Ô”¤ûãrñÈ?«ÿ÷¯¯ÿ[þ·ú¯ú•úÿâúú¿åÿPÿÏÿOú/ÿuúoýµú/:AQs¨¢®I)E.òÒ…‰ü‹Qdžæ½9¸-¦Ë… ¨–u U,†\Böp7eÕöò…žée©în™ªb/i‘‰­¶Z-.–ZÜ­rÎâÆÓ±Íîn¹ª¢'ªÆÓâ®þèG#Ä­ 6ƤT`jUå 4z×.BØcW5|Rþ]5vSOéB\º£Ánêž_Œ»«Ió·¤9í´]T”Ø-€#·²}Áý"ã=àÚãªNãÈr”®ê‘²Ÿ¯ÈÝ$wûåT‰»ª|tóÄ©–ƒraŠœoÊä>“”N¶’¯nã4(?¨Q]µ?(ò…h2‰Hì:²æ"÷"mªLTy!” ¸4»ÊбX¾ÏwÞ=Ös§'O«9>×Ýqxˆ8|‚ G"ŽM%ó”)UŽ%Þ™w­Þ=®S.ã¥ÅÆj'.çбª†ýª†æòÓdPZ›]Ì›HÙ=qb¤½\ßpŒ‡`‰w³Ü}LîB&c±ûT÷ù˜ªýžXl;Uµ|â¥Í^r?²UØm茼wI\’»Ï¢e¡ý"&ˆ²+Ì µìVÉ ND d Ò¬¹AŒ{×˜Ž†>#xŸhµ¼'^ãŒÚºy=E/ÃÕ@r•½ W³pÕH᪎´MR5îw„Ìe“d.ªÊš_4•ǯ4•GHÓW’™ì±‹Ù÷QA;‘Öo•줲½:QLX ÚÉ5ˆЂ–’*6ÁRÐê‰U-¿øÓu…' ‰ìª²>kþà”*_¾ÓP”z&&Å_¼(R ŠªsNyAsQ*óý;£¨ ¤'‰žÑÁè9ÑÓF\]ºEAèÆùP€m}åM)ŽÛŠÈÁæßøl_I\ßµvpJQnkógfö#Õˆ@͹þRèVÄ8 øÚ'ðb.À¡:[ë§¶Ã}”œïm+zÕ,ÒªÎüi³ ´MkóFW+åY°¡s0ÿgßÉ)‚Çñ9¹þ˜Z —Ü݇FÌWza„ÊJŸó9Î'>©Ub~M„’š^ ~3­9Tƒ½ø\ª¼ ÏÞ”‡ð ‚¦¥×ÜK‰QªF5 cU¦u÷"ˆýI~ËÜQr‚`Aˆ¸¯ÃNšN—K] Ê¢Q”óžf5]N-K.v‘fŠBóhŽ-oº!5P5úvü½D[yO  ¦TËÍè]ÞC>ß[:ËÝ«¨© ŒSUШæö¿Kžƒòã9‘q5ÑÕù¨XÒWqliu¾üç=dA¨K/©–»£bœû¤Üݤ®ÙÝ©è¨'BéÅ÷ÉȬñ 3ÎþRäíx…"5ƒ5$úv<#Õ4RR ‰Àn¢ÕÓ;NFïø6B\&E`ŸC§jX'…ߦ[Hx55—jQC⮩yþ PcZ³¸Žô—l‘×i—ECÆÃÕŽ©è¦üæÊ{ŒU54Ä Æ´k~&¶¤NkÆÐÑRо3ìØ€v°% ”UHïÛ°¼ã=âë½ UÅQœ¼Ý“²•è÷xô M˜šæG«GËMmßnGGºwEÚ9¿YO‘¸µHŠœýŒÁ¸uþ9ú*ìi‘Û‰ð!׈&Üë¹/ˆƒˆr#ÈÕvIS¤ šÊ•KUýûªH/è*}iµ\$ìMK(r7+ÆxÙÝV bѪ*$Pã¬Ê§Z>­÷*RôÏÉ—ú ªôל܉°ìäªNbï{ˆ½fívš.3¼ ªŠ]¨võ¸Ê~ƒø¸(îé/u_ÇyÈN^À‰w¼ÌužVUäcû®óÕòûd!¡.–F—{ äÕSµZoA7ª*ž Õð…rUÅ<2•® ¸ÁC¤þn0™œ`[K¥¦¦¥®m®æ6W¢ìa)¬í®‰_U£ÌQ5äiµsw/‰ ³Fé©QŽ-?ñ9x—;‘,ð¼vÑhi\¯T¥jwS¤é£²¸sv‘µ§•*"N‰ˆ6Œ8’%ð2ÙCJUqPF‚7™Ë}Lõ Ó=9–¸eùù £Ö!&}‘¶é´ªÂK*’jÞ »ãdÿò“T*ˆ‡‡i PëòJK*ÆËÅ$2KH;íIƒ.™îI$+ºEZÑzgœë< h{« D~ªÆÕ³É9Ìuž@:AGHíyA¤ è# ‚zÄËÏI·|=„Azï: €ö¹N»ŒŸ€ž ªa_0ªΤ”8£HÛ= „Âøx\äƒàsÎ1¢wöw”WâÎgi‡Ñ_ä ì¶o ÛšáÒçT•$P`ð\bð þ§óç%žF,MTŽ'Ö옊ÃZ¢)9<±9Ý3D„Bå÷zÔôªNÚUË¿è—yºâ’CôùÆ^‰¿*Z¥w>8ŸtŒÉm Ãájy™ÛI¦(ªwÉ—àe¤lq«ô¬&7%'#ÿuŸˆîCâ$—Àm´X9½BŒ³‹ÿMÞ·À7UeýæqÚ†¶t(¥Hi‹T©Såám -/ Xiy‹£N­ŠŽ“&•ÇI“Ø&‡"Î(â¨(×ñŽßÕÏqf´‰€„²:¡†`bP;„ù– ÷¨ª¾MIM¯z•œÏ7j“ŽºßþG< ò U˜L{,Ð[8ßk@>¡ÚÒRgñû +Vû[5êuR^PÏ“JT7¡¬/öÜŸ;-§ Žù ŽåX{A€­QË`¬?Ôâ`Ìc§âµ ÕñS›ÓCî'› A%G\Âj§#Nò¡`V$é\pϽ֓D5î{’Ø8A—™¬ñ‘7àU~GÍœa3-¥ÍÄ쫈õRA1êwi3¡üU°ûf \3Ío7¦°FÓ̘üC5ƒQ5H^D%Í·+ÀöF£bµ¨÷bZ =³Ð.>â:­•öª>céö€éç¬ñ÷$åšoc¿ˆùí5ËsAÝ‹ù/ö Ô§Uýdü_™M_Òä†d•ö˜—,¾Îé Ywi¹g,}cïr” JÏêŠ*¦6¡/:G–×[i?8ÜPÞA<Æõ¶å*g<«uÓvD`—Y= ˆ¨©÷VÕœ=OÁ·üó¬v/åi5êEߚѷ¿zhl;«gI7ÀüÂi˜v^š “1õ± ÄàØ¼15é´-Hú%—+…³O XàQV86‰DÙØÓ•sjasáe^;«½^‚P›¬îF*Ó•J Ù®i–Þ$$Þ~¼;€´á-Vü«@ÀXÏ,ÿ9T¥Ú··0')Ý[h ¼0Q¥Z?Üؘ ¯ïÝ>!)Ýò¾ô޵Î,ƒŠ6ŸÂÅX éG@zïQÊ„¥÷­§âÞDâøà3W@ëLaûÄt'nkš×ü÷Ä!Ýé¤,íH:–³Hή³ñ À2DÒã’[þB å¯´9hÉÐe¹*ç¼öãœ÷a³e;–«€Mdzs8²ºW&µ¥=‘sžø ¼Ók?^¹39OÁúím¬nd$_éÏMzúYö“¹‘ö“ñ÷F³ŸT~§zaî@ö“¹—´ŸTÚ£ÚO´Ÿÿ0ö“ úÚOÞ<Ú×~2ã¾Â~MŸŸûýê󃎆õù‚­—ÒçKÿ–Ð_ŸÏ½Dñž¸¢Ôuw˜b+ Ï­høH,/[á¾éXÌÎPÀ4Ú²Iø:~$¬´4|NëK^–¾Ä}õxšÖ@’’NVójÊÝÝkTt&bŠ‘ŠGëX©T{ À ÀõB9/@ÅC‡«+¦6ÝÚ¢‡Y0­UïB{îíAy¸¡·<ÜYJôm¾ziò¯ªO!ÿ›()vw`ÉÁt|„y‹‰ êþ̯ÁÂ?+¤q¦ÊtÚ3æ @W±¨3É9_omÕÃüzz |b]¡µPPµªf·ªg˵„ÿ!>v hæ~IÀx©)ÕêWG¯r[cY@å¼IX(~Ö[“P!Θmcõk«ùÑBèQ¡³ñÿšÙV•¶›PØúE²l›†&¼;´„^ÂʶBùR<Û¥.@$¢&¹ú~1¶i¡æ•˜=¶U5JJj-‚fb[ 5³ÑÂÓªmÕZîš#¨MiÀs0sR«š‰w½dK.r$•Ð7FßêÕVFJZ\pt|òüæŽD1‘¬†ï‘yg†Ã¢ÃE›ëd¼Ö…½z¸ñéëg{²y¶ -ǩ̆ ö¾ vIê<ÈÂ… ”' K ™{Aµ«ÈF5xaþfÅÓ®¹Y…jf›ïBçaP>¤J@_ló §:ãlMü`…5.V[= ž>‡‡Ì®†ª¦Ï:u“Fm~ˆf¸K­œákœqRRÖ¦ú"3®~ŽZJ²ºp’½(Ás%˜´”Æv•j WzÜ虈ÊžÆîW){ídÀ Omª/Ö8Y}Bhì«E_3àL,€jWx²²”“¥ åŸD£Û¡ê?ºlåè´áÁQ—ôÛx/Ðè7Õ€URl}.¼*£™ $kàH‚åN•¦7$ÒúÓáÕ´¤ÅiR7l±ºÿõmX¹JKààCâkZÉüiU¤ü}åŽhò÷/‚ü]5ü]uIùû— Qå嶺”¿ü0ò·çª¾ò7¿³¯üÝóÓï(×|¿ò×Ñ–¿o×_Jþvx£Èß7C/Ù. ÈðN鬚§vuvÛ—K~ÓUd_•’[òÛ«uùݦáR·W·–åmJ¾n®ëìÎ?o>™Ÿ„fŽ­”æ¶-•@}}äOP¾ÏýÉ€òýÁ×”ïó³.&ßS;þuùŽòów³Q‚Öëê‹ÕÀ"E(~w â©^°õÅB_‹úÙ(’AN߃,prú?‚JzQþûÕE¨ ñ†"£`¸ymA^‹iæïš§LÉùç«õ†«Í‰ÓWūͱÈZ5Eó­>½ÑMi‡ ?WãÃߤV«[kª,6]³¿Í¥Er—Z0][\§e*®²Ì‰âº˜ÙæØ?4Oiò±‚X^fRg™G:Wj…ñ hÈ6 gá³ðšÚ[2Æa^g±Zôe9WjÌq²])úxþ‘¢Уý©K£1Ý$ú&𗽦/Ì6MÄ^Ie‚36òyMCœ õÖf=Põ7«¥VtóTæ89ÍQYM­OC–˜yM.´¼ZÛZᘧ )Ú~ÊüƒŠÌc$æ,ÒDfíä˜)ÖÒŒ¤Ò¡÷ wƒa>³¿„sÅœegó4Ñð|uψYþ³4UŸÚæl_þ6Î4?ë³xžG%íÌù÷Úò;¶JµÖû áuãCoÍDÇÕXn¯²ØëXìôùæšžÀ;¦<ÈŒªUygvšÑédj¦÷džÿx292Ó{á·æ)©r¿zx¦7Í0Û|•4Â9[ckz0–†Þ‚•Àw‡Ú§µj{¤G P' €ð¬(ÎË`Ð… öÈëBi¡s3)ðZªSçœ#¼¤1Í% ‹x…çÂcÉ84":â¤Ø…ÀyKD_bG¬1Fôݼvè+dö%x p‡ÐãY€àª±ÓÚÜeõau¤ZÿbÚ Uz ë‰LøƒÖV«`ØLl$ÎY¨6d›î2\cºÃeZm˜hºÅpµ©šLC*g¸Ñ<ÖêùÌøùGjê¬,÷PØv@¨Þó‘ZFˆƒhG©;h¤Œ9 l/VSâ!T Ü3«¬|éwÁ·ˆÇõXÏN¬g‹œ¡Kp àY½õs‰¡™£¨ØÁðDÇsw8“ùöDuÿ Åj,ýO¬–ÌZ±8ЭxU Ž;"ÐFELcªèz£ÆX¦çµWãÔ²O q]£–—ƒL(è’5Ç‘YÒ:,¤¡0]kI§Ð7a2Þ¹HomÑç0w9V¡·ÍRÍ (Äj‰]Ä•–ê€#Òe6$Õ4/T§PÓ¯ÔA)%Þ¥h°ªžDgKÑdž­t~¢4G¤\…–ˆ Ü1[㎀§RJ‘¸¥ŸȦ*,úÎVRà©ëTéëà¿¥ðß?V¥·Â_• jþ§Uà£Ç -5Ï/ùkPÞnCåM)w®OVÞÌ£«îDå®û+–>õ8ÿ8,øÑĵ§ý1‡4;—ByÂuÒp¬ !±}…4€Ç•èP&ä5SóŠbj†‘{AGN'Û%¬(@3”9f7.×÷$•4{…S© Õqk,øÉ+TÃÄä»jô9Í¡#WÁöç…JÐ@•fçvÅx 8Þ*o.©°;<Þ58Þ̯i¼ôqlwßñn:Þe ?5†1 }Ršcw ‡-Òà5dÜkjHtg`vŸhb‡sšaæGÎ@ý–æ£À@9*wŽi‘†Wý›æ†æç™ç'ó|x~Àù)UÌö|ßùyæ¢ôðÀw£‡þc¯s†<æ|FiÌ 0渫›°šÐÐw>ÏÇËì§¡¤û÷p&‹§'¥Un¿)<þ.yˆÌþ|¯Z‡sС˜ƒÀ?BÅ ë1ÃnøÂ?Ÿ ~6›J«~u‹¡ºß }[YeÃb›õþ&ô1¿ª?šBun}ʬZ†ŸnÃzW†ê]ó¾Ëò|IJ,ª¾;Ñ+>¬cšk˜D©¦<Ãbó`ç"@?ËLEßFÓ5}gÊ0l4_IŸ2 }›’DßzHÅ &xn­Õ--° CþBxa €P]€¸NiË%Ãd@ÀÙÀùË&ãÚΛ;9¦f„b+\O‹ÏìB¤kq¾y¡¬p¡‘ThX¿BæŸI×ÚB&„ \IÒú0 Z]1mÍû®]*96\2•J §$<©¤ÍÕ¡ùd 0Îõ㼜.Ï’®­¿h—C»¢¼o—]ˆø\ßÿ—"<þÿ‹Öƒ¼žU ¿.åšb9³‘»O·šÙü*îaj‰¬u%ðßrA½’ú­OhŸÚõÎDȲ{.Á¥õT3#-µ²Ïˆn’¡ä~ú%'¬ó»™íU,Üíùþ1£Óº”Ý'}d9 ]Ì4@sÛé@³#–$ÑÒû\¼³ÙeÏSKƒ‘‰JÉ.ûáÁÅltvÚX,p÷êüs¬öfzS“ÿ5?öÊ9bЈ"ÁSª˜Ù¨·ô¦=p¾ï=·Ó£(}ëL3J§ãñ–MKé¥+0}žÊvß„i/¥oY…é”®©Àô”¾z-¦÷SúÞ˜~“Ò£ŸF5Dwù=¸?w¢Ø‘€’•ÒÔ€q'³Æõjç&|f;W“ßRîcÒR.å* zæûèf‚T@b2m”.gËfRkPB^Ïo˜"r&Árp3M9Š¢x¼¥eí0X|Z|fŸÈ +!DXfÔ˜‚¾Ñ«¿lN«;±‡äÕž„]3é‚ÐCaÿ7e%–K3W”ò2GAI‘Þ‡R Ll9Æ:Sc¹šKì©mX{ÂeqõÂ@*%×êHÓ·ýÍßFi]Dûrþ©mîÕÑ2+:Û¯¿P&ç;t¶oû'.\¼³rûN•a•1°å‹¨6V¢jjç™™ø¼i7@•‰³Â~íA[?œ¨N°v¯2ÅZ»7šÔ-XT± «,ÀŠàa#©Ýƒ•ú5µ¯sº¦‰†Æ¡†5 È¸È—8¦ voKßFåö~o)ÏÁŸ†®ˆêʘBõ±_;­ÀŸ‰çËlF,CnÏÆŸ[ë|Ë1}´~Ñèüú¢øsëwß›ÿM˜»ï|EÎv„Ê x—Sâ¾þžàyÜ}gûú§(ý…'ý…×deÒÅU%¬|MÐ=ý¹ïm½&Ê­—Oaò*aåŒS*aájÆË¥N©ƒ¥„¨å~Må¾î6Ϊ,ø[wÍ ¹ÜȯÍq’ºUõ¼7V"$ò L¤öFT²ZMwQƃÊýyÃt‡<Ƕ¥Ö I·6-sîHƒ”Ôá/f,€Ç£á<Ô䲯m”é„å3ò;Æ‹WJÉ7sW’$I]Ÿ ÿ•ª¹=a[Ç0¬Ý± ¯ô`”ç¶áä†jYÎðV¼ÆûÐ#íÈ0lå¯5·nPø¢é+¥´‡*-°™MómV¿›Î¯>n˜ÈRw½¢ÉÚ|¢Óo=Y¡i?Fôƒªr¸ZgiFo¬¥Ù…½˜l˜UŸ»ºzšµ©Ð  :i4U¬ü¼úþŒkƒž¹ûÞ‚œç{¥Éãõ¢V},kl®ŽÁìZkS¬,º|y¨ïüF¿@ôQÏe\ ÚùRäyʪ…ÑÎS¶½§zá¥ÎS^Rœ§(ï#}¼±¦ï}¤y*§ŽÕ~ÂýkjÐAÐÅ-4·ªæ,ô5ˆH1V7R˜»ˆÏ†5º» )±áqµê$ÈB´'£ƒMèzp£wM’|…kYøGú%oqD?o[{{Ôó6– 8o[Ò£«­¦×¯šáuþŸXÝm¨Q½OžºèŠÊl‹‘ÇZ|è ¢åB‚úÆSf?ŽC¨Óv@v¶}‰”Æeð¼WK ‘Õ6rÿàVÕ£H‘U(çÄ6±¾Xã™§¦ÛzäÉÞwˆ¦w09nÊ5!DZD› É?P3X±f§ÅOÀ{¡ÅOÈ]Æï!Çw†Qⶪ¶`ÛÍ…ƒðüQ­“–®»QÛIð`¹*Çåù„–LÏñ{ Çá\@%½‚ Cÿ…Ó6åJx«GO‡æ«Pƒ/à üGª Ùƒïç ü«„Š¡z»§ãüPYXãï>„¤¬á~dLcŽ#ð"¿³fz¾‚Ð""³ÿg/Ý1Òóó~»¥Ùx·dV9ßKëcƒ3Éý‚ÑÙgFÃ4•¶똾Á_ãð´í8ºœfÙ+8xöòÖ…o-…aBøHr…Ý…ÿÈÝÃÓÈ=|“ößât³^P£;?«}P @SrÄIz„gÒAÀó#ʳÅ|-y†À“s‰Zôïdµsð‹ÿ«Ëß´Kú ‰·ÆiZ»ðÞ®Þ& ­^ßÉgö‚¢Í1¢Œ÷ Ñ7Éq1³£æ ú—1[9]ZÛÈl7j‹B@ïKÓçèÍÛF@oÔ€‹bž/í(Þ:„Fü-È [‡ÐˆwÑ‚”À«{Y%«H»W±¬tyðŽ–Ž—6C#6ÓxLfèç¹vÞR+ú‚ÒøÉÿ07à‰þõÌö0%6xR(ßóPÑ_Èì#‰à2CÀû˜è»& ¿û§0;Þ_'"­xª1ÛŽÔ_r«§!¥ýi̸1oÛhHÕ¬B_·GÐ×9Õ¥è ·m?ãôõžàÈ–®Ë9¦ý&§ï9®#Oó¥ÛUèW¿¢^=O8Ñ›i¢Ÿ…'V'ª¤•øK¹s÷):g\‰sýUìF&5= ç\{Ö1IÊÍ9fm áLG.tµ}ºžÂê»á·ÎÝG.u†ßK "ªŸð+¹²÷Ä´­ vICø}±¡Öà©tç¨~ˆ'…Ôô³Ž5YÉ®/u®3Z©$V:ršŠÏ¢ÐÂë]R;)째*}Ð8ŸåªôÁšLÖˆY}Ê¢«FX¤M©D™f̨D‘V“Jέx7IÒµª·H:aej/^^1Ì·“”²}ùàk@+û0꡾ñ­šG%}ý=jIRb¡Æ«‘ô‹C|¥õÞ•ÍRªóâ&çQK±¤õ=c"åÕX¿Òx§AC/‚Pƒ©0ÎÆ>¬òâìÌÌ4ÏÂW“øµ¼ˆ’³KaRàá+Š«c‰aÆDå-²DæUÊ—'ÔýåK0~ÇV»AÝïšì¤y7zŠèõóbI÷ v»@-ú@ TÑ®BxP¯T™ã=*Òm"$MðzúX aß(îrGý’Ù©9w G•ïs²ÚoTa¶ú— í‡Â à…/ ,¼ñÅl.¯ÑWud ‹¡;ÝÔý—‰A“D_“yñ`+"ûÄY%³Ùq+î@v¼cºVæ™÷ƒ‚ÏÊqIˆÑË‘I8ß3•ŸË¼Î1 û!³¾fÍ{¿3ÂꎮÒFÙ}Qn‹DÞ7Bø kKö4x?8·ÒÒ+ª˜­µÒ¡J¼oÆ£Ò@r§Ê˜N¨Ø#¿)fè.Ç4'è|(Žd»Œ(ç;· ì…? EÒc‡¡Hø¾ì®¹‚oGäTía°oß®"x›†Ý„®àU/â@B‡VêW/ì9{ЮL‘0Î …H#ê㮑™ô/H±…EÅ¡J«‹ Çyš`[ÅíA£´÷ux60þHhØ‚dêùæv*[žŠ¹_¶/×ÝÇ„Ío'+4®†…':}ãLj>0Õ:‹K6¿¹ˆâFfÕÇskGОư§õEjì3Ž#ØgbÅ3‡w´_0e¼åAûÖ*è@zÔ/¬=j)£íÌRSÔÔp´máb‡c^xP­6ì4^i8Q“.;÷åûR¯È…Ê`1 †çÖê 'íáóYV‡ËN|CQÆEñZ{š6ÎÆµƒ€C°Úéé[VwËœ¬„M^0 ¹GŒØÜ„6¨wD?7=Ô]cà‰56˶'”Ú£ …æä¾gHZ4Ÿ|¥áó–ÂÌ—-Sw;#ÀÒl\g¡ÍW.‡jBsyòõŠx@R>‘È~Š”Oñ€üÜ1ËÀ`6o^̄ԗEÄX¡Vø® ÅÓ¯qî%ÞÚƒÓç[Ål‚Å·‘ŸðI$Y­—ˆÜÏ7Ÿ7ªIÖ 0ß?\>õxð‚fË28“?š½‘ÿP§Å4°pgÒ‘$· |EinøŒÒÜ*ð1¥¹Uà ¥¹UàJs«À(Í­¿¡4· šÐðíÛßán=§ŒK}€wäqçà"ÀúÐH½J“ ³c˜²à•Ø.¼{Èc£šúZ2–),¡+¯ L),GXÝD´d(®¾ÚFë¤[-‡C–Œ»eKÆídÉèìcÉØúOÚ’e[õ¥ûÔè2Ò1ÑÄÁvyúY9þ™&XDæ"¥yƒÛß.ß¾áY{*h”ð4aOö‘©šŸX#”¯³Ú\z)[&XÝx¤ ‹åùE;­‹Õë௷š®&)ý‘é·…9(†¬ŸöbüÖ0·0ÛiL¿'Ë|s˜Õþ‰^Ö’õ߇Rý¢ñÿ$axXjçôàòè¬gÇØÚü‘ŇaÀÖë,ž:œ¤Ñ Ø0ØâCÿiSŒÕ3Ç«³z€XðŒér©M êU¹H§Ï åÙ¦Þ"«Ipi\xO 8–¼ 5Í(DÐ"‘·•¡S+òž7J¯ÆóÛoC’¤¯õAjQXBx0$_´A{ƒ)R¾¤ ­á¼ÁݪꄭÁ[,Ã¥UÞPЪñ¤Ó;Þ¢Þ53Ó;Nôm’ólR¡¿ûNc6ž±ŒÅŒ\ÑEÿ@¬¤_ŒêhÒ—xî×ö;ëéH˜-I#çÍÀGÐZ)^it;%P]i´Œž ï"*„ç .<qÍ‚ÏðЂ©åñBŇ;Nõ6k:! Ø ¤‘§B–MÖ6ÎÛSÅæ1²‰c¹èG Û7Æ;OôO2ˆþÅø¸Ì;Aô›05Î;D¢y‚è=õ}²ž€žJÑf| §¾M‰ Ìö:%@¼LÊø7Èköɲí:ç6’míÆ y[H¶]¥ >bX]éÈ Æ3H€)+qè=9hBØGj9U@*9U€êøeTpǺ”à€is)ÀíÆÛó¶|s°¶+y5ò ãùÄ[O«)ÆG»¥_)¾žxH€â C‹#IÒYÎr¥·LƒAÈYï1Q«¤äÂ~zÑþ6Rraë?Oy[¸’kW‡”Üv)ñQ®ä2º‰S'nåètÕó[펅Êf“âqSsœw¨è¿£:^ô¯6Ác â’6à©´¾ÃDÿÔòe’ý´×\²_L‹ÛÈ~Õnœ—·…ìWNîXÚFé{¨EãH‡.}¥Q¹ƒ Y·`øÏ#¶ÚFÖ->âï¼-hÝbu„uüv¶+q±¬äÑ?ü§8în¸ÃLDZ@MU <úEÀ§ao†X×dejdP7øÛKÜUï«s(ü Lè_@N£Ÿ/Ý÷=s1ÿ‚ï?¾æÖ—“ûÄ×|ÞD¯ù|ø=¾fqɰp|ÍàA_³ÿÏÆ×<ï\ P]ÈN”-džA‰L÷A§ËˆÞ17Ñ5Ÿk¬/(¢f|ÉoG'€ Jx jÔÌ›A þQlÃlñÆA?ŠÔÞ8)…v¸_¯¢Ï̈>3A}oç+‘þ†k¢ùG¬ýUœê…Wòxå’÷M×Ή~þý…0Ð}Ó¦èüÛ+ô=ÿÞÖïü;ç_Œ—9(¨?GÆËô©dÍ9/S9g±c$éÄû‚ºï§ª~q/åÍ4“â^*7S¶¼™2AÕRXP™p7¨?‰ÛÒƒa/_{~{9/u$÷¼ÏrØË7 yùa/yWY×Ôu0åÝyá2ƒ_à?ðÖ÷ÿòqEüË’KÆ¿|-Šÿ@Bø¥‚¿|Å?(ìÖ†‚x8 3&‘ÁFfîÙ2s§H¾uØ ^Ç{Š\ÒT¯ï­,xá㚟ƨP¥Þu@r=õþXÙyØ@’÷¸WM?;ïqùuR³ËáܬÙú`A-O½9ó\ª«ë€7b[f%Y:bàÏ/^ƒ7 íR <&¨ÿ¨ËÅjÏß_Lžl̨,¸crÍH ®]*¥Ä’-eÉéÁLoW·ô¾ìüûñ?PcÑzê| ùê®âÌï=V{LEçÎ]¬®[ê‚.i õ<,k=¿ECOïS½ã™÷.dµÏЫ ¬Ž¢ øÇ°Z'· ±: }ZuB‚:4‘­E¨çâÆ´NšÓ€²Ç1ܲ™MF›ÙXX)Tw6¨”‘‰7p_ …Q¸ë„K…&Fþdûq¢TD)üÞú ? ¹Š¿[ü`˜T¢ Öëæ/ò4«e³ †i2u.P3+zÜ;:;›¼š¦³1M'µâgñâé Öø7ç#+_‡E=•a…Óï|n<Áò:ÛŽ *‰â˜Ò34[@cè1æ5Î뾂w¿F•ë}ºaé†RƒU“1@´èïaöWù¢=yÞœL=ï â…szÞܲlÙY–«¤S–xï5PƒY˜ÚæÕ²Æv#ˆ¼{›†k›ïmJk°éT¯ëGC:—l¹²‘¹J.q•c4ñN˜r ¾Ðò&¯}"êkSâéM¢“)ÉpÌœŒJß0Ñ÷A‚WNVÇ ã:Nz…Ž“ÂÝP”2¬¹è™#ú@)ëm­KÓ i˜0ÒÊ Ès_Cž È‚ß9·"Ï(þ™Ý>‡ìv9båØÂÈ'ad|·J×á¼ÇuxÔïC\ñ8?¼¶ø÷žK³EÞ}ñ.ÝeRÚÈ·lj¾ ÃÃÐXцç&ÞÖ^ñ`4ÀúéÃQ~ÞCÑ7ÃÅ­ =Cªfù€ÑóCgÐx“ÁÏcP!ƳVW}y6b}¯UG_ßÔJËy}3h}“ƒ&«~¤užJ×ötpiÿAKûŠ ZÚú“ª”t{›i¾³þÏ’PdxÂ-9ðøÒøç­MòˬÛÇ‹ÂÈäÇŸ·+w=‘ ¬ê¾Ô™`Ÿë¼Ào‚drW‰Ú¸©‹¼?Ky}L±¼Tõ?O5Çz£PMhÿì|­Oü³ô¨ñÏ<üÚ@xøµKÇ?›=þÙÉñ°ûŠv²/~Sêÿ,óŸÃáýwâbû¯MÞ©Qö×¶‚ç§ÁmXúwÚ†“h.û;mÃ+ó¶,‡” a£lCs~hÿ®ñ»à߸ƒ'_®z)¼ûçïïza¼;zö¥ðnî‹Qðî¨ÐK…|zåEQ+Ÿ”O£ûB|üÍ—Ä!«´êë„ ¸WމῤbÒKÉYKÜŸ>ÁcÅ4™„©M7µ(~]…oÒpùo©üš`y³8Ö¿j¸)øû6‰ôû6–ã†âyUéSÒK1¢Îið'nÜTY2ÿ©™ÄIÈ‚¤Î}ô@¼Ê!dÑÕ eYº²Ò%nûvl$1Ò×á"í%Gmï·û¢¶WÕ¿½˜§hÏ0k§6µ¬¸Gã>wE|ˆU Œ¬ƒ›ªÓ•96&º=£cùC®$óŸÃÛs9æë¥VÅÆñÀlËÃÑÉÃÉTÇí~;rü×y°ëå¥H8€?ÿl‘D·{!…ØVó±X¿Ð¡ *üDÄ!«¦AKBóTlÀ4æèU©ûÅ©ƒ8…y2Ó/ éZVHèÊŠ“Vô.i(R—–†&'¦[[{‘ØW”¹Ÿ¿fÅYân2=2KÝoá±Ý»i«+äˆÇÖ/0:Nª¢?ÅrWøX¿} »¢ýŒ³H(8úÓQéå¦UUø·Ô]?%ÈÝçcx…àï%—-q?Û¥’É=njÓjª¿vºi†KÝ%ïRQ˜¦±½ÁiÒãÒ 5tXëÊÜ:ŧèësgÄú¿5ðúàÚ¬;€&B£¯ö(׆¯2ÖOucð¨?ÃᥕV­ƒFðçšÒ"húø›1áŸkJ¦á¡AD˜zØ`O4ãï>DN\8¶s‰´LþÝ(X‡wÅËó³šÊÑïCu»ÓB=âaÒ¬_¤*û“ìOfiÕæ>ýÉŽè×e¿R/Ö/Ü(K(d ê!8AO~/O v.5Ô¹Mß;—ÚÚ/öïù¾ý ðóIÞ¿öþëý;8zÿøýÌËíßî¾ýS+çOûúW>@ÿfEí_yþVZ𓱖\ê!¼Ê.›¨úw$E4Ç£õYYîÊ=ع´p@ú„¼¦¶åŸgO¸°Œ¹`l;r›2úõ1"½ñ¥î=œo&çŸ7ë*h[R‘1Áž]QÕí¹µ3ãdÔ£ïƒ÷*ö„F}?~±wï¾ø~Ì>Üéþþû1ZýºÁÊúW^¢þéǃõïó]^ýÙõwïºxý/ýW°þŠË¬ßQÿöKÔï>¬¿·»ýz%}+ήtp4~•³KA×z”Áˆ6Ì1S›¸ F2Ê9µ¤••ºzˆSAëbw˜_\^VEŒowã%øñç¡õ2¾hõ¯\ÿ(õ߀•—–¹ÿ˜=H0ÍçûÖ=pýG®ÿ׿&TÿíÔ”¯‰²|}e0—¯´,îgÞˆ”¯°Å‚ÅÇì<°eîq9A;I)`aK» _E°8 })ýˆŸ '"^– u'KK‘-”¹ß7ˆÇ8t¿Ü±¨ýñÉÁJ<ðÅërM௥î5¹ \)€‰TL4$&®:âˆÈ}Ç{ñ2 šÑ…¿^(Ñb@Ñ…Œôª³‚nc/•£!*úú÷çÓˆþ¬êÓŸO']ª?Зÿ¦îY ›ª²Mèm›ÂmjŠk)¥þˆŽ@t¨ÒúÀrÓXÒÄñ¾¼Š ê½~¥â4uz{`Äð3ã8âï1k­ 0<,d¦QTô=qp)²Æça*Š$oïsν¹I+êøÖût­ô&÷œ³Ï>ûìßÙç×÷¢Ép¿ûô[à2ˆ¿+#øš’‡ÃäÊÚóëM?î`ø06999äİðSè†}s ÷/¥2;½jÖçÒkí¹_C¯– â£ï4ñYüÉ·¢Ø@|*sðyp].>•_‹ñyÿeŸþÃߟ sð‘óðYvΠø"a«0}pÜ0SþO‚ˆu­¦•„~ÈÇGÉÁ§õé\|Ž×œŸš7M‡z×Çÿ=ø,ÊÁçÃî<ùŸ\yû½e /= R_!oùø¤r𙟇ÏÛ¿>÷íµäÿ£¿Cþ³ö‚‰¿Ü”¼¿,Wü9n=O™â?îÎKüÌÊ÷Iæµ·R˜žg! ÍËU®¬Bð ÊÓûM†ÿâ@ÙcCYþ*…0~ksèWùT.ý<ûÐ/fÑï†Cß’~Ø4ÀÉòY’›ºêI ñòWh÷â!Üìi[tÄ„—¼Z†ñ‘YOæÇG6öøH6|Ó]å«Jî…BôþñârZįtí0¦ Óÿ„Í­ Ïài&~bºc{ŸÎðSA²!Í !Y¡5/±d;ê_4‰gíî~m$¶ ý—1f»Ç«´T.rŠOª}UØÌ]Á7­lŠSó’°Ü¾ÕÕ±Kÿ˜Þ¿ƒÑƒ‡¬ŒË|—2ñÁú]$„ñfðK^ײhÖÏÆx1ŒÌPÞe~E™á ì ¦ù~WïŒÒ3zgÈ5ÍeF³‡qÈ ïŸL2 £w3JIPj†W›ˆþ?ónZœ‘ä0 Ø;¾¦uÍ•tu§é—X»¢Púƒi­(ƒo"ïŽi×$¸þyUèuÆTzï}‚ÊÁÃÚù™"TfP ßr1Ã;¼bMtåýŒä†æ÷ä†ú˜"Ôü‚iwŠm¸B÷Ù&Faº´)*cXfÓ¿ÖF÷ú3ƒvf GŽ™v0„‚‡Ý©¿@Eˆ ªV¼t»ÓÁ ½Ýw)–椣…x§9Ú Ô”.®)mÐýÞPyg›Ô3dd•»;Qéßn+æ!OÌÀÖ†\L0ݦU&Ò&ôî}tÂhÑîTgNNh³0B€·6€fÛ~5ª;è&È\­MÂQ¿Ò¥ü ˜kN PŸçhVçuIÈU<ÒºŒ_ž ù z±Î9¬ÍVªæ#S¼Â!¬â^LÚ̺õþ1¿Ã×!x›”(õ˜é·²",ÆÂ"#*õ›õ—³ÛóìØZ.`Y ^ô{I“äYL›/éelõU¸ÛöûÙôC‹Cɬ¸Ÿ‰örq_-³¥Ü~ÔW“Ù>ÈÜ4ªÄšHª"1ÚD‡ñ 2ƒÖW_PêI¨’ë{¡÷…*<µP¡'‘@ùJ…ÎãßûËI£¯ G ¡Jz-{‡ñáOwÑ»ú$ÔÉlæ07€®†ªƒ¡J°+2x˜ªæ!jusÖè딆gBÕv…ˆSp³½íG‹H½ìþ žµ“ñ/W~î¨Zzl¨;…WVõÕãl«~k‰©sKÝ)Ü­;un™öåǪõa¤ÁÓ±ÝÝq.8ž+ëc)›Lw5”M}K«€WšJiä&x¨<_çð¯wæ%Ò^/£AYxå`¯ ½~ ¿d=Ä2-CZ‘ˆÁ[e E™R½ÆÅŸï>­§}oA{OQïM¤±þ7DÌypDŸ;a!úÛ&¢ƒÙ~›¯@+ÄœïAwêŸqW4ÒjÎo6T1R§a ´¯ht¸·4”º·(òjt1ÂMÉÌÀ\Ç Œ'‘^±ÿGÕQøLø™£j.|–Áç5ø8¡ L~´û|þѳÖ_…\ ½µt ìA¥ÐïNùbSâ~Ðv!T»hByŒ¡‘élÖÄyŒxµ÷q”îÅÃRð˜;U€·Å(Î.δ%Wº&nÃc+†à&úâT6ç;ë/)Õ¦®:5­i]»I/]ûe&C/NK<„·PdÕßZ?”42. —E8—ͺ×QÅí»d¨^ÜUoö…Ù2W¢¼RŠ Ã=´™LŸµÏé²#ü§9´ÇsÊÌ€2Üp”ZeÂôÓ²e°Çwh“±Ç'óï¥ä¡o• Š²3çx†O0‡|¤±º³ÒrÓb̺j‰Œ¥ìüAhkªuF6sÿ¢A뙟WχÇ­y­ÿ\ÎkXö€¢{È Ú ù!ÛÛ_¿ðß«ýQh?××èT¸;öà1LmžýÁåf“>Fz÷Vì'}Ñ”xµvýj‹\ ííË’ Á6f»BÌçÐܪ“ÃH1?΃aË&`ür•£j9|Ò+ùÓŸ‰ð¹aç}›$›þQþ@ø’F@’êjŸêÐe²Ížè1=ƒ$‚ FÝ{Ö?2}«RÇm…ÂËÊþ±ókIÔ˜xѳôjÃT%ó&w9Æ“:DÀöÆKê<¹o†à9ò¶ó´¾¾=,),Ï[Ã’{H¼»tî#¥L+7°2×okò®JGÕX„3s•v9»W*JßÌÅÂFhß¹ãó=z‚ oË ƒÄ„e§çldÆØÕØ# ñG­ø x˜w&äµ;/åËÃw¶ÿ BW ú¢<ÿuöÝ;À¾Û­ùw²ç¹F[…L{í/ìõŽ……ÙÛs2›íbfÛËm6}÷s.xT¦Ìݱƒ¹¨ƒXb9ùãĵfä äÒZš¸®X„ï~4¸½Þrz¾½h\Ùza¯η׳–½¶ 1Æ-ކ`ãs’}TmI„YA¿¬fá]Z± ¹\JˆG½†pzÑ­ºéËÌáQIàœ%´Ê=¥f\i*[º&ÖEi5"D{£•>Jø=Ï0Xòœ0ÖzÉŸq`È»–G‘T+Œ4É,®1ð ©0Ýü±Ã‘ ¸‹0’”Ç9 ªÓ Í/±’$bHZ`µøPhêY3ð!±À‡”Ç—Àn™r5%×Þ*uþP„cZ·³é °hy“¦þ”dE$âYrº ³õYÌØ´³aêlð6;_`Õ•Ü1ù%§‚pa@ž{à³ÿ‚?H{ü÷¥åG·›1ýÁÊ´ ÊçÈÎùR7”3º{zHÌ[¦—e_âF[&’´&ûr7¼Œ‰ù†änHLVþùÊGTÑqe\0¼¸7mI/¼Nºà_ŒÎõ1B·4Ü©Lÿõר%ÅV¸SKxõÍñᘳñT3BvÃj 2ƒ–Òü[ð 'eJ8FûO5i ¨cz±ùï±f%?a@J, g*J’Â;:~“èÍG‘:š[IîeYßÁ²ÆÙóZÀ! Þìj¹úCd®«Ë‘¹Î\oÅÇç¥ÉL™HO×e8Ée¸‚š_ŽÆÚæúÞˆŒÌ¼¼-Óâ|-Cj6)Q:!a¡¼g ™XòKëqÜäE„›þÔÉFMwô3ùüŽ5<_U7‘»Û§8`tÌ^ÙT/ QDNÒ:°,ˆ)¼Èõ&ͼ Y~@ÿcboÞÁ`è¡´VÚ›?awr­ 8à.oŒªçrmš3x÷´60t6q ½Ð6¡ÓE¤ ¢zô¢9–>Ȫ>CÞD—óhS¼9a†Û½Ë:ƒtɦ›HkZœM }¿Ù"¡$Ô‡O‹š§‘”¶Šå YÒl²‘†õŠ×¨ÙDN,×¾8·®D_Ÿȃ¥v2:V[…>µæ™BSŽŠoÑ"S¡„Æs}6õ%>z™+«/¹G¢•£Õy«Û®/QóH~hbÓEEŒÉ ‰A+ àjhqо‚Þ_¥í0chíO`UŸ%ªî-ÎÛŸ ±ŽL˜5ã4¦‚«dõs˜ÖÚ’Ud‹Ö'£ëZÆheùÜLD¥ ¿_Ä¢Ô{ô"Ò—¸ ÁÈÄgLôôiDôHF÷2?Çrl+B‚¤Ù΂ÁéYËèYý#“žQ±.—5ê\ѨŠÌF´7ªë);9eûí.ç’Q9 û§œ,aäI%“ؤ.'B¤Œáh•=ô¯Çy3*rò¦É[_À¦ÞÀ;Ì¥¨hPú¿û¤À#‘&õ®Ô‰ÛÈ¡×N4Þ6œô’Wè¼bmDãí™ÿXÏz‰4®lL¤_r%£…mÝsB¤¨B:ŒÃÔß`€† 5<:¯ˆÇ=Q]oàÃO`OGOÛ%Q:òË¿u§p4«Æè³“Læ$EÚâ<Ç ×w·þ‘Ìva8Oß} ·m«Žñ¶Í†¶‘zà™(]wØVÍ/Ìø@‹ØìóyBƒkÿ°Ð6(¸&Ï?Ï ´»^–뮃ëèa-'³eâ4.`’n³ß€Ü‘/8rëf>f׃† êï˜[OŒ.‹ñ‰ßŒÖ£Uªù˺—ç…qû úæ~Ô¾ô­ý;ì ³.0ÖVè sÿÛ—~û¿e_Ö©›Ù—ŽØÿû’|˜ÉóœeƒÉó΃ƒËó-O"ÏW(ÏïŸûä¹ÞÅÖòxÜ©]ezÌ .63³2ýÎA[UxrúЧ¡gªÿ£òÜùe®<7Ì—ç»~cÊóæpVž¿^zÁÞš°o*8œk¦À¿Íèû ŠI×4pTQß x´Ýå8Èh•±éþø ãçáJ¦¢7¸XCcû€!{¿.TBKBJÙÝó½hÒV®¦$ Pº *Œý;ö:løF¢äœéP‰ ì!‡6oÞ ‡3ÿ.Z=‘¼Ú¾ï²óõ/È+¯ïÛXìÀsË Žûsà³TÏm¯âè;o6FÙ·ÅÙà‡q¤³ùóŒyYÒ52”ÔX4S1‹7/ðYÇr¤í Ž –U}§ô}íBÔ#!™ÿ$4£=æb7(ÄŒ¢LEæÿ>ðN ·)àý´ í{OÌKÇxZ»yM¹©s0žUÉn\S PŒ~¡rñЗ°Aoà=«Kæä·¾D¡E¬]¥ÚX2Ó¥FÃôcÝ1i3ó7V¸çq#!ÖeÊrcý4wþl›²BæË›[GPQ•úQâ5¿¨×2àýã|»,ØJð)=¹&Ÿ&þÃ1G?ûÐÙ¬åm9 d‚}x¤2|døx@[ûÄ6J½rõ^v©µvùb«) KøÒ*¹{WÉüoþ¤ÝAÎQ°÷Ž´PО)Ð%r¤(ö½‚ïjÏDÜ?¹‹Õuß3ëÙÕÕ+àxp̦.sâõ0ø\µÕ˜éé¯=Û”M]hOõÚÓt8½NÎ XÜX,[˜²@R„mç¤o·®PÅó6Ù’ŒíÅKÖfz1ü™=€ðYà+/ã÷GyAvâ ߌÉñþ 3é ;È¥v /Ú¿¤é… Ãú¯å˜BÒE&š:®©l¢)>¯ /j¹Öøþë_Ìb¿X¢À*1 øÂúÑ1óM)‡Q{\Œ,¾ÔǬfº¥›õìäÇx,÷ÇöÆÍŒhÌ%&‡é/¿d\lK€o ù[$zî¾G 4`èýBœ°ñ…L§À#äÅh2–—² 9ó>‹MvìÁI Ü2îSh)g„|YøFÜöã§UãÖ9ª.…Ÿ6ø,‚wÝðü)<)<Î!®¼¿‚¼ßRÞï¼ßEy¿‹-ý2ý=0øi™|•>¼4)ïF>6Q¨ŽÜ!bÊcè0ódŽÎŽ3Ù}ä‘ìè,»ÃSíÚºõh±ÿŽŽíÚy)¹ÉÓ9}’¡ŽíÆMý=ûÚ;.ïÕu jyCó{'~#_ô¡'ŽÚ[ÆØ¼?®ÿuógõhþôOãÏ xã™ÿŒ<öÝ®×wí:Ç~ð]ÒàÑ.Å³Îæ8½d®‡ì¬{=cÀó•®×Å¥ûÇ–^à%‹†‹<ä}¯V§YÉOⲸÑàïrÃW/‰Øf¦¢u Œïý/êÞ¾É*iÏ­m€À …¥ ÚÔjQÁ€(¥È-iI–¶èëÖXQŵÜLƒ„‡(ÞVÝuWY]ÅË®wÁ¶[PÁ+м¬žZrÊ5ÿ™9Ï5MQ÷Ýïû}ý…4Ïsæœ9sæÌ™sfÎLA> Ò8tÃ-’SmìzºTìŽáù†P:oȱd¶ ëˆ5Ñ”ä(žqCG®Ðð5^˜‚C›l·uÛú¡ºêÑ6mÎ8ˆàåèý@\†÷ Η9é¯ZCó2~—õ†P‹=e4´f°^Oi–á™ý¢,à ƒtêå¿9Ô‡ËÚaÙ8#D^íÅåzêpd#sD•)6<ί¿ŒÔÁ' ©…OjêâgÝ3ÈL%.sð ž§g¨-:þ—phE…)&œ·?܉ cýZUa4øÓÚvrºÌ!ºÜÁ«ÀÅ21r=v-[Oe¡Kƒy—žZc4 ÁF«»»„ÙK°KÝß1Õ„v¬»Œü¯¥×Æ5Tù”5zz}aÖÓ««J¯S‡ŽöE¡õ³ÚéZ¹Aô”x`Ýwǹ¡Œu;àK>è•N4Ò¿Ü"ù—ûi»|‡¡ðc‹%s¡Þ‚§ÁÌtæ²òó²TU~ÙmÈ Gr¶¬8x|¼ê)KfO§~’‘ÙFˆt_þ T—¬Ö™4Tãã!e3ì1xèRÑ 7‹t†*"NµÄѨ`xÑ0EªëàøDC¤½wØ%61Ë!28ž-úA „¿a{àqµ\hÙŽ$†•|.f'—`'Øè¿p¥†^“þ jÍì˹+2ýêBÄ3  a}&ˆ ¾[W”Kê­+2Gå…ºC¡.+Š/2N•>Ÿfôr5X²N†ì¹t±}£­ÉâÆ8 U¥&7ãàän™©ä~‚|sÁê6 lØHXÇÙpüç\tì펲LÌnãþv$ëkæÇÚ ](>Ÿ” ë¨Ç·!‡hõŒ #H++Hâ^Í›¯<|ÂvÁïZcÐA?>À¦ •~4ásðx6þxôî¦ÏàÓƒ;èÇÃTaií¸àFú}'¾, ¾D?n£—ΖóWšßâT{ÀãW9j0¤³IÙ%Icw·‡‡H%š¼É!þ‹Ã™ÅE £‹½ÄÐfO|úEŽ2‰% Æ¡ïaÿ“±©öp*óì¬ý°’'Ò âO»ï:ú§nÆÆÙ)Ñw|r~ÆÒ#Ùu^¯rV’”´Å…ä¨âÿàþ zõ¡Ô‡Þq>-ÎóíbSø+\ãuN‡ø/±±±Åtàïâ¦È׿ACæ·««bã`¡VÝU$r±ùª;åÐ @›·5î•“ìxš·\Ÿní¶ô(aÚ½œ=tR´n ´ÐTlvôNŽC¿t$ï1Zå­¨ßǺð§<)t94Ýì‡v¤ó2µù6¨/>9³›D•Þå¬@nka&'%ôÅcÐàt(]·é(´¼¸?l4ìc<åöðwþ©«l!ÿÅöíRûÐ×çNÈ}-Ö´Jí'T”L£±Éºž~6Znr¡…nØL÷pŠwä ?— kó}–OÏÌŽ”ØMxÅ&þÄñtðåây§‚·ü<€3~:zŸS†8á³ñj(ô èÙÒlÙÇ_Øs?hµâ²<¾¾v£ Þ·ü|0™¤AÔ^¦ÒÞ””öd¸>Ô²QnùûƒTLî1Yb—î¥ÔwâXGüMr-Hµèæ#Âwãðvè¿Q_ôàWÔ×Í{6žjê󊓬4ÁÅñ~>lÀï-²/ºð³I·ÑR ÓO¨ï†îb>´íñ—€dÄLQìÈq.Þm(Þ¶í+ÇYýevÎï%ñR(4‰ü %Á;\–pˆ <‘fl^oV¨ÞOB+‹×*Ùc<”ƒMœ2ÂËr?ÉP\iz0Þ¢Š`&ÏDÚØüelÔU²‰{¢8~„¸p8ŠlÆ íÜ)ïqëúˆãñÍã÷²k®’;Ñ'ÕECê€Î°£´(ïÈãÜÁY%yÝ•Ïãû¾é€f4»Ka²µ—²ç°ó=ùNå`N¤Ýž`¿WæÝŽ`bŸ½¼Lü’¹dYTQ÷¥8Å.zG”óóz¿|`oóëab•²¶:$ßùä÷²äZÿÕÊFÍÃ>¿›ïXšd:ñQe,Ñ.ŸÎ|+mM´;‡Èn[@¾°Ÿ#ߨu”&ƒ« Óá‘s„仺ndg'È—ÕûÈõþt¶ã$ÉY¼‹f »f¾ã/ØW¼{1ã!Ql éKG_\ÖÑ 9œÎ§‚Lì—K'JÁÙŽ~¹Á€HaÒC]âó¥À.B=w•0éË1™G·ëšC—RĎд c]¡ ©JK2)J¨øÜ‚þHÜ9Þ×Ò‰ÇɆb±beÉdm±ÒŽ—ÃÊØÐ/åŽ]w{›««t=Òï/)§vß}Î]êþRÞÓ…ûévÞÝ4EØ"D ýÆRúO). ňcàMûöh2œÃþr7]¬Wºp+Ææº–nÄR‰@ð¾}rzb¼ š!D›uëúr5øòâeÂTÆ™¾L=/ã¥29éËÌáeΆ2lÁ’ ƒ'8›?€OJèÉtþ¤ {Sæ°óeÝ+ºJ ÷5,/>ÀVk6T³| lQü™4 íÜ'’Ͻm}qÚ•Âãz<«#ŸbÛ\Iõ%”öbìæÁÒÞ¾°ý“1“n31‚Œ¬Õᾆqþu‡í¡,:Yj­.FL[dçg-±õùô/m‰ÆÙ`÷Ÿ4°·X îfiGŸæ^ÍZGpK_íÑÐ$ MY¢q9ÉÆ-L裫$—{©ž‘£që ûâÁ»3sðŸ¾øÏÝüF“ Ϫ‡a/¿NF,¸ Z÷&Ù×ËA ‡á:Ä}\«á”[‡”‰­Ã>W7/qJdÂ#˜ó©ùqV˜ëÂÝj ìÛîdXLnµúÇÀ›c|^¶ ^ÉV\lÆ"[“a}q®±ÄÃl[3dKnèœìn& ™’7[Ï–Üú†eÔâðöê*ñíÊ™FÒ—Žpc¦L)Ëë=¨u¡öw¿]úò%‰b±-ú¶ÅÇV ©•ñ©Q%ÄV²<ì­/­ê™ä 3ènÁGúáøüñF~¾hKõdXÊXL 5 VÔl=”:°ÕV6œ 2qAÔÄ9¶c+cƒµíì6!Tˆ ÚçvÒÎ4»—µ~¡z… ®"¨ z(u«5Ááa/k¡–”‡ VÎí Cg[¬…ºŒ F”¿3 «sØYÇdJ8 bA¸:m'¯ŒõÕ¶ƒ9ŸüÁ‚úé†Î(áò²¯?×@=CP6‚ZwCzJë'ä{Øg›2T°0§I»ô†ô( ë¿+cjÁ.!°6»¬…õÓÎò²9Z°,ÛE`½;Gr¨‡] Û†Wr‚Ûìóë;ErX;Ù¬{Àìï×wŠäÙ^Ö¬‚…jüÁçdÞõ"xŽ‡Ý«)ô#K;GîÜ2v… ÎO¹ŒÜÑÇ;î$üÁ¨êï®K ÕM³ßpâHMLI ÙtIA$qË“Ç_-‰>¡þ ¾¨wä .ÿø\ÚQÐ}N+ú˜òÛU}LÊíª˜\FˆbjòÐ+Ý…(‘îBü^.NŽ"éýÒûñÊ{‡dóz®ŠÙ/¸Ç¿®Îs%˜ž Ì@ÄÝÃv}M¾÷ ÁÏí´ÒMH«r9cªüáNxÝq`j€­áAêň‘#ô÷"(ö¥lûEÄÐfžµ$žs¡û+1;zqödrîøHö£éÊöE-†–UÒêxXÁõ]e'º+kš‹Ý' W‡x#UÝ©T†ÕHúO{ ªi½µA¿¯Œí¾N©ã4_jz÷ðuØ8Û»‘ô4ŒóÑŠŽ0®›<’_ÙÙêüÊ +A´¡ª²"Ô¯Óû Ò2Œ¬T Ãíc<’b‘â†Òipx"Ø‚, d®äÈhƒŸnÑÆoÚE¾ò*mü&‹K=÷݈/0ØÌ!Š¥-Ü…ý8ÕJEtÞZÊü@±_æ«›Î,÷³ Ý‘º± €TVTsL{¹Ç66?[õ‰Õà‡ïˆ!tÍ©²"ºt7æJSôÃ-tb’ƒ „À´›[{•‡e÷„/È£Þ^{¿Z43h°@ñ¥2 ôm•rÞÝTl±T½vú“m+‹[¬žÚË€pní•ÒÕSÛ…ž5µ àŸìT]Oh (‡"4ZsÄlÜHHÐ36H;kzÜ oÙ™ ê•.¼ ‚f/6ªU&ìKÂP#dµW:sƒ³ûÀM;3 ÖÀÐd$¶±û7 ÒNï îÄkpŽæwô=¬Í`×I%'SÉA×ð -rIE¯5²qRÉ"*ùsP_2%‰ÍjͬŸTr8•|7¥¤Úº…ímä%ó©äê`g­ØÛRÉ<*ys§­/f–J:¨ä”N[GZvŸ-³øýÿ£¨å±~\7 ö•ƒ>²R]ÇûÑýª žŽ ~ÚUK_ÝÔÅ`˜‹‰-WbŽáû1tÌÈ»l…MC’ÉäâÂ&`õï⨗gT9sÅ—î•i0lg…Í…M±â»¬c—ýë6/=zT³ð‚S‚\ý]u ÞIÀT÷®¸t#à!Þbï¢?ž6ó6 ¤Qt܇5~ ul«ŽQ¹æ¥ˆ>þW%ÒŸâô¥Ö¢ÿsC#ëV¸M|gé×ÿ˜qq²ñë¬Âíâ†!+¿J&w ðÞ÷*Ü Ÿ^J?fßcßœ¤¨Mï5þ”Á>†¿YfôP,ä²î´0óó gNŸÜhÃçÝíðB^ûüËFØ(|ÞÝ ~‘ãbg|%í™S·«[âS­1# 忟ßS<Ú¸7·ðè5ÉßDzæ˜Ûc·XŠ"–Ñ8Du_Ç–aÏÔëR[¼˜/­]ܷÙ?\…›—&±0U:?ë5ü»53š? MÀâôeñÇÆ=¹…?ŸÖköt¯ég(üÑ äRìDö§ì,åÎÁóÐËžihíŠàf{ZòÇÀ8wÃëZ< rbwY[®m øÈ&ÔWãû$c…rÌ()ÔO$(víçOsøUÜ€ÍÉÉâO…zL¶ŠÐØÍ•€½ñ°AÝ]cšw?ya¦yÛRJ ›N—Œ$“áîìç[y¿q$¯ÌÇÎDS¦KwȺwˆ?ÍeßÛÞâÞ$Deß÷¸ãMäŽ2+‡>€Ç¡ñx8,Ÿl5£ôc ]ú¢çbÄx@îÖœ‰¼.)\bBü’ Ó ØåªÆ¶õŽçØ}ŒOJ¹¿ïníèÚ‹¶$ö(^%†ºà]gÏI°Gê@z”Bƒ%³ëq×Ë“+ƒ2¬$V‡[A§ß?oFc_×E{Ä„G†6 ðP|¡-’°Šfhÿuî} šp,«$’°Dš-KOÒ,ßEZÛ]8ÓËØ­r¹pŸ”4úêXñË6Ek—l“–Ñ ¾¥|9øåan—™XºU”ƒ'ïÝ" T&|Ìô*Eyø‡œ’Öœ—ƒJÔj9. Eš­‘·må«Dàx3àHþ5‘cIP¡ÖÜBî“ÞØ ’ÈÛš~}@wC&?gó²ñ¯K{—ÈI„¸‰C`ªRGìì8‘ºB/üLMGo¹¿3qŠ3±d›Ü_7½Ã }Mh;Ky7Þ¡]”.S{ƒ³sÐɽ˜Îƒ°r~VùÖ $A)b2À~|5Cu Ô¯ö,÷±>«qÖ§ Ò€'ruPÈÇÊ^C8q¼æáxÝUN·¹ ˆ ±x=ìPþjM_oIcŵ.^RØ€þ"ˆÕx©Ñ|D•¯u­ÍËäE\Ž{P¡%›Ä()úñK4´sfÊG¯(}Êb§˜M#¿œ¨ñ›¥‘Ÿ™(}0òÍ ó†òÆö _|XÔBØ?K‰ûÐUÃ0òÄPÑ=þEž@|a²q¯)>ß8‘ÙªÃd¯´GŽæ-ìòjj¦ï|À–—$ÅM-VqÛò?Ú™s¹ß¸¼ÄDž-y‘&Ë4¼€~£t £¯œÅ@\–ƒÖøu?ž%§ vʲAþ¼J@=ùÔ/漟ýóˆläë¥ß£›nŠ@á®[Á¼jP¬ Ý®!ß?ÙÏák ‰=± }­°$܈Ó+FOØÑOQºËŽ´ˆßè%´2 ë—ì˜íÌíè<O/çwÅ]grÈrC ý{ûcá#¬mHÕ'àQ¤½§p;¦+Lº¢yßr –žÄ…:Ò¯X6ì2&äçó»(ÏÈ›ÿÞF±1¡=®2¥2¾@Ä ê˰üÒžÀÞ±•ùÅòKK‹ÚÂá&¬áþdöJÅ—ëôÈÉêt3ýÛðí7Ü-×ÏŽ—åà¯ýü/ŒÕW?ÇÍ”_Œœ©{Q{¹4öá×ýììrùÇ?ýì9åÇj?û`FWCËhÞÏFÈBôjzp¸Lyà§7•+ÆÓƒûf(†£;ÕÉj¡~(ü!£}ŸWÆNôj°“ã¾6äVÀg|VÁçði„Ï—ðÙáCîÙð™ Ÿð¹>7Âg |^€O0ˆð­ÿL\Vj–\}CvrÉ'¶ÇÖ{èßÉfEïÀGâ2|d~ÇÝX8GlIaÆPI¦øVÜ]J•Bu«”#ê‘ü¡äÓ\*û4ã3òo]æQþš,ýµî0†×MÄ–•*XÐ\íå4ºùâ‘›ÇÁhÿÁ ;ŸêÂ÷¾JáÞ†Š„ûfKh⊒dëyâb[|ªÑý^¸ÏŠÌQKæÛ…W¶6¬¸Mbº°Ë}8”G—VÆʦB{…W`âJeB»ªå°Jâ4›¦ظAí@÷Üm7õÖT^Ù$¬è×öVæV™?˜j iºð}ôÄØew7 ÷ñIUø>ý á§\³P)ûPo^¿ P[±\ªþ—ª¾WSõ½jÕî  –Z¡bw›x6Ρ›N^)I>Ióª+ÝB~Ï\²(YÎz]²HîúÌ*¼’™Z.cÉ%Õá^D!À4!Ü׈-á¼×ý”¾óäаy‹n1uh¼ 4­QÚ AWº:Z¼ÉWƒyØ"¿<£GÁ“©I/5M~r<ñ'ËØkʧµcºü$]* T/;]©z<èSƾ™*?ÀÜ™v…Rq²D©WKGì†Ì 4€ -oP¯&œÐõj/µW5SS{õÝÔÔ^™NÙ«©Å)>Enݤä=³NUÞÆBï"êÃëøCÿ+ÈÁ–©'ÑwP?<Éâï ¹eðÁïµðéùoCî,ø^Ÿ'á3~ÿ>ïA¾ý Ê/Ú k³0©vû€7)$êíx!^ò^Y2£o»EGÀW{P™¡x êr5b–°ö{¥‚lRÈb|…éYkЪ8?WX›@\á5¬º‘Ál™ðÁ7ÑmBt)ÎkU3rÐÍ™5îjÓM7‚òÛ:Ö»=¸Þµ´ŽÖöÖ¾K9`…WŠG˜ rq_ãO–È÷Bã.‹¹MX[3®þK›ñ_hf=6óÁ÷ѦðÆo2ÌG•® Ëx¾DÚ6D÷TàA]7brôîfÈ]Ÿ÷àSŸðy >ƒà!KúÏh2KYøWF¦NžúÄOéÊ‚x^@¼Å&¾7t«»qa×ÑÉ$ìÌñQ™ÂZs¤ád¤½¯pû,š‡«f´ÒmÂðå>,D0ÉjüZ‹D÷\ñmæ;É£˜:áe‰ûð²Û^ŽÁ`·*¾N«=žŠDp­OËs7Ʀә‹c¾ã5TàÅìèaÊ•g÷„ŸÒ ŒO|WióÞHC^Œž67Ð-·ñ¸s0Ä|6±›8Þ›b­‰Œè‰A ˆá!5¢'³&ú~¨§H䄵ï¸÷ +7âÜ]ë1Å‹=¦ØxØñÙ„µÖÈ‘Añ&2@-´ ·?a§8¿ß•f­p¨ÑêºÈÐ ÛÛ‹bãòÄq.÷¦EýŠ€}{Äë"ùC76xÃQBáØ$—èƒ —È–ÛZÿ*Ž·º¤$è¬5n!<ÞÁ«Øxkëùm¼µ×¸û†ÎTß¶`Øi$bØ*¾Ë®åä‰^ ݆þâdÅŒÖ>ØïŠIâö&FO…úûñà2‚¤»,rÔfn¯ï‚ݺ猪ÉH;*¼R-°yå»P2?&N±º=æÿy…1:´nIà©&¯E¸íek©MªO"ûøuâqJ¤ÁÄþq”ÏÓOq¬‰æèüw”DŒ!vwîÉ$¿ÖÍo"ý¡>ᕞeÉ{£EiYþ7:ô´….jiçþlµQˆ´àÏmÂ+&© ‡WlÓ€õMXd Œº5ÒhŠM±a»èf/d ž.HóÊBAÚ˜ŠŒ!O$'uÀN°x€‰’P †ÉÄ'-ÿM@ËqÇ4èVËCxý—Îc'!ãĦ8E]¢›ñ4.6Þ›’#Ôï´Ð-â;>@÷ÀøäÛ,#Eœ-óÏŒ;h“ Sä>L+»ôà§ch]³J„q@$¸ø:=9·qÀí-°yÎ?ðwñ~åC¤&Š—ZøŒj©° µ¦™€ 8YÌ›Ü[…Ûÿ„‡dfaíK|Zf9só\ïNÓΛ'g[Í?š7KˆÛZ±ñvaí-&P+W^~ a¬‰Œc Ûb½ij)A:•»Äqy±ñΘÏ!¬í %¼½ã¯]“+g‘©&6>§å RÓ ©w„Û3Nà”Xlª‰ná.ÍãénNë%д°¶9ÒˆÞ}„#ú ÐãHRF„  Äe&óOÀ*+ÑØ ðoGÔi@1ÜÚ‹™9²B19^ Lìò¼ØGÌçlY—Aܺýk`Õø X]±˜m'‹Ã„újtYÛ,Ôàš»}| ‘/(ùƒÃfJ!¼[Ñçb»ýüUT¢1l·‹‹–YLjYÐúö]PS<[ Eò£‡ÄâÈ0~¢»ïŸ[-ÇP[nÿ¾ç_¢LÅ÷±ŠW ò¤uIlW'E»}þ9§dŒ» è1oP¦mËgGµÍו¦¸%вá(Î<@c3¢êŽPîÆyÝ@MA¬'°i&iÜ/ý”†6ºÇY€«n…r FlŸ‡“þŸVƒA^Zöñл䃄êï²Ê£jni©·â8ˆE&Y0Ì;Tù«U–1 _°ý¾ˆíôÇÅ)9‘æãÑC1/&‘%åVœ|‹ì¯‚¼¹t覸ãÎͤè!a¥x³ÂÈþðäRx²¨+ö¬w|Ð.ÁIëÖò{*² +û( åXÌgÅ’a{¬·èsðâb‘˜ÝƒÙàsÆÊó„µÛÜûëºÖ€N$Ds=ìc&iÙ ä¹7Ì?M¦Î»mœ:'ºpY ˆM\ìsq`nŽlÈ‹Y›‹,x à}½–Ȇ̘Ç&²–7Û åÞ€rQ‰qG IÓ)ñ8_œâˆn^48îÀ¸Ë†¡â¡Çã—YèYüÖ|õ*Ùöd’ :£øÖfCè2X’M5‘£½Ã½å%f,]jÜ¥–ðVx!Ñ<<éåëð²_¤!“Ý -Of| B¶uµ„ì¡vBeg+üù á6®=4~c2oÜÖvyX›äayƒ`íÐÇÒ˜íÞ-O´ó-µyb$¦•´]Äà­°ò¥‚[•JÏRž]M58q:ù(KQaoŸX £ +†ía¼¦‘>{]>ÎѦù]ùÚïË õ}öÒË`MŠùìD@–[¸CX;Æ4$ëÊLªÞ*iTf>%D*³Ô©óÏŸ8sìÊÒL¢,E Fø27c I©ei2<ö¥Ê(÷åχ¹\œ}Ή(&§ÀpCª\j9`n8¬ŸÌ@MšÏ±ÞBdg¦ŠV_ ­‰Z´Ögjfôó™2¸×âxô>ÌmŸå;m^c½ÙÓ$þWÁç¸ÈièëC2ÞcŠk'’&<¬¿° ûl5âX βP°_Û‚çÎguNY¯¦ Ó÷ðf—ejº0\Û…3© uý„èÍ ãZÊ‘ਯE1¿*¥h±öD­]ºSÌ[ŸÓLª-É[¬Ô‚€K–±6àÓæ1ü®6 éËÑàˆæ©ÆØ=XpþHѧwsD¿ÈP å¥~ !Ñr›THz£<¯Åç„A´ÐêãhÞ J Ê2ì[ç™Ü[Ηú`ÕˆóùgÊÈäJÈx4Èô)ÖjQ›N•ZÆÎ¤VÖATÊ ùýî­uÝj–â½Kõv{¬BýlŽÍ8,Ê“òm˹hþ©4¬p+Gô ËUÃâ¿ù€Ea´æyMjÑ,µxAÚ‘´ KÇ•«Ø-¾À<+µjV¾œA½òøÿ(¿9]½œØHö9Á‰Útš¼ÌiʃÉ£—±R$øñ’˜–Bf‰øÈ‰õ– †(3¹ßYx]'¬Ð[Âk¼ù7²‚¥3V8޹5ê™Xd“Xu«íßÓÂÛÛôÚ¿‡ó6`‘A$²ñ–oÛÇ/ºJZRÚ |÷€t´hé8uŸ"+5˺‚ÞAÆÑ;ãÑÓ¶Ö½³Öv‘–°èRñE„>§|?®Þij¡KŽó\â[ꨤ 5~m2o—È TÒsP…¥,OZ0ùZÙ¡7|íTû”'õ©Ìø+IN}2K}RÈOÚø>+½¬VÛ|æÞ&Þ‰é¬MÞ5Iä釹æÈéöjGZY7['w‚<:‰×Á 9Å TŸ>ÅÀk»¬cm] r 0o®S{-¬õ¨òI½ï¹—ªu'yÄ{ï’VóÅDLnÛmÈ=«Í;l!w:|–ì3ä~ Ÿuð|ÉO†ÜOŽr{ìáßøñBÙ‹áýëð]ÏA™ë¤Ï-ó<»¾/>lÈÄ{?ü½Cß!Cîà½üïWàÛtÐkØoÈ-ÞÏÿ¾Vúþ|ð9ýgCîÓðÉ=`Ƚ`RÏ[Ñ?'@W¢\¾Â=… 5wO¿x³5ÆïÚ1þ|\ðɃOÆ6¢Cð¤pí$K ÔÅqRfMäˆñ¦!ÂÚí¯âÂ1ôØ“™Í︷ÒÝBøûæ¬øTcŒÒƒ¸x´3PX{-ŒÓ¤®X{üÚðΟ<å$|ç´Ú5ZBYqx9Ùúù$S|ò$ü׋œÐ–pÇ_ð(}§{¿ÁP`bÓÐÆ"<é¢óÁ¸e@Û–rÂþ?º34 :—#¬ÍqJÏíXË8÷§á±´¡.†Þ¬â¶¡Ûã“Ï7Æ„C°}3 Qt‡÷ÃâŽÛÄ÷Øc|%fsÏh¬oÝÿ„.Áîm?vmÞmRæ¹<ÈœåV¸ÈÙ;<»F¼Ö$í?ÝûçÆÏÿ²—¸÷ÏÛ¯—o®À8˜7[KÖ˜b…ñr 4~¦Ôø%[ë«U’يÄÁ UÒyRä&Œe'åû¢óÚbW{”„ÚÑÃÐnÛ¼ïµí¶ ‘1I2î߃Öc±i} çc{%­k`Ól¿y€˜Œ]¯ÅÄ÷JØ]¼D&¾ºé懕éíÙ »¯èY:fÉÑY¡®Ñ†Å¸E´P6|—û¸ÁÏ÷‰Go.Mº¢‹Q1ùU©6¿²ñ¦“­’ÑÏä~/ܯF̬½Ä0TIÝAÙï܇CC¤ìhøƒ‚Ö MzþÂÚ&ñoguUªõ¯*Åü·ÎÝvÀ—œ¤–amŠ/Îï£4 ý±Œˆ]6ûUuf÷ë£T pªéïë¼WS'Ù‹­ÁïtamÉÉT[ZVMdÑÉTÐÙÂÚF7˜Ê—T‡{ëL~U)6¿*Ñïî“ÿIãBäc’!èŠÑu©f¿ªtv¿ËA` =,z±lì**Ü\#N=éec åGg¾_#úO–±·”GýeÀÏGÈÒ’è ¬­‡— Qê…•õ)cßž¯˜à°.´ÿ)µ;%¨ÅJå:²J&¿ª ¾‡îú>:²CgŸß¡‡_œß¡‡G/:eË$\ÇTì{õhÐã½_y:ŸòZ.Òy—.2sKàƒß¯À§‹Ñ˜ë…ïÅðy>•ðû3øL3sÏ3sµòãW؃F´–ÂWgöÀÇ?ÿÿ»=ðèÝbŒ‚ÏWð¹>Âg#|Î…wÿ {àö#:‹`‰Æ"x=·.ÉB ß7¾Ð¬7ž[i½©Ñè—ÌC±“M&÷áy?àÙ±Ø$ž_=´©ªr{»lD7XYp÷©§µ b”4ýEhzt¸C•ÜÖ÷‚AŠ^32Wˆ>¦TÔ– ³ˆìƒk{`oòn}ðjüm§ÀóÇC;¡"^ì`çÅr¡þLЏ’¼KcÌ:UýŠð n#t„ðˆØ1rÐ_‡6mo—¬„bÒ–i̽ >Û€ªáûü>‡áSãÕ™PÕÿ~«½ð\ïüïØ Ï”í…½{áö“h1|ÿWX ?âÃâ~Æÿ¢ÅpVHÃé81L’Q°N5³Í¿¸F$£áù A‰Ëy ɈÑÚMˆS@WbNÉ„8(ñKöõí‡qûáFè¤j?\KöíŸðš¿ÑÛkDcZÍè6²¾Y[žÓ/´[~Ÿ¤³;"í$8ûÅ'˜ØBÉ~øï4öCì6· ÎÖ[hA\{* â!½ñnA\{ âF,<4ÅJá€ÍÛÌ›°qèÌ·3â´vfF|ž›¦š#ã­¦L¤Fþ¹hK èl‰·a§2#þ$™¿ÿ3âª|æœö_6#^¯7#Âè¸?n¿[oG4KvÄ¿£±N±#Nm5ïÛ fÉŠóYeC¢7­!qô© ‰oj ‰ß©h!J ë„Û1þY;b‘ÆŽx¹dG”κX)Y“¬‹ ź¢í×ÛWþJûâÁm¿Þ¾x#Ú %ûâUd_ò;8iÛÿCöÅõïý·í‹Ÿø?b_Ì~ïÿ¶}ñÑ­ÿgì‹“¶þwí‹5ÿ%ûâ‹ÿúoÛ·ü&ûbá¿þ{öŲÿÀ¾˜{jûâ½[þ«öÅçþ_°/6¼ûß³/~µ÷×Ù'¿û_µ/ÿ«öÅþÿ©}ñëŸNe_´w1æîµsçÀ÷ƒðù¸»1·°‡1÷OL <»¾ÿÔÛ˜û÷lcî¿àïþ]UøŸ{sƒÝøßIø¾Ühï¯=øßoKßKáó,|÷4æv˜‚1w+|ÑËø¿´/:ÒÙÏÖnßþ E{îÌÂhúß[#u.§Q¸c¥d_œk¨ûŠÉèÎЕí‰ÅhOÜ.; âÖ¡ïà1Ë4 zã·Ý/ö›bY’UñNŪ¸B|-’ {¦«"žîŸMoN¬Ds"`ö5žWÔŒ<'Ô‹?¨·$n,‰ðRkKì&5y§lK|9-q:Àߦœï¢ù0¤š©¹¶yÿN1 NK1 þ›Ï’úÓú 7!*DxÆiMˆÿNgB!׳FìY $…ý·!îÕØ¿Ê)¸´Ë×UÇH €éJ& χáóae…;ƒíñ^ï,×(øI!( X~Þ¡v©á'p g»Ú™»:þñ‰×X…g?òûâ“MæÈ×ǃNxèeßüDQíKÁ©¢;ŽÊÅ$äÑ Œí½H Õ:3ágÉ…PßM@PËÒ“kMl  k~æ‘ Ÿáþ*tZÜr©{Gh¢õÙ•‹¡Vëj£ãW<ÜYMÓ©*f»éð&hÅq^€Ó¹Ä&.²Æx'¥´IWZoîßâ¥ü†W?ÁΟ<ð4Œ9CÏ?vR¾ÉŸY]9sƒÍ݃m,´îiÍt·,2‰-Ø^ôý…]1þ ZÝÛ¨ßP·#³'bSs„gß1·›7ÅYE7ò<®+0cs&¬±×Çܱ*{ìzG¨Wuó2<1kÛeÈÔìš<å©ýkå©ôd›ZNá÷;¿\§„s×/_º¦î¶¥'0²C >½×ÉÐ(·×µð"±ø®|˜ÎçŠuw ‹&CgúÅ-âÄœ¡M>‚)1è*O¹ýá:ŠÒU]Y±ÁJ³À² <…;áe¥ö¥ž§RïžêÇ+Ò~8tN¤ýDȱšÒøÔåb`‘›. VIˆÝéá âŸ+¤‡-#.REtd7Ìq¿¸O¸ã4\Àa²:AêLE³ÁßÞxñXsd×ñàrøáaOµHrÓ¸ äæ&äûÍBý1ä̽rN@1~Bl„¸ÈcÇYãcÌ »ËÐ ÆÎ¯Í9|~Änt4¡Ãcʲ8&_4ÃûÃ'¢Éؘa  i‹—“£þÅo)R' L´¹Ç¹Çâ¹Ä³¢{B¹â| ¹jËß–þ¤€&,­Ý›'XÈš••äY(Q”:#pu4[K©jxŠÕ‡Ëâ8guÌë„ÍKelLNÌ›'6V¡6¶k³}áv ™ÌéoŠOÑ=°v ǘEÁ58*ò<ÀXµV‹ÍÍ–Ã&Y( t÷å×8sÁ×àò4ŽIdþCS¦—8œQ-EŽÆ :VÔÊ(ÛMŽ¿Ìã‹ßlc—PÌgêDï+h‘– Šr€ã EU±ñ†Ø <^Jl{üOÊºøÙ¢ÉQ@,Á¤ä©3s~IÕ¨%ŽŽ%ýìqÞ™ªÄ–¥»ƒ´Çúõ®´á‡UG\Éÿ†5·,8ã gnp’Ì‹9ø$š¹ˆf»{IõÃYK7bU(–$†Õß ŠÊH½ÉÛ™{Ó ½ùË ÞTvèΖèÎ0ef)¦´ŒS—)!iæªDÀÏfÍÉPƒYéY{RvFdù3}…j•˜E1y²´±ô¢‡B—ûÙyפª¬)U%»Á¯rK¹š VÁÙÝŠKúxÌù!ÔãMäRžó¹côùYÿ Á -ÇaKEUe"Ü´/g7~©N¤ljB‰T]A~µF6çú.JOO‰/Þ-ü‰Š•âÄ®·±š9Œ?¤vE HÛ¡Š®º*È9d¼M,{ÀäSë‘™•¹DJ-ÞÏó¯æÑõñ˜–îž •r‰YÊÎ ¹DaÈÈ;! “ÞX …l>±c\ÙÑZ½tã‰IïT²NeÈalËád’b¬ÚCÎûéY)6“û+t:÷b+Û“I.€äê )w±k˜p{ƒã§mFóy1|ŠEdF÷{±7ˆéCÙ^)ÇZ1…ƒÇø£ŸÃ2Âï¹øû V ÜŸ'q?ûPáþÑü.Ü?rû7,W-†PíÄÇÃn›ÓEÍþo~¨QØݼ¨.^m‹Ï5bŸkñc̾À,<"AýS¼`Ì,6EwcÝG@Gk)î9j^òB"€€0­Ci =©:jhデOòÌ8üOÌÐ(c×üž3`„fÊÙÄ2:8u%/è—F¿”QæFøw(4@–|aÙ?`-j­ Õ°ï°ù^úh—ˆ©žï¡²T?(lAjˆØz¢·”ÅQÒ‰tcIé´ @irð (´®ºpxx­ƒ2üžï£Ëú=^ÖÐΓÀZ%i|n å¯û,S/'”`ÉŠÈ¡ˆ¨6hEg”«–3òù!ÞKâÙG9$Ï:>M¬Þàrœ,3ÚPòì|öN 'N‰J™‡Wƒò%'ˆÇç…ÙÏÖƒ°u¿ w¨íz†G|›äuO¶äg˜  L®f›8¸ãs¿ê:ãÆÑ•îb˜Å0-$2¾ãkåÝ•5ÔgèM`§|øMSâš ÔäÑ´è%I‚HC¾‡½³8Ã.ɃH#ÌçOˆµpîˆYayt7†û¹aƒ-ÔŸe¤ƒ†QæíP_~‹'Igd.…£=bBú¦ Æ¾Ò í¦êÿÊOù0 Àüg3:E÷‰º[$tD/LA÷G‹¦áÜðÅËÄOh6E"k¸MyÞIšt‹‡û‹º³`|©ºËlb3ÌÑç“\kDsC¾¸£e%Ì’5än/)z ²ôÛ Kç§cé·µ,]­Ób×±ÎåBª4£ ZDîc^¹B¡Kh…ÈS1Tÿ3…&ʲá>!¬D?cચ~õ®åð.<()Ñ‹°°"+ió,Õíc—>©NPgØ¥øKúÖ¿öÑÁ® 8áŽEöχn­4ÓQc‚æ¯]ˆ®ÌßRœÃP‡Ìˆ=DB'”-±TUŒ={ˆÞ£ÇXƒÑ$‡/šÈ0Ñ`»`ßKŽl€Eͺ•fp=‚sÚÿ#t„®ƒú=:›ˆìn4°ìÀ 7QY3²ÙWwQ#œ–QáüC'¢B¿záÂÒ©5úêHf-MR­ßáõ€—ŸNY 6@·‘}ÉKcŽ+I…T¢+((õ°‰?†µä€¨ÀƒÆ–ÞèS}œCr³…c ‡Èg áã•òä> ÔßoPH¸è©N'ø±ºyÄa×îM+„ð„„°Xä,c”ÉLvÍȇ\«®D•Ãë Ä£³!+éh­R9쨸µGŠ*-ÇmU"~øIƒƒ"ì@¨©Õ©çòþ6‡L@"‡ïqïÅ•Ó2H»Ëa—dÈê$ßá:\”•u%Ø¢a“^v1¥³³K{ÑÎë ë·ëëÿÒÒiýF¹~ŒÅ ÖÏïæ`5Ìã’p«ú3?ŠÞ¤y/iÁ |åÁ`3—ýéZ)A‘}pò؈!Ã[m »ˆ?¿ŠÖ¨Â†‡»‹ãœ¢µºjLeÌZ‘xkÎ z>@…ïÃk§8.7dÈZ9«¶"ÓðÖ0^Q–¦¤­CÉ!Xr6¯³›\²§8·è]ÕfWOp@®äÅéJ¹J}]iÿoO·ß·¥Ýï§îõ_Û!ïõi?ù¾¿îBCãÃ{…ú‹ÓŸÏ¾_×K,~~˜¶‹ÿs9?ù‚ý£uLuÌ ßÝwãX„ááÕc§ÉItô'Òé.ÌÏ•æ7Ý"Ÿ¥V‘zYêÇØ¥L–@wp^cP"“ž¯@÷’ WÈÐ!³¸ÈšìvhrÏP–»@=ž¯ÄÚ!¿4£x>Û(£lm9zR›ÀTÿº’ú5ǬÍ@ük-Ö-rxjÍì’+a¡¬¤.”•´b;Õs[o¹ç7¬²Š ØxòدÇ-1{¨º W ¸·"Þ©(ÜBø¼(nEС›â ÈGþ³–‘~ö„’„xª»Äµp¢è·™–%éz®8yY~tsÝ™bñ²a˜`ð©)‚í±¬ñ‘fŒ¼OHæÝÖg5Çe­_é†t{Ï‚æSñ»_@Žâçg}|¦#>Ó´ø –ðé'ãÓ†ÄH•(Í¡š4QÎ¥7”¾õÏ:¬Üy£!Á·jmx[”O"?ÁvÐ(ÒI9¨°vVjÐëÑ‘±Sï*õ°îU]äx½°ªØÂ™•<Üx—ŸÜªÜME‘„-¾°€ëÑCtËAÝw ÅÛÒ#Ôñ>bÄŽ)ž@½t¨×­™IOÿ:ö¨ã]<²µÕÝV÷2nÿªiÿ…M®VúìaÉ#‘2›«%£”MÓ«dKà9¸‚»ÏÈp&$-*¬˜’ù官\gVê[ ¤¦8@zˆEv9¾U¹¯Ö|Œºi–r†#­§ã¬À¶ ‹óh=›ëáÇSzDxrÕâßI6qÔ“¸“ö‹ÍìËcÒ\¤É»•]/år Çøaó=jYZ¡SS E“u9Ðìx7«ûjž­õú³|¦_]õúceEµ”òKÆQ?ÿß@šáé62!»*iÑÈ‹‹Ò¬ûÙ@9_r]äülqzS~·–_OÖ²ª™º¡¬(ËÉ™)ímÒµwðdÚöþq´C{äö6DÒµgKiÏê}~E5— 4» J޶î@„¼±,? ;ôÙß ² VZ7›ªR j¶éúãJߟ/ŽÈýé‹ýé…ý‹†VrSÆh'ÿ%9úÞð|³¨]Š\6írU˜ZåÃøi°a!Œ„pÂ.šŸa‹4çËþß‚xƒ¥=r˜ýr•.W¡†WÆVÊtïCštW~_€»pÑëâF^{Q¬PšÉPxÕ=A÷5ŽˆÖªÊ1± ö˜•°é˜•Z?¡U[€NßÙAcY4 3}¨Þç¥y¯Ó‡È¶âJEª4’>”T}kx)']e}¨¿X‘ÝY7¥œs×UK3¹qô‘·ò5eQ‘-ŽA–…\Õ·ÜÃÎ÷dóíÔ7vrøu­É,ñæwÔjP árõ¾FËã-fÈØ ê :•³}<‡5G1‡˜å:»#Šj}»¹Òf‘ësŠ“œ¤´MÖ(ms—€Òö]Gõ®£"X%ÅyÙƒý¤a¨NUÞTý-'þ¶Œ; êã=ã32H,›¥ü5Cú Ôý ói«V¹Ãñ÷QB‚xµ ·¼ã\è_MÞS…{`[ýtC=wtg…Åi\Nìi2­>MÞÉ+ln#íF¿øn8‹|†l17ƒÀžfÛXù·°Åý¹*”%vsO‚É'NÊ1w«®ŒM²êhÀí³~tˆ/´Å&¸bòÄÛ ¡Cî¦ØÚ­%„&XcY‘Å9ÆØZÂh-bî!N±ÒÙýëruÆíwËgÜ“ù+ÀêÍoÈçZ­=º2ÿä༼íFÌù´eQ¦!ø»ÇÏ3Šíì‘< DFè÷gP€MJšÓfÖ¹>w†š#ÊO¦òôå•c¸`Þlh´û«¤ˆ@ØIs'¹ï[V¯Cü×Ô¢¥¹è]Ézó“™’Bo¤”á±RÅC—— k0ЧÁíµnK­Þæ"rÍf/H®&xùaT~ßaµ¼4m¬è۸à ÜÑ\‚¸“Z{ob‹¶`–TÐÏšÞ•§…|žíñ@'X]%¶2^b ,-y€”ºž Œ+ЬÚu øãl£Ú‰íÉl;æB®û!szSîŽÞÉl¥cGÂÙ‚)Ž¢‡Âž*¥Z•ƒUè€òO†\HK¿b¢Çׇ4ôHfÛðˆª»2^h÷ÙÍÒ€|ÿ„< ¦ªDl®fÙƒ½Qmßtà­ §¼.ðô—ƒ¹9<Ææj7k‹9Øéf‡Ñ 'h÷–¡'ìò¤z\䆧e ö&³­HàåD2íI9¯¿DrªÊÆžÀàåQoÊØ·›¤¾ôWú’É‹Vc‡dÿ)îe—úd÷CƒÑ=êåŸ-ª{”qî8·‘¶SËMn”–:™m‘0<¿#†wöS0´'VKÚ$î+#xËã2‚–B‰€(¬Ý¥Òv>8Ì!—ž$—™¡dÀœ ³Œ?dòM÷RPÿƒ­ÃÌF¹~+[è°€Jx˜ËÇ' ¼©y_Éß/]`ÁfÃÅ¢” ¶0þ°%GmˆO¼•S r@®J¼D¼öQ/5'nì~öÂTÊë?žÓ³=ø@dÁgã£9®Q¬Êc óž=b;Þ!ê炆ǀAø¬Àž¬±”ŒGB}­t¢Y¸9ú~|†]Rl2†ÎrÙ#­½qTA¶Ï&g'ê •U’žö:ü„0‡Ç£õÙÄá+Äì2V€°[zÝ·0«S¨?yryÙe×ÈneäHFµL“ *…†¨…þ¨²Š×[EÊ×ÐMæÅ'÷Ûë~gÑà¡;–6b/¦ŒöDZìþj«"él´ÆgusP¥&‡ø/ò©nã!W¾ù‹&óèqâ&z‡¥àµyiR!¨È1®ˆlˆa%:Ê´ì„-7°z0WO ^;uñm¢]1ÚSÒFbÖèÔ\¨à¡ʧXd÷in‘÷§­L6P¬(ÀŸ#ÐB÷·«àÓeÁœÓ©s÷# ã³pA½ÖzÈ<âÀÓ(…ƒŽÓø&¡¨™ñ†õ2'wa÷ôDNníâa#ˈÕÑ«&h= 3«»æ°qš²W+e»ó²5P$ˆ¢bl¹ú^·Ÿñ°#STµÓE$„–ýÞ2öÈÁôªªöLV›ÿ4x-è2E§÷ÉmÎx—XP—›3J ÈõŒ1æ²+kP?~f~¦¡ö0xdŠN9v:j®çtÒbíϬ|ŠN9vRù“Ò+ǵÙéúò*¿õ@zÍ”ï“uåwŸ†åÿz =>AôÑf z äÚÎP2²UúòoPywg(Øl}ù—¨|·NPªM²}ù5T~çþNð10ƒ¾üTþéýàcgÛ&éÊ×Sù[÷§ÇGò)y2éCEÓ‹BýÅ¢`´aQoÑbõ°WuvX8)ƒ|f›y“R¦’º¿ÇQP‘¸ M.)ZãÎ…*@b;VdH+G´ *|?zÚX`‹ÙîGNëþ86Rœè¬ÛSU]í<µ‚Ïu¾ÇÃóV<ª”ômÞZS­18Ø¥ðPY,äÊa-›,ÜA%ÔW²~xa§?Ù•ŽëHz5)‚Ã/çO{j.¸fÄc§ãùËÿðK ]Xìþ@ ¬üøÏ˜à#§£öEOØ?ç`¢5ååØà*zIOØ]ðru~Þá?EÁz|÷(þÍnB¸î ßá?c‚sy¥øƒÍœƒòº€Çê©OnïЉZSOœôïïø…÷×wx/íßðü·o£ pû–µ^9Õ@AO^(Ñ÷…ûÒ~ÍFûµ‚w2 Kwcp"’Ÿ 8ákð«Ôæõ L ¾á‚ ™7öOõ®7à‡öÉì{qKµÒµŽöùì[Qâá{ O²~\¨‚ÛÔêÉË=9‹)ÙXªó%µN™#Üä×9 !²ëd‘¦½÷#úû ê~z;KÝOÛ`?m#µ~Èfi2èÎ7ŠÆó¿©òùÆHXö†Á¼õ€‹Î7²Ôó Aœbó²¯6Q-•‰ò`ÀúX÷„•ìØÊÇê¹ÅóŒ¿âލàuI¸úAYÈâÇêþzéb õáÊëöäêL™ Ä €˜?ÔMz±­ÕTx(z¨yu ]žu£e àpoªµê?‰ŠUø ÌÅ›0 Á&,JÍØMî÷@ã"¢î&NµÅþ›ÇKæÆ•²±²L‘˜*ówRªÌä,%m(¿RüŸÝŸ!7ƶ@»~öx32–Şɠ–ßñ¦¶l±xäUÉ+(œÑ2:‹RôXš‹ˆLÕÌ ¥åµá]'»+{6Õb[•„öYÚW)¨99†NXÃr"À¾*!´$bËi÷ažw»»+WqdÏ<þ_Üauo˜âXŽöœ%# ¡1#~Ùð÷ŠÆ¢úávÌÉìÞ0oWêhÜa,lp¿3ÿLéü}ÉH€‡ß=5¿3ƸߙwhLü»+u|AÞÒ¢E^i¤= ’'Ü>ÅL  c.¿ýÊå´§}$¢L«Pvuw¡”•Âp“A–P3<äÀÍ™x4㪫*› ÇT¸Æ8h¿ì©>+ÜÉÃÖæL O5[Ç‹L¡^Ò}¦í—ˆëA ß‚ñð±Ñ¾®”׆yPO˜ä„¾JÛÑ>´õ°?^® ¾SKwÄ=FÚï*ùì‹b™bfã.²¡åIéÜŸLrçÂM€ Ÿâ·­0ŽYn[ß>„¦¼‡M”ÆXˆþÑDX(™t+;öˆCCU¼¨â—‡µÎTP=Û„)PkëùömG|•5PŠßðž¸]lƒ}oaÞdâÞ§pv'Ñþ¡äœ³p"ˆP;<“ˆ²Tn)Æ÷:Zÿ^~ê+Ѻœm§¤’ _b–õá x7ÖÒljQžhY'ï°e¶¬Oq³à>V·Ë¯ñ&ä&Wk"–³>iÆò 8ÿJãçC7ħÉMy‚»/°+ÏAß¾¹ŸŒîLFýX&áâãe‚™}žÙbh™‰ +)Ä éÓx{â⦡;h¾õ\îè6¦þýð!ÄAÃñ9ùF( =r¬\lÛÄ :JDªîyÓxMÔÝ8K¼Ò»šgšÖ¾§XÄ1 ü`XŠI¼”g‘|˜eáçX2‘he­5ø’vNúÌ´ÜØ8“Å ‚!%Ä®dƒn§¨9JÈŽbry¹1?—û¹é?ó¦ó;Òå>?ûÄÏ„ÛIHÔÏ0æ‚ëíç¶­å5´\µœ‰'Qfé²ã|éa/#ÅVé¾¢¸0 ÓÄ83^ïv {n­Á_Άõêjhi%G€p?‹/!foyY·I|—ÙТÍâ¶ ½Ò0s¯öp4C´\f´âV1Á9šLúØeK¸¾5º3t5,~{ˆŽµ Q<Àé5]*oί5xDËZ{º'èÁ€Hb)¹A—¸®ÛPF´u†Ø½¯˜­‚;Ç“x²¯faVo:ðh¾Ð‡¾²7ÆëøMÇÓè‘ð—ƒ*جߓö€Ž‚¡ÍÜ[!ñ{¹ø™d)}ã'«çç;ƒœ]ÒÞ5$ à¶°V ÞW¶`eÍY¾tÙwÄœšû¯ßA=e²5—mùJÚȇú’ê(lˆ×¹ìì ¯¶*œYØ@·üqáp‘F†ç$#hWêîaO™¥S;jQ ¯]ÓNvD~+Ÿ/«í·cûlº¾]‹Ün]Çvñäʪ4<\iø¼Ô†Ûk–õ=jߦißzÝÿý2}ûÇiÛ·%ÔG2»@iú“Ô´MKréîZJ{Njïª/5&¶„®Í凸-s<þ°%ؓǥ)íÔ-hx˜t’òÞq~Ø|($øÙù&åÅ–èh‘Œ2] íU0Ÿ÷ÿ >ÂÇÆñq°öŸ)a9úÔÔÿ¡—GþsÄÅé!xØãF F”ÃÓVv|šzXm [¹Ëˆ#!s8½ñ¹Ô•Ú*ÞAß^+½ZS’»T×LHìUмöÐé*›5ÑÊÃΠ­‹¥è?œN:jæDŸkèáLðÌìD'cÕñq¢'ŽS¢†_ÖÒoKk7(;‰0@SkÑÝÇ@e£þ’)ßÒ wc‹Ž› RYÀÓWÆâkFçÎáì›úRu™ÊUò‚åì–£èLįz»ò}t¸\k X “W€gšmlÕQ™}ºúÙ´kîhF⶘ý¨tnj)ÜÙz&—zýàp ûûìLé:‚=å\"À^}(Ô”"yòLBL¢·æ|²ô ”`—ïÔOjf‚-: RÚš`á1 È8˜#M‚wŽh&ÁÙÐ åà0Ý$H9NÜ"Ë"É—öœÖ²àô3põ}ë3_—]‹šƒ}»_EÍž`–#ƒÄÄv/ÍT':%$‡h‘\~RAÒžI¼BÞ”ÏZ¡þ|@ÏQFÜœ}?ë—/X:ûLÖí3étDe\›Ì¸çî×2.ó´4G´d¾Ã9ˆ´Èó"ö û«Û5Ø¿s¬aáÉ®/»}¿ä)¢Ž³2¿&óù…ã¢ñ®ýT3ÞNýxßA××B¾8: !)A“G‚†Îíù³2í´º0'¤¿×ö¾š!{¾Ê²Æ©Ø¹üop.2óŽJùÂU*3sO6mŸ@v¢}VŽ ò¢þ ¾~:¸ýoG9ªÈ ‰“ßÁ£vÀãrq ½€Î6ìÐGo ùôÉîaW§>UH¥Ñ¶\k`o\¦ÊO[8«B©Ë’“êðc$:‡†D§-Åj`}íMö?ªŒåóKûÐfE:ªÒÃ"Ñã3´úDÝ'Ó㑽)ô°Iô°Hg=|¨UšL=–Bð]ÈTn°ÚØäÃfƒ†dT‹?Ž\ ,#¦Ÿ9*ÀNÅúäžIû›ø1ˆ%Ø{îÏ”ŒØ]*”µ g_ x/²Î_*äK¿6~çB±ùUTÓ)d*½:êkh½™þqçúÀ‚ŸtúÀƒµúè­è ÍÔ7jfjÞQó/j¨ ÈöHÜCÉòÅî n£éúúGyÂÐ*àW”ä,4 XC9Ò™ÍKÔ¡o˜å“‰hVŸ‡M™dUÖ¯¬Juà˽ìàlÚËå¡RN{¥‹ ±§ÌÏWî«5úIò[¤În; w6ßÏ pÖ*õðú$¾xU~LT¨¨L¡ƒC+o•¸žm$€hëtœ‰½ûû‡ƒr#OK•<¶™"…Üÿ9PžÚˆËXü'””(ü\lß~3]õ^=7»hÅùÇ~ Õò`1f? ¶c8‘{.åe4öÃøØ$r4îGø¡køYá¡ dí ä¥e¼T~»¥P5+ôÕÚŸò>3K{ V à ïSl¡U ´_½Ø ü®OUxK'ð²ù*¸ êç> ÿl9 &ÚK“ÐZuržÇÏ–HÅö±Áxhθ꯲kü5ûgnŒÊ±k©QºM¾ÐÕ`XÝ,šä_žà:f¥2^BôN(ââ¹;_Ó ØÙ>FEjº0f¿¦ ª˜~A¼Š€wíÐô_ ¬¬7A¯Ó×ð£àæ}鈇75—°[õÀs ¸F¼b_Z´-|‰xÿN¿7-¶ylr A–k oÞ›–%HŸ¼VÜ@À}4À§EF€ÏÑ¿DÀŸ~¤Ÿø)-KPËûÎѯ!à‡4À ?¥EûRƒ``/é àj pä§´t6°?è!ë rˆrbZœ²H9‡ [?T!…´gê!gäóÈötÂÃ[ÎÖAäÍÈ?ï鄇ïÖCºr´òŠ=ðð =¤ ÍÈ3Óc+°\=d{>Bnþ@…ܳ;-¶FöÝ0äwy§òÅÝi±5±§ô[Ò§¼ewZll®ò%‚ ¼4=¶&v¡ò‚üú}2#=¶v|¨r%A>¡|·µl7è!Cyò®ÖN°]®‡œN…È@k'ØNÕCŽ È#ÛUÈé±µ2‡2‡ ßÒ@~ûcZlöÙY:H AF5Oþ˜[{DÙ~&ùk oø±ÚÖè!Û²§ò‚ôØšØ0=ä.‚üd› y¬%-¶f¶ÿw:È ò/ÈÆ–´ØZØ:=ä&‚ü äí-È„EzÈçòwÈ)é±}PùAî}O…ìÛLÖU¹’ _Ö@~ÊÒb›Å¶åëõ$‚¼Uù0ëD‚ýQ$È1Èß³´Øva³ô¥™¥šÛ®ì4=d>Aþk« ¹ï‡tØVUë4t?ÿàM’¿?ú·²¶¯øÑ?:>hŽ¡õð²«È¸ï͆ÔËMð«ø^Ú•Ôá®äó°¥¾jY<nx@ËC0ŽMþ*~Ôׯr 8”Ù”¬¢s–XZÆY&¯Ô!vWjõ²ÆS­P6¡ëZî±þÝ;ÿ-ã!Y’äò!ÝÇAŸhÊ69Çå@Ó/†ÃÅðÌh„]‚O°øÅ¹ ïLî S&– þ“ðàZŠq X~2g(¢wo¬ªº0¬HÐÆKûm4`ußã¡KUulŠ!f&k´ým? 7ˆß}§ƒf–4Ýiàe¤"Êy™Ec‹<€]ÌY‘-!¦=j ^Ó°QIH©éÿ]šþG•þ‡ª}÷G.1„¼¼ç—uÞóüïÒ÷¼ïøt¼x(v¼õ[}Ç»}×±ãÍßvì¸ôß2ž–_5žeßv2ž–SgºåHéÖðo;v«í›4ãIüʆ‹ è>hiits8K,õÀ<ÊLI/*ù_ HnÂdá¡hËöµ~æôY•OÁ2Ê,îíÀc±Îõ—Ou‡ç»‡Ñ¿'º (3¶Üÿ)ÛíÏ’öoòcx4úÜþ¹Bôb´àêÃ`Ò”üD-iïP^Ò×ú!µ,­•Z° d€ÇZêgL¢Ïr?w§—Ž|Yü6ÉÓia–dC¢+ùÝzM ì®G´`ìщt¥&]CÉÑÆsYŒB§Fö¢0 tÝAZM±ƒÉ.¿(™\‡ÿt¼‘ˆcçµÉ£XŒ™à'ña™'¸’8±ôä ºÇ`Vºîo#Ú…/J¹Åè·ˆcmâ4‹R‡j•ë:þ½Z—–0¨â˜àL˜çk €‘îD§‡P÷Cc¦ÛCY0Ÿ Ä'°QßèžPïCcáawŒ,æ>Œ„ÁÃof ŒtÕE2#‹žò| ¯a ™àw!ú­IwÿBc›GÙrá¦(pÌÒ“¢!t‹,4X@ñ|&»Ó]håýDc“a”å•Pšˆ³euo<Ìž`w"t‰»9t1¼¸ƒ’æ€J9çMµ/©ZMø‹V+U2‹:à‚NQÍgf^ ¬ßÒc¸Æ‚ôEg‡rz(DëŒy*Ï ó½ìÌ%J$F!:ÓkP¸€‹y-|÷çlÝ1$ìÐ/ ­…ûGÞK¶ìâ÷f\t’HÆŒlÃPCÍ‹5õ¯3(QÍ0’ Fµs‹]Êþ³Z6\E'‹rûxûxžï(£dZÍ€.çÚ+0ډƒ‡9R&Jê ÒBä$yæ¯.záê‘O/òSïß$ëºVKÀÉ;€ØR¢/ñÌ›"ôå,ãòÜl'ž n—]d¶Ü"–Ù¢ÈB“VÒ@ «¾•æZµÔÜî_K7æmµE0•GÕLå ;ŸÊÉËgø°>¹4“=ì|µv­?¿Zÿ(¨ŸßïÿõõPëÿ›_¨¯ç.üõRëŸ÷KõƒbcýEjý½~©þáPÿ›í¿­þbµþ¾þ…ú-Påo¬¿T­¿ì—ê·Aý'ÿ¶ú'«õïßõ õƒ.Áþòë÷¨õß¶~ò‡æõÊÿµõ×@]~ñÆá ' „ ¨;}ôJA9×¾¸ÖPÕŸòŽøÌRñ1)øTèú«ÆGºRrS]S ;6z:¸¯TÞõå~½³‡aåC>•vU ?{àniç†W–œlä§´ÉøËÖþܳ -~or:ùš($âáŠS£Ö #0à†B ±w3‡‹V¤}íð‰1`ùuŠè·Ö3P.6±¼$…/$¥VlÌ=xôô{ÄffѼK7õ*á6©céâ)ðñ .7P4‹ÚŸË,W[ªþ²Ëhê_Éëïúë×°|ò‹SÔ_k‡Êÿqð·U¾R­üo+çú•Mºªm©ubü¥4 ²Ëð9×BÎ]Á:“ösº àÙ8.;¨ÇVOÀÏN |5þj¿²¾ŠôõýãÀ)TËõª^µ´+ªåêÏõª¥B_+mÑ‚«€VµEÁz4óûˆýlÕîhÊß‹åG—Ð}Š_Qþ,?¢¶ŽµŸT kÞ?„ï jClGú÷àûᵠغôïÃ÷–ÚÙìôï×à{[m-Hÿþäœ$ÁUØ¥²“麔R1}ð^,ZÚò<œì/­¥ º9C_DC?qˆÐ<Ÿ?¹]ÝiÝnHÕ¸k >?{yŸN“|ùCù’ /@eµÂn`F$€/Ü®vóqÞ ‘Ç£öÄ'‹Wâ“àsò<ñ²?|¦Š“Gb'74¸ªc^ìØ+tà`›Ú!zê´STQ)wE£ÂV´ÄBí@\¼+8MÎñø6û÷èD±:ŽD§Ïbu³æ6âå¤Wµ¿—äÎÂþôÓÙ©ßuÈ/öÚ9¬ô¸:²Òy!æâÛ×¢gnôýP%°O«ë)ó²qû¹Qž:ñéÙûµÂeËéü-<ˆ½ø>@i nx_9“•úîbÆÆÉÄ ]É]|‰{ƒ–¸±Ja-ÿ)õ—§©_H[^jýŸSýßl?eý¶w¬ÿÙíéê–Zÿqªÿ¶S×Ošú§¥­ß•ZÎÙXø´´õ{ý±½¶+ùØ?ûdÈ¡dC…ä“r×|ö›CÅlrëq6²ÍÇÛø¥ÌÔ¨¨Õy ÷/r€/Íýè¡ð`¶}[Ç#¦ø6Y/™™õœpV2“jÔWÏTòüL§'ò]áFå®Ç}j™\© ^ôàyM¤;7ªe(\¼´ õ(¾Ä¢Rü3†k8ßGSŽÚeááx õ5ðKBÊ¥Væ‘ËÅ2c© ébµÌ0,Ã×gIâԟ¦ûÇéoÃAä¼ZV¯Ÿ}×";Ú8¤€þ–2v)«ˆ!Ýh gÐ@|OCÓ© _lµ]a]¡Eª$B[=ñ3(àPÌ˼vÒüªt9…ôü‘û—_âgˆ?^ÙúðÇó[;òÇu[Søã¨Ž?ˆÌùeþùeþð9%LþMüaòËü±Ëu þ0œƒü±çƒ_Éøü±ø£ß¿ÒòÇßþÒ9øY}$ sÈë _Û¿¥ãðýs‹²í@ ,øŒ^&^"ˆ?<ìóÓÜmP/t«4poÈïÃ×(ªc5·&ÌP"ô¹úУRÅð.=a‡aï}¿SÂ&0;ÇÁadŒªJ|Q‚þÝ_䏨jùQGù:ÖÄÑ &èžœA œN{¬ ±h8‰åR[ºãqY¾ç±ßM³þ½«X”HÀcM6Ñ*߯:‡Ö?µ°¿–?'µáke|/Æ%íóéëí)¡¦Ô5/xå’µ¡ŽºóÝ;òêÁº¼+¿²TËØÆwÒ­.šõëƒw:öïÎwtë'Y‡tý{ˆúweÚpß}ßšÆÅHh‚xp Ötm0ìbiô·‹¿Œ”´ªï&þÞF¿W+„ý×f…]Ùéï¤1ñ}©еëÿf*?]·þoVú'c•GX;¸€Ø–ä×r—§Õ³•>—±ë7§ö™,£Ñ$0Ìm›;ηKäòÕ õ¬b8·žGŽèÎ…N1~ö"»Ðba&f©N˜w”sc µ¢ªZ6­#4~ØÄEXL?¼è_Ù¯«bÆpb¸› x™ŸJ?zëOÄévqy­ös_Ì’î]¤ÆwH Öš¨à ŠW݉ýß”¦ÿ›¤þƒæ;-jÐÿ@h¢8ÕÔ‹ÞØË7º§ÐZx:b`¹Lˆ,ž) ݳÐdfPÀdnøÊ“~¼›ˆ±Ôâ‚ ™_Ê7#è´™b”:É3Ÿ (î/OÂN4mü{ô¿¯Xn ±ÜÊfnc£†5ã;˜ý­¹cÿªšå9®à‹yÖ®By€ûQ¿z+œUQEædaÂav@p˜9*»#¯œ—Må·Á¬W|¶6¥Ãç"ŽOÁ/ãƒgl*2ÏYÏEž›ß”uü³ÛšÒŒ¿‚ަ‰SÀ¥© à"Är°¢W5Âj9ã¸z‰ `í6(æ²Ñdþ6(c{«lp1š<È V]|bÅ‚ó‚Ôçêóâ·%fP ®”/+ºú{÷Ûû;õm¹¿•¸Õ“è?…ç{+‘èC˜£í¯Oéo5D%l!¡§;xa^–ûxg«1ý–„á Âð‹Ê¨ð¼Uª<Ú¿1Íú¿Q‘GþZ»s¼ê2’³ÿ+¿XE’ª“B¤œ5‘爴~¹;¬·/ΓÖÛÒð~,(°¼9øÚ–%–‚w\}5ëoáÆŽëÓÞ„~ýqªõwCâW­¿Å<¾$ºº³ê­ô[[žrâbQ$I›ßK‰"Ê$ëÙlYB·?Dc3†#€Ê•8FQw–œ‹Ôù;- ¶˳FžžŸè8~?mPå)(›z#C9Øé“ODoí ƒ»ßÐ…†fälÔȾíŸ]Äokë'«dùèßgPòwáUlx$À.7uá.Du?Їé5CéÚžN[ãsh‹ž¾ÀÙ~¡þ¸b”SR”6¦Øñ°sçfÊW§ÃÊ¥»ò>VТÄrn”ƒmô“ôŸMDÀïÕR¢”ô“SE*îUJ°¤U¦DhMG2´8µdx «d ú‰ åÆT2|}"… êZ© ªD©æÊÆ4jÚÀÆF´¢GFt³Ø(þz©%Ò`™SâçÄ;}M.÷ϵ•{F6Xb=Ä~ã"M–i±~á=Ê©Ÿ4?çIþTµèOÅff*·Ö0/oYw<íŠr Û"JÊAÛqІæ2RJ˜lRØ øì†JñÇ—¦tò-¹4Æk²±¯NJFeµÆÁËf?;¦L°Õ,€Aéúð{Ó!QôQ|ŽZ=ün÷Æ*rxÄ`„½…¼é…¿•}ðQÈ%±ÓŸúÈìÔ«Cö„>8‹<ß)HŒ£ðû«ÐL Cõõ’껬†D X1Ò¢>ñi6)~…»_è »¥î ¯œ ¤ðºÿÔ—í]×v﨓¹ºŠÇaHˆ•V ¢‘ÛV‘M`ŠùI)w^£['+a 4.¥¤K¬Äóy–{ØSr2 Y‹ÖK<ާ’üt³Œ\/¢þ–$³wõC@xdù†pNpvŒÉïzËc‚¯Â™¨qÌL¨QdräË °Öä.]h¡E'[¼Îê÷±iÇ×ZUY!¶Èh¼°#ÔŸÀ#üÓÃN:”ÝíÒî–h=O¢õ—òûðì p›Ø€¤Ô½Ð5„ªÇÇÖøU±%°?A÷ª* “˜:væåìw\HKF7ÍRx§aç_¸S ¼zÇZteº&i²‰˜«ÐéƒQ{“ÚB¹”ä)´Ñ‚bÀ½£îS¥©ñwS¨dëÉÞrÿ†ˆÙØ›2_a’íð©ýéÏÞyûÃ!«*ß"ž¡îJK(#· -=9IŸ–« Ù ïá¿Äv}f)¹¾-[ر7ÉÛÊÂç™—;¡³HÑ|j­Ãvo¢ƒþðà‘%–pNaƒûKáÞyð µêÞ|¼1šüéÇe6<ƒ~ÙPˆ.ÃÐ_´h–ÄÆÑy $v e÷×è(m“>âs˜x4Š<þm¦ÏSÎ2“òiQ\Ìhòµ×} ZWeÊzÊ^CO¿wOêè'Åc³¬(^¿ùP´æ“MäªÙ@RÍüÌyŸý¹?HJ(ª™ ~òÙ¼¦«“Ûe…q”¶•¹3Í8’IcSvþ­†ô± )rPò'óÃ0Ì•7­ƒÙ…¯‘ Ü)fç<ˆ‰ß¿M¼gEU1ªè‹æ×:®o½ú ç5†.ö³F#TÏ^íXß ¿ª¾‘Úúxü/t7ýš+@vT€>¿§V9BsÒãH6±MH‰Zdgƒ?H™n»Ì—AÅÙ`„t€9Hyw,#bépÐ;Éw•o†‡ƒòÔ:¾©áî9ó4¾]Ø›ë¨×>€¶W2[A©š£ƒ'À„½²á‰³‡ã<¤ÊLM…¬n]šcš‹4%Rõ]¿â{”ÈúIãû–X½ùጭœSËF{6N®G´äZ$‘Ë&È$™£ëb‰\m=ÅO&ê‘:rݺV»ô³Ö¹:‚­\Ký­|Ø6™< üìü#ŠȶN}®ÝßÖÕÌÆ®MC¹¯¤ì@U~ú·†Ÿ>MG"PŽdÉ$z@K¢[%µtWte”Hô/åÝ™Z•ëH4CB’¼òýló : Õ¾Býò.Õ°Tïvb©a),5™X*S[#Ë% e¾}YSDå'iÿ*âû£ÐXõvtUojgò @æe“j©‚µ*Á^x9M«×½¬°P{{ÉÒ—;JŒÑ/ëí%¸¶(ö Ä&ÔOC³ÆVeSô“‘˜ÔÑφaŒ”䬃•3pÏļá–c|áÇc„®¬Pè-Lïâ °£û%õ “p õ;q¯U¸‡ÝsT= ){Ã3ÒúãÞ[wšØiî*¾×xÄd>Ëε¸… ÀþÕ(ýµrЖØp³w|$aaãÕÚÂo`h6y‰z_æÞ»°Và+c¥‚QÒ$;+«±'ì8Ôä¾ÒYCk·”­Ä,²iáñIvZWO}ƨJÚ°¡}¤¸2½}D½ÿñbšû/*çÃ¥–¥G(N^ÅÒ#¤à~õávµ×ƒùvÔË.{I^›º"ÏUµÙ’LR¼F?ûRÙ"ZÒmM’”ßÖRŽÙN…úóaÄGÎrÙ„ú|øËçaí’2ïn ÷ãÓãCš?¼@xò{~à {@¤ çsCØ Ò_kò—±ÃU™'å*Y”Gc¥!W©Pÿ r݉J‚œc ?1.ºsñß0üEI|Þ#Å([wÅ×áÈDÞMŠã ¥Õ±ñ†*Ýn#Ž±ß¿ -èÝsh'•ý¢º Ï„¿Y1¿Ê[}Y²^®BùÒúYl}DÚç?°šZ!)Z—°®/tȦçÕsÇãÏÏ{Œ ;-ÖëNòúÏý)Lòi•ÞÅ+¨5ðØŽÀ¿ Þ”^ÆÏE¾:Ñ?ÚÇÿö~¾c·ß{NÙ/{Ø7ÖfØ-_{8EìéYRªôŸçÒè?Ï)ú4°TÓ€t# -ÐÓÑÜLwZ{gÇ#Úm¹Ü_èí`yJIœÊ ÙyÏ㎻zü]‡N ¿ï¹ôð¨6QxÑPº ¤´ŸøL[<ˆñÅn ¶ð@f‘+>×.&éĶ‹‡¹(®ž…ÇZÍ ±;At~I8§„ßÕ8>b~CØ’á¶Æéó‹s­qËËâÁ¤ÎÍãxPŸ'þGº•'v_ƒ±‹‚³Ï‡ù•Ì~ŒBZkÉìGàÏè¡À¢.âV ¸xâÀÓxÑT*VX„å= Ÿ˜r×ÁSÙ„·Ì5â$SÍÒ#K âð u½ƒ¥Pc2û!k°e´½ô$†¬V>Ä÷Žyh?zØbˆ¯7ðÑXšD:\JÜ¥ñ{3yâ+Þ ZTGçU[#_g½†ÿà²ÇLtˆMÌ,¬·X£ÛBgEê^6$C=‚mUÂ[å&X¾¶v{géfjoòË„Xj-qï«{ª}Ǻãm†æ1\ uÝÝ@×…YÂ[ÛcÓ£<†PÂRJ)7¢Çpm'ÝhQv¼øåã‘ɰuj„«.>€”G/2-º‰ ÷)q®;ècSþ‡†•;àÛîà }bóЦÆ]&3^™‰ýÍç‹ë»v¨ÚÎK7T±­±[l… â,èŽ×˱G,ØÒO>ö핺–~GÑŸ­~$i@¼Õ¾(;àc¯à:2m%‘f§»­®•œá¶Èù¹PòŠ•–°6ÛŠ0Û‹= çË3‹·ZhxúÑz•]ƒ•™ÕºvsÚ9‰vá­ÕUÍã‰ÆÄÃ#«íu}ÅiÖø8»{ÓÂîïDY5-’°ôÍÖÂÍ‘“Vá/âÆ“xª#Þ`‹Ûâ˜ôÌü®yŸx™¥ðýÃûÜm7…g›Ô€·¾dö*N0xÖíû‡ÙÀ ±›íU± 6j¥2‘f¾ÚÌ Íj^ÖÝ@áªÔ2t8/v™=Áu…¸< ËáÀPFÍ”ÎÍëzÐ ¦Ël+¦»ÌËV f©­ßËöÜX—q6NØOî&•^çCíaô±œáØÜ+åx™£jD‹«fô’äÂ~b6­Xí…¨-Ÿõ´,Dg&jF/6,ròõìÃBÊÿ¨y‹Ö†è溮„j™m¹¥§‚f*=ßW,==l€G =F‚Vþ§ôˆ[¼°j²×îé¢!9:·èòuÔ§|N¢î²_d”Ë’’ÍŽ}ÌJî#ˆ(ýM]/ŠäãEçgKØ¥&f‹1Sãéiûû–ÅëaC[ÓôWabÚî RwkD‡«&æ“vü×býïþØIýíTÿ–òx»E›+ºY쉣ŸT‡sé‘dÒ  ÷3DŠš÷jݤáæ8Åx‹–»Å¶…}ƒ§õ…}r¥ýzÌa> ž=Vø¾Ø S"|9FQý#ŽH&\—°å®².îß\BÉ ªc×;bUöæ'­«MX Πò€6:v‰-üŸ™+äõ½Å #£ÌßRGl]­²dãØ(Þln`5 ÷ ~ à]ù‚zþ˜Osxj“¤W ÀÊãUF6'+BŸF÷ˆÓl 3Í?Ýb*ÜãþiQºÖ<Ááò’´T&BgÀÊ-޵ˆÛ„g?ú³ðl›y»¿,î3 Ïn3o/Kf¢¾Ødh-¬t¾ì$Ÿ-öÏñ]ɲJM ÷¸<“ÿUžÇEôÙƒäóýqÝNŽn{ɉ¶üò°êcÒ´åñßþþLéý¥òûpöj~=º¨òQå²4º˜XÝãñêLN(?r6`‘£æpnõºïŽ;sE«”K¶š²”+?Ѿò&Ž¡pÇ"®;Ý3þ?ÚÞ¾©*{O“´}@Ê BZ«D­¶*Ú:S´e)e+IC°´…ebGÔD@Û¦QÂ#ȸŒ:_‘Ñ™qFGœqh©P@DÀ­È"î·EKÙšÿ9çÞ÷²´ óýþþú MÞ½ï.çž{î9çžEj¼•;”[\¸X䞣8ðW¥„çZ—Òí»;õyëõ æ?:=-–³$^¡&šN7÷«2–F:ÎÞѰß{Áu"U‰´bº²IÒ‚‹£¶G¤§d'ç땎{³ì¶·ÊOlŒäÑ—ßoŒ\@_ÞN_Ù1Ó—?lŒ¤Ó—'7*ƒ-"àË8hÔ´»8>€£?#šŠ¯Qz÷ó¨ðßx ÿ‰dT žž&Ÿmî"9ð¡u/¥d{ás;|î†O>+àCô!. "Ò(à(½\j«€IW5F.ñÔÙE?£ü*«û0Häü1ݯ£˜­Ÿ2A²w7éaË‘‚¹Q_°×þQ£Qùˆu@Q‡2ÁâÈûh¢û«š3܉ö€|X”*“[¹Ý¨ì×Sšä5o¾£|€Z¦ÀÚ:!ªü¹DW?JG#ô›ÐgZï‹þª®=|ã\)6NZ·ºqÎã¾'ê=ÍŒŸáá0ì/ÂΆ ‹±ÅÞêëϲþhÐÕ €R#y”&Éa£|PMmîO­«®©¥aN2Êk¦IŠßƒÔƇj(žq2¯1YRî0)UånøÑ()^¨k8?jP¬Ÿ›ß ȺÐõ†c“×pða P‡RßX+愦«€’+3MMW…ÐC2ü?D·alÛ(CåuÜB*Å †Ë>ƒR®ÿnÀ˜ïtÑ•3,×QB"ÿðÐl2ç¶ÚÛä0æ‚ßÖÎ? Å:AýjõU]*ÔG&B½™ ¾úOu®ÛŸÕfïQo‹.7‡Rºï#íÉu;œ6?ªjT²ú²»A ³Å>Ñ"7×@Eöó§(¶7µ œ½µ íˆÑ2Žlîrì‘F<%`!̇€ˆÄ¯Ô™ò~0Yt8hì‘òÞƒ³¡RÙ"¯y+l¹ω7†wÄQåpLÞÁߣ²M^Ó*X.繸œ]àÕpGhº9r Hæ¿V&Jp6ËkÆ{×ÒÙž?ðàã|&-ØÇt)ï-yÍ'aaŒh %F4º26‡&J¡‰¨@Î ÕáqfnmÊ#•‰@ETX.z8.òÔ†“Zò n€σsýXFV0ÚK¥Æ‹‘ îö›+ÃŽ”J¼=Í=ª`¿Z0…ó©mã„jªÜ'c–iÁwC.64¤6ro6Õùô‰CGï<vücíj€˜2ºíxø“˜ú¿@™"¹J[|LhÌ”4Q¯8ësc¯øß":î:N…ìèìJêÚÎj'œl.ºÝ%¨q‡({|Yb«ÜtTÝ*ý•ÍìÀ_¼×g±—Y|Bõ½¦}èâîÓ"\•r›døJ^³IÃ!e ¥1Д ¡q&¦‹ÍwòhöËþ5¢·E™ +_!).‹rˆ÷H†ä,&¡_I¡_™kT³`í¿¾éío¿;½5^ƒ;ÿ/«côv31T;ا=ÄÅù¾âîš|ÂáA»0{»¼òüÞ/Ë~¬1 “ö*ÇÞÍ‚a×HöcÊ“ÿ| :€#™€³ 5šBR¨Ñ\W‚ªyeS î¢wä5ïW:XŲ°·ûM\eìüâUOŠÒÝtYÐMkĈº2ÃIåM"èУY9¢êèT"™0œÐ<åä5›C¤Ð°.¾C ^]ÆÉRPuµg &ÆçOWžVØÒ@­6…M¥@)Eͯ­^¯qºÙ25c€% “ƒ{›Ò¢p8Dô # • vÖ°A¡àãß|hTup³Ú8•,o‹î-Ô}°¥É×uŽèú± gîz±MëtÄ\x åÿ}\0öĶU±cCéÍ/WQ”¦Ã¨_µß#5^ÃãJƒÇÀúÃÄàaÌü‚ëЖ8Ÿ½b>®¤ùl¦¶‚‡_Øï"׺IÉ  ͸Å4×cñª×…Ç¥8\ö:´À¸ãŸóL5Ȳk«]ÝË7óÌ5<Ý€ sijgÅçm§MVŒ ¤Z"‚+h#x4îz•nö%¦]6.,µ·6Žn3R8%’¯Ì0*¤¯nvÊJWH¯&½ŠsˆÃãþÍ ž|4=_\Oñë£Þ?°‘'iÿž58Þö>òÛ>Où÷BM_¦mª}ÙÉö}«n”4.á&ä‘ÚÜõz&½—pÓ#2Ιì황:Gá´t2%Beæ„ qÄo£ò¢\ªt²Û¾ý±mé$¥A)Âåît—[¾¿UGIš^jî½ÔBË$yÞ#†oOQ¢Ë¥åŽ”eæeå)}…ÿHçb$_¼Ú» Êò™^Ǻ|¦~ÙÌ”eý²rC ÅXáÿ,R¥Öœ 5yþ€™z^}¶m¼ ÌËg¦ãËiðòò™©Ë ÂLã2hŠ–Í4ŸËà±#mYyz Eªð¿Îã”ׯ¡á¬¶Õd³µŽöæ²GTe@ŸÍ0³-)ÙÁßÔVþWý\ÑÊóV©ÿU)‡ŸuÇgž&‰ŒÀ5‡Q)ÅØq.·§iŽr»©\^³Ñ°Ù~(­éÎéxß´MÙdãò‘}“ó͸žÛe={F¿»Ã¾øzЈỼ¼¹;^¢yЬÄ%±Ù²[«ûgX­|^Ó¦å ÐðÑZ„øxá]*>b’£ƒù64«ÉްÅÖáÞ˜ù°Øx‘èlA*#¯|‹ŸT9äÔhQn3ÁájØÜ*¯D¾YÙ#¯ù¨`·Òv숡AŒ.ì^*Ýõ¡wžÞÑ÷ÔÌZ~º[,C‘Ù ;¼ 9¯U^Ó^é4´y¡ZS4óyäü¦b|³½õÎJÅ-åµv*¡ŒÛ-Å8Ì÷pWPJÆ(\øÏh“?ðPBÌ&S«yÄ ‹ýì‹‚õq? <Ø„MÍŠÜ*€e#`å=sÁà¼l·¦"P…ÉãPÆ‘u™ƒS©h&¾Jæ22ƒûè·T5½ÈùrÊè…ËIa.щE™i„Ÿ'D«_¾°;ù¢SåWÔ•-¦Á6=ç Uåa͉¬é6\ “¡]^ÓãÞÛ…Út“1±÷N. ’ám¥Îhè6S¨áß„ ´ÕUÉ °i7´hÉûÀ¼¼›´\˜çœqööÐDkê¶m.ñ¸À¤<‹[âØÕ_éš:è«ó†ðÔRr°¥ƒy"78µý†:h|"¿…kºÄ ·‡+íBcú6#—¤Œ2û‘†µu¨×H4F©­ë£?.Ošù‚ ¨IIM(—”·¡©ÏßîP·ž€Ç îö#ÎZ-Ë—«â”; ;sÓÏqAÜ&Ck‚T&^²­€ïÍ€aÀŠlƒ…ð(ÇCMæ¼(»”׫‡`CrÒ –÷E9“Î7ÒïrùÛ!¡óªRb¹ó知ëú8ÿZˆÞüûöÄüîF"?`?Ÿú šú¡Ôs8ÀÓƒ»›j*nÜu°&ò‰›ØC¿!{}z«‚"j 2îB,t›ó>›®;´y'Ì:îì•áIÌ70Úï&ŒVvҌƩmƒ£Uq˜HiÃí¼{a?]¯÷—ÂŒ-õ)Že€ ìšOÓ5}¸ÏJV²³×õãö¥‡$õ¤q©çL³ cib«ÃÑ⸂kåõm¯uôÐlt¢læNö›sÓtç½LýYàHXaÃTôlJ¦=ÆÆÚ–œü…0F­s˜ä5;œ•ìwŸ¤ë"–%'ýõ:‡?áU{$•½Ä­¡•#7cçsŸT’&Å)–׿éôJ8Øõ4ŽJÖÇ PØ0Ì&æqÆä²{Óu^#TfC¡®ªd¯ÁCfQ éj oäÂQÆ~7Cp">ñ̳± Ï¢r[>~󙤚Û=(¢àýŒGnžH•è®f[¬Ò•Z±É¨»cƨ e¯QMî•U©x$Ê\GyÑ*ݬßk]`6ûÕ¨éj­7tÙ,ž®,¶´ì>¶­¡2Xd¥A§f“q“8Í\öo+â±}³¿µÖDuMh¡¥.4_ Í7…æ›Có­<ÛÍD‹ÐŒ}ûiÆì›ñ^ß·YçX öÚw4= B>‰v¹Êwòš Pegh°å+o%J¾è¬Há/>gxËNùPóZÔª'ÜhÜ¢“VhÖ¾4 ¶Ý P•%.«±ªtYeR+» †¿lÀWÂF”Ú-Cæ: µ¹1ÕP*-ÌDU‰YqbµcUzú{ÎÓ/áÄS÷£íÏj„¬Ä;*¸Ÿ&ÆoæP˜¡••ÒËî=aö/Ð@)_•Kéh=)-ýí}úccîY¬Ó5¥®Ã?©zSÙÒz<}éÇäÄj ÏÕšžlx§»å£M[×Î7pÈìQã`i­"ãã ;l¾‚({ô"ç#Å•€ò]8®÷åŽQÛñ"θȎDéÔRuÍÕ ¹fØúµHó?vÜ~¤Ñ…¬šHòúâQ6¢CêC£~L(ÉŠo÷°èÆ„2£?hqñ?=ì³ø¢Õ4›‚{–j±vè­C&—›28¢Iˆ*¼[+½³±6†Àg¯ü\dõÍî"œÝù8»,%C›“ek“‰\á Z‚Ѧ"´A}?Î.M^_hŽ ÁɤÉà«„c7(…h!¦?vÀ~´I¯0´ÚÛvºØ9ÅM5Iãå+¢ðàî.¥¨Þ€éé_£¤‚º„›pàãÀ/ÀŸ›0ð›–ÄCØ 9gÃÈ7ÒuÿYGÍÇk?Ö¨Wz`Ô›`ÔïÐ.{“bû½Zàuê|(£Œ¦ûgkŧA–ELCK;fn\FežüW ô zõ zõ zÅÏãÉÅ1i'ÌÞMlV'böÀË8“âA0“š |…&wŠ«!}È`ØaßÒðnúü´ìïp°GZ8:a«ëAÈ^øtgkÊúë°Æq5öÏ5ßisþ»ùþ½éŒó-þ‰óÝ+æ»§¥cëû;¶ÇÍûÉ g˜÷žìßøÌÅÕ!>aàäÜÊ‘‚ÝЗ¼â/ä˦;Ó§àLÊ;YÎÇ£Q§ÇK@aß.oðöÀO“¼¡þÄ^ä"é{~zì{î­é@k`£4)öÔW»¾ëÀÖ­êoü å§DYwrþö/#-X]ýýƼ¼7ÃFWÞwÀ_É,¤õ’7˜Pø/>ð;½øQ’‰ß«»”2:€”¥’Í\‡·…–î終hÊÍ«¹iîjM¡”kBLÏÂw|ßu|W·} j‘%ñ“Ó§ˆœþ½A%§\ÿr„Gùˆùáèd+&Qy<Ø=ÀæògEHkÝPlj¿ÇÛŠ÷MµGiuO+²sÛò¶À^… Ð2EuC%Á>y •’ýòŠ?q†.+l) lÖl¬«ä =H1 j®¼¡?À)¿Bð5qlßx[ážoè„f ÷wìï`í§i$…€E0˜¢=­ÛtRG{öͰ•|t°ëԻѢ݂=C?9ý~R[ ÉJˆ%6=Ù[Iú€yåmQòA…GNØRQ ³®†¾ éb܆ÎýY6‡÷1¤TÆORùU#ßc i¡&Ý£tÇ’¨Ró­›Õ|ë&‘o/ó=³Õ³qî Xbÿ$Åh{6Å?־ŗîݵ"Åx°iW7êÊ$Ò¿á!¶ºØŸá×>#иöî½/4~>Ò«IðU’c8ŠK݃ÎlZê¶>¶í¿N\i8]¤ÞQÓàYÑY§%=òNÅ…Ý[ àÏa;ba˜Ù¢¾sxó£Š)þ˯ՀâðDã¯*úÐ .r.|ú¢ð#2Öoßÿƒ·ÓÅFµ¥s‡4;ú¬Ûüý„!RV››Ýˆ[šlŒ»íoÊ+Ñ |pÇ¥µ]oê/ø ؽYý#Wá6áEâŠ6@Ñ0Ü/ƒI¨•(Yè"h6¼i«É¤¼… .3é#c•ްïh4*;"_ዟ+Ç €V6^O6æC{£òVÄUÌ‚´šô*i5éi?âÍØö]òŠI\ìÊUíe%îÆî[y¸1ù$yʬ.—ÑIbÏqêFvétU ºä(ÌÛ ÿè}ç¼}ç$ô³êVM âyRÜŽzû[kºæ˜ZKZHöÅéx kAèo înš†(Ò×HñÂ[y½eÈá2KJärt¢¢<°ß‘=õóBDàF‘ @í6@û[gÔ}_P¯¹äÞ(ákb?­©æŒA¨Ÿ¾Y#ÏTËEV£J€à<ÞÞê;—»Ó¡øç7 ÁC­?ú[‰¼bµQ§í³Ë+5ò$§Üª®¿× ¯uÞo¤DУì_Ë+géà̲WNÃïGÑ æñc=Ê€Øw‹*›|W£»/“d.Ã9¶üù%Jš}ŸØ*KØ„y²uNj1¥/îU€ªHn^o ;Ïæµu@ ¶ñ(hécÈ,d,žyˆgÇ>D-ÓœÌ+ï)myïp}G»QOt:nlk. ´í;¾ìÄèœÁ[Y®ó?D‡RùdA#äæbÞ}®ƒ½ó‰[¦Ñê.–êÝb\ª^kç@¨M»ÿ:åh^„ÛC «h¹¼ÒíÝU=öæ_èêÎÁ>™$nÐåæ÷õœéq-ßT'Œ©oLJ¦(o£'V–ò­¼æh0ÚP‚NÛÞî¿X¸c'í­þ|ŒW~ÞëéüZ<õF*ŸôÏÐßù%c½žôä¤Ùï`ö D¸1"W: ¿©d/‡ÿÅÍilÁÝró9€Ìè!¯\ÂÕ”E€‘…yÇ•A! Þcç ˆ– ùòzsë'RdžÞýèÁ3ìÅn£¿?ÿåЇ‘Ç0*°|¶ÃÎÐ Ê \¬eåyÍFyÍ׆M†ï¯ÆZ¡ÒS8&{GÃd~cC–…IX·)p*Ì&Õ‡E^6 ÎJŠ":ªÚåEÈ(^´kÌS†Èkàa#ÅÉôÖniYZÄ‚Âdê¼P$ûµ4‡Ò®]0¾hÃÕù§èvTÞ ìqу›…r°?>#¡Ò-Ÿ$:ZšÆÄÆ Æ›þ8œü:ç£í©ÞB‡§’ ù³DÈtXtô.›>Çi]+¯,ü\acÞbx êuÞG3²ÙE¯âL eáNGÞJ{Î]ÉÞø—@•†Ù OVŒs„ŠÞ'_ØxÌf&êš°M3o3÷¬IºÅbJERY)`š B]]äÀ—æÀMŽï`ÆØ¯r GD8gØL›päMI¤Ê;¹}ÚvN–š\wÞõ¾ÍçAÔvJ¬¨¬×=Þ™tOÞ»^Uµãn‡‡½´Nå=!\ýâÔÒVåfì5äT)¾]^ù4_?‹K‰â&É a}½qXëA d³n½è7˜Ò‘µŒ Æ­Â+m?LOŠ´÷Ý hz¡¸ˆ>°´‡ßD¯Ç?K7ÓUôŽ>®¢•ïœlùĸäS¹ÿ‡ý;ºÞYVC¨„ü«¡{‚ý¸¼âfÎ]æT× @’}“ð}ˆ·R¹)vd¼ Ǿ8Çx0ºï¼ ¼f§™©[_Nײa§Öa©ÛÞ}•HNmj‰…¢ZáBz øòòÚ­Š)<­5{\ '6¿Å/µ—ùJ×rÄMÀk¹þ­›‘¡ö·d†ö ïÛw5¼\Q,{3LC£\ª”jE~i<ÌØÆù¥‚½Þ'àeŸ)pPn=ˆÚÏüȈåSmù6¹?!ŽZ–B‚1¼€Úf¸ ÙQx;G~¸Õ°…v¼Yñ^iHŠ«\ïÀlH;Zœ`ðs’é m|¿ò5ü¢®Uјï ì*Ø‹øUÈ*Ç-ÓÙp«».†[ùh2˜¿ô8áIhɈaQ#9\Á©’°ÄÉ JU¾vlŸ¤Þ5[Ü»>ÁúƒÅ Öù~a€‘éfý_&†=Ñ, CÒ@lžM1„w}‚V?»i‘Õ—Wä·±Y˜@ È<÷åõýÇâM&žü­ÇD`wàc9Ø%?¼fòÃg]Õo•Ó_H€V]­FŸÞ°³«Uï“vuv¢î¾«5Å—ÚÚ ƒ]€O'ŸN,>5 >møåø´ð©6 ê˜Ålp¤ÊÁ°@a†D²ÕM3/T< "ã&Š5Z¿4‡Š‡Vô¤h‡¼f—aÏ®OìÊ+ºxؽB#Gšo¤òs{¼‚¾Lu“j3Äb"„{Œ>©öOpò[[¬ÙÞ—°™aëRu6wS*/xž)GØj:»lÁ–§W|²Ã»îRŒ¢´g™s 'áßFÊ:‰#¥÷‰ë«0ú »îz•”Ðõ†©M Šä*ػ܈ä>½¾d’«žn‘ÝgOü#Æ‚Z„˜gj«þù%M%€\~SçÏAÞÃ; ËriÉñþ¾‹—Ïð]ϲ—Ï‘ï}*,9>G¾ÍF—tæ,ùøúHÚU[#®Ú '@ë—iÍiŽz¤†¬À×’ò²ã¯Èðõƒ–UEQà+Ù=™›É¥ yÎà6ß‹—C—jö“–ÉX°<¥´8K}¦â9>©¸¿ÏXœáܽx~5b&JÆ:Üx+®Ã=´x¶‡aDkí¤Œ¸ª¹²©m5½±ð:¤ÍÓ’ßèˆ-vì¸óH¬+~}Þ õÙ ëóû1ê&Î⺳˚FðîT«B9Ù …§êôN8u­‰-’Ù÷±ÛÁ®†¿ °ä“ë•#K6¢ÚlÙÐ2.¿˜‚-‹§÷ú<­_J6)p2­áÒuÏýío;öiëWzeã¯ZN„§œ0tpy§ýèL³]oÌY–V6Ùÿ …­ƒn&•àmvyËk%hoÀñÈó›Óp3YœìŦëòŽ” õ‚¿¦¨Uë47B5zU`K4ØåQŽ7]öϨ ýŠmËå%Ç/ˆ¹'ðé⢇njJƒ¼¶uÚÄŠ`×âªÕ°qç=zØ\UÒ‰qæg×!³X°·’ÎY,F±‚bÔ’~ºÅðxàƒa#P˜°±8Â?¾@@¥[|“¿_¦‹t°`S Å;b¢ëÍ/.Ävˆy6'qÕœ©/¥U2bäRù¡I;âtÖòþ0Sùþ´;2xD%Ø= 4Ó—¹ùßôeŒÿ†@TÏ…äàq¼­x ¶ŽGsB«bàG£Qÿ…Ôà«Ý’×tQš—쎗EؽˆŽ‘›_Òñ¸ó7uù2¬¸äxÔWÛqbë§i/ ö6¥NKt 5òI¾€ KÊ;Ê[ï|…n¹—9¢b¯"4ÊGv`mŒeƒgEE)ÊGn4Yò)À¡û®›o'm>ý,çdc€£¶kµE@DBÑ5„¢™“°&ü²’Iwª9û­*~¿Y®ÇývöÛåתH€÷ҘϢÑëï;î{Úq·ÌŒ³§gÀ|>yǵ­"›™Œdå•÷Óz Í’×êq«m’tN§5äóÍö¹¶Ù¦00mŸÉk[–/™ÓfÍ¦íÆˆ@#ÝK}™´-þ[à´ÞoÅiýÒ¸üª<°lsژȠÀi£PàKy¹å?ôx(>.ÃI0Ê^Ãw$en'[õ§¸YÃw¤ /·¶¬NïÔëÅRp˜,ŠyîÓ¾Ñ;ªØ]ÏÅÀ{¥V€Ëå`Ͻ .ݬ.˜Þ " ñyñ)k-¿÷±Vkvq“ïŠâF߸âžEq tã0,ù@·Ì…ÀŒœ€ÀøXg]ü·Èõ tý/îE­jm̤äc šÑ«_"ËØëæž¡•7b=Ö ®Y%{áïïÄO€Äùϸ³xÄÕUïÃÁaÿ·×Ï… ›†×0r}èƒýÙMNïL\+VuºJç€(§žoÿ5¶LFß0Ð{Œ… ®ßß«išSåáôìå–ÑKN¬òK„MºÈèpiн­‘Ç×-²ùåð_QFµojL-±·5RºóŽ¢†eC›+W•-ßyé®eCÃåx/e.+µ¿Ùð׺…<%ÂÏ#B†¹Óƒîiu›4{ؾö¯WÛ¿·ý,6M(§yz{6nsúµ½ óÌ~>a“6Í_õ¿ÛŸm<ûþâ–ù †ÊÎ{ë/_^¿üzc`rL•ìÑçhÖ0UÌÿöÇÞ»0y}Íq³˜Øwuœ±Y c>”Nï*¨Â*_¥ä†Xê ë<¸þ‰F"ùÜŒP‘žPAf£"›]Ã[s0¯‹ß‡øÉÖÿª¹8gýJ–_åªZ6Õ6¯Fý55G^ö)l,(kÞŠ}f%“v¨ÆÚ‰ ÃuÑàÞÆüpþõx£QUɾ}JÝ/èjÔü.…$žý7.Ê ǔӀ\€ôÞ(|£ì•Ä÷ž ÷lðH‡Cµw—¡ŽÆZ†i ÊiœäCÍ"2‘«–‡yà¹ü«V_Âæ,ð_;eÑØ?p=UN6:±ÿ,êÿ™¿jã†ÓÐ;1áôrw´g˲¶ÁÐ˹µA¢1>™CHhìm¼€`ž¤Æ`bƒ—Ãû€`Ð|ñ¿=eQA –Jlf5c¦fàÅ¡±¦«¹‰‘üÀ·(ݾ~ùl¾Þð _kª…ÿ@ Y"&%SûUÉ.sêdÅ¡Ž% ujªUä9³~êY"ÀK®Š3þ6‘/]p+7ß5<È€èѤ‚½¨s“×^'¯}·àùeKÕ³p.ï.x§ *o¤= ŒˆÿýºÚjÇ$¯1{(Þk˜ØÈ—ÅvIÜ}ç¥ëãÒÙ•‰ãâm‚[í ÁàFSD 5>ù¤‚ÝØÝò¡;—~Bš½âGÊÛ­Ù­L*h‡âÎÄ€í8¾c;'9О]ó2tçJR<"7]™O†àF Øó{ŸÖ®s} ,f ÀðsV%­wîqzO :»²óåIËú–n£M.î×d4z"z#êVøs›\šôÔX:Ö¾³a ]âJmÛµwG3gªÁb}©á²˜V+óí‘ ~-ã¿` =súzæ-†Š­mK÷Ö;žÂ)>ÿQêA‹àß²ôcôðX”:)°µ§¯½É’QÝÇ+4å¥ÔöxÞÆª]Ýx¥ùÏ?ÆîSÉ]ËåöT±ÈŸÀ|· ¾±  3^éVé)z×ÓØ(¹ÔZ”yíø)Ì€ùNF}`³s[>5ê;–G'ÏfýDû‘†Íhœ±‰{¦ñÑm§ÑœÆ]õ(ác•ˆÓT[-œËzÝ›Tïœ,Ù›“^è‰Öl¯T˜êŒ3T',dŸ_& 9ü*V]•L>‹bbÎéA¢Zl5IÙåníÔ{ Z”“GŸã®¿ÓøÂ–ànù¾×¸1•i¹©D9x~—Ø7Ê àFA¢Ñdœ«¢Íóô¥ŸÜü´qÒ—™²ËJ"uKŽ—Þ‘ºäxÙ]–%Ççâ·ywX3ꎅKŽ^pçòE)KN`XãÖ85NŒºÃ½äÄèNy-T9f¹)¼p»5»åccIÓ#ø:()£0(0|á½háv±Ÿ¢ãÑ¥a¾¡°ÖÁ.ÿÍçg³1{L¤ÕKŠ‹úûÒavwüÙlßxçÆ’È¿Twûþ¸äxÿI¨›“ø]×øÄh °ÊÎVf |"/Ð ‹8(/s¦,_‚ß—¥ôÊ×òl•°LW-tòÑB§Dµi-"î۰ض²Á*8ŒwÔEQXîbÒûlåð) ÝbϾÊ3r5’?®i²(î~}g4ó%?ľٗi:y—¼da4Ãß8baBj)Ømßì’ﻞQè"Di ÅMòý_ÀÏb*p= æ½—Šëäæøür¿@4EnnÕ©ÚC¿¹-"‹3ðl-îç3çøûÛÑ9ÒÁŸ§¥8Ãg.îïC=Unp«\¬µà› Ï3±ö%Å~ô0/ièŸÒßeAÖ",ŸÚ? ˜æ êç7Àîæ,þDRÊà'šl·é#S°ßHœÍ’}JŸ5<=%p|êæUÓ› Ë"#qó–E²Â î©w ¤2hÌÁ†íð¯aì8;ڞ݋ÝìõC©Zª™õL1èTྃéaGŽßQV”´‚»ÕãE¾ï?Âý…à½Ü(#¬q]֨­ã ¾0…@=YØCyi–ŽÃ:=…Ã:ƒµdÿPnþ†Cz@ZˆâÛ¹:9Ø¡oûnƒ§²ýÃ;½±Ÿ/iÂÕÁ.u„¾œåã/ç@ƒýüü6]¾þŒaØs³•ïHü7/Ï(ƒÈÎ f‚+0 ÐŽ+Ðù&´4q\ç(I|è+¤^|—!Ê• ¬qilð꘲^ •©÷Â9c¹õ€O^R,çøûA½º²‰ã"Þå&y™érüZƒ¤:ì4NL½cxß-—lŇ\·eLWv–i{÷/lÛ—‹} 3\6þòž‰ã­ B!BØOÈ÷NE4¨b3ž ÚR´¥ó+A[äæ#U´ã†^nOL!Ü{z6´ÏÒþˆ aÇšTWÚeÍVºÙ÷Oà±îöž>4ÛÃÞ¿\8â“âÏP;S±‰_À©çðÕŸFÆ›ýÞ¡â",OÅù%XŒü P“£’ ó||öôÖo Á¨Ò®ÆºàáUßä ¯ýà Œc86}áÀðÄ´«(Ò\‹É×ùæ©Ô¸ð@ÿ@i |œþϔݟ{_+3,7jÞæ£„Âý·-3¢.…¾e‘–t¨Tîö,ÌTx®௖Ëe¯ÝæP¾èh¨ßW>Ƹ÷^@špwx>ò1&~¾/´ÜÚÿÃÒeÖ’ ÿÑÚê6Å H|BØ;¶xf¼ú±:¼o”¢âaÇŪ!—Ò,hî‚~R¥ˆ}ÂÞ\Bœ‹Êÿ"_å`÷ù(€@·Ó.ÀsTƒ|ke½¡>ÅûX)gCmâlÏÅ¿¤èÏLU 5gpÑÐ÷+ k@a 抰?¡:Oç±^\¤F¸¾XÄlˆä:¹“ýSx gÕˆŽFˈÅÚý<„á]IÉ컞Üù›4<ÛWèÅ?Nv«Ög6)’ñQN:fwC‘¡B®&ÆÆRé`/M×éxâ_Çy½­±|Dï¥ýRˆù“âWMåü#šÐy§ŽÅ/¹HÍB1W'ØÒ=#55H˜+A¢Àz,ËRk:j,Ê$SÇÇ1“Ûy¼Hßs5¾ý¸¸ž°þ•ìo—Sžz5ÿJR<Âz}½ÞûR)ÂÚiPo ÏQL6dшÓœi¯és…‡ÏÚÔÄ„^ü²04ò–PGôjCcålÛg©|‰ENìŠJG½ž HBƒ§­2ö¶"‘H.%iÙT© ž¿É©R5dÛiÃQ¤^©ZœÞnD<@îü$?Ìî°iFær>„réàÞÄh$Eb°#Òõ¸E‚àXÉ‚ÅýÔc™ÂÎI¸âÀãð÷9¬­\ý ò¯ o¢cØ‘Bz ÿqºßhߢæûÙB8Q4VàPõ\›,·gCËX¼Ä{%¿ûèŸýéëSPí0jÃ¥Éz,¦Ù°Þy% Z `îzã1À7oE£¾tïcPqpqÝŸA晦R ä•ðj@ë†)ßI#é°rÄ'' üÊióÎÁARø9'»£4Þ1G,š†ßõ)ptøJy [.?¥Så`×+¾KÃõ¾ä7BÇ[çê∥¤ŠÑ'[6Bdæ ý«Fséáz¼$÷"<ãܺX†'s„ë00¸—8Ø• *¹Ëˆ:Æá–]T’lùŠqYŒ˜]#ˆÙSªÄì|œV%ûèÑâº' %8›á£s/GOŒg–ͪg“m¦‰TpÃYÖl2×À+5)Ò üˆ‚&¯_eÿ¹Ø ºÈa­Õ<ÖŽƒÊœìc*3¡AÙý‚§1α Ïö_ª8r•É«éÞ"¨™Eô†éjê^¡Óiñ‘D€—JàeÛoÕYkMÆÅäq²¿jFx%hšPßÁÆ^ßË`XãËz…u¹é·± I¡©¿/ê§FÚô½Ž›ŒoÈò¯A ?3¦øb,tgº ©áþ[ž"8Ït´ó°F¾á×A†IÄ’²RµýÉ©txõ pq&Và`ŽˆÌ"šy·?W¦‡ 5ûóñ\ÃŽ‹O8Çñí{\(À´r ÜwžæOfàl»Ñ¾Ã—ïdmÚá:"Û\³J/äñ¡TTu¡ ‘$ÿ0öí,B*Hö„(F(_¨"J{lM] J%[w¡@ÿ´{> í­+P£E–Cís–~¢;¢Ó-=¡+Ñéü¡ø¹v]&ÞÖäz˜oŒŽ{ܘ½gB‡ÑÌPîvöwc—‚]u03Ä1 Þ ëô›’ø™%ÒHÅMù "8!ßùªN\‡‰£ÓÍþó®S– S|™s;­!•%éCŒªÂÎÈv@ôÞrÁ-‘&„=iÒ¯ðtM>1ÞxHEÐá@Éêu•ìçˆì¾ÀõùÓUEŸér±}õE5…­q<Å×*NŒŒÙ ´mê{©š·Å¥‚U»@ÉœÁãß«Yce6r iR¥¨Žèo,0S§‹Æ¢@öI_‹ˆ¾¦ÐŒ­¤É‚”$Íx÷ƒ±›`ÆN6e⌥Ä_!füøƒ±`º\“5j<öw¥=Ž5R¸¸”ÞM»„²°É0Ižo‡²ñ`eâ’™ ž‡÷Äñ‚ß;¥F º…E9¥Á}ø[$qµVाÑ&2óѪ¬¼V³§€ñ²q)˜ßé–6wA—ÛÃŽ,¢‰M!#=ºæŸ äùBôÇÊqyØ.(v°{ü<Ž\o!E´6îG4ƒ}̤*UB¢üÆ_£Å“ßʾ¶cf­û7tüå‚û¦Át¿òmÂ/ÖŽ÷"YŒ0YNÖúª‘cO|¥Gcu€G~Aq€9üÞF-ŸB^bo'êÜ”×mhc®M©¤!„º=ì…&Áè„&è|£=låbA´û³?¬Öa¤);04änLÆúÊÑÀ&É~¤a ÙHutΉ’Äïö>ÿ‰£¯ÕOp²¡[RuwØ%pþ m@„|e6H«öë¿!ï¾Ü’N –v…p ¶¨¼_“/Üh ÿÊÄýg¯×ù$°6r¥â9UÉ~דF0BN$›½_Ä ¯·ãUnG]ˆŽ(xp¯/Wá6Óæ’_Ød ´Kv «ŸÛð2Ó€©¡J4"©¿”¡y ?zó¹%§Q9Y¯sÁù3³«aÞQSyÈŸ ÆUco¦°ÁÆò±×"ŸBrŠâàÞesñ8XàU!H4äà5êÄÎÁ=Ñ( }`b7q'0ä³é0æNW$†mÆöíÝ™õ:1¡«-›„2½áßþŒ¼8 ¶èŒtku~“²1ÖQ™ýhþ*Ö…Z¯©¶~åd¯f_žîGȬßìã~ȵÁûD ÉW]*™V… ÜñÈÃèw¥ ±MA ™T¨Oz¸èá·?¨ôp˜à5Nö· íöÊ@ÐKô§ìmâsÕ|\ ’ƒ#*%£ Á_(%3áÏl·3ºSEÑ)”èi©8)¬ÒÓ+@ÈUœ&Ú9•Þç‰dU¹ŒK2­IÁ<¹J­z™°„Hð W'§‹É§Ýã)_æ0UøÍ ,]h¤¡XE+ÔŠWmeV[T‡ï²¡÷Ó 1‘·çë‰Ò“9Þ)Þî.Âþ±Eß«pCÁóýè;b~ün"6ꔓ™?KwUêÁbœ€ãé(L…ÍdZTJ¼ºæw:ÀU˜Ý€}üFUnFÛ_w;UÅw渘ǃÃÅ:fjÁN}Àwu»9Öâ•u¾›ÝÌSþ¢È2®$®e–«p‰ÏЍ NDJ®÷˜f¬ÕÆŸµµ5M˜fu¶”މ‡g’&E! Ð$U˜…» H¾Áб{«DøXÙ°/\øµŸF‡&ß5ñ ‹¶¦)Þt&}£®åФt“¤ª¡8wî–” û’P®ÜäOSТ•ÿ6Ù7¹Ü~+¬áÃ_)®®EnÞ ÌdDåôXJÜçaÄŸ½OÅøñÄ–ˆl¿?Ä—iå6º IPò®+Cd~„ŽS§WOr µWãú°öêÖЇ5±eÔÇ•¢£^Ü %÷q0߇¥W-Áø>,‰}̤>Þ*ä}<%B–X¨ Ëù†êŽÊÍͼ̰.r;Œ¢—Í—sÎ_@…¦¡âòŠb$U²fŒoÖ¡`tæ®Öè8¿ò#¸£'«¦ŠHíŒI»¸ç_ãNd¾“²ä棪¶H*-ˆ’‹®ÔäçMûªVðüróf~§–¥L6…Œ¯-P»Á¥íN¹Û$í‰ö“Ê× /+g2†V\ ã•Ã0U*H¶B¶4š`Œß{ÛeÕV×qÜç ¤Máò Âø?'yDñ'Œ(aóµÉŒUl Gpð°ªVÕÈ Ž ãÞ&½¶ZÝ¥D_ vÛ·4öËk-?æ³KÚ”½ùc<’¬n ä’Ѐ›Ä_ z¢cý¥² ‹3‰ÃðZ&"kR™Aœ]ä\UIJq÷Lï¡2,.ÈP•µCX;€ÉÍæò4¬µÂàÃÜê‘€¯sòâ(xÈ3z Ý!%ÙÙxNd ¹ú#ÙÙh:¶'ocÁîòcß*݃цZ8>oT%;ß+¢M(y™¬ê¡À†ºÙþ‰ ô2û1T‡6ìNý¦¶D’®ùX$¬ûÚKãt‘ gš³Êã}ࣂ‘=g–tÞgà‰ÂØÌ䞥t“¶ŠTÜMÄ7uªbÈÕÁÃÈŽRú¬†‰xÂOÒ:~¹*ž[köD¤Õùñ…õ:›²P(ê|ƒ=Þ™P‡ ¿GUÝ픳jáðl—Û7Ô‹_̾T ¶Þ|nü‰¼†V>"V>!÷ï«Õp2^ýb)Û}_9÷uúòW7_@…*P{<@²}8˜u}ªzžû~éfKT“± Üd³Ú ºÖ‘­Ÿ‡U?ŠÑQÅÆ‹olÀËœI%C‰¤¨?‡M¹Op¿¬dzIÇõ?¹ô"ß³Ú–\¯óŸ¿sT9Ø^ä)èb:@¢ZÓà”ö°CäGã1yÇ`™».hPL«¶†°(‡Á·6Ðê0Ë’šç °Ô§)¿{¦f÷@õÑ*v1$Â+ÿ4yVï}]åÇí|_&òc(ùðÀYÆådÞ ŠTë5¶½“ÐÄq(³OU™0Xr{êõlïMZ²<¹ù=$èi(­ŒLÒ4@ÍÄ×|ŽŽŠ[µÔª¾kù­®“pš"¯8êd\þKIç©Oq³ IÞîùðÐÁ¤«P#lÞDàüº˜}\ÒÅ-oÐ"æ÷ÍïäEÜþ-Qš"F2½ÔåÜWS¦dJ(™¨ö\qòûPª?¿Év«ñ¯(%u,ðŠ7·œ‹´\ýEºj~™ZKÁµ|å7ê(›÷<^°1ocy¸<%p\j×ÚiPvû0lÜ©D'í˰BµŸþ¯ÿ-lxðÁ%hOQ.ž£§]iûlpÞíÜÛ—) c¡JñÚ—j†Úû³lÑÌ–+MÙyß…Úƒ×Q=©bVãÀý[qëþÙ6iGDÚÌ4}Oú ´:HäOH†¶úã…²HcŠŠct‡ƒ)* èâ!BœûÈz¿³Âv…1T¹Ùt²ZÈÑLÓèÊí0tŽØö|x ¡¶‹}²;Us5·&rå17Œz#bç±›9fâø/J dÿ®{± õ¿Ø+‹$µÝ’|öÓBqÉ´v8OPÕñ©ª#ÀûT¤n!ûêzT,ÂL.`Ñ‘´­`Q¶‘eˆ“ìÕ‘´,@ËfµQnÝYmÞ†r<‹^Ü»k8ÈÕàS©àþ‘}'û<“>gU‚>篟}ޏ·…Mâr°_xã2^ âç ž!CÌ{cŒ5ú¯èü\ǰ{ÏÉ–›ÑÌ‹_ìú»µD#/pžÕÕ¹A]ëiJœÈs¸+ÙÆrJ>qv?…D‘/%Äíb7Åô¯a¹€¤Ìó±xŠ¢5£rŠ¡¼.d¨MR§IÚã~‚|Ñ1¢¦!‰¡áݧ¾ÒDúÊÒU½YfLéõÄM"ƒ©j­á`³‘ o»Ïöt\ÿy°öVÌëÕ^¿øö€R†z››µVqñð¥X¿ì`—ÿ‘«.j(”'ð&†n9LþþÍ?KIùõ—ª„±bª¸ö6ími£ƒbæœnø ¸·Ñ„ó>– »'áã¿kßòâm£÷=þ­öx­/½Œ/Öÿ(’w=öj—y­Xû]zìTË+€mŠz=P´Š~+ªÄ¢ùáÙÞ*+Â4ð^Ý0(ZGEºXQ¡á÷E*ú™=qø4EŧkÏ?>]IøôÛµgǧ¿|гt°¹·jø´-†OVÅeâv—¦yÊày!Ë"ŽU¿$¬Âà…›ò6ÚÃ>)J–ñX…„§’ ïQÛ]ñŠUؠäÜi O½LDZ«øîÿ f=Ã,LŸTÉž;-%c–@¦e„Ly™*2 ¸ÐK¹óc˜•,Yµx$Ï8Hž9ÿÝ89ÔÚ&lÜpïÊÍ›0¿-߯_ýJ*×àÍPÌøOna5¾:m±jwb5‹MÍû(7OÃj܉â‰Xµk°šÑûú—³4i’ŽÁTž}Š«ö®½AŒÓ±rJÓu¬U@Æ‘•“N_s‹zíƒx”Ÿr(ñ[NfUÇ‚A1Åoj×aœT âb¿}بš»ËÍ7SàO7ô¾uVÜÅÒG\ƶŽA¦ÖWOM¾_ÔëB Ðp8 ûÀt!cç ƒm/!)XnþV‡jåUÿJG§19"¦TÜë›I o7ž£T™B…÷RßÈt7«úWÀvD:`ËÝÿ(Þ‡ÆDŶ\T^!¬ý³°QÞ@²C^±gƦ¼0JQѳØöÁ¤2©Â9Ø;Õë®*öþSªÅå=Jl’̓7Q kÒ-1Ž&ùÄäD…C¢Þ¨®¦ZMLF×ñ’³’=ß%lÝ­ª•(åí'bÉ…Hªt°ŸwkãõPˆˆ†÷öðfÆ—±ëvtg1VzwNFí™ñ¨jœ.ôdzM´¦6F¾Áø—¡Æ‰ÝȢحt3Ûq½¸´8ŸåB·5v³©ôu±ý„¢UJ2ý­Á ³éjÛã&ƒìJV¸:M˜ËY“Ìå„ ­¤ékKÁ­ëPró¥®CIÜ—Ñ̇¹ÿj¼­VßwÎê–…#²aÀ£Hºcƒÿ®{E¬«_ç%CIdÝ¿‡|Äu}œ9Ðv®Å"+T*¬FR°;…ï·±z …Úï‘’®«³ú#B«ç3£Q,»áEaåÔhD «Ä¦{éãø|Œ¯âµoÉûÏí4ú3•)X*% £(A`CU[tnÑYßð£ï—œõý‚}¿X‹÷¥”îxü¥Ì2(pv„¦éÈR¶†²Z;ŒÊÝØœQta´DaN}ŠXÙ÷ÆœS >*±ŒÊõƒ²Ø¨THÀ'8£p}ŸRa±oiÒ+[R(w™1t*œÐCȯSªt†]öM©y­ð¨®Vôï`WãxÇ7”;}Ÿ‚½{ª&CÁ½ÃÄ©m wÅZ‘’9¨¨dÿޘʯÇ=%lh|û@VÐGÓiÛÁÞ-”B唨~¦%ä°¶— Èms¹•Žà^ò­r¢qøj­#{'Cƒ@uÛÒÅFìÇ¡2Q=[™hưƒòÚé ZpüF`€E0ÔYôZ2chˆœ¨H=—Ñ”¬‚Æ‚xå€!ž²ï¾}†Êb‚³é—Qn½%úiæc3’m {µw>`îÄäu,³¯˜z·HöY°(Y8©añ‹²Q­†Sèá¼m ¿ý*è÷Àç›ÛKèJ=ä0µ—qj/¡ÔIøhhuæþ*ÏÐß¶Ñ_ÊOêO×»?à?ºúr€ÖU¸"ÇÉ~Ù¢F¦Õvþ àväPó„í:>‡í‹óã}ùKx¦Ä8AÞßaÑC*éG×þ“J)­+âI_UU— hRrZtšT‹;\×JfU§Ó‡½ÍŸˆO3,õJ3ü;>ùZMÿàŠå‡˜m³°ßT½S5(˜ÙR­ €°r¶M²¿£lkÐ+o·6Àž-”Q½íêj}©#ZQ4°¿Ó(qÛ03Úæ¿#ÿ¡¥ZˆÉœZƒ[_eSÐåëÕ}ð‡ œ|¹Ù¡”˜œŽJï:xÊZžD!ÌÒæVæ[ $@g¥w–ü™J¬0''ùW+³Ð–ø.e¢5æHò=áÂÞ~<Nݬ6—:;‹ÒÎVŸP=ŒÒ«y1H^›B8vG[¦w7˜ÇÊk‡ßÜ2n¬¬+h+ìÿ¶`3ôU D»“©O̪®›Ÿ'iðµ@G&v­ÚMµ¸ïᦄÀ»Ì¯Ñ\dÏòþ‰ãÚûé0Laó“ÈÅÜ l’2ßlé—è½pNÄ•(#éJgžèNq8¨|§HæxYŠ3ÿ )‹‹§v@.è¢ñh€üG·ŠÏY”ãMyÍQgu|ÈÖ4< fµ»`€¾ «<Ê×ä#ÿfâ0 ïL;úŒÿsÜ0u5µ›õºêYmgZµÛjßϸ¡DÃ9v£­ƒm [êS€>Ukˆ dRzëTÜøç¥':K÷Ùþ‡Ç’ð‹²ëÀô·rs¬F ˜a±Ù7Ây¶ÑÞ ‚o+â_^«Ã°«’º!Åþ„nˆä¶ñSq#=˜¦n$¬ìâ÷Ò8€YÇ´»žw¹DfAS:ŒXcü‘ÃhAHšƒÚC¼æñ@¹ƒu GVß=œ†ùâ‘ôÜxfHš8¿U£S.Î"²qÆås|%[ÎÙ¿R“ÞÁ«ÉåtA[W»ÌtŽà·™à«´šV &ýdª:éjõ>Oª¢P⇠۵ºxˆflÃÆO7*·;T©‘¶çû±íùfÒöT§Sú7 h‰Ç·Áx¡›Ø‡?¨ëÏã”%ÃeÊ¢Áݸç€cÞI³¿˜ð>j)ìÛÊ6x²£ ³&n³·j=?Lü½1©g@ cI²ØLñX`KP,–g„:š–&Ú+ò0èA²šnàß ÀUÀñËp¼¾¤Y°žïµ½ó1¾Ù;? ‰8Øÿ`ˆ5Á-ä­J†Ö…“½+çÍ“ÿñbÍãVæþpÉûëîï{Ó_nï” ¤<$£?²Æ?AÖ;7ðwqÎO߬Ø⫈›!=xAOܯ9 RíUƒð'åw·%²~šØèî /8âËð~]±šåA¤½L:w¨%÷ƒ$‘¦dà_¥Ô*3†F)™ô«½.tÚÌÃH–.2b¾ÁõC½æiÐJºYcÊK%agU*iöþÒÒ&þ‚¥þ|þÂû²:A2Î?3"`Í…Ê$n˜/ø—#íeÝt¢JŠÄïCcaGtê&ñ …+¤Àhô jÝöºÙ__1ÄM~õ›¸+‘t¬cDKÏâw­W…$¹wFžKާb¤Iûe§wÎíÚGˆB"(€ 1*S¥Ó[Œ%9TbNÆo#Š–->ÌŸ¼Lt.™Ôç/q6~ V§¬y-Ä9SñùelYD·S[åG°ÅÕø})Ø=éºúÇÓø€M8MƒfcàáÓÛá‰:HªÕØH^#™Ÿ¤r»J íÏð>ƒS>}?á—ÖÊþSé:7k¿3+1j}Àü}Pµs7Tm‹{ÿ¾ÿþ>œºÑ;FûfxÇ»ËVǵâoç‹Ð¸˜Ÿï<öàé¸ùÝtŠÏ¯ætÒü0 PÑiºXd[´=!®mÔµ8˜‹Z0ªquÔÿ:HÁ½ðÞx|/#ñ½ ÜÊÕèç퉾¯i@è8Iƒ‰¾*ª«u±Wî w¸¸zÓˆ¤çU –‰”ŒwáßpiÊ…çétK<‹RË[–ØSwÂS¿ •ÛS±âB†¾–BÅomY8sŽšžÆW¡¶ Ç(Ûe¡Ì(xß«ÓÖ{;ï?ƒ]¶§âO¿ÕùSt¾kOí­ÆÎí©¼u¬Ãõ ¶îh?§˜6Ñ0,›°Ç½|åÓø~t¨†Ì¸Öü[ ZžÆEgD1qŠEϱ%X½f•èf|Ÿ=ý.À¼~? ÀK÷¥¡ýňh…i5eyZQ”öði}!2)øª½µ‰B•;Cðˆ›"{+ð|»Žß%SõPöòu+åùÁ­.òkóÈAdX”ŠB 0Â3¶¬¬,ð™âÈWŽRfKQ*Šà¢/Åü œÂ…¡ò|( •‚Ç¡òBßÀh c•ªÆ6ùVYsZծЂ‡•²B¥©H©-ö¢t"”ž>ªGÑWKè¶Â»(TQ,Lêc–'½.¨µ.4-b•wâÿ˜O)M–Óû<þ¼üSžû¢Òûþ<ïSÃêjb `¿çˆyDœG¡²°H™YŒp¥¤0|”„Ê‹8Åÿ€(eù>àŸÀ+F‰ñ6á/w¡îüOh¸P9Ø¢4Rj ÛËx”œ²QüO!þù߀KÓ ‰ «x×6a5bªRޏ’ú yNoÅ#Gq…ð8*)Æ+9_Z”Âg ¶EüB·CîqD· r3@œÝ´Ž+ÿÕX¿½ðËÓ„št&‰hVƒÅEÌJõd÷ýn´° kÇQ6šÀX—×êŸðÆCK[>†Æ– nqþtÜMóOÐæëÜ)lÕë$ÿP%cig¦S¼Î En³L7<Û?<æjÁ™¾NnÓ©Ó¢‡òÛpfüne¨èÎLÝ¥ðî"7ƇNŠç5xl¢ =F®Y&UÛ_ép²Ÿwë)c%©Uè8 ×éÛà|¾‘[ˆ¢ŒÐ©ff1ûñ¾úJ6.÷–éej­½¹NŸ@ý¶o¯r{Ê·QæºN³äa@ƒ{›†+Ñ*öÕuª[ø½‡Bi Uìõ±ßɆ×ã¥M}’1­¦°e]ÝTaR šB® ¾Ôu›kfï:Z¨œ(ع ÉE`½OÐ"4tó{hÏÏ­¤Á<Ó’fØlœîÿ¼×hP äö=¬Ü»˜T­•¤]s´—‘ÃN{)Õ¢x)]‘…·N[ýƒ” sþþ[C–h…¹¶í:ZÅD~ά "êmQ&ìµoÄtY Y<Ë®o¼Žä ùýºXü2›«t¼JW‚›ØLª6Ѐî|'ׄp—š«Û”if·r{1ž“ŠÏÛèQºwE›-KòÚ¡aã9ö Å‹‡—)K@Ò%SÈ Ûʦ£‹÷ÙkŠý˜TÃJý†¦• Z:œj÷{È÷»Î‚fó§/ï./K1|XVÖÜâ7L_„IFlu¡á02üVÞ xÞ®GWZ^˜£• ~‰Ÿ§JYŠ«f¡cwgaê'ù‘Ö`K{Wƒ–åè8„“´8~‡Ê¬¡¦¿¬”¡&Œ •YjÛáø×¤þl ýYãúËâýÙ~¤¿¬P“ û³žµ?¢ÁŽhfËýt=Õ–ôÞMiSJÆk(CånQ|›*;‘D‰DÀ);L©4+•–¥Ÿè"¾~¶QŸ¡¼G7ùF±àÞtÍ%HFÏæqªÓ÷¢÷îƒíÃ*ʸK@ c…þÜŸáfÎ"ÈÊ‘ÈÕèDMÔûA½«¦ª®–B 6:X}ý½^U|GÓH7 .C( ÄUL&‘6L{ûR¡Äd°»-ãü‹•s «Ü•.¦4“̘^-FpS[ÂFÊ&«lQôy­°w¢M#D|m30æ@‹1ôðÊ©€˜¥ö·"nv!ÐPe æ«(UºCSLIÛSL¸vضW Ï4)“,dd§£ `U.gëÇ¥#oFÉs9Ã&ê;»+Ùä"TäÒëè/è&g‹~쪀L,’åf[>Ò ‹ c/‹ Ò· ²r’×…³•a§BÔŠ5Ðr*”®ŒrW±§[Ô ôq.øù=üD ›¾ð°—!^Û/ˆNµY=S•³ÚÜlÜ$ÎÙâÕ““mâW/ðmŠøÆ·ÕS´­†uó}a9kGIN¶" >ý>fã žjøÁå ¥#lÌs°º+ æ70ƒ{ÝMçÑbûž56òø=JÿhJh``#ž©SüßN[x~x곦°?E7sE`Ó©ÐÊ{ÊàР@§±Â¸6Ž=ßîÁ°EÇ.WûÑ×µM_˜žºÎ4QàÏP„ýPñötÿ7u‰;¢Ê]Ð…(Œ©§†Òií(hai=±^²«’=x¹•ÈWŠ'Ú¤…ÖðxÅv¦(r õTHVú…¤3b’,xÅ ï¼OD}ªNv¬Ã¥LÞ¯NØm0Çå°¥ ÃnëzVa|ÕÔ§Ò ½Ž²ÿàËBŠJ4q¬ ‰†‰*M…ƒu²žTQ¢èd":÷üÀ™´[’}¼#J rœ6`è‡RKe3«9[¨©hsYU©´±§c%Ð\Æ L(» /¥ U1ÓÞ˜¦•¹î&S5qK°ÉàñQ+ž)¼sÑ<žÇ<aMÐLÄÈÒx¢3p©30K-÷[ùŠÒŠ|wX¯^bµyØÎ/hÀ°˜¥~ ¯+¹¼:Ù?¾Ðö½É~€ïõ:¶þÍeÆ·¶Þèö°}§êN»¸ìÁhÃLº2|¸¥.ܬC.K9ºRDOö0ÇF~€/E½æâ&Ì!o^_ë´ZK{0ñBcêzüƒå¢¤N»¯Åû½nØdÁ­|+.YÊ –›·ê(õR1b3…j¸JÀðêñ*Œr¨ì™¿qø ¯ÙQ†ðý¨¯H]ßåâýÆ©ïgið,Þߣ–ù¦‘À掻÷6ãìØ°áåû9)Ú=,U{âP­N;0’X[~™W¯ó¸Yƒ5]u=ô]èv±}W©ÜF2S¢^:&\ÿi÷3É@ëŽí𙀦wf }6VÚßÏ´–±gÚ3j™ïvº9s«î€<Ú'§ˆäfd H*ö°íêSßbr¤çš3ï7 àñ¤\¼5WU:\ì>™Evä°` a·fTt5éß7POJwïhÑÔJß÷9a÷‰À ゟGmäÞªÏÆð òÕ‘ëéë#øµÐé`o©~r¹-mðà_ꃆoÐR_~¸Uiô*Wÿ•8è“l£0úcí#ä,ߦDß»EŸý|6Àg|¢ðáôÅÁr1¿ÍË•Œ´ÛÛ¾Rwû++`d2 L2Éd´H¯9YL÷AD³²¼Ï81tüÿ<Ê­¤à^Uõ"ԞΠ'üj­ŸöøN¾¤@éJuLWhu-|4Þù4˜‹;õ‰÷–˜Ôô<4|ë"5zI/ãê½¾·q@<±àp• ޽,Öx^\ð‘?é´¨Wi!› 3_C‰Š C—4Yêüf@ƒâ<%0ÐÐÛKc.Ä©·¢Jì&ð¦—ÉŒQa‰Œeº»ÃþëDpK‰¾,Ö‘d°…mº¯dr§€ï-•UÀƒ$cèM5uqæŽÛ1"†ƒÍ»^MB3„ü4qÛúL'ŠŸ`CCì ]ëô9ˆ7±òÚ”»ÁåóØHßè3ÉÁÑãR½¼vRJëAÉÐj¸3J(ß‹Löè;€“_Ew¸•ìÃϱ#‹ê++¨¦}‡ÿWÁ­íÍôƒ”3£ýü3§Ñ)ôkåêkÊÝYüÍÉfeRŽ2{©iéb#ò*þK\öð¿õhF ªì›ýÃàÉ?׊}ãKe1*µT®KñOQÊ̳§IRüRØrð“i-v¾4aˆê1_ ¿%f”ÁÏr¼t7W9ÙûZîȤŒ¢j~Õ6ÊTÉnþR/"0 ž©dh7Z¥!£-D?é®D-·ÓQYo`k/’4¡'KÐ<²úÃhîýŒVQ ¨o%ŸN7…rÒ ûËá$5΃¹Î·æÿ'] ãÏÄt™Þ/ Š`8&’56°dõ:‡ÇÙKÍeÓÔ\¸šËX°5’J .Åmžl UXBn³?+Y£¹êÓÀœugÀ™CC$‡‡áú ªÆd>L3Ki2+µ”é¸f‡Ó‚©¢¸¦ðJ¼NÉ™Fò_9\ËÕd® ÕZ4ËÞú“P«AœnSJÝe’ô7âPa ï¸é²,í¦øLí£>(f"®Â—ÆX÷51 ßQ¾?â‘מR(±ñÒ/0]L8¿)lù;æyWZó@1qé T@ËZð=òrð|ôpáÕô³&e Ž…ûjXz‘mèì’ƒ„r@áÆÃœóèh9n—ÒÎ.8Âù¿#IMxX϶YFŸwWê4ÝŒ.Q-;ú¼ŸÖ ϳ¸³—âò¶Û—¸sÊqX½ï©bÑv½æPD_,ôK¸µªÑÞÉUÆÁŸ¦ó•{LÞ9£ÅJYc±ªÙÈ‘è#Ó{ípß5Ê|+pÁ£4€:¢èÏÔÖ-4"7»56"êzÔFQŸUåù›jü*K=k’µC¸¿É1’DöJVzP“îqyÕS"‹GwacÒ1‰NXÁDælž6°"<7­§÷yèž=yG,[á¹Ê™"ÅáF§¨UÍ£ó‹ýœcSÙ{m½f¸¸ö™¢9ž‚(ð ”“vgQ:ðñ6|Ÿ§&Ž3­Æ‹s%_*§kúÑ¥¦¦sxï©ÕÛ*Õ¿eFÛè{,¡;%ßde\–½Ý—­¸lâÂ¥`·²™}õ¹F£+á8+Uš’C•œ¼Ò¦X¥°R™Yqä(å¨H.òBoÒß"‡šj›^ñ[d·wq ÅR¥Ü†3%áñæ”P“ E1Òá7Ø,(ÊðåYdïfÈiM ÑW9„‰Ä—\w·Ü|„·Ëgx2©æ”ñ«ÑÄ¡Èß”ñ¾KØ=¢QzÐ.ÆŠ:ÎY¡ƒÛ_ôYq®¢¨×±;Ü>¦Í—á?–úÞc¦(öðXø nâdnøåb%ž³¤^™‰¯Lç¯(ã¦Â³ Ê7Æi7UGôlWj“X$m OdadßÐ ðIWõ‹3l£`¶^esÞÆÐ8ôþʰ·úªHºöWF;£gV·9ÎЯlŠp: H)û5°ÆÊ”bÃT[9€¿P™bCÿCÌáiñõS:ÛÇñ¾°¨‡Ðé€.¯M++Øè¾½2†ÈkkSäµ›õ­ŸJ†=ø0\]zmJåûLúo ŸqÐöÈó¿ÓgÃëòÚ `§Ý)͆Ö%öÖOÍöD6ÁÀ½Jócˆ<ï±4s7òbe¬­sÏâPf+³7E %T£ë<ŠjÎ §”ÆîPã©Ð„îίéÁ÷Ê4z†‘CéyhÚ÷ïPÑ*ú^©â¥U§BPoÂ÷¡iG:ÿÉë|U#'õþóàGTí(ÃÆ6I¡aôÆ|£ó>ªcƒeÈ/ˆzÑteÚ÷ÊðqM¦ÐðXeìÜm7žB£ÓªîÀaã:TPØ·À¶(ôß3z¬ÑWàd?`:”éÒ‚_EmO¾ +Øko•ŸhSÚ"éëïñk1}}¿^I_Á¯Ñ×?à×ôõIüj.h± ?ÜI§/´[Ös~=‰ðiÆ •vå(Ûô ÁºNP=¦Z4‡ôñ6I2cWÈJnîèÇqbyZñ¯ýW*к""|‹Kn»§–F±KßµK£Ø§\\µáhç„ÓÑhñ|9xÙ©h”¿YFovÄ¿‰oø3—\ìL&Ô/@ì:1Q'oVzxs]¨F­9åbGÑuŒq-Àÿ@q ðìи¡§À;°4K®«‘ƒ?y†þ«ˆŸ¡y€íëÁK›¡*Ýò4Ø‚ÅrP² †'¾Ž™”æÇ‰ÂUá€áõ‡é§Ü\ãD6¨ Ç«qø×ÀO¯ )ÄesÒt ¼ê?…ñ[âb£"Î'†PÍ©à^9øÕ‰h´sªúÊ¡Ô>^‰SJÀKrðe|e¸úÊã Suq¯X’£°úóÔíNáŸÎEðvÓ9<å<£?BãØYƒÎ›Nu¾ž._ñ«T]gîdü5°×„äàÕXÈGØyQ”ï?n:_<0>-K€íÓ áù?zz¢‡ ¨éYF6—™ñ¥ÿ:¥¦¤WVFááÕI‡ãÃg ‰ßÀ‡oáÃÒ[6âJ’zÑŸr?} ,â‘Â&½òmÁ‘Æ4¥µ`cÃh'+·’ž¹ó@¸Á ^¡/#`“y=.eòP²ànëT ªÇÅÖã oBšâïÆ¸àÔ« þKFO4úmŠ©„²1¯Ué(ø°1íØ®‚- ìa¼ÓØ’›Í8 -½-Z*SÇþÖþËÔñÛ‘ô¶¥¯¾ã·ËÁ[ñ Vg-| —÷tµê}‡QD_}6~ùů.8¬àÜÝÁþþ9]ꙓìI{åAÅ ºâÁÀÿAG…ƒÉ}')N58Í‚-ßFŸMîÓÄÏ ä4"˜÷,*±w8ùµ-æqÓõÄÚ—Y@¯˜…½ãBkªåXVrw’›'}¨ý öO |«×dÚ>ã‰E):+|’Ûjïo…Þ/Ãåÿ´¦Ûíq6}Ï®Näôs€ÿ1väO<îÀ¦nvé9Ñh/b”€Go§Ñ-©v©ó®(±'Hc¬xÊ[›®ÆÆ‚žAкhñóŸÜ`¨K\CEiÃNã“ñ—b”—KiQ^°Ðß_­¹¨^çö°É{ùå± `òÀÄÛÁ‘>r `,Z¥¯°ÿÖ@70^çšy`xTôñ» 9¸ð»hT•JTùLãºd•|ƒø–¯äóŒIç9†®à&Yßý;„a~ÄEùÞÞ& ¨ó‚y\¤È¥õ:OHfÛÏM?ý»zB–€|̓˜ª>Ï£l%‚kùÐÊG»h©²üï.Ro §j¹1ÔœbMj™Ï©ÔJÁ½èíØï§l)Ø=O™1«§’-ÿ—0Þ dÏ…ó 3{r"çQ}ß9òÚ©CœÑÌ7(´AaICÁÿ ëÉâ³éeÑÜ+ÂV¾¶ãâ-ÉZºsÐib¯È]JoàÒ‚óe´ÜùÚÍ/Å mM€öäÂbÔ—ãáVpåçâ0û;<Ì-ÆÙkßicxÆP-h)Ø rÑ‚Ë@†92 H[HdˆoçHá„Ö¼»UJkçC8vîÖáÂðÚ[êâs©÷Ï$äz•±Yœ÷e¨Bpç7ÀCq¿®í.49XÌßí¼¥®A¬ÍQCÓt¾™ÁÏ8aÐÙè®DRpÍ9”™Ð†›Ú|VÚ‡Ûûà)Nèa¥:w¢¸,^saØò)9p n‚ïBjíÖ£º U^9é.¥J0žI¡Äm6.Gy/o§R&µžÐÛw.îèÌú†ÖúWÏ_“¸Îþv¤Š¨· ¢¢òËwÇåk.ïЪ\È‘À7›Ãçy‚OÝöØF®|Ê ûåÀ6RBaÔ±v^b"o¯@7n/«/5Ѓ&ÃâDɉ”ƒ»OÆØ÷6üÒµaÌ©åŠÐ0ƒÅÉ"Ýb  {ïÉØ!|çI’JqíÑŽVixܤ„1K¹ÓáOg·ÿN¯‹¤²†Ä]É}–ƒcRhãkRPçgpVzØ7µ ùòZ,ï BÀWwqK¢ãxž£Vo€Jù”†ß!Κ=¾Q†¤IÛ#róv¬œá@Pß‚­Àªÿ”jtþŠX{ÊÔzrÐÎsˆžà=Áü3ržrqà}tcª.鈊ƒœ´Â,ô:ûkĪ^Çù–'n$u6޲ó²4'׿B“+·âùïq²‚ÇõºD°%ÜÓííDwm­”qVO%Ûþ¸^‡7`« ùˆq†“s0üí¸XK\ȱÎÇMÿù¬¾F@áˆj&DýÙN?¼$ÖØáÊ®xLôù®¦E®a“ÌÚu5ˆsÙ_¶¢u:ÕÏ¡{}Ï6MÓ;ZdÂï`—¿ˆg.œÆ{&´ rÚ8‹ÇÁÖ'>–›­h9”Æ“ìuÎДlL•çž¡,0a¨©Ôö8´Ü¤SJ$õЧ_W`ã,}Ô§Õ€u|ÐV™tÙ£1p›åàwˆ9A×’X°‡LÓ´…¨„…¸ã _ˆó»Éz^ÕQ¨ÊADh爠ÏêGÈR¢dý.jÕèéÅñÜó¡A‰b|ÌA)&oŠÅØj¤A»¿"Žo6| ÙzŸ=&:^Z‚7ï¨Ûk©ŒÍw9Ø„t`j2,t Tâ.|ã#²˜é¼^ÊëPÆæB¥ªD“ZE•þ *U1Žß…¡ÉØGoÀsTX¶vj”åÂOkHE_(¡¥) ­Ê–ðøÇMá))«+S`ÆIþïÈ¸Š¦x'½~z¢1þõM]øºÇRn‚÷¦„7.:"–²^aÏýS/–6DìTçµ_ǰv&ìÙîºT]¢¤"å¯cdV÷5’ÓCBa‹÷ !WñBø­«É†ea%n©_lægã]ˆs¸ÿü§ü©tí¯L±ºNO½‘íH“t —'qõ~Z²6ØÌý@(`ŽÌÁöîÄÝ'ŒQL0Lä2£ç0?%9ñv±UpVŽËÒç."ÀϨ$þoêèÇí`ýöE£õ:4M±±¿»yf4<¥åàïŽr t*Gã 2á»o/ž:q@~ïÒû57¥j«eiÊÐxÖ¿|ÊA‰O+ËÐÖ¹òK¬¾$¾º¼ò*èÄpT} µ„·A=TI¾"Î’ëfËÁš/Ï OÔŽt '[8ºVò_ü¡Eiø½¤ ›264Œoà^ÿ!”¦5“lq˜(©ô–)~%[¡¨ ÚgÝ¢”+³³’¥~N13«ŸE9µ¥Äk«¤$éÏ`N.žYèÈÍ"·«&BôtëQ.0úóبòbÌÄüÙNF6$Êý¸jAïÇж^7{î8ù}ä+¥Yª=Éæv:ØØ=Ü"â\l¼ì}TK4ÿð1çŠV)eå€+Û£p³·§ðàDQ {¡?=ÐTÄw“RÆ¥¬q\Êjº„ ¤½%ꤊ‹?€¦ºâ-½¿_à8œï¨G tßísºù›±y½\„º—i¨›bT†8œ•n–6’B·)`J`w¶i·ÚS1ó€¼êã„; ‘È'‡æžãÆÆãÑ*°ØA×·lí²EÏí]b>ÅEšOqÀ¾ÈEòkWŸ ýãR‡Ÿ¢aÚË-ZÔއæ.æ€P©Vy)·lŸ £vá%Ô„³*À¡ŠubO­]­¹¾þè¹À8Ùä(…ÿàǯRm4Ì¶ÒæŽJ÷ѹ< T÷ z_ÞLwþ%¸¾” \„]Ç6â]™ïâ3®U|5ÿ\ ‰2ÛæYj°å’õPÜü*Yiaî³éhš8.Â/ñ—ÒA5‘ æ4ÿUÞŸzC5 º¨·SEJYHDÔ'Í‚þ-zÿ¹Ä„8s ûë •Öø̵Á6 ùjezNB_«´¾ÎéÝ—ši 8÷¢Bö…²‘õL´ÜÇ]h—Ô’Gx’nE£>{õ=úìÂçkø¼Ÿ§îÖg/lÒg?Ÿð±/ÖgO‚Ï]KõÙwÀßàó |Á'e‰>{|ZáóüÞŸ‰÷곯‚Ï5Íúì5ð™Ôgß¿3úì(´aï³á³ ž§Ý§Ï΀gÀçøL…Ï\ø|Ÿ¿ÁØ&Aùõ÷ë³×/Óg_ Ÿ…¿³ _Ág |ÖÃç|jÒgCúìWà3é7úìð×ó¸>{är}¶>W*úì¥ðéÏÄõÙÇ mï }ößá³>Ãúì.˜»ŸiðýÀúìsWé³ð™ŸÉ úìÇàïß íðîø,€Ï;0Μ•úìzè¿>^xÿ*€Ùûð,ÆðxöÜÃúì;«Ïžóˆ>û4<Ï„¶ÿ ŸPVõ÷@™.Eo0Î;75-]ê7·ÿܹLeó ÁC,™C‡Ásé?+üÇ¿ ‡ÿæž3"ëÜìórο`¤í‹.ž›{É¥yù—]~Ũ+¯š[PxõÏ®)}­½xÌus¯/);nü„²‰å“&O™:wZÅtÇܹιs+].×ÜUnhÏ3sÖ Õ³kjçέ««›³ên˜o>«àó?ðù3|þŸâó:|6ÁÇsœ Ÿñð¹.Äí÷‡²¸Ó·'RYÒÄá\do¨BÖÑðªpu ¼‘…–˹.´ÒÏ­t€pê™` }3…Œ¶øÓ0Ÿ,Ô  EPxE€îÊ'‚ØRåÿk*·²-.ëšh1ùKPØ„î§ÚÊcX€•²‘¶÷(ÅShhuT²þƒÈ¶\xƒ-$Á® \’¦ÓA+I½x®BÕÉÃw5ù' ;¹ýžÜÜ‘JÊtÉ—RªWÓoYÙ‹æL”FÃhšnŪþ¹p­çÞúëÉ[†Üúê-UG à‰#¸õ•éÉ+³álᗻƎ6_ÓÍñCÏ'8Úiè9ex‡ÉpÐÁÃMy0áb˜Da^b¼&ªS·†Ò`xý`xš­z`³qšÿ#±ÐÁÞÄZ"'ðÃtõЍ¢0;)8Šo Ÿ˽{=GqÂ}˜ø¨®q°ú¿ŠîK}u6ƒ†­ã€Û`õZ4 Är'«zcù=f»²ŸnDìžjhçÛ?\x_à:züGw&dG‹Ò`u7¼£(¨Q*è²ï›ëR4œÀ«e¬åY´·´øŒQøù¬ÄÿÚw>oåGü Ëjâçù ޹v¨!‡Ûû&çSÞ‚ü+•J[`“%Üp¯ D±‹ò÷Ï]>tù¶kÍþ¬æ­>Ërw üp¤øÑ .ТoÞê?ˆöõ"«BÒ«yš—ÂDX †êuì™hA‰>„¤Ñ€aÆ _¦ß(ƒ€X¥$GãA¦žòCJp[¶’Ô‹dmE”a¶Sic™ò-t5:ÖÕÇ:­«÷¬£6Q{ìu%0žvŠï ôvz±–¶ÀFÓ*cÓ½†U ÇCÆõ¼*Q‹- ŸÂPFu•Zr€,3‰ˆkã’]\íãxfÛ”[y¹qZðs‚cˆ“Ýù¢jÈz^ X!ão;¿êAÅÜïR1iÏ}À º)1ÙØÛ”¿ rÔN¶ ³\r~©×ÅÿûkŠš›_Fâù@²Ô˜•jFÒEýÕ[Ä:dá–ž$vû[.'5<…‡Š›E¿—t( UQƒÿg˜þ1÷;hR‡?£^ïfCù…a(‹~âÇ‘1DëÂ?«·7…±`oÄ Ì´ŠNKãk¨÷ƒ¦‚Ã8dØ#9¶µNï_gqž”?í/^×+í>µZPóÉýÔ;¨IÚ}êõâ>õr­ì2,›cžíÉóg‰|À´*ý½ùî¡ÙÏ »s² ¿RX†.©µÔÔ/:7Ò•ÆO½ÕU¯Šõ;Ü#"ñœ'âuT!)töªK9\LRï4üCÉ3¨Üâ%—?Î´ÅØQ”Ka ›²½O@£"IÞ±{d÷Õ§¹]ÑÅBš³ÈÉç=DÒ¼¬_à×ÔQ^¨ÁfÓ.¤§«¨”ífKþËú÷ri9[Á„Ó¶zŒ;jsºÙˆÏE,@9x PJðÎþüªºyF ¿ˆŒ6G•Ë›B;ëæ|ñ?:ZɆ\Ï™£Ê_}TöÏ‹©Ò#7¸™ñ½ó*äÃ_»+=]G¦ôÊU"cWQŸ¨u²RŒnѲÛÖMĦ­‘A±Gè‘…GÐDÆ…€=Èž/7Ñró“x“ &9)%z[-]H <ßàú&ï ÏÐlöòë‚WmSJ’".Æ×ÏôbüVþJsÜ+ñG‰õÔêψ«„Ç›¬À€šg‹¯ÙwlMú0Fe²£ùRQŒµÚ¶u‡œIøìòU÷òÅ^ 5~}¸Ìv¤ˆ¬í°Gó6Ú[}iëŠfÍnS†*ÍØñÐÐsrÇÔgÛ:ËÌĘFµ9ÈÐ+êñ }S±Ã|5hŸ6˜¯RÔÁ˜• ³“õ×óÀ©‘Ô×–ApŒFð$¼ôoí¥sÝ.{?…K^¼ÀؘtŽO˜§Ô;½GL ©54~6ßæV‡Üñò=4`8(ƒŠ11Iл"EôñA"¾:Þ$K­—«·Å 7{O—®ó(Œ½¥Ãƒ%7ÅYO†ì?§…‹ ù¬Lw°SPÁ­t°ïá¯òÅæCĦœÔâbö;6.g»t<âP¬RNøžªõ†‰*ª®ìÑttË¢¯.6™v§QýñiÉõ-–Á7ÀíÀô-ÈAÌæœnÜ“ÉÊ8sâ“"eœ%ñÉEÊ8kâ ÝÙÆ?Ñ´ô^žŸ†B¹Ù¿ñKujFš‰œ7u¹}7¦ôé¨ð6÷—ûÆ,m4R®BeÝ»¾L籂€8ïmÊQ¦I·“=õ¥ ÉF…ñ‹ÿê2ûцƒµ˜Tz©“¨þ‘@»IVYÅ~­ÕË ùühƒª5m𚪆à·ôêÖ?M¯ Cþ-Ðê6™Î?ÝönøZ„LjJ.4`g:¥a^³Öж—Ô84Õ°n/Fc7Õ´‹"K¢Ùj-Õ~ÒQÐpÓ‘P­X,õ¨a½ï»œ‡õžHa½y<ï,"y5†&CE<Ø÷BŒh\[¦ä|ä^œ¸wûLžÜ‚§›¹LMSR©˜lK«m-Øê¤h¥øÛÔ#’gal†Ë¶žVÁ o£+’ဟf¤ŸfŒ}çû+åÁ¼ê…¤ ñÆã÷%'¦!Šõ?}·ô¢ï‰trôg1Z£§ª’ÇÉFâS!pI¼ú¡Y.ŠtzGš®ïø2IÖîmÕ?pE*’Ë‘ì­Ë,ÕLs³;Šb˜v‘!*ã)ÍÞé$ßÓàwµÇóž*¥Ç2s?B¾ã0ðÿ5 “b–þÉÞ&=‡I¿é “þ‡Imû5Lº4)bX¦†I•löï “ªÅD•¶î'T Mбõû‰%Î ¥(t pôæ± Í¦Du‰èÀm·%vSÝgþÁØy^¯óŽº;%ÛË`@AŽžŒ[ʤŒ¥õ)¼êA¨ Dp ¯Z§å³SÛ;‚•Nñöž>{{Tõooá™Ú[…•Ì7P{®³·GU7P{¹gjÏqT²ñö goªZy{'ÎÐÞ‹X©˜·÷¯gmªŽâí-;S{£¡Ò ÞÞ/ÎÞU-çí©=sTòòö†œ½=ª:›·ÇŽŸ ~MP©·×vüìðêóy{©½ùØé*ÞÞgoª6óöÊÏÔ^Ëb¨ô ooäÙÛ£ªñöº»ÏÐÞNìtoïî³¶GUŸçí={¦ötØé»¼½ÀÙÛ£ªoðöfž©½9Xé{Þ^ÁÙÛ£ªŸñö¤3µ—³*骩½Oŵ7=©=QUŽuÇzu­±¹Ð5U¤#|,ÖuozäÀšïÿg ÒPtöþ©ª gí Ö´ˆùwµª*Hݺ®³öOU© w­ÿ§°fŽ˜ÿÙû§ª‚”½ª*HYÆYûoÁšùbþ?œµª*HߺÎÚ?U¤/üÃYá/Ô,ó?{ÿTUÊ¢³÷OU©Ì8kÿq¤ãÅü¿?kÿTUÖuߟµª*Hkøû³õ_€š1ÿ³÷OU).:{ÿTU⌳ö¯CHÍó?zÖþ©ª Ý뎞µª*HwøèÙúÕŒ@ó?{ÿTUú¢³÷OU©Ï8kÿ98RŸ˜ÿwg§÷ÆHùºïÎNÿî‘òðwg¥)1ÿ³÷OUé/:{ÿTUþŒäþWçpþ;Ë»úeÓ.Pùo|îO£®m ”}“d5|ùê´—NµAšm‡G”¹¥ŽÂîºQÄ3¼“c‡&iøÄ{\”=ç÷I¢lœW¿?1ÉPÍÒ“4ça‰L{u­èÜÅ¿kià…Ϻfq¯/b‘ÿÄùjVÇjäÉ·<Èyru\Á®ÆôjäÏëÚ Zªƒ]µòZT!Z æ)9Ùí"?s£›ÛCF&¦ $ÿùF/$c{ß=£}w9lU1…ÈCû%TÖO™ûˆ(É­æñߤ[Fæ|Æ.ÕQoµ8Ì´:JÕUÐ쪃AÖ¶QŽ$sT•¿M0ÿTè:•ÒópR 'eqAŸá,ÏØ9ê) ÌÅ?Ýád/NjðÚÿ®AXŽý±Ôî9Zl¡Õx”<Æu蕞„”«Ø²4J:\¥®{³>Û»ï½/¿Žm(9ø8ê“ù)ªÞRM›jÝ×ê¦Bl§F*ÙC×iÑö(f¼Ùã¨×³Ó;¹4jÒ´L±Ëò˜–iØÿüdmNrF‘äùgý'qþtYÄÍQÜ.ŸÐThäësÚõÙëÞEbpäRE£ö 5þ^|èa¯Ž‰…¼Th|î[¥º/³m«HÝcq9=leÐ ó¬®JÁ‰·c °$ʱ<ù<Àò»ŸFêj ö?Özô†0J³‡¢u¬¤ãMÝÕô×|„ÿµ0þ×zþF3§ªáž^HzJdjmst)ã võ¹h4‡eT+dè“›k­ (¾ºµ wþMXÄ·îÕ ‰Æ*ßú³Ù@¡E^Ñ HEÏ• IqZ‚»ý&ŸNÙÁ°h4’¡XÖUºÙ⋉¢Ð K›»’öû0óÁ¨0·37|_ØZR÷´¦Á£ jrí½G²1?u€õ«;Sìì3è65|¢Cli)iù/ð(m0™®êã'Ó¤ÄM´t1Õ÷_¬Ÿ<˜証ÍvÄמx’Å«Gãô¹tvzËg#jžg¡f±S$¬‚éBv@ßBT²_|–¦sPoÎlÔ£W>Äoñ ܪ¿¤ïÈ™^3¼À\©Úì ¢‘óIÉøUép³ô­=QXv‡ã:O •›z‡'ý0æ®ô0¿]¸6ú‡z $õªì‹+¢º6·rõg±Ëפ”™žÆïíedæÒž–ÂÍrÍ"D²2L\¶K<“¬IØìÀ¼9+3ÇßœMòßÝœµy±Oöï±1zs¼FyõLÎO óžŽùP‡«ü>÷§P^Y´ÑQÊyzÙ'l éeùý-ªYY`TÊft½‘⛩Ü×L—Wþ!nvé(á!ܘÆé…ËÍæV5o—Ŭ/†kÖ2à{¥Gµ¿Z$Õ•Ö†$¼²”\fµ¥êñ¹)"ºUÑm®¬7Ôë½sÜ€&šù”a2^ âð…üâÕ%pª/üŒÝó2y¸LÉÀ!ƒèúªZ<½à€7Rc-&‹eX/+pÍÃ<ìÒÖX¤­y@7x:=a€å»LÜÝÙÔ¡ûGˆÌv5HMþs¯°ƒà¯yØ¡Vn$‹ŽCÓrð½dhQ ¼*GÓɈˆýftŒGª:ˆ·gè0:Ù¢+ãà;ÈËSE‘Ó+Ù•z¸XY 5ù hP¹‰ƒZ¢ÀíE ¡Z“2M‡¡µ§éB·™ý£¼óá¶Ðœ®óÞߞƚìfü9¢(»œÞLO£ (5ElêÖwpS“-)žJ•îP™…=É\4Tfz‹&£ÂÃPYð!7lœÓä–Ìô%KýÒèîTe=wI ¬'±œ¡aÄl*%œóüè"Ò7 g5ª”³”ëi8¨ÀDJ_*X®šYIâX<—EÖKtZb.¯-¿ÞÀœ,s®àîüFbÛ,6bZÑCí_žÒX5ʃ»ç:¾{«† ¬Úñ¶!îEW74‹þÛá÷W§@Sn¸Æ¤–.ä84gÀñͨ†zã'ÚŒöž†½Je¬¦ ¹û*X_)9ä#{û´Â©&Ò]ӆ߲j‡Šo‡jðÛº-ô'6`9í¯aܤ¨¸á×¾XÍ߯i, ‘_õAšv¿5Þæ C?s›«èÐáýû‰6Wè’%l®Vé’l®Ð¢éjVà=*,T¡™jÌR¦˜9ÃWEIÐà»’]ä¢"%mnŒë‡vY#¿Û03©ëß„]Y‘€ðís²Ÿ7%šXM1Rb>Åiz°§<5h;Î~ñ¾U ­–Vß û`ïó°dì‘¥§ñ©ŽñMèçÞþ‰ÂÊEM¤:èKã$² _¢QDÕšað{ê1\æa?¼.ÿhž5WnîÅ pûßU_äa-Õšq:zн»¬AxccB*]MÕPÐ¥ªÑÝÅìrVz˜´Œ±3=Ž_õM²z p—ïbÑ©—:ý¦áL&2½ÕuZž3Ì/HZBÁ<@¾€^ 1l ¥°t.„™¹öá¹$„…q'«©Û-.¥³F˜öꩤF2Ñê­ÃÕû ?_=,ÀðÀé¸ÖÀŒ_Žn.–~¿ê€ ¹X}3H’¼æ’3ºbÌ“šÊâ±»ù´Q­Sí/ýïÅC7»©€œKxFÁPZ¼¡¿!žŒs]A:'ÜJ© 㜶ß-ÞOAúã9^13ÝŽÝi1—ÿ­è.âÿe‚«î¯æ½8‡­"Zƒï‰óiS&˜„”ßjTcÊ8³2AÒjH|§Y•·˜ò.î3Ød¹ìÈÝ?å<¬Y.È€‹Èš­ªçJ„|À³+"Êx€õ>7ªeõ߀ïLàž|õî¤âUTÆ„ïUîz=Ûóª–‰  j¸NÔíbºà™Òv‰ìÄÈ_Y$è‚­§Q★OIô(»˜'—Pn­NËÍ·ánU¤E¥EqÆÁäM ‰ƒéd÷ÌåìW—Ò D#Y²Ú¿SÝÿn¦ÛÅÓk‰¤®?£'ÄsÚçÂñȶïLãž&þ“æ ár{¿Ç½ò¦Ió„ÀÍáf_ΕdƒüÕ:•nŽÂjÒ9|ð)m½/Šeëõ_$@óÌ"ͦXzö9üô°T×1”ºä¡ôNý½z”Úÿ-Øÿþ4Þÿ¨øþ׎[ž]±åÉY¤ÑÓ#1™¿WWÛC7 ‹öð)´tÛi•¸IE¹½ U”ó±ó°|µºœ*Èç \¦5 é=~§5PÀ,D0,3§râЖdÈiïÌ:Ü,w.àÛ“T\£î=‹ðûZúÐ<ouéÍŽ^cÕ!Fç-vD#™vr!–Ø6u=’ê$wBËÕ>mú¸ÓRùôñ©[Üz^Ë ìO¥á{øøç/=Ór5¥G¯Y¼öVl>|\wi³¸Àî^§ÉCV"•[X‡T.ŸWK2ŽMiµ¤Îgæå¸ÿ|>RÜ|fLà$ð¤ðà-Áܵ1#Ü3[@߳俺%à÷mÐâÈÕ¹êȶ#¤?5ð‘áS˜Ù9u·J¼Z°J‹¨‚OyF\öä mì¾ÑÐ*&Ø4ãõò3ÿ&°FÌÚUÛƒôÄD—'–$Ƈ–†Ïç¹Å?í® Xôjþb2³€ÀÑð)þ§õ½á¿çxð÷vàŒ¿þÐø– »éqQ£Ž¯DßA¢b|% ô/n€3UúçSwýíŒÁ÷¤yfÆÍZèêŽ-S)ñr°*N¶xg4êð#rì¾Ä{£Z8ºÇønFO7þ—7£gÄ¿_¤ü(þ•¤ô¿sã&v="áŸ×˜ Õ¯Üc$ÂQÐ{ÛÈ¢‡?Š…þÄyý( Û#v‹:iëÔÿèøŒð)2þ°TSŽÅûWb±_¾C;h®¶•ƒßIà³éâÀça©±VäæÓ:ž› þÙòê¢3¹ƒ€Ñ¹E•· ‚¶þð2Œ¿Ú¡ö%á¨×E‰'xÚõ#]±QkG›N¶¯‰Ç!'.çí¢| MTÆšðU¨£qU²ßâZM¯ûžÍ‡± ¦Úâr8½ÝØÜX*1ÓÊf&íUJLÌ/²§ÜóÓ6+°…[Ùx~»•¤¿X=CUèåâðžìI ½¤ÐC‘]ÛÇóˆÍ° ‘Ò…%w¿˜®]fd&›Œ‹ÓÙåfÝ}&¶*ÉB>êÛâaŸËdÊ"š1É3ƒËR*óP3_]"+[=Ÿ‚è™ë 0ÖÂ×{„º”AÓǦ{öû‚)NßïïÓ웼**!¼n=ÍqÀG'õÙüCÉÍ÷æå¨ý"µýl?C´_×~çѾÚ/ø‰íÏVÛ/Çöÿ~Š·?;®ýPŸí¿³ð§µÏÔ=ò0¶?M´O5<Êë ^ˆ‡oÓHÄ7È‹¾ ¿“x©Ñ–“ˆO¾‹µbS·ì´X3W„…á7÷EU™ÄÉ󈿾Z ±W× öjö*{•›t"p–qþd¿¸%Žõ°ö ‰Ø32ëjÎÙ/Çd¿þÿbÌÌ*n–«0x áyú‡Ayüùÿm_ë5rÁO[/›¦÷¡ý/ڷŵ¿¨ÏöÛîúií[Õö_ÂöLjö­qíï³ý_üÄö³Ôö[°ýýÇyûYqí¿r¤¯ö ?±ýC*>oÇöEûøTãûlÿiÿOk¾:þw±ýsEûóãÆü›¾Ú÷ÛŸ£Þç˜æBûÿéVé;>÷å(Äwmõgs¾ëI­Ÿû -mÔ‚¶wo‰ ÆwÉ+¾³ˆ]Űc–—ÏhÞº(])Ÿå¡ôO‚ŠÓ»oJ*— ÝîCW¥™¨[ûŽz•Ôç³µð]ÉÄ!VzØž¯U™ÒÊ•öÝ£ÈþæfÕ/nBûÕ›Õq§²øÎ ‚h Ö¹8пzÅí®Zày?>X7ªŸ¾X÷DlÝŸe£g¿WŸõç–[÷Üo´í¾–œ­9ßÊòº9±÷­¬V}¦½Ÿü6½¿ç+^¼X®=-{NíÙÚññž#{ØÖ=§÷ïávlå ulÛ?Û&Að[JhIkJ²øÛž£PÝ ßòé5xc‹f¾{¥){Ïaeóž­{¾ÝÅÖý3¡¥œ<øŸ\x?ÕZ>*cÕÇEk£Dk¹±ÖaLˆ=[•-Ðâpjqµ¸A¶ÜÆÛŒ{¶Òäûo+ºB…u þÙê³èYáG°þîòÞðÿìò‡•r(ðY7¶2Á´?u>p²{Z?ìüè`×ãï¾?Ø?Á¢>¢Là'LˆOEù¼¦ ~ãëÐô°çã­û2̾ûgØðÅŽoùáÓ¾s±yl¹ÔO-m‰-wÀ+¼a½X& 䥄ŠðŒ ŒOÆ=›ß(èoOŒ'º'J°°×/ͦ¡±µ—´Ì[Q_ºçb“ûL6øšƒð×T›ºhéØºgcÇ›0¿198¿Vxž³§ þÍ=Ð ¸ ÝìÙF϶ҳΈ¿æømO„?ŒÏ¢ŽÏ"ÆgbYÚøLl((~€fê.a|ÿïF‡öW¯ƒ¾(:ß?Œ³-DF~~£FF°ô¿UÉO¹æ"‹2.V¬deÊ!ÂcŒW7hó·¹ÉÝû.½üç "Ï–?µ–X ¢o* €rÊ»ûÏÁ\DqÇþ¤h•´_§d<_8HÀ–ý%A4ß8|ÏØý)¸‚ñ.£fõgvü!|r#ÔÎ#ƒöwà#_ÂG q5þôõg;{¢Q®:ÀíD r¬ìÝ~)(mÕ&ïd½«¾Ög³ï¸26I`¢òX¾ûÌåæo üŸg. Ë<ËûG üŽ3—;°¼òÌå«°üª3—ÏÿÊŸ¥ÿïpþ§û*w{¿7 Ï³·Dží}ÿaxp_7êö§z3À”=G•#û2Î%ÒÂîߨ×È>mߦl2êö|UöePíÞ ¼à¦:è…s6¡\lÑîÏæ»”'lh¾Y¥lëhuÊ£à½ýºý˜‡ÈpßH§qnÂI§ð{¶†WÐ{N8;á¨&>Žl~pÏ”ØÅ8€QÊ Ûc¨xÙºJ™o ÝaTæcËu¡;p,µ58«ÖêÀóãQÖOɰ„€=‚]Un_/IÉÈÁy:ŒJ¦ ¿”K!ÚVä8Ø—¨%¶±H™iT¼Òj\€dÓ dà ô«iy´>c%¥™Æšl‚‘>!*Âóé9špaœ*¨ •9*Y¾îÌhÁ ÄÉ<8Þñu0ÿ†0§’…¢ºÂ'{dUtª ¨€6$¥Â„Ýq‚ÜÅÊ"Fžýœ”¶|ŽJ£C³ŒáfZ\„n–!§‰M€w•¶ïÙJÃ/;ŸïwJ€RçÀÁžèÑqTz¶7*Ùú@%í|Æ Ùif¥ÊâVüV¡S¡ôÐtcÈ#…˜b¿ñD‚gxÈè93dÿ›=_ädÆž3j „¯èŠF‘›€I\÷TÞ%x”FÁQt1®7HŠù «\îdM§ûsN2˜¡Y²œ¢íjÛÕFØÆ OŒ§I ðå°¥ ‹Ð'áÿjNü!qæÆïÏ|uŽR7Gáÿa®8õc›öç˨ãQóÿh°?;Oþ„ýYøýÿy.=ù¿ßŸ:ùÿhž:ñßíÏÀ! ˆ~#^ÌAÓ/i¼‡ŠB3!¯*7Ѫð% ïµ6Ú’?ŽCgÍÇÿª!G%… UÎM ç–pï»aíL°¦bןaMWø)@Í(‚nAò|—æ Å}X„=³©DÝHãã7Ò|ûú¸€ö²Ÿmíןo‰ÀdŠSòY¥Áû’ãgƒ÷OmàÝÒýƒwÎñŸoëá%àÝ7áx7uÿ·ðVÏŸ8vLhÅê ³OïbV‹(gJiu\RC’Ò1I …Ô²¨*IžPl>h#Э‡ÉpÅ*8Ìþ[ÅQ–J¥  ÎÆJaŸ­@Ï– ‡V”ú ð&Î!X¢™Ør%JCk!¤aÎÔ—Ò¢ 5€-ÿ@i.\–û¿Iopéíƒ8éí.½}À¥7UX{ƒøÍâ7Oé¸ÙN²´&ä•yeì·g–wŽAùg.ñ8”ëÏ\n> åŸ9³3ºÙ,õ¾ïty”ŽXDâ¼J÷R4AZ|×ðÕ¤Ýyöµ›*µ ¨³ð†€5ÿ9M§lÁ‰o6Lò}ŒºÃ·[J¹lЙ¼"¿…± 8Ço|ñ²H†¼~‹3ú¥Ðzø,­lºÿ“šÚ: |ñFï-Á½ò#-î;U,9ÞÅŠ\Ü’1"ó.Öõgqàœx#Œ(*3Çì‹ÐŸÚŒB›ÐäŽâ›PŒ†„jM¾‘ö´Öd_ÖØæ ô»wÃù5ûL÷ 7#bÿ¡S­È>9=ú²½éÕTf¡y€‡]¬‹¹brt|ýˆŽß8ânï°¥,ËS òj‘0¸nÛÎ]¸ìÝ£†ˆó=Âp>ìî3ý`Ô7ÉîøÜxÆ{Dß%|(èoæí átÇìrÍb“ñìÉSÚì€Íì`“¦k¡ìùäL7bkƒÉ{ðquþã0 :7[ÿp\ò #çV7Ûw§êMã†uA‹%¨kt³‡âªÂàåAZôÙ<^5£/zÜÌ«U½N)#¼\¦E‰‰pPö8tGÁHY¿µd8-lf+z¢QjM]_nà‰{@¯ÔÆåfÜ<â,»évÑ ¤P~> º•ïÔžÞšB>ÑR^ Áþ_$é4Ïù‚,¹dߦ”™‡GÒøþš×®»mS¤@‹¾Ô¾­á›J··Gíú·ºö}Ýß‘“ˆ º™ªðCJY7Æ8 8Ûq‡6ÀíÜHFrÖ§Àè­•6‡_2ò“\ðHj x ‚ b @D€`»Úƒÿ¶øéO¸F›¾¯*qêƒ`ʧ£}MyÎKñS–ƒC¢ñ9pµiofí§€å 0¦¤íª®§…R²À\Š£ÍeO ÍE‚¹üö×Ú\¶ñåD,*‰Íð¥ ;>ê) ÷ÓáÐ-6«?­¦ãJ’Ç0LÀ¥Ô˜ÂÆqáBWÁVûfLmv§}žbž8ÑÿÎÔ@«1r|½¿¦FFÌ[z‚ð{ZD†ïæ‹ñ{zÄhE@Ø7ß±ÉãÈ ø™¤šä…lYþáÑih?ÁX¥Æ'­¡™[ÚT;7e)œ?%lgÿJ Ö<¥ð*í"]`³þŽ„èû˜þº;û½FîûoF&Ìs£îNÓkÍ„ÌÔ#óÆÀM¯arÂWnÄ'çÏã4½†Ép_að<"¿–ŠßÍÃwÌï%¿Üþø±ã”ïhÔ¼PYrbÝ/çÍ›w¬³õ„^ÙØÊÎ3lœ¢lñw }ŒÅN8Mú°¥^‚ß[¥‰YÇ‚þ©µä _ŒgšxS À€£‚€±™ýãmíÄø¢ ûð!ÿ Äðá¾[µ•÷ÆðaT K*9>ôÜfަ65iGi|˜6M/Ømo½s8ÀgÞÒ"]Ê©i°Ò¸Ò­w|媄•>¿PÒ £¤ê:ÑÔ Ê.†ñõÃ…ž°eºý;9€iE„ÿ枦£­6Ñ üØ™zu¡|—P¦îXè'9X–’½œ¼o°óúv]PäI@åg¸•©9ä2Áxl׃J,ýC•ŒäÇ¿çó/£ùGn*ˆ7åÓÿ`û¶Ó3¹^‡ùsœ±ûE<2°¿<‘Áh?ݰÞ~Ú7%³ÈÄ^œÞ}7¢¬ñõTb4“"\kàëQx哪sLZ I2úþ*$—©µœ²8w¶çb¨ùQ,šƒS7iŠ1z  Ç`—ÀoÂþì±mP •&aÌĤñÜ5^«ÿÅéäúæ³Ôw;Ø¿…‹‹ƒ½‚NN &äq²GªA²Ø‡Á°R´wSr{Öøö&þWí!‚ÃÊVç$7?„˜$)^Ó¤ÄY)Ót"Ѥ¥44MÇøŽûŽùÜáÞ1;™@:øY/ÿÊþOlmKz_‘êÛ|®íøñÜÏ#!>VýV]ÝêLQC¢rÒ+˜~,f–6ß‚.–sJ›ñŸÄŒÍ?2ã'¿å~¦8cO«­ˆíŽŸõÂæ–ßÅc³Þ7YÌx͸r\̳Ec1’fÜ;l† ƒZ„ÁÙ^íõ‡A’<™Á”ãäZH’/Ñ£þÔ ÏÊC³•Š,À¥{.Õ¼ƒ1ä înwÍÀ<‰‹‘ÃŽ„Ø>&²ÃP.ûÏCÑòæ±êAéÅ8¬ó3•&Kì²ñHücJ$)ä0öÒïàéæqDW©_É~Ìgãm=ÉÛ²·û­ìchR|5½‹ð¦½ÉjÊ 5å„ʤP™©®½Ì|´Ö^fÉÆFcR"?úö—ºÇxBYþ™K›¬8-¥ÉÔ`ŸÙ¥1>>ž mný™sœ0¦ µ—Ég¶Â*5BÿÐ/*ID¬B·èÁØüq›JC–ÐøåO±^G¹Õ)W—al|æÒ` Ï£ OJÞ‘’äáÝöilxÿ+†Ç5ïªB ¥€8×étº¸Ñ™ùè¤I¡ óÙF§ŽÏm îö[}ˆ°ÆrcILåWf@­Z*•{”¦¬ÉÝÑP™º€5ò«Ôo%®¼7ÚÉbÔµO$`";Ô„ƒþó”Kå,ýv}\ÿ³„ú/Qû¿.TfþÑþì@ºÖ¿$òôhýS¼ûSsOTœ½”9!”{¢ªð(¯†j¸”שKYk’ØzŠ/ÛËU«q|²ž ŸÊ¬J­°¨$Tf§´…j-U¡†{%¶¹YëÚN"–ìøu¤ÉœJ‹ZW[R[Öš¶x|zê:Î4¤²»`5‰,o´ ­ŒühÓàñH 7<®Œ Ê·(ˆÚŽ18$9¼Ddz5pàC¿3{á/Bà X‹Ð˜‚Ð0sh¬ Ä ñ@24"c~"4£BÃ{ýO…†ð—6¡M@¸"e×ñ`—ÒáOã4ݾg±¤´ë°w4SÚ?Ö£|hßÓdÌ;‘Ží±ïiÔ÷jÙ]›¦ü[¯«bËÈaàNªç¾¹·¾Î—èŠ&ž%ö6Jüjp¯Úlc¶¸Vmñð‰¤ãm§/Hr¿ƒ&Êy‹‹_ç”íA£çĄ٧¼ ŠNŒTI>;WXðùÎ'¿ÑVIöqœZeDSµU˜Õ†Q|âÏ¥$…Rè³Q0¹ñ ¡½'¹i“”|¸c5ÿþûBÄ×`K•GaòŠ :¡6[dµ·Ëa¼q'A¢”b‹a¾EŠ2»LâÉ©jÚž¨}#V°ð ¦ä .·r»Ù°ùñ×?Ä$ÉÊ»NØ¿R:Ï î…&}ö)J‰Ñ‚û“ᛵբqßuÑuã¤ó›}mx¿õD*×nìÌ{úñ¥NVtþ“½_R2‰6ÏÃóúàµêy«”öcn6ó~¼Ì0 …²rüëDß@s+í욘金ÌJ­áö(LÎÞ&‡àð³·zü&¥›­ŠŠ¤Ip Zß@@ô KÙÕmg Ëb9TLò]6 ¹0ŠU/ýeLdžjB)97Sçíb|lʦš>ò%òü›î×0„;O›E¶¼âMÁ‚9¼8hæÃ±O`ãb'jz wÀ¤(`ïgZý*¶½¡G“PJ_<.^‚¾š¯ÄiO& a@Ió×$UlEC l¤¬dÃÑi›B"•‡&$ž/üŒÏRw_ü˜‘âÀÔ“¯4O^ Å^ßÃá,f´Ý)(K™1ðVtÌNyx¶ä+üë`sª|•ƒG‰ |‹òµÜŸIÁ‚ëJjcÑ‚1¸À =ò Ó­þóíÇäæ8Œì­¾‹Vwœ²R}ü»ÿú¿ dOì­r°†]cÿ¹[`3|“Üü$fâó°¿ÀS¡–ÁÐr3fÔæú9ZQö³{bPÍ` ¯F¨ÉA4òp±sîáMv)Ýró&Qº –(²G±*ÓÛaâ]í[plDÁÆlo—ÉÌyM´(0›k~…ÞXÙƒïéPq‘ç³7/ÍD0©HO²²ßôª¦õØm‰>6@[ÜmòŒl«=²]§¨µb‹õéEzQ,6¤<©b±)½Èä6ÚožXW]˜yZH\×!ç¤å@z7¦·Czé ØÞ)ÒšL’ëõÌE©+ÙVÎÎWÒJXÄ©Ðþh%-@C,6ûqJšY,K]iðîÏå4 72ÄðînžV¹_%‚$ÛÊîáhÅWÀ¹Ç‹eI6vgd¢hsgr9ûsd¢Ñ£çÁP’ê°²âNßóÞ!¾rHÏ+3Ûm,½“øx {U(™Î4W9ÖÉÈ輡gHuEe¸Þ +ÛXm¬tÞ#!÷7¢ÖÅ”µNtêq𨹬ö¬.T~gudmÈêÊêÌZ‡<`SQÙÇ}Ý&115qtʲÁ$ª#ËžZ|çØ”æâ~24󘚻ÝFaU÷ä–&ÌX6¸¹Û³Ù0H=CÂWª­Ë–a^$Æ,Ï^$‹e×À—Ô]êtÜM†@zñ7ƒšêt´Ckê0ÙÒ×IÉèd›ÈèÊûÝ Ï§´H60}ü:]`:ÇÖ*&[~·9Ù=Û· W¡ñO§!0M-þ&¬š¤VnߣעvA„éTù5¨.o×–y¾&›@Õþk’zLŒwŠ!¢8‹9;–Ì Ì¼Q%¾/À ïÇV‚ÿ&nÆøî/“³qqcUû}KÁue§n̵-¥c44™Ü¬Í&ù äbc•‹ýíCäNȟЬ6£}¼ø% Hó/#ß×X±Ìkp=ã=:î‹°ê¾MÚ”ùõð±øÈ-îÁ‹ÜᎠ”hƒš¬naÕÌ$°j~’ºý½v«ö§.Ý?Èbf4«Ûºö"ìDµ¶Ý²¡þ9j QÌ]‚d“ö#¿aIžeP†ú Ø 2»x޹ÐN•:æv]ù"ï¯TTψûªëÊñœ:~(žz[ ÈT‚ +¬a4•JÜÅ™c©[°”Ûœídg6ÅóMÕtâÝE€Cç!~3o_·I bù^ñC±fNIñ«ƒÏÁžÉ{6` )·±œMºHšC:¬å*Y<Å•»@\« ÉÚ„çòsàÊŸ–ÒI´™›˜üëD/Ê*Q‡šÒä1 Kwhqk,^œ… ã› ‹ëÓÕ7 ¾6-z”Mשß¿µœ} /ZJ_4 ¾g饙éZaUAº—k] 4M·8w4”^ ™yâ–ö£ú΄-3Ó5-éê΂t-þÑ ê¹Ž^†÷„U¥éjývoo¼Ð:Ò½½ƒ„{ŠxËZƒà³hU<¢’é%ËÌ— a<&l°ÍV·”†«Ô3<\ëÌt5¼“‹5ªi2”³=‹âåiïÁãlÿZÓÔ‘)o¡AHþ±†ÚÉúÍ·MX¾N14M צCó¼í:˺úý=¯`úl¦# F˜×©K¿Lj²Çž€¦ÏÈ–•¦k‹¹&Ý$øækhdñ0KWi"G–$ø¬J ÜmeÇ»P.Mõî_¿0Ï?C×2#^^¿ž1šÈaÓ¦<ñÃô÷ë,–ÎE—Â’\Èí¹í5µ[EÃ=–Ò‡ôž³ÐƒC®““ø÷p¬·CO—šÀÉ®AU/>2Gð½€ù†W-¥¯ÂˆUsHˆÃ!ëhãZÖqSAo¯Ú3" K›znœç·êzn t'±E—NÉs ó×c£­à+/ «ªÖtA°TrÇÃc›°Ê„‚í?赿h;—™Ýüâ=y³;Î{r§Üâ6§zrÅ÷ŽF!-¾§%D³%ýÓ@ÁàT2Hõ`,ëô Ä2÷¼Ê­R#ú1]ª/² †$,dZ|ä&O}?xÎ-7Ï‹{ÞäIxû4;á…ÎóBg½…N^Ó?Ô¶ i˨¨¾ÏAéf Pgio‹›Ôî1ÉÀdjòèaÞÔ8oYm‹sÓ¯¤0 Þ6­–á5 Z÷¸>« ÞÆóè” ‰Óß,šÕM½äQO^|äʱÝÞ¯OÂY8·«~7zŽÈÚ—ÕuÈ×Öx6ÀH†°Êt9úRÖþ$ê^\¶eüÖø½Ë¡Ûþú¯H0<Žù¶¬¯[Xþ"Ve'Ê{Ü",õÓo¿)‘P@"«ÔÁ€Þ¥Ò‘{ƒ´!vºÙYÿWŒÏ«öÇK©yÁ¹ÒIR*$béª`2þFp†Ä¯õÚ”lH/õ©¼=Z8½pr“4-ðœ5'å³F<‹‘ä\-¦Ó‹óÊ<¿Y`…V ¬ËβëâU`Ï6EdgHÑÕ¿w‰ð2U+ƒ:Žœ¯MyòBmÊhx.ý“6åõ ´)/Ãç x*áû½™Ú”Æ‹´)ë!_5øÿäŸZù¦áZ]\üàÁ ˜ ×Cš¾À¿þÞ´ú²žwà9JûÿOÝ'A­ÖÐ |‹æï&‘¿KhíÔЙ”ŠÞæß3Wþ¿Ï1g¢]Ò_¥Ð QžâŸ]öÏßËÆï·ã÷¼˜²uá²N ï9hÕ†Êʼ=H'Á·†V.0N©™kBaìÁOUXÙø×ev°ùq® JF|î/AušeAÀh¢th¦9Ío5¡x()¤¥Kd³’ñW*žÏøÅJð×¥… ±ŽM¦eÂ÷ü’ _Jý%9ðaÅ߹⠽¯Û“!NdzÅSu•·;¯Ò_b"‹°š1@ºÔ<ŽìEÒù²$,ÖZlÓ¦[܃_LðÄó‹5ílw:2xö@xŽÆÕpæˆËñfêdïµß™#´j1µ,°¯ŽVVëŽÛðµãŒÐâƒ(Äs_ºã<â$uW„®Å?(½±ÄýúðØÁÀ7–Ð{Ëé=)bÍzâ—|œ€5½Ài¯Õ°?Ws)“Á·Ï= AG9ûz\Øk ç‡ûÜB¬‰’,Ø ;®¨ªì€Ý õEö Øé“éäA<ø÷@ÊÊR$\XÙDל{Mõ#VÖ?26yèÕ›`=E/Õ3Í:ÿ̦Ò•êPÊÃA˜P⧯<ÎR v'å ®)\Ù~¬Ì•I÷Ÿö‹9"¤ãûÈ¢t²G×tG/gêûÉ4È™†~2r¦±ŸL“œiê'3IÎLê'óÿälÉjš`÷hÈ¿÷-²j9„ŠÐÜmÑR-q:8…cþ}?}³´ *£1ÞOŸ°~”º®aH}Ãéëüôï_®$S”mu²3jãI•ºœ:Ô Ž¹âòõÈ¥Y™šçÇÈ+ÔbžÞ²¥~XÀ¤*·±Ý×ó2ŠÕ¶ùвëŒñô./€q¡¢œÑ „ͲR³®¥Tc ewˆeÙv4˜ÆZ7Öä/-U^Šƒ—‚z«e½!'Q#±NVU¶¢CÄ"íÇô-sôXP 7Á -Æ–µ—24ŠÈõzÜKÞ vü„|<‚9¹XÞñæÒƒm„aðe»X•íp¥?ù.Rçï7Cfñ½ ú¹m\U@“­nZ¼xñá¯ÅŸÚ÷%ŠŸ^¿M ‰|Ú/Äèi^ÿC¹¬&j2ÇH¥pªPgžZ% bºçMZ*& †›Z’ íÔvÖÎéžcëAÀÛ‹t¾îÆÁ6;+ãaZpMâ®®¬ð/y7rQ¾•miÂ4QlÚÈQW¼¿i½„Î6Ù.¯cí!£/$p_¦À§jÉÑJ ÖY 1݃°ÖÅæ¿Òôm]§È€w:¼oæÉoƒ7Åvá ŠžÃ!ÅØ2“@²FJY~ŒîÂ#󢺀¢Pq$˜^Ú#¢àë†4‚8öÁqŒÕœÞÎÖÑ»8;Û)^@¼ÉÛir «êãÕí?êµGÅÓ·xÒ´˜â 8¼ײef¼Ús>ziLÀèÄŸª°ûcÂóÖÕªëáØ[Ð+…+ˆØTp–¡õ/žWÍRâN¸ëp½œ66ýµ4¶ÁVöôl4 Öqµ÷Ýà/ûi–V>ŽÝYäCÙÊF>.‰=#°"Ôt Õ„ÇÀùÑÇc´e tJr0.GIæÄ’ÅXñŠbnDàÍy«ÎVnegR$»Ø iÈÃjÀ|M¿ùd?áÛéà!0–’À/©0ΑªZð=¥’#=€ù¢®únD)r`’ÆÒuk|5Ø,®?/TíI€“Õ-Õý²|u~nµ»w±EåþBìp¨—óš·Aâþ€i˜åó[ÒxÖˆ‡±>g Xm·v&T+Q 3/W‹Ò?­CËô- ¶¨º’‹I;*#ÝF7íÕ)úÆTKVƒ¼#uD\Ž÷­.ÓÒtàI¨7ëƒHÈ\ìb¹Ï*Ô˜û8 á$ÇØ`Nœ|§À¾SÔÃ&X‹H¼Ÿ –‹]@{g£]+·IÄÒv¡–D§Ž ÀDÑŽo%˜ãî¬ñ{8ößâËË<¹®hYYµg<^úòµ­ÎH÷Ä­N…q(ƒ¤Áfî߸E÷Û[1?¨ß”ôKâ+f½ŽÔK½ZÝÒ›7Ѩrº‰Vú#@Á÷›OB3–÷ï¸"›ÄÒîÖuª.ȃiý ýزá-&‹ªUYC‰oÀ“U×tÞí[—†VßÐB¬þ‰`†˜˜ »¦{_¾º7»—tð:ì8ö#˜,YáÁ" dö *Œ“cbŸŸ ÅÑéøâ Ëÿ.ÎMôñî5ÙÅqè#Ãá }ÌMMÅNØÒx•Í(ÈDÝŽa™*·Ö­ÏêÖeí Æ½‡ š;ß}Nn©ûÌÅ—gÖª< éëd·þU ÐúiO3wÞZ÷5ÙBV#óaê  CNöú3’c}¼Ç½H°QüM.6k&÷ËËûö9Ý’'Î90Ø;—Ç¡Ï “w¯|VÌÒ³;Þâþ*ø l”°¡[»Eü>±”.ßo­~›@ò—Å9ª…qy–u·òÇתÒÛ~ßú³^¹f¦¡˜z,¢“å]«?ÅbÙ_Þ„IB4”êˆêt k,OIžxøk‡3ë %^+‡-÷Äyͤ{C7|sx kîRç¯ÁÙö†nÅ´rÏPJûÈ<ù\wª7t¦{lÍûñ2§wÁéR %ºdêÈwˆAÿsF`º²¾…ªÂæ6OozOÓ rkp&÷Z‰€”±zBÞ _ò*•Z¦ kLé–Ϻtèv’;¹æS¥Á÷8Ã.ë=¡»Êk-]ž"aÍ4µå#Ïåš™é!o‡Æ»Okù»ã¦K• kT–.¨q—Rã ±5bUT = ¾NÉLŒpÌ¥¯m¿¯âA¡Üc1}m=¦ ‘0‹;a-NWP“%…‹ódÖαó)[­pø«±¡³Ž’·a‡=‹$IìíÙ¥Fƒ%w>%?u^q¡y×I~á@ÃÅξZ}ÉV9ñ*)ô!*¨º6^¥ðQÍg¨1¶žÒk ƒ‡·Ÿ?{Ž#žÒ‘êo‚½–«ôüʬÐ<úá`3¯£ xÉТå Tˆ½‚‘ÝbËÏ9 sàÔ*ÎonÃé_8r¥ÑëG~õ¼•uðmž’ÎÛ·LÛÜ&ø_€—jj®'}y&Ût\¹˜ð›*4ãÝY'ûh&§¸æI½É:äÛ×xŽV•¦ Y“b+¯™•ïÁ™¤·Þè튷üV¿«ï½cØ-xVcËÂÝÅü2‰)½Wü™´Ósèj6¬®ƒûæ¡W3ZŠóq@Á.`âßTDƒŠ¹F‚Ø=Ñ.ójX4½â yÆ ÖEl!Æ~2ö¶rvv2‡B Ayã[ç1H9 - ¼ ì ã’¶ƒÛÌ C‰ˆÝðBe+ž-Âò£ðý=T­¬À—KÓðí$xus8”ÐŒWÍéæs¬ICÉŸeqU²°k–”—!çyŠðœBmL>ÚÉE¤Ã}6@w1 ±Â.ì~p$†¼s–³™ñØo×Bj»a’wƒÉò>©õ"nýLÚy:ºÝ‰ýVLb'…Eÿ#b±ÑÛfJÝýˆDØŠGâF™­ÔUÄðñP¢X¦›"wˆ7e)ž‡—×FŠ“9¿ üŽ“}xe_vbX'0;j$ä—¼B²uƒ¡k‰ÌœJüôƒ|D—bÄ=—“ùJЕTMý2B¿xý7TÿMX#öêetO¿H¦¯ñÖ¢ÄkT×BÌFÆ•Q\KWµ¸¹ªçM,‰\2>ÔSžþ¤G“·Ò} ±û°tË‘ÄëÒ½Ãܼ;{þJ‡Í™W:˜ÌÔS®ŒjÏ_"a?Bþ˜àˆ I"c”%2CEôB¯™9@ß%Å Ê{c Ëûa|NÌ›¬Fph;† ¾¹ ‰ØÜ¡ûh޵|Žìc-α©Ï÷³W³з3"!V™À•'•i^xßgìÓö˜iÆ-)8xšc¦Î9P÷âú‘Ÿ[XÞ©émê„ÖûQøØv<<Ã$_¨½ÞÆö+¢Ø*Â~ÌâZ‹ðì¯7<…­µLgµ9ßAÕûf¿öZX†Ú`Ì2¬7öƒà8Ó0`è²{UÔÝCC 40­×”»b¼: [á ùcx~qðr± 5+¶r©Å«ä{ú#-BB`)ûkÛ¿×Èç9R%yH€n4h7䣿 ~yòbšû%(5ç?usI¼9Xî<$Ã`³VÐHÔ1ÉPŒ4^oýºåÃZHþóS$žêö†´ÂýípîN²´GžÒ³;ÒÛùzÍóÛ“óDý<ï‘Qž’yJLžÉ|iì¸6ú«¡ë—Ê]ßÜsª®W4žÇû^Õµ qŸæ½Ó ^„~Ѽ‡FPÕQ΂ü.Ÿ,!B~½¢Ëà=ª|oªŠ“Xܦ 6ƒ°¿ÏóÖ™†>¼è'Î6’›×TÿðÞËÕB3:ºGþv*S¹Ï)q'—¸O«–@Ì™Nl7÷ø{C¡µx¥:hX›†qk/âÓö»ñ0ô&”æ9'¼G#ɃŠÙáó„.|h!]ý6Ù(nƆz^ü8¼¬}¾mc³vrÑ~,v²gý„3~ƒÆÛ‘faõ?Š‹ Þº²qB Xýú-ܪGkWÇäµ ÌÀ¹‰^² ^^2ô¶!và8y™Æ]ã=¦é*0ësq; –§©#TÖï¡¡X¸Œ#€´2is"€ ±‘ÑòžëAÕ¦à…ÚÎ=ÿâ‡#‰Ñ¿OÈ£xÛÉî pº¼T£Ý’i¿ß¯9“U— À¤ôCñf•ÅhˆÒÑÇP:–.¡u@pzo±:Ê$Ñÿèì"kËÚ+ŹNx…µÁ«œLuAø ]2Ó¨5ìzÑ(Â%~ɶýHHSÜL‹õx1Ñæw³w~$I‘W!:šU†Ú!~ÄÆÿ/侺‘% 8eÅH~“6,cz˜ü.Ωʫô£Ò°8[pâ„PqvÔNaÕà¬6_·;K‡Þöm“½Grï8CXå_<‹ »À‰Î¡¬¯Û³»ƒÛ2dµ¡m” 2çÀs-<µ³ÐÖ¨e)úÿÇóŸóŠü‹1‰v—_g–ï†_vÇ{iÍh?`;ÞBô€°¶`ü^o²úÞÞÔ;r„U‹?™M¶±mðñŠàü¨ÊlúV•ªRÞ9v§÷ÛxoGbð¼wFbÞ™ïŒÁ±âPÔÙV¿‚ò›Í¬êKBv1ðÖ1-ÊËʇÿ(G°œa@/gÒ`]á§ÐšlV%c"t7ž áÉçŠÙh­£]ÿÿ´ð+Û‹ Fq?û"±é|aQ~²| Nâ;8‡x×0Èoï5µÇØb,]ˆs©ÝëeÃÜç–¸ÇÉò Ÿé»Ã4¼“DèøQ}§çÙ©ÿ‹é!9ŠòÛP”OSdÄ»ïBë ˜¦ ²—Ç‹ðèZ‡-`tÀ¼ù¼'¸>ÆÁÊ€³^çegÒé#é{¥õß5Ü+øp/ïU½1¥/Ò&éèÿààÀ!f=‡…ú®ç¿\Ï=|=çyëµ{GË‹ñÔZâ];ñ=%ÿOÖ°"r åõ3õ»~¯¼~ßòõƒ²0¾ñ{Ï€ñMÂ.Œ‘V0ïñ/"†³fªØñýïÖì*yÍ6 ¸ÿçëwŒorÔúÍå|gÇ€ë—Züÿ~ýÄÌNùn|/6”~Š÷Hаôu:1üó«é)…º±_½]Ñà§FúTKŸqÒ§–>Å<ÝÚfâþ·0„öúêÕñ8É ‘>U*²lo¨‹Yùs ÿýÑS ïùEÁN"¦Â^ö黽¡!ž‘b"ÂgùêŸc?'ø¬­%RÏ…Íú,•À©Ý×OWf ÔZ£l™’à9XÜ &½ÕqK¢÷½>¶Yú„ظ)`Ö×¥y;4¸ö“–-°'p«y6™oöÓóòèyX®½ 62€›Ù Ý}»ìˆ}_îr”ôí,Züó”²#¸¼BÜŒ]Ï«»ÐA± ’\ɼo^á‹8Zéb:oAí› ­0õì<É›‹Xb¤Û¹\ÞõqHRÄH ›Ùst=(µo€ö«:lvà¼\Y!?ìò焚(Òá/˜Åc¤v;ÙëÜùPq%’„íªZ[¬7"Ù^¿;ÊE’rÞ¯\|šS('»ïLº&btq™`A½JU» €nh:Y×gÆ'@4„%ÈUÿÇ'U­û-Ý #SØØ±"?]‡~¡A’iyCêF£è0z×åBž¸‹¶} wx€·~q€[ºb]] ùh€²yŸ…´ÕõI|‹¹òð<@ç*‘,öü±‘žMc'/ðè£ [ªw’~h¡é,O©·=ÍæÄÄìÀx "r¤úþFŠõi^C.÷ïŽ#'ò–íBÀ‰žÓ¡ˆÏ£3]=ÙÚ—¼n·  «þ#DV±Q»ê˜x纃kc+?…º-g ŽL‰R^D.ÕU€V‚N¹o. _^6@/Š Ó.Á-"´®‚]_ )Óbhš{ ¸S+–Ä÷¶S‹ïêY ¹û®zˆ˜„ PHö¨Y‰<†¤iîˆßü÷—òÞ‹d܉âÄÆ±²R²ÿóN¸Ó] >ˆÒ}ì}x)Gœ,éFr iýsä>ŽÅ>žÅ' ²Õ³¨Õžö÷¹U!Dçïö|“¬/ñ6Âä¡+$苽};Gé(9Ô6¦²÷¶çªÿkDz D' ÄkË]lÙí|J‹cîßz’#ÇN8anƃi©Œ;a_,•»QÕ‘Þé§_1þûŠ¥‰ÈºïlNW­`.¬àXÞ\0/*®Þ*AÅ‘N ÊØŠ—ê½êíððz§ÅÀFð’ÿ;Öñ©ØºdLïˆÒøF“;'¢ÖËŽÎŽHD Ý?^;¬éÈPø½(Ã}“÷ˆ¶ñö¦#èÂ×t]¬ Ëï…RMGÐZ¸‡Ôk·ƒÝM=ç¡–þÈYwx„Uþ_o&™ƒ Eè-Šöµ~)ŸþA¡¨µ³y~øÄ6fõ‹›!½¬@,*™â/+¨½†ÙÕÍU•°¾þ›JØÃï÷íÄw™§êD4쮎-+Y.êpøÂ-ŸL>ûõ0ÁîqbÞ¶)Ë´÷óeøq§'Ð>¶Î ƒÃ× s]Ýz3?|Á¨–W;º#¬8튼U‚×;w"Ç -ÉÐ̱LäÍKZ‘iÑ"õLé¼gÁÁþ9KJ%àpHÖH·Ü4€Büá? °]úŸ¢¢&ÌY^ž J¥éÙØÎ§Géå(Iç!uòÅö(ž†âh{–3»%úá­®~í¦Œ}NwD´(Ty@·XœÙôk ¾io9êc6„B€çß8ÀføËL¬'Á[¿¼tÖ@³°®Mš™Œ"íB)¯Vh‰·°VooêQ10Íéºã&b,ƒzI½´N¾¶;èä{>&Ì2¸3Ä:CÖ¡¬mœþ°n°ˆ%aò ˆ“íA=”õ¤r̓ÒÀí¯ñcàwž÷2­L]l‡ÚÁs'các²ŸC cãDÒõd¨Ÿ‘_2Týù 2¶¼ÖÅÞEý+–ýdRp¹™æTk¹].w˜Hcýœ©~£÷0òJ\L‰¼~nFÜŠž~o“Ûð<.ª ç…ª˜ŽWWù+U’“œÄþ놱¥âØÈÑ‘]gW¢ã¤*7ôRc^‰X:O(^4E)¦ÓÂU&ÓñòÑóò<ÌUà yzm—•­©ŽÛÉÁÛÎ2žUÀ»þ¢XO²1í°›åú=/J¡Lc‡»Žôùд73â<ÈÀ…o6çð“¾nÏ…°ác¼X–g‰ei¾nwEð+1« Ð!¾Â*CD˜Éqzt¶ÈìN¨YpãÈ”`\Í,øÀ3>IÉÖ$CBM†û2˜åí‡L'±Û5{æË™x->8’äµ&[Í DË3ÍÊ+g¦ks“ÈØ»Þ„þùmlø'°'€ëh6çbÿ[•‹6]9{¶!t5—07"Vöò£J‡£ñ«S< ¶ìA­ÛhlPI¦X– ?tÞ’ÌToc²–¾iàÚ. ö—¤‰ef˜ =¤ª¹xh܇˭ì¯\ãÏÖ&Í÷óRér;¾ºV” ©OŽ µ"á'³D"O^Í×£-Ås* süpÞ³±G)¼hëtÁ:M/Î6‰7àÝæzs<ðdúç›Íþ›2Ë ?\f ã¼þŒïÙ p¸[@Þ^© ˆ1’‡Y%øhävÂ0Ÿÿ¤E›ÅèÁÁÐ ÀÎ ùJ è_é "…æÛðÚWˆî\©?Ô¼UÓ·‹N„B‡;#®Òk¯,ždoŠo¾9 Õ*Fw" X”9Å»Qç/ËðeÒÅòC©9z)gåä¹õ¡²ŒžÓµ;ãPE|x) ¨rˆxョ•á¦CNO3¾½ ¥3±O“j0~…¿Ôœ-–™¬¶à‡‡:4îÛ¡:Ï-¶ï4šÌB>›8ÑB³FÃmè‘68¨ 7ð¾ºï|†/‰ï½3Y#4«y1“X†Èó}ù’é¹úCxLv$¸ê‚‚ÛU’ÅÒdôf?oÛÙ•¼KùR— ‹IŲT+Ý|ü”Ò¥Kc»$úñeÞNý‚±Ó il"±‡t5bô²gXøÜF²Ôè6Éýx˜,MŒ9·9‰s4CÜcÄézÑfæéS›<©¼4â0è òKo=&#ÆÀ»ae×DôâIqº ;ñócJ'„V žÓfU߀Ú1ú£Ü~õGÄUþËHŠö.|XY§¢7ÖurÙXu•ä—iÅ+Pö_ðÜ¿¬¯þè)úѹÄÞyMWÄ«a/,2z»Ló¼WèÝS¡\˜u…“0OÄ PÆ÷9¾C‰ó¼u{Gz†I*»u\ºÅ…(!ØPUQ+¯(2Öª¸bùŸ!R•´ÉÍ’6Ùäíópm2p“l>¯5"á㼦˧ªÝãy¼6NÞ¸X¾\ª©=£ÑÕÔ­9TÒ³³ÙÂuãÈ~,†ž øÅâ,¨Ó2F-Ù¢SŒ)ß Ä®v£8Õ,Þ¢[»ø¦Ÿ.žBqº°‚e’®þ2ø5y7!ÜG”Xaþ|;a¿Ã¸26ð°öíÒÐWçUÁ¨Ä ó¼wæ&÷·yÛ´ÃâyÞÜeÆ@ö2ÏDxŽ2­{ŒãÔËŠÈ ºV¢ |¡^,1W{»Ñq+þ˜¦¯ªô—d£•Þlƒ³–æ´]Þ#ê•N¥jDÊ‚´ò -Glü…a“-ƒ· ×í}Uð6#†äë4‘\ëܬ<ž¨‘ª!cÆŸ3Ãò-—o}Ï»7×éB_aVrüK+ÿ6ÓœüM.RàHú”âÏ<¥\RîÚrþ­À¼ ×Ù÷›qz¿ã4@ÆL̘cË:Tó ÌW90 óá™Ïܬûüeô¦2iÇj ßs;&¸Í¦†q+³1ÚÑk7a<S·šX62«“ŠRÄ¡T¦•wÿƘ2H¸9˜ÿ! µ˜å?Bóü@6Û™Óˆ¿\,ÒˆnX$תاñ¶ˆ‚}_…4e_!g¯’²126“Ï€"è‰7Oô\$C ÐaR)þœérÚ˜4“ò0©Ä „Ù_ŸC˜ÉA.6&2œyLqºæ;T[ñC«ÄÆÑVò‡×וÕöÖe8Ä“ÿVÀÞÍ ¹Øá±Ò k¼{Ž‹½X¢åÖpþ"»”-|]­Âïzwž‹µ†ó îLV)åÝff“¾'¹“¨f{J©—¼xz†"¾„‘ʪÉM–¿Ñ$E¥n4ûÓüþÆLc¶¿1ÇߘëoÌó7øKükÈÉÚ”kq56¿^î_óý%OkÈÑäš6ú»žþn¤¿[èï'ôw;ýE΢k JÁZfäW´×´W%û‡s`Ø!-1ˆz-jsà¨x×l”(AÅûråáˆûÛÅ.›“ýSh0˜\ãõÁãzÉ&øjçäzåp¶5¼*SrþVsÖ$¨G—Qx©×Å^šá ðsñJ: †¼½º;rBfßÞû´)’`k²Þ[¬Ú™²Ì"˜t¨(Sí>M¬Ôã7r1Ph !öãßɆ8ÏN4J>¨÷žÐy€ÐLdxÉý²¬¤ùI>8Ü{ñ~™Yì`—¾FÞÝð† Ûèãàu˜ä7™ûŽÍÔ¬—©„fôNUâ¾½Dð}…²È#Zaég(ƒ0TѦàä6⬭ã3l¼ü[úQ?^äVœ,[Í~Øí€bR‘Öú•¸åì:Wƒ$&3»šö—)x4wÇ Ð”QjªgåJüv~³â·+ñ[~àÁ\|çRx'Uz§SÏÁonü–ŒßþŒßpž-4ϲ_Ä ´·‘¶1åoÜ+¢Vv¼Ç†‹H¿!˜u¬¯6e <ùðØ¥çWxÔ°ºÃà O5<×Ãs< ðüž'àyžÞG ôxw ê3ç5Õ7í-R šöz¦Êª£¹þÅ÷å«3n†S+ïYé"„L#ceålá*f l¬ïy¼PECˆ®·ÕâÄvUVôk§Šü“%[P*çÀ¸à´Œ>«Â¶äa"Á»W ~„6iÐgË0Æ4 ‚„å‡pâ¶Å}‹Y.qzqéɃw™Ø?ò›?qvÏYb‘ÙÊ.»WvO9eegJm4¨áaù“øî‚¤µßqÎ!i>[ UüݲRR VV «LDœÏ,ÅÝf ª.£È.ô(ar.´\ö7 w ¾Ù(Ùx±6GÚ(yfeãK‘®S“8®Æh .v¢,WÂ×c ¿Gˆ +Ø:÷ا>IOAjƒ3·I‡ %lmT°µ‘°µÃ(Êœ€Ë½OwâuG&޾o¹‚£ùôèƒc½! óÂÔàWÐÀ2LGl활ȄN{Ô’àW¡,H2Ñ øøjÌ2û¬Â3!’ìÁ¨ øñ$¹ ˆ*{²¥ˆ-{Î¥#B×ÿô¦¿¬L/z¹ëgz¯±Ÿéň-.öäôˆéE’¦wÌw1Ó;÷7½_<=½#ùôfd.4?zj¿˜Ú ^’¦ÖÒï´Þ!@ÿÜпPaΚ$(?;Ë™ö9Y©,Ý$<#J¥¬€ðžæ0·Òvª.‘uÍl]DnhûƒÚ”Ãð€Gýšá¹ž'áù<—>¬MqÂc…g®ôÄ–‰–o$käý ›ÀÁžFaK€)ËA¦ìúíD÷ÃÙÊgÁlàŲ\䡎È,” Y¨…zPðáÕèt¹[³ÑÜ'gñ¸á½("pèlåñ+vÅsdâó!û올 ŒEòF ~ðLvH´‘è½öÛ÷YŽÍó^n|¿a‘B«L(ÌZw «g“ƒ½08^ÞZHYÂâõ¤ö2ˆFEýC{ ž‘84·QÂBÃ0z²âT*Tîoíµ²{b|mâyuÄðMB›O¤Âðô)Œ^"m¬ÎA Zèëvçˆô®¿t©eÎöµχ¾¾v†oçÉPhe.ÙKaíž6y Ý Ì“¼nS6*‰y‰'Ѱ#†ŠçëÌ`9r È3ŽËÚ‰¦Â8XáQ´E眢ŽsŠß‹ÓUhSW(ÙÔ9ØŠAá#»0N¼Âl(Ãêà«O>úB2¢6òn„U„ Ž–s{›”\ôgT’ 'bVÈòœjf?œ©Âò¯µÒuâ!*Äå PÉ• ¹lh²øuLõŒ>­Œ=mŒýAK™Ñ†0ÒýŸ òŸ&,_©VqÏ7ùÆ>Gà»TKª€5t#~sã9tó í²Ö^ï` Xúå7 ‰?Pÿ•8Í(ÎÎXl)C*¡KBXž‘t#N<¨Ü‰šKÕ±h3Ãf/g=*Î1§ÙÙ-%ñŠ\:Y t fÏ—13ééþ¦Ì=À=„‰HF¤ùÜJ i¦r¤ ˜1)xš‚#õˆ#“ÄB3 ÒŸ–*çÔCüœ¢£Hìï(2ÑQTÇ¢ èæj:‡0~Ûj:„®Âot¹ð?ÓIÑk'ÅYºˆ9Eõ‘'#v>=c¤ýŠ× 6,ÕÐs2æpâš?œèî•òD'7£‹#;‹+ŽškôIBsݰ;öìÿßÏõ„§£çZ: î[ò¨À_> Lòe}:â€"…œPìê'c(CxS£Á®O¹OŽ=[—†&\"*¦rÛhRÏ·Ú$„¼Í‡7*Û<šz{ý!nÙJ‡ ù(ÿ¾A)»¢æ mÊRxšà¹Wz„'µ)£á9 žóáùžƒðìƒç„ôÄ–‘ü£VJ. Sók¬KÆ~™ï1uãÙÞŽ“[ƒ®µ¸†ù+p©J/Kª½žÝú4¿Õ•6ÍÓ£HÙ"èaÉ;¿(‘Âyèd,CãO—g\ ÎÄ>ÜÓ%ŸýßÕG¯:G­ÚI–Œ1($8{ÿéÙ‘cFÈ$:KýT?tÖ¢³.)ˆ ³¾ÄZßø"Fä°ñ¯ÈK¢²Š ²”€î'HdAe!è•ø2ŒEDðXÄ'ˆIܰñ)΢…ÜEýSYÀ©ûvý5L¸§NT+qêD²§Nôj$§NJ8äÔÝE;v¨l8=ÒW^‘ò»"©1­â¾•]‘zb¥6å]xVÁÓ)=¡‹ÅðØà©ø+§³¼{Ó8q»=[´ά}Y‡|Û`÷dÂŽ2ËãÔQþ{óQØŸ£í"a¿„ýÓ8,©Ýg:kvÁn¯M±±-“udyU[aáÉ7Z¶þÒ„õxsFzâñ`êJãéõOc4 t]½ØIòéRsžx ´©»\{£%¸ï˜7Ѭrß|µy=­­7°  ñâËH¼W2d̳HÑ0î ¦9mì‡ãÛ ÖP_H¶¶_4¤Ò«“”^u`¯xžÐz;:ñE…5¢…Í Ñ[wšì/º6-½ã}e‘mæa÷…®®xª¿Qço4°÷³ ¦Ñm`=É¥–Ï0'+û–³Œh×àoÔû“¸|}²Gè×xï2ƒÕÆ’›Ô²{uOt`|k5du“¿u°߇Å.$®åý•ÇÉóR£A»Î{D ¿=³ÅºˆÑ$ÛœåìG"UºINvðòðh.棱9Þ)@\:ëνÐHF‡GŠR+ ñËt(ÒAgöÍf3ï°·uèPÝ­Qh­ )Ç)á£u·+8§<Æ\£ˆ³¡:Éå<…AÑRp(½°|9Ò3NáæÂñ#çáVëÄÍâ –ü57¿9¦Â¨Ûq Ÿ£$îàE{xMî`å~å¢nsyP¨Ñ+ hÅÆò/‡= ¼ÝÂT±R3Çn}• IK$CR—^L`?ºZ6&Í”I^“I9ñ%ÑòD5¸ìì‘wÉb"T˜¬,R+Iëq ‡‰·7ÌäSYÉÄðR£,Nûûžˆ¥ŠºðÚ$iX›ö“DªÖçãQD½Ôk2¼°²÷ßPÓDLJ>×ZξxGÚO&®x¤½/U²ïÝJú:376 g$éCy9hÃQ’ã²Õ¸™±6¥œmËÕ©j5NØTöƸË(›¡rý®“m5©TÊ5Ýg‡qûñõ\¿ë"ý®“µãZã|4__„…n׋Ee2g‰Ü£³\7bd2ᨲÈHfݲ&ù:“J¥Ð¯n¡Vïz«zÊf@·ð6Ÿ¤cNVÇy†9•½ü5N«_¯Xg%‚-ÿ‡?$…F›v'{p‚ªß‹…kŽÆE ¡ÿ[O)3€xTC_Þü>L<èO- µ‹Ud¯GF¯÷®dËmó V¶þNùä>9N‡“Ã3æE5PKÓ 6ç;‹DÉ‹ér8YÅ:ªz3M±GÒåtóš.W2Hã2;ô44DÆŠp„ëQl£ÆÝ=œ‚”à  3Ù6a9Ú(åaÇ£>LsÜJ4ÇüyMGƫݥéá%ÙÖêl@S3õJÌppŠd&R$åìòËtˆJ© ª„3Ø4*™„±Jpí7à±oaõ"X_™ñ–3ÿ®Òà^c@w¯àû&¢0Pðw`Ì›åóØû°y—­TÎ0+ûìeØc› Ô܆¶ž·únó“až¬Üt2ÏŸŸ¼~ç©U²E¥hK•-zr¬p޽ý—Ès,ÛÎŽä„щbY¢m@ø’çNæÚ…UÂâ+©!>T>| kH²9PúwU@·,˜ e¢=L´Ù3L,Iª5ÛÙnÆU×õN”çÔ[³AûTe ,™iØ<ïQC@7Ìwj‚ø9Ò3ÈÛ¥õvæB²Ä‚xè‚ó8\#]ÁémüWE5b3œ*æZ€Ø(MmRêÝ›Š¤kš#«Í)Þû+9kŸ÷ˆF,KhsbÌ€•M*9#UÂ/Z•O¸^/]}ùöÉÉîÑ@eÔªÊkUvû¥ZÉ®õSš™$$Á̽—l®ÑÒüÌN?›•ß)_G1v'EÑ_Ù@¯p°÷ÎÓª$¸<qW²ù\[å`—Ÿ¯•mÄÇð%mŠÊ6Èdµùö‘Ò¥ù-•|¿ßR¨/cÓˆk¢ˆ\NÀÚ··ËüÁÌä½Ë v}‡ÛyE¼5(ø d °/Ü21_/>…òkÍe(‹{‡rãgĦ‰=°9ÉX«BæùÉ*’/$ûvz‡ŠsÈ(ÕÐ!¾‰ï3=¹*—\N³©¤üíbKºà1£öZòN²UŒõeêDZ4%~$np'×,ÁêÁ÷ìib¹gç#¶°©ŽôÜÎDšÊè¨ÏÜŠeCÃðªÊ°êqUú†Jî…`šÑ&–zìçW¡¥i‘N`;,G¯©H`“hx^=/Ζâ¯Nü%L€£|F¶8 ¯ž/gsÜ.Þœ‡£ä©owúvÍ"áˆ$Eº‹=U…Ate‹ t%fKÞµ¥X³›£Ë äW[Æ ß£;÷ô:§Æ²KäÑÒHÒˆ~ ìÀF‹†eâaöÙ?$4ƒ¬Õ4É'+ݤÄ"9Gë7„s„fØÇ!Œû)~„SÜóβ¨GM{Qü-²‹.ñÐ0ÈʉÅãI66ïBEžå'bŸÂâš‚Yëõx”9—ªçj¶m™¤-¸ÞÿG´1’(ô U—–àþSí¼¬6¨Äܧ]d%&^I¦"×Á\üê°°6Mƒaÿ>ûÂYn'%±1cM¸àd„5¼ò ¨óß$ˆÛŽ„ÓsëDãïžjUÌXŸ®QÆj7°M¨ ˜®Cá' .Ûå—F}[Kl‡MýŒ޼Câ‡î,¾³®há;kª^S쀰œx”ì QÞp†j—*ƒv-Å ù¨„§gÓ¦á€í`gü?R7)*¬Ùê&MT{Ø„K¦a&õ¯“~HTtÒäÕÎûÏ4§¢Ö§þHYi2—•¢¥¿‹ þS„¬tŠtÒK6Ĉý}S›"ä›wþAt!:ÁU)jéW'ýÔMaié€"ÿG—É"ÿ¢>w¼i©~õ!- «LVº]¼ä¨`Öc¢øµÒv­^… š§€åŠViS~‚ç;x~•ž`=ð,‚ÇÿfX'm³“4.‰$n)ªybа¶#îZn÷æ KBôªÅûß#çùÃýZyåç¿Gª;T{ †ÀqÌ*VÉ.wN'»üL˜îl8‚¥Ú\ûp+w¦393x:R#ðôFyñ$CraC^Ï#ëz¡ Ñð:ôÃêÃõ˸6Dü[ÇÝâ@vSO'ÒàD¦@mC>@+a~EÌÅF…$‚@oéh<è\hVÅåDÀ¦Â¡_lê ¼(á·e#u#,Ÿ‰ Ünôv^ÛóꈹGÁ—«#K P˜kêÙˆç­ì>ìoøÒºèÌíù;Î#ÒJ§‘ÓHN-¼¨ãž= jaù´R+¦ò·ïÒ¡C$4O¼ËЫGΦ*xcóšêLÀM¤h˜.©§PggZÏl³ýdÖN_wãYYûÈ]»ŠeÒŒ‘ ¼‡”§Ò,;ê¿‚™A?|°Dî{{Ž þW¬šoÔ¨Â&ç[NÈÓˆjE_¶Üó´žNÌqbЗƋ²º}Û3 :Ò'¡S¨ö$zë`¾±êm0M…Šo†Š'ÁŒYÞ¯ß5¯é˜¯‡ ÎÑ à „kþ‰ÖÀr¡†sÉ…Všó´ž™HÐöbePçBªór 7qjÄ•Ÿ×t§ Gp™œ(H³†%Qãõ^ªö ´džw¤¥JßùXÏþã´xñPÈi0Úr\!j î€Y~£Vã?`Ÿõð™aZi&u+\ì^ôÃV¦ÖŽ´‰å@Ð>MnÿLl5Ò§‡ÙU¿Ê~ŒBB.6û#™VÖrøqN_MoëÙüí³”·qÞ¦&AGü¥ptMîT!üÍóÞ•–{/¿$kŸeCc:P=É+ÄüR-ra.¦9N¤¥òQJÐN!’Ô‘\ÿï6:Ú²•‹ ñï?€ÂÕ©þ›S•Ñf6í…Iy‡Ø!£xØ_Ê–”;åt±öŸ$¯­Òï¦"~GÜ‹x„džÎ>جŒ‹ï„¼Û9;OȽÈl–£Èw0T­uî•: Q?ê;L…Þ ŽÝ¼>.Àh!Fâ£x3 ï-ÀT>Ü©ô¨äÚƒŠÙôáK p·#º$N!øüîǨÁPÂÓx6 ÂØÞŸƒç[xjá÷Zx.†çø­2©MüŸÆdÒÒ)NJŠOЛ™›†˜¢þ†äïÆá§ˆä_yÁ¸«¤ì‚> kµñº¯pÆxš·Á÷‰§ÃŸE™B3ŠÙK„f<øÏK"°âåãí½æ·5È>î® cðßç_EÜ)%ž/I §'ëŸÁðw7m Ì2^ÑÝkã™h Qü@w¢èÆ7qLVËáÂ1(Êå,õ»&Ü`î!-E…±g  ùó' õŽ–Þ¿„U+æ¶ãö€>°°ïe©p2ù`DÛàãM6fS2¼5Ör¶÷{eÝ;Dl<¦óX["óPd/z»56 kËÙë‘™xM3òŠu¼â¿DäÏ›&ø–‘R›{÷+¾=fÇÏ.@8žþJÜôp‚ãM¶¹ƒCjTóåâFvqdëùF(ëÐaä¯$× ¿¦,=Ó® QŒŠœu¥˜¿à*É ÑýôÍn69´]° É ›æì—îÇDׇø¥¾¿\ߢSÔ‡/7^Ï_ÄkKøÒçÀO=ÕKh¥•M/’îÓOÃýz!î× ëœ2,Fü îM¨íTÀÿ’6mJ ÍYkaO®A_‹©(2”‘&jÿÄÊ7$ŸK9X½‹=Ä™W¹ƒ}ˆwÄÞäÌú|L"…“}üoå7ù›O„øµ,=0›Ô}”$£ËØȯëQ:Ñ@üÊG¬ã®?" ~å#wñ+Á8΃´à«<¼®B39ÖÈ+‹+ó Ä0?ñM œ%Ðâ­X`bb¸“˜XÖ]¾Sb‹£ ò~Ä/›lœv¢UhLVHÏ0'0oÕ'yäu8)²@™x…·S£=Û»¶öØDx¶wµÃRÝ—ªêãì(ìÙÞ}g_ÏöÕ§ôlÏÿñ»§Ò•J®`l÷\DÖE9(ҕܧÞBF>›oãgUe‡èByëÉÓ©ïÕ9Õ3Ìc¼ë„\Ä)‘´›Pfp÷ÎãçYÚÝÏ›x™zõqEwÜê] dñ6¨ûÖÛBR@¼=ç`åuWacN½œÙÎÆív¸}:'Í-óŒð>zoÅ©±d–Ê{‹œ†o§ûlDZb<°©ÌÙHncâ=‰ÀÁ¢Þ%-jðfäToVí×¹2«6J²sj[@•~p+wng‡Ùí6–q•t…Õ­…WÃÒˆ‚;%¾|g¡9šZ˜žÇ=€ð£E.cñk)ʈ#äyIx…Ô{…ÞƒsR%Æ›5×ñi†-Û—a»aã߬ÏÚiiGgäf¼É€äÝ+@·Ëñ‚[tÜaÔîÇA{'ÙƒXa—[6¸‘A »ÿv>w¥æ Òÿ:mlë ±Lºuä‰;Ô…P$=ªä×Rס©+ü¬Ø×íµél|»Xª SÙµÿ ¡ÓÛÃé(1 kUÞÔkx{î!Þ^³g0*‚:ø›Š[2mlÅ8IÇ©ÇÛ»¨æ^|­eã¢ø Ð ØntI%äå« n!/}É·ðåÒ‘Üfº.àñ pðN&™£&Z'‰Œ›¡}Þ6튒ïà–.$ûïM\ŽÛHÛ¡í"dÓpZ”ã?Z“ôþå¯Dü–דnõ`ðw>Æ-q eÏ‚s Ï¬v¿ÕCM®·±£wÒÙÐá¬UÕjx|‚„€äº~ÚØXeGÛ‘»†&âÏOÈ™.a)âNнH¬*p×-ïw½>&4åògÿ‚vúõ‹ô«°WÎ¥À¡ õå C"ap< .a­h¯?!Ãâ=“о>p‹Ihþ^î#ÍIÂ=‡& wåöfÉ›%ž¸« ·Á`n–ÝÀu¤wÍéX½„°Ì¯·B™Ùá2 óå‘×€ |õF,vQD1XPà¼ÇÊNçŒÖÕ+°ˆQÙÊÊž 'D4ëÆÂßÜ΋h‹ò:#òŠÈàÂäÃþ1²þO{eÊ+>÷æŽÇ{÷¦€n¼;›å\-†aÍ8þ’H§"Œ;k#ߺh…ÉF<ÁÏ lCÂ@Ôô´›ÂéœeŸç½|pô|ÌÅ‚gÞtªùHÅ"¡•"¸ºË$ÞŸ¦h0ßö“rœ ^íqÏÂïDTÇ0ëµûͧ1ïþ#§>Ér¬éÜär—؈Ôaûö+‰bäS @Ì2ÉñnT;ÍXWI¸®kº´)›àùž×à™ 0²Q‹áZUqÒžTkâ´ä¡R«ô`Iû…\ E«Yœ¬Ö½ëvz– ÐF¹ïñˆj_«/E\qíêü¨\\§þ“'a5 ¥‚VqRæÙ*8ÑûƒwÏ·Þ¶Ë‚¹«-˜uñêiøqÁêRü8wõtüH]]†£WÏ A]Ö6¨l¼ðÀº©Þo{×Mס êÖ4§µÜÆÎ'€±ªCò°jÆMS2ŸÆO1Âôеqð\Ïûx~„G€ß#á1ÓϬvÑ(öç›ýÓtÂÚxÑ©/·®F¯‚ìZ4ËO¦éZ4Üigù_…s˜›$ˆ'ŒjæÞ†WmþÔHlïÊ'èëʧhìÅÐ¥@ 1cÒwuJVF$èù‰õìà(í>8¥¿¬$2Ý£±/ÈÑQÂDõçWý>QωjºyðÐ>. $ÏYE¶ò<»Ó_TÀþô )"®‰°ÞC'‚Y&¬ÿym$aÝ'ZFIŸXÜ^̬UìÅœ.ñ€ÈD5›3!½Xì²òKfsmŠ•{b Ñ©j¯Ëjƒ>̹&’×0…çÑûþóK\½‡{_ûiß)Á-_éäˆ!4OA tsiy¤]R^¹ˆ:&ËŸÃæçõæ\»spBØŒÕô>Mv“¦DxáûËXwQ#³öO£[›.K{/ÚEÔúkø•³}b¯|WóŒ©Qw5OçZº¯ùš®J÷5“æÉ÷5'GVzOÐöÿ{Æ—ÿÅö—îjŠäwEªÝW…~?·x¿9í=&鯖•Þf <`Ö2jU0íè>ÚI“ps&-A=Mo.AÙ@K°úy Cb®Õ¢G]ì€>b!PÐÉn~*æmî—ÿ«K´º:úí¾0-%áöX>ê"íWi]+/Ì­ý_¤½oƒóÅIB°¿¡;®` ~C_\ÁËQëXνp5Ó ºæeesõ²Ïjdà• X­³¹.­²xy‹R5w:êà>²ð:í¾Ù÷W ’6“¯¬Ù;µ)·Â3ž…ÒÓÏAxNÀ“°K›ò <êÝÚ”cð9d7–À³žGáyUÒ¯–D7ÅjÔ=}È>:&ë×ìY;Y‡,@ÌÏfˆTh3âMRœÃN·#m’e? Fêw"W]{Ôr^5a7cTèŠ? Kãø|; Ja-¿$4Å{d´SXŠ>ð…UþOöKÒ7àcž·Î¤,0yÆIö¦oTq™ž¸¡’TE=·V„Bö ¿áJZzxg0†1ö¤rû-ª’¡á·ré­ÏN*6%µ5TÖ^uJƒVÙ‡FLè]¦Éê@¾ÉÓnÚ䆔ðÛŽƒáP« 9·TŠ!U÷»û~®zé¸'£ïÙ®J.)˜VÑüîµðn‰_ ÆÒ;/Jï˜ìƬ”¿‡º¹gD«®¼‰9ÍkÜ £2Âr´¶«â£‚J–·‘/Þ¥ xú«`A}¥M™ŸçÂg<»à¹ž‡÷ ÜT“ MÐ%Dÿ‹‹çñ!Xt2-Áè"©ÂòH¡“€Ý’ ÉuÜ­›·'Á=ÉÛ£q§{{P$‰Wæp¥ÕuN Ó¹ÈÉŽÌ¥yŽ“@L·#ÎÌäd_|+Ý&0ä{7 _Ûû*Q†^ <åcqœƒrÉ,kÌõ¹E,GDñ­Ã*#Žê EpZ…5^Уƒy! +ÁÛ;Ì=ÌÛ+¸y{SÆÉô.4hŸ–î±-2]¬|‡±73Rß&eóûü2˜8Ã<¯iÂ%‹^|&Ø ‚ðÊõhÀ§BT;þ¬4ÎóZ º7¨g‚çZñ6ÝâË3¹ñ3ö5ƒ?;VõŠeú¼ænÏ‘ôuÞ6•¥œ§“{&’—²L!7;0ï?Ï …jxÙ³Âö+0ÏE0p¥[2xéŒ?à6àT/SOjÑLnnó‚ß6¶÷<òqí¿MGX¤ŸŽ…÷"̧›ôv™\N¶a&ŠÝΙæÚ¥…ñLQøåÁÀŸWçù1D5V$x¬áŠn?Iå`Eã8•ó„\‘Û åàë9´_eVHt¥©žqáJÏ€Jk¶ÌÅ/(J†D&6è„4\BþÂspÖ+ÓÛÑ–ÀD»Àö5qä–¹·XXz†–Ô½?’úq.|Hñ Ï™Åw|@±¥Ã}‹¸‘ÛBlíE«R¤…ÏÉÚGö:RÈèæŸEÆK"™ÅæÚyìºÙ„Á“*c ð> ª¬®ˆtH8¡í32öƒˆ‹ŒBó4¨JUu8ÅXÕ~IÙ&ý¾ü£ðoѥǸs7¸d9^Öδ/*× ÷9®Ó.²±¥ã†¢QOµ|Qÿ-½Ï¶þ µÄòJ߸@ºß{á7D¦ðŒ¢§8¼ÆE.W”Swj­ì{G¸cðGÜ\ÕsÚ_B!¶Ï'Õìbë–Dô½K<ÉnY*ç9Ù§¯¼óî0%Æ÷·¦ðkø;¸,æwkDµ_A•?ʃqI¢±ÓåʾY.È=‘{˜ÅÝÙÿôö ÙO¤ :šöAD“lj}Ä/'ÛyW¸çØŸ! #ú3à GÂò/|Ãë“{¢/õ¼‰X×ÚÛ#º¼Í1+ß»#rzo‹È9vkDÎ?n Oñ¶£áŽB¹Ž# œu±ÎÖ$Ü+øWXÃYpV½ÿ6åMx~‚gü÷Ú”lx.‡gl&|záYÏÃð<ÏðtÀó!<‚wvÃç>xNÀ3ämJzd ›3ë0+…Ü#x:F&”ïZûºÝpZѹÃ^þT²Ê-”C~.aPÔóÍbY¾á硾øÈ틦)™è–µpÜãàÕáÁ›ydnd06ãØä¡Ÿ&¬‚#•2<øæsnp ¸ð¾¤X°ì¼NÞ”“€±Ìüu¸«(—dgJGÐÛÉâÉÝ\¶¸ü]š½¥ â”xŒâtã “¹žXÒ¨¨Ÿ)êg‡=vú+NÞôöâäß/é§P8”¹¬Ü«ôFÜi Fï"¬[2“¦g^Ó0§ÁæM\·œè–E[n0¿¶¥Á4è …¢(«êÊ ‰¸:3¶§<È}”='Ùqż$ñ@­û­W\#SüÔm?ù§foãŒ^ùVë,€Ö8¸æ˜Ö”.ð[§ùËö ÷<Ë7ÒB‘o¤¤4¨R%ɺ²™í¿³™NØþ›Í$8N±™N—F°*·ÏAær‡“݃öÃ0Kd°ÛؼŒ~=±z€E(ÿï£ÉÛbëêôN-Ø"y9ÙpÙ,Ũ!×èŸw”ÝŪ‚’É3ÄÅVžN¤$Ùmß+ÁYƒÁ(ï8KþIB®'ß@ÈEÚ»*”ý휊^û–,1üýШzsxN£¾áþØG eâ1~UÇjÿÞUôÒùû.<¢{þØšäžß¤È:ƒ¥Ð ŒÙy¦5,~_â›”÷ð¾¼çð ŽîF*1ÆåœÝ3¢´ïÜß”ì¹{*Þ7¸=w+foúÕŸ Ï’®¨B¯ÝäЛ™OJ)hÃ;Ó¬«UÙ¬ål˜*6â¦]Ë Ua þûX€˜ØOÓNe²·¸ Š/‡–[î‹jðÒ;ùpA}Û)|¸ó}¼‚À¥Ú›¨¿½ñ_ØôN^¨–JEY½wê]ö#¯|&‘÷FŽ"…å £ÕÛŽèQ8É9ó9dÊ ÞØÉÐéÂúÛÄØžÉkó@\’¦ßWÊùü âfU »fúk¦rïëÿ·f*í…²zÓ$í†JcvÀ+?b÷ã›g¬UK‚Ü‹OÐ]µHÊà´éeðÒ´X¨Jý#”Á¿þõ¿£ ¤þrÔª¼ Dúò)¡r°üæ&Y…ÂR óZ²%až ?Šò€uœç½h= zösZo3[‹ÀMxe”Êôäq£ðN¶6]­¥V0‘`JÜ[ŒX'}4åÁ €ÌÅ—xo3»njŸÙûdšTï õþ‰×»‘ö4)ÏßæRÂK°j2¿ËÝOEž+æL~¸ÈHq±)¦–Ìö7Çäȯ¢ç*<»Ø˜“R²$ÃÒ» :žÉWÞüõmÊ•µ)/Ãóí‹tâíF)RX0Á?}Á@#X™å¨{®x’eÂ&âRÔø[ÍûU¤³B=-Žƒ1O(Iö$@f/–œ‘ ”ÁLqéwð£ék4'²Ã²ÎiBóÝ*Å `p¡Ã â+lO‚†C¼ÔÏHTƒ±0óÀ-fµÉCa¸X¢2Ä_¢yQÿñ~3’KåVÖóDtHt¿Õ•—DÄw¡)˜'¬mû™ž8±†A¡óœ¼M)vbð;Ö†Ú7|9\BwsP(ôŠšdî™6vï`-* ÊÅý̇ßëÍV2ªHc#}ðB½¹Tdb¥žéñ×vh'ÒÊfÿLqq>yLÛL˜i¦Ð;ÐL6:ZhæSrã%$ù)À‚ÙìôÁè(Uìeæ’ºvŒzÅ&,•bøá…º4<ŸSñçµ;VˆkætaªSë1èÏß'â\aËÉ}øøIA~ÊtNE/ƒaY‡‘"[ñð¢ÄRk1®uøý„Ø×¤(GÃb.åóàF±e9<úBäØ WÑÆÎXA»Àÿ®Yr‡efÿ˜D • à" {´š¦j=!ûš 7^ûsV“†*ø*Ò7ŠY4Šˆ”r¶Œ›(wDÐ?¥H¿ÔbÐÞ£2áßîr8¬Û…å6¯TøfÜѽ{ôîÙh³Ó1ÿZ(‡ùFø–Ú7Çž»cO8/ªþR¥~Xä/{¤ozª±Ôœôe{ô{ò?‡¸×û]¯woÒîÂä]‰ ,#Sv´}µçÐú¸;5;öì.4ó4%eGûö_íÙ½°‡çÖÝqT¾û‹Ì/¸3s÷öPâê )<£KuÂ\¡~÷³‘'AGc â÷•Pÿö»Mæ]ÓÍ_¶ïš˜Z22e÷Lès¡i—Á¼«Ððe÷îB~½Ñ„c ^¸{;¾r^ù²{t.üŠ*1ì*4Á+øÕ´ëÏšÞzL»ýŽŸ:³ æ9Å,§$ïŽÃö°Ni4ÒœÒX¤Ò¹ô9Å$§LíS£g}\x† |þøÌIôßZ¡É»×CƒÉ2ìN6‡?Áy'µX)ÛbÖ«à'|7A‰!m{7ŒíÂ]Ù0ù;~ú²{GÛŽã;º·½cÿÀrb÷Ž/P€;öíèÞq îÒ™¡Ž ÖA‡Aâv„Ä4ã;N"ØEt0v~¯uЧ%ŽFG÷zñâ þÍ ^œÉ¿Å‹³ù7“èÑÃG’è1 S|ÑcÄèߢVšª%¯ »Éñ×ýHĽï.žæìh‡ùÈÃþÂg-÷s&|æ@ßðw|fÒÖÈ“R2á3‡¶Æ3Ó™æY[¿öuS]sá)Ç %gAÉøœ ŸVªc®”b…ÏYRIÂ=Wcp˜ ¡r»¸Ñ?™¿ õ#F¿ ‰Éo3TI“D—ˆ÷¦z^+ÜÃd;ú¸ÐJA§ö}Û‹1H›¸Þ8&Ç_‚÷ÓrñT+5çùK í—=Šw½ø™‘¤ªãúL…ãÖàŸŒd¼Ø‰ËðØ7ùÕð™ãŸ„H4×? Kž’áðT‘ +2B©á€W±ÃVªºœH+7ɰ× :Feié&éVÒÂÙô sï¥c§ê™wh'vP2‡Gª¡¿|‚ sKÚK±˜rÿd¨Ä˜iÎ,g%Ç©£›#:н„&…à°2Ûþ79D ¢ñôEÏÅÀÖã Õ&±ž¡:î½Õ×s~…ZuŠwºòtªQ£a¿"LR¸+ᄪU4èpÌVÌ¡tA€Ýµ>ÒÃH£Ù]åý$|Á> Ì©t Ë÷IôP½UüÀJ¼Æ /ב"8«­‚™Æ¡ŸÜšhø¬áÆiájßÕRÝTçXg‡•]ô·8$8Ýœ)b“ûÔ5P}†¨úÆKõ}órT}uý×Gár »‹õÞ½¸,WÃ5àÄÃ=rw±QJ7ktÜùmÈ_íݪ긾-² ÒvbRÜê“!îÅ’X;°M¿[åm×ïÎÓÃöTßñÁv<'tpn®Ã}º{ÇîíìåAQ{5èä{Õªß=¦ï^½²ïþG? ­Ãû¶m$oÿF ÉÛ¿¦6·C›—D¶™ÚsÇï¶©àÇS¯cûûøÀy‡£|{7<|¹ŽÎ:Þò»ú¨ÑžpüW£Uîï\Œd+ôY *p 7¢Q>k¢Ï#@óx,BWE5pRLÒù'ëPD6ÅyTŒC¥9â,Xƒ/Ã逬Lè3oΞq¨Iþín´e½ÆN$?9©G‹û8 ¾J7”#“³ð + ÑYµÿJ]•¿V_}L5TÈ]¹ Øï5z{5¨Ú¨»r¶¹—ØŒÓçȆp­h<Èg!ô:¤äqê! ”í]§c ¤¦êDdYn"ÁoE!ÓÊ’PŠRbç'¡4< ‰Ê$”³ªò˜IÀ‘òÚsü³tþ=Pl{¯âɤÏzÊôž™Æiwºj’=8ÔìŠè¡Ž£¡~ TžØ —۩Ǧ6‹êþ‡ëí¢üÏÅÁ§lúÁPh7ž¾0Ne¤CãPÇIë­÷àzßfS†ZA5Zn%¶)< ¤Àõ ’sÌ9»ãáo*àz‰ÂDú1U¦0‰*Ì‘RÒˆÖäT!5¾ü]&¸HÖîÝc`W°%²o˜ŠödÀùünöÿ—æsçߛϚϳ¬t>Û¥ùœù?ŸÏ¨¹äD~¡ÃœÝÛå9½ètÃï×ïNªvÏÒ³dTõºœµ¦^DI²ï¸=VŽ¡È:‡úÕUbGŸÅ‰XŸ´¦# &.÷XúaZ'à eZðmq"­Óç°N°<¶ÛÌ‘m;»f¤^%3ÕâÆ/zÐP“Ó*Wì$RIæ/zÛ)¶~ÀmΆdO䯬Ӏ&:uri ©¬:Ñ)-40r§Æ¶@‹1³•伿Ý*qè+Y° È.<àa „ÌQNÞ­Þ±gG[dÒùT"Iþ™ùcDèsoΙž±¡Ïùt‡ïÞŽI*“ÎDÌçoɪr{U½>=jb¥JV`‰94õ÷F—ÀþЉôNj“ ¿JÛ.¼°²<ÇjcMÇ%9¡;É).0„âcDNUYm}ér•DgèŽ=tTçé‹­PG•[ËþônSez´!U‡ÝKå3]bNœ¥k pN]ªT<‘rÏP3r,úêªý³õUþë ÑG”¢`Åú¡‡²0!O¯89ˆüfQ./î0C²28&JR…Iò‚ß©…™¡[HíÅ 4ñbžnâk[G§ÍGàµüje)ÏÈ }ßJ(u8‹;jðÃÊŽÿUæ,þŒºQÝĺ;!·´?¬ìK%÷2Þq%ÉWҦ䦾ò:ŽÜJ¼$ŸÕÆSF–3Ï«0 { ÁËðGšA«"(îEïH)s1œM™†E·©J ðÑr,”ŠXèÁx‰LïÜŒë<ɯhlc«ÝÎëaÏë‰þ1$9z÷$²GJ)À ¼¬ ©¤×HLèÐÇÀ’Q¥¨ÂÑðš x> 9–4»<¨ø“Ç º‹êEv«éMÜHš8[ºRæfϦ3`*rI…®– y&a¡JÌ±Žµ iÊH‹q Š{8eLÊjü#‰/¨ŸðážI÷hPª5Ð×T„`¿ñ¿iÝýxhÜ)Þ#Z÷è•ûÑñÛk„([{ú: ŠZ}¢~e§G#žD-¸5}‹e&¤~!½‹{UÏ>5±ŒñZ|;ÝPp‚Ý2us›ûýÜtwgîùîuáþËIcx5ø7îßó 4ðQ{$È#w¡~#m’z¼ÊÜt Í·@[¹ç ÍèÓXü²çjr>¹¥<¦…ejwtâKš¿6klû§)ýôìJÆA%0qîW{†cí¸y§gE½¤;};ßNrã2ô`Ì…÷tÅ u2Ær+Ûý®§cñ\D@w‘—cªÐŒ>Œsk…æç¸0ÆŒ°ò|ÇÑóyAÑ7I¬ç˜ó á/ù:âòá2öÌGïÉœ« /<\œ¥CÂÀ‰×Òj†rûéÊÝ+g3?Ö]‡•šÍ³ðz”Y©ž¤p=ºp=°âçÕ¸¡1_*ggÅ6úù`¥0‘á…z™È(0[‘²ØúŒ·Õ|Â}Bs•VÁy#Up^6\"<¡ù,ÇqßQÊ%kIŽb´t¸g#價/’êë”ËyRéæ—T—û4©žçå|÷8 Qî"Dyùäh&oeó]cS,ž15[ Ÿ=µ%ŽßzÓ…æiG¡•ìÔrË?Ë1ÏvI¾;gÚílÌâxùŽŠÐõ–Þ†qº±ÄÒå d¿UŸ–Þ•g·Kþ}#«L2 všçû ƒ­r¢fÌ)ÞaØúƒïPãÙÝ¿©‚í=ËfO¢è2Záà^ÁYOX±Ñ3¼«˜ü~°çp]PJï¿Ã€ÁO#ëÓ§t²Oî’\ãtAõã†'ðÍ€Õào6ŠçùÇ{ÛuÞuº2ÏÏ•þjYÓEë'W2cFªD Ë‘Õ õœ0Q=ÙÃFµQLl·N@5 ª³l®¢;Ê*¨”nŒÑUX½Ó…ÎÅîT8+’lVvõ_òËЈYÉGZ:ùÙÝEN¦¹/N^r÷p¼Np9YÊ{q’£b 8a}˶ÄÙé¾L<Œ‡×Ìâa§ƒýÛBN*jZ‘U9Ø=Zg)Q™Paä½ððœÜ“!ôWH=73asÖªí¡Ä¹(¯·³zÈG?_ºGЉ-D Ê#}"Š­èÀ¸§p~`~ÕbâkwaÌ?@ÖN+¯Ûh aÌ#ƒ¥ÓG‹­DµÝõ>n]ô=xV{‡¼ÿrë»+NË­Ön¬òOËu m—ƾ6 ‘â9ÓJ}'j¬×ˆ_Ù£]‰;Å_UL³ô6šÅ¢—5[•x ¬Ñ‚J걿±ÀÁžœp’Ž–Ø\µêrq{(ñxÃ.2Ö1îÏ•î‹ë:”g0ͤ®?äD‚° Ø™£R‹Jð«q”aIúr¼½xVmZt÷=ƒÙîË$<ÖUT€Îöí⸽¸“²B Ÿ”¾Í ÆË¿©kžÉÖÐÇbYI‹N€Á,Ó‚:s»ÑIq úOo*Øú½o_crØ¢'¦í¦‚àsð"^í,…±J*ýê@±š®íC¯*«+¨c±û­Ô t”ïÓFÔY‰û¶¬lNH ˆPí^ Dª¦Ù‰£ø~†&»ÓÊ®?M­ø‘iý ž–ùììC%…’)¡¹RíÌêÑ„9=ŒÁT«aÉ·Æ+MB3†oô£®Å_g %›þé&+ÆÉï¼Ðz”¬JÓ`3í5[š(ZïµãÊaÒ0q-[_¶°?„º XhlªãëV‰ëæ`ï–Ö­~$œÔ[J ½Ìþ‡¦*ÚM|à:yàЯ^Šäg"ž‡7C…è'TXW6£Å›c]6l“¥;Ø×œt+,ÖX¬±ŸL Œé·Ð [)Š«#äÈæý¦Ôª£v‘ð›ˆMæ+¹ê2|¾GÚG‡©‰R`© M%›x„ƒ¯¿—ÞTƒ÷)²syÑYåI!@Îö|hs¾r&^ŠageI1Î…æsqÍÙÕPó ,ËIŠÀÕ•äÌ&껜†‡nZ‰žfÓ´(èžËÐõ°wñø°•³;¥öÝ…$uD§Ø6vø}Y2FLœIgóýÉ!×íl;|&Z6ˆz÷Œ)þ¨y{`´’›%Û¤Qš÷øVbËèqPÔWMªö“á5uö&¯.lÙ~È3zÀ—Ä~Ò` áGÄy8£`’Øîí½ÈéŸQ ´bб¸Ff`+“)hCq‰»ÞÎ>ùEÙ;n7”€}7)¤’ææâ+|»NœlàÒ<»µfO2ÉZ:Ÿ]ÅÉ-„<”è*!>ÀYΜT@›ß0&FêñF Ï•fцtTÀ%!Týò„ÇN‹Á™|¯Ê#€fM1•W‡T`»ºo‹µêšº1€ýCÖlŒ¦kˆŽ¦»i“Í[gÖˆSôõ&_·pÿºÅëZ`ãikÕ°ü AAXso3¼-õðQnÃj¨’d@fÃrŸ;RÎ3±,,pk­<½çRé)5ª=ÝÛÙ8……Þ#\d丈â?(øÈ  ¨+–‰[Ä€ÅÕ€ÌÛêÛ›Û ‡@ZHÖyR ø˜æmž!:ó4~˜àëtrÐ_§*8_gu†œÒŒ0Âö3~“;ø‘ÕÆò~ #Ir6GÒ¶b³Óû~ +)§ÐŠÑ¹Ù9?E sÏ…-xNjH»â‚‘¦. ¹²%䌘ž¢.ãVeÿŠ™:œL5Ð!á=ò eg_€°Í58íAm¾Ð‚[ß^«bCˆ×zŒ­ú*$Öªaµà¤ÁxJAì†IVOr™UC¢÷˜úvãâúô!Ï eé§5·-TOãø6<MËÑ&ò¹;‹âI°-¥: çÊìÐkDÒX(&’¹AÚÝHfœy>‘¸ë«*ùð?9ȇϞoSÂx»«ìÜf…Õ¯Ï^À§T^3ª±ú(±kÆÈˆ?#³{—ðZU%rÌ)µ¿M{ ²ÿU醕ØLÜv;Gá»Ï%åUœï ³y“‚ˆ×—Ö‛Ãók î&ºit ªí‘tJ-b ïܧB둤“•0ˆŽDm¥N°—~IP5­7ƒKž°z8Qî¿Í)îwt·oÝc­U‰GØ®Eqá ÿÙx´È¦Æ$nh¬?/n¶£¾mž(x»4󚎨ԷæyÌqÇÃßÁK§jŽðfwgžÚ“'îh–%gµÌRÓw½÷[!â§ŽÿÌkIÊó~-,3\آϛêy¾¢S¥Jß`¥†%.Œ£Ø*^t€RÈ™uÈ·ÓÕd†·Ë & a:°6ã& ×+òvé,ë¿á¢¢]ù}|sÓÞ§¼ºŠ—þ^ðΖç&ó.à|¢×R –íL µã +(ÝZ1¦Öý81œPD¸©vi¸.Ïláx`ªo¯‹ì°éެC6b—{·¹Á†¢¦“ 0RýÁ¡¬d<ßÜäÜ㤺q2´óæè¨vÐf-+ä;Ô8Z,}×P«²ÙYùòào.¶œ¬ÿ^z@ê\ð Ï9HÔªÊíl¼R®8¶ÿõS£Ä‚w ÑôÖØÃ»(4O$ÛÞ,e8eu‰" !Ú¼§laϺTH>¯#æßé’$CÔ¥ž\<•qàû´Vª[D§‘*^§$UÅNm})là}cÐ?¾ 8 ¨Y~P;ÁA­ãd4¨IzžR:1öŸC3=ÁZ¦÷~›ìx][€3z’_‹dyãg×*²¤þdQòFúÕì#‰d(o¼%¬$üøðj.üè#p,Jê#üH’„’x¦)„Ä¥Ðü7Zd×"ËNzÈs%=äå 2Ëž¸’8ö:ÁÏÏæ×/=0ñÃÄ+GFý5.öS}k½Ó˜a Ÿ'õEÒANÉ&…`ðüZµËÉÔÈ : >!Õ›µS¢;sÆ‘µ3Æð3Z C÷OòÃôëoäÙ%‡#]:${z_ÑxñXå §žÎV£òâÈžˆ×ð>xthCC"OÑelº“˜R÷> [h¶še]™£cC6´GfW™8Ä–ówÅ›ô6´Àø³l—&‚o‚äK2T‰!ó×›Ó€þrèñP]ÆIŒ“Õvðo\ŒórVhúÂK\@Œ5Ö…O×dÁw;¿ÛœfSÔWP‡Ô?Æá~(2ŠÙ/">àJìaÃÛ]ŠrºC2Üá­aƒ¿óå2ž;ûà”áÊû$m÷6ê—¼ˆ5ÝnhjÔ‘,(¾AµÙØWw*o,æ²TKGC¬ ɲºIÂüB§Î¨žâýú„·=N{$xx»Þr°áf@l7`¹Å¹#UîÑYmM'yñ¶ïžÞ¶¸ *ÔöNüè.¡gê‡Òú½{7r\ÃÏ¢õ‹˜".•z˜6ÿÁ3crW*¯ZÙg±™@è%eíóí ,0 ËB˜–ñ1j`'ÅÜåÍ%4¿žóÝ •9ÿ ±–Ҝڥ9}oaØH¯+0Z=à-t¦K³Ó0¨3þ–¢–ø¢àMñ·¶©‹ŠÄ-À¨´Œ7·Ò2¬ÅP_&º âd½òV ½•Ó_ËßÚdvË0qKQûQcËHù­$q†0Óð)bSÝI+–a^ÞÏáBKPhM ‘:·[27E4ÙØ„_hئò¬›ø-÷=&Œ(¹x ÜÜÆ+ÄÙ0‡œ[;kÚÆŽNaMÛ9ët–ÐüRœÝÐæSí–cþ›Ìþ*½¿Êà¯2ù«’üeiþªdUª¿*Ç_•á¯ÊôWø«JüU¹þª<•Ñ}v(!˜é=¡i|–ìpj5ŽšY´ßçá\Q;ý4>·š/E9W£‘½Ä­¥Ã_dâÁ}q}VÔážx׿ZÙè:e 1LIÍ?Y¬ÉCWQvæX]JÚ"p„Ki 0­•ôÅÙ‹á{Ó"Ž_.‡~oÛ\ì·H„‚m£òç¹3Ô²I\†Ásf*A`Ïr•d"Ķ­ÓrãQŽ'‹ Þæbéte„’õ€ÅÉ É@cΫ–A'¶ŒÑ¥°Ìñ'Ñ¡›]ú0v‚eVH2}Ë1÷ybâ^Ô¸Ø虿(OL íeB¤šsBUžçôhYGŸÚ•O£¦(/¤ÆyŸRÄNÈ미^›ˆ[®y:ê”# ÈÂ/Ö«’‘tkM%K•$Bâtݯ†ÁÉQó8_%‘?ó„ÔÜÖÇW…¤æŽÄ&Ç­’Ì"Irîdgªæ¡ót²~ AFBýHÈršú*‹JäÌ’~2“ä̤~2r¦±ŸÌd93¹ŸÌT93µŸÌ<93¯o¦3§œ}Œ,0r +V¹ÑÒHú[˜lZò¦êœÖÐçÈâÎǹ¢¤znóK¢SæpMiDÊTnk‘’#æ'G§œ#æ§F§˜Äü¼èM”C2I¿gpe…,]î´rrbÎÒåo4ðLeFPY%˜iâ™%±o&af ÏLŠ}Óˆ™I<Óûf2fyfr웩˜™Ì3ScßÌÃÌTž™ý¦¿1¯:ÊÚB?*Ý’H\³`1nvs2t2­+|†ð¾Hâ@ “8‹ña†Ãceû’êIÿ›,ïƒä˜}J€®£ü•÷¢ßú^è[_ª\_j?õ¥†ë“Æc g&gæXI Çcp<çF´(üá)€kÓkðø©[å#v´dµ´Ý‹äÁ/cútÚ$wÚk6Q§‰J…ùØ7¨XûÅ}ÑDÂþ’O/õëÞ­¡ËYó+%ÖºNpCª.­_¦’x÷çN+ÛË$‘¬çB'»ÇÙ¾ ô¢×µ’DìJÆFˆœ» >—•U¾NÇ êâªDqR6z¡Å»•ÖŒ=è­Ø!•ø'e‹S2E]“lO^”*)a†ÃÍ>܉Z˜j®æt6– µK—n…ô;”§Áóvr©ávøµA`$€#äÈCZYïÛY?Ú{LÓ0Vª¼nc6þz%r3³;ø©aW»Ê#Õ¡ l¬}pd_U(jB‰nNšïU…/wJw¾JÍIµ*Ò§1½ŸêCÎþ3\øE(Ø\œ3Øsû²us·çfï1­g¶/äŽó†Ô«‹¹ô'Ãr†Å*)FDÿ¦r“þÖÛ®Ò1ÙòYýþXÀ)îÇ[¾C°kMYÝaUFÎÇßã ŸæY:ë÷W–³g…ÁÞ '„ÔÁÓ¡wp­`ÌTr}{~Ähéû¤jk$µÙÅíµ:r`Ùs¹ 4^š. Vc溗ϕWŸ¢<ò˜ìœèòšS”G˜:.ÿ‡÷ä‘d?õ{ûÁ}I˜M6+»à»0\Šâ( B5C¿°}&,È+ŸÓ‚Œ¶¸sÅLae¤Øœ,‡|¡Æ\ôýвÀÅÈÁå788ë÷ûU6Œ“¦©Ž¦iL"çÝä*<`¤7‘%x–“äÃJKõÛ) ‡ºV ¸×º E¨Ô݆;æ†Ïú¦ÒF? WEƒ¬Ž¾Cú^Zñ$ÒÞôYñqQ+>Ã^qÒâbHù~ÖÇw¾›8BÆw©}ð)va~kõ²*NZã Dƒ¹VecOß¯Žº7ˆ7!tŠ+(6|ÝL€º°*Ì´KÃ]r—êÀ:¹ÏáHmKÎB”ùò'eŽŒ‰]$®H]ò2…V„uÐЀƒºkGö½!{ž¤8¡iHމÜÓÓ`ÚH>} â·ö…ˆ4¡ù Xâe3ÓBÿL½lë"£d_ '§_¶µñð2ýâ#gzâsJÓBnÓâ#ç >t„¾¸>-_1P^­ª³ -D@B1öiòV6ç9®Z3`”„÷Zt4}L€€pu$ Èc‰ÙD0S2Gˆ{4,^0IK¯È‰¤j¯iãû8Yª„ë:P%á@?W¦Ó «¬ê¬îe5Zײ°JÕþµ~Èûøg£xÄXÓ` ¿–P-½¸Éî*g[®S Ä>XÏ€±û¶ÑØ9Œ(N­+ä "aäöT±H_‘ì<Ò±úoê¿z€þÃùâVMpŸÜO? °ŸV–6p?woý_öû'o¿<"dŠÅ· 2óéÓÙkU%ÖrvrDõÌ ï3 ã>›¼•ï³Ä˜¾õÛµtzõÿl½kU°â_^îoÌLþeËÿÉŠS¼x"á“"Iø‹‡)Ø!–e–ø‹²†—ì&ª:ì.±1UÜΪ¶H±ÏÄß.½Å…¦Þ$Kã(„%ÙŸöíÆk¡ÙÄŽ‘¿Z—x€};M‰^æv̨» PúŽäψ}ÛÜ%¡½B>Šº€Y§øÕ3¼=:_¨aG‡Z`®®ãÊŒédçËg;ÎÄ¡¶„ýô5¯úŠ–|мÿÞ@˜ž<'Œ“RªönæP5"údï $ÔkŸigwö‚Ú °Tõ½JÕQ зçò©Ð1ðz~½­ìÕÍá( Q+¿ùºâ6{¸Gc"{ôú…ÌB:OêSr“o§ŽYß g8S.ñN=³†ibhTr`ô|ËW i_7tˆ%ÇEtú…¬&òx;4–¯êwa™z¼ÄöÑ& k†žGÀ±lôÌ·oýÖ·¯³Ð=qKûOËÇžD+úŽ¹Î’+_gù ¦3Æn£ºRê1¦ÿ": ½<*Ý_m³C+䙪”Næ§Šu@‚LlQNq8=5vö7«¤§Zÿ M{®XÉ`‰ü×3²] {&ÕK˯>)tlÆ#¶ŠŒÕ¢“µ*»‹Or5”{./ÓtŒ¤bâj.ÅùŒV&ЄæÇè¸v²ê¢!‘õwµÍ·Ï­Ç¨nXÔIÑ ).ÀŸ ÒB+û`°šbÚÙ]¶Z-›8•_L†­u¿["]pÓLjPÈñdØ™«½Û z:ªÐ«<·¬}p£#nò à*£÷@M>èñ¤µl¨Oòö½Hg,Íœ• Õ‡'¨QXM{ Püæ9 `Ùí\¡ä#é`Ѝ1kÊÎù¹x¦"%VâÙ7qŠ1x²XT*~$~ÌöíUfT±‘F0£5¨MƒYek»¥…-ž`ëŽSRãïy*F¡ò9aäv;¯›ÖdæEï•êðÀÂkž +b×A†?ЧˆËå@#¡n—»Ï1ù s—á­±u„*¯HRåýR)˳eZLJ`°,žkrPgºR+»5^:Ê*ù‰`O'ãö)×E5™½ öVjc­?BsWÔà‡•y•æÎ—š3RscyµÁ¢È¶âybÖ¡àŸdÇûž‘b"•`ͨoú.Ž¿&r†¶ bðíó¤ýžÇi¹û1›(ê.d4+}g—ÄJÃʶGl!yò#6KE*ZçW¡y~%? mN`9—µ/’ÄŒ•–Œˆ C¾D²!…™1[¡}=ú )—_+S¬3°ºÑÑ!OÙ™A¾¨2#ÖµgV?; Ø£ìeÚ¢k‚pv‰ôO§Ä°”X#À7’Zì‹@f÷åoÈÚCh^ȽnGâBkFH„ÁE“ã?jcÉqžz–2UB3Y*¥áedý!T¢?óüje½W* Òu¤æ—¯­u%hˆçÒˆQý\ êïž3Ù¥¤Ÿ˜€×ðŠÒ¬ìÍ+N Ãö¯…¯áIW‚vº§ºÂx¼ý¶žf<77UËÌ„3Í^ήZ*¹»oh‹ÆIý³‘tÓì¾ûæúp÷µh"¦7߇—«†f˜ŸWv÷ùÀâH yÀëéœ^‹ÜØçóª%B®, = ࢸ„æÏ 䚭,P[Ô¥äõY e2þ‹;[³ä‚ÙÒÈËgúÜÙŠ"X ˜£ƒÖÇ2Ášf·²u>yy:¡ÔwaÈúdmäêü¤ “Öx Õ)ÞTÓ¢¨Ù" ‰ÅÙ¾¶Æá¢+s‚ûîã ¥Š³Éž’Q,xí¸h,Ñ#]+šþ‰m$赨v¥úoÕó—úêgf)uˆ¶LRÑèîV.èMIuÙgt´KAÞ«£@J:¿ò0Œühi“·ÐR+?l¦¢»é8Þ‡’qÑȶ|ÑÎÙSÌ…öìŒw§RCùQÌÖ&.ÿæò¬=9ÇðÿüâÄ"Âq ÂYaWLÏ= ²9?Éé°²O?T)·ÕÅ¡o@UÐo¼šÍ¡à%áQ$â(LÒ(ô²$š3ºïY‡b0®ØYUYµGOþ/¬î(g‡®ÐÈöå±=ÛoÏ81`ϯlûßôü”úHy‡#FÞÑne™ýbŒÂÆ›"G‘H£(g?äi÷¯íwÊ}­¨Q„É»¾óOZŒâ~'y‹v…\1»#«-kŸïPã<–³º…UÉF®€ ’>É·o‘,TOZ‚°w”wºRÅ8XÎå÷âÔè*&ñ]¼õYΪ>P)’²Ò¢¦Xïîskø ÃDâõæ¤óÕ•­¬õQ0­CW` 6vü}•LCxÒ£e$÷vÔô–ZÏïß)½VÈOÙ:ï6»bk7–[¿h,ÿš/Ù&‰É@ÍÆrï¡/q‘Q1M·P¡r6*\h-šä{!'wŽï‘¢p |ë¹]¡4EáÎÅù´Ãpo|?Æ&>ÂŒºalhˆàk"{㇫(Œ¤!/yO¢!‡xf†O¬˜Âê/Œû˜uʧy=QÏ•êèiÞd`&|70>{þ¨ŒÏª¡uWª]¼ Ì1‘GÈݼL…TØ`'2b•…ýè«*”*Ш°àáãâŒ$+ÌÛÅÝÍ[U…ØUÞ2Ø_ _…÷J¼Të èØlèØ¢±íßBtÙ‘¨žÁ»Â*=4šj «¥îÚ£ÿ`×ÂýÓýNÿ<Ñý+é§söÅbµ—õ×ë©¢ zýèq«Xœä´²ïºbz¶h‹ê5Ù«íç´GY>B¯°B+¹/ Ëÿ‰a˜>òè–´yF»8gõqÜkœRž­V±Í3B,·äÐV4ij³çïÕ†Im¼bœç¯‡vmRtÒœ£×©Ü–0õ6÷’>7îìp㾑 ÷+²çº}Ú:ä.èë Ùì´´¦)®,o+’0ê9Dà¥T¯b Ž~j9;Èíûøgà¢Ñ3#é·‡±BT"ê1¦ÛÛÒ‹aé ¦>+§R<{´‘ED5KoÙ!ß-«¯òu7^ àä Ü¢¶àk9Þ%N'@.ý×ñ€î_(0u±A—Kžëy;5–ƒõ;ƒzÙ E%/LµŠGØ}o’-¯ÄkWDÏÁ÷¿©MsGßñ{Ò”[™•´DO4þ3¢Æÿ›Œ ­N6Vz)bøN¯ÔäÝkTö—÷ˆFV‚6ŒDÅJ…äùÅ2§‡"Ù#ËtË´Œê¯RÚE8¶™äDǯF`„‘Ê eälâo’«Ó$Ò!gšìmî|›¥\‡:]ìÄÓÅÆ|ÿéäyXx\AMÖ!ùŽÉ;’m;Þ— ゙*K¨$VʺWã΃´=cnAè`ϵF,… “.Š“ÿÐTÞWO#ÑýcëÉ]!tÖBúÙÌ«Ê"»mÅu”¯¼'a=©V›+¿ê鎖ÈdíDtŸt)‚‘& "Y„,/Ë\‚gÒ¿Ð(‚.ù2{6•Zî$׃‡:äNf‘/–R´3s°W[µ’j#5f|NÖ!¿âùªHŽÆ¨ŠÜ-L¶˜“aa#<Á*ûQ,Ë XÕ–­®ú)…&Kï"xT,Ê„šGt81ª°G‘ài%Ù¢ùdz³$4VÝáoÌÁj.×Ã6ö›šBEÙãiw(Û6M·{L¨Øâ I²¹%=¸ ²$ód? Úu¹¯‡Ô þùþ€ þì°þ-hÄÓ^ï_T/·)ªÿa?_Í¿õ•´qb¥ÌåÚèêºoªKÖ%g‰&³°Jf‘ï«[¹½Ê|ö¡‡I™E—Ù%zÂÄYô®ülÒW¡¸Çér±f…ØÏÿ¤Cè7c˜Z¯Œp~L2Ú1kÔqhu8˜H•°ô©8t»âÅÉqì¦ùºñ®TÉ­ÔP6ä_œ3¥$N™›ìÒ-Ãß=oëT*¢ÉL‘mþ ã>l¹E\Áv^ÍøÕs¾ & xáßü7‰!½ð¾P…/hµ6â…fþB·‰ûæsþÂMøÂù:tXòѧ!Yw6 SGQj÷v%u2¦ªáoóÕ¼ŠtLþI ÉÔ÷‡¥d&¬Å:<_(uœ„„ž÷Ð[çA¶f'/‰ïö¼„iìýÝ<í3L{€§Ýþ%O[‡iMð‡eïâ)¯aÊͼÔ~©Ôã˜VÁÓæÅÓZ0­X‹×¬ÅØó{xê­˜z¡Vd¤ŒÙ˜‘„žá–2ò0#‰ä2*¤Œs1ã 5ú¦ÔèLÛ†Îa¿—J©1¥—júš§íƒŸ=¯hhBÆIi;0ía^®GJÛ€iÍ<­ð;žöOL[ÀÓ.üž§=isxÚ?ð4?¦•ð´óOó`Z6¦€N±A^ïÊ:91;‘²¹6ZÂÇi¤¿0ïShŽ`—8 h|¢5‚oC-…‚ïÀ—/÷—Á—³ÿ_^‚/›ðËÓð%|yÈÎiÉÏðc©æBøÑsfqpº_‡ÄÕA8 ß«ð;Ìß/ð½œO<ß‹ø÷·À÷Ëðû1öD¾_@ŠpBë<íRwï&øÇ”i©(ãûêï4úžÓ©ꇼL]×oD>õ|R®¨á Ÿ¥>¹W™ ;{D*ý&–Vš‚ŒÅRÆ“ትÿ}»ÿs|_¿Æ1bT)ÂK©‘8bÇHÉÂ*5à¿Æ;¹3b+!¿rf¤3ÒÐCáï’…»CYÝßù‚£Š;‡~Ú#QþŽ£°A¬„Ê×Ï Åm)+ýåéûàÌÀ6èvÐ5-¡Ÿ8š¶2“|è,¢ß:6*ˆ1w2÷¥fi÷Ì·±kxâB/¼Y8áF‘d¾"Uœ¦íFQ·¬ºŠ Doò†”—…5ƒ8´ÚjžÅ©y«þ2ëßyd¹Ôüt)¯\¯K™Q«K™Ï|x>¯Ñ¥ì‡g¤¿ùÛáI€ß)ð\¨¾Ê´Ã÷øþ |_ O:<CÚ4xv^§K)g!<àyžDLƒzfÂ3ž¥P®žÛàyž¿cÝÐÞ'ðœ uµÁçxÂS¿³áy¾O„Ïøl†çiøÞÏýðôÀs&¤©¡î9ðù<ôM¥Öhuqñ úAƒ‡\òÿƒ†?Xnè0ü+\b~Z?¹#L—$Ž•4zÌ%c“Ç¥œžzÆ%gbòYð˜Ï>çÜ´KΟžqÉù—\rÁŸ2/¼(+[zíâú¬y “wk?ò~òh;)Õʶ½Ä½àö§ïËîc-aR꬚c-!ë¸R]å€cî‚jI´Êµ„‘¢U ÆÖŠö„4ƒØ/Ñžü4|'$’¤àxýÙ/*Ô"줢hEÝ2¼›ã6Ë))Åó¸R<ºð91…êx”@Ÿö—@ë£4ëýA™›ŽSõõ3ýØ3¦þnx6üÈ‹¼ai¢§…˜ âóã­Ók¢Õ7ù†.±NïýYceï¼€QÛ‰^.!›¨­žá¨ÿ N4H o•"üÖ¤zêÕ IQ¸ÎïÚGmϰ²I/ô£‚ù:`•G¢c'¨î…ÿù)ô³Ó³DD³UÏÓé„—ø €Zéú¥—‡Ä½œ·è嚺hzyçóüpzK7 ½|F\ôrK½lúP¢èæ<Ô/½ìŠ¢—¿ÝÄ_˜„/lè—^>'Š^þ—ô‚_¸Ÿ(ã§ÞW¨¥£HØ5Rê#*©ßajB//ÚÌ«ø“m:™^®‘’WaòeTGáGJOcªYGäáò-¼d+¦aG€\xtO«Ã´ãœê-ú˜§]‹i虃é¶ò”rLùŒ—j“J]ŽiëxZî'߀gÔs û Ÿsà)‡47|¶Âçäºhºüâÿ?þgЇ],‡÷“{Úˆ‹MD˜_<†æŸÉgÂsæ§a~qÆÅŸÏ séµlîϾæE’Õ5­‘Bz¢w| ùz¬{Ic¢¯yò¯ŠÍ_p8²;kö'Naoü/Ä¡3#rg2ý‹ ÿ’döò¡¿(Õ_•&û.É&?&äÜÄè¯*e—nT‘’$¡5èxÛÜvE»"Yž%K£ï‡’’beR’¿JïIvvåîIè)ÊË<]—Âþz¯ì†=¨ï!³p(2÷t*27ŠüÉ£8!1ºG®|–¦§š<³Øà݈BèâüjÄ1Ád[54Âéȹœë'¯#åì±´½bŒ‡P| ç£ÆÐM'SGt0L?"ÁЙ­5{ ¡í}Wò;ìÑÌ&wM:æGŸ^2UÈ=a;ÙÌ{Ñ_€ÑvèaüïzäÌ~lOíÐã”n9ÒäÌ´ÿÖÛG†œ™ÑOf©œYÚOf¦¯Mœˆ÷âÜñäECGþð݃DgI¹ô;ìDír\òbÐȃŠ?¾^B }¼„Äø™ÓÇßÇT1?íx Éèã%¤´/!’? c„>¾:L¾:úø1DøéãY$)³Hÿ ©þAúxùH‹ðò‘û&9I‹t ÎC2bß,ÅÌ žYý¦¿±4ÖyÈ&Žïœ®µ¦¥#SÄýoáíʬmŸ÷$‘q-Í·Í=€É8¹Úo'¥Uu¬Õ󒆘’¥Pr|¸d)”DÇP2N.y>/™äÛæ1Y%¯Õ Ÿó×›>&ɯ'Áë½K¢»4”Ne/ñë«:x«šÅˆk7¦hù ÏŽÇ“Íz¤ÉÈ ­o¸%ê¹ÒÜ%¼ìPŸ±^Èk)•k) –R·&¤¢1áöIâ,Š’r¶ô3nÀ™ñ>5mEHë˜!iŸ?_ÆócV*.K¬ìЍzxø…$¹s±HüUI!mŸirÒ÷+?¬@Á·vîÉ Ã·eíduoJ8×})w'ÍFA ß!÷éÌò=úÐãcl}(Çì Ó<»ƒþlŠ­?Cª?I©ß†¶ŸäPËU²š$yî+œìÙ^©ÅÖýš˜ýžßuŠÜ µ\nŸŸÎñwJj|¡õ ´Æ!ÿc*‰-˜87¿9×HÞ ŸÙE!ÔP_ó¬r&+9ŒrfbN} ä¤)9[(ç2̹ߦäƒh¬Ï»oky÷\Ϭœó̯€žy#Ìå¿‹ˆx› /~°™’¸¦#u8k~ÕâÍš:(YóÚ8øÓŠ-UÇKNöÂ¥ZUnœ"ÛÙ´³ã`Úô§L±û ÌÙ,}5ùKÈö®OSîbÆú¶ _çä¾Ö» Ì©$G½|¥l·r¹o ŠÊö5ORìkžåö5ž& •ü¶§;ÚT£VS³ŸvÜæ,Ɇ®/.¨Ù‹»ÜoŽSÑ·†¾Ã?{ð U³Ý‡%ûîb­ÊY³~ØÅ^Vô¦Jåªy±ËÞÄV³ûšÈÀA2,úÔÀX"QÑ6mòNÐÔ­@¤ ¶²›åVya/G°tJ|úè7²ž³%„Õ0ÜË#“èYíè믬Û]Á‡¶ÙWkåHn›‹½z¶%¨>»V]³4Ê·î™ö@±)A þ´Xwº gD‡.ºðöºŸ·ßn\6eî{ÐÅ?»8¢åJp)²ƒ»æ?[ìhïÕ‹´1Š·ÅØ6Ã0{fK©Yh™i6FĶQú$´Þ;½é2åb™—§¨–®ïºW‰ËCò»¢È¸<7ßÃ> q\!ù®UŒoŠ0ÀYÐDŽÿ#ZÓs¤ÈE ?;™…nýù$Y;šª+²Ú*Ùáó½~HÌ$ã"sMWÍRÀÕ‹Í2ÁuZµ2©H•P°»ÓS.ZgXïÓœ6š—oíígÅ…}þþ™»o…¥UbÈ­3p[ŠLÖˆ4 /‰K‘z6¤¢)=ùëá‡Qڻ؅Z ÔrUdËA|ãcô ;Ó|ZmÞä?(oï5¶IrÀB&Ï‚%«z:,hj¸EtÛÍPXޱÂAz¸ ¨gÄ e!ïæ…$[+\Èç$ ¼æ×˜§×±í⦱Þ+4õx;à?bû”ÄÒõVUHÑŽôL¸¯‚=Pf²)ÕðJLØ@dR¨ ¶û^iñ7‘-ìÀC.ÿ|Ø»LJ' ©>Ïåb‘:Cá<G^Àïiðg¨[‰ò¸šä÷·½ÝªÜšš3ð~å1í¢¼fMýŸb[ö”"lÑšš6÷ˆ;æOY!ßÎÆ±Ë#±ÐŠÔ]±åXý÷柱ìûC¡\©Zuà/+0X í¹—RÈS{Ä«¸ŠØ´nº™ŒM+[ö°Üt)gÐ÷=Q˜èJj²ý/¡P0»W?*¶{õ—B×{¨Ü#Xˆ*‘(~ÛóqRMÔëe«æ¾÷¹ Õ•D²o ›?Þ½ÜÚ„~Ö1€šlìÄݬìa훼N§ÉëV»nó#Ö-¶Ãã`»§JTêk<çxT€Å€.ñCvóý2N•]ó0éd\èt064ìz?Õ)~Å~|"¤K޵[ÅÃÀ%9\lîÃ!É«ÂàjÉc•žbõÁ ÈvÕ¿3þ‡øøÿ=þ†Øñ_Ûïø9ØÄç%³àú[ûÿ_äaÎTÆ?•ƯdXœ5oáX6õá`7Åñ™0È3Qùäš çC¿?òù›lwdíƒÙ˜pslá$xÐÓºžTxÌèu‹æh8°ß,íA>K_k”Í:æH]‰ÌŠŠ2—8o.—wn 'ëÍ/Cþ„›ÓÜ£PÓâ€S{Âà0UH—Ãÿ+w²Õá÷ÌBó Rµl¤û}VfÒ­D™©B³_ÜRΞ0 é7G­y˜µÓ·¯ñ6<ÑìV:~<¤8í8S#…â~kª~dÌœæ[vׯ fAªàCM_!ö|£Vb…î”V]hÞ„Äæ¥]øHžàaÜâŒÀ5Zr ž´ e¯[6pËÃxÖX™í/Ò¢q§šw«ù¾HŽ8ƒn¤c©+9NA‰­Wòcîá1Q«PÀã%Ù½mQ}2‡bDêHŒ¤áí49#Ò4á’ÁøòHtßÒr ÛËls²ÉUZÊçQ° »HLÄŲ—[Ùuj¾X<a—¨”¥éP·çE9^ÚµJù‰ìEø¼HÜ ûFŠzW’Üv ©ßKጄ!>§HçŸc6J›j kÀê y|ÌØbCÀ_†šÄMð—Ý@/™z€ÝSY°b½;+&(^?¯>Œ¯fJ¯â•ȘW¼‹Ì¡Õ…[eb"Ê;¬åþ‘½°BvþsZëÉ<)ÖäÑ2Dß5btSl{ëZìÁ?šiÄ( q‹åÛçbŒë};aÙ£ìò¡æLŽ+‰¶ ]– L4ÚØ€a€-º}"RE@•Ž[„gYòÝœ™¹*Õ¢À‘@^ æxyȵ³0bÕÆp¦bf3½)@מ.1)x#\Æ#ifâ‘Ös~HŽRåLkÍ\DwoeÀßžA˜çF— 5E#”cÈ` w{D⤣EW[Nò«VÖ˜¨e«û-ýWιdÀö¿é€dRr2¢»wó|3]Žfª¥|ÃöPH.$‹ÓÍNWV[VÈ{D#<Ñ&_HÞ¾Á3™±™pÀÙ¶òÚ8`ÉÛ¦­þzs&<9ðä²+á>0Ó±,yÎ1‘Ë Š­bÙèÑáÄ ˆÈð› ¾%Ñ·$Ëa;7 ý So+gÏ’nôX¾òÌ•äÍmÊ9´žìõÛèHuYìcrʾȭŠM.›ƒ½N–hÝ'#9«úE=]jº0Ìï,Ÿ&ÅÝøóHùJSÊÚ7`œÛLo ‘åíƒÖ ¹” ê²BY‡¢áÕrXh¾ž_œ3ÙØ°“ÒAæ=¡n8]Ž"¢Lÿõ5’(=ü»jqëJ4ô͇¦chÐã64C# Á÷eswz+wÙÕ€êšNÐ ãû» g¶R¿(÷fž{sïáïždÚ€ô®rëîâñØÙ®åá÷.å9ßÂX*ììî£Òáí)ƒq›÷K¯ŸF…p×{'LÓ7`°ò⽜ éùE‡™(âñŒÆL“Ëîd=ûH’Ao¼uc‘ýR¯D8‡ÕFÏ€[wÙ˜Ë/³Ì)ÀÔ~Æ^hæÀõ .µ¤ÇÅ#¦SXŠ2˜É|&ŸÆ™¤Ž ¾_•ÙÙ“A©£S”Ž ¾Oy¦“åEt4]§Ì…ï¯ü, ¥£¹ç}”㜠;ç>Ä•vX¡¿ïO'Ú]6À y÷çm¢¼6 ÔÆ<ß/á¼×(=k›NC™‹ƒœd:æŒBóR´$1¿5¿­ úh@¹þmBõÈj^ÆM&²|ÿ.oG·™Ú*àma˜[yü&MÑ9E¾Ïl©QÆî#x¡çåBxŸIL|š»'yz©â[÷Ðü× [{9pÛ¸Ã2EHÛÐ’rüÛfñÀmBs31m@¸›~;Nw|•ÀmÈ· ËíxXEp‹¸ëKÜz00·˜ˆÚºr; Ø´ÑCh'9ŽÙÊ J™Ç¢ª›!ML;Vp(b`ÑL»4,uéodýúÞJò×ò‘É1z„濪¥^ôk?#lôDŒNð¥áI; Mf‚ªW+@2 ùÒ§à÷JÔ`Zíì/Ö˜‘VËüu­ 8×'NÚ€Í"O@>N å\䞌Ó³‡E»'+”®?_(]þÿ0÷'ðQV×ã8<[’&™&!HˆF&j4¨Á š°„€32ƒ $¶Z;TQŸQÔˆ“Q&—±T±uWêRÚZ—V\ !€+à†j«­74ІyÏ9÷>Ï, hûýý?Ÿ×6$ÏÝ×sÏ~&ªùùÂûü ø®/…ù_o¡KØõRG e öûR–ÎcKlš=õE²Až®6˜/ ¤$t²%ÊI»×›°ñÙ¢ñn—§ÚËÏíÕ®{÷%‰#yÉSdáñŒ4ÏáØ?û8öÝé,åX7/}Qò3oö9(¿°·¨v0âÏü“‰?$Ýlí+¯zДÛ?-ð³~R2å~¿ÇÁï)ð£KKKÓ§¥ÒÒŒiôŸ)%õ݇M¹¿‚Ÿsàç:ø¹~¬ðó ”ß?oÀÏÓ“âã!¦!CR†Ð©if¡?PáÀÕΫ7³ äq-¬?]“ŠˆPÑèá¯^Wåå-}jˆ> aº:'ù> %ßCÖvy¿‰¼“¢Y1øWáh¡©ü^âŸIJ2áënsqOTÅEÒT‡b1m(ùåo RRz40ù¿Ïâ#íăI¢Fnù‘Îð?—3:×ÿôï*Žºáäñ»Va÷¨55'Hù¥Šßw· yUÎ$=¾å˜Ê°&Œ6â?I¡»X'‰Ã䝸ùÛ=꘲iLþVÊ\ŠâÝ.´OçÆU2â ®¤Šèó#muÛÔb¨ÜÃ;ô;ux”³ÅðNÓ†g••£n4^a»QÙ¨µ6Þ"êu$9  ÅßÀ(éÞB‘}²ÿAw ¸µø¢‰öñÌmí\‡8M e¢4qñ|(¾ä mnþ»Úf|´IÙ^9ùˆ½v¯VœÍ°¸]üÅT äØŽö1¤Sd*eÌ ¸š5jMáŠÑF§¾^_¯ó?!ýÊëqÝ‘³Çêâ·V%eÃ*,l¶ÍÙÖ˜ Ôl³ËÍ'‰~É[¡M$©%á|…ò6-}ã±BÍb)nX›Ÿ×<µ³™èrÁæe7X ÞFFô+ÆÚ–Š[ÑÆx0|.›i1n­ Ï´Ô%Ùï`ðº_þ'`Bn 6Ü£jevRUä&ÈÍýQy£Ã&Ç’ÔâVº\0NW_B“‰ L‡!é”0~“6þZ?ܹÒsqÆ·m7_V2TI+s¶ÝÐÛßú2ò; BSmÆ­u0ô‡-¸f&1œ³#‡Ûÿt»(¿;NU•¶™œI¤£K »”XkÙÆ-ζ†)4KiSì7zgGxŠ9p Ë,ÅÆ>££±J4¶ |£%|£]mÓ,tªo³ûØ[¬­­ËpàI¶•"³0th3¾Ï6A?KÝcxŠ nGm’?&xSá Åð“ênKDÝ”“[£Gi®Ã‚>Ö‡©ÀS…œqKLöv¥Åã3 ýé¡.-ÈN¸Ñn´‡máFËj¬\V÷xlãï/ŽÏçâ›zAôt …â y¼>>ÿÛ~MvêFeYU‹È€Òú*œÁ!Š*?Sˆ¹Ü@Ϻ@é¿JD||X¬ÁÀ?õch˜µe5±qÒ0’|3gΉwþ&c6ÈŸµV(n½`åãËËç’PÑ”¬~ý¦×ç÷Ÿ6:—¯š„<¾bâÝ„õQ•‡mX_ZålÍI³oGÎjíx¹øù<=ت®µ×ÔZÙ®ÆSŒÓ·'ë…Ûi/d#å? /þúçg²Ÿ/R^À! b Ðx>“#5j³óòkãW>Þ »d¾xs¿Œž0N›læ-.?"$ürz+,húóòa»þíT‘,Î2B—‡3Â.|ŠÍáEöp¥M>KÈiö,„½°B`„–φ€Í÷!Jrw\F켸ùM°oÔRh[ìà!çÒé€ë;—žêmÖtì’ÉVMDôžs?ö^¡µ¥vnº;?;.]ô½úΊ¥‹fÞ£IDÿ¨%køŠbr¾Ý0jPH¥7&ÛOe@ysÓ¡2fÙ낟Œ™‚×s„ÜL¶ý×;1 šÈ¸eHeS~„3ôiÔÔ[æÖë ×¥M;{ÓÁ.㎶ö¸š˜IcMü8¦‡'S8 õúàêY/„ëê Ÿ _Ç, §¯ûë_þræÁ¯w– Gìemÿ2|>÷3û 2¸É®Ÿ¦‹êÙD¸¶@‡waü àVA¿î4fz Á…o)Æ“¡q1 ^E‘›iVv™Ž¯96Ê;MWWž¦«íÔãÕ^ÐiÄ»]Ó^ $ozxb§Fp¢¥ñÜN=¹€ eµPcA àC tîz=ëä½GèŒL-в½<›¾ÌäÅÔåå]x]0¦¬ Ü:×x€X:]‚2:)¦Õ¶žþ#];tºòÙ×”à¡Ò†ÓÖ…—/_.65E«vÍÎRÚÑÔÊ`[)n'¦V8ý†É Ã`§`IE•ì†³ÄæÂÀ ñ»k„—énIƒ*ÙðS½¾ub툽¹‰¨çmGcëT» ~¥Vk ôߣ EqW[C;­÷¶FL!Ä[\¼r®D†)]+V“¬Þ®4uêpÛ’ëgS}s\ýY?V*4»Ò[ å•-P´³ •À£Ë+­Ë]¶d|U„£tEWÞ§Sev‚еcí˜m‡„µùMÇȯé½íÖ íBG$¾ÁùdØH RK6Ñ®Z‚¯lh ¾r–W‡¯¼å®Ë+G’þÞöå.;ÕlÞ½|žE+sye–’M /ÊN¢÷„ð8y<Ž„ñ\ýX KÛòÊtøÓ¾Ü•C!׿¢KÛ ]_^9BtiïR(oy•L/¢uÖà°G»d:‚Ñoùn:FOüÆ—¦q¬8<ø·W>8ÙOЃC–‡S1ÎvÂh…)ŒVu–*ma…wSÌTq¢ÆÒòsF£”¹ø=ß§hRš «´ K·ÞýñŸx\u´Ùž¢ZDeÉÒñw9Qaú›¢7¸…|ÅÅŸüI8Ð6N“lŽFeüóQ»V,-–æV%…Ud׵㷟Gåð—‹÷XÎ^‡üõØ€Þ˜½¾à;QY§QPT‚àÙ€ÿGPìÚÿˆV»¸écA梖fšÐuhkH×j?Õ¢U‘¹øÏÔQr¨j¿é„Œõô(Úº¯bHa7øB­K=@œýº_ cÛz|8u‹ ¡Thë ¤ ¢,WF-ØNÀ$ãbWÞ‰v§l| =&H š¢?‡§ŽR}˜¢êVöUû¢=Ý.쉠6Z— „ЯÜÔÎÚcª3n ¶‡«àñ*…Ä'óv~·ä@šB½K†ð RЫÅR91[ˆÚ¸AQy¯é-õ…‘^ÄèÚ ð{¾Ã¢lª;?xP(‰‰«P§Ý…q,3é2Tñabµ2ê/ÚîÁ¶D3Í…£sìBÄÅ VÿóO ùkÎÈO|¾½âüø×܃»Ñú¡v†”¹ò¢ÍÂóBªS“¥¸ôÌoÕóR”H—Ðqq>glgÿtÛ;ãôt¦Ñª­Ô’†«L†Æ+´ë3A^Ÿç{ԎDZ›LMÇJΆÌQ~üåå«ÔL¢Þ”KHKPļµxèPàNñ‡ûiaà‡Ój|ÒýäÙ1EeO˜îÓl5ÆâÕJTŠ`}ácr .7©}û÷Ü‹fºØÑ{VC#fhë4¨âHÞ –Ùšr²¾ìš\ÌB8’5üôŸi'±ôgÖÐG"/Õv6Ç‹šÞع˜Ãc›—gmþ9Z¢ L¹àP5,.ž »ñVŸ†X›ÏÕÊ+>ì*qJþ7­(„zFÃ?‹¯Ä¥iØÞÕ‚‹LObdmÞ}Œ‘¼®uGØÀcòjHŽ\s ‘ |9ºžAKsbR<ýÉ×î*Ÿ÷ uþY«P³þRßSZ]V7†¿I¯B)OKe†ÛŸ÷`Ú$¥Ÿ‚ (ÛØ£g|ì–µ³¡^VKe&Ë¿G°o¡µ‘¨‡»«ày‡|þFµç#Ëë/‚´`gŸ/Ønöðç)ÇV—@¡x}t°Š£üoÇŽÖiÂH s¼|Æ;ê’Y’â± Z—ßžx6Ù,Tûˆ‰5lm&:⨙þ†l<Ô•j<ÙyȾXOì‹oû"Ƽ5EñœëÀgÜVeìtùØþxwÂóCâUÆE-ªr¹}Õÿ\Xåƒ8ÛßV§Q4ˆï²a¬]úé¿à¡”›gE‘þSnñ68Ì«ÚX[÷¹Å;áÏ{7uŸFi`ÚXJ{xS÷J{Ó†PÚ£›Ø&@|¾ +»„ÂJd†î=h³~ž†Ÿ—àçSøy~âû‡óÌÜ!7‘/™*ø®ò_õ žµk/)5mÌj,@‰Š£®âݨ{ÇGíˆÛÿàJ·7uÓ[k…ÏŒ'ï\’Uî4›‹s–ú¼ü–û£jPµŸ'‰R·ÕºRô¯ÕÌâWbäVm¯*ÞÍoÂ.¤}t‘õ"’sfÙ?æ@3YÑâ« èrh_è_аª}®âýn²)žñBÜ\Hþêõ>>â픘N/¢r<:Ý LåŠ{ƒG¢tþÈ]䦑Œ½)pºÝºµ«1øÎ·âê¯Å¥MMZÜ——oûG\ÿê’‰,˱¶”k½üæÄq áY4Ž€'´›u7ÌÀÞçÆÕ(a¹S¼á\^¦V•þ¡Jw/‡\D¡_íü”¬–ÈÌ–çGýöÔÔQÜqs»ú;a½ÿýõQ f µ1ÉG¯êõ>š„’“U"µØ;$?L90¥´D²$’ú;Ô?hwÿôþ><ú“ûóÈø†ÓÕþÊ}¹dÅ"H÷G?W sQq@#íÕü¥Zþ6ÝÂf[˜ÏÎjm@³Ï±±F;•ª×?¬2¾ávñS¾ŽÒ½³7Á^†¨‘Ü5 ÐÏBál¥Ýl—Y`|?:øñÁ]$Š@¬³Ã¨/¢…ü+Nï]v_h¼d¿Æha7þN'^©þ3(1˜î“GÄ]0%ß…¤ýܰŸV­÷ øæÓãàÝOãÐÎW‘@¦é˜@j]¢'Lñ_5Ûü¢½ž{Ù·RYté³6#ßAö{³Ú¶5ô•jí‰Ö6Í{З“èß+Ó!Ë Í2Ñ¿\¼Xûé’¿Zm&|Á ´8! åwIdÎû÷‚v/ÿ´[§Û ÖÞ”5,ÔTÙ @ÿã.áO½uo½“ˆ·÷ µl7Ý®%êåˆyÆ•K Ú{ó°ÇË•gŽm­Í‹Ñ®`šÅçâ…ë— Vª&Æ=5ÖfŒX·7EªÄFÆ:äp£iO’+yÖ'ê*ÂÛ ï]w†‡¯Ûª×ás¶~ » ³wm«Ú»kÐ)­¾Ø …v•ˆ†hk¸JýÓˆÅÍô8ØàR8‰=º½Ù¬]V‡…ºôoq>®8Fë˜ýé¤õ‹™îvÊÊÞ;ªÅ !÷f犳E]Nòª` ’lj´ïZ݇–Èþïÿë‘þhtð@Σ젵y˜¨ms¾¥œ¿ºêÁ0ó«¼þ/°ò†äÊÚˆÊoë…¥)UF´NV6ÁËÁ›~¤òïDålªlŠUÞƒ=Oý‘ÊsEåªlŽU~+§ýHåQ¢rU¶Ä*[pد9qåÉï Ê¶Xå7±çÈT~*k*_^¨Ûüø!î/؃Îðž¼Hœ}‹ó(}lÛHç7¸ÙÑîÃÿ›?ÓáD³8‰r>àÜ[£ŒƒqOp³·ùMßc<¸8Ö—´Ö“ßïÀpViƒ_@áÛá—qPëµ<”`.‹2Æ1ÜËLðËRåö¿G×d!„°·Sk§ØeîVÌD¹¶v‘ÔŠIgRR̾b‘džNu,‚ÎCgÕÌo|ÆÏvDKꌰÄzô!æEÊ*áˆwwK:ë˜l-•lØ)Ðb×´–lŶnÊÚfcá©d¸qð¨^<]·ò’,¤*‘£âªöÛ@‡£þ*7o³…zZCc°ïªo¡¾#óMÙ}l•àü"=í‚ëò±VÚë µá2gç3Œ»  ðq’‹X Pf!•±¡ (sªqB›‚ØO_ù>q«ê„¿€…<³Mݵ¯n@œî z„J›t:É»E«ãû¦‹‚DïJÄYy0.þ—/ ºX”DUͶ1/*ÈŠB!(ä‚ãæò;ðó&ª“¨:žbµ —…glRõÆãÏ‹um¥ÕÍ¿kK΋˷¹ùÎAóÉ>ñ4›n.ÞìÓjØÍM*£´¯úPEJƒfSàë†ÙY3‚‡,7"ë*QÆjmþ3îŽPÙ°+]â·5¸”#¯#Ó¿¬•÷`Ú.?ë ÕÀÈOc’J¸| Æ[2D¢î¶vU"Bèú|’¹Ã1˪ '^Ø›×B^ÈÚ™…l:[•?ÏËXî².‡Ûµ‹3mƒÜ¨è°¤¸—ÿ-,ì;úédð…Kã:dÍìj²|â-¸ýôbÙ&W¥ #\7ïy¹vÖƒ² ¡.”ÿrÆ¿l¤ñþ•®HåoñæWbLŒ3ã¹[×¼z<î–F"-,ùüßÿrá«*ÒbK‚zèC|Q‡UØ{\…ó€eù N5<ÈAJŠ%«â¯]iaÖ1@U´g“í­íÝQ³½!]ý’1r…Z¡-KÔÂòÄ”¶#(±¸óCáf†Tàà Ë—WËÅoy—=§†ªÂ0‘}IWʧ…¬Í¼Å½¡pÁà™Iie†E1ü ÚŒ;T$:„,<`üàÇÐ:<Gô@üAU–Æ)~-#éñmÈ*­‰’Ähæö³Uʧ%îpÚ“gm²µ™?L¤!Xø3(xjß¾«aØxT²3­ÍwÄÊmS˺æ(漘çâÓò P‹¿{WõäÞí¹cRª]ehe©•…›‰O³Vv5Òeuã¯uøOŸcãþ&6îá±ùsžÜO«å:cåºvjåžÇrÓå³ä·iùÄ1°Þyü5ˆ¨yÊåõz\ƒ§ªó²®nóïnYšî‚?­-u|ãûѨuíl¤6¦³>ëÚ «»¥6ƒÿ ÒsDW¯+èC~—io”é-PÓ>³IÊóàÝ5™Hº`1‘ø31ï2Áf“-ná xvýXÜÍ=Ĩâ™ß¾CâLT«çùå(þÈ7%a$qòVèo™f,× è4k‚’›Vqv„nhøi¢# l,ÃŽ“¨^wÎrîÅËúÐK¤Ÿ`…«ä*ÞÉuÿŠF“5Îâ#@}øVùWâ{òB–*¾÷ri%J6qÄê½=}/*‹Ÿ-yS× q¾Ùçõñ-ÿ:ŠäK”F-ëÚrÚù[pçË­-—gð-ï& —k&è0uÍzY¯‹¿ú>{Ht]íõ¹[æe ìšßþ®¤ÐZ?í=øûí‚­ëîq̸[àX†8ÁpZÁëìІ;ÓB­Œ/9ïRŒçõ zØÛ?^‡ñî1Á¾ Y‘)zdYó— ª³§!`œ½xÿtß´j@S>ùÄ xY[šlF¼ê]¤{ôsy~þŽzæÐr{ùu§IŸ4ÊHqÈkc‡¼¦=x™BGâ˜B¿$¦PmM{-{ƒ°åš®HóEà:A—ÁŽt “¦+n=ðT’2¦5¸+ %kºR¿TÙBbÜVÜ£úh=9­*ÞÙr}z‹;ƒ½Î-ÿ!n±¶¡h;„§ÄºvÔñÙŠ[[~•޶ohWF•s<èÓ3`ÌäÞå‘xs$"³ß7¿Ê'i{$ã„£N¤Ù[år‹õ¼k¯à: VUj­(èƒóî­âWöï »iù.çüMÛA+WC¬Â]/ÅÎÜqÊgî ó UÔ#[CÇõá—ë›ÁÖôzÀ÷×M€Öì©CzoÏü6RA…Êb…ž„B@‚Á¼×ἿGÃoÓó)|T+aHµ ÒôEÛÕ˜MúCTÄʼnED¾Ë3Xþ„Xþ‘ÛòƒûrHãR}I”BùŠ<þ¦zze„‡&ü? š¡,R³³6{„ë 'úa UÀ‡§ZU™Ôâò]Ѩôâ„r‹3Ä–ú•ô»4Vj”/|W`"ìöjdÐ,^65i—ä È' 5•£5%p¦©#ò»¤¦¬k½p¬g[áH_Žx \ƒ›ì>ëÚÆ-ˆû8Z¼™P`dÁtP¯ÕpRJX[‘Õö/ó°íÆ£P&*’÷ Å)Áhiø9ˆ‰9YSˆxÒ7"ù‘G>Œ9y—\¸¡ÖÁ‡*VâÍV±5Zldêª/Ò~—¡íà7s ûé­ÖV£„½ÅÏù0a5¶ßH«qúC>§j›ißšo¡w§‡v†’³WZã‘Ø\füè\æì”sY2:Ù¤8¶aОȜ™âɘX©uh¾8KN²Ü¡ùð» `ÒZ9êäàänr€Ûoˆ?x±÷ÏS¯ã>§¹À k.oWEØ7¢šßŸ§¹óRœ/ÿ(žµ £@58eœªX™/ƒ5dÆ2r”h¤Õ¼4Os“¢ÌðøxÃ3IüP´‡Üs[¢–tõhLô©u• ]U“:* =æÃ<“¥aàÿaŽêŽÌÀ.Œ¦&úP“z©g&¹ D<Íd9 ‘»Y„䜈j“h†Íp\xï‡Ú;—D‘É÷:ÝÍoÿû èm Õq¢| ×'Ÿ ß5±*[KåpR–póLµ0æ·TZš·)©@eFuí¤rs œúj ÑÌÅû‰¢÷I_µ9ªÿZt'Bj*+Ð9;†òûí¼]"êÑýY’î¨SC–ÿˆe—šSyl4g³›Ðg&ÐçtsI® ÔõÁ2Û¢8&‰tå‡`~Ó!MüݪãÀ¹ÅÚŒZZÍ»ÙÍöÈ{Ä•>ïj6Ãtux¦¦u?Ï"ü(Q[Ãë&׆‡£Žÿ‚°ËN}У¬²‰_\J<]H*rû[‹à‰~óaÒUi›#½ *j u'ñ'%É÷ßáí…;FÿBÆ =Gx4Í—h§]{ÿå…¨µm;ÞâlÁYXP“èÞG¡=æf¤ÄP¼û1Z—#ÞØþgÃþÃFšIRñÁéú @¡„ 9Zªï]MJvüúW»ÎJ®O©£«?êûé†ö½+´©"Ð_ïªÊÁtýÒßjñNœûâ–›àªïLz‹w¸uíµVâDV˜X™Ÿ™wñAÊPÆTUû€tÙ÷0‘.ùÈ|¾/e^÷ù¡ýÊI”K„Í\äVñ{(7§{f /WÖ_åâ·RF61œøÃ›¤Æ–2²e6ÎÂÂí.žú> ¶QÁ-ãc& CÏß>>éÿK"}§_ äÅ«¤R ©‘ééÌ|5bÖµ›Ø·WÃÃyJÛ×(» 'e¬uí,Ǹ¶ÿ˜‡¡íض¯`UvVµq3$Y×¶ûóO|©ḎçøìƒÔʺQ0Ç’úù.þ{ʰ }Ùõm1­4³ÒÐ2ç`>{ÓaÒ5«÷ëÉÊ­¿j=iún‚×­ˆO{_u‚n›Ì¤0'Uy5m:ä%©j›‡ÏÓ”åèvñ©mB_Ö¸k=éëÚa™ ø ÒNæÛbàÝ ôÛ®¢ý6vÖú ‰kÀÎHò¥F¯ÚÐ]¿ô~äµùM07~ÁNWçÇÓutX¶ëzï'ÒvâüZðØfkÚⳤ¶xp“Š^„ €¨2:Øg$W[v$^ »ñ‚§E*M‰¿¿ˆýMáºh\qnù 4TŠÎç*ŸÞ(ŽaAægŽª§@üggàLçëÓ€.ZŸŠGïÆt¤‰$I„Љø h¨:Ô.töüÖµSÒ­ko˸¦µÔØYÐf]{©þÄûglà zͶRã;¯âhÅ?_/h 8 ÐÀ ¯´!öhk™2nqÛgæaXa^à›¨ÃÛcÊ`d¶G‘9ükñ*¨“I|ÿ>ÂÛõYC¨é%‘Æ^´]jµdXqá '0éTßþñï»±'fÃÔ¼bÜ?nBÒÚp^°/{ÉYˆ ÓÌh›©wœ ÌëÃ*\‡*·‹s sÝ}šV8¹ˆ*žÂçÞÁ[iÇ(;ÊX׌ºp…y0µx«¥&bpíh6œòtyÊ@jC×™8"L4¨Xv¤ðZ¦ã{2®8ädw#àΦu“!vÌÂ!>P”$ðyò=œûÙ =_©zßE’ÕÖ.¹©ÂËÙðUs¤Y8½o‹K–­¯6äÖ£ÉÀM'4ÄkÌlN¾‡ÖæÖÀoð!qbk©s ü ^J_q&Wo¤0Þ8[3·°ãg¼!€w_0­ Xù¶_ 5{qF€|Îø¦‚N´¿¨;¸«VßjÑ'ëH ç§x7¿ë“†*—‹UÍ–Ú¥½ Ÿ·ÞÀ_ÿÉÓº‡yëõü5ú0³¾$\“tbj7©üÛÞŒ¹HàCØhè-ÂFéH#~8ÜÍÇ­9þ8ÂÍ 'ÊéæÿúÓ ðË,RÉU•qÝüÅ? †_f†_æü²è'á—Ÿ©øå‡ÇÁ/K_ÓðË~9Ôú )²Ï!ù’5øÐlÓ·Ub›™¶YÅÿøËl3§½©AŽB3[œˆk¦é“pMv½)|ƒ 0N3`œæxŒsÏ g6õ“„qưMø¬Ä+ƒp¼“¦ºýæ pá®z„вi¸èH¸7•Ÿ€v•¨Ìwµ \ó\|&b¦Î6z^ÅLgvŠ£ÀL‹Ž‡™ÂçTü,ÑÈë•[ˆÜŒ!ª@Wzi6ŽQé¢4=XâlLíÔ9¥ª>¶íffä0»Y%þ¶ ˜~#…›WînÚ„q•ÿ…Gˆßò"LùšÕþ¢G4øáJU8’¬:&RþÆÏ¹V*EaãQþ¶ïÊ8ùÛî©Ây½=é­ÐðžLT .<†'¹ðè¶&9ïÀõ†¶]|ß™i¤…¢ h@~„vÕ_–Á鋉ஊÁñÇŽ/‚S.òñ’NRS²ÄA~MKH¨.Á¤ÍªvÐpns¤(¥’wˆb62b 0,–Çåæo‹ÖÅÄl‰øT!ž¶­¸âèBÒNàòõÉq^_ð&›xÚºOÒJm–Ã$´Õ(ØTRV÷Ã/·t ·OZ5bÄ• X \àó cÿݰéìïÑ$c,jX‚˜“Ç.ÆãæìX“ð/<þ8&¼AšÝþ 8­íôj©O?P®bŠ&¬.&vöfšXšŠ7 :5\Z\¶lmYo–¿ö™ä7œHŽJ³H”Ÿ~ñˆwþ~²*ïÌ'ùif¿86Z)JuñoúÅ9Œ“¥âÖjíG ñB¼‰íî/õ飵Žö–aGhs%Av—¥y'½šŠ‘UÚÝ8 áFþ„umYº»Š`È@“B’ô¼@èܘ‡Åý>޼7‘Þ=n°ØãÓ»°e-åXÝÎÊ‘xŠQµM›UZ5>õšÍ ¡ƒ×'ª¶<¹>¥¯~:ÔwsË–8Z×ÍnŽ£uÕ÷Ñ˾C¬0)Y4൷x3ÐN ‘CøÇÜë³ÛBöHäÃBúpDÜà7¢vvæ¶A>›a‡"Ïn…RY(x n-*ɵx3 Ù4î@hÒ¡–’dQ†%"è«õ¯©ÌJUkBò«•vSvwÊièiQ âMzɼ¯C!îôü,…ƒÀ¯Ü(x“µ5 üÇDy´R&¹ç¿|Q¥ŽÎ C¡æ)ç!Ä­coK}ßV„-qÊèÊ©²Æ(­µ‘ƒGÙ;uìÙÄ’cIúÀ?„~KŽ*S*ÁYr ¯¾ á“…í]ž& ˜"Ëܧ– œ«M&K­!VÊÉÞfrôÇßõ%]¨ØAŽÛ ûSè#ü€}Ê›%Y×€›ã„@Q!4æGñÜ1_"4ÒtÅQHü’Œ¹º ̵/E£B¸Ìϵ¹PÂŒ抗PðìË*àˆOÛáâ^‡Ö|9R#¿¥"³eN& ØòÎ{³†mÂCX‡múðü{jnÁ¾@)Íuä´1y¤š<ÒmÜäªæ—m ±õ¶+I‘YáMûöcòctïe/8Ї˜ÐòÅÎiŒ0&Äù7)“°wœÉHüg8’TbbUt©\â dT¹ýÊ£³ÓˆF¡÷~…øsa÷Í-#á„;­k·C•Xy8V¶eæ"ÑGUKE†ËíŸ÷¨P5£ÜÜC-äwŸÝ¯c»è¸,ÖqUs×9~És*w)Sp—2|¬1ÛÅÿ´I(·³\ZþÊ)È Á¿ñbòÏ›ŽG¯Ó˜NwÞ'½CÄô÷à‚6À¾,òo! ÌèòÏBÀ¿ ONUÇTǨ¹üŸ©}:©³Uœ"´Ôˆ ‡kB šš[‰ï‘k6µË k™å892×äX>trd ý ^Òå À¾IJÂçPwgèçÖ€Óëáï–[¤”³E¨‘ÊÙ‡-J’Öˆ0@üOɬ'E\àäyX;ñüœ5/çª I¼ôËhCFÎPO{š9Ý>TžÁè! Gº3×ütj†ŒÚVŠ* Fa#ñ,xƒø=ôTª°N¾–ȸyt=-`Ê‘¹®ÇðcxÏ‹[q€xa*qi6ò+Kfv–””—¼š«‘cÇa¯FÀ6Á«©¼/JRÄ«qH^#ŽW£²nòܤ [;•ÔÞ‘ŠƒäIIîy”X7½HJ2"$‡B3’X7¾8ÖMÒÛîDO{MhK;BQØ)w6Õë|.néQMÉ,ƒàñ ¨€Š/Y„Ø<¢@ÐyŽ.Õñqt/½ OÏk'{BZŸµyY†dO6Ôhˈïb`˜4NÁ *ó§½ÍÏY.^ƒQ´fÜ^-¬G{{Š/x€x‰‚ï<:(ðFi·ÜL8'ƒJ½ñ)è$©÷T’÷ý©÷©/hRoUQY2líšÈ;/Ë¢½-CT«ïEA~8€ü8 4ŽìpÙ±øî‘´JBôÝó(ùß›Gä ¢Oˆ\¶à;Èf›©®¾RæQ%ívXé-/ÅóØ2ø/ç 2¼N:YBR&Ýì ›•²QO«^1o>Á>zƒÝ¸ UHF\›Þ2;ƒ¯Ü$©×¸!¡s³Jq¥(©9‰7 ·¡e^Ɖ”(MÉJ”‰ÜþW7Î,Ýg•Îûi#³ôÑ,…UMÄ6Hm¹Øj{6©1A/ %ª(Áñü9O˜¾éÔ[ÙRžáñb"À‰tð@®0Ö–ÛÈÄÚòxh‰@±6c°d RÄþ-Q/Šƒ›×ƹ!Îÿ\E{gQ‰´jFÏWð†¬BE‡ƒ`gÁñ„³Í•òÏ˳]·$[Yºy¦G•Çÿ™_î¡àˆf)&µÔëðŒ×™Ž|~ÿ}« lk;ù±ÇžŒ›À½èî8~ìYwÿ¿áÇþð’äÇV{Éámñþj0vÜ+²ƒªþj“õðÓ(Ú FàYñ@ŠD'øp5ŽuEñ=âý?h‰‹0O ÿ2–Xƒ‰4ùÎXbE FSû=Z4VÇ’â…ó¨µy| Æ£ß<"+×Ó9]X“^g _g뜎qÑtü÷%Zü°>“N—èzÐw˜°Å/Êb-vN· ¹+´¾ÎΧÆZ|JmQ{mq)µ˜çLh e;§Û–ºõ:+úÞä_]¨µ0ü¤‰>k8ñ™k±Ù0p¢«àŠÐ=Ñ&*7ôð3bˆìd¦!6ÝçÇ‚LWk*nº± ~2¾Ñô±y7ÄýDÿ“æý’þÄó>3Öâ }ò¼ëõ~å1$,¦>Їæ_Hßà{u‰z¶Ëü+~©ãßüòç ˦.WAïãb.Æ,±Ñçañ£'˜2³pø4‡2ÿØÍãƒÌ˜…0&¸¹’`M™¿ùnÌ%¸óllµÿýÊiåþíØÇÇ18q6 L0†¬ËC1Ø­†ˆ^G¤ðãh3ɃŸè›ôq4…äµø©»óããhÜÈçà'zõ{Íy|²t¬h‰ó­ÇÑŸ„R3ñ,¬ªx&ž…u”K'ž……•)Î-Ê%{S*¡s)h3t{SÊ áq4`Ĥg(©“,2éA#Bróãhi4Ë‚$ø¬!sp©9¸˜M·£ßŸÅ«™e}ý¼¦Ÿ«ŒõòK¾zaº9Îî/N)wºÝ,ƵçÅgÌäâÕÔ`Ilï›Ï“Û‹VNíIþÚ÷lvOgEß1× Ob¸Šâã1òe¢ý×j•i—† µÚÛ×-Ÿ—•Û.Ê;”¿J+oå»S¨ ý¿H_rwí%_ÉúQÇkÔú#úg=‹]-ªÌ—ó¾+æB%Y·Â c¿)Ü/ÃÎÿâx¾ûÐq:LÜqVÌOâYÙ~©xã%ÐãCŸ¹A®ºâƒ_£ºÞTˆÉ)•ϲ™×æ®òñ³Ž™Äiþ?“ë R¶B¼)Y$þÚªrÁ"›eKÇ›ògþ”{1—æúÅL±ÄÈ‹‹_bäGZªÙ5æàQ=„%îãuwýOênuÝ‘®ÌÏŒ1‰à²=s§º?;^/Î׋τÇkvÇŸŸ•OâùI›).œìN^—çƒÒG@(ª|QápŸ].ô ÿ™™ˆ ªu‘$öúxÊì£ÒiF²È@µDšSØ÷›™Ëæ­×¹«xaРui VŠÌu]n/ì²£‰z ßÚãÚƒóŠpñqkÚ]ü¹?˜hiåmË/;QùAÚwý—íç¯|nçpœ·Û%Oðð¢Á*¹ø¨U1g`çÀn¡×!䔆ͼ`»ªíZa ŒHôí5ˆO`:Ïðh9ëuþÏJ½}åžXÛäfˆê|á 3縶“<¹ NáZ[¢Ûœøö›íל ýëþoí_q´äîã·oý¿µŸç„ö‚Vè#<Û.»‘÷ -öºž õG™ˆ·IÆlew$~?vqfÍ2ÍUÅï:M:X‚þ9\üë³&Š÷Äg­7I·ê"F«ÐD¹å˜.Æá6·ÇÇCc“Ín¿ý©¬\ªââÏ4G€8¥ 9~X'NF$lEÃ@{X‘ÿô)˜¿ð¸ùº?bþ¬ãæ¯[ù…ÇÍo |Ëqó--˜¿ï¶ãöOõßLÊøîl$`NDÏ NËxùo~HÒ‰ßïí·÷Gã¿‹P üGàKüyXù¥AGR“Éf²›|Œ€Ò_< Niõ÷:Íis¹7lŽÜÜô[°Ñ|LI÷? ñ›)¶Dg…½¯®.»stn8•¥ãoVn W˜ÂE,“Ro ]Øþþ?¥÷Îþ>YÁF}Ü6f Ißö;S¼Åg\þä *ÌL¨ ú_3³2[o™]Ïj¹YlQÆ$ˆ r‘ír{¢Jo®h®–Ú¯\Ʀ™&a|xxìñ—‹çÞ£>öéÕ\’ÊcvPC6fVc0ä<…Ï|Þä8Óí8†JÒtWQ_˜1À¿™ô·]xElDôX7Ìë xHìl ®g\Šœg©íÀù¸ÎÇùßÅÎG‰¸‰°GíšØA±Ä”+7ýOåÿËóˆ‘¬çµ ÆNÆJ”i$RûqÔ·Hÿ (ƒK„Úr¡v1¾1Fa÷W>…p⋉j€T”ó ]Ò:[V.°õ7‰kMJÈx‰CÛ(‚´cëN±“SBÛÖ)И’²î øåZ=—b¶LÔÊ@ÅLBüظ‹×ÝDÀ©O‰Ù]EÙÅgP*.ʼnÒo„Òw‰Í¥ÆÊÎ'=”ŸÈÖÿÐ%£sý+ ¡â^wUXqÂ~òᧈ_6Zêã(0•ôdc!)’³-ZŒª–‰”&Ôx…¿Ìô—ÙÙÏ"N[ûKMCïco+©Q½´¯#––&ì"q¬ðaIbùÄ5?vþKœÿÓØ[b ÜûñîÈ ôãåß$Ñ>/±_ºÑH¦ïþ úãÛ»~:ýñäAé³oûQúƒ¯—ÐwNЧ?`ºG¢ªË\¥‹H ɤGÌg«%éùxKyé­<©Ú@qúÛ#¹\%Ê£‹;ì5G§[ FpŸßóŠ—¯½!72CÚÝ8tÇçÎ]½¡ÝKÓù’ ¤ƒZƒÆ«PyQµ—Ý`?RŸãüÁzokðˆ™¢ ¡ò@àTç×yl¦Ù9Óbmþš\k {ø’xõ]º‹#¦š¶Ï 8Jâ~¹DT`rgÚ°ñaоsA\§ ïöÒhx¦-b©iû§}ÔÖ…quëíì迲70€Ä_X=<öNžl O67ºƒ¦n#̇VD±³\«èw±Ã—ñ„ç¨î“Y*¹¸0_6Pž Dll ˆ ôì€k·ô&® >JC¼|9ÓÓ¢¾ûvä5ȯ&¼Ó.ñΧ–«L_CéKÚšéøÌ"JU ÛËÏ}Úů¡üªót:@;ëÚ]^: exjëÚÛ?C¶_¡µ?ÊŸ‰~tm”°ìbS©±˜›nþaìfˆ‡¿º:%s•ᓽìfKx8éžì ä‹Ðl°LŒ^Û8…ͱEæ1°9æˆe†óõ†óŠwNrµëtÖG6ù"sGPÇ|ÿ«åT]òºmÚŒ©“Á@ÓÇñ?–0Ÿ›îŒÍgª6ŸE“b8Ét·i©ºˆÓi>>¾o«Ú¥r²Ëçz³ÚÀ;¨Úê+0—‹ó³…“ þ‰7˜ g‹M“ÃÃÕHt–áÐEg[¢Càú¸MîADd÷]KëGÏ»4…,9…Ü¡)r£{D9¼ìF¼;žçwpw|ô2)‘¡ý7¨WÅvàItL^ÜÚÏS⿆§˜ÃS,a½sŠ }é4N4ÂŒûá43Ûe'izòEO“qJF À­ƒx¦7ÂyVÄy¾å õ<Ãi¾bP}–ФóüAH;Ï2Ì73¢ÁOA8Û|¬Ñ¾ÔÀ/2÷fƒ¹,¸Éâlk<àl‹¸ôá‘©u5Ò™`6 ôCNÎýƒ)Œdu%˜ áNsxx]iø%`Wf?÷ nuO¥½°ßçY#¯ dß>9 gb2`‘ÞÈ"¾\«9¸VÖ*U®UÖÀµ‚û]º±šÂmÛ¤ qñ™ŸÓr­^¶zîs-Ɇ[…«°†sBep–ÊǬît‚Ì+%ÃÒqH«¿‡fÀÆÓ—’ÅÚB­Kmu5]Óvt~ò±qXVpŸE„ô¬æß¾cÐ÷B> é§XWôì"Ç_ wÀè"~4îRó|þ©é™lš®2l;üd[Ws„mKì„ê+V³ñP¨W¹"šŠàŽm- mCÐÞhõvµÖêC¡S)O?¶CâXküe±ž ÏËÿEy3YjàºdÃxATØØe6q,P R¬w-ÜÃ_k«šßÿŽC´­¥©%êbUóÅïÈe£ÀcX" ‘­æÕŠhëk¯FX’ç+ÞÏû¶ArÆ6ޤuå¯.#–aÝt»QGkkopSÎó»°Ä¢„qþ¨/?ØÛ½õ:>ëé¸P#»0˜-¿j™Iu±cm~T/‚*Å)èúU)B ÄoíWU?›×‡GÙÑ4FáÍÝ`À@bvULyÙb Ö‰.¡Oÿ,$ Zgv²22ávÖæñЯËË+ŸÅh#´'±Àk¶äÀkQë T~%-riù'섪øGÔ1†æGÉè&ŸN_²4æ;Â&Â~ÀƒÇt 7zèbRÃÏf^KØ€H¨IzôxxI|#J " 6«¥ßEƒD1‡o¾Ù„| Œ1Õ ›úIgž«)tzù·ñÍœíuñKî1aıA&n‹M¼Û„ÓIhAV4䫦ÖÇ{ÞLØ~Á¯ ¾B"¿Ò’üøðò ›´§’Ä >Ôh°ìÊf‹é‹ìô€Á¸OÏÖ®(µâù—äÂ@åC»Üüþ>Bx»fézõ`¢A“ôy³ÅËWÿY/OÿxçÍe|’ª>iT‹ö ió;[j EÆ÷Fܦ鞕l& nÓÙШžÍ³„Zt˜à†Ï ü§†F×ß¹?Þ_ÆñúË+Þ¹ÞŒýe@wÃdg'7!ÈžèªQ—D -Í–X||ã½zé”™ -5m]oàŸÿRªG*²K-aÓó΃ _:—X”Ò¤p:ØR ÖRàUIP'•Êž·‚]fo8³8¹ÞñërÁ3™ÇÂR™}TT(kTÈm°Yà“xJ{Pù*^>pùå°ÍÕ(å*¿²Ÿ¼™¯N¡H4"ô ï»FØ1‘#ÿ$ÇcâÌèÇ€/[‹àQ*ãÁá©tÁctÕµý‰\ ‡v7ùøÔXÝÀüŽÓÈ“Zv¢òZ,TN"b%†t É-‹ÉA½©Æs±yàœ‹ÓØ%^ÄO€|¶†Ô ²ÁÜ^íóà3Ç_S§êžyC\”ouÂk«¹Pœ ?þrñ Bó(°>ƒ5t$¾Ì(Yæ Ja×ZºSúœ1 ÔŸãJÕÚºS~ý a0ºÆ@ß”9Õ.¾ù€´— ŒBÈSíæÃ¿'ZÿÐÉ@"J\1"P¢VàkŽÁ[êû£Ö\l³5d°Ì£Ú(Э–Rÿë©*ü"K•Çþ„\ÔÜ¢æVBSv2¨òÏC|ƒ D˜]ZÌ †j@`¤àÛQf¬¬ Ä_Õ±Æ ºâýν>ks):BLƬ/¿Mìs âAD=J ¼( #¯µ¹C…ˆ ùZ…Ð%ZM¢0oú¹tÖŠAÐØÒË?ñ÷Çüð/àÊn¿ˆ6Pͯþu,ì^H§Fö äz=üð·ªå“ `^ìbtÏ‚;e© SP˜àñVñÓ¿SÝÿþ'xÎ ío¸]ñáÎVóúcƒ݆ú$‰W™ÛÆ_‹¸SµuDR_ÞžT(Qª•b±Þ71x¬e9X›Ñ…›cq¾%]O13ÍHL$ ›PÌalÛñ™‡?øj˜õlj×ÙpQ~În¶³©g›?y˜Xºá¨,ôhzÐ…f”dw:|î³X->ÄÙ€mìúšP b¸xEñØÎDr‹@$mÂ`IµÇÿW“J<Ÿ#ˆ>9‹úë)£Êо[¬2fSà™®m÷LQÛúòì!šÄßRÛ;}@{ÔÚæå¡>aº×ú»³UŒÉú‹ƒ¶WßÞ“Z{§kí•ÿwíâÛÛ¢µw®ÖÞ·g ÒÀczbíðÐy‹{‹w;;#”ƒ€ÈºâA`@&EfcGh›µ¹ OÌb³–‡v‡­JI½ÎçáÊ›UËù=È_J‰ó2ÛÒa¬Kž1Öò…ðuß ¯*S2Ì@«Ìô½Š7}­^¼¬z µ§Äš¼ ùÊE±66xðÏOqÝ9‰¯UR©:Aœe2UÿSDaƒ+Ú¶DD6šëTEÕDlÅãEO;¼ä˜p{jd&œ‹¢ÇƒŸŽ‰v_OX:@­,,EU‰B!Wl¡ 6p¢lûÙ díWP(]]Åï ® šÑ$,¿öHÄ k[9i¢Ð’5Éê‚ö¢ÈÌ ÀÆYnQqÈ5ņ¯Ç/z²4Ô2œ’3áÈGLg*“X™‰e‘Ÿ‹É®pŸ½O=2etd¾Þ†ã«‰6žGâ×Kc€ÆÒøÇºZZÓ—·'>vjülŒ¸˜ÀâÕâqÑ3åÓn_³¢Þ¾<5ÝÎ<™•šÈ ³`f®+¯ ›ÁJ>xÌ;qÌøÂÇ»Ix ûNrëâmm]Õæl#»`EDÜÔê¿£OV½˜HŸÂµ O™‹·Átoksq‹5\lµ1úZà¯@¹È¨=AÁ%‡ØûvKVÇ,)€ÎË©óQn>*Öyjq+a²òßbsÓÊ—<`bÝx|bðþMŠï?ûÇúÿà ƒô/4•]nbÏ.2‹‹q*i+íåuù¸ë+‰À)C‹{ë¤38ó26 Gìâk»£ÑÕäªe³©ìñ˜BÄqðÿ/Γø?1.ÿ8ÿ—ÎÓq=ÎÂÖ  A/õH4¤ÿ Âá6žó,¨ƒäÉpóþ¡qT?À".wWu¼è#ð]ÄLlžèÐè„–3‰ÇZ àÎÔlØeJâ°–›Ü1‰ñÛ÷¦·ÞèlÅ<•8;‹,gbϧ%AmêÛ¯[ƒÒký·³™vÝ‚ i;—ýÌæ<°.‹~IÊ ç]zSIJ^äe·Ú«+œe–å&¶ð·@>E,¿Uøv‹)¼Ø%ËmlÎ(š¾ÅÔY.¦2Óªìu5áóßG ^y»×A ¨déACmÚ¿û¿’Ìe2Ú…#3JÒþRú-lvÝêg.i¨aDrÜîS[t <Ž¿%Η·‹€Bqkûñî÷ ÏÇî÷°Äûí‚û{½®x-kè¿81XbTæ„+íeÄ­î,Ëþl\J®ZKÍóÖàñ+ËÖ4)âÛƒ»Ã§ýƤ²Í´˜¥^7ä?ÑãDÑS™ na’ò•×crR ‡ËÛ#peÝ|ůM:ò&ø#6t“½æ?d“ŽO,£`™’¼•J/Sr|O.Œ/EÈä1žÀ †ä¯ÿbÐü~Í,¨éˆnÖèܰ5Œ\}K¸ÂÒYA¢gx½Ã³³g +4ü§ÞÀò¥H©v…=0z zjg Ó5-U‰˜Ud/'TÃñò‚¥Ç_Bý6R·0·Åé²Ð-ÏŽé°S>Öˆšãáx9§[àEK×áÕ,]ƒ4åÌ,ÚõÎ ’,‚­ƒŠBž†3‹w¶±:ûÒ,ÜcfÑAD^[ã˜Dò·¦®³Â, Úöèì숥ŒMe&f®)¯ ›‹s3âÀãa¹ÉãûK¦ßô¸ñͱ…¶y€xo¸ÀùÆÒó`Í"ö‘¹+Í ™å8¼7–ž„_ÊwÌ—]ž§žu‰ø]MçtmÝë?ð˜C;}ì6; P›ÉÉCL“Cœ¢±¦½ÚËn´…zòÙd›³‡Õ£ðÅrSdV„4¶ÌÁ6‹³V°'2[¾ÔÖ˜ CšlªCêœB#ª]@/Ñ.€ÅéLÈîQ¯%›é6L&^iNì’tÛàˆÞ_•¢é®=½4%ö³B:ò¬ˆÍ0W„‹ØðZ”µM·,€…‚k‡…¬F¸ê2¢=p’ß³åý𮲳ýqµ›p€$|q¶þÔÈ&„J!½’„.kÍ©º•܈7§¸5&C«5‡k-a¯îB¥HcOg¦àÒ˜ÝÉ ºéq:ti1ºé¦p‰Ô¡»U¸Fh'ìŒßùºN†<¸S`]ê|ܳZ½¾¸×뎽ÙOîÔ áH UXHÈ—ú|âM¸ø½mMëõJ:Â@'þ ôM÷0Ò7óñï÷i~ó#`°Öë=>¾ák,ëòvÕ)>—$ £s¿þû§`š~4 é‹ÖÕ( Ú—t‡U¾q½ãu_CògØØÙ†ªb°›~­¹áòòóÉ­ŒÍX[×^¯÷yùø¯Ud(#‰’ê€"~£Ff¶œ,Ÿn’{hܯ,› ËÜzÝÄ$és‰ü²K!ÿ±ãç#„åËÉOZŸçfÀ*ÅÊÅ÷_6Hý®îDa¸~•@ÃToó7/#;=¾ þŒf:&Xr‰bØdJ®zÒrÑí²n0»oÝp™ÎÍzèÅŸ2-Ô˶*&ç·Ê¿H­¦ -n ¡6ŽM)eöìõÏÁ…ñ:‡+ô\Ífeg_Ýth˜>`yy>êcøáŸîá˜dì}y!&-&‘Ž!;Xz’¡Úg½}~OÕgC]“±=´M¹•0ÓÉÆ#°q¿bgé΃AÞl1`Š#3t-æ²æmC›‚}©7”Ö§ú×à¢ï „¼ ¥"µ¹52;U#ùÇ¥g+¶Ò¢†¥—f´”ëË›[ûêàsŦۃx#Eæ ›öÙÔøTo¸ÙaªòLh9\úç¬ÜÈ ‡5çæ{·õÇ1'1¶NU*áøMÈâ‹fÎ*²ä¢À·Þ\Ÿ•E¸ì¡ÝÖÐQ„u™v’_úu(’ƒ¦±Õz¸Ü^L³aû¨~`¬×Ÿýgr¥n§ÂUüçÓô.\û c[V˜†BβCé‘fÚì†.[ p×ÔQvL·ÚµYºÿÍ´ü™tS-«mø %W³t»HCåòSr5ʹ`ѵ»-Ø^ôá0#sMöªhæVÑZ:šÃð ±t!ŸnþvÝ-„Pl…ùâËÞOÕ5mÆEn¯7Õü߯¡IeËI­x˜¤¸|ÕQq¡•y¤®Ê§UÍʦ{ýëÖëx±.>ê°LêñÓ*î£n³=ÑL‹ß»!Ö;ì“6Ò¥öឬ ½®­áŸ¼§•IöGºuzú³ê”@ëE_« Õ@`ÕìÕðSÕ.ä ‰.丫ª_L­BF&ò#ȃi6f¶†€Ùg†§ùSÌÊl‰ŽÈ„yy ¡bÿåéãêGKþ‚åúçIÚ¶‰ú繡 ^|èÝlƒ©‚.–c>suÿ2½NÕÙÊLdêHuùètsðb} fÖ™*шÁ&‰É¶¤å _kYP®µÑ k>}fІmžÄ‚Î#1FÙ‚Ä×Wœ:+äÑþ DŸòß'^1»Ãß÷K¤Ç¿,_\%“™pÛ1ÙÅçÏ •îË‘âwó —ȣȖŽÊ®ø3V¾i˜|³.Gó Þ¿¤?æ"GúÁŠ®k(¥/g‡ÑkKªÖ¦p¥e@ÀNy^¦µýèyüHHù3>» ö**Æ£Ê]Ъ‹Ï,—:ËJJt¶¤ö¡î1¿}˜F²Ì”ñëÔ$%…ÿc0Ô w ±R%0|"Œ“tÞQÞ˜½:Òy.þÐÅ´ÂÊf›Ë‹w:Û¬mª9~Û”¼>>Ï®3‘]-¼˜¼ôR=-n/ëSÎÆ»Hx¶õ‰Ž${ Ó^ì‹Ý•˜ðD_ Z4`Â=}1P·nï‹›ù˜p=&\#fa²# ŸK1m’¾œ}±K’ƒ göÅ ¸ F÷Å@‰ Ì}1èÐø?xPt$ß²}˜ö9¤ùO“¯&ì<»Û1¡í`ì‚½Š ÏŒ™§1áQL÷!L¸Kv$Áâ L»cÓ ¢º!øÑBÏãeç¿zç˜\Ÿ’ ¨PÓ¡Öž”«¤f”¦¡E¤;;?´5²Ú¢°7}¨‡½…áŠ"@L¤$ƒ¨Û¨"ã¸Ð‡„=Úíõ)†¨[ í„¿ «q4¬»[TÈ…çå‡]…e¤r: »bÚÁp%u£`r^èǸò;Ë ÉÖëÿÒQ²¿äÇgV hBÝÍÍQl PA‚ªbTeùj#doÚï³6?(”km¡¨µù·BÉ`ÒâÏaŸ*üøËÅÿéUE°š–˜Z £sFö3»Ì´n¹nt®sk`ÄÄé¦@º¯šÿÇ{”Ìšíü¦ÎºªuiÔÝu± ¬YÜÚÝ8&Øiai®j~sTUz±V;MÎ \(½µÃ/!`&Ýc´?2áËòÝ.>IÔŒãŸÊU'[MÀ» ÉZþ("#ΡÅÛ•ùáÊÂpeQ{|ùØ.u–å‹-ú²SÈÙ"B© QÖk=(6…øåÑÄ-ŠÝš$AŒ/½ô~Ú5˜ñ¥ÇÔµ:su ¤ñô滪x†ˆž´ÍjJ‘ø˜)æb'¸Ï!™I¾ðTGa4s²ÝŠŠw™H‡p í0¡jÃÉDJ¢¥Ÿ¿9U‡¶lδŸ ÏÊíVí«ÍçYrEK†±trÅJŸï®õx(äš_gøàñëFª #g{ ×K,’†gI[ÿ3Á¥A“ì¶{¼³Îï¡ÆÑw´ÅbXv(¯1eÙ¡³C*íËçôK¿BÃ?g»2Âåóú\ÎG¯$ŽS·‰`Â]”·Ày@9cßÂm8|DÀ§â(d E3]E/¥fËoh3M¸_¡Vé.þœ›8ñ¬§ÛPÜ+äƒüi¹Ho%ër¼ å¡^Ÿ’éfZ`\^~ß¿SÄ(ãÚ¹êGÚ‰§gQ¹u‚(ß®í'Ú3BfŠ`oÑ4¸'`ü<ÖƒòÒãmÌ,¹1îãÐ6æ$ؘ•Çݙ҄IùEÒÎ|ÿóø™ ;Sů8œ°31Ž8êÉ;³«-ig´õ°¨ûcs%îyþñºÜüÃcò¶i‹;ˆçŸ=nKÚ/þyâ~ií.ýñv5y‚ÊÏIŒÅ£ñ'ÒûBP‰³’KÄŸ¿¢9IçOTÄ‘üpô'Îp°óhNš_\»ÿX»(Žünž·œdË6€pU<Ø'dò Ü ús" Hñîú³}ÅûáÔe£µt4Ó†`E°,%lR Wâa:}¶£¹}Ç£Ò8‘ÔÁQ½r(K_ õü9¯éV¾YÊpÿø2SÌü‹Ê£^r&¿á 4«'µ6ŒCÞ¼E0Lþó1æùL…Ãìí‚wÜ>¾z–I'õÍ•+0w5­âþÏ$ó#0£ÂËë/Ó,_”‰8:W½žo)‰yíA m‡ÇíåŸÝx4 }ç ê±J˜''iî DƒQCA¿:Û7ÝòDÓõB؇ÅùþÏž<øABþ×½šä_Yèõ¿‡ûqg¥àèE•s|ç7W—­»•“›ŽŸŠQ^aö³ yI^ŸKEì^ÿ›Ø@E%¹¸Î¬*>±ùF­˜~65œÃ½}È\’¬&öTO–p1e8,L:s™›ŠJQ¿ÈœE¯¿ÁˆÏÛIpŸj :¿î9ÜÍÐ'š™dÑËàïÁLê1©Â8q)«÷‚ÀϱPö‚˜Ï±ÔZ27…‰øx‘þxþÆ`.&Î¥VÊû¼>¿ã9¤_Ï‹G+ðòtá·ÓP?Þ{¼p«hÎÀ(r½éá€PZ¢ÊP*K§Ñ‹;‘BrO5ANUì/·ËoÆQ\<_Ì,g&Ô(if^ÝÑãÄ£ÔfCƒ.|Ó¾ž¸ø5±…5SøšÆ+@OìUG?~G­wmÐáIX•IÃÜscÐ`.—ŒþÂ7¼‚òl¶½ºx(ÚXF‡oÈþ¹ž"e !dG³#Õ„‡ø:Wx¬-ÍŽ^ÈknUL¥CÛ£°P×6–Ñ;hr~³ p7ú&‘ò»}ižb.¥-cy÷7n~ÿ  µÚ€ÎŠ ’ð7Œ–Š¥&áïBÊ輬ÈWE‹¸é¥ñÃdm¤WFñ¥H7®©QžÍM· ³†0¸,þû/=•úþòU†oϨ×ñcç’ëë>õŸ ½?E¢÷†KUôÞŠžß‹'HÏïݦh*;M¢rÍ12$€Eh¿5ô0nàB‡=%Âfq!ŠžÃ††:¶¸µ8Ã#tQqÔùNxq~xqaxq‘’5ñ¢ ò݉–ȰX¡Ýìkhʪ˜µ;(&)7§‘¢Ó§eá´ð]]ø<,–„Zý@ªÛP J„Ï£†àŸY&>?p㋞CžBÌ ÐSô*ͧ›ÙÓ—DŒÐûfQI ô¡Å\…ô׋0Ö‡øò €¶*“ˆÂÇùŽB_P¬WÒø%¢Ñî3‘°ñú_ q=ü˜ÔùVRø)›¤j¯,l¤âãÿ®ˆéo¥ñƒßQ;cÍs("ªŽkç£ïd;ø‚3†üÊØƒ…8¬ÿ1Z„1Ps0À€£‚Äûh¤õpówÂ߆3å{À;¬Í+uä¢Ââ_EƒYþ¨M¦2 bô§PLƒ¬Pt¾Š:$®ÑqbØÃã PRx:ö„#YFƒ8[kUåø–QSž¸¦>ü–4Úírµn«\|<ÙuXµ Ñ~§÷·¢(.\Psy»×oCiI`š¶Þa@À)µ˜tê|ðˆÖë<\)Š9Ï\„úÙ.¸m|ÕGµè•lÞŒ§9j×qíe¹"ûa^SPOßlGõÈUÅû»G$yއÌhF]‚ Û²@5q#lÊånÚð­QTvGY½µùØ&À/ÆUóßO5i*OWúüý£Ñ£ùõªhźD ¢”C{erب\(Âãñ•¨UÆ2cÔÌŒIQá3™‚û™Z¢½Àvp…„šçH+Í;[…l£Iýñ&ÿÜà.¿öµJ0ÇãÇ>x5ø¸³S4]þœäz!QÞ6/ÿr\°8/Ï8Mˆ=íýå?Pö5äá$¥ú¸7¼&€{]Lé9‰¿øµˆuùÐ?ð.<ýŽô†Уo“:©â¦‡b–†:b¶¸Ç©¢DeªVûôr=OžÏkÇÇÎç)b<ü×HH·dd’5œô®eÎÓÒ©(~ǃt ád:aˆ#d EºøO÷þÔ>€½€5øüWü »H}€ŽØ Hƒ=q†å aq#jc7¢&^´ˆxÙyÅ»}oŒ\ c˜¨kÏŒÝÙS’×dÇWÒ'ÚÒËÏ>Y.Lõ¸ØÂ|¢^\×ýªUè´¦¤×…ß>~~,Ë¥e­£Z'ŲÎײðUõñè}ZÖIdoùL®º²Öæ„Ú”p—ì3ZC\GÄ_ëƒd»ø3ø—ÁË8‚ö$;´[8xƒ@±µ¹]'LшGŽ5ëõ ´Þ”ã¼!–Q ›å8}jVà&2 ºð”þ¨êJÌ®üÂEëÓ]‚cËÑÆ6"O¸ùÛ͸r < Nµÿ!Zkùjß½P×´î‘|1lŒ8?ªMwkõ'RµƒÄÒkÑ@ñlA[’ùI2ž!)åH„8dMsµàuSd7 ‚œí©–xÓ’ß“ËÓ|šzÆ’âõ˜„NŠhò.~ùïé2@Y­ÀÁ… ü›ÜÀ{ð7 ~˰mÑlû=„6çL".Ž›õñÇo3èê°îgž&²H÷âIYø¨ƒA!¬æ:l^_øZKØk ×Úùh¿ £^åàu4'yÆHÒþÚÖ¶ä1‰Õ mfK;¨}¡}AX§D´c`Y¸y÷B÷¿‹Ã×BÕ|áÒ%‰µu{€þˆ%à$ý›qa²JMºz¬ÊØSÅS‹¡Ì…'Љ×Úøø_ ˜uœù¡5dC«EúºÈ9½ÕJÅ4 Tuas\ÔoÐM(Tù•|5ÐÕµ >ZÎT^•®-ÉásQ¿ŒžÔâÝüçθ— •&ɱ#a²^þÞ*õÒ܃ ^þš–<_$¿@ÉOiÉÓb8¶—ÿVK>[$?FÉ‹µäQ1Œ×Ë®&+Æàƒ°[ ÷…þ;8` †Tã_:RTNXàäd0<óßêÓ´)(—¯-¡ð;9Â8€º ¤‘Ã(C§šo¼GYè2¨Ñߌ–Tª¢ S•‰ómp“žXÏaõe÷³†f‰(‡Ùäîà\ø@7’“bm¡‚%Åák§p9oŒÔ£rÍžg1dL¿êŒ2Ü€wÃüÔæ='i¶ïÖæ{1Ñèå»OÒJ+7mu5ßy·¶§xƒ«h««ù+ZòÙÚæj¾FKã£-®æ÷ªIªZ¨bVÇŸäk"‘ãM"æ;ò^þ$N°ðñ˜¡Áp2+¬ ²åvÆŸŸÐN¶)ºn±?+·½ehó6ŶìÐü€12Yß2S?¹y[ 'I_â¿Û„4C Ä÷oV!²‰ü¿E]-¶¼Šï_‰fñ~X_çøCwåÍ XoÜapîEœÂÚÜ¡ÎÈ]i–tWºg¢æ|á)é.Ó'`?€Êl¾d¥††‡Qóôt”¢&4ð Ú@Àk·…Ü{aª|N„©CÒñç¯ÔctU%¢å>·ct®’íÇ_@Ÿjí¤’cA+zì”ÁÕ³¨~Ž>Dàr£9ØQPÛhDãÖ‘ä€PDÓC„5•Yäxß@¯'³1(ä n²óiØ\‘Kín¿î@.ÂEÇô³(Ýc¯ò÷ÁÞ2‹íÝã ­\ÑÖDhKÔå¢L¾P"ôñ9 •ŒöóþùïiÞ óô®;  #aX™ApçÞºÁ¬ªåÙ#sŠ "Þu^³I==@6‘4ƒ€›ÿý®xÚ¤®]c˜ ³ªö`£YÈ õÑa ½OݤxYÅßEŽœ„[KÔ¨ŽYëI™¬mô$¹Ñõj7áœÄç·¿€lúO‚âEÌÑ™ãU ÛÊÖ4‘K¸O^rŠ~ -y9ö!³aæ]ǃšÉ²³7å|G’æC T^€.Pçs¦:Ÿ 4Ÿçÿ=ø|¢NÀxϘ0ˆíal¼DþÛñn]‘4Þ]¿ƒãÅ_.þÕùÆ;—Æ«ÿ)ãEùžoãb¨Àÿ‰¬ÊAä—j~Ûñóýh–㎞8¿éGê¬>éÇ—ÒÞ…ö¬\ÖÎýªmC`"Õ„¤÷EŒ¤3‚ëX¥yIjg*>*3Œ3ÂI(·Ð@¯#WD탶oØþ–£ÿcû]Îèû#8#ççr¦á|øqn~K:#Ç•Ëöþ=ö„íöß¶wï‰Ûû å§¶—°¾¥ci1×Q×·D]ßL±¾ùÁ‹õr}õ´¾†/ï íWl?¥ÿlÿ8ûÈ9ÎúàÜ|mø¿\ïSOÜÞÕÿm{ï9a{YÿM{p?›éþ>îý¥üÕ?’ßtœ|ïgn¯ío&PvõòÿrþOž¸½¬ÿ¶½ê·×qçOm/¸Ï$VñnÖçññºlMªÈK¦C6í’ì âÙÛ}e«dR™^^ïåWŠªLT» )˜—ÛŽh©ÏB*zh%|P˜æ šJ5D\zçë©d.ç¶X_²Ln:…ü¥#"vl×ûË‹^„ƒPÕ}ä@ÖËùðÙ˜òògЬV²m¯½j†Û…_þû0 ”Ýü7¿4 GÐ’àæœ*¾²€ÜiBRhtUŒï™ˆÍ®p`Lå:bòòý¡¤¸$Ÿ»Rôd_ÈkƒðGWHÎFüëpü_#ÍlÿðPòõÿ×ûW¼_î ²ø)½êÒÅöp¦rd]­‹í_jŸ¶S‘Øþ=§îjà6uïÞúAšUþ:qß²¬kçæÛ#³ínW­{?Ì1q'Z_L؉ϯŒÛ‰Ô3M^ÐNØb;Ñ-öâ2tqªyX”‰‰[‚®‹ÐN•øÏÔ¶$q¯Êcêz¿–‰ý*]‹ûuÞðÁö h[a‚è(Þ ìá‘'€`º÷â!Ð6¼Ö,!XhX"ËÖ  ½ò4èåpÑ÷O]‹pkÆ‹·ò¡£[U˜Uq{tgÉ#ìwA¶HŸê(tqÇÏÉ•1²„Ý|úé¦DÞDÌíeÓ{]Tá0•¿xžÅï4LÔ‹piSEŒKˬê ¥/!»á© <‹9PmŠ«ƒûð’þ‰´¶F=iX¯+Øä_ƒv€X•ˆù ¤«kEqñK *[àzŽòsÎL´ßÊ®lQ›N™åâ/1¨&´è…M™è/«Ë/=-¦_vš—än>~ÚúèqÂC†v/Éô­ƒ~1ÏÓãËnr÷½Ÿ«¨êyBÐMr;o*ÉÍ2“_ÏJâ1¾¢f(é~¶;T´»ºõªÑ¹ø–ß Ø+øÑLé²þîNC'GoÁȶF®×· /oÞ8Tð6ò("³2 ¡mÊHXÓ•šõzdjª¡;)->{z+خꙗ[ X¥—ƒû1]?½¹5Ðw5Ë쇭»:< {l±•awìhAûvNË(³-ÐǶ¶u<ɶb€ˆ'èèaÂi«Á|» LÇÜ&vys›«ª]|øgÑh5ëΈÝì…ØúÚ›øh4¿ZJ›ÝφWE·ÓÒB±û°Ø?½¢XE?3{ƒ£ä ®Ä¯^Rû$ªÉ0Üdººì¥Øj/ÂF;²Ùì¾Ð¶HEŸ_úMu|bºf ­Œªï¤7Øö‘”R=ŽzñtÿTlðRÑàï…Žd²DU§>+j¦?“¬ŒW¯¡SЙ‚yÄW½ÞëÛð4$ªþ³˜ÁßP‰àùú¼>þÑ#px}’¿}e,ÛÄÐ6<ƒ G3÷ Öû“_eÁJt¨eôâx´nûaÕçÊÅäÁûrjœÿN³júøå §&úûåƒû^ŠÃé¿a.ù«Šf¶“#|‘s詺n’®L§ L¯ÏŒfÚQu7}9˜úLÒwóò¡ð&eb)ÿâMÜúœA„QÑ›<Ä Ð÷ö>˜¾Äž~b~‚¸¯¢SK)5ÆÃ6úµ¾ûRZ¶³±/ ç‹_øÂ¶°×¾6;úîÁ]cZ†´œðµyÑwáZˆ´pEQøÚ ákKÄ“5ñZKgE)iºfN¼Ö¦ ¼Ì² \af5]ëáØ.P­òIÕßôA?’Ë£Vãjø ×>ð¦TEYÐîõ »ŒùÃ~Xû_¼Sø¹<ð”2b£C¤£VLqë§)¯¡’$»ÔÂÊ%÷j„ä^ŽWwuÛï=£^çªæoïÆ«„ÑPèæÃf\À׿ûäµþ4ÅÂ*-Uîhf6l§/<ÅÌ÷¾Ñ?¸i…<¡Ÿ„‘2†/‚ÂÕ>Ö#t7½XÿaQŸJ®`çã,£Ð%‹~ЩËBþµ²fL Ç ôy­UµßF‹Ú!µ¯p¹pÞt®ÜU<ç- 'ZÐŽh®‰Gã8 ^|ÀèÄG3 oÓ®‚óø\ü“Mj,;Ê€ÝUl¿ã¨ ÀlIgµ7Q€RW“w5ê‘Æb¶Ù\^€°›¢QUÐ¥ŒóúøŽª˜±=©=É-Ñ$oä:´»ázÖä:¯OY©˜Š£ÝÃ7ÂÝÓ½‚ Ö²Ñ$¥‰Í;š9_¨²£¦@&›]èæXH<êÎ R8ì¶1o¡§ŠÿœRÍáŠBÿŸm†Õ€­Ï9+Û4û6 '`•žÌÕd—jH‹zÍ’@f¸±T8 %ÞùÐö[‚äÿn[’òÕ›1'O°O™#Oò/òT>ì$G¿‰± 7Úç›móºù¢<”D¸ªø•y¤•ëòù—ÉáÊ|ü´×!gÜâqñ©¹©H!`|)xÂ^m½kË¡Vç'É¿<þ«°¡ÑJ˜kX|%m~l>fÔëmUÎîæÆ{øÜ­( ×<\Bûäµ{X¿m+ kT-¸__Ö ç„ѨܲÀpqàëj)Ðê—oz¼ÅÇ' Ñ $¨ý8zeÁ}æJÅQ¨öŠsÁ» x'àœäÃVß„ñsû¢ÊˆˆÅá†BŽó$ WÒ‚[£ÒBÂÂìh¥`3nBM@äA܊ꬤô•òD¥deXÑ?j‡¹ãŠ ¿.Ú6¡Û`S¬bp_yA À¶L4ý“âÑ¡yŒj…¥È‘äèT½2‚èí…w¨O><–ïꀵŸD+?ÕQý©"\¡·+~h¶à[ÑàÛQŒ¿‡r8Šl‰Î­òÐ#Š}ÙW?owóMØêûã?À:µ6{…<•Rf‘Ñës‡áµ=Ù¿Ü|ÕXyš±H`ˆ‹7ëu÷w§ºøáå´…ŒCy|V1V3T­¥œvGÏÄÎz¢Êa_jv‹íô˜Jø…á³D’5o¢Lþó-¢Z¿À„q†ÙBgEbßP»¨w‹óû­!T²àOae®uçÁh±°N…P}c’Ó*@=JÍFU}´Üê9øÉ˜Þ ÅŒµÒQïˆ?¶Exé LâscñËVÑ× •fİæ¢}¢R¿R Ý*ÒÙ¯â=[ŠNA÷œË[$:ýuµe â´ÈˆÀó'Ä"$I8GÏo–çˆ<°zª}üÙÍ4mº¤H-ÊV$sðhðh·™<PÍ_ÄšŽW†À8z¼\übñlÜ,uÄ jT±%ÐÔTæ5vµOB쾡“ƒúà»:¯³¢„”+n½ƒ<¼@Mª‡w5ÛD[FѨÇÇ« %ðƒbñbµÉ»ù í*,$€Êw&½.>ži`Tüb5«åk[áw´ÓnÒB 8’°yOµ M‰h]- ¼rûÎíLÚ>r›”’¨ö'ã½ èߤöOÃîç`På*ūŢ×"Höñ[ÿN§V°Æa\P °ZDÄ ¥WÚ|¶ ÐÖë]èÔ¿Ò“Ø\lQÑ„†‘pö¡t‘´Lƒ³¼$=~&ç±ÆáP.½àXdê9z ä8lÓQ]žNwSüÖ™u7««L=KGYðgcPrA ñmÚWªñ;|áfG%zf›ïÈáÃ7õ£y˜}ÝPøoýh\ô#þÊš¨‘èÚp&¼áuGžv`èÇhæ4²}`i27 e½¨rƒ·~¨'š¹G˜}ªJ‚Èôvvâß ¢üɶþ(4„}³ `·ìm¶èKê:~]Ä!”ý{=²Gbš÷ñÇÛd»Ø**R¥-êK´É²†|ÑuÁ.¶Õãæs2…“`Ä•@¾ãNäqàš´G*õηn²l¢.`bmÝúJô+\°ÉÅ6¹xæÀšˆÕôÏ3 'ž“<ü‹i—1-…2å\áÅöõ3qòŠ#çÀ“W?ùÅlÇøü¾Ö~ôokÚ²Ðð?¯Ç=­r=„ÊÅ€]xC`ÒÙì`Û×ã±&TI[Šá5­wêõÄM²ùªøÑt5¾çŠ1ò½)èˆÌ/ÉlìÇjáDûÿ8ÄžêC a°mßü›LéNf-ƒ‰ØQÖ…Äø_×íøw{÷ð›%™RÙ‘¹ÃíÎíʨ‚¶ ·»ˆSÇOO­Ä²6mß i{ÈÒ§"4X³¡Wï2 $~WŒ\A§W<¼%ÖP2~BÏ;«œÀ\%6¯ˆàDh¿ývc R|÷Yjídùø|ÁU¯[ Þæ…€#`´ílº}ðU Øþò±ãe ¤É²ÞÈ"{Ät6;kŸ@DòˆßÆ€4Ü-LNÑÆ Ïý+‹Iï £Žø¢ï“¾yðHTù%Ñ ƒG†jуOÂ(ø† MÀ³ã ÿ¢;%8ËaפPW(QòW†"þ?ê(×°<·>”Tì5pÔ œ);Gµ»ÇÄ Š/ÓŠÿíVÝüå×ù˜@ÆW³0”vMW–ˆhXuÁ Ã¨±ŠÁmÙ»m_ØãÇMGè¤c¼ä;ÿ!@‘ ö‘ô“þºTWŽÌʶ£~ZDIµ£ao×F ´{§[ò”2õy«5õ‰;Èù°†–ÆŽjb¼HüÁ;äC?ÇC¸„,›6}üÚîìQ2"䤜ß:”†MÖÊ­M8›?{U(Åß‘øƒë4ŽŸÈòß¡[²_’c±J'Õ¶«\ÏÚü{Ô.¼›Š‘Z„Ÿe˜ê#g½çך^‹µùv=­3Û¥8“ß2 5%Wúç'#T`äŠ$[jŠSY¯óyym=99ƒx%é Ì÷fÂ|Iÿg!I Üü*ç%[z,@,‹K‰Ðsó[´ç'/Zœ³{rªÑ³>>@ÏËÚJ‡v[#ëõBþy=í±xå$9–ŒqX¸µ™V¥9´-â²®?NÇE¸µ»:¾ùe~ ©®;†HÆFqøÊ\16óöÁãå+¨šÂ¶®KáЗÌ Ì`E3‚ÇôîÀH ǘEx@(Ø}V/Í@öøà°.6ÈŽ°Ôü{Q'çN+|’\áQæ½R6sY%ƒÒÕÚ¬]Ú¬›Ök³®«©m¿zâü™ÇÓÕág’«þêê]\¡*þàSŽ;8góXïƒ[²$õ‡¯` ;~a¬S/Çåí)i?ÿÓD÷-}@êö)Ÿ!Þ‹ìaÏôŸta²{yû’ÔbË&——ë Åä”qý'öŒï·"'Ôºî‰S³r)릾LrI‹›¼ï’=µ‹ÿp¿jp|bòb]ëPH—€5Ï6ß å4U€ƒF3¯€<ÛůZGP5yÎ]5Šä®ºy÷+¨„n®ŠÃ¢aDqhtâ|ÿ¯4Ã3ç-îu¾“@<óRŒÊ¡ª…lŠÉW¥ˆn¨—©L•QÝÞÍPoéy"ÔÜûàKèì W®@ÞІ—q#¼/ÅN?¶¬êª¢-d÷(ƒñq%z],TÆ)zÅHï*ç ÔóŒÜE‚_¯‡ç—éUÛIksÞöëÌÝ •W¼ßË_ãBž¾ hºk&"ed™Öt«7|ÚÎùZ¤±­!E/l0jáwñnøë®§pO|6áUÑÚ†4©ÊøNºº7£9«ÄÀ½cHÚMòU/ß»ãHT"t¯ë⃜zù¦íZj3È  9U.>oh _,`¯Ž 3$¨§Àà ›˜âÜk]ñ3Œmg\K Yú€ ÏËçÊÙÎn<“ͱ0Óý£žÍ4³Ef·7Øj×ÎLgG`2´Õð£À©½/¥.×Èúýp&4uàwúªq,*_Æ«°øEQüB¬QåóWñËŒ(#§½–x>þè:i#GƒXó80„­|+ãÎsh[ +þvþû•œ&bxdË톌ÐNëªVŸÿD‚V„ 'ûÒ¬wþÞšõxJn¼Ÿxÿ.|”B ¤Ý¿g|ÝÿEüÛ±ÔÑ“H¸Ýî÷Ûàë:µ~Å•ú0¾”h‚Ò7L§J[1ó”idƒ,Óýk^Æ¼Þ ÒñÑ?ü1%÷qøy~6Âχðóoø9 ?™0)šoE²¹žy%O8‘¶«×-AyX`”vú7³Œ+ò8¦£ êÔñO,3£úp%ö¬´ÉÝ.+¿Êâ;î³!„ÍV!O»‡ÜŒ`8pFŽªºëù¿þRùÕ%;²‰ý#׸DU¨úæÝX×ðtµu“/‹}ÿ2{ònÙC`h]:n–Ž}aÄ zc¬,÷ߪt¶´5·Ã ò ïPÓM;Ú=š4ļ’Ì9†\QD,@Ôã/͕ўI†–`p!üùtP‰QáÐ>qH@“t:yЬ¡“èÎëÏ Ìü±º˜F|ßô÷h´û|M]}„TWE­‹aôfÁ¿w%‰_ 5øÝw:Mço¿š«­C9‡ÚÝŽº˜~õßɘÿ“8_vT–MGÞ“-HÿFðV€Êy¡Á‡ÏÑòIÅx‰AW m‹¡ÐÆØœãJ<1Qè¿ÕT#[en/€g½R¨Æ'‹C©\|sšú˜}W¾‚Øç®§ÅÙ”íÍ€öºS½üyªL2Ì%Bàóϧcrú?„tYå c7)÷¡Ò2`ÅŽ¡m€s™•”»ÓNçË~Á¨Nv„@Äê:u©$®nrXydæ ›K¢üèVD0àH² Ån™À®/ÁG1ñœÊPkµÆ-ÊiTˆ_äÁP#dšy¨W9©¸e6Oð“–1½Û|GìKX(¬Û:bú˜± d~.×—Ã'ò·”tÜ ˜üZºýЧAÃØbw@#Â×aÐ)æð-Â×—tŸ¹Yê(†*Ã<19yð°osöYWµ¡!ðŒñm‰þUy ÞÛ<<~)úØ£¤dÉÕ¼Ú YÝý›-±vȉ€õs¹ëõÞhæÓçJI5‰opÅB»«ÙuØÒkó*ľ¯rè¿õ@y$+´:p!oZoiÁ.Œã¸&oñÑq_ZÌeË¥#IÖ‘:´b#™Ù´5}Ù¡¡ÅÑà[¦)Ý#ðÃ|Ëëý–~yFEqtf`£4ŽL í»‡cBïd‹MÁbˆÍ㊇ý„—À‹]WÐF3H>6BŽ#ïâ*ð¾^š*T®¤¸…py¦ÇÇ{ÿLþ3„TÉÇSÿBdèå ÑgôCx•?dÃÜH’ºÎ(W•ÿ‹WÐ?õãˆäÙ}¨(tñúY†ŸªÃ>X$ VQªf%ëh˜çYñ˜gR›M1#¹Ú‘ÈSÑýYsrqOóœŠÅÅ_¾”š ߈.}ì4R8%5½ •PŠËÕ¢RãíĆ.ªZJg]¼7*)°@ºÀ¨B_ét÷w%uV>ï!¡ía_ñ§×ÐCq©ß¾f5'ã’™ùŸE£>ÖÃY#Õgê0¢™ àÏè$¤J’€_ &Ô9…ä}$É\à#þ¡ÿD2ПÏ!Ik~ô§˜|ÜL求GâzcMXå‘|"}/Aþà{_šÍx†[zÓ˜ÕÄÒ´áò;E‹ª‹Eäq?qĨѬvåßù¢? •¦åp)â§9wp“½ºŠëûeØA‡‹‡þ„ ƒ:‡Šñ˜ó¨õö6*=·F6‘ôxò¨Ò‹Äsµ›§ü`”–à+PÁœ§$tSc(ù*¶¥ Ó™k…}Œ‰õ9\í3°‚Õ˜{§Xò”Æ÷ Eo&Z – S&«»Õð"hóyeÌ«œ¤3ç{2A2xTÉ@MŸ›OÿÞ(YÆ9š#Fõ}QÏ{2¿iäSê.Šèä1“mÊÝwª‡z7RÏÕ^ÀÓZ}3xד&mrlwUÄ’ïæÊaqBûŸT7¥:ÙƯ…}ûÒ—ªù§ÿÑ©*¶0 XžÂ¥lûp…Ô7AŸÐen9ïýMªi²Žü{«íÁø6²\žÎ)´¼ü<¼€œ´®vÁ7øf²A§=(íÔÀÛtÇÙÁHÙöxÕ~(ݦ–žÂNÈÝò¨ÊõëèÆ¸øß©ªø™¢‚-9r¶I¼za¯ ¸p)]—¯†§¿ºdLnØü8þ ¶š½‘ç¶£o×·[o²DÜ=a·‰½îÜzó÷¬£³œtø$MµºUð­ü´e·J¾¢Ë´†©4íggbj§~ñ­£á¤éãù“Mû² 1² £#Pò§¤ŠS‰VB˜cáÿ'ÆÂ·ôªbåÐvIЫÂ'Yû~P1Áijk³ÛËSÖ«Ìûf<‚Üì'ŒêרB&b3òœ_â½Ã¢_†I8ƒÎÛ±Þî Téº*VÅ Yd…#ƒÔø¨#E<ô‡"«HŽÏ6¡ÆVd‘žEUýn’ÂtÛ¡»ˆ¼‰¾Ñ §©ÅÐÜŠF@žÈ„áÊlìfØKëÚíU¨Þn"™ YI/ÃG¸E×Üø¢;eÀ”3Åx_ ñÞñ0·&nÀ%±ûˆêâE™FÝÞù€+Áå5BôõÙqSªSâXœmr·å«{1_Æ^´åAâ)Xú"xw¬Ômv]|¿­Wjý¶˜›·)9Öµ;â¦bSœ8æ¾ ! ^ xí¡˜`JmñÚX‹0qå a¥Kc›%ÇøRAG+ã-ªrqå¡C;5ÖÐÞ”Eά\8ÑÙw}úYïæ©·Ž®LßEk„Zêê`)@ë÷æ8ø'ˆ"Šd Þz]M-ßñ ­Í¸ûmj:„w#`eéxS•&ºGíäúz5SÉô6¹mE&·{ ¹xô;yØ•ì½f¢8¹Ö|oÊš@V®TS4±2 ¾•ëX™ ~ù½Ñíª1ÎuZƒçÊŸQ œ,Y>e¯á²W<¨6Š@˜ÚM…+a%L‰L T@ðs _Ãã—ö íZܰâè!Á+ea\þíJV.ûñåú<7å òÐV¶w2R¥ØLŽC„õò\8±-ðnÛKÏ è+–]¬SÆùؤytA²ª0b$Áæ– }ÜŒn(P‡,³+:R‹:*ôˆŒ8jùY?…* ei€.²»«¿Š×D<ü{Ù…í:ÉD[ü­ºj 4&ÚxI™Î×ò†GSîË=)·3 ÿ•¬­O~¦×í©®¬é£mÚiãÆH‘ØÖ‰áŸuT~w…yï˜$0xû)^Ń}f@À-8æß5 ?¸Ï/ûYŽ…°WAyÅ¡ïÝ5¦5øÙ‘`ëp—»þ*Ü î9F„LF0:¡ÒââV¾¿ׯ¡=¾=ÙÖBê—qŒ°Z‹›gmÄ•Wø Tqq¢?€¤úµþΣjý]ûe}e`ýj¶/øEœ*6ͼ·ÌìñîEeô€6¦x7vŸpàw Væò®Ül.à®O¬‹•9?É›Öb8UÛª|^þj¹Ò5Œtqkˆ„éˆÛv£ç¸A¢ü”Ð]ŒTÈ#†k­®;îA·ÀV·^ 6ÍìK±Þ‰až£ŽÐ¼ö”„•jÙ+$ȤhBóâ×5ÓøÔ¶ã—õ¹…'(¼ë£O?Û»«ws¹µ¥i@ñ‘Ç-®x‹òàñЦÜZXôµã-WÞgí.ä‘ðû aŽ»\üö„Ôï6¥äÞ?ÃÏ5ð3V«~#þpMâµe¤˜Ïmd½–£¾í>ål æv|¥Â†œÈ|F Êãg"ºk²ÈÈ5º­vj/²´G áP›¸+¡ ;4áà_õQ6RöКèÆKb߯©¤ M{ “/<£ÒdqA;ØíPW;z¨‰ ÅO0¿o»Îï²¾ÿj~Ït œßÐÌool~»þ‰3Ü» æ¸ü»ÿ}Ž'˜ßðAæ÷›ƒÿÕüÞæçwæÁì߬äý{úÛÿÏöï\>p~‘Þÿj~_9p~3{O°¯?jSßÃÜÕ {wùÞ:ge¢ÃŽøíþVnw¿¿G[å½ÿf-~d=N0™<¾ä‡ã¬‡}Ðõøä?ÉKêàÅšp$.ipÒÀÙ £VÏCŠk­Ám÷IU–†Óµ×Í¢®×X–Ž FËåæy¿°\v¹\{‡…NP¯ÿæÿ°\~g‡U ˜c‹V(g¼ïßêŒO‚gG–˜ùŒïiÂÃ#Tá2Í7[ …bÅÔúO'Ô·E–Xø­¾%¡¾M[›º9t~ü÷ÑÊ ¿K5yÒ^ƒl,Ìû¼©º½sá#ñôÝVйñ˜XÚz’\Š·íÉŒK]'S[[ó|> 1•1g’§}[âeØ-.ó<3¬ò KŒƒ€?g}W|¿>y¸¾]ß ¾¾yƒ­ï¬/’öÇÂÿüÝàë›=—ëû­ïó+¬oæ÷U§êÄþ 2G—=oÏUÛ®m°Tùöí6Ö|åìIüê_B¹¸¯ÐÝžS±;ì ûtJü†‘ÔöPÌ$ÌÖ–|Ît^ö]{³E¤³‘Nò6-±¡°Óãõ)"º?îÒ0–¸Kq§J;þkÀ¥]Õó_\ÚƒÿpiçöüÔKkeÈ’xÖ&&ï¼ ìúØ·$>A¹-× †P\EkË[‚KdSI ¹«¨d¯îüX)#k} Y’„“GAüè–Ä·W¦Ñ§£â“5²U™ƒÉñ€êbYnO:)mP{Z‘¿Wn˜$žž'âÑE:ÖÒ„ Ò#Œ×¸éâe E,ýéb˜¨>nÜ· ß«‡£7‘Bt1¯Ô8¬6.0fàVk üVÆSAp+)ÄÔsñU+dàÔ8`+‘ä]òYìüCdùJ-(Œ.ÇÁÛy Ñ!ûv„¡&ÇñÜ*.ù{Ьdñ¥F)/Öhþªÿ­ùAÆûOÑàÈÿ}¼rÁ˴ØJ0®%’ÿhg©èáAð#¶ê4~Ä’O4~Äßñ\d¨ºÊe’#Q£–8Y›,on޼¹“´Ü¡Ô§à-"“YÕ± ¢©ªµu†›??]¯#À¦²Ëר‘á|çÄtZÆf<&y¦I¼«ìp*30ôrPVÍÆYª‹Ïƒ !kƒVTHINæíÿ‰­çp¨(ǤVs™v ¼E,'¬±XÝXI±æš"P Þš\ü´¯¢Q7Žìè$½n@>ŒÚÅBo½:$p ß°uOŽC¦SaŸ÷Œ5—ª€*¾ù¨ËRu.¾·ƒØ´&‡\Žå¢Sêû‹W¹Gíf3í)4£½É±«?;WIGÏP¿¡£c¹¼Bø]·ŒÎõ/†¡¸«ø¿”>(fÉÇ…ìÈò¤ä¦jºÕ &ÅÇ­#;(lwÔëªø¿„Ît’þÊÅà8*âǪbiC-E'òi íj,™‘‰\ û„ð¿ÎÌROìd:¾ö7ÃÜx×Wd¢Þ¿E,…fª‰wqoñ~çp|ûÈóÜ•ðù$\;÷ßÚŒÆ"‘ÉæiÅQ¶uÃÉðñ Îcâå¦@jp¢NÑO¶Ù¿fö„¢ì<Å%¥tCÃÔãz¬i¢dó0ñ2)˱ß õ¢ûÀòàê~»º•Z›¿@…¦5ÈéôŠ„ZËüŸá«.½,–޹Á¶2²vpSz÷¤àQýz´ÛRRÖ¯¼®ê1ý:ñ¹?Q#Ñ]]ðËĺÕ.opS™ÿ9h–ö9ÁIØ»¾ñšÕ¯€c\¹¢Û,Ýu­Œ̯\Œ¯EªÐ÷kj4˜- ^¬S ê-^â;øxå3DÄ8tS7ËÕnò‚¶Kmì7ºÐþÀ_`PK†›åE ÷Ñjõˆ3ÄURƒÆà;QBâÐò!¨nþÑgÝ)ø™Á&p+÷¦àS  9B€ÂÝ:yOf^¥Zû|d¿}Ôzé'mMG–éHÆf ¬2xäö%EÁöFÚX¥Ð8-ÞÝ}aþhmAªa í OF.‡5ؾtOzÉF€4 þueªúYU¬Å­SšŽDeïKÎmAµ×w[ÿ™¶ãðÐ˳ØVãÁÖÏÓÚºlCßXža<ȶ·}e^žµÜt¡ðz´w—´£µmDiD“|vI#€´º°þžÂÞeñyI÷ñ¹ä9±%OKž¼äuÉÂZë„K^¿äNXòl¹äè•‘¢HDÆC‡MG ýÑè’â¦öcFn…¿hÀÂ[ôÇ_x‹Xø¦ö(´¶'},ÏG­ü¦é©:¡„|q÷.IÝ“’“•»«kOº?¶A—AÁ½»ð(DIë‰?–D»ÕG;—3ÅÁÉ,™%[`iZ?Kcï¶6 ݾ< 6®­g·~nÚ¾<¾v´}eS“ÍËéý2¤ Þ {=ÈNÓk¢nvmö©Kã6”Ä ûšœ@x¼$úµø6ÈÍn5ߎZ×Ú‹Š·µ˜ìpËGÁ-mû—­í›´à?—îø§±cØ;ì0”Hm)jíNöahg  ,¤M]Äж=é‹al´õ·Pë"¦`×RwÒ~ÖÕ6ï®Q }Öþ¦¿_õê`Ò‚Û¢Å;[lÆ6OËÇÕ^ëÚ"Œ‰}Å>0¶µ}eö•u­-ø+ ¾ÿ“=ì;(^dlóY×–šÛ¾´ ûòmÆ6ëZ‹¾%üݰwHeÛŽX„6äÞ=éËaÈø†$¤ïÿ¤mOú2šÌkx2»-b2MûñDU˜Ï‚Ø„>šÚ¦¤³²2s!í¬²”¹lðnü‘‚ϺøßeN"~Ü´½Á+çc¯:öè„®7â~0H³|ðhJfŸçJ´ðê÷49²PC(jÃcmˆ)ö7mƆ۫ÙÓÔìÄ@~à)ê׵ᑪ ¥ÕøÒ>þô² ˜fc•%(“:´dœ œ|þ÷Z‘tCÕ, ÕXY©‡Ì›¥ðÿôç:lb*ëçAigG#†*-„ŽLÖ¼ÞmØP„úçÖ ®¨ñ;ë›ñcç§p©Š–Ç `«!b×;ßmø°{XðX4Œ ¼#qÒ*aM+Îöw·ÓHj‡Ý–e«&§vÌÏá`Jq=ÐNIÃPô …˺ÔDBq€Å-¦ÜR“µùÉR½µ¹~¯CÅaÈŸ€®(Š[×£<+Òà(=ðWñç«äEæÀ_Q ±x'jÜ¡|%ò%¿6u§`Ã+[rN²®}#Øöçà¡ñ7Ï´® ?±7%7ꈬ‚_á¹Í¥eÁ“îÐ]Èf5— }À²Rë­“DÈ€î¬Pk㈄S%4®øœ*)ÎêÒÀ„`Ÿ>Rm(ŒÌÐ_]ÐRfÜr û$6kEiðPTîü0`BŸXÿ˜°ìÈÏn07¡¹CödçëŠË¢„ÄO˜8šM«\è.´Œ!×,ŽÂG~ñNç;KNgÑÓèRŸ2¬ôæ›Ì¥·ÞlšÜ­Ÿéü®ÁÀ¾+ÅæÛ åÎwv³i•lIiÄR„OŽó`cJd‚­ÛÄz ¾s~Û8\žÊ¹Ð—» ´Ái™ÿJ?*iÎбêJvYÞL¶)\]±—±iŽ‚66ëÞ¹‘†{gµõœm…¬Úa|7\íŽC”ý¦åAfÁv6ÝÜvØàܾô½‰Ê¥O“m2¼½5áieáËJ úªÁ%È££þÜ-B«'á€Á˜öíNÉ5ìIÉÝ¿³á·No<ñƒ!ÿeeùZ´ñ$s\ ɪÁÇóC±Š|e$«(e³m.7ÿèa‚(ኲ†ÂuÉm¨%/Ï<ÍžÐáEëD©EI©ä)dʲ”US ÒѼ‡Ž&‹?šÕ‘¿âÙDézC›¦K¬x‘a[L•˜Ëgl žËñìš<'¿1g@i äCa'¿á‹âÖªsOø¯Zú»(*t‹NrEa¢ã\8Î-ák EfQ²¯Ý ˜Y$2'$×ÌÇÌ "3?©æqî$ÖÈ—×òT¼–,͹…N\ZbásèN~†wJˆ;é â#´â1¿¤çhWr 8rüÊ@‘O3štäØöéÞ¶Ç7#AܦúÏ$B™ÙSM1B™/ŸU™ÙœBVgc3ÌÆqd>‹ñ#ãÇÂãZÒ)nV™í„÷(PÉüöè4—ÑõZCÛt«ÕÕ0:—× ItñnØ$çk} #]-Tê-È  ›†5ióÐd¡<ŒÚÉ—±i¦IWØOÊUŠüø ð“7Tô)óî›AŽ(ñ—‹ÓòÒ»GVóœÝÒû$ú~œ‹Ž%êë„+}eŒiŸ‰nÒWÕHmakä\Œ+¥*/:FóZf8ÛÃôÎĹ.9Ëã寞©ÓlœÇÂܬ¡3ñÖ<ÚÇæ'ðâݤ,Ú¾ÖŽo(:w„mQ}xv6›ngÛƒÿ2.;l ˜Š[»Ï_cPNåkk£Qg{ £t¾~L 외~SùPÆÀÚ°Y2& W”„kóõµEáÚÂΊÒ(E- Ï.ƒsÆfÚŠ[]Ö{[õ•ኩèU]Òae>[ø÷•¨Âþ=žeãvãç»á;ðD7ZÄf¯·øk¤ù÷øiì £f»#¸Ô|LI÷? ÎÞ‡„Öýt “]]v'àÆi,³rSxº)\Â2é«£6|«ð<#€èý 6VÚÒý³ÚÐÿ¹hŽUTRdnKYdÖ]³ÊÂèðØŽÌ“p¹9ì–€UÚVäM÷û±¡Z0çʈ©,2õŽY&Ö^öíìÅÓ}‘†ç,¡ÝÌʦ¾¨SŒÂË$Å¿°»ùU/! +EÂ:a¼ªA­¤ð›oˆFg¿AoŠcW‘þó±Cs¬Ë×ÀI¨öF®³$C&" ›^:¢Yx¤ð 7]Bô3 Á,ì"”«˜é•‰‹ÌÊL¯‹—_+Ãu.)å)7 ó‚¸‚Ή^Q¡^8d©PG¾i¦W’Þ´ð„Wê4Í îGU¯È°_µ C0©ñ„Q£ërÂAsBÑÀh>r¾Œ}S‘Æ×£©ráñ¯f~ÞSŠ6˜%£ ^Ù©rÆ›­ÐŽGõ6‘ ”y.n„"੪F²‚Ö$Á(ºwik„sD›Ýöbt¤-| ^‹ùèJÆÌè„#•`0öqˆýbîBâ±Çä£m$ͤ2´S>òé¢#þC-¥ü‚ymb$lraÄÎX¥¹Ê÷ ^n¾í硬»ÊÄÝÉÇöÊòoD,-4Ͳä*òm“NØ(R Æxø7*MT+Xª1ýfk3½'6›ç¨f׿ kŸsô"¦g„Ì Kë#[)¢¦(ö_s]4ê×—¿ù·Á–õ$òîµ¹ëul+› Ý}Ê' Ÿáƒ-îïÔe+Ô–MKÃm,ä:–nr>ò¾׫–R®ÀM †•ŠaUÕë#9¿……«æ­¨=.˜å(”ëLï+.¬ñ],ù‡j~?¹0Ì–ÖÔØš/èä…Â>Ñ…,¡p¨‹©Æ;¨´¸Âé˜ÈO9 !4<í#ᤄÀ®Õ›E½¤HÜ)˜®‹YtHü} €2ºç.#"+!Nµ×o[/¥Ý¡“]MάÍÙBÓ¾ÖቒŸ»p…Ù5†k-¬rBxv<×Úàa‹s|<íiòbddÃÔj/yš¢MG±†1KÃ×íêãxŠæñc”´ Ù©å¥PØ{6jõv˜ËdÀWF…³Ã׿Þ(ð?í úþaŠBáÜò8– d&{Ø#wõ.í""ÁcIÁW .C_°ï¼êëÐp þuÏBØ*„ÉâyoÆbáÿeA;µO5-6á*#ê§øó7A££nÑœÿ–™Ðgqå/å¿\+o9QyŸ(ÿR\ùü•ÿ¹(g\ùÄpÁÂpÓRQÁ^¨à]óœA׿én `½Ýj[ äíÉÞ¤îÜhádî&Òÿ¨æäÔ ¼ÓU«öéÉäXøf[­ôÈ?þL?rÚň6ß›B|Lµ„ñò·hî¹ù¿™Bu[ÒÒ¾þuÒìêì¦`§)ðî1E@ß¾ZGJZÔÎS¢u ¦Vô…Ê+YñÅoþµ:Y‰>ä!¼ãEÕ(ò ‡kyp1+ò’è7~Í2F\{§ÿZ]‹vÕŸÏhi?òÅ&äå¥j„¿Âh $F;±U[i—µn²7vøã*e¡•çM†f…¯ÏKv5¦òø7 œï~msÑX¹fV..ð†óñi=· ~‡r5œ™+ì£s ðíœë0yÙõf6Óo‰¨çÛÊé¬*ÃÙ>¸‘ ‡K0¨JÚ©ÿk±=»˜ ºt«…'›£C`n“;†V(ÎØ¨ÒÎ_iƒˆ¿4œ9U㻯8þ?ü*y?”IZ\ßVnÚ ¾I§¨«›3×6gàÊÊ}YÔŽû2ñW±}y“×\?p½Gý*q½ÑöÍï’ ’p+ø˜AÆÿáÕ‰ã—W+¿¸7Ô+FjC¼ŽÂõ¶ä ‡ óý@»‚oÊ+¸ó5õ˜½,ÏæCíd_~uÜt(eeô1ï`è†p6äËÑ™E £ÛçÁß·þyns–ˆ‚V… Þà§„pºº D; ɯ*œ#g»r¡&?KnƒSÖ9¬›qXïþ2æÂN1Ôê4«³ä¬ú_U›tÕfܤUÉÕé£CKë'[©“­¬ÕZ™k7nâ|‡9àíM¥ö¦þRóÝA B+Î7”ñÒk×fܵS+BDžn›³G9|ñ¸'ˆ»á n²Wù{è¬_} ]Zªˆ«Šw†Z³‚mvnS£ÉÍÎ œ69ØfrnoدºàËöÈÁ˜Õøi¢6›mbn «Ê¿•Z7Së–Úø•$à–Çr‹1=€ì {s« ‰’f¸Â&w0P÷l;<Ö5pJ€ú=›ÝÓYÑw yô@Z÷@Jx²©³¢‡p0âAñòKRTw00ÙæàD]ÀÂÚâ™3–Áý·ä‹ˆWÌ›1¨,lS33rɰ©µlƒdf«™Ùƒdæ©™yƒdÚÕLû€L/õ$]ô_X`é7¼,¥3œÞÜKBÚcñ ŽÃ\F\8K"{ìZÁÙ‹K™/xˆq)3§0.¥Dp ãRN#Ëôø»à:Æ¥HÇ,æÑì–ì>¶ÄVÜë<¦œ‡¨gúï[¯‚Ú¬Èt‹e¾¼x5á´(Ñí6“ÖˆBÁ(ÎO¬ÍéÙCïd–|'‡¯×H \ï¹$mû̈xjG 14ð˰ò…W"¡ªòP"sLn6,Þï /tLàožGt: gQ>ÓaŽT˜\^q…nOp‹ÿE-øœm™æÜ_°iG_·©8ZÜʪE°B£më®rù¼|Þc€Ÿ_†¤€‹M³;,ÞzÐ~;žBz>#ñ(C|üïYÂüqÞK„ÔÚÈѯ¹«þ½þè{¿ÌòHz§‹_ù˜NK!ï0FE¡2]Q€ù1J¤2ÍÍIwQ†ýÑÄ1ûýQ,ž´]ÎMWhO"¹J ¤Áz™€‘…âÀTÃðXvÝönütÉ™•­êõõzë l+ûd5<ÎYÌî¨â[3¤ŸfrN†±Åà²sÈþ–ž8 T3¿­¸õêà’Ò4ëªÖ`«1bYvu°!¢³EFtèç{|D—oÁwvÏ䮚¥ã–kéå²Á( ô2‹õνBì7þ,°±¹F›qœ§‹¡Ö³>Weç§”s6.)ÃÔ”±¯)CdJà ù5W7•Ž´è#¦‘ÖÐfð¹C艫Š7 ãñ`ŸÞA¡Òk£»줫™ùê¦CÃôëéΆ?ӡ߯1¯§{t«àxâFn½cv”œ‡+ØEÊÎ諤‚®£{R…–W7• ÕN¢ â.ï=¦ŽcIjð6S4Е¦;íNÞðŽtWÚ¯F™8G§!Øžïì³®~ã‘‹7º¼»0~ jÈÕ:É„ì5¿ÜæÂÌlsh?1Øgš¬Í³Ècˆµyj”Þ$z°pø¸å°Ñ Âå&ò›R Kê¾¼ HÝ¢ðy°v@ªÂ6À&… a³ŠÐ1³s«bc^Sx(úŒ¶f›ÂçÆzeC`½®¤±!eÎׇ€ž+vPÆD*lÎN%Ãåã·íÕ©àìçÀ¿qð’Ãúzg›bÁW.3Ó9ÛߊoCÏs{·”)'³e ƒÔyÕp·ÃXE\Se¸¢/Yýý98*'[¯‹Ì¶ù—KÉuG]óÙ¨s0ðŸåú›6HçÊH¸=J^ðP`>ȶðp¸XÅ­bg™Yÿzaû¸>—Š/•1c>,–ÇßsÁ¦#1ºƒ\Øvç"±“†·ÆÄæÐÊߌ‹1Cõg;ë ¼˜8$ýZ £sáyüb F”æyžÄ,"Nj;ÍË;ºòUضÐNt°ÙÖ®}$Ÿƒ^Ð9P~íøWa§öX.¬^`”Úhu|£Ý£d«ç&µŠ¦F¸–a3, Íá šBMgêÜˬ‰É˜’Ö¿lõ/ 6öõ*?û{@L`Ž»ôØÁ@}<£aZ><‹t© ÇáËäx‘Á}øXfûØEp¯G$GbdøÛÚܘ:¼Asì½åsËØ9Ê|v¹?´»±š)N4·¿ÌË/ß›sØy^9=š:`øÙ¸Ë³HS4…°í6ÑHàùfç;¿bG÷ ªܚŤ3/'²Øæó/\‘•ëa=|áÝRŒ0{ø³ðJwKäŸ$ù €†¸8%n—P4QN;u=îT#ïQáâú ¬ÀǦ:"·Ûêhd6NÏ"œùé8REO«8Ô0/÷û™Á®Áé¯ebWÞ*~Í. Ng—8aÜoÀ}œfË?ņ?óëjÃ5¦ð51$¹Äñ÷óz‹ªãk´)Ãi®>7‹.ºO Áʯ@~ ³–ûÂÖèvtmΣ5­‰] þšN¡Í¿7?W^Sê/pO’,XÜ|Œƒ¨Rßı¸*¨ZŽ^ãýëjaU¯ù§´´?þ…XëæNHö1­µ½^ñúüW`rí,“Î_†Í…›hÙÐÈ7K…»×¡ £ó®+‡ózÈí/ÁRgc©´³k:†B–†÷Dø‡,ªmŠÌÑ— ˜–FM[PÀy¤aÊ: Šc²ƒ­Ù3}Î#çEìK#ö÷±§uÔݧ¬ÈÙ[2ílzôàÏáôèA­KŸBƒH˜G ‘û°Fd ;7°nft¶ÃsViòž³öÀ÷ïOb^|*Äû7Qœÿ +¶ƒ°‚A?óùLJ,*c?t*"Dä³­U ¶ä¡J /?LarX'®wr*­×l»JW`dô NìÿÛÀ§ˆ¿c[ÎMl—µùOpné¾!…0y©ksRט#7ڔ˛Åt!Z·#;$ážW®Qïù(¿f í¿×å/„£ Þ}†—.}|R\ä“oÏ[%Òé2ÏšiBa3†rÉw~dEj/Šƒ®®â5‡ÉOf¶±œ’±½áX‹÷û §uȉ²]Î6jÅÚLæ^'¯AºÜ~œÉ~ëà“»æOq“»ëOêärN.'irø¨Y¼n‘N“»nFÂä`Ÿœ‹É¡²íá®ÿ ´w‚GÀê·á‘wÎÂFx#¦‹]þϰÓ)ÍRMa(‡R+ÿã²—;{õgÂp|„ÿM,{Û4äÇ1ÕÅ#¾hÔÿ¦ÿãr5 ¸R.è-Þ¹ƒ~¯/…Žú°ç:¯ï_j veW6‹´d?ÛTÛ^ÛuàEõ–±ER¦B97'y@ ^ÄçëÉ_.^}± ³z—SÜ"ô¨ü,Cׄõ:Xg – „E0ñIñÅS^Ô —kÈòã’û×t"y³ïé}6 Ò‹·‚eÕ¦L¹ÐÔË/èu±ñR{%0fþcÆ^ –ï>Gå2 Þ²lë²t¬Ì2±¶Ë]åߊ]õâúIâÖ7‰¹ã6{1`NãHR.j³LÏ¿‡Òòµ4[ýÅþí”fiÉè·vÿ@ $ß÷eãï{ìü[mèh±ËÖ£×Iz¢/ØÑìÓtú:vHOºq:}©1>@Š„ GøÓ úìÚ»énλ«o=rZ;àÕwõ„+ûXå÷@³Wö0×÷H´—õhü_ÊÃzx]ü»£ú¸˜)]Å—ÛYm!„ЧÌÙö8~5– F–Ph›R w!0ŽÏšAþõGÇmÃG‡â·Žzü åzÙ\ü†¨ ¥ /’fÕµª‚‚ͦ6병©fcð³~/ÓjX‹ÍZ¥D{^âÃ’X£ÈUë³D¦°˜·+ØÖãæ/ÓËK¿h&´ 'dñ8°~ð–¾c‘ò%sPf KÇ mkL›¦?él½wT¼ÿkýUj}ÁþÁh®ªDÖxüúý?Þ&äïð”ʽ<],ilW¿z'%¥‡Í±„¶±›ÍŠôs¿p+ñÿ¦ ›.â9ÍvÀiøžäŠ!ª‡?<áÙoçt „9~ô@ _bT’äÍ쬠„D:´éIF‘°4`#sSLõ€œh¯¡}öùùÊѹüE ìSÜŠ˜mixu“µêÐ!³Ù¹¹'ì3‡§[ÂÓmÁƘï»oýWá°XŸà%ºÀX€ñèdž¦´Sº‡¿„q¤ÁP¯óðêoû5Au†‡¯Õ²aÑÒàò^W£±ìá÷A®#'ΑŸ¬”`Ù>€ŸŠÒ‹®L„·ït«Ã8¡Ý'±éfyÎÍÂ@\üêß\á<ÐðŸÚš¤H°[≸¦}&ƒÏœ=í@O¶Ö܆î'?b‡#ŠÃƽÓDDƨ0¹[Dä íWΩö¿‡„uøutPþÍ»0±@Z".½$ UÿÇ›"Š ê›}á׿j¼íöòõqµVÊòìUG*Ødìhü5ë@U‚M“ЖpÉϘu†Ûÿ4B{y ® ­Kx©úÒ¶îüÈ*š‘%öúA•—O‘5,ñ5Œ=¬™–À¥Žr¹:Ê‘ï:†þg„â„§Š[§Š·+¨m20oŠþ€Mš?`U~œÍ¦¡•eñn›t@2Y(ÎÚ­0ÜO>š‹ðé§Ttì;ƒ"ýŒ›Ý½;Øw‘rR°Ï©d"2%¶¹Tß·§t¿ŠDŸ—<>s³Œ­imþ\ïaû}æaû/h.=6êйçzQ W†BèÔë„”cBhÛú¢mCu½~¹<î.Œü)±íWÀÌòƒ[LÝfÒ›€÷ÝËäÕ—Áu,Añ[QùÔ/uU ûL/Ÿž…·Áêe»’u·§‡vÆ8á!hø´NÚíuµájf%# OÄ(äíô-T‡ˆÐ6¶ "ºS‘–œöB­ë¾ØJ¡`[á—Ûã‚FKa¼%0’I;„ï$MH-dÓ£×a#.·ß‡bY¢ëhge€8Zb9ýÛÕù•%ùpvÞ¯Ò‹ðÄ’ßµ…ÛP f¼TÅŽã¼± ÿÌäe‹\¨Ñ…J£øÜz1Ts°O¯ ë4¶B¸ ûsÌÌ2‚áÆç ¯¶½Ó¸J-“?XFËpë†ÁMʃ‡KnöX×Þ=++57긷~1[p“)l[6q|`üU¶…3`\-×>%޹f5mÙáÓ’R‚:ý^·zF;Åh1~¾ÎLÍ-†ß:£ÎhTôòϸÿ` þQ3 ò×À÷P*`œ!0>øƒªß4J¨_6¼Žo×ue±@Ý$U³9·/©sxñ”3mª#‹EP£Êå:Z^ÿ¬×)þn©bcI% €s`Ç/¢‚vê ¹¤;&óÎp¶©Î1ÌXÔíZëÁÅgÅ÷XP ÅE=¸ùøX@ùÆ*‘ٛȂgêoføâ@O]í'àÏ‚?elÌ*.ß,+iI³nhlÝì+ #Úuçîá(,]~Å™x":øÅFâaÉ>f5ýl wT¼èjµš›š„㙾hàT~á%ÄjÀÛ::p­/{^…-üÙ~ÂŚЇ³HÆè°¿K¶ób²÷æÁ&©un‹«3 }U4ž#B}ñ®×C ›ÔÓ´¸ZȺª[Ž¢¿ÊÚaHÕfs#Îfn¿Àc«ùÏ`&šoãSù5Ó\r´v½E=|~$®‡©ŽY¢—ÜA{ õúîˆX¯­×{KepÍà±hà žr±•îÜ(ÑÓ›¢§[âzj:¦[ÂÊ g ½…Gá¾I‰+'ë•'Ô‹B‡ rŽ…+~Ťĵ“õ†ÄÏ,qgQWi²¸ñŸÊ§MJZ¥«D[¯d•®™Þ8,–i%-ÓßÿÜý |TÕÕ0ŒÏd&É&œ& Ĩ£Fƒ *8QÃ- Êe&!3X$ÑÖ¦Ó[”3Ššp2-Ãf¬mm«Ïc/TÛǶ¶ÚÖ Þ@@.A@À뎊"!\’ùÖZ{Ÿ3—µßû¼ÿß÷ûÛ†™9g_Ö^{ïµ×Z{]’Ðôn©@ÓeÆ4Í]UIn,¶T[)Å´Rî-MÆ’¬6&©tºL “ï¨À°•0|]i2¦dÝC§Ï‹)ó SY‰3}CCP}z[ÑÖ/ÎßÖÚÓZ[¿mJÂú[ά¹…Úª8=ÖDútÜzR¿/£9<þszz©ÀŠ0*Â{5êïâ½rÑ뎞x¯5|j·Ð«¢v$”ºùjø—M_ñ𙀂ÁÓN€ª†‡zqÐì Ûs12938ô·oHúaÄÌžþC=dþ£_(Gÿ_?ÓFø­~£oþYÿÑ¿-:Þu*qô'ûD&.1´P5Y™&!àD#•(ÙyÞ2Ì kÈÉÞÇ<äfæ{'¥ ~£€aN E~BÀ¾1uçm—%´»4µÝWE»§ºn÷`r»ú¬=tŽ£ 5.þîáÞ…ÌeeÅlúïÈkb><µ¯çE_¬;iÇ!ÃH“x}¨ÎªÀS{fh޵nàéD–VL§¦Ÿó§¿u쟟š¤c‘ÔÊLê9³nÅðT¼k=# :}2qg®Ì„ÎJ/ ŽÁl[tNŒ{Þ9 £A¡´l2ê,#ü•.Š—¹žz0Ü*ëågOJ¥GÓiiDÀ\w&ÂÕHá0r+Ø^<¾ëBÆ”-vÙC#X™ ˜‡X,qÔöÆ ön‘€‡ÑüD hu„øžGtûÔ½¨ƒ¬áCVêy@1 Z Õ5…§ÛC&ÿ;Iþ«aǹòˆ¸ <®´”J è«â—}àÊL6xšÒ‹Y[h0 \ 2êÀ¼¼9týJð¡>ºê™ #4b¤ÈNâãEpëBz¶Ý"Ý…è‘èßðe2- ϲ‡†°K¬µ½©øpø-2xÊ=>ÕoKTN k¨té¨/Qyi¸?]¹CñЉ8ó_Wè(Fû*ÅËn¾Ø_MH’( âúüsþ±£¡†¯\E“pþ…‘}=™i0$Èãbþæ¬Òç¯13aþJè­_$à“sGéÉ« Òª¯Ì,]ì—Áw³JU%¨šð¢\#%eç*DÆJ*7…¢ƒº„‚›¤­øô” ºÍL#w¡sòÉ2 Þšn|´¨@$Œ“¯©²WqÂAÔ©¥dXÐà° 8ö~žHû'ý,]ª†¦9r€>ú&þKBaܲ ›ÿ1˜.2Í9Ð¥Ò:ƒ`LÒÒxPÑT]bSºl1, 9öm+uš‚š¾”,ïZk/ˆÖ†&fGuá=á)F9dƒó¹t¹¯ÒüWœ§Ù§E³/O"SóX'_s”hÿ tÿ‹¨˜í‚>÷·xJä6_‘’úB§|/= -óoObñí캪A/YJú¶ˆr¾¡¢–ƒ­ ”Õõ ©¤í8»á% ù¸:œëÔó :\ˆ~þY¼Ãó¡e¦†£ÿüà#bøSŸõCË–0^š÷&ÅPÔÈ~ÃgÉëGŽÃÁcê9L:‡H AÇ,Jð=ÙøæIÝ(|uiŒWÂ.iô}<é|ûoq¾-‘çÛ¢s:ݪ“të‡+4º5Ë çU!œW·~?¯4 glø?>¾ƒ‹À©eul;O¥2€5ÖÐH6ÝòÕ…$4âÄÒN¥ý?ÑO¥ Â?˪sÀµ¡Á_Ã4Ü+÷ͯ´Füw$Ì›+æ-z¬?Ÿ®Bmh4½ê'ýh:´ažmüϱøó¢„±]¼Ð?“ˆ&Ì6V)ç Æ Óந"6 sõý±ÖËTB³ÖÓ +`üæ„~Joö_¯‘¸J}F+j0il‡P–ÅŸLé¥Ìä/K®ZvÎEus±.˜d2(ªøëGãhÔµú±]¡+RÙ.}°³ÌìW°úÀmª~öW+T_^8uÕW"fm¸«fM" Ž*,í1Ë›Í@ì+Ám¸2°¿ $ñ]/’@?·Z2%¶Th7‡JV*¬¹p°E®Še§/†ÃƒÎˆ$8:±ö†h¼vwÙ\£ºXä_³’èG¹ó|Aeo‰4«ÈcÈ­H|íc·ž#vO.òþŒ,ÎUœÐ¦dW2×Jí(à|²+¸|¨®ÓÔ™W¾š¤Ù”›‘?&?#ÿ³Qù£ÆdäoÈËÈÿ.ü}ﲌüM—fägÃçÙ‘ùA™ÈØŒü‰eäÿ>‹ |ÕèŒü¨ó]ø‹Áû“…ù‡.ÉÈÿ|.)ÈÈßxyF¾a¤qäÈ‘i¦‘æô‘#3àkæHËÈ„ÿe ¶f¢Œ´ † ·Ì9rD‚>ÐÊ2–M,DŠáŸ"yæÜ2I@È«Î\TDçUá %á¨rñ;9R.tΊaaôÒAú;Td¡ƒ`®»ŠÂ£`- éWÅŸ=Jj8˜Ï·ðÌÊòëò£Oê÷)ìIÇói(%Ôâx: Í€1È"Þb#‹£¼~½sšæá±Â>Ã<·2äŸM㩈åÜ¥åôTGú¾« O,Ód8là‹Zˆ˜£ù¾F90Bõ¨è»A½)ÐçToôªeаÿ*id =K«7 ¯™EoÈïR3PíA¿KßÂàwwe÷œÝŠFTÑ–C/-𲪫^N‚^šÐœß†±ü&µ8^À[¢Çh˜ìA‹ªÌòç¶’öþòÈ €g¯ÆOvêQ¶Êñ*¶ÿƒ‰Ú0ÓTáêÔh³|îâŸ[äÉ‚6ÿ¹d0Öü”V°Á~ ]cYOŸ«µáÉŸ¹B¨”~“n0Luj|³ëûxå'Ô®[¶¡rhw1YÕw=EøYþnøQî<©¬ò’e²²j»™.BlÎ7•Uá{I7€P/§•=ëhÅ<+À„¸]6 碭 fŠ$÷x?nq`:+3…1uMø1Ç1ò›È¸?;¿VΩóTãs4Ó"ïuË¿à8wžVÂùWv £¦þnÀþÖiýÞ3Öµ+°ZoªûÏ*-~$Ø#DêmkJxÁåX'TÕœ[ÄuÚŸÐ|®ï(óRî(ñöïN ƒ‡œ.Â|  d™DÂp“㟩o5XÛãÈ™á¦3}Â×PiÙ°>)@&“ÉÆG²i™~®˜Fä:·Šç/ä¿L¸.ÁI{$“VÃ+l«”7+·ß¡ßÈZvª¹+'ãƒr£܈N6miö´–þÎ’M]‚»FÒP@N“®°ÇÈ?yOd”'Ò˸ÒâA†j‰…&?/<ÏÊLtÓšö6Þ´n9(oZO5~Lá³ ±´n(Ô5 ~ò‘…q'Û~ðÃïùH<ÝlÙÅ*Ч(}ן…pšK4 p:ÎUö¹+2Bž„ì€ íóÃÖªâßÝ…À]• K#IÆöêjLî`¢µ&´v!´r¦Þ^µwè@J{ÎäöÆ¥õÇ(Àýø‘¸ÍibôùØÉƒ©ì1&aIî˜M}±à&õ^o§{å¯ñ=F;üĸ”N)g»ìô"D–°Ïã»–ºŽíOéz¾1i|# †æ–;†Hóãp¹ùwNiK;8®W}54–êШ;FAã2øéÑtÃòõORfaá‘¿„îGþy µ’G›@LL¿ù¨óï@øoN…Ÿ8ú8êV‰‹]¤-@sü÷8² i¬ 8’7ÄÕÓÀŸ„ÇŸ;»ü™/ß^ƒYhœ_^1wD~cúËwÁoá-æ¿nÄÖ>Û6"¿Úë©r»|3r nè&G$¦Šø‚äÒ‚1ÃÄÝ—‹ïqhçψ‹sà`ø£:"^zÁ½þ…ÎÓljö Ï_Y(+£R½‰Y³»ýà ËnB³Ë·ÚÞBøq³vùût@ îÁ“¶G2»Z3þ[¡ k|¢¢™T—µÃl¹ ®<dåñÿ4hŠ`×èˆ*º˜Ž¨®^AÒmn ?Õ€bÏb1az ¶‚ ÀHu뺵ã­åCAlí" ‹ÙÅ—$Cç¼¿ä æWˆûâ1Œìu.œ}lÜçØŽÁ€ïFÚ±ŠF§‡¹¸H^¿õ€&ÙXÕ9Š|Τ4!l¹Þ:÷)«0“ó¬²j™‘öýÍ·³ž@‡uY“¡Ño™.'ækFœ™0Ø{OêgyXœÕÏÓ‘ÞavžhüóÊé†@û´$[] kJè•á}i¡Òò:|-mTZPB)½Aiù;~:¥Õ:2¦4,·o;²d\)ÔøÁþ~¼ŽëÔˆ2y ˆcÎt@#/’>æ L}ÉÙJôO }áÉôeŸ<ɾ–ð|¿ú8QK%ˆñëœûXPŸXÓ¯ ¢ô¥}¤Ô8¯N9;â„©s”¸Þá3ZóÕ5D£ž~‹hT«¶ê«øÄçŒÈ£á- *Í*Gc`¢./ЈRI¬ö}¤ÿèU%ù×d䆿‹á{üuÃwCú7ûϘ–úÄdÖíÈ4/Sö‹:qä>MÑé’ÄóôØKÃdL‰×ô2x±‚áŒÒÕ7/ŒLƼç.·ÇËËNH—ìˆïAàv}o# cãâö_ ûÀsåùáaýàyþ ž_èðœ-J‚Çb[ƒö©9[7šêKgñ¶ÓT=ÙþE”7 Tþg•gB2´4R@‹cÈ¿}:ÕÿóåíiÚÿ4Lö€®ñqŒÆ·ëYÜ;¹kñGBµ…P4ñ÷3?•Ÿlßj u`w,çù"@>ZK´Ü_™1Ìn.6³#Õ¿àƒŸÊ_6Ñ€qW¬9Ë9 œ€„¦+Ù„_,»éJÿ%+g[6…Ëê˜oɱ7Z¢—ðÚàÄŸêø³§„¨ŠHå!(¯—»ŸÂ¶Õpóz¤®Ö²”]±úÀÏÉxø^‘?ƃ dîÀ29”gf½µvíÍH "Ë–oð[ƒRµ?•×<#©v¤ã#ÜÆó#« dÀz£Þð(‘ù…r¾LÛ9_RfÖ@Y([{ «c0DMéíjféUœ¼45À÷:Ox‘nØ^«ÚVZmËNß®Z–†j•þãíf[B­øÜ¬…AGÀ²ÀúqIïkØ•øŽ¢NUÇv‹Yû‹„] úèu7"-ZìY½ì!´´^ûü²X{úÇ@Ô¶ËB°÷έ›³rޱ~ö`úŽ4ö*€IùKÉÓµêjeÆ­¸&(¦- ²ÅÃævW5—^Eñ즲áÙFâ'Wf”·´<Ÿ«£VN˺†º²—÷xƒÛÍù·—‹÷eû^ ùƒLΆäñ°ž°ùzÔ}™oàGQŸ7lͯLm„™2õÁ\µ›/0¤ø®-^܇n’Y]´ÎC÷$V×+ø†— fþ4ˆHí?ÆG†ÚÄ 3/ã£"ÀØ k¶Ð]íÑšãÓàóR{ì8ÿ¤O´XŸ%û‘¿ÅþÒHnxk¨#°þ |œ¸ Ž­xMKÕ~N®,µ2 ò¯ãâü+0­Åø«uæ¨|OI7²2µ¦Ù(H´‹× €Ež~™+¶ oÝÚQ¢´ü:"ç¿„÷ޝ¯€8ñÇú?>Í®ÅF­cXÛJ"x"nB²Ÿ†R¦ ! lør™Yö³ð…Äß(`ÔÑ[“¬r`ÄdŒæ˱[1GTðRT ïá"GBüGÌOƒÿ²`¯‘Ø,TUµh©kðò!lFõ…"ýv€W®d KZY"î£Uù1šrjñL§!{#þ ¼5 Óª<¨R˜ˆïá³,õ9eŒ Á¶åºid.éßXZåŠÉ!T×¹ìF+V‚íh±¾_M_æ4ø­˜Dé™g€²bžékñÜj¸½:¶G^l <ÔpUü÷ï±jLiÁØ 5 NolÙý2v²è”¤†é¯ã€Ž½ ×þcünˆ%pßÀtU¿‚?ùÂ3±嵪'ˆðÁ +”ò„  7£?nO§ÖPNçÂH]­|@¿¨‡êädÁäómùѼ¸½?‰Ñ…¨„Øý3À/_½žò¡ «šKöGm¾e;ç¡k~ÊV;ö¹b¦¹éÖç¨L4¨W‡®„W‰äò³à1v-agš¹À æ‚¼eöá¯ñ! E¼[£ùo¨Ð56Ç/G_~êà˜cË?ÄÊØ8•:•ù=N{K+µ£*´ €¥Ç¥åŠf^@ÒÅŸîØž° Ãxµ8èT6€¿B Ç|_N¸ÅŒ´¢½¬÷Áö²¾ï·—ÅE-X‰¢zì S~¹Ž}áñ¡6–E8;=>x· UÈ ø G(¡H1ÄÉmB 67ŠN±²‚Û…ÕJ^ÉNÂ_ÿŒ…g¦]¡Ž`ðíëõíži4†‘@ðiXÀ‡f$——²™-µ†[ÞfKÚ|å„åcòŖɯՒºvbrÀ=èÏ v€'ž °x'òw{Díè¼à1Êö…† ÂDá%3x~|©Óo,_9Ù8ØŒÄ4è(WžkgÛ»N£ò“¸;dî81w{:Ò±Ul][)ùÌýjmR3H#^ú†ÄEóĸ~—¼4!^¸ÙXÜKêX¶;‘?À{6:•,íÓ Îé+òZZÕK%Ùn¶±hÇy+c"õ"(ØQ´·_A,åN«ZRÃ"„@_oÉÅ1t8U©Ò« 7çB‡¤Q‹öRý„ŒÞ„zOãiea¼k¥ö¢Áé 9Z6ªüv֞ʟEÍÀNö-»i¼ÂÊr#pzÈ^Žž>Ç/g|Ž×S£“Óg0Y„ðbct¹@µø +Z Pò_Iã…5¶2754Ú²I :qòé4 /Š­Æ9_v““õ©ÙpÒ Z9;6{Ùi§ÿ²’#ê` á F9îåi¥†$ÚcÇþRÉ‘8qÙrR(áסþûýÍfGƒ$?á3¼"äëÎÈIU{ŸÎÿï‰g<Ïû‡¿æý·ñ=ª¤÷kWíL’ù›ŸÇb.þKü×÷ ¼ó=†ÿ C–o"4Åð[!gN²i"ÿ7s›Ã-eXؼ.Q¾DR g˜±vî.èiùi¤ ¬ÌÜxF‹uû öÃjºË7ñah[¡¶mkñGCÌ0sxÅáÑù—üâòÙŠþ ]&‹âÚxŸ~˜üy/Xý{úâÏó½ Uøß1I_e|î—>1•wñköéþu™ÒÅ• h §‡°äÝþ]M¹pÐÿ㙌Žó'†™Mÿ½‹½.â1»•_¶ŠxÀÅZ8`³[ÓççáÏBá­Dê}ÀÒ\x4ÍMú3ŸùÅ''Ë—q0s`}q%+[ ×¨^èMS ½fu Ë~òaŒíD£ò#ÙÒe'[×ÝÊshÿä9ש£WSi¾[ÿWr除w0—ìtnTž\'rg¢hxî°ðŸãàÅ)xQÔ&?Á6–l.Ú $©ý‰’u“‹Ö•)ÏmTžÛên0ðŸÜiÒRé±3ÑŸ‰ñÜ —j/õ.“AZM„N&˜Ð¢ÊnÚƒ9×Pùœu2Žžj"2ÈŸ¥^Ò¹YiAÍGƒÝóP¶©&¸©•-㜛›f ’23ú‡³>å¹3ÈN›N¯´\a+‹N ÄÒXŸ?G^ÏìÖ‡†"iÑBý!³¿ª1DíhÈèϲQÍ꘎ÊØ`6I£a#ø àº L=8P‚u" F)º×‹Æ×?ð›(¿“ì¬eïÈuQhhd]ŒÒŠðÙà$¾z §ãûN¡kÈ£:4Г¦Z_P3i¦££ˆŠ²g¢72ÞïPGÓ´²œá*¾g°œ\dДç0’Ôsf‡Ä ­3i yàì,ô§×bàÕø…ß‘—Ÿ6ò%>Í…Ê#è“Cát-‰»›¿GVÊsmOœêñ™º(xâT#‰xNyÛgŒþA+í–5†éÑËgÒüvÀþd™êC¶@kÈ…Q³/ÇÕŠO0òÕ8”3*œ}O ,S+q¥Ô-Àô©gàh.ÍÒ÷—tÿÚ³»}ÅP“ýÝ£RyŽ{)—b¨ÖP0EçõD­Ü¹´ó~ß¹483þce"0–¶íãnÞT¸šÖ­É Œóé¹Ç[Í[ï4 %»JV}έtWÖãÿ^Š<=WØ^›Ö9·*5ÐõÁÎæñâ>n«òÜfÓ6vºè Û‹Á•í7(/Z'™vì8³‚ò¥”•;¿hÜ‹-Lwv5#Ï"è^‡­NZˆ!(Žû‰šnn7Øå¹uø¾í½4S{ØDì°žänJ'šöB7n£,8yrÙyŠ ÕJô+`žhÚ®˜Œ >Œl È“"Òb\9¿v µ dÅù- £Â† äü?‘óK>¦fÜjÕ¹Q-öMVÍ¢o {$КùDà½LÓ:o[ ÷Æ[·ëtËŸNqÇ@Väƒî0QzH˜²k6áMÎËhÜ#״¸65_]ý(îì•yC–½|åæÑÀ:sV$pÆâÏ\‘Y…vbrççÁóa,@ØÙ†‰Zê¯Ï;ügxâx­&˜)“i]M[OŽê’GUW;Ð¨Š«õAµŠA¥}óA}ýx²¾Ùx¦f$G®¼j¹òj¾§éó±H RŒGÀã…d‚Kˆï1±ø¦kùË1 ¶ò⸫L'…ž Ñ²üSü`%.DS†ÞÆ­ñ•¨¹9ÛõÉv¶»¬8àBÚt∢—tó‘kCFQ  3Œ9‰Ç˜“®ùÇŠí&'QÎá·™;…—ê;Õ5^ÿÍí 8×ìG2æo¾YÓ×ÍÅñšGšŽ³=Ëßûբ/v ´¥e½8=È?xÅÃôköSi»Ñ¸“lÀs”Ev#{$åü ú’+Ò5ÐOÔVÆÓBùÊèX(øH3è‡ÈLåú‚ñ«k¸\N)Ìh¿3C®jˆÈx=0úï̋ӚŒ:ñœÿv¾àR»_¢YÇÐLÇÒ’µ8¿þÍ[aÛqº Øé!øb NÉ2Û¿™l&ŒÏV“4Ÿ ±ióyŒW|(çSî%Üt§<‡,`E|Þ`dyIu¡I».£šÕ¯h…7¾˜3ç׉íYÍÛ¾Eƒ+Ù„Ü›KÅú…¡ ʼnR^,D“JÛK•6ЕÆvì¾gZ¹®õpZVÂ?+2Êçø7ã!Ú…õêí·^“Çãßû@_L-a£ +å9´ä˜j¤ôýÆöhšÈ[ÒJµjªalÏzt¬Qž?SÆ©ôÔð#·iãÛ㻎EQŸßÄÄñ™Ù^Ÿ‚ã3Ó¨fùßFƒ $=óB^ŽðÂd¶iOg±6N«Fˆ–¿¯–g)%dÀiÿ7¢;u‡þÍ_˜pÚÁ7×賺Ýá†Þ52Ü&W'ëQ(}[ ûT3#ü/¹áX1Û¶üúU3G)Ê ÷“JȬ~ Ûu@ONÿüÆtÛÓö‰eù{X‰ò°S Ö9`ùeP¾íSÛò¨4±°²}{¼|e¼¼ ÊGÄûâr¼Q^ÌÀ¢˜=©ØåPLBÒÇ4jמԷ9^hŠ'²%[R¡CPˆu®D  (ìY{ëûiY­ï›²ÞYqAÅ,%¸Q¤â· –1!7q¿ÚkøõŸ£Fò«—5ÿù‘ÄM+r´Ä7­³'e1Gb}ñ ŒMØü]™ÀŒwV'ÎxžÜ³vܳÙ^1å¸c›)Þ#ô²ÒBKYy± ¯ÓÃyhb¼oÇiLÍ™Ùö¾ið¾°•ndÃ1ÔÆMæ¶#¦Á›Ãö =Ýœ¡øg]ð˜:´í°epþ eÚÍÑìö C9ì‰CÊWäÃ~_ Ø*Ðö¼=…ÿ/à–ã´?òÈô”¸~¹? ’öLJS÷G®ˆíû#÷<û#Ü×—°?jpü¥*Îzd,{£†P“°7F£²œ½+ñ;Ãm $²ï€oï¶á8dÏ£ï¼s}ºA„WH_‹Àjݪ?…•?¿Hœ¾êá|ªæŸ¢fû«)þ‡wõõN,K2}sOYï»Îõų Ù"Þ°ùßÚzç®øÑ›I·ðž_4WÎ`óµhñ2k l‡¹x¤¼¸ $´÷,ƒÅ?$§Â5Ê€»ÿŸí“ö3Øáô ¾µí£ò}Ç1–Þ<ÑàâøŽQ¼XÃ{ ÕPüPšþŸÂ¨v¡ò­½—â°p@)é÷¶¸Y¶ú ÙaðŸà&ïZü©f•Ö@«µŽŸ“,Ûüîˆü঵ø¡½™ŠoÂæ’°¹¬í0Êá0(k²óYØ~ìP¶™utú:6Ëz@„Ü*Œ¬óÛŽ¤…KÓHv}›Ž °è¸`a~²ÑÞѺé©gqLW&ÔqñøÇ¬ø P÷¥tƒL‘Ña¨„JòÝÕ®¨ÈC»šÕ‘¾¶cTþ¿ÈÎ’ 4V?ópBžÉxV¡ì­ª#_cG<ð<…ÌêHöáÄx~^žÕC«!S}«ŸX*csàáSø‹e·B‡Î·ü–Xú ð».8ó+ 0;º%ÿê¿ÀÃÕ3˜–h0ºø¿á‡ÿî Ë® ݈tPa.>‰œ‚Vzb~´™”ŽåT ûËÆÒþ\jÒÕAoЕ¯¤nÍÒºDÀRÅé˜òËVoì:+›jíÁJç º…ý«…¢sÿ¸óvDü7¶ÈLNJþlßB(Ëÿ´L涤dz@UX™¹†ùË"ÒùW3Ý}æQ.ê‡ûbšà`Uk`Ö—Ÿ¦ü×#(ÿµ›_æÒµÉ´ƒ_wE¯l}|Œ´³Íö8fAC‰®‡0Pä_©q«/o vµ ±+¥¯¬âÝ–Ý­£»üQ°AÐe¤ºìY½°G]¾ŽßÔ Þ‘±!nŸaØü9-#6‚ ¨òòË¡OVn†ƒP„ ݲڰ’^ǵ<ÞB†ËgÀVÈf›Ý^þ×CbØÌºj„ ÚÜ}Û´Ú-¢Í—}4¾¦C_ƒÊ³“P Ë {ߤõʼn̆®¥ÆÐÅËË•¢ñ;¨q[u’€UPU²¿†®/¶QwÖÀ K)ÏbcJðBókïç¸qËlÛË…@hÔÅõ0™ýRê;I–lµ¿K‡É*éŒZùÎ0<1kO®Ó7ÄåëÄÑ]u\ áç߯ …AÐÝ5üÛü©šÐHZÝxñR‡n©?3–ìW~z¦âI'•ë‘(SH+?_iYŸ0¢¤QÏ•”¼‹æ¢,eÔÅZõB㣮è7êkG½G=é3mÔ°ŒÖÒ¨íÚ¨®'`5¥€]hájøúv}ÐhB%·OþA¹¼êвv öÐÌÄfNX`/ 0Ï~J Œ’ñC ´&š N%YøÇøZ6Ô•í¼]=‰]MNìJwE?&ºªágxeÑ1…ò§°é ´8m‘uOޏJl5žW‰ñ§ÅyåWxls8éñ7fcN6?¤ÑIâì½.¾e¿~Q¥~o¨’VÀø[µVxøäùFqå¥Îqñ GD=Ì SF:²ì3޾„Mb>áŠÏRŒ)`X6„{}e‡Ä÷‰·ÖÅÃFÜÕ:à^ òõ ÈÑÆ¤ÙRíåÃÏÓ÷HÀý·h–õÓªyçmñü5¨;rŸH:Á2Ôœ‡1ÛY<Ôãë4sÌóœ?—Jèî³x=üwäºQÇÀ¯Áû實lŸŠÔõÌTVØÜ >Þ·E)ÌdÒ—8e+?Ü' ýåm‘jÿ;ެӧNŽß‘£òçòô!çb.ùürýùíâVoþò€äT˜ô»Yüê€Qq,Ããë<„ï“Õtn‡—ɪ«kx3…=‡ üV~„˜q˜ÊÛ")Ìlno¿sŸv’ŒYÍÇEðÌ!dDO“'’UVe–ù“ëB–ZÉÁRؾǸrèd2ÿØFî³;·¤9·Ý—NS8c®ñÞ›óF) -¬Ž>'X¿cÀúoa'€Ý܇f§Èi¾)¸É+Édõ˜òX[]ߦËŽX—µ}§v…5­}ZšÑ0?…ðøË‘ïåÌEã¹Þ<Ü<0Ÿ½VœÆÎ6õíâõYÃNý„¨ž'–S& Ép{ø–aDÿlT‹ê¨¢V.Žìja8y$$.¯ï,Ä»(7%eTò¸øå#ãË»dy3åVÇSàõijÛWp%˜Ÿu¼/²3‘½üq;ÍÃ’Ç7JNÙ‡qÊÊ»ãûÖÃ{† ^ÖÎÅtïMõ Š·ÚWйF@íõTóLŠŽ›Kg”ƒÝ•ýhoÌÃzø¿—S8î~Õ·&·”Xó}/¢ñ'ÀõÅr6’Ýœ-MÈ$û¶ŒD#¡œ ÂB=eþkØ•Xßã펷áMh£1'±íο@_xÆÔ.5ŠˆüO&º ¹É@t¼ºÁó÷ˆ6ðÉ™iqÂ/7ÿ9þ{;Z£¹L!ì›Êîrk Hy€¯×5ç¤JWñ PÊÉ…#9S\YçÇ{{ÿËÇÐ{|±6âÜüêãÄeç%›l‘ähùQ«n s±}Qîáè|ÃmÛq1B@ ïå­þ\"žl•³HñúР «Gjh ‘YaÛøåè¬+L·Ô»¼ÖË}N6Œ©U5¼–‡—uj{Õ¾£$5=8Þ´6”¬ÅQ€:D—Xn‘Ä&9½:‡e÷(PiÔKYƒûÕçà÷öpo¬Ï’¥"¾{ŒRooµçqûžÇöËöëòÌï÷ /Ñ«ˆñÕh>wœ™hU›`Ußj®–«z%²[@ÇŸý/xÌÈ®|–†Ûõâõ„z´±neîÊ7oÈ÷çµlRí+çáG­Ñ?ó¶§µlò.i¦i tƈqW{-°è6ÊÌylf/lêà&àPÊ O3ÄSv#©qñïÖS4™15i>ª=¼ñeI¤• æV!–oxY? (™‚z¬¹œ¡å‚Ýëæ»ïÖâEßXM¹\üç…gcÚn/(Qo:Ú'C¤çð6øŽH¯¾ŽP™ªAÉU/%• `¶z˜^cþ-¬=Á&Ÿ±2ŠYaA;‡TljåG§ië–1*¥©ÿ ߹à ƣb.U„ÉÃbü×ÿÀiÃÚ´Àp{1”Q»ˆe»©ñø6F®¦ðsâíJZµª·Ç«˜‡VÁ‘å:¹å¡/Š÷ò*ÇLaæInüÒx­DyÖQãe=ýã•¡å}6ù/Ü+•²ŽHu»ùªÛYŽõ¢áÆð'ÛºÚ¿1EOŽýY•Ù\ÞÛ¢Ùóâ=¤ÁÂwê܆—lñRú3uJ×—…ëÇËèú¶:W¦MYAÆ’Ýä€äMlöhö!­Yuhí|€ÏPwûÀ-¾Â|UÝ‚¸_ƒµå¹ñ™&Ø% °×7²“++óWn¿!âÏoÙ©Ž@ŸùZ#ý¢{Ì(Ù[Dú]es¬TÿD´=ÒA¹*·xøiQûý#éŒóøJàúýög´ä1Ek¥jæ²lñ:÷NòÔøkLÛ”vªÓåæáÁäqŸ0‘Ϥ†Og#²Z&X®3Æ?šz¬¡&]üø§Ô¤HŸUí>cH(OF€^¥:¤Q¦±Áýk_=Bî6èoäªñ= ¿øÎ#‚@Í6Ã~LlÔT’êèùFLAaLñgj™Ôr„÷ù’#ÈøE×uóEçÐ!È`‹¾Ô¦êcŸ:Çh¨aüÖût{u»Ç·ðrŠíoõÉø ©Ì´”I× "¾; ¬·†:It2“ cf¯9f¯ÜÍÝJËZ°8ó=_Kä¢á6¸×¢å_EJVê‡nÒÛ›pw¯òÑß³^@Rد™íásµ€e¿Šï7ù h$üný=>÷§ãNŠPW»Éà•&\¼æß}ñ@[ ñÐ庀}âFŽ¿¡a2¶çòò¼kÂæwy 7lóh–M 6ÒÊúþGÚAÝ‚H¸ÜÎv%Úÿ†š Ñ™áf{ÃxØZ¶k4¯º™E츸²¿w4ËÑ›«â£Esµ4·ZÚú›óqµ„üþ磱Ùu[5öü'µu¤êr,?¿NÿvéÝBZAžó>‹í=üù­b='²TËcøÒÃŽ«ßƒ`'¶ÖÍË·Æ…¹9b¹*/‘ÂÜ3¥š07¥·Ó¿éXšÈzù335Áô3<-&m•gU“9%¹É[Èx­0;Úz,+¦9Œõ«_ÆßÓi+îr˜€°7€°>r’HþŽôزߕ—I›G嵨óŸƒ^u Jh³»Êå;Œ hæ­bãaî€qÞj>îûZV¢kR2–c&rÓëd¡‰ ö‹s B ¥$Õðl€Lˆ2‘ž/Ú÷-ž-dúU` 0wãY-Ü™“Dû³Ô­”IÚÅCǵmž3¤&àŽ·ÿ%µ¿Pkߟv1 fþð=š¸–PÞò–/M,ñÁ§Ðx·ƒ¬]o‹ÄËçRykJù*~æ´FŸ»ø±¤Ž¾ ‰®‹Ò~Åá ¶zü×,›TãO 7\_nW’ô濎e¯@§t~œv†eدö8¶Ë äx7о÷hc)p” ÅË>ߣKFåkvdö*_)”F?¯\¢S×'ÜZ#dÓlvxܯI8Ðb’ XІÀ†’Ô}_HO DDV\„Sk~mÒ¥ Àã!ƒ`í5ˆlÂ4Ôç’åÈè?Ñìl OB³f ÈÿRî+S[_¦Lº¡´RŠÃSåâÿ¸˜“~ýŸw%á£$r|PßÓûúე¤»ÜÆï;¡áC¬„d”$B_OKh=½º.u=m®0â‹ÆreåER5ŒGV·T%w³žÔ„)"&:É W®£ò}…ÛàŸqx+·î¼•³Vâ­;Î߿ͽ¾sïá­À/©ƒB90£DÒÆîWV B¯F#NÖ9Nuî”@ÅëÄN¨ƒ)3ÒøC²ÎTçÊ~uô¼*Xg5²øXr-:PóOûô,Õ?ÆW[èêvù.íUã|¯ÒcÔ³ðWõÇó|ÏÓcôóäÔOö=M1/;D|…ï1zŒJO~¿þx¸o=ÆLðüñ¸.Ña¶FPCWDUùcÚ§–é0»§Ðp„‡Õ$NYªñöRÄfvZðnòTØ\6oÀîè*ƒî%WoÁC9–ó¨î ž) –ƒ­LÊÁ^ulØzk²/èv’”IòjRu؟¢áÒΰõz ëè¡.©lZ-]à¨M.µÜ’Ö£7 ²ïKpÙR¶^Øt|xlïþ¸¾×HöûV/ÈrƒÚû4éÙo–¨ˆ·ÿøDßSêxºvJ5?÷Mɬ/¸MaSSí³¾ xù^MÍ4¿.Q¾"ÿ ô¹å7Gc©WÈËÎ4&Ä“»¬zžuÜ…2rÉ&Œ'·㘜ákžð¿ÅW!¡Í®¦…¶1Qß'ü;Hùó>À*ë3)”ÑÜ¢íè¤1FȾŒ‹ö±ƒü´ˆ®ÚTZæƒfé&F?\¼j‚ΠMÀ÷7UxB7ñ-µR0&wÞ£^?]+ŽðýìM8Uˆ·Q Ávûæ@¾»RüþÑxÙ5ã%JÌ¢1Jr")yÿœBSžu,4’‹ˆú45…—üŸÔê4Ò£ÌíçŽÉ”ëJL€˜b#`U%IÒìÜ~ïHÆðêB+X âg¼ÿ®3HÎÅ© S¸ïÚkó€²Í—ÎÖü§@±t&…A!‰Ègøƒñ‡6€ß)!šíŽû'®Èš‚óÃzç ¼Æ {êYö¹5$}έ‡9×B°Þó À‡ ·¡hw|ÎñYïü\c`®Çö„÷V‚?˜Êâ@ Ò¾Z¡ˆóx'ó»Gˆ‡ìº3],5>÷S‘”­‹û×ÅÛØîãí ø&jðÁá8W-Ú¾ |—ÆÛa9¡º †îûÜü£\œ]›4uuÀkU„z ¥áÁ®7ñþïõ&|çFÀ¶¸²Õ¤±²¡'èú©´|ß,–\Òî˜pµ¾äf`,“pS}ö†I]¨´\d&Ï«äŠg‹õŠiXñ÷XñÅ„Šã”–&Q1Ip[¯øª —Òäù˜WF<ª¢{wR|ï`7Z,aJD£òÈ Ü3È(F#s¹µ·ü:lª ˆÁ%2 îL­Wÿ…ú¶»IËÿ­¿×u?ÆdÊ™¸#7ŸMµ°[­ †*˜‡ükÒõyÈUZJp\Õ|ïU&ùÔ¬¢yAÓ»+†ýÞ‹…O¥Ò‚a 0üq~™È«’.% ‡þ6ðÍ9n¦= »¨=ÑeйAÕÜm nÅujÓ…d’ê‚H²}e0e:ÿyT;ì[L“K-…µ„áý«|ÄH’¶_çœÕnÖ]i:iû­Q’6úà±û†®œ6£p *½JMo7¿}z|Kšöz-Ö;2¬"¿–‰'*‰ÐÝÿºK Ç¡C™Áà/~8ã˜L؃~B¯±t‡UÇ<~åQ¹µ”à•xî `F,ÁMJËïñÌ~Š›>fʯl÷JãäiSPG¸O=cóo žyáíâ®Z\™/›rÄZdØ]!CÄí˯¡ðNÁ²:ª *ExÄ»u–¡]·Ehµêð£˜V¹º½‘>mZ€©•¢ÜQælè©Êª\=^ŸÿîÊõQ®¿” µ·¡Ì~Ô{Ç“q¢’ØsRØ«²Ä¿K¨!×ó\rî£X¾Cõr÷?™LN}«žèhyHÜ¿ÜQ«PûŠßGÉjén!Y­"^@Fªº*ÞŽà7r5Þ¥ 2ø6 Œkw»\|Õ)rÔÑYÒÕÔð·»µ­™Ry„×7ox=0DÓ4ûÿ +m+óWn¾a—?¿e“:b¥‹t‰ø;®n?¨nÊî·:PŒÈ´ºÀ»£c¨Ôå­Àƒ–;Ä3šð!?©_¸ÔøÁ{~É6Zg1¯™ÿåm¼·÷ï ¯"‹R˩κ1 ~N›_Ù/}Â} °PÁBÙrSv˜iPípüi%­^ Bbq‹ë”Ê0êƳ@»EW·¸vÉÆÑ^§Ý­<÷_úõ„P¾yÔ›ØX\Ì qT ¯Óþ…E°— %ù¯ª¡ø#µ ж]¿ÿ‰7´+#=ÿSdDTa¦ØH—»ŠB°z|Ï#V”Py‚jÄÜÔ{Aqƒ‚Ñâ:ê¸5Þrà(mVé #] UiQøk/ÄåB©Ó‚úd^ø½ d‹~~qùq#r5¼ñ…d}Ê“½_«O™tè+ô)ÁndÏ-ÍúÒ–¢ÿ H^êñ­ø—ͱN©Už ÏŽN[”Ÿ «tÌ>ÌŽz#ÿù˜çGØf>ç½Xl~ÄUUÍs†‘l>?߻҉_ îT3—Ý`PÓØ;¾Œj&÷\,MçßëÒ¨æªBëþËáõÚe€š¾v |ˆ-[íò¹>DÌë”÷ó#¼±“”…¿|ISö«›#ë:>Ä-ž¯3H1©e÷Yh¼M;¤®s~¤Zœ8¥pâxù% 8ó%‹é©öuÒtlÝ«7Çb[2ò?¿ð·Ðc€?«üÃß¿ƒ¿åGíº<;…T˜5R‡é-‰9;Ø>M‘¹`žfÈQíÁGüÙµR3é<¥fÆ2º®;®PÛqžž’`\*;)‘]|M³¸‘ÇJ …ù* á!#ò.´ÐåqW·c\ ÞN‘ãòœ§—úÿv~æ¯!Œ¹xÙŽ>í¦BÆM´á>ëûîY„ß Eh³ÕÕ–-xJ_™zÙñ²ÌoA.t¤¬F;:Ì×!7Œ¸Ÿ†á˜šUWº Çõ«„”òphpJ|¢€v °)ã(é–ª"V;¯ŒC’Lßâó…ñ§rµ “óUr̹A7’yÎ#f«Ö")évöRˆU†]QZž•w †[.î½Tg5W¡iñ:£vª´„Qf­æÿ|‘–¦³G•GXÏò®Á»Å û]TÒŒ¯ZxM7³ÞèÝloÑn Û/Ò¯J”–ëÅtÞo´›K¿›¿ÞÑÚw‡ßC©–.Z*øíF­M:o~«/ÁP,,ŒàñÖˆ…u÷qáÇÏ\ªOôw±4"VänHbFøs±–­jh™DøÄ³©Ë$A©¤fUëË`!7 ®W›?ùoq.Ò"ÐVeécñU)B ¯%âQ·Uã âüòXâÂIð·‹ÇC°kþvva!ê[önËçÿ.ýíÔffu¬4¶´ª×•Þ«šKkü¶†"wBD@5 %°ÛwÇGKõ.I™¥¿·Yd^…S :‡LQû©^EJP7?y±&:ŒÉ©'l‘äNk„I7P3ŸªÑdõª>É“„ôŸö’o:ðòø i/Ð~ñ–óÈ­ƒ?Ó)Îy³³W˜h,ÐŽèÈÏõƒtÒ•È¢ànÆ 2ªRíñ= 0ó‡6³>¥Äh@%Ã'ºwzCµïq,乯¨ù°¨—V“ù˜‡ÿã_šÝÙðZ¾þ[í‘j.‰Eïxqb "È»\¾îß³µP–p±ÿå˜æjŸ§Y\¿E³"x‰?ßc™Ñ+€>X(þnˆ\þXÔÛEAŒè¥­Êcª›•d_ CB—-©&"ÿïŸ%˜l$ýWƒSl<Ñx@I;ë e„ç`üšÌ ŠOx::(\i,Ú‚w—~íŠn-­­û7 _*Ò’\QŒ|¯é¸ó¸jnÏ_ζm¬çMZ~–|rÇ$]ðMµç‹êÞ¸á£È n{È{©Ý|“!”Ë!Z`òì2ù½¨ˆtÂ"S}ÉÍq¿BÍmüY§ûIQK-¥ ÎüøûÚ’ÍI¾©ê €Ñn¾ž.'¢–Ë‚„àŠ¼ç ø ï¾%Mf0Çú‚T~mšÃ"Ýßßo”›Nðü·‘K-† k0¸õ‹ˆ¿ÄÎhêR¥e"’¦Ût•þ÷)º·¢ý¬…WVØK¯ßo÷/%K9œçZÜ6 •¹¾§ÝÈÇüí¾8¹Îâomê‹ua0½#BÅoŽivpöÔÃ`;£àDxÝ|Ú·µ±Ý–¬0EÈèC  î3l.j7Œ/jgÛtý q…9‹Ì1p¦=Ul+ïÒE#5Yôë7"[™K-pñ{ûâx îÆûšì£h]Èÿ¼QÛ×ðcð]œ|›FÍ·Ð*ÿÙ¥[R¯1‘¨CÉÄðïAI´° }ÀÁ8HZá„ùÇ *âüÿqêkÃ3çáû·œIæûíÛ€fZ¥¾º@°h—´ïÂ4ê…VÐÁ÷ç,ÐMÒ–„uáM¸Ã5î’‘Ýø[g!¶Q¯[¯Ë&¬ë&[=ìTHQoŽ»;x<2žÕ^ØRL•a›Î’@[Ù »‘MGÍ®á·×Ë[ÿìäœqµ@éâýe•Qò|ÕÖ-H°Ã ¤KZ< iÌïážs2 ÿ2èõ•8´ÉÍMˆ7'é/° ³ê|ô×ÃWnÚÜë¸@¦ä—’tg…Óªq]²;’ã¼îH· Íu{mDç^ãògŽî˜TÅ7®× 4"[V·>ŒœjÉ~¼òÏô==ŽÃ˪5+’ä£F†Ø|¨þt=>ã;7 C/ ¯FÉÝýT+™‰ˆßF:gl,c5ÖryxÖà³qú…>·Ñ)ü¾ }1“Ü øG}ñ…–N†N,«{Ý> ö÷§+Œš%­ˆƒ¤›Ñ\,µ±Æh ÌP–ƒ£¨òrÛ´6®Þ(lY–eÕŽd]ñ)˹ã B¾~÷«c E¨Ãqyz1?’ðp¬¯Ñ~gûìØHþ+bÏ™*ëB¦Ú$"¢éóŽŽZ%}ž~N„"ö¶O?K10õû/¶ÀR´ŽmL .Ùh¹„uZMÃçx$”n`ÙX}ž~ÖU G¢ÄûæN¦ÛX“µ¡IçúÜpÍ—U.³éËØ.€x$«±…g}é®Ñ3åcÿl, nRç2ÿ—¬-¼D‡ Ãyü¾<Ödsw‡§Ýt»3õB,}«5A³Ä%­áïr6ë/þI:H:óÙ‡ "§Áo×_ŒŒ¿€àö&(¤ÕtLH8ZüôÇzÁ-[DuiÜûÆíä·0ËäÚe~¤ÆÛ0Þ“`HæÏ(9Æú¢éìSL?‰QZªE/>GjÖÉϽAÚÊzØòyBZõúr<´¯i’Ý2Lb7ŽÉ]‰ÿÆv…èCT¾ÜïmG+ 9ÿ¿¹#3`Lã_ë ÁËÆ@¤R…—¿r±fý•Η¶öÅ`X=›µa½¥_bƒø’-ñW×’øËÄã­v~d-&^O8D|x%ü“ű˜Þµ ZeÙj €oy ?­fOøù-x¹³Í¹ñ>kØýeÈmf›ïÿ’µwLFûÍÂŒ¸úÎ6Ú}w5 fæË#¯W/i¡›{_^|­Oáo$VÌeWšC‹,¡|ÔaÄè€ÈÔaÐ@Q¼Ä‡~…ec‘P¥™jGÐz ¶¯9t~Ë'J>/>¤J§¤ÑbRD›r4¯tò¥…¬¬y_J9_V‰_ñÌñĶët±-¡%¯Èj)›ûÌ®"‹©¦*¿A¦*ߥ¿+L=j‰gÜHë`Ákb6ÆÐÓdÛ}u2§ÐÝ@,濈׾† L5I<Ë`Í©DŒh¿ìáyêáì«ÔuˆŸÑÆð“oï‡1ªarT½Ãµƒ=üðýáéGãú8_JAãkÉh\Gã3Z£þõCãªáß#^MBcÅýçC#Ï{•08Zýf(\ûJ…:þÆ„¿w‡ièÉü=1_–€À9Ëú!po[R¸=Õ^qvÊ~ëµVýè=Þ${¼E7î+0ø¶ð‹¨ÃëœÀfÂâ?–ƱÈÞIÁ#–Ç^ñ 8`,®•MD(Û5?§w½¬á”*'è{,º¾ä䑃ÇäMšèMk„Í— ­“µ åâÜ—%¿ŠzŒ£Àß\†ü4Ö‰ Ò•i+3Z`ÚU^ÜèŽå¬'ZYnÄ W³±kÉ7hWðXAû§.»©ØS :¾³RX¾Zƒ±¦tgç't5Q7¿Vï~f¼ûÒÒy¸ùáÀ…*›³]iÁÀÁÊ‹®XU,g•žz¨åçòu%F<ç*¼‰`ÿáè ¼ZvƒÁÿ­Ø®ÀDƒL½A»¹?hÿXªƒF« “,^~É¡€K(ù“xIs‘ž@fèùUzÏáÈlk¿ÄkÐØ aƧÇ[ˆÓg%µÂ·R“Á®%§‡ÊkƒímGÌÂú@âá'î&ÁŽ\òèúÊðmÀ¢{Üziëï'΋J¼CÙ¹¸+13 ^&.§90ûn%”å0n]CYÿk¹Ñ@*ßa¥hysùÝÍh1/¢·fáe6Ãâlk¢`%;mÊïÖ±uÝ_ÀQ,–Ý–¡eÑ‘ ä~þÕmÏfÇÒÏ¿ÿAÓìÅäÙlGy†j\*kÜ¥×°¯Æ²ueµO%Tds,aóÕl{Éž¦ðïŽ&ÛêÃ@¼Õ1›´@tñ {¤6ÑGt`øº³ÿSøÖg|¬½¨yjGÉÆ¦¡€.³áÒSý 湚ô÷ˆÉ«õm‰ ¢9EëÕ"öûÔËeÅÑzÅ‘@J¦»åhΘ§<×!|ÞA¹|#Z÷œë°b¨Ÿ}mûÚÞé:t¸{ý´í;vºù†n rlàÝ#r9Gäc£š¶ïðAXó)öm:=Öaç¾C‡vv¯ŸüÐK„`Ä"0‚M<8jµŠ´°Œh¡Uø_`6DC$Ðó njÂvœzǹY‹âÌ( ívå¹=E›ÕAlàÜdÚV‰ÑɾÊŠ%qÓ9›.±[ ‘tr°†¤! Ø]p[¤$\¹ú ¸LVY§WÉ‘xÿTbM»ß¢©‚òÜìM~aL¨²¸¡V[©fÖ¡1êÜhaÔάt`á#T¯ó;OJ¶ Aƒvø¯=?ü ‹ÉËš,:üi_ÿêÄšãP/X=§ä.š’?¿ªyÈ[jå4ö¼*öŸÔ§SQé?@³\]sáðjÅøP9Æ— w¥Ú¤Šü_:²5F¤&Kc30z®MgT.ÑÆ¯½÷§Á”ÕÅǬü3¢{TÒZ‹| >?ô¯‡úFë!WF({“íýšõ`K^îß|=\òŸÃÿ…å?„ß}îkà·'Âê>—Û×Kˆïiçø‚Ts  FqKº„…B—áˆþ“Ljã ÅJ ÜÜJ4:8Ì’Lô«Ž¸ îoÂsÓ!¬ëòY6ñxÏt¡Ä¼ìyqq³ Ž¼- ¿\X®¡DµÂ ñ¸Ñá~Sê<ÍWH0X¦F.1¿?€h ƒcKØB{.=µëà~ä;DlԊu©6å¹·‚1u’Øsƒß¿ãlp¿zûŒíUž;<¤±ã‰S½ðf"jñÕì`›ñãLpÿÒ—àé÷â·Óüž3ú>žY©ÓEÜsJbšs–]%.#âƒÇ Ý2Ź‹ö¾»Šxìx $< ¼˜´‡©üMÛ©N ô7‘¹Îãæ#êu½žz‘×Ãëœù*e!òT(jwåC'ýù§åKÌ$›bôK¢’_~&JÊþƒ›s‹¡™×öÏ(Π¹ ówkíQî8_‚;•_Â!#ëŸÚA5~ûYjÿ$oéäKã?îKˆÿ¨®qêÝlÑùié©üÇüDŠÇn…!4ɻ죴„ÖýMJD¢"¦´ ™Z]~‰DñtAãÝl¶ÅÍÿzW‚ •’‚W[ªø/ñiiýv»–&„‰¡aR–ï8“l*¡OJL ñ[!t/°Ž]‡Ùö]gœgÔïââ×Ä;"+€RÒi’©ìÔšÚ©W²=Œèø‰O5Á ²¼YÌï`–QVʘOán<0X~L/sžùj7ý§óõ˜é?¯aÏ&Í—zUp“Z„ó4#è*¿i›ÁN{yiÖ]1/¿òØ×oPÂðÎ3¾ÒÌAº£S5íüýwÚW¿@—/nwñGJ¦1òuû¡þ?íÿÚ¯ë¿ú·}ãþ?2þ§ã7~MÿƒqüÑû·² ´®§GiòÞ žŽ¥2cÌÀ2b†xü%¤7±yTÒ¢>‡ï áÛ¼¿ ¯\æ9x³ÈUŸÀ§É‹wAÙ…Â9~è©N—Ïú ¦Z¡»ÑèH¿¥¾Ãì(6Ds\>³x!ÀøíIRÅû\¾¬/ JÏ[„åÂÈW·Ÿ—Ð~¶ËgOh5c¢R¡e¿\kvÃôfù° yÒš#§,ÞD©"»«\ü±~V:€æR,eòÁ´“!’¯ò­Qù¾y”ìZ¡y]>ÀÌôc]-tÂXwy£hÜŸíâ­{Ïà|R“¨ò%;„²Cpó§bÚõO Ú&M6 ?†«¤C‹þz´ä1Ÿ ‘÷Œnq­Zñ´5³É ‹cÎZþ¥„±jWäð®*ÐjÇ`”Óߤžw˜¶ÂâÞ qÄß”ž›Vqó¦+àP¿F+ï“> ²qž}§¼Ü œù/àÿÒ’H&ÆD¡Ð¨úò0±G7ô«ödß)AÏBu–å]‡ Grýº}w:øß³SÂ3lºòv%êX<Þ×Ï¢n~“ÿ6q/°[Ü dò£SoÂkéRà-çÆû†K{òÄ»y3À:‚­ SGêu¬- ï³B‹,iqEHÜ”úî•U÷Qò i¼^§9¢<_pn‡Òo|[ÏÀ$ ê°˜…eLÊM4çåÚÍsüï²·¤Û¹ 3ÏcJ¼ÐXÇXê¨e8tQž‚.6¹%ûÙÆ×/ÇKe-Àæ×Lg¯?#0É §²l6kü7ü˜íïþñ‘X )+DÝRc“|fÿåÌÜ©^ s8}¶ñòÀ黚Ò0ŽÚà=%d ™éGt£kK\_°Jô™pnýOHºÿ€Ú³• †•ˆ«â[¾eD†ø)“™³m˜?Åôf0†^ˆÀÛ?Ã%½OàDùé)Á»ñi™æm-níØ^q÷CYç0ßÜ9 Go ô_ùÀ_BÃæÀYãZñs-þÄ, n™m¸è¤ÇU)éVá–Åêyš_JÍj•nWo!{ž°ßüJUÂüh§òŽ@…²kµH5 ðÜõ‰„Çh·ÞêßÉî6ù_A‹é·I畇_ÒyFš´ oêã¸W¦üC·rðúß [ýð·¤!9šÖF:*(da,#t?HØ=ž¾ðýÇÕlß—3¡úð"ºî(·€X[]ö“Qù¡ –Ÿ@¼BåæP1Ë¡_u¡{µpxÚùù%›}¼£¼‚! ó‡'¡)ÐØqZ“åV"6Û kÐoemqÏß÷-¡ˆëˬä1‹"£Û›‹ç€F¤~à~ _ªÎU—‡‡ö‘׉± ”í5C§Ö§4ûëá,'ï ´Dü›öHÍ?J†ÈÓiSG %„7ÔÆ‡éâŸî¿'æ7†BEå–ÒJoÙâõÍÛ¨ÿîmqÔ§Õ¡Pd‰BD"™e²'dÔ‡*¬fKŸ6?»ü΢f!òÍñoÑðoé‡16{ ˜hH$H~Óm SCÿIý©ChñŠ¢º:Ø#6YRNµÒeþð“ à¬&‡p›f®´<ÖðšC"$·ÙÙ+©R¹ó„{?@ìçAµ˜y¬ iUÕü²Yò*¨\¦HjI6tö6ψŽ\‹ÀÅŸY­-‚kùÑÕ×¹Aú¡%%b¹U<·&;{ÉD:ÿA ˆ7gWîÛÀMÌ<ŠÜš1¢&€ÿbYB<“­žøY)c©Lë('?˜Žr»ø H”1C³­‚ÕCÍ¿äC¹ÿCåNò*Ö”íµý¸~|X£xÀ„š|KÊäÇ7­Ç¸ͺė6í¥m€—ví¥}€—¹ÚËÜþ/‘¥øùï òñ›¬·[ú­·‰lª-ùÉ¥lª=ù ¬ÒÜW©Ï·¶ï‹WkVwÆHh‰%–ZdeDâûÍr” Œ.OŸkcñ¥Ð—á…SeߌÎhäB½š¶ês˜2™u„”P¹=Ôœ ØdÓq½»øõ·H›Šæ[Ù¬9W.5G.”•ŒVÑ‘ ÊøßÏH+ïgR$dbY|óöàø‹†’M¸oÚ(0y¨Òª´ÁÁ±(uA± 4Ú¼•ƒ¢êCÅê²B6X¯68yʈ°v”Ùä´È/k™,Ц³Ùڔɦ½nGÝ ¢&úžvÒ#±rkH¼ŠÓ#!@•[Ñ$¬ùo¸ÙÎ2a2ûÏÍÔ@‡ÙÙÙx¸.N=–ÿli{xi•˜H ‰þÍÖIÞÆ«@àçQaÇF] ¸±BÍ–ŽrBgµVgµi(›ö;œ“ë`§CëÌ »ü³#rìÐR =¥Œ )”ôŸoÅ^˜„îññõ+5T±4ø'äBIfSÎÅ#ÝwøL,Á%lÄ«ÞH¹xçšDP$šÿõx£¦˜Q+ø&8®àh“‡gGµ½J]¨C‚£áŠáLﱆ\ ¬ç¬tŒ7Ó“Øw;¡ïÈOµ tãôÅÅgm9óÕ‘ûÝteYSÍßß&™XØÏM£VS»Çð"2$ÚGDxVÌÍÿgk<<”EýÈãlægÍ—†Y^Åok¬ÇÍ¡ ä,ífgoãÐ]nÛ”Yœ€3;šE°ðæxRÌñ­=+1¼ZW;eAh(ˆ6Éþ†r¾ONû¿;ßÿ¯ù=yßQ|Ö[qjøŒ-ñôtDÛcžæË^GùŠbùL±0k†›oߥ¡¸ d¾i*"ø`ã»dlS&Uy”lzAŠ·ŸŒ Hú€¢ÍgÎÝ99 Æ¿ TQ BÏûm¨™«æÿýf<¢¹ ‹¿¿=¢óŠ6„ý?)š‰³ˆþºæbÿÞN ðkqmÜg °(¼)òMÜùô8)x…5x„Ø ^ß3´jèT±býÍq·q­~]mÈg[šg‘z‰„%#׈)¸^l ëÅöŸÐ_Ûy鯦Ov–[šÊ@2=66m%pë -þñ|Ú*:ð4•åÉUÚH‡òI0jÔQuζ4¾–Ä’L_ß&¤Ü:}}gûÿúœüÿQúJþçÀƒû¬°¬Ødà¿k’ùïzô»†&öO–‡¿syQ=]°9ÎŽOóò×é]k–àé¿!q5‰Œø%1â‰ÁÅÕ9ðçóͧkÆ@ó™õÖÿ…ùü÷Íÿ3ŸY—'ÌgxcÒ|~ZxþùTÿWæ3¯ê(²¿ºúúïkq«†ú~ÿñ¨|^2&®8k%5 ÌÊmB›7ÙvCna¹væD3ýþ¼šç?cJ¹?'{Q›·†_ü*ŽÜË÷oˆga·øÍuh#Ši <ÍÀa^Ä™y¼‹¿¸E#Ø×‡2è 9Ôø‘—ÿnCÜ‹÷qL+Áç ‰1iÄQs[„ ¿rEœbŸZí3ŠrÀSDË­ò°ÿaœ ÐZÆšár+{+:X»»¿Ëaá¼: øo Õ<ÃÿéçHaæ"YHÖú †ø÷ùÄÈWZûÛ§ÊýðÇÒ¯×}ÕÉÿÉ~°}?!gzÙ›Lˆ¸ÙXíñß…|DG&ê1›K‰™ñ7í¬ÒÊÌCn‰!]̬7OAz¢Éf·À’ä0¶ÄyŠïǹÉSÔð•“®ž]6¿%:ö Ä¿@’Áý ‹30¿Še!û`DŒF­n_1¬Æl¤°ÕK ­z‡YOŒj 'Ío:Ù&J¬d²c*iÌŒC CR˜ãí[¥UDmþoø¿$Ÿ‰ý-î¿›M¶Ânà-þ¹,.þ³x1ºÞ¡/¦‡‡gÛݾ™€þ£‘´·£Ã\a¼ÇgóGŠ(ÑçQ¸ Øf+´#d€»Æ£  ˆÈNåÖÚT}ÂDÔ'h1Õ'•ﳕÿºm|[²dD>F‚Å\—+Þ•Ÿãø~ú,v½KŸZÑçÄçÐg©ë}ú,ký€>§•}DŸ•Hásæñ.út-‰ÒçÜgÞ¦Ïytù~ûžQù®Gçó( ˆ#°ÞÎ8;ëáë.3 ‚Úø-FÃx—ij«ËÝe®šÐÕüª`YÜot˜Q}ÝÍù7ŠK­ëuóŵ†_-n ï„¥ÆÄÿ0ħ—Ͷ7©¢ JË/ ùÝíâ?¢Ëœ5¥å¬€¨’2¶»CW@ˆ¸2úà y'µ÷¾µMÞæ)-Ïb1ì'TnW‡¤jxK5ç*-÷â&*Ý€ÖÜñÈaóñg9^/!ˆ Á‡<¶ÔH£Õ¬Ö&ûk{üþçšÐý–XF¨Î3A5oUCçm&C’H¡Ÿ¢ó)§$eŒ¤Ü>J.–Ôhzü §žeÔßh0V×x¯Ã+>àˆ•G0ZZã”ì§üêå6SÄUÃ×Ç$A¶€¬iwö4~T·`~mDy£5ÀÓ•¤=•JK |¬n:ès%Ú©W¬^†WÐzsŽïØ$Õ±Ýô[ƒ¦¢éXX}à&³ÿJvrVïvQJ¦DôÕ‹ Òns¶Ùí›§$°¨õº•óŸÂ/€‹tñ`~ª»ß—»ƒÞ‰Õ­µÊw÷ICNá?ŽD®@[ÁÀ…Ÿé‹[}Âñáìh´îèqe„BǨ’Ö@lò _ÓÖgª î ´f˜:LÇÑv¥¤{9•Ü 2öýÈêqWGwb,þ,~3”%¯âÐTkh±šOÑêArø¿Tžá•Oáf®hAþ`ëu±¬Ï²¨F§Œá ó}¿'úµJ@Y÷¢äÚxš3âÿ¶lÜ£^È&[ AÑzGÜï]Z o^£.Š~Í_¿6žÆâ†] cRü8Å:5[ýƒpww}kˆ_[)±@I뉿ŠÄ 7ÕZBµ¶ÀÒ¸EÏ颧"Á¢'3nÑSaM”=š‹Ñí‘)H÷¥2H·g·vkohx¨fq'î„<ÚÉõ eýzý> Q,š°1ÝbŒQê’ÆlKÑL‹™—Ã*ÝBèôómÁâ«wÒhžÂ§,M¬\U|Uc<¶Nÿþo–ýÿêm­ÿ+EÃTÚâûÕƒ+&ÀºÁº f}8¸)l~uÄ!›¤r:"2@ó\ߟ¢ØôRcB´G:.*±}ìÿ(ß¿uP> ‰TL  ìüÈrœÄ¥þÑ"µå3<ïnL,á 7ù¡[TO¬Ný$ØÝ”a:ùì!çÉæ4vöPxzÌÙÞheö塹ËÍ•Îö¦/‰75„ÌÿH°*Já7u|^.ñY¾KÃçHßÛ:¸e¡$̉øËlÏÅ­¸Dˆ`Ö‰n}´³SôäCÉj6òMgµŦ` ¡q  &Ã7LÂ÷§>5GL¡šíbí|©ˆï„4[Ñ?žƒ‡O¿öËqA=×(á?à>ß89”…¬9UØs–\‰d¿t­6ýFf~‰Pf~Ù1…m†'q¦Î»èZô~a£R'(M«)wy³!÷+¡ D‰ÊˆpD³IÜû™äâu¾úKøg§ô Øl]ªÔvÝ ÄÖÃgæ“>d×Ð}¬–ÌcTãRD‰ïízJB*|·aÿÔ ç‘q&y|ã>£8=|Ý gÓÕxÞ»›û×kg ›ké †ê*þí ¤Q¿*•;7îòŠF¼|:õo¥y«‹xùµäV6Æê’ü¬´DrE–v;ÿA•tFÔ±Íà jþø6"Â&U\_X#“Xü_1tÈ—ˆ÷$ˆó7óÈ€×®WðTóËÎH²ë,i5? Âõ”° X‰ê À¹¨rN±4)ì(»¤£*Øe§žM[âg„k5üû÷É#"¢É·dìö6aæAlªÅyè#’á\ ˆfÖoµ8Ûàa[Q;j)NžJH¥a©Qçﲆ'ü£Y)ú‚YGÄŒ¡¬À:óÿ‰dÿÏÃŒmñóðïFZÏC›ðXõðDµ¤à£»ÛR{WËö^ܪµw¼CyšÔÑnß„ÏðÄéh”±hD`Q‹k*·<Ê5 kÊevÛŠªôMÍö¢w˜u8ŽÞTÀ(§?…X“5l_Éf!…À‚g˜õ*8ËRŽ?oü´n~b Nšÿà~·)­„\HÙý¶MyîÍà&¶›‡u¿~Ì)9}DÏ:ÛUôÎïºóþ¾˜›ÿ ;i&ØKà´‘-²úó -ÙÜß|}Èþ»¡b²óÍÐ 'Dc5ìGÖæ±–ì8‡³™¿4„†À"‚Úíæ)ÎÇnõ° yêôõëeKH?‡!cgw”Y„)a¢Eáà ×HIܼ&eÓÌ~à=/o¹B<$´‰í£ü†ýYã!§a'KöÃyÁ2ïÃÑËó’ Üä„$± Ù8{ü.Ô³U»øå½Ò£ÆyÂ?¸Nœœ(–™ ºÁßo=#C˜ŸÀÎã¡yhÉ‘Knê›Ú’Ä<–Ð\‡=š)9Øû•/h·B£yPv¶ÉúR .箦 œ+:çöflÈ…/`½Ìu¾/a4âe'½œ‹/PÃÜom.ê2m€þ‹ûGc„ó¦O®+1R 8á a]Ï@cóî»ÄíödÎ[§þRþ¡ L7Z™ë(tžQyù¿ iBÙ€I10ªÞ×\2ÍžG‹}[x£ĺˌ`Ác'žnº0öSÑ›mGÒÜaûãUakQؾ¢*–SŠ@3ÁVS/{—¿þI™qôÆæ›3 —ŽçO1”U^‘"d.Ч¢ãm¥…íË=&^6ÿS…Ý%ZzÎy¨Ç‚ýÐÝ|!Wؼõq8'ÖŸ7©i°-S­fçžÆ.(꘽¤„ÄZGÕ¢}M?Õâìhitº¶¡Ù`#EB^ë;¯?rùÑÆ8ùã4>nNâ/…/Î\$’Uþ/Š`K`‰Þ×c<¦£­ÇØd«æ*nŽ™ÈXßËz•çzxÝçÄiú3êDÎ_<×zŒÀªZÙîæ¼ð’‹}9Ö<„™A–ùWS&;·6~1ÇßÅLµeu!ÑX*ýÀók²v~MDª´ÎæWÝ Àœ¥àè¶haûÃ, ¨§eF(i=aÖàDâ¾E&úÑ«Ôø¶Ï^>tkZÉËDl[+®I o:¡QS%!1 ëÂP;/uf=7‘YÿìG‚YGd«ŽþîĪRrëæˆlµ éRü9È'C'^¥EÁt hm ´`ì$ç»Â[ÜÃÿö™˜xÿ=b²à¸[ä!ÎgÙ¿å-AS 0DÉtS;È<ÃY_ú§´<G‹-x…’§]ÔTŠxÎÀ Lµ5 fÕÖЄ‡cS-Ñ‹<,§ŸH –™À³qvb;þ׸åGɦ’k¤]:8ø9øÎ²8²5¥óÏ>œÎ2(AR±Õ˜kºv¢qdr¬qéíákù Íf·¼|FÏ|û¡¾o†È}ówq™Â~ˆ·áC1qÛOH+G„0ú .\Zˆ¹§¸ú©Xêx÷›Ô £ˆÞpŽl¸F»¥ {¬ª øÎà16;sÃÖÍ#‹v°^©_7gÁÎ0ÚJ¾Œ(ÏD¤ëloIÀUI4¸íý2N#š…§„žÎéUõñ´6ø>¸F¨ãQêŒiÉLùÓã¤M°êDí:з ô‰%Ÿç ÒótÑzêä ¯Ü§¯G”ÿy¶–Ôž Ÿg“éú+Š´Þ,¢Ü ½?Ï÷ûÏFHýDߺPÄÍТf´6YL˜•ɲäfg[“V›ð°7ü@ÌÙáÂÅêæKÇ"Eî":QÍw‹fÓ_ûT.úë7;7.¶{X1º:dÄÓ£{?”ÐãmHƒ•ïÿK<öëc¦X¦Œ æ ÕZCÍ6þÇgÎg§ŒÏº»ù$‰©òˆ†©Ë’¯I„Îþ¢;~DÐËÿù7-wªaIk°»Ny’T8â>ÑéŒÔx¼þÌ@Ä |AX!%°WØ`â¢è}5Ó°¡¨½­Ç.ý1ÚÊ!-c#]Unþ¨óêb™lÿO#ÒÈ£ÞüfÕÌ>ƒ-¿ÙyòÞ—œï²È} îÿÊs!K õœ³ý~Ԍ䡦ÍÒ;C#Œ{—Çm8ˆÑJ½ “þ5Çñ.éd&15ø-šW.+?GC î× úÔ!Õ.7ÿp„U©fù¼RJ؇#¥µZ6ˆ -¾)¸ß?ŒyαŒê*ÿ³¬;ŒšÏ烫7~WEAÂÕ';O"Îî]‡´™rjrñçÔØìslDµ»ŠßžÒØ«½‰åú#©Í¯em "2 ªæŸ‹Ã, 9¾íp0 Áý^ä 5F“Ìü˜$$M7T{]üƒÑo."½š-0ð)½Ä<@KÅ÷bàú–‡Å噣hš£ŽgäК+aCÙÌC[nþ¸lk8@ñoëà§ÎÑ ´fŠ0 ß0L×V¯3"ÿãy°ñUÄ‹. bœÓvÓñ®è àˆ£÷ãØš |4{‚ûÃvÒLû‡³ ÕEëz[ “Pä°­E›«Ù(€ãGÉp<%öç$Àò­2çñÆ¿ËÖŸ4ŸS8›íE{ŠÚØñ"äxו9ÛFε ÉƒÌ&ë+êÙ3¡jb\3_Ì|Í€'|¬­]C­ê(,þƒÝ.ßñCZ²ïÆ1jfEMc§&0ú`¤4ºHaóKú;ëÄ™òÀô’1/LqŒxÿéæŠIÎöñÊ ßü­OeÕ·h:ñNãú„'a6›oa»ÃVBfѳÓD†ë \o`N$"/O"Ïëø²lQŸÎ<¶¸‘}m¢ BÀÏâÓrýq=b–”C[RS‰¦ý[Ž¢,ÄÏè@ ½±Xsi5µ'­&Œ•‡ 'qþ0NT^Ó,‚.>…ÈõÒü¹«ùÖar)㋾Óöšž‰O›™Š¦ãÔåÁ´å5þë<Ó¦ÿ~ôU ;! ™¸[1–€a;ÊÌH­úñ“åoøu¬ãìP¹ø ‰=Ò‰ ³ì$×pÖZ—¢Ç^j½ÇD½°™nL\ñúü‹¦i+·¨™p¡ˆÌÕï ¿XªìMí4®4D{rÖ^ɧN ³ÎŠ+¹€æìÿ6EQnŠKȶ[j¡¹y“yLu³!lž%4 ×ã r æ@õ ar‹ÚMPZ>3’!÷8£Ò’‰8m!LÌì^’ÿ!yhÑ3Áæ³ÕÏ Ó»{ˆŒìà ʪ? l=‚…L£>C5èvrI¬Röj‡Á@Ï~£0pnlüï²èÌšŽ¿Ç¡eësE%.[UË)§~[«Ô£¬Âñ—»‚B“£dÔP~×De¦c",4…¤YËh0ÀÒvNŠ ”¾r†² #@‡­A%¥µ>ÁzõÄÖò…©Ë´Û+Ú„€Þ1ˆ0Od/8ÎK‹aÒ.(A®»ÁÀ¶3S•ÇÅÿvZø±Û )n\6¿FËÇS#YùÛtÜÄ¡Å2@tQ‡ÖžZœ‚@Ì(ö$Q„¨QoEsüL%| 1øòA ΄›2‰Ž®‹àaI+!-‡lã81l!ÝÃÂ5:&´}œæÕ b&L\c¾ c$ØÖ‹õš‡ëu-Õqb©ZÅRuÐRÍ¥ºæ-Õ¬ºZ±Róh¥ªŽ‰rû`l#MBMxañ¹Äôâ0{{ÀB pÕßžCªnÌQ-g™b]äB…Àgm™2š6± Ê”–ïÉÜ`b+(«n§U=ˆZ‚vÅї줥½b$²“‘IÄÄ鶪ðÔ £Úͯ=-·²j2´XÔ‰Š5õj‰ß¢ã®"ö˜«ÂÓÍ.½LÎë4Ç4\bÛm¢L™‚ âú" +Åáp¾"lò0#—#\s¶}»¥¢¬Ú$J”mW§„­¿¤~OuQ&x˜´RàLÃMfLf]­ƒ †ÖO<í«^¼ tkP’f}”šˆ€Æ+ áðD½S.ôwp¡Ÿ/;â ½Q¦/öt¡­ÍÁ‹¶÷ÓŠNTEaŸ<.‰÷,Ãr¹Àµ)7¦ .ƒ ‚*½‚¶#i¬·è4-Ñ@‡Y_  (Ìj<ý*ñ‹3Ûí°'Ú󀆷À¾hÏ Û¯ ÍmÏeÌòn |br® ÏlÏóg³¹ípn·††â´f é2ê2 ·„ ,®°^ÞSrva é‡`QêŠÂÖ‡±Iÿ :qqdÑn*_:®‰UÕT»ø¤“rŽš¯pö¸ª½Ksˆ(yø£´hìuâ|E»Î*/:—øp Þæ¢‹ŠÑÛ|3Þ'Zû ¡Q0ÆÀo3vî]šéÜÑ”]Í‚¹Nx¹t(É'x.ê/Ý@&)uÚŤ®/“í7"Ú ÍØ°™&c%ÿ³hÇ*Û9ˆÍè­ Ù/k¶Þ3îè¼~5}ajK²?·¢øï:Nú8üpqÏ¿u}œð:…þgAüÂå0§7«´€ôuÑ qå7€ÿëWøC¥¯‡ß8<ùzs È|Üìoަs•Àäô¿Ò†V(‡öÐ úULâÐìÚÐ"UÁù¦ð{ø Kq`ûi ìSÅmyZ ¯jTÊ•IȆIÈŽüK»Ä.Vyòý8ù¾í_ñ^9:èUü¶ÛCxaMh|EÔž‹B?¢)ö$jËl)ü¡¯ìsÀçuŸÅñ™uaùÑÔєg`âÀ˜³h|¶Á_.~¾ŽrOQ Oö˜£'ƒ’ôÙÜ>ãò}öãã,½TKÒg©[¾›$Ëëò>²2Ë(é©t"¼úàiâ§Ô` ¯P>ú)Aéì ¬Šé(Àª?/Zdñ ÷(B]ia.k‡–XBKÐùÏÜI9ZÞÎÆ`.k£Ûî™’Ÿkü·AXô‚zè¿ÎS Sí¼÷v´ú,ŸJl)-›‘¹ž‡m‡¦QE[9I#¤—P/‘ èæ¼ð´à9'g[미…Ò' ?æ8Ž-Τӳ͉e‡ƒˆxv ð™‚Ù+PV¡‘¶7;Ùoƒc<íBºß–zsWxZØà 7:&²v^ñYLOµê‚‹-xÌ×Ï9³mf.€9*ÌBgO’ýçF¶$N<ò«Âæ×]aëo`^õ©¤Ã.vÞM ©oWâ)j\?O}#›Æ×Ÿ!¢UHRXGxÂë4¦à,˜,ÃÍgé=ZÏæQFhâ³ÑbAiy ƒ9ydñ˜¯´].lå~ùÙór¿(Á&,—­ï7¿ä6¹g¢ ³•x²kù¾qþ+äλB¶T¡µäÏMjåÐ<­•tVT×@²~löïú“¸úÇׯ’U¤γÊ*'^á´8¾„Xb‹©ÁƒÁÁ*üV{¨¯Å¢/MØ–+ì¢ÀYcóØð´ßˆÕ5üÑ—W©\WÎu(]>CË7Ü"ÖÚ´ø:“P°EÖ`·¼lÇ`çø¬ ˆºÚæ«WÌÁ»Ï×µ»Ï×SÈáœÞóðÙÚUÒöœE¡J1š`”Ÿ3`×jû6NoƒÝêÍýl|Öý]#c"3¿ó¬æÂàˆ¥ÜžÔF|ß²h×HOÜ•`ñCö "ÎØ|+³†g®8çlC}êÕ Û‡†ZÍ.³³íÞOk.HRìk¾éýà»H‡ïrŒ{Œ…Y— ëß>Ay¯å‰ï$Ù%¥öçí×ß?ÿ¦õç¬fµ–j¾ü1é%é7a¼Ûû¬Þ°ËÊÞ¼•ñeÉÑðḃŲب©uæÙ¡QþPÌ·\‡àžï$›ÖiüšŒ@j!ªŽ¬‘ï°/-Ÿg¢BCü¢üÂeÇ…‹ éüø×k4?½O9”&Åt?J+–Õ·ˆ¥+è6ùAûíÎãMãX íE.ÁsL³N㣴_KmVŸAرÕa­tËïŸsüísf~ÉNg‡òä:¶.z5ˆÂÊoÛ¢—Ò³ÇðÙXzö˶è0z†¹L¢ƒèÙoÚЂúó§ËA×ÊQ×b¼õùا·@5ðW ߇¿{ᯠþÜÚ%8ùtÙÅZ„»®JSñÿºF‹†“Ä䶈°JD(Ê;HkV8§¨¹<¼á=íÖ-‰Ïm‘~Ä4ñÎCðÌKh­v÷¿•¥lr¹ZœW¥å£žf)öŒ~"ÒÒ?¡ à×ñØù–Þ‰Â?˛͆»Fç+Á¥BúÅtÞy.A‹æXÈ Ž²CûQ°Á€MhlGèR[ƒ_±SÏm¸ø˜ZRâédû°”’‚¢9S5›gmÎaÖ_ÇŒ!ë¿LsÉ"« Üùyct¾¨-ÙnÇ$$1ï¹t÷w23äî,0OC1”ꢛa«V¨Ÿ ¨ìhû¾˜ØçÔî}@‘ÁÛE‹wwÒÛÚþv£¶¤ô+À—štüþîtÔ½nJÂïÝ&¿Æ yM ø?HµJ)‰‚oµhÑ8òÁo4I7eÍ'AU†°°ë/\Þl#Þý@h¡ÆwV¡V;s?‘/¢ E”Âà¦%x¥‘4"…ÁÊ##)mÓXâ‚ï)ÏŸŒº£ðÌ!±SRd ›™ì Mæq½qaõh…ì«›ªÅý>@6÷»= ¦=ÎíéEí•ðbª•Lpæ>ofÛªŠÞJ0Â@Z⯀5ð"Þ:+ϡް2­ØèlkÃbxÇ‚¶Û‹ö° ËC~oËœmÃ'rÌEÙéЭþå6ÒÂÊSE Þ_õ …”¨áef£°{ËÇqîóg“-.éøÅ{E [µû à«ÿKØJ éËt“AÍT ðGa*0Ì m ƒNOá(îø#%h*ÅÜ‚ýtù§ÖÃÁĦÈžlzR”®ñµÜäK•ÈÓê& ñ„Íágp>föšn†²Þoè¶›žÖljСÍh}‘ âÅhƒYG²,Ü·“°¤,”æˆï㎤‚—‰õ`^3°“†÷w½|c&ü4ÐÅõtÌC¨(K®Ìj¸øÛ3ã—ßøÎçd9(ÐÉÁ0~h&‘ƒì8¾=À…æ¢ðí«Ü&’(äQÀËHT?)ŠÔjZæíMõTÜÞô—Yƒ÷èm:ƒçõG”ñ¦ÿ bï»h9þg{ÿâõ^núOâõÆãç4 ò̼brh¶ól&oÒAGgzuH(E“)Þn¢>Î×y wÒKŠa8 :­´Ì .<¡r+Ÿkçlû@ú0ßmø:^¿:-5î7?Åo¿ÅÜĦX‡áð³Åðg„nØ"ÁÖŽ)T‚¨9Shè©Ç}Š=ÛL-<êzÓ'M¶4%!ØÝ%–`ŒjJ;õ.¬×mÍ„ç.ʪÇýe™ø$-¸iéÎmê ` Jì129Å'{=œL,§þUžÛè OŠ)yåy•E,˜ÙÅï<@¼X >e|f,‚ÕÔR¶h©Ýžk1Þ-UñÖ^ÙÒÈ’}T/˜ LµdÛž¹ÈZ´½¼ž•fÕ‡&ºÒf£qwª}¡n˾F”yêÐ+äëcªõ-m\)‡ÉéùJ@®×yd¿ȸà~ÖTDb,Ûý-u´ WŸ/ÿ(¬O}èš¶.%°ð馯ïC³ínÖ®f±ô_ѯÿorÿkÎÉþ‡èý_ìW¢šLÍa{–¿'ºÚö©hKƒ5Õù–?è µœn\ˆ<šR"–S¦ç ¾ ˆ·p êOó„9¡ùs¤™¿¯ôHf#†ñ$néf!K‹ØÝw˜¸­µ‰Ð²nÉ¶Ç l(°yßÑ,~©©kC+V¬8ÕeÚ!WÛ[ׯ/«iFm¡mó$/´Õg%Vzö‰$¤ö«¶¶ƒ@‰+ŸxIxNžR¥S À„Ë…¢qBXj /1îkå•CÒQµ’»u‰ ”®etvA•ƒ¢úá~š6Ç¿ O²ƒDpª-§Þ UÃa™ž9žoö/†8C§gCýûo4±ì{@ìJZƒ›Dh¤¦ôÀ[±SûfT/© ÏmUÖŒfÇÛ+¦ël‹*Îwý#ÅÖlúx®K‚±¥™FkOUºfÍ£é1– [6q%1–Q]<ƒž)­Ha°‡¿þÍáj+2ôã >º:Q±¡çÆóî“ZcwÊñ4IÔßH?œok†wÉbp7ˆÁu°ž¶ÏgŸ°68ŠÍNÕ—}Ž<ÌUÓ,ÔúäN½óK=üËK1¡é–£CPÅN‹Cà3µA^[5 ö&®¿YÜo¬_ü·Ö]ñ€s·d8Žn²²æ\; i†ÿ‹óLŸþ;anÓ'á¾_ºÏŸôסó¤d¿i Ïcm‰çÉ ¾j2Ÿ‚eÚ<±dS=›9%Ë^£]BëÈm?ؤœ:Òö‰É¹§ÖŸ‹Æ5f¢_“ÕÁõ;x=´Ú”¨ÜN¨\=u£f7¸S&WñgWñÂþE^Þd[íUí$`t†mhóiEÄEm¨È ß>’žà‡pÃCJZ—ݼlL+^}:@Rjrj_ð˜òXkßFOI÷%1$á;ïðNÌôg–›N;¿¸÷$;SÔ•Óg+ÂÖÞ!PJçò3¸cî#Õ@Öõ/XIDw]U2ÑrJ’—'vÃÊߎc'uù-²‰*›‚±×p,,rŸ/ü-+‹…åE›:|ù¦i7û¤í˜(4üØõ^ Í2ø‹ÀiåÞ±qª=8%IêBæ K¦Ø>Çÿ/à Ц Î/u[WR—X+¢fRè?‡àøyÐ’pœ_ž{oÿã<[çØðøƒ`ëR­ôõ8š‹öÕtZ6‘8¦I k`–xb£ ¾Àž¬­ h*7º–j)Á”çU3Ðü,ªH!s\¸1-x3VSBLl%ÇÐÃAùe+Zo†`úÑ`‡"˜ÒÊQÙ'”çã­èV1Nx†áeA…¢õµˆFS;Àü¾³ã»> ´)ƒ÷ 8{Hœþ«1²MÛá¡èÀ-?qôô)‹‡ì8\²¿\>R¡L ±h[à´åÞÑÎ…Ž ‹\1rz Ëb:Ûö‰ž" ‹?bžÜ@kZ9ÁFZPòÉY5—òÎ܇²îç§‹oÀ#i:ÌX& j×áÁÛWŒ4V ™“ûÁÖû®G½?¸ KÅõ¿i²s£:]îA˸ǖI÷Û: åd @;¶í èpHÑI¶ öÇŠLÓÙþÓBQ…å“Ù£-n= Â¯"ð½¿ÒÕCt©ªíÝ&¯¶gOuVæÖÌEÕy¹fÏüòD(稹ù îl¾@YsOßìJ0i€seà%ØŠEÞm[z·7&• ko‹øÿA‡w:²"-5<ô5¤i„±D²ƒéÏøG ƒ¯¤}¹M ¡`„SÒ‚Æû”qÕÃ1Y!ð#V½)`ÌZÛlþÑM(ø)Á ›(Ûò> #ïÒï³1ivl/·ü [ñ@÷J¹€Ví@+ݘlõ¡Y±½‰©—²ìgK ˜1ñÝЃFJŠ«=x°@žƒ.Úe—Ý”0h‘ ‹o¾ŸëÈ©»•V‡(*Òt9—&ÙïœÏlÄ/5ù3ÛÃ' gCv§©™¢æPI,CçÙÖ·ô¶nÕý@Šd[7éïF1SÌÂL)J ò8ÆL»E¶ÕÐtƒt…5b™ò{Òy™LCfG³_dêÉeobïPüN+œ7%ÇêÙ¸!õ¦ËA5m@[K—3¹™Lk=¼·Ö“ ÈÖzº{…mïÜÑta½Éì¥çdf"dh([šà‚ìè~ WÏÌŽ$—wp'Ý iQ»šU£ …ò}Ik=3Ö™‡”é?¸ ®žµiGÌF'[lAgþ¯S÷ìˆJdn‰0è99‘‡çXÃS­hLâf{øm(á—XJLEf{ õw‚;Ùºæ Â3½ÀÿN‚QV»l…Q®ƒQâ„tb†­Ž$/r`té…ÂHR‘iâ>ajŸæÈ0èœÄça“øŽ\#}S fdÍ–=“ј¬?hUÂÓ,±'NFƒ v*¿l« /´¤×4øÊ•i¢¼4÷g’,‘ñ„ÕB21¶¶CŸæÙí3LéŰ+ýƒàIqןÐòÅ îU‚ÿ#¬±‹YÛ˸Mwô_s®CP¦h ØKŽ!½ ¬lëÛ¸bšcx/MöFh¾ÆÈÞ¦´3С¬„"Ef—f`Ù·iÙ‘ÓËÚ®OC WûŠ!lsÑ™]ÑJ'oTÒê<£ü¦5 r°32¦Mÿzl KN‡µèäh]Þøû.Ô£?⦄á@ÄúgòX ¹}’-ðæ~8üyb}#믬i…¢S© ú)¾E"áæË¢RÆÆóØæQŠ‹|ÎÒ,îæÎ^Á½tÊÖ}}då7ÎZ} –›_ùþû@Ëî„ÏP6þâæ§á-Ç=ʚȧÅ+ßdÛW®ë^è(¾bãìe§À\;N›¯Ok›³"ƒ½£^<†ôb§+v”â^ àÑ<)Ä´ =Î_ô~PßB'7¬Ôu³ÐU¥ÖFßHòÒJ±Á‰3ñ˜ÍŸ .¡F/ IJԱ¬ã‰—²HÛ/ž½l]±óôŠÍé³ÍÅ+2`Z‡µ´ª¦Ù+2¨áVTÔ‹`?¯²ÂRVÞ²Éß]„ÏyŽ‹nù Ëi•báZ¹D}yfíÈë.Ó‚l¥Š£VŠ˜4Þx ˜¶Ù:¶ ÕáÐߎTwžÆßDOVN7”NZjQ^o ðâèˆÒ;Åwo4«trãPú~}°µ1Ó¹®É4=º=4ž,ú#R¼%ò˜·«yÂã±/PãtîÝc*ŸmCRT‹Õ¨[|§-zéM³øfu2Y®øXR¢ßnHým~Ë|ôNÁàièVR²i–“‡ïµÞ;weaÙÇÎÀ'ÅQÛ²3wÂׯôÀ'Þ¨)ðÉõ»Þ|ƘѿÑÎöj¢ÿˆ@{ZÛg HüÐÐâ—IÞ·©õ¡›àk/Z®ü’µíèqFšF‰ý[‹µÕwdà†‡2ÎHã1ö`²Bÿë46¡Àë]¶nAІø7²û#·]8V-´MáPVÓ½i0¤^Góò„òÐÕší¥þY™ÑÒZ­.ÒìóÆ®Iyq£[K `YYn,oiõˆ‚òÊŒÒ"ÕZz¥?[“'ËÅcX¬c‘>)/n¯J­Å"°ý®\vS±ª¼†‹>z£è(úw(SºD\:OÍ| /Ç¢¿†þSQ€Ûæ 5üÃDsé<&  O7xÑ%ÃÿÛ×ç¼Ýñâ¾c,Þ€^îðZiÉ~@™1Ì&&­ sF2Ú\è7–ôÈó:¿ÒÒä>FCJÔà„Š)µ­HËD'cL²)pD,F7ù¹‡FôcQiù3Ž)C ºŽo¡Ñ [hHédeÕ€Tm)«®‚_Î Jø2| Çöš U.ÖÁ§ŸŠÉ<Š–çßòà~vÖÿ+QÎï²› JËM‚rÙµ;çµ$§Æ®í‹%„uŒ'^Ò+ þ®0ö»R–²Þä£ç³×Å ó0f&…kóð÷ê¤1»Ý&…³a’<¬‡·ÓK›ž,EŸU‰^<æØêßCw©ü9¼I$ËÅ¿ ±7Õ~ƒÞðýÎß û«j=D‚ŹݫæáÛŒ»-¸ÉoÅdÁâ»:½h;Û-A>Y vU&E}‚Oi¼ 8g¥Þy¹ú™²fæT«²f¼ÜÜ)*£·‘ºV² ©[pÓåwýãÁÉûD|ïy]Ê:ÛH=}Qxî-ÖÉÀž¶Å†¶V–Œ$hp²&ÍÔAÊêë€' ôÄjabðâW¿¿Å˜_lžcô,täy¼M–Sû1íp=¿m¬ÉB¤åPI·ón¡&™›/„ãø,å»çI|ðÔøà=G俲U\3æÛÐÒA÷uÍsè|_Wt0<ËZ´Ù£fô-ÙYÏìƒëMCQàøûLjÞíNµôÕw<øbØÜÛ ÝÑt*匠 ºé*t‰)ê Ϭ°2EêMv¨ *56ûûÔÔ­þCð¦BÜa&0žÈx>ú5œg¿\”oG •É:•Ä1#AwöiùwÐ# JÓhbˆ:ØAõi‘Øñè ÛÀN…²E$ý ìy°[Y…~x ÐL¬w*jÆî·Ö;ç.¶.F­Q[ZKå¬ï+o#/?,'kÙësOLÖ&tLSZ¢8YÝÈÙ6›m(а®pµµ(ÊÞ…‰±×“Â媴ú¢mõEYuih×OÏ¥tšy`ùSÀòßL¡ ŽŽ’®zšœ×µøH,FM×…çN¶BwmE0›Ô :¨õ[¨ñ9þwdÃh…¡"`‚&[؉i;ÞŒß#ÒJÈòVó›ÈùÉÂŽS¶Û[ÍÕzZ¼Dꌉ<´‹€óÁ?á?‡ÿ* ¢Üˆž=+!‚Á‰Á8Ä`Æâ‰ %VŠÑÁXõà9©‹ü¦yŽ\°âÒ{¢+3¢¹h‘ƒËuަ6å¹í®ÕD—f¦%ºÓÊ5þä+ÉÉ¢´Ì@àËŽ#°q»ÚºÒ¼xñsöÄ_ÙVX±ãGLΓ'þ‚›‰Îÿ Sg”Gv£zn¹5Ð>Yð¶‚DeMsŸKF%‰%¿™b‰|‡Dÿá e(Ó:²óß(ÖtWv|ìü¢>48|kÚâñÊšʚ˕çöšxØ|Û®›`àv€®A ç÷âÅz-\¤¬ -Æ Âk´!vKèIŒFÜ'¨°-Ãú³¤ä"ìʪ›„,nOæAÛ›/ϼ7 ù·zß>S,u Ø:TGæÒ-a² T·@„dÉ•[›‹~á…Ó­È¿ô%v{¶h3I0½X,*&:[à3obI÷ D@i¡4‡PzË,’ôü¶OƯEµb²Æ¢¬ RiOxBÛ¦Ñ%КèÀ[:ç†{ßaBê yЯ',5’"`ª#M¢©Ñ„¾Ý]B]jÇðÚèöžÉH­ˆß kú*vF–¢óNÂ)ZÁC”l,“Òð;rÝ~°Ö@iw¬ pNO6ØI•vnÓê<¿VZ—PPµQ©ÉCuOMoØ:Fx޶[ÃKÐ ,/îá £7m¢·auž5Üd•¯Ø†Oóæý0ì™0_¸¦ìüGûiõ8€Œ†Ò¤»çüÅ@þÓÂy`ÜÉÚÆcÜŽú›°yôù¬“¬iµqc£[pèiÌfÃÆf;j¼8€f«¿9éDŒT'Ÿˆ#µF¸FǺҲՠm|ÍÖ{é%©±£ÒeëºëÇ+Èé!MìaÕeE„£ß±@çF ÓŽwh…/ÏîÕN̰ÇZÅÜ–¢íUÌc 7N¶òÉŸ@Äá'ß gc{QÄ´KÌ=1^?½;&$ ® ù%ùÞ–2@’ÚÚäQ³?Ê«F/Æ£Dëo:SsíLK×i„§6™yø¼÷鲎¼#H;áåÓÅ£bíVŒÌ}´Û´áâ)<*ÐîÓl|øÅtƒ•IZ§hZÉþäüÉÑæƒû• ^ÿè·xzCcYŽJn+'ðêä‘‹’-¢è"XKâ¾Pùé24ˆï[rÿý§š‹¶ºÐž6á1÷ÝÊà>¾ItˆJxŸ˜0¾ýosSoµJ .à Õß½0Å‚ u>dÅKʼnfÉ$þó4ùÚÎ~Æ“^È£§´[)K¿˜T”X¤ïN½òZâ‚)Ò—˜qßøM1C„RÔ|¼W¿£Œûïú•åÍ¢\†ˆ&æáoìÕ|,°OIi*ïÅë7ôðGô Å+ôkÖ·7n¸©Û× M!›_¶±¶D}qñGã?š ¯e;çÖ¾šO* 5BÖ4}Çßì‹Å390<Á-ã& ä:·ƒFn7¤šßu)¦‰LŸMJðl`*pI´¦»ˆõ¢RÍ¿»O˜äôÄü ·ˆÛí‘¶r8‰ò9|P¨›þëãèû_½>(b‰ÝÃ_€5‰²•9p:æÌkòqÊü£aº65Mš®¬|‘zdî®4£fòÔ%½ÚL;PÝùEÛ§˜¾`{~°S)Ú +uáòcas N©šŽ¶Vy.ž÷vÚeÒÔr¡ÂP?ÅB¬[°»Ù^Òʶíè ?gäðMõpP¢ìÕÜß|òa¯5¬Þ|1Ú2nÝõ¾@óàˆÆ¶Ö‡f÷§9Lj¼< .œ'ƒððªM»%‹Ý›,\_FmÎt÷¿ÙÉò5é5§`–ÜÉyÐûÍ¢µ.ጒñ^t×BŒW1ÎÜĦÑÕÜ’Èk,ÞŒNs‡01sgt(3•ió‰&E!a¨i´—oÃÀå=/iu TCÌ2@ÝU(3Ðw©&!¨…¾ZuD ¯Ñ?«3Ä×7©S_¿©¼zg—zýò“Ø`ôbx«^o/y½z¼üsÚ2N[^HÑ\Iއ>P«³‡Œw,6l(´àÏÃ5;#Ài|%oãÜ.y›Ÿÿ]çm —B¡ -é† _ŒîèEáYx«”WÔÍ¢ÝHúO'œmMS‡²ÆlS·µ™í¨JmÊ€gŠ|fDNô^ª ôÖªƒ½þìÁë¢%ë¢i¯«ËñNéDãŸpn ,š’§„œL’ ÙHZ@…gÖdÑýçyô3Ó-BàϪ«eP”ÞÛCAuç’$æM†òÊ‹|0Zß¼Èyåë·}­|ÝHwã6oÃ¥>½—އâA¦öÌ"IlõùúŸûô_ëáÎý/÷ÿö»ß¼ÿFÿÿÛþ…weó K‰ i)a_¤YJ\ˆPäQ´±%¥†îio…MD-F—±°´˜]Ë N'£}óð[$ÑXC,áÝôäP²ƒ6ò áJ¤?€‡¯ß!=¼!—Չķ¹ø˜QZpÚ y|׸—ÌeööåÏÛ¤%}„x./¯¼M{ Û[¹ø®Nâ˜ÍÇl>hvh<¢ÂOޤN3DPx%¹Â»—Û–¸¿ŠÐ—[\|ÝáóêË 6ÿÀï%<„^i2Œ*½Å0ŸêH ³„ m0ÚÜ‹H>"ŸÉ5ùõñžQù>õÅ*¹íTŸ Óò3cxÑlOߦ› /oÍããÙ•gtËäJóòÓ[Fç« >üpó¡?Ô&¹†Y¸:¿;&_½Ê‡.þÅÝñp.¶잿+G$†s±:HO8U_îc½3Ó»ª@«½ÁôôýM2þÐ8ÎRírÓÚãoöÅ´˜&þ4Ìÿ£©†±$°á"?–ØNìV5°[rù£{2©–P…¥ÙÎÞ WX‹Þªgvc}ÈhE—™d-Å<‚æÓÅË·Äb.ߺùÜÙ˜äÕÓ@¡*­Ü|Pä -%ýq&fÁÉÌñPŠf CÁ¸²fæ²&—ì\‹æV§>o0(kŽcH hd®‡¿~Û`ð°8°îà? üè÷³8LÀøšð2@i™b¢ÈÑ€ Ë)Ô-çFÍø¯Ðì±ö¢ eçQì-ܤÉÿÿ-ø,ᙋ³0`¬¼Y€¹>kÑF<Åd@´q𢒼eÕiÃ$xÞˆi)ð Õ^ÏîM#^Il@õÝ»7õÝÁˆãüÛ€C­Îªw~¤„Žõزf˜²¦Ö)kºJvž:©¬ÙÛAYs9F–Ñ(k¶!ùSÖ¨‹-mG¶¯èÓA ~¦øYlŠ:OÂ` ï»:š)1PË0 47u}búÙž¶S´Òyòþ!, ¶¹0l#¹cþ5uhá[ŒÖ7aëxçæ¦Û0J™²&KyÃÝ}¢„Íã•5 §Z÷ã¼8¤ ØHQEÏ´±·¤Þ2¦Ô‡“ tSt†x ì (/n|å ÓIççMC”5s[Mgê;¦-¶’ëÖLÇ8à’BÆèmˆJø<ÆÉŸ¿+Mˆ&G Ý*ü±@ü —^á<ÛT¨¬ÉWÖL2Ëëd=âú«>4 ùä¶eŠÐ:÷6n¥aƒpGòôµŸ3«í`òBø #êŒÝD;—®}½¤ÛËë' ÌÅ¢B°ÞAy7Ùɯu½;&-²¹ÞMtW±ÿç;¤;»]Ø õëO÷ëJÚÒɪ ¬%®-J#PîÒDb!¸”ÒH0¦If¢ãï’ɹÔÏå¡Îr‘¥ä˜ó$Ùyúê,΃ðc¿óøCî4þòšG`HÖ¨¤àŒì©»Še †#°ÊŸ/ì<é'Ty5u \é7Èm|î)"Gu’óò³'d’È‹„­×9ß\:ÌëâÿŒJ~ɳÁ* S8$ä>£®½n¶7}"cÔ(«q·7’ÇŠR#ñð™É,“)’®Kô¸¿½ªßô …èË“M Á0½[Í;Ú Ù Ÿ”Gš.è¿Ò'Ã9 ¯‹Ò²ÍHq°P‰ú¾EÖpã_­qíªËžv¥á-EmEëÔÑa«!<·!#\ZšqŽ x;B^y†Xà ƒÖR¨‚¾{Ò—NZM£<ÈøÐ9)[QºÓõ‹©ï¢vu$vÚx¯•}®õ¸Môx¯%ÜØ`eÕ–¢“žðT+àiŸ¿ú– ŠÄ+"‡Õ,ǯO.£¯H¦Ãrsõˆ>¥eµÔ¬öÛm)·0˜ ”«J ˜i›äÊß;2¥h/õý”`ë­ÆiAŠÃ-ÎLK ˜É[%xL RŒ®F¢ °É&ƇE ¹‹i['…ŸŸ7ïúÆü¼‡¯AóuÊlf›€Û‰ûW~•¦6•ÁwWË{ ‚Mš ûßd&cŒÑ«uå­‹ï°ã&ÃÄ;Û”U¨í!™Í-‡zî­YÊÃÿ…\èi£×3^+ßj¥²vMüwó¼Ýú4ú-u²-8±Ö*¾,¢UG‡Õ`–ŠCÝzaun¶Z2ÔPžlÅ´HÊ“mÎ0jMgJJLæèúrkG‚=tCˆq¿Zš µ&\p°VIßû-ј¼‘Ĥ²PFÈoõRæuzÄÄ¡:‹°/ø‹QjT«ÝúÔhq—ð)!uép¼ÓÜŒkµ'J}D«½¼ç°–I Ÿî²›õù/d28F$N¼òÓ»j0òiëè>DK ®Ž÷Tó;È€ùÉÙ`ó̈ŸxÑ“I2S¬çÒ—TBרБûÆ*Œ*)—`ÒjËšuäUŠÄ©?ÿÊýñÁ[_»?TÒ‹YÃä*ãflŸ­Ï‹¹di¨-)§vŠôûòÿ׳úÀã”Wn[ w7\uI zaX_d`tÉCýDïÀ@£}>xŸÞöŸà#V#(CÎÊÿþlÛ¿¼±T%<"úf@zèœÒ%)XI²x¨ÓVUC¯,gPÇà=Öªƒ—¿Wa2ÐÙÒ`ôòÝ(¬æFÑÎØÚï¬øÊ\÷ÉýJ}½Ž‚åGŸÆM^SrÌÃ^p`Ìp/{Õñªð¬ËC\ä‡W,¹½‰ðW e( À_%üÍ„?üÍ…¿yðw;üÝwÁŸþÂß"øSáo ü5†žuà=|´ˆâc•øxT|<&>OŠß‹§ÅÇ3âãYññ¼øÀ!pÏížè~U«!îG¨´üÔ »“}¶@S4én;wJÒ.ýÝ$ÕR‚Üž=Z«ß$ÎA ë. &߉¯šåëðyMxMœ%h 5ˆe üfe…Ä ßÉDÑÖù#¶ÔQEÁÆÁ¶ÐT Ú&=dñ¬ŸôÕ¡+žyEèêx×s}$“å +§ØÕŸ±Á½ºGîleUûJÚeÈÖbÀ¬’nу—W½‹§Îòô‘1M±z,ÊOÑþ¸’$„y¨úØŒox‡R=³ÔãýÙ†2ƒ¡¦†ûºuƒ1¥¥5&ý¯êiå|Šê{¨z½ðĸwó®S:ÜŸ¥%VŽŸ‚ ‰µµ—t#§SÜ«Þ‹Ó \í±“ ]ÿû<µS»F¬‰®ïZMªgFõ®wÄsΆȨY)FzİÃ/%|Øu 0›nB2Aú»ä²¹¯»«øäDX¡D6íÕÖ.£Åðêà›ü" åD¯íÖ¡F“Ûþü…T¦ØC3±™Š@¬@Yµ8FK·®œØ©èÛ#¦µP×× B¤ž”51N'šº£zLVÂŽÙõYàã JöÜ«_& ¦Ô8ðœO“ˆo¥q\–9 s=€ú'õAœ6œwÖKº§Φ7>'ÏB@ㄪ~æDBÏë ÏZrÏW Ãèµ)ÞkÀ00ÐÔk`¡£ ] ™ã³]˜4Û…JxgŸä)ÅŽÒ2…Šéä®e¯Õ5¼`oÜ2/up]×á3dèbÃøöÊý–8Š’c]¯ŸIIÜïa×>sµ5ß«¦ÚË¢¦@{Ë^tvT>»5»ÜžØ^ÒÞª6Ÿùìˆ|úi©c‘ÚËQ¡\Óá0ÖÓç®­EX½êMÇ{ä øà)üýN,}ÙCð9?–¾WÇÒqADo¥wâçÔØ4Ê93‘Ú¸6–ÞŠO¯„'¥ôäâXº zˆŽrã¢9ðoqTaÙ8p7ß~”’5'böJ ©BQb7ø4AYßt¿@-’Iìˆämû‚Võºä'júŠâÍövWZÊZ6ùO­ ´¦%{àJògûø¹ù¼¶ED¶¦±=èofœ¼"mJK«$Ñ9ø»ÂX¿zêW˜3"¿>”Ùu5ËûšžÄþB7è©{ú2ØÓÞx7]G.eB®¥lîme¾%PÅšÐØ6œÝˆ/W#²ª\Ž2olQ ø ¬G]-)  l°DmNµî* ;¼¡ˆíS{r=/þRÚz¾gvŽÈ´–ùžKH1oãÝPÑqÔÙ¤+q5ù/ðÝ~N£-0Hç5{ÙDƒjÑ~M‚M™P¸ò|… ±°ó¤< ›FÂzGîîðÏGå;§9¦)aô‘bæÀ•ãhã¤É£´ ÷Î8ÝÅä*-¨˜!ºV#蚦B-ðOe×’uÝÖÇY& ÑŽDqî"¸kªpøy‰ÃOÁóLGip“:‘]{/NÚN©—=èÉR‡"³êÖúFmí±!+–ã P7Hÿö°ÑÀ®|¾× N‚³ÑQ©>(Ö…pÇv³kç |Ag,çÑL`]½¯Šíoé¼6ï¬Ð6˜¡¨ ›¢'¶‚hQ¶¢=\Wâ8‚<1ê JËaÌêÄ­ØVNacƒÝÜp­i¾ö1£au«þi û „ŠÄ§´™ø˜Lÿðnîr̶¾ ó–oƒ.€ÀgŒ«‘T‰ðع„Ö³bE®=;B`Û*u0ÃheT>…ÿv˜/À{¹nˆÕ ·È]‰î°É|úiM óc b–ƒ¯C¥¿À™ nò_N7Qƒ%hn„mÕY‚ Sx&®0[“ì«kyEµ;´jý6\JûÓnŸF¶0NteÑF7~šFb<Þ yrD0æ÷âM©÷HDßCRC®è–LÜ«%r¨—ú|! Iÿ˜ žÉ/9Ý‹¦Êr1õ"`cU^þÑ#°LŸzwL·÷Ô»Ú‘míZ¦oSµ„Œ“gÊhà Æj7ßË‚âSÝXIÔ«WAõ½ÕH€r£Ó^4E®ÄªTÏ¡eÖ–2¢i¬]Ä~ZÆxªUÈCŒ|?f$_>j®¹)÷hŒÎÈdZ„þ—@^ü2*½:Yv8I®L©Ì£÷8Ž ʨG‚QÅ»¨C«Ö! d4h¶=ÅÛ»ø¶Ìüøkœ—™_ŸwÀßáO…¿{à™>³ào"ü•ÁßløóÀßù™ù†!ÚÆ!iCLCÌéCþË„?Ë øï¬ÁÖ!Ù©÷kŒxÊ™cY O(Mç)tª7ÜlUgT׸ø•³`õt†ÿj~¢ÆË?š&ãEZ‘¸‡Êí¡r[]„e®œ‹æt¹öð´B{h¶ ^¬ÊÊme àýüÄ &èL“=°3êP—»Álä´:`Gf,™^ÍÆÎƒ™¨ _ćÀªե¼ž)×GÇB³Îr»:h¥²Â+·E­Êë#«ø´­„ŠYþ­ æ'xmVëÞˆí²}ÔXÄE\stŒl,sE®lêM7?-"I²Œ¶³¸ú‡(¯ïrU .»S%Sì¹8¾:<Äy›2a¼ÿ/ú@ë:Êv¹ÚÎX”××É—ÈVöfÛi‹À’eøIu¡ˆMy}‡„>¹®-¡®êããÎã~Óåþºqïªâ›zƽü¨ 9ÝÒûÇäãî ‡p‚˜j!¿CÖvãŠáƒ74ÛÒlí(7ãºx¼x•Šmš$ w5Çræ‰È¡]n,! Ün(È»n‚G ÅüVÑ{×UðsyŒez³ã Ø’˜ ôÝ0›gÉ>…ŸÎ1ƒw¼êxoY¨Æ^Ūù&áSÖõ7 B`ùv"ãã <’ÔÀxlà!l`<_!XH `F€xåñf%5PŽ Ü€ ”ó Ù@5ðARsã X“˜‹ œÎ„æò ÙÀ'™ƒôGiùC¦‰jú =¨Õ*­ i3/ÎÔµ™ÆËdË2KÄ2~õ|øÕÅ{+õ2u¢Œa$–¹D~uñ}ñ2Jº(ƒUJK†H¯.þïxneЪJiiÀ2ÂÀêgñ2se‘bþ= p†_]üîx™-i¢ FÐVZnÃ2"˜öŒx™©²Ìã3°Ìj ú…_]ü’x4º_¾Ô|‡Š)AÎÄWÃwô™ˆŽ–Ó`i7|waVÃwøÃ"Ê%›caí|*æXáÛ+ôÍßþAßìðíð[E®ÇÅÃh·8'Ïãæüæ-ðT ÿÎ ¼¥üÃs áíwéí8x;ŸÞÃ[7½o+èÛÄÀú2hülÜ[ E‹ÅUB×Û0 ^>eðÉÕ Ø<—6®ÅŽk±×bþÁ:Ékol8Å`íì-~è i%môã=(×õýt‰¯\WÃÍz»@'H¾5]_ÀÃÚ 7CÚ›«áMÃÍü&Ñ—ötLzû åCʇ¸YB)óIäº(©™WOf3·µ7&b\ƒW¦€agIwT˜Ì„¯P¾¯a ±z¡ËË/¢À+ló4øûg2bŽÃ4@˜æ ˜æóE=bEüVÛÊÿ –ìS™jŽç«Â„%O8ÑþTçÁÆh×E ØI¡è¤xyÕ•&Šzl†ÎÞäÓ 3̰ՉêŽ+Ë„aˆ.æ[ýŸva† /ßò±~w¤´´ h*»õØ­_tëçÉ €uên7@öÚéû¾SKB bD´ø5^×lÊh‘‹¬úßhà6Ì2‹–^ÿð•^¡÷SK]|âUºóˆ UqKK¤UH¢¼RÕußxr«øŒ7{AÔ¨OÁ幘­ü#h-5ì©F'r°j|°SâƒUq°×4¨ÑK¿áVYÚ„”ÖSq¤¬‡W]·¦‰ieWb+j–«a JrI--á×tˉýó/ÎÅÜh|{|&HOÈ¢WWñ_TõÑlbHú]7^»%j)Ð*SǸªEW¹É,Ë 8ÿNÊP÷hïèÈ㣠c/_¬õú öÚƒ ²×ÍÇV‰ˆ¶”‹|Ù+‹¥ö;Jö«·þ ôÖ5Ũ͢ˆ—H°èEÇ"˜v[…Ù{ÆÝ‡IåPü‰Lðcz?€ËzÁ%%à²^ಞôeœ­ú‰‹ä‘8D—cwxûWÍ_ÿ2CðÕ/΀….€…¢Ÿ…¼ùˤðÆIÜ„MæSûƒû›Ý¸ cÊhô¥ˆòŽ´[ýÇ£7ЂXjÁÖ¿?`ëß­ŸÈÖß‚îÂËŠr [å@¯­Jàç,  ðÏ› Ë×# Ñî§óHAŽN¶f>™)/ÐȰÙÁóhòóìñ©<”eRX‹¯€ð³y0`w/ºCåF-šË J}a+ˆlüµ“‚¨Š½œ“¶J—3“L†¼ì4Ë nRmn ÏJa"Ân±ï}¯­h›scSkcÙ¾¶®´do ó³[lµ¦óC·Ø’b,"6A9Jø,’9̬'š#Ñ™U¯¼8± ˜ß¨)ð– uQ(jg³mÎÙ ˜(/'ƒ %6ÆJ6­äƒO+o¼ÅÚ.Áðc§:ë·ÍO’‡®v{Õ+eŸžØ.ë‰íj;lñ ¦O}ÂÚçî™OžÌmcØ{±¯´)!·è‹Ýƒù2áшòÐ=øh3>j{Ï2x]êó¶÷lƒ×A+Є¢¼xMÛG¹Sê·CCµ‘À¶ü„_µ2~ƒ•˜yœs/ÛÆgâÉ6Öç ä)|ÆÖ‹ ³¢sçÓâ 'þnNIÙ°ühY\>`WÒ˜AJpÁC*b«êQGÅ:¯RàS^Ì•˜3žj ô4*?Yj$}ûíKHßn…–]ŒwµO÷ŽÈwwý/ëâiü`µÏDeÒÑ¿™ âʉ¬F¦?f ­È¦ä"±täë×â?Z‰ÿI-¡'ÓJSKè‰Æ´ßI.ø= Òˆ‹ï¹LìTY¬4¹ÿž³ò]A¿&þL¾<f C¿xùOÆ]ðìêwBó,˜»¢ùö°è ÜK‰6/«M7L lHsjŒÒõšl¿õÙäö5£È¸¥Ý?Ú‹&pÛ>ì¾ Zí‡Sj R+¦¶'ªÈ©#7U S§²=¬N‹™üB`?þkð‡»}Z©ËÀûî0èP¹Dä&к“ÒM޾ªº¾“LI¼ßáÚÙñ >Þ·Òò¢NëõYì_ bXá3]††ƒ·;Ê4þ¢ÿpnKÎ,½¹*jÎ_š0œ«°)ÌcÔÊÞ>8úà·,|;‡|¦6°)M^©ú¸º~Šk`¹P )¶ÊŠ1$Ñ|pb<¤M®´#|×ì^½V˜ëà¿©™˜¦fÞû>Mhà¬êC×»ü¯×¦‘Ï!°J@¯ïö‰,T¨ž” ÿô/© 2—Ì1s™ÛÊÌ“#¬!±Bm¿ ŸÑõ;À}J\/a÷ìÏã“a±imŒNiF çç¡Ó4æ ªùÉÇÑ‚%N¸ƒfírC •Tó©×™ Õd˜»éqÒR$LÃ+NqڱɔUÑÉo¾P&ß~®ç`튵_À·×0ÑŽð_ôð3g4Uòd´a¾¼"°Áì<ÛøA"Rf$÷ÈŸ~¯ví2Ò²Š³ÄëÞ£ÙÁz]lbö´€«i¨Ì‡ù(m‚oÕü‚ï$9ãzu gÁ7 ¾oéð]ERÀ@ýú.šå òP"O?“ dìˆ2[ÒÍ_>¢©¯;%¸ïlbÀ’®Íð“ß±« Ø^‚¾í´îÍ®V‘>ÐÃ_>­¿« ¶‡ úôçi:S£.¨C’-r<¼1Þ¢ÿ_|6̨ÇÐc€@}st]Ž^=#ÅZŽQ;‘P‹Â ¾=;·¡[//Ô¾Žãcµ¯ø0øêA×$ÞÓ#¢Ì§OÎ9}vòòÄD¾G~+æ[ôZëôokã¾vJ<œÉŸ"9ÎÁŽóÓ,LcÂí=àò<8•…x)à@÷ øs&þœ‰?+«k¼øävt”kxí,44§842LÖ ÇãÈíoZ¡ã;îý%²Sëò‚Ëæ Xö“É…J^ø§þ˜´Xa-ùQfþt53ÿúE™ùß½'3ÿ6ø\_Àó{gæÛáûCðwʔޗ™ß e~¿ÃßÖ{3óÿeºáÙû3ó«àÓ0üþg¤Ó†›|k><?3à/Ó2H<Ì’/n><{øð!ⷢ؆:|ø0É_ñ‡ÞÅÙWGÓEÞ­ïM¸–¤÷3f›ßÛÂ1–O{wú;(¶nB€~ÁßxÂ*ɺ‹€pQ›jͯ—îDýXÉÐ¥†ÀQf2uÇrž/‘÷•9­úÍf·€EM\~ÆûoÀ¨>«–4/7Úíðß‘É+˜í–ÝÖ¤fžnOS¶‡W¼ÇÔÖ Ë*è“ã  ‡¹Ê)àà7~Eñ5›Ð´ï)én¸ÆƒOù»Åt6;Û‘C?.8Ÿ]h¸Çו¤LÓôd%ãð®»ó#cM›¦l$±)<IÈ £÷§‹‡¸0b¢†)™”šTœj£ ïÆPXžíO„—’‹ç_A—ƒPÄ2 zRz¶ä‹q­½oD¾š¾ö8Ú Ðéâªâû÷K–¯Vú£j®µȵ– Û|.¨éÒBòŠ×{£HÆÔHxÇ>ºdT¾:·.þö5qïX±$Çõá’\¨uX_ˆ°¿-»/VB1ÑICz\¢O]Y¶ªŽ\@a¬PXH(,¤,º¨•¬âå ‹QXØ…vg{­zI g`Dì|'²¡&È—°XG ({¯ã'x>ÞðjŸpS¯av›"Q$ñæÕzÈ}‘oòvD%¿+Þ[z Æv[ûb´-lüºù´hmUtñ³rÑŽÃEk‹¶` E[‘ù—>ÚW¾gV ~ÐF3~¥O¨AýÂéÙŒš³ËÍíÂ>Ù¸} ŵàÇ5!\­i§%6äÐBµ€¶mr :¸ï[‰£4¹é…ïK“Á€ùâ}+ШxɈ|^YŒ¾„È܈þ-zÀ•µ…e0ÌW›¥ŒÊžtçãàÓKÕR+ÿ1Ý'HVõËch9»4ˆdq4~̆¥.or`Ú²joƒÑ#4._,tÈ•õ¹ÎÏYæj.{„\oÈdN2BvõïPAƒ@F`®ÑSà–Û±óäño‚U4(ŠsÈýVoq Åë§`RëãB]èÏ^눮£{iÝQ¨ å¿ZjeÕ‚F’Ùfž½“âÿ$TQœhËTñGi/SÜ }Ñhñ½¬èBdqÁÞý’ÜþL¨LQ±¤AŽŒo5Í¡%¬Áõ²™%¶G<þ¥Æ±`Cáh±’:"ÞÿLsñžþùzŸšâZéù=Âúuº…¼ž€,{­¶ÂÏ ·-pÔ†àbØ,‚ߊ‘ÇþÏàéUüJðLPóáu cHݯ¾G ¬ù/‡íÁïw‘ä÷¿Â÷=ø~Ö€ïŸÄ÷†¼¿²ß{€Á÷xïzÙ‚^ êV¿Š[q½dÇ÷G{“ öŸÁöóðõÖÞúÿ;¾wàû¿ øþ|?߇|ÿ2¾Ÿ€ïïN}¿ºU‡¯ ÌL…Ç×J㛆ïô¦Œïma¬ Kûå™Xà•äT¿êÏÃ×O¦Ô'ø¶ |wÐøÏ ÿN|ï£ñø¾ß/¢ñøþ]|¿„Æ?àûðý2|?+õ½¾Ù,¹…}Æ Tÿû|Û˜Ø}OXÓ|b ºÿ½íPp6i; ) ¾u‰×¾8 g'Qäo}cÄÇSCã1 ¯Fßã1<Åš_øÚ=ެ„Ù•˜.ôwP·ž9ß7– °ÇuzŸŸ§i~þõ¯¯˜ÛóóåÕÿÛCYv:u()Ò÷Ìk0Eƒ&âÙŸX¹#¢ëIC„Ç ãYŠ„ÓzF˜pñß–Q\ì¼nððÙ?ƒn€ <0V„E´ Œ“-u'xäUñÓÛuVË9˜î$æ:ûüÙÏ ßÝ„©ÚCòÕLì ÃzàjóÆÑóYÙãK©! xôäÑe©*#ÐøÓõôU˜<×·úñ}R€:shƒÇˆxZEؘު#ÇfÒ÷dˆ”nè&X¯ìåí}Z4@Z?îm¾_½˜òJCK&´42Y‘"s ‹¦[^اùêök¹›Ù¿=ÕñTó·¿lnÇøxsz|ÔœUonHrà;icÜyß8OøÞXÛ§i“1oåJWß wl¥+¶bèJÛ ·q¥Ë¸Âh5Ú̳ýGRÃkn nºoÔ›áÁÀ×ì‹ÉÊ‹Kb%;W.2ÚÍPk¥ë^`í…ÇgèËŒçœÿ¸n’M¡J{¨ÒÖa0^<ý{eæÐ_·~ÖQfé;ðòãeÖûæ^cK<Ÿ`LØB¶4`Ðío  ¡¼xv{uÛf^é¦nwÁcêv×ê–-2³%æ²2JAÄ]ü.ÛvjÇÅ›¿iÚ^eYòtÃ^ŒÁÚÚŽd¶ñQƒÛLíl#x‹½{q'ÂÈüáDzx³i#ÛqjçÅ{Ø>(´Ë´;üêÈý‹  Û*hûxhÛ'ÊསìÌ©½÷@¡wŸ5õb4ûð«7}ºíµ6vªí³¬¶F >eú‚õA¡Óì‹ß•… ïN|Ni<É:Ú>&˜:¦žS{¢3Ð ¿:éŠöŸT°·Ú>¶bËÿ‡´·o²ºÇ“&m¤$@Z ÔZ$h¥U«E-†jRŠLšÀ€Vb¬8™<œm¥UÂC:ÜtÓM†:Ýt²émK‘‚¢‚"¢€âæÜ­­ ¥…¶ùŸsî}^’Ý÷÷÷chr_Ï=÷ÞsÏ=÷¼ LïLÝÐRÁD…®Q’÷´üÀƒ®€„ à1>TÒKð >&€†ÃÅ zxÍm_Ó¸3„'ød€ëùÓÅ2Áu.˜þ]‚)¨_¤ÂôÆG à LÅâ `º`ØÆÛ!¿ôÜ0<¿þùýñðÐ*hdž5-t–E}ÿ´»Ÿ’?hþ7ÁôÀôÉéð¦6îûjÆFp›ŽFÍkyq¦ü}s;ÍÝ÷ãÎT<5Ît€èæñ™Mb33¤Ýw˜vÁà?!hjœ¹OÑ EMÏ æ¶‘OŸ˜ÞJ`Èó“Ê CC›¿Nêç­8?i}© ñcmþÒA¸é¦a+­à Zd¿ì –34 Ÿ<¼œ+¯£8ᜰà\­ýró!€ä«áÌàjÞ}öƒÿþ$É—ï|>VƒæHÀ"Z)H&_ÝòXÉXîKùðä`e"ÀrÂñ“é,‰é;,¥KbÛ¿ŸXØgX2–®-ßôÄÀò±Ø ]T$`ù8áÎ[–by!NÁµëË&DôðäÃzÉï3aH·`ê¤3QÄ‹¹™eà AÖ®ü.Ê.Šl˜´¶óç÷ÉÝÍŸiþ&uH·©K~/ÿÝüݦ·#_pÓcw ³-{óçö!ûM° ó?‘߆Ì2Àæ‹C­ÿé•ßmþzPóç#‡ /¬tÓ[ù›><š^üÕOÈ-Íÿ¦>Ñ!ÓÔ,—ÿm~‡éûÈö«ŸyïÓYñ‡@N^óש0£r_~7‚ã¾qÖk8n;t ã>Yg ïC°&Gµl{ãòÛÍíÔïÛÐD)ôÛM‚E[°«î÷Ù1ãí65‹ñÂ_{æ¢Í_Qßñýnº¦!ï›ò™æoì¨qÆÔ'ÌÿHþ„úÍ…~Ï[gÖú5atµ‚üý¦àoqd“}Ò¾Ë;šÿEýî?‚¬æü}¦"/¦ýç‘Ã_Ê›¿Äñf4•:ä iŸ@Ç)@GWÍŸÎGìÍ_ÛiqÃqTLºÅ÷ìN²5}¯ùê÷=\J¦w‡t‹†uRP|ÁÅ'qÄIÍl4¬¶f\FCºJ`Ý_óÛè„iˆÐÁÍ_¥ ùHî6íƒgx×þyܦ¿bï6\NÍ_#`¥ ¬ “ÿ5®ÔoúâæÏSaµ¾‹Pp ÿ–ù n¡þÅý`€þÜkýõv˜Œ¿[CíÉo¸Sz„ƒ`@LßqøBž´Q}ÁA0èñ0ÜP÷ôä>S³è ̱/sûxÿxŠÅõcšq Çúx }ß<Ì2‡ãN×xà)ñË:ïi<[ô0€Í:Ý·_såw×¼®à¡ ?/^ûÚûMûš¿´53lHŸÜqú éÌÓùßÁ®ÙpùÜÛ»lžœij 'ÉÍr¥¹ùXjsÛà&ZL­á³\bÁ¿¹ÄZeÚ.±’iI±ÂZE ){…¼Ã×ÌLÇ[‘‰(g7„Ž]ç:è{íËMÑiùnûó^/‚,Ó™æz'|㮹¸Å#5ééò;ä¶KuØ™•îeÛ;£ÑHð:ÇŠ\§–AøHÙåÍ^öÔ9ÜU„w¬Ö"ש»þƒš@ùMí ùa3ç½ÈÄ‘ÔtLÃø*§½Çp}#Šë…±8ìù{"3†«öëÈ_εZÁœk,æ\ë`ä1çZ‡ß†|f·å®OäìÍm¦Ðç×…º ¶aøð»·­‚?9ÍîÀVà³ýìÜS(^pºÛÏZ¹Û…<¸sM‰ÌHx5Ötýý?›ßôJ”úþ¯ø”_UÉ Ç)<ùéCFg²+xHáò>‚.8¦(z“z¦¸mÖª˜˜b\~nÑäñfÃH¸“&>1_4Ð:ÌRÎNÂg3~°mÑ=FÄÉçCÇ—r|ìK~À÷²Ð. )‚\àçû'ù=•ÝÔÇÍÕör–š–`78Ñ ‹LwØ#ëpàK[ÖG7*¢ÉÉ‹Š?\ONUt @ÃjÃ.ÌïDíëõe-ë››˜yò :³Ùßž`Î[—°æsÛÔ5݃ê×4ûÛMkšóÖ žZê³×ìÇ*ÕYå¬>•z˜²@–u(ÖF`bìåó1}®Á (\àóGî±øÙß¿'k}®^ê÷O’Ëž–|50Êç|~¸3ŒDkR«°&­ª ©¶³ó¸4 _¿,îK‚žfYbü›*ï+Ú{HN¨òÞ¡xõfÎ?ÅL°Ÿƒ}¿× zêk×J‹ýŽ$YV®²a£»»ÛÇNžåw\¸.cýü¦*>õ>åºY 7Íb+üó\7[3 }÷¡ £q©úØ]¡E,¤œ¡›%<Ý­¶pä>v¥G•WÙ²­Ë6:S‡áøß>ùÊC c2áJ¹ÈÕüÞZb^gÙŠþ¾ñõÃ;ÁÒϱH Q3aZ?ü‘ºT¤Zmé“R'Ëà^|¸„ŒH[gXzQ†—ZtߨÌðÈÍøG†›ß s¸@N¡Ä»ùËB;cÅ+úÔ×n9ÎòÚU4¼ÚØÃc·îŸ¹È­Æù¯ÕÊ_ÊË_­+ç X_~Du/ŸÌˇvGyº=é奸WZýò*Œ:ö+ôÙr*=G é¿KÎÃÜìÑG{¹¶0‚¯”B?™Œ¶È;‰Óá)§4+¥©uoÔêþ^Ô¥PÁ!ú&æXäanzz,¬rãP`'ÙBpgÀ¢¹7¦4t“ÚÉK¨Ë*Ï´ztÍù,\;È-'¸¥n”˜¤ÐÞ%nÖü{Ñž”…µD½Àv@¡‡ý»…j%‡\j ucEVø {‚ ùMº„êe|BoñW)^?ºù‘äÌ]'g~-> ðÛø;íãß|=S<“òœŽÖ’.töȾH O5·–t:3ÚPÒ+r‰5þå­W¶³Hÿ.Gè%lÆù°úôa*[äüž£%¤R‚OMPÖŒ\žb%UD¶tùXÐ?@·Ä¯G,?¬œMEcÖ+ç¦AkªW2‡4ÄÇ­IAdŽ@—’@Ñ_”VØÙ7IG*m3©H#ÒñòkêþÀS a &lQCœ@H+€ H†o²f+õRœh,À˜<Óâ–§Za]–˜Ý9³QÊCÞ²§Zù.šcu5K–1M¡c}E€¿©åª»<æ ™"/— Þõöõ™ëߺæƒ`ný) Î÷õ•Fúñ¹v%Ôï Éo¢Ð-5/¨Œ” ŠÊÍ-Ðè¡h|â^5Þù ’ÿåw¶ÛÝì¯8ûC}Q Ârð°_{éq þ“ª€T¶äw@`⸨Ô7Q æh…ŽNøä¥Ñ唚‘—ÙCMö)@ÌNÉ忆÷ƒÿõ°).M1ÎëÇh&ÒÄrÛŒüŒ›]oK0¸ý^¶c2ZØC»ì€9 ¢ü…|‡¹áDðVð*êUIŽXe.òçÐâeóoæámáɈàÙ1èr•Ïô­©5VÝsaNäSütlúþ© :8°{X^Tq¥ÛÒØ3* ‹¨~LÆð- s?S“-Ciuba<0Þ÷J>´¾FN†Åëg®±ó#ËŒ‘éÆõéëß¾&3˜èX?Ï?*¨Ów 8ÐDš0¨y‘<ÃjŃu;ÇÜs›çÂJ­úõ ­Òë¹E=·ÒeØq©ý®öü`i¿S=X¤œx…ëè$£³ËÚZB»þK/Òatt…“ù¡%OGk ¿àQ!ôñ‚,D\Ñ­;z¶G¬rzÇQCÂÜF씃×!‚ñŠ{±R«;L”…íȺèøBO°ôáa×uõs¹/ôµ¢©7æY3I˜Jjºó^‰—$¡£ŒÅXªÄ«Ü/¦_nÍ”L@8ä’tô~Á¿fàRäf7ÿ„6„ͼƒ¾¨ôÍxˆTdØ#Â%dÐØ¢uã—†Š~ZK,œúbw¢·ÁÐEk‰ƒšòNy 4!þ¸¨J㎡Kj8TçˆGrµ‡}Ô÷©—-'$aÖÀN#žA«I.Rý¶.?NªõV;jÛÞh®D5´€yâÞ´Ì6Ïy¨ƒL>KÕ×UñW¡žÿ?ƒó¿Înê21g”œ%/©‡×"Š^`Ôâ׿UúV­<ÇîÍÙ_^=ØM="T§Ñí¿Y>Únœ&·ä´ÂÝgÖ``œç ®HÎg¦·T…çØõëíøøÏ?5|p5* Ô'x5©þ­¢Ïô9´Kq-J¬þÈäa®®ª–œfy_˜Ò,å&¸=16ÄÕhz‡ñ÷¦ýè=ßgWP:nçÑ KÐS:A2F`qù'ÿÔÐì-dÀIöDªÚ@ÁõþoÄ›ty…ˆÏâd %±…N{­Õ„A3î†Ó¡=ÉÕ¼®ßø›»ªä&EÌ—¹ZV^-ï#-èS92GëxÙ¹þôúôk2’‚ISŠ\ïÕ|²×{Ræô’©®V¨ŽžhEý£1ü’²hœ³zhÿBœž,Òvwí ¦ Å7K‚ÿý«Ê{^e…º¤10¬‘Bízb¢¥E-Oíéü/„ËÂ=€Ætý„:^ÅÌ'g#„9Ò{ Ô'`_?$.$ÒèÐ=YÆà(Ñ›…z«xUW}Î$ÁË­‡Åup…XºË¨¿¾@%+yQ V"ßc‘÷›º¸D@ø%Ÿ…jKÓîð,;íRtªnS½Çás¬Ïé/ °>7"ßÚ¤¬ÏQ¡:ÈÈÍê8Ü,òŠVxŸ}=ìàuæaÑ»Ž£ªüÑþßüG,½xœ°tÃ&e{~)¨Ñò‘ê¥Ñ X"mãGᎰVâVQíxŽþ*þ1ÀxŸ¦ñ~òk1^a7[¢-˜Íêzùݦ¹GnŸ£<šŠ””Î…9é¨I‡Êºe¦Cæ\¢ðøÈèJw{ªÉ‰d,ƒ 8 KÒ„jÒÀ«FwWKEªEÂ3Ìd ^£©T‡cÓ_&Þ?†4þ¾+þ‹ï ߟ=¨áHJ 2[F’œÅ#è-†š²b»ŠÁbpT •9¹Ué`~ ÅC7¹\âõµüAe–yÌ3ÐoÚU­{m;¡úi}[>‹Û´е ãæô!{$ÑzŸæðÅ–L µ/ÛTQ±=!ý¼0n¢Ó™¤‚RéâRINA;>¼q[M;V!#FZ@æaÿ~á`[‘ø*Ò(Üì¿ÏkµÃ±;c~Ü| };MÙhý”ýéyn[Zh $H1ìî@ž Aý€J·i¿Ž‰!‹Gþ©o…npÚ¹vØ\û€VÃh€ÆvZ°rœ:žˆµÀcÚKq2zISDdz.€Zâ Vvrúoü¸½ÄÐ_Dòªøå¸ëoÚ6FÃà"Sj02é)]¾ù-kx ÜÞŠiϧå‡VŽÒcp´íE­6y|·†+‚ŠûKê×_¢ìcŽeü"%ÍÎ2\ƒ»ŸÓj‹ë¦Ú§Â_º=ÒaÀ>瞊e1Ï1~]‹±l+t7”OÓ—/yN½p|5c\S¬ËÓP±Ÿ„N3-p´@ͶÙFà~R#®n¤©¶>{Ìž‹ÿy6†Þ`@€ü=íƒ`í¹v¯HwsV-Ü]͵©(¾hÎiÆÎè&[‰ÛεÊî€\‘×¨ä ´¾bÈÑ-ϪL%̯"èç<Ï$œ£þøøúRý¡ýêãýΪgþóWeBµ GaG3õüÀéV×!Õ!܃é›;?ê:[k–Ïò¼.ÈëB¤f‘7/ÎCØÍÓ¼ÍʪÔ,zĦxZ— Ÿ/Í ŠZW†˜2F@Ï­çË9ËV$ÐåÑÕ*ÙL%wšêËâzx‡E:ÑúU’}ì×PE~O®E^ä,ð"rÇ÷O¢À†3$PYm´7¯|¬ŽÇLJQðQ¥àƒ[ºª¬¶là7z\#Ƽ”Æü¯W¹€jªC.†ü®Q Yêc› \b`”ÆL6#æÅ6ò{ùê{×÷ –õv¼P­s QTµlV×»›eðº¼ê^DqôKƒê¨X$¸Lqe.MúvÙj^:ç(:ÌØtó3 N0ª\>·=”;ØÇÏ…R:W÷°ð_¹á*ÛÐYã\‹BÕ« yDº[ÛûDÝǨn° ¡³v”œJJæ{ suñÊu-k4`ÔÄ@”g9—pG¶õÎ,È,Ä¡¡Q ®géz·—Æê Á@Ü,r çýD]ªGn•ÊÙ“Ä -i\å ¼'çR|ãCZ6#9—Oš]})ŒÙ~…bBXYf”[ÖÛ׿uMšºQ¾ë;—„08D>Û‚ÿTxÙú¿÷)~ôÑ™t0mQ¥ À–ÛUü¬ÈJnì²hY6PÌgé./;ÔmT¹Á[è:ƒôùYg.”ìœaÉãNk½~öÎÜ(ÓŠÎÏ)êS2.]ŸÛÃ~¹AhbÊIÁš¸ ØªLó珞XO0 XÊÍ`çB>9E†¾Ê^ËÙZ{¶†ZÆHŠ b#¿©é+ÕêHãËQ€¥ÜZ9Áp¬KăîÅ-båë /ŽmôŸbç¢SŽC^œMÖÊÁùDÁùÞ_l{c¨ë=i*ü u×®c{)œû"º‰¤ÃŸ†÷ƒÆ¢©%í¯/iŸ~”´¿%xŽD<1.Ø¢r´÷…äÌ3ðaðù>§àc0‹ÿŒæÿ3ŠÿLñEÎQAû/Álú±|õþD"Á,Œ…Wcc“aCÊû\â]6ˆR”Ex#qòúѽ´íþ' ), Uü^†Ñ „No0•Ë;_'oßøõ ü í6j?ûj$Ç)ÅWËÍ>]Öû?…Ém8\h8\,ó€kÙ°Ñ\(IsØ6TE…Ï74bM²½Q€¦·®nint0´0Õ\.,ÇùõÆš‹G5¾ss/é‘àBZP)ï ±ËJü-òÓ/pq1…“´Â{+òO« ÌŒ|èš7SðŽú*Y‹÷,W(@ϯüšK˜¡{¢ÛçgµãèúRâú¾æ-U‚í<¼Æº¾­”ÆÇ"e³:"w~”myœ–_{2‡1¡á„dµ°ÏÊ­UqæY{ó›–L2JƒCÍ Ezº3._¼b-0ðȔӡ®»ü+/Rõgl/­){•;Ë?±åVüK`}b—z·Mj¼§ ¦‡Ten¿ÇÇî4 õÊ_„ù {hzþrôhp?7PÈ0 ïþ~·e’&¾]CxŠž§¾ÖÁ³çëxæ<Ï·³TÈ •¯mõ«Ðq(^—_Àwúaž€pl«GÉ?ïÖ9Æe!-æ:oq€¥¨€#WTÎr¸õoMwU0oÍ*c•4!TˆÁ0ŒuCÝzœÚìT CZr@¸n¹…–[<\ìõ[˜(æï€p?¢–©Ç0†~ÙJ /ã¡æâ@þÉ d7òÚåìî:‡7JÓ(JŠÐ܉‚Û¯ðÓðŸZ¬€O"¶ îb¹‚õ-QÁ_¥€Àñ˜ëË:8ÓaF=fÅ¿ŒƒëÏBÉÃÐ1™?ÃYî9ÈÒâãQfW"MÊúÖà*‚%4:¼ÒB2Zî>6¾VlçÚA¤ŒâµÖrÚî>–Èó…ÂWUåL¹™CJëògõ¡;U®®8ÎÇžìåîUQîŠ>8 +N ƃtª.|þ˜Ÿ÷hÞ™³—ê¾±nd¾Ö£DáHc„d_`'"ýäE œ©kqñ”Qе?½6“’§4”« G3 ‘†°¦oSdÁ-³9¨éÛDS¿ÅzÀi¥¬#©í´¡ú)†Ž[Q?'_YŒöò@5è*V¹f|òÓöo¿>¥—ã¹)Ý–8ÊÑWÕhªÛÅÞûõZ°0¤JÇ?ác 1^vÄ{V¼¾ü< 2,Jû­‰¦ò09–PW–Wp„œºŽ|“œüèÅÒâf3ô)?úµ¿˜Úž³ý§ÕöµÆ«oü«ÔƉ(s«,È—eHŠ5qÂüÙá,ç‚]¡9hß¼ŽdKxƒÀ°s£ü«v>Öú÷/×Ïç³Wà;û¼sm‰ ?b l¤ « o¯„Ùꈦn¥é9Äòà7 ÁVmô¬[èÉ _Rà={#Ú{˜Ï\{[àí½(Ú;ö@l{[ÿ3P{ˆŸb§Éxœtö.‚loÌušEÛ®PŸvÍ:ëhGWÿiªÿÚ@õ·÷Gñ¿7 Çpc{‹¸ø}Mµ<©²mðƒ½¸¦Q=Ïâó”³·VÁïX©ÊXûo”ö¦%«Gãï§¾B/°§ÑÅ.ìƒÖý¼‡ è!™=ó@o´=Ë8ðûÙíçh¾:mܯ–ÌîÕPµ‰±ÕTn¬ÚÌæÇTs‰j»©Zïʘj*×SmbÄT3‹jMTm×Êsi`íûtÕª*ÛÞÞˆ4íEªö«•©£i(¸Òåƒá®}'Aµ±Ë0ŠwZ‹'\gewïët8°f_hƒÀRaô#®#™ M>¿TÞø´½dåÐ+jÜøÓ˜” ¥Š‚0U¶4®úilˆ>È1QŽ›½;ë,L´TÑS:@5-¥ü‘{Òs:Ð`ßþ3¡¯®·j“åÝ¡= û»M»=p;Bwv\‰UCp4×EНv„§Y/Ìä¨ {í4ÊiéhŸ^dQ[ý›Üßßbh…)¾Ey†5b]ž…ê˲ß±º«Â³ì±,Ð÷†&RJ΂£êcEé´.¹Ñ>xdfû¼PW¯­~Ê…ºú¤kQÅ)“k‚w Bð\DH6ñé֖О(;œ;W¼**qã¬0KŽ©ñTÜßê5‘ü°á VNCÅ—ô0>ê̲F–[«Ñ² }¶Áë«6*¯x4¬™xzq[aÿàhWFnO‡›|mNâ{wèó¾Ð7ŽPw_Ý ’ä’€?ùDA»­>‚·àé†ÈÜG8M.¬€tyhµAÞDì»Ø™EÞïPË»\íVÚ‡çÍr’ìµGJ®·VÜ ÏJÇéi–gZäý!æý«/t&AfFshwÂþ®vî÷ÖÔì†ù×bF@`ú/ÀÍ|öŽ$Œˆ‘D¯YCª"æá•¦Ý‹ÂC*C½ Òò,³l"€Íû»"í²×Ñð~0Ûïs#¦!ÍÔq"ÚpýNÔežæ°Õ?+»}²»œõýM„Y°5Ôa,‚i ÏlUoÃÄY¿‡}ñw5q.Êò{Á‘Ð_9»Ý%¶€ºªl×uëÚê¼e4šæ-S|a ;ÐÚ-®¤–Rô3K0ø‰ºEŒ)MÄw‰üK0³¶ú-FÒÂN°5<‚%WZñ‘b¤ty…Œ)g•Zq‰š³ËE".wšxwiE@‹BÍ ®Ý+F¼BïQêåá2öZ—´&@ÛÓ¬ ²©Ê´«2l¢–p?~Í÷£¶£©6â…ÊF¤m˜Ûpè‹úmˆº´ [ÿªn®·ŒÊ6¼ë95ñŸFe>§mØÇ|:h~qµ~✺K·—؃؃±ûï„­½êÊÓãö_Êgênùï:µ¸ÿÈP –ÝŒ~ûïÓOÕâÿÀBÓûï¿×´"¿Â"x³«»&Ôg¬Iá³qüܵo…U~—ü+#é­‹˜¯Âýk~·¼_¯gl„m3]lƒÁò,KÎ,³©yÕ8ÙkŽXí®Y–•éá!qA›•¥³Ü}t¬YÛbõæÆÕÛt/!¸0¦ByÌ’~èÞ˜¨»¯•¡¬Œ†=ÁaT:aòa’n ³U:ð Þ _Ä!¿QAŽüâAv79ÐÌŃ#—³[ùéAT(ÛVŸ‹3µÐ‰t"Ý´À6/²Êd5hé=×'@²l!Œ¬Ò>”Üg¡3‹ßsë s¹Bðæ¼ç¡¨‡ûÏ”Óy뮈úºäB³sQÖ–Ñ †Íí &v¶¥KÞ"w…üág°P ÔKnø-.hŸdU r}r×:¥_¥N*i.vN½fy ·÷¹žëUP¨ÈHÀF)K(:ºöõ™aKQ¥rÑÁ¯iïªM—Zrº€puKU¨ôãw3Ë*³U*s'ÚΆ=Ò¨è |iR˜ª$;Î×°BÅ\ýX;UdÈãB9t<”+P+ EøáäÂu£àʰW›[õöÈbE’‚Äžõ]¦Ùé-ÂÍ.î4¯t·’¶ô°"y»MçÊYÎÕ2:¼Ði–Šäib›–Š*“Ô*WñdžŃ‘†¾â1’,q1’ð½ÁX)ÀÈ?L2·enx;ôÁu°_SÀy`Ýý݈©‘+D#(%ÉÅPiSp ¤ÊÍ€óršã¨ÛÎË‚ìj“¯‚B’F0¨‡ý­‡‹¡ÓáÚ§€iEœ¿ðþ]Wi}¿4“÷­ÕÓè_?Oóìæïé¥4›7²€­ÕcÄ0¿•ø*y ëXLºÅ{n9Ÿä‡Éø>™&ùÅ›q’3Ä$ç±QÔúD\gY^Vò=º€rÏ–Š\ Wë^:‹cˆ˜+é³·Ó½n›¿ãæz¼‰m¥j¹>…Úx„¯Þla»ÎIºÍv@3ÀtÀLìA~ÈV¿‰‡Ç ´¦8Œtg cFÌSÉÝõÝ@+¤±ê,À,fˆck#×rË bUCŠõ°W—ûÛ-JjjÐóšóÆ{rsâ¡àm¸çK=4¸tŠÔê³x±uûè´ò t¥Öä]ÏSèÚ{•©ÂGûϸöK¿àñܘ÷6õ¾t+ndÄàp  ?îÅ~‘ƒ¬x×㜤H*«øBËc³ghs©’–ø¶´Ô¼í#×P$™}ÙAk¯ˆš]ÀzJxƒ°ÞÚÚ¯Œõ/Qì´äï Ïr5‡z@àjS¡dž<+‹ Ÿz½›Î»‘€²<`Z²æÌ4ÀF(ÃŽqµmõS8G@âå4!^>{P=¿ûˆM³­îvyº¸[X~Û?ÐŽ*«­þ^„Nm8¢"ËšÐ=òlKÄí0áÙA-Ü¡âÈEŽ‘ÃZ§}D_RdºCî@Šjj…% « ,ÑšN^QTæLú#óV#™N¢%CÏ7‰·#Vž”ífÚWѺ «cù‘{¬íƒ0ǯõZrvå@•ýÝüà’¯7»izüêÒ¼ /Ëd¯XrZ¼lâ)Õf; c®Ž»ž •ŸN)6lÏĆ=µ—@÷•ØÊ4K¹{[Hgm'Õ¦*£X _.{3rvE¬ ¡n‹í¾1sw¤f´#–IBüCGhŒÅOL·•”w¦r¾ÛßWžŽër6àZ9Ç&BW¤ü œdzà Ø€œBLZ«ÛžF97SØNìÒµ*»¤ã·dB‚o‚ÿãáKZ@Y-œÓ hû#8÷®Ÿ[¤«ÑWÎî¹EÙ×Ò¦í‹(²ô$\“×Z†pU%+ÑçŕЕÙu²ÙYHï-3ðâ ®í&Žöâh=¬íõñ^àã8ácmx²šòd7»é ’[‘>Yñ¹G®HËd“x˜N.%Õà±ÇÀs`Ñÿ ÏüsÀóí=±ðì½<'ü™³“OñÿÏž÷†ç¦8x¦ÄÃã¢øCâ]ÚŒÒdt¼Î~y ½›ên31ÜŠÌY14–K³rÃuÄñYË£ûùÉ [Kˆ° h (ê;C]¦ä¢ß²*É‚d_VèCÐ*ïÐ2|¬(/þuHè’m\ŸòOg†j©Ò=‚;ûý~[·ùYe–ªÆQ$0 ‚­þwv5dŽJ-û‡¬Ñ°ªÕ¿š×£ŒqñxhIhAî^åâ~dÛç«Þji#9œ´uÊÙ¯{Å;ã‚à—±O{no.µ·TiO‡¯Uìø_»…°]±6‚ëêÉ•ÚÞµ:Ñ«'ÿ‹*…ën@-ŸÈb'††´W”³Ô¿u«Ïÿ3}¬³Gð·w1æZ6¹›˜Î¶òæ\¬ænD\Y´(ÆŠ˜3÷óûëKÌ[cº¿Ú䉔8Êo¤h—xŽÕSÎníP¯­%´p¤«üÌø®‘¯ðºKå’ ¿~]¬x±[<Žˆ5R~‰SÀ+A<|hÃ+èI¿8%HO2 '9ýé òkW™;£ˆ…›*,¦2­PLÁ|nö娳èÕYyàDÀÝÇ tÀ…}c{\j/ãz(¾€a ú?³¨þϤ2nøKw¿p]V4YÐO¶ñKT —8¥1Dq3„U„W‚«[¡¸Ãco^ôæ¡{°þ2 ¿[ÎÙ_öÇÕ‰³DY¢?ûÿCÚë]ôÈF {—p°‰ †j£ì‚ƒa¾ˆ¯âoäþ†¼ /xO·xÜs•[<Q†Ëû\ 8S-¤èq³?qu§ªØ~îö·Ç¶¿üÇÚÿÇ€íofÜŸHBtŸOq/kÜ?<¢Ø¯Þ¹Ÿ{eypû˜Â®‚êÑÔš’›_Á6¨!H†Ëoê{2u[L¤8->Ñ4\„º­^–˜Íí'È»Õ"þ‡Óë͈WWâöûÆd¢Uw_év—J“7ñ0Îrppk"~;öïäÌÍ_4ð$vÛ †-øKNÅVx‡i¶Øg??CF/T¶Úèf™?KÀ«K–\ˆñr|Ñäó¶çã,|€.:¹ü.£"ú…еÿuYž _4ûmÇGô¬ò ß'ÂÚdÀ ¸ÙKБœòY´}u×|A?9­‰®D…ªã!ʽQÀqMº5nÏMm¢jßU|uÔ W‘‰-K4ÿË“>ª£"ÿ„ë(pA)3t6¡&1tÖY‡þ ®7¥$Òç´ð“†³në“뛤óå+wœÙ^ÚkŒ/HËúÆõMÁö0ÚÎÆÆìÁ’5×å§@ÎäU’yò¼àU¡ÖÌo¿3Æa•É«0A2yž”ü¾;·›)¯áÛl{âkƒIñÿjì?ˆË%š:V ö9$R²ÏÕRk–;Ús c©ša…_ëø/ ¤}7Õü$Ô÷‹Õ¡¯ý®ïkçȽ¶çÛM_‡ÎŽ”ßÉywÛ­K–,9ÝÖ|&AÞÑÌÎ7í€[ê›9»òß?ý½«U²(z¶¸ùl/-35`À®t¹ËÖð3Š£ü%„ 8ÓSU)ÙBïD£©H`x¸ùÍE8§Ü¾a} ð<¿\È1ØDÎÈ8KŒ%ˆÁªõ™kÎæH‰kÎ^4–ˆ0ˆvO¹]ß'Dĵ™˜i‘wŸþØÕ,¥é;CZ´sNªÔ‹ã÷V;ØÝã †ü=ÈX4“îÁœ. ÛÃ¥æp©%\j —jþæ·`Ø®Ýu©Âþbÿ1à]Í5-hÍ®ðÖµÝØ¥­þ¯d<`Û°EâÝÆÕfyûȵÝkàçjKÄc ý«§=™=…8Û™b uëÒ Eîsèäʻٽßð~ÍMÀµ¯v¬<Ç1¯i>–àö°_8‹–äm6¢¢¨ó0Ç*—Ø#Žpļ5%<Ǻ÷Â’0ù› »ql­Etyk-¢7$ìÛFP ~„~ºµtÕX¯/2qMó— ‘yFy†Ý´ËÍ>ãÀB_;fW.€TÎßúÇñ@W«Ñ¯å ?›ÁW)úupˆÛ|lsC‚æŒ3èmäQ–Ì}E¶è+‘!Q_0z“NèÊóƒ‰m¦;IMæËÜjÐܨùÿþ™¦ÆƒÓêŽ)ÏÙÝìæ±ŠÊ|ReÛ“P;¼LTÑãG”G?ˆ*»íùÖH±ÅçfYj ¨s36±ÊRÛL[Î1ò;ööƒtˆf°„Sdò—¶y21qVˆì}ÞÍïÞî6OMº9;kÝ® .ÜLÝঊÁ¥©ƒËÖQöX…ÿL‰f%ûççPkŠçç¬ìéjä#mõ¯ Mè‹ÚêÿL_úlõ@=dE‘T-Ù‚Û{£›äŒƒ:»}y/Wº¬­¾:¸x«ŸB*ß8<Ó/¸6£\,òÌ$¿¸X«GrFz¸w8éa@)2óSÒ–¶ªÙxÍPŸqu’¼‹¿óÓlïºK m¾ Ÿ&ø¼ Ÿðùìnw¯?âîÇftKé™Üð¾”DÇÉ¿dOvÃûÁ”Î)°Γ=‹!' 7NÒ–Û½DõVÃý©’$…Høå{ÌÒØu÷Åž6Ö”¨¸z +[ý–á^€ØØ[ÑP£¿ÿV‹bR |¡®4KwŠáömW†4Ÿó"1ä\1äOÕüÑÂ: Çìa+nácæÆÚhËt¹œ]ö2î+—)­"Øí¨‘«ï{ ƒ’2¾tó5.ÐG½jQÉï Nb¹ÄI*s¹Apy¨Ùá9geýÛUÖ‡<MË˨XœJ.yN)ü™ˆ 5ìy¥øŒ+ûÊv´ì³†šÜñ²§<°æþëj"æê@ãëЊÕ<ÀÐynšäWô•8ÿáƒsnçN£4Xþ%>°rñ_eKíyòKÞڄÓûå_8lÏwË×Û#smÈvšv þR?zŒ;BÇ¡ü¡CÌ3sþ(¦î¤å€Q -Ý*VCÇ«ÊlW¨º@—‰•p@Í;/f%,ý©¶úQ2áóùYö?iPTåŒ`ŠšM&‘tƤðñ)8ÌË.µ˜8‡eÛPˆèšw£zË­+ŒÌ³Ê&ôÖm”C.²[ƒuéêf«/W‚ƒg„Z̮ޚwÛ¢ÃMtÒ$—Îí|Ó(],o[Go_pÓ[G¯`ø~€Ë¦ÔìqûÈ7Y÷È!>>BòÖŽ‘g‹9½0ûåY0ƒùÈf|ﺌnÉnöMž86ÉÓÄ(Ù2®UéÆèÐàBkw À‘â†{õGôÞ®0WiÌGû? AÛÑJ*'¦ ­íp”»‰^xØÏ¸ :X+µÄIj/nÆõ@7dÔ"!šÀ½J×™á~ŠÞl¬(‘bE|ºM™uŸªv¢¬ˆjÞyzr¸à&± ¸. ¥Iƒ—9^0§V-3j’ï«ç ~˜ŸŸ¤.Ô^«ðúÙB`jñ­€VÄ+ÈwKêJçÂ4nã™0ø¸à«Pç°ÍÀßT ˜­žY×mä9ºp×¢[؆÷aJ?‘—Á”~'»í‘â4>£çoÚmúVº Ý4Ã]š?A.`Þ2Îô=…I\s hõºÙ>éíC<ðcöeÂn ¡¨­•Sn$™«n,€TÍ ¾·œ•Wñzó°WÄpìÊ­Dûµ '€î"©›jÌrxøü‹¹o'Â|zÄë(WN‘ÝD`æq+®EqÚ®¼+¯=ƒG³T¾ö žÍ’eíbEð.-O…í“;Å*ÏÌF·såÑýíÈ¥ð}ˆ-³í×/ñÞ‡¿íCážóÁ Êï®™¿œçÈGP‰I,ìÚ”À^(Ížü]-/“ɲu¹[1÷>‘›ÓÁërÆÜÛD.nQvÕ•Ó$£ŸÉë„<Y£[Ê”’PŸ©æˆèŠödàó5 ! ŸãzóÚvMâüà á¸Z爼à`HódS"Ê¥\S²ƒvQLî`_Ç& Ý£†dÚê‡á\{w6ÿ‘ˆöûªCG6¦Kœ²µÉÛ¯ó— mt`3NKÓËI.H÷RT!æ»ÄdVºÓYãn|¬œ ‚±qÎ¥Ì]~îæ4éS\sj?ÌtœŒj¦>TÙ¢—Øýx]eîËYeº¶Ò½õ­ê†YwM33å"¼NŒDVF¾ßîsC] A'û u@ºjFcMÏ”SðWéü>iеnX`nñZÿ!»ºBÞ+l6n**{¬x|x¬µcøÂœa–b­—oVýÜÄ_P½ò!Ÿ—ÝÛ«?ÈÇÇŲí[°Ú$dãm¡äf†„u0ˆ¹»‚ýª rQàå±¢@¸wæi­¦x}€ox´¼: Ý-j©ª”ßYÔvá Ň !Á.,¤r,¬ô ,àëyU IQn0Ó=J%¹šƒwâ\Iwň/½1²ÎŸÆÉ:‘OÅ¿–—Âôû6œã¾àÍÀŒ\¿ ¿Í–×M@¥H÷Ê­ò»l§–ñ¹ýø5<¿\͸ɂ#Bg€¤›:câ¶»åp•ý¢Ou|Lä„­ÎŒü¨?˜’ß´¶o ¶MMí0}¯|ÏûíŠ%yÜ5ßÞ~t:L#y†Ñ¬?šˆÞ?iƒŽ(½mýN…µ·9Ï29-“â¿Kc1áãcú¤¡˜Äîm6´5”v‹_“Á«õÉ“Õä,€…G˜Ç¶a9š¸O×!GŸ¦Sò…ç¯ÇkªŠƒh=c”{ ¶ÇQñ˜achƒ\§+Ý@÷GR‡öa¬7±—G™ rúLÂõ‡Úޤ,{#-“=ÉG‘ÃjGó1[N³i™­ä-Ç̧âJ.BÕôò!Á/BUä0ˆÎÌcªÇÉ ©² ýVFEVù¡7 ® âfO|¦™¤ú±rxØI*®ãôx`÷ªïГÑÎK¥ Qçë}UsÃÂ:=j,áÃ=EùM ïÛâ#!}»Ï¨)MËô²HŸ¶.bÏC3væ,ïÓ<*]œEÂéN%ŒðÁÂÞXœë¬ek_á"‘ù-~¶¾^ÈöI„0†]MÅÚl* 熻êpÜw¯¦—‡ •0ëÓR³¦¸áDÍx NsªÙÑþD¬Ü"Hþ^'©É^ŸÛ“˜5ôjxÌþìîR\Æþ÷Ÿ§4ç5%töØT7Ý&ÿeŒ1žn–©…GÉŠ¯¿›uŸ×¢£Týîb5¯W-Š¥6•‚Oçò}téŽeŸVŸ!¡ÍE èÔö‰óqübÙJ´e‘F,w|d« ~ çGmOª\ñ}¢ ^âmõ ° ~u³7µ2Ó‘Ù¹‡d”¶ú,—ÊÍ=Ú‚Êêoè2Û5xWl¿GþðL@ÓÅüãf+”æ‚#c§š™DU2üì.W¯`¡ÍÈBǨšÚê ß¶ /pHøû„xŶáJ§`o³ë´ôToúÊY Ð vxNoÔÇÆçöršŽÂ¸‡Bοøä+QÀ0̆èAE«Í„;-ã£6ƒ!|žõÞ1™­‰ø·UQGËoçì^Ûl° <ý„S°ÔæºPUÇVEnÁ_”Ä!»¼5Ñ …HièöÍøuR¢þ VFr .¶bXÄd оRp´7šZÊU„Uò¾¸bY·Â/ùJl½ùóy¿}êw©ÚÓÔwøì¤j3Mé!ù~_ÎX;vX˜~Å܇½Ä`Ú#+£kûPèj %À¿Í_›dë©§å‘=×[Ò”¨Qžb– ¢á»Í¶†ïp±Üîº;cåèˆÃö˜#sO[ªÂžty¦¹²ÕH c-òLkUeøzô¦‰ðw!ªPê豄SñG{ñf!j°[ú¢´Ñ æfĬ|æÉ»í[×û¬Ò0e„§Ø[§8¢Q^ ÎðtÙÉõ…&ýÜÑjD ‚V„ÚPxÌ Z"ŽS¨Ëþ¹#" Ï ÿ<ý l;ç»È”¬ªðÏ3Lû°XköRb#¶áçê!î's/×û~"77 Ö²ÛîsV—/á“ã•3~wМ³k£¸Äª,Ÿ 'mÃûáaáR³l‘ÆÎ [‚£Ñ70c _oá¨зtñ¸”n”‘­rüÓ  ,Œn*Ü<*1ÎFt|©Â½DïüB{ §€o –4AYjw½Uáó/Ê©´*&¯—¿Ï9 3.¿Q^æ 뫉„×®•##ÖÎ…ÁµE²¢ÈnöNoTqÞm«ã2x—œ"Èß˽Â+‚÷û'ØÁ>™µÌ0*U:_]+Ë:å]Š'[­µ&‡–ök-½Å[R÷ƒh Ž«´*¹ÿЩiÊLé 9TöÒiå"M±›/ @Ë^žÿ›[ºcócóŸbqõÿsµ’篪:¡:!°5ì‹’c5€ŸUÌò³nº× ä~ÀúÛ¨þ”sÕzéÔo¢úÆsÖÿ±þwSýæ¤sÔ_÷cýïãã?WýC?Öÿ>þsÕïú±úŒÿ\õÓïÔÕ§ùýry7ŸNñû*)ö÷—q¿WÄý^¢ýž‚çç‰ç‚§úGÆÓCõ/?Wý‚êøñ,ù2n½^yå­WË(l¿ù\ðÝö#ðÙ©þ窿*ð#õÓ©¾ç\õÝ?¾ÎUqûµbâ/‹ÚÿÖtŽöçÝ}nø¹T÷Ôøýϱ ººBþÖ¿ÿÉÔÆÏ•þ¥4­þÒy} S›ß"uëòi0çÆWÖHloì@íe Ð^Áµ·3æ?a€öÊhïáú¾noµ·v ö>п½R}{4¿÷ÖÅÍoðŠšßRÂï°„sÍoøGÖß\¾þÍoŒSDKüûÙ€þ«MÕ¦À£e]j~¤1Ü$ÅŒO9Üg J«ÚÓ€î†)¿q ñ“=ù—ǹiExlO¢öš ¶g„ö~ók¯†¯ÿÛCé’ÿ[{õÔÞØÛ3A{íÿ§ö6ðùöÔ®‚§þoím¢öÖÜ^"´çû¿µw¨Š\®´7Þwÿêat+Íñ5Ú¯=Iê´§„ùìhŸÒ&ÆX5» éõIŠ^÷ÔºKËwŽövŠö"çh/x®öögú(í•5Y1þLãöËÍ+Ä ãâ'ÛUÜ¡µGf&gGá=6'KÙåYzZÔ[Ã×?+,vuÚcw¡ýÚïíÓùJdÅø½þ›UÿË^ÇÿTûOtØKCÈî*ÇèRÓxøÂÑ™lçÉÞ¨&$!•9ŠzUf_Øgaã¿ç÷ÿ]ñ$…Ý'!_5?$»Çø‡3žâ¥þOþn‚?УƒŸO…ëýÇ„ˆÚöóGªÔ?ÄÇß3~K6Žÿûÿw?2þïþ‡ñŸüÿ=~àì¹Æé‡Ñ¸ñ+ÁªOŸ?:3` ÿ@¦_<„˜y¹ƒm;–ÀàÕÌ‘S12¦¶}aJaÎ?ByÂÔz* ¬LM–œ‚)”<…`ó…)…uþè 5²N wd•¤ÈƈõwÎSßÿ¥'“îÅ·éd؈T ívÜ€±Ÿ<™î«ò4ÒŸäe)÷ÓÁ¨N…¡:© ZðñÈá¼ U„Ïgï½-ä_á{WARÐîcK;øM“µ¸+¼ákYv)¸åwY!—yW-ÂØb-ÊüËTÝ;ً0SâQÏ-'yàr^îaÿ ÎL“žNÀ·­$¿¼ ˆ ¡ÜÏ6ª%¼2j”YÃh©q¬‘gØ#eËIâ.ó‡pW¥"/I ÄU‰õ„ÚŸò3ˆƒPÓnôÉA‹õ ƒ7ÂeºÖ*Zç]g ^/߀’‰ië‡]cÊ"~ˆqý¾k’‚õïKŽõSðG ª“7“:ùûÁcù{ÚÇì }…ª“H›Zžjµ4^ý ´?Û*¬C-ºôIÆ`²<÷Ëyׇš- ï¯nîÕx„kø‘Ó‚Fà¨;Ÿ³C *ú<»Ûsrq”ßú- 'j-•Û†’º¼×/ü¡ •òÝæˆ£‘hÞ'»-®W—¹ÖÚòÑœOd·]Îø]èlT*¨?|÷<ù^Ä‹|¶9jYKV=~7»øâ>î(êß«½nù#6³OLSÝŸªT.Bù †• ¡ÑG³5òlÁõVxh0Ù•qHÚ’øãe“`9ŒnOX½’àõ¤EójY*03#S¬‘û©éæp’”(¯2·€íÛ©}ü6˜÷4×é„J£D¨ÈZêÚLƒ*²ÊÖÝP0À€ÝC¶M€šÎ£(©tGj?OV"p¶cö‹<{e;\»¤«ñxÉor½+Ù`½ÐÙiFkõӇȲÐcq쿜¸ñ¡ÁÀ?N/vd46à…o'p„ð°£|»1{ϾÛ1 |7¾}'e²%¡¼ëÇàkhBmTKæÈÌa܇@tq NŽèãÌ>γ?¡°¦é£pMàq³ÉÎÒü)@àú¡®ƒÙÊ[/ÊN=Á&³ àœIM¦·g(&ác˜›ž‰~õØâJÜôt:ß~a5Æ]4¸Û‡îï l±€÷7¼_ ssy'‡÷ïïïþ”xÙPõÜ/;Å~ïlÐ{½5ÅóÿŸ2ö€;g4¦º€€ëÐφ+hžCìÿÛ3OªÀ†6©‘¥ ùÎò¦¶óÖ« WZ+ñ¹|'çlh^ÔâQ°Äá Å„!_Sà˜‰ö°7ûU£ÖýÞý†ºÝ·–XÉ8Ax¯¥ö_ßÿ’øþÔ¿­ÿÖúOPú¿¡ÿ¡ãôVNÜì½Bld äÄðµÝ]ùFKwàÑÇ”0èiÖ­ÝÑü¨|ˆîÌ®Ïl5¡ÑºiuµÚêÓð™mXÌ}Ü@B"$ø½ì«%âqÞuÚVÿ­ðõãBwÕ}Êë¯9ÿD»¨ãëB[ÚûÈíúÆVÿ¼‘‚ÜØé±-ò•;M^Á»0‡ú¤A¡>“­a'dW½l)öŽÌÖupxæ^Õà³è’¸Ï¼¾:ÁË®ÐàÎ.æZ­¿ ·Û5μðHخӸE{Ÿ<`8K´Wõ=Œ42¤Qâá&tèÞ#±žÞvíôÙÐ,‡´®æ:s=¾rVÚåwp÷sêa«¿ñDF5×ÀŒçÊ¥äÉ6" ;î÷yÙIÒ³º:¤qý…*nb-¡>s0!šÜß)_ J`KŠB;<œ&zÒ´mØÓKr¹ûXGK ýü‘™Þ€þeG6¡þ– 7\B;×gRZÀf,8ŽDŠ.Uœ‹Ly6Ù2c‘òÀ‹TfáD¸˜N7®Ìtƒ­árd–U÷VºªfyªU@X…eM8˜̃­¡~Kœ×el¨‚]üoñXG£m»æ²ÞhsüÇIþ‹æRãÓh¬V­"§‡hD×4Ÿ??ê¯`Ûª­:§õþ¬O(sÇ;–Z{ç¶vB ÐZÁ‘»ú×:ä~—CÈÅ·ûEdõ²öìl¨AÎêaÿ3«*Øl踸 ˜<'+‚½‹þ:±ó²Í¯G£â}_ª#]./Àw–¯›CÒ/ûæ eä èÒ\yå¹Vû43.öÈJXçô詹xbÕpâYhzAÅ€ºš¥Qp¢qç#r—Ðac†-ÞâF.µºà¸’FŠU²î|\%W]ÁÃ'õ/ok4ºvø¤·( òI¢ýNölVHÙþÀVÊþïåÜ»<€k埛åV¯¸?Ú×g+›I¬­Û¸¾’³¶šIòIò‚àï·Å¸hðxEĨ*+LC†­1†?“CçÐ.W Ê¡+ ­¶mõÍÜR0#fè.+ž xñ¼ÁîÁkä¼NÞ{:[ŒÁ1p'›±þ>b]߸꽊Ž6Øg}Ü'²T:k¬»¥Bñ¢ò:žc¡Ó^{=¾XËsì¦wt•ÿD* ÒhôëQ–íÀn³B†iOÈïDÆ-´#!ôfvC'Ð{pë"¨2?KdӒ‹òíVi,_¶Æ&wàbÔçá‹a~žX ‹Zà¾çA¯¹v8þ’½öræ*%ø5˾D6.)4üÒíZKÕfÑÌpÞ {õbÂiªœÊiNy9;y™XAк-²ïÂ÷XͶúß‘-Í®Ó2 é¶‹—¦+ Üàò£¯&"J~ÕK(y}ö7eÃy\ªø+û3Æå({Î)[œlß_M •¼B:¥eRWïkÄX.³ß@/ÌèŸÎÕ[›Í¡w“µ¼µdmü²î8Ê I[凜E -™îWÊ “ɽ1 ] 〚?óoÍ—§Yp¹v­æ,`ÍÂEæËV"«"Ò#Ö—`Ù‡…ÎØm h„š³+Ô•À B]‰¶†‡H–€x¡˜+{h˜‹ÐÒ´ø¥ÁëZÝ:ú Ï,B×ús_²E¬-Ðé«hþà yæ8BßKèVisÏDJ)¨7™m:ã f0ÁTèŸJæGÙiÒÃÐ|Ph笽H ת§/p%ï2‹aUÓN¶)SèA—*'ßOËäüé,P—ŸmXÙ”\¥¨S( w%Ho‰Å³éuñ„/QˆÕý•³¿+âûÛŸóý­Òú¥ï/pìcÈØ:çÍÿÙ˜ù§-4Î(eéöâ8m/¾“«æÐÝV£”Á7Q`ïAÑ[9ûk®Ò›<ÓÔ·™4ŸTX8m]¯*¼ÿ\VxþÉ.Dc ilá4ü3šSÁ@.9 ~7åªTØÃÌ×q>q ø$Ùc”çXc@£|§‚þxFed+Å£ÔàXÚ~¤ââ9U-ŠíWT¦–žo”g[ѶûeÒÁ¾ÿOrü M¯a#Òjß}v-t:j—ʳí¦w{^`G"XIØR¹6ÜŽ%2ôf4HËudÑ(š?;“Å-ÎÈâÑ YlÓ- ÜtgAKg3œG·/¦¢î.®³VŽB9Li»^ùÖޤ̗Oî )Ë )ÓSü mÈ·NC®Ä9ƒ)ó¡ßÁu¨*iÊfÃ~ ÏßPØñ–@àH™±vœBàJ%>YŽ(¼GÛídqœ0àýØñicØì”F"ù9žpÛÄ “RA—éz>+~Lo­ ã#rAÞíH$rÅyvª/®Ð›¿Àé߸>"ŠÇV¢ûp ÌÏŒEފװÃ×ñvØn!‡~x^,…óú:‘½­ë¾³“êŒ!©¤Ç‘F;ØŽž@hA^X´ JÀÐdŠ¥£´™z=[Ý\uÖ•0mü>[¥HÏ,(óss'§g-^¹Òjq°' ¤èy8ê´ÊXýÒ: Fk@p ª(ðÍYsM'ôÔhP;ê>E=¦ÐÍ»•—Ò;|mè€z‡—}2–ȞɡæÉKBg8Š‚sCg“‚¿k|' ËÆç…ï#Úív3·ªŽ\¿ ·6¾¸Ñ< GEB¶ìß ^4} 6´@óvi‡9ús§XùJhÙ1â,>$°êfÓ/R±ZTÖ²¶'E·¶ñMˆòKú¡,uI»Ù¶IDKÅû³…X°,£<ËJù­Òù:4gihÞ!¡¹}0lþ`b¨;¡v,´|{Ñbæ·gá¤_È»kŸû ñÈ vïT†\…5ÖWSt?ä)àçkâRÞçdúX<'£lÒx~NR œ’Äigg* Â{˜ÏQ͇êîìuòuýê·,x½Òu¶Æfq÷Tgä='ÇX”3•ïÔâ!ê/÷·€wØäà«FG3ò4.»Í|4ßñÑþþ©àyYzã6àr^1‹$ébù;] †8Œ`!Ä ¯×ôýS¶†0)„:Þ_d¦¡°À’™ŸÕð1$ôûÏh4*}%úÎV›~i,|rp:qOn%ê.G]5@ÞçÀª³5:.7½ ‹0]º/™oJãø¼Tˆ[ÜŸÆ ÒØžŠ÷„ùøö0ýûDç’Í8>…ÅNT•â#¡ƒË˜_:?t6AÍgzáuã—ã‘ .$Âx­Qš¥­ìÀµÊú+gÎqÊT½•ASåm”Îë×àÙ ”«Ì‚¢›€Ý:'®¹ƒ&ntðãÕÃr‚@§ë@¬ØÔÖùÈO^‡üä˜ocøI˜Æž©Fy0<À²HNݶ™ªm›;.àÛ†{3 5ÕL¦œý'KáusãÀƒ^ƒs‡s„<³Ð¯diny;rËxX7kîN, íî) žMö» #Tì]4Ü¿XròáÔšœá5ÙîGË^‘q ò ÚLºÛ"¿Äµ1;öÈÿå7V9ñ`i7«ŽáZ(©œ)r\7¯pT0}Pξ;_)>•óc=¥ç7!Kj5‡v¹HfkkÐô¸jÑ‚ý§WpÙ4=!ÕÈ?á Âgç÷¨‘»ƒ¼ »6 mº\½¶ú5œÊZ¼ÕÆòÀ¦ Ó2Ùwk¸øÈê:*ù|~oËú°©t’.ÚìÀÇȃöÙ®5бV¼¨­Ro+„ŒÚÄ8/—ß„Aÿ¨ãñi±oDQûÂUi™­‰=02rLòÎr‰9×0Ép»«$o–p¤±…Ö]½¥¼v÷ÔÀÒ±¨÷ag µj¼°k Ï+ŸGø¢C™i¾0¥°k ]æB}ævÈ ìF­’2l—m€VÛ±ô]ƒ¿;ð·e8þ^Š¿bX‹Tô~‹Ûê_ÆéC^Ö¶ Ь=’BVÁEøc "œíÝEvЀӹ§Ò†(…ºÈkè”rÝ>ñRåÁàÞuÝâbh¬­ 5µmbjDƒfdÐâŠö;‰ úû“'ZUb”.ÒmúmÓ¯Êä^ŸVØYm¹©'N«¦ÔÓê(¥`–Ø\*ˆÖÚ‚Æ`K%¹ß¼ßã|%¦ÿ™±ýÏÔúï:OíÿŽþý¯Óúï<µÿb]ÿ׫ý=pÿtÉOäqèfñß³ø &#s|H½ìOo笢Ìk•…UOhÿÑ.Ö«t›`cñ€äÕ“¨ºä`IàÚ5™d>>.óY©V½T¹…ºÌ¶ú•QEÞxT“|œ!xÍÊ´9@L_½n|!m|öß-_€«Î1¶ƒ_)úúm¯ZHìüäröÖh…NNÐ Fº_ d6ûÑÖ‡¥ßÔ¢-‘ÇÄÜHs±XÉÕl«ÿ>±5îãBYE„û¤¾¼)XEÃ×nKÚh Ópø(¡ák2™Ú”áÃ×.9m\`&87ø€ Ÿ¨>Œ:`E M×4qŸÈûXåN޹¥«¢íŒßÒþsŽ™ÊUAí'zß+îÂâX¾ÇÚÅÃJ>\Îx9XÖ=‚{™ëä7i[ý“x´ÎˆÒõ QÍ+Á¶áïBü-_{¹E J^îûΙ;.y/¦+«ÂÅ9÷«€gó°Çxr(š wW¹¶ï=ŽÆÈ4‡­á²HÇW ÚËSášÈ%Ø(¯}• îÇ$ȶ5Ü ¥]ßH©|$Ær™Õ%|,\ÊM/(ÒÇ0 ¾OúSpù.~αþR7€yÿ¢q5•ÿA|™/@|íþÿ_m_€¯ú‘â뎑àëúñõÝÙÿ¾ |õûÀWö—¾èò:݈ÑÈcöîtmïŽJ×öbŸQŒÊ‰ø,|‚Ö§)#? 9üª?ŒßPÝì¼³ŠÐ Ê7JüÈ{æÂ<¼šFò¿ÿðíñ'È‚}êa“ÕÖ~ûð£ò÷ ‘Þ˜ðÁ×߹¤°Ðsß.Ôà¾i¤¸oc0çÄP¯¹n뵋{?›ò.Àci›(ÇŠg‘ð¶P¯I:Ÿc|±Æò[Fêž.[tbÃ÷¾ •ñ% ÆÁÓ^ãiïóò´?ó´7 !Æ@E²‹–N0¢{ÌE Ð&³íòTƒAÇÞÞõ.—E Z–1q<ÁáfMø¢U‹Ry^ÐÕ,àÝ]]’óµt/°díäõŒP,8ÄÃv;¨’Ùè‘¡á„4ßÌ/E&®eÏ}':UùaU¡mÉÚîd£<]𥠴Ûn Y›‚OS•§'º¾æWDWkíh1õ4WÛøC6•Þž?x}¶ú§0$ô§­þ1ø²ö ž(¶†Gá{ı&RöÀq(™ß:c´5 áÏ?ñIó“Ò—ï²ýêmƒˆªWj7½ãa3»iM–È]ÓBo:Р}Víôtyª}IhrvZÄšœæ*²ºP·V¿ýç)ðqFO€E¾n„²fkC»`Ï&Ð(Cof»$¼ÜÜ¥`éòÌXQËfhOÄ.¨Ä+\‹8²9{I¡Ó ^Rh‡¡Cù)¦ép•a`U.»ð \™Å»<| ±Ó©+æ"¨ƒI¨Ó7¿%ŠÚ6³0wq#sCô5N‘¡DÊgª)äWÄ%¡IiÁËuèø\a+€sÈ.g‡+ã6ËgÛò£¯áÍÁ;ƒ(‚kkdâLÈiõ*ôTLƒþ¢÷oö|§WNŸ8­“…€5Š2ôtér¡4[3GTƒ‰»&~Ê®UšæÝFæ^¤úãa Ø7Ý0'J8%LÂ] WSN‹”Í Áp±Ñ/­œjˆ‚@º²>ÔrèR’p¿Pì 9aIáÕF¯ük…O¯£VWk[å…áŠ4mî7ÚήOk/‰L3º)¤9pò€Êœür8g9ô`ÅØ-3CÝ£ü¶ûžÁÍòR8k6JÊ"føƒ×ð_=hÄÝó{T(×±EŽc|qKFº­Sk¶†€‘¦Ì¸#éź„UvI‚ ”S &úô %ÜLô¿ð´ÊÅ¢`•;/µS…PS6»ö3ÞkJè…‡†cú‰ ø!—>„“žGƒxlëï#Å뎿2{?ù)oéEƒþ§ jŸÎ߾ޅßdk µí&3Ñ>‘V’~×û+£Pp‰Þáòß5Ú6í¨’¿ã×Ðèàò W{m ´nj%I©É —gV›ÄÜ~ êeÓü¶ó˜@ÓC­Ž†Î`£U~§øm>XfÉÜŸE³,™ÏÂg)|¿>]ð1ŒIII I¦¤Øÿ̉œ>Óy~ ç~©L·Ô®Ñ–Z©]Ñøz‡ç‡î±š¤Q‚&ï; ^Ø2íâ ±ŠNp<öÍÁVJ?ºLáp?9Jˆû;îÄ÷gíèygnÇRñúãn6¨Ø¶ú»Qo¸¿ÝÏM{¸[¨Ñ´pÕòÇ/ß K:ëêüÈ £«KÝ_hW”;lŠ4ŽÄÏ‚É'Æ0jôÖ]†MÔ] óûêõFš?¸~N7m¡UÖ„à yž}É$¯C ”ÀŠp®ùWE$÷%¹µù? 9è»ÚåÑ™Øò|»é(kæBó>°ìb‡ŽªµÁ\d夫PÇ1Ô†ê-øX)7#gÇCû?ÆçŽ#ûl ÿ*À³Qˆ“ ù³œOÓPl÷¯ÀmT2÷%ËÖhžPˆ¬ZÄ:!xü1»¤“o7¤• ‚á œö,h¿ =¿„º€“ÜË·>7-SÞÇÎ;ÂËo¤m“£2øŠ¥0§OZ1?1x;jí“Ãë‹’þʪÎäQÜi©'¼v˜÷° ¤¢ð;QkEMÁ¼ÞÝ^¬ÜÇÆáÄ:’9£«b'Ôå ÎC¯¤¶`,jn¼È³OåJ5ìøUh¸hn9Ì#þã夸ÆMNDÈÍ~—$t7>bÒÀ:Ü-Y%x¡›Œº‡ãô`?&qþZϧ&iÛñ«Â§c‹Ûì"y,vTGPödñ'êž\oUŸõ‘ŸÖÝŠÝŸ&!š/Åø|ž™íóífS¶ÛÅÊv£»p,¿MW{Óï‡&ügˆþýÐ7„³‰@*Î&£D¼&ðÕ+†ç?&*/‰—Sù¹Äʃ EÊÖϾŠOl5/ÿ4J0Ã^ã×ymÌ y‘ŠPXÚJ•Øq}i¿æc¾¾!­9›¤ šìaž}7Ôë˜Ñ6ŠâNKt#7k#ï,ø[4±rýùÑv;Ü‘j¾æÒæ6t¦‡øp9h7f[û¢ÑiHö›‚_*Lõy(0Ò‰F€ß[á—™48iwõ:b4ú6 Öûp[@üö&;"s×üWŒØ­ÊJN>8»æxÄñÀyø`”%‹­q‡»ÚؾÒX? #Öv^ï÷¼^ˆ™p:2Ö²‚^ÇÁ 7g¿xE-€…ã+zØËâ1/+¸þ]â<Òo—†ÅmƒtàÜÙ¸¢|p,lÕŸð Ý{>$C,™kšÁ¦‡ØÐ`&6¥¼×mÕ´Ùƒôïu‘)âí¥ƒ4B¦=%"âæ·U»ù ©N{ÚÐoÿ…)òœßs-6âuÚ£ ù€~Cþé Wª²Õ_A§ ð"dÉ&nΦnáE1VbHþ笄իHëÏçç7?=[y•†Û…AD¼ÁUø6º¶ÿô”²÷æoSšv3^*\§jÇâ5xíäI.c$cRp»f´„/Ý£¸té:WWÉæìÜ¡¾±¯‡xZbÔi&Ïo™Éx ƒ 7ÿ;o8µÓЧ4¾÷¼­;üPèXÌ"•±•O×t,v ‹—9dïo®k»¯4Ên«”¥»ˆ^©¡¡"YÕ³8“¼X.µC%+ük“’à߬à1Âü3Š3ú`”6ß’Ý€/U+½ªÔééÅDzž£5$ÓMÇD Žw’tÛ¸³Å(¢ç¹«”.¥ÿø¨u®¡„ú(gk‹åé°ÁóH*a7H×3Ø…y»0ÝIdü;@º”7Òm¤u¤“Ÿ,)Ì7Æ|ò5 ³“²´TÛª‡¶ú,™lÄ¿”…ý_!³ò˜CÔÚ±­]¡µöI¢ÖÚ¸ê 7ú¡µ7?°µ¸÷ÎË¡aX*е}¹ÖvÒ6™6ÙùEƒ@À® õœ…8>d^®yt€ãæ=”"~'Áz¯]Àß'Oôê’ÿ ´Ø*TƒñE^á®xŒfª)HÇÁßòuªüícÊÈ÷sPbÏ[a3µIÂV§t›®¿<­¿{Íê¸+HIªö½Š\}jreyÇ pD¸ØÄ÷iDW’b•‡=¤.–qŠÌÎf£ôª‰°AÑÖâ ´O¨XÛÂóþ ŸÙ¸µHðªv¶…Äj4Çð­4¨‹¨«æ·N}óÂrZ²Öu1xâe8{†ëG ZÀuPç·, rì­9>Þr>^²IJ×”ßmlRý÷wÅÇE{‘…yöØ9õ_ºQEñ¨i58°rfõÃ1jµÕ£Î¸nLNmLK ŠÞÊð3=ün_g5«lªC 6jª³Q®ýWî¸>ôVÏT[=j§‡¬ÔͱõÜl0¯W¥Ø¸„zÍ5‘Ï×T­[ßá¬!ª)«î§Ú{f•¢Ü—­c>-êLÅLThœÌ²ÞãI—aÒ›¤‚B;Qè¡ ’IC!ï"RöÜ·(ôþB…aµ'ME¸ø¹N¼”j]È3Ç#/;÷9ñ³ÿàÓ3,ôf/WdL·} P#úf/ýÚ¿ª„Èž›÷pi0Ú<ÜÇBxsyÝÓ‰þø¢Ò nùq\íé½ÔªMGÊ.Ö#á~ž“‹#"Ñò%½ÊúO¤D¦O6bƒ8 šðR1` 5™CoºÉòÌ^s/¡÷¿¯æjö S‰ýuoÌ}UOS>úHßÈV¿>vÉ¥hK®»·GÙüB”œ‘ 89ŠúÕ¶ÈE¿G“Íþém>»Ÿáz«°`(ûÕ7t¯¢SRXçZÑ[d“#Ýt·ßp޼­Ö¸.|üæhk¨âÊÖKÖÞíj´5¸áç¤)YêaÕÇêábò¼Ãáš’­ïd¥ÒI0‘îqhT_ê”§˜·æÆèÚêO#kýD|êç˜úb|*¾S4>ŸúOL}–§šÕÔ?bê¶ø²h@Òøplª´²qc\Ê-›âR¼Æö Mi|<.å2¹£q/°÷<¥ R”'ó'Æq-Ù;OõèµÚë–¦þnkhïyQŠá÷lŠ~›5F¿Í¦­µÈÙ~[ÃáºS0§¥êÕwöÚŸQÇ®C¶ûQêì“;ä.Òns,Y[0Á„Cç¿^½AïE3a™Ôލ6½:Vü&ûh7e¶_þÊ8lôáÝÂRK¼{ùd Ý~ƒP©Fƒ OdNÜwÂedjŸWWð;&ûÃnq$ ŽÛ”—Ð4>pp+tõáÄ Ò‚æœ ¾ª!Ló)à§sðy®ëÛÚtlž? j]Û= Â÷©ý߃Sµ9t¦GÿœWíàw$ŠÊRçáÍVÎt|¢> gÂYO{  t{)g·â*H“7ò&½¼`¤Àºn Ý:k”\¨çyUè¬YºÔÄmëÞVIÈ/uOQò‡ìÀTë¯Úá7Y?-Ó•i ‹]¨=<òßKU³6A:Üÿu òEô"…Þú¬èyΤ^¤!õ§©#B}I5Cå]³º»á}©4?ÊN¶áÔÙãÍì|uývÉÚšˆ!Û¸ ÷” KG.~h·°•ZJskëP0_¹ˆQgÛ½Tôï{Ï©~V&/ˆLâÊ­ÉfE<‰Â?LW´xñzQü n‡È¾.\œ¥ˆ*HmHPŽv$탔h—üŠ7yh¶1’148=GFßÒåØDYšžq¯ e&èxaR6{áø[5ºØa íšÜ Ã÷à Ô#ø¸‘T°2\dÁò s$ã÷ÀôGÌC„˜4¾ÿòÛó5߯Q­=y™¹q/ZlYè²óëøþ©`YuÒ«7⥟¾]¡?» ³z*>;Aþ6戉?Jþeˆ‚Y7êä:·‹ª¯÷éÍ×ß«Ù[#_캖§òWä8ÒÎ_iP>Ói«ßbB ô$à·Ï¢¼çD¨k†í¾ŸaêKkI¨>Õà„?ì†á ¡í6®ò‰Ð¶¾ûØ…Iܺ¾«m6ýö™•ß…&äR¡@$;¤Ò±æãœ“Ž¢~QƒÃ¤ÞV¶:‘ѾàKBuÛYÜ¡\]¾p„QJ_Rè0â#0ñV¼ªIta nãÿ×moCy–z’ kL@hæ©Ða7ùUx†¾µÍ%1½½ f*+GSÎÙ'Jbô¥FLoÏæ%ù°³µKÚS¢d/Œ©Óhòé_ú Ÿþh;Œ;ïS6í[‚ó¤¶/óï͘³‹u·Ð¯0çŽôýÏøýsþý÷¼~þNúáunùž~­æ¿nåØü9ÖºB¥µÝ‚ßÏ?EßçãwS'}G—B>VrFÁa!o½âUÊ¥§õÈöñ³áâWèl€l”·jH|ÜÉ`5û[¶=ºMi¥HÐö|Fm@¹Ûÿ«ä¶Ðo«úû†pU¬ }œ‹|n›Ò8q »ØBކ{©òù_ŠÊíwC?7¡¹ZWûÏ|Ìÿ…’~â—”Û}>öÇ+é3}ì_ÿR~Lö± õÇe>Vð¹òã;|Pù!TÛ¦£ÆùoZýùц¨|ÊÖPá¢Z¹°-úè2Kæ‹ð)ÿ¹%s'ü]×Àg#|…ÏH{þ~Ÿ«î²d–Àßbøë†O%|ªá³>õðy>7Cþãð÷YølƒÏNø€OÖrKf|®…ÏøÔÂG†ÏÃðÙŸ­ðy >»áó!|þŸoàS‰ß¡þÓ‡¾÷ÀÇ ÿLæÜĤdË ÁC¬)CmvLÌ6|„#5mdzî¨Ñc2ÎËÀƒ;™nhᅫà êËÿ}EÒKþàXÌ` QÏ|©Ê`ô>biHºïKu¦g»3iˆ18ˆæägRÛݯèÞïp½xåyÖY>ÿªÙmG­Yózq#˜©»e(ÝOÝwæŸÀÃq-É5]íµ+…"­©uÉÚ‚ÁÆ `à2>/rGûLnô²W¹¾LÓ]5̤zÿ™ÅÊÏèÞàÌ%wöʶ ½ØûÛ‡ð&¿ç±é¢†8TŽãšd†ÏôâfÁ/ÃÞ¦ÉEv73ª«F4õA×=ŸÆ4”5žäŸªK;Þå<4’mÂRžàÓ7„çui<"ÖÍž.‚3Â*ãÞí6P‹·ðó›*ÉC»ÙçùßU{éf[cr!ÞƒÙ«ß’‚þEì&Ú=úÛÔy¼?Û´Œ‹¤³«íi…èþ2Xäg™êœ^ÀÖ<­EŸ> WFÊ—ÏÒñ8ïUQ6¿¥+@V+ÛEÏÁ×ü,WôÓägc—©ÖŒ“iP©²µý Ý}0tÜîw#g¸üO—0¾!/æ1É1 9ÃŽ¹rtì eZ 6â/«0‚·"RæL÷?=KIM0‘tèìDþôA/ªŽü=®ƒÙ®nÉ)—d¹š_3s¸CÊè,v:‚©§…ïÅYÏÉj·(»ßbs0Ý £›Ýü€ìΆè |2³û=ÑÔÝä‘ÝŠ[w™/ÃZYò½è03âO/wWx=ìÞ-88G¨kp8ÙÖð²ŽséÂáþÊ¡ºa6·ÞÈ’ç8ƒå3mxUQ¶ï¯:l'—†#"CîÎ?AþÿÙ_7ó)=ak@»ÖЈqµ5TçLjMFþYþ &†ý¹Äœ“ža•“à=Y•–œC‘YF»k£Xáv[ý¯!¯áðŠ¡rš·Ü­ y†Ý·Ël2°Š>þÍE hVB]vix«|€Ú]g·5,àã²ÊAg÷òŽÖ5øÿk£7Û{k€ƒÅÇË.+¶®³òý˜ØÃ¥æÖ"ò ­µRIº®18ÿ{c{Ž‡î…šù{x¾p©=´'Új@…ºp©#\šÞÂõ™¬¾Ðî(¾ûg…g8Â3Òñ=ÔÝšLåªÌ­3ðRehaåÐaºèÑâËnM&Ïù• Z_3\823ü‡½îæCS@ÁA››è‹”‘¿§á°í¡æðýû ;Tˆù 5IÑ{ÉÒÀI·XÐå~á/ÚRUGÿÑO¨™Ã@gð*ÜN·§üG ¿^@n…üœ7!ÀMá{¸Ì™‹#ÑËð³¼&ëAÑK±•"”Ãqáakˆú¤Çdz ñãaQm ¸&Â÷|?Ëݬ“jfñøgôv¾xy«§¾°q4ÿU°OvöÀ>n8LXÔ⓯Üy…53z0T`°Õ#‡ë”Óen‡-ðÓ_]«ýEÜnÜO°­¾žI~/g·ÇÍNärd¢ËûdöÍÇ=ÑögøÙ®KŒA«ƒÃÙ!HŽ Îûí._sü¹‡“» Ã?o¡Ÿ(ßIdÏðâ:ߤ±¾<åiæP *BЛtÕ 4¨ssÑ#¨tžzÛÃxU)”àa/¦ãñAåý>7óB>:8xíQ!£¡¢ŸtÛåˆ"ùP4ÕߦèA8‚l2Æ6xŒŸ­ÔâawÒ/³~þ¤þs1õ/ë_ºeLf01š$ïj àw7ûÍ¥Š‡ãÔÍûÓ3OÛÒ2’~šg2P¨ž9Ù ÝÑDuþ+ܬ;[ ÕRkÆWH?Kú¨±Sür»ú# ÓÐYUkç¤(—mŸÀÌèãþ_2:ãè8¢©'󬙅°:Ö ‡õ-˜þ¡->¹C)åGGJ¸ .Ó_…[)‚±3=>}YøÌ¦±Ÿìæä³CžjEß8Nœ­ÈAiÔyØ@Ò*O±Ê©4éåìùqÍíAÜÁÊOA|áî"·æ83yYx! &‰‚§?D§¹ ™bGN¥£Ú Ée¹XV€¬Ñó…óËUÊÂá°!ÿ”hÞŒè*ªÚ¢¡N™8ÿ½ ‚ò#Šðù>öQäj±Õ[9­Ì¦°JtúÃ(>xIõ¥ò_ƒ°:+âkGºJ,›ª\eÙ8‰ÆLùi"ÿº\Õ 5n~Ô¾g÷ óet¿ÚÅ–ÁW×Y¹Cú™ë{É[Áö4ù¬ò!yP4ÀTWfì ¦&“畘¨Ê±>;N,âÆf@…·cd×b5Ó3&CoCcw«Y¬æÃž(m ü„'bÄáqJšþ©Ãz9ª2Z>xº¡¤\œµ²´¬ÒËÙŽ$KËr³m+ˆ[q•Òø<{Ø›ÑÎpÒtVUjó¹@9z•ø*tFÁòЦ>~ߘLn;˜° Åç,Ï&'«¤ß´¶ÎŠõƒc£)ô×¾ùÀyÊ`t¦pŒ5ÈCÃs¬¡]æ‚ûª”ÀÜâ?5¾Q`éÅÀcÂþ²bh ¶óE±u(Ƒى[t˜œúSÎþ¼ƒ¸îù-[ð·nGÏo¡x@$&:úЯ æsùJ<ÅîöÔ&ILÏHË<’²ú„þ ,¶£Nvg>©­‡¥×¬áâ×ÒEŽ&ÁtLý¼cè6æ¡¿ ´­þ%|Óy¹Ø9âö}Ñð4+þt<'ÝÞM<&Ýžfg„L[#Ìqyxšƒ=@EÓmÅÎ n¢¼2g”Ì`AøSPž–*‚†B¼!Nýäo˜ö¡}­¼Á€jt{€Sâã¿‹¥n«÷{U8"R­WˆðUkûÐæ¨îŠh*Å­† ‘¸‰ÝþílhsŠ¥ÿþ“Ådkw"œ-Jc‘ N4 ôçÅŠr}o»Ÿã¸^BSHDld»„GiâW*„,ç‘%p>—C²¼LÞÙä$ñä,®ÁzÍ’Öä…†%áG%¬Òžƒï²¢ÓÀóvjæ Fj­T~á4/ Wõ±Ò÷º£xŸ’;Ê#õ§;ºÉ)¡$(\õ{ë¨Ù¥ü\„±`Àüñ}~ocÿçC1cÏk«ÃÎÒ÷©çæ&çóv::+·*GçH¥‘eÅ#Ð.'™cäë9©äš–`wηbN®.g3ÛP73‚…+.=¶]Ä?ŠVÖ§Ea{M|™t­¶Óª×ö¡}Ýò›å]¬šûõûÊá`p{øÝ Ð5wWñĹ ×-œX¯SíãW Æ“ÖüÂxtT½Œª3|xSu‹k´2jyÃh„ºÓÊÞzGÁ>ž,åˆú¥õß¼#P_!å©ë Ylƒwgv)¼zSÌÙXàxnDr–Ê=¯àæû'Ùëg€@mp®ÃW‘yÌ[g¯Â·ž“%khœt¿T¨„´{›.F_aÿ&fSÊ`'÷Ò¹h¡QYåRk9`n/¬ýöéÌò.¬‡T:tEOy`µQö7%¶1SÖö—½tòÚCÍÈ·’/±}“ÿ>ðn›v”³Û)ð#¯¤ãÏ÷á&N9Uèrx¹Àãð/ù?¿òÂÐf³Õìü!VS ¡š˜MC ‰†~NAÃLvâm•ëÄ‹GÃ+8üö½4½È|n6á±#­ëwê{*ï X8°WáSPJë8¦À‹ÔߨçâQ¶òmÁ¬ÌÅp•rG4õˆ@Ùco‹.kÇ6áˆæ½mz—s¡=wè¸P+¾Z½â¿wœ“ µÆ]ˆ°U8†?ÌèU„mxG¨jñ±½Õ ä`9$†?ìmÁWÖSV÷cïr>IO3æX{Übôßçúo…_ì¾·ßÆÅH0S‡ÅxŸ{KŒ·ª2xÒIÁ» É6cí¾&ÃÚØlKÄázr¾ µcŸiÙÔ¿Õ*ú‡Þ-VqúüÐvñs!.û|AÉaV="aVÖZ€ùÀ;‚gD` #VA`ÿ-@DZ•r~H¹¡Q¶Çf¿€¸U«3V«Ãn0È)õíÁ©PÐtï­w¢ñ°Ÿâ{ÿèWZï€éˆÛˆçùzKQýž`7'ïtÌÙáq“4‘íË2!"³ÈJv&Û¤5¡ÍçÞA>wÃw /èÇT·SνñMùEç1¨ ¨FUw¾Ñî8ûŒzº·k§;㩼3‘Nåc€EÀénøU¾¤µÞyY<Ç.íeÔ鯽DÞPŒ¡ˆwC|L*ü{dƒJÅÛ!ç2Cy*࿇.&y#úÕÖXÚG»ÂJJ®(àÜ@´Þ]7%Òt®ƒñc{6œ3ÐÅ?T`«?C$‘†zÕ‰lwbwäÿé9`QÉÆÝG ·È—ÔCÓ‘xº¼4˜‰üÅïà+>DT,)¼ÔÀy…GI«¥@Ãre…mr>?ËÙ‚­ ŠøKºÜçgò¬>.ˆ‘“‚—ÆÅ„Q†ç~ê2J¡ö\ûBᢱ}t\éX)M~ÔM £ æ+£±êxSñ‘¯cG|yD1{¼UwÎØ‘FgÀ9³—–ÅV^J274Õ[¿Á¼úAvy$²ËÃ×ÀĦìª7/„ÔËhZ« ­õæáç„K'XGIŸBä‚£¸¹‚Æ_6¨`@߸ÒnäüßÂÿa‚ÏîBz/>;Ü©t¼š^Sã,½4èX_ìœYß$];ùÒ ¾_߯@JÝìöѪàUºæïí™ÚüåÄ9;…mœQ.&ï)1y|Í)“§ó‹ªW7yÁËû-Uɿǎd•¬dƒóÐ n¾h«Ò2ˆ^X4z1ÑBôí]âè…åèR‹b Q ËÓ‰0OÀeñΓŠÄh%]Œ‘ŽÉ+ô‘‡ô5€ÍÂ.ÝÀ‡v>…Baé4€ÁaϯGxʨ–ËÉ<ßCP)/ùœF¥©Î=ZöÕN…[Ž ˆßRÇiÕ^ú¤rÔ§j•¯Õu(^E²8¤Ða^­º2ðduÉu‰%— ß °¹807KÙ#˜¥ñÏÃjãÕ‹$Àî/Åxèk»Iô3•D?˜u—šåaWVEÐb§FÒ+ƒÖnXk7ž&<>‘þ<©6ˆÃ$»œ…FÓaRfQ“Z ?È¿aÌŨñGù¸J礵мEáã ÙøÄÇÙ…ô0õ qlÏÞ¡Ê£»|SžÄŽ¥·èfÔZÎ¥“têdá–xæíÕfÎ9ßvLÐÿiVćq|Û‘œo+^<ßvÙâåÛ6'þ˜]¡ðÇ“' œ7ùãöþüñæ*ÿ…ÊOÏ¥ò¥XÞýÕ廨üIl?°Ëâ L`!–Ïëè_^'ÂÂlòŸtr( W6é°Ó#f¡ý¬Ùˆ”ÌZ"\koµw|³^®ì^4•å+ÁÌÎZ»À«cgq¹ÙmÔ®™·ºÙãÙ«Ž ¿mÀû§+§Ä\¸ê£2¥éüãfö‘Ê.É÷±-Æ>%f ¾yhì!£×J &‹Ó*[éÝ.¿‰|lë¸ÞèÑ…NŒï'—æ!.O)Ò¿•cƒ]"T[ÓCî0À®5Yê´IiúCZ&{é^“p`ªªMâýTŠŽöÆŽÇIû«µô¢¾“ÇÃÞš(-T¶V:1ÅU¿äqek¹C†§+Yòâ|­íÆUêõç²gßèŽ6œ»ª R!Šö–™÷mhWƸí¦Ì+ûêo¨€è$ILy¹IšóðoЏˆÜl]ª˜i8.N»•¿‰¢ë¢Í£RÔÒ¿}£‡ Ù‡7Òv«ZÀ‘äláòr<0²Ê# ÙÌÄUIÒy<ÓAÉ#dæ²/{•ÌàH¼ÛzXýÂŽÚ >a;á¹Î\@NûÓë$ÆM,sæ¢t‘ÑNOé€ä\¼§ålÁw˜ç_çÚµ3NpÃgZÞ@è¿hâ„~A¥¾]÷&qo§*_W)TeŠE{9û’‰¨Äz96x?£ý·ôýöŸVËûÈCØ0Ùü‚›-«âŽ"]§k¾ñ²ò»„+ÓØû&ñw°Ë°|ÞÄ py“spÂúSV™¨¢D -£2áâÀ¿n¶~„² çQŒ×©bu\%VGµšïäkÁAM›¶ÓZ€©ÛSåÚ@UÔ´QÎÆŸ5’1òÖß ÎlÎuUþ^ØÅ4÷ÇI™rWÄüºÙ 8úçÁ ½":¡lÓ¹FÂmÔ¾™ýüõžèꣂcé ¹}#?N_EyÀùð!%v³}*»ì¦’Лf@ãþVók¾É^X+|­Pki$_“/”³Ó‹ôˆÿx µÓÝì³E¨‘¸ïß ×ÊE¤ühCgÝ9*[_ó°—yý®>¬ÿÖO%Ô± ¨³ûÕñRr?´WbpjèK®×G<¶±ÚbØ;y°¹æŽÌÌïÌ?ì a ã>ó¨x¤±ÕïànD-8…|Ž«Ä?5L™ÃÙ$Ž*sœ#æø^5”œBNÌÅÕšù*×þ oÙZÎʺib³Ô‰µºÙ!MlM,IõÌØƒÃÀÉ&*Àmɶm@랈¹aQ—£ ¿á6]*;i#÷¢Ð¬Ü×ö=+ÌÈ?Qxâü4Àå_:»pcdWÈgǦeâTMf›:»hš:åC0méŠBŒâ!žO˜4\ÌW§M¡Èò4‘—-ò>Qò‚i­Ïæ ZïÚFhm/p²ÉøWÍÊC&ìw«ùiÿ=5pNÒ9Î×òEÛI3f¯²ÉŽçËÙ\ä5ûîoýì|‡3<­ PnTãÌ¢“Šû¥øŸ7ÛõuÃ|]ÁžæuÕ µêsÒó%vÛìæGñ"ŒMëf¿ü‰pGO“¹-„`Éé„£üåI}Q¿èòß&ñ¨Ø€E[=*:!§Ã_Ø1îÀ\ ìã‡U‰ÇÌ*sNôÜ9Šá - ß®¼ìŽ¡FƒO>Än¿‘…¦Dìa¹%nˆëb>àq"[±Ûó±ÓÉ·n6¤NBžøÌô®.Û†ë õ¶µp²×`ZÚþ¤º4Qèµé5ÑjŒØËo9í´éf>,v4m;Ú†¾],‚S”E0‰«º¡¯úŸjþx±¡7QÛ³_ê‰ò3lÄ|jÛ[8…¾ómn‡ØÜu½š6·ãÿ@µ‰P¼0Sí×^æTÛ®Pí‰r»º+ÜœfãΣ œñ[õ}B ºý®F·Óù³Ûî vn:ÛðOâ‡^’0gàʶұ¿ÿ“$âÔé¨ö$~¿’­/Àýsžž¾wWGÅvÔO H¡Þhð'‚¶¾ÂUJ„v‘ùa²ãµrö¾_Oä_„FøñÈÅãñ‹éxÌò°¿øch<à!ðD+ð›7¡Î*cõÎBÇ'ý·»c»‰ø4ïÆ“íÉï ¹ŽÃåHYð€¿eløosÜ×rhçÄÒ³(Š? ~?D; HÛ#î(¸gˆvpòòâ%H^F¼È©ö&¢!@ö§|O«Å©®8«ß¹’V‹“V “TGÁŠo”£ #iÝ%ˆ¤Æx›cLÿËI'Áÿ„ÝÔž@'ÁÕòQYÓG±{=yЪ¯)øù¿I9 ‰Ã`?‡zà™d=›]ôväÚ6$œó0PJeÀQð9`¤ ƒ»c£pày† T9 <ì]äwW9 pŠX¸C8lõh‚„ìׯŽ‚öAý‚‹DÞ{ƒ45&B«“Ðø†öHXñ$X}ÒŒVóßÄÊÒï¡,Vúz.™H,wTÊó‘æ…6²ÑPÔ¸˜ÙŽjŒßþ“¶FÛƒ@äÌÞÔzÐDA­ uÔú%qÞýKœŠ<®\¤Ö9¿VI2 £æ:'—vç"µ¶+YR—µX8¥~Íò?Qj Ç0¤"·G¡ÔÓŠh—£3í"¢Ôá”uGÛÐØ‹ ƒÕØ>ÜÇwçΑÑh˜ŠZf#òV¥*ôãoÖºD9}ìµ%t8NÄ㊎N¢8é¢üÜÊÙS^ýù¸nIìù¨âžÝÐ/¶Ï"»œÝì%6´@Q£™H$#šÚ…Wq¶ó[Ä•¹¥"ò¬­ÚÖ_gTôäó6ÂÕÔ秨K;/™n@ñëôò€Ö´¶úëñM´É:ÖÃ>Ze2È=>?/\Ûý§g2îÒŒ×gw ^ãZ(%Îr}¶¼Swíµ…Ð;° êLóFSœ·†ñ¬Ú¶ÒPÄ5S‘oåìwË hYe\o/ªÒZMÍ‘…yF¹E€áF0NÊoËû›Ûж¡ïû¿Êoa€ò¿ðªòì.w›öž¾”&¹òZ´öëÝÕ†ú¥ôÊ©0”W€×8×Wò÷ä7Õ¿žÝ#9É¢+4ä\S“bXLŽ˜GŠ ë¦§Ô¶A©]ðÛ™nèùû»Ï]É`¹åìx{ÈÙíN_ŠŠæåó¶ÁÈ#Ó׸#³ žètÿ²Õcô1‚‡} W@7B%Þç£,4®ýœkj£ ¥ÔH­á†õ3Œ3ꛂ]K6o‚.–„“ûÃ3 $q0 ¡›M0;P„eØë/rC7Î+³¤MÑ!1Eú´.Þ¹n·a{‘e1—»LÍòìS«©%²Ð’ NiíŠÿuJA‰|Z&ãU;I^†ÓVûTm@5{9‚VDáéGäŒAž},2›yÂÓ¿ˆLÂk¾¼Úˆ|Õ°äŸ(F‘èô}hÁ°¤uú|ä2\n%Ueyöq¸¦#i@‹$¹‚…íÜ´fº\H‚ãto¡"[|öÜöódઞûÑÄö› ÓD=+Œ1"Ob˜79BËà¾å¨{°`í›TBþPÁ…›< d¾hj?oО5Œ% ¿uóÓ÷¡Zµ­>*UøXäg}ŠQ­CPP 7;ù‹ž¨†qwO^”QÿìR£Ì‚”ø-ÒO6úؼKù;©'“3›íúÚ¦|Mi¡.c]j©›Už€¥‹Už¼”H{{Þ¼CïE]­ÒU~Øô]°Éàûh’#Ãï’»Kƒ‘EÃ82í®©‚ÒKBcFÈñr¬+°îAy1þð°#a¡Ø<²c¯­‰˜†T¬jAt¶²¦›+8-]Ä’#Yt Z‡â JKß ƒØKáÀEÇÌ…‹ù¥CѬ¨]ÐSÀ‰Ì%Ì„ƒ•cb 1iuE+ƒÃűøÉßh (RèæÏ-wà‰T8S– #–;F¦#þâRE>|¾1û'ýå©òñÐ]¡ãÙÀçre -‚Ì&|ËEx ýhâ2WZ&ý8œ*G:³x|KW¿¡Jbž¢ˆLÀ‘Ãe#3ö@úDMQ± àÔ4¼ÿi3Ô²@nZ ÎZQ« Ò'ÇÖ‚òÎÀqÏ2;Ž'W]ë|½ÛÕ÷ ˜z°0;ì½"Ã/­Òtgè‰%`¿ Ù «¬¼k–³eÏͱvñwƒ©Và'Cp6÷?ÓÍ9”ÚTå.<æ9õéÂË`éW½ÚO6ç/=Qz•RŸUŠúŽ…º¬WînI¢JûÓ*VòV»V‚ñÄU«¦g¹òöYº‡ { _Õ>Hô±}m½Š†ŒºH4ycÆexáë Ǿ,|Zÿ~ ^Wî{Z¼®TUª#ž1ê­ºöÔþ£1í³Þ?SófjÞ0‘ï+»ðiÚ+Vâ´>žÿ«úÈ`¦±˜ãÝiîåûÕ¢Þ–¹—ávÖmW ,ôg‚2©I™'òÑ=ógU¦v„¢Þ1ñ¯b—Zôìoà/Y%5éÀÄË®?¾.Vºjv†˜AJ/•¬¥ÁQ°ŠÉ·›¾Ð’,Þ㈨À­kë™Qp¶Içð Ì7Y@!/ŸÂ/вÞè#JîZ·ÜFo00¸OØ+OÑÓˆ… J¬-~vßSª¾P]_9¾nf_ ìü{æ)4²³jõèà:—;úóþ"Ì%ˆâyÙãz ç¿cð¯ÒK«'PDðÄ}ÊÝ*dÕ6öŒ lv“ò›¨U?ûêÉe¬.6³—„SØ‹–‰|'$<¥ì„Kq£"]=+¬ÌÞŠgtï‹.Éi•†F¸ÞõÒï ¬¯ ÷óYJó¹ïÞ˜ùô±Ëžg‚®ê'¦Z'*gÀœ'Õ3×õõýóiõ p³‹¿ìU~ýàs¢ÏOä+0—6‘ÿ^eÕ˜ØÂþù)EŠÕŒf‰½zø ±š%•džV±1µNIÙ1"Á ¨çû'Ù[û‘€äñܽÊ\ ˜Ö PÌ“þZZ&ºv!%øÆ…˜^([ë“ï’ÆM^)?ù&iŒGØ›hÁ¿‹`1é§¶õÇ.iÁ#àï ªð?ýgÝlÊÄ÷ðQQÝ}ˆó2v ]JÐǤUCÒ˜YÖèÓ:Nÿêû½·l§ Ó¿$šOpÐÞÆÏ®ð« rGµA#ñ@P.çS0o VŠÇ¨O|à“Ú”X¸ æÊ§IÊ ùÐZµÑUºýÅp3ß bpˆï!üï8tp ¬‚«W(`â"¥“¾|îKT>Iþœ]‘{BÄ…ë“: ªá™•¥=ÑUü´p »W\#•¿—%^E•–bIÓÑÑøX{ARŽ>Ù£q…‡«œšŽvüžrÖ´L1RKfæ-À25Sëo²¨>´ùÝIó›RdN>»Ž+„”&8r3-ÐÇioÏÝ,xpV ó¯ëþˆ•äÔÎ.Aã8G bŸ9OñW4ñ¾.2°ÿü¦ØùŠŽÏÓ?oêæOÊ£økcù“í䄃_ÙÊñd%ÒÅY~ô´õBѬ•×ñ+ú+÷j÷²†Î°i4 p\û¤Pç6æ#´LQÖçü–þZ!¸4øº¾íkbí€`ºÓäTZX‡p•°{xÐÞVºšy}~[C^öwC>L'=!‘f逺Gnv÷ŠmôpÞq`y[¡ªŸ fðE.»ÛHðX•AáÀ^,½up„ˆ-ÏâEé ,ØÉÄ=ÀvoøNÝîÒ,ä/ÚÈà\6?K¯ˆ5;mÛ³Eƒ—â~êi(0·¬ Asé u]ŽD|\‚âÌÚm©6:(}ˆ’dÕ Fi§JÚjcà¥ý[Mk DW£j)%ïU“ŸqöRÒ+jÒo v¥=©¦ýzÙFi(i¶†j8íª-g)ýn-½Ò”$=AY•ZÖÕ”…šÌRÖ4-+ƒ²€û l¢¬l-ËHYk ke¥hY_öaVd­¡¬ï jÖÛ˜µ×”DYiY[©–²SÖv- c,TæQúZz-¦Ûe”¾AK¿Ó³“)]ÒÒgCº;0‘’iÉWaqc ›Ò§kéèpœAé—héI˜n Ø)=UKÿºÒÍ3¥÷FI‡éô¡1‚Žøü"`|àÆÜÑ™5%ðϱU@¨¶œÂ’à(nÛ¡øÍE§2r²¿(à¼cÂ'³¯ûú”n: ñJÃìFŠ+dk8¬È´£Š[`Û îþ;&€OèøB/J‚å.8ñn”?vÓó(iÛ·ÔÊÑJ ÿ.ãZàf. »P¾eÕ HiH Â\çdw9p2ÀÈS©à…ç¢süQ³]ˆ‡en…| Ê}<Ñ«Qð¿ŸA'ºéu@é4xѹÈÐTÞÜ"Ñž€ ÕˆÅ*†+ •ô ¾{»£†jœËÌÒmÿbwvZìþ‘þàèxÿõ‡*Mд^æŽío®³ <ú!d,+ÅH÷Mƒeu6ï´dÊ­ãMC!Û¯¶¢¾ùüKpëK—–ÚzøÛ”Ý­!ÓȽ‚”葃¬ù‹…'´ýI<î«Åu)† íĔٔWä¯ýô`yÝÀ7³‘ïÒãe,˜z~ˆ¸,Úꀲô`E ˜{GƵ Ôv²®í×Þ¡¶'Üö d6]¬& ƒ„Ó­„Ûëâr’…ãoOyaÇŸÔ|÷HðùÍOÒÌ©© >œn€ð–½UWµÁÏÆpøRú^¹~/Î{©Ìª ¬w/©î¬"™¨YÂá'ée…¿:Õ~„·x ü]ì̆Æœ†’K)g›+ø‹à£˜ íbãÿ8NdVËÿã,P0£¤£!/ Ðãõ…ëx´°›ß&ՀšEbìxY/ƒTþÚ*€¶æyÝìê·q>ý2c'Þ&l•¢;ŽÏ)µ‚}ÌšWQî¯6±Û"FJÆjAõðÒðTx*WðD6ßf\´‰áòUF6ü“q÷å¹Ý/ë#ÇpxƒÏTö©Œ(ZC‹¤ã)oÿPÈуÃÙµ(MÙ‚¿mõ«!¿©:` \±eð¹> á3õ¦’R),7æ'‹èl|ˆM?ÈÙĨÌlõÅ{nþ=a«ÇÀI^\[wŽì‹VTýl |ñ±}¾>þbM—Jiò>‚Ê_îf¿ù)Ý” ozÛ½ºrzØ£>.Á77/t–IcäTªä-g7©•æQµ²PŸ©&—Ãz‹¯OñY–œntkKÕ|6W“Y»úrÃes!t5·aOÍ ¨[ Óƒ$dÜF“ÿ¤.c>]¦4œ¨êJ¨«ÕÓ°øT^z˜ ã?å&¨T=è€ZvÞ/l«Ïk8éNÃð•³Ûyz¿uRÚ Ñí¯N©îÊÎufËWâ>-GÎødN©ö‡cÈ<.Ö°Õ/ÇØt|Ød:2(õnîBT©™i¸å Kæ¦FKfMÿ/"A´Ne),»‚Ë_ÒÅÖÏ ùËu’")û% `‚æü¦vÂŒò—²+Hþò ¸Þ"ßÍÝÂ×8-Q(Åï*yWà]å}©õ3kº%i̚i²Õ™‚§Qµ‘}Â]ÿ }Ñ$IºSKí'O@žÔ$ÆãØ_TyÒË•ñÌæò$)˜¼ ;€ݬÂú0Áºåýˆ6‘9*â·úì€Õé ¡h HðèHÏŸ5 øÞ»ë|¦†o/Á÷éÆxøLìÿ|ó„ï²ÿ ¾‰ùßO7þ |騻¶|föÉ)=|G³JÓ2uþoüÕYŠ®E>–s–Ê6¿{×ÕŠú9£a þª6ºÃu–p5\g×™ÃuŽp]z¸.ƒål~uúôHÁrá$OøJüɦn £³JñÜÍÿãÚmšúŸ«ô¿¹ êq  ïÖDü¹±Õ’ ÝŽþ­ìáJ³€ 8\W®+cOA_á÷fÒ¢p]v¸.7\—®›®+×Mæð†ë²ÂuN”y–YN%˜‡–‡—›Ù2¼ bò{EAÔüùø*š1©Î"Tý¯-ÎWý¯!a,±¸ZÂ~ΤÓ‹ú‘¶’2L/ë_>Ó³û—ÏÅôÜþåó0=¯ù‰˜>±ùL/è_~2¦Oî_> Óþú×rJ]­U•j=|ãŽÞ„ζ¢Á”,±á©$¤óÉ+ÑGZJ`'&ö:(Q™8v4L¯&¡]fá;t­Ê>Še÷ó²rLúˆü‚Ïžl+e ¢_Áió·Eˆ§« ²N„†Öñ†Æ$ˆsDZ×/b {2^À ·&n/Ó £ªVµÛÐUÚGÆ#°K_¥) E|´ÞPB8ÿmQÊ[äÒ"8eG²Ÿ¬B†E¦ìð”¢`"ÛA;Oü-O-Š·G§]F­x}ò2sµÑ“˜=µ–ó 3—M¥ŠŠs ?“|n¸Å•ÀÙÚZR†‰ý´¨”M†…8M¾ ææí*ŽÙrV·Ž Gt>vh«ÇïgÅšÐ^m9g>+¿Éõ–mŠ|lðz#^ÈKϽe7áj'Rûzñ„V›Ø„Ø}o8Ÿ‹’R<i’7cy7K@‘ꙩþ–*›w¾¥TUÜì-2s Ê6)Ùçw³–°æÀo†LxXåYÍfJ`Â0‹Ã §îüM8È ¼@~´}ŸTì·0Xò±¯Ö“ÈSö•NÍojˆV…}¥«¬X›MÔ“H¿×ÿ0jØu%6*¥¾ÀÞ¶óÄèœÒ`‰ßÇf#À…bj‹ø7Ãâñâ8ªÂÝQ9{¬âÍ>Åù†½bD@ ±*´SQâ›5ï^š¹t¹Îœ%ãg%›Ÿ½….9®C@Ï¿åËÕîĢ%(]vµ„+ýIH:¦§÷'<˜žÑ¿¼Ó ´VL·ö/o¯ WÚ+]-  Q±û¿·ÃX!Q¡>;§—"z±@ð³*%^íBX¶~ù¬5NŽÆÖËõ:'÷P=•Ô}WO ç ÜPœÊmÀYn·)T®EP¹ièn*%°sß¹œò AÊ÷ ´ãU)_U\€Ðq‡·Â—Ÿ8¼Ô鈦JxÔæÉ»àÚ«¶æÚKéd©Ó²¾ÄXÜð Fº¿gË»=YoYÓ%ZÓm•kºK¶5Ý)èi”¸¦{HÐTÔ~‹äàÏK‚Æ"ü‘gkx «ºkά’­93ÏÖ€!­BM )¿ OªƒönÂoKê ½)5Q²Û[Sp©­•›ð d}©±H­ñZƒa øVR÷)¶¸ »w‹îca© 5WíÔ~'jÿ9&;¸~gl&tôÂ/ì¹h€ÊØâ-Øüôû²mì×^x³¹ÒT8{àš‡Ë鋟oTÔ^ËœŽœwI§Nfrï÷Orº'€®ç¢2Å^ØŸÓjÚ…·I,Õ¥•y µLÍòÛ9oÍŒÜeä­èò¡~ή]ÅéQùË«ˆ¦ä+®t­G:3(`$܃sÞqíZ‘‘S†Œ¬ÅX!âø2;JeÍíãMÒQ›jã®wy³ü¶˜ÛЄ¦ïRž†a‹ò¶Dû‡´ã`yÅë?®_˜]síøàÄH‰1°íJb³&+*¨ÁÌ5go‘àŸé°Ï.¥x¶–âÙ[a)ž!%RÀ(ˆBåùCÇ-G3œ¤gäóÆA2± äÖXÉ5×]L^?V¿$­Ošœ#™'Ã|–Ø^J«/™G÷ÍéMþBl/•KÜ")ø­×7Г¥µ¡iQð’]I—–„Î뜑²Ì¨Ü¬×Ž•»ü(=™»ÎÝe¾wš^`bÏSt_:‘ûRmÙU‰†îÌÓÐ X›–É€:ø 稀s+1º]<nÁúpÚd³SyßÄ7ž'~ÙåmÇ*´m^¸.æ¼÷¹åo£©Eü±ÑÕQ›‡TŸ‘n¨5 ±¬¾ ?žºk Râ–gŽÎŒ-±9. Ëo¹Qës3~G;8’ÑížàÐÀö+ñ!®Œ? ÇÇëõù'~JaH(è†!©“;K?Õ‡!YÊ}dH•lûýèüÓ»öËhý’GSóÔ÷f—·:ÝA‹M}–fÉêJŽZ‚oó¶—Ø^jjþ—eÈ>×Á`"ÅŽ2\Ì1ƒê]ó[ªÈ_·ð$üý‘{tÉí4|ò·¶ú ø"ÅÍ5ö~,Ø [à LÝÓçg+ò„3l[ýO0õiL '±Ê¼¨¦ŠÁÖö‘×D ·xnácýX˜÷„M¶ztÝûFx‘:HÕ7„1F}ì_-€™CÂÞ:Æ7FÃáÚfú%øƒ„9ð0Á³ÈÀÞ¹L×úF¢ÔŠaºÐ•­Këã7¬ú¡ž±GH¢\L:§£À‹µŽ¤ëE'cñÒÝJ¶ ±ƒT‡úØ£‡è;ƒ£Ä<«öÀc´*‡=å^_`7,7? ÝLæ8•‹bÏWœN<ÿ»œšòºazjWã ^ù<ô\=؇zÛН¸;ç]×{µ©9‘𫣑eF-3øï@u²€ê šKnhÿ®"p~iO´ÂÇî€?ëQv O©D5u æyÑÁÒЊÀ‘€ï§ ŠF%—hâržtCC´nt{²8Ï+óf@ñT‘ü¦"° ›÷‹wéE± H_ÑÔšªùQvp ÉÙàmÉgñ)H—ä, Ü … Pˆlþ3t\ˆSf«×È*sS¨L_иñV¤V÷]åþfí|‚Ç ¨<Æg8È’|¾¶{ëþQ™Òäþñ°µÅVºp"òÕÆÐt¹ÉrLýeK§iˆ›}ÕDê]\·³Rø.µzÜålM-e: ŽýXj¸p>mVÅàÇ)œ9úÇžOC‰}^~'{s1ð¿K“åÙľšÒp8<ÛÌP æ«ô‚„¶e*ÇØüójR Æ¼æ,ŠÎ"~!TJ¯›½ñšê~ÚÖ møk`»T°‡r‘&Ða¡¸ÊÍò ™=š¡É½ìƳʣú 6q5=ŒÀܬ3ŒÊ´5\‹œ`©UØæ¡1ÔŸnGŠ­mù¼.\7{ßå"⎶O)ñ8&¾ü.5–MŽÁäzDoø¼´7p ‹m|—²ÊGà'¾VÃmí'V²ùœìõ°;¡€—ÏÚbÞ$>i!wLàìN:$Íqo (Í…i˜ÌܵtÓ†i°Õga0‡w£mIè7‹Ý{@I)¿Ñ¾ŠN!Êé1ðÚùvÜó2æ°6ò$f7¡•MÃ4ƒ:tˆá¿ƒ¯MKÅh¸;¦Úè­`¯½M)¥íƒà§›=û6—ÎSed‚×öÒìÝ^ÁÆS:¶ö;ð(¨ÆcøÇÍþöXÒR²<ÿ@¿EtT¼£š‡BG~6Mé(îͪ3˜&P8ö1UÀ“Nªâž²:‘eKdj¹å#{j*ªźCØ WgùŒÇϤŒ³è MJ:îÐM"ž~Üße1:²ð±ww Ö8:Ç¥¢l{é1¡Ë2îëº:¤tnQ€»„Í»‡Ó&î«{=”õ³‰êãÞø¸•zóò¢íÝŽQ™Ák…môÑùIk·â´LŽ6[p/•‡Œ7d Cv‡‡ÄéÌ `”,Naq“~Šd÷ýBƒCågKàó|žƒÏãðy>iðÉ:û~DÅm°úñph=®|4†èôEú£iãFê”ð6/Fž½+«†´°è~em؈+Ú‚9ñê{¼|CSÝyâü/¥bQÕ™«¿âPÉW.TNðƒÊñSä‰Ô XÛÚ· qü>À¿ur¹j.§W"dÎæÝ<ž„ c ÁùŠî$¥‹'Ÿ%škQhn*pì«iºÐð&؇±‘Rþëxu4X |7Öš¹Ü‹ÃãIx|Üâõù÷0a¹ 79ÛsÉÀÓÍoŠÜrDžÝ±8œBvG• О…C+«¥è÷@»+Ë37RòC¾«/*%ûüÄÔÅÜè¢ãËbô'_.Ë¡4WØC!:r©¥a$,Æ„ÑÕ|‰9xò@籫j{£>¶ìx4Zm`´¡ñÈòtxW¶&c…'z¹‡‚@*W½D*¯x©8†Ù íw³º£H‰Ò4d©÷/RL³®ò2®‡jÏÿCŒ 9}¢ØWj±aq\vUK`;6žÝ«ŒÚüð#x_Mw³Wpr MÛK§èL¯¥ÄOR¾bþãàØ¥ké”OQÎãÙ€—\wàÈQñø#¹XòöáÏ£øu8MøóÝx^¦ûü¹“°ë¨a8lõ>°ÄWÊÄWˆ“„cŠìÃñ‡_ðìn|ßû§‘4Ç}~öüênþÀÏÕÏ䔇‰Pn j#;r2%û%î&=9}ƒ´lnóÏæÇœÎ2V ¯%ˆBä(«œóx„zÐÏŒ¨„×õ,tx‚×õ‡ Ìm¿ƒr³Q™'Ì]yJ1-F÷©Ä=;âM/­jf:ÏÔ¿¹£èÊÌÀÌ‘¢fûXÉ*zÍ„ep‰îF76`@ÀÊï ™q(Æiù”blÛùÎ}÷³ ¡i™Öþ€ÙÕL{\MT·ï/ÏE±{By„ò¹SykçTLT9rÍ®çT^j<§R©BÑö/q¡ã>\2¹Š\Òw<¾kF[©x˜_W³ »Aø@Ì>8 )hìïFXÖ`{¤þFªÔ˜‡,Zú5vïÀíñD{ØR¶ð'Ep±Ÿ‰–jK“ãZRb7èàp°ËûUŽvöãÜøQqþ o']mçe­sàCÅEY¿Ê¿ˆékÛ­*Aª6²Ûàš£ª8ëÆçŸç·œwÀ²SÓçwâyQ…M0t‹ñ³_ ãëiªIYOhÉE…PG:ÈC¯ü?}=nIi2²Ðð¸Âg'*yÕܽ¼¶ü^–ô›Ø`eõ|Ë¡¬Í«ÚÃîL¯6ø}ìCûY²>|, Žy2pá£^yA¹ÛÏ^ßN‘^WB§Xÿ†ó‚Nñ:ýÀI'uîL’ÉE/ÄxPs‘æ“‹HŽ×î‡4¼CŒ³V ÈEbZÇÙ9ZÛ­ÒQ=:ÛÏ…NnY©À‰¸DMQà à4lòtC? Ëèî!ÏM‡N ¢Û‹h;s’]‹heÚÍV”»å÷ä]¬_¥‘MŒÅ™˜Û¼†Ã>D˜©4qÎI¯Gà”³ŸþZ[èÃiÊøÝ´ŠIôÂ$w 哼ÍÀ©lkUÿû‰ö3.¯\Z^V­Ÿ³jýðÙ¹ø{mv —·L¼—rƒÎUíÄ`xð~èÕ¼òΗ“Š`·`z8‰¹æ d½ÏnZÕ-”û.&.ÁÍîü™8Hƒ)ñ z+½Ô¦}‘kÅÞÎØ§+ñô¬„s·ªÒ{ðÂuÜ þ/$ļx7z,æª5óèõsÅ&ƒ¤ÝýËZç)¥Š.è²·—Ã??‡øù¬³ÿŠFÙ…@ÕHvþ1LÁxµl.뎲ˢ=Qö‹û¢,õ5£-;µ4BK¾]ðí&¹¯'Õì»íè6Æ^Ùv¬(uŽ»qÜW=£ðkב‰5”>SP“÷¸¥ÔÀXpÑ눑ý¦“[hVabéëÜ Ï²;€wµ-bpó[”ýà{ýüº`Fä£ìârm® }ìwíÍ;™åBíáM:F1¾ED ñ±Òþ(Éü“8ù‡<*›%úÙLƒ&×Hf‡—Rƒñ’;ÔýìôÞà!$K8E²¥ó͸}"v+mîbnÓh­ð°6 T˜…njâ¯mê%O“‡® N ÁíkHð<Áõ r³—²¸oÆEÛP D›ˆ¶\fÚH°‹8±µSÊålö +Å´IºÙï÷EÝxXÉïȰ¾V„khá?'Epk£b!K ¶ðÙÛ{¢$”{ÌÃ{úÏ e$B ó[*P…aë~âæ}†Âøg:‹zHöääý^_Á®m4t =•d£ÊC/'ÕŽŒóa^EþZç·ÄËkÞŒ÷ŸRãÌÈÙ”-="e÷øÞõ¥Kt ]G+IG½"š:÷rå5o¬Ýsß$Ýåݲ@é_÷~÷CT[sϘLá_ÕŽ‡¥ÇÚè diƒÜ²›ëÉ»è¤Â˾ïŽrÞ=8ðñ¸µý8ôß»\ ÿ’jôv†Ö‚càè_T&ú7›´¯O3ˆ–³wQ¼Aèo(ôwê;®„wô¸®Æ(]í¸­'Úïº/‘Ç3´SHÙr`œöîÒPœ/ÿëù¢;íÊÙó‘x¶â’´ÒÑ÷R×í¡³í™“âl€øñóå÷âÏ—=ǵ󅘕l ?a:ºû”sLí‰9C¡eïqÝ«ô¿áófz2lòù9éÇåbkÀø©xkG‡l×ÈL¸±)Æ“ÒEøPy|å^¨éŽ~¤ä¬M¤ÂaÊM—Ò©ØÚM?P»IWûÊ€e€Ú¸´ÏUó°’ƒˆD Ø8r Pü—NàA´õ Fh^ÄŒÇ ÃÏV~Ì}÷½— 'Uõ·$æ؈j KnìåIË0é6LÚéÁRáX¬"Lõbêþ™``{Jºyi¦» ÝÍ®|§/.±ËH§†íì¡ £Êtà4’Ê £2VÙ2%›ˆþ [Øõx¶VTôB‰óñ~^b‘çXÝôíaµ³áÌ\u”xá×=ÑÊæéæ€Z$¤à’ŠÄŸã†Ìe…êŠ d"s?Gïٯѷ/Gw"{ v%¬°{!ô2Îö*þ³«èe¼2˜Ø6iIvÃÞ…³X»/ˆõ#›3Ç #â_> ¦#¡²Å ë÷CUTêcæ´ÅÄÀS¶}„ƒÙÍîÝÓ,ïÞ^U2=ÌÏ>›ã_ͦ„-ÒX2ù°@± Î+*j˜u."òàüxDN,#Ó_–ãeÿ=¡ÇIÈÈÿGÜÛÀ7U^ãI“¶)M¹R(PJ•¨Õ"VSHÑ¥yKš€…V'j¬l¢æ*nm)¦Ñ¦—(ÛpÓé6ù¢››nêæ±m¤å]À (¾àûSÃK)…Bó?ç<÷Þ$maº}>¿?|ns_ž×óœç<ç9Ïyaù‹ +’+I¡òŠt{Êt¨yºVƮۇ÷ˆ_.6€ºc®\D"½\$6¢1HŽY-È;oÁÞ›¡•]KŽõx\×ãúãâ_¯¾‰ÛÖ(ÂÕè™4q¿ŠÉ| f^!g¦¯ßψÏ]šPc4sù¦Óåf†SÜOOWªØA s¼¾¥¦@[ì³Î¨¡kô»¿Ó”²ŸwÅzñQô3¾:Íõ3p3­r‹‰Q€‰r]hÁ7ß)Ço9ä%^…zä3ÎlnE;À­.¤€=ƒ†ÄI¼ÎÊŠP\{—÷ô×^ù;¥Øqª—Ë¡þÛW¬´¯JãMƒçK{d"¹×£§”êÏ“?Iíº6cÿ¾<§A>È©œ£åœ¾oöô‚¯ÉMg³¶6¯ì`µ OJo•uÝ+CNiæˆ,vË÷ª-¨+¯ ‘£ÿaqµ)p·)0Õ°(ð # weyã*ê ŠáåSºcì{˜þHmZn›u‹­Cøc³ÔèÛÉÝ—»ËÚd;.<Ó„+Öa ꨻nöJm( èbÝâ’gP8õªúcÝcÛ\“’Û\rÊkц¤–¾þi(€z¢çaš‹¸Gzô´``¿û£ìÌ]»<“Ç”Ï/@SÛ/&+–í—’ ÅÕ(ÉWMvRm˜¬˜Ü…Kµ‹8R6Eý¢J¢ þÈòÔ i>¡&ý÷¿Uòç /fæåaqGÚ]elü“ A0¢ârÎ^ú;‹*ãY]u=u¹ßÉÎŽS‘%Ù—Qjàà ԇñ´{YØ"æÐ;ù˜ØäÙ´Í_1Kû ˆü¦)•9rx޽r”È9cr”𷌎ӻ3y™È/TRÛyêl^¾¡Wj™˜SRÏç©ÍdFˆvÿ¦-Š¡²Ü×Ç¿äŠC¨Ñ*«€JW¾ÐˆÖeÒéSXø¾Öb„×—ÃZhÉİ!%–l–ò’,”µêQ%ÐÍþÄ1ª®fæÙ>…´qd$™‡”VZžÄ6¦ÄˆqX_}BÝû‚â¯:ƒRW ©ËºK:í½Ævâ>)5°ß*'øw+o:Ϻ’ªûÓµ:ë%þBcRAŽà? w`³%ø‘rà·°59gz±íD6Øá~Ý ‚]g‹µ¶Ðý)uãoêÑßsÀkÉ–:l'‚K,9‚ïæH$…Þà½BX×ãJÅK¿˜RwC¥à¯ÃJ6ÌÖLƒÒïû B‚ rEë4hã"€dÚÙŠÕ\Jr}8´j¸ïtÎÂtrî"Yö-ø1ÞM.'L.:-èå¥Ì0•2÷¢Õ ÝÍ/( &@Åë’çh§7Óa}«CH>^wÃ"¯©Ñ¥-nîëhÿ9|Á÷aŠa E#âî<’ÃI®†dœððo!E;†C泌Ö×ë׊êgabe ÿ$1pÕ‰öqpŸÛ$o#lس*¸v"SnÊPxûùçËby¾ðy²ÄÚÛqk㤳$ óN!‹NöÝYU*é½ —ÁJ}+WâY3l “Ë{6cqñ§7˜¹_•.=¦©H¦‰¬õ—x¤ÅOˆI(ä/­ñ½°uyKm¡Þ‡~k–à§P`&ém<«q+çl¡µ˜PLôm‹„S¥äÂÀ$ÌHîE{¢æ²ª¿Û(ü¼DR󯉃’=Ã(3±þq­¶{–Þ€úø¯÷¨ ¾IÜ󠔆q9˜¤é,ÜЯjA,êÛž:jÏsW÷Óž—{ÎÛïºó·çÉÑž¨¾•7ÿÇ«{ù÷dßéÉòOOÃÇ—ÉþFÏßÔ–è‘Onû˜Bùm‰K”s]Ϫ¨oâ5H¡i/[ oÑ~HöOV¥ñì‡eγ}ÙЬ¶ÄL¸µ «ÞÙz"vVL½_3E¯!4ÌÂ:ÜgéàvKÈQ/ °î,“©ÌZ\²xì»ì“ìéëT ô(Ò~:Ê´³çþO£‘}¸{ïu³¯ŸÜý– ‹Ö:ñ\¢PHoª“ ÑôÖ°®!Ó:uE7V}€¬à<Ï€s•ú•WgÄG¹Åc}ûsÐw¨"ð^óR#yAtSp…&þõäSçBx|§é·#³N¼¸^ ÿÖ^ñÚKðÏåøçJüs5þ¹þH›iÚ'Ѳ;‘þ¦Àß;ÖN û4ú;ˆþ¦ãû@ÚpÔ[N‡k; †µß߯Íu[ w¬í‚Û†4|»ÿ43ƒÑðÇ~‹î'è¹ÝÉÒŽ+ Ó¾§dF}À§ÿ;_¿W³Ÿ¤ìßÇdïT4R«åì¦ÿ;¯žMx›€ïÓtð×hÂOøöY=}ÒѧDõ¾}6‰>%Ò§‹ÔOøöÙ‹éÓEôi } ¤#Øÿ?@ªg-”` %¸„¿3šþß>{)}—o$À?Èš¶»HïÓGÓ׳Qá/ºº:~ÿl€†ÑÿÖ¾ï׾րóþ®yRßH~[ÏBJ×Ôš¸n´&nŸÔðÀÖÄèù/ð“Zz5Å PÌ„,ᤆ´³ðò}kâVHœŒ™_„†ÖÄwà' 3o Ðógð“ô‚É Yþ ·õM­‰Ýð zà x~F턟eã[OAþA­‰ûàgpkâøÒš¸~Ì­‰_ÀOzkb ü mM<ˆÓ®5ñÏðcz¡Ð›Ü𨠷i/ÞÐÿ@Z]‘¯žþ6Ðß•ôwU€ÐquÁøøë…2ƒ†Q˜ºa”þ†Í¯Âs€ÑÛ4|+mnnOlfIc¶Ži©lH—?¬HH[†@~îûÛŸé]Òµõµôé{à,é´¡Û®R‹ý'FÕÖÂZ¬¦¸ ‰êJ€K,kDw¢®à÷"ëÅ^QÆ÷¿¨ßåÕ·ê/×Nö6T³é¾M_$»z—Ú¬ Ó‚–«íñu ðâ ´Ä ´$Ì[RÍA ÌŸÙ¥Èî´”¬àʃQš×#pý.;¼{~ð» ®OàÒÁó ð«Ñ&èô‰IIÉCŠÁ ¥R½ö/ú„èþå% E.} †$¯§0ä®ï¢¿ŽÕôÑmmjMÐP#¥s'^”¶¡¹yωˤm¾Ïu¥'þ*ÕS0nà7Ñ3ž 6q:2#3j;^éàR务&$Æ ™u r¤Ø¢3."”¸’`¬.ä[Ó¢©y3îg6Î1×o‹¤ö`q:ìÒ‰ÈûÞ\vãt¦], mLxU;±Y44ÌÉl˜c® žhêÙ ÷¾ƒ Å™ê1ŠC5lìÎëFXL´&6Þ©žºz}䡤°TôÚt°;~ø6ÜfÍ0ÍZÛ^áá2TIájîó,ÃJ¥}¹»Ja¿Ò£´,_X—T\âëL„¼$œ¢xs‰ÀüÌLó3~Š!á4JùÀ7­ÓÏ¥,ª¬PHAiŽ4ØäPc’°nsc‘Ñ\\ß$î ;a¾þ5ÎÒ#¤ÞVð/œ¯â§´Ù÷y²Œá@ÑNëW×ïV³4ÊYöûZ³ƒsÏÙŽy/¦&ùºÒ\ ¬[µÚúD ü@а¶ØvLüÔÒùŽê¤Ps—ÁwNÛšll¨Ô6LOŸ„{¿"›®@ç5车‚D¯±Àì5¤ þ‹à[kòÐöáð»ˆNq•>ŒöQJ#ª‘q#r:WOƒÈJ ‰Ð²°/R£i#Ÿ™R²®”’5®p} ÏßÁ¥¡‰¢O¤\»êø¾ ®F¸$§ÓB:­N§ÃEDÏç“N×[~z=&µ­2}ýŠßv&CŠÃ&i¯ô[Cîk½F"…”åÝ(Ý‘­^¤Hr¬ƒëp­…ëŸpýipl;cÚ¡—ñ5?ðWog™õ°m“ËÝZd¢ÙE¨(]o±§¢a§IÊ£SÖ€ÇÐZhÖ´Õ–eH…zÛ&ؓ桟¯ÞvRÌ&þ”ŽùÑ&,:'m'…ú3PTöÅæEp̓+?Pm¿©~3bð÷ŸÒˬT<à­NµnÚrÚoÇé²ÚRo(°Ï+ôïi˜e‚¢¯QX·¥Ñ<¨ažeHãV¸ÖƒñÖafÁ™ ‚£Ré„#:I%é ëÂ:X1ý™â;­  ŠrÃöLÂE­C¾$ è;¾Èõ£›iÝxç«Ñ8no7Á‚0¹5‰ðÎÐþ/ùÎØþ¢|7 }|—Öþ[ù.¥=(ߥ¶£äжšú-½x¤A¥ËúAÐÈÉèpƒ»`Jl®;mês1U=eÁ^Ùv A%÷2MÁþ°}§"‘Èq:E£iú\Ÿ°A‡.=ÂÂÒ¿Ç›Üh6!ü„u+%ÁuÆÖR›7Ŷ È®‰V6¹-Á‚Òþ`õ†yÒ6i“îý/xïLÝ®À’ÕóÂ7Õ” Š· †¬- ·$Õ¤ò=V×,-¬Ÿܰ!ÛMlÛªGI›r›},¡A5Lü›|Gõ0¤EWãŒ]þ ™ÃÚÿ¨”Bnu3³S²ÞÂÉ×¾ ðdÂ6j×f:†“(ê¬PÁÁÞ"§²3 \¡"RÍ„ÆQÈ=u†€ x¼W[÷Ôª…Õ-þ=âˆÎÖ{mc¦^v_ï¤,}¼Eî[O%S˜4Û¾š ×Bñ½ºjƒ¶ÚûE¸•Þ Á?B*ü"øŸÀ;øz¹÷Ýö—¨XÈ-7¿GÁw&@£º~žíœPߑ̽üélûk³u¸ÛÃà#™‘ôUò\¢³“¿CŸfÛŽVÍãæÓÁ}Í÷R(·ÍÇt E×k†­úëSá6A cˆNœOíÖ* ð[³LV… @oáiR{sRm*VÚT–bÛmJ9_›F@›‚³#¶÷‚Ó’ªqýOóÕ ó®ÖͰ½Wó}lÛ|›ð.!8-bÛ„í¬,Ë y ³òt%¶MЛ¶ÜM”c怟Äà@n_—A𿔤T8=©Ú„ôó|õAiX!äTñ;ܯš$[ô+é|ýš’KÐlŠVÏ Îƒ jÞ yuÃB¬r3TÙ…+×{Ðmói¨4/n±Ùc©É‹…àÐdèBÊ´ÀKõ¨¹Qšiô£‘®ÀæiyËrptÎp…F´*«_DóÙΧ¸¹2WyQÀ®_¯‡P¾â]¤æ! ìY “­È2^·ª•óबù êÛËl»‘ˆ×^º¢9ªs¸€œôî÷MÑêÑbže<44iZƒqiŠÎϘX½ò5˜‘“§Nüùù0]1aÁ”‘£(¼…[!耙êkKúž‰ž}ú%æµ›"\}úö˜ï!°.½Iç;šXbkÆ\HXÐF_¾§WÛ„í§ñ›`Û ã—p¾ñ{8‘ÇÁn\]ÿJ ?yZIƒy$ÍŸ¦¢ƒüU]µeHžPÿv|%@’õ»ÞÂÃ$\!Ú§“é±LOÞ‚»õQJkÖN®;“'<ü ¼«;3Axôgzžè%=.zØtå!õV’ÎA×áñ™p36ïÕícóvé­¿žò/|ãô´ÜQs¦ ÕRCÚÓu±s5°¤~Ÿ£Ñ½è|°x@Ï—‚κeZP?Ž%ú@ ê vG‰9P’(Éâ8‹¯Ù³|›²m»…`;Öº÷3s"Ô˜7ÅßÔ°V^(Ó;@Xw 1S‡ÏuÝâXÛn€néÕ_Öá있ÉgÉÉ͸PëµÓ°Sâ8Xàˆ Qm`¡¥îÉ™AÁ"ÏyJð²IKö•¸oÁ4´w«GŸ@s÷Æ®ž×aÅú‰òÚ>%XòŽïôõX¿ðèiå<“+wpY¶²rÿF]¹Wª+÷ÃêʽLY¹Ã÷Ò²®¢5;|›Ze(ªÄêXU‡ºBbšõÇhZ”§tðEyqBÌ¢ 2pWþ-° ë Øÿo‰°à‹Û?[÷òËàû,©í)ßɺ–æ.Pí÷€#×µþC»ç‹FÀ­ÓmÝ †ÚqÈã!žêƒ""ÞÁˆóWŠ©´TÒ‡«…uETÁ,”Qètï ®&>ÿŸÚ=_6 €/–Û$H٠Ȩ vj«V…µŒèzp} ÒÀöDNí¯ÙTqj×¢KJbr¸Ì)Y·ÀU—®Z¸àú\ÏÀeJÇýÁ`H0ð:¸ô†DC’!Y~c8ß÷ú¬”,𔬠PF+\ïÃÕ×}CS²NÈ—&#%븞’%ŒHÉš×F¸^ü)\-pm+Ê ×¥p] —)ö”pYà×x¸n„«®Ùp­ÉüïÛ»¿\Ÿ«-ëìIÀÕi|6ÉY ³i9)€g™+˜oеÀ#½€gÃÒ“Tšáƽ”5bm²í«ÍVýAªëóêóðÐ~±µT·Ÿ±Œ7«g,ùø³ª‚Ÿþ“‡/qsWmÉk¬°×À¡°š„GÿFý¿¯Iɲ½f)ÉFB~¼«« üåµý2x´y1vú(üp¼ŸŠïõ=V+¬ÃH‚ÅsHX76GÚ4‹vÇïÄ#Ü…H›TRÙˆœœ%»¾E¨ïD¼lö5!ajG^ê§HÔÖ¡[B(u –ªGaœIX7h²­…šïÒ´?¢fy±Ÿ,0åÛ+Œü ]X—#­|‰G°Š`Û,q_¸"‚{fñ.ɧ7£³9[›h÷Ìê6z%‡ñ ü*?Hô€Ûë6¡þv ˆ™F"=Œ_ë)éizÅ‚Æw‚™Òte€r¥y/圩þ%ß©F¹¥™äO?°šž"@®Þ—ò$žM.¸Ý—zÁ¾íàOyýMâ¼Ú=\Øo÷Úêôf.„鯋ÖÈÿÐÉ×(I¯~>=@é§Azi%&û¹2V»%ÀÀÖÿ9…+ü1…ÓWiGîæÜ½¶­ÂãÁÎ9fÜ`Û$øæ @§bøF•?çë†"¦6ê/Ÿ¨Çp Ù‚ßųeÛšïÛÝž¹0·i:\8Pð_ àã¦û:Ú»Sø¥†Á)èÐj[M–:¥9¨ëaî$âx, õuÁ±+¤iä¬ëµÿy >1þ×¥WJ*CïÀRTU´ 44v}[¡A6êCC‰±“ Q6ƒû¦ð­¸EÔSÞšqÑþ>Mý= ÔO7ÊýUˆO»ìèÞÐh²lx·"thFpE¸,ô ÜoŠ 8¦›æë,<º)_¬*±Ò1@üp¿3ÈzgØ:Ÿ¤U×SZ}cÎ`k‘³š#EÈÄÕ|>r™‹m÷½Û~J{¡ )Z~>’wd±5Z€>§~³P?2&óžö4­B¯±ÙÞ+šÛŽ >Th#ùðÀj\=%ÇfŶã÷jßÇI”ÙvLðm#¢>&¼¿‰½N–º"4ÚönMÌÇn©âHgœõ;Rè«q…¶¿›í µjI.fV#œ_Ó€;›µ‚ÿøÖþTl¾•jékΗ/¼Sx÷f£…uãØÄS_l ¶«~K»^nŠ×úÃ2õû¡j…? axíOý1KòÑÂD¶o¿<ŽïDp²kçÊxDU2þèªd7æ­Ì“  Õjâñ^÷™“ñ’ç,!Õ[Ëò_Ce™Q„èÑ©(Ó»*ý;Ò,ŸQ2û$¯ÏÔû€âá™ÿXÜyH%ú›-áY*1á ¼*B¦ØíÕ#kŽ“Pwbxt,³ê~N^IVq~bu¿üD¬®E÷eŠãßxC­a¯áÇ”þƒ|0»½fŸ¼,žòþJ.r±å‡•×§q/öñ˜?¹'ý{0ºP¬.J%%ø\I¯qþ ¡±xh}“hᑵ¶D¢ô2`|8°òaL[èëZ\ݾ_*Î Ã@[sí<Ø#§ès?’í¹6è4g#Ä;ÌW Óxåž Œ— tð³K ›Ú4(‘k«Ã'¼“j3&ûšô¶÷ªC¾Ó‹k†ø6GúÆ@}#&˜ ¯ª;¢À¾VšDÃm_¿üá¾xøàB tû  ÊmVáĹÑÕľ´77j@}ákH}ÿiåþÏå+ðê¿?«”ÏŸÿ8üŒÏÿ¾¨Á,—¶êë«R²»(%ë¯pµÀ•qqJÖL¸~ ל1)Y×YR²&_ʯq9)Y{áùk¸ilJÖz¸šáê‚ëª+S²î„ë7pµÁ5öò”¬_Â5抔¬ŸÃõ\_ÀUré%Æý“õ |‡Ìe.Ò‡ÿ™ÑX*6¿l$–ÑÒXl†96ÊÅ<s÷»ÆíWjg†¨«M×6g6YRÅ$ëaÌŒÚiùþ5¦S”@iÀÄçÓêrh  ¾<·hBʯjðDŒ€Ø®D&‹Î a =Ámúœä]Ú þzÁ¿’3yÀégøÍ‚´Ù›kkñÎT÷çøIX—™‹Öãu¹ñòB[‹ø zU ç@RTý7+û5HOi1ÍqJƒÞ”ÍÒ®Üݹ›QF®;®ûÐÖ!bȜƒôú-â­•åäv@ú ïånÓí¢UdÉö^aköŽåßL¼=æ+x{®ÐˆÃKlÍâ7áÁr |§wx&ÏŰšºý(ò׊©þÎÚäºêë#Ä‹e'.yäŽÍåp—²–°[³fŒ¯«‡dÎÔuPÊñB0Dkj;+˹% ÞÅŒßv‡½J¤@}r„;øÕ,¬û ù A×ìõ½•ôz9½œÒBÈÑò©ô)P:¢tGèTä}A®Û ØA1MŠ,ë¶â ƒø²™&0P)º5Z´¬_ö¬‚9ÐÉø ‰&Dܦc2ò{%ÅcðHƒÙÍ_%hV¼‹YÑÈÃI.ÁJ¹K04—R.^¾æ•F´QžŒ\éí£d Är¥„Œh .TGeS`¥Ž:»cEµÅø‘¶¶ôiTÎåìúR-Gx}Т׋,KeKüÇ|=¨Bø±œ­&Võû¼ Qò–ëà j0!{7G æ÷T6Jô %ðרPbj(17”d4”`7‰_ti/Á·ÁeÝ$v) ¹º–ÆAÎÆ&×}¹\¨ÿÔæªßóЂºnÃ}…ºÍGt8 mƒ]ßèHh°º»±Ñ¡o°ÃûÄ»¹Ñ‘Ô`Ïht$7ر>_³¡.Ô5Gl­?àµC1#.l4˾œ—í1AÉP,” BiP/‡ 9…¤Bâ•ÐÕ8Hn«¿ VrIÇ}Í:è`ž¯IçFyŒ®e=wíAì¼;’®Û'¬wd®n_óCà _³žJÚ'ø:ÊÜÁ4ô7ÇþÖv(ƒà«EÇG/锯Í`;wÿE_}úÙñÓ»DýÄdo²¯Mo;wßaßQƒÔ–Ûú”ï  Êíý•F–ùºj߬…‡å Ò.árCÕm«k>ùÀìÚ¹ÖwHÝá §ÜÑÖM^KŸœ:4Ô˜Õ0¼±Bß°@ÛXahXÐXalX k¬05,Ð7V˜$6Vd4,Hj¬ÈlX ÷µfÏ·ÜX4Px}fŸ ôæ&ñ$J˜ÐE³°–öQ³ï7 ï„H>w=0WrWŽC?ZbúáÍ\ßþã¹­ ƒ&CÙ@‹¾¶þ¤GĚ͹-•­ZMa,u‹µO{†Hõ™³Qû´5¯eúe¤ãnŽ–)ô!jNV2gD–ç]ôßõú}hD¦­ë‰Ð‡ç&£Y9›<‹¶ø›Ö"Áò Š…ØCª’÷ŠCÇÐÛ¯áàâ» ·vz¾ÇvÂþw<\%h[ W\cYÓi¹íÞqè¯6–è¢q#Ò1Æ“Ý#ÃWPJUØšO‘b}!'Ýi?ÛÒ‰ ¹-ùH‹qÈc¨íË<{» —o*Àé”`×dÜ»=&'¸ Åį{-¥eÂëK,¥—h€„b¹[x½Ú2°Ú"øÃ¨š4 ŠÂ˧‚zÔ¹Õ`D÷ìÈû(vÁe V³¨dWdÿqÚf¨âãÄŒŒñ­¦àï°ÚͲŒE  Îêx¡~%WõÊCñJŽïù–á»…°:jÛ6©£ú¹4†´ÔÍB_‹ÞÖ†Jk˜½ú]ÚòÓ'l êÎUi‚nÄ6¹åF!ÐKŸ /4bŒE£ u|ìlq9V!‰ÔX¡~;viW)ûýO¹ä7–¡¾å{¯Ï²ÜLŠVd/Ï´VC'(¨ë“‡îOr \퇊$ý8[—×Ì]XbH(iÁ8ô œdÔÿ#ßšáþk¼£J‹‘ iƒ0|t§Ñä)Ä  5ɿśŠßN}Ìüu8ÙÝ`¦AŠ+9€³UokAp +⊈9hÅ#Ñ*ïµÌ¨f¢n–)h&dÒ}™…C1Ïr3èOÀt+˜s¡¥ ýFÒH#ä}°{·™‚䣃>ÃŒ@œÅi²„ð¯Ý‰€”[KÛâ´àÝŽ ¹k†-ìcßð~g7€ð"‹y/t…ï/ùÈ=FEÔj„®9höc‚Ü…À½Áû›ßÆÑ2Q š 0íòéíØ`³5GÆ¥vÆz+*Þ麸?:“ô[‹hνZgêŽÏ.ÁRÅh(ù‰[Ò-\|¼úÜá݊цÂKàŒ›gø3Ì^+À‘:ã;­Ò6vüT$Ҟȇ }¿ýb´æ(O?i…/N /Ÿ ÿ¥`µ×RÄ»3êâ°š‚0V·²—a¤-ù¼d˳×C¹P™,E–ŸYù¦7P ƒûØ/5ÑÑÁ¸œ¸øˆK„—7I{ƒùÓ“¿©Õø|&÷}UÚ2§ ¸ÖÜ6d›tþÃÒ6ï éœÂ.ÌOâ±¥RzP̉àÔpê@DÿIã6ÝÖEá8êµÐ[_—NL#Hïd›À†ÓjRéq/ûËIØ™/"}w&at Mø™g_ ?@èøK VÈO`¾× ½/¯`íWÉx¼½ÊŠCÿVÖXWvñu%Ÿû@RœÉ™íR½å~‚‘Å·¥žñSx€{Š/Í\'dKhïU¨çëÙ>lh–#Æã/Îñry)Èž‚Ko¼Ô@[±Zv=5ñߴҺ酗ZLe.éZbwó— Nèb—mK"{ê£nO^Õm¿Bõ÷JŒ¨ƒ‘¦ …°1ù#|¸Š“º\Æ$pÅŽ‘ |%‚ß` n„K`# 3¥Ö=¾.­ðÇ–;Ãç,Jî@MÕ´øs“V{”Žæa¾–„;`2̺©Þ!°æ#§ÌB§Òšà3#i±AT+äøÊÙ‹y²ÿf<éÃÐÞ%@A¶#©ð7)´Fxì+>Æ™ècFx ééF—}‰ÃÈÑ=Œkûò`ö•Ñ,ÁY©N>;úME‹ÅòTÜŽŸ~Ü¿&zÜj(Ãðˆ_@’IûÝx‹‡Î|kg¾] ÚŒ%ë=˜ÆÎ‹~À­¸ÛÅ:»TŸÀ:îŒÓè”Üì8~‘] \íùêlF–ËÉÜÍ]¥F¼%ñÎ7ܬ9šA|/Þs;™F–”yäI©<Þ•R¼Ãõxo­²ÿ¢bùAsÕJYI»ÒQŸùHÉ¥õ†ƈvº;‚¯ ÅQ¿Aᔢ•:j/Œ GF~Çj mÅF:—)&ŽÇ{•ÓÅêzd/¦+®•”+Þ¥D¥ëÖ¾—ø Í1’W*m•ÆQª8Âe©ÛÏòGÔU,à~„ü¼CVüBC&ˆèP”Y߀Ÿ‡‡qû6±«›ûSA®–ôȪ'5ò2(Ž÷<‚í ,5´ò¾Rßâ`&Ç+e_’AfAGÐ’HúÒù#Te^sü ‘ôÔ”»äÒÛŠÉkd¼OŽÈ4Meàg÷õ)£•kŠ‹}úR9ú'ÿæ:ŠìíðWÏR‡Ñ#ÚÇK%ŠV_gïŠÄ=Þ€QPˆ&ïn—•ï¦ €¡PÅ”™åG³Ê{™<£Ê~"O1†â`…ÊKï Ìb„ï2”²·zbÂ#TrÏ2XŸ;Öïö$.Š lé/Éþyíæ Kd¢9†C³³ì3">¢±Ü=rP#¤>SóÅ$ÀžPyˆuž¥1é]싳Ü)µùq“ÝÅÖtŸ½Éyd/)JÈ2µ>„“»7زn‚mªB„R”—Þâ€¦Ë ŸÌóN”ó~q‹’7Gš«€|‡úrÈš'³È)þ¬Ç?gè×¥_™@ÞvœQúdîÈ·RíT—Z+*{;\ˆ£·^ob¾ÜÄÕÖ\¥±W¨/Ó"‰jã¸'V£‹ÙÔ%Tôª?’Ô7@6†¨#Hnéz6ç{y®÷êŽü–w#‹ŸéràC(ð ¡L:‚‹iÛt>/§Ó¼Tú$•P…­÷È-®ìáç*/½:é–ðäŒáè÷ì,Oý<ÚɆ|ƒNúKý¦›\#mBMm’’>•:VÔê1‹à_…\“Ï-¹È ‡K±cû»eƒ÷b4¸(u²¿é–ýHgàªN«’½Œ¹÷ª«Ò¥Jˆ¸lÃÖ{¥ñÍErÈCQ¢5gÔ¥Ô"b.6}Vt%ëå'6Ù®Y]Üc.î}¼eÄÿÛ,¥ÿFþ㵑ȜgFc§ ˆõ%û‹ØBÅWâ±–ý-‰¢j×_ƒ#G‚£ ‹ÏŸ*®bÁëI´òhQüs³Žñ•@’ftÚÙe3»TGÚCâƒb–ˡҌeR•†—fF¹ˆ)Wk?¤ÀÇÌÙ 7ûÍ¿UØÌˆÇc'«Š– 6Ç{7dH¤ãâø1ªà¶ãÖËuÛ@ñÃØøß¼ÙÈKN62ôòEœÅ¢Âò(×¢Æxã¡9UÖ›þ-ŒÎ¢é*ý[¥°©Ä¥7ý+Ò?uî(??ý«@ïjÛ9W]¨_~-/ï‡~U•_~…Ïý(ú…ë™ÛÎN–DÙÌ‚´¹Lh°4#Š ÅRPfÁûÝʺ—!¥ßòÔHà·E½Bq6{îã‘ÄͦEK7Ä£<{HÃ{VÄb/‰_")zñ“¾CF'y6Ž91U(FÇ 2)¼äf•Ñ&eÎé Ã^§0ìÞ‡äA8³@÷QùZ}YŠR(\à¯9)¯k×úö¼ÂŠ¢ã`Á 눺»ã¡ØŒ¡Þ1iivCÒtôÎm 눺Xüýzvâ°ÌðíïÃ#(µÄ8ßSÊQ7¹JÎèÃùINƒ£”徯ñ2Ô·óŒÀß|Îd: fâ6’hA©›5îRhP?7’@aª!*L°³½{šþ²ÚÙ2›ßÏ||hþš¥óû™“æÿ§ùxîGÌÇ£î~æãGî ÎǧÏþ¨ùè nð‰;~²v»¥ ¨½‹eü½ÝÅ?™¹óNã½Anì5ÉØ(ow¥úr˜4MÏjsœê?D„¨0„uÀoPÔS%j¬˜É»ùÊMn¶ée¸–µºÙÔ÷Tª0 lÀ-Å@îï3f'FIàB•Á^7›°S]\ŠúT½r—‚Iþ¾FˆbTV.Š’ (»ßhÏTk”_3#Ô”e.w”@<%z—¨À?ã¾SðçeJ’²(€·«/ ɺž ?¦YÔÒž>C!B=úŠG œ/‹h‘—î6„¤°BŽ·s Ô£¸µÈD– ýÆÅ÷–ùš£Ñ Ú—”ÊØEï)£|I쳯¢`–L`ð¶G)Àê‘ÓGÛ·S´u½jvªÌã?•4B} îgöSµÆŒØ‡na ãks²»ÔÚÞŒ¯? ®ð‚ôgà¼~èÏiç¢?{œýП·ÿþ,ù1ôçg?ôçfçéÏ‹ÝÿÍ~Ƭ =M d⽇7Æ£ð?¥J½®(úïP_N^ÉXæ9´R²ÌÙ#q9ØêÈù|Œª{XSìlɇÝrÅ?ÇàºØ¢ùn¥mùÏPͳ˜JaW¯lN̰ž•oW°øZy=ËLNÿB¡Wב(ŠSö fXê.U2‰ï­A”«,¬X‹¿ëñ5fÍ~ù5þ®ß¯¼æþåU QÅAt› ¢w 4QýU}Yàâ0ê:$ÃH›v\|Ý µ9s…ŽÍâ´DÝsÇö‡HÞÙqš“äÍÑpXòwÃTŠÓÏw7ßõãlƒ±§(‚ÿ1â’PLòѾî‡á\ƒÔ¡Ðj³½ØqWçì£ì>öáÖn.1óJ(©6—²;~Õ‘67n²n^q쟳ËïÚ²/ÿÆùø¹qü2­Ç”|JÉ/¶ÜÕ¹#M«YÑúehÐuR+4¨BL\ßÜ6~L`º‘;¢Ÿ/½(ôö(…ŽîÿíQ ž–»pâ¨ÃZ¢£›H¢:þv€ –3 ×Õ­† ü‰N·ðè?4d$í­LÉ„¤à…R‰¡ÔÁÞZËý¹—“›w“ úwVö>^!µf¯Ÿ‹¾A~¯úwÌŠ¯vLýstýGßUë¹æ 1lììæMÞ"6 ž/t¾øB¢dy¼Ø ˆŸŒ¥vÕzN«2œ#¥´[Èòfú+ß+3Ýǽg›"Ü‚²Ø{œRµqøEÖ¯þ¨cóè~åÝÎ2—ÃzØÚÉ>†’,ªêÑ©œÛ‰þÏóµª÷h;b»§ºdhV÷Q¯ÝéÌ~²›£RáFüKÈ$•é]îÒ*óa §¢‰OÅè Nje¬¦/»ŒñH”içˆ#°ÊzЛoÚ{S”oR m³òһʖ¦É_¹D:°Üî•ÈG+ÀX¡h¾)Ô°4ÐøÊSÅ›iw±?¥ì¦‡Äs0Þ!˜jÑ#ÿïøf†ºcWãÑÒ*i€Ô,nf†æo Ö¶æÏ —D4µµrMÍM©›|-ú9â^΂IŽÅûbÉá Ø=’#3`ϔٮ€=Ût¤‰Á¥†À ÒÏõZ½ôsðÑÒÏZ£Tj ¸LÁ{-Áe–7x¾RÑ÷š…ÎB]îàýüK°Ú’qâyiæâõ…œuÎ`%|=“HX;J㥥̺CòdXß“–²î”vë¶47:u·Tò•u‡µDïÛáÕáÑ©íRIfÀc±–tXK ’ljÁ—#£SI%ßCâ­Ö÷ ÑPGeiNÀ>Ö×dšg´b£t¿AúìµÚ‚2²ø¶E‡y+ów|"¬´¬äª™0Ç“úkQt¨¥ZH¯YðôæN«J(WUc€E˜½Ú‚âë„É ¶èI)$óí|Ô.§ô Û8Á³c ¥ãv%„³DµƒõãÔöð†ðFñÁ[myVI}¾öÄÆ7$À²Þíùšº¿ö Ž 'Ü%¾ŠÐò3ó¢Ò M bSëF/ñžãhôß.$ˆq°z…·Æ–ÊS‰ÏžÍ0’0%`öì”NZ[OA´}Ö#Mª•ãÇz²7uט¤ž1]©û î£r¯ÎAûÖcÎ3«†}¼aäã@å¿%tImض1§S›Ç´¦¶Á´9*·ò@c‡·‰´HÁúdÊí×{©Ø3ã˜cÎÀ´]9VZš°ÎÓÁ•×S\ £X†-Ý×oKß=KiQi†6ÂmÝÔ«­›ÏÓÖoifGÛzfÌŽ>mÝþ_µu× UT‹o%R˜–òv¦ní§¥ûÿ«–~ÜOKVJ…(¶¸Tþmýê¿j+»TS›9\ûê¡ÿW;þ«–~ÿ_ãj×ÿ€«gÿ«¶¢åÅ„j”ó€–¢§Žó´’˜î.`>ŽŽn"j“nƒ³óŽô(­Ã@<÷6ÿdk”áàÜRt£V¦èąƄуSçÝÈ&·èxPi¯uŸõb8 M ”~/²)ÀýíE6%–ó€è@ë1ëIb>(G ótù rïéxh*0]å«(5ξœò)ÙÅz ú+§æ;ZO¡=9”þ;\a¾KHýŽèò®è:íÉÖª+ ­ãäö|CP=À`÷ȧQ»Žó›Rz‰¼L[;t;tÇ‚+y? ›Y˜G2Ž+’ÎXqür0G:‚”'†5ŠkÚ˜á ZOCÄØ© £8‹Ôm_öeÎw¥%kPx¹MýpEÈÚÉ<Z¨<G_pÑå^á‹p’¬¶Œ×Æð j‹úãA ´qk¾)ŠQÑ5ßËŒ y¿Í¸³9<äD(_ÿœ4­&?ÉÄ­ážöüí¢Â¡Qèz{ÂtïñÖI]rû¢Ô8ŽÁ6jÕ[P`ß&hŒ +eü쳎ÈÜ­9øoÓnœ€[»äØÛõΨ­¯y|FÁë.ÝnÓ\9‘2áv-0Ó Í4òMÛT ü˜3ÑâĬkL5KS3*u­§)05cÑŠw±!ë–¶ÂÅhℎšÆL»³­ÐxqÇѶBSÏÇo>ÙVh~`Þ5¦¶ÂŒŽÏ÷„%™’ì@‰'FFÂ\“´_š™Ô·Ûš]îûu‘©ÙÒÌìÀÔLiS3¥Û˜ Ïÿo ÉLr›m›j¤M’ÓCv4ÕC,ÀAí†NŸxžvÓfßçºÏAÝfÝ®\ +¾®B2d™éݬêH$â;WXmÅғЉê©ýÍ“tŒÛ‡@‰\Nó ˉç}À²ñ#2Ë’!~_¥´7¤ïèª ª ÜíAµpõ|y¿äÌ”¦f»q!Ðù¾½±µh´¥U:¦[›|‘ñÐCm…ÜÉ}¬m9ñ¢´Kû+Û|˜4ü o +ekÖôbxäã)}àŒšaeXD3 ÍÌf.$ÁVÃÌEÒæ†©•Íí” ÀûІ©·pZPêÅ 3om˜ú“çml!ÔÕ83µa`£s@ƒKÛ85¥¡8¡q¦¡aŽ®Ñ)4¸ôS6'6ÎLk˜“Ôè46¸’§i(64ÎÜ0'¥Ñ9¨Á5 qª©¡8µqæ°†9ÆFçÐWZãÔô†â3Í s„FçÈ—©qꈆâA3‡7ÌÜę̀lp é'üêvOÓ‚YÌu_¬IÛ^݉ùŽòA—ޝ^m:+Kñ\Ù<ªj[›PŒ¬o¿òP$WþŠC¸QSìch»WO»+O5ºP)”lÝñ;ûÙó¨ìÙÐL5,–ìžì¶Qî6‹Üß{$;Z fK Ò aÉ¡§Êa@C1Éa”f˜\nH\jA×xŠ8pì‰çQ:„M0{]ßì­2—²Û®!_k«4rôöísj3~Pê©?+ßéÓŸ?<÷ÿ®?‡ÏF"U9U¶újUÖ;ÒÍ>ÈWœã\Ò+†!·U¥†ž\«6ÔÚ)íâöù³ò½ÍML_R«×»Ã ú¼†„ºÏ…)u§SjëšÝa]]s^À)žó}»¡(ê`ðOkû OS'¯× ýHÙÆ³±á4%½…”¾QÂï`%ÝêŽ!懰ñÓå~癩ñá³Óª´ìÕQd]Œñ¸Mš¸@ÔÞœwVñ JôlïPªËîYŠˆýú%&t•™U©ÅÈçHñÜü|¥³Ô Cùˆ,O&vűc€fÝ€=Ê€%ÒÉ©‹Ï™C?ã' zÛ)ïMmÅœ”sR^ÌIy1'åÅœ”sR^›¨ÍÔzØ[ºQÅsh•t5䨭͋þ>¥v©•¹z5ªróóÛ¨}µ Û¼žÂu¾»@×9ûÚžH•Vêð @]ìg7£ٳŠnåK›w#‚h|ŸóŸ5:6?¢c# ½¾Gíÿ¢3Ÿ…ë±0è¾.mµÉ×5¬&UÒoÚÞ82+¢Y’ÒóñŒhóTD”•ÉgDò Äš }°Ø«ØîÛÐе©£ž¬£ðirù" Rþ9,0yn3ÿÁ'oŽí„·`E¢“7ÓvÌ›a»¶ryMN7[[¤Cy“ rå½~º/2¬úÙ5ï6b<Ü ´É€4Ü,@McÛ… ¼#)0h“õY «Â(ºMjݨ^R`~î­¿¦^ 5Þ4öÅ^Æ–¸³"ù-c¿ü²+"1ÿa1ñmìÛÉû.é©Çg~™ÛÓQ94‹}{#GB£¿³¥C¦¹¡‚ç²ì–¶?æ”XÅ5ÿï%ñÚÄßV”W¶%bó4´Œ. Á t‡êÓþBÀ¾gkR²ÖâC[â~¨›Êæ~ˆºÞqkTûÈž¸eÍ~Þ—Qì‹”þ‹&^ÖKêBQ¼c¶ý]¶ҮŤ‘ô.«1kí¸å)Ú_Œ/ßÅSØ1 ž%‹—¨Mî¨Uš¬?¹YióÓû©ÍÍò˜³o¥é}ãßR„x¼ø³Š:Öa,ƬöÆ;| á{A®'Ïì“ñf·Ñâ;­V¢Íwzª„'œ¶DÄ‘;wÛl‰ˆQxb¾ÊÎzDY¦GÈŠ4õ&÷*z=vÁî`[T;›t)]CúƉäù,§•ô;SÚô;ìAzÑÒQºÙ0~°Ï›ÐuòÚÙ{{cjäðq³ÿŽ™>yž­êt þÙ$ŠFŒ½œ‡~ NOB?R[õ$RæLÓZì®P_—@a‚nnæÝØÍ銰ò.x ËÁO(5€a-ÂJ¨/¥Ô¯PêâhjJV c÷;§œ¤ õ—àKÏ ”vD4íÀÔ¹Œ=P÷¼0Ó¬{[VZû.µìkT;Ô´%*ÀÚHã„ë«‹}W%3xËq S‰)ãI„cx4š¤ R:¶<`æïR!%ÞÐ)4¿•L¸  ˜ª_˜ö1¢À¢LD‘þë› Ò8¢Ørýª„µø=RA(°)(PÖ;‡",\žg ÃßæÇ÷Ê9¶JªÒÙ$9åjJytC|JõÄ»JφÈ)WRÊM½Rª­ÊÚÓyÊzJùô†óÕn`ïÈ)«)å½ç­=•=!§ôRÊéç­]`wË)—PÊQ竽¢²ý¢wG*z+ȳ‘Àa Ó¶ò³³q$Oø 7 Íj?G£gf1,íw(SVK-P¡˜HJ‘$¤(þ=bâ›ô˜€ë©‹˜ø=¢³¢€ÃÉ$¨LÖ'0MÂïbìþ2Û¦iÿ®• õ“^Ù=<Ë›áÁ;«½BÑ+ ð‹BÑÎ ‚%èè@˜¦‘Š T©-ºÅa¾¦&•oƒS#a4a˺“¯–=X.ûb¥lïC¤ªòó9Œo•Í{’kôºP Y*6ò†*Å» P”™P?Ån»\)öbÉe,eåX,zS bµT¬vÂðåú £« ²ƒ¾T ”ðD†Ž-é­/RhR{htAÉZ £¡i¬[|7hÊj¦úvD¨pœí¶³¿|Ù%ï‹FHÉ\©…hÞÇEHe.·A±|„’jÞ ÎŒ„_— a ‡&‚MÔ„ð P¢[)Q4,R2BÉ5ƒD¥¡Ôøß7•’¡WFh€¾:AB’Í"VeŽ _ ë¹NmåKR”e„²’JjKB­ Yµ 2—ø·Ô¤$[r ÜÕ“†Ù†VBO Ð’6 _Ú¡9I¹ÉppáS§P4‰Ë ZXwKðÍ<åMBoÐwÈèBÏ|vr8 ¸Ë•ƒªtUZk§Ç>c(ņÏA‡苇}ü,§ñbbÙj ƒÛ*qœ`‡Zúh“o„*õ{)Û@ÚzÆ ÅB±ŸE[ÙÞÊB€ÉðÚeðMÔ@-±ŒøÁØçƒ‹m÷ÓÌTx‡Ëíé‚fC.= *³¡¯–x I:3¤iºÁθ .RŸfO"-”LW)3BO#Œ·üy¬ƒUóÏyðùX&~†ù7^þ\è`‹à³G?ÉZ îè í>6 ‹êOÁ @Tk Mú>‡P òšAòç뉈)ì¶÷p_!^õ\F(AÜq3ÄRv` [ššdÒ³2…h¶ úØ<´`)õlnƒ–®E™(¬Ï„*®fÛ) vdú,&U’&j´’6±2³5ì_X«/ÂVBcfIs0 J‚:%AMJ%¹Ô¬ îŸ=×$¹LJJ—’’’UÇ€ëã~oDv¤pg_}\_ô“Æ×Ö`¤ììŽKº˜Âþ €’•QÑ­U"»ë -r?&‡ÝÅÒOóŠEÙŒ\í>éÀS¡™r¡ƒÔB°2(”ÛÚwŠÉl–ˆ®åÍv—›½8­pëB}£†›ªî¿–û ‚xcg›, ´I–?:!^É3ʾG¼%j[¦Êmñ+ùÅ«%7êŽqNÑî1#ûÍûÝTm3rÕ¶8éAˆ”/ ¿K-QøUíì¿Ë×Gá÷É£?~»ÇDá—¾3~û^…_àÑÿ ?ÿ˜^ðû~Ô‚ß´1ç_ÁϵçGÂÏäcoa‰wX‰˜æyÊ`:'9ö< á¬5«€3sÙÛ’Ð_ »þiEÛ>ÍS‰÷–òȯØè_>«Qœ ¿ DóhÏ&`^=ã§Cê'÷+ó 2¤ªR÷nQðÿb¥{sày­2ènR¿]ߤ£”Ž]wx Óq£SN럱‚JGÈnEÈrJ/ÊéÍþ-Ábs Ù dËТ$#´kÿ{†Âú-âiàr[lÍÞÏåÌWÖ夹nàesø‘¾ôŠ_è±Ý.·wŠ“©èé뀠ˆü¹˜íhªÛ[š+þw¢e/…t“fu©ÒúBf§â ×DÖ!Éi®ýša®º •¤3/Cõ½\¸‘ÆU»åg‘<•]¬¡Ã3ô×b*s9"év 7ÝcY£G ;é¹XÿôE¹fr€¶q³m«×]°Ðë,H©`»"û kxNÁx±,úbRA¼ðF_Œ-È®T°¼&M©_Öí*õ,Tá$‡Ç£¤6Bƒ¦ÙXõ#—]M¿Hî8ñKQ~V±Ïp¿ƒ#`kó–?sY¶‚"³É¢Ï52ú¤ªß²¹¦º‚>u„>™d$e¬”ëBkë¯I m9g¹3Œd`ƒ/šP«3'üB/ƒS%]aE@W‰>Èøò”Iwt,8–â]Õ —²>µ›Ëô¡MÃXbÝ‚ ÒÙ¯Õ\fŽ?ú(5@õÁê3?]¸Ÿ>Ó§Ö¢³fQÔ‚“r³¿³&ÁÚI¦‡3 R»ðòrX²é©S=€åÃ×!ùÊt\¥~ׯ‘•ÝC¶vXqöÑ(é*±ƒ‹°ƒÁi¶Mó©æu°Š6™ù¤Ìvöé/`.ìÂ>ïSð¥=s ô¹Êø¹¾-ú<…÷y õ¹µè ³Zè;­Çú;ks„SÍû»Q3!øs³j>hºC xQÚIg#P¨ÔRò®Æm~næàà'7€L¶M5W`0[óò )eHbÂûÌÁ‚$H¸'<¡kµmªÞ+—·>GéÓ"ŽKÅ2.½3JÁ¥|5ÉD™„­U¿åp`;A· U¡}\Þå`—_EøÏÀžA‘†Á¬5ã)~p²Ø{‡AØ(”:`.|L4ÀxjÿȦÊSû+BhÃû‘n¿-Tö@ê"ÙY±…ÒVëáò¦ÚB–¿À«~ûö^ôŸ7Þ ëoý×™Êú”­ø¡Þ–¿oÊTÒȬD2L® @l§ð¼/CÌñK|pLÄò·¯~•­l$Ã"ž„ UÔ'ß¹q, ºm®Aüº±ØÜè6ÂûÚÌ[ÄH´þ^|v’Sª4ØÞ—¶Âdì.ÖÝcÖËs7‰—X› ë‰#›|û1JlAÅ¡¶÷kqg—fm²½/ü±‰ÜfB3Ëœí< í´n"øLsøRë¸ùC‹ÔEïžh¦wÄw)ôî÷ÍR3JÓ®ìíÕAù)8Csü—)Y_É×qùÂû•Pçp½ ׳pý®×~Åípâö‡x:SbpÙn2¸ÅLÀðÆaÁ¥æÆ$Ñ@‘AWæ¸ý®¿nì%^/¬›nÎ5»¤ AW¤ù`²Oõà)NaÝ𻚦N4ÖÐä›ÄcåVÅ ™Y´ÄŠß¯(x9Ex8K8í ©|­Ü\c°Ä€tšã¾¥„øßP_þW./E¶‰ ˜¸@õ‚õuµœ¿>Ikk©Õ…!W k h}45ImZ"©|#ÚÂ7¢ø&ä;dÆ%$Ó%ÝoPÎXr<= YdIÂïÐ4È3«„{ÐËÁ|r ßåÌøœ²_”Ã&”SÔ€"гâ4Ζ27·ü ©ã`Õ©óSrö8Y^ &ÊD¥JýžCq e»¤l;ðËÛ oq墨ê`GUB“q• {'[“tÅ )•6eÀB‚‡E’}Îd‡ ä _̳˜l{kõÒÞp’OI·×¿Ok’¬ô‹k1€n }КJ²6‘î$ùe­â?,êê×ä~`kÁÔË/iœ•až(½fÑ$í°€Ùh¦zZr Éç§¹örQrÛäò¡„]Õß6ŽÆ-~Ð;À<>‹ò#!ËPÚz“mWÍg‘[`™Cp [‰ ØWUi^£Éxp¿Göà40áœ|î‹_jú£ç”ôÞá8a†ÉGAKJ5XÑ$K“¡ MZ¹ 5ò¿|®W}О·>L¿ü‚õ Š©¯L)Èw()l¶K nÚ-£?»¾k)õÔA)üt0]º.Z#£«÷nÂ(ã¨PÿhCÙPïåâC¯“1t³úÝBú«²‰¨zôɇ †ÞD>É`ûNf‘¤Á€Øiw”±’Qˆ˜&´öþÈÎ~®‘Ï;ybTd¶›ñdšâ;Y2ÃzŠö <«m'`èÎp’í=ÀÐäp1t 94… lm2†e 5ænlÛç”>‡äîw2¯©\®Ê¹P3.œ «øó¯¶X‚Þ3_>ECÝ«¶„µ… ]ýo28f›Èe¾ZTüø–å†ÐK¤Éšºšecq7’ã¡S¾aüP`¦p¡ÞFÈM°)´5×ÄIë’ÍwÈ@æÖ&ÿa”?U¹Ü¹á7©àëѨ¾ÑÐ0Ë"DãmÂ,o„Áü„ñ©Žl¨—CÓÛµ‘LP£ !ß²lóvPC`1 GèÞ×Îý®ê‚wLûQó˜œc;÷¿‚ ÊôÆ Ò‡BýGZŒ£E"²<\1¹íáñzBÁÚt¤ªö2»’|ªQšpJp¶–†®Ù©`k«M"EË6,£‘kîååv /wéΡΕ˜]¥åþc¹#š‹Ðwe«F˜PI>Œ!·ì^–a‚ÃâÅ`Óˆ1HËcà2ù›jkäñ˜Gç,¥v+TÈEÄ[.kIçdÆ;›s‰€С±Ac†n·Ž‘þ„½Lååž‘s`˜eÌEúp&âÊKüMÕKî8M˃äJs–Å‚^ƒIï¿Y©hsø9ÌXù¥t<ÊÊ¢F&›÷(Ë’{ a‡rKU7oX¤™6µ5 Fón‹Í‹9Ä]X79÷ŒvPéœYöš*¥œgÉ'× m ¾æ(î^L¸~fÈëg&’#K_r”QêYÕkýOiû3±ÉÐ?ArŽ%H• ]+¤ëÕïcð;™Ë¦¼³>P w›c ÉÁãqΪ"@‘œìº´TâÈhgãÿJ.À*Êe‘£$3÷ch"§¬Hp2m­@ZÃÈU˜t­ÜeX '=¸¤a)¨#5Ö‡øBjt Ùz–_†Â…ê‹pâ½#Ì8?¥]Âê–R¶á/]œRåUöbÜ‹ ÃÛ¤Â;³Ôóœ oK¼> ocÿðþÖ ocx·™bámŒ…÷ÇïŸÞ¸ìÑ¥5À»5#Þ›_ˆ‡·±_xC)ý°(™2‹’ÉEy0È €Á-Éí²®ž`k]~­t<÷˜­£6æ´6ì²íV† #v&¼Ðkrâ^ıײ~Ž)ª_ô=®ÝŠé±b»Î¾~ª?}#òMŠòãëÂEdè]¬n%o•7[óÜsUiØ4y( ÔoÖxiØkÄCÌÞØ‰5Å:"¥v´ö2_îÛŸÂýõ'ýÂý¹´ýBýixþþ,xžþh°¬æíÙ§4ê]XÈ-ŒÉ·Ü  >hG ë’ìhÓë,‡åx*Š;„öIêŠHËÑŸ£ò»Û~)¼ÖõØNÝ?XX7Сäü¤Øvê¾#±Ù{žïŠWGÄúÿˆúß~¾ßúÿôü«¿¶¿úWþ˜þ÷_ÿ¥?°þžçú©þéÿsý÷ÿ¹Øÿ>õãÑ»eØ¢N¯9Ýù”£œÚ_Ô@ß>²B™seî`fž5b;qÿ5Ò•˜ªL_¢0âåÐ:hÇÐÒȼ‰¤øTl;q߿ݬ{-'‹Êa;Ô>|±ÛÖ{–ômÏ?×öמ%j{œ”)å„\þ0kÊ šþ¡l¨¢ù¹ü VpïBQÄ;Ïü‰`)Ò°})Š4,WJrÛÙ£í\„/™àíMP¤ø“ÞÀ èç")bP¾DOØ!zCø@žœìl)w8ܲG´ÁtÞà’¬}Evר\à»A+ÎCvëYäÌYœœŽÎXÓ<=üä& Ó]ìgw’Dš=òÏîˆ|TÁEÑ’.°ÌÐZ4Þ M•ÅÒ(ÑmÃãM|ã<Ò”ƒw6Æêðþ °í¬êïtÒ&VVg;ìl}é<˲¡e46–WûŽ _²Iù÷7†‚—¸ìÒ1vqúÙÈ' -ÆO_‡"J}ëýGíŸì|·èçW1Ý«¤·z©|€Ó5åÓ_QpÁ‚•Éî{‘쿳&q#ïÜb6–ôáç§u@¦G1ø‹¥jÅŸ½}'ê±$úÎÝ)&]l=ð“NØZÖ„4bâztLSæ²{þ (¸AEï‰7öD>áa;>É´p·wnöÜ€Bèê>h×ÊgN¹-¼QŸ<À,¾Ö¶ÿÁ?Èög©g_îŽð9¼ì9± ¯"&¶·¡³b‹Ývé4{åØÙè üöùË¡tBž› üö ƒŒ¾ˆ(Žg1<½…ò®I|[ËwO·ø¼×ø"˼‰¾È|1Ç]ævzæCîªBèsNi8¿A ó1Á=âÆ·JÆÍ oð7Å‚É]fwzJx.ܲÁ7ôà~tp§¾®ù6él›˜Ôˆ!dæ×oAöÖ›pêSj]|3‰Òz¦Qøa(Ý–r ýÞ(E!~®aº 1¬åï¹ùü|1”yåd±ôDaV.—§ÕDÕ£¢ÛóÌM¨‹ÌWbLD¤ÛSG¯w«¯õøºuºVÓK˜3Ñ?¶Z—"U¿G­+ͳÊdµ×Ò¹êŠZ:_½|.ÿ”Ncáf {û)õøì-BwêKªewê@ÈFE’%Ð ]oêd#cét¦ë*eOVˆ5™òöP¾¤ž¶b m¤zF¡—.v-b&IvÓ ü´×¶Û›(J‰÷gïÚø$ÔBvH”ªMáäÐת_Ñóäã#³ª÷®ÁS…¬ž¥›‰øAÓœÛePõZ-¹`]qš\b$76J¯ø­?y)µÓΊ¥¯P¿Ô½¡³Xi,ÃF)©0œhJ$M·“]4Voªt%•Ý¢XMgj°=#D·ËHÏcEa˜¸JV‚.•·ü[w, DøF6XþÃâ ºÞ1’aò¢¬é¾sZq¨ÿ€ø¤÷?Éé £#ËQ·(G–É‹ÊÛ+¡lÿ<¯,$„ìïØÒ;x½\¶pB>¸$ñBe…ÿ0NŠ£„d—d?B‚Hì×äEk±}J».v]D»Zä/X $Ö ÁÔýØRÈÑôb ²ÁÙ'Á™Zôب›Zß$žÎýpE7î:õ3‘$¼üWZ¸óPÿq°Ÿ‹dø,ùºµâaÝl¤*ÐÁ@^AgF)‹T¨ºlêKÝ‘EÁ冚¹$hþ…à$ŒÇÁ#ŽÁ+B°º .Æ^páí¹˜vf¸‡e0 ”2$ËÆx¨,ˆgÛ2Öq.¢z—J wuf”Q¹Qöõî^Z qÁâÏc”òž½@y¯}üÃÊ‹µÍ)e;?‰ÈÒƒd ¡òÎ2nG§Û^Ê~ÿ “¡ÑS»Æ4÷Šfëߊ(íu2¥MÔ¨"lÒ¤ú]lŽZ÷:…pÅŸbƒ¬ÔÖ«¼|¹¼E”ˆ+Í3Ay=Só2ä3[l!”,6«*rrüWI4óÿ…´tEáéާc O“_àú6bŠŒ¡âüà˜žµ ÕéÉZþÒ OõwR|‘ó¢]kQÌÀLÙдºû4ŸP aYDÃÃ?!.ŠzŒ%Ëœî·PÁÄ{¥4Í Mƒh{P4;¹Î±³ Žª‹•g1ñ-YÝ$Ã×jnÈ‚\Åö¨ööÆ¢«ÌÂÆ]¶÷½3 z§¤ˆ)­I ‹[“¼á‚ÊÃÏÂÖ‚4åá¾ð¥ÙÕú‚åՙº&;)¸"éùi8¬ádLØT ÕL·uU?‡Ð YU“{ÒwÄŒÃár°w¾§¾f6“‹üw•ÖμÜÏ&(®XÆ—[]DRöìŸÜ°©Ïþƒ´£k¬{¸b4Ümá<ýRƒmgm‚´Ó¿GdÛ)¦)¥êq…´m­I¶ænu‹LP¸ëŒbÆÁÅXÕµ8Çl“ 5¢+èÕša—¨Rg±¢j8ó߬ |REûæ?wGÐ<—û¼#ß8U7JÌ¥­…éÒ½çRäרNá°yRú!d í3Qæx>†5G]Nò×ZÌõ¢…ú?@U²nôËg5Š×õ-×{{åÌð,·P?‰ÁDÑD—Á[àmP]ðGøéKfÔÙ«4×u ³i×YTXù5gE³ýMËEeJÜZ•Á~º@K*{õO´©yׄŽÒ @mÑ–™ôA/¥ÒÈœ6D]çvr*¬Ì YË‹t³ãÝDáðÜ‹u÷Dx-ƒu‹ék‡¢=£y|ƒùj] 0³'Û¶V.u±;º"—ÔÅzŠi¯Š$ å¢%4ç‡<Ç÷R²æ«‹=¼ˆë¯«ü 6ú9âàJ"`ÜuºÑ«ÿ¿·Ã$R}Hâ=|]Š.^Ë¿Vôg*ëg•FÚÏê,² §´ºY;ýÜÂc¹xÆs¢&c•°N?¸¡wÕ]}b±íDu»í„Ô#1zà:ã8GLQNÐSóS¡K»Jü{P^^{Æê³ëιYÉ©ˆÂà õOʇfn[uÙ9¾y•’E±—f#4f$®÷çiÔc;!¬œ ãl뮹7÷3'Ös°S]¿¼ù¸ùÀUëHòNÄ•ktT?/<¤—ÓSÌÓ;g&z¯yüÔ >pz_¥acÆD«u‹s°6/¹¨–ŒñÆÑâ\ÜJ»g„à¦všô^îf‡.dg—Æ´ü$u-e÷]ª¶\œßK<œ®•ºÂZà6«×Ú6-_šËt¡2;ûìd<Œ€Üh1Þ ý ¾_§ŸHTýõßÈã’ûeàDp"±¸¥ZmþøÙÅ3€øÁ si Ú2V>°ˆZòP¹í ØVØöj”¨€5)oàŠ ƒ<ÙœcˆÃ)µ±«”YPNGËÊY‡w©|Î9%“"Ì(ÞŒrŸ¸ƒîϔŽ%dߢ™¥vöý›Ê9‡UŽÇú\98˜áÏ™qki”«FõÔõ(4P J=_RÅQòyÿJ¢³=+KOäâP—E*""ëžÆAöR7ÛÀUärdŸã[k°æ -&¡-G+³¶íǰ¯Ñóa<ü[T6ÿòÆSÅ{¤ni+*hˆ·¢XAA¶±µ²ÎØ×üÍ Š²š)c ?-r9Ù9Àâþ]½ú#ÕwPC YAý §õZh1O ¯°½'<†ò®°Ay‹õåvéZÜv6ýD//‚Z~{Zj2âcÒ,ŠGh‘ ¦Xú {a´2õô M*’¦9n¡a YwJW"ù¨N—é ìödÁªnÎCGás°òŒF¶§ò–å¿‹øÝÖS{;©ûÊ„-£¶"·'X”¥…~Ýs<†°=ÎGÃè®Ò8XúÅç8:i«êEÚüÕƒú4CêQVÐ÷Lw;ÙàãQ ]G“¹Jør‘RpÿÓ¹7=û‘Ó™û÷@zæÌ:§Æ$Ò-*箯KÜRDz@Î2Çlj3ɨJưìÚɹ­ö`Ñ8`¾ÜÇT¸xðp²Ä‹¢ð¸½W+çH­aíXëþìëŠT/.´—±¡Çb x7;Úïkz!M<ÂÈʪXÉ72ÐÃõÒÌF­Ðìÿ5“«ÕZ¤Ÿ”H@¿^éF\–i×X•v}Y£Ò®Ëó0–vY¢´k£Œ•É+ô"®ºÕ‡rM;qaÊuɉóR®‰ëTÊ%ëG˜CDdÊU5ˆ(—\õ¢\w>UÆLH¹FË”ËÂ)W™“í¦>™ä‚a˜ÙèÌsЇqÔðêwrŒ iSîwË–Óþݘ‹LáD!˜Ÿ+.¶J‘-mr5Ÿ¨í±°á›Ú9¹›r[tØuï—2ÃÑ(6ü”ÔÈ«4vö¬sçÙ‘Â *Vj kgû×Pxnw²G¢%]FóiIïRTR”‰Ùúcdý;s¥Üù(=ÂõÙ ; i,.7ÜCbdì*˜X;™û›SÊü@—NâµÄ(Âúô;ÙY¶w„4[/9Œô¾Ôcœ…¤ãY®Ê®èa9ÝlÜÎSÊ$ä4‹câã/QÅì#‘XÝ&”8”¢0ÉdžÉò±w;K”î1†%·QºBš&o‹“ Å‘‘išxp@¡Ò&*ÖzØ@x =F§£>*Çd„‰¥’–ëWD°éSïªÏÍæ©õ±&Àr‚:b RÁ ªv²rr™’Ø[ì°ÿ°W¯ƒ- p€¬î°…Gwiäxæ00Ó|ÍzCLçqžÊCCÄ4yo!ø‡ÁÊ,ΰ³ÔÙòCð·àIøLƒön 1Esp–<×Uš<@¬ŽN™çcbðÿñò†"S/‘^yTyÎK;‡±Àà9º´šþWÁrÜ@ðäü¬àµ™xV°ë·TC†ý…¨<5ZÕ ¹ †pfÚiW”• ŒøÍƒÔ܈²auõŠé J6™­ÐÔäquà3TÜ!ã–çHt¬ñ» Æz®Q2?¤)isð>³ª¼Ä}Ÿr=+ÛþÏÕdÒ|Bâ¼¹·†¤•ÇGw*Žù~>æËúÄóƒTcûª÷moŸy6ÎêKÌ4”=x‚ŠÇ-¨gv[#@¡h£÷Rÿ–Ú‹q#¬›7Úì(-SµøIíFÙºª?ÅŽ5÷BŽÑsl§ª‡ãú)¬›•e¶;b³ˆ_û#â($‡ÉvGâ@Ù.8Qäž BU€1‘v™ÿU´÷¸¼MR\¼‰ÞË`¿1&œ¢p‡a]Ñhsü w ŒkÍI'½Ã±uC¨eqÛ:†íʰÍJ«R£­Š6i‰Ú¤¼ßtK](ó”>”Œoëo‡éëPÕMØßP¼µ<È#B=z1¥uR¨U#‹ü¹ÓQ¦KE—Gƒ¸\]¯—§f’ò]¼D®•«™øšuÏØY¸¦ yZ5Z€Q5þyL«Q̺+*yŒ+£Ýíb >ÒžÇtâ[,¹Ù^Zúôüá¡õ˧¡%ƒHT_•Àðï*F¿e‚í{U§!ÑôóùQ’[ú…6å‘Úì2ηÂÒ¨ºÅ0\‡ü‹âÆ¥°2 «@ŽXSHØ[ÿû[e«DÕZ›ÚBuFësÊG ˆ;Á_˜¥“ÄÿÎY6xÓb1F ¤+ÕÅ Á³J©i‘ÜCÒÜøþï¡G ¹«¥ëÛ Î~˜e¹§-$:ƒ®ŒRöÈt"ÂðœÌ¶®îŽ„o°8 Ì75,Ì3‹¨Éj$Y/[ö0S,³…Ådyïî~ò;Û ©«öFrvx-ª4 ÿ8$ë†Ov⎭ëÈ‘ôÞý†äpBÃh,}z ÊØÄ´â•«òÞÔ¿?Gû÷ݯlÿžüò?õïºö>ýóü‡þͳþðþaØNñî”ó¨{mÓx÷Ú {©Ø½m§Î×½e&yŠ­ÿ¢·ÈÚÖFm‘ͼË쬌ñž’Xí­NN~y§Ì±*(Àf£“ö“æLø2g¬ $ò~a%Q‚5‚:·sÄ5åØ˜EÜÞ×4ŒŽ°ÇŒ~CcGÙˆw‹¢#løÕa²‹GY[÷9A 3¨žž!¦¨1j`»iÿ6:Ê9Â:h¬ƒÄ ÏÈN÷õhko”®ÄÎÎ!÷¥„ù|5Ê(tâ.@A‹N¢2*J˜ %ÌâlZ¥¨­—|QOü0ôžÏO‚§}ÕžfŠTÅ~{P‘óÇÇ,*¢Ð¹æ›(tÊv"x‡=çé°Ó›¢txT,‚ô7ýX¼ŽÎ3äˆgÛÑŸ_ŽV­Õ–<øqÑam«È!EÎ$X{ ce§yä”âÎÙ²o7¡]ŽöRÜý}tÝ÷u̶Pð£ÕQŸµoÀ×ѵo )"cl G¿ l o†‰´â]ljh‚×bðfÉJ"u³±|0¨ΑÓàÞQªç}‚rö}§¥-¤ü•±E¶çXÛ9?ï(îªÉN›KŸ"+l;e1Éd™Áe¿ø+.æý¨T”•>^úU´\!JòB¹u ´ðÝ$ÍZ=¾Ðw:âÐ0PX·¥Ø¶UÖpœ)~ôûjioÝrÞ:tæaŠW‰$#¶Hm°¼ƒs½–| æ²³¿ìç. á)&‘J¯2ùøŽ•î1(öVùŠÓ’üRÏkˆ¾ÁJ³lagî–£ õø)ÕØ¨üæ'òDõ® è,»ÊÌyZ‰oý\=({šoUÇÆÞ÷œ‚È#+9ÑÏD–t,WžÏä›ì8Zá}H®>I­þ¶8E|ôÍÁ¨øˆ+øSHÎL¨¶{­RíÄhµQ ¯±¥v‡›užF`ª\¤´JVéWäH²ª@† ™ƒ.-¥×l¼Í/s²ßlãr— `¶ÆÑÑULsÐX.OpAJþ’1&€üIŸ¨EqD…üÞîbG>æçnÜ@çnjž˜õÉDV—xˆïy©ê¼ã©!»¨*ªßÅ Ì@Òœûi™98/Á,²n5í8vô~+ùýŽ4&¤ˆƒãFHÍO:'¡”js8mrÁ¯¾ MÔë>¤óâŒb[Ç}ïó‡÷=ãÿ]AôŒÿÓÀuÆÿè‡ýŸñ‹¾J“F†ô4~+ò+°$Üÿ®ÏÔ¨…öçsµ“¤ÐS§zrë>õwzó¤òþz}6üSÝ㙕îHxPÃ4Èq×ÈYl›j’ÐzKÚdûDaÛ$"á0+ƒŸ&Ïíh÷N–ͺº…ünò‹Ü–ËÆÉï&€áïˆüž<;á1E%2ù¾¿ùeþÃÞZÿï8a#βmH‹ÉQ9d¨QHEƒfvs ÜMÁƒæ`u®9Ö¸+Ó¿Å;–Æ¡Ô@…ê>V0«…Ƹ>àåUTÆ2Þ1üUœýÆ¿qMkhg³[îŒ7ÚÀk'mÛnWµIQPHŽh¸1…×¢wånuØ­MìöÅÍ•á?Ôw0Z_ÇñõÍ"ïÂ(°írU^ñ¯/%¢•š£5Vir[ìûsýWا¾CÑúêîèÝ?=uê6ØvA}Ë•úe(ÅfèŸtlLÌÍÜ–Ý]¾o´:<º7Øsw:ÜR+û™ÜŠJµQ²]Ä ïPˆBw…5Zl»«3c>„JI‰äg|©YrUåaÍUô™k8'k‰:ØC4ÎÊ3×Îõ&Ö¾R44”˜ó…!ì?*³çèÑÌ–eít Ûʾ]iI"ANf2¤E·‹­ÓŸãìÎz¡céX·ØNÁ¿â/g†YšRÆËKÜZsI]õ8sš8$èÒÚÞ¯1ÂSú1ÑךÖ¢°ÜìßãMZs›íÁ¢Ë¡g«÷EpŠäóúƒÉÑóú‹úœ×K;«ýD`ÍÅööŠb¨®â1Á•¤±ôaNÌ!ñ Pq›žDYÞ4p¢³I;Õ¸ ćlň, `æ(eºÛäešNoA–ï£Á‚ÖÃoÕúäeÎPfwÐZÊ~áLŸÑXLXD(àDu.—=²Štö#x/ ÎÑJ»Ý8÷EsðQ½Hiš10ÕØ6•Hwed6êÇÎÖ—)¤PyœC[ß¡ Ø?kt#9TÞˆ½½WáQëÍøýŠøcûL¨O„Ç`­YzÀPüÙbÿaÀÄ[hãl\öX6wHÿ´FÙœSuÄæ¾°¦qt—T‚Ëô,öì.Z¦gõbsÆ õ#ŒîE®6.`Ò²/Gàv?Ãkñà­ÿ@áyËWDYÆãaQXœˆ½EøBÃÕÅ¥’ñ°`O r¼×Èeü]-KMb¨ðÇÎ~¥~Ó,æGP&Õ06U£©»ñ¯}6Âå¡ëÈC“×b÷…ëNðý 4r>KÜ.#¿°rN*ß än›ô^mÆs¼Æa C‹§coÐÙC{°«Óµ€,ã­|;#V´æ_<½ Ò’—K,,´dÂ5ºµs ~D„ Ð2š8Bý•n+Ïå|Ò>ÎòfÄ’ .u3‰9¢vòt˜KPÊòϤ¶Ü–{)óíŽDdÚ'Ôß=€Ê*DGÚîOÛ°…~ø;ßYÊö†NáHéè¨ë5JÐÅî9QeèÒ/͘Y”‘Â>cY„-ò(âœ%Ów¡á ìÙÆ«‚ÓN÷u™ÌÊiùš(§~|Û´áÁ¾m á4ß6}ØàÛfë|ÛL3Úî;wYÛ/¤è¤«'ø†¬È¶[j‚û’4š)¨¼&Eî_x´’n`ÏÔö–<ô(¼ê¥à¾\Ñ áÚ“÷¾¯Î¥mP ‹i(HWË®FiOí§&À#Cõ¡0¾Û¸úβHú|U8µÇ0¸hW ä$˦ 뮚^†JV±é®ŸÞýùú;ï¸ãŽSíÍg0®Èh]‹-$øç$qL.¼cJ²±ÏÞž„𛫿Ñäxb<ül\9vhÖ[tV³_Ë f¸Äb»^•X¼¼K•X¬Ó#Lïw¢ü6­'Nd_{b”=`Aq%ñCó¸e‰ZD½÷3øÇJl˜ «ù€}ÂÊJÔ>Ý/<æÆ†ìoÇ@E¾sw‰‰o/æ´™´Ž½e…ãáJ‘b s»£C˜H­UËìÒ(¼„½³©¬9Œ®,°® Œg|i™Ëîd¾NYù€*‘€˜@,ßà;W µßÁ±ƒø’d@ùKÊJßZ†ï{ †Bve±úÒ~RÀ€®8 œN¨ÍD‚·’<äÇ“ ®ôþ¬ ×[Õ^HðÒøäâ¹+ ö2 öñï©`¿QGÍB%jÔMÍgWlAB¬Ô÷9õT8[ØØä;¨o>¨Ã•3†çõpi¾‚+éÂÿ´ZmïW Ñ[]~OP^ëñoBœ¼ÅΞhÄ©PË,ô±ôWTFÞ?,ÉÖÃõ0~‡ã¸8ªÐY)›qºt ¶+Óëa| .ñB¯Húb•3ý²îÆ%brÝríbQ;]ؘìkBžåÁ)ºÃwÈŸ;Úyé§ñRÄÃ×Á“o“9|7{!}ÔF<·EÇÂûéëð.©5þ‹ÿ0lë'Ѷ4âÕG’ÕÁ²ŒR–qItkº0,\üö¦££* ‰-±v®²9§ÔE¬‰¼›©ÞÊL!•)ºVfŠÜm 3F9®Í,u³gŸCÑò*h_øÉÈç>ƒQï1㖨Λ¸% D«r|­gey¾®Öƒá¸oX7U _ÎTÙG`ìf`”°q~Ÿ4¾cVß´+æ£øemœ˜/¬›©ê°Fb³–"ÂF} šßq«íñu0Æ£`Œ‡£ïç˜1 PY=•½Dê~c‚'jÚ©P&sáÑûÈ¢¨®šÆÝ¿~çè}­ú†Ùšöéœx[à•¤¡¥ž¼ö¡Yaƒ”d÷||í0`ÂÉdPÚà‚çñ梣ߞŒPqOΜÿœ~"² Ó—z,? ýŸ5dêN>Û®#Ü“"êw¤6ÉÖV› µõÕ[DmFÀÛ*Xq ¿Ý“­¬qšj+˜ï½´`™÷RiS,BÚƒ³Ê‘ô®=Ø:M“×:M»ŒRÅû;§y1\Ö5LÓLãÃ!øwœ‹D—’¼ðƒÜ]ÔŸcfé¤RVÅäG‘WîQßati.+eŽ·%•è1SdÖ7)Y3àrÃ%ÂU WÍ7Dãþ‡ÚNéRHz Y˜ÌR²æÂµ ®+á¹~›àzî5ÉÿË?mþÕñ}rr"þâR­çQ!˜¶»‹Q:F:ÛnåM êÿ…ãÀµëIÿ„ü¶ÄŠÇæfÀ~8;Jƒöÿ”Äc‘À² Ó ññ§€+Þî÷tpÅ$4Ì9Ë`¿„d|‰%Ow’Tà³EÚ¢;Á÷' u5š…‚'T8ÍvD¨ÿ'‰ ¦i|lÀ4_×Ï„Gÿ§hÇš¢ëá§U·pj{9¤kÕ]6µ½”n.žÚ>ƒn SÛ éÆ8•X¿V]ÊÔöqt3`jû%t“6µ=“nR§¶¡›ä©íxÅ‘ÆÙPw^Ýé¼ê‹ëN_¿H×–iÁ¢æ]ð_¦áKƒ°ØŸ–]ÓtSÛwS§i¤kç[YvY¹G¨w¾ëfkŠ~“WX'j\Ób)\b°vWØìŠQ¡ ÖþEÔk·`ÚæoõñÉú_¿ U¸±ÞPo\΢ëÿ"²\¿EIq=7ÜʇMVý]pÿÎ ÂÐ,éøÉx^ÓtâOB½ß.»Þ䷢Ъ»q*–€žžøÎªÛâ²y¿$¶ªÔ3òT–’fkûH¹6ž ·¡ `2…H©`œ5B•‹lG¤Mˆ$÷›`½¯y(±ÐÖz_'¾)>¨Œ=¹«ÆRÀ‹MœKËw¸]lô[Ä+ög,qX¨Çõ¨Œ½ T™ÔÁœÈHÉ”¯;ª±½_š¦!Vsž‹LÓ—É<ØÚN™ÂÉ0Ì ©Sþ ú#¨&W€–Üý¶Ïj¢ª„ÓÎÚÖ)Ù‹Ê9¢Ë;B€HiØ(ï7ÆÎÁ#½§< iîÅ'–sC[È)¼î §d†ë†C)Y_Áïµð_üŽ€k \ƒà ׃p-? 4'­ÿZü“ <)bûó$Žû§Ç?‰Ið'Y~c€+%m@Zjš±W|ÅÑLÒ; C‘IDwå䳜ÇH±»Ø·ßªQ¯.k§‹È€™yØYõ4ѨªC¶n!¸…fÑŒ‚ÑJØ /?«Îoü ioî¾R´ÓÿVŒÙÜ?d£ÛÎêÂg#¤ãÒÏ®…ëÓ +}Í“m'p\3LXgWÚ0à º}€M³¹ÆŒÆÂ×G¸­âÕv¢¦#÷S§î¤‹ýùͨY*Ñax£ß·QŒ1/ªy½ïiUÔ9mÜú°f> ¢ïP¦g?ÍÕI÷(‘V’0ŠafÈ©˜r¸Y¼¬$[wYx6c>Ô #AíB’æä±Û§+n?'NXh1‰#ɱó<²V@ÇéÜýéÂ@½8bjßegÞ.kÄÑw·“ÝñÍY.˳6ÙH@$ûß™e1’= ­Ý%<þ_‰‹o2ƒù©'½¾sZï@錴=×£¨A¼•”¶É–¦3ßPa+Ô¯â›Óß¶Ÿp:ÒÇþópõ=d뱄ŽÛ²‹ý[‚ú\ÂS‹7EÚkÛ]38¬JÔ¹¶­Âcwóì|†\åþõ±Öƒn–ƒÕíï·º5ñ&S‹*e°THm‹*㕉hÿ“CCZæ¶Fø˜¢ƒ`t<œ? ,‘ýgó~*´x ÷}0ËRÕöò,œ‹”éÓ”3kô °È÷nNhÆq3¡•áüéC³ÐpBËQ2\¥ìÆ'O)ÁQ§´&…¾¢nÝìëÑŠw"sÓhÆïx*†VIE¡âÿJÄ‹ãd1NµåþÛ¸'NC/Ê^¡´ ßÐMÕb7_'üâzÚÞ@“ÿ‰sh?N;©äÐöG¨ÿEp3 [ßTÅšÛ8reK½4%ßÖ‹¾)4RùBýJ”£¬.cùÅ’CŒí|EeAËåÖà„‘‘2ÛQÙµ«+Ô£Yo‘ô‡o¨"éðûƒ‰ûÚÏD%]]GÐ<ÐöAõ |¥;Œz¦ÀE9_QEžûdä`ß‘o¿îCìdÅÑù f3§Wµ9„ÌÍÊ"(+q©µ %0ºýºÍä4­wsM"JÚBnªM(RÜ¥C¸Ž…Œ†è?Ð[‚±ˆò m͸„ +¿ƒ¹ßÞÖ¨Ãkg«o%Û±LÕÅ!2Žñ¾»`<0>¸wytð¹B­q.*Ô–ÜJ¸ýÊGJxì§åÙèæi@Á/àÃ÷|uæ¯Wà“óÀ$Úo©ðÿï*üo—§¼ƒÝ°þ„þyá¯îÔLtÀТë QÈ@0{É€ZàG”²·dvÕßû gì˜néw ÿj¬cA®\?„è §5@ŒòÁŽÜ?ö(dÆŠ"e¡ù’‰D'Oñ¸’c÷xh¢_1‰êÓDnŒÈVèmÇj“¤cÑßY3PGwñÓ6Š€GãÝ1“‹Mqˆ­u¹`gËŸ%F‚sd¹§l­Î2„ÕòëÉ´s ŒD¤Ñ˜«Æ(_DëµçF‚?×½9ZŠ(1†ê }!q"æÚ÷«"l,/Raóìldü XZãác’ác$øì¸SO>y˜¢h‡¤ùJ…udª<ÖîYFJ)ŒP¦¥Ðdkø`ÿõ*$ô2$¸ÏOlFlFÙµ>¨TñGÞø ,6wÈ]ÀÉl€îffY†4Â5Þ+:.¬W"û;=8;ôš8F¢$¿ÄÖZ³€#ðâ*ËyvÖó‡¸ÛÉÞKï“kâ¯TŸX<²lgF„ÝZ/yÝ€©“MóÛM“ŸQǯ)€Ñ›„ƒq›8T1TÛÑ~p(Ù5šˆD*'W ‹dÍASî)ÝiôÏòj¼IcÌ`2Ó ³„Ñ7PKËéx Ջإ٤..ýÁÛû¦·`§û;•“Ó¿ÒOz:e­=qåû™ä,5·Çño¦ pµÊØUªË3šÅ<È¥Óm·FÜì†Wd% ÛgÀÆeˆ)•år"—“ÝûORgá;zXa6ÔÎå–;øR±^Ɉ5UxvnÆ’NhÈ’—S±¼T‡`.ƒVæàùp¼«Ø‹UVÂV¬œŒ¸©©™€=Q-ÞÞý_üûÿø…úÿò…úÿ~ûv<½úïùÿ¯ÿ·õê?¢™E´×É<Ó5â@™½Jà ÿÎU þè$&q!šË]ÆÄW従b$úUË—â,–búfÄeŽ–·#·Ä.ouý§åÀ:^YÞòìž×øú?AYÞxÞL¢|1j+¬o[d¨ Ý=Äãñp-ïVxÛ»êá> còìŘ<ƒ0&Oõ“<L'ߦš¼2wÔ_pxxx¤ëˆ‰È“‘ç“ÊEÄR±«c‹êµŸVæãáÊÿDfJ GÿëèÑçëKî¹0=rzÆM¨‹c'›:oÛÂþéÕÚÿ‰^­8„^~Iÿ3Po1â}<{4§ßº ofHõÔ&PÐ>ìYÝõ²ò½÷RÎûy}] ÕðÇR{¹,_3Ú¡&”ÉóOZI²Ã#ñÛ’Ì–Æ„ú&9jƒwÔ*: ”u§‰BÄ£FM}“ø•Ë-MZÉ"ûx pÒ×mBöT4×MÈ…* Y.9Ø7_ž‹„vÙ°äk ÙžAƒÌ·ÑÖ,Ôÿ–t½J"ŽHúJe„ú|3mÂFy¯ OÑö`˜r¶ÇÄÛÆ(v¦º qvd0ê^<å7–zÌ#ÜÆ{PJog—Cc8A"ë§ÒðTŸ9ár(ûGDBDî],e–\Šƒ}ùŹÉhdÛÍ/t¶œ‡ºPïfð³åÕÑ2¢ú¾?d¼[žo¼ ¥žzï!×þçñ^Bã=ÃÙk¼Ï v 0aëö^.MâÞ ¾û¾X¬7 áká›X;Ð+äÂçQá‡JåÂ+•ÒÿWºÑUJQßí,á¢sѰÌÑ@P"²¢†Æ„‚%^}Á,Q)"âEUþmvÈíáiJ8”Z/«ÕP7Qã=ÈÇ-ÏNã–)[îçÑq³À¸å–r9JFo[+I”ƒá‰Ùö µð‡Ì1ãgŠ?6°\·QÒjK&ެ–ž;®{·Z‘t ÌÌÍÔn½ûåö^ÇBöoíÿ ^ó\ðè¡«â岯aÆGÌP%Æh%.éZš²{qTäi;öÇ7÷ ?rÏÒˆûý>ð¯@€býF^d/î†IH(‘-ÐkvîvŸ@]Êš>ƒ'd¡ý¬ƒ½c'm’Š˜¦Ý;,ÚÀ·HÅÁ³Ê7ßîÿ,~¾Ýß·¬K¢e}‚î>É´°¯ÒÄ̦‰i¨¨d=CÕdÜŸªbnVø#—X;= 9 3e{ðL²ÿíÕ²=¸wŽ€ è•¶]4{ç*&ÌHé©.vl-—Áµz¿µn 'qyUÃ,­Y±Ë=…Y·ØöÖ^êT¾ó}šyê¨5f^ݰ0%§tdúUy?DWÂð"„“NëYâ¹Ð‚jê¨rÎ ¨]‘[›ùv( Úñ'ÂC†å;°3ÉSd×Y+€ Ûñ,™ØÉëÛ9Š|zÅ»ÙÝ@V»Ù¥ìÌóÈE—¡ëƒ¤•ç+ÚKçڶŘK«Í›+~Æ›'^m‰”– dŠNH²Ë(}ßÖÉ–ÓcƒüÌãž§•s5Ùʉâðõ…ø ’)·ý#eÈQ­(kL‰Š0rÄa¾3øFmzð¦ˆ*çA{«L ޏGŒ3ytÊþ³;¬ünétuV™Ë͉¨‘ü&]‹îtnÇTgÍQO~rûdßø.¡~"?Í´} <>Žë’xÉ.m’v²_s!âX$E[j` ;d©ÃIа øôËI¶â¹g”°…™bV|ØBô‹'‡-$ÔJÐBÙu":¦&—‹\óí·jî?,G œÅ5_e.¶6¬ðæ¾ç¦ñ—4t›sÛ¹@Xw\‰Q襞å`ú”§°š¼ge «¯åÀ€•vôˆV“@”¶œJ?Ge°(ò(ä’â·ÄïçÈHþöyq|xvˆÀ¦ðá²|T¡N‚xªì¹h‚›=1ižØaC þ-Ë•=^‰׺nRÖ ,\"œˆ>åIöFe¢ÄÙ.Éghô˜GPŒ_öìÙ>Ûß)¦1ϬîHE´( ZŸDg€Gbô˜I® ³Òl44÷ÿš§iTCs¤eÅ!½²~£^œç{FS¥ñtÕÈòd¯†?%CqeGÍ'vÕs°€MâG•fk§Ä¬œÊb˜Ø°0ßTöÅ;°+¸?öÅëûIÌ r”Æ>C†)±Ïþš¸ô4þ=5I'fdÍ’‘ݳÖ@ >Ô„>ÑÈ<<¼€\2ò‡kÐÁZáFü»ÿ §²³?>Q«@§ù”é?eÌCÇh”%’DééÍ )YJ›ðö«p:¯‡>¦S@ï:š­—Ák§òi•^u)\Åp=×/àZ׸ހkïÀY'àJ‡ûëàrÁõ"\]òu.Ÿh<¥éÆ´‚ÿÕ`Á–ë…ú?ÃÝ zïEì; qFì?U¬„¯ ¹¸çØ`O×ûºLÞѾ®$ïù ô 2g¬ªX)Ýr % ùLº ƒðh©Z®ºeÈ´¤)€Õðk°lÅ´ì÷ŠÞx¹‹¥6Ð06èp€{'ž©&çbŸ>J‰ïôN}§œz”’Z,c·”Ëåf*én”Ó|FIw¥âµk$û™•oÞ .v¶‡jT*t±òGã^¨%O•K~Z-ùjR˜ÿ9™oá-F=ØCOÆ.6ç/Ý‘G’‡—~îRñÈ8 K:›>Y^ÑO-×^ –áÑZºz°øþIl-¿í]Ë'T‹¿Ó‹Ê÷:X†­^gÄ Î=tSzwVü·§ÕºVR]Õ4Ewÿ~NoÞ„7¦†!ÑB`†àd€->!ÔS´v•¡â'©¯ÐDé™EM)’=h@Ö¸vÁuÝàYÏÀµ®@€w:@6V› 3è“’4ÚdƒÁ ï#o5ËŽg­¸áÎyç¬0,K:ùžø“hdwŸ‰Dè´Å’º:8½“¤“¦Æ¬Æ­ß³ê·x‡6ÚµZzèkJðµ&Ôo?¶6…G6ùöG(àÐt“¯ ·Û¡5H ÊììÞÅ?(?WÓ'õtp-’­‚rÈütºÑZŒ%€0sòårÛ”þ Q†>[˜Cª¡ÉÞ"餢ïú#~‰Ú𠜎•9ز)ÝÊ”ƒ›ž —›Š=@þ{@ÙÏØR䀯Rûoë–¹Ç{vE C¹LJFðyO©Ê$“R&é½ò$ÍW¾‹•7µxG§B´TºÎÙ%ÛCzoP3*ÖqÝOªÖq½L6ÒŸy/»Ï?YÙP†ˆºcD˜¿]4÷c~2ÃfîZöóɤb,'švÅÅi±Y®¢ª¸x²‚Û¤‡fäam <°É£å&—¨MNC'~¸iٸÓX¤ªÖ§Bƒ×cqÛ/ .öž waO¢(z!§ÛÅîÕ)®õ%ÒGñŠ?Ò{c¶ùNcÌy™È§SÎ@¦2°ˆ¦2:jË¿¶Ÿò›õ?¤ü™.–lXI“š»QVbPb>Ñ[”Ї3ð"äãZø$¯óu<À€¯W<%(¯ø‚å­¿±ÿòòú)9|2õýšz"ë-löä×u„+ýÅïnÉÁî¿À÷wà»óß‘]²žÿ;rKfù³ò<¯3þùûåñÏù±ß R¡Å~0¯õíßiÎEz•÷ýL?ßñÇEt²Ž€;õß‘?D(®-@1ôQ¿GéâD,JûôšsJû N;û`ùYîØÛ×óYÒ 4b×*snÝ Êœ+Œ›sŸD I…±¯»®Zðu/_>‹lÈ@YJ£´‹KqYzx’2?c#®‘¬Œ¹8ôpc”Ï“¨ò•Ê'œ§ò«ÕCþ¦jÓ$ ´Eèú-ž¯ó´+)mb4müøÆ‡ãR€_ºZaYºØé_+K0ðyTæk¥Èç½Z%8.6f5,Ëx¬…Ñ~±û4M¬!,ùìOÔE›ÒE×$¥‹Óãº8‡WôgE¦.©²¢'²ú™ŠßÁiœ æ Ì#cZ¥Â·³&¾—óÊ •Ê?,P*ŸWùn[,|MŠ€at¾wblrbâçlýXéMMÿ“-ž¦» ú§éslýÑô~Ç(ü2…¿ãW …Ï ^ òkOËg5—Ê#6ùdL›ÒÙ`j“øÊWW„¨`º­SîÏóÕqýÙ;1¾?ØúïOíÄÿ®?¿ùeŸþ¼ßÕ»?÷~ן)H ¸.¤á(Od£U©áó¶1¶ƒ>`Øõœ„Ç´7.ÿ?>?É÷ìì‰ß㾈\â-€NPƇÑäböàïpÑ œˆè×LP`Iþ—PdH°6õãÏŒ,謿§%J ÷­ÁÂÒy #ãjØ5^©A튙âÔL¹+„ì‘Ny¹N¤±€Åúµ3gÕźwÈQ`ÏçKb%G…Yc`B%Íe~6®wI÷B ÒN·°nbóACjÛ”þ-Ëûzô•5æ ñ$JÁÞÄ…òý/Æì:õQj‹ÝûPn ðuºSö¢êÜCXà{Ö=C¡À_ ¹Lm)Æbþˆ¾²Â^ÂjŽòe‹YŠ®_UÚ*MP‘¼ïÏö^Nxü; ÿnê综>a_®¿“ðëëûgRŸŒcbÊÛ}Áò¦ž§¼·~Wž<Ÿ?X7Ÿ“®ŸÏë®ï>ÿýº¸ùl‚uœžï,i0ššOÄ]~2~†÷?¿×ûÌïß+séby~ÿ²#¦)ì'×Éó{gXO®ñЉæªŸjoï§v¹¿lï‰8|Å—ny”]lø÷ êš/z3¦¼Gú+O#—·åÄ(O¯¾§.4_o¿¶Ÿùš}mÜ|…¥òTiJå‘•·›â Zß Öw2¿Ÿú^É¿p}ÿì§>úÍ¢øŽzë©æwµ!RÒü…!uŒ×±¸ NªUïÓrjê®R¶Jì;Á þ|~/Ó[·Hm%0ÁÍyÍŸ+3|+”Êç·æ÷ïÃòü.ãæ·篽ã¼ó›¾çõó]™Zà‡^»Ð|ü§µÿù˜»ºßù å»`y·§¼¿îo~ŸôÆÍïK­ñó{¯µÿù½óš˜ùZÛ=èÖíäæ.ÃMþ=?l~ï ô™ßCŽõžß¯Š›ß_#ÏïVŠšD¾ ¥4¿¦43RîóÌïΣýÎo-ÍÇ ?z~ÿ©¿ò4ryíGÿ›ù½ö‰ Í7ÿÕý̷«û›oZe¾íþû…æ·õ‚õ¥÷Wß®¼ ×÷ró[´kƒ„_Óg¾®ÑŽÖÕí¿…·þÍð³~ó3#²Bë—> o ZoøÜghÖÁ·Wàz® pÅúáëõO«ÕèT †ú-^¨n‹m«7»±Äìk2×oÊX¼˜xsC^4«°qm¯8Drü{¼Fik°HyêÔiáåf%žJcFýô¸ÀåvïmÂÆh—ªÚ¼ ~Œy^×W]Z×=aùìÆEøœ³«Ú: _Œ6¾Ô‚Þ)»¸ª#1¨šÿQFy¤5;¦ÕQ5KŽpIîãð±1©ö_CÞˋ;Vs}“x\ÙQÒøä]+G[Ÿ%Õ’C蟋÷ïx°( ú×#¼Ü*í^ÞÌ7I-OŠ ž ­Y¼ÎßY} ´¤þ€àc¯·@ÙÜül6’˜±¨„ÐqA9‘*;‘¹Û¯JïÒ¡ÚÆM?%ß1OˆlHœtbèb÷ý•É–øeuEThêo‚nž2+7†EË]jc_žSÚ'ǔ͡ŽñÇ+¢Š«ÙÞ¯e(¡Ì$¥öAPtãhÈS@ê@×at¯SØ&weq…îž¡îCüù)dÛ´ 3§ãó0aã¶ÆÑˆbEÓ—LÞUÃÐèmzýr}1O«'`à‘`úš7=ºà•2㕊1nN¼GÅ7;ô¶–+s¬e/DäÎlÃÃ|igîÖñâpÉŽ5X:,¡"ÂËmhh/mÆDº­¶c÷[rw’a£Ý«‚kF{ì¾ÿ°˜V×}¿àu«[ Ï˼hH—a8 Áå¨áv¶çn~`­ïšìP ©z+`)àP×½T¨ÿ»lewÃæÂDã(¬4qMƒlݽúÙþÃdóTûTHØ!õ„oëcŸ6Á§bÌ Håf×RÕÛ>©M>ñ¨ãfS}„f©CÚFçùtšx¥˜-Ù>©&íÈÝ,°Ê0P! ;‰­hœ[ÇÍŽ¯þ͇Õê1š››î]½ÅÍÞ}¸Wõð}zT¡€×ŸõË•«­Zµ+º‘ªM| 0fdC‰Ú;°ÈÆÑ8ýoünÿ'"='1ùóÐw†Kõ˜à¶ýE¸ãóþÎûöÿ;Gä"‡e+ç,MD0~sET*»¿”IZ¤˜U‰`*õ<;iI$UÖ@÷ŽG}Iö2ì§²†‘ÝzFžÕ#YÌxŒHíY†-ec”*Q{Ù33áÅX7†òêœ){uÆSÍ ì·× ´}º §QÜtœ§åÓ±§ß˜Ž­|:®¢ù8TØâóѼ.èµïªiGcT>M"º“4»Øà÷{í€UOL[³Qžz98õ®ÆHò›É§n¶Pÿ9WËlÔæ~71p2Šãc°¯«¢Ð$1š€ß¡ß{šX¿£•iüoÄ®2v]MŒ8†žÕ±v†o€9$ZЕƒ­µZ,ŽØƒÓ€ïL‰&öVPÂtGYÄaTÞÝD“ë.RFw—²‰;Ë)`õÕ½"ÀAóæø;kS1}»f¥îǵ´˜Ä˜\’â#@%K<GTÝ¥hxÔ=1"Ë£yþ¼²lh›÷0j£Br›… »Ýó`ûˆ$ kñ#0´&ûÏú+†f¹&”H"Ê•‘k%£›éßÂò¤GëñȨðYœ˜k„u1ýbC%žÛP/t_Û@)ç=‹á ¤”¿¼K^Új¯t¹ƒ÷¼Ðž+ ÝfE ÒPßDh”Z¢]õµê犟UV8ÙeŸ0åÂ$Ÿ.ŒrT\;§ÚLzŠ7jR¥¢FcDƒCk(Èüvš:–Ëb‚ÌÇüãVÍþNŒÐI1¦PÓݶˆË~Û§5 Ò§Rwn› º]v²&&Rp1Û‰š¡Áyÿ2—É«Ú@_ oó1ú¬ÌgÔZÊä:˜HйWùe8PË€p ®wù^’¢wùî=Me8s߸#bÈQï]È×x+×_qúɰ‹˜çÁ[U£ì"n s×)F¾±{VSAÏŽ%{OÚ{¹½§~B^¬ÓY¡“€ŒA=(l¢™ì¥ìj¥xú¼Ô@¤"[ â@» ',˜†#ýç;aj?¡"@©Ôżôá±;ÉòÝOŸn!,*§"…°Øº‘ð–ÛNÕJ³œfºÜÏ|û,—:`Á˜yL½Œ†•ùa‚᩽B*ãA1]ÎRO&a¿e;墾v—z¢Gø¹26 6®XÜk·÷_ÖÃ09KßÁ“jéH¬¾*º‰%ÈŒ”-ɇU+€O!øê“é|;h”Š&~¡¨g½àkÓÏß¶…kf’;ïM¹­Áüºæo‚Õ1æ~¢Ø7"}Ï ;Ç2ÉxÃή7*:­‰ëIFH†Š›)îŒS´ŒLä8!Ù’»¤ŒŠîºGÜlÒOœÖÁVÌ©´s;$ãP@è€ÐsÅ•½÷¯†ØºoUJÐ% E §"û𨒤³½~î<‚OÚ ö)ÿéU>íå\lèüSçq–Ñ{ËÙ§¾ÜÿÇõ½uËQ_ëÒÿº¾™?ª> ¿ùãÆ+\ù#ûƒš &»ÃÅvo?_èã˜Nù¹»¿LXHã™Á)HHÆÞvƒÃJÈãéÃ1”昤BÔË&CKQÛ/“›?z3Ù{ÆnÎÜgнUú¸‰1dÝâïtÖfHŸ§s?“vJ¦H‚d ˜u¾&˜ÜÇlЙšÉ¸¤ËfuŠ/|ܘÛ.EP“C‡Ö|»¤¿Æî`OhAF§­æÙâ'ä{ Ô§ëKËìž [,ñQZ~ÑW‘ }•Ƕ ­Œz9¥˜Z ûuÔƒEî~ƒ4кÇÚäßâFŸ ÀNòXlï‰Ú)Òƒ¯ÕPèß"và7lÀè)xã.HA~âR@gêi—6{~ÐèGª˜ÛRÔ×5L˜Í6µM£˜ª@¢i³ËjÇQ‚ÊC«âÈY›¬{/foÄB|Íé©`ŸÚ㽌?êj›|6 Ý—\Ý6YO| |¨Þ§ã&Ï(6²è=]n|p,G(U™<‡èy2~Ìö|LùøPèÙE—Áƒ¯=ïÒó0|ÆNz^£çdzFQÓsô|ªK.ñhЕý“ôê+xåIÂç•ôüïZjc5=´ÕR—ÒÛø ó,¦‡¿ñdóèáY^,¤,¡çUµÔ›ñôàã)óèá^`6=ÜÅ 4ÑÃBžÇ@så=z¾±¶×npûö5™¸%MFC?-X–ÚÙZYã(î»Ë; #à»ßX—£LrÕ2ÒÆ;Û·TQ§Is±ŸÏ”ÏZD:Öèu@ –_„6¡.é^£8†oQ]̤UØddfáŵ²ì• ¶ì¥.v%½‰)4Ú^ƒÛ“yÓPhÍM·Ü/CJ'Íí% hÿ‘¡*çÓ²º¢¹qqWg/'UvbÐ+CüñX>šåfóÛÎÉ2ÝÄrÌË.ƒZáâq—ç¹é€®/ôDIŒ8œkŠw8±%÷ðú*(W•Æåd?½SÞ¼‹ßUi]¬–{$a{/¦÷:å¿i•kCÔ¶ŠøÆÅÀ³_zP¥ü˜7i¬}XC¦J¸®BÃ_ |ª'BÀ·Âh 1^çdøo‘ø©úÛÇû÷ˆ‰oÒ}a¾º§âý?ñ¾[ +£ è}¾•÷7,àÁɳtÉë,™-kžDš°_N—Ne;Ø6 ¿(h¿ïnT€Œ–· ËcŸRÊ1A9¥ì%­–óA^:6ˆ$ª-ãE®¿;# ÝèP™Yè½.šR¸¬Ò#ÏrO±Ã¥G–¾@þ¢Ÿ“%ÞÁú|˜¯'³úc<_𽵌o´?ç–Áó#òE¥8Ðng²ºUµÞâB(o2 _ªÁ«“¦ç`¨·ÊËAb¦‹¨NÿÄk T'” ‰8™Ãuîã×銶é¤zNÚ÷+z°‘^ •+c+¨k~àÁRðg§è• fÃs£®ˆH.… ©“ˆd%áŠN²{ìSd±×Gu)Èkˆ™ÆX ë>wÁüÌŸ|þü˜Å³?’‘åyaÒ“‚“ Ó†â1Mžï˜ÖÎ6Í“µm£ø}ðûì÷ ~¤ zË3”XD¡' Q'Œ™ÒÕfécšdzæ.2Úk/…*‘?Ä z ¸ r˜¦úÕä+ãÙ<#N…L;ûg´£Ç/¬áCä1³®V1¹6¢ñŸÏ÷Hà&Æ¡¦Á2¶ëŸð'¸g ê“^u.b§°ˆåƒÌõ[Èí¯y*ðt#s’0 Hs½8X< Ë3öšaY¾æl¹æ©Ôž(‚ïé½¾·z ð½hxK¢T‰ÄØz”+†ð f6q/.[æU(•˜‘ô VÅÄùòHú 0 íhÄïù~8,¿ÜW=¹2u³¿L“·1Þ¿óöIŽ¼ÒØüWFÒŸ£üEr~»œ–%Ûádw)ù…ú*˜`nÏKÀ¤¹ØñÎ3'1l.ö Ü—y¾Œ÷Á½ÛÓð Þï¤4ÕtßBi–ÒýºÎ3´Ș‡Ox²{ºnFû¸'V öôšÑk?eÈéË´øôâ?ìz «ØozPÔe¿ ª m=Xë5T¤©o‘ž­>9瞥ÄSý‰½«‚ @…CŠ*m•6Ûá–Ýå=G97PÎm'1§EÍ©z²%lc‡æðj^¡Ä8yž6±×ŽÒyÁOx ³±KOž§Qì7ç0õ-rê[†aê)½R« a%”ú9õoK>:‹©õrê¨Ýß|¾–l§Ô{o婟¡Ôë¿?_KjgŸ…Ôûgs˜¬¦Ôߟ¯%öãðz“ýYÎÐ@œ·ø{Îðf,¥tWÏ…0}ÀƒÃx±Üæ…”X¾Ji«kP%î˼ vJþÁ‰ó4zMÓ,$Ž›ná…—Pê?Ÿ8O‹eÂ)šìì¶•D)‰N†0–{Sþ;)¿‘-OåÜá©ý#›*+NíÓŒ’ÀEå¬{7'¤ßå”F½†!òðp-öÊÜt¬Œ^–hËY\Xf—Ä.öŠhö.U´œdùu™;ò¾ÂÖ¥ØÝ”–›ÖÜ6 '·©Ð»¥úZ•¥TŒV0‘ôwá÷—DN9{*ÏwÈßeYí"ƒl4"£ÛØ)“šÐ¹D$}3µ¼Øq[MS(h¶”Âöï× &‹ùB‡’Áa¸r80)Ÿÿä"ƒk‘£¤ÓÄçôó´uD{þÿcímà›¬®Çñ´IÛОŠÔZ5jµ ÕV-¤å¥­¼&-M@ Åɺ ™"äÔ¶PÓ(áD§›ÛÜ&S7§nºM¥ÎMZ"ð E_¶ÝQ,…ùŸsî}ž¼´(þ¾>$ÍóÜsßν÷ÜsÏ=/œÒ¯@€œòo…šu¹Y…Éžÿ©è†}¨Êúê\ØdŠº¸;JìÔ™è' y˜õ8€ÓÍ.¾ÀJåÓ{ÐCʾçñ†ÁFy]2˜“Ó»J÷ ¿OêéÔ$•ƺÙa8ÿŸ>Õ<aoªu9–GÁÏlÑcâpU«ˆ“kBN”¹øÄ/1ÝT—¬?ßÞƒ'´ãÃùÔlM@êøgsQ WwšºMëýc|t"Ú—€³—¾–,•^þ9Tþ£Ba¸¥›8+;èX”žÈÃÂýð¤Û£9]^Ô¢It³ÛûŸäçä-Sö”†:ÚIƒXØïë_Íýö”¤V-½ÄÃÿ«½Ð}ÏCénÓ©âÂ'òB`{rQµk€ÒR£Æ@4Xkn¯r›¬å¤zÂ?Z¯”›}¥ÜÐy‚&‘ÍWÌ[ŸŽÒ¶(üB$|*¢ºÈ6Ýóo´¾xM2ê¶d-lS ãÆOê»ZDÀ=vÛæËr“YÜÍ.fð¦?îM°%¾I-‚Ó«,U/OQÔÑál2'š-·ˆ÷–Äc#+·Š÷Ödx›xŸ|Ì”†aØ`3ðDТ¹üŠÛI¾jVŠC3Õí䣟֓Š\^JósNÿºÚÁÇŠžuÊKwÍnž˪n¯õð ð†ºû5ˆø´X5ÿüÖÓ?\¶A'÷õœ"j8ôÍ0»]Õü›í:“¯VãpçýïYùV@í5îªj~94(! \\ §y .V˜ÒQAÓ%QÑt8È—ÛØÝ4ÓpZûn`3 gW•'º[ÌŠkWÎjþè9Í (Õ±Õ—û%c±rÞ¾92À⺨y¥iVÔDNæ§hbzÜëÙ&q¬ö‡ƒrH$“K6 _Q—LÿDùÊà VÙ ‚cŒGº'ÕGÍö~02ÿ& l>ÿƒÿ4-Þä€ãå¦(¶«—:9,*L0÷‘€çò¡˜hé•èæOýõTÔÃÜzZP¦ÎG£qþWïÏ-ÂË»×P+œQ ²Tù¾.PH6„üI£‰ÞÏ+‘©-•æZ#¥¹Ö¿fh· ¥ÜI”rf· ©©ƒ~˜03)„$…p'_Ëì}|^,Œõ°øÌî$NX¯waôIÁF;xÐyÐMÈ{ “ƒétõ‰ºövÒ¸'Æ>5jà­]Ç¢n¯s^f.o<Ý€=£î•zKj‘JÛ»¡ÈǨӇœˆRýÞÂZÃΟMêBؽÒ:S¡#€ßçÖÈ•mQÛf“!©¿®0Ðüœ§ض Å¾ßdÿN& A£[4¶-»kàçæUЇ_:kŸ>°O\^%ÜÜH’zá×C÷ÇæÍ«Ã´ßÑ4€L(þ=¶Ø14×} ­Å® “\3é½Ìû$¼#7áx± 1†§y,aß´ YÎÅŒ¿*úÊs6`&ê°«Ÿ_ÛF¼ƒÁ(‚áý_˜?¸³ ùï’é·â~ÇrÿDÝK“+ n~qÀNýBP¸iƒM&mQJ±žºúd4Xn©ÌÅK¸GUñûé· 7( ßٰߺøô;‡ «â·ÒÏœú*±—ÛhŠœ˜æ}³•Ù¥ì¯ô™½…²ÿ!)ûbxKóÔÉïMLJÜo§úùE#OÆï·ˆPÓ»híPX´™Fi1Öï´ˆñ1’‚ì¡FѬùñxØ­÷aÒŽ”“Vuz´I«Å9Ož´Ù4iëÈoGtÈb¡5•Xïªã™ªiki6ìŽ QÉŒ ãܶòšM~×AoãÚg%klߊ„ö¥jí‘ÄÏWAêX¾R'_ZEþ+ð^‹ÿäK$´jm-néÖi1Z5—O ߦ¥»-BŠˆéx':ħ©L¨ÃEY€Ëœï;¤³ÖðªÙz??/<áÅœ¡Äp.,ϧøÎ°«\V‡Þ§Ž²€­Øû*% Ç„þbÂÀ*o+½Ks! Hº+&fuUyŸÃY<®ú°]Oþo/t"ó4&™!ÔíyW¼|Ö¶}ðõ$rr-ådÏûêÚ=ïï¾ùx3õ*M­¥ßªn®iC;“›ßéD­ú¡j82ºÃ=+hæ6’Úø¢Î(q†(|ì ¤‰û˜…)ÞÅ7eæ>†Ü\tÈNxãíÞ m!æäÉ×PªŽ?é¹Ì[ù´¦7|ÊŒ˜pMÌg±·±[r•èÉlª`ƒ>èÏ¡ï“4Pç€PBöMÃrÀÔøà\+ü"¾P&†õ0 kMDcÃp"õDŽE *f7oû;ÆŠz#¿ŸG££Ó°Oê4Ö{ŒÞnô⃻JH&1X†PÀû1Ÿ EE‡ kÒ„Ù°a5Q¨·¿J¸âрϋ¡^œ“ÁZ½y7a3§ïÔ. '‘ꞆàÑ'äEXÃIð«ïµkLêPªýÀ>èï—ò¼‚kKÎáSäŽ÷¸$ÖéïyóoÂå¶ã5m¹ ‰yAzH»nÑ$Åy4pü ,W•N‡îÔ˳ t• ANþÕ4á‘ iЧ$|Ó á°Ò¬¦„@Åa$7Ù?©ÐOt-0½Tä7’,¥V(&n8 #ÝtÊ~þì[ÅBïRBþ1˜ÿœ„ü݉ùG%ç÷>hD)+}£Î£(fNM#öMl]ZU GY» ­êû rmݼ â:ü¸zñ²mÎìp-† þßò׼v]®šÓ²Ýg[3+jSâ|ÇÔ}Ç“ÆÄƒíU¬“›-Ìû(ÎHÒSµ›í£ËA`Ž:îY¤-ûYc¿B¹‘:™Òƾ j·xØ„ƒÜÞ¨¦$G¨žöb¿_F{?þ_Á¾ïÁ–Ëdg«¹tuæxÀ|WbèË5“ ]ûêjG´]¸%A#MÜù‘~³)Ùn`ä2ƒ“¼9LXÀY¥ ^#zÜU|øo»íÞã]Á¦‹{'¯7ˆv]·®'3ð R ψWŽçíºà?‡µñc \ydã½è‹+t?4~E¤›£9{§7q2.žû:Øb7¥Bßh*Ú<Ú™_Yû\-c± 6 'Ü@ _¹ïQZ¬½çáh²éÙ.Õ7­Ì]7³ 'MÈHÁÂt->æ06§$Û¸fÈZøµÚ‘4ƒ˜–‘t¡§5U -Á¨íÖT2úµÁŸ*¶‹ß(—E.D­T¡V–Š,8^jÌ#žVíR˜Ôê<þWp«NmœÎîñQÑêDÖ‘x¾/Øì]ìËÌu²­ì ¾ºGÓmÉá ÝböBeÝh>ìú©¥ˆ0œ¸.…*nc÷¬%ÿ˜Ý#:gMFK{ÃW=fåòÌ5e)e-mêÑÈ$åE ‡¾ëÙ:lûN¼2W•“â$ÿ )"ÌÒ‚òŠNä&s:¨ê×Z»»N§üßÔÛDñ"$pX©ÅЊ~~~GËy¿GRÝu®T…Šžùb%W{\üŠœcQ±*-bºÆ©±«øb`µëæHÕ© •WÍsÑ1¡ÕQ7¢mNi/y9Y®YoÄ 7)eAú•ìï4º:öV»¿6¯ÕHU"?´ÙZ¬m/ÈèFzÈBö¥ÓÍexË ì«±=Xn%¤tþ™öÚmÒõBq ›ï;%UÈÑý:”^nŠy^,Xᥰ´;Ñb°bø½ jìþ̽AÍëM(”–¡ðJ§éÌm)Ø]åêsË1m3ÐQnCž›¢˜G*Y:ÖZkuB…kœQ<¢›WÈF™\ƒ]N6»[ù…Ç£0¡#ä;):Ô¤Jàç9jšÿµhŠ€ùžÎšÌpr}[8Ä^WÓÈwŠË)Ð.×ëpô÷®C–|D·Љþ[#©ÆpÁ°èÈåá.­K¨ŸPß‘ši[±®T"~%€L Ã;yKÈ4ðŒFxª£}‰²ª¤¿š¹ÕYŠ!@ËÍ£kmêù°¶ÓÍJ‹æìšuuº‰®{ óäÞLÎj_¡añË=b+˜n®C¯µ´“ÿ.$„g‘h.‹m¬®’ÊL¾KJÙt+ZûC­ÁÑ{HªQn†§ÄªeßÅÕ‡TÝ&K­“Q¯dh 5Ööœç…„nÌ<€Ä…­Ã•Ã;ÀBÒk!è‰ L Lõ“ÙfG;Lú¥ý½ †åò•µÂèa™Iy%Ýö¥®îe¯Omûýݳ•{1¨·òâªYÍäçèªÌÜV¼Ž ·šé»}gÒw}[è»?} o…¾­ô=¾Ñ÷`ú¶Ñ÷úJßÃè;›¾‡Ó÷9ô=‚¾Ï§ï<ú¾Š¾‹ðûUhÙáS Ÿðy>«áÓŸuðy>¿†Ï2øÜ Ÿg°'ðù;|8|Âg1|>€Ïøì†Ï£ðy>ŸÀçËU÷-;ÕhJKÏ0÷ËÖÿefYúÈV²ÏøÏš=pPöà3§Û† Öþ?òwÏQîýFàÿäÝÂ[6üñ7ØÍc•À{Кƒ]—/Ðýtë¹ÁTÃÒãZéë_©žÕZséû‚ÐX‚!Ä…”vž^¢zgëE±‡Ÿµ^¬çê¾Ì—åï«În½„òØc)Wˆ”q­ù”R+`dkAìá¼ÖKcƒZ/ÓZ1›/MŒéW0éÿ>sàSŸéðQác€Ï‡~ü}>÷Ág3¾·X,)©ðe4YÒ,é–¸0l–ïþ—ù©Y‰ãóŽ¿Û¶|ŒÍg~›Ý~16cÔJøc«–µŽÒúu½Z,Þj½\{w™š'Þ o½B{w…j¡w­WÆ¡aý äás'|ÖÁg;| &ø—bŠû—j2jí»ç-AÚ3b2FàŠvÏn‘˜ËÖáÁÉå}ÉÂÃ;‰wPªÁ/Ýéÿb®v†dt1ûvÈEBÁÓAYØ=(äEÎ`“Þ*-SðÅ¡à+˜Àï9F.Œ{òTSŤÈaO?¤Ò9¬ãWÇŽ—*϶³u(îV|‹ö‚Gvø{,jzÑ¡¢hdPµ3´gf ’V$ÍêxHZ¶¿çB_š¿'Sˆª+ðÇRàÿÇîÙ&¸”Ài«ËcSï±;Ž+-ÍðØä U¦ø/PBoÿãxæA¯ìOñ¡1Ëy@›ÙºVÚ×óÊ`“Ï ÒS°á;sçŸùfˆÌЎБI¶¦\€u@ã‘õtU ²•ç­üD¦*@¬J_^(«|&8jÔ{¹§U¶¼É(üew” {—İï(`×÷ Ï÷9lB76‚Ó­Jà-ƒ¸[Þ½ß-ø\ðS<‚Ç}«Ï«@÷lùÌ!Óþnç’϶fþ=ÿãsrÙ4ƒ0N‹i(’{½¯Þ†îHY3°Œø±7ŒÛ€+Õ.&SòüÝù+G Nÿ¶‡ÉBe€Ó»‡ìÒâjv‹©ùÔb(~Éï±êa¢=Ø€‘Üý­èMTýŠ5ÙŠÚüÑ,åÁ6<¬WúÃô›ÅÍ¿DqñÜ0æÝ_² æ¬m ü=uJËqQ Òr3½¹\iaÈiŽu¥fB€LËJ,Téx^ÝTT Àyȶ÷,TZ6ÓÉJËKôc…Òò }Û3Kiy*§9doJþLý=%þ YHaãWzhç¡„y~%ioÕ¯¨¦©¸+-;éÇ$¥%œ*ë.×ê‹Ç¹CJË ìÂVX׸Ïr‹¯´¢ 9„˜¯ˆ Mø«¿ûBåÞƒi´‹4¬#JµþðcGDó–à:©R3øå‹ ”Àog—(-âÇ‚%ç¯âÁ¤g®¸ÛÓ ŒY?îÞ³JJT:— ÿßV<⚢æOQ¥_[n÷½Oåxá¿8˜ÂH»Ò7¹.hÅà?è‰IïÉE²'¼Bkž¯6-ÐÄ­¦‚[­“Š¢p ´Ñªž Ÿ(Aú…о'H\£´,3!eе4òòy€?ä>€;K@ÞßU£‡ Èš±I¹O‘k±ñÜÒº ý°tÌ+Á*c‰izâ™Èö ôŒæclN(?êÏDò^š#yfÇkHò˜J­°âKöÁŒf3%êÛÿsÙæ±³`…òc_'ÏÁEJ˪tjç›8Üo÷ñ²€PZþN?.W¾Ÿîùc¥IJµ6øÚ¯ÅÐàTSí®DøÐO9—ÏÐÝÕ½˜ÖÄ úÑ9Z|D¯ö,Ī'CÕÙ–3!v~õY"6U¯ûnY7l¶²°ç&6¯NÙæªF¿ |x—ô§îùîà Ã#ÚØlsU!@ø˜¸„í.ò™XwäJÿñ¨o$«5±¡SXر9XkZ:P´ø¯U§ÑF';¶îV›“×4Ÿ$Ôž7î—„“Jm‚Rg°(µI/u–(Õ–TjhÂ>wÍr;“g1yþˆÕ]É?*ƒôÎDЧÅAîCQ¾ê` ß dzCʵ†tG•´œF[\%°÷'·©Àm­p¼­Næ“1ÖÎ>¬rÕJvö°àá@Ý9MÏ8–ºz¥7÷óGJ`W¤×ÚjÔGî‰õZçªëŠ¢¼íKR]V¿†VH!²û "?[¯­a`¬}GÚ¬^u}¦Ï¸5=3qÖ\ª—a>¶Ä~8»ÎêɴȨA]+õçô‰s¾NíÇ-_"ö"ü̘ZèìÅA%#¼9tÓÂ×Þ'·˜ o­Î̵ç+|ijjJêwüÃôÛ×/ Ÿ{×â™ê» ÏPÄwçô^ç)‹óÏéb»øeÈ[¬[lBÆí> áFO ½åïš=˜YÏi‰&؃ {iþŸÆžè†Ã‚û¹ªqÛVì/È7Ꙝ¢~§!ÆÀ•èpËØpT”|pôÂ7„µÚV*µSoAm§‹oÑ$¶â>n õ×FÞ¥…–K³¾À¦X ÛòM]¢}W¢=Ö`jöè’ÞY”b¡”˜¶&s°É’è;°ßׯù.S O­ D}Ó›Wšœ ÃsÕIn/¾ä¬±G·¸% Þ‚µæh”Ä*Æ Ï;c óX]U|`¤;êF¿ûîêѬ z½9?†IüЛšAÒøU“©¼•-/aµ…üV!ÊϨ«¥°»ýÁòÂdÿB‰V¥Í_p³¼t³çíGá!Ðl±ã[¥åiqµvÒ,„žÀcu‡®@ÝÑ!3q[—âÁEp& ,€åƒ^,† ; y¬šØ‡‘” 䃯{:£Ä¦´\%…éäyk¨ô¼õpŽ. ”‚!†UPh‘0ްøñBå¢CÔ€ÌQÖ}Št5Zãæ—VœŒÿÀ=½—þÚXkñÇÓs°]"œCz TÓ|y©¥?ópGQuôÝ!ïåý1ÞÈŷıU½>е¬ÿª†âóæúÒ·N,Λ[^p„…C3‹ób"Y,ˆX%¨+™«ç—ñ‰öìI®¬ÅÀ?‘A¼aˉh$ ëB÷Æý 3è†|­ÝŒ?ÿe7õ£ NLpyª¼•0WB-öbh»w7Y|Qu*Ê±Û ´Ö>ª]ü˜ 'X^à;,ÜM£ žÑ¦ëر…†šÐƒö‘Z!U[[ì©( ãç “zà>eM‹ý˜-m>Ó˜LõõéêŽHª:7ô/»²­ÉˆÓ^1VD¾ªö¾u5Êçlº×Xµ°ÚÃo‹{Î[˜éÑÅËè2¨ZÈ.§ØD@§Ã5püg :Ø`·Ö>3£‘ho7q¾†áþÅÛ¾-ö:~½ÃyvØSÔV t±]¾ÙìsE`»ÚÉz5W:N­,‚ÅÏ*­ÌU\ÅGŸƒ»¡…¹¬P·“•Ûœl|¡“_pM g5o%ã}+[fžïæ§¡hõyØRÂT_àg7¢/õ:ŒÊÞÜHô—í= X üù7t…Äya·÷A|7ÿɘ¹+)Æàr²‹œ|ÉpÍø`ˆ›§™tÏ<+Ók©¤”ÙÕÞÅXRú`ÍŽ&ËöðcBNmݼ^ôék`ãà…yÞç1ëˆ7tÃÍÀ~·:pCÛzr/0P,b p›Zˬø·”Ö% €Á ‰ÞD-¿µÞ?"·#wWt,”UÔò÷Ú‘§> aý1µ,x5Âé!šÎÊ»ýݧCM‡}ý½G§ÂŽz•´­g{Ζ‹– ‹ì9l^¬uÁ. ͳHÿe®&Å{°~(@ y\Of\hð8ùÝ7k>£‹!k¹?lrnØ-Š÷7šSÔ,ïîó¨tÈã5*Jà0™>ø¿Àû|k5›e®):ä8€¿:Øû¼–èsƒhPÑÇ™%ì©æÏõHŸfŽSj?i’d ;¸›¸Õt„–£YR^$“v^ÇRèâÿsJ[Za|µé“08D¤á- Ÿ8(òÚæ-èBÒ†V9üÍL’×d+È{“Üît²Oi5×Ëõ¥µb¯¼{`\Y¾³©¿7“/Ê*8­æð5¢ œàÄߣ}jŽXWãéüß Y/´g]Ln7òÈeTÌ69®Q’6´[ªˆëÅŸ›Pe±yz¨ÒâyyÂxŰi…»Ø€n=V\zæšYãS d˜êäjNáY;#W û Hðåu(φ¦û¥Â–×ݸ»¹£§Ž8Ѩš¶é4’S:>÷5æ¤oŸ‹­1 M¥‚I('&˜ƒ`º` X™ Õš ç€:QKL¨¶ù†òìk¬ýWÇ¢Ž°‹OýóDÔÅvéÆŠwâ¡jh…¥idÍz@lWÛ›ÎÕâMý…%¨°K'ù;LÁK!u¼cOÃçSÔw牃gÜúõ¬(À@t¨×jxNúbè;¤Zóô§fN÷ü^ãÿŠè: ìÒL#j<úló)ÚlË£0™IÊLEçP6<œ{NniÝcø§¿jgsXk®a·™aVìoOJG(fÛj*)Š?†çÇ©Æk™© €åíâ_j{вvJ4sp¡;zö»Í4åÞð:j,x43×ÑÓÈ!ûg"--âOfçΛMÁ­øMñw!é3- ´~&’( ëTЇùO ›ù’ÅYÅï¢=Ó‚Ö¨ûã8 <Ò) ¿k‹\@?l‹ §µE¬ôã÷m‘ úñÛ¶@¯¦Q˜yÞœ²º  ÓրƃO|.…ÏUØøà|w‘ÏtÄ1jk *M‡‰&‚¯?º›ù7íþ–Ùa2ØYõÉ9¹ÞRX²pºÿB Æ’:[#*UqËÀ5Ì{´% þ,¶Ð]QßóßÝk4Ž=Ë€³ºU¿Ã@šB‰J“'U;]¢%YQÕ"œc÷1ø”Ç팮'g>²•&œïÀŒ`o†fX ÞÕÖ‡)3j¦øÛ‘ž&:øÆM§/þg|¶vÜQZB²)Ž<+-Ú¹=°R 0ÞºGi¡¯ˆ½~c }cý1,8'W |k hUÙd}K¡XÙ 3mó Hõ£Ÿ òȨøƒnu|ßê¸QÊ‚SÎܨµ±Ú~KOLÞðf<;bµÇ?VrX†ê'«þ±ºÝ$½_ÌùFDûÅé‡L8ë¦"6õ—È„N}Îb³2§Hu§Œ¸#"ÕN¥­ã‹È­G¤¹ùœŸŒRø5-ý@Þý2õ²hay€ËÍn¿^XÊrQò‡œGcšq¼y…Í1Þܨ°©wCKØÄ»-ÂáHÜ–~»Vum›#ôÙÍä–=Jwz?@S‚ÿ '«Ã°Xo@? ñXYE’wSóqÄ»˜€·¢IF?8å("”nà©×Q3¤íJàzit€š!•!«Åý‰¸RBÞ¦<´yNm0eÞd¶y6°¦¬ü(›~¸£¼¹¢ ™¹Ûàx“§£ü0NçÆ1lKA8Ôð;²§ÇóD†ŒH¼m™ ;¾8{ù·’336Ýš”¢<[nó„ÌFh¤ÿ'»^-õø2ø=ÑHð£Szä~ÈÏvN}öD”½!c¶³=b»œ"©(ù&©ÃH7¡KM>cðÑÿRßX6–ìR}É®+>{vª—1„’ÇQA¼Œ?Ñ7;¥—Ár´V³ÙféoÞØN<ó¡Åf¤_þ¦“(¹@'pS&êÜÖà’Í“ì<0È6`÷Iv^œØ,“æ½þ®¹ÍѶ§2sÙõjá§øpÜ¡°ÈÔ)æË£ÒG‚º”½ˆL#k’Ù|o0?Ê^÷à·ÏN~ø»š;ÆÁÌܤB6PÝ¿¦:örœÙ†Pià…jªÈ´‹üZ‡µ†'àƒ¹ÌÆöÀ^n7•V»=p:bï>Vv[Õ‹º2RÔ<¶ü$3]nüV\&¥t±/Ú¦¨o/„žŸÙr+Ÿ?öàÓ™¹ê%Y@D“ð+‘ !|â)’<úÁ ‡ã­÷¥<Ðlb8‡ÔyìÞÑâóY«£»)¬ òxCð¢«"{lá30o¨Ã#ÿ¤ªÊD’ï0f’V‰Jà#aÞ! êÐÖð_ócBÉR÷Uáo%ôG„ôd¿„…8ö°uVþ*,te¶ï[6à +ÓÊ*áÚ¯šß?…B}i ®qû~ fÿ¿q›qlÑAðʳÜó«aËþ’¢¶jýþŸ8*64x«98¥£’w¥v[vó)BÈ1õB9Õ0ÇOÅ­Èw€Ý»^`v4»GüR¯¨æS&Ådy6œ· ÙÑ~°s¸L.Ø…pÎ$X3.ô' Ï~¡WGßîËp”d±¶Úy¾‹h€m+sø¡©§ÄpUÖÑHá¾4•Z%™m²HßORÔá‚Nú²š{ѹ$ú z¨«Ÿd6Š»¨-°·i0ãýí–ÑWú,¥prln8ŠUZËaQ¤ßãh÷½,æ%ÃyVo„¼¿B_’5ü¾®.A𬪠ž?ò¤xnL'V Yt”Ôb¤OS,Òõ,ÃYÃ7jÒ”r`·G¸°õK4ÎÆÊ×õ…½Ïéæ>­ã0…{{Óðå2—:67ÚØ –¥™E¡ÿY±þ‡{ða@ï34ŽuÕœÒom|é“'¢þúuºŸ>@npŠt±{]ìzx­îuÜ*˜~îU:€g“ÍÕnÒhº”Ýøp„§°­ŽöÆ¡j´ï:ß°R”tµ7e[QhÞÞ°_ÚìŠfýsf|³>ø6ëš¾›å’ÍêÐ ƒÔqqÍ*êj]œñ^±¯?#ÜÕö w(oôCå¶È®øù˜Á}ÍwÞûm“™ÁDåÖ¦Ñx— C13`p¸Ìç7Èlë)öaÐ/ŸÙwmMŠ0£/ut`ƆŽjþ¥ÿDÔ»ZІ§^¼ÒtQP©{ŠOa¨…‘U¬ÓùN²K­6 •ä üÝe'è¾¹MiÁƒuss*þÝâm#Ä:çuÕñ¨mþã‰h ß_Cm!»ÕÔ| qª´ ü‰Ð[ý'%z•@+2^„âšxÿ+ô®…†¼ Çý1#üÍ" Kiìîë(l¾p:©H‹Ù–Z¶N“7’uãé c\ '…ô¨æ=ªˆ}•c L ôáä«ÜɶÛokŽ×÷&Wãü[ô°0¶UÑhÂõ#ù‚Úª)ZœéºòiCG}úbPûÕ k+œê<0컓U£ïgE¨xAªbŽÃð+G í )¦=çå9fûÌŠ†Œ(TZy–-y?ëÖ|Ÿ²#=È—8àPÒx³\ [†XáƒÄ }©o ¶¾¡ ›«)² mË#k £½¦Š¿DR©†ëQ~†‹QY·:.ý£Ñ„y7³øñ‚Àª,£G®QMeA‹áKaE¾×Y ð0Åæ2¯NïöhD–:ˆ¿:KK¡k'+RØ‘|×IÌõ$¥™ãrÅã›äO6ÁX#+íæ­Ò¼±1C /`©ýy{6Ïšâ .²g£š.oº0æÖ,cÞ‚õ¿x—‹ïÊ(ŠÈ¥(ðwþ(ĵ^üãäOh¶½êEN^r¡oÏ·¢¦š›5?ßê\~ÆQØC¸ÃTñiº$§7–uÐô–_øïɵa=J›køÅ¦ƒ¯‡É^GXæÍ‘J”Î%yËÖ¡Ø»¼•Lž/NŒÐUÔ÷☡XX ж*ïÃÿ…Ó˜_ñ~æSš¼Ì÷+·‡?E§}DÆ ìoDлãbÅŠÅÐAµ½.Ì:1>fü~]i lgNkµ‡5YÕ VkƒURJ<–o «õÂS&¢k‡jô'3ÉÂØØ:úµRÛ`2SjQ›ãÝ:å!Ø 滋Žé6Ò瘮‹sÐ ù×{ÅîëïäŸKžõp$íÜÍYÿ ©i˜Ê¶&ª“‰øN>dLÌ­v<~‹Î¬Æô0˜Eïdä=}õö¥ßgò8ùÇ)} O(oÿïµûyé£èá5(pIð<œ¦[iž#ʼn³fc˜Üßþ^ ÕÉax‚ƒÆ\›¬, E1ò8Cx¡¬a²%‡©%®ßë>ªMf=®k4ñ ì®Îu©Tçòêö–ÃÄ^Zèý4E+:Znc+QLF†¡ÕEûÑš¦ËÙ(4«€9`V^àŠ¾ÉT^Zï)'mÕõuªuB¹ã£†}0ßh¤ë¢+UóëßQ5óæPÉ[)žíèÞ®X8©d.+Ì‹Sx«û×X‚„‹5³âDû¾È…é·Í‹?\|í·šMq©ãœëkÌU 5xpÃáÄàoóÜ|È×è/…î|eQcââEyp0g4ÝJŠ•<ÁâOPx£¬½K¿Æ3p¢Ùu,‚™Æÿ®zFÐÆ”0é¸YD7[pÌh^aZmž«¦±RK$]ˆ;jœÜ°H“OdJ¶ó­¤Óå÷ÈÓÜR Æ—]Ÿb`÷¬2hfçè`=&‹×4:.ýúð#ð¤!æG÷ö#pÏ3q Ïô ò\Ès}ƒ<ò|Ÿ îYU<5öHà&úF §Çä†?š+÷QLh¤¡øù}9'u©óèJÇÃZ©u°@ÐëŒkYx»Í€Ýøol¼ˆìç‡kó´œB¼¨C™DÔJÝ[@íÒCK¤GÒŸŽ”¾C,¸™_"3îeó?ÓëåHæ²×ËaÌ¿ª×K=$ƒÏÉ¢²;艄{E†ŽÑOV:ó"´ ÇwÉ ‚Þ7o «þ•™«ÖÐ2«Daâ•Ø= §ãur:H’Ó¿ÖVõÅnþ«š[ýáÒ%üTÒò_ë^TÃë—RDU×[¾IN>£p¤“è?ÝŸEòšà$WÃöyTsѤfðó~s"¹Œ-55Ÿ&‚zT7¦5OíLAFuÔMHÙÏ&‘äÈÆR.¿(\Ìj’ä´°ú'Y")¥Nþð—tx—ÁµQŒ•A$ev¨U±'4Á¶ Å·ì°î£­Îw.J²ðŽËåßl«rzJø#IÑ2‚Á°llšÅéòVZàýÆ‘B>¶Ÿ–ÚαKFr:Ÿ°n¶ÖÆyÕÒ÷£‘´ãþ;“¤ºÑƒ?ñô•§ø !HP çÿ1ÀJ\ £w%y‡Óª^Ê\6‡íôï'ÑÜzüV3—×áôªY솙E(@(Ä•O“×Í6âÇau:yú1 ¾þðð %ïQ¬Ü:šD.jÖh“Òf]áUÍ£'xéÁQaU-Ž V5CÊdcT_y6‰“²•ùnZ‡³ÈÂo%€FSÀ:f4yq6ŽnêñÕÌC=ÅfØ•6õ"ö˸c3¼ŽJ¯ª0çÌ"ÏÌ®­¥*šûü[tѱO1Åê¨Ä"ª i1FE¬–ETÒV9³h " ŠØù·£Ç7–ý’Šù9~«ýxX„ȸ&p1PíÒ®*ï¿hŸ^ò[\N¶º9BÎAâ7ÍÂÜ4-]bñÁ\[MËo¼€O"aRþ¢šˆl½X±ù…(˜¬»ú¼<šlLbÔçÔ‘G’ÃÔ“T°Y+8aü7´>@ñ³†yç‡æòiv©öò¾‡ ÞÉOŸbíVBò_Ô©óäá…#q¡’Âì^ºœø¡fB£[pP¢^·:TTüÖ…ñû'¿{·n8¡¦o墟SÑ î§{»DÇyYóMiŽÒf5ÛJ¶£¥mÁ½­—H5¨ˆ£·„³zÌ›ÎüEQM"Þj!ñwcŠö{h@jààWL6šséh‡O>|F§>càSÊãå™ÎeHIS‡, »½ø ~óx)ûpñÕV»ùc»»b§",:±û•–6”YO7£cåÍè܈ֿ-¾õïèÏ ýh Ì/yèƒîJ²LBØ¢ýްÒr Þù>Äí)‹µèrhÑÀÄY}fa‹.‡ÌlŠotR虾¦ŒNÛŽ0Ýgó§ ‰‚\•"/Œ?(Ò‹…ƒ Ù”–O¡b8D,UnZyB¤å)-)2âjeÆ%ù)m. ókO 72&OÊàWBÅ‘ËQÉ '¢7o:‘è¥/vêŒ*ÔÕ‹N´¤kñæ Ž} O7ò¾ ±w*ª£”øêIu±94=ÅÅÿ÷FL˵Ð7Îyû‚wYšè–*Tmõ·[XJÔL…ƒ4)N~ hËGÿþˆ¦*xãtUW-Lã§É Æ„HJŠEM§¥Úä³£D|’’¹PÏéÖÒ'lúï8}ÂÚû„-춸OØRæ-Dý•©vŠ(ä5,‹÷þnZ¢y§O–—ª¯¹‡mÖõ±i›Éï¼ÿD´-’¹á×]¯‹OÔ¡@ü'ÅÖ`d«¨·"ä¾8ªïDsh²|YdeC¾àçäRUü¾å'„Ë%Ç>fTj¯ ÙñDž¾þxüìz.""•‰…úìÖÔ¥†o=¡›ÆÎóÕÇ¥G9”Z«j¼% €¬%²¾è[\L6Öt„íy…¿\q~@x„Á¶Ô§$µ[þö2m·Éì*7—Jûåæ'­¾Oæ‰xcîjþÊ4 ×?™ç+BŸén>à q2²ùîªá÷¢úùB3‘/´lV§êzÄùs§Q5äFr KÇÊ=Pû/—I!zÃ5I•Ë­þ­$+ÆøÕuBÿF¸â·-Ã]rÚº8™Tû·-ÄRüR¯ÂYͨÚaú w ¯™vB—©²t Òq^bìmVnóoEEÄ—úPõ?c}þ„ú&õ®ïêÿK}Ìé ìu{ÔÌ?àháœéÿätÐ9“Ý>Óÿß”¬o‚‹gÂ饽Ø1W±rJI%ÿ]3‹ÞéÚlö³…°62˜«0°WÍ‚œˆœ#Ø;þOŽ¢UUàu`8xÖQ¨×ñ•V‡U‚X{Ù ÕÈî°B:ò³W+›i(EÓþ®Íy°3,ž K6‡-ž†4ïÀ$,Ã57èœË\óƒÎùÐÐj6{&{çÂ7»¶¦ø.7|ªùØVäõ|CÙúGðlºò÷㯠=3§-°7¸Âª¦ÃÙ"è´i%l.‡§à!Åtz/¼}f”…ê:XØz­° þ W(otC«k”–Ÿ£Ï‰ ŒÒ²Þ‡|5›]ˆjŸ@®Ã I4ѶÞ;Œ¾Ô`*dgã) äa0#ÀTÞo"³bN1#ˆ™@,:ˆ%Ä‚ ±ê Ö+‚X ĦƒØ@lb#l$;$A² $GÉIÉAÉÓAò@ò$@ì:ˆ=ÄŽ vÉ×Aò@ò$Ÿ@Fê #@F"ÈH)ÔA @ ¤@Šuâb)&¤$¤AJdŒ2&d ‚Œ!R¤4¤AJ d¢21d"‚L$J¤2¤A* dª25d*‚L%§âLq"ˆ“@fê 3@f"ÈL™¥ƒÌJ™… ³d®27d.‚Ì%ù:Èüù2Ÿ@è @ Èñê Þ/‚x d‘²(d‚,"Å:ÈâŲ˜@|:ˆ/ć >Y¡ƒ¬HY +¤AiHi@¹[ª:\€PRïÁ75Ô$¾ô AxKÀÇf”@âÏ4|—œß%¾Kt|—$à»$†ïß%ñø.-qTjøvâ#;Ëf8qÈ×bCî&2 Þ†÷èT…Š›ŒÛ4‰²Z¶ßQ̦/@‹b@Hx§/bÓ‹”ű¤·ÓkMÙ’¢´IÃ:¡¤ Œä}R]wÀ›k$Ù¡t¶n­µ6JÒ2Jׯ±j}”$2”ÎÖ=¨C=˜%)¥³uëP'@=,¡ÈhÝã:Ôã PK¨Çibϼ¹ãæñÛÑ®^ÊîyTÅ ì^ñË7šòÝO¾Qó‚0'L&oðÐæMøë°Åœ«fvÐÛƒÒscWЍOÆ6ÒÝVÆrý E×ÐÒk5]BÁA5Z¡¬9/=5–£µuåŠ\6ÕZþ‰ÂÒO>ºÚì+¨ôw¢>È×7¿,ídb ý´7‡tÎLdqFu ÔêhLC ãa‘ïË;)_ÝÁǯ/ ¥ÃX§.~ß:NÅÍžœ»UüÛU}ÐZjÿL=¾·÷qt Åÿ3'.âîwÍ-?Ìi'…$„ “*& Ÿ?:y¢ zޙГ‡žŒ;“Ñ£ Áw¡§ãŠKšÃ(þ¢'Ÿü:¢é?(Í'ƒÀšÃâ²¢î1ý~°V´ÿŒôÿ—4¼¾säî¥Óƒ +õ *Þðr¯uGrÏ<&†|OϾ]A=¾Ð@ÝÊ“ÝÀ?X7#z÷)ìÿ‚VgâxR˜Yï⋱KÖ¥ ¸/ŸYìùz+ÈVåt ìY±…«+bÑ-‰ÁÏ0ž˜­yêº(nîP $ e¦×Ó?®ž>ƒFž‘^?¶üûèuJSÒ~é¦Êiâ™Å&½nyü&}¸þX²ù^¯þÅMïækäôö]Ø÷ú ,ÿΞ±áeß׿ó“ú·Ð :(ëîÇŸ]F³è@¼™_òú?ãü_ö½ó¿A«Ÿ”ª4‹²h=5úÖ|_ «6U¹ùä×c7ÞL¨Qª)8Þ¹DžÜ B7BÈç=Õ"ÐÖaþ¥JøŸ››6öh78‰ód¾Ù/¡ôùã@åL_¦nÀò5«œê€ŽÝIq€t‹õÔ…ïÒº éÁ|Çxß_œ@ÎÈMiaxÌšëfü6Í(Åg“~-a:x¢ïÐ†Ôø}¤è»ù“ø¾o> ¼+a<4¦)Û; šçaaŠo/FBz5êBþLñÒ䵪®´6Ö,é?¤ïùq¡ï{öï»ïüNþx°/~é]ôBŒGusŒÈN 9}¶å—K¿o®~{G\cpV9)DŽ`ÜâÊ—þ'Ð&›ââ,šàTOO‘é·œ!=U¦O9CºQ¦œ!Ý$ӳΞ&Ó#§“Óû¯¥K¾g¼ö®8ÃxÁÁu_°„V†9¿øa*Ü‹úþ‘®žo¸R£›haj>ŽsMM/ÚŽŠo@IIíBÍ(j šìä›ÏEAPszžn)ÿt»„ÛŒ§J4:Mf<¿Ÿ~·jíÞ'ýF3¶ïfü]ëÕxû÷­×›–Ÿ™~Âü_ŸT»ïõMEe¾>rHŠ5¾TÕIP›ú[‡®6å]µ|X.o;&.¡™È¤$ïR-°/·5žË&Čٗcw÷½DÁahÄm ù4Õx5Õèæãô/D¥7­ Ç…TÄ *Â*·j g¸¡WÊÃéñ¿¿wŽÊ’-³°Ú’7Õx‡é`øí»·Öv(jKœÕøMˆM2ÃPÕpö¼p‚‰6qŸ¡ú:2š?§KÑ>clJWfúx ´õ çÄ&·¦€£å^hðxó;áD5ìÙ“z—±ûè¸øN·¼Õfé>[R˜@:±$UŸ¬`éf°šFp?$Þ£×IÎê…F›ß|Î)©eIjV¢NM`c¿ ›#ª ' ¡6ìÔôÿf]Žú'OK5¼BÿOúvBN}#ªûÌlñ„ép³¼*1EÓ#C€½®‚sÿn‰M¥…D‚è_‡oþknÕ´ta àé¨f’â«¡pë,üõ?w%F˜Œˆ: Ñਮíù©ÂŽÄéâ£Iý œB‰šÀz1£¦OÈ–Ÿ“^¢f†®÷¾úX›Å=b€œ‰8ÝüË]Úú8·ùÄÃüÏ3I‰¿ñ_4ƒbI"IìUÓHŒˆäj½„®*÷NÎñîÓ?¡E® +î§ʦ ÉŸ9¡µß“òz`sVóª´˜þ–I5ΙÖ8ÂFs¨"ÅÉÏJw'‹ ªÓ°,Œ‹–¬µ4 ¹­¡i Š\3Ô¯ÉÓŒ¿ËíáW>ÙuV3N8ZÖÍÇÑ)ô’,8m7wâψ½ùø,ùª¤¹F6od-éÇJ ›;Û„ô7ÕØNþM¾ú tÕWÄú¯€Åؤç>_­óáo°c—šÞŒ7þ6¼:Ô‘JÚ@ý - _Á¾ùëÙ &½I­Iùz“"ˆæ@žuŒŒsÍš’d§âçÿÿÉ_ÕwÆ{°Ê|nëÙØ¢I~¨6,a8ùÎGÚ6ƒi­•a¹À–»œÞ/p™¼Ý}šNY47J-Nïn|»‰ÞšÃ-ß=-ßéôW³Çœ‡–æû•aoGu}DÝ;ØYìpåÒ¢t´(ú/m&žëo2÷S‡ù·Ú6¡úíK™´ ŽüQiùfþ Y’íWÍtz²F$¡Ä€¨Û›±sh‚Åaõ™+ÐçxÃÑ ÇñÆ›C‹^¶DÒ¥¾ê<Ù_Å Üü—/ë'ƒæÓdIy›ƒ–”¿¡(Óè] šÿýª:»x1K*ü[LŽî†¿³h\?5ürƒˆ°)í:ÙèiYp[-&Eõ «³íu„•7O¾p3.£*§;ºç ö±:2¡H–ö0úQcìÂ[ÿÔ0˜]ãá[õ§L–QZ®h^¸ÆÍÿª¿7GÓÔÎ oÈt8©;ó¹­¿“M|@TÃæõã“'µÎû®aµš™Í ifãÖËÍs,7ùF@UôWý1zÀ¼0?†VÞ"ªÉCŒ°ê]GÜW$lfj“ìhýHÄ>Uš™üŒVŒZó¨í[<‰Â^çqyú‘±ûéï»Ä© ƒÝTWñí§£ºS¬ô9Ò¼o¡Á‹9£Cæv‘ÚùMrº98Ë:'¸ÂR¬4׆…#ݰ>¿‘¹tk¡Àë„^èGþ¢.þàÍý(¹bÇÁ#Wì¢À²Âމ ‘‹¡_l†çŽ1Œýê´ltWf »:a…!.ŸÌÁÅVl_Ði‘b6A_ÉÞs‚åLÆž³ äX(öÆÆ&X}oÆÊ#hñgà'WàrÝO4oms4cv€ªÖ\º­¥¡ý©U<1o-ÅÒ[ËðVmõ]€¶¯2·«Ê;—²_öyHYšl¬#ƪ`³£Ý7‚õ'­îriw¬>¦Õ Ç’tæ'ûI³ø›t¼ Æùäp¯÷ñd§KÚ  1ç£ÏÅsVÝÔ·1çäg4æ|…ë[}VÝ “þF.`Ó, /wõiÌùÚóc3äTg¢iÃs{‡æªfüe¿ahîYXwúÛm.g•w'`–ý –ŒÖ“,BtëmÃ÷ïÑû3Ywھ˺SÒ'è–8£æ`ÑrÆ|@3fîuWÚ8µlÂï~µ§&î ûkÈÜ| —°ÆI‚™È ])ò¯4§¨ãgÊzX›-:TÿjþäÍàwÌ> ÒS¯"7e±á^©EˆŽ^³««ÜxO…r&kⶨ‹¼jë4 ão#§õæ/´‘JGg’àlܺCçÖGÄ9TQC˜ïÂ+`¿pØ? 1ñ¾_®™¡BÕ‘«™û:”úŸMZ©9ñ¥š¢†H@T¹E±6vXÁ9„™ƒX†~p÷Í–ÉM”?tC Ø{ê`Üäœü©ˆÞßµP5ÖÿãMúa¨W¹IÓÙ$©D6ÅäªD»5-ȆmÀT9ù‘9q’y޲ªÄà³’£'´™ŒÞ#™ ü_ Ÿh÷ñ:Ê.¸íWI‚ ] (Yæè„ñ{½ÁÃŽS÷€è¾ö¹>jÐ=9h÷¼òÝ›ary⺗ï™KÝ+íC+CšBÉ®ÑVϯmu­çWz×TqËYM,z8©ƒúy?‰1M05ße"†À£fVóß·¢È'rµ×»dXî¦Ãè9Ì}*åæ4Âùó/5ËNs/ËNM[ËÃÃOtIµ+S’¤¨ç3Íéil¿°â]Çà:Ø?P0Ù߇:ažà„™êÍ=äÁíêR8Æßð«”¶(×Û@ð@¸ñŒð¤ŠE·Nïd:ˆ}3í"7ZñJZÒáÄIõìÄ,¥Ø®ßPKäü¸R#H‚#ÈŠãQ]g[4œhš¤Ò#È«zI_íÌž%:±Ä‹E‰‘‹eºlÄ›n¬ÙŒpV„;MþÖm 5':)Ùืÿu+:–¨çxóÑ*Ùÿ™vpB¥cî )þèÖ8Áßú>¤øý5)¾ÜP|·â$¬vû‹¨~‰@Ô…Í|s"|6Âÿüûà©|¼$i]Œð7Ÿ>i¾Q>šo«pŠë=ßlÔæ›‹6;ûùV-šÓ…? 8Ç8}Ž';°æ«1+WÍ ¨²ŒÏRFö}ÄÏRšˆF ÃR LÆùOkth’û¥JXˆ¬ƒý$F¾+Ý¢'˜Ðz·î7ø8Ñ—±ÈY¨¾¤Ù¹ßG¦â%Í.> >Ãl­Ûäs$f„ÖäöQ×›ääË‚Á8Ï^$úÂÇ0kó Sž©/„àN(0¢<‡‘¹#Ÿ%cZmP+GuF¼˜á‘û #'¿ýA‰¯«ýÛ³ÀÈwãÃ\˜vf|Pb>¢OÆác±ÀLjO“ñ ­Ï‰6žûíYàƒˆ~·ÀÇG>âëúÛÑÿ3>,¥égÆ%&àã«?Åá£Eà#ë“d|`BëHÑÆþGÏë1Ã[bÅ|päá#¾.úÿ„«3ãÌø Ä||ôÇ8|<,ðÑs0˜ÐZ)Úx꛳ÀÇ㘡Aàcç7?ñuÝÿÍÿ¶ùæ3ãƒðñÆqøxFà#òQ2>0¡õIÑÆC_Ÿ>Z1C¡ÀÇ¿¾þAøˆ¯«ùë³Àj» ÕqXÈ^œyf,Pb¶?®cÁóRl¸ÀäþçC ²S˜Ð:Qtê‡ã:µ$ ²+;1Ã"Ñ•ã3”aƒ=&ßè^XÈ飮»DÖÄa´æxDp«qjЭ!ÿÏitß@Ö$ä= 1“¯aæ¼*òk!¶uj¦·õ+¿¢m½6¾¦Þö@À3ö½¹À/eèþ2ª_iÄÒK1}¼¯ÏôJL÷azk\ú†ç@OÑ1†Ñ¦õ>ˆ cÕûÈ ¾"Á,Zþú‚˜¼(ÐÆö©þÊ©ô-/Ÿè òÊjâ—ŤރøCxl_݈¶ZÿÁÓóJQ’7c‚€…¨É7ÝÛíû"õUà9”"âÚÇfŸÌÎõ'o$Wº„8øõh$ËÃË"'I²ÁÕH¢¨ûf&¾2~üu|>Šø,Á®xÅðùÝô¢p½åÌ+…VÊï7ÄÑ‹lA/^ÞŸL/0¡õ3Á bßC/옡EL÷µ‡~½ˆ¯ËuèÿL?‹íf|Pb>î{4…O¿ŸŒLh/Á_¾8 |ŒÁ 9 _ü |Ä×UöÅÿ%Ï 83>(1+‡Ã³ ¿y/˜Ð:W´ñ·‘³ÀÇIÌð°à¿E~>âëº2òÆÇ˜6åÌø Ä|Üö»8|˜Äü`û’ñ ­ÛDCŸŸ>¬˜a±ÀÇÜÏ>âë:ÿóÿ3>Jw[ÏŒJLÀGÝoãðqPÌ»ÞMÆ&´.mlì< |pÌð¸X/S;>âëØy6üœ›«Y¶Œ0‹ÒF4EBtLh^1ñà@@Çuբ췰ì|Qö \×UZ>Aôœ¦þ8Qt>¹0Ora¯qo|aÅ «HÖ?œ'÷ŠûÎo´¸ÚßdNU¯À`è“ð‚­Ü™Ý üO:x:‚ûFŠ›èµwà}ãu…ü2Ù9º¶ÇB‘²h¼†Í¦F ÉWqRÂØ~ö îgm¸Ÿ=üß¾ø‡ç1Ý@ò¯>ÓÛ0ý-äOfõ™¾ÓazIŸéoaú,?;>½yÎj,äÈÎF>3á}>+x’ÿ,@øŸŸü\„?IüÌYÁ{þ(–_tVðo!ü#X¾ñ¬àó~-¿ùÙÙÀDø}ØžÇÎ Þ†ð"üÒ³‚7#ü¿°=Î Þ€ðÏ üà¾áû¢çú8¸¹¹ÑÃCú"‘¿Ãe«§'PÉÑÇQÉWÅ®Q³7™JbBë*A]<Ÿ•| 3| v‹?ûAT2¾®È§ßI%¿¨€gvf|hé ø¸ô—qøøLàcÒžd|`Bë ÑÆŠOÏG1Ã,±k ýôá#¾®ýŸ|'>’æ“çÓNZÿŸÍükAøZÿ}ÃW»¡;´i>}y0vˆÀŽ;‡ÀÖT±àåôÂ>beì®ÅTE 9œd¾½³ë ÞFš£Ø;ß48ß\æáW¬êI¼ãÔ-hÃ5ˆÏ¸žŽ[ý¡¨É‡ñw3¤–IQ[] «Vù=êÁ'šh-¦þ¹õ3-Þ¼"ß9féRÅ-§¿;¥éZ ºz‡H;×Ç÷ÿž–iÑFsÕ]F@‹ãØ2yC‹á„,Lá<^;7Y ß'?Šô.Ž/ªV ]f¢™ö„B⺧ʹ†Bˆõà´ÂÐCdu^S ñN* …ÖâiN,&N°†Hi0€zËQcð·«Dí.>jø Œ ´È1ìBËÛ¨9½vÙ· Ö±¯á¯WCa”ȩ́kI¾xrÌ—9–ÖƒL?ž*ª’ÊÚçŽÅ•¨Ð £f–¹ònm»*`æÐâ7棓r¥Ošå›Àva ÏnÖÞÞ™zä ¶Íÿ±ñÈãT¼ðæñÊ ­=^˜`ÖUpn¯sò'wžÐE#£Ó`¬`«ôP‰cuÛ×ñcewKß" ×4Éò=(†G–<›U[[`R.GV1ÐÕt›¿Œj[ÌúùÛmAsG© £ƒf6Å 3²íǹ#’@"ÏAªP°éHK-r=À8z1Ê1_,8øÛlÓµÔGä ÍaжÅÒÀuݤÂßè@A¾¤CQø4ͬ±|p’•A냓V°Ièyþr’î„ûuLj(%r59Õ“¯U|ý¾Î%Ìéä_ûð5ÌÛZï2EÅ…|{ÓelByV˜€î¡¬¥*l‚]¼œ*^N]ümF®ÿ„¹cRvá3™¹0ó'a»3š§Q< TXÚÀUºêÏ™pšé¿pë±èÓ V\!Í/ïe4çÅ&˜8«}17²ŠxÖ±Ô¤^M2W®¨- XJqöeöîÚ´êÇŽÀ\öÙ1Ùý‡ˆÍ´«;`•哟³ (lr¨á^KÈ›BþÕ{ÛGõÒ†¡}ÔeÐ#òf9Qª|eš¦n¡òÂüýCð&‘xëfÂñ¼Yv¯ m9Ðçg1ðOÙØÆ¶µwš•ï_ÕuNîEQÀoû'ðØ’º*cDnÈ´*dšdm¦9|S6N´›¾'‡ò¢iR6diç&ÿÁ”Dw¯ü•mkþKQ^\›IEX‚õÌ6ÍEÔ£ÄnÖïKS6ýš`4¤7wà|@^”¾£üïl_ú÷·¯ük,”½«=UâÚöbiz…Áÿoù͘_:ÙKŒ˜ûƒÊ3Å·'ㇷÇßžŒ>Ûƒ²Wecû؆óa¼îûÒ” ¢;öFz±^<ˆÁ-—Æè‚DiÙŽ‡³ †•Ë”–_à÷p\9EiéNt,’•çû²Ga4_f¥šw Í GÅð´Bÿ0ü“Æ퇅ý²¸ø§§£È¹›÷æwxT%N‡ÄJ ÙðÇÏSÕw¤åQ֥К•+-+!aÔ×Y:#…@ñϨUpâPŸ:–µŽòaÓ[¦aQØšà½h†Uü1S‘_…" •–eXÀ Èâï6)÷þ¬=Pz]Vî4ƒ€ï¾›þÆ?ckQ+'úc«ñǾ᣾ŠÕ]CÍ \Ù¤q‘ã 嘉¨ ô£„}"a7þå>+5*÷:M•ΤJ· 6ñ§UüyNüy’òÍ¡|yʽ/@>åÅUÏC>Ⱦ€²?* Ö‹?«©!?µC‹¯WZÞ‚l£©4åÞÅ¢ò}”{•€Ï¾‰þ¬O‹Å/²ò(¤Zi¹ YhÇB®Tî- –¬Ïs`K:LeÍÙf‰?Nñ§Rö'JÓ£T<•PÉ%…Pò"¥åj(k¬&‹-uìùøï[>*x ¢Ú†×û¯”dåî„O%|fÀÇ Ÿ2ø¬‚ϽðYŸ‡àóöè¬ÜÏáó|¢ðIì_ŸKáSŸkáÓåeBÚ@ø<$Ë~>[àcHI5šLiéæ~™Y–þëÀAƒãŸ‹‡ÇÏû²mZ™Ùð9>ÃÇ å‚¿ÅðI˜OG‹ú/¹VÖEEgiÿ2¿û‹öÕŸ¾ú§Ý×9ùОhôƒsq2iùè`׫iwöÌüï7iÿOûM,¿ñÿ˜?ãÿm?¶•–Üzí½? ÿ ³ÊÿíÇÆ×÷FôiËÍŽ°Çw“ã굿D3`ŒƒêïNQ³C®g†ú±†”¥eã¶ÑÅ¡ÕxYùcÖd M‘Šº 4œNOtÈú+¥˜`¹Eíl²ðÀ`ñœUßaš¬{­™•ã|ú³%q³å6<ºt”[‘öã «pÔ›Ó‚Ç¢‡‹ Z, ï÷÷ö«ý7`k+=ù\½»|‹X:ëßí| _@n€6Ñ _þèZsãXn‰’û³b8€¹ø¦]$róź$Oì]tÈTêœ ºÖQnÚ÷ã¹é¤;7Ê‹|ÿÓzÀ ßgÎ+<@ æ‹Î9uóò¸úê;•w[S7¦$$Vbª6ôüK57QCÔŸ6žLCã­€:Jaº¥˜z¶eºöß#ú¶ƒúVW–í¸Yo½÷Béúº–ÄV(î Q*l¡ ^Ì„ñÜ Å­Ò‹~¡>žl2yƒt´7Ce)0ºKHwg`ï‰_X¯2;6×ÕÎiJe›Ã}à¯a^3°ÀÔÔ7Ÿ6¤x–^©l<ÍLÿ–xA ŒÕC¨ºQ¼2(’5$ =qxbNK]}ðªZRy1Ñ—6;uÿ‡r*ŽSñâEšä¦_8ôD” +·@ŽDø ßu‹ŸÉ¯J¤3`«ò ‰ÉëÙÍ·ì<&Õw„ÿijçÂn/æ‹ÙFÅó@êÿÂF"ÂR Æ<Ñ^êa'Ø{ÌìgМ»1—æ(•È ¹jÊwò ÷ȃJË»(¢A‡µWÁù¤¤©ð]ìbY(]FÙ|±«ºÊÉç#wÞè}V-ú›Ì²\N>äÚšhˆ¥Kàtñ—Kô”ÛEJ!KGJ£õ÷³SÈ-h À†¡u^QÝER~K l°ç)-צˆkP§]!­"î_¨!ùÜ «&¢“g”RøÛLPëbÓèD•¬?¦’+£â4F.ßp”ü‰#}Ù..4líãk(+WV#Mr¼¦Ü÷+q±‘Í[Ø,3›„]()h7†›É»îæ¦âe£½1•µÃ‹‰Î*žÑ£)r,¥;53«1°2 =x£25˜IÞÍ&ŠÅ$Z*5î 3».dÁ¶%®>ŸÊ¢àѸ;80ežAöEl¾ ¹à“ýp&?—MrÁ¤èÚ+ü;ÚÂ4_ŠQÞ9¦¦è®ÌJÖœk/Ä{gøà•c|²ñþ>#y¨;ul!7=ýê„òDqØq 8Æÿ^l ™AIéòáS!ïô޹öü%+Q¢ƒÈj”œ…×HSC(†ÑSB'”ðk&ÚÃN÷”UPÊ,[ä- Ë-8â-?Î=§aäf„Á¡ÂùÜx qœó'ÝHó§«Er®øßK¥*¡úzå‡ÒòÌŸzt”ÒòòU¿ª‰Y+öfÔt€¤~_¡PCŸÕŒÖëÅv| ãða<Ü´$-4饈~–…&mZj MBñ_^ûÇéYÛè6¯-}‚¿ý"å‘DZ¦ÜÁlwh2.Rô˜ó&÷nõw¢›ÈLí&82ö„–ÀÎýhYv}0Ý¿5Õºô5BñL»µówxj—˜ i\k6 ˆ}ÞÙ€‹°?Á ÓÈV¾¤24í°®ïÕϤêQõ{ÏPý²úSZõP²ÿTú{ëQ › ÞÊ× éüÖ@×°#Ð éKyðPðú›Ÿ`5­;1ã;¿£ÔËp¸ÿ;0Ž«£”@ü¨^ub¹Ø,³ó9|í®Tîý% ]ǪÖÕ°œS”–{±$=Cç½°@­Àe…D޽V°c‚c D)âaép¨GµMyà å›ù´Ú´…Õy¬uyž²ñÝUÿ¤}6‘sõ²wÚjþj}ºFwx.t×S\ð 74ËÑ+ÍrøšŠS}~• )êâ‚÷Î4»¡Ìüür†«ù8»qfwþá$]¿gÜn\3íÙî*þ«.Im+ñþ]¿hŽ]öyýœ$â¬ÕWxB9ñ9 û,=rR>éÏ|®=§ÆS-:äøè·%ˆn‡z<|ÓMä{—€­áé7NZ¼st$kØñ‘;´ØÈÈQÖF5é‹ü'I÷öz–3Y½³ÞßS šWç–wÞOë¼gåò‘ÊÆðšU8lcR|èü¹0°Ýg“êŒ7 ôÛèËXۉђ·¦(#›päËC3N°·ßü¼¨ÍÿUºÿ“qkîž#´:½ÜM_úiÑvÇh·€ËºóR­.ÖµëZu<ÅW;†o]u<Õ7FŠ£oêKx[ðÆ›ÿqEýÿ·æ!*{hyÑ¡xj4»ãòÒs…/¾G©¦­é£Êµ© mþ+-„pû¬þk‡¦-¹¸õé§žzêØÿ ùퟧ²-°¼¡ýéþƒãÖ¬’]˜¬þøQUêÜå‡*S;ohœ;>•úâQ6¾¶¦Yâm²ì âízÙÄÛU®øöfS{Q{±Õ£|鈟ˆEk1¶^Zä—Ò-‘MY[ŒN梾á:N!ÙRÌQ#žÝ.>köi¼ÈCŽ[ÎòaÇùVXƒŒT1L:f_„³Ã'ŸïÂK¨mŽ7H¨åì ŽÈýåDG‡/5X‚¡Ú¡@{˜Ýa1~è8‚ì,¾‘¸)*þùaÍåÅö±xm²Ö†¿#µœ€|ö’Îb”P½²Ê< Ïè…Ž7*g/Æq[ºLlBc ¾})ûža¹¨4…}ï|,E ¥‚xùeÌ‘•[ð-&¿d¸òÎ&x/_à Œî½¦gÜ+É€Â=ºŸ’uî¤:ïÅ^”¯¶¨™«'Úcñ ]¯c²ÝJIö·qÍû²Î;‹ö¯™kìÿ8CÔ•û?g| žŒÛðk´ÀbXRÖ|<µ–‚8ÂñÌQ†|Ü2š?Živq+VTàY§ÕÉÍ7EÎMh»)Ò_>?ÏÆÃHáq—,¸‰æ9Ò#óhÇ_‘†O¥'Þ™U5.ïãDÆ£¨ s¶ =T>‹×ÕHøhV © ÁìrQî~ü”®HEñ§á÷DhÕø®à õ{ªøË‡ã©»½Oú›ß'­ÎI„Ó”_íá„râsä÷YzŽ`íáS³r·Áç=ø\8-+w|š¿h5IýYÔ›}Õ„®pG"sÐbÇ”•pVÁ€#¨™²ü…ˆxû¯üŸ›Û»S[|ù§ß‰è<¶Öþeã„^šÉv·ž¾jG[dùXœOK§Ž5ìCô‚76º~’^«ã[¥åA*Ŷ¼ù„áAMŒæQ`$—7¤ò£Ñöƒ™Í› öh4ksVŽ…ZµãðêøË²ê“qe«v¬OéòÉ>nõÀ2˪Õ)ePÇZ·ˆYa© ´Õª…»¶`›‹msñÐÔ{½×ƒ^×{-ÊÞq0òÇ‚mþNb©ÍU|äL •kím&¢=nk?°SÏt†ómù¼ØùvM†v¾Eÿþ’1ÌjiϧófIÑ~¶¨$Þ±ZS§‰L‘>ùÜýP×¢šÅ¬Ë;"JË#©xj€•@a'S³Ëø% -Ðj Ñc|™Lhá[Õéþ{ijÃò¢½k–¥¬Z?­žšžŠpÚYV þ¡3°•w:ª–ÅÁ‘¬.J³FÕA½2 ÄÕª–5VÖñºâGœõlKA»¿;µ5§"UÇk¦‚]AT«xýŸ3^ìêü³<"Bc‹SpÅøÛ©þ53SNC‹ û”»;‘YÅi£Üû!•¿ÄV°Ëß™* ʦ‚"7ô’)¹ùD*sÿš1 eÎÅ2{€O¢-TÄ®>x’–N »T°ëŸ%P ¿ÓÉ„ßDóDU¢<âŸf#mËG‚U⢃1üªDƒ'<:]n¤s z¼…PVQ7dR§“Ú`ŸËW}Ešµ3…sÑ=´0’)Z„£ x¼û%á¥t*”V D:žQ‚—¡ððˆ§_[Á ¤wÐ&‹¿ÑèÝÄÞ×òýÒ÷î²ožT£uùa=G¼Oð¾¹X› sù‰þ1zNølwQ°@el{§ˆ1¼ç 𯷤OjšPi:äHÍÜZ–rzkJð -pøOEÕ~”«(éç?•‚Þ±Ù©Àþ¦<ãÇHD&øÛz6luñ€ÕwŠúURD;×ï=³cëw‡Q¬_k2³e0ÆãR@G'èí$!_¥-®…À‡5 ô²ž ]}{ Ô¿ëŸõ'Ù;V¯5Å‹±ØVXóŸ‚pMÂÐŽâ^Å5ÑÒrQ𠥋ÒHÎR‰‚ƒ‘Šãì³VFùÃDÅÿ Pk2ÆÌ…£¸òâîúàPhD…ÐÎï(W æ¼òJF…Ÿgú»o…Ù5Q¹÷#^“¬ž;¯=CÙð§¾#}®¡³2Á¯K ׋_:‹Å/³¡ó2ñËbèÌ¿ú:‡Š_™†N‹øÕßЙ*~e:»ô+ÃÐù%þR^©ˆ®Qü¼pÕñ†ËV¿våEðnÏš)ð&Ô²ywÔ`hˆ HØ^jiÇWp¦îü ðRª 5#¼wXn$ç%“|lÀÇþõçÃ#*0µ±wPª Æ…{N£™²v¼aÙµHIaùXq°W‘bürâú O#]Îjï(Ë;¾PLSÕù-zöß®ÑÁ&oœ| gMN‰òb¤&:dV‘dò}· )j?hZÕS¸$kUÏèå顉ù»#¶U=7ás==ÿ9b‚ïíÄÕÀɷ̱#(µÄž„eTŒm76%ëŽÒènA]ɧ¢ÇÉDàFxèü¥à™sèÝšY’‚²Ka\G}#:%û6 žF"VZ…dËë¤þ¹$6¹0þÁ纘¨ˆz1îƒÖœÎ‹áå†õ$¡GŒ[ õV¯þð = Òò3€óBXÍß{æd”qôOkþic!ä)-°†?ôÔ±(›†· 7<†¥§T…M2ÕբꤚôP€^5î.lŠ@oÝ¡)ŽSKû­ñÀL:Ѩq'T݃šŽSŠ ÕVkTh3PA¦@ìÝ‚=“«\Ðü’ÝxÎh°;£N³ÐŸn!µì¹$É‹õåfœ„ù¨aBõ¨Qȳà@ÅXêt„†Åw2Ö£©Æ36åpX\ÕÞçï‘S®*ÒHÀJ 6¥à븹Šã‰\4¼"cÑ1ðz$ IœÕ.™¹ÔqjÙBYÀŒïÌ=—rÃlT«°áuôì9hrS™0;^á>Q›‘aDA€y¢€A…Nöï®í· £øp§Ósþ£mX7IíèÞŒõY³íÚÆUÞpUî܃‚]ÏÉãd4òÂ<È­0Ì¢7Þ˜•;Ä•›ŸçxVVî«ð7>sàs|.…ÏXøTÀ§>/ÀÇŸ?ÂçíÙY¹kßÿRð+U{2Ê}Úğ4ñ'¿2ÌðÕO¦gÂ'Ëjé?ÀªÈýf¤Øoƈýf?ë€ÁÈ“ÜfÿâcÉiZ•–_ãù¾Giù¡^KÈr½ãkdzÿÝ)Úy`M:ì/atÛꃓ þ-©åóRˆ.ä±w Þ… (<ܺô¹¯º~®: ¾c’a.;¾^ràvwmNQZPdèøZñã_(Wõ™ÇÔ(¢8kÑ^ÿ¡Ô1ªòÐær©ûà\h{)=ÛÌÞ.ðXŠ¢{NØ«ê‰Ü’²n61Wy1ìDÓ›8 ¬´ „rÛÿGXA œ‰„/Ô±;’ƒTXA*Œ7 ðNùs„LCB ö“ X¼Òr½ä7<Ú¥íYæ¦Ø° q-eãZr’%fðº”Ö³Óå} w6\‡¢z\icxÓtêºß@GïRd•HéF¨>؈XÝÝ"˜@kײç®à?ø±vÁ»/[údÕrúœîòFc$eóâú ‘”‰B©«Ê [€b÷Þg´^8ã{³øóŸi”`Hr/:Çhd"4Æ€³àIûh¶¶´Göºï´„LË€—&íwSc‡]‹šŠ7»âò»&äµ±-M7U ·>ï°«-å#rC7¿†’Žúæã†”%Ž­†¹ÊÆí[KSÔRö^{IJ&§hõ¬úmöªÄ=šÄcéêìRÿÇÊË•«Í¥“Õ¿×ÍÙ §‡-N’^óƒ“Hî–MÚ¾áïâ?ÓgÄøÏÉÇÇáô8\˜5‹¨¿þÓ)õÇx>……XR2eÄK¯Q6c¦ä%ož¸ÁÍü0þozGLâMï'è2xsZêÑîµ®>˜ ¶òí"aS Ëwäo:}¶jü4à:(xÝñÓÕoêzû[Å[Ñs±©xó]í¡`Öh8ÿXÝ„ÓÃ.'ß:\3qÊcé'_6B{¶²Õ.þbŽnç¤ë$hÀ TØ{èþ+hCË®âwâìK§í¼vŽ/ÃÉûýñXT`$á±ÃþFƒˆÂcqòÊhW»“ Mrd¨¬N¶ò±èü*'Ï•-/A§èÄ¿åꮘ‹»ç¤vÝ¾Ž”·¯ƒ§iC~b…ÉH:âþÍ&(ö¹_-‚ºFnÀD0Z¦Ùâæ—¼+o^}“ªÉfâ]‘qs0c OóFg¬Ì¡³Ÿ!)tŒØÑÂl]{VÉkÏ—zŽÓµgl ̆÷â¼Âö57ا’EäÈ¥2Ç]dI2Â}7Ë…¿ÅÙ«ÿFa@¡uµxs¨EQÔíùYŠòD¼)Âc?R ‹cb€bx(-Wš0^Œ*ƒé‡Be6ºôá=×§°9Ñz5â [Ù¸Û±§/#¬«SÊÐðÝNíüsªÜ‰Â{ºƒxC ¬”cÊUXdé ȯl¬18ö4d YåK¾&Á@wT½Uˆ'|ó6=©‰h†A‚NÙ´âfz£‡RÍ ÿN‘k7­¿9Œ˜ïŠÚ6̈́ėРLy¨­ÒÐjMhSQIZ³YB~ý¯ú¬\Ç¥—_ývÁ›“÷|>ží }vºuü;ò4©}¿9òrRì@ç&¹I5óe+ÚŒEý~ÀOýØLÃÒ4»)b¯»€~¦E†×åFü™P?Öz þ̈ýíf@œãÀ’¨}$îußî9müÚxÌq¸érc›ãpc*;,95kÙiMåÀ‘Jª¶ÐÄaúA vÇ·K¯dc^iÉ•û¿²q¹¼_àæ}¥ÂÆÝx:~Õâø¯a—|ýùÊ •€¿…½¥ÔIö"¯lÛsœ$*¸!!ÕYEVûxJ)áןÄE”GôÞ®´<¡YÕñ³Ýˆ>VòYwÁiìv e<½ûºéŠ©Ÿì¬ ·“_Yªw/5E°ê¡‰ŠÞ½À~*²ÊÒ„=uêò†Leãñ)ŽÓJåRþÍ©°öc¦•Ÿ’­éTØasʰ?‰ûžc®}¤r÷Hc£á¬ð+b+hÇû¹ÍÑÞ8ÀILxœhX¶ÄdÝ„¾íbmÚ"’×Õ•Uì5Ò9UÐ]° ‘[²'ºç¸3CÆgŸÖ#qŠMÿûè±hÄ#Û\%‹Ž”“Äq&‰¿h¤H¯¥*tGŠ(ÈšPP?'ÿý£DHõ¾'H‹0H™ï&«32añÜÇ5é™ùýâ0¬í7~œ•»üæ¬ÜÇáóôͺ>-ʼn!Snò®äâù=1WX}ïÇË*bûñ?¿–ûñt€³P9 Qÿÿ„.ÓM”ïä|w$<²h¿ÿTЇ–ìv¶z;𹫖Þ»f·¶m.½6¶m;ÂjÛÂÝï W®´Ôâç›._µ¸Ñ¡Qu ~G‡¼UhÉÅ€ŽMƒ`Kàtòâ#ÄR 0 ~û&úÚ¡tÒŽ´˜UXÜ΄ümêy‰Ã0þÍqékdNXš¡&·'°_UÈŸ¢-Ã4'kb|3÷A5äª ›xÿ7±&$ßôX‹…$šI.›B6g|~½™:Y¤fNè»™gÿNˆ“ÿ:ž|sI4þþ']uÑ~)ËoTS"?%êpIõKПÖ43…äâÄG•ö—ïE-[G•”–5xì>ÇaTÚ‡™kÝÒÓI±âOÅ;ò‡UñOFöO=’’Ù„œob“_w¹ì‚Ã8ÊÓ|öäZãŒó»ElH9»þ‹ãQyÞ‹²Ã&xÞ€™JQ’‰?Ðvþ1úQ.¼ÿ+-ãPS:yíxÝ‚õR²v¥à¶*Lgá¼Ï/8ÎðH^¸§­GjZƒtœ]E^3茤‚8ôÞG§ô̹0É•d¤t,kåóL8EtSˆ_Ò‰¡ô½‚ðÍŸÅÀmñ.­c`w âŒA˜µž»ªH§×gŸOݦ³SœGt©žïx@œ§ÚKeEüY ‹~s{Vnþ’¬ÜŸÁçðñ‘,f¾»¨ËSu|Ëõcm¤ˆÌô©óÈT½¬£Âª~ú+tñËô0;þW³‰/-¬qó×Ä$ÇÀ“Ý IŸ×p¿4ÃG³h;° ¨\†ÜŒÍÉÂ.~€[ :cäˆÁv/„ìt±€Õð®nþªjø:“¢ž;Ñ“q$ ™€ìD´KP¨¬¥ V8pÛÌqŒ77rR%üÖ+4%…r˜’‚sœiµÎ“ÈHút‘ý>½»móÈ{.VÌÒÎ?%š ²">|ü'Ú9™pØ?}Jx+‹…òeÌš…lÙ P«xTˆ–³L1ÑòPÔL‹‰–Ó«¼'½OÑr̶O-Çä÷Ä¸Úø*)ý…̵(X~î¾8ÁòwÈ—ù#½åËÙ(MÃ}ÈŽeÛ«ø…±Â…³7DÂ$ƒ“/ÒY8ô}ÈÿÏÁ"bˆäJÌ:ã6[²9k¯ÖpU¡ÏÊ7å¬\¬§µKÆm>1næã8°Š8ÆM´\ãÜ€ukZ-87¼0ôæ‘}›òÙñ>ý˜‰Ì;™‘Uš{ÜM£ØµhÔoÏiÇn`€vWUó¯¶h’aå†À–íöà0Ý œ1‘¾•‡wÖ³ þëÓš ûŒ:ÑÆhs«æz6¬ó Aîw²‡•jœ`{Œüi±~è#G‹F„"D#U¡A¨¨`.êÁ–šÑ©kúÇ©1Ô³”ú`*LàZ[jL|òFä´v`Y¬ ¡ v£@÷©='öD Þ5¾š™…-ã?S]Ý@"ØA °é¶ÄÒËÒkš¡Ö¸­.8MÏŒõÌi†—õÁþI†Ta ‘¤åÊ·¸°çãœT!Óò¢C(æ½ÈîJWBh¼.ÌŽˆ5>›ô,i¿Á¸ÞâzC|eV®ãôÒ«Ø;ˆ¨‚wÅ…ËžN¼m1Œ3yzðöú#Oã, »IŘ¯ÎߤH3<íÅdDO+þwWð%&í9ÉÂè÷ ëIÆt] ÒW-!g ‹®1—¶lW“è3{§ÀeÙsÂø¶qw}¢Ãôá2ÀUߢ’YZÚ°T:õ Çû0åÔô[S–ãRìé—tCíÃMÖi-,PîöŠ“v£çÎ× I½ù—)ãd,††ìÙs§ãâ‚ã{¢ž*ñ*tí/ØVûqá!¹¤ÙÂ0ÕÆî´ÇäI¨=‘WðFÁ;{ŽCw¶÷hÝÁªx¶ìÒ`Á$/lg“è8Ód[_ϬBeš~ƒúµìL1éSØÊ€~T /".¡†{ö pŽKK¹ûÏ'¥ºAµ…M0|ôpã9¸¾ÜUü™6]¢ó'ƒ”(õ©¸8äS„›+ÝO%†K¨«}ÇïÄjgÂЫòΉåÌ@VS²î Øi¼t©¢ BœI ù„ctYR(x ¢Kî%® 28Ù¹Ö"2r°õɺõ¡·kx ?Sísç©âeÃ+` ð†¬ÜÜÆ¬Ü+Å]‰v4øë¢688£ÔR·ÙÀŸÚwÇ—K>•ð_Š¥oOXúok ´ÊåõëBzî¤Úþreã}wp=‡ Ìa&3zNÌAK®¦;Т8sæí¯gÙ7 .k5¯|IÃ~?¼ëÛjÈ‹\SÍSÿ¡ ¾‚Òs˜t±_9¯>°_¹ç+2è1¤(þÏí*Y]JBœ©¤™ þÀRÃÃÊ5,ƒ”à¸U991݃¢jýWÊݵ§è,•'Ž9[†^‹©×[7¯V»0BS M^DÈžSì4IŽ×ÀZÿ'¢Œß*‚Û më]R߇¥ºyúâJ¼|‘$¥¸Šf¯Ó5.R”tðÐÔ¡!ø­›çøUYcQóèáæ¬ÜvølkkÞÿ…5°ƒ> Ù×0ÿÈÙIc†Ñm¾#µh/›nv´7¥²vtýil‡Wml†ÔÙPûl®+­E{‚vÇn÷•5l¥¥ºžWÙNnõt-‚êù9®ˆ u¯ð~2»~t–z>”D—üì,–Á¤ýӣܸ‰¾ñ@Ä4Uv7mŸ7ÏwuT‘+°—BÄX‘UËfïMC-jV`ÓŒºZ¶yÎlhj`Mc¹csÃhh+4•-£fæà;”S^ø«]¤2ngGŠÁÚ'=¬¯ÒIulnüFÏ̳ÎÝ+ôUŠ[×ê]Úp­4Ù¿æ‰ÈQ³ÃódãøÓÀv‡€®NÇ®n' ‘os››Ñõx3ö¸ ìho˜†[q`/4«é|f+«w —©E!ËrY]­ZoGL“ë¡âÉê @ÚÕO‘oâÚÓÔÿ†úÑV_?Ø ÛWIŠ7#ýíN2ó6Š[gÕˆ7pÓÌ{>v3ÕÂÚ=ì.KÌLõ‘Ç£3q¾Â¯«UÏkn®y†F'#÷PÜhò›pߊ±XÊÌnv»­KÚš.ªfû$•ô¢(õŽtŸf Â$ŠúÑœX¼¬ÿ¿ó»bùê»L pñéPbä\ã ­âÍzòP™á+ñª¡ê¨®Äê’÷˦jt²û¢ý°GG}µ”ùª¸âDmêŽ,‹›ˆ6].«ß«úçzë{Y8!ÖÕ³R3: :_f}â‘utº/òÓÜ© ã©´–TQ›ãÈÒîGˆ£zv½Ç—ÁË ºH_(²z ¿UÛÔs<|ƒþÐßÃFk­Ð¢ÂSÈ‘%«›#«J˜VœwîÆTŒ­ß‡`"ÍT«æûÉM—Ž“‘ð”›aãþáó¤êø“À~oXÑv I¥¢ÖppÌä2Çk _á½¼ÓË}ÏÇ¡17ÆŸ?‡Ž<î» ²j²ëö ÈW™cTŠqñÍ2ÇëP˜»á³ä»óØúÁȼæ¢.ØYס{HÇ±Æ ´ûˆI]ËbOù»Ž’rDZ†ÿ8ޱ•Ðy¸×Xp\LKœüƒ¿iH”@6ÞA¤~[%ÐFøÑ´™ïw Þ¬ Yf¹x˺k¥åqÑìê*þ¸KÆÝaF%Ðï…é†~ýM<üËN³àü²Ý^Åoú[bû؇ŽcÊZp‘ŽïÀ‚žm¶§Š›_ŒùÛ.FÂèöðb½¾tßh•œwç88©rÌ“„‘Nú˜qH/¯Ù´sH•I¯æ™Ýž¢6˜œû›n†–¡ Ú¶;T'é;}39Ð…6CMåìÝ‚ÝU!S™“W½kõJ&,훜z«Õ¹I.»C)¬;’Ráèiø­#¼’°Î4€ÜŒz# ÈùÝH ªøÿŒŒ„·ÚN3±Q7˜ !9nö  cÁ×¼ï#ç÷È®®~R̈­GÜl± …\à ª>K¨q±ŸýK|ãØišÞs¢ ?° X«sÿÃàùn¬ãó©Z龫’pÓËÉ?Š}± ÿÕr¾Ÿ´J›qDNð5õD+I]QǦXêG¼#d¹CN*Ùrif7M,èpÂÀÅ_ú[¬‰M8 ™U|B¬™êì¤fÎ`‘Ø7ø»£ Ë¡«¥Î*~{\9× ²-”ãá=SbÝ-9úŒ]¡ ÙtÒº(HWmIË2,\Éá¯ù$݈ÀvK·€r}f³}ï¹=ÂÑj-_Ûó1jA¯GÂ%§=qq6Ð+}qþ”Öª\œùM>dÍ)¶Î1ãf'_ú­Ñ|}bDcðã“c˜üYr‡ñR ]à|T°IGÄŠ¢1äx§j+l,!´×'WWpj˜ï$½€J‹‹Ÿ~6yv­U¦­ÐX4ËD)‡¶BÍá^‘ÜÅ 5ÓýÓá@W#†ˆ®\hà£*¤K{_M ªöw;«ùš¢üÇSÔ¡lmiÝUºó¸¼ lW/NÇ !¯xk§àµÇg[èš9 Œ*Á<‘|s%÷{jœcô&ýº<©IüIá #¤ön_Ü^C*4é’ïh’K4‰øyjÓ£ò6-ž ùFþ‡àŒ„–³nO#ú¡ÉǶ1á,˜%`ýèžT‹kÿÕ±’ÀFQ€î³Û"ËÐâÃpý ªÉø^Ñv<}³äÕi8·<)}ƒpøÐlk¬aö3 æê`B9øÒE(£¥jŠ…¨ªiVuºàã.Ú l¾ëÙ®=¬§5ϧ_@‘¡œ¥‘óêƒF, ÌNk Ò ›T¡¢+=aró `<5'T(Ù=àvܼF šMÛÂГä䵿Ã6º¥ö:‰4^Ó&©µÇŠFA%@f•)n¶Ü ;VûÁŒÀÞÛøjeãðŸ¶M¯ŠÂÀoLV¿šS´ÀkÕ4ŠÔ¬°Öñ¼œ-ÏËljӪE:Ñ9ëÙ.ìÊìê<+rñ,SÅS2ÿíãXâáþV{(€Óì ÷¸~ÂúwìPüj O–‚ÖÍ›SÆ/ 4œ5túkW´×zˆk_®lßE¢äcûÐ]›håßÿJ­œ×ÊëYT¶ó…ÇâÚÙýHR;ß}ì í¬ýëÚ9Ik'¶œÝˆöÅöe8ùCz9H_ª· ³ŽÚ› EÐ,GþBÍŸÍ7U¸‹u9ÐŽÁ¶tŠ¦Ï«æWéUó«õò/®æû´ˆ(¾!° ‡Ù[§7ô(¶¨+’ ÿ#%ìK2iéHut/y¢†7ü…zˆy´øº v‹¥9…-·èâ“kô”:B¹n,…¼"†‘|K5^oCcàD½4Gê# pño7h¼È=¶äqåt?ô¾ëïê³þ¶gúªÿ©gú¨ÿ…?|Gý+ÎX¿GÖ¿LË®^# ,þöÆ.åU×ßh·8»í«Õ™}¶úèÓZ«gÈRãê5´ý:V§¨áú¸:E®¹zý[\Õ÷=´ºÎ„o÷¯ûj¹óé¾Z~ÝÓ}à{ȯ¿ßæ§¿o¼ëû¬÷S}Õÿϧú¨ÿ¢ïªõSßWÿÐß÷Ùÿ>ë¿®¯úßþÝwõ?®~ÚïKÍ òSïá{?puöÁµ¶/˪]<Þg.u´/ùö„i¼¤Ç*-h»˜¢êᩆ+—¸Š¢C@¨GÿïæÀÞF¼°šj·¶7â}ŽØƒÍŽ]M©lW`¯:бKí¯!Ë„ìŒc$í@Á8Ú8]ü­Gãœ$íçÞBÁÿþ·oþ×ìÅ›j§˜Æ(ËvUñoÉX2Êÿ­+ûÊwÄân»‘»å<¬qµ÷ ‡"q¸LŽ] ¹ZÒ  ³Ã¢¦²á³Ã ¾F¥Æ­¼‚KlÕˆpÈÑYn¯÷/@®ÇG©ƒé•ívàòðW‡éöB,PŸ¿²ÞÅxçšy.…*Ôý»[„±ƒnÎtUÌœé¾þºfª̉á¹¥e©¿@ …1 —Qµ·ÉdXpN® S"¼ì“®ß¬.8kVN6§ËÍŸûôT”œ½7 ûž8Cô/jãwkw™–°±­´$»@Ù*¬Xû{ɽ¹it¼¢>h›n>rÊ;"Un¾榛uóën¡þ"[ ê¾h .…ºÄtö“Ü|×­=hmœCg\ÿé¨:ßòºòY4 XfFãr³ÛÃo:*W$…ƒ_f†ƒÔÅf·“O©µ Ñà5~Þ7LD YA*ûž§fP€.ì‡%˜ tyÏÁ¤ ,šÿ(å{4–/¹ü,ºws™÷|´&DÅa™Ž]C]žÐ)Áëêò\PÿÒŠ–¨Yq–=ñyãOZ?P.ú„ñ‹i)²ä†*ijnoLçÃê•Wf^™Rœ9=õŽoÂ0¿òHÐ.xEïq²ãìnË>=0×n9ö¤JQ|@¡ïwb,Ÿ‰wöçßþƒœvP@ò(Ô2öGëÕ<„{ïãú†f~p.‡oÌ“¢Þ¼é'¨F’æþDÍMÏt¼·ÌÓõ™[ Ì"´·ô¸Þ·n ]¼…6Ÿ>þdô6ÌgŸ­±Â§ʇD¥<^¹ó“w RP^8ä¾Úñþò? jú(á)ç„'<ªc¼ÂZ¾[ÂÆöC7àË„äý [@ä ÞHzù8Pxš*ÙÀ§ÕJˆÉÃÕ_‘÷V3Š.Û›.ˆ··Ao63œ½`Ö—!ìðßxpáO6$«Ó´7ÇíÏ¥}ŽχyFdüQúØäFÕ¾ôï4ï‡eÑqø·+°kÃhc¦¿GU//€ýKc”"„]sýÝ”{6¢ìeºÑÑ®ÜóŒx?ßÐì»Ê߳—æï™¥æW»«k¼³&Ë]XJ12#Ř%ÏB€ÛÔ?þ»räÐÜÈã¶ø!¬v;k¼•"šXSz2ºfj|úü¯æ´´ùÎ?ö’‹Ï8¥ï™Ôbٴ͆í¾0)yˆLãkŒã;æoÇq f 82¾ør¹ëA*E‹;©ïë1kú¾MºµÛÒÚÍ¡§U½ùw¦óxÊßãªKT–ø¿ŸÓ—8ÉÿÒôÊëƒõ©ƒXÚþ&sŠzÌŠé¶ú ’œâË–æ†Û‚x”¿%V"…`2'eIÚ/ÝŒBà -ɱàXŒØ¤˜@>S4="tâyÉ¢Èq ýNF®[˜ª‡&rt`̦Aü-蜛ÿõÇ8`†ÖK°þ`I°I‹Hl²±þh _φØàO°?%)j{ ­S6¡ä‚ê R‹êƒCìðæÈÓüW3%7UWۘ嵭=®ëšSÒÒ€¢ã5²Û“¬J<_!¿éŽ0…J¯ßDçÍͧ±ß ûõßÑãs°cÐvG˜Cûœ÷P§X¹ ÊLa‹¨½7Q€8zÔ-uµÁs ç"{ÝoŸÁþ==Îþý9i÷! AÒ(â ²È.§›ÿeá1É)bþz—÷bZ¬¼Ï~Gy?ûiRyÄo¢A$T8Í•EÞ¬iáz5¿µ°ÑÙ±Rêö*U¨½ú§¤ì‡„n\TóM¢‘$wúÌÑÔ eúmÿŽKä"ÊŸ—>®=.'RRù¿ßKÇËŠû¼Çt±J}¥N’+õ~“Ö£" r]©GIžXŽ éÿH0Tˆ»ï¤ŽË°Óÿ6”ÄP0$`uãiÉÏù2€õ7Ëmº “þÐÚÖWñ;7HÖSKdzræ…ÒB•“où#©¿‡wºè¾ÞúC¦•¡©#º¸~Ò›ÌnìÊÞ dSMuóf‡ûC“m¾Ë¶¦¨e({—mi„òÔÉõþ’K|ÓPyiïÊoZ/ì­NÁÊÊPôŽ1ž€"˜Ñ7˜æße’a† z¡½(PÕzÇfpÎ5¨çoM™Û™‡|#”Žå^à{V+÷Ü«ÿX?Ö°oÉJ ²ôŽzVƒ¾Üf ‡â–Ô“/ãåuÍŸ ‹HòÙ~03k3I>°·–¥Ô”•¡‹êœ5¶«„ëëlÿ' >¸R(Á–øheÒivÙЀ·¦`š2飛Ì%Àëò{× XnNc…Õ}£ŒBZx£”JãÒ{=_pöµ×ꜽïÂDxd€;Ô¡¼ç dìßžP42÷ÓÉ-W“¸zÉߣkê*ÌYGr1ê Çê€*Þue§T—ö á$¡®7½ri PµSž>n”ž<,Ò“²D5¨aæF׬¶èzŒƒ¦XfTqM´Û“>1B¾kR]lk¯Àªh‚lQ/ªáßÎDáM’f%IŠM]Úޅ²NT ÖV]= 8É̦XƒÓ¬Ñ¬º„ÚQ;"É :a¿VÓI 7,W—á„¶zzÑü–õ´“š2Žæ u?K|&–‡‡¶«ei?Þ«´¨pü±ê¥…Di䃊n‰å2²°éfOs[rîÛ¢Ñk²RbG²ÇÓ3·ç‚Þí¹­W{N­‰µGÚøÂÊ‚³ü«§£º…t’» :'mÈ«]¬ƒíâö]8k°Í¦d­©D«´i;?•Ðþu÷jÿ³'’Û?6®ýt®÷ 5®C“z AŠx>¢7WôN$;»IÜ8â:qæöÿáX¯öu<¹ýÁ3àâ©øÖ+ªenž¤ ÖW“ÌÍÞåã’Ûÿýƒ=\’µ¢ýnô`жÀyr Zˆ¾ö)Æ!ø5ÅT|sä[m'GƒµD~¿áQm« `ã-"ÁéµÿŸ´)XbžÓ1P¨¹kx®o€ÿ8¹·‹0Ç–£`à ’QwMïüš k¤OÀ¼ÄðËÉ4¾ñj à[Z(ŒôeDÀWÌ”ü¶™R|Ò9 Êü.ú}‘ ¿»R­´ ì•J/ÚîhW‡ð«E*®èåÿ'­9ÌhýÌ N×%4Óm; ¯Jt< “x˜ÿ­ª„UX"øÅ ÚÇO£v¸3™›jŤR¡ÉªWj–È‘‰NÞsBwÌ„æBJ z“eÌäm£çì8}±FôȨ§GÅ ,3·ÒpµˆH͇ÜMXÈ4à‡Ñ]¯¡@ZY·[X-ÛümXtázbšÆËŽåʲï=ªuÌBVf…èD72ɘèQ·ø%(Ag¯’kjºž1Oç…†J^è*-Mi¹Õ<åD4æÀîÉ2b·i}ÕûÙ#„õ¸"Q}\5‡r8Þ#_xwÿ }Îõ .¢rïsð»ÒÑݘm„¥áxO¹û÷q‰?–Åcï-«díÆíôî6F¹û.„9.`nCÊ÷–t gÝ?oÑ ƒOtWoµ/dr¡7ºë1]ƒjˆ1¯È¡ñån4$¶¼J¨ ÞRÄ#;t1ߨN$ª-¦`´—^Fºyäs¦½¸Ì¿ÕäØÁÂ4ŽSÉ_@¡²¶ô46Óm“ÍÅ?öË7ü¨ê>Ò³%qÝ$´¡E>ÝÄ\º©òxßZCño7 %°F”d dôа=}8˜·}¯ÙteB¢ßçIçjó¯§^ 'Ô_KLDÖ%ì§x¿ |¶Wè4=#2Zο]_'ÑtqT£éx‡4ýÏOx‹Ëº‹º§Uy#f†Ó\¹†ÝfqsûÒºulš™ð^­ŸmʺG 蟱1—îPUd¦j¨âK—ÇÖiøŸãÛÚxI½¿A5ôWm¡é)Ž×ûãcj&ì$[S#)å8Âí¾T¶•.åÛ¡™Ó ¤~~]uß7Ÿ˜q'¿:W3LÈPÇ&)í“nªMYKz’ ´ç ’ù¹ŸÐjÕ4oޏIòš¢gHµÄí²Jü|×~Zu¸×~úûo’÷ÓQwÇöSMN_ÉpøÃë Ò$ÅÏ·sV†3ñ÷íãŽ84òçH÷DÁ”D÷CI¶`Iò¯õ•¬\:±x˜Šà~Ê÷Ý!=ÞHaÞP‘Ž¥ÇìØÝ0¨y¥ ðý¢ÀïÄ6wÁöõ…‡Yû¯ 6ïéöÿ7ÅH·µÎ‚].t¯ºl»`[ëzÝŸ'àÓ“€Ð”¯z!tú×Éý`•ŽPY¹Tñ?±&ÃXz²¸–x˜ôç'zwJ:z“©°\¼•IJœáü®±,p~$v%'§ÿRïÔÈ/{uêŽÃÉÊ‚íL=WÎ’8K~û ¡³Ž·òh•íäȵ‡® Ôì$rž†ÚòÌi©fóP5üù¬Ò²LvìY:·ž¨gWù7§Ö;ŽøÒ{–|©D8Ú«¯g‹Í_‡Š—8ÞÁõ¶üò©¶¿\¬Å2>³ÖvF̺ÃÔfææ$úKö&1ÑžS;/ù˜xÿóè£òã/’PYÍ/ÿJC%0S•ÿj¨ÜÄú.1?‚ßèû®¯B½9œ!w2¬uìS÷atË&™̼ý.© cQ/NÜúp9!.GP†6>8¯¢Åª%ÎS]J®°À~І”ž$µþ¬ê‚Yµ@ÔÄŽ&D„Âr¤å«yÉþ|H;ç‰÷ 7U®wúEVU}Ñæ:½Ef€¿£Ja…o^N¸xÍ×ñ3,½¨MaPoÇênTŒ.3^6Ü‘^D—¨òâaw˜ÇšÒz¢^¹q€‘~LþuóumѨ“g¿}"JÚÙ åÜ“ƒV&œ«Õ%xÜš¬[¡õO^·ë´ê´VyW3ÑA»ì`uð[ŸÖÁÁÌbwqõ°Ö?“=®{VòÿhÁë{ÛK$m]K-®K¶ØŠ-¶ˆ›’<¥õÙàïmoéá¡}´w’Ö^$ÉÐ4‹Ýíâm_E5nÐi"…‹&4{(Þb¶höÛ›t(!w(I+Ìɾë¢9Ò:fIÚ‹HЕñð%ož—i ꜫé{÷—ö—K“÷‹°·49ö¸¬Ú "#jBpèì/.gQ‰¾¸Ü0–™9"—ðêªÒeú—JU,Xø„Œ7š’H÷^ÿDÂTij>.„š¿Õ„š.ä’®`.%@6'¥’™¿F2ó?Ö`T»¬]ó)gty¥ }É/c"K,ÉÉ­_Æ‘É÷_§ÛÃÿ®èÏb"Í#ô}ïˆÞÏÃCÕ»šâXüü«;6Ö}W +–Î|€$=~ ÔÁ·Û¬käëðõÿcíiÀ›ª²ÌohàE ±ÆŠÁíØê²*l阖‚€i )|@ñC¨)Ò"4Òx†ÕqDÄÙQqÄYwös?Fðmh¡ ȯ» »€ŒÜüÆU(…·÷œûÞK^Ò‚ÉL¿¯IÞϽçÜsÏ=÷ÞsÏÏ ŒUN–±àSH€+.w¬F{Ç€ÆMßö«¼—O³LÙÐBôU®°dæìÖük‘‰Me-^ÊSo€Îºor"è$øðJà¶µ°¨ÙCÎãúrríÍè¹ØMï1œ))<Ï ?/C7U¹f…M ÕSAwÖÆár·‡ÃW°=¯ß^ú6efþ_š<3ϯMÕ:ä¾³ñ5ÇÍIÊ|m"h¢hß³ñ(ăÕk5µd†\*gj,C;aÎJP¹õP.u¶JÉ·iAs.?¨Ç4¿¾¹”ÌÁ\4‡Ÿ–C>ˆÒ±2—ŽþûåtL,™Ù*ÅàÍì#‰uIjÆi¢Å)£ã;;$¾·ß[U|Ÿ?ÖŒ6“…U‚d½¡Û?,•÷ZKøjMþÖ2:q‹ZÀ«ÖªåßÉ“)Ë¿üKòòo‹_YþÁxþLV¶±\Ihâ˜UGê–LYlz´ ˆ®V&t“yf{Õì­ ô>g´1”ùÖ=Ìic…yh„CÌ_£:p´ "F|@:’‹»À¾š-¹À²ø Ù2ÇMÿçÓ„}•¬P´Q-'d åÈ&&òIé;×ä3Èfj@j±vF|Ÿvý÷‰Tý÷7)úïÅIò2þÚÓÉ23îõ.(Ù*ÈÚÑ BS-T»é¾K¥ÿ†n鮺GúH¡ÿÀÞIôǨ¢7u ‘yFðàñxHç¶òéóún:D$½²•ÍUñmrܾ\3IòžÄÅÍðêD;sä93³~=†ÁœÍñ5Á åÏêÒîäÏ×óâSÙÈ“"¶ÞÛâ’ŸÍ™=Õ"²_õ!ÈÇ5K:ÿ~òq}·øÝ—„ߟN]?-Çï³?~Ÿýéø5œu±%šÐ†˜#¨Ñ9ô·Ã: ·CÒKHé#4®`Ý2r£s"{"4.fl½‚) ¹ ­Th|†Ý¬—âÝ›%Ø2§óuºh`¾(â‹Bãldš…|꜆Qäx4cH0çwJ¿=&3¤›+å® §F±þ•tÓ6Ì2)?á6Ú3Ò¡þBy¸TÓ:¥¦Á‰þ’=³ûàËMW(ÏøiȘÕUŠJÁ¦?ôÖh¼ÁzÍÿq¢Ó¾eƒÛçè!•mAeY¸ÎYJ^ è‘ó²1XJmÉ¿69’S 1T¼Ž6;ت nÓIYô†wl1ƒÙFp‡Ènˆ<Ðýc =žÞÔÉþG ¡vPEþ€[¡ñ‚™«XD|ÍÖ 1†é93·\óýLЙ¼Eyš€¶ Ùv>”l­U©»œF$„ûÖ+„ßbó\¯×{¡#zYG¶Féíú­…íB(×ñg%+™H]ï}JµKÿˆOY3ä{…ÐnIkÚ¯~ÆÈ0ÿ£Vún´ÊÖ&Ó÷þ¬îèëfŒ4LË·&Ñ·ÍÔ }»þK¡ïÒ, /i‹ÓwD½YF“¶†v˜„èa"†_<Ó¬Ðü§°ÏoaŸ5àMtebÀÁËî—¬;½x0ïöΡñL ÿgì¦[±ú¥o¾‰k\ËdP¢?Ö€kÜŽ™ŒŽq6ßÕ’Ô EYP]ë01Ør4x±‚Õ5¹V¶ÂÊ:€õájû1ƒ¯hØW¤Æ9ÓË^˜9Dƒöx½t ¹˜ä€þ÷‘Ó´Ø=à ÌI²`òÎêx“÷Ëbü%šjÅ ®0ä£É+s ›zèÛ»%KDHc*4¾jÀœÜdš9VÄà–p¸^.Ôͪ}ëg5“mîOjaÝ4sV¡¹œUÒÉ@Xý0ŽJ‡Ê# èÿAoQ¾Æ?§lÐùïú<tàC¡Û ÇÉUú×<ž£Ðœm@¡=-v“ðÙÅàiCô´>–Åxš\|, Ög‘ƒaDÄæ»a;½l*x%J¶çG ·ÖOOdܱº9ù{ô;pIÀî M'‘ ;}Ûûæ*Óè ½ªšM¥ù߃ý«:byFYÝpªæwÂÐ+Í…àƒ‹8ÌÏRí“ œ»Ü8AB'/ø-¦œôOòÕb¤Šiš@±TØÁ¥ôMì &gVÄçµÁuÓ®ØÁ3:¨NRýæ@LЃËÿ« äÂÊÀ‹ƒÂ7áËQÝ„B¤Æó§c„(b˜'bêô߀’ƒK&m¨€›`Äp+ÙAÎóPÀ—¥DJxóãzh|þ¥…­QG âœSw†ïÙ—Ãc,rMŠæñ³)p¼-»±¹!,$£ìØ‘ Î-(؆¡¹5Á¨nSŒAØywÂriÏØ–K`®këÅDÿ»¶:.œ0‘måAý7éÁïáAåA9}Izõ)Þÿ~Ôôœt?€5¡ü;[ú˜ô`f¼¦Ý“ ¦RéÁ¨ |Š5 •îçÇqÚ5 ”ôÚ°ÄûXÓµeüÁ%&9×2Ø„¯–^;À§ÙõªŠ®©¿$Bô &¤aÁMçÖhÚ`Þʆúí‹z±ÏåÂg­Ï7?ȧ¥)ùó,ÁïtLPì¿:µÜÍaÇFÄPêÛbóäÞc]0¥~Ûpr#Nc8N±biÅ׿ÛŸZMÏÝ] *ÝtÎÒø¬k—‚nƒ“OIa‘ž±ö³=°L§Š @í‰ÄqÇùî$[î~½’»)6;]¸f©¢yñ÷Þ=íxŸý¿Åþß`ÿ°ÿÙ¿ÆhÔùŸÎ¨7 lý|Ç¡lÇúÃÙŽö/ÉvÜÏ®uß½îŸV«M¾¥‹ÿÔëà¹N¾m0À§.Eßà¿]šÝ:÷ÉÓFѸÆ1ȱ>¸“ÛC+Pl a .”þ¾RüÀñvWhgࢼ!µ´sÓ¦2³_'jÂÅêo÷V}hèeyÒõç†ÀC1‰*r&Ox¹…þ뽸“MEŸ]bæù²<¿‹u'ïÓïùO#)±‡µhYß^bÆ´Yd²=\jg° [¸ÔÖ^ÂýJìð:àï/öfl1ÚPÎõí%¸ý£Œôª$Ë-Òº ë,*û?}…aJ•s ®N0ô'pÁ!I_Ð4”¹Å)èlÒ*ycyz+ÉSªÈþJ¾_¿ C¬m›+§IÊoT26‹©©?1~н2qv.°œPœî\"»Tµºé'V´I —ðØp g òþ»‚¬sZ`_Õˆq-È©²Û*|ͬ"0Âæy­èÜ,¨ÃŠ O¥ïýÊ÷0‘>3¤K±—7Ñ—j/‰±Xç´è íq$ÑYí(§ ù í2ª%©q¾è¶UÚEŠ’óè’îøáN…,*rFÆ=Õ{`ˆÁ=€~aa"hÎoÝ ‘?/Ì”M SøñÜo΋iއè3™Â_ùL ü)¯¤ ¿8cø¦Tø¶WÓoÿÓ·ÿéø~û3†oJ…ߘAûdÜþ©ô—ÚŸŽü†§2n*üs«ÒoÆðÛ«SÇoúðª3n*üá‘ó鯧Äy*þu½–.ÿ«Ëç¦;~žW—ÿݺ´ÆOñ¼Œåÿ¼úMþ‰ú2–ÿ¾øÎ—ÓŸÿ2†oJ…oÈ ýs3nÿÜTú¿”~û3†oJ…îåôçßo†óïJïß4ÿ–zUóïô—çß4äŸ7cù÷d*ÿf ÿŸÌXþ¥ÂoûUúò?cøísRÇOúðædÜþTøS2˜ÿ2†ßþD üõªùGÒ}%±ýê'âÆ2†åPÈ,F\4 ´aâñÔgÒx…g/]~ *piÉQôÐïá•JE¦Ú缾¾é ÕlóÖZÀø:ûã«÷Ç Ùôt½÷?Hzÿ¦®ÿ~CÒûÿ²á|÷ûïžäßãË¿ÇSúoㆄþëßýÅ»c¿Ðz–»iû@™[!W!6å…÷΋7ì†ÇÔýñû”þP¿_¦~ð»ð>§E&IÚÂÏPsâ µ«À¬¡"’“GôžJ0M… Ýr†ûJ¦ƒ†ab Ì!³š=Ôɸ1Ë5; 1fÌšÞ:•þö´bÁë¯"z¥šgÏ@R¡æºbß9H¶Óýg 0*L ñhr‘ aÓl©V.ïQ-zÚ6²‡.9#©áñx%”Êz”öÿí•ü œÔî2nôÿ°ÔÞcñöÂáÜÔH<¤ÁsEäØ`ˆtQAÿýÛxƒë*èµ¾]ÜxÅß«½Ä<3±Àd Œdn’c'‡HíŸÅã€Zt D|Íh÷JÐN¼L&Ç®'%rðÈ(²?‡9³þ;ñDÈM}¨Ø»&ÏçF6ŸWµúÑk4¾ÜÈ@õÔ(3ênõŸÛWÓ<Àá¡m¯K!p½=ÒúÁÐ*šféP¶à žµC冎V ïⱇ¡Ó]µ.j}¦ üɃ…!ôÆk~;¸ÿ/ƾ!‡zÁ|“ßž©Ü6ÒGàö¨ÛÁ4í!v{j%ÝrJê/8#§³«.‰„^8vëwŽ…kœ6ÿ@9¸¯ü Êém³‘zà~2ÛB.´ãÇPçXE`CVEäGÒNõ ýΖ2äpKêŽ4¯åþ2Úù:,†:1G¼UXÕ T­V†EHž¶ /ë‚dº7Ça¬>…Jñ‚`«¹”\ãÉÀ·” Òõ,YfÁJ–æ“Lÿ±keú›=t%ãXvÊymA°Ý\ŠÕ¶$û÷Íò$R&_°=‹Þ·f )ªfÏ€# ßB…ÆóÝ¿‚Õ—» äíÂ_\–JÛÊÃ÷ÚÊ©å·8)l·ÿ-XBkÔ/í~ àòj¶‰FŽ›áCíT­§¯­½& º{¸Ç^Àø1Qr¡kü.D]ØAá‡UÔ†Km²þÏûp\`àu·8ƒzD:²”xÏ×6<Œr½qYLhoCQr{ëÊiÎ×oïÄ¢îÚ[×c{Sñ-˜Œo]¾Á³VÉ?2Gv‡±–ûF¬âFÇ6Êz‘î•àÏ`…èL¾aG¥xˆ\Y™Ú»¥VÆ£ÎIŽêþN²`o.=$Êoë¶£à”~Öüç>ôÑŽc9NÚø‰i p7 <±ñ=Zs«£Ýxœ}®‹ƒ®¥Îšß—µÒ§àñö á"h}üñ‹pøé;A@4¾ óØ´—;Ÿ}Œ­à Ïn¼‚ÃÜñì°:F.YW0éÏ•£ß„7ð5—o"#çm,ò»-R.²º\ÒÊ`ÁbŸ ^ ãZÇßQä l’ýZEþÖ©„ÝÁeü*9‚aÉ£Ñí¿Âd]dÔ½B£‰§9Ï}-xR¯ß½¨CÛ(†-BãacûVm”š›J´/g½8]çÔ·|£ëÝúâôÞ-Çu+¾ÑÃϾòϦ,¢%Ó QÚ݉ÆúáM2ݬº²$\5•èH±ëדb3þ0& n7\«L¾yCX ––U¥¶¦qZ©–œh,'¡Õ¯%‡×b’ 8¢1G2X‡ª¿jÇ›È`ñ&²F^G,‡Áe/±·±Ž`»ƒ‘nX°PÁM(£ÂÂ’p…p-.«8µNBC¥CN¨úóú«`¤–+„ú^ãs¹äï… Îd&ÿ‹^Ò!óT’KÑÓ†ˆá 3Ö™™Ñ€¥™Â@˜Ý®ƒ:-ž›çU„v Ûá ŒMk«!"PYn&U ;+ù"Úa žÐë£ÇuÙQ²—_ó‹]‰}£ý¢gúÁË'õѺì/È€è_û±_ÁÓúì½4†õuôŒ¹iª¶é!Mð|iWÓ$ñ˜ñ¶¬É hÌÖ4[ÛdjzDÇÖéR×@J¹­V Ôvkp›¡ÍáY•ÐR!4NÄèáàÚ9“1D@Øé÷éa¨è/”¢ø„ "xú€Ë}BL /æëωVAŽ(ûiÒo•¡ú9ð "=QQ»E#Yɼ¶ÿ¾=aÐï‰^ÔG¯Éë0cjžÐÖÑo `Ê(@üYX{À9<{ɉùrÿŸ½«ŠêÊòÝt­6Ò® v²@ˆi]FÔ8‚³aÓ:@ˆm>º[‚»K¦ºz5ã&ݳdF ¤a x’„I™‰&Cfœ*+±\w“Mø `Æ$hÌNœ]'¹ IuGßžó{¯»iÝÝšÿ¶¶ÊWu~ï½ûÞýxç~sß½çþ_ðßÍC˜ÿ…&®‘!þ§ƒÿéÿÿÙ@O=}_™ŒøïQ|ÿ­î»"æA„û,Mßx$Jßäœ9Qóq¸ä5ê|ž÷fR×ZhPºu¶c]xËIè¸É2Ûtòß§ñ¥žéM¡‡¦[òì•ç”)Bú›Øú±`h>ŽS:jÕÄàsB%¯â}·Öœæ]^0šV“ýëдšÙô¢]”ÿz S§‚J:×ßâAö°\Zo,÷(è~~]ŽÆ›j÷TºÜCÔÓ°Öà¾B (?¾ÀeÔâryZýÃ}3‚xbB/j;ñ“›ÓŽ):Âx'ÿéæèõ,%‘Á´œ-f1ÏuR¯m: ”ýlÙÞ²]ËåµÅ`k8á›>ÈìiýG­$·ÌYÝpÚ7‘ùak±6¡~‚§=ö—RÒž-|úWi¨§”7÷’lüQæxËœ&ólöxµ5×"ShRí-GžHÕ­ÔxMu+—útýÚÊ–-;¤(^5ÖêÌ«tÝQû¥ÖBùå[MP¾¡¯¤\3ó¬Ãi«—úGµ¶2»T`´‹7_¿[I’ñ²º:¶bç<Þ¯•˜ÇS—Ä ó#èmI°‘tÑpÂõ.Ÿ½?Èhõê’, ´šŒq̤«’Ä墥ⵕª(˜Ñò€Ù?`ömnèò®®ÂˆM8‚Ç#$¾ó€‰œùü#1ÕþA}Õ)±Y”DÞ·_Qö~ ϨËÿ 2L-¶óË–TyÕ’S||#l¿‹Oyw5Ó41Ž0ÏUc#òªíìÿ²Ì^7%›L<6ÈámìþÒ0k‚ãpñÕ5~ì ÇQÎnA~ω-ólæçÔÛe뮋7ï›Àrè· ‹( jž¶P–¨9ÂËŸ¥a—³??ekeh½#ñD\ÞŽ¦+ϾN“Øø*åÚq^'“ ch­ù)ËËüFãN¶y4­f–03E=yĦâŸÔ«\±M½ªÏ«W6Ѭ^•‹'Õ+»(à+iXäá,Ä :ëF[Ë3–R,²;©#«•“8J§(¢‡T ¼lTǦ»T‹Ö®Ø·øÔøiën«[ éʼ+›MüI©cÄyµ}sʳ¼A=÷Þ&-Z6Ö Vaù]ùþ .p_ÜësíàV PwW””ÊIƒ\þè ¨˜Ü–±6—Ã3Ÿ—ؤ·6X›xª“»ŽrZŒ¿y«ü–ñOæ&£L —š§Vð¸/æ3Þdÿµñ+ߣ¼ö×áú!lP†XPðãi™Ô°*|¨€u±UTþ;©ÔÆ 2KI©»’S²­{9˜Þ\Q®#?›®#<”¡†…9·¶ÛmÝNï‘oªcbMÄ£Òt`;”]‰¼zÇ!Üxu$I8ݶ¶y¤:²ŒdÄ4‡§<+®˜ºÐM¯9EöµëòA+l kδ}¾cEþC2¾•§Š6^=žÑ†\Rèdwë ÅSèЫ¢ië“3Ü›F+µ²Y+¶É·Ø=§›¿SQIÖWî“`ióV«(Wd,á67ƒ×©V“4›Ñ{kË´êO¾Ôަ¹®æ$‰3%êh ugì…Åç2)•sÓAÕçc§xl[(KuzïB¥ w¹Û8fñùgŠ©" ©õ×v„ Ùv;R·¢~d´æÇ§é1°Ôg^õg:ö’ÕÚìñÝþ)Åêݪ)Ÿ9’á‘°]"ý•)ÇâÑ”P¤Š3Ì]Ù§¾dXª(õh¡æÒÄ5gz©Il|J]Ò¸’ëT­²S7¡_Ÿñ0»Úx‰ ÝhÔÑÔ™UÒ€ÂLñ¯SØ4ö´•î°/i-Õ^>ÔgëùÆån_˜LÎ_ÿœGÕLR zm~›GP”Ä™à.‡¤@âQœâ£ŒŸ„¿ùäÉÌî'bƇ³NPÇ™¸¿[ê¾y<Ãõ,¹„¶cJvIñú•“~yÆ“jªõÏbÿ¯ÃÛÙmîM<¶^›x,¹,ëÓ–]º–ª˜îÿ4Ì:Ëð{ñeù5yÕp…7)T¢±òÙî6Ž$§æ6~å-'ϱ‰Çœú¬®–Å·ÆuPÌГù'˜’»ëÞï¿P|?ON;Ö t°HQm«:–/6÷ú‚.? ÷{þ!4†t/þÁl1ß‘æåÍÕãC:ëzê(ö0X»A• H¥ˆþßÖ|ñ²Âš§éì‹?^¾eŸ¥#—óÄ å… ô¶Ä5tI½1Ó›’›àKhšÓR¨]}_/®pTפ]Mw…$³]lšãê_­Õˆùû”8Þ¿ŒÔW+«"œâ§¬TõùVƒË­e‘Ü)J^†„i†‘É?ËV½Ò^X¥Sþ wºÐl¦«îk±Ý³üî÷Ÿ¿‹ÿ;ICÍléb°;8Ã?ò$=õwÙé‘ÿB"º‘œ¶ÖλSòÊcîcyLZNªÍâZ’¡ŒwöGºä2Gf±¯¥ò¯±GS1‹LÎñåÒ Yµ0î­’ ”ú¤¹(KêÜÒ\Ö8ÄâŸcÍ4ø²=±QI÷vÑßtMöÄ9X{kár”\¸ õEX(QMiõæŠ^åÌæH”ïwIRé0æýª:ä‹©fkPG¯…´øtUÕ½K9äËû”Vƒ3û•EàäM{`JÜ0:‹oŠˆ*£µp#Íÿú1Sx=+lÐéYê !3ýuâ=R'HIävX6®ÚR*,âoU©x§Q©#ãññ¤‘»0Ó­J…2lÃöòI¹(×[8ÛýBHýy\ᴻea@e©Ý«”2w>•o1õ77Ð@­7¡‹))K"Yù÷Ò“4‘Õåÿ2Æ^+õš­^kŠlëú¨5CY¼AédSÓl¸´y¥½Lú€Ø÷£êN õ7ð[̽ „<³!D P¢U•ç2©<)çäY\M#4Yèv‘¹nš9ê*f…yÔxÕ›F‚þ2N’ìëÑ8DÐÏùþíKüáÆæxòÄ»9*ÀDzÄ+ôd¥;ÃKüÍ·êEî¥ð2¯8-"]y«ª‚´LʳK3(kÇ–i#óÿs”åR\^¡£ž{–•²à=¡*ÉþAY-Ï"ž}÷-ÃCRPÑã¾Lu£ïYîpÌk‹¶BôÂ(;)ïaô,Vßâ£=âƒÅ¾Ì!Š/\›[Š­‹NðòJ¯©.ç^R 4•-EZ~ ½ñ8ÿ‚±òšÞÑ'ëªü‰Òø®ò¸-¢²=•vùwÐO½ºþ¸JSŠøìçå:ª'ß)jè“hMž¦N£ñÍdïl­eT]¯“ØÐËÅ>³ƒš?dL„lûVPp٥⧰Y£Ä†_)R—Qñà"£êAü%þË)Ç7^¥zÏ 3›wš|ñï°…ûÑ» Ñ1?T}½nGœ\éѯ«ìÏÓj”È~ó µh.0xmN±O¹Ï:A)ýEwusqsÕƒRwˆá÷ÄGòXÉͽÈÍB[h¹(—˜êÍØÙòj\øåi㓼;•òÏÌm}ŽKÓ¯î•&ü£²XÆÖ”R`FœØ—n/q‰÷&»*,®ÆU+˕ʭg©¨(¾6ͼÙ7/Z½aQ¯;Åœ_^—]n EjçñfÑñWÊXNbã/6ãÇP_o0:JDà…)RÙú3©°óÇd¹n'åi,v°”\»ƒ;ˆ÷_P;#…,Îæ;3 ,›½œî=_Pxõº* Ül˜š\þûgr¹·žO&f$Pš¤ µÆ› MSÙ[‰‰þmï¥nj›©ä‚;6`>°X ´Ë•À-À ¸¸èÖwë€ À&àn`°¸GÉ'àà!àaàBó¥û/Îv¥†îsÒ1>ß ÕâNÏýìRãé'ÒΦX©ö×C=f]=ê“þ! lžÖŒ.VŸ*îÊûï5£l\Ç<Þî¾ãg©3àzri8|ØìO‡€g€ç€#À‹@€W€A¥.)õj9òhš` 0hf—³—3¯ò4&æñÙãú>—¾QÓ.iì½¼´ßP‰-ahÔ*¯eJ}Zé¼dlz;sÂÊÚ€ùÀ"`1ÐŽ˜Tù)_±ó8kû¡Íàÿ½ãç{Lš²ñóÒ0?¯±šuÊÕyÝÇôˆÊÂÙ¬nÖÝÀ­Àí@/°¸Xl6wÛ€íÀ=À½ÀÀCÀNàaààQàqàÛÀ.`px8<žŽ/p ^“@Mê7Ð4M@3ÐL¦­À àbà2`60˜ ´óEÀb XܬnÖÝÀ­Àí@/°¸XlÈŸ îg¯Œí¤Nu×R9Ïþ VJhãÇ3šö’¼áÛàfóÊöM]›bG}V×èþtMß<@ ò©Cs/]`Lt5 ·L–4·†@Œòˆ ¢Ù4z?Å™ oTÿ³FçJ ì[šÑxÂ/ŸÂÿvÒ¯ŒåÓ㟑¬Ä­œ?Ól¢†²Ç¨ñÝǹ-͇Y[sÁÅ,¹yç¤ä3®÷Wæqd‰ lnUÀë¿ãû~Gç‹ØÝÐ(ûLNÙg‡È×ÊøŸ„ê(þxC–ÉÞ{LÚl*ƒÛýó'Øg—Î^5à›Yæb×·èÍUã¸Î÷=åÅ΢Ö5ï䀽sCQÎ, GÈ ¼TpqôN©`Œªï ’CžÓrjý³ºkkôh?M©XMË[ÿ…í-ßzgkAX²Œ)ø&³|$Þœ£Î"+ 'UÏ#8·è=¤‚+Y¬@ó ô'3bùÌÁUè¥zHÙíþöncZM«®dæí«Z‰2GÊœ.© Øüˆ°K““°Q¤ÐkÂŒôP ¦9/7UWUœ(¡wóHfç—ì‹£ªÌpfºáäµÅ!Lë0öÒ^œ¢ ÙêÃøð¦¢^ÊÙAÎY¥,¸Øôü¼´ú8=>Ÿ{Mbž¤!~Ì’‡¢zMÁEýè'âQòÆa s •0Ú”0ÚþÜ0qÔ¡®ì^D/><§H JO‡§GÇo»€}ÀAàIàð px8¢ÄÀ1`xN5]ô@ÐÌAª:•6‰\4·ÛÇíãöqû¸}Ü>n·ÿ—Gé¾yš5DÙDéD³‰nì§ ] :MôÑ¢ýDOí"r=LTCïóQ÷â<ÍsD¯½AÔCô!ÑQ€(æŸçiLDéD? *"z˜èïˆ#zЍ¨“¨‡èQò#è|ƒhöKó4V¢l¢µDm'j"j':LÔEt†hŒè‘‰¿á ÅOtšh …·ž(‡h‘™èÆzŸè3¢“Dlj:‰öµÕ=JTJt†Ò‘Cç¸CÊ÷^%~зw½AôoD=D'‰þƒè3"Aô-Ñ$QÜ~JÑD ÿ‹½¿ N$~=ßÌ$ãî.É„q!ãî.¸6Þt Mck :„@f€èqwwwwww÷™„å9ó?µçÙºw«v«î‹[ušúÔ7ÝÐò£’¼HHœ06az-H€°K‚'¡ !šKX™°1agÂÑ„ó 7&¼Løœð7¡veb? ÍÇ—–hß„¡ ãf&Ðø P‚6Á–•NX˜°:akÂÁ„Ó Wî'¼LøšP{aâ|$´NèœÐ3a`Âè„É ¤V˜ LÐ'ؼ sB % ±„å ë¶&ìN8œp:ábÂÍ„û Ï>'T'4]”xþÒú' O˜œ@KÐK‚7¡ !š°8amÂö„ƒ g®'b1›˜CÌ%æó‰s‰~b1@,$‰!bqq>qq1q q)qq9qq%qq5q q-qq=qq#qq3q q+qq;qq'qq7qq/qq?ññ ññ0ññ(ññ8ññ$ññ4ñ ñ,ññ<ññ"ññ2ñ ñ*ññ:ññ&ññ6ññ.ññ>ññ!ññ1ñ ñ)ññ9ññ%ññ5ñ ñ-ññ=ññ#ññ3ñ ñ+ññ;±(y^òüäpr$9š\œ\’\š\–\ž\‘¼ 9–\™¼0yQò’ä¥ÉË’—'¯H^™¼*ù¿®¬ÿõ¶)ysò–ä­ÉÛ’·'ïHÞ™¼+ywòžä½Éû’÷'H>˜|(ùHòÑäcÉÇ“O$ŸL>•Ü4¥YJó”)-SZ¥ÔHiÒ&¥mJ»”ö)R:¦tJéœÒ%¥kJjJZJ·”ôBJ÷”)=Sz¥ôNé“Ò7¥_Jÿ”)ÿ×#øï7bJFÊÀ”A)ƒS†¤PS†¦ Kž2"edʨ”Ñ)cRƦŒKŸ2!ebʤ”É)SR¦¦LK™ž2#efʬ”Ù)sRH)ä”5%¯ñ0©EWIj¼LêSã]ÒÅo“æÔø’t¹Æç$UßIWküJº^ãfÛ5îÖø›ô:éÿÓ‘ÔʨQ'£nF½Œú 2f4ÊhœÑ$£iF³Œæ-2Zf´ÊhÑ&£mF»Œö2:ftÊèœÑ%£kFjFZF·Œô BF÷Œ=3ze$jj’ )„Z„Ú„:„º„z„ú„„†„F„Æ„&„¦„f„æ„„–„V„Ö„6„¶„v„ö„„Ž„N„΄.„®„TB¡!@ t'ô ô$ô"ô&ô!ô%ô#ô'  „„A„Á„!„¡„a„á„„‘„Q„Ñ„1„±„q„ñ„ „‰„I„É„)„©„i„é„„™„Y„™ÌqÑ#ìžÒóŒz̃Œ"ÓlÓèì÷f—7`ÉЗDÅ=Ñ|Þor=i±l'ÿ·gºb½§¦ì¼é•¯Õ}rgåm¦ÀÜÓ’-šuÞÙRøŽÞƒQÛ®¢.5~\ÏLÅsÁv{x1è®wš.È]¦©–LÜÛØŠàw†¾ìëÍ,q˧ë1ð,8˜üŸIÑN»–‡ú sˆ'ó’ë²â˜¥ ‡ PÒ î{ï{jÑ›çô¬ì_Ñ{äTŽ®to¸ Ü*³*jë5ò"Ëf1•Þ†ž<ëéXnD9©¯Ã}#n§[“Çà~ðö•÷´÷üpõ3~Ce…?ƒ£C£*¯ªÚµ´;D+,׳Æd_SÝR]WÕæ ßEp}Ñ1Qeðçp¦;Ä‹®+Þlíî˜ ߤ é+ƒ«‚k‚sBuJQI¦"ïz…_Ò‡ÖÛ„Š àËš—Ø~ÞtÈHÝH=*oG:eu”nÑ3š„{ }ë —à¶ðc ¡5‡Ãöä¡ÞÖ™s3Ó±Ó¨¡Œ)åÓ3༇ìF¤d!¬çxj-~u4Ê£Èç€iÔÜ«ðD"ºëKÍnZz˜Éñ«Þ‰_ŠÝÚsÞ ïÒ ôBö9è–£ ù%›á‹ÐYöäê,õD¾ºð²ô½¯o¨ï™|«e ô€æ¿¼ð¿ÊmIÐnéŒ\i›‚®îÏᤦѥ% e­ #ÙøÃ…îˆ›²Ð㥠á)Æ f*%;ÆÂäY˜æ±`cžVÔ€K¡%R»(Oó5ô$sc°-_!û$ÊG§G3h^ôÑzžÍU6§38¤¶Wâ,Ím¿ìò—=µ&3¾kHÛÑÅèƒ`‘¶l”Ç]™GɇÇÜËà}Ú)ÔÍTUNÁBÞ>- »ÚjH¬ö¤Ÿ®ls3Ò»ÌN´ßTr%=·0%r!zƒ¢2Þ²’rÃÜzžŸÂ}"½'pÛÆ ]É#¼%̤õÆb(œ+üé@Á˜«5IÓ#^6A6É-ªÃü¢ÞàJË~tm3öô²œÆ‚Ó%?ðs~H5’F ¤ª”]Ö'VmúyRÒ%j±Ã_TÇq„ì.|d¯°É¡–‚µ”Ú™5L»oÕÝT9‡÷“wƲj­–ö‘¶‹ôƒöö^&:؃;•aU-¡ » sTOHÃþ¼lQÿPWñÏ1p‰IÿÚ)=îy÷G§’ß‹©ïûGˆÎäÐE©R€*ñII4©tzasJ9ßlýË#ÒFÙöŠé¡¦¢bQ– -Ôhí¦öÕæ/Ôù¡t‰ü{œ w°Õ/U?p?¶!‘íÍêkï$ì"jjé^X╞ÀJ,»´*¯x {ˆqy¸±Xø\,æTPå[þÒ¯EÏPkÐò¥õóÃÉg#ô•Sî»`£‚‡ô¤¦÷ôü°©¤qe¿Ho±?Ô‘´–*Í:,YIk (&«Ä{¨Õ|j,†%Ñ©mB7U!©ù²j®þ­þÇjžàËÇGÊ<Ë…©Ø<îÛ;ó¨È6Õ:¸±»6‡JíýÅ[ÅéÉÐÊ`wÉSÖ‚pµiB(WzœÑž;’[ÎÞ\8Dþ;0Ä;öQÜŠSó’?%v”¼ d—Ÿ˜ÄYtHÕ,r—"↞qÔAž–|ci†º€D \¢n²½)™LJŠ^C/^e×*Üõ•Õæyá ®GÔçÚsô«Ád_¯À½ºô:“½Å» ^팮äÆIü»]cáÏ>a±„y¿d™§7½Êß•±ÛS)܉ެõE½ÐÚ´.»½Î…æ;fq«HqQºdµƒHªÁ_#¯™û‘ß r¾dƒ±J›Ú@íäÞçŸÁ}Jå‘»3úpÍðR‘gƒ¡àa´»½ ù&¹‘S¯V­›òÚˆúËÀìàòÝ¢ð€Ljf…’‰4´œüYFÜlÊMRÇèP½5³Kà,o‰r4—ÛÞb˜XYÏü#`/R¾nÊÇô¶ƩòKò¸mÇè"9nai Úž¶8<Ü]îÙì*æÀÄò[v¿éfY03ì¾æè Q"ãl3ϳU5 ºà˜ØO©QOCŠyY£OsjDÃÑ·áÞ¤Æ-×Ń@+ÏWY™p—û0{œ§XñL0 ®¤©Åe•åäµ…(u ¯…è•@ˆ~S:êªp5­}ཡ_ÌÎ’÷ táVOø"Œ€HÞ‡B¼KÜ•Oé§sV– +Xä™»J~³NDûÓîâÚ#^MiÍ|é"Ø[ü[a –ðRç/²ç”RÜijµ3¨na‡?šß=ÅBUVþŽ(‚£Ëù-¦‰Š»ò×!1´¹ÁÛØ9E­È»P«Bþ+ïDð$cgÂ3«»£ËH[x¹eÒ¢•’ ¡WÅ}ÛÔ—yUÔ¹L¦û£{/4Gú Þ/ ˆëëØè tW-ïí½Æ)d) ިÜ6žtDmd,`š}|Ãû­ &¹.ã²)¿ ft ºS­ 4͇b#ãX—b׌y¢‡z…ø/c%©·R’GkƒG7µÖœq±Þê ¯­h±+Ÿ¹<Ø0šQFoGiÌp0H¤*€稲yðÜ‹úÓÖCDÊéË\ Î#­F‡›¼7$úXÃ%l”±9­5ýžÿ"2W”$~¯&³ÓT tÅÍ` 7(]"Ng¾6‚­tKÔËyv!Í7[r4öÛÂÎíáÈ5}¤~ÏÖM’ÍÎ7.Ðj Òüà>(¾šsŸuHË%3èÅ2Ù¸@•µ=ù•vºÅÿÙÓùšÈ`b9UýC=¡`”ºY¥Ýák ^7*î°XÿPDz³GÊ-Æ1¶Öˆ½À—þ Ô,ó§ÆÞr_¹ê¹ë12å7EÁ9ŽãÑÓt‚x¿Qè§€®téCjýÌO‚YÐC•ò“ÕÖ‰´b’ú(ï0o‘£ÿ1|V4%:ŸûµÚUµC>‚k oç-¤¾¹%cûÃÓ(£m?HÛ宲C€Cuɰ[óGÚ¿FH:u•GëµpSÜ=|oå›,fËP"õØß‘•´ TŠï‚ÏûÈÊïYgÿN‚)D/•¦)mŠec+Ô¿…ß(w¹µùSÕ"4ÇèÏR(XÜÍþ®t]ÑœèŒìæH kwÝwÏRÒéÐ4uVY`/«ô1üƼŒÜ>ó‘þr¾­t°û¾ËMãÂÆ"wÐ|CÚÞI—IsL?­ì¼¡ÑÞàš×ËPhåf©ÊüÎVC}Åõ$ÿ"·9x*{™w¶± å i™ñ&¿Z0˾¾TtšDP‹ò{8»GŽ‘zÜ ŠgÉ2­—‚oµõþfÚTHmìã™M²kI§Åû[\’̯‘å•p‹}æG²D§Œ¬â¶û¶ƒÔ ÚÛk©É¶Ð5¼+žB²h$ZÑ*:~ÿͬå-ddðËŒ ‹o‚·ôûŒSøÖ²Ó¾ñ|ã•y,i= x.ƒ˜ô¥ÀL½è\8 ò‰üŒþB¼V+§Q¤“b]€î”af3ý±+êçƒ%Ò–”!úSù[¨ý÷\ÓØg}+ÂåÔŒ?üÓä'6@ý(,ó0£ }#IôJjF>P’ú´Þœ›4»‘¥y‡Ð,yèàÅàbRD›ìù>ÕŠ‹Íì;ÞòoŠk–â’KÖ/œ-ŒôÁØ,ê(Úb^µƒgs9Û ¦²û1l6Š˜Á[!]>¡KÁ¼ òwŒJÛs¯¹h¾ðiÞpîzvcéËÀ›m¶¯"¿íãU¥Ò)öÃú©Š¸y¨ù¼$]5à/³³HÜ åJ^i‰ƒØµeS¥YoA¼"lõ±O¹ÌÔÜ™™K‚2æ&,gîe)&Šçà{{³¨–Z¡!TIOæ_–ÔvÖ>Ãjáaä¯þ´ð|¨\©J·Ð@} J~ÆUÝÒ.P_¦QH?¢êˆ+û´e€3•:}ò{ìŽ×è'…ÙA-¡¯TdêÏÇ>Ùê÷X[hjã$ùÙ¢¥£­ù>†¯ £b )Ÿ¾‰6Ö’CïEË£øÉÉglóËÐíÑršÅxEfx6ûSÂŽâJu[!žYž%Þ«=âZï8EÍTlrh¼é¤œà…"—l=©VÁ*h¦ç6¥Øx^÷Œ·/(Óä¼4r]X ·¡Î;©]Bkl„ËXZ&í ݯ8£¾CèÄ8n6|ò}fU %—¹ÏRZct?§ä9ý)©«‡oET–`)ר––nš þ"WSK+gyJ£íl9Ñ,öcpZÔ¤5¡+ö&šYÑå^ž]æk·H!:9'³b~¬À2°øC`bÀj²¬LÑÔh/kŸ^B>Ã| ¿•›š3õ‹r O±¸ë9¿ƒTÉ{Žé:ÒB)l\bÁîäK¤åèv×n§¬Ý¹l÷¨P·È*û¢²Ÿyc²:¨sÊîºò¸{bå†oZæ-ëÀjÃ8ÃÖ’–ÇXô“Áz™óÌóJßç<ÂZdÿ•’>š^ó¼}|ŸM-Ð[¢}¾>†Z¾ö‘;ª;æãa ½¦ouŒ° `x`:i¡Lž­0Õ+†t‹ÐzæyÀ„ÈU¡»‡ì"o· xùyKj˜UšµVùÀDŒt0,WˆxÌeE’⻎ÁŽ‘ÁqÓz,ÿ,Ú1÷8o¢ð”¢«ù›+BC=EëÔrƒÅ7¼¤Yæ‹Ù—­#±Ra)·Y¶ZÛ =0‘á âªHcYen·Ø»p#†“Ñ·ÀY¡f9©ÊŠÌ—b”ïûÈ×øVrnÆÖ ]5÷y³£ Dú‹ò D¿Štœ{N5Ÿ³^Æ> 1%=åïM2³\?Õ_3(Œ…á%¡ŽÀWktÉÄmê™ÎeÓ‡÷GO³ºJ›e:Ä¿"×Õ #³4›ú ¨ò¬ç¶(îMy†Žæ?Åäqt{fíÐn¬OöIî·lƒìÒo¢¶€»¨KlŸ,èqò0æÌÈœH¶z¥ø¡ü¾þ5“÷¼òôjp}xŸ«E&]]AMáÜÕ´æb7*£äT{KŸK>8~ûŸ3z¨±­ªkÙL†‰²U2·úê[ [‰‡âçÀyÒÙúÑ$l¬: æhnš.ZþšÆtÚ:‚{{®{ÊÁFOÚzm ïRàjaÜöübÍc”Ñ9E¹ÝÁ3¶Á,£·ò–º‡êŽèò©WäOñ§œ¶ðÖ*¿©T ^sý¿Ó¾å"í&½(þCZêO¦Íå®q1Às¤gpcp¸ïT–ÔÈ ë¶c»x—]ÅÔSÒ«ò|Ï_«¼æTÏËÝ4(L%äk‚ý£3³…xÓÈÇÈrõ3o†hÔ\Ý3 ËK£¯Q0•˜Ûú3Öšm%½_ýLKKù!í8 eu²þ¤w"ÙU9žß¼'Ì;¬‘äÑd}éK>ÜSSì-©òóöú¿ù;Bï}¨ŠyÁ Ý wuv U:¾P¨œ ØÞ)¿Ïc)ªÈ*¶;süÑ`ô™ëJY¡%“϶M ­ˆŠ¬\žHÚÀ~)k¢6³—»)žæ¬Îæ\'ùxV.ƒ£6t–Î*lRxÞsÕ»üHÿˆ ‹zskˆµèöL¨w éÆc{”jM¿‚º2öÕ¼¼-–ÅÒ_ôuZåpzC59å™M™×m)» Ϫ+o´Ai¹ú*öÜ•’5I‘º©6EWúÙ\«þi¶+s¯qîÜ -­°Y䢴¤dr¡ƒI'ÇeAÖ5qD=‰6ƒß‹ûG­â¨¸¥wjf3©Dþ88Òü%08p(ÜZ˜MïË8¢þò)ëHë„#¥Ó¼íCV´ÅÜq7 ‰žÙLŠ)RšýëŽÑL‰€ƒ¹MB?©G¬™¶jÖòˆyÈýï$m“»H½ÀÖ \Ëé¤>ô€ÏXžM’ oý³øá ï ÅXÆ`Æ•L&M”N§wö6"¯' ÙõÁê($CôqÚ"Z¥øƒ¿¥¬T’»ói–*³V6Š5œ‘±é“lqCa¾xAf+î]q–îƒv5FA=ú,庼~B1i PÁ|n£þã(6» Í®œnôÎÅÑ`®ì!ù¾i9½ ·Ã#í™N½Eª¨XêÚÉH0ò†y?G ÕÝEg±2$ºÑÐßp€nËÌ.]ä^Í3G)Ñ®Ÿ¦ÅtS¤´t“}r>“®ºaësÿñ9Æ’µä‡@¢¼@iÆôÈXRŠgÒÞ3–°’"yêm¼ãjº¬ _ÀKUD=f3ût˜”“¦©H¹þb2½‹t$´:Tò4-(¥nTXè¿rOJŽ¢д*uöoÃH7Uyp#üGtDôˆ<%¯‹ Îìeø-Æ©Íh~6(Zš7¯È"$Ë{ˆ¯p'S¿SzêÒ­èÑè\]3ò{rÌ=F~ŒY7rÐÍ{âªä4“Šœ¶,{IH´Ó4‹]t‹þ ùFHŒ9ÝÀk×;\Á\Â[+>gê…¤¦^æÛ.¼¸<[ÆÃm¯£ãóÎЂºÕ¢·ðcÿž¦ì‘ _ÅC×ù7øë‡Žýô½`÷X¿ØxFÒ>/W_‘ÓZÀÍÛ >½Ä(#m÷×ÓícÔ‹>ÐþR_4H--ÍsWñ¿ “æV”4Žj “¹«¤£ÍsòZj ^"çš®€ÞÞr(Zƒ)u[yí Ê|ªþܱV…5äEƹîêAÑèGÒe£:L1Vã i3£\> êÁ‡CE¶n·¹kI^/3?ÉCDH¬¡žaúóEÛ©"’±$*mOúNÿ"›•Ù‘»YDúÅE¿.ý^@®O–æ…J†qÙ¡?Öפž"£­à½ä DµÌœö”Ï.é‰ùÉæ-[ÈŠBVþ’UtAëit Û’Š_ˆÒùÆõ¡ƒá]ú]èplFQ=ùú:•|ªè“ÿ$Ý!<|ª.$6å œö’Ú^.ù>ylÈQQOÒ k‰eGóHÀËhc’›¿ËšË{çßçÎ7<`û½‡B5ÓB{˜¯ù‹Du%UŸô›=ùsqõÞµ¼¬UºlP¬>¶”:‰º„™WIÿ*ß±8ŒÚìq†ÖÖ}7xÉ;NÒS F?Ê–»æŽ–…·ð—:êÊ—‹kEÛzŠH/BItEtõbÏ1eߊ™¼Nôá–‰ò1ŠS —v#Ï P{²71šÃ^™00)Ð$ÍR‡8âÔ?ÙKä¯àEš¥9™…JV××dÒ>Óu ¼ÛѪÐÑÆâ§PR-Hàf7¬Ÿ\|þéi®¥X‰øsH;µ'ýÈgó²l#)/y{ÌTÖ¹%ŽýèÓ*¸8ØOÀäÏ©«ÓÛ‚·l<¬ÊÕEùЦ ÒtHWªYòº¤¦ÂžÁ¦Šè°ŸÌîE¹qO¥æzÞÒ±P ø™ñ1§4XËÓ&Ò&ûV«>g¨„»˜SŒ=,2;òÂËÉù.ãiâÒi‘!ÑYݤÌ™¢ú|RK1¥ªqpá ã¥Ð!ÿïù8ƒÑ6÷™y±§fæté„k¶ç«©UÉÁÑ”,òxv)¨ÚxM ïtݵ—î~Éüš‰¹; oñ‡Òl²WÖö¶žRíUã}l:ÏÖtÌôPT6çt³ðœ+úLjCîâU0î ªÏú—9ð`‰§½pc“©”7Z¶´ì¡¡·âNN†¼·á§ÿŽ¿iè—íŽÓW™3X£Hì¬OòU´ƒ9ý?ÃT;™üXíeóÁÞú*°©µ n„€Àq;¢ÈËËáÆ ÷œíúÆ!RäÄì$wí‚ãÔÒ[ >[‘†×ðÍ.šÌovhgª­Ô•ŒÉ8÷ vTÍçõq^%9W0 ïuf#ŒÍK.¿¦è]XÌûë%ÞæÚÒÈÜsÒÖ-ý̲óŠuí {]ƒYùEIr¥»>ßê){. ïË ŸLa¯H Iã©MIqáz+R ©3i`9ÊCX=I»­ãH­èÓHý¸£ô½)ú€õÔS\zEå2·©Jª$5­ä“Ò|Rž—ÇC™MXGIúúú2úz:\,´§£w§÷§¥ó2º”^“V—Ö˜Ö6ˆ6Ž6ž6›&¤Ih|Ú†,'ÍKˤ…hói^*ý‡t„tŠt˜ô’ôˆô†tŸÔü…”F†ÈßHrr=rrâ›y8 d™MHC6‘qr9Ÿì#É.²¼šì ¯%‡ÉÏÉ/ɯÉÇÈ·ÉOÈwÉ—ÈÈ?ɽ(³)_È})M(ý)ý(Õ䎔†¥'ÅE™DaR¦SH”b§,£¬ ¬¢ì¦\§Ô¦¾£¼¥<§¼§Ô¡6 Þ#A9d˜|ž¼°r*Š;0j•àT¬¤4“Ú’û‹Öˆ^gnSúj;.“ºÄ¢n!ayKó¶‘Zf^ÎóXó’óvº×P7Q÷Q÷ROP£ÔÅÔeÔ…þåþþÕþ­þmþþÃþ#þ3þ þóþËþ+þ«þëþ›þ[þ»þþ‡þ§þ—þWþ÷þþ/þïþ_þ¿þ¸?© fAJA‚†M š4/hYЪ uA»‚m :t)èZZ@(èQл OAÿ‚  )Z€ÐmôNÑ´hj4#Ú;:&:::1:#ÊˆŠ¢ò(ÕGñh^4-ŽnŒ‡ÊC B¥¡µ¡E¡­¡-¡í¡Ý¡¡¡ ¡c¡ý¡‹¡£¡¡+¡ç¡Ç¡»¡¡;¡7¡¡êPJQZQç¢nEEŠFM*šZÔˆ6‘»˜¶–¶Ž¶Ÿg\¤]§}¤= ¿×3~£þ¥(ßN¯!Œ³Ù«Ø‹Ø.Î^Î1Î%N/v_voö övö6Ÿ=Š=‘°³Ù*vÛÁ¶³l5ÛÄ6°×±—² Ø›ÙØ+Ø[ÙóÙ Ùר7ٷٷؗÙ;Ù_ÙØ?ÙOÙ÷Ø 88Uìwì$NgN;ÎdNWÌA9™œ|NÇÃYYÚ®2.±z^·7èë]éÍòz‹¼ÅÞRïïNï~ïFïIïiïo‰w‡w½÷Œ÷¬÷w•w«w‘wµ·Ò{Ô{Þ»ÔûÈ[Ï÷ÃûÔÛÄWÇw×ûÕ{Ù{ÓÛÐ÷Ç{ÅÛÌ×ÞWÛ×Ò×Ê÷Ð{ÍÛÑGõñ||_]ß<ßhß`_†¯Ü'ô ð‘}Ó|“|"ßx_ŸØ×Ï7Ò7È'óÁ>…¯ƒñ¡>¥OíÃ|}ßßVßBßjß|_…/Ûçðm÷­ò9};}v_‰/æ[éÛíÛë;ä«‘õÌwÓW‡Ó6«AÖ=_•ﺯcÖð¬fYµ³®úøšd%gýôýò½öóôuÏúè{äãgQ³€,n–!+7+/Ë–•ŸeÉ55 É2edfed©³e˺˜õæ&æ.f3“YÉt1¯3‹˜vææ>æ~f˜YÊ|ÍüÁ<ÅìºÄ|Ã|˼Ê|μÇ<ÊüÀ|ÆüÌüÂ<Ë<Ç|ÉüÆ|Ê ;³ê²²j°ÒYÝXÕÌ$VV?‡5‚ÅfõeÍa,.‹ÏšÍb°rXKÇR±ì,+›5Ÿµu•uƒuõˆõõ†õ‹g¥°ë³ë±;²›Û [ › 3„£„£…Ä“… !O(J„|?Àñ£ü<~ ¿”_Ä/ãWð·ñó÷ñ×ò×ð7ñ—ðñwðò/óŸòÏðŸñk ’=Ýýé‚΂ڂŽ`¬`°`Œð@ ÌÌ \à”  ;Ç‘YäåŠòE¢ˆ¨TT!Z)Z'Ú&Ú+ó$¢uúú­úúú#úCúóúsúËú—úúWúÏú¯úú†/údÃoý}C Cª¡¾¡³¡“¡•!Í0Â@0ô5 7d(†9¶Al@ ƒËÐÁKà¾(IçÖäJK奊R¤TYª*EKñRs©³ÔSšUš[:·4P*-*_.”z„EB¿0*\&\(Ü%Ü&Ü/Ü"¤. / ï_ _ wg]]%‹ß‹RÄDOEÕ¢ZâÚâ×¢w¢Ÿ¢vâ!âîââ&âFâ^â>âúâqâT±ElÛÅ6ñD±RìGÅeâuâbŸxž¸@\.~+Þ#Þ$¾'¾)>.¾-Þ*î*é.i%é&ù*N’4–ô‘Ì”%k%aÉ ÉÉUÉ7É=Ñ–è«È›È§È—È·È÷ÈßHu$9š­­­mmmmmmmmmmíK§oA(‰.A³ÑF PŠ 8jBsÐUèEô*ºýþD?¡7ÐÍèCô:ú}ƒ¾G7¡WÐh5:BÝCÝP=I=]]G¢n§n¬î£ž£î¯¢n¯&«ij†zºH­QÇÔ ÕBõ|uXÍW‹ÕµTÝ;¡>¦¾¯nŒP?T7Þ«ï©o©[ckÔ ±õê>†‘0¶a9c`16{€mÂJ°‡X?Ícl¶Û‡íÁv`7°­Ø,ˆÆ*1P3U3M“®i¥ù… Ð ÕÌÒàšÞšzš^š|M@S ±hô‡Æ¦¹¤9¥Y¡Ù¥Ù®9¬y¤y¯¹¯y¨ù i¯í¦í ¡¢%k…Z/‹áÍç-ãíä 0ÆÊCOyïyÄü¼i…uüÛƒW‚ׂςïƒOƒ¯‚σ_‚/ƒµB)¡¡î¡f¡F¡Ö¡ÔÐÐÐP¿Ð€Ðä5D QBŠ'†x¡]2<ä yCy!_È¢ˆØ"–ˆ#Å_àð¹|OÊ—ñ÷º{‹z‰ú‰pïhѨrŒŸÉõqÜUÜÕÜ%ÜbîiînŒ»”{™»™»{ƒ»Ÿ[ ¨ ÜãÖžporqõ€À` Ð hŒäÀL€ Œ@À¼õ¬Ê3`öo€ÍÀeà*°x<>×çÀMà.P׆ך77Œ7ž×Šß‘ð`žGåÑy ÏXf.³”ÙÊÜeÎ2OYfYvY^ÙܲPÙ¼²ùeѲ’²ò²Š²e•e Ë—-)[V¶¢¬ÒµÈµÄµÌµÒµÊµÎµÑµßuÐuÈuØuÊuÆuÖuÑuÕuÃuÇõÐõÈõÒõÆõÞõÁõÉõÙÕÈýÝõÛõÇUíªá®éNv×q×u7p7t7q7s7w·q·swtwpwq§ºÓÜÝÜén‚»»»‡»·»»¯»Ÿ{€›èÎptrqÛ„nãÁXc$Th(2¬7,6T..v¶NNžn%õñW††û†Ý†Ï†&xoœ‡wÇ xOœˆ÷Çûâðöøœ³q&ÎÅ͸wáx!îÁ3ñ\ÜÇð•ø*<„¯À/ã»ñ×ÅoŠßÏ–ÓåBùt9"_&Ï•+åy‰|…Ü(_)É×Éýr³Ü!ÿ(¯§¸)¯¯x%ß(o¨¸%ß&¿-ß"¿'OR‘ï”?–7V’WÉ*)Ä ‰‚¤“§è¤`*dŠ ¹b¼b¬b¦b†¢—b›"¨ÀfÅ|…JqX!]®È/E:òQÑ©°‘'Цˆˆ‘‰ˆÉBTˆ)A,È`ä,’‹ä!ç‘|D†H+Rެ@ö kuÈUdr9<@"ÈC$€Ä‘ÊwHe[%¬üŒLVŽU.TR”<åe¡Òª£ì©ä(Ê"eH¹JY¬\£f 2U^U®*K5O5_P•©ÊU‹T«Uª :¨ ꃆ 1h Z‚æ 5h :‚®`fÐÌ æýÁ@°0 –Ë‚ç €mÀ`0 L `:Ø|‘ùÿŠÇñ&ÆfÆÆÁð{øü®/k'ÓË“e­dI²líY'Ù`Y†l¨lˆ¬¶G$cÈ&ÈÈ2–L"cË̲,Yl…ll¿ìŽì®ì¹ì•l``P`h`T`L`|`J`j`z`F`Z`N€àNäŸÎ?“6ÿ|þ…ü‹ù—ò1}¥^ —é5z—Þ­ÏÒûõ}P?O_W:PºQ:º ¥x^«¾¨ªTßT¿TµÐ:hm´Ú m‹¶CÛ£©h/4íD‡ÀLXÏÑÓô,=Qæ´¦Uz*<ó={=õåû<› ÏÂçáËðuØ£­ÐFµ ´{´µ;´k´›´/µ§µMu-t­ut:ƒŽ¯Sè¦èôº™:‹Î¦+ÑmÑmÓ­Ô-Ô=Ô]Õ½ÐýÒuÒ÷Ô£Ú¶:™n—n,8œNg€£¬ã­S­3¬<+ßJ·VÐÊ¶Š­«Üj³f[çZˬ+¬[¬—DE£Å1 –‹'ˆ¹b©x¸¶¤‘D Y%Y 9#¹$© zWáÆÝ:·Õév¹Ï™ž™æe‡s¹axn¸ áp8\Ž„ËÂåáŠð’ðÒðšðêðºðÚð†ðÆðæðÖðöðŽðÎð®ðîðÞð¾ððÑðÉð©ðéð™ðÙð¹ðùðÅð¥ðåðµðõðð­ðÍððýðƒðÃðãðÓð³ð‹ðËðëð«ð›ðûð‡ð—ð×ð·ðð¯ðßpU8NŽÔŒÔŽÔ‰Ô‹Ô4Š4Ž4‰4´ˆ´Œ´Š´Ž´tˆtŠtŽt‰¤EzGúDzEúF2"#ƒ#C#Ã"Ã#£#c#ã"#C"“#S"S#3"³#¤9B‹Ð#Œ+ÂŽp"Ü/"Œˆ"‚ˆ$F ‘EäE‰(#ªÑDt}Äya~k>½f}g}b}c­m›&H¶Õ´u¶µ´° ³QmbËJµ¶æ¥æ·Ëo‘ß!¿~þàü>ùCó'äËòíù~ã3ÏfÓVÓ]ssOKOkOGOWOš‡àéîéáéåééÉð4ð ñLòLõÌñÐ<ˆGçñå[J<%¾’ü’‚’@I°$\RVR^+©,YT²¸dYÉò’99Œ4ËqçØr9öœ•9ÎÚœ9+r–ä¬Î™Ÿ³*g{ÎÑœm9çs6æìÎÙ”³!çTÎ…œ­9¯r>å|Îy—ó%çbN‹Üû9_säÜ̹”“œ['÷gNÝÜú¹rëåvË•Û9—Û?·}îØÜ鹃s3r{åË—ëÍMËuæºrí¹â\mîì\,ןKÏ•æ:r¡\n.œ;?wCîÊÜ˹Çsór³s×åçúr×ä>Ë]›»-wKî™Ü+¹ûr/åÌ={'÷uîÃÜ÷¹­óZäUçÖÏë—š7"otÞP÷D÷d÷wSïo[•­®=Ùžboe¯oïcobŸfnïmogïoϰwµìéöAö±öÎvްO±í³í»ØŽÙívЮ·ëì!ûrû ûNûZûûJ{¶}µ½Â¾Ø¾Æ¾Õ~É~È~Ö~Ï~ÛþÌþÜþÚÞÐQmÿkoâhíhàèâèíèîî˜àï¨Î¬á­éMñ¾Íœœ—êMóvóöóðöôöñ÷ŽòòöŽõNöÎðÎò’½€WäUx]yÙyyy7óä ó¸+Ý+ÜÜÝ›ÝÇ ¸È±ÀQáˆ9;6;ö:ö99N8Î:Î9N:Ž9n8^:0ïJÙ÷y÷5÷3÷#÷s÷+÷{÷÷O‡Ù¹Ü¹Þ9ÍUîÚÛ3²á@Q`S@P¦Ì(˜YD)"‘‹ "°HR¤-BŠ4EÎ"W‘¾/²e…ŠEEE‹‹–­.ZW´¾hCѶ¢­E»‹˜®ØÎÀ›@­Bn!R¸-p °7°;p4p=p#p;p?p>p!p'p<ð6ð#ð3ð$ð+ð'ð4P¯°*в°Sa—¾…ý »(Y8¾pDáÂ1……3 'N,¤Ò gj M…ŽBM!^˜], † + c…–oÁ܂삒‚pA9|=ÿ~þíü»ùÏòßäÈ;·»Ÿ^ü*ú%ú!Z»¸FqÝâ&Å‹{÷+&-öTú*³+s*s+ó*ó+çVTVÇT6ªÜÝÝ=½=`~-œ·~ÞÉycç+矞œ?6¬ »+¼Ù9¹yÝlþŠÂŠPEQżŠpE¤¢¬¢¼"VQY±°bQÅâŠ%Ë*–W¬¨XY±ªbMźŠõ+6Ul®ØR±µb[ÅöŠ»+öTì­ØWq´âXÅñЧ+ÎTœ­8Wq¾âBÅÅŠ+W+®Uܨ¸Yq«ânŽŠ+ÅÙÅEÅóŠÃÅŠ×/)Þ\¼µxSÙÆ²eœØö²Ýe{Ë•,;Vv¸ìLÙÙ²KeSÊ'•O+ŸQ>½|N9µüeI£Òþ¥ÌRF郲GeÏË>”½)ûSö®ìWYÝò&å-Ê»”w+ßÛåòÆrcy1l^ìúü±ÊØØÝØ½ØÃ؃Øãث؋سØë؇XZeßÊ•#*‡UŽ©[9¹òÿÇÊÿÿWÓÏÁ ;§º’’¶iØ9Ñ”4{è¿ùºÃ5$%­ÿ¯š’’€á‰r’’NÿWuIIèˆD‘¤¤êDÓ5ÿÏ÷ùo?´QÿÚxô¿žþOsÆüëıÿZýŸî÷¯¦ñÿ:p¿¾ÿOWOüWÙ¤M›ü¯÷ÿÓ²)ÿÊšú¯Í§ýëùÿtîô:ã_kÎü×ýÿ©mÖ¿ý¯ŸÿÓõsþUIú×îä}üŸÆ(ÿ Pÿµ5í_/ÿ§…ôÉø×ÚÌ=üŸºXÿ:’¨5)é-ûßüJοBÜí üëÝÿ´„÷¯ þ¿6üëÙÿ4Oø¯“Eÿš$þ×½ÿ©Eò¯ƒÁýøŸ®•þ«ú×tø_þ§²åÈÿµ¥â_/þ§È¿NWþkŠê_þ§ô_‡«ÿõëºûÏqþïéOÿ{úßÓÿË©&)…T‹T›Ô„ԜԆԅԕ”JêFêNêEêO@Ê " ! #&'M M$M&M%Í$QIL›x$$%A$˜$')HJ’Š„’Ô$Œ¤!éI8ÉH2‘Ì$ ÉJ²‘ì$ÉIr“<¤L’—ä#e‘²I¹¤¹¤ªxˆ%“JI¤¤i i5ii#ii+i;ii'ii/ii?é$é,éé"é2é6éé.é!é1é9éééé=ééé+é'éé7é/©š”D®IN&§k‘k“ëë’’›“[[’[‘[“;’;‘SÉÝÈ=ɽÈ}ÉýÈýÉäAä!äaääQä±äqäñä ä‰äÉä)äiäéää™äYäÙd™Af‘%d,#+ÈJ²Š¬&cdYO6’Íd ÙJ¶‘d9“ì%g“sȹä¹är!9DžGžOŽ£är)¹Œ\AŽ‘+ɋȋÉKÉkÈëÈɛțÉ[È[ÉÛÉ;È;ɻȻÉ{È{ÉûÈûÉɇȇÉÇÉ'È'ɧÈgÈgÉçÈ—ÉWÈWÉ×È×É·ÈwÈÉÉOÉÏÈ/ÈoÈoÉÉŸÉ_ÉßÈßÉ?È¿ÈÈÉUä89‰RƒR“’LI¡Ô¢Ô¦Ô¡Ô¥Ô£Ô§TÅPSšRšQZPZQZSÚP:P:Q:SºRÒ(Ý(é””>”"%ƒ22ˆ2˜2„2”2Œ2œ2‚2Š2†2Ž2ž22‘2™2…2•2ƒ2“2‹2‡B¡P)4  °(l ‡Â¥ð(Š"¢ˆ) H‘R ŠŒ"§((EIQQÔŒ¢¡h):Šžb à#ÅB±RlÅIɤx)>J%‡’Kɧ̥ø)”BJ¢QæQæS”%J)¦”PJ)e”rJe%F©¤,¤,¢,¦,¥,§¬¦¬¡¬£¬§l l¤l¢l¡l¥l£l§ì ì¤ì¢ì¥ì£ì§ ¤¢¦¡¥£§œ œ¤œ¢œ¦œ¡œ¥œ£œ§\¤\¢\¦\¡\¥\£Ü Ü¤Ü¢Ü¡Ü¥Ü£Ü§< <¤<¢<¦<¡<¥<£¼¤¼¢¼¦¼¡| |¤|¢|¦|¥|§ü ü¤ü¢ü¦ü¥TQª)qJµµ&5™šB­E­K­Š×£Ö§6¤6¢6¦6¡6¥6£¶ ¶¤¶¢¶¦¶¡¶¥¶£¶§v v¤v¢v¦v¡v¥¦Q»QÓ©jwjjOj/jojj_j?jê*‘šAHDLBJFNAIEMCKHFIM%QÉT •F¥SÙT•KåQT!UDS%T)¢Ê¨r*BUR5T=ÕFuQÝT5‹šCͥΥú©…Ô 5D-¢Î§†©%Ô2êjŒZI]D]B]N]A]I]E]M]G]OÝJÝIÝEÝMÝO=@=D=L=B=F=I=M=G=O½H½L½B½J½F½N½A½I½E½M½K½O}@}L}B}F}N}A}I}E}M}K}OýDýLýJýA­¦¦ÐjÑêÑÐҚКÒZÐZÒZÑ:Ò:ÓºÐRii´n4­;­­7­/m-ƒ66˜6„6š6–6™6…6•666ƒ6‹F¢‘i4Ƥ±iZUœKh<š€&¢‰i MJƒh2š‚¦¢¡45 £ii:š†ÓŒ4ÍL³Ð¬4ÍNsÐ\4ÍGË¢eÓrh¹´|Ú\šŸV@ Ð iAZm-L‹Ð¢´bZ ­”VF« -¥-£-§­ ­§m m¤m¥m£m§í í¤í¢í¦í¡í¥í£¤¢¦¥£§¤¦¥£§] ]¢]¡]¥]£Ý Ý¢Ý¦Ý¡Ý¥Ý£Ý§=¤=¢=¦=¡=£=§½ ½¤½¢½¦½¡½¥½£½§} }¢}¦}¡}¥}£}§ý ý¤ý¡ý¥UÑjÐkÒ“é)ô:ôzôúôô†ôÆôfôæôô–ô¶ôôŽôÎô.ô4z:@ïAïIïEïCïKïG@'Ò3èéƒèƒéCèCéÃèÃé£écèãéé“éSé³è³ésè:ƒÎ¡sé<º€Ót%¥«ézº‰n¥Û麓î¢{è™t=—žGŸK/¤é‰÷}z}}>=LÒ‹é¥ôrz=F_H_D_J_A_M_C_K_Gß@ßHßDßLßBßJßFßAßIßEßMßKßGßO?H?B?J?F?N?A?O¿@¿H¿L¿B¿F¿M¿K¿G¿ODLAÿJÿM¯¦ÇéIŒšŒZŒ:ŒŒ–Œ¶ŒvŒöŒŽŒ4F:ƒÀèÍ 21†2†1F2Æ0Æ1&0&2&3¦0¦1f0f3æ0H 2ƒÊ†!bˆ†”3ä „¡d¨(CÍÀ†–3¬ ÃÅp32>F6#—‘ÇÈgÌeEŒùŒbF £‚cT2213–1Ö36263¶1¶3v0v1v3ö2ö3Ž0Ž1N3Î0®3n2î0213ž0ž2Þ0Þ2>0>2>1¾2¾1¾3~0~2~1þ0ªIÌšÌdf ³³.³>³³!³³1³9³³³5³ ³-³³=³#³³3³ 3•I`vgVÅ{2{1û0û123‡0‡2‡3G0G2G1Ç0Ç3'2§0§1§3g1g3ç0IL2“ʤ1éL“Íä0¹L€Éc ˜B¦ˆ)f‚L)SÁD˜*¦†©eê˜z¦‰3­LÓÉt3³™9Ìf€YÈ 1ç1ç3#Ì(³˜YÆ,gƘ ™‹˜‹™K˜K™Ë˜Ë™+™«˜«™k˜k™ë˜ë™˜™›™[™Û™;™»™{™˜™‡˜‡™G˜Ç™'˜'™§™g˜ç™˜™×˜7˜7™·˜·™w˜÷™™™/˜¯˜ï˜ï™™Ÿ˜_™ß™?™¿˜¿™˜™qfMV2+…U‹U›U‡UŸÕ€ÕˆÕ”Ռ՜ՂՒՊ՚ՆՎ՞ՑՉՕ•ÊJcXÝY=Y½X½Y}XýYXDÖ ÖÖ0ÖpÖHÖhÖÖXÖxÖÖDÖ$ÖdÖÖTÖ4ÖtÖ ÖLÖ,™EaQY4Åd±X‹Ç°„,KÌ’°ªâRÌ’±ä,5 ciXZ–že`á,#Ë̲°¬,ËÉr±Ü,+“åeùXY¬\V+Ÿ5—åg°¬«ˆ5fEXQV1«„UÊ*c•³*X X1V%k!kk1k)kk9kk%kk5k k-kk=k#kk3k k+kk;k'kk7kkk?ëë ëë0ëë(ëë8ëë$ëë ë,ëë<ëë"ëë2ë ëë:ë&ëë.ë ëë9ëë%ëë5ë-ë=ëë3ë ë;ëë'ëë/+‰]ƒ]“]‹]‡Ý€Ý݈ݘ݄ݔ݌ݜ݂ݒ݊ݚ݆ݖݎݞÝ݉ݙݕÊNc§³ ìîìì>ì ö@ö`ööPö0öpöhöö8öö$ödööTötö ö,6Mg3ØL6‹ÍasÙ [ʆÙr6ÊÆØZ¶Ž­gãl#Û¶²ml'ÛÅv³=ìªx&;—ÇÎgÏeØ…ì ;Ä.b‡Ùv”]Ì.a—²ËØìì»’½Œ½’½š½–½½‘½‰½…½½½ƒ½‹½›½‡½—½½Ÿ}€}}ˆ}”}Œ}œ}‚}’}Š}š}–}Ž}‘}‰}…}}ƒ}‡}—}Ÿýˆý˜ý„ýŒýœý‚ý’ýŠýšý†ý–ýžý‘ý‰ý™ý…ýýýƒý‡ý—]ÍŽ³kp’9)œZœºœzœúœ†œÆœ&œ¦œæœœ–œÖœ6œ¶œöœœŽœNœ.œ4N7ÓÓƒÓ“Ó‹Ó‡Ó—ÓÓŸ3€“ÁÈÄÌÊÆÎÁÉÅÍÃËÇÏ™À™È™Ä™Â™Ê™Æ™Î™Á™É™Å!qÈ ‡Æ¡s˜‡ÍárÃç8"Ž˜#á€)âÈ8rŽ‚ƒp”5ãh8ZŽŽ£ç88ÇÈ1qÌ ÇʱqìÇÉqs¼œ,N'—“Ç™Ëñs 8Uñ§ä„8Eœ0'‰rŠ9%œrNgg!gg1g g)gg9gg5g g-gg=gg#gg3g g+gg;gg'gg7ggg?çç ç0çç(ç8çç$çç4ç ç,çç<çç"ç2ç ç*ç:çç&çç6çç.çç>çç!çç1ç çç9çç%çç5çççç3ç+ççç'ç7çç/§ŠS͉s’¸5¸ÉÜZÜÚܺÜzÜúÜ܆ܯܦÜfÜæÜÜ6ܶÜÜNÜÎÜ®ÜTn··;·'·/—ÈÈÄÂÊÅÃËÇÏÄÂÊÉÍÃ¥pi\:—Ëåqù\WÈq%\)âʸr®‚‹p•\媹WÃÕru\=×È5sm\;×ÁuqÝ\7››Ïõs ¸…Ü 7Ä-↹n ·Œ[έà.àVrrqs—s«â+¸k¹ë¸¹›¸[¸[¹Û¸Û¹;¸;¹»¹{¹û¸¸¹‡¸‡¹G¸G¹Ç¸'¸'¹§¸g¹ç¸ç¹¸×¸×¹·¸w¸÷¹¸¹¸¹O¹Ï¹/¸¯¸¯¹o¸ï¸ï¹¸¹Ÿ¸Ÿ¹_¸_¹ß¸ß¹?¸?¹¿¹¹UÜjnP¨4&@S 9Ðh´Úí€ö@ ÐHÒ€t ;Ðè ôú}~@`@C€aÀp`0ŒÆ〠ÀD`0˜L¦³€ÙÀ€ @h`,€ p.Àø€"@ H)0 ¨P ´€ÐÀX;àœ€ ð™€ðY@6äy@>0ð@(‚@(æa Db (*€@ ¨‹€ÅÀ`)° X¬V«€5ÀZ *¾Xl6›€­Àv`° Ø ìöû€ÀAàp8N'ÓÀàp¸\.W€kÀ àp¸Üî€ÇÀSàðx ¼Þï€÷Àà#ðø|¾ßÀOàðøüª€j $ñjðjò’y)¼Z¼Ú¼:¼º¼ú¼¼†¼F¼Æ¼&¼¦¼f¼æ¼¼–¼V¼¶¼v¼ö¼¼Ž¼N¼Î¼.¼®¼T^¯/Gàuçõàõäõâõæõáõåõãõç ày¼A¼!¼¡¼á¼¼‘¼Q¼Ñ¼1¼±¼q¼ ¼‰¼I¼É¼)¼©¼i¼é¼¼™¼Y¼Ù¼9<Ì£ñXÎ7òM|3ß·ó|'ßÅ÷ð}ü,~6?‡ŸËÏçÏåûù…ü >?Â_Àñ+ù ù‹øKùËøËù+ø+ù«ùëùøù›ù[ùÛù»ø»ù{ø{ùûùù‡ùGøÇøÇù'ø'ù§ø§ùgùçøçùøù—øWøWù×ø×ù7ø7ù·ùwøwù÷ø÷ùøùùOø/ø¯øoøoùïùøŸøŸù_ø_ùßøßù?ø?ù¿ø¿ùùUüj~œŸ$¨Š×¤j ê ê ê   šš š š ZZ ÚÚ Ú Ú : : ºº Ri‚n‚ § ·  ¯`€€(È      ŒŒŒŒŒŒLLLLLLLÌÌdE@ÐtCÀ°lWø¡@$ $P @X È R `­@'Ð £À$0 ,«À&° §À%p <‚LO%Èäry‚|Á\_P  AAHP$˜'˜/ "‚¨ XP"(” *1A¥`¡`‘`±`‰`©`™`¹`…`¥`•`µ``­``½`ƒ`£`“`³`‹`«`›`»`§`—`·``¯`Ÿ`¿à€à àà°àˆà¨à¸à„à¤à”à´àŒà¬à¼à‚à¢à’à²àŠàªàšàºà†à¦à–à¶à®àà¡à‰à©àµà­à]âÙÿ(ø&ø.ø)ø%ø-ø#ø+ˆ ’„)Â:ÂzÂúÂÂFÂÆÂæÂÂ6ÂÎÂ.®ÂTaš°›0]Hööööö……ƒ„ƒ…C„C…#„#…c…ã„ã…„“„S…Ó„Ó…3„3…³„s„$!YHR…4!]Ȳ…!WùBP$ ¥BH eB¹P!D„J¡Jˆ ÕBL¨j…:¡QhZ….a¦Ð+ô ³…yÂ|a0 ,Ζ˅ „‹„‹…K„K…+…«„«…k„k…ë…„…›„›…[…»…{„{…û„„…‡„‡…G„G…DŽDž'„'…g„g…ç„ç…„…W…ׄ7„7…·„·…w…÷„÷…„…„…O„O…τυ/„¯„o„o…ï„ï…„…Ÿ„Ÿ…_„ß„?…¿„„…UÂZ¢Ú¢:¢z¢†¢F¢Æ¢¦¢æ¢–¢Ö¢v¢ö¢Ž¢N¢Î¢TQš¨›(]”ømKÔGÔWÔ_D       MMMMMMMMÍÍÍÍÍ‘DdUÄqE€ˆ'â‹„"‘H,’Š`‘\¤©D˜H#Ò‹p‘QdYD6‘Sä¹E>QŽ( *EE¢ù¢°(**•‹ˆb¢JÑBÑbÑÑRÑ2ÑrÑ Ñ*ÑÑZÑÑFÑ&ÑfÑÑVÑvÑNÑ.ÑnÑÑ~ÑÑAÑ!ÑaÑ ÑIÑiÑÑyÑÑUÑ5ÑmÑÑ]Ñ}ÑÑcÑÑ3ÑsÑKÑ+Ñ[ÑÑGÑgÑÑWÑwÑÑ/ÑoÑ_Qq]q=qqCqSq3q qq[q{qgqqš¸›8]ÜWÜOÜ_LgˆŠ‰‹‡Š‡‰‡‹GˆGŠÇˆÇŠÇ‹'‹§ˆ§Š§‰§‹gˆgŠg‹Ib²˜*¦‹b–˜-æˆyb¾X(‰Åb‰ËĘX'Ö‹q±Ql»Äqâç}±Wœ-ÎçŠóÄsÅ~q¡8(‰‹ÄóÅq±¸D\*®ÇċċÅKÅËÄ+īīÅëÅÅ[ÄÛÄÛÅ;ĻĻÅûÄûÅÄŇćÅGÄGÅ'Ä'ŧÄgÅçÄçÅÄÅ—ÅWÄWÅ×Å7Ä·ÄwÄ÷ÅÄÅOÄOÅÏįşğÅßÄ?Ä?ÅÄÅUâjq\\S’,I‘Ô’Ô‘Ô—44”4•4“4—´´”´–´‘´•´“tt”t’t–¤JÒ$IOI/IoI_I?IÉ Q’!($,"*&.!)%-#+/™ ™(™$™,™"™*™&™!™%™#!K(š„.aHX¶„#áJ O—%"‰X"‘H%–È$ˆD)QIP‰Z‚I4D/1Hp‰Ib‘X%6‰]â8%.‰[â‘dJ¼Ÿ$K’-É‘äJò$ù’¹’I@”„$E’y’ù’ˆ¤*•KJ$¥’2I¹¤B“TJJIK–H–J–I–KVKÖHÖIÖK6H6J6I6K¶H¶J¶I¶KvJvIvKöHöJöIHJIŽHŽJŽIŽKNHNIÎJÎIÎK.H.J®H®I®KnHnJnInKîHîJîIîKHJIKžHžJžI^H^J^I^KÞHÞJÞIÞK>H>J>I>K¾H¾J¾K~H~J~I~KþHþJª$Õ’$°XLSÀZ`°Øl ¶;‚ÀÎ`W°Øìö{}À~àf€Á!àPp88 ŽGƒÁÉàp*8$ƒ ²@6È @!(Å A„A¨õ A3hm t‚™ ôÙ`˜ æ~° €…` a°¬€1p ¸\®WƒëÀõàp#¸Ün·ƒ;Àànp?x<VÅ€gÀ à%ðx¼>OÁ×àð#øüþ¿Á?`’4Yš"­%­-­/m m(m$m"m*m.m!m)m%m#m+m'í(í.í!í%í+í'í/%J3¤ƒ¤ƒ¥C¤C¥Ã¤Ã¥£¤£¥c¥ã¤ã¥¤“¥Ó¤Ó¥3¥T)MJ—2¤,)[Ê‘r¥€”'åKR±’ÂR™T!UJURTª‘j¥z©AŠKR‹Ô*uHR—Ô-Í”ú¤YÒliŽÔ/ H‹¤ó¥aiDZ,-•–IË¥ÒÒ˜´RºHºTº\ºFºAºIºYºMº]ºKºGºOz@zPzHzXzDzLzBzRzZzFzVzIzEzUzMzCzSzKz[zGzWzOú@úXúTúLú\úBúRúFúVú^úAúQúIúEúMúCúKú[úGúWZ-M†R ÚP¨.Tª5‚CÍ æP+¨5Ôj µƒÚC .PÔ J‡ªâ¨ÔêõúC "” „AC ¡Ð0h84†ÆB㡉Ð$h4 š ÍH¢@Tˆ1!Ƹñ >$€D’@ $… †dRB*…0Hi!¤‡ !d†ìrB.È y LÈå@yP>4òCP*„‚Pš…¡b¨*ƒÊ¡ hT -„A‹¡%Ð2h9´Z ­†Ö@ MÐfh ´Úí‚ö@û ýÐèt: ‡N@'¡SÐiè tº]‚®@W¡kÐuètºÝ…îA ‡Ð#è ô z½„^A¯¡7Ð[èôú}„>AŸ¡/ÐWèôúý„~A¿¡?Ð_¨ ª†âP ¸&œ §ÀµàÚp¸.\n7„Áá&pS¸Ün ·‚[Ãmàvp{¸Üîw†»À]áT¸*žwƒÓáîp¸'Ü î ÷…ûÁD8‚‡Á#áÑðx<<žO‚'ÃSáiðLx<&Á˜Óă90óa,†%0ðVÀ¬„Õ0k`l€° ¶ÀVØÛaì„]°öÀ™°öÁYp6œçÁùð\8ÂAx†#p.Ëàp ^/†—ÀËá•ðjx-¼Þo†·À[ámðvx¼Þ ï÷Ãàƒðaø|>Ÿ†ÏÁáKðø*| ¾ ß‚oÃwà»ð=ø>ü~?ŸÂ¯á7ðgø üþÿ„Áà¿p\ Çá²Y-YY]Y=YY#YSY3YsYkYY[Y{YYGYgYª,MÖM–.ë.ë%ë-ë#ë+ë/#ÊÊɆɆËFÈFÊFÉÆÈÆÉÆË&Ê&˦ȦʦɦËfÈfÊæÈH2ŠŒ*ãȪâ\OÆ— dB™Xʤ2X&—!2¥L%Cej™N¦—dF™Ef•Ùe™Sæ–yd™2Ÿ,[–#Ë“åËæÊü²€¬P”…dódóeaYDV"+••ÉÊe²˜¬R¶P¶H¶X¶D¶T¶L¶\¶J¶Z¶F¶V¶N¶A¶Q¶I¶Y¶E¶M¶]¶C¶S¶[¶G¶W¶Ov@vPvHvXvDvTvLv\vBvRvJvZvFvVvNv^vAvQvIvYvEvUvMv]vCvSv[v_ö@öPöHöXöDöTöLöBöRöZöFöVöNö^öAöIöMö]öSö[öGV%«!¯)O–§ÈkÉkËëÈÊ˛țɛË[È[ËÛÊÛÉÛË;Ê;Ë»ÊSåiònòt9AÞCÞKÞ_N””’•“—’–•“OO–O‘O“ϔϒϑÓä 9SΖsä\9 çÉrP.•Cr™\.WÉQ9&×Éq¹I^·È­r›Ü.wÊ=r¯Ü'Ï–çÈóäsåò€¼P”ÉçÉçËÃò¨¼T^.¯”/”/’/•/—¯’¯•¯—o’o–o•ï’ï–ï‘ï•ï“ï—”–“—ŸŸ”Ÿ’Ÿ–Ÿ‘Ÿ•Ÿ“Ÿ—_“_—ßß‘??’?‘?•?—¿¿”¿–¿‘¿“¿—–“—ÿÿ”ÿ’ÿ–ÿ‘ÿ•WËk(j*’)ŠÚŠFЦпЖŠVжŠvŠöŠŠŽŠÎŠ.Š®Š4E7Eº‚ è®è¡è©è£è«è§è¯  *2ƒCC#£ãÓ³sdMÁR°W(x ¾B *D ¥U¨˜B£Ð*t ½Â 0*, «Â¦°+ §Â¥p+< ¯"K‘«ÈSä+æ*üŠE@Q¨)ŠóaEDU”(JeŠrE…b"¦¨T,T,R,Q,U,S¬R¬V¬Q¬U¬WlRlVlUlWìPìTTÅw)v+ö(ö*ö)ö+()Ž(Ž*Ž)Ž+N(N*N+Î*Î+.(.*.)®(®*®+n(n)î(î*î)î+()+ž*ž)ž+^(^*^)^+Þ(Þ*Þ)>(>+¾(¾*¾+~(~*þ(ªÕЏ" ©‰$#)Hm¤R©‡ÔG"MfH ¤%Ò i´AÚ"íöH¤#Ò éŒ¤"iH7„€tGz =‘^Ho¤Òé @2È d2† GF"£ÑÈXd<2™„LF¦ S‘iÈtd2™…ÌFæ $„ŒP*BCèa!„‹ð>"B$ˆ@ŒÈ‚ JEÔˆÑ"zÄ€àˆ1!6ÄŽ8âF2’ÌEüHRˆ‘R„ÌCæ#Q¤)EÊH ©D"‹ÅÈd)² YެBV#k‘õÈd#²Ù‚lC¶#;‘]Ènd/²©ŠïG ‘ÃÈä(r 9Žœ@N"§3È9är ¹Œ\A®!בÈMär¹‹ÜCî#ÇÈä)ò y޼@^"¯×Èä-òù€|D>!_¯È7ä;òù‰üB~#¿H5’¤¬¡¬©LV¦(k)k+ë(ë*ë)(*)+›(›*›)›+[([*[)[+Û)Û+;(;*;);+»*ӔݔéJ‚²»²‡²—²²¯²Ÿ²¿’¨¨¤¬ª¦®¡©¥­§¯œ œ¨œ¤œ¢œªœ®œ¡œ©œ¥œ­œ£$)ÉJª’¦¤+J¦’¥d+%_)P •"¥X *¥JH)SÊ• %¢T*UJT©VbJR«Ô+ J\iTš”f¥EiSÚ•N¥KéVf*½JŸ2[™£ÌUæ)ó•s•~e2  *ç)ç+Ãʈ2ª,Q–*Ë”åÊ åeLY©\¤\¬\¢\ª\¦\®¬Š¯P®T®V®S®WnPnTnRnVnQnUnSnWîPîTîRîVîQîUîSîWPTRVQUSWžPžTžRžVžQžUžSžW^P^T^R^V^Q^U^S^WÞPÞTÞRÞVÞQÞUÞSÞW>P>T>R>V>Q>U>S>W¾P¾T¾R¾V¾Q¾U¾S¾W~P~T~R~V~Q~U~S~WþPþTþRþVþQþUV)«•qe’ª†ª¦*Y•¢ª¥ª­ª£ª«ª§ª¯j j¨j¤j¬j¢jªj¦j®j¡j©j¥j­j£j«j§j¯ê ê¨ê¤ê¬ê¢"¨º«zªz©z«ú¨úªú©ú«¨ˆª Õ Õ`ÕÕPÕpÕ(ÕhÕÕ8ÕxÕÕDÕdÕÕtÕLÕ,ÕIEVQTTMEW1TLKÅVqT€Š§â«*¡J¤«$*… Q©T¨J­ÂT•V¥SéU®2ªL*³Ê¢²©œ*—Ê­ò¨²UyªªxªPT…TEª°*¢*V•¨JUªª˜ªRµPµXµDµTµLµ\µBµRµJµFµVµNµ^µAµQµIµYµ]µSµKµ[µGµWµOµ_uPuDuTu\uBuRuJuZuVu^uQuIuSu[uWuOu_õ@õPõXõDõTõLõ\õBõRõJõVõNõ^õQõIõYõUõ]õCõSõ[õGõWU­Š«’ÐhM4MAë¢õÐúh´!Úm޶A;¢ÐÎhW´J@û }Ñ~h:ŠCG #ÑQèht,:„NF§ ÓÑYèltJBÉ(¥¡t”…rP.   *EaT†ÊQŠ¢jC5¨5 FÔŒZPjG¨õ Yh.:õ£´-Bç¡4Š£%hZ.@cèBt1º]‹n@7¢[Ñmèvtº=ˆB£GÐãè ô$z=‡žG/ —ÐËèM´*~ ½ÞEï¡Чèsôú }‹¾C?£_Ñ_hMR×T'«k©k«ëªë©ë«©›¨›ª›©[¨[ª[©[«Ûª;ª;©»¨»ªSÕiênêtuwuOu/u_u?õ5Q=X=T=L=\=R=N=^=Q=Y=C=[MQ3Õ,5[ÍQóÔµH-QƒjH «åj…Z¥FÕjµV­SëÕµQmR[Õ6µ]íT»ÔnµG©ö©³Ô9ê\õ\µ_PÕ!õ†ÀFa£±1ØXl6›€MĦ`S±iØtl6›…ÍÆÈ£b4Œ‰±1.`|L€ 11&Á@LŠAŒÉ09¦ÀL‰¡˜Ó`ZL‡é1†cFÌ„™1 fÅl˜s`Ñeb^, ËÅò°¹˜+ÀX!V„ÍÃæca,‚E±b¬+ÃʱX [ˆ-–`K±åØJl¶[‹­ÃÖc±-Ø6l'¶ Û‹íÇ`±#ØQìv;‰ÂNcg±sØyì"v»ŽÝÄnaw°»Ø=ì ö{½ÁÞbï°÷Øì#ö ûŒ}Á¾aß±ØOì7öû‹UaÕXKÒÔÐ$kR4µ4u4u5õ5 4 545M5Í4Í5­5m4m5í4í54545]4©š4M7 AÓ]ÓCÓSÓWÓ_CÔ Ô Ö Ñ Ó ×ŒÐŒÔŒÒŒÖŒÑŒÓŒ×LÐLÔTÅ'i&k¦h¦kfhfjfkH²†¢¡jhº†¡ajX¶†«4<@#Òˆ5Ti`\£Ð ¥F¥A5V£Ó4FIcÖX5vSãÒ¸5M¦Æ«ñi²59š\Í\_Ô„4Ešyšùš°&¢‰jŠ5%šRM™¦\³@ÓTjjk–h–j–i–kVjViVkÖhÖjÖiÖk6h6j6i6k¶j¶ivhvjvköhöjöiökhiŽhŽjŽiŽkNhNjNkÎhÎjÎiÎk.h.j®h®j®i®knhnjninkîhîjîihkžhžjžižk^h^j^i^kÞhÞjÞi>j>i>k¾h¾j¾i¾k~h~j~i~kþhþjª4Õš¸&I[C[S›¬MÑÖÒÖÖÖÑÖÕÖÓÖ×6Ð6Ô6Ò6Ö6Ñ6Õ6׶жԶҶֶѶնÓvÔvÒvÖvÑvÕ¦jÓ´éZ‚¶»¶‡¶§¶—¶·¶*ÞGÛWÛOÛ_;@KÔfhjik‡j‡i‡kGjGiGkÇhÇjÇiÇk'h'j'i'k§h§j§i§kghgjgiçhIZŠ–ª¥iéZ†–©eiÙZŽ–«´<-_+Њ´b­D j¥ZH keZ¹V¡E´J-¦ÕiõZƒךµV­Mk×:µ™Z¯Ö§ÍÒæhsµyZ¿¶@е!m‘v¾¶X[¢-Ó–kcÚJíBí"íbííRí2írí íJí*íjíFífíVí6ívíní~ííQí1íqí í)ííYí9íyííEí%íeííUí5íuí ímí]í=í}íCí#ícíí3íkí{íGí'ígííWí7íwíOíoíí_mµ6®MÒÕÐÕÔ%ëRtµtµuutuu t utuMtÍtÍu-umttutu]t]u©º4]7]ºŽ ë¡ë©ë¥ë­ë£ë«ë§ë¯¨¤¬«ŠÑ Ó ×ÐÔÒÖÑÕÓ×MÐMÔMÒMÖMÕMÓM×ÍÐÍÒÍÑ‘uUGÓÑu SÇÒ±uWèx:N¤ë$:P'ÕÁ:D§Ô©t¨N­Óè´:×u&YgÕÙuKçÖyt™:¯Î§ËÖåèruyº|_W  è u!]‘nžn¾.¢‹êŠueºr]…n.¦[¤[¬[¢[ª[¦[®[¡[¥[­[£[§[¯Û Û¨Û¤Û¬ÛªÛ®Û¡Û©Û­Û£Û«Û§Û¯; ;¨;¤;¬;ª;¦;®;¡;©;¥;­;£;«;§» »¨»¤»¬»¢»®»¡»©»¥»­»£»«»§»¯{ {¤{¬{¢{ª{®{©{¥{­{£{«{§û û¨û¤û¬û¢ûªû¦û®û¡û©û­û£û««ÒUëâº$} }M}²>E_K_G_W_O__ß@ßPßHßXßDßTßLß\ßBßRßJßZßFßVßNß^_ï ï¨ï¬ï¢ïªOÕ§é»éÓõ}w}}/}}?}ýý@ý ý`ýHýhýXýxýýDý$ýdýýTý ýLý,=IOÖSôT=]ÏÐ3õl=Gèùz¡^¬—ê!=¬Wè•z•Õ«õZ½NoÐãz“Þ¬·èíz‡Þ©÷ê}úl}Ž>WŸ§Ï×è õ!}‘~¾>¬è£úb}‰¾T_¦/×Wèècú…úEúÅú%ú¥úeúåúú•úUúÕú5úõúMúÍú-úmúÝú=ú½ú}úýúúƒúcúãúúSúÓú3ú³ú úKú+ú«úkúëú›úÛú;úÿË'²µL¼9èRõ©†T<Õ˜jJ5§ZR­©Cª‡V¨Y=®z|õ˜ê±Õª'VOªž\ý_kŒª]=¬zxuFbnPõàêÓ5ÏÔ¼U³E×V] ]‡t­•Z/5šZœZ’ZšÚ*­KZ·4Zš,Mžv B h:A`X6CàÀ'B‚ˆ &H AJ€0AF„ $¨(AMÀ‚– #è B&ÁKð²Ù„B.¡*žGÈ'Ì%ø „¡$Ì'„ Â^Â>ÂcÂÂSÂ3B½î‘´æÄNÄÎÄÿûOÇûr£Ö¬ŠO®1½FU\R3•˜FìFL'ˆÝ‰=ˆ=‰½ˆK ª´`PlТAGtiÐåA׫ǟ&ÖNMÍXoÚõß¶þˉÄ*b5±6q1FœQ=³zVõìê9Õ¤jr5¥šZM«fT3«YÕìjn5PÍ«æW ª…Õ¢jqµ$qÀji5T W˪ÕHµ²ZUýÿý¸ëïêïéèëŸèŸêŸéŸë_è_ëßè¿é¿ëé«ôÕú¸>ÉPÓb¨e¨m¨c¨k¨gh`hhhdhbhjhfhnhihkhghoèbèjèfH7t7ô0ô4ô3 0  ƒ C C # £ £ c ã   “ “ S S Ó Ó Uñ†™†Y†Ù’l è†i`8®0ð |ƒÀ 4ˆ h lä…1( *fÐt½Á`À FƒÉ`6X VƒÍ`78 NƒÛà1d¼Ÿ!ÛcÈ3Ì5† !d˜g˜o"†bC‰¡ÔPf¨0,0Ä ‹ K K Ë Ë + + « k ë › [ Û Û ; » { û û  ‡ G G Ç Ç '#8c8k8o¸l¸b¸j¸f¸n¸a¸i¸m¸c¸k¸gx`xdxlxbxjxnxixmxcxkxoø`øhødøbøjøfønøaøiøeømøcøk¨2Tâ†$¼^OÁëàuñxC¼Þo†7Ç[à-ñVxk¼ Þo‡wÄ;áñ.xW<ã=ð^x¼>ÏÀâÃðáø|$> ƒÅÇáãñ‰ø$|2>ŸŠOçã3ð™ø,|6>¯Š“p2NÁ©8 §ã œ…sp.Æ%8ˆKq‡q.Ç8‚+qŽâ®Áu¸7à8nÄ-¸·ávÜ;q7îųðl<ÏÃóñ¹xÀƒx>Ÿ‡ñÅ‹ñ¼/ÃËñx%¾_„/Æ—àKñeør|5¾_‹¯Ã×ãðø&|3¾ߊo÷ã;ðø.|¾߇ïÇàñCøaü~?†ÇO$Fp?…ŸÆÏàgñsøyü~¿„_Á¯â×ðëø ü&~ ¿ßÁïáðGø3üþ…¿ÆßàoñwøGüþÿ‚Ãâ¿ðßøü/^…WãIÆÆšÆdc-cmcc]c=c}ccCcccScscKc+ckccc'cgcWcª1ÍØÍ˜nìnìaìmìoljamcgœ`œhœdœlœjœfœaœiœc¤©Fš‘ndYF¶‘c¬Š ŒB£È(6JŒ Qj„Œr£ÂˆUFÔ¨6bFQkÔ F£Ñd4mF»Ñat]F1Óè5f³¹ÆÖ¾Ö~ÖþÖV¢5Ã:Ð:È:Ä:Ô:Ì:Ü:Â:Æ:Î:Ñ:É:Ù:Å:Í:Ó:Ë:Û:ÇJ²’­+ÕJ³2¬L+ÇʵJ¬RkU²Ê¬ˆUiUYQ+fÕZuV½Õ`Å­F«ÉjµÚ­«Ó겺­^«Ïšc͵æYó­~k5`-´†¬EÖyÖùÖ°5bZ‹­%ÖRk¹µÂºÀ³VZZY[—X—Z—Y—[WZWYW[×X×Z×Y×[7X7Z7Y7[·Z·Y·[wXwZ÷ZX[ZYOXOZO[ÏZÏ[/X/Z¯X¯Z¯[oXoYo[ïXïZïYï[ZY[ŸY_Z_'FðÖúÞúÉúÙúÅúÕúÍúÝúÃúËúÛú×Zm[kØRlµlulumõlõm mMlMmÍlÍm-l­l­mmmíllml]l©¶4[º`ënëaëiëeëmëcëkëgëo`#Ú2lmƒmClCmÃm#mcmãmlm“l“mSlÓlÓm3l3m³l³msl$ÙF±ÑltÃÆ´±lרx6¾M`ÚD6±MbmRdƒm2›Ü¦°UśҦ²¡6µ ³il:›Þf°mv›Ãæ´¹l^[¶-×–o›kóÛ l…¶ -d›o ÛJme¶r[̶ȶضĶԶ¶ʶڶƶ޶Á¶Ñ¶É¶Ù¶Õ¶Í¶Ý¶Ã¶Ó¶Ë¶Û¶Ç¶×¶Ï¶ßvÐvÈvØvÄvÔvÌvÜvÂvÒvÊvÚvÖvÎvÞvÁvÑvÉvÙvÅvÕvÍvÃvÓvÛvÇv×vÏöÈöØöÔöÂöÒöÊöÚöÆöÖöÞöÑöÉöÙö%1‚¯¶o¶ï¶¶Ÿ¶?¶¿¶j[’½†½¦½–½Ž½ž½¡½‘½±½©½¹½…½µ½½­½½½£½“½‹=Õžfïfïaïeïg`'ÚÚۇ؇ڇÙGØGÙÇØÇÙÇÛ'Ø'Ú'Ù'Û§Ú§ÛgÚçØIvºigÛ¹v¾]hÙ%v©²Ãv™]nWػҮ²£vµ]c×Ú vÜn²[ì6»Ãî´»í™v¯ÝgϲçØsíyö|û\»ß^`/´íUñ"û<û|{Ô^b/µ—ÙËí1{¥}¡}‰}©}™}½}ƒ}£}³}‹}›}»}‡}—}·}}¯}Ÿ}¿ý€ý ý°ýˆý¨ý˜ý¤ý”ý´ýŒýœý¼ý‚ý¢ý²ýªýšýºý†ý¦ýŽý®ý¾ýý¡ý±ý‰ý©ý…ý¥ý•ýý­ýýƒý£ý³ý‹ý«ý›ý»ý§ý—ý·ý½Ê·'9j8j:’)ŽZŽÚŽºŽzŽúŽFޯަŽfŽæŽŽ–ŽVŽ6޶ŽvŽªx{GGGG'GgGWGª#ÍÑÍ‘î 8z:z9ú8ú:ú9ú;8ˆŽ Ç@Ç Ç`ÇÇPÇ0ÇÇHÇ(ÇhÇÇXÇDÇ$ÇdÇÇTÇ4ÇtÇ ÇLÇ,ÇlÉAvPTÍAw0LËÁvp\àà9øCè9ĉtHvÈr‡Â8”•u¨˜CãÐ:t½Ãè09Ì‹Ãê°9\·ÃãÈtx>G–#Û‘ãÈMŒ Ï1×áw8ŽBGÐrÌw„QG©£ÌQîXèXäXâXîXáXéXåXãXëXçØàØèØêØæØîØáØéØíØã8à8è8ì8â8ê8î8å8ã8ï¸à¸è¸ä¸ì¸â¸ê¸é¸í¸ã¸ç¸ïxäxìxâxêxæxîxáxåxíxãxëxçxïøèøäøìøâøêøæøîøáøåøíøë¨rT;âŽ$g gMg²3ÅYËYÛYÇY×YÏÙÀÙÐÙÈÙØÙÄÙÔYoælîlálélålílãlëlçlïìàìèìäìììâLuvs¦; ÎîΞÎ^ÎÞξÎ~ÎþN¢3Ã9Ð9È9Ø9Ä9Ô9Ì9Ü9Â9Ò9Ê9Ú9Æ9Ö9Î9Þ9Á9Ñ9É9Ù9Å9Õ9Í9Ý9Ã9Ó9Ë9Û9ÇIr’'ÕIsÒ 'ÓÉr²'× 8yN¾Sà:EN±SâR'ä„2§Ü©p"N¥SåDj§Æ©uêœz§Á‰;NSb§ÕisÚ§Óérºg¦Óëô9³œÙÎg®3Ï™ïœëô; œg¡3è 9‹œóœóagÄu;Kœ¥Î2g¹³Â¹ÀsV::9;—8—:—9W8W:W9W;×8×:×9787:797;·8·:·9·;w8w:w9w;÷8÷:÷9÷;8:9;8:9;O8O:O9O;Ï8Ï:Ï9Ï;/8/:/9/;¯8¯:¯9¯;o8o:o%FpÛyÇy×yÏyßùÀùÐùÈùØùÄùÔùÌùÜùÂùÒùÊùÚùÆùÖùÎùÞùÁùÑùÉùÙùÅùÕùÍùÝùÃùÓùËùÛùÇù×Yå¬vÆI®®š®dWŠ«–«¶«Ž«®«ž«¾««¡«‘«±«‰«©«™«¹«…«¥«•«µ««­««½«ƒ«£«“«³«‹««+Õ•æêæJw\Ý]=\=]½\½]}\}]ý\ý]\DW†k kk°kˆk¨k˜k¸k„«*>Ò5Ú5Æ5Ö5Î5Þ5Ñ5É5Ù5Å5Õ5Ý5Ã5Ó5Ë5Û5ÇEr‘]ÕEsÑ] ÓÅr±]׸x.¾KàºD.±Kâ]Rä‚]2—Ü¥p!.¥KåB]jæÒ¸´.Kï2¸p—Ñer™]—ÕesÙ]—Óår¹]W¦ËçÊre»r\¹®#Ÿ—/ÈWä«ò5ù¦|Kþ ü!ù#òGåOÈŸ—¿"]þ†ümùQù'òOåŸÉ?—)ÿJþµü[ù÷òä?É–ÿzj‚cò?äÇå'ä'åg).Q\ªø‡âJÅÕŠk×+nTܤ¸Mq»âÅŠ(E´b—"F«ˆS$*v+ö+’)ŠLE®"_Q (T E ´£À)ŠQARTE¥‚¦ + ¦¢FÁS´(ZmŠvE‡¢SÑ¥èUô)†2 + ¥B¥P+´ B¯0(L ³Â¢°)ì ‡Â©p+< ¿"¨¸KqHq·âŽŠû÷+Æ㊠Åñ““ŠyŪbC±©xPñâaÅ£ŠÇO(žR<£xVñ¼âÅŋЗ¯*^W¼¡xSñŽâ¨âŇŠŸ(>U|¡øRñ•âkÅ7Š?*~Rü¬øEqLñ»âÅ ÅIÅYÊs”ç+/T^¤¼Xy‰òJåÕÊk”×*¯S^¯¼Ay“òfå-ÊÛ•w(ïTF)£•»”‰ÊÝÊ=ʽÊ}ÊýÊÊ$eŠ2U™¦LWf(3•ÙÊe®²@Y¨D(‘Ê"%J‰Vb”X%N‰W?IP–(‰J’’¬,UR”åJª²BY©¤)Êe­’­ä(yJ²N)TÖ+EÊe“²YÙ¢lSv(»•½Ê~å€rP9¤<¨”)¥B©T‚JH©U”&¥YiQÂJ«Ò¦´+J—Ò£ô*ýÊ€2¨ ))ïVÞ£¼WyŸò~å°ò°rD9ªSŽ+'”SÊiå¬r^¹ \T®*×”Ê-åƒÊ‡”(U>¦|\ù”òiå³Êç”G”/)_V¾zj‚×”¯+ßP¾©|KùŽò}åQå‡ÊO”Ÿ*?S~®üBù•òkå7Êï”ß+Pþ¨üIù³òå¯Êߔǔ¿++O(ÏÏÏÏÏÏ//////ÿ^^^ ^ ^ ^^ÞÞÞÞ ÞÞÞ Fƒ»À0ŒãÁ0Ü î÷ƒÀ$0LSÁ40Ì ÀB"Á" bÀb –€D’ÁR–å ¬+Áã'é ¬Y`5X²AÈy ¬…`=(ÀFPJÁ&°l[Áv°ì»Áp‚2å „@5¨µ ÔƒÐšA ƒVÐÚAè] ô€~0Áxx¼¼¼¼< Ž‚cà88 ΀³à8.€Kà ¸ ®ëภn‚ƒ€‚ƒO‚OOƒÏ€Ï‚/€GNMðø ø*øø:øø&ø6øø.øø>xüüüüüüüüü üüüüüüüü üüüü <þO€gAgCç@çBçA@BAC—@—B—Aÿ€.‡®€®„®†®®…®ƒn€n„n‚n†nn…nƒn‡î€î„¢ hhÅBqP´Úí…öAû¡P” ¥@©P”e@™P6”åBùPT! ã'‘P„‚Ð*†°ÂC¨"B媄hb@LˆUC5â@\ˆ  :HÕC"H 5@R¨jÚ v¨ꄺ n¨R@J„ H©! d„L²@0dƒrAnÈy¡„BÐ]Ð!è^è>h‡& hZ„– ehZƒÖ¡ hzzzzzzz:½½ ½½ ½½uj‚·¡÷ ÷¡£ÐÐGÐÇÐ'ЧÐçÐЗÐ7ÐOÐÏÐ/Ð1èwèè8t:[užê|ÕªKU—©.W]¡ºRu•êZÕõª›T·¨nSÝ¡ºS£ŠSÅ«T»U{T{UûTTIªUª*]•¡ÊRe«rTyª|B…T©P*´ £*VT%*’ªTEQ•©ÊUªJMÅPU©XªjUªVÅVqU<•PU¯©ÄªU£J¢’ªšU­ª6U»ªSuüd·ªGÕ«êSTÉT€J©‚T*•F¥UéUF•IeVYT°Ê¦²«*—Ê­ò¨¼*ŸÊ¯ ¨Bª»T‡Tw«îQÝ«ºOu¿ê°jD5¡šRM«fTsªÕ¢jIµ¬ZU­©6T›ªTªR=¬zDõ˜êqÕª§UϨžU=§z^õ’êeÕ+ªWU¯©^W½¡zKõ¶êÕ»ª÷UGU¨>T}¬úDõ©ê3Õª/U_©¾Q}«úNõ½êÕªŸT?«~Qýzj‚cªßU¨Ž«NªÎRŸ­>G}žú|õê Õ©/V_ª¾Lýõåê+ÔWª¯R_­¾V}ƒúFõMê›Õ·ªoSß®¾C}§z—:F«ŽSǫԉêÝê=ê½ê}êýêê$u²:U¦NWg¨3ÕYêu®:_] .T#ÕEj”ºXUãÔx5A]¢&«KÕu™º\MUWªij†ºJÍRW«kÔµj¶š£ªëÕ j©ºYݪnWw¨;Õ]êu¯ºO}üd¿z@-S+ÔZ¥Ö¨µj½Ú¨6©Íj‹Úª¶©íj§Ú¥v«=j¯Ú¯¨ƒêú.õÝê{Õ÷©ïW««GÔcê õ¤zJ=£žUÏ©çÕ ê%õ²zE½ª^Wo¨7Õ[ê‡Ô«S?®~Rý”úiõ3êçÔÏ«_P¿¨~Eýªú õ›ê·Ôo«ßQ¿§~_ý±úõgêÏÕ_¨¿T¥þZýú{õOêŸÕ¿¨©WWŸTŸ¥9[s®æ<Íùš 4j.Ò?y±æRÍešh.×\¡¹Js­æ:Íõš47jnÕܦ¹]s‡æNM´f—&F§‰×$h5{5û4û54ÉšMª&]“©ÉÒdkr4¹š_Ð5!Í]šCš»5÷hîÕܧ¹_3¬9¬ÑŒjÆ4㚠ͤfJ3­™ÑÌjæ4óšÍ¢fI³¬YѬjÖ4ëš Í¦fKóæÍ‹š—4/k^Õ¼¦y]ó¦æmÍ»š÷4ïkŽj>Ô|¢ùTó™æsÍ—š¯4_k¾Õ|§ù^ó£æ'ÍÏš_4¿j~Ó;5Áïš?4Ç5'4'5gkÏÑž«=O{¾öíEÚ‹µ—h/Õ^¦ý‡öríÚ+µWi¯Ö^£½V{özí Úµ7ioÖÞ¢½U{›övíÚ;µQÚhí.mŒ6V§×&hµ»µ{´{µû´ûµ´IÚdmŠ6U›¦M×fh3µYÚlmŽ6W›§Í×jZ¤¶H‹Ò¢µm±«Åk Ú-QKÒ’µ¥ZжL[®¥j+´•Zš–®eh™Ú*-K[­­ÑÖjŸdk9Z®–§åkÚ:­P[¯iÅÚm£V¢•j›´ÍÚm«¶MÛ®íÐvj»´ÝÚmŸ¶_; ÔijeZ@+×*´J-¨…´*­Z«Óêµ­QkÒšµ-¬µiíZ‡Ö©uiÝZÖ«õiýÚ€6¨ iïÒÒÞ­½G{¯ö>íýÚaíaíˆvT;¦×Nh'µSÚiíŒvV;§×.hµKÚeíŠvU»¦]×nh7µ[Ú´žšà!íÃÚG´jÓ>®}Bû¤ö)íÓÚg´ÏjŸÓ>¯}A{Dû¢ö%íËÚW´¯j_Ó¾®}Cû¦ö-íÛÚw´ïjßÓ¾¯=ªý@û¡ö#íÇÚO´Ÿj?Ó~®ýBû¥ö+í×Úo´ßj¿Ó~¯ýAû£ö'íÏÚ_´¿jÓÓþ®ýC{\{B{R{–îlÝ9ºsuçéÎ×] »Hw±îÝ¥ºËtÿÐ]®»Bw¥î*ÝÕºkt×ê®Ó]¯»Aw£î&Ýͺ[t·ênÓÝ®»Cw§.J­Û¥;~2F«‹×%èu»u{t{uûtûutIºd]Š.U—¦K×eè2uYºl]Ž.W—§Ë×è uRW¤CéÐ:Œ®X‡ÕátxAW¢#êH:²®TGÑ•éÊuT]…®RGÓÑu SW¥céªu5ºZ[ÇÑqu<_'ÐÕéêu"X× kÔIuMºf]‹®Uצk×uè:u]ºn]®W×§ë× èuCºƒ:™ÐÉu Rê S¨tjF§ÕétzAgÔ™tfEë¬:›Î®sèœ:—έóè¼:ŸÎ¯ 肺1Ý´nU÷˜îyÝ纋õ·ë³ôÙú}®>OŸ¯/Ðêú"=JÖcô8=A_¢'éÉúR=E_¦/×Sõzšž®gè™z–¾Z_£¯Õ³õ=_/Ð×é…úz½H/ÖKôR}“¾YߢoÕ·é;ôú.}·¾_? Ôéêez@¯Ð+õ^¥?~R­×é z£Þ¤7ë-zXoÕÛõ½SïÖ{ô^½Oï×ôA}H—þþný=ú{õ÷éï×ëëGô£ú1ý¸~B?©ŸÒOëgô³ú9ý¼~A¿¨_Ò/ëWô«ú5ýº~C¿©ßÒ? Pÿþaý#úGõé×?¡Rÿ”þiý3úgõÏéŸ×¿ ?¢Qÿ’þeý+úWõ¯é_׿¡Sÿ–þmý;úwõïéß×Õ ÿPÿ‘þcý'úOõŸé?סÿòÔ_é¿Ö£ÿVÿþ{ýúõ?éÖÿ¢ÿUÿ›þ˜þwýúãúú“ú³ gÎ1œk8Ïp¾áÃ…†‹ .1\j¸ÌðÃå†+ W®2\m¸Æp­á:Ãõ† 7n2Ül¸Åp«áNC™¡Ü@7° u‘Alh0H M†fC«¡ÍÐcè5ôú †AÃá AfÈ 2¨ ƒÞ`0 &ƒÙ¬»Áap\·Ácð|¿!`î2?yÈpá^Ã}†û ÆÆèaÌ0n˜0L¦ 3†âaÙ°jX7l0ãýÆaãaãˆqÜ8aœ2NgsÆyã‚qѸd\6®×ŒëÆ ã¦qËø€ñÁSe|ÚøŒñ9ãóÆŒGŒ/_2¾l|Åøªñ5ãëÆ7Œoß2¾m|Çø®ñ=ãûƣƌ?2~lüÄø©ñ3ãçÆ/Œ_¿2~müÆø­ñ;ã÷ÆŒ?2þlüÅø«ñ7ã1ãïÆ?ŒÇ'Œ'g™Î6c:×tžé|Ó¦ M™.6]bºÔt™é¦ËMW˜®4]eºÚtéZÓu¦ëM7˜n4ÝdºÙt‹éVÓm¦ÛMw˜î4E™¢M»L§>MM±¦8S¼)Á”hÚmÚcÚkÚgÚo:`J2%›RL©¦4Sº)ÔiÊ2e›rL¹¦·|aùÒò•åkË7–o-ßY¾·ü`ùÑò“ågË/–_-¿YŽY~·üa9n9a9i9 >>>>>¾¾¾¾¾¾¾ þ|9||%||5| |-||=||#||3| |+||;||'GûàøøÉX8އàDx7¼Þ ïƒ÷Ãà$8NSá48΀3á,8Îsá<8.€ aŒ„‹`Œ†1p1Œ…q0&À%0&Ád¸¦Àep9L…+àJ˜ÓaÌ„«`\ ×Àµ0æÀ\˜óa\ ázX‹á¸–ÀR¸ n†[àV¸ n‡;á.¸î{á>¸€á!ø ,ƒX+`% žš‚U°ÖÀZXëal‚Ͱ†a+lƒí°vÂ.Ø {`/ìƒýpÂ!ø.ø|7||/||?< †GàQx ‡'á)xžgá9x^€á%x^Wá5xÞ€7á-øøAø!øaøøQø1ø øIø)øiøøYø9øyøøü"üü2ü ü*üü:üü&üü6üü.üü>|þþþþþþôÔŸÁŸÃ_À_Â_Á_ÃßÀßÂßÁßÃ?À?Â?Á?ÿÀ¿Â¿ÁÇàßá?àãð ø$|–õlë9Ös­çYÏ·^`½Ðz‘õbë%ÖK­—Yÿa½Üz…õJëUÖ«­×X¯µ^g½ÞzƒõFëMÖ›­·XoµÞf½Ýz‡õNk”5ÚºËcµÆYã­ ÖDënëë^ë>ë~ëk’5ÙšbMµ¦YÓ­ÖLk–5Ûšc͵æYó­…V„i-²¢¬h+ÆZlÅZqV¼õøI‚µÄJ´’¬dk©•b-³–[©Ö k¥•f¥[V¦µÊʲV[k¬µV¶•cåZyV¾U`­³ ­õV‘Ulm´J¬Rk“µÙÚbmµ¶YÛ­ÖNk—µÛÚcíµöYû­ÖAëõ Uf¬r«Âª´‚VȪ²ª­«Öª³ê­«Ñj¶Z¬°ÕjµYíV‡ÕiuYÝVÕkõYýÖ€5h Yï²²Þm½Çz¯õ>ëýÖaëaëˆuôÔcÖqë„uÒ:e¶ÎXg­sÖyë‚uѺd]¶®XW­kÖuë†uÓºe}Àú õ!ëÃÖG¬Z³>n}Âú”õië3Ög­ÏYŸ·¾`=b}Ñú’õeë«Ö׬¯[ß°¾i}Ëú¶õë»Ö÷¬ï[Z?°~hýÈú±õë§ÖϬŸ[¿°~iýÊúµõë·Öï¬ß[°þhýÉú³õë¯Ö߬Ǭ¿[ÿ°·ž°ž´že;ÛvŽí\Ûy¶ómØ.´]d»Øv‰íRÛe¶ØŽŸ¼Üv…íJÛU¶«mר®µ]g»ÞvƒíFÛM¶›m·ØnµÝf»Ýv‡íN[”-Ú¶Ëc‹µÅÙâm ¶DÛnÛÛ^Û>Û~Û[’-Ù–bKµ¥ÙÒm¶L[–-Û–c˵åÙòm…6„ i+²¡lhÆVlÃÚp6¼`+±m$ÙVj£ØÊlå6ª­ÂVi£Ùè6†i«²±lÕ¶[­mãØ¸6žoØêlB[½MdÛl›ÔÖdk>5A‹­ÕÖfk·uØ:m]¶n[­×Ögë· ØmC¶ƒ6™ °Ém ›Òf±9l.Ûc¶çl/Ú^²½aûØö»íVûöx{ª=ߎ²ãì%öJ{•co²wØ;íÝö{¯½ÏÞo°Ú‡ì2;`—Ûv¥´Cv•]mרµv]o7Øv“Ýl·Øa»Õn³Ûí»Óî²»í»×î³ûí{вße?d¿Û~ý^û}öûíÃöÃöûñ“£ö1û¸}Â>iŸ²OÛgì³ö9û¼}Á¾h_²/ÛWì«ö5ûº}þiß²?`Ðþýaû#öGíÙ·?aÒþ”ýiû3ögíÏÙŸ·¿`?bÑþ’ýeû+öWí¯Ù_·¿aÓþ–ýmû;öwíïÙß·µ`ÿÐþ‘ýcû'ö/í'í:®qÜè¸Åq»ãNÇ.GŒ#Öçˆw$8{{ûIŽLG–#Û‘ã(p (ÁAv”:Ê媃æ ;ŽŸd8˜Ž*Gµ£ÆQëà8øŽ:‡ÐÑè:šÍŽG«£ÝÑãèuô9úŽAÇã Cær‡Â¡t¨‡Ö¡wì°:ì‡Ããð:üŽ€#è9îrrÜí¸Çq¯ã>ǰã°cÄ1êsŒ;&“ŽiÇŒcÎ1ïXt,9V«ŽMÇƒŽ‡;žt<åxÞñ‚ãEÇKŽW¯:^s¼îxÃñ¦ã-ÇÛŽwï:Þwu|àøÐñ‘ãcÇ'Ž/NMð¥ã+Ç׎oß9¾wüèøÉñ«ã˜ãwǎ㎓Žsœç:Ïw^â¼Ôy™óJçUΫ×:¯sÞà¼Ñy“ófç-ÎÛœw8ïtF9£»œ1ÎXgœ3Þ™àLtîqîuîwp&;SiÎtg†3Ó™ãÌuæ9ó…N„é,r¢œh'ÆYìÄ:qN¼“à,q$'ÙYê¤8ËœÎJ'ÝÉpV9«5N¶“ï8…Îz§ÈÙàltJœRg“³ÙÙâlu?Ùæìtv;{œ½Î>g¿sÐ9ä<è”9§Ü©p*SåT;5N­Sï4:MN³Óê´;N§Óíô8½NŸÓï 8ƒÎ»œ‡œ÷8ïuÞç¼ß9ì<ìqŽ9'œSÎiç¬sÞ¹à\t.9—+ÎUçšsݹáÜtn9p>è|Èù°óç£ÎÇœ;Ÿp>é|Êù´óç³ÎçœÏ;_pq¾è|Éù²óç«Îל¯;ßp¾é|Ëù¶óç»Î÷œï;:?85Á‡ÎœŸ:¿v~ãüÖùó{çÎ_œ¿:ssþîüÃyÜyÂyÒy–ël×9®s]ç¹Îw]àºÐu‘ëb×%®K]—¹þáºÜu…ëJ×U®«]׸®u]çºÞuƒëF×M®›]·¸nuÝæºÝu‡ëNW”+ÚµËãŠuŹâ] ®D×n××^×>×~×W’+Ù•âJu¥¹Ò]®LW–+Û•ãÊuå¹ò]®BÂ…t¹P.´ ã*va]8ÞEp•¸ˆ.’ëøI²«ÔEq•¹Ê]TW…«ÒEsÑ] ÓUåb¹ª]5®ZÛÅqq]<ß%pÕ¹„®z—È%v5¸]—ÔÕäjvµ¸Z]m®vW‡Kç2º`—ÝåvÝívv¸F]c®qׄkÒ5åšv͸f]s®yׂkѵäZv­¸V]k®u׆kÓµåzÀõ ë!×îG\ºs=îzÂõ¤ë)×Ó®g\Ϲžw½äzÅõªëM×[®·]ï¹Þwu}àúðÔ¹>v}æúÜõ…ëK×W®¯]߸¾u}çúÞõƒëG×O®Ÿ]¿¸~uýæ:æúÝõ‡ë¸ë„ë¤ë,÷ÙîsÜçºÏsŸï¾À}¡û"÷ÅîKÜ—º/s_î¾Â}•ûj÷5îkÝ×¹¯wßà¾Ñ}“ûf÷-î[Ý·¹owßá¾ÓåŽvïrǸcÝqîxw‚;ѽ۽ǽ׽Ï}ÀäNv§¸SÝiîtw†;ÓåÎvç¸sÝyî|w»Ðp#ÝEn”íÆ¸‹ÝX7ÎwŸúW…»ÄMt“Üdw©›â.s—»©nš›îf¸™î*7Ë]í®q׺ÙnŽ›ëæ¹n¡»ÝÝãîu÷»‡Ür·Â­qëÝF·ÇíuûÜ~wÀt‡Üw¹¹ïvßã¾Ï}¿û°{Ä=ês»'Ü“î)÷´{Æ=ëžsϻ܋î%÷²{Žê^s¯»7Ü›î-÷îݹv?â~Ôý˜ûq÷î'ÝO¹Ÿv?ã~Öýœûy÷ î#îÝ/¹_v¿â~ÕýÚ© ^w¿á~Óý–ûm÷;îwÝï¹ßwuàþÐý‘ûc÷'îOÝŸ¹?wáþÒý•ûk÷7îoÝß¹¿wÿàþÑý“ûg÷/î_Ý¿¹¹wÿá>î>á>é>Ës¶çϹžó<ç{.ð\è¹Ès±çÏ¥žË<ÿð\î¹Âs¥ç*ÏÕžk<×z®ó\ï¹Ás£ç&ÏÍž[<·znóÜî¹Ãs§'ÊíÙå‰ñÄzâ<ñžO¢g·gg¯gŸg¿ç€'É“ìIñ¤zÒ<éž O¦'Ësüd¶'Ç“ëÉóä{ <…„é)ò ó|îùÒóµç[Ïwžï=?x~ôüäùÙó‹çWÏ1Ïžãžž“ž³¼g{Ïñžç=ß{÷BïÅÞK¼—z/óþÃ{¹÷JïUÞ«½×z¯ó^ï½Á{£÷&ïÍÞ[¼·zoóÞî½ÓåöÆxc½qÞxo‚7ѻۻǻ׻ϻߛäMö¦zÓ¼éÞ o¦7Ë›íÍñæ{ ¼…^„·ØKð–x‰^²—â-÷R½•^š—îex™Þ*ïñ“,oµ·Æ[ëe{9^®—çå{Þ:¯Ð[ïyÅÞo£Wâ•z›¼ÍÞo«·ÍÛîíðvz»¼ÝÞo¯·ÏÛïðz‡¼½2/à•{^¥ôB^•WíÕxµ^Wï5x^“×ìµxa¯ÕkóÚ½¯Óëòº½¯×ëóú½oÐòÞå=ä½Û{÷^ï}Þû½ÃÞÃÞï¨wÌ;îðNz§¼ÓÞï¬wÎ;ï]ð.z—¼ËÞ•S¬z×¼ëÞ ï¦wËû€÷AïCÞ‡½xõ>æ}Üû„÷IïSÞ§½ÏxŸõ>ç}Þû‚÷ˆ÷EïKÞ—½¯x_õ¾æ}Ýû†÷Mï[Þ·½ïxßõ¾ç}ß{Ôû÷CïGÞ½Ÿx?õ~æýÜû…÷KïWÞ¯½ßx¿õ~çýÞûƒ÷GïOÞŸ½¿xõþæ=æýÝû‡÷¸÷„÷¤÷,ßÙ¾s|çúÎóï»Àw¡ï"ßžK|—ú.óýÃw¹ï ß•¾«|Wû®ñ]ë»Îw½ïß¾›|7ûŽŸ¼Åw«ï6ßí¾;|wú¢|Ѿ]¾_¬/ÎïKð%úvûöøöúöùöûø’|ɾ_ª/Í—îËðeú²|Ù¾_®/Ï—ï+ðú>¤¯È‡ò¡}_±ëÃùð>‚¯ÄGô‘|d_©â+ó•û¨¾ _¥æ£û>¦¯ÊÇòUûj|µ>¶ããúx>¾Oà«ó }õ>‘Oìkð5ú$>©¯É×ìkñµúÚ|í¾_§¯Ë×íëñõúúNMÐïô ùd>…OéÓø´>½Ïä³ú>§Ïåsûü¾ߘoÒ·ìÛðmú¶|øô=î{Â÷‚ïˆï ß›¾÷|ïû>ð}èûÈ÷±ïß§¾Ï|Ÿû¾ð}éûÊ÷µïß·¾ï|ßû~ðýèûÉ÷³ï߯¾ß|Ç|¿ûþð÷ðôå?ÛŽÿ\ÿyþóýø/ô_ä¿Ø‰ÿRÿeþø/÷_á¿Ò•ÿjÿ5þký×ù¯÷ßà¿Ñ“ÿfÿ-þ[ý·ùo÷ßá¿Óå?~2Ú¿ËãõÇùãý þDÿnÿÿ^ÿ>ÿ~ÿ’?ÙŸâOõ§ùÓýþL–?ÛŸãÏõçùóýþB?ÂôùQ~´ã/öcý8?ÞOð—ø‰~’Ÿì/õSüeþr?Õ_á¯ôÓüt?ÃÏôWùYþj¿ÖÏösü\?ÏÏ÷ üu~¡¿Þ/ò‹ý þF¿Ä/õ7ù›ý-þV›¿Ýßáïôwù»ý=þ^Ÿ¿ß?àôùúe~àÔr¿Â¯ôƒ~ȯò«ý¿Ö¯óëý¿Ñoò›ý?ì·úm~»ßáwú]~·ßã÷ú}~¿?àúCþ»ü‡üwûïñßë¿Ï¿ØØ?âõùÇýþIÿ”Ú?ãŸõÏùçý þEÿ’Ù¿â_õ¯ù×ýþMÿ–ÿÿƒþ‡üûñ?êÌÿ¸ÿ ÿ“þ§üOûŸñ?ëÎÿ¼ÿÿÿ‹þ—ü/û_ñ¿êÍÿºÿ ÿ›þ·üoûßñ¿ëÏÿþ© Žú?ðèÿÈÿ±ÿÿ§þÏüŸû¿ðéÿÊÿµÿÿ·þïüßûðÿèÿÉÿ³ÿÿ¯þßüÇü¿ûÿð÷ŸðŸôŸ8;pNàÜÀyó. \¸8pIàÒÀe.\¸2pUàêÀ5k׮ܸ1pSàæÀ-[·nÄâûI´@n /€”@y€¨ÐÌ@M€à¸^ .Ðh´:®@w 'Ðè ôƒYàøI  (` hÚ€>`¦€9` Øö€#à ¸î€'à ø@(pWàPàîÀ={÷†‡#ÑÀX`<0˜ L¦3ÙÀ|`!°X¬Ö›­À <x,ðxàÉÀS§ÏŽ^ ¼x%ðjàõÀwï>|ø8ðià‹À—¯_¾ |ø>ðCàÇÀOŸ¿~  œ œ<;xNðÜàyÁóƒÇO^¼0xQðâà%ÁË‚W¯ ^¼6x]ðúàÁ›ƒ·o Þ¼=xG0*¸+Œ ÆムÁÄàîàžà¾àþ`R09˜L ¦ÓƒÁ¬`N0/XD‘Á¢ *ˆ ±A\$K‚Ä )H–˃Ô`E°2H ÒƒŒ 3Xd«ƒ5ÁÚ ;È rƒ¼ ?(Ö…Áú ((6ƒ’ 4Øl¶[ƒmÁö`G°3Øìöœš 7ØìƒCA (‚Æ )hZ‚pдíAGÐt}A0¼+x(xwðžà½Á½¿õþfÿí“ß¾ûí²cÿ8vù±+Ž]uìšc×»ñØÇî<ul×±˜cñÇŽ%ûû·@þïõ¿×ÿ^ÿ_X-Ý—ÝŽ8qÖY_÷D*é‹ôóþHEƒ‘~<©@éQ RŽ"Òw”‘VC‘¾¡Š”¡‰ôm¤úH"¥˜"}Ö)ŽôIk¤8{¤:"E»"}Ð)Âé†/Ò¼@¤+ÁH³îŠtáP¤i÷D:so¤I÷_vû=#gUpªwüçóT~êþ÷~:s{èÔmÄÖYgɆOÕqÖYûŸj謳¾=Ý™‘H;F#Í‹ô×Ó]t`"Ò‚ÉHÏšŠôÁÓUNGZ<éE³‘>yºú¹HÉó‘^¹é‘Óµ-FJ[ŠôÆåHß8]ßJ¤µ«‘Þ¹éÑÓ½g=RáF¤ ›‘~~ºc[‘6=iÒƒ‘~ºsEÚõp¤YDzìt×tè±HGzΑ>|ºÐ“‘➊ô’§#}útÏDJy6Ò«Ÿ‹ô¥Óu<)ã…Ho>é[§x1RÎK‘F¿釧{ß+‘Š^t÷k‘~yº¯GÚòF¤)oFúãé.¼iÏÛ‘æ¼é§»ñn¤²÷"-z?ÒóŽFúèéª?ˆ”ða¤—}é³§kþ8ÒòO"½öÓH_ ·ôÌûWuòÔ’DÅo÷ÌâG!þ²åž»NþŸZȨÞ“ð×Û q 9§¶ìMØýçö¤„ý§¯z|ZBÊ©[Ù Q 'ÿÛûOûÄÿ7Iü8æß×úp¤Ã;[öýOãÌJþ?ñØÿï¬]§¦ØsêràÔ%õÔ%ýÔ%ãÔ%óÔ%+auø¿~ôÖsÿÿŸVÜ©÷klbù_ÌT4·+.&.6...>.!.1nwÜž¸½qûâöLjKŠKŽ;y2%.5.-.=.#.3.+îïG@ÆÅ¡âÐq˜¸â8l.Gˆ+‰#Æ‘âÈq¥q”¸²Sû—ÇQã*â*ãhqô8F\|üõª£â£ãwÅÇÄÇÆÇÅ'Ä'ÆïŽß¿7~_üþøñIñÉñ)ñ©ñiñéññ™ñYñÙñ9ñ¹ñyñùññ…ñˆxd|Y|y<5¾"¾2žψgÆWųâ«ãkâkãÙñœxn~%¨á‘»vGí=u÷GØþìHŠJþ§ÏÌð¾ùT9y²ñÔ6ATÝ©?‹ÿrî{£„§¶`OoÁýÇŸŠôßñäIæáÿê¬ýß½Z£Û¢Û£;¢;£»¢»£{¢{£û¢û£¢wî¿ëСCwºçн‡î;tÿ¡áC‡úŸ9~Ô@T_ÔàöäøaÂpÉ0q˜ð·ó€ ŸÍÓ[Hž;âöFTmy¸tûzé©ûȧ®¡£0Qø(\TùöVê_ŽÅ‰bG¡¢Jþ²…þoÏ8íôÖÊ¿ÜKù/þ.1£*¶÷¬Žª‰*.ÿÛžUQ¬ûÿk >}ì²ÿpLÒÿÂsQ‡)QÌèªhVtutMtm4;šÍæEÿ»}1ÑÅÑØh\4>š]MŒ&E“£K£)ÑeÑåÑÔèŠèÊhZ4=š]]ˆFFE£¢ÑÑ1‰±‰q‰ñ‰ ‰‰‰»÷$îMÜ—¸?ñ@bRbrbJbjbZbzbFbfbVbvbNbnb^b~bAba""™X”ˆJD'b‹±‰¸D|"!±$‘˜HJ$'–&RËË©‰‰•‰´Dz"#‘™X•ÈJ¬N¬I¬Md'r¹‰¼D~¢ ±.Q˜XŸ(J'6$6&J¥‰M‰Í‰;óV WÓ†éÃŒaæpÕ0k¸z¸f¸v˜=Ìæó†ùÂáºaápý°hX<Ü0Ü8,–7 7· ·· ·w ww wÿïžáÞá¾áþááÁá¡aÙ00,V +‡ÁahXuúqêaͰöߣ+ªó¿ý‰÷DuÿË>ºaý¿¯#ªýô~-Ûm‹jýz7†Ã¦aópsTÓöþ–ÿG¿Iy§ž“µ+*áÔõĨºÃŽÃiQéQQ™QYQÙQ9Q¹QQ…QÖᡨ”¨Ô¨¼¨ü¿Ìe¶o¿^Äaäá¢Ã¨ÃèØÃұ‡qÿ“ŸºQ1Ñ1»bbbbcâbâcbcvÇì‰Ù³/f̘¤˜ä˜”˜Ô˜´˜ô˜Œ˜Ì˜¬˜ì˜œ˜Ü˜¼˜ü˜‚˜ÂD 2¦(ƒŽÁÄÇ`cp1øBLI 1†CŽ)¡Ä”Å”ÇPc*b*ch1ôF 3¦*†SSSÃŽáÄpcx1üAL]Œ0¦>F#ŽiˆiŒ‘ÄHcšbšcZbZcÚbÚcþþš¹‡y‡…‡ë·'ŠŽÝ››»;vOìÞØ}±ûcÄ&Å&ǦĦƦŦÇfÄfÆfÅfÇæÄæÆæÅæÇÄÆ"b‘±E±¨Xt,&¶8‹‹ÅÇbKb‰±¤XrliìÿUrjGlglWìÎë‰âæÆ$'`p øBBI1”@N(M $”%”'P**h ôF3¡*•PP“P›ÀNà$px üAB]‚0¡>A” N¨Û–^EÑâè†èÆhI´4ºéŸ>«þ_ý6þfá—üÇ9‰‡I‡ÉÛ÷–þ_r.(ÿæ(eÛÛÊS·[q8·<*°‹#†D _9ˆ+Å•F3rS©h †ÑžŠèåØx‚P ´`û“ÓË+Òöd–$2°À»3@>²´¬ˆÅïc®¬‚²j>…–(¸™¥Àþ4 ÀD–yŒr@DŠIßMî¦Q.³à£¨h@ š  @2# UWÎöÓªÈñ•9q™4D]\ŽÁbY@Ev5P’Z^ö, ˜‚¶â”ò¤ÒúR6ÀÙÖ-Ä„°o`ÔB b h+*/jÄ8 š€f hÝV/:€N`/6"_ô}@?0” µ·r(" eD1ª¨Ý…2 ¸"6ɨ#ï/9ÀPزDJDÊÈg43»H9…* 7?6‡SÞ—ÂÉÉ@«iibA ‰ÔZ@б­L=ÐÁ {&À ”àÄ Ë¶«QUžB à$ŒF1£+ŸTÜ’j­ùâ|;P£¦…Í F‘  ¥Pè%„þbeF¾4¬px*f c7Ö41ü@_Z²¢<,sH![ÞÌÀ¢ÂBÇÝ@WÙ=“ÖÆ¸èd å±òîî†2î0P“9eŽíÅ·;zÈòY`“ ó2c3k(g,*†ÚœËÍme¬«@>‰¼'m hg¬%ø.½¨›–>’ɽŒ-ààA` "û!`óa@œô D> Hð˜’Çâ’æÀ“ÀSÀÓÀ3€(=ììIÿ«’K&¥GÑ;èTê+@ñU€œóͬfr¨ƒŒ–Ìnú£Åä£ÃfHµƒQÃ|èg¼ÔaÂzöCZÊXIaC¤,/ŽùËŒX"Ÿ{™û™Ÿ{˜Ù„Ï€Ï/€DfíKà+àk 65ù 0ˆø ¾v3¿â™??Ḭ8’œ1G³ˆòß?DéqàPT„£ó%•œ¶±p)?À,’7›rPrô¶+‚•Ó°89^N—œöEJå9?9bŒ0Ó¤iÌi$ª!gÊ«äµL2v‘ÅÜqGØrzÉ`&GžÎäÊ3™»’¹Ôl&OŽ¡ðå̰E’ÌÊS˜‰ÈTf½\$oÏ«¥$f‰åü‚y>3â“4És˜ÍòÔ¤y«¼M^Äl—wü)–ôÊû¶Õ’Aù\&G33’y!S.Wȳӕòö‚ˆc‚#¶åPÊÕrS#×ÊEù:ùžT½Ü 7Ê1ÌÆ“¼˜™Ëd£Íò&’‰`ZäðŸæ‰Sî’»·å“ý•>y:Í/çcò <$¿KŽc†%”{äÌ<ó^ù}òûåyÌay sOñaùˆ|T>&—ã™òIù”|ZÞEŸ‘ï"ÍÊç¶Ý”Eù’|Y¾"Êû)ëòmC…È|`ÛQyx[RyLþ¸ü y&ô¤ü)ùÓróù³r,36u¨ð9ùóòäGäéY/Ê_’ ^–¿"Uþš¼'),¯¼)Kþ¶üù»ò÷äïËÊ?(ÿHþñŸËÛKWÚ×r2óy)3:ÂüVþœöY~ÜZI¿È•ÿ&?&ÿ}Ûi)c¦ãOÈÛÞ j[\)V`8þ/îJ©‚¢(S´––+¨ŠŠÓK93¬°T)0H–¢ZQ£¨U°WÁSðE‚ÆÜ*ê"…XQɬ`Ò™ ŠF…D!U°Jš‰ùÍê-ñÅ¿¥[ѳm¸ô+ƒ *“ÁÚ¶\˜Ìˆæ* …JQ‡S+4ª.ÆÓ® ¬°nÛ.Õˆ°îâÚö]¼ ŸÂ¯(‚ŠÐ?9/ÊÊÅèiïeR1¥˜VÌ(z3v1³ŠÝ4Š •^9§À•ò²ç%… jQ±¤XV”g¬(V(R³…¹¦XWl(RÓ7é[ŠN[11(U4âS<®Øƒ{Bñ¤¢$iOv/’Ç|J‘‡HÉ~ZÁÈ.¡ô$ ŠÙ‚týEO™0¯–ð¬â9E~žYÏ 3Uè°1S‘•{Iñ²‚›Â¬xEñªâ5ÅëŠ$T؜ᢢ«Ø¸·i”·‰˜wï*ÞSTe¿¯ØUuT‘XSi>Ú6iú™{3>U|¦hÌìM`Ö¥v|®è*L. "VMjÆskr ¾U|§ø^Á)þA‘GªúQ‘üIÑ–.B†›Î¼_•i¿ÖlŽ+N("òL ¥D‡õ™¬¼”Ìb%VÙœVhv  “¬,(.Uî+,É¥(Ë”„ôr%žE§P•Ù¤¼¤®Ôî\ë@N…RP‘‘ÞžNcPpa©†–IÁÒtåB†’©Ìe1UJ–’HÙŸ[½mØ4RȶŠÊ¬´4¶²3•£ä* ð<%_)PR0Ù†‰éGˆ”-Éb%“AÎnPæ§7*%Ê*†TÙ¤,¦E—À¥à‰iÄÂfeGv‹’ŨfÔg óˆ­Ê6e»²CÙ©ìRv—v+kIØe¯’’½+¿OÙ¯¬%( Åa!'ìãÈ•†BYË+9l¤T)ÕÊ¡$²¾@«ÜEèÈÓ)õJƒÒ¨LÎ ë9MYõsœJ—Ò­ô(y ¯²$ß§0øŒMç.åæï¢N#lê;ªÎä¶«‡œQ&á$IqÙÔ¼Vr>‹ŠœUÎm[;2úh{1ÌüV!kQ¹¤\Vö ¢ Hˆ•mƒg]¹¡ÜTn)Ø–x¬bÂÃÛÏî”°È󄲈ú¤’zJ¹§ìiå3Û:Oëye%âåå‹Jë%eráËÊW”¯*#VO:¬õ¼­|GY…}WùÞ¶ÚóòCåGÊOÛ=hVXïùò´ßó­ò;¥ˆIÇGŸ´ì2®bÇòH*OûMɤ„EŸ?”Ç•bæ eIm#3"ï À$ÆÜäd4HO%3 OYÄ©ùÍ…x0·”–€FDå)ÉŒ¸Ž¡÷U„ n)ža T©ìIŘN‹A%Œ¿›AD–ô‚>ÐÆâ"v£ô.pGN B÷lB4ª0%)¯Œº§$-ó~p< FgŽ€£`a ŒÂUÉ-”q° 3N‚S †5”¶†ª 1Ù‚)rÌ`§³si”|f%.iW¾0˜ÊÎ$”SçÀRFF9&§ ¤€8f²[ÒÓØ à"¸vR—ÁŠÔî¬0‡½ –æìÎëL_÷’úQí9ˆ"R[iSº"вÙ-EÃh°à$’ºËI™Höƒ š6Z3ñI´ŒŠÌGÀ½9ƒÄŠÂä’ŽâGÁ†ýÈ#§¦>>ÓÓž±ä–œ§@.ùi0¿,l!ØÏσi/€„Ô# 0+—ý"øø2ø ˆA¿ æmÿ^û\L!»ˆ\b¿æ`äˆôø6È@¿Øï‚¥ì÷ÀjZÄJúðO- Ï®bg?±9d6Ž]‹ ëIøŽœTØP¢| ³¿IìoAfÇRŠ«$åü ò©ˆ¬ŸAíË.ÈŽ/ ëJÈ6‘} ¤°?í,! »Ž„èlOç³ìƺøòrv”Xˆ‚XhWXÁŽxHÄÒ°ˆTÃ&@„²¨–Ÿ”YLe¡ºÄÎ`‘†²++ÈP)ÄfKJc“êÙeìâ²J6ƒÍdW³)PbnÄasÙå-d‹ØiT*TqZUªÏÊÀ4°«ð H4:,,Õö”Vm;KÕ•Mì¨ö´¶Äƒ²Rø;GÂ@HV$(Û‘—:JòÓ ¸¤FHI¡&¨jeÛØ-P+$eÿÕc³{ ^¨ê‡ÙP3»…Ÿ; Aíl@l9´+W± äxÎîT%ljØMQœ°Þ¤…tÐ[1IlÔÇ6B”B4ÝñaÓ©‡•CVÈÙ!4ÈÞÑúÙÑ/äƒüÛÊS'â<Ý á2ïî…¢Š3ð)ˆNö}ÐýPfB3zÙ]èÃÐ4 m;P»81œXN,eš‚Ò8â4”Ì™â p²É{8ÅøYhÚØÏ‘æ$å$ræ¡hêb/A©œehÊâDô¨}iÙœ° •RŠËÙ‚’8IêaèèQè1¨ò8ôô$ôÔ¶+õ,ôô<´—óÔ_qêf¿Õc^‚öq^†º©¯@œLΫÐkÐëÐЛšÃ¥¼½ ½åqÞ…Þƒð'bPpvsbðH·P gÇ£ú ÂPœÏ¡tÎP ùKUBâsŠ8_A%œ¯¡N!ÁùúÂp¾ƒ¾‡°çˆÈùÊåD«_¡ß Š’JÎ1ˆÆ)çD4«PX¡¢pÈya‰ªŒƒVeaa «Â©ðÛ*QÕ@!©Èªæ¢°NUÊÉç„…*ªª‚Cå„*:‡¦¢«*¦ªšÃàDĪ.ZRjJB¯Uå–°UU‡«ê'óT|•@ÅÌ©ûǪIÕ¬jQq95œ}åѪCÕ©âqºTÝ*‡Éas¶‡Ó§êW ¨UCªZŽL%à*¹J¡ê.ÞËh¬rð¥ Üv¯ê8êmûJ§BféU†m«ž#âD,ëiË©søœ¿kX…9õÄඉÕÀù«Š5¼íbªÆT㪠դjJÕ[²fUsªù?•¬Õªª‘³¦Zß¶²¶¶µ¬"\ÄËzT…ȘYOªžú‹›õ‚êˆêEU9úï~Ö›ª·TNØÐ’rÞU½§êÀ¢KÞW5q¹Œ¶òf†tTU•–µ>:mkµr>S%U|®úB(K +[ñäÎ×ÛÖV‡˜ö¶ú²óH휈ºUQÜÁùY•Rñ‹*×ÅéäüªúMµ#pP!NËXh5æO«›ö±$¢š¤&«c ;NVUÅdQÕ V}v5«†ÅH¯PWª«X45]ÍP3Ã~+*•Í +Z=¹5êLZ­šÃ [Z\5OÝ[ÀW Ô¹™uj k?1¥0=·‡N- +["µXÝ 6ª%jn^*±–EMj$32³éEÅRu“:ѬÎ&¶¨ëY\VN1ŸÕª±ÚÔݘˆÊÕÀêRw«Å,DaDç²êXaŸkP=¤–©³Óö"¢‹x, PËÕ µRM¢HYà¶Ü¥VkÔ5ˆ6–V­SëÕ†Ó†/↷¯vV9++{O…„eW—¶°ê2–S-Lw©Yu…ß«‰åS·²"ÊW/+ì|Rß­¾çOë+*{WRØûU©Ç·Í¯Ö¢)õ´›ÚÌ Û_=¬9uyq+,€u²ºY]¬Eõ’zˆµ¬n£æ¤„=°5õ kÇ{@ýà¶ SýˆºŸõè¶ö„º1ÂXLoî3êgÕ»ªÃZXlõ jñˆúEõKê² DÍËÛvXTõkêèê×· ±tlDg¼»-‰ÅWU þPý‘:®úcubuLò'êOÕÄô3ºXRaØûVýú{5»ìõÛÒXQÆ/ê_Õ¿m{c¨«O¨ä¶†Ö`4 Õ7ÁúJÚ#.XuIX*‰Ø`H⬷ãƒÕjØšÝÕg”°&âžê:ð¿±Â¨¬.Íê½ÕÝšÔ‚M?!¬†õköUh"n ‘k¥†€ÏFƒè´ –Ý_Qĺ*„”–Äö +3þG4± ÖŽ'V•Å*YÿÞ£±"ªXAÎWì̓š‡4kÑ<ªyLó¸æ ÷¤æ)ÍÓšg4ÏjžÓð¸ç5©ô4½ø#š5ØÂ°AÖ“óŠæUM^yX"{Có¦æ-ÍÛšw4ïjrxïiâÒÂ&YVòš5i>Ö|¢IËúTƒ. ûd_h¾ÔÔ3ãJy¤°S&er2¾Ñd—‡½²Üìï5?l›eÙ¼LÞÏšö´_4âb[毚FcYnÎošxÂ1ÍïšLRØ1C— )yÜŒLíŽ*V\›ÇBk™ea[LXLF7ebµÕ™8-^;PÈ¡´Åak,/W›œO'jIZ|íwL’NÕÖàÃöXQÒ¿êc;öØ~Ì _KD ´â¼Á’ˆB†Ê‰8d½uõ¸¾ºAR£6™^%*’hËpa—¬¿nG&#d”ä…u²Á²(a§¶ 1Êzµ1Â?²ºX!4¤•i‘™uƒu»„a³¬ »eñ¹L£ÕjQ(¶¶8,˜íž1̬Z›6qÌ¢…y„ËŒŸÊŽVRêY¢0IÐÆ•µ»ó÷ Ïøf„÷jËaãŒXQÎâóþ“s–,\Ôv•G¬³úªvˆ´¦­%Åíîæï¦ ÃúYŠpÇ?Ë>¤ÍîhÍ舆C‡´†‚f|XBË>§mɈhhÔß=415Mø†6]ø¦6wÆEËFd´lá SÖÑZI¹Â'¤å wŒ4qî_•4„®@¸ã”åÃRY&â_­²˜S_#x”0l–¡…;jYå¿sË„ºz]>jÇ.“lëehT‘ð¿̰avF0à “KA]G#¤SéÂ3ŽF–ÌjóñÕÌÒóžµôŒh†útx¡_GtaPÒÝ¥+ÒÝ­»GW"¬L¿WGÞ§»_W*ÖÖ±Ð#ºbá¨nL7®›ÐMêHÂ)Ý´nF7«›ÓÍët‹º%ݲnE·ª[Ó­ë6t›º-ݺuéÖ=¢{TW.|L÷¸î Ý“º§tOëžÑ=«{N÷¼îÝ]…*|Q÷’îeÝ+ºWu¯é^×½¡{S÷–îmÝ;ºwuïéÞ×Õ} ûP÷‘îcÝ'ºOuŸé>×}¡ûRW)üJ×ÃüZ÷Ž&üV÷î{ݺu?é~Öý¢£ Õý¦;¦û]÷‡î¸î„¡Gþé²ë±z*½FˆÓ× é…” ¼žF¦5—T Q 2=šBЗ¢JôD=[XW”ÍÆ—… ·èœÒ¢RýFDrk$4ÕQõÕ }gfåiÓMˆcê«ôè°ì–R7„®Ñ”¤Öí­¬Õ7Q„”$¶ž\Ò@âè¹ú†Þ¶ù–^W§O«ê«èÌl!-!£…TR—œN¨×‹RÛñ¤Â~J9!£®(7¬Â5è«K÷f7žÖáèa..§¾l ´<¯UŸYWƒkÓ·ë;ôÒ®äÚ’°‡ÉëÖ£óúÊ«QÕ…=ú^}Ÿ¾_Ÿ›QäŠP2ýþœè @/ß¶äÀmMN­×èk±Ð’­¾,[§×ësëpȰ.w òŒ/—WgÓÔE”9×ig®>­"£¨$©,/=,Î1 =/3¬Î ðwé÷ä‡å¹r }GŸ‹¢ ë™ø°@ןÁòòFõ©cz ~\ÏF§îxtÄÚ=ŽJªÕG—ï¸täÚ™ŽT¶éJk#:Ý^Â@9;µ¡Ž‹Ž*H!·¡i Åü”°YG-«uØF¢$¿†ÖërÈbI]%¢ØeWF;iÝŽd×AxA aŠŽè›ë^Ô£‹Zêþ®ÚõÔ‘Hoêóñ·í˜å ÜßNBýDßPÒZ|F¹ÛË(wñÜDnXºÛÍ=À kwÒ”õ{¸UYû¸û¹IÜœôdîý.•›Å=#à•—! Ütn#i(2  ™\´Q1¤p‹ 9ÜŒ$¬gÀ†4n‰¡·hÈæ’ dC.·Ô@Ùö暴 C·Ò@3Ð ÓPeÈã² Õ†C­mà04®gà†:ƒÐPo(, [yùÜB.©¨ÁИÑhè¡J R ¶óê2[¶ý¼vC‡¡ÓÐeèÞ–ô† ÎXz2‚‹ä¹Ë­OU”ð´«'.Ö´ݶ®W›f4•……=‹6à¸VƒÍPÌ=#ía¸Š[ÄõÉq/«Í n»{‡ wJ¸ÿ,ï¹î}oÚ0c˜5ô5Ïæ Tn97Öø– ˆêaͰnØ0l¶ xnXæ#s2P¸1<ú§Ñ÷”áiÃ3†g Üç e\÷yà †RîŽÚWÉ}Åðê¶Ý÷†áMÃ[†· ïÞ=­øÑ¸>7bõ ·µ>±1Šû$F©±ÉØll1¶ÛŒíÆc§±ËXSßmLH«¡…¿”²”Ô°ä“ÝNÇck ögéä°ë×”RÊ’sòÊÊq%¤$À(76—†?ÐUF>SšöþÊ“)„¼­1¾dO¦ÎGˆØ»JMF³±‡C¨ìç„À>ÓO´“‘½>í@ šÆJ·ý“ Ø“EóýÆÀ¶x ´9)ìpÎHQÜ]©a-p3ÄIFGcÆqc jÂÍíÍœÜög¶ÁÒÜ3†àŠqÕ¸‹›‹># ÆpÖ`,7l Æq“ÓþÕ|ö/¢ >+¿¸ý’1:åec9å#«•K§¢©¯ùÙ¥¼ˆ3x€þ¦Q‚¥&‡µÁ”´2^Dl£ì/¢ðÞ7ò ã¨ôôr^CúQ£5˜õqÖ‡F*¦4³‚·£Ry¸Œ^ú“0–tF%dð~0Òx„ôÂlj%oG(¤óþnF|ÀýHâ¯F ‹WÅÛKdäŽXÍûOZ` eªåý«ˆcÕ™¨eÑ$¡©Þ”/2‰M &Tm,cw!‰%)ï+Þi4ILRº¶ÉDOÞÏn6µ˜ZMù„6S2»Ý´/»Ã4XÞiŠÍjÌé2u›ªR{L½¦>Su:¦²ß4`4 ™h¨òÒ¨\™©½®­0ÉMu “€¤4uâ@dR™Ô&IkÒ™¤bõ¦®:ƒÉh2™’$f“Å›¬&›Énr˜œ&—Émò˜¼&ŸÉo ˜„uA“8;9=dÊ+ÕÕ׉ëÂÚáݦ{L¤òˆxØÀ%S†MûI‡Mue#¦Q!¥1yÌÔ–,Å„DTeuÒTÍ2M›fL5ÜY«|ΔZ’÷Óƒ&÷!ÓæGLšz©™7툊uÜgLûÊž5=gr£ÉÏ›^01½hzÉô²©žûŠ©(ýUÓk¦×Mo˜DÜÊÜ7Mo™Þ6½czׄ¦pxŒdAyØ`äòŽš>0áóˆ¸M|ÞdPr€ý‘écÓ'&¯€6@ŠC}júÌô¹ ÅÿÂô¥©œVÏûÊôµIÄûÆô­ K Ëž¤ð“”WÇ ŽˆÔŸM¿˜~55¡335ñž#ŠrÜÔ•#æÕf¦æî%–”xB^¯‘w„0#Íݼ"3ÊÜÁë¬hç¡Íó>L±¹¯²ƒHÁšqæfÞÜÆ;€Ì+ kŽQé½<¢™d&›“óZy”ìŠN-»‹Wj¦˜ËÌTl¹™zZ{láÑÍŒmó‘e®¦GIÃòc¯Ö+â•"$ÏÌ7 Ìuæt¤ÐLÉ­7‹Ì´B±™Ÿ!£J$f©¹É'Ý% ÛÑÒˆÙa¦åÆK;(æ.sŒ´6§;#ŠŸ’ÑJŒÏî6G—FaÃrdyaØŽlÍ0÷ñúyƒ¼^%:š?hFR‡Ì23`Žç£±r³ÂV%cJîd"?3G½­KêÌ |½¹*×`ÞÅ(“1üÝ|‹9Ž›ÛÈÅT«ÙfÎ˵›fT…Ó܇v™Ýæé%–ï1w¢¼æ}üÉ>s ß¿-Rå…Ìw™÷ò Ó™ïÞÖ)ï;íSбIüó¨y̼» ™4nž0Oš§ÌÓæöÜó¬yÎ,"ΛÌø‹ædþ’9¾t?ÙœH®É]1¯n›–æÆôº‚òRê¦9;y¿,eo:;[”±e~ÀÜXšÉÐLÌ}Èü°‹#P1?j~lÛ¾Ìâ7¥>yZÀL”>kî£ ¨Ï™Ÿ7¿`Þ-Íæóʘ_<íb¦ó_=mcÖRß4¿e~ÛüŽ™’•Ê;™|væûæ4~4âè¶™™ÃÿÈü±ùó§Ûvææ/Í_™¿6ó§ ùãiC3«â×?Íãæf„—†´äò‹,˜\”¥6.ëðÅÛÎe>o!XJ,D ÉB¶”ZöH)–2K¹…j,Šø—t +waXÁ¬Úv0k,µ–BrXÃäZx–<>ß’Q(°Ô¶1Å–K£Eb‘Zš,Í–K«¥ÍÒné°tZº,ÍÉÝ–KwEïi;sÐRÀú‹  Z Ë>©Ê¢¶h,Z‹Î¢·¶=ÍB~bÎ^©Ùb±äóáÒ5=¯Áÿ«±™‘sÈr·åËþŒ3ÖfeÄ‚JÚ/ ››ã– ˤ倉˜² ùsÎ2ÿ§Á¹bYµüÕàLÅœQ8³µœ,È‹µü¶Ü„†üÊ,5ʼn ½swÃ'–½ {>µìoØ×°ãx2ò¿²høÚRP´£y"ÓºÓ¢g|îÓS(©“fö–ð’Yê%߇IÄ’R‹Ié«K›%ÅØ¤¶4*."nRHas3«ðïê&«0ìnÆ`Óh8QV›€o.‹ÁÔ'e¤bpa‹“—Ö8»2Ãg&,r¶g0áòJJj^^DæÜ—ºcs¶”%ýÕ礕ó ±ôz8ƒ”‘‘]ȪÁñYtLDì,¯eV!°8&7!9¬w6`Â~g?&ž1<;àøäˆãIKHž è~˜Z›S&N€ÛPaÓ³;SwÐv¥·¤¤¡Åè}ˆŠZ%¡1¤®ÌVÀÕ 9I —’hµ”‚ze-¥²& „!˜‡럻ŠZò4p:5…‰Ki­[  ^;P©‡“² ð>\b‰fÖæîø iÅñô$ m…i©åÙ;Vhm !-iG †ÍÐâŽZEЏ¡…4rѽ0™MÜO¡¢SÒµ•™yÔܰ&“4 §`$iS´µ2¬Š6LüE­ª#…uQ iÇ’«kWàdR"ìŒæÓ×aVmqRZߎ쨣)uG‡Ÿ€‰ˆ–’'áÖ¼ÜÜÌôˆAÚ‰yÖFR~mMAØ"e×îh¤™i5ùa‘”S+E﨤ťïÀœô™´6£ŠÐ‘^Wû\\ù!Ì­%‡Š?‚1˜ˆUšVþÜVðw­”ZôœOÌJý¦æÿ3 ‹IUei?‚ښÚúڟࡆ°bšTÄ« K¦Z|ú1¸#åwXTûÜV6M#¦¨´em­ »¢\DåÒ›kE(.o­K‰£å7F›j+¬µ•äJk|ÚktOaAAØ-ÏßGŵ\ëþ žµ¶–om¨Ý‘G "«¤¶=Eœ_$¶6X‘ùgÒÎÚžÚ°Eº'%&-ì‘6¤Åáÿj’vÕ–•ôYùYýÖîÚ¾ÚˆN*³öÖFtÒ"¢ÒÊMjJû«QšS·£”š¬(a©´1¶F5Z­µa¯”o¯­JŠ*ïNvXÿn—¶Ô¬1%¿twåÁ´¿öŒaLkÒ&­qèˆb:XûïÓ!T:ŠýwÍ”ˆ|Ø:PÛ\ðˆ5¥xG5}òOדڅ Û¦9%Cµaß4†N_±¦ÐÏ(§™©;Î) –NK°±)â´£Ö=ôñT‚þÄÍÞÅþÔËþÌšš±OãØ_Ykaÿ…ÿ»€ÊLb±Æ³µVcw$ÔvtcXCX¤Ô’ˆFº›]lKdcmÈ”ÿy“”€ùg•t;ì’6þ)“¶Øª+ÎȤHܿڤ™t/;l“‚6Ȧ²µ¨mÛ>v[ÊoÃlA[È–Ù˜Ÿt—혷-y–œz¯í>Ûý¶ò¬hü°í°‘1bµÙÆmYi¶IÛ”m0mCaglý•³¶9[{æ¼mÁ¶h[²-ÛVl«¶5ÛºmöiÛ²=`{Ðö M~ØöˆíQÛžÊöäÇlÛž°¥JØIOÚÒ%OÙž¶=cËÌxÖVŠ|ÎÖ×™LyÞö‚­®òˆJ+¬Íù¼Ô—m{²^±eT¾jË—¾f+ÍxÝ–]RDyÃö¦í-ÛÛ¶wlïÚÞ³½oËϵ}fûÜö…m’#ùÒ–+©£eûÚ–'ùÆö­í;[¾DRü½íÛ¶Ÿl?Û~±ýjûÍVK>fÃåýnûÃV‰KLÇäÑê+ŽÛNØö—µR²²rÒsv¤½È޲': ÑvŒ½TlÇÚqv¼`G4”Øs’ ˆv’=A¶—Ú)ö܆2û`J¹½%Ê¥Ú+ì•vzy¹°f§Ûö¼¦½Ê⣪íXJ*µÆ^kgÛ9öœ4®‰j£óì|»À^g/«Ú±„z;¦AdÛÑ Ø†â†{£]b—Ú›ìõ´f{Ei‹½Õ^ÒÐf'ç¶oKµ];Vm>öj‰ a±6?TJh WJÂz­”´ã×â@;¹!lØ6‘ÕöÚ\½0õŒd[YœTÐGŽx¶õXØ_@i«¶XZĵE #²mM…×^ÖÖm Jw|Ûò†ᶉ°cÜÀ¤'Øw”ÛŠ†un© ìŽ3ÖmúŒv›˜¼ãݲëvÄÛʆÿó¶™ð¡Ö@o`GìÛOíŸÙ?·aÿÒÎhøÊþµÙðý[ûwöïí?Ø´çVüdïÃf–dýlÿÅ^Ôð«½:å7û1û@Ñïöž !±‰þ‡ý¸ý„á@:Š(GQ…ŠjlÇ C™G±£¢ëÀ9ðŽÌ’ÚF‚ƒ€(q$G?‰ì8Zê¨*¦œös+•ŽFš£Mw¤‘ÑɃ G'éЪ,µXquÙŽ¾\ŽƒëàPx¾#/pP+pai·$«ÞQ ÊËbG®¨ÁÑ„ RÐ)uiŽ<‘Ä!uà*wÞ6&£Ý‘/ê!Tgu;Ž.G¢ÛÑãh*+‰ÂFo^N¿c_ruþ€#¿%t‹†%¢¯—(R:ð%uI cOäP9²³Õ)Ò:ºI:A¤wF‡ÉÑE6Ÿö|¥•6 ‰Ù(‡£?;ކ9.‡ÛÁ!+<„ÈëÀˆ°"Ÿ#ËÏô;𢀣¦°\¶颻•¢ê¼Ò<–èŒ|ÿ¶\+qT‰ú’ÏhÀSÛð¬cÎÁHJE³xÅ8.nÞ±àXt”Š*D4Ñ’£5›!ê¤/;úÑ+ŽjѪcÍ!NYwl86e¢-Çi^X.*$‰zi;z­)8u<æxÜñĶ*ü´ƒ-zÆ$0EÏ:žÛ6†c*8’s+É"Š()ƒ*zÑQ#ÊB¼äè&¼ìH( ëÃÕň3±X1ˆwQÞû›CÜ&j }âøÔñ™ãsÇްGÌqE_;¾q|ëè-+ÉéÍ ÛÄ­YÍ¢M"‰¨%»œ(Å‘Û td%µŠZD?9ôŸÑ/ŽDÒ.ü¯Ž¬\V~ƒè·?-ãŽu˜'â‹êDééõ" ¶Q$%åï§£=¢¶ˆ;E$g©K´#—;©Û*1Í™ƒ¤;E"†3Õ’ÄtV9YÛFq­“íä8;D\'ÏÉwv‹Î:§Ð¹+;l‹ÿI-.Ç·:ÛœíN2ŠC":œÎ.g·³½¤ÇYCL§„c.¡ßÙ.ØÖŒÏXÆ rJòTÎ^QD4Ö9õNƒ³etÖ›œÝÙf§Å ;­ÎŽ$›ÓîdÐÃÊñÞ<—³sÆ:FÃÚqœ8´-ßý7óx~Ä-æ!FcÎq'ªpÂ9éœr‰èÙÓÎ~ÑŒsÖ9çœwƈ#2¹üŒ‡¼K¼áL¡¥Ó7ñâ-gfþ’‘Dƒ¢ˆŽ%þg™F É{Ë#FrŠxGINGœäÝi:sÓ>r~ìÜ#þÄù©ó3ççÎ/œ_:¿ú‹œüƒóGçOΟ¿8(aA9V6”‡RÊò^1q¹[–Œ³ÅaË8K¼£ï‡=ã>QX4N‡Mãˆh¼·0Yœ#»Æ±EÙø€˜æÂdÑ]ûÄ W55Mœ.ÎGœc¬ø¯Òq1#kÇIâ°wœ+nMúwæqž8¶2ìˆÛ\…â°}ÜéBŠ»\Ý®Vd«×•ësõ»\ùâA×Kæ\rW‘XáRº@äR¹Ô.KëB‰u®T±Þ•!6¸’s.“ËìBˆ-.ØeuÙ\v—ÃÕçt¹\nZ\,ö¸¼.ŸËï ¸‚®ë.×!×Ý®{\÷ºâû\÷o{Ëdñ¿—Y)s.œøß©Ëû3ÿ“»\"&Š#öò³Ûú2²ò×.ô׋®—\/oKÌ ñk.nÎë®7¶Mf¼øm×.ê;®w]ï¹*Ä;:sØfþÄESÄŸþi4—ŠÃJ3ûÏNs¹øïR3SŒK=ᢊϘÉ-¥5™$»Éÿª&w§RÝîÊ?ídš8¬'W‰#~r1"(ï+å¹ùn»Î-t×»En±»Á])ntW‹Yb‰[ênr7»[ܵâVw›»ÝÝáîtw¹»Ý=î2q¯»ÏÝïpº‡Ü27à®ËÝl1¥p+Ý r«Üj·Æ­uëÜz·Ámt›Üf·Å »­n›Ûîv¸n—Ûýœæ{·¥æáÿÛ­æÿu©9KNËÈEPvIÂfs&æïjsDLî§î˜É1¬'VÂ*ŽÈÉM…;vrœ$¬'ÇKvSÊÝÛ†G¦†åéz~•—åå×ñÃútªTÈߨSñ<¯Q¨Ó³…Þ\T½—ÏÏÇÄ ™Eô‘WÊË݇{[øUaºŸßɧæìÕ”LµÅK¦Q+‘Ùi•Œ²±:›Ò…¨Õ»qi)=Þ*TÄ®nâ‡õê~3?!³›ßÁÚV¬s2ÃŽu4Féíâ×`RŠA/6­£éj/ÑËËÖ}üA~"±¯óPõ^Trš´•߯7x{ø9Tq{Å?¬^sòÃîu¼ ,_Ç "öu{Ù.Ó›(ˆØÝ¸;­4èMìÔ…-ì´Œ¿jØmùÃÞhAXÄçì„U콂°‹=˜QKKLz÷ ">v”`ÖÛ”[CŠÆâ1a)»¹à,zS±{óóócK^,—²ìÝ#@å¬xs“ ˜dÁŽ¢Í¯ÜU¸éÍly3xsaO;_µiÅaS»8§qµ£²Ò;¶vTEX×Þ•3”¶ógŒíBRXÙîE‡íþR!>lmRßõ–•†½íTÁQo– [ &žq·ÉÄO½ˆtA2C@!æEæRÓ?÷¶ãâó±•{ñÑYAØä& Ðea—;§<,sïË ÛÜ9Õ¹QizDè&Ñ‚ÁÒBADê®Fˆ;Rv=aÇʦ£q¾ "N³±¤€èC ö¥‡ål&µÔW,ØÑ³{Ëùi¾´Ü°¡Ý„§û Ò"޶$—å#•Uû¤Äté¿xÚØQ;¡Bì+TÒ‹ ¾Ø|Œ ¬k ©R^ЃÛ‚°²]G ;ÛCX|F‡o "5….ˆˆÛEäIÐëË#÷ùXYý¾M0è#†õmÀG¦Ê}TXá}OåSokÜ8 C óé}ŸÑgò™}ìC“JVŸÍg÷9|‚JÓ7”ãò KÝ>¯°Òëóùü¾rAÀô…|wùùîöÝã»×wŸï~ß°"8ìñ‘£¾1߸oÂ7é›òMûf|³¾9ß¼oÁ·è[ò-ûêH» +¾UßšobÝ—O„õo\VÄÿ~È÷°¯^VñˆïQßcÛø“¾§|,ÁÓ¾g|Ïúš‘Ïùž÷‰a!¼¾üEßK>¶àeGðŠïUßîÒ×|¯o»á5%oùªe‚·}u‚w|Õ8¾à]ß{¾z4Oð¾+8ºmФŠ;®87="‹é[\(øÆ·7÷[_9½”ØÓøO ;ã]ÙiœDc ª}Eµ‚_|%Eh¥èW_gr ñ¯úøŽüMNß±¿›ÿ¬(ŽøßÜâ°Þ)8c€'Ep ¢¦¬Iðï,ðýèˆ.ìxà]‚ÁPQ“¿FÐìo´ø‡­~teXoüÝï+ÛÂÃ>¸Üß("Bx›òï!ÿ;%¼q“±6NQÄ oD´pò¯^x195b†÷ îñ· "nxŸ`Ø?(8ìü]'§FüðœÔnAØïô$˜ÿ,‰ç#v,qQÅM<ºîß{â褰(S6ÅwÕýUÉ{ß[÷WW<ªîï²ø #ùßëâ uÇü‰uqu;Æ8"€ Pt(`ñu»ëp|€( ¤9P ÊN»á•Z€`˜ª+P¨ Ôþ©ˆó‚@]@¨ˆÌbq !Ф۶xK`OݾºÖ@[ ýOe|oÝ_ñ¡€,äJ㪀:  ¨Ót}`ÝsXÿ;îœì` Hª;ãß÷/yr݃|î´B¾´í·är%-¨Õ@qzyîZ`=°Ø ˆ‘M[tAD'/¦? UPS $;N9²á‰m«ü@QFÚÓgÏèeÏž¼HK=HÁå"$/^ ”Њy¡)y5ðÚ¶eþfà­ÀÛwïÞ ¼8ø €‘ ‰U˜¼‚Å’CÉ> |@K*ù韊$H~êç/(IV 1DŒèßÊ‘ßp’vÐ  üø#p< Ì¡"NÚh±œX† ¢·Õò‚Bl05³•ðrqA"q0‡ÃKÿê˜S‚bRY°ñÌÅ™ÿ^4Ç—eåœQÍñ’°kNÔ¹%Q'ÉIffþ{ã<;ÿŒr1ΉaI‘ÎeÁ\\X;W•A0UAuPÔuAý¶€^&Ù1Щk”k ÖåíHèî 'è=í¡ƒ¡à]ÁRÉ¡`&>â¢ß¼?˜ƒò%••ÉáàHp48¶Ó&‚“Á©`¹„,™ÎgƒsÁ É|°R²\ â—‚ËÁ•àjp-¸L(Ýn·‚ VS >|$øhpoÙcÁǃOŸ ²pOŸ>¤I:ÉÏŸ >|!x$(!TI^ ¾|9øJðÕàkÁ׃LÉÁ7ƒo ’Þ¾|7ø^ðýàÑ ]òA!ù0øQðã @òIðÓàgÁσ_¿ ~ü:øM0÷mð»à÷Á‚? þü%økð· y,ø{ðàñà‰`µ„S†!CE!T„ŠCØ.„±$„PIˆ"…š+È¡Iiˆ* •‡¨¡ŠP1«2D ÑCŒ3Tb…ªC5¡ÚP­„ℸ!^ˆ„êBÂP}H‡B{“C’4Ôjµ„ZCm¡öPG¨3Ôêõ„zC}¡þÐ@h04’…€[")BÊ‚Bª:¤ iCºG¢ÅÑ !Æ2…Ì¡¼ÆýI–²†: ²²”Ó’zÓm¡T†=´·Äªá;C®;ä yC¾?´·X˜C¡P1&»ñ®Ð¡ÐÝ¡{B9÷†î ÝÊm!ÊFB»0£¡¶†±P z<”Ž&#&B“¡©P{=j&Ï„fCs¡ùPKCGÃBh14€_ -‡vaWB«¡µƒ8D^m„6C ] {Kë[¡BÝ † =z$ôh¨0£§á±PoÃ㡾†'BO†úž =z&ôlè¹Ðó¡BGB/†^ ½z%ÔÚðjèµÐë¡7Bo†Þ ½z'ônè½Ðû¡£¡ý¸FL ÷ÃÐG¡CRî'¡4z·™K¤~ú,ôyè‹Ð—¡¯B_‡Z¹­…-ÜòôoB߆¾ e&ú!ôcè§P;·ûsh ç—P÷×Ðo¡c¡ßC™Ù„Ê Ž‡N„#È‘tÑHMNq>j=‚)ÁŽàF:¹Ý\üa‘,M tq{*¨=Ün/·d„8ÒÇm@F†¸Q<,‚Þn^ÛHûHÇHçÈžÜÔŠ®‘‘Þ‘¾‘þ‘‘Á‘¡Ù0"QŒ$ñ”#àÈ4«FÔ#šíH2O7¢1ŒGL#æË<’Â³ŽØFì#ŽçˆkÄ=âñŽøFü#©¼(b`$ F‘£E£¨Qô(f´x;ŠÅFKFÓyÄQÒ(y´t”2:D)-%QG[©£¤ÊQÚ(§ž>ÊåÖ3G«FY£Õ£È‚šÑÚQö(g´¡ˆ;Êå ê£u£üzáhý¨hT<Ú0Ú8*$IFÓQÒѦQ^}f.­´y”‹×·Œ¶Ž¶ŠêÛG;F;êw¥tŽvvöŒ6Ô÷Ž ëûFûGFG‡F%õõ9xÙ(0*¨”ÖÕ'fÖ×+F•£à(4ªUjF›êµ£ºQý¨a´½Þ8*¦™FÍ£–QxTZom«·¶ÖÛG£ÎQN’kÔ=êõŽvÖûFý£Ñàhh1†+C¡Ç0cÅcØ1Ü~Œ0Ö†-à ¤âi¬ÙRO+£Œ•uÕw•”QÇ*Æ*Çhcô1Æs¬j,Z%bUՌՎ±Ç8cH:wŒ7ÖWß[Ï믌u×× Õ ÇëëÇêEcâ±J$;ˆAaÆÇ$cÒ±¦1)¶y¬e¬u¬ml—¨}¬c¬s¬k¬{¬g¬w¬o¬l`lplhL6ŒÉÇcÊ1p ‹©ÆbEê±xQwNO}ŒH3Ö‚Û׎éÆôc†1ã˜iÌÑ~z<‰/ÇŽáÆñã„ñ$QÉ8q|¯ˆ4ž&"—ŽSÆËÆËÇ©ãã•ã´qú8c|ˆ9ž,ªgW׌׎³Ç9ãÜñtQŠ(UÄç ÆëÆ…ãõã¢qñxÃxã¸d\:Þ4Þ<Þ2Þ:ž)joïïïïïïïï—ãòqŸr‡ÆUãêqÍx†H;®×Æã¦qó¸e/ͶŽïm±ïk±'7$âãl’sÜ5î÷Œ{Ç}ãþq9¹!0#&R…Åø´¢ Ôz3Q<ÀM¤6à'%ĉúJÒy¢t‚2Q6Q>A¨˜è­©œHk M¤7Ð'2̉ª Ö!+‰Ý‰¯žh!ÖLÔNôáÙœ îo‚?ÑLÔM ¨q%‰¸¬ý-EÉõYuÍD<•ž×€MÔ§‹'(hqzÃÄþ¦}¹’‰ÚzéĦ¦‰æ‰–‰Ö‰ÄÔ¶‰ö‰”¦Ž‰Î‰ä¦úü®‰¤¦Lr÷DÏDïDßD)¦b`bpbh¢If¥6µSdÀ„|B1¡œ'  ÕDE‘¨X=¡™ÐNìÍÔMè' Æ Ó„yÂ2‘ÖO4¦Z'lö‰þÜô&Ç„sÂ5ážðLT×{'|þ‰Œ¦ÀDpb~h1‰œ,šäµ¢&Ñ“˜I¡x_^Õ‚dµà&«[Š‘øIi¹€0Y2YÛBœLÆÔ´´–‘&9-Ĥ†|òdé$e²l²|’]În¡NHe [êZvs[x-¨´ŠÉÊI~KS%m’>É"–¤ä1&™“U“¢–úSÿQŠJaMFÓ²¨™{qÕ“5“ -µ“ìIÎ$w²»Œ7I¤±rÄ-üÉÜ ÁdÝdI8Y?W,šO6LF![šZ'¥---’ÉdAns‹t²i²y²e2ØÖÒ:Ù6Y™Ú>Ù1Ù9Ù5Y‘Ü=Ù3ÙÞÒ;Ù7ÙÑÒÕÂMëŸlm˜ìnœš”M“}-òÉžŤrœìl&U“êIÍä`‹v²·e e¨E7ÕªŸ4L'‘ä˜VÓä®Vód²¿¥†`™„'[ÓZ““‰ÖɸVÛ¤}2¾Õ1éœÜÛJ®LluMº'SqžIï¤o2ºÕ?¹§5¡5¶50œÜÝšDL!§Š¦PSè)ÌTñTbÒ¾Vìn ?E˜*™"Nh%M%·’§J§(SeSåSI­Ô©ý­S•S´)úTtcŠ9U5Åšªžª™ªJieOq¦¸S©­¼)þ”`ªnJ8U?%šO5g7L5NaÓ%Sô$f’tªiªyJZÑ2…NoªÈ'䯷´MµOÕfuLuN%´tMuO%$õL%¶ôNõM5‘ú§¦v· N Mɦ€)ù”bJ9NASª©=-ê)Í”vJ7¥Ÿ2L§LS橘bË©kÚ=í™öNû¦ýÓéàô 4® 4˜AÎÍ f”D5åg g¢›hÌÌ´x;S›MÁÍàg3%3ÄÒ y¦t†2S6S>CAeTÌTÎÐfb›r»šâšè3ŒæŒÕ–Z5Ú©ž©™©aÏÄ7Å4e—rf¸3 MÝE¼þŒ`¦nF8S?#šÏ4Ì4ÎHf¤3‰M»›šföÔ6ϴ̤·ÎcÛf:iøôö™”’Ž™Î™®™=MÝ3=3{H½3{›úfúgfg†f’*e3ûš€t—|F1£œg ÕŒzF3£ÑÍèg 3Æ,Ë4cž±ÌÀ3ÖÛŒ}Æ1ãœÙ•æšqÏxfö¢„­Þߌ&0œÉ"PËC3»iˆÙ¶fä,£ h•ßÞLÌØ“„šEÏbf‹g°³¸Ù )~6SJ˜-™%Î’f{É2Û ³¤EIxòlé,e¶l¶|–:›-­˜­œí*N-¤ÍÒg³yÒ s–RV5›HÏ‘æJY³¼²êÙB)BZ3‹–Öβg9³8)w¶XJ–Š*y³x)V0‹•Hëf…³bLý¬hV<[\Ü0Û8+Æ—W ¥ER”#•Ìö"¤³QiM³Í³-³­³¢ì¶YŠ´}¶c¶s¶k¶LÚ=KöÌ–J{g{È}³ý³%D)I:0;8;4+›f;K峊Yå,8 ͪfÕ³šYí¬nV?k˜-—¶!S¨%ÒLœqÖ4kžµÌ³ÖYÛ¬}¶9Ï1ëœuͺg[0žYï¬oÖ?˜ Άfsȹ¢9š5×œŽžÃÌ¥íK—Ïaçö'ãæ*¤ø9Â\É\#‰—Nœ«”R¥t)iŽ<×—^:ÇRæ˜Ò²¹jiù1™:W1W9G›£Ï1æ˜sUs]˜¦¼*i±!…5W=W3W;Ç’²ç8sÜ9Þ\#š?'˜Ã¤ÕÍ çêç:“Ds⹆9¶´ !Jkœ“ÌIçšæH˜æ¹–¹Ö¹)º°m®}®c®VÚ9×5×=×3×;×7×?707874'›æäsйX´rœƒæ8RÕœzN3§ÓÍq¥ú9¾Ô0gœ£#Msæ9l®ež³ÎÙæìs޹¬|çœkÎ=Ç“zæ¼s¾9ÿ\`.8šCÌ#ç‹æQóèy̼@Z<ÇÍãç ó%óÄyÒP;¸Ý¤Ý´Ý¬Ý¼Ý¢ý±Š¿µe»U»uûCk ]›vM”«1Ҷݮݾݡ=¨,câØîÔn¦iGàœÛ}p!ª¾8}u[kYh;¬‰siwmwkGáÜÛýpížíþ84ƒÃá°8;¯vx»w;¢Ý§Ý·C¶+£Ú ¸'ÖF.`¿vÿv¨º]Z Ó.­†mǵô‰8|{@; Gh'¶“ÚõõBôdíÉ8r{`{P{p{ .¤ý^h{X{x»ªaD»³vd{T{t{L{l{\{|{B{b{R{r{J{j{Z{ÎB1½=£=³=«=»=§=—۞מß^Ð^Ø^Ô^Ü^Ò^Ú^Ö^Þ^Ñ®Û!ï/ç¯×èp3q±vè™8Úéwxt¸êÞÒ4ì0ê0îu€;L:ôP¦f·-Í;<ì-:Œ”UuQ檖:¨» µ‡öV°Šu‡M‡mBS[Åe×a„R“µÐ±ï0@…Ù8t£;œ:@(H‡s‡¹ ´€ÒG‘@öfvò–(UsK¬ãs%—×·÷9kÔSϯx‡w¢Ã§Ã·ÃÞÀ…ì°B¹˜£nƒíP!²¨¿Ž`uÿt‡Š£'ÓF™ LQf({”®· Ûá£cl퀂¢üTQ¸u-|‡£e@‡Š,¡†‚ê;HäŽÀŽGöAÁ!nŠ¡a$€šfxGDåŒr³EÚ껢î";ää£:¼PÑZ1±q¨øŽ„ŽÄޤŽäŽ”ŽÔŽ´ŽôŽŒŽÌެŽìOTNGnÇ#Õ¼+38*¿£ £°ÃUÔ¡ WÜQÒQÚQÖQÞ!mXÑ¡Û©× èvêwt˜vz£Œ:euU­(ãNP'¸ó©êcU“N”†Q€™i§Y§y'…BYtZvZuZwÚtú£l;í:í;:-;ñ(§N4 ÒéÜ íÄ¡‚Œa¡V~(—N×N_”[§{§G§g§šª“\ƒÂ¢ ¦ÆfxY¯N Þé݉èôéôí$¢òò¨N¿NÿNt§›*¦“ŒÂvâ:ñ„Nb§Ÿ©“Üi`z[ÿŽE`gPgpgHghg*¬3¼SÚ/¢oÙŒŠêŒîŒéŒíŒëŒïLèLì4%u&w¦t¦v¦u¦wºz„£2:3;³:³;ÍÍnù9Ë©ØätævB­ó:ó; :ÃP…!¨¢ÎâÎ’ÎÒβÎòΊNÝ.½.@°K¿Ë Ë°Ë¨Ë¸ Ôî2é2í2ë2ïÒT°è²ì²ê’EZwÙtÙ:Øv=$ìºì»º»œºôìö.ç.h¬Ë¥ËµË׬íÖuàÞõ¹õç„û®mWÏ.¯.x—w¢Ë äòéòí »¼Á¨.¼©_—º Ó…íÂu){(šà»|Ìíºžž]Ä.R¹KžØ¥¥®@ð”•%uɤµì䃻” *oeYy EÂ#Å.%BhWX—*!¼+¢+²+ª+ºKÓÛuÏ,®KߥAHèJìJêÒ$$w¥t¥v¥u¥weteveuY›dwirºr»òºò»´ ]…]E]Å]%]¥]e]å]:„Š.Ýn½n@7°Û… ©ç£©ßýäbE„tvuw+@í¬AÝànEè#Y%¨I·i7Dˬ[ jÞmÑmÙ p´êV9Ý|ZwÛƒÔ¡ÊP›n ¨4жۮ۾ۡ[jÕ‚:v;u»šß±‡t[@»Í ÐnX·5Ô[ë!À¥[j5‡jC­U d Ú–zÐÏ5\»5UL¡nÝî݆P¨³‘G·g·W·Ž•.ÞíÝ †"º}º-¡¾ÝÈîÇæ(ª5†‚ ¶òVP;¿n[g¨+ô®©7Ô¿„BÑݘn='(¶;XVY µâºõ¡öP‚±›¾; ›ÐMìÖ‘ºÉÝÝZrAÝÒ6ÁÝ!ÝhhwX·4¼[Ã0¢ÛÙÕÝÓÛ px TV±2ºô€:BQP[h\w|7 šÐ}GÛšØíMêNîö„zASº¡©ÝiÝîPišÞÑÙÕÝÓÛ×ß]ÐÒÔW,ì.ê–"䃡ÅÝxhI7ZÚ EC±Ö>òeÝÆžÆ!ÐònhE·n^ èö¡ú==2Ú¨aLިǸÔî1é €’4} ú¦=ºf=æ==–=V=¶š¾P$Ôº%Aƒ ŠJ6=NÆphô¡Í-˜ ì g}vvvßڶǮǾǡDZǩÒR¿sîö(Ãä`Š0XKk[{Gg,ÌÜЫÞƒ×õîAôøôøö<!{P=~=~Ð'0ÿt¦Û£Ãõà{°Ð§°€U¡çŒØCê!÷öõ÷„ô¨Á`aôC{ÂzÂ{"z>‡)è>Ô{{‹ì‘‡á4”`ŸÛ¨Ã¢z4`÷€Ñ=1=Ö0MXlO\O|,¡GK-±'©ÇN;¹'X;¥'µ¬žÖ“ޓѓنeõÀ²{t`9=¹=y=&ò@X~ ì¶¼¬ §°§¨GVÜSÒSÚcih +ë)ï©èÑíÕëµ…yèªz½ú½½†½æ0 ˜Q¯q/¨Wî5é5íÕ‚™õšÁ¬LÍ{A0‹^Ë^«^ë^̨iøÄÜfÓk ³íµëµïuèuìuêÕƒAz{¡½†0(ÖëÒëÚëÖëÞëÑ{ßæ Œ`hìÙëÕ ïõîEôúôúö"{½a¨^¿^ÿ^t/¦ÛkÃõâ{zÝ`^B/±—ÔKî ì ê î éu‡…ö†õ†÷FôFöFõF÷ÆôÆöÆõ:Àâ{z{“z“{íSz`Ž0¬ª=,µ7­7½7£×Â0³÷±rVovoNono^¯,¿7HÝÝ+è-ì-êµT,î…ÀJzCt»>û>‡>Ç>§>< ÒçÜíƒõ¹ô¹ö¹õ¹÷yôyöyõÁû¼ûÜ}>}V†¾}²Õç×G° €aaþ}è>?¦ÃöùÀp}ø>´e@¡ØGês4FÃÈ}}¾° ¾à>$ oÒç í ë3“ ï‹è‹ì‹ê‹î‹éSÖíÓÐÄÁâúâûȰ„> KìKêKîKéKíC¤õ¥÷eô…À2û²ú²ûrúrûòúòû ú ûŠúŠûn»”ô•öɸ”õ•÷Uôéöëõúýúýý†ýFýÆý0P?¸ß¤ß´4ë˜÷[ô[ö»ÛYõ[÷+™ÛôÛöÛõÛ÷‡ÁúMåûú!ýÎýÐ~X¿K¿k¿[¿¾+ؽߣ߳߫ÞïÝè÷é÷íGökÃBaá0i—²ær¨~¿~ÿ~t?¦ÿ‘ ¶×ïè¿ë¢¬…1&ôûIýäþÀþ þàþþÐþ°þðþ[.ý‘ýw\¢ú£ûcúcûï»ÄõÇ÷'ô'ö'õî’ÜŸÒŸÚÏ%­?½?£?³?«?»?§?·?¯ÿ±K~¿©mAaQq¿‚Ë—'.%ý¥ýNºeýåýýºz·ä”]r.ÀýƒÃ£ãЀ¼ xÀdÀtÀlÀ|ÀbÀrÀjÀzÀfÀvக’‹Ý€ý€Ã€ã€ÓdÀyà© t6à2 ëâ: eé6à>à1 èâVsñð€x |T]|T\¨¿ÿôf; á‚À ˆ¤ò\+p h x d tÀQ Pw‰P7ˆˆˆˆˆˆÐt‰HHHHHHp2MHÈÈx ’5=3;7?P0P8P4PP1 ;¨7· õµ\  Aƒ:.àA“AÓA³AóA‹AËA«AëA›AÛAi}»AûA‡AÇA=§AÈ ó t6è2è:è6è>è1è9è5ôD ú j»øêº Qƒ~ƒþƒèAÌ v7ˆ $ IƒäAu»ÀÁ ÁàA€KÈ`è`Ø`ø`Ä`ä`Ô`ô`Ì`ì`Ü`ü`Â`â`Ò`ò༴†<@ÖÀ2˜:øŸ6˜>˜1˜9˜5èk™=˜3˜;³ÉÌ,ÔB – –– –V z+Èâu‡äðzC€¡Ç`àþÁáÑñh¡®€WÂ+â½LÔ-äñŠ` k?xÈdÈtÈlÈ|ÈbÈrh®Š'ɪ୆¬‡l†l‡ì†´ñöCòCŽCNC!ç!èž•:6ä2ä:ä6ä>¤‰÷µõòÒÀ+ãuðZx¯!5<|È{ȯ7Ä#†|†Àx^ï;„B àý†ü‡ÐC˜!ìPˆ=n?0¤‡' ¹‚ˆCÆxC5Y%Òyˆá-ñöøÀ¡ !à¡¡Ð!;<Ô,le>1d·ÅGE EÅ áUc‡â†â‡†Lð‰CICÉCæø @ÊÌÎo†·ÀÛàS‡Ò†Ò‡œðš6C™CYCÙCHåœ!8wÈKÅŸ7”?T0䈇àaxg|áPÑ_k8{8gøN@îpÞpþpÁpápÑpñp °d¸t¸l¸|¸bXwDo0†ŽèÜ ¸p;À`$o8b4b<ò04ò °r…Œ:>"ZBGa£.£®£n£î£––P+QÏQ¯Qø¨÷(bÔÜÂgÔwÔ^ 9 ´Búú¢G1£ØQܨ‡º¯;À€S“ÇŒúËq„Q]¾qïD½cBÕÇŽ†ŒÚÚ‡Ž††FŒFŽàt †¸¨ÑG¶F¸èQ]Y=BÌhì(€7?ª˜0êl8š4š<š2ªaš:š6š>êe™1š9š5š=š3êf–;š7š?Z0Z8jŒ+ p*----­ÕÓ{b¡7ŽÝVÕ3333ã@cà1“1Ó1œÙ˜ù˜Å˜åPÞJÏjÌzLÖ„³³3ÅÙÙ9Œ9Ž™ãœÆ cÎc$'蘻µŒ-lÌe HP3vssóóÓ'xÁÇÌp8OKœ÷bÌç3æ;†Cùù¡ÇìqV8̘ÈÝ;†ÃyBÕÆc68☎4F ³Q      ‹sÆEŽEEŌŎ٫DžÉ:áâÇÆÇ’Æ’ÇqÖ8.e,u,m,},cÌ—9–5–=ægœ3–;–7–?6ƒá Æ ÇŠÆŠÇ´à%c¥cecP\ù˜ ®bLw\o0×7777wÅÆÁãp “qÓq³qóq‹qËq«qëq›qÛq»qûq‡qÇq§qȸó8t6î2î:î6î>î1î9n@Ðò‡{#Æ}Æ}ÇÝpÈqԸ߸ÿ8z3ŽÇãÇÆ ãÄqÒ8y19N6`=‚‹—WOOOOOOOOÏÏÏÏÏÏÏÏ////////¯×ЛL'ô' & 'Œ&Œ'@à “ Ó ³ ó ‹ Ë « ë › Û » û ‡ Ç § È„ót6á2¢é¬æ:á­æ´û uu‰Ú¾H$…t›ðCú#ÑH ÒHË}ÂcÂs"„è5Ÿðž#"&‰>¡Dß äjÂoÂCËâéŽ"z3ÀMH“ð„ q‚4Až÷ œšž™›Ÿˆ˜ˆœˆšˆžˆ™°µŠˆ›ˆŸH˜HœHš@:%O¤L¤N¤M¤OdLdNdMdOäLäNäMäOLNMO”L”N”M”OTLèNêM&“ú““†“F“Æ“ Ið¤É¤é¤Ù¤ù¤Å¤å¤Õ¤õ¤Í¤í¤Ý¤ý¤Ã¤ã¤Ó$dÒy: ›t™t¼Mr›tŸô˜ôœôš„OzO"&}&ÕѾ“ÈIԤߤÿ$z3‰ÄMâ'& “ÄIÒ$y2p2h2x2d2t2l2|2b2r2j2z2f2v2n2~2a2q2i2y2e2u2m2}2c2s2k2{2g2w2o2²`²pRÞ®h²x²d²t²l²|²bRwJo 0œÒŸ2˜2œ2š ·šO¦ÀS&S¦SfSæSSú`Ë)«)ë)›)Û)»)û)‡)Ç)§)È”ót 6å2å:å6å>å1å9å5ŸòžBLùLùN!§PS~SþSè)Ìv 7…Ÿ ˜"L§HSä©À© ©à©©Ð©°©ð©ˆ©È©¨©è©˜©Ø©¸©ø©„©Ä©¤©ä©”©Ô©´©ô©Œ©Ì©¬©ì©œ©Ü©¼©ü©‚©Â©¢©â©’©Ò©²©ò©Š)Ýi½iÀ4pZÚ`ÚpÚhÚx4 ž6™66›6Ÿ¶˜¶œ¶š¶ž¶™¶¶›¶Ÿv˜vœvš†L;OC§aÓ.Ó®ÓnÓîÓÓºpÏi¯iø´÷4bÚgÚw9šö›öŸFOc¦±Ó¸iütÀ4aš8Mš&ONMO‡L‡N‡M‡OGLGNß!EMGOÇLÇNÇMÇO'L'N'M'O§L§N§M§OgLgNgMgOçLçNçMçOLNMO—L—N—M—OWLëÎèÍf€3ú33†3F3Æ3 ðŒÉŒéŒÙŒùŒÅŒåŒÕŒõŒÍŒíŒÝŒýŒÃŒãŒÓ dÆy:›q™qyªí6ã>ã1ã9ã5sß>ã=ƒ˜ñ™ñAΠfüfügÐ3˜ì n?0C˜!ÎfÈ33A3Á3!3¡3a3á33‘3Q3Ñ313±3q3ñ3 3‰3I3É3)3©3i3é33™3Y3Ù393¹3y3ù33w †š÷•5U-Œïhޅ܃؛?‡„Î(YùZ+[iÍÈkyi܇<€[=„ø[b”Å3&þ*>   Yû¶ý#Ècˆ®!ÂA\2sßÎÕc÷âjV”…<…”Π¬å òˆ-Xò¬Q†X(`ìU ²O”T!j´ÚS+kuPi‘×€hBÊfPZPsŒ$À\bg×Ð(™XšèBPFh{=ˆ’ž2bªb®„èC›@ÈJ†€ž†ƒDÕ´|i-§o S²ÒA,Áˆ–¹)Ä b!Ë[A, >V–; 5¤bÆb ±ƒhXÞ±’µ‡<4r€µn!N0 Š)â ÑÖu0„B`E#ˆ+ÄXMwVo0 œÕŸ5˜5œ5š5žõ×Í‚gMfMgÕ” f³AóY‹YO3ËY«YëY›YÛY»YûY‡Y5¢ã¬Ó,dÖyÖ …ͺ̺κͺÏXèhxÌzÎzÍÂg½g³>³ºêwl}g‘³¨Y¿YÿYô,fÖÉ;‹›ÅÏ̈äðò„Yâ,i–<84ç1ç9ç5ŸóžCÌùÌùÎ!çPs~sþsè9Ìv7‡Ÿ ˜#ÌçHsä¹À¹ ¹à¹¹Ð¹°¹ð¹ˆ¹È¹¨¹è¹˜¹Ø¹¸¹ø¹„¹Ä¹¤¹ä¹”¹Ô¹´¹ô¹Œ¹Ì¹¬¹ì¹œ¹Ü¹¼¹ü¹‚¹Â¹¢¹â¹’¹Ò¹²¹ò¹Š9Ýy½yÀÈVôÄÆFÕMÁvÞD"ØÍÛÏ;ÌÛ©;Γ NóyWçyè<Ž «jkg¡Š5„ͻ̻λͻÏ{Ì{Î{ÍÃç Þóˆy<ᑂϼïc^ƒ˜9$f͈ÙóêözÄœùÜù¼ym[}bþ¼)±`¾p¾h¾xÞB6P©dDKç¡eóåóóº DC¢Þ`ÁˆhB.¸iƒUõ  ,‰6D£ãÐB¼€WÓ$šMLTf æ  ¦– AšV æD ¢®lM´^°#Ú,Ø.Ø-Ø/8,8.8-h! Î Ð[¢† lÁOÁeÁuá¶©Û‚û‚Ç‚ç‚=Ñk¾à½€XðYð]@. ˆîÚŽD¿ÿWSg"z³€]À-àŒåœˆ„J$.xI ä…À7bÐBðBÈ‚+F ][p'†/D,¸½ˆpbä‚§iÔBô‚\UÉ“èC”1Yˆ]ˆ[ˆ_HXð&"ˆ‰ I É ) © i ÚÄô…Œ…Ì…¬…ì…œ…Ü…¼…ü…‚…Â…¢}¹â…’béBÙ‚’—|ù‚Ñ—X±à ¬»èOÔ[D‹ÀEýEƒEÃEÑhÑx¢ZDÚ‚MMÑD³Å óE‹EËE«EëE›EÛE G´[´_tXÄ!‹Î‹ÐEØ¢Ë"žèº@t[t_ôXô\ôZ„/z/"}}‘‹¨EÐ5¿EÿÅ#ô"fÑS»ˆ[Ä/,‰‹¤E)y1p1h1x1d1t1l1|1b1r1j1z1f1v1n1~1a1q1iñ.2y1e1u1m1}1c1s1k1{1g1w1o1±`±p±h±x±d±t±l±|±bQwIo °\Ò_2X2\2Z2^-—L–L—Ì–Ì—,–,—¬–¬—l–l—ì–ì—–—œ– KÎKÐ%Ø’Ë’ë’Û’û’Ç’ç’×|É{ ±ä³ä»„\B-ù-ù/¡—0KØ%Ü~)`‰°D\"-‘——‚–‚—B–B—–—"–"—¢–¢—b–b—â–â—–—’–’—R–R—Ò–Ò—2–2—²–²—r–r—ò–ò— – —Š–Š—J–J—Ê–Ê—*–t—õ–ËÀeýeƒeÃe£eãeÐ2xÙdÙtÙlÙ|ÙbÙrÙjÙzÙfÙvÙnÙ~ÙaÙqÙi²ì¼ ]†-»,».»-+)„Ûú©Yº/ûû>p@ûÚü½Ô1¾X_œ¯»=Þ7À—èKð%ù’}Ý}mƒ|͵<–ƒ}C|-´B}?WÕÖ ó•—³Õ ª…ûz.ßBJ#e*5½–½ÀænOmµ,Tìn#]ìî õ,5ÕàËFŠNrÞˈeŸe9]ßeä2jÙoÙ[!ç¿ì#‡^Æ,c—qËZ >Æøå€eÂ2qYNZ&/»Ê.-/ƒô0Š!ˡ˟9Ú„-ªZ…/‡©Ë‘ËQËÑË1Ëmb—MlCµâ–p% <~9aYMÃÃ.q9PKÙöŽù#='…¤åäe’iʲ!\n O]ÃàJƆiË¡Jðôe8c9sÏZÎ^ÎY¶ÈÉhæ.ç-ç/«8,.›˜™™€Á6¦¦p¸·~Ñrñò-++3xɲ%¼tYÕ ko‡)•-k›•/[ÁÕ•+–uW>7óRÓ[1[)8™øÙZÑ*€àŠþŠ9Ü`ÅpÅhÅx´^±ƒ‡+ÚÃMVLWÌVÌW,Vlà¶p˘µÕŠõŠ+ÀPÎfÅÃÆvÅn¦ìgb¿âwXq\!Ù8­@VœW +°_9—‚2îw‚ë*¹®¸­¸¯XCá+ž+.p¯øŠ÷ bÅgÅw—7B®ÈX£VüVœáþ+èÌ vÅãôÑ·‚_ X!¬WÜà8Ò y%p%h%x%d%tŶ• ± _ñ€{Á#V"W¢V¢W<á1+±+pxÜJüJÂJâJÒŠ£uòЉRÊŠ+"u…I[ „¤¯ +dHæJÖJöJ0ÄÂÒH?g%w-›·’¿R°"kY¸)ZÛv6¥šQÍ©Oœ9Ô-¨–T+êm‡ÎÖTª-õ³‘­Ž¼ÕžúÔÙ¤æH•uv¢B¨ÎT(UCFu¡ºRï*¹QÝ©TOª¦²œ³Nõ¦•Tygª/IEQý¨þT4CÅRqT<5€J ©$*™H ¢SC¨ ¹Pj5œAUtޤFQ£© ÎJÎ1ÔXj5žš@M¤&Q“©)ÔTjUÅ9ªìœAͤfQ³©9Ô\jUÕ9ŸZ@-¤Q‹©%ÔRjµœªæ\AÕ¥©;ëÑ4 ›`ÑèàeJ#„€4Cm}šÍfDÃXÓ@40Í„ffûÀÔ”fF“&Þ"~®N°71§YÐ,i·‰ÖºV4¤‚5íÙ¢ QQës¢ í>ÑLKè®ãnò€hK³£ÙÓîï±ú4Gš Bs¦="BišŠ0š¿ƒ ÍAñ!ñ Ñ•æF{L|J´²t§yг€YÈ,b3K˜¥Ì2f9³‚©ËÒcX@–>Ë€eÈ2b³@,0Ë„eÊ2c™³,X–,+–5ˆe˲cÙ³XŽ,'„åÌ‚²`,–+ËåÎò`y²¼Xp–7 Áòaù²,ËåÏB³0,, dzX§ë,"‹Ä"³YA¬`V+”Æ gE°"YQ¬hV +–ÇŠg%°YI¬dV +••ÆJge°2YY¬lV+—•ÇÊg° YE¬bV «”UÆ*gI,]¶À²õÙlC¶Û˜ bƒÙ&lS¶ÛœmÁ¶d[±­Ù6l[¶ÛžíÀvd;±!lg6” c»°]Ùnlw¶Û”äÉöbÃÙÞlÛ‡íËF²Ql?¶?ÍÆ°±lÏ`ØD6‰Mf²ƒØÁìv(;ŒÎŽ`G²£ØÑìv,;ŽÏN`'²“ØÉìv*;ÎÎ`g²³ØÙìv.;Ï.`²‹ØÅìv)Û„TÆ.gW°u9zÈÑçp 9F_²1ÄsL8¦3Ž9Ç‚cɱâXsl8¶;Ž=ÇãÈqâ@8Î(Æqá¸rÜ8îŽ'Ç‹çxsŽ/ÉAqü8þ4ÃÁrp<'€Cà9$™È âsB8¡œ0N8'‚ɉâDsb8±œ8N<'“ÈIâ$sR8©œ4N:'ƒ“ÉÉâdsr8¹œ§€SÈ)âsJ8¥œ2N9§‚£ËÕã¸@®>×€kÈ5âsA\0ׄkÊ5ãšsÍH\K®ךkõåÚqí¹\G®ÂuæB¹0® וëÆuçzp=¹^\8×›‹àúp}¹H.ŠëÇõ碹.–‹ãâ¹\—È%qÉÜ@n7˜kN á†røáÜn$7ŠÍáÆrã¸ñÜn"7‰›ÌMá¦rÓ¸éÜ n&7‹›ÍÍáê£ Ð†h”Ýmec´„£ï™ Mѹ\Y’’ÚÇ5Gçs U-ÑVhk´³ò{C}%9{U´-ZÇÖÎ(DÛÉ\AÍm‡vD; ï8¡!è'FÎè§FPô=yÚíŠvC»£‘hO´£¦ÚÄ&Øô‘<\޾kôXÀõF#Ð>h_4Bû¡ ¹þh4ƒ.âs±h& Ð%\"ú±™€„&£Ñ·ì‚Ð Áèt)7†¾… GKcˆªÁ@Ìm @KÇ:Hþæ.æ&ÐúsL˜ý}Œ©a÷æ!FQï&Ø"Ðä æ1&X!Pí)Fãa)‡‘Çx«èX*`1Jœ±›©2F£ŠQècÜì40þŠ€š˜r®F£ƒ©à†™ëbܪŠÊD-ÝU# FÀècî)‡jzh› 0†½U#ŒÆ€1#ÆLÙX5Řa •µæàª%Æ cÁÛé¯Ú`Èú«¶˜@};Œ=ÆK•,ë€qÄ8a W!g íº`”´Ý1®7ŒñªÆc¦ç…c¼1ŒÆƒÄ 0~G]Ъ?汃Á`1àU“U ÓU³UóU‹UËU«UëU›ÕÛ ¶«v«ö««Ž«N«UçUè*lÕeÕuÕmÕ}ÕcÕsÕk¾ê½ŠXõYõ]E®¢VýVýWÑ«˜Uì*n¿°JX%®’VÉ««A«Á«!«¡«a«á««‘«Q«Ñ«1«±«q«ñ« «‰«I«É«)«©«i«é««™«Y«Ù«9«¹«y«ù««…«E«Å«%«¥«e«å««ºkzk€5àšþšÁšášÑšñh ¼f²fºf¶f¾f±f¹fµf½f³f»f·f¿æ°æ¸æ´Ys^3xê =¡kvr`sE¼±‘§¥…±§—&Èìi”¶³×G©˜›x’€¦ž°µ{*ªÖêfžæžú¶ž.k–ž&VVžÖž6ž¶žöVvž!òºöž®ku<=<ÝÖ žÎžîk*ª5eÏ5/ˆ'Äk ¾æ½†XóYó]C®yCPk~kþkhcôf ÑU!X­ì´°k¸5üZÀšƒ!¬IËÚ˜×|!¤5-U°¦à6 €„×dõ•´ׂÖ\,‚×BÖB×P(l-|-b-r-j &½³»æ‰[SUV·_ SHXK\ó‡€lí,< ’ÖÐäµ”µÔµ´µô5 $c AêÙ™Â,2ײֲ×rÖr×òÖò× Ö ×ŠÖŠ×JÖJ×6·ek8HùZÅÜDwÑ[÷6 ·¬×õ× ªë†ë§²ÊFëÆëv uðºÉºéºÙºùºÅºåºÕºõº¿‰ÍºíºÝºýºÃºãºÓ:dq^‡®ë{ÂÖ]Öïè¹®»­ëÜ×=ÖuIz$+}ÏuUcO+¯uøº³¥ÕSM35ïu±î³n¨¨n …(ø®#×$Ôºß:NɽŽYÇ®ãÖñëë„uâ:iÝ€D^\Z^Y][GÚÜ#Ý· _X\Z¿OŠ^Y]ÿœ·¿î©ç ›°.-—¸ž´ž¼ž²îožºîcù”¶ž¾N²ÈX@ÂÚ="©3×³Ö³× OHI9ë¹ëyë.úùëëŽz…ëEëÅë%ë¥ëLÊÖ5-Ê×+Öu7ô6À ý ƒ à £ ã§$ÐxC–d²aº!G2ÛP˜oXlXnXmXoØÊØlØnØmØoÈ“67œ6 ÎР؆ˆë†Û†û†Ç†ç†×|Ã{±á³á»áft—„Ü@m¨jûmøoÈk£7àJ˜ 솑 nCGÇè Äol˜:6ˆ¤ Œ*y#p#h#x#d#t#l#|#b#HëŽU䆥lÔFôFÌFìF܆,9~#a#q#i#y#e#u#mCŽœ¾‘±‘¹‘µ‘½ñÈ2gCV6w#o#Cž¬@.ØP$nmo€J6J7Ê6Ê7*6t7õ6-´›ÀM²þ¦Á¦á¦Ñ¦ñ&h¼©L6Ùt‘3ÝT"›mšoª’-6ÕÈ–›V›Ö›6›¶›v›ö››Ž›N›MçMè&lÓeÓuÓmÓ}ÓcÓsÓk¾é½‰ØôÙôÝDn¢6ý6ý7Ñ›˜Mì&n¿°IØ$n’6É››A›Á›!›¡›a›á››‘›·ÍÍŒ£6ª«ú¨ù¨û´£7c6c7ã6ã7 Ö ›¶Ž ÄͤÍäÍ”ÍÔÍ´ÍôÍŒÍÌͬÍìÍœÍÜͼÍüÍ‚ÍÂÍ¢ÍâÍ’ÍÒͲÍòÍŠMÝ-½-ÀpKË`ËpËhËx ´Þ2Ù2Ý2Û2߲زܲڲ޲ٲݲ۲ßrØrÜrÚ‚l9oA·`[.[®[n[î[[ž[^[ð-ï-Ä–Ï–ïr µå·å¿…ÞÂla·p[ø­€-Âq‹´EÞ Ü Ú Þ Ù Ý Û ßŠØŠÜŠÚŠÞŠÙŠÝŠÛŠßJØJÜJÚJÞJÙJÝJÛJßÊØÊÜÊÚÊÞÊÙÊÝÊÛÊß*Ø*Ü*Ú*Þ*Ù*Ý*Û*ߪØÒÝÖÛl·õ· ¶¬ï(#Bqh ”%03QsRÃyÉšš„ãnÛ>øééÊißÂÛinKãeðFÛ·ñ@k%Cãm#³;xжœŽ‡)xû.þÞÎ ­ü9þ>ÞUéþ!Þd;Tþþ1þž±é¶Ù¶ù¶Å¶å¶Õ¶õ¶Í¶í¶Ý¶ý¶Ã¶ã¶Ó6dÛyº ÛvÙvÝvÛvßöØöÜöÚ†o{o#¶}¶}·‘Û¨m¿mÿmô6f»ÛF¨à·¶ïû=ð{èGØ~äGÜ&m?1|ì÷ RQo‡l‡n‡m‡oGlGn«zX£¶£·c¶c·ã¶ã·¶·“¶“·S¶S·Ó¶Ó·3¶3·³¶³·s¶s·ó¶ó· ¶ ·‹¶‹·K¶K·Ë¶Ë·+¶uwôv;ÀýK²ÁŽáŽ™¼ÑŽñh¼c²cºc¶c¾c±c¹cµc½c³c»c·c¿ã°ã¸ã´ÙqÞîÀv\v\wÜvÜwp_ß`ßpßhßx´Þ7Ù7Ý7Û7ß·Ø·Ü·Ú÷ܵµ5“³rV3²ÞW’׸yk€Ý½=¼mµ=½o;Ø™Á½aš^ÞÞÞo4Àf_[ËÇÛpOÝ×Ûvém­àke·o¿Gå1ôóö÷vØwÜG{?6Äx;íßa½qÞxo5x€7ÁÛ@ô&yûØ“½!ûÞFjÎûÐ}ؾ˾ë¾Û¾û¾Yì±ï¹ïµß×&k’o©{ïëûºdŸ}ß}ä>€¬GÖ'£öýödÿ}ô>f»Û7 ’ñûû„}â¾™´ïcBÞÜÚÞwU ÙÝÛߨܷ%GíÛ‘£÷cöc÷ãöíÉñû û‰ûIûŽää}9eßœºŸ¶Ÿ¾Ÿ±Ÿ¹ŸµŸ½Ÿ³Ÿ»ïLÎÛw"çïìîíï—ì—î;8”í—ïWìë@Éz€àþÁáŒlt`|:p!ƒLLÌÌ,,¬¬ll\ÉvöndǧÈóôvàràzàvà~àq`âìyàuðÀ~à}€8ð9ð=@ üÈp5ÿôæ{¦ƒÔ‘ ɸ0Ù”lBÆÌÈÄusÒ9™|xpO?è ø ä ô ì ü â ò ê ú æ ö î þ á ñ é ù å õ í ý ã ó ë û ç ÷ ï ÿ à ð è ø ä ô ì ü â@÷Pïp<Ô?484<4:4>‚MMÍÍ--­­mmíí!‡Î‡ÐCءˡë¡Û¡û¡Ç¡ç¡×!üÐûqèsè{ˆG¾GÈ#Ô‘ß‘ÿús„=ÂáŽGÄ#Òù(ð(è(ø(ä(ô(ì(ü(â(ò(ê(ú(æ(ö(î(þ(á(ñ(é(ù(å(õ(í(ý(ã(ó(ë(û(ç(÷(ï(ÿ¨à¨ð¨è¨ø¨ä¨ô¨ì¨ü¨âH÷Xïp <Ö?686<6:6>ƒMŽMÍŽÍ-Ž-­Ž­mŽmíŽíŽŽ!ÇÎÇÐcر˱ë±Û±û±Ç±ç±×1üØûqìsì{Œ¯€WÈ+âóJx¥¼2^9¯‚§Ë×ãø@¾>߀oÈ7âóA|0ß„oÊ7ã›ó-ø–|+¾5߆oË·ãÛóøŽ|'>„ï̇òa|¾+ßïÎ÷à{ò½øp¾7Á÷áûò‘|ßïÏGó1|,ÇÇóø>‘Oâ“ùü ~0?„Êã‡ó#ø‘ü(~4?†ËãÇóø‰ü$~2?…ŸÊOã§ó3ø™ü,~6?‡ŸËÏãçó ø…ü"~1¿„_Ê/ã—ó+øº=@è †#±$ L¦3¹ÀB`)°X l¶;½ÀAà(p@Ψ&p¸ Üî§ÀKx ¯)@ üþ´#À p¼ @@$Y( B¡‚0A¸ B)ˆD b±‚8A¼ A(H$ R©‚4Aº C)Èd r¹‚º·±Î"ˆ:T=6r¹ŠÜDôÝE"?²?Möaɲ—G†‹¼E2B@öáÉD²¯)B‰üD$²¿-ˆ°"œ/ DD‘¯?I„ôGù“Eš¤@Q(X" …‰ÂE¢HQ”(Z#Ò"ÅŠ´Iw•ãDÚŽñ¢‘¾Z¢(I”,ÒpLÉASEi¢tQ†(S”% g‹ÈäQ®(O”/*ŠŠDÅ¢Q ¹TT& "—‹*Dºb=1@ ë‹CÈâ`²¡ØHÎHJ#‹Ab°ØDl*'›‰ÍÅbK±•ØZl#¶Û‰íÅb”¡¢Ÿ£ØI ;‹¡b˜ØEì*v»‹=Äžb/1\ì-Fˆ}ľb¤%öû‹ÑbŒ+Ɖñâ1AL“Ädq 8H,‡ŠÃÄáâq¤8J-ŽÇŠa ¤8q¼X‘䥧DR&©TIj$u’Œ±)Aœ(N'‹SÄ©â4qº8Cœ)Îg‹ƒõ>WóñÏçŠóÄH5W§|q¸P\$.—ˆOþµÒÿàÌÊþŸ]Ñ_­ü_˜c…XW¢'H€’“ýÓ—ÄPòÇ#Éß¶3–€$àÓ‰é?Ô›IÌ%»ú=ÊÉÉåB¥Ð(;”]  lQ¶)l ‡Â¤°(\Ê*e²NùÇ~|ê}ë‘õ¨z¿zÿzt=¦[«?9Á×Ôꉧ9R=¹>°>¨>¸>¤>´>¬>¼>¢>²>ª>º>æôhl}\}|}Bý-iÄ­;2weîÉ|.s_æÌC™G2ežÈ<•‘•‘“‘—QQ”Q’Q–Q‘Q•Q“Q—ÑєђіёѕѓÈeôe d eŒdŒe@2`S3s K+k[;{G'ˆŒ³ T&ã"ã*ã&ã.ã!ã)ã%—ñ–AÈøÈøÊ eP2~2þ2hŒ V'ƒ— !ÈeH2d™@™ ™`™™P™0™‡·þ3ßáÿæ{ y˾>\Æ¡þ¶Œ”oçÒ‘”TÃî¥ç¥¤<ö/ݰš“’"\º‘Ù'%Å>å9+©ÿŸµ„ÃK7®jHIQOy¡PJêÊñ¥¯ÿ&%λtãÝw¥¤"NéV|ê§SJ±¤¤:—n¼øóÆ×žö+‘’ÒŸö{ÿt>§¼Y-%•!¹t#mêÏçÿ»yrºÞ“Sž»ü/œñ•3¾vÆ7ÎøÖ/Ÿñí3¾sÆ÷ÎøÁ¯ñ£3þ匟žñ³3Þ:£ÌïœñÞïŸñáŸñéåΨpF¥3ªœQíŒgÔ:£ÎõÎ<£ÁÎ:£ÉÍÎhqF«3ÚœÑîŒgt:£óagt=£û=Ï?#⌾gDÑÿŒ˜3âÎpFâÉg :cÈÃÎøÅ#Ï}ÆØ3ÆŸ1ñŒÉgL=cú3Ϙ}ÆÜ3柱ðŒÅg,=cù+OYûû·áïöwûs̯êòG»§÷©êË7.Ýÿ×Û)Ö\¾!‹’’j:å¹ÓûY7³‡ÙËìcö3˜ƒÌ!æ0s„9ÊcŽ3'˜“Ì)æ4s†9ËœcÎ3˜‹Ì%æ2s…IeÒ˜t&ƒÉd²˜l&‡Ée®2טëÌ æ&s‹¹ÍÜaî2÷˜ûÌæ!óˆyÌä1ùLSÈ1ÅL ó„)Å:Ç:ϺÀºÈŸ¼Âz•õëuÖ¬7Yo±.±.³®°Þf]e½Ãz—õë}Ö¬Y×X×Y±>fý…õ ëSÖ Ög¬›¬[,i– ë6ëë.ëësÖ}ÖÖCÖ#ÖcÖÖS–,KŽ%ÏR`)²”XÊ,–*K¥ÎÒ`i²´XÚ,ÖŸ9&>ù_ÇŽýË‘c_ü±cⓞþ6 ê_:þg§¦›þÿâ8¿G_ýkçü•õ‰{«`U²ªXÕ¬V-‹Âªc=cÕ³X¬&V3«…ÕÊú’õëkÖ7¬oYß±¾gýÀú‘õëgÖ/¬ç¬_Y/X¿±^²ÚXí¬Vç©çºXݬV/«ÕÏ` ²†XìÖ(kŒ5Κ`M²¦XÓ¬Ö,kŽ5ÏZ`-²–Xˬ•EcÑY “Åb±Y—µÊZc­³6X›¬-Ö6k‡µËÚcí³X‡¬#Ö1‹Çâ³,!Kij$¬–ûû<ûû"ûö«ìר¯³ß`¿É~‹}‰}™}…ý6û*ûö»ì÷Øï³?`ȾƾÎþˆý1û/ìOØŸ²o°?cßdßbK³eØ·Ùâ“;ì»ì{ìÏÙ÷ÙØÙØÙOØOÙ²l9¶<[­ÈVb+³Uتl5¶:[ƒ­ÉÖbk³uØ7ø_q}üŸ§9~ï?óøxüâobÅ'ÿþ¨Ç?b+ÙUìjv »ö¿‰÷ÿH¿GK~ñ7ñ’vû»žÝÀnd7±›Ù-ìVö—ì¯Ø_³¿aËþŽý=ûöìŸØ?³a?gÿÊ~Áþý’ÝÆngw°;Ù]ìnv»—ÝÇîg°ÙCìaö{”=ÆgO°'ÙSìiö {–=Çžg/°ÙKìeö ›Ê¦±él›yê9›Íæ°¹ìUö{½ÁÞdo±·Ù;ì]ö{Ÿ}À>d±Ù<6Ÿ-` Ù"¶˜-aŸ°¥8ç8ç989¯ü»?ÿçÑïùÿcDé¿Öê÷HÓ¿–òþ!ÿÏãN_弯yóçMÎ[œKœËœ+œ·9W9ïpÞå¼ÇyŸóçCÎ5ÎuÎGœ9á|Âù”sƒóç&çGš#ù͹ù˹ÇùœsŸó€óóˆó˜ó„ó”#Ë‘ãÈs8Š%Ž2G…£ÊQã¨s48š-Ž6G‡ó×X]ñÉѺÿ'±ºÿçWd§’SÅ©æÔpj9Nç§žÓÀiä4qš9-Bÿ­œ/9_q¾æ|Ãù–óç{Μ9?q~æüÂyÎù•ó‚óç%§ÓÎéàtrº8ÝÿÁ{þá<þ9ñI§Ÿ3ÀüïÙCœaÎg”3ÆçLp&9SœiÎ g–3Ç™ç,p9KœeÎ ‡Ê¡qèÿ0*ãô'“Ãâ°ÿž´ewžî>Ý{ºÿôàéáÓ£§ÇOyOùOO…OÅ'œCÎç˜Ããð9Ž#âˆ9Î GŠûçÏãÏIç¸ç¹¸¹¯p_徯}û÷Mî[ÜKÜËÜ+Ü·¹RÔsÔóÔ Ô‹ÔW¨¯R_£¾N}ƒú&õ-ê%êeêêÛÔ«Ôw¨ïRߣ¾Oý€ú!õõ:õ#êÇÔ¿P?¡~J½AýŒz“z‹*M•¡Þ¦Þ¡Þ¥Þ£~N½O}@}H}D}L}B}J•¥ÊQå© TEªU™ªBU¥ªQÕ©TMªU›ªCý]m þ®³úCeeLýC[õ‡²êMÕzªß•TTGê?j¨þPPý£~êí‚ú¿«›úC5õ5‚ú‡jê_VL¥SÿGµÔ?×JUP+©UÔjj µ–J¡ÖQŸQë© ÔFjµ™ÚBm¥~IýŠú5õê·Ôï¨ßS þHý‰ú3õêsê¯ÔÔߨ/©mÔvjµ“ÚEí¦öP{©}Ô~êu:D¦ŽPG©cÔqêu’:E¦ÎPg©sÔyêu‘ºD]¦®P©T•NeP™T•MåP¹ÔUêuºAݤnQ·©;Ô]êuŸz@=¤Q©<*Ÿ*  ©"ª˜*¡žP¥hçhçihi¯Ð^¥½F{öíMÚ[´K´Ë´+´·iWiïÐÞ¥½G{ŸöíCÚ5ÚuÚG´i¡}Bû”vƒöí&íMš&C»M»C»K»GûœvŸö€ööˆö˜ö„ö”&K“£ÉÓhŠ4%š2M…¦JS£©Ó4hš4-š6M‡¦Kû]e¤ý£¦ìwEÙïz²ßµd(ȬhÖ4Ú*±¿êà4Í…ö»&ìTƒý­ìoU`¿kÀþQýõʯpÚÿŠò+™–BK¥ýKJ¯®óª¤UѪi5´Z…VG{F«§5ÐiM´fZ ­•ö%í+Ú×´ohßÒ¾£}Oûö#í'ÚÏ´_hÏi¿Ò^Ð~£½¤µÑÚi´NZ­›ÖCë¥õÑúi´AÚm˜6B¥ÑÆi´IÚmš6C›¥ÍÑæi ´EÚm™¶B£Òh4:AcÒX46CãÒVik´uÚm“¶EÛ¦íÐvi{´}ÚívD;¦ñh|š€&¤‰hbš„vB“¢Ÿ£Ÿ§_ _¤¿B•þýuúô7éoÑ/Ñ/Ó¯Ðߦ_¥¿C—þý}úôé×è×éÑ?¦ÿ…þ ýSú úgô›ô[tiº ý6ýý.ýýsú}úúCú#úcúúSº,]Ž.OW _å¾Ã}—û÷}®"]‰®LW¡«ÒÕèêt º&]‹®MסÿßÕË}ñ'(æ*éUôjz ½–N¡×ÑŸÑëé ôFz½™ÞBo¥IÿŠþ5ýú·ôïèßÓ ÿHÿ‰þ3ýúsú¯ôôßè/émôvz½“ÞEï¦÷Ð{é}ô~ú}>D¦ÐGécôqú}’>EŸ¦ÏÐgésôyú}‘¾D_¦¯Ð©tNgЙtMçйôUú}¾AߤoÑ·é;ô]ú}Ÿ~@?¤Ñé<:Ÿ.  é"º˜.¡ŸÐ¥çç¯0^e¼ÆxñãMÆ[ŒKŒËŒ+Œ·Wï0Þe¼ÇxŸñãCÆ5ÆuÆGŒa|Âø”qƒñã&ãCš!Ã¸Í¸Ã¸Ë¸ÇøœqŸñ€ññˆñ˜ñ„ñ”!ËcÈ3Š %†2C…¡ÊPc¨34š -†6C‡ñŸ©7ü·Õ†_ü3½á¿_mXɨbT3jµ £ŽñŒQÏh`42šÍŒF+ãKÆWŒ¯ß0¾e|ÇøžñãGÆOŒŸ¿0ž3~e¼`üÆxÉhc´3:Œ.F7£‡ÑËècô3ƒŒ!Æ0c„1ÊcŒ3&“Œ)Æ4c†1˘cÌ3‹Œ%Æ2c…AeÐtƒÁd°l‡Áe¬2ÖëŒ Æ&c‹±ÍØaì2öûŒÆ!ãˆqÌà1ø CÈ1Ä ã„!Å<Ç<ϼÀ¼È|…ù*ó5æëÌ7˜o2ßb^b^f^a¾Í¼Ê|‡ù.ó=æû̘2¯1¯3?b~Ìü óæ§ÌÌϘ7™·˜ÒLæmææ]æ=æçÌûÌ̇ÌGÌÇÌ'̧LY¦Sž©ÀTd*1•™*LU¦S©ÁÔdj1µ™:Ì¿Õjþû•šÿ\§ùäCî5îunÌ“E#Å„'ÉOnpË”>V¾¢œò$ÿ ZíºÚ]îˆÚŠZ€ú¨ÚCî#®¹Z“ªY÷DŽ+Ïmxb¯ëª×òDøÍ“ïŸüðDƒû° øË“%à´¾»¡©!ðôiOÆè¾Q¨QªQÿ#P0( ŠÅ‚â@å bРïA¿kèªMËM+L+MɦU¦ï™½oöÙ‡f×Ì®›}dÖbæÅý÷)I¿ø´¤•Ì*f5³†Yˤ0ë˜Ï˜õÌf#³‰ÙÌla¶2¿d~Åüšù ó[æwÌï™?0dþÄü™ù ó9óWæ æoÌ—Ì6f;³ƒÙÉìbþ—}åûwû»ýÝþnÿO[`ËåºRRê­§”HIýøååà¯þ(ó¾þƒ¤oÿàÁwÿÃåy§Ôÿñò ÇSfýtùFå)Íþƒoþò»Ïõüjÿúÿnÿ1œúOðwÿI]|ñÇuôòŒ¡¿ýAÕ—ðàŒ_¶ýA¿öË7,ÿÆo¿=cTYþC¬žíY$ŸÃ?ÐQ“üKQY.ÿbí_ õÇÑg­pÿÔ:àr ñ¬&èÙOŒ$©>¹>¥>µ>­>½>£>³>«>»>§>·>±ÞþߘÁÔì$ ô_éÛYâöŸ4ꆹþ7šë¿løÿr ž/‰Ä÷¿ý:ÿmCJ0¬ÿÿ+ýÃÿi¥äÿ¤5KB$aÿÛ}‡J"þ¦mä‹÷!êßœe´$ö¿d%qÿ0Jü?• I<Í'I’ÿ·GO=k™òïšoº$M’÷'¯0[’#É•äK²$’BI‘¤XR")•”ý·¸"þ_°rIeCUCuCMCm¥¡®áYC}CCCcCSCsCKCk× _5|ÝðM÷ ß5|ßðCà ?5üÜðKÃó†_^4üÖ𲡭¡½¡£¡³¡«¡»¡§¡·¡¯¡¿a a°a¨a¸a¤a´a¬a¼a¢a²aªaºa¦a¶a®a¾a¡a±a©a¹a¥Ú@k 70˜ ¬v§Û°Ú°Ö°Þ°Ñ°Ù°Õ°Ý°Ó°Û°×°ßpÐpØpÔpÜÀkà7„ ¢qƒ¤¡²±ª±º±¦±¶‘ÒX×ø¬±¾±¡±±±©±¹±¥±µñËÆ¯¿nü¦ñÛÆï¿oü¡ñÇÆŸnü¥ñyã¯/k|ÙØÖØÞØÑØÙØÕØÝØÓØÛØ×Øß8Ð8Ø8Ô8Ü8Ò8Ú8Ö8Þ8Ñ8Ù8Õ8Ý8Ó8Û8×8߸иظԸܸÒHm¤5ÒÌFV#»‘ÓÈm\m\k\oÜhÜlÜjÜnÜiÜmÜkÜo^?o€7Èâ óFx£¼1Þ8o‚7É›âMófx³¼9ÞŸ/à ù"¾˜/áW ªÕ‚A­€"¨<Ô ‚&A³ EÐ*øRð•àkÁ7‚oß ¾ü øQð“àgÁ/‚ç‚_/¿ ^ Úí‚A§ KÐ-èô úý‚Á `H0,Œ Æã‚ Á¤`J0-˜Ì æó‚Á¢`I°,XP4]À0,[Àp«‚5Áº`C°)Øl v»‚=Á¾à@p(8 x¾@  D±@"¨V «…5ÂZ!EX'|&¬6…MÂfa‹°Uø¥ð+á×Âo„ß ¿~/üAø£ð'áÏÂ_„Ï…¿ _¾¶ Û…ÂNa—°[Ø#ìö û…ÂAápX8"Ž Ç…ÂIá”pZ8#œÎ ç… ÂEá’pY¸"¤ iBº!d YB¶#ä W…kÂuá†pS¸%Üîw…{Â}áðPx$<ò„|¡@(Š„b¡DX)ªU‹jDµ"ЍNôLT/j5ŠšDÍ¢Q«èKÑW¢¯E߈¾}'ú^ôƒèGÑO¢ŸE¿ˆž‹~½ý&z)jµ‹:D¢.Q·¨GÔ+êõ‹Dƒ¢!ѰhD4*‹&D“¢)Ñ´hF4+šÍ‹D‹¢%ѲhEDÑDtCıDlGÄ­ŠÖDë¢ Ñ¦hK´-ÚíŠöDû¢Ñ¡èHt,â‰ø"H(‰Ä"‰¨R\%®׈kÅqø™¸^Ü n7‰›Å-âVñ—â¯Ä_‹¿+þNü½øñâŸÄ?‹?ÿ*~!þMüRÜ&nwˆ;Å]ânq¸WÜ'îˆÅCâañˆxT<&Oˆ'ÅSâiñŒxV<'ž/ˆÅKâeñŠ˜*¦‰éb†˜)f‰ÙbŽ˜+^¯‰×ÅâMñ–x[¼#Þï‰÷ÅâCñ‘øXÌóűP,‹Åq¥¤JR-©‘ÔJ(’:É3I½¤AÒ(i’4KZ$­’/%_I¾–|#ùVòä{É’%?I~–ü"y.ùUòBò›ä¥¤MÒ.étJº$Ý’I¯¤OÒ/ J†$Ã’ɨdL2.™LJ¦$Ó’ɬdN2/Y,J–$Ë’ UB“Ð% SÂ’°% W²*Y“¬K6$›’-ɶdG²+Ù“ìK$‡’#ɱ„'áK¡D$K$ÝJ½J@%°R¿Ò Ò°Ò¨Ò¸T ®4©4­4«4¯´¨´¬´ª´®´©´­´«´¯t¨t¬tª„T:WB+a•.•®•n•î••ž•^•ðJïJD¥O¥o%²UéWé_‰®ÄTb+q•øÊ€JB%±’TI® ¬ ª ® © ­ « ¯Œ¨Œ¬ŒªŒ®Œ©Œ­Œ«Œ¯L¨L¬LªL®L©L­L«L¯Ì¨Ì¬ÌªÌ®Ì©Ì­Ì«Ì¯,¨,¬,ª,®,©,­,«,¯¬¨Ô­Ò«T«ô« ª «ŒªŒ«@Uà*“*Ó*³*ó*‹*Ë*«*ë*›*Û*»*û*‡*Ç*§*H•s´ VåRåZåVå^åQåYåU¯ò®BTùTùV!«PU~UþUè*L¶ W…¯ ¨"T«HUäªÀª ªàªªÐª°ªðªˆªÈª¨ªèª˜ªØª¸ªøª„ªÄª¤ªäª”ªÔª´ªôªŒªÌª¬ªìªœªÜª¼ªüª‚ªÂª¢ªâª’ªÒª²ªòªŠ*Ýj½j@5°Z¿Ú Ú°Ú¨Ú¸T ®6©6­6«6¯¶¨¶¬¶ª¶®¶©¶­¶«¶¯v¨v¬vª†T;WC«aÕ.Õ®ÕnÕîÕÕžÕ^ÕðjïjDµOµo5²UíWí_®ÆTc«qÕøê€jB5±šTM®¬ª®©­«¯Ž¨Ž¬ŽªŽ®Ž©Ž­Ž«Ž¯N¨N¬NªN®N©N­N«N¯Î¨Î¬ÎªÎ®Î©Î­Î«Î¯.¨.¬.ª.®.©.­.«.¯®¨Ö­Ñ«Ôkôk j kŒjŒk@5à“Ó³ó‹Ë«ë›Û»û‡Ç§Hs ´VãRãZãVã^ãQãYãU¯ñ®AÔøÔøÖ kP5~5þ5èL ¶Wƒ¯ ¨!ÔkH5äšÀš šàššÐš°šðšˆšÈš¨šèš˜šØš¸šøš„šÄš¤šäš”šÔš´šôšŒšÌš¬šìšœšÜš¼šüš‚šÂš¢šâš’šÒš²šòšŠÝZ½Z@-°V¿Ö Ö°Ö¨Ö¸T ®5©5­5«5¯µ¨µ¬µªµ®µ©µ­µ«µ¯u¨u¬uª…Ô:×Bkaµ.µ®µnµîµµžµ^µðZïZD­O­o-²UëWë_‹®ÅÔbkqµøÚ€ZB-±–TK® ¬ ª ® © ­ « ¯¨¬ª®©­«¯M¨M¬MªM®M©M­M«M¯Í¨Í¬ÍªÍ®Í©Í­Í«Í¯-¨-¬-ª-®-©-­-«-¯­¨Õ¥èQ EŸb@1¤QŒ) ˜bB1¥˜QÌ)KŠÅšbC±¥ØQì)GŠBq¦@)0Š Å•âFq§xP<)^8Å›‚ øP|)H ŠâGñ§ ) –‚£à)…H!QÈ”@J%˜B ¥„QÂ)”HJ%šC‰¥ÄQâ) ”DJ%™’BI¥¤QÒ)”LJ%›’CÉ¥äQò)”BJ¥˜RB)¥”QÊ)Ý:½:@°N¿Î Î°Î¨Î¸T®3©3­3«3¯³¨³¬³ª³®³©³­³«³¯s¨s¬sªƒÔ9×Aë`u.u®unuîuužu^uð:ï:DOo²UçWç_‡®ÃÔaëpuøº€:B±ŽTG® ¬ ª ® © ­ « ¯‹¨‹¬‹ª‹®‹©‹­‹«‹¯K¨K¬KªK®K©K­K«K¯Ë¨Ë¬ËªË®Ë©Ë­Ë«Ë¯+¨+¬+ª+®+©+­+«+¯«¨k¬jªj®j©j­ú²êä„Yµ]µS%®’TÔÖÕ×ðjø5‚a¨F\#©9®åÕòkµÂZQ­¸VRûågÊ/”ç”_)/(¿Q^Ræ(ó”Ê"e‰²LY¡lP6)û”#Ê1…GáS!EDS$”öºŽºÎº®ºîºžºÞº¾ºþººÁº¡ºáº‘ºÑº½ºýºƒºÃº£ºã:^¿NP'¬Õ‰ë$uyÏòŸ<+|Vô¬øYɳÒgeÏÊŸU<{þìä¤íYû³ŽgÏÖž­?Ûx¶ùlëÙö³g»Ïöží?;xvøìèÙñ3Þ3þ3Á3á3Ñ3ñ3É3ÇzçzX½K½ký¿¾Óϯ/¨/¬/ª/®/©/­/«/¯¯¨¯¬¯ª¯®ß©ß­ß«ß¯?¨?¬?ª?®çÕóëõÂzQ½¸^R/˜ΈfÄ3’™“+‰µÄæo¾[qúŸ¾gqÿ§²·ñOy?‰ÿ?û>†ô?Õ„ÿ›ßØdH2ÿ—m*þæï'£—oðùÿõ÷ù¿mã§ënjú¯oòt¼È~))ŸÁË7v„RR§ÔÖþ×ÛG7 ’Z锿æRR)§DSÿõþñ#—oØÛKINéêú×zÒiYeIJªsôòéé¿ÖwŸ–MÝ¥¤öN)“ú×úÞ±ÓyþðÏûo¿|ƒ\-%uqâò÷ZþõyüÝþn·¿ÛµiNþñÿ 4§Ï8{Æù3.žqùŒÔ3ÒÏÈ<¥×ÿíUüÇ-BêôÃYªVŠ"u[ª^ªUê®Ô×RßK=–úQjZJ^jVjEÊJŠ.Å‘r’Z?M®R[R»RnRRG§‹æ&„”ð4ùH‰¥¤ÎùJ?÷î9©÷Ï}|.\ê“sÎÅJ=:<—#epÎè\“èœé¹V)ósÈsßHù:7*5rnäœü¹±Ó¤pnâ4)ž›:MJçfN“ò¹¹Ó¤rná4©ž[:Ç;§vNpÎò¼Ý9ëónç›Îyœï>ÿ˹Þó½çož¹½'mzÇ⎽ áNĈLƬ;™¼;åw2Uw¾ºCùöÎ/wbd^Ü麓"Ó{§ÿNŽÌà¡;ù2£whw eØw.Þm”yíîëwûeÞ¼«swPFï®ÞÝó·w#ž\¸õ$ú‰Þ£Ø'ñO€Ÿ$=1|”ú$ï‰ñ£‚'”'Öž=©âþ¨ñIóÏG­O¾~âýèÛ'ß=A>úñÉÏOü=Ò÷óhàÉöÓ°G¢§'O«_”½(Ky|]öٺǟÉÞ”mzü@VK¶å±Ž¬®lûãÙ"ÙÎÇå²²e…²COd/Ê?~ ÷™üìãò²òÃOäå«ä§žÔȧ*>ÍP(V•-W¨PД­RèPЖíRRp“QUð•P˜T@ÉN+*úË+â—e Š¥JoÈ•+]VV[ù#å*ù¿(_Sk–ÿHÍ_­A £6¬v¢4¦¶¬æªLUëû+ÔÍ4¤T,4ü5çU0š+š|Uš¦.RÍA×EoEÓMOÈÑR6_è4¿Êë~ \*ë.§ôÝugôM ôÌ Ý ‡†ÒFtÀm£ÏªŒBŒžÃŒRŒÀ4#CЛúÆ  P‡A(thŠÄ€b@BƒxPHdP*]5¬}zÏðGÉô¾a i™)׸Æô]³·A›5›…ƒZÍNÌÞSÊOf<Á~?ίQ½œ^΋(gŸó[ÔܸƒQq?åE}ƽúÇ}À‹zÌ•å.E)pÕ¹´(M.€»¥ÏµáîDÙs=¹RÑpîCþ•èÇü@þTv0?‡+'Ïækæpù;üÔœ=þ[‚¼œ«‚«‚/sÞ¼+ø*çÁ5Á×9 n¾Ë‘H ~ɹ#¸+xžó@ðTò"G^"/é,0Kº lNwS}ŽGIâtÇ4Pà'‘:,p=Y9q/dŸîjè…¿®‰N^Ü?ýl>5,æÒ ÑÞy÷ÒÓ| å2ó4ÿ:ëòÑŽË7Þ:kÿ»]ü›üÍ÷¥þ)¯ûÁ_óÔ½¿¶‘ýð¯õ/¯ÿ5?û7mv>þ›s?ýk~òoû¹%ucçæé±SR¥¥n¼<}ž¾þvnÿšùKI!<äTedO‰úÇ<<ð{½'Æßƒþ½Ýé±³:y9ùS ž/¸çïÇ\]=ñpwÜõ¬ÆÕŸèGðõ"Àÿ¨@cn=}nþCé¦oÀi ‹Åà p¯'Rpôi­/qíî¿éO Üô€ßt¿@ÀŸÖ>9íÛß{ºÇ ¢}?ýæi û{s_4ÉÝÏ×Kê1\=Ogyaÿâþ+û¯î¿¶éÜûcRCR—ö/ïHq?»ºß/õîþ{ûïï°åܵýëûRçÚ¤†Î½”z÷\ŸÔÇçz¥LÏMH—º³ÿâÆ½ý—7ú¥Î£I Ÿ£JYïܪÔ_Îq¥žÛ”=·!evn_jüÜžêœ@jò_júÜì¹ùs†ÚuñœHJÿ·†ûm7Ö¤ÜÏÿþŸÈë« ÞŸ¼ ÿý¸–ùÚ¼t%ó÷¼9Óëc‹Ï-žYØ[¬J¬˜V•ÖϬ5lÌmÆlfmèö;Ž^s’wRtòv.s.w.‚ƹh¸%Â%ˆ‹>psÿçX%bMxSøÏá=á#á+á¯~¡òEpÔH&º;ñE2=Ù;‘ŽNÿ3VõA:fèÛ|ÏúëR2 tÉ|!>y+õ(‚óÆïuå=eC¦}¥—Ê´MJ¯`ß,S¨lSŸ¡µ£>"žöò+J/*,ò‹éÿtôöƒÛæ‘ææñæ¿™¯›«X˜*þja¬}Á2Á2L1[±V1Îê§+‘Õ+Ö‰æAÖÖ÷lz”êm¬”¾´±Qj·‘±õWÂ+E*gÛVÛ~kû“í¨í¶íu;»Ïí ”tìj•~Sš±ëRŠ »c'>\úàòC« »îGjz Ó~4cåØè¾ˆ&«>RTŸ2‚Eîù®™-y…^þöí©KWS½ÂÓò®¼uÉëíúGöQúâÃËfE«Fuæí¾.B¨än꼪Ôc=™ß¨ÿ]úAødXëö­ÃÖôqÿCòU¡æêŸáýyïAk^Ö–ÀK>i•·L“å^;õºqý9N€cêcñI¯èb¾›éÛy—ƒì~Ñý(>ùìý ôjCäaAÉå O‰ñÞËÔJûP/ ¶øäå+#úžwµ]-KíUõâ¨@%KÏMk{¹·¿~t3ÿ¹¢–Ÿ†ùïcˆÉO^—v¦ ¥_Q¼ô‰Oö#W/|®v_¨Ä°J¹’úvÕlÙ·.[¼czE|Òx¥þ-ãË/¯j½Ã×É»+ïÕüö‚iøaøå/.[=²{t]½àJÏÕ'oËS,Qã)…©ý) ¹ƒ¶Q?¾CewK¾/r!o=ÖÅùGnD|ÅÃ#óU\m~ø>Spåí+ä+Â+KJëfo(O_jµÿî^ßÕ«W¯^5~çµ(»÷ƒ®Xš×<¶…|zõÆÕëGWKÞ¹ògx?‡4õÝÛ!W­.¨|ÿvÄ;³Ö¿V̓ԯ“õB£ }¬?VÖrø:ÄÇYÊø‘ɽrè³’Ôb‚³–œÐnO)ÑþsóóNm äYåÇI9›ÿb®­$µrít¨šz(ÁƒQJ~ê~~؇øGæÍøUcë/4‚ø¡6_ =ÚÅ'&žç#""Þõ¶ò…Ùx%´%~X‘üijlN`î¹ÜÜ·ÓØùÄ‚á‚åÏ«¡%Ÿ•u–aP¯ñUÌã¥>ÍSñ¨ÊѰ”ø”öi¥'˜ë‘±‡Ð›&CVNJ²0iwù¤ºô£ÌLÜGˆŸ"å_«LÖŒøèª 3ð<¡Åêíø7t=‘?WÉÞŽŸ<6*\K²Ë7ÃÞ¶ ¿y=Gb$Ö.‘«Íw,ž[>5¿fÑx¨h›–å8êøý§Y.….í®ïÞK†ÿ¾ç+|ä Dzjžø‰O¤ð¯¤,h¿þÀù'Btr 4×>;x#¤#Ô/œ•;x˜‘0|øSÚèáHºk,µðVÖÔáO©:ïãt«Cþèϧ… ´Ä'Ó±! ß¢.ã"M þ!°P/0‡›‡yÎÛ‡âçpm˜1Ì&Òz[µö즪ª*ÀåW—;®Ñ®¯«½¯¦£f¦6ã¦å΂&ªýàþ“ûˆûj<2qÐ½ïÆ {Oë0Œæ->¹åqG‡g…?úåÜ ×ýBï £/”ƒF=h…ù_XyVáþ¡ÔÀ[å‚z´à‹D/ñÉ럞Þ1ŸFÄWtøiDhF¸G¼/t×›¡Åõ¾ƒ¨‹0Nz-òãÈ/î~áWàõ£Ç+éýëQ.×mpp.8Xÿ~Ôå·¬‘áZ| ñûôè7Qu Y¥€k<­†¨¿øæðôLbG£>ŽþðÊ·×Ú”Ãä J!Qô¨ëÑÉÚÕþ¯ òQÃJ¿i}½aý–A­Óé&¢Ã'ÑHHlž"½ýÄ1†éŒ‹™Ðbê×!Á1ßi:‰OòPd4½#>ÉŒ®ÐÏŽaÆdBu/¡@ÅØ=H!úžA@쇿!>Œû3¼'N#®-6{>.êƒ!ì×|¤ÁçqÆÊU×mŠÂãpñ¼Š­ø{¾ŠŸ;ÁÝÞ/ÎÞçmCƒÃ*ñ'-&Ñ%¡$ÁÙðÛ„ïÚ<»Èä·Éñ‰I‰¿÷[—ø<ñN'ñvЯÁ%IÙdIfF’Sðj°zHºÎ{Fª!¡¸KÉŸ%ËÚÂít’M“Í’ë“‚ÁÉÅÉ­I+~`h‘Pœb–6É¿£b6RökØ»©R¯~´ž“Úg:ª]Ÿz>âý«I Pç‘—pœàæ´ïÓ:Ò&³>Jœ~7¦6ýBvy•å›ß¤?-'jÅþ¢Åsñç§¿_ñ<î\왵´J†fì‹`÷ ¿Ø·âže¼ß™ÁŽkÉ8½&3wÔë3;3›Bo\É*÷ÓËòÈúýÎÙT¬y)yÁîÏð½ÜåGÙ¨lZÒzr:¶BOb%ÁAúYÉj)'ÉÙÎ9ÏÓbs)¹ws*r0?‚ïÎÆ…¾ûD{ô‰_H^^žŸ^uÞzÞýû¼Ã@jÒ¯yƒ6• ýç¯zµf°2ÆÀ|ô¦‚\> N9ÿm°–A¬Á*˜ˆÕsþK¾ød*Ó!켞éš'gÔòÙ粉ùåù_å¿È™?žOÍ÷³ÝÊÿ„ #>9Ìÿ4'8h ¬X P`Rà]pEƒˆ³Ò’}ª÷ªCÁ½='à{þ~iG+`lf«ÞãM ^)<,¼T¤QtµÈ±èŽC§òWSÅÔ"zÑ+ÅEWLß/~\,§h©XüÌ·C5LÖ²X·X»Ôây=­Øp¾ä¤øR‰OÙdéåY••´ ™Ê•ÊðÒèRÅÊ+e >†÷;KoeWÞ¬ÒøH¡J­ô§Šo«2ÊrËÊʪÊÍÊZ˼€men,µOµä-^¨±‹ÉÁqrÚP;¡¶5ö@K¹´ð.†PPù@“£åç(ýÑU]šn²îÛz·ülËì¿òβ_yûÙ[—¯tg¿—\’Í3hõ‘ª²þssøÅ/.˜X$YXÙû@Ï \(T{óÂû•ï[¼<ÿMñü|Ò¥óæ†÷‡,/[UY\°¸NÒX<±ô³Œ´´`Y8ZŠ,ÿ± «¤¦ý›6Þ?æz¢ö3«+ê+KúÕ³.f^ N-Iºòš“uuÀë´Ó}R°a .xóRˆyuÌ÷ÓÓ§ÑeíBÂû{BA@šÉspªî¨MŒÒÛø>Ýoí . Ùv¿õ©,ë Ï;{É!Õá måÇBˆa’àC̵«×A~tJÏ ‡Œ@Þ…:íä~=p¨üŠ?p í ™I~ï"5;…pá½WpxÐë9ÂÄ_³+Tn@Ë ..Æ.y…~´¥>äbá|ᣋS©¸¾¤,ùpBùA¤QÒÏŸâŸ%^r½âzï£Æk(ˆÆ5}ç÷ãÄD·„p7·ÏÞ]pýQ»õ΋; ˜—îÚR†R¹[è^àNt+~ôÚãIC³Ì?Ãû8/¸!òá}u釖ŠkOT@š÷m”w¶‰¬76pýSOïqyšü o¼ã˜ªºês•B*‰Â(!O#ñÀð{Ÿ>/žªS*ñú HkdòÔ»½/ð1EÎh#P/uŠ4+²÷²Ö’’³nD,&"rjýßÂl€Ä'_è¤k]DkêjAÞD9Þöjà>’»XK|<>ŸntÇ(Ȫ¼þJ0§íª _Ñ\_ÕùJ{,“¢¤S綯=HÐ$Äg«Êõ×ü­ ¢‰ž:s¦¯š9êØHݵiø“Ai ¡úŸrík™ƒO´»@ûÆ‚Ly@6#ÉëúŠå-kŽU Y^þÊé]4„œo©â¢¾c¬J(&ü¦ý3¸Ü«›nq-;ÒîF`j`Bàxàh€S™aEïô©!¦6è1R ­|„Öc(¯§”µdz9Txþg-ôµ|%”V©AyòÜåKô`'ÈáÝVH ä2ÄùüNàH·³$˜¯ õ}ðósŠËP(ôåµ´ÐÐЖЯ‘‹a¯…O„™áîu7É‹rAˆ¨ߘF˜K(u:¼ëÅóô-}q/äÑë« ìRÈv¡AœgÑ'HEºÚ1¨þYQ<"ænÌoM_%ò¼~wÄ‘€Èo¤G<Ê iSç5î/ø8Èzº×:W^gBf¯WÄ=ç§k=N&œ‡üÞG'XÄ'ü–ÀN€'š%FÛÛ&Æ’cȇÉsÉ%ÉüÄfíê˜CÃÃ=­¤O’ŒsÌ\fÅ&á÷qXƒëþ¥å)«)‹aENä'4pRùAZ]Ú¦²éàô€£ß/˜[2ÅÆA˜dôüµÕâ‚~9}šÀÙ½ ú%óbŽI’‡®(é^Χ))¬˜‡I…¹u¹ù¹y¹Š©„vícx ÈѾ#ŸžÇIóNƒ§ jo‚Á[:ïP‘¶^þ—F>Ÿ‚³3VN÷T>Ù‰‰wSž&¿ðü9ëgßdM?à/€â|\¾jáÝ·Û`]É_ƒ?+˜Ï9ÊšÉee¾Ô·LF€½’ ’¤tdݽ£QhVøjˆX«¸cÒP-‚'÷:¦#oI O‹v 2LŒ Ÿþj’o–w<ÿž´ã ?ÃûÜ÷õ?»÷£V—O˜–cÎ=5K÷È{¨û¯¹[”Ø”„”(•\-ù¢x¤øqYyña¥¤âVi‹éE½ëe_š^*ý¶r³b¿âiamé¯1ï¢W0Q(Q¬‚A zÇÿfÌV¬zFÅËT¢¤«ü´ òÐZÈ~‘eœýÛùŸÉYf9L ]E¯ ˜V mà÷&×úäô@EÊx‹yÌF|rû¾íwz¿8ì;&9|X:ã ˆkUlÒ[Çéúå[ˆO¾»Jºä> y ò ÿH%ÄD”øKöÙÓ×?}óÒï½÷€»Ú€9N?hé!ž…9»×¸ýJ YYô€Uío žÉå×iÚ߀g‘û€immpxîš7¸îÂí÷Y c‡ Z, “ÅpÍ–\”ËNú0).›“û¾êÖ9 K˜uJº™ÓkÁùb5à X5@-àÈ^/À8 ^ûzˆ_Æ!nϘpÙ¯}‰<¦]å'¶ÿˆpƒð®½£} -О \ѱÑý‰xb*1T§—¸H|©cFšÑ!u‚IP‹œŒ}D¢¯ã§º@²š®;Â@wA©€ŒÔÅèº@_È{Ž×Â~øLW-Ð(Ð*Ð;Ð8FÉN!è‚|н7ô2ƒ ƒ~I5øy:B/3øk½çÁAQz#Á Á#z·Ì=BüBBBÞ ýK¨ Zšø14°šþ;ri$l2l4LÖòÅ·_”ãó7#îD¨…<‰‹°ÔúÖ¡ûCÄjÄ&ðR䃀+‘ïFºß<§¯¦aé ‰ü3¼ÿž¾ºchdLäýìÈÇúµ‘Ûm‘ÌHÛ¨t}J)ª?j6ê$êK}‡hß¼$ßWb±^1 ·„˜‹/bh1¼˜«±ª±Ö±˜Xl,5–l€ËŠû:n;Î /9þUÃk†- ' ·3A÷“T“r’¾M²J™LÙKù$µÀÈÕ±#uÓhË\=mÖÎÖ—vh÷ešŠñp=™¶™¶—öCz[zú`ºBFga³1µà½¬ Ï³³PY_eµdý–ÅÈZÏÚÏ:Èg³c²›³ @V ßʮ圳ù4çqŽvd›”ó8·*·t«ÇU nƒuó•À_ç·çÛÚ3Á\·Ÿ >2Ù-Ðw¼RøQá·VŸª a……X“®ÂRÍ¢·‹£ƒ}‹#‹—Šw‹ŠýMo–`TÚÿ*U/ù3¼/)³´Ï.ýµôe©¨ô(çûô²¦²¯Ê~-ë.[Ì¡—í–ñÊzƒõËs¤~8_qácߎœ&§™‹ºŽm9?©L½òÁ«¤WþÐÁ!×þæÐ›¿½…´Õà ¼Uf+|Kã’Í%ø¥ÐK·ÔKÁöß]Zº´y sùë˽—í|Ÿ–ÔÆ_¼råÊÌ•Œ·¿på&ôùÛo¹@¯Z\%]½¹šp5晴òoW'®>}Gã/›æÆ»Ä÷”ß‹L&ðч×z®šÿ‚}|ùÑã >~ð ö“¦OzotxLÝøà³œÁÍUß^åPé̃{¸Ï-î‹£÷³ïO=¨Mä>¨H¿òðÇ|‡F¿™>Ÿ$<úá×ùõÇï>þáqîcÀÂÓÁ§ ²Þ²Ÿ),+|åjìý›wP0Bi_I|òóé}öcåUÄ'†¾s¼‚ø3¼Ý·NÝDw}Gû'm ±èæ¨ñàôŠ’¶—ºŠÀ< ¸ÿ•q«w^-wzvã…Æ‰æEýiý‚a±ÚS#nl_¡‡JÇ-—dódñÉ»ÆBãÀoà_‚/ÁjÍã,‚^›O{d™n­ã€ÃZd Ö©?·3´EÛZ£Ä'Š:vò$»ëFvÞv=: ˜£·¥PqPA|rÁ)ÔÈ8±’èü*4ãÓJ«Ó»Üy÷wCí3¾v/²ðH>ïör†ŸöãõÉGkIG ¯mwá/M~ƒçý—{ðšC®û=ÈO|ò“ý-‘7Ò\dŸ—îÿ«ßuerb!íóŽ—‹ø¤Çò2ã7ïúžîÝ} ‚Å'ß»E‘®Ê¾^·¤¢ƒ‘ΨG°Ný_Š5¬ñÓ ÂZü¿wü3¼ÿ‰JêìÎV3‹Ì ¾•Œ—ÍfãGAj~å9–Þ•{ ‡ wïÄ|uíGôðÍë5j?)ÿ~¦ŽÁ÷ÞÍ%5ÀÄA²cà´ýŠî›Vª=UáFt½×ŒóŽ^ zvºüÁ´Û˜(z3ø­ï°`=`HxÐßaVª. ¯GWÙ¼†þ-[Ù–‰”‰øÎwó½§òƱ0Ù”èˆd @‰°Ð ø”ï¸M-8RçMeDFÄAÄ“ÈÊÏ,"#[#?Žz5úitRt¿’OLCœÀ˜íiŸøz ]Ö‰{@Nâ ›h˜<™Ìsz#E|Ò•¾qúÄ{5S3óXË%³<šžŽO¶ç䬿~™ûÿ±÷pQÝž‰ù,)&ЉQIÀÏÉhb¤÷ãè½÷Îqt‚ýA,pŠ€½#(6,Üž *v{Á*Âçý‡e³¹½Ûk€ß÷ý¿¼üpogÞ̼6ï½™ÙÝY;=·6Ïh}àú³ë§lµÑ1c>+¹³àGV‘©ÁÚìÂÂ~a–ÙW«/o2Û4âäªÓƒ²ËV±j¿êÑUÙÆŸéý™lv ð¹ùÿ¦çÇÎÖLÉl«šœ¾>}~ü>ß–y6Œò¹3mm6˜/rµ÷ÿ×(kôËÏy|C÷_nÈL¶ÌÿÖœb3s¤ÓÁ`?Ún†YI´b eý ö¡&S›Xï´[ë÷o5ÛG•µ»à3³—?Ì,'ÓkYÎKËæŒ<ä7ISÝK-©cþ¯óž=luµ}~¼Æ3½LŠ£Õ±lT|l™Á6ûSZ‰¶éé.ÖŒEË î™òøÝšã<êÀ›…NÛ_m³ó2ú¤`†ÕÞð=Ð$æÛ&ÎÚØh<–æ|ÍûJÎL/ïˆ=˧Œü!ä¾qÄHѨŸOÌt’[ûý¢ÓÕ”6Ö:oMð÷œéÅßp9áçɉ<¾NâòÄo6õ$|¶‘ÇÿnÓ|#GV”ÍY'žE^Á w«Oæ×ZùÙÙZ–;|åÊÉÝ•ï¼*Àº4Wk}Eî¯4à1Òÿ5 Žö¯MJùsLµ×¥”XêG‡Œ­[eÅã;d-Zç }5+7óO¯C.~i›™½Ì³gˆETx¢Š3o.?Îè&#ãÏæ×Gœ\¢Ãäñ+¡ÿŒ·›hÕîrÉ|ZðÅY›¬ë¬7X-ÎøeÖ¿¬‚³ŠY¹ÕóJó*6l/XZñuô·AÊÌØ?yüI¶Æ%1™4=Ã"s|bæbϤ%S2£3¯ÅÇÏ¿û<Ø/íS†cÚdÖ¥à›+ÎF,¤ÅjuŽÈ¸55])ªÞ²ò˜ñoË+Ü63Ëuyü9ÊCCyüä´ïÔ Ïî~Œ[tóC³Wml_Ñ+ƒŽ•¿F©äîßxsæÁÈOM©‰Æë<<(¦ë ’ ŒÝìÂ0†À` Ì€9°–€ ¬ X` ì€=pŽÀ 8à Ü€;ðžÀ x˜oùA! „p"A ƒhÀ1 ÄxAH‚°,KÀR° ,+¤‚4V‚ VÕ ¬Ù` ([A Ë)%`Øv€`Ø ö€½`Ø€ƒà(‡A(GÀQPŽãà8 NJpœgÁ9PØp\A5¨—ÀepÔ‚«à¸n€›à¸ î€:PÀ]К@3¸îƒà!xƒ'à)xžƒð¼¯ÀkÐ ÚÀð¼íà=ø‚ò%å+ÊhÊ×”o(Š”1”±eÊ8Ê·”ï(ã)ßS&P&R&QT(?P~¤¨RÔ(“)ÿ¦L¡üDù™ò åWÊTŠ:å7  L£L§üN™A™I¡R4(š”?(³(³)s(s)ó(ó) (ZmŠe!E—¢GѧP )FcŠ Å”bF1§XPž¨Q9ªò¨£ZÁÑÿ!ÿS¾Úô1***Á&¢¾T}¹ú u¦zšúJõ õµê›ÔóÕ‹Õ·©ïTß­¾W½Lý¸úIu¶úõjõõËê7Õo©7ª?Pïëo‰’¥’“’µR´M±SÁD1M)PiQìÑ5—™Çì­Ü·%v9Z«ùªÙ©¹««y©9ª¨¹¨Y©y«Ù¨¹ªªy¨Ù«ù©9©ÑÔ|ÔlÕÜÔ‚Ô<ÕÔü՜ըj–j!j¡jájaj/ùCë×4 ­Z`ºì°Îë¨ÃT# £‡©ºÙõã^-æÌ«ë×äù»ÑÎÔÍJ‡‚†ŽÞeñRu˜åO!Kã4†9yH‘[ʃ!õ¡)<¾"5~Æ(jpÞBÍ1K‹ŒVPÜ©¥¿RùÃ{&=Rj™CŸ¾dÜb§¤‡†®Ÿ{z„:rŸ‘žz™ZKm˜{Zb|ˆzŸªC{I­Y2?`ªf‚Ûp«ÉVs­[ÙYåXµª²ú&QgY³ÕÈå£áª£1ÍÈæNhÊëÏ^,ø58übðä±ßù߈2vß9¿ú§cîFê†Ðè´]Ë“aýºoFy“MÛ˜¶™¶‹¶—¶-*ÒÎaÁ¦¨Ó´*šQ°‘ù»;´]³W o¦µ,Ø:õ=-fÄhë¸ð_lì|BB¬iAô‘.6«¬‹¬K F޽;ªtžÙÈã©y“ l^šþf=–¾Üf̈o)ÏÖ²Ò›©{È·ô MÛß´éE¾{|Íl-lÛbÛlWä~ )ؽ¶}ië›þ£†ÅWúvÅÚ¡Áéá:v4’ƒÛùzˆ½õ×^ 'Û·›8Ûï´÷˜Ùlß`?÷«n{¾ÓB;Ë-±:ײ·ÌœèPâVÃ!t0¤?Œª#Íf͘¡ËÎ;˜\üsHÃØ;ÝcŽ- ‰™¢|c ×A/t—£—ãcpí;Ls£ýšã–0kµeó¾7]óȘ%®W¬NLŸD§Qñ-CŠÒ 'wßV;}ë”ïô…ÙPgÝïF;_ŠúÚ¹xü” #细˜Ÿ9¿vNwá~¯9á e}—¢ η\zOýCÑÈhR”ÊŠÅœ™£îšs×ãº×F”ÐÊÍa4¢EŒýÌõëâ¥\×n×Íô¸Î÷ÿ.g¤ÛiÅœÎÆÙ{ gžíÆô¿ò#Œ¯ª^n'rCC#Ý´²5Ò¶¹•¹¸Í³´ œØî?ùfVÒOiÓÜ—ùÆ({ÍBæÍÒXmWúïˆ8­ù02r_l´Êˆ_D¿g¹ÙÑÛCu©ŽGIçÕÐE喝Ÿ¬ðØéT¾`0¤ï6åšG~ºËú+Óg¥ützÊîÎ|Ò½”«<ÃÇÞð©ìÕd4vöÞ^™£{Æòøiaê_ç­ÔúÞîž÷#ï„ßÙ³½íf›ùŒ ›bü£ñ2Ÿ7ŸdpØGËHÓ¤Öç¶ÖOÊÍ>|šÜf(ûvL뜦ë[4­xš‰oô(?ßÇÔ(_Þ„iÓß-ãLM«Šé˜R´^ÉoÓBã_ætœÑäñýü<ýj´_®¾å÷L÷Ëйkýÿ¾9ÄÅ?lƽ€áMiQgýkf*(LŸ§8{®FÊœÝ~Æi=:y[æœâµdµ%7ÀAãg½À!šùoçðãnÊ9÷û ?ktŸDªù÷áÐúÙ‡‡ØÓÒT±vœs/¨g~Cfpºj›!5È1xòâ¸àãóªtOÌ+Òa¤0(§çç>Òh™;}ä’ÜiYª«þÔôW ÙÒ².Ä9$1”ö§Ñ2­ÈÐß—ÑÃÔÓ©/UùÚoóiôÅ ªã,B³M@gØHÍü00¿+4÷ëyZ6z­ÙºaÎaæóèaáYsæ±Âtµ¯…eiÙhÏÒj]Pº`vÕVÛN[Kû®‡Ixrø¶ðEáÕá7Âo†7…S´ŸÎ+X£óK„^ÓÑ8‚Çßäì³Ð"Â3û´Î¯Žºÿ6þÁ¸"âiú‰ðQ‘:9ßD~é°0G5R;{¨­z¤V$Ýè„¿M¤]¤Í|]0Ò^ØâHÿ—¨ a¾4¤0§D©G]ŽÚ5{„zàù(#ú}í'cTô­Ò(7Ê0ê6êˆú†>$`²ñ,úÙ¡·æóø{¦¸ÓfÐF1èG—Ó&Þ–ýkàb:Íh¥ñ Ø¾vœñªt}§!+ ”9tæ¸Q0Ûœ}'ÓäÛ[N»3—e›EGûE‡F/¶ ,m–íB/ˆ.VbüÊ 2,a £Ýk5ãõ¢NÍ/Fla3ÊÕ V˜çÒ|Ë$êø b&ÇhÅìóžde³{ú¾ïTÿÔÓcÞÁÜž1ú+ã þûb‘Øk±ÅëÔãšmnÅΈ;;‚qdÕRæ/éKÜÇO^§ªggŸ7+anÜŽ¸ŸC'GlŸÏŽ™u=NÚ›ÿÀ?ðüâaóÛ‘´v*(0Þaß¡oǾC߯<…WðÚ  0¥käwXîÛÝWÿ°§¯ÞýCß}#¿ïê¬8 ½Ö)õ]í)}×›Cû®ÖŸö]¯ë»Zþ«ïzixßÕtdßõ¨¾«á}Wö—}WÝÑ}×3_÷]µÆô]ÿÙàäØQèwÛã•ûäÖ9îùý/ã»QnB=p¾ëÓ‡þ÷}×sú®:“ú®•*D}mvFÖ]Š"¡XéWì-G­½¶¯¸wªŒíÅ©7šhºXóåæí¯'z3]yMÃayeÇ*…%C†FY¤¥;tøg?*NR‚哲”ܶ"Ž…I) Z¶Óµ'±- •PÒ*·+ـٵê¬ýmÚÌ¡³,)½å»·~]©¨4rêrfС•ÕíuÿRŽï-Ÿ¥ð¹nÏ•i“Æ=u߬=Úêç®ÏzËO*.úâ ÷òÔÓu/»ÞÌáln¶±—Le…úh×Êí s[¯è6ïžkòøûÏ{Ù:a«yêØíºaË+ƒs*÷'bf éeÝ+½jŒ²nbžIøçú£W¾²6P±·Ÿ§Ÿªþ0‰I œtëû韮NY¨Ý[î´F_žUþŰO)¥*wÊ?þ§žS/ú ú‹s”Ÿ¦)®žïö™O.*®Ü[Þ0fáн/ò+(ô²©E΂7”¾Ëø¶†“É= ¯¸š\—bþÄ[½bKYÀ¿},öÉüö{N˜¬;®~ئ·¼2äwÍýϪY?'ÓªùfÏëØ|Íâ>)÷4N§m¯  ²ß@ÁxÒ¤g·ZÐòrE­i>#TµÀÔÕ _AÀf¹Z¯—‚IZ”-)îJ “PSɦ4iŠ‚‚â°ÝFâ4L )hÇJdUßîîìr¬ìú½Y¤°yÓâÕŸ)–Vîb«´Yg*•þš˜t÷¡çU>ÑÿÃݰ²Tµqis¥joyeÕŒÊ)…{×+ÛõÃ9BZf¯ §ÌX1ü›Z­®y ”«C ‡y<¾¥¿r꘯S”g_ÇŸÖ+ÞÛli_e"‚ÓŽ)xïÂtbú2‰8L7¡’¿!éO¨ c†0·Á’(f^ÃŒÆws˜qð®iËôÛë_àÈ &à83C¥´ —Ú§dèá¸2é}tqäk;ÀñÿÀž¹ˆdº3ðÿá_üK†[˜ï9A(—ÙtÜm‘ÂR9r%H·PÇ“SƒwØ\DRý[äÒŽ¼G:N¤ éFzòÑâhst8 9º=Ž>Ç€cÈ1âsL8¦3Ž9Ç‚cÉ¡r¬84Ž5džc˱ãØs8ŽgŽ Ç•ãÆqçxp<9^oŽÇ—ãÇñçp9Aœ`N'”Æ çDp"9Q:'JʼnãÅ,bú0K˜WIetí¿$9Ùà0»Œ]Î>Â>Ê®`cgŸ`Ÿ”Óƒ .Äpb?¢¼œ-ìBöVv»˜]ÂÞÆÞÎÞÁÞIÊï.önöö^ö>ö~ööAö!v)›Ëíä>æ¾æÞå>å¶q›¸/¸íÜÜWÜî#î3în3·…ûŽ{Ÿû„ÛÊmä¾ä¾ç>ä>ç¾åÞC¿-Íãöp³obÜÝ‚×Ûœ;œ:x­‡ œ»B|7î›8ÍBõ÷àý}´ìü÷!ü{$„ñXàþ üýT¨þvÿ^[8/à¿/ ¯8¯ ÷­ø]§†Ý̾Ǿÿ_°•'ì§ìgìçìö öKö+ökv+»ý†ý–ýŽÝÎ~Ïî`w²¹ì.v7»‡Íc`k!Úˆ²ÑEô}Ä1DŒcÄ1EÌsıD¨ˆBC¬Ä±CìÄqBœÄqCÜÄñB¼ÄñCü‘$ B‚‘$ C‘$‰BèH4Â@bX$‰òY×978 컨´D$ IF¶ …ÈV¤)FJmÈvd²Ù…ìFö {‘}È~är9„”"‡‘2¤9‚E*cÈqär9…T"§‘3ÈYäR…°á ç‘ ÈE¤©A.!—‘+H-r¹†\Gn 7‘[ÈmäR‡Ô# È]¤iBš‘{È}äòy„£ÉJb}x7y»—h›»9Ðóà­K ®‰á±žÔE°r¸"ÇÆïªé)Æ…ØæÖî¼>Fëcz{…]“7÷]ý7ÿÕîY¼“Iz0×Ê8™~‡E,kA¥p‹(±çM|þ Wy¿²´+¥¾=•<‘ï‹ »Vvýu§—)‰’^Û$ ƒ  Zx-§t“ÎÖcx¯Ð¾Ž`w¹>˜ln®ÅðPšëðù«½ER·}–÷>ß6ÏŒàþ§l¶~B˜ó˜'kÏ:‚–òÊÄX}t­±ƒ-JpÝ…ØûÑ–çx’Úmñ›,nŒÍÿ¦—KËë½öþÿÈNwS :Ý#`Áè(A]üÀRéôB†ô+ î"6n"1rÁ œ¦ò¬Ò#”®ýûwúeæÖï Q¼‚–üH0ú่E½†%þbñ-rËw°@§G:ŽtðÑq nëw·êô1Z•I;ÛI}X‰XI„Iè5\{ðî·¬ÝW —Ð3Î eAW‘œ­ü¤€Çà ž¬BƘ;HV~T Ú8¢ó³”`)†b²$tü$´öLš1ôž[Ð’Z©YiÔ< (»Ž$¡Ê•í•$T…÷w×q,Œù‡sˆ­Îô}äœr—Œš{*C,Ú3`+0‚Ò8-eþ‡AÛÞ/2RrN—ˆÍ÷B\ŽpÉA‘¶¯$̳„õÂ%¥rpY.„{Hjl;–Q!Òÿñ ]Œ7S‰Ù¢rl’&MŽþ†³¦#˜wh…Qí™L>ú½V•D©]¨­ÎpáÎöÀèìÄ<…ŸnnùŸâ~åÎýÛ•Òq>&܄ڨĢE#.ñ«ñ£X¢7ØŠé®>cɪä°Ìù‘ˆ­Ö’Zo‹€õ°!•—P¬RÐ茿IˆëU¹¯ñ~n ðÚ*d¹%BÙÀ)<ï{‹cA¯Ó.£ŸˆÌ#ÞdÆ#•´%aUQïùÑE­&týç%´»R'fþÐÖó8NK1´ kR˜H(-$‘T<c/NGhÝyŽvúœ“X´gHð¸á9&h&w D`t®ävˆí ‘ ³[ÖÜÿŸ ©à’—i¿/ÿÌ¿3Š´çrç†ÿpì’­´]¸ƒkëq©={N:øÿw^õ“F vÜ%e×ÿÑ€ø±’sµ|@©_ÚaÒ“›Ýi þlçû‰Oü aFÖÊ™µ¯7„sÞb-²A ÿ¶{xE3ʯ'¥¿Jì~`'AoÞxµAcÕu¡¨šH¸¬½G(1óì„,O’açq'!-…z2ky[Î,ÿ¼@d¶äç?¤Áq±íáØGÒoHÈ´ q”J«ó˜›Á‡3˜åÇ0o·Snïß.S®æÞ/éêeÙ‹¬½=‰Y[—‘úô˃òÔ‰ì´.Rk!rR¥jê±”SÈ[0§ŠF­ø::§eÅ Øtøí5v] ¤ËxSJE ·öìT1«÷ß ¹Ÿÿû jdÈâ¤Hæ¶â¾:({·Q$ë÷£POÇ þ§VŽœ³\Fé¼#‹…Ýç 5×d̤ÁÞÿÐuƒ±¤{, ù‡äÈ;BÜ›x?h6p ÓT%ô6çXpž¢^'’`W§Ø\_¤[T’¼_ñHês1 ¶Ä'Œì$XX·ÐŒ¸’z£ü4¤¥þ¾/Ñæ’¡'ªá”ƒ0çO'fHzºJ¼*q¬Ë,Ùz†ù×Ð~ï“ä×~kŠdz®Îf”'s Z¤ÆŠôU†ÏŒë°åU–pý6´E¡@Æ*#=²Ás±ï2C˜œ£oÀ·Dec‡Û«¯Ø3©›¤R<ˆáï’“†Æu»I[„C…²KÞ`9m0ë6NÀž&Âv:¼>Q«_%ŠÅçï‘ g9Ù™¥¶“€yGH¶r<¿µ%;n„T lAéz ’5–d »r •)W;'”óî]ã'FÓ…kúmþƒ:[ÿ*Éü#¡1‚¤Ì oë(rþv‹/w!N¡„÷.ÏaxV0²ÑHçªMAÊyŠé„é6©k{—ÿ”ªdR™ÃäU­¬Pc+ü]ÔUº±D¨U6z=j•;`­µ=»mâ…¬£â[°’Pnï ´Ý/£ÎkXOìï@W‰ØÐ%”3ì—U•ÂVçVÆ"bì'ß•Àz G}mãC û°½7cÚ UU¶b{?„õP&†órBy&¯sÝ,d*º9g›m:(kvÔ®áü&±þ®Û±ùÎ ‚Î;‚\vŠ‘½DÝ<€ºõÀõÛ†rQåÄÁfd-¡×«"cT\—ÙêîˆÅ¬‡5ÍXÖØs´®î'©ñ›Pü»ðßg<œ'}'ø~W Šó€0óíukRÛ²RÇÔ']…¬¿ïŸË1s^ví!œO8t¿îz ³žXVzá‡@?òBŒtÑlô>Ä–+ZWBýØösŸ:Ž… :~'§¯ØB’[ub}´¦ Ôtàœ_cA9à3¢-•+a4G˜#½Á%ôVOⲆšÞŒÎÐw$Ø×YÂ%qböÏÛS·‘îSUì[Úãr~/0–^ÚKµÑþ;Ñú6åÚ%D¹´…S$m·’¬˜;ÄŒa©jˆÁuk;óYß—‹=GÐ'E_îSB/†X>ÚˆûRZú{h!ux™,ÇÛȼԇ«©…b¬ÿìÑ ›íù­XÿOZžH-fÔr–¸±¯À-¬—óïÁYðH¨=‡¤? 1û-$¸Öצ»Ζ›Pân"q¤ãµ\îSÑ« žŠõ§ÒÏdyèqõ\ל†º¬Bía+éŒ †$YèÉk{B®÷ΫÄì8‘úg(?'øg'FæHž£Ì»N¯„F¾/s°ôÙ³jèׯ£öîÝÍ@©p—@Ë#ÔNÏ`ÐÍŸ(¡½ÙH–,ôTcXÅyOEx8)z‹®ÓŸ u~bÖ7Ix^ðN`Ý×ZÔi» #ìw´¡#h œêc»%ž´ ì <^£Ã"Öú‰Èo‡ÄSÌÇ]µÿHÊIEFM°Œ6T(@Í1L“>èÕ\æ§ECѱšHøz€Fak&¬Û7 ÓáBæ±/ý„Xñ­ Ã=\·I“ñ™s‡+yÄç8õ±b²žHlŒ)2w†þ 5ïÐŽ½û4´[—ÔFXëŠzŒ „ŒQG™f‚LZvƒ½º÷ûÜ@V¨‘rþuMFŸjJº+f%`÷gñÝÀ2±cÅlùa¾ÐYmb`7‰Gés¶-Çó¼u(~P+E˜÷hÂ9¶–ë)è7Jq[¨$ÌaCèO«$…`¿/Bÿ'a]á'à³ï$pµÛ3Õ‹ÔS%É}þÄ’ŽS )ÞÛÏ·ÕjÅØHt÷u Ös³û¶P­ ”®)ÔÉ}Ôc—ñ›8²@}÷y–p™®HI/¼Ô÷ÇîÊ8ßdxC]¿óݬŸowìY²õ…­ zoøm¸ò~·Å}(#ÇѨ¿Ž•H¥»ÐºäìÛCÂSòž[0¡%óIùŒ‚ç„ìé:‰7jè³¹/æ°dÆÝm¤ôÙ£3ÛWx5&ǹÜSLúÕýøúÞ%Vlý°ŠfÉßO/´Éh¼ZÈaùæýœ%ïpº.a:‹–øˆÉ ã v0HïéJyÓƒ†r×-×Ê[<ð0žVkAûÒîYØã‘­ßã)—ƒd~7ÅT¦ètàWØH}|<îj¡–¨{´©Ý'oƒü%´G;:ÂE²nªPÎ’mæ¢\‘,ÓÌž8÷ ©ó•¸²¹($—:)«=Ù RÛLà9h€ï' pÖ€öì/fý2HOâE,Äûï¬[Ç_Ùà±á‘Œ_ûpÚ¼÷×Zbw(ÚDÖêf|K2K\M$N9C‚,vˆDP”›X›ÌCÐIû Kà<«‹h™(K4îÅeÇ¢6r·__P‰†<3£K´¸˜Œb”¢B]g…Ö=q›ãHýDœ» ™è¬ég¾êÈ’¿Í;´MiËx±þN`uû¡Ô¢ûý }èùöJ™ûIê©^(!#Qß|¥~7¦k'´ëöå¹D!¹Ëéi=¼R9ÎîøÄ°©'©’rÖ°G¬ÌÎbùF!¦cò2”³­& ³‚¢ò}Až€„ÃñÎöÞ‹å¢r éXl©;·N†Ùv¯ãëñXØÛ.J¶ÉÄ‹K´Ì£ïf›•ðúÝ.J[H ù­Xiïê)”z–üõœ4û’œþ±J†YsQ Î!Hó9gÝùžÝPšìn?È}òGø"G=oeZ¥^AÛ³çu ­½ÞO³7ã–@Ëz\Ó^bw‚nÈ8÷ê°~#Ð ù®}û0»}#foì66JÖîšÐ¨÷Høe½…ä)‚S‹õr@hÖ8ìBX‰¬`i%fèïS"ú‹”°óoÙ}rPâU[~ ÷Ç`ÄJýʧnËO kû©omq%اe¿Ÿƒ|’÷§ÿ öë ͷGR%ì€Éà° ˜áY¿«„§Z“ä:É7Xû~"¿%¾ëïŸZ–ÑÝ“´¹'/@$ªX 3Ö–ôìã<ª«§˜l:e¤éÁ¦I芴ÓB×GHcñÆ£Y}j8 S¸£Ø˜ÉRÞ&y'Á¥ìQ=AÛ¾ÆÖpÆQÊ¥_S50äðÞ|À8!1.oÙX¸²|CÔù·…%ZF²Î=ø<<‰ŽY$Q®wÄ<ëhŽöZ‰öÐJºj-ÍÖ;/¶átžÁù.“p¶oEèé4ÚF_Š4j%¬T.°Ä×õÁel^¼ÛtŽT3ÚB¼™J9Áµã½îiòŽ:¼` »Ù\(U{‰çV®y jv:^Iñe[¡Ït$ÐÝ.ÐâuösL¢Nb|–+lÏc§´¨í¢æ¼PË7øl 'Ù¯¾ˆa;“ØF_@Ûó¹¨$.‰Ð÷œD*n¼Öì2–hùe¬µ×Þi½’Ñ&gÔö”ó«¶>ýú n/Ô³þúÕ)'x.î+0úeB†^ûQVs²ÃÕ~ó&"×kRz|Â:!ó7c®°°+”Y$iï¦ZTzõbV†%æK— g`Èhž„¸uã)V õƒ~u‹J-äÍnàÒ«EçS™ÜÏ1#¨ t¤î9E‘úÑ–¬ã¯¼…ÒÚ½æölØz ;ƒ<‚D¢ó%Ì7½íÚ+³Ø×].ñ—: T;¢Ö c6dèŠÙw¿+ÔÿÍÿÒ—°EA{å (OcºÍðߢ@#ÊA“Tí6gpô_A¨äqE2èä~¿U}HÀö‘hñÎÛ5‰YÇé~åáþèˆå¨-=À©ìz”á ½‚NÅCÞžd<•Ú7ÂÛOà^/ç&I´g÷èŠÍÍžIã¹H½%Á&ªe˜·ÛöRkäŒ÷—qü«Bš|)BY…Lk»*ØãU9¨hð—Q^ɬóëã¼X×"ç;ÆAŒHgy»úõlÎ+ c¾o†¼ù¡;ï±~:„úë"ͽ¯àzÍ:ZÝœÀ>[ñ|á ëé« –yaÞ£DjÖŽ®ÆZàj9<7,ï¾ ºÓû½í Á©<×[ͲÀ‡XOñuø#Þc‘ÞŸÈ0ž5槈¬ŸåêË™Ýz‰±“ãú—¼5áyï×íÈ—¨( a‰#ž ¿Â[´â¿ÞÁ_íýøÊY²€wºÛŸ…+rNnýæ+¨²`t…6óŒd_£ãêôüvèo*¾kÖ©1"¡†‘¿$K«&äÏQžÚú2&¹|MLžyYB®Ë%™§òŒ ¶ý{OTÕ’ÞÍä%o²Ý¼L¦R“©äþH*©Te2yoÞÌdêÕÌ+VeÁAQTQÍ65\Ã&åºDeSÙDDPDÁ]DT@QY®ùhÚæ,}Ö{AçÕë*8÷ôòíýõ×}úô¬Ö~ÌãwY£­ùrâ#ÑuŽo¾t8[Áî$Sg!‰#\¡¦©]Añ Û4¾áçI .âE^+Éø±˜“H¬¶´;^§)N;¡Øë:g¸†Õ"Ü—¨ôÞ^ -éóÍ«æŠvN¥•ò žáÜŸåÜ•1ê°Ó’ ’ßE•Ú=Œ,;_ÀýMlÓíÐ[šö|õ¡e2V9_rÝ܇´n]j¾@,§^¤V¥yƒw ƒV¡‚jnãKÖB-wèË«S—JÒ3^·9iÔw„ñªÉ¡F¬Kiõ*-"8ùTrâi=§Œ$Ÿ–Pó†T_ŠÄÎ!¯Ö™3FõBHí³h,DpG¿Ùʃ1a‹8o9¯FQ0:ìÎñ7€ŠRA‘‰Û|ˆ>ŽIJ;Óˆ1t ‘óªB9ßø‡ŠŒ9¥¬ÜÆŒS‚:‡©6zžDôGTÌ ^ï fÍG¶sƩ똋ÃÌäµÁ-ÂÐo„j€¶pªÜÆñÇYÝH;ïšyR:Íð¡„P`·¤•¾o/²çöŒ"þ½‘W9+Y×ȾU¡FÛÒÊD3£¬|:'Iå=2Vµ‹zÊÛiöU”r険d¿7Ïò*1[“ï‚4ªðÝ}>弬fêpK tX¯ØÎ(5«™‰ÿëwÕý…ÉE’o^cµ¯©\'÷Wð7P›NÅÒº©aä1Õ.ÆçGsc‹U~w£™ÌŸžª+Ú(Ô>$vÙG`ÕÀ¨ÑÍò½ý °lxà6‰x÷.…’ü 7™½U/1¯&,[Ó·JÞ sG‘xÛà@wƒz'+‚¼Y æçà 5ñ˜Ó«orvŸ'áqSÙn«~¨Ä9I³A*Eš÷ðxP©šçÌ’µgÜ¥¾^(*]Å‘€/жÄÝ!ãøfèGÔöK)í 3ŽcDÛ0¥¯X­ 8QE±ˆ_ŒäðèÍÂ%;pé-dcbZ­ü…‹“¢ÞÚa:8M_»Ê¸á"6l'úto–èB´vË£-O­Y§g¤¯BRK^ÉÓóÏòãŠepòÊýÒóRG-ŒÏÎÐÇîRôÏ$øO@S²ÔdKF]…Ø‚KEál"í7ð¢®Ov7‰–…ðJ6Ë< ›öóT¶0”ÅcI¤~_#rÇÔj¼mÁ 8}½‡QÓ6G]x/Pµˆöj¨ùþ¬~µÚêßur§ø‹ãŠft qXòlTÜÏ®¢šk 'ë<­O¿u‚(¼6ǵ¨ìÏÁ(å,-ÞŒ+Ë(A÷'4ÌÐZtE Ï‚ïIrµ|á"?¦[à!V[å{†›o _E1•XB€Î„- j‡cª¶Â5ý¾h{(£#oÞóÛ'ÐÊáõ£r²†•Û!ᣠ;Òw*ê%Ë$5˜ÅƒqPf¶Œ¹¤N¹ÈžÀ•Ôø$»NãjÂ*…5œùouZ7h­È‹õaÝVÈÆRÕ*Æ£ò[´$kã†KzxŒ“Èç>‹¾Y‘iUìšHL0ek…„×­1¶‘Ó5Þ[DÏ ÞsAÝ^’Ó—î¦Ðvæ z ²QÕ#ÁÑe‘Ø6F˜³ƒã»wZíIårQÛ_Jäçüα@ÙÍÚ\Sú3sÖ¾Ì}öéŽq²—Ø/!gå–íZA±©,‹üó²„;”Þa±í¾Â|¬Rì[2¼·ÔwìV#˜y1D¹UÏnWžÖ²8 å¶M`Å Å 7'ÝÂÿc[Ý €ÂÒ› ë÷]†_“›ŽìR™:ô´I”;?2²Þð¢À|ûKYX&-zàž–W†[âCYÙB(’µ*8½õ-ÔôK9Mñ=ÍœÕçBùV„åˆ,·sPß!”tÀØ~y½m‚¶£¨ÖCO¼K‘H.šn&umXtXôõÙñÉ=?<Ùµ¾uÁT´¥˜Ƕ®my+c6ç/cqkkºÇÚ<¶ÛÎd5–p¸w0yb˜VØM>™`ˆGö†Kž´pÌÑœ›ìhriGZ½¥j^†`¿ÁOg:AGŽ)·ß,„Ý—øõ‚„ L…‘F$ÆtåÌ2š#Rƒü{‰øÄl£¢ïVϦ>5qFt8Mœ²1ñ¥Îú‡?±±¼÷#xO9Z‰”ìeÞín4Ü!1pWÂ|÷G'Év®˜vGè›s8|”%>J8‘ÐÎêÕî²ß‹kؘí)«[÷8÷ÄusPn!ŸƒÌ쉞Έ>œª(»î{4Ìa žÆ-šý”=¥ª¿•›¯áëº9¦ùZ…Y5Ú¦¥§ù=cÝËúüžoºÁæžpF“hµàý×¹ºP™Çœ¡>Á½È4ª‚ªÅDwy‚¸4›™¼^–-–(:·DÁ¨SÎÒM#^o€£› QVAÉcÙUîNû‹ªæ×–¦ÇIóu-î°è ™M\'u›)\-3ËÌÖj°-@´uŸá1h¼]BN³p<ç©b„õ‚qç‰Ù{`˜] êv', d&ï¼a~…~ÏëÖOáχå½Â!„gXž³Êúx½®—Õ¢Ñu ¡l,Œ²³l1楟ڃz†Y¥ž k²á·oúã¸:Pð´ÿƒ®Ç=d&þÛ4WQÆ›uØŽí¡†-Žh^HP¼$ÿÊÓIü㊄\ÉoŒ¯"6€:Ò­A¹ë4}™>Ð4/e` ýd;óîÝz¬ ÔË×Èô¥ Ò*Ø40ú Ðö” IP^ƒå¼•WçuúFÅ=ÂLý.ßUE¢´…’Þm^â|Œ{¡äÉÄËJ¡.XÐSCE¸[¢É&` Çôs /pSk•5²‹Vˆ½ÛblyíÌÄ_ §.-ŒiË@Þ2§GO$jof1þ_ͺÛL4´B|‚AXÉiáOîl9ØÖÉÀ]«ïd SaUÅ`A[ þ!ޞŸσWðd}Ÿ™ú}~—ÈŽßk,ZÏ<.?\„ÏÜêqŒ±ÕÛF­½)q#O¾Y ôfœWD°û1S5Öàß§‘,˜‹õ6«´@ÚI¥ã>e¾s ·É§È SñÛp‚š)¯aÍs<¯©ò/Uµe’!‡jÃ>Ä2v™8¯)’àíŽä¼°â›P‰o¹˜n$¡d»L¿ÊRЋªYrØÊÈ×?ˆ`Â3 ¥TªºçK§lÓ9ÀsþvP ŸÅ¼ 0ÿßüž>[=ÌÒÚfâÓK3ƒÈàHâ&°Ä`fªì(.;†¯ãPþÊ m÷ç! …PrDÄBŽB¾ ü£Öƒ Éc¦“šÆÐI,ä”±î2M§Y>#iGå’¥¶§XB%ÆqÓyjþê÷} ;oíSÇiyIEOx"y hRK;y¬ö÷›hÛh»hûh‡h˜³FOä9G» ëø?7Ú#Ú3züZ½0Z ç*(ñ-•KYÐòn}8:/Ú~öOs`†YŒá@8 g ¤JU0[wµAýÛ»"êÞçì¬Ë„ßYuÃÆ&’wµŽÞÚÚéqí»w¾Áû]¢¥+ µFæÌou(yýToÈÓé¾÷ïzƒî®NWö¹ÞàQ«#)ï ½áä'å@}h~à¿>2ÉïçÇà õ Pý³±îoét;‹~hçô|Ùœùƒ> ¥“vòÙ½áÏ€Ï×gõ†ÀµþœÞðO¿³ø¾?¯‚z@ÇÏ<ÀûÉ…IºŸ×@oY´½ýO=àü—'õäÓõA_5é ›ï¬kÀÔÿúÐ ú×·¿ ¯£7>àci›Þà9¤ÓåÞ‚öÍ ; W°«Ïïé  ú¸ô×€¼B= ¯®îA': >ð“Ö õ®ßvé ÿ÷?ìÑþ~ŸB9àÏ{®7ü®úÀÞáúõ À ôüóÐ ×x ×(îGoà ôë‡@€gxî©ï¿ß¥ïÒL$›°oשûëpÙ?u_>ª7töNÝ7Áý§Ÿ*‡êÚ‡(zRHK[x{Ây÷NÞ’«µàü™ Æ4sŠ¢D©'4®ûjIîѮёuNx1[ó°`Ô5¦·‹g¾ƒhÿ%=u©æµ!a»E»ä¦RÁí zY ê[©%¼ž~;%ÂJTÁ<}d‹&X£¿“âŒ×V$EíñÓüÅX-iÅHpÒ* 1žähb½Ä>À@…ßÍXõB­¦Í©ÔÆ¡í,c·;œŠeõŒê@:YA8ü"ýA¼¤Šš&‰Óx¶Ë@ æì·:Îz|™¬Ã–Sdm7RFÕ´wr †Qñ~¿fÚA_ ·â~®íÆB•¦óV±æ<‰ç`"5íñ°ê)–¦ÚòÓ™²Óf‰ÊÔOówh•¦j«y¯óV>ÙõcJÅ1šg´ÖHógt¯êô¥* ^C—/˜úgèôØ9õ¨î¥«’†TŒµÙ·¯zIU¬T+ òÌøÝ€áoñj*š^Vèó;Yü{›/³8y»Ï>6[F:WpÞ¨ NßÈeÕ\•­}MPc„µO&Jõ»7¼lU_Z÷Å»÷G/0Kb×sv 4ËpТ@RÙ¥ ÃÏÉL8¨p4ôˆŽmCòº™lɱèÌI8›ƒ(äÙøbàÆÞè jŸÍI–*©ÒX@K[UôÆ6Ó]R»>6ÁóKºgZmÜhÜI¨µçœ×Ð4­ÑÔk‹cÙrVhîîï 0n2n1>Ž=(«^ þåçDZöø6<ù÷ÇƆStÒaqÌsßd&ë8cšb±¢½[÷û×]ý|>gßC“ pú2¶•"‡#²»;KTjÏ×ê3—>ñæÙ»™C‘Wl–1‡e3VYXIíA­ûvìÏÙd¿ Š‹0FNû½'¢œu*ây'Knû»LQ±!ˆæÑÖO%à>ã”Se%îT?ÞkzëÇê‡ÎÆÆØ ,©vc}²Ü6Êø¿¥±ÛQÆ~8/ „Ç-Z ÙÌÑñ«iŸÓçrðåÿÌË6ïU4FûZ<’‹¥3Ó4Ã2'räß«*Óš^iòf}Q)Ž»7¤-šöÍ7˜>×òÌñµé¾ÊOQè|‰5yÑêmØkcÕH¬[víb<Ñq±V¢iâ³ZÑŽÑn€86c»Õ»D×ê,Zq³õÈLÅïÚ¾Š¢úl…çÇÞ¹(°œV–o¶Ú“”L«øõ Ó¾RtЊãO5ÀªbIp$ñŽùˆl›?…Ч^O^inTàÅ{“^%Öî†Èf÷(ªÝ¯Â~뎳Óv/Ô´ á‰bK·gò˜ÛÉ}Ic£ ›·qƒV~çF:ù“=Jo’Oî=6êžæ?.Aû[¬õýg]jó7®iyHãQ2R|Êâº`ߘ;L,Š;œzt´tì4¯'Ž^k@t‹Pñ:ñ¨q!™†‘gå¢O+މXoê—ÃIå©A‰yŠÖøüðx[Ë[ó*I-MêW­ÛlóŠT¯ÝáßÕxöýóÄ ƾ¡©÷ËSG·}S&sŠŽ|º™¸p÷¢ÝžT­ÇWŽ MœÈե煤7û)¤å@¶½ ßû\¯`Ü4+°wOLéb7l#>&W"bó°XÒÖJn*#ç¡$ΛӲã‹-«þ1s˴͇>öTmŒ2Ùixë|º’ý Ðf’·8:wØ“cåo[[#½²¢4"ð ÂGîT2λ™óõ˜Z%0´6i:EÿK[éÛ0MkO0g§,Ôµ£hûÙ{<˜©;§¨·K§e3¤çÃ(2ÿ ;øÉ-ÚëéùŒMë4¾éš;mÕ2cû¶BG–Lû¡*#î^Žæ[Õ>s­ Ùó{Ú?²}uÓ•Ü÷4áÙšï·dÑL¥>E«îO?×*þÄcO­È ãJ(Ë;äXä)LûYžbÉkć7¯Z¢8æýöž,Š«Û«‰é¿cLùS̼eHÑ?YѼ—ņ‚RiR¬//¾ü|°° Ë–"EQQÁ Ø(6°wÅŽËîÎ;¬ãºmvgfgv—¼>¾»3sçÞsÎ=çÜsÏ-3£¹Œj›´Š8°›ñf}æ©’$É-³^mŒÝFÖãiÈúo,mš¬¿:rŽÎ¿$½˜6<žzÑ´›Œ;wHßyE/¼”áwˆØA„2†á|S¸êê7,TN±¨É~v’‘xšãê2ŽžÿP®¡e}¯3‡ ù;ŠÌ¿Œ¶6,¦Å¡Ñ¹›;¨SÃ~ŠÆXäóÁùàAäÐlRÖ}àx²_NWà;L´›Ì&ÛÊ=u˜lµÅ™a4e5XÛšH«îIiÝÕz²¡´¤h¶N›U´_°… Ú;M–I>÷Ò¤RæHÂLä›l{>Í÷Y¬,ËJ%ºÂƒ“\(Öhd“"‰–nÓžqlj%ç=Ý&Š#mHY­V>Ïqß4ÜN«ƒÒ£Ò禆hFø6ɦXÌï£çÙmg}ˆa„UxÆ º³ŽóÞó²vzÅŠÛü}vè×7Ûù|XOmÿ_Çõ§”§Í´þVÚ5\U^ãqÚ lT.RÕ2 ÷¶‰7Àøä²r¥4Iq€G¹gUÔx¤Á¼ÌÉp«£.$'Ôë9£¸ÑLI›$'%Å&Öަ͓ØÖØâFioÐàlœA¥Ûà–:›Œ(/\ðŒü_”·ë|ýX‹'-,²JÜ4ýqPMÒƒ;²Œ¢é­<¬$ö¢ë&òh'Ök›5s¸õ¼GV=U¾éƒ8:#dzn ‹Ù›™pÓ›ôU0æ—¿Ž—Äð´³û¼®äòÐ[Û­ œßlä,:rÏìêÐÌZ#‚Y&Úóå¨nHÌ^ ºîÏé.V¶bÕ_E½ÀÂrŸÓy§…VïÖ$y «Ë>+©K)²‘7IK*ü(¨/ʉU•ðp¶>ÌQ($sXxÉáЬ· iú(ò¾º§ó·ìÏß{”•îoàdÜm‹z4›Ó³§êóGÈJ²«Ó¥þ♪Ùòù$m‹ H+e¥UùGe›Ä›U»U lÙZ‡>k[Þ†ÌE™Þ,÷aÐE:ü\ÇnVz} ù¤A9µÒÁ™ñªp ûÞdtjgƒÍF‰¥ÛåÕ”’~’³viÔÔ1Ϩ‡y¤µÚî1¾¡Ø¡8"{”5PÞ jàØ‡:¡ܶ2×[º—…}(çq?â*|ÆeV)IY?f“þâ)œa¨cc37šô©L”³ŒCÍ8©:ûħ7Á!O=á¸ê´êŒ6—ZÓ»/d¸ú¹&²ÚÀùÚì˜ü9ª½(Z«?[ŽZîÑŽs³Øá—ãËó¨3ÖäúäMìnëó¯GH›TÉñÊf=‘ñPç#Kg‰°Äëô’„rtÂ÷r mó•­ ÔC?£˜ šZ]ÏbïuYt[eÆ]Nmà~-Y©CC“ÕQÂh²‡s|’ÄÔœ[rzWgÜü{ÆFÞ=!mQù£­ª†r~¦ü4Kúó~&Ë .÷iÌ~Dj© ÕÌ„oÊ-c9šåPû‚,A’ƒŸò¹*e3•WíM/2[k'Z¾Úêx[˜+™lÕޱ&0ßÒÁgæüíÖt¡4Edµ£ÖQ ÑÁ-38®·d4Qµ5§Ô@ÊjÈmΚ§ºa²/›kÂóŠ“…@9Û èãr‚ôZüþ&ú°ˆ‚k¹µÊß³)ZÕoÍjµhW©k3¦jk©#{âJ •±:~ßùoñXÙ édõ\iœö‰§ï'Fy’´ø9Gz0s• šÂÔó²ýeI¹u&<š“–`¹ ¾-#[øXöj¿ÐoÄèÕç)}h4²ñ”dθõ„«KIzΩ—/öRhx³R¡ªQ†ª•ÑêGª=JŸŒßhú"á$675X¬Ò–LRY$žS.;BáÙÍ6ðo¤EÉ&˜{ÞСùQAkV‘ú*È×<=kU’!kJ«2c‡¤ä‹&x4^1:;T量… $o÷ë½±ISC^\¾ÎÌ|C˜&ÿÝ{ âêp¤í ¦mŸC}Å‘a{^+£#¥}K&RjÖúí58xÛ`Ш”ÈÔÓ´ë™açõ¨ô¡¬tDJ«ž½óÎqøå¿µ¤ÎÕYôéÛ4ým›Ù|µf{£+&üêÙùõŽØJrÿ[­zk¼”6Û›_§.uhÌ ZÖ¤á÷yåré1u9¯#êqwòÓq# qåxIjFË÷ƒÜ^Sž À¥ÆD\«%ã<ƒYêSRÙ ^÷éÜ&Òâ+LX×ó,kÛ#”y!û"ùöeMz!ý «Ò¶jäx‡Éˆà.¢“3YãUÎÓ–qUíɳw÷KKoƒu5e4F%6\ÛÆjhÙÐ 9nŒföª lç†ó‚«lÖ_s¨/šƒ« m‹Gvÿ4_ù=Ýüv §;Ѓ8Æ+§5;Ä\ öiƒÝNob>VFÖëÚ¶ë0®Ð°K-¹—í0§2 ´üÚ•,ûÿééSí6_œe¡î!´¨òËi—¸íQÇ 6åyd©9ñ7ï0ÐÜÛ¬´üza}^%ïQ°V›~Ï¡cC¨´$w¹Uº¾œålÑ!«ÖyÞ¤9ò[C©cdI)­ê%×ÚØFÆ®K-ssøÙ¨»…Õ¤uPðâížSm6ê‹ÕFöèTªÚãíÌ`kšWýÜgSÛ´”ïøS­;Ñ…A69÷ñ lר›!Y*3}@,÷¶±vª­Ò°xV«>=È·¼äHéiRÊ.§ êP«JaÑ  ”’HC†¼åhâÖø§µla ôA¤Ç<„3 ]hÆï?E³ FË‹x=Œ´ÉwD¹ƒ ,Zåh~CÛ»£ð*Ü~ÈÐë±@k ^ UD€‘_i£u]å{4½ånÚ³3á´hŒdȉ‹=÷la”£ÖkvëEGèÇy¬|¼N«&˜Á,ʬ6Ædµ¤ ÕÆ°ÙÇÍ ‚8F+Îs’ã³Ù‡¤NWɽo0;“È¢ Pr`7Mß5*ÝG'Η̇Q”³K—mÚô“Z›RØÔËׇÉmaiƒrÊÚÜ9X5‹VÛµÉöig·4o Õ´Ö3þCH–wÁÚ‚zÉR•[ŽgFxÎ8ÅN5¢'+ÃŽð4­R.SUe Iß›=*}E[œžÆÍåÑn¶˜éåã¤åÚ û³kµ<Þ¹`§ÌXBê`»E¹xY°mìëh%ò©?g@iå|±ŽÄ/å´§?BŽ“ãy/—ËW¤Ïå±e*l4n\>jUá9^ç½—ÚmOZi·0¶’‘’Ź%5O®®s¸Võ‚^Ô¿Ë8Ǻ¼…Åv[¶0µ†Ã~gÈü`“=÷Ö«‘ü9Œ-ËZêPx‡|'CÛpœ·u™å´×U]eÐ"SSÛtAÇþM'×==Šb»íWªµ²¿9*?F–PÃó÷WÓ–¹xõä'¬”¨“¶6ÀæëÀëÓ'ÙЃ]—¡ù§”*+Ç]§Ó¨Í´O?‡²¿¸+kÍ‘ov'ý& ;A)C±ñp3ioÕz³¾ã¾U%mÏŠ½¨“ÍÉï§§±§h[Ú~Zÿ窼‚£Uý×í2ÕLY«‚7|BS}xèM÷É'›,µM®´šµ™FРå Ü8Ü-Ò²¬â‹þß>‰ºÛiïJ‡’²Âª±G½ <À"ÚÞÉó Ñ"çÉ]“%îãe¥“¯´ÚB-÷ ¨ž Èóí@‘C/’ÇûôbókͶ“ºm‚](œ(Ãk½“;P»q [)¢CW”¡&W«„³àÓBR‘CŒéù‚yG,Ždz”Ä fÞ‹’34‘â1œî¨¥N ï­ÜJÛâm¦i$1>I¦çiìþi0™ÇÓªYø` xXŠ#”4ø4¸‘±‹Fßv îàÑÖp5 ÆS ÖḚ̀{˾1Ù Õóç°¤2‰çuÊt`zF1Cìg坿¥ÿ˜É¯uÙ%´r/r>‡-L§èühY¬02[XJFÂ4±”ƒ팕ãѤ<·ùMœöiK%ÉÚµ«³òöò¾¦Í›!› ,å¸è_Žy Ó󬸯ùõÉ//Ÿ©¸ƒ¥l¤1Ë›ÄéwVüä*+úã2+›f1ŒQ·¤# TtÁp§› yÃ_¹ƒÐ;/bø³W:û†¿¤Dhç+þš!yW ÷ºÐU Ã_ЪnÞu&B)¯bx¯c¿;†¿y ¡_‡çR¾á#ºøw Òocø5õ}ÊoCèƒ÷0ü½f„vãþú„0ü³FÈï„áß@}ïcxgHC¡~B_|ˆáIÙ%CúRûý¡|ÀϽ'† µöÂðgî"tòS ÿ‡7Bo}†áý·#ô¦Ã?)G¨Go ÷|„ÐO®ÞðmíƒáØï•Žá œÿùv 4ì aB_} |ro~…áa€'úð¨FÈÿ[ ðíö=†w:qƒz"4ÍÃ]$ùx`ød(wdàO-BÇÀý½á^þ<ðùæ@ÀûBkcxâ%„¤ÞÞç$B—‡@9€_½àuè†áèœá)´‡ûH èk×PÎñ1ÿB?ŒÅ𯾾Cºèý ÒÅ€w¯q>nBŸB:ø€án­ÀŸ@h wÕ ÿ¼¡O‚áê;í÷«'}ðþ¼0Àò‡ûÇ¡=#0¼ ´ßOQþÖQ„ÔÑþÜy #øå‹ã/h×_¦Ý ä–€á±÷Ÿ‰þ"´ëéä§: ÿ^ŒPN2ä|;Ïùɹ‚´'ÈOðhÏàÃ\xþȤoÇ‚œÍÃðÞPßõÿ<€ÿµÿåÞ?ÿÃÇ@*ÿ øq!ÑÏžõŸ„4Úaç¿0¼ðqë|(סR \(??Ãß¹ùÿÃ?.>¤¼ùKÇpÿC€þÀL¸ŸõK€Î-€§RàÓælw¨ï“§=ÀÿC¹À·À\??„Ê ír‘–rt¡–| ¿Ó OÐnß\œƒv(†÷ ž_JO OÝÿ¯"´´ ÃýäRáÏ K€ cÁR#)”¿ äêÿ`9à íòÜ ÿôdãJÐ{ЕÀHcW¾ÝЇô³ÓÐÎk0|¨/ðÒG oG!í ù6®ÃðO7#԰ʾˆ7Àû)ýºÞÿ¡9›€oRàø¹nú¡}¾ôÙž€¤}€/‚mpRåv°' —wB»ÔƒÜìÆð¾ Ü=ðÚÙ}/†ïÚ…PHýê¶äí2‚Úý`' ÿ¤ƒžïéýîµÐž ‡sê0¼Ûm·ÃPèYm=†4ìØà?èù棞°ð=†áßÜ”º€ß) þþY¿“`€¯ §€n×ug \À{Æ9 _²ôÒ¾Õ@º{?ð ÒNKŒñü þ{€Ë w»‘|Ã¥G™¿/¿ú àö~W|ü®PuÕ\'·ß¿ôøÙËwÿ†æ÷Dø íýx—§¿uóSAhdøçÑ ‚bãbCcâõï=¾¡½†ß1!ñ‚I!‰!‚˜é ‰‚Ð0AˆÀÃ74*lbâ§(hbܤ0x+"i'&Áï x+¨½„vtꌆ}‰ð øoù™Äïw m;êŒÜ¾Bx!ü£¯>uzüpÂÝà«ÁsÃ2ºÀ·&ãrvÂu0¤[Ûßù†]¹þ4Ê5¤s\Ÿo¯ÃÚËÓr½ý:?~~òž‡OƒkC¼ž‡ÿ Àë0”3 ê}õôGFxê>Ï=¹vƒßýMÓ;°ÃëÈ|þ…|Æåê>/ôxZnáwP”[ØÌ¼}‘×?Àï šíÕ õêBÓ-ð/_‡Úõ§¼ÿ‚öÿÿ„zú <þÏCžaò‚›Û^ŸnþÞ®×}‚âC"§Þs {lÿ î÷¦¸¯¹kTF(E¦ï‡>-#<ÔµOo×§yÂCŸPó„V’oHÔIÔYô Ñ•h½C¼KüщÈÉEkQ†¾#.ß*‘Z”'Ê=#:ãÓEôœèy‘Rô† ›#QÑ›‚@ÂEà,xKð¶ ‡à=Á Ä‹Äë¢7D_ßÄxâÑ‹¢—D/‹^ýMÔU„‰º‰^½LtV‚Ûü½G {81Y.Ä…}…î.n.ÈUÐGðŒÓâY¢£.Ä3ÄsÄK„€XŒžséâ²ß¹Î¹Öyónç…΅ΫW9W9ovþZÐ]”é$vÊp’8½&R¦þ^¾,üYø/á ?~,4|þ¡ð#a9ªw:ê„„Ï=}ü'– »¿ßYø¼0Dè'ŒF ß~+|Oø¹°§°—Á;=D‚8——(ÀI°=¹˹ñ*Ñxxxƒx“ø;ññ¶A=N„xŸø€p&\ˆ‰ˆ‰OˆžD/âħÄg„ˆèM¸}ˆ¾Äÿ±÷pQ^ÝÞ0 Bl±k4–¨ ÍÊ€ôÞ;Ó{ï½0½300 m ÌC1&±€…ÞÔc/ÑĨ±FM4=±Ä˜¨1¼—Èsßç<ç=Ïó=Ï÷{ßï÷Ío¯ÿÚk­½öÚõºf’=FOÄLÄNÄMÄO$üKýô‰Œ‰Ì‰¬‰ì‰œ‰Ü‰¼‰ü‰‚‰Â‰¢‰â ðd:›€O &¨ ôf;›ÀO¤ƒ2@™ ,P6(” Êåƒ @… "P1 ‚€  B€  €° "€ˆ ˆ ¢€¨ ˆb€˜ ˆ ‸ ˆ€„ H ’€J@R $)@J ¤i@Z¤@FP)¨ T2Ì  P%ȪUƒ¬  T ªÕƒ@ ;Èr‚\ wAÛAïÞ}ÚÚ ÚÚ êõ€ö€ö‚ööƒzA} ~Ðh4€FAc qÐÐAÐ!Ї Ã @G@ƒŽ‚ŽŽƒN€N‚NNƒÎ€Î‚Î>]} ú tô9èè2è è ÐUÐ5ÐuÐ ÐMÐ-З Û ; » ¯@_ƒî} úô=èРŸ@?ƒ~====ý zú ôäðsú¹üšüšýÜ~¿¿V¿6?¯_»_‡_§_—ß6¿wýÞó{ßï¿~;ývùíöû÷«­Ï¯ßoÀoÐoÈoØoÄoÔoÌoÜï€ßA¿C~úöûÈïˆßQ¿c~ÇýNøô;åwÚoÿBÿEþ‹ý—ø¿åïë¿Ô™ÿÛþËýWø¯ô_åÿŽÿjÿ5þkýüý×ùùû‡ø‡ú‡ù¯÷ßà¿Ñ“ÿfÿ-þáþÿãUÿ?„¤ÿVÿ(ÿh˜Œ¬œ¼‚¢’²Šªšº†¦–¶Ž®ž¾¡‘±?Øâï<-xNð‚à·ƒ—¯ Þœììó ³…ºâAÅçìê~Ûzô®ºoÁöÕ[Õ1ÈwÄ…tœ,QyßtÈüWÕGuÇÝ‹[/·ž¯€|]ó%º{û‚ü#eµ‰J§~J[Dÿ”ÏJ÷²Ù½\µ¨¤¤HY¥R?0?«®mnpwÔ=‚}_Š@–’¸43o¿¨^s¶c•ÙvºFÛ„¢]­×ªÞÃLpÎWÍsVÀ«ÑþÈÏÉwécÌ$n÷€@&×tm5kõ~?ÛßknróÀð½1¦ìaYG9ÛÜY1PsÎÖSWi‡5¹šÍÛ›YîÏ=a­o›ãÀ‘£Äs¤Ýò"U’z7ñDz7븶 [°-¾y)¢ÅE?ÇäâfŽìÄ9äRò9Ê/ŒÎ¬¯Xk8g¹Ç¸>ˆ|\°Lh–)ó´ ‚ÎÇxˆÒXó¶m°N]®áƯZæµ%yËÁF¨Ì…k'„ÓËé?1Ûde®vwًꃶ’Ú=Œ3Û<³~È’‹å—ØB5JÎ' Äv ´jºýmp6ø$x!ä "¹°˜L…±’9B™ðk¡¦ÄO¡ÒíÓÍÔ¯0þe`¿edÙÄïHéwèËkÅøªÛ­ú?œ¾’Z¼w¸¼ì…lƒ|Í…=ÕIaOaHD¢ ñ#bª{—K) „S¡Tu Ç*ä~,ûYö@ýGù¦™f°åwû]ׄÓŠo{¾ÛL4±E¼4âc¶’W#‡rM†ãÐ{ð\Ì_¤×û¬u‚dA”¤=¤-ÔŸ1Ž™ÏU”Y)5ñµŸ5~æXƒ,w’À1ÐûˆÄ2·ü{õ7æý 'ZOµ^lUÃVÐÈU½(Nýœk·¸#Á7øß:`Äæ ì9üsr?íÚ¯tco=ß(Û#Û"_¢‘h´Æ9êÝåµ5Ëk¿ª»ØÀ°+]:7ªeq›¦3Ö…@èÉ!”•b»¸Rþ—<Ókö±=·AÝ`ð›Ð{ò9ú3“ðˆÔC¥ÄѳYû9hñ§²3†Aë»åwËV€«ªmßÕÇ:Oº9-‹»šÀNð\H"™‚ Ç×QÞ¥tQwrøx…IÓi{ߦ®µ;ÈàÓÞ÷ÁÈ~ÈrèRh>Lë‚Áÿ‚·!¾F,DÎCÖ `˜í#I  ÷Iß’~'iÈä6òùm œZDóЯÒw2YÓØ™ì'l'€ëážåQ„Dã[å~åûËûÊ‘¦FÓ3¼¢ÈJ³®¬Ý^÷gÝ»Ò!u¦jþt¾ß\ì~£¥µõj[bÞÿ1yû;ýŽ„_Gië,„% /Ñi:µƒÚq±3K>KRbZ¨|I¹NÝÕvCv°‘)ðk9~ˆfb>Äâñ\êIÚ|ötv<·û»è²2Á(6gx½`(ä4b:JBú†ô é§U(WLÓ@mn×m+³“¼‘1Ý­‡ùpN#ÉØ¸^RL—‘Ì• fŠ%'å²·4!‘¶2Þ¬8bÕèu3áa(‡_önÝ ,³Á€µñËû‘óHbš5Ï;ˆx-2…Æ^ÂùS©Cëá."w¯7^¿aƒÅÂožÒ÷1¿anæŒ v[>sÛUW¼EŒé®ïaœ= Üý!%~Gu2, ÷éù:¥Go.m®ª¨½Q§q,hÝÃêa× .ƒ/ eøˆÇˆ¯Q7Ð?bÏâNã&pPB1qy#ù Ê;ÔŒp‘°Ÿuˆõ«ƒCèó…Ùò|íí†åÆÆíåÓL¿šÜ5dÏÆ¶ÕÙ~±¬»YwÎýg‹DP N‚ÔC 0 á9!æËÈ`ΊSd‡—”G4 Ú9å[Ë05Uv6B…eó)ØÚÏu4Ô~tû!~ÇDàNãß'ÔPËÄÓ%*¨ë"øXîèeÐ'œ3X`Y]:ÏÜ ó'rìúv–Xš¢]f|£üÚ3 bûɪnûèsxÁ1”DËŠ§]÷Í"(Ϩ‰à++¡Á± ¾—Ý‘oÑ LïÕÃîÖE°/|äÁʈçï1úx®£Ï#¸H!‚ø%éˆ/í/z¤è#íYm†±¸ôbÙϦ5f{eŽUVc¯U4„7FØ BÇ w»ã#0’ KG¸(óè—8éÂ7Å yHé'Ž ç%ÄrÜaÂg"’vK©×PŠí’>‡!¬Ï@^ƒÙ{Ô_ëV™'ZOÀº)?±$¼Á¯"·˜)ùKµÄx—¤´W;¦·|{žFw°¯±Wˆ‡É²²?Øû-¿[þ°í†_CÈqd;E½çdºG k`·àk¹ˆŸß!sP¨eh.îC\~ˆ08Ÿ¸¸‚XI¶‘ïK(eôJú zC͘ÁžÃÞÌV±K9Û¹køÑüƒB«h–+N’†H9Ò“J_5Iã«eijïèêwâîò+µ•ù’õWë[’ i“Ûhu_Ö½ï`;K]o7µ»[<³Á3Á«Á°V?‰ÂžÃâÈÇ©1i4'K4,“+ºÑJYí¨c­+ýóWËÏô¹<·àg)²T].3Ss»UÝטHŒƒÜ… Af Öâo¾'¥€iáŒ^V!û®—§=mUŽ)רÉÚo´[_›ö›»-Ý5 ¶žoc¤ý–c†g|ìWb¾I\¡L&‚M³mÇn‘'XÁ6³…îø½ ±Ì4c‚É»QB[ M]k¸SVbͰ# \o»Ýdű¶$©„µ³«þ†[ÌÈç,ç¯XÖò‘û/k¥DÇüƒ°¼©„¤ gƒÅÀ¿‚Ž3QB© è©,k [Á~Ì]ÊeÞËdk”7TÐå±/­e5Ûl.ÛYÛ;v§îÁyjXótÓMÜ›É7©+è°–°íœ_ÕźbCJélÓž:fýÝzJÃnÍ ø5úŒ f }³­B÷‘~í·Ê8Çœ_} œËDP聯o‘Bè¹ô^æbn÷´0[´Lô9‡(KÒ³¬2Ý^ýucAé®2i¥9Þ¼Ã"¶¯û­^cWÛ÷:Ίæ}Þbx%*N#åÂ,ZTé€é¼¡ Ãî"v3þb¿dãy×dÊå<-Z{[ë1¬5fgTEÙÝ4ûÚ®o¡Jø9ÄWˆYÐnÔ/X.YVK`ßA|Mý•JdT0RŸ0¿g=cMú„÷’÷–ä¾´ü½ò•KwÛpÁØn¤•çW`+„•+_XŽ[Kê}í"»ÇµÊ³¨íÔƒm }nŠ¶Ì¬_k? Q@sár„„šÏ p6‰êר¿€‰gê.°ÚŒp„Ûª‚e` Âlâ\&ŒC´_¯ÀmÀ•a¶Ô[Øp©úN´ÅKsk kC@¦cÿ",(ï#†“-”µÔBZ}‚ýPø¥ø|y™é’¹Ö:Zçcßb·¹otÞð~ ~ˆÅmÒ×;ŠZžu܇– Y( Kï¤Nß.| T,³Å5‘üe‹«øöGÕˆï9¤½·‘‹0½$ý ;Üx[÷‡,¯=™ßk‹cÓÑlÌqúvÆ7,°à®ˆ Þ[ò³ú®[À˜\~¢ülU³àú}›BÙËr³ËùC‚XåI[ô¾„YIaQulªð‰r…N\öÄôvu¶} õ´ž¨|¦ƒéU.°¯uêb*îâÓÔ›ÁÁ­„;”Cô$ö#ÎwBA•Úšh;~u~ÚºŒR²Aþ­S¹¿Îœ; «EýFXJÞJ6‘—P¢)Ê å1m!c;ûŽX—%(ÔŠòx“Ƥª>l»i³ÔÿZßæT7Ok¹ß~Ža Hù †-@Fc1Ø=8*ÑIñ°ˆœ±^u»âçº%ö—öbW°&AÓ ßA^ƒQàQAñ°=°O`>ð($‹Åàš O‰µ¤ƒÔfúf¦”“É=ȽÍýBuU${E’’SRåªR­Í×#õpýƒÔ‚3*y–{–y6ÿÚœºù ~öùöåM*÷æPÛÕæO —ásÓ°óˆ;iÌÕ¢õ}Ý“rÿJ„Ýâ¼CœÑ‘ŠðP(í"­Œ¡>¬½§¿(øI¶×æÇ¥ñÿ€™tQ¼âÓöÍÇ ùŽÕ%´„x’ÊfÕ ñuéöÅ-0äIö\gî=»V þÖj™W‹-Ñ1 ]tÞ`«©Z‰APy·¾v“„uà$âÊ÷ÓŸÕÕ”k«&È÷Yr0 fÆ¥ñ¼ÛpŸPêmw%½Zºö[‚´r£¼Oª ÿFÑ3Ú˜G¥-†LðŸäBðMÌvônêQÉ\ãËò­¦Ã¦þFOÍûUOH6ú^fušó•0E£ˆÒäà•e{Í{Z…%ߢ;–„sTU$;W>^¾¾±Ø1ú ãÄ[¸rSúR6R÷{§Žï^n/«¾§ýV½¾2‚ãŸÐ/pΪ&}³!Æ\iù±ñ{­dºleiOÅ‘Ö/a}z™fT_]ž§ÿŽO#וÔT¥FwÖ‰u*ㇶ’²v:DÿAó÷í:4{¯ê ; /@|‚¸˜NÞÄt°Ê8)B°0O¶_ö³©L/ÝdþÞ²»î˜þ„ƒ']Ôò %™Ácó•÷TŸj2-¿Tm@À!È \5Ù@é§æÓµôºuIpNدܧrh®jÏÕe”÷XÇlêÊìdÏ–7ùq†Vh q¥šsU­˜¥n(Kì:ÃY¦‹GÔ*ncS:L*ZÊ“(Ç)teŽ>ÉÎáþˆóâKU›jƒð)Ëù±Âi’¯\-׊²iën“/0Ž+/j¿0‡¹;Û+®ÚÜ~)¤Ô±ˆ¢·JvÖ}^—Øa=UÌ_ßÁlıñç»`~ävòRªŠ®fíd‰ÙbQŒ,D5µ™ZÍÄÚmußÔ)êW¹³Üû =L¶`µ™VÉ·|g÷%"x»Zt•Ë|ˆ¾›’MžËiÔjM3jªj~-£ è£Â `žÌéOD*ÐØ÷ibú ©WcøÒ°ÒøÐ]Í"—/+!JX–A–“gSŽqBÀÉ–šf‚[nðmy=‚E«vj‚á¨Zªôè,\®ì¤þ;ãxã¥ÆbûaÈiøz¼/e¯çd™ù§Åà 6*oZ—4fènÃ]Xm6}ûAªáûŠuÐ? o rØ|\á!ñq=ÉMî£s)¬1Ö›œË»Âg%‘š¥_–˜çTþT9­zQÍ[AÝûEçË–_Û…ð»àz(^€Ù…K&_¥\£¤ÒÙ+9Ÿr.r°cwù.“Om]ÝáºRg¤{-rSË2Äe(± ÛÏŒâpdluŽîÇQø»Â*¶ˆŒÄmâ¼(» ;¡â1¿Ó ½:ÏbÆp¡ì6ÎyÁ÷Èk<¹ÝÔÌéöþÅ·“¸;À_CN!Æè9=Âc{!¢ÒÃ3ÀtZ¹x£d±EŽÜÀÉöþJjÖï!ž ¬ª.V¹D7ÓÔŠ«7,®U_ƒâ¤Ù u¨‡Öñ&¯ ÿ6þØ\¤9}[õ{c‹óIû8’츸vš{Øø“‘îïÔ0øÓ**q ÁJùcU¿qYyke$,Œs­ó3£5ˆ˜H/5ôÖAPÃÔ7å; x¶ — ‹)?ï¦|¥®Dh)þÆ=–­¶ú´çWÎ> ¢im&mLWýl‹k GÁ `'ágŒämT3í cç:‡#®ÅÈcåJ¨ö²µÅV`wسs×W¿…³‚qyà[jã‚–½PÙ#Œ’¯3ž3Ž0o² xWyoІÅMÒ0å~­Ì§<¿òt¥©& vvËntÏn-¥9è‘‚ ¡Bt®ìϲD–²ñê?¬,N_ERËïî•"š1¹’ï‚•(É_ð£äËæª5ëáó‘,"˜³‹;]Q¡øJyÁz×zÎñ•[㮥TËÏêÀ•Û,e <]Ô.ž¥À)§¡Ê}SWß5 ÓŽ³ˆUUà}àëÐð9Ø/„V–‰{P´Fž¡Ú«^¥ûÖ 1_´ìJ÷Û-^øgÆÐ„‡sVô©t«â;Ó†Æ÷ܘö®Nª"Û* 7’[îc µX|œ´ŠÚ/OÒ~nŽrޏŸºg{<ô®l…`ü=ø©’­§É…T;m$_šbxb””ÿR¹Î¾É•”x?ç×”|\÷ >Ò3OÇŸ!ûS–q ¼&_4_B—ý)ûYï[^Z^X}Þ.‚¹:+µµå‘®+¶ÍÐ:¤ÔÆ«›aúŒºó¸£Ü^Ð.°±p->¼R±Gƒ2Í¡,¿ÞŽÇ€“À©à 0Œ›Á° Î^džKiw‚»ÀÛÀÛÁ½àð0ø<øð1ð ðÇà/À_‚ßÿžÁC@„Á@r!*ˆÒiè! ßßß ‡CàYðBxœ GÂùpœ—ÃËàFx=¼ î„KáV¸¾«qgãø^øAøüüøð/á_ÿÿÜrþ+ü7øðgð鈙ˆ8å\ÄÄ|Ä[ˆˆuˆpDb+"‘†ÈAd#–óň+02‚‡#ÞÆéj„áFlCì@|€Ø‡èE #Ž"®¹o#þdÿ"ýñâgÄs„/2™†Ü„ÜŒLBnAÆ ×#ßA‚‘H%²IAJ‘jd Ò‰Ô#Ë‘*d%ÒŽ¬BžDnGŽ"?@îACžBîBö ?F¾üyyyù r>j ê%òäÏÈçȯñ¨4U„Ú‚"¢²Qh‡ÚŠ"¡ZQå¨ýHª ¥G•¢ZP¨}(ªµUÚ…ºŽ:Žº:†º‰º‡º„Z‚þµýê%j%ú Œ†¢oK£Ð1èHtZ€f¢ÃÑB4]….GÛÐÛÐMèFôè}èaô úcôAôôQôGèSèóèÏП£¿@ÿ‚~†öÁL ý1³031obæbcÞÆ,ÅœD­Â„`b1q0&“†`x˜0V S†©Á¸0Û0˜÷1ݘ^ÌQÌ Ì%ÌEÌç˜ÙØ+˜¯1ob—cßÁʰX:¶[‚ýHÇ&cµX v Û…íÁŽc¿ÄÀŽb÷ac?Ç~†ý{ {{{{{ûûû ûû'ö%vn6nn%n7· ·‰‹Ã¥à.êP8(ŒÃã°8:ŽŠãà„8Nƒ3á:pdHä=\?îî;ÜM\=îî:.¿¿¿ ? ¿Ÿ†âóñÑø<ÏÇ·áâ?ÄŸÅŒ?„ÿÿþü÷ø+øçøø9„7 K ‘„Oñ1„B&!›F€P<@`x„‚œ $hV–ŽPN¨ ì ŒŽNN.>%Ü#|CøŠð%á>áGÂCÂS¯„7ˆ3ˆ3‰s‰‹‰k‰Ä0b1ž˜NÌ!‚‰"”!J B¢˜H«ˆZbÑAl"zq=ÄÄaâAâñ8ñCâIâ5â÷Ä—ÄçÄŸ‰u¤ˆo’Þ"-#IkH+I IKH¤¤å¤·IE$8 L*$ Ir’ŠTMª$™IÛI¤=¤}¤C$;i„ttšô ésÒEÒÒ Ò¤Ç¤ßHo’W—“’W’cȱä,r&9 &cÈH2…L'3ɹd%YEÖ‘v–‘·‘?&Ÿ"J¾@¾Bþš|‹||ƒüù.ù;ò÷äŸÈÈ¿’’Ÿÿ ÿEö£Ì¢(DÊ›”…”¥”õ”Í”8J:%RDSÂ)0 š‚¡à(4Šˆ"§¨)3¥Œb£X)J5¥“ÒJi¡l£ì¢ì¥¤\¡¼ Ü£üAyD¹E NP¨Têrêêzê5Ч¦SùT5•B- æP‹© j&•IÍ  ©*Žj¢ÖS¿¥VPÛ¨•T/ÕMõPÔÔZê]ê(õõsê õ!åõuˆz•ZL{‹6ö”ú;Õ‡ö„úœêG  ½ >¢Î¥Í£åÒRha´PZ-•–DÛD‹¢%Ó2hY49MMÃÒp4¬—Ì·Y«Xo°‚XëXYQ¬hV,+†Ç*Tæ±Ð,«˜…e‘Y$–Œ¥a™Y,[­—ÕÅêa°Ž²N°Ž°Ž±Î±.²n°®±î°î²±dœÙl?ö –œÍŽaG±W±!ì,v>;Mf“ØL6‡ÍeSØtv »‚me7°kØ•ìvû{Œ}šý!û û{”}…}}‡Êþ†ý=û!û7öïìùœ¥œÕœN('γ…“ʉá¤sâ8±œ™Cåà8 “SÃ)áìæ8|N§–³ƒó.ÇÂá<à r~â p¾çŒrîq¾äÜâ|Åù…3Æ9Ï9Áù–ÓÎ_ÍÍá®ç¦q‹¹‘\0w€»‘‹ã2¸jn·‹ÛÈÝËmâvp½Ü î>þWÁânãŽsçóê¹¥\_ÞîLÞUn /„w—;‡÷ ÷÷[îen oÏŸ÷÷kn0ï÷÷7Œ··‚·ŽÀ;ÁÕòÔ<"OÃð¼Rž˜ÏSð’y8ˆGã‘y$ž‰Ççõóöñ>åæá}Îûwž÷á ïïï(o'o ßÁÛÆkç5óy_ò¾ãMã¯äOðf žñó¾å½Áïã­æÿÌ[Âÿ‘7›¿ˆ„¿Ž¿˜ŸÅŸÃ—ñcø~.ŸÎÇñÙü<~?oç×ó·ñ+ùÛùïñ=üeUøGùóGùü=ü/ùŸñoó»ù×ù?ð_ðß,­zÎ_$X*ˆð®Ä b7Uñ‚_Zr™‚|T€ E@hZA™ \P)¨Ô ZÍ‚NÁû‚nA`¿ _Ð'Œ NÎ >Üü$øQð«ààÃΙÂÅÂ%• á:!YˆÒ…|¡YX/lš„^a©+” B»ð˜ð‘ðsá!áÂãÂ[Â}Â>á‡Âqá áá5áÂ5¢bkŒh£(Y'Z.Šm-Í1D.S„iE8Qƒ¨YtOb=½%ž-}#ý$úRtNôè¢è¸è¹èšèžè²èÑ/¢Íb±x‹x¹X&¦ˆSÄëÄñF±J\,^#Î'ˆÁâ ñ„øqœØ,î·ˆO‹GÄŸ‹‰÷‹‰ûÅ—Ä—ÅâÄ‹»Äé’…’¢’ŸÄˆÿ§J‹#$Ä‘’sâÉbÉïâ*‰N¢‘˜$剄 ùU"’˜% VÒ qH>–°%’÷$ïJÞ—ŒINHº%·%—%?I.I®JI~‘ÜÌ*y³ä¹da‰oÉü’¿$+KV”($]²¦T’RY+a”´–8Kö—<*ÙS2Z2P²¯ävÉÙ’[%×JfI_–¬’.—²¤(©UÊ–Ò¥ER´T(m”¾VJ›¥»¤{¤_HǤJ/JOK/IÏKïH’~+ýMú§ô™tB:W¶@¶R&Û,Û$É"e‰²$Yª,M–#+”ae Y©Ì,3ɪeN™[¶]¶S6&ë—•“—]”}%»#»+{&û]6ºL>[¾J¾TþŽÔÔלÑü¤ùVs]óRóD3C»H»P»\»I»Q›¦¥j1ZНEiZ¶LkÓvhwj »ºµû´Ú1í¸ö´ö²ö[íOÚ»Ú¯µ3usuoë–ëÖêÖèʵºD]Š.V—©Ãèòu4]ÇÓut•è´:£Îªóèšu-:·n·î”®W7¬;®;¦;¬«°ŸÔÑ}¢» »¬û\wMw]wKwW÷•îÝϺ‡ºiúùúÙúéú­ú·õËõ«õÑú0}Œª×éýõÅú7õEúl½RÏÒ+ô}‰^ªêÅú}‹¾K_¯o×·ékõN}£ž¤oÕŸÕÑŸÓ_ÐêOèoé¿×/4,1|£¿¯§| 3 ‹ ¿ê×/3Ì5<Õ¯3„6Öb  Ɇ"C¦i€Ò PÖ@10 hË 4( »á}Ã^ÃvCá]Ã.À¡ßÐgØg32|d8nøØpÕpÑpÓð•!ÑûÀðØðÄðÔðÜ0Ý8Í¸Êø–q¶1ÛXhÜbŒ4¦£9F¹meF®Ql„F—±ÆH06F¯qÜ¸ÏøžqÈxÒxÈØcL.ÝnÜo¼i5v{W·Œ÷Œ__ïß(]º®4 tQiDéšÒY¥o––攲KK£KãK3KcK#KJ9¥¤Rt)¹WŠ/Õ–òKy¥†R}iEée£±t_cY©µ´¦´®ÔYj/u•6•ºKJ½¥í¥qe eÙeEeÅeà2h¬ U†,ÖQʨeÜ2^§LSf.«*«(³–U—Õ•5•u–u”µ•½W¶¿¬¿l¬l_ÙpÙh™´öxÙ‰²3e—Ë.•Ý-û¦ìû²_Ëž•Ýl™^î_þfù¢ò·Ë——¯*(+O-O,/(Ï)‡—cËñå”rz9·\^.+/)W•kËåeå•åUå–ro¹«¼­|o¹¶§üFùýòkå·Ê•_/¿R>Ëô üQùJÓzÓ:S¸©ÐTëÎ1¥˜&˜éÏr©Ilb™Ø&…©Âd5ÙLå&³i›©Ùô¾é=Åä2í6õš†LšFM‡L™>6›N›>1}fºfºj:eºnºmºcúÖôÜôÂô—É×<Íü†y†y¶y®yy©y½y£9μ՜fÆ™±f’o¦˜™fº™kæ›æ-f©YmÖ˜KÍõf§¹ÇÜe>`Þc¾kþÚ|Û|ÑüÄü«ù¹ÙUáWñÂüÌü¥yzÅMó¬ŠkæèЍХ‘iñЊìŠðŠË*Þ®°T´UtWtUl¯pW¬«h¨¨®°U*†*äÊŠm5»*žT,®ü±â|ÅË ¿Ê«oV©ø½bFåŠÇs++×Vªˆ«œnyQ!ªÜP™T‰·TVª+•{+Å•æJ^eNå¦JI¥¶2ºòL%½r¬òpeWåµÊO*T^¯ü´òHå‰Ê+•ïVX&*ŸT.³¼mÙdYcy˲Äògeš…aÁZò,é–iU…”¥Üò¾ÅjqXl–]‘¥Éâµü`©¶´[Ô–R‹ÝrÚ2n¹`³|j¹l¹e¹o¹iyf™]µ¸êͪ¿,Ï-Ó««VTªR«Š«P`d¥ŠS%­rU½Wµ»ª»ª¶ª®j¸jÕ±ªU½U§«ÖY{ª.U}Yõ}ÕOU·«nT=¨ZT=½zfµOµ_õ‹ª…Õ³ªçV?«š]UZ[X\½¾zE5µšR­©.ªW+ª1ÕÜjq5®QͨæW¿aÝ^ÝUm®Þ_}¶úPõGÕŸV_q÷T«¨>Y}¢ú@õƒêÇÕwªç[çZÿª~Zý{õ<ëÅê…Ö¥Ö·¬Ök„5Æo µ&Z³¬V¸g%[éVÕd-µvZ•V£uÈ*³š­«ÓºÏÚjÝn­·¾oíµ¶öYZY/Y¯Z¯YoYŸY§Õüi}býÎúØê_3§fvÍâšÌšÕ5Á5j6Ö¤×dÕ$ÖÄÔÄÕÕ¼SC­!×°k˜5¢~¤FQ£®)­©¨±ÖØj\5-5ïÖì®ÙQ³§fMÍxÍ¡šÃ5Õ\¯¹Ys«æÛš'5ÔøÙ–ÚØæØVÚÞ±Ûblé6‚ n˱åÙ 6‘Mh£Û,6³­Ò¶Ëö®ÍaûÀ¶ÃÖf{ÏvÌö‰ícÛuÛ¶_mßÚîÙÙ–ÔÞ±}eûÝö¥í†mNíŒÚµwmKkÔ.«][»µ¶ÇR»±6¥6¬6½¶¨R ®Í¯E×jñµ‚ZJ­°VR«¨5Ö–×ÖÕ6Ô:k]µîÚÖÚ¶Ú„ºôºÔº¼º¢:p´UG¯Öiêtu溚:K­®¾®¡®©ÎP×R÷}o]wÝ¡ºþºº}uÃu§êŽÔÝ«ûºîzÝ˺çu/êüëߨŸ]?£~~ýÜúõà®ÅõŸÔ-©_ZÏ©ÕKëåõ¦úÖúë?¬¯¿P½þJý¹úõgë¨ÿ±þvý×õÖÏl˜Õ0QÿNÃê† k2¢@ Q  ¹ ù E І¼\³Ú°¡Ñ€jP5È ¦†êKCeCmƒ­ÁÕàhhjhmènx·aOCoɆ¾†Ž7œj8Ûp£áë†?^4üØðWÃìÆ7ßj\Ô¸¼qqãªÆ5+ç4†4nmLlŒoÌnÌhLi,jÌoÌi7b‰ôFF#³±½±«ñ½Æ½ûG¯7Þoüªñ‡ÆÕö'oØŸ5>o\hË`Ÿk_m_jÓj±GÛãí4BìP;̷ϳçÛSìh;ÖN¶sí»Ê¾Ë-³›íF»É^n·Ùkìö]öýö>ûý+û={ý†}šc‘c¹#Òr8Ьƒá`9x¹Cæ¨uÔ8ÌŽíŽÇ~G·cÈ1èw|ä8â8í8ëøÔqÅqÛq×qÃñ§ã7ÇSÇjç„c‰s“ó-çB'Ù‰qf;óLgž³Ù™ê,tBíN·Óåô:ñÎ Î1çˆó{ç|×sg–k‹k¹+еµΕàŠv%ºˆ.ªËà»Ð®^××^W“kÌuÅõ…ë;×}×U×Q×-×§®S®{®MKš7ù5ÍhZÐÓ´±)º) )¡)½ Þ”ÕDh¢6Ñ›ÈMü¦õÎ’&e“ºÉØ„o24•6™šÊšÌÍÕͶæ¦fwsKskó¶æ]Í;›÷6l>Ð<Öüa󙿧’£ÍŸ4Ÿk¾Ü|©ùJóÍæ»Í÷›¿jp‡¹·¸ÃÝî"7Ä]èV»‰n²›ä¦¸Ùn™[è®w·¸›Ýw·{§»ÏÝïîuº‡Ý£î1÷y÷Y÷i÷'î⚛ËîgnÏtÏLÏbÏ<ÏBÏ|ÏRÏrOgƒä‰÷${R»Ý¿}KûÊöàö ö€vP{n{d{N{J;¾ÚÎiWµkÚ¿mÿ©ýaû¬Ž™?¶ûuLïØÐÒ±¿c]ÇšŽ¬Ž·:u¤w¤v¤tätäu:ÈÌX´×!ë¨é¨îèétè:Ú:ÞïØÝÑßq¬ãHÇŽÑŽñŽ:>î¸ÖñyÇßtüÜñ ãeNJΕ«;•ÚNc§©ÓÚYÛY×éìlîttvt~й»s´³»so'Ís®ó|ç…ÎO;/uÞìü²óVçÎûßu>è|Òù´ó÷Îg/:ÿì|Ù9£kf׈꭮€®M])]]ð.d£‹ÒEí¢u±»8]Â.~—ºKÖ¥êjîjïÚÖŽ=ÉÃÙ™Š›°Véu/ðÿ_èÑüÕ¥>>?Má®ÇóWƒt>>)¿e¹Ï½W¨òñ±? Tø @`ô¶¿Â´ÿÏÛýê·×íu>}øß_ãÒ?^ãÅ)lxö ž¿Æé/^ãÇSXúçkLxùŸNaÿ_¯Q<ñ7ø,˜Äo¦p»ïk$O{+ü^ã•)tú¿Fð¯qöô×xb Í3^cÊÌ×ø| ‡g½FÙì׸åÍ×øÃî˜ ÂÇgÎÜ×åSSX9ï5¦ÍNáè‚רXøA‹^ãOS¸kñkd.ykßz7§°eékD.{ Þ~ç¦Ðºü5f­x>+_ãÁ)Ô¬zQï¼Æ‡S¸gõkä®yAk_ã)lxØÀ׸dÝküt ë‚^c^ðkôyM¡!ÀÿC‹ü¿Ó§ÿNÿþ)]vrڨϵi·¦í÷¹1íú´RŸJ?˸Ýú®ÏŸÃ>ÿ÷7Nÿ×þÆ}º}vûìó xßgi@•ŸÕøàë× ´\ä¿€6þÇ¿½~ûüöûñ³ûóûØï¿³~½~çý¦ùûùûû¿á?݆ÿLÿYþ³ýßôŸã?Ïþq;ööîðGú£üÑþ¬?ÎïOð'ú“ý)þ'|ø¾œr$Ó}SZà{Õ Û÷Ëÿr¬¾ñYèûÐ'Ô7Âw«oœo†ošo¾o¡ï>ßÛ>ß¿|Žø|äsÌçcŸi¾Ÿøúøúû÷9ê3Ýw¦ïß“>³}çùžö9åsÖçŒÏ ߥ¾‹|ßZ]å»Ú7Ðw­oï'>ç|.øœ÷¹à òÝà»Å7Ì7Ê7Æ7Þ7Ù7Ñ7Ó7×7Û÷3ŸÏ}.ú\ñ¹äó™/Ô·È÷²Òë‹öÅû}©¾d_¦/Ý÷ºÏ5Ÿ›>7|„¾Ÿû–øò}e¾b_®ï¾7|¯ù^öUøÞòÑøª|µ¾F_½ï]Ÿ;>÷|¾òñó=ïëëû†ï}Ÿ¯}føÎòëû­Ï›¾ó}¿÷ùÎçGŸ|Vú.ó]ì»Ü÷7ßw|×1øûþìó“ÏŸ_|>Ê}Ã}×ûFûÆú&ø¦ø&ùfùæùæø>òùÕç±ÏSŸ'>}a¾Å¾¿ù |q¾_‚/É—æKñeù2|Ÿû<óùÓç…È÷’¯ÔWà+÷•øò|¯úÞô½î{ÅWéûÒgÂGí«ó-õ5øNûƒßÏ/¯¯ÃÀÁ[Àá`8œNgsÁ00L3À\0¬+ÁZp¸ì{Ààýà1ðQð§àëàà;à»à¯À߀ÿ~ þ <öLƒøAfBÞ„Ì,‚¼Y YYÙ‰€P![!ÑXH<$’Iƒd@ò ùBHABÐ,„a@ø!D ‘BÔ D ÑAŒRˆ b†TB,ˆ Ri€Ø!Nˆ Òñ@Z!mNH¤2ƒ€„‚|ùrrrr rrrò ää"ä&ää+ÈCÈcÈŸ— ˆÔê ]] ]}ºº út54 ÝA#¡[¡ÑÐ4h:4š Í@‹ `( ‡" (JR¡t(ʆr |¨Z•B¡&h´ZµA P;Ô uA› n¨Úí„vA·Aß…n‡vC÷C{¡cÐqè!èGУÐcГÐsÐóÐO¡ŸC/A¯BoBoAoC¿‚Þƒ~ýú=ôôô)ô9ô/¨l:ll&ìMØØ\Ø<ØcèØ2ØrØJØ*Ø;°Õ°u°PXll3,Û ‹‚EÃâ`ñ° X CÀP0 £À˜06¬V«„ÕÂ`-°Ø»°÷`{a£°qØA؇°Ã°a§``ŸÁ.Â>‡]†]…} û vö ì1ìWØØï0_ø4øðEðÅð·àKáoÃáaðx$<žφçÃQp  ÇÉp œ §ÁÙp1\ ×Àµðr¸nÛàup¼î†{à-ð6x;ü}øðððýð^ø0|> ‡€‚????¿ÿ ~ ~~~~~þü{øðŸàáàOàOá¿Ã}~ˆÙˆ7s ‹o#V"V!V#Ö ‚¡ˆ0ÄzÄFÄ&Äf‰ˆF$!’)ˆ D¢C4ÁB"„ ¡E”"*Õ+¢áB4!Zˆwï#º=ˆýˆ~Ä b1‚EŒ#!>BG\@\D|ޏŒ¸Ž¸…øqñ â[ÄoˆiÈÅÈÈd(2 ¹ŽŒ@F!£‘™È,d.² A’‘t$ÉFr<¤)BŠ‘ dÒ„¬@ZVd ²é@6#ÝÈvdò]ääNänd7r/r²9‚CŽ# #O Ï ?AžGÞAþ€ü ùùù'ò/ä82Po f¢f¡æ æ¢æ¡ÞBm@mDE¢¢Q1¨DT*•ŽÊEå£ PÅ(( †Â¢ð(ŠŒ¢¢h(&Š*C™PfTÊŠj@5¢('Ê…jByPï¡ÞGíEõ££Ž Ž¢N N£Î¢Î¡Î£>C]D}Žúuuõ%ê+Ô÷¨§¨ Ôè™èÙè¹èyèùèè…èEèåèMhz+:‹ŽG'¢“ÐÉèTt:‰ÎBç óÑ…èb4D“ÑT4 MG3Ðl4-BKÐR´ ­DW¢-h+º]‡nF·¢ÛÐèNtzz'zz7º½½݇@ ?DGŸFŸAŸE_@Š>‡þ} }} }}}}ý ú[ôwèGèÑ?£Ÿ¢Gûb¦af`fcæ`bÞ¬À¬Ä¼ƒY‹ ĬÃa‚1ë10›0[0ᘭ˜(L2&“ŠÉÆä`Š0Å8†Žaa8.F€aÄ ¦#ÅÈ1 Œ£Æh1:ŒcÀ”bL˜ L¦ ãÁ´bÚ0í˜L'¦ ó.¦³³ ³³3Š9„9‰9…9‡¹€¹Œ¹…ùsó æ[Ì÷˜Ÿ11¿ažbþÀ¼Äü…™Àøaý±3±³°w1s°s±+±«±k°k±!ØPìfl$6›ŠÍÇa‹±,‹ÂR°4,ËÁr±¬[†-Çš°ÕX+¶kÃÖaë±X;¶ ëÆv`·aßÅnÇîÀîÆöaû±Ç°±cOa?ÁžÇ~нˆ½„½‚½Ž½…½‹ý û=öWì¸é¸7qsp‹p‹qKpéUïàpëpA¸0\8„ÛŠ‹ÆÅàRq™¸‡Àáp GÆQp4'À‰pœ §Ä©pZœgÀÕâêp 8'®çÁuáÞÇíÄíÅíÃíÇõâp#¸qÜAÜÜQÜ1Ü)ÜÜ'¸‹¸[¸/q·q_ãîá¾Åý‚{€{„{Œ{‚ûçƒ÷ÇÏÁÏÅÏÃ/Â/ƯƯÃáCñaø øÍx> ŸÏÅçá‹ðP< OÆ3ð,</«ñ:¼_НÅÛñ.¼ߊoÇwâ»ðÛðÛñ;ñ{ð}ø~ü~?ŠÇÀÆßÀŸÂ_À_ÇßÄßÁßÇÿ€ÿÿþ)þ%Þ‡àK˜IXFˆ",'¬$¼C 6âé„BBN@È.AL #¡”PF0* U¡`'8.BÁMØEØMØCØKØOè#ôF㄃„GŸ.®¾ \%\#\'Ü!< <"Ê(åå$åå4å,åSÊg”‹”Ï)—(_RîR¾¢|Gùžòå'ÊÏ”_(()¿RžRžSþ¤Ì Î¦Î¥.¦.¡.£¾M]A]C ¢n¦n¥FSÓ¨¹Ôµˆ £"©h*†J¢Ò¨ª”ZJ-£š©UT+ÕFm :¨.j3µ…ÚAí¤n§¾Oý€º‹ÚKí£ŽPP?¤~L=F=E=M=C=K=O½@½D½L½F½A½Eý’úõ>õ1õ7êÔ?©/©Óh3h³ish h i‹h‹iKhKiËhËi«h«i´ ´4-‚M‹¡ÅÒâié´lZ-ŸF¦QiBšŒ¦¡éiZ­œf¢UÐ*iµ´z𓿢yh-´vZ­‹¶öm­›¶—6J£¤}D;Bû˜vžvv™v“v‹ö%í6í.í+Ú·´ïi÷i?Ñ~¦= ùÒýèþôôÅô·è«èkéôuôPúzúFz<=™žAϤgÑsèEt(F‡Ó‘t4O'Ò™t]B—Óut#½žÞ@o¤Ûé;è»èôaú}œþ!ý0ýý<ý2ý ý:ýúcúúŸô—t?†?c6ãMÆ\ÆÆbÆRÆÛŒõŒ ŒÍŒhF #ž‘ÄHgd02YŒF£fÀ’e,›!dˆR†‚¡dh†‘QÆ03*Õ ÃÎhb43ZmŒNÆûŒŒ½Œ}ŒýŒCŒ#ŒãŒSŒóŒÏŸ3.1.3n2î0î3~`üÄxÌø•ñãÆ3Æ,ælææ"ææÛÌÕ̵Ì@f3˜¹ž¹Î1£™ÉÌTf!„1áLÉÄ3 L"“Ĥ0©L“Á1åLSÏ42-Ìjf#ÓÎt0[˜­L/³ƒÙÅ|—ùssss€yˆù!ó0óó4ó ó,óó<óSægÌËÌ/˜÷˜÷™ß3`þÌ|Èüù;ós‚éËògÍdÍbÍfÍg-f-a-e-g­d­f­a²BXëY[X¬V+™•ÉÊeå³ ,8 É¢°¨,KÀÒ±Œ,˲±œ¬fV «ƒµõkk«Ÿ5Àdf}Ì:Å:Í:Ïú”u‰u…u•u›õõ˜õ„õëë/ÖˇíϞɞŞË^È^Ä~‹½”ý{5;€È^Çb‡°×³7°7²7±·°AìöVv<;–ÆÎfç° ØElÌÆ°±l›À&²©lû›Ï°…ìR¶œ­d—±Õl [ËÖ³ËÙv-»Ž]϶³ìVvÛËngw±·±ßgïe÷±ûÙCììÃìØ³²O±Ï±Ï³/°/±o°o³¿cÿÈþ‰ý û9û Î Î<ÎbÎrÎ*ÎZN g+'…“ÍÉåäqŠ8HŠCâ°9BŽ˜£à¨8zމSÉià4rÇÍiá´r¼œ^N§Ÿ3Ä9À9È9ÄyÆùˆó1ç(ç8çç4ç"ç Î5ÎMÎ]Î7œ‡œÇœ§œß9pîîrî;Ü5Ü0n(ww37œ âFp·r¹©Ü,n6·€[ÄEq1\,—ÀpÅ\ ·„+åʸJ®–«ãê¹®™[É­âZ¹nn ·ÛÎ}—û÷înn7w·Ÿ{€{œ{Š{Ž{û)÷3îçÜ+ÜkÜ›Ü[ÜûÜï¸?päþÄý™ûûˆû÷)÷÷OîKîtÞ,ÞlÞÞBÞbÞRÞ2^o+/šÇKäeð²yù<0Ã#ð<&Åcó¸<OÈ+áIy2žŽ§ç•ñÊyõ<'ÏÍká½Ëû€·ƒ·‹×ÃÛËÛÏáòÆyyÇy§xŸñ®ð¾à}Å»Ïû…÷€÷ˆ÷+ï7Þ_<¾/ß?Ÿ¿ÿÿþZ~?ŒâGò£ø±üD~ ?•ŸÍÏáçó ø`>”ãÃù(>šOà3ù>Ÿ/åËù¥|¿‚_ůæ×ðkù¾—ßÁïäwñ?à÷ð÷ó{ù}üAþ!þ‡üÃüüÓüSüsüOù—ø—ùWø7ù·ø÷øßòâ?ä?â?æÿÉÉŸ&ðLÌÌÌ,,,¬¬ ›á‚hAŒ Q*ÈŠpZ€TG ˆ%¥À((˜Gàt ¶ ¶ Þìììììô Fc‚C‚GǧçW×w_ ¾|+øEðHð»à™`B0Mè/|C8K8W8O¸@¸H¸\¸F" † 7 ·· £…1Âa¢0UX , !B¸)Ä B¢P  %B…P%ÔµB½Ð"¬V k„MÂf¡GØ"lv {…ýÂAáÇÂÂO„„Ÿ ?^^^^ÞÞ~+ü^ø£ð'á/ÂÇÂ'BÑ ÑlÑ<Ñ|ÑBÑbÑ Qˆ(T&â·ˆÂE¢xQ’(U„‘EMÄqDQ‰È 2‹ªE‘SÔ$r‹<¢Q·hhP4"]]ÝÝÝÝ}%º/ú^ô@ôPôDôTô§ÈGì/^-‡Š#Å1âxq¢8Iœ%Îç‰óÅ…bˆ&†‹b¤#&ŠIb²˜.fˆ¹b¹X/6ŠëÅ.q«x›x§x¯xŸ¸O< > >,þH|D|T|R|J|Fü‰ø¼ø‚øGñÏâ_ÄÏÄ/Ä/Åþ’™’Ù’9’¹’¥’·%+$+%!’õ’ ’p H²U#I”$I6K ˜.AH0œ/!IÈš„.áJ„£¤TR!©–X%µ’:I½Ä.qJ\’&‰[Ò&é’l“| Ù!Ù)Ù%Ù'Ù/é• I†%%Ç%'%§$g$×%_J¾“|/y(ùMòLò§ä¥Ä§ä’é%3Jæ–,+Y[²®$¼$ª$¶$¾$©$³$«$¯$¿¤ ¤°Y‚*!•KÀ%ÌV‰°D\¢,Q•”–˜J,%U%M%Í%îOIK‰·äý’ž’Þ’¾’Á’‘’3%Ÿ•|^r©ärÉ•’«%7Kî•W¾H¾Xþ¶|¹|µõ~uŸzHý¡ú¨ú´ú3õEõeõ5õ—êÛê;ê{êoÔ?¨R?T?R?Qÿ¡~¡~C3]3K3W3O³PóŽ&@¨Y§Ù¬Ù¢i¢5±šLM–&W“§)Ò€5p QCÖP54 CÃÔp5|X£Ó”jlšFM“¦Eó®¦CÓ©éÒ¼¯Ù¥Ù£Ù«éÕôiú5ššCšÃš“šSšÓšsšóš‹šÏ5—5W4÷474·5w4w5ßh~Ð<ÖüªñÑ>Õü®y®y¡™ÐL×ÎÑ.ЮЮҮ֮ѮÕkCµëµ›µÚ(m´6Q›¬MÕfi³µ9Úm¡¢…i‘Z¬– %j9ZžV •iµZ½Ö -ÕÖjë´­KÛ¤mÖºµ-Z¯¶]û®v—v·¶G»_Û§ÔŽjh?ÖÓžÔžÒžÑ^Ð^Ò^Ñ^×ÞÒ~©½£ýJ{_ûƒöGíÏÚGÚ?´j§éüt3t³t³ust uoéVêVët¡ººÍºpH¥‹ÖÅéâu º,]¶.W—§+Ò¡thNGÔ‘tUÇÒqt|H§Ôit¥ºrYgÑUélºZ]çÐ5é:uÛtïéöètCº1ÝÝAÝ ÝiÝ9ÝyÝgººïtßë~Ôý¤{¤{¢{¡{©ûK7C¿D¿F¿Nª_¯ß ß¨ß¬ß¢׃ôú(}²>UŸ¦O×çêÁz”žªgêÙzžž¯é%z™^®Wë+õ5ú½]ïлõ^}§~›þýý~}¯¾_?¤Öëèêé?ÖןҟÑ_Ò_Ñ¡¿¦¿®¿¡ÿNÿƒþ±þ‰þ7ýúgúçú?õé} Ó ~ÃtÃ,Û†9†y†ù†å†•†µ†`Cˆ!̰ÉaØjˆ2Äâ †Ce€à„gÀ¢d h†càD±¡Ä 3h ƒÑPe¨64š †m††^ðaÄ0n8`8h8l8f8i8e8møÄpÁð¹á’á²á Ã5ÃuÃ-Ã7†ï ?~3øgggç—ß1®6®3†77#ŒIÆdcŠ1͘nÌ5æ‹0#ˆ1âŒx#ÑH2²Œ#ßXbÔuF½±Ìh2šF‹±Êh5ÖëŒõF‡Ñmô;ŒÆÆÆnã€qØ8b3~l2þf|j|f|nœYº taé[¥ËJW•¾Sº¶4´4¬tSéæÒðÒ­¥1¥©¥Y¥Ù¥¹¥àRh)¼[J)¥•ÒKY¥‚Rq©¤T^ª)--5•V•V—ÚJëK¥Í¥-¥m¥¥¥Ie‰eÉe)e©e™eYe¹e2x¢ŒPF,#•ÑÊeÌ2V»LT&-3–•–•••—Õ–Õ—5–ÙËeî2OY{Ù»eÛËv”u—í-,;Xv¸ì£²£e§ÊΗ](»Qv»ìë²ûeß•ýTöKÙƒ²ÇeÏË^–ýU6Q6£|fùìò¹åóÊç—/,_\¾¤|iù;å«Ë×”¯-*)ßT¾¥TU][_žPžTžRžVžUN-g–³ËEåÒre¹©ÜZÞPÞ^ÞY¾£|gyOùhùXù©òOÊ/”_,¿T~¹ü‹ò«åwÊ.ÿ¥üaùãò_ËŸ–?+^þW¹ŸéMÓRÓ2ÓÛ¦U¦Õ¦µ¦ S¨i“ dŠ6%˜’LÙ¦\S©È7aLTÍÄ1qM<“È$1©M&“ÝTi²˜ªLµ¦“ÛÔbòš:MÛMûLý¦AÓÓYÓQÓqÓÓyÓÓeÓ¦¦[¦/MwM÷L?š~2=4=2=6ýfzjúÃôÌôÒ4aò1û™ç››—˜—›W˜ß1˜ÍaæHs”9ÁœiÎ2g›sÌ…f°b†™Ñf¢™jf˜9f‘YaÖ›æ2s¹Ùd®0Wš«Í5f›¹Áì07™Ýæs›ÙkÞf~×üžù}óNó.óns·yŸ¹×Üo4˜ÇÍÍš›O˜?5_6_7ß1e¾gþÎüƒùgóóSóïæ—æ¿Ì>¾3*fVÌ®x³Y±²âŠÕk**+6Ul®ØRªØZ[‘P‘T‘\‘Q‘Y‘U‘[Q\®€U *Ð˜Š’ M…±¢¬¢¼Â\QYQUQ_á¬hªh®h©h­ðV´WtTì¨ØY±»bO҇+>ª8YqºâBŧŸU\ª¸U¨ø®â‡Š§T<«ø³Â·rzåìÊù• +ߪ\^¹·"¼2¾2»2·2¯² ²¸R «„W¢+±•¸J|%±’ZɬdUr*ù•%•òJE¥ªRSi¨4Vš*-•ÎJWesegåŽÊ]•»+»+÷WöUVŽWªü°ò£Ê+OVžª°ì´ Z†-#–QËAË!ˇ–Ö-'-g,g-ç-{-W-×-·-w,ßX¾³ülùÕòÔò§eÂâSå_õFÕܪyU ªV-ªz»jyÕʪÕUU¡Uë«bªâªª’ª’«Òª2ªrªàUˆ*t¦ […«"UQ«hUô*F³ŠW%¬’T)«TUê*]U}•£Ê]ÕRÕVÕ^õnÕŽªU»ªöVõU T V UTVU®ú¨êHÕѪãUŸU]¬º\õEÕõª›Uwª¾®º_õm•µêyÕŸU/«ü«ß¨žQýfõ¼êùÕ ªW/©^^½ºzMu@õºê°ê-ÕáÕÕ‘ÕñÕ ÕIÕÉÕ)ÕiÕ™ÕÙÕÅÕØjR5­šYͪ–TK«eÕúêŠêÊjKuUuuµµº¦º¶º®Ú^íªn®öT·T·VwVo«~¯zgõžê½Õûªûª‡ª?¬>\}¤úTõéê3Õç«/W_©¾V}½úfõíꯪ¿®¾WýCõÕ?W?ªþµúêçÕÕ¾V?ëtë,ëlë›ÖÖåÖEÖÅÖ%Ö·­+¬+­«¬«­k¬aÖÍÖ-V5ÒmM°&YÓ­™Ölkž5ßZ`-´‚­0+ÊŠ¶b­x+ÑJ±R­L+Ï*µj­zk¹µÅÚfõZÛ­]ÖmÖ]Önë¸õõCëGÖ3Ö³ÖsÖO¬ç­ŸY/Z?·Þ°~iýÖúÀúÐúÈú›õw«oÍôš¹5ójæ×¼U³´æíšå5+jVÕ¬­ © ­ «ÕDÔDÖD×Ä×$Ô¤Ô¤ÕdÔd×äÔä×@jà5˜| ¡†XC«¡×0j5âš’y²FW£¯1Ôkjjêkì5M5Í5Þšöš®šm5ÔôÖ Ö Õ ×ŒÔ¬¹Ts¹æJÍ5Wkî×|_ócÍÏ5j~­yZó¬æeÍD¿í Û Û|ÛBÛ"ÛÛ[¶Õ¶µ¶@[-ĶѶÉn‹¶ÅÚ’m)¶4[¦-Û–kË·ÛÀ6„ mÃØ°6¢d£ÙX6ŽMiSÙÔ6­MgÓÛJme¶r[…­ÊVkk´ÙmN›Ûæ±µÚºl;m»mûlûm¶aÛˆí€íCÛQÛ Û)ÛiÛÛg¶Ïm—l—m_ØnÙnÛ~²=´=±ýf{jûÓ6a{£vz훵 kWÕ®®]S;»vs-¨6¶6©6£6³6«6»6§6¯^‹¨EÖâj‹kɵŒZQ­ªVS«­5Ô–Öšj+k-µµµõµµMµÍµíµµ]µquñuÉu)uÙu¹uùu…u:X¢Y‡©ÃÖêHu¸:F³Ž]Ç­ãÕ‰êäuÊ:U¾®´®ª®º®¶Î^ç¬sÕµÖyëÚëÞ¯«¯;^w¢îtÝÙº uWê.×]«»Uw·î»ºŸêÔ=¬{\÷[ÝïuÔýU7Qç[ïW?«~Qý²ú•õ¬z^½°^\_Vo®¯¬·Ö××ÛëõÍõõ]õÛêwÔ÷Ôï©ß_ß_?T?R?V þ£úãõ'êOÖŸª?S¾þ³úKõ—뿨¿V¯þ~ý·õ?Õ?¬?Xÿ¨þqý“ú—õ¾ þ o4Lox³aaÃ’†¥ kÖ5„4„6D4lmˆiˆmˆkˆoHnHkHo(l(n7@ „b©Ü@k 7ð„ ¢ICIƒ´AÛ kÐ7˜*jì Ά憶oCGCgÃö† »ö6ìkhjo8ÐðQц£ ÇN6\hø¬áRÃ͆ï~ixØð¨á÷†g Ï~nðiœÖ8£qfãüÆK—5¾Ý¸ºqmc@ãºÆàÆÐưÆM›·4F5F7Æ4Æ6&4¦5¦7f6æ6BaðFD#²Õˆm$5’YÛßm|¿ñƒÆCã6~Ôx¤ñDã™Æ³Ÿ4~Úx±ñóÆËw¿n¼×ø]ã/k|Úø¢ñ¯ÆivûLûûÛö•ö0ûz{¸}ƒ}“}³}«=ÊkOµgÚ³ìEv‚d§ÛÙvŽ]h/±+ìZ»Ånµ×Úëì v»½Ùî±·Ø[í^û6û»öíöì½ö~û€}Ð>l?d?gÿÐ~Ô~Ì~Ü~Ò~Ê~Ùþ…ýªýšý¦ý–ý¶ý¾ý¢ý©ýGûûCûû_ö »Ãßñ†cºc¦c®cc‰c©c™ãmÇ Ç*ÇjÇZG°#бÎêXïØâwD8¢1ŽXG¼#Á‘äHvd:ryˆáÀ8p¼ƒà 9˜ŽCäP8´Cï09*G•Ãæhp8.G“£ÙÑâèt¼ëØáØåØãØëØçèuô9úŽaÇÇAÇ!ÇaÇÇŽ£ŽãŽÏ—_8®9®;¾tÜsÜw|ïøÁñ“ãgÇ/ŽއŽGŽßÏ//>N_§¿ó çtç ç,çlççç"çbçRçÛÎUÎwœëœAÎ`gˆ3̹Åî9·:£1Î8g¼3Á™äLq¦93œ™Îg®³ÀYì;!N˜ëÄ9‰N’“ê¤9YNŽ“ëä9ÅN‰³Ä©tªœj§Æ©uê§ÑYæ´:kœ6g½³Áétzœ­Î.ç6çûΜ;»œ=ÎýÎ~ç°sÔ9î<à<è<ä<ìüÈyÄù±ó¨ó¸ó„ó¤ó”ó¬óœóçyç§ÎÏ—_8¯:¯9o:o9o;ï8ï:¿vÞw~ëüÎù“óçCç3ç ç„ÓÇ5Í5Ó5׵еÄõ–k•ë×j×W€+Èì u­wmpmuE¹b\±®\Wž+ßuÁ\pÊ…qa]xÙÅt±\ÏÅw‰\W‰Kê’».•Kç2ºÊ\å.“Ë첺l®ZW½«Ñåt5»Z\^W§ë]×{®÷];\»\=®A×kØ5îÚí:â:æ:î:á:é:í:ã:ë:çúÄõ¹ëšë¦ëK×m×W®o\ߺž¹~wýázîzázéòmšÖäß4³iVÓܦyMó›ÞjZÚ´¬iMÓ–¦ð¦ˆ¦È¦­MQM‰M©MÉM™MÙMyMMEM¨&\±‰ÒDkb4q›M¢&q“¤IÚ$kªlªhÒ4k›K›+›­ÍuÍõÍ ÍÍÍ]Íï6ïhÞÝÜÓ¼§y°y¸y¼ùPóáæͧšO7Ÿmþ´ù³æ‹ÍŸ7_k¾Þ|«ùËæÛÍwšï5ÓüŽ{µ;Ðäv‡¸7¹#Ü[ݱî8w¼;ÁäNv§»án¤íƸ±nš[ìV¸õnƒ»Ô]æ6¹Íî w¥»Æíp»Ýmîw—û}÷îîÝî}îýî÷¸ûŒû¢»ŸtÕ}Ý}Ëý¥û¶û{÷÷#÷s÷4Ÿç Ï,Ï ÏJÏ;žO g'ÌáÙêI÷dz <`ăò`l}Òú[ë³Ö—­µNkókóo{³mNÛ‚¶…mKÛV·­m l[×ÔÚ¶¹mKÛֶ趘¶¸¶Ü¶ô¶¬¶‚¶Â¶¢6p¬ Ù†n#µu·íiÛ×¶¿­¿m°m¨m¸m¬í@Û‡m‡ÛŽ´m;Ñvªí|Û§mÛ.·]iû¢íFÛͶ;m÷Úî·}Ûö}ÛOmÛ~mû­íYÛó¶—mm>^_ï4¯Ÿ×ßû†w¦w–÷Mïï\ï<ïï"ïRïrïJï*ïZoˆw£w³w«7ÊíõÆ{¼ÉÞðþêýÝû‡÷™÷¹÷¥wÂëÓ>­ýÍöùí Û—¶¿Ý¾¼}EûªöÕííëÚCÚCÛÃÚ×·ohhnimOnOoÏlÏjÏnÏo/h·CÚ¡íˆvd;ºÛNh'µ“Û)íŒv^;¿Ø.hç¶‹ÛKÚeíÊvu»¾ý›öÇí¿·?k³cZÇÂŽeow¬êx§cuGx¨#²ckGTGBGRGvGrGFGfGnGA¢ÙAé`tÐ;X¼~‡ £¤CÕ¡îÐw:J;*:*;ª:lõ ÎWGs‡»ÃÓÑÒñnGwÇžŽ}}Cc;wí8ÙqºãLÇ¥ŽËW:¾è¸ÞñeÇíŽ;÷;¾íø¾ãÇŽ_:vüÚñ¤ã¯ŽÙÓ:gtÎë\й°sQç[K;—w®ê|§Sשï4t–wš;+:+;-Õ îΖNoggçû»:÷tîëÜßÙÛ9Ð9Ø9Ôy¢óTçÙÎË·;ïu~ÛùSçÏ¿t>ì|Ôù¸ó·Î?:':§uùuÍêšßµ ka×¢®%]K»–u-ïZѵ²kMW`WH׆®]á]]‘]Q]±]ñ] ]I]É]©]é]™]Y]Ù]9]¹]ˆ.Tº Ó…íÂw‘ºÈ]Ü.^—¨KÜ%é*é’vÉ»”]º.cWc—½ËÑåìjêrwyº:»ÞíÚÞõ^×]ÿOßbø_²†/Xþs»rhÁjšÁÇ'ÀŒÒ“” >>k#TûøœŸÂÿ*"_ß‹ÛúŸLaoÔkF¿Æ°˜×xo ·Å¾FbÜk|;þ5^šB{Âk,J|3“^ã±),O~I)¯ñ)L}%i¯qSúkün ßÏxÔÌ׸*ë5^¦ì×Íysr§î NaeÞÔ=Áü©{‚S8Z0uO°pêž`ÑÔ=Á)ÜU8!818)898%858-8=8#838+8;8'878/8?¸ ¸0¸(¸8 †ÂáÁˆ`d0*Œ Æã‚ñÁ„`b0)˜L ¦Ó‚éÁŒ`f0+˜Ì æó‚ùÁ‚`a°(X, . –Ë‚åÁŠ`e°*øñ‡$l ˆ ‚t™½±I½ëz'& …ìP"+%)2¨™ŸZ<1 4â­ë AipttBÁ?|pRBM ؽa—hÖÝPvæÆÞM½›{ƒ¡º˜WÖ[zC À9Êj&…B_É ὠÞõÐè܈^L4pöõ¾ö› œã9™q[ ónJ–ÏÛå¦l„FGF’è^VLI¯h²/è˜ÞÄÛ÷7ÿ:•½0æÄ÷&LÉÿÖG%õF­nšŒe34èIr17=ªJ”ç$÷FNÊS"(qä86(¥7µ·RbJ¥õn…FA£¡Q…1€,Ž’Ñ¢_Õ1F—FÓ³’Àé½±“>â&iü$Íè-Ný·è’Á©)ÐÌÞ$@— ÅNÖ^—P Ä M€®/ÈšŠ6'1;1%#ŠÊç¤e÷æÒ¸€4h4·7¯7¿—•A€^ÙüÝ»thJdaoVLQ/'³‚{%±™Ð׺ `|!½Ð^X/¼W…èEþ] Õ›-¡{1½Ô8a”.?2Ôâzñ½€#öJè8Ðôì‰ÿ"‘z…¹9P2P‡Ú›”G륃齛S½¹‰Ì^ubZ$ëÕ*2§–õÊ>0³Êíå~¯ ·ÄÈJLŽJ*ö‚3D½©‘âÞ|¨¤7¥8š 'äAƒP%½”ÉØ¤ÿ4çP¨ (ɬèE@aPå«•ùj< ¡ª^u¯¦WÛ Êãt½úÞ¼D`Æz½!Q¥½}H`tŠ }ëúà >Mbp_14¤ í ë[ߌ tCº±oS_°¢‹A›û¶ôƤGþÇž£€OÖ…â|EÜ«Rxß$Mƒ.È‘}[û¢ú¢û°1}±}q±ÁÌȸ¾x@“З؇HNêKîKéÃASûÈP"4 c&g.<ÿjA Ðô>°Û°ÐŒ¾-©™}òÂW¿>òï£JA³€ºÙ}P`¾cò¹€E P+ˆ8§/·OÍëËï+˜Œ®° •@‹ž^Ü—î#æBúr©Ð>1”” ëcuUqð>DŸ2ŽEö¡úÐ}˜>|ðl‚bû$Å™,¨4×G‡ò¡L( ,€¦Cð€7‰}$€’ûØ“ç@I,à©ï1Rú¨}´¾À;½Ñ'…*¡`в€Ìîƒ( œ>n(É¡j(@AŸ °fN®aŸˆû$•Å–ôI'ýʪÊ'yEŸ²/ˆ2$ƒ•¥Ú×þ=J1“{MU¿²îÓö º©¨ô“]hè3ö•ö±cúû×õã äˆDužÜð¡ýaýëû7ôoìÿ×qß”³2sgsÿ€/…®ƒ¡Y À¹ Ìa?hÒ>¢?‰ÈW~a[û£ú!@tÑ@)¢ëωí7¤Çõ¯äñý ýÅ…Á€<°HΩ¤þäþXʤ§Ôþõ°´þPXz?8=£?s*š0ØXÖ«Húa“’M°œIÜËíÏ›<Ãóúc£·ÀÂaùýáÀŠ(è/ì/êß ´QÜî‡ôCk8ÀèEÂ"` ¢ Eöo…¡úÑý˜~l)Л(À7Õ"¾ŸpÁ@¿‰ý$€#™Ò+¢öÓúécô3û_ýþL,ì•}<,¦±ú£ãc“’õ™A1Ü4u»_ŸË+ÊÉæôký™ãö'Ãx@}~¿à•WàÜQnœýÉvS_¢þÒ1PŠJOƒ¥Ã6åiâ!“m„ļŽ-© &C=ufÉ‘—ö™€M¬¤_ÚOÏ¡D¼ÒäÂŒ ²þXN‚¼?&fçÃÒ «BXŒ—¢è/JzíA9Ùvh”ªS÷Ã’‹À€> ƒÁà0J¶fR†!a(ÆHÀÀøEL°ꀬïÇ ýÆI›R€†¥á`x`4ð€Cf*˜ D8< ‚‚ Ȇí ¼ªA€+²cž#®Ÿ”mà&2€Ñ1s&÷l# §Â¶lÝ4°y`Ë >P”£‹€&¿ÒäÑa´lÐ@Ä$•‹ØT€O ŒžßQÌÉqcOÒ„Ø­Q,Xô@Ì€;ðÎKþÈ’óŠ€õÄÅhй°) K³ø—4°>­4A+€å'Jâ“ÿö3ÙR––HBèS$ b˜Jfö ),m ¦0} °Ê`ÆgXËÈÈ8e,9A”›7éS“MÕÊÐçóSô0æV%Lƒþ  ЦZVV*X1Pdk òj¬b °Í`(ÀÁ4S^Œ0 > …!¨4 Ã @ÀØI/Ú¸ÌÉ“_Æ àÄW±$c³YñðuÀ\‘È,ð䎃Ã)ÔÚ€.Ž>À‚3ÂVY!€º=”Å)æà&÷%o ó‚T 0 Ñ@|CÔVà}G< HYçl†— lHÛ‡ÆH6Â7FÉäŠWQLõR5 Ø»®‡kt xœ0µ~õqä"ý·Hc¬¥‘@‹[l(Œ¸Xx ˆ€#‘€5(ž;èÉz€F&"+ìdYQ€-†¦§æ“p“2ü a07™8ÈMR3§J& ¦åþ)ƒ8u03–nŒËŽãÄÐéƒx@fiÆÆ˜ "ÏŠdgÄ%&†çc°d+;¾8MIp2œ9˜³õuï8ñyÑ”¬àˆˆœ”¢€xmqnv)ÐCÖ?°CÃÑåq2b 9ëHyÜAÞ Î$GÑàt8.tÂI½hP<Èj¢i©Às°€§À€g* ‚HK+Yt›E+‰UC6È…Ë))gâ?IŠAáäÜ)+ÕƒšÁÒ$í *I”ôƒ€Jà"Àf]‘q—ÃÅSëH ωKf¹tPNÖ!|ÝêU,CÁ@¹$!2$€óàJxèPÉd­°¡õCÿÖö†I~#@7 i^µ€ÐÁ7m*…‡†zxÄPäP ØEC¼„ˆ©ÑÒ£‡b†b‡‚*P"n(TXñCj¸ž—0é;q(éŸÚûG Aük9yH Ÿ”½úý2ài›Â+Lê¥mFlB¤MzŸzÊ¥OùÛØe mDde eåLJ£"r‡b@©yCù“傡¡¢¡õúTÝ ˆâ¡@Ð6ÿšÀC×>ë€}šJZ„ Ái<ðˆ!äj(8á#èI[IF "$ðØ!@·"ðe†ˆ&MîæXD‚”ÈC”¡hD"‚ ð´!:@#ŒWÖÿƒñú§tDΫ1@°†’ì!ÎP."x"p‡ò¼¡ÀøT„1ó•Hx‰†ÄC’Iß%C™ˆ$Äfà¹(ŽbmÍB¤M͆tH6©WÅ òˆô‚èM1ò¡l@«NÅT\Yÿ>% QY=F!4C¡Hà9”uCz€&ë‡J‡†a“-¯N.DÐ0äÕ\OJC†‹¡¯‹Ðáÿ¬×aÃÀ ;e‰F ë‡7 G}Ý8œ¹i²Þæá-ÃáàáˆáH  l‘ˆ°”­[ñŸyædòÙ5郎ˆ6¤1ÃDDì0 7LAÄš„áÄá$“‡S†S‡“#Ò†ÓRÆdL€f ǧgã9Ãø©–rÿ¥/ºÉ]”Èò‡ † ‡‹†i€]1P–D‡™*‚€%(aÃp€n)@Lz@gH\Þ¿ybOùG£†Yˆì­hÀŠƒÀ c'­ù÷“‡ÀME€&LrÄaÒ0y˜ XÄç¾* ”aê0m˜hÃÌaÖ°p²6û•Ça1À‹Ü¿{Q”y@IŽ"$PâOêÁ°pX4\2,V"ÄÃ’a SOÅ¡AdÃdƤâDù°bX©Ö€T¯Æ+S=¬Öë†õ“^Œ-Öµ‚ Ã9õ•4`$p;Dîä“J œ­„±n$h„Z`œl!x$YŠ D†Ž¬V Øma#Ôˆ €_?Ð` oÙ8†ÜøÂgoè–‘ðÐHÄÈzd4ˆ’9²E$ÇFÄŒ@&÷OìHÜÈ+܀܈œ\[IIÙpÌ„W²¤‘äØä“7xЧŒ¤ŽlB†#ÓÖŧüç« 8é€>8!cdkfæHÖ‰ÏÊ$9#¹#y#ù#_8R4R Èèlpˆ‘( uä=õw ‘Èh@–‹þ—6c˜* Á7‚(a„8B!Ä")#Añi[ã'ûE¡0F^õiª~â¤<ùO¬¿ý²'¹ˆIMÒ$MFrF¸“Rf!@A ²”ŠLC¦ #{<æ GD#\:¿°ÉDŠ*)¨tªÙ$ʧJÆňr$>I5BÊ-N-A‚zD3¢Ác™£Ñhb!À)l1ޤ#³££ÿ:ÎY¯1ˆb ËA†ŒæMFÅ>u‡Ž†MÖÙõŠ®ø-B^°à„)ySÏ£ìÉùõ6&ÀÿÚÎæQEdrËh8P 41š^ X2²#r~63;>¯8ëµe~ÂV@5šè£'[ŽUgkÌßß@ºÜÉ¡©“ã6 ™,Åöàä„ÑÄÑ$€Û ¬;( OMMM$é£ÍÍšôË-È~ÕãQcú?üædå82o4´`j¤ „1Ùv’‚GÃÿþfƒ„!‘H4 X…LŽC~ìU½Q` x%p‚ŠR£H€GèQ<3ÊÇŽ‘d$ ‰äT$~…¤u£D LCR¦VéUÏa@o‘é dRšÄÌ%OEHFŽ5õ;¢\$o²e”:©…ð‘´Qú$Ÿ)x5æ£ÌQÖhR18móáyÉ©B¤ ˆ3å‹;UÄåŠKN†`46;-“/A– õÂQÑhB’)l%£%£PìŸÖ®)ò!¥³%•FQs‘‰JW!Ób£ÊQB¡¨ÉÊÖ"U£¤¨§ÕŽêFõHý¨iÊÀƒ¹>¥œi5"KG·Œ½ò8¦N&d¯ J¨`€†Œ…ŽÇ¿n%K΃ý[\Á¹acëÇ6¢6ŒM­Ô±¸Wßeo$á€å&4°öQÀ Ÿ²A…eû4WøZR19¶u, °EEOÙÅÈ*Œ+Hˆ¸ )“+àÆxLƒ&&A€÷ð”É:ñ ¼¸Ô±i°¿ß´6¡6vPicécS~3DzÆâ"£²Çֺ좈üÉÙËôycù-xåT8e¯òK,ƒü:PñØ?üG¢^Qðd :)¡`cð¿µI@ï·@FŒ…£"R_I‘c¨±-€=†Ã`'­qeÆáÿ®‹ŠCýÛoLyQ¨MÉ9F+Ê%‘Çb&­(Sõ¨×§ýÍ…&¼Fú”$ÅxÕÖ6Ÿ5)I*5ñR*°Ý ä( GOÕ‹OÎcìß~ŠºÄ¬¸Ér6°# r$PÿO­A€2•H û§Ç“¦ìà‰Tò«¾Æ#Q)ãºÄ8`‡¡Ph>14>u>5waÑùq8›ÒƱ¯Z™|>¥gŒãPë€}Šd„IÿD€’œ9ž5ž=ž3NAåÞ©¨¼ñ’ŒüñÐ^R¨`“ŠŠN*‹//~ù8dœ HŽˆâfò³â@ñÑJàŒÊ˜üž-HKJ +¦½êÅ8|2rÄ8rœ/L@cÆ#·2"6¥äEbÇ騜b`Ÿ´ÊO&ŒÇ™I ”< ž³¾ˆ x`MƉË'äqΫYRǰ¤ŒSÇiãôqÆx$0G‘©T@"sSàÑp[cÄGG )À¼ÅØ‚þ¶þ‹ÏH äxÀK¿Ėøw)ࢧj%MJ“s¶Äü³-+28iN9 .P¤H,ÓÌ™Á842ح茿ýf¥NyêfàOž­èlÀ"ŒÞº5‹ÎAg£Ó§ZO›Ä,tî<À&ÿ@@5À~Èù§È 'ù¢¿%ÅS@È$=›D8@@Æ(Dçž €,+FÈŸl9U=‰©“2ìÜü !þí_žJø"4 ± ”Iyñ¤5x’RЦléÇ<C³@'u4ûÕàf'Lõ ÷ïÿ€`ª–@Ñ«Hø€ààÏ`É”ô¡^ÅHßQMj°hÅå6ðv‹C£ÿiÞUSõÔâ¹æ5Š€Ö%-Ihâ¤- ú@ByÕvÚ:`þŒ˜e¤—X—°!¾$:à ÐÇ×s?9q4tHQf.mŒ<¸ÐoÖ_h&<&à‘‰„É7„ô¼àƒ¯£` •Q!S< pa× Þ7d¡™hàI”6Ütð=`L®œ-“e°× Ò6DdïJá[ÐA.š‡–¤üÃ>¾0°NÆ)@óÑF ù«µH#â7'Ñ«½q0zÒ£-(Œ9(FÇN–âÆ˜p°°Ë“¢S dSc™È“&L9˜z0 àÓ¼5*µ >ä:´ ›ü® ” h5x3~ðˆƒ¥h#yu0w+ú æ`æuÍW¿$=¸ƒ;˜–¿5%‚ 4øÉ˜Ã0ëžppÔífÌF€{õ›óÀ:g…¨‹UEÆ-‚0úBñ`f ðÖE:H>H9‰I+ˆÆ@# Ôƒ $eÎÿÅÞw€Gv•‡Ž´”TðBàAÂSÔÛtiš¦÷¦>½÷^ÕKB]p€„µ$€„òH!KÚ•´’¶H«.­Úª­Êj¥ ŒÞ?G³ò®mÀLGß9ÿÏê=÷ÎÕ ô-4‚¨“X¥+P¨¥Vè|Ê0-t?åyÊû”縉ŠQ­ªö?U ú§‚O1t¡§¸ºðSt]Œ<•/Š>UIg¢¨bO•ÊãOI„‰§’O±'õTüµ<ÅŠûG×úT àmOñ l·gFR'Ðu<%ÌÄÿUGAv]O‰tüªî§z@^(ïÍô4³J^ RÊÅ ÇöQk$$\ŸD‡ï#ôÁÙJ—ß—Tf—öõ)t=¤2ž\'Ó ªá¢Ñ©tÅ}J]¡ÆS]Z¥}µN%®A³ ¬'©ÓÕ¢zËû*ú´€Õë¼Õ• IîËp‰} ºn¹‰Cê£ô5ê:dÔ>Z$|Iav.TõÑ jÒ•ÒžYTnu_Ì'F³úì¾6jšœ¾š>n¯Üf]3‹©d¡;Š^’I'^@(ìÔgG[Ü'é“öµ‘e}ò>EŸ²¯\oÔ©úÔ A”j 4€ž¶O§«íë„9lÑÕ¡¸ëQÙÐçÒtÐ0‹ûšú¼:‹¼¹O×g×éû<:ŸFkÚÐ×$°¢ºŒ}Vš_WÎóœºv²/3çÀ ÆÎñ¸¥ï~û‚ºgÛjí ëZuiÄIèl}ö>G_\×®qö%Lwõ‘ 6w_'ÇÓ纒øél:_'9¥kÑÕÁI7ÐWĬ&Gtíº6ê.x)Ál½B83G¨v™¾0È:u‘¾VÒŒÇ>;ÞW¨‹ºt d™ìË×§ú:Èé>¼ž o^¯Ú­}m}¾êX¿í}4jG_gŸT ïêcJËxîÝÝ×Óç™uez¢Þ£êí+Ög¸Øþ€¸Bë?ÕÁ$ôÇk*õ:I~Aa’÷—”ÂZ,Õ—ö—!I_ÞßŨèWò*û‰ýÄ}‘žÔoäCO¼[Ge<”$ŽžÒoâWë©ý4=]Oë÷²z¶žÞ_Õ_¥ÏçT÷3QDT=£¿[Õ¥b‚Vž«o"²û9ý5ýÜ~^?EÏï€DØŸ¤E€‰ûépÅ`é%ý÷kêàIÚ/ë—êO9ò~’ÊôÊ~U¿p ¢%z¹ž¯ƒ–¶_¥R_Û_×ÏÓw³êûEúf™AÖÓ¸÷ýêA#€îú5èw'2˜NßÐ߬oo=Ê*ˆ£¸â**zÞ[§o~µ¦AßLlÒ7÷«ôõzƒ^T¥ÖëPíú~@‹ÚØoê7÷—ª-ýVÄ7#Ïv½ ({/ôh‡Æ¡wô;û­ 1é]ýî~£Þ¸§ß :¾~¶íDE0ª$Ø/© õ;õ}¸ß•탮ªSHÊ<­éö‡€ËÄQÇûýÉþÒ ê‹™~½Wïчõn}TŸêO÷w½ÔrÖË™ÔÚßÖßÞß¼Îþ®þ8Ø÷öÇôÝ™Þ@zØÜ̪ ^;M 4zŸ¾bIff®¾EߦOëÛõÐÉ(@š…úN}zº[ߥçÂWÁó’»ÉE=úânvN«x½ú’akpT•à eåÈ:Æ«X9€7M00iù¸;3tÙg‚êjÈp&d+ƒœ"e€:@Š>çq¢N¸ÞÙUjf1ØV0˜Rk PÁøá ”j/y¹!ãµÔÀ8õ_a¸ßC¼’‚Ü*ˆZ€¤Vt}vÉ„™( ¢²VÂ=—h¨2ÐÏÎ $ƒí³âÉ€t@6`US TCµ!(¦( +Í^¢L NJrð«@5¹eåÆûÜNèMe&r‘j@ °E©`°ä P;P‹´EsÝUXcx©A´À“Ö° =d¦!AK 膆ƆÊ0ñšªjø†ze’&£œ<'5ƒWË•4àIaÐ ôTé´+À¸¯c0p8†–Ê`0£8ô,µAD´ XdâØŠaî8î„Ò5zðõÐÝ´ÒPHtx„pÂôfÆ“û¬Ì7àG^Iðh”Õ¬°¾BáÈ@d1$/Ä¥¬zCr ÑP ñ§Ò-èEލé´ ˜ù'ÏIí] Û6Cç@×@;ª½{ f|Ï@ï€ÁÀ¨Á^‚s»„$Å]ÂF¸¤íüK~Á¥Œná¥v¶ÙPx5̆fƒÉP xôsÉ¥ÒKM ‹­*»T~É‚z¼â’ÅPªÑ0iB£¡ò’™G¼Dc¸¹^›¯7ˆi¤KäKäU õkEVó±Ú zê%p\èT ú%7ÐU—¼gzÕ—øò”ˆqÉg`^b]b_*Ëžej•s鯹T³Û6Ü,ÇiàƇÜN=å. /ùH¢K~Ð_’\’«Ã¨é%²aÁ,Nä€+.E J€AC Êúk]5àÈZȵ—ê.E—4Ô_jZ Áé¥ñRSV?dh¾˶A†ö=Ý¥S¤ÞsGÍ€øm#@Ó%ó%Ë%kÖOxµ]²_r\rÇuÉ}ÉЛ•¦¡{ö9ªx-Ùý—@µ¥Ç ºôl}Nˆ( täRÏãWýK±KñK4V'p;$q)y‰,MnúMÒ’ñ ¹íIÜeh¬ãR7èÅä—ÄR<\oжZe×uÉa–ä{ Ý—z.õfzW]{ö2JdÜeüeÂåüËv~Áe˜{—‹.ã€Ë5Ur¹ £k|Ö[©±ÌX(®0–^.»L`ƒ¤ürh²i•PV‰—‹Œà’¤Ë$#ùrƆj¤¤5ÔË4# ñè—ÈkÕåêËŒË÷½3³ë20ä*c ”ÜËÕÆ¸w™ä‚Ë,#¬…ˆ]n7°D Å— ÐÄåkŒ<#×È7ö’¥—é ÙeùånEevä £©†â²Ð¨ÊÖ)õrõeMíe±Qdl”J´ìî"7ÊŒµ—ë@ƤÒÑÉF/©ÏÚ6\–g¯­i.xOD^QfæÈ•€7"­¦¬nóe•Q \ÐÕ K“„§L×=ìW™Pf@šF(ÕbÓe>Ükµl3еFËe:¬4ëåFºšg»lÏÞéÕ,©Ð~ÙĪ‚ú——]ÈG=ÔÓƒÎ+m$3Äìn“Ñs¹ÁØldhAê½ì^O¸ÿ2YJx`èr'5|Ù”!;"—MF³± ­èn ]¦YX´š9DtUŽ^¶c`¿œÈ¶7yGv ûÔåôå–̘2ìÆV€¥LfMÛåöË6²j:.óT%З».ëˆ^÷åž³yq{/cI<) 7ˆ$ æ6q ½Ê$³p°h°x°d]S:XÈ+,„=qÐctÝF"à•ƒûúT·ÀD {YÕ ¿‘X/T ª@.” *¥0ŸRÆ6¤§$§­€©5ƒÚÁÀjCœºÁÓÚeB1±ÝX?Ø0Ø8Ø4ØÒæAÈJàÊ¥˜8ûR˜¹ÿ ¡‘6š@ÆQš‘œ© ì,ƒ½™™`´Ú;öAÇ Ö”‘Z%ÎÁn‰ ´ÝƒžÁ³þ t‚É7¨T·ÃõÇ?˜ozvL  A ~r1P ºŒÄ`”VjJpœüÈ wP__Ãçðõ)zꓬ…™Ú±ÁhU9\Oz!ò^y|°,ë=1˜brEå¦J¸ßH‚^25X*ª0uSÓ@µd£¬4MFØ_ ªV¥Y™Ï"#ëPæÝ²Á:Ø•©¦*xh¾Úimƒ hÙ:Ú«MƒƒÜ Õ>»Ôr¢É†ë…Ý=Ø3˜Bg1Ò׈{¦RÓ”¬±¨Ø&ŽÉ¯Æz€nˆÉÀ5I¹¦°Øjt CZZþTzªQ0ÄšœÖ ‘UÑ8@×™„P• iy¥ /ƒQ–5h*†*‡|JâŠlE³R¦•˜Z¸§^Å(2Þ#¢­& ‘‡(C*“ÂDR“e&©1Óæ!úPª—1$0‡XC|{¨$œ¡š!\vi2Å¥\%‹ÊjãñÐsÞPƒˆ?T#$ª3Õ¢š„Cõµ™¨‡tPªW eƒIn……’¡v•„fJ‡dPg5d&õ˜’OшùóÞ%z0%y ° òJ`GUf{X5d0©g1ºÏN™Ú!ÍÉ”¦8LµCu «jj²šš†RÙ]^I)ƒz›‡-@ÝÙä©RVEÄú!Ãâ•ÀŽeKÓÅdË´„^V%bS•43p-CÖ!'pmCÌ̦ªì®àÊö71Ûkv£cÈ9äry€Š™¼C²ô|Cþ¡ÀPx-&ÐMh(l Ù¤àE‡î·%ÑÍú¥€Å†ØŒ8ÈC!Sr(¯)aJ qkÒoC‘Fu·ºu¨ ùð›Ú‡Ò"<¥œÙ1dݸÉú)jJš:‡¢Ïùï–^j×Ù ;ø\Õfê¡ö õ‚Mïv7ÌS⇱f¼™0\hî0å—À¾Y0\8 ‰KÍÝ W–E@ãÌÅP– —— —3¸eæŠáÊa ê{â0i8KÌ*y˜2L®Õ¶¢ö˜õDÈÚMôáªa¦ªÇ„ãJE)Sõ0c8ßÌDV¬a6ÀNn¥9AÁVßšdî4¡îbsx*¬Âül›¸fØÔ k$ÜaðyÃ,(ùÀãÔ£g\ä]8|j!VeO²âáû^ZåÕf¬IÆ—™Ë—ÓÌ3<Ä$}ƒQØ=Ú3Ú;Úˆ<`Çpc§~*Õx„é¿ÖšD'æ+q gõå]0V§­a÷Â*t=0ï§ Y!èĬ,tn-Bövèµá•´-i-*Šž˜Ä3óÉÜÈ_ÙXùX0³~ÆÂÖJÄת}HR!&œ4F£Œ%¬Ô±U {5mŒ>æµVáØ½Öê1Æô‚0{üè÷ Ž0,0>oO¹ŸXc­Vög¬ÙtBYŒzok³Ö€O.dÞX»Õní 1a ñ3<ØEcm !à¢11”XAi°ÅÙ$/_)dÙ˜|ì~=° ñ©hí*W9¦êêE @©Ç4c]Ö«Ij¡$£gLucõ€cmà;•m•úüV4‚VÓXó˜n,€žÊéÇ*m†1ãX‰­g3¹ g,cVÐrÀÈPl0ó‘ÙÇÊle¢b›!û™¸Êv æC®°9Æœ [d+´•Û\cX˜û›{̃ì½c¾1ÿôc$[p,4~dL€bŒžµ>6£ƒÍVeKŒ%ÇRci1³uµŒµŽµ ¡ß©Àië@vÕHÚ™õáªêm,èÅ®1†­{¬ø½gþŸM566²ãB‰½*@8î*Ëd¡'Œl/⯮˜©9 Á·µò¯ò+…\p5Ëh^UtµøªÜVrUšµôjÙÕr°-Êôà2€’¬\s¤òª(¥M¥ÚÖ(ÑÚˆW32*[„‘³Ù˜öpòÕZЬ‡LAT(i£CYg»¯]uµúê)ƸʼʺʾÚ­á#^Òâ\­A”ïl·å^å]½7ÚW…gÌ3²(ñÕ´8ÿì>MrU ÓÎJÕ‘kÑk2hMìäqà·œ>y>ÓN Ýäµj:ÇÎn=œ4â¶@É^œ8øÈ¢õZÛµ½ýVQOö“öŽkB»È.@òÎlÍ4ëeÆŸŸw]ëFR‰½L(¶÷\ë½FÓ:¥Øë¸ë0Î× Pæ_ÏÈåö€…×ïÛ]/F¸Ò.³—\/¼Q¥°«ìe×Eè*_œŠëµPåuâu­½UX.%e¼Uk€G¾N\m§^'©ÉèLK»NNÕõ:{4»ŸT_oe8ŸóFãz½½ÁÎMV6öõ&;ç,ªšëÜë¼ë|D ÑÙTp]x]g]o¶‹¯K€/½.»®·Ë¯«ÑžoÌÌ¿ë»òºÙn²«²~Ô×5€i¯³«k¯×]/‚ö¨ Ç Ð1õ i@zP6]Ò›¯ë²vz€†ëÆë&€fij\·"è Ú®ÛsœEê×X¡n'Ð.ÈnÈv»çº ïº#3º¨6ÿõp,öàu+t=|/²Ù#ÈGôz Á8*Y¿ÉëîÌf§€NCvÚ[®·l»^ƒNFr™ ͈^T¶_ïYçõ€½ëz÷õÀ{¯sª±7p7ð7àK#ÜðÚ{Ôù€57‡Â‡(4n?Äk…«|É ¿½¸e7ÊoTܨ¼A¼AºA¾A¹A½A»´7ktôn™Kè7Bgs?b¯ºªúl™7XY¿l€œ,^sƒ‹°0èñ‹ÙƒÕjRÂοçFíf1Á´†YpCtC|#io±K@OzCvÃgOÙå77Øèil«ýä¡Ô´ò† t{a^ªohnh¯…ÜžÕ¬»Q£áFã­mºÑ|C´r‡ÝpÃxÃtÃc7# ËN»õ†í†ý†Ñή"ªû†QÞ¬@?äüÌw=¯oƒ7B7º ö0’tÛ#Foôd#Š¿‘¸Á‚•“¼‘ºuÀúãià¨xGË ‚£õF²Êw´ß(t9 @§8 òG1à7ºnt#žeŽRG¹£÷8*DG¥#ƒu0°ãdÀHÜ8~\ 'Ý.Œ œ^)Žja<ÆŒU0ÞA¢: ÇëÔEãÅã. Ù–Œ‹ÄµÁáf¨Òq¥Z_6^!ò“éŽòñŠñÊqâxFB¯}¶ƒáo›€RŠô ±8 ãÆqÓ8Vcv˜‘¦ʺ“²f·;Žq·ÃãhÞÇ9îvÈV‡Íáw8Üãžq/²÷ûÇýŽÀ¸×÷FqÃã€Ññ¢âP&Æ“ã©ñôxÀr„GËxÔÑ:Þ6›öl?uœjgfÚx×xÌÑèžñÞqìD›8Õ"LäOˆ5…EiGÒ‘rOà'J&œÜõõ¢Se鄮歎2dÙ‚z³ð6G;à•€w;:Ž. {Ä Òy¢×A™À:á¤8€xÈ•²Z1Á™”Ra”ó48KÄô‰BŠˆQèÌø-rVMTO^Œ®G¥€1&J¬ÌYîdN°&Ø`Ç™¨’;Á›àO&„¢ 1Сt"y‚îÀ‚›…7‹nÞ¤ÎYŒð’›µN­³4Ë/;“gRƒ³üfÅÍzM#*+oo’²:ä,lvRn6ef¢Õ07i£CÙÌ‘hªnVßÔ9@UÁ)“yS< ´8MN³“uÓ˜í+vÖ£hN·ee57¹ˆÃƒÒ<þM‡³JåLpSxSܸÊåßÔ%7ƒ0‹Bt)ðd7YB·“I—ßTUËSf½ªNc½éqrNÿßý¦qjQéuÖݬGXÃMÔPPÝÄ©8Ó,b+'Õd=[=YêªBgSͤv²v’G+¤¹Xu“õY݆Iªºp’«i’èñË]Í@Uºt“úI%‡Ç­p•Al%詆v&Ùr#h˜ ëÎæ«ù¬æv˜y–I²Ë:iž}’â’»ôè~ˆ£¥½ÝKu9&“õä66óD4Ý“žIï¤0?ò˜ NÒ²½:óÞI£»Â“‘ÉjWô´Ÿ]±Ébip¦+‘ÕJN²\lW (½,–qܬ4P-HÞ:Ù6ÉqµOgŸ¬wWAµ©s²ÆÕTfc7Òí™ìó±S|nJà HñS|.br SùS¥ ÜòÂéYø6ÒóÝxwÑ4MÖë² »€Ó).žn}èºSb,ÉZ—N¹Ë¦K€W>]¼rwåt…›8]ê.s“¦ÉÓÅîBQ6Ö}ò¼D‰VÑwÛ4Àh AvÓ§«ÜUÓÕÓt RÒBcšÅ"ºnª›9MqWºYÓ$7{Zž=“r¦ïûâÀù¥fºVwš7“ñARãL 3-†U+šOK¦¥HßÁc¹e™ºeòi®»A¡˜6 •ÓL7ÅÈ9‹T:êiMFsºvº ÉDÙk†D"v‹€S?Íw7 Ïtí}ÛÆi…»iºyZãVºuÓúiÈMÓR·yÚ2m¶eŸ–½0ç´kZívO{¸›êån!ªK¥x¾lKëÝþi´^ üÀtpºÖI»Ñ>ë‹`Ñé”ñéw«,1D²&w·&¢0"¿:T¦²6i€Íîzè=ƒÛänn›nŸÖ»[¦m evwLwNwMwO÷L÷N[Ü7væîŒÕm)p êUwþL`…‹f$°w;³=YŒä%3¥3Ntÿ ¡W¹¬l¦dTÐõsaÇiÅŒ;3g`—«œIÕE§ž^_ОLœáI3·tÅÚâæÍðg3ÝbáLÚ-š·Õ-™¡)Â|)ìœmÙ–Igd© ¤ò™SN’tBÙåVÌtgâ„;‹·]gƒ´XëXr&¥’1zݪõŒf†àñBËÙ™ïÖž¡Èkgêfêg\¼§a¦-gxY]ó4Î4AR¾@ÙÆlFµé²uêg|,‹È0Sè±i LãL‘G½YâÉΘ"¬aÓŒyÆ2Sì±ÎØfJ85Õ2~¾§ÔcŸq žÚ*çL…‡ì U¹€ãFÜr wÆ7C÷øg3 t^Œ¨ÙD ø΄h¡"`ál$À#3=âJO`E7̧èLQul&ÕÀKLΤfÒ[fZ¡l›¡¿}¦c¦¨*À»23ÅÞ=Óx]EÀðDù½3ØY â [ƒü˜èaYÅlå,q6§ZM ͵(ÈH³2y¶Ú!òÈ=Jàtˆ4*ÔªðÐféJjÕlõ¬RÅÊš¹âΪA¯GÚe£è8³5³*e6†žD„%ZT'w¶ÙSëÑyî¯YÞ,¶á´u`%œ=åvIE³âY»É#™­÷è=uHCÄ‘ÎÊF¾R>«˜Uq”™H‰Ï¸uÞ6/õÉ|vÀ…\Ç|¬å>œaJÙÎy×|9ÚïÜóžyï|¥úæý ˜Î+|J‰šWùÂó‘yµOã‹‚D›i‰C/1ÖæáÕû”ìØ|àÄÚø|4}V…™šœOÍøzNz>!¯€:Zæ[•¶ù&_=£Ù§‚•ãÎöDû¼Þ×1/´H¹Õ:_>¿ó}Òéšïžï™ïï̾?„]È”¸<@ÂÂ}Ý|ÀL>£Ï6 f(­¾BàÙ}E 6 ´Ôâ@'ÜöÁl] 1åÐ_!Ì£RЋ“¼>ª¯ ¨ò¿¯b¡r8iŒj¡@I] -$a­|tÄ«Z‚M5à ÈÌŸœµÀL s,ìã,ÔÎ]à-SÈDþ‚`A¸ Zù¢>T¼ âJšÉÒ…B¥ ù’/XªÌtÅBħ\’U ê…g{OÕ<@ÝOÚ…)é j,‚ZŠ`ßéõÕ-èÈÝS§/á«_ˆùâ¾Æ;Lo6VóB¬s`zÈup…IûR oX0ÝákñµeZ0/X¬ µª6ŸžÜCéòÙì =>Ç‚ÅÑXõp$x™¿ÜæÔB)ѳà]ðž!°@õß×I ' ¥þàBh!¼Pâ,äû þèÎõ»„±….A¡?V‰…$ª£,S é…–…bÀZ3cÄoBõ¶-´/ðIEþŽ…FÍ¢k¡s¡k¡{!ñ¼ÿÿé©ÕÂß,Èr/¢+ÈÕ~ì"̯E<”Èù‹þ‚E:èpüU¨5…‹´l«Š[}Å‹%‹ KË+ýå‹‹•‹µT’Ÿ Ðñß Ü Þª ÐÀWèVøVäV¸mì,Êx¦W‰[I€-êÔ-z :p_Æ@X HZ!³L ÛnµgmñV ðÎ[jYÒìz íÝ﹕‚x8A Íï?€]Â-Áè‚>~‰°$ ÈѾZà'©d…KEKÅK\ä‘dÁYJ–J—IJ¥ ]ŽÊŠ%ÑYŒ•À!.â­°¾ÙNIàÙ(H !C¦@¦.Ñ ”èKÞ¯ÊZT/=8V²€β™·¾–˜KŠ€¥ŽµÄ^â,Õ,µ©á.¥èÊo‰¿$X.‰­ jJ-…R@¶$_RÝ)Q.1âÛ Ðp‘ë U65@ øà°4€i!×B®;‹µ>à `—iXj\jZª ÔL ß ü¦€> ¨_2,—¦%ó’åVZ—lKv KÍç’. ‡Õh[~摪hçt-¹AÃð@é…Ì¥ø–?`–€=@Þ‚KLY°0d+j¯- “eÎzÿ4õÂè’?[Š/…È^—(}ÄRrÉH-yÁ@$/¡@ËRëRÛR à ´/udcÖ ;—ÒØ“º–ºÛ¹rÕ„]NÕˆ[Æ/ê]·2Џq( – —¢åâå’åX t9Ã/ƒ²|ùÔÊ wu m{ b¹ãÌ65r¡Æ@åro–KýÖ@K€$/S–ÍpîíÎÌä`¶¥*ÈhËt(;O3e²®ÊÖåGw^…ÁêeÆ2s™µÌ^æ,×€Œ»Ì[f¡«i  B-‹—%Ë÷£’.e@ååYž" +‚ÊeÕ²z¹"ÑP{fçUS2í Ö.×-—ë¿8ä )ذܸܴ\ŒZÐ ’2À8ˆÒ-둦aÙЄpó2d–eë²íÌ;œ‚—@9!SAêZ¦ÝHÊ ²‚žåŠwY€>Sf}Ë~2£ "Ðrx9Xu¬ F—k‚ñåÄrr™䂯Ôrl9½Ü²Ü mËíP ‚ü 1;"’`ÇYË]€w/ ƒ=ˆ×»,B­±+Ò nåT+\…_‘ +²`þ v¦‚••¢•â•FF¡µé”®(‚u )[)_aP*V”ÁÊ•zqEW£ ’VÈ+M uÐA¤dýqäTÀ4ÁûQ¹´•&DÕCƒ5Eyä†`mÐJ¯^ћϴAŠNœV¸Ç2ŸqõYŒ&Ð+Æ s…µÂuAÎJ @Sf²:\ y+1t-3Ï´#ICu#@>Úsø(VÁŠpÅ­˜˜­GÐl9;ÏŠW$+ÒÙŠ|÷,ŠåŠjŤ¡ÙèzÀzÅ­ð5+<&Ìõ¾I_»z -°K­Ô­Ô¯„ƒúš`°jm\ñ©}H#äðz¹M+~ "›Wðè›/b€GƒºýŠa% {O©2㊠¬Í+–+@ÛJw0 \ûÊýzRAÇŠsÅt:Ør{ųâE:¾•àvý+•v$?´Ò ¯$‚mÁÈJéÅPÙ¬ŠÃNðD¶Ž"ra©•ôJ `½A½'غҶҾ‚ Áþ:Õ#„:@Šu®ä‡º#qºW B=€"Þì*n¿Zª]F}ZŒø…DZ"¬–†Jና¿ óV°š‘”… W‹VC,¾´4k)Å«%ˆ_ºZ¶Z‘­µ|•j_•! êD\r¨ô(¡:jå*q•´JFVTQViPÒCU¡“Ÿ™ê` ¨«´UújÕj5x¨Fˆù€eö<Æj—<&h° ³WOe€5«lpã„xY> `•-íÕ„„«" Å«:˜ûÍ?ô É*/$]•­’ªä«ŠUn¨MPŽö H…!媡FVêÕH•fUÒf=—)kWëVmзõÀiÍ|ªRðVÅ¡F¤!åÆ…Æš¦Õf t«ð¥̰*W!SÖ‹yÕ’‰œ)ÈBÖUSMܶj_uœz9W]«a¬)’{UÒCÔžÕ(Ë ÒpÕZuH*„Õ¤¦ µLŠÎñ¾UÿjäÁÕÐjxU µFV£«1àÔ†â«u!m(±ª‡ÞàÁ&Wc¬B¸*¤VÓ«¡–U´E l]m[¥«ÛWuÙžWw¬ry ™øC‘ê¦Ps¨sµ>Ô…"tòä’îÕžÕJØm,ä^ÄîáÖ`Nþ€_B¯Ö¨èù†)”¿f/k*aáZÑZñŸWO5Ç#Q²¦Ð”®•­•¯ñ´k¨gB¾MT¹æ ×\¡PÈ švÈÝ"[62Kˆ´†UÇ¡'ÈkàYC”5êmÍJÃ.ʇVÒÁS§ jM¬4’œ°#åKª×kdÏ]c®ùó 7b¡:@‡CQ(˪ƒ¡f{­‰ÍY«Y‹…ôg÷oI¶ ©MÎCv|TƳq €²£7„€¥·5$Z¯IÖ¤k2àÉ×:·-¤Yëµ#\±¦\S¬ ([½Öêùá¾K»† Ÿú­EµΞPô†pá:àáÃ"ßÛ£OÍúµhuÃZ#ÒmZË7VÖAYÃÒ¯Öî[kŒÆµÂ°i­(l^#C‡K–5ëZ)ª­,\ЖiÉšc­Tè\s­U ‰{ͳF¬2•w­@â[#…ýkåÊÀ¸”ppmx-²FNt-¶–\3JâÀKd#°ÔÐéµ4P-[×ÚÖBŒŠÚªpûY„''™ñ[낲:Ì•3ÂÝk|ðÖ“Õ`¢ØáÞ5ìmØ Âœ0î¶DYæÂíüÛ¼l”‚pp oÝ.§ø`>äN¦Ž­¾‘jå6²F&7P›x¢°<Ü!tÁ™O–…+`+Â.©MPr»ôvBÆKÀ£T&«ÂEZH¬-»]~;ÁR†+n“•àÍ.â¶Ã¼ª…ñ#ß&¡:(·µa.+É¢Þ¶ÂHy¤´ÛåÕš°¼A‹:|8WÝ®Cko3€f";”ìÛ(ëÂõa=£6\s›{›—Ñ¿Ýnûæ0^ ¸ÝöRa­  Þ6…-­aÑíÓ>ß>y•¥fžä¶–mËôèm˜¹Ùm{XX+ßÕ­ËBwø¾uýí†Ûˆ›@oA4eêã¢hnë_JÃír83ž!›oû–Û1À¼™>èAm·í··™ˆnGÂ!à¹oû¡ô ÞÛ¾ÛÁ°ðÀí@8 ü6hK<3F°×&ÂÁÛ!…o`¯Š†cá²*ÖFoÇo'nW‰’·‹zö— §@£%œFz-·[o·– §Ãu{¶¥…’öpÂ;¡ìºý }k¸-Üî¾Ýs»÷6v=ÃÁ­ã,Ž<«Õ&/½'Ü.X/\/Z/^?•” Xº^¶Þ™Y‡¨ï±‘ü.Ò._ÇG*Ö+׉넬/Òzi+H^§¬S×iëz^Q„¾^µ^)<«³ùe¬3²ÖÙëœõrQ2ga¤S³Î]ç­WœéWFøë‚ur„"dá:5BØzú{–ëôˆx©ŠH²qWG¤ë2Àåë ÄaF”ë÷}©S¯3"2.+¢Y×®GèìH øª~Ý™Výz¹ i\o¼y]·Î‹p"úu>ðšÙ‚‘F½Ù2ãzŒ¨éÌ:“„3¢ãèÿKkÄ¢³ÖX_ ´{Ý ¸mÝþ€¥cÊv®»Ö%qÄX%‹x@æ]o€Ó’,|ëþu3SX=òX‚\ÑD< e$´^¬«ARÑFH´èzm$¶ääzC$µž^7Jõp²nYo]o[§fŸá4FÚ×;Ö;×»ÖqêæH÷zònˆðÕ=ë½ëúv#BÑEÌÜ´ÉŒ²ØÁMØÈß(Ø(Ü(Ü)Þ8õh‹”l”n„aÏͯ²Gg¤lãä—–ä\W¤|£œíŽTlTB½žqƒ´AÞÀÖ÷žýÚ®7÷ø"a)—‡î•)Ô „ÚMŠFQ/DNß(VmTo”À^Ó®ÔqÙ07X€±7¬0þœ ½fƒ»Ñ¬àµ/ðÀêâ7l7‚;œhE­’p¤ j¤ˆÅ‘H=G‚ìbé†lC ê$"Ɉxr‘bÃ.hã+7Š$ªx¤ ö5Òíˆh6Z#ùÑb‰]˜‚ºzE ât¤=bçj7|R•¨´¼¶H…€ h‰qÙ·¼:#uõ™n4o8 €Ñ8 ®nC¿ÑéŠ6bÄ{%ìÄ…Qcf´%!®iüa€3_{æ?Û¢Uj.ɲ¡S8ÈØ(.Š¢, ^è"Ea_‰âÓ0 68ÛF Ð)’Šoߨ„ÕaT;6œ¥Ñ2ôV k£¯c—EÝPC%èy6<œòh)¿„ïÝpÃÉM©!7)£DÉQbÔíj¤ú@3ñoТÔh`#˜éÕ z4¼Q=©E2òØF`âl$’©ô†Ö`ËFEæ{ÚÀ«áìÿy«£­ŒhÛFûFÇ3Ú VسwÍ»6z— DÓ»ÝÄmÂ)c“¥fF7ȘÙ^-ßÌ”ùPln¬‰o–,…L­bAìhÒJŸ^áo„MÜ$mžú o2Ô›ÜþײQLÙ¤nÒ@Î{úfÕf5àŒÍûr&ÂXPò2þr6k6¹›ü(p>dd!dñ¦Jd)dYÖN,ßTl £ÊMØ«€«ÞÔ@©Ý¬…²n³~óÙX²xãfÓfƒD¥sìl“4!lFü$[·æB=Qý¦$jØ4nš°5oZ¸Ò¨eSµX/Æ2ß±é(£Š¨}Ó½šbðXŽMç¦ë{÷¦&êÚ»éÛôÂn¥Žú7Uà+ 7VÜòB›áÍPDY4kÉÍÂã›ZжÁ,tr}´6šÚLo¶lÖE[7Û6Û7;6£ ÑNu‚^S´k³{³¨ÞÍæ¨.ŠÝÂmÁØoÕʘ¶>3ƒ¢˜U©4ƨÆŒ°•¦hÁ^\¸U´e¶S”Üâ-3èZ ÛE%[¥[MÊnÐ-Û*ÝŠ­Ê-âi‹¼EÙ:ØuD©€Ó Ó·lÑ*€®hõÉ™[¬-öðš-.”¼-›D3ˆ¿å‹ ¶„[î¨7*¾8ëM²%ÝrFï÷¡lK¾¥ØR‚Lµ¥Eߨà™zK³¥Eúµ[!MÝVý–±ºa«q« xÍu[±¨ a˸E£¦-óV$ŠZ¶â™±Ü²mÙ·QÇÖ³cˆ:·\[­Ñ4ɽåÙòƒ–wË·Užy¿$êß²×¶‚[¡3ýðVd+ºeÊþOGl+¾•ØJn¥@žÞjÙjÝ’)Û¶ÜhEH`4Ùè:Ú¾Õ±Õ‰ä#?V;yNêAýéßlA'cÑ„vÊÐvx;(º]‹mÇOl …Eà! xqÖSj; T äÖí6(˫ڷKcÛÛ]@uo÷l«{³mÃÞ1‰áî8jðwwòïÜy6ŽBÀ‹îßé ”VŠ$ePcåw¸Ì~à Q%âQI‚’|‡%õ‹B»ÃŒ~§"VÂy¶<_Õê;ŒSýóú`ÞUãÜ©¹Ã½Ã»ÃŒñïîïˆîˆ‘#Vý A89F‰ÑcR„ËîTÇäw€óèJ(Y1ZLuG}‡ú¼ž}0iïÔÞÑÜ©»S wï4ÝáÆš‘?^LwGŸËpÇxÇt‡<ÕÄ81óËëgM‰„}æÝºâ¨Kˆxö;;ï¸î¸ïxîˆbà¶g¾Ù2æ¾²²¸;òXÕ‚2 9rÖ;MTY¬3ó«iYNìNcL‹¥Ž%î(cÉ;ªXêL; ˜&Öeë¶;íwjcw:‘´ê©?‹µ)ÖkŽéÖAî¾Óu‡!ê¹Ó{æ»ÑA­†X·“ácø‘Â+¥vòw vØpZÓÁ½q3Õ ,­1[ÖáNÑNñŽ=V²£§6Q¬ º¬tÇsÄÊÀSùNÅŽë,3x©.Õá‘v<1wŒ¼ã‹QvN5‚H—º#%Òvè;þXÕN8B¼êÆs‡µEb1àTHØ;°ŠÇjv¸;¼þN"–¾`'î„å¢1ò™ŽIJwd;r€- áª¼5Ö”rG®TekWïhv´;µ;J~ÝN=ðD¥ a§´"òG¼+Ö³ÁnÒd>qÍ&ÈÍ;º=ò$VôİñÞ.}ºƒ%é¹Ý?µöÂ95p#èâ Gq‘È´£Ö”JºcpAª6ïXvLjëŽ 4ì;ŽçŽk§ƒNYQ•{Ç)ÀfÞcŠ—Qb\h ª±™R÷îÇ ãî*ߎ…éªñ?°ƒGwôMp'´Þ)WD#;%Ù8¢;±ŠxY¼<ß©1ÖâäxbGÎceÿº‡ëCÿeÁTGÈÕ´–OîPã)=NA~ŠX)3^„þÝi®oÝiãVÇÛvÚw:$_“8û> RR王GÏž»vªÝ;¼ìgG4!8Űâ=;bqhôî`wÙqÜ.'®âÖÄñ»QôÙ#΋  f>d.Š@ˆJQœ°›¿ÛÉ/Øu¢on(Ü-Ú-Þ#YµªdVbüÙ”ÆKwK´e»÷i’I–•Êã „•ïjâ»JÀUÕqm¼2«MÜ%!LtúíI»m*Ê.uWÌ£íÒwkA7}WoH©TU»õ@7Ä«wã: c·93¸Ld­œµKÈ|_Û.g·fW7ǹ»Æ8¤ü]Á® E‘¢â–ÓVß ˜ Îζ¸ý¬-¢]ñ®d×]#Ý•†øò]Å®4óÝŽ»n¤å‚Ò‰°DHµkV¨Qýš]í®'î×îÖ]¿Û°Û° ró®J=d_ܰkÜõÇM»¸yײŒ[wm»öL=»N(TòåÞõìz î†â¾]?`Ý’„Ïzø~ ÇñÒp£»Ñ8‹ÛMÄ!í&€“Ü%dgŸ.U0E8X§v†“Ú5ÃP»$Ñ™‰7û.V*MÈ â®½î½ž=£0$éÍêb÷qû°g$ðP ÷d®Nû*ž…û„½`ÿ¡:…šDœ^¸_´C»¬:Q¼_²¯L”î«eû Ôsú³Y]Žl+ö+÷‰ûÚD-ðIûu‰z€ä} ’5&¨€CÛ§ï8M‰ªýê}ƾî•ÁÜg…Öœ`ïsö»ø”ÓÿÓBö†3=.Ð<Èü}Á¾ÉDûjôMwFÐïK€WŽ®CRÀdûò}SBñ@Ûì eM¨ö- [B½oJ‰¤š}í~í¾3Q‡¨zT6ì;ûnT·îØ|¢½™Y”ðeã $B‰à/i•??uÃÜh†Ètûá„~ß°HŒ@›öÍû€lŠJÛ~øö}Ç~,áÚµŸàºȴèþñîǾýD¿ŸL¤ýà~hßyú­¡ûÐK'ZQ€­‰¶Dl?¾ßžH•Ü'É:©ýyW¢jéI¤÷[ö»­ ëºm¿}›„™ tç~×~÷~Ï~ï>ö.î.¸ø»„»0ïÜ-¼[X1ä’»§ñ”Ä'Ëî’åw+/?Y ° Y–EIâÝâdI²4Y–$—|·*P !‹îŠ¡”@–Þ•Ý•ßUÜUÞÍÏ>ÛRÝ­JªA¢¹«½[{÷Ù®»[(F²ánãݦ»Í@éîêïïÖMwÍw™ÉREuÒV’b±"Û]û]N²&ù¬7Ç]ç]nÒu7ª,g¹ïv2+áÞÜs×{×ú<¤ç¿¸+,x7¼ðÝÈ]~2z(»¿›¨d}&ɻ’¤h%äVêni»a•µÖ Y•”'eIE² ðö»6¸&wÜíÌúìº[›Ô&5Én )°ó÷Üí½‹=Àddx( ùP@6‚ÿfȺdCÒ,xœƒšî+éH– yüƒÓèÂàq¥ø@Pz`ÔÈz’òƒÚÅò@uàE>ÔY _²þ@s =¨Ct”›Õ|àOêH_ðSñ¯eb‰ Ah]Uæ[ö’¡ì 4”"X]µ´Û|`=ˆ#i"Y#‰&#€[P” ë‹í IÛ¡´8¤…ä–RÝÓœYk¦ÎÒµëîÕßk@tã½&›ïñRü”îžþžà¡xµ'!Š–Z-Jîï™î‰®d›ïIR–{Ö{¶{vhãžiÉRr€Î{.à©RŠ®Ê”û^LãA}à…RòÝ3½Åç¿§Iõ‰-pO›ªÛà½úTè^ø^éGïÅîÅV›Š0Ô*—²­Ö‘¥Kyß¾VJ4’H+u¯1UKkJ5§tà«®îúTútì&X³.!eJS-÷ÌÙ1h½g¬íž5K·ßë¸×yÏ–êº×}¯,í©Þ{Ž”3…=t†;åIyâñ‡„ÃS _ÊŸÊ?¼A\pXxXtX|h©.9 ¦JË@V~XqX™Õ!ªù¡)K‘³rH= £hÀ¡VAYd (™‡¬C¬œ}È9Œ¤j€æBæò‡ÂCÒŠ¦ªÐwdÃt/K‰ã)É¡ôPv( ÒRª“©T*Šk¨¶–TkJ}¨9lÏôBJ{X{XwXØpØ™j‹¦Ã®TÒkFöº³v¾p¢g¾WøÐph<4¦ù°;e9´žÙô¤]6 zSöCÇ¡0×a N^Ø86…mLUb[±f,ð|,KÄ“ðd<OÅÓðt|¾ÏÀb‹°.¬ëÆcÛ°|¼/Ä‹ðb¼/ÅËðr¼¯Ä«ðj¼¯Å×âëðõø|#¾ ߌ×áõxވ׀w-–ˆ%c+°¼ï»ñ¼ïÃûñ|‡ñ|ÃÇñ |ŸÂ§ñ-øV|¾ßïÄ×b…Ø:ìOï‰ÿŸ ú"†ô=’g>Á`Þx$ó= æ5¡GòFW12À÷M`0csl˜ÿµéáGòaa0kÏÍb0ï‰B?|ƒ™ˆ=’÷¦7=«7 4æ?1˜J<’÷ÚØËXüþøåó÷jOïKC{a¾½¯5 ÛOÛÿžÎSø'ݧü?éxŒÁ´þ Ì? Óï9å§ßý0øS:øA€Ï`0ÞÇÉËÚùáSÚúÑS¹õÏÁhýE€à¿ñ‰S~ãÇOýÖò‘¼×ƒœ÷W§|Þ§³ðICýÔÏ=’÷: ‹þú”_ô…,üRþ-Ô öþÝ)ýèWOëÇÿ=çmÿð»Ì¿öHÞk~„Á|ûŸOõ¾ý¯§ñÜûÆ©þÞÀüþæ·Nûa½ïÔ~eàTåò©|~èT>{ ø›=Õ»võ”¾~ª?<|Ðë¿yªÿÔÀb0ÿ2ðI æ;³äÑAïó§ò÷-žúù“¥Sºwå4®ÎµÓ~j_?õÛ¾y*oÝ>¥[wNÛ‘Ü;Õ‹ß=åÇïü,¬—ÃGòª€ü穜÷_§úìÿ>õÃüÞ©>ó²ðé,üáiýôg@ÿ}LÍÉkÛÁ`òNÉ{´c sé­åžGþ–^sÅ?ÿºó¨žÙß:•ÏþÀ§aû½ó¨?ßpª×ÿÀ/þªWÃoÒoÒ¯&½îM°NîÀ:<±žäãÌ'æ?ú¶Gßþè;}磿uòÛ'@| ‘uÂ91XN~‹øÛÄß!þ.ñ÷ˆ¿O|ñÄGˆç‰¿{òû'_Ã,`ž9ùÌ;Oì¸wœäxq>\ŽŠð þ C~”òè9ì“ל¬Ÿlœ¼öäÜÉëN~çäÑ“/c^WðÚ‚ëù7ó'òGóGò?Ÿÿ¹üÎÿz~_þSù¬GßD¼ˆýsìǰcßL|æä…þ~ ÷»¸à.àÞƒ{/®WŒ{®¼W„Û<±'ÁEp</ÁGð„ !D"„(!Fˆ„$!E°Ã™Ô 'S7Öƒõb}X?6€}æDNù Ž¢¦¼RH9G¡Sê(:ÊïS (xJ)EAaQ>Mù åIÊG)F¦|žòܺ€óN⻈oÅŽS°Ø/¿HþùËä¿%“Èd2ƒÜKé¡tSêq\)®w÷‡¸/⎠7€£AkJpõ¾ãC²Ç?xqå}WµßŠ“¼cþ§/þÐ+¶i64?Ò`´ç´ m³ö¢ö1í_iŸÐŽkyµ¸Úm^­¤6^+¨}¢ö»µ‹µŠ:wÝgêúëîÕ½¥þÓõ_ª¿T¿\ix}¡!ÙðxÃ×VÞpüéÆÇ¿ÒxÒø&ƒÎ£ûªnL7ª{ãñ3'?©ÿºþw “Ábp¾`ø¦¡ÙtÉTÙ²hºgÊ3ÉüMó÷Ì…–Ëùc%bùwËX&-XÕæ³}öf³Øßo̾fŸ³?êøŽý¼£ÊAt|Òñfç—œßsÙÝŸqO¸5Œ÷-^–÷·½Þùjäfä‘ïD~aDÍÑÂ(;:ý`ì_cß‹½6þúxQüýñ¿¿1ñš„9!IHo9¾œøqâkÉ~˜o=nKõ¥®¦æS[©éÔëÓßK¤KÒÅ銴3ý¡ôgÓ9-±–÷´~ºõÉÖOµ~©õÿKÚþ±Û®iw·w¶;Þvüöã?<~¢ãŽ?Õ1Õ¹ÛùŽãƒÎ'»Þy,ë1÷|£çs=ó=õ½Ò?þüçç¼×ùÞ?~ïè{¿ÿ^Ùûþå} ï7¼ÿ™“ÐûßuüOïô{üú~ïƒoz¬ê±ŽÇ¾üXÿc·Ãÿ±†?ýã?ýö‡¿ûá7}¤õ#øã›%çûþ|íÏ Žßò±Â-}láck;üØÑǶ?vçc¯»øÈÅ߹ȼȻȾ¨¹h¸Xw‘qÑwñËÛ.¶_ܽ¸pñÖÅÉ‹…Çs×/Î\Ìûø/ç=~rñç>\÷øy|íñþ§|‚õ á'ÔŸÐ~¢îMŸÐ}ÒóÉ’ãÒã¿,;~ò/5uë¯VþªåSÉOýÙ§¾ö©o} óéøgBŸ)?~û“SOfVE›À&áŽ1 ÷Œ­pØŽíÀnžlŸ¼þ$÷e/´2ïë“ÈoÅb±´—i­m¯’]ÉñsÆaGoæ¼Ôäú¥·Úý ×èycöú^%óàÕ‘ü/ÐçñLG?ËOðçêÕÐaø!»ÈÏ=6ÑWñ¨Æ~áØâ¿‡Ä+Ò7ÉÖá7ýuZ_Å#öÜÔvØ~Øñâí|Uµ£ë犦ç°ûðÝ/Òò=‡ï}Uµøää}ωçý@àÞ…_y¼| |èð±_y¼/úӗئ¼HýþÙÿÂÞúEÒŸ¿ÈþøØ¯¤ß.>þsÕûñŸiõÄÏá÷¯Ê¹óÉÿ|IqýÕá§^”þ§¦–òeèϼ*ûôÙôäËßg?÷2·÷ógþþúUÙ“_x^Tó"ãüÒᗪ憟¯<$ÿÛWeï¼”ôw‡ÿk߆_Fúêá?þß_YOýã+^ó?~íðëÏ«å_B½ÿü<þ7àüû XýâI_@ò/?gÛ¾ vßú ¶ÿñS|ö½Œ}Ùÿ¯áùÒOÔ¹ü+™]ƒ‡ŠÃ¡_³àʯM¼#g‘Ž^}UD}í§D1úªˆð—“dµõúáø+Üö›¯Â¾<œz Qͼl-˜~ާÙô<÷*챟'ÍC;oýÜíYzQ–+/Éÿò¯Iï®®ýšDúÒÒúKlÕퟪ¿ñ¼m¾,ý¹õ²x¹ó€—í,¾s¸ÿ"|ï"»¿`{ÿ+æÖÁá½W¬‡¿â::üOˆàÛ¿pÿõk;Òßy#ÿïŸáKrø½Ôøî/µ÷þçð/º¾ïÿÚŽësÓñ¯¬%?<üÑO¬›wÄÿ™Ÿ»¿’ðU¥è'Ä"~_–åH~bôÒÑ.Å‘üj½Y«TY/š_R_j_Özj_‚·º£úW°þïI G/¹uº£&°i~ŽþÈxd~ÅzÊò<[_‚®íÈþ*Ú ~‘ä~¨Þ#ßKh—?«< E^¤]ôUÒoñ—GìŠ:q”ü%·šw˜z•ôóKIé£Ö_èNm?w Ú_emïxEãé<êz•µ÷åJÝ/s»D‡=xì}ÞÿäUÓ³ï9zÿ«&–ߤ—;}àˆxáeß¾ fʇ^Á{I¾ÿôŽäÃ/ÉÃGþìjûŸ},ëùâÑ㯂1~9ÒG?úËÿ%myq鯎>ý"Úû™ÿ¯úä—Ÿ>‹ú÷Él/îÞþ›£/<§ï?ô×G_Ìò¾ü€ìK/ûýߣ¿Ÿ—õû•Ÿâÿï‘잣ñÕŸbñ?#Ú¯}ýgh¡g%ÿô²÷Ö¿!ß„òß!ÿ ä}¨ŽÿxˆúçQæ¶û²z—Ž®ˆ/ »§²ÖßzYÚ-ø©}?ü’ëú%í/W^†zF^¢ÑŸ£Î±£«/ÒêÒ»~tãèæ‹°˜<šzŽÖôsè™ð2 ¼9ÈóYÙÂÑâO©ëÖÑÊÿWW‹µ£Ûÿ_µ÷ŦuÔ+G[nþ}´ý2ôëð±s´{´Æß;:øÍøýRÓ½£áÿ5Ÿ½¾šÓøQê°÷ðOÿâð©Ã‡‡O Ž GŽ#ç‘ëÈs8 µ½ûè½Gï;úÈÑ_}âè“GŸ:úÆQÿÑÄÑÒÑòÑêÑÝ£­Œ>°FºŸ÷]H/g²½ Þí¯h„¿écï¾øîkÐÇG¯Ü·†ýú%éù¼·v`0IJóyçžå´ü|ž=õÊÕûoàÿïz–~ hÒßb0_­8Ÿwnü•«÷W•ÄóyE?Â`î‘Nçàå|^Þw1˜¿¢ÏSÜÃ`ÖéçóÞ²ŒÁD«A¾ŠÁ”0Ïç=zoeÏûÀžõó6  cÌ>ùu Ç>Ÿ÷»ß|VþÎù¼fð÷O5àÿ{Œw>¯pòYù¿ðÏça×`¼…çó,ßÁ`Ì"÷Ob0añù¼7 ƒyBr>ï{`÷q€ö &-=Ÿ§Ñ`0­3¿G•ŸÏ{Ã% fVq>/ç&“TÏóoÂþ¯ñ|Þk¿…Át6üÇL\w>ïký̇@N4œÏ{ýg1§ê‰a0<Óù¼÷@|”H@ ¶øf¨÷SÐ/–óySŒà“|'o-Ð2ˆ'j=ŸWÿô3@éçò8}Üõ}úÑv+0çóþéùz~ÄqJ<çóÞñ FðM`÷&èÿ1ô'ÀoÃø¶|S+Äé?ŸwóæóhŒ9ã;ÒNð<úÝ’¥ðù¼Ü`0cQX2g€/b0Ç?óÌ£±óy”& Æ PçÁ`Þ°Ú›ŽÃ8A¼çó’ЯI/HECq † ðíS/qÒþ&ý&½ÊÓ—RçóŠaÞ¿¡ö¥òŸ­¯½\ا2ßJÿû'½ ‘J¤YD6ñ„øÙçý‚ÅûpïÇ=†ûSÜoã^‹{-þuø‡¥û8î¸|\îýÅ(~ñíÄ·ÿÏOøŒûNœ'ÆÉp­¸6ÜØçJ£¡‚pA àùÿ–9ÿRþ'°ŸÄ~û—Øaìv»‹ÝÇR‹iÅ/äw øj>‡(ù±øÇ;ù¸Gz /ü÷f ûFìuÊ›±…Ï‹ëÅü}ŽøæG‹X¬„PCÖB®ƒÜð3zä•ÿ{‚øÄÿâøÈÿùkÿù9q}ëyqg9cDw½ÀYà-px |®‚—Áà¹ï¾OøÂOŽ ?$üˆð áÇ„·üŸ‚G‰o(Àääœ+ð|-ÿÛ¤ÿ"}‡ôߤGú>éH? =Mzæä˜ôCÒHÏ~L:!õãð—ð—ñƒø!ü0þ ~?ŠÃ_Å_Ã_ÇßÀ¿ÔÈžÿ÷?ÄŸ&—p˸l#¶ ûæÂ·áñ„ |¹žÜ@n$7‘›É:²žl É&²™l![É6ò×È_'ÿ3ù_ÈÿJþ7ò7ÈÿNþò7Éß"?Eî#÷“ÈÏ­e2*:&Ÿý¨ôQÙ£òGÇs&r&sjò¸y?Èy:g*g:g6g>g1g)g%ç«~óyÌ0_Â|ów˜¿ÇüæÿbþóuÌ?c¾ùwÌ`¾‰ùæ)L¦3€¹„¹ŒÄ a†1W0#˜QÌæ*ææ:æf3¹‰™ÄLa¦13˜YÌf³ˆ¹…YÂ,cVàȵ†¹YÇl`61[˜mÌÌf³‡ÙÇÜÅ`îa1G˜ÿÄ|ó_˜ï`þó]Ì÷0ßÇüó4æE?Â<ƒùqæP—S’ÌySŽ*''§4'”óæuÎkrsù9œcŽ=ÇšãÎéÈéÉéÊymÎr® §&Ç”3šëȱåxr:sVs{sºssrs9¯Ëù½œ·åüaÎr„9ÒœÚ}N4'žãÌiÊ9—ÃÌy}Îïç¼=çrÞ˜s>G”#Ë©Ë1äÄr9®œ[¹¿•óŽB5ÇœÎùíœwæäçÐr,9‘œDîŸæöæ¾7÷bn87šÛ‘ûÁÜæÜTnOî{rÿ<·+7’kËMæ~&÷£¹Ž\eN<÷ݹ…9‘ûD®7÷“¹ƒ9 ¹ºÜ÷åÚsÏiÈ©Ïñç~(WŸÛ’kÈ5çZsksc¹åºs?œÛ˜[—[Ÿû‘\Oî_ç~>·)÷c¹¹¾\c.ŒvNü]‰w=w$ß•z—ãÜXîÜÉÜ©Ü×ã>ú»çrνææÜÏýÞ¹Üswrwrws÷r÷3NòÏ•cœ{ǹw{ôÜoãœ+>Wyn-—pŽxŽ}ŽzîçòνíÜÛÏ•œcžc;wîϵ¶¶vvvvööþqááápDøO· ÿEøá¿ ß%¼Ð/™tb»°“„)Â4a†0K˜#Ì‹„[„%Â2a…°JX#Ü&¬6›„-Â6áa‡°KØ#ì&ÉSäiò y–ùù|ïy«vÌGþ"¿…ľ´ßB =g¯ï¢ü¬_B:Õ«8û§Ì/!bÍ…yÿ¥}æ$—Z¤©Ô5ÑlhžÑœhÎiWk×Ê´rm³Ö¦ jÃÚ^ícÚ'´ŸÐ¯j×µ9µ¹µo¨}[mamE-¯–U˯}¢öFíwj'kwjIǯ«;W÷»uyu´:Eù¸©NW÷¯ÔÏÔ Õ]«[«Û¬;ªË©_¦¾¹þ-õòz]½£þñú±zÊñúÉúùúåzêñ·ëˆ~æ ´cGƒ«¡§áñ†Ï4|½áM…êÆO7†ÓÜøÁÆ7~¾ñ+#'oh*m¢5Õ6Y›ÞÝô¦6Ñÿ¡i¢©êø·šßÐÌj–7·6{›«c͉ædó_6?Ùü•æ¯6ÿsóÕækÍ¿£{æ««ÔQtT]\צëÖ}ýBÓ¿ëFucº›ºmÝ¡î{ºïëNt¿­䨡wëÇÝúéŸÔ3¿¢ædZ?¡ŸÕ/é×õûúß3ð?`1D j¸hø‚aÈ0mX5¼Ùˆ7úŒc›±×ø>ã“Æ/‡Ïœ¼Ý”o²ÔóMͦÓã¦ÌïØ¼ÉœgÆ›KÍ©ršYÇlˆ ÓügæÏšÿÆüwæoš¯›'ÍÓæïšŸ9Ù¬ú}K¡åü±Ä"µ4X–ˆåÝ–ÏY¾`ù²åß-×-y Í›–?°¾Íª·Z­ýÖ¢§¯[Ÿ¶bl¹¶×ÛÞiÃÛ¨6ºcãÙĶF›Þæ¶ùl=¶Ù>mû²ímÿjû†íªmͶaÛ·ý¾ýìo³Sì4»ÔÎ9þŒýIûuû¬}ξjÿýŽRÑQå¨9þˆƒ{ü”ã?¼cœ³Æ)t6;ΘóýÎaç¼óGÎßq½ÍÅp ]W·ëŽëÐõ=×#î?pãÜî:·ÝqO¸ûÝîa÷5÷¤ûÜ?tã<Åþ±Ïóàãýmï[¼y^¦ç%xK½D/ÉKñþÐ+óª¼Ïœ¼F¯Ãëñ¦¼mÞvïG¼Âã̯ô|Ë;âóâXËÞ=ï±÷;â§)>¯Oê“ùº|ïö=îû¤ïS¾oùžö]ò-ø~äËñ×ûßé/ó“ü&Òßâÿÿ‹þ¯ûÇü“þ=ÿ¡ÿÛþÿòÿÈÿ;yà™Z@Ð\wÀø“À1ð›c ±6û»ï¾xcð-ÁgNXÁš 8Xlš‚¡` 8 >üLðÉàƒÛÁÝàÙï|úBy¡²-$ 5‡ì!OÈj ½'ô•Ð?„âOß Í‡B'¡×† S†°9üwát¸5üþðŸ :üÃðHx6¼>…Ÿ9yMä ‘Š)ˆp#úˆ'">~OäBäC‘'"ùjd 2™,E–#«‘E$ÇÔ¨(jŽZ£ýZôrt4:}$ö‡1éqI¬2F‰ÕÅ 1kÌsÆzcŒ}8ö‘رϞû·ØS±ÑصØÓ±o£_+z]¼(®ˆ[âÖ¸&ÄßÿBüïãßˆÏÆãÛñ7&Jy‰G "ú%£º„ì¸>aNØþÄ[ŽßŸ¸¸˜¸œøfb8ñã&ù–dS²9É­ùHòSÉþä¥ä“Ïœ¦ŠRo=®MySÝ©¿H}6õ¹Ô_§¾”úûÔÕÔÍÔ|êVj+µŸz}úwÒ˜þ£´â¸ ]”.I—¦ËÒéÊ41-JKÒÒ´2­K;Ó¡t$ýô…ô‡ÒŸL:ýÙôߤÿ<ý¥ôߦ¿’þ×ô@z,}5½”>Iç´üŸ–Ê–XKGËÅ–$w¢e»ÓšÛú[­oi}këÛ[óZË[i­ÂVe«»õÿ±wðMUmAq* b•¶¤¹ÉMËè “îMÒt¤3m“4«Í^YÝmFÛ¤MÒR©ˆÊTDDQ†à_¼*Áï4}Û’–R«ø~¯ÿßïœç9Ï>çÜ{s“Ü6Å<:É+çÕðŒ<3¯›·†÷"ïUÞ;¼ƒ¼C¼#¼³¼K¼ßx3ùó½ù¾ühþJ>–ŸÃÏãòEüj~ÿEþi>F!À p‚dYÀ$X6 ÀÝ­àÁO‚)Â_ „žÂ%Boa¢e¥%J-ÄZp–$KŽ0Ùþ{gBaŠ%Õò¤Å Ü,|M¸_x@hµ~)üAøoá4QšÅ_DÑEé¥h•Ü'‹vˆ‰~YEsÄq 8FŒç‹éb¦¸BÜ-ΰŸß%Y"q‘<#Y&ñ•ÂÁY%¡K„’VI›d•d§ä¨ä„ä Été é#Ò§¤nÒ%Ò0i¬4Uš#IåÒFé*éé[ÒƒÒcÒ¯¥x ²rFåìÊÇ*3-1•)•• •Í•1UYM•¾jwÕ¡ªÏªNU¯ºPe©Ê¶P}¼útõåêù5ñ5ù5¥5äzÍŽš5֯ɱ¤FfGæË82«­EÖ+[-듽 Û Û&Û%Û-{WvTf•ÝM‘÷ÿj•«#GÈcäÉòt¹T®’kåùóòä»å{äûäÊË¿’/¿Kq¯b¦"Ï«ÈS°l…RѭبآخأxKaµ-Uº(Ý”^ÊL%Iù´e½R¤lR¶*ŸUnR¾¯<¤ü·rŽÊ¦¼[uj–Êj›¯‚TËUxU¶Ê÷Z¡ÊESqUÕk*‹ê7•Uum¹ýÿ㯫]_»µöû¨cµçkï­›Y7«îѺ§ë u/Ö¨;Tgµ]­[PŸo™_ÿxýõõ‹ë—ÖûַׇÕXŽÔŸ©ÿ¹~NÃc ® ~ 1 ØbCA×þ \5œj¸Òðsƒ«¥ÐRd‰nLkÌl¤4šãšÈM$ËWMWš~mºÑTl™ÓüdóÆæC͇›7?ÓâÖÜÂj·Xm{Z"c--.­˜VßÖ´V«mMëÖÖoZ¿m½Ð:CQ—ZêÔíj½ºSmT?«~E½Ký¶úõ>õqõê/Õ?ª¯¨–G5iæj\5n—f‰Æ[¬‰ÕdkäšnÍ:ÍfÍNÍqÍuû/ý[sI3];K»\ë¯ ÐiCµZœV ­Ó¾¥}_{Pû‰ö´Ö¦½[÷´n¡n‘.V§‹×‘tÅ:ªŽ¥3êVë¶Ûùë”îî6«nY[|[Q[Y[y[E[K{OûšöÚ×µ¿ÚþFûûíµÒ¾)îdû—í„EÇç×Ì}Ïu|ÜñeÙò]Çö_ [©Çêqú,=CÏÖ·ë7è·ëßÔ¿§ÿRÿ™þŠžb™ip1  ‹ TKŠ!ÕaÀ2 Y†®h†í†ý†sBgwçÔ®i]î]˜.Ï®å]ñ]Ø®”®W»ÞìÚÛu¨ëX×µ®©ÆÆgŒó1Æ\£ÐXb¬0r cƒ±ÕØm|Þø¦ññŒñW£Õ8Åäf 3áLI¦TS‘©ØÄ7=ev1G˜cÌ)æ"3Ë,17˜;Ì{ÌëÌ;ÍÇÍVÛ9óôîǺ%ÝÝÝ}Ýëº7voéÞÚ½·ûp÷¬ÿ|º§­Gßólϯ™Ù9ü\¯¬òÏÿ ç¿ó«f»xI§LyÐ…`*ªg» yS¦Ì¬4vÊ”h@ýüc@ÃM”Ív “L™ò¶lÀ¾Z>@ƒôWÝ¢ ,Õ…kèÿ*¾óOÿžÿxT7ÛŬÓùºãemý%5 ÐgÇëÉÆqGÓMi µ Ъjýß>îþÁ?øÿÁTìÃØ9X‹ÆzbC±1ØX¬Õ–Œ½×ÛjËÂR°f,ìíéý:vîÄîÅîÇ~„ý{{ {;7GÂùáBpi8Îjãã8NŠ“á”8-® w÷2nîÜû¸qã¨Þ?á¦$ÍJz$iA’K’kÙ;<): ›”š„O*J*I¢&±’V'Õ%i“tIíII¦¤“¬¶ÍIÛ“v$½´/é2íHÒ‰¤¯’¾KÒzÏH¶Úæ%? ú|ÐØÉòäÆäÞ†äÕÉë“÷yïLîÿäêrò•ä©)sRæ¦Xmé)9)´~Š"EFÐúRÖ¤lLÙž²#å@ÊÓ>‡ä—”™©÷§º§ú¤†¤†§öG(M¥¥ŠRûR·€Ñ¶Ô= 'úäúM=™Zäs%õjjzš{2á‘V˜V’FKkHkNkO[•¶&m}Ú†´miÛÓv§íM³ÚΧý˜v)írÚ”ô»ÒïKJK_㓟¾Ö'?½ ”nµIÓeéuéšôw|>Nïϼ;ý½ôƒé‡Ó¿H?éó/ ù.™aµMϘ•±8Ã/ãŠOpÆŠŒÐŒ˜ŒÜŒü zÆ=¾uMí]挵ë3^Îx'ヌSßfüœñ ð{ ï†·Ú Ð¢ðÑøDüJÀ‘ñL<ÏÁsñb|Æuø.¼ß_‹?Æí²/ñgñññ¾¿â¯ã­ø» .„g„¥‚ÕGH$”„fB+AMh#˜ /6Í^„.®îɼ7óþÌ3ÍtÏ´Ú4¾Á™¾Ñ™¾V[vfp3y™’ÌžÌ ™;3÷g~ùeæ×™ßdžË¼ÙŸýC߲̚—å‘…ÉJÏ*Îe5f™²z²Ve=›µ9땬­YÛ³vgÌú<ëtÖ™¬‹Y²®fMÉž‘=/Û;“˜’MÎffK²«²k²ÙÙë² üödúÊ>–Mó+ó»”mÍæúMËrçXmy9E9¥9äJ+§?»ÄÞ×å4ä¼é×Ï­Êy6gMÎó@º>g+èß³ëï%Î"¢‰OŸ!ºÄ%Db8ñ[¿"•xÅE~uÄ)˵Ä6¢žØIÜD|™¸H_'&'~J< øoˆß½–OÉõ]>'÷±ÜÐåOçzæ†äÆåæ,ÏÈ-X^–KË¥ç2r­¶çr_Ì]—ûzîîÜws?Î=$ÖÜyå-ȳÚ\òbòŠò*ò*óZóžÍëË{-ïí<Ëò}yïç}œ÷IÞ‘¼å]Èû1ïrÞoyóüç廿»ç?៘_•ßßž¿6ßjÛ”¿9WþþüùŸå_Èÿ)ÿjþ¬‚9<^àRPÀô+ˆ.È/XmÚ]¾ÀPð\ÁÚ‚õ`|´à‹‚SW÷X¡[!T]˜X˜\˜RXPH*Ò Ù……k ‚j §=X4«¨Õ–ù…Ea$Ó.¥)Š:×VôFÑ/EGŠŽ}^tºè‡¢óE?ÝGr!-"A$/R)›D$±IRR-IC2“zHï“’Ž’Ž“ÀZ’Îl¤»‹?Z<·˜àR¼´8²8­¸¬XT\S¬(V7¿\¼µøµâÝÅo¿W|¤øXÀOÅ׊+¾»dFÉÂTITIr ¶äû« _’]RTÒ_µ¤¬„VB/—T—¨K´%%®/Ù\²µä‰ÀÝ% Ï—¸«ôžÒ9¥VÛã¥ý‰¥+KÓJ‰¥Ÿ¡sJy€Ó‚V$ŸEÞTúréÞÒý¥—ž(ý¬ôbé/«ùä§É²Õ¶ŒH!G’£ÈqäDr:Oæ–‘dYB–‘Õä2=Ð@î$w‘MäÉ/‘·w¯“û#äK©Ë¨ÞÔÔhjUDÅRS¨$ ­¤Ê©Ô‹jµŒ_¢¾A}—z„úõsêöhç©—¨?Q/S­`tÙÃe³Êf—ëx"È«,¾ŒPF+ã–‰ÊjÊŒe€ü²]eûÊö—½Wv²ìlÙ¹² e—ʦÒfÒ¢ùÐ|i4«mm%-›F§)hõ´½Am´všž¶žöí#ÚÇAÇh'iŸÓ¾£§ýXN¡Ï¤»Ótz)Í‹DϦçÒóé,z5½†Þ@o¦kè:¨„1°/Ñ7зÐߢ{Ó÷ÓÑ?¤D?EÿŽþ3Ý—áÂpex0f/e1bqŒF"ÇHf¤2ÒxFÃ%XÇxž±…±›±—q€q‚áÃüqq1“ùs>sÓ—Ä´ÚR˜xf3ŸIf˜R¦šÙÁÜÅìa>ÇÜÈ$oeîg¾Ç<Éü’ù°ü9…55“寲ÚüY¬ V+†•Àê Nc³(,‹Áâ±*Y5,«¥gív=¬Í ?Ï:À:Ìú„õ9kZùÝå÷–O/ŸQþ@ùž`¯ò%åIåñå©å¹åG‚;Ê«Ëå«ÊŸ-ßP¾±ü•r«íýòOÊO”^>½âž8 ºÂ»by…Œ ¯H­ÀWUXmŒ f… ¢ª¢ðë+6TlªØ\ñfE~ÈÁŠ’rÈå KÅtöö|öãlyˆ?f/a/c³SØm!elø³™ìr6Ÿ]ÃV²ØmlÛÄîf?Ç^ËÞÊÞÆ~½“½›ýû}öWìsìkìG8ö]wÎŽ?'•ʉà¬ä¤pˆœrN GÉ©ã€óŠ£çtrVqz9Ïq^ä¼Äy³ƒ³sŒó)çKΜ€…´g¸î\¿Âj æ†pC¹±\,7‰›Â¥q+¸å\WÊ­äÖp­¶&.wų\þŠMÜmÜÝÜ=Üw¹r?á~Á=Å=Í=Ç=ϽÀ½Ä½ÆÆ›Ï›Î{˜·Ä{„÷$oÏj[ÄCò‚xË÷ÞŠ0ÐÇñÒyÇW0xí<¯—·Š÷ŸÊ·Ú*ø¾PBh¿‡ÿ,¿ÿÿKþ)þ7ü³üïùçùºÐ‹ü+üëÀâÁ½‚û ,À‚I@Xm ‚6AŸÀ,èôvö   Ž N ¾œ\X×7€Õ,á“ÂÅÂEÂ@a¼ ÌÞV*¬¶ Û…B£°Wø‚p‹p‡ð-á>áAáÂcÂØ°þqa3E³E‰ž¹ˆŠÂ0¢å¢Q¢(C”)Êå‰òE¥"ªˆ+ˆd¢‘Z´Z´Ndµm {]´S´K´;ì è°èœè[ÑQ¬éb°b1Jì)ö/Ÿ »V%_K Å$q‰˜"f›éáj±Fl?¾Q¼U¼SüŽø€¸ßÿˆø˜ø¤ø{ñEñ4Éý’‡$K’(I¼$Y‚—äJ $ C”°$çô@_•l“ìômÐöK>ýqÐÎJ~ýUÉ4é}ÒwÃçH]¤ýöÁÒi¨4ÆÎ Ï”fI©R–ô‹ð* QIë¤MR=àÌÒç¥/J_•n“î‘—žž•^’^“N»g™U9¯ò©Êg*=*áʨJv%·²²RUY[‰ŽÐT*»*#"‚ª«Bª"ª"«pUo‚»î”*«­ ª¨ŠTE¯’VU‚‘ºJ îe;ªLUëÁhoÕ‡U_W©ú±ê§ª©Õ3«gT?T=»znµ{5\½¸:¢º¤º¼š[-®î¬6U÷U?_ýZµÕöNõÑêO«ÏîÁš«Õ׫/DøÔÌ­q©¹á^ãQ×€™Ö̈¤ÔÌ‹¬©Y©¨QÖ¸Fj^®y³foͱšÏ€þÐ΃f­±þnx“-”¹ºTæ- ’EËâdQ`” ãEâd¢H<àsdE 'Zr-B™&R*«’Ée 2ìyÙZÙ˲-²í²²ɾ•ý"›.Ÿ!@ž&Rþ”|±T;«ö‘ÚÇkŸ®]XëV»¤6 6¤6´6¢6¹–PKª-®­¨•ÔöÏ×Ö×6ÖêjWÑ™¨] ³öPíÕÚS€ûºöLíÙÚïk¨ýwí]uÓêî¯{¤YçY·´.¨îáèø:B]^©®? ô̺Uu;ëÞ¨ÛU·§îc0>\÷IÝguë.Õ…EßUoµù^Uhqta}u}}½º¾§~Sý¶úcõŸÖÿPß}©þr½µÞV¿1zvã VÛŸ††¨†• „† ê†m »Ž7ü43ïi|°qAãӘƈÆb’syU5mí¦ÆîFÿ&p<6õ×ÕÓ„kJkÂ7QšèMl Ó5i›:›H1Ʀ¾¦cMG›NÙŦK ¿¯ù¡fZ³¢¹½yM³ÕönóþæÍç›h±ÆX›ïm±Úm™Û²°ÅµÅðsc}[ü[ZÒZ [h-ôf‹¡¥»eCË+-[[^mÙ,·iÁÆ^ܔ֭óZÑ­¡­ñ­„Vðž±uKk‰åUÀ½Ùún«»å@ë­Ÿ´m=Ýz©õjëõÖ©êÔ~j«-B©&ª•ê&µZýTG¯zkì&õ«ê½êý@÷¹úèVÿ¤ž¢ùA}CmSß­¹W3_³@ã¢ñÓøk4Ñš ^“©)Ð4P£Ô´hÖj6h^ѼªÙ«y[sRc¿—Ò\ÐÜ¥©«§÷ŒÚpmŒ6^‹Õ&k3´™Ú|m¶X[ª%kíïe´Rm•¶^Û¬Õk;µ=Úçµ/Ùå/kwk÷hßÕÒ~¤=®=¡=£=§­ûE{M{];U÷ î1ÝS:‡Òõ[Çè’ux]–®LW®cëzí²:]£®U×­»j]Ò½©Û§û\÷/Ý9Ý}m·Ím›×v]·´Í»-°-ª­ß‚ÞÆl´ ÛUíMíÍíàN«} è÷·÷ëàŽeÞV[PGXG 2к@;÷BÇÆŽW:¶w¼Ña‰³Ú>í8ÙñEÇÝñêÝôP¼¯>L£O×ãõÙzª¾?N‡¾Kß­V¿Yÿ²~—þ þ°þˆþSý ýWúKú» 2î:ÚõmÂç]§»Ît}×5Íø€q–qŽq®qm\f 6>“˜`,2ËŒ4#ÛÈ3òkŒëŒ›ö=6¾fÜeÜg¼lüÔø…ñœñ{ãÆ€ÎÚ/ Í5Í7=nzÂô”ÉÕäa‚L(˜É×ägŠ2å>Îú4Á”m"šòLÕTf¢›&–©ÂÄ5‰LgM?™î7O5[m³ÍóÌó};¼:˜'†›ãÍyæB ¡˜Ë@Ï6óÌ|s¥Yan6wš{Í»Í[ͯ›ß0ï5ï3¿g>f>i>e>mþÚ|Å<}åÌî©Ýv?Þ½ û©nq·ÕVÝ­ì6v¯Ü ê>×}¡ÛÖ=µ‡¿rZϼžÇ{¼züzz‚{Âz¢z¢{R{Ò{=à54 hôV·çNâö÷B¬a¶‹ëï¦v|?°ËAE]ß/Œ„·qìï.:ôëL”l îÝÿ|ÿð¿ˆÓŽ}7õ Pªúhïý¨wà8lxv`½z€Nís}Ç¡à¹Ù.n`¼xÍ€üüšùšç? ¹kâÌa@ÄAÕ/ʽӫðþÁ?ø;`©ëÿËcWÈ ê§î _dç„¡ ´]ChÀÚò‚CK ¥Ð2¨ÿ¯}|!?h9ä@P …@+ P( ‡" H( Іb X(Ї Dh%ˆ‚…pP” ¥@©P”e@xˆeBYP6tÃF„r¡<(*€ ¡"ˆC%P)D†(*ƒhÀŸ1 &Ăʡ ˆ q .$‚Pq¨…(„J@e¢òPý•£Q¡(à“PH ý>ßÔJÔ •…ÊG ]‡lTKí2$†l#ƒ*tØ¢âíœ;ÊËNÝPž¨0T²G¥Ø©%„*í1"P©(4…öGÅÚ5‘¨4Ô"ÔbU„ò@-C!PKQ1(< ‰ò¬‡I \ …JGE£2†Õ öåƒB£–£P(¿šÑ¡Çk9¸;ÎD²6[9’‡ä*Mš41häÄrq\‡gzÚ€^„¾a[f hOÀÝš% ž¥h. ‰ÚWÈ„vE‡£aGTU†òF‹QÅ(Š l¼* ÍcªÔî)A•£È(‡–ŽÂ }Ð%¨¶@´è+P¡h   Ñ•GÂà:ð;‚ž´•_‚JuÄJsÐttưè®(È‹ÍU>LsÃV€.DõÉAg¡óÐRt6ÐãA£Ûí2ѹvJ¼©ZZˆ®R*š‡æ£ËÐ4‡EºÔÁ1Ñ"À‘í#šír#QÐb´ÍA3&i%RþÔcù¯@&¢ÉFF£cÐIèd´Äm,ÛÐ1µÎQf?Cöuª„—Òt$cÄY'…mÿ…X«’g§…gV¤!Òü1V1g+ü;þŠË™Æã‹ñÃ,Çøc0˜ L0&³ƒ¬Éö…ýàå°?ÂAp0¯€Co{?ÊÁ=€‡Û"7„òÌct@“í»¡Ü0n1Žû•h'÷-Ù£ä ÙÅ4×ôžl§;ï 4àI·{3&p×T6N¦+kTËp׈A]¤k”»d××ÔI¸§ á¸Wh(úÿB1Ö5nµHœýÿ`"÷ˆðˆôˆòˆöˆñˆõˆóˆ÷HðHôXéõÀy$u®ôÞ±Õ^ˆqŸaÜ1‹0Œ‰0àfc0OŒf1f f)fÆ{BGÛßap8GÂQp4ÇÂqp<œ'Â+a,Œƒ“àd8N…Óàt8ÆÃ8Î×j4 ÃØö‚ÃKà¥ð2ØÎBd#rDD."‘(@"ŠtÄïy\ÝÞt¥sws! 6.E’‘$u\wÌ+ÜÈ ‚Š(C8Ó–Ž’ÅÃ$•ƒý @#¡D"±ACHÁuHì*½ÈUü·¸ÞHÿà:-„]a7Ø^#` C0 ötóúS^Á'®øI~uº5îÈšHÝ*ݲ\³] ®™Žçƒ/À”8=«Fb™«·«Ï•òuõs c7œ´; Ž;×ç>Rêï*v:‹[Õó|nŒª™LTx°=8ÜÁ+ÆrW‚‰`!Ê6‚ƒ¸aã!ø!B„#$)¢AÅ” ;³i·yž‡!ÑÈHd2ƒŒEÆ!ã‘ ÈDäJ$‰›à'“bL ¦CÆPnš]2™‚LE¦!Ó‘H<’€ÌDf!³‘9H"2÷–õgÃ90Î…óà|¸.„‹`\ —À¥0¦ÀT¸ ¦Át˜^7ËïsXvʆ+F}ßÄ£ìAü0Y˜céÄ2“h—&`¢Ú•N÷4fPŠcÏC1X»6Âa;Ä6n’^;ó0L C¿E´TLÚ¨I˜dLŠ]›1)5¥‹’ ®E7Ϧw22 `)ˆµlã¹ gÆ$ç­œ”x©žCGèÕ¿sä+ÿ‘z­¶ Ùž±ã´ü3@\;˜½Ài¥qun}6¢o¢Þ^ãö\>á}ñ®l²!üÛTÒÏýÎEع°çF·làŸs[»híH)´y“ ¾I26òp¯êvr›uÝ æJ3F‰–y“ª~<¿úW!ôÇ¿.WÚ$æb3ÿGäÅÉË:^”ðÿh„Cª|ø„fwK¯¤‹Þ—&y¥ ¿¾±òŸ(r&”­t /Ú%ן&ZM?0È{¢ðÿ‰tGòŽgXüqÖ$ý[Ô>–]v&õs*(bFDKÇ^N¦ÃOjÞ?tá®à}el½ï0}àì-ìoÄÛŒX0éü›-ä*xå½{u,›øAmâ;ܘ>“LÑðq–È¹ÝØ 9êdÜV½üI˜ÏÏΤKJÃûçÌAë´Ûðëý6퇂ñ|ï’ÅñÂý2ÙuüÚ`ä|±û¯V–ÿ `’rDüµ:vŒ¼©¿–Ý¡ª& èڮ࿠+®Åý‰k– ¹Y–óÿj<,é_™z}FŽ£FŒÇÂkHåHÙŠÛðÿ£5êƒr˜ wþqÁ?ù7\G}–ÆÍ®q¿gmÜ=kD¯çEðªÐ»Èá9¶=rXl¨uS.ø&‰×˜õ,ž¤'½~ü—ŽüGD p’%h˜ é¤ÎÀ!Á>dD$ø¡,B„“xžž^NsGÛÅ@5Ìg‰'Æa6D¾È–9Ó ìâì¶ñ½Þ›û8q0‚Ïß•@ãk—ùÙ{ìm®CÒ(öÉÃä)Ž‘?È‘êàÓì4}Œ|CjÅ9µ[è‰ï%ôzr<y¦Ý3kÐ?Äa› $9)qP»bX¤ÐQÏ“ðAM˜g„gžÃ?D•ƒãBW4Ê|Ivy±C[2Īô6w„âÄžÚ[ÖéIë¥Ñ1†Ù‘‡˜ÃFå7E¬èeß$ãØ%ÜAyX!Å8VJ4¨ð• Žcí¶Ò›bG{òzìºxÐ/´?í—8ÊÞ¸9žt·Ó•·¸Ò vÜÖ8§–É@šr“1®§‘#¬8#>—…FèQ£F…5iCjÁ8±÷³²ÅôéÃæ•1ΕÂ;ì£ØgÊ—­ö^åés‹µò]<ˆž~ÉŸ¹£Tí²ç êVWz pùNíÖäT¤Ácέ`0Gè(vá@q“.Ò©uÔêèQ³‚L1@Krd,öŒ´-¬¢tÜç e˜e‚#Õ³l˜œf%®^y˦Ȍ½¥î&‹$‡$ùOLP ËQMÚ`¤ô1bfØuå·quªpbË&Ñ, v}ÖMVÙãž{Þ eþÖ«puÑjî(3®òlh±=6ϳdB{BvâÅ‘•4jdÊïG堅гl„µÈéÄ7I%@B³ûÒGD`¬–±8xæêÊA)Ëî±Ðq])_]qSÅl»„3(ç:8žºz9«qbØ# A/M<ÊÚ¹yIVKGè*Çî®g‘OÄ0ÙÂÁ§Ì]‡Çê-sÛÛ.ó½§=‚oßb§ø Jý‡éûBúɽð+nsA#ìC‡Ã£¥ rà#û¢†é£Áh™“Ù{pœåŠÖ±Cü}†yÆ,÷òwȽDZ® Žx‰7Í{¥Cà…µs¸¾@'ñ’ú‚ìÒ`¯äÁ)}!ãÈœê°_áj·NÇʧßd“1†¾Ðæ´’¬Q¼"€uöqéˆå}ËÙåõåñ,è+œÐ™AæUÜcÏ[ÒWÚGî?UPúâþÀÕ"Å{ýoWº•ÈÒlŸÅ GœçyD&ÁYAAd*Ƨ¹®Õ?Þ̹µÞèèè<™UYEÙÝ÷²•;vìˆÌ*èãú>2¯þ'-é0CØ…N÷nú›6Ås˜¿¥bgÕ"çyY¢>ÌUæ·© _…k ÞA[Å·M¯HrZ„_Ê´J7Ó& íM~[cÁx§é_à„±ß¼v™ÎÚÓå¾­û¦tzáÝwc%Å~²íæ@ªqd³ \‡‰ž%œ¡›éŸÀåjröØÃBvLÒÕÈÍèÍØÍ8ãMÜÄm“BÖT“.§¿ü‹¨9MÆ‚ie`žÃ#IUgóÃR|ŽÓÑígžck ™ ªú‹œ¿ör~\Gqñ)¸®oZ`ÍÜÎÞÎIòVQ}-?/ÄÖYÍ…ÛEŠ,i²—o7„^è­Þº$+¸Ùë†Oœ²6›>ðoã8ÿ_~ï’VqKÑMêÍû$3ò¨Y·>Ý™ø%‘b~r $,ŒíŸï¦ë"ý0Ž;x åwaÜ»Ýçj ½CÝ^wXµ]¡îzGBÞ ó"p£xçO›æ°Îc·qb'nÏuó’I±ø…óø×˜x¾ÅוJ/ ~æ ³ÏÞætÙ‘|ž‹L«FÙ,NÑ*r™%f+·e²Ïˆf_ÁhUSµHœ˜ U´&é1arM[t÷Ÿhý‹)ΛVo»K~ù®ë¿RùŽ;‹Ðïªw"Ö¥šÉåTîE>Rºë]?Óµ•ÎÛ%+æ®â ÎÚf„ÎFšÜ¬j£Mø,>öv™ü’ÎôÝŒÀŸ%oŽ¡×ÜŒæïîrÌ_DNü©»%A¥@œ¢ä®.³„±òV¹üµ°eMåõ» Ðu¢vE÷i«rׇB¸[ÒÛ¦óèÌa pï_ͯžo°[¸FZ ¾;?(× ÚÆð AÝz¡»°‰^ÚI­ƒÆ»]iÖ>CÀ:TqŽÉ·»£tjöJ91ÑQ¤ 'jj…»©ö©!ûLˆÆÐ‹ß%znªVé½s’¨—Âë… }‰Þ•€¥¥Õ3ñ„] ¹¹_Ÿñ»>ê¿@ÑâUgFý܆HéÎãUî™7T{DȵK+”±ƒ1ŠÃXýõ™æún€=Y˜*´pûM³ü¦Úqo¹ï¼ïâ8³›+Ì£ÕÍb=º; - ³â}Ç*xKº÷ßF<ûý2r\Þ e Z«€®™zž6tYNŠ ì”ä*ŒF)>¦Ë¿wsU&Mí9%¾<&?Þ‚˜3÷³B9MÕy ²ePeØ+,ÃÏ1M{[»2Î6Z!ÓŸuÔtk: ³ü]´6Ã#YÝ-†íÛ žÏô=ð Ìx;Xq¿p`8§ªB˜ùG·£[ÿ¸°K±àí«xèrèÑýño>Ž.vˆF9%4ÒdÝcÈ‹;ŠìS–“üœÓO¬bŠ‹]€}uŸ¾ÏÀ˜rb gú×÷9!š€H^@ ªŠ𫈓J ½ú}’›i±é~^­mˆ§ˆßþpÖeáŠSè Üâ}º`!»ÇÌÿÉŽo9NµWè;O+¢YƒêX±P¢ˆRèGWÁ®Z%óÊ&æ:HüaGtwP«F…X •Çl½ ¸N>e¸#[4¦cF‡ÛZ\â"mÅvÚnùa…ðÕ‡õ‡Ž¢EµWÜÆC' Nât±¨ ·©½âæåyØzð ìÔê-ú8´¯èG/À°m°¬À ÒÏ:°ivµ úvUÜ!øAâ=.{¸ûœˆö¦âpq¤x±câŽrŒˆ‰µ‰j8§’¬agªXü!! cX}œõbÑ‹‡Ë‡+‰rú!KèõCî!Ï1Š¿Ÿ=T›6ØApc —;Ût¿Á9b”uÖhâUl©.‚µÄ¼ªF£È2ÆëB¬ñ°ò¥¾Z væ[%µµb«áþ}횸å±ó±‹C7„ΜEúÝ:º=½B¤=«Aîb?F7ÿûüÛ£çËë"{mŠãq€tY7Ã}èļ 5úè“öåárÆ„üðƒsÜ.†0>!­;õ8 øÌc˜4v ´ü›5¼óükŽ˜{ÍyŠíCl‘ì%—É>Ðä¬@ä°¸ú¸öx¤ÛãnqƒòO8Ž“°Èî¹ rÜ›Â\£Å-ðOQåŒEÎÐ÷¢ûòSÇ fûá`º ©V°Éêo?†“ÿ}‚uQ cÎeîâxIœ=wóªxò˜~„ãF¥yT=…X–ôc/þ˜x<çükâäŠy° ðNJTSº^p‘bñ@à]‘—fhFªs ¨•/¹hNÅ,SŸùÇDŠ%Œ+p-ûòXE¿Æ²*À¯²{P7ýyù³WË“9^+ñjÜsUG»MªÐhâmÁý<-äµJw÷ì4ÑK·§b½O}pµ«MU§ðvimÓµ°x'Y]0v=ٹʓ«ý–w¬žÒ0ù½ :òÔW²rýŒšÖê—ÌÃF˜½ä@k‚ôÀ›{LП~d3R)Îrìù§a.:ö”¦×ÑÒÂÓâÓX“[—(oY:×`Z“dã¸ö´ÎxS¥éÒzNÓ«÷ûåb3M÷›Ý|ò{K¨á%χãlÉã§Ôô4Wšçâ‹¥mb„p ÃuGÈY*íª4öÐßÿ½Ž¥ÃyBôHň0E˜÷*çE¹œ5 +Å„h¼ÄÓ:enÐx®RpªÖýì)ù”ÎÅÓåÓqÓ8º ïÐ&D=R†Ñ­RöÉ[º6ý„øJ~ÌËs¹§@i»TÐh„€Y4¬ª¿óÅ=ŒËLy2÷¥Ù„*Œ[aV¬šÎ ëOßßÄÂŽÆGB•CôެMµr;çw mùûCŸ”"BÕNÍèÖµG£ÓKHß³U³5‰§¥³’C‡9 Ňž‡5øˆ€ŒTŽ—Æt£ k1ñ< ùSÏÓº*ç ’,ÍHãsÿt÷ïEAmé9UZ–ê¯pèêóšA—¥+Z'c¹Àrs9doššKæçw‰ÉYgÙú{Ÿ}xÂu›Ë1ûšqÃ„í°Ø®¤ÞÞs3ö)vãás¾Tøù}ƒ‘£çŒÇW$O D"ðŽ"ã¯g\¥ÙeÈ“]tªèÕTÚ àÖ£ƒÝhò&Ÿ/ž/¹º-¸÷y«¢æ¥„UhSÚ5Œ+`Xí„w—Ò­ôÀØ«ô)V%­ZÁŒà_£—{î¾M±“®Æ<ãž³dpu‹,>¨éfaBKMžå÷Z?(£JåyLP›¯ÆêÏãJ½ dM*-/­/ð¯íe®³ÊœÒþÒ!Ù•}žt-/]/_Ðt¾¨,i°ß¯nÈê÷21zu÷~·R¤Oʰ1tEYÕ­¦}­i¸Ràê 2{Ý@{äexcªþÆ9ìÉŸkûûâOcÎÆÏûñ2#ä;•9ôç_p\”ª/s¨«É ­ô·.Ä6TLç‹‹Cܪ覲IˆGRa 0ï‹ï7{ô3^¬ zÛªÜÐËp½J˜ðÝŸ0¿=Âaô+ˆí¼ázôr ȶÀ¼ÔðÆ*„¸è a}Êx °v¸Xü]É*§ ïüž²¯Ê9P._öÚ䎛|毸ú'Jú%¢D!3û’aø©rý’ïŒ)æ…žc†•â-bN¼s~ULt™ŽBˬò…4óR¹ÒU¬BnZ©™ú¤ÕVFi¼d›tz-ÄsJ^Âï s +*ðK*^§êl…n•¯¿çµѲÉ{\áxýLφ–®† ¼V¿ð]ù7¯Áס×Õ†ú#ÔÃ(ŒcdOÐ8)¬ÁÔëÌë,"s„ÏëœG± Â¥¼¥×úæÜBç#, Z­å6ÀÛM°B™À^%Ûò‡§.¬Kf´¡Á\¯î×M†:5ñ¬Þ%íÁ£{ÖÇE¼0ú–_šx "Þ u¶uTûXý`…^ï;ÈÜ}µ6Y¡}©âÁ«M“w¤aÚsøê@æ€À?–¨—GˆsbpJcÑ× ißgÒ̘€ÎüÑ3M¼žƒÎf'9Å”ªæ…úÓ—„.¡w%pÒÌ˼.C|ÞÙ×k³XN¥¼®;“ ˆ8Ë.!®Ùeò*ZE»fx MCmyÛ4XÕVvNK›äÄ–vÄ:ðjyó€Nç[—ÀëF¯¯[ª:½ˆöIt­ˆùþ{ò9Ž­ÉÉ1~̲kX r½ Ad»< ×í1ˆ…0kü g×L¼M";¬Yã)ÊNyVª¼kú©_ÀüE¼î•—Þ–ÁZ‘hîƒâ<á\ü@¨t(x.ioGÄÙ„¨ç×]&Þ1DN0){¹\7g¯7]ÉÀ[PÂÙF,Út]Â\³«QÝcȾ¤â`ÇogP1V>iÒu„‹GßâsªÊ8C?ö7T:‡Ì$7Ç„”F Y†ëqβ“‚NŠó.ÀN3•KŒ\©ª¦ÉÏ”3oÙ·kMOÙ/|G_3nN'+ÏáÅ&뮼•£€yæ×Èj0¤Eµe2Ú+QEEÓQ˰HÎ&êzï&´\®”{4Œ¾÷ªd޵²•1ë+×ЉÙß?ðÞ•3øÞ*=9§CGßÇ ¯Ýà„qn’ùv°Ü)ŠZ™o‘ÎÊœô §y]D»‹ë£»²„زÎùO+﫚È =’¹ôJ°¾Ê:°7$êVd;¥u]*ÔýnWi{ß„ Àèãø~´‚BðÝFìí/Ÿs‚Œ!é6<1iDm¨~EíMG»*dï}‘QT#ÝCuÞñ{ô=ã)‹œ½ÇÐWõG4i¸½|¿ÒpÒMV0óž5±Æ¹÷IÖSñ}ŠÙ¥¦¹Š õiÒ«H¹3•ªŽÆ,åÍÑX^]àÎCd¡Ò@¬EuŠÕb¥•CÚÁn#¿G ^—A¡Óàü«.ˆ­ðŸPâö°œUˆ®1ƺpo{ÿɹa}R+¡ý\Ôöõì˜ëP)  ?ØTwH—1Â"ÒOè(Ä•1U¾‹ãŽëj»5ÅE§¿Oj¸s€lrjócí%†,k²gUȪn/ž/œØ¶%p½_etý&UœÈwß4uÇ·þà¹ðjr\o>ˆúFE·…9¾‡ÈjC*d§iŸ{ÀØÿ~hz>Ç*æÉ÷H“ÜSˆŸ©81MÎù÷8b ¸¦(z©b¥™Ÿ%kWâºi÷ûÿ}W±LvEȯ’wÈrjúGÀ:®œ ·þ½ñ=²¢dµ|À_¾x&Þ)"m`·Ãû¬îkÜðIMèF;¸óö,†gïurÑóJ²’ª\pª]Ýï1T部•1®¤}¥í—èd bðlÅŽþµD)‡XïGF‡´«ËÊÆü–ªzƒ‚^Q¨>Âb%ÀG?ÆÐW3ö„¤—2D+_øÎªVj»Þ$§Û¨L}´à¹„Óšj3„´Ò¹…³ŒÑfx’áÜG;‹weaÈ<¨,Ò"ŒËÿà$ÇC.¨½Êk`­lÎønĺ¹¹y¤º=ÈèÅë0¼Äò1¶Ÿ¬>'>n 5¬ªŒ¦ƒ~ưq\;Ùaà;ÀЩ¼û±GŠûå t¶‡ˆ±ØñÇÉGDÃŒþúîù83¼1Œ³ÞFªñÿ}Aö(2†àš”襛>1)`dàå˜c¬ê5¢¹<ŒãÒuºV˜ª/Á[w™q*{õfHµ*Ñ©VG|VZ{Ñ9!ÖÆNêl—žÚ¨ås³$ºŸ]\f7Ø=Ìï45Ù}ššËU+a+ÕUé,ÖªýŸK\dƒ³m˜kÇ«¯pu~V\Õ!dSÝÑτ͈ÿë5Žì‰O7io 5¶$}ˆMr3ö2…þ´îI¬3™¥èó;@µ>¥*KtU†5½®AlÝàlØ Š9atéð܈oš\O;¦c|)ï.»ªÃ5OáüíĩɡãÀÊÝhÛ̲´Ø‘;•±Õ,"ÈîY‚Â@·ÍwÒ¹:°Ôeµ›nìí±‚éu`¥ú06œ³ûì‹ }‘´4ÈYAÌ»Cøa°Œpdµ°Í³lóQJéü¤éZ7Ã+@WÂ+šÑ IcTXò´ùœî¥…ñf`}–õ|o?õ.F¼?Èù‚Vü â!ê`\CdV)Îêù¦Çøx •À@'*#é\bJJ²È–ìеîŠrpí£mŸE6±ˆ‡Ö)â9Rqt#G:ȉvM&±‰JQ§20IføtÐ38rd(3ÕYêLª§l«Uò°7ŸÂdYY‹‹<…V2qøŠÕ%`-UgsVÉqú|-cÔ*·±¦´¿¤*u5­×ÐRžÍNê0¶Þeïêe³Y¶«Ù[YÞBÞŽÛWdá-æÀ·sÔëà°•P±+þÎéuC_eVŽ`º\ÙÇÙûm¤¤aÌGèQÇ8£Ç)kU»’ÑC–'(„”?©–1´j*fjÙk[ñrž¬ µÒáz¤‹¾—fq_Guí­1rÉ_žx5«‰1Û.M³•cíã[0"@ÃöµÒqš6e;hÊ 3 ›:éˆM—²[)âAGRöŒ­¤03´X¥‰ lÑÀc¬ÔîW(!G,…‰OÉCÊaª¯³•} ÛÆñ>"57a±jIšdÔê;_ D¦Âk’JÃÙÒ­®|"ÑþL¤ òeYسmäœâè5‡Š‘ƒ/ËÓ åa)Ÿ‘OÁŠ-ÐÚ¨e$%Ž*âÀª”ž$S/Õx‘eçMZ¢Ie9#‡FT0,¾Œ˜JM•]½YR ·‹ô#ý!g•7x­&ˆÒê0®žB7h‚ÁÞHÇ6a©™ÕC‹¦•ÒÛ€·k:ltBUêÖô,^ hÙGÙú92 €ma2à SúË>ÎÛÓ„F ¾Pª§IF†ƒMú¶EP9hÓ¬l‘ôñQ€]icz/-œðòÑu1é R”Åy±‹ò“T>?-Ûï¯ ÐFCT  <0Af8GH¤#ãÉV/¡Œ|aXç¨HJè¨$2‚F$“‘ ‹íî)#ã(|è%¯^d!Y¦-çí¼‚á©ÔVi‹lV/f!J°V ûm™Yl-ä.gÙ*8³×ã*i_–ªYØZÓ{"ékõªnbMÚ¬m1›¼ÖÛ:šõw,ãê6Rdhpàh÷àŠM¬ˆf²…Òûý Pò «Ç!¬ ÛÝw+£ÒDãÈ mgÏ k'9iµŠÌF]8—œFu3rO3b ¹‡ì%û8%øHìï'UVëyêŒ|€Žtø´¤!Ò‡ÊëKñ]÷ÓqG ãªþº3ÿˆéÛ¶šõ6†õ :&K!”.Ò…‚41ãxÆSÝDáØ/%#8ŽŒÔ‰¶(£ÍrMѽÅ'‘á•Óžiâu 6º0‘„§$IœOEzªàs\åÍù|*_U#z× >ÃÊ6%C')¸›TÖDéº ÐýT™º,lÏÆû“«óÇ}çÙ¹^ðî¯+l¼Šá€£KÑ¥º2ÐÊuV2Vëj°·NW¯k°»r“®Y×ÂB·êÚt픥C×IûºX¨n]G@êxõb_Ÿ®ßî>\OAô¹3€»´«—! 5 |„’G‘cœYÆië-Ií¨'³ÀLa‹\¬ aûÓ,¤‚Ö””D2ü*ÓûˆÅÕª Ã6O½ÉâR8ÏUæ­_’#ãz$…3b|õ ëˆüXÝF©@2› ¦‹Á†˜ybÁ*[(¶‡éãëAa#é1%EÙX¡xU‚*šÆ$R9c(K,ð8JŽgdJ d çñKo2Ã#áè!ÉJ_)vÕºB*àÓôi´ž®Ï`dHWe‚–¡ÊÒgOåì8“aÍ¢ål«Ÿ9fÞ}.mÉ¥ëçé ½1äb,ç1²”°æÎç¨^F#ÊÍÖ¨ÐØV©¯Â¼F_MaJ)Þ /TÖŠTÅ|Â5AL³¾EߊcÛèÚíú*KØ:õ]¬®zh­WßÇqLK©Ø~Ê7¤¦Qeªrì­PR¶1ÌÇõú ¤”µPUTžI½L?v¹~ö x)1Š„}5ƨÖÕû…ýäià¶{|,<Þ Ë.†ìgð§µU­gG0Oe‰ uT¦zÌCÍð ¼uÂ02ÜÐÈ@D‚MLghžh¬Çbi{3Øãuâr ŽI°èºÛÍìÎéÚ-zN¦p)˜w¨R'Ú0.ò¥Ïà]­LC'FgшlC–s)K7ïJå 騌*Àz‘Yµ^*C1¶—Jm»µLe†>jš zŠJæ©ÂØ~ÆšPr5•eëC4bX5bvjõF­\/cV|õæ×Ko´9Q“¡ÙÐÊ‹gUn\»kÔa†í}BÕ…­Ý”¯‡â½†>ÞÌýà€—T5Hc†yУ”}ó %uê\¤æ—a>Åyäªο.š(â}:G±ÿÊÑՔ뒿¤ï>òá¹ ÉüÐêбb8'§¥u²aüåy*õÖÇ+bç2çDJ¸ÕpoÇñß‹bE¹¢Q»¨G4$  ­ m m-n+.™h˜hšhð—IÓ¥ÒÞIÙ¤¯¬R0ë;å'”‹å1òXyœ/ ®þ¡¿þ:Bÿ) ¼ }ññ³¿!Tõ[X—!„Ä/BÜ]Ky·½$ ÄZÇû9𲀸Öì1 |ðp B»^W¾†Ð ¿› Ÿ‘ÿw^DèŽ× ¯7zúuÑ ÇëË7 Àÿåbç0BûßC_ ôÀÛbÛ,B„¹ÞBè£w„à„:Þ‡øýíþ“€¨~¡û>q#”ø!Ø/ tûÇâšzõ¨ ñG?[ .å/À!ïæÓïB9[¡~ðß¡ÿGhà3ñSècÓçâªàüùB@$|†Ð›ÿ€¾þ€PÖWW†ÿÈ súÌBßçºî¿¹Eˆó>sØ ñÊ­FûÔ6à:X÷íBâˆË ‰íwË!q3ø?»â Î[;…ĵPç7·AÀ?ý-ˆƒþžòW€þÄFþˆ'àá<Ùç-$n„ø_!q=ÄÕù ‰M€/ 0ÖË ;A†‰ë@ŸýK¨fŒÿ}„1ÿ‹b!q ¬çSÑò‹®†:ñÆ<û!pSI07Ä ¤€ý+ÈŸy ~RÄÃñfAÌ¥Ë;Ä‘+$¶<‚Ðö|!‘ù*0ö·»Öêô•Àœ¯¥ ò¾¢â!_Q¬ëâz××/¢êBÞ Æü†FcŸºf!!€þÞiÿ„¶´ ‰8È·¿ÖâT]p nOqΖ>!>ŒzÅ1OÙØŸ7ýŒÁy3.$¦>Aè2p³=*;à¸6ÉÀçO’悺þ ˆƒ¾o%ñÛïâóìòÝ þ£{ŒõÞß ü —½­lй•n¿®‹àýá;ðþÓÇ+û®ÈÌ‚Ï1à›n@èz$êÌ·oÝdiãÚ†v؇co¿¾õñë­ùŸ¹…Ë*&^w¦šóÛËQÉ1æ¶v ‹ë6Câ¹ì*¶U:Ÿa´šw–Zdzj\èK²qÄ«°{RvÛòÚ?=thõ®¤ Z¤‘‡„„ÜŒOS¸»÷Ñß`þŠ!ww±~èŽñð}íà-ð½øÀ8ö • î€Àz>¼±¾ÿU ‰ÜÒ¥<·€ÞÕå®)6hƒ6h-ÑdùMá l;læyâ ëß/nÚäŠo)ì-èJ¦ömÐF¯Tc[ÞUú…k¯¶Œx÷jÿÍKZñ5Lß5[ô ñ[Ì#~ifQ^ûصKÚÛ×-î=¬~¯æÛ2oøó LýÛ·±Xo¾Ñ¹Õ¹ßaTÂ^AßkL°î:N ßcß…€}SÆM/óÞ‡ òÜy¼wó’0°¸Ïæ¼›0n›w¦ítn&¾í¥Ûªî`ê!™ú…)6£~ÈãQ“o–ž…ý§‘„õ¼Ä\ÖI†Us§ÂÓ"ÊÛ$ðæŠ·»°Ë^d½?[ÿ7Z0à¹@“\TÄÆeî|”²ú;ÛéŸC–7){{)üRø/¸ï‹„k1ò­H“þfäéÈ?bíØÿo$wTž¸Tœ/6Êbç:=-®‹Úe/:.:;Z¿Í彃ó.w«™µÃL_ˆù;Ãâk’$±?Ž·ÕÏ]‰övŽ$ö R¥‘¨%oKTÉöfþaÊ’|eª}1¯`œ!õ…t[È€¬%ùH–-4Gw9ŽÇXÛ óªòõ Ãù&ý–kè…ŽæßVdä1E&K–î/âÆç•ÀgDÉ¢äUúd©~ᯥ¯•=D™‘”Ùª)ªà²þ‰Ój¾ýĉß]ž¬~¦úÎ_VN×ý_~á\íO×sYó:ìíBÔTÕÔÙ¤_hk2êï±é3Ø{7/ê ÍLô§ÍïÐúÖm3;×ΓÔÒÂWï+^ÿ6Ò¦_¸¯i)h_Üo£®æMª.“ç§]Ü9<º­×ø¸G¿ð¼J{µaØÜkô}L\ Cû–ŸíàÈÇa[Ú:øelqÛ?ln™¾<º7ÝÂþ/{_cØNïý˜3riûíýgïg[¶熽öûw>`´ES|ðÀ+âAvÌüƒ÷ýlŸ½«õÐ~KÛ?°´ÝõCKÛ,¶Ýö#£Vò#{kš¶W~<öˆ£1ÌíÃÇ$ø|7ƒg/¼r9/3lŸcùï?nÔCên?ÈD«±vÏA¾J¶·[½LÒ÷fà[Áaû¢Îφ£ÐÍQ£þôQwÿ±¶èÖžò%ý÷ {Éš|THJÚö˜ðUYƽö°þ¼‰ ÏBŸ÷!Ú÷¸ðžB(é 1ï}³è]8îÞ-•=ÜKÐÀBB4Ðæ8'zxœ/y‡Áç¥xÔ8BSG„Dœ‡g€{‚¾ÿ¨€¸ØŸÏÏ/{?v ø(Ä? ñï"ðà„TOnÒÝ«°A´Ak¼D.û'¿ëŽ<9¢Cч²8»r$·Ñ‹l õºä5ã;ã7ãî.6ˆ›Âg"fbg’Wåø¤~£Ï‚¼™²eÏ_>S;Óð^E#UË6VÁ) <ØÜaaY…–®uqN{)ÍŽ'v0©aY}¶³¢›Ü4ór©Ÿ·ï>‡';\àà0Ò„•JÒuº®®"ß#GZB“Ždqw'+EíÅ•nš­êˆ"Tu$ìXÌ1ÇâbÄ/Q‚‘ñNTÉäˆI¡mÉdÌqzF>Ê;–l¨¸ÞåyW–ºÖY¿+EÇ¼Ž—‚Ž»»µLaÇKŽw®ñ<>vÜçDÄ s{À‰@ ÛÚ¥¨bV·q'ªNøð>A“<Ïû\EÞ'ãx‚çZ¡4è]r2öôÙ´”KKé'+OV3欲sæúu¼6Ë'ÙÉ)7ÌxjeóIÓN%ŸJç­’rªÖFE.é0ÀEŸ#b²u…Wl}PŸƒ«Ð{jÄáu“žò>#>ãhÔ׉Z&s­Ì/½¸ò4|£×ß^jqá*5Ÿi:q6ûláY×åÜ g©u•BÇY¯ÙÈÙÕ­¹V(nv@V>«˜s42ì\Ô¹ŒsÇÙ¢V—g䢮eWé='åÌ!;7½*¬ò<ïš<>æñ>ïï¢Ê\|^²‚ÙWƒTSîrÎÈÝÝÃz£úóÙ«¼fRÎsò|…>".$]\àó¦\(»ÐÈë壦 Còq‡£¬ÓO>¶K]\mõˆt s… ¬×EŸU¸b“ߪWt/…òÌ+rj¢.Š9ã$knUÓÖ\Gk…Š/ö:°6ýÇ.Ê/F]Z¹~L)ëRošKuËè¡qúw5_jwÃt}«TsdEꌯ±ó¡q:c þŒËîîÀõTt9Òeg¼ñ²ôk°Bžs^sªË¹ŠÈ¹•É=×9×á’ÜýsC+Ô#?ÏÎÌ;ìdÜêÒ€ÕëA<Ÿh÷I+:oÚ|Õ|û¼Œ³†ÜÂ:=ï«UG¨ãÔi+þ,öu.糡k×èSà]GMêReך›²_=½æz²—TjOM°“OµfS¨¦ç)vA¶j'stjº\2‹uÕŒiTœu2 eÁ71¹S?zr8úûÑS$úŸ×;¡»¹¡P§ô\q…+41µ]BMÔÓôë¿íd"Ó¬,J®ç¬Y(”ROSÜÿ¼Þ ØÄôýûõ+½ö¾ŒBÕ‹MLëêP¨F=étꨞ{Ï¡Pn},Q(¬žwïþï/&\žúñ_ýD¯ Pj©>ÿz#&¦^ú|\Ósý>ê+òk¿³{ SË-ÿúf(MLÛÚþÕ³ô:O?γT&ïÃ÷_e¢æ×~“õliA¡L4¿öwû¯2¶ÇÄ”ÍþŸ÷9^_rV?Þ½&¦oߢP£{ùÿÛ§×GŽèÛéé§?=gÌ@¡vê9mš~õœXõoûí}ú×çŠByèiñ…ºÓ¯ÏûáÏo01]y…jÔûÎÿ—™˜&ÿÕNWLLá~*YÏûúûjÔ“DÒƒž‡Bôã«çÉ“zŸž+Ÿèû½fbºð›~¾]×çñå¿×¡Þ41/E¡èyXô44üm\ô:—ˆBÙÝÒë|ÊAÏ›ÏP¨h=o¢P¥·õ÷?üoûƒwõùºù¯&ß31ݪ?¸obzô‹þ~ôüðA?ßôœ°áßvÖLL¯éÇ#^ÏÉþ?ÐëiMz>ÔçÃéßxì#Ó’}{=‹‹Q¨D=!©þýñè×|ìÖóÄ ýûAÏÉ“õï=i4ꌞ•¬¯3ú±‰iš~~>11U©ôóNÏñúñiÓ3 ÑÏç§ú÷áoóè¿J·>¾WÊgúׯŸ¯³^˜˜ ^ÿ{>U¯'ÿµÏà+ÓÏõy|mbjóå^'õ­þ>Áu‡^××ë_‡ž¾=óÞ P…ïLLg;èÇOO‰äßöô:1ñ^÷“>~ý: õEÏéOõ¯ÿƒ‰©Z­ýzÎÑÎ…|úÕϬ^WWëß—z®[‡BE~ú5ߣõ4$ýÏëÿ§ü§ü¿±t ¡;ÐGôÕ^_õÕY_/ë+N_ ú ê+¤¯,}…õU¦¯Ÿ1(£G¨úϹÿª(#C}EUëY­§§žžzzééeø{ÛÿÕ‡†Oõÿþ_ä J;¬ÿ\ׯoüEý÷¾1jªizúÿÙ7Zßn÷ö¹úOùOùOùOùOùly„òY¢‡~]²{Ù_ÚÅpý_Ô¯Iöëù×ÚäÀßqOCôßqOÃÃÇ= ü÷2ÜõwÜËÐî︗¡ýßñjÃuÇ« þ¯6<ôwü¡a€ž­?°맆!Ë~­IBÿÖ‡ÐË,­¯Ò,ÿÒGÐ+þÖGÐék{ôª¿µ=:ãoíˆÆü­Ñ™kg´íßÚõ·¾Œ^fõ—¾ŒN³úKãÐ+þÖ8túßš€^õ·& 3þÖ ó·Ñ™kmû·†ÐYkzÓßš…Îþ[ÃèÝkó·–¡÷ÿ­eèÜ¿õgLŠõ_ú3&]Ï ã§šþ-_4Ù´ëŸc­ÿdÓzý±vꔿuþ?ñýõSLãÿ9Þ~yŠi€þ8¾ÜäoíðO|V“þ¹øŸãÅ—MLÑ]çó¯6fúã¶Ñúª_‹LÓÏJ›b¾pŠé¸÷LÿkôGÿãý«ÜñBý÷1ÑçßcÔomÌöý×ø÷øË¸Û¸ÿæõü÷øÉom¶ûýŸüïñ•ßÚL¶û7~Âéßc™¾vÔÿ}úomþw}ýž‡ÿ]I À&ûGF$¥£m0¶(ThJðo꿵¿ ½úöÿDþ>BÇo°µùý<êŸXhzò_¾ÿº¦|`Dâï:4&þó6¿"ÿ­1ÿ‹úíƒþ—öÿ­ƒãbbâbÿûœÍ¿>ôúÿNÚmˆ¦¡¬Ì¬Í. ŒÐ8Ôt3+‹ÍÛ-f™Í6›g6ßlz:z4z z,zz£,B,B-L-V[Q6f¶fFæËÌï ß~8¼Óz»µ™ÅY “…†£,-œ,Σ6™´a­°ÒX©­¤V«“V'¬ +’ÇŠmÕh^oÞ`Þd~Ô|*:Ò"ÊbŽÅ‹ùk,–Y,·m1΢Ԣ̢ТÈb©Å‹E‹-î ÷š÷›£,Œ,È(¿a©áÛ†× ¯ÒQ× O¢x(­áJ‹)“,ΠƘ£ÍV|+šÕ*Ä:À:Ð:Ô:Ì:غÝBfuÚJkÕcÕhuÆê¬Õ«óVç¬.Z…[O²žh=ÏÚÔšŠ2337k6o5o7o1o3±Ž°Ž´Ž¶Î³™g3Ã\jka.´½bkn˜áQÆÃFÃÆÃ#†G=¶|bùÔ2À2Ð2È2Ø2Ä2ÔkfnaiemckÉA9›»˜³Q\”·¹¹¯¹Ÿù#Ôƒ7¨E[ƒõÛ v|A9ÜFýD…28`€²1°1´1²1¶a3Òf”Íh›16cmÆÙŒ·™`3Ñf’Íd›)6&6Sm¦ÙL·™a3Óf–Íl›96smº,Yv[·€>¨_©Ö¯Îìô+2ý*ÌI¿òrA»¢ÝÐîh´'Ú íöAû¢ýÐþèt :ŒA‡¢±è0t8:‰ŽBG£cбè8t<:ˆNB'£SЩè4t::‰ÎBg£sйèº]ˆ.B£KÐ¥è2t9º]‰®BW£kеè:t=º݈nBŸDŸBŸFŸAŸEŸCŸG_@_D_Ò¯ÿýš¯_çõk;’~=GFSÐT4 MG3ÐLýzŽæ ¹hš …h‘~E'FKÐRýJAËÑ ´­B«Ñ´݃îE÷¡ûÑèAôú ú*úú:úú&úú6úú.úú>úú!úú1ú ú)úú9úú%úú5ú ú-úú=úú#úz²ñcã©ÆÓŒ§Ï0ži<Ëx¶ñã¹ÆóŒç›/06367¶0^hlilelm¼Èx±ñã¥ÆËŒ—¯0^i¼Êøÿ~§%´1ÆØÆØÖxµñcGãµÆëŒ×o0Þh¼Éx³ñã­ÆÛŒ·ï0Þi¼Ëx·ñã½ÆûŒ÷0>h|Èø°ñc;c{c`£€ÑÀ`,0˜˜SiÀt`0˜ Ìæó€ù€` ,V«4€Ö€ÍÀvàpp< H’4 Èò (J€R ¨ª€j 8 tÇ€ãÀ à$p¸\€:ÀXàd€†€;À]àðx<^¯7À[à=ðø|~(œ1n$nÜ ÜÜÜœ÷7ŒCá ð£ñcðãððÓðh<¿¿¿¿¿¿¿ ¿¿o‡wÀ»àÝð>x_¼?>ˆŇã#ðÑøx|:>Ÿ…ÏÆçà‹ñ%øj<ÏÁsñ|<ŒWâUx ^‹ïÁ_Á_ÅßÀ?Á?Ç¿ÄÀÁÇ"Œ&L L&,'¬   6„Õ„Í„-„m„„„]„ý„‚Á—B%dò Å„rB=¡ÐLè"Ð ›À'H 2BPT5¡Ÿpƒð„ð”ð†ð–ðð…€"‰ã‰“‰Óˆóˆó‰‹‰»‰{ˆû‰‰‡‰vDg¢ Ñ•èNô$ú³‰9Ä|b1±šXC¬#6ÛˆíÄbñ8ññ$ñññ"ñ2 âˆx"!"™H!Ò‰l"L¥D!j‰=Ä~âââCâhp 8NMÀ©à,p68œÎ‚– ¸\®×€ëÀõàp;¸Ü î@GÐt=@0L3Àl0,ËÁ ° ¬Á&ð(Øv@%¨ûÁàMð6ø| ¾ß€:ðø4& &#'M#M'Í$Í&™‘V“6“¤R8)‚”LJ!e“ŠI%¤ R=©t”ÔFj'uNN’N“ΒΑ.‘‘D&ÉHIIÒ’zIWHWI×I7I÷HHIHOHÏI/H/I¯H¯IïIHIŸI_H:ÒWÒ7Ò°þcØ2†FC“¡)ÐTh4š¹@®äyC>ä…@¡PEA±P<”%CéP>TAÅP T ÕCG¡ÐIè@0$†dRBjH õCÐtºÝ„î@ 'Ðwh2yyÙŒ¼˜¼„¼Œ¼šì@v$»=Èä@r09”MÎ'—“‘Ï/2…L#3È|2L–‘µäò òMòò}òò#ò òKòkò[òò4ÊtÊ,Ê\Ê<Š%ÅŠ²ˆ²˜²„²”‚¦`(«)ë)Û);(»(»){(‡(‡)G(ŠÅ—âO  RNPNRÎP.P.Q.SˆQÈ …EaS8>¦()*І¢¥ôP®P^P&S§P§QgQ­¨Ë©«©û©!Ôpjõõõ õ2 ‚Ô~êêê*Šf@A[L[B[N[ECÓÖÓ6Ð6ÑvÓöÓÓ\h®´Z-œOK %ÑRhÙ´Z>­˜VM«¡ÕÑêi ´FZ ­•ÖFk§uÑNÐ.Ð.Ò.ÓŽF¦Qhtš”†Ð^Ð^ÒÞÐ>оÓ~Іi(º}}4} }<}2}}6}.}>Ý’nE_L_N_M_C_G_Oß@ßNßMw¤;Ó}è¾ôz=šC£'ÐÓéÙôú:‘N¦Óé|º€.¢‹éJº–ÞO¿I¿M¿KBJACÿB×Ñ¿ÑгfŒÍŒ-ŒíŒÝŒÃ {†#ÃáÉða0ÂŒ(F #™‘ÂHgd3Š%Œ2F£’Qèe ƒÈ 3Ø ƒÇ0d „¡d¨†–ÑÃèe\a\e\gÜdÜbÜeÜg<`Ìf(3ŒÎŒ`Æ3˜ÉÌtf³˜YÂ,cV3/0/2/3&‘IbÒ™ &‹ÉaÂLó ó*ó;Å2fM`MbMaÍbÍc™±–°–±V³Ö°Ö²Ö³6±6³¶°¶²v³ö°ö±°Ž°ìY,–+ÌŠf•³ªYõ¬3¬ ,€EfÑX|Ì’±´¬>Ö–Žõ5ÌB± Ù£ÙcØãØãÙØ“ØSØÓØÓÙ3Ø3Ù³ØsÙóØóÙ¦ìlK¶{{ {ÍÆ°W³×³·³w°w±w³÷°°³°ؾìbv »œ]Å®fײ²›Ù­ìvvûû$û û<û›È̦ٛ°Ùl›Ï†Ù*¶†­e÷°ØWØ7ØØÙŸØ_ØßÙÆœœQœ1œÉœiKÎrÎvÎ~ÎÎaŽǃãÉ á„sò9œbN§œSÁ©äÔs8MœfN;§ƒÓÅ9Ã!rèœ~Îç çç)ç çç Å5âŽàŽçNàNæNãÎãÎç.àîæîáîçæÚq]¸®\w®'׋ëÍ àrC¸áÜHn<7›ÄMæ¦p³¸ÙÜn>·˜[Í­áÖqë¹ Ü6n;÷WËíáös‡¸W¸w¸÷¹¸¹/¸¼Ñ¼1¼Y¼Ù¼¹¼y¼ù¼í¼¼Ý¼ý<ž#Ï•w”Gä‰yJžŠ§åõónðnóîò6óù|~?œÁ¯ç7ðòÛø'ø'ù§ùgùÇ'ð‰|ˆOæSøT>›Ïáóø|¾€/æËø_É×ò¯ð¯ò¯óoðoòðòŸð_ð?ð?ò?óu|”ÀX0Z0Y0]0O0_`*X 0,X ¬‹Ë+«hF°V°^°A°Y°]°_p@pHpXpDà"px|!‚PA˜ \!ˆ$ Ò%‚jA VP/8*ht Ž Ž N Î .. QÀÀ™@)è ®îžÞÞ Þ ¾ ~PBcáxáá$áá,álá<á¡™p±p‰p™p…p•#´®î:….Ba€0T-ŒÆ “…ÙÂaž°@X.¬Ö Û„ÂcÂ3³ B@ˆ’…!MÈÞÞÞÞ>>¾¾¾¾~~ê„߄߅(ÑhÑÑxÑÑTÑ4ÑtÑ,Ñ<‘¥ÈJ´X´D´G.ŠE‹âE‰¢tQ†([”#*•‹ªE|ÑÑUÑ ÑmÑÑ=ÑÑSÑKÑÑGÑÑhx2l /‡Ñðjx3¼Þ‡À¡p8 'Ã)pœ…»`:̆ŸÂoà·ðø ü†Qbñxñdñ4ñ<ñbññr1Z¼^¼A¼I¼E¼[¼G¼_|@|P|X|Dl'v»ˆ]Åîb±§ØWì'ŠCÄáâxq‚8Iœ,Ng‹sÄùâbq™¸Z\#®7ˆ›Å­â6q—ø„ø¢˜,¦ˆéb†˜%f‹9b®‹Å±T,#b¹X)V‹µâq¿øŠøŽø®ø¾ø¡ø…ø¥ø•øøƒø“ø³ø»ø‡ø§xXŒ’HFHFJFIFKÆK&KfIfKæJæI,%V’Å’å’’•´þáuµdddƒd“d»d‡d·d¿ÄAâ(q–¸H\%>_I€$Z'I¤K2$Ù’|I¹¤BR%©‘•4KÚ$]’3’³’ó’‹¢”%t C”ð%‰H"–(%*‰VÒ/¹!¹)¹#¹+y"y*y!y#ù"ÑI~HŒ¥#¤£¥ã¥Ó¤Ó¥3¥³¥fRs©¥t±-ÅHm¥k¤ë¤›¥[¤Û¥»¥¥‡¥G¤öRG©“ÔYê"u•ºIÝ¥Ri€4\%M–¦HÓ¥ÙÒi®´HZ,-‘–IË¥ÒJi­´^Ú =*m‘¶JÛ¤ÒÒ“ÒÓÒ3Ò³ÒsR@Š“¥d)[Ê‘ò¤|©@*“"R¥T-ÕJ¯HoJHŸH_HQ2™±l´l¬l²lŠlªlºl†lžl¾ÌLf)[.[![%ÃÈÖË6˶ËöËÈËŽÈ\dñ²Y²,]–)Ë—ÈŠd%²RY™¬JV-«‘•“—”]±e,“É”²~Ù€lHvUvGvWö@öQö]öC†BŒ‘ÈHd<2™„LAf!ˑՈ∸ Hˆ#ÑH<’Œd#åHRÔ#mH;Ò‰Cøˆ)"CäˆéAúd¹Š\Cn 7‘;È=äòy¼D^#o·ÈD‡|GPòÑò1òqòñò òiòYò%òÃò#r¹‹ÜGî+÷—Èåáòy±¼MΖsä|9,WÊUr¼GÞ'¿"¿*¿#!ÿ ­˜¬˜¦˜¥0S˜+v(ö+(+ O…¯"D‘®ÈPt)èŠ~ÅÅcÅSÅxåådå4å<å|¥¹ÒB¹H¹X¹D¹\¹R‰V®WnPnRnVnQnUîVîQîWVº(]•îJ¥§2@¢Ä*ÕñÊe›²]Ù¥<¡¼ ¼¨¼¬”8%YIQÒ•l%¬+¥JD©Uö+(_(ß( T£UcTãU“U³T³UsUóU–ªÅªåª *U€*D­ŠQÅ©TéªrÕQU³ªMÕ¥:£:«:¯º¨"ª`•R¥U=Q½P½Q}QéTßT?TÆêÑêñêiêÙj3µ¹ÚR½XVcÔ¶ê5jµ§ÚGí¯PªÃÕê(uŒ:Y¢NWg«‹Õ%ê2u…º^Ý >ªnSŸPŸTŸVŸQŸUjœZ ~ ~¨~¢~®~¡þ þ¨þ¬þ¢Ö©Q±f´f²fŠfªfºfžÆLc©Y®Y¡Y¥Ak0šõ«ÆC㣠фjÂ4šxM‚&Y“®É×”hª5'54D ¬¹£¹«y y¢y£y«y¯ù¨ù®AiµS´³´+´«µk´ëµ›µ»µ{´û´´Z­‡6@­ÑÆk“µÙÚmöŒö¬ö‚Ð’µ-MËÐòµ-¬•i­VÛ£íÓök´7´7µw´´/´/µ¯µo´oµ_´zÐ=˜žÕ=ë{6ölïÙѳ«gwÏžžÃ=Gzz\z|z|{ü{{Â{¢{²{Š{Ê{Nôœì9Ós¡‡Øö@=”f»‡ßs¥çCÏ—žQ½cz'÷.ï]Ñ‹î]Ý»¹wKï¶Þ½û{}zCzó{ z‹{Ë{ë{z›{»zOôžézÁ^z/£—ÝËëå÷ {e½H¯¢·¿÷JïÞ½{ßô¾íýÐû¥ÕgÐgÔ7¢o|ß„¾‰}“û¦õÍè›×7¿oAŸYŸyŸUßâ¾%}ËûÐ}ëû6ômêÛÜ·¥owßž¾ì¾œ¾ü¾â¾ê¾š¾º¾ú¾†¾¶¾ö¾®¾}ú.ö]îÃõ‘ûè}ì>¸OÜ'ëCú´}WúîöÝï{Ñ÷²ïM߇¾ï}?ú†û úG÷ÏïßÞ¿»ß§? ?¤?¦?®?½?£?»?¯?¿¿°¿¼¿¢¿ª¿¦ÿhÿÅ~e¿¶¿¿ÿFÿíþ'ý/úßôéÿÖÿ£ßx`ôÀøiÓflØ2°}`÷Àá#öŽž>¡áQ1É)éÙÅ%eåõgdÈ€r@;Ð;peàêÀõ›<x1ðaàãÀçÝjÐ`ÐxpôàäÁ)ƒS§ Nœ7h6h9¸bpýà†Á̓Û÷ î<0xhðÈ ã Ë ë Ç Ï`Ø`Ä`ü`Â`ò`Ñ`É`õ`Í`ýàÑÁcƒÇO^‰ƒŒAÖ <(” *{û‡¯Þ|0ødðÍàÇÁïƒ?QCÆCS†f Íš7d6´xhÉв¡C«‡Ö ­Ú<´{hßÐ!‡!Ç!—!·!÷!!Ï¡€¡À¡à¡Ð¡ˆ¡è¡ø¡ä¡ì¡œ¡‚¡ò¡Š¡ê¡ú¡¶¡ö¡Î¡cC[ì“ì÷9èN8½vNqyè2ÆMàEõ.ÃRÃha¯ÃG “„)›3¯¹———¯­”Ukj¾Õ>ªhßä”ìlìÈŽÒ$Í)`VôVœn.²ëÄõH÷|ä™è—á' äï {–Þg—:.ícúèÌáLóìcù±… …Ï+›š£ì޹~Æ®Ž=þ2Ó»xr…]Ù…Ö+NvîK=û.äš…ö„펜;+J¹ŸJLÛ˜C¨w<êt´ùøBgÀÇ&åzþöƶfo§Ñ7l{øÇ§F§S‘ì´ÉýÝ—V¼«Ûïp1ðe°¿'Ã%/ëGèN8¶y¿ðü¾5êpüªä+É'³òÄEüŠËÕ7š·¯tò xdX_iÀÑÜùªÇ}¿;Øõ1ñÂÄÁ$‡¬·ùÞG±ÎÁQynvù=ny, X¨ ÒFìè¬óž•æû×±ëq\×ñÞ'|û. µ 5?y7±6õuš_Ž.ïD]ÉíR£:»:y½Q»kÇåÎYv{ì|í¤voíÓ:mw¾ïüйÖeš[Šû)w©w™¯Öï{à• ÇPzØÓ0E„C”$êEÔÎèc±éñC‰-IFɼ´§i©™y9cò¿Œ([x»0¨Ü¶ê{5¿vJ=XÒHmìmßÓñ´kèX×ñqîÛ}äE'Z/·’»çº´ežÉ»Z®ª½[òØïÓ|<ï=Õ?#ŸY[ÔZ;¬wúâ”æ<Úý}PbðØ(Q̺´³ÎîIá%©µÍÃD‘ñq1•ÊÚCí#uiØô(rõæÎQºçÎ+Üí<%Áß"ž%íIgfŠ3f§×U$Õ¬©¿ÐüÍiŸû¾”€,e‘iãhGä!ÇCNeN ‚®„§D´·ˆÎ8=pž Ý>‘›|(‹Qø¼ˆT±¡ª§î@ûܮճ7d ¶6rurA'ãbany^¹ÅXuÓ8{¹³U@BPbôœlN›]ã4B¾ýDûTÇ|Ç®án›Ü¿ºwŸæ¹Ï³Éö®÷™èûÖ7×OéŸ4z?Ô4lA˜_˜"÷ܵ0:'º0ZÓ–d¼4¹0ùtrzJ^JAúëôû2ögdf4g¡r˜9åy#óWäWçϪ´¯Ú_VcÞdÙt¯Í±}bǤŽÐŽÆnyNªý—WA.á= —]7:ŽÓ×Íóz8A§ š¨›¤›¬›¢3ÑMÕ®Ÿ¦›®›¡›©›¥ûY9[7G7W7Oׂ¯sK0Õ-ÐÝo1ÓÙg»;›ëêÂ"’b-tëRê,uVº 9ÖºEºÄr¹Û,¯Åº%º¥ºeºåº]v+taŽû=ß„MÎ_©KòLöë‘g|ôe?öò¾ä´J—ì¹Äß$­ÃèltžÉ¶ºÕº5ºµºuºõºžö ººMºÍº-º­ºmºíººº]:QÜnݯ€T÷6`¯nŸ[°_w@·Íç îî°îˆÎNg¯sÐ9êžzYUf…MÎqÒ9ë\t®:7»îG¾‡ÎS·Ùçaô6gfìϵEì¨v{íñ®³ô=nþ´ÐG¡ù‘”¨#±/Ó^gšfßÊQ”6–Û4x7±B¸q™Iô—z7×#îÌÀþ)önŒwlL#îMÊ®|NÁŽ’"ýƒ‘WÕ‚¦¦hý×\Ö¤ZßúÉ®†A~£‚ºCî„§¦ fCeOºïÛ•»Çº/òœàú¬õ+ñ_t7JúZPUN¯®l¹Þ]âMó‡LPNh§îk<Ü=&úø|ò©ò=ç×èϘ\<3dW¸.\y%Æ<¶?öAÜÏ„©i`ƦLãâ‹/«ß×ì¯5ªŸVï\ÿ£þHSjËÖÞ¨‘ñ‰§Ó‚Óx²:só«.zH°¡?B¹ØêhÓ$Á«zj[Œ]AæM;ÀQå8à4Þå|`B˜CøípÓ˜ì8v ”ö0óC~pqI£ck¨OXSØ•ifR‘—noõÌúmq>ü‚ŽÂõqõ[ýùzFʲRd=(1®ZÔ€î(sýè­‹H-ÉÛVÊ,ûR^Ws5þVR`Ζb_]dÃÛv?]¡]гq”IÔÖø¹‰+JM»;®sð}²(Qž.¬¾Vý¡úsK©Ý5‡WÞƒ~í¡ê„©¸´ƒùß‹³ëuÖ¿â±Ã+Ègj䵘Iq›RWå¬Ë5-Y_ñ éPK…Soèû0rÄŽ˜®ØIñc’’=S,S£Ò—WùµÅ8® Joi±_æ0Û÷Y =gi]•ÿîÀ™áºÒ–^§ªüŽJG¿ˆy™Üœ·E)-×ì—8µ9Or™èês>À.ìBxtLAâ—Ä‘ÉEÉAº{)ÑÙyô¼Š"MùÝreƒ¶á^ Ò9ß%7N›Ð–üµäRíé÷®ãÝ­aŠÛä'3Z—§+2Ͳ³#B"“ߥ°ÓŸ¤í.¬î[Þ®~fq]—‹ÊëGÙq^âÕëkç¸%8û;»,.8¾;myñÔ’MåSëö´oêšçÊZv9zLQdEfëI»bÏ+þWý熑r\ò —qŠLëÚëî ÏF/­÷"lGXI¸&*$!%V}¿º ~Oçè‚ÊêÃ-Û;Îvû{Ož›ô.õvêøâKŽMG›'$üh´qšY/çENP+¥[;¥ä¬ã——‰ØcØEÇcy© i3‹„ÅÇË"Ú?t–ãío;I<·ø¹¦‡d„à±Ú0óHUÔõ(ÿÄÀÄÉëÓ®§ÍÌgŽ(BU-®ª®^V–ø*›¶7óâ±¼¨Æh Oë°öâ8ç&vÏÛ~šàÕØ¤°±Ë’†2‡ 7]uzî‹TŽ ’]¹êRD™'|NòMÙ›kZhXYrº’W½¨5ðØ+ÝS&:mr±w- M›3.Ç/¿²4¿ùu˰SstDb’K‡×VŸC¾‡ýñþKèáÁ›cwÇŽIKÊ®Í++™Xõ¹.°õC7͇0!ðr }è·Ðï¡S¢_GOB’îæm–xÏ+›\åëäå¬ šB Y¶>RÍOêN>šÕœ=7·²`maqÉó:]‹ }µýAg•óugeÐòThC¨(âU´GÜË$—‹Ô©ßSµéßÒ—gìÍY^x§¬¿Î¤íu›È©?èlˆe¬c\vª¢lj|Õ±«s¡CÃA÷ ž‹}öù¥ùo ÚÊ„ŽÁV…uEcÅéæ9—òó –B…'‹«K—Vά:WoÓR|‚Ã{û`νÍÿFPcp\Ø®ØÙ ¢TeþµüåËgWÜ©^Rw¤!²e•}¼ý\?M˜ExNjnêîÎ@¿±‘ ý ‘)!º¹»Jž–Üh›loŸŸw¶ù®ãH?JøÖh»èëÑ„D8˨h zcò7‡r'Ç•ÖÈóÉn©çÓg–ÞkÞЪós6𯬺PG¨«¬·r:›v kôñÙv†)ŽÞ>i~¦ØX8LŤˆSŒ›™‹êÌÚGwÜ´7÷Àx|òŽÅ†FM‰ÉŒÍ‰{´,åiÑò©>UÓê&Ù8Lvöqnò¾è?!¬.#£`UÑ´’Q¥ê6Õm7éZ–j÷Åþ€§ÏkŸ7>aÁ½á?âO%,K^–û¢Ø°Ì¢¾·ñ}×»+v¯íKܜ✬]ê]î¸/óÄzyy§x+½»ü°ºÔ ´Ðó¡±1gc×&ZgmË^›çPàXÐQ°½°½ðb‘Qå‰êGÕߪ“k˜5Oêo4ÌkÙÝrµýq×Lç‘NK\’Ý ÏXÏaÿ3±A“±¹Ñs$©Ù·²çæ…‚ê7-a:oû™þyþ %¾ã®…g§ïÊ>6Ý®ÝaºóRgGç"Ï ¯2?R@eà Œ úв°óýQƒQCQW¢èÑáº5É_SLÒÒ2®de+rîæÍßZ ,xW4§ìI9£2ºŠU=»Á¯õzÛ¦ã€ÛRïhÿêP(’åó6nz¼o".é|u_õ¦¶†ÀuÑùGìªì:íì6Úo¶Ï³¿m?ìðÎù‹óH×û®×Ýž{yNñzîýÕÛØç½ï2¿vÿùáÁ]¡„ÐOaßÂpáYQíÑCÑ cÇÄïI2Lßš±=# Cñ4kfNbNiþ„ÂÚ¢žbiéír‡J¿ÊùU7ª±5¸ºKõßÛn·ë>è¡›©ksXê”àê-OZ˜r,¥5««8½Ýšf×ÂŒòK¸X2Æ.Jw ìUøÌØã…³J¢Ê?Ä™4ÚÆÚÑ4 ÷º^ré¶Ý{¶ÏŸõ~•~'ü„~ïÃ#=b·$nOä'~I ͳúóÞ—¨Hª ¬¾U=¯Õσ“ü£Zê­ Ì´ÈI,LL\b•£›Uâñ̓í[çGõ«÷w h Ê >Ú€½Šý‚þ.í½/(7Tj›“`¼;¹,™—z)ãZŽk̨`CáœÒe)•÷kÒë­ŽiÇw†;;ú¸DÀÑKb–ÅŽ/ì,ÙT±¢òRå³–°ãN ,)ª%÷gÙ„š¢fß–ù¡1¯buj÷>OÀ{QÀ×€ÉA °þØ%Iº¤ë©iÑYnù‰ù¡'*fØÝsJŒš3"sC:'NG¬~á¼ÊÍуâ=ÉgŠÏ=ßíAEÁÓBV`¡pvty !vAü™øÞ딺”Ú”Ù©S²îd-Ë6ËÙ³¼$¦dTéêÊ õõ”zZã§ÖuCöÑ>þa 1dz«sgTͨYPåýÃwB¿Ø§þn[YR•wG@nØ­˜•ç* êÇ·­sŠ×9Æ×¦·4Å—5¼²rþázÍ­Ðý‡‡Ð«Üû²ßÇÊÏ pBС òày!kCÓC7DVF­Žžƒ‰{œð41=iT2)Ù:50Ÿážù,“‘]—äævç-)ÀÕ_+~VÒRN¬¬¯Z_·³¾¨>º¡¥‘ÑXÕr¾åBË` ªut[K{_ÇœÎ~ç\ÙžñÞ<¸ã æÉŒä’üEw}Ëü/ùï xjáYµ&æ}Ìý¤Ÿ©@Ú‘¬i9 æn/úP\T W–5˜6l#·r.SÚ8Êw‘o„¯ò±‚𲸟A½yk++Lí<ì;ÜtÚçœ4 ‘;¢Ü¯¥Æ~¶óZ7…ç¯õ>v>G| ý¦øï à„®ÂîÄrÃ>„ÍKº—¶1Cœw´XUÜR­Œ¨¼[éZYýÁ½ß{’\ÀË  -Q>±Å ½Y®eU?ko·ýl[o_`×>ËÅÌ‹î½9Žýž`›â—a›cWp¿ ­èR‰ºÄ¨llååÚκ¸ãyÆû‘wEÀSïq>"ÿ‚èDÝÛ˜qñsR…Ÿ*ùv;œ“tW[&EwÛÁöNŽ~®V^O|¦y&r /ý,õ,Ÿ_¹­EÜ2µ}Ì1ßcc= Žïn¿»ÓïFZÅ6¸4ÙµMîJ;^áM÷lݾ9MÐRÓêÒv¼ód¨A•¢–ݼÆõ¢Ï /ů{8õC‘´¹Ïƒ¤N\|ìÝJÏI›°EQ3¬59ó]Dî3|çb 15é¹…m-»[‹³ƒZ‚I1csiûy8plN·¿Ý&ªã3KW™—­Û]‘£kªâ7ä´äêÆ¶»Ÿôg‡Ä¡RÏetWâÚ½:£;R‚j"%»ÐXÿ1 ¨Ê¯•ÙÞ3J¿Úov$»íö¼¬‹¹äQêXnçiŸ§Ë×è = uE:ÿ(ßèb%yFF‰nTážÂ EÛê|ëJu³ÚËtåº Ý9»JÝm÷ ÿ©Ø*]µîrJFn\Und½wÇY·E_<x‘½kuŸüêtõ:‡àMÁ º-eѼèÚ˜¦˜1Óâu·ã×&x&4éD  Guöéqéͺ”¬û9-ºU¹­º#å·kÛtíºwc§îSW—[WPs\&œÐÔÍ8çSºÓº3º¾°³ºÚ¿þÓdrjaoá9«ùaGN7Œ=¯$(¾ »¨;äqIwYG÷MðtfØZlF>b}ôûèµ±;â®ÅÍ_ïp;!> §óNÆëú“e©v™M¹Q÷¶0 R]êö7‘t³[!Y·Ón©E7Úé®ó{lL´ÀÐÉÝB‡CC°çý¢¡8M<à””“5ºìL¥Mרã‡|Š¢w'U$ml¼š¼ 5"szîØÒíŽbAÈ«äé)ñ©‚¼æzU‹K»uì£ä‹™—2\-M/›[yÀ«Ú»Óûd8*"8æbÒÔäåÉ­éOsžçÍ*p-è.:\½²eJÛl¾ÿ×Њ°È誤F^‘Q¯ÒfxFûª|­’ìS˜:–Îq•Ç ÏÏkž½Ù:Žî”ïPÐŒ¦Ÿ!\Ý ,O·?’¯NIèÊ3 ™ûrýrQùñBÝ벂 ³*Ïz‘.¿Þ©=7Ð&*9fA®UX×cshýëÏ©î oºßÎÀæˆê˜°XjìÑ„ äÅ)ËS’ò×!Åck6Ýj‚uµvŽö©KeÎ ç÷ÎeÞ}Þ–>s ?„z'¶&mO¦:d4d02Fæpòª JüJ…uûê?Ö?k(iyÒò´eÐ)Ìÿe(»*Ü'am¦ ~l[ƒXçÙUW‘0+Ÿ^è\r¨¾¹å]Ë·Ö9%˜Îz»Ê¸e—ãqç».SÝMÜO»wzÁ^"ïÅÛ?—DoˆIŒ­E'nKrOî),(ßSP/ѵx´Í=6:¬²Æ¯ñˆý‡[ ÎÜû= ¼ÆøÄÖcWÄÚ$J~#ÊŸXŒ-ÞVâ_æ]>«Â°Êµ^Ñjß™d×`oâé(Õ­r½èšé}Ö;Û/Çëw"àvÀèÀ1pðúÐ1a2]ص0DÁˆ^#×­UèîÆ­MZ—¤Ôù$cRT:§TµN£Ãåü,X_×^çñ0ôTìúzb£ý›Ý JÏ«ž;>è>ê¦e~ÒÙ‰ªCw;Ö}Ñét*»'Wo^a¿ÝF§ .ˆç°§ƒ·»·wpÀþ@El{|lBiÒçdJŠ }YΈüg‹‹f– %¯*¥ÕÊû¯Nl·Ë¡‹±Ùñôø5‰œœšÂà ü–Äc ÞÃÛ¢2ãn¥6ø\ÆzÇ‘³–f¯-¿Ñ2ÚnÈÎÌyµËãµG´ç([¿b¿5þÕÁ$¬[Ø‚Èӑ㣶ÅíMüªsHªJ¾“y>;½àvÁã‚Ê¢èâ…%GK4%7褅 iÍ]-5ŽˆËbw¢÷‘ ‡°-áMá[bûbsâÍså'«ÇÔ:nw|Eb]–ªrNÓ>{;{Ç|­g³%(%,6bf$>zNìÕÄ¥IœzÖšœÇú/ ÷âÏ%Þ•„ê²ÚÙõôzu‹ÿñûNc]îz ½=BRB?ĉßtÅ©G2çfÉÞš{;/«hY•¼:¤æní³:]]D}OÓ.ûL{È!Ü1ÝñˆS¤S G¶G€çhWŸë~蠩ἨÑÑ`œ]‚Y2:e}ŠcJbêᬪ,\–$«.7¶rkݺmMMËŽ~kñj‹j3må´4¨-È3&$UžÉÏJÍ pæú´ú­cÄ·eOi­í¼Õ}683$µÌÀ®Ùgçãâ°ßEäÙá½Ýç÷Ù¯À_°1x[hr¨24›ŽýQµ=šó$fA¬_¬iüÉøÚ¤IS¼ÓÊÒk3Æeædr³ksöV>«ì®^Ñp°áJ¶QÙhÖ4²Õ­Õ§Õ°mâñµN NÙ®–óýøWhƒ á·ãb2–g© ˜%?Ê¿Tî®­iiélÙÒz¸íàqµý^G…ãE'·iþQþ—‚U!OCw`¿buØùaLJÂDL‹ Kx˜°4ñRòÆ4· ¯ŒÛf™Í™­Ù·³wçÄç–å+9SêRÉ«l¯)¨5«©¿ß°©e åa—&tT6T#jòðëãä|5h~Ò"‡Vïnb@Tà@øÕ˜•É+3wætå`r£ –Ö®©ÍmšuÔÁÞÁý‘ïy¿eÁ‘y›ììíëì½nzÂù‘.á.?]í=Û½où^óóÅbÂÞ†- ms0¶&Ž'©,åp¶aÎòœS9 ¯—nª,©Œ¯©¬µ­ÃÔÛ585ì>ªm×ežÍ–Û8Je¿ùxb·DzŴľˆŸ—r?Ӣܼ>¥^Ñ2ÜnP´ÂîÝÞrUCŽóõȨˆÑ™Åݵ?±¯ƒnÆOI‘¦8åÒ‹T®9d÷Ìù² Ú}»û¿Að¨à¸U¡OB3±Ç ° ¨€èŽèåqÓ¬Òd¸gÌÎ9•oXð¾àX!­pVYuåwq ·&±þCêìÌu™.¹iù£\û]S'±Ó˶KFv½a#ã(ö÷¼›ÃÊ£Ócæ&/J¿ÙÝ—=ÈÀd>÷´;ã²ÕïqÖóM€sÐ`ÐÚ0׈5…Û[Àö›íËœw»f»|õ2üz/$ {3L÷:Î"y}òÌÊõG]FºaÝ÷ûwÚEyÄãâY9Í•‘žË NNÛ’©ÚÅcE+¢Ù{Š_\¬Ñ׈’ÃŽoœ—zš ,Š~mš¥Îï/”ÔëÁ6ã¯Ò3q !Æ¡vŽ“]¸O¬ôL ñõzŠSVBΜú‘ʈ¼‚¥¨ú mégsФú¥¾‰ƒÍî{½>øVáB¾†¤…݋޳ÖëPð6Ô=Ú"îtÜœx×¼7y ÍÍ-}­‰N»ë~8.s¡»»Vº²")1Wr°…]i-Ý£]d.½©JÏ4÷7û´œ²cÿÊó‘×g_§€Ö ˜°á¥Ñ«b×çuæ/-ýuÌ×mgí\ —&w/ÏoÈ[˜‘³0^Wv¿"±òqeaýËvz×i}ø ‡t?û°}E‡Ë/ÛMqÁ»=JšÞ0Ü:¦Ý½½½ÝÙí¸‡w)¦’ø)2+©·v_Ô¥÷WOTbTMDk¿ýkÿ/ÞØçÑ—ã‹“I?“–¤IÛ•”³0w]¡Sùد÷ª4Ƶ9z'gn/7hSzݱwqÞêùÃgkpFŒ.qDÁ¨‚SEšFtۻݎSœªÜƒü…ÑêØññ„øÆ„§IÉ‹N•–®?UºéB{¬£»ÿ€°@ëYr°–ÐPÕjg×h—í2àñÕ#Ç“â³ÈmÐþ ±Ø0ìó¨ˆMŒ[ì—Ø£qwâžÆùÆk­’½’ï$7¥údȳMsïæŸ+Œ*æÛ•ú—&—¥UEVM¨¶Ð¶ž€Ai ^^“°Ÿc¶ÆnKÞÙùÃÿZÀ¤,Øe–¿_t_ôÒ˜+ñ#r2JÇWn:6ùÚe„÷ÆÈ¨ø””š nXøº(¡rGÕ…êäÖq_?„, e¦³Ò£2×Ûu¸:xžóÎò;p=80*ë>;64˜<:§¸>¢ÃªkSLOìÖ¤Õòæ7އý.ø ø€<¸ »{6Bí‹ÄÅNèJ.Kd-Êv*r/s¬¯iu¯r¾åöͯÒ?(àhÀç@,Ö(¬+òU >.>>2)2—[°º¨¿ôB%\]䔘Ôâi|ô•K©›¯÷þÐ’P{<¼&F³)‘œŸÒp¤ƒ`?Û¡Ãy¢Ëf— W±ë6¿jÿ-aØ„›I#ê¯;½w ñP{'Ô%|K –L­,Ç^(9ïZŒ=˜€)>àÜî*ˆòôçø¿ ®ÀîKx[9¿ŽÛ=Å~cˆ"›V`WõåØ>ÇOޣׯ|Éï鞎]Õ?bä’á3*gF¥YÔ–¨½Që]â¶Ä ä.t¸åØåå¦r{á9Æ{¼_{`[ &ÈûÛžÀH`&œO<ŸÊ$åÅWþŸ~¯áÿ+…>~ª©y. •ÿ°xí/n_÷‹ßÿ!}ý?ó`Ã/¢7þâ‹xaÓ/†lþE³-¿xã¶mýE—m¿8yû/*ÿaùŽ_ܽóŸ¼íúEö?LßýÏ<ØóÏ<ø‡ÀÞæÁ¾æÁþæÁ?ì:ðÏ<8øÏ<8ôÏ<ø‡Õ‡ÿ§ÿ”ÿ”ÿ”ÿCÀŒÆã ÀD`0 0怰°¬EÀb` °X¬l[`5ðû¯!¬Öë€À&` °Øìv»€ÝÀ`/°Ø‡;Àp'ÀpýÃ︞€à ø~€?A@0„X "€H ˆb€X H’€ Ȳ€l Èò€B  (j€Z h& hZ6 è:nàp8œÎçËÀ @ € P*@˜à|@ˆ1 ¤È Ô€Ð=@/ÐôƒÀà*p ¸Ün·€ÛÀ=à>ðx<ž/WÀ;àðø耯À7à'0 à qF¸¸Q¸Ñ¸1¸±¸q¸‰¸É8ÜTÜ4ÜtÜ ÜLÜlÜÜ\Ü|œ)nÎg[ˆ³ÄYá¬q‹p‹qKqËp+q«phgƒ³Åýž»µ¸u¸ ¸¸M¸-¸­¸m¸í¸¸¸]¸½¸ý¸ƒ¸C¸Ã¸#8;œ=Îç„sƹâÜpîø=q^8oœÎç‡óÇàô§¸P† ÇEà"qQ¸X\.—ˆKÃ¥ã2p™¸\\>®WŒ+Á•âÊp•¸*\ ®W‡kÀ5âšpGq͸\+® ׎ëÀuâºqÇq'p'q§p§qgqçpçqpq—p—q‡Ãã8"Ä‘pŽŒ£à¨8:ŽcâX86Žƒãâx8!N„ã$8)ÁÉq œ§Â©q\/®7€Ä á®à®â®á®ãnânánãîâîáîãâáãžàžâžážã^à^â^á^ãÞàÞâÞáÞã>à>â>á>ã¾â¾á~à~â ñFxcüüHü(üXüxüDü$üdü¼ ~*~:~~&~~6~~.~þ÷ÜÍÇ›âàÍðæx üB¼%Þ o_„_Œ_‚_Š_†_Ž__‰_…·ÁÛâ×à×â7à7á7ÿá߂ߊ߆߉ß߇ß?€?„·Ç;âðÎxW¼;Þï‰÷Â{ãýðAø`|‹ÃGâ£ð1øX|>ŸˆOÂ'ãõÕø4|&>Ÿ‡ÏÇà ñEøR|¾_¯ÄWákðµø:|=¾߈oÂÅ7ã[ð­xý#9¾߉ïÂÃwããOàOâOáOãÏàÏâÏáÏã/à/â/á/ã<ÇðD<ˆ'á!<OÁSñ4<ÏÀ3ñ,</À ñ"¼/ÁKñ2<‚—ãx5¾߇ïÇàñCøkøëø›ø[øÛø;ø»ø{øûøø‡øGøÇø§øgøøWø×ø7ø·øwø÷øøOøÏxþ+þþþ'~" FcÂÂï¹ICKGO˜H˜D˜B0!L%L#L'Ì Ì$Ì"Ì&Ì!Ì%Ì#Ì'˜Ìæ ÂÂ?ü–+‚5aa1a a)aa%aC°%¬!¬%¬#¬'l l$l"l%l'ì&ì!ì%ì#$"&!Øì Ž'‚3Á…àJp#¸<ž/‚7ÁàO ‚Á,!ŒNˆ D¢Ñ„B,!ŽOH $’É„B*!NÈ$d² 9„\B¡€PH("”J e„ B%¡ŠPM¨!Ôê„&ÂQB ¡•ÐFh't: Ç݄㄄“„S„Ó„3„³„s„ó„ „‹„K„Ë€€#à ‘Hˆ@&PTÀ$°—À#B‚ˆÄ ANP4-¡‡ÐKè#  C„+„«„k„ë„›„[„Û„;„»äîá>áá!áá1áá9áá%áá5áá=á#áá3AGøJøFøNøAøI&ˆ¿ûGGGGÇÇÇ'''§MˆS‰Ó‰3ˆ3‰³ˆ³‰sˆs‰¦ÄD3¢9Ñ‚¸hI´"Z————WWWÑD цhK\M\C\K\G\OÜ@ÜHÜDÜLÜBÜJÜFÜNÜAÜIÜEÜKÜG<@ñññ1ñ ñ)ññ9ññ%ññ5ñÍþ·ÄwÄ÷ÄÄÄOÄÏÄ/Dñ+ññ;ññ'q˜ˆ @CÐ4G€#ÁQàXp8œN§ÓÁàLph .Í@sдKÀ¥à2p¸\¢A hÚ‚kÁà&p3¸Ü nw‚»À=à^px<ƒG@;ÐtA7Ðô½@oÐôýÁ@0 CÀP †á` FÑ`  Æñ`˜&É` ˜ ¦™`˜æ‚y`Xƒ%`)XV‚Õ`-XÖƒ `3ض‚í`Ø »Áãà ð$x < žÏ‚çÀóàEðx@ˆ AdRAHÏd‚, r@.Èù ‚"Å ”‚2å TjPö€½`8ð‡¯€WÁkàuðx¼ ÞïƒÀ‡à#ð1ø |¾_¯Á·à;ð=øü~?ƒ_À¯àwð'8 ¢H$C’i$ii i,ii"ii2i É„4•4ƒ4‹4‡4—44ŸdJZ@2'Y’,IV$kÒ"ÒbÒÒRÒ2ÒrÒ ÒJÒ*š„!ÙlIkHkIëHëIHI›H[H[IÛHÛI;H;I»H»I{H{IûHûIHI‡H‡IGHv${’É‘äDr&¹\In$w’'É‹äMò%ù‘üI¤ R0)„JÂ’ÂH‘¤(R4)†KŠ#Å“H‰¤$R*)”NÊ e’²H9¤\R)ŸT@*$‘JIe¤rR%©ŠTMª!Õ’~Ï]©‘ÔDj&µZI¤.Ò1R7é8éé é<éé"é2 G“$D"A$ ‰J¢ýá§“$&‰Eb“8$.‰Gâ“$!ID‚Ib’„$%ÉI ’Ф&iH=¤>R?i€4H"]#Ý Ý"Ý&Ý!Ý%Ý'=&=%=#½!½%½#}"}'ý ý$BFÐh$4 …ÆAã¡ ÐDhdÍ€fB³ ÙÐh.42…@f9d-„,!+ÈZ-†–@K¡eÐrh´Z¡! dÙB«¡5ÐZh´Úm„6A›¡-ÐVh´Úí„vA»¡=Ð^h´:„A‡¡#d9@Žä ¹Cžä @P a¡p(Іb 8(J‚R T( Ê€2¡,(Êr¡<¨*…Ê r¨ª„ª è÷ÜÕBuPÔ5AÍP Ô µAíPÔ uAÇ nè8t : ÎBç óÐEètÂýáÇCˆ ‚ 2D¨ ¢C ˆ ± 6ĸâCH‰ $…H© ÔõB}Ð tºÝ€nA·¡»Ð=è>ôz=†žBÏ çÐ è%ô z ½ÞBï ÷Ðè#ô ú }tÐWèôú C(²ÙlD6& $"&!%#'O O$O"O!›§’§‘§“gg’g“çç’ç“MÉ Èæd òB²%ÙŠlM^D^J^N^A^I^EF“1d²-y y-yy=yy#yy3y y+yy;yy'yy7yy/yy?ùù ùù0ùÙŽlOv";“]Éndw²'Ù‹ìMö!û’ýÈþä rKþ=waäpr9’EŽ!Ç’ãÈñär"9‰œLN!§’ÓÈéä r&9‹œMÎ!ç’óÈäÂ?üEäbr ¹”\F® W’«ÈÕär-¹Ž\On 7’›ÈGÉÍär+¹ÜNî w’»ÈÝäãää“äSäÓä³äsäóä‹äKäËdO&‰dL"Cd2™J¦“™d™Mæ¹dY@’Ed1YB–’²œ¬ +É*²š¬!÷{É}ä~ò yˆ|…|•|||‹|›|—|üü˜ü„ü”üŒüœüŠü†üŽüžüü‘ü‰ü™¬#%#'ÿ ÿ$“QŠ!ňbLAIEMCKGO™@™H™D™L™B1¡L¥Ì Ì¤Ì¦Ì¡Ì§˜RPÌ(æ ÊBŠ5ee9ee%eņbKYCYKYGÙ@ÙHÙDÙLÙBÙJÙFÙIÙKù=wû(û)()v{Š#ʼnâLq¥¸QÜ)OŠÅ›âG ¢SB(¡,%ŒN‰ Dþá¢DSb(±”8J<%’HI¢$SR(©”4J:%ƒ’IÉ¢dSr(¹”¥€RH)¢SJ(¥”2J9¥‚RI©¢TSj(µ”:J=¥ÒHi¢¥4SZ(­”6J;¥ƒÒI颣tSŽSNQNSÎRÎQÎS.R Ž‚§($ •B£Ð) “Â¥ð(Š"¢ˆ)Š”"£ 9EAQSz)}”~Êe2D¹J¹F¹N¹A¹I¹E¹M¹C¹K¹G¹Oy@yHyDyLyByJyFyNyIyEyMyCyKyGyOù@ùHùDùLùBÑQ¾R¾Q¾S~P~R†)(ªÕjD5¦Ž Ž¤Ž¢Ž¦Ž¡Ž¥Ž£Ž§N N¤N¢šP§R§SgPgRgSçPçRçQçSÏ)uÕŒjNµ .¤ZR­©‹¨‹©K¨K©Ë¨+¨+©«¨h*†jCµ¥®¡®¥®£®§n nüÿ‰º™º…º•ºººƒº“º‹º›º‡º—ºz€zzˆz˜z„jGµ§:P©NTgª Õ•êFu§zP=©^ToªÕ—êGõ§P©AÔ`j(K £FP#©QÔhj 5–G§&P©IÔdj 5•šFM§fP3©YÔlj5—šGͧP ©EÔbj µ”ZF-§VP+©UÔjj µ–ZG­§6P©MÔ£Ôfj µ•ÚFm§vP;©ÝÔãÔ“ÔSÔÓÔ³ÔsÔóÔ Ô‹ÔKTO%P‰T¢’©*•J£Ò© *“Ê¢²©*—Ê£ò©ª*¢ÂT1UB•ReT„*§*¨JªŠª¦j¨Zjµ—ÚG R‡¨W¨W©×¨×©7¨7ÿÈÝ-êmêê]ê=ê}êêCê#êcêêSê3êsê êKê+êkê[ê;ê{êGê'êgªŽúõÿ7êwêêOê0ÕfD3¦¤¢¦¡¥£§M M¤M¢M¦M¡™Ð¦Ò¦Ñ¦ÓfÐfÒfÑfÓæÐæÒæÑæÓLi hf4sšm!Í’fE³¦-¢-¥-£­ ­¤ah64[ÚjÚÚZÚ:ÚFÚfÚÚVÚ6ÚvÚÚNÚ.ÚÚ^Ú>ÚÚAÚ!ښ͞æ@s¤9Ñœin4wšÍ“æEó¦ùÐ|i~4Z -ˆL ¥aia´Z$-ŠM‹¡ÅÒâh‰´dZ*-–NË eÒ²h¹´ú~úúAú!úaúºÝžî@w¢»Ð]éntwºÝ“îE÷¦ûÑýéô z0=”Ž¥‡ÑÃéôHz=–OO¤'Ñ“é)ôTz=ƒžIÏ¢çÐséyô|z½^D/¦—ÐKéeôrz½’^E¯¦×Òëèõôz#½‰~”ÞLo¡·ÒÛèíôz'½‹~ŒÞM?Nÿ=w'è'é§è§égègéçèçéé—è—éGÇÓ tN¢Ct J§Ñt&EgÓ9ø¹t]H‡éº”.£#t9]AWÑÕt ½‡ÞKï£ÐéCô+ô«ôkôëôô[ô;ô{ôûôô‡ôGôÇôgôçô—ôWô×ô·ôwô÷ôôôOôÏô¯ôïôŸôa:ŠaÀ0d1F0F2F1F3Æ0Æ2Æ1Æ3&0&2&1&3¦0LSÓÓ33³ssóó¦Œ s†c!Ã’aŰf,b,f,a,e,c,g¬`¬d¬b † ֱ𱆱–±Ž±ž±±‘±‰±•±±ƒ±“±‹±‡±—±±Ÿq€qqˆq„aÇp`81œ. W†ÃáÅðfø2üþŒ@F#˜Âe`aŒHF4#–Ljg$0IŒTF#ƒ‘ÉÈbä0~Ï].#‘Ï(`2Š¥ŒrF£šQǨg40MŒ£ŒfF £•ÑÆhgt0:]ŒcŒî?üÇ''§§ggçç——x2H ˆAaP4Á`0,—Ág"Ì3$ )CÎP0TŒ>F?c€1Èb\cÜ`ÜfÜaÜcÓ”¹€iÆ4gZ02-™VLkæ"æbææRæ2æræ æJæ*&š‰aÚ0m™«™k˜k™ë˜™›˜[˜[™Û˜;˜»˜»™{˜{™û˜™‡™öL¦#Ó‰éÆtgz2½˜ÞL_¦ÓŸÀ d1ƒ™Xf$3ŠÍŒaÆ2㘿ç.‘™ÄLa¦2Ó˜ÌLf3›™ÃÌeæ1ó™ÌBf)³œYÁ¬dV1k˜µÌ:f=³Ùø‡¿‰y”ÙÌla¶2Û˜íÌf'³‹yŒÙÍ<Î<Á<É<Å<Í<Ã<Ë<Ç<ϼÄÄ1ñLdBL2“¤2iL&“Íä2yL>SÀ2EL1S”2¦œ©`*™*¦š©aj™=Ì^f³Ÿ9Àd1¯1¯3o0o2o1o3ï0ï2ï1ï30213Ÿ0Ÿ2Ÿ1Ÿ3_0_2_1_3ß0ß2ß1ß3?0?2?1?3¿0u̯ÌoÌÌŸÌa¦ËeÄÁÉÅÍÃËÇϚȚÌ2aMeMcMgÍ`ÍdÍfÍaÍeÍg™²°ÌY¬…,K–Ëšµˆµ˜µ”µœµ‚µ’µŠ…faX6,[Ö:ÖÖFÖ6ÖvÖÖNÖ.Ö^Ö~ÖAÖ!Öa–Ë‘åÄú=wÎ,W–ËåÉòby³|X¾,?–?+€Ä a…²°¬0V8+‚ÉŠbŰbYq¬xVÂþDV+™•ÂJe¥±ÒY¬LV+›•ÃÊeå±òY¬BV«˜UÂ*e•±*X•¬*V «–UÇj`5²šXGYͬV+«ÕÎê`u²ºXÇXݬ㬬“¬S¬Ó¬³¬s¬ó¬‹¬K¬Ë, Ï"°ˆ,EbA, ‹Ê¢³,&‹Åb³8,.‹Ç°„,KÌ’°¤,„%g)XJ–Š¥fiX=¬^V?k€5Èb]a]e]c]gÝ`ÝdÝbÝfÝaÝeÝcÝg=`=d=b=f=a=e=c=g½`½d½b½f½a½e½c½g}`}d}b}f}e}cý`ýd°ØÆìì‘ìQì±ì‰ìÉlöTölö¶ÛœmÁ^ȶf/f/e/c/g¯d¯bÛ°mÙkØ¿çn-{{{#{{3{ {+{{'{/{{?û ûÛŽmÏvd;±Ù.lW¶ÛíÁöüÃïÅöfû°ýØþìv ;ˆÌa‡²±ì0v8;‚ÉŽbG³cرì8v<;ÈNb'³SØ©ì4v:;ƒÉÎbg³sع컀]È.b—²ËØìJv »Ž]Ïn`7²›Ø-ì6v'»‹}ŒÝÍ>Î>Å>Í>Ë>ǾȾľÌØ86žM`“ØT6Mg3ØL6‹Íeóض-b‹Ù¶”-c#l9[ÁV²Õì^v»Ÿ=Èb_e_c_gßdßbßfßaßeßcßg?`?d?b?f?a?e?c?g¿`¿d¿b¿f¿a¿e¿c¿gfëØ_Ùߨ?Ø?ÙÃlÇ€cÈ1âŒäŒæŒåŒãŒçLàLäLâLá˜p¦r¦sfpfrfqfsæpæræqæsþXßspÌ8æ ÎBŽÇš³ˆ³˜³„³”³Œ³‚³’³Šƒæ`86[ÎjÎÎZÎ:ÎzΆ?ü9›8›9[8[9Û8;8;9»8»9{8{9û89‡8G8v{Ž#ljãÌqá¸rÜ8î/Ž7LJãËñãøs8œ N0'”ƒå„q"8‘œ(N4'†ˉãÄs8‰œ$N2'…“ÊIã¤s28™œ,N6'‡“ËÉãrŠ8%œRN§šSéåÔq9G9-œVN§“sŒÓÍ9Î9Á9É9Å9Í9Ë9Ç9ϹÀ¹È¹Ä¹Ì88žCà€â9•Cã08L‹Ãæp8\Ãç8BŽˆsÄ GÊ‘qŽœ£à(9*Žš£áh9=œ^Ng3ĹʹƹιɹŹ͹ù˹ǹÏyÀyÈyÄyÌyÂyÆyÎyÁyÉyÅyÍyûGîÞqÞs>r>q>stœ¯œoœïœœŸœaŽ×kÌÉÅÍÃËÇÈÄÂ5áNåþîŸÎÁÉÅÍÃË5åšq͹Ü…\K®ך»ˆ»˜»„»”»Œ»œ»‚»’»Š‹æb¸6\[îjîîZî:îzîîFî&îfîîVî6îvîîNî.î^î>îîAî!î®=×ëÈuâ:sݸ\®/×ëÏ âsC¹Xn7‚ÅæÆpc¹qÜDn*7›ÎÍàfrs¹yÜn!·ˆ[Â-å–q˹ÜJn·–ÛÈmâå6s[¸­Ün'·‹{ŒÛÍ=Î=Á=É=Å=Í=Ã=Ë=Ç=ϽȽĽÌ¸8.žK๠—Ä…¸d.…KåÒ¸t.ƒË䲸l.‡Ëåò¸|®€+䊸0WÌ•p¥\áʹ ®’«âª¹n/·ïÜ p¹W¹×¸×¹7¸7¹·¸·¹w¹÷¸¸¹O¸O¹Ï¸Ï¹/¹¯¸¯¹o¸o¹ï¸ï¹¸ÿðâ~æ~áê¸_¹ß¸ß¹?¸?¹Ã\ÏgÄ3æàäâåãçMàMäMâMæMá™ð¦ò¦ñ¦ófðfòæðLy xfÞo7Ļ»ʻƻλɻŻûǻÏ{À{È{Ä{Ì{Â{Ê{Æ{Î{Á{É{Å{Í{Ã{Ë{Ç{ÏûÀûÈûÄûÌûÂÓñ¾ò¾ñ¾ó~ð~ò†y(¾ßoÄ7æàäâæáåãçOàOäOâOæOá›ð§ò§ñ§ógðgògñgóçðçòçñçóMù øf|s¾!ß’oÅ·æ/â/æ/á/å/ã/ç¯à¯ä¯â£ù¾ ß–¿š¿†¿–¿Ž¿ž¿¿‘¿‰¿…¿•¿¿¿ƒ¿“¿‹¿›¿‡¿—¿¿Ÿ€ˆ˜„oÇ·ç;ðøÎ|¾+ßïÎ÷ä{ñ½ù¿çΗïÇ÷çòƒøÁü~(ËãGò£øÑü~,?ŽÏOà'ò“øÉü~*?ŸÎÏøÃŸÉÏâgósø¹ü<~>¿€_È/âóKø¥ü2~9¿‚_ɯâWókøµü:~#¿‰ßÌoá·òÛùüN~ÿ¿›œŠ†Žž‘‰™çƒ|ŸÆ§ó|&ŸÅçò…|æKøR¾œ¯à«øj¾†ßÃïå÷ñûùüAþÿÿÿ6ÿÿ.ÿÿ>ÿÿ1ÿ)ÿÿ9ÿ%ÿÿ5ÿ ÿ-ÿÿ=ÿÿ ÿ+ÿÿ;ÿÿ'˜o 0 FF F ÆÆ Æ Æ && & ¦LSÓ33³³ssæ •`±`‰`©`™`¥ÀF`+X-X#X'Ø(Ø$Ø"Ø*Ø&Ø!Ø)Ø%Ø-Ø#Ø+Ø'8(°Ø Ž'³ÀMà.ø=wž/·ÀWà'ðA‚`V)ˆD b±‚8A‚ Q$H¤ Ò‚LAÖþlAŽ W'È E‚bA© LP.¨T ªu‚A£ IÐ,h´ Ú‚NA·à„à”à´àŒàœà¼à’à²'À P@@²€"  hº€!` X¶€+à ø@( ĉ@*@rB ¨VÐ#èô ƒ‚«‚k‚ë‚‚›‚[‚Û‚»‚{‚û‚‡‚G‚Ç‚§‚g‚ç‚‚—‚W‚ׂw‚‚‚O‚Ï‚/à«à›à§`X` 4 GG G G ÇÇ Ç ' ' M„S…Ó„Ó…3„3…s„s…ó…¦Bs¡…p¡ÐRh%´...®¢…¶Â5µÂuÂõ ÂÂMÂÍÂ-­ÂmÂíÂÂÂ]ÂÝÂ=Âßs·W¸Ox@xPxHxXxDh'´: …®B7¡»ÐSè%ôú}…~Ba 0H, bÿð‡ Ã…ÂHa”0V'L&þõãÂTaš0]˜!Ìf s…ùÂBa‘°XX",– +…UÂja°VX'l6 ›„G…ÍÂa«°]Ø!ìv OO O O Ï Ï / / / ñB‚(…$!$¤ éB¦%d 9B®'ä B¡P$„…b¡D(Ê„ˆP.T•B•P-ÔµÂa¯°OØ/ ‡„W„W…ׅׄ·„·…w…÷„…„…O„O…Ï„¯„o„ï„ï…„…Ÿ…_…?„?…ÃB‘¡ÈHd,!)%+'š(š$š,š"2ÍÍÍÍÍÍ™ŠˆÌDæ" ÑB‘µh‘h©h™h¹h…h¥h•-ˆlD¿çÎV´Z´F´V´N´^´A´Q´I´Y´E´U´M´]´C´S´K´[´W´O´_t@tPtHtXtä¿È^ä r9‰œE."W‘›È]ä!òy‰¼E>"_‘ŸÈ_ ‰‚E!¢PV&ŠE‰bD±¢8Q‚(I”,J¥ŠÒD™¢,Q®(O”/*ŠŠD%¢RQ™¨BT)ªÕˆjEu¢zQƒ¨QÔ$:*jµˆZEm¢vQ‡¨SÔ%:&ê]]]]"œ/"ˆˆ"PDA"²ˆ"¢Šh"ºˆ!bŠX"¶ˆ#âŠx"H(‰`‘X$IE2"’‹"¥H%R‹4"­¨GÔ+êõ‹Dƒ¢!Ñ5ÑuÑMÑ-Ñ]Ñ}ÑÑCÑ#ÑcÑ3ÑsÑ Ñ+ÑkÑÑ[Ñ;Ñ{Ñ'Ñg‘NôUôMô]ôCôóÜ ‹P°lÁÆðx$< …ÇÁãá ðDx<6§ÂÓàéð x&< ž Ï÷Ï…çÁóaSxl›ÃðBØ ¶†Á‹á%ðRx¼^ ¯‚1° l ¯×Âëàõðx#¼ Þ oƒ·Ã;àð.x7¼Þ ïƒÀáCðaølÛð#ì;Ã.°+ì»Ã°'ì{Ã>°/ìûÃp ÃX8 Ž€#á(8Ž…ãàx8N„“àT8 N‡3á,8Îsá<¸.„‹àb¸.…Ëàr¸®„«àj¸®…ëàz¸n„›àf¸n…Ûàv¸î„ÁÝðqø|>Ÿ†ÏÀgásðyø|¾_†ãaL„A˜C0¦ÀT˜3`&Ì‚90æÁ|X a Ãâ?r'¥° F`9¬€•° VÃX ÷À½pÜÀƒð|¾ _ƒ¯Ã7à›ð-øöþ;ð]ø|~?„Áá'ð3ø9ü~ ¿‚_Ãïà÷ðGøüÖÁßàïðø'l(6‹GˆGŠG‰G‹ÇˆÇŠÇ‰'ˆ'Š'‰§ˆMÄSÅÓÅ3Ä3ųijÅsÄsÅóŦâb3±¹ØB¼Pl)¶[‹‰—Š—‰WˆWŠW‰1b±­xµxx­xx£x³x«x›x»x‡x§x—x¯xŸøØ^ì v;‰ÝÄ^bo±Ø_$‡Š±â0q„8R%ŽLjcÅqâDqª8Mœ.ÎgгĹâñ€xP<$¾*¾&¾.¾!¾)¾%¾-¾'~ ~$~ü‡ÿ‰ø©ø™ø¹øµø­øø½ø£ø‹X'þ*þ&6”IŒ%c$c%ã$$%“$S$&’©’i’é’’™’9’ùSɉ™Ä\b!Y(±–,’,‘,•,“¬’`$6’µ’õ’’Í’-’­’m’’]’=’½’}’’ƒ’C’Ã’#;‰½ÄIâ&q—xH<%^o‰ŸÄ_( ’KB$¡¬$L.‰DJ¢$1’XI¼$Q’$I–¤HR%i’LI–$G’+É“H %E’bI‰¤TR&©”TKj%u’zIƒ¤QÒ$i‘´JÚ%’NÉ1I·ä¸ä„ä¤ä”ä´äœä‚ä’ä²à$x AB’@Š„*¡IX¶„#áJx¡–H$R‰L‚Hä…D-ù=wI¤WÒ' J†$W$W%×$×%·$·%÷$÷%$%$%Ï$Ï%/%¯$¯%o%ïþð¿—||”|’|–|•|“|—ü” KPR©¡ÔH:R:J:F:V:N:A:Q:I:Y:Ej"*!%#+'/5•.ZHJ­¤ÖÒEÒ%Ò¥ÒeÒåÒÒ•ÒURéjéZézééFé&éVé6ééNé.éé^é>é~éé!©ÔAê)õ’zK}¥~Ri 4H, ‘†J±Ò0i„4R-‘ÆJã¤ñÒi¢4Iš*M“fH3¥YÒR€"EH1R‚”"eH%R…Ô µHÝý7 HriFZV¤éBº‘ãÈ ä$r 9œAÎ"çóÈä"r ¹ŒÁÿá' DDH„ BEha L„…°ÂExˆ!bD‚ ˆQ"*Dh^¤B® ב[Èmä.ryˆ"ŸÏÈWäòù‰ #rC¹‘ÜXþ{ÿ#ä#å£äcåå“ä“åSä&ò©òéòò™òÙò9ò¹òyòùrSù¹™Ü\n!_(·”[ýá·–/’/–/•/“/—¯¯”¯’£å¹ÜV¾Z¾F¾V¾N¾^¾A¾Q¾I¾Y¾E¾U¾M¾]¾C¾S¾K¾[¾G¾W¾O¾_~@~P~Hn'·—;ÊäÎrW¹›Ü]î!÷”{ɽå~ò y°è‡ƒpà0£0Çà Á0ŒÀ(ŒÁ8œ‚Ó0græÏÂ$œƒ)˜†ópfà"\‚Ëp®Â5¸7à&Ü‚ÛpîÂcðùðJx¼^¯…/‚×Áëá‹áKà ðFx¼Þoƒ·Ã—ÃWÀ;àð•ðnx|5¼Þ_ _‡o€À7Â7çìÿøVø6øøNø.ønøø |?üüü0üüü$üü4ü ü<ü"üü2ü |‚œù"H …üü:üüü6üü.üü>üü1ü ü)üü9üü%üü5ü ü=üü#üü3ü+üü;üü'|îÁ³ÑãÐ9è\ôôDt:]€ž†.D¡g g¢KгХè2t9r¢~~2~ ¾?? _ˆ/ÂOÇÏÀcûügâKð³ð¥ø2ül|9~.~v`'Îñ„e¬`kXÇ.œ p!.Ÿ—â2\Ž+p%®ÂÕ¸×â:\p#nÆ-¸·ã܉»p7îÁ½¸÷c7ö`/À>ìÏÙáÆ#xñžÀ!ÆQÃq<…§qÏàYœÄs8…çq/⥜ùËx¯â5¼Ž·ð6ÞÅÇðø*üB|5¾_‹¯Ã/Æ7àñKñËðMøf|+¾ ߎ_Ž_ïÀwâ»ð+ñÝøü*üj|/¾¿¿¿ß_ÀoÄoÂoÆoÁoÅoÃoÇïÀïÄïÂïÆïÁâ÷æìÿ>ü~üüAü!üaüüQü1üqü üIü)üiüüYü9üyüü%üeü 0Ä“œùø«økøëøø[øÛø»ø{øûøø‡øGøÇø'øgøçøøWø×ø7øwø÷øø¿ðñŸðŸñ_ñßð?ðÃxŸECÎ&%'çsÉÉyä|òdòry*y¹\D.&—g‘KÉeäÙä9ľÿåä¹äyÄAœ$D$‘‰BT¢¸H>) …¤ˆ“RJÊH9© •9ó«H5©!µ¤4’fÒBZI;é ¤‹t“ÒKÜÄK|ÄOÉ a$cd‚„H˜DIŒÄÉ$™& ’$)2OH†,’%²LÖÈ:Ù$[d›ì’cäùää r%¹Š\C®#×çìÿbòr¹‘¼ŒÜDn&·[Émävòrò r¹“ÜE^Iî&÷W‘W“{É}ä5äuäþœù¯'o 7’7‘7“··’·‘·“ww’w‘w“÷É{ÉûÈûÉÈɇȇÉGÈGÉÇÈÇÉ'È'ɧȧÉgÈçÉÈ—È—ÉW ˆ`B%ù:ù&ù6ùù.ùù>ùù1ù ùù9ùùùuÎþ¿!¿%¿#¿' "!#'ÿ ÿ$“=r6},}<=‡žKŸHÏ£çÓ'Ñ'Ó§Ð è…Ô>ÿbúLz }½”^FŸC/§Ï¥ê¤yT¤•©BUªQºh-¤E´˜–ÐRZFËi­¤5´–ÖÓÚH›i m¥m´ƒvÒÚGÝÔC½ÔGý4@‡é( Ò1:AC4L#4š³ŒÆé$¢Ót†&éMÑ4§ t‰.ÓUºF×éݤ[t›îÐ]zŒ>Ÿ¾ gþôJúBz ½–§/¢×Ñëé ôFú2z½™ÞJo£·Ó—ÓWÐ;èô.z7}½—ÞG_C_K_Gï§o Ð7Ò7ӷзҷÓwÐwÒwÑwÓ÷Ðé{éûéé‡è‡éGèGéÇèÇé'è§égèçèçéröÿý2ý }ˆBŠ(¡”~•~~ƒ~“~‹~›~‡~~Ÿþ€þˆþ˜þ„þŒþœþ‚þ’þ*gþ¯éoèïèïéèÑ?Ñ?ӿпҿѿӇé}Œq¶ñXãñÆ9ƹÆŒ'ççO2žl<ŸÀxªq¡q‘ñtãÆÅÆ3KËŒç—Ï5†ÓÈ3C4$C64Ãe…F‘Ql”¥F…QiTöýkŒZ£Þh0&£Ùh1Zv£Ãè2zŒ^£Ïè7܆Çð~cÈcƸ1a„r懘1iL cÆHsFÚ˜7ŒEcÉX6V5cÝØ06-cÛ8f<ßxq¥q•ñBãjããZã:ãzã%Æ ÆÆËŒ›Œ›[Œ[ÛŒÛ;Œ»Œ»{ŒW¯6î5î3þ¯ÿ¯ÿÀà?ðÿt ]tyóÃgõÉ@¶mɶͶUcÙö]ãÙ¶(”mßζJ4Û¾&–mŸ7™mïšÊ¶—$²í-3Ùö©Élûâ¹lû„t¶}á|¶=+“mw³í_–²íÊJ¶ýíj¶M­gÛŸndÛÉ­lûÝíl;¾›m¿z,Û¾ Û>tE¶í»*Û~ö…¬}ÕYg¿:Ûv]“mŸpm¶ý¬Ù?nâ_dâ¯3ñf{üzÿbÿo¶Ço0ñ7šø—šx³=þ2“‰¿ÙÄ›íñ[Lü­&þ6o¶Ço7ñ/7ñ¯0ñf{ü§‰¿ËÄ›íñWšø»Mü=&Þl¿Šµ¾§%þþ7¡À¹Ç Œ_‡²co/OÙ¿W Ö×áhp¬«ªÈî}NÁár®©.†ßTÖ”-¥Ï:eï8súší9_q©9ósž²—Ó×äÐlÏùªóˆGƒ GŒUI‘¬~9g„¢(ªÊþÙûŠÔB¥0§GWô3¢¡@)PeçÁÞ¢=ŠSwjÎ|Ö«:›Å±UlÛűSì»Å±WìûE·è½â€È4"úÅAqH ˆÃ∘»VTŒ‰qqRœ§Å„8#ΊIqNL‰iq^\3â"¿$.‹+⪸&®‹¢ì:Lõ®<—à]’‹)Î¥¹t—Ë•ï*pºŠ\Å®W©«ÌUîªpUºª\Õ®W­«ÎUïjp5ºš\Í®—Ïåw º†\׈kÔt¹Æ]®+슸¢®˜+îštM¹¦] ׌kÖ•t͹R®´kÞµàʸmÃ.ÍÁeé(äm‘£˜·~ç )GÑ!9S^Á°Ž®˜‘#Fþ{aóHKÙb½Ûꎺ«;ck>3˜vvÛx,?d}Ì+äýkäÌÞÞ”3föÊ'úzþ‡e¶®läćmeGÙUޱ¾"±X,KÅ2±\¬+Å*±:Ǿ¢SÌQ%QQµözH8fÓŽYGÒ1äqœ£Îá#¥ðïÛÑéÌcW¿C0wt¬p¯š’.eý%‡(›çØŒ£µ^K':»Ûqì:¶[Ž%Ç2{*¶Ílw,æh/ß±pÆÚ œfd³cˆc[­Ö¨”#ý¨,eñÉǯ9ÖÏ`^ó)45àð9ÊŒ2«$•9%¥¤•yeAÉ(‹Ê’²¬¬(«6[K¨3꬚TçÔ”šVçÕ5£.ªK겺¢®þ ~دºUêUTŸêWÕ!5 «#ê¨TÇÔquB ©a5¢FÕ˜W'Õ)uú_òö~Å­x¯2 ø¿2¨ )eXQF• 2¦Œ+JH +%ªÄ”¸2©L)ÓŠCrIN)_:¸VžÔ%uJ’ µHÍR¡$IR»T,‰R›Ô*I²T'uK=R¥Ô+õI%’*5Hý’[ª–<’W*c©s@òIUR½ä—¥RI“†¤€T#5JÃÒˆT.éÒ¨”j¥1i\j’&¤–"RTŠIqiRª8DÏÿ%tœÆû£Ž³ÊVg§³ËÙëìqv;ûŽ;bÜrkœÕnÊ1Éûªœ•V_Ør´ð§1Ž›pŒ;ÚœíΠcô€å{œîSÒäe˜ÿxåa{ºÿbz³žQÑä¬u6°¶ÑÙïs޳» gÐép8yÅZ½ÌQî¨pT:ªÕŽG­£ÎQÏpsŽGé¿);4§–§ š¨Iš¬)šªi𮹴|­@+ÔŠ´b­D+ÕÊ´r­B«Ôª´j­F«Õê´z­AkÔš´f­EkÕÚ´v­CëÔº´n­GëÕú´~Í­y4¯6 ù4¿6¨ imXÑFµ 6¦kZH k-ªÅ´¸6©MiÓZB›Ñfµ¤6§¥´´6¯-hmQ[Ò–µÓЯ;õ<]ÐE]ÒåýBS×t]wéùz^¨éÅz‰^ª—éåz…^©WéÕz^«×éõzƒÞ¨7éÍz‹Þª·éíz‡Þ©wéÝzÞ«÷éýº[÷è^}@÷é~}PÒú°>¢êA}L×'ôÖ#zTéq}RŸÒ§õ„>£ÏêI}NOéi}^_Ð3ú¢¾¤/ë+úª¾¦³&ä ‚ ’ ïÛ‚&è‚KÈ „B¡H(J„R¡L(*„J¡J¨j„Z¡N¨„F¡IhZ„V¡Mh:„N¡Kèz„^¡OèÜ‚Gð ‚Oð ƒÂ†…aT c¸0!„„°¢BLˆ “”0-$„aVH sBJH ó‚…%aYXV…5a]Ø6…-a[Øv…cB±Z¢–ªej¹Z¡VªUjµZ£Öªuj½Ú 6ªMj³Ú¢¶ªmj»Ú¡vª]j·Ú£öª}jø½b8Š•¥T)SÊ• ¥R©Rª•¥V©Sê•¥QiRš•¥UiSÚ•¥SéRº•¥Wé3³aÈÙ-÷ȽrŸÜoÖy5r­<.OÈ!¹B®”«äAyHÈÃòˆìrž,ʺì’óå¹P.’‹å¹T.“eY‘UY“ëåyJž–òŒ•cr\n”›äf¹En•Ûäv¹Cî”»d·ì‘½ò€ì“ýrP“ãΔ,ÉyAŽ:ëä´\nÕœÕr’ßÏñk˜]'¹Ü'åyyVžMõ.°sÐZvlÉÈXº$Ü®ÝÜÛ[ÏöM®î_¥åÈ„e•†»hüÄÊZütR]j®×¤i(Û®|ŦP^ŠÕ ³ìL›\›­ÝfÜ$úö1ÓÞýkshÿêšÜ¿ö,2*Ãna«dšUà[û}õ[]}ý CC¹T9ý&¿©“}ò¤?s ls xeBÚ>WI·„bkãéÕñêH¶ÇÍø+_ÉÞùËBjï˜f4&Mi§z›LŽ—RIoM1f}ÉÄœw`|v¬o÷¨ÕÎ †ÇNÜEƒìôȤf–ÒÊdÖrôœ—šß¿æù+ç='úº’Uó®EqÑ=›}®3-`s*™ L´äÈÄâÆÉûš©N“ïÕ?íMÏgÛ¹T;£$Â(êî™]brdZª`Òoqw2JËX>“W,ybµ–a¦¥åý»$³ãù¹Gâ¾dT´Énh-6tpD9§uµ¯|5òDß\bÈÔRm†aüw÷ qkŒî_Ãû×fæ}¡…­è)}o9ºÆÆì0KjcRXä{M²ž…©bÓsœ¢ ã©™ÙC«©­­ÑyÓ>«ø®ÒîãUbÖÓ§°±cìO«d’šö,e‚l¦/Ñ:œY ÍœZÒÿL˜Ïy=r_wòd…M{âÖ‰»&÷ÂÁ5Ó½§Þ{×< &»Ðzn¿ßŠ.ëã¹Åä#g]G8:qº}N@ÏjÅì‰ûTbžÙX†É©1lÓÛgj6=Ï·R9Ñ×ÄÆGL }ãIÓ~Öæ6I±HÄäí²iß»|4e³þ “·ÎPf.Àí+Æ4ÐÇéÙ>$Çxò`E3£/8ØëÍ}®ž·Vâægž—15^6ÓʬIKîl­­Öewk#­ŒßoÍúòH¿©«‚ɽC¶Eñ—Ü.‹s¾…ùá¡É¤sc®¿q¸x{¿?ef™’ñ”w×1ii1eŸ¶Å»u“¦.9§Euéèþuedo¯òglGË~œ£'îÙHÏàÁ‘ÌK¦|6ŸWsäædþ4Ì51ÂÆÔg¼ÃÞ#V8 žáäÜ·‡ôØéƵï´Xúbã»V’3Ë¡ïàŒ£ ‚K¶ŸÝb¼xïU̶VG²X·µF?§h`0Ͱs=1¦•¦Åüx_ ŒkHŽúç[½‡×? ¥lü$§yÆÃ¢zº„>æV‚^]VV`Ͼ ¿%éØÄæv3‹vå99e"ÝÆtëÈ‘KÜŠ‰;‡)(´UkÛ>‡Gaþ\±rŒÛ]AMÚpC‰ÆU§§°?Ïä­¨ÿØbž·0šÇô'õÔ®'—ºB~+Ru‡B»M¦Ï%7݃ÌC|ƒy£Êîè°{½Áæá' ÀÖÍ0®£sí¶ü»Åí¢•i:¼™;~!qânj7IggTeòš7{§l1ÏËtWÜoŸë; 6Ú¨^d¬ú"á7¬UJy¿ÊëÏZŠYž´8tÚSó(>;ÄøÌušÌ¸<ÁhõZÙYòØg-Ûv†õ£…àŽ\Á¢CQ¼ê_®P´žM½Š­S<ÍŸqÝ2dåÑ®í”oÛ”O†Y@}$î><§cãpßQPzä1' =¼m8Å×Vפ“œ§ù~‰ÙwA:Ͳƒi®0½Áª‘9SÆ›}åVÝ¡²ñVÆŠyÌHåäúîaÜÎ0©¥í8ÇbÐàìV´Yäd´“ÛÓ˜)…!f#åëË;Ë™Bwù¢o¡kfÑöö|°·!²ŸM–Øê¹–[#,Š\ÎÚVëtITg~6¯µe@l‰Yt`¾$¹æMõ«†È3­sŒqèÞšà–Rç³Sìéc³·ûÌCV 3›ñZßòò6é 1Ê×£6_o^mc\Ô²ì2šæ6ïãzХ׿=ÉùÌ›ö¯øK™ìÊ,ùùy¬éRÌ>õ&'ú¡÷yRÎy :Þ>§®Tôo2êóƒq߀Ååxï‹ÒüYe¯×p>ƒfe²n;{–Z~ºÊ4%1ÿ/_Þ³Á§:ɲdÞzÃêкwð4Õò>hjÆ1f3ÛQ§Õa6²¾&æS Á~vWmæÓ&±w¢{ªsäÙÎÅçTU‰ñ™_G˜'¬Yy?Èlaik7vr¤ghƒç§0÷^f™IñЖ#Õ\8ÆæÏè{Âé¡ 8ofÔêC_• ÜFâÜCõS|38¨¦í­ŸÁéx‘×[“Ì“–d—ÕSÆ+Æ«%j˜¶Sá¦G¨v'­UËÍ86ž3£z¥‚ûo(VÎ-f¡_^œrOp+‹óœïâÜozõ”?4Ëóàª-w‡¢ó½uñÚó6]´¼¡Âª6BÜÏÓ,‹Œ²‘J&—Ò]›Å²¨á²âÜW¢Lž]ak]Fk×o¾÷lžœc4¸, :{óÈþ5ÌæÃc~çi³Ž»§y£ŒGŲñê-³©Òdr.¹e{Ã<É)Lp«í¶hL‡Oލcq¦™SëcñH0í»Ç6b´’yËàoy“óaWo-²§ÌÌÜk[£q³0Ða³v-÷xŽÙ0ãCåâ†óFGÃL»]‡2ñtŽÇLs͵OqšzÃ;2÷ÿ„íëG·%Cózöõ4e‚¬šžÈð¼ï2+;5GóÃ[Í Û”“uXÍfZÿ”%ó™M⽕Èl¬€á ÷¿ гì/aë·íÈ©f-2;5Ïdº²¼¼Ñœ) q."Ë…‰“#ó™U•óÚTáûLŒÎLíĘM†y¼‹ìt ç›V¿ö÷mZÞŸì²ê•ƽwh4Ç»;wã3jå¼ïÎcúI±•zÍz¼Ý–ev™Œ‹s$²í;t>¨[–Ü#ž©¬zÿ²Ñ#Þ°UÐKŠI­kb†Çf7lóžÚ@€sZ¿^`Re^²)e¶°¬L<ƒ¯Ak©h¬áˆÚµ‹{v†yÈç=Îö7šm´v‰î¥vk9WžÍà\3óÜ*ß"›éOŸq¶N›ïÀ¶8-ZÆ›#ñ£F6ùŸŠnš~µ–Hsß,Ûiá’?”íV™ÌL¤ý; ßÈ4¾mJdË/xs=Ì,­õˆ¯žñíƒ=iÖ“Ï£æ|²t»å´™!±6Á´×Þ¿ïæU§Ö"¥kǬ(œaþ´Ì˜1¦)X¶±d«G[­Õ‡gÍû…oY‡E•3*GyNi³j™)&ÛöÞ2¾Wýþo9¸¼ÆæŠ™÷·ö5¬÷æDó&ïJž›ü˃fnžd`€gšÊ‘bw §¤l»ƒï°ÆãM‚E4¯ít4ØWh«°´•BY[WG¼A™5#õ2‹ÍÛCµÜº·M-ï.íJGœ¦»ù?ÓšÂôÚb×IólÞcžŸâ¦½Ö™q"cI¯ÍÌ+Þ}knn#1uŠSýéaxàè~Á”Øö`|g„Ñ2Äžuž%–çvr¢þ ‡ùÊ4Û}3æˆ 2í¯GJ&wLK4íO·ìµžÑ½xèM{•)›˜N·æW¸ßÅÏ-ìwf¨`¬"Zi‹%‘Öí$“¤“EFÉV¥ÏXqjõQ|èá:‰Y9[âÏsüºÉ-¸0¾cbw,žêú’9úœZ ï·QÖ»¾YÍyy„3«j‹£æØz“Ÿ—ã“n+"Z•ob´Ú×Ê52ô²1:0Â<*ÔëZÙfO³kË3.O†ÙöîJ×iíÀdïŒ{V÷«s¦Ñ9³>­Êy.Ń¢íM·´ÿk¯1dûQ}ïÉ‚jÖ4ÝG¾EYèfñµjdùÈ· åÜV.³å.ëkDð ÞÌŽÛÞ„M_OYçÂ0×ñÊ@™Å–ÂÙ¶ÒŠ€y±Îï´í¤Ö}â÷_L2¡ìw+Êù‡V— ¸µt1»Xî÷¬.Oµ¨rO¦ï,²(%úõBpT·­•0cqÓT¹-6¶"æ«}¶|WÎÖצjÂaÆé€UmT±§•™]KÂí×s„¥§|Øâ;Ï£<9íÃðoÁm‡jÁVËȇ(«­í>ô;¸“à>ôˬÞõ‚ðjÎé«Ü´‰!›½÷­ìØ*³çÖ»muŒG_NÍÆW°Í¬àk{5Ì⺹Ì4C[33–ú™¶ëÍÛÌÂ"9gÿIÿ:s5CýËQ ³bËÆùleÍf)S3k3 “²¾3üEA³U—ÎÛÎ_»¹§·¾SË{”鋱êþ¥d'£p…G–±Q›jxߦEår8ánaÔå[¹™Prü:fZÏRÞoÛlUÐp_‹Ei-[9¸0ÂìFžlVÛdrPèaën±Y™´ÈŒ ©‰›î"l‡MfÃý#¿Áø pŸj÷0+flnO8m£¡éœ Ua:,â"8ÕhbŠÍˆ1k“asdŒKf–{t‰UîòúYNñ1ÖŸN©luu©Ï‰ÅÌ:e€g—Q[Õœi ¶Û/[‰H££d¬eÛ8£YMl÷N ²õ*¦ "ÁCUpùøF¤Ø:ûd˜}tXñ¯šÅˆ¦xÓf†ï6Æh›4uT1>k‹=í™æxßN¿¥ë^&Ç>ÓVÐ>>búLa$Á42¾°ã™`²ÔŽˆP œ;WOín§Åg ãm ùߤ]wâ<Óý-dÓ;TBzB'ôjJ½÷ú×ßïzÐ*²±!û|>g“FÍܹ3IÞ®ô÷uÕ—úzâHúCÚ¾žòKÌ$-\3j“*Gk2GkAF·ÐW/h…Õ&º«ðmÒFäkÔâ›7÷5æ)ðIÄ*Ĩǜ½/½5_Škh©ÛjvĘyÞçK¹Æ»aÅ:Ä,5‚ÖÞ.½øö{Óà3*òƦºvŒù4öÉ&Ü.µ}E1ÝÏ)³ ¬G^|´$íç"—þ¾N†¯ÇÛõ;´Ò£±…Øš‘«ª¾ÐŠÊåX·ÇGŽîL@*+|¾Æ˜­Nœý©˜®†qÇ¡±sæ‡ß !,‹6Â~DÞ—Äèg®}ÍEyݹIòº÷Ð~d?Vå>°h®úÄâ7ÑŽÝß~÷„ÙHŸþéä³ÇÔƒŸtyl?ù¼†þÏÃO¹Y'ÆsœøbÿD#—PHvkÑWåŠ7¼~ßZZ;¶Œ_‰‘ö;ÔæØ1ÍœsÛ¼‚/ס`À%Á‹§^¹‡þåZÒüçRÄ `üQ†Ö”F5/ÊòÙÝú-é1.T>àSxÄGqÎsûi!Å5”+ŽÍ¹3ƒ6®ÀFül)¦ÿ\[¾KfÛ>äØÄh³<—.Ó'ôgoZ¡½ÏçC"öÖ B~!-~%ñCàÌmç¹IOuž"˜ó²ìÈ YÑѺ¶—f“ûº•f2î–fË/KßÙÅÓè½…ø_ŽÙ·|ÐðÐ7,Êç\ŸÒ¢ŠÜõó÷õ/!bßC_c_ï¼ð¿ÿtY»Û¦¥Y‘¨+VLBO&…¿˜üYa§’ 'žèà{‘h¬c®ºöpÿûšA°táŠÞ¼/ªˆ™VŒ+Øf’Ûà¥ýŸ:l¯v½…½_W¬%ü½6ÈbØvvJ3ó„b ¿Ëæ&cÂbI1âa)Ïmxåm ð<Ã--÷Õýõ®´=æ1Ü—Ó,§ÌçƒKÙÒ”kæ[èaî(¯Yk;U­&ç5>c ïùßÊË«˜S”ƒõ¥ý¿¹|lÈŸ Ùb ½W„œ±Ïn5Vµ²³CùôÑÊêæ‰Šç·‰­s³sŽ¿fn.Ñ ì¿ 8]© #øÂ<=lgG×D…1MZµ²µÃ#|?8£ö’Lÿ>öò—ñàž<ð;»“ýŸæB¬õ ziì}¯ÓÐõS¤ø¿d%ˆO%ÌÅßSøÏÓßóD•3>Ö*äºÃ?‰¢ÎeÀZi€EšÉV²Mlb]S¡{œ{fŠyí>|úŒR]³Ëxgm$Ý%íܦ.&k²fˤc­>?åyö–® ÄϨïÖäÄq¤ŠÈp`‚,¦»l°NŽy qãyé®ÏIZ™çö|{ø†¹<9¿#,·ycüà€Î>£ÿ ².ÎÞ¤ŽÛ»k*;勞®Ë‡Ÿ]`É1r¨»þMæÞ躀DÏÔ&KðqÞtƒóLáÛmÜч6$†À¶À­‰a}PBÆ”YÞ’OÇÈ#Ê±×Ø¡Ó\xËpï2¾] |O®\’—†|/t;‘wާ;ª*èõRȆåSIn î±É ³õv±bÕ\ëºn$åLQÁn²ar1Ó˜¼C: ­î Qñ”üèpíwÅ“N‚eêÐnÂy›inïK³©›jsaŒÙ#ç ª5Œß\Šrúù¥¹Î—#æ¯{¬ý³ô|ºÏ÷ ý¼/®~ð» ñ@ƒõ?ñíHà#Ñ"¸‘äŸ[LF××}ëT®”1‹9HkAͳÐÜȾ¨u+rŸâô­Î¡÷¹0ÆGŽj3þ:tŽûg¡ˆMlñÙôÿü°éœhä8:\ô.(R'°¨Iww`%øÎráÍÉ}?ƒ{7X†mvê ÔÆ'F]‚•A°Ð°²Ìåˆñb)TWŒþF5 ‡b5þ|Å.$˽¶&uEýc‡ÏB܆ïTYÃŒVRqƒ™aá­v ª«'yF½Í|`ÌÖW6…_bv^ûPä…EBó½BÊø8çØ…¤˜WŒkl­÷ÚÓŠZ<¬Iús³œË°´Ã¶;ÙfZëúþg ÿ^)ÕÞ‚3fÏJÂ̳â2a ­›¥;ã.Ækï„‘Ïï¶4fÃAªÀZ ß!…!tŸ~ØÊíÜ ¨©g©•6üðDúù,¹žÏÜðð e)…iåÌæIqú"½iRÚá o!­lÃr<ó‡(ÅÔªFô0rk5U£ÎF¬…{ÂÖ6Fæ÷tÜsǰ^gž²ñˆ†öîíxšÖÎã-½¦îù’ËYãÝL‹ŸBÓÐÈ/ýK+BòeZ¹gÐ +4çäS×Ð¥ŸôùQÛg¸9È ¯tðI?ß«Õ.‡cæÓû‚,i!cºœƒb°†Y>qìÙ¢ .£¯÷–jSyIñŠõpF¾0’Òÿ˜7._7?ãØ8§Ö;kÖžÁ¡Í‰iœòüÂH=ŠØ"ŸÇVÝYVÍLuf„‹+î‘Å?‚èN¤-ñø\‹<çZª8ŸgȧŸë)͹±²¡ˆ¾ÓîQûŬfüiÀW7¸Ï´ÖÔÀ ÐyYàs+ÆÒ¦×&Bô`ñ;—VÎx碖ƒG ·ä¢b#°ð°v鉗ùá› SŸ“Ikáã¹ å… 5©è;„NÙÂ{윌>‘=+>qE{¬þy2Û·=—²ö„©j£–w&;4ìjÔbë°Ë„y¹‘?ãï+èÔ̆¡™K Ì»Tñ%Ƴ?c#–Ò+ïäzù‚dG¾ZÂoŒšî)1Ó$òö’-x× ÷8òË“Déò´{/ > hœ©{Äìàï¿|ú&¶Â–<¿”Œ¹+HûŸIF{w²Å£¼c%½³Yø±/ÇÆü )ŒÀHS7:tØù¼eL‚'`£Œ<¿gñ{ø‡OðŠÜwB^·Å8:Î|0%;ŠQ7Xœá‘¸ÌÙë‘ù£ö·É™"CÀ'8`8œoÝ«¬dYÊ ÌµkŠG&Ý}„Û/é»}`oó+Ä8ö[ZüÞÆï‚ô?y¦ÈçH¼°¸ÑøSÙp”X¼œø6á=Ý<Æôs”Fó>·p·Ó_㸽†¾ƒí|¯ÁÙÄD³Ä@ÐÃø4÷ó¨–™çóIþv »œòŠñ™ÂoÏ4ÖL÷‚Z|ʳ;ÒÝÿyÉ{”äg:O«2Lë¬(­YÛú¹’ùÉâä=³ûùö¼Ú)DÈ4k/â5N­ólAås· ógPмÁ½K¯F„¾±Âƒ|Œü-Ö®€/[¿ØIsUò¹äa;J˜hÈû¹VQ„9„VÛOè㓼Ù8 ­Ø];¦ÏÒœ:¥'&Ó~àÜþX~rÅ„ýâÎgv²þ¼Ä·&|!+Å÷Â#xTv1Wn‰ë²ž>õÙÄ­`~±í%‹, +·Û|¦Ñ„,i0²­øÀ8!ç1jbfOi}¼ûE²Ü6 :k’4f’Þ“yg‹¸"‹ü/ΣÆié–wÂÂ\Ì̹¦¥3ï êäøÕ ¢7mž+v%yz›˜êÀ{ d>ËëÈùÞ$SJÏna?cl#5ÐNƒ­äÔHæR*á¾hy}\CïK<'©[¿ª½ÈOìì‡H? ðYó#3Veõ“ffkœ] ݯ8MX#ïÙ fY†ž‡?‡JlÎ2%¹BƒrÊD:².žv"´x·2ïm7,ÌRÅ%)¦ÌOÒ@ß«ÆZÃevŸÍ/>ù ÝùÐ+PyãÛ+ÙkþðXÅÆ/¡œ¾©f<Ãxòò.YŠþ³ö ÐÐé~@k)ÎO×C/qÓ„ZòÕ†‚Q_ûñöTó<É™Àl1´œh‡&gˆ5‡°^N5ªÓL£ÜK£÷™À‚ç½ôÒd÷<8*E£jF74c×Z|n;–2ÚMºûJŸOs•é0l^äÞK¬uMÙr€' ‹:÷™¾P´/A‚º×¸Aæ)tnûÅ©V#Ë.ÿ>¿8úõ“ýöZ>úÖP®æ’ü*+v€•‚N=e¾ˆêðaú6å—‚= £·2û_ zŒ0ô;Ó£¥ŠÒLX%*†#Œc²Ìr× %o<º¸àsnü»gýlã“TÔØ«–©ïôg*|ß vù8òÂKZ«“n<Õ­Rí¿Èûxkw”c[i 7ÌãOùºs özŽNY[…9Âí"#UÔœN`…2ÃÀ3±°t¦“«€­;dÞ»,ëÜ\;»Ú ½"~3¯Lê!Ï.u«!?·Ò]5‘­¤@ý=Þs‡ï5v’íó\`}&羺ÌÔêœYÀâ¼äsÁø3é¶¡E£`7ÇÒªZ¨|¢b<7ÚxÒ™u{⛄ž4µ¦Èf¯tf®.²t‚e$.GÿÓBr÷Ç{ýÁø~qº¢¶ò ,½Ø+*Ÿ­ Ø¿Á߇LâŒÆºa•³…A·b1#­éÇÉÒ§Åá_ó©LšctÎYëO©­ˆâZ4á⊠®TÕÆ#Œ,Îñô¶ôÌDù:•ŸrÙ mV;Oçš;ñÜèqÆQS%´½ø«Óøgö02=|+ýB3_|Vd!]–Õ Ë#ôÓ«Må(Hïî UàËö»ðêÛŸlßû*6y_Òw XxÀ_RºÊ-b\BÑ}·˶¢o@èåÒ>ìùè:Þ[òÃj?ûBló(Z;㵋XÒY¹ÓO3KCß*FKÚSÐPÊþ%-^ÏÐû÷tÏ÷çÀ ŽÚcn¿"8OVÉo®`g‹ôó¾Û!¯‹Ò|ç3Ù$ [èa¹Þ CÖu{V²ËùSï%jÂgÛkvUË×]y¹Ÿ‡<ͪ“&â™ìðZ+›òï®w\þ]§êùá²ŒŠ­v´¿°¿²v?Vì¥Ý_{†þ–F`mÄ·ÜÔ¦éêþøVÚSÌðšŠlãØ8êíñœ|"ǹjäÿõôUùÊ3–{bèÈ®˜ï”Âý¿^¤â£*¸ .ÌòŒ†ŠlÍ”¼ø:ùÅSƒìž2c×+–ËdBŸ°¨Y1c6ÒguõCÝ*º:w°ooNí®@xCþ¿G8Î?ØØ“Ùyï@¨Rûà'ÍÈÓ0üŸž`&Ÿºçã¶)ò‘CO÷tfM;+öòÙ™Äa6“¯&Iú—7:å.Þ<äzlýÃi‚;†Êwní !Oúûúví~/ñ™àÔ·9ß «Å&iyW|öZ3¾ƒm<`ÑÖc})Z±ÎÖ€í·„,©¥úÎæ#²[˧BFj!œ`£<½gÌb¶¬¤ð¢¼æLŽdZò?—î½Gõ#š¬Â+IéÂc”f®ÄÚlÂû*ŠjÓ–æü7,yã>â° n©³fbi'q£ÿºùû‰ò§NŽrÎcO\§’°<‘l!B\/Îsüâìò•ày؃€7»*OÞÕÅñ&䨅ÜodÏdâˆYø’UŽXûmjÑ®ÙαªJqð©¼Õ©Z§z%D=’Ä׿8Ÿü¶vÍÉÚç>G¤Åïë^šî6.øìx8lcdð”—[îš"ef6ïÛ¨6õòÜ]…Sc=»ÿ[e’Àîâ»8Tq·´X¶”b3Ï“äuwwwwwwwwwŸ›fÏžmK˲ïwç»373Ì0=9‘G~$'QÈXÿËð˜ªÔ¬'M-ªÔ2áÞ·ª½÷¦(U³ØùðlÓºýäC^‡¦k|]›öJfÕ³&å„Ü.í“X5Gl_æÛ†¯,oX¢ =j¾­Æxz3dš,jL9&ýËg= V|ƒzw«¦FAÒ*Ú庶*Š…{òü{ ~²:žy®RÈ”›|ÛŽžÑŠjg`|Xû}jDa`’Œ«_v¨9vk<2¤Ùgâ÷˜³°›r³½wN‡¥éøn§M¦—“çͪ'öù}- =]Þ…•Ñ4_o•*kaßw&‘«^×nÅ×:[óD™ÒўŖ”Œl£FJÏTEæÔ&¬ËØS¤?/ÅJ/š’Ѻ\µ*Ú¿ÝRÑÈ™æ‡ÉÍÛ¨GW6’eð°D?L°½n-1Uiæ½)¡íjÅ•îP›¦W ׇúR°z[|‡‚9QÕfµùE³ŽU„Ãä–%©ïÞ¡ÔšC‹ž5âÕÅyg þ”ÕâQ…RMÌ¥ÌÏ)-Ù9P05oΪxpãÒR”FËYZÊìSùZÏk&V'wÏ»»ýZN7 zÃՊ‘žºXÛÀLçÒÄ´¦ÂžÉ’øÙæIù—²Œ%I¶gVIsXýÒ§fÞÿÂpÁÓ]¥úÛe`QDÛÒü$*…’,añ@sh¨r6K!¬u|IINƒæÑx‚þ-iè;è3¶ÿ{ŧè1)Ófb·UkBAs‰¦GÍ_—S“óõkæU\i²»ÛLëÔ“v_×xÒ;¥ov§D u¦¥Èî›ÓÏJ3X©ˆªé32¹#ñ»QöÛž„’ݧ Ú›LŒq´U¯±J0’ᜎ¬[ÃLôÎÎh U"=ë°•´³Ð®5=ö‰ªN±u~M=©Þ ¥]­v'ÐÛ¡5ȦGZü¯<¢x‰t…<¾uî­OS¯0Ôí9{Í'öŒÞ…'Ã~?wÆØrJS¯LËJ¿g6~¢Áw²*{ê Ww7÷O% üp‡eβÜÙíL¢z^g¥Bðö¾Ó­ýÛMž×¸ã;õ4Òon5Ç=ÛmhP¾±BЭé“mSï걃>¹þ?-aOs’%*Ö#XV¶Ù´as Y¶(Òú[SßO.#ZÏæVyµm…ÚnG×É—šïŸTµ£šö‹ñÓLΕÅÏD5øÛ鎹ªTá<]®PÔÜ®õmTy{Žø—†Ñ`¤AËkªüªžsªKãMÞpUg¿Ë3í™éߘ6FŠhÉpÌxõ(ˆžCÐð J•}Þ¡ñ`²½ÖÌj*g)9(ŸÏSœ­õ*«VØ^Ò6hÈÆV]Çår¶Í©ö÷Œ9Õ8Kär̘›wº(4¥í×Ý¿OÉ_M¸]!ÞNÕoV—_!ÖöØö€·»p¡Î]¡mgíUv{«É¿Üø j•ÞDתÌþ¢KÛ‡=ÊŽV*ŠšödÑRm4t·Y[ÁæUš^µ®^ç9Iv-q}I¨QfÆÛRZñ§ôSÔÞp€;ú4>Tˆ³yÝæó ~BÔ\Ý+<¨SpwÏû#¶ÉŽ>§ÍˆSX’ÍÌïÙ¦èQ¿*—š£c¬µZÓiwh,†‚š;Ù¶•hùо_íI9³]kÞœ\ªt}»éa7˜ó ÿù׈„ë Õèß`èv®¢Y“sɽ°ŽâÔ2¨gÔ¨ø3˜á4Œ¥ûD·Ü ø]°ï„ʃº1Ô§ñØâlQ²Ñ¸®ï¢u1M‹Ùuœ-²1Áö¯qÊÏØ¾ûJ­î ªÁYНEí;yßmi[ Ö¶ÐøÙ.JÒ•¸4EŠuÿ-ö’ƒ>“ئh³©s£ÂIhL™¢u¡BI’|F’÷e* ÈYR²@¥Ó†.¯ÒßÃÃlÙcТO[Œé¬$ì-kì­ϸ mÕº:­GZ°Ž¯Î³B‘u®‘çf¤Lg‚d±4Ö¢Q$+Cư%c»K–åUñ†ã ÏúKW•–†VVížÈÓ~ÐDÂlìñ»Ç þ9”ätÇzbËá/å¥EàFËTlBc45Ñ/hx‘¡4¾töhOZ{éÒ¿Ö¦áN0vŽ$P³Ü¤I]8§¿Â´Ôõ«â–,Cï; |­Z•ç1¤®Ä;©´!_aXeÒ>@Òåï®ÐóîM‹oŽùéØäp¡§pïížc#³;ä¸3¡?ïÞsŸâ§–víl÷ǪLiíH‰ŠÆ6ãY ­IacßÒö™Ø²5ÊÏy÷(zïšÎJÒ9ãM‹ÛªÞt&YŽ¡,°XW´?7Ùª9°y¬Ô›jU=ZEFfª&Ëý-I}ŒNÛ4boQõ]‘Þ¹šêš1­íx`"à5ekco»¢kŽaŸj:êÿ!%W…A{ú/ýi¢¬:¥c£Ú^,ëÙ9ôÿýC ¡VñdnU®h›ª×›„칆õ(69µ ä5jHeí*+0aÒh%AÛ³ÔÛ[´/WÞ»”ä˶ïÛû„{›´dè߬ÜõR¢Ð´M(–qEe_iK‰vÇ4†´«_+Öy·áþÒ`Ît(%Ó·ŠÒ»ê¬,Ÿ–½VÓÌ5Ú¯^p-N.dOÏ(ÏYˆ*Yp¨¿ˆBõq£®´Ë?ßk5z›‹Öe\GJ-ýÎBŠ÷4kPXRšÖ ß”€¶%Ó+Þ¦¤j7þ¯Q#/2ä 2Éâ¸ã<3øµÃ¨X÷í•ÿ[%/‰SCŠ«ë:‹YKËÒ:efë _cÛ€Š´Ý®ú´y½æ¹‘ñØþ¡)^Àü``~ÐI xÍB—BÂF£^“ö›ÊLä'Ø’Šº»S|ÀŠm)k mt*<]pZB]j5´ä+9¬Ð¶£ö¿ÎÇÄâÔYgŒ¡8E‡5%ˆámîòmÔ5¦~Ûææ÷Ù“Âá5ó ­3¶V«Æ– Ã+ÙmXÆ`üó5¢Ø"cœÛ×È%ÎT&µ°'›-Miä©r’9gz(±trGÚVE ÍóÕ¦-?sSöÓÌ)¹jÖ3 Ù* Ìױ㴞ŸÅkåÒÌ=w¶¿`'vü+ùmvG ‹Ðž±ýœUë;úZ2FtÙ1=Iˆ”—6ߟez“½Žñż¾Á>_«9l¾»%áéðºóÌ}ë¶&éJ½Fù±5$³#Cn(ªÑª{]»ÊRK0cœ3¹ÖÊ‚ÁÁ°Í£c7KÜ{ÓZ×x€È}wƈi㪕ÁÚ žM¥ÒÌü5¢öè|bØÿßâWžæ…½ö4ë¡~¢<ÞÀHùrñR›VÏ&Ô›¾u¼­,öAœòR–áÛ´ ÝS¿=švMw(!ör¬c·ÿÿ^iNOމöhFþ½óxqäI&{KAB~²myr¼¿3××ÎÿC;sðeÀ@Ø€AË\e/<ëB]k‹×¨7›0ãå7Ì' ÅØš±T‡s9áùVý¿Õ´ðýimÓpH÷Ö£kårÓò1ÖQØÙ&çÓ›!WÑ»É_€{9fÌÙ‘Qv6ÿ+«°mÍSlJ§©Žá™ÉÛ3î¾lU5êøãÓ£)SÞ¸+­Uµ® ;ö–Í·j3+²’”ïr:³H6©‚jÈ!5P ¹dÉ#IÔC4Bl"›É²•l#ÛI>)  „F I±‚ v;8À ;I3´@+´A;t@'ì"Ť JH))#Ýнà7x œT/ø ’ŒÀ(øa7 ÀŒÃLÂaf`öT‘0D`¢01¨& €PC8PKCá08Ž€#á(8Žcá88N€á$8NSá4¨#õät8È™p4’&r6XÈ9p.œçÃ`%6r!؉ƒ8I3¹.†ÒJÚH;¹.…Ë ƒ\WÀ•ÐI®‚«á¸®ƒëáè"ÝäFè!½¤Ü7Ã-p+Ü·C? ƒä"wÂ]0L\än¸î…ûà~x7ñ‡ÀK|d„< À£0JƒÇÁOž€'á)§áxÆÈsð<¼/ÂKð2¼¯Â8y &Èëð¼ oÁÛð¼ ïÁ$™"ïÃ$ÂG0MfÈÇ0K>ù>ƒ0‰9ò9DÉ0ObäKø ¾†oà[X ‹ä;ø–Èð#üËägX!¿À¯ðü@ͦBý réßðTa5Ö`-n uX ˜G± -¸‘Zцvt ›±[qmÃvÜL·ÐìÄ.ìÆìÅ­tu¡·SzчùtGÑÃqœÀJè$R:…ŒqgpCÆBÁ9ŒbÇ.à ˆÈQ ÄCðP< wÒÃq=Ä£ðh<Åãðx,¦%ô<KéIx2–ÑrZA+é)x*ž†§ãnº‡VÑ3°šž‰5´–ž…gã9x.ž‡u´žž`½/‹±‘^‚—âex9^WâUx5^ƒ×âuØD-ôz¼oÄ›ðf¼­ôV¼ oÇ;ðN¼ ïÆ{ð^¼ïÇðA|ÆGðQ| môq|ŸÄ§ði|ŸÅçÐNôy|ôE| _Æfú ¾Š¯áëø¾‰oa m¥oc}ßÅ÷ð}ü?Äðcl§Ÿà§øvÐÏñ ü;éWø5~ƒßâwø=þ€?âOø3þ‚¿âoø;þâ_ø7þƒ]´›VñjÞCkx-ï¥}´ŸÖñzÞÀy·ð:H­|ˆÚø0µswòfÞÂ[¹‹¶ñvÞÁ;yïæ=¼—»¸›{¸—ûøå~àc|œOðI>Ń|šÏðYânê¡aá^:Ç£ÜGGè<¥1¾À#çÜOTð1*ù8 ‡ðCùa|’ΧhNÓ#ø =’Åæ³ô¢Çòãøñü~"Ó=‰ÏÑ(§'óSø©¿€_È/âóšÅ.áÙ,‡å²Kùeür~¿’_Å7°ûš0Â(û†Ë¿ãßóøœ±Böÿ™±_ø¯ü7þ;ÿƒÿÉÿâóx•¨;X¨;YØÅêEƒhMÂ"¬¢˜Ù„]8D sŠfÑ"JY«hí¢CtŠ.Ñ-zD¯p‰2VÎÜÂ#¼Â'*؈•Ì/bLŒ‹ 1)¦DPL‹1+B","bNDżˆ‰BHqˆ8T&v³=ìpq„¨bGŠjv”¨aG‹cıâ8q¼8Aœ(jY;IÔ³“EkdMìqª8Mœ.,ÌÊÎgгÄÙâq®°±óÄùâq¡¸H\,.—ŠËÄåâ agv¥¸J\-®׊넓5³ëÅ âFq“¸YÜ"n·‰ÛÅâNq—¸[Ü#î÷‰ûÅâAÑ‹GÄ£â1ñ¸heOˆ'ÅS¢=-žÏŠvöœx^¼ ^/‰—Å+¢ƒu²WÅkâuÑÅÞoŠ·ÄÛâñ®èfï‰÷ÅâCñ‘øX|">Ÿ‰ÏÅâKñ•øZ|#¾߉ïÅâGñ“øYü"~¿‰ßÅ¢‡õ²?Å_¢ý-þU²ŸUËY+ëd½ll ±F9Ìš¤‹¹™EZ¥MÚ¥Cz˜S6ËÙ*Ûd»ì^Ö)»d·ì‘½Ò%ÝÒ#½Ò'G¤°Qé—9&Çå„e~6)§d€å´œ‘clV†dXF䜌Êy9Î&XL.ÈI%—BJyˆ*³ “Ë'ä“ò)ù´|F>+Ÿ“ÏËä‹ò%ù²|E¾*_“¯Ë7ä›ò-ù¶|G¾+ß“ïËä‡ò¸ûম.î%áIžôé 8¦Š{·ºÜÔe[îê²%Yn’\ÁUå¨÷^Ü{ï½C¨ ½C€P Ýþœ„÷¾ïûݹsïÌÍ7sï·5žßÙ{¯½ÖÞÿsޤ£ñìu¥êjÕ/¯kU¿V}çu½êFÕÍ*O¯ßªnUÝ®ºSu·ê^Õýªµ^ë¼~¯Zïõ jƒ×ê?ªþ¬zTõ¸êIÕF¯M^›½žVmñzVõ¼ê{¯­^Û¼¶{½¨Z¨‰À"ˆh‡——TäíåãåëåçåïxÁE^A^Á^Râ!ŠE‰B½¢E1"”-ˆ°"œ(Ì+Ü /y½ ^Q+ŠÅ‹H"¨Ì+ADÁ½("ªˆ&BxÑE SÄ¥‹2DlÒ‹#âŠ2Eq¿x@<(Þá=$ˆGÅcâqñ„xR<%žψgÅsâyñnññâ½â}b/ïýââƒâCâÅ?‰‹½½ˆÿ">!>)>%>->#>+>'>/¾ ¾(¾$¾,¾"¾*¾&þU|]|C|Sü›ø–ØÇû¶øŽø®Ø×ûžø¾øw±Ÿ÷ñCñâ?ÅÄÅOÄþÞÞOÅÏÄÏÅ/Ä b,H ˜$Ð;È.AH’I¤$Jì-‰‘ $h F‚•à$!Þ¡Þx AB”„yÇJâ$ñ’$AB–„{ƒ¼)ªìM“Ð% Äê ófJX’tI†„-{#¼9¤7Wáé)áI²$QÞÙ’hïI®$OãÍ—$B Ê;_R )””IÊ%’JI•D$K$©È$r‰B¢”¨$j Úã­‘h%XoD/1HpÞF ÞÛ$1K,«Ä&!x½í’Xo‡$ÎÛ)qIÜ’jI¼w„äàè]+Iò®“ÔK’½S¼S½Ó¼ÉÞ ’FI“„âMõ¦y7KèÞ o¦7Ë;Ý»EÒ*i“dx³½9Þí’ ×»SÒ%é–dz÷Hz%}’~É€dP2$áygyK²½s¼s½G$£’1ɸdB2)Éóž’LKf$³’9ɼd·däÉ^É>É~ÉÉAÉ!É’Ÿ$‡%G$?KŽJŽIŽK~‘œœ”œ’œ–œ‘œ•œ“œ—\\”\’\–\‘\•\“ü*¹.¹!¹)ùMrKr[rGrWrOr_ò»ää¡äÉŸ¾·À[èýH’ïýXòDRà]èýTRä]ìýLò\òB² )ñÞé ’®öK×ø@¤>P)Lú\êé³Ö!EJ×ùDH#¥QÒõ>ÑÒ)JŠ–b¤X)NºÁg£^ºÉg³Ï‚”(•ÆIã¥$é÷> R²”"ÝêC•Ò¤té6†”)eIÓ¥R¶”#åJ3¥viCꔺ¤Á>!>ni¨Oµ4̧FîS+ùÔIë¥`Ÿi£´I ñi–¶H[¥PŸ6i»´CÚ)í’vK{¤½Ò>i¿t@:(’KG¤£Ò1é¸tB ó™”NI§¥3ÒYéœt^º[ºGúƒt¯tŸt¿ô€ô ôôGéOÒÃR¸ÏéÏÒ£ÒcÒãÒ_¤'¤Ÿ“ÒSÒÓR¤ÏéYé9i„ÏyééEé%éeééUi¤O”Ï5i´Ï¯ÒëÒÒ›Òߤ·¤·¥w¤1>w¥÷¤÷¥¿KHJÿþ)}$},}"}*}&}.}!]‚0  € D‘@€òAûD1Æ  €õÁ8" Ä8¼O<@ð!DŸ€ P*@è@¬`, ÈØà™È² Èø€ù@œOP”å@P Tñ>"@ H)2@(% Ô€Ð:@#`Ì€ ùX`€p >n ¨}j: Hòi& hZ6 HöéR|:TŸ. èz> Hó!€ì3 Œ£Åg &€I` ˜fªÏ,0Ì»šÏà`/°Øè> ŸƒÀ!€éó#ðÀòI÷9 dø~ŽÇ€ãÛ‡ãó Àõ9dúœN§3ÀYàÀó9\.—€ËÀà*p ø¸Ün¿·€ÛÀà.p¸ü<€ÇÀ Ë'Ûç)ð Èñy¼r}ò| ,ƒÈ 2˜ .ãû|2¡O¾OO¡R!‹”EÉ¢eE>Å>12”¬Ä-ÃȰ²>8^Fe±²8Y¼lµï_’ÌÃ÷;_OßYF‘Qe4ÙZßu¾ë}é2†lƒ/SÆ’¥Ë6úfÈØ2ŽŒ+Ë”ñdY²M¾›}³e[|¿÷Ýê›#Ë•åÉø2L(Ë—È ee²rY…¬RV%ÉÄ2‰L*d2™\¦)e*™Z¦‘ie:™^fe&™Yf‘Ye6™]æ9e.™[V-«‘ÕÊêdõ²Y£¬IÖ,k‘µÊÚdí²Y§¬KÖ-ë‘õÊúdý²m¾Û}dƒ²¾C²aÙˆÌËwTæíëã;&—MÈ&e¾¾~¾S2ßß@ßiÙŒlV6'›—ùû†øî–í‘…úþ Û+Û' óÝ/; ;(;$ûQö“ì°,Üä{Dö…øB}–•“—ý";!ƒùž”’–‘•“—]]”]’]–]‘]•]“ý*».»!»)ûM÷½%»-»#»+»'»/û]ö@öPö‡ìOÙ#ÙcÙÙSÙ3ÙsÙ Ù‚ $Ë!r¨&‡Ër¤.ŸOʧäÓòù¬|N>/ß-ß#ÿA¾W¾O¾_~@~P~Hþ£ü'ùaùùÏò£òcòãò_ä'ä'å§ä§ågägåçäX_œïyù9Þ÷¢ü’ü²œà{E~U~Mþ«üºü†œèë{Sþ›ü–ü¶<Î÷Žü®üžü¾üwùùCùò?åäåOäOåÏäÏå/ä r¬€(  ˜®@(ŠE¤"J­ˆQ hFUÄûâxAATÄ*âñ ’"AAVPTMAW0LK‘®ÈP°W‘©à)²ÙŠÉ7W‘§à+| ¡"_‘è[ (T”)ÊŠJE•"É7ÙW¤+$Š_©PÈr…B¡T¨j…F¡Uèz…AaT˜f…EaUØv…CáT¸nEµ¢FQ«¨SÔ+Š&E³¢E‘ê›æÛªhS}Û Š/Õ·SÑ¥èVô(z}Š~Í—î; `ø*†ÊŨbL1®˜P0}'SŠiËwF1«˜S¤ûÎ+v+ö(~PìUìSìWdø²}(*)~Tü¤8¬8¢øYqTqLÁñ=®øEqBÁõ=©8¥8­Èô=£8«8§8¯¸ ¸¨¸¤àùfù^Vdû^Qäø^U\Süª¸®¸¡¸©ÈõÍóýMqKÁ÷½­¸£¸«øÞSÜWü®x x¨øCñ§Bè›ïûHQà[è[ä[ìûXñDñTQâ»Ówµß¿gŠç ¿ŠHùX QB•0%\‰P"•ž~ký"”ëüÖûmð‹TF)£•1J”­Üè·É£Ä*7ûá”x%AITÆ*ã”ñJ’2AIVR”T%MIWnñc(¿÷c*YÊte†’­ä(¹ÊL%O™¥ÌVæ(s•yJ¾R *ó•ÊBe™²\Y¡¬TV)EJ±R¢”*¥L)W*”JåV¿m~*¥Z¹ÝO£Ô*uÊ~z¥AiTš”f¥EiUzùyûÙ”>~¾~~~v¥CéTº”n¥¿_€_ _µ²FäW«¬SÖ+ƒý”Ê&e³²EÙªlS†ø…úµ+Ãü:”á~Ê.e·²GÙ«ìS‚üÀ~ýÊ%ÄoP9¤VBýF”£Ê1å¸rB9©œRÂüà~ÓJ„Ò/ÂoF9«œSÎ+w+÷(#ý~PîUîSFùíWPTRþ¨üIyXyDù³ò¨ò˜ò¸2ÚïeŒß åIå)åiååYå9åy%ÊíwAyQ‰ñ»¤¼¬¼¢Äú]U^Sþª¼®¼¡¼©üM‰óÃûÝRün+‰~w”w•÷”÷•¿+(cý*ÿPþ©Œó{¤|¬|¢|ª|¦|®|¡\P‚T`DUÁTpB…TÅûE¨"UQªhUŒ ¥B«0*¬ §Â«*¢*V§ŠW‘T *²Š¢¢ªh*ºŠ¡bªX*’_º*CÅVqT\U¦Š§JðËRe«rT‰~¹ª<_•ä'P UùªU¡ªLU®JöKñ«P¥úUªÒüªT"•X%QIU€Šì'SÉU ÅO©R©Ô*ªŸF¥UéTz•AeT™TfÍÏ¢¢ûYU ?›Ê®r¨œ*—Ê­bú±üªU5ªt¿ZUª^•á× jT5©šU-ªVU›ŠíÇñkWqý:T™~ª.U·ªGÕ«êSñüúUªAÕjX5¢U©ÆUªIÕ”jZ5£šUÍ©æU»U{TY~?¨öªö©ö«¨ª©²ý~Tý¤:¬:¢úYuTuLu\õ‹ê„ê¤ê”ê´êŒê¬êœê¼ê‚ê¢ê’ê²êŠêªêšêWÕuÕ UŽ_®ßMÕoª<¿[ªÛª;*¾ß]Õ=Õ}Õ着‡ª?T¿?UTB¿Çª|¿'ª§ªgªçªªU_¡H VùAÔP5L]ìW#ÔHu„:R¥ŽV—øíô‹Q¯öG©×ø£Õ5VSãÕµ‡ÿwþDu¬ÚÓ?N¯&©×ú'¨ÉjŠšª¦©éj†zÿz¦zƒ?K½Ñ“º:C½Ù‹?[ÍQsÕ™jž:K­ÎQçªóÔ|µ@-Tç« Ô…ê2u¹ºB]©®R‹ÔbµD-Uj™Z®V¨¿÷ßê¯T«ÔÛüÕjZ«Þî¯SëÕµQmR›Õõ/«ÚÛߦöñ·«j§Ú¥v««Õ¾þ~þ5êZµ¿:À?Ð?È?Ø?Ä¿^Ý nT7©›Õ¡þaþ-êpÿV5ÈìߦnWCü;ÔP˜?Ü¿SÝ¥Føw«{Ô½j¤Ÿº_= T©‡Õ#êÿHÿQu”´Œ?ÊL=®žPOª§ÔhŒÿ´zF=«žSÏ«w«±þ{Ô?¨÷ª÷©÷«¨ª©Tÿ¤>¬>¢Æùÿ¬>ª>¦>®þE}B}R}J}Z}F}V}N}^}A}Q}I}Y}E}U}Mý«úºú†ú¦ú7õ-õmõõ]õ=õ}õïêê‡j¼?ÁÿõŸj¢ÿ#õcõu¬ÿSuœÿ3õsõ õ‚¤‰÷'ùƒ5 þM¢’?TÓÀ5M²Šª?R¡IóÔDi¢5dÿ JƒÖ`4X Nƒ×Pü©þ ÍŸîÏð'jb5qšx I“ aú³üÉŠ&ÝŸª¡ièš ††©aiÒ5¶†£áj25< ÛŸãÏõÏÒdúgkr4¹š< ÏŸ¯h„š|M¦PS¦)×Th*5U‘F¬‘h¤@#ÓÈ5 R£Ò¨5V£Óè5M–¶¿Q“ãŸëoÒ˜5Mž¿UÃ÷·iì‡Æ©qiþB·&ß¿ZSà_£©ÕÔiê5 šFM¡“¦YÓ¢)òoÕ´iÚ5šNM—¦[Ó£éÕôiú5šAÍfXSì_â?¢ÕŒiÆ5šIÍ”fZ3£™ÕÌiæ5»5{4?höjöiökhji~Ôü¤9¬9¢ùYsTsLs\ó‹æ„æ¤æ”æ´f§ÿÍYÍ9Íê€óš š‹š5—4—5W4W5×4¿j®knh<nj¾ øMãpKs[sGsWsOs_³6àwÍÍCͺ€?4jiÖ<Ö<Ñ<Õ<Ó<×¼Ð,h@Ú `íÆˆª…iáZ„©ÐFj7lØ¥ý> Z£Ý°-`{ÀŽ”­Åh±ZœÖ+À;¯õ h}ˆÚXmœÖ/ ^ë@Ò&hÉÚÀŠ–ª¥iƒèZ†–©eiÓµZ¶–£ àjC2µJ­Ñ£ô @´£ÇêÁ8=^OÐõ±ú8}¼ž¤OГõ=UOÓÓõ =$©géÓõz¶ž£çê¡™zž>KŸ­ÏÑçêóô|½@/Ôçë ô…ú2}¹¾B_©¯Ò‹ô°@±^¢—ê½L/×+ôð@D R¯Ò#Õz^«ÔéõzƒÞ¨7éÍz‹>20*Ъ·éíz‡Þ©wéÝúj}¾VX§¯×7ècõMúf}‹¾Uߦo×wè;õ]ún}¾Wß§ï×èõCúaýˆ~T?¦×£ÑúI=&pJ?­Çâñ„Àý¬~N?¯ß­'ÆîÑÇþ ܫߧ߯'&Ð'ÔÒÿ¨ÿIXDÿ³>)ð¨þ˜þ¸þý ýIý)ýiýýYý9}ràyýýEý%ýeýýU}Jà5ý¯úëúú›úßô·ô·õwôwõ÷ô÷õ¿ëèêÿÐÿ©¤¬¢ª¦®¡_Ѓ `Cj`Z Ä5a¸a " †HC”!Úc@ÐŒkÀðj Á@4Äâ ñ’˜` (z Õ@3Ð Œ@†i`Ò ¶c`r ™V ϘeÈ6är y¾!#(0 œÀ|C¡ÐÀ ,3”* •†*ƒÈ 6dò%†¬@©0È rƒÂ 4¨ jƒÆ 5è zƒÁ`4˜ fƒÅ`5Ø vƒÃà4¸ nCµ¡ÆPk¨3Ô †&C³¡ÅÐjh3dæ¶: ¹†.C·!/°ÇÀì5ôú †Aƒ P8dÈ6ŽF c†qCq`Ià„aÒ°3pÊ0m˜1¬š5¬ š3Ìvö~0x}´×à´6h]Ð>Ã~ÃÃAÃ!Ãú  Aƒ~4üdØtØpÄð³asÐQÃ1ÃqÃ/††“†S†-Aß6l Ú´=èŒá¬áœá¼á‚á¢aGWÐ%ÃeÃÃUÃ5ï†ë††›†ß · · w w ÞA÷ ÷ ¿þ0üixdxlxbxjxfxnxaX0€Œ`#Ä5ÂŒp#ˆ4F#QÆhcŒeD1F¬gÄ F¢1ÖgŒ7úù‘Œ F¿ ²‘bô ¢iFº‘adYÆtc`P†‘m  â¹ÆL#ϘeÌ6†åsyF¾Q`óÆBc™±ÜXa¬4VEF±Qb”£Ì$7*ŒJ£Ê¨6jŒáA  ­QgÔ F£Ñd4-F«Ñf´F§ÑeA‚ÜFh,Tm¬1ÖëŒõÆc£±ÉØll1¶ÛŒíÆc§±ËØmì1öûŒýÆã qÈ8l1ŽÇŒãÆ ã¤qÊ8mœ1"‚A³Æ9cDмq·q12èã^ã>ã~ããAã!cTPtÐÆŸŒ‡1AGŒ?1ž0ž4ž2ž6ž1ž5ž3ž7^0^4^2^6^1^5^3þj¼n¼a¼iüÍxËxÛxÇx×xÏxßø»ññ¡ñãŸÆGÆÇÆ'ƧÆgÆçÆÆ#È6ALPÌ7!LHS„)ÒeŠ6ŘP&´ cšPA8ÞD0M±¦8S¼‰dJ0‘MÕD3ÑM ÓÄ2¥›2LlÇÄ5ešx¦,S¶)Ç„Ê5噸&IhÊ7˜ Me¦rS…©ÒTe™Ä&‰IjL2“Ü„ R˜”&•ImÒ˜´&l.HgÒ›ðA“Ñd2‚Ì&‹Éj²™ì&‡Éi"¹LnSlPµ).¨ÆTkª3Õ›L¦&S³©ÅÔjj3µ›:L¦.S·©ÇÔkê3õ›Lƒ¦!Ó°iÄ4j3›&L“¦)Ó´iÆ4kš3Í›v›ö˜~0í5í3í7042ýhúÉtØtÄô³é¨é˜é¸éÓ ÓIÓ)ÓiÓÓYÓ9ÓyÓÓEÓ%ÓeÓÓUÓ5Ó¯¦ë¦¦›¦ßL·L·MwLwM÷L÷M¿›˜šþ0ýizdzlzbzjzfŠznzaZ0Ì`3Ä 5ÃÌp3ÂŒ4G˜#ÍQæhsŒeF›1f¬™„3ãÍ3ÑkŽ3'Å›IæsbÙL1SÍIA43ÝÌ03Í,sº9Ü”Ä6sÌ\s¦™gÎ2g›s̹æ<3ß,0 Íùæs¡¹Ì\n®0Wš«Ì"³Ø,1KÍ€Yf–›f¥YeV›5f­YgÖ› f£95(-Èd6›ÉA³Õl3S‚ìf‡Ùiv™Ýæjs™D ª5ÓƒêÌŒ zsƒ¹ÑÜdn6·˜™A¬ VszPFP›¹ÝÌâqƒ2ƒ:Ìæ.s·¹ÇÌ Ê ê5gååõ™ûÍæ¼ Aó™$6˜…A£æ1ó¸9?hÂó~óΠÕÁÌÍk‚™4ÿdö>l>bþÙ|Ô|Ì|Üü‹ù»`ÏàæµÁ'Íë‚O™O›Ï˜ÏšÏ™Ï›×_0_4_2o¾l¾b¾jÞ|Íü«ùºù†ù¦ù7ó-ó¦àÛæ;æ»æ{æÍÁ÷Í¿›˜šÿ0ÿiÞü}ðÖàmÁÛƒ™›w{?1{û?5?3?7¿0ûû/˜ýƒ‚ƒA°bZ‚‚a–àà`¸a FZ",‘–°à(K´%Æ‚² - Ö ÆYÀÁ`h0ÞB°-±–8K¼ &Y,ˆ`²…b¡ZÁ4 ݰ0-,Kº%Ã̶DGÇs,\K¦…gɲd[PÁ9–\KžÌ·,B &8ßR`)´”YÊ-–JK•Ed[$© Xd¹EaQZT\0>˜¬¶ƒ5­Eg‰ Ö[â‚ £Åd1[,–ø`R°Õ’l³$Û-‹Ó’첸-ÉÁ)ÁÕ–Kjp­¥ÎRoI n°4Zš,Í–K«¥ÍÒné°tZº,Ýrp¥×Ògé· X-”à!˰eÄB µŒYÆ-´à ˤeÊ2m™±ÌZæ,ôàyËn #˜¼Çòƒe¯eŸe¿å€å …|Èò£å'KzðaËËÏ–Œà£–c–ã–_,','-§,ì`Nði 7øŒå¬åœå¼å‚å¢å’å²%3˜|ÅrÕ’|Íò«åº%;ø†å¦å7Ë-ËmËË]KNpnð=K^ð} ?øwËËCË–?-,‚`aðcËK~ðSË3KApaðsË Ë‚d[!V¨µ(¸8f- †[w#¬«CÖ5!!ÖïB"­QÖhkŒeE[1V¬gÅ[ V¢5Ög·’¬ V²•bõ ¡ZiVº•aeZYÖtëÚu!V¶u}ÇʵfZ7„ð¬YÖlkŽ5ךgå[7†¬Bk¾µÀº)¤ÐZf-·VX+­UÖÍ![BDV±õû‰Uj¬[CdV¹UaUZUVµUcݲ=DkÝ¢³z…è­«Ñj²š­«wˆOˆÕj³Ú­«Óê²ú†¸­ÕÖk­µÎZom°ú…4Z›¬þ!ÍÖ€k«µÍÚní°vZC‚Bº¬ÝÖàk¯µÏÒo°Z‡¬ÃÖkXHxȨ2f‡Œ['¬“Ö)ë´uÆ:k³Î[w[÷X°îµî³î·°´²þhýÉzØzÄú³õ¨õ˜õ¸õë ëIë)ëiëëYë9+$rÞzÁ ¹h½d…‡ B.[¯X¯Z¯Yµ^·"C"B"CnX£BnZ£C~³Þ²Þ¶Þ±Æ„ܵ¢BÐ!÷¬˜lÈ}ëïÖV\ÈCëÖ?­¬­O¬O­øBÈ3ës+1$6ä…uÁ ²m[\H|)jƒÙBà6„ iK ‰°EÚ¢lѶʆ¶%…$‡`lX[JHjΆ·lD[¬-Îo#ÙldÅFµÑltÃÆ´±lé¶ ÛÆ±qm™6ž-Ë–m˱¥…äÚòl|›À&´åÛ l…¶2[¹­ÂVi«²‰lb›Ä&µ6™MnSØ”6•MmÓØ´6Mo3ØŒ6“Íl³Ø¬6r%Äf³Û¨!›Óæ²ÑBÜ6zHµ­ÆVk«³ÕÛ!Ì[£’Òdk¶µØZmm¶v[FH‡­ÓÖec‡tÛzl½6NHŸ­ß6`´ Ù†m#¶QÛ˜mÜ6a›´MÙ¦m3¶YÛœmÞ¶Û¶Çöƒm¯mŸm¿í€í ííGÛO¶Ã¶#¶ŸmGmÇlÇm¿ØNØNÚNÙNÛÎØÎÚÎÙÎÛ.Ø.Ú.Ù.ۮخڮٸ!¿Ú®ÛnØnÚ~³Ý²Ý¶Ý±ÝµÝ³Ý·ýn{`{hûÃö§í‘í±í‰í©í™í¹í…-3„²`Ù³BÀvˆ=;$'jÏ Ùáv„i°ç…ðC"íQöh» $ÆŽ²£í;ÖŽ³ CòCðv‚½ „hµÇÙãí${‚l§Ø©všngØ™v–=Ý^’agÛ9v®=ÓγgÙ‹B²í9ö\{žoØ…ö|{½Ð^f/·WØ+íUv‘]l—Ø¥öâÀ.³Ëí »Ò®²«í%!»Ö®³ï ÑÛ v£}u¨Én¶[ìV»Ín·;ìkB=Bv—Ým¯¶×Økíuöz{ƒ½Ñþ]h“½ÙÞboµ·ÙÛíöN{—½ÛÞcïµ÷ÙûíöAû}Ø>bµÙÇíöIû”}Ú>c÷ ]:kŸ³¯ ·ï¶ï±¯ýÁ¾×¾Ï¾ß~À~Ð~Ⱦ!tcèöŸì‡í›Bضµ³·ÿbßzÂ~Ò~Ê~Ú~Æ~Ö~Î~Þ~Á~Ñ~É~Ù~Å~Õ~Íþ«ýºý†ý¦}Kèoö[öÛö;ö»ö{öûöïC·?°?´ÿaÿÓþÈþØþÄþÔþÌþÜþ¾`9Àˆê€9à„éˆpD:¢ÑŽʱ5íÀ8°Žm¡8ÞAp±Ž8G¼ƒäHpÕAsÐ ÓÁr¤;2lÇÁud:xŽ,G¶#Ç‘ëÈsð‡Ð‘ï(p:ÊåŽ G¥£Ê!rˆ‡Ô±=pÈr‡Â¡t¨;B½BÕÃ;TëÐ9ôŸPƒÃ7Ôè09Ì‹Ã/Ô?4 Ôê°9ì‡Ãép9ÜŽjG£ÖZç¨w48‚BMŽfGph‹£ÕÑæhwt8:]ŽÐnG£×Ñçèw 8CŽaLjcÔ:æw„‡N8&SPè´cÆ1ë˜sÌ;v;ö8À¡ÐÐнXè>Ç~ÇÇAÇ!Çx("ô'Ça24"42ôˆ#*4:4&ôgÇQÇ1Çq*Š ýÅ Å…âCO8N:N9¡ÄÐÓŽØÐ¸Ð3޳޸ÐsŽóŽ RèEÇ%ÇeÇÇUÇ5Ç¯Ž„ÐÄÐ뎤ÐäДÐŽ›Žß··w©¡i¡w÷äÐûŽß”ЇŽ?ÔÐ?O´PzèS#ô™ƒúÜñ±à`…‚œé¡¡`'Ä u²CaN¸áä„"ÎHg”3ÚãD9ÑNn(Ɖuâœx'ÁItÆ:ãœñN’33”šà$;³B³C)ΜÐÜмP~(ÕIsÒ 'Ó)†æ‡„†…‡²œ%¡éΡÎÕakÂØNŽÓ#ŒëÌtòœß…e9³9Î\gž“ï8=ÃÖ† ëÂòëà œ…Î2g¹³ÂYéܶ1lSX•ss˜È)vJœ[¤Îïö†N™SîT8·…mÛæææ¦tªœj§o˜_˜X@˜Æ©uêœaz§Áit…™œf§ÅiuÚœv§Ãæt††……¹œngµ³ÆYë¬sÖ;ÃÃ@a ÎF'8¬ÉÙìlqB a°°V'<¬ÍÙîD„!Ã"Â:œ‘aΨ°.gtX·³ÇÙëìsÆ„¡ÂúNtØ sÈ9ìÄ„8GcÎqç„sÒ9åĆá¦ø0B1lÆ9ëœsÎ;w;÷8cÃâÂ~pîuƇísîwptrþèüÉyØyÄù³ó¨“vÌyÜ™ö‹31ì„ó¤ó”ó´óŒó¬3),9ìœó¼3%ì‚ó¢ó’35ì²óŠóªóšóWçuç gZ9즓ö›“vËyÛyÇy×yÏyßI £‡ýî|àd„=tþáüÓÉ {ä|ì|â|ê|æ|î|ád…¥‡-83Â@.vØqA]0Ü…pq¸aHW„+3,ÒåŠvñ²²Ãb\(Ú…qa]9a¹a8W^ÞÅ#¸ˆ®XWœ+ÞEr „a .²+?Œâ¢ºh®‚0º‹ábºX®tW†‹í* + 㸸®â°’°LÏ•åÊvå¸r];ÃV‡ç¹ø®5á—Еïò/pºÊ\å® W¥«Êõ]¸g¸È%vI\kÃ¥.À%sÉ] —Òµ.|}¸Ê¥vm׸´.kc¸Þep]&—ÙeqY]›Â7‡Û\[Âí®ïÃ.§Ëår»ª]5®­áÛÂk]u®íáõ®W£kGx“«ÙÕâjuµ¹Ú].¯pïðN—Ox—Ë7¼ÛåÞãêuõ¹ú]þáá®AW`økØ5â u¹Æ]®IWpø”+$<4|Ú>ã …ƒÃ!áÐpX8<>ëšsÍ»á»]{\?¸"Â÷ºö¹ö»¸º¹~tE†ÿä:ìŠ ?âúÙuÔuÌuÜõ‹ë„ë¤+:<&ü”ë´ ~ÆuÖuÎ…Ç„cÃÏ».¸.º.¹páøpBøe1<6<.<>üŠëªëš‹þ«+!<1üºë†+)ü¦+9<%<5ü7WZø-×m××]×=9œ~ßE §…ÓÃá¿»¸ºþpýéb†³Â¹»Ò߸žºž¹2Ÿ»^¸\ 7Ø qCÝìpN8ÌÍ Ï ç…ÃÝ7ÒáŽtG¹³Â³Ã£Ý1îœp”;7íΠǸ±nœï&¸‰îX7?<Îï&¹Ü‚p²›â¦ºinº›á†3Ý,wº;?<ÃÍvsÜá\w¦›çÎrg»sܹî<7ß-p Ýùîw¡»Ì]î®pWº«Ü…áEá"·Ø].qKÝ€»$\æÞ.w+ÜJ·Ê­v¯­iÜ ­û;'HçÖ» n£Ûä^ Z2»-îõ «Ûæ¶»7€n§Ûåv»«Ý5îZ÷FÐ&P{3¨Þ½Ôànt7¹›Ý-îV÷÷ 6w»»Ã½Ôéîrw»·zܽî>w¿{À=èroí »GÜ^ oШ{Ì=îžpOº§Ü> i÷Œ{Ö=çžwïvïqÿàÞëÞçÞï>à>è>äþÑý“û°ûˆûg÷Q÷1÷q÷/îî“îSîÓn_èŒû¬ÛtÎ}Þ}Áºè]r_v_q_u_s‚A¿ºC@×Ý¡ 0P8è†û¦û77A@·Ü·ÝwÜwÝ÷Ü÷ÝPÐïîî‡î?ܺ¹»Ÿ¸a §n8è™zî~á^pƒªÁÕj$Z «†W#ª‘ÕÕ‘ÕQÕÑÕ1Õ¨jt5¦[«ÆWª‰Õ±Õ HP\u|5©:¡š\M©ŽQ«iÕôêh£šYͪŽ¥WgT³«9ÕÜêÌj^5 „eUc@ÙÕXPNunu^5¿ZP-¬Æð üê‚j¨°º¬º¼º¢º²ºªZT-®–TK«jYµ¼ZQ­¬VUAêjMµ¶ZW­¯6TÇ‚â@ÆjSu<È\m©¶V“@  D­Ú^í¨vV»ª“@É wu T“ ×@j 5°x ¢& „¬‰¨‰¬‰ª‰®‰©AÕ k05Ø\ ¾†PC¬‰­‰«‰¯!Õ$ÔAäJ µ†VC¯aÔ0k( VMzMF »†SíɬáÕdÕd×äÔäÖäÕðk5šüš‚šÂš²šòšŠšÊšªQ¸FRCÑ@Ò †’ÕÈk5 ²FU£®ÑÔhkt5ú&ˆ2Ô¤ƒŒ5¦s¥ÆZc«±×8j2@ÎW»† Õ‚k!µ´V ¯EÔ"k#j#k¹ ¨ÚèÚ˜ZT-ºS‹­ÅÕâk µÄÚL[W›Н%Õ&ÔfƒÈµ”Zj-­–^˨eÖæ€rA¬Ú†×#êCÁÈúˆúÈú0pT}t}L=ª]©ÇÖ‡ƒA`\= CÁøzB=±>¶>®>¾&Õ'Ô“ë)õÔzZ=½žQϬgÕ§×gÔ³ë9õÜúÌz^}V}v}N=œ[ŸWϯÔ ëóëà‚úÂú²úòúŠúÊúªzQ½¸^R/­êeõòzE½²^U¯®×Ô#ÁÚz]½¾ÞPo¬7Õ›ë-õÖz[½½ÞQï¬wÕ»ëA àH´Öo@4 ""¢¢bP èL¶×€o 4D€#ÁĆ؆(p\C|©!œÐ@n 4Ph ôFC f6 Á¬ 8½ Îh`7p¸ 80œÙÀkÈjÈnÈiÈm €óø ‚aC~CACaCYCyCECe\Õ j7H¤ @ƒ¬!,oP4(T êMƒ¶A× o04L æKƒµÁÖ`op48âÀ®w¨Üi„6ÂãÁðFD#²‘ŽhŒlŒjLG7Æ4¢јFl#®1œÆ7‰±qñ¤Æ„Fr#¥‘ÚHk¤72™¬ÆôÆŒFv#§‘Û˜ÙÈkÌjÌnÌiÌmÌkä7 …ÉàüÆ‚ÆÂƲÆòÆŠÆp*¸²±ª1 ,j7JÉ`i#Ð(k”7*•ªF ˜ V7jµ4°®Qßhh46šÍt°¥ÑÚhk´7:®Fw#¨ Üi‚6ÁšàMˆ&dSDSdSTÌG7Å4¡šÐM˜&l® ßDh"6Å6Å5Å7‘ššÈM”&j­‰ÞÄhb6±šÒ›2šØMœ&nSf¯)«)»)§)·‰Îkâ7 š„MùMM…MeMåMM•MUM¢&q“¤IÚ4ÉšäMŠ&e“ªIݤiÒ6éšôMé`C“±ÉÔdn²4Y›lMö&G“³ÉÕän5ƒ›!ÍÐfX3¼ÑŒlŽhŽlŽjŽnŽiF5£›3À˜fl3®ßLh&6Ç6Ç5Ç7“ššÉÍ”fj3­™ ¦73š9`f3ÌjNoÎhf7sš¹Í™Í¼æ¬æìæœæÜæ¼f~³ YØœß\Ð\Ø\Ö\Þ\Ñ\Ù\Õ,j7Kš¥Í@³¬YÞ¬hV6«š3Á<°ºYÓœÖ6ëšõÍÙ`C³±ÙÔln¶4[›mÍ9à\°½ÙÑìlÎóÁ®fw3¨Ü" Áù`H ´¥ k)Ã[ŠÀˆdKDKdKTKtKLK1¸ŒjÙ ^ Yñ€ [0-Ø\ ¾å;ˆ'„ÐBlY ‰m‰k‰oY!µ$´[(-ÔZ ½e=d„Ѳ² ²Âlaµ¤·d´°[8-[ Ü–Ì^Ë÷¬–­ì–mœ–Ü–¼~‹ EØ’ß²RÐRØRÖRÞ²RÑRÙRÕ"j·HZ¤-@‹¬EÞ¢hQ¶¨ZÔ-šm‹®Eßbh1¶˜ZÌ-–k‹­ÅÞâhq¶¸ZÜ- Vp+¤Úêñ†ÀZá­>D+²5¢ÕÙÕÝÓŠjE·bZý þlk$Áµâ[ ­ÄÖØÖ¸Ö`H$¾•Ô Ih%·RZà ÔVZ+½•ÑÊleµ¦·†C@ŒV0„Ý pZ¹­™­¼Ö¬ÖìV($§5·5¯á· Z…­ù­­…­e­å­­•­U­¢Vq«¤UÚ ‡­²Vy«¢UÙªjU·" šVm«® Ñ·Z­¦Vs«¥ÕÚjkµ·:Z­®Vw+¨ Üi‹€@Û`mð6D²-¢-‰l‹j‹†D·Å´¡Úb è6L¶ ׆o#´ÛP4$¶ ‰kÃBâÛHm mä6Jµ ¡µÑÛmx³Õ–ÞF€d´±Û8mܶÌ6^[V[v[N[n[^¿´ ÛòÛ Ú ÛÊÚÊÛ*Ú*ÛªÚDmâ6I›´ h“µÉÛmÊ6U›ºMÓ¦mÓµéÛ mÆ6S›¹ÍÒfm³µÙÛm±g›«ÍݵƒÛ!íñh;¬ÞŽhG¶G´G¶“ ¨öDHt{$¦ÕŽnÇ´cÛqíÉ|;¡ØÛ×ßNjOh'·SÚ©í´vz;£Ùžaµ§·g´³Û9íÜöÌv^{V{v{N{*$ ’Ûž×N†ðÛíÂv $¿½ ½°½¬½¼½¢½² ¡AªÚéQ;"n—´KÛvY»¼ Q´+ÛUíêvM»¶]×®o7´ÛMíævK»µÝÖnow´;Û]í,ˆ»Ôî€t@;`ðŽt¢ÙÑ‘‰ìˆêˆîˆé@u ;0Ø\¾ƒÐAìˆíˆëˆï u$t;(ÔZ½ƒÑÁ†0;XéHF»ƒÓÁ…p;2;xYÙ9¹™$¯# ÂïȆ:„ù…e9òŽŠŽÊŽ\HU‡¨CÜ‘‘tH;€Y‡¼CÑ¡ìàCTêM‡¶CÑuè; ÆS‡¹CɇX:¬[‡½ÃÑQqv¸:Ü Np'¤ÚY)†À:K ðÎD'²3¢3²3ª3º3¦Õ‰îÄtb;qøNB'±3¶3®3¾“Ô™ÐIî¤tR;iôNF'³“Õ™Þ™ÑÉîätr;3;WC×@yYÐìΜÎеÐÜμN~§ Sؙ߹ºZйZعZÖYÞYÑYÙYÕ)êÜÝ wJ:·@¥@§¬ó{¨¼SÑ©ìTuª;5ÚέÐmP]çv¨¾sÔÐiì4uš;-ÖN/¨7ÔÖiïô::®N_¨»Ôî‚tA»`]ð.?¨?Ñ „A‘]]‘]Q]Ñ]1]ÁÐ(ª Ý…éÂváºð]„.bWlW\W|©+¡‹ÜEé¢vѺè]Œ®P(³‹Õ•Þ•ÑÅîâtq»2»x]Y]Ù]9]¹]y]ü.A—°+¿« «°«¬«¼«¢«²«ªKÔ%î’tI»€.Y—¼KÑ¥ì ƒ†CU]ê.TÓ¥íC!P]—¾ËÐeì2u™»,]P( jí‚CP$ÔÖeïrt9»\]î®h$Ô îŽ‚Bº¡Ý°îh(¼ÑìŽèŽìŽêŽîŽ¢ 1Ýh(ªEwcº±Ý¸n|7¡ %vÇvÇuã ñݤî„n<”ÜMé¦vÓºéÝŒnf7J„²ºc¡qÐxhzwF7»›ÓÍíÎì&AyÝYÝÙÝ9ݹÝyÝünA·°;¿» »°»¬»¼»¢»²»ª[Ô-î–tK»nY·¼[Ñ­ìVu'@¡ênMwTÛ­ëÖw'C ÝÆnS·¹ÛÒmí¶u§@S¡öî4¨£› uv»ºÝÝ p¤‡¥B¡=°ÞƒèAöС=‘=Q=Ñ=1=¨tŠéÁöàzð=L(¡‡ØÛ×ßCêaAzÈ=”j­‡ÞÃèaö°zÒ{2zØ=œnOf¯'«'»'§'·'š×Ãïô{ò{ z2 …=e=å==•=U=¢6TÜ#é‘ö=²y¢GÙ£êQ÷hz´=º}¡ÇØcê1÷Xz8Pk­ÇÞãèqö¸zÜ= ^p/¤Ú ë…÷"z‘½½‘½Q½Ñ½1½¨^t/¦Û‹ëÅ÷z¹ÐL(±7¶—ëï%õfAzɽ”^j/­—ÞËè͆æ@™½¹PVo4½7£—ÝËéåöföò¡¼Þ¬Þì^4§7·7¯Wå÷ z…½ù½½…½e½å½½•½U½¢Þ|¨¸WÒ+íze½òÞ¨¢WÙ«êU÷jzµ½º^}¯¡×Økê5÷Zz­½¶^{¯£×Ùëêu÷BA}à>H´Öï+‚C}ȾhD_d_TßNht_Lª݇éÃöáúVÃÖÀð}0Bßw0b_l_\_|©/¡ÏFî£ôQûÖÂh}ô>Fß:³Õ—Þ—ÑÇîãôqûÖÃ2ûx}Y}Ù}9}¹}y}ü>AŸ°/¿ol#¬ ¯°o¬¬¯¼¯¢o3¬²¯ªOÔ'î“ôIû€¾-°ïa²>yŸ¢o+LÙ§êS÷iú´}º>}Ÿ¡ÏØgê3÷Yú¬}¶>{Ÿ£ÏÙçês÷úÁý~h?¬ÞèGöGôGöGõG÷Çô£úÑýÛ`Ûa˜~lÿ®ßOè÷‚ûcûãúãûIý ýä~o˜ŒÒï £öûÁhýô~F?³ŸÕŸÞï €eô³ûaœ~nf,ÆëÏêÏîÏéÏíÏë…Âøýa°p&èöç÷ôö—õƒaXyE?VÙ_Õ/ê‡ÁÄý’~i?Ð/ë—÷+úá0LÙ„EÀ"aª~u¿¦_Û¯ë×÷GÁ ýÆ~S¿¹ßÒoí·õÛûýÎ~W¿»4€ @`ðÄr 195=3€@`°¸üa€8;7?@H P¨´úc€9ÀHÈ`p¸™¼¬ –=3€†åä ð00Á&È(((ÀÁð°òŒ‹…U TT ˆÄ’8X˜1Èä r3yƒYƒÙƒ9ƒ¹ƒyƒüAŒ °üÁ‚ÁÂA&¬l°|°b°r°jP4(dÁÒa’Á ˜t eƒòAÅ ¦äÂTƒêAÍ`&L;¨Ôƒ¦Aó eÐ:h´:ƒ®A÷ h<‚Á†àCˆ!ä195=3„Ba†°C¸!üaˆ8;7?DJ"Q†¨C´!úcˆ9ÄJÊ‚e ±‡8CÙ0îPæo(k({(g(w(oˆ?$å åÀʆraåCC•CUC¢!ñPL2$†dCò!ÅrH5¤Ò i‡tCú!ÃqÈ4d² Y‡lCö!ÇsÈ5ä ƒ‡ù0 2 Â`ÃðaÄp> 9195=3Œ.€ÂÐÃE0Ìp1 ;ŒÆ†‰Ã±Ã%°¸áøaÒpÂ0y˜2L¦ Ó‡ÃÌaÖpúpÆ0{˜3ÌÎæ ï„e gç çç ó‡ëáÂáüá‚áÂá²áòáŠáÊáªaѰxX2,†eÃòaŰrX5¬Ö k‡uÃúaðqØ4¼î7[†¿ƒ[‡mÃöaO¸cØ9ìvƒFÀ#‘µðupèl>²ŽAŽDŒDŽDDl€ÇŒ FÐ#á˜ìnd?B!ŽÄŽÄÄF6ÃFÈ#”êÈ8m„>ÂaްFÒG¾‡o…gŒ°G¶Á9#Ü‘íððÌ/8o$k${$g$wÄîÏñ…óG#‘ü‘‚‘‘²‘ò?xÅHåHÕˆ?\4"‘ŒÀ¥#ÀˆlD>¢QލFáApõˆfD;¢ÑFŒ#¦óˆe$·ŽØFBáöLjs$ îq€FÁ£Qè(l4‚ÃGÁpÄ(Ž…Âap85Š€£G1£ØQ$7ÇF‰£±£q£‘ð(xüh4<Ž‚“FFÉ£h8e”:Šcá´Qú(Îe޲FñðôÑŒQö(g”;š9Ê%À‰ð¬ÑXx<ž=š3š;š7ÊŒ’à páhþhÁháhÙhùhÅhåhÕ¨hT<*•Ž£²Qù¨bT9ªUjFµ£ºQý¨aÔ8j5ZF­£¶Qû¨cÔ9êu‚ÆÀc1èl >†CŽEŒEŽEEÅŒ¡ÆÐc˜1ìn,žÇÆ’áıر¸±xüi,aŒ^1^9^5._ƒKÆ¥ãÀ¸l\>®WŽ«ÆÕãšqí¸n\?n7Ž›ÆÍã–që¸mÜ>îwŽ»ÆÝã  ðd:›€O &ˆˆ‰È‰¨‰ïÑ1¨ ôf;›ÀO&ˆ±qñ¤‰„ òe‚:A› O0&˜¬ ODúDÆ{b-‚3ÁÈœX‡àMdMdOäLäNäMð'ë‰ ˆü‰‚‰Â‰²‰ò‰Š‰Ê‰ª‰ˆMÑ„xb3B2!Ø‚øLlEÈ&äŠ å„jbb;B=±¡™ðBh'tú ÄqÂ4á0OX&¬¶ û„cÂ9ášpO€&Á“Iè$l>‰˜DNFLFNFMú ¢'c&Q“èIÌ$v7‰Ÿ$L'c'ã&ã'I“ “äIÊ$u’6IŸdL2'Y“é““ìIÎ$w2s’7™5™=™3™;é‹È›äO &ýÂÉüÉ‚IDádÙdùdÅdådÕ¤h2!ž”L"¤“À¤lR>©˜TNª&Õ“AͤvR7ŒÐO&“!Ó¤yÒ2i´MÚ'“¡ç¤k2 áž G€¦ÀS)èl >B ¦SS`DäTÔTô3…šBOa¦°S¸)üC¦àâTìTÜTüi*aŠ…̘cÏqæ¸s™s¼¹hdÖ\ö\Î\ 2w.oŽ?‡B æ„sùss…sesåshdÅ\å\ÕœhƒÏIæ¤sÀœlN>‡EâŠ9婚SÏiæHíœnN?g˜3ΙæÌs–9ëœmÎ>ç˜#"s®9÷h<™EÆ!¡ó°ùx$|1œ'!#æ#ç£æ£çcæQóèùd"3Ÿ„ÄÎ'#qóøyÂv>n>™ŠŒŸ'ͧ!æÉó”y2’:O›§Ï3æ™ó¬ùôy 2cž=OEræiHî|æk>{>gžŽd sçóæ™Hþ< ™ŽÌ@²‘‚yá|þ|Á|á|Ù<ÉE–Ïg"+æyÈÊùªyÑ|R¯˜WÎç"Uóêyͼv^7¯Ÿ7Ìç!ùHã¼iÞ?¼»êè~áeû_¥”¹ìÿqìfýÏã‡ÿ‹:ý¶ßcÿÏãÿ‹Í=îÿl_–õ?ÿ׸ÿ¯JE¦,‘Χ¦²s–-£fxÐóóþêûûx‰ìÜüíÛ¶mÿgÀ¶w_Ùöê¶÷×|ûåâ‹ß,¾²¸maí·žßbh‹¸…Áe„âBìBÜBÒâŠo·/¬üÖk!ÏÓ{½ðÆâ›‹> ¾ ‰‹É‹~ þ +·}¼-`!páƒmn Z^xkÛÛÛBBÞØöæ¶°…ð…w¶½» ´^xoÛûÛ ÐÒB‹Åÿï_‰ I É ) Ÿ}ûù·_}ûõ·_o[µÍçÛß._|}ñ­Å o—-ß¶ßóGÏ^ÏÏCž¯¯}míÏÝžÕžnÏqÏ1ÏÚ¯­ýöòbØâÁW#"bP Q Ñ © i ä…·ß]üeÙ£eÝ˾XóÕâªÅ¯k˜kÒÖ¬Zƒ[C^CY .Ðè Œ…à5Öl\S¿æÛ5߬™\sÄë°×¦5߯ñYã½&|-x-hí›k5«u«Õ«µ««M«-«Í«=×x¬y1xñ¯¿ÿ,Ö/ûh[ÍÒÛèk‹ß.._ýæêô…ŒöÂ1/»—ÃËéuÈ«ÚKé¥òšóêZFZzîOYzî'/=ñÿJ¼‘w¨¸Ì³Ü³Â³Ò³ÊSä)ö”xª<•ž O¹§Ìð”z{z{nöüÎó+O½ç2ÏW= žïx~à¹Òó3O®ç¿¡~¦g–'Ïã™â™áIö¼äyÙóªçÏlÏÏ\Ï¥[wñ£Å‹+?^üdñÓÅÏ?_L[M^MY½ôпzé±~5s5kuú꿲ylûY‚þÊ ÂCñ0üêÅ5‹‹ß-z.®]\·¸~qÃâÆÅM‹›·,~¿¸uqÛâöÅ‹^‹Þ‹>‹¾‹~‹þ‹‹‹K·ó"dº[„/"‘‹‹‘‹Q‹Ñ‹1‹¨Eô"f»ˆ[Ä/‰‹±‹q‹ñ‹¤Å„EÍrírÝrýrÃrãrÓrórËrërÛrûrÇrçr×r÷òêåµËë–×/oXÞ¸¼iyóòîå=Ë{—÷-ï_>°|pùÐòáå#ËG—-_>±|rùÔòéå³Ëç–Ï/ß½|Ïò–ï]þÚö×·ÿwûÛßÜþÖö··¿³ýÝíïmû¿¡þÛ?ÜþÑöÛWnÿxû'Û?ÝþÙöÏ·±ýËí_mÿzûªíßlÿvû_w<¶·ÝsûÚí붯߾aûÉW÷¾ºïÕ=¯îuŠ„zµA%£D(9j†¥cÙØ Øe¸Wp6ÜÇx> ÿþMÔÛ¨7Po¡6¡üQ±0•ŠJA)QÕ¨pìrÜS¿ÿMÜoñ“Ö‘rI˜Dl">ñqâûIk’ü“²“Î&_M¾Ÿü{òƒä…䜔…”·SW¤ÆPþõˆúõ.j j*… H’ 4(J‹Ò£jPÓ¨)Ô,j7jê jj?jÁ‚°L,›‰å`MØ?±¯ãþ‹{÷ ·€[Ä}‚À#ñˆ¥«._‰ß߇?ˆ¿¿´‰´‘´…DHü0黤À$^ÒÃ䢔Ŕ•©§Î¦¾Añ¥DQP”­t1ÝD¯£Ó¯Òï1Þ`®g~˦° ØûÙGÙ§Ùïs¼9ì¬9¾9A9ˆRNbN[Ž,÷sÔ'¨Q+QŸ¡‚P1(4 …ºŠ::Š:†:ŽúuuuuÃB±R,€mÃ>Á>Å>ƾ…sã\¸×ð¯ã?Å?ŠÄGàÉø4<Ÿ‰ÅßÅ_Á?ÀßÂßÁßÀ_Ç?Ç?Æÿÿ  ÿ;þ>þþ*þ6þþtì©ØOHÿ†úß“¶“òH1±"18ézò¯É×’_MYž’›RœòJêg©Ÿ¦Î§¾EÁSK©§_£ÏÜÌÜÈÜÄܤ²²?ä|Àñç€8áœPNgNe®4÷LÞµ¼Ïøßð×ó7ð·ñ·ówð½ø2~‰ C0)¸#8-¼$| ,˜(È+Ü_¸ õ ‡Â£ÒQTªUZD½‰þýúcô»èТßGÿŽúõ uõõõ úmt…c‘X6«Àva?Å}ˆû÷î\-î üjü·ø,|6þMÂû„wo> ¼Bx›ð‡„w o–Þ#¼Nøˆp!ö\ìÙX¯¸mqëã¶ÄmŽÛ·!îsÒ$?’?©’”Oª • Hå¤2R\b|¢8Q’X•(M|šøIRAÒ¹ä×S)y)ÿ†úï§~™z2õxê{”w(ïR> P)‰”xŠ/ýý:ýý6ýwÆÆ›Ì¦7s;Ó‡¹šMc±?á$sâ8$N*'ƒá9dN"'†ƒâde¥æ$çì<)Ì-~\ì» Ø5¾ë•Òå¥ï”~TêUº«TZ*+•—^.»Yö ìyÙ;å_–SžYžS¾³œ- —DK¨’]ÒÕÆ¨&T F ãÐ)hot"šˆÞ†Æ ±èt Ú AÐÁh8šŠNB§¡·¢Qh_4 ŒF¢ÐÑØ(l –Àb=qßýý+õz\+®ׂkÃyàsñ|üׄ-„U„PÂZаŽ'@^$Lø’°I ü ß|¾„o Á„pÂvÂ&Â7„Í„›±÷b¯Äþ‡ ‹‰û7ÔGÄ¡âBã0q踠¸»ñ¡$IKj"9Iµ$ ÉHRêH:@ª'%'&%&$&&Êe‰ªÄÍIáI ¤°¤Ð$u’&IŸ$Oú-ùUŠ8Hy”òŸÔoRi©”TajAê‰Ô©¿¤L½Ÿú[êãÔ›©Q>¤TRL#¥”" H)\ @)¦ì¤Pr)Z b¦dR ECQþúÝŸ~Ÿþ‘ÊDýýë6–™ÄŒe¦0#˜pfÏŒcÒÙ?²ÁœŽ…SÆ‘p¤œ*Ž“Á)ä¨9Y9‡Å1r´œN'‡³““ÇqGÏ1sÊ9‚¬â¬’¬ü,J9'-g.g&ǘ»™¿‰ïÇ÷ç— î . § ¦ & …ÏŠ‰»Œ¥ºRG©¹ÔVj-í)å•kËÿ õeåŠr™ôˆtà'‡Ë‰r‡œ¦ÈRô*Z•û”6U—jFµ[5¯šS]LÖ¨kÔ-êu­:B³[s@³Ãø½q»q£q³q-*•‹’¡l('ªÕ†â¡h:½ ÍAÛÐ2´]ÎBóÑt:ºmDïD«Ðt!š€Åa‰Øt¬+ÀæcDZ/°A8œ.· ÷=ÎÂMàFq8<Çcñ ¼Ÿ/ÀÇÅÿ‚Ï%ð FB>Á@(%„„J‚– "Ô„l‚€ 'X ‹ #””„§±q¸Œ¸ô8r#ŽW÷)‚„ !IP4A%% “:H‡I»I?‘’ö“~&í#u’zIGHó¤ÔDZ"5Ñ”hM4'Ú-‰¶Ä/’I°¤C}xÒ`RuÒPRsRkRwRoÒg)_¤|’òqÊ—)¦ä§XSL)öCŠ1åÏ”µ©ëR7¤–¦–¥îJ-N=›z!õEê©‹©ï§­LÛšæ“öIÚÆ´ÓV§­KÛ¶)íË´O(SÂ(¡”pÊ.Ê^ÊÊe’2C¦¡œ¦´R~¦¥ì§ü@i¢ŒSÆ(?QNRöPRú)§(Ý””ã”_(»)m”C”Pz#}Œþ”¾’±‚ñãuÆ«Œ÷Ëï3>f¼Åø/ã]æÛL.SÆ40³™vf.SÈ3L“ÇÌbîbJ™;™j&Ÿieê˜ÅÌ fÓƒÍ`3Ù»Ø+8_r.s®spº98W9½œqÎgŒs‰ÓÊ9Æù™3Ä™ã s¦9œ_8óœûœIÎ(ç"ç4g§s—s†sœsóo¨oÈRfi³€,KÖæœ-9þ9ÈfNzÎTΡœ“9¿äü”Ӝ۔ëÊmÍ­Ï á;ø¾•_)˜ü.x(¸*|! -/ì-ø¡ °° ðiáB1a—|—l×k¥#¥õ¥5¥Ý¥Õ¥­¥Í¥}¥-¥¥WËÊÞ-ï-w”[ÊÛËÇË]åÃåÝåmåõååCåµå]ååƒå(Q¶èkK²_yHuTuXÕ¯Rw«Ô{4‡5BC©á+c¸1Ìd„ÁÆaãu#Δbr¡ÚQ¨‹è~t'z}}ý#ú,z=€>>Þ‡þÝþ =‡žAŸBBŸC¢ã°Z¬ëÆ¢p\$.‹Â!p{p{q³¸iÜ»ø8|ÞŠ?o#Lš‡{ C„B/aa†0Nh!Lþ õç?: ­„nÂ(¡™ÐH˜$,Æ–ÇÉâÜqµq5q‡â:âtqD–„&¡HÒÒ Ò"é2é:iyÂUÒMÒ)Ò5Ò+ ÏH鉵‰ ‰u‰5‰õ‰¯$¡’ÐI1IQI'“Ž$=Jþ:Å3å›”’wJCÊÓ”7R·¤ÒS%©U©@ª,Uœ*O•¦~”öuÚ·iži省O‹IËJc¥QÒài4N;-#–¢œ¡|B}“úœr›ò õåå¿Ôû”G”»”[”ÊCʇÔW©at½•>N¿D÷dla|ËXÇØÊø†±ž±ñãc‘ù3ó>ó(ó'æ-泓ùóó.sŽy˜ÙÇ<żÊbþÈ<Ç|Àìbžd^bžeaf°+Ø"v?ûûö7œ½œ·¹;¸¹ ®'÷îvî*î§ÜCý n7”ëËý’û'€»ŽëÏÝÀýžëÃ}»‰Ûš5’Õ›Õ–Õ™Õž5”Õ‘U—µ-''‡—“—s#çBÎÅœÁÜ}¹£¹=¹s§r{s¿àoá£ùÑ|?Šßʯã×ókøµü|H H?v fó‚W„Oo ß.ž þ+<#|5eþ;ùïæÃ " ˆ‚á‚‘‚ÃG öì*,+\,|QXRüjÉk%ËJÞ,ùoÉJ^/ñߥÜ5¹ë?¥”¾[úa©oéñÒ«¥§JgKçJ”^,=]z¨ô\é•Ò³¥ËÖ”ÿZ¾¼âµŠËå§Ë¯•ÿ§âjù«oV)ÿ¥ü~ù+gÊ–.?Wþsùùò»å¯W`D¢"Q¡(F–”IJß^–N¹[ž§ÈUô)*(ï©®©.©nª®ªþ õo«~S]Q]WíSRO«gÕQšHÍAM¹ór¯IŠ)Ý´ßtÛôÀôйÉ|Ú|ÞlükO3T/êÌ»Ì]ôZŒ'æ1zæÌë˜`Ì7˜/0a>Ä%¬$Þ Ü&\$¼I¼C¸I¸FXGü/ñá}âò¸ÿÄÍÄÛ7÷füû¤8R<)ôaÂg _%|“ðeŠ„[¤o<6$x&¼“ðf;1>©+±7q ±/±#±?q8q(ñ?IØ$b&évÒ‹¤gI7“®'ÝKú3é•ä‡Iw’·¤lJiMiOiLÙžªMÕ¤ªSIiÿ†úÔ4z&˜ÆMKOã¥U¦¹Ò¬iŠ4}š<­*͘† < ¼A]¤ ¨¡Ô­T"L…SÑÔj C ¡n¤n¢®§ÆP£©HzÝBŸ¦ÏÓÁŒšaàÑ ÄxÌXÉü˜ù)s5ËŸ…dÁYxV Ì"°6°zYŸ²¢YXVë!à g³ ¬,kë3ˆ°¥ìA¶gg=g-ç;Î=N×À•pÅ\7Ÿ+ä’¸:.‡+åfr¸yÜt®œ p ¸U\:WÏÝ—u"ëJÖɬ²~Ì È)Èyžó$çEÎãœG9¢ÜÛ¹oæÝɽ{3÷ÜÒצd~?OâOðçù{ø=ü^þ8Œ?ÌŸáñe‚.Á>ÁAÁ!Áá7Âo…ë…7„Ûò×åûçïï—ÿo¨ï™¿%ÿÛüoòwä 0i©±)Éq W .üZp¾àZÁ‚•…’“…¯}X$-^]òiÉÛ%o•|[²¦deÉ%—|QòUÉ»%Ÿ—|Y¸+u—~×ü®é]¯—~Vúqé祟–†”†•Þ/}µì^éke·K–¾^ö¸ôAée/Jß*{^z·ôvÙ­²eå”o,ßT¾¾|sùhù¦ \¡"²Â¿SQáSá]®ØQPá[ñiExÅöŠõ ‚µˆt¢:Q³H.ªÙEYáß9ãJ$’Ï€€÷€w€·€OÀ'ÀûÀ‡R^(/ø;ŽPѦ<¢<ªüQÙ­zEýºú‘j™ú©ê¡j¹ú…ê5õc•A}Q}V}IÓÄh¢5'4g5¿hÎhNj* #ÕH6þê'“4c¼1Å8j¼dn³4YOX=m;lÁ¶¨BL & ƒÀ@0јL†Ž`P"†ÉÃ1hÌû†‹I°÷°8îî$îîîüûøÏñaøp|(~ÿœ'fD(1…H&Bˆ‘ÄíÄX"šH$n%ÒˆþÄï‰IÄÍD*Ñ‹"Æ߈{;î͸óq¯Å¿ÿzü…¸+qOã^÷‰÷$î[…ä›JˆH`$d$„''Pà ‘ Y‰{ççg'w'¾™ôFÒ“Ò’’’’“þ›üzò{É_&’¼&ùÃä É+“?Oþ.y]ò§É—’ýS|S¼RüRS†RRúS&R|RýRãR9©é©ìTSª%Õ™jN­Nu§ÚSw¥Õ¦IÓÜiMiûÓúÒ®¥ÿ+ï<ói£iýigÒÆÒN¤KÛv>m(íTÚž´/(_R7µ‘šC5Rk¨õT!•I5S[¨ÙÔfª”ZAµQÙÔ&j%UBµP«©mT-UE-¥QÓ©,j!5™KÇÒIô8z*M§éºn£·Ñ¤ï§ ¢'34‹Á`¤0ž0~Á}É,cu²jX:V?kKÀêf5²L¬.VkŽÕαªXz–ƒÕÄr±ªYå¬ìöoì[ìM%wŒû€{’ÛýÈ=À½Â}Æ}Ê}-sw?·“{˜ÛÁ=Ç}Ââ>âþÁçá~‘ÙÏ=Åý{‚{“{Ÿ{‡{»›;ÇmáÞâNr¯qŸd½™ýVö‹¬»Y!9%9e9_å~™ûIîŠÜÏsʝ录·<ïõ¼…Üwó.äý™÷o¨ÿ(ï+þ>ÏàSøY|ÿ(ÿ¿Ÿ¿¯œø C…ÁB_¡¿0PÈ·ä£òé¬nÁ³m¡¡ðÛ¢õE_m.Z[ôyѪ¢ï‹´Å¦bC1¼R’]ò}I@IpIxɶ¯hÉÖpÉŽ’í%!»œ»¬»ì:´ëÈ®¯J#Ká¥[Ë>)ó(ÛT¶¡l[Ùwe¯–û”û•û–”++œæŠüŠš cÅxEk…¶¨ÐUH+ÜŠ¢Šâ QEcQ”‘ºG4%͉úE»EûEÝ¢NÑ^^â”H$­­Ä(QHdT%Ý| xžÀv` ð ð%°ˆ'È›åmòVy“¼EÞ(g*Š Åˆâ´ò¼òsõ»ê/ÔŸª=Ôߨ¿V þX½Jý­ú}õõ'ê/Õ+Õÿ†ú×Õ·Õ/ÔqšCš?4×4—5¿jnknh¤† #ߘkÌ7fóþÞ ›cœ2Þ4Þ0^(<_øªy¹9ÁvÕÎwîrÖ;G5¦ cÁh0¥#ÆŒ±b–1ïcsþþÉtÜ9ÜYÜi\¾_D,%6‹‰ÑA4ˉvb QOeÄ b/±ƒè"†{ˆVâ(±ØMÜI”[‰â»q[ã7Æ{Ç¿-~{üêø¯ã¿ÿ4>$L°&ìJÐ&Ør³$Hü9ñ§Ä·’ÞNÚžŒIöNF$¿H†¥„¤„§@Rv¦ìK™N™I™K Nå¦6§¶¤6¥N»˜Ö“6v!í+²ùiÚÇä{iÏÒ¦±È÷ÓÞ#ÿ™ö&yù#ò7”J-UNý‘:E½AÝKÝM=Hý7Ô?B½Lý‰z‘zœz›z‡* >¤Þ¤ž¦âh§¨O¨)tB§Ò5t5½“žÉÈbä1 CÃ(dìd ŒEÆ7̯™OYÇXX'X¿°^K?Ïúƒu‡õ+ë ëëwÖeÖ~ÖAֻ饿—¾—uŠ•™þŒÊd‡°Íl#{Œ}—ý=g+g3gk¦&!suæŽLffdæ·™ž™™_f&fÆg~—›™™¹%sm&/Ó;3&30ss&$óëÌÐÌý™ÒÌÏ3Q™ÔLhfNfzfjæçÙ_d¯ÍÞ–½:Û7;3û«ìèœÊœÒß\Ï\ïÜ ¹yó¼òÖäyæùäùæyçmÍû2omÞú›ŸÁ¿Ä?Í¿Ì?É?Á?Ç¿À/ Œ OpF€Þ&çsòyùï¾Qøvák…Ë Í…ÿ†ú¦BcáÕÂË…E±Eð"L®ˆPSU„.¹Šë‹SJ0%¬bɦ’Ì’œr £„R’U’[RI<ºëØ®·Kq¥U¥Ä2BYT¶ UP/ -‹.×å•}TþUùŠå•+Þ­¼P1_ñvåtÅÝŠû+â*ߪ¼WñN势Wì«ð¯|¯ò?•g*þ[y´â|E¢è¼è¤è¶è¨è´èŠè'Ñ9QÜßùb»%R£4Hˆ@  €`8à ¾@,@–—Ë;åcò^ù¸|Z>*Ÿ’÷ÉåòIùPT)ʇgû§‡§»Ï”•Ï•vÕ÷jõvµ¿z‡ÚWýªæõ›š5UC×ü¨Y©ýXë¡}S»Jû®öíµjõ•AfÐþ õu­AiŒJ£ÌXò÷îú cޱÒ8mœ7Îý½«ý]ãïÆ¦×̯›ß0ÿj¾i¾k¾aþÝ|ÛÜai·Ì::;ËQí˜~L¦3™À´a1£˜NÌÌ.œW‚;»†»‚»„»ŒÛŠ?O¼Nü™xxˆx†¸‡x˜x™x…x—xŠx‘8OÜM¼JÜKü(nE\J<6>>>.>!žÏŽŽçÆGÆSâqñQñLÒtÂÞ„  ã c ½ 3 = éɼä蔂”½)?¤|”JJmKíHý‚ü>Iþ†ü íKò“´WÈoQäh2”C%{“בß%¿Nö#¯¦¬¡¬ …ÒVÑ6Ò¶ÐBh›iïÓ¾¢­¤½Kó¥}Bû”ö:CwÑ»è&†”!fHFF%ÃÌP0–3õéÜôCý„tazZ:!Ÿ¾-½<=2•ÎNOIǧ¤‹Ò“Ó©é‰év{Š=Éþ™ý‚]“Ù™ùsæ@æL¦:Ó‘¹'s>³>Óœ9–9’Ùšy8Ó˜iÏœË<šÙ’٘ٗ‰Ê&e§gÓ²#²™ÙIÙœlFvt6=;%žÍÊŽÍÌÁåøåÂrÃrCsyy yļԼ”+Ÿ‘ÏË/*Î+®+î*(ž*n*®(®)z”ËUoª”o©\ªU”:RWƒÕu°š¨Æ¨j´¥ŽQcÕ¡jú#ͧŽ&C“®Ù«ñÓÆiýµ!Úpm¨6Q¥¥i±Zom„6F Óhô Ú¿ü•7ã qÿß9,ŸŸÿ4ÆšòLÓæÍ+Ìo™?2¿c~n~hþ7Ôa^0÷Zº-}–‹Öörç{®®o]¿bî`®bŽcncNaŽa~ÄÆÜÇÂÜÀP°°¸rÜv|;~¸,öËØOc_Wƾûfì»±ïÅ>"~ûMì±ÄþIü,î“8~üÎøŠx]<___ÿ"Þ“´†ô)ƒ”Nº˜p-áFÂ/ ÇN$\Nà'žKü5ñbâÕÄk‰×/%^I<Ÿøn%©2Yœœ˜BM!¦Ä¥R~N9žòV*<5+u8A#G‘…d ™JN%'ãÉ|òFŠ˜O#Ðêhù´TZ! KcÒ¼i\Z-‡^Mÿ…~œ^Ãhb8öô¦tCútzGúÏéûÓméƒé£é­é}é?¥LoO?Þ>›^›ÁŽf{q¼x+y ™+x37ðByßò6óÞç½Ê[Ãû7Ô_̼›ù:o;ÏŸ·ƒçÁû˜·‰·•'ámäÝÊ|…÷{æÌG™úlKvI6]™­ÍÍÑæs ¹˜\Z5/#/+›÷¾†¿Nð®àmÁ›‚‚‹‚Ë‚Ja‰p—,œÎwå7æ÷æ7ç׿+ TŠ‚ï ·¶6Þ.¼[X]d(’ñ‹LEŽ"}‘ªh¨H\TY4\<^æ rEºþƒ]†}†ùóó*ö ì›Ø×°g°bœ'Å)pî®ÿ}lPl@ìŽØ°XïØ ±øXTl\l^¬oìÖØmKoÜ®xg|o¼=¾#¾9¾!žKz3ñYÂÛ‰$¼“øFâÄ[‰7K¤%Ñ“ÉúdJJj 9åRÊ©”ó)gS.§\HA¦f§¦ö§ ÈLr&9™L$—“ÿ õ‹ÉYd6y'¹‘¬&·’•ä6²•\GÖ“;ÈßSÒi>“ôu¢wb~â½Ä÷’"S{Èr3 $'ÈûÈ?·QæiÓ´ý´QÚím޶‡6C;H›¤¡¥MÐòè»{ÃŒ9ÆÆ#$Ã?#0ƒ”ÁΈÏÈ€fP2ÈQˆ ŸŒÔ d‰-d¿Æ™áuóªy³¼:Þ4¯‘×Ë›â óx <7¯7‘½7û§ì#Ù?dËÎ>”}2ûLölö\6+מW›gÎså9ó.å½Ã—ï-ð ~\¸…N¡KX/¼ž*ÿVþ¯ù 1…¨BxataTáHáÉ¢‹÷]):]t±èFѵ¢cÅÇ‹ßÚùo¨ÿáÎ7v~¹Ócçª_ï|sç; võ캷ëþ®;»Ö—ö–5—5•=+{£<¾œTYEªBV±ªÒ« UUܪŒª”ª ±Kì׈b²d£t‡ÔSºIºZÚ"m^ž¿÷e²3À¯À`xEöªìpxü <Ør®\'(‡*·+½•`e€ÒG¤ÚªòWy©šT *¾:O¯ÎQ« ÕÞ­æ[¯î±ÖK·U·F÷\»I÷ݺtku«uë¾×}®5ü•3­ÅxÌøžéCÓ'¦wM+Lï›MI&†ÉlÚfö7™ýÌ[ÌæïÌXÖ[VY¾´¬¶|a¹m¹d¹o²ŽYŸYo[×Û4¶޵ŽõŽ_:N8:.»k#öìjìì8eli¬:¶*Vûo¨¯Š=ÿsüáøCñÛ7&~—X˜è—ÄJKIOJf§D§Ž§î%Ï÷¯‘÷“wP¼)‡hûh'hh÷h×h·h÷i—h·iåô úIÆqFi†>£2£&Þq:£6cg†)CáÎHbw°O±ßàœàÝçç]àæ]áýÆ»Ë+åÝâ]äÝàãÝáÝãýš}>ûNöµì«Ù·³oe?̾í“ÏÉÊÍÉmÎëÊkÈkʃ À‚hÁMA¯°EØ%l6 Û…w…òŸæ?Ì¿›ÿJAcAKA\ádá‹ß-^(zTôNñ…¢ ÅgŠÏ_*>_|²ølñ÷;CwÂwúíܱ²sÓÎÛwÂv‚vzï Ø‰Üé³3lçÖÐ]v=ß•]šSšUÊ+Í-Ý]6[6R6S6U6Y6^¶·l¢ìzÙ›åÙå-Uÿ†ú•U;«ìUš*}Ug•­J\ÕTT1ESâÃâ^ññnq«xT<"þA¼_$õ•B¥þÒi›ô=Ù§²Ïe_ÊÞ’}+ûZöÙ2§&'?÷ßP¿0w–Ф#ÒÇÒ,GÆñd©2¶ì}Å» ©²LY¥,Wöiök>Ó/׿Ð]4l3Í™q¬¥É²ÉºÍêgõ±®°¿k/pö;¯;·ºR]TÙå‡õÇNÇNÅÎÄ®$q’&?'/¿¦E7Ðo0žeü‡ý4£‡õeNcÎñ¼£y邟…˜bÕNùα]ŸŠ¶ˆ¾yHÖHVK¾‘dH9ÒqižL(+‘­PJ…R¦LUuªFþöþ;,­¥û‡OñôÞ{ÏésrzMï±W(ÒU@°÷^cGAEQb‹¢"(#F0 5K¬©ï¸õäιïûûüžçýåz¯÷g_×ÌZ³fÍì™5k}fö0í«ÌÝ™ßgþ’ùSæ·™ŸgOý”ýsö·Ù·³Ñ9^9¹óöçíÉû#O™g›o•ÿeÁ‡5l»“ÝÄf.¾Väý'–߬~µ:kßgßkâ¬F¨æn·=vy=ŽóÀY‘I¡ÔI¿xB€ï=Ažz†;Ë:F‰#ÆÝˆ Mx9镤´äŒd”#i2­2­3Ïþ#»+ûL6.Ç.×.ïdž*ïõü£ßüQðkÁ9öyöwE¾EØ¢Ì"¹ý0â>ϼ>÷úÌkÎûYܨ__ Š…dy±2‚³‚3ƒa?EÿýMl|BjjJ*2Ó=•é“MÌqÉ…ç9ç9@ÿ“n(϶À¡À¾ÀÄ.*\)²ŸqüÂË•D œ§Y†Ä†üûs¬glFBzBV-ü¤Ž4læ¾ì#Ù²¥Ù¤·¼÷óóÝ 6Ùר¬Â ÂGŠhE”¢«®/ã$_õklG\qò™4ÊÖÎqÍÎû _^ˆ"Òòh™½Ùžy^yÁ UÉ=iA™Á™¬Ì­ÿL¶^h›’ùzá'lÞ7ùo¾]HaÝ ëß‚±a…°‡`{aû`ûa`a‡`‡aG`GaÇ`Ça'`'aæ0 ˜%Ì f ³ÙÂì`ö0˜#Ì ‡9Ã\`˜+Ì æGz†‚yÁ¼ah˜ ÃÂp0_F€a$FQa~0XŒ£Ã°@Æ‚Á‚a!°PX,‹„EÁ¢a1°XX,–K„%Á’a)0ð0K‡eÀŠa%°RXŒ+‡UÀ*a\XŒãêaX ¬&„ÕÁêa"X¬&†5ÁšaØiX ¬Ök‡uÀÎÀ:a]°nXL “ÁÎÂza}°~˜6SÀ”°AØL;SÃ4°aØyØL …]€Át0=lvf€a°I˜ 6»Ö¿›†ÍÀfa—as°yØØl¶[†]…­ÀVak°Í^2»ßìe³WÌ^5{Íìu³7ÌÞ4ûÀl—Ù‡f™}lö‰Ù§fŸ™}nö…Ù—f_™}m3ûÆì[³Ýfß™}ofeöƒÙf?™ýlö‹Ù¯f¿™ýnö‡ÙŸf{Ìöší3ÛovÀì Ù!³ÃfGÌŽš3;nvÂ줙¹™…™û.]ž»»P»¼vyïBïòÙ…Ùå·ËWÀ.Ú.ú.Æ®À]Ì]¬]A»ö™»˜¯Z½nnóˆù“æ‡Í“ÌÏÛ?yàBu{Æ<Æêió¯Ì3Ì;Í{ÍÏšçXݰöµi¶y×áA§/œžu¹0xÕãä¸}ÿ¤|cþ›ù´ù˜ùŒ¹Á\g>jþ¤õ›6'lÞwøÀ᧯œ#ŸwùÕÅÏ…êbæêîÚëö˜§¥çK÷äóË?øî÷ýÓ÷W_¥–Ombć¾õ´Å«_X¬š¿h±d~ŸÅºù£oY<`ñÅû/X˜Y¬˜?o!´zÁú1ëg­Ë­ß·yÇæ¤M¼Í#¶ûqû¯>søÎá7§P'–S”Ó)؉æâdïü’ˇ.,—@¦K°Ë8Âß5Òõ·×ÝüÜ4nj7¥›‹§«'ÊÓÃÓÛÓÓÓÉÓÝîéå¹àuÅëôÏèŸÐ¿¢Aÿ‰þ ½ýªï!_k__ ßc¾¶¾Ç}Oø’I®¥’LýÌ?$À?Ð*„Î    ?—›šš“šŸš™ú~Ö®¬w³>Ȳ·øÕÂÓ⨅Êâ ´…µ…›Å^ G‹/-v[üiáa‘bÕlõ¦õÛÖïYW[ ¬³AÚPl’mR@Èÿhû™­­íAÛ×lß´ýÐöÕ{òùåßm-l÷Ú~b»Ëö°íûKö&û½N8u8î`íð°Ó§r§§¿œ²’JœRRœ*œŠ’Ó?qùÌ%É%Å%Ö%Á%Î%Ý%Þ%Ú%Ãå”ËEÄã®O»&¸Æ¹&ºÆº&¹>äö–Ý-ÀMå6ä6è6ï6ívÅíª›ÁmÒmÂíšÛ‚ÛºÛu·ûÜWÜ~ñŒðLôLöLñÌôŒñ${2==Ižaž±ž4Ï OЧŸç^‹^+^W½–½V½¢£Ðvèè#hú$Ž>ŽĽæûº/Ýí‹óôMðMñ%û}1¾y¾xßßS¾¾Þ¾T_/_¦o²¯)„¤´SZ)])å EB顜¢fS3¨™Ôtê/þ?ûgúŸò øñ]è©ÐÜÐÔÐôЂÐÔð”ð¨ðäð´ðŒ{ò½•øðˆðÈpzboJ{JQjq*'µ0µ"õ¯TXÖ'Y_g}™µÛ<Ç‚eedjc`ággiA³8a‘mµÈ³`X„YÐ-R- ,2- -Ò-Â-NYà,…V-VmVß[k½Ûúõ7Ö-ÖÛOg½gçiO®g­g“çï^•^§½ó¾áeæý¼÷£Þ×½ô~Âû)oz=çý¬÷š÷ãè(´/:Ž@3Ñ9èht$Ú„ND¢‹Ðiè\t:†¦£èLô‡¸P\0N{Ë7ÃwÎ÷²ï_­o£¯Ú·Ú÷’¯ØwзÓWâÛå+õ÷]öUùê|E¾ñ¾lßP_½oØÞ|e¾µ¾›¾Jßß!ßLR)Š”AŠ&E’ÒHY¤pR)‚„¥ Sú)#”^ÊEEQSF)rÊ¥ŒZL­¦–SK¨QùT6Uç7í÷§ÿÿ?üýsük®,,¬lÐnÐ6i×i×h÷Âúë´}Œ?= z 3ðz ?ë&ëûДPAhihShChuè»á…w„óÂóÂsÂóÃÂ+Âá-á…á’pQxexq87¼3¼,¼+¼1¼$œMŒÆG¢íU)ý)çRR†S4)çSêRE©5©õ©µ©?gýžõ[Ö/Yû³,z,ÎYÔYôZô[œ±P[ŒYh-N[Ô[\°Y [H,:,š-æ,Xµî°î´þ݆e“m“e“k“c#±-¶­¶åØ*m»lŸŠÛ l‡mm{l¥¶Ù’l[lKlÛl)¶zÛZÛ‡B‡"‡2‡D‡l¶C¾C¦CŽCŠC®Ç!Ïá”ÊãSN6N'½Ó§ûàKN:§kN7n8­9M:-;­;]pšqºê´êtÑé–ÓŠÓ¼S¥ó —A—¹Ëy—~— ÷ä;[z—Q—^™KŸË°Ë9µ‹Ò嬋ÔEá2î²á²‰xÏõ}×\ßuÝåZëZæZâšïZêÊq}Äí+7{·h·Ýv·u§¸»ºt·q?ì~ÔÝÙý„û÷}înî»Ü¸;º{»Ü÷yî÷Tz>…|¹êù4òAäeÏMÏgO"7<×<ïC¾€|yÍó%äuÏEϽ^û½ª¼Ú½~ð~Ïû[ïï½ßôþÈû}ïÝÞŸ{ÿâý–÷wÞ?{åý úYôô2ú,Z‚CŸFo GÐh1º}=‰G7 Ðõèuôú z݉nF+ЗЋè:ô ´=–£è)ôô5t/ºÝ…žE÷£?Á…ã"q¸aÜî"î]ß÷|?Á‡ÿÿþ7üŸøçñãG}wãÍð¯áÁ¿Žþ-ü¾{ò½•ûñ¯âÄ?ˆ¿ÿþ]üøGñïãÃ?‹“ŠHm$!©–TL‘H\Ò^ÊQÊ1Š/…D¡R”>Ê$ešr™2N™¥LQ&(QT9µ“z–ÚCm¦6R¨"êej;UFm£vQ¥Ô&j?uÎïŠßWþ‡ýøWøWù3º¥=H3£=D{œ¶p=àZÀ%Ú4íaúsôçéÑŸ¥?CšþýAú ôcŒŒãŒƒŒ c€¡d 3ŒÐÀàÀ¡Àû˜÷3Ytƒ e…± z4èþ Ç´¤¶GBŸ}&ôÅÐCGBe¡C‡Bφv††ö„N„jCÇBûB5¡½¡ÊÐó¡S¡¡·ÃÞ Ï ×†ß ß $b:ü¾Mø/—ÇÃWÂç áËá«áOF\_ _ Ÿ½'»îdøÅðkáWÃçÃiÑ~ѬhjôÞXóXt,6{.Î,þ‘xJÒDŠ!åJÊÅ”¥ÔÖÔöTMjOj[ª,µ?õlª:í\šm–E–U–MÖ±,ó¬·-²|ÄòË÷-a–oX®Z¬Xì¶üÑò Ë5‹u‹W,ß´|×òcËï-¿¶üÆòiK¸U¦U†UŸU·UÕY+…•‡5ÜÚú%M;kOëë§m m>²3Ú¾b÷¼Ý%Û«¶“¶¯Ûݶ5³{Ôî²ísvÙ-Ù>nwÝvÝvÃö¢íÓvÚ=aw¿Ãr‡o5*‰ƒÔ¡Õ¡Å¡É¡Ñ¡ÝAæ0èÐìpÆái§cN¯Á_† ÿ þüø+ðÇáoÃwÃ}+œ«ùκػغ̹Üv¹â²ä²îrbÓåS×O\+]®U®|×Ýn07´Â'»î^÷÷X÷P÷t÷0w¶{„û)÷|÷l÷÷÷d÷×<y.{>‹´G~<€<ˆü¹9‰üyy ùòSä^äwHG¤-Ò ù%ò0r7Ž´Bþ„t@îAAó:ä%õêòêöêô:æíæ}ØÛÊûyô èw|^÷9êó­ÏnŸ_}ŽûXø¼ìóÏ›>ßû|îó¥Ï×>æ>|¾óyËçyŸ}>òùÄç+Ÿ“>¿ø|èó®Ï¸¯q_â¾Á}‡ÃãÂCcqS¸IÜ4ngÄ]Â}èˆGâQøüSx|:Þï‰Çã‰ø4|~‚Æ»âÑxw|6ž„gáÝðáøü×x|>ŠÄ¿ŒÀ3ñAx|*~ŒtŽ4DÒ‘úI?‡IçI*’žt‘¤& zHR’Œ4JR ¤}:å^XŸF  ÜG½FY¡Ü¢¬Q®R®Sî§ž£j©&ê0µ…z‰:A¡ŽQUÔ T5UG¥ž§ŽP§©z¿q¿¿U¿÷üýÝükýÏøŸöïöïðo÷oô—øÇô¼E{ƒö,íÚó´hÏÑ^¢½F{ö>ícÚô/èïÓ¿§Mÿ„þýsú{ôOé»éŸÑ¿¡Û2œ † ÚaŸ̘c\d\aÌ3fc =CLjŒ Œ LL ŒŒ  |–iÆ|ùóæ£ÌÇ™O3c>ÏŒd¥±âY‰¬XV+ŠõvÐ[AÏ=ôjÐËA/½ô|Ð3AO¹„x„¸†¸‡ BœC²BÒCºB:C:B^ý#ôçÐk¡Ë¡›¡«¡÷‡]½/ìþð¯Ã? ßñeĈ×"¬">Œ°ø3boÄGoF¼q/¬¿/Â<âˆÏ"ø-âdÄË»"Þø1âëˆO#GŒ8añvÄÇ#>Ž8am]]]͉Î.Ž®ˆ>ÍŽNÎŒÞ{ ëK‰ %džÄc#bƒcýbY±ÏÇNtHd&–%–&$Ñ“’ÄIICÉç’o¥¬¦B|ˆxC<øñâ+Į߹ ]E®Í®u®õ®?¸ýä–ï–åVäïžêíÞæ^ë.q?ç®vWºOºkÝuîgÝ…îÜÅî}îíî]îîîß"½ñÈpd²Yˆ¬F²‘ÙH2IDÆ S‘d ÒY€Ä#H² ù+²èž|vŸŽŒB†!ÓIHÒÆkÀËËÛÃÛú¥fOïWÑ ŸŸTŸ¼ÁGàÃó±Ç}J}ø>\?Ÿ:ŸšOºËçCñ©ò õ!ûûäûdù$øüåçSæC÷aú¤ù$úÄûùü€Ûû÷. —‚KÂ%ãqŸùvàyx¾ïGàãgðF¼¿†Wãï#œÅ_Äã‡ñmx~ ¯Ã_À¯àûð­øyü"^‚×à;ñJ|/~¿Œ?‡¿‰?ÀOàO㯑ž"¯“^!¯ž$/’ÌÈWIÏ’on“&¿@¾¼AZ#=A~€ü49˜Â¤°(!”·¨¯P¡>G}•ú8õQêmÊ3Ô·©±Ô5êu•jæw¿ßMê#~÷ù]£Þ Þ¦>é÷„ß õQ?”?Ò_á¯òWúß ë÷ûËý‡üýSâÎüLûšö%íÚ·´ïh»i¿Ó>¤ýJûžv„nM?J?I?F?Aÿˆ~nIG1Ð Ë@2p ÆiÆ5Æc±ÎH Ì L üžy˜ùóC&Œù>ss7óUægÌ·˜ß0?g~Éüšù-ó'æë̘™¬V«”õ}ÐïA?ýôKÐÁ /‚> Út8è ?ƒŽýôI2äTHA;$?¤/¤?d d0d(D¢ é y'ôíÐ7B‡î=új؇a¯…½öeØ;a_„½ö^ØKa‡½ö~Øsá?…ïÿ%ü»ðoÃýÂS#J#*#’"#¨e~)a§"r#ü#2#¸A‰ìˆüˆªˆ„ˆàNDMDlDvDmDHDyDL„ " "/Â)Ú>º=Z}/¬ß}&º'Z]}6º9º>º)Z-Š>ÝÝÝÝm{*¶2¶$¶*6/6-¶8¶(6'¶"676?6;¶,–›››7§ÓÄÁâ?Žÿ"þíøŸMtID$%rƒ’˜IŒ¤–¤Î¤æ¤ö¤3I#Éúd]òXòùä‹É†ä]©O¤>—úfê“©ï¥.¤Î¦.¦®¤.§^MU§^NKIµOsLƒ§Ù¤Ù¥Í¥­¤-¥]MÛH›LÛL›M»œ¶ž6v%-ðTô©ØS¬,|.‹œEÌjÏÂf›å˜r²só-OYfZZ&X–ZFX&Z&[²-}, ,Ó-Ã-c,ݬÔVÏÛäEäRƒ\F®"=PãÈ6¤9†ìFŽ Ï!;‘2¤Ù<‹\DžGj‘ßz¡½°^(////¯D/¶W¡—ÀkÐKåu/¬Ïòöõfz‡z“½ÞXoŠ÷ýè'1ç|Ì0c>Ÿaæ|f}–|žÁ û¬û\ö™ôYóyó,æªÁçŒÜçQ #òy³à#õy³á3èsÓç†Ï´Ï˜Ç1¯`>g}t>zŸ)ŸŸ!Ÿ‡1jŸŸ—0bd>?ã~Åý‰û —‰ËÆåâNáZq‹¸eÜUÌ÷þá0áÂQB,á7ÂOÂç„? { •ð&a7á8aÁŠð+áAÂWW‚Á…àAø†ð Á@&à?Þ'À6/ÂÇ:E ì ‚5Á›ð=áœð.ùmò×ä뤯Èß? H~Ÿü-ùò'ä_ÈoSà”XJ%šEI IýÊï ?˜ßç~/ß“o‹¾î÷žß—~ßøíòûÀï-¿OýÞõûÖïºß×þD_ÿKþ£þÿ)ÿ¸ÿ¤ÿyÿS飇h‡ih'iiÇhæ´ã´4=mŽæNGѽè.tK‘åYËNËZË3–K¡e¿e¯e£e“åy«@kº5ÓšeÝewÁNn7h×o×g§³ë°SÛuÛÍØµÛ©ì’ì”v;£Ý°ÝY»e»;­]§Ý‹6Ž>Ž(G Ç“ŽG‰ŽvŽæŽG'G/GgÇß‘ŽdÇŽ2x7¼.7Á…ðx-¼~~.…‹áð>¸Þ€7ÃSáÃÎ#ÎZçw\v»HÄ1„‚‚ðE¸"|h„'baájîzÌõ¤ëq×W¹«ÔµßUæºÇ­Æ­ÚmÝý¨Ç1Ï=züàñ­ÇW‡<¾ö°ðøÔcÇ»ž>ix~è¹Ë³¹„¼Œ|õ<ê1Ô»¨]¨{aýݨý¨wP/¡^EýŒúõ>êÔ“¨P0Ô'¨½¨ïQ_£G½ŽÚƒúõ1ê Ô%䨯PF½Ò½ÎyE{'zŸòNõNðŽ÷ÎõÎô¦{¿‹öƸa~˜c<1dÌŸ˜ƒ,ægÌ>ŒÆ ˆ9‚9Šùã‹Ùùã…Yô¡c¾Ã`0{0DÌLƳã‡9ùsó#Æc±Â|‹±Æ|ab~ÃÂÄíÇíÃÁíÅå㞺vw·‰[Çmàò ij„B¡ˆAÈ$üEš R‚ŠÐJ8C($ôÄ„Z¡œ $ÔÚ]„1Â!—NH&$ÊÅ„vB=aÐGÈ&¥„Ãd[²5Iv'ï%#Èžd ™NÆ’=ÈûÈŽäýäãdÙlI¶!ß ë Ÿ$ÃÉ”$J"%’JI¦üFÝGý•ú uõõ(õ€ß1¿ã~Ö~V~~{ü,ü,ýÌýöùò;égëgð»íwËï¦ß[þ šfÁÿ™€Öýoùßðßôßð6àºÿšÿ¼ÿªÿMÿÜ€†]€ÍæN³¦ÙÓà4 M³¥9Ñð´‹´z=“žB¤Ÿ¢GÑ£éÅô:ƒžK¥gÑ™t#œÄ`0ž |5ðµÀç_ |)ðýÀß|6°4°$°0ðr 7ÅÄ3ý˜&…éŤ2ÉLÓƒIg0‘Ì:–ˆUÊ Š J Š JbE±‚ƒ2ƒ"ƒ‚‚Òƒð!¸tˆOˆoHy'¤"äBÈXÈ{¡¨0÷0Z˜K&Ì9Ì3ŒöÚ5, F¼'ßW<æöVøÑðá{Â÷… _Šü3Ò>2 ’™™éi¹'2: ‹< tŠô‹¤F""‰rü1ò—Èï"#÷GÒ#¿<ùi¤6âxäבû"¿Œt‹$Eþiy"Ò:’Ù™ùkäáÈ"wGúDGˆü<Ò=Ò6’iùDŒYÌzô“1×¢‡£W£OÆlD?óXÌý1kÑOÅ<3Û;«ˆÕÇ^ˆ•ÇÆFÅåÇÇ™â&ã qãŒqcqSqñÑñ!ññÆÓâÃã#ãýã#âÃâýâãK<žx,Ñ+•處(OôIÂ$¥%%&%'¥$%%e$e&¥&¥'-&]LšKZJº’4˜4“4‘dLº”´œt9i%éá”ÛÉ÷§Ü—òPÊ#)¦<òDŠuêŸ÷ä7¤Mý=õÙ´§ÒžI{.íå´ÓžH{:FL;’nKÿ%Ý;}wºWºkzDúWéÇÒ¥ãÓ}Ó-ÒÝÓÑéÄôÒ=ÒIéߤۦ#Ó-Ó)éæé6é'ÒíÓ¿M/:UpªðTþ©ô¬Œ¬´¬ì,EÖµ¬›YY«YÔlZ6=›’ýLÎS9OçðsÖr6sjrërksr«óxyÎù³ó— B oNYª-Ï[N[^µ¼`9k©³œ´ …ÏÃ/ïÂð‹ð ð9¸®ƒkáÓðq8Íù¢ó½°þ„3Ò%ŠBD#a"‡ˆE#Xˆ$‚pturµqqr=ïªpsÕ¸j]U®j×nû݈nn_x|â±×ÃÕƒìAõ°ö°ñ xøz„zøyØzz8{xyüêõðð°÷øÔócÏÏ=?GD9£(?TŠ‚¢¢‚Pþ(oT9ÊŽrE¹ Ž£lPî(KTêO”/ ‡rBy¡h(ª×_^ÅÞyy?„6C¿b1½˜¿0 L¦ÃÇ´`Ò0¹˜dL& ÃÅ´aj0í˜nL+¦ £Æ4cú0y%¦“©Âc 1ZL6&Ó‰iÀp0RÌ1ÜIÜq\!®÷® ×»…SV K„‰7?¯¾">F4'¾F|ø1ñUâ¯Äç‰ó„ÇïÉ·E R‰›„+„/‰{ˆ0âoÄ Ÿ&î'>D¼IX#üL|“xƒð ñâSÄ·‰ß#ÆSÉqäPr9œœBf’£ÉaälòŠ %›rŠ’AÙO=Iµ¢ž zúQýÈ~þ~?´Áï>ÿüôòOõ9àÑ€'^ x.àñ€šÂh,Z-œF …Òˆ´`Z­Ž^EÑ«é•ô`:^HçÐÿ¢óé%ô2z#ž‘ÀÈbœbd22ÙŒXF:#•ñyà±@Xàן~XÈ ä^ Œe0ã™iÌTf3‰™ÈÌg&3£˜9ÌHë\f3œyšÕÎjaIXAâ Î Ò ª 3AA=Aì EPw4¨?HTÔ”ÔTT$âõQCŒ!!¦}Ƚ°þ®PD¨Kh\XtXDXLXRXbXBØKáÙ‘e‘Å‘E‘’HEdg$?RÉ‹lŽEž‰ˆ¬ŠÌ‹FF²#+"OG–DfFÊ"å‘ù‘ÜÈšÈÊÈáÈœÈÆHeä_‘ç#Õ‘ªÈ ‘µ‘i‘Ñ»c>ˆù$³'櫘·cÞ‹y-æ˜ý1_Äìù#æPÌ»1߯|óeÌo1ÏÇüóMÌ÷1ûb>Šù8様]1¯ÇÀbž‹Y½»»{-öVì•Ø±k±×ccçb/DzãŠãŠâ ãfâ.ÇMÇñâsãâÓãSâ³âOôIÄ$j•‰ç³’K~ ùvÒSÉ7“O~0ù‘䇓J¾•t_²Yò³)Ï¥<òTÊio¦½›ö~Ú;io¥½ž¶+í½´7ÒÓ(iŒ4j'½,= =?=0ý¯ôÌôªô¤ô{aýòô¼t^:#=;=$½4ýJzrzxú©ô’ô ôØôâôøôèôÄôÜôŠôàô˜tn:;=!ýËô¬â¬ÛYŽÙAÙÙÁÙÙ¡ÙáÙÌìÈì°ìlEö@öË9Õ9‚œrïË}$—[Û•Ûœ{:W’Û™Ûš+ËæMä]Êû#ÿÏ|÷||·ü¥‚å‚Õ‚ŠÂÛ–ZÁ¬6,¶zÄjÍò–åVOZÝ´|Ü*Á:ÑzÉzÁúˆý>ûößÛïµ?fÔþ½£=Ü~ýnûßí¿°ÿÃþ'ûÏì±ÝçÈv:þåXêXãÈwä8;Þv¼ _ß„¯Ã×à:oÀpÞ„ßïüˆóCÎÏ8£]rÙˆ"D:¢‘8…ø Q€(Fä! W„«»«‹ëÕ  ®zWƒëQ·:·†‡Ð£Ö£Ä#îž|W7ß#ãƣڣÈ#ݣʣØ#ÉÃÛ£ÞãKOŠ„ÊBý…ŠBe£ P)¨T<*UŠ*Bù „¨T€W ËéUçUïÕà]ëÍõ®ó{Wy×x߇}û Ö„ÙÀ¼„]ÂLbÞÅÞÆÌaŒ˜7°oaoa>Æ.c®`^Ä®c.aö`ÅNa®cžÂÞÀ\Æ<†5þŠýû v óöì æe¬Žƒ+Å•àÊq÷ûÞç{÷€ï^âGÄ`b QJL'&㈉DO¢1Š'fˆ¾Äp¢‘B´&Zˆ™Ä "‚xуˆ#ÑÄT¢ 1ˆ!†O‘DKdëÈ5ä|r-ù/r™Kn ³Ér!¹Œ\L®"+ÈõäJÅ‘jMu¥ºQÝ©ª3Õƒ §:Ý“ï­xRcüâüâý¢ýÂü‚ü¢übýX~ ¿Gýñöÿ0àí€×Þ x3àƒ€×> x#  €PDK¡ÅÑbiôÓt%]N¢+èjúYz½›ÞKÏc3þb0JùŒÜÏu¢Àú@1³ŸÙÆä3Ìf3³ÙÀìaeÉYý¬õ  A³A—‚΂ ¾4´´´t%h<( „RR2r9d6d.d*d:Š- + + ;V––ör¸E¸M¸u¸e¸y¸Uø®¨_£ž‰º/êÓ¨§£‹z*ê¨Ç£>Žz3êzäçQ×"z2j%ò³¨åÈ—¢Ö#/G^¼ù|ÔläLäËQ·"?‰z+ꫨ¢nF¾µùMÔGQ—"§##"7#_z7 õDÔkQ_GyÞ“÷ûö1ÈT -ÆCqŒ±qޱŽñˆÇXŸÆàc°1–1æ1n1ˆbŒoL` !Æ%Æ+Æ"†ãノÁÄÀcŠ{2îŸ'â^‰{5‡ã^Ž{.îé¸ÇâJâÊâJãæããæâ”ñÒø¦øsñCñêxMüéøóñmññ=ñ#ñ]ñ’øÖxmü‰'SM‰ã‰ÚÄéÄÑD]â¥Ä¿’ ’Š“ò“ÞMþ ùÃä]É_%¿”üFòËÉÏ%¿–üQòÇÉ/&?Ÿüjò Éo&¿’üzò)»R^My=åÝ”R^Ny%…šJJ%¦¢Sq©_§}žöiÚgiߦ}”öUZTZtZ|ZXZxZdZhÚ`zWzwzGº6½1]™¾”>ž>’>“~>]—.O_HïLŸNïK?›®HŸJHפ÷¦_L×§_JJ?wOp¿!Ý.M¥³NñOñN NÕž*Ë*É:—õPö£Ùdó㳓³c³³•Ùo缕óQΧ9Ÿä¼›óFÎÇ9u9æ^Ëy.÷ÅÜ—s_É})w,w W™{.W«ÈíÍÎÉíÏ=Ÿ+ϭϛ˻œw5o9o)ïPþþ|t¾_>9ß;? ß?Ÿ”ï“Ê÷Í¿Qp­àfÁí‚õ‚GØ÷±7 ®<Ê~ˆmÆŽ(ï~o¥w«÷io‰·ÜûôwXoìQ,û-ÖûÅc°ÎX+ì'X8öWìŸØ½X,…µÄZ`m±D,ëŽý 늵ÇÚaObͱ‡°v8[œ=®W…ãáÎâd83ß}ö­&öK‰2b QAb%ÑŒÄ! ˆ"ŸXETÛ‰MÄb/‘G Ö눵Är'¹ÜD&wÏûÉjrYFV’[É#ä²”åÛ”ŸS~Lù.% •‘ÊLN½–º;íû´Ò2ÒRÓÒÒ’ÒRÒ>Îx;ãÑŒw2Îx�ã§Œß2ÞÈø ãùŒû3e|™ñtÆSýéoe\Kÿ0ã…ŒÍôõôï2ÈØ•q;ýÓŒŸ3¾Ïø,ãÅŒ'3žÈ¸•þXÆ}×Ó_Îh95pªíTó)É©ÆSí§Nµžâf©³žÈ~>ûÙìÜìììÌìÅììïs¾Îù6gWî;¹ç~š[˜{%w.×”;™»˜;‘;›;“{)·9¯=O”w:o-ïZÞfÞzÞîüÐü¨ü˜|V~p>3?ÀzŒõ ë~Öó&óaÖ"s‰ù,ëqÖ4ëËàß‚÷ï>’óSðgÁGƒ÷þ4øD0,ø×à‚ÿ|0$$$8$(d%d9ä‹ÐÓaÝaò°¾°ž0YXKØL˜s8<Ü%<"*4*%ª"êTÔ_Q Q¥Q̨²¨¼¨Â(Z+*.ª8*0Šå••••ÅŽ ‹*‰ ŠŠŠbDDåD¥FEùD·ÅTÅTÇôÄÔÆðcšcbZb1½1]11òqLMLwL_Œ(¦1¦=¦)¦5FSó}Üî¸ßâþˆÛg÷cܾ¸ê¸š8AÜrÜÕ¸·î…õ_Mx9Ṅ‡žHx?ᙄç^Jx$á©„GNx3á…„×,I‰”Dr"1ñTbfâf"1É<ùd²M²eò‰äÃÉûSö¤D¥§þ”–—V’–Ÿ–›V”VœÆNû+­8#"£&•aŸq8ƒ•á˜á’q4Ã2Ã*Ã=Ÿ‘’q"›ÁÈpÈ°Ë°Î°È gÐ2˜®È tFh†y†S†ìTÇ©ÞS]§zN‰O ²j³øYïf¿“ýjö[Ù¯eçegdf³³5Ùêì¥ì½9rŽåÍ9˜³?çÃÜÏs¿Èý,wwî·¹_ç~™ûM.,7'·4·8÷¼k¹+¹ë¹›¹¹k¹×soæÞʽ‘û`^[Þ­¼›y÷çßÈ;’Ÿ—_™_˜ŸŸ_ž_œÏÉ/ËÎ/Éÿ+¿&7{/Íþýûkö7ìŸØ°{òÛ<ÙûØûÙ°dïaÿÎ^ ù’_W˜TX[x¶p´ðzáíÂ]E½_d[ôWÑ7V_Z}e•c_`ŸmŸg϶ϵ'9ýæŒqÁºt ð®×qy+K³‹—=†=fëCŒållŒ v ö v ¶ vv¶ n©YÙñ SÝ“¿® †¹…»†‹¢¤QQ]QQõQ Q­Q²¨î¨ö¨þ(EÔÙ¨ž(aTc”*jWtS”8ª- })f*Æs!ærÌlŒ)f<æjÌdŒ:f,æ\Ì|ÌHÌDLYÌùmÌý±+1Ó1º›¸ãqq'âÅYÆYÅû,áã„v'À¾O8œðuÂo $|“ða %üðU®„_~Oø%a_¢bnbNbvâ­D³¤’îKrIöLvOvH¶OvMöJF';'Ó=’ɘdÛäC)‡SޤOù$í—´_ÓþH«Lã¤U¤Õ¤U¥5d$f¤gˆ3ò3ØqÉU…å§2b3r3Š2’2„iue•¢ŒÒ N†êÔ¹SC§ê³Îgfu"ƳF²tYd¿Ÿýa6?[]™ÍË.ˮʾÖ/ÉædŸÏÖfgd_˶̱ʱÎiÊÙ›û[î/¹Ïä=‘÷XÞSyfyÏå=ž÷PÞ#yçuäå=šo–ÿPþ§ùßçË?‘<_–/ÍïÊoÏ?“ßß”.¿1¿;¿9¿5ß…mö`c;³³Øöìl¶5Û–íÆvdÃÙÉ…‰…ã…÷ÝWôrчEŸ}VôiÑ'E'Šìо³úÞ*ËzÝZdó¯¶/·¯°¯²çÛ:ê/8>ïô»óÎ:w!H®ín×=ñzÖë)¯Ç¼žôzÚ+ÒKï¥óÒ{_Â^ÄʱCX-¶;ŽÃb/c•ج뎫Å=éûécÒ»¤—IŸ“Þ#½Oú€ô)éÒ.Ò›¤ÏHOR§Z7m‰öã Æ½°þ{Œ7¯0ÞfÔ2Ð>»Y¿±~f}Áú•5ÇšeûÓƒIÁ´`bp`0%Ø/Ø'øxȱˆèqÈÍ[!ôÐóaš0T¸G82ürÔRÔ|”6Ê55u>j.j9j#j$jûDìñ7b½óx챞qð8ç8‡88—8Ç8DœS\lœ8®1n-Î2áH±„= 6 ö ¶ Çì¬ö%X'8$ìO¤%$æ%>œôHÒcIü¤ª¤ê$^>™žLMÆ&“™ÉÉÖ)V))–)6)¢”=i¦Õ¦U§é3dʌΌьÁŒÍŒ¹ y†6ƒ›1•Ñ—¡Î¸’1‘¡ÉèÎPdtd¨2.e=uá”!ëÓìϳ¿Èþ$û£{âûõÙâìÆl]¶>{<Û%Ç)‘ãÓžÓšs:§-çHîáÜý¹å¹¹¯ç½”÷aÞ[y»òÞÈ{?ïݼó>È{;ïͼó:óžÈ<ÿéü'óÌŸÍ¿œ1_Ÿ?™?•oÌ_ÌWçŸÏŸËË׿›ò5ù†üÑ|;ŒÏŽdDzÉìP6ÍN`'²ƒØ8¶ÛŸMbcØQl*›ÉgÙ v;†íÃÎ,L+ì(¼QøeÑž¢½E'‹ì‹Š‹~´©³o°¯·Ÿp<è,EÈW\\;Üθmz¼âõ²×K^/x{M{OxOz_Å.bg±ÓØMìö vûé{ÒפIß‘¾!í#ýDú“ô égÒÒ¯¤Ý¤½¤(/R*)ATUâÇ ¨ h ˜Ó4%m€¶LûñãcÆ'Œ]ŒOï‰ï×1¾øÀõÀ£¬#¬c¬Ã¬ƒ¬+,fpppXph°$äv#ôB˜6ì‰pŸpLøûÑ·£î¾õFô}ÑkQfÑE?ýdôͨ×bŸ}.ö•Øb_ŽEÆyÇ5ǭǹ'` > ȯt>A›™ì”bŸâb—â˜OIJÝŸ¶7MœÖV—VŸöDæ ™×3ÞÍ|&óÅÌ[/e>›ùIæk™Oe®fÜ—¹žñHæÓ™/g>Ÿy-ã±ÌŒÇ3ogÜÈx2s-ã¹Ì‡3õ§.ž?õUö×ÙÍÙ§³ofßÊvÏñÌAæ¸åœÉé̱Ì5ÏuÊ=‘{<×&÷Û¼ïò¾Éû"ï³¼ò>Íû*ï§¼/ódy}yÒ¼góŸÏ.ÿ‰‚G Öó*x¾`#OÁ#O<\ðJÁ‹±sÙel6;ÃNeçß“3Ï_ìLv»ŠÍ.fç±KØ•ìBv)»Íeg±ËÙìÜÂü¼BSádá¥Â©BXÑWEÎEîE®Eˆ"§¢´¢_¬~E¶u—}«}›ýçÃÎý%bÉõ¦Ç^àn`Äm`ïÃí' #!%$"½Eyò%˜úŠ?6`ö%ãÆ× [– k™œœ|2ät,TöjôgÑE¿ýAô›Ñ¯EýUô{ÑïFývô‡ÑŸÆ¾ûFì»±»bߌý<öX,>GˆÃÅ]‹c$Ð&&0žMz1©&)991Ù5Å9‘r(í@ÚÁ´æ´?3Íü!óÓÌß3Ë„eþœùYæ™_dîÉü&ÓtjòÔÄ©ï³ÉnÏ6d£rzs¤99޹ö¹?çýžw(ï@Þ¾¼½y¿äÝ ëÿ™7÷Rþ+ù¯æ¿œÿK¾uþço¼YðEÁŸ|Z°«à½1»‘ÝÂ>Ö±ûØJv»‡ÝÅ>Ín`+ØÍl ›Ï>˲«Ùrv={€]Ç,,(¼\x¥p¾ð¢W‹^/ú¦È¼È«U”^Ôl.µï±ï·';w>á¬A !–]ßóz×ë#¯÷½žÀ=Š{ ÷”¯Éžä@²&½My‡Â¥„PGü4~Z¿ó~ø€ê€ï")èÀra9±œYpÖ k‰•l¢Ã…ý}ôîè/¢¿þ!ú‹ØOb?Šý,öÃXr\{\[Üõ¸à„È„ð„脨„„—’N%g&ç%§'§&g%g'»§x¦N;‘i™y,óx¦Eæá̃™G2fÊü3{"›ƒÉéϱÍuÎ5ϳɳÍ;‘g‘w$ïØ=±þÑ<ë<˼Á¼×ò?Ïÿ5ß>ß.ÿPÁ‘‚? ü\°»`oÁo?|WðmÁï?\`«Øzö(»Ÿ=Èc±ÇÙ3l-{„=Ì^ekØ:vcábá÷E»‹¾-ÚW„+:UTRô»U®õ´ã%GŠÓIçÄ×±n÷{>èiæù©×‡^Y^—½ŸÃ={ׇs&ÁIïS©aÔ*)@MC³¼Y§‚}ÉÞýsôoÑßDÿýG4,öÛØ¯bwÇÄùÅQãnÅ%&$'$$Ä&L|-)'•‚LiIóÌ´ËDd:dºfvg÷dß—cŸç”÷vþ;ùïæ[8X+8Yp¼À®À©àDyÁuö:{=Á¾ÌÞ`O²×Øöö{™½È6²çØ+ì«ìiö<»³p°p¹ðjáÃEoýTôcÑEû‹,Šî…õÉE¤"B±èœý€½¹3ÞåK¯yï+Þ/àÜH$Éô傟ÉOCû‰!f42°¬ìà¸|øþèŸbŒý>öxlf©„Âä¢ä¿’ÙÉmi­ii¸LŸLL¦)ëPöþìÃÙ²lS¶kž&Ï)Y€.ð.ð,p-p/x ðû‘ .|¨ð¾Âû +¼Í¾É6+ü«ðí¢CE~EþEEjû¯¼š¼^ކ{÷:Γô¥Š2BÓÒ~f`X8Ö+/8'8?87øb˜!ìPôáè#ÑŒ¸À8V3îv\NBn'¹,¹4™‰Ï$f’3©™G³)9n¹>„|Á…O>[øLáó…Ï®>Vt¸ˆ^Ä, ,b½íàM"²~‹­K*OîJóˤgdúgºçùP Èþ/¾P¸Vøø=±~Y‘É‹´ÎÂFÿû{쟱… ‰ÜäÞäãÙÔ¿yŽG./•ç‡ÎÛ•ÿRá+…GŠñ|÷1åDterxfhfX&&Ï'ï«ü× ?¥.JˆÈdˆ ýpyobHXRYapÑÑ¢œ¢ûþïõ¯ÿ{ýßëÿ^÷=ÚøâÛ{nÝw_´x›š5Ú¨d»~z›Þ׺MƒÛ¶éömxf›ntnÓ€îmºÒ³M)²mºxv›ú¶é\ÿ6ÅlÓiÅ6õܦ“CÛÔóÜ6½¨Þ¦®ÃÛtìü6…k·éÈè6µÛ¦jÝ6µߦƒ·©¹q›Ê'¶é1Ó6=;µMMoÓî™mºïò6í˜Û¦\ôÆ¿ì×´°-ÿai›Š–·é·+Û´vu›~µ¾MùÛô³kÛ´òú6ýèæ6-»µMß¿ï%ˆþuÿ6}ûÁmZ`¶M_x›æ<²M_~l›f>¾MŸr›¦>µMŸ~f›&>»M~›Æ¾°M~i›F¾¼Mxu›†¾¶Mo½¾MYonÓkomSú;ÛtíÝmê÷þ6]þ`›’>ܦW>Ú¦¾ŸlÓÙO·©ÏçÛtê‹mŠúj›¿Þ¦îßlSý·ÛÔå»m:úý6uüPÍÿ¹ß*9\rûö„Å·ÿír,9w—Ìò?êÿÏ®¡ÿ—íUÅm¥·o·”¶–¶Úó?ôvºô@éÁÒC¥‡K”-=Vz¼ôDéÉRóR‹RËR«RëR›R[ÐÚ®Ô¾Ô¡Ô±Ô©^ê\úÏ\J¥®¥n¥î¥¥ž¥ÈRT©W©w)ºÔ§SŠ-Å•ú}|)¡”XJ*%—RJ©¥õ²ÿñ eu2‘¬AÖ(ËšdÍ2É?Z–µÈZem²vY‡ìŒ¬SÖ%ë–õȤ2™ì¬¬WÖ'ë—Ée2¥lP6$SÉÎÉÔ2lXv^6"ÓÊFedc2L/—]”dFÙ„lRf’MÉ.ɦÁ]2ûbÇ{qŠË!®¢¸òŽB܉âãÿƒMùœwWm-Äw~sfG~¼äÇ ÿÿr5—HJN—´”´–´•´—t”œ)é¼§ã_+^)^/^…l³Q¼Y|½øZ±zÇRЧ‹/AüMߨ‘N›Šç ~þ.K/_ùǪLüDÑØÿBw´Xw§v¤Xûÿ26ÿß\Sÿ_Ü{¦xF6+»,›“ÍË®Èd‹²%Ùò«²ÙªlM¶.ÛmʮɮËnÈh`¥éÿeµwdÌÊÚ¡A;ÔÿßÚøý[™úoeÊ¿•Éÿ›Vö¿Ðã@uÿ¡QI‚KŠKJKJJø%Õ%‚øÿhYÏd ªÄ«Ä»]âS‚)!•K%øß\ öNß%Œÿ:’Öâ–ÿÇ5k,nøöâ¶ÿ.–ìÈê!*.ýoùCe ·„WRUÒ\Üé_ýÿ©///ï)ÞW¼¿¸ܹLº%%SŠñÅ„bÿâ€bFq`1¦[|XЫØûßFÇ-®‚$]%Ý%=%ÒYÉÙ’Þ’¾’þÿC âHË¥ÒJ)WZ%åIùÒj©@Z#­• ¥uÒz©HÚ m”Š¥MÒf©DzZÚ"m•¶IÛ¥Ò3ÒNi—´[Ú#•JeÒ³Ò^iŸ´_*—HR¥tP:$UIÏIÕRtXz^:"ÕJG¥¤cRT/—^”¤Fé„tRj’NI/I§¥3ÒYéeéœt^zEº ]”.I—¥W¥+ÒUéšt]úŸã.‘–BÒ é¦ôšôºô†ô¦ô–tl¯lŸl¿ì€ì ìì°ìˆì¨ì˜ì¸ì„ì¤Ì\f!³”Yɬe62[™Ì^æ s”9Éà2g™‹ !s•¹ÉÜe2OR†’yɼeh™ #ÃÊp2_^Fe$YF‘Qe~2Y€Œ&£Ë²@SÆ’É‚eŲY©¬LÆ‘•Ë*d•2®¬JÆ“ñeÕ2¬FVûoèR,õ+õ/ (¥•ÒK¥¥ÌRViPipiqiIiiiY)§´¼´¢´²”[ZUÊ+å—V— JkJkK…¥u¥õ¥¢Ò†ÒÆRqiSis©¤´£Ø®Äþ\yË«k¨ÖöžìPÿ¥Hv¹xòJ‹’=eûÊnßÞ_¶]{°×¾Ì¶Ì¡Ì®ìPoi™EïÉÞ’²b¨ng/ghrn•ýÝ×EŽswß]•sŽ@§¬Ì²øm²w¶\ØÿwSY9¨;ÀAõþ«ÝžÞ@æ Òá^¨÷ äæ‚ú7r& Ú úo©Þ iìí=XæZ†(»ý×$ç?e=•ÿ)»}[P{\ »Q8V7vûö!ÐêQZy¸ìH¯ÄW•ñˬz«Ëx;÷2þePg+ònßv/€š)Î4稹\¾UÓ[ÙWyˆw˜÷÷Z«·òú±­|xíÈ]£®-«)³î–‰¬®¬¾Ì¶×¦·¡¬”Dÿ˜Û1ÎqÎ ÎIÎQŽ% lçÝ‹éµâx€;ú€’9Ç‚sš·W/º÷îv«œÚÞeÎGÒ+è½Ê©Û©[ºë Íp„½œ mîm„êê{g9sœMPw…Ãë]â,p9§{›zkzç¡þù½—wì+ºsñ?î¸}U÷z÷¯©Xìî[ô@ÅíÛ›€n”;÷Ý(_/wïó:(®AZ7˯”®@ôAëŸ+ß_1_¾Z¾VîÙçÚw½üj9¼o¡Ü«ï`Å‘Šåò=‡*Ë‘}{+0}.}·ÊÝ V ©lïïï+$ïï¯Ô@+¥¨lî®lêoéïê?Ó¯¯ÔVÖ÷7ô_¨TV6öwö÷ö«+O÷‹úÏUŠûÏWJ€¯ª@«Æ*»ûu•gDÚß×?ZÙÖ_øŽþ¡Êž~y¥¬ÿ?ç}÷eÏ;yÀÅéÛ·ò¬xP¾207pi`[ã8o~`bÀ‰gÉsäél$À-ϨnÀ™gÎsàmÆ&äò€Ïš75çÍ ˜,x.<Þ ÞÞ»÷Ð?_}øÝHÃÕƒƒÊAõ f°”ª·uF«Õë÷ʪûÁŒä\u[u{µn°½ذº¿ºPYí¬–VjªÕÕ}ÕŠÁó@óì`oõÈ ªZ>ØÚtUwVk«{ªµÕªÏ ŽÙ…ÁÁ1 9Ò(HªÁ¿ïvvç¾HµˆÀzpµ§º®ÖNÝX뤶V‹jíÕ͵m@ŽõV Iï EkC­£ZXk£¶P#Ô–js5\í®öP‹k·êœG\Õ'Õn@ïL-JÝQ{p¶j/uKíéÚ¦ÚVH§Êk¡ülýíÛ®##!ç6²=*»Ç‘îz'¨$«Gj3b=Ò 4úê¥õýõV#.#ðÛí®zû‘·~_cw£xl ±u¬cLÚ(k”Œõ4võ7vh“7‚èëml¥¶±7mlS4žëk;áDcs}3ÐióâÒÅºæšæå‹[raó* ë Êo^ܸ(h^¼Èo¾zQܼd×.Ö6W7߸xýbh¿$§ç&A¼OnžmAZœœŸœš\ܵӗ&WOß<=;yyòúé§—&¯L.LnÏ£ªmcº¢mušÛÆkO:Ó• _Ÿ=NoÕt´ÎÑ:NÏTž“Ì5ÏmÉÚæü;¶hÓBóÂíÛÓ“âz‡[×她%àÝ#ÝgV;V}{p=ƒë "Ê<ÊšÊ5•Ùp¬978×979׺«8Zq¼âo[^q8^i¹+ðt§ý ¼¤³Ö¥Ä¹ÄØQÒÔì ö´c IÙ-Žè/k-;]Öáçžòí^NTLVNTšvöÝŽÿñÛî^5s€c¶;ßö‚vX€&î<7ÞÅÁñÁ.à/mevw!݈~0¢‹ /}õøHª}Úï`ä¾ò–;-NV˜ƒ9á œRôOU*ïBãàÄàèaDˆap²ÚXm¨6ÞG½]ïyXÏØÃvùÖiAÛ&Xƒeðÿ²þëê®^Û |`_o;Ðtâ8p¡±]ªfßÞ{ ü`y+4þÃåûËÿîÓ·o® Í‚å–ÐZÙTXUXï¬Ú<°ó\¥º¨_f9Ø¥r¶rÈ.WNßµ/É[Hu®ßXriÅCó¼y^<ÏL›6¸T}yдcÝKƒÓÕSÕ3Õ3ƒ³ fjpnðö]×P}O-FScÕ¾j)ß 0{eý Èe ª¤cgÇzdž@ü)÷öN7Kšá[š{Zö¶ìk9вk±coŽ3dÇ#]: +ÙUØWØV8TûH}ÿÓŠ,Uj€EÁÌ—|yWp;3ÅŠÝáçïÌJVKÐW‹W›„½µgÁœÔ`.çêUõªÆ­zMãp£pç Ò~àv@{ËΖ!9ž g|o×N¤¬V.W®T^…ü„YDæl ´ûAòâ €6²ïÚ]¾äZ£9Þœå'Ë©}N`|pÖ+7*7‘· í¸—¡‘ºò»â¦{çÎ~}þP¿Z`QÖÖ66H`$õ|õÂàÜ(G ƒQyÝAþC†Öæ;<🅥¿KŽ wŸ;“ÕþÍÙ”y•)ÊÀh”ÿˆäë`Ô×*oì̼ãWÀý¯O[tz—a9 Žè•È!pü9TŽ/'ƒç`8tÀÁmÙº'Ê™ÇxªS¹ÈË{zËÍË­ÊmË-ËÊáååÖåöå.åÿºpØ]Áês®@TøWvVœÓÔçVáQQÖçSAïó«¨p©Àƒº€>*ÈQ *ˆ´>ß ìÚU+Šû\G©(íó®@.°Ï³¢¼Ï p˜>Ý+JîÄ ãˆœËý³ýÜùþ…þÉþKýWú-¹[RC¿ BÑ™þ£ŠãܓЛ•Sý·*Opr÷‚zcÿîQ®5w¢¬?W×?tùî…þ‹P;+îIît¿ ãêûC}îãîtÔ›sÿuÿ#ŠëÇ[ÜÍ:¯’çÇ«àñÊxÞýŠRž…‚Öˆ­ÓAÅ> p×ÊyÇ,Þ —Gåó˜¼=ŠbÞ!ÅaE ¯„pçÜæÏ»5p÷\(þ9wsP>0t½z àÂÚàJõÁÊàBõfõ­êë@r­ú&ä•·W«WwcßÐþ!à¿Õ{‡®Vï€Ýp èÚ¼9¸V½OpmðFõž¡ÃCÅ f,Vß¼ Ún@=-C½¬Þþ¯×âà^Á¥¶“µjcíx-K}¡¶D=U fªÕËÕ†Z¨­TSA> â„«¾<^[;\¬>¸r ­­¹ŸºL­«õWÓÕAÐ^§¯«¾€;_«ü¨e¨MµkKÕšZuíYMQcw¢ò|ýh½ÿÈ•zúÈH=yD_?YßÚ°%7ÖFê/ÔOÔŒœc޾÷u?b¨g@muõKõ³`Üãõc ¿RàˆïeÄoÄg„6¢­G­‹õ‹õsõ˜‘©ú­óõ3õ&À‘î: ^®ß¦š±!°÷\ë;7fjœjÔ7ŽM7*Çcò1ýØXãÈØÀØxãðØh£jL;v:ýM4öéAi ûdãèØÅFCã¥Æ n%ÚFõØ¿îc„Ð_·#h> ÈÎ`v‚ã†Îæ¶f[C{³¹Á”m@êµýÍ=Z5H›eÍ' rP:f°0t51ô6ŸÙA²Žæ“kТ¯ùö?®Ã@v²å° x%H‡[lZlâkÙg:Ѳ9i øC¦£-GLG·ßtÐt¼e¯éÚä:t¦ÄÜtmòÆäu@7@²h¹ãç;œe˭ɺ¶=¦íÒÁs`7ikÛ7ÓØ&iÛ ÊÍm mMmõm­mûgnM·´Ý˜>Ýv`fÏŒ衽íÐŒ¸Mtçd';;Çìè“ÍõÌuÏutÍwü]wf®s.°£¸ƒI:À Ö²œf$ í ­àüzz¡máŸswïZ^ººdöÒ•¥Å¥Õ¥¥%«Îíš[W÷®8uïYqìvèþ[Þݳ*]¾Þ­í¾ÐÝ ¸‘µók`·ë!öz´kg{Ê7¶5—z¶n\JG¡ý(ˆÃØíVîZ.ëE”K!£‚ ð±ÂHZE „Ÿ DÿÇ~¼°k©ßözUñŽ :(8Å-_=S{¹–§ž­e,×ÿ­3Ó8Ûh¤k­é¨éÈÌa`iÜ&ºÌ Ü›ÐK¼s’õ,÷.ï%T9²ül¯W¹´o¸—÷ýã=@94¦RUTí :Ðb ©îcVúø}Á%œŠ² VEÍÿxbÚºœ¸·ÀœœÁŒà í‘;r¸«@²ÒrÿzÿZÿÕþý7û¯õoôÛïÌûz¿ w¯|‹ÛZ<ž÷Ÿ}òy¶ÎÂwжŽç¨p¼ÂIá¬@(o¯°RX+ªR×ð<…Ë¿!38_ýãéÛRap×zÈaÈP«!KÛ‚ä8tXp ²¾ÅÝжîQÁ1ÀÕò$j{@O‚tDpbè}Cˆ8W»X{F]£nU/Õ¶IH½PM‡Z¤nÙ:ªÏªÛÔÍê:uùH­zµV¬^«]®­Vw©Ôõj©úêÖs¼z¾v¡ö´ºQ}\p¥¶I-S÷«;AÛî' úﻫáŽ\«/ÜõúMà#e#kõ• T: Y’ºáˆ`äjýzýFýñ!ÞÈjýJmõHðHíH Ыixÿ?žŒ+F.­4®7.7NÍŽ™€Î\ãZ£ql±qðWççÆ¯þòØåÆí6«‹c“có¾M@ù¨¹ Ò4(-A„a° }5Ínoƒƒá|óP³‹Á®ÅÙ€2¨€G7à î/ƒ½AÝì iz| ŽÀŸkFþ¦-ÇM-ö-'MÖ‡ÌA²2¹tá´9oaÉHà- ?’cËÝs< âÆbæØÌ™¶€ëh3ŸÙ’vµYÎt¶9>ó·§C§¬c`®´£®¤£”l:­;×–6Àéq}ɣ˳kKÙµoÅ”sëªõe€>eƒÛïIïĽÛϼQ¬ÏòØH3Æ`c‚C1Y{Wtí“»+œ†N@Þ¸ î3Ö) æ¶ÎÏå> ’;q²¼fØíB³äXp¿¡²seª2ç^uY1‡ ôKî:Õbʱ;§Ç~PS Æ%ܹ§w?ˆB7®;ו ßñïF^OÌØñPxrë=)0#²i`ÇoÕ‹F6îìñ`µuÍcÍX°>ˆ–n€î £kêu\Y)Eg¨×·œF ìè%”öªzå½ärR9¾W®¸ƒKõ½j+ûšûšÀøª*ê IMEC_}Ÿ`ÇšÜ >àD}§ûÄ}Õ QE]Ÿ¤wÆ¢¹D`% ù9‰k#? ?áŒ7÷ Å=!·”#A­•üž‰ÂÅpmåÖ€#p}¹Gå8îaù!9–ëÃ%sñ\/ kêš:xDE­@‚Õ¤*Š.VQø)$ ¼÷ˆð°ð¸ðpKªQ :.RüàGuÇîxÅTó•æ`Ãtó\s±a¾y¦y¶ùRóåfï–Át‹X?T bælÛÈœzãŠêr3&kÒËû€0Chh$æÂ“¢“¢ó# ͽm¤2—Þá2? Õ½Œ´fÝ™ïqèþdÐÏù2 ¤Õ²¤–ä1ö>±3ΪJYeÙH™o@àŽŠöŠÖŠ6HÓIÌ-æÂåAPß ]1ÀëçÉyX42ÜF€ëè*¸ Ű¥Ð ²È›K >-0K¯£s¡ œ¿uÝ•Ç{µ`dTh½wð<°ü|ïHï0(kÿíoP20îξî>i_W_wE(é;SÑYÑÓw¶¯«¢÷ßN›>À<åy)×KŽ”»È1r_9Zî.çp½åå\9Jî,w“ãä`F• ¹Ê±ònÙ¿(ï¾xŠ2E•¢TÁQ)˜Àwø ®‚è ¯BQ h¹‚¥T(y%Š`ȳŠÕÿq¶$k@ò À^$Â]*‘¤!‚Êø- ðCä!Ê´Z ·¹Uõ¦úºÚVx ØÚQ¸WðÔØ ]Aî,\WÛº¦^Qï×l á>‹ð¦ú†!¼¦vþÝßÐnæÒÈ•‘‰+ÑøÈˆvdndvdøïüÈÈõ#‹#c#3#£€_ÉøÊå nÄp ±]1AjÜÁäé;Øl³ãUö:sÀY‚d§³ÕíøyaĪ;ø“:«;QÂXk¨¹ÀÀ1T„†2C¥¡”—"”–›ùž¡ BÊš;xéeB›p->‘ yš|AŽ5a[ð&” c™¼MkzÌxϸÏxÜsñ™AÍ`f3n3hPÆÎx‚|t®``5HüôüØ |•²tzów`å À=w™½ùô€ömÑ5 @&rn­Ðáõ¿ïåWÆ,ííëk¨tƒ,î_VÅár*¡óUS~`ete´2zÙ(töÚz*Ùñ£ ÑËãð9t¬¿ObÀË¥ µòvä­9ŸËãâå\.Q^Å­2èGÍ«WÔ*„Š:…Hq:1ø Qo€»úß…kžÂCÀ<„H¡ûϰ2{ÑU°–¢å[Ñß5p‹î ØYç¤sÜY5‘a½y¬ÎZs¡¬ÉÕf²‰,Žo!™-¾-+Лü nÆw†`›«í¸0׳ ] ÌÜV ,«æ—_è ó«áÚò2GÃswd€y‚4áÀÙŠÁ>E_oÅ@Ÿ²oÌ^v×Ù­ž+â ![Ôr›u;1< f-V4+ÅyCàfO¢ èCtAà‡5Ç4Ç5G4h¡·%ôÕüÝ£d ¸ÈŒÃE„йé6³vÞ(CþpTT¦+Ó™S r\ŒÒ#¡ÙÑ d ·œ1ÐÀXn‚Yêçügê:ts{–¬+4¾õŽg"&䇪 5§±w¤ï|ß0°´¡÷boYù¹Š¡ŠÒmåÒÁ¸Û¸:P;Þ§ïc@³ÝúCÅ0h«í»Ðg% àÇúL}[ïµû΃Òž‰­ý”Ïp'ÿãíI¼D,ȹòK¼Nn•¼Z>ÁãË»¸g¹Rn)¸KΑpk哼rP2ñz¹•€(¦xLywš×Ï•qåÜ y œ'ï†|!H^&/–÷¾xDÇ?v«>EñP¿â O¡èVÌó¤ NÕ÷*f (…lߣ8£(ƒ8¥"X4tè°†ºrHwŽW,Xæ•ÁC—yå‚%Þ"oÇ )*³ —ÎÿØÿ¾„eCåÀg*‡*†?T:DZ­ð‚­72€çÊp‡jƒÌ0`8"a´ìz&%¨+ue ÉÜÂ0ýËbÁ&EÝT:Ã5U‚úòy[¹©ÄÄ<}çýKUK1Ð% •¦ ó §#N mf ­ÂTÑÂm)3U·”šX&¦©¿g œ¹87ž4J@«` à>ÔV 8ÖŒ¨c”3Ì™†Žsmõª6qGÐŒòŸ0€|œdw½U¾4wva:ÉÛwšæ&ç;ŒsSsƒ òÐê]èùÀBÿz„íÂtùtyt[ñìÞ»<Þ-_½Øí×Ó×£;º~BZÉæÅ2Vo=@¢òòŠr@šÊòÑ íÖ;¹’«€¢¹f¨Z(Øñ4Eç.öûétþ`­ÎkŽJFå›À&j0‹¦‡Îf€ç†]e œ:ùw«â^å©ç ­ªÔDVZ#Ð .›yP¯˜ÓÈqvБW>Ó{¹·ª| ä$H³½S½Ó½ÜrSï\ï¥œä ³Ó‹}ó}«}Sk[(Yq䦊…¾+}+}“ç¸úŠ% »ÔwÌñJÅ\ßrßÅ #à§t¦oäó—*æ*.÷]®ÐUŒUÌüã}ù^n›\,ã.pëåy‹¼]> ¬vZ.’Os›Nvȵ Ü*Ÿà¹òóEG@> Òî÷"WÍm–s5ÜKÜE®Z1Émru\ýÖ_¹óÜË\w†{»ò_?»õ÷5ªØËßà]ãíáO)nò„CBÁ~þyŸâO¯¸ ˜P˜ë¼ë¼}üzÁEÅ&ï _»ƒ7xu‚5Ðó°B§Ð(FcŠº¡|0+…Q1©Xý_Þsû:#hjtDCÝ!ÌöÖH‡:@I Rïd¨E¤ij4€Úþ¡ö¡&AÓPÃPãP³ gH>tZÐ2tz¨KÐ) $‚VÁYs;‡Ä‚ú¡¾¡3C]C²¡ÿvg4@@±°_Ø|³$†Æ_CÑ”k$Â:È[išJQ£°hÉ…½B¦ DÎ K5M«ðŒ°”©šNa‹ÐptGCÖÈ„~š2´·hW/$jš„] Ô&¤k_M°¦VØ- i"–¦È…Âáia³¤éâ5š­ÖFûß-…Ó @M À+¬ÖI‹ÖÒtA"œ– e‰\´x­¯6Xd§eˆJA}±4Ý´Ië£%k«E<‘·ÖkkßÐ"´e@£DÔ¼ìÛµ*™¯ ºO®œX9¾‚ìöOž«Ænô>ΰvqmb­¿Ç¿G·n\Û’Œ­ôÈ{®öp76&!d§hk ñòË×û–*R.‚tF¾Ä=0äÀ˜ió ~»=‚;q|ÄŽ¤ ͰP#TÀR ¡¨ ÐkvNBQÈ_K×ÖŠ¨ZÚÖ¹$2äË-_ÙKV mÝ-­¦žiK»©ÍÔaB#ªY˜»2×ÝÑÓqš§éÎ'f;^%Õ‹ZA/# Ýúõ)P/è4":]ΈÎêǯZ¡qzt¢»çÀýZ8­œÓœ6Ž:—5_\ëm(C>¹Ô»Ø{µw¹wµWT¾Ð»rשìfßÍŠ[}ûûo€‘îß×°µb­b½b”÷T‚ñô_«Ø èžþCý`dú¯W¬TÜú/g.0rµ|?ÈOV™Wªr¬:R5&·©:/?Z5%¿$—Èí«&åVU@Ç¢uB~A~N>*?Ê– ¨ÒËur ¨±®2ȇåvUÓòƒ@~¢J+7Êmw¸ê8È/Êÿóîwù‚Ò…`¯<¡ôäS:ó*½øÖÊ[Š½Ê¿u(¯+¬”Jwþ!¥#ÞT¸)Ý•H%\y\i£ôæ;ñ=øx¾=ß‘¿­¿_‰å#ùå¥/Í? õƒã[*(Q|¥-(»ò=•‡•p¾“ÒB鯷S:ðo(|øß\yR¹oK$¨¥nhV0¢È04.¸ VxðC—A®ZÒìDÞÕ¡+@²0¤L L€›Zº¨qhlH74;4 ¡Ö°`T°<¤š¡v&Áœà‚à’`fhF0$ç€ÞøÐEÁÒÐôÐÅ¡IHµ‚±Ä÷ÿÓÕ ~çí ºʺÂiGfµl¾ìvkûeÛe @)]ÿµå2¹k Ãf™Ôå¸l½|rùâN"Ð9±löu»»e°«;­ÀWlWÄfåïÖC«+—ºMÝÊUÕ*À·ÕÁÕ©Ï šÖ¦Öz&×¶KÆueÏÅuÃ:ú, ½ôêÆÒÆòÆÊÎçOo‚§†²¦­Ïrƒ]mÚÕP;{ÔêÐ:@í56†n Ïk67¬Ñh5£Ú ¢ ZvL4*qM·¡[‘¸¦[ÕÕ‰7u$ Òèe$KPÆ ÀŸF[!_ŸÑÏ\„Vn¬êñùs[Ï( ØN§eZÏ•²vNsù¾Jx•sÕ–Úõ®Ý9×ïDôÐÔµ6\çÂÖ·s SÅe¹KÕ,µ—’È÷ã&v7†®æÁ΢׌itš ÃG!×k Z½h\«]c¾!‡·môqxÕ´lkY2­˜ Ð3€ž˜WwøvÂÁºMw» ™V.@{Ö-€ìã"#è§A,‚Ɔ1bº}‹ifrffab}±Ì½·c뮕GÀ©…Âo/Qû(©| §¦czÚ˜cÇ‚ò>Õ^Õ-0Û›CûU{T[5{êöÖmÑ‹¢ p—I­i‹÷ê÷é÷”»©»¥‹qÆuÓšiÕ´aº435s½mŒz¸ã$ðÝÙçåKÀ®–ur΀q ª8p¸ÒµÒ®Ò¼ÿX¥S¥}ÿ‘Ê£•û,ú-++ý–ýæ@ǦòŠÜ¥Ò¡ßðˆÊC•¶ýÇ+ûüãsòÿ¼°UU«r2°ÒñO{UíÚWåër|±êš< Ê§Ê» ]å_ux€Tµ)¿.'TQ«nÈ->´@VüÉ ¹ÅÀžߪ9®*¨Šj–åþJz«jïÀ! \E«ÂT¹9 ¤5¹{•9.Êä7åKrfÕªÀ¯ê–ÜÔ•ïœO °”Å`ÍÊ”4(V+”UJ¾ÒOÀgòªªùeµ’©¤îÄ1JÌ/QÒ•Jh¤ â“”• ŽÕY%¯¬âÓù>WITòø®ª#,> $(ùü2~©’˯à3”Å|²²„_ʧ(Ë• ~°ò¿[î¿]'T7ûk¶y;•³ÊAuLuRuHuXu¬æšÀ^å¦:X³ünO¹j_…ÊIµ­{ ÆGuDuCp]p¤æ Ê[W¡U*•'¨wQy©ª£5¶ªMÁ†`oÍáwÕ¡+Õ~7•¥ê¸ê–àxÍ:èÕQ…Pý?ѫΠ1¤°®³„"ïp݄ƨqü´Æä×4‡‡Ô­k5躋@ïH¨:Ç:dyÝœæ–fMcQw´îà0ðtÍža«:§º}óšëšÍa׺Cu.u+šeÍUMÝͼæHÝ%Í¡ácuKзgݔƭQç]·¡ñ¨³VmjÜëö¬[Õ8ÔÍhì†m݉ºãu—´û‡/Chvcëo.uÿ{ÖßÛ¯»"ZÓÞ=«½,º$:::/Z͉VE'GŒné,i¯‰VD7µ“¢c£ûG§EëÚu‘ݨ=¨3‰ŽŒnŠ®kçµW´7EËÚMíÕ-ühXÐNkgY;+ÚtC´úFÄ5­ÍèñÑ)‘Õè2¸ãâÖߪFD{GW´·´‡Žî]Ôîo°=1j;:#Ú3z´: âªh h=ذª„æi9j>j=ú¿šÝœvOÃ6ç¡w×Ò·¹~ûvÍÆJOõFí†`cuÃAê%-ÝôçÏ’ÍÁÍ¡ÍÕ;o_eå{¡·•®`‡wûµ'Hn€w¯ôø×/‚ Àì¬lwvð²ªmZQûÒ*›Ëâ*Po5À©rº³Ó×€]«Ú¹Äü¿e \Ã¯ã‹øüz~RÊB¾HÙ¨@Ùôjwtkÿ±çÑTtCe öµ5°Ã¨˜*+PòUQT8•?´çU'k,jUáUT@ýT, PóšÿAø:óá-j9|PÇácÃغ#ÃΣÖþïm†í’H¶.¶Wç4|røè°3([A2»áíþŽz¤áhƒ×¨@I§QÏQÇÑ SÝFò.tu…o@ŒzìÈNî +êLÒÓô }1À³Q1ä*€Žúóâ½pA@‚×ë}eº^).¼ZLÖkÅ,=Q §è ú!ñˆxX|N|A<(öõ kîÇ<õ.¬ôƒø3Džµ»Œí Ô(i3v%€k16ÜyÛa<½…s \ɺA©^‚žBM‘¦°S¾S+-ÞS„)ÈÒS8@ÉSë->SDÀ­BHœòšZkñœ¢ Ò;6kÕYtÖföxûÑÙ³'gÌÚµÛ·žµŸµšµh?Ñn9k>»¥cÝn={h›ƒd1kÙ~HmgmÚfgm¡^.u\ép™÷±í>?Û1Ó1Õáºó¤9×q¹c Çë Ö5ï5¿¼~¹ üŸÑykÞ ¼º¸ ßMXÁ¯èVÖ{¦×/­Ï¬ŸåH•N5uØá^NEïMh÷8¸³b¾ýØ~\¿O¿O%æ®_ÅÀƒ¨¯Â  °€óh¨ÂZW%«&ªòð¹³Gtò{ø å€R®lçk”ý`mÎðk€ÕUÊAe7X½³Ês@Ö§T+‡”½[kÈVÊ”]w"G¤â©¾@Õ¬’¨øª&Uƒª^%V¹my2„úBP[ R­ê´ªNåZ£½Àk\îÚèÃøaX/_¨ ù “†™uþÔa"(1êôºÀ:ò0cع†^GfýÇÓ@ðjºƒ5®€JÜÑ’QxCù(gÔ¹ÁH=*G‚F™£¥££n ¬Ñ²ÑªQ§×—ÄŽg84üÝãŒX¬ŸŸë-©e¥ëôõ€kÕKôMúf}ƒ^JmzðFÀÍŠ'Å—Ås tI<ùŒÂØ&i…ÐùˆÓ-íF¢6Nˆ;$ƒF•Q äC;'Lä-USS{Z=g÷¶–oUNq¦J¦¸S¥SeS7ïœò0Às¼/yÍ¢Aî=o8G@]ÚÛQ³> äJøùÕŽÀÎµŽ«ØyÐ a~¥Ãw !ò¾Åƒ‹þË{AL¬yI×EfçÞÅý‹‡âú-ÿ}ÏÒ.êO¸sšï^Z›ë¾º¶¸¶¼6ØS·ÑÇ! ´¨ZUAuízD{Y³§~£ëÜ¡ßP;<`ä.hSµ«‚ëŠwÖ”Ö®SFߡ׫ Ï;!›UOñ!ë`f]ÛÝÀœ(óÄyÒ50V^]/à 5¾5}ª®[ãUsV%Su«ð Vªò9š%¿®x¸d¸ºŽ5<\6\:"”[WfÒ8ŠkÀ6ÔŽúK×ú6ˆFñ ÂQt¦¡Ì·n´æ®s•jëyU¿(¾*^¯‹×ÄçôCú>½B? _êåzµ¾_¿*^/ê½s>º`”IÆRɘ±Ìû¬^©×oí}’‹FqŠ áTÔxª~ªnªvê`ëþÖ#­G[ES‡Zk¦·vK§´n÷ä ,‹›¥Îâg)³ÄY÷v2diàUž ‘f ³ßs£ÃoûÙ¤ƒ6ï?ñ›;§•“ RŠ;Í·ø N‹Åà΋– t ’TtÑ—+»ˆ JŽ/’vbåJ÷8xzîYY O ³ë«=k=[rùæV>Ä׃5"44œ¾òÃáÉýxð «©âŸã«ùåÃý*"´‚:´Ã5’½Å£$·4úc­§§š¦š§$wö%€¯`ÔV‹ÛÕVÔªÕ¢µeêdk+à-w|9¬W1HÁ³³³ŒYÚ¬w;ºÝ«>Ëœe¹°ûž3¥[)ê`ÎßêØ{f«ÕÍŽ’yÖüõŽâùÀùàù ȯíË:9%à‰ºzª¶>ÄО °‡±¸µ¬ÐVüWV.BßJ\è¾¼.'ÊõžÍ o©–c+Ô¬5±õÄÄ!ïmÞ;­œQÒ!ûwú7nÚw¦lžµL_¹°ƒ½Å¬à æ@{•‘¿ Ö|^9 !Ö”OòMüEå‚òŠò²rNyU9qÇþ¾X ÿ²šÒƒê‚J Ö½¸¦y8°F¯2ª&UU£ª’šq•NŨ1©85ª š1 \Ãü¯O¦ÍÀ$P|Õ7 ‹×4Ü8,ÒÓ€ ÿg‹³£ ƒ`Þ= $•A>£UŒö6ÕÑzGå£ô†Ñ¾{ÃwXjYoVÑhÕ´ùÒ¼~Z?«¿¬ŸÜz#ùÅ iºÊ€³lšÒÏè—ôÇšŽ7-èM;¹l”¬çôkFµdÝxuë\!Y0ž“Ì—Œ«Æ+Ï­/U’ù»<жõÌ”#ð&{È£”[Ø:Õ;e•dS}Sv­Ö­]SS=SSN­Ý²H§Zÿnm¯~V2[>ËŸ­žåÎVÍV€rH¾í˜öÒYÎÚ¶ó@~ò½ªyÎüAˆÛrþü3•óÜùòùêyûÅÃg*€/ æy;OŠp·@^|Òy±è²è¸èIK?VÏ ^.YZ.ƒ<µä+A+Œr7s…µ¼Béöë¦v€¿N€d\Ýîw z:lظ¶1ù ¥¿£ªtàLUgU À¢ åºrŠ?ßæ_â¯(×”«N«*jæT—U³ª)UyMUMõ6×\Rͨø5¼nMeM'ðŽá–áÓÀWZ‡[êÚ†Û‡ÏY+„)°öêÑs£ª;>°¦·+rU¿ ÖÐp¶M+w½Ø;vã5°Vç%ɰd?(e¼i¼a¼nÜ3±jú§§;h?0%ŸR^lo?r¦Xñ虚y·E×Å `?Î2¯«x¥¸gÌ^¼Ñ¸QÙ;Ë¿Ìïã³oÒq(•äJÒÎ{§2èŒÑ]Õ¢÷ ˆµkÊ›ÊëÀ süy(ò6•7@©a'z®ªVU+ªºš‹kkj€¼¾FrQͲj^uEµ¤Zü·¿KH‡eÃ=àÎÝÃmuAO‡GGFGGY²‚üü(³A;Ê€Ê{Ç×õ×ô·ôð¦À:×õúM½cÓžq`1—&ç&§-ÔݱÛQ`£#Ð/Ó€òÉá‰CÚ»>¿æ ˜…?tZê¿ëW*öþã7­nªšîÂMI}3ôk8e ºÑÒ†±;#;Æ3&99¡“ÜÝ6 ›³õ¼rYU˜ÿ2˜÷ßà~¨ÿ=çök=8wøÜÁsÛú‡Îí?wK%©9rnﹿû87,­îÑ Ë@~¤ÁaÝðаb¸𠩇Ïw× Ÿ­Ó+‡‡‡G‡UÃÃýv_€òñ;#Üá.ŽNV4ȇ £œý(¿Á8Êk˜­n¨l4p'VT’éß0Ü£ÉÌÕfüðø‰ñCãH°ÇvÖâȸ'(YŒ›?9~tÜ ±wk²¿ý¬Õ´Ää—$æ ·œ¸(±›°p˜0I¬'¬ _ž”ŒKl&Œ§ gP¶Ÿ°˜˜€l‹¤[ÔeâŸ}j§<ÁÚ_¾Ž„<Ü«Uøá©)ÉØóáàÜ›| zȽ[Ñ h×MŸÂnô®“dÇìièdÜ3ë×Þ:Ko̊g¥³Vgí³M³´ö–Yf{ólÛl`û™Ùî;§èþyù|Ë|×üÈË,Μouí Ô;o~¦m¾u^6ß=/eÉ|ßü °+ôÌ+æ;ç-Ïœ<Ó1z~`Þ¿ýŸ3CB;€Ç"z±¶ÓkµX׉]ßÅ-ú, :1‹ž‹5Õ¼eïÿ{oÜÔ¶-ž¤Ó©j:Iw¥sS©T×-½ÿâïƒÿ½÷ñ»ï=ŒmÀ`lã„,ɶ@–„L•t§R¿ºR©ßIwWÒý;‰Íd ÆÆÆFFȲ,ËŒƒÀd@ Ë–%Ëš˜n¯½ö>GǼû*ïÿŸNžáèìyX{M{íá`:5þ¶³™k£ÛÑî sçæ.9.:º½8·j¼ïÜ<7vþÌ|;¸šFZ¢øû*@éñhù}òcòCòRõIgjñ.ççCçLj:<*mN¿Oï…ù÷hj÷'FïóDHóEãÆ ãã€ÿÇ7£¯ØU†8¾ÕeéÚ®W)ÃùÍ®›€ÓÏ'n÷ø&nõxEHèi`äÔÓàÓÚüòÍüÜî…‘5Wy•æjo­™†½¹*óï÷ðO] _•Š°Æ‹£íƒßCÖ—¯_À[sö[S·§®ÃˆÝ˜:f;n» ®(¿+í;íUöíö ðUÛù2z‡ïî„çüü‘‘£#ù©×»u™éS™1ÜaNxnìFGòBÉøü…Íã™ ‰ o/¤/lO]°u vív]ïªtír9º*\;]Û]Ã]#]Õ.kW•ëF—³ëf×h×6W¹k‡k¨ëZ—]Ä¢o}}!ø½×3ÑãêyÒó¸ç!ÀïåÄ+ LŒ÷¼ž˜¸ß㟘ž˜™xÐ35áîëyÔœ¸ÓFØF„ß={ÚÓ—yš|yšzz¹o FèªÍóð¾Ô÷~Í}Wûf0t /ú´·/ý4ö4þøÓþ¾é§–¾»=Wú®õe[XoÞç•ze^%ŒÌï.ïA•^…w¯w'„ìðÒT5ÞÝÞýÞC§2×zëÌr׋Æ*rõ ¿ÙjôÇ®6ûSW•cò×À»É_ ¿¯¾»Úè×ùg®&®Îˆ_ÍÀ¯ÜÿöêaòêôUƒöjôjúj½¿Î¯€ôj¿ÊßàÿiZüsW5~-„bõ½xxðµÎÚb5Y€zk£5úZm Ë3rðëׯ Ö&ë+²Þ!³¯5ÖÈë™×G¬úW àŸ~퇘£Ö©×Zë³´ÙÎÚNØOÝ›òL¹¦žLµÛZmw¦LMN=šz:uùÈÄÔIÛé3¶Ó¶ñ©ûScSî©S¶çSÏy:31# ŸÙeWÙ'gdö}v׌Â^g>³×þhFi÷Í<›¹?sÀ¾Û^o<#·?˜Ùo÷ÎÔØ÷ØŸÌÔÚÝÈ™x.ÏõÞ÷Ï]u\™ëžëšë»4×ïè›»0bäøH'ð•®ù‹ó­Ì&N„o€6‚‰©ÄÜÈ4¸b³(å‘Ó팤&œéu™õ™éüŒzô.Pλ Ú·ߟö¼úѺwê ý¶ß-½:70×62¥¤ÒÎb´ßì0¡v·yÍ×—ÔµÏu»k¿k/p™`üǧë<*ïA¯Æ¬5×{yë¼ €}ë, ™&³Æ^‡QhÓ:÷Ghïa¤øVhA@÷¢íõÔ+Àë ƒì,JGg ·;Æ :«ÉíÖ Š»ê\ç+p“ß—=ëÝ…àz!Ø06x6zŠØú»wMtt=ïòt©îϺ¹T.ëe—¯k“Gëjp¹q žtMÂÛ Ï‹e­ ¥îŒJ‘{#ŒÏ&xÊÝ%îÍðÞêÞæ~Õó¦g¸Ëà Bª×=[ÜÅàö÷„–¬uÜèÛ†8\æ¹%Ȕ͞V/Px_)Ælñ8ûn÷•{®÷mõl´Œö•xîôô9D¨Ék‚ôGá1xÛ¼ÍðÖ{šOšƒ«žHÇÌ'¼-æfs‹÷¸y ró½GÌ­æ63_N‰eŒ÷VË”§ýgý›-§ü[,þsþv+áW~¨/Øn-žµž´ž²ž¶® ~|}0~}ðbÝ›©øÔ%[·í»ïf¦fû¦à‰L…¦bS]¶èÔ4øæà Oí¡™ÈL³ýˆ½ÉÞxi²ìof¦gôö²šf“]¡3C@¥öáÖèñè äÔÃÀ¡ìsƒŽËó§Fzƒ£‰¢ÔgA¦0óØùpÕÝQá)µµÏÎxÀ÷ª+ÐUÉxÅüÔä™r¼á·ÊSíÙî)³ôØžAšÇõ㯻t®)£žSÄ2céµ³÷Í??óq4ØUá¾ °Ûf9ï/ ò°ðž¹×wÒ[añ¹4¦߆e뻦wB]oºÂˆC‡1l‡»Ê½Ýî™é™î©tGzª3vzvAëv{ÎÀh…ç´·üBNÁ»á¾9¸!XÜÜÜ5'¦’S©©Ë¶>[l&:30:mÈŒ\œsø= ’§þ ÀfCj6eI¿8sèî¸ý%ôu§{Ô—?º™­yû¨°Ùz»òµµ»}ävËíã·O´Ÿ¸}QVÿØdGߨ aOǵ1oGÏØÐØèØëǘà50f³CÜå±—Ï:®Ž:‚/ üiÇà˜yÌ9ö¦ãU‡¯Ã:6Ýe{Þ‚˜^H=<6ò™ý­5{;²ÎÃãÆñ}éCÐ’íÀ%ïTv¶7¿º³u|WçŽÎŠN-øNŒÆÇOƒ«¶óøøþÎæñSã¦ñ–ñc؇†ñ“ãGÑ¥×K;wwVvîì¬ê¬ëÔŒŸvíÁ±<2ž¿äÖv×[ÓFÑ“®ãðÛO<'à9çjvsõ¹>tuºN¹fºz]F½Ïû®T—Á•èšïÊtwźÒ]úñ½ž3ˆG\ﺎºZ]»L®.¹èêwÅ»¢]—]Ý®³®6W²k®«Ééºäš…š[\‹[ô}ÿö»¸•î÷ûž9Àô}î={êÝZ· ð°Êžu½Mn½ûmOºGã>èÞëží‘¹wALª'ÓSë–»ç{ îXÂ}Ä­†ÐCî(”õžxÏn·Ô­s7ºó{÷¸ëÜ î$ò¼f÷a·Ñý©6% ÚsÀãî;î9ëéð<ê«÷œô¨ñÚ½—̽6¯¿ïžwÈ;áí6·wx{ Õm¯Ã;éõö›Ýàë„ð›ÞûÞ~ï8ø^x/yÀÛ Ïy¯Ú7à5{» Í5ï wÌûÜÛî^xº½çÍ—½O½—Á}Á|ÑÜgöy]Þ»^Ò&‹÷ª·Ã|Á{Ö<âíôcدÇK[|†É‚^¯¸O]ÞGÞ‹ÞÊ…aü½à¿åßi±øþ=–Aÿ.K—ÌÑo‡¸NŒ·ùoøGýWý}þ^ð_ö_÷?ð_óïNvü·áÙgé÷wû‡ü2änÕ–ý³¿ÂwXz·[લÈ-{-#þÿ%ÿ¿Õ_c÷K-÷ æ¦ÿ.›ËÜ_d%áÿ Ac°.X¬ ^™tÁÚ4Ïy¥AyppO]P¿MÁÝÁAEPTû­eÒÀxú«Õ»'X¬ î V·K!¦Ûª vY{­‚õÁsÖæà±ày({GðPP¬ ¶{ÀwÉZì³êƒÛƒƒåÁýÁ]ÁNëE«:xÌœµŸ´—D>Îl¤g "¥‘·3ïAÝNΜ³ Ÿìgì7†{A>‹žŠvD/GÍÑ+Ñ[Ã7ÑÎz>:½=±íѳÑÎhOôtôBôRô:ÄvA¨s¸;ê~4×Ge?ÌËÆæîÏÝœ»rîáÜãÉÜpÝš{:çšs8FnðÝž³9ìŽÑ¹»s7À÷xnbîúÜ=f5œw:ÆçÎŽœ9RÒ1o™˜·Î_EMØ6oŸï¹áCó#çG†…iíÂ. €ÖH,‘J$G®Í'A£ÿ˜O¼K¼M˜ç‰þèÇD<‘†Ð÷‰9øÝœJŒdPëŸOmI§6¦6¥J`FøÄ9—Ц©8¸“©§ÎÞZs w¸e6d6¢¥ézÆš)»5²±d‘Ùuŵ®{}ï1ä¤GáwªÏ 4{Å<¿ý'‚;ûû`œÏÛwD®FOg íoŽÝ»1v}, ¥œ?‹Òî üª:uìl_ò…ƒ—ÝeCù’ß=ìÚÐ}Íu›ÌÇ\Vø-è¾ëºé²¸†\·\£.„lê¾ãÄÔ×]®Ý…ÝNðÝp]uu¯n..é=íÞÒ 0tŸwoêÝÐ{Â}Î}Ö}Ê}ÁÝéîrw»»‹zÛÜ­î‹î½'ÝŽ…½gÜ[!ýæÞ&5b}6à­—=à|A¯ÕsÉ3Ý×ï™í»ê1{æú¨÷xúÐÿÞqØÿÊÿȯ²LëŒ% ¿SþZKÞ/ý Ëÿ ÿŒß‹ÜÌ/âivëoOмì v‡­íÁC–ÖàõlÐf½<^^ ö-ÖóÁÁ`[ðdðjðšÕ´»ƒýýÁ® 9ØÇ8Ï™à€Õ¼j=´Zá+Ák"Ž$ ›­C¶Cá:Àeø@X˸ňí»ïö†ëê°4¼?¬†Ðšð¾°ÞšðžpCø`xØf·‘”[møv4[â®È%û¾Èîˆ,RÙ C¹h?‘FEj# ‘ý‘^{ý@DÙQG.§PDä‘úÈžH7¸/Ûk"ªHŸ]áKë´wÙ¯GXþèÍ踣£ÑûQmd8zoøtн‰Ú£×¢–è8ÄEmѱá຃|æî°#z|Ïç¼Àn:&çFÂ7¯çøÂkîËðîwoëµ :_²oŒéF7=·=£§Çþ[ž;žð¾î™ïK, Ó{ž1óœ7í{çþ2ðÜê»n¾kŽyG<·Ì7Ì)oÒ{Ó|ÛœðŽBÌs6oÒoD­b} ?òÓßhYHùÓ~Eáü ¿ÞrØ’ñô¿÷,oýw=ZL?¼xŽoYAPÇxœÖÛÁëÖÖ‘àMë­àhðzðFÐÄæÂºð1 „[¶¦p ¼o؇MðnÚnÚŽ† acøHXn _·é“G®Ø›"(ûí†ÈU»ñÛi†·Â'¿ŸÀ¯+úÝ£îèãhcäúÆÓs³s±¹©¹ð\d.:w×qÇqÛ13÷fîÖ|7ȧÛ(­Š“ïF¶$ßlJnN¶žU¤Î:?¤Þ“µ ”2›2Å™-™Í aÊo…g4Nw  ÿÖ;”2‡Rò$³çì`_ÇØN¾æI÷=ðÜÇq|ç76ŠÂ…»Áñà=/M}Þ{Kähäöð>[QŸ‹Céwæ/¡,ý0R•ªLíY拹‹ÿNµwk;o¸GŸ®»zy |.hÉ{o¾oo½ï¾ù£÷ƒ·Ð½l„6m ¸‚÷‘¿=‹<€6$æÆæ{ î’duê@æcª$szz¸SßÙtvi\TSÔQ϶îÝåÝ»ºŸ¹¶ƒ¯²{GwuwRŽ౫÷Ž{?Âç@ïnxï!_GÄî×m÷>Œ»éÞ‹ïÂ~Ðáðk=Eý™¾ñ€¹Ø÷Ôó1ÿ™ç¹§â}Ы—ðø=nÏ„'àYßÿÂãÿºþw}û=žIÏ2{Ç’Þ“QëÛäóšŸ"þ?‚ßWæ ø}`~a~nöËmž4»ÌÍå¾­¾"ßf€ÐKó6Ÿßüsl™o‹¯ÔWâ{fÞà{Ìè¨$Ðl9 X^ ° ŽY;Â.H5ÏcxBìãà«;ø$ø4è¶N}Á„y¬l§ÃçÃíáá áV º³ðŒÙ\¶N”\÷ŸØÚºÂçÂã¶¶ðSÛÉð©°ÇöØvJ½këOBŠG¶‹áû¶ ›Üû©Hg¤#r0vÈ~~ÏG®ÙÏFFì'#푮șð¹H[Äjo Ú»#6ûÅȰý¤²Ýž‰LF§¢¯¢Á¨'ê<{~ï7ÑÑçÑÐî3x¼ÑPô5¼ÏDÃÑ—Ñé¨|™¹{Žü8isYrÂዦæ8Òs :9’sëâëãoçÞÏ}œ{7W¿ïp;\ •Æã@íWFî"Í?€_×|ßÈÃùûàº7o¹<ò\ý#½LoýˆïuÎÒäÖdyrÈ­|çöÔžTÐÁNà ;R»S»à]:è¤s}z¼óÙ‰ûÎN{z8½huk¦4SïxÎendÎïÄÖßuWøÊ¯‚£dÍ׉BŸ ÓgÛŸ»vwËz«|•¾Iëëà3륈›qƒÆÑööÛc^”:5ä+…îq(ç`÷¦þ×€‡Û}Õ¾€ŸÛvË3Ûsës§¾HOär¤7rê™nˆÅOÝÞÛ½§ÛåÜGê z^{Š>vùvûvâ×ACæ ™e[Înƒ½áKáž°×v%Òã7E£ÑÐڎ̹vP¿±s_÷þî—®®P^}om¯¼·®WÙ«@:ÞÜ?-œ1—ôoëŸöTöWôW÷‡=!OYÿ–þ­ýo™OéÛï«õÉ} _·e;r©.‰¹`¥EØ:Œkàmè^ ž•ÄKã[â[ãóU=mæB{Sç+WÐõšèWn5`Ʊ„õ>ß§n7¶äç@Ü“Ay¹§ÿœgWÒ£öíƒÖÄ 4å™÷¼õD=iÏÞ~i³ÂçÌõ¾˜YëÓøÒ€1³Î77øRf½OP8ä›7×ùúûfƒ/ «$¤½dÙvj O;ûòÀ€4°|;{±Ÿ»á7fXßóC¡u¡tðm°(´>ô>¸!” †f­ kÜÎ[£Öù`2˜~~XÌ,fƒ§À7~iûî;kØo{mÙ¯l$Î †¯‡‡ÂÎpB^Øì$62n¿k¿o¿gŒX"WÞ¬¨\‹Åž¿‹¾L}2œ[KE bï£Ï†3Ñõ±tôéðäð‡¨gø#ÄÆ*€:Ÿ;Êà·9¥Ç±-îœ~O9„xUñ§Â-%×FÓŸÌ[GÜó“ŽÇó–‘g‘s{²ÐY £'Ku:¤.:÷§ö¥jRòÔÀ~)êE£iGz$íLïZØ–)Ï”et # fÎg4£íDßÚ{+Ò6þH^ànÕqqì…ÌÅöHGKg3±SC)!—¬û«Ëóº=ˆ+ ½ÏÝÏÜ“nM¯Ïý‚iÍ“ù“E“&K&#Nn†ßõ“ïoŠñkO[& '7N~ðÔô¯›üè‘õË{>˜M¾&_£ï¨ï´°ÙgôµøŽøÞ›?š¶Ôje ×Ògé±\¶l •†ŠCÀÓBiëkÊúÑš±nÁ¯––„6…Ö ¾Ã~½µ¾‡÷F¿áXß OÙî…o‡o†ï†ßØÆ ßA wÙ'ìv߇ö¡Èû#û†ØÆØ¦˜ RŒ~éØßßßßáx6œ>ÿtÞ;¿FfWrGrƒS‘êr*S›ÒÓŸe¿ç¿®vr‹uì;ý¨áLC¯Â6>ßqld£³»]Ñ©öÄ—–š®œ\u¹½·½µèÓ66òmlבbwÆîŽE;î=X²ÚÑ?~yüXgïøÉÎGcNÁs¼³ ~[;û@G=¾¿z°;승êº5€Gªîˆ+êRwO¹f\õÝÊîiסîYWCwmö+’î×nù†cocoñëDoSï±^=„i{÷ï}å6õ6÷{[zƒî£½†Þ—Kìõ['•ýe€{uý*€UédmÿAx×3.»qयlààYù@À§ùÓfpµù ÖÃ{ë@ÉÀ–âÒã¾Â ›Öf‹`m³ X-׈…«å*Ó0+Bƒùƒ@÷€}…ƒë·…ÊÁµ•…"¶Ûx¸hpÖv?é•oÇÀ®åÀ%•Ý{jö_JU ÍÍW3`öí¸å“Üð]óú tùnúF î¶o'¦®؇ï>³úìðëôI.ûz|ƒ‚–cñ]·Í7 ¿×Yh3ŒûuË©À‘À˸¥3Ð8¸XÑè‡7-—ý‹¦;0è œœC<¹)Æ,Çç·-§·,½¶@Kà®ÅŒ±G] ³¦@c 5p9pÏr%pT:Ú1x¸X3< ¡C¡ÚÍ©    µ¡¿Êk  éCêÐ6Vv{@Ú5¨ e[2NÙâáh¸pú °a:.˜~Nvÿ x{Ãë§A®M Ï„§Ã/ÃëÈ fá¹ð‡pÁPÄ„ìECm¯!åløyØNØÖ½µép,œ?ô,ì·gÂïÃï¡´p¸p(c£õ¦m‰ð»p|ð[¤¥W"Šâÿ¦Â@pG^Ùƒög‘öéˆ?ò8ò$òB#ö‘û_äad&2cÛAXž§‘ ü¾‰ŒG^ N¡¶ø~§ìtOÛÌ*°OD^Ûñ‡_G\$äÃû¥ý®`9>Û{2 *&í‰MB¸2V 4–Ʀ†ç†£Ã²Xlx„ìŒí‹ÕÀ{,>«‹ŠííŽÕÇÆ÷Bhʘ¾™VÄjcÓêX%„n-î³ôy<ì8Œú,> ’G îúxÌ¡×Ä•ñ7#øâºø¬cÞ1çPÅàŸqDâS:äˆ:´ñ8¸ÅMñÓkë fΟ_ŸHÌ¿Ÿ¯¿3¿.á™™ÿ8?ö€aœí&’à{7ÿa>8ŸŸ˜›O͇çgç ™ùÐüô|d> ±ö‘ؼ¸Ô©>µó²dm²ÌYZ1ð9Eò`²Ô¹\[œ’uÉ­Ne²Ä)MÊ“5bRÅîð»älHéRê”&¥M©RSu¨cJÕ§zœ½¸Ëz pË­"-¯$] >ÄmN{/œ4ôvúNºpôÄTf*2UéhufÿèöŒ>cÊ3õ£† M§ÕmÊØ3¶ÌÍLåráãæÉÓ¡F„[B.tE.[œtÃã ÀA÷™l™<Ù¬ÿèä‰þ¶þÖþ£Œ Ö#O÷Ý^rÏ7¿€s<²¸-¨¸,á}6t&´g°hò\h/£Ó­Ó[¦ã€iÅÓ›§7 m˜.Þ4]2=‹8#6‡H܉ÌÙ£‘Y{Ô³oÄ[Ú˜:Ö‹'‡ç™¤)ÞO%6&6$FFÊ IuòPò-ô¥ã&àì­7g¶ßÚukÛËsô;h+ÃíÝ·mí]·;oµ Ú ù{<æûÐñtì hžï;ÞA9ëÎOŽ}í¿ØÙÕÙÝy}Ü1ÞÙ9š‹s|˜­BœBèµv=lë>ݽäÖ‰îcÝÇ»OŠfG½Åûz7‘/ü=¾Ô»ùñùþ®ÞžÞ‹½½½—{»™=yãã³ýÇA¶œDùÒ6y¡¿½ÿ\ÿ±É“­“§úÏ¥ÿ4ŽƒËwß÷ÀwpàŒÆCŸjà1Àü©å üZ__ œØw OÜ8´i¨lº8\ <O"2yv²ûñÄgÐ <öé&|‡¡/n"ëÏ ]Ðö}ƒ¡ýƒÒÁ‹¡€CÛJ‡¶ •UN— UL—á9å­ð›‰¼C,JÙßFÒöt$¾¦XcìýpsìDü­ãxüH<ã8?¿)Qœp¨DJÒ ]nsV8µèºììsFš,½—ÞsÞ»éñô†Ñ@O1ư¯e¡ÕƒDš†¶ U@[ É·kß9.1­¶Â^:{:·ÂÈŸƒq=O<Ï|O}&ÈÛ8àñMB¯‡ÎÀs‹-`Ü8×#áÀhÀ‹4Õ °¸’ j{B AænG ©ž®ªš~}þÉŸ]7 ð°ˆ´Æ> µÅ>Í…9;k‰­sxs+ÒÿÉx¼7'/ÙÙA9=Ðéw–¥ËÓ›Fïê½—ûonúB—¯ÞÚ f×ÏžŽŒ‰ÂRß;NÅOÇÏ@y‡¡ =ÀñÁ¢ùêe„ÊŽéBheº}ÐÃÓù޳±ä¶ÔÄÖD•s[º¿ÓÒ{­·ôq_ÿ…É+€+GVǼ>Ÿï¹¯i yàè@ r¢Û–—¥k¡ºÁ+¡~h›%¤DíØ›CÖÐÕЄÖBØ.Ù=] ¿{v»àwçÐö¡Ý²c(ÛÎ"r3ÿì†ÙâÙw@)g6Ín„BÇzG‘£ÀÑ;ëˆm`ÔÓ_7Ò}Î9?ÿèØ–(H–%Êúäv€c5<Æ”!ef¼Ûï,=0º3s1Óµ£þâþ®tv"Gyá» øZË`¨aôúwFo££3¾~äBübü|Ü”¬HTBFNŒHø5¥º?Û^3Ãø|ŸíÞܤŒ|{FÏÒ?ÐÚ`÷U¤ükð{Fð%ò¿oFèø@ë@ÛÀ= ¦»WÐÊ×ðŒl¡Em ²ÙïÞ!{èÐàÁÁá3ä„Ô'’âèíÚ#zÝ{§·À˜íŸÞ7$.-™Ý:[1»Å±m¶j¶r¶|¶ â>{q.:c››Åäd#ø.Áˆ@ÿ»ã]ñBxïLìˆTÃS•¸1r}dW¢15àlJîp6&·ChS*ã+Ý0ºô—4®ËÎòÇÕ³„øƒÀýÀÄêзíð”8zâ½ñ›¨õôdÚ»mýƒýßkß©W¾“§‚Œ—? LÔ³ã‹;àbî'ð¾cs/t?t=t;t#¤<»ÉèÌî™Ý7»wv׬t¶föÀ¬lvÝðGûÎYùlo¬?fŽ]!#ë‹uû'¶ÕÑïËÈk†â}ñ"ìÙ†‘Ëñ¸-~%>cfçjÜ7ÇûÁu ž‰ý‰[#ûò„ ÆéöÈÞÄnxïIŒHwFjÍɈã-É=ÎÖänçñä±ä.çÑäNç?žjMNv4eq6§Ž¥N‚»-Õ’:’ºê¬HaÌ+Ó¯œ¯é ¹ôæÑFûƒ„[f^Îôe™á̑ѱ¿4ŒXüwu70Ò!x¦,aËSÑ!5bŠiP9t\ Óµ0&ŠÙCÓ±R‡iÔµ Ê%þ¶4ö:O¥¦œ×œ!ççÃt ô³ƒé8WqTŠæÏoÃ#öL[&= ¹BõCƒM€îÐDèJÍôa¨[7­®ªŸ­UÎÖN”9®Å¬±r C ”éˆÇñ##Цº„*Qm9™<“<•<<²2®Z•®Noi³eT>ÚŸ9­jT B gPžd6CÛŽŽ^èÖ“oì@ø(ö’| ¢R? <‡¶ÎX"–'¡#ƒ-ƒ¡…*hÍPl8fU:*Û Eûí…}Îs©v(µdôQÚÚ;ŨèEÀða_BÞg¡§¡lNêÇ÷±A_h]ž7ô<«›ÕÀû<ÃëA(Î6‰¾-w#v p36Æ´»±ŽëðvÆîÀïHÌÛá¨vT9¾[ôw+v/þ(¾ydà犻ã[F€ë<7ãñ1xߎ?Œß‰lú¼¿¿Ïðéî‚™š:¡Mðî펆„!q8q(Ñaá¹7¢g±šÄݺBúóÉ~FïÎdwòâÁÅdøÏ%/$¥ /lÎË©®T/ŒVª~/Âcw^Jõ¥†œRºD7bG'üvÀs>5èÜÞ›–¦÷¤6í‚g3}qú4øÎO«Árº~5CíŒ2ÎÍ™=:{bö`}#b~ËìéÙãè*Š8;{jvÃð™Ù¦Ù¶Ù“Ú*PǃØÃ˜éâ>üîr<‰Çž‚k"ö86{{sÅîÅv]xb{[E;`›gcñP¼l$/ÇЙx0þ,^:2 ¸ÿ8îGà†ÇÏlüyüI|\žø›¸/OÆKFžÆ_Ä_2J9ž6x.&N'Ž%šg''G‰¦DkâL¢=q>Ññ]‰îĹDgâ¸íɲª4àHÞHŽ&kœÖdo²'©pÚ’CÉkÉË;¼)û’r§|WáéOÝ?iI9“דƒIsòZj0eN C9Δ#åp§ì©«©+)kj45²ŨҚ´"]—Ž8èÓC¦LkÓ†ôÁ´<Ýaêôá´.=’ªOפkÓ¥£e£2}~–~•~™ö§'ÓÞt0ý"íK?‡ð<û€BöÃs #ÍÔdd™c™£™+à7ÃãÌ4¹s/sü?»ÕùÏýÙØüw|ä&À¸|t´~¨7BÖ¢HÝÓ—¦»¦ÏÏvÌnöÆ.Ì>GŒÇ·TŽÌ!>TV]Jô&z·’J“Yg(-Gnò c‡ò_ôicôÓ;Ý”ÐɰºjäþÈõÔmÆy†{çÈùHH9åÓC‚…û"K¯µ÷ŸÜ4lJ“uù~èòt”wh¬k¶dxóð–áâa_l/“}‰Ë‰+‰þÄÄûÛÐñäd­ó`Ccº)u*2Ç3&ès÷dÿt÷l"> =¿4û2öB˜6§+ ^™9ÁZyn`.È\™îbŸÃ)ï%ëœãÉ»ÉÀ’7𜇘˳½³=³,' Æ^Ç^Åö;’ñ„kÄœ¸Ÿ¼º•qÞLKMAN‡Þ›§·HÅÓñ;©ã:•®Í dfæ-¥Ãob™øƒä ?pꛊ½¿‹¿Í\MÔ;­‰k‰‡#–ÄôøÑÈä+©rD™3êK9Áu2}*Ý–nMWA¯ÂééôLºr´.s0£ÊÔc]Ÿ•Ô‘•[â@óºó.Ê©G,‘ÍUûa¼îALkfóÍ÷Ï6·îhŽÕº§UÚz UÞªh­k­o=ÔªnÕ¶êZ ­ÆÖ¦ÖæÖ£­ÇZùZF[¯·Þj½Ýz£õfëÞÖ­^϶֊ÖÊÖ*po=ÑÚÚÚÖz²õTëÖ±Ö»­Ï[½­¾Ö­/±Œ’¶­m¥mÅàîl-hÛÔv\ûZ÷·vµÞkÍoo-lÍoëjën»ÔÖÓÖÛv¹­¯­¿íJ›¹mcë†ÖG­îÖ‰ÖM­Åm÷ÚÆÛî·=hsµ=l{Ô6Ñæn{Üö¤íi›§m²íYÛó6o›¯íEÛË6[ íUÛë¶`[¨í»ïÖãm‹#Pã›¶©¶pÛtÛL[¤m¶-Úk›k‹·Í·%Ú’m©¶t[¦ímÛ»¶÷mÚ>¶­;™rýÉ‚“²ÖêÖšV1ÄKøþkûs´þéº/¾lKqÂßOò¿øòúŽÛ ïÿý&ÇÝ÷_ÛÆýû§YÿÅ—ÿÓ¯9nÞÿÍ¿ã¸ù‚/¾ü‡¶lüº¢/¾þ…aöºßžøÿ@wßmhÛÈ YØFùQùû/¾ìêúýòÆÿ?ýU@ÿW^Èú÷øâË/þÝÒtõ¿ørÛ¿ùËk×þ¾ß_ÆÅbÉú£àûöû矃ô¿ÿvýeýÍCûÿÙ?ût|âÏžý‹«? åß»÷û+ï-”70ðû+ïøûÃ_öï=‘cõ·æ»/¾ü^qÜŸþwÿË?›úâË?ýÅ_·ûû_–ÏñåÿÛ_Šó‘t¼[§ç÷?5dÝFQšrc6œkʺ—»ÜŸ\÷O~úÿV6IXªî§ä­Öj™tR¥^¯Õ¿^Y§2•z>¤¡Fn*”r­BIÝJ ºåõ2}©¶–¤¤!$¯L±8Œ¤kéø"?Ÿ@f«TB,ï²sj™Q¥‘~-¤àý| ½¬IjÒ¨ˆGª4Èe:e¶°eâ„‚ùp•:«‘©ù\KÂYŽOÕñÉòµÒ¯&U6‹úÆÂj”KÃÔË„eëòeá’Í·$lA~¾¨ÜŸ/Jÿ‹Eñ¿Å/îëâ>ò|Å¥,‘2Êò²>CŸÂ y,#ºYa†;’·¨â²dÃøºÊ èSch$e,ê< Så-ìq6, ía¢QY.Á2•ŠÆ ‘Ù!§íXq0î3È‹ñ‹Ã +Ë[Le,¿˜xáa» ‘bÚezY cƃ8‹/|Ø/†e!#.wü…×, ÿ•-Æñ‹yF™ÆudÁ(꣘ç²È,0L§ù)I)7puJ£T¡’©•r#ð!Ä- úÞo l^¯Bº!C¦Ä² ¹,¾´MÙtÚ&R¦aø¢1¬0[Ïa“Rõi”±A¥‘IÛ)ì _F½Š¤VhM5j%Éý?¤Ò©4*#”dÐÉä7…R­j ÍÄrYvn[uYU‘´´¬´Hä.­ÞZTQ\À ñù%%‚{kqiñÖü䩇4Ú&„oL£Ñ%P4W"3BÓjLÐ/i0Œ’ˆÑHTƒQ¦¦ýí—#—(›¡CF¥B"«…6JräHP€¦NÒ¤2ÖKJ«K$5-F%£FÙD@B Q)”š ÂW­†§l5'Ó×™”£äëUBÁ~,„h„ˆB¢ÕK(lœŠT+%ʱER«Rª=¨^±(iç*ÃWc{þ€‚J¡7¢17¬Z-ÚÅM‚a#òtù630QÈ$Xš¤Ai¬×*XÙ—4²äó ÎÄ›-…Á‡tŽik£ Ä9æáQOŒÛRi£RoPi5R)÷uîW˜žä×djµÒ@U£†ÖS'W¯”éTµ-øÖ+uj‚~Ä­ÓêèÛd¨'éT…²Y¢5%ÚZ‰^¦©SÒ¼K$“zÃC^–óIA R(ke&µÁª¤²·¹šo¹@N#äZM#‘sÙt@Œ@RÀ'´MJ½\†tnÒé7äG&Á iš„§ªV­Q® ‚UÂâ¡ T}8èvâú4RƒªN#Õi N'rC¸R'­i‘2G‚J H®T Î [¯[”ƒÜ«S„A‡–ŠýeŒ%VGÊÒTbHÇ:½Ö¤£júAB› 2Â@êea pª@dAƒ¡¿äЦ–†­ë%a¼_\æâò—ÅÆIŸYÒ '} â‡ÆŸa7Z#v‡•¥ ­$):¯p\Á¦ü éÖüH»T)„· -‚{+(’Uù»ˆ» ¬¤$¿ªà C°ª]åÈs¤lD¥ ûÚ†Ü |qD'!5÷U‡VKÖþZÒœ+‘lTjoˆ6 Eyi¤"á„ !9rä'ÕpM :èŠUË#¬Š,& ‚tI€qÕê¡e3ˆ\"i”DªRÖ)õ¹¢²P×3b’Uø+.¸H¤‡ARG ÜÓä yH»êøü˜Õh©&ê2Ê@q‡ê‰øfì‡ÏÍCuM¥bÕÍ>qÍ…”†Quà3oÀ¼$=ò„­µ™ˆ6RNAÇìùjäëÕ¹B:ŽýýÇoéûÏòé;šOáÓˆ|Q¢2`1Mz24Õ%êÙø,—ÆŽ. áf*/ÔwÖkP®Ì1¬ä4¦†"™kq€…’êpôôP-ä: 6ÊŒ¼…£ÏãÃ1?dS þD(`c‰RAt©A¯Ì­¬(’Vm¦¶ʌòzÂÃuPGiSS/ê&4Q$è-4 éÇ$[N¹Œ0L £3¥R'×êZPmÖm`M¨E™MÛÐMÄŸA§V!Í›j°xÃøÊô¤} ´™Ð'ò¢ƒ#O’5óÙ8ƒÖ¤—£=H¬ ù‘yج2ÈLUYÂåÓB²³j}€8êÀ—4¨ |Õ|8Ñ3yÖɰÛ¡j05=Í„ÒI‚s1 <9`(ÅQÞ†A5‚¤0 7æO&V€)˜M©©SOäš!;^èg-¡q0O ñ< ©?L)t† ÆÊTÓŒü’DpEnRÓ%É`ò3àñú£œŸÓÁ]6 ãí0 "gSŽÆJëYh›Ç*2‚_yÌ‘Ç"Ty KÉ[¦"µZ­R*-nSi)±Q扛 ôÙ¨–гa‰V£ná…„H¬stv¸0=Ï(—Q‹¡.2s=Ú*èìà.ÃI"ukÐÉ5UÖk›vÀ¨j›8EÓÄÔ#GÊÊTª²#ey ¡®Î[ndÈ|2o¹aDøðyaBAEQ>1Hí]¢´²ŒÌVväÃÜdý梂*)Y+)KqiqâVåé¦âÂ"®4ª ÒêÊ¢ÊMe;v—–íÀølxUá¦üÒ˜$‘ñ¬./). UUæo-’æUVbúBiQEEY…”&æXXYuUyuU6„—.ã™ß5·P™Ó¤”Ò+k "7åÔÀÈÌ œ¤eó!±»B ,•—˜2rRV©o8×êùD¦PÃ<–@z%€š IQsÖý‘5*·([¸mD!/†©ñÀú…b?à©N©dÁÜ0—“)È{ƒÚd¨geðæ+"n\ˆÆAJÝ41Å$æÖ7—+Ðô ³.$/V&O‹å-›¶íY„¦DS3²yå·4R"3Jrt’U9ºÕ¿æÃòrt¿æªê…¹807œtKXÇJÉÆ…©L*D:dktùÚ*‘ž#*ŒÐ]VµAY‚áhØA;QtÀIeÝD¬ JgiÖ—’麋v–¿¢•00á›®°z‹6æ—HaæWº FÄàCÓToØÅGTTWWíâ–‰+ɯ¬‚UËÅåWUU¯¯®¢|xi|)ðc> Ú½Kº¡¤ºr“· ºMÀô· íݱ ĆH·—Áô“˜¸HxYyQiQ!±^UV—n”æA©Œ)D!ÇÑ>—•W— °¥>,fÁX°ðõù[ªËÉH¸-ŒcbŒæ…/j†•~" .ªØ^TÈAÉÄ[RÄ_´À"¸wTPaHÜP/vt‹AüÎ,?ÎàQþU¯'P¨\‡Ò0Héöü’j¾ŽmÕE»XazÒÂ]¥ÒÂü*2QD? FБàŠ7Ò°ò¢Š e[óK 9ˆÒ‚d®¨dî’²„­ù›Š 6.(‹¤Êü.­(+#´ÃKIogd¬æ’" !sa¢ ¬‘Ì&D󙄬Éäd–É&4¼p¥¡ËDk Ê:,saBQ:b±%â}qQâ4¸œ³\"±}L,ëVV#Ï1äQB"pÖüÛóè´M«VÓlkD¿¿5ß~$Y˜[Té1¨w?<ÿ˜Èào9î׿渵àþެM5‚.² ×Éþ˜Î3V-UmTé@«–ÎjZ$Ä*‹F­‘¼™<ö+(žü+Rö¯ ì_qkÁý'äŸ?†÷àÉùÕRnBYJšó¹ø?þ-ñ'>/«1Þ!Ž‘…J¢(¸V‹ÓX#$Àßå¹²ók™„=8)YÍ—JyŒ&½F©à!#Y…µæä~óÕW†ÏÖIÔ sêúžš‘’‹+GµbQí$m­Z+[ÒR \œZJŒÍ€ç ľ¨Ô@“@ ¤S!GžéMEjÐ.FfJ[o]¯Wê”|œIƒ3P$#ýÀ\K¹ Œ•¡Ð*©ŽÇ+̤i {Ë.“8©mA2\èÆY*÷©tXñ÷(¦ˆ¤µPI•³)W útÚăFP²Š*˜JÊ[¨z)-@ ÉD@L„/@´4ãQ#3( htÒ('ÔÊF%æ 6I¢LcÇþT~Mšb“ä*ÉÕÐÓ5HkBÑ" ,Œ@¥±u‘0¬We€Éz?Uær…-“ïëÅù ðoˆ]HBl'€HÏýГðMG L¸Dˆ+DŒ7!o¬1Èõ*q. Ì‹.j «û¼ÆÿY\9ÍN-aI¹y»_G.&ZÕ Ü· #¦¾³û}¢ ~»A– 0Û«mO Њ2…B¢“é d=S.‡Ö!¬ +8nçÎYCªÎ¤2¶ü`ú ~Ô«êê ¤Ø5c#‚Ò4È4-Ô’mÀðl}5&•úS5’}zYKvëõçâ/gÔf74µÂ6pÓF\í"s$²¦„w *ݧCÒ‘= ¼½ŠXÿùÒˆ›/¸ùýÄMK$rÛˆv5Ü“Ò$Cú`Û²pÁR¦Óa<Î$þkÈ@aâ5íÈì;H@Ǧ'’‡à%iŒH Ái!1íÓ• ’ŠÁ¥Åñÿe¶XÙ^„ â#Û[äå?\® ¥I‰øÀVꑬ>ѵeÒ-ížê·´](ƒÖ'kZšn9@ª¿o]tÉë“•-I·LeµËÕ…t³ÏÄíUk•M*Ã^=%н:´&쥖:Ã^ÌÈŒLrÑØ.³»u>jäÄÁ`ábD„?Z±ZœåççÓSÊêÏ Üåš"”K‰˜m®ÂŒÆ@vO‚lKÒÑ$¢Ô ›ÂxÓ2 š1O¹Ðr €- 9NW'q7î˜*°0² „² þ -Q+È^I=<„¿2EÍV´áÔRF*Wj´&àÞÈ~HKxþ""+MAÙåcÊTy$"w™$ ÂyÞÉ´LPùêŒõ̪ƴêˆ{Œ~˜'fÁbÞ ¢¼ ÂØÈ0Ð5LŽ›VÒ€wä‰YzVV|ï8n5?f«VæÈa‚Ä-ð¯Æ} dÀï ‹é×Àô%²ê£†h*Æb‚hdÝ,Y:E0™PÌFrXìoÁŠù—/'æff¢¶àR6¡FtŠÊÏ_ù²Jk$5k$ë×HLk$õk$›@b­‘¯‘¨×HJÖHj‰ ¦XÍÉ•åñ(’ÅDG‡ñ2ár¯Qv5²­‰ìÆ6%@Ij61çË!+ûòFº¾-k  ÄDž+õJ-•ç Z²·E­Ò|#Sèä„çáû5.ê‘pâ"o“Z†ûkÉ›Es5*h6O5'×kqa‚,ÖÊä¨X7pT¦2rú'k¬ÓáÞ Y3¾ÁÏC%ÉHW¼ ­V’qùB¬‹Ô¯×€2 ù ©•á‡*Õjú&¸µ } ÿ*鲎¨²íg-ΰ U-æÙ ÒðQp‰ €ÂêÀ]©•˜B\ò7¤4\ãùLô\æéͧ.ï:$]Gú `}Q€£ [\j>¸ ‡m®6)É‚`¾(ͯE DÃ×/ ÿ øiAgܲGÐþ×$˜[U¶JU¶zµ˜.©%ŠˆRO·:²Uj•*G/N¤^ê)ÛÛÁ’ðÏüRfR¨´Z].Mœ'ùTZʹšêµ²ìÞ܇…8Ö¤Rû‘Dê‰F£TSs<èÌÌ9¤û!Îdø4 !‚üPE¥ÂÕj¡ý¤ß*è7yÀžo3oób~®æ™ô0 ¬ì›|ËõòÃá[Z¸™ÓÇCâGGü‚Ϥ©W6«É^²—ºH9àÆr…7¤ÅðÃÔOf‘?û ­“w“p“‰†‘7áGdÅwNÃÊ€uÐM¹ÄòNú]¥—©pÌëdú¶/·˜Sc9ãóø"¹|²Æ”ð“ŸRAG}´l.r„oàº\«'Ûø`¦AöÖeËá›ËU‘y Y€Çe2^4J¢¦¶AVžžÒ*îsíLíXaûÕY=l(C n¾Lt—éu€ *JŠ$Èœe¸û‡vÇç]0tOòøq5üð˜: ¶‘•K&7¥ À!c{Æ$¸­ úg"{ еL( òÖÀÚ«Äöõ⯾þæÇ?ùéÏ~þ‹’¿¾ °h­ÐSEaK;Ox­l䊅0¶ØÌûIlˆÀV JBGT:®QFE(‘Úõ䜙› Y÷^ §Çàv&tVy+LÈy[Çæ•P¶‰#†µ0q^|\Çö’’½ŒŽßk“µ-ˆmüÞò¦åªH' î}7¶­N­­!…Ö±¶‚j„%“= Â²Q†{P¨m”¼õäl¦—k•¸G‡t^0ü×éÔ({kˆ EÕ@ Ĉ¢–“7è8Ñ‘Îp¬¬¬,OœŠågæ’g]d· ¬¡ˆ!É1,HûM6-on¥Äv²”L¥E€¯úæ§?=)‡Þührüž+¡%¼²’h%™+ x¨‹ZÙW.È—'!ÇuäÚ:ŠÌ‹ù=44)…óÂzïdâ-g‚õñ­Ì€;eù-a8FËX—²FS¤SÁœÏ‰¼Ài lÊÎJ!Š'[rÄ=µz¥R˜®"#FÆ“ØBŒ€lt¬-Úä¼\8Ì ÕùK Y ÆêÈ^©5’£Ç×ð‡ ˜xѾiÉðåd¯¡ w ¬‹áÂÃ%Y› ÃûD“¿ïeÈØDærtO ДØ\-¶“ÕZ VäPĆ ŽÅÖg6B‹Õ´ JÅžÄQá¦Í«Ìã)œÙA?N5f)5æðvGn^¤³3‘1xÌoïƒVÎί€ã{öø—ŸE+U ÂŽ!g-?Ý‚IF-ã•‹ò.Iú5-‚VÆrQR^Í›œ‰¼Lz8qäù+¤¿ø ÛÕ@wiòéØ4iQz¾]k$u)Ç»$=‡2ù2åƒøül²'ë˜ú—ÙN2´üzíÑx“¼|¯D𷇞}(!òØ ~O'Y¯&Ú‹¡Åk0*´(R>òJÇñ9h /÷è’ÊBd¤F YñÄct+ 'Î#²»‹ìÓÔ.Ì|¿¡ïDç\ô7Šc  2Ü"òy(ÈU/­9”åKÖžêeJ‰TJ˜ ½hE÷Åbh6oi;e]?ø Ñ 8JNàæ·ÂIö˜ @Væ’½ž« ë«ñü(˜ûP§È6à‡9ŠOõ”ìÉ­1Õaå‚=˜Ékbã ïf¦LðûøMÍP=[ò›ÌTrþ¤„±9:Ñp˜=Z´–E×çù³n0KÐéÉ*£m=µzí¥†êGÌ4Ç)AÕÄmñ¨Cðò‡(]Íò5V=¿a·F«E}W|7&çÅHØ-q”jŤ'ÒÂ"µZ¥3¨¯éîA.+§JT¯¡âxáê… %šŠ Ú+Œú<‰h!0ËôªZÜÁför-ÈÏ›~¡ æüÞå~©µ\Al,+÷~µ’h(”2™nOɱ²<ÑçõÅg;µµµ0 ‚` Ž.ŽÓã!Ýý©XaŸô’‚qÖÇíÛß\ê×­áMCdëdÆn¿&ý¥×¤Ï&"ëkÙáQtcGÏ“Šöc!vå–)•¬ìe ¼,îóÆWR?™î +è"¥Šž¹%º˜PA’máÂ|L`avºA™Ïh8êºËÛÃømë‚AL®¤{Á7,>¢g±zÇúvp¶•o/)‚æÍ•sßwHÒ_€ åËÍŽ“8 2ë_så-EÀ—¥ùr.Uõ¤ yØv\ñÕªAaÀ@j•øDzLK޵,—¶‚6ŸOKOl,HÈqŸH‹å.W&Ù·0+I(Ä,›d™ó ¥†•?@&•F\Î×Dt{¹”ŒŒ²Â9êçÆ1šç¨ʃr³:/[?^#œ®6àb5/EVA 5dCÁjz…´A8‰-(hó(É{•:ª²²U¦Bì¦ Ù¼€×Ùjø´ÀÍN†d¡›ÙÝÛÄÊ”/º!”²C…… FO¯âú=&ʧ" «¼imØË¢äDgÒ%âå?íÉžæ‡0‘!˜´•*’ ®©QXÙ zªº…­²âWA+ë€%jV/I¯ÑŠN´-MÝ"zœ°ÀB8åbÛ3Yäÿ†.òç|B8½qàGb>$ZO_6í–‡å?Ÿ^àÏ ãtœNŽ M?þŠž?Ô6¬¥1kij 4ë$?{Ú ï%Ãü Qˆ Øö9Ðf÷)fy’®æK„ñϦùíà^k¡¸ª÷»Œ ® ”¦ËˆLŠ#¥¾YË6r¾˜¬*8J¥ ïQ‡ÀñƒvÁŸC¦Nk¦±$¬™¥×« õªZ#º' ×gÃõâp™"[®‚•k0ÕðaÔ aÀ­ù0ê„0…ª‘£N’N+”G4ïœ$& Z¡ܧ¬—©MU)òg½ ‡°þªD0P‰`¤ÁA%ê»JÔ_•¨Ÿ*QÿT¢:U¢þ¨µWµ }ͬÜ@&I*zx‰ 5=_Æp±AGa¢Ó6ñåR'”' «cxPÇÆIÃüÊÃô­f~5Æă²©Â)ȼ%DÄ'ø¤8O-îYX²]0¨+fèŒ hkÁAxÃBvOcëñõĵ$:ǰ žƒçˆÚ,#÷ò,hÒ*jf‰`ººšÊã¤ïReSÞò—k-JCH÷“*b_Ä>¶’‰î:Á½ ,"D–nk^šÆ°t‚V‰z>Ûß½8Zije’l*܇%—™ ü… 9U\ò¹š·ÿ‰R/™XsÂno½2k½ù¤ì!&i©”ðó%Ü‹#z=k¹tsQÖäΗÁø„’ ?È¿‹(ü¥Q=xcÍ·—DÁ^àcl‰±l™þ05ixcZvÖÌç¡å¨•še²Ó1ŸŽç9‹§¸ÅÎY L˜{•j5·ªt5Å7œ°ÒzWáŽÜ“„ŽU¥eìl‡aA:,kŸÉwï×(ë°NÖ@ç¨5ô Z.±ÂH,׳OÇ‹y›Çœ,¢Q…çd„3+Ïëeì>8º¶Æ¯"_Uê—¬ùä©>½X×ãLÈ"Ÿ`è×°3Á¨ž½9Ãaº.óÐzö&w }M”Ü,³ àítÿ¼a^@3“7Ò'ËHÞèg‰É›ødÀØÐºš½+ ÃÚ¢yñä0 îÀäï\'o —]+$<…?šŸuK7èµ Ûµ*E¹QŸ¯Q* ò Õ:…’þé„3›7ßÀr.Í‚ѽË¥g VšµkµKÛ´Qi\¾!B©KÓ.-±˜Í_ñŒ è`Ù<äŒ/mi±¿€§Õ³ 领%á$msƒš¬Æê•µ‹/ÇÑûYÄ©øUF«e¦~þ¾Ïlø¢cßävDvF^¿TÀrËífgשÎ+áÑ31û*^•JK#ÓM±SPªW™ØžÆ2º§¯besr~Í—Éb-?ºþ©xÞ$ÅMç>­9ðm¤—½“?&š#ù Õƒ ‚‹oc5ã;É'ŠáoU*ò$üŠ(||y˜óœ‹IÚUßÖ0K ‡îâúþé…6#Pøæ-Gtº¢ †6)[]”Šï;%áY?¹LI{–‹qµÔ#åó :)]!&>ZWkdg_Ð ²^‰›òè–~Fíœä Z¢kÔZ þ\=­QØÓ.lœ á¸œÌŒBò‰5$§e7)M#+YI|ÙªÕxxÓ­ÊA îÉÍÍÝï}à!»¹iÜއ-³ÁdÄ ?³NŠÁEp[²nã¦âÍ[J¶––•o«¨¬ªÞ¾cç®Ý úä em]½êà!uƒF«; ʦ©±©¹å'œ×ÑJÕ,Y u£>JmªèGÓ†ƒXgn²r„ÛãH¸^©äÝðÖà6T–ÏÀÊGíÉÀ»´<¶]Џ dy…?{DòòÆBpÉÑûIÓ(ýPœå§õ¨Û1ûo̯ >~+6TQaJu'j"›ØL6±¯A+²$G:Õo~óN´õ…<¡,Ê ÆË!?aG¡]ìe[·råܪ#ª2¢Å,8¦"L£E¢Á jrÔ.Š © s-)a:²²˜Ç/µfy¬`ÀezªÈì xNZ#Ô!¥ ã7€ö›r¾ú¦™H]«r «ÑgXAï¹4ù»‚2t2;7ºyMU2^+—à•_:Â¥±"ˆ1z o>?¿‘¿F‰³Zàç(íMšÃ&P6ð~´œówýdÇdi•,¯Pé÷ɳ¨^²Ug>â±ãgQKc)6,6ä/ü¸1›¬C7ã* iË‚)X9~½ ø™xYðrA?pJE[)ô›Êc½–ñ·LÑ£ãüxÙ“0P1Ó¼Lvhår“žd$ú@ èV Û…ˆ¦{¼‹QÈJu»<‰F¼u•í)ä¯äÓðâjùDäDE%¹¸ì••ªJ²Ûõyü÷OØõKŒCˆ²x³éÑEE~ ¿ €÷Êkp—a#„5È)¥dúCnc _" ¦(~µH±‚åÔäÅ#?_¶¡ð£™Ègü (¼A¶ù•[¨ wå‘T€0´õJ\ŒXeXÍåæ(„¹-7W"É_"Àpoä<ÃSÈ:½J‹[¹ØÒ'Å1~¯àRÜ4°ªä8"]]].£tOÙªÇí…±µüfvü–°WDö¨e 5 Yv̲\?»{/‹Û‹—î²{„ ¹Dn–äË—W%REgñzpvÍŽ¬@Т2¶a|óÓŸŠìU(;ÉÞz)“8Y±¶@-–i|¿Ñ`ª£[ôDñtö F¨©‰¤ÎÞ@+º8Ù¼–ZÁ–ÊM‚ŸKêU¡¾×EÔ+5FËÕéDÕ/Èò[êݳoi¯|ª¿ß£{Üï’zi¿±+t¼04×5‚îá¦:q”Ðd^4®¤“引Ù±¸šëë¢Uz,˨mȯ:gÙÆkÇ-¿²F¯”Êê(¼áï[Š4¸çŒç%‰ÅlŠÒ×bðüZ8?ñÙºÙ^ÂH[®ç6Èêèv:² øšLÂö§ 7Í4K§>”ìUTÓ9iÒ¨Q6‘³T>hÂ0àœ´‹?Î1¤¶LbÉ'YŒÍÉÉÍQÕ ûc% ýÔŽ#±W«ä’eãX˜^ILiôû¢tx§*ÙDÔæ Æ±`c×â´â2–ÀfAý’ÑʾÊýŠ. ·æ2""‰uôæbÞ‹"WËkGQ›†l.…æáqI²Â ì2Ãm$¨‰-¨á;ÿKïÅú¥•q¹ØèÈêìÙ‰eÒ“YÍ€× ñ9>™M³4M cU¸šï›èPLÛÔä–|á¤ÝûL¶¸‹ìd“å×?ýÊ ‚-+C¬UñËÏ‹Ó,8¼!œQɦáš0÷Ã;8h§–)‹ ÊÆShå ñʵª–­Aaw—«ÿû]ÙDá¢_MVI=‚I‰m—JY‰@0Ù²E É C¡ä“ ü~òì>JüŽY{•ápõB®4—z Ï#*Uõ ¼¹Ù`ªa“)й‹œ¤§w½€|l ÷¦ûîÙgðÌ @÷*5åãr•üáÏôÀeqò z‹ _&]‚w½ ï0!œB_W£j¨Ã;2ñ Xž)Þ ø)ÇÌßȇ”À2ë与˜_¸j+Ö¯"*éjÉÚµü­ñ¸9ˆEæfÓAžrQŽ5d:eÔʵê_}µ ·„ϺbEYߢkZ2Ô|תU‡£ ¡Z²+›îS¡¹èéTè¯RÖ»ï2Õ±ïÆ`u¢íXJµšÞÌÎêÃ= z4·#­àøKÑl‘£f5r#üÉ7 !V¡ñÅš -¤@½NBì%À”:;7¡ ùV•ó‰¿b7ůÀ „P¨Hô‚ã%öÖ¨ÔP>H¿š¢SÒ{T$äôðŠ<«QàÊ"VI.Í&Ëzµ@á-Pß²=ÎÄvÞ •KŠ”ú¨Ž}EÎÄ:4é•”ƒ´-[»{•Ô¶FR£…Ùu·‰%C  €7wõŠB/¿&%ÑÈÔÖªä* R­Ð–¯~™u©W|6õ×€&•xi í“ „$ìK@ÏøÝ&ìvØ *!?ÒlL)dø/Ñ´DË_ƒC…M#ßÉÐÐé_ 0_v³¬7j“Ã!É⩚؎ˆç ÊÙÉiö»ûPXG£AkuFƒp0`c{<~Có‹)ÞëM¦Ç ÷0ZÙy¶±‚Ây[ømaÐ ˜«2ŠÃš”J¢Ê@O ÖÊäÊÜÓ 3…%L¥‚çô <¢¯HÈ4Âr¡üÎA)%Å}Ö+‰B+Œ®z¶XÆÏË#0lE.mkmÞ²œo~¸ìÓíá²½þ½µP¹b>ͶèÁ<GID·Z<ô,dišž^3A4]f¦hТ8d,\dRÔw8ó$¡#§[…!æçètñ ´?ÂÞW BòC뙽„b 3°²/S´âjp9J¦V¯Ðò¤ç\‹…aù*%Ÿªr…¸Ê<ŒÞ.ÅYŽÆfáÌÓI9ãŽüóä’:1¥Ù†JÉúE^®–íù¥|¿‘…øDÂ@ûÇ ½´-× õØÊÉ4t-Ù¡¢à(ÊCõ}¥L/%­¡%¿XNð>Qº,~°~'„¦Ñ+ |,•Û´<Җ⯾^Aß_­XCv!FVÆHp„Ž‚?“£V¬ 8L¿‡Ü Uöìñ^h:ٓφ”ÚçJ6ऎj~¬}d“L…x´Piäj“"»Å“îŒà·grôÜâBÕ8 sÐÊ^·‚žMäo˜â7Yˆ×=¿áf91HTÙ³aYZ¢¤ÒdoñåÏN ó\£„¿W$?{“}dôVÓţǻµ”)þ“26±GÁÇ0O|WÖ⃭+Q ­\x®ûGÁ,Zr.ÏpˆNÐ~)–ÛY£LE¯ë+[9ô|`Oc"'—ÝÁÊ_*ÉOH‘4ø©ó>ä«/©]Ž~øˆmu¡mÎÌ*xß$»GYÐÖüŠ-|q|šÈaqün?^|ïzve‹ló))+ÝÈãâ‚Èàý¶t-òseðgcÉ…hr¢Þ±(+‰‘FÔ>®´hGÙúÍüvo~ IÍôœšNªQ’ ¥–O§ÂK\e”*²ß i³ôñV^jžËexO%ÍBtW±mnhõ‡&M& î;X³‚ˆ" t£Ä²ËA¸³«a[¤” )¿‰b°Œ}B«Ýeo?Àu‘ì^z-j{¸ü ™¹¢UB-ü-ÙÀE–fÙeIÂ$XŒ\Ÿ‰Zpçô"ú ‡‰²öuÒßCÊzUu.GÖJó˜ðÉcBj9Z$2˜ÝSMœd±YD™®,/«T ü–J-‚ÕR¶`²ôV^™G5;a~*-È//æ¸õ2¥Íxl[˜'¢¾‰ˆ!ÔÇóþÅùé/BÛë5âra¢&öV’Sk$?"ö²Õyd’P›KÜ¿"?+VФ¸}S®Î[!‘È~%$CŸL¸»w•lÏWûVã½,«š@[^½0N¾’}˜bðÕ°’ØÆV,ÖDºÁBÝAøäÜr?XÄ´ØU¸Ì•“ ]Ò#òí%†ûR¹L^¯\žž8q:!÷ǪäÀ8¨}„œ™"Û¤ÌÈ_ù"Òsôü5;‚žÝkƒV~ï%!œìží%~fÍκ¥T !ßlE‡TøåùÛÇ}û5<ßÀócî›Ü¯¸MÅ7UVIË+ÊªÊ ÊÈç!îçxÚü=”ò›éÁ–±A–®–ò œ\‹·ð”©¿G>Ϫ²ŸOY’GE”+‚sü}sÂYkv’d™z²‚RXŠ#|Ùç(¹²ÊÊeê¡‹ŸÐ¶Ú™ÍPV‰:Á" [÷„±‡f#›çðÆáy¹‘ßš7ÔS4Zð’Ñ( Ôz)Š#wç5*:Ñû)²›]kZ$9‹6ñ|#Ìp~*QÒ£QäÜ5µ²€ìàË•$ÞwŽŸGùTª¬íRø ±çý¶sà˜”^o&ßc‡€ŠÌƒY^œËË„‘„d#=²KçDÔò Á¯„¢eÃÀŒ[:=AAÅ/锫¦…pm­‘ÿÈ:ê|„˜ ø½Eèf÷ è•ôžöq'¹>©…´‡~ [ügÞ:Å0˜*¦¨£¢”½‘ˆÜôÛpª<¡ ä»c|»1Ò{9¼/Žÿœxö›ÔĆ×%¬Yx%G¿F/òÄ{$«ÚysE_ãòµIá;;ì4*~𒮥7¡û9¯d<²‚#Ÿ‘£^òÝ+äß|il/ùh§ðyü:»)V{ JÝ>R¿1V#)®,“üâg_}Íffk$»àoíÖ­k «6mÊÛº5¯²rOnþíÛóÇ´/wÅ (IXð&·–ðçûÉ´£`«!-[Ã6[d?Á¹² tÖþêªÚ_Dú5")í‚ ÁB\«ðœœÉ('>NXYXcr˜¹†¢Œ>B. '`æ#ß'Ñ-i;0ó¯èò¿öKó¬^¨![•HÏe-¹lü×ÐBaæSðßUÅp:v8/h¨!øKBAÄ5èHv5¡º[TR^VY¼S’M¶ íå? :v$ƒŽcð@ÏháÄã"tÄJU‘+‚½ qOh9ÿÄL’ÒÖ¶ãÛ¡!sõ=¬ÂÙÈ…&,ÊM2’¯ý*xþ!ê WÖ‰ÇùstR!Ò‰¶( Fª3årËÆYŸM²\è*Ý&É'ãÓ|š?M~Øß#ôÛß *rc/ #޽ÈÝ8«®×šPQÌ‚fP¯’« kèœdµOšAJŒœ¸×G\vß´QžÍ‰ +«øM *¼VÌ$xm°Q(òäY&•d•0¡Åµ¥ð(ꈕá¶"„Ið¶A‡Ì"¾Ë-à›ßèÇÏZxÛfH‰,rSyǾ¦Ì]±FÒþ æ}’ÜÜ\I¥‰÷ÿŒ#9Á× ó85Y7”K6‚«իˆÅL¯ ûs%’Í2‰¬²|MêE–Šk'¤°¯sqß.MÊý§¶óëEíü9ÙcË7õ{àiVb䢬ÖÒ1_øñÚ%q&ÅP6‰í¤+µTN°ºsIYä;ØÐ0ýúý]ä„XH0ë#ÅšZšœ-j^óÊŵÒZ~Ý”Õ)_>%ðe–}Ç” ½@ªuI&nÿáumë‡é­> ÿÜNõxf®^²ÔEx¸,¥wÄêU}½´¥Uú B“ .¾¸µu….8gÌÔbEŒ¨O™žH:;BQ•fÊ@³ä¢¥¾õBÎ[$dž.%Å£hccÎü"ôTÄÉÀç ò„6=<µúåla“G äc̺Fbž“"êÙž9¡Òê‰{ŸØ¼EÌú}´P™6R]eå;ìOyÞÚŽ¨úÈ—Ð (õñN‘àob° ‡ÔªnWO—©FbÎ|¡yÏÄ£#®Ëm36²ðEåH¸Hž·SI ;ü—Ék«:‘Äj%¿ÄêY]ŸYëÅc™²^:Ú;%º—wò"¹)6бŠÄ½çÃ{V*À`…C0,´a6,‹ð£Æ/1è·Ê·ªý…KéjßN¼5HÃ\:+”Æ.V% õ~èR1j l[1íB·¸â:–_U[•Ì5çÓ´¥iH[¤w+ר¯ô3ióÖVŽ4¡k·çØŽNT7(Û¤Ò¿Ý7¶´íJÆyÿ•¡r~ÏÄ«w‰š'@6£ö»‰Ž$,áÃMá5Ê´VTáÍ•§q¨aEò&†^ŠVT+5U›èô‰9º=ƒÕâ΋¯Ý]ÑTµ½¨•|«¿poa&ÅaÄ µ‡ÑJÊÌ)|„ºR_«>T`_8\°1¬´§µæP¹"åÂÈ ;ªðÙô…D9¼Öäˆt¯¥Ì˜Ä壹ô,½K Å*‰ºæŠ|k Rn!k”]ćz®y0Ò˜¥ÿÔÊG¨A¡2>Ð%¢M Øǹ2ž™2a*$ïpMÑzBd˜VV~5“µ×P÷ÅôZõu„FϫٲcáÑu|óú6JC‰ˆCl 6pìyprÔ†ºnÈfèBÓ¿§&‹rxV,Y+'r§G¡#Êî£è­è¾ëWkäë𼮥¥…Þ¯»^×c(¡N’ eô›{6’NOƒ™UÞ°‚‰„Ý •±`.UŽ2ZžÆ­í]ݦý âCÛÚ7°ÛÆDŸ®?IJò:ÐÖeʲ{]§5w!y“ß É~‘þjj& þTãÏ|w¢g3_Ê» Ð$)@òÓj–f£*1%F%)4ò×¶¾­)¹Òm,n%'úÚzÖ“]wWgÏeJÙà|&»Ý”®„[h‘Š¿]*ÒñÄ^:ý–ËTbÝÚNʨ©Ó©‰Íý&ÑCO§qº>ÑßÛÙËùÑeVÑ9}I.¼ÊN…ÛÑÙg¿_ ÎW²›Ÿ½‰¾ngò˜èìꧯ0 ÜV(—±îœâ?±9ÑNÏþÞv“®tÄjÚt"·ñ›ÁÃkû¯øl# $äæ4¤Hç¢wÓA9­>jÚ*±D—õæŽÄFzêÆ›hßÐÙÕAe%Üi:—HÌ™âçï½¢_çÉö&¶çÄxÐòè¬%ãÍ!ëMiÎåCrb ߘ ´ì½€X›rù ‰×¹î­Sõ›Y&t©DÒ†¯B¥Q¬‰‹b"0Œ Äé<˜óiåv±Î d—äè5]º”×¢°æ˜wÎSÄÜú!¡-˜Jså0 ¯êƒx}Fx Ý©ÍÒf»ç~G㉠Yì‹™aÚ–‰`T™ Ò²–³g#)ÖËr“Ö±äˆM’;Ø÷MæéÌÀZ$µ& cÑϬˡÿÞ,ß@uh>^d(t«e9dKæÅ<»™°Fèû§,¥ÄÜg˜24‰ã è±(¥óÁ8†òQÛw°˜°¨ßD¾†!˜dÚ+ý¶Žh¡‘™^Чí®Ì– š¿Ù2åaÞÛHFö¬¹a±¹,;mãg·ú­‹‰çäe =ñ£Ïm¬”±¼¶™¥½ý–ÝÚEÇ{&@êÔš#:‰t9JÚøÉuÖ¬û}Oö‹±3)ÏD~{®T`Qaž™¼Ï~ïP!]ÊtR»$Ñõœ®Ã)jøDêdö—Ótw› ß ÅNg›pñWȨ­%žvfÙ´Jèù{âFÚ(ÑÁÅ H|ß`e@^• FVôè«EÀ]ä] ½#áô"}kœ…ݲ°z Gò4’¹´›P€…ÛXGÅ…:œ{P.ÖÝjéå’;Ç€ ND¶ÐŸRV¬ˆHê“-£ß Õà±`Q´T (Í44I@¥GOl²aË`}ëò©†ŠÃØŽ:žÉúÖeÿ?âa¹a3ÇLÎÏåfŠO„jE¹3Ñ‘ÂÒ”„LÌœ‡@òÖšÙï—Í0wÔu5c¸£¨›Ã†=B}6ìê@W2Äð¥l3/³4g^°&\½ou÷Úy-}Œˆ °­ž`zŒ¶¼#~S.¶BvîŠFЦð€˜ñ©2T¶"Ü0³¦Kú·–ÄNKü[íÖ0sGÏÒP¡PF×*%x4jÑú¼Œ¬ÌLsa¤™‡>ÀÈs¾˜Ð’ؼ™ŸRóVå³;,-+ÓÁ:¿ëÉŸÍÌÞØPjXk¤;è_ÿ´Œ—ie†D¯ìù $¤2Kƒ›‘G=åPÏ’C›æYa™y¡¥AÌ]:mº5q¤T•ÞÒÕÆùž¤CÌ…’}9öŒèsc?3xáBÌZi»P‚¤ g¶á†ÝXa<£çIÑ#'ü’X[éÃ+óõ.eA(ŽQñŒ²jÏÁÊó]šèDY˜c*‡ )&<äÔ7|”h'ÅA-8É´Msjjެ_^\7ÊC=O±,y§›pñrY'w¹¸nxÙrø2èØÓDÆùs b™UL<°˜®0Zï÷N¯£,3‹ö[Fvvbë¶ßÍ(0m¬gºÕEÇ<ÌË®yèy)\°¤ -ÊZت~GÃKÁôäöpˬ2W›=@Ò¡§j™gúÍ­°ƒÃ7½]ãB«¾mB›m¿¶¢YXb(d°ÓÒ^œþg¤±8®qMš®\.ÁÍ:ÙXE¥º«½¸7~ŽNò ÑpˆÈm~HW3»Pô¾ù­‡Pò‘ITi/ï¡ôŸÆŒè(°þ´”!ÛŽtu…mŒ5Íé£àšÓ´ì‘/D2ˆjû ¥NˆOùá%µÔUäÊ£›Ì3 Øõ¸¥K®V4÷wðº¦×,œø¶&5?‹­”Ó¢cKÙ‘á|yÝŠ£I¬ªVSc%FA¤FBô2RhZ¼^ÆÔk¯Ò¸çLj»;?YÏ2¿”°¹ )."t[’…(£sڈꉅ—òüÛÚvXÿ™JÿÅ6yîÓÏÝ«åÙªŸÅÕ#%=ωæC<Ín—ì¬z/˜£Úå]ø˜µ߇¤Â IÇAwùx-Sdgô‘“YVè#) .룗MNù®K¦ÿÙ.·S)ËŒYŽ3' M«"E!—É jZªG©*tÕ=©…‚…2LÅ·–LT4G°>ÖߤéUeÑ*Gýj*°<›òåŒÅÕh]=CÓF-cäLCûŽŽÎ<ÊŠž<ìTh²¬vsØûI‡ÂéM¥Z‚bzÂyçÚ¨"rDEÌ$Í™ìHÀn)³F"³V,f}ÇnÞõ&ŒÍa3Ð~ ÃÖl9Šõ¼ÛõÍ=B$íŽ ”cFlÙšC>Ý£ZT¡Š˜ÄGtÖÔ2‘H[*…Ú~Œ µ!ÍF¯û‡)Ÿz \½fõÑ5‹ë¨Ðd¬,WMØYŸ1ñGôlüU:¶"uWí?¢Þ…nÏ/ Jd.XGó;I_¨åkc9[„¹Öž# ä¬VÅYIÃjhÑgòçº/#}«ò%3F$Úê©tªýè•)í3éž8ît†•¶…úÄ¢K?‡ªÃ)ߨW“wèI¤ÓÆF°¢§r\Cw#Ñ2Ð5¨ÜÑÈÐýi(cЊ^¤¾À‹¬ – Ât˜^gWºqw¥0XÈLË’ÒB_¸OÛ÷’L´ô®¯l,{¶#YjÞ ï£L349ªÝŒë‚<-ÅÉO&ð½¯Ø ÌpÜÈJ+ý9¢;gN-?Ú^ö˜LÙ&âÒF‡[FÓ¥¡ôhVKøp¤P†»Z}¹l|†²ú‘ŸZvDò‰&´¹“™Ja˜o¯…öLV$Çø'sÄQY½üÆB”ø…¨Ä(v#”ÎîÙÝ䇲mÐÇZZZæHaYØ„sµ†£s1çP=ÄÃZ!jÊxEÉ1-;k×§ºm—3]¶uuY·äÚKíýö½³§ ­‡.‚ä}°§=ÙÕ/mk»Úε±ñ´!]æaÛ¦ïÉ¥J“y93‡Ù,iB?Vï6I䞤‚Q´¶¿àÂ@¹t( EKFvÕ‰7«‡öf˜¨Ï0ˆÝgêqŒ4†|®õÍŠëÁ‰ÇݧÖWÆÍE\‘†ÙêÙo1‘-dM¤v=n>B­ZZM¼jœÌ[ˆß möÕAY®·Ì©+éjFSÑÓ‰×j££4&ãb‘Õ¡ëFïlx÷YÔ[Fñ@Äf ‹ÌõA8í°G§€Fu=¯”Pït[i45È© PRî^̰¼ËÀjyck•Mxfg?Õî#5HC¹Áý^öÍç>ͼÉÖ*Å /Tr!.±’(m˲ØU’bE»I5šm‡>Ôã³ 9ç52N­´.>VàM6Âi­õfíÈá„{[ŽØšl<%C›Â¤%ápMÚ¯ØS´­èƒxž{³Se÷ÛÄHÚŨô)kMŽ}Ä®â3BÅŸŽRÎ0M±h4IË&œIsÌwͽc¥售ìX­÷Â+3¼wóÈj§Ÿ­¼lµÈ­ZÙµÚÚm[º;æÎÕJiá妛Òi›åºšÀRabr¢†ŸQž½ô‘œoÆ›sÒØ¦>ESú‘b™ÙuÎÂtÆœ4×®f>‰EŸ½)Ñý×HÔ¤3´ÚÑÕîêGžA;òaT;+QN õJ7®ÒË,’|*”÷Šžä˜H`’È$iæ ŸIL›ce-;ê¡ÑcÅŽPÄh ¢G>³92ÃrI‘ À<”rY¦–“>W«Žå«]p´åê ìR¢öÔŒÏØ5ã'é $á#Ú' ㎬«Ê1 ŒÚáX5Ū—ÇAU°Ã=­âݹ½Â_DÏãD.à"ohâ»—h¢Jî Ðgr>‚Þ íûÔùÌqŒô¸˜Û^wº[ÚCæ.P­Ç/_pÙ_ÕÝßÛÞ²xéâÖØÒ%±¡\9ÖH÷ÆãMW«¶ÊùÜÊ­l®Ö+i¡gΰ š®®¼þknVª¿0R&“Ky´£µlQú¥—DÓAPÅ¡ ¡çbË06¹/+äòôF烽mL»2È%jöã²×‰‘',A[¶ttu+Z¶Œç†äÿâÅiÞ‘ËëW ¹¼-Œ'Þ¬Ç^Ú{ÅÀ†d%„¸DžÎ/cc™it/¤ñAg(C[ A 3^„NJ!½¥K¸m,o¥VM¦?Ô’–e-Ä$fè^ÐDº°¢§l輌ÉfB ¨cúŒ_ØðÌðü0Âú,ï–RFç‰R|ŠwV¿£è<œ&VÑÛBêsdo—MSaµ|bK)1,ÇJ:#3§Hû1YÒù”ËZ8Eù 'åÕÈêW\>¤_dDž#{«çº/V ½Äf·Z_mÝy2µ!Uãç+S¦”q%ô¾$3¹ää7¤G²Î;—åT±F«·bõ¡…¢ &‡ä„½6Šãšh­©‰r~zòЊ3j¤6WÊƒÔ àSlÞGI릔“ù.Ò¿ Ùž¢S¨ÍÁ÷Hz˜74¤sKÊÑèÔ"ùãFw–RF?ù1º°LE8F©§žoßh-“"õ Ñ| Lꬻè¾âöž¢oªÊ·ú§|?æy ûÝ=gõ«¯(ï\(¬ÒFþ¤O¥BRáoû‚¾–BÉV6®˜û‚&\ËÏ\÷…ûjµ/7Kè·ÚÃìcŒUÉõÇܲ˜À«£‰Ö³ôýJ_^ÄíL«âÙý9:_Ž8cNZ=ŸŒ-á{Ô½:ö{#á‡cjú3CY­Ï1~¢[ÓOä«cyâñ±¢`æVøá±³ÂOåʸõTñYvÌ­¬¿ÂÇžVWø¡‰òYâñ¼ÂOeR4ÖWxÙ]éEÓ4:¾ž~E•«OFÉ8a¼4uš—™ú.óLjO'?%í‡ólR)êµr¬3åRÔ¿;w8¿íXKcµ$‘ÄjF¡ìz›fÃÙ•µ¨ÓÁ2R"ò"s:C³ý(Uc¬“2Èb_Ê‘@2¥nœ¡ ˜ªTû9f¦râý¾ñEk¥K‚Fþ/²<äl[¥é%¥QRßIú&–л6/wíéÌåÂö\&[àpË´oŽC›' ù‚‰$Ãülü¶D…ïäEÂp$*4/Ñföo É2x—DÑÏ ¥Êh™y|XCLí¥]TÈ—"2.Ãÿ­ÍªŸyôÉvg‹i¿Ì¸ë§²þ•:7]rÿn»d)ÿ¾wÉ#;OùèúG~~IÓ–7åÏ_¸Dëßh1Ä‹Äc“ “¥a‘/ž¢Ã ´Èÿàw½†´ïZQUJ. 1og6/f}‰)|9Æ…ÍÖEιÅ)eÏøõ>!¥¯%Uz˜/Hì;=éNô~ïH ¶Î~¡x¬ËsSBë@ï¤i˜ÛaÞú#ŠN¢È–»=˜ “ekÖŠVЗҩ¢(,¡GJælI‹(e»±B„½Ðm®s ,ïZº¸‰¼¾ìT®L}ûk°XLëÂíôÞñð©g7~öÔ³iÊX阗=,¼Y•ƒ VîÃú¹C? |GM[G:‘‹YskÁEÙ;-Ô·¤ª[èà:°Ú$qFÖfx=GÄ„áÝ}ÊTa*5ǵ¦÷ýª%–¦%´[\m3ZmæÀŽîiSޏZ\š’µI9vNNZ(/)ûQërS“Å„‘l·âC…Öè †+eŬrYÔNPÖ§ t‡‚„µw#{´‹ÃÖˆÔY8µ'ýRòÝ$—“$ÓòéÁkG£°`„9vÔx稞B¾Ù½ÛdõžúÒ)KWkd^-ÍÊÛdëž¾Ó^@pÅ—ø^«zÜu4([jƒ“%-Ñ©f(-U×ô:Ë“ ;Ëò ¦3V™_¬YDKKñbاŒŸ¸V ëf¤rÂýVgºÒ¯³î¡äç/qŠF™—¹ï1øVÅ—6Ûú t…ÆÝÅ~W%¯Ž´•°sIãN0 ¨ÓÊh ¡ `dvëVž¨ 74T(ê ‚xd™I"(½ë’IæÜ¿*¸ýˆÉ˜[Çê¹ã¦ÎIÚÒ:·XS¶¤×5ýE×¶Õ°Æ·.ŒUŒ$©Æ¨`¤˜+å$æâ­Ì¼:ì9s}°Ef‘` )ÔŒŽ‡z0§óU3 Úé×óšÚà&Ö˜žRéÏR¸ ‡ Õ\4†Üõ´#µ-¼6Ï»R¡¨„üPŠDLF©pÉFOVµèŠIëe“s?Âï1JÉM¶„¯ŠV®Š-½P±.g%¼fÉŒ¡ó‰™uGn—vfK…Æ—²ãÒ5Žó³mmHš«wåâgI¾¦K²Ë÷U‘ˆ,±€rh…ùðR+YÁ¯µ^hŒ›µ¡uª~|ŠßÅ åÕò2 hÑš]4¦+jW2§ñÆqMÛK?eïx†I{£´½¹üa){õ|Žïâ¨eaN³# Ä• rúEòò3d³¡~Ê–R¶˜•{¥Ðݶè¾KQ:îîXŸßïXÚeš !/ÎR:¼¨¦•E[!ócØ>φFaø¤Ö|”Q£^‰©Cz„<™}”#²ï,ã.¦h9^ÉÝ‹–}b»$Ù¹ýsx¢hå·HÕ¼¡ßR4¶ß É1.GiúÙ>Të^Ë‹‘³“Îd„ËÅÐôiuçŠõÕD¹Šc0$Z½<íN9‘FŠã\™PÎm²•F«w¸œªy~¬ Ë瑉V˜^8ºð^(œ.Ý&Fãn¨”*ægا9»˜¨DL¸&ª DŸï®$om&-\`S˜+§Ì‚Ð|šþyÉóâìÃÄ‹!s¢°=[3†6Éþ¢¶\!žçC=nºÄ"dt:)rŽX— UQ÷s5-žmYʪ‚TÉXÒL>ùZL½×GžCÈWØ ,b¼‚5ÄÑ¡y©ëOUêâ¶£p¿‘š_C«£óÈñ±Ä7A ‡rÒŒµºwæ½ emRa¥ÊŽ~¿¡\„Gj†ô +•I^¯‡®9âwk*G3Œ:d`vAËqXUo5‹¥æzŽ•’; :yÁr3­èÈÏ¢ å†#Ìö%e§Ã,îtÏiqDk#³W6kÃH:Jhá[ZZBÙ¯iÕLZXQ–ÒfcFç¸W-Ž_='Érñ\âŒí'¨Ùñ9rÚÕ?ÐÖ70Ø— ™Ðß"Ò‚V¯HlbÛ™ ½„iŠÆ3C3Ò4'$ÕÀz.k¨nh6ÊR2U§ DÒ„Gâ­$sN,ú3Ô(z?dÓ¥á1!JÅšA }³%jѹØìNp.Òã|P€x¥¤¶ÚÙ*6¢¾ŒuýðJ¾ÓÕ¯M-•¹qÔ^×È‘Ð:Õ&rjˆ ˆü4€€9UdÓÔRò±F-¨i*›\%IèDCª[\ÀÜx`«‚N?,75Šb\+.*Äš'æ4oçhâ$àlˆø;…YIoÚÂä›b¬EVò½1Ñ·6ÙŸX5Õ4§y£Žï+E¯0uš©l©·ÐýÁœæMÜ™â1-†• ” ãHTÜc çÉ(>qŸ§Éq—òŒ óRžÒ)Û°òùÌ´E£7Ÿ.ÎBJCSðRŸÌ禘΋¥ Î?gx"3‡Û±|…t VfÄS¦”pKŸÓ³[å.^,{ÊŠHGàÊËj/O7a—Ò53käÛ ä"¹t¬¢×£ÛŽeDZ©’NëôöœI„YÊnÇ …,ó`jFÝìF²ÛÙÓß›h  ÛabGfÕŸXàaï%ÒÜ܈î‡öTˆ¬¤®¹ uÎI Ž_.t.u•æÕ¬öå*]»bº“î’IïWÇ®Bå²7„7S‘5Ò<€F³Us±æ±}wÄÌËBTŠ$(\dU$‹—r¼šdb9Êí1/ŸiT»M"Ú Ðe†²‘«… ¿Z1 ZSa8ÇÃdt.3L~å$‘dÅÎ¥ É@#Ch°ÓÀ"¶òØÓÀ[)­›(¨Ei»pIð:±8MÀ!8>Œ¿áˆ¿ì¥S$ºg5Ï$Ærñäåñþòäàö›âS›•Ý3Læ'ÐMÇ0U;WvA˪ær*ä5ó*ó{„÷©&ÖS,W¯Ž…Y<]‰æoÒìð„·˜Üµƒ+g*ä› ²|ölÔ{ha—¥![8©8tºÊ~”¨¥¶›FmÛÂ:Òía¤]Y³`Œ¤£¼Ñøo*¢~ƒù»rZ¥®2ŠKKéL.èþˆÉ’Æ3B¿96],0?fIÞGàܱJ/­æ¦Å-e³ÎæÆe™ÎQÍÅ·÷½wÝÏÞrI&ž._f<Ð=žð§„þ&.¡ñ$¯ò£§¤‰Kj™¸¤Ž°œ ‘ôSèÌJ˜ô)*êW²ïúeÉÅéf,×…®#˜•ÅW(z ¤Ãq·”o]P”gSfq­`•u¨Z• Ñ8wãÓ´ŽU’mSénXøØMÓHÉÖƒµže‰Gk¤ˆ$54¦~Ú¤‘Ê>|-Óðð)f ”²ªqàHö^:›ƒÖð8QÎjù‘3Ö¨\QI¿ÜSÎ@ë!æb«í§RàŽK7s#ôݤ-Á…h‰Rf¿5bÓ<”![¦Žüpq3ónµ [Mш7d|FÓ8ž#ðÌÃÕN+Ó¦šaL–„í ÕÆÅຘ E:DÒtsºÎä€I‹§¬…èÉŠî2FùæY“Qª\r×N"Šd±ºý©ödïƼ©¯s€ÇEýN2vUoÛú„‘k«×}f ÌíI{èN lHµwµõ÷SÛä7b¾îl§q˜ÖäXÏR1W^¼6š}üD.`ò¯Kšxn'B°ŒÐ„¼nŠø“fvs×,áATïtj-ÆÀ K#Uî‘]A‹fŠˆ‰Rþ4j3ƥ˃ø¬Šl"Á˜Ú;-÷Ô©¶LF&̢ɀ5+QVuUÎo¸k·8M=y.boÎ\D Ù#u¦> Í™æiã»P¦$ŒÐ*»V±WRŸš´²4µÒ-Þ#’iuÔ¾ÑLJMLs6‰Áuª°­¦±ß²ú‰÷mCc,ã—eF#cØŸñ <­ø] ´Cžéþ•¾c,›.b?¦âÆ hlw‘P êx.^ÊÅ£)ÆuFâ:cqÑá¸ä|8n¾D©®ËRƒ=]"Ëæ>2âÙ³¶O,Ùº³ êîI,AhRé/cªš`Im´n¬°ïË ÉOhßN²1Yç¸LUxgy¬é -:óm>ÂÙšVV«eË]òõÑBÃ"½‡5}]è Ô÷A‘ðzna¹³ZÖ€pJ³ôUý)®®3ÿ•D¾®Í`{‡QÖÍVˆEƒþò ú0×cvÃw¤EaøŒ k;¯MvÆE©*ŠœæXߣ.ópñU!þ®Jžm@×ÝD÷R¢c=éèXOFå×%õ2ÅÝȸ’ MBÚŸ •n—dún%±¹\R¶ä¥åèñ$¹+ˆW¶¹Ð.l—ÌÈ ‡©–æÎ,ÕšI®²Nàï‹Ê[Åît§­U¼³žÓb ‹æ""5Aš%ÐYYµ:†Ä«ù><" KK5>šhU¹˜2ŠÏ2¹Œ|·´æÅ c­4.>œòм„g¢P>YxÕ(+¿–Ðau☃W‹Ï2Ѫãêö‰ q2ó[¥‚ŠŒ×Å¡¸ GÒU#J­EB4Õëf¤Ò¿¾ÚdÁ¥ßPy!—Òy YŒ".°- »—o™¬–@C•¡e8´WµS”Zc´õ4Æ_>ÛTíÖÀäy5ìQ” 5âj*Ækùß‘Mo+eGj†¡ 4` êCCV+…ð(V?é´Ñ|ŽÄ@Ï©Rš”sˆ9Üùø32$‚ ¢Pš“Îdø"/E¡³dñ:æl%F dÈn÷!=¼aþ>š®&há5,ªìõï Ë ü“ùÙûι÷ص¬‰BÒñ…B% €VÛfŽRùŽ^É>•ZíSeCQ(µPËÁDKɵ£Å¹¶Í6¦ƆšbÍͱ~­:½zÕP ¯!€r-wv†¯Õp?GÂScË^[Ã}•¸g¯ÅZ¢Vø•âÎ<9µÒ_)é“~'l1„Dˆ|-Œ G<Â1–¾j(>,zé_žß³åH¸…±L4 [Ë´X¿JÖU3§ç¤5ê„!Z¿êX°€¾yb}MUî:ïW‡~(Öo¤)·Ã-òmìÔñ_åYôò±?ž° ¥SMócƒX=é (M9°LóÕ #š‰eoX †üJº¢TJv¿˜jd)v>% WõŸ‰Ÿ ¦$úd)U+ð® nį]Ëýr‡óT×òp^LÚ¹Ë\IÚ)æÓnLGE‡•[­¸PªÁäP-·frÄ2Co!¾F¤UËYçÂúaÈ*›!Ù¦ëôA$¬£dœ–A 3Ïü[AuH0&ÕËZ•lr †½Ó ¤¢ùkš–êø”Œ-åt.ÿœãnj Ãê¶_›©è´ /µ žÃé•A.è×9Ã:YЇI'U“P†’¯ÃéD©U÷‹°¢X]C˜‡ÉÑ 9muoÝm³F^eýÍ™Û#l,û,ÚWBe_\·4+…ÙÔw8åÒô"#g±ªmaØ, 1M™éo¸)œ‘Ëx„1޼ÚqŽ$µFó|‘mÇL§=y^ö¡ü¬ÈP¡VÛº:;Ú:“=±um]ƒ} ¢ fòžÆª,èiQŸ-£”hp£n*DÀ®DÇp~©V©¥¥õ| 3€ŒI–—– r‹ÆÛ`Ñö£Ê%„ "Ü¿9ôŠ´!WÒtÆD7\žy’ì\.lË’„…ˆý½˜Ã4¬4KÊ]1íRÑ«h'CrˆïÁŒK ?Xy¢˜§{NâÎ"Þ™–o"݃'ËÙ<ö[ÅœŒ£#ºúÅ“Z…¢3-Q4•™, ­ÝdQíHçÊÅ\†ù&ËZÿV‘‚-ÓÏ¥ú¹D?ŸERÓ;òÛ³ú)rûˆ:‡Ÿð—ʲ*Oŧôdàº@ËEF&'Òå'`½Ÿ|WUN)D鬫ÒD&GƒkIk¢Ø&ïãæÛrD\â»õ™Iý$ÞM9íÿä}ûHöÒµCñM¤‰n‰§Gù™ÞžF˜‰'šž´ZcÝ<¡ÛvcÖh­h¤dh¥`ÏFþ. _øÒ„A¬¦¤²b”ÜSúh¢îÂ#hÇSø›¨éOÅÀ=mÜ W­ôjºU¤UÓN `êíø4ºj¶b•¡]d>äXg…Ã:@d»c*£63I»à¨¹M’[86¥YBs~›‰W·:_ßÎ;î€2l§|j4e¬ò t—T(‹þ f¾ã2#¤f­²y½ýÁó?¡å«³å\ÜÐ †F•-ÇM³QƒÚH~M›Ìí²æly~Ü´Áª 0ÆFÜkõíÁ]ÕÖÙ2r«ø`h„=r¤;@2iLœOÓ=¦aÇ=cP´?нŒè?¤çqlš n04J?­bÞ3Jo¹-ÁU¼Ë–“qÓ·“»¬9—€Çƒh|úìF®gøqÒ9]ï“¶^é4Í8S¬âÍI°BF |©I%ˆ%ò¤£õ¿Ÿqâ÷hÑ—zføk*H¼Û‹@Éd¶Mà°ßÍIøáæ$XS8ÔŠ°V¡|t™ñù(2¡TM¿µâÏQè?X¡g‚£,ø£õOo}>‡‚G¹G8ªo>ŠÂ¯ò;så¸Ì )?-gI+™IÇÚ“ÝÄžQ“ƒˆ‰s£ç-Œ Ù­¢&)ø !1ˆ/æD(÷ÇrÃc\Xk1FÍlOsK—´d¤ZNõZê*eþÑ«]¥zS‰¶v–“ß›êInjëH²9¹1Ñ×Õv…c/~Ä”Lõ'.Lô t¶1ýG2Õ×ÖÓ!üÉÔ@¢»7Ù×ÖwùÛìHuundƨ$âêìÙèC$äo3ǵ¶³§ÅØ‘]ß`O;ž‰Íí]ôÞÞ—h#¿m½½‰žVǦ>znêKöt]aìŒy »7ÕݶYmN‰L½MúÙ§Ÿëô3_n©\Ž;k¡ÇEÂ>¹SVRÍ$Ò>âŽJ %Q¼ƒé§Ò±«ñ²¦¯YÄ͉¬,‘ QdåH|Kô^á0ñ-=||a\Kõþã0q-;Ú¸–©Þé1$úicœj'J_ËB•Ù s¶°ú*5fÍ©×ÁJ ã–0½Ìûln5ýqWe2Ôâáý؈jûgfÂç,j%š3øoWêjÔmš¢þ×g+| W ­GÃ¥'Ë…®~’ª'Ãj?ºYòjv¹:ÊÞÜ›bN—ÃCb“¶Ö”Mw(Zw3¥Ùlm"ыګ|¡:Ír˜Ô‹C-T,t± cŽàßTº­Ï†ñzŠB sɹÜÎ&u öôD¶Æs&rqîB!¥÷XŒ´TÇXÄJ}@Jcü8)þ" Â.må¶VÈ}%±¿V_{-¹®®WE–%Vš>zU=3Ç?BæÒH[Ñ%ãÙíÙq>‹¤+~}E"z3‰Ì·£ ˜93Ö»D¢Ü-+‹Òe7×€åô0ƒcÙD²©rùÊ´í\(*Ö©DõGRÞÉ.mЭ³F ;̵“…²Õý¥ÂÀÖŸœ¢Uø³½ÎqT$}S ®¶qÎòÓæ²£W7µ.M{h}ÙÄ¥çvRËÞð?‹ßEgŸ½ èN%ò§Íƹ2h­È[uÓjø›iÐ;Œ_½¾‡M×L"›¬Tæ •¢å†‘ïlåçÈ a¬™Ôìå\“E’’s9ÆçÎI–r£|‹²ÑîHq–?ɇwZK»…¯UþD7|E%õí n„ÍÛõi¨–é=“_ëÓ ô½œÐ”Æcíšæ›—ݶcÒœ’ê´²†½Û!™E6èÇ‘]Û/ÝBÄŒk‡ •ǸâÖrüfvçö̧)BN»;¬¿\ØÊTTȆá]×ÒR”yg oOvG¤ÅJ,’ž¤¡H0åyõêÕüäE»+£Ðè„Ô2;äûúÈ%Ò`ý”- q…5T‹§Ã‚dŠ# šGÄ?Ñ-iàøqÖ3Zz¤È1ß5¾Â‰HŸ=/n^ÊÒœ­g˜/ŽÒ£ø gj©k6_õã"§%ÉUÙ7Eý6‰–š}:ìY"ŸŸïlE¿­5OOÐ5 *¡¦Zø¿b]jE}æ›MÓ¡éÊã²N×4'2ëFFˆI¯âÃÄúªè¹&¶x¶£¾*b…j,Ï‹³c^ø<.çšÌ{`X(™ñ”¿Qû©UÒÆÏ4g# ð&ù¨qdr\fÑE6yWfB¤þMYðdʦ1.¹àB}Û¿«ßÙ”sc“êï·EAf› (µ55Ccwõĺ~d‰PfÑPx7,|¹À¡Ú[+r“àÁT¼:ã½ÑÁ&á EZyÄ 2I|™,"ŽKT»oìõôöªX£®Ö”¸‰÷4éØ1+™¤„’Èiï•O»w€taÈb²&XÞø4¯«Æ²Si¬‰rö®Ì¬·¨M!ç´d)Y§ZñR÷ת29,*½8Žù"#˜tùmÕ FÝETôXë"Þ/òrD¾<ÚÝi:‚ßÌäÄÄt*R„ú…¸®›Ô‘Òªž*±éHá„noñýÉ7”Ë– C Å \`µ%æ_´pºl(Œˆ3¶|>TcmÌ>ôâØ‘©âZÓ¹ˆõÉEit(71jU¦¨ÒxvhrÄðCó§úÖ}ô;$úUÒ–Å"0 ˆ\sS|û¢‚xô+œ~Ϋ^-w<=Í«NÄ™e½/‘-,HåŽhzb"K2R™‹fÊgSZÂD-7ú&"&*¹lYÌClÒ|”ܦ˜8\;òSŠkÇzˇӥŒâÑv‘“V¤ð‘•¥Vü9LÂN\™Ÿâƒé¼$“õ‘yÚx•RŽÌN"c±âiµôohSq"Á{\ àˆ;B9ä)·wr£'yZ  ¹NiÆKæÉb}ªDO¬sµ•Y}jÞMfÙ'ë–þÎõ©Îõ= Ý÷Žu],z'mÉrÍQ´Ž‹‹…Žu‘fCdvL«&ˆm Ñ×MÏþÄúô\×›`û¶µ}ôì$N*<×ö±s6wö (Õƒ~§*3¢ý& #"Ó¨dÇÇsE=v‰¼rqde‹Hnqk¤³ôñ\YsjbüD±”Y¶ËN4sÊó0óL¢Ï½l’'ÙqýÄ‚LúìŽtqXË&§-[Q‰üßr@gÜÄë!–%-!µ¤åmŒk{šÄ'µÁb®Ì‹GêéqT&?‹ciÅârIns€’+S¡®Šç$ËÉÍ㬵PÞhœ†%þ@¦ 4Ùc¾VóBòXYöá$Ë\¨A*”J›…³h®¶B¹{ËÿßÂq²Á'~éP7¶áGìt÷蕞øä¥EuN`‚¥-k¥{&G$Êá^ø0 ¦+ý Á%Ùœý…F#‚Daý)±8 Ð-õÃjËT}ë´-¨˜-¹¶”]Ù³V’0s@òDƒ$i¸:ex¤Â|ºº5Ðó =GC¸4×>Ó¤¿y¤l¸”‘cQ%¿Ä®–`bïŒh=Æ%wõ<íáZ0µðEÜÎq£_dÚ>ê><Ð×a¬\jýîv!cg»ÊÚÛ¢ÉHÅU·»]A`ùÌÐæ*.ͦ®H‚(Ix5r0Xc‡xX/]°Ì®Zkkžw#Ê›YwæÉBαÄa}ÇiÉ› Ï´H0Ê%4Õ×-õ™zjwó•üÞâ7.\ðúXâ¡ëôçO}).±ÙݤU¤¦ç¨Y8bŠ|?'©Žs²xo­®¯·îÞÐQÛ †WÔ‡M•6”bZÙûÐaÜz§E£]Š·áùÎ|/-_ãæJU&%Ùœ#ûs”[1HsTuWÒ|…ÂK*ü©Ä|¢@dÜfàDjlvC7{o¥}káöʬX¤.–z$'Xßl6c9éw– ç#ä×Ћ1¥t}Ρ6´Ñ¢jYß­YÿÆ[…{}‘áFŒÝ )&ªÝOް7´›ŽÀÈ«6s€¬Èr!Cy̬àʨÈ'%2æPàTãÜsqwêV¹]Ãq3O“¹ä˜Í|ž‹Ë ¿K±Ö ó¤ŠÐ°;òjDž‰>Ž5¶NÕO5ÅÒæd£>göÌtvj-ô‘²®g8éiúÜXÊVº‡ðý[<EO:Ÿ‘ÑMï;r"5· b;Òy–>Xvåèì3 ‰îß.q¡½R©Cù c7}9‹Þ2ËbEÍ~†t r1²BVÄÌY¿#:DÓö[ÆSY‹òØ@Q§â¶¤¤½kkÒݬåúrúÉŒåù»vλ õ5Z…[qJiœèëV¸S™ÕFa¬ JŽÜ”üD„ÓªŽä®òü8ežó‡ærFÜš}7ëAjº±TFÄb%rnšI³–,t*Wº¼[/vsÔߨxXN‰ ¼)ïÒwÓÒã˜mæÚCÍøÇÃøÇÿHÅ·Œé[jåa„ÒŠK‹±íËé©á®9 ó5#Ö‹Ë;î4È~?lÜ#A^‘¦Î’Û(,Õ–;^íCÎeù.g,…!ƒ>ò8R ­,±×röÛZqh®½çQ6kX4±ä­0‚É|‘u‡ÊÖ¥3lèG+t#„ !zÍiu•YCŠ×áˆÊ§yñ’å+WÉ~uåªÅK.˜[ÓckèkÉpž(ûQovÙ>¢«ûÍÝšTÆ×¿¡o ÕÝÙF+6m›yܨÆÉÃ`è{æo7Zè·ûËT?œg!'‡ËáøªéXÅ–G€P“žaÑäó#šÂu‡âa i¾$ª:gP7ƒ)È ‰Åm6…¹ ¡†ø¿ ?AM?XÉ’¦Ûá\Ö=ðgÅÜ‚ìÝCteËy4.mŽWüÕW¹¶|NªÛ§þV{6™m†<7(Ís:Ã=‰Çqd…¦cõ™f;h7º/|úßT+Lž v‚.˸fX©”#®Ê+]¡±Àha|C±.NÔieYÓ ¥Ç€™±’² ‡€y“ÉdSÃÉòŒ˜ÞHK&Þc‘J/ôêÂAe±d"zxæhˆgÐD+ZåûMuPŸ1zØ5Ó¸• öaìDÃÛAÒ1è}Ë_ž&ÙŽú僘ä”c®¢Ði ‚S!Ä!áb’+x¦Ë ˆ 9Œ§=!²{Öõ%Xãú®äÚ¶®TgwoWg{ç€yOlÖï]Év&öJö¤Ö¶õ%à’h×ïÚÈæN"þ 9}jàŠÞDª;ÙA¢qÙ̲•˜× ö´K Âu$Ö¥Ö&™À‹Ì‡˜)&œ}—ÌÙweÂõ ö"-2w$×v%8ü.&1÷¶õµuk³ù.2ëhÕ`‚õª±~i=ŸÙ2_–P¼¯r‹œèý#ÍHØ´âìEh€uÿø¸•ñHÓy¡$Âê°XãSóñr#—²cÊDzÊnð`fíH޾¥*]Ì¥L‹ÐO[Ot#‘ã5ºœ7e§lãI¥Bª Ñ·® µÅJ¡}âáj¥hX­×? V‰”ÑB£*èJ{«¨“$ åim õ95¤¸ù„î ²™v¹¡HLiVµÎ;ÆCÚXº Ïi:!nMtéɤ1ÒRúø^K‚þ/mN ‘œq§H:¸cN…çþBé×L¬ {qmI±%Þ»èÙÌ¡#D"Ú§$Ÿ¤ôSR×g®*-dÀ¦ÜtE×4%ÖÃÚyÛQC„:ëàF5˜:J9'SåX§ëí#‹Ü;¸GÛÈÌü ɸiED»¸³ÉÍ»ŒMå$©’üì‘•š^ëŠ%|‰ˆß??ø‡û»‡z/á¶föˆîI®2¿ƒÏ>ûìï™§@­yóš¸N8—VJ*N'Âot›3ß/ësb•Wñr Ÿ°,Šôc3ŸÛÅI>jj yY¢§3ÍJÖBϯ<ï${•j£µŸ¬ß°ðÛ¸|Pø ;®ïĹ¯sý†þ ëä½+±Î}Uí}íƒÝ뺰Ve‹kMH¤×Ý›0/0µ'zlšnÂÔ”ÂFÚúéíì7/îº3Ì“ ó£Ü¼`¾èìê ìzât°¹ ÿý6Ξd˜ŸÄåú{×öµµ#`—~®mk¿ìòÁ$ [×߀¼ (PÇÏñ*óÍxR9ØïTòJ¾o°_»'º;éÙžìînãg¯Ýûú/_ËùÕϾ^ ßÕkÖÛ”ÕÙ#ϞĦ.ÒéëìYOòB»×RFzÚºyŸèéèn뻌ó– ͬý­yq³ÒïË—_p1½VÚëwc¯&Ë#ÍË›‰_JV’=…|s[{g§{œ½eª¾eÉK>`þ$}ÓÉ KÚÅå,É»_M ð˜î2+X‘ÝX¹\Œ/Z´cÇŽ¹m)”F³Å€þ5·.¹piËXybÜUtGçÛRDÀ:YŒcRÍñE°¾L$ÝCÏ>{ŽHÉwFRQ4GYJYêC)ÑB§ÍØó¹&Ìv 3ñÎÏtÇ«5§ÛXù~×ÐÖËÞý\»ÿeîd±dê*ÖÈ' Xš‹.o,Å)3Mq'¿zcó¸C3z„»göîÒ>ʹÈáà.lšA¯­f¸­Rl«‘¼!#ÓËž¿Ô¾Þbº=>›d‰NæFt˜Eb¶ñUÑ56­ˆM`ÚÑWLVG «Ê¤µûs K~9`•GŠ—6l´ü›²âö±ÄnrÈžƒØ”4vò¢‘üÝÂp*%ks¢s) ¹§â“Xræ“WĆ ¡‰+´ ýÕ#{X(ì©âm­ŸQã窅\†W7ÅšWknV튼S³md–¹H Ø ð”Ò9ô!RrÝjtæïÅ+"oŠ­\µj5kÊmœjÒe1JyŸÖNS«WMûrÄ~Ú”]>âÿë?{­k¿ÊÚGü¯ í#ñ¯´ñgH&Iol ½cƒöAÒoñùÒ§¤L#þLÑêÙklUȇ-ßZ¶‡â• ˜È+}™°¼1ÖmF°™ÝˆÊ,,_z Ëwx¢è|(ÑšM-œn7‘¾nÂÑ[Ž%¨'º!œjÒu)ÝÒ[4­ëÙHFŒ8.²e[ª;½hJÜfˆVÂÕˆwzÑ¢)ïLÉrž %×z—‰37u¸Æ|IitìÏ3ö"É1Ò(W·ñ*·•+[±°ÃuX°@çk¢I§ÞøŸ©l'&Ç#ñû`rȵo¶ß‘‰Ä¾¶ËN9M…µn³}¤|{¼{‘%a]øÕ¸Ñ-BèÄšŠmû!:°ËçmïöI±@«ŒM›°¥HÕLïšÒö5ªRüGërúݦjT±øÖñôyÚªÿUu?½zµ3C³·ªv1½r¥7C“ÑeG›™°ø^®Ãä y¢. ¦b笊µJÞ‡‚ОÄ*ëò.ûó§ôêT[󔚦¼J;Âð¿ójíDr©^ÄNéø¸9Λ|;Úq´‰O‹MãôÂØT“í»UÞ¦´7nÒWJÕëò¨Ñ…lڵƘÇ—hßš^`â¯îrºÎ#}nºYû¯Ñu{‹ôÅéó§fèÓ«¦k÷]mo$H¸qÑòo*œ»˜ìîXQ¿Ìº®ÊÅ_vu¥FêÊ÷A­ Ù°¶›•–>¼µ§N-áè¦G¦sÌÉ­š>š2Eý}tMé|¾|ÛôÕ6?Ú=ÉËÕºüF£ùdöÿwٌڼ„1ùÔí-¯òÑö–·Í!¯ãª1”ëµMÞ~³yêóÜ¿©ö/Œñj‹µ4÷!¤,?’–ÉðAL‡Ìš™öÌDcÈ&¢jÒþªe3Q„*T±ÓȘה“ClÎÊ ƒ¤ÚöÜ„HúQª2ŒR¥BpŽ¥–dEÑ—XÊ…qÑxjÎÿ'ˆÇL§E;àGÓç[¹k†Ä27Bzر}Êð]ë÷ µ°=ì³p4W„ ÑX‰’ a·’³*¼”–Û¯ãUŠepÚÌ tXÿÿ›¶úŠú@F=ºÙ°¼§´:d°OÊñQ5W¢lOêy*Lo¡9ßcθªpçpáÆ»û’M\"L|ª„ß=ªCÆêN«éFEÀ’©¬‚ñB™Øhíþv×$´Ž¶p5ÜC!6úÚ*¦[x¨–Ó*Ï HOPK UALÿf7¨q‘#cuÑСS¡Ú³ÂèˆÇÓÓ´½­e·n‘ ¼ë¥$mfܘå[ßÌ‹ðyÍAyz\×ÝBbœä+Û…“¨KËCl Xä¶p™òUX…£´îŸ%£ŠG…^M]ð‹n«Õ7¦‰´´bå°š}:ÒÌLb˜%šlºã ߥ높.0$I3Mk¯¹a‡f¾ÞѸjdÚrýØ mjBú„i«Š† m¡¦™áúÑw9EÒLÌâêy|°MF™ïD¤B€Êú…D„V¬ÅéÊ [XÁLAz¾éÉq×´Ë®V,n yœá—å{9~7ÃëæÐ§xÓc˜æ ÓÖøjnJë!¢¶™¨?9¾:ù`¹³./¡¦‘àà ´ô»˜¹H]ɧñØJ©.V¸0&Џj»…š»V“®.>þtd§ÿQ‰ÌzÔa¯ö ¥±3—G;-Š%ž7ËÅIbä}0z7PÑI•¨æ-/ U Õ"?Xv_UÃÀ’fÝ{Y;³ñX/ÔŠ¶J0ê5Ó°‡Ic3 uñfêOF¶tå¦Yã929$Ûܰ™PTdæ/$9¼ZšR<–Í‘žÌë±ô8]NóÀ½êN¡²!’s0Q\UYu,ä¥)$–áY×áæ=ê)"œ¯ªê:¤S”û:ae WUòÃX˜Öe¤ 5.Bb­=KlÇ<ŒUgFgxÛh踇ËMveeÎ?m"o™Ž€så ,ôþä9Ésâ’V¥f(‹¼r—)Û}Œ.¸Ã)² û“£^ŽßE{è¢ìÂé!Å&åɽsèL‹ZìÜH¬0žiމð·}e)RU Ì}Ä•+™B'#a]L£ønfßõA͵™öS=ž„‡ùŬ©Õšfé§ç“ïS]1sŒ1{¬1ÍšeLÇgL³gÓñÇϲ)¾R|V1Ž·é¯~å+ÆñŠöÓJ\=âÙgƒì.~VìNÃó4m÷Zm÷À3ŠAv÷ë°J}Ûš¾eMIkº×š¾iMßÑ&¢óHë¼|Ϻ~ך¾¯M7àÿ Ú߃ÖõGÖôCkú±5ÉÏcÝòËuXŸ¿˜¾W¾¼M=c¿ücøÿ1ý½ïyÖÄòukz¹6µàÙÂþ–àÿ6-Åÿ¥lºÿ/dÓø›ãÿb6-ÂÿEljÆÿf6ÿç³iþ/`Óyø›ð¿Mõø_Ï&ÞÙéï;Ï~o½5­±¦K´éG÷#ûcüÿ1›ÁÿGØ´ÿ÷³éü¿‡M_Áÿ¯°ékøÿµHkz¥ú.Þ¿Ëv÷âÿ½lúþˆMûðŸñU]j{ñÜ«ízmþZµé\°ëÿàÿÿ°i6\fëz{ZÇr)þ_Êvñ#›hí˜aÓnüßÍ&¢)²éåTs‘XÚØlð)[¿Õ®?þ…b뇬ëmÚtþ§Ãî±®³¦ÝÖtƒ5½ïçÆÔö3cúœ5ÍÕ¥zèYýyÇ“oMuÖtŒ5kM³¬é8kšmMÇ“é ýòس‚ðG®Jrõ\ŠÔ9ýÎ]#Ϙ~ž¥Ÿ§éç)ú¹L?Wëçlý\¢Ÿ‹õs¡~.ÐÏFýöáÂóÓ<ü2j3»Hò…0¤;²3Ä^3°×ä¹·E- U‡5¬Äö]‹Ýø4<âêïb©0EûF²sÍ%,↤EÛ¹w£ÌV¸#MþWêr”¿‚>Ð?„:Öà‡KWWûËdÓÒÇ#çxÑÛ#‰,a/(N–Š>2ršåüNéÐYÿÂØ‚Ûv49öDKŸ‚j/¡½æe#ÿobyRüÎ|’ZÜX*ÍK¤_’ý,._…_'f£kpg®(RK[¬‰çg­ÂF‘È?bQÊ)bîdYc,£±0YÖfÓŸÉlÖ/+èLÕž[ß²”èWÞ½~•{öÇÌ7!«-Ó²;A[¨/é;½&#pÐæ!^\7”û5JÍY·¸ÑBHжø¢‡ÈBIöˆæ õ+Ý#\™+2nÜIEÙµ8VJ5=8rÚjº“%3¾¹Rƒ*ò¹s<7¤¥ýö´mlëìj[Û•P¬pH3MÒX>Á¢QÏð©o#g•³*µfÎáL(¶^!)ñ7;q¯´0 1%òb‘õy}P‘åšå@ãòãò¾Q[cš¤ÙÞÖ8S§IrMsÒÖ+ºrѺpùÚV©•{4ŸT—Ñ´ROmLè|Sˆ$•ÁtLœ¹ÓK‡Ç¸M :9n­ó/ì'•.•íÁö™XeÛØã ù,UU´Mê¿"FSÊ|^s-§”e[²_¯ïýÙG‰&€h'û”¨ÉeoÅ9Å®’r¾º"L؃«í¥—WÛ›‘@~$wú‘Ÿxö£€y¿þ‰gÿb~ø>¯þijϬ߯‚9¥ß7¨ÿûoåŽ3ÏÞý¶ygÓ c_Gÿ®Ý{ÿü«­ì|ë{ɃãC¿?…Ú[|&jñv^Vé×%ËZŠ™!'î§Î9±*½›çYóy·ÍSZOT o íz`[v¢:ÑñW¾fø{©ãï­°; þ:ÞÚí~ß<µ|qušôëƒÿµÀ2 œ<ƒ´?î¾ìîÞ¼®2·K:»ß5O½x?ðqà+À·ƒÀ!À÷<5ˆ€+! ÜÜ Ü|È#Ìãx>œtë<õR`p)p%Pnn> ìžþÌ¥oÀwî¶"¾`9°8xåö$ð0pðà.ààuÀn ô Ëñœõò½³ïDyàÛï>|ø pð ð0ð8ððO`ÖÈpp° X lú€+ ¦€ÝÀ€wwwû€Ï_¾ <žþ ÌzÒ^ˆü‹çBàB` p)Ðl2@Ø ÜÜ ì>|ØÜ << <ü ˜µõœ œ 4K€•@Ðl†€—%`'pð:`p pð~à£À'Ï_îOÏsÿå¼h–@0ŒSÀ À€wï> | ØÜ<üøð4pÌ{ñMÀ©@ X,Ö]Àf ä)`7ð:àfààýÀ>à«À·ƒÀ“ÀÓÀ,´¿S³À2`%°è6à À-À]À瀯g¡eÀ(ÿÚß`°XôWCÀ80ܼx°øðIàKÀ×ûŸ¿þ<¬¾SÚ÷ º_/C?Zs›˜ßé_>™-M÷fK,ª+íöŸ…©[ª\Ö•dC6­Æ½õÙ2³ýf;ó#…6¥þ¬`ÓÖÞ«T‹j'mK„{<Ç>Ó™ ?FïýåŒvVqz×ÊFzKÖ–÷Õa(«´·”Ö/ÞËÚ(·š7ñÔû(–ÄT®ÜŽIÈD£^U·)+¯+”úYl„¬õÕÃäw£á'Ÿ¤·nž‰ñ§«*Äw ÙRÛõÓ‘µ~>í÷ÉÚ¢?‹*+§QV§j­ò#~˜ßri|ƒ–ü„l*Ûün¢%Y;]Î6å2Ùv:/zm1¬»º,Ñדè2ôwE”`y¤MÝëQû5:ØŸè3¾¾áõeG¹Y^–†?z+äóèJ},Á¼4ݦîc[þxjSè]tÞðûýáûFâÔiSß'›D~r‚ÝEo<ÜPãf+õCãC‡ø1½sã¤|ü”Þ(Ëìùçô–ÄoTÿ¿±ñéÀêɨ ÷Ð?’]z»äñi~C3Ò!þæ¾³ÿ<“E[ÇÆ¶ÞNSN³¼~Ò—˜ÊO–Aÿ†D—)êÇ|ì>X%æ»ýQF§îðGH°Šú°ÏŠ_ÕÏü Þ˜(U_7™g'u§?Â*¶îñ¼àÛý‘*¥>éhEu_ötá¯úF~ð×}#Qø>Ú oŲêG¾è K©ãêP{Ã䯵nÇpÀ¦ÓÈnj¤4¡Î®~èsêʉóK¾‘füg¿$4ê.½+Pw{© ’ ;ŽÜ>éK«¢ÙEd²¼¾ÄªÝKåHúÒW§3jÏ’Z²%Œ=Çr~ÆJ4Ú¦`CÌoö‡³¤!÷}>s©¯ùFbòóÉw~¸8­.Q©öÎ —SËÉ4\@ñ¬ôRcÓE¢àêT© ƒëêT»ªÓÍ^­"ÿÅÂ¥ž'±¥ËêS¾”ý©dÃÒì~íc›„¯ù±²‰Á7ìã'Iȉ¢:ÑOÓå\NOž'ïyú¸eTÂT8êäŸ?sN]¨ï¯ÇOíºþ'Õ×vìIÕÇ|"e.õn+dÚî¥XeaîÂeê\ ( ÁˆÕòq¤LÊ÷²ÿ@}”Jyª¨†QêA>ÔŸç¥FèD8«âôí#¤qö!C_Îê ÷QÊÙmêQˆýYé­ú­ŠF¹Üè§QÂJ½Æ'9¬J½ÖdžÏ›ø¹D½Õ'ç·ù\ XEPÌïòGX¤çøœ úO…þŒO<ësÕ)¯.¸–TSŸUGѽ˜þÃö'(óQõSú¿¸U-G­fÓE–QðXŠŸÊÎKQÙ9E‘óRÛ†Æ¨í½”K‰óêµ)«þ×KÑÇÀî,?%ÜýÔö oÚw.¦RFižZÌ}„¾7 ®Œbß&˜E›ï6qyª©µDâ}°3Ú£/¢ðÜ^¯€­¨¦ü«oï¦agÌÃdfÍ»O£üé0•­J°5/gÖ ¼»`kt`_Ofn”×ú²ÿ€ð¢Wõ)cBüÏP¬¥5Yõ ä•”m*uB‹>¿ÓÑFLJsý”Q'©^Rg´„ÇêŒþð|Ñ(þŒJiá§H¿ÁÏ%Sq¨´M½Þ¹“Oã{wðéö”äc¤à/Uê_¾1ÿU†Õ¹{d{ý~J†@ÕP·Ý 'ê7ˆ'Ÿ1âN¾®RÌ€nÞßâ‹ØêBù¯ö@‹›}y>î¹'“?¾3zÊ¿6 ïZP·Ý êVææ˜)î·V„¿êîߨÞwÑbí/ñ˜õ˜.”ÕçU*¡#{O=« q´‹›‡‹´J¢%×6¢¡ÄXšçû Z²˜îV´ 5‹ÙïÓ*d 7¼­]d®¨^7cY²?\%Òª- •™Ô±ŸØbH=Ozšä_¤u©Xié<]ó´.NiÕ¨Ÿ•¾…ÕLJ74ß§ö“çôa|Ÿt…hI¢áú2q?ÿfÑÁúm/¥õJŸ‰xDYû90I¹ÿ…Z+`þ«6eU ç“”ÀþñÉœù¸J± ×_ós Ö)®è!ê1<~{6 b/BËÝÉê1ø6bF^觬x‘SÉ«t8ßm¤„¿O]~)Ë€Xö¿ó˜:m]` û©=ÇžîËØ‡-Ÿ¥»/š¥öœ:K©‹g©¹x{ü õø g¨ë|uÚ?OS½—új_§¯öã©€ÖË|ÕûÌijï-Ç©Cw§ŠxÎÖ±÷àýÇ©›æžžV§vûuj?P„y?;¦Nšsº:ðÉYjó÷NW½³f«â€¯æ{éùìiêÀ_UÅW®ö}ÔW‡î÷ÕMêtuèº:µgYÚzÊéjÿ uª÷d¼¿ï/ðl=v§Ô©¹ÏÇGΪSñ¾ösá~ïûއùÙ:uà_ð÷ ܽ€šwºš{ê±êPö½èXÕ:ïXuðt˜ŽU[W«öv«‡ç%ǪýõÇ*…çÖ a¾æ¥ÇªØb<ÛU{a†¿5p/Âí–ÎÓÕn„ ¿Ë{ðÍ›gñ\¼*Â\|h¶Šá¹†ì¯Æû&¤ƒçÜ+ðBxŸûØlµû‘Ùê`y¶ „«ŽU»ñŒá¹çJøE˜x‚Ý\ı•ðòãÕþǪ^ q@Ú[·"¯ˆ«˜‚y£¯öê‹Ç©^`OóÊü}xÞî«ÝS¨ØÍ…ŸÞ´¯Ö ûêÜ‹°[l…]+Üvã9wž0 w˜×Å­¾:Ä`—y×™ª 6­Àl` ØÜ<~Ë™êF<ŸÄs+žc@ X ,zF` МìÞ(à¥@8 øâ8 Ï]À-À\àìNÁs7°ø'Þ7à9,nž†]™òøo(£7 Üu+Ìx½õl½å>uºZó~Ôß]xÿ<쿈:Ý|eþ™cÕÔN´Gá8ðüüæÇñü9êe×éê¡Mg¨}O"üoØìbO  Â>ÌÝ}ºŠÝ7[)`°{î,õøôƒáYjïúì5³ÔÖéYh[³ÔÁ³Ô]ן®Á|õ,U|+úv~–:ô6à-³Ô¾†p¯…ù!ÔßÝèÓ>â~Æ€[g©5ïF˜}0ß‚çm³Ôþ;f©Ìû¾‹~ú­Ùjë·g«Þo¢Í~ f<‹ÀÜÛ=µÿÇð£0ü`–êý!òrá`{qÂþìv?Š|â¹÷ÙYjö_æiÇ©}sÃðuœÚý˜ÏÄØqÆŽ¢-žŽ±äùÀIÇ©½0ëG€÷äìû;úÓ[=”¿§z?੹Àî·yj/ÞcxÆ^ŽpÓÇ©ýÀ܃gëÄqj+PÄ»ú;Üþvœ:ì>yŽÚsÒŒsÔÖ¹sTì.” Æý@{¾ýÏ Ç ?0ŸCžðÜû%„û2¾ÏCè;[O9Cíyñ>±å¯ç~‹1ç×ø–¡¾Q.kà¶ÿÕžj½ÞS‡v"Ïeä÷iä (îòÔ`ëë0R¿ö7¯„ϰæ5¯‚ÏÞ°æƒô÷^Sí…Y=zœú%úÁþûg«½ßEÛûêü ü±Çð-¿Â·áyþö]‹ø?ˆ1¬„|HƒÊÿf¤óN|+žÅw -Øí&÷§OP1øßêÍVköâùïÈëìÙêЉãNB›;íçyÀQ.¡îŽ…;ÚÙÖÛïPöxo…½zmP·¢|à¶û¯p£öxüü£çÍVàg·öZ‡ö‹x·"Žƒˆcî{6üø Ü‘§Þá»®G>v!<ž{€V˜Æà}¿Ä÷kÅ;°¸© }éψç²3Ôî$æ˜÷Å?!<÷ÿáV=Žø`>û­Dùá9÷7°Ãs pàIØS˜ßQÙÂü+¤û‰Yê–ûOW[_r|êòN|°f¾ï-0¿ù~#ð&´Ø„Ÿ­x¡ý+2£oìÆsß›áaö"ž(ë›1¯£žÕ«W»é™9C©¿a~zÍéJýÚ°æuÇ«=À¾¢m¼þþþî<^mýÈñêаÇóàaÿƒãQ¶0?Šp†û æ}p;tÂÜ ;ıüF¤qѵfÑ”×jëò9jó{ÏÀ8„¹xÝU\…¾Ì…ù`÷uæ]@ïµXóu”á½(`+°Ø‹1h7ÆŸ0ï&»~øç¨C0Ï݈~ŒçVàìöÀ­ìÇû¼«Mˆw7Ü_»WÂÿ[öf˜A?¾æwÌQ»oƒûÛa÷N¸EØMýuýAä÷CpÿèÕúO˜…o¹ã÷Æïë0îOc̾ãý4ñ4ßÃ~'ì^ ;øi…Ÿ¹p;·"ž Ï^øY?½¯†=Ü{aß »VØí…û!˜¼5w‚Úºýµï®”úà êÐÞS'¨ƒèW—Ÿ Ö¬…Û‡a×|ùµûžTë~ØÿÜïÆsÏm'¨½sà*¸þn+ž‡.Ãsðµgü!½e¤±þƾkNP½H£˜„;âWŸ ]øÝúÉÔ~¤·{Í j.ž{‘‡Ø*øÅs÷§áï[ˆãkw â!»oÂü„AûöÐNÄó2˜‘f,´aÞÝy‚z(‹ùú¯pû üüÏh£g¡ ±¶8ø0êãnñ÷¨{ô¯û0VÄxû<÷bŒ:û½ðSÄØ¶ü»§©C¿FÄZµ÷vôq¬W€¿V¬w·E`Íz¬Ý@ Ø ìýÂØôª=xÿ* 1ýc“žBÿE_‡Ýø9° ö›±N‚ýØí¾ë¿Ó<…±îû€¹ˆg.òñÜ{o:kj´µ/ ?x-Ǻ k×=Gñ}cx¿ ë ´‡ƒ =<ˆöñ¾صCë͘£1÷x%ò¾ó9æû5WáÆñ=úŒæñ_Ãü"Œwó0o>cãÉXãáÙŠç\Â~ŒƒôM'÷cÌ]ƒñw+°P'{iÜn:x†šû4¯¯Z¿þ½OŒs×ÏQ_x-æ`OzŽúæŽC@ì(àÐûÐG>‹>Bmk%êû´¡ Ñ>–á}êX»V¸í£w˜çÂ}Þ÷âyþŠ0Çn?A=>†z}n?=A5Â|ËÈ™ê!ìb(×ÙCg¨ƒßc˜¶®Á:ÿÅg¨[Άò3€²^ó!ŒSg¡~ÿ¿Äžæ!` æê­Àþ¿aŸBO ´aÏÔ \ìÞ¼ø p/ðàIàiàįÍÃzhžZ\ Œ“Àk€w¾ <<ü8áëóÔK€ €> L¯ÞÜ|øðð3à à/ÀìoÌSg-@Xl†ð&àvà#À€û€G€?³î§Î–ë-ÀµÀ[€÷_¾<xßœ§æ ÀÅÀeÀÕ@Ø ¼¸ø ðà[ÀO€?Ïsî›§æ ‹€v àÀ[Ÿ¾üøðOàäo¡œ€…Àà*àeÀ«€·w¾Üü 8éÛóÔ ìnöÏç~u lòÀË7ï> Üüxx8ùÀ Ü<üx8æóÔ €såÀeÀ0¼¸ ø8ð à‡Ào€ãBÛÎÀUÀ8p#pð_À}À/'üå¬`ðzàvà#À瀇€s~„þ4q \L{€_~ üø+0ëÇóÔ s€ÅÀ%À¥ÀÀ0Üìn> |¸ø9ðOàŒŸÌSË€° ®Þì><ü ø#P÷SäX´À8ppðiààÀóF `È×ÿ¼x?ð à¿ûƒÀSÀ³Àó~†t€¥À: ”€×·wŸþ¸x øpüA´- Xt—×ÀõÀ›÷w_¾ü øðÂG0 ààZàµÀ¿Ÿ¾ < ¨Ÿ#À‹ó@7¶×oÞÜ Ü|ø9ðÀûúÐ,’ÀÕÀNàuÀíÀÝÀç¯ß~ü 8ù—h+@;p%0¼¸¸¸xø+pÒ£(K`!° Ò@xðàNà‹À÷Ç€'=†qhÖƒÀ0Pnn> |¸ø!ð8ð7à¸_¡ßëÍ@Ø ¼ ¸ø ð9à[À£ÀßSÇ8lÒÀ+€wŸ~<<œðk|Ð\ ôi`˜^Ü | ¸xøpâø&à"àR`(¯Þ ÜÜ Ü|x øð¼ß ®V è¶7o>|øðà žÄxœ,:€^àj ÜÜ| øð8ðwàäßÎSó‹N €ë7ÿ| ¸xx˜÷;´[`%p)°(¯nî¾| xø=ð,pêïç©—Ë€µÀ0ìÞ ü'ðEà{À£ÀÓÀ aîV}À°¸ø ðà{ÀoÿóÔiÀ" ¸®Þì>| ø6ð3à7ÀÓÀì§ÐG€s ÀÀPÞÜ |x8þè÷@;0ìn¾üx˜÷'´Iàr ¼ øpð;`îŸ1–½@ xp7ð-à7ÀñÁ\t9àFà6`?ðCà÷À1EÛÀ5ÀNàíÀ瀀¿Ïí èFW·Ÿþœü7ô[ HÛwwß~<¼äï¨CàRàj ÜÜ| ¸ø P÷ä ˆ—#ÀuÀàNà“À×OꟀ°Xt)`ؼxðà¿€¯žNùæ(`p Ð\€À¿ï> | øðKà)à„gЀ—K€µÀ 0䀛÷¾ Ü< ü8æY´qà<à ¤€<ðràMÀÀgû€‡€_|uš:x)°X\À À­À‡€/€Ÿ¿žNõNSó‹0 %àµÀ;€Ÿ¾üx˜åŸ¦æ v ÈeàÕÀ[€»€ýÀƒÀ“À1u§©³€¥@;ÐLo>|øðwàäcNS-@'^¼ø/àÛÀ¯cŽEþ¥Àz`ؼ¸ ø$ðMàaà·À¿€Ù³o hzmÀ4p#ð6à½ÀG€O÷÷?Hî¯êÔ1êX5K§f«ãÕu‚:Q=O¤ž¯æª¨¢&NQ/R§*Œ'êtu†:S¥^¬ÎV/Q1uŽ:WÍG=Õ«óTƒjTMj:_-TͪE-R­j1êo©Z¦.Pª‹Ôru±Š«j¥Z¥V«KÔÕ¦ÖªvÕ¡¨ãõjƒêT—ªËT—êV=*©zÕåªOõ«5¨6ªMj³ºB]©®R[ÔÕh)µU¥ÕV•U#jT©œz™Ú¦ÆÕ„Ê«‚*ªkU ­¦¬&ÕvµCM©iµS]§v©ëÕËÕ+Ôn–ñ*u£zµzz­ºIý›zz½zƒz£z“z³Ú£Þ¢ÞªÞ¦nVoWïPïT·¨w©w£õݦnWw¨÷¨½êßÕ{ÕûÔ¨;ÕûÕÔ]êƒh—ÿ©>¬>¢>ªîVûÔÇÔÇÕ'Ô'Õ©O©O«Ï¨ÏªÏ©Ï«/ å~I}YíW÷¨¯¨ÿV_Uÿ£þW}M}]}CÝ«¾©îSßRßVßAÛþ®º_}O= ¾¯T?P©ª©£½ÿT=¬~¦ªGÔÏÕ/Ô/Õ£ê1õ+õ¸úµz=áIõ[õ;õ{uHýA=¥þ¨þ¤þ¬þ¢þªžVSWÿPÿTÿRÏ ·(Ïó|¯Î;Æ;Ö›åçÍöŽ÷æx'x'zÏóNòžïÍõ^à½Ð;Ù;Å{‘wª7Ï;Í;Ý;Ã;Ó;Ë{±w¶÷/æãëÍ÷^êÕ{çy ^£×ä-ðÎ÷zÍ^‹·Èkõ{K¼¥Þ2ïïBï"o¹w±÷Vx+½UÞjïo׿­õÚ½/á­óÖ{¼NïRï2¯Ëëöz¼¤×ë]îõyýÞ€7èmô6y›½+¼+½«¼-ÞÕÞ5^ÊÛ꥽!oØËxYoÄõƼœ÷2o›7îMxy¯à½k½’xeoÒÛîíð¦¼io§w·Ë»Þ{¹÷ o·÷JïïUÞÞ«½×x¯õnòþÍ{÷zï Þ½7yoööxoñÞê½Í»Ù{»÷ïÞ-Þ»¼w{·z·y·{wxïñözÿî½×{Ÿ÷ÞÞû½xwyô>äý§÷aï#ÞG½»½}ÞǼ{Ÿð>éý—÷)ïÓÞg¼ÏzŸó>ï}Áû¢÷%ïËÞ~ïï+Þ{_õþÇû_ïkÞ×½ox÷zßôîó¾å}ÛûŽwÀû®w¿÷=ïïûÞƒÞ¼‡¼z?ò~ìýÄû©÷°÷3ï ÷ˆ÷sïÞ/½G½Ç¼_y{¿öžð~ã=éýÖû÷{ï÷ï)ïÞŸ¼?{ñþê=íýÍû»÷ïŸÞ¿¼g¼gÑù=ß÷ëücücýYþqþlÿxŽ‚¢ÿ<ÿ$ÿùþ\ÿþ ý“ýSüù§úýÓý3ü3ý³üûgû/ñcþ9þ¹þ|ÿ¥~½žßà7úMþÿ|¡ßì·ø‹üV±¿Ä_ê/ó/ð/ô/ò—ûûq…¿Ò_å¯ö/ñ×ømþZ¿Ýïðþ:½¿Áïô/õ/ó»ün¿ÇOú½þå~ŸßïøƒþF“¿Ù¿Â¿Ò¿Êßâ_í_ã§ü­~Úò‡ýŒŸõGüQÌÏù/ó·ùãþ„Ÿ÷ ~Ñ¿Ö/ù_ö'ýíþÊŸöwú×ù»üëý—û¯ðwû¯ôoð_åßè¿ÚÿZÿ&ÿßü×ù¯÷ßà¿Ñ“ÿfÿÿ­þÛü›ý·ûïðßéßâ¿Ë·«›»‡ÿ¯ÿïþ{ý÷ùÿáßé¿ßÿ€—ÿAÿCþúö?âÔ¿ÛßçÌÿ¸ÿ ÿ“þùŸò?íÆÿ¬ÿ9ÿóþü/ú_ò¿ìï÷ïñ¿âÿ·ÿUÿüÿõ¿æÝÿ†¯ÿMÿ>ÿ[þ·ýïøüïú÷ûßóð¿ï?èÿÀÈÿ¡ÿ#ÿÇþOüŸúû?óúø?÷áÿÒÔÌÿ•ÿ¸ÿkÿ ÿ7þ“þoýßù¿÷ùðŸòÿèÿÉÿ³ÿÿ¯þÓþßü¿ûÿðÿéÿËÆC¿Wç×ÕÕSwlݬºãêf×_7§î„ºëžWwRÝóëæÖ½ î…u'×R÷¢ºSëæÕVwzÝugÖU÷⺳ë^R«;§îܺùu/­«¯;¯®¡®±®©nAÝùu ëšëZêÕµÖ-®[R·´nYÝuÖ]T·¼îâºxÝŠº•u«êV×]R·¦®­nm]{]G]¢Î²²ÑJït[i4Õ›.Y×<À$*-ÚòDw¹£PÊÚmu;º¾7¦ÝÈô[ÐkÓ&ÍN±""±ÑZÁM¡0žZW*Lt§”~7n̽ŮÝÌâµÓTß»¾l:³‰èEj°Ž•!{²;Âxû:­™8ÕžæB -Öåò¹ˆC“<Ò*Km®´ïÏŽDì$‘÷ÄTÄÆäJ—g[°±Ëô–KŽ}âamQ;Ù`ØqD^*l„Áͱ :ÙªHMnP2¤©Àäß¼:ÎDžj'­xd‘§4Q#chkBl7 º4×Sª3èׂ۬•Âú-d²)"û_ÒE*µ…öHFÇßpj-}€àc}¢˜¹ëÜÁ\ö¯%ûžÈGœå5tîÍJ•Qv Û&‹ÂMaì„;[mQé­VÑÓ²inõNbÉÝ b™.WßÜÝETæ}Ù‘êèI ùZa»6:–Ôàf°î(L’`Ƕs"=Úˆ½c<×°ÖDM–ÛœÓ \kîaeצ›u/Gm*Cm*¥™V(‹^b:׃ÞSí¬vÒ¼h9âá{qÚ˜;²Ô &*^eÔ3–È¡ëG¿FýM£ª5wgI–ûBeÛŸ½v‰±t²M\ÆÜMµ¿VªÌb¢Í¦¸É”Ê£@ÄZS(ã£3É–¥´˜´Ii0mC“B¥­ÉKæ%:™æÍ´ ‚Ö•ÝE­Š »¢›UÔº"´jŨ¨¸¢­ Z$**jT\qÅíï|Ý7I ¬»ÿÿ:p›wî÷ç¹çž{î9I|U.IÎc…Pf^Ńé«&Ù¬¬kŸ6Ñh#ˆ} #t’Lh ¼¤ƒñ»…-? Ôªìòm@ËþJ°Žd{å›­3p)Zé­’ˆ0«2ü)^Y½Y0Y¡RÒx›úÈÞ^RÀ”µ¿ c3”È{C]Üõè³Ù ø„!|G2܇ƒv%PÏi‚®LQÚ“$,šÞঋ,j.ʳƨ­$¤_îU¹2ƒK+Š4mᕺåHúä(ÚØ¦¬j/RଡÒÚëeBð¬ÿa|ñeÍ+½¼ýÙ:Œ/ÝR* ¸[2hâÇc¬ÖºËKw7³ L4ÖXâÅ/’”'®‹œÐ~iSñ°v‡EœQ(þ³–7ªÌSYù¬ËKסàª5l!6°¼°˜N2ÀküJ“aõ…Ú°½6†c]šÎö RzXg{àjÂýÊ×íF{ŸÜ_:!Ƶb›ZQg²Ù¯]ÞmÙã ^áq•öÄ—F%>ôà$êYS°”¯-•rc†ûº›a¢ ù…TŸÚãÉ7+´!O¥ÖölñsyŸ'&NC™´кiÏzªò¶±ÀëÐ^ dBïíˆëŠhI+\DÛ&;†­,A|Œ!¸RïaÛŸa…ÁÞ¬—O†íp)Å„>ŒÉ«ø´e•'kc¶Ð†4ö†Ÿ´C6u† ]>ÚRÚ]É/Ü~µ)UÍJÿÕæb…Õ+x…ÃRË$¡Cìˆa³aâGx*‹|Jr£gáXä3œRýÕåõÚá¸ãÛð–L/*— •ö'ôËÔq…¦‹+”{u‰ÎÆp¬ŠpcøQŸ%l¶á*?ŸmIíJÖ¬Ä £›Y(7—RXo 䃸ŠO b£ïNÄšýB\)ŸV¥Pyeû 9Æä!„}‡®ÆËTìLYT³òê=_«ÄCŽ´hR=äU’DU±|÷|ŒÓ‘Í…= EãµÎ ]YÍÅS &€Ãº²S{21ËߺÌìµ~r×Öá´óe¾¼ËÙ^-l #(ñ6íË•mO©—;+–ÜY¹©ö¥mí¸iú€‹%¡öÁ7Aƒ©€w ò²CekB/_Õ¿$_F¼xÖÕÕV^pÄÉ$qÓ)x½Æiï •xà[Wì²Òôa"tH¡RΪï3¸¼„›ÅÀ– ¾~ó“è‰n¾‘ªhȺ OÃS ^ŠÊC©¬cêÝaL½ü<ìEð/Ï!uÞ* à×Ü•BÖ3…Sæ¯ú¦Ì›@eþ<©UfÌ?¢˜íhᆧ¨†Åy$Pº…¾Í!Zh›JÁ00~^çÊU¤ÏÍ>lØŽ×Φ³$ÁÙü5J·âÀØHW`/ ûØ£^Ùwú™)BÃ!†uG!Ì®}ì¢\ê§gœö1SÎò*oU©iXI ¥[E‘…æ*¸”S¢ü×{ê(õ(‹×NfÅ-R&ˆöçaßàåƒA"û½$ê:á Ø"B U‚¦Mg­j˜àÎAÆu¥IiûÇ2aì¹NfÊó‡ºIw n` lö-°µpp °)ã¸Óì4ĵ]+H2'ý<”µ2$*1fó¥iÚ2ÈXÕJùeÊýª$Ÿ.ëvÒø]æ½ôŒ”lÊ—yuŠŒRßÍþ‡ê[+„T.²³Ø‹fÃ˺òÅj-Ûš eJ»‹w7­*¨¤ åÍÝ(fÝòŽl ‡–tB…Ö—6»¼½•Ê-ÜÔÙÝÜ„Àºl~'ƒÌ .x}#ªÐÇÿ€ýv+÷Ë ë³Ù ”`‹y ÞˆVÓ|T³ …€”Ê$ $uÛÝ^!Ûoä8«´½D7ù ŠŽÔö·ÒAÁk!1ßEvÙñÔ…ÞÅð¥í‹ø‰®0R¹B6‚­*Oè¿Ô[ódáâ ¾àÕœ'¤ejNd™_Åè/+?ðJu&:õJ߃À~;¡œÚô)Ї¹„ {è Oy§¬’˪»Ñµ˜(#ogÈgK¦ÔÏÏ Í T™V(äËü;Ëý+{”VÔ»!+!P<áœÄ£4'ð4®¡0t…gåѨóígݶj?\ÜÖt–Àš xcÖ*Uݤhè 푳ª´9Õ7X6Þ–'J˜¤ÂýT6•{¼³´Ç…$T…ìúʘ$#ò,^!tX©—Úþm]•rÏêÑ)Ä"W$ò™„©¥|RÈé¬P§’€’¢¬ÐÒú•Í”´¬®ùl¶³Õ‘›Q_›Ð2ü­øì¦é¿ÍÅ 1#Ò "J%«:Yž¶—•E(}yâÒ”´ÇÀFûe{–X`|«$`ê¸ÜӎνgÕÏxèZÚ^åiõx•z…¢†"…‚;ýk,1ÉtŠ.MA,©Ý û¨{s˯˜ E2¸ÛöR‡rí'LB  i{•%kË„!¢³Êkª©¼œ_$¹í¡QñI…kVžIgy];+ÔU0ކ+Äâ|Rj;›Ó®àE“„=eé[e@*éC®—ŽFR[Íóòͱª4@O#ÀLþ )$ ùÆkwV{à¥= v¯÷‰â4Šn5>2ç O+€Ù4¬Ð={È, ï>R0ÐY’R–2ª@ø£ŽÍB<Û~’9úõ^°’á™kD’_ù½m7뀭viè.³Z„dÕ0½j+C •ƒ;q +‡vNSnçôw–el]V—õ†V±7Ê"$«†•öFIpi¥K‚§©tio”„M—qyo„¯ãË:¤$¸´ÉåÁ¥­.QZ¿òÓW±´ùåÁ3”PÞ [Öv.ꤹsm[›Þ¯ÃakÙLZ•ÐRÚ¨bh•´í(—³´Jàfo·F¢sªDÛÒµnéÕÃVT Ò'ÜŠþÓ©Y‡Ì‘>ì+^‰§:E„½ù aûiүܓ­bˆ YÅ0îôŠA¥]^1uxõÚÒû‰X1ÆŠªÓ§œ¦^šî-÷¬ÔER¹‹8¬E éU «Ø}4C÷q¤JݧCJ;G¦ÉõÚ—z)¢>䉢«Ó,ÕÐs”²6ÔX!¤ò2b)ÖŠ‹ÄH­”ï0*ßü—x Ñ`û^–MeJ¼6wæÒ©Ò&ˆð™oPžeçLÕ«”?ù!û½t=wy©ôÇ2Þ!…•«ù—MNÀ:Ö¬í,EH²80¨Ì¦Ó…–'~IL=ñì˜BA]ÉfçB;›òjŒž„½6ûÈî—Wü*AåÅ~B"âéI„ …oßÝ\Q½nÍM^!„°¾MTí{(îN7Y\@ˆ>®I·’‰:¡5“´$:ÈG _çŒø_÷º$25S‹¼èjE ˧ ®E’ƒ•菉O° ¶ Œ-MÛn² âv"e¤j("ÊI2§Á°Ö`n$OZƒF±¦‡Ô°xȹ‘>aJáuCÑXÒ_YÂûÊ-1ùÐ{¼õYí±•Mcç¶§†RªÊt @ò@Ȉ誶µeÔðàq/—+0¥;Ð@Äý±¹‹:§Ùãî Ò³¼¾5ÁhŠÀÔ+ôÙN8=«ÌðX>)¹­r‰F@»ïñè,ëŸÎÒþé¬Ô?Š`&s—×Û‡,GU¦’õW`à“¸hTÈ^x™@¿÷fNØïI¼¯FºÃ¯³®ôª¥Û·Çã VQùÑ9Ù†Ý":'Ãn%ûÌ¥°P%žü–‡Á䧘ËK=8 HªÜX˜ ïAƒ?ZM$¬Gs-ì/bo!ÏT.æ*%.)™t#I^J@Îô Š¥©$LѲÜÚ4iÎç½˯í[$E|IyÓË«nKž¨<%¢Mý]Z“*Æ'Hˆôó}ºC·Â],}Ùmî ‹C9 ¼t­ºÝ ùI©!+$sí'»h·}«G¯Ï vÄpV&¹]!–.&j–a硼–É[˜œ×X“:$9`<‰,è¶Øˆª†È1Sƒâ• ó«Ä[?AÿLM¸®,;f¾…·„ûv¾Ìˆ‚‚,%åŸCÑ„n± iù…|v¤»¶‡nÅ1µ'á#‰½éãVI¬¶ ™ ±”y ¹ÛB ÊC+{ãÆÕ µ³BJZô¡toYÌ^äæ”tåWN³I‡ÊAWg“+%a]ÙéZ¡•½«V½+[¥ê8ªT½+[©êÝ[qxh í¤žME$“ˆ+wÌîM&Ÿ|d´‚*æÉ•_rêÔn|Jö«Rÿ]¾Ú%º[ÓéT.H›ô ¦yƒÖT"(Ý´£3úÄ'jÌ›Ð~µbt°‰[<(#+½.Ïø»Õ§äÇy S3žÐ±“spÌ¡.îF»R ¼à·ŠÀWØ×Lõ÷ËgÆ/4#_ùlR>¯)fU¢ 8TÑÐå_ýýõ÷×ß_ýýõ÷×ßÿñßSbC½Ò¯7à±ØY14Ow¬ÚwÓYøg0µcG½Ûp‰‹âÚÃŽ³Ù/ó·0è³»{ÐÏûn! >˜¢Äî0@.fæzq× €LÑõÐv=Oó“ Çé‚,òœ]½») .ö Bî¤L§],Äõ¶­Líp½]>À«V»Ãe&©Ão[j¥¿ÄN¸n'T§já¥ñD9â"M §]Ì k.ÍtsH&.Zaszý‘,äŠÁÔCY¨½É¡€Ít–ñÒ®— ‡ÜX’nc=Õj0e¼Ò~&æÕ×»ô¸späå¸Ù~è è±^ß è„ý¡ÆºY ÓŽ‡ã´Uíl(i§ïç HººZÿ·a‡j!ötÜŒ"VPwV¹¤gÿÍ!ó2í÷ÿbZÎ0+W?ûiٟņ`0tE¥Yùß;2§‡¿ätÄz¨Ùh:ä¿y26§S^àÂ@¸!lY ­Üzµ¢oX>/:Z‰¢@·¦6z·¼¨6š¸æ ½ 6š´àߊñOexÿ©µÑv !ÃMókËðúª!tôä@–”4­¡o‡ˆMéÂY_Ñà¬Î!¿•jrðZœG†Æ†@Æ,›Oúyw7d–-˜Ô ú ƒõÔu=|ƒãú,7¨EÂ]™§³ãØÅ8MÊÍñ‡sÈ †EÒGø©*ŽÂܤ†"ˆCæPï>/ƒCÿ¦†°òıpáož ‚â aUlt"@ ¨ûçýî¤èø‹#ѹð}"|—öÕ£¿9)êþö¤(Æ‹ÔWyâ”h#8Œ·§±z¼ž_ÍýŠãM½¢z¼¹Î £·‚£xWWW{÷üèzpT¿]ÕãMÎ]{ÂòÏ‹†·Oàî~ytSH’ƒ`|‘Ö'sÜUQngØV#à#Ô–CKÐÛé;ÙŒ«ŒÔtÅi|¹ˆsQ Ÿ–. A² í"Ö= 0vu`¡!“'„)/泪»¸›ôå# sdÎÓɪg¾>IS6¦j@›ÂÑæâ8ÈÚ ÜbNw ×M3ß/IH^Œ›[m *6&AcÃU‰e{¯Ž»ÛT-·ÅÉJl ›³£‡9ÈÂn1 56臊tŸ¤åªrJ˜¾ä8‚*²³¢R¡°ÔGp9  ž3ZÅ>¬]p¨R¦ÀѲ`‹ù€‡ü„+lnDÒu¬A©Îò½ ×Ó3©rPY•]ctª$ÜM¸eÁ©^è/ÚbyšÕ¥èÒ².îÖåYf »Ø©J÷ zù¼ßoü}ø0Åௗq³”)Í=«›ÁPç åÍÖy¹ºˆUØL¯UCµH„gΑßùÿ7Zz蜙‡ˆGÈf„R°°°4hkÕ §‹qâ?oc=ìÛPYª?ƒÁÅH4·ˆQ)VÑá\:xH1Ú`ÒðmŒ}œ*êìNAK!Ceæánå«»cÜéZ«vY'•ág ´W%";©h…SDŽœsiBb:®9ö6UKˆUÏIß3ZÎø»]ºìBÜÏØ‰zŒñe¨·h.KSC¤t¸ú³Óô¡BþxÐü YúµâHøf²:/˜ˆÕí0511VðÑDkF˜¾™zqmôÀOÖÖF¼Gà= k£÷<%ðŠÓk£v_Í0þîxüZ߆ùÝ`à›0ü:_‡ðë œ¸Ç ßð¤•~=Öç ^Žõ£—`y׸ëkÁÏ8 ¢{_càÇn|­'µòÛð”> pUß³ÚŸÆüÞdà€;ö¸ àq+¼Ó[á.ƿѪ?–÷:Gž´Â§€ÉYá‡îøßð˜xïßx à)+ý(ÀîßÉø/ªîÅü®‰–Ó¿ø›_³€ÂçÂßYð÷©SDž=e޾‡¿'Yé&ÄožåwàΫÆò¿¹–ß>ñ[T©BÖï6ˆ—»)§ün¿&€;,¿Àoà ˯Òomç°xiÚˆððÚ€‹Bú€úPa£‹±€¼¦½ 1Ç ö žaéu^9ÆÊ»upå»ãÍÓ×cºßs`ìάŒª:OudÁë-¦½¼›ô `sêdFéЙvÙ=P§˜|çþá9ôc+œ ^Z‚<šn1ùäÞýî~èÇ©ÅÕûùh~LgwÃ9‚%B`+%'xgKÝ@1ÍsOâûiï„$”­T^\—WÖ™v±ƒÙÝ|"2ظDv—†.254äô-ø0Uû³é4l¼¸ TcÊ«@#/ÉÙ ‚k­’Êóff³é*˜úÐÖ‚ÎG渉L=¢š\2=\«ÅÄ€1ݬ¶@Æ``èX]ŒÊÖ´7aÍ,³íùl:À[¥ Ï¥@e‚ Þ‹cÁ¼¾:ÿ6f6!ó” òCJ[&ȳOÔÊ2ui…»¡ .ý›Í@GR•ò>=ÛNÆ™Ç4ìá>ç0Oçc¦”p!`Ù§ˆ/ƒU1KDð…– ino·YºQ—ÞíÀ0"'pQžö !+d´qÓÆ[6´nn[{ù•·(‘Mfi—¤í—ÎøÜ Mý¢Šœï×BydH›Xµ ¶V©ZµÉLÓÒ³m´xX€°7,)NeMO{0ÌÄ$¸¿ût9fj«1…y­9Œ¹i– LCiÌØÄ ¹Ž{Ÿ®¢mØ€vgi~ú}E| bw…Æ,´ÿИ,R£p׉ëŒh¿Æh€®‹¸’¦CPýc2 y ‰†¤-rU6˜º€s; JqE˜°•ÑN?l üþ#"i[\íË«ëh׫Ûš öo[VÝ*îdÓt»¸£žб+ÔÑh¶P =áÌÄ J=ŸÌ«:,6»¶¾ÚrŸg™Ü+ÐMl¦xi†Ä;/oº`SªÚã|7lV&à$dÒ•gŽnÉbiýb\%Þ/x7™ úŠÎÀ^P’tê2Ã,‡§>ägn¥^)Êñ‰–!^Íåq:)"ÄB\£H©DèÂ/¹òHe¤´ïµ†Úluô®#¸T“°1®v-l<wˆÕʈ©Þú•rRó…q6Ì\ú Ä07äéÍ”9Úi£h1 óˆ_BÁy qÎùB¶ý%ë\¡R4±5³¥Ô™'¶u8ðy´àd€gÒÍŠMWÉx&søÎ t”"¾‘C,˜•>¥Ý¿[QÚ±zu>´ØØ*Í„‚7Û—¢›hpâ=SÆ**gúEÄ'†q0sÖTõbU¿šçÁ8œn8ˆÏ ²"úºRîúæÂ.Bšj«ˆÑW窲Îþc·Dˆ?:ÕXÜóÏ »çÕF!c4 ð¾åµÑ¹”ù¯ç×FŸ:yA´ã½Âÿø1€÷ üôòò³~G1dAزî ïåâ!áÚŸÀ†k——O-D|—ŽlŽoðøë"l’íï× Ž(ÊÇÜÜ2ÈOLÖt»%ò@¢ôÄ®¢‰àñEUÒјS.Ó°‰ cü9t&âq¼ì$&Ñ|yRSA{a1 ƒ¤C70@À®Ï tB`ï±H“3›²I¦OX×M±šbù÷ªõ¶Æ+Ch‡ÂVS˜¤ñØa@=àz†\%ƒB‹Iâd( ~¹›b(Ńõõ.Ú8áñÅwˆ¶Ö-À{÷ɽÀ.À=wÈ:½¨|®Çµ§¢¢o…ܘ—Ø™ð@»¤Ðg„#ÔCS0ºäø:’¹ ¼ÏzÛvî@¹LoÛ²³wž³t¯›ç²ß!”‡I„Fið¾YõáÐF˜âëÔ#•ú-© ¸“ÉfèÞ0”«„“ˆ‹<“Ͻ¸Ñ÷ãYØ*†¨S~ ˆ„éŠäùÌB±a¶²9R{éCOl ¼&<%]ínÛaOï—º¬‹è(WàÅïh `MvˆŒ^tPè‡ s9ÖZAœBSesATH}X)-¶JÕ®{šÂ”pæNûJª@•NõĆëC-,¨Ì´D‘Ò‚£.Ngú…¯šeÉԄ몱q0-CTy±i¡Ñ^8Ã!#3à'gS1´‡ÈOÈÄ÷n½ÙìNNe$è\’ñ#v }ƒ{%áN·±¡× 蘒„™‰¢.sŸaúÂtK³(Û`*3³°Ûg–"´‚Uû‰PÏd“>µPK°ú"T“°µÀÃåi”-„C?"hÈ!ÛK\ŸÛ[,è)(¦„œBZGd—Ó—U›‚ý`¶­!R” Ç lšÅé|M‚ Œ]™‚‡¾Àƒ¶Y˜ZNfÆ® ‡:§)B7R7œEŽšAΑ)¨íJ=ySëA2¸1"VÕ;jó*lýg:¾ g›? S0Ç Ø ×Á”þyÊéHe¼|rÇ_ñÁw˜!’°jL‡¢ÀÊ.ZQÈ)H5çizhˆ,§ë=PfÛdº²0»<*€k, >{R{vÖñ\Þµè‹i~•b-1Ù2;Ùy%ËKcŸ__ R_(+äïEªòWj²t™ü•¢–.ç–žï.½ÿ^è.Å<–^ä.ä˖ºË0ɲóÜeX›eç»Ë0Þ² ÝeoÙEîyÐr§‘y!ïû<:Â[éC),èMvAî=4sYd‹¾—Õ!gŽùˆ)Š@ÜõâB±Êݧy‰ ègg/+tw*“ñóŽÌ%†„,À“+³Ý>³CQï¡•ÎMfw›68$àæÓ1jÍÐìÎ%îUj»¨ë](Ë 5¢»4\;EoÍ¡éLF»È`á}ݨÔ@8…_[ue`âòzáš%œ.šß„_y^›‰®Ø¬ªÈÃ†å ´z’ *P7:²éaOÂÑl°ÐS‰·V,/›†F¥ãz/È#S¸×‡¶ùx­C©ËU„²>VÌ]¾~³ÄIì:îôŠ ÄåœCŃÅnhÔp¢@ÇPÆ,œOG„0V•¦X:XÞFàf—½­côáúôÝIaIº•×>ßz¢ü¸ÚnS}.`$–à©.ê¬-Àzdi¤çSf¥$œ5#Š7†,]Gìdow$[tPRL°ÙfÜL=D`\›Ý >{è’µ˜—kKy”¡w Lßgcöôˆz–áˆ0ÿ ²rh'“´Yª t¥fýé£+'GB„ºwp-.î%1ñÅ|ze¦Ec]aPíGT{â'¹• Ÿ¸ët3¤N1Mˆ*5Tdò‹¤ âêeB•ƒY¼=€„KYz˜+°„Zb¸@›£¯¾ °H”µÅû›¤C'Q¹:Æ^ÛEœ 1X.@îjˆ›ŽýA#Ô:335ûÉjOz—£Ñ€xA š;5Ñ„QЙ…Ê;j¯÷ t,#ƒÃLt¥[P’ÂX lÀ±‚ÌÈÝ8XmÝIÐûwC[K›¾JË»+ð`xÌW AMöÁ´ùÓƒ¨^$‚}ÖØnÄ Åd ñ¥"ê˜Î¡zóõu Ç#Ð}d˜#x¯â'GXX‚¾™¦¡—Aê:Í æîlýñU‚ˆT áö Ñ¤£'Ÿ‡ÈjÀ§¸ö~C®¨<ša GXà†—pˆûÁ’ô %u:ŠÞÙÁ&ƒgvº‘ýÉíÙÝ›@®ýNZrxeóJXÔjXq½Ô58­‰‡*;&á Ã7Q¨V£ˆê¦ÜÅù"îÂ;Ç2¡U ̱p´•’¤Ðç)$Hª!í©'"ØuCHò">YÛ±EvÌú¸cóÄ<ðÎÊ̱dŽˆ)¸çetA*R ùT0aê„>Ü%_fó^N ÉmKwðÝ4D¤()R%åe 6Ú¡ëq‡z€[.§4|Ÿ„ËKÖ‡Ä.†hàaà) › ë{H¿¶õÇÓ.Í(_Ho——JkvÀ3!Ê—0³& H®Po5Œ©âƒøHÄýûS…»*KyÔÁ Kk¸f »SBÕЀÉE‰T." \8ŠÐÅHÜa™rHˈX^µÑ½SñÚkSÔßt쀹¹æv–é¯~ÂÊpxË iA[qhвÌ)mBœ!/dZ’TSJKc©ÖY”g èÛšíiÓ,ŽÞ(¤£ ˆ&K²gž£Q»S[&}dßÀlT×_yD'Ò_}ê¾_Ͼ¼OèÑ’kp°Ër¨ Nè„Ûàl§wfé>n"R¥ä§ ÌiÐÒIV¤ñ¾j² Æ /@çk(Npk·d¥ Yù­¥fQà5E=0—O:ÿΤӅ‡ø p´ÁÏ‚‹¤¬f+¢\® Ü=ŠRcwˆ>gÄ܆>³S¤ŸhaøpÔs{°À:pøž=»ã4Tø9€ hðhâõzpÎïãÅ©™9fÈlÓæn/ §à8íÀÌ™‡¹3"d22èjá=Òãëp#–ÊrWþN¨æ²yëhdZF⫪ ÓOSzh.Â|]!Œ¦>ytï7z~w¼ŽÿdÚ±¥úûŒ­°›&Αþ_tÜÉë{ørÆ{î4ø¢4þ­/äw4xßmß^e¦‘Ú ‰¿~1{làß Ê-ă¾")¨PdygóÂ*)§ç®êýŒ¸dLp‰; .‰DÂ8i.Ä­•ïšiòoeyÿ”ŽãÔÖ ²7gr,½ÂîW¨ÏÑþž:•Û§æu ºTõ;-Ý4›:Û¶2Ñã«wÿ1펳¸Ûj|tB oõÜf¤Qã\¨(½ä ”`®<èãQK¦`¢é}6ÃÚ†ù=ä[À«0NÝ éG-=ýEDøŽ4SAŽb–†Å”9 ©X¤‘å݇&çØ TC̼V¯EpV÷úÈJe¶YßPNUσãå´¨úÿ~¡·¶×FkÎ}]詵ѹïy@ÆàÀEÀO¾豃¿Ú¹ÿYù>Èñ<Æ\äûœÏ(|ß nì‡÷Àw¸Æ‡YnÉ…ïùàÜŠœÓi ¢ûÁu<Âé‡O+Ç›‰cţ֧І°±ä’DÞcdYcð¼‘ûÈú(h|nãßA(ïþ¦EwU!ü;'™xUuÜÚ3M˜ýkœŒD§æÍ6.«ž/}†¸åÖ2@ItífåUz(q;7·ºËðŸ«ÍZ¸±¾zwéE]ذ¬±q"žNdŒÜv¯7p›×¸vf7kÖ¬òz•z-Ô?ñ¨­úÃКÂaàf;{ÎqÇÏ=Á9qÞI'ŸRó‚S_8ÿE ^\»ð´Ó}‰{æâ—.9ëeu±ú³Ï‰7$Îm\ºì¼åç_pኋV^¼jõ%/oòzû’~ÿÀ`êêé¡L6w `Ëâ®ÝÃ#×nÛ¾ãUÝ=ÕÃ_}Ýõ¯yíÔ ¢O‚{ô ž£¥ð¡ ð„|ß;`½WñG¦kb¼âaëÌeqõ3Iø Ý¦?E±äý²Äï äp­ŸÏbñ³ôó â7â,éõR™Œ¼aþé®Çë†z¶è¤ þÁ<½9´…šGH`šD@(­­ŠöØ<¿s&='º!›äQ€ˆo+ŒHʼn^uq«Ø¼Rä÷séùªnÎ7L>îj·ZÃ$"¾–àêSd"ûn¶OÁ}ÌÎËyÈ"Ïh²ï¦ñØ5m‡é*J»£ÀRií–Ú[¥Ñ¥fèy<•K‚ÿÓ¬ŸR8®Uºyban«UB‘ÇœAk…‘01eléÎE ŸlPöÌ‘}¯ØK lâ®nQO2@Ø åµ¾Õk´³½(÷À”ß«(vŽÖXÒ:ʨòÀš†© `É;Ó·®wf¦ŠÇtÍãÖE>¤ êK›ÂjÄ0Aw8Ew¶¿StÁiÅËñµ™ÝPÊiºÆVk¨z†LTl¤˜?JjÁ=8G,]¤UYIAd?â°%Çлý^mt `÷,†WôÖFï¸fÃû’µÑÛÎ Üã×FoCüx6Ãsûj£7ŽÏ…ÜßTo„W¸Ç÷üpO^îïȪ#ëï¹ÒßHNI?»«Ž¾¿ÿ’?œßî%¦Ž8¿Ç.©^g»½O<(9¶šÓ4½üw{Ÿ„:÷,2ã9¹éxòŒêã½èL˜M&|>ÀMG6?"Wé`ªiæ~jl.é¯áÓÿWõß” ýÕlÚwàI ¾àÆ58²ÖÀc˜~ox|½oØm3ðuZð ÀmÕûweÏÉ íN1ÆÛ¸?ÙO¡Ìî„‘!„®û|RNXÇiêáü‚ y… ›p^jË`qFzŒí–æNü¤áÉ·TÈoiG5?Šz`ˆe¥QìXÕÜdìºu*›:º#MŠqºå²÷™ÄÓvXžÚ«Üèþ—µöÑmk¿ØT÷u=/…ño?†ÎµsÓµÑ.€Ý o¸à=x¼ö§Ëσ›ôKX‚Íy‘HEí6ø07Tm¯’¥ ´¦Rzbé¬SŠIW:|+ù ÏÑ."—Ï vú# Ô«”*lOŠÚª…åö;#ʆé J-Ίë]Q|›T!° •’ÝM+PWM^Óˆl—è¤;H$ZQy0 âÅégå‚ ‡ŸNª¬ª•ŠH÷ •/"è]Ž7‘˜‡¦oÃLêp‡µÂêQ¥µ‰êTk“«_! S+Q¸y$yiKUR%hɤrý1¡®ÐJß%ÄӞõ’¥ƒáI“D}ãúW´¾²{KgëfÚ7­mnïÞмv}ÛÆV‘6høéNHëOˆÛ.juÅø*:#WRxÂÙMWU3Z¸WAâÝ©Ìy˼\*sWbµ_âèOJ²‰&O…Ù@¬N{2@—ù»dæðT(}t‹!ÅLh²à!·tÖ‡ûZ«ŸR}m –*†‹&…~Ø™¤ OÑ&G.–Tp–-´²7™Jó†ŠG£§ªSã±²¢Ò’^ëôvé¥Öéíª¼f•†|zj"Ë“{ËN¿`:½YÕùiêusI±’Jz¬“æ™è‹ÈX#ÆzOp?ªØv§“ŇÕÞ(g2ÚmÃý†º^v™~™åzc-¨˨{% ¨|]%ÎEѬ‹bTÄ´¶Õ¼là· Ó¡B¢ ô‚‡²}ô¬Þ<¢¡ƒ¶VÏ %vë§¾:/”ˆ+½ys¥w€Aè€Ð.`)«Âž*Csô"S™Çþ¶j“òäœÊ¼^–[ZZ¼½ñµ¬ÖLbnx‡NB|"Z$÷½¼ TŒÂ±á(úÖèe6#­vK÷2µßtó›{é‚g»»UÞÉœP!ê †¾•9 ˆôžH¼¸Ñ ”r·oWþò’¿­Ÿ8^qse`ž¼ˆ€H‘Ne¢E×WªYȪFÁgE[–z]K{Û¤‚Jµ¿‘p–kfY"Kù±¨”NZã¡wy € ºÕ4”MFoïpj¥—Ñ{>­iMlV'ÐÖt¶YŽ”j+sã Êê%Ôµæ£T ¯\¸š<,’IåbÉéªgúÄ)uéÉ–ÇàqÇîzý¬_]Üá¬ÁôN2Ó¬'õX‡c‡)"±¦ Ïô¯~f‰žßiQe(½•fÀ4„ÚLOÚFŽhðÕGß(û2'ká+¥çO_Ç¢¯¾ „é@ô9we„èMÜܲª™€ô"B6C­½’g2Ñ1 ›³¥™$úuô6%ÒM ‚"üd ¬2RyŸ;'•éK“JH=ËâtòXÉ¡‡IHò&YÍÊñ¨¸MK[²‚ÓSÕ¥Gçsœõ²¥±ÑP úÅYBÝîvU/ݘô‡«Ó÷Uˆ‹ç±5ü°Nô# 1Q©=Ïš¹Ô4&'óëÕš‘™jƒÂÉ`éàÔ/Ú|Z†eϯÄFr©>z"§è¼ŸCä˜Ä·Xô n¦Ùãðì¡î%ÁpT_“å[+ËÒ€~O„å<<Öl«4@æìTy|þ§‡Çš{éŠÉ9z}O3BšœÄÖ„eå<~в’×¢&‡f^²z»EÿŸÅëá·{¦ 1š¢uI¨Éö$46ƒj#ä=%ZÓ#,^-Ó#&LÞMif@>ô—SŸ¾e7›öîU>t?Ÿ3Ræ¿uF.?ëfP ‡U}É„¸V GËâÍk°£³4#¿¯ Õ]HxÜ\ÒÞµ#=_%3ã/ÍOø#> ‹”O8[2ô&Âp­xƒ³8%z+ŒjLÕñ4…½À!9P¥Ü¨¬ë›3öó¥ä“²£³Šd¦“¨ÞDf Éo9ïçñ²0âŠ*¿ -—wQD9áóœd%Ôè©Ôšž]•MÛ´Rô™²žù¥P¾MNvŠacSUq:bw‹È\5>N½åÎÍsçÖüEH·’EªâA]ÒÐ-Žî…J‡1ª·Ä4ƒÆ¼h£"í(Qvæ)+,^a†ºÜÝ¢{™Ÿ"¤µ©Ö×[×ÜŪÅeÄudª§Œ•ëé´Dó7ó ꆑnê°Áòì€XÅ(iÈO¼ýílíÞÜÚÙµiskwÇæ¶+ÚÚ[/mEEP» üŸIMÝé¥Ç@eìbª>ãÜœ‡D«š"¨¤[µQF‚uäìòÍj ‹egIfûsaòY¨táòÌĄķ޴>øü©x‡áU’'¥‚qøÜ°ÒŽg1u2ê†aÈ ÍRµ¢Þžk¢%åG‹¤9L(±ì«PѪsËÉ”6 ‹r¬ôÜy¾¯g€Ò³¨èÉTöðêŒPïùŸ3“QÍÓ“&! >4Ò¹ŸÙíqG–^ç’ÔlͱZš=‡ ð­=ÍÊ&yc€4_ïথuD e¼L–åQ^utèÒ¸»ô‚ÆFŸÔç2‹M_ÊAÓËóÁ¥khT{³‘—6 –;ׄ¤Cyh޽:‘³jt£¯—„ßpŠ£’¹xxEèö;}Šz¢…Z³Xíê˜o–i ƒzê ž%7¼w0éḹ@ÜÍ*{®ÅÑpÂ#c]d@1uAHd]^¿cnÜÒÞ.úL×ÈíƒEÅ£7Úý” ¿uŸÍÕjÇž×ÿÄÝ–M»\Ø,Ü®õmgžy&Î+Öù‰ñ»SÉÐôj¶šˆzvw3Gxó¼ó?ÊÏ\ÖA.tEaùÄ‘B”“Gu»S†Áù²çùlàQuNÕ0U‡,p‹¦“'Ø!–iB¯=M…1#M<* ,îXÚzŇ<:B/…éê-Œ$ñ˜–ƒ.Ùì)nwC•i%$*ɨIÙƒ&Ælë4ᜑërÒÏk…A‚EˆÐÀÇá$Œ@ˆf×·³˜ëPd¤¡,ʲ+Ä•u ´æq!©ÝÖÑYª†r ê>Kã´0IÇ@ó ø^ñ/²7˜{†iöƒ’íÀ©Æ Û¾°ùòÄx-?âMó†£ÉÂÍ­—vw^×6A鰫ߪäµA,¼ 35\6p¾±/#LË6¤úÅìkúTB«/Ú¬ózUί©éÂÁâ( ruÙP+™ÑXXGE˜VÒåÆ†Ø´º—q–5._ ×z˰-82hÀ6šôùNaƒ@E‘ôÀ¨÷§ŠZM½°DOÕ ŸÎ©‡U‚‰äµ˜­]KHÀ#¸n(=‡Ê• ¾ÅYØÙÚÕ}Esû–V¡ÆÖ:)ßÕâúøP¶lžõµúÿ>f ª–á~½§éWïžýú¡!4“ƒëÚ­q­iÛØ¼ù•(°†5'ª¾Â&â'$bË•›6·`¼f÷¼e ½°m0½ ïnoëêjoínÝØÒÖ¼±BlÖ®[(¤ý6r/£ Ú¹¬i»tú,zS•Ó·níhÞØhfŠétƒ¶’“ ­}mK¦˜ñ‡s@ƒYË Vû"e$ú¤æ’z¼^\_±õš³:š»ÖŸU¯ªÔÞ¶ñ\›-™½EF†z³éT¾+Ý©¢mØÒÞÕ¦*ž ™"¬Ü ¼,3~°V¨ðî,%¶žÐ„Ô±‹[>´‚^Ës‘RèôX,dñ IlyUu25ÕÞ˜Õ 2…‰=Í‘6·vnÚ²ym+ôGg÷«’i E1yzGZÌ÷ùú± ã÷é2áhÆ1ÛÀê)ø ‘Ñ+7ÏÖ|ô›Bé'ñÉšµÑ†"‚VxaJ Öf9òaÅ oÙüèõ豦caM·"ÖtPý'á-É+®”9’?‚zÙ2f†Hûÿá&¥è®Ž†qUœc²”lM™ò;j’Í+—(JZµDžÔKi)VKÖ*^7$6Ä× Äv`£åA¤ÈÍ(„Oú»¼L1ת-éôȦ°(µ¬¶C }ðÀsKãÊ<–%BËñ ù(2E«™"£9†g*´ êØ[Qƒë *Eƒ8Éd §…Æ¡Yð"¾GO†%{UÕµ"i>Lf?;Íýˆ•Õ EHF)^Ò/Z)¡…ú¥P£BÒh56Q\¡¨ÆÜM³O+GÒç bY¢2FV«ÝÖ !ÊO&Ð #Y‘åI§úI©…V$îÖM÷‚ån/É1Ò8Ä·Sv]hµ¬8Æû–,ˆîÝxLE7.g¹)ù[).?,ÇÏm|nïBzh žÊNúä[e¹œÿø&þ{ß»Í[‡IñËm*¯CÏ­Ïà™~·.a»íóª„㻥Ñ¿ÓȽ«6Šïš¦6É;Äw•×ñ&Èot+‡×j£×<)p¤XÍÜóJ†÷îª&1\à[‡k£[î¸JÊ»¶6Úá¯xum´à©m ?x]mtæ·Câ¿¶6ÚˆáO½®6ùó*†kÞõ·àùoªÖìö0éÁ­x¾ÇÁ¥"ü®°éN×&ð(|ƒK œû7XàÚž€ï)pý*þÄ—Œ°Î¡ÈGa.´|žöes#1²&Ú6›§ì9-8H¡ Š‹/¯†ë¥÷Å\µÐÛ\ý4wX²uÒI Ùiµ3ÍuUÒ³\›d õlYZü¡ym©¦|",ÕÜÄþfIE›LàlÜTÈjlÃR•1ñP“܃dïXG‚ÞlFÕ·JK¸œ8У´_¹Pa,Ç*ńƮΰQIÈEÉ>fHF½ET©ÙMºY¡Jð±s\èwÓêj®,>,S4‚R§tsTRgO»¥À.çVJÓ¸ZÅ%+Æz×±~dôÒ†-éÍq@ŒZ‡Ê5ÝjªÈÿ ²Ë‚ïXå™ÚÐ1»„Ô'iÞÈpè“tjõA¡ v{¨[ÐY#ßF-}8¶: é¶çq"C«°•/»ËâÎr"¿åÄ*Þ¯zp3J± )%–!IlxÅhØè“‰×|Ò×ÊóÊ‹MDpþâ *ÖÔW=[wõsw3½m››ý|ÂÝT@·eýã¨7#ý/òx^`4}²\*I¢cVŸÅ<¼€GB\ ÝÕkño»e¹;d´‘Û„\þcT¯/îqj1¸>”‚–êq„–ØL[“>#Ò’„Ô‘>‚’Ø:eoôU@îÌ%ºTļ³Ú¸¬œ@J]±Ž.¶Qž¥Ö{Â4Ú¨õ` •ô©¦‰D­ïe™ôŠ5'l¡®!ÛüH†ZªŸU«©£¨ÖÓ%­¦O¨¥Î‘¶Ô-i©,M3𪑴ÊX¹HY hœšyÇy@ßÇ´Ãu牾<øÛ(~ëÏ«®#° ÂöŽó»á¦Ûk£Ëîi”Æ÷}ð¸ÀÃŽz¦îf¸ç_jI§Pãg9ýM'KÂ]H?ñ9}omt>–÷¡ïÞ_ pî^Ÿ÷Úè3Ë ®_úà)„¿Âð¾}ð˜”wä¿où¼hd\èCÈÿQ¯ùÃë>´,\ÞA€÷Ü#ï¦!ü~€'?Ïõ@ø½‘ÃÇ>€é¿ÄáMPŸ1 ÿ2Ã+ >·<ñ†G÷ü‚púÒþv¡or_÷5 ÷à»çÇD? ýÁ Î\C'>ü  Á5~ÓЇö;mææ†Ä—q†3ŶmB³ª× R}‚UVZ|è¸6q/5p®ŒšÃnÀ&Ìè.OññŒŸX“[M íÿ$k›¦CKP¹Ú†‚ºQû a-Ò~— Œ¥Q±Ïbn\ ¿Ö+¨Ž »<ºÇ#tïˆ6J‰XÉ2Û `þ2+²ÕíWªɰ!u•,ô’Rì‡u©@ø^ËýÛʤ†ŠCbÜBh VxT×W§£3åú·TbõšXAj cñB±Ö˜XÅLY<«hb)¬j•¼Lb N[¢Šµ~ÚU¬ÔåÕvDy¥§Ík¹ÄjŸ6/«ßÄ OñP^Éic­p™Áų³ØW üó‚VX § uñ¶¸2“ _¢m)_Šï]Ú̘X*U¨r_©zÛºÚaÅj܈ dí—lcŠ¿!Öt…æYHÚÆ„zþÆÆÈÊŒvˆ}+Ð~‹ä{ücå¼»¡¿W}¸6Úøá0-¨ô¹&Áõ¹ný7+üãÇžîšo oûCvǪó¬÷|ȉv}8“>W»þ7Býç«úûèøô!}´Íòq0œêß{”ùÎô»áo¾áàþÜ[À½Ü?€û'pï÷^p÷¯àî÷1pŸ÷ip÷€û<¸/‚û¸¯€û*¸¯û:¸o‚{Ü·Á}Ü÷À=îà÷ÈáóîÇà~îQp?÷3p?÷¸ÇÁýÜàž÷Kp¿÷kpS‡ß ®å7ð\Ëoá/¸–ßÁ_p-OÁ_p-¿‡¿àZþþ‚kùü×òôá÷ƒ{Ü’?>œw;¸GÁ-ùO€ÁÝîQpKþ0¸ÛÁ= nÉ3ƒ»Ü]à‚{ Üü?>¼\¸¸›ÁÝî ¸§ÀÍÿ/×®î&p·»Üp÷ƒ;îIpÏ€›wøðáEàâàVk·\Üuàn·Ü­àFÁí7n?¸qp÷›÷ ¸IpÐ¥‡¡ËC“ãø_w=¸pEp×€—çƒóÀí÷Jp[À]n¸6p­à`ž^w ¸UàV‚[îpËÁ-×Ô×ÅÁ .îeà–€[Œ:Ñ"‘g`6?s8XøÏœî4p ÁÁ‚}æÅà€{¸ùhÜ©à^®Ü)€ À8þ‚;püw`üwàDø î`›UàœÁ€Ãä*pŽD¶ƒ[îÐq‘Èmඃ[îàÛÀm·Ü!8Þn;¸Eà 0¸4¸vpqpóÀ=9+¹Üàn—×.n¸'aÜîp7+€K‚ë×n9¸%àæƒ› î)£G€»Ü]ànw3®]pÃàràðž¥ÜVÄà𞥠 I†!‚æ& »#„#rGbýŽ7«Ä;ƒ›ýÝœÿawÜÿqwü_Ýÿiw¸ä‡k×¥²Ý2SøñòÕð#Qè–îæ G%®tÔ4”A•òHç½l‘³ÀỾp°mD.[Jï–ñ>ñâ5ØŽ";Áí÷7àÞ îÝà>îp€û¸?c9€ÌÎw9¸Ü­à>îWà\hÄàÞî ¸E‚Ç¿n 4î-àfrx=¸hè‡Á] =: î‹ÐØÏBc' ±‡¡±íÐÐOÃ>Ô =ú+Ø«Žƒ†vACÁžö~Øã>q&´úýpÛÒHä°W~êâHäc°¶Â~ͦHäš+#‘s{"‘oÀÜ[€ü_¡Ÿ{ñ‚èøw íW ppã÷ <à=“ž pÍ#í°û Ÿ^ áß7ðÀ£‡ ü(À >ðØ ü À¹ø ¦ÿ¹ï¸ãq¼÷w¾ à¦ßøŒÿ„Gžüß ðž§ |ÀS?1ð€ÇjষèiäS7ýÂÀi¬Ï“Õõ±^¯¯¡ÿË~!×_/&®Ÿÿ¢×Rp‰¥ƒëÅÔÁõhëÃÅÞÁõlðàúëW_òò …üÏýB椲+.jj^³¶¥uÝ¥ëÛ.{Eû†—oîìÚrÅÖW^µMì1°9†Ü5yÕ¥ødšß%à^nl@ ÁŠ®ª! NUÝœ‡+¼Ij|%T¹º c‹âœsÍŒ8³fÛ×xCÓû;¾ÜóóÜÜ×Õ¿í²ÙùÑ›>ÿ‘¾ñ£_ÿfé©5³‚e›ß½ùæ5È·÷¢wÔ¾þÕ¿ê}Ÿýöm_<ü»þ¤wÉÚåîìcæÿ,ù•Âí-oèºúý¯¸;ö†Þù«Ÿ~ó÷w|éÍßé¼ ÿ²,h<î{»þ£ÿWܵnÛ'¯ýàÂ[V¼é‘?ü×Ïßý½_¹wýO·¾qðƒÃMs½ÚY±—®¸ÿ«¿|è-ÿÛ×ÿmêó©ß_uð²O^ûW_sZ‡sÞÊSÏþó}íszÏ#ïÚú÷æ´ ý¦ëmÿÒöÅñcWõÌk^tç/ßúç'¿þõ‡ÏþȉŸ|sÛ»oyÍ'2ßyÕS_xɲÄåÑÜÉÿ|øž_?üÈ3ß<ýs+ÿí•ÿ<üÖßö¡×ýûGŸø—y4|~ão²?ÚSó/‘/4þÄÝqVÓºÜ@ϧ^ë;þô¾ï|õ}ûµ?yÕï>:kï©¿[ü­e篙¿ywïù_Üýµ÷ï{çß¾!óûM?ç¤/ýxù—ŒÎÝìþÂ¥É%]sZ~ðÁÿüä?¾iÿ-Ý?ÍÎøÊªï}ûe¿½àmÇ-¸²×®­[~EûCC_=ùç>~ß?>þ·÷©¨e«¿þ¸áºÁñÚÍý›ï‹]ÿµí?xùÑ?ýñï|×g>üOŸ)^ÖuÕ…W/¸ö7ÎÄi?ûí+>å—é‡7|ý_?û÷yìÝ_}óË®;>ÜÞÚþÞU¯O.úü¼—üú’Ã;¾yÝ#ïú·Oî¡·>ýÏ/Î\ðš- ¯zGâc—ªlÆß Ÿlo \0·µ›×âkÍ}ù ÿ¸ðÞ¡ãßúÔÕ¹óßß÷øûÞ™|ϲpòíûDÿÎä}ë–sÚ?qÂg¯ûèkŽoØÿó·ñ¹½ÉšOžñ[wìêõ×|êw?l¾ç†ë~ÿ´'}xèò»>õ•7|ûõWÜš~áø¾ÉkÿØûç'¿êÿݦíÇÌ(}\_ßêSþó÷'Í}ó}næâWÕ¤ÚmîùNþš÷>ð豫.=8û~ÃIßÚy·óþÿÜw÷ùé[?¶æ»_ýÌšþxàŽŸ¤\VÜþHë7Oúî¡W®~àÃw4>ô²•‘^¾çòïÝ·À›øÜÝOÝuæKïýøÿøÎOó”÷vÿ{öϊͽqN÷Çš÷å%ŸøÑ7]—=÷íƒ[?|†÷ùÕ ýŸØÛ|h×q×üà˜î·n=»æ;¿þÛ7|ôš—Üý‰ãÞÿèçþù¼ƒû{ïW^þÇÈ)oÙwÂ?ÔÞzò>sÒÕ¯mX=4÷–tòmÇlïûÙS—ïÜÙë¥=Øè¿ac¤÷·¿|çqéW¿ÿ˜Ó?ÿÔÜ¿¹òÞS~ÿ凯üŽÇ?yê/ößó÷×Ýø©g9ãáÞ¶†ï¿èw×}û&¿ýàŸ¶zÛðËï^Yˆxß?s°ùý\ö½w>¸zèÞnÿÓSßýöÕ§Ö>óPfùº>2±¿çûAÃì–ŸžqìyÝíο~õº“^uÍœŽmžUWSsâ=otç}õ¬»¯üø²î û?õÏzß8ù?|Õ­_}¨~ñ­cwíûÞW^¼úã¯|ÝIw%.ÞþÙO~$ýéq÷õûù‰îŸæýøÇþÓ·>Z¸èÒïüâßvëÝ/zÙf¿~Á¡àÔû~rÃÅÉ›/¹zè¤}W]}í‰ß<ùÑw>áuwFœ¾çøë[ÞqÊÔ·Þ7÷Mƒ@“ü׎Kí¸²÷_ð÷\sAzáÏÛ™ÙuúÁÿš<çÛ{յ߯¹ÿ²‡²|êüõ=oY{Ï'_ü·Œõ<ö¾ï~÷5ïxà_îýƒ+6ÿö‘M¿øÌWøÀÃÇÝýòW\ð±õß?ç¤ÛOwþí?.;ö‚žkg7ñ×=lyd`߯ߒY:rOjÝM÷¾vÚëûŒ~+{Ö?ÜüÎÝóî?öÒ?󩳟û²9[î¹øÓ_ŠøÙ½ýª»Î™}õÇ·ðð÷¾°ô›wÿý{ŠŸqç·}!ù®—ý¶ïÉÛÞwuÑyÇЬwÂm/¿àä'Þ0p|þ…WFæüÍeŸ{çük÷ÿøÎs>úê§bÞ»Þò­·ŸtÏw~úÉ_ºîÌG~pâÁo}ûk~|ð7OüáÁÌë¿ÿ’¯/¸çuÛ^ö©ÿøÑî±ìîK?Yû³«æÞ˜»ú”Ãÿ~ñqýÛO<æ‡ßã¿5ugïÓß>¼ÓkýfzÁðÑ_}ë¤ïu½~öÆ/|üØ‹¼— |ð z&6\šjûÁîÌ%—]ýÀ‡®úîCý'>Ò4uñƒvÞyàC_zÏg~øÚo~ìÒÇßݸ跟ýìß}áÓÿÞøŽw~à}w-™sÁħßqÜ÷¾^å»>7ðÐK×ö|ÿeÞ½³NÜqó9Ù³/¼çÄ»þå-ó¾xú#s®zó¯g5ô.óº! a‘ ‹Ýõþ°—ôûRCd½Ù–é!Äj°œzâó¦ úí¸‹!ÿtª$V¿8ñ–õRyàPHJ´BƒU+%rJ¾”Gzôhí)› )DÌÉÔ¾Ùs9ôÌ»éìn’ÈüúÒçÙ•k^̘º5]ö¿ò‡mPü+Å—RüûŒ:]•ί§üûæ²|Mg(ãLýî5¹† É]² :x Ë>áúº&';ô5ÅlÁ/x½ÁêF4ÏPð‡ «—Æa®¢¥ÖÕj58®Pž‘~Ã)y²!^¬qŠ¥ëod(0ÎO?¸’PÁ‡Â@¤Y\GDO¥ÒJ³ ^Ì9AÎëC‰ZuåÌ)R(mse8OÌòÝζ·gÜØÚÍ綯«§œÞ,ÊPs*µn¿®””‡r¥è)UîÇíຬþl‡¿¹?Š\Ö—j£-×üIÞ ¼ß‘óé—k£q€÷üÃ/xì0ÃÛ^pÓ¬Yl×àùwÏðú¯ÕFç!<—áýÏ. zu8üI€{ŽaøÈïÀMÇ2|Àn<Žáƒßð¸Àó¾R½ÓŸ0‹ì £6zÓŸÈð¾o”ßñ¯ÅHßj1Ð1TÅ#n첈둸ÛÓCùüÀžkŸH$êê䡾CІ8y(•ÄÅtuu ‡g?ù± —ÈÀ‰øLãœÍè×ÓV×5'Ö@(Uê¨gz’ÂmæÅªE¯ÁX÷¾ý3RØ~jÇ¥…ŒñEîVQŒwA>ÐgèqƒVèz§tÞ+9aÔiÙ©`´¾·s7~ˆ™cVëä¬ÅÛ|¤²YúÆ6¥. °«`p¼Ò`¾?§Ç˜oœ43îôGvgóÉê ´Z·Å/|oKKXÚøûÒ¬p…&’Ô-N2ÖøÌOl.ª7™0X†ÊzõÚ‚”G¿''µ]y?ííà.Kœ— #ð€·Í›ioñå)^08zx%Ép)"#v6µÒ=ûlic Å²#ªŠÆè?³Ù´:¥?3üX÷z,•ðq–ÒÝ™bä­Ê­>ûEêÛŸJ£uF£t=/ºÀ•$¦–¬óÓzSòæz:y11VBœøžÅ½t×a¤zzÀ™/úô²Â±i7.Û’ùñl16L§2…%tŽ®Y( ’òg!~:кã=óˆÇm0c6„ÿ°Dã ‘€bF@„z—¥WÒnêb·Ñ]µÚM¹«Üeç_À9£8¶ÎºLPÒ*bKXnûˆ‹Zí6/mì‡Ø7”‹ ÇÝ‘z±ñŒ²Šæ=—?Àº“Rýîð*@M¬<€Õ«Gâ²Ê%øÆD}Y?ßç›,cÃ@èŒ,-e„‚q¢¥_Ù'µbªZ#[|Ç!MlC(^KÃc>Ð˜å‹øÚÚcÛ$i–‡N€ù fõ+mRRKÕ”9„¨µ<¥hE= Ó’T½o¶ceq­ ŽZ†ïO{„*“°Ùu#ƒÊ„I㤞—‹ñI®5k¶!ŒyJ×£ý8[v¦ÇhYÛHe½CÒcž±,rVwáû}Å‚y2…pIf€Äcõü°BëË$Ü}¸óÅL 2ócí!T·<€º±1¶[‹eÖaul‘ƒÛçéVÔ±”s8ÔÑg²{ŽSæQ½©#a:¬e8YÆê©=ö»ž/dMŽq"<òÙt ‘ Ì@ßB0Ó„D‘–¢¼ì•ô¢¯ÕŒk¸8´KŠ Ç++º&ì¬$"@ zó-ò’#+%q”8ã~OîHW\Œ%Ö.ãI ⡜’YÓÂÒjÅQm­RPÂruPßÃÚØËéT_ i0-æNK!™ÊǶñ”Û¡Q=!qÖ>cÖ9êAÉ z@’¬o˜PÊäS´|cü¤¿žé-rçÈU;£1ƒ·8KyZµÅÓ^H”Bª°óè!ZéjEJZ>QÉÅ}Y›ã\„ÄÊË”³€„}󼓚ØHª™hÊ4ð»þp« òD`*dUC¾›Ôsž ™!LåÕÍXeÖÇn§ÆÂÀqÜM´ð4x. ¿ˆ•¡±á†á³FêϤqGÍž#ì_Hyöˆ{&vW¯v‡iž‚aü¶M2¶©SF˜’lÅ¿J`Rp¢žúttÀÆèÃ4sá…) ÄÞ{Kô´f5ØÃ!¥–6¥g‹F´Âø‚%UñFÝ"CM,CP¥Y*Ž;"¦K»U64+µª­ŸOS* ö(1í(eØOQkö7à_~i)ؼr¯ËÃO,M6 Ó7¨A1W°«Ã-·IoQTóS8!«¶Ð©ÐB"ÈŽª‰hŸçvLái¢D M§Ký‚6ÊbÞ+ÉrÎàbWe+ n¤ŽHLTFyølÀs81"Ç?Oc,„™ú²æ=q´¾`S²èquHÕÆÅD˜eéˆWÍ¢O~1¤$ˆt¿*43/´X­ Y¢F.„ðpnFUY"2èeý{D‡‘Ay¾ª›«_Ë2âf=·1⺢ФR{G´z”JãZOs¥mªcÝCA¢>’JÚ'¥R‚•N¤.«0’bWÚ pܔ⤤˜:’ûÔÍtå%ø(ÁËølòM[’’Ol} ±^ªPXýP”<‰‡ºêÙr5D.ˆ J1'M‹` Ñ£+ÛÌ'±Ì–kÑÓjg5zX˜¸À“¼~¬ÎL²8ÕÙ˱yº¬XPÏkT+ëbë,ÖJf?î;öy,dx6cr¦:–“ü}Y˜—A.KÏAHJCÈü‹i7š‰‡-RBÒ´éP* òA^íкc…·iG¥ ´9> °Ø½yŸ_õ$©;Õ){£;!Fˆî|Ü(é©vå>S'þ Â|Wš)4ÿXu‘9>¸‚â‚´å¸Ëééìå®vwÕ)ûÃITƒ[ºÎ1;c™*u5d BD™ª@@ ƒÓ­T2^2h)17K ×êî¬~S~}Ï pXígrN¡z¥Rb(&…„)ÜB>é2ŠßðnÊ⟕1,üi.§Ó¨—~tád4q ©L®XˆmËÁ.” oW­¡]‡è¦¼·»›püzÃ/¢ãRFé°«ÚÓÓFauuöµÞ•“–5|ck=nRdVŒ7„z‡ït¤¼ŒVIyã—+æsYîYTDšC,ZÌÙ;O:›ÝYÌ »ëTa…ÀO÷+…s–aÍ’ÂB¬DÄ0fäM? ª/ ؆Y]4Ǜ⛠ÔL.¦ýt8Ó íQB!k)•ÁvñË”P¹ƒ¨›€Hw·É°L ºNzƒlXjfžA lÆ*¥ôÄɘI;°`¾Ì´šKQÀê™ߣ®¦Jdóì³}…ðÄx+›OÆúªÓX:!óijÁv×`ø‚yÔzÍewÓa(škw„®(tã­F—PâgŸ*f8â`Þ·ûÇ GaÜz÷,÷ZFòr*¤NÕZ ܘŸœØ/Í&n|YŶ/_ˆï N_?fs(õ¥ô—µˆîÑŒGÀàrä´Ó'.1w¯®×«|€©s–â?Ëh~AhÃÒ»T/7vf}è`Ô(¬føHVV«e¿ˆhMŒ!8Ù®³5s–[ÕiŒ³¢"÷¼²µâý0?CG§Chv,y&Iµ ²aø…ëAú Ù2ƒˆ ÕËõ›_ž"fË í‘f>ã©ÕVR‚]’Izy,’Iõð©5+äÖ›.œ!Q.Gö™„+0?q¶nZçÆ¶dRÃ+ݵ…tCK\i—døªsxë[â3W¯Ý1]ܽtãz–¬J#æ)pïMë»Kn“QÔ/c…j è^_ˆf6ÂSÖ Ñî…åÈ¢ÊûÉ"ê òˆ>De4Ó.åYÖrûËp7Ý ?)|L°6Ž¸Ã •ü~ZpùÔÀ Þçg‘}B6±^aJ™ßÝ2ZÉáyÇmI{C½IÏE,±Ò>g$în“Éw—ÇÝówÔ-_ƒßÒs–ÕŸs^ý9ËëÏ9_N,Òv—úUØÀ|D'óIÕ•ºuN)]¯8ORu.YŽCÒt½`øê´ïØG#ûZÆ °Å˜ºRßL!³Q¦ŠpKtá“)Ü è/¢¢`¾`ÖáùËÛA… ÏËd3¨j¸ŒEby+MŸëh3 ¶ŽDÍD Z¥Õ#ÓOA=²ÅLRv$˜Š–Åâ©X¢ÇBßQc<‚0½B³…©W¼‡MÌCwí­¤»Ô4ŠíÅÞ ‡y•‹…ÎîйË.¡®»°?÷7/ˆÞn ¾…PûX@Sú €Ê­æ³ãNdµ:EÒùcõ:Ôæ‹oÌI*×å´„#@aFºMu]©PAµ-Q‘kB;XGíÒ˜22Ýݘw·¶;UŠYGlÜ^DI†­F"—RýÒ07u©SB=¬²¢¥l—QT^GÅÔ)© ðªÓâjà(²¡÷uG­°ÄÌnÈæpfÒ_<ƒWgZuEÊ\gÈM®~^ZìeLégûU?‹e¤@ñeÄáyZï°æ±þºµBýãZ7ß“[MkŽ»k˜Æ¬‹6úA˜@}E:‹8áØÍ¤­=ì·†ü  w } >C¦Õ´ØZŠR­·¸ùk¥dÕ"n€Õó'9Z=vGX#$I¨m´7˜“ÅEÕ•ÙZÒb§¬Å%±U‹m¿ -¾6•Ãy¾ÔeVÚ2w²ÑxÅm£m;8>¨p¨ þÙQ‰ÅF\’³CZ‡Ì«Ûl¶AûŠ¥F”wKŠY"q£ç~ ¹ÂCV2>…/bxÏj£i€kˆ|ÝõÑ$Àïx+Àãµ ×>RíÀð5’þ;µÑõXßÓ~›î9}éI{z²6ºÃOçð­?ª6<érûöA}âGÎdxëÏj£1L¿ˆáÈk£.¦oy?¯Åþ8“áÈÏk£ó°?Ï—òW`{nú}môé¦Ñ)‰?÷±ÚèSïYÌùÏ}ú à±Å\ß­?pnÇËÇ÷‰KüEmôQ<ñ'v—p~5OÔFa~ü À=gIýž¸éé'k£÷¼7.åý²6zë›úþÆàÑFÎolª6zæ/píoj£·<Þ(ãðmXïñGk£7c~KYžqÏok£{1þy2ÞÐ_7b¸Ì¯I˜_{0½„ßñ¯xBú³ñ?Êå!×SéBZbUÆâÖÅÜbSœ|‡„£vÃÊz“øÊ‚¯{2©tæ}¶¦Ó©\²ôEnŠ’¾Ö4žm`•M]&r¿€KcÃeh5p»òhœKß©…:¬d›â.Q F¹#o½Ø®”J­àhžÐ°t‹†„¼áR¼uÂÇX ±q¦áœŠŸÊÈ%»±þ¦"%ýÏâ×qé¬è¸½àž}.Õ„‡~~å}°mAÔÖÞ±.\æ€÷ü©|í)‰÷'Ètô?LoûØ «Æ›Z7s› ¯=Ãe©oüË¿„æÁM,Ûßø(š‰ú„èFw­­ÏM4+*ɽóEej’Q"±e ‘qŠàìÖâYÈ}Ò§%•é0g"tvà«V°h”$rÅë´×qÎX ¨ « ò,\ æi®t®Ø DÙlœm×´iVtœÛc nôòpßOn†°N7Þ)û—Ì›ûaÞ¸¯±=œ®àIñ«ý/§Æ Ã_¥Ÿ¨ ž€L§žyîúþG_qdóFÕÿÉv3狀Âi›¶@›·Tϯ’~¥qˆ?9Mšçã÷رìP/=:Â40ä"N"2q:Ù3ÝÁê‰mŠká >\\‰ìt,Ä"Ã(&Ý` e­ÓX"Ò~å‚h ¸±6s´û}Å•fÞtì+ﯞ;Êý¦œ­ùÌÏÍŠv|ñß'Ã^çsëó¦ïΜ^¨¶qÛØÄ:)Æ”º³Çã7Z¨IB‚Óf“1Ã@pªÿNse°ÀÊÒ4"SL»MÇ$¬×ÍŠŽÃoUÿÑÃZÿ ¬ùG!ü§àÿóp›'> þŸ™ÍWsÖ(¸¦/CšÇ`7®ãqƒ_€Äßnï§`΃k7þIÈó Hnœû$Ä7ñ9H7Áu|þ‚kú ü½` ƒ¿Ÿ…¿àÆ Ì~ü¾Æ7ñ+>´Ü÷Ãõß{/”÷ð¬hlÖÂè3Ç,ŒNÿ!´ãß¡,ø;zâŒÓü æÍzÜÅðÞ¯Î"»%“P×ȯŽ|.uŒÍ×…:ã›1Ìß=sÅ‚èSW°ŸÒwrà»Äožøå®¨¬ú™…@W~íÈç+O6‹ï©„Py+ËWŠK^¿=P·Z)gêþp]ƾóáë%ôÃ7Áo‚ý&¡î¹ß¯×ïÓÇÂ8}ÓÄŸ ÿö@øÄ±†VèùV|qÿ‘ŽÙÔËÃðäË4ž×— lóL”ÂBEdl8ƒú ã –FÉùy¶UiBI<ø®”¯+Æ™!Ïp|ÄJyð¾"SЕÅx3å[šFº!cóIíö¨æg*gŠëçJK/²žÒ&ý³ÏÆ‚ÓÙ¥¥±q·kXÚèB ß ™q¨Ð­¡š¡KÃq¯ÉÊ2»¦Hš{³YÓ7º½´û"3tyY|hZlxoìÌ…!vF¨ÁŠdBcê«’b¥'ˆŠŒ‡®È3(¿ }m2ŒQ¿^ª`ë17Ìbýú7á¶”Ö@ &²ìä.–úcÙR('šö‡?TÎH·{p¾=æX>ßÎY½ àIsß pdãß°+ð½ßàáûD†Ÿø:€{^tÜÂè0À5OÉ~pàFs§îø6€1<ÂéÇ_í8'á÷Aøv€÷ ü4À] \ ñÛž¸àõO œ¸ ëó{†÷_~Z«åyXèqÃé ‡om}\ ɤÓqpzÈv~ €¯AðÅ _`¨‡¥9 ƒmÄ‘E³Þ_H–Çf«hòÜq-˦ô{|ŵ)˟ã[DòÀ꩘Úòõ3ä÷ z™T@êžÑæ+•€j`¹ÕeûÔSž¡zfûœhÄý'T?¯>Ÿ¿ÆÈÒȲÈy‘å‘ó#D.Œ¬ˆ\ñ"½‘> öýHdß) ¢·öÁ\<éØ¨Ò¹¸à=àÆ,¿a€Á[~]¯7aù-x¸IËÍÉ$ ¶wRÆàñöcÒGFÆi¢Z|ºõ¬=²¹LA³ÎŸ.Ñ$#ÓÊq1ﲨ‘V9W¯,ŸŠÃ´åv“®¨"¥ùTnÄ‘eÙœ-(I}NÆÒA¸Gõå\fõR¹˜å§VrÃH›ò ¨2vÿ¡åÒ²:H/›çuƒHÐVÉ<{(=‚)³²›KõíLóº{ºY?9ù]T¾¦ZÝÝr—¤ÓŽQ1í9C%BFèu1=Ú;ɽˆçâŠy £ýÈçfxàÀ¹3Ž%¾ïƒ'-${'{¢ ?0Ú3{1ÇŸ‚ø‹ú‘.ùA8Ú[Àño…ðùÞøb†ïx.À£’Ÿ{òÂèÓ>¤_Âpà)€'Nã}aÏIå8¢¯;ù.“^=hCÎkR´rû¨ýÞHåÉšÒs` Ò%l@|K/[ŸÜ!¨Ë… O&_Wàõ's={¢&<Ä¿h…¶mƒ<qlÏ<–Îç/åøc'Oûrõ[G`Ü&O>nÚ¸cKŽ Ûí¼ß7z¼k¦I¿·¦¼ž¡vVQƇz°›Ž°^Gú³‹ºë/PÿÈYÏoý×^R†ŸéHHjØv¾xS ×g²ýL\_ªzO›šÊï1ñ«±ü‰ß|ËïàŸƒk-¿ûÄo‘åw@ü\ËoLü–X~·‹_Ìò»Uüâ–ßMâ×hùÝ ~Ë-¿‚Ôy…å7(ñVEÂã^éG¥¼ü‰ˆ»¥EpßN¶fG/4ãlÅFäŸÈ*†Gr ô0/.öåwyy†­÷µü/ á¢,T&wÓ@ y½øè6ïû(IŸ}~:Ÿa–¸õ¾‹MÜkYó~/Åç’Aß–3ñ šÄâeáù8;6:UöÛ[_A¦{_8=Îé9ufz,÷æ™×„;`óY̹ÿŽÐ÷'Ïf»Sð» àÈ).ýÝ á¦ÖAàAñSs¾©P™§s³ÄÅo9Å`@Ò(š6ä ¨GÑö±)4dv€zކéQ”„ír’1me2²dÍ',B@e¯¹¨î9ûì¥W×Ë>‚%"•܆ÉcfG;fÍŽŽƒsgÏŽÖÌ™í9nv42¾ø7n \µ±h+ lðE3ÏÏÉΞÑDr%œs½k5üýã1ÑíM@¯œ2+úžOáüøÌ0ÌÓ s¢Oãß‹N £½àã¢!|ãñÑGáoä–㣓fnô üí8}nô~øÛ8÷„è½ðwÏ%'DÀßÜž¢û1ý«Oˆ®¯…óê<':†p‰cW;ÑQø;ÑãDo†¿SwÎŽÞGß8;zæÿåã£=§¡^áH´é¥ð÷²c€€ð¿‹DoxbÃ1ÑÂøûéHôþE¨O8Bûpó#ѧwg$: ùŒû¸è|X—9ØÓÒXþÅN4‰åŒ­…xïD{\€_ýþ=«¡=gC~þ1ÑŒ?gN´Ûõ̉ÑŸ:/ûÝIÑŽ½ÿ.‰Dï}â”hÏ9‘è¢ßœZ‰6NíˆDçÂߦ|$:á“Ãàí¼þøhûg×qQw˜×é"¹¿^$pÍpxm¯ÅS+æLOÓ…:¬Á¡Ôµ!ñA9ã©­%#1{~9ÇFjŸÝºP¿¡ýÏ%ý‘þ6‚ËA½ÁÍžÝÞYóöŠBãÒú7¼ñMžSÙÞ¾ŽË7÷¾NðGÄëxïl¦0ÍëPþñí¡=0æàj–qøm{Êñè†÷^¿ Jýù:î¿íwx|Ï7v!Ç_1ñÁM¼šÃg”÷w³¢ú.(E€¬÷N¢;Û6¡ ŠE”X ×Ï0}UÅÀï/¦í$$x‰HNç§X†"í‰V¥ >‰+¯E¶G³†á=ò‹ÙtÚð3p¨NËKe•£RÿeêoÎ.ý"Ž–ãÒÂñäGõHë;5ûªZC €È¾ZIûë§ta¼ì8[P£ Ù“$B«O·Lô )cx™îl±+ºŽ÷½¡Õ*0V_!4Á&¶P»øûû1R"‘p\¾ Y]–`À/PšÞ¢üèeGYa^·²´ì¢Á¡Õ%1ê9FlÚ±óëËKI¾¿3ÖXïšßKÝM¯ iâïL›g½NÄÜ=2WGo’]ï0°7ˆÙ2\»½ †/M•˜.ø%[nÜȲ ,œeV6@QŽ£Ç+Ñßå.M,»È]zÑEÛxÁ¹KÏw—._¹´qå² Ý«SCnëp0pº ÆêWê‰9Èü°§^ôÓíŒ ö¼¹ºý^=FÛ`¢uç²۔ķ”ÖKOyå –X%öRyÖz$ø¦ì<´L¸zÀâ°‰%¥2}ébRÉ»áMª)æJõiM9¥~.áDR¨Ö`\ò. ßLÀˆm“Ð £ dŠVNŠhÍRKÚŠÊc:1Ž+zé°À DÆ&ùQÚÀ/¨°@z.TqÕª^Ž6ø¨,R€ã-'ªÅº±%/Œ­Uß&o¯Z2úѼW~jCiA•ÒœPÖ‚EÕ#µP+µºÁ‹Ý¥+Qƒñ}/v—Ùºi—/È‚²Cñj"X6áYfÓ z};WÖºÕJ¨WùåÙ"}él@ai3Rºü 6é àüŸN&¸|4%;ÝíïÖïàÄJ2)®ÔÎL†À® H•ò†P¦yÕK&õ‹0ýòÁRc,™2oðB²Ø‡-”¢nåÓ­’ÌQV K°õ sÖtÇíL6¹èϱÛyÝp›ÞÏá‹’ë±÷sx;Àƒ ´à¾à$ÄŸøv€·<ñAN/À]×ìcøi€×cþûd_éÂhû|¨Ï‡9<¾h7oü‡o…p´k=õ¯ ?ðrß ñI>{I9{3ÓÃê<üØM•qX'ïíôŒ{‰w zÌ.]ÌñlºëàM†ß¹çŽgO/!¨éeåuG~çôÍŠ³Fk!|ë™ÏNýß8Þ5 wÏGÌx—Ö¿tœ dXÛ¬|RBÛ/#7Þƒƒð¸ßdÉõ|ä¹ÛcuÕÇ-&aÏǸi*ÇìKrÙ¤BÈ17˜µôñ«PÜ®!B>wAÛGïäþŒU¨;Œu Œg#¬±=0/Æ`^»ß…¸ƒ2GÑþ”²C-ù[ÉOýðûbpWEØþÞ-à¾ß{TªÜFpÛo]Ý ® \¸vpëÁµ€k· Ü pËÁ5‚‹ƒ‹[η\-¸ùàæ› î©[DwÜAp÷ßbpƱyùná46/ÿ¦[8›—ßuKe|‚÷kßåy½¼Bœ–T¿’§Vâ (­JH³"«¯IDÆÿÆáþÙѽ_ŸíøFx®v| εàz Ü=øß{^+-Û^Oî-f=UL u{ðl‹xâ¾o;æ7þ ùV¼š¯‡ËÜ aMgϼ–š˜¹/j¡Î=ß Ç«¿=%~óÀoô»G–¦Ÿ'c=[þ>õ ¢“ÎŽ¢-·1ø¾\ãC Âw:ÇùTßs~˜çÍc nÀ¨Ÿ?|ßnô/À÷ ¸¦2ƒïEà&1üäÍð ."á{áû†›‘)ø¾W€ø±w,ˆ¢<ÅÄ#\Þ8À8k~T}ã„ø^I½La0SxD®ƒ‘ÌdŠåXaþþà¿wŽ>›Ÿ=ÇÞañ+ürЯ£ ÖüœÇó¸éáòygδtáŒRÚÐÑa‰8ôˆÈÊŠX…[ É#û#¼”ªhÄ «wxÎhä@üñ7]³â-†Oáþ¡þøÓìèðfÍ»‡9NÇ3åøcïù&ÞØŸÃyõ,ç°½ç-Œ®¨²'þ˜:‚uŒék.\¼–;gaôFØÿkö nÿ~j6­7¤­1þª÷™·Fªíw\iÞM'¯„oöÌŸ3c0ÞØÆ›<Âx5/š9þlùŽØû,yïyåé;N*÷›<•ý*½çlš®+FW­°Þ%ÕY}§«ͳ¨ãüç§þ‘Sž{ýŸyïôõ­Põ{6õOZõÅþ?õèÛ`×ÿ±ê?õ<×ÿ&«þ“Pÿ¦çXÿƒï5ôP¥ú7\î×ó’g?î²êï¾äÙÍŸ½/ž}ñÌiÇJâÜm?Äk·Â÷Íদþ€ïÛ_tD-ïÃq€ï8ö}ç·Wà{ÿeAt?¸1o„ïëÀM¼¾çýä¯ÒW³áÉÑò}>4.£æyãÂp;Æ-øŽU ££«,ù3«4.£’fBþî‘¿®zîüT]Ø#ÆO וð÷iG6Îvûï…ö׈Ǧ¯9½ú¼?½r±ëN'ÿ—<÷~80Z¾oÞ5Z¾oÞ1jÞ÷*?ì'ô³åš«•ybûdåòhy§0ëð ¢ õ@¨Ï¤Ÿ–Ïd¶¾è®M%3©sàkc[›¹m¯"”N­ÉZ®—Éü@j§ªU¬AIV˜>àô«V¼ê$‚£KÀ ½‘)Ö+jÕÈI¿Ÿ\z@Of¼jíᕎ(×R*ôØ\$Á ÞÙtýJõÌ¡Dw÷°Ž¨8JoøJU~“Þ5*¬óÃö„2Ãèz|°ä8å§Tqwq[?¿©®Óñ‹ëi¬íõpƒ-‡ºèèðfé»±—/ŒŽG«ç±âåáµàž1'š;ƒãOÁ_|·üŸ™ÞmL4̉N‚kJ̉¶$½ {§?ÛI“Tí¤úÝ6n€ŠýÜb Œ´ïDø]RúÕÝ}ä ‡!t5ªž„d#õîªÕ«/q‡·ìÀGàõ £ëaÎNZãVJÄ ÎÌ׈3yÇÛÛÊ'g˜¹V¦Æ0í ôÀhÓÑŸ&>`ømÓ¤ßzÙ³9~„õ:ÒŸ]ÿ»þõïiþï«ÿmúGÖ<¿õ¿áz>Ó­ÿŸ|²xмõÆúË( ’$™¤?7v›ULÛÖ¢ÎǼvÔÒ„ZÉV&¤“…ÅUàh[TZÓ8Gw$å§“#޽—º1Ä“Z¢d^žÔ˜Òc¤ºZÚŒ…k•Åôû‹i‡¤óz-£ Ô ¢w¥k$­½Ûw ÂÞ¥ ,%`ËH$˜4¶çÍím†/6ÙöÜÎ+í £M—…óÀy³ç²#Ëñ“Û63~R:ÂFI*+ 0D‰­bÛRg\š òŸj?zü·½ÍðAj¦I¿uÓ ëúñé £íåý˜;Âzѹï3÷£ýäcÈÛé[ºŒE ?ŸÏÀi$@ƒdÁÈPoÍ2ÒÝ”^„,^KaJoløð£l¤0ÿÁA“#q—à8ÊuÔbQ‰Ö›Z7v1]¬LvpêeR®µ³s2ÉKÏ›. ´ádzeMâ¬\5y^Í¥—¤„‚K7vlÉû:®NÝÉwµAm<¡ õ.ÏhEŸÿì½ `Wµ8¾´@a 6¶4@hÇi¥fÓ.ÛÝd“l¾C6´Ò&m±€ÉfwC¶lv·»H*j|¢¢VŠJµjTTTÔ¨ýŸ{gîìÎ$Zõ½&³çܯsÏý:÷ë¶5'x&}ò*Uï$ûw°I¤Ý®°eSݲR‘óãIGôæ­àlØp•"bÖW¾÷øÐÖ/ž Å›Dú®tvHØ%ãë‰å9¥°MŒ¼*Ó—€F‘ö¨ÝÀÆ"ÄÆ ¿Ú'øT6gìÂëÄdžO®ÚLYåÈøÓ¬£Qm^›†ÛÓÙ푊sÒú³ð¬>fx#džÈcWm&ÍO¼¤—bТ¡p!ÆdÞ¤aëšTEX TDj¤Š$éz•¼|\EìB¾!XMúÁŒäÝA—­¨Ÿ]¿i¨ØPµL:Ï*ß ¶à‘MïÀÅ \n€QPåÖî¨s¤Çë2Y·#«½‰Aº0°šRQÙ›§)ch…Þ*,Èü^ßÄ6j·…IÆ.åt€ÓHýU&‹ö€ÁmÄK¬#Ù´“cÙÉ.h:,BȪKk>]¸Gš©×nªÈ=iQª åÒú²ÐXÔÝ#´{—[uk=.àjи¡"ÄS(_PE¶}D·#U^ƒ”Ø{â¦ùSq÷:é^ÎÁ°hPíév$Žï\ˆ;0PªØ·ÅQ¹P”:73¬fìÖŒëV­2:¨\7˜È 8ŸÎ¬—–Dq‰QÍ€8Û-¾è~K|¨' îdÕ/;É+në©å©!».µ3‘M§°¤m‘ª1[Ql*òƒèMEh£(¼!} kIÎAÐ÷v¸åOÚRRP·£Ù»þøÌÄoLç×[•Ú-…‘ÙÄuGª«çT\âÓj¹x_HqLjÁƒ³àv*&¯ñ ;#=n$¡5òBjVç°a¤È(ãìÈ,Ψ®Ì1ÍœÀ&×z“é]ŽiÜ S‡µ‰d“ÇÑÃÂ’O;êr#çN”·fSì CK£¨0Ô)×`НµñÙøê„Î7‡æ¬Üòr»TÆ^\ï¨)ÀÞJˆ%–º™UwE²8ÒÌœYD@e±»"v-Z9àëÅÅŽíq’m§õÃM¢/‹¾ØE4ûb‡P7“À{ÜgÁ…Ï Å‰˜C¬iK^It}*’Á=²l‚´ØÈ54²øƒñu$¶£Ü#UÜÓ¸#§_þT|0ï­ºa¶–Ë‹á8¯èáSbA¿±Ãþv4;éç`8zð‡GJ‡G¼|XŽW¨€$YIT°¤V=aÊt…|Yý&–Cã1æ‘D[ÒÎûá”;­ î. E}0cS›:ä|ï7Z·v¬áæÅC—n{âC¨ø]Ø û™˜Þ)k ä˜Utf™¨÷{nš¢³Ö¤/‚æÛÙ ›*J Åó~Ž1Ö¾–0¬.Ì ÓÂ4­*ÄH$Ë€$yaÚÖe¬¹¬RlI1G-ËOü»×Î_#ïÎ_tïÞéîŽñ¼Àߨ 湞éGÿí/´ûϼpzÿžлÇÝ¿9Œ)åYPïØÊ°Uå<–ù>ÂðZ'9Y´$Þ*ïq'Råna;· wZqßNFÕ¡¨Òl‚ULL{0HaGi+*טÌØ®+4 ´RÏwÁÌËüžíꜚ‚[ÿÂË^´d€‹ÂLt%b„±7N¿ÇÄÇqÃ4…ƒÄÇâÎø¼ª,Ó…¦›¡šóTÞ6y0쓇vyóšzªÅ‚ðއqq½/žEáÛ6ãû)qœù4%®b™öIó4tÏ0c‹_ýB¨%3k´ñÈ>ýž»â‘ØqN;8$&½½hN4ÑøÀŠ¢µÈ0à¯<ºÙj­‹zŸø>à§ös<û| à÷ ÿ“€_°ÝÿH©Þ'Òõn³üOþ”ˆ§MÁ?øÂÿ0à·€ß xt;¡ø?øVLÁ?ø3?ºÍ}ŽrvðI‚¼Gà×*øûïE<¼Ý ~ðíÂÿˆ‚O~ àÑí‚ß øNáÿßøÓ‚§?·k¹>™™§7~øG·áËð%€G·ý ~îŽR}ƒˆÿÑ. ¿üFÁ/üc7º-ë¶ð‹ßýãÀ‰0¸T‰xÚÿ~-àÑ-¯àO>/ðûüQÀoø þàC’NðèæXø}€÷ÝZß)èü°Àoüï|›ÀgXà7þ~‘n«ÂÏ €ß-ËWI·ðŸQü‡¿OÔÿqï|pèö¨‚_øÍ¿$jáÙGàÛüc€_&ðûü#€_,ðÇüqÀ¯”ñÇ”vø¹ß®àÝS¯Ì²ï%vöób¡SÎP–õñj­PñAÛ;0xJ­#¸j’Nj•Ô¹M¦²ÔÝýþ„P—ÒLôôkBã&Œ\=Cù¸0çLËê^Ú~3õ-⢌y† Ï UøÕ-I:t!ÖÁ¡ó\·éF¿Ô¹cæT$#ïŠ …”¶ÏŠ×žIažE³8Ype³ä>Ž»ý$Yú¦g‘h®ÙmLçQ¡§…¬ò!ç€[=ÉttŒzl|Fí?ª`ð‰ÆQÑ{$G`šil@É[¯;HH¥eÿÒ17¿©ï&Ÿ-V-#8,"­2±@IÇ F:hæÆ*o,‹Æñ˜i&Z3UÁÀKäHJ tB!²P`æ÷þÝ4Ÿ ‘{QWSàX<Í&20o½ZªP#þSJ,›ïŠgW%INÎ4¡€zqå=Ú²ü¬wÈ´i‡%5CðäÖ4k Âã-Ê´Õ²p¼2õ‡w¤!ô&¹á`ÖNB=t¦ AiXž-Úq#Nbm˜ÚÜd*ÄVºØkÅÅô æ¥óiª~£BµI>ñ‹+ª¬´,ÁV¦F Ì]q{l€¤ K¾¹FÝúƒ¤È‹vM HGV%1VìëE(F¡šß¬À?aSB¼Ã^‡ZFJ·˜Ê¡MÜÏg­T˜û$ДÄS‰9’}ÅA&Á 7 yeÞÂTuIiÒ”&ª¨bî³AÆY 4u\)}ˆ¨)E*¯pVÔµà®&ê±CW bÔÇçØoêãjv —2ÛW´ÆÝ&”h^ïaå-yÑÒîHÅÒÑ^_€­%™—7E¹T%‡QmO›ÓEטÂy”TèÊññfuÄa f¬‰ÕGSÌÏPs,i;Ü«Ø@îã ‡FO0[~³¶öÔ®Ù§íe«Û4…ñ Š—@Ò$;kùtWK Æ !Xs‚² PŸ•MÉZ³e5¸kd¼¾hû.ÊýÆjý¢ý1¡[RTÄkªzÛ®Û‰ ”öíj΢Ç\*£çÿº^19öXù¸1Ö’%V \àãñÊ<§.*{C/ð¾/’ÉU(mâ[ƒ>UFt`B£•u§ÂOñÑrÂ'áG ¨]ZÖlåe­w K}”mõMŒ¡ÈƒxŒ53’Vl"j¼"v…¡³ådwmV1o¯u‚Ò';XèJ2øÓ[QA"DÖ›pÙí—Àœu CÇÐÈØvfÔgH–³ðº®TâÕîéúÚŸÃ 6TÄÅJcÁB=6-ƒ£ž¯’·òÚÜdë |ˆáñëaîÇîY®¯]ó•׉óº;XWÉÙ}bëý*k})Ö ÖýZq ๟€y߇…ÿë›pIz¹~æ¤ÿq/-ÃzßºßÆk…c£^³‘þȽ¬WlâU »—õš•ìç›s³Ó7uÄ~çi à wŠnð°Ý.¾#Î:¡P—f÷;Ä]6¡Ks/ø¸­.áðÁt‘žváË‘l¡na‹h:MJ~ÂŒ½RÙ4mÔ)1º‹2ŠÎ <[î3Êw•c­)”ÛÔ‡I›=>MêUÄÑL†÷|Dl”˜\Š’Î~º¾‘`U·æFBµ¨ì½–j2[œ4¢ÉÈLk÷$¢iÅA±Q£U&£¼§\ö”9ôÓÃ&<á…¿ëìþ°е€Lw’ùH*NëB"ÿ8ØÉ”Lss’Õ¶¹†ÏF<Ã@н¡ð8ìŸ5 M'Upé8+Íĉk4CJ24rš´ßA´Kº‘V»æC¡¨üŽHR \ßÄÑ“GMêDŽA÷OÃ~\žJ]³©:Oò?‡û4Ù*ßš*×Ì56Œ$™KûD­ÂQ_”Ív¼üDÑYq¹œÊ4ó‚„0º€éeM¶IHý¿7•–Ôó´m(Ž5±|+ÕX ÿfáKHðU¡&ysMÆËà9ÊŒÈLkq ‡„Pbžl ×ÑÙ9ÐÖ÷ÎRjI&"¼BH ²ÂÑ^êù–÷8Œ8œ[|Õô÷­M}æó<ž©¼½ïj…ûÅöà ýZ+¸È;¯'L½“ϽÀw&{ Òn=Ú™øÖ6OŸø ðíø<}üëóô’oÞño¸órÜÚ¿9OÀ;þÍs;¿=þ5ÿ%+¬íܹrî5ð)HãÓö4J>3OŸ²Ê&óvoÿ̼býaŠ¿‘ÏØãÙ<4óz>³Èã²ñ⻾%ãÅw}çŽßõ=óÙbFSŸåqTµ4)pk܉ÏZ¶‰äsì³–m"ùù¬e›hºçÐgQ?–=¿£€ýðü{~?à&~õÿ‡ÓóF-×ÓÒ™÷£³?®ÚÆ'0 íð'Îñ„Ÿ e»ûüïuGåÉðÜBYR¿©-6ÇÓáE=>¹§ÁŸ6˜°¦]él2æ÷û7’-‰‚?92J‡þü™¡FØ‚èâèç Î?o¹Þ¿÷‰ßûÿñìQðê3ø<ÎÛ²Ï[õé"á¶øóV}’ý¼cnÃ}ÎnCŸû7[ö¯Üú*|¦ ìÈï mþÎâÿ$àÚÊçMªtŠúµën¸ã¦®ŽÎÕÆ*£=‹SnêrÀÕœ AP-!fͦ Ö­é\}ÆufHáÏÆ(>Bi»c£S@•ÃxòºØ™£Z¿èÞ¸fE¹¥ÌSÞ§“~7Ýp3¤iù”Qò$ ‹2°ªcõëVoØ¡:›2Ãö¨_–h6bÅ)£é‹÷[ÑlX·úc¯‘ŒGh·5ÃG¯±W…eˆ,,QÞ©0*¸În7ë•XRòÖ´›f_§DÍÇú™ïËÆs}édÌkþ øŒ-&€ªäïÊmö*,o®šé˜>q+¤C(Ô²âEá©UCt9ÍÞÈ·Ûèa=*UÎDU˜—“ÕXGªD¾1:±™gsÞk¡sæÖ§—ܵL«¶öøR(Yê«S©!áKÜ 0ãG¥°g?‹fjYÞ€é’I`ü" si ŒáÛ”;ÚEg#ÑÖ-zÁÜ6ƒA79•“ ”X…ÙA:›º#óìr¼ Ò åæÉu#:¥ÅuÍ;ðÎÙ,ú~eЀÆ2«áÂ6NH+(NãƒË¸ Œdºx,0²‰í}xè`—_Ë©qÖúâæ¶Ýîç&'?¹ÂÊÏq¹·0­¨¹˜_Ô†0CJ=RìÅÈ D7Lg¨DÕž q¬åJã1× ìÍfVј¡9B¬ŽPkC_B{¾óY_%È1>€Û< °pFÀã/x`²U½w¹¾`ÏBv?ör¾Xª Ù½äËõSw ÷Q€'ñ-ƒð'Ðÿ"þþåúQ„5¿àøï~ýÇŠõ-v+¶#ïö¨òjÛ1K_Åð%ÓˉEt8è›ìVâÀµ_Ô³0)pGž›kÒ™!naÞh…QWÁŸj)øw¤{óxP߸G~>EOænÇ09²‹—ÝI—k‹b 7Äq›ÓM÷Ï.P°®®“kÒÙLZÞ®€ÞmcD¬LaX¼ºl¬'½Ixº*7ëȃ«0£ú£>/oEÉû§ĸÚBv ßg¬îÏåãÙXÄ…j*s|ѦñðëBxçz. ì¢Æ Þ­S¯-.#t=í‚?ã€ÇX±~^$RÅxÛ^ç¾Ó¿PÐtÅÄÔíuð‡®÷»Ä»Ï¿\C¨‹¢ ÷OóÌó\B”Î¥ïbÕ—Î+¸Äû¨ §\ðS.ñœqÁ?î‚÷ì+ÆkࢠÓÙ?d›Ã_!.W|/~,¼_ü(%~Ì7Ã>æ–êƒ þŒ þq¼çõÎø¹.øø‹Áe)P{ äãªmšþ8øÇ|=äÿQü1ü2p¹b»Ò[ü[üCß—ÿ.ƒÚ[=´êÇî+<¸‡Â­ƒý/nLuà Åé ¾Ñtµ¹à7¸àÛðXë;ðȧ˜Kê€_kÆk•Oà-.|pÁ‡ðëD›àöp¡‡Ûƒ_çÂo–QH.tOr¡ ~Ÿ ºøuñÐÈ#¸Ü¤Œ›ßê¶Ûß.ë9xŸKØý.øð7{XnÞ^ü¼øz õ;sá;ÆaK>åïc.ø)<–àiÿž·¹È.øøËHæâúrY¡üçàŸä?—øºà9àO“n`Ô9ÝžÎ:¹à[ðùeCürÐ%ÝC.øÃø[)~Ž‘xþvç°‹ðX•°k]¶9à7 ~®Pú©a$¹Ä»×ß!n×Û§éKd¼']Ò{Ä%½Iÿ§\ü?æâÿ´ þŒ¾CôjßèçÁw¸ôKx¤gÌÅÿüCøNp¹Þ;ὠާûYôwÈÙð;]ä_ü³EÞ.‡¼•Bžîx‹(«Ë!¶R’{.2ãØã÷^üý.øü~<¶¯]ütÀG\äB"¯Œ¾ÇeÞá‚?ä€Çx»à8à/$¹Žéêh>ЃoÔc­g„ºŒï.øµ.ø6<ÙÓtÀÇ D/¸ÆÅÜ}Æ„ :áÏI—t']ð:à·ƒKŸðA4¿×…f|BܮەyÕO¿T?]ð#øÛÀe‡Bפ ]:à“¢Þ¼ix3ðÞ oÞÛáM@Èœà3Ø˃¸OzÅû\ÊÙßæ€'ž9àób@É×—°9àwBˆ]JØÓ.aÏ8à!Ä6ð~™×„x.|ÃJø¤ƒ?ä`Æ¿B<¾ÏWÂr ?æ€×e¡?„÷…ðþ‡Ïcþ±çrÀ?B<ÞÁ»rû¥Þ’]ÛC.åî‚osÀ¿\^ï•¢y˜kP¿êàŸúU—øºà9àq]}/¤ù ˆñU›Ë€ #ð¾z·—ÂØt ü~ŒG/‡ïý0&½¾¯¦ÚÎ~<4—œGîèö*±Î‡£~ÉœëŠÏrÁ7:à‰¿.ø6—x6¸øïtÁovÁouÁw;àËÀ嵦Ïý3g œ5®e>è\Îy<óxêG]ð÷;à‘¾×Í’¾’9Ó·Äþ <Ò±ÒïsÀïóð¾ÊÏøªó 1—x»Ðó ~ÜÔ/ÛËF åi´§8ÏózÚ šG¿=¢- _ZÇ\ê¡žê¡ ~³ ~« ¾ÛsÀ¿Ác­3¼Ác_g(ù°3ýK\ðW8à7*óŸ4/2Ý<Ï©ÿ@ü|ñùÇótâ#¹×%ýa<Ƴ×%ž}.ñìwñ?ꀿ\‘WåzFûGœãítÀS9:àoSÊå¶‚r9èÿ!üa|™YAü >êÏbü¼=þ ŞDžô[¶ß>—ø’xš»øtÁ»Ðu9Õ?•&Z4ÓñvN® ~žøå‚_â€ÀÃëbS?Ç{g¥4¶Êù³Eß~:tIoÔÅÿAü!ü˜ þ° þˆþMk¯œù?GìƒÍ·¹ñžæûuÿ|ø?]Æ7<µsü~<Ùs‰ÿK<‡]ðGðX×–Cl¯ã­k_§´‹á9÷c{ð4rÁïsÀSÿæ€-„xÐÃëyègÙÇ]Æt¼ºö³òðf±Æ…eGãšK\›]ð[]ðÝx:¿àâ?逗ko㺞ï9âÒîðr‹ÿüëÀå­ ]Â;àUþb}yK»ÄuÄÿ ~Ü%ŸG]üwÀKþ¾Å¿ÝŸp‘Kð²ÏÅÆÏã û@?']â|Ä™(ü»ä“Îi.sÀ›Ž?໤”Ó×-×O}¿TŸøG¾ÏxÚüQ€/ü‘ï[þ÷~à ¿Oài×ßr}7ÀsŸQâyHàç¾Oñ_òúåz;Àó¿VెLÞðE€7goÃoX®/xÒ¯øßûF ÿ{¥úBÀO~OÉ×~Æk€?ù=‹žNÀ¼ð‡¿gÅ3 ø^ øÅ¿÷Æ_ ø=ßð̇§~Pñ¿öMËõn€/|§ÀãÊèÀ7\ø€Bçè›—ëË~:à+ñLþôÉRýRÀŸ:iáÃ.×'¾ ðG|ð‡^øüAÀïør¤ó¤•î)Àw\Št*øÖ·/E:OZå5øe/C:•øco:¿[ª/G:¿«ä ð—!ßUÊým@'À+Îï*åø=_ø¼‚oeü•€)ñ <0îü®EÏ’·3þ€oSðío¾Q‰gð+¾ ðË:=¸§ðÕ€?ýÆc/6øG~&àG©Wï\®x%à <épü>€¯ü^¿ÿÀr=ð³0_ß±êùÞw-×7\øV?öîåº`/Ò©Òƒk¿WþÌ·-üæƒËõI€¯Åúÿm‹Ÿ§r½½éÿ¶Bÿ{~€}€?øm¥½ ü*,/Åÿc€ß°ð»•ø7¿o¹øzÀoUü}û¾]Á{ÞÏø ö ¾Qà+V𻾠ð>ÿÀ‡¿RÁÏ=ÄøjÀ_¡ä«]àk¿D¡ ðŸ(Õk±ÜO0~¼}`|ëù ‹Ïû?Èü¬C>+øð‡_ø  ðGnüØ «¾õÁ\w?ÀXONXtza—¸ ë‰âÿ À7#ŸÿÝ0wZ 0j²+øñp~[‘o Þø(Ó¹ù£Ð¹Wào|‰‚73~ àçž°êó8à{¸T_ øGVð Sxö«Ç¬xF?ÆñÜøñ‡­òZ 2ÐA€oÂúö°Õßf>Îí¢ Ç‡­òZv„Û×zä›Ïž#ÏÍ€Vâ™8ÂñÜ‚ý¡Ïà'8ž €O*ñ<ú ¦óV䳂¿â“ÜŸ ܉xÈ,‹üLñ#¾šøÊç·Šï…â[)ÜŸ!`©d­€¥-‰¹ž'Ó·ýáRÓöÄ|ñc‘€+d|2ñ-î× XÞ–z¤>ˆ…Ò]|/ø‹|‰ø–ˆïÓÅ÷Rñ]&¾†ø^%¾W‹ïÓÄ÷ï³Ä·\|½2’^ñ½N|¥>ŒUâ+ïõ_/¾AñÅdÚ€OÏTàµs»‘pãÃ<Îâ³D|/ߥ’oŠÿà»W| ñ]&¾%ó8‰O™nÁÃ<ŽIØó0wø¬ß+dº ½ôs¼ã7p+ñ{îaü™oñx„Ï5âû,ñ-ß5J¸Óßâp‰ï£âûˆøžßßâqH†;.ðGá;OÐ7_|¯Sü‹ûC|| þ!þÈ·xœÁÇ/ù.â¹\|¥ýãgˆ¯r¯,øbðá{x¼ÁçRÊz'àJ_&à*Y’õRÀ—ˆoµ¬ß–ú¥Ž'C|k„¿Zñmß:ñ](ü…eÿ à2ñ½AÖ/ß €/ß›þf…¿fx\Á§I|›Åwµâoì[ÜOãs£ø¶‰ïzñ½E|o_€GÛ-xÀ#·Yð À÷[pàî ӂ7#¼Á‚7 =wXp+À%wYpýo¶`/Òw·>ý¸X_º\ÿ<—–êÿ°T?ïixOÁ{dc©~Þá}䇨»«T‡÷0¼£ðîû!-‡n*Õ÷ÂïðÝ ßÉ•êá†÷¦ð]¨ü¾Hù=_ù-Û¥ã½X¾ÙŸI§ð£ÔmNJ×ÉêQÉé])­«‹M vu™ºCP¶¢ÄÙij¾–tO.ôQ¿z*ÖÅé’zOŸ±%É÷ñíl/«û&ìäæÍ ôö&}B+=Ùø©Ð:øÆZ¯ÐŒ! cö)XdEø¨C/|£ž +„&júP÷Ó}q²RDJ"IÕ'*YL¤â20šOÊù1 Öî$ü’)¡eQ(f4Êýå ¤Û@¥47Ð#‚àíT-‰îˆlâP ë£1=PœÒ¸ðXž3ºº0õ®.Ì’éHgÅ;RC¡´ i´@`š?#åž65 ªúoµØ*гO–ÖUuÒtéXn0=x{95$Ça¼0ÛÙžˆJ}¨–A½`NŽRe2ПŠüM }§"ΨԈ½Å)ã¤0f[ñ-s'¿¬¥+'þ÷È æ”¤FWwmÜ ›\¤¾ éIÅw©Å¢2ÜÔi†*ýÍj»6-¬ª¢¥„D^V3vÏ7«Ñ¬CW_\ê$èIC;Œ¤$#TÍÉܤ `7úŠ¡}F<™‹7’ÆemSJQ¹/4BÓíìHÌ´`!üÊ~0½w ‘waôŠ•ÕŒ¶l ³Yå9=¬GU½.°¥äÃ2S@Š®{†dø>*²(À*Ø(èª\¤7žbm½¦=gÃäúô9$•E¦Ö$© ©ÏTVíAýôdõ«0¿·3zúìžOò1¦^ÄãѱcËõÍY¾Ï=ñÕåzÀí^öµåz#ú™¸îSv2|ÜWܺý‡/×—Ü-àq€ç<,à±ÿZ®O=ñç¬ñpàÖ=|੬xXñÿÀc |àî¼?ˆáø~„_mÁÃgÜÇcÔûzð”¥ûµdl¾«îW| ¼ƒ¨|Jm›jdF½¯¦»ªWÔÐn׫Y6:ŠTBçӨɟ æ¡B(xSù–ìdúši˜ûo6wá¤|öª ø k¾0¸NŠ„E,¤”‹T›Ú 1ïÒò4ij'“w8¼¡"Ã!´=‚uzWaŒ–ó¥½ UŸ4Tê\"f5TöC– ¥Å¡Ü[²ÅP± ¶¬Óo›¯gFçë%oŸ¯Þ9_>0_o}Àï†÷ ¸Á;ï8¼ðNÁ;ú>ð÷þùºç|áõ|ÂÀÛo7¼ÃðN~àìô dÞé°ÂÐü[è1VônMì:ßfùßíð.û¦µN?&Ü_¤7÷.ëùðtNã¦>­„ø˜>£‡g—5ŸüÚÒ<þQ÷ð™oÓ餯¡¤€Ôט%]³}Tú)ô·þçùë›ûÏbú§Î2Þ™ž#«¡¿\méÕßžMdz†¼Òôt];âC8XpïBHÊ´Â+l C"š¼£¹¢žUÒC…A‘ò¨JV0X¹9ô/à×K€©pGíwÕêržžùøyðs̳N,×#Åüœ<1ûxÇ?6F}s*ý+³êÃØ‘ó ße0¢úp–ñΤ×|-ÚÓ2”I¦£Q£þ@2Ÿ@í³ù¸¥MÌžßß3âwë'Ï/¿ÞïÌ®/:ßG*H¢á6G 4ºHÓèg½YÓ³h‚f´ý‘q·£é̶ô—¿d—O Ùè»Îô«ü:óK?MûCçÞ®‘_éIý4ãP1Z h˜©~@é›}ƒÏH5U¢®¢f¡˜Z´3s–ýT†eÆÀ gZâS‹8[ Ê)–¼¥5¶L—  >Ø@ƒr4ÓI +L<VMÔ ©úYåsJ)‡ÌgίŸÙ{r¹>ñ™â~¦ä³gÑÏ|zæ~&–Mg ã^‚ÌK ´ç3ìl5½˜¬] ôÔïÄUöjƆeÔOfPw˜_[Æ~I˜4gh¤¦O”([”¶òaºU¾ŸPëÿøùñ}â{Ëõ±q‡ñò,âÿìÌ|ÏC»Ÿï¦—Â* ½q¨ðU¡oVGž²Xɱè*tkf*Àm(#¾$és3­Jal¢f«üWøøüùñ·íËõ‘Ïówâ,âýÜÌüMä’‰¨ÚÅl!³‚¾m0½€Ê âT¦Ì6æ4{.d³]6A͸h SI¥Ü¦É3¶ð$lвÐdÚ¼&ÈV 9So{ÌÇó¬ÜŽD†”Ä¡mç8Ûþ}VƒFZ4w%H[4E ZÍ#ëå†Ñ±áÙØú^ÍLŠìʤ‹‰œ}4ö“-³¾ô.6b¨XTÔ6¸âù]hžF©y¨Í8Gv¡³;rBq¹ÁL¯ ýŬ õnf•±QñQëÙ¡ßXrZÉϯž|d¹ÞþÅâz–9‹x3_˜¹ža©ôG2¦jkŸ9\pÕî3×-…íæüÒ2(Ydãid<'¢¼§‘ûŒ”ŽS%EÈt•ßûcÉ•™/¿K~ ãÕ—Æ«/Ï>Þ©/΢]KfûŒkeˉV¬òùÖÈûì‚LqSa /–ùL¦äT SÜ€5ê…¹E3!ÿ XÑ‘† ©l›"N˜µ\S ¼Bk½¼˜Î!°'ÊñrÉ}é,Ж×Ç=5®Þ›L¤Øxvà:«Y´¿ÔòÞ«”w÷±ó+ïáÉåúø±âòö|eöñyæòŽöÁÂ[XÔ„-jS6´hV~ç>»H*ÔX]üô²!Yp)1Ík80)þ,¨@Ô¾UYF-ŸAeœùêù•Oæ§Ð¿ê ÇœE¼c_™E{„º™óZöQ¬½.µþ ËŒ5γ(‰S¥¨Ýk®˜†[ äHRÍ4Éif­}ŽÓTL^ã¿fÑ¡akïê-`,$aú#=}M§rñèª=ÕÄtŽ%>RoŒý -½§y_‘!ÉM’ã·ñ·ñ7Їùxû7ÜóZ´nôËâ¹?­ƒNGá35‹²HÜ—ÈÔ¿•¬™[Jêà\Ìg;=›¥áBs…=öÄ*£äÔă¸:¥E7kF%-‰°‘‚&R»ô9eþ*te"›²o>ÈV§ÙFz±áž"©"Âdüt†—øŒƒ"uc„È´ Íl”(tcÀì$ãd´¦? sìiè– n: * *NíÕ§ŒOcç×^»O-×K¾YÜ^Û¿yòù7fn¯#Ï.>^ïñÊš°Å—Oóf·V͆Ý9¤&·ˆ­¹—eî‚âäé nœ)­Ø)¦x*†eÇkMj9,Súͱoç/ ò<öëö7 N‚Ÿ©o9Èí³ä¥÷­™ËáFQ7#Ð4Òé$›#ÆJÛ¯,…[+}š¶>Å«m²^ýoJô0ßJ]Ä?l‹GãuÁ »f>#$ÜÇÎå}*JSÊ \F‰ Ïöƒ›…cí@§Ù).O4ñ#È3x6ÍyJ§ :2ù*[|½F=]ÆgÜËF„(mofK` ào…¡ AÁm|pÄФ¸•!³¶™E3I¤<’sÿFkp”;¼ñŒ…fÎ!:L¡‰Åð4ýºŠMP–V” ‡©Çõä]“Ó:(;GçÅ2»7, ïÞ óCSfßJFÐÛµ˜ qÑ„$5^{VV âê[¥ÁlNäSÐ:“hÕçWJ7‰å®ñ¤¤€R‡Êv/.Pš}ÅO!—)%•7 è D§D2§Ù×h B¦DHhÛ|–È@³J%Žé÷ã0.e§-§î´©›lèß»³Bóx–@4òŸoh;YÜÏl£1ítd ±Z…מ0èüö}Ï}¿SÖ#þržû>SM%g×Ù<Ñ~\ Ù¤‰8fŽò+r ÍÙÖ»d~÷þÎ’ÏÝÂ_a~Kþß?gŸë°Øç=^É{½mïåï ¿«k{<¢W—w¨Âhljj6· m9ܲ¸ÈŸ‹ÇÀ‘¬Rd¥ì&¬6†¶1Mk–­•{Y¼£°Œ‘©ŠIú6øA,CÿêZºÁ8^*m@Ÿfwˆâ±(žÍ{qãgÐg($°ƒ$¡'Þ‹vÑÈ›IG&ñn!”8¯¬áœ÷§wò©JÁrÁ%!ôlÚ7°©à¸8ŒØâV"áE‹t”Ï£E©™’'¢bóŠÕ^ÑKã7Ùf;@¤”†X!2̘d~xä•$8·‹¢œæƒ [V.ùk×o4Ú7¬^³îZJÛšUÏ+¡õ4É&ùo¢1ˆbȱ+jqV, 6J(¯!¢stÀЋ‹›ý¥z÷¼‹ô6ø½ìËõ3ñR½uñE´×¸µªT7~9_Çû,€†ë¿à~î1€ pî£? í`üWìîýãrýÀÝ\Dîy€OUâ™ÿ‹øÀãWB'ÜÏÌíˆÓo<½\µÿ¿Í×éîÔiùíÇóõ±Éùzæ'óõQø=o7Ð7üSÀÁï eòçóu¬êÂ[|/ÅJY °œŒÝH&î“‹ÎÒÄÙ<¥‹|ŸÏýŽÚ ®·æ%@úØû²‘2<ü'à7¼­ó¬¾«hÝÜ'?äǸÝ&4þŽ;ðC}Æç^4k{~Æâ‹fÕ_Úò©ŽO‹ÜÃûïÙ+/ˆƒÎ‘Lï¹<‹Ï>Ÿ1%ŸÃÓðiìϳÌçb‡|Î’ÿ³} ÏS¯¾hÚó”¸9zŽ*ycuÆC•Ÿt<ßC•š áüUjÊ¡Jã\Uj¶cšÊ¡Jàç˜ï"=³ê"}t=Ìáo…²Ýx‘>‚曆ô©ê‹ô x5àÞaø=7ø=Ñþ›à o{3Ô x'àmmwxÇZήžŒo€>ªÊ £Öë ôSxo ï(µzíñŽÜ ﲿZu:PÁ~†Ñ­àüã±3î}ÑiÜÔgò6Ó9™Ã…:ýþ\ªgþTªïÿ#×ñîÂ8óÜ‹Ìóža¨ó»-Øû|ÇžgÁσð \øD¢éœwÐn0’Eón0-Þþx­“]Øl$–ˆ¤rX ¡ð#àÅ)ìÌ!!l>â6ço¡NÏœÂWz‡|ƹÄ1tý _»#Å›×H *ØTt.±=E²KO$ùA׆h9Ö1˜ÓQ”h<‘,¤qÔmôbÀœl¨âš@B\²éGsÀ4öBG’…–È­æ&ÊšCqˆ¢ X³Dô¤s}…û†`nÒ“N&¢j~O|0£zóbcLÚ#̤w±4‡ôôFzŠëÞ¦ÈÇ­)"m«b^eñxJg rzö$¡ßtàNc“ˆ¹·?oÈŠX`@êó¡aÅt–M2¦Í Æèçk û#CÂv7FüIçí‘! ë¢I(hèc 6` óë{A8¼vиκv8L²‡¼öÚ!Ã;XÄÄ!*CS™±TÁÃteª”(ÄO$pï+H§ó¦?‡f'›Ë´ ‘ËE¨U;Ýó£0>¬™H" ø <ÎÛOã’¨Uäß2ˋ烣}¼Ó4h4ýƵF¥ÿÚkyj=‚äß/‚!¨5 ¬Ã-±€¿kVí~˜±A‰NƈfÚI.„X½•×^›ÀÉT²Þ¢êœÈµÍYÎæ‰Qf\9æ„aÜ€ ÃNgt¢‘lvÈìf4á¥S¹~‡…Ì£ ÔN²qÜâ¡'™._¨Õ¤·G²‰|_?¢4,J§@h ×ÄõÓ§YƒNEà7äÇŠÐKAâ²ï‡`!S&×` €¿'­7Ï ŸB€ÀòÛ·Ažlˆê…ä ïÀMNxÆpÂ;Œ½÷^ÈãÜÉ¿-×÷Ü*à%/×÷Ü-àv€'ÿ㦀G> ð¨€Kþg¹>þÇÜpàI<þKö2¸ LO‚»ç?>îÇÀÝð€ÇnpàïËõ#w x/Àc¿H¸{ÊôƒHŸp?î£ö0ü(¸÷AzÃ/áç”éÝO¼”á@Ï~ðïy±÷Áýd+äOÄWòåú¸· úûÀÿV̯po÷N̯€óoÀü úFnC~ øÀ­ÈïI9£¬H¶Qïûb;NîŠ Ágg$‘”gåò.rµ~iÕ1 5ÓºØK‡r-£ªkpY ɛʰ‹¼3Ûg ý/ GÐèï`ˆú°Xµ¹åˆ‹}ÔšYT¿~ãvÚ\ˆÇø v>Ì©0ŒÑi-œGà†G’OÒYq@UÇÙAÊó“´›hÞÎâµÄX‡GÛ¥UµKbg9$³‡ÝðµÆwΚµIšKk½‘¬ßÃpÄÖ¬êÊ›ùâM/;åýbœ¬îX³~=½Á^0žÍù4ž»`ˆÞ Å(Ìоø ét¬J:ø õÔ ’ê圬׀¸"1è¾@’B d ž£ç¨­²íÈg`tîîŽÂ.^^^!9dy„ž~w©>¶ëñÔÜ2ýñ@;=Ï)÷Î+Ó§îpë|¨ço‡vñ†GçÏPïû3rÙѼىƱ`nïX]ž3n][ ¥#äv™w-’Üž=q.ƒY2—6ÖcÈTO Ʋ’^¤_èâÞ>£c &©«Û׸Ÿ²i"2”PÐ$& ×øƒ@®žgc"T0j¸kb>»wòa¹ÂX»»Û¶ãéø°ÚìÁQëþ¾¢;h‹Ïˆ¥£Û`úkj’ú£X Ý@–R KHƒ}¯ ¢±öÃPöï‹ÐIˆ!Yi楶뒋–šçcÚ?_\î£8ù`»Îü‰Ýq_ùÔeç¦Ù˼̹‘ÎÜÏÍ~_9¼Úá¬z¸[½O*ð2€[Zð€GØð”Ÿž_´à)€3 | àqžØó%÷vºÞOEÓ±¸w •À/6튣¯^¹o˜Œ§¶ã‘&>U«Po²q 1)YËú2s·ˆµÜ/b¥Õƒ¹$™Ok¹8î³òZ<Ö Þ~ìƒÙ"m¡ä`âÑ÷kÅ™h å˜L4_‚f$Ås¶–…tèD§C[óLÀ:"qºùMtRnÚ*7ï´òÄöT:/÷å0CJœ¼œ–tËû“¸Â‘÷Zøœ±+2.]­„EŠ­@ËÆ·'ryÜ!çÀ éhÎ/Ñ]b‹•.¤Q#À³¥”â¢Éz?„Åòaæ௜u—ÒZ 3º9|¹˜ç®Ç ¹q+êbÀå™5H!ÇmÇÂÒHÜùë-›¡°˜æé Kõ|YX\B3—‹! €‹E›¦Xpõ Sƒ<ÛKG!—´Öû;òÐ+ö߇¹MK €‚RR}˜LVÂÞ•ÅCgÓ…ejXcu©Þ¾åÅ6øÊß'Á¸þ-&./ÓÓ‹?‡4èÊ›mCŒî> âZ"‰ƒ× ‰Mqó^Žâ|…šn¯j´^Ý«¨Í&#tÙ–¡@XÈ&"¸Æ-UW&a –÷p[Å­¼««œ"¥=¹@/VÝS ú$¤òx,[ªQ_ªO=á=wÞm‡] ãß% ÷Üw·> á3Þðî»íp¼cö -à®Â§—ýž€ß'0}>o „áaø}ÓWàAx3Þ ¿`ú ¼Þ±æG+üUø1È߸€½·vÛáQ«&¼à¶n;¼ÞIO]¶T?u™ž„wJÀGá÷(„Wá‡àõ<é}~¯úUx¼­ÎÃïFpWá$¼ÃOçøÚáw[ÜŠi ÿü~üÙ¥6ø ¤QÀø]ñ«ðã—B¼”áIø} «ðIx‡< ¿÷À÷Ã;.àVø*€}ðv/ax1ü¦óø <^Ïå ?òtÛUjƒOÀ;*üÁïãà®Âx¾¡UÔ÷}è¾Åï…7°Œánø= áU¸Þa{á÷(?¾Þ)O•,Õ—aù*ðcðv z'à÷‚­¥6ø8¼cƒßpWáCˆ+í~ŸúUø~xÛœßSà®ÂIxGÜ¿O» oÀ0ÀïIpWáÂqOÿoçq~ÂjV‰«,ŒtØa$é$‡y=‡UÇó07Ì)§‘èÎ â¡Kv8<¤bB;˜ÏèmRÒ­G2iG©×ÛSa èÙR¹ÍAØ%Ö‹ð‘|>+ò‹?™ÏòœùŒQ$zðæ4ÌV/Ç1¶Üã~t/Ôרò»l–ü^áÌïÍåÀïYÆáö´Ï"üštf(‹Ç"Œ`]]õ*øSƒˆîLd·'R‰ˆÑžNåãÑ>˜öëaÚÈ#ŸóñH>®Ý‘JÐ*W~ÈgÜŒDwäz²Û}fpŸqGÇj:ó`܈Ë@üÆÚldB7gý>ãöx.ŸNù4›wvÚQýwšÔA(Ô‘ºj¤®#ŸˆöÑñû[åQ¨\´O[ƒzÛð@Äê~ZÞˆÀO”›6Æqí# TðZ…y°'e?sÂ"^õ¡ó$TãžÍñÙØ€¿šø¥–÷Á+—š÷C¦®b^­äïÈU³/;œ÷å¯,îsžŒ'éÄDZ…¿Ž•š¿Õ/>]ýë3ÐúHðx'/\ý®§òÍž Åψ¥ø$Ý«†—L$RiŸ‹ïô)˜íð‰ÚßÀæÀ8è¾P¿ÏèçO?$½3áóÿrlAU5])ü xáKQÃWÄ¿(d~•ñíé\bðú]‰T,½+W'Jȶ‹ybï Ñ,÷$w0Yô; }®,¦›0%ÔæÂ4Ìä”q‹Æ4”,¤Ùz‡s~â£SI°@«YÞ ð®…·Þ¼^xKà]ïi/È{ðž„wÞ#^®ÏŠï øn…o;¼ðà]ïxO—[õÿüî[U¦Ÿò—é¸Gäíì͹VpÃÜ÷ŠßçXz˜£½YþJ¶öôfã'Ù– `{Û+±ÉŒx(ôG+|.£·K¦Ñ%Sé5‹~qœjPÊ3éRD“‚w'Ä÷˜øŽ‹ïañ=$¾Äw¿øŽˆïžr{”Çr¸¾Lß°Ê¡‹.t‘¶ï–T|—PüÔl¤“1ø»,B&Þ“#VC¶${·Q-SÛAX~ý™–ßjZ°ñp>Ç.õu öŠGwYUÝöi¶Pò–96ìiE>§3s9ñrŸáªäE»?l¤†òÄ”·ƒ4I‘ S]©¦Ý!N™âìY®‡Ž…zM<ˆG†ˆÌN=B“ kݘ¦#‡À’þt.¯‰Î"º<)®Æ{{_¨„TÄKÒj–/áÓ)Õlz ¥¤4iŠ%‘"ÛG"‡¤ÄS;Ùtª_.>Ñe#¡­/µ3½;o—¥-u<­(SUO¥KÚ;Ù>NܾÁ ‰ßص陂Ľ&ºJ$λÒaiÔ¨ºjÓí¸~v;x÷wÑ_l›áÞë‹%²Ä~܇ï#ëjiíJg‰dð¼A]O‚<‹l"Ë2Ú‡W¥”¢´Å(r—Á M+q9qÙz¿§77”Š¢},—!°dÈ]¸=%SÆyϱá¢Lžï“˜ºÃv’¢»„ ¤@™Ñ^t•çq]³(ì.A|ŽŠÍÑsНśǸÑ•îí’ˆ l8‰ñ2j^©§F帟góe2š¶ã¯gƒaàÛVztiŸÎVð}ŠÀ:s†a/Ë÷%Šn ›“L½Ü/vJýð#Nsp"MÁšbÇý;$'P¿Ö˜¦@mm­íDˆ K–¿¼i4×} `Kb\A >ØâÏö+uûv¡Ãî…úa«0D·ŠC" ›¡°a´ iî*t0ñTجÿùò¢]` E m3ß…Q @é®Du|¢±'q&ЏBv&=¹¾x’®d ôGr;¼du ~ÈÁÒò¶ —‚" K ¤j¡þ$ß™H䨕â& ªˆAÄK¯<-.T„§ ¿G]èóõDÏŽP¢oð pšê†*9*¬œ‰N³õƒûëä¥Ðï¦[¥Áù¬ º×84!Zu§ØeûhkbºèÍNØ4È•èç•ú.,M/—fgÂÜc„º)«wd¯>s« …ÂF’*NDHíµbW+õc§àôøœW<C?I¥f#oðnñ°v’p‘Dq— D…LÔbjõRŠËšäD¿d£/®èÃO¥Ò‰2¾)iŒO ¥fjÚBHª:Ïà²CJ>PÇrF\àU³–ËDv¥vŠŒ#û¹ ¥A*é7ÊÑG9·V<¾®ÐŽ1Ôóˆî•B#]:uÞ¥ÀtÆ‹-,†)µçQ0îfrOÄìÕí5ÅHÄ<ž s)ÙÝšÃHy¶÷ ôâÔ@è%Ê$2 ?nÊàê%òõ¬TßìŠ-–bL—·vEDX¥B>x˜ã£R„áVn46a(„»" ëvM2n)Ö†à¿!#¢1˜Åph¹‹ç­lßpšŠ.·Yî|©'Æö{ÓÉdzôIý|;dŒ‘'âwÃ91`TÀñd$ƒŠµxzn‰%¦)G-!(LArÅú)©QqYFÕXha=*ï•‹%n§|h¶tIHFÈŒŠÐÑ/xò-{ì{DÄbì_>žëàOUúEŸ~š€±‰ —±ž4sb…¬Åø°¬5ï¤ó xëåÛ,ûóFåÜZÖN˜^ç’â‚&ŸQ¤Y 1N^5ñ€d“&ëÝâ3”“½‰AQ8÷„i‚tï€8ºÍ¶1xš¦4Ý£Ù‡5)Áž7"â”kL6#b|hày…ð!4¡¤‹{>¶ê,^¾?ƒ)zÍZdîx™L¶ÓÆ’K*­'f:~²áóíñDzP 7gW<è\¥i«ÑѺ»Ë¶SD<–ˆu(ƒÏí—Çp¥'JÇTQå‰\Z9Ål«/s9¼²NºŠ¹K_:Çêd V¾ãH¯qÿˆñWºI•Å(Üø‹äréh‚.¥ÃN!ßÛ$Z#ѼÐ(K«¢àc‡ju%“uƒ™$ä&Kë0LªîZJÌ+ðF§i—„ÛÙÚMÆÕDìÕr¯7”˜i[2%íšìê*Q¤B§áes”Òè˜è­ŒAfLŽXZ¿¡b¦Ñ$ oŒ:³ãIFRÑ>a,KT¥ÒbðÇŒìŠ(•Õ°xgG6^²I¡Ï!<'@Ü/ Pžã‰‹#~žåËd½Ðâq…«`~cMŠ ±ZI1—Ñ\*2^*åë;hE–ú"Í»úœARt–Œäú ïÕ×_]Ñ@zÑR±x69„Å bNU¥Ñ3])µÚŒþ¦Êy Å\…¤9+n1§û½)Ù‹zÈÊ{ã‘ Wç„ÔJÊ¡‡ ËÁ8Ó‡SeaB 4o©îy9ï –éÉò¥ú„€«Êô®ç¾‚á£oxôþ|O?T¦wl¼’á€7œyû?ðZ„1¼¬©Lox|ç«ËôÀS¯gxeM™îÃøÞÀp'À+nð À%èÿEâ|H L_ð°p?î¤_ÀËjËô3Ï‚øÞ(ÎûŒú$%|à)tß/Îã| àÑCœŸ> wàö7 ÿá2ý$Àc^PW¦O<ü pøÀÝ£â|U}™>Žîïç]Êô#þÝÿ‚Æ2} ýe÷0À|qy~xà ÞpæK|?†ÿ¸8ϲ¦LßðäûÅù!ˆoÉúR=óQ¼'7þAq>®¹LÆüˆá$Àƒø À€KÆÆóß%ç[ZÊt<ÿ<)à>€ûžˆó7w#=>pïÁ}Tøo-Ó7ƒ»ç0óã1€Û1ýÃì~Åjà×GKõÑÿdx3ÀmàÞz?ŸÏò@ýjEþ~ŒÃo¾¡L<%ü‚ÿÀãÂý ¸{±²Û2Kºfû¹²TŸú«ÕnÆPïãÜ pëß-¸ð 5A¿c”ê^øv?údø.i²ömç¡¿U\ ù(ùÇ›Ÿ'úÁs.%,´òyhgÁÈ¿áù íü»È‚O7B¿¤À§6,t½GÒºøXgù<ÑlÁÀu¼ àVŽðš™ø4»©L }ž›ƒÈOöò†í úYg¹Ø·É)Jˇ°ƒBíu–ÀÒ¡U© „Ra\Yö2Ër9ÞoÇ•<ô®iÞ„?î'}NqKÿ0’IŠMzô[¡ÆKsŒ\<š?¿èIõ†óW¸ò«0)G¶yän‚šrE˜Ä…:u4wÉœ²é¦âûƒ¬®üs#㦡 eXºhLV¸×‡ÜÌÑðFbÎù,(_·ÀçZ܃ ƒ£=‘”¹K"Jçöx†lˆ£*_eu-à­Í¿ÉÓ³ƒ[ùØj±Z!ìá°¾²¸yà7ÅašÃ;ñr1Fz&½n¸b2$·ýfšV”bE"mÀiƒuuFrÐþKQ´óÚè-ñ!¾,ªäÍ)ë˜ÄY$Âë´}rïçö"íýuSSQùeÝÁIžý¬No20¹Nr¬“·,t¦ ÜèþF÷B’'OÝòa/ȧÝÜÏE¸»TÙ°ôÛßÈzÉÆ7°ûc?zôÓ?z;Ìt2n/ÓÜÝÁð\€£ÿ ÷m*ÓG6ncøÀûÎla8éïEÿ[Þ0êÇoíã@Ì€Þ û:ÄüFÐz2¾}3ÃS~'ÀSw2|à o`¸Ò'=mm ïßè,MÜáÎ_·§õö…zûÝ õÖ[§›¹ÓÝ}☂8ŒÅ~ ¢X/§kXBú¾a ‘¤ö7¢m~T#˜N&¹c.Ò“°Y‘;G ¾”t[éµo[¨t-ÔÇ:—ì?°Ír/ÔkÝv‡ÅCã9 éœï„¨ƒÃÓËÃÑ…¤'aüæ…3êµvª§J=-¬—…õp¦zWXÏ ëUa=r¢ñɬ7çú@ov_;ÝjÀûM;·VVàcc¹ÃA‰™¹¯2@”A½ä=Ù£êU©{âdM‘+h¢¸Ÿ²¦$mE€3’î5Ú´ã$‘ìH¥w¥LÛ¼FRC$*ƒ œcU¤âYq¥àC¹Ô…ЍˆoAûi÷_c[Êô‡ êÞͰw[™~àV·n™^Ï®y¤?…4¹þœØ()¨%”Ù¦lÚ^#ÉH¶Ÿ‚F#8¹zÃí·¼;‡Ý¿¹ýIÇݶÐ}¼i°M3«2Zª*ng[9kj݇ÛEA¨{¸ ’Åah{JØ7f³à;g#Ì©¢d¥]Žp#ƒ8xI†ôÌ*UIª‹Íª7bÄ麂žL­«2WN%—ÚFð…>,CbR·7{ÈQò@šIì\wû­>#žú‰ÃjƒÍýÛwª¼5±vú;p™¹Ég£Gå‰|0©¶H™Î–@·”½{ò¦¼¶o*p`}È'ðˆˆ7îßî7"[õÁ@}å¶ Ù¯ú–ë³[)p‹Ü1à©Ô#9[:üt*žó&ã)©òŒLåaVøô _Ë ôó–‡i+*¨Ð¸_ÚäïÁã͈IÉøÌËg³Œ@Wù O®ôР¯uøMy¶I3Љ\B!F4™Èdä-‡þH*ϲ¥¼n`­€i¦².Ü}å#®”ʪãÀ³É—òœh¢ÇY6Wëm»2O˜x‰½Ž¶ï]¨^jÇMîuž'ýJ—ôðy$Z¦OãnÆù’™e×À«`no÷«a.òá…úø˜ftÄúþÆ>,dâ×-Ô'áõ샹<¼ž—ê§×-ÕOÁÛá';±Ðâhý¶?2H°8qSp,´ðÒ€(ô]élÌÜh‡OhjÃxÅ ”X<™è'E`b‚@gd’ØžhdÀ‹{tÆtÒ„-[¬(1ÍIw3F,V»¬A,M:Û[„Á\ÛÕéå2xQX–`•1™ˆØ O‡?û¯c„b÷6’W.bvïÔìÄE©ÁæÌdÎ}vL4,&jgÅD£ˆ‰Z1;ü÷¤)»yÆ¢sK6; b™N˽`¥&c¤™0H‰ù]ñxÊZ†H;ü\ž0ðÆ¼¹(Lîʶø€«–íP›$›L¦C!Õa=¯H0ÑS¯óA×åÓ,»=/ÖªÅØ 1äĘ‚iݛĔÎ2ƒ¡t°XÚ¼ª.Oc‘d‰±P7 Å#: šWqãa dã̶—:m†iS\p¦‚TÐô(–Ó4Û]¦"0s.êå\m/gÅà¾Äö¾ÿ͆üΞÁÙóç0ôËà–ñnÁÃN9õü#pç›a…†Aì=FšŽ:£”&Í7mbt{“3ûq,oHûµ´u`YJAö‰|¶Â‡ ÒG„ðr„°ƒÄò³¼Þ&¬S~ñè„Èò‰fÀ¿užqüy‚ò+ ùß;Ãf?‚]oÖå «c&mñSèh$7ÛÍZ2?çø(´-¾|"/ÏõÅGnè;¦j †!Ÿ¶NYஂJÆŒ\SÌ Ñ>&°]ܾäØþ“ŽéÂl]ÑH&‘' -g“Y¢§Ñt µà<¥fÅiõCl7:«-BLA ¯®ý¼« í‚~>%éíà^¼¾ 7¦éŵ{qê?wE2ȱ³æŽYJJ)hÎ•Ž¨Ú‰IcñG(ݼ<ïîåM‹->÷⨋§ ]Ï@ŒO X=”êÀl%!Œ9ž.䘡¤GƒžhüæÔMSj[A=ëAi /L‘½¤lz`{Ÿµ¤§É¬Ñ‘aÌœOÚÔ*Л®Ì,+«kX> Ž ó^-Ô#ª[3ðÄ^8t+Ö¥fi³¸ðÇË̈yAÓO”:.ã ‰™š…r̘œÕĘ™¿2N£D$ÎË7 Û‰ã ö˜SxX·Ý).kD°Þûµ»¨[;4Ù§ëÿPÛ©”9ˆX| ÃÑ]œØ³e&Áâ¢P?ðÉ¹Ë ôžeî0¨SÞ8¦yÞ¸ü„þø-R©7u¬¿Z¨ÈÛ‘¬×¦Š¥-ÒÀm(êÒi)HÄã·Ô„‹ÅÄœœ¸ÉÅEÅ«£vyg…åÚYk—wVX®¥vyÃE»¼vVÚåíòç¤Æ¼@É<•£Ð3?S9J…òÿËqfÅó¶r´+ž×f«x~:{ЙÎNñ<´»Á øÈ£ñÚ-ø/áM?t(#"„P/ÌG¥'Ö[Pðe¥4"z9Ï’ $ 9@äa›ÌKwrÐ%o%ïAλ+Ë÷m!BTçIî€Á¯7o`îð)§¡‘âòíh=Žf´.£ÔK«ÇÄä”{/Þ˜US"œÓ Ù²gC'+éûç*åJTМ-¡ìûŸGa‡ÿ>ôÈäÙHj§ ¯R†]:¹/žMçäÍ7¬>l ”"^f‹'cš”òLzé¼²%cÚJÈòÙZ³äDŽˆôº¼#-¶`±æƒšùŽX„Kã2f*®^®J¡Z8F{,:"ÉL_äè p=ñ|"úDÑ¥q®tˆ‚<_J:4stÛçE¦¯Ì¤ÝÓ/œ^šTØ'5’ÍNˆ=ô4 Az”™ø9ÐcMÞ(z”™¼‹ÀJ}€2©WÖÞKF+LšæýNH h‚!4&`³†$4uƒd¬RPç|Ž)‚Dshœ™§Œjõ€–ùA¬@]o;âñ ág³‰AAEvz²ñÈ!r#žwî"tKYÛ@ôÁ㯢À)fÞ‘¢Ëú%1J¢žI–f[„‚®ÎlÖž ½T÷|š÷ò6o/ÓÄû/ÿÉç&Jâeú亥úØ'^Ö[¦Ÿ¸ä(Ÿ—é/Ó'Ö¡Ý)†'>p÷;>¹»LGw÷=¯L?‚î£ ßW¦<ùv†7ƒÿƒ¿“á3àÝ…ÿ¶ç–éû1¼ð?ðýO|‰ác)HõÒ¿QœkK—éÃàx‹€s?´_÷†OA~OU¢MQ†Oö•éƒèÿ Üp´T=Îðà½ezÜÇ…ÿ¶D™Þ‡ùpøž2½àQ~²LïDÿof¸=[¦oØ#ãÿ­þËLÿ) ï Mc÷îL™Æü}‘Ý¿Àíßé ‚Œ_À“Hÿ·Þ;T¦/Ãò°øvÆß*Ê7/ìþ¼Mä L_ þG¾.Âï*Ó=ßÃ"þçÿò¥zë÷û:}ëù¼Ùî¦$šv4’ÂzÛƉòt±ºAœ³Ç*ŒžÙHC>KõT,iúÓéþý¿ÇùCuŸû‘õ¥OM¿AÃ2ÿ1»»{}§Üýu˜™GÀl/Oٜ穄µ¥k*Ƴí!Jã~bùÇ\õIX§^}¢RΦɳ18íQ ª«ül~.¸áW,ÔÇï·çgxl¡Þ|A;†·ûuì>xynà4àñ|ñÁY|~=žƒ/°ÜNMÃ÷Ö3Ÿ/^“îïOËEW<`‘È ðJ^Žõ õ“®aaŒ„¬NîŠ ±1ö«ýtE‡ƒ_ óNqSo²Æù.mL+§×øª’Õßyxs=‡[g³Ù_'7˜s³4ûMùÜ9NH¥S(àûäNz"…׊„²OÓ#¥Çv×g¹¥n·ÊåªN%x/‹Ñt2Çb Á¹! q¨?=«åN»òÄb¢mv…n‚Ç.>жîqA-MrHsù5-èÐê<šÁZÁRm*á]ì”’²:^¦å#q2;V˜Šï¢Y—¹çgˆ’#D•JlHç Y‹·éÔª øÌÛ·úH§ïêR?òälìæž”]sW÷¬kUQã\÷uaPN$‚Óg!ñÛ! Sµl7˜”$…¾F%wPÕñ0°/æxU‡¥"HÅ5Y=yõÈ'WúéÎrU“aâ|Žž¥šÈ@u @Ï£¼E#t)yu:nöeêÊC/ÊJ’ ÓQh{ BËЛ §Ü³'¬ñ±ª5 ã¤P„Â%œh4žKšÀ×d_“i¥DyЦš?[îòv®qnÜÕ˜»Æ9qW“Ü5Κ»šÊ]ã,¹«)Ü5LîÆjkÙ@zSÍëáÂO+2fÝý*”K¯hc¤ÓV Ž9§+¿õxÑñoo¶WÅ]Ôž0°”V#·*«k„ª-¬šMáNTÌîÇ:†a+mTÐÏ=uZ“§dws>ÞOð{¬S9ßyãÈýß:Çažâ>C9ÊaÎÍfuš×RÎñ<‡ëqeªær¢Ãôá~¨c|ãR=0Oãu©×”éGžÃpøUeúÀ™ yµXç{\Üë~¯óµÿƒ×¥¼’×­JþÎðÄ+Ä:ߟüR´ÙZªOþá©—”é ~Æu¿Ì_9þe/çuÎ x?ø÷\Äô ¾†×'1Üú:^Ìœ÷m÷Šu@>ór^W-ùbñňO…q]°Uø?ò2^ìöhlô•¼.8!Ò÷¾–×]'þ&è}Eñš…y9tòàkãìäV5Ôò5XSȸˆp”혶ÄM¬>¬(´!ÉGŠí$ÈHh‡…Œ¤FÈ.K$oF‡Äeî­#Ci¾¬BqŠ6*cÍ:ÈÕKD‰mQj'†l`ÅÆØ.kiIÂÀµ¶^3Zë+KT}=ËòcŠšÑTä9=}aÍh¬‡)y>ŸŒ¯B™5’rõØ\oô$¶ÏäëªzC*Ýoæ¼ÛûS3po(Ãí•v³~³j{yè`„ÒÒј“7A ÆTyÊ1ǰ€Mƒ¨<Æìô¢ÞT(—Š#Zé7=õ8ÇÙCƒqCý@JEhF_}®/Í7m–“À$êak0Ö[kF²‡™cƒåÀˆÞzŒX=+õkÒ„/®-^Kò‘Ù§ÍÌzÁýjä,W/zEo$›P7‰y‚Ìe0Ϲ¨uÜ+``T˜¯ {†—z<Ë‚T"%« WNL®½^ÐCq KË®Ôô˜‡ï!’nGÈ—¡kz»â/¸aÀÝ«ø…°­ö67¸aÀöõøÌÄç ˆ¿Õ°óÙxãž>«i´)8Lc̰ø¬ú[¯à¤¿¤ƒ¿ þ$¯ðé\à*‹Wø nø*«<ðÜÄUVyà3…<¸Ú™§øÌÄ×1k¬,¨¿ÏdÜÅW™†ÊWLcd¥¯ÒŸÊWé/éàoƒƒ?•¯­€+¹ÆÎ×nÀu_cçë0àÆ®±óuyð,w¾âXþ¼½ýys–/a‰£bR °]oµ ÷“)8Ñ1uuÅÒÑ®.Ë\:U ‚ðÌ º½˜¶ÏØ„·Òg v E¤6•r‰õxÓl“š”`FÆö¾@X i(}®„ ¤,ÊÏ—U*µ;È“2ûñ© j$÷P§3Žá>‹>MЇF*ïHdy” {MM¶Â9'öz–Üò¯—åUã­ Ÿ<%àQ€ç<æòþÛŠå×T—¼ŒØÅû„3Âïž™Œ)¸‡:—êhuLìÃN\õ² êaHÓ'á·°êãHÈúM: ª5×=m|Ô}IõÉ\_\ÇÛ«·gTø¯vn…÷ð» üÝðpÀ½ÉÇ»ºø>ü†»J‹î¾‡î\ZtGÞ+pKÜ·LÁ­¾“~cwxŒq†‚+°ø{¥‚[ p^Ïô÷ðÕr8sÌ™>S_̃œ|ÎVÂÈÛgW3=‡ Ÿ% \ïûî,ÖçKÀÌ92Ô—NïP÷åñÒ˜¦µã³ª;9j4ü0—À9”9ëÊáÊD‚¤Æ®®ž êêòw¡…FÖ(zø‰R©°AáÃ5¡h¼:%Å6>\l“ò TÒJ¹¸s±Âc§ è9 CBð.Tm(ìd¸$l.d¨Z#=˜;ììèž5 üx´Û¤'Àõ8§‘djÑdD,S©Šr º|Í6G’1Ú‹¶ëÝ@z£ÉxDœ«cn¬A„±=™îAÝ7v£¼j:&m¸ ;ÐÃ=YÞ4Ω)Ì Ë|âd„—®š*¤Ž¡•ÓÊqBœHiÌ÷eIõvV(‰@-ü šÌcî¤òm6¥B\ %3Í1Ö Ä§Ë­ûÈd.m Û#ØfLëS7³XH±%5/ë#kæIacÉ2/jË´²«.%Ó~ ©IÅ}²ñæ8bêã:É—$¥ö ¼¥rÆfQa½©êSð`G‚Up³ÅE[ªbæN1Q"ÝŒ\œ”&„ü‡e€îÓ¹$¯ÊÿþÈ`¢µTe,Ý;™çþX9Ò(.ReÇú2R½ œçq9O$ÆV¨,ŒÏMiàOo’òÎk ÇŠÅÍ í…BùoµÈ#'æÝ#Nø)—‚V‰Ít¶s øVß ÇN‡Oé R,¢)ˆ¯˜7Ú ¼‘íÂí,Øb¸³…ó'ÌÄ‹‹âÞ™„ŠìßvT.–Kƒ}b6g^[1måyû#÷¤³>£?‘ Yh N°ïRæ+´Õªæl:ºÍZÇ|b¤%o–š¹ä×ÚåRž¸àÆûÐÀ$ˆ4꯿uϨ´!7v^_®ßÜ®)åÞ˧¹R,OÚª€ÜÂkh%ÊôÅ xàÎ:Ë[xÝc?øŸ î#­ Ÿ|W™>µy©>ÑÊþ—½§L? °±šá3xl-§7ò2ýº¯e÷ýï/Ó<¾V¬«|°Lßp@¸*Ó÷<)ÒÛ ñe^Ãðø{Ëô­ÿößý¾2½àÖ5œžÜ1~áÿ ¸ö÷‘ƒeºé­c÷3š¥¾Ya®—qÒæ8"´]âk$!OóÜKSå*>\c6 QAÉG$JS¸tj;t]v£-z‡µC0sJDe¢¨Ã6»}')°¶“éH¤yаîÜØf^Ý [©d>.¯CßE5²MñˆÜæâ‘,È7ˆm ¿Åq˜Ö }¬¸¼\ãÀ9Ò6k³6LG°?,˜±ö]êá‘¥8`á-'–z$sp#5‡†ÚÓ)ÍZ³ï“+_Ct…p€e¹>’¶îeX+Ðú;a4Þò0Ì#¡®©ÓJMZêìÆ!ˆCD0P¯bÇV¢B­ïÌ'¶K"zÕ“ÊùZÔóAkèAèeÆU9?rxäŽF†,ôîXÞŠn[e¼Á09 j5%,v8l‘‘ ƒ›ñ|­ %<º ”§ÕQLÍV0µi?©ãÅc´0hƒ[m []ÌU‡ldW9 ;nâ·&Ö=ÕXv†§¿ ^¤Õ‰¼ÆK”¶(xkÛ˜ÔTZØÑE^Ü0$ÊÎoqQXÉæ ¯‹hš=qV1…ºëh¤‚Ê™ËJžf4çrT˜Ü0øðVoa#.Ïë¯ßÌLFrù.:`€š´i„v¡{ …5—=ó  ¾ÍiÞ´Þ­•]LÀZæuFrÕlœôâ.MBhÌFÞ˜)¡!:j'–à¨fG‹ò¬¬ ó469d_ƤPÅ™Ÿ]8w.ÌžåXS„Q€ dmÅzbÞâ "P'N9±4²*éÅfÞR›Ú—ãä<•—šÕ“ÐuãBÞOÓ!l9·ñR/Ü-žV¯â«‚‡Ô*çug@î3pSïâE; '¥^Ѱùæ‹]l¿ÑªÖšœˆ‹D•yy¡WÕ²† F|¥Òál³~s¯õÅ•„œ<³Â"¡{žoN™óe fÞé¤m±ÝÎ ”cÙ‡Vk1¦"ÞHƒ³á²×a +ö_Š7;´âÕy[À³`oþ8%ë¼íƒË¦‹þx±‰Òï4š±ÍÜ FÁt›xa^NÕ­KøìJ¦£ØxÂÈq.— äÚ MÛGwУß0P§mß‹™–È{Ð9'Ͱ  ØKÔ&{ãtgȺWÁu—Ô€^ÊPÚ² )öSH´DÝ*qMÆ-×ÒÌõ#¨ˆÑ¸=iÎ_LhTÖ>Å´)Eb^‡)V€ªG|R}…G’deË<¥SÚ(FQô$uó† ïWó9YaIEhÚñ…Ù‚UR7cIÝÎþ …I¨R†7&ìk¹=¢\æ›,¦mw·ZüÒYÞ ‘rõp> kƒ|Çpè1݋˞‰H‰ú#6~Ø»¢”ǢY0 É©T(5Ï ,ùa©nlæõcŸ/ÓÚºÔÏ÷Ñͼ޲÷h™~ÜUø Àžg3<òÅ2}´.\_QÏí¿‹~ê.>Ôúì™ÏHý+ŸÝmÀ¯mLãî­îv^lvÙ¶Zöµ-g—¿‘­š>µ•ྑÍW÷Ýš>v·{„ú,ŸZ>²C½’hn))KYœM;E´Ìb*®× WëŠ{Må ~qÞhWãÔL]øV”lŽ u‰Iª%W5ЬŠD;6åqM€÷첚„0å(¿ØväóBjç‹YöÓ«ÜÀ±4Q`ÿÙÝÍjþ­„ÊË•k“½kÚjÓ %ðô.k»Ê& )1‘o(¬‹PY5AN"Ï·éE%Í㙼XF#™ÿÉø.,MÈ zx¬"_öã³"RE06Œµ€a[L<•35#¢•F¯u-¿ð¾ã™)²ìˆ7ãɺ_× Åj]&íók7f#b«¯mJ+€¦±YºLkšèä#ŽQʉYUÁ¥Ÿ(ŒZãÂÌ®i¿ƒ‰K£öC°Èc!¢.@Z´+‰½úP rN"qy΂JÕ;à6ÌÇ9±Öjåx‘¾.SLÆã¯àTª Ob ˜'–U –Ö: ð/MÍZ7Ò‡¨_vQ˜@ÊÖð6±Û¤hyì9,k?*¾ˆï ñ=.¾GÅ÷!ñ=,¾Ÿc—Õ÷Iü·Êô…8^öSMÚ"(ß&Ž¿÷w Áx£CW?vþðE†è ý¾pH¤pÝßñgˆ‘¼í’‡äD.–ËW9N:LëRù8UhãƒXiEìŽÎ5†7âßáøµ›níÄ¢¦ã$å"®rÙÞñœí'øÌ³»M‚·ý/Øå%§c‰àˆ`ˆä‡`‡È¶ÌµÌô“g"ÜüÚ“Yšïd{)»,VÁü†ÒµkoDÛ(c…mB1®z³,bÞ¸«òB±—<â+òZË|¨—ÚeEE¨ŸßÏåJ½µ™¶&ó+M^ÛrÉY‡ÿz† «D+¤©N?å;CHyAM܋وÂ$œQÍw6§(Â(,Ÿ'/ç†WÞ´7˨Â4ê‰ä¢\KÏ¡¸|%-ïJoH#XS_YS Áººp¹¨_v¦çÈtÍb:Ž ÌtѯNCµû8e«y¨rPirZ†×a*ÎdJfYTI*ë;ÏúÕ¿ƒPÝt£ cYÙ2Åv#œGlèÇKõLRœš(Óï‡þ}2Âp÷7Ëô=O wúüÝOô3¼àá2=pIJÈÑ'Êô>„ûD|ß)Ó¼¡TðàwË@æ^ª'Dü'ËôG^_ªâ"¾o—éà>¾aÏwf)7ãí}œAÛŽŠ˜ºIEɘFÓ;Y.SîJ[ç"ìÚ_I„¡:a›R¦>WÁvk¨.d©™¯Œ.†]ÖËQܰ”&h$8é^>ì"d¦^U°’u®Ò´’€‚È*qœ²ç~hëZ¼0Ï07cŸ½H5mëj¤€]‰jZëi6ßi™C:ŨÚKHü,Pžk?N^gžE‘§p0ê4—œ`šÓ/f†Ã¥ãÊ@ÖÔžEýv1x´†Ñ|Ÿá ® V"%UApP…0°ª²Š¼&R¨+Õuˆ¥g"vÅã;(†ÀªŸq+8€Š¬ÐñædBî„çÏ"$YSƒ¾ÖvtÞµ‘¡$m•wDv’B˜NÈbmÞUAÔÒ¥4ŠÛ]ˆYå—Ù˜ÍMèÛ¡.gÙñ¾t*Þ %äÕ®à4á0~§0HŠècÌ3Û¤ ¯˜¼ñãc 1QRÚBOnÌ" cå3l½rHR:^©vÛ+¥g$¢ÅÑ }Ÿs$3Ä"3¦Å$ÇÑò»˜Ñ)½ŸÈ›Ø~Á`Zþ>:o ÞðÚˆ"fÑIŸ„«°ïOË™”¹y9Ëé¯u°R4s¶cFbNi8”œ´U‡VHžg«õ8Åà‰EÑ”BêÇ·BŠf,wK¤Js´Dγà¤V3‡S! .R[`»!†s7 ?-ÏfEV|¦]< ™š%ÍDSþIM3¥B>\@¢Ÿ%ø¹‰}ŽQåïËÅÅvp´/’Únnª‰\au„ñpt©>ï^x‡á„7o¼Ýðn†·Þ6x[á Ã€× ¯ï2xKà]¯Þ3=0ÞÃ{ ÞGá}Þ xÁ;ïxÁ; ï¼{áÝ oÞ¼›áÝo+¼!x½ð.ƒw1¼Œ;‚òÄ ï8¼‡á…÷Ax÷ûÞÝðfàÁ»Þ ð.‰/5ï÷ã³ nÝãÇçñ߯/𔀗xœu?íјµÏ”y5ïñ´¿úì÷Ó~³ZüÑôÖ‘'w?õ@à—ª¯“à)–þL~H´5v±Ò–Òa"/n·ðŽôƒ+¬8kκî)ôlUÝgÞ¬éjúÈ[4}~{´ø1üfë7Ú[˜x§»n Œgòí–µÜ|ëKi”Âîûí<~€aãg —Â;õ&Ëݦadz÷§eúØ[Ù}J~ßÅß¶ŸÍROÅ(Ðð´ùÓúm}Ïìê…šÏP×e½y·{øð£ÅtÚò)êçdAíèg–tÍö ä¬öhêcÊYmRâ–uþt*8Àõ)¸ÓYnïà îÑ,ûQp‡<ÓëÙ8tW©Þyþo+ß§®/ÕGjz °ÈÄÝ¿æ/à/pÐò‡{Ùãíüz|y©>upfbØÉA|×ôCY^K…ïøÇ9l2ë¾7îÖé™m|¨eí]–>™>ðk|ŒÛbÃÛú)†»×9<š¬^¸¤í`¡7AG|°,EöR|´KÌ=ïjƒ[}G=+æp=™ü„§ÝïøÏvœ1u‘8ø ÿ"}òz.?l× ÎqÈCëCì~D wâeºñspÿyq»Ù£ü¬\Dí:óÐ4úV¥úðg4}x\ÓOºðŠøõ2à÷—x~{ü¡n.ô¯òmÏÈñ¯äÓÅ´ p™Ïˆ± ¾Ødþt‘yblÃÂæJ‰‹í•aàÃ0”Ã|g²2ò Èß/4j§‡4l…ºï™-Ð~à=ï$¼GºJõdÞøÐþ]M߬„í¼»Tï·Qpk= ¯â¶Ü’à6n#?Ðt¯â–)p+QÜ6ûKõ ¸µÿ ðhúéŒå6 ´ä©3Y¤O€Û^ÅmÜÁ-n%?Ôô>Åí¸â6nmŠÛ‚îR}7æÜFu&m¹-SÜJ~ q*n^p·’9‹ô ¸µ)naàÛt»`ñ% ¸µƒÛ^pk7Ìû2Å y½Ù…×È—­à–qž.È{7Ò nS?.λtkŸ´çËo¾%BÞ Ê¯Mq |ê¯Bg¸…¯1—ÃJYn[7 7‘²×‰cð ÌãpGRö:!Ý0ܨâ6nÇáÛ:ŸÃíUÜö(n.£¸· äùEn³â¶_qÃp­ŠÛp;ßîî Åíâ†áN÷+¼†²=‰yÑ l¿¯éÇ·qÅmÜ(na¨KÀwÜP'F·Vp›Ä‹Øm·âÖn"¯…[LqÛn§0<¸M@]jSÜFÁí1¤e1‡ (n+!SÈóÅœ÷%ŠÛ2Å ó~&i¹5‚ÛiŒûb÷ˆâPÜ0ܸâöø³¡ÏïØÓ8ÜAÅmJqÃp#Š[ Äù8òõ7¨¸ÍUÜ0\·âv âÄÎ|¢„õ)n“І (n'Àm.¸M>}‘>n‹·CÀÏئ/c~žÞa¹·ÅàÖ-ÜN*nãàVnÃÂí!Åí8¸-Áv+Ü(n'Àm¸ ·û7ì{®@:/ã~"¯¸­7û¥%ì¶UqÃ~i%æA¸­Uܶ‚›ûáæSÜúÀ͇t ·%*à@~ ·Çï±Ü p a_~9»M*n>p c-ÜŽ*nKÀ­ù)Ü)n À­ÜF„Û>ÅÍnk‘gÂm·âvêK¸M]Îu¢[q;ª¸Q?¡¸· ˜‡¥n¥âö¨â†á(ny ¥ËaÓr*¡ôgàÖ‰å ÜŽ+nèË×"ïʸܸ]á±ê5„;¾]ið{/|»­Ìã´â¶~ßnn Üv+nÅ­äÐÍŠÛ¡ç”êûà;nÃàV²Ýª/(·>ˆ<øµVTîG ÜC·Q\'fzï]jÓS9 ð°Ç®“ò0àrþœìu–×sho §P4£H±bBËÔ–¢ÄùBo FV*KÅ[C¸ ¥©fh¶hðoål"Ê ôD“‘\ŽÂUʨ:‡2 \ȤS£i>wƒ¶ı7¼-‹RH¡$¢^ch÷Tÿ O,ÞKnÞ\<ÙKÇ«…>L쟎~ò‡>$ßÔyUæUr°õÿÏ«&pò üÁr£u¤ÓeúØŸ¦Y£9mŸS Ÿ¶ü–ü‰çUíï›yÉ3ç‚ çΛÑ‚…Ú¢Å?í’’§_zÙ’ËK—.[€Ïò²W\©?ãJãª+¯¼૟¹òšg•_îöx]]Îõ©À?×.àç,Â]wåLÏå¾U—û¯@´ÁÊÿwžªÐ‚Õ5µáÙúÂKìIyêžp>]~yýçSÏSÏSÏSÏSÏSÏSÏSÏSÏSÏ¿ûÓð¯&à_üÌ8Oü¿ý4þ« ø?säsÁ…\páÛsá…€³£æXk%ñ4ׇÝ/q}”„æ¸>Vú%â;ÿ¢9O‡Ï¼’é’—ø·´Å÷ÒË–œÝ¿ËKù[RèP„˜þßRþ,+YŽŸ²Ë–¬Xq\q¥¿ža\u5%W=så5ìíY𿤄¾ååˆð‚{¼×VÀsoÿ/LÄ_œn y»>0[:ƒžbÜtËi%%%•U%¡PIuI ü. •”Ôâ7\‡Kào}IIC‰ù4ÒüÓÔĘæ÷Çã©Ïœ9æõ)†U/Eôº×¼³xZ¬Ÿ3ÅÏ8ü‹´Ì~Zç¬^½ÚsƒgÍš’¢ªì1­]·n]q…¾ÑüuS[›gýÍ·Ürˆ[]kãÆMþ’öÛ,2o/xÜ›3?îÍ™ŸMÏÌ5ŒÙ2gÎÙµùï–‚ª9»P¬ÅgS·éé˜ÕÅ+Ê»sVO‰GV¢ÊåVE¼B^…û#Ý‹+©¬«Åàœi",LoŽAöñþÙ=Nþ˜Á²m:õ#³¨ÿ³Lÿìž'=§ž§‡G.åsÁt¾ŸØê騿l><ÂÛ´ÍË Ùîñ{ÎOü²22íC~ËÓIžj÷${¤BÿçBßlž³Îÿ$O>ç¶êødÿ£Åî;ž\ú8ÿwŠç.ñ0äñ0äæîî¿äNþ繋ÿúß¼ùÙðÜ}÷–-[·nÛfÅÿñÌ —t•xJJ»;2§ª,ÃQx"{‰‡Üc1€Kâ÷ön§†Ëþûú ðï¹@y¦kPòÕ´~”Q]ÖÖ ¬Î‚çuŠPR ?ÏÔ>¼Ìàú€sæÜ‚nð§äèúC(’«9à-sîwG`pŸsK ¶G¼øT"|Ü‚ÕU™}+OÁ“*x ›ŸzžzÜžÙtù³m/³Šw&?é̽Ù\~`ç.ÅãlqîÏ ë3äúÜ甘cþiMj–Œ9¿GåßYÝóPÒ…´8P:›Ü˜‹€¶•y‡Ç*§_r…et8fÇ5¬ƒû?™ÛgAï“Wg—þÿægvüF˜”YM)ÄøêIš 0¡Oê~±¹æ:ë<œßs{Šêãt¤œËSÏLÕh6Ub– ú\£?›øÎ6ÂUûÿ'u=3&ò¿tùï\kÿÌíáßóyâòûoÏ97Šÿùwyž¸Ò>ßüŸ¿žÌlœóc,-@Ñ/Uú°Äæ¾³r åŸô̘¥"-Å ï|c<×f[Þ6ê=3χ q³hü˜ñ0±çË¥'èQ&ªòyRÎ÷?yB¼Y¢Ž_«¼”³ jAμß\Xþî^ÿåSészž;«ÇãÙ=«ç_›³\Úóÿñç¬óÿ¿”S3—¿û™"÷[(3†ñœC§tÒ“ónÁ¿Ð:÷u¨è63D=+¬C[”hv:Ò£öá˜9ŽÊ‹—º¬œŸŒ3qüÒ¤*އˆ„ ò°öy¹t4Òpo‡¿7‘Ša·glñqÏεÛÃÑ$‡vãcñAì‡$å½^ªÛ@*æÓrh+›Ø(ðÑtŠÍ´ß±'ãþÐWÐjÓô‡ÆŒý¡Ióª Z0ì$’Y:üDûôÞ€Np¦ÂèÈs­4îÄ GŽÙfŽX9…@9WêC"GC°WhIN'Mâ:³h5«—нhð&æbf)4:³ýEb7Öɼfîó{¡)°Ï¸1’Ì ³œ»æxœÈÑ}ÎôPè'”ERr¤§Cسd&iˆO!ÀP Ð “&Á…(_%ÌXЏÔ,b—N%‡´Þt¸ ¶ˆ lwRˆâ€áD¶!}h"Ny–ù¦†N5WÌŠù‚ŽH2Ó9:(\O<Ÿˆ>Qt€Tu®t@Ðxöü)A:`(HôG’ÓP’7MS¹‹…Äù´â$(~´b{ùdë·ç—CL_°jöùf—¿{Ò‰”ÝÜ`ñÀ'Ú/Td¶YÌ 4·|<ÅvƒÓly=æ„[MF  ÎÅ3@Pºci6žŒó ‘vp~“÷ äò.ÓuxëFöæ ôÍó†æDé”ÑÂ]b°xƒS&6V )‘­UÑ;A”7.ÕO¯[ªŸZ‡óQôžñnA:r3 $¶èI@‚J3»\ QÈӬާ¡é U TBIXˆ1Œ?>á± *‰)½"qPe!ãÕ»=q{vE.Ém ?Ÿ˜Œÿ›çµÃŸ=¿|ÊBý7Ï(ä“…{ÛNÆ|h8Zud0—I&ò³´1¯ØÁºMÛµ4Y‰¦4ÈÜ9¤€vÛ™géÂ麙4öBþ¦>ÓZ 1}¨Ibß*Sá~*{V‚x_b{ßÿfIò;{A<{þ’8D2Í8P¼ •%SâÿºÁúk¬3Þ-0Æ_Ì Îô&8â÷ÊáQ©éÒåeDÄÔ"‹Ðp«ÅâÉDIàH¸Ž+µÙœMB N+ÕX£¿\ƒ1—~ ‡ ®[Y…ÂõN¿•žÅ*¨ˆ5Š‹vðOθXí£Á-OÁ±rÛûH\‚HwHÞØ¶³Ð~žx¦ù GNi…œõzìxλeG<žªsgÅ% +¸Ô“Gv žÍùD² œÊl úà Á‰T49ã†Á– sP‹1Jb •D3õ’.Í6näAÊ´äþÜ®Hå•™DÑw[ÓOe´q–€HRމݮbGÄ|ºT. ’¦7ë:g1Pú”ešÂeö”>û#@\LË÷eÓÛû(¬X/i¢dK©ú„ìÛ  ËŠ&»² 6fªç+èŒrØÚ°©ù!8ÓQ¸ŒDâí@*Ÿ†‘c:ó¥F¡Q-Q:o.ß”Uƒé É>ËÂRäÛû°ä~Øôžh XÌ5Ó¹Ôï‹gÓ8ɿРñaôÔ—FàOÆ4YXf÷#:åN«©¹Å>¬ƒ4ݰÆêr˜š´ÞÄ ã>€Ë’” Ž«x.¦Ý…~My‚‡^#czÔˆí‰TÊì’àO&Kð€j”!™é 0¾z–èŠBÑþ@Œs—è=ËÜaP§¼qLÿò¼ásbQ©>uhÙmÛÛ¶BŒ–êÇÎܵBðÊR=pœáÍw¯Ð'aN4ö_ ·oY¡O襺ñÅEdW¹¤c…~?¸ï[D6¯Çn\¡‡ð2€ €'>Ãá›Vèãÿøç>ðbpo}=Ã% ý9þ |ª²To?ÊðØ­+ôø|‘áQHÿ$À“rzí„¿$ÜïX¡‡üŽ@Ðó =ƒô}…á¶Í+ô>Lÿ« ‡Ÿ½B÷\ò5†Ü p÷—¿î\¡{þ:Ã[Wè?"½ƒ~+òãmLOë6ˆ¯ èyók à p÷Œ²û©ç¬Ð;Ñ¿ˆïX× }Óû†ˆ¯{…~ àö7²c#ðà)|à‘ý"½M+ô#þ†Ãí+ôµ¸Ïúf†'n[¡ay8p;”º þ<ŠüáÇ!ü~ŒïM ·Aøe£L_è}0_ª‰üÌæÉüpѬmÿ=™Ïäyøs‹ô‘·.Ò3oX¤w¿Í¢+0nýF£ ·¾ÂÀ; ïÄéíËJõÁÃP?Z¶E/í=)õrʰmP cƒÚòqaÛݾȅ§~exä­K¹¬ë׊v§¤ÐÅó§¼¹K%¨17«4±‰„»l0ªÊ'uw†IÛf‘š„ôï·Ûœ»¾T_&ø0Ùl/çIèF€gg¢+ô‘ÔSx=od?c€G{ëøû(àÿ6Úº»<{#–Û©ÿp¶¹ŽÏÔ‡Ího]¥¿äþ¥¦Õñ×ÓáÛq­?F{ãÅþЮ!>“¸g&Ï®ÎOütÛ‹ÿÉ¢íŽÿ|‘Þú‹Eú8¼­¿„/¼­§à ïð¯à ¯ç×ðû€Ç/¼žßÀ^Ïcð}LÐö[p‡wø·­ãˆûÄoëïá oë¸ÿ?ð¯çð…×óÇâüœ.À 8ßnÅ ýÃÛú'ÆÙê“Ri´B¾Ç]¤oÞ¾BŸ‚wYŸU'Æ~¶HÀ[òsó·ÕŒ—åa¦ iŽÿé‰íTú§^qöôOÝÿJús=ht”æœÐå Fú3É8ÌÒbðÉõ¥waOÚÜ~{8©!k¥9îµÖø5dºbñ\4ë©WL€ÐN*L˜b,æä`§Ø?Å Êî(y¦IœAéšņÒ8%,dz8¹€™—˜†2‰xÎû)ò‚ë-)­A~%_íCù¾tJ³RõQŒØfã˜P")=‘‡±ßJ™Î]o2Å•ú¾Ðïÿ•ÇÁůZªw<,àÇ_ c4¼ã_ðIø}\ÀÏøð+‹mÓ\ào\–ÃîòQp%Áß27gñüfÞôî÷pÝ4v¸ôÉ›}D¾µþÍηÌß,¾úG¾ ^9Á¯oT¾l~%Ú>ÿg&¾,H‚ü”t§ÆÎ‚/í@ó¤àƒÓs}WW"•ÈwuASŠ|a.í€ÃpÀ+‚˜ÏÆ¥p³%׃+]Ü)x{’I<,â32‘|_NùN<ÙkM·µŽx$ Sy<`1ûsŽÔ3d”ˈÊýÊosî‹Rˆ2îˆ$9”7–ÎÃä´BƇ!üÆú<´iœ›ñŽÙ}‰L¢?“ÎâÙ;i¨º"7ñdð]¹,éF¸üÉA·â×:ÕµírÌn¹µÄ =&KL1cÕ*Už„˜eššå=‰d"?¤™“DIÌÓùt4L2)â/1•qÀÎ àC¥ýŸÂJAnLcOÄ&ZiÎw'2ëÉ•—›U¾)+ÌÛã0$Dò/òÎÌ”ÜçD®ôbGŒ^ü¶…|Äà™œt4Ëì·\ÆÙ¼¼×o’Ék¼³À¥j'žD®+‰îˆl/`/ÎìýNû¼Žl–AyVDèט”B†äÔh¢éd ©ê‰ÛCþÐÂF•2'°sÅ6Y “X*…¢®Nôh³§'—ÈF (bœ9QiNDÚK“OÔE³e¢gìTÐz,Ïib³F‰ÅG»!}\?–¤!U‰<å0öC˜¿Î[LýîDÿ ½à’¥ Ò+ô0FM,cxAæÃw—1ì½w…~?À£>ð0ÀÆ|†G2ÅcÃà«ìöìñ9x·Ýž=>™WÙíÙ»=JßæœÀ6Ae¤¸9Ï6U²c„þB‰§\YyE$*-‚á°aùª8u1,{4X:X”™4ˆfËNèyb…,BA^7¤¡ž‘ ñ²äÂbœ|ä|œmέÐ3qà³?»B_›f_²xÖvæM–b‡¾3ÇMñ"¨Ö‘öuBÔäJ*df…9hS}ÀPÑ⃛G6.[|®^[¥–a=.0'¡lÀÑ W˜¡yDñÜG>²#ž³Ê~©|‡hÌ’Œg©,ë!ÅhœF:Y¦Ðßר0ÐE4g”<.p+ÕÂÍÇ±Ø à–!4H›Ÿ|:ttA]1˜ ÙC]ÑH´/^Oh£yŸ¹ø/Ûmðn]á¹¾ºl8Îód3pSà¶@.ðÆÀ» Ì.~'ø“à‚» ½¢ê#UãU_¯º-Ôê-®.­6ª×TßVÝU]Z³²Æ_s¨æ“5Çj>Pû©Ú“µï¬û0ÐP[¿®¾³þÖ†» ”>Ýôå¦o6yº=žQHgU jÅ;_|R¹6 vw_|kð£ÁÅ•+*•„Þú@èû¡GC¿ ­¨¾¦úúê×T¿­úÕµ5«kn©©y+¤·¥¶»ö÷µsÂeῇÕ•Õ®» ~EýÛëß_?^ÿµúGëÿ5äÒ†¥ a(¥niÜܸ8p ñCMMk›zš¶7¥š^ÜüÆæ÷6·ùtó-W´x2Ï> /¸/ð¢À'€ºÓÏn©l‡óÛÊùU'ª~Rõ›ª…ÆCß ý¿Ðüê%Õ«ª?\ý©ê‰êTŸ®^XSRsuMyM[Íš÷…}µÙÚ}µï¬ý@íªp(|{ø®ðs¿ O…ËêV×ÝXwwÝë.ªÿN}%”Òó>ßð‹†ß5ìlüA㎦EP3:[ŽböxFà3?ÐøRàYÁWçWöV~©òꪛª6U}«ª'ôçÐk«¯®ùHÍ µßªí ÿ7ÄþŽº`}W}¬þ¾ú÷Õ¨þóÆêÿTÿ×úk®mhi¸±aKC´˜5|»áû ¿møŸ†¹/l|Iã÷Üø§ÆÇ/ozFÓ‘¦“MËš_ÒüÊæ÷4°ù¿›ÿ§ù²–Û‘ž®£ï üèOÞøbàGŸþ˜\¼2Ø\¼;ø†à[‚ï~;8l®\Syge²2[ùÂÊ—T¾¡òPåG*¿Yù‹Ê¿U.«º²êꪺªf ¹¯ê¾ª=U«>Põ¹ª‰ª“U­úGÕ_B•B®†R¼µæ55o€’«ù|Í—k~Ró‹šÞÚç×¾z©k?YûÙÚŠp |Cø¦ð`øá=áw„ï†Ü<»á9 ÙÆåÍzó3›W5×7w5§›óÀÇ×6¿«ùhss˦–´¼¹Å3æñœ€ü|,ðè. . ® 6ãÁdp<ø®Ê÷A»ÿ]åHÕ¾ªýUVBï}°êPÕXÕ3B/í =PýÝêVÿ¬úÒše5Ï­®y°æí5—Õ>«öºÚöÚ; Î½®ví ?U»&ü–ðð'ß ?½éʺëêZê^U7Q÷hݯêæÖ_-ô®úÐW¼³þ½õcPG&ë^ÿëúß×_ÒpEÃÕ å ¾†Ô—µ 77Üu枆¡†= ohxgÃXç¾Úð݆_6œn¸¶qcã={=ÔùbÿûÕÀÓ*¿\ù…ª_Tý¹ê™¡u¡›C;C»Cÿz_heµ¿ºªº·:S½«úåÕ¯®þcõè?VÔ„j eßUsÍ;kÞÜþrÍ×kNÔü¦æ5gj´Ú+j¯­]S{{íæÚHí}µ¯öDí÷j§jßãDW]/ô{ê~X÷ehõ‹¡½?·áUÐ/ÿú½+·4¾£q¢ñ‡?mô5…›šš^Ô4Úô¦ÍÍP&ïƒÞ÷Ò–¶–ç·ügËcX·¡‚=DýàÝ׎þ¸=øúàçƒ_ þ4øÛ VùôÊk+ƒ•k+×W>§2^ùæÊwTjU/­Zª½0ôËПB ]\ý¯×W¿¹z´úxõ7¡ß^ ùÚQóúšÏÖüªæâÚeµz­·¶ºö•µÇkŸ~søá†?þQÝ/ê~SwYýkî†qæ¹õC¯j|}ã›ëšZ›noº«é¾¦4ý¥é‚拚+šÍëš74Ç›w4ZêZš[înÉ· µx&=žÃ@û FïŒ>ø4´9Áè]·ƒDð`ðÁÿ þ:ø÷`Ye¸Ò¨ZYå­òUªBUáªFhÇk«Úª6ØZópÕ7ª~YÕÊ…ÞúôÄA³wWÿ©úLí㵞ðÜð‚ðâpIxIxYøŠ°^îß×5ÖµÖ­…{C]{]gÝGë> ãv¸¡±¡êQ[Ɔö†Î†ªF FAÏ;áÐ56žj| FÊÓg ò4ÍmZд¸©¤iIÓ27¦•MÞ&_S )¥Ø\YÛÔÖ´¡©½©³isÓÖ¦î¦XS_S²)Ó”olÚÝ4Ü´§ioÓýM#Mûšx#«;û' W÷Û‚ýÀ‹¹¡¡Å¡’ВвÐ!#´2ä ùBP4tO¨­zCu{ugõfSº«cÕ_„}fMwm ZX²6S›¯¬Ý]ß\÷â:ˆ¼dŽg?v¿TZ¹ß\·ä§X]_]².S—ÙbwÝ0H{ëÛW·¿îA±Ô¬;T7Vwd¬‡êÆaìøS`YðyÁ_|p zš/ÿüŒ¹Kª–WÝXÕ_•«Ê‡†Bk¡œ¿XóíÚïׇ֯¯^ý{ê§`üxcÃMwCvm"ÍñƒÏï^[y}åË+_ ýëw*ÿ_åW^ ½ëæªÁªÿ¨zôZߨj‡á?Bï }0ôóÐc¡»«_T½·zqÍè_Ûkî€Þë(H ß¬ùô®¿©1j¯©½¾öõök¯ ? ú×LøîºhÝëëÞU÷¾º¯Ö=\7¯þòú²ú7AŸõ³úSõ?QsNãüÆUë£0ºiütãÑÆ_6.kª…–iz!Ôƒï6µ5¯ùÖ–8påPˇ[>Öò©–ñ–/¶ü¦ÅÓ:Ç3wŽÇ³"Pظ7°dŸoCËŸ\4‚ Á{@j|'´äÕσ z*çUÞQ9ZùŸ•_­|¸òéU7TÝUµ£*_õäõóUËCB·…î…>úªj_õÍ ýOõ5o„Öÿ{ÈYSí&¨7ÿ½×'jKÂáð­0>Ɔ‡ƒq;X·¥î^Èç'ê¾[÷»º«ëCõÇë¿Yÿ]è—ýòèÙúö7|­áo ×A¿öŠÆO5¾±é{M?júYÓŸAž¼ yaó’æåÍÏh~ôÕÍ 0~nh¾­ù®æç4ßÛ¼«ù5 ë|¸ùãÍ?n^ÚRÕRßrkË®–×¶<Ðò'ÿæx'¹l] xaà%>ølàûKad½:xC°3¸%˜íå ¥}¸°¨òÒÊ•••7U–T•VUåÐtTÝ_õÖªwU}¢ê{U“UWB+Ú |xEè¡_CߨU?ä¸{ª¿R}#H/ªyYͧP‚­]P»¸¶¤v ôŒÕµ-µµ»jÇjS»,ṵ̈䥻Ã]áÀ¡½áûÃ#á}áýáÃØç;üèi² gþ¡ÎýfÌKÞU¬þõ'êÿPß²ùw€ì}5ô ïkú¯¦À§‹š75g›‡šŸ²ÕÅ-[¡üëq÷Š=•À Ð2®‰áã•߯ü È ‹@FXCs§Éª_Uý®êª¶Ž†~ré¯B/«~UõëªT¿ä¿#ÕU¾úKÐCü¤úTõ流×ÜYóºš èño®}iíçjÿV[N‡ßþYØ€YÆ› |Ÿ^Ký‹ë? RjÌ'ÞÓð“†@ñ«aÖp!ŒR»š>Üô›¦k ­=Ðü0P{SË ¡Æþ éÍÌñ< Ÿë¡¤ÞøjàŸ´à%Án^|#´æ¹•M•7TF@FüKåß+kªªî®ê‚Vx¢ g~ÁP ”Ç’êÖêkj®…÷95»Aš~_M¸öžÚ·Öþ©¶*Ü>céÏêJêKëoªOÔ§aDzOýWˆ·5T4\2Áö†—5¼äê/7üªá÷ ”CëÛÔØÙøÒÆ÷B < ­oaÓ%ÐwßÔ´³é¦·5ùÿëPO õtNs¢ù[Í'›Ø\ÖÒØräí¾–[ÞÑòóþ‚’ȼs]óèþZ3¯ö&-vÔî¹é™~[»úœÃáO„¿þ!´Ê90·¸æ…Y2ÞãÙ'êÔ_\Ÿ«¬%ôB­ÿdýc0] sdC®á# oøqã M7À ¹§ñµo„þúh#ιÖÀ˜•…²ý(H×?k:ÕTßÜÒü³æSͯoySËZ޵xFæLhÀ¼¹#°9ðAÈýϧ ‡}OðáàÉ J¹ÊÁÊG*VYYU ¥ƒšùóª¿UÍ U…¡ç‡^³¥¦êª_\ýJÈëšÓ5©¹º¶¼ö…µ/‡¼}¼öÛµÔ^öAosi^· Æ©ÛêúaTz ŒDï«û4È Ë`–{æO4Ç}d½ÿløyïv5>Êöƒ?² Ðìé#Mo A/Ó=Ì®æÝÍÇšÿ«ù×Í¿o޶ÜîKZÞÝò~,ËÑ9žC8æV* oy%ÌÈßøJàëÐÃ6×ÀŒæÁGƒ¿‚º{qå²Ê×V½FÃUÇ«êC-¡/‡Ž‡æTW€Ü¸úÓ-0ßµö#5¯Y ù¨ 7‡ŸýçÃ_/¨{ZÝ7 eýdÛKvÀÌæÏ 7\ÞXÖø\ ú/o¼§é«M6ýªi.ô”÷Àh9ÑüK˜÷]ÔÒµðMP÷<|Ƭ£Ác0鵿ò¾ÊT¾½ò+•_¯¼ä;äògª¾ \þo¨?å¡ÚÐZ¹6‡¶…^Ù÷ÁÐÏBõ0Ãoƒ>ûŠšúš–š<Œb_ªùZÍÓ¡§®¯í¯ýÌõTû³Ú»Â»Ãsë‚ Ù¼d™C ½\__]ß[²þ‡õw¬awÃKF5m¸¤ñ-0Ǽ¤¹rànlÚ­áYÍ×5¢ù3Íiþ{óHâðu—i=dbŽç|.…ò¨ Üå1x}àãÏ@¯ð£ÀsƒÃï«*ë+—Ã(„%SòS[h ÝÚê=;Ô²\:43φþ'tMõµÕï®~õ÷ª/¬YPóòš‡j>W³rt[ížÚ—AÛX·‡Â¥u!èõ†ê¿Ðp²á‡Ð3¯n|Aã‹¡ã y^“ÖtyK5KÝÏäš¿øÿãÀ1˜yþ)¸¯ò“0ÿ9Yùõª‡«V„Ö„ÚC‘Î~U}IÍ5«j^ ­ñóµÖþª¶¢Î’ák _Ù\? ãAÃ>Úð•Æ4Ή·¢©¤ÛW7.åaÜz_󇚿߼±¥ÓšãÙŸS`ðEÁï‚TaåŠÊ«*7Wî©|YåÍUï®úÌh}P;ÿ dwz…Du-Œ¼‡kþ§æÿcï_àl¬Þ¿qüž1Û`œ#›FκÏçƒÃŒSƒqŒÆ0ÃŒ†fœBʱ¦RIÔ(JR©T”jHQQC*• ¡ Õ(ER~ïuÝ{‘æóù|Ÿçù~Ÿçõÿ7왽ï}ï{¯{­ëz_ï÷Z×Z«ÖQë¡ÑÞÐj ®~§·3x0öAˆLóÇ€õÌÏÌ«+Øz/Üugó¬ÓÌMp—»/¹¯ºª7ˆý6+IóÛð·ð·ñEPäM…IB X`4<$²6/7—O(§”³ÊoˆýóÔBàn”\½‘ÞJOCl_¦_e:ÌxY`6EŒÉDL|ÆÚçqm¯³×ßåÍ÷îöî÷÷ž«=é÷¸ØHÒšçù‘Â]PioA¥EŠÕÄëÄöâjñcDð ¢"= uAÄžƒhýƒ\MiZ¯Ü¬|…è7A¬®WŸQ?DyΩª´s¬`¶Q{GÛ o=¦ôÚúGˆGaMà±·CÏ|d|.¾Ä|Ú|Šó”ù‡iiÖkµµÖúöRjýbµ#ím÷·óíûìöÛv pÿ‚S<}9˜úI— F’Ö4 eîGݽÇ_'t’„„оÕ~Ъ£äítQ¿,*GŸ¢ß­? ?§¿Œ»ùL¯m40XüÊ·î³¶[ïX7Û¹örû {»}Jùû‚}#:´ÕPSsÁž›¸*¸Ó47àuónð8>’I7î:¾¿È_+´®°åÎBw¡0ãÜÁcˆ×ÍÑ")bGiœ”-Ý!­”•>†Uj(3D¿_ hMµ­ÞXÎú„&è“ç‹  õôWôwõôÃúqýw3X† mÕñ8Û¸ˆ³Úx ªéu´ÉApæŸjfM3Álczf¢Ézc¦˜·À¦îG[m2ßA\;bž0/šVC+Þbýn}¬dmó­•àŒwÚs;œ/œÓÎ`ÒÛîS°7Ö/IÚºo#vÕê ¿ ¿ â\q©¸^|­ó¹8DºIzIÚ&Ý«+'•ájìk)tÿ£êà[ÕO¡oþT+i54Q3´¡ÐÓ`k+Àv_ÑvjµR휥÷Öûëïw×OêÁ<ú,ãk(@ÁT©§lš9‹˜Ø·`¦åY9àÕìšöIûŒ]ÕiT½Áïæ¸\r$“¤\$_•¿ª·¦P<¾»0_Xå÷’PM¬)ÎR?S{I€òï/½–XW6›ƒåtyüf½ü¼¼LyR©£6T[¨‚ÚEMÁÍUWªO"¢}®þŠ;ª­µÐd0¨T ÚƒÚcðž}𜓧W×ãõ–°BQº+îl”>è:[Ÿ‡ö}<þuý}}Ÿþ¹~Dÿ÷Z<ëZC6 (ç1P̳Œg—ŒÅæCæzÓ²zZC¬½ˆuÀ«n°“íP{OÙÏÛ/ÛÅdµßÛ5œ8D––@«%ãù·¹w¸ë€™wxÏ÷ñ"Œª¿0TH2…¹¨‹à›’¨;SÁþ§¹¿#¤ZÒµR©Ÿ4ÑrŒ4žðlì÷Iée)Zf½WÙÀ‹Õ¸ãÀ«Îi-p§?é)š×ã>2 Óìl6GÂ皘«ÍkªµÄº×zÎz*n¿õP¡n¹~P+“‡×œýη@‹KN#7ÛÍs«ï¤þ…fü1þ;þgþyñ5¨Ï8)Aꌨ7 jûKé©tÇ!õ8ð¬ŽÆ¢Ú@m8YÚ"”ói”²š«·ÕïÐ_Ò_Ó·£öÏéñÀü{áE/Û¹¿5ÎŒúf ³#4UW«—5Äžjhbwqz9³ÀåÇ£45½&^ o–·Ž¸z$;ÕgêÌ÷âçƒ×}ÊŸê‹·ŠwŠÏBKµ’Õtð ­/6K›ˆ²0zF;¯õ"½¥ªÒÔMc¬q3¼ùIãVD•æ´ûkæs—¹ÆúÆ:mu°E»=Ø–Ì!íü¦ÓÎ}ÝÝáNð&CÉ>þÉÙ°ùõàoñ‡ù,a¢Ð>º|¹ ¡Š\ªžW/ñ4U³´ôGõµú ýøÚ=æF Äfs‹¹Í,Þ í] ?;h2åKào¥æYó<Ѓ³¢¬h+ÆŠµêYqÀ‘ •`µ¶Ú[<”Ñ_{º†Z#¬QV:0&Ûʵò­éàCs€6 ­¥VÔ pìBÄõ`H›¬ÍÖk›U®´ÛÚc[À?³JP¥PZçÁi9;ÊŽ¶cìX»žgÇÛA;Ánm··yèŒÝöxÄøÄ!û°]¾W­ºss­ó´³É º­\Ñ5ÜD÷w¬{³;Ä»Éã #©?ç~~%¿±è[þ{¾’ÖÅ#*ÉB¡¿ÐQvåArøî›ò;òçò¹DnUß^é ž8RIWnVf+‹•{H+C G« 3¯W‡ªcÔ[Á„wiÅð•J4nõ®qÜ8 k³Íaæ|ó.¨¨–ðò‡­Ç(Šžne÷‚¯ß ²ÚãUD¨¯íŸ:AYf:9Î{àǧÜLp±G¡7^÷öƒÃGr)Œ_Çwä->ËçÀ*ŸàŸáßäwò;„…^âx1G,¤«ÓbU)*r„”&½mT •‘¡d+S”ùÊ#J;US“ÔÞÔÓþ’z½–£=„ûì­âê\ЬoµûŒ4=d1éyc·±×øÞøÉˆ€¦jj:f³?#.3ï…mo1_?>jžû¯au@,ê [iͶn·î5<´ÛoA-üa5µ[Ø‚ÝÖÏFç‚O¬¶_·wØûк ÷ê÷YßöHè²IÎBg™³Š4æ—ÎQçŒíÖpã]ÉÕÝ‘îhw’»Ð]æ®r_t·@uϸÑ^ /Þ“<Ýéö&y ½eÐã/z[¼/½£ÞÒ‘\{Ôi4_ƒç%^çGò£ùIüBh¹UP[ø/ù£ü>Z¨k‘])Œ\(,V /B‹|)ÎÑb 1žv¤8Zœ„è³L\…ø¹EüR<*žk¬!ÅK’¤# —²¤¥R,øûMòKrµ‡:L½ 1u¡ºL} ¶;bèHm´6N›¥€?ºîÞQf8ål Ü^¨’&4z¼Úxmñ‰q¸ˆÖhh¶3û™)æ83ì`&°f#¼ûw³ªUÓº¾šiMA¬±6X[­™ö“öFû-;Ø7ÏYê,wV;¿9œÛÞÓ Qv>âËóî ·ºWÇëèÝEš%’u¹rMPK4üþ>þQxÓxÔÇ*a°wXüIü] Hµ¥ÆR(Jq†E˜h26õŽô4Y-ùyâp–|¿ü„|\fãRõ”ëCqám}”áJª2I¹CyGùB9ª”*jµ±ÚL½Q¥®³ýLe=©†Ö 1 \ÿG­¶ÎÃboÓ—ëOu«uŒfàüéÀÿ‡À vmit}'pïKsjà)p‹³PmõlÞeßliî´¥^ՙνˆ[œÎûÐÓÎn/wâv÷=÷S÷W·6ôj+Ïòx7z™ˆÏž~ðû¯GR+³¥þüp~¿™ 1ã#þþß\h+hÂkPuû„¯„o…³ÂqbÈgbg©4÷di”ë£Ò[ÒÉ"Åz“<ÃñÆz%4.S‰r ¢ø/ó&ŸLÝÞRSh-¥"Þ& ƒ ç „'ÅçÄÍââåQöléViŸ” tØ.7S”ÊÄÝG”Çw7)¯*ï+­P³ÔÛÕsZ}Ò)úú4ý^³ÐÜj~ŒRÆZƒÀ¡_héüàüâ|åV†®«D³zòÄ[ÄòcúÙà¾ù`˜³¤ðxÙûò~ùðèZ¥­ÒO¬ÌTn‡JxVùHù\¹¤TQóÕÛÔ7Ô·Ô­ŽÞPolîŽUÙè‰ɬ‡iªJ\oüù“ׄøwk±£8Dœ)ž‚ÓÞ!rMe˜²÷ôž¯Z*ã‹ÔÆÚÚ=Ú“Úiíg­•ÑÑèjôbcoÉ•Xj —/ž!fôÖê¹PÓõYzÀ¨mt6º—U`5;[Ý­xo%§šsÌ9éÜã®p÷ºß¹u¼ëa1É^Š7ÔáòÒ^L;T¢¹QóùÅ|©RI ¨±¸¿Åê'ê×êIõgu±£/´îBÄØd}heÚí/À¼Ž;-½öÀ¾…hïÓ,+ Þ/gO>™ŸÅÏ+ašY4i‹ü†<@Jãúç”?”–ê—ê7jW­—¶zj“¶YÛ¢mC]î†>!¦ÑȼÖìÜíltv8³qÎ9•X*7DÜ$Ù)kJ½”|e–:\£M€ž¾e±Ïru;Å5lúqçççˆSíã Ðûl0³õ¿ÝÄOã¯J…Ñoïc*ÏŠçÅ‹"'EIÑ`O±R=h‘x)<ª<zÿ ~U%FÙ¥\£v>Pçh’þ‘~åøðß>HZ~³ùªÙ ܨ›ÕÏêj¯±#t§º;ÀMwÇ÷óQ«?·VâòQÆ80“ ŸÀ·æÛó<ó¸¢JÜ*fÞB ëa¥°OúTj)·—Ey¢|›¼@>~üBÓê· BÝ%â[o6Ý¥¯€Ê{÷pÈ?˜i,01ÖûCà¥çŒjˆƒÌT31nº9Ëœþ°a˜•ZRyö¡yJöµÇûu0šÏä¿—~–4¥›vBó}nN¹»· ‰ÏéCÌ•èöp{»Én |„ï]K|Á+EmBnã‹Àâwó{øb^\a£ø²˜ ·“G)c•DøË_Çççhóµ…ˆ†Úrm…¶J+ÔÖ^áSEÚNm·¶ªä€vªô°vL+¾”¢=o€BN—o]ø†™fÍ@MÄÙ}í†^sð™­Þ1ꇭDú÷+á˜ÐPTÄïàM¤<é¢yUVÁù}|ÏúQýO½¶ÑÐh ¸ÍxßøÒøÑ8ØÜÔ¼ÞL„JiŽ5™/˜í-Z²—uÂþÁþXÕ\b¾û”» HUŠ8ÜÈ z†·Â[í=‡8ÌJE}Šù¾ü ~êè,Ÿ(ðâZñ0Ì7ÀšrsØŽ&÷•ß’wË•`Ï*/B©}¡ŒW'Ã’XUK­­¾Þ¬z þ«>ÑÈ3 Œû^àÌϘŸ˜?A³XVè•<먕ԣñ§õôÈÐ#õœaÎMÎ^g¿ÓØmNXÒß å1 ¢š×ZÃõ†yÙÞo©÷ª÷&ü*#6ŠÆ^¦ò÷ðkÁ‹öñyU&¬^N 5Åöâ4q‘xZûñ±R¹èôjºîª3xÒ(y¶¼P~JÞ$¿+Ëß@Ÿ^’£•†¸»Êõˆà=Õ¾êýê~õzBý^3C»íÿ®fè`¹kô'¨÷­¿ñ t~ Ücšs›ó<<ô4sĈŸQëŽÇ£(N¦ñ'øDê[£W«…w…‹ÂNqŽ´YzWþY®¥¤ *~€x± ¬áMuž¶–v5»S¿dD™I¨MÆ*Ÿ´ŠìÖÐnsœ·´Ù.wðj#þ<ǘEº\àU>^ ­z ý„4¡@Ø*T«‹mÄžb²8H\£hç&ánκ¿¹5(ÞGQÎaþ8_Y d UÅq¿ø)bÔõàǤïÐ’*tÎI¹ºrj¦ª£> ?= †ÎòÕ™G̉°¸ ¾ñE»0õk f{?ôW=øÊ(òÅÙˆ¬B™>Ä8ÍÿÌWª l¬ÑºÀ’ꊦäÁCo•’ãüM®«4S4ÕVG¨iê»êj3-Acßü«¶IŸj´2Û›CÀšA­_4+Y‚eZƒ‘O"&õ´gÚsìGíµ¶á¸”‹±Ú]ï¾Ébç¨(î,Ëmâ~o …EÂ]ÂçÂ×B#ñQë î»Òé.é~éIi£T$ ”‡Ëäɲ®ôV6*Ï+–ډƪZm(9OûÈ4«ƒ¹XX;Ð?ÀçZØ­ Aú¡% ì§É_©°ÿçÿlVÕŠPDccw5 ~o÷îõ¸Ü(Ê#iÃwä»ðàÇ›ù¯øoøÖ°Ú…QÐ ¦ØYLsÄ`;·ªó€6Õ€7ô,mË6øË;ú^ûIk¥·×»é½á™™zvŸ›ó—lB}­¾^ߨoÒ7ë[ômz¼k·¾G/Öè½ëÇôý´^ªŸÕσƒrF”mıF=#Έ7.çËË]K23Ìyп¬G ¦UßjöÖ­Þ4Fp‡µÄzÖzÉúÜj„8˜æ-ñžòÞóùy$s¢H×Våûð+)V½‹uÊ¿•Ð[ØEÛm~ƒ8z(_¼ Höì÷‚‡| ½ÕDj+)R¢Ô|8i±tTH}ίK{¤ƒR©'7“¯—U¹Ôï­òÝò:yøx%^i¥¨Êâã÷(OÙw(ÅÊ×Ê)åŒRU­¡&¨mÕÎjwøþu†z«ºD]£nPŸS7«_o–¨ÔªˆŽo§öjûµOh?€Õ¤ë¯ë_ëË“õi¯0w€%¼oÿbWqº;ãayÞtÊ ŽâöPþ¤Æçó|3¡¿0XxJøTˆb3ÑGˆcÄÛÅ•â â÷âfé+i¸œ†;¸ jk{Ÿü©©DCS(ð€àÿ¦š¤Þ Þ¨ÞZÚ8í.pÿŸhTîZ}¢ž§ßÄ~Zß‹ˆg456GÀÔ¦Óøe«™5Ìeµ&"jo°vCßVµìÇí ö&{/"j ˆàôq²œIν@¬úîA÷o¿ÏÕ £¸x´g¾)ׇ y'”Ú,hµùÂB¡PX+¬G‹o*7 ÓÐÊGÄ©Mh$ì-©š\S6µFÊ£)¯h©|õ«¾/Ÿ’»(Ý¡ïG+Û”¦j u¢2k‰ Ú%-¬t0i¹Ça÷qF7ã0ç7¡®1;!¦Ì¦þÅK¶ (û©ÔŸØÔn ­s7PóK ÁÛ£Q¢©Ð§«À<¿tº»}ÜÑî³4_É«ï5Mð¯§7Ø›êÍô¿ë}î}ƒ8}Õͦ(K™ÄßÁ?,Hâç”S=R-M…ÅÞ--—¾ƒž—ªC+¶[ɹtÝW†Âçw ýƸDkn¶1YÆ@' ìMæmæækæ»`¢GÌ?ÍúV¼¥X¶u/8ƇÖ'Ö+Ê6íÎvw ÝøŸ­¸›‡åÕ§¹–“üÊpnË~ÃyÛùÂ9êTq÷»m¼Þ4ê{ùŒú3£(—¼¿€VÚRøJ¸ Ĉm¥^ð¼_¥:r™ÍQÉÇSþI´ÒK¹I™§¬PVCß^PR¡E×SvòÅr9l5ŒóKpà‹ú5æ]æûf±ù©Yjž3›‚Ç­bqÞzǪØ)Úº½wð ,ñû‚ÝÈi鬚> UðZäkçJÝÄmÎ1ÌåŽsç¸wº«ÜÇÝ·À@.¹q`ƶ×Õ»ÉËðîô^ââ~€º=ù…|7áa®ð‰pÑ®0g°¸P¼O|ª'RªØ×Kš"eË‹åÕòf™õÜ÷S(O)Ç•“h¥.jõ õ(´g-J¿N7uO£OÕgêôçôtJ"ÍXmÔ2ë!.Šæ sùXá´ÙWæq3`Õ¶$‹L·2`{ˬ'¬gpß{áßY&ôæö({"æ·vm´V/ç.ç>DÖ_ý[Ö× œ¶“—DÜßç>1|mÞàÿà[€ÿtßJÆ 7ãï–k„'„§…=ÂGÂqá$"k’ØKL Äû¡é&K«¥Ç$^¾Iƒ{½ TP6+û”ÛÕ­êGêçjm­¦iÏA Ü®/F<)Ôw€ÿ@̸¤×@\H5fÐEU3ͼÅ|Ö| º¹¯5Ì÷k£uÚúÙjeKv¢=Ôn…8šæ|޶kè>°ÓýÕàMñnõ¾õ¸Ò(îî£ âA#ALá6 Å£`æ ´}], ¬OHÏJ¯H'¤ß¤?¥.à&lÌAÊ6ŒTª+±JgØáåe>p}‹ò¦ò­Rªü¢tž'ƒÉ-¥¹ ›ÕßÕ©P=Kµ—¡möh¿i¯!V3j× ¶SI4Fñ,ef³l©Ÿ F2”àsà­ ù^µ~±ÙÃíT;ß^ Ô(¶ã`—»ÀnX?M0ÀìXÞÔÃÔïW™Ó“I¡ ¼©-P2paœ˜-®WCkÇJÓHDÈy¹ü°¡LSö#.±;¸¤4PÛë R³ÁIgàNÞVßGDj¨5Õxm’6Úm‹ö™ö',²¡ž¬Ò‡Ã"Wꢽ¾Õ¿GL7 Ñ»Æ" Ë«Æ×h³ó†hv¡Ù[C*lÜ%¶:Ï\Ï\n>B3ž«Ûnî2÷"Þÿ Ëm„h¯Y]íS¬V:Tð\Ä|6{è)ë3«ý…}:¬ºSm=ÊçÌ…ín‚&ÞÞǹU¡u:R6Ü$÷V÷C÷c·P´‡×Ès+TÚ:oƒ÷º·Ï;çGÇVæ¶P¿cKí,a¨*¬^öÁ{ï7‰¯ƒ!ü)V–š‘¤K7K ¤Ò£R|¿\$¿-—Ê¿ÈA¥%"E¼: ºÆÖ*ë5uI×QG· Ž^Õ?×/è£Ð—ÍÌVÀÙŸ¡múÂçàÞ"Áâ{ØÉöMv[ǾîÜ þ¾ ÷´×©í6p»»·B¥=J9ÓÇX¶4Ç+S¾Se>ŽoÆÿÀ¿!œªØ(ÓóÒÏò»`§”6*›¥þtlˆ©åÙ½¥=ãîÆãeD¬·ÏÑR%†N‘ ì_a>j¾Šö¨bÕÏzÆúÆzÏ®å vJœk\ÊäâOKÔVbí<ÄÙ'…w„½ÂÍ` ae‹ …ºH}ÁœR”Ùð’Be¯r@ù¨– vS'¨ùðPųìtXà óG³2XB޵ÀúÑ¥båh{œ}»]djÛNgç)'Ó=àÊ ñ‹N•ÙT ÄŽFü§ü!~ÊÒÜ&‚Æ®ZI²dJ¤éÒRDÁǤM°÷Ty’<ž¼YþCn¨h`g·)B~^vAqÕGÕí°ôÚhXú\ÊŸ8©•B{\Ïéý=W ¨ôµ^ÙèhHPá+› ‚[O[›¬åö“öJʯÝçœr.:7νΕÝÐÛãÜéîîƒÐ#/>FùϹսx¯­gy½½‘ÞDo–· >ü4ø`±”U U™kÁæYÕã[ƒùtçñcÁæð V¾Ä¿Å€‚û™êדàëã„)ÀâåÂ:hõ]ÂAá„pV¨,6€o]Å0Þ©â@‚§ÄW¡Þ¿KQ[u¤k¡zHäñà KÁqŸ—vHAþfÔXn'Ûr ÷dyðbü2"ñòiÔaM¨5^IT)c! •‡”g•O(™ÀŒ40Äûµ§€}ÍõÎú$`ùgÔÓÒÁÐŒžF:°ï1ãiã%ã#bŠ­MÜß—­þV6î\¨ª¬êö2ûWûzg‚s§ƒ(totÇ#ö~àNöæy›À?gý£*s;Q]ÕøIübþqhÍJB¼Ð ±i"tÞ·B]±±¸H¬Fϲã%i¬"w·R^#?»9 Ê\å5å+åà_MUW3U¦‡ö«ok£ô,h›5àµ?é¿éÂ{EããC”8Ýœ?ÙnqÀÔ­ÎÐ$¯ZoZŰÛêv¬ÝÛdßa¯²×€Ul³÷Ã~û@ÁÝæ<o>ì\p"ÝûÜ­în÷K(¶8ê®L|]àñ‘B=¡‘ÐNà)Kh˜pXíDÕCBCð‡(ÜGG©3üéœÔAî)ß'¯”_Â]|$W®Uò¡WßU¾WnV竨ëÔÊàDÍ ìX¦ÇÚ/Úh¶Gõuú'ú¯zC5#_¥Æ(s“ÉYŽ•l­†Eí\xÞ¯vG…î,rbQûéî ÷ w“[ä¾í xÍ=¸:ÚçÝï½ë=áqs*“ölÏOàgñóøBže- ¦ ¡DˆÛŠ_ŠÇĦÒuÒpàèDøèlDÝ'qOK§¥KRxª+ߎ¶yK~OþNÎRrÑBOB‰P.*±ª¢öRG¨£Õ)êLue@½Hyƒí´ ínXÜ'A¯ÎÅ‚›¿¤¿­;F¢1ÁÈ7Ö»Œ½ÆÇ°º™æ à?šgi¤è:hK–eó¸íV»¹mØcíl{ŸâÜãqNÀë¹í\ÑèNCTYå–ºm½^^0óløï=Þ;ð[® 2ñÙÖ|¾?¾ú˜†%Ü*<Í][¼ʳ‡Øí˜+N3Ú KÄ*’›ô9ÒÒÒqx^¤\Un Æž(OG ?!obݨLŽþ |‰{£­ÓÚé¼þ³ÞÓl.FìÜcÖ²®µx«0écëõ«õ"eG{„i?tÚ ;꤂᭦\_6WéxÓkî÷¬ëµõôúzLA®ð÷Þ÷Š=®°2W´ ˆÓvø”ð¬ð®ð%Z±T°ÅÎಉˆk¡"‹ÀjßÃÝœOUþ+IÑRò¹–„Ľÿ2;õi¥ôløéK©6Ôs–<-¾\^+?ÝU,ÿ çK|M©Œöî§f€‘,RŸV_PïЖiÏh/hµ¯¡AÓêC¡A§èûôƒúXu¬ÑÆPŒ¾Æ0#ÇxÁØj|€ö.1¾7zš}ÁY¸*s§pJh%¶‡º^!þ(þnP(?-o’_*þªÌPGhiÐÍ[ÁÏh`PMuMOÕÇëóÀz·@Ù³ÉyÆÃF¡ñ‰ñ‡Qq1Ë|œþ3ÓÆôšf=hm‡†þÂ: ÖÛØn†N´ÚËísöŸv]§±ÓÁ‘ *w:¿9õÜhÉ7ܯÝãncxªæ¹°×›¼,ïvo‘·Ê[ã= 5ÉUæÐÆÃùéüCü:þ$ Km*šWŒr®–ÖIG¤éZY“A“Í–ÈÛåÝr%¥‰b(4r†²FY =§ÔW›¨Žš¤ÎUªEj±ú)ôY@k®µÒúhƒ´{´ÚÚ'ÚÚ¨ƒ*4&™ %͘ÿ[ˆ¯¢ýêƒE²|ËÅÆ*šçqÌÿZ³-øc®9œñe0ÅoÍV«“•jM´fZXŸZ1v» gO·oƒ&}Ï>bÿ`ÿ žØØQ ³“Lg8Õvç=¨Ñïóà3ƒÜ™îíîûîa÷<4w¼×Þó¼!ˆÉ3½o=êçï6¡¸2̓©Ç7¡ü÷)ü^þ0ƒ8“Ms±>æùCˆD­%€i%þ"^Їå§Jã¤YÒ|é!i lýé;é ˜H5¹‘”[Ë×ËŽÜCN‘G ¶ÊÏÉœrÒ^q•3Π-ç‚ñ­6×¢%_7÷›GÌ&@.ÝJ²ÆÁÆ´ ­]ˆ¥ç,Înm vO{xq®=Ñô-»Ä> omì4‡ëÎLg޳ÁyŽr4CP]Ì»Ò}Ô}Üÿ”Ëü·Ÿ—â-öîöžñ6{%Þ÷ЕiŒ#À×âÛóß h=Ž_ͯå_á·ñgøßyN¨,àÕ–ÐW(äAÇ/î¥Ù‡,ƒŠÍ=TÅNàS+€]å80¡›à÷*ƒÔ¦Z m¢öö¨ö‘¶ Üá½’‘dô2î5Ö¢.1fmÓ†"šdN5ß2ß3Ûþ7ýÃÅnJûZ¡ ñÀ(>–ÿš_/xb7qŒ˜#ÎƒÅïg3bz¡Ež'°)_i05Ož#?$oÏy á¤ü£Ü픬ìQÎ*uÕVjGš…5T½I£NE4]æVªFiÕµÖàÁŠfi´°²ÑP±…hÑ=Ð~Ç´jÀ-º¦³>È›v7W¿O\*ðc¨œÐêF £¥Ñ–òo{}Œ4câïèAÙ¼ÁüÆTÀô‚×>n=g½cí·NZZuìëlÓî Ö?×¾1klô{è¼æð^þ{Ìúg´tU·±ÛÆòjy‰hÙ#Þ¯Þï¤ãªp%øs#py'þùÿ­‡‹‹Å"‡h”"m—ö€_T‘“_”ß‘÷Êgäóò%¹‘"+–ÒWˆxó‚ò*0ì¤"«6tp¢Ú^WH³œŽªßÑ,xfáfIZo-E޶ž¢ÍÖæQÞ¸ª÷ÓS€ç €e…z¤‘M:x-Yþ!°Üû t7£ÍO™¥PWpÿû­¯¬Ÿ­ V=û!èûCö´(¿œá°à§ƒZz<ârŠ÷¥÷¯WƒU(¾2ŸÁßЄ²B{ ÉÂxá ¡¥x‡¸NÜ(Ö”,éøèzé€T ~ü«Ü\=j'BVïVV¨‡Õ‹jœ–€Vn…zLoaŒ1^1Þ3öß brf”mƘ±f=3ÎŒ7ƒÐj­Íö&oʦîd&š=ÌÞÐŒ)Ðö#L 8¼8|ÔúÖº&ü>ZeM3ÍX…‹ ³þÚ!_øüõDׯ¯;ŠÉâ4è’½âñ8¶¼\L9x…4/ê#éô³t‡¼ù¤üªü¦"s[0LMOÔûëÃõ1údøù£úz}£E¬ëÁ™“­4êŸbZ§34Bâ¨ëue³ã’«Ð܇š|]ÜzFØûx‚Vý™-½$½*”ï‘“ [f(?*¿(¿+ÍÔ–j;0¾Aê”9µ ÿu*#ÚÑ2ôåúCz-p„&”OÔí8 æ5ãmØm8Þ@Z9£’m5´šYlþÔ+ºòAë)Ä•#Ö)«’]Ͼ‘¥³=ÌeO¶ï‚V{ÌÞhh Ä©å4qZ8mœ.Î8'›rMvs6;[¡‚Þ†8fÕʾŸ;Áe¿Ä}È}<ë°{Ò=ãþáÆx,ßH“éÍðîo|Ê~㎣ª×j‰¨Ãr²ø™ü]ü xE¡…àAµ¦ “„ùÂ]`Ú¡ÝêˆMDQÔÄ$1U+Άw¯ˆg Ü«I {@µ??ß?¹n‘&O’WË/@;ý"×PºA7=£\PÔê0u¢z Tá}ê³ê«ê»ê×j%Ø@}­/Pl”¶ÞRWOÐ%ÝÔê™z¾>S_„ö~J//4ªMV†€¶õ“…–4K¶æÉ_BͲXÛîÕÄæ¨>{¨ç$€Ú¨Å<çç>çsÇuÝ‘îhÈ—¡ ¿upqã =/Œô,CòÜ*4^[›oÌ·Al6QSƒHI>Äoá_ªWb„ÊËKCm-v -POcÅ™`^×J­¡,öªË åëÀ°úÈÙòL þ§òŸ¨U™¥,ÒŸT”K¾ö±Z Œª/ä,í>mƒ¶]«¤wÔ`F?ÔÄ<ýˆnÝŒ;Á^¾2*)Ì4š½˜æº×³Yƒ¬+ßzÚºÆÖ`WSí7ìÆŽê䃥Üã< ºÖmëzn7÷&ׂvìçex[B󬫿dw;¿xÀ8H]!‰zÖ—  læq3q–x;Çcâ·¸ËáÀGÆÁ¶ Í{!ÒOGLÛ*&›Jg¥;¢ÙTe¶2OYL3¶)Û•ý@þÓJ)"ÿy¨hNBˆQª ª©f«·©Ÿ î×Ðêh©Ú.íc­D‹Ó›éCô‘¸û"ýý3ýc´sÓ1ûÀÃn¦¹4÷™+Ìs¦eõ*.°VÀ¾¶âíYöû9ʈ¯â´uFáÞY^ÜnçW‡ÍsXäN·¾ŸòM¸‚*\4ü!‚×ø>Nh‚hÀVv&Þ$N爬ç•E³ç¡/¿€Å7–š#®u‘I°ú¹Òr°j: ,çcù"yº2S™¯()…¸ïOiå£öªö\æ¬!ZçÃÒ  AØ÷47JC+'ë÷êëOëoè;q¯Gôïô*FMX»nÌD«¯27vï×!BôG¬› ¹Ãü<æ$ådAƒ°ì›­W-±vK»½ÝÇ@sØ üšPd#œ¨iîR÷c×sIAëæö~f½}…U¸ü~mBˆ‘Îàç ¾¯àŸF\ØÉïá÷ñ§øxáZA'í#Œ& S…™P㇄ï¡=ê‹æŠË¡ÈŸ7#*| ~$FAywï&eIùàwI÷IÓ*KßHåæ4êÉrRå±òbà0S߯Ë;åOä¯äoäz´nFº’E}¸PVëXP3õ:Dìh$âÉTê-{>ô„ú¦ú¹zL=¥þ¡V‡ŒG|y}šþˆþ›Îu8 ˆˆèËæ ¦鯭´ÚÑ[ð¡OÍ£æYšX˪g´Yà†ëQŸÛ­¬ÏaWL©_ =ÀFÒ¨¹{Ü^O³Q>¢ÁlD`>Ðz³sÌùÝ £ïD}?áî¡Ù)?Ñüílo¾·”ÆN«PN_#Rt©üXþaþþUÔu __hV•$^*l^Þö g„?…*bMñXgª8Nœ*Þ*ÞU´Z\+>'¾.¾+î{©)%ICÀ`V€½<+  ß/WQX†¯LΰºGohÜcì1ú[€n‚šïh¯Ès>p$'ŠªPžëËÂ3¡yáŠÜ•|üùg¹ŠÚŒ- 6¼ZnhÄWšƒO¯´Ug¼{Á­ç W¼Hs ªÐüÐJ|¾ßŠ>[ZŸaÙÕŸI_I'¥Ÿ3"å€\GnLìA„Mt‘“¡IgËk(Š´S6)yÀ‡;Ô{ÐÊOªo rT¿UÏ©œ îØQë¦õ×n„7Ñ"õjz=½½Þ|a”>Šô ~Z?‹èÁ4 l ƒ2Êìß ,=lÔ ¡ˆ#[Í6ЀÝ#‹­w¡þ.IÄ‘ÅÐÙÏBÏo³ƒ2ªë4‚¸ šïC'Ý}Ê-u·{ïyŸ‚3½Z…òÁ²ø\þN~+_>õ5_Cj/IÒPhñ†ò£àü‹€O*O«›Ô#`óµ5QÓ€ûÙÚ$íníaí&}ƒ¾]ß­76šƒ¿O1n?¼dTæ4‡™¯R)“ö\in¾ëU)Ynaw(øäYãwÜWè»»Ìûi¬r·¹×¬Z%ñ1ë˳7#§58Z»×»]Üîî³î‹.Ó§~Uš—жهO;|vÙñ` 0D¸_\)î \þ6’åןæ­äHËàßghõ´ê´G7ðÀy½¼QÞ$o–·ÈÛäääÎàÙÊ4ÔÃ*e³ÂüªXüIœ#-n’Óå|y9°=J«¦MÖfhïiçµêz]Ö-èÐ{ôgôWõúý’^Ýh ¦Ïì­ŽÙj¥?ôÉJóIsÐæ˜ùÉfx!^U³;Ø2XüN¨¯ãPàõxGptçM÷m÷ û¡÷±wœ4WUjë(w?q8 ü©%ü¥/°3Gfù;”vê¨Á ¶F{R;®±~æÃÆ4k¶µÌ:ewÄ^ŽšZã v3ÜIîQ(»³ðU¦ªÒxšÈ{|w´v ¡®Ð†foÚ¡z‰‹ýuo40ûûäòp™sr„r ­ ÁVT ´¾™©MÐAË}Œ‰72`u3­³öE;¦‘ƒPßUÝšn3· "R*ôÑýn¡û¦û®{Ä zm=ž²Ž¡>ǪJk  — ŽD,ä—‚-XÅòkùõüF~S(»ŠP[¸Ox:a¦8NzNúZ*•‚²>4™ú8¾‘ÏÊ×)âø e"ôÕ½°Ó—Á?WŽ+*ÕÔjµ›Ú_ÍB ¬= ¥\ ÿ¢gça`w»Ìêöíöaû°ÓÊ}Ø•½;½»QÊ/½o¼0õßhܪ*åՇͼ æ: vs;?P*|+œØªxp¶×)7x‡¼K> üìé®öV¯\³®5âOÖu[ïÍÙCï V–¢ÕOÒè›?¸ÒXk8´ â4šúZ¦˜Ö@;Ëžh/µ×ÚOçœÛ©G°ºÛ5>À½Õ½×eyT¦7ÈËô&•Þ å V¥~À[ùçx–-‘$ô2„ñÐ,ŸåiÄý÷(›¥²[‚™vFôÏo¦õÖÁؘÇqñ$¢~@j)µEäï%åƒ7HoHM ;FË·Á[ë*(oé øéWJœŠh¡vQ«ÒÌf냠Àk¿h´xÝÐG r®¤Ñ/~¡GÀªYN_UÊSX‹šœ,o—¿—•G§DªÝÁàïU·BÃÔÔêj´¦Ðõ2”}(û<í6í°Ý}ÚAí„ö³ÖµÝ5;MŸ£ïÐuÃ5w‘ŸDýM/Ï s­¹ìuóRÕã¡r–X/Xû¬ g¡ÃFÄt(šÞ@ýû`#OAÿVñb½ž^Ž7Ë{ Qù$¸-p¾_ƒg#õŒÛvç§ÒÚf¯!>äÏSFî¡*n4ïmâ³@6ó®†Tq›­‡À²Ù^”^“ФCÒé¢Ä"› î:–>M¾¶þ q¬«¦RWi«ÈP@ý•ñÊ…E‹5´ä·Jê]TR¾%ëKgë&\T#4Só´Á`0·ióµÚÛˆ*Õa™¡Úê×ë7‚ÉÌD]=­oÒ߇þNÿAo‚X?̸ÉXbÞ¤ð£ù,þþQ aUšßE$Ü$ä€A°þ¥ÚЯAÿ[J†Ô•f9N•ÖIÛˆùž‘jƒë²Õo“7€áË¿ÈÕ”ë”DhæåÊûJxœêÐ9¸QOZ×õ}5R3´\Äv¦ÇèÃ|c†ñ‚Á²éjá~dÛ²otÒœÇõÎVç ç Ð'ÖíêŽö²€›+ü¾ü⪔ß ˆÍ‡_Êßß w@Œ†¨’#õƒ^[®¶U ­:Scó=~1.óî0—™…æ:Ĭ“fU«Õ\T±n²n±¤ì¾"ëmëG‹­vVlAjˆ­]t[ºÝ¡nÀÓ<ÛÏœË4çáª4¶ÁWáo_~œßl(\9T˜,†Cç°Qê•4žÕYê+“¦KwÝŽÓ¬h–ûÜZ¾U^õýå Ç*õ•Vˆ7Šb‚•ôU†*c•éÊ\(ñ=PâÑPËÔª°ŸŽÚsÚ‡À:¶ndî±’¬YÖŽâ£ù>–>s+¿ˆ„_Gã;‘B´)L'ÎÉVß|Xþ¼¸EÜ/~&~-~/NƒR~XzŒz'[Ê]™¥¬PžS~ÖqXýYítí¡õ®Þ¥= ­€ÎÙ ¤> A¤º¤ÇMކ•;̽³-ø„ñøGZí5s?XôuVG ÃVš•eM²¦Z·ÓXÈ{Ö‡Ö)ëw+Ò®g7±ï´—CÕµ¿£ÞåJN ÚRu:;ÃñÎ4ÔÈ*çYç燭 qnWo"öþWþwž­x«°TøF«B1ôgÁÆžß‚†$Oš#½®!/•¿@{D(U”êJPfºHyI9ªÔQ‡Ð̶Jß.õcbFu“´©ÚJmî5,ñz½³>*àfšñÍXÒSú‡ú§”ùÑš¯‡qchmß?Áh˜Ba+9ßn®1Ÿ0ŸFt>cþj¶³ øÝ&‹³ÊÒúؾ}ÄÖ²™êÜâÜ:yu²ÇÙ‡zùÊù þgçw§²p뻦m]ÅíDek?OóYánqwƒËwôúx¼!¨µg½½Þ~𦫢)çØá‡ð©ü,þ^~%­4¾—o*H‚¬ek> ¼%ì.b¼(Bõ ö½]¼S|’z?ßå[K¤,é'éœÔ–Ö|Hn´®Ü¦,Ÿgk£d©ižÒ#ê‹j¬ÖK{]Û­Ô~Ôî2õ†ŠÿÎH4W›Aïül6¦±‘°í‰VU; øCûÊYIÉÐ2·:óÀóÖ;o;×»2pæM·ÔýÅe,z›—M¹05ø:¼Ìçs ï–òÏCß}ÍÏ×"2‹B?¡PxVø|£bÉzâu&XÇaØ}]D‘¦r?9v)Ûgேañ½`ïEJ©ÂôÉûêgj®v«¶\{CÛ£…l­ÏÒ#;¤×ëk¼g4XË|³®Õܺqde(dŸÝÞ1™©Nºs¯ó Pó5çGÇsG¸ŸC§yc½G½g`ã4ŸbT4ͪÄó¼B|j6µ×›üÇü)>÷ÓV>H'Ì€Bx”Öïª.6ñVñ˜èH©ÒÝÒj¨¯¤R¬| 8Æ`ùFðŒÁÖ¯Un†»Gy@yXÙ¤ìR>T*AG³y©K êBñ2&: åÚ,:h¢¾Pß§M+®]ƒˆ2ÆXc¼aĚט]ÍÙfx@u°ÆRáå/[¯Y‡­¬º`#Mm ªè&DP6>¹1Dqº¢-Y ¼à|褺û=/¸±^衹´jÓ6?näFÓº) ¡çî“ü‚g3/ñQ4±Q`û0°¬èïhí5N¬Kk:EJUiT¦ó³leYKï$'B õ¦>Å¡`ì£ät9SΖså|y:pnŽ<_^L(XÌ+”×^Ñ_U$ï”wƒÝËäv n±:öê‰þ…怨?ª¨õµÆZ3mpñ=ícÔßYZµz¼ž£è÷ëÛôíz”QÍHALf«<¾G™(ùæ§æ×æ síx°о“Ó\ëŽðêx¸öMÞrïï,ä'ïiÆhÊ3Èá3ùIðèÅüƒüÓ`ÛU…BØõ#Pä[„„CB¬ØPäE ü©¿4Všmx/é˜Ò.é‚ÄfŽ)² ëÏ”'BÃ<‰¨ôžzPeùší ÜšéÃõ­à×"=lD˜µÌ¦¦jŽ4Ç›·@•±õ¨€SGÁÀ Ò­ùˆKÏXŸ""±žŠ6ö{Ë>iﲿ²[9’ã:½i½®çh•àÍ.Ðë.·Ð}xέåõó{s¼e°…/<® šxT]þ.~?”gù´Ó…m À¤7Äb(´ßÄë¤ë¥!ÒBi…ô)íÆÑNåEh¯¯ Ä*›:Æ+wCA|¬RŽ(g”s4Ÿ´¹ÚJT ž=D©ŽS«Ï@‹ý †Í²ÄMÓRµ±Ðà º®=J¿3”]ò-´W£!4×ãˆñx†jZÀ÷<ós·yÌ×Ú &èoXïÞE]FŒ»‹v[i ÕŲ—@l7=ºû›­éÖlk18õ&XDжí!ö${š=¼òiû`Âר‹ßPµ†ÎõŽýÙÇâä;w#_uN âµdºóÜ÷ÜïÝJ›ÛÛÖëíóÖxï{G½_BsТÙ2ÑÜuÀÿ<þ]þßê¡è vsć çωÍš˜'Ý%½'}#ÅË‚lÉÃŽË5”kCas(‹a-Û•½¨Ê*Ûµ¤§š­Þ„|˜F˜vÒìèïÔ_Àªh´ñÚƒÚ3Ú6í”öX\ß5uƒÞ_©#†p¿¾RF/B½}§ÿ¢×€õ 4n6n3î£u–÷ÇaGq¦„ÚËBô`3öC]EZ,Áêi±µVZZk­wÀó"ìªvûZ›åÕʶNóßúÙþlÚwh6Xëbû.û>{µýôýFÒ¸Ûál/6+®UÀf<Ôê, †®BØ.½/>—ÎJѰȈK«ä ˆ:ŸÈgäæÐ¯·Ã¿Uºª pï?ÃæZhbÌ`¤OBÅ~‰»þE‹Ñ›¥òÁIX¾ùsúûúÇúq=ÂèŠxs3¸è¨‹—¡‹D¨¢ñæãðÑÝàæ ¬w­pÇœÝßlçÛË`'ïÛû¡z~¶ÿ„_Ö€_²Ü·;hfÞJç1çIç9g³³Í9ꜤL8¶ÓÀw”›/ÍvsÝ|wº; 6ß]è.u Àä7¹¯¸¯»o»ºŸºGÀÜ~G-µ@ÌïHÙÀ½hFT÷„÷ªw‚Í*:Mý¡cÀzž@îÍ/i)èBo!G˜+|!œ~¢ÅV¢,Þ$>'nE,8$N‘æÈ{å8e²JùLQÀâ?„JY¦½¨é¨—z[c²±u°Õ8N^Ãl{¸ß|ÞÜaî…:üÑdkÀ²mr¨W÷´•‰ZøÙnʽYOs»v;Ÿ9ýÝë¼Å`)gX&\i4Íÿ‰æñ×ð×ñ:Ÿ¥?šŸŠ²?ÈŠù#ü¾‰ÐQHFsÀ±¶".D9œUÄ&b;±¿8\|T\+¾Os2KÓ¥EÒ° ¶?ÚLpÑ&Ê`j`ýÕÁê15 µÔÚj“µiÚRí´vF³õ¡ú4}õÕ–ègõÊÆÝF¨Æ ˆÐÏ™Vbe¬×¯¹ÝÓþ q8ÎiJ=}›œ—œ‹ˆÂÑn,TEk·ôÄH·¡×Í›îm ™j„«Upoþ8`:ðuÙi¾®` xè!¡…8M¼MÜ. PbS¯W“ÕQê½°Ô/ÕÚ@m‚¶A{_;®}¯U×›ƒOvÖ»Gê£õ9úÝP»õoôêFgð‹ñFõgÝjÌ3–€!=h¬67ž2žƒÝoÅÆ'ÆÀÊSÆ9š+K{$˜~îLYWÃÌT`èDxø-@ÒEæÝhãGQÌM´ÊâÛæû`-lo£4÷íOp6ׯ%V¥žÒžˆ\CÁe3a ³Àg–Z÷#~­³6Þ¤¹«Àê¿ê>C«RV±k€ë^g·§™¼®dß@¹£ìñv®=Õ^öó€ý0e¦m·%è€W7š_~È=ìsKÜÓÀ׳îy÷¢ËyQ^4üâI`+ë[¨F} Cø€£· wЊâñbPL[‹íÁëz@á&‹)âPñ>èšòkU•FIßJqàÀ,·…²|ÿ‚²Q½¨vÒâôwõXã~è•cæVe(¯ßœ¡îz0°à›2pþ&ïvBøÞn”¤Üó lþ0CV£þÿÂÒ(XK&ŸÍçòùP1þW—G’ OŠwH×+sÕ;ÔµêíNýc™ñ*­GÖ¼©ØþÁ®î´D¬äÜé,ƒ¥žp~†ïµóy‹¼»¼õ´ïL5Š´g–(°ùw+…Oa“„nâ½W¬ëôïש*¿ûÑeµR¢ÕNj­·–¡ÍoÕ5ÆÁ6Ÿ4ž5¶Û Eª™†Ù˽ È·H·Ö} 8÷©û­VÄÖМ l»Ï[áíc9eªQÎlß z&IxHxC8(°ÕZî@[µFJ¥@ÿhµÛå¯åHES2ÁÈ–QÆËGÄZ·¨¯«½´Bík-^gûð¥nzš~31ôáû­\šÏûŽñ¾ñ°ÙÒjÖqL…×÷DÌêL’/¢=ºÃÙå°¤4··› üþƒV®låyðÿÞ4ÿ¯Åõ1°½–bGQ{­†ŠPæeârñ)ñ5q‡¸‹Ö9:'ÆHÍP“k¤Óˆc¿I.”çxZiÿy‰ò9í…ò‡Ò@eó/ õ•íÜ0Cƒ˜¾ŠÖœˆÔj#¢wÐd­§vH»Fg+~ŒÐ'ƒwßþ´A_f\2†#zgBu>@yû[áË,z³½ýª½Ù^$³hƧ€w“í[·Ù÷Àûž¢¹õŒm ŽŠz\vß™î÷÷6ÊÑyÎu¼$Ä£T°Ël/8 Jd¾·ÐûŠty5.‘c{­(¼”ŸÄ?ÆÂÍã/òl¶\ána¹ð88Ó˜$N£%G’ÅÒCR!ðœéÚjÜzü9£ÕÇý 2le˜Æ$ó!“­´ÿŠù‰Y‚{Ñ€C7Z§¬Rð V´]ßn–7êíöw~B E»-Ü^°þ›ÁX»wzK½ÇCû¯øØò¿‰…ß>Οä; ‹p§„ç¡¶ Ç…Ÿ¡0Šïi*¶ëÁéíEñ×x7S¦1J¡ºŽÖXêN¹Kóh=“g5Þìg~bF|©g7£™DÝœdg¸3ß¹,ä9gâó5´gÓ@oTз,[§°õUâüµ|~ ÿ ?FøF˜ ^ñ”X Ù£ø5ÝGN“ÇÒ>%¶’ˆf;R%¨‰ê5S]­>N{í}¢2~‘¢±)×v#v3~ù§–ª§ë˱Ÿ…ŽáŒªF#ÊoéfÌ2Ž¢-j›¬Ç}"p¸õ½æzèá­æq3JB,½ËÚjÕÂý0…r74É»Èxw’ûª»fÈÞPèþWHÏU£|QåAþ{¾½0@¸‹VÕÚ&ìB½Ÿ¢ÄDq:þ)Ò·»¤iˆ£¶ªäªÓ T9­²ö€¾м¦å[Fš[ÞÂbÊ]ÎÓÎ Ð?F°–I]è~à~ •yÖe3*³ÜÐ"³«ò5ù³|+Xû áMᡦ¨ŠIˆ»Yb®8_\ŒØÛªò=éK´r2tÌSò»r5…WF)‹”§€{µGòçRŸVOA¹tb™§­@í€âi´ÞÄ«ún½–á=`áÙÐ…Ïl…§6&O6¾Ð\–a‰ÖsV [á?àÔw² ä9Žë®vë{¶7 ú£Û&”c5ü9 5·OøSè,N_¿]©­+u—¼Mf9º…J'¨¨ˆrw†f*\ >9CŸOh_Bç³yRš•­!Öm–€üÆî }ÄYçl µ *¹w0x#[Éå¿U£Üé54®µMØN{¦~A¹ç…?h¥¯8 Bk±í9ð&¼'Vn$wî)‘/ï™TtÅV:ÁJý½÷©®š¤Þý÷«§5÷}J{K;ªý¡©º£ß¤gê9àÀ¢ÌêŠa£ÙyçÁÙ’æ(3±#;´Âa«‹5vØ™m¯³·@Û±•ÄeØÅ8à(‹leì-î6·ÈÝéî†.v\Áز¼\obõW–V£ýWª‚çÔF,èò¨pLü^l%õ’–KKÏJ/J¹>`µ¼L¹ å+¥®z ­:’¢ ÓVil§™×õ—Îf7š—ÅÆ ö™Ÿ™lÞÀ>”t€aïCæd;÷8k¶»[ůo¸· ¥Ðúœi|÷/(G‚p§p,ö-(ïï…Fb'Dìcâob[É•¦Ió¤…(ÓAØl õ••5ÊäÊP2ìU~Vú¨£Õ•ê³j3í-YûÌ£)­ÃzüŽYßÁXÁ9»ªÃVµ¼ÖáÜì<ê< mÈöZØïŽòôV{?÷.°,óØå ÔãÿÝ ll‡“–ð?òçø?¡¤Û†ÑZ6l_×°¨Rá­ 6X ò.XT ‰åÝ_½å=ÒÏÒ3rC¥…b)]YfB#®QNÓ`lZ'­@eä;=J{‡–¿ñfsò<6Û³ˆò)ªXÕifú ZG©ÈúÈ:HÆÏþÌ>lïs~tÎ:­pøqåå÷Vf=ù,ôDÄ*â@b÷KÇ¥Nò@y¨ü"Ã[àH'Ie*oºQ}^}E-Rw«{Ôbõ€ÚH»FˆÚûUcûàùkðDÕ×zPA*Jö’µÍb+¸¦Ûí@cï‘”a÷:˜Ì žª®$dA©> ¤Û%Dбí$”*î)•Õj§9ô(ËJMuÇÂÊýÝúu_p_ZŠô^-ÄÀ1`j“¼¹ˆyë¼g¼íàÙNŽ`ú¤lKã»ðÝÁ_FÒ¾ãÓ BV®NÂ;ÍY0p·ý„Ñ4:TøXj -­:?úi¼”5¾ îéqéy <[™­ZSKÖhÅò9 ÔR:+ó•7•Úðè–Ô§ìg¥?^ûƒZíiC»,õƒ¯‚šõ>‡âë½Z‘ö<ëˆV¢qz€ÖGn­'êÉà¾lþ˰ߕú:Ô2ÛUk øÏÍÆ ðû³F Øæ­æFóK sKÄ…Vš5׺ña»õ!Té û´}}ç:Gw&;ß:µÜvngXæMn®;×½Ï}JåZ/úŽÇ%Øž\3ø_*Ÿƒ¨ñ¿ÿ 1ïw> 4EÜë/ FÁ.ؾ· ó„Ç…÷¡D«‘mb?xàDã7Žâ±²T]ª îÛõØYê# ”r¤ÙÒG`A?IQrŒ\On!Ëò9Cž$Ï„:xX^'?/¿&ï–ËJZABVe$[«X™«ÜôÐÚ“·ìÐwéGivû Æhãq°È¯Œ:fCóëË€·wg*8ÖCÎVçgª»Î}Ìd/P¬Ô=çVƒµ1et ,í^à‰kÀ­ü þVÚewÐê,ÿÔh¼ÐBh/‚bkh°µï&'¯^¢³á’P‘°±ØJôPÃÄɈ…/ˆK»%‹V›#ß)Ÿ“/Êõ”FÊ8¥@yTqÕ®@ã-`hñdQ,ÿþFmŒ–IYc+µGµÚ—ˆˆñz’ž¢çêÛÀšÛQô4úBY³Þ¿ã”Å#™º™ëif!ÒÌBt¿Lí ó-óCÚ]ô¢YÛêZ·+ ¼©¼9•f¯-¶V[/ùö "EØ ûX–L[èËÎö{:g¼úMû"xöõN†³ÚyÅùÒ)ušBm qûAK-ñö{§¼_iŒ/À¶XçªñM¡1nBNon†½ÕlD®#BŠ˜.ö–”n‡eÔP:(Ý•\e*,âkå;åõ5J hl§íoõyF ­]¼Ø¼‡fs×±RQ†9ÎF qžû¦Ë'¸9ÐKùáh¥óÐmœ%D 1B¬POˆC›3[£Ýx ƒŽRt…Bo­¹ü‘ð¹põjÑaÆŸ#M•Š¥ˆ§‡¤ÃÒõÐ2§äd5U½U]®>}û85›!ÿ¬.hî55DOÏkO€>îœw:„zN ݵîzw8­ÆÃfë… PãƒüZ~#ÿ?D`;û=•õ©ð• ÃzÞ×]#m‘¾†òþCÚ%$+ÿ!G)‚’­Ü®<¢lR^¡±¯£¡=é¯ßgÊ{¹ºñå€zuÙH žÐžÖb¡L³ô)ú­¤¼Ù:o[ôoôõúF¼ÑÅèc 54*™Ý;¨í/­£VG{™½Ü.¢ø÷›}ÉÞì¼ï|MûbTCéà*nW÷ðší${–×É{Ò{˜ó¾wÐ;ÂÖj)ôï/ ‘¿|Ñü3ü 4ê÷Å¥ÆBGAE{dƒGžbÅxQ†¸K|B|F|uð…xm¡H¦´ Zû¨TEn¬\¯hà“”{ïÙüÓoiýþ†jDX¶Âñu¶“V¶üM‹£žÉthòE´§l£q½¡Õ̦fKS2˜Õ­ï¡`Rí[`åÏÃÊk‚ñ´ºæ:÷CIVqkºñ®åvsSÜÝl÷àåío оxµÁyfñëùçøhÜ®!ØÌ<ác¡ô± Úâ±®ôž¼O~Ma ÷wZq¼6‰v",Ö>־תê5aA-Æ¢m–»OêëYÖ*{+êÿ°}œÖVYã| {ŠEÔd¹ŠÚç ÖHÔ.Óî/€…|È ëoƒe¸žo»‹ÖÎ{Qxv~”öl#²ûˆÄeâG([cà¹(eH¡¶Š¥¥ï¥»ägå—ä]r±ü±|–ö;o 4QX>HŠòªú•zQ½Žödak¸²œ¦ý&W =Õ@m¡NWëÒh9C±qÚD-Œ~9Ú‚í"yQ‹¢õÒê`‰OBq¾¨ïE›°€ú†Fë»ÃÈ(4Ö»(ßë{`[KhÐuæ³æ/Ð+šåZ]iå¶•ÖbZ™˜ívľÎyÕÙZb{%ÿéTvïrïwWº/å/ºÍ½T/F$æÑ8Ó3¶e88\g¾?„¿ êz6¿€Øé§4ŸøO¾2ÍÝ.ìFL¬eØ[ì/ŽƒÞÊCÝÝ/n†m²ü„s´&M¼”î½Xº[ÚFÁöÁ~QÞ¡(¨·tåå6åmåœrQi¨²q/¶Š ÛðQu-´ÏÛê§´ÖdM­žÆkXùÚÏ•åh°Œñ:Û»$ ‘-ÎL3óÌÛÍGÍ7Í=´òïfÀúÅúêlìZ6ovªó­D²lý÷}÷÷Wêb½€½×¼ÙŒ€ÒÍ™ ^P"ü$D‹ à{ÃÄQâLàà×âO"ËS<*’.HlE» ä5ò3òòùZ¥µ2@©£Æ9ðº‘êu­2ÛRkVD[¯½¤}¢ý %ê½ô[€æK€9ÏëûŒæõ–jYÖ‹Ö;ÖûÖP°Ú,0Ç|ûN(÷=h½/(·=唾ƒ(Íú…yo¶w»·Á{ÎÛì}î}Mk Wçv£íjQÞ7c‚½ù Êb­·zï¾#¥$Ѻm b/ÄâÚu>¢ñ+â6Ú=òk±#t\&eËÝ!Ý/=#½ ½"½#•À ~ÒT—=y„|K({èIùMy§ü®|P¾ _Ç)M•~ÀbOŽõ@c6šó™R¢T¶² ËÅOE­0¥õ"âû.õkõ˜úp™ùG>³TÛ ½Å»>Â2K~Ó¢)7\Ö{è}ôÛôUú«úúGúAÄÃK”gG9„‰@ì‘Æã1£È8@s‡¿7*›³VhØ^ÐÆiЛ‚K>èÉöEÿµŸO[[‹vlÌw¤§ºƒ¥¦CçN§Õ•×Òœìù¡-í ÜC"°f … ÂsÂføå^š9Y]ŒÛŠ7@} c&>$Š»ÅÅoÇ“h½× šÁ¶€üs<ô9émÚ ñ¤ô£tVj,7“ä^”+v‹|›<_Þ ?'o–?§]¦™¨§˜´Óôx%ìu%í6ýµwUTý½ï&ª³ÕûÑÚ¢½‹i6æêÏj ­ ´A>­B¿L[‡Ö~í}X;®ÔþÔ*Ñ\€ø[݃õÑG³h·ËÊfk³õ0OÑšm¬ŽÖ4kåò°ÎX•ì:vcûZ[´]ÊCcgÛ·"j¯¶7ØÚ%v‡í1¬8¦ãÑLñ‡œGAZC}Ýà3™B½!§Ý34{5‰æ³±YÞý¡©¾ð¸`uêÛnƳ@Ù>WÏòÃ…tá!áiá;­³‘&6‘®C™Š?ÑŠÀš<™0ðkù;ùgù¼¬)Ó”§ÁYN)‰j/5—öʼ^Sh-ÆöX.ÅWúyý”±ÌZo½i}…yÎb#õ÷ÙçíûÁùÞr~v¢Ý:®èºn’Ûö¶ºq‡·Çû‰åœóÕÙÖÎà7@æñwó ¤/Ñ…&µ°¡Î° G[d+²‘FÐ ›'PÞ™òù~àÚëà£ßËœR]©¯ôJÉT–)«•'¡Qö*_‚cœQšÂ£5h”‘@îiÐ(Õ´X­!tÉmÚƒ@¼uðáh-Ê~Š>K¿¤@]Õò"ß!øt#ƨk°9¡­ÁLTã6c¹±Vm=nœ6"Ìhxt‚ÙÎMãªuQ®ìýò÷÷Xh.5 Ìåæ s•Yh®5×Ó®‡ÿɇ·“áRëuk¯uñ…‡:v{¨=›Vf~füA{ršÎÎg¼Ä9G#ÏõÜà*ÙˆÂ%`Lí%Õß{Ä{Ã{Û_{»Suê NƒM½ÞÔL˜(| ofkœ±ÝfˆsÀXÖüWÒqép}øh©ü«üž²Oi«žUÇh³µUÚ1m°> l¶†Ùßœa>cn1ëAÝdZoXùöö‹öð„ïíÆN< ½ÒÉê†wýɆ­sÉÕ©_µ ÔÁDD†h©ž”"}ǾIùCy±y/õÑô·*º§wÓGê÷ékõ?õ¥Æ=`(UÍó=(¬¿Gä‡ög4S ÷;êeÜéï5ª:q¹Âšulô[á{A]±ê!Bª+µ—zJyR’fsF9׺£B;)¥|ÈêÏ´¤ÐD°„‘ÂrááK¡ØRTQ#ÏK/“*;†x=O=¦³ylÕ9ö‡íQ >FŒ—ÖÉo˽•‡Qo§ÔRõ¸ý†3Ê}ÅÝæ~êþìžw—ÁÁæ «Sue¾-ŸŒ˜sˆÿÚ„­2SØ]Ïvgfû›±ÄjH²4@Z„8ò¢ôª´Cª,À ê*ÉÊZãZc»žÚL•U‹âÂËêkˆB×Ö‚ºOƒ®Ÿ¨ÝÌX€Ø¿F{˜ñ‘ö+¬‹ÕXôý}úVàÃ7`Åu ÃèeŒ7°¬óÊS”ç1yž³ÈÙç4t¯q%×oæ~æ~å¶G˦zK½­·©:Íkj@kÜÛÐÇ5 ‰Ù#£qws…4«éweŽ…òºæo|%üxI\&}+eÉSå…òVZ»¡'¸ìX¨Ízêuê»Ð˜'Ôm¯vB;M˜×Z7hà!úÝà-OéoÑ,oÙXhÜg”?ÍÑî,ßœiþhý 5ŸŽXÅVYhä&¸ª{“;ÆéÎq¹'Ü^–7Å»Ó㊪Ӟ¸ß‹ÁÏçñ‹„û…'…#ÂÚeñ0¶íÒHyœ<‰V0°•nh‡'• ‹¿«M+þÈjÍVûUûVÆxÅØnô1‡€!±Gâ­ë¬ÁÖ"k¹õ„Åvžþó²]Í©ç\çì€îýÁa£Ê‹ÁGY¦Ó Æ\+®NãˆU¡ (ãGþWþ^p¦©òÀ#ŠÀ÷Ù¸¸‰ˆñ°ú˜ú °äSµ‹ÖSiŽ3›iÞ ”~è\d¾m~f~Eó7»(ÂúgX~ÏWÖ7Ö WìõQ~‡ÎZYý'Gv»À¸ú{C½‘¨·G¼'€0¡õœWçZG²>ájü2þAþeØø.~ÿ;ß@¸FxJ8&ÔÓÅçÄ—Ä#P2Õ¥XI—Õlj˜>JÏÐçè õ{iÆë»PÿŸÓxs„mÔA¼mݘÄf[.–?Lû¿kì3¾0ŽßÕÌÚfZã°'bË4çh!Úì!š'Wdî6÷›Ÿ›_›Ñh±FÀþ–ÀûÖêU[hÝm=dZë¬"k·µŸV‰†:kdí–v'»‡=€2;ÚwÛÙ…ö:øôn{?­4Âv½a«DµrXnÇÎhgÍú~˜²ôv;:Ÿ9‡ã4Æ]Çmì6£QN¶‡@|g¡{/­P¸ü3÷°{Üå¼h/¼Öh?ðp†ös¼…Þ½ÄñvC ~Fùl¼«:ÍÅáøh¾ߘoF+I §ù„sù…4_áQþMØÎ>Dì¯øh¡–ÐH`+-t· RÁÍïFÄ(Ö Eàçûi/œh±–ØH ·;!¦ Ùì¿…âÝÄÓ×!¢ì÷“‹–jIh]×NR ìp)H{ô€-³}Žt¹“œ$gʹòDByÛ‡ògòaù8x[´RGi¬4ƒÕ%+ƒ”°µu°6¶CqZ㫱6–ó±ö…ö‡EëZ ú}¿ášƒÌÅæSˆŸ‚Õ{¸…ÖÜ„j`²çÚwÚKÐFO€Uï‚.Ú/d»¢T§ìf¶'’ìXÇÅÎ6”ZG(ûi‹ô‹Äö½Ü%•Û*¢²æYµ…µ§Ž?›B JšZ'­@»Qý Øó íiýc±Ö(n²ù¿Ãa}Ûͨ/÷œI; ëÔ—;ÐzÀzŒg,íG+`ÇÚMíö&p6~ך2cXVÐ%§†ë€û%[™ï>ì®}œti³Øî,åZwà">Ü&Ü)<+¼'âq&íêÉæaÄÐÀu`$"0•¡®’¥Á`Ó£¡£s fJl=%h5¶†ÔãÒSÐZ/I¯;vI{¥¤Ï¤¯ÁçNIg¤_iÿ´h´k¼ÜZ桵{Él·Ëñ@òEPܯÈÈ5ЦLw=¤¼®Ä©=ÕÉêÀ„xí´ã)x|}¾IÿTÿA— ÝØÍTÝL}ìŠúqÁ`o®IãUQv€z¶ãívkʲ6á‰Ý 0€ÓÞ„XägöͲo‡_Þµ’Z}£ý‚½u¹Ó~Œ÷àðQ ðöYû°¸ ¸ð5N‚ÓÖáÕ±.ÐÊ}g8ÍXÚïí·:ßYìÐÊû9ëgÍΫNZ¥Œ¹Š_ŽCOpÛ‚¥ª® •ÖÃíë¦@©rÇ‚IOv§»·R6Kû€»Ê}Ì]ï>‹H/zºçz‰PoÉÞ`o„7Ìv¢—ïÝ/¿à^o¢ÁZoƒ·É{ÙÛæí€ÏàÛã‚1\o´yÚ®=/B»|"¿ž¾‚ |¿ Ñb¿ƒßMý›þ~8§ùŸÀ#þ䣄€+4 Q‘ÖBGAL A7Z_p¨pTâx!¬v–p;pá.ð·•@†'À9^¶o;a_Å´‡ÉQ¡ó¬pAàD6~RGŒ¯ êyQmp“à`#¥&ÀoÓžOÒ¾Òo­|!–ˆ?ˆ¿ˆ‚Ö•xØå+ÒïRm¹©ÜRî rwD(6£ÿY¨ú×iµˆïå߀‚âÀºò•[”9`nlöÏ åhû Pª/+Û”@ ò?GÄ:¡œV~RÎ+*Q´;h5^m¡¶¦}/Ù¸G ñéü eê¯_ÚÛ—¢®8!5¬l ¡^&£ŽF ™¨!¶ìB¡@XÚY/lBÝ0ì, ‡i=ìó¨•h1u[£FtÂÑdq¨8JÌsÁÚæO P'…âzqê„aj±xü¨D,Ï‹œ¨lmÍòÕûXÅGÄÂvƒÀÞÑN°Ûdg(¬6ÓÉ…ÍÎqÂbW8…”'½ÖºÛ)v"ú”ÀjÏSjíêÐT=ÜdB•L7—V¸^]áÂBYvZ¢Q±{шiÁó‘b½8/èµöxXo'D¦dð–Q°Ü\o:E§Xm¡·6»Å+‚Å{¥J   QJc(gÅ©X>Žò­yÖÛ‰ïx5”Ågò¹üÕ-Q+.¦õ[Kx®°Í¥Nœ£@]¡N'VÁÖo+ÔÖkç‰OÄê%z©~^çÀb8#Îi:l-䡯(#“r3ç€ã+ŒBc½±ÉØb»ÛÃཥÆyƒƒŠ5ãh_fÞÔ¡ã{@Ã…~Ï„vŸݾš}˜ÅzÊhf좚ý0ôz)´: 3d«3¦‘ MÉv2ϵXý³šçŠjþ9¨þåÆ7Y+ÀMÖ[›¬-à'ÌjP}Æ*Ѫ_ëÕMêµX=´-Q£µX-¨µÖt­“– ý’«EIãÀeZÛ¼­ŸáJkppcÂi²Ø‹d³1°Úz°Úö°ÙDXìØk>¬u)lu¬u-ìu#,–åTÔ¤½‚Ë·Á&m‹V†W¬DD,® ·J¢wk×u½“î×ùúáJkÒ¹¾Í;…°Af%®oqþkÖ†ŸZ¾¿üoØÛÿ4 ôP†*™Ête½ÂÚ·· ü¿< ðˆßŒe%KC¥QˆÝŒçÏ‘J´ºÜzi¸K‘´[*–Bc—H¥Òy°~ÆÃâh}qžØX9Y*"NÆV†](3[/o’·ÈEàgÅòAð³¹T>O-VaÚ µÂ+ºÒ‰¸ÚP(„L%e£,T ˆ¹­þnQŠˆ¿ö–(¥@^¦bÕ85ÔåU]íåÀÖ˜¥fª¹êeO. Ù/˲ Ûp©zž”D¬G¶Ì“5÷ •ÎG‘MûþÏìîßYóN.ÔsÆú}È'mødŠuLã¬c׃ÄÃ?ÚÓl.ÛN±G€K¦ÛÙàùö{¾½Ô.ÇØho»ØF»tï é<Ån¶Z·¯ôØŒi¶‡cbhßF×FÏFÇÆU¡}‡ý]‡ý=‡ý‡Ùš\œ~ëÖ£ýxÙ^¼þN¼l~ÏÕ3{–¹W…F¬7¿7ÿË|¹+g8Ä×ëÙãí ðµöð6oÃçòÝw;$–òÛ ô4Ãi“¾E/Òwëÿïà-룋¥>ºÃäÁ¾ÿþߊÞÌo¹ØÚ´gÚeß {ó±då¿Ã/þk˜ÜCOÖ‡Bgê¹útRámßݬ^ƒµ¹8FpeVû~\cjÓ˜»žŽÏ±Oýµ½ýÖöÛú½¥ývö#j8šN·æ@¿—»­bë uØ*oŸ·8;ÚfL&Öã jsl«ðe Eâßc'Wè¶´Ç(;ˆPh¯‡fÛbÿ{ÆÄÍ©Có§Ãuûw^±å€wø5Uðoêê¯L!9tǹötÜõB àв{/¢yÔíÃ@ÀR à¿b¨ 4êp­9¶ÿn'ŠÁ,ú(µîh+¬Cu͇¾?³ì[ÿ=GåJëМ‰ŠìÝ·ö¿ZzØÊ}&Æ]eC¯h­B²g½JBíu¹µü¶b-µðªV*oÁ¬…ø²Öamów6|¹UüñÛcT¹–(,×á`ħ.åtùÈV*DÓš\þŠ\íi5.\*™Æ¤ü©+Ç£ØZo›Ìm(÷”û4,+ ¥Ž‡UÉ(uo”™íÄ7 e^Îü¿S]Zkµ"Mñ_Wÿ‚Ý%×å†þçv¸^a]šã÷ÿ â ë®^öØ+}/ìiÍ[h ¶ðAßmªGZú?i“ÿ.^ÍXñB‰µRB¨l´S Z)m4ŸÖ·]¯lV8¾¾Ï_þNþ¯ÕçÿÑÚ„?Õç‚Ö'#6õ‰O„Æ·7Âèý¢¯à¿Û¦¸ÒúÄ'F£òÙb~®iÓÃüa†^b!ÔÍa©ž„ÇJ—ßA<Ú¨´n¬Nëd¾Ü€‹ÅŸ|Bøù:WÜ€«‡×QtOõÜxÜÇ7äbpŒ­2Ê4äâñœ)Ûm`s,»”e–²ù¨\lÕu?V´v´–T¨¬U6ÂÛ7+Ûàï;•=ðøÊ!å"q³x0³âfþŒÆÍ²ÁÌò‰›-3[EÜŒ­”°“¸Ù1DªM´F.ãí>k÷9»ÏØ[gL±tÆÐ;gÌœ±ò\/ŸæGxËaSkaSþŒábZ©æXxl6òQ¶{P=šõÁf|°Ùl¦›%Ì2>Ùì`63˜­/ËÖ–-¢ç‹ùü!þ,‘bà¹íá³)ðÖa9üÔß[ÛßWÛ†/. õìY¦n©8*ÕÏÊec¿§Á¯’á™#à›éðÎ9Jp1WÍ.²2ÆQ@PMPÛã½ð<½›)ê gºšMŸ˜¥®76ÒŒ‡mÆNDå=ÆÄåCÆ1ÄæÓ¡yGQ&—G¹­lÍ!Å!½!µ!DÜ_iÈ_gh'Ðÿ4p¿µÒ^‘•càAðd Z¶¿½¿»ýfâ C|âQ†øÖóåVÀkƒ~ÌG´žý¸ r9ð{•½Ö>•Ǭ‘í${L€—µ‡ÎÓ¡ôØþ ¾Êó5ž¯ð|}·Ím/šŽöÞ†–fG{F F†fŠÎ"]J-´*ÔF™¨7VϳÔùˆ:KÕåˆ;«Ôµˆ<Õ͈=Û([azñçøØið1¶“S¹!FuŒê¢­ÇÐz½l­^¶N/[£w(͖Ȧ]›×ë=ŒÞàN#ŒùÄqÙ  ,†1Žé”í¾ÔÜLÌè É²W¦›X $[…H·X¶ h¸é!° ÓÖt(çùÀ¬¥¡]ÊÖŸŒ£Ü_?‡ôaç0ì4Pì¬s>¤¦}¿#ÏÏég†_«P§[Ü ù“¯uG?ù3Ž—’O­"¯ÚH~µ<ËŸ‰ˆ¼ËÏ}¸èq…q\\h­Éò0f•?¯ÊŸUåÏ©ògäûùÕ³h-g¶Ž3[Ãy7<í ü¬„?MyñÑäkñ” ÏòàYüüfXe¬…ªbkoÃîA[ƒÅ³¹vþL»˜+8[ƒÕ_ÕÏEò3‘ü<$Ÿõù9H~Ë?Ú öWdî4÷€¹å"ù™H~’Ÿ…_AîÌå¬$nS'£Z.ÊÑJ<ÅfŸA1ÿgÞ¿0u8Óy%FKbùÒq\>͈§™ilV›‘ÆV3`™él¶‚Áµî˜0ï`¾ÁüéX(wådðLL3±ÜZ#ÄQbºnÉéâ,ð˜ùˆ~KÅqù_zÌ7‹[À-v"üÛêq”‘ÎV¿!ÍA¼\.­•ÖK[(nö–SäQ´JÞ|ê±]N+ã±ÕðŠåcòw»1†o[€ÆÇÏ[¡JcìX»Øføfj‡Åaü>G¿ÇÑïoô{í+Ð÷ù$ü1¶åÀ04+›ŸÊü0<;¥>V ¿âh¶Ð|p‘àÇ F¡5¢ö7¡¾¢®9©ÍGM–Ò¥tDÿé÷W!âoA¤¿(Cj¡7õÀÏ"­…VÈ q -ç„âeâä&Š”¥êY5J‹ÑâÀöØ.s¾…ÿ2ßeü®(ä§Å!O=òÕÒ·rºï¯ÿÙÊ÷#ôQ!ßÍ yïœÿ„<¸0äÛBÖP²‡âE\É™/êœáÛElÈ2‚!ÛàCÖÑ)dá~܈4±-RŽêfs bÄNDp6¯å©ž…øñ ‘úX`y©,ŠGÃZX{0Ô¿~¹G}ÔìfÒ³;í‹v4åIõ žóM´ÂU‘³3ÝýØîGöp/9lÄ•DøÜ']`íèÏTOBg&1&ŸZu>ÅšåPꫨ}7‚½oAäىسìý øû1höÓ¡}±¢T¶>>Ú¾(ć«ÇT¶§ ÛQðµ_šj·Uºï~=ûž8 ¾XBÇÃ!|,?‡¾¢};Qdg½9ÓC±<œCÎ޵ Jq£µüj7ü™ysŒÍ‡°v(Ðv1Õ‚O]ÿ/Æ;ΖñðW‰M QjÓv© S 8G8éP™kDZ›ÌgµŒymV ±$‡ðG!ü1ˆD°¯b°,š{À7âtàAÅaÆ¡bÑ—EÞ¢P¼õ{xŽJI­°™…þ¼BV¡?§ÐŸQØ8qXÌ08†Ö j-ÉR¢Ô›v9¾ŒÀÛ¤=@a–·-Çȱr½²µñÛÓº¦lUS¡ÓCk™ú+™úë˜ú«˜úk˜ú+˜úë—’»OË¥òY §D)þš ñÔƒÑ^á¡<üuت —ÕR.ÍÆe˜…ikB6˜ ë›»+ ‹û{Ìá€4 WŽ0ûc8q ˆp^¡ÞN›ì/˜ÏÔ̹h0;kMlq:Xâzø<³+æï V{øzoð¼Ye¼ýE‡ꃰɢ2íBXÒîÿEËa¬¿ö³hÀ°€¡Ã¦”z»Éõ ¨ÿáí££#’Œƒ÷YûzëÔˆö-g:¨P(#BpÙÃëwùñœùöiBu¦á²ÇjõBJÞßE”Õu"©ùxü(ø¼¯égAÓû5¿œp-ê|ÞW÷>þû-qZ‹×YDesô/s÷ÃeÞÍX{x¿„¡ÄÉÙnX»‰wûˆš´ÑÚdEšÊðY6>Éz€m°¡dò¬å4èû %ÃvØM+‡ösù“ÑØ½¿úódˆÜÃîm³a#“l\’y%óIæ‹l ÿ±U˜–Óõ¶ÐšdL{6âRP¿L=‡×ç=²nß¶£•ðj"¾eû¶éÌMÏ áóŠPïŠß·â#óá.û¨«Ö2Ǜ۫r¹~¡¡žpÌöõm!ÔíFR¶,¿¸ É™¶=K-Šâ¬¥ù¶ûÈ>*„ëÓCm¼Ú8Ü{ã·ò–P+û\œù™¯YTGôp4GòpGðpôGn.ׯS¶n†¿ïz¶”+åK³À çKK ›VI…À§Ò&i3ªHÚI(u ”aÏúXÎJ%NŽ aV±:Ñêˬ„õ€,¥~M¡^Öf%2‹JëQ ÆJÊñ„0;H&”øûÈŽFlDa,˜Å!6£ÅW“ÅÀÓf=ÂŒQdËlEÚ`œUnž§Ñ÷LŠAÁXä ëÿèÖc¹Zÿ48€¯üññdpС¡0}ï÷¾›ÓˆÆDü½ ꑲ´©wÚ×”¾žÜȳZ^ÔßMõy^Š’}Ô·agÉàÔgRZ ä õ0¤`¼ “ƸëY_O4¢µþWõäzhH¦9D¬D!…zljQ´“üØÂ*´û)mj£=³oVÁÿÊõàa‰ð¬|b±à5Qð•ùê*°Ö=À8¶¯[{àØ ÖZ`Ô¨Æx0Ρ°ÈµhõˆíÁüæƒûoBCÛö0G¡ý í¢ øe´^:-”ÚÊ`Ùù`sÁN×ãá#œ| È`õE§Ú(­2È´ ¸T>\?Ø´Ö;Àvæ¸B§£POlú,ÔÁNêsŒC ¤@µ/¿ß)DÑŒóÞÐ]³ ±v"‚Ÿc œ†ÂCX£=Ú#&@l£ÕX­°ÙVV'2p#ýªZÉG½ì„/ŸÕbà½#à¥K©^NCEŃ© 5rC5SjD›#Ì| ôZ`ôaª6*=±°ˆoõ’ >µö{ /›2?®¬•`B›¡–ŽÙÀY¶'å*owŒÙЦF\0’­ÓÓö1=Ô;_ˆšÜ,lv {„ƒða¶–ëwІ'36š+®׊›Ä=âax3ë!‹˜¿u¾[b d3ð¾””ãVLõ2µ‰”l4ñ Bu“šN9AËÁX‡ú'‰G,J=>³hìb“±Ü,¤_-²y‘g•yò©øS…Ì®WPí°>Ö«³Çß/òp#šóM6Èzj˜>cwwžúÑÓfw5Êj4ÕFb,Œ£0®MëÌ1ÅÃø`oð¸…4*ÁzZSÛ޵-}^c­kë»:%°^lÖo½Éœo#6w‹Cª–± ®´­äGàŠô+hEôDê fã#+ ¢h<ù_›…9lA¨—ñX‡ípV6šÉJ&¦êÆÌ½ÒÌnRÑ´Ö@oÒ›B¬2-SP¸¯¶âÖþn¶1ëÕßLù~ŸÀijåhà.ë±÷gÏ¢”+G`ajÌÅ£YO¦ßÉFHw†Vàñ×ßñ{3ý¾L=_5_-_8¸ÿÓlÖgñ E|_$Aó3¿MýÑ,ÁIðÇüQ ÁAøÏïxŠö~ÏÓ“#þG{¿þ“LŒµˆ,‡ŠõèÈÓâ,Ç•õ¡¯Õ£B9–Ée=Øþ籿ßô¹)ëÕ¶C™”页f…øiµœzU×RÏÌf¿Ú žZL+Ôû\•å˜_$•b¬lÔ¤=õ¼Ú!Þú¯ì=¡¬O4l龕3îטKÀŸ¿Ëv;L#,Ÿ¨1­ÛÂF1–’‚]êac~ψ¯gý>îÿþ~0¿Ÿ„q¶Ë=%l܃±5ÄÃïðûIü±Žp9ë)ñG9ü1„ÃßðG7ü> dÃ×ðG5ü1 ¿§ÝïgφšËíWôcÊn#¬Â·ƒz”ñÈTÉPêãœ.©Žöhµt;“TëŸ`½›¬W3<Û;²®˜V`¹çCZ`26ÚƒÖCQÖSÁúäÓܾøèÿ¤n–KÈcC^·´\DðGGŠ•Ã4&rQ‰'ÓZíåì÷·…9Ì’QrZõ³¢ÂýdaÆÎZŸ§QêÞ¡±­Ëm²4Ô*~LÚC9äÑWxæÕÙ2¬O²1—‚?½ÜùÀ銖ëÅC”}Ïê*Žö%³åòPÊZUno±CT#á襰þK–ãÞ˜k?ëiÏ_‹±=üŽyåz~àhi}ÝÿÎ\‚ó”‹åë6¦=|å!‡Ôã¾æHi¸é´÷ç_ó6óØIÜã±óÂ(Ä•³b'põù’ ÷^¶6½ŠxÆð –‡Ó˜ötÿ¿¶C£`Løœw O2ÎË|š­ŸÃfµ§ìëDÊUaø½Œ—ñݳÖy©dø\~TŒõ²³‘1–¿ÅÆÄXÿóu6VÉF*YA¾3ò“V9…4rɲ’˜ÿ³ñJ6VÉú¸S^ËÕ9BåÛßϾc;»@[ûw2­¸X€VÛ‚–: V .ÁÓ [¶öy!XŸApåè0›TטÖ=ü¿Õ9®¨1­Õ³SäÔ(h ÖsïcÈßeõåSŸ}êǘt-—bˆßÇ~xñŸŒ‡³;Y »éÆÜæ³WÍÒastþwr%˜æE½Vbq7¼“Ê*Ê™\O-çûíåQIßw‡¼·ôaÝÓ+ûæÀ ‰m²¬hÆ*爗÷O±iÕíLê§™ÉôcHQ(z0+`㘺ìë†åÐ Û¨ƒð®ð©\p¬Ĩv‡ÆÆÙL)©YÖŽz¹ÖZ–%±Š²Ø/ç26Áfu¤PëÍYJ3“V…ÆOüŸ„ó Êg,eÓ(Éò²ˆ_D­“ø»±óLŠéá_ͬ/Ó2Å¡QõpÆQth$=¡l Ý×ÏáYÓC3"™q›ˆ1Qƃ? ê¯Íæ‹ÁÐzRv(nh(.Ì H]‡Gà·Ñ,?«Æçˆlþ cˆñ”SÓžf|0 ÏFÌ¥\Ò9e™¤ëC¹l_OÖ³y˜©´ÜLÄ ­²¾ÍNN"e€³ÙˆÙ„V³Bã)+œµ4¾º™²À™w åPžeO†½Š§^´Ne}h™¡ùˆá,ÕªÛÒsCJ.œýRoa6Û#¤ØÒCZmNH¥­¢±Û”Ïâl8Û2”«WÚ8´îI8º¶­^αÊ cêŠonyeqÈÑ”Í ë>¶—J8nN'­·°Lém e9ï!Îæ"DÑ|i_§ÛPsCC9aù@å‚PØÆPö×îЪÅa寅ö&‰y®Z1?¬×Ø_¦Ö–ƒW€ ®'ÞRÆý¹„‰Ñè´ßÊc*è ¼5šÆIuðµðè(ÓM(~ŽBdÆ=›P¾¼ëŒ?áèâÏŽQo…Ÿ1EóÇYÆ\|h_,¿ßÂϘó{.ül9?WÎÏ”óóäü,¹pŽË÷Wwö×vö3åü<¹z¡L9V_þ>Qþþé„zùToó¥…e5·–z7S6ÇNÛó׈Ž.·×ìÆÐ(hx‡Y6ŠÍ2‚J½¢ËÅ/6§wõ×ÝÄchç÷Dµ" ©£Ì²Üÿð(òÒÐ8r!åùÙAÍ+¥Yk1¡Ì°ö¤.g‚ùºˆEx–ûÅbW.+œÅÅbÃÅŠ2x}Ú ¥ÊǃMî°Ì–ísÖfÂøoÊøOZ+-ÄK2˜D ¬qM–íßËýóóÏÏ??ÿüüóóÏÏ??ÿüüóóÏÏ??ÿüüóóÏÏ??ÿüüóóÏÏÿOüt¼>?'¯Ãè¼ìŽÓ3þ›¾ƒx^SŽçeEÓTüeYð?‚&â7'ð¢¦hª$kΗQæ‚üSy®ø™’—Ÿ69äÒ3Æ¥ÍøçM¸yÜäœ)¹©Ù©éÿÅúŸúé3¼€«„¿Qx\ºÄѾ‡ì§ÓðÙÃxÔlöjMnsµ½Í·DôÞÛ<%3+/˜;9gÜä´ Á1i'æäGg'O™ÌšLì708!'=£c„Ð5^þ싾?my©iø1iSIÓRz¾¹éûø{nsIÓsô÷ã¦?ÓßWCO6ý¯yñTèõôw@Ö˜Lvp““8®wD÷hÇ/—»VDõˆª.€'ücgêã`†îž=ôë…ã.ÿå‚e/*ÑïXÿܲ¿eèg~sŽÖ‰a—Lÿì?¨Ô ~‚¸N+p”¿QÑOÇüŒélt¨@ò7Qv‰Q'§§å§qÜô*þŽ_óÊóPôNýÓ¸U•ñ‹]«ÁUçuœœ7y ºWà>çXzîU×ûEÿççðgIbBôÜÓQhÍEƒ—(óƒ¸üZÉkâï¼¢NÉ—>™·3zÉü„:!Àxn<·¬wBLÿLfÉã¹L®6€£>‡ó—¤$DÑáËb“/ÕÏg{'ÄÎÛÓÿRý ^Ñu—¥$D(»øMsw²okÿ“ËwâJºÁµæíŒZP4¥òw'˽»gÏÜÓ±°ÀÁK6'Äáo&›ÖÙIìÄ ¾T?ׯ'šgÆã—ê×ÃËä’øK—.á[¶Ú8|ûð[RÑ©èek /dŸ^¸p”Ô‰ë4ÿÝ)?Ž‘Éž_ªŸËª`gt¦Œ«ü»ÍØðW$–ûŠ­^ýÉ(OLøäÌr'/ý›“‡ ®¢éä%çO—;q‹œ¥J'nJ‹Ì…å>9Àÿdê]Ò#fÐ²ÌØ%¿,ª1Y¤°Ïõêȃ§ç_“¹ž+‰ó?9ò/}{YrDÁâhv׿µÛ±,±J}yëíÇâZSë-KOàæL¿4"?>6­Tzwñ=¬~Þ3çvž¿ÊívÍ+‰]r>ÿú-ì.zùš›èÈKÞ©2¢Û Á¾IÀÞIt/q°’˜äLv†ßŒìÙ¥úQ8#ôt7³Ÿì{ûû§ÑÕR‚™»qc.ÕŸÎNPf1›JLh {Ê<Ä*ì“ÌÓþŸ‹þŸþij?õçP xsÕÌö8rªr¦Mï/©Á*}Içh2<¼ÛÛw”ÿný=øà®H6¤¿†N쵤~1],Š,pQàRýþëKõÙw•°òÍOH¨ÌœgJƒ5‡XCfæS9ûæuŠGãcçgß{)?8$sVÙ Kªâ”‹ªN ,é5äRÿ8öeóýÛ)ðÿ¬¥?¨Ó‘©RQ¸mËÜeü; nZ²ó"ÙÀ[™›ËÕ»Ïä“™;q%Yá— Çë£æÙ{ð¼w¹ÿÆ¥–;ñäòåáõà«kX# 5æ|—ƒwðÑlßçƒh°mìžJçíŒ[ðë¢ü„¨Z Nr̉EV¤-á"ÕšÏшÒlf§d¿¨5ÿ]VóÌÈ—Ô`f:(—ÞÄN(aþ¾Öü{qÂA—êoô/$]ZP´(1¡Þ­¹ìàúÐ7G/ø5¿û’ÁQVýµ82¥ãÀ°ÊBß*ÑF±—ê¯bí c¾rªæ¥hÔ}¨d¿î/ÕÄ«ÁQƒ/ `¯P·õº[çg=Š'±©#oDí³Êx O—¼~Qþùågåî¹â‡á103j0»½"¥d%¼—ZmIi¸ÝbX»-©_ÖpÊ7\½5eí–|¹Ýê³v×¾5¾uf)»ì4éÒKõãñjì\½Ïð)Í–ô°+ížk0Î4¥N­W:Ç9ÕÙRDÍœê89¿ò¢ÙÇNµš·u>*¦æÔŸ¤"cëyª£y3òkN=Ê^—àu­û‹%[4ûâøˆKõSpñaój,G³]šWcûs©~2ùu{æ3(XozÕš^­YÊ^pàÄ’ëñÝ%ïá—áÄâÝ)1™㘡$²k–<Ê #žÍ"Æbö²Þ/a„nM»\Ò¡eI‡’/)A¼X–t8yYÒA< Vlª•ࢤ=Ö®ÙÑã£KàCÃ2£Øå8v9+‚Á½ÌJÓç0J9åð¥)/M9P2â7æGõ–”.š²Û˜}lJU˜OÎÞ¿OuX’tzIô’j‹ú'÷/iî:ì­%%K¦Ï›}Œ£Ó{Ð陬}.^ZòNI«f—Z¶fo´ÔÙUÕ”*—ZŽbÉê/“å'ĔԌ`Ñ1æ-¼ˆ*Ù‡wî`“¢s‡õxk|L&ל٠¾xWÒ±éx>w6ýÉk1/ã"·$éØÇ«_*>UU*êÄŠÆ 1/éXÔ©KÁÇØ5bÙ5ûטã_cÎzáì—ZvbÅf9“m‰\’æ×„TÄÌ=³픾†Åßdæ:‹²b—áÑîðÀÁC–$_”Q’¼$éâ®$`Ö¥K‹’Î/K*MœþÖ’>¥é‹j°§ÃRoºñÝþø¦¡Tk#èw:~ÿóó_ùù¼%ÇÆƒ»2 <ðŒÇ-ýóÄkq ^x Àc4¹xÌÁc)mñØ„Gàq³xD‚fÅàÄóh<þlÁq;ñ8‹ÇI<ãñ àQx­ÿ]ïáü£xœÇ£ ¾?ëð°ñè‹G.óñX‰Ç&<¶á¼õx¬Àã<&ã1.xðx4Æ#%$8™E%7„ùá~ý;ž_*÷Úƒyvó__¡¹þ‹?õ€;¹ð›ˆrÇŠâ®>ïbórŸA´ËZ”û îq9Ž(wÞx´¯U¯þùÿ·6­U)/òÄ1¹3¸®©Y9£9î‰È±¹“³&æå¶DŽËÈϘ8X‘š;ÅZ)/ônmöÉÉc2's%©yCGû Üu€&tLÏÎæÞãRǤfLÏÊç.pþ߸ԡcró»eeçgLæöâ}:Ì=éÿÅ¥¦æ¦¦¦fMÌ¢oÛÁ¥¦MÈ瘛ˆwQ¢ iYÓ&Ëã¼:—šÀ=Š÷ò2ò§äáEZ~fÆäÉ÷>>~J^~êØô,ývÿêcr&°žŽ»Ó=ֵʿBjZnnjþŒ\9ÃJ=?53mbzvÆd‰ãnÆY¸·œ‰T¤-©¡g_à^r&æOÎÉ›Ëqu#“g ÌGŒKí69g‚ÿ”»Ž‘—:0#¿ßèñcò9·RjòŒÔ”ÉS2pÊàvâœÔîùɸ Žû½ê‰{ÌJËκ%ƒûœ½ÆÇ“ýn¢¾i2¸OÙ±~¹ùYpF·ì´qÜ'ìHßœ¨CzýEøS3ò3s&öÈÁ‡¸×رn¨Hºî¡ˆä¦LÄW¡2ÓÆägMÍè““Ëm¥³Ò{æ•{ƒã²¸äI“'§&³&çî`¯¦¦e§²_]YUvÀö$5…Uc)®=0cÒ”Œ‰c2ØõÌϘÀq¿—?:•ÁÄ‘>i“ó2q©ié~•«>®;#'}J6]'1‹ÕW)¾«ç„ÜœÉù©ÓÓýw9î›Ðý Ìš›þ|ËËõßyò¸©\.Õ‡(“±r"{çŒIËî69#ƒ;ÉuËavÔ'#//m\FgŽK‹ÀWv›’͆Õ;ŽÝÈ>q󀌼œ)“Çà[ûàuZúåןs¨à²×¹,vÞiyù¨¼ØçöÚ/2<"#tÕi—ö ³Ã±’ôMê-‰~Iÿùùó—ãd£2`tSaw¬ÛmœÈœ•K–Ò£_ß]ôLfSظ®9S²Óƒ¬¯7Ö—ŸÌ39+7?89d5æ_ÎIK¿úŒ+®qóÕïw™2Î öœ÷̺êÓ¬ ~™’;§ôpZæY-óF´Ì —3¥ó€”AÉNøœ~É)=ûôžä„^'&uÔݹ|ž}&'uM¡óŤ¡Iƒ“té70©ìýÐkGøËëðûƒúvÔ­[Ò€¤Dœrõ1\gìäœ[2&^þ[®ì{þßO¨œxßÎËOÏšè–ýÍ", æÍÈ³Ø¯Ž¹pwçÆÉ-Z´ zÁß‘V0=#›½Éî;5•…£ÔTöœq•¾':½ö?oyÿüüßüaÝùøWúă èM+{ß?ƒÆ3þöxæßg?eÿrœíµ­ÇUÿ”㎅Æ&v7ŒàVE\~ƒoÆ¥€‡÷ãúr¹®Ü®'Ž1»g½œáëžø„ã²³F@蜑Nš·då"¼á½1á“Ø€ ¾ËcÚ3!r•±.=‚Éå¤pé‘\F$7‡*qó¡´¡5‡Wâ2*±g875ŠýU™»±—>µrÙ©U¸Œ*áS«r7Vá&¢vnô¿/šÍ¥Waç¯ÆeDsYö;µ:—A/SÜÑÜÕØÉ[WE)ûæWÇïiˆÁ9Óò*糚ùé`‡WÜWv_lc Šát;Ã#Ùe†GÑïʬTYUé7ŠÉ5dwÉŠ›`å p¶f£;}³Ø5óXtÌÎ7†=©zteï°}ígù•!Íå<ÈE°×•¯ïä"f4àò£ØìCd^$;=5‚2±;…àr,."bve|°2½Y)T?³ñ¡(.«7+’•…Ä5pÎØH® :/Š‹˜ô$1ôïÏ®ÌΟÇêýr1«q9Íﳪ³õÍ畽ŸUƒ5}€*¾ U<3Ò4¿.XGNJfbÓ¸±`9ÁV-óZÇ”…¬ÑÁœÜŒ‰éf Ø2/¯Î&z”Ì3fÊdd^µZFF0ÿ¯W›3XœŸ–•ך»å³êÎËÈ›ÏÚ"•H‡ú‚¤SÛ§f°KÓ1ö¥tÚX˜ó«±ï%²ŸϬ'taú3H~>ß›œ1.+d˜>›QOϦMÛ¦ ³ÁCÿÂÙSò2©>0#ÀnmëÀ®3€Ùæ6²È¶Ìòå³aÖ1戽2V˜7"LSGâk:䦹´”½%¬GŒÎÉÉ÷eÍÄŽ¹3°ªhÂj"HxŒ¨Ñ "6¢þÅDÔˆŒ‰d«FTDZ؈1!L‰ ›hË+Lm_»¬­+]ÙÖðZG•Ý!=c·>€A ½Mo\¾ÃµÃïv û ‡B´f•AÕ›šÊš#55?@/|î„—¬}òrÆæçáÞ3üï oc՛Ͼñ˜Ü=5ÄÙ»äL§k ~ÆLÉOAõâ—Œû›B±Ò6dbŸªáÿkT—¾¹K6j<Ü® 6"°ü+lD"T ! ÐU c"CU®î(OõI¥Š¼ÂhþZRvûh$•¤¬ÿå%ÿec—¯F06 ûU—ýªþÆŠkŽu˰%òª„j®Zd·2±£}ó/_'2ÜôÌ]ÉÙe²³&fLÌùË7å³}ƦݜÁºØÝÊ•›½7€e"Ðç}~HOsHHRûÒë< „‹>˜3%Ÿ›]xLژ̌lÓ Â‚Ð×Ñ÷çLÎþ~¿²âÃW¢¯Зވ˨K—k\v´—Þ„¯!—OŸhZö^—~ —ÞŒ-ª8¼—¤ósM¸ôæÄ`Ö#øâÖÌ ™ø•O7€ˆq;ÇM¼‹ˆÊhJE:”É©ÊÑ{¨fVí×pY͸ôTíìuÕ3{11‰}¸6}XLJ‡#ªVôñk¹Œæ\ƒ«/‰^À¬¯o3©ë§äM¾žIÈìë&®ÏÏš8#'/áÙ¨Ð<53(t”ŒùÙ9yô`³F?B÷…muâE‘HBPæƒBç /y#(KÁ.x)EI =ï‚ç‰AE Êb€ïÂÎÔ” AoñøÝ-(ÊåÎý3ƒtf t¦JgªìÌÐ™Ž—?«ãHR€WƒR×Ѓ ò;" A%\6½+•MDÉì¬Eü#ì²ìˆÎŽH<; ÓÕÐTv/þñÎ]Ùq”ŠÄJ.hì9®‰çI¸ܯNÇåËådïv J*» v ø­²¯óËÃ_U¹\yýïR©¶ÙÇøvܾW—‚I¨I銚LĽw+ÿ½ÿÌn]¯:“gg :•_dGèÝ€_ÚDñò÷–{7xÕ»AbïJz0IbW3ÊΧ²±:Á T']X¬&…À¤@Þ-1a“BMám‘*Ô7/‘*T쾩+ÏŒ,©s°*/Å@7:(…j„ý÷+NçƒJgú¬ìæQX•);§[øK #‘Iùç3ƒS]ñn×Жoþn«bT‘AöÊ®–ÈšߎJ(çTW¸jà²S‘I©‰—ÕÀuä¿û¬Î>+1÷ »¨_ú嫉~ 5vm‡ ÊŸOõ‰þ‹KÃ>.éL&^îšݸ¬°#(X™«£Æx%Ø% F(ïêRW:Þ™7€  žüóÉp¾ëú62åntD»|ÄwiL¼sâe§ò¯#ðå  < Þ¤¯±bømÚ-‰ÙmÈ6Tfþ•%…ް» \a9dKF¹2ø¶ÔEe÷âC€ANåŸÙ-‘Ù¾—كĞû@ãoW¼«˜E…-ïv£çÝÊC’ÀÊϾHC%üsø¿œ#27Ÿ¼| ˜Ú¥"Xdw*Qkª¬EàïW@’Èê–y5O·&u Õ^+C¨ü¾u•ó‹ Ö•®)„ì-1äß/p¤«x…Uûxbt#à»\Ú@ùÒúv+‘ÂC>r…?þÊ»^®%#å|6 *d·WµòÕpRuý°Zb…ÇÂFø®:¢°#:¾±3k}Ô¯_®”¹K¸®Ø-ó¡»ðP=üz•Y ÜY$ªÿ þ]³ ‘!óƒwgª+9T™`¹[·ò¸èšx9Øø5¯ —=Èo»r6¸y’èLª™nl|‹*Ã[žBxÙߪ}ä,ï¹>úþ:’Heþ—Ø+2KÀ®`~©Ø[e¥íB¾öW;]ÿ èðj¨®”®eõ¸úÊ¡w©eYàè,W†@ù3“’B^“¾‹ÐgË…pÿüÐqérðö礤ò?P¾]B6V.ä_qœ]-à{‰<…Ý©¶FÂ^ ùNؾúRÞÓC>[Ž40K–Ì%ò,‰ˆ—àS+òžO+$àc o>—P©®þ”@”TóÛH!Ü+÷›•Ío±üV~ßÞôpÔó(>n¨¡¨ÍLQ¢û-wM´îÚ/!P û»ÿ]ŒW‰¢íÕå7(²keN*’¿€Òùh¯±kú6̬…›Ÿ¶|ÕW²y´ Þêj“Âí+dE]Û E|vN€=W(>*D–æM =û_èÐÜr(fù¥Õľ)¡:B‘1 øíÛ…Y…諸ß.áçe­ÜU ø ' dFˆwUf<¸N’tõ¹BÇûŠªI¿<À…â5«[¿©´À+Tu¢pÙCuhP¼(_cFXÀ(Œà–¯1T ý„Ÿ„þ(´0·¼Â>%¿åë0Tfùr™ÿíý–]S ˜ò²®áÚ~RMþÛš/ó/aõPm‡Ú®\̽ʢüñúIÔšT¶Ð·TÐR¡úïʇ9Ã^þ®áø–÷þ·Ê‰–\Îýþ²1¨y!t¤k™,!ù‘XÎd/Ë*LyYòwr¥œ,©HãþF–$1 « 4®–%]d /KÈ’`²$P, –—%å2Y¨@–+% dI°Y¨@–+%+dIR™,¹¢B–ËdIà Y’T&KB”·“r²$ —”“%Á+dIR™, T K‚È’@²äo«QŽN]%K‚È’@²$X, T K‚È’@²$X, T K‚È’@²$xµ,!¿T K‚W˲ê@²$X, \-K|¬@–*%Á dI Y¬@–*%Á dI Yæ.•% dI°Y¨@–ËËOH–Ê×áÕ½e!ä¹,KÈ’`²$P, V KÈ’à²D/+m Y¬@–*%W_Ù7P,¹âÌr²$P, •, øÇ¯’%Wƚ˲$ð7ÇËõA^%KÈ’`²$P, þ½,‘Bñå2í‚—ü, üõœ, V KÈ’`²$P, V KÈ’`²$P, V KÈ’`²$P, ‘l%é/²$P, V KÈ’`²$p5¹ 1±¿—% dÉ_¯æx ÉîU²D1PÕ dI°Yè*ÿ­,ùëÿ°,¹Ê>¥¿‘vådI Yr]3P, V K®’7á²U KÈ’`²¤ÂëW KÈ’`²ä_–ÿ*YÂ2 º ÓƒcÓ&deÏð_Êá—Y=Ïp\V6ûU‡ýª{¿®eÏz²gbÐøw—½ËU®NG`é~:€ððäúÁ§áíÐ2XæÇ®ðz••ï3­wÆÔŒì²¯Š ÕKe™AGÐt$¥MUbiSéQÜð*4®\•Æ•£i\¹+h\¹:— ñæê4ÞCãÍ5Øx3»B,—^“^›K¯Å±aâXŽ ×æØ`pŽÿÖåØxo$ öÖãØøn}ÙmÀ†uÓrÛPâÙ°ñð¦l¼xø5l°xx36J<<Ȇˆ‡7 oÁe\Ëþ§_CÙ] 4TŒã-ÃCÅ×±qbö¤ÞeOZ³Zö¤ —ž@OÚré-éI;.ý:zÒžÒ«ZѨszÞšžwäÒÛÐ ×sémé Ï¥·£'—Þžžˆ\zz"qéé‰Ì¥_OOVáé<]J¥ç=×è¹HÏuöœÝŽHÜ|T©Áì‚­Ñ›Çò²s¦e³Æ ²ä¡)³Æ¤1«¢Qa|xûÅ?²˜e±d,öÁ,–îd¿ØY×Ð`2 :‹mšŲ³ Ù¯Mì[Ä!«ˆýb¹ Y:×ϺÀžÍf¥aß1hb^nƘ¬±Yc‚”§•Ǯڷó ÁÉc2²¦f¤[O›œ3q\07-/oZÎät¯M[N¡+ Ÿ61~”•‘Þ>˜•G™eéc³&âC9“ÃGÒ²qÃéylþO—œœü¼üÉi¹”T19˜7câ˜L\>몄PX¦F·Éi2‚y¡Ù Á‰S&ŒÆùô~Ç1•BYÌ(Ñ…¥£¾gGqÓ{±œ?½®þ¼.q¤ÎͮIJîXz_eøErõá­+Àô²ƒ0]·Kg\hRCnËÏ‹b¾Ô¹“ŸÝH™G]Ó²ÇLÉNËÏÈ ¦ÇdfŒ¹9oÊ„`ÎØ` ¶æD‹Ž~SF–µ'óè,¶VI_JL#Œ’Ö&§MÊÀɘ8.?“’V²(à N nìÊ~â e(u`¿Ú²_íØ¯ÖW&¾°ª&؃’v }kö¼·"ªDÖÖ¨T“ìQ–ˆö0~¡VP%,126œ(9‹òH'ð:"ô¯ãrgU¡7ªúgE†^¤û§G‡ŸT ? „ŸT?‰¡ ¸ô¼fø`­ð“Xöm[SÚ›kÆf! A?Õ¨}0=gb«|8Õĉxœ‘‘Oíзuíp§¥dMÈÈ™’? ¬óY¦WbR·Îƒz§¤¦ôì“ÔoPŠÎþ™ù,+-yrN6< [Ú˜üœÉW|$y@¿ÞýúvÏg †¹WœUJ85crþ€)”ç¿JIÂK–2—7--oÑkö6¥ˆôNË“Ie¥—=Å®ô¢O¿Ä¤T„ jS|O~Θœì>9éùuýØÔ'cBç1c2òò†¤Mž˜bŸÊƒß±YVTe¾Ù\Ï~‰c,~ «ÒÔT¶d¡3”±‘ÕüßQÕ"BÿXºTDY¶Y™¾ÅQlb‰ÉQ\N=.v 7ȪJ|òs}[ªÌ…žT ?©~Í¡ö€W³Èá|ìe ‹e¾yÌ‹Œô-ß•sMùo©JgÔä²jùI<á„ÚXJ-bÏj—=«Éе܋ºôAr`kJ{d{…§L΂ççP²,eÂæeLÎJËÒt…q@ljA`` úÉ MËcŸÂÙtÉ©iøØè쌼Žeç²ìÜ•Ñ)ìüÈIB ÂC¥¦dçgåfgáàèeWiu¥q¶ ¦ÍDZó&då±$ºÅúš*wÙr8ù3Ø9¬0ìmV Yc&çCsë²Ùs‚Àõ¬¼Lz;t±Ë73 #Êä‰yÁ[2𱬱tÒØ)Ǧ£ðySÈ:Çþ´][lÙyžR¤H]¬»dov=ëD)åØZy/Iש³¦.»V¦”¡lÙI\•GòØ)‘#[N¥4YoÚ¤÷ R @Ò4ml“6M›mŠöeM¶‚( ô%@_úÐ>²ý¿ÿ?çÌ"m+ÛXÖhæÌ™s›ÿ~9³»9É$‘éÐi´ƒ<»ÜDVHæ'ÇU`à6­Wxß;‡ª´Ú­#§'¾øãµl!ÎÈ”Sb$ð¤¥C'ú.1‘BUmt¶·J8qÈgŽÈíK¼ºœ‚ò¢;ÆØ¥¼7¿|}uîê\GÆh+Ïp´ªL ŽÑ¿è÷·ƒ W¤+຾ä8åùÊö®´Í—‹»!]ÇâP_i©èE­Ûq[‘B+Eˆj ôÌ8 ú;भ§ì,ýô´8^xdÝçxÆrzžÒ!q¸Hƒµ1Ö$-‰Ä¯ÿš'Ê¥`·Nà{mqð'°0 ²µ[ç tâW$L¸¥Ÿö ^xÕ]gÌÓU$›Þ#<;„”[ÁÆ­PǸ×üM¿„!ò×JUnšááiN÷R`Ý¥Áz¶Zñsм‹–Um„PïUð6¼y °kXÁ–ÁÃq@ÏÚš©wôè—Œ¿ì¿ü—m‚WpømâíÄä­¿fs¼dÈé "+]$Ù*ºî kæÖæåð|AHJsõ”æê)ë@5×z`éh` ð‚uG“æ'“Y:uoù,Gâ׉:’J‚’¼Œ>ý2¼½K\‹è ¯lG€KDæàáúîâ«Dfúúþø­%yH¥2Ël·Ê5Öê¼3šµÖT‹Šôv·<|ØC¢¡½ÎCB,¨{YxHò®´€.=Î Ûrì´…4ƒ>g)B–AƒvÊÉ™Áâ¶ó`)Y„;Ûš\$ø™Äág’  Ä<œ t@ÝïP0r;Á"#IMXIÞ̨j¿ãAƒ>NC#†ý@¡6m.NXÇñ§Ã:ŽÂÛ&N•Kìõ(ÉöÑÆâd íšÄ~²yTòãN"k5J&ô@㻬Ñc_‹;<ån ÛE5í«ÜgcÅžxEÒæ_Ò•'ÛZ¼»cñµ-î¬8¨ØX¥«àVÅåv¯ŸS™ Ô°‹—†§¡Í7E¸ÆŠD€gý8܆ Å'''³ㆇz'×c•*^›±:w¸¢ÐH gÜzðqÿ¼;^϶ê}­¶&-g g€]–`«uõCÍ`lljHëa.«ÓYÖ$›ª:SY­¶» '7؆ô0!ÍY„³ùåüêË^þò&t5i™I”WÔ”C•bîÜ I€1r%5Xñf<¤ ±~É-ÎyÞêÌâåX‚ÕU}ßÃF:Þ >Ú‚fe5ÍâÎ/ƒd}ˆIHÓ ƒã€=Hd+ËçglâeÖ˜+s\ûj÷:I°Ão¤ƒN÷Â8]B'ÕBHº3ð:ä#Ö~ÇaÄE l xK`-N?Ét?מž/«Ú[¶²)*znsFc—Ëhüvâ1¦¹aY,°°n–VœZÈ Qì"e/Ȫt)æ bÑÏZ<ñp!âöΧMA"RçRJçÚg^:M+ö«NÌÉ:õsRUhÌ£BF Zû)+²‚a&Vi$_ŽªÊ#¸‡qv MÌrÝ1kŸ ˆ×4eë¥X9‘ZvYùQ¢„:¹ÍœB²/OX·‰ŒŠ/Ñ­NüÇ0‘Ç™wYÁ“,ðîÝF¯³7òœÐ)wŠO0…íå÷òT#… Oª*ÜèÎk6~WڼƾhuÑíǼI¼FóÈé& œ¶$=•ÖÇA^zÓèÇ’us_š<Üó@Ôs‡j(Tò[›‡#ȲŠÌ Nq#ïÖLò¿Í@ÞÃí>ßv Ñ "mŒë6Þ0môrmÛÆHëÉŒÊdÞ«øùqþLëáΙ®rîhóp'â2ó)˜Ã©¥Åiur`7õ]Êa¥\«ÖîÚVÙ½„¢oƒT+si+¸"UQéêFYa=¦²£oÛ_ ë®°†CPiíNöçò†mÉ]96p—5¿¾»ÒêVd ˆZžã…Ôª»¥i`aµæÇí <ÈùŠ›#­‰ÀnáÊ©hö´îs²_žˆ”­yXXèF ¢yŇ DŒ">t¬Rí¾«-_ÔÝîú:‘-‚×q¯ô0KÄòž·g,ŽfõL‡Ç×äÇà 1€mºŽ2ì?¢C2üJÞ+Ì^9/ ®~›¢•®Ý‚WÞ&©¸¥r™Ö°îŽO=¿‡w¿O‹ŒÃ½fÂ=*{v¯>¦%¢¶î„,iœoº©U S{xøŒËêÆ…ñò—í |V“3’x†›g1"?C 5.Œ¹Ã:?wèn!O϶ºÃ‚‰n3vsæòìêËùù…¹ÙlH±u¥ð¬hµNæÍˆÝ¯îºeºÇD7‚~j“@N®«›e·ìß Ö`(a«•Ý ¦íp0«¾ä. UÙ…çž½’;ÝN´bû¯’œ®h‡5¼Í .f…‚bg¶nÔ9I]ßÞ&Œö®[J³qm«ìáËÉlA¾œ¿&‹BâÔ•Â2+*'û&qw· ["ùË»¦Å¨ƒpžÀÇãý`àž..¬ÎxóËó3ù…Õüì¬'BßeK¥À®±tç­hÉD¿M–üÂ>%ÚɈ W.OÏyQ5z­Ü/jx×pé­joDo‘ æ,$š"N3—EZÇ¡li×Ŧ‘oZJÓõnI²•O#­%o¯! ~/müâÜq§;ÑOJo¿ÓïœqF{„äHH‘'ìSNO"m¥H-î±NAŽL ÐÙi¾¢c7ÿí´UÉ ¹s,^êv™À‚C²KuX˜Š£$Ënfý…Œø ù*ä-.”}™¦qq@8žš[wg—=w›¨jnê¼ûJaöƒî¹óîÕ™™º»•Mñ-øew}³´Á–)?œXONMN+ä:5h)D$¢ŠÑ3¤ÖÙ0Á^Iv„Å~ºéûÛ1/Â]¯G,§hïÆ.E“JÛÃÉð-œM?ù•ó–‹ïlåx¢‡×ŒÚ•uÀry÷pÀÖ.GX%jáÛ-WIë3 ½Jøâ¼ì¡åÇ/ñ"’‹íÊ^š†b“ù_ŸnX’âò3…ËóG_–BLíÃVÞÏ›yBíòð5Š˜¦s÷ðÜÙØùf\½ÉÚ£ÎObÆ^|Æ0¼Ëtͼˆܬ–jåóù9µGZûfÞ¯ä+KïwÛ®€ÁŒa³2õîíöÿ`:ÿqÓÝC{gM“]‹€Å™…ïÛцït»?ÎfóÿÂ!'ÅûÌb>'~ak…—†N Q’} ïàí[möäàõèÍ?;S Kµðßlµ½†™ÕkxÎC‡‡yŒG^wÃðªÛÿÑ4ºCïÏk=:EJ‰ÄõÓ0ÔDüN2~ÇŽ&í¸´>znòŦþÙ©©÷óìÖG_l¾ûî~ †Cûzî, Ý Â% è“-V£/¶+Øh:‘Óós˜¸üžY—}žÙÅhžøÐTh.H6t4¤š ÒÍñ‚r&ZÞ,//¦,q;®e©` V9XùˆBKš üS–âÝ7ï‡~l_k±‚ý‡Vžù/[Ù4-»¿éÇpï¤^Èóf!µQSñCÓ1sbÜ›†6ü¦Á†,>Ã=èI"ùm•1/ï'ý:Ÿ~™Ù*ÿoDz³öpKøø+‹#`ªåØœ€'Nü:Ñtý¨ûɦk[ØØÓG†P%Hj›œñÙ™UM5ÒV'` Ô<û[.utJõŽOzƒ¬â/Zq9&ÒbPôK-ÖØPóiÏ'iSmÖò¬î4ït%?CŽümµÜçlÃ뇛hعrA!ÒH¹kx¾„‹ØºÎ8AËè ÒQ‚®8A붪ï3u¢…ìŒ_dš ÆÑ]©×TéP[íï´c¥·éî¡A÷ÀØÅ¯ÙV¯¹¾DK—ßFPHÝ¥éú$ïÜbæHÆÑ²Œ‚ž¹º´I¨n,&K%(º¡_«Ÿ7ebÃQàá^€hDZ×ö¦Fym+“‘Tâ{Ì öóò>£¥¥w òõG˜öÓGA7P.=¨'€küɹN‹ƒ<:kLØž“å¿ýNé3ÄuH›É8%ÿ¦-á“  b¨ÆºWlFµ½Ï ¶Óì,¬~\¯Ž5vÀ\Q\ˆºHr„€WêƒHI3|o„£+õh‡îWÕh†â£‰Í„WÅIöKlÿ¹ø…S\¼íÃâEÞ m{ç«¶~Âac½”Å¥¬/uÕÎ#5Þ¦RÆ4‰¡G•žŠWÊÂN$Œ3rªöY*ˆmÈx!ªE6±pøÝ²2 ÖÝbSdíxi-l2 ‡Uçëæc–aS92é®»÷JAä›ré/GìÜ«Ö5¨Ñ% “±ØœØ3碆øºÆ;5þ*ú„Ë1;°8W 5b29´ua¼<‘eï±kÊ%Jƒ%#åŽî¨»3Üá}7r µ®˜­ÿTÓ ‰o&E™M‘ñ–ء͒Éfµº½V [š1. =¦*ÑÅœ|†é®x½0ÃZ1ŠmáðYØjÇ6:¶°¬éê1ýëW̃¿Ü‚f¤…f`>%¶êÛ)& «ÄÃ9nØ#Ê&$ƒH ‘‹~9wø×zÊYKYòÍ=E²n?ŽËÕVQ$ªÁ[–Oá}ÌIM$ÄÁ¢»$‚€` ö@H…ýˆÒ&£'«ïüú¾aú¯æBsßcñ¾ÖW¯Ž;1mKœC QMüðƒ\®4$®ÍgpEÆÂ="A`€m)+d((#{j÷ÓVµ›NDMN+|^Œ"SŸ±ãx…væH>žnl·`ìøthxV;r8!ˆ– s7G'˜:Py¢QÚ4O²Ó"wsó!ÉÈFŒOG¸Ëè®ò Z'i#Ðß­ßâhoú®`•¥”ˆÈÔüm¿"›@‘…R ðo·FrÂýQ^(q)¹wƒ’K *1šsõÐh´«‡õ(•ÙÕ\ú™K—˜’rÃí˜øºÆ;Ù¥”ÐqùÚô«¢‡0VEh‹»¡>­*gyÄÃ#Úà¿»J¨iiíŽØÇÝ 56ó›×u&Üë–J†ÃIJíwþ‘42±ë^bÔ#2CT|nB:·ü­*ñw¸»©g¢¯ˆ®¨*SPE@eoáCN @Ⱦ£·ïa… 1V<1ÆR†kÙG\mÐËþeáëg 0¥éæÑF]Ç̤«7¿<€Ïçcî€äŸia&r»ÔqmÜÚGÓì *e/¦Ÿ|¡‰áÍ ±Qoú[««¿ï<ĸÛ#ïP4þ¶ÕÐõÇúx,ôê*q®ÕÕ?hÑ™±2@Þ“÷تKD÷¨…g©O[.¾ÎÐg÷à˜?ÃðÂxm¢åÒ·Ÿ$Öc«­®þa4@¡ãцϿk^7#ýãðEþ¤j~ž¿ã¨³ 5ícŒFÌR.3 ¬q4ÖÜlŸÅä,&õÚwRwÒwb ÉDvà'©']PjpÒ ü⼸G0mÒT+a3VM BéÈ ÖCø3+ØŽº~FA7,µ)?ì/'L£Sä!l·MºdDÉ®{'t :ņï1°>Ñ•¾¡R†a+T²=&m&_Ÿ‘]ÔýXÿ_iÑ?ª~9ÞGFbîö¡øË€÷ÆÿÒ~éaHÁýµ¦é€Âeu/kóû>`Â~Сl45øù,Nó¼ÁöÆš-€‡­¢²Ó û)e’ Ê03¤TfÙÓˆÝvþ¥J;Úº´S—¦çº4«K3ÖIUÔņbµø¢DšuòPf™ÞÃ’!1y¤„'p$Ãñàl;6ŠR§•<à`MY¶·¼‚É}¶ÌÞx‘µ‡уéD #é CˆuÔ§jÈÊè²3f¯PžÞaíŒS_Y ÞNYU|¥VQ$Ç­H7%NqÜZ9ê$Ê}*Ü›eLÆlV 8¤ŒôùøÄ£;¢Åð¥³Í³—æ®Aðß*Iæ&Ç­œgoPÔ•¯ƒ¹ü¡Šl̸ÍÎð€ÍÚ?zûí·%P‹Å{`†xM:ôxæ7*WswU°é*¤•äðý9q4A·ü=ád¶3F i5ÑÐjŽéIWDa8¶š£zñ1JˆXùšx _áaþVFÆ’Ôlm_—8 >Cg²;€a„ø„÷[Qºæ¬ø”lÐ$¡æM”††w ¬®‡/„Hò0T–&Göõ羆ʽ¯âð8ü_7 Àa"JÈ_ãðÍÃohíü%ïëÆA"bb·Èœ~ Q8#ü3Èf‡´=! lt÷v/•$1*]Óy§& zBY0Ù¥Iø#ȳ÷ïw`f‡Uýó CAˆ|l“n½ÄH—T>)§&Ž#.š 5v†¹—&¹ôr^wòHÃJtqêÙ¥%‘ÄP4ÑÐcDë{Ïñ“½*>xöÆ)6#8Üp\ÓÀñd~ÓZÁ“+G³"K,§>5—çÏ.û{¡FLãudøÜáãEA·>Ëd[+ô”ÀÌŽÔ·\Ö€þ²e´„Ôo@‚W³„ß H¹å¿ÑðÙ*ó^žÇÄÞ4ž‰C£“°z@dAc?ûÀá uúÇ5ü5l@ð‹áôÏþ8EŰ‹_r8d…oÃq+'Æ­ö>ÁO1Ú½±  Ä ¦¨&¿V‰ÀÌ2ÀI†a8© Ãë‰Fƒ±.¯¾[pCV8¬žT·••û ÿ®°‡‰í©ÞcÁÈÜÂË* _IdyaÊ­Ó;ë¾iÐ# U7úN ç±¢º/ÁºãuÄÈŠðíŽ#é9ôëÙöÁ`*ˆeäùh¥l—pó¶|Ö„FŠ®ì@%|þ¾¨$±,¯Î]››ñ2šj“¾R”në\A¡­9—?˜‚î6·J"ôœmƱ-Fÿê½7[@fZ­6Íé?#Õ±äBü9!´=…OiùÏ8q ÷KDÃI>ÈCŽÈÊ̲d¿ q33„\bŠ{ ÍÂÀ íW>ôÀ¨În¾C´IQØ+.6µÈo‚ØFÍ)½ÌW€˜ïu|Tʯmñî! h„œ~ì>«-Ÿ÷ ÷“®Ý”ëÒóÏÉ ñjÙtçp¹Ð‰šŠ ±^ò¦¼¿Ãï~ àð#/Óá‡NµçŒÚ'lú•¨ÐŽô¶¥}j²QÆ(øÑXíw8íä_ÓßRÁk³7¾޵Ͼí³8‚NcÑîPé—· ‹_Í'ÉMìŠ=A’z™Kíò*]rK®$+‘ZÄ£ÜÚXì,e>=*ò5ÎlËϪ °Oæ„ß'qšW„ˈ˜­žæYÚÖÎ øRBç„Ãè¥ó>'xÿŒÌ±•IÈJwKÁ&è{·´¹ëKvÀÉWéS{ëë“Âo˜½ÍL§[S…š¡BÂ" A'tCN(X¢ºÔUQ~¥,bÆÅ,ÞÌj¾‡ÃwqøGÞ2-þS „VÄ…ôqžz‚Zà}p„×dmpš¬•rFì'=N¯“M¼ñ€vÓgKäø»emLd"KÁ· DGCª÷ÏVëÁŸÒáóŽRYa=èN±.‘y23–éÍdÙŠízŠØ®gìÆ À^+¬X娻Q…ƒ!¡S2ÚÕ†„.eH ='=HÉÂI/²ªH/¹â˜åó6U¤gÀà×5uÐ+ýWw{ù„Sš^Oó>Vƒ\mH}÷»Y óɈúìö´å“1ä딫Ï‘4’ôOÈ÷˜N`+j{ãÿÚû¶è8’ó¼î™@ $@€·] r î³—Z-é%wI‚KB+’Ѐ7[»‡`àh= L­e'Q"ÅVâl)vä(ÛJdåb;çäAOIôœ“[NGqâܜĎ’8ñ±ãÍÿ}Uuõ\@*~IÎAï¢ÙSU]]—¿þªú/_¥´tHVòó“gI­ùSʇÝ[¹ä[#É·F½·žuˆ(W!!´åêYW°! SëýÊ|zJ*VÒ®ŠE+ù|Œ›¦³¹‡å5 =©FX5›´t0ÑåµbT6~´ëmy¸Û¡Ë<z Vº†`ðü¢÷º¯)—ûl脟\—o)ÞKØ(°ˆ@A+D Àb´2¦¤—þ 7:(ô¡ùØÚ’ò„wøD%ˆ°ŸKõ5JUWXéK› ²QŒý‚º(7`Ûµ¤úœhù¶L!–q«¤ŒÙ_»pÒ~>¯7¦­£íÂêº'’ùeܾÕbl¢øSi36ƒp ìNü×ÓBºy#xj¯×ZÎÎáj„a¬ÎJÓÖªB¥ä ŽÕµò*Øp½æpÔ£FµjXð?Ÿ3‰fÕZ.eö O‚¿ø6nP@¾ˆÛ«Á“l`ý/Oœ‹|M÷P{Ý,¸zõ{h¢Xf¯ªÛØ?…lj÷«hÇzaCU¤™¨O[¥Õm“<ÉiøÛO®>ZÒeùá´þZ/álèN>Ýekýõ§ÒͧnþõÕ>÷«+x½ö ¤›ÿ1ÿ5Nôñ£ÑCv·³ûqC×Ký.åZ*EBº½Ø¡ÄÑØùþN :|S¢Ú•§e‚ƒºÒ9ˆMÓ­$ì„.ˆ†ëû“Æûó‚·'2/)ÖDjüŽ5ÍWe]óUþã5Á¢û|}È Wýt¶,€mšVßnþ¦üÝIîϱ#"ÃÞ´kéâR±"[ÝŒÕÖ¸òÉMS_\~GÈ-‚@&§¨ªµ‚ŠËm©ÆÝž ¦,¹lh°ÛÍÓƒ· ³…FF–U­ùsœ?0q\ò&Žæ÷0´ê4§›.2n0â T¸Þ»}¹0óÆ÷×÷Å!Tß»tõò%£tç:Ž ð_sÜ„êe°hšþuyѬ†3làa°­ÑoÇ5Õå™(ï£Ö±-6Xþ!W€ã>ñïÚ `×IM͆e^G®àX*>fS²ÑëKí?(Ìl „þ}8ãó‚µÜs8ÿèéY›Îˆ¾»ƒ×eDZjÏ µÏíüî6¾Ç ø^ à¥Æ=cåÆïmKÒ¯%‰q¤†Éè‰Ç‰ƒ¡ÿùåÚÂ;>€ˆIb(þR¼=Ç·%ÍWbšÏª¬ª=Cþ-zößFñoHq¶pãJáÂ5¥À˜øhà@’ûõ ë“Ì®•d*®Ò2èc(¦ô¡T(D¨ãhØ—v;N'ƒúµ§¡ƒ¿‡¦Ÿ~ûëVPÕI¡išJ•/'³›á4ÖÄ&ó]ÛÓjÙ„-b"I†NZ~¤:àY=õ‘+¦ ”ŽÉb´‘Ö-k§Ýæò©Ã~løñÁ벡|0ÜiC  £lD2I°³¾ÝÛt{Ãöðç,gZ%-5Jzþ%n{ÿ'G¿$6‹?ë"˜ë¶¹òµV›E¯¼ŸD÷çâ¼'×Cò/Ä#Ž«B¦‘¾ü4ÔP¢½š4+z¿Ê¾QáÄZ‘òcNhPm¥œ˜!¥]Üa•kÊ?t 2ˆaÈÝ;Ô$ҡܰ¡žöõƒIˆœÐÌ}}•+Ë"û°i¤k¬éGÝÿ³å`ñD•ÏuFÞ²['lÛëQå•O”µw¾ã:ÐÍÚñŸIö"Ã~ÓFh/>o3n5†ãÂ~®±;Ù½Ò{þp –§=±wMB¢÷ßdÿ%Bìžak2•äÛÞêCD h¦‚AzfèkW î¦ÂiÌ¥CYzÌE }Jµ@\‰¬Mß“O”h޹E¿&Îa(4VʲSx¸ÁE€NTs88Ëi^äýMF}cÖ¼0v|í¤¢,YKH—ƒÍS} ׄàÒÝÅÝ/FŠÃäŒiX<äg˜Ìè;ï›þ߆Ð~7w»*ÖÞ²Dq-n´•ªHsï9r‹7†¿êÂH‹ŽÜÚ¥ŸHÖŠŒzSƒéá xê vä– ?ØzìJi~§]_:×Àëàºæýpû BpJ‹Ë,XnX£ÕµƒÙ?8+<¼3±µÇ)=¦à0 º˜¤Yùr1ò,²Ôey37¦–ZÒVd¡&°'¹¾†pfÂŽ#ý ¥.8«Ö\œ$§;5 ’GçW\7ôn¿ë!ZÎq1ùÏ»Ücw~Á;ñ»AB ÜJî¦ _”‰Eútí!ÓµýÔƒBïîNÝv§@ ½~§¾—~R§v)¢·U ëBÅ·‰Ý\Ç)¨_šF= FÂÏßMo¥a#ñ¸›ôK( “}\¾M5Óó¬áoùq=¿Ú§ÚˆO7]dÚ똾+¿í'",“n©†ͨú â³µÉ܆/ÑÝ`”ç%ÅE¼>l¶b¥Ý¬÷Ch¨Wê1?Lª^¦:¯šßùßíkh¸C„ÓK5·­!¢O{§ƒÍ†Sæ\úÓ«ÿiµ3צü’|è(U‰iÓ@õÇÝE‰hlƽÍÝnö÷•‘ > T£ú1§A®§šsØ÷9·9Xy)i·#®çŒæ@õûéiç?`Zs1lÑ?–]—|Yí¶üUߤ=5æÑüþ梛–“ŽìñÊÿ¼ï…ôâð0ÎûDp‘Ò0Í>ùã¹±iEí±9Ë*ŽÎý¡YâU&á²û2pÓyJ¹s³—¬NhòÒ©S:MöÈð‹¤@ãq£ç×+XYTé#¹V^]..”a¥C?@œ¢ÀAQö©ß™òÞ9ùT•Õh–ҊNpvƒïÜ¢ÒH–SëIqÝß(± ¦Ü MÛZ"—’+þqqUÑÂÇÖ£²Q.—£òIì}'ÛÌpÖņ›uoºû®›ÕâÅ2D…Ïf—´^…ÿ¥qîUJ6«Û嵫ïÇGj…e'JŠD´-+%•ÎËÚìÞ;åM®°(7—æ.ü ¼@.Þ’a­R`Ì÷WŠ›RIä«™ˆ4‡ZÔÖŒÚy§çŸq¹ŸÞ ÚŒ9-ÌÑ|æßw?º˜î.1øù<¥Ï{Ýì=m†3BñªmôÂ?Ì>e›½póÒÕÂAØoF<@Éo}Ðeu‰0a‹ë¥µb½¬J@öC—uá÷ðÑvKÛÂÿÆí÷qûï¸ý6nÿÓõÍÿ²o\vô¹¯éBJý°ê¨{«Ž.Ù—ôg°âè¦úMØñÔ ,.Ÿ¡/)–™Ý©á.Xmu¥;NIÊþ~ß{ÃC)óoFR¦»d»º7­qÝx/Ý¥Éû]á´ñ Ox¤v„OµH5®]]êïÒ§ž~—›žíRG­—ë4,wŒkWõ÷®xD¡}͇:èmÓǺ­Ã(XÒfÍböÙ=Yt¨çÜR=¨é:1dÕò#ò$Ÿ.\#/Àþù¶rï<V·W¯rÃ4gåb6''ã;àcÃm˜ƒÒ!È—Ò ÎΤ:&ç†Í´c…ÿaG™³°u>:N¾ä4ôžðlwh³ë ›Õfö\ÆÈÍ•„ôÞqTÈÐèB¦i*ÑÒýÍJ4Àm?;(ÍÉþ¿¼ëð¨ kÇ:ýú?E‚1š# T³Jh{Y误ÑÂr|3,”——£˜5zeµEXÃyyq“·ê•xÞø•'÷E¯ë SàOYªü|(>Þz(˜ÎPjÿÐÿUg´ C1·Š[ŒíB?ÅæÍN¶Mûe¿—öûõ'7]k:-Ë$I-ç‘pÂKåé+q{¥”×`: #),¼ÆU}*ÜÁ+”‚úÁB]:.o€É¶•X´¯ïnW_æY²ƒ'Ce©ÍoÒæ×w+¹©Ë¸:[ùÑ–"Ø$ÏqÒŠÚWôý‡q;™aÊŸ[ÕâìjQó_LVßÙxÒ˜_lÑÝqC¬Wañâì:}ð„šÊ'?­É›rûÎãéÇñô#xz·¯áöMƒužæŸÈms0ᄆåÄê‚L]¸^–¢¹êÖY-¥âWiµ»x“ʸƒoñ|€Çyó9÷æ!÷&ÕjÂù¤ùÝË 'ál åaÂz½cTS§ò}ì„£C¬£Ð¨Ë‡qmrf"063è¶ófÝš· ¨1QôªBÜXu1ñYD8À…à#U0;ÖÍœV~$ÃâÚÜìé—&'°„1Û,ïè–±Âk¹óç¦ò/Ç[mÚ"ìƒ'9[ÿK³·Ôõx4ŽcbN ÊwdÇd+Cÿ@ûƒÌçaq¹"…ã?¾­âq=½Žkxî#íK2•WQ²E—´¤H~# ‘ŽÆÐÜé K^—ýõbe)â¶âÍò¦Šÿk`·jæR6,ß©å TÔ’p(à·°'ã¾RwûŽØry?Ö]Ì~ 4ßh\|u‡ô0Çá¤eÄô…ûÍ¿ÌòËE”XëO»ÙF)^®Ó`¹béYè–2G%}®Ô8Ã+WcZ„t¥jÜ(í­ñ\%¬µÛÿKÙ|«‘·6æIP<—TÕÍûžÉÏ[ BGàü§Â楰·—,”¹%½­ü¨cìÂö§Ž„c$Ž Óۋʵž4®£¦›úm*É©ÿää û@¹Šÿo¸eC³:/ôâÖ‡ÛÜ â)ìÅíw‘.ÄÓ¾ÐPSáp¢b­ý’ÜF±[ʼnš §ôL6ÝÝÛÝÓÝÕ}¸{°{OOÿžƒÝ{ž½×ëîîÞ-=»Özz«£@x3ž©gÃ1*V"Oت|–åa.ª­à ¢åUY!FQq©}R?{kî•Ë8R$÷1œŽÞÎ} ë÷·³·ø+Êfgs££ä‹ñ¤³x üNŽX,ÅæÒQ½TÁÉaùìMZ®–œÿú(l䙥ð¨R*ck¼ãÍã9óŒgOÀPþL'`*_§3ÞÕò†B,/›ã±ð%8>Ïe½Ìå8nÐu7ŸÍ^)WeG²l¶ >2q<71Áfò®¹ûµG ùΘha­\&fÇÄ’Cß#Â9Î HÎÚtÓ†;9Uç ­"NôÊ' ÉüklÚj£ÜäɶÉì59qþÒkS¹sõúæÜäÓO1ý)“~ê‰ée¥Åê΢ºVÛxŽ=WW]%b7 èóx˜‡eùï¼í·0'ñ˜³bäšyN_¬¢ÉŠÕMKpÛä…éêšð»Úz$óñ¼t•æ+ín×n¤X²Ämº œ_ÊK•s3×oÞ»}ùÒÍüÍ»7‰þ4±ˆfàqPÑŸþ,é¯7òÞ¹ˆºÙB‹àì¶jÙâ×½3/fœ›z%>uz£!ª—Wé2õòI[²EDjVP $d‘®»²øúGÆçÆJ1}MÌçæj+å¶býS§ÏXI2¥¸ôN"ëö z£j–C6ت¡^ÖckF•7õ[ôàv/£B•ڟ♸…V€lWDR@½¦kzÚ¯Ub ë1ótGU<Â"¥iûE[6Ò£üOŠâ{îÐ?z™ÏlÓ½VfÐÍàVVŽY¦ ‚1D<â#·ômsò÷ìæcSL6Ç4š£Tž__òÞ™© óBo©5>•)ì¤`jøˆ'Ôη§ ™è7Ñ‹ëËÔP`#0ÄVËG)à ÊF° es½a7G²rwйeåxé&^.ÇF=þ`«—„'è4·®ã-isR©í}Ôc=ŠO0.ìŸÂƒ²¬a@l·‹ÈH3çäS3rê ¤·òH7ÏÝœÉél%ÅCsÈ‚ÒýsXõjY e]CšÆ¸ñ¶;†¶ÍŽ5ßäK‰Dnì¼ìÆuæ–‹ÅÉWÎó«¥ÅmGPIÖï•åH†þŒB_±ÊöÐ CM òq©õv´\^hÔ==‚_tŽ…ö<á:õAÅœì¬áxžÅa˜õÜ©w.b Œ´}{Ö¶œ·­9óòääxnêÌ)üóÒ+§'ÛÏ†Ž âvýûÔF"™ß°ùÒ5ï8XòFQ1©ÿ˜8ÍLNÿ2i}ML@Ÿ*”œÚ`}IB:ì•¡3Gu‹Û6#»Í-–‹u¤eiö€_¿Lš¤ý|…2;:*Y%©žn‚|W• ðÌm¬Ôü‰Ó÷‚T˜kæ˜_»/‡;¶!Rò— ÅW (Êf1ð\TY➊ز ªÏ*‚]q5 ¢µ`ª'ýÜdÒŽ9OSnD§½yéÍ6YnS3ÿS8U[‹nNÂX]Øá÷ÉE'´ñÄ2Õ§ö"ÑI¡ë*¥’:@ë@Ec!¯›xɯµùTN-x%Ÿ¾Yxh´+R<`ÖÉô;sê’=HIk¼HœÜªÉ²P~˜¿ç×Ð3+ŠlÞ Ý8žìˆñÜ6ã¡¡ÇÍàð#.Äü“ Ñ”™×ãÛ¢ZCž°s¿-„òË‚$¯•Z½ÜØBåuÙ€óÊäIæ+íiKœm‘½öHêÆç½èâ±R%¢ ãⅥ꙲›n— ×FæX,ÃaÆ@²ÝfFð¹À#¢(Þ—…Cc’²”È …eÙ^5\J8%i¹¸)W3ÍcTC2‘®Õ–92ò¹[º ©,¶-}Ÿ$í‹ •µ…uYèÉÀ+Qøïjq¡R/V±ÈZ}É(МÙç**åD䀅´.võò¬óÆdñ[\ã.ÔW݆—ãå9u_¼ZèÌv•[,S{Ù‚ÙD‘ÈhÜe´6¯,Ž>“=”nÈÓçkËŽÞ…*€R9¢ç»“X„AóžÜ.Ý.ë¬å¬.Qy<;âòX‰1;›ÑèåÕ‡£v÷笔 ïZu­¹Vuf°B×FAj&gS›Õœ-–’22óè¨Ì]RŽÑòåQ%1ÌÉfa×L\=D•ý¸ÎM§¤sÚ³én5YtçÆ¢²´ØrT“ F¤»¬ˆ«ºxÇÇkN~ÛÖ=_/Õ̼—OìåO‘6TÈаB€¡˜“`™,*+P}V"‘›6{7‘â;O–ðSó\Ìʨô¯+Ò–†“ê’y&¶Û˜qÚ)À1—d0/¨àÜH.õ3ƒE$'ù Uö9•:› åYª³¨uZu_±²’‹)®•Ž¥}Åuo–`ëò1 ½²ûÖðéÄB!‡E9~ ?©JMä#*TÍk‘"5MRáÍ“¾‹e¬Ëýô[ÜÍa9LõÑö<ʶ€]:yµUÃA%Ëm6e³äcÚ•ö&<7 á§¾ƒßX¼zùúÍË…ó¶¯p¦;F‘·MÊSÄ\0äÑëÞ´`Ü%¶õT(ÏËȼe¡ˆ=NÁ‹‹/›|œá˜UKv'Þ±*ÁzPëýfL5µ•”•ÖJëØ¼~!c@5 Sx©õ5]â|‚œ šÀ൞¶Ð‚,gÁRa(ˆs(œ2_+ô÷+\II×i^’ì³bé!æg5„郎’oY´Í­Tðì6¡ãÁ#ø™ šw £-lR ,OI“™szp{BýÁBã´dØ?¯¶À¹hSò®CÊØsTªz2/í…™ ª’Ž AÓ:¬pÔ¶¦Ý¶ŒZîÀ¾*Ū©ñÞj Ú'×áH­Øˆ­WcWÙ±ªÅ»DWÞ»×Õá¨pqÁ˜Sš;(NýÛ‰±9+Ð1@•aÈ=w§:d¤lPsŽPÍ™€òL¤¥¶3†T¥Îœ;íÞñ5üô\7QOê}˜pn­5j¨ž~õúZe~½®¾íA Ô¹§Ã)XÒáHØ—Ò5(X¨B9Û {5mÄÌ€Ïp\^°ŽBݶq‚¢¶‡ ´zh´³ƒu‹:…#ž·¼˜ƒ¥L2]½Ã`|ª‚ïàÜ`s˜ Áš¨oÏŽGr‹:"{ebf ×£Ùñ…f›sD–`S é’º˜)ù®fõ„´¢I{›;_,Ï®äã=wµ^hC~¯.WæKÅóGÐ~Œç(GÎÄ£G=ƒ!GV¸˜u¸–àIötõûä²-S§œ ôT·É_DÞ²ºÕÓpGŒh‰û3òwÒ¶Ãg¥…*Ö‹‡Çüù¸Ç@á™Gc?>ÌûxLL7°"Æ…¼w1*K´»]tßÜÍW:¾ß8t"äÜ-*C4«Ïà¤l*³6ß ¶zÁ;yÉüÒ‚]–è*QÚ –R¯A^)õÃÅ ´fü¥AXÜ—†`û®@)EáP%G“Q™”Ž¥ãAé¹ t"(¥“Aéù ôB°ô˜´ºG‚Ç{ƒ;Õçƒ v„ƒý°Ú4è¡Û(é³ÎuÃ|c×Ö‘`úíÞ.dp0xÜlIA>O«ýAòE<=¸†Hñg˜bRš¡?¨[- ¹¢ýE¢¡y»¥yßvÍûQ6ïæ°I MtT:O‘kï<ø\¦]7\onWIÞÕI2A’?á—î° þI÷I&yôÜp1ï¢þ£V žM ¢kZð[ð3B÷΃éŽv…¾Õ¢ÐÓ2þüAøå–ßõGšo´ýøÝÿFãÇÊo«Ý®Aþ² ýà¯øÁ þ+~&qð_õƒ;]ð_³È|ÂtÞ%‡ßÚOW£þýõf"œL$øi&¸ÒÐn{íÖØ&•mâ7ÇÏ0O°ž)»S®Ô?ëb^jˆùªÁâDbN»˜¿ÑóAó7b^v1_kˆù‹ù¹†˜W\Ì×3æ•À}Ðåß”ÝßâK£^\¾è]™q×Ñš6ùßþÞ’ÿŸR2.øïú$qÈÿ|CÕÎ0FþîÔ…‰ÓÐ`Rú\òÊ^@Â\2ź=E²Y}F©çû SF¶äqå½DÛ–µKµq޵Žù ö¢ÿÍ?HÐл n½ÅIçUÏ]jó}ê¥Ðè8¯Õú#1_<ö)Òs:–žñÓýaµS Ù>çtêÓ¼¶†t4¹¤Ä&ÖÌtÙÖé>ÙÎÄœ×VààÄÇ^ãªW‹þždÓcσޫ¬ˆþ¨‡÷ŠÈO±z5¿×ºPEÊ‹pO,½KÆÕaÒÚ£è—ׂÊ%{¤Ðƒšåâ:Ý`ÚO€Oÿýôëþ§‡½µ lÕ#Lãe÷"Jäæ^™>Ý2ð¸^?Ö\¯ú\ÜbRì› 8ùÀ/@ШK[|•V6c*ú¦{4]¿¿pvöì£Å³+gË—W®-½5½^Š6ægn^¿xvîìí©ÓÜu¼ykÒÈÍ|ër’Øø‰Þ¾é‘ñs4ŠJĪ•W©˜“RUbpCKÙ&·éK5ÍÅÙò0ž†*4o5â{Îê±Îq«Ï"qS,;]sTs•{mk„¯ªq ¿á,F(9„ÙE`ª¼cé%ÌØZ¨ümJ3^<½ÁºûªKz…xºKBÂ4¨#w­*(Y §gÔM>~iA©Ô@¨™aƒB>uÍŠ=…Y®=âNâ>«¥¶²À/;óE œe÷ÆF~D©¼ÿ¾L<2Ù@˜¬!‹¬gøâ4BEc‚®&rYuþÆYôOe8§Fq‘*ŽWòYýø E> Û7:`{¿Û€"ØÖéÜ‘¬¶¬0SŽ>¡Kq­ MRÎÑ”ª˜[†‹­ÊØùS“'e–ô¤Æí¬ñšªU6mꆑ_&ÁùªD _µfÝoú#Ùê 5lãǨA4h‰„¥ 9ÅRÍ*ZÚ6_»eŠèƨO›è`eк)‡ŽZ6»EPzšE†âHZGÌßþ• òªØ4`Þ3ЀÓb–+hèMSRevÝÔ3æ ¾hsŒ–5à¶é›˜[høœi2”èËZ\¬®/Q)“»ð 8m„éô™’{l§×"“Ù«m`=šÎg>»½a?¦°ümƒ,ˆ¾C6–œh¯i–$/Ôb6q#Û‰àGù·„ú'ZI¦iЍ–‰vLÈðÊéÁYÀbg·ÀiÈ%¤€z¢ðßÔò%¡Áæ”<>†„€3 ÎÂijºY"ÛBIè¹÷q\0Çd!@aZ ênÞ˜¾‘[®Dõ³YG.ÇNµ2ÆÙZ}€PÌ·ô$`ÕØ2\›âlŽá,9ŠUiòð[çWž˜½à†™Ð‹iœ½(&ô‚›¦C/®ÅlåÅ61}/®™ó{‘ìß‹JÎ^Db"ðÂãÙÀ lâõ^\‚á{áI®ïEøüÜ öx¶ê1n/´‘{{QIîE4ñq/Îcæ^h3G÷"lÝ ÷8·ê±ï1‡‚›äáÞÄÈǨ\7÷ßðXº7ðu ô˜»ø>‘Þÿt›×¨v¼^cc†?Í)—³Âˆ…§)œ aO ÃÑ3/ðm‚³2(ä XÇ+¸}ÆåP#<«ty-ëB¹V©VôlÚz­T#ÈQ•ÂkaàŽ—…½›2%²§ÄgÑÐèã¤Ø‘jÜѲWXõo|Ö& 9kM]±k£÷#\x‚E|·ŸÂ l<þg ^g¯#Œ§#v®g„£ ñËÑfš0,¼ÂÃínoÙãÙ$%VÙPqa èbéN̤£–üŸ2Â#ØŽZ-ª{:·p2éGºß² W §8…Ñ‹s¶ÖŠîÑŒÇÄŽa1T˜A²k¡m–‡v¢`aÐ]…ë¶/ oâ‰]{7PM᪥¥6ý/»ÆýHhªY˜uÄt·ïÇí¦››Hjm¡5EÏ®e†‡Î4ƒÜ¡ãn/n€q‡[†d[üuó«ƒ^Y†øýöÿ)þ¿}ê4¹Ø'û·75 ¹3ú™LŸ´0vÃÃéÔ“¨<½)|-kî½éÅä ±{lÍSýÒ2Ã’Ë Ž‰—T]aW0˜î :ƒ=©ýxNõšc~û2]„Ÿ@mZêÛŽ„šNÏÞ›–þI)ÞÄPjŸä Ôð¹p …°Láî”1]Ü»Çi‚ðÅyÚJÑë2{¡*›}9;”x?øæÀ¾ÇCï›Ý‹Ã=ÝÝï§z‰UÙÇ‘Ù(T?ŸåC³_ á¾{;˜ îÉý²¬hç‚™àFp]~ÏÈý GÁßÏüæïƒ;tö iaòšù•‘ÿ yýSÍõ`-¨Õ`Ir«ËAYr®‹NÿÓL§åï ÿ½L²òÈϦ¿-kA$¿jA•yOù“ÄëA¤»Á/,ñ+Eyþ‡_+Ox•7£`"˜—û²¼[6>.$ fåýZP ÖƒIyݽ%ôlšw6Ó”¶±d¶\Ó¬×mÉi­E­ƒà ÏnJlQB‘Qr‹ë×ùZföÂôôÌõ+wÿ—~;×εsí\;×εsí\;×εsí\;×εsí\;×εsí\;×εsí\;×εsí\;×εsýýž € (tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/tos-bsl.1.in000066400000000000000000000005751206361226500236130ustar00rootroot00000000000000.TH tos-bsl 1 "Feb 3, 2006" .LO 1 .SH NAME tos-bsl - Program a telos or telos B mote .SH SYNOPSIS \fBtos-bsl\fR [\fIoptions-and-files\fR] .SH DESCRIPTION \fBtos-bsl\fR is a version of \fBmsp430-bsl\fR modifies to support the telos and telos B motes. See @prefix@/share/doc/tinyos-tools-@PACKAGE_VERSION@/tos-bsl.txt .br for full documentation. .SH SEE ALSO .IR motelist (1) tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/tos-bsl.in000066400000000000000000002316061206361226500234550ustar00rootroot00000000000000#!@pathpython@ # Serial Bootstrap Loader software for the MSP430 embedded proccessor. # # (C) 2001-2003 Chris Liechti # this is distributed under a free software license, see license.txt # # fixes from Colin Domoney # # based on the application note slas96b.pdf from Texas Instruments, Inc., # Volker Rzehak # additional infos from slaa089a.pdf # # Forked by Travis Goodspeed for use with the GoodFET # JTAG programmer. import sys, time, string, cStringIO, struct sys.path.append("@tinyoslibdir@") import serial, os, glob #forked from TinyOS Telos version. VERSION = string.split("Revision: 1.39-goodfet-8 z1 fork")[1] DEBUG = 0 #disable debug messages by default #copy of the patch file provided by TI #this part is (C) by Texas Instruments PATCH = """@0220 31 40 1A 02 09 43 B0 12 2A 0E B0 12 BA 0D 55 42 0B 02 75 90 12 00 1F 24 B0 12 BA 02 55 42 0B 02 75 90 16 00 16 24 75 90 14 00 11 24 B0 12 84 0E 06 3C B0 12 94 0E 03 3C 21 53 B0 12 8C 0E B2 40 10 A5 2C 01 B2 40 00 A5 28 01 30 40 42 0C 30 40 76 0D 30 40 AC 0C 16 42 0E 02 17 42 10 02 E2 B2 08 02 14 24 B0 12 10 0F 36 90 00 10 06 28 B2 40 00 A5 2C 01 B2 40 40 A5 28 01 D6 42 06 02 00 00 16 53 17 83 EF 23 B0 12 BA 02 D3 3F B0 12 10 0F 17 83 FC 23 B0 12 BA 02 D0 3F 18 42 12 02 B0 12 10 0F D2 42 06 02 12 02 B0 12 10 0F D2 42 06 02 13 02 38 E3 18 92 12 02 BF 23 E2 B3 08 02 BC 23 30 41 q """ #These BSL's are (C) by TI. They come with the application note slaa089a F1X_BSL = """@0220 24 02 2E 02 31 40 20 02 2B D2 C0 43 EA FF 32 C2 F2 C0 32 00 00 00 B2 40 80 5A 20 01 F2 40 85 00 57 00 F2 40 80 00 56 00 E2 D3 21 00 E2 D3 22 00 E2 C3 26 00 E2 C2 2A 00 E2 C2 2E 00 B2 40 10 A5 2C 01 B2 40 00 A5 28 01 3B C0 3A 00 B0 12 D6 04 82 43 12 02 09 43 36 40 0A 02 37 42 B0 12 AC 05 C6 4C 00 00 16 53 17 83 F9 23 D2 92 0C 02 0D 02 28 20 55 42 0B 02 75 90 12 00 80 24 75 90 10 00 6D 24 B0 12 9C 04 55 42 0B 02 75 90 18 00 31 24 75 90 1E 00 B8 24 75 90 20 00 17 24 2B B2 11 24 75 90 16 00 22 24 75 90 14 00 B3 24 75 90 1A 00 18 24 75 90 1C 00 45 24 04 3C B0 12 36 05 BE 3F 21 53 B0 12 3C 05 BA 3F 03 43 B0 12 36 05 D2 42 0E 02 56 00 D2 42 0F 02 57 00 D2 42 10 02 16 02 AD 3F B0 12 36 05 10 42 0E 02 16 42 0E 02 15 43 07 3C 36 40 FE FF B2 40 06 A5 10 02 35 40 0C 00 B2 40 00 A5 2C 01 92 42 10 02 28 01 B6 43 00 00 92 B3 2C 01 FD 23 15 83 F3 23 36 90 FE FF CD 27 37 40 80 00 36 F0 80 FF 36 90 00 11 0E 28 07 57 36 F0 00 FF 36 90 00 12 08 28 07 57 36 F0 00 FE 04 3C 16 42 0E 02 17 42 10 02 35 43 75 96 03 20 17 83 FC 23 B2 3F 82 46 00 02 B3 3F 36 40 E0 FF 37 40 20 00 B0 12 AC 05 7C 96 01 24 2B D3 17 83 F9 23 2B C2 B0 12 9C 04 2B D2 9F 3F 16 42 0E 02 17 42 10 02 2B B2 38 24 3B D0 10 00 B0 12 AC 05 36 90 00 10 06 2C 36 90 00 01 09 2C C6 4C 00 00 25 3C B2 40 00 A5 2C 01 B2 40 40 A5 28 01 16 B3 03 20 C2 4C 14 02 1A 3C C2 4C 15 02 86 9A FD FF 08 24 2B D3 3B B0 20 00 04 20 3B D0 20 00 82 46 00 02 36 90 01 02 04 28 3B D2 3B B0 10 00 02 24 3B C0 32 00 1A 42 14 02 86 4A FF FF 16 53 17 83 CD 23 B0 12 9C 04 61 3F B0 12 AC 05 17 83 FC 23 B0 12 9C 04 5E 3F B2 40 F0 0F 0E 02 B2 40 10 00 10 02 B2 40 80 00 0A 02 D2 42 10 02 0C 02 D2 42 10 02 0D 02 82 43 12 02 09 43 36 40 0A 02 27 42 7C 46 B0 12 40 05 17 83 FB 23 16 42 0E 02 17 42 10 02 36 90 00 01 0A 28 B2 46 14 02 5C 42 14 02 B0 12 40 05 17 83 5C 42 15 02 01 3C 7C 46 B0 12 40 05 17 83 EE 23 B2 E3 12 02 5C 42 12 02 B0 12 40 05 5C 42 13 02 B0 12 40 05 E0 3E 18 42 12 02 B0 12 AC 05 C2 4C 12 02 B0 12 AC 05 C2 4C 13 02 38 E3 3B B2 0A 24 86 9A FE FF 07 24 3B B0 20 00 04 20 16 53 82 46 00 02 2B D3 18 92 12 02 08 23 2B B3 06 23 30 41 E2 B2 28 00 FD 27 E2 B2 28 00 FD 23 B2 40 24 02 60 01 E2 B2 28 00 FD 27 15 42 70 01 05 11 05 11 05 11 82 45 02 02 05 11 82 45 04 02 B2 80 1E 00 04 02 57 42 16 02 37 80 03 00 05 11 05 11 17 53 FD 23 35 50 40 A5 82 45 2A 01 35 42 B2 40 24 02 60 01 92 92 70 01 02 02 FC 2F 15 83 F7 23 09 43 7C 40 90 00 02 3C 7C 40 A0 00 C2 43 07 02 C9 EC 12 02 19 E3 1B C3 55 42 07 02 55 45 56 05 00 55 0C 2E 2E 2E 2E 2E 2E 2E 2E 1A 34 34 92 42 70 01 72 01 B2 50 0C 00 72 01 07 3C 1B B3 0B 20 82 43 62 01 92 B3 62 01 FD 27 E2 C3 21 00 0A 3C 4C 11 F6 2B 1B E3 82 43 62 01 92 B3 62 01 FD 27 E2 D3 21 00 92 52 02 02 72 01 D2 53 07 02 F0 90 0C 00 61 FC D1 23 30 41 C2 43 09 02 1B C3 55 42 09 02 55 45 BC 05 00 55 0C 56 56 56 56 56 56 56 56 36 76 00 E2 B2 28 00 FD 23 92 42 70 01 72 01 92 52 04 02 72 01 82 43 62 01 92 B3 62 01 FD 27 E2 B2 28 00 1E 28 2B D3 1C 3C 4C 10 1A 3C 82 43 62 01 92 B3 62 01 FD 27 E2 B2 28 00 01 28 1B E3 1B B3 01 24 2B D3 C9 EC 12 02 19 E3 0A 3C 82 43 62 01 92 B3 62 01 FD 27 E2 B2 28 00 E6 2B 4C 10 1B E3 92 52 02 02 72 01 D2 53 09 02 C0 3F 82 43 62 01 92 B3 62 01 FD 27 E2 B2 28 00 01 2C 2B D3 30 41 q """ F4X_BSL = """@0220 24 02 2E 02 31 40 20 02 2B D2 C0 43 EA FF 32 C2 F2 C0 32 00 00 00 B2 40 80 5A 20 01 32 D0 40 00 C2 43 50 00 F2 40 98 00 51 00 F2 C0 80 00 52 00 D2 D3 21 00 D2 D3 22 00 D2 C3 26 00 E2 C3 22 00 E2 C3 26 00 B2 40 10 A5 2C 01 B2 40 00 A5 28 01 3B C0 3A 00 B0 12 DE 04 82 43 12 02 09 43 36 40 0A 02 37 42 B0 12 B4 05 C6 4C 00 00 16 53 17 83 F9 23 D2 92 0C 02 0D 02 28 20 55 42 0B 02 75 90 12 00 80 24 75 90 10 00 6D 24 B0 12 A4 04 55 42 0B 02 75 90 18 00 31 24 75 90 1E 00 B8 24 75 90 20 00 17 24 2B B2 11 24 75 90 16 00 22 24 75 90 14 00 B3 24 75 90 1A 00 18 24 75 90 1C 00 45 24 04 3C B0 12 3E 05 BE 3F 21 53 B0 12 44 05 BA 3F 03 43 B0 12 3E 05 D2 42 0E 02 50 00 D2 42 0F 02 51 00 D2 42 10 02 16 02 AD 3F B0 12 3E 05 10 42 0E 02 16 42 0E 02 15 43 07 3C 36 40 FE FF B2 40 06 A5 10 02 35 40 0C 00 B2 40 00 A5 2C 01 92 42 10 02 28 01 B6 43 00 00 92 B3 2C 01 FD 23 15 83 F3 23 36 90 FE FF CD 27 37 40 80 00 36 F0 80 FF 36 90 00 11 0E 28 07 57 36 F0 00 FF 36 90 00 12 08 28 07 57 36 F0 00 FE 04 3C 16 42 0E 02 17 42 10 02 35 43 75 96 03 20 17 83 FC 23 B2 3F 82 46 00 02 B3 3F 36 40 E0 FF 37 40 20 00 B0 12 B4 05 7C 96 01 24 2B D3 17 83 F9 23 2B C2 B0 12 A4 04 2B D2 9F 3F 16 42 0E 02 17 42 10 02 2B B2 38 24 3B D0 10 00 B0 12 B4 05 36 90 00 10 06 2C 36 90 00 01 09 2C C6 4C 00 00 25 3C B2 40 00 A5 2C 01 B2 40 40 A5 28 01 16 B3 03 20 C2 4C 14 02 1A 3C C2 4C 15 02 86 9A FD FF 08 24 2B D3 3B B0 20 00 04 20 3B D0 20 00 82 46 00 02 36 90 01 02 04 28 3B D2 3B B0 10 00 02 24 3B C0 32 00 1A 42 14 02 86 4A FF FF 16 53 17 83 CD 23 B0 12 A4 04 61 3F B0 12 B4 05 17 83 FC 23 B0 12 A4 04 5E 3F B2 40 F0 0F 0E 02 B2 40 10 00 10 02 B2 40 80 00 0A 02 D2 42 10 02 0C 02 D2 42 10 02 0D 02 82 43 12 02 09 43 36 40 0A 02 27 42 7C 46 B0 12 48 05 17 83 FB 23 16 42 0E 02 17 42 10 02 36 90 00 01 0A 28 B2 46 14 02 5C 42 14 02 B0 12 48 05 17 83 5C 42 15 02 01 3C 7C 46 B0 12 48 05 17 83 EE 23 B2 E3 12 02 5C 42 12 02 B0 12 48 05 5C 42 13 02 B0 12 48 05 E0 3E 18 42 12 02 B0 12 B4 05 C2 4C 12 02 B0 12 B4 05 C2 4C 13 02 38 E3 3B B2 0A 24 86 9A FE FF 07 24 3B B0 20 00 04 20 16 53 82 46 00 02 2B D3 18 92 12 02 08 23 2B B3 06 23 30 41 E2 B3 20 00 FD 27 E2 B3 20 00 FD 23 B2 40 24 02 60 01 E2 B3 20 00 FD 27 15 42 70 01 05 11 05 11 05 11 82 45 02 02 05 11 82 45 04 02 B2 80 1E 00 04 02 57 42 16 02 37 80 03 00 05 11 05 11 17 53 FD 23 35 50 40 A5 82 45 2A 01 35 42 B2 40 24 02 60 01 92 92 70 01 02 02 FC 2F 15 83 F7 23 09 43 7C 40 90 00 02 3C 7C 40 A0 00 C2 43 07 02 C9 EC 12 02 19 E3 1B C3 55 42 07 02 55 45 5E 05 00 55 0C 2E 2E 2E 2E 2E 2E 2E 2E 1A 34 34 92 42 70 01 72 01 B2 50 0C 00 72 01 07 3C 1B B3 0B 20 82 43 62 01 92 B3 62 01 FD 27 D2 C3 21 00 0A 3C 4C 11 F6 2B 1B E3 82 43 62 01 92 B3 62 01 FD 27 D2 D3 21 00 92 52 02 02 72 01 D2 53 07 02 F0 90 0C 00 59 FC D1 23 30 41 C2 43 09 02 1B C3 55 42 09 02 55 45 C4 05 00 55 0C 56 56 56 56 56 56 56 56 36 76 00 E2 B3 20 00 FD 23 92 42 70 01 72 01 92 52 04 02 72 01 82 43 62 01 92 B3 62 01 FD 27 E2 B3 20 00 1E 28 2B D3 1C 3C 4C 10 1A 3C 82 43 62 01 92 B3 62 01 FD 27 E2 B3 20 00 01 28 1B E3 1B B3 01 24 2B D3 C9 EC 12 02 19 E3 0A 3C 82 43 62 01 92 B3 62 01 FD 27 E2 B3 20 00 E6 2B 4C 10 1B E3 92 52 02 02 72 01 D2 53 09 02 C0 3F 82 43 62 01 92 B3 62 01 FD 27 E2 B3 20 00 01 2C 2B D3 30 41 q """ CALIB_TABLES = """ 84 C0 16 FE FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 10 08 80 00 00 01 7E 27 0B 79 0D AA 7E 4D 06 DF 08 33 08 FE FF FF FF FF FF FF FF FF 08 01 8F 95 8E 9A 8D 88 86 D1 """ #cpu types for "change baudrate" #use strings as ID so that they can be used in outputs too F1x = "F1x family" F2x = "F2x family" F4x = "F4x family" #known device list deviceids = { 0xf149: F1x, 0xf16c: F1x, #for GoodFET10 to '20 0xf112: F1x, 0xf413: F4x, 0xf123: F1x, 0xf449: F4x, 0x1232: F1x, 0xf26f: F2x, #for GoodFET20 0xf227: F2x, #for GoodFET30 } #GoodFET firmware firmware = { 0xf16c: "http://goodfet.sourceforge.net/dist/msp430x1612.hex", 0xf26f: "http://goodfet.sourceforge.net/dist/msp430x2618.hex", 0xf227: "http://goodfet.sourceforge.net/dist/msp430x2274.hex" } class BSLException(Exception): pass class LowLevel: "lowlevel communication" #Constants MODE_SSP = 0 MODE_BSL = 1 BSL_SYNC = 0x80 BSL_TXPWORD = 0x10 BSL_TXBLK = 0x12 #Transmit block to boot loader BSL_UNLOCK_INFO = 0x12 #unlocks / locks info segment A Not working on msp430f2617 BSL_RXBLK = 0x14 #Receive block from boot loader BSL_ERASE = 0x16 #Erase one segment BSL_MERAS = 0x18 #Erase complete FLASH memory BSL_CHANGEBAUD = 0x20 #Change baudrate BSL_LOADPC = 0x1A #Load PC and start execution BSL_TXVERSION = 0x1E #Get BSL version #Upper limit of address range that might be modified by #"BSL checksum bug". BSL_CRITICAL_ADDR = 0x0A00 #Header Definitions CMD_FAILED = 0x70 DATA_FRAME = 0x80 DATA_ACK = 0x90 DATA_NAK = 0xA0 QUERY_POLL = 0xB0 QUERY_RESPONSE = 0x50 OPEN_CONNECTION = 0xC0 ACK_CONNECTION = 0x40 DEFAULT_TIMEOUT = 1 DEFAULT_PROLONG = 10 MAX_FRAME_SIZE = 256 MAX_DATA_BYTES = 250 MAX_DATA_WORDS = 125 MAX_FRAME_COUNT = 16 #Error messages ERR_COM = "Unspecific error" ERR_RX_NAK = "NAK received (wrong password?)" #ERR_CMD_NOT_COMPLETED = "Command did not send ACK: indicates that it didn't complete correctly" ERR_CMD_FAILED = "Command failed, is not defined or is not allowed" ERR_BSL_SYNC = "Bootstrap loader synchronization error" ERR_FRAME_NUMBER = "Frame sequence number error." def calcChecksum(self, data, length): """Calculates a checksum of "data".""" checksum = 0 for i in range(length/2): checksum = checksum ^ (ord(data[i*2]) | (ord(data[i*2+1]) << 8)) #xor-ing return 0xffff & (checksum ^ 0xffff) #inverting def __init__(self, aTimeout = None, aProlongFactor = None): """init bsl object, don't connect yet""" if aTimeout is None: self.timeout = self.DEFAULT_TIMEOUT else: self.timeout = aTimeout if aProlongFactor is None: self.prolongFactor = self.DEFAULT_PROLONG else: self.prolongFactor = aProlongFactor #flags for inverted use of control pins #used for some hardware self.invertRST = 0 self.invertTEST = 0 self.swapRSTTEST = 0 self.telosLatch = 0 self.telosI2C = 0 self.z1 = 0 self.protocolMode = self.MODE_BSL self.BSLMemAccessWarning = 0 #Default: no warning. self.slowmode = 0 def comInit(self, port): """Tries to open the serial port given and initialises the port and variables. The timeout and the number of allowed errors is multiplied by 'aProlongFactor' after transmission of a command to give plenty of time to the micro controller to finish the command. Returns zero if the function is successful.""" if DEBUG > 1: sys.stderr.write("* comInit()\n") self.seqNo = 0 self.reqNo = 0 self.rxPtr = 0 self.txPtr = 0 # Startup-Baudrate: 9600,8,E,1, 1s timeout self.serialport = serial.Serial( port, 9600, parity = serial.PARITY_EVEN, timeout = self.timeout ) if DEBUG: sys.stderr.write("using serial port %r\n" % self.serialport.portstr) #self.SetRSTpin() #enable power #self.SetTESTpin() #enable power self.serialport.flushInput() self.serialport.flushOutput() def comDone(self): """Closes the used serial port. This function must be called at the end of a program, otherwise the serial port might not be released and can not be used in other programs. Returns zero if the function is successful.""" if DEBUG > 1: sys.stderr.write("* comDone()") self.SetRSTpin(1) #disable power self.SetTESTpin(0) #disable power self.serialport.close() def comRxHeader(self): """receive header and split data""" if DEBUG > 1: sys.stderr.write("* comRxHeader()\n") hdr = self.serialport.read(1) if not hdr: raise BSLException("Timeout") rxHeader = ord(hdr) & 0xf0; rxNum = ord(hdr) & 0x0f; if self.protocolMode == self.MODE_BSL: self.reqNo = 0 self.seqNo = 0 rxNum = 0 if DEBUG > 1: sys.stderr.write("* comRxHeader() OK\n") return rxHeader, rxNum def comRxFrame(self, rxNum): if DEBUG > 1: sys.stderr.write("* comRxFrame()\n") rxFrame = chr(self.DATA_FRAME | rxNum) if DEBUG > 2: sys.stderr.write(" comRxFrame() header...\n") rxFramedata = self.serialport.read(3) if len(rxFramedata) != 3: raise BSLException("Timeout") rxFrame = rxFrame + rxFramedata if DEBUG > 3: sys.stderr.write(" comRxFrame() check header...\n") if rxFrame[1] == chr(0) and rxFrame[2] == rxFrame[3]: #Add. header info. correct? rxLengthCRC = ord(rxFrame[2]) + 2 #Add CRC-Bytes to length if DEBUG > 2: sys.stderr.write(" comRxFrame() receiving data, size: %s\n" % rxLengthCRC) rxFramedata = self.serialport.read(rxLengthCRC) if len(rxFramedata) != rxLengthCRC: raise BSLException("Timeout") rxFrame = rxFrame + rxFramedata #Check received frame: if DEBUG > 3: sys.stderr.write(" comRxFrame() crc check\n") #rxLength+4: Length with header but w/o CRC: checksum = self.calcChecksum(rxFrame, ord(rxFrame[2]) + 4) if rxFrame[ord(rxFrame[2])+4] == chr(0xff & checksum) and \ rxFrame[ord(rxFrame[2])+5] == chr(0xff & (checksum >> 8)): #Checksum correct? #Frame received correctly (=> send next frame) if DEBUG > 2: sys.stderr.write("* comRxFrame() OK\n") return rxFrame else: if DEBUG: sys.stderr.write(" comRxFrame() Checksum wrong\n") else: if DEBUG: sys.stderr.write(" comRxFrame() Header corrupt %r" % rxFrame) raise BSLException(self.ERR_COM) #Frame has errors! def comTxHeader(self, txHeader): """send header""" if DEBUG > 1: sys.stderr.write("* txHeader()\n") self.serialport.write(txHeader) def comTxRx(self, cmd, dataOut, length): """Sends the command cmd with the data given in dataOut to the microcontroller and expects either an acknowledge or a frame with result from the microcontroller. The results are stored in dataIn (if not a NULL pointer is passed). In this routine all the necessary protocol stuff is handled. Returns zero if the function was successful.""" if DEBUG > 1: sys.stderr.write("* comTxRx()\n") txFrame = [] rxHeader = 0 rxNum = 0 dataOut = list(dataOut) #convert to a list for simpler data fill in #Transmitting part ---------------------------------------- #Prepare data for transmit if (length % 2) != 0: #/* Fill with one byte to have even number of bytes to send */ if self.protocolMode == self.MODE_BSL: dataOut.append(0xFF) #fill with 0xFF else: dataOut.append(0) #fill with zero txFrame = "%c%c%c%c" % (self.DATA_FRAME | self.seqNo, cmd, len(dataOut), len(dataOut)) self.reqNo = (self.seqNo + 1) % self.MAX_FRAME_COUNT txFrame = txFrame + string.join(dataOut,'') checksum = self.calcChecksum(txFrame, length + 4) txFrame = txFrame + chr(checksum & 0xff) txFrame = txFrame + chr((checksum >> 8) & 0xff) accessAddr = (0x0212 + (checksum^0xffff)) & 0xfffe #0x0212: Address of wCHKSUM if self.BSLMemAccessWarning and accessAddr < self.BSL_CRITICAL_ADDR: sys.stderr.write("WARNING: This command might change data at address %04x or %04x!\n" % (accessAddr, accessAddr + 1)) self.serialport.flushInput() #clear receiving queue #TODO: Check after each transmitted character, #TODO: if microcontroller did send a character (probably a NAK!). for c in txFrame: self.serialport.write(c) if DEBUG > 3: sys.stderr.write("\ttx %02x" % ord(c)) #if self.serialport.inWaiting(): break #abort when BSL replies, probably NAK else: if DEBUG > 1: sys.stderr.write( " comTxRx() transmit OK\n") #Receiving part ------------------------------------------- rxHeader, rxNum = self.comRxHeader() #receive header if DEBUG > 1: sys.stderr.write(" comTxRx() rxHeader=0x%02x, rxNum=%d, seqNo=%d, reqNo=%s\n" % (rxHeader, rxNum, self.seqNo, self.reqNo)) if rxHeader == self.DATA_ACK: #acknowledge/OK if DEBUG > 2: sys.stderr.write(" comTxRx() DATA_ACK\n") if rxNum == self.reqNo: self.seqNo = self.reqNo if DEBUG > 2: sys.stderr.write("* comTxRx() DATA_ACK OK\n") return #Acknowledge received correctly => next frame raise BSLException(self.ERR_FRAME_NUMBER) elif rxHeader == self.DATA_NAK: #not acknowledge/error if DEBUG > 2: sys.stderr.write("* comTxRx() DATA_NAK\n") raise BSLException(self.ERR_RX_NAK) elif rxHeader == self.DATA_FRAME: #receive data if DEBUG > 2: sys.stderr.write("* comTxRx() DATA_FRAME\n") if rxNum == self.reqNo: rxFrame = self.comRxFrame(rxNum) return rxFrame raise BSLException(self.ERR_FRAME_NUMBER) elif rxHeader == self.CMD_FAILED: #Frame ok, but command failed. if DEBUG > 2: sys.stderr.write("* comTxRx() CMD_FAILED\n") raise BSLException(self.ERR_CMD_FAILED) raise BSLException("Unknown header 0x%02x\nAre you downloading to RAM into an old device that requires the patch? Try option -U" % rxHeader) def SetDTR(self, level, invert): """Controls DTR pin (0: GND; 1: VCC; unless inverted flag is set)""" if invert: self.serialport.setDTR(not level) else: self.serialport.setDTR(level) if self.slowmode: time.sleep(0.040) def SetRTS(self, level, invert): """Controls RTS pin (0: GND; 1: VCC; unless inverted flag is set)""" if invert: self.serialport.setRTS(not level) else: self.serialport.setRTS(level) if self.slowmode: time.sleep(0.040) def SetRSTpin(self, level=1): """Controls RST/NMI pin (0: GND; 1: VCC; unless inverted flag is set)""" if self.swapRSTTEST: self.SetRTS(level, self.invertRST) else: self.SetDTR(level, self.invertRST) def SetTESTpin(self, level=1): """Controls TEST pin (inverted on board: 0: VCC; 1: GND; unless inverted flag is set)""" if self.swapRSTTEST: self.SetDTR(level, self.invertTEST) else: self.SetRTS(level, self.invertTEST) def writepicROM(self, address, data): ''' Writes data to @address''' for i in range(7,-1,-1): self.picROMclock((address >> i) & 0x01) self.picROMclock(0) recbuf = 0 for i in range(7,-1,-1): s = ((data >> i) & 0x01) #print s if i < 1: r = not self.picROMclock(s, True) else: r = not self.picROMclock(s) recbuf = (recbuf << 1) + r self.picROMclock(0, True) #k = 1 #while not self.serial.getCTS(): # pass #time.sleep(0.1) return recbuf def readpicROM(self, address): ''' reads a byte from @address''' for i in range(7,-1,-1): self.picROMclock((address >> i) & 0x01) self.picROMclock(1) recbuf = 0 r = 0 for i in range(7,-1,-1): r = self.picROMclock(0) recbuf = (recbuf << 1) + r self.picROMclock(r) #time.sleep(0.1) return recbuf def picROMclock(self, masterout, slow = False): #print "setting masterout to "+str(masterout) self.serialport.setRTS(masterout) self.serialport.setDTR(1) #time.sleep(0.02) self.serialport.setDTR(0) if slow: time.sleep(0.02) return self.serialport.getCTS() def picROMfastclock(self, masterout): #print "setting masterout to "+str(masterout) self.serialport.setRTS(masterout) self.serialport.setDTR(1) self.serialport.setDTR(0) time.sleep(0.02) return self.serialport.getCTS() def bslResetZ1(self, invokeBSL=0): ''' Applies BSL entry sequence on RST/NMI and TEST/VPP pins Parameters: invokeBSL = 1: complete sequence invokeBSL = 0: only RST/NMI pin accessed By now only BSL mode is accessed ''' if DEBUG > 1: sys.stderr.write("* bslReset(invokeBSL=%s)\n" % invokeBSL) if invokeBSL: #sys.stderr.write("in Z1 bsl reset...\n") time.sleep(0.1) self.writepicROM(0xFF, 0xFF) time.sleep(0.1) #sys.stderr.write("z1 bsl reset done...\n") else: #sys.stderr.write("in Z1 reset...\n") time.sleep(0.1) self.writepicROM(0xFF, 0xFE) time.sleep(0.1) #sys.stderr.write("z1 reset done...\n") def telosSetSCL(self, level): self.serialport.setRTS(not level) def telosSetSDA(self, level): self.serialport.setDTR(not level) def telosI2CStart(self): self.telosSetSDA(1) self.telosSetSCL(1) self.telosSetSDA(0) def telosI2CStop(self): self.telosSetSDA(0) self.telosSetSCL(1) self.telosSetSDA(1) def telosI2CWriteBit(self, bit): self.telosSetSCL(0) self.telosSetSDA(bit) time.sleep(2e-6) self.telosSetSCL(1) time.sleep(1e-6) self.telosSetSCL(0) def telosI2CWriteByte(self, byte): self.telosI2CWriteBit( byte & 0x80 ); self.telosI2CWriteBit( byte & 0x40 ); self.telosI2CWriteBit( byte & 0x20 ); self.telosI2CWriteBit( byte & 0x10 ); self.telosI2CWriteBit( byte & 0x08 ); self.telosI2CWriteBit( byte & 0x04 ); self.telosI2CWriteBit( byte & 0x02 ); self.telosI2CWriteBit( byte & 0x01 ); self.telosI2CWriteBit( 0 ); # "acknowledge" def telosI2CWriteCmd(self, addr, cmdbyte): self.telosI2CStart() self.telosI2CWriteByte( 0x90 | (addr << 1) ) self.telosI2CWriteByte( cmdbyte ) self.telosI2CStop() def telosBReset(self,invokeBSL=0): # "BSL entry sequence at dedicated JTAG pins" # rst !s0: 0 0 0 0 1 1 # tck !s1: 1 0 1 0 0 1 # s0|s1: 1 3 1 3 2 0 # "BSL entry sequence at shared JTAG pins" # rst !s0: 0 0 0 0 1 1 # tck !s1: 0 1 0 1 1 0 # s0|s1: 3 1 3 1 0 2 if invokeBSL: self.telosI2CWriteCmd(0,1) self.telosI2CWriteCmd(0,3) self.telosI2CWriteCmd(0,1) self.telosI2CWriteCmd(0,3) self.telosI2CWriteCmd(0,2) self.telosI2CWriteCmd(0,0) else: self.telosI2CWriteCmd(0,3) self.telosI2CWriteCmd(0,2) self.telosI2CWriteCmd(0,0) time.sleep(0.250) #give MSP430's oscillator time to stabilize self.serialport.flushInput() #clear buffers def bslReset(self, invokeBSL=0): """Applies BSL entry sequence on RST/NMI and TEST/VPP pins Parameters: invokeBSL = 1: complete sequence invokeBSL = 0: only RST/NMI pin accessed RST is inverted twice on boot loader hardware TEST is inverted (only once) Need positive voltage on DTR, RTS for power-supply of hardware""" if self.telosI2C: self.telosBReset(invokeBSL) return if self.z1: if DEBUG > 1: sys.stderr.write("* entering bsl with z1\n") self.bslResetZ1(invokeBSL) return if DEBUG > 1: sys.stderr.write("* bslReset(invokeBSL=%s)\n" % invokeBSL) self.SetRSTpin(1) #power suply self.SetTESTpin(1) #power suply time.sleep(0.250) #charge capacitor on boot loader hardware if self.telosLatch: self.SetTESTpin(0) self.SetRSTpin(0) self.SetTESTpin(1) self.SetRSTpin(0) #RST pin: GND if invokeBSL: self.SetTESTpin(1) #TEST pin: GND self.SetTESTpin(0) #TEST pin: Vcc self.SetTESTpin(1) #TEST pin: GND self.SetTESTpin(0) #TEST pin: Vcc self.SetRSTpin (1) #RST pin: Vcc self.SetTESTpin(1) #TEST pin: GND else: self.SetRSTpin(1) #RST pin: Vcc time.sleep(0.250) #give MSP430's oscillator time to stabilize self.serialport.flushInput() #clear buffers def bslSync(self,wait=0): """Transmits Synchronization character and expects to receive Acknowledge character if wait is 0 it must work the first time. otherwise if wait is 1 it is retried (forever). """ loopcnt = 5 #Max. tries to get synchronization if DEBUG > 1: sys.stderr.write("* bslSync(wait=%d)\n" % wait) while wait or loopcnt: loopcnt = loopcnt - 1 #count down tries self.serialport.flushInput() #clear input, in case a prog is running self.serialport.write(chr(self.BSL_SYNC)) #Send synchronization byte c = self.serialport.read(1) #read answer if c == chr(self.DATA_ACK): #ACk if DEBUG > 1: sys.stderr.write(" bslSync() OK\n") return #Sync. successful elif not c: #timeout if loopcnt > 4: if DEBUG > 1: sys.stderr.write(" bslSync() timeout, retry ...\n") elif loopcnt == 4: #nmi may have caused the first reset to be ignored, try again self.bslReset(0) self.bslReset(1) elif loopcnt > 0: if DEBUG > 1: sys.stderr.write(" bslSync() timeout, retry ...\n") else : if DEBUG > 1: sys.stderr.write(" bslSync() timeout\n") else: #garbage if DEBUG > 1: sys.stderr.write(" bslSync() failed (0x%02x), retry ...\n" % ord(c)) raise BSLException(self.ERR_BSL_SYNC) #Sync. failed def bslTxRx(self, cmd, addr, length = 0, blkout = None, wait=0): """Transmits a command (cmd) with its parameters: start-address (addr), length (len) and additional data (blkout) to boot loader. wait specified if the bsl sync should be tried once or repeated, forever Parameters return by boot loader are passed via blkin. """ if DEBUG > 1: sys.stderr.write("* bslTxRx()\n") if cmd == self.BSL_TXBLK: #Align to even start address if (addr % 2) != 0: addr = addr - 1 #Decrement address and blkout = chr(0xFF) + blkOut #fill first byte of blkout with 0xFF length = length + 1 #Make sure that len is even if (length % 2) != 0: blkout = blkout + chr(0xFF) #Inc. len and fill last byte of blkout with 0xFF length = length + 1 elif cmd == self.BSL_RXBLK: #Align to even start address if (addr % 2) != 0: addr = addr - 1 #Decrement address but length = length + 1 #request an additional byte #Make sure that len is even if (length % 2) != 0: length = length + 1 #if cmd == self.BSL_TXBLK or cmd == self.BSL_TXPWORD: # length = len + 4 #Add necessary information data to frame dataOut = struct.pack("= 1: #Read one line l = file.readline() if not l: break #EOF l = l.strip() if l[0] == 'q': break elif l[0] == '@': #if @ => new address => send frame and set new addr. #create a new segment if segmentdata: self.segments.append( Segment(startAddr, string.join(segmentdata,'')) ) startAddr = int(l[1:],16) segmentdata = [] else: for i in string.split(l): segmentdata.append(chr(int(i,16))) if segmentdata: self.segments.append( Segment(startAddr, string.join(segmentdata,'')) ) def loadELF(self, file): """load data from a (opened) file in ELF object format. File must be seekable""" import elf obj = elf.ELFObject() obj.fromFile(file) if obj.e_type != elf.ELFObject.ET_EXEC: raise Exception("No executable") for section in obj.getSections(): if DEBUG: sys.stderr.write("ELF section %s at 0x%04x %d bytes\n" % (section.name, section.lma, len(section.data))) if len(section.data): self.segments.append( Segment(section.lma, section.data) ) def loadFile(self, filename): """fill memory with the contents of a file. file type is determined from extension""" #TODO: do a contents based detection if filename[-4:].lower() == '.txt': self.loadTIText(open(filename, "rb")) elif filename[-4:].lower() in ('.a43', '.hex'): self.loadIHex(open(filename, "rb")) else: self.loadELF(open(filename, "rb")) def getMemrange(self, fromadr, toadr): """get a range of bytes from the memory. unavailable values are filled with 0xff.""" res = '' toadr = toadr + 1 #python indxes are excluding end, so include it while fromadr < toadr: #print "fromto: %04x %04x" % (fromadr, toadr) for seg in self.segments: #print seg segend = seg.startaddress + len(seg.data) if seg.startaddress <= fromadr and fromadr < segend: #print "startok 0x%04x %d" % (seg.startaddress, len(seg.data)) #print ("0x%04x "*3) % (segend, fromadr, toadr) if toadr > segend: #not all data in segment #print "out of segment" catchlength = segend-fromadr else: catchlength = toadr-fromadr #print toadr-fromadr #print catchlength res = res + seg.data[fromadr-seg.startaddress : fromadr-seg.startaddress+catchlength] fromadr = fromadr + catchlength #adjust start if len(res) >= toadr-fromadr: break#return res else: res = res + chr(255) fromadr = fromadr + 1 #adjust start #print "fill FF" #print "res: %r" % res return res class BootStrapLoader(LowLevel): """higher level Bootstrap Loader functions.""" ERR_VERIFY_FAILED = "Error: verification failed" ERR_ERASE_CHECK_FAILED = "Error: erase check failed" ACTION_PROGRAM = 0x01 #Mask: program data ACTION_VERIFY = 0x02 #Mask: verify data ACTION_ERASE_CHECK = 0x04 #Mask: erase check #Max. bytes sent within one frame if parsing a TI TXT file. #( >= 16 and == n*16 and <= MAX_DATA_BYTES!) MAXDATA = 240-16 def __init__(self, *args, **kargs): LowLevel.__init__(self, *args, **kargs) self.byteCtr = 0 self.meraseCycles = 1 self.patchRequired = 0 self.patchLoaded = 0 self.bslVer = 0 self.passwd = None self.data = None self.maxData = self.MAXDATA self.cpu = None self.pwdsent = False def preparePatch(self): """prepare to download patch""" if DEBUG > 1: sys.stderr.write("* preparePatch()\n") if self.patchLoaded: #Load PC with 0x0220. #This will invoke the patched bootstrap loader subroutines. self.bslTxRx(self.BSL_LOADPC, #Command: Load PC 0x0220) #Address to load into PC self.BSLMemAccessWarning = 0 #Error is removed within workaround code return def postPatch(self): """setup after the patch is loaded""" if DEBUG > 1: sys.stderr.write("* postPatch()\n") if self.patchLoaded: self.BSLMemAccessWarning = 1 #Turn warning back on. def verifyBlk(self, addr, blkout, action): """verify memory against data or 0xff""" if DEBUG > 1: sys.stderr.write("* verifyBlk()\n") if action & self.ACTION_VERIFY or action & self.ACTION_ERASE_CHECK: if DEBUG: sys.stderr.write(" Check starting at 0x%04x, %d bytes ... \n" % (addr, len(blkout))) self.preparePatch() blkin = self.bslTxRx(self.BSL_RXBLK, addr, len(blkout)) self.postPatch() for i in range(len(blkout)): if action & self.ACTION_VERIFY: #Compare data in blkout and blkin if blkin[i] != blkout[i]: sys.stderr.write("Verification failed at 0x%04x (0x%02x, 0x%02x)\n" % (addr+i, ord(blkin[i]), ord(blkout[i]))) sys.stderr.flush() raise BSLException(self.ERR_VERIFY_FAILED) #Verify failed! continue elif action & self.ACTION_ERASE_CHECK: #Compare data in blkin with erase pattern if blkin[i] != chr(0xff): sys.stderr.write("Erase Check failed at 0x%04x (0x%02x)\n" % (addr+i, ord(blkin[i]))) sys.stderr.flush() raise BSLException(self.ERR_ERASE_CHECK_FAILED) #Erase Check failed! continue def readBlk(self,adr,len): """Read a block of memory.""" blkin = self.bslTxRx(self.BSL_RXBLK, addr, len(blkout)) def programBlk(self, addr, blkout, action): """program a memory block""" if DEBUG > 1: sys.stderr.write("* programBlk()\n") #Check, if specified range is erased self.verifyBlk(addr, blkout, action & self.ACTION_ERASE_CHECK) if action & self.ACTION_PROGRAM: if DEBUG: sys.stderr.write(" Program starting at 0x%04x, %i bytes ...\n" % (addr, len(blkout))) self.preparePatch() #Program block self.bslTxRx(self.BSL_TXBLK, addr, len(blkout), blkout) self.postPatch() #Verify block self.verifyBlk(addr, blkout, action & self.ACTION_VERIFY) #segments: #list of tuples or lists: #segements = [ (addr1, [d0,d1,d2,...]), (addr2, [e0,e1,e2,...])] def programData(self, segments, action): """programm or verify data""" if DEBUG > 1: sys.stderr.write("* programData()\n") for seg in segments: currentAddr = seg.startaddress pstart = 0 while pstart len(seg.data): length = len(seg.data) - pstart self.programBlk(currentAddr, seg.data[pstart:pstart+length], action) pstart = pstart + length currentAddr = currentAddr + length self.byteCtr = self.byteCtr + length #total sum def uploadData(self, startaddress, size, wait=0): """upload a datablock""" if DEBUG > 1: sys.stderr.write("* uploadData()\n") data = '' pstart = 0 while pstart size: length = size - pstart data = data + self.bslTxRx(self.BSL_RXBLK, pstart+startaddress, length, wait=wait)[:-2] #cut away checksum pstart = pstart + length return data def txPasswd(self, passwd=None, wait=0): """transmit password, default if None is given.""" if DEBUG > 1: sys.stderr.write("* txPassword(%r)\n" % passwd) if passwd is None or self.pwdsent: #Send "standard" password to get access to protected functions. sys.stderr.write("Transmit default password ...\n") sys.stderr.flush() #Flash is completely erased, the contents of all Flash cells is 0xff passwd = chr(0xff)*32 else: #sanity check of password if len(passwd) != 32: raise ValueError, "password has wrong length (%d)\n" % len(passwd) sys.stderr.write('Transmit password ...\n') sys.stderr.flush() #send the password self.bslTxRx(self.BSL_TXPWORD, #Command: Transmit Password 0xffe0, #Address of interupt vectors 0x0020, #Number of bytes passwd, #password wait=wait) #if wait is 1, try to sync forever self.pwdsent = True def getNewPassword(self): print 'getting new password' newpassword = self.bslTxRx(self.BSL_RXBLK, 0xffe0, 0x0020) return newpassword def writeCalibTables(self): print 'writing new tables' print CALIB_TABLES calibtables = ["84C016FEFFFFFFFFFFFFFFFFFFFFFFFF", "FFFFFFFFFFFFFFFFFFFF100880000001", "7E270B790DAA7E4D06DF083308FEFFFF", "FFFFFFFFFFFF08018F958E9A8D8886D1"] self.programBlk(0x10C0, "84C016FEFFFFFFFFFFFFFFFFFFFFFFFF", self.ACTION_PROGRAM) self.programBlk(0x10D0, "FFFFFFFFFFFFFFFFFFFF100880000001", self.ACTION_PROGRAM) self.programBlk(0x10E0, "7E270B790DAA7E4D06DF083308FEFFFF", self.ACTION_PROGRAM) self.programBlk(0x10F0, "FFFFFFFFFFFF08018F958E9A8D8886D1", self.ACTION_PROGRAM) def writeCalibTables2(self): print 'writing new tables 2ond part' #self.programBlk(0x10C0, "84C016FEFFFFFFFFFFFFFFFFFFFFFFFF", self.ACTION_PROGRAM) #self.programBlk(0x10D0, "FFFFFFFFFFFFFFFFFFFF100880000001", self.ACTION_PROGRAM) #self.programBlk(0x10E0, "7E270B790DAA7E4D06DF083308FEFFFF", self.ACTION_PROGRAM) #self.programBlk(0x10F0, "FFFFFFFFFFFF08018F958E9A8D8886D1", self.ACTION_PROGRAM) #----------------------------------------------------------------- def actionMassErase(self): """Erase the flash memory completely (with mass erase command)""" sys.stderr.write("Mass Erase...\n") sys.stderr.flush() self.bslReset(1) #Invoke the boot loader. for i in range(self.meraseCycles): if i == 1: sys.stderr.write("Additional Mass Erase Cycles...\n") self.bslTxRx(self.BSL_MERAS, #Command: Mass Erase 0xff00, #Any address within flash memory. 0xa506) #Required setting for mass erase! self.passwd = None #No password file required! #print "Mass Erase complete" #Transmit password to get access to protected BSL functions. self.txPasswd() def actionMainErase(self): """Erase the main flash memory only""" sys.stderr.write("Main Erase...\n") sys.stderr.flush() self.bslTxRx(self.BSL_ERASE, #Command: Segment Erase 0xfffe, #Any address within flash memory. 0xa504) #Required setting for main erase! #self.passwd = None #Password gets erased WHY?? def actionStartBSL(self, usepatch=1, adjsp=1, replacementBSL=None, forceBSL=0, mayuseBSL=0, speed=None, bslreset=1): """start BSL, download patch if desired and needed, adjust SP if desired""" sys.stderr.write("Invoking BSL...\n") sys.stderr.flush() #for '30, invertTEST=0, else =1 if bslreset: #detext if is z1? self.bslReset(1) #Invoke the boot loader. if(self.z1): ''' recover password from pic''' self.txPasswd(self.passwd) #transmit password #Read actual bootstrap loader version. #sys.stderr.write("Reading BSL version ...\n") blkin = self.bslTxRx(self.BSL_RXBLK, #Command: Read/Receive Block 0x0ff0, #Start address 16) #No. of bytes to read dev_id, bslVerHi, bslVerLo = struct.unpack(">H8xBB4x", blkin[:-2]) #cut away checksum and extract data self.dev_id=dev_id; if self.cpu is None: #cpy type forced? if deviceids.has_key(dev_id): self.cpu = deviceids[dev_id] #try to autodectect CPU type if DEBUG: sys.stderr.write("Autodetect successful: %04x -> %s\n" % (dev_id, self.cpu)) else: sys.stderr.write("Autodetect failed! Unkown ID: %04x. Trying to continue anyway.\n" % dev_id) self.cpu = F1x #assume something and try anyway.. sys.stderr.write("Current bootstrap loader version: %x.%x (Device ID: %04x)\n" % (bslVerHi, bslVerLo, dev_id)) sys.stderr.flush() self.bslVer = (bslVerHi << 8) | bslVerLo if self.bslVer <= 0x0110: #check if patch is needed self.BSLMemAccessWarning = 1 else: self.BSLMemAccessWarning = 0 #Fixed in newer versions of BSL. if self.bslVer <= 0x0130 and adjsp: #only do this on BSL where it's needed to prevent #malfunction with F4xx devices/ newer ROM-BSLs #Execute function within bootstrap loader #to prepare stack pointer for the following patch. #This function will lock the protected functions again. sys.stderr.write("Adjust SP. Load PC with 0x0C22 ...\n") self.bslTxRx(self.BSL_LOADPC, #Command: Load PC 0x0C22) #Address to load into PC #Re-send password to re-gain access to protected functions. self.txPasswd(self.passwd) #get internal BSL replacement if needed or forced by the user #required if speed is set but an old BSL is in the device #if a BSL is given by the user, that one is used and not the internal one if ((mayuseBSL and speed and self.bslVer < 0x0150) or forceBSL) and replacementBSL is None: replacementBSL = Memory() #File to program if self.cpu == F4x: if DEBUG: sys.stderr.write("Using built in BSL replacement for F4x devices\n") sys.stderr.flush() replacementBSL.loadTIText(cStringIO.StringIO(F4X_BSL)) #parse embedded BSL else: if DEBUG: sys.stderr.write("Using built in BSL replacement for F1x devices\n") sys.stderr.flush() replacementBSL.loadTIText(cStringIO.StringIO(F1X_BSL)) #parse embedded BSL #now download the new BSL, if allowed and needed (version lower than the #the replacement) or forced if replacementBSL is not None: self.actionDownloadBSL(replacementBSL) #debug message with the real BSL version in use (may have changed after replacement BSL) if DEBUG: sys.stderr.write("Current bootstrap loader version: 0x%04x\n" % (self.bslVer,)) sys.stderr.flush() #now apply workarounds or patches if BSL in use requires that if self.bslVer <= 0x0110: #check if patch is needed if usepatch: #test if patch is desired sys.stderr.write("Patch for flash programming required!\n") self.patchRequired = 1 sys.stderr.write("Load and verify patch ...\n") sys.stderr.flush() #Programming and verification is done in one pass. #The patch file is only read and parsed once. segments = Memory() #data to program segments.loadTIText(cStringIO.StringIO(PATCH)) #parse embedded patch #program patch self.programData(segments, self.ACTION_PROGRAM | self.ACTION_VERIFY) self.patchLoaded = 1 else: if DEBUG: sys.stderr.write("Device needs patch, but not applied (usepatch is false).\n") #message if not patched #should the baudrate be changed? if speed is not None: self.actionChangeBaudrate(speed) #change baudrate def actionDownloadBSL(self, bslsegments): sys.stderr.write("Load new BSL into RAM...\n") sys.stderr.flush() self.programData(bslsegments, self.ACTION_PROGRAM) sys.stderr.write("Verify new BSL...\n") sys.stderr.flush() self.programData(bslsegments, self.ACTION_VERIFY) #File to verify #Read startvector of bootstrap loader #blkin = self.bslTxRx(self.BSL_RXBLK, 0x0300, 2) #blkin = self.bslTxRx(self.BSL_RXBLK, 0x0220, 2) blkin = self.bslTxRx(self.BSL_RXBLK, bslsegments[0].startaddress, 2) startaddr = struct.unpack("%s" % (firmware[self.dev_id],fn)) fw=Memory(fn); #fw.loadIhex(open(fn,"rb")); sys.stderr.write("Program ...\n") sys.stderr.flush() self.programData(fw, self.ACTION_PROGRAM | self.ACTION_VERIFY) sys.stderr.write("%i bytes programmed.\n" % self.byteCtr) sys.stderr.flush() def actionVerify(self): """Verify programmed data""" if self.data is not None: sys.stderr.write("Verify ...\n") sys.stderr.flush() self.programData(self.data, self.ACTION_VERIFY) else: raise BSLException, "verify without data not possible" def actionReset(self): """perform a reset, start user programm""" sys.stderr.write("Reset device ...\n") sys.stderr.flush() self.bslReset(0) #only reset def actionRun(self, address=0x220): """start program at specified address""" sys.stderr.write("Load PC with 0x%04x ...\n" % address) sys.stderr.flush() self.bslTxRx(self.BSL_LOADPC, #Command: Load PC address) #Address to load into PC #table with values from slaa089a.pdf bauratetable = { F1x: { 9600:[0x8580, 0x0000], 19200:[0x86e0, 0x0001], 38400:[0x87e0, 0x0002], }, F2x: { 9600:[0x8580, 0x0000], 19200:[0x8B00, 0x0001], 38400:[0x8C80, 0x0002], }, F4x: { 9600:[0x9800, 0x0000], 19200:[0xb000, 0x0001], 38400:[0xc800, 0x0002], }, } def actionChangeBaudrate(self, baudrate=9600): """change baudrate. first the command is sent, then the comm port is reprogrammed. only possible with newer MSP430-BSL versions. (ROM >=1.6, downloadable >=1.5)""" try: baudconfigs = self.bauratetable[self.cpu] except KeyError: raise ValueError, "unknown CPU type %s, can't switch baudrate" % self.cpu try: a,l = baudconfigs[baudrate] except KeyError: raise ValueError, "baudrate not valid. valid values are %r" % baudconfigs.keys() sys.stderr.write("Changing baudrate to %d ...\n" % baudrate) sys.stderr.flush() self.bslTxRx(self.BSL_CHANGEBAUD, #Command: change baudrate a, l) #args are coded in adr and len time.sleep(0.010) #recomended delay self.serialport.setBaudrate(baudrate) def actionReadBSLVersion(self): """informational output of BSL version number. (newer MSP430-BSLs only)""" ans = self.bslTxRx(self.BSL_TXVERSION, 0) #Command: receive version info #the following values are in big endian style!!! family_type, bsl_version = struct.unpack(">H8xH4x", ans[:-2]) #cut away checksum and extract data print "Device Type: 0x%04x\nBSL version: 0x%04x\n" % (family_type, bsl_version) def actionWriteNewPassword(self): passwd = self.getNewPassword() #print passwd self.picWritePassword(passwd) def actionRecoverPassword(self): p = self.picRecoverPassword() #print p self.passwd = p def picRecoverPassword(self): ''' recovers password from picrom''' print 'recovering pic password', p = '' for i in range(0,32): c = self.readpicROM(i) print c, p = p + chr(c) print 'done' return p def picWritePassword(self, password): ''' writes a new password to picrom''' print 'writing new password', for i in range(0,32): c = ord(password[i]) print c, self.writepicROM(i, c) print 'done' def usage(): """print some help message""" sys.stderr.write(""" USAGE: %s [options] [file] Version: %s If "-" is specified as file the data is read from the stdinput. A file ending with ".txt" is considered to be in TIText format, '.a43' and '.hex' as IntelHex and all other filenames are considered as ELF files. General options: -h, --help Show this help screen. -c, --comport=port Specify the communication port to be used. (Default is 0) 0->COM1 / ttyS0 1->COM2 / ttyS1 etc. -P, --password=file Specify a file with the interrupt vectors that are used as password. This can be any file that has previously been used to program the device. (e.g. -P INT_VECT.TXT). -f, --framesize=num Max. number of data bytes within one transmitted frame (16 to 240 in steps of 16) (e.g. -f 240). -m, --erasecycles=num Number of mass erase cycles (default is 1). Some old F149 devices need additional erase cycles. On newer devices it is no longer needed. (e.g. for an old F149: -m20) -U, --unpatched Do not download the BSL patch, even when it is needed. This is used when a program is downloaded into RAM and executed from there (and where flash programming is not needed.) -D, --debug Increase level of debug messages. This won't be very useful for the average user... -I, --intelhex Force fileformat to IntelHex -T, --titext Force fileformat to be TIText -N, --notimeout Don't use timeout on serial port (use with care) -B, --bsl=bsl.txt Load and use new BSL from the TI Text file -S, --speed=baud Reconfigure speed, only possible with newer MSP403-BSL versions (>1.5, read slaa089a.pdf for details). If the --bsl option is not used, an internal BSL replacement will be loaded. Needs a target with at least 2kB RAM! Possible values are 9600, 19200, 38400 (default 9600) -1, --f1x Specify CPU family, in case autodetect fails -2, --f2x Specify CPU family, in case autodetect fails -4, --f4x Specify CPU family, in case autodetect fails --F1x and --f2x are only needed when the "change baudrate" feature is used and the autodetect feature fails. If the device ID that is uploaded is known, it has precedence to the command line option. --invert-reset Invert signal on RST pin (used for some BSL hardware) --invert-test Invert signal on TEST/TCK pin (used for some BSL hardware) --swap-reset-test Swap the RST and TEST pins (used for some BSL hardware) --telos-latch Special twiddle in BSL reset for Telos hardware --telos-i2c DTR/RTS map via an I2C switch to TCK/RST in Telos Rev.B --telos Implies options --invert-reset, --invert-test, --swap-reset-test, and --telos-latch --telosb Implies options --swap-reset-test, --telos-i2c, --no-BSL-download, and --speed=38400 --goodfet10 --goodfet20 --goodfet30 --tmote Identical operation to --telosb --z1 Bootstrap a Z1 --no-BSL-download Do not download replacement BSL (disable automatic) --force-BSL-download Download replacement BSL even if not needed (the one in the device would have the required features) --slow Add delays when operating the conrol pins. Useful if the pins/circuit has high capacitance. Program Flow Specifiers: -e, --masserase Mass Erase (clear all flash memory) -E, --erasecheck Erase Check by file -p, --program Program file -v, --verify Verify by file The order of the above options matters! The table is ordered by normal execution order. For the options "Epv" a file must be specified. Program flow specifiers default to "pvr" if a file is given. Don't forget to specify "e" or "eE" when programming flash! Data retreiving: -u, --upload=addr Upload a datablock (see also: -s). -s, --size=num Size of the data block do upload. (Default is 2) -x, --hex Show a hexadecimal display of the uploaded data. (Default) -b, --bin Get binary uploaded data. This can be used to redirect the output into a file. Do before exit: -g, --go=address Start programm execution at specified address. This implies option --wait. -r, --reset Reset connected MSP430. Starts application. This is a normal device reset and will start the programm that is specified in the reset vector. (see also -g) -w, --wait Wait for before closing serial port. If it says "NAK received" it's probably because you specified no or a wrong password. """ % (sys.argv[0], VERSION)) #add some arguments to a function, but don't call it yet, instead return #a wrapper object for later invocation class curry: """create a callable with some arguments specified in advance""" def __init__(self, fun, *args, **kwargs): self.fun = fun self.pending = args[:] self.kwargs = kwargs.copy() def __call__(self, *args, **kwargs): if kwargs and self.kwargs: kw = self.kwargs.copy() kw.update(kwargs) else: kw = kwargs or self.kwargs return apply(self.fun, self.pending + args, kw) def __repr__(self): #first try if it a function try: return "curry(%s, %r, %r)" % (self.fun.func_name, self.pending, self.kwargs) except AttributeError: #fallback for callable classes return "curry(%s, %r, %r)" % (self.fun, self.pending, self.kwargs) def hexify(line, bytes, width=16): return '%04x %s%s %s' % ( line, ('%02x '*len(bytes)) % tuple(bytes), ' '* (width-len(bytes)), ('%c'*len(bytes)) % tuple(map(lambda x: (x>=32 and x<127) and x or ord('.'), bytes)) ) #Main: def main(itest=1): global DEBUG import getopt filetype = None filename = None comPort = None #Default setting. speed = None unpatched = 0 reset = 0 wait = 0 #wait at the end goaddr = None bsl = BootStrapLoader() toinit = [] todo = [] startaddr = None size = 2 hexoutput = 1 notimeout = 0 bslrepl = None mayuseBSL = 1 forceBSL = 0 dumpivt = 0 dumpinfo = 0 bsl.invertRST = 1 bsl.invertTEST = itest if comPort is None and os.environ.get("GOODFET")!=None: glob_list = glob.glob(os.environ.get("GOODFET")); if len(glob_list) > 0: comPort = glob_list[0]; if comPort is None: glob_list = glob.glob("/dev/tty.usbserial*"); if len(glob_list) > 0: comPort = glob_list[0]; if comPort is None: glob_list = glob.glob("/dev/ttyUSB*"); if len(glob_list) > 0: comPort = glob_list[0]; sys.stderr.write("MSP430 Bootstrap Loader Version: %s\n" % VERSION) try: opts, args = getopt.getopt(sys.argv[1:], "hc:P:wf:m:eEpvrg:UDu:ds:xbITNB:S:V14", ["help", "comport=", "password=", "wait", "framesize=", "erasecycles=", "masserase", "erasecheck", "program", "verify", "reset", "go=", "unpatched", "debug", "upload=", "download=", "size=", "hex", "bin", "intelhex", "titext", "notimeout", "bsl=", "speed=", "bslversion", "f1x", "f2x", "f4x", "invert-reset", "invert-test", "swap-reset-test", "telos-latch", "telos-i2c", "telos", "telosb", "tmote","no-BSL-download", "force-BSL-download", "slow", "dumpivt", "dumpinfo", "fromweb", "goodfet30", "goodfet20", "goodfet10", "z1", "mainerase" ] ) except getopt.GetoptError: # print help information and exit: usage() sys.exit(2) for o, a in opts: if o in ("-h", "--help"): usage() sys.exit() elif o in ("-c", "--comport"): try: comPort = int(a) #try to convert decimal except ValueError: comPort = a #take the string and let serial driver decide elif o in ("-P", "--password"): #extract password from file bsl.passwd = Memory(a).getMemrange(0xffe0, 0xffff) elif o in ("-w", "--wait"): wait = 1 elif o in ("--dumpivt"): dumpivt=1; elif o in ("--dumpinfo"): dumpinfo=1; elif o in ("-f", "--framesize"): try: maxData = int(a) #try to convert decimal except ValueError: sys.stderr.write("framesize must be a valid number\n") sys.exit(2) #Make sure that conditions for maxData are met: #( >= 16 and == n*16 and <= MAX_DATA_BYTES!) if maxData > BootStrapLoader.MAX_DATA_BYTES: maxData = BootStrapLoader.MAX_DATA_BYTES elif maxData < 16: maxData = 16 bsl.maxData = maxData - (maxData % 16) sys.stderr.write( "Max. number of data bytes within one frame set to %i.\n" % maxData) elif o in ("-m", "--erasecycles"): try: meraseCycles = int(a) #try to convert decimal except ValueError: sys.stderr.write("erasecycles must be a valid number\n") sys.exit(2) #sanity check of value if meraseCycles < 1: sys.stderr.write("erasecycles must be a positive number\n") sys.exit(2) if meraseCycles > 20: sys.stderr.write("warning: erasecycles set to a large number (>20): %d\n" % meraseCycles) sys.stderr.write( "Number of mass erase cycles set to %i.\n" % meraseCycles) bsl.meraseCycles = meraseCycles elif o in ("-e", "--masserase"): toinit.append(bsl.actionMassErase) #Erase Flash #todo.append(bsl.actionMainErase) #Erase Flash elif o in ("-n", "--mainerase"): todo.append(bsl.actionMainErase) #Erase Flash #toinit.append(bsl.actionMassErase) #Erase Flash elif o in ("-E", "--erasecheck"): toinit.append(bsl.actionEraseCheck) #Erase Check (by file) elif o in ("-p", "--program"): #pass todo.append(bsl.actionProgram) #Program file if bsl.z1: #todo.append(bsl.actionUnlockInfo) #todo.append(bsl.writeCalibTables) #todo.append(bsl.writeCalibTables2) #todo.append(bsl.actionWriteNewPassword) pass elif o in ("--fromweb"): toinit.append(bsl.actionMassErase) #Erase Flash todo.append(bsl.actionFromweb) #Program GoodFET code elif o in ("-v", "--verify"): todo.append(bsl.actionVerify) #Verify file elif o in ("-r", "--reset"): reset = 1 elif o in ("-g", "--go"): try: goaddr = int(a) #try to convert decimal except ValueError: try: goaddr = int(a[2:],16) #try to convert hex except ValueError: sys.stderr.write("go address must be a valid number\n") sys.exit(2) wait = 1 elif o in ("-U", "--unpatched"): unpatched = 1 elif o in ("-D", "--debug"): DEBUG = DEBUG + 1 elif o in ("-u", "--upload"): try: startaddr = int(a) #try to convert decimal except ValueError: try: startaddr = int(a,16) #try to convert hex except ValueError: sys.stderr.write("upload address must be a valid number\n") sys.exit(2) elif o in ("-s", "--size"): try: size = int(a) except ValueError: try: size = int(a,16) except ValueError: sys.stderr.write("size must be a valid number\n") sys.exit(2) elif o in ("-x", "--hex"): hexoutput = 1 elif o in ("-b", "--bin"): hexoutput = 0 elif o in ("-I", "--intelhex"): filetype = 0 elif o in ("-T", "--titext"): filetype = 1 elif o in ("-N", "--notimeout"): notimeout = 1 elif o in ("-B", "--bsl"): bslrepl = Memory() #File to program bslrepl.loadFile(a) elif o in ("-V", "--bslversion"): todo.append(bsl.actionReadBSLVersion) #load replacement BSL as first item elif o in ("-S", "--speed"): try: speed = int(a) #try to convert decimal except ValueError: sys.stderr.write("speed must be decimal number\n") sys.exit(2) elif o in ("-1", "--f1x"): bsl.cpu = F1x elif o in ("-2", "--f2x"): bsl.cpu = F2x elif o in ("-4", "--f4x"): bsl.cpu = F4x elif o in ("--invert-reset", ): bsl.invertRST = 1 elif o in ("--invert-test", ): bsl.invertTEST = 1 elif o in ("--swap-reset-test", ): bsl.swapRSTTEST = 1 elif o in ("--telos-latch", ): bsl.telosLatch = 1 elif o in ("--telos-i2c", ): bsl.telosI2C = 1 elif o in ("--telos", ): bsl.invertRST = 1 bsl.invertTEST = 1 bsl.swapRSTTEST = 1 bsl.telosLatch = 1 elif o in ("--goodfet10", ): bsl.invertRST = 1 bsl.invertTEST = 1 elif o in ("--goodfet20", ): bsl.invertRST = 1 bsl.invertTEST = 1 elif o in ("--goodfet30", ): bsl.invertRST = 1 bsl.invertTEST = 0 elif o in ("--telosb", ): bsl.swapRSTTEST = 1 bsl.telosI2C = 1 mayuseBSL = 0 speed = 38400 elif o in ("--tmote", ): bsl.swapRSTTEST = 1 bsl.telosI2C = 1 mayuseBSL = 0 speed = 38400 elif o in ("--z1", ): bsl.z1 = 1 speed = 38400 #toinit.append(bsl.actionRecoverPassword) elif o in ("--no-BSL-download", ): mayuseBSL = 0 elif o in ("--force-BSL-download", ): forceBSL = 1 elif o in ("--slow", ): bsl.slowmode = 1 if len(args) == 0: sys.stderr.write("Use -h for help\n"); sys.stderr.write("Use --fromweb to upgrade a GoodFET.\n") elif len(args) == 1: #a filename is given if not todo: #if there are no actions yet todo.extend([ #add some useful actions... bsl.actionProgram, bsl.actionVerify, ]) filename = args[0] else: #number of args is wrong usage() sys.exit(2) if DEBUG: #debug infos sys.stderr.write("Debug level set to %d\n" % DEBUG) sys.stderr.write("Python version: %s\n" % sys.version) #sanity check of options if notimeout and goaddr is not None and startaddr is not None: sys.stderr.write("Option --notimeout can not be used together with both --upload and --go\n") sys.exit(1) if notimeout: sys.stderr.write("Warning: option --notimeout can cause improper function in some cases!\n") bsl.timeout = 0 if goaddr and reset: sys.stderr.write("Warning: option --reset ignored as --go is specified!\n") reset = 0 if startaddr and reset: sys.stderr.write("Warning: option --reset ignored as --upload is specified!\n") reset = 0 sys.stderr.flush() #prepare data to download bsl.data = Memory() #prepare downloaded data if filetype is not None: #if the filetype is given... if filename is None: raise ValueError("no filename but filetype specified") if filename == '-': #get data from stdin file = sys.stdin else: file = open(filename, "rb") #or from a file if filetype == 0: #select load function bsl.data.loadIHex(file) #intel hex elif filetype == 1: bsl.data.loadTIText(file) #TI's format else: raise ValueError("illegal filetype specified") else: #no filetype given... if filename == '-': #for stdin: bsl.data.loadIHex(sys.stdin) #assume intel hex elif filename: bsl.data.loadFile(filename) #autodetect otherwise if DEBUG > 3: sys.stderr.write("File: %r" % filename) bsl.comInit(comPort) #init port #initialization list if toinit: #erase and erase check if DEBUG: sys.stderr.write("Preparing device ...\n") #bsl.actionStartBSL(usepatch=0, adjsp=0) #no workarounds needed #if speed: bsl.actionChangeBaudrate(speed) #change baud rate as fast as possible for f in toinit: f() if todo or goaddr or startaddr: if DEBUG: sys.stderr.write("Actions ...\n") #connect to the BSL bsl.actionStartBSL( usepatch=not unpatched, replacementBSL=bslrepl, forceBSL=forceBSL, mayuseBSL=mayuseBSL, speed=speed, ) #work list if todo: if DEBUG > 0: #debug #show a nice list of sheduled actions sys.stderr.write("TODO list:\n") for f in todo: try: sys.stderr.write(" %s\n" % f.func_name) except AttributeError: sys.stderr.write(" %r\n" % f) for f in todo: f() #work through todo list if reset: #reset device first if desired bsl.actionReset() if dumpivt: bsl.txPasswd(); #default pass data=bsl.uploadData(0xc00,1024); hex=""; for c in data: hex+=("%02x "%ord(c)); print hex; if dumpinfo: bsl.txPasswd(); #default pass data=bsl.uploadData(0x1000,256); hex="@1000\n"; for c in data: hex+=("%02x "%ord(c)); hex+="\nq\n"; print hex; if goaddr is not None: #start user programm at specified address bsl.actionRun(goaddr) #load PC and execute #upload datablock and output if startaddr is not None: if goaddr: #if a program was started... #don't restart BSL but wait for the device to enter it itself sys.stderr.write("Waiting for device to reconnect for upload: ") sys.stderr.flush() bsl.txPasswd(bsl.passwd, wait=1) #synchronize, try forever... data = bsl.uploadData(startaddr, size) #upload data else: data = bsl.uploadData(startaddr, size) #upload data if hexoutput: #depending on output format m = 0 while m < len(data): #print a hex display print hexify(startaddr+m, map(ord,data[m:m+16])) m = m + 16 else: sys.stdout.write(data) #binary output w/o newline! wait = 0 #wait makes no sense as after the upload the device is still in BSL if wait: #wait at the end if desired sys.stderr.write("Press ...\n") #display a prompt sys.stderr.flush() raw_input() #wait for newline bsl.comDone() #Release serial communication port if __name__ == '__main__': try: main(1) except SystemExit: raise #let pass exit() calls except KeyboardInterrupt: if DEBUG: raise #show full trace in debug mode sys.stderr.write("user abort.\n") #short messy in user mode sys.exit(1) #set errorlevel for script usage except Exception, msg: #every Exception is caught and displayed if DEBUG: raise #show full trace in debug mode #sys.stderr.write("\nAn error occoured:\n%s\n" % msg) #short messy in user mode #sys.exit(1) #set errorlevel for script usage main(0); tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/tos-bsl.txt000066400000000000000000000265541206361226500236720ustar00rootroot00000000000000tos-bsl ------- BootStrapLoader software for the flash devices MSP430F1xx (maybe F4xx too, but its not tested). Based on the example provided by TI but with more features. This version is a modification of Chris Liechti's original pybsl, with support for the telos, telosb and tmote devices from Moteiv (www.moteiv.com). It is released under a free software license, see tos-bsl-license.txt for more details. (C) 2001-2003 Chris Liechti Features -------- - understands TI-Text and Intel-hex - download to Flash and/or RAM, erase, verify - reset and wait for keypress (to run a device directly from the port power) - load addres into R0/PC and run - password file can be any data file, e.g. the one used to program the device in an earlier session - upload a memory block MSP->PC (output as binary data or hex dump) - written in Python, runs on Win32, Linux, BSD (other unices have other device names but should be faisible), Jython (Python in Java) - use per command line, or in a Python script - download a program, execute it, resynchronize and upload results. (for testing and callibration) - downladable BSL for larger devices - baudrate change for newer MSP430-BSLs - test and reset lines can be inverted for non standard BSL hardware Requirements ------------ - Linux, BSD, Un*x or Windows PC - Python 2.0 or newer (1.5.2 untested), 2.2 recomeded - win32all extensions to Python on Windows - BSL hardware with an MSP430 device connected to a serial port Installation ------------ Python installations are available from www.python.org. On Windows simply use the installer. The win32all package has an installer too. These installations should run fine with the deafults. On Linux just Python is needed. On many distributions is Python 1.5.2 incuded. I suggest that an upgrade to 2.2 or newer. There are rpm and deb binary packages and a source tarball availabe through the Python homepage. The pybsl archive can simply be unpacked to a directory, Windows users can use WinZip or WinRar among others to extract the gzipped tar file. If you want to run it from everywhere the directory where the file bsl.py is, should be added to the PATH. Look at "/etc/profile" on Linux, "autoexec.bat" on Win9x/ME, System Properties/Environment in Win2000/NT/XP. For Jython you need to have installed the "Java Communications API" (JavaComm). Short introduction ------------------ First the MSP430 BSL hardware is needed. An example schematics can be found in the application note "slaa96b" from TI (see references). Then this programm can be used to communicate between the PC and the MSP430 device. The program can be started by typing "python bsl.py" in a console. Often it works also with just "bsl.py" or "./bsl.py". USAGE: bsl.py [options] [file] If "-" is specified as file the data is read from the stdinput. A file ending with ".txt" is considered to be in TIText format, '.a43' and '.hex' as IntelHex and all other filenames are considered as ELF files. General options: -h, --help Show this help screen. -c, --comport=port Specify the communication port to be used. (Default is 0) 0->COM1 / ttyS0 1->COM2 / ttyS1 etc. -P, --password=file Specify a file with the interrupt vectors that are used as password. This can be any file that has previously been used to program the device. (e.g. -P INT_VECT.TXT). -f, --framesize=num Max. number of data bytes within one transmitted frame (16 to 240 in steps of 16) (e.g. -f 240). -m, --erasecycles=num Number of mass erase cycles (default is 1). Some old F149 devices need additional erase cycles. On newer devices it is no longer needed. (e.g. for an old F149: -m20) -U, --unpatched Do not download the BSL patch, even when it is needed. This is used when a program is downloaded into RAM and executed from there (and where flash programming is not needed.) -D, --debug Increase level of debug messages. This won't be very useful for the average user... -I, --intelhex Force fileformat to IntelHex -T, --titext Force fileformat to be TIText -N, --notimeout Don't use timeout on serial port (use with care) -B, --bsl=bsl.txt Load and use new BSL from the TI Text file -S, --speed=baud Reconfigure speed, only possible with newer MSP403-BSL versions (>1.5, read slaa089a.pdf for details). If the --bsl option is not used, an internal BSL replacement will be loaded. Needs a target with at least 2kB RAM! Possible values are 9600, 19200, 38400 (default 9600) -1, --f1x Specify CPU family, in case autodetect fails -4, --f4x Specify CPU family, in case autodetect fails --F1x and --f2x are only needed when the "change baudrate" feature is used and the autodetect feature fails. If the device ID that is uploaded is known, it has precedence to the command line option. --invert-reset Invert signal on RST pin (used for some BSL hardware) --invert-test Invert signal on TEST/TCK pin (used for some BSL hardware) --slow Add delays when operating the conrol pins. Useful if the pins/circuit has high capacitance. Program Flow Specifiers: -e, --masserase Mass Erase (clear all flash memory) -E, --erasecheck Erase Check by file -p, --program Program file -v, --verify Verify by file The order of the above options matters! The table is ordered by normal execution order. For the options "Epv" a file must be specified. Program flow specifiers default to "pvr" if a file is given. Don't forget to specify "e" or "eE" when programming flash! Data retreiving: -u, --upload=addr Upload a datablock (see also: -s). -s, --size=num Size of the data block do upload. (Default is 2) -x, --hex Show a hexadecimal display of the uploaded data. (Default) -b, --bin Get binary uploaded data. This can be used to redirect the output into a file. Do before exit: -g, --go=address Start programm execution at specified address. This implies option --wait. -r, --reset Reset connected MSP430. Starts application. This is a normal device reset and will start the programm that is specified in the reset vector. (see also -g) -w, --wait Wait for before closing serial port. If it says "NAK received" it's probably because you specified no or a wrong password. Examples -------- These exaples assume that you have added the installation directory to the PATH. type the full path to bsl.py otherwise and maybe use "python bsl.py". bsl.py -e Only erase flash. bsl.py -eErw 6port.a43 Erase flash, erase check, download an executable, run it (reset) and wait. Old F149 devices need addidional erase cycles! Use the -m option in this case (-m20 will be OK is most cases): "python bsl.py -eErwm20 6port.a43" bsl.py 6port.a43 Download of an executable to en empty (new or erased) device. (Note that in new devices some of the first bytes in the information memory are random data. If data should be downloaded there, specify -eE.) bsl.py -erwB BL_150S_14x.txt -S 38400 6port.a43 Erase device, change baudrate and download a new BSL, then download the specified file. After that, reset the device and wait for user input. bsl.py --go=0x220 ramtest.a43 Download a program into RAM and run it (on an erased device) bsl.py --go=0x200 -P 6port.a43 ramtest.a43 Download a program into RAM and run it (on a device that was previously programmed with 6port.a43 and therefore needs a specific password). For old devices that use the patch the above command gives a conflict with the patch. But as the patch is only needed to programm flash, it can be left out when running a program solely from RAM: "python bsl.py --go=0x200 -u -P 6port.a43 ramtest.a43" bsl.py -u 0x0c00 -s 1024 -P 6port.a43 Get a memory dump in HEX, from the bootstrap loader (on a device that was previously programmed with 6port.a43 and therefore needs a specific password): or on unix with the use of "hexdump": "python bsl.py -u 0x0c00 -s 1024 -P 6port.a43 -b | hexdump" or save the binary in a file: "python bsl.py -u 0x0c00 -s 1024 -P 6port.a43 -b >dump.bin" bsl.py --go=0x220 --upload=0x200 --size=256 ramtest.a43 Download the file ramtest.a43 to an empty device, execute its main function at 0x0220. The BSL then tries to reconnect to the device. This does only work when the program on the MSP430 does enter the BSL by jumping at address 0x0c00. It is not forced to enter the BSL by a reset as this would stop the program excution. When the reconnection was successful, the data, specified with the --upload and --size parameters, is loaded and printed. This configuration can be useful for software tests, getting callibration data, etc. PS: dont specify -r when using -g. A reset starts the user program which possibly destroys a program that was downloaded to RAM. bsl.py -rw Just start the user program (with a reset) and wait. bsl.py -rwc1 Reset the device on the second serial/COM port and wait. cat 6port.a43|bsl.py -eE - Pipe the data from "cat" to the BSL to erase and program the flash. (un*x example, don't forget the dash at the end of the line) bsl.py -e -S 38400 6port.a43 First download the internal replacement BSL and then use it to program at 38400 baud. Only works with targets with more than 1kB of RAM. bsl.py -e -B BL_150S_14x.txt -S 38400 6port.a43 First download the given replacement BSL and then use it to program at 38400 baud. Only works with targets with more than 1kB of RAM. History ------- V1.4 uses improved serial library support for BSL download to MSP support for higher baudrates (up to 38400) V1.5 ELF file support replacement BSLs are now internal References ---------- - Python: http://www.python.org - Jython: http://www.jython.org - Serial Extension for Python: http://pyserial.sourceforge.net - win32all: http://starship.python.net/crew/mhammond/ and http://www.activestate.com/Products/ActivePython/win32all.html - slaa89.pdf: "Features of the MSP430 Bootstrap Loader in the MSP430F1121", TI - slaa96b.pdf: "Application of Bootstrap Loader in MSP430 With Flash Hardware and Software Proposal", TI - Texas Instruments MSP430 Homepage, links to Datasheets and Application Notes: http://www.ti.com/sc/docs/products/micro/msp430/msp430.htm tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/winexe/000077500000000000000000000000001206361226500230315ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/winexe/Makefile000066400000000000000000000002531206361226500244710ustar00rootroot00000000000000 .PHONY: all FORCE clean windist all: windist #wrap py to exe and build windows installer windist: sh build-windist #clean up the mess... clean: rm -r dist build bin tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/winexe/README.windows000066400000000000000000000021371206361226500254050ustar00rootroot00000000000000$Id: README.windows,v 1.4 2006-12-12 18:23:02 vlahan Exp $ @author Cory Sharp Follow these directions to recreate the standalone tos-bsl.exe. After doing this, you should recreate ../tos-bsl-win.tar.gz with the contents of the generated bin directory. -- To build a binary executable msp430-bsl.exe for Windows, first download and install Python 2.3 for Windows [1][2], the version included with Cygwin is insufficient. Then install py2exe [3][4]. [1] http://www.python.org/download/ [2] http://www.python.org/ftp/python/2.3.4/Python-2.3.4.exe [3] http://starship.python.net/crew/theller/py2exe/ [4] http://prdownloads.sourceforge.net/py2exe/py2exe-0.5.3.win32-py2.3.exe?download To compile msp430-bsl, make sure the Windows version of python is first in your path (i.e., before any cygwin version), then run make. When successful, that command creates a bin/ directory, which contains tos-bsl.exe and its supporting files. You must install bin/ and bin/lib/ all together, or it won't work. I installed it into c:/mspgcc/bin, directly over the version that came with MSPGCC. tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/winexe/build-windist000066400000000000000000000001161206361226500255300ustar00rootroot00000000000000rm -rf bin cd .. python winexe/setup.py py2exe mv bin winexe/bin rm -rf build tinyos-tools-1.4.2/tools/platforms/msp430/pybsl/winexe/setup.py000066400000000000000000000010211206361226500245350ustar00rootroot00000000000000# setup.py from distutils.core import setup import glob, sys, py2exe, os sys.argv.append("sdist") sys.argv.append("py2exe") setup( name='pybsl', version='0.5', options = {"py2exe": { 'dist_dir': 'bin', 'excludes': ['javax.comm'], } }, console = ["tos-bsl"], zipfile = "lib/shared-bsl.zip", ) if os.path.exists('bin/bsl.exe'): if os.path.exists('bin/msp430-bsl.exe'): os.remove('bin/msp430-bsl.exe') os.rename('bin/bsl.exe', 'bin/msp430-bsl.exe') tinyos-tools-1.4.2/tools/platforms/sam3/000077500000000000000000000000001206361226500202165ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/platforms/sam3/Makefile.am000066400000000000000000000002201206361226500222440ustar00rootroot00000000000000AUTOMAKE_OPTIONS = foreign if CYGWIN # Windows currently not supported else # Linux support bin_SCRIPTS = samba-program.py sam3: endif tinyos-tools-1.4.2/tools/platforms/sam3/samba-program.py.in000077500000000000000000000162141206361226500237340ustar00rootroot00000000000000#!@pathpython@ # Script to program the Atmel SAM3U using the sam-ba tool. import os import re import sys import time import signal import optparse import tempfile import subprocess parser = optparse.OptionParser() parser.add_option("-p", "--port", action="store", type="string", dest="port", default="/dev/ttyUSB0", help="Port where the SAM3U can be found.") parser.add_option("-b", "--binfile", action="store", type="string", dest="binfile", default="build/sam3u_ek/main.bin.out", help="Binary file that should be programmed into the flash.") parser.add_option("-t", "--target", action="store", type="string", dest="target", default="AT91SAM3U4-EK", help="Target board type.") parser.add_option("-c", "--check", action="store_true", dest="check", default=False, help="Checks and verifies the programmed flash") parser.add_option("-r", "--run", action="store_true", dest="run", default=False, help="Starts executing the binary after flashing it") parser.add_option("-s", "--start-addr", action="store", type="string", dest="start_addr", default="0x80000", help="Determines the start address where the binary is loaded") parser.add_option("-d", "--debug", action="store_true", dest="DEBUG", default=False, help="Set the debug mode.") (cmdOptions, args) = parser.parse_args() class samba: def __init__(self): self.expect_timeout = False # check to make sure binary file exists if not os.path.isfile(cmdOptions.binfile): print '"%s" does not exist. Exiting.' % cmdOptions.binfile sys.exit(1) # once we switch to python 2.6, we should do this #self.f = tempfile.NamedTemporaryFile(delete=False) #if sam3s, use different TCL script r = re.compile("sam3s") matches = r.findall(cmdOptions.target) if(len(matches) != 0): print "Found SAM3S" self.f = file('/tmp/samba.tcl', 'w+') self.f.write("""FLASH::Init send_file {Flash} "%s" %s 0 FLASH::ScriptGPNMV 2 """%(cmdOptions.binfile,cmdOptions.start_addr)) if cmdOptions.check: # verify flash print "Verify image" self.f.write('compare_file {Flash} "%s" %s 0\n'%(cmdOptions.binfile,cmdOptions.start_addr)) if cmdOptions.run: # automatically run the code after writing self.f.write("TCL_Go $target(handle) 0 0\n") else: if( int(cmdOptions.start_addr, 16) >= 0x80000 and int(cmdOptions.start_addr, 16) < 0x100000): flash_id = 0 else: flash_id = 1 self.f = file('/tmp/samba.tcl', 'w+') self.f.write("""FLASH::Init %d send_file {Flash %d} "%s" %s 0 FLASH::ScriptGPNMV 2 """%(flash_id,flash_id,cmdOptions.binfile,cmdOptions.start_addr)) if cmdOptions.check: # verify flash print "Verify image" self.f.write('compare_file {Flash %d} "%s" %s 0\n'%(flash_id, cmdOptions.binfile,cmdOptions.start_addr)) if cmdOptions.run: # automatically run the code after writing self.f.write("TCL_Go $target(handle) 0 0\n") self.f.flush() try: error = False # check if SAMBA bootloader is here foundBootloader = False while not foundBootloader: print "Checking for programmer" lsusb_proc = subprocess.Popen('lsusb -d 03eb:6124', shell=True, stdout=subprocess.PIPE) r = re.compile("SAMBA bootloader") lsusb_proc.wait() matches = r.findall(lsusb_proc.stdout.readline()) if len(matches) == 0: print """\n Couldn't find SAM-BA bootloader device on the USB bus. Please close the ERASE jumper on the development kit and reboot the system (hit NRSTB button)!\n""" time.sleep(2) else: foundBootloader = True print "Programmer Found!" print "Programming..." #print "Remove ERASE and hit [Enter]" #a = raw_input() samba_cmd = "DISPLAY=:0 sam-ba %s %s %s"%(cmdOptions.port, cmdOptions.target, self.f.name) if(cmdOptions.DEBUG): print "DEBUG: ", samba_cmd samba_proc = subprocess.Popen(samba_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) r = re.compile("sam-ba: not found") e = samba_proc.stderr.readline() if len(r.findall(samba_proc.stderr.readline())) != 0: print "Couldn't find 'sam-ba'. Please make sure it is in your PATH!" self.cleanup() sys.exit(1) try: self.expect(samba_proc.stdout, "-I- Found processor : at91sam3") except RuntimeError: print "Couldn't find processor! Make sure the port '%s' is correct."%(cmdOptions.port) self.cleanup() sys.exit(1) try: self.expect(samba_proc.stdout, "-I- Command line mode : Execute script file") except: print "Couldn't execute script!" self.cleanup() sys.exit(1) try: self.expect(samba_proc.stdout, "-I- GPNVM1 set") except: print "Couldn't program the device!" self.cleanup() sys.exit(1) if cmdOptions.check: try: self.expect(samba_proc.stdout, "match exactly") except: print "Verification failed!" self.cleanup() sys.exit(1) if cmdOptions.run: print "Done! Your code should be running now." else: print "Done! Reboot your system (hit NRSTB button)." finally: pass def cleanup(self): self.f.close() os.unlink(self.f.name) def alarmHandler(self, signum, frame): self.expect_timeout = True # Wait until expected pattern is received on the given filehandle. def expect(self, fh, pat, timeout=3): r = re.compile(pat) expect_found = False if (timeout != -1): signal.signal(signal.SIGALRM, self.alarmHandler) signal.alarm(timeout) while (not expect_found and not self.expect_timeout): line = fh.readline().strip() if cmdOptions.DEBUG: print line time.sleep(0.1) matches = r.findall(line) if (len(matches) != 0): expect_found = True break signal.alarm(0) if (not expect_found): raise RuntimeError, "Did not receive expected pattern '%s'" % pat if __name__ == "__main__": s = samba() tinyos-tools-1.4.2/tools/tinyos/000077500000000000000000000000001206361226500166715ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/tinyos/Makefile.am000066400000000000000000000001051206361226500207210ustar00rootroot00000000000000AUTOMAKE_OPTIONS = foreign SUBDIRS = java misc ncc tosthreads safe tinyos-tools-1.4.2/tools/tinyos/java/000077500000000000000000000000001206361226500176125ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/tinyos/java/Makefile.am000066400000000000000000000000621206361226500216440ustar00rootroot00000000000000AUTOMAKE_OPTIONS = foreign SUBDIRS = env serial tinyos-tools-1.4.2/tools/tinyos/java/README000066400000000000000000000000451206361226500204710ustar00rootroot00000000000000JNI libraries for TinyOS's java SDK tinyos-tools-1.4.2/tools/tinyos/java/env/000077500000000000000000000000001206361226500204025ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/tinyos/java/env/Makefile.am000066400000000000000000000023101206361226500224320ustar00rootroot00000000000000JDK = @JDK@ EXEEXT= tinyoslibdir=$(libdir)/tinyos tinyoslib_PROGRAMS = @GETENVLIB@ EXTRA_PROGRAMS = libgetenv-32.so libgetenv-64.so getenv.dll libgetenv.jnilib SOFLAGS = "-I$(JDK)/include/linux" "-I$(JDK)/include" -shared -fpic libgetenv_32_so_SOURCES = net_tinyos_util_Env.h net_tinyos_util_Env.c libgetenv_64_so_SOURCES = $(libgetenv_32_so_SOURCES) libgetenv-32.so : net_tinyos_util_Env.h net_tinyos_util_Env.c $(CC) $(SOFLAGS) -m32 net_tinyos_util_Env.c -o$@ || \ (echo 32-bit libgetenv.so NOT GENERATED - DO NOT USE THIS RUN TO BUILD AN RPM; echo Press return to continue; read; rm -f $@) libgetenv-64.so : net_tinyos_util_Env.h net_tinyos_util_Env.c @echo $(CC) $(SOFLAGS) -m64 net_tinyos_util_Env.c -o$@ @$(CC) $(SOFLAGS) -m64 net_tinyos_util_Env.c -o$@ || \ (echo 64-bit libgetenv.so NOT GENERATED - DO NOT USE THIS RUN TO BUILD AN RPM; echo Press return to continue; read; rm -f $@) getenv.dll: net_tinyos_util_Env.h net_tinyos_util_Env.c gcc -shared -o$@ -mno-cygwin "-I$(JDK)/include" "-I$(JDK)/include/win32" -D_JNI_IMPLEMENTATION -Wl,--kill-at net_tinyos_util_Env.c libgetenv.jnilib : net_tinyos_util_Env.h net_tinyos_util_Env.c gcc "-I$(JDK)/Headers" -bundle -fPIC net_tinyos_util_Env.c -o $@ tinyos-tools-1.4.2/tools/tinyos/java/env/net_tinyos_util_Env.c000066400000000000000000000007641206361226500246150ustar00rootroot00000000000000// $Id: net_tinyos_util_Env.c,v 1.4 2006-12-12 18:23:02 vlahan Exp $ #include "net_tinyos_util_Env.h" #include JNIEXPORT jstring JNICALL Java_net_tinyos_util_Env_igetenv (JNIEnv *env, jclass c, jstring jname) { const char *name, *value; if (jname == NULL) return NULL; name = (*env)->GetStringUTFChars(env, jname, (jboolean *)NULL); value = getenv(name) ; (*env)->ReleaseStringUTFChars(env, jname, name); return value ? (*env)->NewStringUTF(env, value) : NULL; } tinyos-tools-1.4.2/tools/tinyos/java/env/net_tinyos_util_Env.h000066400000000000000000000011001206361226500246030ustar00rootroot00000000000000// $Id: net_tinyos_util_Env.h,v 1.4 2006-12-12 18:23:02 vlahan Exp $ /* DO NOT EDIT THIS FILE - it is machine generated */ #include /* Header for class net_tinyos_util_Env */ #ifndef _Included_net_tinyos_util_Env #define _Included_net_tinyos_util_Env #ifdef __cplusplus extern "C" { #endif /* Inaccessible static: loaded */ /* * Class: net_tinyos_util_Env * Method: igetenv * Signature: (Ljava/lang/String;)Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_net_tinyos_util_Env_igetenv (JNIEnv *, jclass, jstring); #ifdef __cplusplus } #endif #endif tinyos-tools-1.4.2/tools/tinyos/java/serial/000077500000000000000000000000001206361226500210715ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/tinyos/java/serial/Makefile.am000066400000000000000000000030331206361226500231240ustar00rootroot00000000000000JDK = @JDK@ EXEEXT= tinyoslibdir=$(libdir)/tinyos tinyoslib_PROGRAMS = @TOSCOMMLIB@ EXTRA_PROGRAMS = libtoscomm-32.so libtoscomm-64.so toscomm.dll libtoscomm.jnilib # Compiling libtoscomm.so with -O2 generates bad code with gcc 4.1.x on x86_64 # (the -O1 code is slightly weird, but works at least ;-)) SOFLAGS = -O1 -shared -fPIC "-I$(JDK)/include" "-I$(JDK)/include/linux" libtoscomm_32_so_SOURCES = \ NativeSerialEnums.h \ NativeSerial_linux.cpp \ TOSComm_wrap.cxx libtoscomm_64_so_SOURCES = $(libtoscomm_32_so_SOURCES) toscomm_dll_SOURCES = \ NativeSerialEnums.h \ NativeSerial_win32.cpp \ TOSComm_wrap.cxx libtoscomm_jnilib_SOURCES = \ NativeSerialEnums.h \ NativeSerial_darwin.cpp \ TOSComm_wrap.cxx libtoscomm.jnilib: $(libtoscomm_jnilib_SOURCES) $(CXX) -O2 -bundle "-I$(JDK)/Headers" \ -o $@ NativeSerial_darwin.cpp libtoscomm-32.so: $(libtoscomm_so_SOURCES) $(CXX) -m32 $(SOFLAGS) -o $@ NativeSerial_linux.cpp || \ (echo 32-bit libtoscomm.so NOT GENERATED - DO NOT USE THIS RUN TO BUILD AN RPM; echo Press return to continue; read; rm -f $@) libtoscomm-64.so: $(libtoscomm_so_SOURCES) @echo $(CXX) -m64 $(SOFLAGS) -o $@ NativeSerial_linux.cpp @$(CXX) -m64 $(SOFLAGS) -o $@ NativeSerial_linux.cpp || \ (echo 64-bit libtoscomm.so NOT GENERATED - DO NOT USE THIS RUN TO BUILD AN RPM; echo Press return to continue; read; rm -f $@) toscomm.dll: $(toscomm_dll_SOURCES) $(CXX) -O2 -s -mno-cygwin -shared "-I$(JDK)/include" "-I$(JDK)/include/win32" -D_JNI_IMPLEMENTATION -Wl,--kill-at \ -o $@ NativeSerial_win32.cpp tinyos-tools-1.4.2/tools/tinyos/java/serial/NativeSerial.h000066400000000000000000000050321206361226500236300ustar00rootroot00000000000000//$Id: NativeSerial.h,v 1.5 2010-06-29 22:07:42 scipio Exp $ /* Copyright (c) 2000-2003 The Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. * - Neither the name of the copyright holder nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */ //@author Cory Sharp #include class NativeSerial { public: void setSerialPortParams( int baudrate, int databits, int stopbits, bool parity ); int getBaudRate(); int getDataBits(); int getStopBits(); bool getParity(); void notifyOn( int event, bool enable ); bool isNotifyOn( int event ); bool waitForEvent(); bool cancelWait(); bool didEventOccur( int event ); void setDTR( bool high ); void setRTS( bool high ); bool isDTR(); bool isRTS(); bool isCTS(); bool isDSR(); bool isRI(); bool isCD(); void sendBreak( int millis ); NativeSerial( const char* portname ); ~NativeSerial(); void close(); int available(); int read(); int read( signed char buffer_out[], int off, int len ); int write( int b ); int write( const signed char buffer_in[], int off, int len ); static std::string getTOSCommMap(); }; tinyos-tools-1.4.2/tools/tinyos/java/serial/NativeSerialEnums.h000066400000000000000000000043021206361226500246370ustar00rootroot00000000000000//$Id: NativeSerialEnums.h,v 1.5 2010-06-29 22:07:42 scipio Exp $ /* Copyright (c) 2000-2003 The Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. * - Neither the name of the copyright holder nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */ //@author Cory Sharp namespace NativeSerialEnums { enum event_type { DATA_AVAILABLE = (1<<0), OUTPUT_EMPTY = (1<<1), CTS = (1<<2), DSR = (1<<3), RING_INDICATOR = (1<<4), CARRIER_DETECT = (1<<5), OVERRUN_ERROR = (1<<6), PARITY_ERROR = (1<<7), FRAMING_ERROR = (1<<8), BREAK_INTERRUPT = (1<<9), }; enum parity_type { NPARITY_NONE = 0, NPARITY_EVEN = 1, NPARITY_ODD = 2, }; enum stop_type { STOPBITS_1 = 1, STOPBITS_2 = 2, STOPBITS_1_5 = 3, }; }; tinyos-tools-1.4.2/tools/tinyos/java/serial/NativeSerial_darwin.cpp000066400000000000000000000312451206361226500255340ustar00rootroot00000000000000//$Id: NativeSerial_darwin.cpp,v 1.2 2010-06-29 22:07:42 scipio Exp $ /* Copyright (c) 2000-2003 The Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. * - Neither the name of the copyright holder nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */ //@author Cory Sharp #include #include #include #include #include #include #include #include #include #include #include #include "NativeSerialEnums.h" using namespace NativeSerialEnums; class comm_port_error : public std::runtime_error { public: comm_port_error( const char* msg ): std::runtime_error(msg) { } }; class NativeSerial { public: typedef std::string String; private: std::string m_portname; int m_fd; int m_events_in; int m_events_out; bool m_wait_for_events; protected: void note( std::string s ) { //std::cout << "NativeSerial_linux " << m_portname << ": " << s << std::endl; } String cat( const char* prefix, const String& err ) { return (prefix == NULL ? "" : String(prefix)+": ") + err; } void errno_wrap( bool error, const char* extra_err = NULL ) { if( error && (errno != 0) ) throw comm_port_error( cat(extra_err, strerror(errno)).c_str() ); } void block_on_read( bool block ) { note( "block_on_read begin" ); fcntl( m_fd, F_SETFL, (block ? 0 : FNDELAY) ); note( "block_on_read end" ); } struct termios get_comm_state() { note( "get_comm_state begin" ); struct termios options; errno_wrap( tcgetattr( m_fd, &options ) == -1, "get_comm_state" ); note( "get_comm_state end" ); return options; } int get_modem_status() { note( "get_modem_status begin" ); int status = 0; errno_wrap( ioctl( m_fd, TIOCMGET, &status ) == -1, "get_modem_status" ); note( "get_modem_status end" ); return status; } void set_modem_status( int status ) { note( "set_modem_status begin" ); errno_wrap( ioctl( m_fd, TIOCMSET, &status ) == -1, "set_modem_status" ); note( "set_modem_status end" ); } int baud_to_enum( int baud ) { switch( baud ) { case 0: return B0; case 50: return B50; case 75: return B75; case 110: return B110; case 134: return B134; case 150: return B150; case 200: return B200; case 300: return B300; case 600: return B600; case 1200: return B1200; case 1800: return B1800; case 2400: return B2400; case 4800: return B4800; case 9600: return B9600; case 19200: return B19200; case 38400: return B38400; case 57600: return B57600; case 115200: return B115200; case 230400: return B230400; } throw comm_port_error("baud_to_enum, bad baud rate"); } int enum_to_baud( int baudenum ) { switch( baudenum ) { case B0: return 0; case B50: return 50; case B75: return 75; case B110: return 110; case B134: return 134; case B150: return 150; case B200: return 200; case B300: return 300; case B600: return 600; case B1200: return 1200; case B1800: return 1800; case B2400: return 2400; case B4800: return 4800; case B9600: return 9600; case B19200: return 19200; case B38400: return 38400; case B57600: return 57600; case B115200: return 115200; case B230400: return 230400; } throw comm_port_error("enum_to_baud, bad baud rate"); } /* static DWORD map_events_to_win32( int event ) { DWORD ev = 0; if( event & DATA_AVAILABLE ) ev |= EV_RXCHAR; if( event & OUTPUT_EMPTY ) ev |= EV_TXEMPTY; if( event & CTS ) ev |= EV_CTS; if( event & DSR ) ev |= EV_DSR; if( event & RING_INDICATOR ) ev |= EV_RING; if( event & CARRIER_DETECT ) ev |= EV_RLSD; if( event & OVERRUN_ERROR ) ev |= EV_ERR; if( event & PARITY_ERROR ) ev |= EV_ERR; if( event & FRAMING_ERROR ) ev |= EV_ERR; if( event & BREAK_INTERRUPT ) ev |= EV_BREAK; return ev; } static int map_events_from_win32( DWORD ev, DWORD errors ) { int event = 0; if( ev & EV_RXCHAR ) event |= DATA_AVAILABLE; if( ev & EV_TXEMPTY ) event |= OUTPUT_EMPTY; if( ev & EV_CTS ) event |= CTS; if( ev & EV_DSR ) event |= DSR; if( ev & EV_RING ) event |= RING_INDICATOR; if( ev & EV_RLSD ) event |= CARRIER_DETECT; if( ev & EV_ERR ) { if( errors & CE_BREAK ) event |= BREAK_INTERRUPT; if( errors & CE_FRAME ) event |= FRAMING_ERROR; if( errors & CE_IOE ) throw comm_port_error("Win32 Comm IO Error"); if( errors & CE_MODE ) throw comm_port_error("Win32 Comm Invalid Mode"); if( errors & CE_OVERRUN ) event |= OVERRUN_ERROR; if( errors & CE_RXOVER ) event |= OVERRUN_ERROR; //?? okay if( errors & CE_RXPARITY ) event |= PARITY_ERROR; if( errors & CE_TXFULL ) event |= OVERRUN_ERROR; //?? okay } if( ev & EV_BREAK ) event |= BREAK_INTERRUPT; return event; } */ public: void setSerialPortParams( int baudrate, int databits, int stopbits, int parity ) { note( "setSerialPortParams begin" ); struct termios state = get_comm_state(); int baudenum = baud_to_enum(baudrate); errno_wrap( cfsetispeed( &state, baudenum ) == -1, "baudrate" ); errno_wrap( cfsetospeed( &state, baudenum ) == -1, "baudrate" ); //throw comm_port_error("nuthin"); state.c_cflag &= ~CSIZE; switch( databits ) { case 5: state.c_cflag |= CS5; break; case 6: state.c_cflag |= CS6; break; case 7: state.c_cflag |= CS7; break; case 8: default: state.c_cflag |= CS8; } if( stopbits == STOPBITS_2 ) state.c_cflag |= CSTOPB; else state.c_cflag &= ~CSTOPB; state.c_cflag |= PARENB; switch( parity ) { case NPARITY_EVEN: state.c_cflag &= ~PARODD; break; case NPARITY_ODD: state.c_cflag |= PARODD; break; case NPARITY_NONE: default: state.c_cflag &= ~PARENB; } errno_wrap( tcsetattr( m_fd, TCSANOW, &state ) == -1, "set_comm_state" ); note( "setSerialPortParams end" ); } int getBaudRate() { struct termios state = get_comm_state(); return enum_to_baud( cfgetospeed( &state ) ); } int getDataBits() { switch( get_comm_state().c_cflag & CSIZE ) { case CS5: return 5; case CS6: return 6; case CS7: return 7; case CS8: default: return 8; } } int getStopBits() { int stop = get_comm_state().c_cflag; return (stop & CSTOPB) ? STOPBITS_2 : STOPBITS_1; } int getParity() { int parity = get_comm_state().c_cflag; if( parity & PARENB ) return (parity & PARODD) ? NPARITY_ODD : NPARITY_EVEN; return NPARITY_NONE; } int read( signed char* buffer, int off, int len ) { note( "read begin" ); int nread = ::read( m_fd, buffer+off, len ); errno_wrap( nread == -1, "read" ); #if 0 printf(" ... read:"); for( int i=0; i 0) ? ((unsigned char)byte) : -1; } int write( int b ) { signed char byte = b; return write( &byte, 0, 1 ); } int available() { note( "available begin" ); int navail = 0; int rv = 0; errno_wrap( rv=ioctl( m_fd, FIONREAD, &navail ) == -1, "available" ); //printf("... fionread=%d, rv=%d\n",navail,rv); note( "available end" ); return navail; } void notifyOn( int event, bool enable ) { if( enable ) m_events_in |= event; else m_events_in &= ~event; } bool isNotifyOn( int event ) { return (m_events_in & event) != 0; } bool waitForEvent() { note( "waitForEvent begin" ); fd_set input; struct timeval tv; m_events_out = 0; while( m_wait_for_events && (m_fd != -1) && (m_events_out == 0) ) { FD_ZERO( &input ); FD_SET( m_fd, &input ); tv.tv_sec = 0; tv.tv_usec = 100*1000; // 1ms is the minimum resolution, at best if( select( m_fd+1, &input, NULL, NULL, &tv ) == -1 ) { if( errno == EINTR ) break; errno_wrap( true, "waitForEvent.select" ); } if( FD_ISSET( m_fd, &input ) ) m_events_out |= DATA_AVAILABLE; } m_wait_for_events = true; note( "waitForEvent end" ); return (m_events_out != 0); } bool cancelWait() { note( "cancelWait begin" ); m_wait_for_events = false; note( "cancelWait end" ); } bool didEventOccur( int event ) { return (m_events_out & event) != 0; } void setDTR( bool high ) { if( high ) set_modem_status( get_modem_status() | TIOCM_DTR ); else set_modem_status( get_modem_status() & ~TIOCM_DTR ); } void setRTS( bool high ) { if( high ) set_modem_status( get_modem_status() | TIOCM_RTS ); else set_modem_status( get_modem_status() & ~TIOCM_RTS ); } bool isDTR() { return (get_modem_status() & TIOCM_DTR) != 0; } bool isRTS() { return (get_modem_status() & TIOCM_RTS) != 0; } bool isCTS() { return (get_modem_status() & TIOCM_CTS) != 0; } bool isDSR() { return (get_modem_status() & TIOCM_DSR) != 0; } bool isRI() { return (get_modem_status() & TIOCM_RI) != 0; } bool isCD() { return (get_modem_status() & TIOCM_CD) != 0; } void sendBreak( int millis ) { } NativeSerial( const char* portname ): m_fd(-1), m_events_in(0), m_events_out(0), m_wait_for_events(true) { m_portname = portname; note( "constructor begin" ); m_fd = open( portname, O_RDWR | O_NOCTTY | O_NONBLOCK ); errno_wrap( m_fd == -1, "open" ); //std::cout << "NativeSerial constructor [1] " << portname << std::endl; block_on_read(false); // set default port parmeters struct termios options = get_comm_state(); // disable rts/cts, no parity bits, one stop bit, clear databits mask //local mode, enable receiver, 8 databits options.c_cflag = CLOCAL | CREAD | CS8; //raw mode options.c_lflag = 0; //disable software flow control, etc options.c_iflag = IGNPAR | IGNBRK; //raw output mode options.c_oflag = 0; //set thresholds options.c_cc[VMIN] = 0; options.c_cc[VTIME] = 0; errno_wrap( tcflush( m_fd, TCIOFLUSH ) == -1, "flush" ); errno_wrap( tcsetattr( m_fd, TCSANOW, &options ) == -1, "setattr" ); setDTR(false); setRTS(false); note( "constructor end" ); } ~NativeSerial() { note( "destructor begin" ); close(); note( "destructor end" ); } void close() { note( "close begin" ); //std::cout << "NativeSerial_linux close fd=" << m_fd << std::endl; if( m_fd != -1 ) { cancelWait(); struct timeval tv = { tv_sec:0, tv_usec:1100 }; select( 0, NULL, NULL, NULL, &tv ); ::close( m_fd ); m_fd = -1; } note( "close end" ); } static std::string getTOSCommMap() { const char* env = getenv( "TOSCOMMMAP" ); return (env == NULL) ? "com1=/dev/ttyS0:usb1=/dev/ttyUSB0" : env; } }; #include "TOSComm_wrap.cxx" tinyos-tools-1.4.2/tools/tinyos/java/serial/NativeSerial_linux.cpp000066400000000000000000000314401206361226500254040ustar00rootroot00000000000000//$Id: NativeSerial_linux.cpp,v 1.7 2010-06-29 22:07:42 scipio Exp $ /* Copyright (c) 2000-2003 The Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. * - Neither the name of the copyright holder nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */ //@author Cory Sharp #include #include #include #include #include #include #include #include #include #include #include #include #include #include "NativeSerialEnums.h" using namespace NativeSerialEnums; class comm_port_error : public std::runtime_error { public: comm_port_error( const char* msg ): std::runtime_error(msg) { } }; class NativeSerial { public: typedef std::string String; private: std::string m_portname; int m_fd; int m_events_in; int m_events_out; bool m_wait_for_events; protected: void note( std::string s ) { //std::cout << "NativeSerial_linux " << m_portname << ": " << s << std::endl; } String cat( const char* prefix, const String& err ) { return (prefix == NULL ? "" : String(prefix)+": ") + err; } void errno_wrap( bool error, const char* extra_err = NULL ) { if( error && (errno != 0) ) throw comm_port_error( cat(extra_err, strerror(errno)).c_str() ); } void block_on_read( bool block ) { note( "block_on_read begin" ); fcntl( m_fd, F_SETFL, (block ? 0 : FNDELAY) ); note( "block_on_read end" ); } struct termios get_comm_state() { note( "get_comm_state begin" ); struct termios options; errno_wrap( tcgetattr( m_fd, &options ) == -1, "get_comm_state" ); note( "get_comm_state end" ); return options; } int get_modem_status() { note( "get_modem_status begin" ); int status = 0; errno_wrap( ioctl( m_fd, TIOCMGET, &status ) == -1, "get_modem_status" ); note( "get_modem_status end" ); return status; } void set_modem_status( int status ) { note( "set_modem_status begin" ); errno_wrap( ioctl( m_fd, TIOCMSET, &status ) == -1, "set_modem_status" ); note( "set_modem_status end" ); } int baud_to_enum( int baud ) { switch( baud ) { case 0: return B0; case 50: return B50; case 75: return B75; case 110: return B110; case 134: return B134; case 150: return B150; case 200: return B200; case 300: return B300; case 600: return B600; case 1200: return B1200; case 1800: return B1800; case 2400: return B2400; case 4800: return B4800; case 9600: return B9600; case 19200: return B19200; case 38400: return B38400; case 57600: return B57600; case 115200: return B115200; case 230400: return B230400; } throw comm_port_error("baud_to_enum, bad baud rate"); } int enum_to_baud( int baudenum ) { switch( baudenum ) { case B0: return 0; case B50: return 50; case B75: return 75; case B110: return 110; case B134: return 134; case B150: return 150; case B200: return 200; case B300: return 300; case B600: return 600; case B1200: return 1200; case B1800: return 1800; case B2400: return 2400; case B4800: return 4800; case B9600: return 9600; case B19200: return 19200; case B38400: return 38400; case B57600: return 57600; case B115200: return 115200; case B230400: return 230400; } throw comm_port_error("enum_to_baud, bad baud rate"); } /* static DWORD map_events_to_win32( int event ) { DWORD ev = 0; if( event & DATA_AVAILABLE ) ev |= EV_RXCHAR; if( event & OUTPUT_EMPTY ) ev |= EV_TXEMPTY; if( event & CTS ) ev |= EV_CTS; if( event & DSR ) ev |= EV_DSR; if( event & RING_INDICATOR ) ev |= EV_RING; if( event & CARRIER_DETECT ) ev |= EV_RLSD; if( event & OVERRUN_ERROR ) ev |= EV_ERR; if( event & PARITY_ERROR ) ev |= EV_ERR; if( event & FRAMING_ERROR ) ev |= EV_ERR; if( event & BREAK_INTERRUPT ) ev |= EV_BREAK; return ev; } static int map_events_from_win32( DWORD ev, DWORD errors ) { int event = 0; if( ev & EV_RXCHAR ) event |= DATA_AVAILABLE; if( ev & EV_TXEMPTY ) event |= OUTPUT_EMPTY; if( ev & EV_CTS ) event |= CTS; if( ev & EV_DSR ) event |= DSR; if( ev & EV_RING ) event |= RING_INDICATOR; if( ev & EV_RLSD ) event |= CARRIER_DETECT; if( ev & EV_ERR ) { if( errors & CE_BREAK ) event |= BREAK_INTERRUPT; if( errors & CE_FRAME ) event |= FRAMING_ERROR; if( errors & CE_IOE ) throw comm_port_error("Win32 Comm IO Error"); if( errors & CE_MODE ) throw comm_port_error("Win32 Comm Invalid Mode"); if( errors & CE_OVERRUN ) event |= OVERRUN_ERROR; if( errors & CE_RXOVER ) event |= OVERRUN_ERROR; //?? okay if( errors & CE_RXPARITY ) event |= PARITY_ERROR; if( errors & CE_TXFULL ) event |= OVERRUN_ERROR; //?? okay } if( ev & EV_BREAK ) event |= BREAK_INTERRUPT; return event; } */ public: void setSerialPortParams( int baudrate, int databits, int stopbits, int parity ) { note( "setSerialPortParams begin" ); struct termios state = get_comm_state(); int baudenum = baud_to_enum(baudrate); errno_wrap( cfsetispeed( &state, baudenum ) == -1, "baudrate" ); errno_wrap( cfsetospeed( &state, baudenum ) == -1, "baudrate" ); //throw comm_port_error("nuthin"); state.c_cflag &= ~CSIZE; switch( databits ) { case 5: state.c_cflag |= CS5; break; case 6: state.c_cflag |= CS6; break; case 7: state.c_cflag |= CS7; break; case 8: default: state.c_cflag |= CS8; } if( stopbits == STOPBITS_2 ) state.c_cflag |= CSTOPB; else state.c_cflag &= ~CSTOPB; state.c_cflag |= PARENB; switch( parity ) { case NPARITY_EVEN: state.c_cflag &= ~PARODD; break; case NPARITY_ODD: state.c_cflag |= PARODD; break; case NPARITY_NONE: default: state.c_cflag &= ~PARENB; } errno_wrap( tcsetattr( m_fd, TCSANOW, &state ) == -1, "set_comm_state" ); note( "setSerialPortParams end" ); } int getBaudRate() { struct termios state = get_comm_state(); return enum_to_baud( cfgetospeed( &state ) ); } int getDataBits() { switch( get_comm_state().c_cflag & CSIZE ) { case CS5: return 5; case CS6: return 6; case CS7: return 7; case CS8: default: return 8; } } int getStopBits() { int stop = get_comm_state().c_cflag; return (stop & CSTOPB) ? STOPBITS_2 : STOPBITS_1; } int getParity() { int parity = get_comm_state().c_cflag; if( parity & PARENB ) return (parity & PARODD) ? NPARITY_ODD : NPARITY_EVEN; return NPARITY_NONE; } int read( signed char* buffer, int off, int len ) { note( "read begin" ); int nread = ::read( m_fd, buffer+off, len ); errno_wrap( nread == -1, "read" ); #if 0 printf(" ... read:"); for( int i=0; i 0) ? ((unsigned char)byte) : -1; } int write( int b ) { signed char byte = b; return write( &byte, 0, 1 ); } int available() { note( "available begin" ); int navail = 0; int rv = 0; errno_wrap( rv=ioctl( m_fd, FIONREAD, &navail ) == -1, "available" ); //printf("... fionread=%d, rv=%d\n",navail,rv); note( "available end" ); return navail; } void notifyOn( int event, bool enable ) { if( enable ) m_events_in |= event; else m_events_in &= ~event; } bool isNotifyOn( int event ) { return (m_events_in & event) != 0; } bool waitForEvent() { note( "waitForEvent begin" ); fd_set input; struct timeval tv; m_events_out = 0; int fd = m_fd; while( m_wait_for_events && (m_fd != -1) && (m_events_out == 0) ) { FD_ZERO( &input ); FD_SET( fd, &input ); tv.tv_sec = 0; tv.tv_usec = 100*1000; // 1ms is the minimum resolution, at best if( select( fd+1, &input, NULL, NULL, &tv ) == -1 ) { if( errno == EINTR ) break; errno_wrap( true, "waitForEvent.select" ); } if( FD_ISSET( fd, &input ) ) m_events_out |= DATA_AVAILABLE; } m_wait_for_events = true; note( "waitForEvent end" ); return (m_events_out != 0); } bool cancelWait() { note( "cancelWait begin" ); m_wait_for_events = false; note( "cancelWait end" ); } bool didEventOccur( int event ) { return (m_events_out & event) != 0; } void setDTR( bool high ) { if( high ) set_modem_status( get_modem_status() | TIOCM_DTR ); else set_modem_status( get_modem_status() & ~TIOCM_DTR ); } void setRTS( bool high ) { if( high ) set_modem_status( get_modem_status() | TIOCM_RTS ); else set_modem_status( get_modem_status() & ~TIOCM_RTS ); } bool isDTR() { return (get_modem_status() & TIOCM_DTR) != 0; } bool isRTS() { return (get_modem_status() & TIOCM_RTS) != 0; } bool isCTS() { return (get_modem_status() & TIOCM_CTS) != 0; } bool isDSR() { return (get_modem_status() & TIOCM_DSR) != 0; } bool isRI() { return (get_modem_status() & TIOCM_RI) != 0; } bool isCD() { return (get_modem_status() & TIOCM_CD) != 0; } void sendBreak( int millis ) { } NativeSerial( const char* portname ): m_fd(-1), m_events_in(0), m_events_out(0), m_wait_for_events(true) { m_portname = portname; note( "constructor begin" ); m_fd = open( portname, O_RDWR | O_NOCTTY | O_NONBLOCK ); errno_wrap( m_fd == -1, "open" ); //std::cout << "NativeSerial constructor [1] " << portname << std::endl; block_on_read(false); // set default port parmeters //struct termios options = get_comm_state(); struct termios options; memset( &options, 0, sizeof(options) ); // disable rts/cts, no parity bits, one stop bit, clear databits mask //local mode, enable receiver, 8 databits options.c_cflag = CLOCAL | CREAD | CS8; //raw mode options.c_lflag = 0; //disable software flow control, etc options.c_iflag = IGNPAR | IGNBRK; //raw output mode options.c_oflag = 0; //set thresholds options.c_cc[VMIN] = 0; options.c_cc[VTIME] = 0; errno_wrap( tcflush( m_fd, TCIOFLUSH ) == -1, "flush" ); errno_wrap( tcsetattr( m_fd, TCSANOW, &options ) == -1, "setattr" ); setDTR(false); setRTS(false); note( "constructor end" ); } ~NativeSerial() { note( "destructor begin" ); close(); note( "destructor end" ); } void close() { note( "close begin" ); //std::cout << "NativeSerial_linux close fd=" << m_fd << std::endl; if( m_fd != -1 ) { cancelWait(); struct timeval tv = { tv_sec:0, tv_usec:1100 }; select( 0, NULL, NULL, NULL, &tv ); ::close( m_fd ); m_fd = -1; } note( "close end" ); } static std::string getTOSCommMap() { const char* env = getenv( "TOSCOMMMAP" ); return (env == NULL) ? "com1=/dev/ttyS0:usb1=/dev/ttyUSB0" : env; } }; #include "TOSComm_wrap.cxx" tinyos-tools-1.4.2/tools/tinyos/java/serial/NativeSerial_win32.cpp000066400000000000000000000265041206361226500252140ustar00rootroot00000000000000//$Id: NativeSerial_win32.cpp,v 1.5 2010-06-29 22:07:42 scipio Exp $ /* Copyright (c) 2000-2003 The Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. * - Neither the name of the copyright holder nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */ //@author Cory Sharp #include #include #include #include #include "NativeSerialEnums.h" using namespace NativeSerialEnums; class comm_port_error : public std::runtime_error { public: comm_port_error( const char* msg ): std::runtime_error(msg) { } }; class W32Overlapped { public: OVERLAPPED o; W32Overlapped() { o.hEvent = CreateEvent( NULL, FALSE, FALSE, NULL ); o.Internal = 0; o.InternalHigh = 0; o.Offset = 0; o.OffsetHigh = 0; if( o.hEvent == NULL ) throw comm_port_error("could not create Overlapped event"); } ~W32Overlapped() { if( o.hEvent != NULL ) CloseHandle( o.hEvent ); } }; class NativeSerial { private: HANDLE hComm; W32Overlapped oread; W32Overlapped owrite; W32Overlapped owait; W32Overlapped oavail; std::string m_portname; int m_events_in; int m_events_out; bool m_dtr; bool m_rts; protected: void test_comm_success( bool success, const char* extra_msg ) { if( !success ) { DWORD err = GetLastError(); std::ostringstream os; char msg[1024]; FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM, NULL, err, 0, msg, sizeof(msg), NULL ); os << "Error " << err << ".\n " << msg; if( extra_msg != NULL ) { os << " in " << extra_msg; } throw comm_port_error(os.str().c_str()); } } DCB get_comm_state() { DCB dcb; test_comm_success( GetCommState( hComm, &dcb ), "get_comm_state.GetCommState" ); return dcb; } DWORD get_modem_status() { DWORD status = 0; test_comm_success( GetCommModemStatus( hComm, &status ), "get_modem_stauts.GetCommModemStatus" ); return status; } static DWORD map_events_to_win32( int event ) { DWORD ev = 0; if( event & DATA_AVAILABLE ) ev |= EV_RXCHAR; if( event & OUTPUT_EMPTY ) ev |= EV_TXEMPTY; if( event & CTS ) ev |= EV_CTS; if( event & DSR ) ev |= EV_DSR; if( event & RING_INDICATOR ) ev |= EV_RING; if( event & CARRIER_DETECT ) ev |= EV_RLSD; if( event & OVERRUN_ERROR ) ev |= EV_ERR; if( event & PARITY_ERROR ) ev |= EV_ERR; if( event & FRAMING_ERROR ) ev |= EV_ERR; if( event & BREAK_INTERRUPT ) ev |= EV_BREAK; return ev; } static int map_events_from_win32( DWORD ev, DWORD errors ) { int event = 0; if( ev & EV_RXCHAR ) event |= DATA_AVAILABLE; if( ev & EV_TXEMPTY ) event |= OUTPUT_EMPTY; if( ev & EV_CTS ) event |= CTS; if( ev & EV_DSR ) event |= DSR; if( ev & EV_RING ) event |= RING_INDICATOR; if( ev & EV_RLSD ) event |= CARRIER_DETECT; if( ev & EV_ERR ) { if( errors & CE_BREAK ) event |= BREAK_INTERRUPT; if( errors & CE_FRAME ) event |= FRAMING_ERROR; if( errors & CE_IOE ) throw comm_port_error("Win32 Comm IO Error"); if( errors & CE_MODE ) throw comm_port_error("Win32 Comm Invalid Mode"); if( errors & CE_OVERRUN ) event |= OVERRUN_ERROR; if( errors & CE_RXOVER ) event |= OVERRUN_ERROR; //?? okay if( errors & CE_RXPARITY ) event |= PARITY_ERROR; if( errors & CE_TXFULL ) event |= OVERRUN_ERROR; //?? okay } if( ev & EV_BREAK ) event |= BREAK_INTERRUPT; return event; } public: void setSerialPortParams( int baudrate, int databits, int stopbits, bool parity ) { DCB dcb = get_comm_state(); dcb.BaudRate = baudrate; dcb.ByteSize = databits; switch( stopbits ) { case 0: dcb.StopBits = ONE5STOPBITS; break; case 2: dcb.StopBits = TWOSTOPBITS; break; default: dcb.StopBits = ONESTOPBIT; } dcb.Parity = (parity ? 1 : 0); test_comm_success( SetCommState( hComm, &dcb ), "set_params.SetCommState" ); } int getBaudRate() { int baud_rate = get_comm_state().BaudRate; switch( baud_rate ) { case CBR_110: return 110; case CBR_300: return 300; case CBR_600: return 600; case CBR_1200: return 1200; case CBR_2400: return 2400; case CBR_4800: return 4800; case CBR_9600: return 9600; case CBR_14400: return 14400; case CBR_19200: return 19200; case CBR_38400: return 38400; case CBR_56000: return 56000; case CBR_57600: return 57600; case CBR_115200: return 115200; case CBR_128000: return 128000; case CBR_256000: return 256000; } return baud_rate; } int getDataBits() { return get_comm_state().ByteSize; } int getStopBits() { switch( get_comm_state().StopBits ) { case ONESTOPBIT: return 0; case ONE5STOPBITS: return 1; case TWOSTOPBITS: return 2; } return 0; } bool getParity() { return (get_comm_state().fParity != 0); } int read( signed char* buffer, int off, int len ) { DWORD nread = 0; if( !ReadFile( hComm, buffer+off, len, &nread, &oread.o ) ) { test_comm_success( GetLastError() == ERROR_IO_PENDING, "read.WriteFile" ); DWORD rvwait = WaitForSingleObject(oread.o.hEvent,INFINITE); test_comm_success( rvwait != WAIT_FAILED, "read.WaitForSingleObject" ); if( rvwait != WAIT_OBJECT_0 ) return 0; test_comm_success( GetOverlappedResult(hComm,&oread.o,&nread,TRUE), "read.GetOverlappedresult" ); } return nread; } int write( const signed char* buffer, int off, int len ) { DWORD nread = 0; DWORD nwritten = 0; if( !WriteFile( hComm, buffer+off, len, &nwritten, &owrite.o ) ) { test_comm_success( GetLastError() == ERROR_IO_PENDING, "write.WriteFile" ); DWORD rvwait = WaitForSingleObject(owrite.o.hEvent,INFINITE); test_comm_success( rvwait != WAIT_FAILED, "write.WaitForSingleObject" ); if( rvwait != WAIT_OBJECT_0 ) return 0; test_comm_success( GetOverlappedResult(hComm,&owrite.o,&nwritten,TRUE), "write.GetOverlappedresult" ); } return nwritten; } int read() { signed char byte; return (read(&byte,0,1) > 0) ? ((unsigned char)byte) : -1; } int write( int b ) { signed char byte = b; return write( &byte, 0, 1 ); } int available() { COMSTAT cs; DWORD errors = 0; test_comm_success( ClearCommError( hComm, &errors, &cs ), "available.ClearCommError" ); return cs.cbInQue; } void notifyOn( int event, bool enable ) { if( enable ) m_events_in |= event; else m_events_in &= ~event; test_comm_success( SetEvent( owait.o.hEvent ), "enable_event.SetEvent" ); } bool isNotifyOn( int event ) { return (m_events_in & event) != 0; } bool waitForEvent() { DWORD evMaskIn = map_events_to_win32( m_events_in ); DWORD evMaskOut = 0; m_events_out = 0; if( evMaskIn != 0 ) { test_comm_success( SetCommMask( hComm, evMaskIn ), "wait_for_event.SetCommMask" ); if( !WaitCommEvent(hComm,&evMaskOut,&owait.o) ) { DWORD nbytes = 0; test_comm_success( GetLastError() == ERROR_IO_PENDING, "wait_for_event.WaitCommEvent" ); DWORD rvwait = WaitForSingleObject(owait.o.hEvent,INFINITE); test_comm_success( rvwait != WAIT_FAILED, "wait_for_event.WaitForSingleObject" ); if( rvwait != WAIT_OBJECT_0 ) return 0; test_comm_success( GetOverlappedResult(hComm,&owait.o,&nbytes,TRUE), "write.GetOverlappedresult" ); } //evMaskOut &= evMaskIn; DWORD errors = 0; test_comm_success( ClearCommError( hComm, &errors, NULL ), "wait_for_event.ClearCommError" ); m_events_out = map_events_from_win32( evMaskOut, errors ); } else { test_comm_success( ResetEvent( owait.o.hEvent ), "wait_for_event.ResetEvent" ); DWORD rvwait = WaitForSingleObject( owait.o.hEvent, INFINITE ); test_comm_success( rvwait != WAIT_FAILED, "wait_for_event.WaitForSingleObject" ); } return (m_events_out != 0); } bool cancelWait() { test_comm_success( SetEvent( owait.o.hEvent ), "cancel_wait.SetEvent" ); return true; } bool didEventOccur( int event ) { return (m_events_out & event) != 0; } void setDTR( bool high ) { test_comm_success( EscapeCommFunction( hComm, (high ? SETDTR : CLRDTR) ), "setDTR.EscapeCommFunction" ); m_dtr = high; } void setRTS( bool high ) { test_comm_success( EscapeCommFunction( hComm, (high ? SETRTS : CLRRTS) ), "setRTS.EscapeCommFunction" ); m_rts = high; } bool isDTR() { return m_dtr; } bool isRTS() { return m_rts; } bool isCTS() { return (get_modem_status() & MS_CTS_ON) != 0; } bool isDSR() { return (get_modem_status() & MS_DSR_ON) != 0; } bool isRI() { return (get_modem_status() & MS_RING_ON) != 0; } bool isCD() { return (get_modem_status() & MS_RLSD_ON) != 0; } void sendBreak( int millis ) { } NativeSerial( const char* portname ): m_events_in(0), m_events_out(0), m_dtr(false), m_rts(false) { hComm = CreateFile( portname, GENERIC_READ | GENERIC_WRITE, 0, // exclusive access NULL, // default security attributes OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL ); test_comm_success( hComm != INVALID_HANDLE_VALUE, "NativeSerialPort.CreateFile" ); setDTR(false); setRTS(false); DWORD errors; test_comm_success( PurgeComm( hComm, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR ), "NativeSerialPort.PurgeComm" ); test_comm_success( ClearCommError( hComm, &errors, NULL ), "NativeSerialPort.ClearCommErrors" ); } ~NativeSerial() { close(); } void close() { CloseHandle( hComm ); SetEvent( oread.o.hEvent ); SetEvent( owrite.o.hEvent ); SetEvent( owait.o.hEvent ); SetEvent( oavail.o.hEvent ); } static std::string getTOSCommMap() { const char* env = getenv( "TOSCOMMMAP" ); return (env == NULL) ? "com1=COM1:com10=\\\\.\\COM10" : env; } }; #include "TOSComm_wrap.cxx" tinyos-tools-1.4.2/tools/tinyos/java/serial/TOSComm.i000066400000000000000000000041751206361226500225330ustar00rootroot00000000000000//$Id: TOSComm.i,v 1.5 2010-06-29 22:07:42 scipio Exp $ /* Copyright (c) 2000-2003 The Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. * - Neither the name of the copyright holder nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */ //@author Cory Sharp %module TOSComm %{ %} %include "arrays_java.i"; %include "std_string.i"; %pragma(java) jniclasscode=%{ static { TOSCommLibraryLoader.load(); } %} %exception { try { $action } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return $null; } } %include "NativeSerial.h" tinyos-tools-1.4.2/tools/tinyos/java/serial/TOSComm_wrap.cxx000066400000000000000000001244621206361226500241400ustar00rootroot00000000000000/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 1.3.21 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- */ #ifdef __cplusplus template class SwigValueWrapper { T *tt; public: SwigValueWrapper() : tt(0) { } SwigValueWrapper(const SwigValueWrapper& rhs) : tt(new T(*rhs.tt)) { } SwigValueWrapper(const T& t) : tt(new T(t)) { } ~SwigValueWrapper() { delete tt; } SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; } operator T&() const { return *tt; } T *operator&() { return tt; } private: SwigValueWrapper& operator=(const SwigValueWrapper& rhs); }; #endif #if defined(__GNUC__) // typedef long long __int64; /*For gcc on Windows */ #endif #include #include #include /* Support for throwing Java exceptions */ typedef enum { SWIG_JavaOutOfMemoryError = 1, SWIG_JavaIOException, SWIG_JavaRuntimeException, SWIG_JavaIndexOutOfBoundsException, SWIG_JavaArithmeticException, SWIG_JavaIllegalArgumentException, SWIG_JavaNullPointerException, SWIG_JavaDirectorPureVirtual, SWIG_JavaUnknownError } SWIG_JavaExceptionCodes; typedef struct { SWIG_JavaExceptionCodes code; const char *java_exception; } SWIG_JavaExceptions_t; static void SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) { jclass excep; static const SWIG_JavaExceptions_t java_exceptions[] = { { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" }, { SWIG_JavaIOException, "java/io/IOException" }, { SWIG_JavaRuntimeException, "java/lang/RuntimeException" }, { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" }, { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" }, { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" }, { SWIG_JavaNullPointerException, "java/lang/NullPointerException" }, { SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" }, { SWIG_JavaUnknownError, "java/lang/UnknownError" }, { (SWIG_JavaExceptionCodes)0, "java/lang/UnknownError" } }; const SWIG_JavaExceptions_t *except_ptr = java_exceptions; while (except_ptr->code != code && except_ptr->code) except_ptr++; jenv->ExceptionClear(); excep = jenv->FindClass(except_ptr->java_exception); if (excep) jenv->ThrowNew(excep, msg); } /* Contract support */ #define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else #if defined(SWIG_NOINCLUDE) || defined(SWIG_NOARRAYS) int SWIG_JavaArrayInBool (JNIEnv *jenv, jboolean **jarr, bool **carr, jbooleanArray input); void SWIG_JavaArrayArgoutBool (JNIEnv *jenv, jboolean *jarr, bool *carr, jbooleanArray input); jbooleanArray SWIG_JavaArrayOutBool (JNIEnv *jenv, bool *result, jsize sz); int SWIG_JavaArrayInSchar (JNIEnv *jenv, jbyte **jarr, signed char **carr, jbyteArray input); void SWIG_JavaArrayArgoutSchar (JNIEnv *jenv, jbyte *jarr, signed char *carr, jbyteArray input); jbyteArray SWIG_JavaArrayOutSchar (JNIEnv *jenv, signed char *result, jsize sz); int SWIG_JavaArrayInUchar (JNIEnv *jenv, jshort **jarr, unsigned char **carr, jshortArray input); void SWIG_JavaArrayArgoutUchar (JNIEnv *jenv, jshort *jarr, unsigned char *carr, jshortArray input); jshortArray SWIG_JavaArrayOutUchar (JNIEnv *jenv, unsigned char *result, jsize sz); int SWIG_JavaArrayInShort (JNIEnv *jenv, jshort **jarr, short **carr, jshortArray input); void SWIG_JavaArrayArgoutShort (JNIEnv *jenv, jshort *jarr, short *carr, jshortArray input); jshortArray SWIG_JavaArrayOutShort (JNIEnv *jenv, short *result, jsize sz); int SWIG_JavaArrayInUshort (JNIEnv *jenv, jint **jarr, unsigned short **carr, jintArray input); void SWIG_JavaArrayArgoutUshort (JNIEnv *jenv, jint *jarr, unsigned short *carr, jintArray input); jintArray SWIG_JavaArrayOutUshort (JNIEnv *jenv, unsigned short *result, jsize sz); int SWIG_JavaArrayInInt (JNIEnv *jenv, jint **jarr, int **carr, jintArray input); void SWIG_JavaArrayArgoutInt (JNIEnv *jenv, jint *jarr, int *carr, jintArray input); jintArray SWIG_JavaArrayOutInt (JNIEnv *jenv, int *result, jsize sz); int SWIG_JavaArrayInUint (JNIEnv *jenv, jlong **jarr, unsigned int **carr, jlongArray input); void SWIG_JavaArrayArgoutUint (JNIEnv *jenv, jlong *jarr, unsigned int *carr, jlongArray input); jlongArray SWIG_JavaArrayOutUint (JNIEnv *jenv, unsigned int *result, jsize sz); int SWIG_JavaArrayInLong (JNIEnv *jenv, jint **jarr, long **carr, jintArray input); void SWIG_JavaArrayArgoutLong (JNIEnv *jenv, jint *jarr, long *carr, jintArray input); jintArray SWIG_JavaArrayOutLong (JNIEnv *jenv, long *result, jsize sz); int SWIG_JavaArrayInUlong (JNIEnv *jenv, jlong **jarr, unsigned long **carr, jlongArray input); void SWIG_JavaArrayArgoutUlong (JNIEnv *jenv, jlong *jarr, unsigned long *carr, jlongArray input); jlongArray SWIG_JavaArrayOutUlong (JNIEnv *jenv, unsigned long *result, jsize sz); int SWIG_JavaArrayInLonglong (JNIEnv *jenv, jlong **jarr, jlong **carr, jlongArray input); void SWIG_JavaArrayArgoutLonglong (JNIEnv *jenv, jlong *jarr, jlong *carr, jlongArray input); jlongArray SWIG_JavaArrayOutLonglong (JNIEnv *jenv, jlong *result, jsize sz); int SWIG_JavaArrayInFloat (JNIEnv *jenv, jfloat **jarr, float **carr, jfloatArray input); void SWIG_JavaArrayArgoutFloat (JNIEnv *jenv, jfloat *jarr, float *carr, jfloatArray input); jfloatArray SWIG_JavaArrayOutFloat (JNIEnv *jenv, float *result, jsize sz); int SWIG_JavaArrayInDouble (JNIEnv *jenv, jdouble **jarr, double **carr, jdoubleArray input); void SWIG_JavaArrayArgoutDouble (JNIEnv *jenv, jdouble *jarr, double *carr, jdoubleArray input); jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize sz); #else /* bool[] support */ int SWIG_JavaArrayInBool (JNIEnv *jenv, jboolean **jarr, bool **carr, jbooleanArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetBooleanArrayElements(input, 0); if (!*jarr) return 0; *carr = new bool[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseBooleanArrayElements(input, jarr, 0); } jbooleanArray SWIG_JavaArrayOutBool (JNIEnv *jenv, bool *result, jsize sz) { jboolean *arr; int i; jbooleanArray jresult = jenv->NewBooleanArray(sz); if (!jresult) return NULL; arr = jenv->GetBooleanArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseBooleanArrayElements(jresult, arr, 0); return jresult; } /* signed char[] support */ int SWIG_JavaArrayInSchar (JNIEnv *jenv, jbyte **jarr, signed char **carr, jbyteArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetByteArrayElements(input, 0); if (!*jarr) return 0; *carr = new signed char[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseByteArrayElements(input, jarr, 0); } jbyteArray SWIG_JavaArrayOutSchar (JNIEnv *jenv, signed char *result, jsize sz) { jbyte *arr; int i; jbyteArray jresult = jenv->NewByteArray(sz); if (!jresult) return NULL; arr = jenv->GetByteArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseByteArrayElements(jresult, arr, 0); return jresult; } /* unsigned char[] support */ int SWIG_JavaArrayInUchar (JNIEnv *jenv, jshort **jarr, unsigned char **carr, jshortArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetShortArrayElements(input, 0); if (!*jarr) return 0; *carr = new unsigned char[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseShortArrayElements(input, jarr, 0); } jshortArray SWIG_JavaArrayOutUchar (JNIEnv *jenv, unsigned char *result, jsize sz) { jshort *arr; int i; jshortArray jresult = jenv->NewShortArray(sz); if (!jresult) return NULL; arr = jenv->GetShortArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseShortArrayElements(jresult, arr, 0); return jresult; } /* short[] support */ int SWIG_JavaArrayInShort (JNIEnv *jenv, jshort **jarr, short **carr, jshortArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetShortArrayElements(input, 0); if (!*jarr) return 0; *carr = new short[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseShortArrayElements(input, jarr, 0); } jshortArray SWIG_JavaArrayOutShort (JNIEnv *jenv, short *result, jsize sz) { jshort *arr; int i; jshortArray jresult = jenv->NewShortArray(sz); if (!jresult) return NULL; arr = jenv->GetShortArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseShortArrayElements(jresult, arr, 0); return jresult; } /* unsigned short[] support */ int SWIG_JavaArrayInUshort (JNIEnv *jenv, jint **jarr, unsigned short **carr, jintArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetIntArrayElements(input, 0); if (!*jarr) return 0; *carr = new unsigned short[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseIntArrayElements(input, jarr, 0); } jintArray SWIG_JavaArrayOutUshort (JNIEnv *jenv, unsigned short *result, jsize sz) { jint *arr; int i; jintArray jresult = jenv->NewIntArray(sz); if (!jresult) return NULL; arr = jenv->GetIntArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseIntArrayElements(jresult, arr, 0); return jresult; } /* int[] support */ int SWIG_JavaArrayInInt (JNIEnv *jenv, jint **jarr, int **carr, jintArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetIntArrayElements(input, 0); if (!*jarr) return 0; *carr = new int[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseIntArrayElements(input, jarr, 0); } jintArray SWIG_JavaArrayOutInt (JNIEnv *jenv, int *result, jsize sz) { jint *arr; int i; jintArray jresult = jenv->NewIntArray(sz); if (!jresult) return NULL; arr = jenv->GetIntArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseIntArrayElements(jresult, arr, 0); return jresult; } /* unsigned int[] support */ int SWIG_JavaArrayInUint (JNIEnv *jenv, jlong **jarr, unsigned int **carr, jlongArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetLongArrayElements(input, 0); if (!*jarr) return 0; *carr = new unsigned int[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseLongArrayElements(input, jarr, 0); } jlongArray SWIG_JavaArrayOutUint (JNIEnv *jenv, unsigned int *result, jsize sz) { jlong *arr; int i; jlongArray jresult = jenv->NewLongArray(sz); if (!jresult) return NULL; arr = jenv->GetLongArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseLongArrayElements(jresult, arr, 0); return jresult; } /* long[] support */ int SWIG_JavaArrayInLong (JNIEnv *jenv, jint **jarr, long **carr, jintArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetIntArrayElements(input, 0); if (!*jarr) return 0; *carr = new long[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseIntArrayElements(input, jarr, 0); } jintArray SWIG_JavaArrayOutLong (JNIEnv *jenv, long *result, jsize sz) { jint *arr; int i; jintArray jresult = jenv->NewIntArray(sz); if (!jresult) return NULL; arr = jenv->GetIntArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseIntArrayElements(jresult, arr, 0); return jresult; } /* unsigned long[] support */ int SWIG_JavaArrayInUlong (JNIEnv *jenv, jlong **jarr, unsigned long **carr, jlongArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetLongArrayElements(input, 0); if (!*jarr) return 0; *carr = new unsigned long[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseLongArrayElements(input, jarr, 0); } jlongArray SWIG_JavaArrayOutUlong (JNIEnv *jenv, unsigned long *result, jsize sz) { jlong *arr; int i; jlongArray jresult = jenv->NewLongArray(sz); if (!jresult) return NULL; arr = jenv->GetLongArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseLongArrayElements(jresult, arr, 0); return jresult; } /* jlong[] support */ int SWIG_JavaArrayInLonglong (JNIEnv *jenv, jlong **jarr, jlong **carr, jlongArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetLongArrayElements(input, 0); if (!*jarr) return 0; *carr = new jlong[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseLongArrayElements(input, jarr, 0); } jlongArray SWIG_JavaArrayOutLonglong (JNIEnv *jenv, jlong *result, jsize sz) { jlong *arr; int i; jlongArray jresult = jenv->NewLongArray(sz); if (!jresult) return NULL; arr = jenv->GetLongArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseLongArrayElements(jresult, arr, 0); return jresult; } /* float[] support */ int SWIG_JavaArrayInFloat (JNIEnv *jenv, jfloat **jarr, float **carr, jfloatArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetFloatArrayElements(input, 0); if (!*jarr) return 0; *carr = new float[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseFloatArrayElements(input, jarr, 0); } jfloatArray SWIG_JavaArrayOutFloat (JNIEnv *jenv, float *result, jsize sz) { jfloat *arr; int i; jfloatArray jresult = jenv->NewFloatArray(sz); if (!jresult) return NULL; arr = jenv->GetFloatArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseFloatArrayElements(jresult, arr, 0); return jresult; } /* double[] support */ int SWIG_JavaArrayInDouble (JNIEnv *jenv, jdouble **jarr, double **carr, jdoubleArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetDoubleArrayElements(input, 0); if (!*jarr) return 0; *carr = new double[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseDoubleArrayElements(input, jarr, 0); } jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize sz) { jdouble *arr; int i; jdoubleArray jresult = jenv->NewDoubleArray(sz); if (!jresult) return NULL; arr = jenv->GetDoubleArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseDoubleArrayElements(jresult, arr, 0); return jresult; } #endif #define SWIG_MemoryError 1 #define SWIG_IOError 2 #define SWIG_RuntimeError 3 #define SWIG_IndexError 4 #define SWIG_TypeError 5 #define SWIG_DivisionByZero 6 #define SWIG_OverflowError 7 #define SWIG_SyntaxError 8 #define SWIG_ValueError 9 #define SWIG_SystemError 10 #define SWIG_UnknownError 99 static void SWIG_JavaException(JNIEnv *jenv, int code, const char *msg) { SWIG_JavaExceptionCodes exception_code = SWIG_JavaUnknownError; switch(code) { case SWIG_MemoryError: exception_code = SWIG_JavaOutOfMemoryError; break; case SWIG_IOError: exception_code = SWIG_JavaIOException; break; case SWIG_SystemError: case SWIG_RuntimeError: exception_code = SWIG_JavaRuntimeException; break; case SWIG_OverflowError: case SWIG_IndexError: exception_code = SWIG_JavaIndexOutOfBoundsException; break; case SWIG_DivisionByZero: exception_code = SWIG_JavaArithmeticException; break; case SWIG_SyntaxError: case SWIG_ValueError: case SWIG_TypeError: exception_code = SWIG_JavaIllegalArgumentException; break; case SWIG_UnknownError: default: exception_code = SWIG_JavaUnknownError; break; } SWIG_JavaThrowException(jenv, exception_code, msg); } #define SWIG_exception(code, msg) { SWIG_JavaException(jenv, code, msg); } #include #ifdef __cplusplus extern "C" { #endif JNIEXPORT void JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1setSerialPortParams(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3, jint jarg4, jboolean jarg5) { NativeSerial *arg1 = (NativeSerial *) 0 ; int arg2 ; int arg3 ; int arg4 ; bool arg5 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; arg2 = (int)jarg2; arg3 = (int)jarg3; arg4 = (int)jarg4; arg5 = jarg5 ? true : false; { try { (arg1)->setSerialPortParams(arg2,arg3,arg4,arg5); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return ; } } } JNIEXPORT jint JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1getBaudRate(JNIEnv *jenv, jclass jcls, jlong jarg1) { jint jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; int result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (int)(arg1)->getBaudRate(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jint)result; return jresult; } JNIEXPORT jint JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1getDataBits(JNIEnv *jenv, jclass jcls, jlong jarg1) { jint jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; int result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (int)(arg1)->getDataBits(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jint)result; return jresult; } JNIEXPORT jint JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1getStopBits(JNIEnv *jenv, jclass jcls, jlong jarg1) { jint jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; int result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (int)(arg1)->getStopBits(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jint)result; return jresult; } JNIEXPORT jboolean JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1getParity(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->getParity(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT void JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1notifyOn(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jboolean jarg3) { NativeSerial *arg1 = (NativeSerial *) 0 ; int arg2 ; bool arg3 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; arg2 = (int)jarg2; arg3 = jarg3 ? true : false; { try { (arg1)->notifyOn(arg2,arg3); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return ; } } } JNIEXPORT jboolean JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1isNotifyOn(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; int arg2 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; arg2 = (int)jarg2; { try { result = (bool)(arg1)->isNotifyOn(arg2); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT jboolean JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1waitForEvent(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->waitForEvent(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT jboolean JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1cancelWait(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->cancelWait(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT jboolean JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1didEventOccur(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; int arg2 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; arg2 = (int)jarg2; { try { result = (bool)(arg1)->didEventOccur(arg2); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT void JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1setDTR(JNIEnv *jenv, jclass jcls, jlong jarg1, jboolean jarg2) { NativeSerial *arg1 = (NativeSerial *) 0 ; bool arg2 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; arg2 = jarg2 ? true : false; { try { (arg1)->setDTR(arg2); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return ; } } } JNIEXPORT void JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1setRTS(JNIEnv *jenv, jclass jcls, jlong jarg1, jboolean jarg2) { NativeSerial *arg1 = (NativeSerial *) 0 ; bool arg2 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; arg2 = jarg2 ? true : false; { try { (arg1)->setRTS(arg2); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return ; } } } JNIEXPORT jboolean JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1isDTR(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->isDTR(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT jboolean JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1isRTS(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->isRTS(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT jboolean JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1isCTS(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->isCTS(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT jboolean JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1isDSR(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->isDSR(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT jboolean JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1isRI(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->isRI(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT jboolean JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1isCD(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->isCD(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT void JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1sendBreak(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { NativeSerial *arg1 = (NativeSerial *) 0 ; int arg2 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; arg2 = (int)jarg2; { try { (arg1)->sendBreak(arg2); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return ; } } } JNIEXPORT jlong JNICALL Java_net_tinyos_comm_TOSCommJNI_new_1NativeSerial(JNIEnv *jenv, jclass jcls, jstring jarg1) { jlong jresult = 0 ; char *arg1 ; NativeSerial *result; (void)jenv; (void)jcls; { arg1 = 0; if (jarg1) { arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); if (!arg1) return 0; } } { try { result = (NativeSerial *)new NativeSerial((char const *)arg1); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } *(NativeSerial **)&jresult = result; { if (arg1) jenv->ReleaseStringUTFChars(jarg1, arg1); } return jresult; } JNIEXPORT void JNICALL Java_net_tinyos_comm_TOSCommJNI_delete_1NativeSerial(JNIEnv *jenv, jclass jcls, jlong jarg1) { NativeSerial *arg1 = (NativeSerial *) 0 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { delete arg1; } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return ; } } } JNIEXPORT void JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1close(JNIEnv *jenv, jclass jcls, jlong jarg1) { NativeSerial *arg1 = (NativeSerial *) 0 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { (arg1)->close(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return ; } } } JNIEXPORT jint JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1available(JNIEnv *jenv, jclass jcls, jlong jarg1) { jint jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; int result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (int)(arg1)->available(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jint)result; return jresult; } JNIEXPORT jint JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1read_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1) { jint jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; int result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (int)(arg1)->read(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jint)result; return jresult; } JNIEXPORT jint JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1read_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jbyteArray jarg2, jint jarg3, jint jarg4) { jint jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; signed char *arg2 ; int arg3 ; int arg4 ; int result; jbyte *jarr2 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; if (!SWIG_JavaArrayInSchar(jenv, &jarr2, &arg2, jarg2)) return 0; arg3 = (int)jarg3; arg4 = (int)jarg4; { try { result = (int)(arg1)->read(arg2,arg3,arg4); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jint)result; SWIG_JavaArrayArgoutSchar(jenv, jarr2, arg2, jarg2); delete [] arg2; return jresult; } JNIEXPORT jint JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1write_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { jint jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; int arg2 ; int result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; arg2 = (int)jarg2; { try { result = (int)(arg1)->write(arg2); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jint)result; return jresult; } JNIEXPORT jint JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1write_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jbyteArray jarg2, jint jarg3, jint jarg4) { jint jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; signed char *arg2 ; int arg3 ; int arg4 ; int result; jbyte *jarr2 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; if (!SWIG_JavaArrayInSchar(jenv, &jarr2, &arg2, jarg2)) return 0; arg3 = (int)jarg3; arg4 = (int)jarg4; { try { result = (int)(arg1)->write((signed char const (*))arg2,arg3,arg4); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jint)result; SWIG_JavaArrayArgoutSchar(jenv, jarr2, arg2, jarg2); delete [] arg2; return jresult; } JNIEXPORT jstring JNICALL Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1getTOSCommMap(JNIEnv *jenv, jclass jcls) { jstring jresult = 0 ; std::string result; (void)jenv; (void)jcls; { try { result = NativeSerial::getTOSCommMap(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = jenv->NewStringUTF((&result)->c_str()); return jresult; } #ifdef __cplusplus } #endif tinyos-tools-1.4.2/tools/tinyos/java/serial/TOSComm_wrap_win32.cxx000066400000000000000000001245161206361226500251620ustar00rootroot00000000000000/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 1.3.21 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- */ #ifdef __cplusplus template class SwigValueWrapper { T *tt; public: SwigValueWrapper() : tt(0) { } SwigValueWrapper(const SwigValueWrapper& rhs) : tt(new T(*rhs.tt)) { } SwigValueWrapper(const T& t) : tt(new T(t)) { } ~SwigValueWrapper() { delete tt; } SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; } operator T&() const { return *tt; } T *operator&() { return tt; } private: SwigValueWrapper& operator=(const SwigValueWrapper& rhs); }; #endif #if defined(__GNUC__) // typedef long long __int64; /*For gcc on Windows */ #endif #include #include #include /* Support for throwing Java exceptions */ typedef enum { SWIG_JavaOutOfMemoryError = 1, SWIG_JavaIOException, SWIG_JavaRuntimeException, SWIG_JavaIndexOutOfBoundsException, SWIG_JavaArithmeticException, SWIG_JavaIllegalArgumentException, SWIG_JavaNullPointerException, SWIG_JavaDirectorPureVirtual, SWIG_JavaUnknownError } SWIG_JavaExceptionCodes; typedef struct { SWIG_JavaExceptionCodes code; const char *java_exception; } SWIG_JavaExceptions_t; static void SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) { jclass excep; static const SWIG_JavaExceptions_t java_exceptions[] = { { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" }, { SWIG_JavaIOException, "java/io/IOException" }, { SWIG_JavaRuntimeException, "java/lang/RuntimeException" }, { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" }, { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" }, { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" }, { SWIG_JavaNullPointerException, "java/lang/NullPointerException" }, { SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" }, { SWIG_JavaUnknownError, "java/lang/UnknownError" }, { (SWIG_JavaExceptionCodes)0, "java/lang/UnknownError" } }; const SWIG_JavaExceptions_t *except_ptr = java_exceptions; while (except_ptr->code != code && except_ptr->code) except_ptr++; jenv->ExceptionClear(); excep = jenv->FindClass(except_ptr->java_exception); if (excep) jenv->ThrowNew(excep, msg); } /* Contract support */ #define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else #if defined(SWIG_NOINCLUDE) || defined(SWIG_NOARRAYS) int SWIG_JavaArrayInBool (JNIEnv *jenv, jboolean **jarr, bool **carr, jbooleanArray input); void SWIG_JavaArrayArgoutBool (JNIEnv *jenv, jboolean *jarr, bool *carr, jbooleanArray input); jbooleanArray SWIG_JavaArrayOutBool (JNIEnv *jenv, bool *result, jsize sz); int SWIG_JavaArrayInSchar (JNIEnv *jenv, jbyte **jarr, signed char **carr, jbyteArray input); void SWIG_JavaArrayArgoutSchar (JNIEnv *jenv, jbyte *jarr, signed char *carr, jbyteArray input); jbyteArray SWIG_JavaArrayOutSchar (JNIEnv *jenv, signed char *result, jsize sz); int SWIG_JavaArrayInUchar (JNIEnv *jenv, jshort **jarr, unsigned char **carr, jshortArray input); void SWIG_JavaArrayArgoutUchar (JNIEnv *jenv, jshort *jarr, unsigned char *carr, jshortArray input); jshortArray SWIG_JavaArrayOutUchar (JNIEnv *jenv, unsigned char *result, jsize sz); int SWIG_JavaArrayInShort (JNIEnv *jenv, jshort **jarr, short **carr, jshortArray input); void SWIG_JavaArrayArgoutShort (JNIEnv *jenv, jshort *jarr, short *carr, jshortArray input); jshortArray SWIG_JavaArrayOutShort (JNIEnv *jenv, short *result, jsize sz); int SWIG_JavaArrayInUshort (JNIEnv *jenv, jint **jarr, unsigned short **carr, jintArray input); void SWIG_JavaArrayArgoutUshort (JNIEnv *jenv, jint *jarr, unsigned short *carr, jintArray input); jintArray SWIG_JavaArrayOutUshort (JNIEnv *jenv, unsigned short *result, jsize sz); int SWIG_JavaArrayInInt (JNIEnv *jenv, jint **jarr, int **carr, jintArray input); void SWIG_JavaArrayArgoutInt (JNIEnv *jenv, jint *jarr, int *carr, jintArray input); jintArray SWIG_JavaArrayOutInt (JNIEnv *jenv, int *result, jsize sz); int SWIG_JavaArrayInUint (JNIEnv *jenv, jlong **jarr, unsigned int **carr, jlongArray input); void SWIG_JavaArrayArgoutUint (JNIEnv *jenv, jlong *jarr, unsigned int *carr, jlongArray input); jlongArray SWIG_JavaArrayOutUint (JNIEnv *jenv, unsigned int *result, jsize sz); int SWIG_JavaArrayInLong (JNIEnv *jenv, jint **jarr, long **carr, jintArray input); void SWIG_JavaArrayArgoutLong (JNIEnv *jenv, jint *jarr, long *carr, jintArray input); jintArray SWIG_JavaArrayOutLong (JNIEnv *jenv, long *result, jsize sz); int SWIG_JavaArrayInUlong (JNIEnv *jenv, jlong **jarr, unsigned long **carr, jlongArray input); void SWIG_JavaArrayArgoutUlong (JNIEnv *jenv, jlong *jarr, unsigned long *carr, jlongArray input); jlongArray SWIG_JavaArrayOutUlong (JNIEnv *jenv, unsigned long *result, jsize sz); int SWIG_JavaArrayInLonglong (JNIEnv *jenv, jlong **jarr, jlong **carr, jlongArray input); void SWIG_JavaArrayArgoutLonglong (JNIEnv *jenv, jlong *jarr, jlong *carr, jlongArray input); jlongArray SWIG_JavaArrayOutLonglong (JNIEnv *jenv, jlong *result, jsize sz); int SWIG_JavaArrayInFloat (JNIEnv *jenv, jfloat **jarr, float **carr, jfloatArray input); void SWIG_JavaArrayArgoutFloat (JNIEnv *jenv, jfloat *jarr, float *carr, jfloatArray input); jfloatArray SWIG_JavaArrayOutFloat (JNIEnv *jenv, float *result, jsize sz); int SWIG_JavaArrayInDouble (JNIEnv *jenv, jdouble **jarr, double **carr, jdoubleArray input); void SWIG_JavaArrayArgoutDouble (JNIEnv *jenv, jdouble *jarr, double *carr, jdoubleArray input); jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize sz); #else /* bool[] support */ int SWIG_JavaArrayInBool (JNIEnv *jenv, jboolean **jarr, bool **carr, jbooleanArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetBooleanArrayElements(input, 0); if (!*jarr) return 0; *carr = new bool[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseBooleanArrayElements(input, jarr, 0); } jbooleanArray SWIG_JavaArrayOutBool (JNIEnv *jenv, bool *result, jsize sz) { jboolean *arr; int i; jbooleanArray jresult = jenv->NewBooleanArray(sz); if (!jresult) return NULL; arr = jenv->GetBooleanArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseBooleanArrayElements(jresult, arr, 0); return jresult; } /* signed char[] support */ int SWIG_JavaArrayInSchar (JNIEnv *jenv, jbyte **jarr, signed char **carr, jbyteArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetByteArrayElements(input, 0); if (!*jarr) return 0; *carr = new signed char[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseByteArrayElements(input, jarr, 0); } jbyteArray SWIG_JavaArrayOutSchar (JNIEnv *jenv, signed char *result, jsize sz) { jbyte *arr; int i; jbyteArray jresult = jenv->NewByteArray(sz); if (!jresult) return NULL; arr = jenv->GetByteArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseByteArrayElements(jresult, arr, 0); return jresult; } /* unsigned char[] support */ int SWIG_JavaArrayInUchar (JNIEnv *jenv, jshort **jarr, unsigned char **carr, jshortArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetShortArrayElements(input, 0); if (!*jarr) return 0; *carr = new unsigned char[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseShortArrayElements(input, jarr, 0); } jshortArray SWIG_JavaArrayOutUchar (JNIEnv *jenv, unsigned char *result, jsize sz) { jshort *arr; int i; jshortArray jresult = jenv->NewShortArray(sz); if (!jresult) return NULL; arr = jenv->GetShortArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseShortArrayElements(jresult, arr, 0); return jresult; } /* short[] support */ int SWIG_JavaArrayInShort (JNIEnv *jenv, jshort **jarr, short **carr, jshortArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetShortArrayElements(input, 0); if (!*jarr) return 0; *carr = new short[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseShortArrayElements(input, jarr, 0); } jshortArray SWIG_JavaArrayOutShort (JNIEnv *jenv, short *result, jsize sz) { jshort *arr; int i; jshortArray jresult = jenv->NewShortArray(sz); if (!jresult) return NULL; arr = jenv->GetShortArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseShortArrayElements(jresult, arr, 0); return jresult; } /* unsigned short[] support */ int SWIG_JavaArrayInUshort (JNIEnv *jenv, jint **jarr, unsigned short **carr, jintArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetIntArrayElements(input, 0); if (!*jarr) return 0; *carr = new unsigned short[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseIntArrayElements(input, jarr, 0); } jintArray SWIG_JavaArrayOutUshort (JNIEnv *jenv, unsigned short *result, jsize sz) { jint *arr; int i; jintArray jresult = jenv->NewIntArray(sz); if (!jresult) return NULL; arr = jenv->GetIntArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseIntArrayElements(jresult, arr, 0); return jresult; } /* int[] support */ int SWIG_JavaArrayInInt (JNIEnv *jenv, jint **jarr, int **carr, jintArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetIntArrayElements(input, 0); if (!*jarr) return 0; *carr = new int[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseIntArrayElements(input, jarr, 0); } jintArray SWIG_JavaArrayOutInt (JNIEnv *jenv, int *result, jsize sz) { jint *arr; int i; jintArray jresult = jenv->NewIntArray(sz); if (!jresult) return NULL; arr = jenv->GetIntArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseIntArrayElements(jresult, arr, 0); return jresult; } /* unsigned int[] support */ int SWIG_JavaArrayInUint (JNIEnv *jenv, jlong **jarr, unsigned int **carr, jlongArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetLongArrayElements(input, 0); if (!*jarr) return 0; *carr = new unsigned int[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseLongArrayElements(input, jarr, 0); } jlongArray SWIG_JavaArrayOutUint (JNIEnv *jenv, unsigned int *result, jsize sz) { jlong *arr; int i; jlongArray jresult = jenv->NewLongArray(sz); if (!jresult) return NULL; arr = jenv->GetLongArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseLongArrayElements(jresult, arr, 0); return jresult; } /* long[] support */ int SWIG_JavaArrayInLong (JNIEnv *jenv, jint **jarr, long **carr, jintArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetIntArrayElements(input, 0); if (!*jarr) return 0; *carr = new long[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseIntArrayElements(input, jarr, 0); } jintArray SWIG_JavaArrayOutLong (JNIEnv *jenv, long *result, jsize sz) { jint *arr; int i; jintArray jresult = jenv->NewIntArray(sz); if (!jresult) return NULL; arr = jenv->GetIntArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseIntArrayElements(jresult, arr, 0); return jresult; } /* unsigned long[] support */ int SWIG_JavaArrayInUlong (JNIEnv *jenv, jlong **jarr, unsigned long **carr, jlongArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetLongArrayElements(input, 0); if (!*jarr) return 0; *carr = new unsigned long[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseLongArrayElements(input, jarr, 0); } jlongArray SWIG_JavaArrayOutUlong (JNIEnv *jenv, unsigned long *result, jsize sz) { jlong *arr; int i; jlongArray jresult = jenv->NewLongArray(sz); if (!jresult) return NULL; arr = jenv->GetLongArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseLongArrayElements(jresult, arr, 0); return jresult; } /* jlong[] support */ int SWIG_JavaArrayInLonglong (JNIEnv *jenv, jlong **jarr, jlong **carr, jlongArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetLongArrayElements(input, 0); if (!*jarr) return 0; *carr = new jlong[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseLongArrayElements(input, jarr, 0); } jlongArray SWIG_JavaArrayOutLonglong (JNIEnv *jenv, jlong *result, jsize sz) { jlong *arr; int i; jlongArray jresult = jenv->NewLongArray(sz); if (!jresult) return NULL; arr = jenv->GetLongArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseLongArrayElements(jresult, arr, 0); return jresult; } /* float[] support */ int SWIG_JavaArrayInFloat (JNIEnv *jenv, jfloat **jarr, float **carr, jfloatArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetFloatArrayElements(input, 0); if (!*jarr) return 0; *carr = new float[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseFloatArrayElements(input, jarr, 0); } jfloatArray SWIG_JavaArrayOutFloat (JNIEnv *jenv, float *result, jsize sz) { jfloat *arr; int i; jfloatArray jresult = jenv->NewFloatArray(sz); if (!jresult) return NULL; arr = jenv->GetFloatArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseFloatArrayElements(jresult, arr, 0); return jresult; } /* double[] support */ int SWIG_JavaArrayInDouble (JNIEnv *jenv, jdouble **jarr, double **carr, jdoubleArray input) { int i; jsize sz; if (!input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); return 0; } sz = jenv->GetArrayLength(input); *jarr = jenv->GetDoubleArrayElements(input, 0); if (!*jarr) return 0; *carr = new double[sz]; if (!*carr) { SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); return 0; } for (i=0; iGetArrayLength(input); for (i=0; iReleaseDoubleArrayElements(input, jarr, 0); } jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize sz) { jdouble *arr; int i; jdoubleArray jresult = jenv->NewDoubleArray(sz); if (!jresult) return NULL; arr = jenv->GetDoubleArrayElements(jresult, 0); if (!arr) return NULL; for (i=0; iReleaseDoubleArrayElements(jresult, arr, 0); return jresult; } #endif #define SWIG_MemoryError 1 #define SWIG_IOError 2 #define SWIG_RuntimeError 3 #define SWIG_IndexError 4 #define SWIG_TypeError 5 #define SWIG_DivisionByZero 6 #define SWIG_OverflowError 7 #define SWIG_SyntaxError 8 #define SWIG_ValueError 9 #define SWIG_SystemError 10 #define SWIG_UnknownError 99 static void SWIG_JavaException(JNIEnv *jenv, int code, const char *msg) { SWIG_JavaExceptionCodes exception_code = SWIG_JavaUnknownError; switch(code) { case SWIG_MemoryError: exception_code = SWIG_JavaOutOfMemoryError; break; case SWIG_IOError: exception_code = SWIG_JavaIOException; break; case SWIG_SystemError: case SWIG_RuntimeError: exception_code = SWIG_JavaRuntimeException; break; case SWIG_OverflowError: case SWIG_IndexError: exception_code = SWIG_JavaIndexOutOfBoundsException; break; case SWIG_DivisionByZero: exception_code = SWIG_JavaArithmeticException; break; case SWIG_SyntaxError: case SWIG_ValueError: case SWIG_TypeError: exception_code = SWIG_JavaIllegalArgumentException; break; case SWIG_UnknownError: default: exception_code = SWIG_JavaUnknownError; break; } SWIG_JavaThrowException(jenv, exception_code, msg); } #define SWIG_exception(code, msg) { SWIG_JavaException(jenv, code, msg); } #include #ifdef __cplusplus extern "C" { #endif JNIEXPORT void JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1setSerialPortParams(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3, jint jarg4, jboolean jarg5) { NativeSerial *arg1 = (NativeSerial *) 0 ; int arg2 ; int arg3 ; int arg4 ; bool arg5 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; arg2 = (int)jarg2; arg3 = (int)jarg3; arg4 = (int)jarg4; arg5 = jarg5 ? true : false; { try { (arg1)->setSerialPortParams(arg2,arg3,arg4,arg5); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return ; } } } JNIEXPORT jint JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1getBaudRate(JNIEnv *jenv, jclass jcls, jlong jarg1) { jint jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; int result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (int)(arg1)->getBaudRate(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jint)result; return jresult; } JNIEXPORT jint JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1getDataBits(JNIEnv *jenv, jclass jcls, jlong jarg1) { jint jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; int result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (int)(arg1)->getDataBits(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jint)result; return jresult; } JNIEXPORT jint JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1getStopBits(JNIEnv *jenv, jclass jcls, jlong jarg1) { jint jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; int result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (int)(arg1)->getStopBits(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jint)result; return jresult; } JNIEXPORT jboolean JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1getParity(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->getParity(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT void JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1notifyOn(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jboolean jarg3) { NativeSerial *arg1 = (NativeSerial *) 0 ; int arg2 ; bool arg3 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; arg2 = (int)jarg2; arg3 = jarg3 ? true : false; { try { (arg1)->notifyOn(arg2,arg3); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return ; } } } JNIEXPORT jboolean JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1isNotifyOn(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; int arg2 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; arg2 = (int)jarg2; { try { result = (bool)(arg1)->isNotifyOn(arg2); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT jboolean JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1waitForEvent(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->waitForEvent(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT jboolean JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1cancelWait(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->cancelWait(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT jboolean JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1didEventOccur(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; int arg2 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; arg2 = (int)jarg2; { try { result = (bool)(arg1)->didEventOccur(arg2); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT void JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1setDTR(JNIEnv *jenv, jclass jcls, jlong jarg1, jboolean jarg2) { NativeSerial *arg1 = (NativeSerial *) 0 ; bool arg2 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; arg2 = jarg2 ? true : false; { try { (arg1)->setDTR(arg2); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return ; } } } JNIEXPORT void JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1setRTS(JNIEnv *jenv, jclass jcls, jlong jarg1, jboolean jarg2) { NativeSerial *arg1 = (NativeSerial *) 0 ; bool arg2 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; arg2 = jarg2 ? true : false; { try { (arg1)->setRTS(arg2); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return ; } } } JNIEXPORT jboolean JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1isDTR(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->isDTR(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT jboolean JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1isRTS(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->isRTS(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT jboolean JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1isCTS(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->isCTS(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT jboolean JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1isDSR(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->isDSR(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT jboolean JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1isRI(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->isRI(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT jboolean JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1isCD(JNIEnv *jenv, jclass jcls, jlong jarg1) { jboolean jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; bool result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (bool)(arg1)->isCD(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jboolean)result; return jresult; } JNIEXPORT void JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1sendBreak(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { NativeSerial *arg1 = (NativeSerial *) 0 ; int arg2 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; arg2 = (int)jarg2; { try { (arg1)->sendBreak(arg2); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return ; } } } JNIEXPORT jlong JNICALL _Java_net_tinyos_comm_TOSCommJNI_new_1NativeSerial(JNIEnv *jenv, jclass jcls, jstring jarg1) { jlong jresult = 0 ; char *arg1 ; NativeSerial *result; (void)jenv; (void)jcls; { arg1 = 0; if (jarg1) { arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); if (!arg1) return 0; } } { try { result = (NativeSerial *)new NativeSerial((char const *)arg1); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } *(NativeSerial **)&jresult = result; { if (arg1) jenv->ReleaseStringUTFChars(jarg1, arg1); } return jresult; } JNIEXPORT void JNICALL _Java_net_tinyos_comm_TOSCommJNI_delete_1NativeSerial(JNIEnv *jenv, jclass jcls, jlong jarg1) { NativeSerial *arg1 = (NativeSerial *) 0 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { delete arg1; } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return ; } } } JNIEXPORT void JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1close(JNIEnv *jenv, jclass jcls, jlong jarg1) { NativeSerial *arg1 = (NativeSerial *) 0 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { (arg1)->close(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return ; } } } JNIEXPORT jint JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1available(JNIEnv *jenv, jclass jcls, jlong jarg1) { jint jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; int result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (int)(arg1)->available(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jint)result; return jresult; } JNIEXPORT jint JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1read_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1) { jint jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; int result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; { try { result = (int)(arg1)->read(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jint)result; return jresult; } JNIEXPORT jint JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1read_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jbyteArray jarg2, jint jarg3, jint jarg4) { jint jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; signed char *arg2 ; int arg3 ; int arg4 ; int result; jbyte *jarr2 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; if (!SWIG_JavaArrayInSchar(jenv, &jarr2, &arg2, jarg2)) return 0; arg3 = (int)jarg3; arg4 = (int)jarg4; { try { result = (int)(arg1)->read(arg2,arg3,arg4); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jint)result; SWIG_JavaArrayArgoutSchar(jenv, jarr2, arg2, jarg2); delete [] arg2; return jresult; } JNIEXPORT jint JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1write_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { jint jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; int arg2 ; int result; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; arg2 = (int)jarg2; { try { result = (int)(arg1)->write(arg2); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jint)result; return jresult; } JNIEXPORT jint JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1write_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jbyteArray jarg2, jint jarg3, jint jarg4) { jint jresult = 0 ; NativeSerial *arg1 = (NativeSerial *) 0 ; signed char *arg2 ; int arg3 ; int arg4 ; int result; jbyte *jarr2 ; (void)jenv; (void)jcls; arg1 = *(NativeSerial **)&jarg1; if (!SWIG_JavaArrayInSchar(jenv, &jarr2, &arg2, jarg2)) return 0; arg3 = (int)jarg3; arg4 = (int)jarg4; { try { result = (int)(arg1)->write((signed char const (*))arg2,arg3,arg4); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = (jint)result; SWIG_JavaArrayArgoutSchar(jenv, jarr2, arg2, jarg2); delete [] arg2; return jresult; } JNIEXPORT jstring JNICALL _Java_net_tinyos_comm_TOSCommJNI_NativeSerial_1getTOSCommMap(JNIEnv *jenv, jclass jcls) { jstring jresult = 0 ; std::string result; (void)jenv; (void)jcls; { try { result = NativeSerial::getTOSCommMap(); } catch (comm_port_error &e) { jclass clazz = jenv->FindClass("java/lang/Exception"); std::string s = "TOSComm JNI library runtime error: "; s += + e.what(); jenv->ThrowNew( clazz, s.c_str() ); return 0; } } jresult = jenv->NewStringUTF((&result)->c_str()); return jresult; } #ifdef __cplusplus } #endif tinyos-tools-1.4.2/tools/tinyos/java/serial/reswig000077500000000000000000000003701206361226500223170ustar00rootroot00000000000000#!/bin/sh swig -java -package net.tinyos.comm -c++ TOSComm.i perl -pe 's{^}{//} if /For gcc on Windows/; s/\b(JNICALL) (Java_)/$1 _$2/' TOSComm_wrap.cxx >TOSComm_wrap_win32.cxx rm TOSComm.java mv *.java ../../../../support/sdk/java/net/tinyos/comm tinyos-tools-1.4.2/tools/tinyos/misc/000077500000000000000000000000001206361226500176245ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/tinyos/misc/Makefile.am000066400000000000000000000017521206361226500216650ustar00rootroot00000000000000AUTOMAKE_OPTIONS = foreign dist_man_MANS = tos-check-env.1 \ tos-ident-flags.1 \ tos-install-jni.1 \ tos-locate-jre.1 \ tos-mote-key.1 \ tos-mviz.1 \ tos-serial-configure.1 \ tos-serial-debug.1 \ tos-set-symbols.1 \ tos-storage-at45db.1 \ tos-storage-stm25p.1 \ tos-storage-pxa27xp30.1 \ tos-write-image.1 \ tos-build-deluge-image.1 \ tos-deluge.1 bin_SCRIPTS = tos-ident-flags \ tos-install-jni \ tos-locate-jre \ tos-mote-key \ tos-mviz \ tos-serial-configure \ tos-set-symbols \ tos-write-buildinfo \ tos-write-image \ tos-check-env \ tos-storage-stm25p \ tos-storage-at45db \ tos-storage-pxa27xp30 \ tos-build-deluge-image \ tos-deluge \ tos-dump.py bin_PROGRAMS = tos-serial-debug tinyos-tools-1.4.2/tools/tinyos/misc/tos-build-deluge-image.1000066400000000000000000000004211206361226500241300ustar00rootroot00000000000000.TH tos-build-deluge-image 1 "Jul 16, 2007" .LO 1 .SH NAME tos-build-deluge-image \- internal tool for Deluge T2 .SH DESCRIPTION \fBtos-build-deluge-image\fR is used by \fBtos-deluge\fR to construct the binary image needed by tosboot. .SH "SEE ALSO" \fItos-deluge\fR(1)tinyos-tools-1.4.2/tools/tinyos/misc/tos-build-deluge-image.in000077500000000000000000000146461206361226500244170ustar00rootroot00000000000000#!@pathpython@ # Copyright (c) 2007 Johns Hopkins University. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # - Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # - Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the # distribution. # - Neither the name of the copyright holders nor the names of # its contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL # THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # OF THE POSSIBILITY OF SUCH DAMAGE. # @author Razvan Musaloiu-E. # @author Chieh-Jan Mike Liang import sys, struct, operator from xml.dom.minidom import parse DELUGE_PKTS_PER_PAGE = 48 DELUGE_PKT_PAYLOAD_SIZE = 23 DELUGE_BYTES_PER_PAGE = DELUGE_PKTS_PER_PAGE * DELUGE_PKT_PAYLOAD_SIZE DELUGE_MAX_PAGES = 128 DELUGE_IDENT_SIZE = 128 def sencode(s, dim): s = [ord(c) for c in s] if len(s) > dim: return s[:dim] return s + [0] * (dim - len(s)) # Encode to big endian def encode(val, dim): output = [] for i in range(dim): output.append(val & 0xFF) val = val >> 8 output.reverse() return output def int2byte(v): return "".join([struct.pack("B", i) for i in v]) def crc16(data): crc = 0 for b in data: crc = crc ^ (b << 8) for i in range(0, 8): if crc & 0x8000 == 0x8000: crc = (crc << 1) ^ 0x1021 else: crc = crc << 1 crc = crc & 0xffff return crc def pages(data): l = len(data) - 2*DELUGE_MAX_PAGES if l % DELUGE_BYTES_PER_PAGE != 0: sys.stderr.write("ERROR: Bug in padding!") sys.exit() return l / DELUGE_BYTES_PER_PAGE def align(data): mod = len(data) % DELUGE_BYTES_PER_PAGE if mod == 0: return data return data + [0] * (DELUGE_BYTES_PER_PAGE - mod) def deluge_ident(data): tmp = encode(ident['uidhash'], 4) + \ encode(ident['size'], 4) + \ [pages(data), 0] crc = crc16(tmp) tmp += encode(crc, 2) + \ sencode(ident['appname'], 16) + \ sencode(ident['username'], 16) + \ sencode(ident['hostname'], 16) + \ sencode(ident['platform'], 16) + \ encode(ident['timestamp'], 4) + \ encode(ident['userhash'], 4) return tmp + [0] * (DELUGE_IDENT_SIZE - len(tmp)) def deluge_crc(data): crc = [0] * DELUGE_MAX_PAGES j = 0 sys.stderr.write("CRCs:\n ") for i in range(0, len(data)-1, DELUGE_BYTES_PER_PAGE): crc[j] = crc16(data[i:i+DELUGE_BYTES_PER_PAGE]) sys.stderr.write("0x%04X " % (crc[j])) if (j + 1) % 7 == 0: sys.stderr.write("\n ") j += 1 sys.stderr.write("\n") return reduce(operator.add, [encode(i, 2) for i in crc]) + data for i in range(len(sys.argv)): if sys.argv[i] == '-i': img_num = int(sys.argv[i+1]) dom = parse(sys.argv[-1]) ident = {} ident_list = [(n.localName, n.firstChild.nodeValue) for n in dom.getElementsByTagName('ident')[0].childNodes if n.localName != None] for (k, v) in ident_list: ident[k] = v for p in ['timestamp', 'userhash', 'uidhash']: ident[p] = int(ident[p][:-1], 16) error = "ERROR: getting the image from the XML file failed." try: image_element = dom.getElementsByTagName('image')[0] if image_element.getAttribute('format') != 'ihex': error = "ERROR: image format is %s instead of ihex" % image_element.getAttribute('format') sys.exit() image = image_element.firstChild.nodeValue except: sys.stderr.write(error + '\n') sys.exit() all = [] section = [] end_addr = None offset = 0 for line in image.split(): #print "DEBUG:", line length = int(line[1:3], 16) addr = int(line[3:7], 16) + offset rectype = int(line[7:9], 16) data = [] if len(line) > 11: data = [int(line[i:i+2], 16) for i in range(9, len(line)-2, 2)] crc = int(line[-2:], 16) if rectype in [0x00, 0x03]: if not end_addr: end_addr = addr start_addr = addr if end_addr != addr: all.append((start_addr, section)) if rectype == 0x03: # This last record updates the first 4 bytes which # holds some low level configuration. They are the # same all the time so I guess that's why they are # skipped. break section = [] start_addr = addr section += data end_addr = addr + length elif rectype == 0x02: offset = int(line[9:9+4], 16) << 4 elif rectype == 0x01: all.append((start_addr, section)) section = [] start_addr = addr sys.stderr.write('Ihex read complete:\n') sys.stderr.write(' ' + '\n '.join(["%5d bytes starting at 0x%X" % (len(l), a) for (a, l) in all])) sys.stderr.write('\n') sys.stderr.write(' %d bytes in %d sections\n' % (reduce(operator.add, [len(l) for (_, l) in all]), len(all))) # Usually, there are two sections: one for the code and one for the # interrupt vector. all_data = [] for (addr, data) in all: all_data += encode(addr, 4) + \ encode(len(data), 4) + \ data all_data += encode(0, 4) + encode(0, 4) # Add the marker for the end of an image padding = [0] * (DELUGE_BYTES_PER_PAGE - len(all_data) % DELUGE_BYTES_PER_PAGE) if len(padding) < DELUGE_BYTES_PER_PAGE: all_data += padding all_data = deluge_crc(all_data) ident['size'] = DELUGE_IDENT_SIZE + len(all_data) sys.stdout.write(int2byte(deluge_ident(all_data)) + int2byte(all_data)) tinyos-tools-1.4.2/tools/tinyos/misc/tos-check-env.1000066400000000000000000000020121206361226500223470ustar00rootroot00000000000000.TH tos-check-env 1 "Feb 3, 2006" .LO 1 .SH NAME tos-check-env - Check that your environment is properly configured for TinyOS development .SH SYNOPSIS \fBtos-check-env\fR [\fB-avr\fR] [\fB-msp\fR] .SH DESCRIPTION \fBtos-check-env\fR checks that your environment is properly configured for TinyOS development. The script checks for the existence of compilers, java, environment variables, graphics tools for nesdoc, and more, and then check that the versions and settings are adequate for TinyOS development. Information is printed to STDOUT for each check as the checks are made. After \fBtos-check-env\fR checks the environment, any descrepances found will be printed to STDOUT along with hints on how to fix the descrepencies. \fBtos-check-env\fR takes an optional argument that specifies a specific compiler chain (avr or msp) to check. \fB-avr\fR will check for only the avr toolchain and exclude msp checks; \fB-msp\fR will check for only the msp toolchain and exclude avr checks. tinyos-tools-1.4.2/tools/tinyos/misc/tos-check-env.in000077500000000000000000000344561206361226500226410ustar00rootroot00000000000000#!@pathperl@ -w # # $Id: tos-check-env,v 1.5 2008-02-14 20:31:21 regehr Exp $ # sub which { my ($cmd, $found, $warning); $cmd = $_[0]; $pw = $_[1]; # do we print a warning or not? open WHICH, "which $cmd 2>&1 |" or die "could not which $cmd: something is very wrong"; while () { if (/which: no $cmd/ || /^no $cmd/ || /^$cmd: Command not found/) { if ($pw) { $warning = "--> WARNING: No $cmd in current path.\n"; print "\n$warning"; $errorstr .= "$warning"; $errors = 1; } $found = 0; } else { print "\t$_"; $found = 1; } } close WHICH; return $found; } sub is_windows() { return 1 if (grep { /cygwin/i } `uname`); return 0; } sub chk_uisp() { my $found; my $version = "20050519tinyos"; my $versionok = 0; print "uisp:\n"; $found = which("uisp", 1); if ($found) { open UISP, "uisp --version 2>&1 |" or die "could not execute uisp --version: is it in your PATH?"; while () { if (/version/) { print "\t$_"; $versionok = 1 if /20050519tinyos/; } } close UISP; if (!$versionok) { $warning = "--> WARNING: The uisp version found by $program is not $version. " . "Please update your uisp version. The source for uisp version $version " . "can be found in the tinyos-tools 1.2 rpm.\n"; print "\n$warning"; $errorstr .= $warning; $errors = 1; } } else { $warning = "--> WARNING: $program couldn't find the uisp program. Uisp is used to " . "program the motes. Please install uisp version $version which can be found " . " in the tinyos-tools 1.2 rpm.\n"; print "\n$warning"; $errorstr .= $warning; $errors = 1; } print "\n"; } sub chk_cygwin() { my $system; return if !is_windows(); print "Cygwin:\n"; open CYGCHECK, "cygcheck -s 2>&1 |" or die "could not execute cygcheck -s"; while () { print "\t$_";; } print "\n"; } # # Look for the phrase 'version 1.4' or 'version 1.5' in the first line # sub chk_java() { my $found; my $versionok = 0; print "java:\n"; $found = which("java", 1); if ($found) { open JAVA, "java -version 2>&1 |" or die "could not execute java -version: is it in your PATH?\n"; while () { if ($_ =~ /version \"1\.[45]/) { print "\t$_"; $versionok = 1; } } close JAVA; if (!$versionok) { $warning = "--> WARNING: The JAVA version found first by $program may not be version 1.4 or version 1.5" . "one of which is required by TOS. Please " . "ensure that the located Java version is 1.4 or 1.5\n"; if (is_windows()) { $warning .= "Depending on your PATH environment variable, there is often another " . " version of java.exe in c:\\windows\\system32 that is " . "\"seen\" first. Check that this is version 1.4 or 1.5 or reconfigure your PATH " . "environment variable if this is the case.\n"; } print "\n$warning"; $errorstr .= $warning; $errors = 1; } } else { $errors = 1; } print "\n"; }; sub chk_perl() { my $found; print "perl:\n"; $found = which("perl", 1); if ($found) { print "\tVersion: "; open PERL, "perl --version 2>&1 |" or die "could not execute perl --version: is it in your PATH?\n"; while () { print $1 if /(v[\d|\.]+.*$)/; } close PERL; } else { $errors = 1; } print "\n\n"; }; sub chk_lex { my $found; print "flex:\n"; which("flex", 1); print "\n"; } sub chk_yacc { my $found; print "bison:\n"; which("bison", 1); print "\n"; } sub chk_nesc { my $found; my $nescversion = ">=1.2.4"; print "nesc:\n"; $found = which("nescc", 1); if ($found ne "") { print "\tVersion: "; open NESC, "nescc --version 2>&1 |" or die "could not execute nescc --version: is it in your PATH?\n"; while () { if (/nescc:/) { print $_; $versionok = 1 if (/1\.2/ || /1\.3/); } elsif (/Unknown target /) { $warning = "--> WARNING: nescc (nesc) was found, but the version could " . "not be verified. Verify that the ncc version that you have is $nescversion " . "by running nescc --version. If you get an error regarding platforms, " . "please see the TinyOS FAQ for help: www.tinyos.net/faq.html\n"; print "\n$warning"; $errorstr .= $warning; $errors = 1; } } close NESC; if (!$versionok) { $warning = "--> WARNING: The nescc found by $program is not $nescversion. " . "Please update your nesc version to $nescversion.\n"; print "\n$warning"; $errorstr .= $warning; $errors = 1; } } else { my $warning = "--> WARNING: nescc not found. Please install nesc $nescversion.\n"; print "\n$warning"; $errorstr .= $warning; $errors = 1; } print "\n\n"; } sub chk_avrgcc { my $found; my $version = "3.4.3"; print "avr-gcc:\n"; $found = which("avr-gcc", 1); if ($found) { print "\tVersion: "; open AVRGCC, "avr-gcc --version 2>&1 |" or die "couldn't execute avr-gcc --version: is it in your PATH?\n"; while () { if (/avr-gcc/) { print "$_"; $versionok = 1 if /3\.4\.3/; } } close AVRGCC; if (!$versionok) { $warning = "--> WARNING: The avr-gcc found by $program is not $version. " . "Please update your avr-gcc compiler to $version.\n"; print "\n$warning"; $errorstr .= $warning; $errors = 1; } } else { my $warning = "--> WARNING: avr-gcc not found.\n"; print "\n$warning"; $errorstr .= $warning; $errors = 1; } print "\n\n"; } sub chk_mspgcc { my $found; print "msp430-gcc:\n"; $found = which("msp430-gcc", 1); if ($found) { print "\tVersion: "; open MSPGCC, "msp430-gcc --version 2>&1 |" or die "couldn't execute msp430-gcc --version: is it in your PATH?\n"; while () { if (/msp430-gcc/) { print "$_"; $versionok = 1 if /3\.2\.3/; } } close MSPGCC; if (!$versionok) { $warning = "--> WARNING: The msp430-gcc found by $program is not 3.2.3. " . "If you intend to use any msp430 platforms (such as tmote), " . "please update your msp430-gcc compiler to 3.2.3.\n"; print "\n$warning"; $errorstr .= $warning; $errors = 1; } } else { my $warning = "--> WARNING: msp430-gcc not found. Won't be able to " . "compile to any msp430 platforms (tmote).\n"; print "\n$warning"; $errorstr .= $warning; $errors = 1; } print "\n\n"; } sub chk_mspas { my $found; my $version = "2.16"; print "msp430-as:\n"; $found = which("msp430-as", 1); if ($found) { print "\tVersion: "; open MSPAS, "msp430-as --version 2>&1 |" or die "couldn't execute msp430-as --version: is it in your PATH?\n"; while () { if (/GNU assembler/) { print "$_"; $versionok = 1 if /2\.16/; } } close MSPAS; if (!$versionok) { $warning = "--> WARNING: The msp430-as found by $program is not $version. " . "If you intend to use any msp430 platforms (such as tmote), " . "please update your msp430 binutils to $version.\n"; print "\n$warning"; $errorstr .= $warning; $errors = 1; } } else { my $warning = "--> WARNING: msp430-as not found. Won't be able to " . "compile to any msp430 platforms (tmote).\n"; print "\n$warning"; $errorstr .= $warning; $errors = 1; } print "\n\n"; } sub chk_path { my @dirs; print "Path:\n"; if (exists $ENV{PATH}) { @dirs = split /:/, $ENV{PATH}; foreach $dir (@dirs) { print "\t$dir\n" } } else { my $warning = "--> WARNING: PATH environment variable doesn't exist.\n"; print "\n$warning"; $errorstr .= $warning; $errors = 1; } print "\n"; } # # - should include $TOSROOT/support/sdk/java/tinyos.jar # (we look for just support/sdk/java/tinyos.jar) # - '.' is recommended # sub chk_classpath { my @dirs; my $warning; my $tosjarfound = 0; my $dotfound = 0; my $tosjarpath = ""; print "Classpath:\n"; if (exists $ENV{CLASSPATH}) { $tosjarpath="$ENV{TOSROOT}/support/sdk/java/tinyos.jar"; if (is_windows()) { open CYGPATH, "cygpath -w $tosjarpath 2>&1 |" or die "couldn't execute cygpath: it is not PATH."; while () { $tosjarpath = $_; } close CYGPATH; $separator = ';'; } else { $separator = ':'; } @dirs = split /$separator/, $ENV{CLASSPATH}; foreach $dir (@dirs) { print "\t$dir\n"; if ($dir =~ /[\\\/]support[\\\/]sdk[\\\/]java[\\\/]tinyos\.jar/) { $tosjarfound = 1; } if ($dir =~ /^\.$/) { $dotfound = 1; } } print "\n"; if ($tosjarfound == 0) { $warning = "--> WARNING: CLASSPATH may not include $tosjarpath. " . "Please ensure that $tosjarpath is in your CLASSPATH or you may " . "experience configuration problems\n"; print "$warning"; $errorstr .= $warning; $errors = 1; } if ($dotfound == 0) { $warning = "--> WARNING: CLASSPATH may not include '.' (that is, " . " the symbol for the current working directory). Please add " . "'.' to your CLASSPATH or you may " . "experience configuration problems.\n"; print "$warning"; $errorstr .= $warning; $errors = 1; } } else { my $warning = "--> WARNING: CLASSPATH environment variable doesn't exist.\n" . "Your classpath should contain $tosjarpath and a pointer \n" . "to the cwd (a dot)\n"; print "$warning"; $errorstr .= $warning; $errors = 1; } print "\n\n"; } # List the rpms sub chk_rpms { my $found; print "rpms:\n"; $found = which("rpm", 0); if ($found) { open RPM, "rpm -qa 2>&1 |" or die "couldn't execute rpm: is it in your PATH?\n"; while () { if (/avr/ || /tinyos/ || /nesc/ || /avarice/ || /msp430/ || /make/ || /xscale/ ) { print "\t$_"; } } } print "\n\n"; } sub chk_graphviz { my $found; my $versionok = 0; print "graphviz:\n"; $found = which("dot", 1); if ($found) { open GRAPHVIZ, "dot -V 2>&1 |" or die "couldn't execute dot -V to check graphviz: is it in your PATH?\n"; while () { if (/version/) { print "\t$_"; $versionok = 1 if /1\.10/; } } close GRAPHVIZ; if (!$versionok) { $warning = "--> WARNING: The graphviz (dot) version found by $program is not 1.10. " . "Please update your graphviz version if you'd like to use the nescdoc " . "documentation generator.\n"; print "\n$warning"; $errorstr .= $warning; $errors = 1; } } else { $warning = "--> WARNING: $program could not find the 'dot' executable which is part " . "of the AT&T Graphviz package. Please install version 1.1.0 of Graphviz if you'd " . "like to use the nescdoc documentation generator. If Graphviz is already installed, ". "then dot may not be in your PATH.\n"; print "\n$warning"; $errorstr .= $warning; $errors = 1; } print "\n"; } sub chk_avarice { my $found; my $version="2.3.20041206"; my $versionok = 0; print "avarice:\n"; $found = which("avarice", 0); if ($found) { open AVARICE, "avarice --version 2>&1 |" or die "could not execute avarice --version: is it in your PATH?\n"; while () { if (/version/) { print "\t$_"; $versionok = 1 if /2\.4/; } } close AVARICE; if (!$versionok) { $warning = "--> WARNING: The avarice version found by $program is not $version. " . "Please update your avarice version."; print "\n$warning"; $errorstr .= $warning; $errors = 1; } } print "\n"; } sub chk_avras { my $found = 0; my $version = "2.15"; my $versionok = 0; print "avr-as:\n"; $found = which("avr-as", 1); if ($found) { open AVRAS, "avr-as --version 2>&1 |" or die "could not execute avr-as --version: is it in your PATH?\n"; while () { if (/GNU assembler/) { print "\t$_"; $versionok = 1 if /2\.15/; } } close AVRAS; if (!$versionok) { $warning = "--> WARNING: The avr-as version found by $program is not $version " . "Please update your avr-as version by updating your avr-binutils package."; print "\n$warning"; $errorstr .= $warning; $errors = 1; } } else { my $warning = "--> WARNING: Couldn't find avr-as. Please install avr-binutils " . "version $version \n"; print "$warning"; $errorstr .= $warning; $errors = 1; } print "\n"; } sub chk_avrgdb { my $found; my $versionok = 0; print "avr-gdb:\n"; $found = which("avr-gdb", 0); if ($found) { open AVRGDB, "avr-gdb --version 2>&1 |" or die "could not execute avr-gdb --version: is it in your PATH?\n"; while () { if (/GNU gdb/) { print "\t$_"; $versionok = 1 if /6\.3/; } } close AVRGDB; if (!$versionok) { $warning = "--> WARNING: The avr-gdb version found by $program is not 6.3. " . "Please update your avr-gdb version."; print "\n$warning"; $errorstr .= $warning; $errors = 1; } } print "\n"; } # as of 1.2, no longer used sub chk_javacomm { print "javax.comm:\n"; $ok = open TMP, ">testcomm.java"; $ok = $ok && print TMP "class Test { javax.comm.CommPortIdentifier x; }"; $ok = $ok && close TMP; $ok = $ok && open JAVAC, "javac testcomm.java 2>&1 |"; @result = if $ok; $ok = $ok && close JAVAC; unlink "testcomm.java"; if (!$ok || join('', @result) =~ /error/) { $warning = "--> WARNING: Could not find the javax.comm classes.\n" . "Please ensure the java Comm API is installed correctly.\n"; print "$warning"; if ($ok) { print "Compiler output was:\n"; print @result; print "\n"; } else { print "Couldn't invoke javac on test program\n"; } $errorstr .= $warning; $errors = 1; } else { print "\tjavax.comm ok\n" } print "\n"; } $errorstr = ""; $errors = 0; # binary, not a counting var # $program = "tos-check-env"; chdir "/tmp"; for ($i = 0; $i <= $#ARGV; $i++) { $_ = $ARGV[$i]; if (/^-/) { if (/^-avr$/) { $avr = 1; } elsif (/^-msp$/) { $msp = 1; } else { print "Usage: tos-check-env [-avr][-msp]\n"; exit 0; } } } $avr = 0 if !defined($avr); $msp = 0 if !defined($msp); chk_path(); chk_classpath(); chk_rpms(); chk_nesc(); chk_perl(); chk_lex(); chk_yacc(); chk_java(); chk_cygwin(); chk_graphviz(); if ($avr) { chk_avras(); chk_avarice(); chk_avrgcc(); chk_avrgdb(); chk_uisp(); } if ($msp) { chk_mspgcc(); chk_mspas(); } if ($errors) { print "\n$program completed with errors:\n\n$errorstr\n"; } else { print "\n$program completed without error.\n\n"; } __END__ tinyos-tools-1.4.2/tools/tinyos/misc/tos-deluge.1000066400000000000000000000036341206361226500217640ustar00rootroot00000000000000.TH tos-deluge 1 "Jul 16, 2007" .SH NAME tos-deluge \- Management tool for Deluge T2 .SH SYNOPSIS \fBtos-deluge\fR \fIdevice\fR \fIbaudrate\fR <\fB-p\fR|\fB-r\fR|\fB-d\fR|\fB-e\fR|\fB-s\fR> \fIimage_number\fR \fBtos-deluge\fR \fIdevice\fR \fIbaudrate\fR \fB-i\fR \fIimage_number\fR \fItos_image.xml\fR .SH DESCRIPTION \fBtos-deluge\fR is the management tool for Deluge T2. The available operations are: .SH ARGUMENTS .TP .I device Any device accepted by PySerial. Examples: .RS .IP \(bu 4 /dev/ttyUSB0 .IP \(bu 4 COM10 .IP \(bu 4 11 .RE .TP .I baudrate Three shortcuts are available: \fBmicaz\fR and \fBiris\fR for 57600 and \fBtelosb\fR for 115200. .TP .I image_number A integer number. 0 is the first image. .SH OPTIONS .TP .B -p, --ping This command is useful for checking the status of program images on a mote. It provides information such as program name, compile time, size of the image, and so on. .TP .B -i, --inject This command creates a program image from the supplied tos_image.xml file, and it injects the image into specified volume on the mote. .TP .B -r, --reprogram This command sets up the directly-connected mote to reprogram itself after reboot, and then it reboots the mote. .TP .B -d, --disseminate This command instructs the base station mote to disseminate an image to the network. This image is specified by the volume ID. .TP .B -dr, --disseminate-and-reprogram This command asks the motes in the network not only to disseminate an image but also to start running it. This is accomplish using a reboot. .TP .B -e, --erase This command erases a flash volume on the base station mote. .TP .B -s, --stop The effect of -d and -dr is continuous which means a new mote will become infected if he is nearby. This command stops the infection. .TP .B -ls, --local-stop When -d or -dr are in effect, the volume used by them is locked. This command can be used to unlock the volume in order to erase or inject a new image. tinyos-tools-1.4.2/tools/tinyos/misc/tos-deluge.in000077500000000000000000000404401206361226500222310ustar00rootroot00000000000000#!@pathpython@ # Copyright (c) 2007 Johns Hopkins University. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # - Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # - Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the # distribution. # - Neither the name of the copyright holders nor the names of # its contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL # THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # OF THE POSSIBILITY OF SUCH DAMAGE. # @author Razvan Musaloiu-E. # @author Chieh-Jan Mike Liang import sys, stat, struct, subprocess, time, os.path try: import tos except ImportError: import posix sys.path = [os.path.join(posix.environ['TOSROOT'], 'support', 'sdk', 'python')] + sys.path import tos from datetime import datetime # Path to the python script that builds Deluge image from XML PATH_PY_BUILD_IMAGE = os.path.join(os.path.dirname(sys.argv[0]), 'tos-build-deluge-image') # TinyOS serial communication parameters FM_AMID = 0x53 DM_AMID = 0x54 SERIAL_DATA_LENGTH = 28 - (1+1+4+2) # See definition of FMReqPacket below # Commands for FlashManager FM_CMD_ERASE = 0 FM_CMD_WRITE = 1 FM_CMD_READ = 2 FM_CMD_CRC = 3 FM_CMD_ADDR = 4 FM_CMD_SYNC = 5 FM_CMD_IDENT = 6 # Commands for DelugeManager DM_CMD_STOP = 1 DM_CMD_LOCAL_STOP = 2 DM_CMD_ONLY_DISSEMINATE = 3 DM_CMD_DISSEMINATE_AND_REPROGRAM = 4 DM_CMD_REPROGRAM = 5 DM_CMD_BOOT = 6 ERROR_SUCCESS = 0 # T2-compatible ERROR_FAIL = 1 # T2-compatible # Deluge parameters DELUGE_MAX_PAGES = 128 DELUGE_IDENT_OFFSET = 0 DELUGE_IDENT_SIZE = 128 class FMReqPacket(tos.Packet): def __init__(self, packet = None): tos.Packet.__init__(self, [('cmd', 'int', 1), ('imgNum', 'int', 1), ('offset', 'int', 4), ('length', 'int', 2), ('data', 'blob', None)], packet) class DMReqPacket(tos.Packet): def __init__(self, packet = None): tos.Packet.__init__(self, [('cmd', 'int', 1), ('imgNum', 'int', 1)], packet) class SerialReplyPacket(tos.Packet): def __init__(self, packet = None): tos.Packet.__init__(self, [('error', 'int', 1), ('data', 'blob', None)], packet) class Ident(tos.Packet): def __init__(self, packet = None): tos.Packet.__init__(self, [('uidhash', 'int', 4), ('size', 'int', 4), ('pages', 'int', 1), ('reserved', 'int', 1), ('crc', 'int', 2), ('appname', 'string', 16), ('username', 'string', 16), ('hostname', 'string', 16), ('platform', 'string', 16), ('timestamp','int', 4), ('userhash', 'int', 4)], packet) class ShortIdent(tos.Packet): def __init__(self, packet = None): tos.Packet.__init__(self, [('appname', 'string', 16), ('timestamp','int', 4), ('uidhash', 'int', 4), ('nodeid', 'int', 2)], packet) # Computes 16-bit CRC def crc16(data): crc = 0 for b in data: crc = crc ^ (b << 8) for i in range(0, 8): if crc & 0x8000 == 0x8000: crc = (crc << 1) ^ 0x1021 else: crc = crc << 1 crc = crc & 0xffff return crc def handleResponse(success, msg): if success == True: packet = am.read(timeout=2) while packet and packet.type == 100: print "".join([chr(i) for i in packet.data]) packet = am.read() if not packet: print "No response" return False reply = SerialReplyPacket(packet.data) if reply.error == ERROR_SUCCESS: return True else: print msg, reply return False print "ERROR: Unable to send the command" return False def ident(timeout=None): sreqpkt = FMReqPacket((FM_CMD_IDENT, 0, 0, 0, [])) if am.write(sreqpkt, FM_AMID, timeout=timeout): packet = am.read(timeout=timeout) reply = SerialReplyPacket(packet.data) if reply.error == ERROR_SUCCESS: return ShortIdent(reply.data) return 0 def read(imgNum, offset, length): r = [] sreqpkt = FMReqPacket((FM_CMD_READ, imgNum, offset, length, [])) while True: if sreqpkt.length > SERIAL_DATA_LENGTH: sreqpkt.length = SERIAL_DATA_LENGTH if am.write(sreqpkt, FM_AMID): packet = am.read() reply = SerialReplyPacket(packet.data) if reply.error == ERROR_SUCCESS: r.extend(reply.data) else: r = None break else: r = None break sreqpkt.offset += sreqpkt.length if sreqpkt.offset >= (offset + length): break sreqpkt.length = (offset + length) - sreqpkt.offset return r def erase(imgNum): # Note: the normal erase doesn't work properly on AT45DB. A # workaround is to do the normal erase (to make happy STM25P) # and then overwrite the metadata (to make happy AT45DB). sreqpkt = FMReqPacket((FM_CMD_ERASE, imgNum, 0, 0, [])) success = am.write(sreqpkt, FM_AMID) result = handleResponse(success, "ERROR: Unable to erase the flash volume") if result: return True; print 'Attempt the workaround for AT45DB...' sreqpkt = FMReqPacket((FM_CMD_WRITE, imgNum, 0, 0, [])) sreqpkt.data = [0xFF] * DELUGE_IDENT_SIZE sreqpkt.length = DELUGE_IDENT_SIZE success = am.write(sreqpkt, FM_AMID) result = handleResponse(success, "ERROR: Unable to erase the flash volume") if not result: return False; return sync(imgNum) def sync(imgNum): sreqpkt = FMReqPacket((FM_CMD_SYNC, imgNum, 0, 0, [])) success = am.write(sreqpkt, FM_AMID) return handleResponse(success, "ERROR: Unable to sync the flash volume") def write(imgNum, data): sreqpkt = FMReqPacket((FM_CMD_WRITE, imgNum, 0, 0, [])) length = len(data) total_length = length # For progress bar next_tick = 100 # For progress bar start_time = time.time() print "[0% 25% 50% 75% 100%]\r[", sreqpkt.offset = 0 while length > 0: if ((length * 100) / total_length) < next_tick: next_tick = next_tick - 2 sys.stdout.write('-') sys.stdout.flush() # Calculates the payload size for the current packet if length >= SERIAL_DATA_LENGTH: sreqpkt.length = SERIAL_DATA_LENGTH else: sreqpkt.length = length sreqpkt.data = data[sreqpkt.offset:sreqpkt.offset+sreqpkt.length] # Sends over serial to the mote if not am.write(sreqpkt, FM_AMID): print print "ERROR: Unable to send the last serial packet (file offset: %d)" % sreqpkt.offset return False # Waiting for confirmation packet = am.read() reply = SerialReplyPacket(packet.data) if reply.error != ERROR_SUCCESS: print print "ERROR: Unable to write to the flash volume (file offset: %d)" % sreqpkt.offset return False length -= sreqpkt.length sreqpkt.offset += sreqpkt.length print '\r' + ' ' * 52, elasped_time = time.time() - start_time print "\r%s bytes in %.2f seconds (%.4f bytes/s)" % (total_length, elasped_time, int(total_length) / (elasped_time)) return True # Checks for valid CRC and timestamp def verifyIdent(i): if i != None: if crc16(i.payload()[0:10]) == i.crc and i.timestamp != 0xFFFFFFFF: return True else: print "No valid image was detected." return False def getIdent(imgNum): r = read(imgNum, DELUGE_IDENT_OFFSET, DELUGE_IDENT_SIZE) if r: return Ident(r) print "ERROR: Unable to retrieve the ident." return None def formatIdent(i): r = " Prog Name: %s\n" % (i.appname) r += " UID: 0x%08X\n" % (i.uidhash) r += " Compiled On: %s\n" % (datetime.fromtimestamp(i.timestamp).strftime('%a %h %d %T %Y')) r += " Platform: %s\n" % (i.platform) r += " User ID: %s\n" % (i.username) r += " Host Name: %s\n" % (i.hostname) r += " User Hash: 0x%08X\n" % (i.userhash) r += " Size: %d\n" % (i.size) r += " Num Pages: %d" % (i.pages) return r def formatShortIdent(i): r = " Prog Name: %s\n" % (i.appname) r += " UID: 0x%08X\n" % (i.uidhash) r += " Compiled On: %s\n" % (datetime.fromtimestamp(i.timestamp).strftime('%a %h %d %T %Y')) r += " Node ID: %d\n" % (i.nodeid) return r # Injects an image (specified by tos_image_xml) to an image volume def inject(imgNum, tos_image_xml): # Checks for valid file path try: os.stat(tos_image_xml) # Checks whether tos_image_xml is a valid file except: print "ERROR: Unable to find the TOS image XML, \"%s\"" % tos_image_xml return False try: os.stat(PATH_PY_BUILD_IMAGE) # Checks whether PATH_PY_BUILD_IMAGE is a valid file except: print "ERROR: Unable to find the image building utility, \"%s\"" % PATH_PY_BUILD_IMAGE return False # Gets status information of stored image i = getIdent(imgNum) if ident: print "Connected to Deluge nodes." if verifyIdent(i): print "--------------------------------------------------" print "Stored image %d" % imgNum print formatIdent(i) else: return False # Creates binary image from the TOS image XML print "--------------------------------------------------" cmd = [PATH_PY_BUILD_IMAGE, "-i", str(imgNum), tos_image_xml] print "Create image:", ' '.join(cmd) p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) (out, err) = p.communicate(None) print err, print "--------------------------------------------------" # Writes the new binary image image = [struct.unpack("B", c)[0] for c in out] if len(image) > 0 and erase(imgNum): if write(imgNum, image): if sync(imgNum): print "--------------------------------------------------" print "Replace image with:" print formatIdent(getIdent(imgNum)) print "--------------------------------------------------" return False def ping(imgNum): uid = ident() # Prints out image status print "--------------------------------------------------" print "Currently Executing:" print formatShortIdent(ident()) i = getIdent(imgNum) if verifyIdent(i): print "Stored image %d" % imgNum print formatIdent(i) print "--------------------------------------------------" return True print "--------------------------------------------------" return False def boot(): sreqpkt = DMReqPacket((DM_CMD_BOOT, 0)) success = am.write(sreqpkt, DM_AMID) return handleResponse(success, "ERROR: Unable to boot the mote") def reprogram(imgNum): sreqpkt = DMReqPacket((DM_CMD_REPROGRAM, imgNum)) success = am.write(sreqpkt, DM_AMID) return handleResponse(success, "ERROR: Unable to reprogram the mote") def disseminate(imgNum): sreqpkt = DMReqPacket((DM_CMD_ONLY_DISSEMINATE, imgNum)) success = am.write(sreqpkt, DM_AMID) return handleResponse(success, "ERROR: Unable to disseminate") def disseminateAndReboot(imgNum): sreqpkt = DMReqPacket((DM_CMD_DISSEMINATE_AND_REPROGRAM, imgNum)) success = am.write(sreqpkt, DM_AMID) return handleResponse(success, "ERROR: Unable to disseminate-and-reboot") def stop(): sreqpkt = DMReqPacket((DM_CMD_STOP, 0)) success = am.write(sreqpkt, DM_AMID) return handleResponse(success, "ERROR: Unable to initiate the stop") def localstop(): sreqpkt = DMReqPacket((DM_CMD_LOCAL_STOP, 0)) success = am.write(sreqpkt, DM_AMID) return handleResponse(success, "ERROR: Unable to initiate the local stop") def print_usage(): print "Usage: %s <-p|-i|-r|-d|-e|-s> image_number [options]" % sys.argv[0] print " can be:" print " serial@PORT:SPEED Serial ports" print " network@HOST:PORT MIB600" print " -p --ping Provide status of the image in the external flash" print " -i --inject Inject a compiled TinyOS application" print " [options]: tos_image.xml file path" print " -e --erase Erase an image in the external flash" print " -b --boot Force a reboot of the mote" print " -r --reprogram Reprogram the mote" print " -d --disseminate Disseminate the image in the external flash to the network" print " -dr --disseminate-and-reprogram" print " -s --stop Stop the dissemination " print " -ls --local-stop Stop the dissemination only on the local mote" # print " -b --reprogram_bs\n Reprogram only the directly-connected mote" # print " -s --reset\n Reset the versioning information for a given image" def checkImgNum(): global imgNum # Checks for valid image number format try: imgNum = int(sys.argv[3]) except: print "ERROR: Image number is not valid" sys.exit(-1) return imgNum # ======== MAIN ======== # if len(sys.argv) >= 3: am = tos.AM() try: print "Checking if node is a Deluge T2 base station ..." ident(timeout=1) except tos.Timeout: print "ERROR: Timeout. Is the node a Deluge T2 base station?" sys.exit(-1) if sys.argv[2] in ["-p", "--ping"]: checkImgNum() print "Pinging node ..." ping(imgNum) elif sys.argv[2] in ["-i", "--inject"] and len(sys.argv) == 5: checkImgNum() print "Pinging node ..." inject(imgNum, sys.argv[4]) elif sys.argv[2] in ["-e", "--erase"]: checkImgNum() if erase(imgNum): print "Image number %d erased" % imgNum elif sys.argv[2] in ["-b", "--boot"]: if boot(): print "Command sent" elif sys.argv[2] in ["-r", "--reprogram"]: checkImgNum() if reprogram(imgNum): print "Command sent" elif sys.argv[2] in ["-d", "--disseminate"]: checkImgNum() if disseminate(imgNum): print "Command sent" elif sys.argv[2] in ["-dr", "--disseminate-and-reboot"]: checkImgNum() if disseminateAndReboot(imgNum): print "Command sent" elif sys.argv[2] in ["-s", "--stop"]: if stop(): print "Command sent" elif sys.argv[2] in ["-ls", "--local-stop"]: if localstop(): print "Command sent" else: print_usage() else: print_usage() sys.exit() tinyos-tools-1.4.2/tools/tinyos/misc/tos-dump.py.in000066400000000000000000000003771206361226500223620ustar00rootroot00000000000000#!@pathpython@ import sys import tos if '-h' in sys.argv: print "Usage:", sys.argv[0], "serial@/dev/ttyUSB0:57600" print " ", sys.argv[0], "network@host:port" sys.exit() am = tos.AM() while True: p = am.read() if p: print p tinyos-tools-1.4.2/tools/tinyos/misc/tos-ident-flags.1000066400000000000000000000005731206361226500227130ustar00rootroot00000000000000.TH tos-ident-flags 1 "Feb 3, 2006" .LO 1 .SH NAME tos-ident-flags - generate compile-time flags identifying a program build .SH SYNOPSIS \fBtos-ident-flags\fR \fIprogram-name\fR .SH DESCRIPTION \fBtos-ident-flags\fR prints a set of \fB-D\fIname\fB=\fIvalue\fR options that identify a build of \fIprogram-name\fR. It is used to embed build information in a TinyOS executable. tinyos-tools-1.4.2/tools/tinyos/misc/tos-ident-flags.in000066400000000000000000000032441206361226500231570ustar00rootroot00000000000000#!@pathperl@ -w #$Id: tos-ident-flags.in,v 1.6 2008-05-29 20:08:03 razvanm Exp $ #@author Cory Sharp use strict; my $MaxNameLength = 16; if( @ARGV != 1 ) { print "usage: tos-ident-flags program_name\n"; exit 0; } my $name = $ARGV[0]; my $time = sprintf( "0x%08x", `date +%s` ); (my $whoami = `whoami`) =~ s/\s//g; (my $hostname = `hostname`) =~ s/\s//g; my ($uidhash, $idhash); if( `uname` =~ /Darwin/ ) { $uidhash = `echo "$name$time$whoami$hostname" | md5`; $idhash = `echo "$whoami$hostname" | md5`; } else { $uidhash = `echo "$name$time$whoami$hostname" | sha1sum`; $idhash = `echo "$whoami$hostname" | sha1sum`; } my $uid = ($uidhash =~/^(.{8})/) ? "0x$1" : 0; my $id = ($idhash =~/^(.{8})/) ? "0x$1" : 0; my @defs = (); my $qname = ""; if( defined $name && $name !~ /^\s*$/ ) { ($qname = $name) =~ s/['"]//g; substr( $qname, $MaxNameLength-1 ) = "" if length $qname >= $MaxNameLength; my @bytes = unpack( "C*", $qname ); push( @defs, "-DIDENT_APPNAME=\\\"$qname\\\"" ); } if( defined $whoami && $whoami !~ /^\s*$/ ) { ($qname = $whoami) =~ s/['"]//g; substr( $qname, $MaxNameLength-1 ) = "" if length $qname >= $MaxNameLength; my @bytes = unpack( "C*", $qname ); push( @defs, "-DIDENT_USERNAME=\\\"$qname\\\"" ); } if( defined $hostname && $hostname !~ /^\s*$/ ) { ($qname = $hostname) =~ s/['"]//g; substr( $qname, $MaxNameLength-1 ) = "" if length $qname >= $MaxNameLength; my @bytes = unpack( "C*", $qname ); push( @defs, "-DIDENT_HOSTNAME=\\\"$qname\\\"" ); } push( @defs, "-DIDENT_USERHASH=${id}L" ); push( @defs, "-DIDENT_TIMESTAMP=${time}L" ); push( @defs, "-DIDENT_UIDHASH=${uid}L" ); print join(" ",@defs) . "\n"; tinyos-tools-1.4.2/tools/tinyos/misc/tos-install-jni.1000066400000000000000000000010601206361226500227320ustar00rootroot00000000000000.TH tos-install-jni 1 "Feb 3, 2006" .LO 1 .SH NAME tos-install-jni - Install TinyOS JNI libraries .SH SYNOPSIS \fBtos-install-jni\fR .SH DESCRIPTION \fBtos-install-jni\fR install's TinyOS's JNI libraries in your Java installation. On Linux and other similar operating systems, \fBtos-install-jni\fR should be run as root. If \fBtos-install-jni\fR has problems (fails to find Java, or installs files in an unexpected place), see the \fBtos-locate-jre\fR man page for information on how your Java installation is located. .SH SEE ALSO .IR tos-locate-jre (1) tinyos-tools-1.4.2/tools/tinyos/misc/tos-install-jni.in000066400000000000000000000015221206361226500232030ustar00rootroot00000000000000#!/bin/sh prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ tinyoslibdir=$libdir/tinyos jni=`tos-locate-jre --jni` if [ $? -ne 0 ]; then echo "Java not found, not installing JNI code" exit 1 fi if [ -x /bin/cygwin1.dll ] || [ `uname` = "Darwin" ]; then echo "Installing Java JNI code in $jni ... " for lib in $tinyoslibdir/*.@JNISUFFIX@; do @INSTALLJNI@ $lib "$jni" || exit 1 done else java=`tos-locate-jre --java` bits=32 if [ $? -ne 0 ]; then echo "java command not found - assuming 32 bits" elif file -L $java/java | grep -q 64-bit; then bits=64 fi echo "Installing $bits-bit Java JNI code in $jni ... " for lib in $tinyoslibdir/*-$bits.@JNISUFFIX@; do realname=`basename $lib | sed -e s/-$bits\.@JNISUFFIX@/.@JNISUFFIX@/` @INSTALLJNI@ $lib "$jni/$realname" || exit 1 done fi echo "done." tinyos-tools-1.4.2/tools/tinyos/misc/tos-locate-jre000077500000000000000000000117011206361226500224020ustar00rootroot00000000000000#!/bin/sh # This script attempts to locate the jre directory of the current # Java installation, even when java is not in the path # It works with the following rpm files: # Sun's Java Software Development Kit (Linux/Windows) # Sun's Java Runtime Environment (Linux) # IBM's Java Software Development Kit (linux) # We require an option to specify which directory is desired: # --java: directory with java executable # --javac: directory with javac executable # --jni: directory where JNI code is placed if [ "$1" = "--jni" ]; then jni=yes elif [ "$1" = "--java" ]; then java=yes elif [ "$1" = "--javac" ]; then javac=yes else echo "Usage: tos-locate-jre --java|--javac|--jni" >&2 exit 2 fi rpmlocate () { javarpm=$1 javapath=`rpm -ql $1 2>/dev/null | grep "bin/$2$"` } pathlocate () { javapath=`which $1 2>/dev/null` while [ -n "$javapath" -a -h "$javapath" ]; do javapath=`readlink -q $javapath` done test -n "$javapath" } case `uname` in CYGWIN*) # Hopefully this will always work on cygwin with Sun's Java if [ "$javac" != "yes" ]; then #first try the public jre jversion=`regtool -q get '\\HKLM\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\CurrentVersion'` jhome=`regtool -q get '\\HKLM\SOFTWARE\\JavaSoft\\Java Runtime Environment\\'$jversion'\\JavaHome'` fi if [ "$jhome" == "" ]; then jversion=`regtool -q get '\\HKLM\\SOFTWARE\\JavaSoft\\Java Development Kit\\CurrentVersion'` if [ $? != 0 ]; then exit 1 fi jhome=`regtool -q get '\\HKLM\SOFTWARE\\JavaSoft\\Java Development Kit\\'$jversion'\\JavaHome'` fi if [ $? != 0 ]; then exit 1 fi jhome=`cygpath -u "$jhome"` ;; Darwin) ## This should work bu the symlinks are broken. Apple bug, I suppose :) #jhome=/System/Library/Frameworks/JavaVM.framework/Versions/Current ## The real location is under /Developer/SDKs/MacOSX*.sdk/ ## but now how do we determin the version correctly ? ## I have 10.6.6 but we need to drop the last digit ## `uname -r` returns 10.6.0 for some reason, and ## it appears that `basename `uname -r` .0` works ## it's not very certain if it will later. pn=`sw_vers -productName | sed 's/ //g'` pv=`sw_vers -productVersion | awk -F. '{ print $1 "." $2 }'` ## Since we only want to modify this one script for now, stick the ## extra subdir at the end, beceuase that's what the reset of scripts ## presume. This is a work-around and should be eliminated eventually. xcode_jdk=/Developer/SDKs/${pn}${pv}.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers jhome=/Library/Java/Home ;; Linux) # Check gentoo java configuration javapath=`java-config -c 2>/dev/null` # We check the path first, on the assumption that that's the preferred # version. if [ -z "$javapath" ]; then pathlocate javac || { test -z "$javac" && pathlocate java; } fi if [ -z "$javapath" ]; then # We try a bunch of standard names, before resorting to rpm -qa rpmlocate IBMJava2-SDK javac || \ rpmlocate IBMJava2-142-ia32-SDK javac || \ rpmlocate j2sdk javac || \ rpmlocate jdk javac || \ { test -z "$javac" && rpmlocate j2re java; } || \ { test -z "$javac" && rpmlocate jre java; } if [ -z "$javapath" ]; then # lastly, check for a weirdly named IBMJava2 name=`rpm -qa | grep IBMJava2 | head -1` if [ -n "$name" ]; then rpmlocate $name javac fi fi fi if [ -z "$javapath" ]; then exit 1 fi jbin=`dirname "$javapath"` jhome=`dirname "$jbin"` ;; FreeBSD) # We check the path first, on the assumption that that's the preferred # version. pathlocate javac || { test -z "$javac" && pathlocate java; } if [ -n "$javapath" ]; then jbin=`dirname "$javapath"` else if [ -f /usr/local/jdk1.4*/bin/java ]; then jbin=/usr/local/jdk1.4*/bin else exit 1 fi fi jhome=`dirname $jbin` ;; esac # These are correct for Sun and IBM's x86 Java versions if [ "$jni" = "yes" ]; then jnilocate () { dir="$1" test -d "$1" } # Look for a likely JNI directory # Windows, and IBM Java: in jre/bin # Sun Java on Linux: in jre/lib/i386 if [ `uname` = "Darwin" ]; then jnilocate "/Library/Java/Extensions" elif "$jhome/bin/java" -version 2>&1 | grep -q IBM || cygpath -w / >/dev/null 2>/dev/null; then jnilocate "$jhome/jre/bin" || jnilocate "$jhome/bin" else arch=`uname -m` jnilocate "$jhome/jre/lib/$arch" || \ jnilocate "$jhome/jre/lib/i386" || \ jnilocate "$jhome/jre/lib/amd64" || \ jnilocate "$jhome/lib/$arch" || \ jnilocate "$jhome/lib/i386" || \ jnilocate "$jhome/lib/amd64" fi elif [ "$javac" = "yes" ]; then if [ `uname` = "Darwin" ]; then dir="$xcode_jdk" else dir="$jhome/bin" fi elif [ "$java" = "yes" ]; then dir="$jhome/bin" fi # Check that what we found actually exists if [ -d "$dir" ]; then echo $dir else exit 1 fi tinyos-tools-1.4.2/tools/tinyos/misc/tos-locate-jre.1000066400000000000000000000024251206361226500225410ustar00rootroot00000000000000.TH tos-locate-jre 1 "Feb 3, 2006" .LO 1 .SH NAME tos-locate-jre - Locate a Java installation .SH SYNOPSIS \fBtos-locate-jre\fR \fB--jni\fR \fBtos-locate-jre\fR \fB--java\fR \fBtos-locate-jre\fR \fB--javac\fR .SH DESCRIPTION \fBtos-locate-jre\fR locates your Java installation. It is used by other tools to decide where to install files, and is useful for setting up your shell path. Under cygwin, \fBtos-locate-jre\fR checks the registry for the installation point of Sun's JVM. It will not find any other versions of Java. Under Linux, \fBtos-locate-jre\fR looks for an executable named javac or java in the path. If none is found, it looks for IBM's and Sun's Java RPMs (in that order). Once \fBtos-locate-jre\fR has located your Java directory, it can return the directory containing the \fBjava\fR executable (\fB--java\fR option), the directory containing the \fBjavac\fR executable (\fB--javac\fR option), or the directory where JNI libraries should be installed (\fB--jni\fR option). \fBtos-locate-jre\fR has only been tested with recent IBM and Sun JVMs. If you use something else, it will likely fail. .SH EXAMPLES Add java and javac to your path: PATH=`/usr/local/bin/locate-jre --java`:$PATH PATH=`/usr/local/bin/locate-jre --javac`:$PATH .SH SEE ALSO .IR tos-install-jni (1) tinyos-tools-1.4.2/tools/tinyos/misc/tos-mote-key.1000066400000000000000000000005301206361226500222410ustar00rootroot00000000000000.TH tos-mote-key 1 "Feb 3, 2006" .LO 1 .SH NAME tos-mote-key - Manage TinySec keys .SH SYNOPSIS \fBtos-mote-key\fR [\fB-kf \fIkeyfile\fR] [\fB-kn \fIkeyname\fR] .SH DESCRIPTION \fBtos-mote-key\fR manages TinySec keys. TinySec is an encryption system for mica and mica2 motes under TinyOS 1.1. See the TinySec documentation for more details. tinyos-tools-1.4.2/tools/tinyos/misc/tos-mote-key.in000066400000000000000000000101101206361226500225020ustar00rootroot00000000000000#!@pathperl@ # Copyright (c) 2000-2002 The Regents of the University of California. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # - Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # - Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the # distribution. # - Neither the name of the copyright holders nor the names of # its contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL # THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # OF THE POSSIBILITY OF SUCH DAMAGE. # # Authors: Naveen Sastry # Date: 11/11/02 # # # Script to manage the tinysec keyfile # default keyfile and default key name (\w+ matches first valid key) $KEYFILE=".keyfile"; $KEYNAME="\\w+"; # if no keyfile is found, we'll need to create it and populate it with data # from /dev/random. This function returns the text taht should go into the # new keyfile. We store the key in a hex-form. sub generateKey { print STDERR "Generating default TinySec Key...\n"; $a = "\n# TinySec Keyfile. By default, the first key will be used.\n"; $a = $a . "# You can import other keys by appending them to the file.\n"; $a = $a . "\ndefault "; open RND, "', $KEYFILE and print KEYFILE generateKey() and seek KEYFILE, 0, 0) or die ("couldn't open file " . $KEYFILE); # find the matching key and print. while ( ) { if ($_ =~ /^$KEYNAME\s+([a-fA-F0-9]+)/) { $KEY = $1; last; } } print splitKey($KEY) . "\n"; tinyos-tools-1.4.2/tools/tinyos/misc/tos-mviz000077500000000000000000000001771206361226500213470ustar00rootroot00000000000000#!/bin/bash # # $Id: tos-mviz,v 1.4 2006-12-12 18:23:02 vlahan Exp $ # printenv CLASSPATH java net.tinyos.mviz.DDocument $* tinyos-tools-1.4.2/tools/tinyos/misc/tos-mviz.1000066400000000000000000000013321206361226500214750ustar00rootroot00000000000000.TH tos-mviz 1 "Oct 24, 2006" .LO 1 .SH NAME tos-mviz - Launch MViz, the TinyOS network visualizer .SH SYNOPSIS \fBtos-mviz\fR [\fB-comm\fR \fIserial-source\fR] \fImig-class\fR [\fImig-class]... .SH DESCRIPTION \fBtos-mviz\fR launches MViz, the TinyOS network visualizer. MViz is a replacement for the Surge application of earlier TinyOS versions. MViz reads packets from a packet source and displays their data in a GUI. MViz takes the class names of mig-generated Java classes as parameters; it parses these packets and displays their fields. For MViz to be able to understand a mig packet, it must have an \fIorigin\fR field which denotes which node the data is from. Please see TinyOS tutorial 12: MViz, for more detail. tinyos-tools-1.4.2/tools/tinyos/misc/tos-nwprog.in000077500000000000000000000255771206361226500223160ustar00rootroot00000000000000#!@pathpython@ # Copyright (c) 2007 Johns Hopkins University. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # - Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # - Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the # distribution. # - Neither the name of the copyright holders nor the names of # its contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL # THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # OF THE POSSIBILITY OF SUCH DAMAGE. # @author Razvan Musaloiu-E. # @author Chieh-Jan Mike Liang # b6lowpan/nwprog port: # @author Stephen Dawson-Haggerty import sys, stat, struct, subprocess, time, os.path, socket, getopt, re try: import tos except ImportError: import posix sys.path = [os.path.join(posix.environ['TOSROOT'], 'support', 'sdk', 'python')] + sys.path import tos from datetime import datetime # Path to the python script that builds Deluge image from XML PATH_PY_BUILD_IMAGE = os.path.join(os.path.dirname(sys.argv[0]), 'tos-build-deluge-image') # Commands for NWProg NWPROG_CMD_ERASE = 1 NWPROG_CMD_WRITE = 2 NWPROG_CMD_READ = 3 # Deluge parameters DELUGE_MAX_PAGES = 128 DELUGE_IDENT_OFFSET = 0 DELUGE_IDENT_SIZE = 128 NWPROG_PORT = 5213 NWPROG_PKT_SIZE = 64 NWPROG_REQ_FMT = "!BBH" NWPROG_REPLY_FMT = "!BBBBH" ERROR_SUCCESS = 0 nRetries = 3 class CommandFailedException: pass def send_command(cmd_str, retries): s.sendto(cmd_str, (remote, NWPROG_PORT)) s.settimeout(3) (real_cmd, real_imgno, real_offset) = struct.unpack(NWPROG_REQ_FMT, cmd_str[0:4]) try: data, addr = s.recvfrom(1024) # make sure this is the guy we're programming if (addr[0] == remote): (error, pack, cmd, imgno, offset) = struct.unpack(NWPROG_REPLY_FMT, data) if error != ERROR_SUCCESS or real_offset != offset or real_imgno != imgno: print "WARNING: received error while sending block; retrying (%i)" % error raise socket.timeout else: return data else: print "WARNING: received unexpected reply from", addr[0] return False except socket.timeout: # socket timeout out try again if retries > 0: return send_command(cmd_str, retries - 1) else: return False def erase(imgNum, none=None): e_req = struct.pack(NWPROG_REQ_FMT, NWPROG_CMD_ERASE, imgNum, 0) return send_command(e_req, 1) def read(imgNum, unused=None): length = 40000 pkt_offset = 0 while length > 0: sreqpkt = struct.pack(NWPROG_REQ_FMT, NWPROG_CMD_READ, imgNum, pkt_offset) data = send_command(sreqpkt, 5) if data != False: (error, pack, cmd, imgno, offset) = struct.unpack(NWPROG_REPLY_FMT, data[0:6]) if offset == pkt_offset: for c in data[6:]: print >>sys.stderr, ord(c) else: print "ERROR: Out of sequence data: aborting" sys.exit(1) pkt_offset += len(data) - 6 length -= (len(data) - 6) return True def write(imgNum, data): length = len(data) total_length = length # For progress bar next_tick = 100 # For progress bar start_time = time.time() print "[0% 25% 50% 75% 100%]\r[", pkt_offset = 0 pkt_length = 0 while length > 0: if ((length * 100) / total_length) < next_tick: next_tick = next_tick - 2 sys.stdout.write('-') sys.stdout.flush() # Calculates the payload size for the current packet if length >= NWPROG_PKT_SIZE: pkt_length = NWPROG_PKT_SIZE else: pkt_length = length sreqpkt = struct.pack(NWPROG_REQ_FMT, NWPROG_CMD_WRITE, imgNum, pkt_offset) for i in data[pkt_offset:pkt_offset+pkt_length]: sreqpkt += chr(i) # Sends packet to serial if not send_command(sreqpkt, 5): print "\nReceived error from mote while programming" print "Perhaps the block size is too large, or the flash is broken?" return False length -= pkt_length pkt_offset += pkt_length print '\r' + ' ' * 52, elasped_time = time.time() - start_time print "\r%s bytes in %.2f seconds (%.4f bytes/s)" % (total_length, elasped_time, int(total_length) / (elasped_time)) return True # Injects an image (specified by tos_image_xml) to an image volume def upload(imgNum, tos_image_xml): # Checks for valid file path try: os.stat(tos_image_xml) # Checks whether tos_image_xml is a valid file except: print "ERROR: Unable to find the TOS image XML, \"%s\"" % tos_image_xml return False try: os.stat(PATH_PY_BUILD_IMAGE) # Checks whether PATH_PY_BUILD_IMAGE is a valid file except: print "ERROR: Unable to find the image building utility, \"%s\"" % PATH_PY_BUILD_IMAGE return False # Creates binary image from the TOS image XML print "--------------------------------------------------" cmd = [PATH_PY_BUILD_IMAGE, "-i", str(imgNum), tos_image_xml] print "Create image:", ' '.join(cmd) p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) (out, err) = p.communicate(None) print err, print "--------------------------------------------------" # Writes the new binary image image = [struct.unpack("B", c)[0] for c in out] if len(image) > 0 and erase(imgNum): return write(imgNum, image) else: print "Could not proceed: image size is zero or erase failed" return False def print_usage(): print print "Usage: %s <(-e|-u) image_number> <-f app_xml> [options] [ip_address]" % sys.argv[0] print " -u --upload Upload a compiled TinyOS application" print " -r --read Read back a volume" print " -e --erase Erase an image in the external flash" print " -f --appfile The tos_image.xml file to upload" print " -m --motelist A file containing a list of IPv6 addresses to upload to" print " -r --retries The number of times to retry each operation (currently %i)" % nRetries print " -p --payload-sz How much payload to include in every packet (currently %i)" % NWPROG_PKT_SIZE print " -d --dudfile File to write list of motes which did not program (default: stdout)" print def checkImgNum(imgNum): # Checks for valid image number format try: imgNum = int(imgNum) except: print "ERROR: Image number is not valid" sys.exit(-1) return imgNum # ======== MAIN ======== # if __name__ == '__main__': try: opts, args = getopt.getopt(sys.argv[1:], "e:u:m:f:r:p:d:r:", ["--erase", "--upload", "--motelist", "--appfile", "--retries", "--payload", "--dudfile", "--upload"]) except getopt.GetoptError, err: print str(err) print_usage() sys.exit(1) imgNum = None uploadFile = None appFile = None dudFile = None for o, a in opts: if o in ["-e", "--erase"]: imgNum = checkImgNum(a) cmd = "eras" elif o in ["-u", "--upload"]: imgNum = checkImgNum(a) cmd = "upload" elif o in ["-r", "--read"]: imgNum = checkImgNum(a) cmd = "read" elif o in ["-m", "--motelist"]: uploadFile = a elif o in ["-f", "--appfile"]: appFile = a elif o in ["-r", "--retries"]: nRetries = int(a) elif o in ["-p", "--payload-sz"]: NWPROG_PKT_SIZE = int(a) elif o in ["-d", "--dudfile"]: dudFile = a if imgNum == None or (cmd != "eras" and cmd != "read" and appFile == None): print_usage() sys.exit(1) upload_list = [] if uploadFile == None: upload_list = [(ip, nRetries) for ip in args] else: fp = open(uploadFile, "r") rexp = re.compile("^.*#") for ip in fp.readlines(): if re.match(rexp,ip): continue upload_list.append( (ip.strip().lower(), nRetries) ) fp.close() if cmd == 'upload': cmd_fn = upload elif cmd == 'read': cmd_fn = read else: cmd_fn = erase print "%sing %i motes" % (cmd, len(upload_list)) print "retries: %i payload: %i" % (nRetries, NWPROG_PKT_SIZE) for t in range(0, nRetries): for i in range(0, len(upload_list)): remote, tries_left = upload_list[i] if tries_left <= 0: continue print "%sing %s, %i tries remaining ..." % (cmd, remote, tries_left) try: s = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM) if not cmd_fn(imgNum, appFile): upload_list[i] = (remote, tries_left - 1) else: upload_list[i] = (remote, -1) print "Success!" s.close() except KeyboardInterrupt: print "Interrupted; exiting" sys.exit(2) except Exception, e: print "Received unexpected exception while programming" print str(e) s.close() pass printedHeading = False if dudFile != None: dudFp = open(dudFile, "w") else: dudFp = sys.stdout for i in range(0, len(upload_list)): remote, tries_left = upload_list[i] if tries_left == 0 and not printedHeading: printedHeading = True print "WARNING: not all motes were succesfully %sed!" % cmd if tries_left == 0: print >>dudFp, remote if dudFp != sys.stdout: dudFp.close() tinyos-tools-1.4.2/tools/tinyos/misc/tos-serial-configure000066400000000000000000000001141206361226500236040ustar00rootroot00000000000000#!/bin/sh num=$((`echo $1 | sed -e s/COM//` - 1)) stty -F /dev/ttyS$num raw tinyos-tools-1.4.2/tools/tinyos/misc/tos-serial-configure.1000066400000000000000000000014141206361226500237470ustar00rootroot00000000000000.TH tos-serial-configure 1 "Feb 2, 2006" .LO 1 .SH NAME tos-serial-configure - reset serial port settings for raw data .SH SYNOPSIS \fBtos-serial-configure\fR \fInumber\fR .SH DESCRIPTION \fBtos-serial-configure\fR is a tool that resets a serial port to read raw bytes. Some devices, such as terminals, require serial ports to interpret bytes in some fashion or another. For example, in "cooked" mode, a read on a serial port returns only after a newline character. \fBtos-serial-debug\fR takes a required \fInumber\fR argument, an integer which refers to which serial port to configure. This is appended to "/dev/ttyS" to determine the terminal device name. .SH EXAMPLE Executing tos-serial-configure 0 configures /dev/ttyS0. .SH SEE ALSO .IR tos-serial-debug (1), tinyos-tools-1.4.2/tools/tinyos/misc/tos-serial-debug.1000066400000000000000000000026421206361226500230600ustar00rootroot00000000000000.TH tos-serial-debug 1 "Feb 2, 2006" .LO 1 .SH NAME tos-serial-debug - print the raw bytes read from a serial port .SH SYNOPSIS \fBtos-serial-debug\fR [\fIserial port\fR] [\fIbaud rate\fR] .SH DESCRIPTION \fBtos-serial-debug\fR is a tool that reads raw bytes from a serial port and prints them to stdout in hexidecimal format. It is typically used to determine whether failure to communicate with a node over the serial port is due to an inability to receive anything or whether it is due to disagreement on the packet format. \fBtos-serial-debug\fR takes optional \fIserial port\fR and \fIbaud rate\fR arguments. The latter cannot be specified unless the former is as well. The \fIserial port\fR argument names a serial port device and defaults to /dev/ttyS0. The \fIbaud rate\fR argument is an ASCII string describing a baud rate, and must be one of 50, 75, 110, 134, 150, 200, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800k, 500000, 576000, 921600, 1000000, 1152000, 1500000, 2000000, 2500000, 3000000, 3500000, or 4000000. It defaults to 19200. Particular software distributions may vary, but the default speeds for current motes platforms are as follows: \fBeyesIFXv2\fR, \fBintelmote2\fR, \fBtelosb\fR, \fBtmote\fR: 115200 .br \fBmica2\fR, \fBmicaz\fR: 57600 .SH EXAMPLE tos-serial-debug tos-serial-debug /dev/ttyS1 tos-serial-debug /dev/ttyS1 57600 .SH SEE ALSO .IR tos-serial-configure (1) tinyos-tools-1.4.2/tools/tinyos/misc/tos-serial-debug.c000066400000000000000000000142751206361226500231470ustar00rootroot00000000000000// $Id: tos-serial-debug.c,v 1.5 2010-06-29 22:07:42 scipio Exp $ /* tab:4 * Copyright (c) 2000-2003 The Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. * - Neither the name of the University of California nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * * Copyright (c) 2002-2003 Intel Corporation * All rights reserved. * * This file is distributed under the terms in the attached INTEL-LICENSE * file. If you do not find these files, copies can be found by writing to * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, * 94704. Attention: Intel License Inquiry. */ #include #include #include #include #include #include #include #include #ifdef __CYGWIN__ #include #endif #define BAUDRATE B19200 //the baudrate that the device is talking #define SERIAL_DEVICE "/dev/ttyS0" //the port to use. int input_stream; void print_usage(char *name); void open_input(int argc, char **argv); int main(int argc, char ** argv) { int n = 0; if (argc > 3 || argc > 1 && argv[1][0] == '-') { print_usage(argv[0]); exit(2); } open_input(argc, argv); while(1) { unsigned char c; int cnt = read(input_stream, &c, 1); if (cnt < 0) { perror("error reading from serial port"); exit(2); } if (cnt == 1) { if (c == 0x7e || ++n == 26) { n = 0; printf("\n"); } printf("%02x ", c); fflush(stdout); } } } void print_usage(char *name){ //usage... fprintf(stderr, "usage: %s [serial port] [baudrate]\n", name); fprintf(stderr, "Default serial port is " SERIAL_DEVICE ", default baud rate is 19200\n"); } void open_input(int argc, char **argv) { /* open input_stream for read/write */ struct termios newtio; const char *name = SERIAL_DEVICE; unsigned long baudrate = BAUDRATE; if (argc > 1) name = argv[1]; if (argc > 2) { int reqrate = atoi(argv[2]); switch (reqrate) { #ifdef B50 case 50: baudrate = B50; break; #endif #ifdef B75 case 75: baudrate = B75; break; #endif #ifdef B110 case 110: baudrate = B110; break; #endif #ifdef B134 case 134: baudrate = B134; break; #endif #ifdef B150 case 150: baudrate = B150; break; #endif #ifdef B200 case 200: baudrate = B200; break; #endif #ifdef B300 case 300: baudrate = B300; break; #endif #ifdef B600 case 600: baudrate = B600; break; #endif #ifdef B1200 case 1200: baudrate = B1200; break; #endif #ifdef B1800 case 1800: baudrate = B1800; break; #endif #ifdef B2400 case 2400: baudrate = B2400; break; #endif #ifdef B4800 case 4800: baudrate = B4800; break; #endif #ifdef B9600 case 9600: baudrate = B9600; break; #endif #ifdef B19200 case 19200: baudrate = B19200; break; #endif #ifdef B38400 case 38400: baudrate = B38400; break; #endif #ifdef B57600 case 57600: baudrate = B57600; break; #endif #ifdef B115200 case 115200: baudrate = B115200; break; #endif #ifdef B230400 case 230400: baudrate = B230400; break; #endif #ifdef B460800 case 460800: baudrate = B460800; break; #endif #ifdef B500000 case 500000: baudrate = B500000; break; #endif #ifdef B576000 case 576000: baudrate = B576000; break; #endif #ifdef B921600 case 921600: baudrate = B921600; break; #endif #ifdef B1000000 case 1000000: baudrate = B1000000; break; #endif #ifdef B1152000 case 1152000: baudrate = B1152000; break; #endif #ifdef B1500000 case 1500000: baudrate = B1500000; break; #endif #ifdef B2000000 case 2000000: baudrate = B2000000; break; #endif #ifdef B2500000 case 2500000: baudrate = B2500000; break; #endif #ifdef B3000000 case 3000000: baudrate = B3000000; break; #endif #ifdef B3500000 case 3500000: baudrate = B3500000; break; #endif #ifdef B4000000 case 4000000: baudrate = B4000000; break; #endif default: fprintf(stderr, "Unknown baudrate %s, defaulting to 19200\n", argv[2]); } } input_stream = open(name, O_RDWR|O_NOCTTY); if (input_stream == -1) { fprintf(stderr, "Failed to open %s", name); perror(""); fprintf(stderr, "Make sure the user has permission to open device.\n"); exit(2); } printf("%s input_stream opened\n", name); #ifdef __CYGWIN__ /* For some very mysterious reason, this incantation is necessary to make the serial port work under some windows machines */ HANDLE handle = (HANDLE)get_osfhandle(input_stream); DCB dcb; if (!(GetCommState(handle, &dcb) && SetCommState(handle, &dcb))) { fprintf(stderr, "serial port initialisation problem\n"); exit(2); } #endif /* Serial port setting */ memset(&newtio, 0, sizeof(newtio)); newtio.c_cflag = CS8 | CLOCAL | CREAD; newtio.c_iflag = IGNPAR | IGNBRK; cfsetispeed(&newtio, baudrate); cfsetospeed(&newtio, baudrate); tcflush(input_stream, TCIFLUSH); tcsetattr(input_stream, TCSANOW, &newtio); } tinyos-tools-1.4.2/tools/tinyos/misc/tos-set-symbols.1000066400000000000000000000047641206361226500230050ustar00rootroot00000000000000.TH tos-set-symbols 1 "Feb 2, 2006" .LO 1 .SH NAME tos-set-symbols - set initialized variable values in a binary .SH SYNOPSIS \fBtos-set-symbols\fR [\fB--objcopy=\fR\fIOBJCOPY\fR] [\fB--objdump=\fR\fIOBJDUMP\fR] [\fB--target=\fR\fITARGET\fR] \fIINPUTFILE\fR \fIOUTPUTFILE\fR [\fISYMBOL\fR=]VALUE... \fBtos-set-symbols\fR --srec [\fB--objcopy=\fR\fIOBJCOPY\fR] [\fB--objdump=\fR\fIOBJDUMP\fR] [\fB--target=\fR\fITARGET\fR] \fIINPUTFILE\fR \fIOUTPUTFILE\fR [\fISYMBOL\fR=]VALUE... \fBtos-set-symbols\fR --exe [\fB--objcopy=\fR\fIOBJCOPY\fR] [\fB--objdump=\fR\fIOBJDUMP\fR] \fIINPUTFILE\fR \fIOUTPUTFILE\fR [\fISYMBOL\fR=]VALUE... \fBtos-set-symbols\fR --read [\fB--objdump=\fR...] \fIINPUTFILE\fR \fISYMBOL\fR... .SH DESCRIPTION \fBtos-set-symbols\fR is a tool to inspect and modify the initial values of variables in a binary. It is used by the TinyOS build system to set a node's ID and AM address, for example, when using \fBinstall.X\fR or \fBreinstall.X\fR. \fBtos-set-symbols\fI takes an optional first argument that specifies the format of the binary being modified or whether it is only being read. By default, it acts as if \fB--srec\fR was passed. Instead of passing \fB--srec\fR, \fB--exe\fR, the \fB--target\fR option can be used to specify a target format. This option is passed to objcopy. The \fB--objdump\fR and \fB--objcopy\fR options allow you to specify which binary tools to use. By default, \fBtos-set-symbols\fR uses \fBavr-objcopy\fR and \fBavr-objdump\fR. The \fISYMBOL\fR parameter refers to a variable in the image to modify or print. If the variable is in a component, its name is of the form \fIcomponent\fR$\fIvariable\fR. If the \fISYMBOL\fR is omitted, it defaults to \fBTOS_LOCAL_ADDRESS\fR, for compatibility with the TinyOS 1.x \fBset-mode-id\fR tool. .SH EXAMPLE . This reads in a micaZ .srec file, changes the value of TOS_NODE_ID to 4, and writes out a new binary to main.srec.out-4. tos-set-symbols build/micaz/main.srec build/micaz/main.srec.out-4 \\ TOS_NODE_ID=4 This reads in a Telos .srec file, changes the value of TOS_NODE_ID and ActiveMessageAddressC$addr to 3, and writes out a new binary to main.srec.out-3. It uses the msp430, rather than the avr, binary tools, and outputs an ihex format executable. tos-set-symbols --objcopy=msp430-objcopy --objdump=msp430-objdump \\ --target=ihex build/telosa/main.ihex build/telosa/main.ihex.out-3 \\ TOS_NODE_ID=3 ActiveMessageAddressC\$addr=3 tinyos-tools-1.4.2/tools/tinyos/misc/tos-set-symbols.in000066400000000000000000000117561206361226500232520ustar00rootroot00000000000000#!@pathperl@ -w # # This program changes the mote ID of a TinyOS image. It is used to # install a program for a specific mote. use strict; my %G_opts = ( compat => 1, objdump => 'avr-objdump', objcopy => 'avr-objcopy', target => 'srec', readdata => 0, ); # default to backward compatability mode while( @ARGV && $ARGV[0] =~ /^-/ ) { (my $opt = shift @ARGV) =~ s/^-+//; if( $opt eq "srec" ) { $G_opts{compat} = 1; } elsif( $opt eq "exe" ) { $G_opts{compat} = 0; } elsif( $opt eq "read" ) { $G_opts{readdata} = 1; $G_opts{compat} = 0; } elsif( exists $G_opts{$opt} ) { $G_opts{$opt} = shift @ARGV; } else { die "Unknown command line option $opt\n"; } } # print usage if we have the wrong number of arguments if( @ARGV < ($G_opts{readdata} ? 1 : 3) ) { print "usage: tos-set-symbols --srec [--objcopy=...] [--objdump=...]\n"; print " [--target=TARGETFILETYPE]\n"; print " INFILE OUTFILE [SYMBOL=]VALUE...\n"; print " tos-set-symbols --exe [--objcopy=...] [--objdump=...]\n"; print " INFILE OUTFILE [SYMBOL]=VALUE...\n"; print " tos-set-symbols --read [--objdump=...] INFILE SYMBOL...\n"; print "\nNote: If omitted, SYMBOL defaults to TOS_LOCAL_ADDRESS.\n"; print "(for TinyOS 1.x compatibility).\n"; exit 0; } # get the args and default variables set up my $exein = shift @ARGV; my $exeout = $G_opts{readdata} ? $exein : shift @ARGV; my %user_symbols = (); if( $G_opts{readdata} ) { for my $name (@ARGV) { $name =~ s/\./\$/g; $user_symbols{$name} = 1; } } else { for my $value (@ARGV) { my $name = 'TOS_LOCAL_ADDRESS'; ($name,$value) = ($1,$2) if $value =~ /^([^=]+)=(.*)/; $value = hex $value if $value =~ /^0x/; $user_symbols{$name} = $value; } } my $segment_vma = undef; my $segment_lma = undef; my $segment_off = undef; # if in compatability mode, derive the names of the exes from the srecs my $srecin = undef; my $srecout = undef; if( $G_opts{compat} ) { $srecin = $exein; $srecout = $exeout; $exein =~ s/$G_opts{target}/exe/; $exeout =~ s/$G_opts{target}/exe/; } # find the data section open( SECTS, "$G_opts{objdump} -h $exein |" ) or die "Cannot extract section information: $!\n"; while() { if( /^\s*\d+\s+\.data\s+\S+\s+(\S+)\s+(\S+)\s+(\S+)/ ) { $segment_vma = hex $1; $segment_lma = hex $2; $segment_off = hex $3; last; } } close(SECTS); warn "Could not find data section in $exein, aborting.\n" unless defined $segment_vma && defined $segment_lma && defined $segment_off; # build a hash of all data segment symbols to their address and size my %exe_symbols = (); open( SYMBOL, "$G_opts{objdump} -t $exein |" ) or die "Cannot extract symbol information: $!\n"; while() { if( /^(\S+)\s+\S+\s+\S+\s+\.data\s+(\S+)\s+(\S+)\s*$/ ) { $exe_symbols{$3} = { addr => hex($1), size => hex($2) }; } } close(SYMBOL); # slurp the input exe open (FILE_IN, "<$exein") or die "Could not open $exein: $!\n"; binmode FILE_IN; my $exe = join("",); close( FILE_IN ); if( $G_opts{readdata} ) { my %nums = ( 1 => 'C', 2 => 'v', 4 => 'V' ); %user_symbols = %exe_symbols unless %user_symbols; my $maxlen = 0; for (keys %user_symbols) { $maxlen = length if length > $maxlen; } for my $symbol (sort keys %user_symbols) { if( defined $exe_symbols{$symbol} ) { my $addr = $exe_symbols{$symbol}->{addr}; my $size = $exe_symbols{$symbol}->{size}; my $filepos = $segment_off + ($addr - $segment_vma); my $value = substr( $exe, $filepos, $size ); (my $valbytes = $value) =~ s/(.)/sprintf('%02x ',ord $1)/eg; $valbytes =~ s/\s+$//; (my $valstr = $value) =~ s/[^\040-\200]/./g; (my $symstr = $symbol) =~ s/\$/./g; my $numstr = ""; if( $nums{length($value)} ) { $numstr = sprintf( ' (%d)', unpack($nums{length($value)},$value) ); } print sprintf("%-${maxlen}s : %s %s\n", $symstr, $valbytes, "[$valstr]$numstr" ); } else { warn "Could not find symbol $symbol in $exein, ignoring symbol.\n"; } } } else { # change the desired symbols at their file offsets for my $symbol (sort keys %user_symbols) { my $value = $user_symbols{$symbol}; if( defined $exe_symbols{$symbol} ) { my $addr = $exe_symbols{$symbol}->{addr}; my $size = $exe_symbols{$symbol}->{size}; my $filepos = $segment_off + ($addr - $segment_vma); my $bytes = substr( pack("V", $value) . ("\000" x $size), 0, $size ); substr( $exe, $filepos, $size ) = $bytes; } else { warn "Could not find symbol $symbol in $exein, ignoring symbol.\n"; } } # barf the output exe open (FILE_OUT, ">$exeout") or die "Could not open $exeout: $!\n"; binmode FILE_OUT; print FILE_OUT $exe; close( FILE_OUT ); # if in compatability mode, convert the output exe to the output srec if( $G_opts{compat} ) { my $cmd = "$G_opts{objcopy} --output-target=$G_opts{target} $exeout $srecout"; system( $cmd ) == 0 or die "Command \"$cmd\" failed"; } } tinyos-tools-1.4.2/tools/tinyos/misc/tos-storage-at45db.1000066400000000000000000000030211206361226500232320ustar00rootroot00000000000000.TH tos-storage-at45db 1 "Feb 3, 2006" .LO 1 .SH NAME tos-storage-at45db - Generate storage volume description code .SH SYNOPSIS \fBtos-storage-at45db\fR [\fB-t\fR] [\fB-s\fR ] [\fB-f\fR ] \fIplatform-directory\fR .SH DESCRIPTION \fBtos-storage-at45db\fR reads a user specification describing the layout of storage volumes on an Atmel AT45DB-family flash chip, and generates code describing that layout for use by the TinyOS 2.0 storage subsystem. The user specification is in XML and is read from standard input. With all options, the code for a header file is written to standard output. With the optional \fB-t\fR flag specified, a VolumeMapC.nc file is generated that provides interfaces to all the storage volume abstractions defined in the XML file. The optional \fB-s\fR flag specifies the sector size on the flash, the default is 256. The optional \fB-f\fR flag specifies the total number of sectors on the flash, the default is 2048. The mandatory \fIplatform-directory\fR argument should specify the platform directory for the current compilation target; this is necessary for the correct handling of file include statements in the XML input. This program is normally invoked automatically by the TinyOS build system when your application directory contains a \fBvolumes-at45db.xml\fR file. .SH EXAMPLES tos-storage-at45db -t /opt/tinyos-2.x/tos/platforms/mica2 \\ build/mica2/StorageVolumes.h .SH SEE ALSO .IR tos-storage-stm25p (1) .IR tos-storage-pxa27xp30 (1) tinyos-tools-1.4.2/tools/tinyos/misc/tos-storage-at45db.in000066400000000000000000000214551206361226500235130ustar00rootroot00000000000000#!@pathpython@ # Copyright (c) 2006-2007 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. from xml.dom import * from xml.dom.minidom import * from re import match from sys import * from subprocess import Popen, PIPE from getopt import * import string import commands #New way of handling arguments........ try: opts, args = getopt(argv[1:], "ts:f:", []) except GetoptError, err: print str(err) # will print something like "option -a not recognized" stderr.write("Usage: tos-storage-at45db [-t] [-s ] [-f ] \n") sector_size = 256 flash_size = 2048 # in sectors cthreads = False for o, a in opts: if o == "-t": cthreads = True elif o == "-s": sector_size = int(a) elif o == "-f": flash_size = int(a) else: assert False, "unhandled option" if len( args ) == 1: platformdir = args[0] # This gives the whole string when there's no / in platformdir platform = platformdir[platformdir.rfind( "/" ) + 1:] elif len( args ) == 0: platformdir = "" platform = "" else: stderr.write("Usage: tos-storage-at45db [-t] \n") # print an error message and exit def nfail(s): stderr.write(s + "\n") exit(2) volumes = {} volmap = [] volumeNames = [] volumeTypes = dict() volumeOptions = dict() def check_volume(name, base, size): if base == "": base = None else: try: base = int(base) except ValueError: nfail("invalid base for volume %s" % name) if (base & (sector_size - 1)) != 0: nfail("base of volume %s is not a multiple of %d" % (name, sector_size)) base /= sector_size try: size = int(size) except ValueError: nfail("invalid size for volume %s" % name) if (size & (sector_size - 1)) != 0: nfail("size of volume %s is not a multiple of %d" % (name, sector_size)) size /= sector_size name = name.upper() if volumes.has_key(name): nfail("duplicate definition of volume %s" % name) if not match("^[a-zA-Z0-9_]+$", name): nfail("invalid volume name %s" % name) volumes[name] = (base, size) def allocate_at(name, base, size): # check for overlap of existing allocations for (vname, vbase, vsize) in volmap: if base in range(vbase, vbase + vsize) or base + size - 1 in range(vbase, vbase + vsize) or vbase in range(base, base + size) or vbase + vsize - 1 in range(base, base + size): nfail("volume %s overlaps volume %s" % (name, vname)) # insert at correct position for i in range(len(volmap)): if base < volmap[i][1]: volmap.insert(i, (name, base, size)) return # it's the last volume... volmap.append((name, base, size)) def allocate(name, size): # We just do first fit. We could spend endless effort doing better. base = 0 for i in range(len(volmap)): (vname, vbase, vsize) = volmap[i] if base < vbase and size <= vbase - base: volmap.insert(i, (name, base, size)) return base = vbase + vsize volmap.append((name, base, size)) def expand_path(path): substrs = path.split("%") path = substrs[0] i = 1 while i < len(substrs): if substrs[i] == "": # There was a %%, leading to a blank substring, and the next string # should just be appended path += "%" i = i + 1 if i < len(substrs): path += substrs[i] else: # The first character of the string is the one that followed % c = substrs[i][0] if c == 'p': sub = platform elif c == 'P': sub = platformdir elif c == 'T': sub = Popen(["ncc", "-print-tosdir"], stdout=PIPE).communicate()[0] sub = sub[:-1] # remove newline else: nfail("unknown include-path substitution character " + c) path += sub path += substrs[i][1:] i = i + 1 return path def volumeparse(file, fname, depth): if depth > 10: nfail("include nesting too deep - check for cycles") try: dom = parse(file) except xml.parsers.expat.ExpatError: nfail(fname + " is not a valid input file") except IOError: nfail("couldn't open file " + fname) for volume in dom.documentElement.getElementsByTagName("volume"): name = volume.getAttribute("name") size = volume.getAttribute("size") base = volume.getAttribute("base") type = string.lower(volume.getAttribute("type")) isCircular = string.upper(volume.getAttribute("circular")) if isCircular == "": isCircular = "FALSE" if name == None: nfail("name omitted in volume " + fname) if size == None: nfail("size omitted in volume %s %s" % (name, fname)) check_volume(name, base, size) volumeNames.append( "VOLUME_" + name ) volumeTypes["VOLUME_" + name] = type volumeOptions["VOLUME_" + name] = isCircular for include in dom.documentElement.getElementsByTagName("include"): included = include.firstChild if included != None and included.nodeType == included.TEXT_NODE: included = expand_path(included.data) volumeparse(included, "(file %s)" % included, depth + 1) else: nfail("invalid include directive " + fname) dom.unlink() volumeparse(stdin, "(standard input)", 0) # allocate fixed-address volumes for name in volumes.keys(): (base, size) = volumes[name] if base != None: allocate_at(name, base, size) # allocate movable volumes for name in volumes.keys(): (base, size) = volumes[name] if base == None: allocate(name, size) if len(volmap) == 0: nfail("no volumes") (lastname, lastbase, lastsize) = volmap[len(volmap) - 1] if lastbase + lastsize > flash_size: nfail("out of space (using %d bytes, have only %d)" % ((lastbase + lastsize) * sector_size, flash_size * sector_size)) # print some code print "#ifndef STORAGE_VOLUMES_H" print "#define STORAGE_VOLUMES_H" print print "enum {" for (vname, vbase, vsize) in volmap: print " VOLUME_%s, " % vname print "};" print print "#endif" print "#if defined(VS)" for (vname, vbase, vsize) in volmap: print "VS(VOLUME_%s, %d)" % (vname, vsize) print "#undef VS" print "#endif" print "#if defined(VB)" for (vname, vbase, vsize) in volmap: print "VB(VOLUME_%s, %d)" % (vname, vbase) print "#undef VB" print "#endif" # output nc file for threads if cthreads == True: outFile = open(commands.getstatusoutput("pwd")[1] + "/VolumeMapC.nc", "w") outFile.write("#include \"StorageVolumes.h\" \n") outFile.write("\n") outFile.write("configuration VolumeMapC { \n") outFile.write(" provides { \n") outFile.write(" interface BlockRead[uint8_t volume_id]; \n") outFile.write(" interface BlockWrite[uint8_t volume_id]; \n") outFile.write(" interface LogRead[uint8_t volumeId]; \n") outFile.write(" interface LogWrite[uint8_t volumeId]; \n") outFile.write(" interface Mount[uint8_t volumeId]; \n") outFile.write(" interface ConfigStorage[uint8_t volumeId]; \n") outFile.write(" } \n") outFile.write("} \n") outFile.write("\n") outFile.write("implementation { \n") outFile.write(" components VolumeMapP; \n") outFile.write("\n") outFile.write(" BlockRead = VolumeMapP; \n") outFile.write(" BlockWrite = VolumeMapP; \n") outFile.write(" LogRead = VolumeMapP; \n") outFile.write(" LogWrite = VolumeMapP; \n") outFile.write(" Mount = VolumeMapP; \n") outFile.write(" ConfigStorage = VolumeMapP; \n") for i in range(len(volumeNames)): if volumeTypes[volumeNames[i]] == "block": outFile.write("\n") outFile.write(" components new BlockStorageC(" + volumeNames[i] + ") as BlockStorageC_" + volumeNames[i] + "; \n") outFile.write(" VolumeMapP.SubBlockRead[" + volumeNames[i] + "] -> BlockStorageC_" + volumeNames[i] + "; \n") outFile.write(" VolumeMapP.SubBlockWrite[" + volumeNames[i] + "] -> BlockStorageC_" + volumeNames[i] + "; \n") outFile.write("\n") elif volumeTypes[volumeNames[i]] == "log": outFile.write("\n") outFile.write(" components new LogStorageC(" + volumeNames[i] + ", " + volumeOptions[volumeNames[i]] + ") as LogStorageC_" + volumeNames[i] + "; \n") outFile.write(" VolumeMapP.SubLogRead[" + volumeNames[i] + "] -> LogStorageC_" + volumeNames[i] + "; \n") outFile.write(" VolumeMapP.SubLogWrite[" + volumeNames[i] + "] -> LogStorageC_" + volumeNames[i] + "; \n") outFile.write("\n") elif volumeTypes[volumeNames[i]] == "config": outFile.write(" components new ConfigStorageC(" + volumeNames[i] + ") as ConfigStorageC_" + volumeNames[i] + "; \n") outFile.write(" Mount[" + volumeNames[i] + "] = ConfigStorageC_" + volumeNames[i] + "; \n") outFile.write(" ConfigStorage[" + volumeNames[i] + "] = ConfigStorageC_" + volumeNames[i] + "; \n") outFile.write("} \n") tinyos-tools-1.4.2/tools/tinyos/misc/tos-storage-pxa27xp30.1000066400000000000000000000024561206361226500236360ustar00rootroot00000000000000.TH tos-storage-pxa27xp30 1 "July 26, 2006" .LO 1 .SH NAME tos-storage-pxa27xp30 - Generate storage volume description code .SH SYNOPSIS \fBtos-storage-pxa27xp30\fR .SH DESCRIPTION \fBtos-storage-pxa27xp30\fR reads a user specification describing the layout of storage volumes on an embedded P30 flash in the Intel Xscale PXA27X series processor, and generates code describing that layout for use by the TinyOS 2.0 storage subsystem. The user specification is in XML and is read from standard input. With all options, the code for a header file is written to standard output. With the optional \fB-t\fR flag specified, a VolumeMapC.nc file is generated that provides interfaces to all the storage volume abstractions defined in the XML file. The mandatory \fIplatform-directory\fR argument should specify the platform directory for the current compilation target; this is necessary for the correct handling of file include statements in the XML input. This program is normally invoked automatically by the TinyOS build system when your application directory contains a \fBvolumes-pxa27xp30.xml\fR file. .SH EXAMPLES tos-storage-pxa27xp30 -t /opt/tinyos-2.x/tos/platforms/intelmote2 \\ build/telosb/StorageVolumes.h .SH SEE ALSO .IR tos-storage-stm25p (1) .IR tos-storage-at45db (1) tinyos-tools-1.4.2/tools/tinyos/misc/tos-storage-pxa27xp30.in000077500000000000000000000211051206361226500240770ustar00rootroot00000000000000#!@pathpython@ # -*- python -*- # Copyright (c) 2005-2006 Arch Rock Corporation # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # - Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # - Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the # distribution. # - Neither the name of the Arch Rock Corporation nor the names of # its contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # OF THE POSSIBILITY OF SUCH DAMAGE # # @author Jonathan Hui # @author Kaisen Lin # # $Revision: 1.7 $ # $Date: 2009-10-28 04:19:20 $ # from re import match from sys import * from xml.dom import minidom from getopt import * import string import commands #New way of handling arguments........ try: opts, args = getopt(argv[1:], "t", []) except GetoptError, err: print str(err) # will print something like "option -a not recognized" stderr.write( "Usage: tos-storage-stm25p [-t] \n" ) if len( args ) == 1: platformdir = args[0] # This gives the whole string when there's no / in platformdir platform = platformdir[platformdir.rfind( "/" ) + 1:] elif len( args ) == 0: platformdir = "" platform = "" else: stderr.write( "Usage: tos-storage-stm25p [-t] \n" ) cthreads = False for o, a in opts: if o == "-t": cthreads = True else: assert False, "unhandled option" NUM_SECTORS = 16 SECTOR_SIZE = 2097152 volumes = {} volumeNames = [] volumeSizes = [] volumeOffsets = [] volumeTypes = dict() volumeOptions = dict() freeSectors = NUM_SECTORS*[ True ] def error_exit( s ): stderr.write( "ERROR: " + s + "\n" ) exit( 2 ) try: dom = minidom.parse( stdin ) except xml.parsers.expat.ExpatError: error_exit( "input invalid" ) # initialize reserved piece volumes [ "PXARESERVED" ] = "blah" volumeNames.append( "VOLUME_PXARESERVED" ) volumeSizes.append( 1 ) volumeOffsets.append( 0 ) volumeTypes[ "VOLUME_PXARESERVED" ] = "" freeSectors[ 0 ] = False # extract information for volume in dom.documentElement.getElementsByTagName( "volume" ): name = volume.getAttribute( "name" ) size = volume.getAttribute( "size" ) base = volume.getAttribute( "base" ) type = string.lower(volume.getAttribute("type")) isCircular = string.upper(volume.getAttribute("circular")) if isCircular == "": isCircular = "FALSE" if name == "": error_exit( "volume has no name" ) elif not match( "^[a-zA-Z0-9_]+$", name ): error_exit( "volume has invalid name '%s'" % name ) elif volumes.has_key( name ): error_exit( "duplicate volume definition '%s'" % name ) else: volumes[ name ] = "blah" if size == "": error_exit( "volume '%s' has no size" % name ) try: size = int( size ) except ValueError: error_exit( "volume '%s' has invalid size" % name ) if base != "": try: base = int( base ) except ValueError: error_exit( "volume '%s' has invalid base" % name ) if ( size & ( SECTOR_SIZE - 1 ) ) != 0: error_exit( "size of volume '%s' is not a multiple of %d" % \ ( name, SECTOR_SIZE ) ) if base != "" and ( base & ( SECTOR_SIZE - 1 ) ) != 0: error_exit( "base of volume '%s' is not a multiple of %d" % \ ( name, SECTOR_SIZE ) ) volumeNames.append( "VOLUME_" + name ) volumeSizes.append( size / SECTOR_SIZE ) volumeTypes["VOLUME_" + name] = type volumeOptions["VOLUME_" + name] = isCircular if base == "": volumeOffsets.append( -1 ) else: base = base / SECTOR_SIZE volumeOffsets.append( base ) for i in range( size / SECTOR_SIZE ): freeSectors[ i + base ] = False # allocate with first fit policy for i in range( len( volumeOffsets ) ): size = volumeSizes[ i ] if volumeOffsets[ i ] == -1: for j in range( NUM_SECTORS ): if freeSectors[ j ]: size -= 1 if size == 0: volumeOffsets[ i ] = j - ( volumeSizes[ i ] - 1 ) break else: size = volumeSizes[ i ] if volumeOffsets[ i ] == -1: raise "Unable to satisfy allocation request." else: for j in range( volumeSizes[ i ] ): freeSectors[ volumeOffsets[ i ] + j ] = False # output C file print "#ifndef __STORAGE_VOLUME_H__" print "#define __STORAGE_VOLUME_H__" print "" print "#include \"P30.h\"" print "" for i in range( len( volumeNames ) ): print "#define %s %d" % ( volumeNames[ i ], i ) print "#define %s %s" % ( volumeNames[ i ] + "_UQ", "unique(\"pxa27xp30.Volume\")" ) print "#define _V_NUMVOLS_ %d" % ( len( volumeNames )) print "" print "static const p30_volume_info_t P30_VMAP[ %d ] = {" % \ len( volumeNames ) for i in range( len( volumeNames ) ): print " { base : %d, size : %d }," % \ ( volumeOffsets[ i ], volumeSizes[ i ] ) print "};" print "" print "#endif" # output nc file for threads if cthreads == True: outFile = open(commands.getstatusoutput("pwd")[1] + "/VolumeMapC.nc", "w") outFile.write("#include \"StorageVolumes.h\" \n") outFile.write("\n") outFile.write("configuration VolumeMapC { \n") outFile.write(" provides { \n") outFile.write(" interface BlockRead[uint8_t volume_id]; \n") outFile.write(" interface BlockWrite[uint8_t volume_id]; \n") outFile.write(" interface LogRead[uint8_t volumeId]; \n") outFile.write(" interface LogWrite[uint8_t volumeId]; \n") outFile.write(" interface Mount[uint8_t volumeId]; \n") outFile.write(" interface ConfigStorage[uint8_t volumeId]; \n") outFile.write(" } \n") outFile.write("} \n") outFile.write("\n") outFile.write("implementation { \n") outFile.write(" components VolumeMapP; \n") outFile.write("\n") outFile.write(" BlockRead = VolumeMapP; \n") outFile.write(" BlockWrite = VolumeMapP; \n") outFile.write(" LogRead = VolumeMapP; \n") outFile.write(" LogWrite = VolumeMapP; \n") outFile.write(" Mount = VolumeMapP; \n") outFile.write(" ConfigStorage = VolumeMapP; \n") for i in range(len(volumeNames)): if volumeTypes[volumeNames[i]] == "block": outFile.write("\n") outFile.write(" components new BlockStorageC(" + volumeNames[i] + ") as BlockStorageC_" + volumeNames[i] + "; \n") outFile.write(" VolumeMapP.SubBlockRead[" + volumeNames[i] + "] -> BlockStorageC_" + volumeNames[i] + "; \n") outFile.write(" VolumeMapP.SubBlockWrite[" + volumeNames[i] + "] -> BlockStorageC_" + volumeNames[i] + "; \n") outFile.write("\n") elif volumeTypes[volumeNames[i]] == "log": outFile.write("\n") outFile.write(" components new LogStorageC(" + volumeNames[i] + ", " + volumeOptions[volumeNames[i]] + ") as LogStorageC_" + volumeNames[i] + "; \n") outFile.write(" VolumeMapP.SubLogRead[" + volumeNames[i] + "] -> LogStorageC_" + volumeNames[i] + "; \n") outFile.write(" VolumeMapP.SubLogWrite[" + volumeNames[i] + "] -> LogStorageC_" + volumeNames[i] + "; \n") outFile.write("\n") elif volumeTypes[volumeNames[i]] == "config": outFile.write(" components new ConfigStorageC(" + volumeNames[i] + ") as ConfigStorageC_" + volumeNames[i] + "; \n") outFile.write(" Mount[" + volumeNames[i] + "] = ConfigStorageC_" + volumeNames[i] + "; \n") outFile.write(" ConfigStorage[" + volumeNames[i] + "] = ConfigStorageC_" + volumeNames[i] + "; \n") outFile.write("} \n") tinyos-tools-1.4.2/tools/tinyos/misc/tos-storage-stm25p.1000066400000000000000000000024071206361226500233100ustar00rootroot00000000000000.TH tos-storage-stm25p 1 "Feb 3, 2006" .LO 1 .SH NAME tos-storage-stm25p - Generate storage volume description code .SH SYNOPSIS \fBtos-storage-stm25p\fR \fIplatform-directory\fR .SH DESCRIPTION \fBtos-storage-stm25p\fR reads a user specification describing the layout of storage volumes on an ST M25P80 flash chip, and generates code describing that layout for use by the TinyOS 2.0 storage subsystem. The user specification is in XML and is read from standard input. With all options, the code for a header file is written to standard output. With the optional \fB-t\fR flag specified, a VolumeMapC.nc file is generated that provides interfaces to all the storage volume abstractions defined in the XML file. The mandatory \fIplatform-directory\fR argument should specify the platform directory for the current compilation target; this is necessary for the correct handling of file include statements in the XML input. This program is normally invoked automatically by the TinyOS build system when your application directory contains a \fBvolumes-stm25p.xml\fR file. .SH EXAMPLES tos-storage-stm25p -t /opt/tinyos-2.x/tos/platforms/telosb \\ build/telosb/StorageVolumes.h .SH SEE ALSO .IR tos-storage-pxa27xp30 (1) .IR tos-storage-at45db (1) tinyos-tools-1.4.2/tools/tinyos/misc/tos-storage-stm25p.in000066400000000000000000000243761206361226500235670ustar00rootroot00000000000000#!@pathpython@ # -*- python -*- # Copyright (c) 2005-2006 Arched Rock Corporation # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # - Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # - Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the # distribution. # - Neither the name of the Arched Rock Corporation nor the names of # its contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # OF THE POSSIBILITY OF SUCH DAMAGE # # Copyright (c) 2006-2007 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. # @author Jonathan Hui # @author David Gay # @author Kevin Klues # # $Revision: 1.8 $ # $Date: 2009-10-28 04:19:20 $ # from re import match from sys import * from xml.dom import * from xml.dom.minidom import * from subprocess import Popen, PIPE from getopt import * import string import commands #New way of handling arguments........ try: opts, args = getopt(argv[1:], "ts:", []) except GetoptError, err: print str(err) # will print something like "option -a not recognized" stderr.write( "Usage: tos-storage-stm25p [-t] [-s number of sectors] \n" ) if len( args ) == 1: platformdir = args[0] # This gives the whole string when there's no / in platformdir platform = platformdir[platformdir.rfind( "/" ) + 1:] elif len( args ) == 0: platformdir = "" platform = "" else: stderr.write( "Usage: tos-storage-stm25p [-t] [-s number of sectors] \n" ) cthreads = False NUM_SECTORS = 16 SECTOR_SIZE = 65536 for o, a in opts: if o == "-t": cthreads = True elif o == "-s": NUM_SECTORS = int(a) else: assert False, "unhandled option" def error_exit( s ): stderr.write( "ERROR: " + s + "\n" ) exit( 2 ) def expand_path( path ): substrs = path.split( "%" ) path = substrs[0] i = 1 while i < len( substrs ): if substrs[i] == "": # There was a %%, leading to a blank substring, and the next string # should just be appended path += "%" i = i + 1 if i < len( substrs ): path += substrs[i] else: # The first character of the string is the one that followed % c = substrs[i][0] if c == 'p': sub = platform elif c == 'P': sub = platformdir elif c == 'T': sub = Popen( ["ncc", "-print-tosdir"], stdout=PIPE ).communicate( )[0] sub = sub[:-1] # remove newline else: nfail( "unknown include-path substitution character " + c ) path += sub path += substrs[i][1:] i = i + 1 return path volumes = {} volumeNames = [] volumeSizes = [] volumeOffsets = [] volumeTypes = dict() volumeOptions = dict() freeSectors = NUM_SECTORS*[ True ] def volumeparse( file, fname, depth ): if depth > 10: error_exit( "include nesting too deep - check for cycles" ) try: dom = parse( file ) except xml.parsers.expat.ExpatError: error_exit( fname + " is not a valid input file" ) except IOError: error_exit( "couldn't open file " + fname ) # extract information for volume in dom.documentElement.getElementsByTagName( "volume" ): name = volume.getAttribute( "name" ) size = volume.getAttribute( "size" ) base = volume.getAttribute( "base" ) type = string.lower(volume.getAttribute("type")) isCircular = string.upper(volume.getAttribute("circular")) if isCircular == "": isCircular = "FALSE" if name == "": error_exit( "volume has no name" ) elif not match( "^[a-zA-Z0-9_]+$", name ): error_exit( "volume has invalid name '%s'" % name ) elif volumes.has_key( name ): error_exit( "duplicate volume definition '%s'" % name ) else: volumes[ name ] = "blah" if size == "": error_exit( "volume '%s' has no size" % name ) try: size = int( size ) except ValueError: error_exit( "volume '%s' has invalid size" % name ) if base != "": try: base = int( base ) except ValueError: error_exit( "volume '%s' has invalid base" % name ) if ( size & ( SECTOR_SIZE - 1 ) ) != 0: error_exit( "size of volume '%s' is not a multiple of %d" % \ ( name, SECTOR_SIZE ) ) if base != "" and ( base & ( SECTOR_SIZE - 1 ) ) != 0: error_exit( "base of volume '%s' is not a multiple of %d" % \ ( name, SECTOR_SIZE ) ) volumeNames.append( "VOLUME_" + name ) volumeSizes.append( size / SECTOR_SIZE ) volumeTypes["VOLUME_" + name] = type volumeOptions["VOLUME_" + name] = isCircular if base == "": volumeOffsets.append( -1 ) else: base = base / SECTOR_SIZE size = size / SECTOR_SIZE volumeOffsets.append( base ) for i in range( size ): freeSectors[ i + base ] = False for include in dom.documentElement.getElementsByTagName( "include" ): included = include.firstChild if included != None and included.nodeType == included.TEXT_NODE: included = expand_path( included.data ) volumeparse( included, "(file %s)" % included, depth + 1 ) else: error_exit( "invalid include directive " + fname ) dom.unlink( ) volumeparse( stdin, "(standard input)", 0 ) # allocate with first fit policy for i in range( len( volumeOffsets ) ): size = volumeSizes[ i ] if volumeOffsets[ i ] == -1: for j in range( NUM_SECTORS ): if freeSectors[ j ]: size -= 1 if size == 0: volumeOffsets[ i ] = j - ( volumeSizes[ i ] - 1 ) break else: size = volumeSizes[ i ] if volumeOffsets[ i ] == -1: raise "Unable to satisfy allocation request." else: for j in range( volumeSizes[ i ] ): freeSectors[ volumeOffsets[ i ] + j ] = False # output C file print "#ifndef __STORAGE_VOLUME_H__" print "#define __STORAGE_VOLUME_H__" print "" print "#include \"Stm25p.h\"" print "" for i in range( len( volumeNames ) ): print "#define %s %d" % ( volumeNames[ i ], i ) print "" print "static const stm25p_volume_info_t STM25P_VMAP[ %d ] = {" % \ len( volumeNames ) for i in range( len( volumeNames ) ): print " { base : %d, size : %d }," % \ ( volumeOffsets[ i ], volumeSizes[ i ] ) print "};" print "" print "#endif" # output nc file for threads if cthreads == True: outFile = open(commands.getstatusoutput("pwd")[1] + "/VolumeMapC.nc", "w") outFile.write("#include \"StorageVolumes.h\" \n") outFile.write("\n") outFile.write("configuration VolumeMapC { \n") outFile.write(" provides { \n") outFile.write(" interface BlockRead[uint8_t volume_id]; \n") outFile.write(" interface BlockWrite[uint8_t volume_id]; \n") outFile.write(" interface LogRead[uint8_t volumeId]; \n") outFile.write(" interface LogWrite[uint8_t volumeId]; \n") outFile.write(" interface Mount[uint8_t volumeId]; \n") outFile.write(" interface ConfigStorage[uint8_t volumeId]; \n") outFile.write(" } \n") outFile.write("} \n") outFile.write("\n") outFile.write("implementation { \n") outFile.write(" components VolumeMapP; \n") outFile.write("\n") outFile.write(" BlockRead = VolumeMapP; \n") outFile.write(" BlockWrite = VolumeMapP; \n") outFile.write(" LogRead = VolumeMapP; \n") outFile.write(" LogWrite = VolumeMapP; \n") outFile.write(" Mount = VolumeMapP; \n") outFile.write(" ConfigStorage = VolumeMapP; \n") for i in range(len(volumeNames)): if volumeTypes[volumeNames[i]] == "block": outFile.write("\n") outFile.write(" components new BlockStorageC(" + volumeNames[i] + ") as BlockStorageC_" + volumeNames[i] + "; \n") outFile.write(" VolumeMapP.SubBlockRead[" + volumeNames[i] + "] -> BlockStorageC_" + volumeNames[i] + "; \n") outFile.write(" VolumeMapP.SubBlockWrite[" + volumeNames[i] + "] -> BlockStorageC_" + volumeNames[i] + "; \n") outFile.write("\n") elif volumeTypes[volumeNames[i]] == "log": outFile.write("\n") outFile.write(" components new LogStorageC(" + volumeNames[i] + ", " + volumeOptions[volumeNames[i]] + ") as LogStorageC_" + volumeNames[i] + "; \n") outFile.write(" VolumeMapP.SubLogRead[" + volumeNames[i] + "] -> LogStorageC_" + volumeNames[i] + "; \n") outFile.write(" VolumeMapP.SubLogWrite[" + volumeNames[i] + "] -> LogStorageC_" + volumeNames[i] + "; \n") outFile.write("\n") elif volumeTypes[volumeNames[i]] == "config": outFile.write(" components new ConfigStorageC(" + volumeNames[i] + ") as ConfigStorageC_" + volumeNames[i] + "; \n") outFile.write(" Mount[" + volumeNames[i] + "] = ConfigStorageC_" + volumeNames[i] + "; \n") outFile.write(" ConfigStorage[" + volumeNames[i] + "] = ConfigStorageC_" + volumeNames[i] + "; \n") outFile.write("} \n") tinyos-tools-1.4.2/tools/tinyos/misc/tos-write-buildinfo.in000066400000000000000000000025631206361226500240700ustar00rootroot00000000000000#!@pathperl@ -w # # This script generates an XML description of the buildinformation. This is # primarily used by other tools such as checkers, tests and continuous # integration. # #$Id: tos-write-buildinfo.in,v 1.6 2007-09-03 14:02:48 beutel Exp $ #@author Jan Beutel # use strict; my $MaxNameLength = 10; if ( @ARGV == 0 ) { print "usage: tos-write-buildinfo [ident_flags] [exe_file]\n"; exit 0; } my %ident_flags = (); my $exe = ""; my $size = "avr-size"; my $platform = ""; for my $arg (@ARGV) { if ($arg =~ /^-DIDENT_(.+)=0x(.+)$/) { $ident_flags{lc($1)} = uc($2); } elsif ($arg =~ /^-DIDENT_(.+)="(.+)"$/) { $ident_flags{lc($1)} = $2; } elsif ($arg =~ /^--exe=(.+)$/) { $exe = $1; } elsif ($arg =~ /^--size=(.+)$/) { $size = $1; } elsif ($arg =~ /^--platform=(.+)$/) { $platform = $1; } } my @text; my $rc2 = qx"$size $exe |grep main "; #print $rc2; #print $size; @text = split(' ', $rc2); print "\n"; print " "; print $text[1]; print "\n"; print " <$platform-ram>"; print $text[1]; print "\n"; print " "; print $text[0]; print "\n"; print " <$platform-flash>"; print $text[0]; print "\n"; print " "; print $text[2]; print "\n"; print " <$platform-stack>"; print $text[2]; print "\n"; print "\n"; tinyos-tools-1.4.2/tools/tinyos/misc/tos-write-image.1000066400000000000000000000012101206361226500227150ustar00rootroot00000000000000.TH tos-write-image 1 "Feb 3, 2006" .LO 1 .SH NAME tos-write-image - Generate executable description for Deluge .SH SYNOPSIS \fBtos-write-image\fR [\fB-DIDENT_\fIname\fB=\fIvalue\fR...] [\fB--objdump=\fIobjdump\fR] \fB--exe=\fIexefile\fR \fB--ihex=\fIhexfile\fR .SH DESCRIPTION \fBtos-write-image\fR writes an XML description of an executable file to standard output, based on the contents of a compiled file and the identifying options generated by \fBtos-ident-flags\fR. \fBtos-write-image\fR is normally invoked by the TinyOS build system. See the Deluge documentation for more details. .SH SEE ALSO .IR tos-ident-flags (1) tinyos-tools-1.4.2/tools/tinyos/misc/tos-write-image.in000066400000000000000000000030711206361226500231720ustar00rootroot00000000000000#!@pathperl@ -w # # This script generates an ihex binary image and XML description # from an srec binary image. These are used by the Deluge binary # image dissemination service. # #$Id: tos-write-image.in,v 1.5 2007-04-27 05:01:25 prabal Exp $ #@author Jonathan Hui # use strict; my $MaxNameLength = 10; if ( @ARGV == 0 ) { print "usage: tos-write-image [ident_flags] [exe_file]\n"; exit 0; } my %ident_flags = (); my $exe = ""; my $ihex = ""; my $objdump = "avr-objdump"; my $platform = ""; for my $arg (@ARGV) { if ($arg =~ /^-DIDENT_(.+)=0x(.+)$/) { $ident_flags{lc($1)} = uc($2); } elsif ($arg =~ /^-DIDENT_(.+)="(.+)"$/) { $ident_flags{lc($1)} = $2; } elsif ($arg =~ /^--ihex=(.+)$/) { $ihex = $1; } elsif ($arg =~ /^--exe=(.+)$/) { $exe = $1; } elsif ($arg =~ /^--objdump=(.+)$/) { $objdump = $1; } elsif ($arg =~ /^--platform=(.+)$/) { $platform = $1; } } my $deluge_support = "no"; # See if app has deluge included open( EXE, "$objdump -t $exe |") or die "Cannot open exe file: $!\n"; while() { if ( /Deluge/ ) { $deluge_support = "yes"; } } close(EXE); $ident_flags{"deluge_support"} = $deluge_support; $ident_flags{"platform"} = $platform; open ( IHEX, $ihex ) or die "Cannot open ihex file: $!\n"; print "\n"; print " \n"; for my $flag (keys %ident_flags) { print " <$flag>$ident_flags{$flag}\n"; } print " \n"; print " \n"; while ( my $line = ) { print $line; } print " \n"; print "\n"; tinyos-tools-1.4.2/tools/tinyos/ncc/000077500000000000000000000000001206361226500174345ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/tinyos/ncc/Makefile.am000066400000000000000000000007251206361226500214740ustar00rootroot00000000000000# Copyright (c) 2002-2005 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. AUTOMAKE_OPTIONS = foreign SUBDIRS = nesdoc-py dist_man_MANS = mig.1 ncc.1 ncg.1 nesdoc.1 bin_SCRIPTS = mig ncg ncc nesdoc tinyos-tools-1.4.2/tools/tinyos/ncc/mig.1000066400000000000000000000014211206361226500202700ustar00rootroot00000000000000.TH mig 1 "April 27, 2004" .LO 1 .SH NAME mig - message interface generator for TinyOS .SH SYNOPSIS \fBmig\fR [any ncc option] [tool-specific options] [\fB-o\fR \fIoutput-file\fR] \fItool\fR \fImsg-format-file\fR \fImessage-type\fR .SH DESCRIPTION \fBmig\fR is a tool to generate code to process TinyOS messages (which are specified by C types). \fBmig \fIoptions\fR is equivalent to \fBnescc-mig -nescc=ncc \fIoptions\fR. For details on \fBmig\fR's output and options, please read see the \fBnescc-mig\fR man page. .SH EXAMPLE APPDIR=`ncc -print-tosdir`/../apps/Ident mig java -I $APPDIR -target=mica2 \\ -java-classname=net.tinyos.ident.IdentMsg \\ $APPDIR/App.nc IdentMsg -o IdentMsg.java .SH SEE ALSO .IR ncc (1), .IR nescc-mig (1), .IR ncg (1) tinyos-tools-1.4.2/tools/tinyos/ncc/mig.in000066400000000000000000000010361206361226500205400ustar00rootroot00000000000000#!/bin/sh # Copyright (c) 2005 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. prefix="@prefix@"; exec_prefix="@exec_prefix@"; exec "@nescc_prefix@/bin/nescc-mig" "-nescc=$exec_prefix/bin/ncc" "$@" err=$? echo "Couldn't execute @nescc_prefix@/bin/nescc-mig" >&2 exit $err tinyos-tools-1.4.2/tools/tinyos/ncc/ncc.1000066400000000000000000000151021206361226500202600ustar00rootroot00000000000000.TH ncc 1 "April 27, 2004" .LO 1 .SH NAME ncc - nesC compiler for TinyOS .SH SYNOPSIS \fBncc\fR [\fB-target=\fIpc|mica|mica2|mica2dot|...\fR] [\fB-tossim\fR] [\fB-board=\fImicasb|basicsb|micawb|...\fR] [\fB-tosdir=\fIdir\fR] [\fB-tosscheduler=...\fR] [\fB-nostdinc\fR] [\fB--version\fR] [\fB-print-tosdir\fR] [\fB-print-platforms\fR] [\fB-print-target\fR] [any nescc option] [any gcc option] \fIfiles\fR... .SH DESCRIPTION \fBncc\fR is an extension to \fBnescc\fR that knows how to compile nesC applications for a TinyOS environment. If invoked on regular C files, it behaves like \fBgcc\fR. When invoked on a nesC component or interface (\fB.nc\fR extension) file it compiles and links (except if the usual \fB-c\fR, \fB-S\fR, \fB-E\fR or \fB-fsyntax-only\fR options are used) that component with the other files specified on the command line. \fBncc\fR just invokes \fBnescc\fR with extra options based on the selected platform and sensorboard(s). And \fBnescc\fR itself just invokes \fBgcc\fR. Thus, for a full understanding of possible \fBncc\fR options you should read the \fBnescc\fR and \fBgcc\fR man pages. .SH OPTIONS \fBncc\fR accepts all \fBgcc\fR and \fBnescc\fR options, and some additional TinyOS specific options: .TP \fB-target=\fIX\fR Specify the target architecture for this compilation. If \fB-tossim\fR is also specified, the compilation uses the tossim environment and produces a locally executable file. The default target is specified in the \fB.default-platform\fR file in your TinyOS directory (see \fB-tosdir\fR option), and defaults to \fBmica\fR if that file is absent. A platform that is not in the TinyOS distribution can be used if its directory is specified with an explicit -I directive (the platform name is taken from the directory's name, platform directories are recognised by the presence of a \fB.platform\fR file). .TP \fB-tosdir=\fIdir\fR Specify the location of TinyOS. This location can also be specified with the \fBTOSDIR\fR environment variable. If the variable and the option are both given, \fBncc\fR uses the value specified with the option. If neither the environment variable or option are specified, ncc uses its compiled-in TinyOS directory. .TP \fB-tosscheduler=\fIcomponent,unique-string,interface-name,interface-definition,run-event,post-command\fR By default, nesC compiles uses of \fBtask void\fR \fItaskname\fR\fB() ...\fR to \fBvoid\fR \fItaskname\fR\fB()\fR, and \fBpost\fR \fItaskname\fR\fB()\fR to \fBTOS_post\fR\fB(\fR\fItaskname\fR\fB)\fR. .IP With this option, each task gets its own \fIinterface-definition\fR interface, the task implementation is transformed into a \fIrun-event event\fR and posts becomes a call to the \fIpost-command\fR command. This per-task interface is automatically connected to the parameterised \fIinterface-name\fR interface of scheduler \fIcomponent\fR component. The parameter id for the connection is chosen with \fBunique\fR("\fIunique-string\fR"). .IP If this option is not set explicity, its parameters are assigned by default as follows: .IP -tosscheduler=\fITinySchedulerC,TinySchedulerC.TaskBasic,TaskBasic,TaskBasic,runTask,postTask\fR .TP \fB-tossim\fR Compile for the TOSSIM environment rather than a native platform. Every directory in the search path will be duplicated, with the first copy having \fB/sim\fR appended to it. .TP \fB-print-tosdir\fR Print the TinyOS directory to be used and exit, taking into account the \fB-tosdir\fR option and \fBTOSDIR\fR environment variable. No compilation occurs when \fB-print-tosdir\fR is used. .TP \fB-print-platforms\fR Print the valid TinyOS platforms, including those made available by explicit \fB-I\fR directives (see \fB-target\fR option). .TP \fB-print-target\fR Print the name of the selected target. Most useful when \fB-target\fR is not specified. .TP \fB-nostdinc\fR Do not automatically include the TinyOS directories in the search path. See the discussion of search paths below for more details. .TP \fB-board=\fIY\fR Specify one (or more) sensor boards. This effects the search path and preprocessor symbols. The set of boards is set by the TinyOS distribution (see the \fBtos/sensorboards\fR directory). As with targets, a sensorboard directory can be made available via an explicit \fB-I\fR directive (sensorboard directories are recognised by the presence of a \fB.sensor\fR file). .TP \fB--version\fR Print the version of \fBncc\fR, \fBnescc\fR and of the gcc compiler used for the selected target. .SH EXAMPLES If you wish to compile a component Bar.nc to a C file, you can do: .IP ncc -c -o /dev/null -fnesc-cfile=Bar.c Bar.nc .SH SEARCH PATH \fBncc\fR performs the following substitutions on the directories specified with the \fB-I\fR option: \fB%T\fR is replaced by the TinyOS directory, \fB%p\fR is replaced by the selected target, \fB%P\fR is replaced by the target's platform directory, \fB%%\fR is replaced by \fB%\fR. Except when \fB-nostdinc\fR is specified, the search path for nesC components is as follows, where \fItosdir\fR is the TinyOS directory requested and \fItarget\fR is the selected target: .IP * The current directory .IP * \fB-I\fR directives (in option order) .IP * %T/sensorboards/\fIboardname\fR, for each \fB-board=\fIboardname\fR option specified (in option order) - except if the sensorboard was found via an explicit -I directive .IP * %T/platform/%p - except if the platform was found via an explicit -I directive .IP * Additional directories requested by the selected target (e.g., %T/platform/avrmote for the mica target) .IP * %T/interfaces .IP * %T/system .IP * %T/lib .IP * \fBNESCPATH\fR environment variable directories (note that %T and %p subsitution is not performed on these directories). .PP When \fB-nostdinc\fR is specified, the search path is simply: .IP * The current directory .IP * \fB-I\fR directives .IP * \fBNESCPATH\fR environment variable directories .SH PREPROCESSOR SYMBOLS In addition to the preprocessor symbols defined by \fBgcc\fR and \fBnescc\fR, \fBncc\fR defines: .TP \fBPLATFORM_\fItarget\fR where \fItarget\fR is the selected target name, converted to upper case .TP \fBBOARD_\fIboardname\fR for each \fB-board=\fIboardname\fR option (the boardname is converted to upper case) .SH ENVIRONMENT VARIABLES .TP .B TOSDIR If the \fB-tosdir=\fIdir\fR option is not used, the \fBTOSDIR\fR environment variable specifies the location of TinyOS. .SH SEE ALSO .IR gcc (1), platform-specific gcc, .IR nescc (1) .SH NOTES \fBncc\fR is built over \fBnescc\fR, which handles the non-TinyOS-specific functionality of \fBncc\fR. Users of nesC in a non-TinyOS context may prefer to use \fBnescc\fR (see the source code of ncc and nescc for details). tinyos-tools-1.4.2/tools/tinyos/ncc/ncc.in000066400000000000000000000164071206361226500205370ustar00rootroot00000000000000#!@pathperl@ # -*- perl -*- # Copyright (c) 2002-2005 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. # Configuration $TOSDIR = "@TOSDIR@"; $TOSDIR = $ENV{"TOSDIR"} if defined($ENV{"TOSDIR"}); $nescc = "@nescc_prefix@/bin/nescc"; $tossim = 0; $is_tos_1 = 0; $with_scheduler_flag = 1; # Support platform directory renaming for 2.x if (-d "$TOSDIR/platform") { $platform = "platform"; $is_tos_1 = 1; } else { $platform = "platforms"; } my $exeflag=0; my $libs = ""; # Have fun with the arguments for ($i = 0; $i <= $#ARGV; $i++) { $strip = 0; $_ = $ARGV[$i]; if (/^-/) { if (/^-target=(.*)/) { &fail("multiple targets specified") if defined($target); $target = $1; $strip = 1; } elsif (/^-tosdir=(.*)/) { $TOSDIR = $1; $strip = 1; } elsif (/^-tosscheduler=(.*)/) { $scheduler = $1; $strip = 1; } elsif (/^-nostdinc$/) { $nostdinc = 1; } elsif (/^-board=(.*)/) { push @boards, $1; $strip = 1; } elsif (/^-print-tosdir$/) { $print_tosdir = 1; $strip = 1; } elsif (/^-print-target$/) { $print_target = 1; $strip = 1; } elsif (/^-print-platforms$/) { $print_platforms = 1; $strip = 1; } elsif (/^-g$/) { $debugging = 1; } elsif (/^-v$/) { $verbose = 1; } elsif (/^-tossim$/) { $tossim = 1; $strip = 1; } elsif (/^-I/) { ($i, $file) = &extractarg($i); $strip = 1; push @includes, $file; } elsif (/^-fnesc-cfile=(.*)/){ $appfilename=$1; } elsif (/^-o$/){ $exeflag=1; } elsif (/^-l/) { $libs = $libs . " " . $_; } elsif (/^--version$/) { $print_version = 1; } } elsif ($exeflag) { $exefilename =$_; $exeflag=0; } push @new_args, $_ if !$strip; } if ($print_version) { print "ncc: @PACKAGE_VERSION@\n"; } # Remove trailing / from TOSDIR, if any (it confuses the topdir stuff) chop $TOSDIR if $TOSDIR =~ m!./$!; if ($print_tosdir) { print $TOSDIR, "\n"; exit 0; } if ($print_platforms) { print join(" ", all_platforms()), "\n"; exit 0; } if ($tossim) { push @new_args, "-DTOSSIM"; } if (!defined $target) { if (open DEFTARGET, "$TOSDIR/.default-platform") { $target = ; chomp $target; } else { $target = "@default_target@"; } } if (!defined $scheduler && !$is_tos_1) { $scheduler = "TinySchedulerC,TinySchedulerC.TaskBasic,TaskBasic,TaskBasic,runTask,postTask"; } if ($print_target) { print $target, "\n"; exit 0; } # First see if the directory for this platform was explicitly specified foreach $dir (@includes) { if ($dir =~ m!/$target/?$! && -f "$dir/.platform") { $platform_def = "$dir/.platform"; last; } } if (!-f $platform_def) { # Next, check if it's a "plain" platform if (-f "$TOSDIR/$platform/$target/.platform") { $platform_def = "$TOSDIR/$platform/$target/.platform"; } else { # Finally, see if it's in a platform family opendir PLATFORMS, "$TOSDIR/$platform"; foreach $dir (readdir PLATFORMS) { if (-f "$TOSDIR/$platform/$dir/.family") { if (-f "$TOSDIR/$platform/$dir/$target/.platform") { $platform_def = "$TOSDIR/$platform/$dir/$target/.platform"; $family_def = "$TOSDIR/$platform/$dir/.family"; last; } } } closedir PLATFORMS; } } # Use sim directory with tossim $platform_def =~ s!\.platform$!sim/.platform! if $tossim; $family_def =~ s!\.family$!sim/.family! if $tossim && $family_def; if (!-f $platform_def) { print STDERR "Unknown target $target\n"; print STDERR "Known targets for TinyOS directory $TOSDIR\n"; print STDERR "and the specified include directories are:\n"; @platforms = all_platforms(); if (@platforms) { print STDERR " ", join(" ", @platforms); } else { print STDERR "none."; } print STDERR "\n"; exit 2; } # Setup sensor boards push @includes, map "%T/sensorboards/$_", @boards unless $nostdinc; unshift @new_args, map "-DBOARD_\U$_", @boards; # Execute .sensor file in selected sensor board directories if it exists $i = 0; BOARD: while ($i <= $#boards) { $board = $boards[$i]; # First check include path for a .sensor file for this board foreach $dir (@includes) { if ($dir =~ m!/$board/?$! && -f "$dir/.sensor") { # Remove from @boards so that we don't add sensorboards/$board # to the search path splice @boards, $i, 1; do "$dir/.sensor"; next BOARD; } } # If none found, check the standard sensorboards directory $bspec = &idir_subst("%T/sensorboards/$board/.sensor"); do $bspec if -f $bspec; $i++; } # Setup platform $platform_dir = $platform_def; $platform_dir =~ s!/\.platform$!!; push @includes, $platform_dir unless $nostdinc; do $platform_def; do $family_def if -f $family_def; unshift @new_args, "-DPLATFORM_\U$target"; push @new_args, @opts; if(!$is_tos_1) { unshift @new_args, "-fnesc-scheduler=$scheduler"; } # old nesdoc: set the default topdir based on TOSDIR my ($tosparent) = ($TOSDIR =~ m!^(.*)/.*?$!); unshift @new_args, "-topdir=$tosparent"; unshift @new_args, "-fnesc-include=tos"; unshift @new_args, "$nescc"; if (!$nostdinc) { push @includes, map "%T/$platform/$_", @commonplatforms; push @includes, "%T/interfaces"; push @includes, "%T/types"; push @includes, "%T/system"; } if ($tossim) { foreach $idir (@includes) { $idir = &idir_subst($idir); push @new_args, "-I$idir/sim"; } $tossim_dir = &idir_subst("-I%T/lib/tossim"); push @new_args, $tossim_dir; } foreach $idir (@includes) { $idir = &idir_subst($idir); push @new_args, "-I$idir"; } print STDERR join(' ', @new_args), "\n" if $verbose; exec @new_args; print STDERR "Couldn't execute nescc\n"; exit 2; sub extractarg { local ($i) = @_; if (length($ARGV[$i]) == 2) { $arg = $ARGV[++$i]; } else { $arg = substr($ARGV[$i], 2); } return ($i, $arg); } sub idir_subst { local ($idir) = @_; local $idx = 0; while (($idx = index $idir, "%", $idx) >= 0) { $char = substr $idir, $idx + 1, 1; $rep = 0; $rep = "%" if $char eq "%"; $rep = $TOSDIR if $char eq "T"; $rep = $target if $char eq "p"; $rep = $platform_dir if $char eq "P"; &fail("unknown include-path substitution %" . $char) if !$rep; substr($idir, $idx, 2) = $rep; $idx += length $rep; } return $idir; } sub fail { print STDERR "$_[0]\n"; exit 2; } sub push_platform { my ($p) = @_; push @platforms, $p unless grep $_ eq $p, @platforms; } sub all_platforms() { local(@platforms); foreach $dir (@includes) { push_platform($1) if -f "$dir/.platform" && $dir =~ m!/([^/]*)/?$!; } if (opendir PLATFORMS, "$TOSDIR/$platform") { foreach $d (readdir PLATFORMS) { push_platform($d) if (-f "$TOSDIR/$platform/$d/.platform"); if (-f "$TOSDIR/$platform/$d/.family") { if (opendir SUBPLATFORMS, "$TOSDIR/$platform/$d") { foreach $subdir (readdir SUBPLATFORMS) { push_platform($subdir) if (-f "$TOSDIR/$platform/$d/$subdir/.platform"); } } closedir SUBPLATFORMS; } } closedir PLATFORMS; } return @platforms; } tinyos-tools-1.4.2/tools/tinyos/ncc/ncg.1000066400000000000000000000017221206361226500202670ustar00rootroot00000000000000.TH ncg 1 "April 27, 2004" .LO 1 .SH NAME ncg - extract constants from TinyOS files .SH SYNOPSIS \fBncg\fR [any ncc option] [tool-specific options] [\fB-o\fR \fIoutput-file\fR] \fItool\fR \fInesC-file\fR \fIfilenames-or-constant-names...\fR .SH DESCRIPTION \fBnescc-ncg\fR is a tool to extract constants from TinyOS files for use with other applications. It is typically used in conjunction with \fBmig\fR (which generates code to process TinyOS messages) to extract constants that are used in particular messages (e.g., constants representing various commands). \fBncg \fIoptions\fR is equivalent to \fBnescc-ncg -nescc=ncc \fIoptions\fR. For details on \fBncg\fR's output and options, please read see the \fBnescc-ncg\fR man page. .SH EXAMPLE APPDIR=`ncc -print-tosdir`/lib/FS
ncg -I%T/lib/FS -java-classname=net.tinyos.matchbox.FS \\ java $APPDIR/Remote.nc Matchbox.h Remote.h -oFS.java .SH SEE ALSO .IR ncc (1), .IR nescc-ncg (1), .IR mig (1) tinyos-tools-1.4.2/tools/tinyos/ncc/ncg.in000066400000000000000000000010361206361226500205330ustar00rootroot00000000000000#!/bin/sh # Copyright (c) 2005 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. prefix="@prefix@"; exec_prefix="@exec_prefix@"; exec "@nescc_prefix@/bin/nescc-ncg" "-nescc=$exec_prefix/bin/ncc" "$@" err=$? echo "Couldn't execute @nescc_prefix@/bin/nescc-ncg" >&2 exit $err tinyos-tools-1.4.2/tools/tinyos/ncc/nesdoc-py/000077500000000000000000000000001206361226500213355ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/tinyos/ncc/nesdoc-py/Makefile.am000066400000000000000000000011271206361226500233720ustar00rootroot00000000000000# Copyright (c) 2002-2005 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. AUTOMAKE_OPTIONS = foreign nesdocdir=$(libdir)/tinyos/nesdoc nesdoc_DATA = __init__.py \ archive.py \ components.py \ generators.py \ genhtml.py \ graph.py \ html.py \ index.py \ interfaces.py \ utils.py \ nesdoc.css tinyos-tools-1.4.2/tools/tinyos/ncc/nesdoc-py/__init__.py000066400000000000000000000000001206361226500234340ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/tinyos/ncc/nesdoc-py/archive.py000066400000000000000000000235731206361226500233420ustar00rootroot00000000000000# -*- python -*- # Copyright (c) 2005 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. # Archive nesdoc information from a given compilation in a nesdoc repository. # # A nesdoc repository is a directory containing separate XML files for each # known interface and component (in the "interfaces" and "components" # subdirectories respectively). These files have basically the same format # as a single interfacedef and component element from the nesC XML dump # format, with the following changes: # - all "interfacedef", "interfacedef-ref", "component" and "component-ref" # elements have an extra "nicename" attribute which stores the full # `package name' for the corresponding element (see below for details) # - components have two extra sub-elements: # o "specification": a list of the "interface" and "function" # elements that form the components specification # o "referenced": the "interface" and "function" elements referenced # from the wiring graph # the "component" elements referenced from these "interface" and # "function" elements # (but the "referenced" list excludes self-references, i.e., the # component itself and the "interface" and "function" elements # already found in "specification") # A `package name' is a component or interface name prefixed with its path # relative to a set of "top directories", and with path separators replaced # by dots. The root of a TinyOS installation is usually the single top # directory, but more can be specified with the -topdir option. from xml.dom import * from xml.dom.minidom import * from sys import * from getopt import getopt from string import * from nesdoc.utils import * from nesdoc.graph import generate_graph from nesdoc.html import * import os def check(x): if not x: print "%s is not a nesC documentation file" % argv[1] exit(2) return x def get1(x, tag): return check(xml_tagfind(x, tag)) def usage(): print "Usage: %s [-t dir] [--topdir dir] [--preserve] [--app] [--quiet] repository" % argv[0] print " where -t/--topdir specify prefixes to remove from file names" print " to create nice, package-like names for interface and components" print " (based on their full filename)." print " If --preserve is specified, existing XML files are preserved." print " If --app is specified, a page for this application is created in the" print " current directory." print " If --quiet is specified, the program is less verbose." print " The XML input is read from stdin." # Return package name for elem, or None if no valid name is found # (i.e., if the element's file name does not match any known topdir) def packagename(elem): loc = elem.getAttribute("loc") colon = index(loc, ":") filename = canonicalise(loc[colon + 1:]) for dir in topdir: dirlen = len(dir) if filename[0:dirlen] == dir: filename = filename[dirlen:] break if filename[0] == "/": return None else: return replace(replace(filename, ".nc", ""), "/", ".") # simplify file names (for generating package names, so no need to # preserve path validity): # empty strings become ./ # windows paths are made unix-like: # c: becomes /c/ # all \ become / def canonicalise(name): if name == "": name = "." if (name[1:2] == ":"): # windows disk names name = "/%s/%s" %(name[0], name[2:]) name = replace(name, "\\", "/") return name # canonicalise a directory. like canonicalise, but ensures # there is trailing / def canonicalisedir(dirname): dirname = canonicalise(dirname) if dirname[-1] != "/": return dirname + "/" else: return dirname # option processing. See usage string for details. def process_opts(argv): options = { "topdir": (True, lambda (x): topdir + [canonicalisedir(x)]), "preserve": (False, lambda x: True), "app": (False, lambda x: True), "quiet": (False, lambda x: True), } getopt_args = [] for p in options: globals()[p] = False opt = p if options[p][0]: opt += "=" getopt_args += [ opt ] (opts, args) = getopt(argv, "", getopt_args) topdir = [] highlight = "" for o, a in opts: opt = o[2:] globals()[opt] = options[opt][1](a) return args args = process_opts(argv[1:]) if len(args) != 1: usage() exit(2) repository = args[0] try: dom = parse(stdin) except xml.parsers.expat.ExpatError: nfail("nesdoc failed: no valid input") creator = xml.dom.minidom.getDOMImplementation() check(dom.documentElement.tagName == "nesc") interfacedefs = get1(dom, "interfacedefs") components = get1(dom, "components") interfaces = get1(dom, "interfaces") functions = get1(dom, "functions") # index everything refidx = {} qnameidx = {} for x in interfaces.getElementsByTagName("interface"): refidx[x.getAttribute("ref")] = x for x in functions.getElementsByTagName("function"): refidx[x.getAttribute("ref")] = x for x in components.getElementsByTagName("component"): qnameidx[x.getAttribute("qname")] = x for x in interfacedefs.getElementsByTagName("interfacedef"): qnameidx[x.getAttribute("qname")] = x # collect specification elements by component speclist = {} # interfaces for x in interfaces.getElementsByTagName("interface"): incomponent = get1(x, "component-ref").getAttribute("qname") if speclist.has_key(incomponent): speclist[incomponent].append(x) else: speclist[incomponent] = [x] # and bare commands, events for x in functions.getElementsByTagName("function"): # hack: tasks don't show up with a command/event attribute # don't include commands/events from interfaces if (x.hasAttribute("event") or x.hasAttribute("command")) and (not xml_tag(x, "interface-ref")): incomponent = get1(x, "component-ref").getAttribute("qname") if speclist.has_key(incomponent): speclist[incomponent].append(x) else: speclist[incomponent] = [x] # add nicename (i.e., with package prefix) attributes to all interfacedef, # interfacedef-ref, component and component-ref elements nicenames = {} def define_nicename(x): name = x.getAttribute("qname") nicename = packagename(x) if nicename == None: nicename = name nicenames[name] = nicename def set_nicename(x): x.setAttribute("nicename", nicenames[x.getAttribute("qname")]) for x in interfacedefs.getElementsByTagName("interfacedef"): define_nicename(x) set_nicename(x) for x in components.getElementsByTagName("component"): define_nicename(x) set_nicename(x) for x in dom.getElementsByTagName("interfacedef-ref"): set_nicename(x) for x in dom.getElementsByTagName("component-ref"): set_nicename(x) # Do the app stuff if requested if app: # The firt component is the main application component. toplevel = xml_idx(components, 0) name = toplevel.getAttribute("qname") nicename = toplevel.getAttribute("nicename") wiring = xml_tag(xml_tag(dom, "nesc"), "wiring") generate_graph(".", repository, dom, wiring, name, nicename) ht = Html("%s.html" % nicename) ht.title("Application: " + nicename) ht.body() ht.push("h2"); ht.p("Application: " + nicename) ht.popln(); ht.pushln("map", 'name="comp"') cmap = file("%s.cmap" % nicename) for line in cmap.readlines(): ht.pln(line) cmap.close() ht.popln() ht.tag("img", 'src="%s.png"' % nicename, 'usemap="#comp"', 'id=imgwiring') ht.close() # save xml information per-interface and per-component in the specified # repository nmkdir(repository) chdir(repository) nmkdir("interfaces") nmkdir("components") # save interface definitions for x in interfacedefs.getElementsByTagName("interfacedef"): name = x.getAttribute("qname") nicename = x.getAttribute("nicename") filename = "interfaces/%s.xml" % nicename if preserve and os.path.exists(filename): continue if not quiet: print "interface %s (%s)" % (name, nicename) doc = creator.createDocument(None, None, None) copy = x.cloneNode(True) doc.appendChild(copy) ifile = file(filename, "w") doc.writexml(ifile) doc.unlink() ifile.close() # save component definitions, excluding instantiations for x in components.getElementsByTagName("component"): if len(x.getElementsByTagName("instance")) == 0: # not an instance name = x.getAttribute("qname") nicename = x.getAttribute("nicename") filename = "components/%s.xml" % nicename if preserve and os.path.exists(filename): continue if not quiet: print "component %s (%s)" % (name, nicename) doc = creator.createDocument(None, None, None) # copy component and create its specification copy = x.cloneNode(True) spec = dom.createElement("specification") copy.appendChild(spec) try: for intf in speclist[name]: spec.appendChild(intf.cloneNode(True)) except KeyError: 0 # collect information used in wiring graph allelems = {} allcomps = {} def addelem(wireref): actualref = xml_tagset(wireref, ["interface-ref", "function-ref"]) elemref = actualref.getAttribute("ref") elem = refidx[elemref] compname = xml_tag(elem, "component-ref").getAttribute("qname") # exclude self-references, those are in the specification already if compname != name: allelems[elemref] = True allcomps[compname] = True for wireref in x.getElementsByTagName("from"): addelem(wireref) for wireref in x.getElementsByTagName("to"): addelem(wireref) # create the referenced element which will store the wiring information refd = dom.createElement("referenced") copy.appendChild(refd) for ref in allelems.keys(): refd.appendChild(refidx[ref].cloneNode(True)) for qname in allcomps.keys(): refd.appendChild(qnameidx[qname].cloneNode(True)) doc.appendChild(copy) ifile = file(filename, "w") doc.writexml(ifile) doc.unlink() ifile.close() tinyos-tools-1.4.2/tools/tinyos/ncc/nesdoc-py/components.py000066400000000000000000000073441206361226500241040ustar00rootroot00000000000000# Copyright (c) 2005 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. # Generate HTML file for a component from nesdoc.utils import * from nesdoc.generators import * from nesdoc.html import * __all__ = [ "generate_component" ] # Output HTML describing a specification element def spec_signature_html(ht, elem): if elem.tagName == "function": ht.pfnsig(elem, lambda (name): "%s" % name) else: assert elem.tagName == "interface" instance = xml_tag(elem, "instance") idef = xml_tag(instance, "interfacedef-ref") arguments = xml_tag(instance, "arguments") parameters = xml_tag(elem, "interface-parameters") instance_name = elem.getAttribute("name") def_name = idef.getAttribute("qname") fullname = idef.getAttribute("nicename") sig = 'interface
%s' % (fullname, def_name) if arguments: iargs = join(map(lambda (arg): typename_str(arg, ""), xml_elements(arguments)), ", ") sig += "<" + iargs + ">" if instance_name != def_name: sig += " as %s" % instance_name if parameters: iparms = join(map(lambda (arg): typename_str(arg, ""), xml_elements(parameters)), ", ") sig += "[" + iparms + "]" ht.p(sig) # Output HTML for specification elements elems, with heading name # If elems list is empty, do nothing. def generate_speclist(ht, name, elems): if len(elems) > 0: ht.tag("p") ht.heading(name) for elem in elems: ht.func_sig_start(); spec_signature_html(ht, elem) doc = nd_doc_short(elem) if doc != None: ht.push("menu") ht.pln(doc) ht.popln() ht.func_sig_stop(); def interface_compare(x, y): if cmp(x.getAttribute("qname").lower(), y.getAttribute("qname").lower()) == 0 : return cmp(x.getAttribute("name").lower(), y.getAttribute("name").lower()) return cmp(x.getAttribute("qname").lower(), y.getAttribute("qname").lower()) def generate_component(comp): nicename = comp.getAttribute("nicename") ht = Html("chtml/%s.html" % nicename ) if xml_tag(comp, "module"): kind = "module" else: kind = "configuration" ht.title("Component: " + nicename) ht.body() ht.push("h2"); ht.p("Component: " + nicename) ht.popln(); # The source code name and documentation ht.push("b") parameters = xml_tag(comp, "parameters") if parameters: ht.p("generic ") ht.p(kind + " " + comp.getAttribute("qname")) if parameters: ht.p(parameter_str(parameters)) ht.pop() ht.startline() idoc = nd_doc_long(comp) if idoc != None: ht.tag("p") ht.pdoc(idoc) ht.tag("p") spec = xml_tag(comp, "specification") interfaces = spec.getElementsByTagName("interface") functions = spec.getElementsByTagName("function") spec = interfaces + functions provided = filter(lambda (x): x.getAttribute("provided") == "1", spec) used = filter(lambda (x): x.getAttribute("provided") == "0", spec) # sort arrays provided.sort(interface_compare) used.sort(interface_compare) generate_speclist(ht, "Provides", provided) generate_speclist(ht, "Uses", used) # wiring graph for configurations if xml_tag(comp, "configuration"): ht.tag("p") ht.heading("Wiring") ht.tag("p") ht.pushln("map", 'name="comp"') cmap = file("chtml/%s.cmap" % nicename) for line in cmap.readlines(): ht.pln(line) cmap.close() ht.popln() ht.tag("img", 'src="%s.png"' % nicename, 'usemap="#comp"', 'id=imgwiring') ht.close() tinyos-tools-1.4.2/tools/tinyos/ncc/nesdoc-py/generators.py000066400000000000000000000162321206361226500240640ustar00rootroot00000000000000# Copyright (c) 2005 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. # Two groups of functions # A) Some functions to generate strings or HTML for various nesdoc entities # (end in _str or _html respectively) # B) Utility functions and values for the nesdoc XML format from xml.dom.minidom import * from string import * from nesdoc.utils import * # All possible tags for types type_tags = [ "type-int", "type-float", "type-complex-int", "type-complex-float", "type-void", "type-qualified", "type-pointer", "type-array", "type-function", "type-tag", "type-interface", "type-component", "type-var" ] # Return the long nesdoc string in x. If none is present, return the short # nesdoc string. If no nesdoc string at all, return None. def nd_doc_long(x): doc = xml_tag(x, "documentation") if not doc: return None str = xml_tag(doc, "long") if not str: str = xml_tag(doc, "short") return xml_text(str) # Return the short nesdoc string in x. None if none present. def nd_doc_short(x): doc = xml_tag(x, "documentation") if not doc: return None return xml_text(xml_tag(doc, "short")) # find the first docstring in 's' at or after 'index' # a docstring is an @ preceded by whitespace and followed by # at least one letter def _find_docstring_tag(s, index): while True: at = find(s, "@", index) if at <= 0: return at if at == len(s) - 1: return -1 if s[at - 1].isspace() and s[at + 1].isalpha(): return at index = at + 1 # process a docstring s. returns a tuple of # - base documentation # - list of (tag, description) pairs (in the same order as in s) def nd_docstring(s): tags = [] at = _find_docstring_tag(s, 0) if at < 0: return (s, tags) base = s[:at] while at >= 0: # find end of tag tagend = at + 1 while tagend < len(s) and not s[tagend].isspace(): tagend += 1 nextat = _find_docstring_tag(s, tagend) if nextat == -1: tagvalend = len(s) else: tagvalend = nextat tags.append((s[at + 1:tagend], s[tagend + 1:tagvalend])) at = nextat return (base, tags) # return a string for contstant cstr (from a nesdoc XML constant attribute) def nd_constant_str(cstr): if cstr[0] == 'I' or cstr[0] == 'F': return cstr[1:] elif cstr[0] == 'S': # XXX: should do a lot more. s = cstr[1:].replace('"', '\\"') return '"' + s + '"' elif cstr[0] == 'U': return "/* unknown */" elif cstr[0] == 'V': return "/* not-constant */" else: assert False # Type encoders for the various kinds of types def _typename_simple(xmltype, name, quals, isstar): return (quals + xmltype.getAttribute("cname"), name) def _typename_void(xmltype, name, quals, isstar): return (quals + "void", name) def _typename_qualified(xmltype, name, quals, isstar): silly = [quals] def add_qualifier(q): if xmltype.hasAttribute(q): silly[0] += q + " " add_qualifier("volatile") add_qualifier("const") add_qualifier("__restrict") return typename_full(xml_tagset(xmltype, type_tags), name, silly[0], isstar) def _typename_ptr(xmltype, name, quals, isstar): name = "*" + quals + name return typename_full(xml_tagset(xmltype, type_tags), name, "", True) def _typename_array(xmltype, name, quals, isstar): assert quals == "" if isstar: name = "(" + name + ")" size = xml_tag(xmltype, "elements") if size == "V": name += "[]" else: name += "[%s]" % constant_str(size) return typename_full(xml_tagset(xmltype, type_tags), name, "", False) def _typename_tag(xmltype, name, quals, isstar): tagref = xml_idx(xmltype, 0) # the embedded element is named -ref head = "%s %s" % (tagref.tagName[:-4], tagref.getAttribute("name")) return (quals + head, name) def _typename_var(xmltype, name, quals, isstar): varref = xml_idx(xmltype, 0) return (quals + varref.getAttribute("name"), name) def _typename_fn(xmltype, name, quals, isstar): returntype = xml_idx(xmltype, 0) parameters = xml_idx(xmltype, 1) if isstar: name = "(" + name + ")" args = "" if parameters != None: for x in parameters.childNodes: if x.nodeType == Node.ELEMENT_NODE: ptype = typename_str(x, "") if args != "": args = args + ", " args += ptype if xmltype.hasAttribute("varargs"): args += ", ..." name += "(" + args + ")" if quals != "": name += quals[:-1] # remove trailing space return typename_full(returntype, name, "", False) _type_printers = { "type-int" : _typename_simple, "type-float" : _typename_simple, "type-complex-int" : _typename_simple, "type-complex-float" : _typename_simple, "type-void" : _typename_void, "type-qualified" : _typename_qualified, "type-pointer" : _typename_ptr, "type-array" : _typename_array, "type-function" : _typename_fn, "type-tag" : _typename_tag, "type-interface" : _typename_tag, "type-component" : _typename_tag, "type-var" : _typename_var }; # Return a (head, body) pair for type xmltype, declaring name (a string) # with type qualifiers quals (a string). isstar should be true if name # starts with a *. # The user-friendly representation for this type is head + " " + body def typename_full(xmltype, name, quals, isstar): # hack around nesC 1.2.1 schema bug (uses typedef, not typename here) tdef = xml_tagset(xmltype, ["typedef", "typename"]) if tdef: return (quals + xml_tag(tdef, "typedef-ref").getAttribute("name"), name) else: return _type_printers[xmltype.tagName](xmltype, name, quals, isstar) # Return a user-friendly string for a C declaration of name with type xmltype def typename_str(xmltype, name): (head, body) = typename_full(xmltype, name, "", False) if body == "": return head else: return head + " " + body # Return a user-friendly string for a parameter list def parameter_str(xmlparameters): args = "" if xmlparameters != None: for parm in xmlparameters.childNodes: if parm.nodeType == Node.ELEMENT_NODE: if args != "": args = args + ", " if parm.tagName == "variable" or parm.tagName == "constant": vtype = xml_tagset(parm, type_tags) args += typename_str(vtype, parm.getAttribute("name")) elif parm.tagName == "typedef": args += "typedef " + parm.getAttribute("name") elif parm.tagName == "varargs": args += ", ..." return "(" + args + ")" # Return a user-friendly string for function xmlfn. The namedecorator # function is called with the xmlfn's name as argument to get the final # form of the function's name. Use this to, e.g., make the name an HTML link. def function_signature_str(xmlfn, namedecorator): sig = "" if xmlfn.hasAttribute("command"): sig += "command " if xmlfn.hasAttribute("event"): sig += "event " type = xml_tag(xmlfn, "type-function") returntype = xml_idx(type, 0) name = xmlfn.getAttribute("name") parameters = xml_tag(xmlfn, "parameters") return sig + typename_str(returntype, namedecorator(name) + parameter_str(parameters)) tinyos-tools-1.4.2/tools/tinyos/ncc/nesdoc-py/genhtml.py000066400000000000000000000057671206361226500233640ustar00rootroot00000000000000# -*- python -*- # Copyright (c) 2005 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. # HTML generation from the XML files in a nesdoc repository. # # The HTML files are placed in three directories: # - ihtml: HTML files for interfaces # - chtml: HTML (and support) files for components # - index: HTML index files # # HTML files for configurations include a wiring graph. Graphviz version 1.10 # (and, hopefully, later versions) are supported. # # Only components and interfaces in "packages" (i.e., with a package prefix # in their nicename attribute - see nesdoc-archive) are indexed - files # from applications are skipped. However, these files are still present in # the ihtml and chtml directories from nesdoc.utils import * from nesdoc.interfaces import generate_interface from nesdoc.components import generate_component from nesdoc.graph import generate_component_graph from nesdoc.index import generate_indices from sys import * from re import search, compile from shutil import copyfile import os from nesdoc.html import * param_pattern = compile("^\s*([a-zA-Z0-9_]+)") # Print @param doc tags as Parameters:, and put parameter name as def param_doctag(val): name = param_pattern.search(val) if name: val = "" + name.group(1) + " - " + val[name.end():] return ("parameters", val) # Print @return tags as Returns: def return_doctag(val): return ("returns", val) register_doctag("param", param_doctag) register_doctag("return", return_doctag) # Generate HTML files, and a global index for all interfaces and components # in the specified repository if argv[1] == "--quiet": repository = argv[2] quiet = True else: repository = argv[1] quiet = False try: chdir(repository) # set up directories nmkdir("ihtml") nmkdir("chtml") nmkdir("index") # copy stylesheet pathname = os.path.abspath(os.path.dirname(argv[0])) copyfile(pathname + "/nesdoc.css", "chtml/nesdoc.css") copyfile(pathname + "/nesdoc.css", "ihtml/nesdoc.css") copyfile(pathname + "/nesdoc.css", "index/nesdoc.css") copyfile(pathname + "/nesdoc.css", "nesdoc.css") compfiles = listdir("components") intffiles = listdir("interfaces") except OSError: nfail("Couldn't access nesdoc repository " + repository) for intf in intffiles: if search("\\.xml$", intf): if not quiet: stderr.write("interface " + intf + "\n") ixml = parse("interfaces/" + intf) generate_interface(ixml.documentElement) ixml.unlink() for comp in compfiles: if search("\\.xml$", comp): if not quiet: stderr.write("component " + comp + "\n") ixml = parse("components/" + comp) generate_component_graph(ixml.documentElement) generate_component(ixml.documentElement) ixml.unlink() generate_indices(compfiles, intffiles) tinyos-tools-1.4.2/tools/tinyos/ncc/nesdoc-py/graph.py000066400000000000000000000137661206361226500230250ustar00rootroot00000000000000# Copyright (c) 2005 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. # Generate the picture and cmap for a configuration's wiring from xml.dom.minidom import * from nesdoc.utils import * from nesdoc.generators import * from sys import * from os import system def generate_component_graph(comp): generate_graph("chtml", "..", comp, xml_tag(comp, "wiring"), comp.getAttribute("qname"), comp.getAttribute("nicename")) def generate_graph(dir, repository, xml, wiring, name, nicename): if not wiring: return # Return the element definition for a given wiring endpoint def lookup_elem(endpoint): elemref = xml_tagset(endpoint, [ "interface-ref", "function-ref" ]) return refidx[elemref.getAttribute("ref")] # Define nodes in a dot graph file. Each node is given a name, a graphic # style and a label. The elements map is updated to record the mapping # from XML node names ("ref" attribute) and dot-file node names. # gf is the dot graph file # wire is a wiring graph edge # tag specifies which node to extract from wire (either "to" or "from") # Does nothing if the node has already been added. def add_node(gf, wire, tag): endpoint = xml_tag(wire, tag) elem = lookup_elem(endpoint) ref = elem.getAttribute("ref") if endpoints.has_key(ref): return compref = xml_tag(lookup_elem(endpoint), "component-ref") if compref.getAttribute("qname") == name: # reference to one's own interfaces become ellipses endpoints[ref] = "n%s" % ref gf.write(' %s [shape=ellipse, style=filled, label="%s", fontsize=12];\n' % (endpoints[ref], elem.getAttribute("name"))) else: # references to interfaces or functions of other components become # a reference to a box representing that component. # each instance of a generic component gets a separate box. # there is a link to the component's own HTML file. ncompname = compref.getAttribute("qname") ncomp = compidx[ncompname] # Map this function or interface to the component (note that different # instances of generic components have different qnames) endpoints[ref] = ncompname # Define the component style. We may define it several times, but all # definitions are identical... gf.write(' "%s" ' % ncompname) styles = ["fontsize=12"] if xml_tag(ncomp, "configuration"): # configurations gets a double box styles.append("shape=box,peripheries=2") else: styles.append("shape=box") # Check for generic component instances instance = xml_tag(ncomp, "instance") if instance: # Make these dashed, with a label showing the generic component # and the instance name styles.append("style=dashed") iname = ncompname[find(ncompname, ".") + 1:] instanceof = xml_tag(instance, "component-ref") instanceof_name = instanceof.getAttribute("qname") if iname == instanceof_name: styles.append('label="%s"' % instanceof_name) else: styles.append('label="%s\\n(%s)"' % (instanceof_name, iname)) styles.append('URL="%s/chtml/%s.html"' % (repository, instanceof.getAttribute("nicename"))) else: # Just a regular component styles.append('URL="%s/chtml/%s.html"' % (repository, ncomp.getAttribute("nicename"))) if styles != []: gf.write("[%s]" % join(styles, ", ")) gf.write(";\n") def compname(endpoint): return endpoints[lookup_elem(endpoint).getAttribute("ref")] def wirestyle(endpoint): elem = lookup_elem(endpoint) if elem.tagName == "function": # missing: bold style for parameterised functions styles = ['label="%s"' % function_signature_str(elem, lambda (name): "X")] else: assert elem.tagName == "interface" instance = xml_tag(elem, "instance") idef = xml_tag(instance, "interfacedef-ref") arguments = xml_tag(instance, "arguments") parameters = xml_tag(elem, "interface-parameters") def_name = idef.getAttribute("qname") sig = def_name if arguments: iargs = join(map(lambda (arg): typename_str(arg, ""), xml_elements(arguments)), ", ") sig += "<" + iargs + ">" if parameters: iparms = join(map(lambda (arg): typename_str(arg, ""), xml_elements(parameters)), ", ") sig += "[" + iparms + "]" styles = [ 'label="%s"' % sig ] if xml_tag(elem, "interface-parameters"): styles.append('style=bold') styles.append('URL="%s/ihtml/%s.html"' % (repository, idef.getAttribute("nicename"))) styles.append("fontsize=10") return styles # build indices from ref attribute values to the corresponding elements refidx = {} compidx = {} for intf in xml.getElementsByTagName("interface"): refidx[intf.getAttribute("ref")] = intf for fn in xml.getElementsByTagName("function"): refidx[fn.getAttribute("ref")] = fn for ncomp in xml.getElementsByTagName("component"): compidx[ncomp.getAttribute("qname")] = ncomp # create the dot graph specification gf = file("%s/%s.dot" % (dir, nicename), "w") gf.write('digraph "%s" {\n' % nicename) endpoints = {} for wire in wiring.getElementsByTagName("wire"): add_node(gf, wire, "from") add_node(gf, wire, "to") for wire in wiring.getElementsByTagName("wire"): src = xml_tag(wire, "from") dest = xml_tag(wire, "to") gf.write(' "%s" -> "%s"' % (compname(src), compname(dest))) gf.write(' [%s];\n' % join(wirestyle(src), ", ")) gf.write("}\n") gf.close() # Run dot twice to get a picture and cmap system("dot -Tpng -o%s/%s.png %s/%s.dot" % (dir, nicename, dir, nicename)) system("dot -Tcmap -o%s/%s.cmap %s/%s.dot" % (dir, nicename, dir, nicename)) tinyos-tools-1.4.2/tools/tinyos/ncc/nesdoc-py/html.py000066400000000000000000000104721206361226500226570ustar00rootroot00000000000000# Copyright (c) 2005 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. # An HTML output class, with convenience routines for handling tags and # indentation. from string import * from nesdoc.generators import * from re import search _doctags = {} def register_doctag(name, handler): _doctags[name] = handler class Html: # create a new HTML output file in filename def __init__(self, filename): self.f = file(filename, "w") self.tags = [] self.ind = 0 self.at0 = True self.pushln("html"); self.pushln("head"); # include stylesheet self.tag("LINK", "rel=\"stylesheet\"", "href=\"nesdoc.css\"", "type=\"text/css\"", "media=\"screen\"") # end of html generation. cleanup and close the underlying file. def close(self): self.popln() self.popln() assert self.ind == 0 and self.tags == [] self.f.close() def indent(self): self.ind += 2 def unindent(self, ): self.ind -= 2 # print a string def p(self, s): if self.at0: self.f.write(" " * self.ind) self.at0 = False self.f.write(s) # print a string and end the line def pln(self, s): self.p(s) self.f.write("\n") self.at0 = True # print a string, quoting the characters with meaning in HTML def pq(self, s): s.replace("<", "<") s.replace(">", ">") s.replace("&", "&") s.replace('"', """) self.p(s) # newline if not at the start of a line def startline(self): if not self.at0: self.pln("") # start a new tag def push(self, tag, *attrs): self.tag(tag, *attrs) self.tags.append(tag) self.indent() # start a new tag on a new line def pushln(self, tag, *attrs): self.startline(); self.tag(tag, *attrs) self.pln("") self.tags.append(tag) self.indent() # print a tag, but don't save it on the tag stack def tag(self, tag, *attrs): if attrs == (): self.p("<%s>" % tag) else: self.p("<%s %s>" % (tag, join(attrs))) # print a tag on a new line, but don't save it on the tag stack def tagln(self, tag, *attrs): self.tag(tag, *attrs) self.pln("") # pop and print a terminator the most recent tag from the tag stack def pop(self): self.unindent() self.p("" % self.tags.pop()) # pop and print (on a new line) a terminator the most recent tag from the # tag stack def popln(self): self.unindent() self.startline() self.pln("" % self.tags.pop()) # print the HTML title def title(self, s): self.push("title"); self.pq(s); self.pop(); # start the body section def body(self): self.popln() # pop head self.pushln("body") # Highlevel methods # escape <> enclosed email addresses def escape_email(self, s): while True: email = search("<\S+@\S+>", s) if not email: break start = email.start() end = email.end() s = s[:start] + "<" + s[start + 1 : end - 1] + ">" + s[end:] return s # print a nesdoc string. @ entries go in a table def pdoc(self, docstr): (base, tags) = nd_docstring(docstr) self.pln(self.escape_email(base)) if tags: self.tag("p") self.pushln("dl") lasttag = None for (tag, val) in tags: if _doctags.has_key(tag): (tag, val) = _doctags[tag](val) if tag != lasttag: self.tag("dt"); self.push("b"); self.pq(capitalize(tag) + ":"); self.pop() self.pushln("dd"); self.p(self.escape_email(val)) self.popln() #dd lasttag = tag self.popln() #dl # print a nice fancy heading def heading(self, s): self.push("div", "id=heading") self.pq(s) self.pop(); def func_sig_start(self) : self.push("div", "id=funcsig") def func_sig_stop(self) : self.pop(); # print a function signature. namedecorator is called with the function # name as argument so that you can decorate the actual function name # (e.g., bold, a link) def pfnsig(self, fn, namedecorator): self.push("span", "id=funcnameshort") self.pln(function_signature_str(fn, namedecorator)) self.pop() tinyos-tools-1.4.2/tools/tinyos/ncc/nesdoc-py/index.py000066400000000000000000000113671206361226500230260ustar00rootroot00000000000000# Copyright (c) 2005 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. # Generate indices for all packages # Components and interfaces not in a package are ignored. from re import match from nesdoc.utils import * from nesdoc.generators import * from nesdoc.html import * from sys import * from string import * def generate_indices(compfiles, intffiles): # Add filename to the per-package (to) and global (all) lists def add_page(filename, to, all): fmatch = match("^(.*)\\.(.*)\\.xml$", filename) if fmatch: package = fmatch.group(1) entity = fmatch.group(2) packages[package] = True if not to.has_key(package): to[package] = [] to[package].append((package, entity)) all.append((package, entity)) else: fmatch = match("^(.*)\\.xml$", filename) if fmatch: entity = fmatch.group(1) all.append(('', entity)) # start a list (of interfaces, components or packages) def tableforlist_start(ht): ht.pushln("table", 'border="0"', 'width="100%"', 'summary=""') ht.pushln("tr") ht.pushln("td", "nowrap") # end a list def tableforlist_end(ht): ht.popln() ht.popln() ht.popln() # output a list (l) of interfaces or components (kind) def entitylist(ht, l, kind): tableforlist_start(ht) ht.push('div', 'id="heading"') ht.p(capitalize(kind)) ht.pop(); l.sort(lambda x, y: cmp(x[1].lower(), y[1].lower())) ht.push('span', 'id="funcnameshort"') for x in l: if (x[0] != ''): ht.push("a", 'href="../%shtml/%s.%s.html"' % (kind[0], x[0], x[1]), 'target="bodyFrame"') else: ht.push("a", 'href="../%shtml/%s.html"' % (kind[0], x[1]), 'target="bodyFrame"') ht.p(x[1]) ht.pop() ht.pln("") ht.tagln("br") ht.pop() ht.tag("p") tableforlist_end(ht) # Per-package index def pkglist(l, pkg, kind): if l.has_key(pkg): entitylist(pkgfile, l[pkg], kind) # collect packages allcomponents = [] allinterfaces = [] packages = {} components = {} interfaces = {} for x in compfiles: add_page(x, components, allcomponents) for x in intffiles: add_page(x, interfaces, allinterfaces) packages = packages.keys() packages.sort(lambda x, y: cmp(x.lower(), y.lower())) # Package index idxfile = Html("index/packages.html") idxfile.title("Package overview") idxfile.body() tableforlist_start(idxfile) idxfile.push("a", 'href="all-.html"', 'target="packageFrame"') idxfile.p("Everything") idxfile.popln() idxfile.tag("p") idxfile.pln("Packages") for pkg in packages: idxfile.tagln("br") idxfile.push("a", 'href="%s.html"' % pkg, 'target="packageFrame"') idxfile.p(pkg) idxfile.pop() idxfile.pln("") tableforlist_end(idxfile) idxfile.close() for pkg in packages: pkgfile = Html("index/%s.html" % pkg) pkgfile.title(pkg) pkgfile.body() pkgfile.pln(pkg) pkgfile.tag("p") pkglist(interfaces, pkg, "interfaces") pkglist(components, pkg, "components") pkgfile.close() # Global index allfile = Html("index/all-.html") allfile.title("All interfaces and components") allfile.body() entitylist(allfile, allinterfaces, "interfaces") entitylist(allfile, allcomponents, "components") allfile.close() # The actual index, with its three javadoc-style frames frame = Html("index.html") frame.title("Interfaces and components") frame.popln() frame.pushln("frameset", 'cols="20%,80%"') frame.pushln("frameset", 'rows="30%,70%"') frame.tagln("frame", 'src="index/packages.html"', 'name="packageListFrame"', 'title="Package List"') frame.tagln("frame", 'src="index/all-.html"', 'name="packageFrame"', 'title="All interfaces and components"') frame.popln() # start on the main application frame.tagln("frame", 'src="initial.html"', 'name="bodyFrame"', 'title="Summary"', 'scrolling="yes"') frame.pushln("noframes") frame.push("h2") frame.p("Warning") frame.popln() frame.p("nesdoc is designed to be viewed using frames.") frame.tag("p") frame.p("Click ") frame.push("a", 'href="index/packages.html"') frame.p("here") frame.pop() frame.p(" for a minimalistic non-frame interface.") frame.popln() frame.close() # Initial file initial = Html("initial.html") initial.title("nesdoc introduction") initial.body() initial.pln("Please select a package from the top-left frame, or an") initial.pln("interface or componenent from the bottom-left frame.") initial.close() tinyos-tools-1.4.2/tools/tinyos/ncc/nesdoc-py/interfaces.py000066400000000000000000000051661206361226500240420ustar00rootroot00000000000000# Copyright (c) 2005 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. # Generate HTML file for an interface from nesdoc.utils import * from nesdoc.generators import * from nesdoc.html import * __all__ = [ "generate_interface" ] # A list of all functions with their short description, with links to the # long description def generate_fnlist_short(ht, name, fns): if len(fns) > 0: ht.tag("p") ht.heading(name) for fn in fns: ht.func_sig_start(); ht.pfnsig(fn, lambda (name): '%s' % (name, name)) doc = nd_doc_short(fn) if doc != None: ht.push("menu") ht.pln(doc) ht.popln() ht.func_sig_stop(); # A list of all functions with their long description def generate_fnlist_long(ht, name, fns): if len(fns) > 0: ht.tag("p") ht.heading(name + " - Details") first = True for fn in fns: if not first: ht.tag("hr") ht.startline() name = fn.getAttribute("name") ht.pln('' % name) ht.push("h4"); ht.p(name); ht.popln() ht.pfnsig(fn, lambda (name): '%s' % name) doc = nd_doc_long(fn) if doc: ht.startline(); ht.tag("p") ht.pushln("menu") ht.pdoc(doc) ht.popln() first = False def generate_interface(intf): nicename = intf.getAttribute("nicename") ht = Html("ihtml/%s.html" % nicename ) ht.title("Interface: " + nicename) ht.body() ht.push("h2"); ht.pq("Interface: " + nicename) ht.pop() ht.startline() ht.push("b") parameters = xml_tag(intf, "parameters") ht.p("interface " + intf.getAttribute("qname")) if parameters: ht.p("<" + parameter_str(parameters)[1:-1] + ">") ht.pop() idoc = nd_doc_long(intf) if idoc != None: ht.tag("p") ht.pdoc(idoc) ht.tag("p") functions = intf.getElementsByTagName("function") commands = filter(lambda (x): x.hasAttribute("command"), functions) events = filter(lambda (x): x.hasAttribute("event"), functions) commands.sort(lambda x, y: cmp(x.getAttribute("name").lower(), y.getAttribute("name").lower())); events.sort(lambda x, y: cmp(x.getAttribute("name").lower(), y.getAttribute("name").lower())); generate_fnlist_short(ht, "Commands", commands) generate_fnlist_short(ht, "Events", events) generate_fnlist_long(ht, "Commands", commands) generate_fnlist_long(ht, "Events", events) ht.close() tinyos-tools-1.4.2/tools/tinyos/ncc/nesdoc-py/nesdoc.css000066400000000000000000000007771206361226500233350ustar00rootroot00000000000000/* @author Joe Polastre */ body { background-color: #FFFFFF } #heading { background-color: #CCCCFF; font-size: 13pt; font-weight: bold; color: #000000; border: 1px; border-style: solid; border-color: #000000; padding: 3px; width: 100%-8px; } #funcsig { background-color: #FFFFFF; border: 1px; border-style: solid; border-color: #bbbbbb; padding: 1px; width: 100%-8px; } #funcnameshort { font-size: 11pt; color: #000000; } #imgwiring { border: 0px; }tinyos-tools-1.4.2/tools/tinyos/ncc/nesdoc-py/utils.py000066400000000000000000000037461206361226500230610ustar00rootroot00000000000000# Copyright (c) 2005 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. # Miscellaneous utility functions (mostly for extracting information from XML) from os import * from xml.dom.minidom import * from sys import * # print an error message and exit def nfail(s): stderr.write(s + "\n") exit(2) # Create a directory without failing def nmkdir(dir): try: mkdir(dir) except OSError: 0 # Find the first element x of l for which f(x) is true def nfind(f, l): for a in l: if f(a): return True return False # True if a is in l def nmember(a, l): return nfind(lambda (b): a == b, l) # Return a sub-element with the specified tag def xml_tag(x, tag): for child in x.childNodes: if child.nodeType == Node.ELEMENT_NODE and child.tagName == tag: return child return None # Return some descendant with the specified tag def xml_tagfind(x, tag): tmp = x.getElementsByTagName(tag) if len(tmp) == 1: return tmp[0] else: return None # Return a sub-element with one of the specified tags def xml_tagset(x, tags): for child in x.childNodes: if child.nodeType == Node.ELEMENT_NODE and nmember(child.tagName, tags): return child return None # Return the ith sub-element def xml_idx(x, i): for child in x.childNodes: if child.nodeType == Node.ELEMENT_NODE: if i == 0: return child i = i - 1 return None # Return all element children def xml_elements(x): return filter(lambda (child): child.nodeType == Node.ELEMENT_NODE, x.childNodes) # Join all CDATA children into a single string def xml_text(x): str = "" for child in x.childNodes: if child.nodeType == Node.TEXT_NODE or child.nodeType == Node.CDATA_SECTION_NODE: str += child.data return str tinyos-tools-1.4.2/tools/tinyos/ncc/nesdoc.1000066400000000000000000000062061206361226500207750ustar00rootroot00000000000000.TH nesdoc 1 "April 27, 2004" .LO 1 .SH NAME nesdoc - generate TinyOS documentation .SH SYNOPSIS TinyOS 1.x usage: .br \fBnesdoc\fR [\fIdocumentation-directory\fR] [\fIncc-options\fR] \fIfiles...\fR TinyOS 2.x: collect documentation from a program: .br \fBnesdoc\fR -o \fIdocumentation-directory\fR [\fB-preserve\fR] [\fB-new\fR] [\fB-quiet\fR] [\fB-target=\fIplatform\fR] [\fB-topdir=\fIdirectory\fR] [\fB-app\fR] [\fIncc-options\fR] \fIfiles...\fR TinyOS 2.x: generate nesdoc HTML pages: .br \fBnesdoc\fR -o \fIdocumentation-directory\fR \fB-html\fR [\fB-new\fR] [\fB-quiet\fR] [\fB-target=\fIplatform\fR] .SH DESCRIPTION \fBnesdoc\fR is a tool to automatically extract documentation from nesC files and applications. There are two implementations of nesdoc: an old one that is used by default with TinyOS 1.x trees, and a new used with TinyOS 2.x trees or when the \fB-new\fR option is specified. It is not possible to use the old implementation with TinyOS 2.x. Documentation directories have a subdirectory for each platform, and contain HTML files describing the components and interfaces in TinyOS. nesdoc generates these files by compiling nesC programs and extracting the documentation information. When invoked, \fBnesdoc\fR generates documentation for the program that would be compiled with \fBncc\fR \fIncc-options\fR \fIfiles...\fR The old nesdoc adds an HTML file for each component, interface in the compiled application to the documentation directory, and updates several indices. The old nesdoc does not support generic components or interfaces. The new nesdoc separates HTML generation into two phases. First, an application is compiled and XML descriptions of its components and interfaces are added to the documentation directory. Once XML descriptions have been extracted for all components of interest, HTML pages are generated from this repository by running \fBnesdoc\fR with the \fB-html\fR option. For more details, see the separate \fBnesdoc\fR documentation. .SH OPTIONS .TP \fB-target=\fIplatform\fR Specify the platform for which documentation is generated. .TP \fB-preserve\fR By default, when collecting information, nesdoc overwrites existing XML descriptions of interfaces and components to ensure that they are up to date. However, this is slow when generating documentation on a large number of applications. If you pass the \fB-preserve\fR option, existing XML descriptions are not replaced. .TP \fB-html\fR Generate HTML pages for all the nesdoc information collected in \fIdocumentation-directory\fR. \fB-new\fR Force the use of the new nesdoc even when using a TinyOS 1.x source tree. .TP \fB-quiet\fR Don't print informational messages. .TP \fB-topdir=\fIdir\fR Specify directory paths that should be stripped from the source file names when generating "package names" for the documentation files. The directory above \fBTOSDIR\fR is automatically added, so this option is only needed for directories outside the main TinyOS distribution. .TP \fB-app\fR Also generate a graph for the whole application in the current directory - this is useful to check the wiring of a particular application. .SH SEE ALSO .IR ncc (1) tinyos-tools-1.4.2/tools/tinyos/ncc/nesdoc.in000066400000000000000000000131701206361226500212410ustar00rootroot00000000000000#!@pathperl@ # -*- perl -*- # Copyright (c) 2002-2005 Intel Corporation # All rights reserved. # # This file is distributed under the terms in the attached INTEL-LICENSE # file. If you do not find these files, copies can be found by writing to # Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704. Attention: Intel License Inquiry. # The new nesdoc implementation. When run with a TinyOS 1.x setup, just runs # the old nesdoc except if the -new option is given. # # The new nesdoc implementation is based on the XML dump facilities in nesC # 1.2 (version 1.2.1 of the nesC compiler is required). Documenation # generation is broken into two phases: # - nesdoc data collection: nesdoc information for all interfaces and # components is saved to a nesdoc repository, which is just a collection # of XML files. See archive.py for more details. # - HTML generation from the XML files: once a repository is complete, # you run nesdoc with the -html option to generate HTML files for # each interface and component, along with an index. See genhtml.py # for details. # # Differences between the old and new nesdocs (summary): # - the new nesdoc is currently only targeted at generating API documentation; # it doesn't generate HTML files describing applications # - the old nesdoc does not support generic components or interfaces # - the per-component HTML files, the index and wiring graphs are hopefully # more readable # - information on module implementations is not included (it should not # be part of an API documentation) $prefix = "@prefix@"; $exec_prefix = "@exec_prefix@"; $libprogs = "@libdir@/tinyos"; $python = "@pathpython@"; $tosdir = `ncc -print-tosdir`; chomp($tosdir); # If using a TinyOS 1.x tree, assume old-style nesdoc except if there is a # -new argument somewhere. if (-d "$tosdir/platform" && !grep /^-new$/, @ARGV) { # nesdoc for TinyOS 1.x, support old style docs if ($#ARGV < 1) { &fail("Usage: nesdoc "); } $docdir = shift @ARGV; unshift @ARGV, "-docdir=$docdir"; unshift @ARGV, "-fsyntax-only"; unshift @ARGV, "$exec_prefix/bin/ncc"; exec @ARGV; fail("Couldn't execute $ARGV[0]"); } # nesdoc for TinyOS 2.x # parse arguments $target = `ncc -print-target`; chomp $target; for ($i = 0; $i <= $#ARGV; $i++) { $strip = 0; $_ = $ARGV[$i]; if (/^-/) { if (/^-topdir=(.*)/) { push @archive_args, "--topdir=$1"; $strip = 1; } elsif (/^--version$/) { $print_version = 1; $strip = 1; } elsif (/^-v$/) { $verbose = 1; } elsif (/^-target=(.*)/) { $target = $1; } elsif (/^-o/) { ($i, $docdir) = extractarg($i); $strip = 1; } elsif (/^-html$/) { $genhtml = 1; $strip = 1; } elsif (/^-preserve$/) { $preserve = 1; $strip = 1; } elsif (/^-app$/) { $app = 1; $strip = 1; } elsif (/^-quiet$/) { $quiet = 1; $strip = 1; } } push @ncc_args, $_ if !$strip; } if ($print_version) { print "nesdoc: @PACKAGE_VERSION@\n"; exit 0; } fail("No documentation directory specified") if !defined $docdir; $docdir = "$docdir/$target"; if (defined $ENV{PYTHONPATH}) { $ENV{PYTHONPATH} = "$libprogs:$PYTHONPATH"; } else { $ENV{PYTHONPATH} = "$libprogs"; } if ($genhtml) { push @html_args, $python; push @html_args, "$libprogs/nesdoc/genhtml.py"; push @html_args, "--quiet" if $quiet; push @html_args, $docdir; execorfail(@html_args); } # Collecting nesdoc data. Run ncc, then process the results with # nesdoc-archive unshift @ncc_args, "-fsyntax-only"; unshift @ncc_args, "-fnesc-dump=wiring" if $app; unshift @ncc_args, "-fnesc-dump=interfacedefs"; unshift @ncc_args, "-fnesc-dump=components(wiring)"; unshift @ncc_args, "-fnesc-dump=interfaces"; unshift @ncc_args, "-fnesc-dump=functions(!global())"; unshift @ncc_args, "-fnesc-dump=referenced(interfaces,components,functions)"; unshift @ncc_args, "$exec_prefix/bin/ncc"; print STDERR join(' ', @ncc_args), "\n" if $verbose; pipe FORARCHIVE, FORNCC; if (!($pid = fork())) { close STDOUT; open STDOUT, ">&FORNCC"; execorfail(@ncc_args); } fail("fork failed") if $pid < 0; close STDIN; open STDIN, "<&FORARCHIVE"; # Top of TinyOS tree is a default "topdir" (for package emulation) $toscontainer = `dirname $tosdir`; chomp $toscontainer; push @archive_args, "--topdir=$toscontainer"; push @archive_args, "--preserve" if $preserve; push @archive_args, "--app" if $app; push @archive_args, "--quiet" if $quiet; push @archive_args, "$docdir"; unshift @archive_args, "$libprogs/nesdoc/archive.py"; unshift @archive_args, $python; print STDERR join(' ', @archive_args), "\n" if $verbose; fail("Couldn't create directory $docdir") if system("mkdir -p \"$docdir\""); execorfail(@archive_args); sub fail { print STDERR "$_[0]\n"; exit 2; } sub execorfail { exec @_; fail("Couldn't execute $_[0]"); } sub usage { fail(< Compile specified files and archive the resulting nesdoc information in Note: This does not generate the nesdoc html pages. nesdoc -o -html Generate nesdoc html pages from archived nesdoc information. nesdoc -o -app Compile specified nesC application and generate a wiring graph for the whole program in the current directory. EOM ) } sub extractarg { local ($i) = @_; if (length($ARGV[$i]) == 2) { $arg = $ARGV[++$i]; } else { $arg = substr($ARGV[$i], 2); } return ($i, $arg); } tinyos-tools-1.4.2/tools/tinyos/safe/000077500000000000000000000000001206361226500176075ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/tinyos/safe/Makefile.am000066400000000000000000000001671206361226500216470ustar00rootroot00000000000000AUTOMAKE_OPTIONS = foreign dist_man_MANS = tos-decode-flid.1 tos-ramsize.1 bin_SCRIPTS = tos-decode-flid tos-ramsize tinyos-tools-1.4.2/tools/tinyos/safe/tos-decode-flid.1000077500000000000000000000023601206361226500226370ustar00rootroot00000000000000.TH tos-decode-flid 1 "Jun 30, 2008" .LO 1 .SH NAME tos-decode-flid - Turn a base-4 Safe TinyOS error code into a human-readable error message .SH SYNOPSIS \fBtos-decode-flid\fR flid-file flid .SH DESCRIPTION By default, a mote that encounters a safety violation repeatedly blinks a failure code (also called flid, or fault-location identifier) on its LEDs. \fBtos-decode-flid\fR can be used to turn this code into a readable error message. A flid is a sequence of 8 digits each in the range 0-3. To read this code, wait for the mote's LEDs to "roll," or rapidly blink several times in a 1-2-3 sequence. Next, some number of LEDs will be lit-- write down this number. Usually the first digit or two of the flid will be zero. Following each digit of the flid, all three LEDs will be very briefly illuminated to serve as a separator. After all 8 digits have been presented the LEDs will roll and then the FLID is repeated. Once you have the sequence of 8 digits, it can be decoded using tos-decode-flid. The flid-file argument specifies a file that helps the script map from the flid to an error message. The flid file is create as a side effect of compiling a safe application; it is placed into the application's build directory and is named flids.txt. tinyos-tools-1.4.2/tools/tinyos/safe/tos-decode-flid.in000077500000000000000000000025531206361226500231110ustar00rootroot00000000000000#!@pathperl@ -w use strict; sub decode ($$) { my $a = shift; my $b = shift; die if ($a<0 || $a>3); die if ($b<0 || $b>3); my $c = ($a << 2) + $b; my $h = sprintf "%X", $c; return $h; } sub usage() { print "Usage: tos-decode-flid flid-file flid\n"; exit 2; } sub make_flid () { my $flid = $ARGV[1]; die "expected 8 characters" if (length($flid) != 8); my $flidstr = "0x" . decode(substr($flid,0,1),substr($flid,1,1)) . decode(substr($flid,2,1),substr($flid,3,1)) . decode(substr($flid,4,1),substr($flid,5,1)) . decode(substr($flid,6,1),substr($flid,7,1)); } usage() if (scalar(@ARGV)!=2); my $flidstr = make_flid(); my $fn = $ARGV[0]; my $found = 0; if (defined ($fn)) { open INF, "<$fn" or die; while (my $line = ) { chomp $line; my @fields = split /\#\#\#/, $line; foreach (@fields) { (s/^\s*//g); (s/\s*$//g); (s/^\"//g); (s/\"$//g); } if (hex($fields[0]) == hex($flidstr)) { my $check = $fields[1]; my $text = $fields[2]; my $loc = $fields[3]; my $func = $fields[4]; $found = 1; print "Deputy error message for flid $flidstr:\n\n"; printf "%s: %s: Assertion failed in %s:\n %s\n", $loc, $func, $check, $text; } } close INF; } else { usage(); } if (!$found) { print "oops -- flid $flidstr not found in file\n"; } tinyos-tools-1.4.2/tools/tinyos/safe/tos-ramsize.1000077500000000000000000000007621206361226500221560ustar00rootroot00000000000000.TH tos-ramsize 1 "Apr 10, 2009" .LO 1 .SH NAME tos-ramsize - Compute RAM usage of a TinyOS application including the stack .SH SYNOPSIS \fBtos-ramsize\fR [-verbosity=n] mica2|micaz|iris elf-file .SH DESCRIPTION This tool disassembles an elf file for AVR-based TinyOS platforms and estimates the maximum extent of its call stack. This number is reported, along with the total static and dynamic RAM usage. The primary documentation for this tool can be found on the TinyOS Documentation Wiki. tinyos-tools-1.4.2/tools/tinyos/safe/tos-ramsize.in000077500000000000000000001263431206361226500224300ustar00rootroot00000000000000#!@pathperl@ -w # Copyright (c) 2003-2009 University of Utah and the Flux Group. # All rights reserved. # # Permission to use, copy, modify, distribute, and sell this software # and its documentation is hereby granted without fee, provided that the # above copyright notice and this permission/disclaimer notice is # retained in all copies or modified versions, and that both notices # appear in supporting documentation. THE COPYRIGHT HOLDERS PROVIDE # THIS SOFTWARE "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, # INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE COPYRIGHT # HOLDERS DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER # RESULTING FROM THE USE OF THIS SOFTWARE. # # Users are requested, but not required, to send to csl-dist@cs.utah.edu # any improvements that they make and grant redistribution rights to the # University of Utah. # # Author: John Regehr (regehr@cs.utah.edu) # Revised by: Xuejun Yang on 01/10/2009 # For more information: # http://docs.tinyos.net/index.php/Stack_Analysis use strict; use warnings; use Getopt::Long; # TODO: # # support TOSThreads # # support msp430 # # optionally don't do recursion checking # # print path to WC stack depth, perhaps graphically # # make it possible to specify chips individually # # make it possible to explicitly specify which interrupts are atomic # or not # # tighten results by keeping track of depths inside and out of # atomic sections # # print stack used at thread blocking points # # support overriding the default heuristic for detecting atomic # interrupts # # get rid of hard-coded non-terminating functions, just derive this # when no "ret" is executed # # test for tightness / soundness using randprog + Avrora # # read config info from a file # chip parameters # libc information # recursion and interrupt info ########################################################################## my %VEC_SIZE = ( "mica2" => 4, "micaz" => 4, "iris" => 4, ); my %PC_SIZE = ( "mica2" => 2, "micaz" => 2, "iris" => 2, ); my %NUM_VECTORS = ( "mica2" => 35, "micaz" => 35, "iris" => 51, ); my %RAM_SIZE = ( "mica2" => 4096, "micaz" => 4096, "iris" => 8192, ); my %DEV_SIZE = ( "mica2" => 256, "micaz" => 256, "iris" => 512, ); my %NORETURN = ( "deputy_fail_noreturn_fast" => 1, ); # any icall in the function on the left is assumed to go to the # function on the right my %ICALL_TARGETS = ( "fputc" => "uart_putchar", "puts" => "uart_putchar", ); # also look below for __prologue_saves__ and __epilogue_restores__ my %SPECIAL = ( "TinyThreadSchedulerP__switchThreads" => 10, # these have icalls #"__eewr_block" => 35, #"__eerd_block" => 35, # these peel a return address off the stack before calling into a # function that returns to the caller's caller "__fp_split1" => 0, "__fp_split2" => 0, "__fp_split3" => 0, "__fp_split_a" => 0, ); ########################################################################## my $verbosity = 1; my $ORIGIN = 0; my $ZERO_STACK = -999999; my $platform; my %insns; my %args; my %addr_to_label; my %label_to_addr; my %lines; my %line_to_addr; my %stack_effect; my %successors; my %call_targets; my %insn_size; my %diehere; my %raw_text; my %jump_lists; my $initial_stack_depth; sub bynum { return $a <=> $b; } sub parse_pair ($) { (my $pair) = @_; if ($pair =~ /^([a-zA-Z0-9]+)\, ([a-zA-Z0-9\+]+)$/) { return ($1, $2); } else { die "tos-ramsize FAIL: expected 'x, y' got '$pair'"; } } sub get_relative_address ($) { (my $addr) = @_; my $code = $args{$addr}; die "tos-ramsize FAIL" if (!($code =~ /.(\-?[0-9]+)/)); return 2+$1; } sub add_insn ($$$$) { (my $addr, my $code, my $size, my $linenum) = @_; if (($code =~ /^([a-zA-Z]+)\s*(.*)?$/)) { if ($verbosity > 7) { print "$code\n"; } $line_to_addr{$linenum} = $addr; my $insn = $1; my $arg = $2; $insns{$addr} = $insn; $args{$addr} = $arg; if ($verbosity > 7) { print "'$insn' '$arg' @ $addr\n"; } $insn_size{$addr} = $size; } else { if ($verbosity > 7) { print "???? $code\n"; } } } sub disassemble ($) { (my $fn) = @_; open INF, "avr-objdump -zsD $fn |" or die "tos-ramsize FAIL: can't open input file $fn"; my $linenum = 0; my $text_go = 0; my $raw_text_go = 0; my $raw_addr; while (my $line = ) { chomp $line; $linenum++; $lines{$linenum} = $line; if ($line =~ m/Disassembly of section \.text/) { $text_go = 1; $raw_text_go = 0; next; } if ($line =~ m/Contents of section \.text/) { $text_go = 0; $raw_text_go = 1; next; } if ($line =~ m/Contents of section /) { $text_go = 0; $raw_text_go = 0; next; } if ($line =~ m/Disassembly of section /) { $text_go = 0; $raw_text_go = 0; next; } # skip blank line and obvious junk next if ($line eq "" or $line =~ /^\s*\.*$/); # kill comments ($line =~ s/\s*;.*$//); if ($verbosity > 7) { print "$line\n"; } if ($raw_text_go) { $line = substr $line, 0, 43; $line .= " "; if ($line =~ /^\s*([0-9a-f]{4}) ((([0-9a-f][0-9a-f]){1,4} ){1,4})\s*$/) { my $address = hex($1); my $bytes = $2; if (!defined($raw_addr)) { $raw_addr = $address; } else { die "tos-ramsize FAIL" if ($raw_addr != $address); } ($bytes =~ s/\s//g); while (length($bytes)>0) { die "tos-ramsize FAIL" if (length($bytes)==1); my $b = substr $bytes, 0, 2; $bytes = substr $bytes, 2, length($bytes)-2; $raw_text{$raw_addr} = $b; $raw_addr++; } } else { print "cannot parse raw text: '$line'\n"; die "tos-ramsize FAIL"; } } if ($text_go) { # label if ($line =~ /^0*([0-9a-f]+) <(.+)>:$/) { my $addr = hex($1); my $label = $2; $addr_to_label{$addr} = $label; $label_to_addr{$label} = $addr; next; } # data in code segment if ($line =~ /^\s+([0-9a-f]+):\s+([0-9a-fA-F][0-9a-fA-F] ){16}\s+/) { next; } # regular code my $a; my $code; if ($line =~ /^\s+([0-9a-f]+):\s+([0-9a-f][0-9a-f]\s){4}\s*(.*)$/) { $a = hex($1); $code = $3; add_insn ($a, $code, 4, $linenum); next; } if ($line =~ /^\s+([0-9a-f]+):\s+([0-9a-f][0-9a-f][ \t]){2}\s*(.*)$/) { $a = hex($1); $code = $3; add_insn ($a, $code, 2, $linenum); next; } # paranoid: don't ignore lines that look funny die "tos-ramsize FAIL: can't understand '$line'"; } } if ($verbosity >= 2) { print "there are:\n"; print " ".scalar(keys %addr_to_label)." labels\n"; print " ".scalar(keys %insns)." instructions\n"; } close INF; } sub is_branch ($) { (my $addr) = @_; my $insn = $insns{$addr}; return ($insn eq "breq" || $insn eq "brge" || $insn eq "brne" || $insn eq "brcs" || $insn eq "brcc" || $insn eq "brlt" || $insn eq "brhc" || $insn eq "brhs" || $insn eq "brid" || $insn eq "brie" || $insn eq "brmi" || $insn eq "brpl" || $insn eq "brtc" || $insn eq "brts" || $insn eq "brvc" || $insn eq "brvs" || $insn eq "brbc" || $insn eq "brbs"); } sub is_skip ($) { (my $addr) = @_; my $insn = $insns{$addr}; return ($insn eq "sbrs" || $insn eq "sbrc" || $insn eq "cpse" || $insn eq "sbic" || $insn eq "sbis"); } sub is_fallthrough ($) { (my $addr) = @_; my $insn = $insns{$addr}; return ( $insn eq "prologue_saves" || $insn eq "epilogue_restores" || $insn eq "init_sp" || $insn eq "constant_push" || $insn eq "constant_pop" || $insn eq "adc" || $insn eq "add" || $insn eq "adiw" || $insn eq "and" || $insn eq "andi" || $insn eq "asr" || $insn eq "bld" || $insn eq "break" || $insn eq "bst" || $insn eq "cbi" || $insn eq "clh" || $insn eq "cli" || $insn eq "cln" || $insn eq "cls" || $insn eq "clt" || $insn eq "clv" || $insn eq "clz" || $insn eq "com" || $insn eq "cp" || $insn eq "cpc" || $insn eq "cpi" || $insn eq "dec" || $insn eq "elpm" || $insn eq "eor" || $insn eq "fmul" || $insn eq "fmuls" || $insn eq "fmulsu" || $insn eq "in" || $insn eq "inc" || $insn eq "ldi" || $insn eq "lpm" || $insn eq "lsr" || $insn eq "mov" || $insn eq "movw" || $insn eq "mul" || $insn eq "muls" || $insn eq "mulsu" || $insn eq "neg" || $insn eq "nop" || $insn eq "or" || $insn eq "ori" || $insn eq "out" || $insn eq "pop" || $insn eq "push" || $insn eq "ror" || $insn eq "sbc" || $insn eq "sbci" || $insn eq "sbi" || $insn eq "sbiw" || $insn eq "seh" || $insn eq "sei" || $insn eq "sen" || $insn eq "ses" || $insn eq "set" || $insn eq "sev" || $insn eq "sez" || $insn eq "sleep" || $insn eq "spm" || $insn eq "sub" || $insn eq "subi" || $insn eq "swap" || $insn eq "wdr" || $insn eq "ld" || $insn eq "ldd" || $insn eq "sec" || $insn eq "st" || $insn eq "std" || $insn eq "lds" || $insn eq "sts" ); } sub is_jmp ($) { (my $addr) = @_; my $insn = $insns{$addr}; return ($insn eq "jmp" || $insn eq "rjmp"); } sub is_direct_call ($) { (my $addr) = @_; my $insn = $insns{$addr}; return ($insn eq "call" || $insn eq "rcall"); } sub insn_stack_effects () { foreach my $addr (keys %insns) { my $insn = $insns{$addr}; if ($insn eq "push") { $stack_effect{$addr} = 1; } elsif ($insn eq "pop") { $stack_effect{$addr} = -1; } elsif ($insn eq "ret" || $insn eq "reti") { $stack_effect{$addr} = -$PC_SIZE{$platform}; } else { $stack_effect{$addr} = 0; } } } sub make16($$) { (my $l, my $h) = @_; return (hex($h) << 8) + hex($l); } sub jmp_call_target ($) { (my $addr) = @_; die "tos-ramsize FAIL" if ($insns{$addr} ne "jmp" && $insns{$addr} ne "call"); my $code = $args{$addr}; die "tos-ramsize FAIL" if (!($code =~ /0x([0-9a-f]+)/) && $code != 0); if (($code =~ /0x([0-9a-f]+)/)) { return hex ($1); } else { return 0; } } sub get_target ($) { (my $addr) = @_; my $insn = $insns{$addr}; my $hex_addr = sprintf "%x", $addr; if (is_jmp ($addr) || is_direct_call ($addr)) { if ($insn eq "rjmp" || $insn eq "rcall") { return $addr + get_relative_address ($addr); } else { return jmp_call_target ($addr); } } if (is_branch ($addr)) { return $addr + get_relative_address ($addr); } # skip size depends on size of subsequent insn if (is_skip ($addr)) { die "tos-ramsize FAIL: $hex_addr" if (!defined($insn_size{$addr})); my $next = $addr + $insn_size{$addr}; if (!defined($insn_size{$next})) { return $next + 2; } else { return $next + $insn_size{$next}; } } die "tos-ramsize FAIL"; } sub match_branch ($$) { (my $addr, my $instruction) = @_; if (defined($insns{$addr}) && $insns{$addr} eq $instruction) { return (1, get_target ($addr)); } else { return (0, 0); } } sub match_2args ($$) { (my $addr, my $instruction) = @_; if (defined($insns{$addr}) && $insns{$addr} eq $instruction) { (my $a, my $b) = parse_pair ($args{$addr}); return (1, $a, $b); } else { return (0, 0, 0); } } sub match_0args ($$) { (my $addr, my $instruction) = @_; if (defined($insns{$addr}) && $insns{$addr} eq $instruction) { return 1; } else { return 0; } } # ldi r28, 0xFF ; 255 # ldi r29, 0x21 ; 33 # out 0x3e, r29 ; 62 # out 0x3d, r28 ; 61 sub match_init_sp ($) { (my $addr) = @_; my $match; my $reg; my $immed; ($match, $reg, my $sp_lo) = match_2args ($addr, "ldi"); return (0,0,0) if (!$match || $reg ne "r28"); ($match, $reg, my $sp_hi) = match_2args ($addr+2, "ldi"); return (0,0,0) if (!$match || $reg ne "r29"); ($match, $immed, $reg) = match_2args ($addr+4, "out"); return (0,0,0) if (!$match || $reg ne "r29" || $immed ne "0x3e"); ($match, $immed, $reg) = match_2args ($addr+6, "out"); return (0,0,0) if (!$match || $reg ne "r28" || $immed ne "0x3d"); my $init = make16($sp_lo,$sp_hi); my $init_stack = $RAM_SIZE{$platform} + $DEV_SIZE{$platform} - $init - 1; if ($verbosity > 3) { print "init = $sp_lo $sp_hi = $init = ${init_stack}\n"; } return (1,8,$init_stack); } # cpi r30, 0x12 ; 18 # cpc r31, r1 # brcs .+2 ; 0x1a88 # rjmp .+2218 ; 0x2332 # subi r30, 0xBA ; 186 # sbci r31, 0xFF ; 255 # add r30, r30 # adc r31, r31 # lpm r0, Z+ # lpm r31, Z # mov r30, r0 # ijmp # cpi r16, 0x80 ; 128 # cpc r17, r1 # brcs .+2 ; 0x13ec <__stack+0x2ed> # rjmp .+148 ; 0x1480 <__stack+0x381> # subi r16, 0xBA ; 186 # sbci r17, 0xFF ; 255 # movw r30, r16 # add r30, r30 # adc r31, r31 # lpm r0, Z+ # lpm r31, Z # mov r30, r0 # ijmp # cpi r30, 0x1E ; 30 # cpc r31, r1 # brcc .+78 ; 0x19ce # subi r30, 0xBA ; 186 # sbci r31, 0xFF ; 255 # add r30, r30 # adc r31, r31 # lpm r0, Z+ # lpm r31, Z # mov r30, r0 # ijmp # cpi r26, 0x48 ; 72 # cpc r27, r1 # brcc .+38 ; 0x1954 <__stack+0x855> # subi r26, 0xBA ; 186 # sbci r27, 0xFF ; 255 # movw r30, r26 # add r30, r30 # adc r31, r31 # lpm r0, Z+ # lpm r31, Z # mov r30, r0 # ijmp sub match_jump_table_1 ($) { (my $addr) = @_; my $match; my $reg1; my $reg2; my $immed; my $oob_target; my @targets; my $inc = 0; ($match, $reg1, my $table_size) = match_2args ($addr+$inc, "cpi"); return (0, \@targets, 0) if (!$match); $inc += 2; ($match, $reg1, $reg2) = match_2args ($addr+$inc, "cpc"); return (0, \@targets, 0) if (!$match); $inc += 2; ($match, $immed) = match_branch ($addr+$inc, "brcs"); if ($match) { $inc += 2; ($match, $oob_target) = match_branch ($addr+$inc, "rjmp"); return (0, \@targets, 0) if (!$match); $inc += 2; } else { ($match, $oob_target) = match_branch ($addr+$inc, "brcc"); return (0, \@targets, 0) if (!$match); $inc += 2; } ($match, $reg1, my $sublo) = match_2args ($addr+$inc, "subi"); return (0, \@targets, 0) if (!$match); $inc += 2; ($match, $reg1, my $subhi) = match_2args ($addr+$inc, "sbci"); return (0, \@targets, 0) if (!$match); $inc += 2; ($match, $reg1, $reg2) = match_2args ($addr+$inc, "movw"); if ($match) { $inc += 2; } ($match, $reg1, $reg2) = match_2args ($addr+$inc, "add"); return (0, \@targets, 0) if (!$match); $inc += 2; ($match, $reg1, $reg2) = match_2args ($addr+$inc, "adc"); return (0, \@targets, 0) if (!$match); $inc += 2; ($match, $reg1, $reg2) = match_2args ($addr+$inc, "lpm"); return (0, \@targets, 0) if (!$match || $reg1 ne "r0" || $reg2 ne "Z+"); $inc += 2; ($match, $reg1, $reg2) = match_2args ($addr+$inc, "lpm"); return (0, \@targets, 0) if (!$match || $reg1 ne "r31" || $reg2 ne "Z"); $inc += 2; ($match, $reg1, $reg2) = match_2args ($addr+$inc, "mov"); return (0, \@targets, 0) if (!$match || $reg1 ne "r30" || $reg2 ne "r0"); $inc += 2; if (match_0args ($addr+$inc, "ijmp")) { $inc += 2; push @targets, $oob_target; if ($verbosity > 3) { printf "found a jump table of size %d\n", hex($table_size); } for (my $i=0; $i 3) { printf " entry at %x pointing to %x (%s,%s)\n", $index, $targ, $l, $h; } # this is a strong sanity check-- if we've got something # wrong it's highly unlikely that all jump table entries # will point to actual instructions die "tos-ramsize FAIL" if (!defined($insns{$targ})); push @targets, $targ; } return (1, \@targets, $inc); } else { return (0, \@targets, 0); } } # cpi r30, 0x1D ; 29 # cpc r31, r1 # brcs .+4 ; 0x39d2 # jmp 0x547c ; 0x547c # subi r30, 0xBA ; 186 # sbci r31, 0xFF ; 255 # add r30, r30 # adc r31, r31 # lpm r0, Z+ # lpm r31, Z # mov r30, r0 # ijmp sub match_jump_table_2 ($) { (my $addr) = @_; my $match; my $reg1; my $reg2; my $immed; my $oob_target; my @targets; my $inc = 0; ($match, $reg1, my $table_size) = match_2args ($addr+$inc, "cpi"); return (0, \@targets, 0) if (!$match); $inc += 2; ($match, $reg1, $reg2) = match_2args ($addr+$inc, "cpc"); return (0, \@targets, 0) if (!$match); $inc += 2; ($match, $immed) = match_branch ($addr+$inc, "brcs"); return (0, \@targets, 0) if (!$match); $inc += 2; ($match, $oob_target) = match_branch ($addr+$inc, "jmp"); return (0, \@targets, 0) if (!$match); $inc += 4; ($match, $reg1, my $sublo) = match_2args ($addr+$inc, "subi"); return (0, \@targets, 0) if (!$match); $inc += 2; ($match, $reg1, my $subhi) = match_2args ($addr+$inc, "sbci"); return (0, \@targets, 0) if (!$match); $inc += 2; ($match, $reg1, $reg2) = match_2args ($addr+$inc, "movw"); if ($match) { $inc += 2; } ($match, $reg1, $reg2) = match_2args ($addr+$inc, "add"); return (0, \@targets, 0) if (!$match); $inc += 2; ($match, $reg1, $reg2) = match_2args ($addr+$inc, "adc"); return (0, \@targets, 0) if (!$match); $inc += 2; ($match, $reg1, $reg2) = match_2args ($addr+$inc, "lpm"); return (0, \@targets, 0) if (!$match || $reg1 ne "r0" || $reg2 ne "Z+"); $inc += 2; ($match, $reg1, $reg2) = match_2args ($addr+$inc, "lpm"); return (0, \@targets, 0) if (!$match || $reg1 ne "r31" || $reg2 ne "Z"); $inc += 2; ($match, $reg1, $reg2) = match_2args ($addr+$inc, "mov"); return (0, \@targets, 0) if (!$match || $reg1 ne "r30" || $reg2 ne "r0"); $inc += 2; if (match_0args ($addr+$inc, "ijmp")) { $inc += 2; push @targets, $oob_target; if ($verbosity > 3) { printf "found a jump table of size %d\n", hex($table_size); } for (my $i=0; $i 3) { printf " entry at %x pointing to %x (%s,%s)\n", $index, $targ, $l, $h; } # this is a strong sanity check-- if we've got something # wrong it's highly unlikely that all jump table entries # will point to actual instructions die "tos-ramsize FAIL" if (!defined($insns{$targ})); push @targets, $targ; } return (1, \@targets, $inc); } else { return (0, \@targets, 0); } } # in r28, 0x3d ; 61 # in r29, 0x3e ; 62 # subi r28, 0x9D ; 157 # sbci r29, 0x00 ; 0 # in r0, 0x3f ; 63 # cli # out 0x3e, r29 ; 62 # out 0x3f, r0 ; 63 # out 0x3d, r28 ; 61 # in r28, 0x3d ; 61 # in r29, 0x3e ; 62 # sbiw r28, 0x14 ; 20 # in r0, 0x3f ; 63 # cli # out 0x3e, r29 ; 62 # out 0x3f, r0 ; 63 # out 0x3d, r28 ; 61 sub match_constant_push_1 ($) { (my $addr) = @_; my $hex_addr = sprintf "%x", $addr; my $match; my $reg; my $immed; my $dec; my $inc = 0; ($match, $reg, $immed) = match_2args ($addr+$inc, "in"); return (0, 0) if (!$match || $reg ne "r28" || $immed ne "0x3d"); $inc +=2; ($match, $reg, $immed) = match_2args ($addr+$inc, "in"); return (0, 0) if (!$match || $reg ne "r29" || $immed ne "0x3e"); $inc +=2; ($match, $reg, $dec) = match_2args ($addr+$inc, "sbiw"); if ($match && $reg eq "r28") { $dec = hex($dec); $inc +=2; } else { ($match, $reg, my $dec1) = match_2args ($addr+$inc, "subi"); return (0, 0) if (!$match || $reg ne "r28"); $inc +=2; ($match, $reg, my $dec2) = match_2args ($addr+$inc, "sbci"); return (0, 0) if (!$match || $reg ne "r29"); $inc +=2; $dec = make16($dec1,$dec2); } ($match, $reg, $immed) = match_2args ($addr+$inc, "in"); return (0, 0) if (!$match || $reg ne "r0" || $immed ne "0x3f"); $inc +=2; return (0, 0) if (!match_0args($addr+$inc, "cli")); $inc +=2; ($match, $immed, $reg) = match_2args ($addr+$inc, "out"); return (0, 0) if (!$match || $reg ne "r29" || $immed ne "0x3e"); $inc +=2; ($match, $immed, $reg) = match_2args ($addr+$inc, "out"); return (0, 0) if (!$match || $reg ne "r0" || $immed ne "0x3f"); $inc +=2; ($match, $immed, $reg) = match_2args ($addr+$inc, "out"); return (0, 0) if (!$match || $reg ne "r28" || $immed ne "0x3d"); $inc +=2; return (1, $dec, $inc); } # in r28, 0x3d ; 61 # in r29, 0x3e ; 62 # sbiw r28, 0x05 ; 5 # out 0x3e, r29 ; 62 # out 0x3d, r28 ; 61 sub match_constant_push_2 ($) { (my $addr) = @_; my $hex_addr = sprintf "%x", $addr; my $match; my $reg; my $immed; my $dec; my $inc = 0; ($match, $reg, $immed) = match_2args ($addr+$inc, "in"); return (0, 0) if (!$match || $reg ne "r28" || $immed ne "0x3d"); $inc +=2; ($match, $reg, $immed) = match_2args ($addr+$inc, "in"); return (0, 0) if (!$match || $reg ne "r29" || $immed ne "0x3e"); $inc +=2; ($match, $reg, $dec) = match_2args ($addr+$inc, "sbiw"); return (0, 0) if (!$match || $reg ne "r28"); $inc +=2; $dec = hex($dec); ($match, $immed, $reg) = match_2args ($addr+$inc, "out"); return (0, 0) if (!$match || $reg ne "r29" || $immed ne "0x3e"); $inc +=2; ($match, $immed, $reg) = match_2args ($addr+$inc, "out"); return (0, 0) if (!$match || $reg ne "r28" || $immed ne "0x3d"); $inc +=2; return (1, $dec, $inc); } # rcall .+0 ; 0x2792 sub match_constant_push_3 ($) { (my $addr) = @_; my $hex_addr = sprintf "%x", $addr; my $match; my $reg; my $immed; my $dec; my $inc = 0; ($match, $reg, $immed) = match_0args ($addr+$inc, "rcall"); return (0, 0) if (!$match); return (0, 0) if (get_target($addr) != $addr+$PC_SIZE{$platform}); $inc +=2; return (1, $PC_SIZE{$platform}, $inc); } # adiw r28, 0x14 ; 20 # in r0, 0x3f ; 63 # cli # out 0x3e, r29 ; 62 # out 0x3f, r0 ; 63 # out 0x3d, r28 ; 61 sub match_constant_pop_1 ($) { (my $addr) = @_; my $hex_addr = sprintf "%x", $addr; my $match; my $reg; my $immed; my $dec; my $inc = 0; ($match, $reg, $immed) = match_2args ($addr+$inc, "adiw"); return (0, 0, 0) if (!$match || $reg ne "r28"); $dec = -hex($immed); $inc += 2; ($match, $reg, $immed) = match_2args ($addr+$inc, "in"); return (0, 0, 0) if (!$match || $reg ne "r0" || $immed ne "0x3f"); $inc += 2; return (0, 0, 0) if (!match_0args($addr+$inc, "cli")); $inc += 2; ($match, $immed, $reg) = match_2args ($addr+$inc, "out"); return (0, 0, 0) if (!$match || $reg ne "r29" || $immed ne "0x3e"); $inc += 2; ($match, $immed, $reg) = match_2args ($addr+$inc, "out"); return (0, 0, 0) if (!$match || $reg ne "r0" || $immed ne "0x3f"); $inc += 2; ($match, $immed, $reg) = match_2args ($addr+$inc, "out"); return (0, 0, 0) if (!$match || $reg ne "r28" || $immed ne "0x3d"); $inc += 2; return (1, $dec, $inc); } # adiw r28, 0x05 ; 5 # out 0x3e, r29 ; 62 # out 0x3d, r28 ; 61 sub match_constant_pop_2 ($) { (my $addr) = @_; my $hex_addr = sprintf "%x", $addr; my $match; my $reg; my $immed; my $dec; my $inc = 0; ($match, $reg, $immed) = match_2args ($addr+$inc, "adiw"); return (0, 0, 0) if (!$match || $reg ne "r28"); $dec = -hex($immed); $inc += 2; ($match, $immed, $reg) = match_2args ($addr+$inc, "out"); return (0, 0, 0) if (!$match || $reg ne "r29" || $immed ne "0x3e"); $inc += 2; ($match, $immed, $reg) = match_2args ($addr+$inc, "out"); return (0, 0, 0) if (!$match || $reg ne "r28" || $immed ne "0x3d"); $inc += 2; return (1, $dec, $inc); } # in r28, 0x3d ; 61 # in r29, 0x3e ; 62 # subi r28, 0x9E ; 158 # sbci r29, 0xFF ; 255 # in r0, 0x3f ; 63 # cli # out 0x3e, r29 ; 62 # out 0x3f, r0 ; 63 # out 0x3d, r28 ; 61 sub match_constant_stack_op ($) { (my $addr) = @_; my $hex_addr = sprintf "%x", $addr; my $match; my $reg; my $immed; my $inc = 0; ($match, $reg, my $dec_lo) = match_2args ($addr+$inc, "subi"); return (0, 0, 0) if (!$match || $reg ne "r28"); $inc += 2; ($match, $reg, my $dec_hi) = match_2args ($addr+$inc, "sbci"); return (0, 0, 0) if (!$match || $reg ne "r29"); $inc += 2; my $dec = make16($dec_lo,$dec_hi); if ($dec > 32768) { $dec = - (65536 - $dec); } ($match, $reg, $immed) = match_2args ($addr+$inc, "in"); return (0, 0, 0) if (!$match || $reg ne "r0" || $immed ne "0x3f"); $inc += 2; return (0, 0, 0) if (!match_0args($addr+$inc, "cli")); $inc += 2; ($match, $immed, $reg) = match_2args ($addr+$inc, "out"); return (0, 0, 0) if (!$match || $reg ne "r29" || $immed ne "0x3e"); $inc += 2; ($match, $immed, $reg) = match_2args ($addr+$inc, "out"); return (0, 0, 0) if (!$match || $reg ne "r0" || $immed ne "0x3f"); $inc += 2; ($match, $immed, $reg) = match_2args ($addr+$inc, "out"); return (0, 0, 0) if (!$match || $reg ne "r28" || $immed ne "0x3d"); $inc += 2; return (1, $dec, $inc); } # in r24, 0x3d ; 61 # in r25, 0x3e ; 62 # adiw r24, 0x06 ; 6 # in r0, 0x3f ; 63 # cli # out 0x3e, r25 ; 62 # out 0x3f, r0 ; 63 # out 0x3d, r24 ; 61 sub match_constant_pop_4 ($) { (my $addr) = @_; my $hex_addr = sprintf "%x", $addr; my $match; my $reg; my $immed; my $stack_inc; my $inc = 0; ($match, $reg, $immed) = match_2args ($addr+$inc, "in"); return (0, 0) if (!$match || $reg ne "r24" || $immed ne "0x3d"); $inc +=2; ($match, $reg, $immed) = match_2args ($addr+$inc, "in"); return (0, 0) if (!$match || $reg ne "r25" || $immed ne "0x3e"); $inc +=2; ($match, $reg, $stack_inc) = match_2args ($addr+$inc, "adiw"); return (0, 0) if (!$match || $reg ne "r24"); $stack_inc = -hex($stack_inc); $inc +=2; ($match, $reg, $immed) = match_2args ($addr+$inc, "in"); return (0, 0) if (!$match || $reg ne "r0" || $immed ne "0x3f"); $inc +=2; return (0, 0) if (!match_0args($addr+$inc, "cli")); $inc +=2; ($match, $immed, $reg) = match_2args ($addr+$inc, "out"); return (0, 0) if (!$match || $reg ne "r25" || $immed ne "0x3e"); $inc +=2; ($match, $immed, $reg) = match_2args ($addr+$inc, "out"); return (0, 0) if (!$match || $reg ne "r0" || $immed ne "0x3f"); $inc +=2; ($match, $immed, $reg) = match_2args ($addr+$inc, "out"); return (0, 0) if (!$match || $reg ne "r24" || $immed ne "0x3d"); $inc +=2; return (1, $stack_inc, $inc); } # ldi r26, 0x00 ; 0 # ldi r27, 0x00 ; 0 # ldi r30, 0x97 ; 151 # ldi r31, 0x06 ; 6 # jmp 0x19dc ; 0x19dc <__prologue_saves__+0x4> sub match_prologue_saves ($) { (my $addr) = @_; my $hex_addr = sprintf "%x", $addr; my $match; my $reg; my $immed; ($match, $reg, my $im_lo) = match_2args ($addr, "ldi"); return (0, 0, 0) if (!$match || $reg ne "r26"); ($match, $reg, my $im_hi) = match_2args ($addr+2, "ldi"); return (0, 0, 0) if (!$match || $reg ne "r27"); ($match, $reg, $immed) = match_2args ($addr+4, "ldi"); return (0, 0, 0) if (!$match || $reg ne "r30"); ($match, $reg, $immed) = match_2args ($addr+6, "ldi"); return (0, 0, 0) if (!$match || $reg ne "r31"); ($match, my $target) = match_branch ($addr+8, "jmp"); return (0, 0, 0) if (!$match); my $ps = $label_to_addr{"__prologue_saves__"}; if (defined($ps) && $target >= $ps && $target <= ($ps+38)) { # this is a little conservative since we may jump into the middle my $st = 18+make16($im_lo, $im_hi); return (1, $st, 12); } return (0, 0, 0); } # jmp 0x2598 ; 0x2598 <__epilogue_restores__+0x14> sub match_epilogue_restores ($) { (my $addr) = @_; my $hex_addr = sprintf "%x", $addr; my $match; my $reg; my $inc = 0; ($match, my $target) = match_branch ($addr+$inc, "jmp"); return (0,0) if (!$match); my $er = $label_to_addr{"__epilogue_restores__"}; if (defined($er) && $target >= $er && $target <= ($er+38)) { $addr += 4; return (1, $ZERO_STACK, $inc); } else { return (0,0); } } sub replace_insn ($$$$) { (my $addr, my $size, my $se, my $name) = @_; $insns{$addr} = $name; $insn_size{$addr} = $size; $stack_effect{$addr} = $se; for (my $i=1; $i<$size; $i++) { delete ($insns{$addr+$i}); } } sub make_macro_insns () { foreach my $addr (keys %insns) { my $res; my $stack; my $listref; my $size; # todo-- factor this into list of function ($res, $size, my $initial_depth) = match_init_sp($addr); if ($res) { if (defined($initial_stack_depth)) { # FIXME: avr-gcc-412 initializes SP both in # crt0 and in main(), we can believe the second one #die "tos-ramsize FAIL: multiple initialization of SP?"; } die "tos-ramsize FAIL" if ($initial_depth < 0 || $initial_depth >= $RAM_SIZE{$platform}); $initial_stack_depth = $initial_depth; replace_insn ($addr, $size, 0, "init_sp"); } ($res, $listref, $size) = match_jump_table_1($addr); if ($res) { replace_insn ($addr, $size, 0, "jump_table"); $jump_lists{$addr} = $listref; } ($res, $listref, $size) = match_jump_table_2($addr); if ($res) { replace_insn ($addr, $size, 0, "jump_table"); $jump_lists{$addr} = $listref; } ($res, $stack, $size) = match_constant_push_1 ($addr); if ($res) { replace_insn ($addr, $size, $stack, "constant_push"); } ($res, $stack, $size) = match_constant_push_2 ($addr); if ($res) { replace_insn ($addr, $size, $stack, "constant_push"); } ($res, $stack, $size) = match_constant_push_3 ($addr); if ($res) { replace_insn ($addr, $size, $stack, "constant_push"); } ($res, $stack, $size) = match_constant_pop_1($addr); if ($res) { replace_insn ($addr, $size, $stack, "constant_pop"); } ($res, $stack, $size) = match_constant_pop_2($addr); if ($res) { replace_insn ($addr, $size, $stack, "constant_pop"); } ($res, $stack, $size) = match_constant_stack_op($addr); if ($res) { if ($size > 0) { replace_insn ($addr, $size, $stack, "constant_push"); } else { replace_insn ($addr, $size, $stack, "constant_pop"); } } ($res, $stack, $size) = match_constant_pop_4 ($addr); if ($res) { replace_insn ($addr, $size, $stack, "constant_pop"); } ($res, $stack, $size) = match_prologue_saves($addr); if ($res) { replace_insn ($addr, $size, $stack, "prologue_saves"); } ($res, $stack, $size) = match_epilogue_restores($addr); if ($res) { # here we ignore the stack effect of epilogue_restores # since the code includes a "ret" that terminates a thread # of the analysis replace_insn ($addr, $size, $stack, "ret"); } } } sub make_fine_grain_cfg () { my $last_label; foreach my $addr (sort bynum keys %insns) { my $insn = $insns{$addr}; my $hex_addr = sprintf "%x", $addr; my @succ = (); my @callees = (); # hack-- we're going to assume this is the name of the # function to which this instruction belongs if (defined($addr_to_label{$addr})) { $last_label = $addr_to_label{$addr}; } if ($insn eq "ijmp") { $diehere{$addr} = "cannot process raw indirect jump at $hex_addr"; } elsif ($insn eq "ret" || $insn eq "reti") { # no control flow from here in our model } elsif (is_branch ($addr) || is_skip ($addr) || is_jmp ($addr)) { if (is_jmp ($addr) && get_target ($addr) == $ORIGIN) { # jump to origin-- nothing to do since this resets the stack } else { push @succ, get_target ($addr); if (!is_jmp($addr)) { push @succ, ($addr + $insn_size{$addr}); } } } elsif ($insn eq "jump_table") { my $listref = $jump_lists{$addr}; die "tos-ramsize FAIL" if (!defined($listref)); @succ = @{$listref}; } elsif (is_fallthrough ($addr)) { push @succ, ($addr + $insn_size{$addr}); if ($insn eq "out") { (my $immed, my $reg) = parse_pair ($args{$addr}); if ($immed eq "0x3d" || $immed eq "0x3e") { $diehere{$addr} = "cannot process raw store to SP at $hex_addr"; } } } elsif (is_direct_call ($addr) || $insn eq "icall") { my $target; if (is_direct_call ($addr)) { $target = get_target ($addr); die "tos-ramsize FAIL" if (!defined($target)); } else { my $target_func = $ICALL_TARGETS{$last_label}; if (defined($target_func)) { $target = $label_to_addr{$target_func}; die "tos-ramsize FAIL" if (!defined($target)); } else { $diehere{$addr} = "cannot process raw indirect call at $hex_addr"; } } if (defined($target)) { push @callees, $target; my $l = $addr_to_label{$target}; if (!defined($l) || !$NORETURN{$addr_to_label{$target}}) { push @succ, ($addr + $insn_size{$addr}); } } } else { # data interpreted as instruction; this happens sometimes delete ($insns{$addr}) } $successors{$addr} = \@succ; $call_targets{$addr}= \@callees; } } sub compute_global_size($) { (my $fn) = @_; open INF, "avr-objdump -h $fn |" or die "tos-ramsize FAIL: can't open input file $fn"; my $data_size = 0; my $bss_size = 0; while (my $line = ) { chomp $line; if ($line =~ /^\s+[0-9]\s.([a-z]+)\s+([0-9a-f]+)/) { if ($1 eq "bss") { $bss_size = hex($2); } if ($1 eq "data") { $data_size = hex($2); } } } close INF; return ($data_size, $bss_size); } sub max ($$) { (my $a, my $b) = @_; if ($a > $b) { return $a; } else { return $b; } } sub min ($$) { (my $a, my $b) = @_; if ($a < $b) { return $a; } else { return $b; } } # $addr is the address of the current instruction # $vec is the name of the interrupt vector we're currently looking at # $old_depth is the stack depth before executing this instruction my %stack_map; my %max_stack; my %visited; my %enables_ints; sub compute_function_stack ($$) { (my $start_addr, my $vec_type) = @_; my $func_name = $addr_to_label{$start_addr}; my @worklist = (); my $start_stack; if ($vec_type eq "intr" || $vec_type eq "func") { $start_stack = $PC_SIZE{$platform}; } else { die if ($vec_type ne "main"); $start_stack = 0; } my @tmpl = ($start_addr, $start_stack); push @worklist, \@tmpl; my %depths; my %callees; while (scalar(@worklist) > 0) { my $lref = pop (@worklist); (my $addr, my $old_depth) = @{$lref}; die "tos-ramsize FAIL" if (!defined $addr); my $hex_addr = sprintf "%x", $addr; if (!defined($insns{$addr})) { die "tos-ramsize FAIL: no instruction at address $hex_addr"; } my $insn = $insns{$addr}; my $xxx = $diehere{$addr}; if (defined ($xxx)) { die "tos-ramsize FAIL: $xxx"; } $visited{$addr} = 1; # FIXME: nonportable AVR if ($insns{$addr} eq "sei") { $enables_ints{$start_addr} = 1; } my $se = $stack_effect{$addr}; die "tos-ramsize FAIL: no stack effect for $insn" if (!defined($se)); my $new_depth; if ($se == $ZERO_STACK) { $new_depth = 0; } else { $new_depth = $old_depth + $se; } if ($verbosity > 5) { print " $hex_addr $insn $new_depth\n"; } # something is very wrong if ($new_depth > $RAM_SIZE{$platform}) { printf "tos-ramsize FAIL: stack depth exceeds RAM size at %x\n", $hex_addr; die; } # require balanced stack #1 if ($insn eq "reti") { die "tos-ramsize FAIL" if ($vec_type ne "intr"); die "tos-ramsize FAIL" if ($new_depth != 0); next; } # require balanced stack #2 if ($insn eq "ret") { die "tos-ramsize FAIL" if ($vec_type ne "func"); die "tos-ramsize FAIL -- unbalanced stack on return from $func_name" if ($new_depth != 0); next; } # terminate if we're not learning something new about this address next if (defined($depths{$addr}) && $depths{$addr} >= $new_depth); # record new depth $depths{$addr} = $new_depth; if (defined($max_stack{$start_addr})) { $max_stack{$start_addr} = max ($new_depth, $max_stack{$start_addr}); } else { $max_stack{$start_addr} = $new_depth; } # handle control flow except function calls my $succ_ref = $successors{$addr}; my @succ = @{$succ_ref}; foreach my $succ_addr (@succ) { my @ll = ($succ_addr, $new_depth); push @worklist, \@ll; } # handle function calls my $callee_ref = $call_targets{$addr}; my @callees = @{$callee_ref}; foreach my $callee_addr (@callees) { $callees{$callee_addr} = 1; my $my_max; if (defined($stack_map{$start_addr}{$callee_addr})) { $my_max = max ($stack_map{$start_addr}{$callee_addr}, $new_depth); } else { $my_max = $new_depth; } $stack_map{$start_addr}{$callee_addr} = $my_max; } } my @callee_list = keys %callees; if ($verbosity > 2) { print "$func_name (max = $max_stack{$start_addr})\n"; foreach my $callee (@callee_list) { print " -> $addr_to_label{$callee} "; print "depth $stack_map{$start_addr}{$callee}\n"; } } return \@callee_list; } sub analyze_functions () { my @worklist = (); my %seen = (); for (my $vec = 0; $vec < $NUM_VECTORS{$platform}; $vec++) { my $addr = $vec * $VEC_SIZE{$platform}; my $label = "vector_$vec"; $addr_to_label{$addr} = $label; $label_to_addr{$label} = $addr; my $vec_type; if ($vec == 0) { $vec_type = "main"; } else { $vec_type = "intr"; } my @ll = ($addr, $vec_type); push @worklist, \@ll; } while (scalar(@worklist) > 0) { my $lref = pop @worklist; (my $addr, my $vec_type) = @{$lref}; my $hex_addr = sprintf "%x", $addr; next if ($seen{$addr}); my $label = $addr_to_label{$addr}; if (defined($label) && defined($SPECIAL{$label})) { $max_stack{$addr} = $SPECIAL{$label}; next; } $seen{$addr} = 1; my $l; my $lab = $addr_to_label{$addr}; if (defined($lab)) { $l = $lab; } else { $l = "[no label]"; } my $xlref = compute_function_stack ($addr, $vec_type); my @l = @{$xlref}; foreach $addr (@l) { my @ll = ($addr, "func"); push @worklist, \@ll; } } } # floyd sub find_cycles() { my @func_list = keys %max_stack; my %path; my $INFINITY = 9999999; foreach my $x (@func_list) { foreach my $y (@func_list) { if (defined($stack_map{$x}{$y})) { $path{$x}{$y} = 1; } else { $path{$x}{$y} = $INFINITY; } } } foreach my $k (@func_list) { foreach my $i (@func_list) { foreach my $j(@func_list) { $path{$i}{$j} = min ($path{$i}{$j},$path{$i}{$k}+$path{$k}{$j}); } } } my $min_path = $INFINITY; my $min_func; if ($verbosity > 2) { print "self-path lengths in the callgraph:\n"; } foreach my $z (@func_list) { my $len = $path{$z}{$z}; if ($verbosity > 2) { print " $addr_to_label{$z} $len\n"; } if ($len < $min_path) { $min_path = $len; $min_func = $z; } } if ($min_path != $INFINITY) { print "cannot estimate stack depth due to recursive loop of length $min_path:\n"; my $f = $min_func; for (my $i=$min_path-1; $i>0; $i--) { my @next_list = keys (%{$path{$f}}); my $found; foreach my $n (@next_list) { if ($path{$n}{$min_func} == $i && $path{$n}{$n} == $min_path) { $found = $n; } } die "tos-ramsize FAIL graph algo bug" if (!$found); printf " %s @ %x -> %s @ %x\n", $addr_to_label{$f}, $f, $addr_to_label{$found}, $found; $f = $found; } printf " %s @ %x -> %s @ %x\n", $addr_to_label{$f}, $f, $addr_to_label{$min_func}, $min_func; die "tos-ramsize FAIL"; } } my %reachable; sub find_reachable { (my $addr) = @_; $reachable{$addr} = 1; foreach my $callee (keys (%{$stack_map{$addr}})) { find_reachable($callee); } } my %vector_depth = (); my %atomic_vector = (); sub analyze_vector($$$) { (my $addr, my $vec, my $lref) = @_; my @topo = @{$lref}; %reachable = (); $atomic_vector{$vec} = 1; find_reachable ($addr); my %depth = (); my $maxd = 0; my $FAKE = -999; foreach my $v (@topo) { next if (!defined($reachable{$v})); my @edge_list = keys %{$stack_map{$v}}; # if any reachable function enables interrupts, the whole vector # in non-atomic if (defined($enables_ints{$v}) && $enables_ints{$v}) { $atomic_vector{$vec} = 0; } push @edge_list, $FAKE; foreach my $w (@edge_list) { my $d = $depth{$w}; $d = 0 if (!defined($d)); my $d2 = $depth{$v}; $d2 = 0 if (!defined($d2)); my $edge_weight; if ($w eq $FAKE) { $edge_weight = $max_stack{$v}; } else { $edge_weight = $stack_map{$v}{$w}; } $d = max ($d, $d2 + $edge_weight); $depth{$w} = $d; $maxd = max ($maxd, $d); } } $vector_depth{$vec} = $maxd; } sub analyze_vectors() { my @topo = (); my %stack_map2 = %stack_map; my @func_list = keys %stack_map2; do { foreach my $f (keys %stack_map2) { my $in_edges = 0; foreach my $f2 (keys %stack_map2) { if (defined($stack_map2{$f2}{$f})) { $in_edges++; } } if ($in_edges == 0) { push @topo, $f; delete ($stack_map2{$f}); } } } while (scalar(keys %stack_map2) > 0); if ($verbosity > 3) { foreach my $f (@topo) { my $hex = sprintf "%x", $f; my $s = $addr_to_label{$f}; print " $s $hex\n"; } } for (my $vec = 0; $vec < $NUM_VECTORS{$platform}; $vec++) { my $addr = $vec * $VEC_SIZE{$platform}; analyze_vector ($addr, $vec, \@topo); } } sub analyze_global_stack_usage() { my $max_atomic = 0; my $total_nonatomic = 0; if ($verbosity > 1) { print "\n"; print "per-vector results:\n"; } for (my $vec = 0; $vec < $NUM_VECTORS{$platform}; $vec++) { my $addr = $vec * $VEC_SIZE{$platform}; my $maxd = $vector_depth{$vec}; my $s = ""; $s .= sprintf " vector %d max depth = %d", $vec, $maxd; my $atom = $atomic_vector{$vec}; if (defined($atom) && $atom) { $s .= " (atomic)"; $max_atomic = max ($max_atomic, $maxd); } else { $s .= " (not atomic)"; $total_nonatomic += $maxd; } if ($verbosity > 1 && $maxd != $PC_SIZE{$platform}) { print "$s\n"; } } my $depth = $total_nonatomic + $max_atomic; return $depth; } ########################################################################## ################################ MAIN #################################### ########################################################################## # redirect stderr to stdout, don't buffer stdout open(STDERR,'>&', STDOUT); $|=1; my $result = GetOptions ("verbosity=i" => \$verbosity); die "tos-ramsize FAIL" if (!$result); if (scalar(@ARGV) != 2) { die "usage: ramsize.pl [-verbosity 0-9] mica2|micaz|iris avr_file.elf"; } $platform = $ARGV[0]; die "tos-ramsize FAIL: unknown platform '$platform'" if (!defined($RAM_SIZE{$platform})); my $file = $ARGV[1]; die "tos-ramsize FAIL: '$file' not found" if (!(-f $file)); if ($verbosity > 1) { print "analyzing elf file '$file' for platform '$platform'\n"; } disassemble ($file); insn_stack_effects(); make_macro_insns(); make_fine_grain_cfg(); analyze_functions(); find_cycles(); analyze_vectors(); my $total_depth = analyze_global_stack_usage(); (my $data_size, my $bss_size) = compute_global_size($file); my $ramused = $data_size + $bss_size + $total_depth; my $free_mem = $RAM_SIZE{$platform} - $ramused; if ($verbosity > 2) { foreach my $addr (sort bynum keys %insns) { if (!$visited{$addr}) { my $l = $addr_to_label{$addr}; if (defined($l) && !defined($SPECIAL{$l})) { printf "unreachable label: %x %s\n", $addr, $l; } } } } if ($verbosity > 0) { print "BSS segment size is ${bss_size}, data segment size is ${data_size}\n"; } print "The upper bound on stack size is ${total_depth}\n"; print "The upper bound on RAM usage is $ramused\n"; print "There are $free_mem unused bytes of RAM\n"; ########################################################################## tinyos-tools-1.4.2/tools/tinyos/tosthreads/000077500000000000000000000000001206361226500210515ustar00rootroot00000000000000tinyos-tools-1.4.2/tools/tinyos/tosthreads/Makefile.am000066400000000000000000000007361206361226500231130ustar00rootroot00000000000000AUTOMAKE_OPTIONS = foreign dist_man_MANS = tosthreads-dynamic-app.1 tosthreadslibdir=$(libdir)/tinyos/tosthreads bin_SCRIPTS = tosthreads-dynamic-app \ tosthreads-gen-dynamic-app tosthreadslib_DATA = tosthreads_standard_api.py tosthreads-dynamic-app: tosthreads-dynamic-app.in sed -e 's,@tosthreadslibdir\@,$(tosthreadslibdir),g' tosthreads-dynamic-app.in >$@ sed -e 's,@pathpython\@,$(pathpython),g' $@ > $@.temp mv $@.temp $@ tinyos-tools-1.4.2/tools/tinyos/tosthreads/tosthreads-dynamic-app.1000066400000000000000000000007501206361226500255150ustar00rootroot00000000000000.TH tosthreads-dynamic-app 1 "May 29, 2008" .LO 1 .SH NAME tosthreads-dynamic-app - Generate a TOSThreads dynamically loadable binary from an ELF object file .SH SYNOPSIS \fBtosthreads-dynamic-app\fR [\fB-a --array --api=\fR] \fI \fR .SH DESCRIPTION \fBtosthreads-dynamic-app\fR generates a TOSThreads dynamically loadable binary from an ELF object file. .SH EXAMPLES tosthreads-dynamic-app -a --api=standard main.o main.bin main.tos tinyos-tools-1.4.2/tools/tinyos/tosthreads/tosthreads-dynamic-app.in000066400000000000000000000341651206361226500257720ustar00rootroot00000000000000#!@pathpython@ # Copyright (c) 2008 Johns Hopkins University. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # - Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # - Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the # distribution. # - Neither the name of the copyright holders nor the names of # its contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL # THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # OF THE POSSIBILITY OF SUCH DAMAGE. # @author Chieh-Jan Mike Liang # @author Razvan Musaloiu-E. # @author Kevin Klues import sys, subprocess import struct sys.path.append("@tosthreadslibdir@") def error_exit( s ): sys.stderr.write("\n" + s + "\n\n") exit( 2 ) def exit_usage(): error_exit( "Usage: tosthreads-dynamic-app [-a --array --api= ] " ) #Handle arguments........ from getopt import * try: opts, args = getopt(sys.argv[1:], "a" ,['array', 'api=']) except GetoptError, err: print str(err) # will print something like "option -a not recognized" exit_usage() array_opt = False api_opt = False valid_apis = ["standard", "tenet"]; for o, a in opts: if o == "--api" and (a not in valid_apis): exit_usage() elif o == "--api" and a == "tenet": api_opt = True import tosthreads_tenet_api as tosthread_slcs_extfun elif o == "--api" and a == "standard": api_opt = True import tosthreads_standard_api as tosthread_slcs_extfun elif o == "-a" or o == "--array": array_opt = True else: exit_usage() if api_opt == False: import tosthreads_standard_api as tosthread_slcs_extfun if len( args ) != 3: exit_usage() def slice(v, s): r = [] for i in range(0, len(v), s): r.append(v[i:i+s]) return r def cmp(x, y): if int(x[0]) > int(y[0]): return 1 elif int(x[0]) == int(y[0]): if x[1] > y[1]: return 1 elif x[1] == y[1]: return 0 else: return -1 else: return -1 # ===== STEP 0: Prepares function-ID maps ===== # map_extfun = tosthread_slcs_extfun.map_extfun map_hook = {"tosthread_main":0} map_intfun = dict() map_intfun_counter = 0 # ===== STEP 1: Reads in the binary of the loadable program ===== # s = open(args[1]).read() code = ["0x%02x" % (struct.unpack("B", i)) for i in s] # ===== STEP 2: Allocation Table ===== # var = {} # var[variable_name] = (variable_size, allocated_addr) alloc = {} # alloc[variable_name] = ((offset, addr), (offset, addr), ...) compact_alloc = [] # Final allocation table: [("real" addr, next patching addr), ...] compact_alloc_binary = [] dataSection = {} dataSection_values = [] dataSection_values_binary = [] # Gets variables' name and size p = subprocess.Popen(["msp430-readelf", "-W", "-s", args[0]], stdout=subprocess.PIPE) line = p.stdout.readline() fm_addr = 0 while line: v = line.split() if len(v) == 8 and v[4] == "GLOBAL" and (v[6] == "COM" or v[6] == "3"): name = v[-1] if name != "TOS_NODE_ID": size = int(v[2]) var[name] = [size, fm_addr] alloc[name] = [] # Filled later if v[6] == "3": dataSection[name] = [int(v[1], 16)] fm_addr += size line = p.stdout.readline() # Gets the variables' location in the loadable program p = subprocess.Popen(["msp430-readelf", "-W", "-r", args[0]], stdout=subprocess.PIPE) line = p.stdout.readline() while line: v = line.split() if len(v) == 7: name = v[4] if name in var and name != "TOS_NODE_ID": addr = int(v[0], 16) offset = int(v[-1], 16) alloc[name].append([offset, addr]) line = p.stdout.readline() # Patches the binary for address-chaining, and compacts the allocation table for name in alloc.keys(): alloc[name].sort(cmp) # Sort by offset, then addr for i in range(len(alloc[name])): # Sees if address-chaining if necessary if (i + 1) < len(alloc[name]) and alloc[name][i][0] == alloc[name][i + 1][0]: code[alloc[name][i][1]] = "0x%02x" % ((alloc[name][i + 1][1]) & 0xFF) code[alloc[name][i][1] + 1] = "0x%02x" % ((alloc[name][i + 1][1] >> 8) & 0xFF) # Sees if the current entry should be included if i == 0 or (alloc[name][i - 1][0] != alloc[name][i][0]): real_addr = var[name][1] + alloc[name][i][0] # "real" address = FM + offset compact_alloc.append("{%d, (void*)0x%04x} /* %s + %d */" % (real_addr, alloc[name][i][1], name, alloc[name][i][0])) # ["real" addr, next patching addr] compact_alloc_binary.append("0x%02x" % (real_addr & 0xFF)) compact_alloc_binary.append("0x%02x" % ((real_addr >> 8) & 0xFF)) compact_alloc_binary.append("0x%02x" % (alloc[name][i][1] & 0xFF)) compact_alloc_binary.append("0x%02x" % ((alloc[name][i][1] >> 8) & 0xFF)) if name in dataSection.keys(): #print ".data:", real_addr, dataSection[name][0], var[name][0] dataSection_values_binary.append("0x%02x" % (real_addr & 0xFF)) dataSection_values_binary.append("0x%02x" % ((real_addr >> 8) & 0xFF)) dataSection_values_binary.append("0x%02x" % (dataSection[name][0] & 0xFF)) dataSection_values_binary.append("0x%02x" % ((dataSection[name][0] >> 8) & 0xFF)) dataSection_values_binary.append("0x%02x" % (var[name][0] & 0xFF)) dataSection_values_binary.append("0x%02x" % ((var[name][0] >> 8) & 0xFF)) # ===== STEP 3: Full relocation table (compacted in step 5) ===== # fun = [] global_fun = [] local_fun = [] # Gets both where functions are called and where it is located p = subprocess.Popen(["msp430-readelf", "-W", "-s", args[0]], stdout=subprocess.PIPE) line = p.stdout.readline() while line: v = line.split() if len(v) == 8 and v[4] == "GLOBAL": if v[3] == "NOTYPE" or v[3] == "FUNC": fun.append(v[-1]) line = p.stdout.readline() # Gets global and local function calls and their locations in the loadable program p = subprocess.Popen(["msp430-readelf", "-W", "-r", args[0]], stdout=subprocess.PIPE) line = p.stdout.readline() while line and line != "There are no relocations in this file.\n": v = line.split() if len(v) == 7: name = v[4] addr = int(v[0], 16) offset = int(v[-1], 16) if name in fun: if offset != 0: print "ERROR: Non zero offset for", name, "at", offset if map_extfun.has_key(name): global_fun.append([map_extfun[name], addr, name]) else: if not map_intfun.has_key(name): map_intfun[name] = [map_intfun_counter, 0] # fun_id, addr map_intfun_counter += 1 local_fun.append([map_intfun[name][0], addr, name]) line = p.stdout.readline() # ===== STEP 4: Global and local symbol tables ===== # global_sym = [] local_sym = [] global_sym_binary = [] compact_global_sym_binary = ["0x00", "0x00"] # Just have address to one symbol (should be to main()) p = subprocess.Popen(["msp430-objdump", "-t", args[0]], stdout=subprocess.PIPE) line = p.stdout.readline() while line: v = line.split() if len(v) == 6 and \ v[1] == "g" and v[2] == 'F' and v[3] == '.text': name = v[5] addr = int(v[0], 16) if map_hook.has_key(name): global_sym.append('{%d, (void*)0x%04x} /* %s */' % (map_hook[name], addr, name)) global_sym_binary.append("0x%02x" % (map_hook[name] & 0xFF)) global_sym_binary.append("0x%02x" % ((map_hook[name] >> 8) & 0xFF)) global_sym_binary.append("0x%02x" % (addr & 0xFF)) global_sym_binary.append("0x%02x" % ((addr >> 8) & 0xFF)) compact_global_sym_binary = ["0x%02x" % (addr & 0xFF)] compact_global_sym_binary.append("0x%02x" % ((addr >> 8) & 0xFF)) else: if map_intfun.has_key(name): local_sym.append('{%s, (void*)0x%04x} /* %s */' % (map_intfun[name][0], addr, name)) map_intfun[name] = [map_intfun[name][0], addr] line = p.stdout.readline() # ===== STEP 5: Patches the binary for address-chaining, and compacts the relocation table ===== # global_fun_binary = [] local_fun_binary = [] # Patches the binary code global_fun.sort(cmp) for i in range(len(global_fun)): # Sees if address-chaining if necessary if (i + 1) < len(global_fun) and global_fun[i][0] == global_fun[i + 1][0]: code[global_fun[i][1]] = "0x%02x" % ((global_fun[i + 1][1]) & 0xFF) code[global_fun[i][1] + 1] = "0x%02x" % ((global_fun[i + 1][1] >> 8) & 0xFF) local_fun.sort(cmp) for i in range(len(local_fun)): # Sees if address-chaining if necessary if (i + 1) < len(local_fun) and local_fun[i][0] == local_fun[i + 1][0]: code[local_fun[i][1]] = "0x%02x" % ((local_fun[i + 1][1]) & 0xFF) code[local_fun[i][1] + 1] = "0x%02x" % ((local_fun[i + 1][1] >> 8) & 0xFF) # Compacts the relocation table i = 0 while True: if i >= len(global_fun): break if (i + 1) < len(global_fun) and (global_fun[i][0] == global_fun[i + 1][0]): del global_fun[i + 1] else: global_fun_binary.append("0x%02x" % (global_fun[i][0] & 0xFF)) global_fun_binary.append("0x%02x" % ((global_fun[i][0] >> 8) & 0xFF)) global_fun_binary.append("0x%02x" % (global_fun[i][1] & 0xFF)) global_fun_binary.append("0x%02x" % ((global_fun[i][1] >> 8) & 0xFF)) global_fun[i] = '{%d, (void*)0x%04x} /* %s */' % (global_fun[i][0], global_fun[i][1], global_fun[i][2]) i += 1 i = 0 while True: if i >= len(local_fun): break if (i + 1) < len(local_fun) and (local_fun[i][0] == local_fun[i + 1][0]): del local_fun[i + 1] else: local_fun_binary.append("0x%02x" % (map_intfun[local_fun[i][2]][1] & 0xFF)) local_fun_binary.append("0x%02x" % ((map_intfun[local_fun[i][2]][1] >> 8) & 0xFF)) local_fun_binary.append("0x%02x" % (local_fun[i][1] & 0xFF)) local_fun_binary.append("0x%02x" % ((local_fun[i][1] >> 8) & 0xFF)) local_fun[i] = '{%d, (void*)0x%04x} /* %s */' % (map_intfun[local_fun[i][2]][1], local_fun[i][1], local_fun[i][2]) i += 1 # ===== STEP 6: Prints out the image ===== # #print "uint16_t g_sym_count = %d;" % (len(global_sym)) #print "uint16_t alloc_count = %d;" % (len(compact_alloc)) #print "uint16_t g_reloc_count = %d;" % (len(global_fun)) #print "uint16_t l_reloc_count = %d;" % (len(local_fun)) #print "uint16_t code_count = %d;" % (len(code)) #print # #print "uint8_t patch_table[] = {" #print "\t%s,\n" % (",\n\t".join([", ".join(l) for l in slice(compact_alloc_binary, 16)])) # Allocation table #print "\t%s,\n" % (",\n\t".join([", ".join(l) for l in slice(global_fun_binary, 16)])) # Global relocation table #print "\t%s\n};" % (",\n\t".join([", ".join(l) for l in slice(local_fun_binary, 16)])) # Local relocation table #print #print "struct value_addr_pair patch_table[] = {" #print "\t%s,\n" % (",\n\t".join(compact_alloc)) # Allocation table #print "\t%s,\n" % (",\n\t".join(global_fun)) # Global relocation table #print "\t%s\n};" % (",\n\t".join(local_fun)) # Local relocation table #print # #print "struct value_addr_pair g_syma[] = {\n\t%s\n};" % (",\n\t".join(global_sym)) # Global symbol table #print "uint8_t g_sym[] = {\n\t%s\n};" % (",\n\t".join([", ".join(l) for l in slice(global_sym_binary, 16)])) #print # #print "uint8_t code[] = {\n\t%s\n};" % (",\n\t".join([", ".join(l) for l in slice(code, 16)])) # The binary code of the loadable program #print # Don't need it because local_fun has the following information already ## Local symbol table #print "uint16_t l_sym_count = %d;" % (len(local_sym)) #print "struct addr_addr_pair l_sym[] = {\n\t%s\n};" % (",\n\t".join(local_sym)) #print binary_image = compact_global_sym_binary binary_image.extend(["0x%02x" % (i) for i in [#len(global_sym) & 0xFF, (len(global_sym) >> 8) & 0xFF, len(compact_alloc) & 0xFF, (len(compact_alloc) >> 8) & 0xFF, fm_addr & 0xFF, (fm_addr >> 8) & 0xFF, len(global_fun) & 0xFF, (len(global_fun) >> 8) & 0xFF, len(local_fun) & 0xFF, (len(local_fun) >> 8) & 0xFF, (len(dataSection_values_binary) / 6) & 0xFF, ((len(dataSection_values_binary) / 6) >> 8) & 0xFF, len(code) & 0xFF, (len(code) >> 8) & 0xFF]]) #binary_image.extend(global_sym_binary) binary_image.extend(compact_alloc_binary) binary_image.extend(global_fun_binary) binary_image.extend(local_fun_binary) binary_image.extend(dataSection_values_binary) binary_image.extend(code) #print len(code) f = open(args[2], 'wb') for i in binary_image: f.write(struct.pack("B", int(i, 16))) if array_opt: print "uint8_t code[] = {\n\t%s\n};" % (",\n\t".join([", ".join(l) for l in slice(binary_image, 16)])) tinyos-tools-1.4.2/tools/tinyos/tosthreads/tosthreads-gen-dynamic-app000077500000000000000000000066531206361226500261400ustar00rootroot00000000000000#!/bin/bash # Copyright (c) 2008 Johns Hopkins University. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # - Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # - Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the # distribution. # - Neither the name of the copyright holders nor the names of # its contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL # THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # OF THE POSSIBILITY OF SUCH DAMAGE. # @author Chieh-Jan Mike Liang if [ $# -ne 1 -a $# -ne 2 ] then echo "Usage: `basename $0` path_to_cthread_app [options]" echo "" echo "-a --array" echo " Print out the loadable binary code as a byte array." exit -1 fi CFILE=$1 FLAG=$2 GCC="msp430-gcc" OBJCOPY="msp430-objcopy" NESCFLAGS="-target=telosb -x nesc -fnesc-target=msp430" CFLAGS="-c -gcc=$GCC -mmcu=msp430x1611 -Os -mdisable-hwmul -Wall -Wshadow" OBJFILE=`basename $CFILE .c`.o BINFILE=`basename $CFILE .c`.bin TOSFILE=`basename $CFILE .c`.tos TOS_THREADS_DIR=$TOSDIR/lib/tosthreads THREADS_CSYSTEM_DIR=$TOS_THREADS_DIR/csystem THREADS_SYSTEM_DIR=$TOS_THREADS_DIR/system THREADS_INTERFACES_DIR=$TOS_THREADS_DIR/interfaces THREADS_TYPES_DIR=$TOS_THREADS_DIR/types THREADS_MSP430_DIR=$TOS_THREADS_DIR/chips/msp430 THREADS_TMOTE_SENSORS_DIR=$TOS_THREADS_DIR/tos/sensorboards/tmote_onboard THREADS_PRINTF_DIR=$TOS_THREADS_DIR/tos/lib/printf TOS_TELOSA_DIR=$TOSDIR/platforms/telosa TOS_TELOSB_DIR=$TOSDIR/platforms/telosb TOS_CC2420_DIR=$TOSDIR/chips/cc2420 TOS_SERIAL_DIR=$TOSDIR/lib/serial TOS_SYSTEM_DIR=$TOSDIR/system TOS_TYPES_DIR=$TOSDIR/types #Set up includes CFLAGS="$CFLAGS -I$THREADS_CSYSTEM_DIR -I$THREADS_SYSTEM_DIR -I$THREADS_INTERFACES_DIR -I$THREADS_TYPES_DIR -I$THREADS_MSP430_DIR" CFLAGS="$CFLAGS -I$THREADS_PRINTF_DIR" CFLAGS="$CFLAGS -I$THREADS_TMOTE_SENSORS_DIR" CFLAGS="$CFLAGS -DTOSTHREAD_EXTERNAL_BINARY" #Set up the proper scheduler NESCFLAGS="$NESCFLAGS -tosscheduler=TinyTaskSchedulerC,TinyTaskSchedulerC.TaskBasic,TaskBasic,TaskBasic,runTask,postTask" rm -rf $OBJFILE rm -rf $TOSFILE COMMAND="ncc $CFLAGS $NESCFLAGS $CFILE" echo $COMMAND command $COMMAND COMMAND="$OBJCOPY --output-target=binary $OBJFILE $BINFILE" echo $COMMAND command $COMMAND COMMAND="tosthreads-dynamic-app $FLAG $OBJFILE $BINFILE $TOSFILE" echo $COMMAND command $COMMAND rm $BINFILE rm $OBJFILE tinyos-tools-1.4.2/tools/tinyos/tosthreads/tosthreads-gen-dynamic-app.1000077500000000000000000000035041206361226500262670ustar00rootroot00000000000000#!/bin/bash if [ $# -ne 1 -a $# -ne 2 ] then echo "Usage: `basename $0` path_to_cthread_app [options]" echo "" echo "-a --array" echo " Print out the loadable binary code as a byte array." exit -1 fi CFILE=$1 FLAG=$2 GCC="msp430-gcc" OBJCOPY="msp430-objcopy" NESCFLAGS="-target=telosb -x nesc -fnesc-target=msp430" CFLAGS="-c -gcc=$GCC -mmcu=msp430x1611 -Os -mdisable-hwmul -Wall -Wshadow" OBJFILE=`basename $CFILE .c`.o BINFILE=`basename $CFILE .c`.bin TOSFILE=`basename $CFILE .c`.tos TOS_THREADS_DIR=$TOSDIR/lib/tosthreads THREADS_CSYSTEM_DIR=$TOS_THREADS_DIR/csystem THREADS_SYSTEM_DIR=$TOS_THREADS_DIR/system THREADS_INTERFACES_DIR=$TOS_THREADS_DIR/interfaces THREADS_TYPES_DIR=$TOS_THREADS_DIR/types THREADS_MSP430_DIR=$TOS_THREADS_DIR/chips/msp430 THREADS_TMOTE_SENSORS_DIR=$TOS_THREADS_DIR/tos/sensorboards/tmote_onboard THREADS_PRINTF_DIR=$TOS_THREADS_DIR/tos/lib/printf TOS_TELOSA_DIR=$TOSDIR/platforms/telosa TOS_TELOSB_DIR=$TOSDIR/platforms/telosb TOS_CC2420_DIR=$TOSDIR/chips/cc2420 TOS_SERIAL_DIR=$TOSDIR/lib/serial TOS_SYSTEM_DIR=$TOSDIR/system TOS_TYPES_DIR=$TOSDIR/types #Set up includes CFLAGS="$CFLAGS -I$THREADS_CSYSTEM_DIR -I$THREADS_SYSTEM_DIR -I$THREADS_INTERFACES_DIR -I$THREADS_TYPES_DIR -I$THREADS_MSP430_DIR" CFLAGS="$CFLAGS -I$THREADS_PRINTF_DIR" CFLAGS="$CFLAGS -I$THREADS_TMOTE_SENSORS_DIR" CFLAGS="$CFLAGS -DTOSTHREAD_EXTERNAL_BINARY" #Set up the proper scheduler NESCFLAGS="$NESCFLAGS -tosscheduler=TinyTaskSchedulerC,TinyTaskSchedulerC.TaskBasic,TaskBasic,TaskBasic,runTask,postTask" rm -rf $OBJFILE rm -rf $TOSFILE COMMAND="ncc $CFLAGS $NESCFLAGS $CFILE" echo $COMMAND command $COMMAND COMMAND="$OBJCOPY --output-target=binary $OBJFILE $BINFILE" echo $COMMAND command $COMMAND COMMAND="tosthreads-dynamic-app $FLAG $OBJFILE $BINFILE $TOSFILE" echo $COMMAND command $COMMAND rm $BINFILE rm $OBJFILE tinyos-tools-1.4.2/tools/tinyos/tosthreads/tosthreads_standard_api.py.in000066400000000000000000000124201206361226500267200ustar00rootroot00000000000000#!@pathpython@ # Copyright (c) 2008 Johns Hopkins University. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # - Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # - Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the # distribution. # - Neither the name of the copyright holders nor the names of # its contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL # THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # OF THE POSSIBILITY OF SUCH DAMAGE. # @author Chieh-Jan Mike Liang # @author Razvan Musaloiu-E. import sys, subprocess import struct # ===== STEP 0: Prepares function-ID maps ===== # map_extfun = { "tosthread_sleep":0, "tosthread_create":1, "led0On":2, "led1On":3, "led2On":4, "led0Off":5, "led1Off":6, "led2Off":7, "led0Toggle":8, "led1Toggle":9, "led2Toggle":10, "amSerialStart":11, "amSerialStop":12, "amSerialReceive":13, "amSerialSend":14, "amSerialLocalAddress":15, "amSerialGetLocalGroup":16, "amSerialGetDestination":17, "amSerialGetSource":18, "amSerialSetDestination":19, "amSerialSetSource":20, "amSerialIsForMe":21, "amSerialGetType":22, "amSerialSetType":23, "amSerialGetGroup":24, "amSerialSetGroup":25, "serialClear":26, "serialGetPayloadLength":27, "serialSetPayloadLength":28, "serialMaxPayloadLength":29, "serialGetPayload":30, "serialRequestAck":31, "serialNoAck":32, "serialWasAcked":33, "amRadioStart":34, "amRadioStop":35, "amRadioReceive":36, "amRadioSend":37, "amRadioGetLocalAddress":38, "amRadioGetLocalGroup":39, "amRadioGetDestination":40, "amRadioGetSource":41, "amRadioSetDestination":42, "amRadioSetSource":43, "amRadioIsForMe":44, "amRadioGetType":45, "amRadioSetType":46, "amRadioGetGroup":47, "amRadioSetGroup":48, "radioClear":49, "radioGetPayloadLength":50, "radioSetPayloadLength":51, "radioMaxPayloadLength":52, "radioGetPayload":53, "radioRequestAck":54, "radioNoAck":55, "radioWasAcked":56, "semaphore_reset":57, "semaphore_acquire":58, "semaphore_release":59, "barrier_reset":60, "barrier_block":61, "barrier_isBlocking":62, "condvar_init":63, "condvar_wait":64, "condvar_signalNext":65, "condvar_signalAll":66, "condvar_isBlocking":67, "mutex_init":68, "mutex_lock":69, "mutex_unlock":70, "volumeBlockRead":71, "volumeBlockWrite":72, "volumeBlockCrc":73, "volumeBlockErase":74, "volumeBlockSync":75, "refcounter_init":76, "refcounter_increment":77, "refcounter_decrement":78, "refcounter_waitOnValue":79, "refcounter_count":80, "amRadioSnoop":81, "queue_init":82, "queue_clear":83, "queue_push":84, "queue_pop":85, "queue_remove":86, "queue_size":87, "queue_is_empty":88, "sensirionSht11_humidity_read":89, "sensirionSht11_humidity_getNumBits":90, "sensirionSht11_temperature_read":91, "sensirionSht11_temperature_getNumBits":92, "hamamatsuS10871_tsr_read":93, "hamamatsuS10871_tsr_readStream":94, "hamamatsuS10871_tsr_getNumBits":95, "hamamatsuS1087_par_read":96, "hamamatsuS1087_par_readStream":97, "hamamatsuS1087_par_getNumBits":98, "volumeLogRead":99, "volumeLogCurrentReadOffset":100, "volumeLogSeek":101, "volumeLogGetSize":102, "volumeLogAppend":103, "volumeLogCurrentWriteOffset":104, "volumeLogErase":105, "volumeLogSync":106, "getLeds":107, "setLeds":108, "__divmodhi4":109, "tosthread_join":110, "volumeConfigMount":111, "volumeConfigRead":112, "volumeConfigWrite":113, "volumeConfigCommit":114, "volumeConfigGetSize":115, "volumeConfigValid":116}