instead-1.9.1/ChangeLog000644 001751 001751 00000042570 12170225762 015241 0ustar00peterpeter000000 000000 1.9.1 * INSTEAD moved to sourceforge.net; * pt_BR language added; * example code fixes; * -hinting option; * fixes in Makefiles and configure script; * lua5.2 fix; * bug fix in new/delete; -- Peter Kosyh Sat, 13 Jul 2013 14:30:00 +0400 1.9.0 * music track from svenzzon!!!; * SDL2.0 ready; * -owntheme option; * -noautosave option is not saved; * -software option; * bug fix: segfault while change and restart game; * img_t refactoring for future architecture upgrade; * fix in anigif scale; * fix in stead.dialog_rescan; * mp3 fix in windows binary; -- Peter Kosyh Fri, 12 Apr 2013 08:00:00 +0400 1.8.3 * bug fix in start() from gamefile; * bug fix do not remove xwalk after gamereset; * bug fix in txtnb (lua5.2 compat); * stead.savename function to redefine saves; * stead.restart() to restart current game; * p/pr/pn now do error when called from global context; * now math. and os. moved to stead; * debian friendly release; * ctrl-r is alt-r, ctrl-q is alt-q alias; * New documentation; * stead.menu_toggle 'load/save/quit' parameters; -- Peter Kosyh Sat, 26 Jan 2013 14:50:00 +0400 1.8.2 * bug fix in gfx_chnage_screen (sigsegv); * bug fix in sound system (sigsegv); * bug fix in input.lua and lua 5.2; * bug fix filter scr.w scr.h changing from lua; * fixes in ua tutorial; * icon fix in windows; * cleanup code for clang; -- Peter Kosyh Wed, 19 Dec 2012 10:34:00 +0400 1.8.1 * bug fix in onact (stop act on non-nil return); * bug fix in instead_gamespath/instead_themespath/instead_steadpath; * bug fix in vars, now do not empty [k] indexes in obj; * bug fix flickering while theme update; * new theme parameter: win.scroll.mode = [0|1|2|3] * new iface.anchor feature; * faster working with layouts; -- Peter Kosyh Sat, 17 Nov 2012 10:32:00 +0400 1.8.0 * bug fix in stead.need_scene() with parameter; * bug fix in click on sprite; * bug fix in save logic (table keys); * bug fixes in dbg; * bug fix in proxy_menu - possible to work with nam = true objects; * bug fix much more faster text output; * bug fix if use returns nil and used returns true; * bug fix in change theme on the fly via theme module (segfault); * bug fix in restore_snapshot (extra call to main.enter); * internal functions are moved in stead. table; * dbg module: use f7 key again to exit debugger; * enable and disable methods in list; * sprite.rotate, sprite.scale smooth parameter; * much better scr.gfx.scalable handling, uses /2^x scaler; * CPPFLAGS added in Makefile; * scaler is updated from SDL_gfx 2.0.24; -- Peter Kosyh Sat, 1 Sep 2012 12:08:00 +0400 1.7.0 * bug fix in phrase handling w/o parameter; * bug fix in zip unpack; * fix in doc/menu; * svg logo added; * busy dialog; * opt_fading; * normal fonts in MAEMO build; * wroom module added; * nouse module added; * nolife module added; * hideinv module is better now, noinv added; * new dlg module: * - better dlg syntax; * - psub/pret/pjump/pstart; * - stead.phrase_prefix; * compose in sprite; * game.onact/onwalk/onuse/oninv handlers; * counters module; * proxymenu module; * configure.sh now checks gtk+-3.0; * sprite.box and sprite.blank; * stead.add_var internal command; * stead.gui.hideways added; * xact now searches recursive; * xwalk xact added; * lifeon with order; * correct output from life methods while moving; * stead.need_scene() added; * stead.last_act() added; * move/purge/remove/replace now works with lists too; * dialog:visible added; -- Peter Kosyh Thu, 17 Apr 2012 13:40:00 +0400 1.6.2 * bugfix in build with SDL_mixer 1.2.12; * configure.sh script is now compatible with BSD; -- Peter Kosyh Thu, 08 Feb 2012 19:52:00 +0400 1.6.1 * bugfix in prefs; * justify text option; * new track in tutorial3 (svenzzon - The Titan Turrican, CC BY-NC-SA 3.0); * SDL_mixer 1.2.12 ready; * gentoo build fix; * fix build on systems w/o PATH_MAX; * fix SDL icon; -- Peter Kosyh Thu, 19 Jan 2012 09:43:00 +0400 1.6.0 * CJK support; * set_music_fading(out, in); * 1 bit transparent icon added for SDL; * stead.space_delim added; * get_themespath, get_gamespath; * goto -> walk, goXX -> walkXX; * lua5.2 ready; -- Peter Kosyh Tue, 20 Dec 2011 08:37:00 +0400 1.5.2 * bug fix in release kbd event; * improved motion mode; * align in float gfx mode; -- Peter Kosyh Sun, 10 Oct 2011 09:49:00 +0400 1.5.1 * bug fix in game_cmd logic; * bug fix in highlight logic; * bug fix in click sound logic; * bug fix in RAW_TEXT; * INSTEAD SDL -> INSTEAD; * languages are sorted now; * set_timer moved to stead; * code cleanup (no warnings); -- Peter Kosyh Mon, 05 Sep 2011 16:11:00 +0400 1.5.0 * bug fix in gamefile; * bug fix in lifes output; * bug fix in PLAYER_MOVED and lifes; * bug fix in stop_sound; * bug fix in set_music with parameter; * bug fix in highlighting; -- Peter Kosyh Mon, 17 Aug 2011 15:40:00 +0400 1.4.5 * bug fix in rnd() w/o parameter; * bug fix in for_each; * bug fix in txtnb and \; * bug fix in original theme picture scaling; * bug fix in left/right image alignment; * bug fix in change_pl; * callpush/callpop/cctx/strip do_ini and some others moved to stead; * win.align added to theme; * theme_name added; * now fading first value is new scene flag; * more information in error messages while checking lists; * fixes in input module; * added PLATFORM variable; -- Peter Kosyh Mon, 01 Aug 2011 12:24:00 +0400 1.4.4 * bug fix in direct mode (memory leak); -- Peter Kosyh Thu, 21 Jun 2011 08:57:00 +0400 1.4.3 * bug fix in nopara logic; * ukranian translation and tutorial; * multilang tutorial3; * sprites small fix (predefined handles); * cursor changing from direct mode support; -- Peter Kosyh Thu, 19 Jun 2011 10:24:00 +0400 1.4.2 * bug fix in idf gets; * bug fix in kbd hooking; -- Peter Kosyh Thu, 19 May 2011 20:14:00 +0400 1.4.1 * bug fix in use; -- Peter Kosyh Thu, 12 May 2011 23:53:00 +0400 1.4.0 * bug fix in imgl/imgr; * bug fix in xact; * bug fix in jump to pos logic; * bug fix lags in sound; * bug fix with wince/windows with themes load; * experemental sprites technology; * global dir is now readdir; * multichannal sound system (add_sound, stop_sound); * -appdata parameter; * -chunksize parameter; * show dir to be deleted while remove game; * theme reset features; * mouse_pos added; * start() init function added; * idf files support (instead data format); * menu font is now scalable too; * toggle_menu added; * get_ticks added; * bit_xxx bitwise operations added; * visits() added; -- Peter Kosyh Mon, 2 May 2011 08:35:00 +0400 1.3.4 * bug fix in text renderer with italic text; * bug fix with imgl/imgr in inv; * bug fix in video init; * bug fix in theme.get 'inv.mode' * font faces { } syntax; * new default font; * set light hinting for font; * added stead.dir iterator; * modules doc fix; * languages dir renamed to lang; * updated manual.pdf; -- Peter Kosyh Fri, 11 Mar 2011 12:10:00 +0300 1.3.3 * bug fix (kbd input); * modules docs; -- Peter Kosyh Thu, 27 Feb 2011 20:27:00 +0300 1.3.2 * bug fix (dates in save slots); * bug fix (dbg fixes); * bug fix (f8 and f9 error msg); * small bug fixes; * s60 build; * SDL 1.3 ready; * it lang and tutorial; -- Peter Kosyh Thu, 24 Feb 2011 13:12:00 +0300 1.3.1 * bug fix (imgl and justify); * bug fix (languages in WinCE version); * bug fix (prefs do not create save dir); * bug fix (alt+f4 != f4); * bug fix ( tag parsing) * visual.lua moved to doc/; -- Peter Kosyh Mon, 29 Nov 2010 15:44:00 +0300 1.3.0 * bug fix (resample sounds while HZ change); * bug fix (empty bg); * bug fix (cursor center scaling); * changing themes from game; * strike ougth text; * *.fnt.height theme parameter; * scroller positions in theme; * escaping ^ and delim; * box: and blank:; * pad: ; * speed up; * picture flow; * prefs:purge now removes vars; * dialog:empty added; * txttab; * tutorial update; -- Peter Kosyh Tue, 12 Nov 2010 22:42:00 +0300 1.2.3 * android build; * bug in xact; -- Peter Kosyh Sat, 2 Oct 2010 16:53:00 +0300 1.2.2 * xact now can be used from everywhere; * much speed improvments; * get_gamepath, get_steadpath; * wince port; * internal cleanups; -- Peter Kosyh Fri, 25 Sep 2010 13:59:00 +0300 1.2.1 * clearlooks bg; * fading fix; * fix in disable autosave; * disp fix; * savevars optimization; -- Peter Kosyh Sat, 28 Aug 2010 19:47:00 +0300 1.2.0 * unpack/install feature; * browse feature (win32 and gtk); * clever game/themes sorting; * time of save slots; * remove games; * aligned width for themes/games dialog; * local appdata mode (portable app); * clearlooks theme; * inv align modes; * prefs object; * init() function; * snapshots (not documented?); * hook and inherit; * entered/left human friendly actions; * stead.cmd, stead.args added; * require added (modules: goto, xact, input, click, vars, dbg, snapshot, prefs, format, kbd, hotkeys); * instead_version added; * taketo/takef added; * disable/enable/disable_all/enable_all added; * exist() added (seen over disabled objects); * path() added; * visited() added; * live() added; * nameof() added; * goback() added; * goin()/goout() added; * disp attribute added; * improved debugger; * save vars in _G; * no duplicated games while looking gamespaths; * code function!!!; * args in call; * var and global; * self() is now self; * psen/punseen for dlg; * no return goto needed; * disable_all/enable_all for lists; * purge and list_purge; * undocumented gamefile; * undocumented LANG; * many bugfixes... * mac os x port -- Peter Kosyh Wed, 04 Aug 2010 20:59:00 +0300 1.1.6 * bugfix (no closed files) * bugfix in line breaking with gfx * pr() function added in stead -- Peter Kosyh Wed, 19 May 2010 17:31:00 +0300 1.1.5 * multiple anigif in one layout fix * click in picture event * game.action callback * bug in parsing * pause game while minimize (-nopause option added) * 8 bit scaler fix -- Peter Kosyh Wed, 10 Mar 2010 15:20:51 +0300 1.1.4 * keyboard navigation fix * cursor while menu and lost focus * lower cpu usage (no gif logic if no gifs are drawn) -- Peter Kosyh Fri, 05 Mar 2010 18:28:40 +0300 1.1.3 * unix_path in get_img * " in variable names (save) * \\, in ways and inv * 32 bit bmp fix -- Peter Kosyh Wed, 16 Feb 2010 11:10:40 +0300 1.1.2 * bug in saves -- Peter Kosyh Wed, 10 Feb 2010 13:39:47 +0300 1.1.1 * encode path in save (' in paths); * mouse focus win problem; * cleanups in stead.lua; * doc updates; * alt-r in debug mode (restart game); * -version arg * timer * kbd input * mouse input * bluesteel theme * nop cmd added in stead.lua * anigif while menu bug * add inv.mode disabled * txtnb added to stead.lua * bg scaling fix * broken codepage fix * esc strings in tag * themes and games sorting -- Peter Kosyh Thu, 14 Jan 2010 15:47:50 +0300 1.0.5 * segfault while is_sound with -nosound * snd volume hack * arctic theme added -- Peter Kosyh Thu, 7 Jan 2010 14:34:00 +0300 1.0.4 * xref hl optimization * now, write save slots in game/saves if game/saves exist -- Peter Kosyh Tue, 12 Dec 2009 17:15:00 +0300 1.0.3 * autojump to text change * no cursor flickering * sdl_path (i18n M$ win sdl paths) -- Peter Kosyh Tue, 01 Dec 2009 14:12:36 +0300 1.0.2 * fix in box normalize * fix in scaling * fixed f5 key -- Peter Kosyh Tue, 24 Nov 2009 11:00:20 +0300 1.0.1 * bug: no fclose :( * i18n + esp lang and tutorial * cat removed -- Peter Kosyh Fri, 20 Nov 2009 13:33:36 +0300 1.0.0 * another mouse buttons -- escape * escape as use cancel * lifeoff from life method * bug fix in anigif logic * bug fix in img() * more clever linebreaking * kill empty lines at end of layout * typo in color table (graphics.c) by Alexander * manual.tex by Alexander and commiters * default-large theme is default * combined images! * page up, page down clever logic; * f8/f9 - quicksave/quickload * game.enable_save * lua stack overflow??? * autosave function -- Peter Kosyh Tue, 3 Nov 2009 19:43:00 +0400 0.9.3 * have and seen fixes * -encode option + doencfile * print reregister * from() with argument * new()/delete() (allocator object) * game:ini() fix * theme scaling (yahoo!!!) * scene_use attribute (scene objects using on each other) -- Peter Kosyh Mon, 12 Oct 2009 11:09:19 +0400 0.9.2 * animated gif support * graphics everywhere!!! (img cmd) * sound support (set_sound) * some cleanups -- Peter Kosyh Sun, 4 Oct 2009 16:10:09 +0400 0.9.1 * mouse gfx bug * noautosave option * make uninstall * === STEAD FIXES ==== * gui.lua is separated file * menus in gfx mode!!! :) * stead.lua fixes: * ref fix * phrases saver * player is object * disable_all enable_all for object * inherited inventory * save game bug * own stead namespace (table problem fixed!) * recurse for exit breaking * wrap into vroom not call exit twice -- Peter Kosyh Sun, 15 Sep 2009 14:42:44 +0400 0.9 * fixes in localization * srch method for player * english tutorial * separated games? * font with apache license :) * debian cleanups -- Peter Kosyh Tue, 15 Sep 2009 13:29:55 +0400 0.8.9 * -gamespath -game -themespath -theme options * runtime languages * disabled() function in stead * list_zap, list_concat * remove added * stead.lua fixes * full keyboard control! * alt enter fix * gfx cursor support! * no reset video while change game/theme * tutorial2 -- Peter Kosyh Sat, 5 Aug 2009 11:25:01 +0400 0.8.8 * Makefiles fixes * cat game fix * .insteadrc now in .instead/ by default * small fixes -- Peter Kosyh Mon, 31 Aug 2009 11:25:01 +0400 0.8.7 * highlight bug in nohl mode with filter * windows version now looks games and themes in appdir. -- Peter Kosyh Fri, 28 Aug 2009 12:51:08 +0400 0.8.6 * cat game fixes * seen extra parameter -- Peter Kosyh Thu, 27 Aug 2009 08:32:00 +0400 0.8.5 * possible segfaults in timer functions. * ways, objs, drop, take - extra parameters * put - function * set_music fixes -- Peter Kosyh Thu, 24 Aug 2009 08:32:00 +0400 0.8.4 * bug in savevar * bug in long strings -- Peter Kosyh Thu, 20 Aug 2009 14:09:14 +0400 0.8.3 * sge forgotten * set_music with loop argument bug -- Peter Kosyh Wed, 19 Aug 2009 14:09:14 +0400 0.8.2 * gfx_load_img -- Peter Kosyh Sat, 15 Aug 2009 14:09:14 +0400 0.8 * key_name attribute!!!! * do_ini * version in stead.lua * opairs!!! * vroom fix * typos * backtrace * list_set -- Peter Kosyh Fri, 07 Aug 2009 14:09:14 +0400 0.7.7-4 * Fixes :) -- Peter Kosyh Wed, 05 Aug 2009 17:26:55 +0400 0.7.7 * typos in games * local games now can be placed in ~/.instead/games * console version disabled by default * -- $Name: tag -- full name of games, not only dirname * fix of link color for title/ways * bug in text layout logic (last period in line) * embedded mode (picture and ways inside text!!!) * float mode (for books) * faster text renderer (x2-x5 times) * free motion mode of scrolling * click sound support in themes (in default theme too) * new options (click sound, music) * default theme changes * fullscreen with Alt-Enter * options -alsa, -fullscreen, -window * now italic font used for events * 48000Hz added in sound preferences * now scroll position is saved in embedded mode * themes support, one new theme added * vway and vroom added * updated tutorial * set_music now take an loop parameter * autosave is now default * now vars saved if they begins from uppercase letter (undescore too); * save slots !!! * a lot of bugs fixed (memory leaks, SDL cavities.. ) -- Peter Kosyh Thu, 30 Jul 2009 18:12:19 +0400 0.7.6-1 * debian file fixes -- Peter Kosyh Fri, 29 May 2009 14:17:01 +0400 0.7.6 * Keyboard scrolling * Font scaling * inv.horiz option -- Peter Kosyh Mon, 25 May 2009 10:58:29 +0400 0.7.5 * Initial release -- Peter Kosyh Thu, 21 May 2009 11:40:29 +0400 instead-1.9.1/Makefile000644 001751 001751 00000002747 12161555602 015130 0ustar00peterpeter000000 000000 include Rules.make include config.make VERTITLE := instead-$(VERSION) ARCHIVE := instead_$(VERSION).tar.gz# SUBDIRS += src/sdl-instead stead games themes icon desktop doc lang all: @for dir in $(SUBDIRS); do \ $(MAKE) -C $$dir $(@) || exit 1; \ done; Rules.make: ln -sf Rules.make.standalone Rules.make config.make: echo "# you can define own flags here" > config.make svnclean: svn st | grep "^?" | awk '{ print $$2 }' | grep -v "config.make" | while read l; do $(RM) -rf $$l; done rules: $(RM) -f Rules.make ln -sf Rules.make.standalone Rules.make docs: rules # make docs -C doc/ PKGBUILD: PKGBUILD.in tarball cat PKGBUILD.in | sed -e s/MD5SUM/`md5sum $(ARCHIVE) | cut -f1 -d' '`/g > PKGBUILD tarball: clean svnclean docs rules echo "# you can define own flags here" > config.make ln -sf ./ $(VERTITLE) tar -cz --exclude $(VERTITLE)/$(VERTITLE) --exclude CJK.zip --exclude .svn --exclude $(ARCHIVE) --exclude mingw32ce.tar.gz --exclude windows.tar.gz --exclude caanoo.tar.gz -f $(ARCHIVE) $(VERTITLE)/* $(RM) -f $(VERTITLE) clean: @for dir in $(SUBDIRS); do \ $(MAKE) clean -C $$dir $(@) || exit 1; \ done; $(RM) -f $(ARCHIVE) $(RM) -f PKGBUILD install: all ifeq ($(SYSTEMSETUP), yes) @for dir in $(SUBDIRS); do \ $(MAKE) -C $$dir install || exit 1; \ done; else echo No install needed endif uninstall: ifeq ($(SYSTEMSETUP), yes) @for dir in $(SUBDIRS); do \ $(MAKE) -C $$dir uninstall || exit 1; \ done; $(RM) -rf $(STEADPATH) else echo No uninstall needed endif instead-1.9.1/Makefile.mingw000644 001751 001751 00000001514 12161555602 016237 0ustar00peterpeter000000 000000 MAKE=make ISCC = wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Inno\ Setup\ 5/ISCC.exe all: config.make src/windows $(MAKE) -C src/zlib all $(MAKE) -C src/sdl-instead all $(MAKE) -C themes all src/windows: tar xzvf windows.tar.gz config.make: echo "# you can define own flags here" > config.make clean: $(RM) -rf bin $(RM) -rf src/windows $(MAKE) -C src/sdl-instead clean docs: # $(MAKE) pdf -C doc/ # man doc/instead.6 > doc/instead.txt # $(MAKE) wiki -C doc/ install: all cp src/sdl-instead/sdl-instead.exe bin $(MAKE) DESTDIR=../bin/ -C themes install $(MAKE) DESTDIR=../bin/ -C games install $(MAKE) DESTDIR=../bin/ -C stead install $(MAKE) DESTDIR=../bin/ -C icon install $(MAKE) DESTDIR=../bin/ -C lang install $(MAKE) DESTDIR=../bin/ -C doc install setup: install docs cp setup.iss bin cd bin; $(ISCC) setup.iss instead-1.9.1/Makefile.windows000644 001751 001751 00000001234 12161555602 016607 0ustar00peterpeter000000 000000 MAKE=mingw32-make all: config.make $(MAKE) -C src\zlib -f Makefile.windows all $(MAKE) -C src\sdl-instead all $(MAKE) -C themes -f Makefile.windows all config.make: echo # you can define own flags here > config.make clean: $(MAKE) -C src\sdl-instead clean $(MAKE) -C src\zlib -f Makefile.windows clean install: all if not exist bin mkdir bin copy src\sdl-instead\sdl-instead.exe bin $(MAKE) -C themes -f Makefile.windows install $(MAKE) -C games -f Makefile.windows install $(MAKE) -C stead -f Makefile.windows install $(MAKE) -C icon -f Makefile.windows install $(MAKE) -C lang -f Makefile.windows install $(MAKE) -C doc -f Makefile.windows install instead-1.9.1/PKGBUILD.in000644 001751 001751 00000001162 12162117034 015201 0ustar00peterpeter000000 000000 # Contributor: Peter Kosyh pkgname=instead pkgver=1.9.1 pkgrel=1 pkgdesc="instead quest interpreter" arch=('i686' 'x86_64') url="http://instead.sourceforge.net/" license=('GPL') depends=('sdl_image' 'sdl_mixer' 'sdl_ttf' 'lua') source=(http://downloads.sourceforge.net/project/instead/instead/${pkgver}/instead_${pkgver}.tar.gz) md5sums=(MD5SUM) optdepends=('instead-launcher: install and update INSTEAD games from net') build() { cd "${srcdir}/instead-${pkgver}" echo "2" | ./configure.sh make PREFIX=/usr } package() { cd "${srcdir}/instead-${pkgver}" make DESTDIR="${pkgdir}" PREFIX=/usr install } instead-1.9.1/README000644 001751 001751 00000003673 12162116757 014354 0ustar00peterpeter000000 000000 INSTEAD 1.9.1 ============= WARNING! For successfull building you must install these development packages (names may vary in your distribution): sdl, sdl-mixer, sdl-image, sdl-ttf, lua5.1 0) Prepare for building ======================= Unpack source package with this command: $ tar xzvf instead_.tar.gz Change current dir to project's build dir: $ cd instead- There are several ways to build package. 1) On Debian based systems you can build deb package ==================================================== $ sudo apt-get install liblua5.1-dev libreadline-dev libsdl1.2-dev libsdl-ttf2.0-dev libsdl-image1.2-dev libsdl-mixer1.2-dev $ sudo apt-get install build-essential debhelper $ debuild $ cd .. $ sudo dpkg -i instead_.deb 2) On gentoo or arch linux ========================== Install stable version from AUR: $ yaourt -S instead Or build from svn: $ make PKGBUILD $ makepkg -s And, I think, you have enough skills to build package yourself. ;) 3) On FreeBSD ============== Install instead from ports: # pkg_add -r instead Or: # cd /usr/ports/games/instead # make install Or build from tarball: $ ./configure.sh $ gmake 4) For other distributions ========================== You have a two choices: a) try run ./configure.sh and follow instructions or b) do all things manually 5) Manual build =============== To build game, that runs just from build dir use Rules.make.standalone ---------------------------------------------------------------------- $ rm -f Rules.make $ ln -s Rules.make.standalone Rules.make $ make clean $ make If build process has failed check Rules.make.standalone and make changes if needed. $ ./sdl-instead To build game for system install -------------------------------- $ rm -f Rules.make $ ln -s Rules.make.system Rules.make $ make clean $ make If build process has failed check Rules.make.system and make changes if needed. $ sudo make install $ sdl-instead Enjoy. instead-1.9.1/Rules.make000755 001751 001751 00000000000 12170510533 021452 2Rules.make.standaloneustar00peterpeter000000 000000 instead-1.9.1/Rules.make.macosx000644 001751 001751 00000001740 12162116763 016704 0ustar00peterpeter000000 000000 VERSION := 1.9.1 DESTDIR= BIN= DATAPATH=. STEADPATH=$(DATAPATH)/stead THEMESPATH=$(DATAPATH)/themes GAMESPATH=$(DATAPATH)/games ICONPATH=$(DATAPATH)/icon LANGPATH=$(DATAPATH)/lang DOCPATH= MANPATH= SYSTEMSETUP=no ZLIB_CFLAGS= ZLIB_LFLAGS=-lz LUA_CFLAGS=$(shell pkg-config --cflags lua5.1) LUA_LFLAGS=$(shell pkg-config --libs lua5.1) # for arch linux, fedora (may be others) use this # # LUA_CFLAGS=$(shell pkg-config --cflags lua) # LUA_LFLAGS=$(shell pkg-config --libs lua) # SDL_CFLAGS=$(shell sdl-config --cflags) SDL_LFLAGS=$(shell sdl-config --libs) -lSDL_ttf -lSDL_mixer -lSDL_image CFLAGS += -Wall -Dunix -D_USE_UNPACK -D_USE_BROWSE -D_SDL_MOD_BUG INSTALLD=echo "Do not install standalone version!" INSTALLB=echo "Do not install standalone version!" INSTALL=echo "Do not install standalone version!" LN=echo "Do not install standalone version!" EXE= PLATFORM=macosx.m ADDOBJ=macosx.o macosx.o : macosx.m $(CC) -c $(<) $(I) $(CFLAGS) RESOURCES= RM=rm AR=ar rc RANLIB=ranlib instead-1.9.1/Rules.make.mingw32ce000644 001751 001751 00000002007 12162116764 017206 0ustar00peterpeter000000 000000 VERSION := 1.9.1 PREFIX= DESTDIR= BIN=$(DESTDIR)$(PREFIX) STEADPATH=$(DESTDIR)$(PREFIX)stead THEMESPATH=$(DESTDIR)$(PREFIX)themes GAMESPATH=$(DESTDIR)$(PREFIX)games ICONPATH=$(DESTDIR)$(PREFIX)icon DOCPATH=$(DESTDIR)$(PREFIX)doc LANGPATH=$(DESTDIR)$(PREFIX)lang MANPATH=$(DESTDIR)$(PREFIX)doc ZLIB_CFLAGS= ZLIB_LFLAGS=-lz LUA_CFLAGS=-I../mingw32ce/ LUA_LFLAGS=-llua -L../mingw32ce/ SDL_CFLAGS=-I../mingw32ce/SDL SDL_LFLAGS=-lmikmod -lpng -L../mingw32ce/SDL CFLAGS += -Wall -march=armv4t -Os -static \ -D_HAVE_ICONV -D_USE_SDL_ICONV -D_LOCAL_APPDATA -D_SDL_MOD_BUG LDFLAGS += -Wl,-Bstatic \ -lSDL_mixer -lSDL -lmad -lvorbisfile -lvorbis -logg \ -lSDL_ttf -liconv -lfreetype \ -lSDL_image -lz -ljpeg \ -lmmtimer -lwince CC=arm-mingw32ce-gcc AR=arm-mingw32ce-ar rc RANLIB=arm-mingw32ce-ranlib RM=rm EXE=.exe INSTALLD=install -d -m 0755 INSTALLB=install -m 0755 INSTALL=install -m 0644 PLATFORM=wince.c iowin32.c RESOURCES=resources.o resources.o: resources.rc arm-mingw32ce-windres -i resources.rc -o resources.o instead-1.9.1/Rules.make.standalone000644 001751 001751 00000001642 12162116761 017541 0ustar00peterpeter000000 000000 VERSION := 1.9.1 DESTDIR= BIN= DATAPATH=. STEADPATH=$(DATAPATH)/stead THEMESPATH=$(DATAPATH)/themes GAMESPATH=$(DATAPATH)/games ICONPATH=$(DATAPATH)/icon LANGPATH=$(DATAPATH)/lang DOCPATH= MANPATH= SYSTEMSETUP=no ZLIB_CFLAGS= ZLIB_LFLAGS=-lz LUA_CFLAGS=$(shell pkg-config --cflags lua5.1) LUA_LFLAGS=$(shell pkg-config --libs lua5.1) # for arch linux, fedora (may be others) use this # # LUA_CFLAGS=$(shell pkg-config --cflags lua) # LUA_LFLAGS=$(shell pkg-config --libs lua) # SDL_CFLAGS=$(shell sdl-config --cflags) SDL_LFLAGS=$(shell sdl-config --libs) -lSDL_ttf -lSDL_mixer -lSDL_image CFLAGS += -g -Wall -Dunix -D_USE_UNPACK -D_LOCAL_APPDATA # -D_SDL_MOD_BUG INSTALLD=echo "Do not install standalone version!" INSTALLB=echo "Do not install standalone version!" INSTALL=echo "Do not install standalone version!" LN=echo "Do not install standalone version!" EXE= PLATFORM=unix.c RESOURCES= RM=rm AR=ar rc RANLIB=ranlib instead-1.9.1/Rules.make.system000644 001751 001751 00000001666 12162116665 016746 0ustar00peterpeter000000 000000 VERSION := 1.9.1 PREFIX=/usr/local DESTDIR= BIN=$(DESTDIR)$(PREFIX)/bin/ DATAPATH=$(DESTDIR)$(PREFIX)/share/instead STEADPATH=$(DATAPATH)/stead THEMESPATH=$(DATAPATH)/themes GAMESPATH=$(DATAPATH)/games ICONPATH=$(DESTDIR)$(PREFIX)/share/pixmaps DOCPATH=$(DESTDIR)$(PREFIX)/share/doc/instead LANGPATH=$(DATAPATH)/lang MANPATH=$(DESTDIR)$(PREFIX)/share/man/man6 SYSTEMSETUP=yes ZLIB_CFLAGS= ZLIB_LFLAGS=-lz LUA_CFLAGS=$(shell pkg-config --cflags lua5.1) LUA_LFLAGS=$(shell pkg-config --libs lua5.1) # for arch and gentoo linux use this # # LUA_CFLAGS=$(shell pkg-config --cflags lua) # LUA_LFLAGS=$(shell pkg-config --libs lua) # SDL_CFLAGS=$(shell sdl-config --cflags) SDL_LFLAGS=$(shell sdl-config --libs) -lSDL_ttf -lSDL_mixer -lSDL_image CFLAGS += -Wall -Dunix -D_USE_UNPACK # -D_SDL_MOD_BUG INSTALLD=install -d -m 0755 INSTALLB=install -m 0755 INSTALL=install -m 0644 LN=ln -sf EXE= PLATFORM=unix.c RESOURCES= RM=rm AR=ar rc RANLIB=ranlib instead-1.9.1/Rules.mingw000644 001751 001751 00000001666 12162116750 015622 0ustar00peterpeter000000 000000 VERSION := 1.9.1 PREFIX=./ DESTDIR= BIN=$(DESTDIR)$(PREFIX) STEADPATH=$(DESTDIR)$(PREFIX)stead THEMESPATH=$(DESTDIR)$(PREFIX)themes GAMESPATH=$(DESTDIR)$(PREFIX)games ICONPATH=$(DESTDIR)$(PREFIX)icon DOCPATH=$(DESTDIR)$(PREFIX)doc LANGPATH=$(DESTDIR)$(PREFIX)lang MANPATH=$(DESTDIR)$(PREFIX)doc WINDOWS=yes ZLIB_CFLAGS=-I../zlib ZLIB_LFLAGS=../zlib/libz.a LUA_CFLAGS=-I../windows/ LUA_LFLAGS=-llua5.1 -L../windows/ SDL_CFLAGS=-I../windows/SDL SDL_LFLAGS=-lSDL -lSDLmain -lSDL_ttf -lSDL_mixer -lSDL_image -L../windows/SDL CFLAGS += -Wall -mwindows -D_HAVE_ICONV -D_USE_UNPACK -D_USE_BROWSE -D_LOCAL_APPDATA -D_SDL_MOD_BUG LDFLAGS += -liconv CC=i486-mingw32-gcc AR=i486-mingw32-ar rc RANLIB=i486-mingw32-ranlib RM=rm EXE=.exe INSTALLD=install -d -m 0755 INSTALLB=install -m 0755 INSTALL=install -m 0644 LN=echo PLATFORM=windows.c iowin32.c RESOURCES=resources.o resources.o: resources.rc i486-mingw32-windres -i resources.rc -o resources.o instead-1.9.1/Rules.windows000644 001751 001751 00000001302 12162116663 016161 0ustar00peterpeter000000 000000 VERSION := 1.9.1 PREFIX= DESTDIR= BIN=..\..\bin\\ DATAPATH=. STEADPATH=$(DATAPATH)/stead THEMESPATH=$(DATAPATH)/themes/ GAMESPATH=$(DATAPATH)/games ICONPATH=$(DATAPATH)/icon LANGPATH=$(DATAPATH)/lang WINDOWS=yes ZLIB_CFLAGS=-I../zlib ZLIB_LFLAGS=../zlib/libz.a LUA_CFLAGS= LUA_LFLAGS=-llua5.1 SDL_CFLAGS=-IC:\MinGW\include\SDL SDL_LFLAGS=-lSDL -lSDLmain -lSDL_ttf -lSDL_mixer -lSDL_image CFLAGS += -Wall -mwindows -D_HAVE_ICONV -D_USE_UNPACK -D_USE_BROWSE -D_LOCAL_APPDATA LDFLAGS += -liconv CC=gcc RM=del EXE=.exe AR=ar -rc RANLIB=ranlib INSTALLD=echo mkdir INSTALL=copy LN=echo PLATFORM=windows.c iowin32.c RESOURCES=resources.o resources.o: resources.rc windres -i resources.rc -o resources.o instead-1.9.1/bld.inf000644 001751 001751 00000000104 12161555602 014710 0ustar00peterpeter000000 000000 PRJ_PLATFORMS DEFAULT PRJ_MMPFILES gnumakefile icons.mk instead.mmp instead-1.9.1/caanoo-build.patch000644 001751 001751 00000020213 12162116706 017031 0ustar00peterpeter000000 000000 diff -Nur instead-1.9.0/Rules.caanoo instead-1.9.0-canoo/Rules.caanoo --- instead-1.9.0/Rules.caanoo 1970-01-01 03:00:00.000000000 +0300 +++ instead-1.9.0-canoo/Rules.caanoo 2013-03-26 12:00:24.000000000 +0400 @@ -0,0 +1,45 @@ +VERSION := 1.9.1 + +PREFIX = /home/peter/Devel/GPH_SDK/tools/gcc-4.2.4-glibc-2.7-eabi +CC = $(PREFIX)/bin/arm-gph-linux-gnueabi-gcc +STRIP = $(PREFIX)/bin/arm-gph-linux-gnueabi-strip + +CFLAGS += -DARM_ARCH -DGP2X_BUILD +CFLAGS += -DWIZ_BUILD -DCAANOO +CFLAGS += -O3 -std=c99 -msoft-float -funsigned-char -fno-common -fno-builtin -Wl,--allow-multiple-definition +CFLAGS += -I../SDL-1.2.13/include `$(PREFIX)/arm-gph-linux-gnueabi/sys-root/usr/bin/sdl-config --cflags` -I$(PREFIX)/include + +DESTDIR= +BIN= +DATAPATH=. +STEADPATH=$(DATAPATH)/stead +THEMESPATH=$(DATAPATH)/themes +GAMESPATH=$(DATAPATH)/games +ICONPATH=$(DATAPATH)/icon +LANGPATH=$(DATAPATH)/lang +DOCPATH= +MANPATH= +SYSTEMSETUP=no + +ZLIB_CFLAGS= +ZLIB_LFLAGS=-lz + +LUA_CFLAGS=-I../caanoo/lua/ +LUA_LFLAGS=../caanoo/lua/liblua.a + +SDL_CFLAGS= +SDL_LFLAGS=-lSDL -lSDL_mixer -lSDL_image -lSDL_ttf -lm -ldl -lpthread -lz + +CFLAGS += -g -Wall -Dunix -D_USE_UNPACK -D_LOCAL_APPDATA -D_HAVE_ICONV -D_SDL_MOD_BUG + +INSTALLD=echo "Do not install standalone version!" +INSTALLB=echo "Do not install standalone version!" +INSTALL=echo "Do not install standalone version!" +LN=echo "Do not install standalone version!" + +EXE= +PLATFORM=unix.c +RESOURCES= +RM=rm +AR=ar rc +RANLIB=ranlib diff -Nur instead-1.9.0/instead/Rules.caanoo instead-1.9.0-canoo/instead/Rules.caanoo --- instead-1.9.0/instead/Rules.caanoo 1970-01-01 03:00:00.000000000 +0300 +++ instead-1.9.0-canoo/instead/Rules.caanoo 2013-03-26 12:00:24.000000000 +0400 @@ -0,0 +1,44 @@ +VERSION := 1.9.1 + +PREFIX = /home/peter/Devel/GPH_SDK/tools/gcc-4.2.4-glibc-2.7-eabi +CC = $(PREFIX)/bin/arm-gph-linux-gnueabi-gcc +STRIP = $(PREFIX)/bin/arm-gph-linux-gnueabi-strip + +CFLAGS += -DARM_ARCH -DGP2X_BUILD +CFLAGS += -DWIZ_BUILD -DCAANOO +CFLAGS += -O3 -std=c99 -msoft-float -funsigned-char -fno-common -fno-builtin -Wl,--allow-multiple-definition +CFLAGS += -I../SDL-1.2.13/include `$(PREFIX)/arm-gph-linux-gnueabi/sys-root/usr/bin/sdl-config --cflags` -I$(PREFIX)/include +DESTDIR= +BIN= +DATAPATH=. +STEADPATH=$(DATAPATH)/stead +THEMESPATH=$(DATAPATH)/themes +GAMESPATH=$(DATAPATH)/games +ICONPATH=$(DATAPATH)/icon +LANGPATH=$(DATAPATH)/lang +DOCPATH= +MANPATH= +SYSTEMSETUP=no + +ZLIB_CFLAGS= +ZLIB_LFLAGS=-lz + +LUA_CFLAGS=-I../caanoo/lua/ +LUA_LFLAGS=../caanoo/lua/liblua.a + +SDL_CFLAGS= +SDL_LFLAGS=-lSDL -lSDL_mixer -lSDL_image -lSDL_ttf -lm -ldl -lpthread -lz + +CFLAGS += -g -Wall -Dunix -D_USE_UNPACK -D_LOCAL_APPDATA # -D_SDL_MOD_BUG + +INSTALLD=echo "Do not install standalone version!" +INSTALLB=echo "Do not install standalone version!" +INSTALL=echo "Do not install standalone version!" +LN=echo "Do not install standalone version!" + +EXE= +PLATFORM=unix.c +RESOURCES= +RM=rm +AR=ar rc +RANLIB=ranlib diff -Nur instead-1.9.0/src/sdl-instead/game.c instead-1.9.0-canoo/src/sdl-instead/game.c --- instead-1.9.0/src/sdl-instead/game.c 2013-03-26 11:55:08.000000000 +0400 +++ instead-1.9.0-canoo/src/sdl-instead/game.c 2013-03-26 12:00:24.000000000 +0400 @@ -3332,7 +3332,7 @@ mouse_reset(1); game_menu(menu_askquit); #endif - } else if ((alt_pressed | control_pressed) && (!is_key(&ev, "q") || !is_key(&ev, "f4"))) { + } else if (!is_key(&ev, "quit") || ((alt_pressed | control_pressed) && (!is_key(&ev, "q") || !is_key(&ev, "f4")))) { break; } else if (alt_pressed && (!is_key(&ev, "enter") || !is_key(&ev, "return"))) { diff -Nur instead-1.9.0/src/sdl-instead/graphics.c instead-1.9.0-canoo/src/sdl-instead/graphics.c --- instead-1.9.0/src/sdl-instead/graphics.c 2013-03-26 11:55:08.000000000 +0400 +++ instead-1.9.0-canoo/src/sdl-instead/graphics.c 2013-03-26 12:05:44.000000000 +0400 @@ -1649,15 +1649,22 @@ #else int gfx_set_mode(int w, int h, int fs) { + int maxbpp = 32; int hw = (software_sw)?0:SDL_HWSURFACE; SDL_Surface *scr; if (gfx_width == w && gfx_height == h && gfx_fs == fs) return 0; /* already done */ +#ifdef CAANOO + maxbpp = 16; +#endif vid_modes = NULL; gfx_fs = fs; gfx_width = w; gfx_height = h; SDL_ShowCursor(SDL_DISABLE); +#ifdef CAANOO + screen = SDL_SetVideoMode(gfx_width, gfx_height, maxbpp, ((gfx_fs)?SDL_HWSURFACE:0) | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); +#else #ifdef S60 scr = SDL_SetVideoMode(gfx_width, gfx_height, 0, SDL_ANYFORMAT | hw | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); #else @@ -1668,15 +1675,15 @@ scr = SDL_SetVideoMode(gfx_width, gfx_height, 16, SDL_DOUBLEBUF | hw | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); #else #ifdef __APPLE__ - scr = SDL_SetVideoMode(gfx_width, gfx_height, (fs)?32:0, SDL_SWSURFACE | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); + scr = SDL_SetVideoMode(gfx_width, gfx_height, (fs)?maxbpp:0, SDL_SWSURFACE | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); if (scr == NULL) /* ok, fallback to anyformat */ scr = SDL_SetVideoMode(gfx_width, gfx_height, 0, SDL_ANYFORMAT | SDL_SWSURFACE | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); #else #ifndef _WIN32_WCE #if SDL_VERSION_ATLEAST(1,3,0) - scr = SDL_SetVideoMode(gfx_width, gfx_height, 32, SDL_DOUBLEBUF | hw | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); + scr = SDL_SetVideoMode(gfx_width, gfx_height, maxbpp, SDL_DOUBLEBUF | hw | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); #else - scr = SDL_SetVideoMode(gfx_width, gfx_height, (fs)?32:0, SDL_DOUBLEBUF | hw | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); + scr = SDL_SetVideoMode(gfx_width, gfx_height, (fs)?maxbpp:0, SDL_DOUBLEBUF | hw | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); #endif if (scr == NULL) /* ok, fallback to anyformat */ #endif @@ -1685,6 +1692,7 @@ #endif #endif #endif +#endif screen = GFX_IMG(scr); if (scr == NULL || screen == NULL) { fprintf(stderr, "Unable to set %dx%d video: %s\n", w, h, SDL_GetError()); @@ -4746,7 +4754,7 @@ int gfx_init(void) { - if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) < 0) { + if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_JOYSTICK) < 0) { fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); return -1; } diff -Nur instead-1.9.0/src/sdl-instead/input.c instead-1.9.0-canoo/src/sdl-instead/input.c --- instead-1.9.0/src/sdl-instead/input.c 2013-03-26 11:55:08.000000000 +0400 +++ instead-1.9.0-canoo/src/sdl-instead/input.c 2013-03-26 12:10:26.000000000 +0400 @@ -30,6 +30,41 @@ } #endif +#ifdef CAANOO +static const char *joy_map(int button) +{ + switch(button) { + case 2: + return "left"; + case 6: + return "right"; + case 0: + return "up"; + case 4: + return "down"; + case 15: + return "space"; //y + case 14: + return "tab"; //x + case 12: + return "escape"; // a + case 18: + case 13: + return "return"; // b + case 8: + return "quit"; + case 10: + return "page up"; + case 11: + return "page down"; + case 9: + case 20: + return "f1"; + } + return ""; +} +#endif + int minimized(void) { if (nopause_sw) @@ -74,6 +109,10 @@ SDL_EnableKeyRepeat(500, 30); #endif m_focus = !!(SDL_GetAppState() & SDL_APPMOUSEFOCUS); + if(SDL_NumJoysticks() > 0) { + SDL_JoystickOpen(0); + SDL_JoystickEventState(SDL_ENABLE); + } return 0; } @@ -188,6 +227,20 @@ case SDL_QUIT: game_running = 0; return -1; +#ifdef CAANOO + case SDL_JOYBUTTONDOWN: + inp->type = KEY_DOWN; + inp->code = event.jbutton.button; + strncpy(inp->sym, joy_map(event.jbutton.button), sizeof(inp->sym)); + inp->sym[sizeof(inp->sym) - 1] = 0; + break; + case SDL_JOYBUTTONUP: + inp->type = KEY_UP; + inp->code = event.jbutton.button; + strncpy(inp->sym, joy_map(event.jbutton.button), sizeof(inp->sym)); + inp->sym[sizeof(inp->sym) - 1] = 0; + break; +#endif case SDL_KEYDOWN: //A key has been pressed inp->type = KEY_DOWN; inp->code = event.key.keysym.scancode; diff -Nur instead-1.9.0/src/sdl-instead/sound.c instead-1.9.0-canoo/src/sdl-instead/sound.c --- instead-1.9.0/src/sdl-instead/sound.c 2013-03-13 19:39:07.000000000 +0400 +++ instead-1.9.0-canoo/src/sdl-instead/sound.c 2013-03-26 12:00:24.000000000 +0400 @@ -1,8 +1,9 @@ +#include +#include + #include "externals.h" #include "internals.h" -#include -#include #include "sdl_idf.h" #ifdef S60 instead-1.9.1/config.make000644 001751 001751 00000000040 12170510533 015546 0ustar00peterpeter000000 000000 # you can define own flags here instead-1.9.1/configure-mingw32.sh000755 001751 001751 00000000353 12161555602 017263 0ustar00peterpeter000000 000000 #!/bin/sh rm -f config.make rm -f Rules.make ln -sf Rules.mingw Rules.make rm -f sdl-instead ln -sf src/sdl-instead/sdl-instead sdl-instead echo "Ok. We are ready to build. Use this command:" echo " \$ make -f Makefile.mingw setup" instead-1.9.1/configure.bat000644 001751 001751 00000000037 12161555570 016133 0ustar00peterpeter000000 000000 copy Rules.windows Rules.make instead-1.9.1/configure.sh000755 001751 001751 00000015536 12161555602 016010 0ustar00peterpeter000000 000000 #!/bin/sh echo -n "Checking pkg-config..." if ! pkg-config --version >/dev/null 2>&1; then echo "error: no pkg-config in \$PATH." exit 1 fi echo "ok" echo -n "Checking pkg-config --cflags zlib..." if ! pkg-config --cflags zlib >/dev/null 2>&1; then if [ -f /usr/include/zlib.h ]; then echo "not found, but /usr/include/zlib.h exists..." zlib_cflags="x" zlib_libs= else echo "internal" zlib_cflags= zlib_libs= fi else echo "system" zlib_cflags="pkg-config --cflags zlib" zlib_libs="pkg-config --libs zlib" fi echo -n "Checking pkg-config --cflags gtk+-2.0..." if ! pkg-config --cflags gtk+-2.0 >/dev/null 2>&1; then echo "no" echo -n "Checking pkg-config --cflags gtk+-3.0..." if ! pkg-config --cflags gtk+-3.0 >/dev/null 2>&1; then echo "no open file dialog" gtk_cflags= gtk_libs= else echo "yes" gtk_cflags="pkg-config --cflags gtk+-3.0" gtk_libs="pkg-config --libs gtk+-3.0" fi else echo "yes" gtk_cflags="pkg-config --cflags gtk+-2.0" gtk_libs="pkg-config --libs gtk+-2.0" fi echo -n "Checking pkg-config --cflags lua[5.1]..." if pkg-config --cflags lua5.1 >/dev/null 2>&1; then echo "lua5.1" lua_cflags="pkg-config --cflags lua5.1" lua_libs="pkg-config --libs lua5.1" elif pkg-config --cflags lua5.2 >/dev/null 2>&1; then echo "lua5.2" lua_cflags="pkg-config --cflags lua5.2" lua_libs="pkg-config --libs lua5.2" elif pkg-config --cflags lua >/dev/null 2>&1; then echo "lua" lua_cflags="pkg-config --cflags lua" lua_libs="pkg-config --libs lua" elif pkg-config --cflags lua-5.1 >/dev/null 2>&1; then echo "lua-5.1" lua_cflags="pkg-config --cflags lua-5.1" lua_libs="pkg-config --libs lua-5.1" elif pkg-config --cflags lua-5.2 >/dev/null 2>&1; then echo "lua-5.2" lua_cflags="pkg-config --cflags lua-5.2" lua_libs="pkg-config --libs lua-5.2" else echo "failed: no package lua/lua5.1/lua5.2/lua-5.1/lua-5.2" echo "Please install lua development package." exit 1 fi echo -n "Checking sdl-config..." if ! sdl2-config --version >/dev/null 2>&1; then if ! sdl-config --version >/dev/null 2>&1; then echo "error: no sdl-config in \$PATH." echo "Please install sdl, sdl_ttf, sdl_mixer and sdl_image development packages." exit 1 fi echo "ok" sdl_config="sdl-config" sdl_libs="-lSDL_ttf -lSDL_mixer -lSDL_image" else echo "SDL 2.0" sdl_config="sdl2-config" sdl_libs="-lSDL2_ttf -lSDL2_mixer -lSDL2_image" fi echo -n "Checking sdl-config --cflags..." if ! $sdl_config --cflags >/dev/null 2>&1; then echo "failed." exit 1 fi echo "ok" ops=`$lua_cflags` ops=$ops" "`$lua_libs` echo -n "Looking for compiler..." if ! $CC --version >/dev/null 2>&1; then if ! cc --version >/dev/null 2>&1; then if ! gcc --version >/dev/null 2>&1; then echo "cc, gcc, \$(CC) are not valid compilers... Please export CC for valid one..."; exit 1; else cc="gcc"; fi else cc="cc" fi else cc=$CC fi cat << EOF >/tmp/sdl-test.c #include #include #include #include #include int main(int argc, char **argv) { return 0; } EOF echo $cc echo -n "Checking test build...(" echo -n $cc /tmp/sdl-test.c $ops `$sdl_config --cflags` `$sdl_config --libs` $sdl_libs -o /tmp/sdl-test ")..." if ! $cc /tmp/sdl-test.c $ops `$sdl_config --cflags` `$sdl_config --libs` $sdl_libs -o /tmp/sdl-test; then echo "failed". echo "Please sure if these development packages are installed: sdl, sdl_ttf, sdl_mixer, sdl_image." rm -f /tmp/sdl-test.c /tmp/sdl-test exit 1 fi echo "ok" rm -f /tmp/sdl-test.c /tmp/sdl-test cat << EOF >/tmp/iconv-test.c #include int main(int argc, char **argv) { iconv_open("",""); } EOF echo $cc echo -n "Checking iconv...(" echo -n "$cc /tmp/iconv-test.c -o iconv-test)..." if $cc /tmp/iconv-test.c -o /tmp/iconv-test >/dev/null 2>&1; then CFLAGS="$CFLAGS -D_HAVE_ICONV" echo "ok" elif $cc /tmp/iconv-test.c -liconv -o /tmp/iconv-test >/dev/null 2>&1; then CFLAGS="$CFLAGS -D_HAVE_ICONV" LDFLAGS="$LDFLAGS -liconv" echo "ok, with -liconv" elif $cc /tmp/iconv-test.c -I/usr/local/include -L/usr/local/lib -liconv -o /tmp/iconv-test >/dev/null 2>&1; then CFLAGS="$CFLAGS -I/usr/local/include -D_HAVE_ICONV" LDFLAGS="$LDFLAGS -L/usr/local/lib -liconv" echo "ok, with -liconv and -L/usr/local/lib" else echo -n "failed. Build without iconv.". fi rm -f /tmp/iconv-test.c /tmp/iconv-test if ! make clean >/dev/null 2>&1; then echo " * Warning!!! Can not do make clean..." fi echo -n "Generating config.make..." echo "# autamatically generated by configure.sh" >config.make if [ ! -z "$CFLAGS" ]; then echo "EXTRA_CFLAGS+=$CFLAGS" >> config.make fi if [ ! -z "$LDFLAGS" ]; then echo "EXTRA_LDFLAGS+=$LDFLAGS" >> config.make fi if [ ! -z "$gtk_cflags" ]; then echo "EXTRA_CFLAGS+=-D_USE_GTK -D_USE_BROWSE" >> config.make echo "EXTRA_CFLAGS+=\$(shell $gtk_cflags)" >> config.make echo "EXTRA_LDFLAGS+=\$(shell $gtk_libs)" >> config.make fi if [ -z "$zlib_cflags" ]; then echo "SUBDIRS=src/zlib" >> config.make echo "ZLIB_CFLAGS=-I../zlib" >> config.make echo "ZLIB_LFLAGS=../zlib/libz.a" >> config.make elif [ "$zlib_cflags" = "x" ]; then echo "ZLIB_CFLAGS=" >> config.make echo "ZLIB_LFLAGS=-lz" >> config.make else echo "ZLIB_CFLAGS=\$(shell $zlib_cflags)" >> config.make echo "ZLIB_LFLAGS=\$(shell $zlib_libs)" >> config.make fi echo "LUA_CFLAGS=\$(shell $lua_cflags)" >> config.make echo "LUA_LFLAGS=\$(shell $lua_libs)" >> config.make echo "SDL_CFLAGS=\$(shell $sdl_config --cflags)" >> config.make echo "SDL_LFLAGS=\$(shell $sdl_config --libs) $sdl_libs" >> config.make echo "ok" echo -n "Choose installation mode. Standalone(1) or system(2) [1]: " read ans if [ "x$ans" = "x1" -o "x$ans" = "x" ]; then echo " * Standalone version" rm -f Rules.make ln -sf Rules.make.standalone Rules.make rm -f sdl-instead ln -sf src/sdl-instead/sdl-instead sdl-instead echo "Ok. We are ready to build. Use these commands:" echo " \$ make" echo " \$ ./sdl-instead" elif [ "x$ans" = "x2" ]; then echo -n "Enter prefix path [/usr/local]: " read ans if [ "x$ans" = "x" ]; then prefix="/usr/local" else prefix="$ans" fi rm -f Rules.make ln -s Rules.make.system Rules.make echo " * System version with prefix: $prefix" echo "PREFIX=$prefix" >> config.make echo "BIN=\$(DESTDIR)\$(PREFIX)/bin/" >> config.make echo "DATAPATH=\$(DESTDIR)\$(PREFIX)/share/instead" >> config.make echo "STEADPATH=\$(DATAPATH)/stead" >> config.make echo "THEMESPATH=\$(DATAPATH)/themes" >> config.make echo "GAMESPATH=\$(DATAPATH)/games" >> config.make echo "ICONPATH=\$(DESTDIR)\$(PREFIX)/share/pixmaps" >> config.make echo "DOCPATH=\$(DESTDIR)\$(PREFIX)/share/doc/instead" >> config.make echo "LANGPATH=\$(DATAPATH)/lang" >> config.make echo "MANPATH=\$(DESTDIR)\$(PREFIX)/share/man/man6" >> config.make echo "Ok. We are ready to build and install. Use these commands:" echo " \$ make" echo " \$ sudo make install" echo " \$ sdl-instead" else echo "Huh!!! Wrong answer." exit 1 fi echo " Enjoy..." instead-1.9.1/debian/000755 001751 001751 00000000000 12170232577 014703 5ustar00peterpeter000000 000000 instead-1.9.1/debian/control000644 001751 001751 00000000744 12161555564 016317 0ustar00peterpeter000000 000000 Source: instead Section: games Priority: optional Maintainer: Peter Kosyh Build-Depends: debhelper (>= 7), pkg-config, liblua5.1-dev, libsdl1.2-dev, libsdl-ttf2.0-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev, zlib1g-dev Standards-Version: 3.8.3 Homepage: http://instead.sourceforge.net Package: instead Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: simple text adventures/visual novels engine Visual novell/text quest-like engine. instead-1.9.1/debian/compat000644 001751 001751 00000000002 12161555564 016105 0ustar00peterpeter000000 000000 7 instead-1.9.1/debian/changelog000644 001751 001751 00000000611 12170225737 016553 0ustar00peterpeter000000 000000 instead (1.9.1) unstable; urgency=low * 1.9.1 release; -- Peter Kosyh Sat, 13 Jul 2013 14:30:00 +0400 instead (1.9.0) unstable; urgency=low * 1.9.0 release; -- Peter Kosyh Fri, 12 Apr 2013 08:00:00 +0400 instead (1.8.3) unstable; urgency=low * debian friendly release; -- Peter Kosyh Sat, 26 Jan 2013 14:52:00 +0400 instead-1.9.1/debian/copyright000644 001751 001751 00000000614 12161555564 016643 0ustar00peterpeter000000 000000 This package was debianized by Peter Kosyh p.kosyh@gmail.com on Thu, 21 May 2009 11:40:29 +0400. It was downloaded from http://instead.sourceforge.net Upstream Author: p.kosyh@gmail.com Copyright: Copyright (C) 2009 Peter Kosyh License: GPL2 The Debian packaging is (C) 2009, Peter Kosyh p.kosyh@gmail.com and is licensed under the GPL, see `/usr/share/common-licenses/GPL'. instead-1.9.1/debian/rules000755 001751 001751 00000004626 12161555564 015777 0ustar00peterpeter000000 000000 #!/usr/bin/make -f # -*- makefile -*- # Sample debian/rules that uses debhelper. # This file was originally written by Joey Hess and Craig Small. # As a special exception, when this file is copied by dh-make into a # dh-make output file, you may use that output file without restriction. # This special exception was added by Craig Small in version 0.37 of dh-make. # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 configure: configure-stamp configure-stamp: dh_testdir # Add here commands to configure the package. touch configure-stamp build: build-arch build-indep build-arch: build-stamp build-indep: build-stamp build-stamp: configure-stamp dh_testdir # Add here commands to compile the package. ln -s instead.6 doc/sdl-instead.6 ln -s instead.txt doc/sdl-instead.txt rm -rf Rules.make ln -s Rules.make.system Rules.make echo "2" | ./configure.sh LDFLAGS=-lm $(MAKE) PREFIX=/usr BIN=/usr/games DATAPATH=/usr/share/games/instead rm -rf Rules.make #docbook-to-man debian/instead.sgml > instead.1 touch $@ clean: dh_testdir dh_testroot rm -f build-stamp configure-stamp # Add here commands to clean up after the build process. rm -rf doc/sdl-instead.6 rm -rf doc/sdl-instead.txt rm -rf Rules.make ln -s Rules.make.system Rules.make $(MAKE) clean rm -rf Rules.make ln -s Rules.make.standalone Rules.make dh_clean install: build dh_testdir dh_testroot dh_prep dh_installdirs # Add here commands to install the package into debian/instead. rm -rf Rules.make ln -s Rules.make.system Rules.make $(MAKE) install DESTDIR=$(CURDIR)/debian/instead PREFIX=/usr DATAPATH=$(CURDIR)/debian/instead/usr/share/games/instead BIN=$(CURDIR)/debian/instead/usr/games rm -rf Rules.make # Build architecture-independent files here. binary-indep: build install # We have nothing to do by default. # Build architecture-dependent files here. binary-arch: build install dh_testdir dh_testroot dh_installchangelogs dh_installdocs dh_installexamples # dh_install # dh_installmenu # dh_installdebconf # dh_installlogrotate # dh_installemacsen # dh_installpam # dh_installmime # dh_python # dh_installinit # dh_installcron # dh_installinfo dh_installman dh_link dh_strip dh_compress dh_fixperms # dh_perl # dh_makeshlibs dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install configure instead-1.9.1/desktop/000755 001751 001751 00000000000 12170510206 015116 5ustar00peterpeter000000 000000 instead-1.9.1/desktop/instead.desktop.in000644 001751 001751 00000000574 12162117151 020556 0ustar00peterpeter000000 000000 [Desktop Entry] Encoding=UTF-8 Version=1.9.1 Type=Application Name=INSTEAD Name[ru]=INSTEAD Name[uk]=INSTEAD Comment=Simple Text Adventures Interpreter Comment[ru]=Интерпретатор простых приключений Comment[uk]=Iнтерпретатор простих пригод Exec=@BIN/sdl-instead Icon=sdl_instead.png Terminal=false Categories=Game;LogicGame; instead-1.9.1/desktop/Makefile.windows000644 001751 001751 00000000025 12161555602 020255 0ustar00peterpeter000000 000000 clean: all: install: instead-1.9.1/desktop/Makefile000644 001751 001751 00000000651 12161555602 016571 0ustar00peterpeter000000 000000 include ../Rules.make include ../config.make clean: rm -rf instead.desktop all: instead.desktop instead.desktop: instead.desktop.in cat instead.desktop.in | sed -e "s|@BIN|$(BIN)|g" > instead.desktop install: $(INSTALLD) $(DESTDIR)$(PREFIX)/share/applications $(INSTALL) instead.desktop $(DESTDIR)$(PREFIX)/share/applications/instead.desktop uninstall: $(RM) $(DESTDIR)$(PREFIX)/share/applications/instead.desktop instead-1.9.1/doc/000755 001751 001751 00000000000 12162117325 014220 5ustar00peterpeter000000 000000 instead-1.9.1/doc/examples/000755 001751 001751 00000000000 12161555602 016041 5ustar00peterpeter000000 000000 instead-1.9.1/doc/instead-manual-en.html000644 001751 001751 00000236053 12161555602 020424 0ustar00peterpeter000000 000000 en:gamedev:documentation

0. General information

This documentation is outdated!!! Please, help us to translate current documentation from Russian language.

http://instead.syscall.ru/wiki/ru/gamedev/documentation

Game code for STEAD is written in lua (5.1), therefore it is useful to know the language, though not necessary. The engine code in lua is about ~3000 lines long. And it is the best documentation.

The main game window contains information about static and dynamic parts of the scene, active events and the scene picture with possible passages to other scenes (in the graphic interpreter).

Static part of the scene is shown only once, when the player enters the scene. Also it is shown when the look command is repeated (click on the scene name in the graphic interpreter).

The dynamic part of a scene is composed of descriptions of the scene objects. It is always shown.

Inventory contains objects, that the player can access in every scene. The player can interact with the inventory objects or use inventory objects on other objects in the scene or inventory.

One should note that the “inventory” is defined rather vaguely. For example it may contain such objects as “open”, “examine”, “use”, etc.

Possible actions of the player are:

  • looking at the scene;
  • using a scene object;
  • using an inventory object;
  • using an inventory object on a scene object;
  • using an inventory object on an inventory object;
  • using a scene object on a scene object (scene_use mode);
  • using a scene object on an inventroy object (scene_use mode);
  • passing to another scene;

Each game is a directory with a main.lua script. Other game resources (lua scripts, images, music) should be in this directory. All references to the resources are given relative to this game directory.

At the beginning of main.lua file a header may be defined. It consists of tags. Each tag should start with symbols — lua comments. Right now only one tag exists: $Name:. It should contain the name of the game in UTF-8 encoding. For example:

-- $Name: The most interesting game!$

From version 1.2.0 after headers you must define required STEAD API version. It is “1.8.0” currently.

instead_version "1.8.0"

Without this line STEAD API will stay in compatible(legacy) mode.

Game initialization should be defined as init function. For example:

function init()
    me()._know_truth = false
    take(knife);
    take(paper);
end

The graphic interpreter searches for available games in the games directory. Unix version also checks ~/.instead/games. Windows version (>=0.8.7) checks Documents and Settings/USER/Local Settings/Application Data/instead/games.

From version 1.2.0 Windows and Unix standalone builds looks into ./appdata/games dir, if it exists.

1. Scene

A scene is a game unit. Within it a player can examine all the scene objects and interact with them. A game should contain at least one scene with the name main.

main = room {
	nam = 'main room',
	dsc = 'You are in a large room.',
};

The record means creation of an object main of a type room. Every object has attributes and handlers. For example the attribute nam (name) is obligatory for every object.

The nam attribute for a scene will be the scene name when it is played. The name of a scene is also used to identify it when passing between scenes.

The dsc attribute is a description of a static part of the scene. It is shown once when entering the scene or after the explicit look command.

Attention!!! You may use symbol “;” instead of “,”. For example:

main = room {
	nam = 'main room';
	dsc = 'You are in a large room.';
};

Attention!!! If your creative design requires the static part description to be shown every time, you may define the “forcedsc” parameter for your game (at the start).

game.forcedsc = true;

Or similarly set the “forcedsc” for particular scenes.

For long descriptions the following format is convenient:

dsc = [[ Very long description... ]],

In this format line breaks are ignored. If you need paragraph breaks in the description, use the “^” symbol.

dsc = [[ First paragraph. ^^
Second paragraph.^^
 
Third paragraph.^
New line.]],

2. Objects

Objects are units of a scene, with which the player interacts.

tabl = obj {
	nam = 'table',
	dsc = 'There is a {table} in the room.',
	act = 'Hm... Just a table...',
};

Object name “nam” is used when the object gets into the inventory or to address the object in a text interpreter.

“dsc” is an object descriptor. It will be shown in the dynamic part of the scene. Curly brackets indicate the text fragment which will be a link anchor in the graphic interpreter.

“act” is a handler, called when the player uses a scene object. It has to return a text line, which will become a part of the scene events, or a boolean value (see chapter 5)

WARNING: in the lua namespace some objects (tables) already exist. For example “table”, “io”, “string”… Be careful when creating objects. In the example above “tabl” is used instead of “table”. (But in fact, in modern versions of INSTEAD this problem is almost solved).

3. Adding objects to the scene

A reference to an object is a text string, with the object name at its creation. For example 'tabl' is a reference to the object “tabl”.

To place objects to the scene one has to define the “obj” array of references to objects:

main = room {
	nam = 'main room',
	dsc = 'You are in a large room.',
	obj = { 'tabl' },
};

This way when the scene is shown we'll see the table object in the dynamic part.

Attention!!! You can use references to objects without quotes, if the object was defined before reference, but using quotes is always safe.

4. Objects referencing objects

Objects may contain “obj” attribute too. This way the list will expand sequentially. For example let's place an apple on the table.

aple = obj {
	nam = 'apple',
	dsc = 'There is an {apple} on the table.',
	act = 'Should I take it?',
};

tabl = obj {
	nam = 'table',
	dsc = 'There is a {table} in the room.',
	act = 'Hm... Just a table...',
	obj = { 'aple' },
};

This way in the scene description we'll see descriptions of objects “table” and “apple”, because “aple” is an object referenced by tabl. /* Translator's note: in the English version of the document I renamed the “apple” variable to “aple” to distinguish it from aple.nam */

5. Attributes and handlers as functions

Most attributes and handlers may also be functions. For example:

nam = function()
	return 'apple';
end,

This is synonymous to: nam = 'apple';

Handler must return string. You can also use more user-friendly functions:

  • p (“text”) – output text with space;
  • pn (“text”) – output text with newline;
  • pr (“text”) – output text as-is;

If you call p/pn/pr with only one text parameter, the parentheses could be omitted. Use .. or , for string concatenation. For example:

pn "No parentheses";
pn ("This is string 1".." This is string 2");
pn ("This is string 1", "This is string 2");

Functions greatly enhance STEAD capabilities, for example:

aple = obj {
	nam = 'apple',
	dsc = function(s)
		if not s._seen then
			p 'There is {something} on the table.';
		else
			p 'There is an {apple} on the table.';
		end
	end,
	act = function(s)
		if s._seen then
			p 'It\'s an apple!';
		else
			s._seen = true;
			p 'Hm... But it\'s an apple!';
		end
	end,
};

If the attribute or handler is laid out as a function, then the first argument of the function (s) is the object itself. In the example scene the dynamic part will have the text: 'There is something on the table.' When you try to use this “something”, '_seen' variable of the object “aple” will be set to “true” and we will see it was an apple.

`s._seen` means that the `_seen` variable is placed in the “s” object (in our case “aple”). Underscore means that this variable is saved in a savegame file.

From version 1.2.0 you can define variables as shown in the example:

global {
    global_var = 1;    
}
main = room {
    var {
        i = "a";
        z = "b";
    };
    nam = 'My first room';
    var {
        new_var = 3;
    };
    dsc = function(s)
        p ("i == ", s.i);
        p ("new_var == ", s.new_var);
        p ("global_var == ", global_var);
    end;

From version 1.2.0 you may define function like this:

	dsc = code [[
		if not self._seen then
			p 'There is {something} on the table.';
		else
			p 'There is an {apple} on the table.';
		end
	]],

While running code, the object itself is written into “self” variable. arg1 .. arg9 and args[] array holds all arguments.

Warning! Variable will be saved to savegame file if it was defined in: room, game, obj, player, global space and it's name begins from _ symbol or if it was defined using var/global.

These types of variables can be saved:

  • strings;
  • boolean values;
  • numeric values;
  • links to objects;
  • code constructions;

Sometimes we need a handler that would do something without showing any description, e.g.:

button = obj {
	nam = "button",
	dsc = "There is a big red {button} on the room wall.",
	act = function (s)
		here()._dynamic_dsc = [[The room transformed after I pressed the button. 
			The book-case disappeared along with the table and the chest, and a strange 
			looking device took its place.]];
		return true;
	end,
}
r12 = room {
	nam = 'room',
	_dynamic_dsc = 'I am in the room.',
	dsc = function (s) return s._dynamic_dsc end,
	obj = {'button'}
}

In this case act handler is used to change room description but it is not supposed to add any description of its own. To achieve this we need to return true from the handler. It means the action is done successfully but does not require to diplay any additional description.

If you need to show some action is impossible, just don't return anything from handler. In this case default description will be shown for this action. Default actions can be set via game.act handler and are generally used for description of impossible actions.

Please note the new variable _dynamic_dsc is used to make a dynamic description in the above example. This is done to ensure new description is saved during the game save. Since the name 'dsc' does not start with underscore or capital letter it will not be saved by default.

So, example above can be looks like this:

button = obj {
	nam = "button";
	dsc = "There is a big red {button} on the room wall.";
	act = function (s)
		here().dsc = "The room looks strange now...";
		p [[The room transformed after I pressed the button. 
			The book-case disappeared along with the table and the chest, and a strange 
			looking device took its place.]];
	end
}
r12 = room {
        forcedsc = true;
	nam = 'room';
        var {
	    dsc = 'I am in the room.';
        };
	obj = {'button'}
}

6. Inventory

The easiest way to create a takeable object is to define a “tak” handler.

For example:

aple = obj {
	nam = 'apple',
	dsc = 'There is an {apple} on the table.',
	inv = function(s)
		inv():del(s);
		return 'I ate the apple.';
	end,
	tak = 'You take the apple.',
};

This way when the player uses the “apple” object the apple is removed from the scene and added to the inventory. When the player uses the inventory “inv” handler is called.

In the present example when the player uses the apple in the inventory, the apple is eaten.

7. Passing between the scenes

To pass from one scene to another use the scene attribute — the “way” list.

room2 = room {
	nam = 'hall',
	dsc = 'You are in a huge hall.',
	way = { 'main' },
};


main = room {
	nam = 'main room',
	dsc = 'You are in a large room.',
	obj = { 'tabl' },
	way = { 'room2' },
};

This way you can pass between ”main” and “room2” scenes. As you remember, “nam” may be a function, and you can generate scene names on the fly. For example if you don't want the player to know the name of the scene until he gets there.

When switching between scenes the engine calls the “exit” handler from the current scene and the “enter” from the destination scene. For example:

room2 = room {
	enter = 'You enter the hall.',
	nam = 'hall',
	dsc = 'You are in a huge hall.',
	way = { 'main' },
	exit = 'You leave the hall.',
};

“exit” and “enter” may be functions. Then the first parameter is the object itself (as usual) and the second parameter is the room where the player is heading (for “exit”) or which he is leaving (for “enter”). For example:

room2 = room {
	enter = function(s, f)
		if f == main then
			return 'You came from the room.';
		end
	end,
	nam = 'hall',
	dsc = 'You are in a huge hall.',
	way = { 'main' },
	exit = function(s, t)
		if t == main then
			return 'I don\'t wanna go back!', false
		end
	end,
};

As we see, the handlers can return two values: the string and the status. In our example the “exit” function returns “false” if the player tries to go to the “main” room from the hall. “false” means that the player will not pass. Same logic works for “enter” and “tak”.

If you like p/pn/pr instead, just return status itself:

room2 = room {
	enter = function(s, f)
		if f == main then
			p 'You came from the room.';
		end
	end,
	nam = 'hall',
	dsc = 'You are in a huge hall.',
	way = { 'main' },
	exit = function(s, t)
		if t == main then
			p 'I don\'t wanna go back!'
                        return false
		end
	end,
};

Keep in mind that the current scene may not be changed by the moment of an enter action handler invocation. Since the version 1.2.0 available two new action handlers: 'left' and 'entered'. They are invoked immediately after the transition and recommended to use in case when transition prohibition is not required.

8. Using an object on an object

The player may use an inventory object on other objects. In this case “use” handler is invoked for the object in the inventory and “used” for the other one.

For example:

knife = obj {
	nam = 'knife',
	dsc = 'There is a {knife} on the table',
	inv = 'Sharp!',
	tak = 'I took the knife!',
	use = 'You try to use the knife.',
};

tabl = obj {
	nam = 'table',
	dsc = 'There is a {table} in the room.',
	act = 'Hm... Just a table...',
	obj = { 'aple', 'knife' },
	used = 'You try to do something with the table...',
};

If the player takes the knife and uses it on the table, he gets the text of “use” and “used” hanlers. “use” and “used” may be functions. Then the first parameter is the object itself. The second parameter for “use” is the object being subjected to the action and fot “used” is the object performing the action.

If “use” returns “false” status, then “used” is not invoked (if there is one). The status of “used” is ignored.

Example:

knife = obj {
	nam = 'knife',
	dsc = 'There is a knife on the {table}',
	inv = 'Sharp!',
	tak = 'I took the knife!',
	use = function(s, w)
		if w ~= tabl then
			p 'I don\'t want to cut this.'
                        return false
		else
			p 'You incise your initials on the table.';
		end
};

You can use the knife only on the table.

9. Player object

In STEAD the player is represented by the object “pl”. The object type is “player”. In the engine it's created thie way:

pl = player {
	nam = "Incognito",
	where = 'main',
	obj = { }
};

The “obj” attribute represents the player's inventory.

10. The object “game”

The game is also represented by the object “game” of type “game”. In the engine it is defined this way:

game = game {
	nam = "INSTEAD -- Simple Text Adventure interpreter v"..version.." '2009 by Peter Kosyh",
	dsc = [[
Commands:^
    look(or just enter), act <on what> (or just what), use <what> [on what], go <where>,^
    back, inv, way, obj, quit, save <fname>, load <fname>.]],
	pl ='pl',
	showlast = true,
};

As we can see, the object keeps the reference to the current player ('pl') and some parameters. For example at the start of your game you can set the encoding the following way:

game.codepage="UTF-8"; 

The support of arbitrary encodings is present in every UNIX version of the interpreter and in windows versions from 0.7.7.

Also the object “game” may contain the default handlers: “act”, “inv”, “use”. They will be invoked if no other handlers are found after the user's actions. For example you can write at the game start:

game.act = 'You can\'t.';
game.inv = 'Hmm... Odd thing...';
game.use = 'Won\'t work...';

11. Attribute lists

Attribute lists (such as “way” or “obj”) allow to work with themselves thus allowing to implement dynamically defined passages between scenes, live objects, etc.

List methods are: “add”, “del”, “look”, “srch”, “purge”, “replace”. The most used are “add” and “del”.

“add” adds to the list, “del” removes from the list, “purge” removes even disabled object, “srch” performs a search. “replace” replaces object. Note that “del”, “purge”, “replace” and “srch” may use as a parameter not only the object itself or its identifier, but also the object name.

Starting from version 0.8 the object itself may be a parameter of “add”. Also from this version an optional second parameter is added — position in list. From 0.8 you also can modify the list by the index with the “set” method. For example:

objs():set('knife',1);

You've seen the above example with the eaten apple. It used inv():del('aple');

“inv()” is a function, which returns the inventory list. “del” after “:” is a method, that deletes an element of the inventory.

Similarly, “tak” may be implemented this way:

knife = obj {
	nam = 'knife',
	dsc = 'There is a {knife} on the table,
	inv = 'Sharp!',
	act = function(s)
		objs():del(s);
		inv():add(s);
	end,
};

Apart from adding and deleting objects from lists you may switch them on and off with “enable()” and “disable()” methods. E.g. “knife:disable()”. This way the object “knife” will disappear from the scene description, but may be switched on later with “knife:enable()”.

“enable_all()” and “disable_all()” methods works (from 0.9.1) with embedded objects (objects in object).

From version 0.9.1 methods “zap” and “cat” can be used. zap() – delete all elements. cat(b, [pos]) – add all elements of list b to current list at position [pos].

From version 1.8.0 methods “disabe” and “enable” can be used to disable/enable selected object in list (usually by name);

Attention!!! Currently, it is recommended to use higher lever functions like: put/get/take/drop/remove/seen/have and so on, to work with objects and inventory.

12. Functions, that return objects

In STEAD several functions are defined, that return some frequently used objects. For example:

  • inv() returns the inventory list;
  • objs() returns the list of objects of the current scene; (from 0.8.5 it has an optional paremeter — the scene for which to return objects;
  • ways() returns the list of passages from the current scene; (from 0.8.5 has an optional paremeter — the scene for which to return the list);
  • me() returns the player object;
  • here() returns the current scene; (from 0.8.5 another function where(obj) returns the scene where is object placed. Works only if it was placed with put/drop/move).
  • from() returns an object from a previous scene;
  • seen(obj, [scene]) returns an object, if it exists in scene and not disabled;
  • have(obj, [scene]) returns an object, if it exists in the inventory;
  • exist(obj, [scene]) returns an object, if it is exists in scene;
  • live(obj) returns an object, if it is exists in lifes;
  • path(obj,[where]) – lookup in way, even for disabled items;

Combining those functions with “add” and “del” methods one can dynamically alter the scene, for example:

ways():add('nexroom'); — add a passage to a new scene;
objs():add('chair'); — add an object to the current scene;

Another function gets an object by reference: ref().

For example we can add an object to the 'home' location like this:

ref('home').obj:add('chair');

This shorter variant is also correct:

home.obj:add('chair');

Or, for version >=0.8.5:

objs('home'):add('chair');

and finally:

put('chair', 'home');

or even:

put(chair, home);

From 0.8.5 deref(o), returns the reference-string for an object;

13. Some auxiliary functions.

STEAD has a number of high-level functions, that may come useful when writing games.

have() — checks if the object is in the inventory by object, it's reference or by object “nam” attribute. For example:

...
act = function(s)
	if have('knife') then
		return 'But I\'ve got a knife!';
	end
end
...

Next code examples must work to.

...
	if have 'knife' then
...
	if have (knife) then
...

In the next examples you may use all above address modes.

move(o, w) — moves an object from the current scene to another:

move('mycat','inmycar');

If you want to move an object from an arbitrary scene, you'll have to delete it from the original scene with the “del” method. To create objects, that move in complex ways, you'll have to write a method that would save the object's position in the object itself and delete it from the original scene. You can set the initial position (room) as the third parameter of “move”.

move('mycat','inmycar', 'forest'); 

From version 0.8 there is a “movef” function similar to “move”, but adding the object to the start of the list.

seen(o) — is object present in the current scene:

	if seen('mycat') then
		move('mycat','inmycar');
	end

From 0.8.6 has an optional second parameter — the scene.

drop(o) — drop an object from the inventory to the scene:

drop('knife');

From 0.8 there's a function “dropf” similar to “drop”, but adding the object to the list start. From 0.8.5 there's an optional second parameter — a room where to place the object. Also from >=0.8.5 there are “put/putf” functions which are not remove the object from the inventory.

From version 0.8.9 there's a function remove(o, [from]), which deletes an object from the current scene or from the “from” scene.

take(o) — take an object.

take('knife');

From 0.8.5 has optional second parameter — a room where to take the object from.

taken(o) — returns true if the object has already been taken (with “tak” or “take()”);

rnd(m) — random number from 1 to m.

walk(w) — go to scene w. If you are not using p/pn/pr output method, the handler has to return the “walk” return value. E.g:

act = code [[
        pn "I am going to next room..."
        walk (nextroom);
]]
...
act = code [[
        return cat('I am going to next room...', walk (nextroom));
]]

Attention!!! After walk call, handler execution will continue until handler end or return.

change_pl(p) — switch to another player (with one's own inventory and position). The function returns the scene description of the new player and the returned value has to be transferred from the handler (see “walk()”).

mycar = obj {
	nam = 'my car',
	dsc = 'In front of the cabin there is my old Toyota {pickup}.',
	act = function(s)
		return walk('inmycar');
	end
};

walkback() – go to the previous scene.

back() – go to the previous scene. In case of returning from dialog to room, dsc/enter/entered methods of room will not be called. Use in dialogs.

walkin(room) – go to scene, do not call exit/left of current scene;

walkout() – go to previous scene, do not call enter/entered of previous scene;

time() — returns the current game time in player's moves.

cat(…) — returns the string, concatenating argument strings. If the first argument is nil returns nil.

par(…) — returns the string, concatenating argument strings split by the first argument string.

disable/enable/disable_all/enable_all – disable/enable/disable_all/enable_all object

visited([where]) – room visit counter (may be nil);

path(obj,[where]) – lookup in way, even for disabled items;

nameof(obj) – get object's name (nam attribute);

purge (obj, [where]) – see remove, deletes even disabled object;

replace (obj, onobj, [where]) – replaces object;

disabled(obj) – returns true for disabled objects;

14. Dialogs

Dialogs are scenes with phrase objects. The simplest dialog may look like this:

povardlg = dlg {
	nam = 'in the kitchen',
	dsc = 'I see a fat face of a lady cook wearing a white hat with a tired look...',
	obj = {
	[1] = phr('“Those green, please... Yeah, and beans too!”', '“Enjoy!”'),
	[2] = phr('“Fried potato with lard, please!”', '“Bon appetit!”'),
	[3] = phr('“Two helpings of garlic sooup!!!”', '“Good choice!”'),
	[4] = phr('“Something light, please, I've got an ulcer...”', '“Oatmeal!”'),
	},
};

“phr” creates a phrase. A phrase contains a question, an answer and a reaction (the example has no reaction). When the player picks one of the phrases, it is disabled. When all phrases are disabled, the dialog is over. Reaction is a line of lua code, which is executed when the phrase is disabled. E.g.:

food = obj {
	nam = 'food',
	inv = function (s)
		inv():del('food');
		return 'I eat.';
	end
};

gotfood = function(w)
	inv():add('food');
	food._num = w;
	back();
end

povardlg = dlg {
	nam = 'in the kitchen',
	dsc = 'I see a fat face of a lady cook wearing a white hat with a tired look...',
	obj = {
	[1] = phr('“Those green, please... Yeah, and beans too!”', '“Enjoy!”', [[pon(); gotfood(1);]]),
	[2] = phr('“Fried potato with lard, please!”', '“Bon appetit!”', [[pon(); gotfood(2);]]),
	[3] = phr('“Two helpings of garlic sooup!!!”', '“Good choice!”', [[pon(); gotfood(3);]]),
	[4] = phr('“Something light, please, I've got an ulcer...”', '“Oatmeal!”', [[pon(); gotfood(4);]]),
	},
};

In the example the player chooses his dinner. After getting the food (recording the choice in the “food._num” variable) he returns back to the scene from where he got in the dialog.

The reaction may have any lua code, but STEAD has some frequently used functions predefined:

  • pon(n..) — enable the phrases with numbers n… (in the example it allows to take the same food again).
  • poff(n…) — disable the phrases with numbers n…
  • prem(n…) — remove (block) phrases with numbers n… (blocked phrases won't be re-enabled with subsequent “pon”).
  • pseen(n…) — returns true, if phrases n.. are visible;
  • punseen(n..) — returns true, if phrases n… are not visible;

If argument n is not present, current phrase will be affected.

Player enters a dialog the way he enters a scene:

povar = obj {
	nam = 'cook',
	dsc = 'I see a {cook}.',
	act = function()
		return walk('povardlg');
	end,
};

You can pass from one dialog to another, organizing hierarchic dialogs.

You can also hide some phrases when initializing the dialog and show them under certain conditions.

facectrl = dlg {
	nam = 'facecontrol',
	dsc = 'I see an unpleasant face of a fat guard.',
	obj = {
		[1] = phr('“I came to the Belin's lecture...”', 
		'“I do not know who you are,” he smiles, “but I have orders to let in only decent people.”',
		[[pon(2);]]),
		[2] = _phr('“I\'ve got an invitation!”', 
		'“And I don\'t care! Look at yourself in a mirror!!! You\'ve come to listen to Belin himself — the right hand of...” he made a respectful pause. “So get lost...”', [[pon(3,4)]]),
		[3] = _phr(' “I\'m gonna kick your !@#$%^&*!”', '“I\'ve had enough...” Strong arms push me out to the corridor...',
			[[poff(4)]]),
		[4] = _phr('“You, boar! I\'ve told you, I\'ve got an invitation!”',
			'“Whaaat?” The guard\'s eyes start getting bloodshot... A powerful kick sends me out to the corridor...',
			[[poff(3)]]),
	},
	exit = function(s,w)
		s:pon(1);
	end,
};

`_phr` — creates a disabled phrase, which can be enabled. The example also shows the use of “pon”, “poff”, “prem” methods for a dialog (see “exit”).

You can enable/disable/remove/check phrases not only of the current put of any arbitrary dialog with the “pon”/“poff”/“prem”/“pseen”/“pusneen” methods of a dialog object. For example: shopman:pon(5);

15. Lightweight objects

Sometimes a scene has to be filled with decorations with a limited functionality to add variety to the game. For that lightweight objects can be used. For example:

sside = room {
	nam = 'southern side',
	dsc = [[I am near the southern wall of an institute building. ]],
	act = function(s, w)
		if w == "porch" then
			ways():add('stolcorridor');
			p "I walked to the porch. The sign on the door read 'Canteen'. Hm... should I get in?";
		elseif w == "people" then
			p 'The ones going out look happier...';
		end
	end,
	obj = { vobj("porch", "There is a small {porch} by the eastern corner."),
		vobj("people", "From time to time the porch door slams letting {people} in and out..")},
};

As you see, “vobj” allows to create a lightweight version of a static object, with which it will still be possible to interact (defining an “act” handler in the scene an analyzing the object name). “vobj” also calls the “used” method with the third parameter being the object which acts on the virtual object.

“vobj” syntax: vobj(name, descriptor); where key is a number to be transferred to the “act”/“used” handlers of the scene as a second parameter.

There is a modification of “vobj” object — “vway”. It creates a reference. “vway” syntax: vway(name, descriptor, destination scene); for example:

	obj = { vway("next", "Press {here}.", 'nextroom') }

You can dynamically fill the scene with “vobj” and “vway” objects. Use methods “add” and “del”. For example:

	objs(home):add(vway("next", "{Next}.", 'next_room'));
-- some code here
	home.obj:del("next");

Also a simplified scene “vroom” is defined. Syntax: vroom(passage name, destination scene). For example:

	home.way:add(vroom("go west", 'mountains');

16. Dynamic events

You can define handlers, that would execute every time when the game time increments by 1. E.g.:

mycat = obj {
	nam = 'Barsik',
	lf = {
		[1] = 'Barsik is moving in my bosom.',
		[2] = 'Barsik peers out of my bosom.',
		[3] = 'Barsik purrs in my bosom.',
		[4] = 'Barsik shivers in my bosom.',
		[5] = 'I feel Barsik's warmth in my bosom.',
		[6] = 'Barsik leans out of my bosom and looks around.',
	},
	life = function(s)
		local r = rnd(6);
		if r > 2 then
			return;
		end
		r = rnd(6);
		return s.lf[r];
	end,
....

profdlg2 = dlg {
	nam = 'Belin',
	dsc = 'Belin is pale. He absently looks at the shotgun.',
	obj = {
		[1] = phr('“I came for my cat.”',
	'I snatch Barsik from Belin's hand and put in my bosom.',
		[[inv():add('mycat'); lifeon('mycat')]]),
....

Any object or scene may have their “life” handler, which is called every time the game time advances, if the object or the scene have been added to the list of living objects with “lifeon”. Don't forget to remofe living objects from the list with “lifeoff”, when you no longer need them. You can do this, for example, in the “exit” handler or some other way.

life may return string, that will be printed after all text of scene.

From 0.9.1 you can return second retval – importance. (true or false). For example:

return 'Guard entered the room.', true -- The event will be printed before objects description.

Or:

p 'Guard entered the room.'
return true -- The event will be printed before objects description.

17. Graphics and music

Graphic interpreter analyzes the scene “pic” attribute and treats it as a path to the picture. For example:

home = room {
	pic = 'gfx/home.png',
	nam = 'at home',
	dsc = 'I am at home',
};

Of couce, “pic” may be a function. This enhaces the developer's capabilities. If the current scene has no “pic” attribute defined, the “game.pic” attribute is taken. If “game.pic” isn't defined, no picture is displayed.

From version 0.9.2 you can use animated gif files.

From version 0.9.2 graphics can be embedded everywhere in text or inventory with img function. For example:

knife = obj {
	nam = 'Knife'..img('img/knife.png'),
}

From version 1.3.0 text flow is supported. Using functions imgl/imgr, picture can be inserted at left/right. border. Those pictures can not be links.

For padding, you can use 'pad:'. For example:

imgl 'pad:16,picture.png' -- padding 16px;
imgl 'pad:0 16 16 4,picture.png' -- padding: top 0, right 16, bottom 16, left 4
imgl 'pad:0 16,picture.png' -- padding: top 0, right 16, bottom 0, left 16

You can use pseudo-images for blank areas and boxes:

dsc = img 'blank:32x32'..[[Line with blank image.]];
dsc = img 'box:32x32,red,128'..[[Line with red semi-transparent square.]];

In current version you can use disp attribute:

knife = obj {
	nam = 'Knife';
        disp = 'Knife'..img('img/knife.png'),
}

The interpreter cycles the current music defined by the function ”set_music(music file name)”.

For example:

street = room {
	pic = 'gfx/street.png',
	enter = function()
		set_music('mus/rain.ogg');
	end,
	nam = 'on the street',
	dsc = 'It is raining outside.',
};

From version 1.0.0 the interpreter can compose picture from base image and overlays:

pic = 'gfx/mycat.png;gfx/milk.png@120,25;gfx/fish.png@32,32'

get_music() returns the current track name.

From version 0.7.7 the set_music() function can get an additional parameter — the number of playbacks. You can get the current counter with “get_music_loop”. -1 means that the playback of the current track is over.

From version 0.9.2 the set_sound() function lets to play sound file. get_sound() returns sound filename, that will be played.

To stop music use stop_music() function (from version 1.0.0).

Use is_music() to check if music is playing. (from version 1.0.0)

18. Advices

Split game into files

You can use “dofile” to include source code fragments. You must use “dofile” in global context, to load all game fragments while parsing main.lua.

-- main.lua
dofile "episode1.lua"
dofile "npc.lau"
dofile "start.lua"

For dynamic including (with possibility to redefine current objects or/and rooms) you can use “gamefile”:

...
act = code [[ gamefile ("episode2.lua"); ]]
...

You can also load new file and forget stack of previous loaded fragments, runnig new file like new game.

...
act = code [[ gamefile ("episode3.lua", true); ]]
...

Modules

Starting from version 1.2.0 you can use modules via “require” function call. At the moment the following modules are available:

  • dbg — debug module (use require “dbg” to enable debugger);
  • walk — improved implementation of passages;
  • xact — multiple references to objects;
  • input — keyboard input;
  • click — capturing mouse clicks on the scene picture;
  • vars — definition of variables;
  • prefs — preferences;
  • snapshots — snapshots;
  • format — formats the output;
  • object — improved objects;
  • theme — theme manipulations;

Modules can be used like this:

--$Name: My game!$
instead_version "1.2.0"
require "para"
require "dbg"
...

If version is >= 1.2.0 then the following modules are used automatically: vars, object, walk.

“prefs” object (included into “prefs” module) can store game preferences, e.g. player progress or attempt count…

  require "prefs"
...
    prefs.counter = 0
...
    exit = function(s)
        prefs.counter = prefs.counter + 1
        prefs:store()
    end
...
    enter = function(s)
        return 'You passed the game '..prefs.counter..' times';
    end
...
    act = function(s)
        prefs:purge()
        return "Preferences has been cleared"
    end

“xact” module allows to make references to objects from other objects, reactions and life methods. These references have the form {object:string}, e.g.:

...
    act = [[ I noticed a {myknife:knife} under the table.]]
...

“object” part of the reference can be object variable or object name.

This module also defines “xact” and “xdsc” objects.

“xact” is the simple reaction object. For example:

main = room {
    forcedsc = true;
    dsc = [[Author's comment: I was writing this game for a very {note1:long} time.]];
    obj = {
        xact('note1', [[More than 10 years.]]);
    }
}

A reaction can contain a code:

        xact('note1', code [[p "More than 10 years."]]);

“xdsc” allows to insert multiple description to the object list:

main = room {
    forcedsc = true;
    dsc = [[ I'm in the room. ]];
    xdsc = [[ I see an {anapple:apple} and a {aknife:knife}. ]];
    other = [[ There are also {achain:chain} and {atool:handsaw} here.]];
    obj = {
        xdsc(), -- 'xdsc method by default'
        xdsc('other'),
        'apple', 'knife', 'chain', 'tool',
    }
}

You may use xroom:

main = xroom {
    forcedsc = true;
    dsc = [[ I'm in the room. ]];
    xdsc = [[ I see an {anapple:apple} and a {aknife:knife}. ]];
    obj = {
        'apple', 'knife', 'chain', 'tool',
    }
}

“input” module allows to implement simple text entry fields. “click” module helps to handle mouse clicks on scene pictures.

“para” module adds indentation to paragraphs.

“format: module formats the output. By default all settings are disabled:

format.para = false -- adds indentation to paragraphs;
format.dash = false -- changes double - on dash;
format.quotes = false -- changes quotes on << >>;
format.filter = nil -- user formatting function;

You may use modules para/dash/quotes to enable specific feature.

Formatting

You can do simple text formatting with functions:

  • txtc() - center align;
  • txtr() - right align;
  • txtl() - left align;
  • txttop() - top of line;
  • txtbottom() - bottom of line;
  • txtmiddle() - middle (by default);

For example:

main = room {
	nam = 'Intro',
	dsc = txtc('Welcome!'),
}

You can define text style with functions:

  • txtb() - bold;
  • txtem() - emboss;
  • txtu() - underline;
  • txtst() - strikesthrougth;

For example:

main = room {
	nam = 'Intro',
	dsc = 'You are in the room: '..txtb('main')..'.',
}

Since the version 1.1.0 you can create unwrapped strings by using txtnb();

For example:

main = room {
	nam = 'Intro',
	dsc = 'You are in the room '..txtb('main')..'.',
}

You can do menus in the inventory area, using menu constructor. Menu handler will be called after single mouse click. If handler have no return string the state of game will no change. For example, here is pocket realisation:

pocket = menu {
	State = false,
	nam = function(s)
		if s.State then
			return txtu('pocket');
		end
		return 'pocket';
	end,
	gen = function(s)
		if s.State then
			s:enable_all();
		else
			s:disable_all();
		end 
	end,
	menu = function(s)
		if s.State then
			s.State = false;
		else
			s.State = true;
		end 
		s:gen();
	end,
};

knife = obj {
	nam = 'knife',
	inv = 'This is knife',
};

function init()
    inv():add(pocket);
    put(knife, pocket);
    pocket:gen();
end

main = room {
	nam = 'test',
};

Player status

Below is an implementation of player status as a text in the inventory, which cannot be picked.

global {
    life = 10;
    power = 10;
}

status = stat {
	nam = function(s)
		p ('Life: ', life, 'Power: ', power)
	end
};
function init()
    inv():add('status');
end

“walk” from the “exit” and “enter” handlers

You can do “walk” from the “enter” and “exit” handlers.

Dynamically created references.

Dynamically created references can be implemented in various ways. The example below uses “vway” objects. To add a reference one can write:

objs(home):add(vway('Road', 'I noticed a {road} going into the forest...', 'forest'));

To delete a reference one can use “del” method.

objs(home):del('Road');

The “srch” method can check if the reference is present in the scene.

if not objs(home):srch('Road') then
	objs(home):add(vway('Road', 'I noticed a {road} going into the forest...', 'forest'));
end

It's convenient to create dynamic references either in the “enter” handler, or in the arbitrary place in the game code, where they are required. If the reference is created in the current scene, the example can be simplified:

if not seen('Road') then
	objs():add(vway('Road', 'I noticed a {road} going into the forest...', 'forest'));
end

Or you can just enable and disable references with “enable()” and “disable()”, for example:

	seen('Road', home):disable();
        exist('Road', home):enable();

Creating disabled “vobj” and “vway”:

	obj = {vway('Road', 'I noticed a {road} going into the forest...', 'forest'):disable()},

And then enabling them by their index in the “obj” array or by looking them with srch or seen/exist:

	objs()[1]:enable();

Encoding game sources (from version 0.9.3)

If you want hide a game source code, you can encode it with command: “sdl-instead -encode <lua file> [encoded file]” and load encode file from lua with “doencfile”. It's neccessary to keep main.lua as plain text file. So, the recommended scheme is (game is a encoded game.lua ):

main.lua

-- $Name: My closed source game!$
doencfile("game");

WARNING about using luac compiler: Do not use lua compiler luac, it produces platform-dependent code! But game compilation is useful to find errors in the game code.

Packing resources in .idf file (from version 1.4.0)

You can pack all game's resources (graphics, sounds, theme) in one .idf file. Put all resources in 'data' directory and run:

instead -idf <path to data>

The file data.idf will be created in the current directory. Put it in game's dir and remove resource files.

You may pack whole game in .idf:

instead -idf <path to game>

Game in .idf format can be run like any other game (as it was directory) or directly from command line:

instead game.idf

Switching between players

You can create a game with several characters and switch between them from time to time (see “change_pl”). But you can also use the same trick to switch between different types of inventory.

Using the first parameter of a handler

Code example.

stone = obj {
	nam = 'stone',
	dsc = 'There is a {stone} at the edge.',
	act = function()
		objs():del('stone');
		return 'I pushed the stone, it fell and flew down...';
	end

The “act” handler could look simpler:

	act = function(s)
		objs():del(s);
		return 'I pushed the stone, it fell and flew down...';
	end

Using “set_music”

You can use “set_music” to play sounds setting the second parameter — the cycle counter how many times to play the sound file.

You can write your own music player, creating it from a live object, e.g:

-- plays tracks in random order, starting from 2-nd
tracks = {"mus/astro2.mod", "mus/aws_chas.xm", "mus/dmageofd.xm", "mus/doomsday.s3m"}
mplayer = obj {
	nam = 'media player',
	life = function(s)
		local n = get_music();
		local v = get_music_loop();
		if not n or not v then
			set_music(tracks[2], 1);
		elseif v == -1 then
			local n = get_music();
			while get_music() == n do
				n = tracks[rnd(4)]
			end
			set_music(n, 1);
		end
	end,
};
lifeon('mplayer');

You can use “get_music_loop” and “get_music” functions to remember the last melody and ren restore it, e.g:

function save_music(s)
	s._oldMusic = get_music();
	s._oldMusicLoop = get_music_loop();
end

function restore_music(s)
	set_music(s._oldMusic, s._oldMusicLoop);
end

-- ....
enter = function(s)
	save_music(s);
end,
exit = function(s)
	restore_music(s);
end,
-- ....

From version 0.8.5 functions “save_music” and “restore_music” are already present in the library.

Living objects

If your hero needs a friend, one of the ways is the “life” method of that character, that would always bring the object to the player's location:

horse = obj {
	nam = 'horse',
	dsc = 'A {horse} is standing next to me.',
	life = function(s)
		if not seen('horse') then
			move('horse', here(), s.__where);
			s.__where = pl.where;
		end
	end,
};
function init()
    lifeon('horse');
end

Timer

Since the version 1.1. 'instead' has a timer object. (Only for sdl version.)

Timer controls through the timer object.

  • timer:set(ms) – set timer interval (ms)
  • timer:stop() – stop timer
  • timer.callback(s) – callback for timer, calling in fixed time interval

Timer function can return a stead interface command that have to be invoked after the callback execution. For example:

timer.callback = function(s)
	main._time = main._time + 1;  
	return "look";
end
timer:set(100);
main = room {
	_time = 1,
	forcedsc = true,
	nam = 'Timer',
	dsc = function(s)
	return 'Example: '..tostring(s._time);
	end
};

Keyboard

Since version 1.1.0 instead supports keyboard input (works with SDL version only). This can be done using input object.

input.key(s, pressed, key) – keyboard handler; pressed – press or release event; key – symbolic name of the key;

Handler can return a stead interface command. In this case the interpreter doesn't handle a key. For example:

input.key = function(s, pr, key)
	if not pr or key == "escape"then 
		return
	elseif key == 'space' then 
		key = ' '
	elseif key == 'return' then
		key = '^';
	end
	if key:len() > 1 then return end 
	main._txt = main._txt:gsub('_$','');
	main._txt = main._txt..key..'_';
	return "look";
end

main = room {
	_txt = '_',
	forcedsc = true,
	nam = 'Keyboard',
	dsc = function(s)
		return 'Example: '..tostring(s._txt);
	end 
};

Mouse

Since version 1.1.5 instead supports mouse click handling (works with SDL version only). This can be done using input object.

input.click(s, pressed, mb, x, y, px, py) – mouse click handler; pressed – press or release event. mb – mouse button index (1 is left button), x and y – mouse cursor coordinates relative to upper left corner of the window. px and py parameters exist if a picture have been clicked, they contain mouse cursor coordinates relative to upper left corner of this picture.

Handler can return a stead interface command. In this case the interpreter doesn't handle a key. For example:

input.click = function(s, press, mb, x, y, px, py)
	if press and px then
		click.x = px;
		click.y = py;
		click:enable();
		return "look"
	end
end

click = obj {
	nam = 'click',
	x = 0,
	y = 0,
	dsc = function(s)
		return "You clicked a picture at "..s.x..','..s.y..'.';
	end
}:disable();

main = room {
	nam = 'test',
	pic ='picture.png',
	dsc = 'Example.',
	obj = { 'click' },
};

Here is an example of a code layer that implements calling click method in the current room once the picture is clicked:

input.click = function(s, press, mb, x, y, px, py)
	if press and px then
		return "click "..px..','..py;
	end
end

game.action = function(s, cmd, x, y)
	if cmd == 'click' then
		return call(here(), 'click', x, y);
	end
end
----------------------------------------------------------------------
main = room {
	nam = 'test',
	pic ='picture.png',
	dsc = 'Example.',
	click = function(s, x, y)
		return "You clicked a picture at "..x..','..y..'.';
	end
};

Attention!!! From version 1.2.0 it is recommended to use module click.

Dynamic object creation

You can use new and delete functions to create and remove dynamic objects. An example follows.

new ("obj { nam = 'test', act = 'test' }")
put(new [[obj {nam = 'test' } ]]);
put(new('myconstructor()');
n = new('myconstructor()');
delete(n)

new treats its string argument as an object constructor. The constructor must return an object. Thus, the string argument usually contains a constructor function call. For example:

function myconstructor()
	local v = {}
	v.nam = 'test object',
	v.act = 'test feedback',
	return obj(v);
end

The object created will be saved every time the game is saved. new() returns a real object; to get its name you can use deref function:

o_name = deref(new('myconstructor()'));
delete(o_name);

Complex output from event handlers

Sometimes the we need to form event handler output from several parts depending on some conditions. In this case p() and pn() functions can be useful. These functions add text to the internal buffer of the handler. The content of this buffer is returned from the handler.

dsc = function(s)
	p "There is a {barrel} standing on the floor."
	if s._opened then
		p "The barrel lid lies nearby."
	end
end

pn() function adds line feed to the text and outputs the result to the buffer. p() does almost the same thing but adds a space instead of line feed.

There is a function pr() in versions 1.1.6 and later, that does not add anything at end of output.

To clear the buffer you can use pclr(). To return the status of the action along with the text, use pget() or just return.

use = function(s, w)
	if w == apple then
		p 'I peeled the apple';
		apple._peeled = true
		return
	end
	p 'You cannot use it this way!'
	return false; -- or return pget(), false
end

Debugging

To see lua call stack during an error, launch sdl-instead with “-debug” parameter. In Windows version debugging console will be created.

You can debug your game without INSTEAD at all. For example, you can create the following “game.lus” file:

dofile("/usr/share/games/stead/stead.lua"); -- path to stead.lua
dofile("main.lua"); -- your game
game:ini();
iface:shell();

And launch the game in lua: lua game.lua. This way the game will work in a primitive shell environment. Useful commands: ls, go, act, use….

For ingame simple debugger insert this:

require "dbg"

just after version line in main.lua. Then use F7 to call debugger.

19. Themes for sdl-instead

Graphic interpreter supports theme mechanism. A theme is a directory with the “theme.ini” file inside.

The theme reqiured at the least is “default”. This theme is always the first to load. All other themes inherit from it and can partially or completely override its parameters. Themes are chosen by the user through the settings menu, but a game may contain its own theme. In the latter case the game directory contains its “theme.ini” file. However, the user may override custom game theme. If he does, the interpreter warns him that it disagrees with the game author's creative design.

“theme.ini” has a very simple syntax:

<parameter> = <value>

or

; comment

Pussible types of values are: string, color, number.

Colors are set in the #rgb form, where r g and b are color components in hexadecimal. Some colours are recognized by their names, e.g.: yellow, green, violet.

Possible parameters are:

scr.w = game area width in pixels (number)

scr.h = game area height in pixels (number)

scr.col.bg = background color

scr.gfx.bg = path to the background image (string)

scr.gfx.cursor.x = x coordinate of the cursor center (number) (version >= 0.8.9)

scr.gfx.cursor.y = y coordinate of the cursor center (number) (version >= 0.8.9)

scr.gfx.cursor.normal = path to the cursor picture file (string) (version >= 0.8.9)

scr.gfx.cursor.use = path to the cursor picture of the “use” indicator (string) (version >= 0.8.9)

scr.gfx.use = path to the cursor picture of the “use” indicator (string) (version < 0.8.9)

scr.gfx.pad = padding for scrollbars and menu edges (number)

scr.gfx.x, scr.gfx.y, scr.gfx.w, scr.gfx.h = coordinates, width and height of the picture window — the area to display the scene picture. Interpreted depending on the layout mode (numbers)

win.gfx.h - synonymous to scr.gfx.h (for compatibility)

scr.gfx.mode = layout mode (string “fixed”, “embedded” or “float”). Sets the mode for the picture. If “embedded”, the picture is part of the main window, scr.gfx.x, scr.gfx.y and scr.gfx.w are ignored. If “float”, the picture is placed in the coordinates (scr.gfx.x, scr.gfx.y) and downscaled to scr.gfx.w by scr.gfx.h if larger. If “fixed”, the picture is part of the main window as in “embedded”, but stays above the text and is not scrolled with it.

win.x, win.y, win.w, win.h = coordinates, width and height of the main wiindow. — the area with the scene description (numbers)

win.fnt.name = path to the font file (string)

win.fnt.size = font size for the main window (number)

win.fnt.height = line height as float number (1.0 by default)

win.gfx.up, win.gfx.down = paths to the pictures of up/down scrollers for the main window (string)

win.up.x, win.up.y, win.down.x, win.down.y = coordinates of scrollers (position or -1)

win.col.fg = font color for the main window (color)

win.col.link = link color for the main window (color)

win.col.alink = active link color for the main window (color)

inv.x, inv.y, inv.w, inv.h = coordinates, width and height of the inventory window (numbers)

inv.mode = inventory mode string (“horizontal” or “vertical”). In the horizontal mode several objects may fit in the same line, in the vertical — only 1 per line. (string)

inv.col.fg = inventory text color (color)

inv.col.link = inventory link color (color)

inv.col.alink = inventory active link color (color)

inv.fnt.name = path to the inventory font file (string)

inv.fnt.size = inventory font size (number)

inv.fnt.height = line height as float number (1.0 by default)

inv.gfx.up, inv.gfx.down = paths to the pictures of inventory up/down scrollers (string)

inv.up.x, inv.up.y, inv.down.x, inv.down.y = coordinates of scrollers (position or -1)

menu.col.bg = menu background (color)

menu.col.fg = menu text color (color)

menu.col.link = menu link color (color)

menu.col.alink = menu active link color (color)

menu.col.alpha = menu transparency 0-255 (number)

menu.col.border = menu border color (color)

menu.bw = menu border width (number)

menu.fnt.name = paths to menu font file (string)

menu.fnt.size = menu font size (number)

menu.fnt.height = line height as float number (1.0 by default)

menu.gfx.button = path to the menu icon (string)

menu.button.x, menu.button.y = menu button coordinates (number)

snd.click = path to the click sound file (string)

include = theme name (the last component in the directory path) (string)

The theme header may include comments with tags. Right now there is only one tag: “$Name:”, it contains an UTF-8 line with the theme name. E.g.:

; $Name:New theme$
; modified "book" theme
include = book
scr.gfx.h = 500

The interpreter searches for themes in the “themes” directory. Unix version also checks ~/.instead/themes/ directory. Windows version (>=0.8.7) checks “Documents and Settings/USER/Local Settings/Application Data/instead/themes”

TODO Full list of objects and methods.

Translation: vopros@pochta.ru

instead-1.9.1/doc/instead-manual.html000644 001751 001751 00001362410 12161555602 020022 0ustar00peterpeter000000 000000 ru:gamedev:documentation

Содержание

0. Общие сведения

Код игр под INSTEAD пишется на lua (5.1 или 5.2), поэтому, знание этого языка полезно, хотя и не необходимо. Ядро движка также написано на lua, поэтому знание lua может быть полезным для углубленного понимания принципов его работы, конечно, при условии, если вам интересно этим заниматься.

За время своего развития, INSTEAD получил множество новых функций. Теперь с его помощью можно делать игры разных жанров (от аркад, до игр с текстовым вводом). А также, в INSTEAD можно запускать игры, написанные на некоторых других движках, но основой INSTEAD остается первоначальное ядро, которое ориентировано на создание текстографических приключенческих игр. В данной документации описана именно эта базовая часть, изучение которой необходимо даже в том случае, если вы хотите написать что-то другое… Начните свое изучение INSTEAD с написания простой игры!

Внимание!

Самая свежая документация всегда находится по адресу:
http://instead.syscall.ru/wiki/ru/gamedev/documentation

В формате pdf:

http://sourceforge.net/p/instead/code/HEAD/tree/trunk/doc/instead-manual.pdf
http://sourceforge.net/p/instead/code/HEAD/tree/trunk/doc/instead-modules.pdf

Если у вас возникают вопросы, вы можете зарегистрироваться на форуме INSTEAD и задавать их там:

http://instead.syscall.ru/forum

Также, вы можете посетить Jabber конференцию: instead@conference.jabber.ru

Следующие ресурсы также могут быть полезными:

История создания

Когда мы говорим «текстовое приключение» у большинства людей возникает один из двух привычных образов. Это либо текст с кнопками действий, например:

Вы видите перед собой стол. На столе лежит яблоко. Что делать?

1) Взять яблоко
2) Отойти от стола

Или, гораздо реже, это классические игры с текстовым вводом, где для управления игрой необходимо было вводить действия с клавиатуры.

Вы на кухне. Тут есть стол.
> осмотреть стол.
На столе есть яблоко.

У обоих подходов есть свои преимущества и недостатки.

Если говорить про первый подход, то он близок к жанру книг-игр и удобен больше для литературных текстов, которые описывают события, происходящие с главным героем, и не очень удобен для создания классических квестов, где главный герой исследует смоделированный в игре мир, свободно перемещаясь по нему и взаимодействуя с объектами этого мира.

Второй подход моделирует мир, но требует значительных усилий от автора игры, и, что более важно, более подготовленного игрока. Особенно, когда мы имеем дело с русским языком.

Проект INSTEAD был создан для написания другого типа игр, которые совмещают преимущества обоих подходов, одновременно пытаясь избежать их недостатков.

Мир игры на INSTEAD моделируется как при втором подходе, то есть в игре есть места (сцены) которые может посещать главный герой и объекты, с которыми он взаимодействует (включая живых персонажей). Игрок свободно изучает мир и манипулирует объектами. Причем, действия с объектами не прописаны в виде явных пунктов меню, а скорее напоминают классические графические квесты в стиле 90-х.

На самом деле, в INSTEAD есть множество незаметных на первый взгляд вещей, которые направлены на развитие выбранного подхода, и который делает процесс игры максимально динамичным и непохожим на привычные «текстовые квесты». Это подтверждается в том числе и тем, что на движке было выпущено множество замечательных игр, интерес к которым проявляют не только любители текстовых игр как таковых, но и люди не знакомые с данным жанром.

Перед изучением данного руководства, я рекомендую поиграть в классические игры INSTEAD, чтобы понять о чем идет речь. С другой стороны, раз вы здесь, то наверное вы уже сделали это.

Правда, не стоит пока изучать код этих игр, так как старые игры очень часто написаны неоптимально, с использованием устаревших конструкций. Текущая версия INSTEAD позволяет реализовывать код лаконичнее, проще и понятнее. Об этом и рассказывается в данном документе.

Если вас интересует история создания движка, то вы можете прочитать статью о том, как все начиналось: http://instead.syscall.ru/2010/05/history

Как выглядит классическая INSTEAD игра

Итак, как выглядит классическая INSTEAD игра?

Главное окно игры содержит информацию о статической и динамической части сцены, активные события и картинку сцены с возможными переходами в другие сцены (в графическом интерпретаторе).

Статическая часть сцены отображается только один раз, при показе сцены, или при повторении команды look (в графическом интерпретаторе – клик на названии сцены). Динамическая часть сцены составлена из описаний объектов сцены, она отображается всегда.

Игроку доступны объекты, доступные на любой сцене – инвентарь. Игрок может взаимодействовать с объектами инвентаря и действовать объектами инвентаря на другие объекты сцены или инвентаря.

Следует отметить, что понятие инвентаря является условным. Например, в «инвентаре» могут находиться такие объекты как «открыть», «осмотреть», «использовать» и т.д.

Действиями игрока могут быть:

  • осмотр сцены;
  • действие на объект сцены;
  • действие на объект инвентаря;
  • действие объектом инвентаря на объект сцены;
  • действие объектом инвентаря на объект инвентаря;
  • действие объектом сцены на объект сцены (режим scene_use);
  • действие объектом сцены на инвентарь (режим scene_use);
  • переход в другую сцену.

Как создавать игру

Игра представляет из себя каталог, в котором должен находиться скрипт (текстовый файл) main.lua. Другие ресурсы игры (скрипты на lua, графика и музыка) должны находиться в рамках этого каталога. Все ссылки на ресурсы делаются относительно текущего каталога – каталога игры.

В начале файла main.lua может быть определен заголовок, состоящий из тегов (строк специального вида). Теги должны начинаться с символов --: комментарий с точки зрения lua. На данный момент существует три тега.

Тег $Name: содержит название игры в кодировке UTF-8. Пример использования тега:

-- $Name: Самая интересная игра!$

Затем следует (желательно) задать версию игры:

-- $Version: 0.5$

И указать авторство:

-- $Author: Анонимный любитель текстовых приключений$

Если вы разрабатываете игру в Windows, то убедитесь, что ваш редактор поддерживает кодировку UTF-8 без BOM. Именно эту кодировку следует использовать при написании игры!

Сразу после заголовков вам необходимо указать версию STEAD API, которая требуется игре. На данный момент последняя версия 1.8.2.

instead_version "1.8.2"

Важно!

Если instead_version отсутствует, то STEAD API будет работать в режиме совместимости (устаревшее API).

Дело в том, что начиная с версии 1.2.0, в INSTEAD для автора появились новые возможности. При этом в движок была заложена идея постепенного развития API.

Как это работает?

Если вы пишете в начале игры:

instead_version "версия api"

То вы даете знать движку, что ваш код написан для INSTEAD >= 1.2.0 и при этом вам доступна та версия API, которую вы вписали. Например:

instead_version "1.8.1"

Сейчас версии API совпадают с версиями INSTEAD.

Но есть уже много игр, написанных до версии INSTEAD 1.2.0, и они работают на новых версиях INSTEAD. В этих играх нет instead_version и движок понимает, что игра написана для старой версии API.

Новое API дает множество преимуществ автору (снапшоты, глобальные переменные, изменяемые на лету функции, автоматическое форматирование, модули и пр..), а перенос старого кода на новое API тривиален. Поэтому нет большого смысла писать новые игры на старом API, что распространено из-за того, что для изучения INSTEAD были выбраны старые игры.

Важно!

Поэтому, не изучайте код игр прежде чтения этого руководства!

Далее, обычно следует указать модули, которые требуются игре. О модулях будет рассказано отдельно.

require "para" -- красивые отступы;
require "dash" -- замена символов два минуса на тире;
require "quotes" -- замена простых кавычек "" на типографские «»;

Кроме того, обычно стоит определить обработчики по-умолчанию: game.act, game.use, game.inv, о которых также будет рассказано ниже.

game.act = 'Не работает.';
game.use = 'Это не поможет.';
game.inv = 'Зачем мне это?';

Инициализацию игры следует описывать в функции init, которая вызывается движком в самом начале. В этой функции удобно инициализировать состояние игрока на начало игры, или какие-то другие действия, нужные для первоначальной настройки мира игры. Впрочем, функция init может быть и не нужна.

function init() -- добавим в инвентарь нож и бумагу
    take(knife);
    take(paper);
end

Графический интерпретатор ищет доступные игры в каталоге games. Unix-версия интерпретатора кроме этого каталога просматривает также игры в каталоге ~/.instead/games. Windows-версия: Documents and Settings/USER/Local Settings/Application Data/instead/games. В Windows- и standalone-Unix-версии игры ищутся в каталоге ./appdata/games, если он существует.

В некоторых сборках INSTEAD (в Windows, в Linux если проект собран с gtk и др.) можно открывать игру по любому пути из меню «Выбор игры». Либо, нажать f4. Если в каталоге с играми присутствует только одна игра, INSTEAD запустит ее автоматически, это удобно, если вы хотите распространять свою игру вместе с движком.

Таким образом, вы кладете игру в свой каталог и запускаете INSTEAD.

Важно!

При написании игры, настоятельно рекомендуется использовать отступы для оформления кода игры, как это сделано в примере из данного руководства, этим самым вы сократите количество ошибок и сделаете свой код наглядней!

Ниже приводится минимальный шаблон для вашей первой игры:

-- $Name: Моя первая игра$
-- $Version: 0.1$
-- $Author: Анонимный автор$
 
instead_version "1.8.2"
 
require "para" -- для оформления
require "dash"
require "quotes"
 
require "dbg" -- для отладки
 
game.act = 'Гм...';
game.use = 'Не сработает.';
game.inv = 'Зачем это мне?';
 
function init() 
-- инициализация, если она нужна
end

Основы отладки

Во время отладки (проверки работоспособности вашей игры) удобно, чтобы INSTEAD был запущен с параметром -debug, тогда в случае ошибок будет показана более подробная информация о проблеме в виде стека вызовов. Параметр -debug можно задать в ярлыке (если вы работаете в Windows), а для других систем, я думаю вы и так знаете как передавать параметры командной строки.

При отладке игры обычно нужно часто сохранять игру и загружать состояние игры. Вы можете использовать стандартный механизм сохранений через меню (или по клавишам f2/f3), или воспользоваться быстрым сохранением/загрузкой (клавиши f8/f9).

В режиме -debug вы можете перезапускать игру клавишами alt-r. В комбинации с f8/f9 это дает возможность быстро посмотреть изменения в игре после ее правки.

В режиме -debug Windows-версия INSTEAD создает консольное окно (в Unix версии, если вы запускаете INSTEAD из консоли, вывод будет направлен в нее) в которое будет осуществляться вывод ошибок. Кроме того, используя функцию print() вы сможете порождать свои сообщения с отладочным выводом. Например:

        act = function(s)
                print ("Act is here! "..stead.deref(s));
                ...
        end;

Не пугайтесь, когда вы прочитаете все руководство и начнете писать свою игру, вы, скорее всего, взглянете на этот пример с большим воодушевлением.

Также удобно воспользоваться модулем отладчика, для этого после записи instead_version добавьте:

require "dbg"

Отладчик доступен по клавише f7.

Во время отладки бывает удобно изучать файлы сохранений, которые содержат состояние переменных игры. Чтобы не искать каждый раз файлы сохранений, создайте каталог saves в директории с вашей игрой (в том каталоге, где содержится main.lua) и игра будет сохраняться в saves. Этот механизм также будет удобен для переноса игры на другие компьютеры.

Возможно (особенно, если вы пользуетесь Unix системами) вам понравится идея проверки синтаксиса ваших скриптов через запуск компилятора luac. В Windows это тоже возможно, нужно только установить выполняемые файлы lua для Windows (http://luabinaries.sourceforge.net)/ и воспользоваться luac52.exe.

1. Сцена

Сцена (или комната) – это единица игры, в рамках которой игрок может изучать все объекты сцены и взаимодействовать с ними. Например, сценой может быть комната, в которой находится герой. Или участком леса, доступным для наблюдения.

В любой игре должна быть сцена с именем main. Именно с нее начнется и ваша игра!

main = room {
	nam = "Главная комната";
	dsc = [[Вы в большой комнате.]];
}

Запись означает создание объекта (так как почти все сущности в INSTEAD это объекты) main типа room (комната). Текстовый идентификатор main, по которому можно обращаться к комнате, будем в дальнейшем называть идентификатором комнаты.

У каждого объекта игры есть атрибуты и обработчики событий. В данном примере есть два атрибута: nam и dsc. Атрибуты разделяются разделителем (в данном примере – символом точка с запятой ;).

Обычно, атрибуты могут быть текстовыми строками, функциями-обработчиками и булевыми значениями.

Например, обязательный атрибут nam для сцены это то, что будет заголовком сцены при ее отображении. Имя сцены также используется для ее идентификации при переходах. Вообще, nam это обязательный атрибут любого объекта. Часто вы можете работать с объектом по его имени, а не по идентификатору.

Атрибут dsc – это описание статической части сцены, которое выводится один раз при входе в сцену или при явном осмотре сцены.

Вы можете использовать символ , вместо ; для разделения атрибутов. Например:

main = room {
        nam = 'Главная комната',
        dsc = 'Вы в большой комнате.',
}

Как вы помните, INSTEAD спрячет статическое описание сцены, после того, как игрок его прочитает при входе в сцену. Если для вашего творческого замысла необходимо, чтобы описание статической части сцены выводилось каждый раз, вы можете определить для своей игры параметр forcedsc (в начале игры).

game.forcedsc = true;

Или, аналогично, задать атрибут forcedsc для конкретных сцен.

main = room {
        forcedsc = true;
        nam = 'Главная комната';
        dsc = [[Вы в большой комнате.]];
}

Но лучше всего на данном этапе не использовать эту технику, так как классические игры INSTEAD не используют ее, а движок по-умолчанию оптимизирован именно на стандартное поведение.

В данном примере все атрибуты – строковые. Строка может быть записана в одинарных или двойных кавычках:

main = room {
        nam = 'Главная комната';
        dsc = "Вы в большой комнате.";
}

Для длинных описаний удобно использовать запись вида:

dsc = [[ Очень длинное описание... ]];

При этом переводы строк игнорируются. Если вы хотите, чтобы в выводе описания сцены присутствовали абзацы – используйте символ ^.

dsc = [[ Первый абзац. ^^
Второй Абзац.^^
 
Третий абзац.^
На новой строке.]];

Я рекомендую всегда использовать [[ и ]] для dsc.

На самом деле, имя nam объекта и его отображение (в данном случае то, как сцена будет выглядеть для игрока в виде надписи сверху окна) можно разделять. Для этого существует атрибут disp. Если он не задан, то считается, что отображение равняется имени, но если это не так, то для функций отображения используется disp, например:

main = room {
        nam = 'Начало';
        disp = 'Моя комната';
        dsc = [[Я нахожусь в своей комнате.]];
}

2. Объекты

Объекты – это единицы сцены, с которыми взаимодействует игрок.

tabl = obj {
        nam = 'стол';
        dsc = 'В комнате стоит {стол}.';
        act = 'Гм... Просто стол...';
};

Обязательное имя объекта nam используется при попадании его в инвентарь, а также в текстовом интерпретаторе для адресации объекта. Если у объекта определен disp, то при попадании в инвентарь для его отображения будет использоваться именно этот атрибут. Например:

tabl = obj {
        nam = 'стол';
        disp = 'угол стола';
        dsc = 'В комнате стоит {стол}.';
        tak = 'Я взялся за угол стола';
        inv = 'Я держусь за угол стола.';
};

Вы можете скрывать отображение предмета в инвентаре, если disp атрибут будет равен false.

dsc – описание объекта. Оно будет выведено в динамической части сцены. Фигурными скобками отображается фрагмент текста, который будет являться ссылкой в окне INSTEAD. Если объектов в сцене много, то все описания выводятся одно за другим, через пробел,

act – это обработчик события, который вызывается при действии пользователя (действие на объект сцены, обычно – клик мышкой по ссылке). Его задача – вывод (возвращение) строки текста, которая станет частью событий сцены, или логического значения (см. раздел 5).

Важно!

ВНИМАНИЕ: в пространстве имен lua уже существуют некоторые объекты (таблицы), например: table, io, string… Будьте внимательны при создании объекта. Например, в приведенном примере традиционно используется tabl, а не table. Хотя в новых версиях INSTEAD эта проблема практически полностью решена, и в данном примере можно было бы использовать и идентификатор table.

В любом случае, вы не можете использовать дескрипторы объектов, совпадающие с именами конструкторов INSTEAD, такими как: obj, game, player, list, room, dlg.

3. Добавляем объекты в сцену

Ссылкой на объект называется текстовая строка, содержащая дескриптор объекта. Например: 'tabl' – ссылка на объект с дескриптором tabl.

Для того, чтобы поместить в сцену объекты, существует два пути.

Во-первых, при создании комнаты можно определить список obj, состоящий из ссылок на объекты:

main = room {
	nam = 'Главная комната';
	dsc = [[Вы в большой комнате.]];
	obj = { 'tabl' };
};

Теперь, при отображении сцены мы увидим объект «стол» в динамической части.

Вы можете использовать дескрипторы объектов (в данном примере, указав tabl без кавычек) но только в том случае, если объект был определен ранее (перед определением комнаты). По этой причине использование кавычек всегда безопасней и рекомендуется как предпочтительное.

Если в комнату помещаются несколько объектов, разделяйте их ссылки запятыми, например:

	obj = { 'tabl', 'apple' };

Вы можете вставлять переводы строк для наглядности, когда объектов много, например, так:

	obj = { 
                 'tabl', 
                 'apple',
                 'knofe', 
        };

Второй способ размещения предметов заключается в вызове функций, которые поместят объекты в требуемые комнаты. Он будет рассмотрен в дальнейшем.

4. Объекты, связанные с другими объектами

Объекты тоже могут содержать атрибут obj. При этом, при выводе объектов, INSTEAD будет разворачивать списки последовательно. Такая техника может использоваться для создания объектов-контейнеров или просто для связывания нескольких описаний вместе. Например, поместим на стол яблоко.

apple = obj {
	nam = 'яблоко';
	dsc = [[На столе лежит {яблоко}.]];
	act = 'Взять что-ли?';
};
 
tabl = obj {
	nam = 'стол';
	dsc = [[В комнате стоит {стол}.]];
	act = 'Гм... Просто стол...';
	obj = { 'apple' };
};

При этом, в описании сцены мы увидим описание объектов стол и яблоко, так как apple – связанный с tabl объект и движок при выводе объекта tabl вслед за его dsc выведет последовательно dsc всех вложенных в него объектов.

Также, следует отметить, что оперируя объектом стол (например, перемещая его из комнаты в комнату) мы автоматически будем перемещать и вложенный в него объект яблоко.

5. Атрибуты и обработчики как функции

Большинство атрибутов и обработчиков могут быть функциями. Так, например:

nam = function()
	p 'яблоко';
end;

Пример не очень удачен, так как проще было бы написать nam = 'яблоко', но показывает синтаксис записи функции.

Основная задача такой функции – это возврат строки или булевого значения. Сейчас мы рассматриваем возврат строки. Для возврата строки вы можете использовать явную запись в виде:

      return "яблоко";

При этом ход выполнения кода функции прекращается и она возвращает движку строку. В данном случае «яблоко».

Более привычным способом вывода являются функции:

  • p («текст») – вывод текста и пробела;
  • pn («текст») – вывод текста с переводом строки;
  • pr («текст») – вывод текста как есть;

Если p/pn/pr вызывается с одним текстовым параметром, то скобки можно опускать.

pn "Нет скобкам!";

Все эти функции дописывают текст в буфер и при возврате из функции возвращают его движку. Таким образом вы можете постепенно формировать вывод за счет последовательного выполнения p/pn/pr. Имейте в виду, что автору крайне редко необходимо явно форматировать текст, особенно если это описание объектов, движок сам расставляет необходимые переводы строк и пробелы для разделения информации разного рода и делает это унифицированным способом.

Вы можете использовать .. или , для склейки строк. Тогда ( и ) обязательны. Например:

pn ("Строка 1".." Строка 2");
pn ("Строка 1", "Строка 2");

Для очистки буфера (если это нужно), используйте pclr(). Если вам нужно получить содержимое текущего буфера – pget().

Основное отличие атрибутов от обработчиков событий состоит в том, что обработчики событий могут менять состояние игрового мира, а атрибуты нет. Поэтому, если вы оформляете атрибут (например, nam или dsc) в виде функции, помните, что задача атрибута это возврат значения, а не изменение состояния игры! Дело в том, что движок обращается к атрибутам в те моменты времени, которые обычно четко не определены, и не связаны явно с какими-то игровыми процессами!

Важно!

Еще одной особенностью обработчиков является тот факт, что вы не должны ждать каких то событий внутри обработчика. То есть, не должно быть каких-то циклов ожидания, или организации задержек (пауз). Дело в том, что задача обработчика – изменить игровое состояние и отдать управление INSTEAD, который визуализирует эти изменения и снова перейдет в ожидание действий пользователя. Если вам требуется организовать задержки вывода, вам придется воспользоваться модулем «timer» или «cutscene».

Функции практически всегда содержат условия и работу с переменными. Например:

apple = obj {
	nam = 'яблоко';
	dsc = function(s)
		if not s._seen then
			p 'На столе {что-то} лежит.';
		else
			p 'На столе лежит {яблоко}.';
		end
	end;
	act = function(s)
		if s._seen then
			p 'Это яблоко!';
		else
			s._seen = true;
			p 'Гм... Это же яблоко!';
		end
	end;
};

Если атрибут или обработчик оформлен как функция, то всегда первый аргумент функции (s) – сам объект. То есть, в данном примере, s это синоним apple. Когда вы работаете с самим объектом в функции, удобнее использовать параметр, а не дескриптор, так как при переименовании дескриптора вам не придется переписывать вашу игру.

В данном примере при показе сцены в динамической части сцены будет выведен текст: 'На столе что-то лежит'. При взаимодействии с 'что-то', переменная _seen объекта apple будет установлена в true – истина, и мы увидим, что это было яблоко.

Как видим, синтаксис оператора if довольно очевиден. Для наглядности, несколько примеров.

if <выражение> then <действия> end

if have (apple) then
    p 'У меня есть яблоко!'
end

if <выражение> then <действия> else <действия иначе> end

if have (apple) then
    p 'У меня есть яблоко!'
else
    p 'У меня нет яблока!'
end

if <выражение> then <действия> elseif <выражение 2> then <действия 2> else <иначе> end и т.д.

if have (apple) then
    p 'У меня есть яблоко!'
elseif have (fork)
    p 'У меня нет яблока, но есть вилка!'
else
    p 'У меня нет ни яблока, ни вилки!'
end

Выражение в операторе if может содержать логическое «и» (and), «или» (or), «отрицание» (not) и скобки (, ) для задания приоритетов. Запись вида if <переменная> then означает, что переменная не равна false и определена. Равенство описывается как ==, неравенство ~=.

if not have (apple) and not have(fork) then
    p 'У меня нет ни яблока, ни вилки!'
end
 
...
if w ~= apple then
   p 'Это не яблоко.';
end
...
 
if time() == 10 then
   p '10 й ход настал!'
end

Важно!

В ситуации когда переменная не была определена, но используется в условии, считается, что переменная равна пустоте (nil). Так, проверку на существование переменной можно было бы написать следующим образом:

if z == nil then
        p "Глобальная переменная z не существует."
end

В то же время, при анализе несуществующих переменные в условиях, считается, что они дают «ложь». То есть, если z не была определена, то:

if not z then
       p "Переменная z или не определена, или равна false."
end

С другой стороны:

if z == false then
       p "Переменная z равна false."
end

Учитывайте это при отладке своей игры, так как если вы описались в имени переменной при задании условия, то условие будет работать (без выдачи ошибки), но игровая логика станет некорректной.

Запись s._seen означает, что переменная _seen размещена в объекте s (то есть apple). Помните, мы назвали первый параметр функции s (от self), а первый параметр – это дескриптор текущего объекта. Подчеркивание означает, что эта переменная попадет в файл сохранения игры. Файлы сохранения содержат в себе изменения, которые произошли с игровым миром относительно первоначальной инициализации.

На самом деле, есть два способа определения переменных, попадающих в файл сохранения игры. Либо вы работаете с переменными, имена которых начинаются с символа _, и тогда вы можете создавать такие переменные на лету, либо вы должны явно определять (инициализировать) переменные с помощью конструкций var и global.

global { -- определение глобальных переменных
    global_var = 1; -- число   
    some_number = 1.2; -- число
    some_string = 'строка';
    know_truth = false; -- булево значение
}
main = room {
    var { -- определение переменных комнаты
        i = "a";
        z = "b";
    };
    nam = 'Моя первая комната';
    var {
        new_var = 3;
    };
    dsc = function(s)
        p ("i == ", s.i);
        p ("new_var == ", s.new_var);
        p ("global_var == ", global_var);
    end;

Если вы пользуетесь var или global, обязательно присваивайте переменным первоначальные значения! Вы можете инициализировать переменную значением null, если переменная в дальнейшем должна будет хранить дескриптор объекта, а при инициализации этот объект неизвестен. Другими словами, null – это объект-пустышка.

Важно!

Итак, переменные записываются в файл сохранения, если они размещены в одном из перечисленных типов объектов: комната, объект, игра, игрок, глобальное пространство, при этом начинаются с символа _ или определены с помощью var и global. При разработке пользуйтесь простым правилом: всегда объявляйте переменные в блоках var или global, если они будут меняться. Данный способ наиболее нагляден.

В файл сохранения могут быть записаны переменные следующих типов:

  • строки;
  • булевы величины;
  • числовые величины;
  • дескрипторы объектов;
  • конструкции code;

Конструкция code – это другой способ определения функций

	dsc = code [[
		if not self._seen then
			p 'На столе {что-то} лежит.';
		else
			p 'На столе лежит {яблоко}.';
		end
	]],

Обратите внимание, что текст функции задан в скобках [[ ]], и это значит, что текстовые параметры внутри скобок придется задавать кавычками или апострофами.

При вызове code автоматически создаются некоторые переменные. При этом в self записан текущий объект, arg1 … arg9 и массив args[] – параметры.

Запись code имеет смысл определять в случае, если функция очень короткая, например:

    act = code [[ walk(sea) ]];

Либо, если вы хотите переопределять функции на лету (Конструкции code сохраняются, если присвоены сохраняемым переменным).

    var { 
       act = code [[ walk(sea) ]];
    };
...
    s.act = code [[ walk(ground) ]];

Правда, обычно это очень плохой стиль программирования игры. Иногда при написании функции вам могут понадобиться вспомогательные переменные, которые хранят какие-то промежуточные значения, например:

kitten = obj {
        nam = 'котенок';
        var { state = 1 };
        act = function(s)
                s.state = s.state + 1
                if s.state > 3 then
                        s.state = 1
                end
                p [[Муррр!]]
        end;
        dsc = function(s)
                local dsc = {
                        "{Котенок} мурлычет.",
                        "{Котенок} играет.",
                        "{Котенок} облизывается.",
                };
                p(dsc[s.state])
        end;
end

Как видим, в функции dsc мы определили массив dsc. local указывает на то, что он действует в пределах функции dsc. Если вам нужны вспомогательные переменные в функциях, всегда пишите перед их определением local. Конечно, данный пример можно было написать и так:

dsc = function(s)
        if s.state == 1 then
                p "{Котенок} мурлычет."
        elseif s.state == 2 then
                p "{Котенок} играет."
        else
                p "{Котенок} облизывается.",
        end

Вы можете писать свои вспомогательные функции и использовать их из своей игры, например:

function mprint(n, ...)
        local a = {...}; -- временный массив с аргументами к функции
        p(a[n]) -- выведем n-й элемент массива
end
....
        dsc = function(s)
                mprint(s.state, {
                        "{Котенок} мурлычет.",
                        "{Котенок} играет.",
                        "{Котенок} облизывается." });
        end;

Пока не обращайте внимания на данный пример, если он кажется вам сложным.

Иногда может понадобиться обработчик, который совершал бы некоторое действие, но не выводил никакого описания. Например:

button = obj {
	nam = "кнопка";
        var {
                on = false;
        };
	dsc = "На стене комнаты видна большая красная {кнопка}.";
	act = function (s)
         	s.on = true
                return true
        end;
}
 
r12 = room {
	nam = 'Комната';
        forcedsc = true;
	dsc = function (s)
                if not button.on then
                        p [[Я нахожусь в комнате.]];
                else
                        p [[Я нахожусь в комнате с нажатой кнопкой.]];
                end
        end,
	obj = {'button'}
}

В данном случае обработчик act нужен для того, чтобы поменять описание комнаты, и не нужно, чтобы он выводил результат действия. Если честно, это плохой пример, и его искусственность показывает, что вам вряд ли понадобится делать обработчики без реакции. Действительно, почему бы в приведенном примере не вывести в act что-то вроде: «Я нажал на кнопку»? Кроме того, нам пришлось еще включить режим forcedsc. Тем не менее, необходимость пустой реакции может возникнуть.

Для отключения результата можно вернуть из обработчика значение true – это будет означать, что действие успешно выполнено, но не требует дополнительного описания.

Если необходимо показать, что действие невыполнимо, ничего не возвращайте. При этом будет отображено описание по умолчанию, заданное с помощью обработчика game.act. Обычно описание по умолчанию содержит описание невыполнимых действий. Что-то вроде:

game.act = 'Гм... Не получается...';

Обратите внимание, что для создания динамического описания сцены в рассмотренном выше примере используется функция dsc. Почему бы не менять значение dsc на лету? На самом деле такой вариант сработает только в том случае, если dsc объявить в блоке var. Например, данный пример мог бы выглядеть так:

button = obj {
	nam = "кнопка";
	dsc = "На стене комнаты видна большая красная {кнопка}.";
	act = function (s)
         	here().dsc = [[Теперь комната выглядит совсем по-другому!!!]];
	        pn [[После того как я нажал на кнопку, комната преобразилась. 
		  Книжный шкаф куда-то исчез вместе со столом и комодом, а на его месте 
		  появился странного вида аппарат.]];
        end,
}
 
r12 = room {
	nam = 'Комната';
        var {
	        dsc = [[Я нахожусь в комнате.]];
        };
	obj = {'button'}
}

Правда, такой стиль программирования не рекомендуется. Во-первых, вы запутываете код игры, так как тексты описаний перестают быть локализованными в объектах, которые они описывают. Во-вторых, файлы сохранений будут занимать гораздо больший объем. Я советую всегда использовать функции для изменяющихся атрибутов и реакций, а не менять их значение динамически извне.

Иногда возникает необходимость вызвать обработчик вручную. Для этого используется lua синтаксис вызова метода. Объект:метод(параметры). Например:

apple:act() -- вызовем обработчик ''act'' у объекта ''apple''. 

На самом деле, это синоним следующей записи:

apple.act(apple) -- вызовем обработчик ''act'' у объекта ''apple'' 
-- (явно указав 1-й параметр)

Однако, такой метод работает только в том случае, если вызываемый метод оформлен как функция. Вы можете воспользоваться stead.call() для вызова обработчика тем способом, каким это делает сам INSTEAD. (Будет описано в дальнейшем).

6. Инвентарь

Простейший вариант сделать объект, который можно брать – определить обработчик tak.

Например:

apple = obj {
        nam = 'яблоко';
        dsc = 'На столе лежит {яблоко}.';
        inv = function(s)
                remove(s, me()); -- удалить яблоко из инвентаря
                p 'Я съел яблоко.'
        end;
        tak = 'Вы взяли яблоко.';
};

При этом, при действии игрока на объект «яблоко» (щелчок мыши на ссылку в сцене) – яблоко будет убрано из сцены и добавлено в инвентарь. При действии игрока на инвентарь (двойной щелчок мыши на названии объекта) – вызывается обработчик inv.

В нашем примере, при действии игроком на яблоко в инвентаре – яблоко будет съедено.

Конечно, мы могли бы реализовать код взятия объекта в act, например, так:

apple = obj {
        nam = 'яблоко';
        dsc = 'На столе лежит {яблоко}.';
        inv = function(s)
                remove(s, me()); -- удалить яблоко из инвентаря
                p 'Я съел яблоко.'
        end;
        act = function(s)
                take(s)
                p 'Вы взяли яблоко.';
        end
};

Если у объекта в инвентаре не объявлен обработчик inv будет вызван game.inv.

7. Переходы между сценами

Традиционные переходы в INSTEAD выглядят как ссылки над описанием сцены. Для определения таких переходов между сценами используется атрибут сцены – список way. В списке определяются комнаты, в виде ссылок на комнаты или дескрипторов комнат (аналогично списку obj). Например:

room2 = room {
	nam = 'Зал';
	dsc = 'Вы в огромном зале.';
	way = { 'main' };
};
 
main = room {
	nam = 'Главная комната';
	dsc = 'Вы в большой комнате.';
	obj = { 'tabl' };
	way = { 'room2' };
};

При этом, вы сможете переходить между сценами main и room2. Как вы помните, nam (или disp) может быть функцией, и вы можете генерировать имена сцен на лету, например, если вы хотите, чтобы игрок не знал название сцены, пока не попал на нее. Хотя для этой цели есть более удачные средства, вроде модуля wroom, о котором будет рассказано позже.

При переходе между сценами движок вызывает обработчик exit из текущей сцены и enter в той сцене, куда идет игрок. Например:

room2 = room {
	enter = 'Вы заходите в зал.';
	nam = 'Зал';
	dsc = 'Вы в огромном зале.';
	way = { 'main' };
	exit = 'Вы выходите из зала.';
};

Конечно, как и все обработчики, exit и enter могут быть функциями. Тогда первый параметр это (как всегда) сам объект, а второй это комната куда игрок хочет идти (для exit) или из которой уходит (для enter). Например:

room2 = room {
	enter = function(s, f)
		if f == main then
			p 'Вы пришли из комнаты.';
		end
	end;
	nam = 'Зал';
	dsc = 'Вы в огромном зале.';
	way = { 'main' };
	exit = function(s, t)
		if t == main then
			p 'Я не хочу назад!'
                        return false
		end
	end;
};

Как видим, эти обработчики могут возвращать два значения: строку и статус. В нашем примере функция exit вернет false, если игрок попытается уйти из зала в комнату main. false означает, что переход не будет выполнен. Такая же логика работает и для enter. Кроме того, она работает и для обработчика tak.

Вы можете сделать возврат статуса и другим способом, если это кажется вам удобным:

        return "Я не хочу назад", false

Если же вы используете функции p/pn/pr, то просто возвращайте статус операции с помощью завершающего return, как показано в примере выше.

Важно!

Следует отметить, что при вызове обработчика enter указатель на текущую сцену (here()) может быть еще не изменен!!! В INSTEAD есть обработчики left (уход из комнаты) и entered (заход в комнату), которые вызываются уже после того, как переход произошел. Эти обработчики рекомендованы к использованию всегда, когда нет необходимости запрещать переход.

Иногда есть необходимость, чтобы название перехода отличалось от названия комнаты, в которую ведет этот переход. Существует несколько способов сделать это. Например, с помощью vroom.

room2 = room {
	nam = 'Зал';
	dsc = 'Вы в огромном зале.';
	way = { vroom('В главную комнату', 'main') };
};
 
main = room {
	nam = 'Главная комната';
	dsc = 'Вы в большой комнате.';
	obj = { 'tabl' };
	way = { vroom('В зал', 'room2') };
};

На самом деле, функция vroom возвращает комнату с именем, который равен первому параметру, и специальной функцией enter, которая перенаправляет игрока в комнату заданную вторым параметром vroom.

Таким образом, vroom позволяет именовать переходы удобным способом. Обратите внимание, что в room2 вторая комната задана через ссылку, так как на данный момент main еще не объявлена. Во второй комнате переход также описан в виде ссылки, для общности, хотя в этот момент комната room2 уже объявлена, и мы можем убрать апострофы вокруг room2 во втором параметре vroom.

Если вам не хватает возможностей vroom, вы можете воспользоваться модулем wroom.

Иногда вам может потребоваться включать и выключать переходы. На самом деле это требуется не часто. Идея переходов состоит в том, что переход виден даже тогда, когда он невозможен. Например, представим себе сцену перед домом у входной двери. Войти в дом нельзя, так как дверь закрыта.

Нет никакого смысла прятать переход «дверь». Просто в функции enter сцены внутри дома мы проверяем, а есть ли у героя ключ? И если ключа нет, говорим о том, что дверь закрыта и запрещаем переход. Это повышает интерактивность и упрощает код. Если же вы хотите сделать дверь объектом сцены, поместите ее в комнату, но в act обработчике сделайте осмотр двери, или дайте возможность игроку открыть ее ключом (как это сделать - мы рассмотрим позже), но сам переход дайте сделать игроку привычным способом через строку переходов.

Тем не менее, бывают ситуации, когда переход не очевиден и он появляется в результате каких-то событий. Например, мы осмотрели часы и увидели там секретный лаз.

clock = obj {
        nam = 'часы';
        dsc = [[Тут есть старинные {часы}.]];
        act = function(s)
                path('В часы'):enable()
                p [[Вы видите, что в часах есть потайной ход!]];
        end;
}
hall = room {
	nam = 'Зал';
	dsc = 'Вы в огромном зале.';
        obj = { 'clock' };
	way = { vroom('В часы', 'inclock'):disable() };
};

В данном примере, мы создали отключенный переход, за счет вызова метода disable у комнаты созданной с помощью vroom. Метод disable есть у всех объектов, он переводит объект в отключенное состояние, которое означает, что объект перестает рассматриваться движком как существующий. Кроме того, этот метод снова возвращает объект (уже в выключенном состоянии). Замечательным свойством отключенного объекта является то, что его можно включить с помощью метода :enable();

Кстати, если вам удобнее, вы можете использовать более привычную запись функций:

way = { disable(vroom('В часы', 'inclock')) };

Далее, когда игрок нажимает на ссылку, описывающую часы, вызывается обработчик act, который с помощью функции path() находит в way текущей комнаты переход 'В часы' и вызывает для него метод enable(). Альтернативный вариант записи, если он кажется вам удобней:

        act = function(s)
                enable(path('В часы')) 
                -- вы можете опускать () если у функции 1 параметр, 
                -- таким образом запись enable( path 'В часы' ) 
                -- тоже будет корректной (и более простой)
                p [[Вы видите, что в часах есть потайной ход!]];
        end;

Если бы нам было необходимо проделать такую процедуру с другой комнатой, то мы бы указали второй параметр при вызове path. Например:

        path('В часы', room312):enable();

Если вам не нравится, что в вашей игре есть привязка к имени перехода 'В часы', то вы можете использовать переменные:

path_clock = vroom('В часы', 'inclock');
 
clock = obj {
        nam = 'часы';
        dsc = [[Тут есть старинные {часы}.]];
        act = function(s)
                path_clock:enable()
                p [[Вы видите, что в часах есть потайной ход!]];
        end;
}
hall = room {
	nam = 'Зал';
	dsc = 'Вы в огромном зале.';
        obj = { 'clock' };
	way = { path_clock:disable() };
};

Если вы не используете vroom, вы можете включать и выключать сами комнаты:

inclock = room {
        nam = 'Внутри';
        dsc = [[Тут темно.]];
}:disable();
-- вместо приписки :disable() можно написать
-- inclock:disable()
-- или disable(inclock)
 
clock = obj {
        nam = 'часы';
        dsc = [[Тут есть старинные {часы}.]];
        act = function(s)
                inclock:enable()
                p [[Вы видите, что в часах есть потайной ход!]];
        end;
}
hall = room {
	nam = 'Зал';
	dsc = 'Вы в огромном зале.';
        obj = { 'clock' };
	way = { 'inclock' };
};

На самом деле, данными вещами не стоит злоупотреблять. Простые игры могут вполне обходиться обычными переходами в виде списка комнат.

8. Действие объектов друг на друга

Игрок может действовать объектом инвентаря на другие объекты. Для этого он щелкает мышью на предмет инвентаря, а затем, на предмет сцены. При этом вызывается обработчик use у объекта, которым действуют, и used – на который действуют.

Например:

knife = obj {
	nam = 'нож';
	dsc = 'На столе лежит {нож}';
	inv = 'Острый!';
	tak = 'Я взял нож!';
	use = 'Вы пытаетесь использовать нож.';
};
 
tabl = obj {
	nam = 'стол';
	dsc = 'В комнате стоит {стол}.';
	act = 'Гм... Просто стол...';
	obj = { 'apple', 'knife' };
	used = 'Вы пытаетесь сделать что-то со столом...';
};

Если игрок возьмет нож и использует его на стол – то он увидит текст обработчиков use (у объекта knife) и used (у объекта tabl). use и used, очевидно, могут быть функциями.

Тогда, в случае функции use, первый параметр к функции – сам объект, которым осуществляется действие, а второй параметр – объект, на который направлено действие. В случае функции used, первый параметр – сам объект, на который производится действие, а второй параметр – объект, которым осуществляется действие.

То есть, первый параметр это как всегда сам объект, а второй – объект на который направлено действие в случае use и объект, которым действие осуществляется в случае used.

use может вернуть статус false, в этом случае обработчик used не вызовется (если он вообще был). Статус обработчика used игнорируется.

Пример:

knife = obj {
	nam = 'нож';
	dsc = 'На столе лежит {нож}';
	inv = 'Острый!';
	tak = 'Я взял нож!';
	use = function(s, w)
		if w ~= tabl then
			p 'Не хочу это резать.'
                        return false
		else
			p 'Вы вырезаете на столе свои инициалы.'
		end
	end
};

В примере выше нож можно использовать только на стол.

Если и use и used ничего не вернут (или их нет), вызовется обработчик по-умолчанию game.use.

Использовать use или used это вопрос личных предпочтений, однако, всегда следует стараться локализовать код рядом с объектом, к которому он относится. Например, если сделать объект «мусорка» и дать возможность игроку выбрасывать в нее все предметы, то очевидным решением здесь будет обработчик used у мусорки.

trash = obj {
        nam = 'мусорка';
        dsc = [[Я вижу {мусорку}.]];
        act = 'Не полезу я туда.';
        used = function(s, w)
                remove(w, me())
                p [[Мне это не нужно больше.]];
        end
}

При одновременном использовании use и used могут быть проблемы. Например, пусть у игрока есть нож, при использовании которого на все предметы, кроме яблока, выдается сообщение «Я не хочу это резать.».

При применении ножа на мусорку, игроку будет выдано «Я не хочу это резать.», а потом нож навсегда сгинет в ее недрах (так мы написали обработчик used); Конечно, в use ножа можно написать:

p "Я не хочу это резать."
return false -- прервать цепочку (не вызывать used)

Но это не очень удобно. Для решения этой проблемы можно воспользоваться модулем nouse.

...
require "nouse"
 
...
knife = obj {
	nam = 'нож',
	use = function(s, w)
                if w ~= apple then -- неравенство
                        return
                end
                if w.knife then
                        return "Я уже почистил его."
                end
                w.knife = true
	        p 'Я почистил яблоко.'
	end;
        nouse = [[Не хочу это резать.]];
};

Обработчик nouse объекта вызывается в том случае, если ни use ни used не вернули реакции. Если и nouse объекта не содержит реакции, то вызовется noused страдательного объекта. Если и в таком случае реакция не прописана, вызовется game.nouse;

Конечно, все обработчики могут быть функциями с тремя параметрами. Сам объект (или объект game в случае game.nouse), объект которым действуем и страдательный объект.

Важно!

Модуль «nouse» переопределяет функцию game.use, поэтому используйте game.nouse если вы включаете модуль 'nouse' в свою игру.

Я рекомендую использовать модуль «nouse» всегда, так как код игры становится более наглядным.

На самом деле, в INSTEAD играх можно действовать не только предметом инвентаря на предмет сцены, но и предметом сцены на предмет сцены (и даже предметом сцены на инвентарь). Этот механизм вряд ли действительно стоит использовать, но тем не менее, определив булевый атрибут scene_use в объекте или у игры (game.scene_use), вы можете управлять моментом, когда этот режим доступен.

Например: game.scene_use = true.

Атрибут может быть задан функцией, возвращающей булево значение (true или false).

9. Объект "player"

Игрок в STEAD представлен объектом pl. Тип объекта – player. В движке объект создается следующим образом:

pl = player {
        nam = "Incognito";
        where = 'main';
        obj = { };
};

Атрибут obj представляет собой инвентарь игрока. Обычно, нет смысла переопределять объект типа player, однако, если вы хотите создать переменные, которые бы хранились в игроке, вы можете сделать это:

pl = player {
        nam = "Василий";
        where = 'main';
        var { power = 100 };
        obj = { 'apple' }; -- заодно добавим яблоко в инвентарь
};

В INSTEAD есть возможность создавать нескольких игроков и переключаться между ними. Для этого служит функция change_pl(). В качестве параметра передайте функции требуемый объект типа player. Функция переключит текущего игрока, и при необходимости, осуществит переход в комнату, где находится новый игрок.

Функция me() всегда возвращает текущего игрока. В большинстве игр me() == pl.

10. Объект ''game''

Игра также представлена объектом game с типом game. В движке он определяется следующим образом:

game = game {
        codepage = "UTF-8",
	nam = "INSTEAD -- Simple Text Adventure interpreter v"..
                       stead.version.." '2013 by Peter Kosyh",
	dsc = [[
Commands:^
    look(or just enter), act <on what> (or just what), use <what> [on what], 
    go <where>,^
    back, inv, way, obj, quit, save <fname>, load <fname>.]],
	pl ='pl',
	showlast = true,
        _scripts = {},
};

Как видим, объект хранит в себе указатель на текущего игрока (pl) и некоторые параметры. Не существует возможности пересоздать объект game, к счастью, это и не требуется. Однако, вам придется иногда менять некоторые атрибуты.

Например, вы можете указать в начале своей игры кодировку текста следующим образом:

game.codepage="cp1251"; 

На самом деле, не стоит этого делать. Лучше настройте свой редактор на использование UTF-8. Переопределение кодировки это экстренная мера, например, для игр написанных URQL, которые могут быть запущены в INSTEAD с помощью соответствующего модуля.

Кроме того, объект game может содержать обработчики по умолчанию act, inv, use, которые будут вызваны, если в результате действий пользователя не будут найдены никакие другие обработчики. Например, вы можете написать в начале игры:

game.act = 'Не получается.';
game.inv = 'Гм.. Странная штука..';
game.use = 'Не сработает...';

Всегда определяйте эти обработчики в своей игре. В случае, если вы используете модуль «nouse», вместо game.use задавайте game.nouse.

11. Атрибуты-списки

Атрибуты-списки (такие как way или obj) позволяют работать со своим содержимым с помощью набора методов. Атрибуты-списки призваны сохранять в себе списки объектов. На самом деле, вы можете создавать списки для собственных нужд, при этом нет необходимости вставлять список в var или global, например:

treasures = list { 'gold', 'silver' };

Хотя обычно, это не требуется.

Методы списков: add, del, look, srch, purge, replace. Из них наиболее часто используемые: add и del.

  • add – добавляет в список объект;
  • catcat(b, [pos]) – добавляет в список содержимое списка b в позицию pos;
  • zap – обнулить список;
  • del – удаляет объект из списка (если он не выключен);
  • purge – удаляет даже выключенный объект;
  • srch – выполняет поиск объекта. Возвращает два значения: элемент списка и индекс (если элемент найден в списке);
  • replace – замена объекта другим replace(old, new);
  • enable – включение объекта (если он найден в списке);
  • disable – выключение объекта (если он найден в списке);
  • enable_all – включить все объекты в списке;
  • disable_all – выключить все объекты в списке;

Следует отметить, что параметром add, del, purge, replace и srch и других методов может быть не только сам объект (дескриптор), но и имя объекта (атрибут nam).

Самый часто используемый пример для работы со списками это конструкция вида: inv():del('apple');

inv() – это функция, которая возвращает список-инвентарь. del после : – метод, удаляющий элемент инвентаря.

Аналогично, собственная реализация tak может быть такой:

knife = obj {
	nam = 'нож',
	dsc = 'На столе лежит {нож}',
	inv = 'Острый!',
	act = function(s)
		objs():del(s);
		inv():add(s);
	end,
};

objs() – это функция, которая возвращает список объектов текущей комнаты. Либо любой другой комнаты, если указать ее в качестве параметра к objs().

Для получения списка way используйте функцию ways().

Кроме удаления / добавления объектов из списков вы можете использовать выключение / включение объектов с помощью методов объекта disable() и enable(). Например: knife:disable(). При этом объект knife пропадает из описания сцены (предполагаем, что он находится в списке obj сцены), но в последствии может быть опять быть включен, с помощью knife:enable(). Для проверки того факта, что объект выключен, можно использовать метод :disabled(). Если вам привычней использовать синтаксис функций, вы можете пользоваться записью вида:

disable(knife) -- или knife:disable()
...
if not disabled(knife) -- или not knife:disabled()
...

Методы списков enable и disable работают аналогично одноименным методам объектов, при условии что искомый объект находится в списке. Например, учитывая, что поиск объекта в списке осуществляется в том числе и по имени, можно написать:

inv():disable 'нож';

Важно!

Внимание!!! Для работы с инвентарем, объектами и переходами рекомендуется использовать более высокоуровневые функции: put / get / take / drop / remove / seen / have и др. функции, которые будут описаны в дальнейшем. Тем не менее, иногда работа со списками оказывается полезной.

12. Функции, которые возвращают объекты

В INSTEAD определены некоторые функции, которые возвращают различные объекты или списки. При описании функции используются следующие соглашения о параметрах.

  • в символах [ ] описаны необязательные параметры;
  • что – означает объект (в том числе комнату), заданный дескриптором, ссылкой или именем;
  • где – означает объект (в том числе комнату), заданный дескриптором или ссылкой;
  • комната – означает объект типа room, заданный дескриптором или ссылкой;
  • объект – означает объект типа obj;
  • переход – означает текстовое имя перехода в way, его дескриптор или ссылку;

Функции, возвращающие списки:

  • inv() возвращает список инвентаря;
  • objs([где]) возвращает список объектов текущей сцены; Второй необязательный параметр – комната или объект, для которой возвращается список obj;
  • ways([комната]) возвращает список возможных переходов из текущей сцены; Второй необязательный параметр – комната, для которой возвращается список;

На самом деле, функции, которые возвращают списки, редко бывают необходимы при написании игры, так как для работы с объектами и переходами существует набор специальных функций, которые описаны в следующей главе.

Теперь посмотрим на функции, возвращающие объекты:

  • me() возвращает текущего объекта-игрока;
  • here() возвращает текущую сцену;
  • where(объект) возвращает комнату или объект в котором находится заданный объект, если он был помещен туда с помощью функций put/move/drop/replace и т.д.)
  • from([комната]) возвращает прошлую комнату, из которой игрок перешел в текущую комнату. Второй необязательный параметр – получить прошлую комнату не для текущей комнаты, а для заданной;
  • seen(что, [где]) возвращает объект, если он присутствует и не отключен на сцене, есть второй необязательный параметр – выбрать сцену или объект в котором искать что;
  • have(что) возвращает объект, если он есть в инвентаре и не отключен;
  • exist(что, [где]) возвращает объект, если он присутствует на сцене (даже если он выключен!), есть второй необязательный параметр – выбрать сцену или объект, в котором искать что;
  • live(что) возвращает объект, если он присутствует среди живых объектов (описано далее);
  • path(переход, [комната]) – найти элемент в way, даже если он выключен. Второй параметр используется, если интересует не текущая, а заданная комната;

Эти функции в основном используются в условиях, либо для поиска объекта с последующей модификацией. Например, вы можете использовать seen для написания условия:

exit = function(s)
        if seen 'монстр' then -- если у функции 1 параметр, 
                --- скобки писать не обязательно
                p 'Монстр загораживает проход!'
                return false
        end
end

А также, для нахождения объекта в сцене:

use = function(s, w)
        if w == window and path 'В окно':disabled() then 
                -- действие на окно и нет перехода 'В окно'
                path 'В окно':enable();
                p 'Я разбил окно!'
        end
end

Пример с функцией have:

...
act = function(s)
	if have('knife') then
		p 'Но у меня же есть нож!';
                return
	end
end
...

Следующие варианты тоже будут работать:

...
	if have 'knife' then
...
	if have (knife) then
...

Еще одна функция, которая получает объект по ссылке: stead.ref(ссылка).

На самом деле, вам вряд ли понадобится эта функция, по крайней мере для первой игры. Эта функция получает объект по ссылке, другими словами:

stead.ref 'apple' == apple

При условии, конечно, что apple определена.

Функция stead.deref(дескриптор), наоборот, возвращает ссылку-строку для объекта;

act = function(s)
        p('Вы кликнули на объект: ', stead.deref(s));
end

13. Другие функции INSTEAD

В INSTEAD определено множество функций, которые манипулируют состоянием предмета, или используются для написания игровой логики. Многие из них вы уже встречали по мере чтения данного руководства. Теперь рассмотрим их подробней.

  • move(что, куда, [где]) переносит объект из текущей сцены в другую сцену или объект; Если задать параметр где, то объект будет искаться не в текущей сцене, а в сцене или объекте где.
move('mycat','inmycar');

Если вы хотите перенести объект из произвольной сцены, вам придется знать о его местоположении. Для создания сложно перемещающихся объектов, вам придется написать свой метод, который будет сохранять текущую позицию объекта в самом объекте и делать удаление объекта из старой сцены. Либо, если для перемещения объектов вы пользуетесь функциями из данной главы, вы можете использовать where. Например:

move(mycat, here(), where(mycat)); -- мой кот ходит со мной;

Правда при этом и первоначальное размещение объекта mycat должно производиться методом put (или place).

Существует также функция movef, аналогичная move, но добавляющая объект в начало списка.

  • drop(что, [где]) – положить объект из инвентаря на сцену:
drop (knife);

Существует также функция dropf, аналогичная drop, но добавляющая объект в начало списка объектов. Второй необязательный параметр – комната, куда помещается предмет.

  • place(что, [где]) и placef(…) как drop/dropf, но не удалять предмет из инвентаря;
  • put(что, [где]) и putf(…) устаревшая форма записи place/placef;
  • replace(что, объект, [где]) – заменить один объект на другой в сцене или объекте где;
  • remove(что, [где]) удаляет объект из текущей сцены или сцены/объекта где, если он не выключен;
  • purge (объект, [откуда]) – см. remove, удаляет даже выключенные объекты;
  • take(что, [где]) – взять объект с текущей сцены или объекта/сцены заданной где. takef – вариант с добавлением в начало инвентаря. На самом деле, если объекта нет на сцене, он все равно будет добавлен в инвентарь, таким образом take, например, часто используется для первоначального наполнения инвентаря в init функции.
	take('knife');

Важно!

На самом деле, эти функции также умеют работать не только с комнатами и объектами, но и со списками. То есть remove(apple, inv()) сработает также как и remove(apple, me()); Кроме того, у некоторых описанных выше функций есть варианты с постфиксом to: placeto, putto, taketo, dropto. У этих функций есть дополнительный параметр – индекс позиции в списке, для точного управления позицией предмета. Вы также можете вписывать позицию прямо в списках, например;

obj = { [1] = 'apple', [1000] = 'floor' };

Но я не рекомендую пользоваться такими вещами в своих играх, если вам нужно точное позиционирование, лучше используйте объекты в объектах.

  • lifeon(объект, [приоритет]) добавить объект в список динамических («живых») объектов (будет описано дальше), приоритет – числовой параметр (положительное число), 1 – наивысший приоритет;
  • lifeoff(что) удалить объект из списка динамических объектов;
  • taken(объект) – если объект взят – возвратить true (взят с помощью tak или take());
  • rnd(m) – случайное целочисленное значение от 1 до m;
  • walk(куда) – перейти в сцену куда:
act = code [[
        pn "Я иду в следующую комнату..."
        walk (nextroom);
]]
mycar = obj {
	nam = 'моя машина';
	dsc = 'Перед хижиной стоит мой старенький {пикап} Toyota.';
	act = function(s)
		walk('inmycar');
	end
};

Важно!

После вызова walk выполнение обработчика продолжится до его завершения. Поэтому обычно, после walk всегда следует return, если только это не последняя строка функции, хотя и в этом случае безопасно поставить return.

act = code [[
        pn "Я иду в следующую комнату..."
        walk (nextroom);
        return
]]

Не забывайте также, что при вызове walk вызовутся обработчики exit/enter/left/entered и если они запрещают переход, то он не произойдет.

  • change_pl(игрок) – переключиться на другого игрока (со своим инвентарем и позицией). При этом функция переносит действие в сцену нового игрока без вызова exit/enter/left/entered. Для указания сцены, на которой находится игрок, вы можете использовать атрибут where:
pupkin.where = 'kitchen'

… или явно вызывать функцию walk() после change_pl().

  • walkback([куда]) – возвращается из сцены в прошлую (если не задано куда). Возврат означает, что свойство from не будет изменено;
  • back([куда]) – возвращается из сцены в прошлую (если не задано куда). Если это переход из диалога в комнату, то не вызываются: dsc, enter, entered у комнаты. exit/left диалога вызываются. В других случаях аналогична walkback.
  • walkin(куда) – перейти в сцену, при этом exit/left текущей комнаты не вызывается;
  • walkout() – вернуться в прошлую сцену, при этом enter/entered этой сцены не вызовется;
  • time() – возвращает текущее время игры. Время игры считается в активных действиях игрока.
  • cat(…) – возвращает строку – склейку строк-аргументов. Если первый аргумент nil – пустота, то функция возвращает nil – пустоту.
  • par(…) – возвращает строку – склейку строк-аргументов, разбитых строкой-первым параметром.
  • disable/enable/disable_all/enable_all – аналог одноименных методов у объекта;
  • visited([комната]) счетчик посещений комнаты или nil - если мы в ней не были, если комната не задана, то проверяется текущая;
  • visits([комната]) аналогична visited за исключением того, что если посещений не было, возвращает 0, а не пустоту;
  • player_moved() возвращает true если в данном такте игры был переход игрока между комнатами, предназначена для использования в life методах (описано далее);
  • stead.need_scene() если вам необходимо, чтобы следующий такт игры вывел статическую часть сцены (и вы не хотите использовать forcedsc), вы можете воспользоваться этой функцией. Другим способом перерисовки сцены является переход в эту-же комнату;
  • stead.nameof(объект) – вернуть имя объекта (nam атрибут);
  • stead.dispof(объект) – вернуть результат disp, а если его нет – nam;
  • disabled(объект) – возвращает true, если объект отключен;
  • stead.call(дескриптор, строка - имя атрибута/обработчика, параметры…) – вызов обработчика или получение значения атрибута (описано далее);

14. Диалоги

Диалоги – это сцены специального типа dlg, содержащие объекты – фразы. В INSTEAD на данный момент существует два способа описания диалогов: расширенный и простой. Простой способ считается устаревшим, и не рекомендуется для новых игр. Рассмотрим оба способа.

Общим для обоих способов является сама архитектура, по которой работает диалог.

При входе в диалог игрок видит перечень фраз (по-умолчанию, пронумерованных), которые может выбирать, получая какую-то реакцию игры. По умолчанию, уже выбранные фразы скрываются. При исчерпании всех вариантов, диалог завершается выходом в предыдущую комнату (конечно, если в диалоге нет постоянно видимых фраз, среди которых обычно встречается что-то типа Завершить разговор или Спросить еще раз).

Переход в диалог в игре осуществляется как переход на сцену:

povar = obj {
	nam = 'повар';
	dsc = 'Я вижу {повара}.';
	act = function()
		walk 'povardlg'
	end,
};

Хотя я рекомендую использовать walkin, так как в случае walkin не вызываются exit/left текущей комнаты, а персонаж, с которым мы можем поговорить, обычно находиться в этой же комнате, где и главный герой. То есть:

povar = obj {
	nam = 'повар';
	dsc = 'Я вижу {повара}.';
	act = function()
		walkin 'povardlg'
	end,
};

Вы можете делать переход из одного диалога в другой, организуя иерархичность диалогов (при необходимости делая возврат на предыдущий уровень с помощью back()), впрочем, в расширенных диалогах иерархичность организована более просто.

Если вам не нравится префикс у фразы в виде цифры, вы можете определить строковую переменную:

stead.phrase_prefix = '--';

И получить префикс в виде тире перед каждой фразой.

Обратите внимание, что stead.phrase_prefix не сохраняется, если вам нужно переопределять ее на лету, вам придется восстанавливать ее состояние в start функции вручную!

Важно!

Если в диалоге нет ни одной фразы, движок по умолчанию блокирует переход в такой диалог (ведь из него нет выхода!). Имейте это в виду при отладке своей игры.

Важно!

Я настоятельно рекомендую использовать модуль hideinv и задавать свойство hideinv в диалогах. Диалоги будут выглядеть красивей и вы обезопасите свою игру от ошибок и непредсказуемых реакций при использовании инвентаря внутри диалога (так как обычно автор не подразумевает такие вещи). Например:

instead_version "1.8.2"
require "hideinv"
...
guarddlg = dlg {
        nam = 'Охранник';
        -- в диалогах обычно не нужен инвентарь
        hideinv = true; 
        ...
}

Наиболее частой ошибкой является неправильно написанный переход из обработчика inv в диалог. Например, реализация мобильного телефона, которая позволяет игроку в любой момент перейти в диалог звонка. Обычно, диалог завершается функцией back(). Однако, если инвентарь не спрятан, то игрок может повторно зайти в диалог, воспользовавшись инвентарем. При этом back() вернет игрока в предыдущую комнату, то есть снова в этот же диалог. Будьте внимательны! Обычно, чтобы решить подобную проблему достаточно написать код вида:

tel = obj {
        nam = 'мобильник';
        inv = function(s)
                if here() ~= tel_dlg then
                        walkin(tel_dlg)
                        return
                end
                p "Я уже держу телефон в руке."
        end
}

Расширенные диалоги

Начиная с версии INSTEAD 1.7.0 поддерживается новый более простой и мощный синтаксис диалогов, по сравнению с устаревшим традиционным. Фразы определяются в атрибуте phr диалога, например:

povardlg = dlg {
	nam = 'На кухне';
        hideinv = true;
	entered = [[Передо мной полное лицо женщины - 
                 повара в белом колпаке и усталым взглядом...]];
	phr = {
	    { always = true, 'Мне вот-этих зелененьких... Ага -- и бобов!', 
                             'На здоровье!'};
	    { always = true, 'Картошку с салом, пожалуйста!', 
                             'Приятного аппетита!'};
	    { always = true, 'Две порции чесночного супа!!!', 
                             'Прекрасный выбор!' };
	    { always = true, 'Мне что-нибудь легонькое, у меня язва...', 
                             'Овсянка!' };
            { always = true, 'Спасибо, мне ничего не нужно.', 
                             'Как пожелаете.', [[ back() ]] };
	};
};

Имейте в виду, что если в диалоге не определен атрибут dsc, то он формируется движком таким образом, чтобы отражать последнюю реакцию диалога, то есть, если игрок нажмет на заголовок сцены он увидит последний ответ на свою реплику еще раз. Если вы рассчитываете на такое поведение диалога, то первоначальную реакцию диалога удобнее всего вписать в entered, как в примере выше. Я не рекомендую переопределять dsc у диалогов расширенного типа.

Каждая фраза имеет вид:

{ [номер или tag=тэг,][false если выключена,][always = true],
         "Вопрос", "Ответ", [[ необязательный код  - реакция]] },

Фраза содержит вопрос, ответ и реакцию. Когда игрок выбирает одну из фраз (кликнув на нее), выводится ответ, фраза отключается, а затем срабатывает реакция (если она есть). Когда все фразы отключатся, ветвь диалога заканчивается. Реакция – это строка кода на lua, который выполнится после отключения фразы.

В реакции может быть любой lua код, но обычно, он содержит в себе логику по работе с фразами.

INSTEAD предоставляет следующие функции по работе с фразами:

  • pon(t..) – включить фразы диалога с номерами или тегами t…
  • poff(t…) – выключить фразы диалога с номерами или тегами t…
  • prem(t…) – удалить (заблокировать) фразы диалога с номерами или тегами t… (удаление означает невозможность включения фраз. pon(t…) не приведет к включению фраз).
  • pseen(t…) – вернет true, если все заданные фразы диалога (заданными номерами или тегами) видимы.
  • punseen(t…) – вернет true, если все заданные фразы диалога (заданные номерами или тегами) невидимы.

Если параметр t не указан, действие относится к текущей фразе (в контексте которой был вызван код).

Если вам необходимо работать с фразами другого диалога (который не является в данный момент текущей комнатой), используйте вызовы в виде методов: комната:метод(), например, guard_dlg:pon('show_card').

Вы можете определить в диалоге выключенную фразу, а затем, включить ее:

povardlg = dlg {
	nam = 'На кухне';
        hideinv = true;
	entered = [[Передо мной полное лицо женщины - 
               повара в белом колпаке и усталым взглядом...]];
	phr = {
            -- выключенная фраза
            { 1, false, always = true,  
                -- для наглядности, вы можете использовать переносы строк
                [[Дайте мне французских булок!]], 
                [[Конечно...]] }; 
            -- знаем про булки, включить фразу
            { [[А что у вас там, на полке?]], 
              [[Это французские булки.]], 
              [[ pon(1) ]] }; 
            { always = true, 'Мне вот-этих зелененьких... Ага -- и бобов!', 
                             'На здоровье!'};
            { always = true, 'Картошку с салом, пожалуйста!', 
                             'Приятного аппетита!'};
            { always = true, 'Спасибо, мне ничего не нужно.', 
                             'Как пожелаете.', [[ back() ]] };
	};
};

Итак, как вы уже поняли, для идентификации фразы вы можете использовать номер, например:

{ 2, "Вопрос?", "Ответ!" };

Для сложных диалогов более удобными являются теги, например:

{ tag = 'exit', "Ну ладно, я пошел!", code [[ back() ]] };

Если вам не нужно идентифицировать фразу, просто опускайте первое поле:

{ "Вопрос?", "Ответ!" };

Как видно, тег – это текстовая метка фразы. Как уже было замечено, вы можете делать pon/poff/pseen/punseen как с пронумерованными фразами, так и с фразами, имеющими тег. В случае, если один и тот же тег стоит у нескольких фраз, то действие применяется на все фразы с одинаковым тегом. Для функции pseen, видимость тега означает наличие хотя бы одной фразы с таким тегом, для функции punseen – отсутствие включенных фраз с заданным тегом.

Вы можете присваивать тег и пронумерованной фразе, если это требуется.

Присутствие в фразе always = true означает, что фраза не будет автоматически выключена при ее срабатывании:

{ tag = 'exit', always = true, "Ну ладно, я пошел!", code [[ back() ]] }

Если необходимо опустить ответ фразы и всю реакцию описать в параметре «необязательный код», то следующие варианты записи являются допустимыми:

{ tag = 'exit', always = true, "Ну ладно, я пошел!", nil, [[ back() ]] },
{ tag = 'exit', always = true, "Ну ладно, я пошел!", code = [[ back() ]] }

Вы также можете задавать вопрос и ответ в виде функций или code.

{ tag = 'exit', code [[ p "Ну ладно, я пошел!" ]], 
                code [[ p "Может, останешься?"; pon 'really' ]] },
{ tag = 'really', false, 
  always = true, 
  "Я точно пошел!", 
  function() back() end } -- эта фраза выключена и включается предыдущей

Вы можете группировать фразы диалога в ветви, тем самым организуя иерархические диалоги без необходимости массового использования pon/poff и перехода между несколькими dlg.

Группа фраз – это набор фраз, отделенная от другой группы фразой, у которой нет реакции (пример такой простейшей фразы это пара скобок {}). Например:

{ 'Расскажи что-нибудь о погоде?', 
    'Хорошо, что тебя интересует?', [[ psub 'погода' ]] },
{ always=true, [[Пока!]], code = [[ back() ]] },    
{ tag = 'погода' },
{ 'Какая температура?', '25 градусов!' },
{ 'Какая влажность?', '80%' },

В диалоге показывается только текущая группа фраз. В примере выше мы видим две группы. При входе в диалог, игрок увидит выбор из двух фраз: «Расскажи что-нибудь…» и «Пока!». Выбрав первую фразу, он попадет в подветку с тегом 'погода', в которой увидит два вопроса (о температуре и влажности). Когда он задаст оба вопроса, то переместится снова на первую ветку, где останется активной только одна фраза: «Пока!».

В данном примере группы разделены фразой: { tag = 'погода' }, но также точно разделителем могла стать пустая фраза без тега:

{ 'Расскажи что-нибудь о погоде?', 
    'Хорошо, что тебя интересует?', [[ psub 'погода' ]] },
{ always="true", [[Пока!]], code = [[ back() ]] },    
{ },
{ tag = 'погода', 'Какая температура?', '25 градусов!' },
{ 'Какая влажность?', '80%' },

Переход на ветку осуществляется с помощью команд:

  • psub – переход с возвратом. Если все ответы ветки были исчерпаны или явно, с помощью pret();
  • pjump - безусловный переход;
  • pstart - безусловный переход с обнулением истории переходов по psub.

В качестве аргумента psub/pstart/pjump может быть указан номер или тег. Вы можете использовать эти функции и извне диалога, аналогично pon/poff и т.д, с помощью записи: диалог:метод(), например: shopdlg:pstart(1)

Для того, чтобы узнать текущую подветку, используйте методы диалога диалог:current() и диалог:curtag(). Первый всегда возвращает номер, а второй – тег.

Проверку состояния ветки можно осуществить с помощью функций:

  • диалог:empty([t]);
  • диалог:visible([t]);

Обе функции могут получать параметр – номер или тег фразы, с которой начинается анализ группы. :empty() возвращает true, в случае, если в группе нет активных фраз. :visible() возвращает число видимых фраз (0 – если группа пуста). В случае, если параметр не указан, анализируется текущая группа.

В случае перехода по psub/pstart/pjump, первая фраза, на который выполняется переход, может служить заголовком группы фраз.

Например:

{ 'Расскажи что-нибудь о погоде?', code = [[ psub 'погода' ]] },
{ always=true, [[Пока!]], code = [[ back() ]] },    
{ },
{ tag = 'погода', "Хорошо, что тебя интересует?" },
{ 'Какая температура?', '25 градусов!' },
{ 'Какая влажность?', '80%' },

Фраза с тегом 'погода' не содержит в себе реакцию, и выполняет роль заголовка ветки. При переходе на ветку 'погода' с помощью psub будет выведен текст «Хорошо, что тебя интересует?».

Как вы знаете, вопрос может быть функцией, тем самым позволяя выполнять код при переходе между ветками:

{ 'Расскажи что-нибудь о погоде?', code = [[ psub 'погода' ]] },
{ always=true, [[Пока!]], code = [[ back() ]] },    
{ },
{ tag = 'погода', function() 
          p "Хорошо, что тебя интересует?"; 
          weather_asked = true; 
end },
{ 'Какая температура?', '25 градусов!' },
{ 'Какая влажность?', '80%' },

Кроме того, заголовок группы может содержать метод empty, который вызывается в ситуации, когда все вопросы данной группы исчерпаны:

{ 'Расскажи что-нибудь о погоде?', code = [[ psub 'погода' ]] },
{ always=true, [[Пока!]], code = [[ back() ]] },    
{ },
{ tag = 'погода', "Хорошо, что тебя интересует?",
    empty = code [[ p "Хватит о погоде..."; pret() ]] },
{ 'Какая температура?', '25 градусов!' },
{ 'Какая влажность?', '80%' },

empty вызывается в ситуации, когда в ветке не остается фраз. Если empty не определена, то действие по-умолчанию это возврат по pret(). Если вы переопределяете empty, вам придется вызвать pret() явно, если это требуется.

На самом деле, написание диалога не такая сложная штука, как может показаться. В большинстве случаев используется небольшое подмножество возможностей движка.

Законченный пример реализации сложного диалога, вы можете посмотреть здесь: http://sourceforge.net/p/instead/code/HEAD/tree/trunk/doc/examples/dialog/main.lua

Простые диалоги

Данный фрагмент документации содержит описание устаревшего синтаксиса, тем не менее, если вам не понятна идея диалогов из предыдущей части, возможно, этот фрагмент вам поможет, так как некоторые вещи являются общими для обоих вариантов диалогов.

Простейший диалог в старом синтаксисие может выглядеть следующим образом:

povardlg = dlg {
	nam = 'На кухне';
	dsc = [[Передо мной полное лицо женщины - 
              повара в белом колпаке и усталым взглядом...]];
	obj = {
	[1] = phr('Мне вот-этих зелененьких... Ага -- и бобов!', 'На здоровье!'),
	[2] = phr('Картошку с салом, пожалуйста!', 'Приятного аппетита!'),
	[3] = phr('Две порции чесночного супа!!!', 'Прекрасный выбор!'),
	[4] = phr('Мне что-нибудь легонькое, у меня язва...', 'Овсянка!'),
	};
};

phr – создание фразы. Фраза содержит вопрос, ответ и реакцию (реакция в данном примере отсутствует). Когда игрок выбирает одну из фраз, фраза отключается. Когда все фразы отключатся диалог заканчивается. Реакция – это строка кода на lua, который выполнится после отключения фразы. Например:

food = obj {
	nam = 'еда',
	inv = function (s)
		iremove('food', inv());
		p 'Я ем.';
	end
};
 
gotfood = function(w)
	take 'food';
	food._num = w;
	back();
end
 
povardlg = dlg {
	nam = 'На кухне';
	dsc = [[Передо мной полное лицо женщины - 
                повара в белом колпаке и усталым взглядом...]];
	obj = {
	[1] = phr('Мне вот-этих зелененьких... Ага -- и бобов!', 
                  'На здоровье!', [[pon(); gotfood(1);]]),
	[2] = phr('Картошку с салом, пожалуйста!', 
                  'Приятного аппетита!', [[pon(); gotfood(2);]]),
	[3] = phr('Две порции чесночного супа!!!', 
                  'Прекрасный выбор!', [[pon();gotfood(3);]]),
	[4] = phr('Мне что-нибудь легонькое, у меня язва...', 
                  'Овсянка!', [[pon(); gotfood(4);]]),
	};
};

В данном примере, игрок выбирает еду. Получает ее (запомнив выбор в переменной food._num) и возвращается обратно (в ту сцену откуда попал в диалог).

В реакции может быть любой lua код, но, как и в случае с расширенными диалогами, обычно в нем содержится логика по управлению фразами. pon/poff/prem/pseen/punseen работают только с номерами (так как тегов здесь нет).

Вы можете переходить из одного диалога в другой диалог, организовывая иерархические диалоги.

Также, вы можете прятать некоторые фразы при инициализации диалога и показывать их при некоторых условиях.

facectrl = dlg {
	nam = 'Фэйсконтроль';
	dsc = 'Я вижу перед собой неприятное лицо полного охранника.';
	obj = {
		[1] = phr('Я пришел послушать лекцию Белина...', 
		[[-- Я не знаю кто вы -- ухмыляется охранник -- 
                     но мне велели пускать сюда только приличных людей.]],
		[[pon(2);]]),
		[2] = _phr('У меня есть приглашение!', 
		[[-- А мне плевать! Посмотри на себя в зеркало!!! 
                    Ты пришел слушать самого Белина -- правую руку самого... 
                    -- охранник почтительно помолчал -- Так что пошел вон..]],
                                                                     [[pon(3,4)]]),
		[3] = _phr('Сейчас я дам тебе по роже!', 
                           '-- Ну все... Мощные руки выталкивают меня в коридор...',
			[[poff(4)]]),
		[4] = _phr('Ты, кабан! Я же тебе сказал -- у меня есть приглашение!',
			[[-- Чтоооооо? Глаза охранника наливаются кровью... 
                        Мощный пинок отправляет меня в коридор...]],
			[[poff(3)]]),
	};
	exit = function(s,w)
		s:pon(1);
	end;
};

_phr – создает выключенную фразу, которую можно включить. Данный пример показывает также возможность использования методов pon, poff, prem для диалога (см. exit).

15. Облегченные объекты

Иногда сцену нужно наполнить декорациями, которые обладают ограниченной функциональностью, но делают игру разнообразней. Или вы хотите сделать что-то вроде кнопки «дальше». Для таких вещей можно использовать облегченный объект. Например:

sside = room {
	nam = 'Южная сторона';
	dsc = [[Я нахожусь у южной стены здания института. ]];
	act = function(s, w)
		if w == "подъезд" then
			ways():add('stolcorridor');
			p [[Я подошел к подъезду. На двери подъезда надпись -- 
                            'Столовая'. Хм -- зайти внутрь?]];
		elseif w == "люди" then
			p 'Те, кто выходят, выглядят более довольными...';
		end
	end;
	obj = { vobj("подъезд", "У восточного угла находится небольшой {подъезд}."),
		vobj("люди", [[Время от времени дверь подъезда хлопает 
                                впуская и выпуская {людей}.]])},
};

Как видим, vobj позволяет сделать легкую версию статического объекта, с которым, тем не менее, можно взаимодействовать (за счет определения обработчика act в сцене и анализа имени объекта). vobj также вызывает метод used, при этом в качестве третьего параметра передается объект, воздействующий на виртуальный объект. Если вы используете предмет на vobj, то как и с обычными объектами, у предмета инвентаря вызовется use. Но объекты vobj обычно не имеют дескриптора, поэтому, для определения страдательного объекта можно воспользоваться stead.nameof.

use = function(s, w)
        if stead.nameof(w) == "люди" then
                p "Не стоит беспокоить людей."
                return
        end
end;

Синтаксис vobj прост: vobj(имя, описатель); vobj можно добавлять в сцену динамически, например:

put(vobj("дальше", "{Дальше}"));

Хотя я не рекомендую этот стиль, он больше характерен для старых версий движка. Нагляднее использовать disable/enable;

...
exist 'дальше':enable();
...
obj = { vobj("дальше", "{Дальше}"):disable() };

Существует модификация объекта vobjvway. vway реализует ссылку-переход. Синтаксис vway: vway(имя, описатель, сцена назначения); например:

	obj = { vway("дальше", "Нажмите {здесь}.", 'nextroom') }; 
        -- при нажатии - перейдем в nextroom

На самом деле, если вы пишите что-то вроде книги-игры, где игровой процесс представляет из себя переход по ссылкам, то (если не считать, что это неудачная идея для вашей первой игры) вам следует воспользоваться модулем «xact», в котором реализован более простой механизм создания ссылок.

Вы можете динамически заполнять сцену объектами vway (аналогично vobj). Например:

	put(vway("next", "{Дальше}.", 'next_room'));
-- другой способ, явно вызывая метод списка
        objs():add(vway("next", "{Дальше}.", 'next_room'))

Следует понимать, что и vobj и vway это обычные объекты, с заранее определенными обработчиками и функциями сохранения (что позволяет создавать эти объекты на лету, как показано в примерах выше). Когда вы узнаете архитектуру движка INSTEAD, вы сможете писать свои варианты объектов с требуемыми свойствами.

Говоря об облегченных объектах, хотелось бы обратить внимание еще на один способ описания декораций. Если объект в сцене является статическим, то его можно определить непосредственно в obj, без присваивания дескриптора. Например:

hall = room {
       nam = 'Гостинная';
       dsc = [[Я в просторной гостинной.]];
       obj = {
               obj {
                       nam = 'стол';
                       dsc = [[Посреди гостинной находится {стол}.]];
                       act = [[Из красного дерева.]];
               };
       };
}

В обработчике use вы можете идентифицировать такие объекты также, как и vobj:

use = function(s, w)
        if stead.nameof(w) == 'стол' then
                p [[Не хочется портить красивую вещь.]]
                return
        end
end

Использовать или нет такую форму решать вам, многие считают, что присвоение дескриптора всем объектам делает код более понятным. Я в своих играх использую оба подхода.

Наконец, еще один способ для создания декораций, это использование одного и того-же объекта в разных сценах. Например, можно создать объект «гильзы дробовика», и выбрасывать его на сцену всегда, когда герой стреляет. Понятно, что в таком случае, гильзы могут служить только в качестве декораций, их нельзя будет взять и вообще произвести какое-то действие, меняющее состояние.

16. Динамические события

Вы можете определять обработчики, которые выполняются каждый раз, когда время игры увеличивается на 1. Обычно, это имеет смысл для живых персонажей, или каких-то фоновых процессов игры. Алгоритм шага игры выглядит примерно так:

  1. Игрок нажимает на ссылку;
  2. Реакция act, use, inv, осмотр сцены (клик по названию сцены) или переход в другую сцену;
  3. Динамические события;
  4. Вывод состояния сцены (если нужно статическая часть, и всегда – динамическая).

Например, сделаем Барсика живым:

mycat = obj {
	nam = 'Барсик';
	lf = {
		[1] = 'Барсик шевелится у меня за пазухой.',
		[2] = 'Барсик выглядывает из-за пазухи.',
		[3] = 'Барсик мурлычит у меня за пазухой.',
		[4] = 'Барсик дрожит у меня за пазухой.',
		[5] = 'Я чувствую тепло Барсика у себя за пазухой.',
		[6] = 'Барсик высовывает голову из-за пазухи и осматривает местность.',
	};
	life = function(s)
		local r = rnd(5);
		if r > 2 then -- делать это не всегда
			return;
		end
		r = rnd(#s.lf); -- символ # -- число элементов в массиве
		p(s.lf[r]); -- выводим одно из 6 состояний Барсика
	end;
....
-- и вот момент в игре, когда Барсик попадает к нам за пазуху!
take 'mycat' -- добавить в инвентарь
lifeon 'mycat' -- оживить Барсика!
....

Любой объект (в том числе и сцена) могут иметь свой обработчик life, который вызывается каждый такт игры, если объект был добавлен в список живых объектов с помощью lifeon. Не забывайте удалять живые объекты из списка с помощью lifeoff, когда они больше не нужны. Это можно сделать, например, в обработчике left, или любым другим способом.

Если в вашей игре много «живых» объектов, вы можете задавать им приоритеты. Для этого, воспользуйтесь вторым числовым параметром (целое неотрицательное число) lifeon, чем меньше число, тем выше приоритет. 1 – самый высокий.

Если вам нужен фоновый процесс в какой-то комнате, запускайте его в entered и удаляйте в left, например:

podval = room {
        nam  = 'В подвале';
        dsc = [[Тут темно!]];
        entered = function(s)
                lifeon(s);
        end;
        left = function(s)
                lifeoff(s);
        end;
        life = function(s)
                if rnd(10) > 8 then
                        p [[Я слышу какие-то шорохи!]]; 
                        -- изредка пугать игрока шорохами
                end
        end;
        way =  { 'upstair' };
}

Если вам нужно определить, был ли переход игрока из одной сцены в другую, воспользуйтесь player_moved.

flash = obj {
        nam  = 'фонарик';
        var { on = false };
        life = function(s)
                if player_moved() then -- гасить фонарик при переходах
                        s.on = false
                        p "Я выключил фонарик."
                        return
                end
        end;
...
}

Для отслеживания протекающих во времени событий, используйте time() или вспомогательную переменную-счетчик. Для определения местоположения игрока – here(). Для определения факта, что объект «живой» – live().

dynamite = obj {
        nam  = 'динамит';
        var { 
                timer = 0; 
        };                
        used = function(s, w)
                if w == fire then
                        if live(s) then
                                return "Уже горит!"
                        end
                        p "Я поджег динамит."
                        lifeon(s)
                end
        end;
        life = function(s)
                s.timer = s.timer + 1
                if s.timer == 5 then
                        lifeoff(s)
                        if here() == where(s) then
                                p [[Динамит взорвался рядом со мной!]]
                        else
                                p [[Я услышал, как взорвался динамит.]];
                        end
                end
        end;
...
}

Если life обработчик возвращает текст события, он печатается после описания сцены.

Вы можете вернуть из обработчика life второй код возврата, важность. (true или false). Например:

    p 'В комнату вошел охранник.'
    return true

Или:

    return 'В комнату вошел охранник.', true

При этом текст события будет выведен до описания объектов.

Если вы хотите блокировать life обработчики в какой-то из комнат, воспользуйтесь модулем nolife. Например:

instead_version "1.8.2"
require "hideinv"
require "nolife"
 
guarddlg = dlg {
        nam = 'Охранник';
        hideinv = true;
        nolife = true;
...
}

Отдельно стоит рассмотреть вопрос перехода игрока из life обработчика. Если вы собираетесь использовать функции walk… внутри life, то вам следует учитывать следующее поведение.

Если life переносит игрока в новую локацию, то подавляется весь вывод, который произведен life обработчиками объектов с прошлой сцены (то есть, все предыдущие life выводы). Остается только вывод life обработчиков, сработавших после перехода. Это сделано специально, так как вывод прошлых life относился к прошлой сцене, например:

  1. life сцены скала вывел текст о том, что герою страшно, когда он висит на тросе;
  2. life объекта трос вывел текст о том, что трос оборвался и герой упал вниз и сделал walk в новую локацию море;

Здесь life1 выполнялся в ином контексте и его вывод подавляется.

Кроме всего прочего, обработчик life может влиять на текст реакций действий игрока, которые произошли в этом игровом такте. Например, рассмотрим такую ситуацию:

  1. Игрок осмотрел окно («Я выглянул в окно. Унылый пейзаж.»);
  2. life обработчик гоблин сообщил, что внезапно дверь открылась и в комнату влетел гоблин;

Автору игры может показаться, что информация о пейзаже, когда перед игроком стоит свирепый гоблин, неуместна. Тогда он пишет в life обработчике:

        p [[Свирепый гоблин влетел в комнату!]];
        ACTION_TEXT = nil 
        -- текст реакции пуст (раньше он был равен 
        -- "Я выглянул в окно. Унылый пейзаж.")

Таким образом, ACTION_TEXT это текстовая переменная, доступная в life обработчике для модификации. Обычно, имеет смысл или не трогать ее, или обнулять, как в примере выше.

17. Графика

Графический интерпретатор INSTEAD анализирует атрибут сцены pic, и воспринимает его как путь к картинке, например:

home = room {
	pic = 'gfx/home.png';
	nam = 'Дома';
	dsc = 'Я у себя дома';
};

Важно!

Используйте в путях только прямые '/'. Также, настоятельно рекомендуется использовать в именах каталогов и файлов только латинские строчные символы. Этим самым вы обезопасите свою игру от проблем с совместимостью и она будет работать на всех архитектурных платформах, куда портирован INSTEAD.

Конечно, pic может быть функцией, расширяя возможности разработчика. Если в текущей сцене не определен атрибут pic, то берется атрибут game.pic. Если не определен и он, то картинка не отображается.

Поддерживаются все наиболее распространенные форматы изображений, но я рекомендую вам использовать png и (когда важен размер) jpg.

Вы можете использовать в качестве картинок анимированные gif файлы.

Вы можете встраивать графические изображения прямо в текст, в том числе в инвентарь, переходы, заглавия комнат и dsc с помощью функции img. Например:

apple = obj {
        -- склеить текстовую строку с изображением
        nam = 'яблоко '..img ('img/apple.png'); 
}

Хотя, в данном случае предпочтительнее воспользоваться disp:

apple = obj {
        nam = 'яблоко';
        disp = 'яблоко ' ..img('img/apple.png');
}

Теперь мы разделили имя объекта и его отображение.

Тем-не менее, картинку сцены всегда следует оформлять в виде pic атрибута, а не вставки img в dsc комнаты.

Дело в том, что картинка сцены масштабируется по другому алгоритму. Картинки img масштабируются в соответствии с настройками INSTEAD (масштаб темы), а pic – учитывает также размер картинки.

Кроме того, картинки pic обладают и другими свойствами, например, возможностью отслеживания координат кликов мышью.

Если вы поместите img внутрь { и }, то получите графическую ссылку.

apple = obj {
	nam = 'яблоко';
        disp = 'яблоко ' ..img('img/apple.png');
        dsc = function(s)
                p ("На полу лежит {яблоко", 
                       img 'img/apple.png', 
                        "}");                
                -- другие варианты:
                -- return "На полу лежит {яблоко"..img('img/apple.png').."}";
                -- p "На полу лежит {яблоко"..img('img/apple.png').."}";
                -- или dsc = "На полу лежит {яблоко"..img('img/apple.png').."}";
        end;
}

INSTEAD поддерживает обтекание картинок текстом. Если картинка вставляется с помощью функции imgl/imgr, она будет расположена у левого/правого края.

Важно!

Картинки, вставленные в текст с помощью imgl/imgr не могут быть ссылками!!! Используйте их только в декоративных целях.

Для задания отступов вокруг изображения используйте pad, например:

imgl 'pad:16,picture.png' -- отступы по 16 от каждого края
imgl 'pad:0 16 16 4,picture.png' -- отступы: вверху 0, справа 16, внизу 16, слева 4
imgl 'pad:0 16,picture.png' -- отступы: вверху 0, справа 16, внизу 0, слева 16

Вы можете использовать псевдо-файлы для изображений прямоугольников и пустых областей:

dsc = img 'blank:32x32'..[[Строка с пустым изображением.]];
dsc = img 'box:32x32,red,128'..[[Строка красным полупрозрачным квадратом.]];

INSTEAD может обрабатывать составные картинки, например:

pic = 'gfx/mycat.png;gfx/milk.png@120,25;gfx/fish.png@32,32';

Таким образом, составная картинка представляет собой набор путей к изображениям, разделенных символом ;. Вторая и последующие компоненты могут содержать постфикс в виде @x_координата,y_координата, где координате 0,0 соответствует левый верхний угол всего изображения. Общий размер картинки считается равным общему размеру первой компоненте составной картинки, то есть, первый компонент (в нашем примере – gfx/mycat.png) играет роль холста, а последующие компоненты накладываются на этот холст.

Наложение происходит для левого верхнего угла накладываемой картинки. Если вам нужно, чтобы наложение происходило относительно центра накладываемой картинки, используйте перед координатами префикс c, например:

pic = 'gfx/galaxy.png;gfx/star.png@c128,132';

Оформив в виде функции формирование пути составной картинки, вы можете генерировать изображение на основе игрового состояния.

Если вы в своей игре привязываетесь к каким-то координатам изображений, или к их размерам, делайте это относительно оригинальных размеров изображений. При масштабировании темы под заданное игроком разрешение, INSTEAD сам будет осуществлять пересчёт координат (при этом координаты для игры выглядят так, как будто игра запущена без масштабирования). Однако, возможны небольшие погрешности вычислений.

Если вам не хватает функций, описанных в этой главе, изучите модуль «sprites», который предоставляет более широкие возможности по графическому оформлению. Но я крайне не рекомендую делать это в своей первой игре.

18. Музыка

Интерпретатор проигрывает в цикле текущую музыку, которая задается с помощью функции: set_music(путь к музыкальному файлу).

Важно!

Используйте в путях только прямые '/'. Также, настоятельно рекомендуется использовать в именах каталогов и файлов только латинские строчные символы. Этим самым вы обезопасите свою игру от проблем с совместимостью и она будет работать на всех архитектурных платформах, куда портирован INSTEAD.

Поддерживается большинство музыкальных форматов, но настоятельно рекомендуется использовать формат ogg, так как именно он поддерживается наилучшим образом во всех версиях INSTEAD (для различных платформ).

Важно!

Следует проявлять осторожность при использовании трекерной музыки, так как в некоторых дистрибутивах Linux могут быть проблемы при проигрывании определенных файлов (ошибки в связке библиотек SDL_mixer и libmikmod).

Также, если вы используете mid файлы, будьте готовы к тому, что игрок услышит их только в Windows версии INSTEAD (так как в большинстве случаев, Unix версии SDL_mixer собраны без поддержки timidity).

Например:

street = room {
	pic = 'gfx/street.png';
	enter = function()
		set_music('mus/rain.ogg')
	end;
	nam = 'на улице';
	dsc = 'На улице идет дождь.';
};

get_music() возвращает текущее имя трека.

В функцию set_music() можно передавать второй параметр – количество проигрываний (циклов). Получить текущий счетчик можно с помощью get_music_loop. 0 – означает вечный цикл. 1..n – количество проигрываний. -1 – проигрывание текущего трека закончено.

Часто бывает необходимым сменить музыку на время, а затем восстановить предыдущий трек. Для этого можно воспользоваться функциями save_music()/restore_music(). Эта пара функций запоминает/восстанавливает трек в/из переменных объекта текущего контекста. Например, для обработчиков enter/exit/entered/left это будет текущая комната.

Если вы хотите явно задать объект, в котором будет сохранено состояние (из которого будет восстановлено состояние) трека, укажите его в качестве необязательного параметра. Данные функции не работают с ссылками, поэтому вы не можете передавать в них текстовые строки-указатели на объекты.

Например:

street = room {
	pic = 'gfx/street.png';
	entered = function()
                save_music();
		set_music('mus/rain.ogg')
	end;
        left = restore_music;
	nam = 'на улице';
	dsc = 'На улице идет дождь.';
};

Обратите внимание, что в примере left обработчику присваивается значение restore_music. Отсутствие () после restore_music означает, что это присваивание самого кода функции, а не ее вызов. Таким образом, при вызове обработчика left, будет вызвана restore_music с параметром равным street, что нам и требуется. Впрочем, можно было написать и такой код:

        left = function()
                restore_music()
        end;

Или:

        restore_music(street)

Для того, чтобы отменить проигрывание музыки, вы можете использовать stop_music() Функция is_music() позволяет узнать, проигрывается ли музыка в данный момент.

Для проигрывания звуков используйте set_sound(). Настоятельно рекомендуется использовать формат ogg, хотя большинство распространенных звуковых форматов также будет работать.

Различие между музыкой и звуковым файлом заключается в том, что движок следит за процессом проигрывания музыки и сохраняет/восстанавливает текущий проигрываемый трек. Выйдя из игры и загрузив ее снова, игрок услышит то же музыкальное оформление, что слышал при выходе. Звуки обычно означают кратковременные эффекты, и движок не сохраняет и не восстанавливает звуковые события. Так, если игрок не успел дослушать звук выстрела и вышел из игры, после загрузки файла сохранения он не услышит звук (или его окончание) снова.

Тем не менее, если учесть то, что set_sound позволяет запускать зацикленные звуки, то различие между музыкой и звуками становится уже не таким однозначным.

Итак, определение функции: set_sound(файл, [канал], [цикл]), где:

  • файл – путь и\или имя звукового файла;
  • канал – номер канала [0..7]; Если не указан, то выберется первый свободный.
  • цикл – количество проигрываний 1..n, 0 – зацикливание.

Для остановки проигрывания звука можно использовать stop_sound() Для остановки звука в определенном канале stop_sound(канал).

На самом деле, set_sound имеет одну особенность. Если вы вызовете эту функцию подряд несколько раз, то эффект принесет только последний вызов. Если вам нужно запускать несколько одновременных звуков за один такт игры, используйте add_sound(). Параметры к функции имеют тот же смысл, что и у set_sound().

Важно!

Если вы используете зацикленные звуки, вам придется самим восстанавливать их состояние (запускать снова с помощью set_sound()/add_sound()) в функции start().

Если вам не достаточно описанных здесь функций по работе со звуком, используйте модуль «sound».

19. Форматирование и оформление вывода

Обычно INSTEAD сам занимается форматированием и оформлением вывода. Например, отделяет статическую сцену от динамической. Выделяет курсивом действия игрока. Переводит фокус на изменение в тексте и т.д. Модули вроде «quotes», «para» и подобные улучшают качество вывода игры без дополнительных усилий со стороны автора.

Например, я рекомендую всегда включать в вашу игру следующие модули:

instead_version "1.8.2"
require "para" -- отступы параграфов
requure "dash" -- замена двойного минуса на длинное тире
require "quotes" -- красивые кавычки

И ваша игра будет выглядеть гораздо лучше. Если вам нужна какая-то автоматическая обработка выводимого текста, вы можете включить модуль «format» и определить функцию stead.filter. Например:

instead_version "1.8.2"
require "format"
stead.filter = function(s)
        return s..'^Эта строка будет добавлена к выводу';
end

Многие хорошие игры на INSTEAD никак не занимаются своим оформлением, кроме разбиения текста dsc на параграфы с помощью символов '^^', поэтому подумайте, а так ли вам хочется заниматься оформлением своей игры вручную?

Тем не менее, иногда это все-таки необходимо.

Форматирование

Вы можете делать простое форматирование текста с помощью функций:

  • txtc(строка) - разместить по центру;
  • txtr(строка) - разместить справа;
  • txtl(строка) - разместить слева;
  • txttop(строка) - сверху строки;
  • txtbottom(строка) - снизу строки;
  • txtmiddle(строка) - середина строки (по умолчанию);

Например:

main = room {
	nam = 'Intro';
	dsc = txtc 'Добро пожаловать!'; -- если у функции только 1 параметр, 
        -- скобки можно опускать;
}

Вышеописанные функции влияют не только на текст, но и на изображения, вставленные с помощью img(). Следует отметить, что если вы используете несколько функций форматирования, то предполагается, что они относятся к разным строкам (параграфам). В противном случае, результат не определен. Разбивайте текст на абзацы символами ^ или pn().

INSTEAD при выводе удаляет лишние пробелы. Это значит, что неважно сколько пробелов вы вставляете между словами, все равно при выводе они не будут учитываться для расчета расстояния между словами. Иногда это может стать проблемой.

Вы можете создавать неразрывные строки с помощью: txtnb(строка). Например, модуль «para» использует неразрывные строки для создания отступов в начале параграфов. Также, txtnb может оказаться удобной для вывода служебных символов. Можно сказать, что вся строка-параметр txtnb воспринимается движком как одно большое слово.

Еще один пример. Если вы используете подчеркивание текста, то промежутки между словами не будут подчеркнуты. При использовании txtnb промежутки также будут подчеркнуты.

INSTEAD не поддерживает отображение таблиц, однако для вывода простых табличных данных можно воспользоваться txttab(). Эта функция используется для абсолютного позиционирования в строке (табулятор).

txttab(позиция, [центр])

Позиция, это текстовый или числовой параметр. Если задан числовой параметр, он воспринимается как позиция в пикселях. Если он задан в виде строкового параметра число%, то он воспринимается как позиция, выраженная в процентах от ширины окна вывода сцены.

Необязательный строковой параметр центр задает позицию в следующем за txttab слове, которая будет размещена по указанному смещению в строке. Позиции могут быть следующими:

  • left;
  • right;
  • center;

По-умолчанию считается что задан параметр «left».

Так, например:

main = room {
        nam = 'Начало';
        -- размещение 'Начало!' по центру строки
        dsc = txttab('50%', 'center')..'Начало!'; 
}

Конечно, не очень удачный пример, так как то же самое можно было сделать с помощью txtc(). Более удачный пример.

main = room {
        nam = 'Начало';
        dsc = function(s)
                p(txttab '0%')
                p "Слева";
                p(txttab '100%', 'right')
                p "Справа";
        end
}

На самом деле, единственная ситуация, когда применение txttab оправдано – это вывод табличных данных.

Следует отметить, что в ситуации, когда мы пишем что-то вроде:

        -- размещение 'Раз' по центру строки
        dsc = txttab('50%', 'center')..'Раз два три!';

Только слово 'Раз' будет помещено в центр строки, остальные слова будут дописаны справа от этого слова. Если вы хотите центрировать 'Раз два три!' как одно целое, воспользуйтесь txtnb().

        -- размещение 'Раз два три!' по центру строки
        dsc = txttab('50%', 'center')..txtnb 'Раз два три!'; 

По умолчанию, статическая часть сцены отделяется от динамической двойным переводом строки. Если вам это не подходит, вы можете переопределить stead.scene_delim, например:

instead_version "1.8.2"
stead.scene_delim = '^' -- одинарный перевод строки

Вы не можете менять эту переменную в обработчиках, так как она не сохраняется, но вы можете задать ее для игры целиком, или восстанавливать ее вручную в функции start().

Если вас категорически не устраивает то, как INSTEAD формирует вывод (последовательность абзацов текста), вы можете переопределить функцию iface.fmt, которая по умолчанию выглядит следующим образом:

iface.fmt = function(self, cmd, st, moved, r, av, objs, pv) 
-- st -- changed state (main win), move -- loc changed
	local l, vv
	if st then
		av = txtem(av); -- вывод "важных" life 
		pv = txtem(pv); -- вывод обычных life
		r = txtem(r) -- реакция на действие
		if isForcedsc(stead.here()) or NEED_SCENE then
			l = stead.here():scene(); -- статическая часть сцены
		end
	end
	if moved then -- компонуем вывод для случая, 
                      -- когда игрок перешел в новую комнату
		vv = stead.fmt(stead.cat(
                     stead.par(stead.scene_delim, r, l, av, objs, pv), '^'));
	else -- компонуем вывод, когда игрок не делал перехода
		vv = stead.fmt(stead.cat(
                     stead.par(stead.scene_delim, l, r, av, objs, pv), '^'));
	end
	return vv
end

Тот факт, что я привел здесь этот код, не означает, что я рекомендую переопределять эту функцию. Напротив, я категорически против такой сильной привязки к форматированию текста. Тем не менее, иногда возникает ситуация, когда полный контроль за последовательностью вывода необходим. Если вы пишите свою первую игру, просто пропустите этот текст.

Оформление

Вы можете менять начертание текста с помощью комбинаций функций:

  • txtb(строка) - жирный текст;
  • txtem(строка) - курсив;
  • txtu(строка) - подчеркнутый текст;
  • txtst(строка) - перечеркнутый текст;

Например:

main = room {
	nam = 'Intro';
	dsc = function()
                p ('Вы находитесь в комнате ')
                p (txtb 'main', '.');
        end;
}

Строго говоря, INSTEAD не поддерживает одновременный вывод разными шрифтами в окно сцены (если не считать разное начертание), поэтому если вам все-таки требуется более гибкий контроль вывода, вы можете сделать следующее:

  • Использовать графические вставки img();
  • Использовать модуль fonts, в котором реализована отрисовка разными шрифтами за счет модуля sprite;
  • Использовать другой движок, так как скорее всего вы используете INSTEAD не по назначению.

20. Конструкторы и наследование

Внимание!

Если вы пишите свою первую игру, было бы лучше, если бы она была простая. Для простой игры информация из этой главы не понадобится. Более того, 90% игр на INSTEAD не использует вещей, описанных в этой главе!

Если вы пишите игру, в которой много однотипных объектов, возможно, вам захочется упростить их создание. Конструктор, это функция, которая создает объект. На самом деле конструкции obj, room, dlg – все это конструкторы. Когда вы пишите что-то вроде:

apple = obj {
        nam = 'яблоко';
}

Вызывается функция obj в качестве параметра к которой передается таблица { nam = 'яблоко' }; Зная это, вы можете писать свои конструкторы. Например, рассмотрим такую задачу. Нужно создавать окна, любое окно можно разбить. Мы можем написать конструктор window.

window = function(v)
        v.window = true
        if v.nam == nil then
                v.nam = 'окно'
        end
        if v.dsc == nil then
                v.dsc = 'Здесь есть {окно}'
        end
        v.act = function(s)
                if s._broken then
                        p [[Окно разбито.]]
                else
                        p [[За окном темно.]]
                end
        end
        if v.used == nil then
                v.used = function(s, w)
                        if w == hammer then
                                 if s._broken then
                                         p [[Окно уже разбито.]]
                                 else
                                         p [[Я разбил окно.]]
                                         s._broken = true;
                                 end
                        end
                end
        end
        return obj(v)
end

Мы видим, что функция window заполняет некоторые атрибуты и обработчики (позволяя игроку переопределить некоторые из них), а потом вызывает функцию создания объекта и возвращает новенький объект. Теперь, можно создавать объекты окна:

win1 = window {
        dsc = "В восточной стене есть {окно}.";
}

Или, так как окно это обычно статический объект, можно создавать его прямо в obj.

obj = { window {
            dsc = 'В восточной стене есть {окно}.';
      }
};

Если вам нравится более классический синтаксис оформления конструктора в виде функции, принимающей несколько параметров вместо одной таблицы (примеры: vroom, vobj, vway и подобные), то можно было бы определить конструктор так:

window = function(nam, dsc)
        local v = {} -- создаем пустую таблицу
        -- заполняем ее
        v.window = true
        v.nam = 'окно'
        if dsc == nil then
                v.dsc = 'Здесь есть {окно}'
        end
        v.act = function(s)
                if s._broken then
                        p [[Окно разбито.]]
                else
                        p [[За окном темно.]]
                end
        end
        v.used = function(s, w)
                if w == hammer then
                         if s._broken then
                                 p [[Окно уже разбито.]]
                         else
                                 p [[Я разбил окно.]]
                                 s._broken = true;
                         end
                end
        end
        return obj(v) -- создаем объект
end

Тогда вызов конструктора будет выглядеть по-другому:

obj = { window ('окно', 'В восточной стене есть {окно}.') }

На самом деле, оба подхода применимы, но в разных ситуациях. Если для создания объекта достаточно указать два-три атрибута, то проще и наглядней оформлять конструктор как функцию с несколькими параметрами (как vroom).

Если же предполагается, что объекту могут быть присвоены различные (в том числе и необязательные) атрибуты, то проще делать конструктор в виде функции, принимающей таблицу (как obj/room и др.)

Отдельно стоит рассмотреть вопрос добавления новых переменных. В нашем примере мы использовали переменную с префиксом _, так как такие переменные можно создавать на лету. Другим способом является использование stead.add_var(), например:

window = function(v)
        stead.add_var(v, { broken = false }) -- добавить переменные к ''v'';
        v.window = true
-- ... пропущено
        if v.used == nil then
                v.used = function(s, w)
                        if w == hammer then
                                 if s.broken then
                                         p [[Окно уже разбито.]]
                                 else
                                         p [[Я разбил окно.]]
                                         s.broken = true;
                                 end
                        end
                end
        end
        return obj(v)
end

Если вы хотите добавить глобальную переменную (на лету), используйте синтаксис:

stead.add_var { global_var = 1 }
-- синоним записи stead.add_var ({ global_var = 1 })

Теперь, если вы поняли что-такое конструктор, вы можете перейти к такому понятию, как наследование.

На самом деле, в примерах выше уже используется наследование. Действительно, ведь конструктор window вызывает другой конструктор obj, тем самым получая все свойства обычного объекта. Также, winodw определяет переменную признак window, чтобы в игре мы могли понять, что мы имеем дело с окном. Например:

use = function(s, w)
        if w.window then
                p [[Я посветил фонариком в окно.]]
                return
        end
end

Для иллюстрации механизма наследования создадим класс объектов treasure, те. сокровищ.

global { score = 0 }
treasure = function()
        local v = {}
        v.nam = 'сокровище'
        v.treasure = true
        v._points = 100
        v.dsc = function(s)
                p ('Здесь есть {', stead.dispof(s), '}.')
        end;
        v.inv = function(s)
                p ('Это же ', stead.dispof(s), '.');
        end;
        v.tak = function(s)
                score = score + s.points; -- увеличим счет
                p [[Дрожащими руками я забрал сокровища.]];
        end
        return obj(v)
end

А теперь, на его основе создадим золото, алмаз и сундук.

gold = function(dsc)
        local v = treasure();
        v.nam = 'золото';
        v.gold = true;
        v.points = 50;
        v.dsc = dsc;
        return v
end
diamond = function(dsc)
        local v = treasure();
        v.nam = 'алмаз';
        v.diamond = true;
        v.points = 200;
        v.dsc = dsc;
        return v
end
chest = function(dsc)
        local v = treasure();
        v.nam = 'сундук';
        v.chest = true
        v.points = 1000;
        v.dsc = dsc;
        return v
end

Теперь, в игре можно создавать сокровища через конструкторы:

diamond1 = diamond("В грязи я заметил {алмаз}.")
diamond2 = diamond(); -- тут будет стандартное описание алмаза
gold1 = gold("В углу я заметил блеск {золота}.");
cave = room {
        nam = 'пещера';
        obj = { 
                'diamond1', 
                'gold1',
                chest("А еще я вижу {сундук}!")
        };
}

На самом деле, как именно писать функции-конструкторы и реализовывать принцип наследования, зависит только от вас. Выберете наиболее простой и понятный способ.

При написании конструкторов иногда бывает полезным сделать вызов обработчика так, как это делает INSTEAD. Для этого используется stead.call(объект, метод, параметры), при этом эта функция вернет реакцию атрибута в виде строки. Например, рассмотрим модификацию window, которая заключается в том, что можно определять свою реакцию на осмотр окна, которая будет выполнена после стандартного сообщения о том, что это разбитое окно (если оно разбито).

window = function(nam, dsc, what)
        local v = {} -- создаем пустую таблицу
        -- заполняем ее
        v.window = true
        v.nam = 'окно'
        v.what = what
        if dsc == nil then
                v.dsc = 'Здесь есть {окно}'
        end
        v.act = function(s)
                if s._broken then
                        p [[Окно разбито.]]
                end
                local r = stead.call(s, 'what')
                if r then 
                        p(r)
                else
                        p [[За окном темно.]]
                end
        end
...

Таким образом, мы можем при создании окна задать третий параметр, в котором определить функцию или строку, которая будет реакцией во время осмотра окна. При этом сообщение о том, что окно разбито (если оно действительно разбито), будет выведено перед этой реакцией.

В качестве завершающего примера, рассмотрим свою версию реализации vway, назовем ее xway (Впрочем, в lua можно переопределять функции. Вы можете, например, написать свою версию vway и она заменит ту, что определена в INSTEAD).

function xway(name, dsc, w)
        return  obj { 
                nam = name;
                dsc = dsc;
                act = function(s)
                        walk(s.where)
                end;
                where = w;
       };
end

Как видим, xway реализован как объект, который при клике выполняет xwalk в заданную при создании xway комнату.

На самом деле, у xway есть один недостаток, по сравнению с vway. Это невозможность создания объектов на лету, например, если вы напишите:

put (xway('в пещеру', '{В пещеру}', 'cave'));

То INSTEAD не сможет сохранить этот объект. Это произойдет потому, что вообще говоря, INSTEAD умеет сохранять только те объекты, которые имеют дескрипторы. Объекты, имеющие дескрипторы, это объекты созданные одним из следующих способов:

  1. Явным присвоением дескриптору в глобальном контексте (apple = obj {… );
  2. Явным созданием внутри списков obj и way (дескриптором станет элемент массива);
  3. Через механизм new (описано ниже).

В случае же с put мы создаем абсолютно безымянный объект. Тем не менее существует способ сделать объекты сохраняемыми в любом случае. То, что я опишу далее, вряд ли стоит использовать при написании игр. Обычно такие вещи имеют смысл при разработке модулей или расширений движка, так что вы можете спокойно пропустить эту часть.

Итак, для сохранения можно определить свою функцию сохранения.

function xway(name, dsc, w)
        return  obj { 
                nam = name;
                dsc = dsc;
                act = function(s)
                        walk(s.where)
                end;
                where = w;
                save = function(self, name, h, need)
                        -- self - текущий объект
                        -- name -- полное имя переменной
                        -- h - файловый дескриптор файла сохранения
                        -- need - признак того, что это создание объекта, 
                        -- файл сохранения должен создать объект 
                        -- при загрузке
                        local dsc = self.dsc;
                        local w = stead.deref(self.where);
                        if need then 
                        -- в случае создания, запишем строку 
                        -- с вызовом конструктора
                                h:write(stead.string.format(
                                         "%s  = xway(%s, %s, %s);\n",
                                         name,
                                         -- формирование строк
                                         stead.tostring(self.nam),                                     
                                         stead.tostring(dsc),
                                         stead.tostring(w)));
                        end
                        stead.savemembers(h, self, name, false); -- сохраним все 
                        -- остальные переменные объекта
                        -- например, состояние включен/выключен
                        -- итд
                        -- false в последней позиции означает что будет 
                        -- передано в save-методы вложенных объектов в 
                        -- качестве параметра need
               end
      };
end

На самом деле, я надеюсь, что вам никогда не понадобится разбираться с движком на таком глубоком уровне.

21. Полезные советы

Разбиение на файлы

Когда ваша игра становится большой, размещение ее кода целиком в main.lua – плохая идея.

Для разбиения текста игры на файлы вы можете использовать dofile. Вы должны использовать dofile в глобальном контексте таким образом, чтобы во время загрузки main.lua загрузились и все остальные фрагменты игры, например.

-- main.lua
instead_version "1.8.2"
dofile "episode1.lua"
dofile "npc.lau"
dofile "start.lua"
 
main = room {
....

Как именно разбивать исходный текст на файлы зависит только от вас. Я использую файлы в соответствии с эпизодами игры (которые обычно слабо связаны между собой), но можно создавать файлы, хранящие отдельно комнаты, объекты, диалоги и т.д. Это вопрос личного удобства.

Также есть возможность динамически подгружать части игры (с возможностью переопределения существующих объектов). Для этого вы можете воспользоваться функцией gamefile:

...
act = code [[ gamefile ("episode2.lua"); ]]
...

gamefile также позволяет загрузить новый файл и забыть стек предыдущих загрузок, запустив этот новый файл как самостоятельную игру. Для этого, задайте второй параметр функции как true. gamefile можно использовать только в обработчиках.

...
act = code [[ gamefile ("episode3.lua", true); ]]
...

Во втором варианте gamefile можно использовать для оформления мультиязычных игр или игр-сборников, где фактически из оболочки выполняется запуск самостоятельной игры.

Модули

Дополнительная функциональность часто реализована в INSTEAD в виде модулей. Для использования модуля необходимо после «instead_version» написать:

require "имя модуля"

Часть модулей входит в поставку INSTEAD, но есть и такие, которые вы можете скачать отдельно и положить в каталог с игрой. Вы можете заменить любой стандартный модуль своим, если положите его в каталог с игрой под тем-же именем файла, что и стандартный.

Модуль, это фактически lua файл с именем: имя_модуля.lua.

Самая свежая документация по модулям размещена здесь:
http://instead.syscall.ru/wiki/ru/gamedev/modules

Ниже перечислены основные модули, с указанием функциональности, которые они предоставляют.

  • dbg — модуль отладки (require «dbg» – включить отладчик);
  • xact — реализация ссылок;
  • click — модуль перехвата кликов мыши по картинке сцены;
  • prefs — модуль настроек (хранилище данных настроек);
  • snapshots — модуль поддержки снапшотов (для откатов игровых ситуаций);
  • format — модуль оформления вывода;
  • theme — управление темой на лету;
  • hideinv - модуль работы с инвентарем;
  • kbd - модуль обработки событий срабатывания клавиш;
  • timer - модуль отсчета времени;
  • sprites — модуль для работы со спрайтами;
  • sound — модуль работы со звуком;
  • nouse — модуль обработки реакций на не заданные действия при использовании объекта;
  • counters — модуль счетчиков событий;
  • wroom — модуль создания «умных» переходов;
  • nolife – модуль блокировки методов life;
  • proxymenu – модуль меню в стиле адвенчур на ZX-80.

Пример загрузки модулей:

--$Name: Моя игра!$
instead_version "1.8.2"
require "para"
require "dbg"
...

Подробнее о модулях: http://instead.syscall.ru/wiki/ru/gamedev/modules

Меню

Стандартное поведение предмета инвентаря состоит в том, что игрок должен сделать два щелчка мышью. Это необходимо потому, что каждый предмет инвентаря может быть использован на другой предмет сцены или инвентаря. После второго щелчка происходит игровой такт игры. Иногда такое поведение может быть нежелательным. Возможно, вы захотите сделать игру в которой игровая механика отличается от классических INSTEAD игр. Тогда вам может понадобится меню.

Меню – это элемент инвентаря, который срабатывает на первый клик. При этом меню может сообщить движку, что действие не является игровым тактом. Таким образом, используя меню вы можете создать в зоне инвентаря управление игрой любой сложности. Например, существует модуль «proxymenu», который реализует управление игрой в стиле квестов на ZX-«Спектрум». В игре «Особняк» свое управление, которое вводит несколько модификаторов действий, и т.д.

Итак, вы можете делать меню в области инвентаря, определяя объекты с типом menu. При этом, обработчик меню (menu) будет вызван после одного клика мыши. Если обработчик не возвращает текст, то состояние игры не изменяется. Например, реализация кармана:

pocket = menu {
	var { 
                state = false 
        };
        nam = 'карман';
	disp = function(s)
		if s.state then
			return txtu('карман'); -- подчеркиваем активный карман
		end 
		return 'карман';
	end;
	gen = function(s)
		if s.state then
			s:enable_all(); -- показать все предметы в кармане
		else
			s:disable_all(); -- спрятать все предметы в кармане
		end 
	end;
	menu = function(s)
                s.state = not s.state -- изменить состояние
		s:gen(); -- открыть или закрыть карман
	end;
};
 
knife = obj {
	nam = 'нож';
	inv = 'Это нож';
};
 
function init()
    take(pocket)
    put(knife, pocket) -- нож будет в кармане
    pocket:gen() -- проинициализируем карман
end
 
main = room {
	nam = 'test',
};

Статус игрока

Иногда возникает желание выводит какой-нибудь статус. Например, количество игровых очков, состояние героя или, наконец, время суток. INSTEAD не предоставляет каких-то других областей вывода, кроме сцены и инвентаря, поэтому, самым простым способом вывода статуса является вывод его в зону инвентаря.

Ниже представлена реализация статуса игрока в виде текста, который появляется в инвентаре, но не может быть выбран, то есть, выглядит просто как текст.

global {
    life = 10;
    power = 10;
}
 
status = stat { -- stat -- объект "статус"
        nam = 'статус';
	disp = function(s)
		pn ('Жизнь: ', life)
                pn ('Сила: ', power)
	end
};
take(status)

walk из обработчиков exit и enter

Вы можете делать walk из обработчиков enter и exit. Например, vroom реализован как комната с обработчиком enter, который переносит игрока в другую комнату. Если бы не было vroom, можно было бы написать переход без него следующим образом:

home = room {
       nam = 'Дома';
...
        way = {
                room {
                        nam = 'На улицу';
                        enter = code [[ walk 'street' ]];
                };
        }

Динамически создаваемые ссылки.

Строго говоря, ссылок в INSTEAD нет. Есть объекты и переходы.

Динамически создаваемые ссылки могут быть реализованы разным способом.

  1. Через включение/выключение объектов/переходов;
  2. Через динамическое добавление/удаление объектов/переходов;

Следует заметить, что объекты типа vway, vobj и переходы vroom, wroom сделаны таким образом, что могут создаваться на лету, это делает возможным записи вида:

put(vway('Дорога', 'Я заметил {дорогу}, ведущую в лес...', 'forest'), field); 
-- добавили ''vway'' в сцену field

Однако, я рекомендую использование enable/disable().

Кодирование исходного кода игры

Если вы не хотите показывать исходный код своих игр, вы можете закодировать исходный код с помощью параметра командной строки -encode:

sdl-instead -encode <путь к файлу> [выходной путь]

И использовать закодированный файл с помощью lua функции doencfile. При этом главный файл main.lua необходимо оставлять открытым. Таким образом, схема выглядит следующим образом (game – закодированный game.lua):

-- $Name: Моя закрытая игра!$
instead_version "1.8.2"
doencfile("game"); -- никто не узнает, как ее пройти!

Важно!

Не используйте компиляцию игр с помощью luac, так как luac создает платформозависимый код! Однако, компиляция игр может быть использована для поиска ошибок в коде.

Запаковка ресурсов

Вы можете упаковать ресурсы игры (графику, музыку, темы) в файл ресурсов .idf, для этого поместите все ресурсы в каталог data и запустите INSTEAD:

sdl-instead -idf <путь к data>

При этом, в текущем каталоге должен будет создастся файл data.idf. Поместите его в каталог с игрой. Теперь ресурсы игры в виде отдельных файлов можно удалить (конечно, оставив себе оригинальные файлы).

Вы можете запаковать в формат .idf всю игру:

sdl-instead -idf <путь к игре>

Игры в формате idf можно запускать как обычные игры instead (как если бы это были каталоги) а также из командной строки:

sdl-instead game.idf

Переключение между игроками

Вы можете создать игру с несколькими персонажами и время от времени переключаться между ними (см. change_pl). Но вы можете также использовать этот трюк для того, чтобы иметь возможность переключаться между разными типами инвентаря.

Использование параметров обработчика

Пример кода.

stone = obj {
	nam = 'камень';
	dsc = 'На краю лежит {камень}.';
	act = function()
		remove('stone');
		p 'Я толкнул камень, он сорвался и улетел вниз...';
	end

Обработчик act мог бы выглядеть проще:

	act = function(s)
		remove(s);
		p 'Я толкнул камень, он сорвался и улетел вниз...';
	end

Таймер

Для асинхронных событий, привязанных к реальному времени, в INSTEAD есть возможность использовать таймер. На самом деле, вам следует хорошо подумать, стоит ли в приключенческой игре использовать таймер. Обычно, игроком это воспринимается не слишком благосклонно. С другой стороны, таймер вполне можно использовать для управления музыкой или в оформительских целях.

Для использования таймера, вам следует подключить модуль «timer».

require "timer"

Таймер программируется с помощью объекта timer.

  • timer:set(мс) – задать интервал таймера в миллисекундах;
  • timer:stop() – остановить таймер;

При срабатывании таймера, вызывается обработчик game.timer. Если game.timer возвращает пустое значение, сцена не перерисовывается. В противном случае, возвращаемое значение выводится как реакция.

Вы можете делать локальные для комнаты обработчики timer. Если в комнате объявлен обработчик timer, он вызывается вместо game.timer.

Например:

game.timer = function(s)
    set_sound('gfx/beep.ogg');
    p ("Timer:", time())
end
 
function init()
    timer:set(1000) -- раз в секунду
end
myroom = room  {
    entered = function(s)
        timer:set(1000);
    end;
    timer = function(s)
        timer:stop();
        walk 'myroom2';
    end;
    nam = 'Проверка таймера';
    dsc = [[Ждите.]];
}

Состояние таймера попадает в файл сохранения, таким образом, вам не нужно заботиться о его восстановлении.

Кроме того, в INSTEAD существует возможность отслеживать интервалы времени в миллисекундах. Для этого используйте функцию stead.ticks(). Функция возвращает число миллисекунд, прошедшее с момента старта игры.

Музыкальный плеер

Вы можете написать для игры свой проигрыватель музыки, создав его на основе живого объекта, например:

-- играет треки в случайном порядке, начиная со 2-го
mplayer = obj {
        tracks = {"mus/astro2.mod", 
                   "mus/aws_chas.xm", 
                   "mus/dmageofd.xm", 
                   "mus/doomsday.s3m"};
	nam = 'плеер';
	life = function(s)
                if not is_music() then
	                local n = tracks[rnd(#s.tracks)]
			set_music(n, 1);
		end
	end;
};
lifeon('mplayer');

Ниже приводится пример более сложного плеера. Меняем трек только если он закончился или прошло более 2 минут и игрок перешел из комнаты в комнату. В каждом треке можно указать число проигрываний (0 - зацикленный трек):

require "timer"
global { track_time = 0 };
 
music_player = obj {
	nam = 'player';
	var { pos = 0; };
	playlist = { '01 Frozen sun.ogg', 0,
		'02 Thinking.ogg', 0,
		'03 Melancholy.ogg', 0,
		'04 Everyday happiness.ogg', 0,
		'10 Good morning again.ogg', 1,
		'15 [Bonus track] The end (demo cover).ogg', 1};
	life = function(s)
		if is_music() and ( track_time < 120 or not player_moved() ) then
			return
		end
		track_time = 0
                if s.pos == 0 then
                        s.pos == 1
                else
                        s.pos = s.pos + 2
                end
		if s.pos > #s.playlist then
			s.pos = 1
		end
		set_music('mus/'..s.playlist[s.pos], s.playlist[s.pos + 1]);
	end;
}
 
game.timer = function(s)
	track_time = track_time + 1
	music_player:life();
end
 
function init()
        timer:set(1000)
end

Живые объекты

Если вашему герою нужен друг, одним из способов может стать метод life этого персонажа, который всегда переносит объект в локацию игрока:

horse = obj {
	nam = 'лошадь';
	dsc = 'Рядом со мной стоит {лошадь}.';
        act = [[Моя лошадка.]];
	life = function(s)
		if player_moved() then
			move(s, here(), where(s));
		end
	end;
};
function init()
    put (horse, main); -- только в этом случае where() будет работать
    lifeon(horse); -- сразу оживим лошадь
end

Клавиатура

Вы можете перехватывать события клавиатуры с помощью модуля «kbd».

Обычно, перехват клавиш имеет смысл использовать для организации текстового ввода.

За описанием, обращайтесь к документации модуля «kbd».

Мышь

Вы можете отслеживать в своей игре клики по картинке сцены, а также по фону. Для этого, воспользуйтесь модулем «click». Также, вы можете отслеживать состояние мыши с помощью функции:

stead.mouse_pos([x, y])

Которая возвращает координаты курсора. Если задать параметры (x, y), то можно переместить курсор в указанную позицию (все координаты рассчитываются относительно левого верхнего угла окна INSTEAD).

Вызов меню

Вы можете вызвать из игры меню INSTEAD с помощью функции stead.menu_toggle(). Если в качестве параметра задать: 'save', 'load' или 'quit', то будет вызван соответствующий подраздел меню. (Поддерживается начиная с версии INSTEAD 1.8.3).

Динамическое создание объектов

Как вы уже знаете, объекты нельзя создавать на лету, если только у них не определена функция save, которая сможет сохранить состояние такого объекта.

Тем не менее существует способ создание любого объекта на лету. Для этого вам понадобится написать конструктор вашего объекта и воспользоваться функцией new.

Итак, вы можете использовать функции new и delete для создания и удаления динамических объектов. Примеры:

local o = new ([[obj { nam = 'test', act = 'test' }]]);
take(o);
...
put(new [[obj {nam = 'test' } ]]);
put(new('myconstructor()');
n = new('myconstructor()');
...
delete(n)

new воспринимает строку-аргумент, как конструктор объекта. Результатом выполнения конструктора должен быть объект. Таким образом в аргументе обычно задан вызов функции-конструктора. Например:

function myconstructor()
	local v = {}
	v.nam = 'тестовый объект'
	v.act = 'Тестовая реакция'
	return obj(v)
end

Созданный объект будет попадать в файл сохранения. new() возвращает сам объект.

Запрет на сохранение игры

Иногда может понадобиться запретить игроку делать сохранения в игре. Например, если речь идет о сценах, где важный элемент составляет случай, или для коротких игр, в которых проигрыш должен быть фатальным и требовать перезапуска игры.

Для управлением функции сохранения используется атрибут game.enable_save.

Например:

game.enable_save = false -- запретить сохранения

Если вы хотите запрещать сохранения не везде, а в некоторых сценах, оформите game.enable_save в виде функции:

-- запретить сохранения в комнатах, которые содержат атрибут nosave.
game.enable_save = function() 
        if here().nosave then
                return false
        end
        return true
end

Следует отметить, что запрет на сохранения не означает запрета на автосохранение. Для управления автосохранением воспользуйтесь аналогичным атрибутом game.enable_autosave.

Вы можете явно сохранять игру с помощью вызова: autosave([номер слота]); Если номер слота не задан, то игра будет сохранена под слотом 'автосохранение'. Имейте в виду, что сохраняется состояние после завершение текущего такта игры.

22. Темы для sdl-instead

Графический интерпретатор поддерживает механизм тем. Тема представляет из себя каталог, с файлом theme.ini внутри.

Тема, которая является минимально необходимой – это тема default. Эта тема всегда загружается первой. Все остальные темы наследуются от нее и могут частично или полностью заменять ее параметры. Выбор темы осуществляется пользователем через меню настроек, однако конкретная игра может содержать собственную тему и таким образом влиять на свой внешний вид. В этом случае в каталоге с игрой должен находиться свой файл theme.ini. Тем не менее, пользователь свободен отключить данный механизм, при этом интерпретатор будет предупреждать о нарушении творческого замысла автора игры.

Синтаксис theme.ini очень прост.

<параметр> = <значение> 

или

; комментарий

Значения могут быть следующих типов: строка, цвет, число.

Цвет задается в форме #rgb, где r g и b компоненты цвета в шестнадцатеричном виде. Кроме того некоторые основные цвета распознаются по своим именам. Например: yellowgreen, или violet.

Параметры могут принимать значения:

  • scr.w = ширина игрового пространства в пикселях (число)
  • scr.h = высота игрового пространства в пикселях (число)
  • scr.col.bg = цвет фона
  • scr.gfx.scalable = [0|1|2] (0 - не масштабируемая тема, 1 - масштабируемая, 2 - кратно-масштабируемая)
  • scr.gfx.bg = путь к картинке фонового изображения (строка)
  • scr.gfx.cursor.x = x координата центра курсора (число)
  • scr.gfx.cursor.y = y координата центра курсора (число)
  • scr.gfx.cursor.normal = путь к картинке-курсору (строка)
  • scr.gfx.cursor.use = путь к картинке-курсору режима использования (строка)
  • scr.gfx.use = путь к картинке-индикатору режима использования (строка)
  • scr.gfx.pad = размер отступов к скролл-барам и краям меню (число)
  • scr.gfx.x, scr.gfx.y, scr.gfx.w, scr.gfx.h = координаты, ширина и высота окна изображений. Области в которой располагается картинка сцены. Интерпретация зависит от режима расположения (числа)
  • win.gfx.h - синоним scr.gfx.h (для совместимости)
  • scr.gfx.mode = режим расположения (строка fixed, embedded или float). Задает режим изображения. embedded – картинка является частью содержимого главного окна, параметры scr.gfx.x, scr.gfx.y, scr.gfx.w игнорируются. float – картинка расположена по указанным координатам (scr.gfx.x, scr.gfx.y) и масштабируется к размеру scr.gfx.w x scr.gfx.h если превышает его. fixed – картинка является частью сцены как в режиме embedded, но не скроллируется вместе с текстом а расположена непосредственно над ним. Доступны модификации режима float с модификаторами 'left/right/center/middle/bottom/top', указывающими как именно размещать картинку в области sct.gfx. Например: float-top-left;
  • win.scroll.mode = [0|1|2|3] режим прокрутки области сцены. 0 - нет автоматической прокрутки, 1 - прокрутка на изменение в тексте, 2 прокрутка на изменение, только если изменение не видно, 3 - всегда в конец;
  • win.x, win.y, win.w, win.h = координаты, ширина и высота главного окна. Области в которой располагается описание сцены (числа)
  • win.fnt.name = путь к файлу-шрифту (строка). Здесь и далее, шрифт может содержать описание всех начертаний, например: {sans,sans-b,sans-i,sans-bi}.ttf (заданы начертания для regular, bold, italic и bold-italic). Вы можете опускать какие-то начертания, и движок сам сгенерирует их на основе обычного начертания, например: {sans,,sans-i}.ttf (заданы только regular и italic);
  • win.align = center/left/right/justify (выравнивание текста в окне сцены);
  • win.fnt.size = размер шрифта главного окна (размер)
  • win.fnt.height = междустрочный интервал как число с плавающей запятой (1.0 по умолчанию)
  • win.gfx.up, win.gfx.down = пути к файлам-изображениям скорллеров вверх/вниз для главного окна (строка)
  • win.up.x, win.up.y, win.down.x, win.down.y = координаты скроллеров (координата или -1)
  • win.col.fg = цвет текста главного окна (цвет)
  • win.col.link = цвет ссылок главного окна (цвет)
  • win.col.alink = цвет активных ссылок главного окна (цвет)
  • inv.x, inv.y, inv.w, inv.h = координаты, высота и ширина области инвентаря. (числа)
  • inv.mode = строка режима инвентаря (horizontal или vertical). В горизонтальном режиме инвентаря в одной строке могут быть несколько предметов. В вертикальном режиме, в каждой строке инвентаря содержится только один предмет. (число) Существует модификации (-left/right/center). Вы можете задать режим disabled если в вашей игре не нужен инвентарь;
  • inv.col.fg = цвет текста инвентаря (цвет)
  • inv.col.link = цвет ссылок инвентаря (цвет)
  • inv.col.alink = цвет активных ссылок инвентаря (цвет)
  • inv.fnt.name = путь к файлу-шрифту инвентаря (строка)
  • inv.fnt.size = размер шрифта инвентаря (размер)
  • inv.fnt.height = междустрочный интервал как число с плавающей запятой (1.0 по умолчанию)
  • inv.gfx.up, inv.gfx.down = пути к файлам-изображениям скорллеров вверх/вниз для инвентаря (строка)
  • inv.up.x, inv.up.y, inv.down.x, inv.down.y = координаты скроллеров (координата или -1)
  • menu.col.bg = фон меню (цвет)
  • menu.col.fg = цвет текста меню (цвет)
  • menu.col.link = цвет ссылок меню (цвет)
  • menu.col.alink = цвет активных ссылок меню (цвет)
  • menu.col.alpha = прозрачность меню 0-255 (число)
  • menu.col.border = цвет бордюра меню (цвет)
  • menu.bw = толщина бордюра меню (число)
  • menu.fnt.name = путь к файлу-шрифту меню (строка)
  • menu.fnt.size = размер шрифта меню (размер)
  • menu.fnt.height = междустрочный интервал как число с плавающей запятой (1.0 по умолчанию)
  • menu.gfx.button = путь к файлу изображению значка меню (строка)
  • menu.button.x, menu.button.y = координаты кнопки меню (числа)
  • snd.click = путь к звуковому файлу щелчка (строка)
  • include = имя темы (последний компонент в пути каталога) (строка)

Кроме того, заголовок темы может включать в себя комментарии с тегами. На данный момент существует только один тег: $Name:, содержащий UTF-8 строку с именем темы. Например:

; $Name:Новая тема$
; модификация темы book
include = book -- использовать тему ''Книга''
scr.gfx.h = 500 -- заменить в ней один параметр

Интерпретатор выполняет поиск тем в каталоге themes. Unix версия кроме этого каталога, просматривает также каталог ~/.instead/themes/ Windows версия – Documents and Settings/USER/Local Settings/Application Data/instead/themes

instead-1.9.1/doc/instead-modules.pdf000644 001751 001751 00001721154 12161555602 020026 0ustar00peterpeter000000 000000 %PDF-1.4 5 0 obj << /S /GoTo /D (section*.2) >> endobj 8 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000c\000l\000i\000c\000k) endobj 9 0 obj << /S /GoTo /D (section*.3) >> endobj 12 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 13 0 obj << /S /GoTo /D (section*.4) >> endobj 16 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 17 0 obj << /S /GoTo /D (section*.5) >> endobj 20 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000f\000o\000r\000m\000a\000t) endobj 21 0 obj << /S /GoTo /D (section*.6) >> endobj 24 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 25 0 obj << /S /GoTo /D (section*.7) >> endobj 28 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 29 0 obj << /S /GoTo /D (section*.8) >> endobj 32 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000h\000i\000d\000e\000i\000n\000v) endobj 33 0 obj << /S /GoTo /D (section*.9) >> endobj 36 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 37 0 obj << /S /GoTo /D (section*.10) >> endobj 40 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 41 0 obj << /S /GoTo /D (section*.11) >> endobj 44 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000k\000b\000d) endobj 45 0 obj << /S /GoTo /D (section*.12) >> endobj 48 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 49 0 obj << /S /GoTo /D (section*.13) >> endobj 52 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 53 0 obj << /S /GoTo /D (section*.14) >> endobj 56 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000p\000r\000e\000f\000s) endobj 57 0 obj << /S /GoTo /D (section*.15) >> endobj 60 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 61 0 obj << /S /GoTo /D (section*.16) >> endobj 64 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 65 0 obj << /S /GoTo /D (section*.17) >> endobj 68 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000t\000i\000m\000e\000r) endobj 69 0 obj << /S /GoTo /D (section*.18) >> endobj 72 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 73 0 obj << /S /GoTo /D (section*.19) >> endobj 76 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 77 0 obj << /S /GoTo /D (section*.20) >> endobj 80 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000x\000a\000c\000t) endobj 81 0 obj << /S /GoTo /D (section*.21) >> endobj 84 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 85 0 obj << /S /GoTo /D (section*.22) >> endobj 88 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 89 0 obj << /S /GoTo /D (section*.23) >> endobj 92 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000s\000p\000r\000i\000t\000e\000s) endobj 93 0 obj << /S /GoTo /D (section*.24) >> endobj 96 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 97 0 obj << /S /GoTo /D (section*.25) >> endobj 100 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000l\000o\000a\000d\000\050\000f\000i\000l\000e\000\137\000n\000a\000m\000e\000\051) endobj 101 0 obj << /S /GoTo /D (section*.26) >> endobj 104 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000b\000o\000x\000\050\000w\000,\000h\000,\000[\000c\000o\000l\000o\000r\000[\000,\000a\000l\000p\000h\000a\000]\000]\000\051) endobj 105 0 obj << /S /GoTo /D (section*.27) >> endobj 108 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000b\000l\000a\000n\000k\000\050\000w\000,\000h\000\051) endobj 109 0 obj << /S /GoTo /D (section*.28) >> endobj 112 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000f\000r\000e\000e\000\050\000s\000p\000r\000\051) endobj 113 0 obj << /S /GoTo /D (section*.29) >> endobj 116 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000s\000c\000r\000e\000e\000n\000\050\000\051) endobj 117 0 obj << /S /GoTo /D (section*.30) >> endobj 120 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000f\000o\000n\000t\000\137\000s\000c\000a\000l\000e\000d\000\137\000s\000i\000z\000e\000\050\000s\000i\000z\000e\000\051) endobj 121 0 obj << /S /GoTo /D (section*.31) >> endobj 124 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000f\000o\000n\000t\000\050\000f\000o\000n\000t\000\137\000p\000a\000t\000h\000,\000\040\000s\000i\000z\000e\000\051) endobj 125 0 obj << /S /GoTo /D (section*.32) >> endobj 128 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000f\000r\000e\000e\000\137\000f\000o\000n\000t\000\050\000f\000o\000n\000t\000\051) endobj 129 0 obj << /S /GoTo /D (section*.33) >> endobj 132 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000f\000o\000n\000t\000\137\000h\000e\000i\000g\000h\000t\000\050\000f\000o\000n\000t\000\051) endobj 133 0 obj << /S /GoTo /D (section*.34) >> endobj 136 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000a\000l\000p\000h\000a\000\050\000s\000p\000r\000,\000\040\000a\000l\000p\000h\000a\000\051) endobj 137 0 obj << /S /GoTo /D (section*.35) >> endobj 140 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000d\000u\000p\000\050\000s\000p\000r\000\051) endobj 141 0 obj << /S /GoTo /D (section*.36) >> endobj 144 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000s\000c\000a\000l\000e\000\050\000s\000p\000r\000,\000\040\000x\000s\000,\000\040\000y\000s\000,\000\040\000[\000s\000m\000o\000o\000t\000h\000]\000\051) endobj 145 0 obj << /S /GoTo /D (section*.37) >> endobj 148 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000r\000o\000t\000a\000t\000e\000\050\000s\000p\000r\000,\000\040\000a\000n\000g\000l\000e\000,\000\040\000[\000s\000m\000o\000o\000t\000h\000]\000\051) endobj 149 0 obj << /S /GoTo /D (section*.38) >> endobj 152 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000t\000e\000x\000t\000\050\000f\000o\000n\000t\000,\000\040\000t\000e\000x\000t\000,\000\040\000c\000o\000l\000,\000\040\000[\000s\000t\000y\000l\000e\000]\000\051) endobj 153 0 obj << /S /GoTo /D (section*.39) >> endobj 156 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000s\000i\000z\000e\000\050\000s\000p\000r\000\051) endobj 157 0 obj << /S /GoTo /D (section*.40) >> endobj 160 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000t\000e\000x\000t\000\137\000s\000i\000z\000e\000\050\000f\000o\000n\000t\000,\000\040\000t\000e\000x\000t\000\051) endobj 161 0 obj << /S /GoTo /D (section*.41) >> endobj 164 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000d\000r\000a\000w\000\050\000s\000r\000c\000\137\000s\000p\000r\000,\000\040\000f\000x\000,\000\040\000f\000y\000,\000\040\000f\000w\000,\000\040\000f\000h\000,\000\040\000d\000s\000t\000\137\000s\000p\000r\000,\000\040\000x\000,\000\040\000y\000,\000\040\000[\000a\000l\000p\000h\000a\000]\000\051) endobj 165 0 obj << /S /GoTo /D (section*.42) >> endobj 168 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000d\000r\000a\000w\000\050\000s\000r\000c\000\137\000s\000p\000r\000,\000\040\000d\000s\000t\000\137\000s\000p\000r\000,\000\040\000x\000,\000\040\000y\000,\000\040\000[\000a\000l\000p\000h\000a\000]\000\051) endobj 169 0 obj << /S /GoTo /D (section*.43) >> endobj 172 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000c\000o\000p\000y\000\050\000s\000r\000c\000\137\000s\000p\000r\000,\000\040\000f\000x\000,\000\040\000f\000y\000,\000\040\000f\000w\000,\000\040\000f\000h\000,\000\040\000d\000s\000t\000\137\000s\000p\000r\000,\000\040\000x\000,\000\040\000y\000,\000\040\000[\000a\000l\000p\000h\000a\000]\000\051) endobj 173 0 obj << /S /GoTo /D (section*.44) >> endobj 176 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000c\000o\000m\000p\000o\000s\000e\000\050\000s\000r\000c\000\137\000s\000p\000r\000,\000\040\000f\000x\000,\000\040\000f\000y\000,\000\040\000f\000w\000,\000\040\000f\000h\000,\000\040\000d\000s\000t\000\137\000s\000p\000r\000,\000\040\000x\000,\000\040\000y\000,\000\040\000[\000a\000l\000p\000h\000a\000]\000\051) endobj 177 0 obj << /S /GoTo /D (section*.45) >> endobj 180 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000c\000o\000p\000y\000\050\000s\000r\000c\000\137\000s\000p\000r\000,\000\040\000d\000s\000t\000\137\000s\000p\000r\000,\000\040\000x\000,\000\040\000y\000,\000\040\000[\000a\000l\000p\000h\000a\000]\000\051) endobj 181 0 obj << /S /GoTo /D (section*.46) >> endobj 184 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000f\000i\000l\000l\000\050\000s\000p\000r\000,\000\040\000x\000,\000\040\000y\000,\000\040\000[\000w\000,\000\040\000h\000,\000\040\000[\000c\000o\000l\000]\000]\000\051) endobj 185 0 obj << /S /GoTo /D (section*.47) >> endobj 188 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000p\000i\000x\000e\000l\000\050\000s\000p\000r\000,\000\040\000x\000,\000\040\000y\000,\000\040\000c\000o\000l\000,\000\040\000[\000a\000l\000p\000h\000a\000]\000\051) endobj 189 0 obj << /S /GoTo /D (section*.48) >> endobj 192 0 obj (\376\377\000s\000p\000r\000i\000t\000e\000.\000p\000i\000x\000e\000l\000\050\000s\000p\000r\000,\000\040\000x\000,\000\040\000y\000\051) endobj 193 0 obj << /S /GoTo /D (section*.49) >> endobj 196 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 197 0 obj << /S /GoTo /D (section*.50) >> endobj 200 0 obj (\376\377\004\036\004\061\004\111\004\070\004\065\000\040\004\100\004\065\004\072\004\076\004\074\004\065\004\075\004\064\004\060\004\106\004\070\004\070) endobj 201 0 obj << /S /GoTo /D (section*.51) >> endobj 204 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000s\000o\000u\000n\000d) endobj 205 0 obj << /S /GoTo /D (section*.52) >> endobj 208 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 209 0 obj << /S /GoTo /D (section*.53) >> endobj 212 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 213 0 obj << /S /GoTo /D (section*.54) >> endobj 216 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000n\000o\000u\000s\000e) endobj 217 0 obj << /S /GoTo /D (section*.55) >> endobj 220 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 221 0 obj << /S /GoTo /D (section*.56) >> endobj 224 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 225 0 obj << /S /GoTo /D (section*.57) >> endobj 228 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000c\000o\000u\000n\000t\000e\000r\000s) endobj 229 0 obj << /S /GoTo /D (section*.58) >> endobj 232 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 233 0 obj << /S /GoTo /D (section*.59) >> endobj 236 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 237 0 obj << /S /GoTo /D (section*.60) >> endobj 240 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000w\000r\000o\000o\000m) endobj 241 0 obj << /S /GoTo /D (section*.61) >> endobj 244 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 245 0 obj << /S /GoTo /D (section*.62) >> endobj 248 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 249 0 obj << /S /GoTo /D (section*.63) >> endobj 252 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000n\000o\000l\000i\000f\000e) endobj 253 0 obj << /S /GoTo /D (section*.64) >> endobj 256 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 257 0 obj << /S /GoTo /D (section*.65) >> endobj 260 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 261 0 obj << /S /GoTo /D (section*.66) >> endobj 264 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000p\000r\000o\000x\000y\000m\000e\000n\000u) endobj 265 0 obj << /S /GoTo /D (section*.67) >> endobj 268 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 269 0 obj << /S /GoTo /D (section*.68) >> endobj 272 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 273 0 obj << /S /GoTo /D (section*.69) >> endobj 276 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000d\000a\000s\000h) endobj 277 0 obj << /S /GoTo /D (section*.70) >> endobj 280 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 281 0 obj << /S /GoTo /D (section*.71) >> endobj 284 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 285 0 obj << /S /GoTo /D (section*.72) >> endobj 288 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000h\000o\000t\000k\000e\000y\000s) endobj 289 0 obj << /S /GoTo /D (section*.73) >> endobj 292 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 293 0 obj << /S /GoTo /D (section*.74) >> endobj 296 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 297 0 obj << /S /GoTo /D (section*.75) >> endobj 300 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000p\000a\000r\000a) endobj 301 0 obj << /S /GoTo /D (section*.76) >> endobj 304 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 305 0 obj << /S /GoTo /D (section*.77) >> endobj 308 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 309 0 obj << /S /GoTo /D (section*.78) >> endobj 312 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000q\000u\000o\000t\000e\000s) endobj 313 0 obj << /S /GoTo /D (section*.79) >> endobj 316 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 317 0 obj << /S /GoTo /D (section*.80) >> endobj 320 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 321 0 obj << /S /GoTo /D (section*.81) >> endobj 324 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000t\000h\000e\000m\000e) endobj 325 0 obj << /S /GoTo /D (section*.82) >> endobj 328 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 329 0 obj << /S /GoTo /D (section*.83) >> endobj 332 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 333 0 obj << /S /GoTo /D (section*.84) >> endobj 336 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000s\000n\000a\000p\000s\000h\000o\000t\000s) endobj 337 0 obj << /S /GoTo /D (section*.85) >> endobj 340 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 341 0 obj << /S /GoTo /D (section*.86) >> endobj 344 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 345 0 obj << /S /GoTo /D (section*.87) >> endobj 348 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000d\000b\000g) endobj 349 0 obj << /S /GoTo /D (section*.88) >> endobj 352 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 353 0 obj << /S /GoTo /D (section*.89) >> endobj 356 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 357 0 obj << /S /GoTo /D (section*.90) >> endobj 360 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000t\000r\000i\000g\000g\000e\000r) endobj 361 0 obj << /S /GoTo /D (section*.91) >> endobj 364 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 365 0 obj << /S /GoTo /D (section*.92) >> endobj 368 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 369 0 obj << /S /GoTo /D (section*.93) >> endobj 372 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000k\000e\000y\000b\000o\000a\000r\000d) endobj 373 0 obj << /S /GoTo /D (section*.94) >> endobj 376 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 377 0 obj << /S /GoTo /D (section*.95) >> endobj 380 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 381 0 obj << /S /GoTo /D (section*.96) >> endobj 384 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000c\000u\000t\000s\000c\000e\000n\000e) endobj 385 0 obj << /S /GoTo /D (section*.97) >> endobj 388 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 389 0 obj << /S /GoTo /D (section*.98) >> endobj 392 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 393 0 obj << /S /GoTo /D (section*.99) >> endobj 396 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\114\000\040\000f\000o\000n\000t\000s) endobj 397 0 obj << /S /GoTo /D (section*.100) >> endobj 400 0 obj (\376\377\004\036\004\077\004\070\004\101\004\060\004\075\004\070\004\065) endobj 401 0 obj << /S /GoTo /D (section*.101) >> endobj 404 0 obj (\376\377\004\037\004\100\004\070\004\074\004\065\004\100\004\113\000\040\004\070\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\117) endobj 405 0 obj << /S /GoTo /D [406 0 R /Fit ] >> endobj 408 0 obj << /Length 1264 /Filter /FlateDecode >> stream xYM6>~S4)C/!ݏdnSleLih>0$OǙ7|:I^9E'mwr'ۏw0`B̯;0VnpaZ v֠{'ON8a65VY:7tn54Olwux)@D@T1!j"Bc@x@nԦ#42޸)!tqg^afjI5#'^8}NK*JJ5ڕ>s U6ҫƚ$N1q Dy9>>s"I$3)Ʃ)*/ IRtgHd6PvTmCm, j\/@) "6x%TZ S^bK)`B(M~7QV)eƚ,*) C IΓHZmk ;a<a putUpe:w8$a<tf}#S )iL%ys+.˛ 9<2*;^6,N//QH_%+g+P &,ݲ)M][M?P{Gj2Tvjd42Hcs5:iVc3M̷,J.UK v#&VLhbVHKm6X1~Y\ȳLL;/@;YFnb)veP!JOg"E  6z1=a+XW ȮbdR(_jm^٨PZoevVf \6VCJt!q6h-sQLMmOP?V^ƍhlWFYThj%C0l  u񤒟V;qU[R5ּZss!`Tg|s!nJ֌V6jeSys.fW&#3E %y'˨ӝǧEcvfsq@5eЃOVcX^񼲗V3q*-T=ڼln碞n)[N15ghFC+'T\ G%F=[54^2tCZ) ;ch.ڄ^ܥ`=%$@Kv񼲡5x%CZ 횆jvPhlbQ5(`m -nJ֌ˆ6jhSs.$f%q.hh $ 酝~-@@=eZX)@endstream endobj 406 0 obj << /Type /Page /Contents 408 0 R /Resources 407 0 R /MediaBox [0 0 612 792] /Parent 445 0 R /Annots [ 421 0 R 425 0 R 429 0 R 430 0 R 431 0 R 432 0 R 433 0 R 434 0 R 435 0 R 436 0 R 437 0 R 438 0 R 439 0 R 440 0 R 441 0 R 442 0 R 443 0 R 444 0 R ] >> endobj 421 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 502.6912 159.0326 513.5372] /Subtype /Link /A << /S /GoTo /D (section*.2) >> >> endobj 425 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 486.6952 151.4518 495.4938] /Subtype /Link /A << /S /GoTo /D (section*.3) >> >> endobj 429 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 466.8257 220.4815 477.5611] /Subtype /Link /A << /S /GoTo /D (section*.4) >> >> endobj 430 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 438.9327 170.2724 449.7788] /Subtype /Link /A << /S /GoTo /D (section*.5) >> >> endobj 431 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 422.9367 151.4518 431.7354] /Subtype /Link /A << /S /GoTo /D (section*.6) >> >> endobj 432 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 403.0672 220.4815 413.8026] /Subtype /Link /A << /S /GoTo /D (section*.7) >> >> endobj 433 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 375.1743 173.1913 386.0203] /Subtype /Link /A << /S /GoTo /D (section*.8) >> >> endobj 434 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 359.1782 151.4518 367.9769] /Subtype /Link /A << /S /GoTo /D (section*.9) >> >> endobj 435 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 339.3088 220.4815 350.0441] /Subtype /Link /A << /S /GoTo /D (section*.10) >> >> endobj 436 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 311.4158 155.8509 322.2619] /Subtype /Link /A << /S /GoTo /D (section*.11) >> >> endobj 437 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 295.4198 151.4518 304.2184] /Subtype /Link /A << /S /GoTo /D (section*.12) >> >> endobj 438 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 275.5503 220.4815 286.2857] /Subtype /Link /A << /S /GoTo /D (section*.13) >> >> endobj 439 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 247.6573 161.109 258.5034] /Subtype /Link /A << /S /GoTo /D (section*.14) >> >> endobj 440 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 231.6613 151.4518 240.46] /Subtype /Link /A << /S /GoTo /D (section*.15) >> >> endobj 441 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 211.7918 220.4815 222.5272] /Subtype /Link /A << /S /GoTo /D (section*.16) >> >> endobj 442 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 183.8989 163.9089 194.7449] /Subtype /Link /A << /S /GoTo /D (section*.17) >> >> endobj 443 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 167.9028 151.4518 176.7015] /Subtype /Link /A << /S /GoTo /D (section*.18) >> >> endobj 444 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 148.0334 220.4815 158.7688] /Subtype /Link /A << /S /GoTo /D (section*.19) >> >> endobj 409 0 obj << /D [406 0 R /XYZ 91.8009 721.8656 null] >> endobj 410 0 obj << /D [406 0 R /XYZ 91.8009 696.959 null] >> endobj 420 0 obj << /D [406 0 R /XYZ 91.8009 523.6538 null] >> endobj 407 0 obj << /Font << /F18 413 0 R /F19 416 0 R /F34 419 0 R /F35 424 0 R /F15 428 0 R >> /ProcSet [ /PDF /Text ] >> endobj 448 0 obj << /Length 2367 /Filter /FlateDecode >> stream xKo8:{1^q^ęOZJ&UB㟪b'#GtA0y蜌}A -=SxҸ{9܎GJGA6UzB:v(C />)?)cWJcZY^]*.^wտ>x&ukZQOm Yܴf%^Z[rbc]c>Rcc״6qeW̚t:LbKyCg_{_|wV<(#8AjkmlL pĈǼ0vY6 t~ܩ+u1ElpxMv soS E`NpEENJ8rZ_ E4@tmB:6h1,ޞIŌhϲl}~I~9lU]nc[d5*"̱eqJ1߲q3#gُlh\cˆUZ6׹eC[6A}P[9c^Ur6 ? fa˲J/f]5PKM t }+mn{3q0`pIQ%OV\YdloL;轱 tPAM _ИefFy]a9S);Es|$F|$/܈8,yq,q4ӵ5 qВ+"?E#$cpߑiu |x7Sb=-յc&FTDg&&:gbK1`Mqmg3y> :|$d֩16WDY5.'endstream endobj 447 0 obj << /Type /Page /Contents 448 0 R /Resources 446 0 R /MediaBox [0 0 612 792] /Parent 445 0 R /Annots [ 450 0 R 451 0 R 452 0 R 453 0 R 454 0 R 455 0 R 456 0 R 457 0 R 458 0 R 459 0 R 460 0 R 461 0 R 462 0 R 463 0 R 464 0 R 465 0 R 466 0 R 467 0 R 468 0 R 469 0 R 470 0 R 471 0 R 472 0 R 473 0 R 474 0 R 475 0 R 476 0 R 477 0 R 478 0 R 479 0 R 480 0 R ] >> endobj 450 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 684.0634 157.919 694.8264] /Subtype /Link /A << /S /GoTo /D (section*.20) >> >> endobj 451 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 668.1843 151.4518 676.983] /Subtype /Link /A << /S /GoTo /D (section*.21) >> >> endobj 452 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 648.4317 220.4815 659.1671] /Subtype /Link /A << /S /GoTo /D (section*.22) >> >> endobj 453 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 620.6557 169.7633 631.5018] /Subtype /Link /A << /S /GoTo /D (section*.23) >> >> endobj 454 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 604.7766 151.4518 613.5753] /Subtype /Link /A << /S /GoTo /D (section*.24) >> >> endobj 455 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 584.4707 227.5644 596.4235] /Subtype /Link /A << /S /GoTo /D (section*.25) >> >> endobj 456 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 566.6549 258.3027 578.6076] /Subtype /Link /A << /S /GoTo /D (section*.26) >> >> endobj 457 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 548.8391 205.1539 560.7918] /Subtype /Link /A << /S /GoTo /D (section*.27) >> >> endobj 458 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 531.0233 194.751 542.976] /Subtype /Link /A << /S /GoTo /D (section*.28) >> >> endobj 459 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 513.2074 192.2333 525.1602] /Subtype /Link /A << /S /GoTo /D (section*.29) >> >> endobj 460 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 495.3916 255.3976 507.3443] /Subtype /Link /A << /S /GoTo /D (section*.30) >> >> endobj 461 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 477.5758 249.2002 489.5285] /Subtype /Link /A << /S /GoTo /D (section*.31) >> >> endobj 462 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 459.76 223.442 471.7127] /Subtype /Link /A << /S /GoTo /D (section*.32) >> >> endobj 463 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 441.9441 234.4812 453.8969] /Subtype /Link /A << /S /GoTo /D (section*.33) >> >> endobj 464 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 424.1283 232.6275 436.081] /Subtype /Link /A << /S /GoTo /D (section*.34) >> >> endobj 465 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 406.3125 195.5534 418.2652] /Subtype /Link /A << /S /GoTo /D (section*.35) >> >> endobj 466 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 388.4967 273.5197 400.4494] /Subtype /Link /A << /S /GoTo /D (section*.36) >> >> endobj 467 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 370.6808 277.2547 382.6336] /Subtype /Link /A << /S /GoTo /D (section*.37) >> >> endobj 468 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 352.865 273.5473 364.8177] /Subtype /Link /A << /S /GoTo /D (section*.38) >> >> endobj 469 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 335.0492 194.502 347.0019] /Subtype /Link /A << /S /GoTo /D (section*.39) >> >> endobj 470 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 317.2334 246.9868 329.1861] /Subtype /Link /A << /S /GoTo /D (section*.40) >> >> endobj 471 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 299.4175 377.0228 311.3703] /Subtype /Link /A << /S /GoTo /D (section*.41) >> >> endobj 472 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 281.6017 318.0916 293.5544] /Subtype /Link /A << /S /GoTo /D (section*.42) >> >> endobj 473 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 263.7859 375.6118 275.7386] /Subtype /Link /A << /S /GoTo /D (section*.43) >> >> endobj 474 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 245.9701 392.5441 257.9228] /Subtype /Link /A << /S /GoTo /D (section*.44) >> >> endobj 475 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 228.1542 316.6806 240.107] /Subtype /Link /A << /S /GoTo /D (section*.45) >> >> endobj 476 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 210.3384 266.1048 222.2911] /Subtype /Link /A << /S /GoTo /D (section*.46) >> >> endobj 477 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 192.5226 275.235 204.4753] /Subtype /Link /A << /S /GoTo /D (section*.47) >> >> endobj 478 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 174.7068 222.3906 186.6595] /Subtype /Link /A << /S /GoTo /D (section*.48) >> >> endobj 479 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 157.4443 220.4815 168.1797] /Subtype /Link /A << /S /GoTo /D (section*.49) >> >> endobj 480 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.6535 139.6285 228.5881 150.4745] /Subtype /Link /A << /S /GoTo /D (section*.50) >> >> endobj 449 0 obj << /D [447 0 R /XYZ 91.8009 721.8656 null] >> endobj 446 0 obj << /Font << /F35 424 0 R /F15 428 0 R >> /ProcSet [ /PDF /Text ] >> endobj 483 0 obj << /Length 1523 /Filter /FlateDecode >> stream xKoD^)"$ H&{;][)T[݋XtuO:_n5HG I(e J~RQ5}3ӛÏXZ#Yվ}ыE^}qCk?~*v;q~g4][f-];sgݘh_v~W?ܖ;!S+A'ڡMUI}J *^]O=ݍCνf]Ias_Yڗ8)/6%]egǿ[A9%61*AcZ U)@â^z wM-Ύa y04\ߏϷ?uz4:-* 3lNk/tB#:";ݮ֋8:AMS)QjB؁ZVgJC 5#Rc*@ 5鄣q=ϲӡ}MPþ Ը jg:(6c;M<j\ ӊpe@PÛ+P6A8qvNauPs.P+b4>|cC6v2k"ߜU"9- NUVvNb]m[NG5! *H6iؼÃjW6,;iHN2]UېVEvz8tZ'꺿֌OB0ӊxyiGym紸 B;YqZVYm{8SLcz7&C7,;nW[W[k9>UdB7 nnF:,jc6Xu%ݤ4ԡ[VOڗ]< xᙻA71ziz|J)C=/}u|eU6i𠦁ծXu5M}/YvL ӪmL#:";ݮ֋8iE 3gmȯc\`{6#MnfTo׶̎) tA_ް7kY>U3bل6luAYQѶ%QM jE}/'G>7 FMqX`VYl[WFT%y20Ev2̰ s 4:Z8z)w x7WVmn#Zqiqv^QUF$b SMiYF8EmrUendstream endobj 482 0 obj << /Type /Page /Contents 483 0 R /Resources 481 0 R /MediaBox [0 0 612 792] /Parent 445 0 R /Annots [ 485 0 R 486 0 R 487 0 R 488 0 R 489 0 R 490 0 R 491 0 R 492 0 R 493 0 R 494 0 R 495 0 R 496 0 R 497 0 R 498 0 R 499 0 R 500 0 R 501 0 R 502 0 R 503 0 R 504 0 R 505 0 R 506 0 R 507 0 R 508 0 R 509 0 R 510 0 R 511 0 R ] >> endobj 485 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 684.0634 166.096 694.9094] /Subtype /Link /A << /S /GoTo /D (section*.51) >> >> endobj 486 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 668.125 151.4518 676.9236] /Subtype /Link /A << /S /GoTo /D (section*.52) >> >> endobj 487 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 648.3131 220.4815 659.0485] /Subtype /Link /A << /S /GoTo /D (section*.53) >> >> endobj 488 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 620.4778 164.9824 631.2408] /Subtype /Link /A << /S /GoTo /D (section*.54) >> >> endobj 489 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 604.5394 151.4518 613.3381] /Subtype /Link /A << /S /GoTo /D (section*.55) >> >> endobj 490 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 584.7276 220.4815 595.4629] /Subtype /Link /A << /S /GoTo /D (section*.56) >> >> endobj 491 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 556.8922 178.9267 567.6553] /Subtype /Link /A << /S /GoTo /D (section*.57) >> >> endobj 492 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 540.9538 151.4518 549.7525] /Subtype /Link /A << /S /GoTo /D (section*.58) >> >> endobj 493 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 521.142 220.4815 531.8773] /Subtype /Link /A << /S /GoTo /D (section*.59) >> >> endobj 494 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 493.3066 171.0678 504.0697] /Subtype /Link /A << /S /GoTo /D (section*.60) >> >> endobj 495 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 477.3682 151.4518 486.1669] /Subtype /Link /A << /S /GoTo /D (section*.61) >> >> endobj 496 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 457.5564 220.4815 468.2918] /Subtype /Link /A << /S /GoTo /D (section*.62) >> >> endobj 497 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 429.7211 163.9643 440.5671] /Subtype /Link /A << /S /GoTo /D (section*.63) >> >> endobj 498 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 413.7826 151.4518 422.5813] /Subtype /Link /A << /S /GoTo /D (section*.64) >> >> endobj 499 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 393.9708 220.4815 404.7062] /Subtype /Link /A << /S /GoTo /D (section*.65) >> >> endobj 500 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 366.1355 192.5445 376.8985] /Subtype /Link /A << /S /GoTo /D (section*.66) >> >> endobj 501 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 350.197 151.4518 358.9957] /Subtype /Link /A << /S /GoTo /D (section*.67) >> >> endobj 502 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 330.3852 220.4815 341.1206] /Subtype /Link /A << /S /GoTo /D (section*.68) >> >> endobj 503 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 302.5499 159.5735 313.3959] /Subtype /Link /A << /S /GoTo /D (section*.69) >> >> endobj 504 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 286.6115 151.4518 295.4101] /Subtype /Link /A << /S /GoTo /D (section*.70) >> >> endobj 505 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 266.7996 220.4815 277.535] /Subtype /Link /A << /S /GoTo /D (section*.71) >> >> endobj 506 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 238.9643 174.8458 249.8103] /Subtype /Link /A << /S /GoTo /D (section*.72) >> >> endobj 507 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 223.0259 151.4518 231.8246] /Subtype /Link /A << /S /GoTo /D (section*.73) >> >> endobj 508 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 203.2141 220.4815 213.9494] /Subtype /Link /A << /S /GoTo /D (section*.74) >> >> endobj 509 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 175.3787 158.9773 186.1418] /Subtype /Link /A << /S /GoTo /D (section*.75) >> >> endobj 510 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 159.4403 151.4518 168.239] /Subtype /Link /A << /S /GoTo /D (section*.76) >> >> endobj 511 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 139.6285 220.4815 150.3638] /Subtype /Link /A << /S /GoTo /D (section*.77) >> >> endobj 484 0 obj << /D [482 0 R /XYZ 91.8009 721.8656 null] >> endobj 481 0 obj << /Font << /F35 424 0 R /F15 428 0 R >> /ProcSet [ /PDF /Text ] >> endobj 514 0 obj << /Length 1389 /Filter /FlateDecode >> stream xKoF\Z MH t]Eb+NQngߡ^zsEH %@t2̹HZQTR.|)ˍ:j¤n#cIO^m/pwuI$}wکnco6cgMuכwQ(mGK7qd8h]SUS> 鍟ZT[*WUj;qa|^ʼ(jUcMrRX㫨8_ l)/nwĄ7jG7U*%$xD2:rvJ(##,p`{y}!&w1[B~~Ƿq@$ltjKeBJǓvlJÕnG"TAd0ԴɥCbVTCۮ^VAxpF03鄑NqOd|A_ΰ3kEq6:ܨvY`b&h˄ʮg5\hr+F+=Dt;>q6"9sVU{/oZBh;jâb|V46gpֳOdla_mmD(pѦc;=N@L]dW6 Nn@܊qJÕnG"CNm69h+9g=[U4:q?3jYDQ3 Oela_fBfܨFMǶ:F+lj w]ͨk@3֯}U1 FV]kpՎmzXuG/]`]d5p Orm4k㈣&+ݎEU]tæ>iUu:־> endobj 516 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 684.0634 169.1187 694.8264] /Subtype /Link /A << /S /GoTo /D (section*.78) >> >> endobj 517 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 668.0673 151.4518 676.866] /Subtype /Link /A << /S /GoTo /D (section*.79) >> >> endobj 518 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 648.1979 220.4815 658.9333] /Subtype /Link /A << /S /GoTo /D (section*.80) >> >> endobj 519 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 620.3049 167.6233 631.151] /Subtype /Link /A << /S /GoTo /D (section*.81) >> >> endobj 520 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 604.3089 151.4518 613.1076] /Subtype /Link /A << /S /GoTo /D (section*.82) >> >> endobj 521 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 584.4394 220.4815 595.1748] /Subtype /Link /A << /S /GoTo /D (section*.83) >> >> endobj 522 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 556.5465 185.1546 567.3925] /Subtype /Link /A << /S /GoTo /D (section*.84) >> >> endobj 523 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 540.5504 151.4518 549.3491] /Subtype /Link /A << /S /GoTo /D (section*.85) >> >> endobj 524 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 520.681 220.4815 531.4163] /Subtype /Link /A << /S /GoTo /D (section*.86) >> >> endobj 525 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 492.788 155.2145 503.634] /Subtype /Link /A << /S /GoTo /D (section*.87) >> >> endobj 526 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 476.792 151.4518 485.5906] /Subtype /Link /A << /S /GoTo /D (section*.88) >> >> endobj 527 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 456.9225 220.4815 467.6579] /Subtype /Link /A << /S /GoTo /D (section*.89) >> >> endobj 528 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 429.0295 170.5353 439.8756] /Subtype /Link /A << /S /GoTo /D (section*.90) >> >> endobj 529 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 413.0335 151.4518 421.8322] /Subtype /Link /A << /S /GoTo /D (section*.91) >> >> endobj 530 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 393.164 220.4815 403.8994] /Subtype /Link /A << /S /GoTo /D (section*.92) >> >> endobj 531 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 365.2711 182.8403 376.1171] /Subtype /Link /A << /S /GoTo /D (section*.93) >> >> endobj 532 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 349.275 151.4518 358.0737] /Subtype /Link /A << /S /GoTo /D (section*.94) >> >> endobj 533 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 329.4056 220.4815 340.1409] /Subtype /Link /A << /S /GoTo /D (section*.95) >> >> endobj 534 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 301.5126 179.1411 312.2757] /Subtype /Link /A << /S /GoTo /D (section*.96) >> >> endobj 535 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 285.5166 151.4518 294.3152] /Subtype /Link /A << /S /GoTo /D (section*.97) >> >> endobj 536 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 265.6471 220.4815 276.3825] /Subtype /Link /A << /S /GoTo /D (section*.98) >> >> endobj 537 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 237.7541 161.0053 248.6002] /Subtype /Link /A << /S /GoTo /D (section*.99) >> >> endobj 538 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 221.7581 151.4518 230.5568] /Subtype /Link /A << /S /GoTo /D (section*.100) >> >> endobj 539 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 201.8886 220.4815 212.624] /Subtype /Link /A << /S /GoTo /D (section*.101) >> >> endobj 515 0 obj << /D [513 0 R /XYZ 91.8009 721.8656 null] >> endobj 512 0 obj << /Font << /F35 424 0 R /F15 428 0 R >> /ProcSet [ /PDF /Text ] >> endobj 542 0 obj << /Length 2367 /Filter /FlateDecode >> stream xZI\7W~Oϙ .ʋhϜYߝqE>|ֆJ"D獨 UyYA6!%{{{+(H_$يTz9@l :T 0nJ\ld :I[ i"3kU7[v~}#U g̩C׽䶗eGJU77YaDlUֱ@Ql^d-t[X]BZ6R ^Xڂ,;.UWDCGT,K͙sw[5kz#4_Pl,pqizMzXȿ~BT4\%IBq{vV]H:(P٭ ^!uzV\pxR0=㛎5ם^ ӊ"ɳqz)¦|x!σ*^ m#Lg]W^ ݧs^7*܉Q+9Du7v-9ɮ`AB3k;_Uviw!;k4өo1DѐH'Ii˞j.4lSO٭-Ej A0{2^8% %Kwff!|M[ɡ2NTUs%\y&Km 4%f(FSrX-َSzX"g}d!kȇ\ @3} uOyBn'I18]|l{ ȱ]}M m]ZQrZ))R>DQJ՞4-=Bq1?wһg⢕BCy%yUNHzUcy`\=b.TK=@Cܳ.Rcb3zgU<A6*%8%O:ďbf4%W޶/֛Z,S(bjÙ1PIY*!~3$wόQ/է7 X| Hl?YS{U|5{K5YѾR)XpgIQ> *2؆o8,?{`Q#8$&`d*+dDQj4!5- hZ+dԏ(Vv7( #q:6ILؾ9aUEbl] XbWF=$o-Z?UKEjcxu&ԤkSMOi GP %7CgiުcUp\;-~.,]rXMA})<ۇ9%s7s~č1".}=USԓGT{N͍ޡݭ-^u0#K̞b݀uPbSQAI/%۴u,b1ڄh4^ Wp^̦4f vG[L_uH qoӷWxn<ٷ4 m-}6'm߼Fy궾Ե (~9WSݧO{n/hX@anX<:wO 9g믣%^֯=iXl>t"yoUSFU>Ltl>U>Kt̞{eM3]ӣQHjk6rX_ɔ X 5/b4•!`&Jrm_r^$,Q# endstream endobj 541 0 obj << /Type /Page /Contents 542 0 R /Resources 540 0 R /MediaBox [0 0 612 792] /Parent 445 0 R /Annots [ 550 0 R ] >> endobj 550 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 .5 .5] /Rect [269.4381 247.3033 339.6163 259.2561] /Subtype/Link/A<> >> endobj 543 0 obj << /D [541 0 R /XYZ 91.8009 721.8656 null] >> endobj 6 0 obj << /D [541 0 R /XYZ 91.8009 674.3441 null] >> endobj 10 0 obj << /D [541 0 R /XYZ 91.8009 529.2412 null] >> endobj 540 0 obj << /Font << /F34 419 0 R /F15 428 0 R /F38 546 0 R /F39 549 0 R /F35 424 0 R >> /ProcSet [ /PDF /Text ] >> endobj 553 0 obj << /Length 3646 /Filter /FlateDecode >> stream xڵ\KW4G 6C$i% v*?d际!t cMccR&Vzz >³D#%Yo:OSœW }ǟqՇQMnV紜^`U-pd/=/Gi§^)h1{#4ER>|GH#5_O*מJ:ZTb 'a8J?/بW'a p& $0&L*hY琧,t%P5OTJMnI%poOKrkD *p qO>\u:O*[2' 0`y\ȉFS$ lzPԝh\e&@';NشPXo*1&LeRLqbS9x!0XU}R# ǘ!NjV0MTC8X1nU 0GqrS}<ߧ ӊPjjt0. 4ݒ__Na{Irʈk~[fY.y!%Ǯ9zPHR퍃W9t XΉ\@8Xñ/E88$EOl`V R*v1H#d Ǿ%HHbT8*Ɩt[mi. FifbsD97%%:Ϸ$΢Y2|X[Q&KSAU.] Ax* dVQ`Ĥ8J(Gsedu w'!Ucd -l^U3)^ d;KTq1ćKBQvGb/$b}/A2 sN׉I8ѝIY(ɻ_oo:7\:1REL4p-EYĂu>"(),2 12>)U*ɉ*fXJ`wWJau<4Jp eI R^/(,SZ )1r쇔~5Gk8z`$AUv|RBh@lblpH "][j Mg;A)nl7卿0'jbN O3pQ=OŘ]2t,&WrdLwmi X+%4~$JIe"VQ=do}>lئ~'ӱ/P܁ ?4tDئQg0ga =PθmA R&B>m,'Lǁ̳OFj%ۓAdۻ4O7_޷q yؾW>o `J f67)y>5~_偗:' n;Q"Rk3 'pʞV`O*V!6E SXNӧɒ-G&(1[h&x[Z&*?('#HY0C+bW= Kf^}ҝĂmy]7H*T y9E^ 8bI%o@ؔ@Я/d:!Qdg.h7zbpHW˦spMA(L%5w*خC)ޮ3ѰVwfmYqvC%LJz?rl*/WS"!X~z9ٺ9x!ʡrzU%n94Uy.`yJ)~(ar,U`Ty!D7"~GBLd﫵ekO\ բ n'y-|("ٺ/ΞKJqMya>j0Ϙ!ǢL| %Eg4z JgJ X4_.SU&H tj>69[u;mrdPbvsJ# -9@`Y/X*!|e-[5(u (2Hb+8eh9b+u[cMd52đF}Bhn@ N  (@Jf^h}֖Gl8v2FI#BF ha@(GZrD 8p(7bSG4Ο93DmW=#Ut\߼oN jVdCF,3; 䋛C&?_}YM>].q6LW}*l-܁SU]Gɰ5u鶕,' pN5ltgT fV<9@p\c:0[P&g%"=nxdqs݈ZFz:\ԼQiy([mvLEt~ y#hb٥ݷP`Rt.G@(-ywexs@RMޡibKK!$Ж!3z.3\3kM&l3C}fe@Nd◫1wua{* {O0{g.xe>]?r2Èl9%9xX~[?_G?r8R X~_K/D~Z[o2Kh[R.v4rʤ?J|dBцY^3KQz/nMaHX+,= V@aӡ?{4(387KPiSH|kB|qS ǂ7 {kVW`޻ͨ0*@Z/g8 ;քendstream endobj 552 0 obj << /Type /Page /Contents 553 0 R /Resources 551 0 R /MediaBox [0 0 612 792] /Parent 445 0 R >> endobj 554 0 obj << /D [552 0 R /XYZ 91.8009 721.8656 null] >> endobj 14 0 obj << /D [552 0 R /XYZ 91.8009 498.7625 null] >> endobj 551 0 obj << /Font << /F15 428 0 R /F38 546 0 R /F39 549 0 R /F42 557 0 R >> /ProcSet [ /PDF /Text ] >> endobj 560 0 obj << /Length 2645 /Filter /FlateDecode >> stream xڵ[[o~XEÒ^&[7-%F#)eEerwsCҹ?3 i1q'&/OV ~~z#w߬|{P 8㧃t)Dc>GqsI'(VIδrz*J|E_v¹tT)mBzaz O~(p8`;*~~ᇞy#t}7"v姻P(ŸSm Z3): C$׀wU+5?,g lIV{f!XkЁ5q,y3O`O- \xN3/%%\3Bm%7)1"@\m8 `I9Jia*r X; RZ0J. `f1B L{> EU~ޝo1p1[Cc'0m^+u?!0$nG!d~ Enm,z?"ᵠ$~ \Z8ۂ&QC$׀5yL~FX9LEC#s~߼t?^kqs4+d9fYAK}Gw`x?k3 R3?$ D5" 2)DEAHgPnchy5|$O~Aiȟ@so쨨LcA 5j'z7e+ c&nA548+[]WEO/#3gf/M|sIbq=2,m>5qIGܷ}(3a\O `2v.H J-LTSd ]hcFxId&7" W Wq(@l>(5 ukem>Oy-dpDGыZ<>MЇ *d+8C@CY|@),|AUgג˅U8YIB[N/RT~2Vw[#MK#Sul&;_фda/z>HTV J^CvCo= ڭap}u$WĶ *SZi%M#h݈ڷ+g0jsX9u$EBzH/5cLi^p8fġ2IȼVH j׋y"?5#E|q0(9Y3}c\ДWCLH7M.-5hnz~'C1BKrNVz/{{`\Y/ 4Pv#s m[t&TIɏ4/FABrE-Hrȿ. ej hb#EZ\3j'ɨXׅ%1P+;:M8xh/CҲ]5jGSay<ǔ"+[,RW`CBP }rͺdzc%԰/{T"Xk>?}+px [7Kjر!_0No.8rHl1[1_U)#Glt]/c۩ma5޼6F]Z.R"MgmwKE ks1):&y1cZ+:hq^||||B`?rOz̧r]Ealۖ<`Ur.8&ht$7it } J)wh6~Wh򭊹`TKw:Kr r,@}KbD)OS7ӐAu;68ڑ۞[*Plb|Zqf9ɏSf"rQT=WP.@ϻq= Pk*LYBpj颢dA߷RߖU h`Ufuu!8sN[L*]UG*=t-lJj}v t<>yY'PHt\ic_J)\?O2q 42TS+YF8p1^,7X ρ*"4&49@\N_pߢ/Qe%g ^SZ3 ydxt8(]>˧p{7w<Ys!df uJrن~@v8UB,_k:_jj){r$mgKU"o຿p3$%W&f_M0=lPhmzu B']4# #ow ȑRi0D`bɰ1_~ͪS0O tz!f_Қ?- !RrCFU+9L"wawT HB;{YD~iw/%|_mw}5)GF|z> @OmH=BLU"GgK#D!RGGP'◟ ,gQcG2 9CZ"()ڌ: ok`aBa]ʐ& 0vp]Z\H豣yOdoR榈C,aFFqU`F=IFu"xޘɇZjBC8M($)xbd9׵` |Q3WxHw61g.̾XaAVώ0&:au*b5ߩ(x xe! 9FbO+l׏ʠn)8 FE*#DMmfr3Ɛ}Rt+P_A!S:UqN *F 99.He?͗q%w9q[;IY;TAB+ݬOufqODTd0`\|c` tռƨaE6 )D,2P XOq?Hk+^e{}fP4>:\j+8uV<FŠtl6Xjjʇ)oF'=$X? -4$I ^$TʊT(Tkb2@S~bw$H.3v JIVȑ$Ul)< aϘp(?ĒCyJK88-!ⓠ>擽I[P!Ȓ'ٳ$w9@Wk c`g7(kZﮖQ :I(qKʼn'ϩ`{Hu*vY@Sq(% Jpk ^U? tD3'T 0gL=T1+n~֪(7raF:|!'f7rbh96ǐj q! (r@G#o8#y00ᛎgӶ?81VRbYضFfvb q$b^}J` _~ /V SK^1d+>cQ,;upBMȀ!/rI".p^41C.JtT I2zOy:FQy Mۏybs_#=ظoۥcy/v92u@pL!g EȽ-v+7r{iܙ< :U3#Qq3Ucܬ S*1zBuUWr?<[8 eU7nrDҺcBF *G ^͇\ Gq u ; d>ΈTe! ֦on+E=|6#H7mnEkhżO,/j#==C.Zm \pxڸd 5M k]8"ͽ'5~8r{on}T<ِn4 $LF\n$3ih"'c{lvƋիHdqmh$- q`(W|a )[~j!_׼Y-ѬgSµJ4[v,]!iӓ{``Ȍ@vޮ6w{>beuP .fW :Glc @i˪ؐmr/Q$LuJeMt9o}_ؕf]O{\-4!u6ToQ٩-Xco*ʃO&uF5"X!lc*nѶi4 bGlAZ bUc)+f?lٱg x >币JyI*U8nWoX cC.FAϯLHWbSdF 2@W=\|6:X=Ya3Ʋ^zZR F> endobj 571 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 .5 .5] /Rect [305.2441 621.6519 329.4534 632.4979] /Subtype/Link/A<> >> endobj 572 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 .5 .5] /Rect [333.5293 621.6519 358.3349 632.4979] /Subtype/Link/A<> >> endobj 573 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 .5 .5] /Rect [362.4108 621.6519 396.7615 632.4979] /Subtype/Link/A<> >> endobj 570 0 obj << /D [568 0 R /XYZ 91.8009 721.8656 null] >> endobj 26 0 obj << /D [568 0 R /XYZ 91.8009 558.4737 null] >> endobj 567 0 obj << /Font << /F38 546 0 R /F15 428 0 R /F35 424 0 R /F39 549 0 R /F42 557 0 R >> /ProcSet [ /PDF /Text ] >> endobj 576 0 obj << /Length 4265 /Filter /FlateDecode >> stream x]KW tY0|ݢ$HHrv`,lr0 YoAV?q 5/xbr`Qy`jt6~ҏdBct0'4SθQi *D+^TLK1/˙2 +^ hf W?y?iy[iOo>޼[wr*V k›#mf"& ?63$hz#hgʡ4^V#ߠh5/J-5-9VrKq>D6M`$9-{%3[p,* I˷XFd gIgNvPhPt Zv v'@OM\I>oՄl#EVN>^ \˥=S \NȩcRbK`sTq%甚IxP#,ƇզT% Mhnl׀``'q/ۙQX&ƵDuظHtʈG.2z7ti50k>f P`M&jMʊmCoh_~pXü>ouyt*  + e5`-+qMY$2LJ/-J[xۃt R2+^Z),Kn肍tدO @`69+4yTSg!AQ֛aj0?sn]#>AX4@8x.H_AeUR52?P] [<H{\b@ J(ڠ.}~}U =P_=Vf<74w].{p ~|U!Rb5Pj +4z KKlJJ9б>eh~|x,К7搹.# %4H,$Bm:e^X PD(gDT= 5PH',Z>[Mc(|@,&e/qKB|cp HVzUT]z̄` ?#*T3 lnB6 HuY}Jx,OiԖڴi!mm7ʴ´(b6HF6kҽ.J6vAPU6SdzoSRz4^^vS=2`7գ.{oP-ћCG۠.ݪGo\\(V=zXvF nXhئzXz=d.f*?z'ee¡V{y=#UojͭcH,X7{ &beQoAî/DŢRF2?]X\{6BbT`a-5W/4RĜr ,5pSU$ߡC:eP Lz r#w[jj3';МieUވd-6h7(Fq1mF,l޸z  çϝz@&4Qz&pSцK䊊[fF=xKy՝UzĝXu"B⨶3*_ tçx&V2=XP>U .[- zKd< z3H0",ZT-Nex8"qsy Bդt0y0di,!ANTJ98=y:g ,H,  pyT+R8W{#hbUL\FM pngf9J1͗dVV}' )`dKqT.嶚.}]4uM>eHqD{ZXҐekA~t5'v JI$k@t]:-]؄jנA3e׻5`r~{|O_ˌԢ9ķMzj`ư*$%6lCM<  {l^P[6,_+1-K[8uJJ$Pܒݴy(PnS>̦gPT37CLbQ=DŖ/jDTUG4(n)(ҋGyj>@"Y<,-v>(%r~yUg.IbnX8\VIggzHgNY4zopywЋ)\$q(`2gŕax'a6sL'"nJեjmDZ/o聘L7\ML-x&FWnx:fwe&IK&Zt.-}ݎ;dKp($$֌[!3YՌ!pH9ɬzARCN-3I8D<4 ^ř,;tڒg)^nٝOzKW6aoIodӐbAqIZ FR+-=k;p)PP@ss^g !q9[kPT]6n \GLZ@S>Gesxb$H/JFFKyqꅍ]m1BhE+H)vRL;ôm)1>1E0܀[*M1چ׉ #c5(;nq6]V{cVHk!Z{!q=^ Meg«p)+eш S3^3Lⵇm)1>u|[o)5Xk+e`=0+>Iqcڭupc5-E5:7 DdHńq] l㗱[yAڕ> endobj 577 0 obj << /D [575 0 R /XYZ 91.8009 721.8656 null] >> endobj 574 0 obj << /Font << /F42 557 0 R /F38 546 0 R /F15 428 0 R >> /ProcSet [ /PDF /Text ] >> endobj 580 0 obj << /Length 2061 /Filter /FlateDecode >> stream xڭYo5~_z'eǿHD%P P\ "ig{)(Jnow<?0DA8xκ݇rƨ t <1^isDj N }{ QDp~7& ~] @xN!Kt;?^wklioU[ȭ <]zَZͯr xn5Q ޞ\Xz `6NPRX0VkN ѹ~;ab G8 >H! a|L:4K\Qf>GTGe\b]KTe#.邌ldnk1cJ&'V;GȹD21 #rDb6} Kf)%Nq#TDkƚ&qoJGH31-3DƑhΚ923KHj/R(4 r%MGa D6exJu9g54 mg5%MvY[ieT[ x˼3lE+9ZΟٟěVl 9*ф<Z|6Zr^(2 r9 >Z!x0P+OЂ+ /ƜvBe1sdj UY:DUaےܒN rôn!82`ԋ(B(%˟mG[˗Fĥt J_̲m$e!ez"۵A* 5dk.Vlepk`RᏡ\w1Crn̼mm}aTcOeۮV=#СMI"KMkH&,:V~sBSS<*(S}.i(@J짖g;OauWL5~I쩩pvN |^={R=^~ K|U8^:X֫tg{Gjtd5sS覰ݥsK=;X")̕ҳRMZi߈JvS.E^JAڗʞyFkϵena'.,ʙT&]c1C ?"ۀWfޟ BY Qew?Э¾Y MEO/&n-|z?R~91dteUgMo\?t(9? Mb %Gvc@^ r&EG_PBziȺ))R~Ƒ2؝ŨMyRz0|0{#],iQ^LL?) ;kQeC)83FE8:*?.[Tg nbzr z6=R}&GM;Cj53SkhKړ S2ZBs!4Hy(C 4RX^ Of*^sq*O$r?_/3&6Nor),Sy:,j49[v3N+^R6uzV:wZeF+:]YL'Nz  þ; (>us:O?!,~nGMg|c x|ZҊQf)V uN&Ӄf#W7_j}4!es:O%OSv%+1uOc<WݽzB|FLg 9|UxyTNrIK:;Q؜նk4:Gw򟠴Abqqf8aYD3s\cendstream endobj 579 0 obj << /Type /Page /Contents 580 0 R /Resources 578 0 R /MediaBox [0 0 612 792] /Parent 566 0 R /Annots [ 582 0 R 583 0 R ] >> endobj 582 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [115.7113 683.51 191.7137 695.4628] /Subtype/Link/A<> >> endobj 583 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 .5 .5] /Rect [241.6072 400.2147 307.5164 410.9501] /Subtype/Link/A<> >> endobj 581 0 obj << /D [579 0 R /XYZ 91.8009 721.8656 null] >> endobj 30 0 obj << /D [579 0 R /XYZ 91.8009 637.9144 null] >> endobj 34 0 obj << /D [579 0 R /XYZ 91.8009 492.8114 null] >> endobj 38 0 obj << /D [579 0 R /XYZ 91.8009 336.618 null] >> endobj 578 0 obj << /Font << /F14 564 0 R /F15 428 0 R /F34 419 0 R /F38 546 0 R /F39 549 0 R /F35 424 0 R /F42 557 0 R >> /ProcSet [ /PDF /Text ] >> endobj 586 0 obj << /Length 4055 /Filter /FlateDecode >> stream xڵ]ߏ ~_KVoiZ@8ƭsWEHft3 z+~KQ(is>_^?^$gj`t62%ktl1I+͔3d gZHsz;'D3^q_ e˫MVӫ'!$sq|___x vEpLt=;@8™сh ^s_R&QN51Pj-w^31&}=#Ll5so ,HdVSa#5~yŃ>=#6ğ$k${Wl2Fyq~U^raN0!b(ݷ44@j {jC(MX0Tc ~\ kdpKІI9Ļ,,5#(W}rb-g)EޥJ~iO-Ezq_a0NkSyvXikm߶w 18YmHN&`VH쎍Iw3k%kkeke,:2 Z( vYGFc7-2X؄8R*@x0!l-(ɡX}>{6ҀMFy @VnY0UV/ f, $8ir8IUa$uDq ~V[C Ax|{?ݧLƽu6r2r=f}2] 7 f /w݁@#dK}X |Êgk5K kfk˸2k֐r߁V@Pg $@C&_E]C.-pqY{ɉqf)C!DPpS}f'jʖf&XE_p(sf`,(bazD:7,W}x:=՚I& /o?|xh!6 Y34Bh\1$>CcdK}اUb=p-5jgz{8G$7,/]k2\e6)31 !|`@Q~'~ ;٦88ж]}=[ ˬotPP ?r,6g߯SK!j~!0ݻub6FӐ;8HȖbC0?>~wC@Z1X簛G`l5:N irޗ/WOG?B*>6pτvB~~p:ɧ`'u#Nϟ({Ļ:]I(? 6M'y&n"e1l8 _ Amv9dMdVlU'"YwBdM@`jyaX(cqaYW&Y%A Ib z:W&&rVK#g}Ȍv[HIZfs8K4 5EnΜ1:q =O.G|.góMC(=TEs,ZORlI ̧v EDWXf׮{煩YDZ &XG:ӡZ1fBM]`d̫ >\cMv'㧻< > X<6]ђ!6Z hV[Aa:Hdv|^zIm IW} x#wjx弱&Ib.1IfvqA5^e7r>חE8b(RG'&sqSQXbqjhQQS?}a{ԟ㾜$yz.%90E0FOj>/\9p7]u;\bk<9 B;#5J{ʎ fW_TtbpA+ 6(,ҡ6Jg*h7eDv"[:`4K,Ur"5$i]gru&™žOd=~5|OI&?,_G{˱\t4 wrykNPϹL ː= Ql{}|u\_@=FIX0@hSF`ԂI]PnT0ӨݬV>ZwL/jjF(Vs)JlzFnf=TiNiz2NrW`L5~(LW 9*<`3c& :cnA]21! )}Tŗz;mK} |QAU*M&xy Ώ&>fpL@ ϶ B3%m@t{`a<*w !SLhwo^78zLm̅\)藫-to+EJ{r.+F@j493g쐣Kh\vy|6ZM+d\׊t5U1SLxѠm,MJWGFcJ+4cʾ`QĜŞP!\U{#m*Q*V~lyuZPnpX E 5Ԩ!&V܃֍HT=n7.L$n?9U%kE.b0&;:4Ko;K1@VkАPh4b$hמ1miLuE/-ZuE.t9+e*pG$cFnlWZsثpIrA: ^C0m_:ܙxlYmO{Wa5UPҫ}4w8*C;R;@Էݫp0BZjl<},U`kpVđFE &iԍwIЏA/uzF(+rasO0%)hIθm5gX|eݼ₲i$^\n]q/ȅYj f l[ď7ccZ f mz7^o )!X~۾g9v׻VJ4Si-ƒ-M 5_޴rqr+-4h\AsRkG96*Xbzㅁe|Y J͙N *rQlen:\nZW継 վ um"k5-H#lƼrZ䡇 @6WnMs.u/rN?_^O{An6U`;|fnۆr.-*6sRKOt`b I Da+AДw)#kS)&'H?4h~e U[ mrzO;zwSʙs@o[s|hLT>xxxK.M;z44 HF^SMeo~3Bi`+%StЌX<Ͳjz sc7ˉI U{S(P:VC"9(v^vvNmq%7mTnmkKgZz/&-gt&$'ɈQRB%G#GN*9oܠ6Ҕ`i*o˖(]U8Ig8' 5,'DB54Q$bu")Ԃ7qyZNKp2I~kZi/-)+Mn4*-+&Y4_m|2'jcKi0~c.0ˀډkBh֯8e}q ޖ$8{[EV;#q ]z]SH`/u%8/qN֫)uJ7:;2O/C8PyL@`g*[3 s1M' -M8+ endstream endobj 585 0 obj << /Type /Page /Contents 586 0 R /Resources 584 0 R /MediaBox [0 0 612 792] /Parent 566 0 R >> endobj 587 0 obj << /D [585 0 R /XYZ 91.8009 721.8656 null] >> endobj 584 0 obj << /Font << /F38 546 0 R /F42 557 0 R /F15 428 0 R >> /ProcSet [ /PDF /Text ] >> endobj 590 0 obj << /Length 3968 /Filter /FlateDecode >> stream x\[ ~k&_ X-N _֍[gK͈4 H1qOL`3$`OϾ"3S,ʧ'S]q)aJO>Ƨd<O>irMp4ӧ]BWOק6 KOOW5O [Ӌwpikdg8ozgo~|'yA :+)WT>ΔOa')eQTH^r$ )sLA  1 [q`+%zl_F<{[T~N(8w8FTyfAl1@. d`B)"yRA)wRZ!C,ؘJBq*Ŭ'k&dH` 0g3%< rBELjN?|R` [$d뉈2OzկfqsȠ}[S1ׇFv<7__R3 `k;ط3NV$K~ =X0p5p"8U &GU p sf_)!Kɑ)eQTH~ᛓK%ؗJ+ Uwȍk'#zүSƪ qj/8  Vdwi6z^ƕfojq>T b`| vndQHnʳJw6կ^ 5mH:\nſ i"wD )q߷֎V|5?W,qpvJY.÷wY &8&z &"]Ia3WE]ʪH;F"Z)QomǽJO鳝u>%U#<ȁ3* =  {$0;Y`RcGme>&?Fߖ嶅VMW7l6u炯8?&½^Jai܌4t}!e^xM21Xĉv@Eo/,JΡ1A ÆN)N^aő.=d $[!q 쿕OJɌ]⑘9 Y4&5pSgƗ>.O t0+6+PΉQId燘)NJBLGA!c\@kBQ+)xt}q 9 X?̸ebѺ ,m3/-V1vm쉨FBS_yRgz>B{t !.VUëppq6F~{ ZX>}i(7i0 WuC9 BbK_VRvLCLzCS ykl?<4LASʾ4epK ǃ=i8x#,3)b=R:ѱZ`CWP(Y^XJ K[=Nհ*YSYUɾUޚl6]e"-nF;<쯕"휄-vN.ng<cŝB}Ir 1m}a!Yy !@9^t( KbKtr-Bb"=Efp רvh$[㌲C~XF=t;0=tϛ eQ-NHu\ tGWHǜqܙ vBs DWHR"%teR}}/o6\!׉JIНV3l`+$Z-Ao (9@gִ&ucB|CH-XN#CH}xyu jhDyEz΅ākC+׸k(3h ,hf[`͍߬!H sS VSJ_cclع b@gH3Z$3p:z6]1NAf yh{yu#F@SMj$&vcb,N,R}ǂ2覒엡;S6SlY.e69 y{==)!JzF"B<`E^dx㜏ջuֽ?jeL&cmt%Z<+GF(U{ IRV2gp\Bң,>7C:R2gzE_tfڈS8Lv4Wuq,OFNCl{yxc;73`+$d5"!MWx NWfFI]>?*n9̀p,e%n2H;#Ri {,{˦_JOՀ5.b!Rן`d4X `}x4XOWx/TcF2;QR~N `5`':Ġ=F`)  iLIXUp n; &!d}KJ2R5[h +exN>% vJV NŞBRc,4> ".hE mg66FmH׷1Ja>X>5KCIBbSV{ vd  dfНhy5` 밒ޗTą9I!ORKBň8y}S~7E n{`ϙ` d41||-6_]h/5h󼆝Q1H~-N [YlU9tA%՗aǞnb$*6S#;wY\a/#d^|i-|P.n=Y>}P 5A~W_oogE){qtr ~{qL? /&AvJN|]{ jkw삌n UJB!79-5~vy7|>5D٨߿֩x.LVXF,DdD dˮ(endstream endobj 589 0 obj << /Type /Page /Contents 590 0 R /Resources 588 0 R /MediaBox [0 0 612 792] /Parent 566 0 R >> endobj 591 0 obj << /D [589 0 R /XYZ 91.8009 721.8656 null] >> endobj 588 0 obj << /Font << /F38 546 0 R /F42 557 0 R /F15 428 0 R >> /ProcSet [ /PDF /Text ] >> endobj 594 0 obj << /Length 4006 /Filter /FlateDecode >> stream xڵ\[ ~ϯ%Uu."P oqZ8sApE^jFftvv poHIHQRjRΓnzgr}J20sK&yXQ11GAM3}LN-ڦ0Z)@i;}z;P.D9YUAהX")To-.!KlO/>_Lf1;?LI^w/ٟ_pcJjF ޢ/ڈYUH(r.d; e1$/Գw4uDZ*%+J0XC!РG| Uop3>/J϶-+f .xCƺbxiSzd,+Vݣ ,:V;XZ{Sx8R? '#."R!5q1R+>}i|i 8yiz->q*'dTIn=loAZ薎&6"HXJZ}T؍4rnEԗKyIww,~wі{Z],?>֮_վQB""cv8YZ*ORZCqIWW6 N.~gedXO?y/l%j*f}ơer}U  rVH,U`ϷJZakzZ'#=^|`ˊG$V֭Яrib/Ԗ sy{.iEW77iؼɊM*nF^^yLh1pIR0B<!!$VA[Rcl&YƝ>lԤA $}7ܰM&> he/^˵ $7Υ~n}rnOSA=Eq(1K-xD҂`V]$ݭ~2';Ma2XՒL2ڎ-yMl"l?2Oz tvRo},ch?NZCZ, l{Th/Wc峂-Qe,z9gIsq y }tFʡ SN:Vp_ץVB=TyH n[^Di٣4Y,<׭nnA=g\w߭?XrIݠR?BVU(H$G .Z_t >J .zW[9N7O%In48M!kbGhKQKhmt'*k% ,dILX1rjqr#ZF/lGsrZ(لׄWyM33JQ,beu!5Jϋ!* 3=kãda K<$n ؍*qGolt VS–j칝k/UjDW1 8mִ+45XkYY=e\`mEd2|%pr< M1)Xf7vJjQp,O^h9LZ2&vmhPCioh1 ="xkÛ{,yڙJ_)1=_^JzҪ=i0)OE- `=5bteeiQ{ouW~XЫ|hjR61qi9dVi 꼐2]E!SK7j{"o=`i@qv.~Q|b].S[VV*I6-,g_9!Ci״ȣˍ7+*H5O"ZJu ΋,轌$ꗼלi8C!)c&ǴTngb,4$ l %PXAxkR{.TVqslQqu9ILWc,z9PQ#wXv{RuMYiwWpeLRϙʺ㗐PUqǨ6ETfRLfӦTdSZ%f߬DHO/Sh*q3? n&%796r=ʾ6+7c70OGA!܅kF u]mO&qKT(( UY(:f=&fnyWeSb6Ԗ_gؠ 費YI)JAނwur0gK\&vlE dJ\9!GaFϱbX왺ԀK /pyG]ߤ→m pJ&.vPV@Oi7V~Q/Qjji`>VjZ]I3;$eg>#R& stZnz! aLY.x4m HìF&c^]v#:í;V d=x̱ʼd& SތLt{e0**E \@ fNR7[(O=>:!<{)AcQhLR+zkhV2Pf?ܚ " 2LSi}'MQ! bbźOfm8&T=[&\u esc1i.ߚxoBEj (cTKK%~{)o;Pͩ'Rf!X\Jo'Jmc@m}]`{(LA\p!>iȄ۩Ln{d{!- 8{ڭ}lcfw9{)~ k߀w`^'1VH%z̄\〰?X1V"%Ԙ|u:'Iò=jG#δVrK==mdSVx]DJ[7y gkWYj&!,U:ʷo>Y]#cp1JR'*H{UHbyk R>V s%ة:arCl~Xa[w\c3eޜRYzZ!mxe*v.:&S4^npy' buW غ U_?{J5 e$$ylKR)햁IFJ<0ߵX ad&NJ\fcM]Q(޿%Wcu\޼ˍT]8r n b ۖrTZJm6|pm!AqC,h3[$vJʾn,:8a{ȊsVHw9^{58b 6)vW6ɋ A<4JDw6[V9ۿTХrpR @&W?co߿iY$0Q\T֜&tI O>{ִ*5P #LMO;˥H{$W0w>ٿc,w<7O2M,%׳kl~K5f%.4ؽ,Byt)lԬv"XsTpyG;!ыs}w:dVbV6w P\z!n% m='n`kzP(c8%"7%ϩ7d<]# %9v*p]^YZ;{= D=ekȹf3%=0yˣI#%عP'. ΛGt ѰX|5קgXuYAendstream endobj 593 0 obj << /Type /Page /Contents 594 0 R /Resources 592 0 R /MediaBox [0 0 612 792] /Parent 596 0 R >> endobj 595 0 obj << /D [593 0 R /XYZ 91.8009 721.8656 null] >> endobj 592 0 obj << /Font << /F38 546 0 R /F42 557 0 R /F15 428 0 R >> /ProcSet [ /PDF /Text ] >> endobj 599 0 obj << /Length 2378 /Filter /FlateDecode >> stream xڭZKoW}0⫙l|,9%MRJb ,*8R?0ij:N;?}BO?л/e,fPfqZQCS1 ϯB =VtF< 8{& u( &CliKt'YB KOyCW œLDp>U韣T5_]$o݀EEqԫ:N[@E" f;W`*@{B6׷&eEʨczpt*hVV8'_UHj"~)5A&%ӗrBc߫@-r c; !`sJb+݃LJ숅ظqߣM+ct0ZjnVϖMH h O%z޾i=[\ yƊ:89'+{dfwfj^I^T9r р%[=P53Ѻ㜍TAxQ&{^ttL+&f#&K\}QوL.jQI]CU@2ϋK9 )eoVkKt<I,p<+z;fq(΋k[Y_%s5AR~xaԿv S.X^/Vhۙ|=S-vL)[9 ާv,5 V&M狛;=&MNG Ӈ $z?.vj<\鑌o Ap<8FCkfUn0W''endstream endobj 598 0 obj << /Type /Page /Contents 599 0 R /Resources 597 0 R /MediaBox [0 0 612 792] /Parent 596 0 R /Annots [ 601 0 R 602 0 R ] >> endobj 601 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [115.7113 562.575 183.9669 574.5277] /Subtype/Link/A<> >> endobj 602 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 .5 .5] /Rect [426.2737 315.1452 515.0722 325.9912] /Subtype/Link/A<> >> endobj 600 0 obj << /D [598 0 R /XYZ 91.8009 721.8656 null] >> endobj 42 0 obj << /D [598 0 R /XYZ 91.8009 516.9793 null] >> endobj 46 0 obj << /D [598 0 R /XYZ 91.8009 353.9436 null] >> endobj 603 0 obj << /D [598 0 R /XYZ 91.8009 190.6122 null] >> endobj 597 0 obj << /Font << /F38 546 0 R /F42 557 0 R /F14 564 0 R /F15 428 0 R /F34 419 0 R /F39 549 0 R /F35 424 0 R >> /ProcSet [ /PDF /Text ] >> endobj 606 0 obj << /Length 1320 /Filter /FlateDecode >> stream xXYoF~ׯ[IH} C;mHkI6F]3{D[v"!;;}3e?9VZJ]f8hlD em)-b7 :Q&4;FUdFRRhᒤtzXVi*ߎG\48'L:lW s>ܖ \?DASF_͚zB|,,ԏ|r^"nT0]u ;aB߅_4MP 2aX y9qݱ5\y/? ۀ3{߻|pΑIW5fuڤ5vzq?s3[/%ܬRkeCHEOHj=zPoI|rYw=כ0DTYJ$3G5 egYbS^.߬`kRT$ w, =!_1|>0uCF\[lqktY[hJޖ +2+wP"haǮ0fW"X87 ^T^D9XK8:te6m}G 8qJ{u֐ke" 7%u.wS6`7GG*1]pZ[ZM>Ff\9x0b]j#u;kO~IYqe}uendstream endobj 605 0 obj << /Type /Page /Contents 606 0 R /Resources 604 0 R /MediaBox [0 0 612 792] /Parent 596 0 R >> endobj 607 0 obj << /D [605 0 R /XYZ 91.8009 721.8656 null] >> endobj 604 0 obj << /Font << /F15 428 0 R >> /ProcSet [ /PDF /Text ] >> endobj 610 0 obj << /Length 3914 /Filter /FlateDecode >> stream xڽ]MW4+l!9HҎ,E֮c)v7dK3=ҎfjX# 22RjVzx ~Ͼ{G"?OS¬Wq#~v`Xң&j9y`9_JHz%x~F-h?Xi+Sg9}[rZP~jИ__^ q$#|`-Swk:88.3(&\ ]d[>- (Md&%B? D1 ?0 J0H>Xb58 l@#7sF+ ן}%TMT:5Qr n<<ߓ77_˂ C >7g q9X'Iă|HOKQجϏ|}x<^cH8hC"N2hV!14u\Ify-t V>[Ei.;K#YTZNI, ?tZ A dJ6/lē5>uH 3Lea i^@@(+Z Ӊo} cRb$uH`-=9.Zי/^hdFIW<+]$^9}} ~,6V &s&`3|z| =LiDaЩbUCC>{NZG 3&$ &cGBphU8y3cG+"ڥ<ҌG iRe-e;95ZU8$I NAKn%fhpoo5Dѣ@`(:b{9F.WZuY 6/St1Hh2D>Un3 =@k?g u 8ҏ amPqAΩQ]"+:la Ǜ {ҍMx!9{vUxOܬGV,a=bkvb5 WK_4[G `#DHaOQ{\oVo ۻ\;p]7v/{ʡS.f ԗ/_ Pv,ǀ*יp? |Jg{,xX K.2aV)V1|Ls DK!j,J$Jp_sCde0*P0X\(C;;l{ +WK+;mhZ@`3@[]@`"Z`]yZ@`;X@,_ꢣA$l6d[rMWdDҵ})3UQ=Wԋj?E~fݟ[,H$hOYKbt 4Sy~SmQTרio c(]Ury*XwgC̻CN^{u'JToCf " Km\^jXMsK3|d`H(i2 UrAKL1y>oHebˊV'Gߨ嘴5K|K]hkE*C;4C-XsKࢫd2 rXP%o2ʗPn*"NO;۰> q &qJx"ӽ h6[|Wqk%]5U;x]!k]׸a~%nFF*-fG)5sQdzClָĵ0,R> .F?@h$Әҋ_[-! '_S@vf;ÛMW|8V/ 浢91Ҋ v|Elfl4%R4e8Ū{5n lq2ّPewQ8Kt T!r|`#hV3ii:9,%Yo{3惯.B`=ڿԗ mN[bjC`jur;J2Z![M{;)tᡆ ?YRh}uJ~XM hVIh`Kvu#rS  qkIr7HGU?)(H \914@Y;oo>5[endstream endobj 609 0 obj << /Type /Page /Contents 610 0 R /Resources 608 0 R /MediaBox [0 0 612 792] /Parent 596 0 R >> endobj 611 0 obj << /D [609 0 R /XYZ 91.8009 721.8656 null] >> endobj 50 0 obj << /D [609 0 R /XYZ 91.8009 678.2397 null] >> endobj 608 0 obj << /Font << /F39 549 0 R /F42 557 0 R /F38 546 0 R /F15 428 0 R >> /ProcSet [ /PDF /Text ] >> endobj 614 0 obj << /Length 1558 /Filter /FlateDecode >> stream xXKo7W,rsLo-=9mhTN 9])0dc8qe&fJFZ)Zo߽1$\-l=kru$)U 7̠R~g㧤Xn&AEn??in)4ƨhMR B\q'GzN`3[Dr#:g͝ h#^{}3~Cm\Ǔs^9wCm>&=y.Vdx #ntwi:٨b*cQYU/NU"г]~7 wUrv.}}B`ۇWQR(ԍ4ETdQWyg"(Cuk3У%F&5 l滜]T}A]<,lWSFz tw@6fqc5 CJZ8M4R4LȘsW V c%)о ǺGr P!(+d4UQFu?Uѩ\.9)m\]S“F-%Q:nGA5DSTTqMA$BPT+M z@O9ą[zO9daHk.Z?^4up<́G1;V͚s4INpZWҬ]J]r8xP*ӟrZ[ {;+Њ6_}2oCJ}:Ȫf fƮ׉z/ ֗z*&>!8| ԷIL 5!6g@M ۊv U:&@ruQ{Sh@4To@a_mS'$Fqxid06 %>=X%g5k'08( T)Hv5X<3S1qB%bӃy?Zم8seT||nHyhLkjB*I\nby-~SK>)<:Ѹʅ;Zz\ p R=UailK\!u &$KAh. Å0Ğ.>:L73i%ɂ,v#vg}ש.Vᄍ 1n5UTSaJ}zFۏ+l0* U؞S SaFANptVr:sA8t.<;խ#%3uá ȤAܲqEqÒ- I}_JIqb狙 :Woi2s$?mvū X>{KY yIA-Dz- _6OGuI. Nė'fy3ɥIت~ N$F8L4  f6*js h.H;saZ[ m\Ldhp ʒ _ {Nscw3`>썱 ۳iI?;\\,MLR;Tendstream endobj 613 0 obj << /Type /Page /Contents 614 0 R /Resources 612 0 R /MediaBox [0 0 612 792] /Parent 596 0 R /Annots [ 616 0 R ] >> endobj 616 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [115.7113 683.51 191.7137 695.4628] /Subtype/Link/A<> >> endobj 615 0 obj << /D [613 0 R /XYZ 91.8009 721.8656 null] >> endobj 54 0 obj << /D [613 0 R /XYZ 91.8009 637.9144 null] >> endobj 58 0 obj << /D [613 0 R /XYZ 91.8009 474.8787 null] >> endobj 612 0 obj << /Font << /F14 564 0 R /F15 428 0 R /F34 419 0 R /F38 546 0 R /F39 549 0 R /F35 424 0 R >> /ProcSet [ /PDF /Text ] >> endobj 619 0 obj << /Length 3065 /Filter /FlateDecode >> stream xڵ\KoW4VBv ,C ! yIH%OGTO0db= pxn37,Hnp9r&~70FR|eisZ]fnW ^* _FHu#:_4@4| :wK_#Cc_͟#\ke\Hb(K"/ xÁgO o\fmNSF76 ̙" IPes*~k~V@$ \]`C$p8\6@ipqFpR5k_s%k=|9?=}7=Cs=1i «`;g+BX̤eE \?F]Kj=r"r9r%K\ ;1\{Fl}1H4_>r|^3.\V?T\贋~A w~)bZR('pxL$$Ka5큗C2 F92ܱp3HM~+!^M=4>-~S8.],`/`@ń^T's5LPb1h)lW6.-C[R(SfȂz^=r@p&=f#L߂A brMT搷( %Fig&B D^h*0IVCo?pdY]?q^ޅ%VH}v@NUKltM\[`a>cO f ۚHWdB6`ݢ_r*|Z6ȩ4J 1V9u%\KKa\; Կ ur6({"]}poQb`ԅ5׬'I԰UBu Vd}d/"#,"X0jQOVax1]3kdOJ\@a${YΘ61ˮy?>=?|([·M J&>\njHDzrivt7KB,GGozd(ٙ@CNbAjԔY#vb՞X @-W LoĆn[%qÞ8J.f&Iq m8Ŧ8utQKB d3f =HWZ;AneFN|f) `1'  pvs/-DuۄHVIHjiǛeANKXD#Z"vH-%hj?tR޹5j{?>| 5DZ+yAVKlbn1-߅D{nH4K{RpL>t110)Ӡ2)0<0-@J9[<^QDT՘C 8O! :0XG)gs>Bj;k68 wuӴR oz/Ǻ%V+~#^}8tmSj-{zUKD {(egd<w=z*troyA./BO #WQݤTIxYhMƏ\:h@V :Hneq6pa= HrBD\Lpw7WmSoevn-Ҹ z/5߼k3$b?tHu<ӭ cvj6žxVמTpʤ'f܁H2E|{Ʃ  lcxI^0Cۃsfx`8;`|z\nc`C6)h`!Aשv8 S+N") &qEť6I/v땽en Hu:昸^§(:pvqr p5P߽Ck"c4wj㈃Fꯄ$DQ`sTٳq Л%HvUPQ)"ǥ ʌP'38o-38/}/zYFDg) xgu;>4³ZSlOϟ=Kk2Uy吳;/ Jbl> endobj 621 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [115.7113 202.3433 196.6938 214.296] /Subtype/Link/A<> >> endobj 620 0 obj << /D [618 0 R /XYZ 91.8009 721.8656 null] >> endobj 62 0 obj << /D [618 0 R /XYZ 91.8009 678.2397 null] >> endobj 66 0 obj << /D [618 0 R /XYZ 91.8009 157.3706 null] >> endobj 617 0 obj << /Font << /F39 549 0 R /F42 557 0 R /F38 546 0 R /F14 564 0 R /F15 428 0 R /F34 419 0 R >> /ProcSet [ /PDF /Text ] >> endobj 624 0 obj << /Length 2658 /Filter /FlateDecode >> stream xڵ[n}W~,}Ky\6E FCI.{þqH!YSutU!YaGV Y) R;z~yG 1)|#b NrL 2ݷ)Jj|uzۚ\oI\}^mB3wgFg&0)k<}M'zC^b x/1cܾk3:BRBÁW.qldArl\:*-0=D_L8Rj44rn6Khn)Ws,Ǟ7eo8;@\$/nmr٘HE5u4R$'l h&_Y;3[LnQhvH#;q83kx<Ԗ StBfSușhbwF S\VQH,?"=%a7 C $\l^yc!ٚ7[lh]6qM$оDNs\iB0>0qЃա¼LsHKDRIdMgMy㺑_-K0EmcWL"KNaZB)q25e6{?I32P.]&1XU 2;ȣh+@q)`|qj]}3mUcA32['fB] +g@f.U2J{!)4wBl (gW4@VFL4}Ki0aq҉VE(KHE\Bf g9 XA ]¯0H)P#nW{itb([gf4XFt vM" ;?=!ÈK +|NF4RbS@<$ TeCY1 sE/slD"R 5cJIlPm [4VDخv=?>U1L#Jd Hx1>ȸFRqZ6V#RfaQe(crɴd¢M桂0E.lݼod:" bG&JPV"w!cZX4j!Z zKaM>0"Fj 8z*XT4GDRՕȂV6VkȽ(Ԋ]~](*U*@R C W ߟ69>{:LJHy pϔ!Ze1[,Hӕ\]"*H@$wCie.(vƾҞ<TDQ'Vס"F0.i 妁m o[% 말.9a 5vz%aw]-a 2 Mo?dZ % (O߲M[6V0Aɋ \M]\ݟgFϻ}^n"ɢ>d7}Xu&Y9 YEDD#LE$?% OZ 13T+ʱ+Z[Mi[9GO9Kh7C}\7`OJlHƴSp+n,!^~G4-F؊M/e$/@Z4vE)Yy+'<(.ZGze+W^Q]ޚWc$˔[0TDj*ިj\,SIUFl)ީNk]le\*naҋ,y!eyѬ%{v1>"-*DH~h*@hvUtM`6C|V;#fI&9fu،FfZۢf^[. RC;Fl5Iu 󑀈fGcO@޼x? v"R]=R>r6 dD\&*tsow2w]~93˯X]kګk؝zkm4߹8/`-rea),]t{p{9۶:6DVkY9ԫ`|qz<cTgyx`lBmȧ=^?8C ҝ ~UN t,aFW?~x!p n;ߏ{JO>3,VpzD KSFqp@."֓8jp :]}+-C0Vʂ!h\41D$;VžūbOm:) _Խ> endobj 625 0 obj << /D [623 0 R /XYZ 91.8009 721.8656 null] >> endobj 70 0 obj << /D [623 0 R /XYZ 91.8009 575.1443 null] >> endobj 74 0 obj << /D [623 0 R /XYZ 91.8009 460.9088 null] >> endobj 622 0 obj << /Font << /F38 546 0 R /F15 428 0 R /F39 549 0 R >> /ProcSet [ /PDF /Text ] >> endobj 629 0 obj << /Length 2624 /Filter /FlateDecode >> stream xڵZY~ׯE3Q%@l iXYٖYˈG=ţb7gz j{ŏu|U$G$SD2g y7201hcvZ #>q%z W\.8WkXw2 99\8w?ACi4pX>IBPZ}Z)t8[?#Y L<,ʋhϚoIߞp ¿?}3Aֆ J2IzA%Tew (.cڗ\Gq&B"} *"N@\N#K:]-JhmB.2C T.Y"+cUQήG=egW;*0uIׁH]6!kt ws)֢Mms}`X ٰ"xuf4Ϸ)q r뵪é>~16 `x$>|w;`aI  @L!Bo/%T K$u@J25H65L7/M.%Uɒ94#z]ZYǏ`6 Ee*э$9bqdS)~>!y9AZ8%oR[N!+6ſћ8kqَeD,`|9ғ nQ(t͇ɒE!&&]BC+A*SPbl英1AUX^ɏLT)1RxB>B69:)4'WUEM1D~o[tʖ߈TUn;d!S~JqH^K7Jg;LЫjh|0 \zqP}UTFKߴ6,[QZQXĖ+2ZIH\?f/ؗ*H(7:^\޲Z%Zϐ.T"Q-9՗Fcm}k!{ͪwTRb~j*=.Kaqņ7Dzև bjY_r\:*2d ]V 8jkSӳPva͡ DZ^cɕɒ%A Ǯj$Y]v֩i*0(ieuv,{M,&EJÁ> s׳V<ɚ峃`_֨[(q6{tXc5`R3GܻYdARЍCfhZ/.iWqjymdݝ@[Thzr J8*:n mYQ5{OֲݣӛvuMmi ~4@cnzniT.֞Ax:5M6owܧiҝ<{N:χz`Q6QRsxu/>w5m(f"UC^ iXsDP#aeZs7ވ G7cBtv="XoۊӳBfOL 35RJ^kFLZCe* #Z{'_?;PjŸ1DmNJ VӞ?V+m^ f5ٓ1zx anу- iϒLΞۡLͻ2lrr8cXҷ>-AN=+_[׉՜J߯]AUYQtDL7 36WB(K q}Q 3vz֟ǵ[y8pukVhaf|jئbcF ќcdq 6g\n-vy8,'4] `zkD2;|H @ȗe+2g_Ҵy3c u%.^ uy{1Lb tzyL e,R`ccvgccqv;SiW:aU܋*0n58"F }('Eķ W[i_a5|<͜)WM}/՗$usvwn0g{._k|zmg Ώ~St٨ p|~v $p9XB}l. pϧK9 P=.=R.M !cRu|bTm)wL-eCö1wH7R/9Gifr.L=$ d `SeGNi=WzCFJ˚盿iYvj4NvKVӆFi"6G$C mks `.4)~å_5B9ĥ+{f"έ9,]R`> endobj 630 0 obj << /D [628 0 R /XYZ 91.8009 721.8656 null] >> endobj 78 0 obj << /D [628 0 R /XYZ 91.8009 674.3441 null] >> endobj 82 0 obj << /D [628 0 R /XYZ 91.8009 529.2412 null] >> endobj 86 0 obj << /D [628 0 R /XYZ 91.8009 271.4288 null] >> endobj 627 0 obj << /Font << /F34 419 0 R /F15 428 0 R /F38 546 0 R /F39 549 0 R /F35 424 0 R /F40 633 0 R >> /ProcSet [ /PDF /Text ] >> endobj 636 0 obj << /Length 2767 /Filter /FlateDecode >> stream x\[oܺ~ϯЛmby@},'^'>ǎݵݦH;D.8Z (J33ùHa tpn>?8;6Ha;_ g[)Mˬ T1ۓg3ڴخBai6I˚#l"$%Lo?J4[(9z֖0>0?]t%Vs\6#U xp}?2cÌlbv`ܲB WX#1V R+ mK~rAi5m„ I*M*tU(EE*(ExL#d1j4jVXіl _+5zކ<:cxo9ch0. ^+AHVJB-Gd Գ+P^^ꂝ_ I,`Y+9N## < )``+\ bOP>n?z77ϟ'obYع5kE($Gqa4 %`_I-iudhqQXŕbz2d!Fu!p+`o1ԏ0\>)hCi 97ʮxG>pB.'Xo.\Ϊ몇 V[ bql;XgaX5M[a2gKg ~76h0_0] p501i[[p: vw~Br@\GG-Y`SǞ+#jfD* HsO0?|lS41bct ނ[vɏ{kj:Ps`wB0A|A#+pHEJ GA_к{q?=>>([)~+l)*QEUƁ\bя$j]]ێPe)V5YR ]'s 9%psu :%PL8=BC)"_ʙMd@)+ NLSE SMIi6%vGgvz6.:}}ʷׯ/YBuklFEe]d,&pb:=ie{6YJ&U#' a&!̑SF4,ՆXɽx}^w(:1z~zoΦ)b;O $sӓ[ӥdy3ۭ]@0X6Sl:wu5ӥ<y-WE:=' a&Nmt-uB11ӥ|y|tΞ*Tf<]0XԦ(PUmBQ%-T[> pBKJ# UǗC*bX*ס6m2RA:剓d^tL%yd ʑubYBɢ0L t ar l4LFj1| ؂}xKՉOV_GKWQg$Q'އ?] $3.U'ڇ?Y>|`.އi38dN|mV9QZ/)'`^o9ZĻ OI.@vc~+tp]w_u>MVJ{ I?UUruAENTg8ևP p=]w8vu$K>VOSrY9a3=͡YSok`֋0g T&`&5Cv sj#`=]ք/ׄG˫7kZ\rn$(W#aMQ7Dn% vVԭcQ7PCÝw8?܍/ܾ|~ظz{5C6zd7zdҷK:'zLWZXdCYa83d8PMW&M)aٮ [0 i Ҥӄ_ҬO;Md5% 2(<ZL}-{\vLR9YRUFN"]|:ưVM.;vn`C0=<*6LCd2j _"{}{ XE}99!%7?;-4r;Nq4s7yr${ڎq1f&Za1\[+]TlT#]4t./.}yh]qo/ ߼#X}x~>uyv DH[4oۂgJCYǽE˫<~9"<57DuM,jӤ˱w-Af8_wbF?9\k&[\Fi S+%(3}î`-+ HIwendstream endobj 635 0 obj << /Type /Page /Contents 636 0 R /Resources 634 0 R /MediaBox [0 0 612 792] /Parent 626 0 R >> endobj 637 0 obj << /D [635 0 R /XYZ 91.8009 721.8656 null] >> endobj 90 0 obj << /D [635 0 R /XYZ 91.8009 174.9507 null] >> endobj 634 0 obj << /Font << /F38 546 0 R /F42 557 0 R /F15 428 0 R /F34 419 0 R >> /ProcSet [ /PDF /Text ] >> endobj 640 0 obj << /Length 1238 /Filter /FlateDecode >> stream xڵXKo6W7޶nzo pg4@r$]oQp87Yw*nELu_һ_483vL9v8T؏nqi؅!\:llJqv=z9; ҽח^:5CMdU|t:Zwff:WHExV(8eCR[@i//?ٱӺ7\~tKFvD-} uг&zU̚<.(\2RZdƼq]]l^/>~%+AX;E߅&)) `gxg~72'Qd򚣚qa7mpc}'JK+c=t}._#1btt(n Q$'U/QBA$D, `$ӣPQ"'ؙ-}y%1^+ 2T29[0 LOHb6ۭ28Vo* ̇dtܑO\iduFzSyxݦ^Ыݪfy+>WY`#W7IFs*ԊB`R)Ns.^YsMw)t4PM(>3)[FЍa)XEߖFRI쫥)AX: +qg =h1$ DV& #)c6Bof֜ 'sOW J^efvVkX^lEug0LLR]rZ;vF@'$z \&e2 |N1&ؼ?m0$gXܿVg9n[;N/ }'oKgLziYA"O%[R2 duVcN_uO~:_xҤr  EqjC24_)l'A /i^n!nH9ho}A'zɜ)f?i@?&w(G{N=> endobj 641 0 obj << /D [639 0 R /XYZ 91.8009 721.8656 null] >> endobj 94 0 obj << /D [639 0 R /XYZ 91.8009 593.4602 null] >> endobj 98 0 obj << /D [639 0 R /XYZ 91.8009 504.7139 null] >> endobj 102 0 obj << /D [639 0 R /XYZ 91.8009 437.4268 null] >> endobj 106 0 obj << /D [639 0 R /XYZ 91.8009 381.5193 null] >> endobj 110 0 obj << /D [639 0 R /XYZ 91.8009 325.6119 null] >> endobj 114 0 obj << /D [639 0 R /XYZ 91.8009 269.7044 null] >> endobj 118 0 obj << /D [639 0 R /XYZ 91.8009 213.2214 null] >> endobj 122 0 obj << /D [639 0 R /XYZ 91.8009 157.3139 null] >> endobj 638 0 obj << /Font << /F15 428 0 R /F39 549 0 R /F35 424 0 R >> /ProcSet [ /PDF /Text ] >> endobj 644 0 obj << /Length 1134 /Filter /FlateDecode >> stream xڽXKo8WP|S.]`Ͼ5Aꦎ G ;Cΐ"i󛏤d%OVz!+8몛O».$wz<,mJZ]ym5tSZ&Sw08S>OM+qfs}FzᥰU=X6W߼ziUFZK6:N]zx6l,̩` E<6M^]4>eBBm;Y{)7y\8%0%cA%+ AZ4oi z gn {w0ZcFo>>>J 49yӤYKR<0o Ecp6J|y] I{j}.%{K|^*S#ޭȚ6>9DRoE Q̼|No|0:y= !>6&LEkiCQ] %vo4 {OxPa]T>sL^1ORhSMgn o&(, lr$" =*7NcjR1%?J례>ąؤmMҁ¡-d-;:ֹ5Y7K3V=%*q#e7XxND4ёN^#[Nr`+~a\W~~0e#!_tK%C\Ǒ}ץMg{3'M%$RR#O^lMSPLo IƘEH7_Q oGBa4l%!s={i0 0ƸeOٕN:?f+CPrܦwY-K7Ip4Ĕ\1*kc*3o0}޿_i)S[^MZOYw[ N 5 YȂiCqӼ:OERAH'%X/X側/ND8kP ޟs[l٦_G엶G_z )(#dYrNii\̼ X.^oAJ9 Z^Bm)>WL e6%;endstream endobj 643 0 obj << /Type /Page /Contents 644 0 R /Resources 642 0 R /MediaBox [0 0 612 792] /Parent 626 0 R >> endobj 645 0 obj << /D [643 0 R /XYZ 91.8009 721.8656 null] >> endobj 126 0 obj << /D [643 0 R /XYZ 91.8009 677.4981 null] >> endobj 130 0 obj << /D [643 0 R /XYZ 91.8009 621.2626 null] >> endobj 134 0 obj << /D [643 0 R /XYZ 91.8009 565.6027 null] >> endobj 138 0 obj << /D [643 0 R /XYZ 91.8009 509.3671 null] >> endobj 142 0 obj << /D [643 0 R /XYZ 91.8009 453.1316 null] >> endobj 146 0 obj << /D [643 0 R /XYZ 91.8009 384.9409 null] >> endobj 150 0 obj << /D [643 0 R /XYZ 91.8009 328.7054 null] >> endobj 154 0 obj << /D [643 0 R /XYZ 91.8009 260.5148 null] >> endobj 158 0 obj << /D [643 0 R /XYZ 91.8009 203.7037 null] >> endobj 642 0 obj << /Font << /F35 424 0 R /F15 428 0 R >> /ProcSet [ /PDF /Text ] >> endobj 648 0 obj << /Length 1211 /Filter /FlateDecode >> stream xXk9_yۅVZqo=-%8H3^޺w`4ϟF3 rWqkVDO\J"Qèjodqęz^& ),E3m;>wl?< {OwV祰b>z=v]՗.O|&G߽|E'_oRe1nau%7H! lR+Vm8vKmTy[׌z3)R;&6ȝd11]%:5idTC2@o{Xڽ\"4F.~ߘ*+]Dg'iOVR ] Y[@D55=L!X0dqbz"uOD8"#3d:/ dQmaNU2&G@:2ϧH3 l j̰=*@D ̺! o@pA  \=A~y82{%LDŽ Z@rp]Rx2 P~NyD-&&9]kΐZnI2Q*)' J$xvLGzY_3 iiХ1vGvMA^Դ>Kj_ ֔`p 1H3wI,-βĔr왆3N$9=~C]K-P5 ZVP-De =-HK }|'WqSv;Qy$ &P /q L| 6Svl1%j!:q4T:lgB|=uQݸCuc%st&rtPqڌQ;VWX/b(MQBS o7=Ny - I+n sQ^45&uc::__wOJN`5~M_"d׽oּ7s SUva򛨚ER35+> endobj 649 0 obj << /D [647 0 R /XYZ 91.8009 721.8656 null] >> endobj 162 0 obj << /D [647 0 R /XYZ 91.8009 677.4981 null] >> endobj 166 0 obj << /D [647 0 R /XYZ 91.8009 609.3074 null] >> endobj 170 0 obj << /D [647 0 R /XYZ 91.8009 541.1168 null] >> endobj 174 0 obj << /D [647 0 R /XYZ 91.8009 484.8812 null] >> endobj 178 0 obj << /D [647 0 R /XYZ 91.8009 428.6457 null] >> endobj 182 0 obj << /D [647 0 R /XYZ 91.8009 372.9858 null] >> endobj 186 0 obj << /D [647 0 R /XYZ 91.8009 316.7503 null] >> endobj 190 0 obj << /D [647 0 R /XYZ 91.8009 260.5148 null] >> endobj 194 0 obj << /D [647 0 R /XYZ 91.8009 202.4527 null] >> endobj 646 0 obj << /Font << /F35 424 0 R /F15 428 0 R /F39 549 0 R >> /ProcSet [ /PDF /Text ] >> endobj 652 0 obj << /Length 3524 /Filter /FlateDecode >> stream x\KoWM`|?6!x䐃 Ymamɑl~~llIϣb]vcRv }g9|hz8%9x+ū_94׻Oɔ8?O {uv._t3?+T윝Yx+D(zƙ$N9mVޖ j`f!^c&2[ZGC#ߵÑxOPMׂ6uUƛa(/AnfKW,x3ܒ^)Dx!^`Wš)7LsGQ(n":VP25'WS#>.@E+#eMS"h5T4@TśԳ|# zq=^C!ĉN]Devm_>etC]nbE3p-w+*ya$5DHk. KB5?=.ń Z\k5X%q&汣v#8Y%J`!&wG0TY N!)D48F caے1N 39&wD0T[N>\^-G~>PZ$cG\ߤgYYGrПXnW;Ix=:u^+=ZJB߀uo#36Ċrm!*j;x3Q`eݡ!d$54ԶqbJ[4 0Ֆ\c2N4Җ5 --<>~i:jiA 2:b#,3vI+x*E ;QYe1!kSG,!4DZ;Y>E)_ViFV̂-"<(_8CYKWҜ+}ZQOE׌&FH2x^( lTЄD<<^7ChVxK˙kjv_b? J,Y30^nR(2|)Dˉ@B"]=atrOd{Zd G \YN7:c==(-X'D /T3uUd,qeUQ$pL^W̴y͓Fhd-!` l FDf#|E  &g @Ф9"3?WDq#bC_-tzfY<[6ٲ@[ #G%R ellGO6 p7nfø!A܍R8jnqi^nS\kO~a>0OJ* oJQTeO O;1=B-{I,aVɛ\]ݎ(5$La}]aTԌ4`,u?/}cNc~z=螌vKr .onWyg!ų~Mr/5^`4$a;%a dVFIsQlLI\~ja,Խ8-Q#`KԀvxϟRnK9׫wvL6#KmWv[>TYZlPPZ>¶. pISR`fzs+VOsz/؟,]j9ZOzCwǤaKa{-)F4]qxh^(U9 cMYxׅi>Lj닲!C5;J| (Ae 3>AҀ@6BgTYg &/`[Zd ΜUWeJz .`G$п2?IFg$f~:s\wI'=n\+od6L21oDʦ!ߓP%ËzoᝦqĹC/G^^/pz!(Jĭ$ Z\!nx037>&} >7(XxlI5pAM"ӲÞ6<¨:3!0D1f"θ\oۂ.{ atqHM=7S[϶#A-.H(H*HQ6[iK荜j vsn,43s,=07dSRIŰbX7ZPPͻ- 09_ܞL`lSfj6ؘFo:m&q0[7O6WYԝΟbnK*QͼGJ+p,zt #۲m`xdqlqy[\:#E-YS 1:iDc1Nྭ=[)q:bqx:4L?-H~9aYyy/??Xˁmt+>gҹN&]<zd/ɹE/6~;<^m,PuyңMm+k\$տ'eL0 E>rs4ՁU"h|m=ATP풘Gwwա'endstream endobj 651 0 obj << /Type /Page /Contents 652 0 R /Resources 650 0 R /MediaBox [0 0 612 792] /Parent 654 0 R >> endobj 653 0 obj << /D [651 0 R /XYZ 91.8009 721.8656 null] >> endobj 198 0 obj << /D [651 0 R /XYZ 91.8009 678.627 null] >> endobj 650 0 obj << /Font << /F35 424 0 R /F15 428 0 R /F38 546 0 R >> /ProcSet [ /PDF /Text ] >> endobj 657 0 obj << /Length 3415 /Filter /FlateDecode >> stream xڽ[KoW#n/|`&9;%91俧(njf`hcc8(q^Xc7׷/| d |J05qbl$a:F+͔3n#bzf|$D|F_t"">O;o;(6 |OQfdvsq߷q!?.eV*kJ ri=L+f>WPB)f`rꗏ=~x٠vI*ꝃ)k`12 pgT_3p ZG!p׀9[w5kNj@)06UxߴPL8vzF3˨чƮjG9505<Fܸk;&fZ΂1C %)vTmǴrW3M=q%,E1zDp3Q)>1T]NJ\P}}8<Yd|*[5=@_Thru3+eMRR+R\]nŒŨ;5ug#%Z9)FfxlvVYƝs+e)?S#dgK4JQp}zOXשΣx?qw Lx<ܷ5cMA)E: abCW% =L%=7~r㘑\>K !e:mY Df&F~e37sSc 7d 1튇 6X_NNKkb3lCQ3!}f4؋Bɹ;hщ}fJf?]u4X8_:a>  *9xzdJ хr7 Æc U,U`}Q@r?gs3k@l-%iKPfq[dx$ O35 ;X(4E zGM=I-gMjMw,&iɰXB`7Q0)7lťYo90璈UlYlNljqa$}p3ԃX^s /K*=dC[8I谡Ñt椁%QgM=lPs55no)aPz n2HA0ZNgPAZZbP3͠2aZ$o{A<" Ws=R2v ,W}~|oQ'gp(j!l,.j*!:Grló/:z}.4|G"o|Wv_!`Tcepn",5D5qFo+n++.v^?b):fPx\Y͆y@ȖjUZfļGYqBa.N$A~P-2H|hgmgzņg}X7`[dB筑.9/BAD^8 EJ=x[!;_iQH#F* =`W"ofԲx?'@RD+M\(eFIrvXm3ea,̘t:6"qœЗqHEHXrЄ$3 EI6wb_'/~.CW1C{\sXKLl2g[['Cuлm0Wp4=&{9VN$UVXab zM [e}߱S<_|<(srR3gYY(s5v 5uFi 6\Xc1?~_F>CM=hy>˗`0l/~gn3|r7O{s~*7 b{8[L1 ?$jfFa! fu\n0{n (uXL$0R1 h/~g; ͙M`i^9Y0;↪AwtHQ亂jp52&PH&L*VRm)a%͔޷a> sϟ!|૿Gym9o_{V4tZU ھZrxt>2?pSa~JK]WQjRz NUT-}O%m)ȢHzJ3TPGu'Jnd<߾K_?>Nq-QnfG8A61zJ:7OPJrb!IyɄ2<=`O`l]@ b#B׹=^‹G(1 AEk^ (&]i`=.K+)dA,h< V#R[\H|{z+ ?[Ih"M:Uramw熭tF~NȎlOGRLm5))൥CCtV 5kTٟn}ea>Rx{pU#dy)xCVx61b18I!,';AhXR?Q_ןiRdނMἨ&P!jvHd b:>a7 _r_8?c7&y>0b{gIjxWVSzsrL.G@&_$7/~| 2bRųQ Z#hr5i;x(:GFu YL|a4JR$LHu@Ei;m&c#u X/\L0L 8Ȥ;'3rZ୐Rs\ɔՐ|@)ZI!tk6¦&Yhe8~T#MoysE6]zj+C䶾U2Ź|J㝐Y>wooQJk9&\Mcj4%EBm"ÂiQ#'H dKUf3C# au53R$g"S_.eN ZlŇEU!~<36dݶ.|#S/18L9'Sr7';ڠLjNm,.{lR۶幊#1y&C׮05fo-!4 ZV<-)+_[tul5w^O]uT;R'1e۲SFrbb'endstream endobj 656 0 obj << /Type /Page /Contents 657 0 R /Resources 655 0 R /MediaBox [0 0 612 792] /Parent 654 0 R /Annots [ 659 0 R ] >> endobj 659 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 .5 .5] /Rect [172.5752 370.7972 205.4306 381.6433] /Subtype/Link/A<> >> endobj 658 0 obj << /D [656 0 R /XYZ 91.8009 721.8656 null] >> endobj 655 0 obj << /Font << /F38 546 0 R /F15 428 0 R /F35 424 0 R /F40 633 0 R >> /ProcSet [ /PDF /Text ] >> endobj 662 0 obj << /Length 3871 /Filter /FlateDecode >> stream xڵsWpb5>u!LFhYr%&Qw[p[c}ݽŁUX~0lnbOW(QW2VI^4kjJU?WVTM]םJQRUj <6#HzBvRw/^+)<蝵΁4Uu ~za67^ ~x}_FmJյ+6`YZ#1j"RJ,*6_K,:O_4<Ŕ]gAX}4Q`.no.Ň]hu]ҕ ,֬2*ùelvNQbT6ҝET)$@wg$SY[ xm]RMe7UqBG2q_|^n`w./7U=,ڧEںg+Ǵ4c</*(O^@Ί2wQ,y1sVf`Α#C*wNXwxYp *̄< ??~ :ţǗ@.)n.)¡bJ!x5}Խ+|$w]×Q}/S}V٫Bi_wv1VZ(x23 __v:%"[$ޗ'qޭB:{N]:%ڬ%aA 5խBLrܴ(MrBoHrپa7򰪑ܷ`Ơ'br}uS%ςHkshK~!UlvgE^@1%ڮMՒ?OՈJhƉpXzg97 pӳ۲ W,6SXc޴ԇ*{4JTpJp5 Xj}W$<7MZbqև-JQFmmڽu56;XODc;BﯩLYk"3-<@K-NV!8$S B |꤅Qd"]pOv/j"SE}Jǽ 2D?=ֿ4Qiwj qG:ִ;6H#j+& ,oqFa+ j`*jqL]ITİeoi|ŖfkѠ59%L#7 a1aqNʸ'#j"Rx(?GE)X[7AŔXuB˳9DM[b1lnr (bT*i.JUVڵP"nXz8|i agm*W*NUa wkӋaO cm]~۝umJeRx|NQZ:_^˅O?pAsii8l}Ur tN _*v7Rx[Oܘ7?q;uĭ̊8q]:q+%[ĭl4іM28nJ2`̔X I)K֭>>!>N=|N-N&~R:|7¬YMh(oR]v N.Apd5ȆRa3!?dlw!)<6 {h*TM%vR$ӆ4^[- JOPb~o ]т`J,e/;>yw`lvɲ!6MhC%ò2;)FUckJת2ZRJs{cm+)D6 ` 7m@]vQY*(;&3d)\ QŒnX*+6 =m%~K0ayNQ=X]ߖtFjXZ†3s09s<[@CnV/6@匥|P&ig(5|ќRX[1mE"CXVmW.ZXb9kqk A/:eX,:1lt6 `r"6 `L.ۛL+p[Cr0zC3NM[Pv;Gn-bni he p-ֳϭeZ̭1m!ŵ}n-bnu?Ŭ)3<$Vf I,F=58ݺ J>n,mOP{UP([0i1ƴ Ѵs"%e0,Yϭ%eVİ|3x82.fy?4 ˭f|DV߰ЌaWەsI67\!`,"rv͝]PxP,wt/vz=5'vu'Vwƫ=R'ܤ}G%ַ8(3cwM P[,}[1AnO/&Y6 ` =96yˈ]K-prNbn]-g8"si+5~A.J׿J /Lifs>)[c}+NBM>G.Y'!bԫ|<:Hbayv7p'68"a,w/bOY?Ϲ3 7{.K83ma.PrXEaJ2`n7Xҿ+Y?g F-at`ybl_<۷*f&2" zHo 7%=il$endstream endobj 661 0 obj << /Type /Page /Contents 662 0 R /Resources 660 0 R /MediaBox [0 0 612 792] /Parent 654 0 R >> endobj 663 0 obj << /D [661 0 R /XYZ 91.8009 721.8656 null] >> endobj 660 0 obj << /Font << /F38 546 0 R /F15 428 0 R /F35 424 0 R >> /ProcSet [ /PDF /Text ] >> endobj 666 0 obj << /Length 3940 /Filter /FlateDecode >> stream xڵ]]ܺ }ϯ]ܻ"}(c(&Y4ٽ$m/5cѲ%c{A6yF&)YbAuRw+ye Q/wQD?ĐgN!x)Xa A 78wxy8|, 醺&B CDJT(?9$u+-RZG#$H*/20kxr(o7o/*m 0֥jXQ wJV?=|ǭ_* }`J T]Ha,%l邏WU9.Nh=F G ZuiWZsXQn{5Si3Zcf߿ h<@IHΈA=QTS?wr}X]kf`F(@)qoeMb3F5:+ _Dv.B9f'5GT[3 5XLC2jOH‘"^32'CTĠZkFA(ʊ8T {]j]D2fj"MKr,ƒB^JC,R4- aVx [aiL%6o6Kc,&l_DvLV[d,@ 4XdL Nr8N|VYd-V$[`4ҙMHli̙ٖn0H qfo&Ym6! Y liM`*mƀ~Wpl,,\`h*EH8Yn`б9K=01ȳg5|"lMrLAD/7sT,rY2Ltso (- ا0I9yTf8;͔B+.ob 4Xd %7'hmxaaNli]E=j`ՖmӖ r\$KLf;mՐmY,x杰+Ly`gK^CjJuH@d9Υ1$@!4lp`ppR~xb}g|g&}nCqx{n_:F<@!DoǸ%pjc&ns4P ȄYhH](m[ɚ`M6MIVYL] l[YnM7_vE4M ,7xN*!R_ :R :JE&$34"d 94" }P%c1T%blb1T!%cHL e)6 u{cDV[db l[ *2{̲&Ze=f諻lXe1|}(¶?dr3uFt+M,,7{x\p8mTnw< q;FYtæMAHw{gW꘮;.6]'U9~VWor/~7zH\ dh`$~Ν:}#luCt' /nOJ+]{cY:f],K 29$Rh9e=áx syT-Y5哗z_ Ynw>5{4 6~Z<>?u3nߜk-yaq{NKc=в&XeAS~x4@6*WҢq/_&J1ps)?vu\Xkˍs;FK:.7X3p cj @cPB}Y+E VJLBZ`7br=E= ,7ֺRX¡r3;:;aB7r|߾uy7Jyfب9V&. r(=,5- %p ็'(4&*8ճoۛ`,՘ȣ q1P75 ,ј*;5&bfZ1h75&bfZ庍 ؘA@5&]UܖQ,2[P:K zb dB-*Yh^ʘM Amy߶V[:c˓%Cx.z3z %/5NdNtb*xSq4"w"IC ^sObfzS.x;iHlcqĵZe}#a0{ps,VY! 9ۻ7lǀr33th߷P li}6(fǁEHbn:!=ݓusޮCTɰ˃Y> }{Ze>Zmm&5AiwcAc,G&m>lKxہ)VYl^ /52a8mb5DV[lWKᴣ1Zi\VY^M8{s damNg--vyĶ~ ,7C{m{25j\U}| ̂8|n<͕ph m}>#8s؎f`u{`v+ܢ:[r`<~6 6,G:#@pX\+5mhD8jbnbmt8`v 5 .rBT]d^)e`80qԷ3*4nkp`h380rMā9lKzH;r`[e Q CdGq4"́080cvfU*90:@7aޅ ,62nҁ׬4. bEWq`QnM/7;*J1p Ox &'3'Ytz& ,G??\b4(VzsCG%sL ڂ<#N ˏן!TC?Ϸ0 7?ҕDo}{Szu?63 6ke(:s5sx8t޼7Is{Ԙ6n{P??7>鴽=Nhܸ%?_Nx_-}')!>h=;=$QR&o+f eKNgj?endstream endobj 665 0 obj << /Type /Page /Contents 666 0 R /Resources 664 0 R /MediaBox [0 0 612 792] /Parent 654 0 R >> endobj 667 0 obj << /D [665 0 R /XYZ 91.8009 721.8656 null] >> endobj 202 0 obj << /D [665 0 R /XYZ 91.8009 193.4951 null] >> endobj 664 0 obj << /Font << /F38 546 0 R /F15 428 0 R /F35 424 0 R /F34 419 0 R >> /ProcSet [ /PDF /Text ] >> endobj 670 0 obj << /Length 2666 /Filter /FlateDecode >> stream xڭZKoGW}"lrf d4d﷪3Ù6 =by$|?4Zzp1swg$g"Fz +pu;n: [ͻ{e{v'໅µLFtSm!-oi&]G])Wr+=~ue_N8Pwx/(I2:@pdI@Ҽ]Ah,h=VƵAڻ8) !\[8s R68fiXk=RtƳ"'h44m:Ŏ(_*m#zFK#%"hI*׊Xyu3z!B iĆh\R"$U\*VqvwiǙ˪0-{)^nSx]ͭQ`<-LIfk>\N2 fw}@Ӏgs-ɤ%%KdEoYq@6\u9\=4JU1lqj zNp?= ٥&4b&ܨy5Q N&v=hmG26xLnaGp&Korl9/F^N3 SE-:;f-ٍzmH8_sBiz .Mާ&/&'l\RTHns~,P`4^+ѼQشDa].{QCHG*G@GXfxJ#6K#YDcwb! =~+9w)x0srScL+fCc j1sQmL}<& 7]M c˰XWLMؽXUscZ!咟[ SabjHf%PYoq'FXBe ݚ!#)q30)xF6YH~I邹E&H஺9=Hia[boLz.#.E25Q}Oqޡٺ_\)-DYM8bܕ9NlFfn3י9Og "yf>bu .y<ǥ֦uZZiޤw{܌*a>@CP^sr68ZI0YM Dm MU vd;`'Ge^ N*.qG+ǫjHvFzf*M43og E $^קBЭN}OZ=%jMr\f#dl3Rc{?}&c⤴%Bg xg2Yf`=w2I~۞As/Mܝ4ZZb:mvUmW]{NzƶQbX=7i'(Ebqľ>gqd[|RgA5̅< `WX ]5mg #epK*՚ t~=1y-T/S9`Jݧ;M{A€lhOrojABa]A@VPLՄ'즰 8w i BqwES )T%T`k`{g3-CH\âYz ;+}[pwRf|彴9`3yM 7'&0^da DR & E{sIQᴆm"qq)1ˆfLy%Vkf> endobj 671 0 obj << /D [669 0 R /XYZ 91.8009 721.8656 null] >> endobj 206 0 obj << /D [669 0 R /XYZ 91.8009 612.5401 null] >> endobj 210 0 obj << /D [669 0 R /XYZ 91.8009 311.2606 null] >> endobj 668 0 obj << /Font << /F15 428 0 R /F39 549 0 R /F38 546 0 R >> /ProcSet [ /PDF /Text ] >> endobj 674 0 obj << /Length 2519 /Filter /FlateDecode >> stream xڵKo _4|? F8dk8eGׇTi6{f$43]SX*lMK Zݧt~~g9\9j%~OBNL!5籴9-&k k x#Bo?OLM85Nik6jT|?Qp]߃z qolw!wowEσ 1m<(V pP,5 %%p:~jeOBMIF"o,. ڋ_B3#а,M_9-yL=z? `-18VGNMqGkM«`0Sǔ7>a% +Y*kRFӘt:z3G|+mUysL&RQ3]-6Mhqr<TQ7իlLjB^:֋ nWAkbWyģe6>aM1L4ԅ1yo yWHEiN8gP1$,09F|%A^"x?[!1躢S$Γ >X*v }J<s ׈8mUx ū+iM4v~V4$y ^y o=ChC"C VfhGy2L2 {H$/iZ0kIfm%rIA"4%;vJh: ̩Q*n0>]pC,ںuj+4m0H) B~s]N(1?\ '6}JɴpC/XHUCIG(4jWU^*Zq9B}yL'PՒykJy~A/|KhNBO@Z)\ʭ|W6?|t6 d v9w-ִԨWDZgǡٰȜi",s-ňIxyslșao8s g_W μug>g`b Uhg详FO,k9W $MXpCcR=S8q-wBf9zWfG.7>{f'Q&.ݽ,Pq=ςIϘh4fZ0D{E5cv,DzXݙk/ ~V%fI5zy岞1hѿؒĝoZGԦ%hCFZIb~;v=ajIlk`O='©]n&.6wS7h\C{+/ !pI5VZf;Ƴ%W0_Ԫ"vvј4̵bT6pEqMoxgeY> ];eZ̥ Ie$Z_e~?(-*'I֙:!vR[p .#̓ rָs\黬LI#v*Ǵ|RC'~Qg'^N&Ӡ^N|"]P鉏1yy:b >9nI,49T,=Ӝn͜" ;npG`ߏwȰlo3Èb!Rѽruv_?>Fr 8Ơ)5)$a+t-H+MX #5<)nF"b=,AI\|AUe1}xÕ1nw'^c5j*&hD]fTze<\ro߫SVX}sJ6Ň aXTi5)@8bZiЦڧ (87e1Xե1e]endstream endobj 673 0 obj << /Type /Page /Contents 674 0 R /Resources 672 0 R /MediaBox [0 0 612 792] /Parent 654 0 R >> endobj 675 0 obj << /D [673 0 R /XYZ 91.8009 721.8656 null] >> endobj 214 0 obj << /D [673 0 R /XYZ 91.8009 674.3441 null] >> endobj 218 0 obj << /D [673 0 R /XYZ 91.8009 529.2412 null] >> endobj 222 0 obj << /D [673 0 R /XYZ 91.8009 402.9357 null] >> endobj 672 0 obj << /Font << /F34 419 0 R /F15 428 0 R /F39 549 0 R /F38 546 0 R >> /ProcSet [ /PDF /Text ] >> endobj 678 0 obj << /Length 3001 /Filter /FlateDecode >> stream xڵ\KoWL2afӁ/r ||ƻ+ɑOGMLð4Ҕ>Xa; 22Pjw +2D؁wR0"mVAb:As:80L:N IQ^X­ݧD>V!reZ@ M* %vON]$#dÌ G/1,O(~|w|~ϷQ#J*.7GJ/Mpdp Z2 n)Br:X1%:h|&+%XXu#>(n\3xi̍P"~Q@qC Cu jBUZt{L980trKRH7BNҋ `~鉾-"7Fz ']}!S^>|,P}nHXS(>5!Jr4N(@[1l dfنrEy.8&[j.A;( [&& *g|3+eXBhi/qqŰTߦLCziz)t܍.=dDPt M5/_!ڄЕߴCܕָ\`1!L^έ::JTǿw,BGBPe2hB^ZBG]uL Hcf+*wCrh[;^* 9?怭!TR5>\@S8}#^=C B?.Pp+ڥ*/0Ph58e4WdYF73o32RaA^t BRiB)GjEk}{}l2#p㴧p̧ۛ]s2y yoZX9:?sN#*,vԸC;tڶ. NܞtUvMpEc|244b& >-#DL#B^,ƃ&dDq95E. >4AbITh;`r7ͻ]HC rXwVz~QTt8 Nj˾OG5o,<*!/%jXwI2/iB 1Hu8miCNKT; rho??4%ڶ =G>6Ҕv-ƪX|z|os>p9(1T-7ep-`״@V/A݇'/5sZk#Y[AP589?r@ѻQ ;Hm}1S(l>)PW X\v.Wszen5—Ǐcr3_ʅȎ6If/Aȁh#y+&|Eq%JuzTS1s5iהNaoOy3SN:cLaL51R,+O/uq}p}~~}x 5t^|}᚛继p=ĝXvYT6%1M^kz)Ah}5|^o5 GBv P' ?<`%{1j3!O'[YĆO!yߋ{nbu?: 7O4`pMQK1Rr\IM98xEq(ֲ׌`endstream endobj 677 0 obj << /Type /Page /Contents 678 0 R /Resources 676 0 R /MediaBox [0 0 612 792] /Parent 680 0 R >> endobj 679 0 obj << /D [677 0 R /XYZ 91.8009 721.8656 null] >> endobj 226 0 obj << /D [677 0 R /XYZ 91.8009 176.2037 null] >> endobj 676 0 obj << /Font << /F38 546 0 R /F15 428 0 R /F34 419 0 R >> /ProcSet [ /PDF /Text ] >> endobj 683 0 obj << /Length 2240 /Filter /FlateDecode >> stream xZ[$G ~_ӌS)@@$y@ldu3gABٹvٟI` aqHo˟Nr ]YF*xW]wϿ, uX"Wߝ+Hs!Wp"(k,\@LVg+^MZ;heK%K:#Yۀ(ƪ>J+]-n WdE\gN+ad3W"hjl:,E𢒅6c5ʚw.T VHh4gqXJr!ޑh#E~ !b1_ %Z}-_`ӥBIWfnFޝ)uL @ȥ l5uֳT_Y2V펒ɃmVyetzu9zb )OQꜽ^P9N] cw0LVD@βAUAX|b Yf!1T]'[bDǯB*H|? 3FY0@8/P^A)ü ,-2UX[e'mU5'7o.j|<.FR&HjUu{"I20 .?kژ͏oOz]T$J$$c^'9h"$ƸT5/o?%IjImjw_)VsD%.q7}b yhʲ\eCRRVRzL*+u+r&3 ďom?|:Ξ,Q`A|*8au iM 1j^Ao[4b[[dlnm`8h:6YNJ_{$m;[Il-xOX܀uV*ud{@I}|D*ݝaEõWht(ÈV%%a!L؆oFlY!EYzg'Bgko2jAV9[do>RGF"W%ijQڧ~pmt+5XĚuG}-nvP@]JϢdtP&'M3f@lF&Q)?VIW>$0$(XwdhNp}n?{Ӥw߿3=? {2îH?Ospy'XuUT$tX?l(endstream endobj 682 0 obj << /Type /Page /Contents 683 0 R /Resources 681 0 R /MediaBox [0 0 612 792] /Parent 680 0 R >> endobj 684 0 obj << /D [682 0 R /XYZ 91.8009 721.8656 null] >> endobj 230 0 obj << /D [682 0 R /XYZ 91.8009 592.9028 null] >> endobj 685 0 obj << /D [682 0 R /XYZ 91.8009 501.3024 null] >> endobj 681 0 obj << /Font << /F15 428 0 R /F35 424 0 R /F39 549 0 R /F38 546 0 R >> /ProcSet [ /PDF /Text ] >> endobj 688 0 obj << /Length 3529 /Filter /FlateDecode >> stream x\YI~(,KH$ci`V̘5ౙcyX߉ʳ=UdddėYE& dIQE 9]zg߾ NS|z F!#rmOqĔPaIt;}H:i 0*5"tod17U-ӓ+r09 ty7?\/  CTY 5IB\k[~ႼtX Ync%I4,XAJ^ɦ -c-8k+,:0%N qa^%R z wZ-l@^C62c4"b$Ù2?ޭRJZ3J@P((%`#Qћ)jF #Ŵ+xM#lzF l [[ޖ#i;}?D SM䓝GڞOʿ*&c7Io7LƹrR2bgpHUT31$|9+.taF Lǐ3!GŸA9|Rɂ eUE g/;R T M\^B$x*A/@˵9Hp%^ADBr .f#9 7!A* ,ۻb5vn_JZOB(RD*Vm5^ʺ~3$Gh 8`D8^f nf|qN}2LyY(r 60=i(g6N);k 5ڐ)7*LMhp8u+Y(u@fGʐ,M|nuO`Xw lk\\mܗY\yI8WдW%6$jQ`!HY'ɦfijUJ> ~ ?/MpD(?Gq$zy^*9b1=G>UD]V::HŲ\ UjJQ!JBK͌͗/*qRTokOؤs S 5oh}RaBɎ@ $:@2wWZĘ'gGh\?s< ¢0\:AŅp_ȶk.,VyE*l`smϽethoRتqnV+]Lx.l̼Ҹ*w~1aʈ)#iR"lktS T/0$ZZpNynD&,wpCO HK`f!V'AOH_zr$Fk#biY:T4Ee p \ݱ-xMk/-ST02݁r?'CSJ$53t=wWHo+e$dVf/K@xY钞.Hބ0qjV10WRז/T1o*+1 kT|ի6YYKsHxէ>P'tw|YA͏aooms*-^{}X+k]c_͞P>@v MgҠ Tb+ WVm@[(qUݾk)ыEDߘ蒂RP)'7QBfz TEmF-OpV6ôk74lEW8,hLR?nܣF]}5ReO0hXts&FȨF{81JK[ڰrQ4Pq{M1LNh ˜ \"Յw}0r^gKK,f1f*h^hu{mhd/V9)0S4ʽi6*=/gW5 X dd4U` )HqR0 ˨b4J+_?VXy ]PI~b\„ <'7lqu  )(%=EbQ;'[>Ds}!Sh>VSGQ{>=BE =1 sBj vvmA׉j4 /B/UX/(,F4EOS*:4EKSdN) g)~HSا)j*4)2G:}l!MQ]4b89"M1VXp2nPlbN5bk5; ΍4A',ٜ!p~{6I{Cmr 7m\|dH0y%q(lC\v)v~<=Ms)cMaaqԤסiM MbП%)> On+,6COϑng7w>73S{*iξҕt=J,vH]PQ2 t)fF14{%NyrmGg;݈%)Qxx1*xgNoʩTtpv=nkbuy Mؖ%4S#`kenD7v3%#r_7w< O1`\5tvK2(;։eP( M'޵(#Rd}z֏&lx(@)EVFCMq@E)n4Ę)͑XIƐ)Um' endstream endobj 687 0 obj << /Type /Page /Contents 688 0 R /Resources 686 0 R /MediaBox [0 0 612 792] /Parent 680 0 R >> endobj 689 0 obj << /D [687 0 R /XYZ 91.8009 721.8656 null] >> endobj 234 0 obj << /D [687 0 R /XYZ 91.8009 579.7767 null] >> endobj 686 0 obj << /Font << /F38 546 0 R /F39 549 0 R /F42 557 0 R /F15 428 0 R >> /ProcSet [ /PDF /Text ] >> endobj 692 0 obj << /Length 3605 /Filter /FlateDecode >> stream xڽ\KoWtNcr888%C=nl=3!YX,֋blrXJd8||B{??aFrK~{aN"e3qӉg]xI IQfR)nw }B^ޭBԜĤڙ;e,)Ib:i+uVzzvriH^_22dZJRv[ԊpXX.^F"]QDjmv;D(F6{%k)N!XxQmfl2_^vsN:97P.ۻDɻxO85 4ƈSpwI`!AvjhH恟NNgP?/DD͙K*]-R.X("R؜E\rޓTUq"լV38+/j^O[`pJ8FGsJ*SfUjABDjބ+M_)c4_}P.㊌Z(y-X^ S>4F8Tp;: ܶ]r.ܫuoەuNJ kL )% 5K{p_}rW?+h ʈf瘢qi}.mJVCiV8KUx!X֎gk9CqcH{<Kz㣎%\<5J#y& E*FB&dPkq^D1"ib 1Rm.aD[-ꔒ6hNli;lSʡ7rBfh3oÜ"Zp}pe""eC9 YJ'/pkVrD gxҔ+3n|m?5CW³ Oq$K{3 .k=4L3gm#j\ la=-|pfhEeȖmB",IYu%!,DB Z:PHɚr6fi"SXq b-?`YYW@7=,G0l, bh'pв̜2bKc(_"} JIRʝmJR*V('eL&,zg2ET+cbbOFĐipe5~Zso:XJKJhKAjve*{9 WJl7QbUpkЄu1-0vP,YGNZQL:߱(F (z$Oo LC5 Z`4S6V^ZC*Ǵ<#wQHW"TF'm3 cX <MmQfUor-LhSsi[yu2,h6AO]rjV=IljfT"[8)B2~xkPd傋Ab5w]JITF,6c(RyjKRl"&1e>GTH򐾕doi\Z޽ؼ]ّqv7,"vBkl27+ YM?U[>"Bbz W(p^"R CͽoP0z!>{+kQ`ұ iVm=97%ܗn)W,P8;(-"|M['.7+S/)ףQLJXY<]{Y`%W$BhD>zaWJ$}k` r覔X1*FK>BȀtuHN Zk9$&تX4A͋0gUfitY#;ŒK̤+cL!KTHxnǝy7$͗wK]ûFxGݣXѻP}ݲ{5;fqol;:]~l+:gk,Nspm%b˹93jszlͧ ]$;~g ԧґ; ^ޗT"AaS暓$t)N3=CT=aX g]?{OiD]o;O4m~#FT;]!rUY0%5t' CNY(["HrFB!& T]BqF I-s3>Rb5jHFoEV"Fe%g[ǟ]$tAmi:6IXPnb&.-3M함 #$ܮsЕ%V €<0jG$k<^Ӕ[dDw 3TWo@w5ӨLm4}[)?~_vh~l+.m[ٵe^ "]|/>xtN7f#a~25 x{L4vX.Z}j:Pvz0$? ΡjH@SJ(@>.vl)eQTHJ[Oq~ 1֯wՎ.Ur}iRb}&:Z{uaBɪ֞gRY\@iWFb®\}q"vxH0A]@-d>$>^dkLwih %Ubk4P8cq E 7h6v6,Eyy؁ Gr0/jBKmڑj]F@ lJUk(m2v/ϗ3':Ry_/"b\W#.[-#=@@(zLfv=Vp 0=E\b|2XzwчVyHIF<2 v7Bb}`ˤdpuA.ᖳVnݟOQ~iG,lyFQB9tvy~ j;}> endobj 693 0 obj << /D [691 0 R /XYZ 91.8009 721.8656 null] >> endobj 690 0 obj << /Font << /F38 546 0 R /F42 557 0 R /F15 428 0 R >> /ProcSet [ /PDF /Text ] >> endobj 696 0 obj << /Length 2137 /Filter /FlateDecode >> stream xڵZK6WFt#,U!d8X$a}їMAnFE΅6tg_VEvj+e ns%?f G|,>ŸHr͟Ғ;FɿojΦ6Ujֺ8e.GG 8gk,_=ko3PߗlNEYg4) hnD7;e6E7f|uۥѯLR5_~5rw=/[}Jx cmu3*Ce2IuiAs8)]l]mo~$DիVUDD7I$F0U=[W۫sjlzw#9H7_[~ΠVh`*>t'.gUV \j*xxf-KuA i'V$yHrw}MN51m7QK\i$e)J8#BYJ)ON.)9įfJSЋ|]=HƼ^m&&#^5 34&sDD#)qyk)Emi Sq^nfs'HlfA/sʷc\ᔗ\/9T`‹-gu\:xw [nXŮvU`aMN-j[2IaWG}6ck# /ڍ9톮 gdlUw]TIOЗO/}zsj(jәQS5`4RUHb0)>`}E75҉AIDfɦФ=[׃eERswvH ǎB͋TPZ9fW f{8+iR|>\)ݫaZ\` 3XN^٦ dRwgghᲵŪ%8>|!BZ&? l \O!"]_:>'gr;ZA.Lr:u`sX?U2SBgc59Qo pLiUM}XWz+GoÊiTLG:+VYO +Jk)=,iZ/ǣe|W@Wu>(nH>a>لAihӜ]4]ÿ[QtaRe^,buI}.ٛ̽޲$u|>>N<`21SkֽR~ `g8;k1=q1s6EMSX57Ԫ+kA?!}endstream endobj 695 0 obj << /Type /Page /Contents 696 0 R /Resources 694 0 R /MediaBox [0 0 612 792] /Parent 680 0 R /Annots [ 698 0 R ] >> endobj 698 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [115.7113 683.51 191.7137 695.4628] /Subtype/Link/A<> >> endobj 697 0 obj << /D [695 0 R /XYZ 91.8009 721.8656 null] >> endobj 238 0 obj << /D [695 0 R /XYZ 91.8009 637.9144 null] >> endobj 242 0 obj << /D [695 0 R /XYZ 91.8009 474.8787 null] >> endobj 246 0 obj << /D [695 0 R /XYZ 91.8009 296.7674 null] >> endobj 694 0 obj << /Font << /F14 564 0 R /F15 428 0 R /F34 419 0 R /F38 546 0 R /F35 424 0 R /F39 549 0 R /F42 557 0 R >> /ProcSet [ /PDF /Text ] >> endobj 701 0 obj << /Length 2564 /Filter /FlateDecode >> stream xڵ[Mo7W4|0,~l`s!D-o }I6d75_fE 9`0 >>/ `pLz'Ƨ{%Ig2.axƇ`97䃒I  na/|ڤ( F ;& hBxG@w~ʦ qqٗna!ndХ+;5CgÙnNAWJf$2эˊt藧=ƷJ1EkTx| >=Vf^6-V#\:j1 z̖5+X<-uy-G %7b32o3\k-Y8]R$J4Nf޽bPKZ*?zVVњ*"l2NmƁaهdD+ЈdL/p#>c{~c=*̶*γm<,ŀO!-NLZSyT@FBq8ΌnY,7 '|.IOzDt%M٦:KOFP [C,{a`9.l.Zc=CLbZs.\1+TE H&D@&!4zj!(NztXؐ2  zeLyH|qbh9g eɍbrlNhahF"B^E^^3_Bs Mf6|"Fp|ф잳oTYz;>I:G$~Us 94BIB"B^>0}])d3K"&$FFO"j9JLn(#".^Wq dz.qBt'NĆ'V:S kgz* JN~1<*C(6yCpL鰓'Z8-81mHr/!8YMDr.CٜY;m ux-k:s^=5Iq+SI[͔ %ؚ3c)w7jDE- SK.8O-Cqh0v%$FXZ OX)2ej$$Ij߲Ž\| v(͘/п{a?o=3{Wev覰2C6:\׺\nPŀ`UUicN+=PMVM ꣰-UjL_@).s˽ưOU{ 5ZY3ko}nU.GZ:3i6jD┍)CgXƯO'K#63zx% %R\#nU Qy^Aœd3zĦ(9}׋\/(I•?4|GFK=nՈkGHFFmÑ$ܟNR7*DHˌjUgtj%=nU|ea ™ t47nLi'Ip'ul"ۤݾOsk 9n-vll"6,;e^pQuk1Iqrx >Sr/!uF\ x6:ݞN޶&\AS>=Аs.)ڋ*ZFl6QLn{5&(LX欖I-6z΁#T=vĘyKy`\6TkHKt<%ȡLtoo%u:[AwtlosSixbA*?<)(|`:lz7xoXpbqݓJ%vȨ5JQ` y-5~zk(6ݤ09 ٤0\T7j *,@VSMEUsă͹e t0sgaŌG*YMq0Ze#Z".'a˼VETܕC }z37,xm7 N7;ܪcɭ62^^m>ƞ-LnS-bFQݿو+~| >ߑVz;\B{(+4]vrjuZi+ҨHa-P^ZnjHM? 9څ<1*tveU gaSX0r VsC޴_ M_rjt,WÒ`SŽv#.&+9WiM8zsN{b#R`%-l c򾑰'77ݻOn-cX5LKjA]W{ť a{:k#a1/RP~9NPжe~x$iJ>FP4t$45Pk8z!endstream endobj 700 0 obj << /Type /Page /Contents 701 0 R /Resources 699 0 R /MediaBox [0 0 612 792] /Parent 680 0 R /Annots [ 703 0 R ] >> endobj 703 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [115.7113 340.4652 191.7137 352.4179] /Subtype/Link/A<> >> endobj 702 0 obj << /D [700 0 R /XYZ 91.8009 721.8656 null] >> endobj 250 0 obj << /D [700 0 R /XYZ 91.8009 294.8695 null] >> endobj 699 0 obj << /Font << /F38 546 0 R /F42 557 0 R /F14 564 0 R /F15 428 0 R /F34 419 0 R >> /ProcSet [ /PDF /Text ] >> endobj 706 0 obj << /Length 2229 /Filter /FlateDecode >> stream xڵZK5W40#?v{"!& *嶻{3KjvQ]\U]5 eg]o,z& OVKBZɗ珞~mB'BpН_<߽0ʽ0G:€SK_ke ӎT)EOx x:"J-ιV(`OFX5OqOĻgWOda ٖ5mᝍH?"hXm[&/ 7,mb,< q.RC?Blf6l-<>``Y87Hڬi leҊ6_c1a(~ C,lpŤ VZ˼[YHSbf,5` l!i?Q{aA-ʲ}B'le}‡}>a+w =7qo uX tB/S* LU+p擤%&әk2Ҙř䒢icy1tѰ\0FM'.ddE@347IXБ oUx*Ļ@i(JĹXr*Vpk_;➮Kr ϫxsgccfcvm٨$LaRqqz蚤iv"UwxϷ:ܩu.X18>iU-:WT8m bH*E""uP]Ud*g$WE@W-+8"/ƪsH6*z j-$9KW]ɮmRy]HT вrqdKt%M痟m k:tqWQiȴ]L s;QIV&'m f} xeF=$8?] .WEϽ/ٍlJ^T "ez@/970z5'H|W]CWKN.a&u?AgҙT2NRn f)7̍f]*c|:ɶ7(qfUL*xĮϮ=IPcnMCcqqRpЗar{=K~zm(+LTtQ%T 1ٴe6gzLatImϖz7]rWeO1Wr5 Rc%8ƢeU *NREyc_W[ _VTZ¨jt뙥1)׋{endstream endobj 705 0 obj << /Type /Page /Contents 706 0 R /Resources 704 0 R /MediaBox [0 0 612 792] /Parent 708 0 R >> endobj 707 0 obj << /D [705 0 R /XYZ 91.8009 721.8656 null] >> endobj 254 0 obj << /D [705 0 R /XYZ 91.8009 680.5637 null] >> endobj 258 0 obj << /D [705 0 R /XYZ 91.8009 610.149 null] >> endobj 262 0 obj << /D [705 0 R /XYZ 91.8009 381.3394 null] >> endobj 266 0 obj << /D [705 0 R /XYZ 91.8009 241.9861 null] >> endobj 704 0 obj << /Font << /F39 549 0 R /F15 428 0 R /F38 546 0 R /F34 419 0 R >> /ProcSet [ /PDF /Text ] >> endobj 711 0 obj << /Length 3275 /Filter /FlateDecode >> stream xڵ[[o~8м"(P oa(Qֲ[2e.u$A|VCpq8fW8'`$\Xco_"hZ?O1\) },r(-Ao^Y+Ap˜ˡǛҡ9iՁvi-R;[؋}=}򨔾8uNi}yk;޵XxV ខy;IK҇OE=X dh_" _1`uڭUuPkK؏QL})*U67G%у2'Bv {iäoTj8(6ΞZN8TSp׈'I`V7 j2|+D:(حєJaTstzI.oC e&!R{A9dtzǐz?2=j"=;s`6(] N"r ptem %2܈FY=%5QoGo %X{* $/uG-Ja"IE0x/ǯzH@Ԃ -)zL?B WpJ)Y}t>?a-J)RS 'ڌn:爵)1Z.i6KpxrT'^V>YFl`u Q Y q娕ƽteq9BVL[u?ـv#vV+ZRC)G.XQXY]ʜ>KȀ=dK+E\5+E>V$֥UٔV9e*YƇZ)zܪ^=ʧl ~#ذ%љX:K$QN*_t.u`ŮJK+,5j9,U݅tT˔Uvo䮱"5S'JIEJg:M%|o[1<],"!)ϱgq1#dt<:=w-ծ҉}YщƱ7=3yNw[MPcSj ~yKOzHmw/n?l-L gms۴n2jۮlz=8P6Q1͍ŵaRD)Rĕ (i8Ş;P`DgiBqK^ᓺ%L;; IIgK9d~2I _۝R*.и*4p"J#4endstream endobj 710 0 obj << /Type /Page /Contents 711 0 R /Resources 709 0 R /MediaBox [0 0 612 792] /Parent 708 0 R >> endobj 712 0 obj << /D [710 0 R /XYZ 91.8009 721.8656 null] >> endobj 709 0 obj << /Font << /F14 564 0 R /F15 428 0 R /F35 424 0 R /F38 546 0 R >> /ProcSet [ /PDF /Text ] >> endobj 715 0 obj << /Length 3545 /Filter /FlateDecode >> stream xڵ\Ko7W rpf!fbgmɐe!*Gݜd4U"i͂M;'k×|<2ZNL͓Rt̲+ o;Y6V?_ǿl^i=o.r^ſ^'BURac5IuҮ_{9_4@Ro2 ~xQ'F֢G))DYj3K?l|B79i+7V* c;'ڍavrʯYgQI0%̼:Iׯ Rpmok3j&CA\ƬY~ #H%W hfz1n0BXANbz/RM^½ZMܧU4XXgاFMu۟eu\qz/` 7{p0ga147EFC}XBߏm)K1|2G6V7o!o:H^<<ߚLyy>Jz: ޽ 2CPvĩy`:Y3ɟQAexAgx!8Ӑ)XĘ9 HgS^3h؉$پW?U%o"}]z]8C~\ I][7ѳ,z%V+57,i, Ä EOspn 7`B> ;$4zU.R'Ejwzʳ0ձ?Ֆal:d?#[1X "lh4eghhii)Fҷ`hfx ^Iީ]d1h_W}b}߿o{D[`(9m$%c 1Y.t*%_ٙ NYrLK TIw E2 * 4gtΖ!Ȗ5]:V _0<ePVYPex9Ym}C+JA dKSfaϿ2o5֑0^wl͔%T`v 1HDu&a: }lB=^J9ׇNԲ,wYW\4 B4.GBD,dUzA(m~Z9GO=#%'xAM3@mOI*$>HzUTkhɶQ' O5/&:SqT?Q*9[3iB[Z{`CTBEN$*_a-~_ cݧ]i94:i/F8 9e>g|9Wz$W;"zw۸άΤiuƒ*p0qLr=w~li&'>ݛiUU0j`I',663=;bםZp=ǝgLFf$W} lR<#I[cH 1f">Lؑr3845 wٲSs+ɧ1SW1e~^Jg/yҁRƁ TwCթ ӣj6X"d/50x'bwH3H=`Y(52Jg*scTx|jQcUt-(11 &eVi>]{h8=Ԓw˚f#%v J<~#-aI_|E:\fq'ƭM#= |xP"!rw>\2dՌ~tCQɋxdmqqlJIdpe2-uOn|z0!&"ig^юМ&6tԈ'tf5[Զ"+gj@{nb_:}OfyʄkseP)Wx_I94N5H$m@45ʋ4ٴ#}JKѾ1iTtTAC)4>Ҹ丗jd ^ 9pSv3؋?Q*V#ŷTQn%_U ]M\P*,FM [/1; -ء[f 6v.-.}zw̿2;+|^s0rtt*|JsBQ'y%/Dն)nbBEiX~j@ߎS$Y/J{=3gZ +AHR[!Mb2[tcҥH! /t+> endobj 716 0 obj << /D [714 0 R /XYZ 91.8009 721.8656 null] >> endobj 713 0 obj << /Font << /F14 564 0 R /F15 428 0 R /F38 546 0 R /F35 424 0 R >> /ProcSet [ /PDF /Text ] >> endobj 719 0 obj << /Length 4836 /Filter /FlateDecode >> stream xڵmݶrS]V|P  .mN]۹PGH pv;4 EI22Jax8.?nwr1*=ѪAqAwzH)Fk;ۿFKFᕄomlG'+[46ZNQ'`4~7RiCc<(_7ߧ3\C._/2̼2z8(pfbta,A Ρ|W8秷?}8:Ajp`?DO%b)B~/2ߓ)%ۇGlSn2&a]7o~Jџ"~Q}y. _AV8UZ8 x 3mOQpbM?ΘTHil$1 zSг᩠m!q~'@ȔJ jY='J':* 7Ko.x M)gO6M#1h&J08Sg`B#`{ݧgc=vz$΂6?);{$ka1}__stB26@_ ЂBNMAnR\qn[N |$}D+i:uo~ TsNnGC+YgC._$^qc9`ъsӘ?D uTcs"VxjwBr,_8㒯cZV1=Jצ3У+G2_'1Vőmp(5mCL &7e,<֣ T>摌=ϞnZM2z%@N5q=:H4!t1P/\TvYG`,IM#U&}2\{?|z)q6`{Kn y rK+$SGi hRx?JRoɐb aG;‰A8FC&LI]%CgFZ!k Hvΐ8>}̒?dG( vG !yIͳHu٨ZC{;i$XMˡWHZ?dXStr*I뱩̸K ^5- sa\0feVzlgg,2̡|.V[, ۗ_t6=iwM90Ny;M;v:wzU;?Nh'l;MF󅿸V{M;]?NGZi5ӛ!tw,v+<2ձ {AҀz4qo]V79X\D2@/o4GXx3"H8B0LvZed#1lj LO r4[ HA H[YbEЁ~Of*1z/22z3M/].41ml8M16ϭc0h'v [1y3lCՈ.=ҷ]S1nE[1GVDdӍ+ϼ&}ى#1z3]>2;>0ىv& ͔uL#q|z0-d`흂Ұ6%>A8?OgXE,ø4[.ȵg`Tqȗdxr<(Lj|F+=z(,1Ƨו{èxV: 6ehv8{YdO M@e!fjPD{ulR[j^Dc3ъ^6^H##*91`{ 4l>*hA؏6?6OWzYn4g~k,:<GMZiF{Ɋ^6^H#*91`{SQ_dY-nUN[^:lYd]MꚯEſz) ؋:3͐~ln?f@t^h- vOăd+H vN ctɰvdHY!m'ëY%CO 9k ct:3~M68'LlZ";AbKqWWa iHU}RIdMPpvfDbFe.Az45bj,QqQyދāu1@ny١emʫ8e?>4WclC'@5m`R˹$Iw*cNJQ\ZVhRQJzQH2x,%4V$z%IIVI{k>DIVn(I7I2%$ɡvJfEI-@K^QqMeCt £ >Bފ:fxufD+=2ꬂS'7£:+l7T'ԙP;I:sTӺ]ބtq#V}3Ч>taT i}̆U'IVzdY;Nl1=zDm5~*ƍ_+k3t}4XzlQ{ 'zVxl_ZYzBG?.3paMv4w1`Ǵݩdx|:/ػUb΀UgM5Seɴ֚3kVbª&mpUrmjZ90!K>\ePoެ A\ϓ*"JLUU;WU1`{TUUU UUNTUWÞhXrثUU$b鑯z'iVUlGVU SUcfU͊UUKTU1\*WUD 32]h?hR*(6Ldea+8Gs? =ʏH"@+ʇw֫&,_^eCT>Ssƣ^ssQcƨ*۹3VxU)vssٓF Oi3@,jW: X> endobj 720 0 obj << /D [718 0 R /XYZ 91.8009 721.8656 null] >> endobj 270 0 obj << /D [718 0 R /XYZ 91.8009 678.2397 null] >> endobj 717 0 obj << /Font << /F39 549 0 R /F38 546 0 R /F42 557 0 R /F15 428 0 R >> /ProcSet [ /PDF /Text ] >> endobj 723 0 obj << /Length 4248 /Filter /FlateDecode >> stream xڵ]ݏ&hb},;o;oI {HS"9c2vO|q;_woHeǔ$Rt`~72%ɘ5K滮xV)gδftgyi"-|Yzx1j8MGvq~_)%0˻7vy+nJD>痻oׯ])bssȆIx9 9S^@JxNX\; r-*Ŭob`:2s\k睙]ȁTH ~+90+%H#ۛ94v DuKd޽>KӚq/w9LN{$H7\ |Ɨn;ygxW$H7v`+} hqn{ Q:R̟msbFCM^*{\R]ӊB=~x, C yG>=75tJa-ZdDcY!JpTQ]fYA b;sA:Et퀗l^#YU%q[g{5LK XsWq-Z# \^ GXڜaZWw;88M@3K]FcrxcvP`D" ױH V Kb&P@Պim H;f&`Kn\-2q%02JjT,f}i+4aj n^o vUDZXC y @+FNǸZ*8~Nq5c`ELj}]7IԁRNQ 'OW0Ƨcq(>^ ؜@&F=~*_|7;Ç؞78WxD\\)O ˜zfE!H7 +ѼEX;Dx[nDp/ں`RrOMW+{L^Jե$ĽLh]vγNq։o=>~ijS! PElW h jFjr*kcvFu65 4ư %l< ?n.O5nk%8=*OdasݕZ\c'N!G}vU&:hH7S>>|ܘ^1O,$+is߁r%\dɨ5w M>68ٳ8fs!IcY2r=Tf̪Ѐisr3H31#Fa̼z2[dCҮ93ר9qLslNzXSʱq֣za\yܣly \"~bfq`DfDEh{kDl` CȉWQ-~[Ǐd|>RN`*$5SLkXX(m.eVJfd,ȉ@XJ m@nJ`%܏-2Bi&:OMdNwZ!^&RpdJ9ɤҔ>G֦p+8֤ k; Ҙ\@GoƙT`<K5OB) 2 stz9P`syo>~ ybaupM yF8X^ĈB57u18~u};5y*$z.ߗ1D`K:4:6ZIN#_pp=*űF͡qdžTP?Dgi2H;( Bxl2Nac:ΗLm($́PF) Bn^rτj9GSW+l`R6Dj ~t]S7 |a*]ᚎ%W/c8@7yt:f.9c3ix#oӸǺʺ n5L]#tw#3w6 jO v2c1]aM )į!PlNLpjAR@9-%VכNv5VM֛xI $>zz2Xo8޴rv6u ǚ[') v[)=vBKD\Z)\⃪ހMF`ڸId!24S"h9fg|K >PX#l0ȎL3c7W?b2BtZ~?! v7`\#ݾs܊- i$ʋD6?BQǛVjƺ.*XRͱ6QAGy)V4ң~撫c~nr%>mzMjΜtT*5IABdݠ:X̡8蕏#աyl.KDqv n8; 9ᩅӓ3f0;LY5HZl+>n[U36(iY•*h:&ߺ֦dJS8pk t\Ȉ6W>UTg޻MJa!wd0Q9 ' hD|±1+ȾP$:3רp)+pȱnێmX}<ڕ{~:~QFC(7OW/^2-ϏUW,Q_!so Uo)k-w\lhSK]/w?{i3 z#N"cӧ ix>||:5kaVf)^4d[{rZ;ziDڑKKumY5Ǜ=۶:9J`M֞c=h > endobj 724 0 obj << /D [722 0 R /XYZ 91.8009 721.8656 null] >> endobj 721 0 obj << /Font << /F38 546 0 R /F15 428 0 R >> /ProcSet [ /PDF /Text ] >> endobj 727 0 obj << /Length 3729 /Filter /FlateDecode >> stream xڵ]Yo~§MHFL Gϯx#2ƉaF b_^߄=84ׇ.׻NTRi9k lVS@0hD D f X !N)vB c d-Z` /g& JR8 9JGg **I ~Pki {6#' b%C|C]b8`[ VK؞j`XJKP`KavQCՊFN`#] ,Dqkvb$c56Cu١"NӢ6rufLZGxfjE(EJ4z3'Fc#YAaQqyF(_ޕWw/g'V7 ͟Ll6EZ<]z'V+LrAZ*LڪymR֛ 1!"ȻTd(RBd ZyI}Z/153IQ\n3j!/dH mOhKy'q:2-:V:tƓjX%`e>*ٙA$!?X ?h)ThQB~p1/77e(9Fvrq1% n4f?si9hO5m]9!QKlsJp4c娹jdʃOPN;ȹը)B>LL*Vhpoܧց\Ă2R*=DJ~0҃tl H1}O3n;.qX#Yn lP T9Η>̂eȷ$j}gD;e[i52B.rգSJ`FA9ֺ{z7Hx%؏ 7;ܳn21h9ԩ c5'jB*S!cu TĢf)d&G_$uMˠ#'DU! Y1uy]#/]3BM" Ǻ)GFkU| )x*v>{`Z{u5v]9!VKlg0V @Xf:I1z$mD7301d9޾u&SϱVι7l3_ϧu=~+Gy~bf!fO`UcXBJMSqkΨ'ԬZL_WxMsO2H)f#8 !b^X€b/M!÷^cɗOn|ciX= e^/VZVϕ |u'rB8s3p<@H-(,Î[$PNCp  |5f[ `#]6S'ӗɗ~9X9?Ñcv>k33X⦩uHhD5 Ihœrd Ts&8M!w@sȀafGn n"gYTMy5\ֵTsDFǯudOBa2-gE)Qy_]5cwP:ݦrk9T>;Xn|^s6@,NJb$s@[C<^tõ=VL q^r7M8D70YRo+vn Z/:ky\7Ջ%##'jzQ(+t UnIxcJ(V/Jd͕do 5s·bct*Ep'j<: k:h8bt8q*2bwU~6M l?%~4M hkm TA{[m}|<#Qm\dXN"?|wr;@m *;X`w/zF BE Ph#[Uى% Rbe\Ӎ1Zb{WpDW{br-phȣUH;T VHvf,z t/~0&Yg'z5.{7j\Y ;w0Sg0DIS7;m jIۘ4P{\LlxbJP`K;܊pkdFNf}Lރ\ CVIl'S߭YY؞2l,n{+\K DbSKHև3~և*H}aq3'L!Y_-C^ 4i޸@$l65c%\S3 R⸙eS3l+\VIDٌc3a! b!)U gIIr}6tJ 6ͬ*j4q}Zb/r1QaR+n*m7'jI*ZUöΪbomLVIeUq:VUMT7QL I!5lxB!tF@ 1q@uA3¨a&gxMGoJ^rmnwD% ΚN/[ޤ+ jQ7^z?V-qxu4 -]oh) dw'~]oW@@G)Be}f&5DNW#`]i͗PȊj/!1Fnvk*v 6]pe8&^E~p-o5Cel;Zo–yIm#ڡL: |0XZcŔ!*hzdܮaCɂ3>&l4([,ۄ;}|[50Q}Wt2KnE艬-u tܾi_lmk +}PoBX#]9y-9a*^iu"`#]K2W1S} : V7f]s$JT%fgR ̧sdͿ2;-xw;2U$1CrLo8ݽWx-ݳ<{;uHX>|'}} H[1ɩЭ7Wij9r0Six8\h=Q?9VܨQCq~4!SNB/-V|SGTc>ۏmڈy1)sˆdYv8ז8[endstream endobj 726 0 obj << /Type /Page /Contents 727 0 R /Resources 725 0 R /MediaBox [0 0 612 792] /Parent 708 0 R >> endobj 728 0 obj << /D [726 0 R /XYZ 91.8009 721.8656 null] >> endobj 274 0 obj << /D [726 0 R /XYZ 91.8009 191.9243 null] >> endobj 725 0 obj << /Font << /F38 546 0 R /F15 428 0 R /F34 419 0 R >> /ProcSet [ /PDF /Text ] >> endobj 731 0 obj << /Length 1502 /Filter /FlateDecode >> stream xڵXnG +ʾX +H7C7Y-pƃFY[W/ӓ1lPTGBJ&O "0łeg7g2^Ꮕ=(e*_%U]1),wf!X.ok]/;Xdw};A+2"Jz&`4F1RueE>ɥ( Q\3vʚE`ۛ3WZP̂\u`RtIŀ)IKL"Sr`M0<ze`&aƙ)'pwG.9G9$e̐kRHI"raS6P2 QC]gI|jD@AIɼtJ)ԅE9BU '4fp#`D ;R錳yrQ$b^hngmN}}8LF :J 7د":BU==>(_z+w<͋/qzF(['%j:2qזZ$:1o :|E@*ExhjxZ4I\YsbqwTI+di[vCvXS>ȟ8?=]<>bc)T,3bǒL d>:-sbugE-Py+MXuG'] 59KEY'tZ)+b>mČp,ArEQMZ2oS%x -ӟcaTEmPrו>KpTY]LH@ʪ\ 3YD$6$"j1Ib8KGZ*d (m0fBi%UVIƅ^HkYt=J(jvbiYg[| ]}R=TZbx247 f.$endstream endobj 730 0 obj << /Type /Page /Contents 731 0 R /Resources 729 0 R /MediaBox [0 0 612 792] /Parent 735 0 R /Annots [ 733 0 R 734 0 R ] >> endobj 733 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 .5 .5] /Rect [105.7486 650.1346 136.8194 659.0439] /Subtype/Link/A<> >> endobj 734 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 .5 .5] /Rect [105.7486 267.2256 126.8316 276.1349] /Subtype/Link/A<> >> endobj 732 0 obj << /D [730 0 R /XYZ 91.8009 721.8656 null] >> endobj 278 0 obj << /D [730 0 R /XYZ 91.8009 610.8356 null] >> endobj 282 0 obj << /D [730 0 R /XYZ 91.8009 538.3283 null] >> endobj 286 0 obj << /D [730 0 R /XYZ 91.8009 373.0295 null] >> endobj 290 0 obj << /D [730 0 R /XYZ 91.8009 227.9266 null] >> endobj 729 0 obj << /Font << /F15 428 0 R /F39 549 0 R /F40 633 0 R /F38 546 0 R /F34 419 0 R >> /ProcSet [ /PDF /Text ] >> endobj 738 0 obj << /Length 1967 /Filter /FlateDecode >> stream xڽYKo7 W vrC 4Z.ElA8]%%Qna{v"?HjVMRkpMnN9QEt&nBňWO^6qRJDkt~]mD?VF Zᥕ ,ݺ0ެ7)$>74KI?~Z)# D6 01}@ A[I^+.}YhU`b 螵g DH!EfLgV32`Dz$=qudgPSE'/)YӆS"+"7-[KơzKf=/hyVȠJK"i2JpNb"&;@~8"&تZ3 EX]v1[d@ՠƅ52q(2,gN-Mg ԸOX1]VL4%^! MkX i[nMHUBz"7row~ohnn=Gwgm.FH#*UJwD2p9W [1NV|ܹUS\߼6vm4&R;l:sG'?MA09UvA6RO2cZ$JSwk$-vkFX245 ߍT 9\2ganծ~TuCYW#S6`Cơ MF-W"uz{no]z2: XTE ׼B9a-٩(ԕ'Gœ#2>/Vvh[גR;pJBI4[6BytɈCT Ԙ wzpUxsṔ(} 6pцE,dQ.<*bypEb( jJ8It:F'L0GYU}pӳj:pn~?fKcFS;/tT7KDBu4K« k!TxV^=kjkFe2Ur ٯVc>bQ5IasM I ҋ1h^0<ʪ6>98`@dd!ˁ݇ۏ)½b^Ym̟HCuG=F _m/. v76xRt $y\Hwk^m/ B6ƌ;´2Ҁ*rب9J^#2%\[(0+ ^k6Yendstream endobj 737 0 obj << /Type /Page /Contents 738 0 R /Resources 736 0 R /MediaBox [0 0 612 792] /Parent 735 0 R /Annots [ 740 0 R ] >> endobj 740 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 .5 .5] /Rect [105.7486 461.841 174.7236 472.687] /Subtype/Link/A<> >> endobj 739 0 obj << /D [737 0 R /XYZ 91.8009 721.8656 null] >> endobj 294 0 obj << /D [737 0 R /XYZ 91.8009 678.2397 null] >> endobj 298 0 obj << /D [737 0 R /XYZ 91.8009 569.3591 null] >> endobj 302 0 obj << /D [737 0 R /XYZ 91.8009 424.5477 null] >> endobj 306 0 obj << /D [737 0 R /XYZ 91.8009 284.256 null] >> endobj 736 0 obj << /Font << /F39 549 0 R /F15 428 0 R /F34 419 0 R /F38 546 0 R /F40 633 0 R /F42 557 0 R >> /ProcSet [ /PDF /Text ] >> endobj 743 0 obj << /Length 3200 /Filter /FlateDecode >> stream x[n}W$N"؇dwpvzw!ǼeOU3W!ج>:uآYhVRRyiT&o ,\v#8%P%|Қ\֌h?>.˳ #eQ8c8\΄Dxuv'^t/tWS~H8ə&oUpR͟Ƌ$b*{yh~o?1)j:3 (K#ZNΤőV[$K "r8H;V}M3J/$a a$ R|`w g%D.ź48Q9Ɯ'gNUy!W v'~w&>sGP #夤9^FlTQ`CeԔMȒG)aA5)+FﯧuOӌ~1o;]wXFb̌G::ė*4O)%J5WYj[-iN` J&kG( dYqOgH<n7ɛaŠd-HAK}iO5ٻW/GUiO+H)%{x(QiNH&]0C7G.@K)?ck %|h,J1~+w+<0WQ, 5^c_BwC7ymoAiQK0*R?<,tW$Z_a3|Xa{]r%pN v'.+/`qg"k 95_ى>kO88v].3sisGۮx;{ 8ޙ=ޝ37ֻlv,K4"&<YS1AG4a܎ n qGUuMc™A{5`iQyi<ڇ2cCs/|s$.tY A5МfZOn6[$^&>D{u2pI׏6~b*BzxMaH\2P^rȡRv90%b`FL+C5Nj/gi5 4p C-?G?i*OĮi2LSYIZB3R*GC4 p0;}=<y"Efo 9jBr.^8 8rάt:TޘSu ^=X±Wgt(Ͳ!PHFxIר>! |&`"sEqOkg-*)HX~LmzrzZ2K'j|} DN5mA5嘾ix̺0}),L]F)[QoLM幬ƾ*IY$|0F3aF pb &1DL%tgcz<ft /,t%ɗF@k1!Zỉr " 4 {.e)joY*8#/>!:X>1,9꜎C g=^`v>T:*ԭCPdG{MXF,'E!VI=!PRׯ1dvB ʥ3,axx[}9ۺFl8Mg*N%򂔬\%`f 8k*ĞRPR~7y WvVx[L[ ~`Wi:Ԧbݣ]3Ò-Wl z[do7ZP[3 g1 4UdUo} b$9-b1 ?Ӏu>L"C2DĆ`"KNn},EI{SRA@KB.!`vMMNH[FVD DA$ר?k6$Zfٿr$c_T[>l@[.|[if*I6tkj[%-/}њH%:M`b>>ReU{ȄuVc!V[\9ׄZYf! T^[BI0vq\!ߝ,]B4Zj߆m]ZeLg󪕑I|23۷9["1bot]v5#mȴoB.CL @Y:e)Er_baɊb(:3Wm@'5̄>oB]c3]]1IsB,E-a* 8 ~)d.;LX=u_هhj\V꽫u'@pjb4C^N= (B|8_6Eyۘ2[;D}]<^St1 CՎs4[l׫6˒MxO3fԕgo#jyG՟q]7 U>($HG GwF+ ),@~,m #glok\-d X2V89˽(Sik N5i<٩NV[q/_~ ܎zZ܂7Ľ).wG紉VKoȨ \(ոTYjP[͏REw *TKEØn/8 `lhSy0?%􃿔1R: r \7O{V㇊endstream endobj 742 0 obj << /Type /Page /Contents 743 0 R /Resources 741 0 R /MediaBox [0 0 612 792] /Parent 735 0 R /Annots [ 745 0 R ] >> endobj 745 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [115.7113 209.7883 191.7137 221.7411] /Subtype/Link/A<> >> endobj 744 0 obj << /D [742 0 R /XYZ 91.8009 721.8656 null] >> endobj 310 0 obj << /D [742 0 R /XYZ 91.8009 164.1927 null] >> endobj 741 0 obj << /Font << /F38 546 0 R /F42 557 0 R /F14 564 0 R /F15 428 0 R /F34 419 0 R >> /ProcSet [ /PDF /Text ] >> endobj 748 0 obj << /Length 2404 /Filter /FlateDecode >> stream xZn#}W +v/ Dz!&$<wWGÕ\ΥTթ@#R7Z~E+e$D8f8%9jW8p~`T#9- Ф.pכwW|S:''ANZ{܌BpeF1* UU;[xG ~qQ%A^ Ut-81EV /!]x ! z`6+pKk-6JW72~9uA 7,(qJq42EHacijL+r$69):D&&c5Os)|"#@%R|E|(K*Jc )BP. RUƠ7>89"uR|s"K)dSj@ KfY[L%Q(+6fr#@&ap.=sB y#N>Fw0MK|!eXe|ԆgzeeN >z">2nt@c 2L֖ȝ1[bE/3!u̻FqpIO=7I,*`ZR |"(P^^ySUɂhׄi p=Zsh Ub8"?(!SU6YM{tYa^_gS91@OS ah*(iٯb9*y6"_cbGLGZU&K̀w *be ="/hِl )#CT2ӎD;au*AgDGjG}Dd8֓:N D1…QԊPaYWoڲoVy5n|·Ўp?ۋƔv/1V x:p=T BxB1RTsf$ʔV{H׮ TsL.Ҽ-_J:U'y4%`jƷ ڈO MqNl~^"%[[RMBu݄T@<Ri'B -HQU l}שqϹ-J:XYrX-cn*F,lD}b!N F#H(9P|Qm3ל_-[Mo%/2g0&wu%gm[)$. ފ 6JΞLԖ b$y@ BB { 37/RITC ?m)\**lC WҺ 1HBS0=w,'[4&B./& MC\xqPj"pA", P.E%5O-`LB$V_C6aO4|?QDjmΙ|j>X1ϔc'V,I1v  ]w9P5VLP<4HyAs{i- _X*V^I3ImSR/ PGy225z9_u*jwB-36gj§qvʪG Z2PiX@z,zFb|C s375z1K4Y=aU(j}I9Ц9b[AKcY+DmMoSF46grQƁd⼱!ᨡgS"5Ʈ~C9{ xJf(~؝vцbNb=r,T*p9X8oam#z8(gzIXj"b C<$yVZ9^TӲsu3e{bWf ˓ 1(é d˭ uєر"7apL̅SQ (iOA0MWM7ʜLߩҜ?>l9endstream endobj 747 0 obj << /Type /Page /Contents 748 0 R /Resources 746 0 R /MediaBox [0 0 612 792] /Parent 735 0 R /Annots [ 750 0 R ] >> endobj 750 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 .5 .5] /Rect [105.7486 612.3324 174.7236 623.1784] /Subtype/Link/A<> >> endobj 749 0 obj << /D [747 0 R /XYZ 91.8009 721.8656 null] >> endobj 314 0 obj << /D [747 0 R /XYZ 91.8009 574.9701 null] >> endobj 751 0 obj << /D [747 0 R /XYZ 91.8009 465.4368 null] >> endobj 318 0 obj << /D [747 0 R /XYZ 91.8009 366.1181 null] >> endobj 746 0 obj << /Font << /F38 546 0 R /F15 428 0 R /F39 549 0 R /F40 633 0 R /F42 557 0 R >> /ProcSet [ /PDF /Text ] >> endobj 754 0 obj << /Length 4014 /Filter /FlateDecode >> stream xڵMܶsVydJ\K7^I[vY$A4=T gMtٕO^f)a/u_>.k߿&I4^^6fnrb _!eSEN̗4ͯ?~;7|7ɠRKi ϥ#wx 6)0-=VN1='龜1 o14 Vvl 8eʶafEa2#owjR'j!.V˛ʴwb"Pp6LŮ6o[^QmuZuK4oAz`mPSUm/{u~K9K^(6.,}t #hT~~Wc{95̖Ke*Q'oXȺW} wy-cB,f׉?[-/-82˳nSeepkmk=yNR>'aff21=NU>ELSLƧ0񢽣]10L(gdf bX(+h4Uۨmм)])EaN}f3M]˹fy%Š#K38P^ҵPs^{o 59 N Aq~Y (*m&#YDA'§|{Ӓ% (?BƚOYDŶόF[\YsDIֶ@Y1 SA/B@!T~?<Wfqn @gZ-A-Q|@[ݡ 1Qh--3at$$W?le;ԚSki I;~jmJPR+g)h@M-.Z ֒)>w;c} (}~OsR?xZ *;'Uq4n Ƽ"؀b'n96aݑFgV.@Dnju0>#٪i3]AW-[K܊AE"6V ([q4VRűje@8EKPl;,eX+Z{wMS=Nn5-Ql@1K?'- 4N@Q-j6~lQp&KPobpT9ۋiEHR{ Efbm baMq+>REXR\g D{-9(N,,xU"ꉚUL Z{;A?[Yؾ7q ]:5CN(rpq0Ƙlb߮,g\gERﳼE0|a=L%eTF c& VcT=Fesw:" [J:nԱn} &I+8?·\EQuE]TF(T$ &ر J\,h@/\m;Ճ8P<, WV$כx1W8l*bK~#ߋ"߈g5~P]wPT$(T$j&رdMYIp4$ FMKֶƝF (ɹ`F~DE  ֔KV"OlPo#6eo;37|@ogQ2x(bG]/ rS+;Zq0HVrjр"Z\ԊKֶRrGJr<9l@odOZdVEb猵*ʚת%,ucـ"qrpG6W7q@H7ij6B]1W-Z Ċ=<6eU֣r*[)\PΊ9gԨRU Fk[D/c)ylǩuFFv>F֣V8W0"sB#JEr"NU͋7_p8$w.6Jl[D'Ӻդ_Q4ȭ-P6HTMc\ah@1.KEUeaɀ"Qi4Z. ;cPZ7ZdOQ2&csi2Rw {1s (b `S.a}|'VI #&,L TؤHqGa[lP?` (gр"^4.Y }RءC~C (v.;xRjh F{mos[/h&}QoGA%FA8eSwó&{Ө+ wF٠"1u7M8P\/)4d^g➅VR6 mY[ ,,U.q"ԝώUp6l<;rrJbwNXLZ8g8V+ Cn}m9셁=bjQPZJUdjMZ`e i^<*Bj2:L*3QJ LA4U͆ϴt`azv-\wkPҴYS[=vJ!7lm+53թ ̤G]7 ĉAE"u6N (ٓ>qZH V%4kk>TYkX (ߠGO[y>gD@g4^mzud>Ŷ#SJ#iOJTsk2Zb7FLrͯH9D/k5ski[q66ءJE*}s+AVṕﱔ)Z׎wK{\Pl,fX#ڲ g?=?usNeqA^Q2;r.j^[F\.(O 4P :aJq;دc* c7m\h&FC&q[|r`@.'>r􅏓#qF14ßqu6 [*~2 k愝pNI j eD5;V`@W[NRo ޔW%k[aO<`>vb@p%̀AЀ`nBBEAAnGZҢ:𹵓Rqfҏ5VB%~%aDqN0WB8lJo2tCՊ1 sFq66渥 ¤Eu.Aj=*z+%(W$Qz%W<:d,;` VQ]쀉 8VF"!=1-?4my8X~//qW#n7 4. A>'3W[/> endobj 756 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [115.7113 683.51 191.7137 695.4628] /Subtype/Link/A<> >> endobj 755 0 obj << /D [753 0 R /XYZ 91.8009 721.8656 null] >> endobj 322 0 obj << /D [753 0 R /XYZ 91.8009 637.9144 null] >> endobj 326 0 obj << /D [753 0 R /XYZ 91.8009 492.8114 null] >> endobj 752 0 obj << /Font << /F14 564 0 R /F15 428 0 R /F34 419 0 R /F39 549 0 R /F35 424 0 R /F42 557 0 R /F38 546 0 R >> /ProcSet [ /PDF /Text ] >> endobj 759 0 obj << /Length 2854 /Filter /FlateDecode >> stream x[Mo%(flMe2JYLKGve{fs/UPx"~vuDMK _:?PFrKܽa."0K珫StYktBa %T[5N_YJpJNf$f~(1`Օ9 #Ns=]~BTgo_o?/1CjCF€Pzn+9îDD~ HZ#V "/) ]s#IIU^ f(ԃBoW7r'נ%!F1*ghI+BU';1R[.KvʞH=jbH+\rI¸NRGj.oaLAT*XC²V"v$J8 k+6E ĶUxU$ ?ߕ &RT1SG@Uu]gQ-Nqa zNcV QDjmڽMku0XN.L)5P곐,g|spY7 %Hw 6D+9R rpiLGcwwpTJĎxW'mb"{}-ݦV Ż«"mm,D~"G*QSI{OEDnOW!4,;Az ĨߒT+!>$>O`V)ZP=Itrzʉ#+砉/ 5e];咝sOO))<ퟠJ!Sm,_~x'Hi>2,*<@I$Gx ,S]Fsc0@ᬅUdzOpݘu4sXО'Pb6W%`C!y [MdyL 'snp C_[$y~r9L(,-Ϟ83uje:m}ڎ" r8Å0"p lEѶ k+9?JĶ;tH]1?: Ħ*Gr `1qJ+3jh4 W0&CQk['kXX%[ iXŏi AG${=BryAfW"CXt@h~[mo^3JF>au!A>/GҼsL4a-[nq_. L #)AnS[E*F4'8!Rr"qiVo^z!~aY_#gOYc)U]HZ%^YK>J:0\5,?mR[k%ᖍq5ڢ՗R)k+L6QR},%K6=PĎz-!V ^ ,P+jHr+;qR: Fz>1C!i}J.OW`Sxz P6`sK1'MQn=ؗ/g6#ԬpxW3+dc46?2©joB2@yQio+;^%v9[M@lK{WEېX{Aa1*w7/WЯ@!=}W:/\K>d)Rn"hѓ pEeR}O6-ubG GX9KѡV 6ƫ6vqPJRr9N*mOSC@y> endobj 760 0 obj << /D [758 0 R /XYZ 91.8009 721.8656 null] >> endobj 330 0 obj << /D [758 0 R /XYZ 91.8009 227.7174 null] >> endobj 757 0 obj << /Font << /F38 546 0 R /F42 557 0 R /F15 428 0 R /F39 549 0 R >> /ProcSet [ /PDF /Text ] >> endobj 763 0 obj << /Length 2583 /Filter /FlateDecode >> stream xڵZ]o}X%4?2EQ@lPi-[H;rܻWWZg R xᬛz&bz&YyzZ ^q'~&€ӫXnv"ӫ׻7Fc(vf$^[xs=W}Si= `:h/ Xű"`=;lj8|8ؽZ>7#Cƅ7U+@έ_s^6vtiU^N,dA/n6:ދ1I< q4ha~:mΫg¤&bhM82~N1{YaEi❇3&*ǕBE>_fF5|- 'NKYGj0;ғ\WДΙz d- 4cXJβ<h"敓 Nf^{SR!CLV[On@+#u5jș6P̿ȌbJ rs@J6<8eI/`ARgw@y/F Dgi)otiGXqhiϔ.AWi_U^$ZNկASќPqb,EwLi.'er7icIrG ˓Vw).p@` x-I[HFI6w){r!LlᲪz6UZ|aZDJQ$:H8BYU/P7id#gq`5[6D Ϩߖިe1q,oEOFcjvLO.g0x]S'Xl HlW-_u}D;B*e+6E&Zy||WX>ğ;̩bd+ɲFk*Bӆ^U&fI拚,%̷IK}5lvMe<"]Z/KP:"*%^^vT$ȲC>W%y>vƉӎ"_^y kN"#QAZy驜@\~R.3g+tƪ"5|;X9Csw=֏w+o1ηWHυC#Gݝ]Ǒ"JDz |L+-G RH L@? w秕k$5܌oQ 98U$f *~Q1_Ax~%dס~H!Y l7AppJo2zloM-t]NǠDM \Ny w@Bǚ<s!::UߌA7sMvlcUNKzs[zغ6`Jojj8ԯwwF}%|Q$9PHo+N ,)To|prp5Ugoí !m0=}4^ek>7qWt ]ڄr-j cŸ$ә#"X/f3M0JBa7>A.Jp\.Y}_N[mU8܍bMbCPy?.>*_Pr\ ys\-/y8p+ҩ+c {̡SK<ŶT|vT< U_K%\:Y}A@3##0'f@X-Vnw7Rcſu⑃sJkF:w'OX9 嬞cH=YR ,'uꈧ E俟Tcm@ ^HӉCf+;j!BO2C$> endobj 764 0 obj << /D [762 0 R /XYZ 91.8009 721.8656 null] >> endobj 334 0 obj << /D [762 0 R /XYZ 91.8009 674.3441 null] >> endobj 338 0 obj << /D [762 0 R /XYZ 91.8009 530.9017 null] >> endobj 342 0 obj << /D [762 0 R /XYZ 91.8009 316.3816 null] >> endobj 761 0 obj << /Font << /F34 419 0 R /F15 428 0 R /F39 549 0 R /F40 633 0 R /F38 546 0 R /F42 557 0 R >> /ProcSet [ /PDF /Text ] >> endobj 768 0 obj << /Length 1613 /Filter /FlateDecode >> stream xXKo7W-Z˒,R ⠰#E1R۩lRw/q PRÙ<תD/ohk>_fO]$c@?&vF+{[aT,GK6}T)hq^Xe9Ox%=.=(6+M{ӗ́ R,CWk!pu[7^x$"t}ԪͮpŏWER(qUtA>B["#NW "7fnE]Z3pn Gv EDְid19䬐_ZgHu%>7ܔ 5*V3\c7}h][_G/,H$Cvpg!=bMb5k7 } 6]䵶>tE|5:wTIԁc:kZC?_SLw=Û>/LilI1waj@iV)v!mV,VC~3_֕jb@ŏqnD6ʓΉF}LrܗݯO7_iZRHEYg(Z>dhfمhreX AbE1w]dUU;^RךG'') ¤R|N1{R7@J" 'WqfdGn]1 `e8'1Zr o;(l;7[htJ8` ԘXG+}zZ njLi6ۤq90#pQF9]ͦ{oRϓ::a!Mk vOK5܂<@TiqJe2yr@c6IS|MG ;Q~dC ]P6_*yGWoY"ư2q֞JjubNRc㔾Tf$RMa|b "pCL\@Q:2؇ jv0 !jL dV&Z: Hˮ>슒ǝ0V0Dq RfE,p%_@pzl;"jn#'ڶgKBA1EBqњB^9Y'=(]mysY>*%du,|0;탁]mT~/ÖC5pY˪t&bBR׽hh)B_ZMa70S< \_%_[ol4Y@O_mb(0 k趉>5b#Anid.̴糔žfP*EFIeͥ2uWsagLV([fk.}=xLTֺ0Ad0k:=;zCPe|,eHbaֵQ"N̷/##5 hB,Vv-# Vǥ0MA2vNF4[fC@yK ūJz3ww5>Y@L2(C3eGPZj\T+eiJ`AR5jtMendstream endobj 767 0 obj << /Type /Page /Contents 768 0 R /Resources 766 0 R /MediaBox [0 0 612 792] /Parent 765 0 R /Annots [ 770 0 R ] >> endobj 770 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 .5 .5] /Rect [105.7486 438.2432 130.9817 448.781] /Subtype/Link/A<> >> endobj 769 0 obj << /D [767 0 R /XYZ 91.8009 721.8656 null] >> endobj 346 0 obj << /D [767 0 R /XYZ 91.8009 545.9839 null] >> endobj 350 0 obj << /D [767 0 R /XYZ 91.8009 400.8809 null] >> endobj 354 0 obj << /D [767 0 R /XYZ 91.8009 275.5158 null] >> endobj 358 0 obj << /D [767 0 R /XYZ 91.8009 178.4472 null] >> endobj 766 0 obj << /Font << /F38 546 0 R /F42 557 0 R /F15 428 0 R /F34 419 0 R /F39 549 0 R /F14 564 0 R >> /ProcSet [ /PDF /Text ] >> endobj 773 0 obj << /Length 2054 /Filter /FlateDecode >> stream xڥYIo[7W[$/AR E.Zl#qm1؁!9\{ go8!9pa.54Zzp3ve$g"j|bA!`-sZzBz8nop*fн縣p8TR,&N;d)TN܋DL ;rr4\&WtO:Wd4ANNq:n^}~tw2=8;+1gp:T"4QLKןQ nPt 4 LCUoxl>?lyq vm~'rI+=ˌ)6Mb[8av& 7}KϽ2D{ J4pǧ2d[OO I-iS-;[Pendstream endobj 772 0 obj << /Type /Page /Contents 773 0 R /Resources 771 0 R /MediaBox [0 0 612 792] /Parent 765 0 R /Annots [ 775 0 R ] >> endobj 775 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [105.7486 553.8724 474.9408 565.8251] /Subtype/Link/A<> >> endobj 774 0 obj << /D [772 0 R /XYZ 91.8009 721.8656 null] >> endobj 362 0 obj << /D [772 0 R /XYZ 91.8009 593.1305 null] >> endobj 366 0 obj << /D [772 0 R /XYZ 91.8009 210.3061 null] >> endobj 771 0 obj << /Font << /F15 428 0 R /F39 549 0 R /F38 546 0 R >> /ProcSet [ /PDF /Text ] >> endobj 778 0 obj << /Length 2330 /Filter /FlateDecode >> stream xڭZKo$h4pHMFrHt]NKVg$6Sw7{3ZabbWd?9z]g%^mxw~z'=K1t@0va=buŻdSb` vq+JzF]|: w;XCCw$E;f权8&$QcH]^wQ* ]>l=mx hV;.yp?АooY7ñ1cgy#*X5C>r[@cĬ;1 FwȢUhSÇv|awOI[~C$=iRAH= OR#ZM0  IH'-gm5>}PIÔw‡gnִ"} 8Xuis ^h-CL1kL墘+_\ۧ@qz~p{uHDk/[QYӮVΤK4؊]T#`2;Qȴ4XJNN^JoKIj|_<>4fʱٳ2iXXJT9^/ )pz]q8В? JgBaV)'^d)$<ᕴe펾=BVgaj6Jp?X6P񌹕}x`5zb.Q>\0N0zHc8YyIQ6="4U+ Yuby5Dy?OUy-dRf`Na-iDO2\,IG(j/c );voX=ָ/['Z=2ЩMx&K&5afh]Z($ªkP#gy )X3Cx~?YՖ<{,`&g4M~͇I@?\7ܪ]bxxnvq > UQl[,UMPM$A31T$Q?|d!vU6@܂ky=jҴ2" 0]L;a$CrI|M2Koג!y@Éjo|H5In͉tZs$7{]|z%`y4@l-j`Hn> eMkfь3oതiSLKX]Z\$! F]&ը"6' Z RZA21KKA\l:uC7ꛦ{1Yjej2Q5Aj,-A! ܹ7ًB9ދU^YlA/8t1n@NzpR`Ƞi8e)¼m8aRtXg1˜++Yvn+NWMt/gu/谧6tHU|k#s7#u2"Uhe0WA8xsG62#gh]g6dURME򳛏HP]9N=q+PI\UhFtpD11k |endstream endobj 777 0 obj << /Type /Page /Contents 778 0 R /Resources 776 0 R /MediaBox [0 0 612 792] /Parent 765 0 R /Annots [ 780 0 R ] >> endobj 780 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [90.8047 187.8491 454.9891 199.8018] /Subtype/Link/A<> >> endobj 779 0 obj << /D [777 0 R /XYZ 91.8009 721.8656 null] >> endobj 370 0 obj << /D [777 0 R /XYZ 91.8009 378.2814 null] >> endobj 374 0 obj << /D [777 0 R /XYZ 91.8009 233.1785 null] >> endobj 378 0 obj << /D [777 0 R /XYZ 91.8009 148.7161 null] >> endobj 776 0 obj << /Font << /F38 546 0 R /F15 428 0 R /F42 557 0 R /F34 419 0 R /F39 549 0 R >> /ProcSet [ /PDF /Text ] >> endobj 783 0 obj << /Length 2495 /Filter /FlateDecode >> stream xڵoWlcZ4 ypf*ÖEr\Nmnovp8=9F,3^hWE-rx3V FծreVz1P~0xn N6褝LǍ ~}( }iD?JDPi8 7si].)jwO7w'lǯt{so?QDjm[=ωByG`ְ-UԈ%?bU9YE u0.t9ܭA,K% /&t%@ cUz iS!`~B ~(W=i-;Ȅ} 6V],a^T@W.MzTckEDZ᧬4HbR9blQƅ)|ڼ9z7N.F?s[=w~P;iصaΓnDYGIIKva$)TﴰJ}Zj}3ji͙4 L7ISe ~_-GHC> rllC^b [ Kp[P_f㖒PYـ]QYeѾ$Z^*سPzKI .C͡Z6BѰk|C͚BDpsy?sKE:o&MKED<{9#g.*Z"C p%M\cc:SF4[ ۼu/#n鼓Cg\8im6 `jxw]$MKlN*T/-|~~YE*{N(n4՚-Pz <=R "  0)].LuY}]&ORKv6V/$v~She;pp aB+}_|/tE ܩ߿{~%`M<0`*)p"CpeB,vכz[B_.4Č0ҬK͚$6ǝ5n;^".,.X13RS uSh9 d٪#Gq܀wYA xV`4Ehz@<0 hG") %lVp4\zfŖ^>kÖ?y.9= Fn8!GnéeD#,柭}BKDn7GnۈG>)r۬)rKؽbP l[`(S5c(ĸƖ`Դ0d\bC"qQF֍?e_ `dI걤BF5R/[:O , )8-ayZI  O=sNrڤP s}Ӊd:8G `&R 1֓VįZ.LO Hz3Vf,E!uL2"y .gr[8Y-b9χ4)C6d1:HDOX~.gmM#gw@"4 b'x;B`㌃ђB(,Gԭ\ߟuvQ~[P/Zo xbgwoT;oh-w u󿸁 c)ZxAsb2BSNTαT >uendstream endobj 782 0 obj << /Type /Page /Contents 783 0 R /Resources 781 0 R /MediaBox [0 0 612 792] /Parent 765 0 R /Annots [ 785 0 R 786 0 R 787 0 R ] >> endobj 785 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 .5 .5] /Rect [105.7486 215.9101 164.1824 226.6455] /Subtype/Link/A<> >> endobj 786 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 .5 .5] /Rect [105.7486 197.9773 168.9134 208.7127] /Subtype/Link/A<> >> endobj 787 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [434.7085 168.0894 471.5618 178.9355] /Subtype/Link/A<> >> endobj 784 0 obj << /D [782 0 R /XYZ 91.8009 721.8656 null] >> endobj 382 0 obj << /D [782 0 R /XYZ 91.8009 341.5835 null] >> endobj 781 0 obj << /Font << /F38 546 0 R /F15 428 0 R /F34 419 0 R /F35 424 0 R /F40 633 0 R >> /ProcSet [ /PDF /Text ] >> endobj 790 0 obj << /Length 2316 /Filter /FlateDecode >> stream xZ[k$~ׯhfS˩ql ~~Y3fmIkK@ϩ˩>3uOws|jA8xκLoT]: O7VKb+.˳oLZ=\k{D˛+ܕȵŸN]Ӧ[xm?]~wCiD)`hY$_1Wt;[HA"#/zCYP^ChEȔN&5n7ߋA&w|Ewkt]]i?~;O׻ NA]![T^9Sh{5ۅ}"9laUi)G=T ZU۰AF6-٠Fޥ&I@Y WۇE^^,eBFcl2)mhkLM9q&IN)$d3zGؖe&Q]c_G)U$r8?v+4 ͬ"r蔍9 Eü'D!/hpRooH!Veݥou wft)b—5E !(*0bz<nxֳ Ed+bE8k IH5<&Aݝ$H7Ac@‚n/~+ڢͦ 0 }QQk flTVMOŁ1J*D_ZbsA[[Lqt! +(-@ہ2%JD P`aShԖ>~c5?91hf);Qɚ HHG 4twQ^h,,Cz?12xYq[<.jZGU+X(odaۺ΀s#tI5]t+S#.|ZXA7HqHLֿ̊ݝL9Ol4PE4x<Ӏ ~B_gPgtn:]`1lq#8~iہqehQ2C1L،Q8+"zh֡*wֹ%9t4KG0E{ceFz9$`g!ك&.hs PgvOrAw|r5;|J $_z?<$Vaqw_<3RZ*NTO,r0}qhBiǁI{A,EFU0x8/ ROС7_>9n>bCQtCx"ϘXеo>u>l\kޜ/ypqm%tmz9#4⥎/^Kg122:M=6Œ^RZ6aTO.ԓ,瓧E:rkyPOKfPsG7o7mSBOm?WF̒e0p;L!amHREzK{jF9x-kBުke'>mP?jS9|3B'i:n:3ʩ#v|BI>{bVL~# YvNU2oc@ƋƁ>jdi3V@왐?!F*ҭ3aT_yIwN&2 r=Ij6ïz4IYC'!C}a)f:e-ye½p-pFxkz}79zst+k,6|[H7 eH>w\;r|ĪY?ȪAiYADUs3?t/7WrwTsḵ4 8@uJxay)vB羀RV /!vp^d%hbPZ\s%|N~VuShedR&`uzh> endobj 791 0 obj << /D [789 0 R /XYZ 91.8009 721.8656 null] >> endobj 386 0 obj << /D [789 0 R /XYZ 91.8009 680.5637 null] >> endobj 792 0 obj << /D [789 0 R /XYZ 91.8009 420.5959 null] >> endobj 390 0 obj << /D [789 0 R /XYZ 91.8009 191.8744 null] >> endobj 788 0 obj << /Font << /F39 549 0 R /F15 428 0 R /F38 546 0 R /F42 557 0 R >> /ProcSet [ /PDF /Text ] >> endobj 795 0 obj << /Length 2629 /Filter /FlateDecode >> stream xڵoWlb81H+.=\ CoM [vT{=;]R\z ;ki4p8XG#RZཟ_QFrK(aB)3q^~<ݚgtN IQO;ݦM""sD OSx9uG3?𿶂XgWW&l\w(.omtVſ/eTJӥJܱ~+p䕔  x (7>YFm(hzmք>|<g8_J WPÃG}^6chϡƙpo~U.iرW&42KU~X},1lVkqJc'/4Ƙ |b10JgôlҾn4\j՘K.9)b.c UE_nAS-6!E~ Ǩ\D 7FM ܢG!9X,;^DJŚAn*JG8Yfq F6Pih3SA"%;I0U+>zK}"Mn4(R ΔYj/?-8;Q?5g2UO/!dg?tfTT/Oak֐ߘ6)Al!M6!Zq,gmO+r9pA3?\m'jF]uqAHQa1,#d6Efb{'ױ5{'4Ł2l8ņU'PꑮPaVJBobiS]KZfѳ17r!uk}"lb (U55sX.'G2J2&ayg{A&>hNsÛ \_2s¦Yb-]'BZ26^D桔KU ,U8@pt>0DKUqɄ]&LNZr`,է߇XȍeY-mf ӧDtZ(1ܘS_4mF1Ah-mh-XiU;s1i Fs1A7Mp<vV j|֠:MP!Vϫ{ wz2jje+ƌǵN$X-T[: ?kNǂ5EeHe~bՠ rگZiy,O?kmQ]`, 爰1^; \B Zµµ'@;ErC,h5V* GR)v:)qo?ў)F c(8^yl3tt[z>p.;> [H^pu/S[Sp rQt/6W˯]‡O0[17]= _7 &7k!fao>I߻p}:~b~5Ql0bH+8r/}=y4g5;xqƽI ܴnmwg>Y=#.ȿk(׾dFj(Ee_Q1֥|'Oendstream endobj 794 0 obj << /Type /Page /Contents 795 0 R /Resources 793 0 R /MediaBox [0 0 612 792] /Parent 799 0 R /Annots [ 797 0 R 798 0 R ] >> endobj 797 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 .5 .5] /Rect [105.7486 158.1268 174.0042 168.8622] /Subtype/Link/A<> >> endobj 798 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 .5 .5] /Rect [105.7486 140.194 172.2059 151.0401] /Subtype/Link/A<> >> endobj 796 0 obj << /D [794 0 R /XYZ 91.8009 721.8656 null] >> endobj 394 0 obj << /D [794 0 R /XYZ 91.8009 283.8002 null] >> endobj 793 0 obj << /Font << /F38 546 0 R /F15 428 0 R /F34 419 0 R /F35 424 0 R >> /ProcSet [ /PDF /Text ] >> endobj 802 0 obj << /Length 3343 /Filter /FlateDecode >> stream xڵ\Yo~ׯXDf=8m$~HDAB@" ϧ>{zK 6NMWWսC1b)u;B+}{?bIFrK~+N sE~OLqݻ;F51R8N I9IJ{ٞ #oOY%('I+cfDs;XMSJ/`1f7 Y+Jqjq\DFf;8e@M  [;+1E ^^W鯽w$G/e):}psnϜ%sW8xrG+aMm0&Rbp |{V$'Jp y|k302]2iY JLρGx|z9P"AX$닚 :b6HX-6M6h5' Q%lNZd/@><^EWWwo_~|Wa qّ*Rh]b?=df,Teok{WPYY (i6ܥ \6"F.bl2 'wqn̗˛[WAm-(,?cv9WF8T!y!%i!`fWu_W)49a/:Zn]HZ > h*EmgğiO$OltgЀY !ߑwL#K?O=|Ͻ< T\ضi'OkYxC[t4hJi {@XX44T熬 yq[h2Ve%]G;tN&"/BdQbPLft^ K\Z B#]w)j `ap4jjbT妝 JE8%8OX нF Z+S  U*..tLqZǨ2^٘׼Qph?/W-[.Jwm-3Y4^ 6?9ɞ1c ]Fnr̡PpiDk˜0ۦ%2-`nST!C\SԋZb #F96->ss@p{0R.@a_>V`twx"I䬈%C$6 F$px&!y}(~kȂ_.\_`/f2mz`8Gw(#֩tBKsz}psw, Pә(\1EBKc~d{!Lo@,w#J1R w 4 ́+i8I2xv\_^?t6P yW4AKvH Qeo{ѿS)tHOVǥBb5p?'KȜs53(1I$JG|2JVid!yGv{Q4ćGQ @ bYʛAHwbΨ!~W/} 81 q̬) ¬?]&(ypeVppBm@aušg/Zpev,Dj6ǜ'j0MNu԰¶(ժF=7U0Qs{)FA ӄ/"c9󇂡P@,YhƃW0 xbC {ar m.sn4\4jz̹9N\QQ@V }qJ[:ۛOwO7FV1;`pvHfٲV)mbE?+m!4ⷰiS`IMflP,_joAsjo4_tN#oӴM_Kslƃo8B5ɹͱf2Nb9NoZ*|4a˩r,_^M Xh(9y7P^r qR-YvLԖ)jww_zҖD)V0N+la4yL["3G7 _`@o5 Iƀ̕ f3*ZbVy5y՘Yyslƭ U\kf\ysDK= va> endobj 804 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [434.7085 672.1082 471.5618 682.9543] /Subtype/Link/A<> >> endobj 803 0 obj << /D [801 0 R /XYZ 91.8009 721.8656 null] >> endobj 398 0 obj << /D [801 0 R /XYZ 91.8009 634.7459 null] >> endobj 402 0 obj << /D [801 0 R /XYZ 91.8009 334.1512 null] >> endobj 800 0 obj << /Font << /F15 428 0 R /F40 633 0 R /F39 549 0 R /F38 546 0 R /F42 557 0 R >> /ProcSet [ /PDF /Text ] >> endobj 807 0 obj << /Length 1227 /Filter /FlateDecode >> stream xڵ͎6 ^s*R]R]"NbSEw/[dR`LbsO$E tAY]g>h ~{o`hp^ `j@ڸr$Ɯx#sA'蘿Le:ЊҪ{=%2iW N4z7$lӨSB0-蒶qzxQHNr'&rgBz|ٕ_OU,<W`R)E433-M-¢gs&Ae~kaN 4!ٕ܎zw'@ [xO8W蛡oW< hd-IVb!ƚJcΑ=n(rf܂ [& TWS|Hf6b\ g[(%sJk޲SZ9JZ ? P_ %.J˨5繊Rq4 96}<_;37V 6y88~_irX)wd2+٨[۬A.pWŤ*کvM;6l^ Z4f:E-xtoK+AGxRmo0i-`\F[Vމ*lZ=F0'Q 3|(̜tAՁ&SaVwm"6PjJ]5p\އ·tDPuPwt@4?I5?7Z%]Z6ǖaiK9#)e̠i%(<)\eV\-^[ p>y|x\>yYEGQQon/L@zBП ֣hpGь: ʘn`+,A: Z"[5ZӠZESJP=0cyLnv ֚ir@+,K`טkP8hqZ bF͸VU`c?5Gh` rpHl~xc3" 4 VY1 wpC GЍaA 7RMyz}$R)mO:rȊB1ł9J98E1,eRT2!endstream endobj 806 0 obj << /Type /Page /Contents 807 0 R /Resources 805 0 R /MediaBox [0 0 612 792] /Parent 799 0 R >> endobj 808 0 obj << /D [806 0 R /XYZ 91.8009 721.8656 null] >> endobj 805 0 obj << /Font << /F38 546 0 R /F15 428 0 R >> /ProcSet [ /PDF /Text ] >> endobj 809 0 obj << /Type /Encoding /Differences [ 0 /grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron/dotaccent/cedilla/ogonek/uni04C0/angleleft/angleright/quotedblleft/quotedblright/cyrflex/dblgrave/cyrbreve/endash/emdash.cyr/afii61664/perthousandzero/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/uni2423/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/hyphen.alt/afii10050/uni0492/afii10051/afii10060/uni04BA/uni0496/uni0498/afii10058/afii10056/uni049A/uni04A0/uni049C/uni04D4/uni04A2/uni04A4/afii10054/uni04E8/uni04AA/afii10062/uni04AE/uni04B0/uni04B2/afii10145/uni04B8/uni04B6/afii10053/uni04D8/afii10059/afii10023/afii61352/currency/section/afii10098/uni0493/afii10099/afii10108/uni04BB/uni0497/uni0499/afii10106/afii10104/uni049B/uni04A1/uni049D/uni04D5/uni04A3/uni04A5/afii10102/uni04E9/uni04AB/afii10110/uni04AF/uni04B1/uni04B3/afii10193/uni04B9/uni04B7/afii10101/afii10846/afii10107/afii10071/quotedblbase/guillemotleft.cyr/guillemotright.cyr/afii10017/afii10018/afii10019/afii10020/afii10021/afii10022/afii10024/afii10025/afii10026/afii10027/afii10028/afii10029/afii10030/afii10031/afii10032/afii10033/afii10034/afii10035/afii10036/afii10037/afii10038/afii10039/afii10040/afii10041/afii10042/afii10043/afii10044/afii10045/afii10046/afii10047/afii10048/afii10049/afii10065/afii10066/afii10067/afii10068/afii10069/afii10070/afii10072/afii10073/afii10074/afii10075/afii10076/afii10077/afii10078/afii10079/afii10080/afii10081/afii10082/afii10083/afii10084/afii10085/afii10086/afii10087/afii10088/afii10089/afii10090/afii10091/afii10092/afii10093/afii10094/afii10095/afii10096/afii10097] >> endobj 632 0 obj << /Length1 726 /Length2 24140 /Length3 532 /Length 24781 /Filter /FlateDecode >> stream xlsp-g2Q>e|ܽ2[I/)6ۍz+Ȓ"'e~_A82W\7^zʫH-!^4*#넪olWe(r? |~=9+G!=HJ'iZ tp?j \.M,W]$\sI#98@AOsCe ey"nTh“x+2#ZwG3H7Q/J@yhmy5OjzyIk|w=6a֖NِJ Ĺ/j5X>l1?mZ?o뼴g" 9C; ;|@T!6\çeT(&V/aݢmTtH9bngr,qBc+,ZD1SC4)`#{!T-ϳ͞XIvׄ$mqR>ݏg N!(X]Quif{kN0”eD;O(r8zt ˊj8($43xz313-sFvW$s /_5S #<2x ekι `@"ᄶgp,WΞ8#m"Jv<'b<Wc]7l52}8۹KC|}?#߳:Fd`G_ tjp<(Ò$)uWS "*{ƘĄ@QpiU;,3%(F^ؿ?")7{-%RgY[5 r3K_BUP\dm{?%FhД Bgi=z_8jQ؈b6Wddk()wie><д H8}uЧ{s,=ՅݻժM/?=Apا@s֙%څwpZ;Clՠ| FcHTkHFY!]$P{s+b6s=]S]U=ZR5pM4d%Ax a\hUp~_. Nx71cpvgX'`M'R ӻ' hCl=~;{Vf=t_$^!%n8=:8wwi֗Wv"?_X'r dtqt|ÚrF4yJt/X#71͕jx]/k'#)#I2X[MDQa G%\+PIO剰rQ+? }m[}=#كQA#@qdo9/J gHDIk F3NFvdiRy Ҧ+ZirTB,3R^8b ]۫U`ӜMKg`N]';NW,{/3Rj U EM6K))8ck˭‚mcC "쨗Q//qgNVÜ0/3Y2|ڈ"7-ԉ6-2ٺb^#<+$xIT˓c E|h>30PuH iC[c/QbT6OE6Aw_:#B#G ,T'>26Ѡ<2^`7hmGP>7Z#4ۍؓY >K7敄eA̾+"v8yq_!;(݆Hko*Vk1zJ{tGA%ۺmDF<㊙nķ=]GaqK1*@D}Du`rѱkڢ̃rb8* ' $kJ [lh{"՛VziM\m\:͞Gq@m}Xº`J3&ߠtp3MB˘[GO~euo g|9ww9nC7  zC~C54sWm mr ~-bwv>}ΫR/,}]2syhF_bY6}> bUzG+ &F6#D+=vǁ\U.9SĴW4V$bəIZv&53*|tC#Ql33#J:};M`K% k@b|VB\rB,~L W`;:<=Ň>ѨtC[AYg*mLoGOGy6ߧI\TUGI^k=5z ҧ񺥺Kes`{Qf*, C0Y"ئ=.kDH5䕊k|\ 6\ .2[L7+gW!C(hBM_% 1Gt XöD_.$Lo\ATjD2F!4vǼVBG&U_DZue2 ""TV9H{zsd*} cwTyp5h\.A 5Eb*BpTb? /-oZocNk=9; >>.n%-`a 6Z\ټT2u/T3,A #I 9Jf ھp\zӲO&ĽwRo6u4TOjj5`:HK*|l޶j'O8:dLZ2쁟Φ/Cu;<3ҽj*e v6]`wh9 AYj&oAw@xqWCەE>>'YuB_.i} t,q{R9lW]IHʘ!)n~}+}+mn@ȓ& vxJ.h*/]1יeIJK@+Dz UЏ| Ѷc `>&] !u%3'yxԂh=#Ӗ!+s%7I39>b{ kHbHx_ &Q/ԕXM?Oq)ٰg߽p:_ E${ܘban: {0q[I4cMz=Rɚ[xBL5|'I͝|yL|M3 (XQW@X%B\l-U{ZEDd84sv|8@0{~O\ș5*<[;!JʞoU,IN2d-Yק)d2cELV즱瞆T^]LHpAtܼbMS%8}\uu}PC'W#E$P*=n'p L'ST?joqޱ61&*8)iOnk#HEιv -X]|YP5d#hN$ֿBQLDPq2s_%5} QMqKBӶ];tcvA?5,Zޓ۷HW `4w#MJOzPCm܇" Ax>L+d28Vޤ]'#*m?cx*]`:ʙ֩xw?_^&3LnQ 2f~mRG J!+}i6"<@~ӳ]TP 7:n@|&K y dDv#y1cݢQ@8VCAWA@-_{2k :cZQU:1"JEsq!-ysH[f(`yS_:Zd?BdXt4 |w[DF܈a gx7}9bId3M4OgK$of'y|W|^,џnnڭ w*]?^HtRNAS}^ ׽YGvxt.kunENiX1\ډT[X &4P&>WXcstL8p!GֻR\mm)#aYDcd8=:sH G[ꆤp)TO(<1zE)~#gKxTx*WaD/"dRk-5"A@!I'FB]XLMʕ|qpҏZJ}rO54#'0iQE I}T~ǂZs\EڎYn@wU$a^0o0ef#.xQ2 g\F&nvZ:1 Wt֠^t70y bJ.G_Q〢Z;xhX!l2 Gr 9ts?Y\ݵ>NdS3‹67,1bьRfZk<El[}Գuݭp?H a:o*l5_FJD2>W!i@ǣɫ\ǣ8Ch{|Z䭹%K,9Y.y^ v@J?O;3|E B$)Q_%WraF5z ͗@寈5{Vc_eKH6+~=:nW NZ?X1Xc} AQMٮKK_-B$FSu1}Y@C&qv#S!PKxy W[ N$k~gn§w)+$ PTe\@v>rB 9٩lcwK]r;e>}T[iGxKwO.!ՂPJ]_JSLnnF$⼊JjpaJ0< }eD1Q"wu"rսjsxN@(tPr #D:u7mKzZn>PԦ&3rB8ԑ z"-m$>}̦B-:(4<`(3G/ª"MJt}kTahQ(MLbM?3:S,s rXnZ0F)ˌrJyسLf拥"ԸnC#K™}o_E\b݇$qdbR MOP7i=r=;/MudC*ׁ¬4G:;d* cqe"k gK**isdfvLcLȭ~VL."I;":qyt <{hҶ6bEctl "n<`Se?|ӔYECUxOaJhS?NØ.hUBý*G$`'AJ*LP.jB޿+Sԁ:|ƽf/c;^nz>%f)&oZt/qu0ݬF4jUFj$R %: .̵/ؾ"謹4yJ6U6DT#˖ @d/4dZ0A،f"жo?ٯ1L=~`h>鐐84 \]7C EfHěSrib>ۺiX%+q@vaw9g0*5^usJ~f9Wk2T=^!7r <¨`ؖؔge bQ=LH܍/(;vx{jP&d5 EqS;x#׺MYTf&aahi|'9˦L)lqRfP-Nt$$-}N6t!7|Mi%"v[[n}87f@Kג_!`/1 7ke}3zN-]Jg5Wײt*SM5|*~Ў`VkI7 /)ӨD?UHgRV+>BnvѱcoihOL%禰Gw iŰ”g \z!YZx7z))9[R:d5XmṰoD֮-J ף/YaD%'ۨp2^ DXl{e&kd1W-qn0e.gIOL=ZbkfY`HqZƬBŎ {?EDRP?KCbݎgzub`/v?k)Z9}Ryz2*EPmڡ53 JfqKUM7GNjj*A ?4 hey_Ìsl TJZhT{OOFNH&'߻,N@,yU|&xzsBe&o/slȔ-0LB`ݖb>.Y(eoay.']Z;fȋjcp+!^yu=Ծ'|ksmB H"lZv׾eي8(.Ihd@k qY*"夁 n7 VUĴvsV'I^ƆNPY{2JFEtOފYr"@Z]w.u𬈄3rxq3 }0j`aB=?k<;[>bŖuU+oMw:ѽuvla$Og[4VvC%jB Dܡ:чnu  BUo; cdd\u1hb-EIi19sfb%RQ#qsEW})R@jyish}Ug9EfOLF9)P!1ڔ#/J%%udeKϖm$87tM 4:k4g%8C ulgث8qB~Ul3x/DkzX$rŮg&٠d*h~^֡ɍ;O7l_vGq\7埯B'"Qh[Br91bL=H7(nڮyxP^ z70c9C^%obyTnMc_Wa;غ(O;4$KЋETMbTvPDo*Bes xMw@KUw`rQp 2!c7< *GgX AǘD@ J-;N(!.P kIapf#*Kll%曵țθ>#Z٤W} ߯ЖNd!D6MnY dh~Z:fjvjVRj9"qwef]cǿٰ\o{H>N+ʻŎ  y)yn 0Iq| QS0zpM}bxDλk;fGlÁO=K,'Êҭ܍}{X{rLDT?ߨd9(}bn~YU.t )Ews.p5wAl+<d?7#NXPՇW!id.Iwdwl7*Q4%H 9yH$JP,|iTղz̼߷ o^HPtBƁi[* -BfدdeBgl"'8<\ ! Ju#Vƚv.9grϖg̐XǽE,;3YL* YG=I/{"P-z(aK6U2}J8"G!S(GhϊpU0Z˼OBV\+' {dy+ܛ0mm9gFAON'16p{z~d&onwHiZK%Cy8R&~$Bͧg!'h3;=`󑝄>Dp"D1XPq +s?4={.ÆZ3BK-蠠RZTsVA5G g}V=*ĻZ񣦣d$'rp'"3WGܣ_CV r[F#˝7nD̗]b(db~ :Q.V9@ZF< X8XPeG]v,(48$95 珧B|S3^#)! "=Q W3u=!^𤤁Sԃ?W`ф<3.({!kȴ,ϙI9OnHDwoAB:m$jqn9c Ue#KRD iu2&ydtޝs ڏ@haepG8k^X6d }Euz@lo0@bso,p04_DsS{8G;(_5.g'C  ̺^ƶJrNRI-<;4k7M,a uMg btXBm33$@00~0YOH?QZN9P}S*(NJmrtL7ŐYS%'vq ZOGN8'W*#P j-`"MO>HF&Ox^[H<4x~R-ΊBPx+aO>qN=)'zlFer#fG"m 5[׌R%Zc}.4Vcvybtx'X-9؝MNO[2_'mŒ85T;dm'.qvwtc1X ;;z8z\ ]͸IaF~w1q e%SV3yO~j%Oln`8kMG ~tjokp 2)fP΋, 'M^Qbl15q HgϏ#/=>na`.FuWԕ%7I\nX u΢(|`C RDɧK{6Vr[@ R N ;7󏝭>5b*DziG>Sna4|ʡ5@Ũ𻤦Z VPl_tی{xFe=NŔoOJ_{yQ,rR<Vb1ʳuOO )W329]ޤta}Maꢭif3=5m:~G7$Tֆ>R#ISwKnjFQ֠mDzGO:9MLĩ!RJ:yhp\['6XA m[ gXǖ8ׇLOk%ξF”͌FPC'1}CV(w{Q$ez M^꾏ϼ_Os)0_!J*%3RXیC'/("~;R`)}2Ζp\i+v=}IaP1)#>C!ExlxB, tXy{8O91U w~t6é"993 2=)#o)OC}5,8{շWx9c&¦MKY=4fIíɛ4Yɰzc\HyX\w3!pȋ^Q aKw3&,id̞X${w _+Pqԏ;T 9b%GwwM ͲvԾ Z =GbxrǜBy=[ \kqIZhj'D2UF`';}j3c[i|%F'~㮷ԴU]F˥"3Ŕ1q?1#%2$hz/'f'SLdIgytJKm4Y±v"gVj?9%Nqe|UMԗ(O^P.W ;K Ft~cTWԑZKr>[:B%?= :Fxd\Iӳ}Nk t S“Qn1:{(@W W0%|!0oKЀ&s{լ<+[d`LwDYlaz\X=?m,iy6y|tTw.~,u?iXywdx/,{\)UϓPjIaa@'.|mhڼK ~\jm",&5ɬX4RDXpdi=oJݯhof})gYs]y'GYH3=Y1׹ԂFMnQk@ե5A1ic%3o:xsϬ#/U~F@/g#k:@m 0-U| 6re^RNL(!~iR'_G#'zk_V ѝmζ&֤;LmعɞlilTS} Yw!Aˢhf,ĦHώPzw:KS j(3틇M%z? asql~Y*)EEEa[.(yUn|d n{+~lM} M%tcyV[N^Gau0NoU|7Αo[M3PмNZ Arl%ÏQ@<*.}uJXFQB'sd͎Y L(@_7tw:=*Z:K3˝w1"*h*; iHe 쯨VAV2f j2+ Yk"OGxd~ 5u>GFI/$VWrPBG\>Zaw_y A݊y(QNqq/Z8_x>gA o2Czʴj|$fO\$zĹYT9KR@}k.՗X:ZB?AWQN_S3M5ybjLDJSg/h r.0^PYr=lƷ@TtIV'8$4Nn'VzBL ɷiP4K e2A vi(o3#^{)ָ cɔq˒ϫ(K6a?Z#5t{;2'j uEE#(X+{5l|k!O{!j ,vh+&Fk`١m%LZ[CjWVr$4.kjh})T-! DE'}sxO^~tDےu$Tnx,! y$u3UM>=nAc,`fIbJok `&Vf'9i.r-wYD|UelKmṅun'뗧Ư&:gS}VaqZB㿤]?_m[S(˧IpbҢp,!=%P~rjڼNJ 649XoFo~\qb>',W֬Π  [4@m18$ȈuulNXO#v"`G旖g< ~ptgjk3A89b5k.#B斋n{<&Έg'c8M[xڰVT628e? yd9 x -VpDJs󭀹#zP]_Ǽba (W %rk/,fTp>Bo1هvVMp@mo_/4ܩm(/x־5dirPwc:u- HbO<1g F.K>d4$X%JE\]#iG @K-g ~;#VH èO hgc\W.[#]:j-Ő+<i(1 @ODN,В!}N0ZW,TRc׵k 5>y5{V4Y L'@ԗk)$ep,yc $]#ڼذINt-E4ؗ,bX61~,xo ђ;fڏO"֣&yhn6g]쫒ZUtvIKV7*$8|سDH/\BQ 7kRoY 5wMﶩS'm(3')7N\^;020"%Fz^.8u2Pdl=GZʢ^Fꊩ-oǺW*\xGщf֪հ}# am}[)~SMj5:˻t$}b8A`’>7AުΖlCFU)q'd"**{+PiOi'{7e vȲ6\dIEL vS6$O{uS4ˍh%\83tG6T'q!| * sO;m!paY\ Yl8J)9c a^F< {tsibVS R7t.%1z9P/*&ث|2#\ڋ4ra#U٤Qۣ_{&ooys+t#|: Zٸ܇h.cDh}p^Қ:T*A';(&OnL7YI/EˠrB"X_?]ݠ0^|3#"AF>8dz \J#R1KM4KBuMH?.+?ղqOB̐yZaez6Rz+FJ(yC^AJZ[9Ixsj%#u[b]{j{ 3Ҭ?;(;O |m/%q|'_R~p!S[`n/emy jsiOF 6) fЯ\2v+ ZI^aÙ~ϸb=9 D\!}Y7J.\©Fڦ:*&>#xTd?xqH^WĚR]>vgYRK{29B̐5ajY{ colmŤ95DW] zgfUƗG^?y?'KԑNHt=.ʤ~_T^pt6UQ:I~F2P`?vO(UC<ޜWVg&WbH=gYi}s$ۼm" tפ}qf0dg" (o9IH:BjzEH88dO(xI1u BH93(3s@:.gn7s\)k kpձZ.*i꠳Ӗ$_i37AMHWG4#Oe_wMԼҀvʗ~", GΛ.hW5"8 `]s Xw+)'\ J,hX0S†ڰj2>WJtV!X mL%9h!%rثe)<7>ܨ >eb9+'DG&`Xm|DHk6ݯt`UE̠2`|j0vf|]l2|\o|OIsEio{!AmϜ #-zcG2Ex9X3jOKqtRۃaձZ?֐:T~tU^"? pTO> 4}RۃD5|!uSl91uGo¿d[]f%(*Kpvp2PR1 J[%qa:_  Z>< P%1 P ֕~~(֤rx2ژ:{Ht}w+>$+?sfG>;p PA+Hx?z^":?=ڄ !52sD- (uO@U5Jv쭦xuA*.늺ƶzێ2'SL  #VsŠ-IFN ̓-OOP;D3x(N@|02vmʾq^U*ZQVD5XSX 6ݛP*CLb%$}4ldX ';4P#UyݱA̵tƭ)AVÿ!pA\SnB3H;tr .D^堸:G5F3?r{?êCPF -תQRmCKϾ ۯc `ٹ}ɉd//s! ) kI6$Ij)\"TX藈OU]DHx{c`?j&I{ Rfnl:<+EZAkUT4q Pimtj|>sY.H7,:-Ha[Yh5>p箞+6['PtȟѤ#C6eJ_=3'EEI{_ʫc *d5HS=LC;I VZ[A:nỸC*"XYExRv4m̫QZWGosl򻧒 iqe_y"6OG[?a[P|r5(Jn~+ 5AtJQ]]wH: _C& ^n@kR݅ c,"MŘSqɻynϚTSgsS0~?="OCvrS Dfl(Ts{UUHqHe5 )-8okP੐ثOUDe(cD="C4K4Xc'm KF4PaH0nf]t^Ya#CAE/F7jHH@o*DZ9µ@83yKǮi,bnpBx A~_Ch@# Cp!\\c_y1qzӮn4Ƣ0kCn:8_8 [ S]<&A{BEjZ|?2V:nLZyF.Ųk6K55|kiJƣ' Z )jUn}vo$ʎ28 3 ̹8UGjo^85O▇4ٿ ވyf'8t]F4U%qǤDz4<;$Igt m ӄqS#Hg{t9G)O҄$f΅bV8yZ5T/D.-L5|{M$:o?p{NNdM,LчM覀ʇQA-dFY}v+ޡ 8F<@UN#7@]&By_*Iڮ_~_h[FzkK!tlzO+v#zlj ; ?&2r`fN÷~ß4 [$@FFƐRӜ3 `b݄hI[ iS{vSuxvU}cM(p~ ^>\mȋ8FOMa Cl)>ADK>3ϖ˛V&&* S~Hblv+1,OkWv0˶"5Uog(pwO˛LM̌,̢TGB}eRh'vwn%CBLDh]DS1 = w8ibFX+FG07÷uvDEf'nwqxaGFEe`r^k0]q! ~Qi)> S-Saܺܳ>LHXnۇtϻ>M^dJ*-jIv.K2uqgOשO-eY]u:x /=%/?!tjvwv4C?endstream endobj 633 0 obj << /Type /Font /Subtype /Type1 /Encoding 809 0 R /FirstChar 33 /LastChar 252 /Widths 810 0 R /BaseFont /NZILTR+SFTI1000 /FontDescriptor 631 0 R >> endobj 631 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /NZILTR+SFTI1000 /ItalicAngle -14.04 /StemV 50 /XHeight 430 /FontBBox [-95 -321 1415 932] /Flags 4 /CharSet (/exclam/quoteright/parenleft/parenright/period/slash/zero/one/two/seven/nine/colon/quoteleft/a/b/c/d/e/g/i/k/l/m/n/r/s/t/braceleft/bar/braceright/afii10019/afii10033/afii10035/afii10036/afii10065/afii10066/afii10070/afii10074/afii10076/afii10077/afii10078/afii10079/afii10080/afii10081/afii10082/afii10083/afii10084/afii10092/afii10093/afii10094) /FontFile 632 0 R >> endobj 810 0 obj [307 0 0 0 0 0 307 409 409 0 0 0 0 307 511 511 511 511 0 0 0 0 511 0 511 307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 307 511 460 460 511 460 0 460 0 307 0 460 255 818 562 0 0 0 422 409 332 0 0 0 0 0 0 511 307 511 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 704 0 0 0 0 0 0 0 0 0 0 0 0 769 0 715 715 0 0 0 0 0 0 0 0 0 0 0 0 0 493 475 0 0 0 442 0 0 562 0 511 537 741 562 475 562 506 442 818 0 0 0 0 0 0 0 485 664 511 ] endobj 563 0 obj << /Length1 1403 /Length2 6051 /Length3 544 /Length 7045 /Filter /FlateDecode >> stream xyuPm/%*-䃀tww7Rº,.AI(H7ҡ4H( ")" gΙ9gw3Ww_y8X+; C5 箰 $$* $$0aܠAP U4\>`aQ@XBFXRFH;0@_A" U$ sr} pAaiiI2A@qq!`7b|%dp$Ia u~Q pj FC "rPF+bV,?)}fF%;edIt%Pw{7Quo)lsbND5BqU OHxLGZ4޿ថϾ7>$g-L* D2p [o{~tԢfS?3":0uE$Ġ1 ȏc&tܚ'MtDzY!aB q`ԩ"eXsZR^mI/*e#۶L:^* Uָ;qk8%+N7h*mYk0 rBυw|*کb\T/hDSXgeg̒)mR8!}̹]r4rC3H@4Y!UjQPd+3L 510}+"Ml;Ln&ʮcL+ VΤ rt w*z R'^M?9PyR*1EkmI..rc5\;RRmf."pZlD@:c 1~JUM%J]r|K&t%)஁'*yI;Ne]%[|xjV}07U?¬{k$9{72$ >1๎>U4~&;[x;=(si^iޱꌳadxC5Ӝ"qFqEQgrQy/+K=+=zޫ0!9؛e;WlQT7KuXrIEB{ie]ԪǐUf*}Zy;a7ѱiW"& ER2:JB٢^?0[LSU":/V_Pqw0xa-ݙΦi?Q{]=LBc !]K,@O/Q4l! Cvɹ[74ԭZ` xt6!s)9&$3NQ$P&}nkv7v0~=YBZnVƽf Xzya Z}7P!Cg\'o"eaHY泬_hl*N.?>ۙCܝ$DRk+ԃU)3_@]. =g&5(K̵}qn{@ӱP՞x"ceIuU?m KP>⭽sF :<' Wlߝ>~Hxn@?z 0 *~U7 iFi P69l6|Ǝas3襶 u4S}CK۴yK` d@m=|JJo2-t]v}Ξ9Q؂i><8yW(Wn%?t"tE<]k9H~e3dēa/ s+~Bg`rVId;V}{c xbM G6FԖ%ld< ,^uOk5 &[H#h)X^\`[ܴbBTN~5CuTIEE wNT[_fSM1we S? b;Y^oI;5 ʔGޣҬ%ԧX!ڷ#e&:GxO֮A8fb˩:Y433%JR&ʜ$ԾDEt+#l)y0{lҾ&C4S¹O9e Tx ƢBOn"rk_9s(yrэ'~^c^fbެӃ"QOn4: a.I22 KT(NP~_zQ}o.$pWu_ޏA?Or|ضyX>Tm?oIozo}oڽ+U\vJ }8??3A?iAhk{ߚ'ޥ j˸~:'2BɃlkL-NJN7`]urҷm+/nJU0g_%-!5V(Qtp|y8&tw=υ^ݲ/W*zUySv#@vu΁rpA1Uo#<>,d^tbce|qM҆/7R~*}@\蛊( |r?&TKf0bQ¸[#=6}]2qڗq`}##e>e1"l:QtmW35n5kIw uG+}c}[ݖ|nBHD~Jfo]JqU[,@#:kIzK:G%jB\ 84&;?0y+e(ɠWVqzHм6#~ ĂaODkyײrAsIJY'~y]J)ڵs' 65x YgS cU} ڌCRNc},r%. H!=_&A?]H8zҭV l0f6 ?!`X"*XH뎖ܨ94ŝ6O }A V͓:IW+Y:mAEV@duX{=H`JKC Il;66Zz`oJ(hca No$NHjp˛xB \U֭txBeta nvzPoI5IY7j2׽<oA1}%UfWYL4gb T h/BJADz=O!\Ui[=c%[U66fGMCcel-KlXx_/I7=Ѫh jc9* +1}X޺&σLlⶣ Q`% &W=l1xYlzM2ҕzcjѰ6"gښ_].!khg̓GG|j?F=ڬGkb 9,O5(gt;)D|VjSӁ Sd6(TinDtYK+g]{s 1e]X+#Ps1΍K !dXޔ;wVrgnETQF;Ô8J{'l ?ފ&~q|&Þl3~]i(hrhs20\-)s ]bYeȨv^>%cVo>EE`/jЕܭga9sZjpD%qjO֬bcIQM|sRn+Ju Эt:ltǗHPhhI{O4cb~Gt>R%[4^1ywZL1a'ãBXJ&.!_iJKs\LfxjсQuj4G rͧ&ѹCFO.C/N/L")[/^ɂ>7i*oܜ.2xKJ)hHbԐ3inL=&I}Kn2qL*5<^`vtքgK3Hܘ0γQ&Z]Q&#QY*ԝR+[ :F[:z RZr5=dsySqDv^Φ@b|r!ͽI)޹=>ķD_\8S{  H rdY63;'|󫯇ge+E-EFF$tëa=,1k"M*_*tZeɄV[֝%?}PDK#{7Bbk*H|6<A_ȹ8=wBW̌쵄3 ApvC;1w f0 {Ln*Dvs^k,'u0SCihAh FP u%endstream endobj 564 0 obj << /Type /Font /Subtype /Type1 /Encoding 811 0 R /FirstChar 15 /LastChar 15 /Widths 812 0 R /BaseFont /KCFKRV+CMSY10 /FontDescriptor 562 0 R >> endobj 562 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 /FontName /KCFKRV+CMSY10 /ItalicAngle -14.04 /StemV 40 /XHeight 431 /FontBBox [-29 -960 1116 775] /Flags 4 /CharSet (/bullet) /FontFile 563 0 R >> endobj 812 0 obj [500 ] endobj 811 0 obj << /Type /Encoding /Differences [ 0 /.notdef 15/bullet 16/.notdef] >> endobj 556 0 obj << /Length1 736 /Length2 30498 /Length3 532 /Length 31085 /Filter /FlateDecode >> stream xlcp/vضm۶d+Xm6Wl۶{9zҚtuL_dD^fLtLq)U&FFF#= 7@b`b0322D,,]&TmL쬜V&^wwwAw7zg7~\-VfE-)y @flke21w1;8lLM w7sv1sg;*@LAU`do g ?f&VRK?= `lfae/ܤ9\@TS3lm"vnf9S3g{pD gks!{PcbgdET]#0>əZggMmEei7!7q0 V4O6t/gl aW0JY ;xq0XL,\NN+33O3e`Ԗ_b4ӆj4L+S=7:VCW88yp3|;RFfpQDq^I*,~l+ѿSǶ3 sM__ Rd9v*C`2,Gڎ[]xң@3ۧF )6x[ wCm`YPx_[ PĒ@#؄NBW@qg:ժ2eP>v1,m7u5N?r> ;\! ~?\G0r*Z= ?0ux)'Qhr( 3dR\!# G4ۥj^9g_@ƢK~{C8VcLH#kH6y9]33iLCo?i>}=(ڈ & 9de/:Y$`ѷ/z!x6CNxլM'"V殁bΦD0@jCURc'X}K*51,Eo lz¾qCF,b aK\N绫n/PU1Zf//FL Ha-dZ,(4W%-t=^dH'& 59ګC\ @LchUɹR1?$!XBK@5Z:8R{b'SF\`$3Cʗa] _zR`1Ď pF\_Dzk Ep"5e_kƢa/Sc*~DaBNt:…oQ  tDcة{hIxX #0& #sB氙HQMǪK7K!![#6:.GyKQݤ oǠUmlg`ۀYͤ]躰+;_ſSnݒ('p3H E,s&*(œѧַV{O XZE3 }jXf_:gC_a}'%SW>/&5R"ah!g,)x mDx /x̙EN[Ϩ \+"5@.̃q=&>8'ӧg%"Yy#)mz,xp4l*rLOhlN+X|~~&@5 Em=m&O/m&~*ԷÎf+ BX0|7'M+0b+i`%r]PGe;AhDi[(4qȤE#hm|~{IY:`)\-i}[7Ԗ9t2^:\ۯ@=}wC`a)سYjW#Sߠ_AEld۲/j;!`<~ d#t{*_L~ηHMHkweO!KаތC @|g-j#,Fx #d8Ԗ3K@5蓶qdwa`co0,3B֏ 5U MCv.@<Ǽ5΅N9ͥ]!TʧAeKThyt* M M |ά H'x^$Wk78wx?tTgSJq"+$par(}=xMQ?)UPD@ ź|.WC 2ZJ)w-~IC5h&<ѓ8yݲ)uR#c%04&J*eg:3x}v %"|CTMFFQxkyv23GèTCңeAٖK)}}5 ˮTdoȱ)ћq-ZfZp$ XvcS!=EHw(5|݆̇c6ZKflgazrƉg{&LO67܎Ad%F & hi,C/h1 {Qr'l H;M3F{ %m2jO${F75)Hֻ}KL4 b].>,-C@(1mE(@:!7d}#3."l%v z%O;R>e[=caZ{qpJ1ɪ=<~k"꼆vkov($hDFf\R`JRHD䌫tk< i0;+[;//5!ؙ~ d RV`'baO飥 ]>#YmkymKiRf`֧Ϳ{ ZNM=ո3K.e8< g%dvHADOm1+c$U$4s]Pmf e]\k56b5* 3$/*#j"Hv9 ^*dG3D济a;8lxE"x'!cȨ4#Pkz6M{[PXe4Loէ?E9gWOv 4L([IՑ kt6-}94nk*Cx{UZ@YAՂPD rBS1]~j,1i9h+9wk5xE?ry*4R i4QROըw\М9 0CCKfD˹ȷMCG)iX$As< ={Lw뽮o=Q &iȿ%u@|Q:0HMY(PM\\_iFb\ݛ=%* gDS>f$[wN_ff"\jE&=|_bʡXʐ*!hZf~D,uWެXG/W1ݥ*O7X5g.ߍ+2QtBN#443@zF {{Tצ%XN+]O1`kM(Bt+u$Yb;xe."nK ]OYR%2L>ie +Cd6k::/4,&wBN3XؾeļBwPh+u5J<IRyR?{Koz>S܏<^0 E|KwD!F?-,vb8J56U3t|3 W_s6ү=ڶN NG6`Eq=A`"(?u2wab߳MSm#y0Ym"nҙ61җ(У"h<"َ:÷^ʄGWtW#*nKK>И͖(Ғ)HY h*e\kષG$t+#vYYos *gL%;*2qVZ]Bb[7K;؆4R5}7; +70>t/yBWǚ:¥`YonY wㆮ,'z1&hoU .m}e Kܲbl=\rnBvL n2b0#_?=T aꟙ߲kr1]䴾o' ~62eX0g~󯲔p썸 밿3w9me*ղ-iKJFh$;jgU)W-h+Ij0B_I(-;Jx~Bկqq "~wʮtJ`X3'ntQC/; ( %2Q̭N CO0ީlzѕ[l^n4Qq4y_DNJQMg`ߒcwc$nп>.6j,GTj6ٱSaBz)E?K UE-n#Mh$R8JN܀c >(QZ0aNJ^"Wa`Ƞ,R}>цb>)qB7"3ƖN tF;Ԧ_W2W-<θ%#['OO=gNB/ϝ<)!K覬lʔi-"┥4Q3_xGAr dgy|'6^M05a+x:YRCFwV;hv~4tڴQ \=PFFԮŧ$^BjW1]F017b]U0Y,+8bb/zMolQ&p΄b$ozI4B-QH#nI5wʶU'}*?~ 1 *lr,'ҷ٘(d$@ZOO>'ut eHŒ]O{HOv\?f2ߛ"=7j׉h$2p:~2L_0nӍQ7 X1CizF[ pkגzPfӀxgpGt|v?IQ@-Q4[BB.$$IH^3eZM90~yXʪaW=huǐ}9ʛ$ wQT5%rX?gΡf=' p}=kG_-dzUFr4,S3 p =ڭipƣ+ã'/eҤQu1' veR߽}':@|ׯOV8 \!o: k`zb4Q@r`4*#F#Yj΄Ag= ͝*\`7;"z˲L$_NRz48'1hC2Ta'$ԂÜ-ph\{^-w*1,>2і2OqvY鉊YKLXeD7war_;fK!b":=/[*)^سv۶k2S`\앣٣k&orMY~^WRg5OfʜUKlh[ w~ m[@ϳVKG'- 1hɎqy UZJ.0<h-"ٕ$p>%/ m`?ų0.3WIPO I=@=eosݡ9HxKtWDS:|$ZF4 k Ƙ SER?bw97qYgGhW$Ds ŘHD^y#<:6Vġ_7m\DRu\< a.5LZmǒXe gm skA{/tPj^wHNI*iR-UQ7Z(h5~ 6<Bb_}.7/R@>0d˼)d)71udHB}v6S 4>3$aZ |!dgC!N17l?@%jO^ wy~ok…n@@2 :`tM_e%e8Ƒ+6ΣSכydUgA?kOs,%8d1B2m'tU:VJDP>Z0qS>72;x)EkՃ& ⏇<4#=Bm*6%FW])ݠl{֯b'PEם<&|̸(\9QS3bȂb rɌ~+ͪhYsZg%=CDSMU/CNox>}d({U(ʹzk6zxH "my|Thv' [MLh;<ڈ%MW:QǓ}m;JԞW4=}i (%OEC:sh䣞))Z{Bj{;t˜`Mo`:"ɅĦEhL8oJ0639{FA Q#>rlUj>p4á/G?,b<(h5+yWdtLGCF5. *RB_yuo廖h+<ê瞄{HOkF/"0SK 4xiͦjú2N˜(qX?Z"[s"B0Ta* TI1 ZlJсz\gH0IP+PDzY{|MkЫY1rzQ/ <T3S*;^!-ܴ`r)օ81,TO .+i{(8ϊ]34RArj [}FQ):wv>/qA(Jt/g=H @[(޽2 ҙ$ۋ8ŃI-&ݬ97Kr!߅1N:0jmf5LUay\=I0: گ/~IcyS; _NN_9Ң'1blq˺y}fr`7-W5$=jo`>R#4V1ܔ8O cbHF[1s5G_Rn Lkes3< EؠdVj0q#' ,E Lh4魐q(ͨYwbq$h}Q) -gAXeoFOQ-]T}̺0i,)z4n0GZUݣ\RK63@o=+.}ӜaVQR RN}})z?f7>Po+[(n.y`D 7A,.4|z3*9^[b5VP0 J z4wQ:$i D-}@mSO#9s{`E^:a>"Z0,rpn4%=~2OtXeyoR]ߟz%!`ro^P\ ʹ^nZzy nLhG螎K7QeO\s;Rc1v gsz <  9Ȃ|Rx9m3I׾`Z jchR\ \yø=cN`W( q=Glma 4ƦMNVt [6bS8xz"qR,0;nf5A_Uͽ߸l+%'Iu^~ucݦAɮ߼cvD |ﶡ!њU 1rQ5*ʘ35Ն5DyJ>MQ9quw R>re}/$7˽uWjfa^d=^wE2Ƀ6y_aB GWssz8xM7:$b4kT[en AȎjeպDg-e  l-qTizcRLi̧zO@}Ie{:uiOwD 7sьwݸdD2` 6S̻3 VJLRp$pb(' r-0ILeφxpڕ:L6Z(LhIN8_xJb T-qNq rUfث0_39g@` W= 6~[Lp66t֖T%zuhoAşݲVfP \7Ad4C{\ܲx[m+ˁ#7V0tj]Ie㯌\ڙ[Zμc"15Є#c0Zr`mO`vPFnЪXؗY〖we绶NqWqކ&º)!duڍVW?G$*=h|ɲ-6MF*גml ރlۡݴ{a@Ȍ79qZB=QvC ׄ&.V;~j ^6ʜ  'ڏڵ>eG=yRŭ%4E8!c-ֽA@z*ӝ`N+P+%z4N 2Q0cN. O|YiA759u#AfCߣ' I}EiiSt=G1Ib'gNj9u'; Σْ!( BQnqty|yhC d\jK` Yeʟi 49 M0sV3JLIs`$56}s>o87DS&-3nRlBj[N轲aףgve6N(>*]ɍg$haYw.Cv?7\6Up➦RG%=-^eO.~hSbzZdN G #74A8szU=hH++"} b7ysq+ߵcaҍ]FQo+ G3"p^^ّMӉ6v;=#r0rR 윮iX"~VGJg|Ro Pք~Լ^%lNGiQ&3li˳[NWzq3h&\vI[$J/NDW 3.L%S>0史dg]c3V4ܕ5n07U|s(tC̖X!yT;6QҜЊs|}r2kΘӹ<v' c.񿜡VoVEָ GNU=0%0 uC}X,I<D+KC˵#,|3/e2MHM6 @ڈ6lˎo+8>1!S@nMҝ<:Eg1V5, TS#Rarrɡﶩ\"gQ_s(CQ"L#֚̿$@Gh4u[ւ(TZeg::3' )ظhE :%'#ǟye?q"6d5 Vɑ~ qIW߱K*R63qHtyK\O $sxbRy7MPZT7|^ IJskq\ mEޑ$IntT?*(Z-ܟЛ3"nEюM8E]zRcsUKA*)Py5nlh~[X]s#C ==) wn׸?B#G feESy-60ںJ!2#o |Sqt!/e$}瑠ccKC;S.y tp*|67ށ-W- _g. SE_&o$W,*%c!15ysо2}ӌJ=mOz-;" Wެ5X^!IOc'm?ٳz3C/}qVhWJcƮ e\g(nu@S&1ھ\ԙ]ç%~P8~o*Cq caL}R#gw[lDM8 evl'*„H{:6E{ol P-"z $)>rrH6"KK<ޖ10S-i-5㙅f逎Ya%"H88{[WkX}H`si.U-˜[^^؞=+BwMKLE r1ul̘8[qa@2wEJJJ˨,|\%SP[4 v) t//0XO.U,unI&(>Zp -O帐ТaW"UkmZ9Omg=ot9eaх u<{/kק 9̀,,6#Bl Ei8*JcGD<@7x({"Ie:󲠢! .EkYRyGYu6]KL _9{J'T+;9haf8]<HM_9B#ACJXI?.)R[N 'ojTrVX⩛XSBH]B/*:pT.N &HU:ʀvzs$υ7pc Z\r]J Myh]X/諵 quOm3yCK~Aހb7$ǭ5AI]o.YY\T)lMW^J˾k3VNEh$]yamߑk?g 1WJȩ0LjNcv'7r(~OލK_qۤ_evD6y4@#,_%S 653&A[ zE{`qӧ_O]T"Ia0kr]s$!8::̕Y@*ЂDk܀EɈJs8;+"֖h9Lⷑx5HPV<<$k 9ch A:"G@)|f:Zs?Tnm0 nbmU1N3l2x^YBqrN%$<%LNQ }%Z+ٌ}|(eiZI~",[\>s"]u[8VMK6pU!o6rFcbj\{Ъۼ@zr#5x>Uޘ m6ȭbx&Iq'"r8O)``iygc6AV]h R_c OjQǎ :vL8lQBml?ע~wb+/(|Rc GSi眖sa ۶m۶m۶mض/ٱm;?0wSkUuu| &DuF.55s rO D87:&Y>nɥpzBӤ_˥qW(QLr{V e!a9.K>5256.5"D)+48~khnp gC =M+MtySYxPK+țܓ߭,d!B>/ {}XZ34nЍx8}'`Rzʀv}ĥ ƀ(KdR{&=zK{3pyc`] ȩ;*ڏ'_ykπ'V 9IrCoD\%r=|G&~ )ֱ {hnYnE  y[&kUjbˆe.me~ Tc`u^V׍bIvN6abIr(t}a ՖC )cJ-RA:4?:P=Y" !%h1i&jzt<4x/SDUzG|XV%@Y4n9}G-pjei??0TURuS>kݝx%OjipFU.1Kl{7$"_XSOduO^OA:=1kgYp' +d6kYoC{[89{YvIkt).nR4Ǿns+<3HNYXcƚ3k(L :Ӊv&`ʵXsmPv Mܣ\ >yoUfώP DKҁaIm1dPyR;r5K{>R7]WnHCY.F}AyWƮ+[Լ5%xy| Nɺ\& Aw#Ӽ*EaEO- Ќ$D>*'uQ1R:C } 7SXH\\?V$kQHolRfdqaާa&U}>lzC _޼]0%Kz&BPpYh]▛Vط\*nh߅Rx (f|'bI)rB#f mQ)r"3ҫX|FC±㒺įnTdeBA..{Rd 3ܑoa(y)T$w7 w}p3VW=9ՐpI']QG; g?dlA);p\.2o-l}9Q/ІZG,vJ0:!F(;!uN %3#3qe LQa>~V}¯.}<H7FB?ћƐZ @6Q,@U!<΅q`c&W풺;&)dkl U3?tL=ɵPA4\ќlDQ4;ƒUvLP_줅t)K[`I`Tn0)6Z8oo75t zrN26Ca?i)@{9ڞƪp.ΤPlT2vm[ȃhJ!uX{ud鳜v~8`YQ5VڦƜ?hYf%xU\t>9 .v[x&SeŭL (ԣZu]/잱~ GXk<SPxk߿?#vf^۩Q%`÷_6W`7}=d.s ;| POl^LiY/yTܵjI#^ B'Yr"|*Tǡ*77@dܮWlhѝFx7ON[P>ֺVKd?"WEp\dO*dGc#Y-JJM4{XdB橍wrPy/axcArJS0ߍ(ù`g46K?e.}reP,`DN.\2xߤk0n9# avB::Yy#BIc(- `'z1H*M_g@K_>?S (ܙM,T_5Sv}<[MTnuuV[:-E/=lphOAUOYSc϶`$Si:z+nIdGٱ-LW;4L & JUcKs5!c^(;ݼHM#yɜf>ը,>fPJ+9 G#o~wzU͂ki +t $*oE[iS5~_ih+Qm*YtvRBY^`:Q{!) n_((?,>PMOC\fCgBrн~W&2J6D|ájv%(ħvT;æy5wmj/(g%rȏq h:ì@>lgREUC)/X/s3'H4-Fz)lgp!z1SKc)-3Sm3-<sf`V4dÈ`;Y*oiJ{t8t8KkUdK.g6s}Wa|ANHR ]o]XA"O,@,6h#0A`66QE@qN$v|Bk)WÃ_SJ%J0!k%D_Q68Y W7y1`4>)L뤮5rGq1w#TnFx5g,OVh݂/ٮ䗠ӖBvGėszgh_U&-A{5 `$uG֞#0 wH-c/}@8VWƥ33OC"8ٜa^oA"DXzW_++#; - ]c|md)B?.#q͛2ڜvS2ϦHY{Țzںn3\ex81\]a6;}NjˋKFR5{#afy((">M֗L-4۶h䜓oxTu%m/EĪ́(p'm>\Ȓ⧟VeU!M͟w:]@&/Jw݀ѝ]*5r CJ"½h%?~=yc0uUC0g*ΐ(35#AcawIu)\ jVW#C)[?($Zi2ǭ,_:!S*/Дleq..Fp\?uG!PHo`4?"ә;j,GT)=h,h}fکjV3ۣ97w!m˴t\A[rb/G~:Oh1)XJ[d7oEF+䓜 `NC8Ah2_-dW`|HG^/rCꭼ;c 8N^0֡L,yY}6neݽ/}ZҼ7a+Ylϯ)s{dT(g9{oQ'MN1dRPF-_/VE_Ԡ)d{nrFW%WěY?G[v6};ф^'XP5C] n`@w1/FE`-H(5#4x9[Q6^Y~9ki8Ͱ5)k&i\ 7j=X2x#o7L}>O./DYٚ%\ΌՎBI]P&[RUHa9rH=Yԩ=Bs ٧m$FgU`oด4kmͭAiנeF!wkmkĮhSM>7 ea[%>G-6~]s1 $f x]Uٮ^6Ö~y  K~<OյƼ^%@!d -e+Hi/5֭ԥI 8S>Z D@ZJ<ÊfT|rĨ<:F%FXcF?ۀOUy0+5/yVN[adO 㓄" k8ǾMK3vhѝѤUl‚ءoè9%όz]LQ93)P6f×zƜiGDo4p`&j&e^-?or.N,?e=0WGk˙fl9G89d/lsLؔ!ο[t@ƀ7k#X $?X%a7@uAiRt(u`.2h;!-2CZi)Ú3GA3> p; ܝ{؂j(sdݿġImmK.})tढ KðgHL.X#Aڟ7 iBAIm A2>_^98Cc$JjzlMuH]dž{ww%eiɵ46XoJmQs)L0b'ۗfS ifo>G|8!j&M6~GсuLĸWsD$"q jز3ڊ~N"]<5ѯO|ByOm=q2"S>t KJ͠X+/%V)y#PL LPP2XH/?hsP!9;(H(aVoL8mKr4Y1IA!J@7DW:TR]Qb}$Fd; ́so;H1@ l+:s5o2ج|^XΦ^ۈRi|3|#:oQ":p d)yQgh<@9NaZ̾[oH%+?TB՜'NYP9> PnOc5$hy \ݤi{FftjBeOP{ .O]1z/9',괌z$:tbE7a@}rʼ`E_r#"o343 5r<"U&ćB1EFڀ9]`H.~tt=6n^ q)h/4H'$\M5LW24j*l]"Vy&y"?DES.Uzu\IHPw|n k:b8j[4,:K];ր{nI 4hHcͨ1.B)ɲ5&<>nPz3ǀ9l7UI"OQR5e1L*}Oi4,G,s&WðJ FyR2kc+A&GUZ@Ҫs :Ee˃Vo_#$>&41óE)4;:p1U3CVD/d5qy6 (O">ht_J`Kԯ'Ja%F5]741:]l9?:a:2IIDd8y +h2)U& ?"6zAH&~BlpǨ8hLd5/nV<Qg>IEy{~?N&By.QQRHe)̧;- {/sUxaӯ]ELė6J g]9*"`;@ yLbBMjlg`Bgx,ַ*kf.c!5#٣p}~\l]M-n0^] nURhx"poxK<<]%^"D'ӂu H-Z<1[!$gTRr"o2m|n32)P4^vU /֜SyQUfb>(} ȅP4NYG?eRWbڢ=HpG A YZ>SyF|IiJTAD6Fqf+f؊u:x 4(b1 UDֱmyꬦqq;!*I_ڻ Q^yɨa;QXk6'e݂3dv@QȮ&"gY@`aـ WH|W<DmPYhHjD/.-piD0@c4d.9q켨>ueg+^NaupnJqͽ :p',_#zB24;H#.mw@,ʜ4"i"?彉1`QG5Q, \df#`["f)C)kM[Be|:WH^j ᇮ [ Tr !$1+ǕLLh35Ph꯻#"z2ŋ*`(KKlmf~ {}F8E/e'쁆ƾm3a# Y` KJYc>M~C|릙e?Op L%*-,].@tXos:H{5. 27MB;}ʆքqpҺ[cǦ:!0PrBUlx;y`*D\#gf&lTB1+e/@jf>,?H%S%-mLw,)78Ȳ09dJі,pE9sZQ5@]o&U?cI(mk7(Js0.}*` LSE CdBL.˨ f~qR/JDpYIX ߣfxăP8K'z."N ߵ!i\e '; 'OrG(w#C\h6u6X|Wh!#{Ж'B x}9(7yS ʔ&|*o\]0\?YufF Xܼ&;f%jZN: C8P0UbZX >{OLrh)WE~-9'w(sk3lh:1R ;NwPs$.nG1BC?3\=kkzan&JǂZ,`2ֹ2,b)cJŴt#/IPڛ-@ ,/z{^sk~ᐅ7ExP^e TKcjq@dJЅilndh\jW „ 2ߗyeπLjjAc50=+EBd5kwdٛ/[?vGZc=ɫE9joE̤V9cE\tPձ8DK縪 ܅ݔ ;pkEo̷ . f/T71ߝ>i\S1)Cvs\|'>LQt"eFh`EyRZh8ZW@QO'˽ƢbxNa)i,(z6a>&ؽ)RZY=nӆ:OQK-J.[%IWOq {I^ ͐"&-eCMh˘wĽ]~R'޹O5,p=ۋ0(H@*i<)CVoC#ߌDLIO SIT(dٕ#e$F?2Rjmsfwh٭tBhշGpWOIaEEʪ"u"cNȊe}*<5ݬ<"L>-aT[utL)]YU#{:NzQRԇGI] eg0'I%u؆nƢn4Y _ϊjw{}̊2MusyҷOzBy~AEqrRu92.VSFcIL;5'p;$cQC\s#X;X.27I\g# vӾVEY/QiT.%KfT*#(Gcwc / Q0yfzT3" (29(]\|&sBX{xt[T3gGzWSڜrxRmF!q<$"o*(r,٣ =r?ZCdg/lZG_Ok(&R>:Y+zX F %85x9a7!KJmfQj_aK+)\3 :g ٛc4 SҰM|9U|b*E ID!(:n~؎_ Cn@$ªPQGRD,ky>a—^vPͿ6_R@զYPl_D-%[endstream endobj 557 0 obj << /Type /Font /Subtype /Type1 /Encoding 809 0 R /FirstChar 34 /LastChar 255 /Widths 813 0 R /BaseFont /VLIEFP+SFIT1000 /FontDescriptor 555 0 R >> endobj 555 0 obj << /Ascent 611 /CapHeight 611 /Descent -222 /FontName /VLIEFP+SFIT1000 /ItalicAngle -14.04 /StemV 50 /XHeight 430 /FontBBox [-70 -360 1392 838] /Flags 4 /CharSet (/quotedbl/dollar/quoteright/parenleft/parenright/plus/comma/hyphen/period/zero/one/colon/A/N/V/backslash/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/afii10020/afii10030/afii10036/afii10049/afii10065/afii10066/afii10067/afii10068/afii10069/afii10070/afii10072/afii10073/afii10074/afii10075/afii10076/afii10077/afii10078/afii10079/afii10080/afii10081/afii10082/afii10083/afii10084/afii10085/afii10086/afii10087/afii10088/afii10089/afii10090/afii10091/afii10092/afii10093/afii10094/afii10095/afii10096/afii10097) /FontFile 556 0 R >> endobj 813 0 obj [525 0 525 0 0 525 525 525 0 525 525 525 525 0 525 525 0 0 0 0 0 0 0 0 525 0 0 0 0 0 0 525 0 0 0 0 0 0 0 0 0 0 0 0 525 0 0 0 0 0 0 0 525 0 0 0 0 0 525 0 0 0 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 0 0 0 0 0 0 0 0 525 0 0 0 0 0 525 0 0 0 0 0 0 0 0 0 0 0 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] endobj 548 0 obj << /Length1 727 /Length2 7310 /Length3 532 /Length 7932 /Filter /FlateDecode >> stream xrUTڲ-4xиoݺѦq w[!xpw,>w1S2kլB``ehHrpYPihf6f`A;88 4)G/g+kWA6 dco v8XX]XDYiWk0H+e`( Pu3X6` ` , 8MvvC$)! bӔAAܟr4 fc'ŊXV6PTtZ:x M!  Q6\% tҞ`( mfo !jG  ٸxA6$4?Z+ 4dhQiU3v_*}%3WgO;_K2o7 ''+ Z9;g [.;Xئ5IN!2Mj1s.u`YLvO4<&E6O6(?F)"QYU=?F!h[(#tM_^ Re9Rp*6ڃ8se0fĚ-83~NCdb]P}cx3f!K%kX\5bD="ujus%Qg Cbˣic#j=mw9 @AmyuE|tpV K0MU 착AMSN2o>,c"8z IkU2Y)YDŁUNz8TC: m6=XgS. ahg 8[&̇eU־t>/s` M#`T۷řME ^UC;+~QI_aa-7e{))2UXͤvUxU$R-$uw/^a"Y,.$N6KJ$8q"ubkaOՖY2c>˰4hmU9>/5c5.K0g$1u br}^/V%{+:ͤ&}Y>sK'_˽`r1٩P`q*|oجH;HQX G5fgagĝ5 BgNWvJ ?c!QIoWW"{ꝙm`'iEW&M-qθarqrɟJs- WڸJC7WЫ53fTA<.y1r Z?<ڂr^p[/ky{e3/vїoDҁ.'R(^J3AH4ZWr7~xL&z'pp%C:\MU-YuSzXZ ?xZnqn@ kLC҃Cxй0|7cq-:51=ӱ1 GG:dRBW C "!# J%]fd{CwD.m ނ7}[4g?kêeApʝfbC U/$1zW&]^#Og QG}\~%Pw,qW+Svy]LgrgJtt_gm0jN%mPa;)*Wj9;wO+sŵus_LA=`lC5v~媒j6XFwڷ ?t4eC!+PɆ,teް>.<9kWtQwD|~a,*,yG7# ?FS˙[eB&O+Fu_B {[tŴ ^vYk" ̲:%in̹mBIL#s$r<&p' k @xqI*=Qfxo. hI1G~1Үl5џ?M^ <O ̇ R[+yk\6ʯDhiBV=GPĀ~$F9~ZInMп Z!\(J@W[jd;Wv BU)XY&V"xsiWҊ `ͷ =v߸j/wE+X^:K{ lD?got0J9ml(HZgND_S PM DÞu9VHVv8$""]qwoX/h?R/'Tr¶[s#׭Zi8.' H1U: \ ' zΖ+'puarR= ['HxJo5#EwI1PdbGKM  #L5 H{$%0o>)4rROgg;ߙS#mG>=#԰wGKp :lI, R0wm09Zn ᕽS2@$1ZD}uE%tUM #cD\Mܥ 6rȤ?ĈH+/SxHIRB/p;>di"oYTA{Ո0j_o._گm E i~p8?<h{UEmk|H84$](bp˽Sԧhf]ly1V<)Ve,)ݕhjst? ݞ (Bnd fR:'&t$GsR Ʌ}1 gq^ LhGa{x%,,]ʳP>ŒSp._E摲c.zMpQaVd%%]Ṫ>͖,^牪= Z/Dnў!DE; E36Z#; '9#_)d/UDVHλkXc Qt UQ8󀵁c85[:0?tCQ-r5z?l{,8 ǿct4(M8 AjJ"60O:Syd! ?dJj!IVɏJ HC.!؄[yV6Z)q$܏2{{]:WQD=N Ls R1~nd樂F:)=,9H x|r>f{G ۣPY:y:{O hyÝ|zGRPq9ɜ%;J?e`.;s}.wpB&֩+/[:k5^<斜{tBdj$w1 0M3@7xYNg!'*<ۀeqgù;q6!7$4W#c(;%d :n~1.~e)iWzf5u' ܬ~*S0%I<RUM@|=g{zD0XT[[r EouԐcx&-&$B5uKA|1-yGឦ_ C]Kcj #tC}`N BPWK#k{868}o;o u]aA>Od:,[|Y!ܗb BQQOWm-ml9m &7'PCh¨BLJm] |>>ЖbGu:rk}ߺI, Vh-*8UɀUo8Y<\ m(==%<M?]^`m)ؚyx,*4'W*>Ϝqd$c_lfjxK#=M^ ْNJXywՏ])^d) \N|hݴ(-I/B^)#$WtU!-eJMdӽ'Ӏx2%äƁ.ݿm 1|!] uCu;֋1deiu~-h?v ٫|6\ _4$e'ȀEr86Ś>kRSW9 QIՇRp;f:X OI c `~ "3wSJAx\28;AK,X"4㷁E4L-3XhC~yz * XblWyy_=6K8r&4-\0BB|Sԃ oF`ejN'3BSȓo3/\a RiEw:I#7TX߹}$ʵh3*/è[I~qH*k{d.Xotü8)\\²)%&Pe6*f`Uʉ$SD79xuX:!HyRW _̵Y1ixOaҸATc,W}!gmP>pA|4O#=f<#˜(CTu7xuoGŁKU>M5/z.$r?]ބ&$1-Xy|k{H7hljĪr2DItof˼גALӨWo];*e0 yO:FS1HJn%4뤤،E‰6 9YKDlboz|ڠJWyΖ9C]|O(`w`۟:ǣFIoj5}~į4(: '/򈌣$&3!,|0Uޱ}0 "}˅796~FƬkDej_K=I#EEGлʼn筩XlH~z OHhuK}C!'Erpy)͖ȳ%:~EM˒9C_fojJ 0<%P5 l> endobj 547 0 obj << /Ascent 694 /CapHeight 686 /Descent -194 /FontName /YXYSPM+SFBX1200 /ItalicAngle 0 /StemV 50 /XHeight 444 /FontBBox [-223 -316 1694 925] /Flags 4 /CharSet (/afii10032/afii10033/afii10065/afii10067/afii10070/afii10073/afii10074/afii10077/afii10078/afii10079/afii10080/afii10081/afii10082/afii10083/afii10093/afii10094/afii10097) /FontFile 548 0 R >> endobj 814 0 obj [845 881 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 547 0 562 0 0 513 0 500 625 0 0 625 750 625 562 625 625 500 0 0 0 0 0 0 0 0 0 812 562 0 0 594 ] endobj 545 0 obj << /Length1 725 /Length2 54348 /Length3 532 /Length 54967 /Filter /FlateDecode >> stream xlct-N:رٱm$c۶m۶mvl';}9;15רYsտPJ:{YYXxj,,,b@cg34l6VJ#@cJoiml94\A~WWWaW'&GAgK d ))(Jh5R@[5@d ms;G_-0sG;:@BY] `lk縭?lc8/6_dUGDL33hE`o2vf.-#}<aX[+4bv6.@G/A ۀ=!l"$ r)X Q\ls'ܪ(ejR:[%lM@54v4ﲲ1?_-(A=˿F%*j ``kuMWLVJWBiЯC [&ND4`"w+8t25MnJ\B^i[RJT&sz24{VECkQy4Nҽ5F'm2Dy",?hв"(LO1=nijiS;D;R.J!r #ynȭ8;l {MlNiaUN pȪ# _w)EUa7/9 !m6lOBe*ݓ0[~EI~@_%r0ǔ4C n|̮R+%G]wSi={Js*9\C0NMҕaeIѧK }<=jrRuk,GSu4l;a$R--Sb[6 !LuKj| L)`z9{ VibqwȘK:Oϴ8;Jw#qydox 3K\O<| +]=BC; e~KZt 3@bIGl2&jdUUh:`$D(ip_uD"*"9d<.TnH$20،>%ElւEz }c8Vୡ_;[\]Vs1 ^ K<IfC7uM Cz ,Y{ }Os)G}*kܣ!>}3p1WTo#{gI\ }>MoWI5iz6xt 5+/$ҽB j!b_A[(zĩbsQkrt6J LnM@^ 92 kS7wqa53,kO"S]֬>C("WcN(OդU]ͧqtu{Gހ9Z\= Wgp׈r!O/zY! L36_ώsrCnSyoRYĪlمGOpkM2z+ ht~q d b(<8JɍdB̹o_-] 9pw?fLKK?9 Hhqcj[XItdo6hW2 BrJpGhB6cs|)D$Ǘ$jmeWjTZy"+h,^6Qo*i,qNB?W;WI39нF=SOaeK÷:AIB˽$P1׏ȑۤ-[4f,CXaex Z?U22TL?F7pE()GpJ`Yb; W!%'pE?ke$:& -aBPSlx0lq}HLJeiJLV[@d 6pDکjIQywtYG єYb=8U`*dEEU=k}r:F.F|f7oD Yn40"A'cű_7FV䴉Mr&'iXy"iq0Ѣm`t<ݲhfS(ZeˁbͷFTZ-jg$Vx ^d "N[z8=4G֗#<7.oM:F4^\a2/L]  9XS oV䴳z|?'{^#F#^4"ܿ\ip9Gv8.8OH`5dsj9Y5/dUGR*8AߝO: F'dUObq/*雅/G pQQ?[DӥD.=Yi0Y`U^&<{}~q\MI.$[RϜh/cjl^.K؜`MWYJ^NsUČ0Ff֘X%WL)Td(PLt^݌znC E"A <5:q!':n\ngt"g5]qA'[ m XaƍW |tsG3.+v/(T$C>M9fIh}j#lH=Fbb݄1(8N16:}0XbKqOV}Ak}ԏ=9)otSA>ekX+X fy|\aWm3xbmSߘe %$vzdF*NPlX銧0ٗXLGwa)ܐpMSv-rv$EpyYt X +N tl:%P huG}ӌF nO]-CB~;u av|9]Z_I0Ofe cM㉷Yqm'I݋P?f/-2ǎáH,K1◙Xs-;4gb~ cj /anڄ @M8 lڔa}IUGnu!oA#S&+ P>$jIx:kK΋LPh*>[V8: s$Ɛ6{-uuMg.]Ĕhc7(4Y/w4߭:k4YhU)^KGEcJcF/8x]ZuÏb@>kt;U^{Φk,%rCA #S:uQVz IS":5cI_hڤL\$6B6OÚQŽ #35ba5\GS$c hIxԝ#|7Y¥cџG[mܒ* UmA0O?jyY#hlg PJps}3wQշ[.DFnsQC*'붴iY'Rv%?$/,y9٭k\z~z^*,u%i:]+0?PNf_l RN=ڞv)$z:Ff! ؀nST<- B s?%tη<[ᙉZbD٦%L?#W/l?^L%J"qlJyI#4dDݗv-N IgKX8C7F~K{QH/A]+tfK_'7zĘ޴C~p5 Qx UԼb8k;EH0߹CMb56Z0`l`gcŠ0K9VH1*e]c{(!kh4-$>ڪ@֞rr4w5^0ʦG(2hlW1%%D]s%b(ͣޝP@H-@E9K@lhGwII&d#HXQYz>{y@Kpcm)̽1X%aaܰ|KFUi`YTgK$C2ɐkWH՟l&n1f6ؕ#bcpG#>ʵx*k4Ġ{/g5mׁޱN?D?S <;+g$ %ɲFo˄<9jz9Hss)h я}Քw6R:MOXj^N-ޙ%DUewx6Snc!;RUF2J{踶.}%sBu~9ҀQ"?琛gzɵ!lȦڈ9 ʓaB%Xa@i,zhYpMOw*@ԵM}y f t|0?y;i/ϫO&#zyúT9QMFI)I|:{h( yRo>F\`s)aXcyXձj#@_k'DfBfnvwM]Ln2}m!Cc]q}=m`̂*S͵wX Lbg ]d'0='8U1P%e~PW\%=:W{jS}sWE]ܘDc'w[+Q[(w ^ G?w涛1o RqG -g7QY<4*v=m|ؤM;-ŖJT3TUc!0 at#(:9!%hiGQG3}Dz>͟˴7!]N\ȽT,C$Vkm u>t7jmd<CRyVinEJ|Եe U2975\ӱ) Lq̃ t,2c>(3K%JΉ+j י7 \ss%1Jɩ b%s)%JX?2w(ka z ǿWMhtTP[ yRM=dSQ'O"m_JbφS;CK~ JBDB_:8m6}7oqkuI,>Tpy bCKT1>hXfmOEptҫf܍ي2.Q/qG5:$k Q>a5ZQ.~z)2i]]Q5=n$!,eAwEUu{Үc';63p˂1j7$d#qN Ґ:jݨ6.N>.$j")\G #TQ |g}s@-G w]D]bx|/y<zg=H_Q?jKϻRDsjߢp;s3焷}~g#b܌t."hL+$s>iT-{a&] J7I5 -rQ3vF5U*$\bM+8 ITբhE-U; v!9u[7혆#D_RNtTLȒܜFlu`Î15~B ' {B 3窩!DtaW\w@+lL1fnWʓ+m0;&ZO>8Y#6:_n>R~~ԱMkab>8u&!yg4vjݢnD:ZJ,;z v0=E٨g |r @{'}wG= ޷U9έ`:R#!W(\ `H fy[k *sT-e觇W ܾr(fAIbwi"1ۨ'\ J9 1%h#T1Q zN< T)v\ {G@?~1)Ut̎|Oӵ܇0NFu9Ҝ9ùOO(MN@pǮR`o$ph0vz6}4S`wu1 G a RdW]0 (noC}/Vy gwHB8p}o7Dga[t:BzxG;HG?xzO2*mo>V|B1K89#3fefLCY^^&CmS2*|4FC}=ݽd`+dNm?v^lbhh|0 W)8zqm{x:*tZ]˗a neJйug;Z1N>w:\Yõty~6i#qf#/ _ݓ SPj%_R&w)~[7g_~`}MAng;XO"2c!҃G|mj^v3(&ꏢk*%kYYwIU_Ґ=§I+#OY\* xmYx}H X<7jj۾9r.հԬ J`T܅%Y7ʥlF!S \N-hIa7i|f(-)t0ܬM;.Q|,1zkq87͡Hc2u=9.:s4ֶ$A0u3J'\ݔe94}_Y Dbe++ݦ'6ļ}pWN ࠫTÓB֜~<5/  G/h툔%ټ{DD?=XU|R!OF?xerJA͟]K KK?0O.\vD1Vs6v(G9 .];CjӘL)Y{IlFԙJMKqe 71h@XKm>rc0˼>e\A-fN 4Xنphj ʕ7K"q4mż.ȌIфV/4Luw*ƌ"_$Ѭ $axdc)O>BRLHBߏ$,3Nmu4mgt4k4Lxn0tE;`cwB1=J>9L2ABZM5 PBf䢆5(v;Lni{=5[ *Lfы%Bٛ?C1 ΀.r LLeһkhOԮǣgGH$F"'F09:0(z%a>cBRdRh(@ /r*pUfp0?^S!84]JqTvx,UxxVVGhkuqFe7P=GVl 諺Z+ѡuL(͹=(g}_i1GQǽ%t呈Ue/XDъmCڡ9}pvӆGx0!h;J39Gb+F^y w9 .xҒfħ|Ԁ7ђ-JdxAim+myˣ5+[~#k*M?K*ktv&N.Ϥh(/'PI}G>7-DGO1 9oРI{_M_@UͶ!Lk.K@;jr8º o4?Z}q]`+oh~ԂosT rz`&0] (ũu|gcHG⳵ *pc{ q>?y6s֜6`F-]NdjqH^ʬfŬ3<]wYDX0Ι\ΚōhQBMVL°8z`pg~p<6%zћZY#r'$ (GI8Vqƾ@ZUeSJ`wŇ^nz=q/+,oNf1i>!tx829h C;qM :^yJJlݿ-NM.FA؝a}:eA5owY3aSlQF .m,";v~|j9 L,}5tJ\m-}=(U7Vf n^ \qŽ{¡''R!Ԗ~_33,Nju0@bگUƒ #ْD4lRnZ\.YoFL<[5~>He!Rx7(/ Mf{Y$f^//lI1]-Ϸݕ?߂uRߪMD J ?h*_#2[||1>Rkj!x3\B/DF|naԀOnGlЌZP@J}QKtӇY6H[HDS+tٗGfyȗ2}DZ*Ȏ ;[u-s<.V _+3$*54 l~JhWqD o]WV’^ʇE>G꥽~ J>Vg8k|O oPh=ȅ '+drӖ~Q<@rs!΍?ڸs(-i):Mg!1f ̧K}IWo4RܨE/w p`F6e!ʺ3"MFs=qջW9*M9R|z5BN6֬-66zyQBm&Ԅ^`Zwk\IZ`J:k-@Բ[Zbo~UցմS.(@$%dF;<`jy+"^eTX!g@Vv\d!vaqkZ?+ו#MXS8,tu+;h5_@*)g~" 9T҅+g#x،nwH? xĄVdJj⼊Tx?_}%5Y!FA'3T-8U zKwqTU];@ ạyw%70u˾&" kk~ȍ^"E)Ցb;?tQM]ޤ5D=vf^SK.ilb0Uu6؂-2ǕOqG@Ę}/@AkᶊTp-Ak5 ^Xs981nSDԄBvv+{ <[$8q:Ŀ82>RF=|d#) V?~)av :KƁlMikaZO~Cs͟Yz\rjoC@~\ V.PXu3^_sqdU]|ztg{2IsztS*]Vc夭,gиg!#Eg%z~ jNM/drkG+iR(m<8?z($ 2DScqO Q7VU|f?<4!4ۛ =6(ؽ'O>z}i@HcG^oh h'|2˃Ew7 +3;ڣt;Dcax-nZ\}SI#-z q\  aRk gYqk @} Q De]dx-&;F&šyӓE>qψgEf#7< a!*foZ* -3Dt9Ekwh/84N1 Q  ,vKsظ2 ySꈒe*~XHP26GXIo%iX|I;L|E[3jxauvguZ>[gFl1c,yx< )^6,^2ʠ%D b>JT7bp!P'|&7p;8/њ!-Ֆ^Y -Z8?K[S+cs^;psf/@[%վL-`? \42`Mӷ5*"y +ȸ2=$Y@1kՕO]HX1p5:El0W#3Q?.b_ UjVޖZwG˼N pJO_8V45=1w"}(9&s:XYQhh dK7dr<=F:W&c;*ןg%inFTABG{ݥ*֤8~^`1Mulvv5/%S?c8${@4ܱ">&y,O] wydv=!tfO8,J ݷV./QUn9e]g;~0b^ӣ4;ݵZz$?li#q6"n !Ѝ!4=0TJGϘFa}ZYE(MS!1_ F@c X̍`)IjdՍ-N߆HSy83a.̓:m 1oPP_7j=+5$ۅ|V&iʊjޛ&Amʺ?U&Z?P"XbչȽ<;Ҹ2^wҝв@'g4¬VM5~mHHGKɫH}׸O ةa=w߱"mkJtQkD{:}/UgLRIu/tީjDg;!᪝mxrΆ _tӭ S\:EWg<]2OjuЬ$0rpBΒC$<8+c]^gQ-i [*U12wv j7ġtSc41Gqއ6dpO`j]3k29,LG]B}w ӋbSY+AV H cƃt@g5|Ր:lELw%t^Ǻ Th/v[Q0tQxA|Os0z,嗜釢]/p0}FٟU^rf,D)TI֙z,"o~:G͑C.y wc]͇[.=[HT?>B/Jz^exE#, p@k{ʵCxΆ  knЊWujNݒ"c-nϟK"(ZxtfAJz˷DSdz~o{$K`K9JoQTXz'D & 5~Ȩ1g7]S w?)9df;o/ν`АY?O{Rn5 #̣Q2oVBTeݴ5;'ap&%?% s 4u"\?{_3 EuQĶ "]ɰ& MZy_nntai*=N0q#.n }4.k E7538 Gᙜsh1bl|@aƋعF//j1 䚮>L:\Yt T"ٌpX( kQ}ӱGx]s9ߛ?oAwUQ\(iZm 1&;0~wGAQf-ݡ`̥4i;ܟ)sS49 X4?-⭌9M7k<^@6 -k=J"r,O6ҥ_Rhss@hٶm۶m۶m۶m|e۶f̪ry"#nڈ 㘤FSXkݮjׯ/ ù]^8ĝB tۑ0o9 Sz=Sn BD.we*4x8T n~k( [&FFAh,+Pb.H(/} Hva#憰k;J* QˀFzOG=#% ilTeKk]?|8)͋:eA_E ^lD6ˡ%2p@}zS#",]YG Čm -]C# qIz:$쭏gׄ[ pvuniݕ[%p N8OܔvqW萕=DOÇh#B_=hw͂Ic$BtaݪuiQ_ Gm' 5E$ o,qJg{."}`yUaMz)Y?)H*ȵyhގzF4f9gyϰL@^j/% z OSq ̳ .VtTR#@5>NEW&[7asQT˩W'$pµAdl;dE$ 'l̎ Π/g&luQBI} R3z *M"gw^gݮ]Wi *a" _džCwL peouQLȏ )v-ЋcfgÑ7AA'dN~Cl4g/pEsq_7_eFYP =!b* 6R&8*߾hu o0aqvݑMQNoI;d$Η0VZ Tr)?}u)GTkE0%\cr̯QC)-I avϹ.w}{Ǯz qT\ܕ2,4(ԇzĸ *kѝ]7#z۾x!Bx,| l'X bL Wʜkh\'705g^ߤk1' !C|`4o8ĹKbLH&OZD@bpԙЗTukf/ j[Sz4Z1oE))&%Uw-Nc>FڛFd evՖtoE"D'a]DW^2–5r;vܠ(6 ΡI.) ,ӗ&_vrl5K["_?>\?HHF7WE68 /6<*; 1g @vAA[vd{Xj/[E3Zs[pQ-~#8c%g߁N6fa͏2 Z8NE('=Ov#OC7s!dF Tlpd-e=C q Wk=Kf|dF es.@s!s2яga>%z*x7[9n q̆3p6o@:'xM^C:VĂMc}i`C.ef, HoxwWlY&X+O:Yz.sҥ7QfIJMi#aGިlF >3,ȕm)iW*o2h 4k.jVMDhroyR)? J>Y|u=u6(^{+0?F yCbG䀹`CZh|˽5mmFõ%UJ3'H=,LʤB$A='Ԩ459 b6SW dd_GE{zrN_12-Sl G͟OH9&^̧=|bNCqٺ 595|?Cl#F~bØ-.hP }ؽp)MA|Eŕ_X7l\U՘vm[Y+]XH<_{+xGEjzPttO>lYG\ַ~Gr "jU 8JnšM9Ч(F6 MaO([ 7а/ڻ4M7}γ蔀ѓNۭ05 CW[P'U'*ᢐ2=$C#avug9WҊEŔH7s,bnz9*xr$UL^+{H4{\5R5a_ܓyAR ˎFu+.菟" -']^/Kz"b'RC$Z9C]Zå=/WmAa&oq=Ir$\0 ygiϘɳJzjpr#*dI \SbF2)Q6:&z7N߫ŻkWҌ+BknFVD SI#V>M˝+Ljvm3kqmɉSՎ^9ĵ.f,-{sKg).X(竉諫*(^iOY2(SX }.ym~>>yYKu7_^_]z6"ˣ6$!]749DKTɧҼF)kY Cir{V(񸜺y9 O._ ֍@0S )9:zay۟Ql*aC-J`V6/9GU5:L%}G[b}ߎCJ9SJ)֖Xҁ ."hoJfYhq614GЕqZ[mlSzP7H E@6թgH]&9Bؿ?QwGvsr9x ~!aA&=xm7%ZؠZ{eN 'ʋfhR=J_ZbՀiZ >ljKud!it,2i WݍO $JV铠SMa6}M@z)M197 q8c7txhc,d7{lw|v SuPh[rd̢řE/0Ec=qKr:9Q,wN?a}:$,(,V @XfUa1D.M*Ji'ɻBi#ťJ~=^2UsB`H?"h\wq+& m|ox , W̲S4X^yNܹrKg'8L.pVEZAh6ao{<COJ$iLB((o:1-]f~g6yO+C֐zgxyICbRXYM9L#L'VxBSn&eGX0[ՒIҟ1Mz['1^Ш}ң ac-EX$uaX~<-qtQ%΁Aa2J[!㲽& Ԩ2F,?C;K<硁^O"CI.ߑ^z!c&\ { fiPma?k?CZ`Nt;yجt= B2Q?Dg't@~+jVqdR0 zg ocRږWp2vYRո2%-O9=q$z`To/a"ko4gE=^0svSn Ux B9,~3Xh[7ԗ`yefg ( S\|Y((yσI꥟$a3pOyoҹ-z2O, w/{#<]U lY)%fIX#?z|/3[CP'D ˌ,Y?[nG! ysy4Pfs!N;1vBם2 Jk zb[J܇۹]S'6Yd~;"X S|"bíR L4ryŪ02uP~#GYLi=*7fWw )RdyOi_ ,s]ILi˙<&y)Aq٢*axXF< <OoV0 u5;4iV:{s=Ju񋺹L>,; xm.;6#d7;L9 ~ƮdkGT᫃ ls/ً^^95_@:e%#]vLgRqiW\xC̵u$CH/t#<%%ݝmWoa#qpu7 PtLܽl͍jܑcVƋU bPiE0}ȐVi^ؼu*R`i_0`eAZ)\8ՈS]ί`VkXXn: v/JG{$IN`pDZ1'KuOl-x5&séR~faGs%5~+̱j1qGDGը90 s'9~3o&BߝJ8X;T,4)(D4-O3"9V jC{Aԑ/rkB>&K;Q'\ rTUFvg7C̈́jG%{MWxWmnZYd=3k|#%&ac0ŶW!$3d]6+GWU1폫'rC|O\Dq_R+ žYo (HKS "D1!vD=D ^mW9jksjTN\dM0%`PHv$+D~D݈>nayVEXc.EyA}D\\I׸3Xfbr&j9Z yY| Hq4Rcg5D VsU'zAO e:$|P Ƴq=g١<g!Lyoy[< R˖먒`- V(xdn+֥3rs1Gc_gl5js!"vkNC =\$p3Bڊ%}yq$`vEIJ֡ǜdH1`#%/o X߼R%uW*#1B(4RrL.]HRhDZ n>ihYzw~ohA! ȄC`sPJ̶geaW(qC{P VJ{Y4t41A1ڶϗ]ްxx(\R/YH{({ }A!f%j@{PVnXiXAp3 '[91ToA S.S@a*_XK#3X+'0ph;kE@r==!lsS{/T52Sg nO2|HW8ljۻ2t|sHD̟,B7(ckjTuxtt10TCR kTşCstx8tX6T:D]gJ7_:k! WDga+DRN7yrV/N݅aD!)uL`j,%%U#5wDm&1HHZ n|n"(-MY1uPoXJ(JG- tQ KʔPV-nmJ kqJ$8̎љ=FpKTݫ hV ~;iӑae+Nܬ`9puي}(w)|噃DjC cC겒=m]X]9X:>Q)\c Cde !Z0"GX`cc-3+M09R0`T&ARd{fC)'wάc׆]X=MFQ  !{˕*>2*EL΅%e2ͬ!K󤪡sw"Ʒk4ez9s u.JSWXMc&)Eo-/aNrJ+!HiCrU97=DuPgm2唼9>w30(`m겳bI>~ԧK*:CTma+}0-z/^u gg@ ?5`r){rM0ʖ&w. + jTHOCxB) ~$J 'S A&:j{!eH?a%fM,!qyQZ_UF\bB RnP4xT~;IuiЛK*-Čdsn "ז|L8^C>|O7 e_Lu|i5nl7 _'XlJ<;> &&YrW&9p G=IS9@$ \c$9b48J1nA7 UV)rDwn bi3&Ka)`iPCDyhY8TGE7(D1Phm3pplHDFыjÁL~VUo~$NxȏbMu +oUrF"J3gfLo}Pr[.w‚y+ۙʹhDE'Kq$XC? ¿Guv` Fֽl8ZNGC;Wi+$'lDdr+S4kXzFҟ"k]R:~}}[Oàg1l:rLz4>¹NTdG]},[P΄O& ] ,W>HnL<.~d 5דARzڟ'v\"@I$B@р'$<"]}5-%|Qg<_Jgطt1ըA@ ̈́#@|:xuA9a;:VdoQ86!nM]q.BK7z2?_Wa ܚl0~"DJI摖ܛRAָ0 Ж,l|ʛB \MB9$%_aoS®á=qE1\N5B1'͈7M@,.˟B#CѹE9Z7ًb[ TFvJſ)XKlV!&@" Y0VVŕ/|[6voaB1v'R0D/ׅaƛAYctE}.M-\Gw?< ZXY[f !G:j>^//GhMb~_%PcΪ 0+lOl/l&te{"6 'քX/DO \M8QbZ s/)4Mɧ;J:Spka\ꜫO|T4Wk3' Qak<+4R"Ԗ=k55UfLk2LQAg,/Z|s$.ry_!Vfh7FԈ$:LGH X hU9ڢ漎!+?? s#oyE+P-pߕeA,tЇ[{&{5 8 y#d>ނO*oGnҮn f.G"f8RCg]-KU%"n,0Z Б|jevN)CN8d8¥=7m.,<xe5Q02O;d./~ Gl&Wl0Efa1w0geg4i\BmAc%36B#CO]~JB&oZU_b+IIoO`m4qjel}gGc) iQ>8)w]+9%jG8~qݵz3* BhJq>Զ֮~,"T@[vOo}V~N`8{o>Ĺ{l|䡅sv26rrqS\-cI6Čƕ!/d+yda>pǫ0lJ?zJa2X޽o@ wZRvRPA\:UVlCXwsyKtU&gUK) HrN=d$T|o%ԁO_r {QCO Ӭd" }C\t㚙;OjuIe@G؊2m{DI$ySk+ώˇs.lMS/~biCj"ۉe!uJĮ,Lؔdmmӄ0:8K7=y@e!ьl#h ֽK  z>/(/_{L/RU|l!Ѕ(^%؞FMe@tK 4ϊeNi\ JV^lhXA(Z@$Pz ^j>ς Q6|p`>3 {\JާJXqm2 Ѿ]֚1-O.%xo~'>77v,R6Ԥ10zV {\ ^ƅYO@wX㊎lLI$gME]ڱ Yf~~;7S04Sx&;_Y>!Q1Wg^1y:scuјo]`V;ؿSIzךx"2+y#$0Yhei3v/?DdfAt {܌w1iѲKpĤ[=Lgśy߂B;Em'XHlEŝ!XI}Ȕ%_:rdOf9sQ/k_pqquณr9`A`cv1Gn{Y`s^(`{ ] h JC-7sIhp%#?wdڂ@l9{xŬe;W֌֜-w;M,5S"IJңk9 ɿz@Y.t hCaӂ2";]̦b;?Ɗc!.J'ÎߚtImiT{UB&1TzU=Q$K!ԙ"2yQ#[ѰnT2is B${Sϴsfӷ~mGX, $:EHҚȧ-ke&ʗg]NeJn̯Râd)Al(3 %+"zu,ƹ? -b-lx(DGo}<ͪGx&(9 cm~Ζ_JSԱ ::S<“pRޟ?bV?rr{ {X hic~op0tT gIƮ8mKnh򊫕d̡%熪y ~#% f!Dϧ&x` p3g3l ao#5BOw-C=3`¤P)e)GFcc'kZgMZEp>$k@-L )r+ ~ң&>bkKb7^j"*T-ג ?'A}P7>kv3 +,ukr @-~HRVTqwݔ_C!Dmޥ"LRW.*–#3۱LEreN+&Pۦ׳ E"pVs;m-ke! STHR:Z~נ (6[AFҔtUsߵ$"%TKa:ۤ^ۧv2(yQ@_/D 9qXdoǙ-edf}Q/$SV'>XdA*9_Iio y:֒LrC%LT*t*t {֮݋a|uWpe'DG_V ?xr4v|gM`[h$͓=s+?٬8T{'+FW#_A{gRA? U]ם3*0-]N>2c{QJk@+5Yx)̊o`M{)egMJJISbXCgDs~s `]'F$Nj}5V  WSOX|!+o. isZZD?p+¡k19c(ڒYuĎ ;]V9n<ѸH&̨^#4S77s z{ꔴxײE5l4AQ/%|)/d\EZFϨKG #aùU V s8+5;+vƓ)9ŭ0q/L:ys2a<7lCK JʌI#}g:9l=H!;+ȴetn؅j$> Z&ў`jR8EIs7HWU Jyf?L܈E;^2퍜7 K9ڄP"6_`Azd'eXCeF慕({/ athK|U61(OT&y\ C> w[$V;e2}ES֓o^Rt?r=M`mL,ww5HՉ}[7߁]Ia2xlS8=e&=<g;Nf L*~}l{]vxl)wi4g:)viCZJ"5~ܚ.@?$pF͛fu/v8YhNc` H7EaqS("4HT,vT ]S\-ϣTj47z;E`wa@@@pL'Z9&TryAzX[U"B xAp\z` ƥ&!duIpԫxGbPDE&FXKPfo4J]>_~gg(9%nY-@]q&h1A Q)+$Z8/yھg䧍Xiyc [n*g^ .Qgb+ߝ49G>9۵-^ۄIFT>~PȀ Nt֮vg\f$w^qTjGhDcXx1vSP1bzm!#65- .6Ȃ"R yrR-S##sQ*R{헫ZR 6 &%/^}un2dN rmW/vߣXz.<65!_טԷ3//$jm GqkC2HsKgnioԲsJqZD/sg+Q/G5Ƴ-7"36A%'?_߯'6zN뿾 ##M5'chU&Bߦ U_]oN),hQL#y{حS+J勖Ey\Rb^RyWc/6RL=ѐmGS[[6WE5WLa IA?;&byfx۶紾%|fD>דUNG'PႪ"f(MT&6 I !: O;nPD~JH흇ݼJ|$bm6x_Bچw%saQ5 HpS+WF2R'}zw=gb>'R-{U1Vףȅ:\BlؕU\4Z>f Y%e3TKk͞=g R/WԈu">3;qǥ|tOQ?)v;D7VJ,Cy*l€夑 a6ћas"V98PkUyrOyY|E>F@#QM6wU%*H`լ BF6Agzdy͜`zXo U=tF?А< v2.Is3w&x)vӊcf1mm'2@+Mz'8eCYCǡT#r߱NBqagKf˧n^b Lu d3xRO" ZY-~hiwS*Ps~kG7bFx|IqlY0i'Jvq~/! +?:j"=Hw*w~Wj:7GOyyo9@G&"$lɲ ]^(UK$ 9X8lg,gyiy&)X -->ϙ {DFʻKj^4I:E",QdzorŞfKzrL.gf& [P)ð&Zsot҇=l 'Lu VmչGL SfacnUewy}2[VZTU[it%V[Ug^o+@l2 \gDNDQ!l-84gW@J6\[Am3|' O=NvB}YWD 0e;8JU)tfDt\[H(>D-p +٪|- 枊GrLL(# D% Y`3uQ "P)ijUfC#u/rY7IfR_\m [UX햗PjS#=LUj&1-1ڥn(XNAs! 4a(Q֜mHY]B㒲XPn Zv~+oJ)HYx)\Rh409 N=&좃nSxŚ]QS:s!~ %tbLxQLIKHvRq&%1W,/귫Ϡ;|CRJ6CiOH!>7)7n!|* $??"OWrjy ?2:ĥ39X}A/E{@_\<̋u#Z#tQb2u>$h,TL԰fndZ|4v%/77b4-$6XaN.pK&>~DCloԯKE[1F͙":rI Xn~PXA,zA<AZ1` Eb8kC7$9~\P~ƮgeoI+$q"I׫o/|knd>a3foV^Odt 6v9ʈ2ch$CFKa^-@-~zfxmͯ$ݭ;b揈D?Q)y1_PE-{+鯨Osg )RM%քp`?o\:XH&&Z #eEB_Zߍ(MY(Hs0x}jֽzy_>,.==Z\5ö|6t>.q˖g]34NWQjJ#I}DNhj}_ЯP5OE>wlF%L,3T;rO_ZokH3n QHi $H m}YU^*=Q~ 8b#Rh&G&ڹPo> AAl[{*kH6(TQt(mw <١-n>B 91 95fAPBB~-ԃNHTs~D-J]dVn̥tj6+vbL Kzk&#aR{4Qy+Umuk5N_ŝP&`G'D.4YnXZ@SU!R!Q5Y ..Z>D"rj=dіpʼ\?9H Kȏ/XFt٘C\_Zyƚɹ zedJH] FSoOx\62πAVͤTtݧ ÎٞrHTԔ]۸pf/| P&C:ꞗ/A %SqfWcbw!KؒZ(jc9pD5Tށb1y dO~n >I ٲVMRyISZ#mV޶ F٦)76M8F|vl! 3u&V%%"߫j>sTձ``2(nF@pZ)CUEUjرtdv(FZGo H&K"<L*yh\n\ uܛHm-YӼr|yhS9%btA 2ַF Jf9hoo _FneQO2^{qBho#dyl-,kT ˟.%qɵt;WȞ:xƦA97YsfNGvnj ݴT}͋cS;BJBHgH`Ix?Nq]p]16F?Dg9?~ gN ,ʼ.Itxy^=KԿԴRiLom2)-SXLm{QcVe1Ɣk3KReMd.#Qu3DMyXL_0 ص 6Wg&Q!_]{h 8ze~.I}]ci0H/ʹEcR/j[tFsJd{9vSA>4xMÞpEeɝʯ$a!joÁ{LF02[P$=0Mݳz*|Q̼^͈ڙ/@4%k]PĮ755t#Be&{ 8toZ}da1dˁz+ݛ[kC/H:: Ӷ*8 ŊQ-[ɜ0\ɐEL׉,{0]sdq+$-IP}ꯟ}A砥*"@ v6#u7vhI iܛ},yX7`=<$S>Qo͋ C;~k iKeS D$YM a9HE0wiRls%؄#m*ҟ}$[5~f'Z b.AtʅņާвP55xbx~,0c]yEXwOiՃtJuJY{꫆¡)9QAP~zލ2}sVܷɜCUovufvVKW^ 8Z}# g/i%\[q@i5zoi=E%]@Bh7O ,YsJ}`9qA(%M/R_~j*ÉJ!.n䞴Xl^i̶ؗ[%ݺ&kr u(Mp2\9#ߔs=T&^N&8hYNHPļf;)90nx)U>64ݺ'3Uu<7bimKrG[GOaJ\U ,VLTl'.f&x#ybAw\:lG ”hd{;fR5c< ẇ~i"EI{iNa:5{gS JzN~n]n$2Uxߎ!W}_Nzag"JAKe k$|h&39vq JU h`2򂲕lPC2/vM $ˋEVm[G( Hn@w/S2`L?-VnpVU&'P>z5Aem箼zZdafa1BRX"7:Tnf9P ^#.9I^ h Sw$*[Q6MN_M˯f!5ZtpHɅڬ?juHDD-po묺S^HmA&! $|53yNI m Gv!!u'Qeũ죿Ĩo6lNy+!$ ҷ;0`::mhrxZ. ''Ŗ0ai#W5uB5tu".ĥv ^Ja+Ԧƍ|I ޼Ik?vq"@ADd5pD2OpF[l77y #1tja_jZ!U#q H4Y# |`г7ksLshYG*z5By_uJZ)"s(U Fn_;k߶:*b}ab7#qFPf:mrqVcjgP"IhY87&SEn3S+i})3ZSHnP:v"985oF=- ]@g};XL.Bm^\/M^s[I iCzzb^Ipq$SckX)47 z%)pgFԵ8Yh|E Mɬ>0Tvϐ("]׬ 2ɘygsȁAgZT Wmr^#, z^ΓvYTR$Doc9+yeB( ^B!S 9K(.Deg!!!uy Z毘-AN CPcP6I0ovvˡ}:}9RС>ESSc~# & 󹀹s۾9٧E6te"54Vk)}ĉLd SRVއD--hS!:lmdĵgq[}<>~kpuaܛW#tӲg]*h."!wȖ_}啫{^n+4l\Gɚtj^:4[vUu)lZlG,:JUU~'Lhq_B]d|y5FŠCHYf#DMRtO*@ [$2*ޫ=퇐\UƂNSzl}߰onbhlǀexT7UFN1ua+h_>|̬*ord>ρbE ^dBc*)\Ił䀮!7DRM|8&k)7% =\*Rh1M!y[&@fPߴRF3 SSSK/K"fRhN]؟).{ 76:3 f|Nj'GfCd!gBC4R6A)JO<7Z`lT@0 g߼Uw, oPsf"CXK$w^&~ PFouA{IbXӃJC@cO~mMk@NlM O #T%6CSZؼMYj̋QU+|aqή4l!RrWO6s>=y/HK6WT.!b(#Z u~T+V1 ^JWG]J:YoLj7!:P]Z2j#4PwX51v}tS8]^YocЯ5 &4åҴj=9{hGqqO pUJ_1;qd12@3A3;e;H?YmfX66 nF=y*58+EI쪚9) Djy1rIo4lʶB*P˒{Qx\[DEl(9q&Ek+s`&йVX^u=͉%}96j:-G۽lRˇ=nIͿ=X,rNש[).klc4UgF=ntVdm!k8#l]jR2 w]qR# Qo/yӪdOrp@Np!K;WCeO"$z,'g~dd0 (X (z/=}qčon&MZDY&n׫WS?r1d_'&;kj Wra6 & BTú"KrmF.9Ri[_zpi9//5 zO 3m.U+:1JkmsȁPiVk"}iqY߆9;p6eaRD\,|idw^5@P-y3|`Hf3 7#O}!B<@hzbVFNP3ᧂNe薬$]K$T:Sڟ`ud:ʑ-TOr^2SoVy5fsXK9U矑qf /LRGU8-W$1֢BnInNx~s?CJ.37(Lӷ[w=Y-5vror&9v 21x ÏKA;7 xMuj c ГuL(Do`d>,T\7= &T>o&?օ^ĸ,BVK#߶H,oquimIⵡaSIi/Q4 {851{yy%Rt=WDlpUN&ef7ol"g3;mf\GYrg &rF€8/c~/Zz1KN@t/*fՁOliOnQ`} Q*3LTFNA]P=RZжk*f=FbmCi,UMX; 6Hԅ:>DO'F"xޚQRߙO` zfN &.Y.1mܭ UH Bj,8fܚRA({{ ڔ^WtY],dL~ 8TzO3=7?c_J`t³I} =+smV7x1ڲ^ubT\d^P-hQi06 bE,,X[ ,"?e8 y"{=C>v}aёbXe؉1=ܨwF` >Տ//,XH!mF =W(UhJX:&(N# @ =4 @0q*Ϭa_qs,=ɽËNu2;ȍŹr*.qc^VJAOmpIDΊtCJZ bLau]%J!KsC! svH(^: >~ 7qh<;53uEq iF ]-9C* ub\%E2jge-$,`rܬPfT!!X4z$ = `dJ׬t/?pj}):-?ޑ:U {@HڜAEHb=VUk_;7473~+ؼlC->|~*Ul2O֩_Rrr;^ ~}F鲫0:@0C!lB@4z.ǁ!S=) !:ni*aK1pLVG!^j;Cc9R4~\@BЊ<{lxw :4Y{7)җ60Ea R brpkAXPR". ) ɹ ˤO-WZH ;]]::wc"o#K 7ɯWN]*%f&©lX7x03ɨ2ȄAYRyM%C2q"L5qA9RDda./5S{-}„: [*}=s!JoO%u(eyˇ9"3٭%G%beZ/x)&7UFA8ŏcsK_x޷Xx}$% " K 6KOh:dCr^:UE1|iv\#wpX9Xd;` vKE5rҁiUQ wGx_a2[DTZqh8r]?:.uZ@413%|:KYq9LޭayQ/τ87^B{r"~\1@af><ظhtNCV_/*7%85QV8į7BI:P@5֧#)i9A'-v%??s^Uդ!y׺h\ฏ EBmcb\êjq[uE%W#' SFP՚W3zΗ` )3CH<&Ĥ/rL) e#V53K串FU&[$p'N~;߶_)r60-yL\m*K; o)j]:ĦT"E ϦL:'&r\&;|=Ւl|J5bq^.AZةD|)QA}>U\ʶ+ ˭jH474^T/KTM,rC6=1pK b"lK:gq JBg* /ܶFŬh26",,oybUd-wqa7Q1$NJ儚)9k4SBbռ *< 'À"m;hf!H΁V>;9.D cڛ8Ho&(5!aq<娾~_vP6=tl*2Dt3+D,q5TK^Z1]Vk@?S :L?fȚ87K\ߚ;Dڕ^' -h,NN1[XtejݚT;-!\7xm1&G*]s_~e# ,\@t7&Z]* Y#)v6Ծ_Qh]sϜH(i&/Aj)͢!2a;Y">;&!'͸ϊ\q2:_qԃJؠv\!|8d" QiFA J x!=ZWtXJҡ41f[1 ;bImoq06hg@H }Oĕ2iuЮadX\P=*V?NF]:_@3'<~!KWc9]HV-o:is(w[YXEpOވigvrOi$)_$je[;5 xM{'S:KrɆ ")ںXyq%+5.c48&P]`H0J4!i[MQZR5>1mגTu7i&11-X2x7 7 8$8n,6h*դP ~"Ynd2 ٚ{%0b<jKrfٸD|lNߧB#D3ꦠDU]GYʳ9ݍ뎽9`&kiv1 VvR7 [Ě7,A.!D~MJe.4Mҥ+$t\.5m @CVUik?T 1j}%`-򕅄"1*#J[;JxqGe$P#44{Z% 2~6BoQY)vg Ќ\0k_N^~hTr`\~bxwRLh4~jqW"cՐqCU,a:tt.4^Qfz{2 m&01tAH369DᠭaAқ ڐ(U<,FyD5shk0::(Xzf[rqA~/R%j7Kꗪj?\r+.!'O-Xpy#bK(?3"WV8-Ȧn6Qfmձ;^u܉^ _{PκM˙c\VHE Ƅ۠$kb0"FQFP]\EBƻufGn^WgwszSH!%GxH-o7:>>͕j6 䉖' y łki2{:h |4Q9f@L+kt!Cpw .7[]#scS/f exæm?ds.<Zx|zS+m7) u8'%EP/-m(7=<( R]P18<8jfsnÎߖ{[`6-QeeMpPXp cGctSх{=8/a79ʁ_LUխ;D)MLO0AXOn3I++\ C@"}U$Q7.l@ral!vH_,`X]lQvUvPl2KPm[eĄ֨?\EAa?ߟHf:#Vk<O;u&#umq:BN;.K7f/ wz٧^4@[}2pxƓ_rZAqF=Nsi &MTFJn31ګ#b6հelJʝ5&|ɬ:WbЅ)6Lb6@<>62I ^l:TTZHႡCvm0aW/mq%hc?P1?^u_}!e,Α@Kr$5ajT`hbq,}p?o3$t6L[Q(*O K#POãNf$q{˯h]Z G!Nl[J:Vsߧ`Q&:9|J ņs~cvwJrXx-m2iV%,Z&NctOɲJ@eM.Ut1iYaD~5,2dQO},9C8h+q(ӖQ7V4pu~V[$ iEz.#bTe,30,RЗ2yW٭"@W8nT̝=@2Ӳ6od~iP+n4"~{4$fBoh4wyS[abk̶}^ a+}C~&cQeRzn:gSFFbuPuh0dY*Go  ;B?Ԩ;M]|o 74IV#&Sֳ=BѤz "G4p[>DrݣV]ˡ)b/+><אg-Pgy"g&2ڷz$۲KHBN mr%O{JS ڣXɱ4b‡Gau2"5&\XBjg?ӕk'q.j_g|ZOH4CpbsBZ6ؐ⬡+=Uuէ('! Fa>ắ3Y%\'ցQ0R͋ӗ? roR )#jq_i.D,WhZ|4s~)&#|x$fء@^Pt/p~Q`cS^bJMUc_$h&۶f6omvl{75iazwʧg9& "g߭S_o:mQb{Itϴ!TўuU.4H9\{Ij僱;U14DT5^CrnҲdA+8)LK4o $`گPjFr)ͫf7t,՝Cwl95vD/cq-k2X!gFe4Gisuy-NUeX zW+\t|:m\.}ąE_P@:_~L54SZPb|,QJgk ?W[055}dV6k0.w1>4mV,Z7nqKs/Ov` k?! d$6!H&mt҅.KsZa{{-[o α`Rb-G|uC^d]j|Q4=@ tB=HU[(b\ msLM 9 oOW<*2Tnj\LޢXOc̯ g"u8@u1ݘj7Xw*"dxZhv;zψòTN?Ƒ3Zq7hHtxVf*E38Sm ҈C<wх¯; \8{B> 7'?K:@4X'cl/Js>%)ܟRvVNL+ qo{>p1`ux 0W`[`;Ns8OZfwYn'6mTDXQ>[8XSCۮOyܩ wDb7wNd6UF@(.P·Gj:Kw,߰bPqQV&RJgEUґCGִg~4#c>wpcFUˆݒno=()c+EAy[ـ=c~=9nK(IMiUi$?X5'0Z+ b`@h=Nԋ#QSb#뾸 qx aȄu,%>gyoMZ(H'}!)[ ߺ' yy,mT}rwikGI 4En4._P Ou~@_k?6z5^Up&0}xxѾ@/bn D+-^;_8p2mZ~4w=OpJY -=c7-RP0 :"1-'%c,_:o ot9ORf]Sjl}$6&bFJ+jŒ[x+6CIe=%i\pZG>*,}voD+)+#_ 2}~aȢ;!sS {est""?g/XQk)$Kk@1iv1N%Hk݀`akI>ʐZJS7+:Rj&&GWz_XY-Pc T椴h(mQ1LXύ-Im29A~[i./d<xG#z…#j`L0/t$a4K/sKNşFW,ۮ 8I _ic:r*xp|dxeHg`tC\p'{'__YP&YEL }~y1MVU쪁YkDDz40ujoH+eq=H)*Ͼs. _>EAs5 (C s>O{t82Nx^ cSq:S㮱gƹf#YrJg2=!&þ0ؤXaɮYR 7u_uM"0Hd8ukU氖fԗ~mze;sB{BB=F@(I^S%Ej,ofɪMiFBW=jb*JoHAjSIH3Y^ʔO++6? Ӂ1*So'c(op6doF~z}a6,Z+Զͼ'x! Vr Y#8W2Kc3Tҧi؎Xe6T;^>ltb ^%A=#p 0،6zOtrDԎֳ_е.S ا Һ[)U7iS|?#(t1\1ZU9*-тh*6qPga20 AWA-u~P\Fq"ׁ8.;2 'Lh;?Dzy[5I^F gN!8ή2b9j쌅q,)5*ΡlaFU"ZNo i2ya(u(|DC0zSeCp uu\JM]caqIB7j46{|a.aR sT ΈPXm5tczz9a}[j\\6ف{aq]6gDm/}wRß6 ?n..rWv\`XR#<,CcvEecRb }mh}.݄( 0L(\$m ߺXgu"{!߭Sw&I<۹*ܴf Ϙ_.q'zs ^yUqig3x zތiCQQVQBH[2wʬlǴ-9F4۲ڤ` I#^HRR"xٕ@ &3%MKt{I<1'J@o8*{W}6+@ڷ;`"yk኏8ԭ]OPW=t1U!X *(]B)L =M(Exf=JSFJs깴46lt~ӯk;vN'-݆ݢq-џ7g 49a0#m(Bil+kuprҹ' oW ҥEާ")\Ǎĥ 6ш\%; Z;ͬC4uMY8s$E@~~w^m3J,=\M&Co/q@FzN7*~9}B=[\/HzxxlLh |Bw&o~0K٨ϨDE[- 3d?hFrBTNyԶ_r*lZF4z }붵-U_TBd2ŭwfO5F zmB+Y3X&W4 DFwC9ҝ1Q?e ^pۥ;_%2{ihZbPj% XEأia+n|ORۊK8Oi ,U4gҡ98?_s+blBh^_7f~2_F96 \l/3$3 U)QTr1%3..JmeݙO,ďQzNF ;&Zq |BПy;WA@'ȟƏiȦ/G_ 歘k? Pvt~!ת@9ݖb(gY1`;B`p/q]p9䉇pmyŃ~rN+/ޜ; ~|^ѐ1z% R'7|@d{x^`<6A8M 7a6A,i)M\?QXk5o-Gmʶ>.ʻk 3/'B5gQqOA7\1"bSmk"M/s;`[&c3օnGYN.5E+Ibs>w& ZeDO! &"Z٦~=$=_Z@W/ae{ֽ+-eZskN*NST 8Xb\+g .N(geendstream endobj 546 0 obj << /Type /Font /Subtype /Type1 /Encoding 809 0 R /FirstChar 17 /LastChar 255 /Widths 815 0 R /BaseFont /TCSZGY+SFTT1000 /FontDescriptor 544 0 R >> endobj 544 0 obj << /Ascent 611 /CapHeight 611 /Descent -222 /FontName /TCSZGY+SFTT1000 /ItalicAngle 0 /StemV 50 /XHeight 430 /FontBBox [-208 -360 1374 838] /Flags 4 /CharSet (/quotedblright/exclam/quotedbl/dollar/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/A/B/C/D/E/F/G/I/K/L/M/N/P/R/S/T/U/V/bracketleft/backslash/bracketright/asciicircum/underscore/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/afii10071/quotedblbase/guillemotleft.cyr/guillemotright.cyr/afii10017/afii10018/afii10019/afii10020/afii10021/afii10022/afii10024/afii10025/afii10026/afii10027/afii10028/afii10029/afii10030/afii10031/afii10032/afii10033/afii10034/afii10035/afii10036/afii10037/afii10038/afii10039/afii10041/afii10046/afii10047/afii10049/afii10065/afii10066/afii10067/afii10068/afii10069/afii10070/afii10072/afii10073/afii10074/afii10075/afii10076/afii10077/afii10078/afii10079/afii10080/afii10081/afii10082/afii10083/afii10084/afii10085/afii10086/afii10087/afii10088/afii10089/afii10090/afii10091/afii10092/afii10093/afii10094/afii10095/afii10096/afii10097) /FontFile 545 0 R >> endobj 815 0 obj [525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 525 0 525 0 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 525 525 525 525 525 0 525 0 525 525 525 525 0 525 0 525 525 525 525 525 0 0 0 0 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 0 0 0 0 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] endobj 427 0 obj << /Length1 721 /Length2 36928 /Length3 532 /Length 37582 /Filter /FlateDecode >> stream xlycpfmlm'۶m۶m[۶mιn?csW^PYބ $(`c!%r41p6p6LL&FR3ˆ_A#@ՕɅх"%  $'!!+Uؚ8X] -F&N&S;Gpr[WG:dDDd"BB[c?N\Mm;-kZutE00rYnv]?hH 061bm-k`cwq6q8l l2/BlQ! 'Q wcy 65GL/2&.67Gv.OZ^Z\]B@𯴈@- WZ2&e -Z t3 (AA;w/ZFN-3# 5rqt4u_dbnblgdR#R8[N=;B2sl1hnwxs7oȳ{#qLdkw<1EZL\aSV{ mc$ v~眾 O5ɒs^#Pʃ,_h+FC gO]4k\pm wCg^Poqo chi-CJ(4()Ԃtd}Qka>gϓ2-a#֜ҕbL8Hv%$ӭ~d[OUv/8Вi~`YO^#MB$ѻ5p勯4Š`h=0btsi.6n "`GʵZ2rE.`[1{t%e}w]5JE?97=UxPɣ?#bg5&-rC(ǒ//z s,YͯLRo0>LO٧.H14tN$anƧv5 ϒќ`|I6PjrdFܼzC@ї .L~b4L ˢ__ {Gl8Oxm8Ev\~N6oM/ m>Ss2R)&>J%V/Uu!yc,(L:t9S z^n]6~Sݸz`<SGAA>m[xHbۨz!ѯtc2$=٘*_0Xw`;b375fKFQөgDjD1LDvΘQ@T#js#j3TkŴ NtB^p0c442jqK-{x -*Y!R d3=9O|ɛ#[ @A&ޅJt]_1C֋. ٛ=Dqaִأ@,#2YSjͦ.]ӟ]#G{~/m]"O>_ą(L"Vҕa9B4ەyFF8lgkz>tǙQ<ط[5p_Sт;남 F^)>n5(E߱]l(VH"4~ztڀcSbn|ƲxϺBRUz\oӎ"݂Cʾ3,[ϜzS#Ji6T|g1h D,5AbY@ȵ3fLo<0ˀŷ4;`ϓg7Z_,tuFw[9AB$8\hZFSb&J,TA7 oiWV3T&u$. 4G)$x"875QE @ynÇ 3 +לr#"d{LCcHnYhԧjBތӡpblK׿ew0pA<#حr/fڐ4~pY,XAPlI2\ymR C T7)e^w ìj+B-nFR-Po=_7:ˏ m6s]bПZ4Qt[DE&i$k&3IC',)چ,@8l?1ц^t:fc/o\w{* "?LzI^6k.AA qN/_jg׿|Fh)=~HCqu.ǪEOTiWm.R7)$^Y1ȣ$ᨽ;J Q( -4"ro /} K^n#S%C0.;pnk` 4CZ͍8+gZ}>nt`5hJM[LU;Zݝ|"{X]ō'rZ8#|p4%߽ⷵZ,Z_G6nx.B;( hRNU1!(GQ5=*Ny{M$f>IJ ˍI61N 39([7e#xyE|Xː/pXRuYxuN5\zu9(f͍cZcاVyW<9 EWщnG֋1&xNuU%( p ܧXE10 t[Ldѭf1#U<ˤ L$<)\` G1JvOGR9M~-jz0F)y<P\`dLNGF:&*e^w&5f3hxRǶR:ߴ5Մ>h@kW\ cLgWV%>* [-~6MÃxXw/@kZ|m0D 0i50_x1M:O'O|"jM]cաH=h2(҃,1$Lt |a' Om5Or_őĩmC^{}E9nr"MgR)%0Cjp%o%(p|wQGB!\ev&M(2r06:dQǾ7q¬ݗ#Y?kZNIП(ZrD2Ò)"ŸXc3]b٤XUyF8'F\ _vxXOXcuLI(#k !hH"M ;Dma-L5oxVJ &hdoE[?|x^kBBR)ܷZ+Yx!2ME+Z&\SH!tՅ\nml2Qd Medwcl"yCwLK!JԵx%jBW2MN%LsPU : .Q8Բ$%QWPOl׋z+1p(/BŏS'7ޕrcnNݵЛ]LTXGжLZK=Qd2ɃGŕy#DȎH%dGe3e"6`2k-7Eܮ3_P7N)sk&C0H;R4&RpxVJA 3w@fHl}mWe . adj(9Sn=mM6ads7~<".5kXC"?@Xb-CGһ]`aƱ?ܢ:bd{aî;0&.r^/R]Kt}pg Jkr VipWQm~N@G4WLȤ #QFԁkt&:cާ)?6N]/YпSB=@lvO.NMHcHtD-b*-OKHtll.gaK.: W(\rvV@x חK1՝[Pc覽 x×]+~a`X+U˒diIׁ}z<.vaRI35$װf.I"<'Gx$s *nVM$J%+K+r7`R]tO\Q⅐\zĆ?0 藉C!U([l9{›4cg:H LҊ4VCPq"Ol  798J}Ei *Cre@N; u[vo#k:S~ wP!YhT"OsT>~Z67SX!;ޱʽWfF U4pr"K~粏{駞C[k͒gi -\ĴSQwne /F7v8 ST]jX' x63^V57q3m[x Df4~#O-Alȴr5$AD*5; U3E |mn2wBS}u):CƄ^4 TIZ{HS"5T1n#3jL?d̔^THR޺y>B.a 8a$#ٺW!i-b7x Ru3ȳ]WߐFGtjK2#*=i ajŃ&#]VNM m=Sd@KpX|J>b,q q4aԃ tl([d65ҧb'/` if!R.DɬO' Ð Ww<@)(S=; ^iI2ꑚetY2 }g^Fys!uX~EAW"&B4܈i#`8USv^8`;]Q7zD(!Stpz$lVlY 2?3W$KZګ4k,h{^`}AWzԥg-=64Z'P4kjV3Z$R)U02W̕6@ml\틋֯_'Mp4'9F{Mod)6r(4Ն(F#8]i  *ފ\0Kj0^ƗƁf#%'X- [f0]W웇(P ֞_(d㻛^ e8,SׇX@{3|EIHljЄw8-ӊ]*_&tq"cJX-[a|,T V3ypH*:n~ā;`=_I7Vx)l ҆NaT,9|2;LtO&NJQDT1-|sVI,Z޹i ZƌkU/*}:Ք"hyT/%'Mq*ix;C'8:Wʒu$],pLYg3w*_6 LAH@ ="BICWҌUh5+BftfGVpĞEyHׂj_]7YK%,px"1Pth>1TgQ*^ѸUbeg{:Zg)̤ulFmaPڊAa 譟86y&u`<4ј0xÔkSߧy y =aB4EIgSll[4Tx MzKw_&nުu;fsrT3*q#]yɪCuWO.OW&-_z5v1ɣ-}|p gUL"h#a-ez: -4NR!R>M sְ|g_Z+Q)N?mn~wPs_i6r'4]<=my h^%sIѯ-'8M>n8-sW$͍t#} i^U˷F!pnҶc99C&\I.S>\*MiV/#ܞ[,ENVβd^uәNQdn߆![ͯe>&*qYK6Fw ~A<|f*ܿܖDnVH0LxeB%& +g/N}ك/O-언Vya{tDdMH4 ez1FKP~$$Xi[-m6t#"CEYNE69j ѩ}, 9%̱6{oڀRm;Ŗ77{[Xd;Ȅ$;/mIbn*ϾՋX,Yx20CĢѝsz |_^؏vw+$a.^`vQa4L*EsxIE @Vq9mdxA]}"FbP/Jd#y\I g=<0s]Cdf 37u/O'z0a~D~' $]f)FMlHLsP-E#+9[{*[ZpELERh+[r,[G9]st3m /G4MFR;6Ip}֏P -GtdGxԖ{w K%" !X|z2…:n"Ug~l^Oəւ›T)ң?:(G>UM8Lƴ˶QrHOY  Hx.Dt U֪fgBpc@mua@+"P*kЋQDC bKt*2|p0;u-RfhKS/oR1ff1>zETN퐓S<:|7<)/b7Emul Nޥ](eU#O xܮR%7+w|iAcF]nixqxYi2KP;6i&F'{]s"4S08$j"!цtn=T{5q|2i\ Jv} &WqS<-I"Iˮe93U.(uw-[r?qDLZ>;B_COaA`ʔ״6y|E>);MeX\$_{&㞭YcGZҋ.?FApjUFS F/I19FOWe5$W#eKp\ ]6M} ]tkBdp:oy_ (.:˪6a'ŇK7D#~C% q([o :3B#;Mۮټj65qō.*<R] gpGvˏ;!}Vfۨ^J`OpܦrDCQy.󌼤#6r>j!uqkfL~|^k%@_G"(FC#3Zbnr[Y~a*J`-M[KST+KRpXA+̞iXNѳUmgOq{t>A; /&'wJn KVX 3:9GpY,/}`gSt`]"''81 :pҚ DE lI#*+|c G@ų7%90̇|'7ud?رnzXz4tE^L}& jΘyqE,I,uVq6F`u"$k M0_Sh"J&^X '.S֛KB{nka *+,j^u֔N"$,m?[z2%L21xr#f=^ni;Ѝ&1/Y6 kf i 釴%}ʻ{$-j,?$T(L`4VF]qP=6x[nǷW-) /vkdrbjl臿dht̉H'5BI[ҎW'5?,K޸v!d8,pMO1 _$! [2+0ׯӺX5 p5Fq l4@:/үCP&^Dzddj 9!ǔK>Xͦ |1bOgvP-O=~&66/dz%O-)QVYCP6Zs%a^*&EuW"V*٤a@0S@W|߳_2HNT\ 'MR]üTTdz=DLc,y hp+1mCBpF|dQޣ, XawX4>fH CCZ\*=Ꜻ^SNsbV|ڪ?w!¶!ӪϹeZ94ߙdu!g)N6mD:oR69^XYd ՈKpLbً|^oSa0í5,&R9>j{,3fKN0зrK{6VƀA9[\zEfȞMʝMXjX K%[|b T^$-|u{qc(#+ɽKF' +GNSMzp[ܹ$g` G͙n j@?.8X|[@ .wb~04]PخКqn kJ )FJ6[f NU6I' |v4OɽNƜ2?XY~!xWgiQE\ꇬJғ1.u|+|.xf7  4I$qS%y8[vծU:Zbr3C'Β%@ʰfSd-AͰtANjye8'a=7=%=OkrhDr U0s-^B8'cG1fSɡ`AF֩ sp_.#e>K55Eu5!(Ìp:E=c \@?Ű<ѬeZ!alF2fij |BLaVXpOsŊΪ"醣EUlSK#Ġa*6/h􍶀ejk@K1lUyZ &[#HN #\1j6f $r018b.-Bb-hL= I+,TQ8*h5fgaLn ӹ~N%4ݑ+1V8'[ u6+e x_*4::sw%C;\Kb\tv ܬR 7Aڕ%FV;hC@%W~;42)!%ub5B`̿lQ͚M c?8D([? Y|0PEcdJwO9Yt 5p~iTqAK>hf[HHs^GJWݜ`N]~zt5l-; p~kBS;XtX  92aSH F\0R4.O&YmN俷RH/v'\pmcSV:z A{N?9ъqsζD$=rNkakPg2߈ьp[YܺM;JxB鉒 9+%VDTsܰv"{WyO?uqibӇR!N"i8VNʔ,5 Vd2EL`m'sc"}Rk?A-GaCc%2k<|aD&m1 'i"ߦi$7˞d*>vwEԧ3 h@tuw:OhͲJ#CFzzAP)i7EPc4Cv lw~ 6/|MG,LvK쨴w{~uC\;99)D~#}\:;)_7Fl=Qu*Wp@E3JBx6L|(zJJE׮\ /Ds5UuY9ƸA c>-3Ay0VL&a-|jY/PAikDloM;o[W*MHڋ 014/9?4zqğ~{zszZHm3Oql~uay˹5 A!Dd;aΜ+t5ߌBm o]", %XYS/2զ[PB[#f@Gf]&GNK(m?Bg_GL{, bݳ]E:Gm\8G#4xkoᐑ{e,aqCF6BGu)ѧէ謵|$UR#&dhPue[ 1J܇s}?On"EoʽihFjK!NJ$)߂Phԁ9we@ϯ/3G7yl E+h) i&4SH.O݃ c0>T/!ҥx]ͥrHpC&>/mPyep^nq')k&=1_,4h 7-SKOd)mY=%fINR$D0Î4WeiN*@S]*wW?s31蛌H $!*}Ԡ_vcKQ=5 wGIVk!fr 0;*K _V6gST|7]HDR(fen!Үm,pIĂ*XTEfwaMN;. J%<51nQͨ/ޕ<9 ϙ8\14ܽL]t@K!򁪷7bN!9,@SykY08w//R;|rdjM Uyoy4ofk-"k _HMqOqj-k72cWe%=wYM.?"eNCFt>nef x@oÒW_#iі,ahLq,߳n8 b"eʞ:JĠ7.CY% ;=^%-LP.w!! DOEӴl7%% F2UӍ8#f@~6<\o %"u|`x.:Km„BZ dG 4$(Ldb/:/s!gY4ZTۼ&[B}T0Xu>8fՊ(0v!SاRAxT9:#RԵljB"pn"-uvkO^ ʕU}uK"aa1+V: wc^sOɊP:dtǿqim? z`?1&A\ |zф3"M_wCXZ)hTS &xTPqRSPIL Pw:UإF7?#6̇lLƦT눋Rޢ^6j?1L>BŬ~7hLbZnP,܍5yIl5.nspxm v;} 8'"r|> VS nug3m sB38 M;^}VU*#Qq2$6m}Rʙ@HfREpd`W"IAe -+O}50bgDĦ|q{&) ;}9вjfpG?O.?B S/LM58*dJ<1EAڛ?`fy-|a6# ųXЙ1r]'*ti=U^fi;\'N`.ۧTWl;A!5oSr #۰xrF럎=*?f0FbYVL; pvþvFM4Qgb6 ` ōz5#ҙb_c[5:#zPH}ȟqؒ=P-=AYQ. 7}-G̱ y754N"\wg7|JycYeIB~lWUe ̦3}c*q;`3PN6F;;-Ɛ$~< m!m%F'GKHL)V%QnwJTXt{K pg`כfm/oH-y |&٘2/L6h,^[0##+r*w,iN#]LTNgjSu܀hv14 IF/S"rhH'Yt<2 sBS# e&Ѹb DQ˩I- Z3תg!dUviYGN=| *U]Hѷ*rV {&olpԘ\Oǵx )#c{0Ι?ʛRNu9$hD d3@l`6Kz%v<\wFuY#fWE'7몴R0V||̒e@:۝ 05Y:K * L7}4P=TBI[aاw\Rܤ!1o˃%y<^L'ŧg-sg暲Mg\Mg[m>6PB3?KO[èָ8W5$|5 O%2,P B2O#đNFC@Uͻ#Y뫕 9)|TƂgx,Ap}(脞-. BȜ;0"xPܬJ#1~x7Y\sdIvB? ,s I!a@@)@UuWp+>$=ϺS4@__{)"0YZY0G]ߖrCu\q/&ZN%Wj&׀`ZN-)(R&>=~^gQ h7c3{p>+rP*Pc}GPy i'f Ѡ6pM"V&?-lQ U^^@2a]JA98;]3j1T4&㝣EwH@+JBIh}'lHQMw۪:NS#G>uBciE!X⩆!TNPKDx|uo^)rC}(Fge@dA*B[H4V wC^7w;?;.%;9% S&Tܴq kbmekh n*3"7j"(v_]k6C,)OO5ը:N8nq,#nI( "H-Ȍ~& 1ۓ5=4z0cMa{ >;!cͰPb6hAgVcM4RHW x?ɕXI.:^c[npL $<ֳ e%Kb|ܸXQv|O6%z א5 Nhf>͊GsbfY6hh*yb,^SWnrݍx:(K3r&rlHry o{[E>I9{K'޲;hDfhzadؽ6bP8M?,i{WVȦ2_xPt m]@hm|ϖu`zg$PHEf0*_hzC:V,9?*Kb *)Ҏ]bm"lƖu\OQV:H"kM, _?*vW.}7P)9T/]")f.C zQ7ur2 ʘ'R1CH}72^cʟ*y:0:(XRB9/%YZWUW Aߗ_xe.Pvhvb7:Xg2E5&[x֑JoK\~ƾ׍MHQNT+~EzICAcx BTqIsfV|g2X{ɲGRB37Ӂ|BY ozþU5HFXfk|Bzɵr\bWJq=] o# E\dˢ*ݲ~^d24{FB γi\ꉳhV`w>~ ="]GhO?+tq)jl(9rSD;.}N)ßG"7-UKZ[Y,0HJhdoΜT6tӪ/3}9~|O{yP] X!! .s.U_NYt>A [`3((cBf [L$OWE$¿ X7V}hYsM=LA㷬T0_,P7܉ ";w>쀗([)$ @3UOd7Qd?5GcglH[ H7 ͧtzޅD nVJJl~5brZ 䙞复C<p=~DŽDI k15do?>D_wc}@cĽ!`Rszh J9BR>͖g Cx-n0@V5@$'ک* >L]¶¥BmRq!$@C,j}m~HPby[^ywG4F1u2J?U+OuJ,x¸}2CO-._O,˔ =3TwSeF7244z R{{_䘅bS3n^ܝځ:9ϙݧA~x:*\^aI`#iTɟ1-15kb= ۨE[x |qY%ؐlGQKL^@nD3saӶWʜ^`?+$+8ψcj\1R29~@LA@1V聓];:^ZQpb\i9$}dMkW^2΀x"dC\OXRsp`oS.V宴H~c 4 tOŽF2:5SlfW~R5ir7!ܘu{E%3b _d4I!c!Ave|G$i#}H:]#FZ)"fe!ݎ~m HK$|Im@rqgBRpsRTB8K;`>NK'b@:E*4ZZkgODx>0Ȭ"ؤCSud~5}ܪgRT\\OhtZzA׽n{܁ޞ>{[2]3hdRx-XBΈ $xfTY % |[C YÈ\MJ3Q>tgL]8IxV 7rOFs 1XW;%_βa ӢKB[0n)Kua`ﰡvr[i8s l,<{ŝ`y}.P4M)i QWP|gCN'cȸ)v~EGa@iݴ c4q]X8JQ"!e/bzT GWE5<Ϫ O b\sI6_uoQCRx Æ?4Z|͆A@Q\rvV`!B1[ 92Kgk 9;@-2阼QQ CR!-bq{mt):礖'̚z&NRImyOA'ef)8?M׽mߍn-\ڰ͗y !sa% v90ky D˟!ܢR4('8a>?Mf3bס-0 Z /~Z[4=W$i8Ҵk*9{@@9ljC|T886^=G>H8i]yޟ47O*Db*#vLeU-ң)[;ؒ1.\Y;s{j+,UfQ[ EL?矐x;\4*He}'Iw.Xٜ{9k\c-M?Ç$b],^,M&='B5!uuퟏ+\/>ArD/م LNyΙ^(nt݀'TAYDž{*!3;g\#pit™vkzk:2!wʦK__\wu>_v>1[OUw*O sK;F.GQsssxI0[E#dK( z,rB 8Y H"43$hY1_.0eu+S Ahx-iC-OLI8#p'alJWy*C>ظa9W4b*֛߳ X-B>b3J`^0 Rn`ѪjZeӛB4j TXkqx{kOhyU5v ƀ̦,0NMWNfqnjTFΉ)2Ri")n/N[,BS]6c>i-وJ[^^w4 nÖN7i1(8;ٝn;e^EYqw~:2ieW*Olo+O<)*{M,G1& i=ə<CݐJc |xA_ b渰]!Z=f*jq["D.\<%>QNl-lHNLu|Gc~8zʍFP4T3U"Y!yUޙ[4bWW$qfP'X͂>-BJrp<%ۖ5.]Zgy-23'0S瘸˅g g]kR;E& Ơ*2J]! }L8UAPj I+42X(njd&_W8|'3n.0|CC5ENKt_J]ZhQs g=rƝգ ё8ze(86o> ˃c 8HQFOՓ]&jT8]gMN DxKu2bd*x˵E򋪎EOŭXoF' $<΂&(٦d.eF0౦Rlv<1Oqڻ^2ʐMIHCA(Egc^쑵eyr7Lb|6'S{s~| wxq&rsDV66& #9&uJHJ&^+Ow?w'bi\Ti>H74Le!J?3Ҙ7FYm؝,F @]Iuw' E`wdzIj>U=7󎻿:N E&2\"64e\ۭ&::񗘳\M mU{g)0cIn mp ê-V@ϼ/dg&1T\Oi0 E7$_47(f.%(8ġfR"jDHۘا'I!PX$:aMZ,摉C[Iӆ| d0HN-CW|ŸŴ]4nE_N>a'@']Ɠ0 RC Z@ڪűk-$٩>ЊzzOJD~55""G@ϹsreWDZ\.bkl)x3.7\B@-6.h!{FZ\ J!_P^xОMA>!nQ9Fi0GyY¡r\@9էŊ;G3py/.aX96}y$OC>JV8gl8r.}s|[`$[y~=~t=ϔp)XKkЃsM]Qr"5\@\VX|Q7y/JOL ѶmU\Ě ܖNü c]K[aPxl;HdiUKǘQ*l }AsC9eĎf/q?h[pE)|s'= a9b`FL *cGN~(l 4j.l,e9F> 8f@ ! xƹ[^]\EUv%kpCZF֏h;U>mk]N}JlC4]me˫z"@`oڄ[Nm`vZA34 "ݓ5eX:0davTq_|[kZ)HF8|\#NUPnCcM(P\ D>Ś4gl]e+ 놢 |Z1R)łVbn4- o;-]WQ'{ (/bA7&*0Nd<%LBmp߅<3;Fg jJ_909Pmń|Ԣ}v19vDe%߆<J3jJ% -־(LLըR"hu8"% 3UNnVY2͓r߻;+l3m dRI[qsmu> \&;[(2yy[y_QJ@Z Ǒ(ovg@M_.2?>Q{W==+) 9L 6_iNA5B <tGخmǰaNo7aޤkɟL _Ot r聞D r Dž3R4YNg{Q&W%|\I\mu{?P?c#{k|3{H)%\m2s o[j 9EfvEtޣ{^@VSܗXԑ{86PU3qF-I.v3'FcpS=/spZ :9Yj<Ƒ褶Ώąž5[KF£(Yc]O;_8 ++lD ^!\QfNS-t OmV^$je^"WB0TaVܚšhɟ Fx }z=ݧh EVDKGC<ߡ vr*䷰O'W.0&u36lK7LkԈPg$"tS:{I?48?7/<yD3Y9#(pj# IrWh?n$iU$;P $lYTcs,c@V5X{= `$=DW*|hLG4<@ֺvE= <޼+yjDI jziodmLua*ET`͎uyjn۪X(bt(>hzkGcǦx N|@(*~w_3u߇(v|euη 6FGԉR4l^ _*RSV>hA-*1X]>T}񺠨s@;Dw4]]wI+)&B#;k8q7步%øTvI'Ǭ4)-bjnYiîDXF m9Ićz k tb $P:Q,P;&J0\٬Amfe.CXcxy V0 =0ͻz|Ya׻BzPhv' ]׭%"v=I>Kdl\K2#y/H:ޙD^VW~|2xpwk)j?[vGvBvf` Pʉd=)Vc#8? ̤H-ts]Mbuʼn1cj((!#bJ7˫u0U^=XрO܎ F'Vs> LɾMkuҷ94.j"s+iZ.@`Zȑ[)p8~W(>ZIl]Q3x؋՚,{`+z)jm99' {r*!'=DpA45ԁT{cuDO;t6- fRɸOU};ѩINGM_vF8 eUCx~#S@dAHb ʅB.kŁZ ==BPQxj}x<(k ꆟ,40r:$cW%@D ?hb|gbW:?bLewE_ѝignqlx3q3WGKY!^;mk)_cΞ, YlsJ&TAݰb Bߠg;}Mś]щuz!2'~ӎ0|߶d|7"o0h RзMY  q_ n}=ւYϽ+8kmq |JߚX '~wM5T"0cէ-h 4]"$z(^5LVF"M!YԲ,+@q=Ox 2g7m?d ޴/ Oɧ.w|:Pf: /Hִ5UnAbޅAwlX88Ļ/,I֊u}O@06H ꀽHDι۳4Ȩg}SK=`>@t@EV}'W\>Ao^Z/x>.^@/k(DZtKvP ]L`>hZxXoxf 4f}xoSBA4ۛ$Yb GW2?١F,_F>nՓ}@ByuoKX%)0(+)c6-|iRw +i|*\is,~>3n¢n6Ҭ[,2ʶT80X D]3X$uH~uerJ ]Z9k42 ʔ? ˜2I+`H^@OՁ{I3WGm_BcE,Zys@z~ Ԓ+H$=Jps7 >Xy{&Z'mܫ6{WF#ڒ]& {+ בHWݞ}ٿa}X[S@,;)=+v^gDTi5nw/Vu%>, pPVu*JkKŌ~JFzR3댜m*ǵ1c7|Y;oSK1Ω)J D惸]Dʯ׾PWVFcN!ޗ^?A )sTw R'JTNpzZ7E1D~ v\R~_ך h 系lSc.U[0U217cӰ'1H A ^>f(!8,۩\E ﵞ|jńT멉 1{$,u}0ٞ=(!|F܂;%!|nCDz.|EG"`7!َKp1pN`w)uNdWu>?40NGթ~Y~!$BҚ bDcf= MA#FTaNŷ ҟy77|" pa}4?CqB n¶s򮧑tKQ칄ebLiFwhQ5 "(@T`_q4.Le2W/Ș {?A+GrމBFPFA?oZ4KM pwXwf)Vr ~#;f~x0.|;1WB&5Grq:j+:]oj$|"\oJx{37>]Uj+`Z(@^4w K_ :#s P>oŒsZ5H#OHKfy4~%ػpOj$·Gԭ3|9DPỹLpRQP{j\A\ʶG"­ "7R_;qOJe^x&4- 拓L̿\4x.+hmd̘-`85EĠ;QOƛ O6M\cQ5+r``װr*鉢tё_ʂ.hpθfLalax A7vQcPR:] 5Gk>50G[cݚ&Z=GC|،pBr>kҠϚhHWp*)J0UPٳ\xF]%xs/!}c1:M%_fZ27T%XEڄdGME/OF7WED`Yj'B~GΕ,/W9)8RK>Z`E6諸[|GTͼ)"UQZ?|i8չ'`ݻiy}t-Z#qpVAf.} o,@ЊY')Wٻµ?qiӦfz<1}cj8N7uj #E9wQ sEl,@z=zwzڌw\̔x/CB K 7 8o1\NԌ4ڐO|`m,dVɦlk*'u.'GID_Q»+Y嚓ysX1+/.Tu.J%܍T;Tw]gj7%4LUGPH^bzd '_-@9z6nx,qlX.#y6?\Q]4@@[eYĸ<Gacm8]&;щ''eYSBQϜdޤO٭͠lY0uʯNϕuXHl4hՒ7~}ltmi/nfy=/mfz\^Q?$V䮈 ~=~S|tʙ\p)=hRtB<Iry! H4u/Dn H(Fyy+r|~b )Os3ۉ}DfiʠBJvZSHHj^GMb9ِ#+ECowf#e#u?TK%Kt6!-y@z)/$$m~_8ޒ"1ͫhymW8HQE446t>rDNoݺHz}jy "px}"78g76u=^vB)26=eyWhk=R@!9a9c}2;!亐gKS`a 2Z{ B$Z@N%W*LbܴdS֟>4lS/Y⥢Qˈ >ZwSKhe|Rj#Ўv$[D{PͰ>(_iH%;1c GjKߵNKs'u&\[8,6?-ߴد!,V8(t DL;/ojd"H,Ƒ9X(y"}Fi栾 9`mMAq% MF^/H,߮(r~ӣ Teֈ4WE!'?E *kojxTeNaɬvxHv|ϔe j^2ڪExo A~GYV5Xj鑖s!9}|az!MLՎ8~aXc5R@&S.9'F16wr/hRC߳򁍡{9]L孩LÁEQ{K1z֣ ޼i`>_Koܪ|8 7Aѱqf;nUBAɨG1觷64PxGg$iR߿gvo2a_ݴSf Á;Guӡj.aO-9+5}DObb#A_}'DSERZwL \^υM~~o!-Z`hk V1y(=iې#-|vm܆K^4wBY@#YԇS-'7\:י(+zfa$,3kaUo-1.)lU"zPow;#VJœ=[l?vVbqC&vgDozW)s{ rgE}VQ}BjW 500z䛧i(o2GɎfF2WH#F$L"p~P~Qb袺I<>ٿH@aP1z?ap/`!(dUBtHN<GmcחjG+Gtv+]Q!q/)Y"Ongrޡ_Ǹ>\ʽùr^)+ -S[FuhKq v:c>dx=KlB呶Ej#^hۅ'a6M*"p}]agr'M*԰iC񘫺OljS «ӸC2{/%vaآIX.DPy;Vx}ƍ*AK~gMs:`S?@OI7] mEpwưh.Equ{.]!n}Cџ-RSEg=w9m89du\.-:|ح$X !"h%AhzCVYߎɾ9EshðN[5'>UF!kEpx֎~ U>,ҧe]n1nӾNЄ:뗬%O>Q%WWm# hfhYw̐z| )/8dm>g=}WtvS8䞼R~r4Th&!HݖgBQ&OAfZ fr52220_Vk#9s_X2%&(;>s#kɏrܭU[➖8rsstŌ&o2U[ b˖=ʯ~p{^p?boda/=nCf^r9g !|XJ 6˕Ecv_jKmQwӨiaZx"NP?X%S;LRPaDq nvxڍ1M+u .~m J͜EL=ujώ4Za;]tyGGÍho!;p12! 3:U{el34D hj K76N W`g"n OWwЌ!y~E#7/Ktٷ~2Eַ̻JYF=fuKCSh ;3w!iX 3rђ}endstream endobj 428 0 obj << /Type /Font /Subtype /Type1 /Encoding 809 0 R /FirstChar 16 /LastChar 255 /Widths 816 0 R /BaseFont /LHXIAR+SFRM1000 /FontDescriptor 426 0 R >> endobj 426 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /LHXIAR+SFRM1000 /ItalicAngle 0 /StemV 50 /XHeight 430 /FontBBox [-189 -321 1456 937] /Flags 4 /CharSet (/quotedblleft/quotedblright/endash/fi/exclam/numbersign/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/equal/greater/question/A/B/C/D/E/F/H/I/K/L/N/P/R/S/T/U/X/Z/bracketleft/backslash/bracketright/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceright/afii10071/quotedblbase/guillemotleft.cyr/guillemotright.cyr/afii10017/afii10018/afii10019/afii10020/afii10021/afii10022/afii10025/afii10026/afii10028/afii10029/afii10030/afii10031/afii10032/afii10033/afii10034/afii10035/afii10036/afii10037/afii10038/afii10039/afii10041/afii10046/afii10047/afii10049/afii10065/afii10066/afii10067/afii10068/afii10069/afii10070/afii10072/afii10073/afii10074/afii10075/afii10076/afii10077/afii10078/afii10079/afii10080/afii10081/afii10082/afii10083/afii10084/afii10085/afii10086/afii10087/afii10088/afii10089/afii10090/afii10091/afii10092/afii10093/afii10094/afii10095/afii10096/afii10097) /FontFile 427 0 R >> endobj 816 0 obj [333 333 0 0 0 500 0 0 0 0 0 0 555 0 0 0 0 278 0 833 0 0 0 278 389 389 500 778 278 333 278 500 500 500 500 500 500 500 500 500 500 500 278 278 0 778 778 472 0 750 708 722 764 680 653 0 750 361 0 778 625 0 750 0 680 0 736 555 722 750 0 0 750 0 611 278 500 278 0 778 278 500 555 444 555 444 305 500 555 278 305 528 278 833 555 500 555 528 392 394 389 555 528 722 528 528 444 0 0 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 444 333 555 555 750 708 708 625 778 680 0 611 778 0 778 778 916 778 778 778 680 722 722 750 833 750 0 778 0 0 0 0 708 722 0 778 500 500 500 444 555 444 833 444 555 555 555 555 667 555 500 555 555 444 500 528 778 528 555 555 805 805 611 722 500 444 750 542 ] endobj 423 0 obj << /Length1 727 /Length2 30456 /Length3 532 /Length 31083 /Filter /FlateDecode >> stream xlcpf.vlmc۶m۶Ic۶ϻ:_} ָ5G\kIN,no`LPdfbb01’8Xۉ4LS3  bdin2nctػYX~928 0bj p0YژD%Tj S;S'# @ٔ`f0Z 3ÿع: '*$ aT۹8mjb\+W2_$Xff`ljni/ޤ1] 45'F@%bob:m1S;)l-m<o?|ٙ L@EK(735L?*JW-b]QDS[J\mo=FNV4O)rF.N&5 ӿ7JXÛ@`dpr?pM\L\M?kdjajdobV'V)e'AO+p3OciV QtG0Bkp_ -} qZz~yWT9LԿ[iy0>I,VH}2H65O.I+tT1lcǔ8 Oy~9"]屲hb*0G'El S7 h pvr/cLZ^шB.zD(.%89Mc.` t'W$ n1ƜۛI4׍%CHX$hغsd*b YP|RNVU9n0$列G`pŎVg5mŇ??r1 DɌhvTBRs>-|l3UQF0D%ħ.d \;ttuk#VFڌQq_AGv8.k憷 M$4PP:fF6pr#,& +|YL @""JH3fc+ 'NJC/TP7mEv޿q!(pyo<=qDIvRvJ$r[d@{ĵ?b$lދg B4S3$X|`,& iTrr)=7lѦ;Y ⸌ _ӵ\~ [0_Gv0Tҧ5VFj=n;/S?r5qߏCpʌOeLG ϾU"')[OX"@]`x/aSΣsӶı|K&hW烧o[=जd"(/N/l@v9K}6˿fzͼ*O "OuS (9>H;ڐd>/?%UX> Ł+5v}e{R/yctspؓ ˥m툺Lrx`O'D,%sWeLGٽd>l[fyZo' -)#nG(rG$f[Mש16l`\Ltl5r5z"!`G[zY&*ZaW<nGa :" 7 NZ/?)sϜО*`e2 ^֦GA|j8t,Wx3XXd`5Ε"!RϚ0-Q$~ǦlMĽXM>+Lp}T4TSt;zUYT(~(#|;Wd "L_dw'HQ|İeTfph1lW~(+ANX5E^d!:1T7_}0." Z^ɣ}BYIӦ j8,e4&Z{Ka :C=[FM,WRRίmӱwӘap)[Y6;մфDNcE-z팉'!Gm`$dh[Oi'yEӂl`PŤd]t-7dmp菠B>i j9%*7~QIՌ?(@EaB%p'&ā< O72㨇 4עF&| 8dq1ǩaT/qWW OϹ2 Yٜ2)KC).ѥc+}Cu6JvIÅ"]bH/@߭+A83ێ>)HkMgʤDsnH-cosnZ#4"]ƨdzS8j+ xn.j*66߭L-(uK~DaVf U?7RZF EmY诈3By! :8쪱m}jJP+$㓡!Sc /1x/*fUzo6.=N=SX@W@8$=:tGb hjVBWu f5Jɩָ|>8oI5ny'>?df&z[fAHۂ7&#iu#jѥY6l|1DW;l1=e%%oܟ=*譌LӮIIhhHi|/^3.aB}Prز{kVl6,ʞ~c:;$3WehumN&}8Bu:64!^削 嘈9L>LzEvׂ. †}pat@yaWe\#Nz|NH7 AƣoB3gm3S)k }f3pA?S1؍H<㢿U'J\ہ#oA][62vj>EJPZ{?B'bD#nc?Nd;ԹmXM]jkϚ[dz`]Oo+7 83rwp!UnﹰJ^XGA 컗"]SRý`gEV4&ZG?GH?P狖CF(!cl Lu"YQk#1CfR]Iެ~jZ`RUb t'k+N'^}dY- 无:6q4,B&"2P#=Qee x1OjOʛD<2G PG L>72BWT ِ,Ͽ+.6gm?ӂ-.}3mxq6*$5Iܧا5XYLċjġ]j2븪T=Yz܎1Zkv18{ |qQ@O\19[JܷOrlRET0mMl۳{핬l[@<ShnNy؝4<7AO7p$A÷r}< -L7tTJ)q8'U A(d]~)R<Ёo?{e*K!^0lwАoY(OML!plRR:sV9Q5xxp]zos*ސfF赵 gGoWg&P3K$8.feצji0|ބБʊ@s"J|<4=]X,5qףʺn,e2Ҏ0)F ( UpTK.t|^\%1\QaFt_+l5,SU 'o:8yY9u^˞rn&:w a9s0?8da@󳣫FfOE- au}ahXݠ#j2I )9o=>U(}'UQZ'y%(8%7t[d%ۊֶ˿ϢzKL52; b@8hMw循ʈ elA!gOK"g*jFӁj)(f:#8Xx &2#"#a֯)p-j128}Ɣ'5GK2_~k()8Ca݈Y#g B@ZnOϤ7hrz|&"}qM?LiEsVy}vx9G98UJ'N9X9&vYΞg՗fՅw880ޛ{=#!,u(C *bTךNr,BaWvQsE`ԧX ,#4%R!H.؞hh",Ϧ "2`0TCOaMqƙ&O;ORTsPyW5}3F K]pQ 6c$Z a q+*<=P"j؆T)OBV-Z_Q#SWJ7s(JDsEX|uQ5 {o-W*%?m#!kս[ejLѩl aє(#Ņ$Ȅ۲_g}3]8X *bsZFDmUJ`ƱOn IqH B^IBo;' Ž:*DՀ9c/җsd[d;逷 >PbȟeaCjL)uBc8f=S;p]· |%inBNŶk9\\Z3̗*`prO'q4 l5p߿ #1 ri裑'a]Zx Ւ"X*1*Rl>{Ȃ+AeU!ɽ f~Pkc}A m.䎆xH*Ύ`D֢WVk*ak@~aE <Ѝ+7*e.C1vS8 K P>LMhJl=Sxs3/eJmx1aeX3bٱM=/v %l4_I U<2}KVf=dn@AvI¢.G*v ܢz`X 5c.·`%+<+qĹTGspt4Od2b8Ή]B܁-"/Fel + Gڑ=z}m Gl~>nIGM?״\{ɯ=X~+)#^UÜ?Ze@tp1gsQI(Ê EW#\U8tAwMl7Z3x Pv$[l{1J;sz77Jѐ9`(_} $'=P!*P3%QPe1$]LiycPt0J}3YBVX-mTZwD/U)t7" 9F,L4MwfiO>d|iLV*'K'[aY*8ld.m dDžhPr#rEksmUŃoڌ+tL|2&QYY~ KLsMc i3o1*}hdo5p #0}1:^o$/z~8?㾌9"nx;\뾏gE>Ɋ흚;Ηy S}ll^3M?!QOM7B `PX}:g+p~mƔP%Ȋ*c) <#ȒN 8\pRNrJD\=/Qg2rS"m JWB<#W(8ROp\ru7Aw3DTR8a"S`9]%0pmU< Rh#Y5vخп"&@|os76bşӛqTU+؁C2ME/ 2]ܑ k]+ mX#׃ HFJ߲r_t%aނ CgAsI5Wf7o!~-5{|הomL`]S - HBK6f}E올\W(Rhj*LvH0c2ZB(;z<f*}GA$|Wo/峹# Y>CȨuK*ATϹ:Kf=Xp<;JYqX 4~Rw-<=PI΢ EG)#EB^YRA2X2- Q֭"ޡ>xV?rbڍIQ2X} 9gapGNf/{2yMoi&]rЃ"q%6klIpqLX&Ǭ_' 1[ʽy;uR0.T22{_4|ί|h|c_qSNJQ_ߐ4,|5Զd氙݋áqcݶu׫I kijJzpdZUOx{w.O]$UlDLڑ6!43FDj5 D`utJeP0,{c#y`?.ZCW *!нpj>.+R9"\Uwޥ^MA&щ\%b7Ҧɱ˗Ȫxhqʀ B+d6NAr40JrqŸx\B"~H#!o} wHHy,TQ{hapYfo~u?8H +юR:|/꿩 G@T 5y|PHӕ սu_u@ ScdMD=P?w6ڃ JCw8?8eH/ֹ UW!)i3xIVrRO j>žJ'(7pl ȣ&%T |10}hA(0D3w c(T,lotQV.8o2i%Zрo]vu_O4zk ѿ?2vzز ";É$rNQ=Sڨ&,_թ.7>!QH(3m t!8;=6+߱q1?W;@w>Q8;b%n,y`.F$\Pw ]z͋Gc׊m,$ sAV+dtYw%/&[_?JWmVAegND[/òYM@T=8R>-Q0c_NqSp9rѾ o|KS4Lx3K/3.[0_PB2ڭH6Vw+w0"ӏuDi~^odAfyީ7 ['=t)X&!s?.?Q㶣5 I|Ry 'P*J&f)ߋ|K'1z(cTl&zAF|y:~ڤOtm ";QJu$+z̧u"ivoRJ}V7 @V5TJ[Y }?^,KQu/ `k)gu[0,Zdrνza܌ITpYdy1ӳaTPlO]?x'>򱁶U)1w239Wr>q)![rQ{eIJkʻW5[n`O2%p|α3eqR?0+r(]D9R(e>]Ͻx2P_2aJ} !'s( v.}@F5\Q-sp1~V`L`Pz$r|w13d : "ϩ(,X'#DW2s҈6Nx`bTaycA/Zw_ڐ_+'*T O=N-&^ܔLUGACybARsźTVhH x6g@vn8op=D*B =ӹU='Wp׏Dz| G5G*]&gs4+K.VfBb7[҄3D?`Y'/tcǫyflUCAeKd<>+Z"O NXb!ٴ62YBDGw"+ZeYɋܖvTC]AM`iRу4g*Kw>- SVTHH75W?^(h";䀖_ KGJFýabfb٩-I]Н 2r5j4D$MZǣNlUilƶ4QOb'Ro v]w\_*QU 7 p^فFəqy) } ocr?EAlA;Zuۭح[WaY+˵fAn(` Fjbk5龞{f}J#) v m++AɞdS"?oFZxMSiY0l %˰9`:~慼HڰA~jQ܌l(;6Q{C@8Z獝HjĨ0/?S*,$+Z.M  nhث)\/4,F_Zi$` iO_ /*oi z@kjZ~ՏTJkHBPl6}kv}?n҃,s)a{F'Tk6I}_%\oůaSgyY*15B%$!Ĝbނ5N0^"| H[C,dǎo!,'ZtJb -|e83Z}ܵcԗr!`OuWȖ||,&ӧm d/\`SbO*VHJKy{Ϯ|C qso V(D%i6Tm;;0;0rK&f2b؋˦da)gWUmScd[neONzn ]A28Ol'rN 'ܽ`j-rMG,nDYERqK9qj#BCTuCZ8j4vqwPH;ƶ0onF4 UV&=^y7<_]%6v?ai 8'"F +X#xO*Dp`~N9KwNȫ[} J010M$)A`ZYMX;Rtj* jzP.mHÈ;ZG-x.@A7 <%OAx<6m?_K~:Cѣ#5*`D"9߂,4& Ym[`)0۰p#NDn<|lYP8MbvaSoy儸g Hq2Xpe®V&?oz"hjaQ٠ SGW> dx[UuZ>>mܙ|%dorA%F":e F=Lk6klsvKK~.V~,@J\ UzWWS^hM=&ьCwVF3 -n² ‸ G7,/Lug' b%-jX:mQ8.u~Zyx,pb1em*S{P!Ђ)LZw kDiZP={ٍdoĶGA9fyYKKlqNO0+))^zKL˛`Z2,#!9GQ0ɧߓ=P0X$S֛@EaOH<9~qT5loѿcX {d&8%MW?z#u؃z1f7CyDȠ)F&wQ)5Z>. Z|f|hGciM0^'?!, Fulݥˡtڶ\o5o-v-Oz;x9-D Azm#~ԣ%vTAߗt(g ,?jJJ_ߑ^ҙ7O%Gk>|sn+A-qNdm~}/+ݔ_'q,gYFo]-9d,At O"Dpk:G,!MﯷAkұ_a> >~XЮR9߯mbdԞ=a&2?$K7=C/X-(uXGĬ)#|߻PYF÷  ctbB̕A4 b7!Mr)gw&NEL/j'Ԍv# KWock[8~D_rh!tA a=m1kG:RaQ*w GuKnΐdwp3/Q}v60)/ [l-x@/H5؀R1F-R09y({8=Ylc@a꒏S&fIAl4DG=H' \V AG(Ϲd_jՎKii:ڎ~0}ە@ o9%ɛTN gױS_ʛbW X n[s+O 0Eekۂ#'(u}+4*4}c8/rm;tM5k{6&6]1ˈ"Hc ?o&,|85(#Ї1 +tne&%>񑺢ҥľg)da{T<&\*ƎbVfq(*QjL]IdUN#yL`!CJ^$l&&N=QMi&UbU7' M7`fPgut΁zɂU\}ڡծ;l}̑bsQNDxᑮr d퍫"g[w]:FGKt+q*ӻEsf#J?/Al!G!lhE%vFH-VRl؉Bg.wKŜџ*vwdd*p46!uާ#cf2z},oʋm-2}h=GAW@|Y,Mfo8D ԅK~tЪb=7C aNs-0@W 4Ryy٠_Jna)ꄒrKm1̕e߀s|%BL:̣:?_ B\^z>K rSHjŀݴWNvEbk}9-f]ّ܍WD.^:Ed>ql:]8 di?5=DVvBw~ObWaDy弄z5>–WHeΙ::C1r;qXY3jW+F 'UмO mwnX`^z CRajݮHs_-S7jRq 6 DI+#<lϋ`.@w/)uQDA,k \,/[Pnھ& o}td[s+:^t ]bBnNTU}Dt"" B$X킿ZzY?]LK#˴=eC64=B2&If}Z;cJwYp}!3]qaHG _Bӑ&_\UUjĺfv}-ߦ7`6 655s b)!BFI=<  !=+ò&QawE K>,,g{v,Na{CZ4;|La& $z ;|q`PE:791)\R@ /H9^*Rr}C2nw"_;ݴG;TS@f%2  CHPY{`ޏY!]66Jw]e.e,`>X -iB̺wYؼ : x "qWvg.9 jjG#Ij2Ælew=Xj>GH7'WcZ{w!Pq#Ժ 9=7L;+vDN:wj=azKo`Mp|{[ӈ\5p1!5dḼ2*O\[[WEc|c>wGdw{xLq9%Ņf+>>Sĭ"ҍ ݥ[%04MsuOi=+BnBA+986rb:d)!}u-a*᳕ rmknG PBLKA7.|JMv'd[fIIXB iwOQpK5 _4謥Tc1VgZ߄B-ȓazqKΠpGQw+89L_W7cV%iǖr4 4 8]j10 2Jǝnn>~.?\y_d[Oyre/\lЋ|1p;CLJ6Q_ҶZp_A+a:]t?:]:GiC]R1boަ$ g7|a}SR @~L8jbwh>@&Y VęNm#"OsEW}\v=I3#iƗŷPVV)ᶤ]~8lRon9PU?{G)LgӠ,ک'sӫ'{g\|$ ik@oqa!`>±8*\ܐ:$euїYk&Hy”PX`}äQ:;3԰@0p+;9F uH/kѥz??Fyrdb4Ѝ5w`Egsz oѨY?<51!Tӷh7v:d3ZtZBS*79X*ߙG!,PK3Y2LӆPi9q?@Pl(cwR:@E]^ uZY{<y'M9|$ 3"dE%Bqy$)BIOʱS%ePr7d=P[l?" a؋5]\g^]ұŽ"ݢ%d't(C(qCZFG\ e_ܴLcEo{1Wg%vBE8}:jֈB@yd2k72vϲwp.t.mįX," ԎP+{(Һe~=w9nJI7.WPjr[H]ݥ4RtgW%j!LP6&` O3A/Lv0̭/+cz V]zFz0Q-^XdoY5n@K]%jf;24lQ\RÓCNkȳs"D"G_΄)j;FҁKt8{7x @)7ƚ@ z<+y`$<]W~udj/^b.p0abQ\nt#V\o$yD0b:sM)d?>.tnO -=S^xС0eeZ#A-re05Y_UȲS.@ޘ29S`kMm,\:|C'ϮbHÔaJe9~ņ /Ki0YDPVVJJmj;q.t'Ft\g,Uks-GBL֊Nd*h^[sQ/ a:+3mZ:׈C:iF'an!}33l8A`a.ytLx&jG*1g',s5(d ˈI{D=gK?ץߜn~G*86=!J\ոl&P GE 'o6TmF hCS|>m:?@˲!gs[`  2-ȣh\hkf9AfHn7/+䌏ioE劖Xpw3 oT`SRC I  15x%`bw`GJ**xt^FjXOeܐ˓7g|7BN+DJ$kMjcїw5zZT7x nsGy!L&cf%' r^k.7?EdSUm>^|޵Rf5nHY;KdYA26< Tp}9~Tr5{<yMg!z<֣^u͜hjz`c:P-'&^_ct3/&.JkĨ8woCMH?wFaX&(zL!vԑݷAa\uZ.EN܁@v+%X6PpPZ?M1?b- T_ya.O1{,ٯ 63ʖj6JVv\X7OUsQAMWu60kU?M* sS nk[M Wf̈́^OkL"C7W?Š#(03VG8_q:ҡ М Xr{K@^*"O'1U_P-"h>[w '׎C!`訸[1P;SW%Y՜66ƹ7oG"yV D!9a5wg3{tkZo>YCrJX0!'42<,JBֱ)V8QR|Dݚ_W]~ .g [ˍ\ MHXӢc+a$ՎPOobkuz\-1k*\1|98{JV+iJDJzޢ F ЇZs9+v}z=~q.;QEK 3k>1O Enp`@.' Q_5Mnwwh4H9? )gL8*X|)_ kUkUPX GO* DvzSZT*<+4=$t\y[yoJ=[pZ]!-PzJhz?_Ѻ&]Nyɉ^d:T(gטm>oblU7 7rA!ĉ$LC,c[0h}Sd İ]XB' =a=& ɜ@Y VOmB0%}Z(& >D"F/b#_-9e*5λ%s^;Byq=->5y;=n+k%HU޳'a2^yJĴ$׽0>˭'YUyR)1p}M{5}>*n EɃ^UַJ{'N@Q/J3|EnU3+icTcP}Q&+yC:`Ofh#2Uvr^M}9Y;љVI|SaήWgI;$4Ek`O&VܱSH~Ȅ?K:;J ߋ SJgfA;Bn_ LɌ9ɿ,  NyV +AE1`1&[0f*FeN>5ZAā[ˡ TM7sP~lPqS"NdQ *7NIA>0^Y_e vױ=93xA$j|x;~6:4^t$q}`~<Hb,B ѻ`~(2+:{qLen0]m09]n[(G5-rvӫH";^8t=Es؊LFso)'g]p3bշ A׺VN1sDLl9_6] \IIk.h7Ȯqlk?7hgIo):Lf4Z×gi&B.͍#O'G P|)^_īMA^6cy'ɭB\ș>[~G*5D ئ5ZM2@MO}o:MaN]Wu(}JNb,uv 4 洱 ,pՋ䤆ʦ(7K&FqliԷUtcMu^s|EN FxqKD VC!ȁJbB/C|CȄAp>y8D`̔B.\H;> 7] P_P;-.[cg/>ԸT-?kU3?(b/OiUym:fEWXr&+\ 5&A/h1젥;^`C_KCKzi &Nx8xӧ\yR$-RovwgKpH|v؟dCN,LQ|ߙmm[3@M>b-4\sO@ZRm῕ B'ف2_FA b-cƾX6! S/M$F\{('n[7\(Kq"D~tAxȧ[x+[`@[AG\z`{*;9M l;u]P]⑻3+Muius_֒"t">4o_O%SH% 8?Yu9s}M$6d˜ V^6xXٷIYX%ȱWԬu,uP`,7P6"@>G)WK۱~XNNzBvz>w=-s4y8^,Dʭ$!ԧmKRpzC9$LRҿWOl:ܑ g!u-OߧGE.9]by-BէWM&DySBl9θ*긌{z$ ҷ3b:jv\Kܘ vml&`i {+ߘk\J_zuv {Sfjj !_`6hcŎ=:gsWbF'P0i4]f:Li!rey"CWz9Xle=ܦMT|?{;ͨ ʡD-7K$ê!0^>a' 'Fva5RQ_sZ߹{WB\ T!gޛv6X1`~-Hl>~&r+Y@D/?i ;"#Di U x<`sey@˖т~˟^_c.rTbwd5!}( |ьrdlR?d:Y&*m_F//%qm:vy|zBC~G&3,K?}U'Q:NSt"sIn#U/ (iB` msʐ]Dtd0Nfi>h8 Tijn+`˫ȿؗ[ݶS1^˴KއNY?42qb* ?[ғPNйle7}`2c54Hc6 Hg#M:=NPHBSևL6b/~9}^f7o(q~cu^ նwфAm08mj `&Uơ9A]}lٵ_ 1@s څb}SS<]_>D]d$G;Vqy&QOcJ[ mXW&:gZ2C[r@PL"kNNB%؝Bsr@LgNFP$}L ~yd>TLS YUgU[['BV-:jzfʡyba)&pv^MBUxKؙ? CҌPK|)_rm &/9oi<JBN͸ )d`baѮŽ\~x7 [m:}.^񃊕x|wee0xߌ›]uwE<(y"֐pa$BXZ ѾJ#jT$<hh;c8 <+U*H}i337͖ݯ1-}xDk\Ji0HCR94[.9%S ;Lե.zGl1>ˁڊ$OtWݤC8D~ߏ4 5oWtHPȌtG2IZN>hYE^N`|W**)z_HAVT^Ir2L(߾J$ΐa^k5lulLzfҹ.-neƜ_Իx71FGVWg//po.Ib&c NOGVT@B'ՁvmsQ4墊ENq_YpQ<-J C".`W2#;Q@t <[WL5,g_&kD)!+vZT}`n/D36rH\zEW+QL􍖫IFjTIc'ڧŪODW"r:ՇQ83+rF'=/h/@ўXFI:{yae7!)Ej -.q b᧦\cB_Uq`,R%ݚQIfΏ-䡍Jc4{[d=Nn EN$mQPUE>aj V.0g[sn EkUW?}e4>l3Vq"I,|Vyq1hϙ5ihS,Ca? ojnY0dZ}CR7tqQ"ETwAwAAIBzi7]hҬr&x&֚ֆ2<RB[Lؚ`hX)) YD\ⵥ },/7k6Xd^D>S2\&8T}~^ǻQ6Us,3Ԅ|/*Ao^n|HOGN)нo!L2sTY;5UFDgmvMqS<.l̿) DotJx][ t۩j$Ā}-6IŵP[h@ͽ?EP TIS FŬDKz A'$"׽ׇ&$`2Cѝ4Ð}P|V8aȶjÓ ьUyoC$X~`oˣ\}qiL!/H K0N%8\k1 D+XE q)S3F>$Qqz3iŮN7}>|IE )r#^8~$6cPLR y5Jd'GVMK/h:uȎGs~sjQwHzS`w}tu%i.$QM\U'yN_FjDЪiu3ʐS~ݍ-@ PҭUCcoGA{' TWye>%l. +w+l|!d%g ͏tUbݼZ|?ujh9or-H%O`waW.>e ٚ4X1o T=ndZBhq@pHS>oC>܏u$#b2eP]#K׏,LV٧Q \m"\ѝ*zC)xhVb7ljJb.|H jAO5Vs[A6ԈvӼmK> endobj 422 0 obj << /Ascent 694 /CapHeight 686 /Descent -194 /FontName /CXZIFX+SFBX1000 /ItalicAngle 0 /StemV 50 /XHeight 444 /FontBBox [-229 -316 1737 939] /Flags 4 /CharSet (/fi/exclam/parenleft/parenright/comma/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/A/D/E/I/N/S/T/bracketleft/bracketright/underscore/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/guillemotleft.cyr/guillemotright.cyr/afii10019/afii10021/afii10030/afii10032/afii10065/afii10066/afii10067/afii10069/afii10070/afii10072/afii10073/afii10074/afii10075/afii10076/afii10077/afii10078/afii10079/afii10080/afii10082/afii10083/afii10084/afii10085/afii10088/afii10089/afii10091/afii10092/afii10094) /FontFile 423 0 R >> endobj 817 0 obj [639 0 0 0 0 350 0 0 0 0 0 0 447 447 0 0 319 0 319 575 575 575 575 575 575 575 575 575 575 575 319 0 0 0 0 0 0 869 0 0 882 755 0 0 0 436 0 0 0 0 900 0 0 0 0 639 800 0 0 0 0 0 0 319 0 319 0 894 0 559 639 511 639 527 351 575 639 319 0 607 319 958 639 575 639 607 473 454 447 639 607 830 607 607 511 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 639 639 0 0 818 0 901 0 0 0 0 0 0 0 1091 0 864 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 559 575 575 0 639 527 958 511 639 639 639 639 766 639 575 0 639 511 544 607 0 0 639 639 0 941 687 0 575 ] endobj 418 0 obj << /Length1 727 /Length2 15466 /Length3 532 /Length 16076 /Filter /FlateDecode >> stream xSf.7mfm۶m۪mWڶmO뻎^fpgQnZ9LcgT49a,07J6{.@s;3˸WKj*C$SE8'ʟ%=ĭ]XzC?u֯#10t$lK_ש+8@I'_⽓pI nD(9bfb{uRypz%hղ5)lO U6"~n5;W7i Zl8s U:`b VItv.&!.%vIyo)S/ȦZ+)}[, \EmT6+B8qo ej&5/&8\֥EYvuhKev=OOإǶML N>g8hڵ74kdR8xy,-g!#9qqfXrջ;jA rvvĜ7YBaK>i\kn\2)Sㄏ R3gC(vxUɴ@%/{JHBKSncS j)SwJtd'Hg)v}\nE޼dÑ5thc r.gW?s-I`Z,/"/!,}L|нn"-)x}H~zrfr~\lOяPiv{wnj .>o QsU ZWIJ]$zGog&% S`f&w{0t9o| #FyP?U\I^tdr';M{nQG˼f/faS[LFꕬ@S}:5ra 3f9K Wz47O:3tv(@P^omτוV~|˵!_E7+:*ћSؑ Au]T$LY+gY}s+Wb6g@PT4^GZ$hQa8Lth߆5 \Vv,-IMX᯲oa&+?$ ?;k(I'SD wifPljE)/.dQMf!^ UΏܧXMҎziEB0!vMѕvC |* G)`Zr ;_+\a>9}ȠrT0+m2hp4Xoʛ#\tvYIi)Veuy.X߻ǭ f˄QBuyK˹q&_DGCIbAAssҼK3\^"ůM#ۥsW,2?.osEƊ ߟ`Ȃ:@?زϣ6ԑNC t6F0 v+Oot|ZMqWx8ޜ ]L/Nޘ9Op-h]v /ͲSRXr;\QK Rb%ާ 6@2iKBz}_9ZL _ 3*O`d&o`]HS?Ws*]7ưGw͠Pc3BB#G{o p7*>k(Ҽ)r#]}-XRrDu?b'KiDZRJaJ닾9z Ce%)) kɧ\^:O=9i"|gB&󼾟~oh*1ŋw:\X7wDHijE_ԯIPwyUƺ%01307m3evfzi療Fa bY;I7t> WoAe(p|/II{wR$6y.ʌ\=}yYC$t+h$Ȱxcy쌘7i8B,:X7(QWg(F 7mၛ+N{tGٻ:h͸:__؃iuMiA6Y`u$F5F*~]GZo aEe(sfKNv\}9fάհ'd/<΀MW(_sE}T%Õ=DҠHF>DryG+jDHUb-_|dNJ(.;z[k2=Qo8^ޜ^l\>tQM]_ P^_HKNY_Sk#{RlrNPz75׬gz%kT;M<浐pڨ}G^44Àӹ/#ԯ50?tH~vQiSJ !gދ/}]Ll;OnT(Ƹ6wu $;ǟW -G5,ͺ|ҲV,,W y~>< RK)fk,u1xtH*85̳̑T}'TZVA) "y߆< _RG*hGFy_~M^ˏsSH>w;>Ok5IV#OڸmTr+sUA:v Wm0<eYw['^fODŽP\.t Iw=)*@xx 2^"ME|ȶ(?0msr܈633_^"F >(ܟ-,Izr+A@Li.Q輏DJsJ QhU_laCJko+ծQοD{ P\Nғ0K_QA4-$fU^rFPўRH}Eҋti7cJrHk$I8z! =^,ngw"atCVS'=d&rq+٪~iQnZ l".JÊ QQl60GEwr .޻KO f^+-6lr|u݂ LvjmKs!c!cG=C[Fݎ!SI1zL`Z쒙@2kIN"}>s\a#^+rgSbm}RF{PR̝`j.hLuڇIVK3adYا;wizLdnԚ yE /[.=vw,!US{fb y`.Hl *["\i1s\aͷ6B./(&U-νvMK6afGG_ * wMq0iA°-d37ۡ[ԓP}(VrPQf\$HiwmЪC#Gm7hhȦ8D$i<. K5CF ,܎kn~ }X=;N,/ xo@ޠfI-LEy*2aRSufnjmU- {:c*~x5 9^W5qyaO8%(3zEh?$&65Y6XȲelAU)= O\>VF'DJ \^NE)B[AHqN ӅuBI/n lU`d86ZaBy5d 6.$:$v9 2]WhͷxYg9;I"p _RHC[Jz%dJ`㘶.2*-v.U9i$[\zc࿑etҥ˱%,qr6*"_#vo Wr8y|w}j4sq/{jD2{bUe>s },bgۗ#zO4}m`JBaf`UhG6dDmYG펺Lq HƑH ‘%lsrkFJR0և/Ve!ٵ[>n[q(f𬖾9+VK+ fpFLFױMdԻ&t99nV):^4eGw3ЕD8U(HBU~|rFۚ"PrJy4mL!|> Fj[BC biXO+D9@Fq|XI,`aG NEǚgA 87dR^= M%kܫlcbU"@ ȑOMgCiIkd7*uR_)Ԍ CgrɋKj RhmM=Y@T_P^f( va!y),GQZ@ݭkyu;|bvQF_)9ğ Zexa#?uF% *5 *7p T6ALlKvS[^,~vi^fd__'s!nDcmC~AYZP>ҥ/6Q9q$_NAܸ YBAsٍ+HFiljH.Xm,s*P-{Nx}Z tx\A;^IߙC/fE+,/.`ي?Ԫ)R.!xa\Q~=s >.C-_ܑX8Y|b^R Yȉ;NJId^pP+i)d}jrAw8EǵVU68.9"^a(M;GS9:%g#UJV)Lm@Nu e#,鹛VGmIAvPql JQW5jja&8'Jb>ț?Hh i_Fzfmk`)V_7d(|17X"&6250m Ypi K֛t#,rgPДj=Q<ү *:ۮ~-w0o_Ġn58t{lyi^Kߟ72 ywY|ﺶ}_-pZspx/2Ξnj1g`P4J s,/gڪ@DCvicbjiW 2;?;Y+Qd!SEYKBjfɽHdvIo(́vAT+h@ބWjŏ%˞>d 'TWtr,AՆ˳EFp7i\i#e#)*5ɏ؀v0q2z,y9kgk>t$ 1 YwISu/ ^_0OܨUc/BRgxQzS09:M)7v+D;mf򇄹ZKKpqyf~KX?[R 1#Ƽ, k::<$;K.`}]YGL<54 N-M2vX7b2VNyB_%xj(Sf'o8!.5($_P:~7("(*&7*FqQ[ݑtWaZp**ךK!=R)Ֆ"ڑ#Ol0VKҾSènq X(*xp?ev(Xm2S함i&P. n[cZ}^0:F <-BCCAJui?^4m-#dXafM`O S*<`}˦?va~7d iۛZ3"Ztm>=NWXw/dc8G@OR6|?4k0F8c,~4f4WAG*i ~ {2q}U|ƅnVnOT Gc7{Y'b^$j̸#w\)U }OB s'(BԗId.nXVZ;Φ}' C5%7K7>$p_UD8W&F {`p45%9fk}Oqe*hs?fdnZnO3Or1&+D3lXO5B;>4 .uIMJD}4(@s߹71G .Mk)dO4KΘb:".nCѯ A_'II{4d"JHʔt:55p.jؿ9R[3+kIj DQNН (N$j>.i`'UiJlklO> y% .*IJ!3wkh4e|?_܀Z0 TѧEʮ!f‘ 7bT X3*k@走҇7^Nv{j#ͬ=HKƝz™ϜV,}!AbmIٟ #s7˯ j`ђMlԉؚLSU9p6W8}_Ϸ62PC"sȅi~>5]#-O01=&]@J:^hKao RJt͝38WZwx Y: =mj \,BUF}wC0U@+ Qk stZ Ly1HD~xVFCg&wwcvqRJ_bi6?׎S5=@Br)(O{C@w(aW~4"~!9$3 a)*bxz7k;8{o]٢ rlh4雑O x*FWzJB u"$" N@|M;!dF>5}JZtn0EP[:8O|<_hO:'[$k(ڨxfo(,_&l0z_,$mcNsͨt~I*<2-#"Vw J)D-)_n^[)ng@p3պ!M-֧TmӶS ^yʨbA7d؜xO(G嗒` ,`|NM#!a^S9)VHry:Nt/zXD/T${r- ..ڽ=b2Y\rz*EZї; @=)ZI.?aU ,cQN t G{X]̢vH w6`/s7)8yG? &>2Љ!. J'~ǃkXgd*kPxrαzڏfeM/NwXiwWKCn8CٮYkٰ3N2k ;Nې^Ycuf'|Y LRBuZ5 :}{*XՑ<ЎPy߆b춶: 'ݷ=ڝQ 9:f8t$ttS__[%@F${xjIYpqkG\&hV+ؠEϯ_ d7siJz '՜JQK16`e&%12LA}DP/{ejG9:߱Ϊ,[M :x60 VI#0~kҹ>Ot.JVW,at-~<7&0lpxs"n/]#:'f#OSR9F9,лFmEELW%3dL!r!np 0!cѝmXұ[3SXP7BKRzI`KPz+_ԑ|}8k{IQ=ԕM۞LtaZU#Y-$l4LlJ BH5  ZK-dm͔t 6Z7lz!-ޠq3iIX5͢6mٯJ&T Zz>&rx؞f9;'\y(]Qp@4)gpx7ώ: ̥-f) Z>0̡͍gx2Wĭ,E K*-jf=NS)5EhӯYH$LFMn R׏ř8/:VKv7<%:`5fqg?8 wv^;$1$OE2^w{wP[#zlzٚ?7"VĆpvWMEےV< lT{qļy%װ3܅@vt4F&Nl7Bgq"嘬7tm_KNseZOPvITWRI.Y|+&'O'#It\͞}eNKvn'pJ!= ax+̈́駙 cLю@E"c 4ɳCα^)F)‘)w E}1@wMFz-cv5V뀵"t,$K %G=sQm H@F5䷈ MTǜPU^#;aRAۼkKS8G&4c)gq=]mN|KM6vk=I#u:5kU!Gq1M65r:s>Q a2-K\x_[ Ιs Ѱ1G=qGy5+8.3<Zȶ1l 0k[`= *l'zlTׯԥ5F ;#4_( om1x?m:<&n~h'_O"R=ji?M괿7=i "JAE#1HYJPZs ~*a{{#ը.0>ȎWt $#aj@ @{S9d!Qڍi_ % ?o%I6!U¬ϖ#LN46dDQ˼|6ԍi; \g[L.ث`/@| SzS (08w1Sl]g^n>GGgTy` 4>fvTUP{_%'pu 1xȩvkc*u]U'!Pa̲K H£\L!1f;*u͌N9-ȰN+"񳭵KUJ+Ⱥr 1Z +V>ߝ~dCF-ī 4 \mb3pu \)"Wm1HL)7Ǵm[w s @]нnBf-E&U<>S#h!rV;<~şK|OgKC{֗O*T dFkJ#IbY%R}'NPb ,7P;d/=QCSmLS9u Cgt: B4߄DžGkG\ !v6sΞ +̈́[Vz%+#V&?u=E0hd:v/1"&_SBPe|&iwTUm3z9o@d3Ot&=0%rXzDT,|Ys!U|5]_>\|.~}dNklȐ>nkj&{B97"sM~`?ΰܪ^]C4@\otH/V7BzM䶤^hRfR0T+kI1V> endobj 417 0 obj << /Ascent 694 /CapHeight 686 /Descent -194 /FontName /LLQYBB+SFBX1440 /ItalicAngle 0 /StemV 50 /XHeight 444 /FontBBox [-218 -316 1652 915] /Flags 4 /CharSet (/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/afii10030/afii10032/afii10065/afii10067/afii10068/afii10069/afii10070/afii10074/afii10077/afii10079/afii10080/afii10085/afii10094) /FontFile 418 0 R >> endobj 818 0 obj [550 611 489 611 500 336 550 611 305 0 580 305 916 611 550 611 580 446 434 428 611 580 794 580 580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1043 0 826 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 550 0 550 474 611 500 0 0 611 0 0 611 0 611 550 0 0 0 0 580 0 0 0 0 0 0 0 0 550 ] endobj 415 0 obj << /Length1 721 /Length2 10469 /Length3 532 /Length 11076 /Filter /FlateDecode >> stream xeP]-Lpgmnww`aww,Kpw$79[owUj1GZMM.`fgfgajH+؀l,`W+ 6j _;25Pbi 3'Բ51AZ3+0A`0 ؂*r2@:O@=fj 1*B.`z3/N.,w;%f`TVQJIjJḾۻE͜U-Z:{bAfgC\`K=2tpr;l_B.jH4[E*؁tvn`g9`gbr&uۿCi'\Wj ۿ{_7;z%ς: ڌmRf{K_-M'jw |%Wg'3˿ڃ_,waf2s؀?| AlkO#`3%3Pְ J8ƙ)OK'{>cB̍/o5 =PILϷn[(L1KO%/j ZvfʰW7+ YNeB21 ?e h2~wk3V_ /MEvVCQ +um-3_ux[Մ>D$Xb `;{(ߑX4;1wh+=EHsYw1Otŋ;@(=Ep߾W(ҒE{,#!YU EVMt'MNz E:ij6^l19uM]tZ3s9saKOeu; mҎ#ŭWm2yHj@XFtuU֑;cVqpseqD{PW8 쐚y)a9z-27uyV u@=pѝ-Q:߲&7h]+0'!c]IMߚbtp?=Tm!B5 ID|BL]P8q+-\d%Wx[ykGʉlcbt'rYH.V@c8ؠ|w?5$΁NJJC\0}?77ݚL_FƵ^ϳ;4(]ⲭnT//BcՃ?4}]aKwAՁ`'g6FÇ:6+N ٝspFZHuA%|j=* (.Xc  6˦y*PǬYO [b@ay#jn!TeOS.p]V/JS 9t$Dbf-<">Ŏ֛ɹO.ΆыPra?@eq7;_oKϋhp5|髸s~]@""# LٔBQYv}ZCpMTu^{ce[2B`ܚ#U5P HFab}҅`|QG@^6c+~'`Rm-8,>u\V6~H8D8~8 u,}m|Hy8R5'.D%'vϨf mv. $3w;ÎnX\XG%ޡRy0׈銐?Z,Eѥ鵜ZIgmTVU;b3؊q/XyQj+I9jpWِ_*K,)rqM%(2Y )/>T⸀H2[CV3JtF8ɂI~79p:FY*ˀ c~R"JDSc9|$FrmG<*x[kGh$1*dHR0!/8WKLGZL/:-\3HGUMIzbJ,D>|:!J-L,&8+[B%$IzS#&NZ`{L=g%ݘcu੡W r _?zGTM<ӽ+v;fN2X;X`9% >]ې@ØM)ϐȈt UĺgDl$aMQ/T& ;{tֈvRA,9N+}ZP&~rCN]TӷWwxSs!Ef(5|udoZA>߸I,avl*%I]HX2vdp:Ѳxt/V0z~9BvB"Aѽr+(&$6N?~Dl0낳dg`#dw$.)^'F\֛q!Asڨ9GF,9w‚D1X&4} :dZ6Ér=%(PQ)F T}P^V~㵼/ϡ',HqYܬDᒌQQsQD&Rx3@f>P|gB%|(On K97] ͩI|+nIqVDyuY+{UM{+v{UώOy5ΰX3ɗNY%mP}J*V;_`tЄ(f R;ߨI`N xT)ۖpFIm0eDsC__+tʏY ч?LU]#)`M~cG3ڛy'-鄾os _ :[at CI*-'_|#:j*6"R5&Ҕ'b3/ϫ K'PVg`Bcɶ1A;t̥qX䨦fֶ 3Bl6׾XbJj&sK1 7*vbMT|itPyQE <>FzC>8k.PQmkODmq$ 0s ]JAܯ6lL?NJ+bj=!A4@:IYbi^=i{v~vV 1F֏-K'kn][$tZlFݼJE[h;Rt,ջVQ iCx:pt (Wv͘IDm*Sޥ Wەiulj %,)?zh9yꉙ!2-cVOejJ#R#"al&ͻg,6Yk}-Yd>ߊiI:*l7,]:,rrC^z giɻjiх3z* mbX^4 $BŰLr+82唡jMT~&['vSGf S-k,%3jkC6ofFUFxc󮻁?:%Oěiq'ZNhct,RcJ~MXL|o\Z};[@ CFB=f{FeΏi'<:CG q#ً%EV+jm+䏦.Z9dҨ']Tvx,m}[?&\rWGe$iBRl=Z=(Fg8BZs<ă9p+M/%h#HybsُmԽa2xKXٽ' KJ9A_[\pɬW4١qʈ~ތij[& )DߨSc.EIe1ŁN x2 aܓ} Aج|X켰Z_V?P_U^;53\,BUQcC&se`Fd0)u^a0 oT}οV3Fg|N:4c24Xl$-9,nƭVn<;s=n55gve=c"+5R5|ү~OsAhX*PRFok^DUiD%V("4V _}r6?Hek>R9 *ӃX$XGkw |Qҟ1h ?{ Ih;?Γ`AĊ=*ar&clLbGy vo\xWw*P;ss/ʋ!;(IԺ+L;X.3άk?:i~e/B`'>gP(}ٚ:\E$*>6໢o&]C^ ^~.>{Iv;+)a^k^% `UIk`J~kX`#4ߖ߄<ت_Çۥ}< j e؊B*>p{J(gs6ZnM{aB~:f[#< L2@`7Cnx=MXޖnq2;ۣKd0Li(MΟ$Mv(xr 9~4| p#E7q+}fGR70ENRĖkXrL0A'bٍ[C]0Rz~Wyy*լRXS+i ʢot+z1YQwœb4ҴⶋKv%T$ S1( STУ(N)z&u̲|OpJ#Y-}ƾq{G#'e'\}zZ@$FxMFKkalBiGS㳮wPGg;vfJ@,5,_wVooiUF- 4ԷzS z4 g}i(AcZ^N؈B\gB=w PtP"Y#~|~C`q c}L@7e܆'e-o2!T:8;O0JbplR 6s]l^ Qe8w5m|CvcT-.UD #qw5azf N.qX:V Nig(t%ghgz P]?0u/]_/k_OPnNt1vC AmӾu RMD WcS6?ӗ3|ʥH`VXUum)Q2t|(tmM*bz*ҫ6|< +̖>𛮡 \Ɗ3D h=s̜;Di{0?n)JekMY!LG+[91vQ=;A-창n]QY/4Vqϥ&u/#l bXb1lP;F7B&" I~=NޏrCcs $}Ϫpͪ9lD '@>Derl&YÎ>vLB>K|RqݡHڹ|'擵Y_яIA`8 ΘFTkxXP}p&7 OX.vE{0~Li#&,i&ShxĠdR]END y}QHȾs&zh N>E'pT!Lr yı:scbR@? H5lvݜ;.facV8GM;Yg`2䖿gY g(({G$G@ hn5M$g$/f0Tc g쾁N#Sa^:Éɝ3u "G xxY]~)]tTCe*{ ΋R-0i/]()͒gTGB#^}R%sUޞ0<.Q=5som_gms O-N*Q݆&fh3inL3< bqƿkz `Ua1 HJK U*u<`v!R9|z56f'K̟%rcSv:0 pa:CNZ$(Ȳ)U&6trozoNl4GSp_@(A+Ac;b=tn,G4O$8E6[lL}[<0ZXZSj`CU >5941ge +'hXJY4 zs,Ӊ t>x:>B%icHZ $ i}QrKl^#p#k&>-NT 5AddAҽ]qekԉӆ*! m\d]dq?OsدGGD<Ǎ$鋟sJy.p…33wk&+`%5Ot^v+j~N4gSZeO>pWfjWK4 Ho|S<M MBs)x&[g{zy} U?&ރ.Ӂ ?u$MQT$+ZS)+\\Ma0>8;v#AoA&56*Ot7Z$v8~J%߻Ξ ,xp яS,4J!TG*wRW=Z;;6q~ %8آ:LqS1GOm BGGJ 2BWqxz7s(tju'})@2xv"1D9r[OK>b D`C/c|m.=.V|%vQ{f19|Y89oz>Z#4q\gQ\'fAt([;(62G|8fwϥdWo=|~f9fZZ0oŲGk=(=֗\h^z^[i[@D@\O#>]i'oյǜ7H?-@G*tzQI We&'oS<1 ㈴_$Ճ3Gj1-gxeĆWά$~ 1esTKA.nv3p*&rbwə<.7zW eGh!x +.7iAǞXxӓ9yctNKig"Z {3yWeW; ֔zT)ŚЪ:ɤ978!%D )VbED{B;#unilQ0yCa&Mi"Uj%URx?E+WG084{ȯ|>F26KFw DKsq74V.8RB$ %ѣ \Y1B)nGiʍKmtnF{HG^I-D_6y\G{[fzF[3/>Ҧ>_[ЏF}bn(yzc>BZU.2wI6WP5ag?lοL<Ŭ>pdg %%:hfWwNv䦯:Ϲ;҅ӴŠE P.Mo7 a𷛶2(MYۘ_֥_Tur4C&+B:(^yM( '#tyqfD:\h{c3`AX"&?Mf[l v@*jYx&\p"{DHHB}Az] 5%MTFTٔ9l7͗IhX~,9_# L:3R! 7/i<2oןFN}0\s+" {W6۰ Rȯ N64No= 146SY {0@ !` 7%ION5,!yæ&e{Z# 𱈦bWIDR)=3}Z`%B>#wHsHI! 9$gW=m[ډ!A|]f7׺|S*MjF^eDG=PM ö5AjB9^K;"c Mq[yԣ"_/^gEI_GVxf"80ܾyJ!s6.QaCMMhrMbB-)Kyx \ 驎.3ܣHe?!aO)9uWN,B@cGXf\uqjDPK7K/K]-zL2Ԏ:w0H⍶ibJ**iy@dۧFid'2Gn\vv{"3s~/yꭍUԦOlET(z1i٠N"I^M MΏ]g}6IƎLk,9J-+2'qRæ5^L3|#D7{.o1>q/CMGAWnS=s$I%N$\8|D=oe䗫 \K1:R37~vݞ_n g CycGǙ5 g, QS6dy0ZkRN휆RڂEs}'}C=)9a[4t7WG8. ՟v{ .%Tj%ΜBhꗗ*mf6[%{M._((_;O\Zenqڻ6J8.tE%gM1%7S4c{ H~34iaͦQTE"Pn oqj;p1PiP6K+^}b[H5:xD/3N"غ]ʟ9  BrU{;;ɦX?mGiA_1-endstream endobj 416 0 obj << /Type /Font /Subtype /Type1 /Encoding 809 0 R /FirstChar 46 /LastChar 55 /Widths 819 0 R /BaseFont /XTKHYW+SFRM1200 /FontDescriptor 414 0 R >> endobj 414 0 obj << /Ascent 689 /CapHeight 689 /Descent -194 /FontName /XTKHYW+SFRM1200 /ItalicAngle 0 /StemV 50 /XHeight 430 /FontBBox [-185 -320 1420 942] /Flags 4 /CharSet (/period/zero/one/two/three/five/seven) /FontFile 415 0 R >> endobj 819 0 obj [272 0 489 489 489 489 0 489 0 489 ] endobj 412 0 obj << /Length1 721 /Length2 4243 /Length3 532 /Length 4850 /Filter /FlateDecode >> stream xVgTSۺ&J6 J HQ @B $i{SzA4H^sco?_Zs5[LX#^ FAd `cn Q`<LqD `B(o"ȁF1@ H݉"`uFb0c\U~ :d( EZ}]@\¡XŸFW% OqH_|A Q 17 0_cjrk^qHHdGU9A\ ^N a\H"# 1DeM~NO4(kĵ^~D0#Q`rr`GܿD'ʁ0: OvsƞHns/($)xj@Xmoj=fLO-,l+Cʍ$5e>:ieot8rK-MioR?Q|T&qqAZeYўVb;/a꾼+;5}:Vr}_}ؽTԱ-.9hZ>Gԑ(K.;^{V76"l4C>=hH_O*oVۊ%OWtXM8+Oj<)!{:+^OYQ-( 폲:cJ.SXҬ0 rLgs,@C{$A[^J R=[| Ttq5F6S$ƴXovwxoOwPJ+dm@5;wڧu*љ1z^Ps3&3j+ r~j[MQP |qI5=<57i}-k:/W[ԷDV7Pռ>Azp:xTR`LDKa{ȎQey'WJX:$pmH"cshxav4郪QUmۂ3W=QP;=V$/eMDﭱ}ѻr0$,̦Q@i{`Ӂ{و+e*:E[6aIt3V}Gm[b~򭈢k+CʡKbBiuh$Ai5/$=~_*}4˫Mgu A)jϑv/qݓױq$ðOG)?ZnL|;3j7}spl!+CrMw73A =xsS b́y>nbVI-w}!E]R 8sU]kP-k"x )=&ɥ~Ǧ&grz&>hc@~v::D \@7btoXj5JVp}vy"1]J LUhѠ/~nb%q{ qŅ/ow irڨD$GSVdtds?^LY|,"ō\[Os`xK[秶,怼V€B2[\,Υjw0@*bj0k08ҥrX\EEx`ΓZnIu`at _bgM?k:7!QQ>% BVapC}PQeP׌59ӐʄPוo-T ˠ #պn 5w by ͗K.)^ݶ:*@fIF2fޟx51|7wôT0_j89'ҢLc6o,nU:*_6i19iZ5W~<D% KkX>]T_q9_}% ̟u!rŜ])^UnwCF]}n&{7tkdc!V:Eg okKx VPsf0Ttt\oo3p(`:(;=dwG랊9GP n$,xPMIlpMI_)'i;&[T@u*pj4PըulƓw?28¥8砤8?*i6 >w&-ȟ⋹}Ө/W8GHwߛ J 0^jNHfڸc7ݯNFnܘlf Ao ~Y۫Gȩ]sM$zƟ_/x{n'DG,+V%;I9]%,a_Za m:eԗz̹JϘ4 ~)Ywl P8Pt VXz0md#ޮ|ߴrj2ߴ)tHnqhZp C%s >5 &r|մx%eil иm\sEQ)mo,6~xfJ$d(V%UrI"`h.g\iDzH5Xc ׯM_RWTR.dμ-5~^\1x,o 2w$zN%qy>u޶``)%εgUh'ߗfb]!|y=~N4{$v㱰\%<+IȹH:.t\l&ݻͳNU[ic$-?K-/<>&)Pj:yAtGj Sd'A2sICr˩o + k^Es13 +@u]̟☃>Re%y7P88llz"(G{t&I:mD @V|Yw  ^ꃏ̴/nٌ[;4auaP9cUg~ P)x⒔Zľ7)Eס\jsh[F?aY7$g)_)/fnU\:+T?laI[v|3ژ6ˤ]̷LU?CEV>%|~.׌&FZ"F}݇"% z_~GZaZ9T/o^\1j$ܒh/6[#y"xoڸ$Iq}$M|x A3 |?hROإJIR]FY'IlmT /T1˰O]DvaQ:wOX?PA5i.n/mspVq]_-L:f/x眺ZK^X  H F͏=id.H;nG.xw֩T'tezAYJMߚ!*N%U_&hڥY;|~x ,xr0v- (O2IV y~Oe?bȌ73͑dB4,! {nʃ*Ǻdea:h|L[ک$ZG ]sG~8)WUڈ{mZnU!.<)2bqg(W G| v c%bT2MtiHghүC7±ܙfUW}ľ=(4捪7xʴ7LӣxU>;s9 oHzh#=<.'U'Rd$o$5wB>ri|؁5H NK7A788`;oͺ܏2$7[›nJ+Vrtj=NgQ9Tnx[шETt.2Bmo_r?E~0ٸ{#XB,\TqRT}i#-FY/bW,ʙ@{9<zendstream endobj 413 0 obj << /Type /Font /Subtype /Type1 /Encoding 809 0 R /FirstChar 65 /LastChar 243 /Widths 820 0 R /BaseFont /GXPKEA+SFRM1728 /FontDescriptor 411 0 R >> endobj 411 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /GXPKEA+SFRM1728 /ItalicAngle 0 /StemV 50 /XHeight 430 /FontBBox [-174 -318 1347 949] /Flags 4 /CharSet (/A/D/E/I/N/S/T/afii10030/afii10069/afii10074/afii10077/afii10080/afii10085) /FontFile 412 0 R >> endobj 820 0 obj [704 0 0 718 639 0 0 0 339 0 0 0 0 704 0 0 0 0 522 679 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 861 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 522 0 0 0 522 0 0 522 0 0 470 0 0 0 0 496 ] endobj 445 0 obj << /Type /Pages /Count 6 /Parent 821 0 R /Kids [406 0 R 447 0 R 482 0 R 513 0 R 541 0 R 552 0 R] >> endobj 566 0 obj << /Type /Pages /Count 6 /Parent 821 0 R /Kids [559 0 R 568 0 R 575 0 R 579 0 R 585 0 R 589 0 R] >> endobj 596 0 obj << /Type /Pages /Count 6 /Parent 821 0 R /Kids [593 0 R 598 0 R 605 0 R 609 0 R 613 0 R 618 0 R] >> endobj 626 0 obj << /Type /Pages /Count 6 /Parent 821 0 R /Kids [623 0 R 628 0 R 635 0 R 639 0 R 643 0 R 647 0 R] >> endobj 654 0 obj << /Type /Pages /Count 6 /Parent 821 0 R /Kids [651 0 R 656 0 R 661 0 R 665 0 R 669 0 R 673 0 R] >> endobj 680 0 obj << /Type /Pages /Count 6 /Parent 821 0 R /Kids [677 0 R 682 0 R 687 0 R 691 0 R 695 0 R 700 0 R] >> endobj 708 0 obj << /Type /Pages /Count 6 /Parent 822 0 R /Kids [705 0 R 710 0 R 714 0 R 718 0 R 722 0 R 726 0 R] >> endobj 735 0 obj << /Type /Pages /Count 6 /Parent 822 0 R /Kids [730 0 R 737 0 R 742 0 R 747 0 R 753 0 R 758 0 R] >> endobj 765 0 obj << /Type /Pages /Count 6 /Parent 822 0 R /Kids [762 0 R 767 0 R 772 0 R 777 0 R 782 0 R 789 0 R] >> endobj 799 0 obj << /Type /Pages /Count 3 /Parent 822 0 R /Kids [794 0 R 801 0 R 806 0 R] >> endobj 821 0 obj << /Type /Pages /Count 36 /Parent 823 0 R /Kids [445 0 R 566 0 R 596 0 R 626 0 R 654 0 R 680 0 R] >> endobj 822 0 obj << /Type /Pages /Count 21 /Parent 823 0 R /Kids [708 0 R 735 0 R 765 0 R 799 0 R] >> endobj 823 0 obj << /Type /Pages /Count 57 /Kids [821 0 R 822 0 R] >> endobj 824 0 obj << /Type /Outlines /First 7 0 R /Last 395 0 R /Count 25 >> endobj 403 0 obj << /Title 404 0 R /A 401 0 R /Parent 395 0 R /Prev 399 0 R >> endobj 399 0 obj << /Title 400 0 R /A 397 0 R /Parent 395 0 R /Next 403 0 R >> endobj 395 0 obj << /Title 396 0 R /A 393 0 R /Parent 824 0 R /Prev 383 0 R /First 399 0 R /Last 403 0 R /Count -2 >> endobj 391 0 obj << /Title 392 0 R /A 389 0 R /Parent 383 0 R /Prev 387 0 R >> endobj 387 0 obj << /Title 388 0 R /A 385 0 R /Parent 383 0 R /Next 391 0 R >> endobj 383 0 obj << /Title 384 0 R /A 381 0 R /Parent 824 0 R /Prev 371 0 R /Next 395 0 R /First 387 0 R /Last 391 0 R /Count -2 >> endobj 379 0 obj << /Title 380 0 R /A 377 0 R /Parent 371 0 R /Prev 375 0 R >> endobj 375 0 obj << /Title 376 0 R /A 373 0 R /Parent 371 0 R /Next 379 0 R >> endobj 371 0 obj << /Title 372 0 R /A 369 0 R /Parent 824 0 R /Prev 359 0 R /Next 383 0 R /First 375 0 R /Last 379 0 R /Count -2 >> endobj 367 0 obj << /Title 368 0 R /A 365 0 R /Parent 359 0 R /Prev 363 0 R >> endobj 363 0 obj << /Title 364 0 R /A 361 0 R /Parent 359 0 R /Next 367 0 R >> endobj 359 0 obj << /Title 360 0 R /A 357 0 R /Parent 824 0 R /Prev 347 0 R /Next 371 0 R /First 363 0 R /Last 367 0 R /Count -2 >> endobj 355 0 obj << /Title 356 0 R /A 353 0 R /Parent 347 0 R /Prev 351 0 R >> endobj 351 0 obj << /Title 352 0 R /A 349 0 R /Parent 347 0 R /Next 355 0 R >> endobj 347 0 obj << /Title 348 0 R /A 345 0 R /Parent 824 0 R /Prev 335 0 R /Next 359 0 R /First 351 0 R /Last 355 0 R /Count -2 >> endobj 343 0 obj << /Title 344 0 R /A 341 0 R /Parent 335 0 R /Prev 339 0 R >> endobj 339 0 obj << /Title 340 0 R /A 337 0 R /Parent 335 0 R /Next 343 0 R >> endobj 335 0 obj << /Title 336 0 R /A 333 0 R /Parent 824 0 R /Prev 323 0 R /Next 347 0 R /First 339 0 R /Last 343 0 R /Count -2 >> endobj 331 0 obj << /Title 332 0 R /A 329 0 R /Parent 323 0 R /Prev 327 0 R >> endobj 327 0 obj << /Title 328 0 R /A 325 0 R /Parent 323 0 R /Next 331 0 R >> endobj 323 0 obj << /Title 324 0 R /A 321 0 R /Parent 824 0 R /Prev 311 0 R /Next 335 0 R /First 327 0 R /Last 331 0 R /Count -2 >> endobj 319 0 obj << /Title 320 0 R /A 317 0 R /Parent 311 0 R /Prev 315 0 R >> endobj 315 0 obj << /Title 316 0 R /A 313 0 R /Parent 311 0 R /Next 319 0 R >> endobj 311 0 obj << /Title 312 0 R /A 309 0 R /Parent 824 0 R /Prev 299 0 R /Next 323 0 R /First 315 0 R /Last 319 0 R /Count -2 >> endobj 307 0 obj << /Title 308 0 R /A 305 0 R /Parent 299 0 R /Prev 303 0 R >> endobj 303 0 obj << /Title 304 0 R /A 301 0 R /Parent 299 0 R /Next 307 0 R >> endobj 299 0 obj << /Title 300 0 R /A 297 0 R /Parent 824 0 R /Prev 287 0 R /Next 311 0 R /First 303 0 R /Last 307 0 R /Count -2 >> endobj 295 0 obj << /Title 296 0 R /A 293 0 R /Parent 287 0 R /Prev 291 0 R >> endobj 291 0 obj << /Title 292 0 R /A 289 0 R /Parent 287 0 R /Next 295 0 R >> endobj 287 0 obj << /Title 288 0 R /A 285 0 R /Parent 824 0 R /Prev 275 0 R /Next 299 0 R /First 291 0 R /Last 295 0 R /Count -2 >> endobj 283 0 obj << /Title 284 0 R /A 281 0 R /Parent 275 0 R /Prev 279 0 R >> endobj 279 0 obj << /Title 280 0 R /A 277 0 R /Parent 275 0 R /Next 283 0 R >> endobj 275 0 obj << /Title 276 0 R /A 273 0 R /Parent 824 0 R /Prev 263 0 R /Next 287 0 R /First 279 0 R /Last 283 0 R /Count -2 >> endobj 271 0 obj << /Title 272 0 R /A 269 0 R /Parent 263 0 R /Prev 267 0 R >> endobj 267 0 obj << /Title 268 0 R /A 265 0 R /Parent 263 0 R /Next 271 0 R >> endobj 263 0 obj << /Title 264 0 R /A 261 0 R /Parent 824 0 R /Prev 251 0 R /Next 275 0 R /First 267 0 R /Last 271 0 R /Count -2 >> endobj 259 0 obj << /Title 260 0 R /A 257 0 R /Parent 251 0 R /Prev 255 0 R >> endobj 255 0 obj << /Title 256 0 R /A 253 0 R /Parent 251 0 R /Next 259 0 R >> endobj 251 0 obj << /Title 252 0 R /A 249 0 R /Parent 824 0 R /Prev 239 0 R /Next 263 0 R /First 255 0 R /Last 259 0 R /Count -2 >> endobj 247 0 obj << /Title 248 0 R /A 245 0 R /Parent 239 0 R /Prev 243 0 R >> endobj 243 0 obj << /Title 244 0 R /A 241 0 R /Parent 239 0 R /Next 247 0 R >> endobj 239 0 obj << /Title 240 0 R /A 237 0 R /Parent 824 0 R /Prev 227 0 R /Next 251 0 R /First 243 0 R /Last 247 0 R /Count -2 >> endobj 235 0 obj << /Title 236 0 R /A 233 0 R /Parent 227 0 R /Prev 231 0 R >> endobj 231 0 obj << /Title 232 0 R /A 229 0 R /Parent 227 0 R /Next 235 0 R >> endobj 227 0 obj << /Title 228 0 R /A 225 0 R /Parent 824 0 R /Prev 215 0 R /Next 239 0 R /First 231 0 R /Last 235 0 R /Count -2 >> endobj 223 0 obj << /Title 224 0 R /A 221 0 R /Parent 215 0 R /Prev 219 0 R >> endobj 219 0 obj << /Title 220 0 R /A 217 0 R /Parent 215 0 R /Next 223 0 R >> endobj 215 0 obj << /Title 216 0 R /A 213 0 R /Parent 824 0 R /Prev 203 0 R /Next 227 0 R /First 219 0 R /Last 223 0 R /Count -2 >> endobj 211 0 obj << /Title 212 0 R /A 209 0 R /Parent 203 0 R /Prev 207 0 R >> endobj 207 0 obj << /Title 208 0 R /A 205 0 R /Parent 203 0 R /Next 211 0 R >> endobj 203 0 obj << /Title 204 0 R /A 201 0 R /Parent 824 0 R /Prev 91 0 R /Next 215 0 R /First 207 0 R /Last 211 0 R /Count -2 >> endobj 199 0 obj << /Title 200 0 R /A 197 0 R /Parent 195 0 R >> endobj 195 0 obj << /Title 196 0 R /A 193 0 R /Parent 91 0 R /Prev 95 0 R /First 199 0 R /Last 199 0 R /Count -1 >> endobj 191 0 obj << /Title 192 0 R /A 189 0 R /Parent 95 0 R /Prev 187 0 R >> endobj 187 0 obj << /Title 188 0 R /A 185 0 R /Parent 95 0 R /Prev 183 0 R /Next 191 0 R >> endobj 183 0 obj << /Title 184 0 R /A 181 0 R /Parent 95 0 R /Prev 179 0 R /Next 187 0 R >> endobj 179 0 obj << /Title 180 0 R /A 177 0 R /Parent 95 0 R /Prev 175 0 R /Next 183 0 R >> endobj 175 0 obj << /Title 176 0 R /A 173 0 R /Parent 95 0 R /Prev 171 0 R /Next 179 0 R >> endobj 171 0 obj << /Title 172 0 R /A 169 0 R /Parent 95 0 R /Prev 167 0 R /Next 175 0 R >> endobj 167 0 obj << /Title 168 0 R /A 165 0 R /Parent 95 0 R /Prev 163 0 R /Next 171 0 R >> endobj 163 0 obj << /Title 164 0 R /A 161 0 R /Parent 95 0 R /Prev 159 0 R /Next 167 0 R >> endobj 159 0 obj << /Title 160 0 R /A 157 0 R /Parent 95 0 R /Prev 155 0 R /Next 163 0 R >> endobj 155 0 obj << /Title 156 0 R /A 153 0 R /Parent 95 0 R /Prev 151 0 R /Next 159 0 R >> endobj 151 0 obj << /Title 152 0 R /A 149 0 R /Parent 95 0 R /Prev 147 0 R /Next 155 0 R >> endobj 147 0 obj << /Title 148 0 R /A 145 0 R /Parent 95 0 R /Prev 143 0 R /Next 151 0 R >> endobj 143 0 obj << /Title 144 0 R /A 141 0 R /Parent 95 0 R /Prev 139 0 R /Next 147 0 R >> endobj 139 0 obj << /Title 140 0 R /A 137 0 R /Parent 95 0 R /Prev 135 0 R /Next 143 0 R >> endobj 135 0 obj << /Title 136 0 R /A 133 0 R /Parent 95 0 R /Prev 131 0 R /Next 139 0 R >> endobj 131 0 obj << /Title 132 0 R /A 129 0 R /Parent 95 0 R /Prev 127 0 R /Next 135 0 R >> endobj 127 0 obj << /Title 128 0 R /A 125 0 R /Parent 95 0 R /Prev 123 0 R /Next 131 0 R >> endobj 123 0 obj << /Title 124 0 R /A 121 0 R /Parent 95 0 R /Prev 119 0 R /Next 127 0 R >> endobj 119 0 obj << /Title 120 0 R /A 117 0 R /Parent 95 0 R /Prev 115 0 R /Next 123 0 R >> endobj 115 0 obj << /Title 116 0 R /A 113 0 R /Parent 95 0 R /Prev 111 0 R /Next 119 0 R >> endobj 111 0 obj << /Title 112 0 R /A 109 0 R /Parent 95 0 R /Prev 107 0 R /Next 115 0 R >> endobj 107 0 obj << /Title 108 0 R /A 105 0 R /Parent 95 0 R /Prev 103 0 R /Next 111 0 R >> endobj 103 0 obj << /Title 104 0 R /A 101 0 R /Parent 95 0 R /Prev 99 0 R /Next 107 0 R >> endobj 99 0 obj << /Title 100 0 R /A 97 0 R /Parent 95 0 R /Next 103 0 R >> endobj 95 0 obj << /Title 96 0 R /A 93 0 R /Parent 91 0 R /Next 195 0 R /First 99 0 R /Last 191 0 R /Count -24 >> endobj 91 0 obj << /Title 92 0 R /A 89 0 R /Parent 824 0 R /Prev 79 0 R /Next 203 0 R /First 95 0 R /Last 195 0 R /Count -2 >> endobj 87 0 obj << /Title 88 0 R /A 85 0 R /Parent 79 0 R /Prev 83 0 R >> endobj 83 0 obj << /Title 84 0 R /A 81 0 R /Parent 79 0 R /Next 87 0 R >> endobj 79 0 obj << /Title 80 0 R /A 77 0 R /Parent 824 0 R /Prev 67 0 R /Next 91 0 R /First 83 0 R /Last 87 0 R /Count -2 >> endobj 75 0 obj << /Title 76 0 R /A 73 0 R /Parent 67 0 R /Prev 71 0 R >> endobj 71 0 obj << /Title 72 0 R /A 69 0 R /Parent 67 0 R /Next 75 0 R >> endobj 67 0 obj << /Title 68 0 R /A 65 0 R /Parent 824 0 R /Prev 55 0 R /Next 79 0 R /First 71 0 R /Last 75 0 R /Count -2 >> endobj 63 0 obj << /Title 64 0 R /A 61 0 R /Parent 55 0 R /Prev 59 0 R >> endobj 59 0 obj << /Title 60 0 R /A 57 0 R /Parent 55 0 R /Next 63 0 R >> endobj 55 0 obj << /Title 56 0 R /A 53 0 R /Parent 824 0 R /Prev 43 0 R /Next 67 0 R /First 59 0 R /Last 63 0 R /Count -2 >> endobj 51 0 obj << /Title 52 0 R /A 49 0 R /Parent 43 0 R /Prev 47 0 R >> endobj 47 0 obj << /Title 48 0 R /A 45 0 R /Parent 43 0 R /Next 51 0 R >> endobj 43 0 obj << /Title 44 0 R /A 41 0 R /Parent 824 0 R /Prev 31 0 R /Next 55 0 R /First 47 0 R /Last 51 0 R /Count -2 >> endobj 39 0 obj << /Title 40 0 R /A 37 0 R /Parent 31 0 R /Prev 35 0 R >> endobj 35 0 obj << /Title 36 0 R /A 33 0 R /Parent 31 0 R /Next 39 0 R >> endobj 31 0 obj << /Title 32 0 R /A 29 0 R /Parent 824 0 R /Prev 19 0 R /Next 43 0 R /First 35 0 R /Last 39 0 R /Count -2 >> endobj 27 0 obj << /Title 28 0 R /A 25 0 R /Parent 19 0 R /Prev 23 0 R >> endobj 23 0 obj << /Title 24 0 R /A 21 0 R /Parent 19 0 R /Next 27 0 R >> endobj 19 0 obj << /Title 20 0 R /A 17 0 R /Parent 824 0 R /Prev 7 0 R /Next 31 0 R /First 23 0 R /Last 27 0 R /Count -2 >> endobj 15 0 obj << /Title 16 0 R /A 13 0 R /Parent 7 0 R /Prev 11 0 R >> endobj 11 0 obj << /Title 12 0 R /A 9 0 R /Parent 7 0 R /Next 15 0 R >> endobj 7 0 obj << /Title 8 0 R /A 5 0 R /Parent 824 0 R /Next 19 0 R /First 11 0 R /Last 15 0 R /Count -2 >> endobj 825 0 obj << /Names [(Doc-Start) 410 0 R (page.1) 409 0 R (page.10) 581 0 R (page.11) 587 0 R (page.12) 591 0 R (page.13) 595 0 R (page.14) 600 0 R (page.15) 607 0 R (page.16) 611 0 R (page.17) 615 0 R (page.18) 620 0 R (page.19) 625 0 R (page.2) 449 0 R (page.20) 630 0 R (page.21) 637 0 R (page.22) 641 0 R (page.23) 645 0 R (page.24) 649 0 R (page.25) 653 0 R (page.26) 658 0 R (page.27) 663 0 R (page.28) 667 0 R (page.29) 671 0 R (page.3) 484 0 R (page.30) 675 0 R (page.31) 679 0 R (page.32) 684 0 R (page.33) 689 0 R (page.34) 693 0 R (page.35) 697 0 R (page.36) 702 0 R (page.37) 707 0 R (page.38) 712 0 R (page.39) 716 0 R (page.4) 515 0 R (page.40) 720 0 R (page.41) 724 0 R (page.42) 728 0 R (page.43) 732 0 R (page.44) 739 0 R (page.45) 744 0 R (page.46) 749 0 R (page.47) 755 0 R (page.48) 760 0 R (page.49) 764 0 R (page.5) 543 0 R (page.50) 769 0 R (page.51) 774 0 R (page.52) 779 0 R (page.53) 784 0 R (page.54) 791 0 R (page.55) 796 0 R (page.56) 803 0 R (page.57) 808 0 R (page.6) 554 0 R (page.7) 561 0 R (page.8) 570 0 R (page.9) 577 0 R (section*.1) 420 0 R (section*.10) 38 0 R (section*.100) 398 0 R (section*.101) 402 0 R (section*.11) 42 0 R (section*.12) 46 0 R (section*.13) 50 0 R (section*.14) 54 0 R (section*.15) 58 0 R (section*.16) 62 0 R (section*.17) 66 0 R (section*.18) 70 0 R (section*.19) 74 0 R (section*.2) 6 0 R (section*.20) 78 0 R (section*.21) 82 0 R (section*.22) 86 0 R (section*.23) 90 0 R (section*.24) 94 0 R (section*.25) 98 0 R (section*.26) 102 0 R (section*.27) 106 0 R (section*.28) 110 0 R (section*.29) 114 0 R (section*.3) 10 0 R (section*.30) 118 0 R (section*.31) 122 0 R (section*.32) 126 0 R (section*.33) 130 0 R (section*.34) 134 0 R (section*.35) 138 0 R (section*.36) 142 0 R (section*.37) 146 0 R (section*.38) 150 0 R (section*.39) 154 0 R (section*.4) 14 0 R (section*.40) 158 0 R (section*.41) 162 0 R (section*.42) 166 0 R (section*.43) 170 0 R (section*.44) 174 0 R (section*.45) 178 0 R (section*.46) 182 0 R (section*.47) 186 0 R (section*.48) 190 0 R (section*.49) 194 0 R (section*.5) 18 0 R (section*.50) 198 0 R (section*.51) 202 0 R (section*.52) 206 0 R (section*.53) 210 0 R (section*.54) 214 0 R (section*.55) 218 0 R (section*.56) 222 0 R (section*.57) 226 0 R (section*.58) 230 0 R (section*.59) 234 0 R (section*.6) 22 0 R (section*.60) 238 0 R (section*.61) 242 0 R (section*.62) 246 0 R (section*.63) 250 0 R (section*.64) 254 0 R (section*.65) 258 0 R (section*.66) 262 0 R (section*.67) 266 0 R (section*.68) 270 0 R (section*.69) 274 0 R (section*.7) 26 0 R (section*.70) 278 0 R (section*.71) 282 0 R (section*.72) 286 0 R (section*.73) 290 0 R (section*.74) 294 0 R (section*.75) 298 0 R (section*.76) 302 0 R (section*.77) 306 0 R (section*.78) 310 0 R (section*.79) 314 0 R (section*.8) 30 0 R (section*.80) 318 0 R (section*.81) 322 0 R (section*.82) 326 0 R (section*.83) 330 0 R (section*.84) 334 0 R (section*.85) 338 0 R (section*.86) 342 0 R (section*.87) 346 0 R (section*.88) 350 0 R (section*.89) 354 0 R (section*.9) 34 0 R (section*.90) 358 0 R (section*.91) 362 0 R (section*.92) 366 0 R (section*.93) 370 0 R (section*.94) 374 0 R (section*.95) 378 0 R (section*.96) 382 0 R (section*.97) 386 0 R (section*.98) 390 0 R (section*.99) 394 0 R (table.1) 603 0 R (table.2) 685 0 R (table.3) 751 0 R (table.4) 792 0 R] /Limits [(Doc-Start) (table.4)] >> endobj 826 0 obj << /Kids [825 0 R] >> endobj 827 0 obj << /Dests 826 0 R >> endobj 828 0 obj << /Type /Catalog /Pages 823 0 R /Outlines 824 0 R /Names 827 0 R /PageMode /UseOutlines /OpenAction 405 0 R >> endobj 829 0 obj << /Author(\376\377)/Title(\376\377\000r\000u\000:\000g\000a\000m\000e\000d\000e\000v\000:\000m\000o\000d\000u\000l\000e\000s\000:\000c\000l\000i\000c\000k)/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords() /CreationDate (D:20130527102706+04'00') /PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4) >> endobj xref 0 830 0000000001 65535 f 0000000002 00000 f 0000000003 00000 f 0000000004 00000 f 0000000000 00000 f 0000000009 00000 n 0000047382 00000 n 0000479492 00000 n 0000000055 00000 n 0000000162 00000 n 0000047443 00000 n 0000479420 00000 n 0000000208 00000 n 0000000299 00000 n 0000051530 00000 n 0000479347 00000 n 0000000346 00000 n 0000000541 00000 n 0000054831 00000 n 0000479223 00000 n 0000000588 00000 n 0000000701 00000 n 0000054893 00000 n 0000479149 00000 n 0000000748 00000 n 0000000839 00000 n 0000059750 00000 n 0000479075 00000 n 0000000886 00000 n 0000001081 00000 n 0000067294 00000 n 0000478950 00000 n 0000001128 00000 n 0000001246 00000 n 0000067356 00000 n 0000478876 00000 n 0000001293 00000 n 0000001384 00000 n 0000067418 00000 n 0000478802 00000 n 0000001432 00000 n 0000001627 00000 n 0000083780 00000 n 0000478677 00000 n 0000001675 00000 n 0000001773 00000 n 0000083842 00000 n 0000478603 00000 n 0000001821 00000 n 0000001912 00000 n 0000089933 00000 n 0000478529 00000 n 0000001960 00000 n 0000002155 00000 n 0000092145 00000 n 0000478404 00000 n 0000002203 00000 n 0000002311 00000 n 0000092207 00000 n 0000478330 00000 n 0000002359 00000 n 0000002450 00000 n 0000095955 00000 n 0000478256 00000 n 0000002498 00000 n 0000002693 00000 n 0000096017 00000 n 0000478131 00000 n 0000002741 00000 n 0000002849 00000 n 0000099129 00000 n 0000478057 00000 n 0000002897 00000 n 0000002988 00000 n 0000099191 00000 n 0000477983 00000 n 0000003036 00000 n 0000003231 00000 n 0000102230 00000 n 0000477858 00000 n 0000003279 00000 n 0000003382 00000 n 0000102292 00000 n 0000477784 00000 n 0000003430 00000 n 0000003521 00000 n 0000102354 00000 n 0000477710 00000 n 0000003569 00000 n 0000003764 00000 n 0000105575 00000 n 0000477583 00000 n 0000003812 00000 n 0000003930 00000 n 0000107241 00000 n 0000477469 00000 n 0000003978 00000 n 0000004069 00000 n 0000107303 00000 n 0000477393 00000 n 0000004117 00000 n 0000004264 00000 n 0000107365 00000 n 0000477302 00000 n 0000004313 00000 n 0000004502 00000 n 0000107428 00000 n 0000477210 00000 n 0000004551 00000 n 0000004670 00000 n 0000107491 00000 n 0000477118 00000 n 0000004719 00000 n 0000004833 00000 n 0000107554 00000 n 0000477026 00000 n 0000004882 00000 n 0000004991 00000 n 0000107617 00000 n 0000476934 00000 n 0000005040 00000 n 0000005225 00000 n 0000107680 00000 n 0000476842 00000 n 0000005274 00000 n 0000005454 00000 n 0000109230 00000 n 0000476750 00000 n 0000005503 00000 n 0000005650 00000 n 0000109293 00000 n 0000476658 00000 n 0000005699 00000 n 0000005856 00000 n 0000109356 00000 n 0000476566 00000 n 0000005905 00000 n 0000006062 00000 n 0000109419 00000 n 0000476474 00000 n 0000006111 00000 n 0000006220 00000 n 0000109482 00000 n 0000476382 00000 n 0000006269 00000 n 0000006487 00000 n 0000109545 00000 n 0000476290 00000 n 0000006536 00000 n 0000006751 00000 n 0000109608 00000 n 0000476198 00000 n 0000006800 00000 n 0000007028 00000 n 0000109671 00000 n 0000476106 00000 n 0000007077 00000 n 0000007191 00000 n 0000109734 00000 n 0000476014 00000 n 0000007240 00000 n 0000007420 00000 n 0000111348 00000 n 0000475922 00000 n 0000007469 00000 n 0000007833 00000 n 0000111411 00000 n 0000475830 00000 n 0000007882 00000 n 0000008154 00000 n 0000111474 00000 n 0000475738 00000 n 0000008203 00000 n 0000008567 00000 n 0000111537 00000 n 0000475646 00000 n 0000008616 00000 n 0000008995 00000 n 0000111600 00000 n 0000475554 00000 n 0000009044 00000 n 0000009316 00000 n 0000111663 00000 n 0000475462 00000 n 0000009365 00000 n 0000009599 00000 n 0000111726 00000 n 0000475370 00000 n 0000009648 00000 n 0000009879 00000 n 0000111789 00000 n 0000475292 00000 n 0000009928 00000 n 0000010083 00000 n 0000111852 00000 n 0000475176 00000 n 0000010132 00000 n 0000010328 00000 n 0000115792 00000 n 0000475111 00000 n 0000010377 00000 n 0000010549 00000 n 0000128360 00000 n 0000474980 00000 n 0000010598 00000 n 0000010707 00000 n 0000131455 00000 n 0000474901 00000 n 0000010756 00000 n 0000010848 00000 n 0000131518 00000 n 0000474822 00000 n 0000010897 00000 n 0000011093 00000 n 0000134453 00000 n 0000474690 00000 n 0000011142 00000 n 0000011251 00000 n 0000134516 00000 n 0000474611 00000 n 0000011300 00000 n 0000011392 00000 n 0000134579 00000 n 0000474532 00000 n 0000011441 00000 n 0000011637 00000 n 0000138009 00000 n 0000474400 00000 n 0000011686 00000 n 0000011810 00000 n 0000140665 00000 n 0000474321 00000 n 0000011859 00000 n 0000011951 00000 n 0000144686 00000 n 0000474242 00000 n 0000012000 00000 n 0000012196 00000 n 0000151441 00000 n 0000474110 00000 n 0000012245 00000 n 0000012354 00000 n 0000151504 00000 n 0000474031 00000 n 0000012403 00000 n 0000012495 00000 n 0000151567 00000 n 0000473952 00000 n 0000012544 00000 n 0000012740 00000 n 0000154829 00000 n 0000473820 00000 n 0000012789 00000 n 0000012903 00000 n 0000157500 00000 n 0000473741 00000 n 0000012952 00000 n 0000013044 00000 n 0000157563 00000 n 0000473662 00000 n 0000013093 00000 n 0000013289 00000 n 0000157625 00000 n 0000473530 00000 n 0000013338 00000 n 0000013467 00000 n 0000157688 00000 n 0000473451 00000 n 0000013516 00000 n 0000013608 00000 n 0000170505 00000 n 0000473372 00000 n 0000013657 00000 n 0000013853 00000 n 0000179251 00000 n 0000473240 00000 n 0000013902 00000 n 0000014006 00000 n 0000181572 00000 n 0000473161 00000 n 0000014055 00000 n 0000014147 00000 n 0000181635 00000 n 0000473082 00000 n 0000014196 00000 n 0000014392 00000 n 0000181698 00000 n 0000472950 00000 n 0000014441 00000 n 0000014560 00000 n 0000181761 00000 n 0000472871 00000 n 0000014609 00000 n 0000014701 00000 n 0000184377 00000 n 0000472792 00000 n 0000014750 00000 n 0000014946 00000 n 0000184440 00000 n 0000472660 00000 n 0000014995 00000 n 0000015099 00000 n 0000184503 00000 n 0000472581 00000 n 0000015148 00000 n 0000015240 00000 n 0000184566 00000 n 0000472502 00000 n 0000015289 00000 n 0000015485 00000 n 0000188449 00000 n 0000472370 00000 n 0000015534 00000 n 0000015648 00000 n 0000191504 00000 n 0000472291 00000 n 0000015697 00000 n 0000015789 00000 n 0000191630 00000 n 0000472212 00000 n 0000015838 00000 n 0000016034 00000 n 0000196315 00000 n 0000472080 00000 n 0000016083 00000 n 0000016192 00000 n 0000196378 00000 n 0000472001 00000 n 0000016241 00000 n 0000016333 00000 n 0000199700 00000 n 0000471922 00000 n 0000016382 00000 n 0000016578 00000 n 0000202712 00000 n 0000471790 00000 n 0000016627 00000 n 0000016756 00000 n 0000202775 00000 n 0000471711 00000 n 0000016805 00000 n 0000016897 00000 n 0000202838 00000 n 0000471632 00000 n 0000016946 00000 n 0000017142 00000 n 0000205113 00000 n 0000471500 00000 n 0000017191 00000 n 0000017290 00000 n 0000205176 00000 n 0000471421 00000 n 0000017339 00000 n 0000017431 00000 n 0000205239 00000 n 0000471342 00000 n 0000017480 00000 n 0000017676 00000 n 0000205302 00000 n 0000471210 00000 n 0000017725 00000 n 0000017844 00000 n 0000208061 00000 n 0000471131 00000 n 0000017893 00000 n 0000017985 00000 n 0000208124 00000 n 0000471052 00000 n 0000018034 00000 n 0000018230 00000 n 0000211116 00000 n 0000470920 00000 n 0000018279 00000 n 0000018403 00000 n 0000211179 00000 n 0000470841 00000 n 0000018452 00000 n 0000018544 00000 n 0000211242 00000 n 0000470762 00000 n 0000018593 00000 n 0000018789 00000 n 0000214821 00000 n 0000470630 00000 n 0000018838 00000 n 0000018962 00000 n 0000217579 00000 n 0000470551 00000 n 0000019011 00000 n 0000019103 00000 n 0000217705 00000 n 0000470472 00000 n 0000019152 00000 n 0000019348 00000 n 0000221168 00000 n 0000470354 00000 n 0000019397 00000 n 0000019506 00000 n 0000225188 00000 n 0000470275 00000 n 0000019556 00000 n 0000019648 00000 n 0000225251 00000 n 0000470196 00000 n 0000019698 00000 n 0000019894 00000 n 0000021290 00000 n 0000024561 00000 n 0000019946 00000 n 0000024373 00000 n 0000024436 00000 n 0000468007 00000 n 0000462873 00000 n 0000467843 00000 n 0000462583 00000 n 0000451223 00000 n 0000462420 00000 n 0000450439 00000 n 0000434078 00000 n 0000450275 00000 n 0000024498 00000 n 0000021558 00000 n 0000432731 00000 n 0000401363 00000 n 0000432567 00000 n 0000021714 00000 n 0000399393 00000 n 0000361526 00000 n 0000399229 00000 n 0000021870 00000 n 0000022026 00000 n 0000022182 00000 n 0000022338 00000 n 0000022494 00000 n 0000022650 00000 n 0000022806 00000 n 0000022963 00000 n 0000023120 00000 n 0000023277 00000 n 0000023434 00000 n 0000023590 00000 n 0000023745 00000 n 0000023902 00000 n 0000024059 00000 n 0000024216 00000 n 0000468684 00000 n 0000032447 00000 n 0000027132 00000 n 0000024685 00000 n 0000032384 00000 n 0000027504 00000 n 0000027660 00000 n 0000027816 00000 n 0000027973 00000 n 0000028130 00000 n 0000028287 00000 n 0000028445 00000 n 0000028603 00000 n 0000028761 00000 n 0000028917 00000 n 0000029075 00000 n 0000029233 00000 n 0000029391 00000 n 0000029546 00000 n 0000029704 00000 n 0000029861 00000 n 0000030019 00000 n 0000030177 00000 n 0000030335 00000 n 0000030492 00000 n 0000030649 00000 n 0000030807 00000 n 0000030965 00000 n 0000031123 00000 n 0000031281 00000 n 0000031439 00000 n 0000031596 00000 n 0000031754 00000 n 0000031911 00000 n 0000032069 00000 n 0000032226 00000 n 0000038771 00000 n 0000034135 00000 n 0000032532 00000 n 0000038708 00000 n 0000034475 00000 n 0000034631 00000 n 0000034787 00000 n 0000034944 00000 n 0000035101 00000 n 0000035258 00000 n 0000035415 00000 n 0000035572 00000 n 0000035729 00000 n 0000035885 00000 n 0000036042 00000 n 0000036199 00000 n 0000036356 00000 n 0000036513 00000 n 0000036670 00000 n 0000036827 00000 n 0000036984 00000 n 0000037140 00000 n 0000037297 00000 n 0000037454 00000 n 0000037611 00000 n 0000037767 00000 n 0000037924 00000 n 0000038081 00000 n 0000038238 00000 n 0000038395 00000 n 0000038551 00000 n 0000044465 00000 n 0000040325 00000 n 0000038856 00000 n 0000044402 00000 n 0000040641 00000 n 0000040798 00000 n 0000040954 00000 n 0000041111 00000 n 0000041267 00000 n 0000041424 00000 n 0000041581 00000 n 0000041738 00000 n 0000041895 00000 n 0000042051 00000 n 0000042206 00000 n 0000042362 00000 n 0000042519 00000 n 0000042676 00000 n 0000042833 00000 n 0000042989 00000 n 0000043146 00000 n 0000043302 00000 n 0000043459 00000 n 0000043616 00000 n 0000043773 00000 n 0000043930 00000 n 0000044087 00000 n 0000044245 00000 n 0000047505 00000 n 0000046997 00000 n 0000044550 00000 n 0000047319 00000 n 0000359516 00000 n 0000304264 00000 n 0000359352 00000 n 0000303741 00000 n 0000295524 00000 n 0000303576 00000 n 0000047129 00000 n 0000051592 00000 n 0000051355 00000 n 0000047629 00000 n 0000051467 00000 n 0000294189 00000 n 0000262819 00000 n 0000294025 00000 n 0000054955 00000 n 0000054428 00000 n 0000051703 00000 n 0000054768 00000 n 0000262500 00000 n 0000255173 00000 n 0000262339 00000 n 0000054560 00000 n 0000468801 00000 n 0000059812 00000 n 0000058976 00000 n 0000055092 00000 n 0000059687 00000 n 0000059124 00000 n 0000059311 00000 n 0000059498 00000 n 0000064456 00000 n 0000064281 00000 n 0000059936 00000 n 0000064393 00000 n 0000067479 00000 n 0000066695 00000 n 0000064554 00000 n 0000067231 00000 n 0000066835 00000 n 0000067044 00000 n 0000071939 00000 n 0000071764 00000 n 0000067629 00000 n 0000071876 00000 n 0000076260 00000 n 0000076085 00000 n 0000072037 00000 n 0000076197 00000 n 0000080619 00000 n 0000080444 00000 n 0000076358 00000 n 0000080556 00000 n 0000468918 00000 n 0000083967 00000 n 0000083175 00000 n 0000080717 00000 n 0000083717 00000 n 0000083315 00000 n 0000083526 00000 n 0000083904 00000 n 0000085692 00000 n 0000085517 00000 n 0000084117 00000 n 0000085629 00000 n 0000089995 00000 n 0000089758 00000 n 0000085764 00000 n 0000089870 00000 n 0000092269 00000 n 0000091744 00000 n 0000090106 00000 n 0000092082 00000 n 0000091876 00000 n 0000096079 00000 n 0000095551 00000 n 0000092406 00000 n 0000095892 00000 n 0000095683 00000 n 0000099253 00000 n 0000098954 00000 n 0000096216 00000 n 0000099066 00000 n 0000469035 00000 n 0000102416 00000 n 0000102055 00000 n 0000099351 00000 n 0000102167 00000 n 0000254065 00000 n 0000228999 00000 n 0000253901 00000 n 0000105637 00000 n 0000105400 00000 n 0000102553 00000 n 0000105512 00000 n 0000107743 00000 n 0000107066 00000 n 0000105748 00000 n 0000107178 00000 n 0000109797 00000 n 0000109055 00000 n 0000107841 00000 n 0000109167 00000 n 0000111915 00000 n 0000111173 00000 n 0000109882 00000 n 0000111285 00000 n 0000115854 00000 n 0000115617 00000 n 0000112013 00000 n 0000115729 00000 n 0000469152 00000 n 0000119830 00000 n 0000119447 00000 n 0000115952 00000 n 0000119767 00000 n 0000119579 00000 n 0000124067 00000 n 0000123892 00000 n 0000119941 00000 n 0000124004 00000 n 0000128423 00000 n 0000128185 00000 n 0000124165 00000 n 0000128297 00000 n 0000131581 00000 n 0000131280 00000 n 0000128534 00000 n 0000131392 00000 n 0000134642 00000 n 0000134278 00000 n 0000131679 00000 n 0000134390 00000 n 0000138072 00000 n 0000137834 00000 n 0000134753 00000 n 0000137946 00000 n 0000469269 00000 n 0000140791 00000 n 0000140490 00000 n 0000138170 00000 n 0000140602 00000 n 0000140728 00000 n 0000144749 00000 n 0000144511 00000 n 0000140902 00000 n 0000144623 00000 n 0000148720 00000 n 0000148545 00000 n 0000144860 00000 n 0000148657 00000 n 0000151630 00000 n 0000151035 00000 n 0000148818 00000 n 0000151378 00000 n 0000151167 00000 n 0000154892 00000 n 0000154424 00000 n 0000151780 00000 n 0000154766 00000 n 0000154556 00000 n 0000157751 00000 n 0000157325 00000 n 0000155016 00000 n 0000157437 00000 n 0000469386 00000 n 0000161392 00000 n 0000161217 00000 n 0000157862 00000 n 0000161329 00000 n 0000165303 00000 n 0000165128 00000 n 0000161503 00000 n 0000165240 00000 n 0000170568 00000 n 0000170330 00000 n 0000165414 00000 n 0000170442 00000 n 0000175182 00000 n 0000175007 00000 n 0000170679 00000 n 0000175119 00000 n 0000179314 00000 n 0000179076 00000 n 0000175267 00000 n 0000179188 00000 n 0000181824 00000 n 0000180994 00000 n 0000179412 00000 n 0000181509 00000 n 0000181134 00000 n 0000181323 00000 n 0000469503 00000 n 0000184628 00000 n 0000183995 00000 n 0000181948 00000 n 0000184314 00000 n 0000184127 00000 n 0000188512 00000 n 0000188045 00000 n 0000184765 00000 n 0000188386 00000 n 0000188177 00000 n 0000191693 00000 n 0000191120 00000 n 0000188636 00000 n 0000191441 00000 n 0000191252 00000 n 0000191567 00000 n 0000196441 00000 n 0000195911 00000 n 0000191817 00000 n 0000196252 00000 n 0000196043 00000 n 0000199763 00000 n 0000199525 00000 n 0000196591 00000 n 0000199637 00000 n 0000202901 00000 n 0000202537 00000 n 0000199874 00000 n 0000202649 00000 n 0000469620 00000 n 0000205365 00000 n 0000204731 00000 n 0000203038 00000 n 0000205050 00000 n 0000204863 00000 n 0000208187 00000 n 0000207636 00000 n 0000205502 00000 n 0000207998 00000 n 0000207768 00000 n 0000211305 00000 n 0000210695 00000 n 0000208285 00000 n 0000211053 00000 n 0000210827 00000 n 0000214884 00000 n 0000214004 00000 n 0000211429 00000 n 0000214758 00000 n 0000214152 00000 n 0000214339 00000 n 0000214527 00000 n 0000217768 00000 n 0000217404 00000 n 0000215008 00000 n 0000217516 00000 n 0000217642 00000 n 0000221231 00000 n 0000220588 00000 n 0000217879 00000 n 0000221105 00000 n 0000220728 00000 n 0000220918 00000 n 0000469737 00000 n 0000225314 00000 n 0000224765 00000 n 0000221342 00000 n 0000225125 00000 n 0000224897 00000 n 0000226920 00000 n 0000226745 00000 n 0000225438 00000 n 0000226857 00000 n 0000227005 00000 n 0000254613 00000 n 0000262732 00000 n 0000262708 00000 n 0000294906 00000 n 0000304110 00000 n 0000360740 00000 n 0000400583 00000 n 0000433443 00000 n 0000450816 00000 n 0000462819 00000 n 0000468280 00000 n 0000469830 00000 n 0000469948 00000 n 0000470050 00000 n 0000470120 00000 n 0000479601 00000 n 0000482964 00000 n 0000483003 00000 n 0000483041 00000 n 0000483171 00000 n trailer << /Size 830 /Root 828 0 R /Info 829 0 R /ID [ ] >> startxref 483570 %%EOF instead-1.9.1/doc/instead.txt000644 001751 001751 00000006170 12162117120 016405 0ustar00peterpeter000000 000000 INSTEAD(6) GAMES INSTEAD(6) NAME INSTEAD - Simple Text Adventure Engine, The Interpreter DESCRIPTION The interpreter of STEAD (Simple Text Adventures) allows one to play games that combine visual novels, text adventures and classic quests of 1990-s. The STEAD games features are: * very simple source code of the stories. (based on LUA); * the ability to use graphical or textual (readline) game interface; * graphic interface supports music and images; * graphic interpreter theme support - a game may change the interface look; * portability (originally written for Linux, depends on SDL and lua). SYNOPSIS sdl-instead [options] [game.zip to run] OPTIONS -debug Debug mode (for game developers). -alsa Force ALSA sound (Linux only). -nosound Run the game without sound. -gamespath Add path with games. -themespath Add path with themes. -nostdgames Do not use default games. -nostdthemes Do not use default themes. -game Select game in gamespath. -theme Select theme in themespath. -fullscreen Run the game in fullscreen mode. -window Run the game in windowed mode. -noautosave Disable autosave/autoload. -encode [encoded file] Encode lua file. Encoded file can be executed with doenc‐ file("encoded file"). -idf Build idf file [INSTEAD data file] from directory. -mode [WxH] Use WxH resolution. -nopause Do not pause the game on window minimize. -install [game in zip] Install game from zip archive -quit Quit :) -appdata [fullpath] Store saves and settings in appdata path. Path must exist! -chunksize [size in bytes] Size for audio buffer. Try this if sound lags. -version Show version and exit. Configuration file name is 'insteadrc' and it's located in ~/.instead/. Games can be downloaded from http://instead-games.sourceforge.net. Unzip them in ~/.instead/games. CONTROLS Please, see tutorial. LICENCE This is free software; you can redistribute it and/or modify it under the terms specified in the GNU Public Licence (GPL). WARRANTY None. COPYRIGHT AND CREDITS Peter Kosyh INSTEAD author. Ilya Ryndin Initial port to Windows. Mahno Aleksey Port to Android. .dm Port to Mac OS X. Andrey Afletdinov Port to Windows CE. Vadim Balashoff Advices. Vladimir Zhirov Advices. Alexander Yakovlev manual.tex support. Serj Kalichev Advices and default theme correction. Vladimir Podobaev, Oleg Gvozdev Testers. Alexander Soborov Wiki support. Many others for comments, bug reports, games and ideas. SEE ALSO http://instead.sourceforge.net Instead Version 1.9.1 INSTEAD(6) instead-1.9.1/doc/Makefile.windows000644 001751 001751 00000000216 12161555602 017353 0ustar00peterpeter000000 000000 clean: all: install: if not exist ..\bin\doc mkdir ..\bin\doc copy /Y *.txt ..\bin\doc copy /Y *.html ..\bin\doc copy /Y *.pdf ..\bin\doc instead-1.9.1/doc/index.html000644 001751 001751 00000003342 12162117324 016216 0ustar00peterpeter000000 000000 INSTEAD -- interpreter of simple text adventures for Unix and Windows

INSTEAD 1.9.1

INSTEAD -- interpreter of simple text adventures for Unix and Windows.
INSTEAD was designed to interpret the games that are the mix of visual novels, text quests and classical 90'ss quests.


Links:

Ресурсы:

(c)by Peter Kosyh, '2009-2013 [gl00my(dog)mail.ru, jabber:gl00my@jabber.ru]

instead-1.9.1/doc/instead-manual.pdf000644 001751 001751 00002541415 12161555602 017634 0ustar00peterpeter000000 000000 %PDF-1.4 5 0 obj << /S /GoTo /D (section*.2) >> endobj 8 0 obj (\376\377\0000\000.\000\040\004\036\004\061\004\111\004\070\004\065\000\040\004\101\004\062\004\065\004\064\004\065\004\075\004\070\004\117) endobj 9 0 obj << /S /GoTo /D (section*.3) >> endobj 12 0 obj (\376\377\004\030\004\101\004\102\004\076\004\100\004\070\004\117\000\040\004\101\004\076\004\067\004\064\004\060\004\075\004\070\004\117) endobj 13 0 obj << /S /GoTo /D (section*.4) >> endobj 16 0 obj (\376\377\004\032\004\060\004\072\000\040\004\062\004\113\004\063\004\073\004\117\004\064\004\070\004\102\000\040\004\072\004\073\004\060\004\101\004\101\004\070\004\107\004\065\004\101\004\072\004\060\004\117\000\040\000I\000N\000S\000T\000E\000A\000D\000\040\004\070\004\063\004\100\004\060) endobj 17 0 obj << /S /GoTo /D (section*.5) >> endobj 20 0 obj (\376\377\004\032\004\060\004\072\000\040\004\101\004\076\004\067\004\064\004\060\004\062\004\060\004\102\004\114\000\040\004\070\004\063\004\100\004\103) endobj 21 0 obj << /S /GoTo /D (section*.6) >> endobj 24 0 obj (\376\377\004\036\004\101\004\075\004\076\004\062\004\113\000\040\004\076\004\102\004\073\004\060\004\064\004\072\004\070) endobj 25 0 obj << /S /GoTo /D (section*.7) >> endobj 28 0 obj (\376\377\0001\000.\000\040\004\041\004\106\004\065\004\075\004\060) endobj 29 0 obj << /S /GoTo /D (section*.8) >> endobj 32 0 obj (\376\377\0002\000.\000\040\004\036\004\061\004\112\004\065\004\072\004\102\004\113) endobj 33 0 obj << /S /GoTo /D (section*.9) >> endobj 36 0 obj (\376\377\0003\000.\000\040\004\024\004\076\004\061\004\060\004\062\004\073\004\117\004\065\004\074\000\040\004\076\004\061\004\112\004\065\004\072\004\102\004\113\000\040\004\062\000\040\004\101\004\106\004\065\004\075\004\103) endobj 37 0 obj << /S /GoTo /D (section*.10) >> endobj 40 0 obj (\376\377\0004\000.\000\040\004\036\004\061\004\112\004\065\004\072\004\102\004\113\000,\000\040\004\101\004\062\004\117\004\067\004\060\004\075\004\075\004\113\004\065\000\040\004\101\000\040\004\064\004\100\004\103\004\063\004\070\004\074\004\070\000\040\004\076\004\061\004\112\004\065\004\072\004\102\004\060\004\074\004\070) endobj 41 0 obj << /S /GoTo /D (section*.11) >> endobj 44 0 obj (\376\377\0005\000.\000\040\004\020\004\102\004\100\004\070\004\061\004\103\004\102\004\113\000\040\004\070\000\040\004\076\004\061\004\100\004\060\004\061\004\076\004\102\004\107\004\070\004\072\004\070\000\040\004\072\004\060\004\072\000\040\004\104\004\103\004\075\004\072\004\106\004\070\004\070) endobj 45 0 obj << /S /GoTo /D (section*.12) >> endobj 48 0 obj (\376\377\0006\000.\000\040\004\030\004\075\004\062\004\065\004\075\004\102\004\060\004\100\004\114) endobj 49 0 obj << /S /GoTo /D (section*.13) >> endobj 52 0 obj (\376\377\0007\000.\000\040\004\037\004\065\004\100\004\065\004\105\004\076\004\064\004\113\000\040\004\074\004\065\004\066\004\064\004\103\000\040\004\101\004\106\004\065\004\075\004\060\004\074\004\070) endobj 53 0 obj << /S /GoTo /D (section*.14) >> endobj 56 0 obj (\376\377\0008\000.\000\040\004\024\004\065\004\071\004\101\004\102\004\062\004\070\004\065\000\040\004\076\004\061\004\112\004\065\004\072\004\102\004\076\004\062\000\040\004\064\004\100\004\103\004\063\000\040\004\075\004\060\000\040\004\064\004\100\004\103\004\063\004\060) endobj 57 0 obj << /S /GoTo /D (section*.15) >> endobj 60 0 obj (\376\377\0009\000.\000\040\004\036\004\061\004\112\004\065\004\072\004\102\000\040\000`\000`\000p\000l\000a\000y\000e\000r\000'\000') endobj 61 0 obj << /S /GoTo /D (section*.16) >> endobj 64 0 obj (\376\377\0001\0000\000.\000\040\004\036\004\061\004\112\004\065\004\072\004\102\000\040\000`\000'\000g\000a\000m\000e\000'\000') endobj 65 0 obj << /S /GoTo /D (section*.17) >> endobj 68 0 obj (\376\377\0001\0001\000.\000\040\004\020\004\102\004\100\004\070\004\061\004\103\004\102\004\113\000-\004\101\004\077\004\070\004\101\004\072\004\070) endobj 69 0 obj << /S /GoTo /D (section*.18) >> endobj 72 0 obj (\376\377\0001\0002\000.\000\040\004\044\004\103\004\075\004\072\004\106\004\070\004\070\000,\000\040\004\072\004\076\004\102\004\076\004\100\004\113\004\065\000\040\004\062\004\076\004\067\004\062\004\100\004\060\004\111\004\060\004\116\004\102\000\040\004\076\004\061\004\112\004\065\004\072\004\102\004\113) endobj 73 0 obj << /S /GoTo /D (section*.19) >> endobj 76 0 obj (\376\377\0001\0003\000.\000\040\004\024\004\100\004\103\004\063\004\070\004\065\000\040\004\104\004\103\004\075\004\072\004\106\004\070\004\070\000\040\000I\000N\000S\000T\000E\000A\000D) endobj 77 0 obj << /S /GoTo /D (section*.20) >> endobj 80 0 obj (\376\377\0001\0004\000.\000\040\004\024\004\070\004\060\004\073\004\076\004\063\004\070) endobj 81 0 obj << /S /GoTo /D (section*.21) >> endobj 84 0 obj (\376\377\004\040\004\060\004\101\004\110\004\070\004\100\004\065\004\075\004\075\004\113\004\065\000\040\004\064\004\070\004\060\004\073\004\076\004\063\004\070) endobj 85 0 obj << /S /GoTo /D (section*.22) >> endobj 88 0 obj (\376\377\004\037\004\100\004\076\004\101\004\102\004\113\004\065\000\040\004\064\004\070\004\060\004\073\004\076\004\063\004\070) endobj 89 0 obj << /S /GoTo /D (section*.23) >> endobj 92 0 obj (\376\377\0001\0005\000.\000\040\004\036\004\061\004\073\004\065\004\063\004\107\004\065\004\075\004\075\004\113\004\065\000\040\004\076\004\061\004\112\004\065\004\072\004\102\004\113) endobj 93 0 obj << /S /GoTo /D (section*.24) >> endobj 96 0 obj (\376\377\0001\0006\000.\000\040\004\024\004\070\004\075\004\060\004\074\004\070\004\107\004\065\004\101\004\072\004\070\004\065\000\040\004\101\004\076\004\061\004\113\004\102\004\070\004\117) endobj 97 0 obj << /S /GoTo /D (section*.25) >> endobj 100 0 obj (\376\377\0001\0007\000.\000\040\004\023\004\100\004\060\004\104\004\070\004\072\004\060) endobj 101 0 obj << /S /GoTo /D (section*.26) >> endobj 104 0 obj (\376\377\0001\0008\000.\000\040\004\034\004\103\004\067\004\113\004\072\004\060) endobj 105 0 obj << /S /GoTo /D (section*.27) >> endobj 108 0 obj (\376\377\0001\0009\000.\000\040\004\044\004\076\004\100\004\074\004\060\004\102\004\070\004\100\004\076\004\062\004\060\004\075\004\070\004\065\000\040\004\070\000\040\004\076\004\104\004\076\004\100\004\074\004\073\004\065\004\075\004\070\004\065\000\040\004\062\004\113\004\062\004\076\004\064\004\060) endobj 109 0 obj << /S /GoTo /D (section*.28) >> endobj 112 0 obj (\376\377\004\044\004\076\004\100\004\074\004\060\004\102\004\070\004\100\004\076\004\062\004\060\004\075\004\070\004\065) endobj 113 0 obj << /S /GoTo /D (section*.29) >> endobj 116 0 obj (\376\377\004\036\004\104\004\076\004\100\004\074\004\073\004\065\004\075\004\070\004\065) endobj 117 0 obj << /S /GoTo /D (section*.30) >> endobj 120 0 obj (\376\377\0002\0000\000.\000\040\004\032\004\076\004\075\004\101\004\102\004\100\004\103\004\072\004\102\004\076\004\100\004\113\000\040\004\070\000\040\004\075\004\060\004\101\004\073\004\065\004\064\004\076\004\062\004\060\004\075\004\070\004\065) endobj 121 0 obj << /S /GoTo /D (section*.31) >> endobj 124 0 obj (\376\377\0002\0001\000.\000\040\004\037\004\076\004\073\004\065\004\067\004\075\004\113\004\065\000\040\004\101\004\076\004\062\004\065\004\102\004\113) endobj 125 0 obj << /S /GoTo /D (section*.32) >> endobj 128 0 obj (\376\377\004\040\004\060\004\067\004\061\004\070\004\065\004\075\004\070\004\065\000\040\004\075\004\060\000\040\004\104\004\060\004\071\004\073\004\113) endobj 129 0 obj << /S /GoTo /D (section*.33) >> endobj 132 0 obj (\376\377\004\034\004\076\004\064\004\103\004\073\004\070) endobj 133 0 obj << /S /GoTo /D (section*.34) >> endobj 136 0 obj (\376\377\004\034\004\065\004\075\004\116) endobj 137 0 obj << /S /GoTo /D (section*.35) >> endobj 140 0 obj (\376\377\004\041\004\102\004\060\004\102\004\103\004\101\000\040\004\070\004\063\004\100\004\076\004\072\004\060) endobj 141 0 obj << /S /GoTo /D (section*.36) >> endobj 144 0 obj (\376\377\000w\000a\000l\000k\000\040\004\070\004\067\000\040\004\076\004\061\004\100\004\060\004\061\004\076\004\102\004\107\004\070\004\072\004\076\004\062\000\040\000e\000x\000i\000t\000\040\004\070\000\040\000e\000n\000t\000e\000r) endobj 145 0 obj << /S /GoTo /D (section*.37) >> endobj 148 0 obj (\376\377\004\024\004\070\004\075\004\060\004\074\004\070\004\107\004\065\004\101\004\072\004\070\000\040\004\101\004\076\004\067\004\064\004\060\004\062\004\060\004\065\004\074\004\113\004\065\000\040\004\101\004\101\004\113\004\073\004\072\004\070\000.) endobj 149 0 obj << /S /GoTo /D (section*.38) >> endobj 152 0 obj (\376\377\004\032\004\076\004\064\004\070\004\100\004\076\004\062\004\060\004\075\004\070\004\065\000\040\004\070\004\101\004\105\004\076\004\064\004\075\004\076\004\063\004\076\000\040\004\072\004\076\004\064\004\060\000\040\004\070\004\063\004\100\004\113) endobj 153 0 obj << /S /GoTo /D (section*.39) >> endobj 156 0 obj (\376\377\004\027\004\060\004\077\004\060\004\072\004\076\004\062\004\072\004\060\000\040\004\100\004\065\004\101\004\103\004\100\004\101\004\076\004\062) endobj 157 0 obj << /S /GoTo /D (section*.40) >> endobj 160 0 obj (\376\377\004\037\004\065\004\100\004\065\004\072\004\073\004\116\004\107\004\065\004\075\004\070\004\065\000\040\004\074\004\065\004\066\004\064\004\103\000\040\004\070\004\063\004\100\004\076\004\072\004\060\004\074\004\070) endobj 161 0 obj << /S /GoTo /D (section*.41) >> endobj 164 0 obj (\376\377\004\030\004\101\004\077\004\076\004\073\004\114\004\067\004\076\004\062\004\060\004\075\004\070\004\065\000\040\004\077\004\060\004\100\004\060\004\074\004\065\004\102\004\100\004\076\004\062\000\040\004\076\004\061\004\100\004\060\004\061\004\076\004\102\004\107\004\070\004\072\004\060) endobj 165 0 obj << /S /GoTo /D (section*.42) >> endobj 168 0 obj (\376\377\004\042\004\060\004\071\004\074\004\065\004\100) endobj 169 0 obj << /S /GoTo /D (section*.43) >> endobj 172 0 obj (\376\377\004\034\004\103\004\067\004\113\004\072\004\060\004\073\004\114\004\075\004\113\004\071\000\040\004\077\004\073\004\065\004\065\004\100) endobj 173 0 obj << /S /GoTo /D (section*.44) >> endobj 176 0 obj (\376\377\004\026\004\070\004\062\004\113\004\065\000\040\004\076\004\061\004\112\004\065\004\072\004\102\004\113) endobj 177 0 obj << /S /GoTo /D (section*.45) >> endobj 180 0 obj (\376\377\004\032\004\073\004\060\004\062\004\070\004\060\004\102\004\103\004\100\004\060) endobj 181 0 obj << /S /GoTo /D (section*.46) >> endobj 184 0 obj (\376\377\004\034\004\113\004\110\004\114) endobj 185 0 obj << /S /GoTo /D (section*.47) >> endobj 188 0 obj (\376\377\004\022\004\113\004\067\004\076\004\062\000\040\004\074\004\065\004\075\004\116) endobj 189 0 obj << /S /GoTo /D (section*.48) >> endobj 192 0 obj (\376\377\004\024\004\070\004\075\004\060\004\074\004\070\004\107\004\065\004\101\004\072\004\076\004\065\000\040\004\101\004\076\004\067\004\064\004\060\004\075\004\070\004\065\000\040\004\076\004\061\004\112\004\065\004\072\004\102\004\076\004\062) endobj 193 0 obj << /S /GoTo /D (section*.49) >> endobj 196 0 obj (\376\377\004\027\004\060\004\077\004\100\004\065\004\102\000\040\004\075\004\060\000\040\004\101\004\076\004\105\004\100\004\060\004\075\004\065\004\075\004\070\004\065\000\040\004\070\004\063\004\100\004\113) endobj 197 0 obj << /S /GoTo /D (section*.50) >> endobj 200 0 obj (\376\377\0002\0002\000.\000\040\004\042\004\065\004\074\004\113\000\040\004\064\004\073\004\117\000\040\000s\000d\000l\000-\000i\000n\000s\000t\000e\000a\000d) endobj 201 0 obj << /S /GoTo /D [202 0 R /Fit ] >> endobj 204 0 obj << /Length 1428 /Filter /FlateDecode >> stream xXM$5 ϯb:.bAp$V셕7=v*=Tիy~q*h7n>`21 m.l7ގ*h#O|a@_V:5^^ ̋xEֽB^=Ey~ ˏ?﮿=(QH'Dl7kx-!a+6RDݢKzIa37%#r i3^[&<{M;K`6 ^tln#,kwQwi&ha ˊY$ t6,DEέfPQD^@~kB1wwy 9LPA:T4 1$Q9F~o]aE߲u^(rK^9,IY]CZ.W>eb?e{]NI{s F&/8vBl0ag}ԂyB|>?S􌛮)5{GE-o_hJ6Qt_JEYԷ]Qӥ[4 MKWՇwrCkG0w~vnFG'*JB Qe9, endstream endobj 202 0 obj << /Type /Page /Contents 204 0 R /Resources 203 0 R /MediaBox [0 0 612 792] /Parent 238 0 R /Annots [ 217 0 R 221 0 R 225 0 R 226 0 R 227 0 R 228 0 R 229 0 R 230 0 R 231 0 R 232 0 R 233 0 R 234 0 R 235 0 R 236 0 R 237 0 R ] >> endobj 217 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 503.014 192.3993 513.5372] /Subtype /Link /A << /S /GoTo /D (section*.2) >> >> endobj 221 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 484.7584 190.4626 495.4938] /Subtype /Link /A << /S /GoTo /D (section*.3) >> >> endobj 225 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 466.8257 309.1551 477.5611] /Subtype /Link /A << /S /GoTo /D (section*.4) >> >> endobj 226 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 448.8929 197.6561 459.6283] /Subtype /Link /A << /S /GoTo /D (section*.5) >> >> endobj 227 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 431.283 182.7158 441.6956] /Subtype /Link /A << /S /GoTo /D (section*.6) >> >> endobj 228 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 403.39 138.6142 413.8303] /Subtype /Link /A << /S /GoTo /D (section*.7) >> >> endobj 229 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 377.111 153.2847 386.0203] /Subtype /Link /A << /S /GoTo /D (section*.8) >> >> endobj 230 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 347.2813 253.7307 358.1274] /Subtype /Link /A << /S /GoTo /D (section*.9) >> >> endobj 231 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 319.3884 329.2691 330.2344] /Subtype /Link /A << /S /GoTo /D (section*.10) >> >> endobj 232 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 291.4954 310.8566 302.3414] /Subtype /Link /A << /S /GoTo /D (section*.11) >> >> endobj 233 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 263.6024 162.242 274.3655] /Subtype /Link /A << /S /GoTo /D (section*.12) >> >> endobj 234 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 235.7095 243.5214 246.4725] /Subtype /Link /A << /S /GoTo /D (section*.13) >> >> endobj 235 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 207.8165 281.9097 218.6626] /Subtype /Link /A << /S /GoTo /D (section*.14) >> >> endobj 236 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 179.9236 188.4636 190.7696] /Subtype /Link /A << /S /GoTo /D (section*.15) >> >> endobj 237 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 152.0306 192.0604 162.8766] /Subtype /Link /A << /S /GoTo /D (section*.16) >> >> endobj 205 0 obj << /D [202 0 R /XYZ 91.8009 721.8656 null] >> endobj 206 0 obj << /D [202 0 R /XYZ 91.8009 696.959 null] >> endobj 216 0 obj << /D [202 0 R /XYZ 91.8009 523.6538 null] >> endobj 203 0 obj << /Font << /F18 209 0 R /F19 212 0 R /F34 215 0 R /F35 220 0 R /F15 224 0 R >> /ProcSet [ /PDF /Text ] >> endobj 241 0 obj << /Length 2151 /Filter /FlateDecode >> stream x[Ɏ$5WKz1 8po &r@##˙)~~_ID2n^grAUA@ _~֟,#CT.83 ǟݢNNG=RrJ=)/ޝ(|kpwL~廧^=" ojDG-aeޘoZ{smyl 7yʡLP 94;mUM! le:."EhC3ǵ6ԕr:j!-/ڧa8UeI 똳=驏eHӘѩQiaL#y?{/?RnJ !wԂ𹴬iaZ 㢛QXP^R Bb87XQEy)Rm8p$T [nm49Z}[ɛ"oR/Xu.oal5ۂe5kZG55MUd"[=f*nۏҩ=5yjѴ&f"X4h[blL,B",/jY; _hT'DVEahpN4S%EsQK?]tޚ-q$>ZIEN=(.IBbHiLJfS)j#2'lB1aCEl;pFGADBP  ie:2<kYM-8 m;@NIMU_bby~8w  A/l16j2@sCWAӋjvۇbξIF3héƭf^f;f4ΰ gru_095ghTBkl:j$SNfߤY9>v,1sm0py`%#ύU9XGhs\ a߇"w(T\w5%%zu0"ʰPxC SL@Ta#A4"# ci/r~D\ Q}6,gʻPz/:<{:-֣'0텠nv0x-$6_A}Dk.ѰT\}2ծz+wջ(b;.nzl.ծD_RO]?Soǿ&?6ڜ&hv[m\?=F"lƹZA]:*q8άGvWE9h5l995J=^ub4"Qx4.&B1,N99򦲲\LwZ_k`scO^~#n<ɻwev+pq}@mV.A[08 +F|Z03Oy#gK[^է{M|s7{q}ɢG'aaέiEkw[b׶.- ݜ nt,lM̒dkEmVg4$_> endobj 243 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 684.0634 203.9365 694.9094] /Subtype /Link /A << /S /GoTo /D (section*.17) >> >> endobj 244 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 656.3099 324.1507 667.1559] /Subtype /Link /A << /S /GoTo /D (section*.18) >> >> endobj 245 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 628.5564 257.4796 639.4024] /Subtype /Link /A << /S /GoTo /D (section*.19) >> >> endobj 246 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 600.8028 156.8261 611.5659] /Subtype /Link /A << /S /GoTo /D (section*.20) >> >> endobj 247 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 583.0095 209.6913 593.7449] /Subtype /Link /A << /S /GoTo /D (section*.21) >> >> endobj 248 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 565.2162 186.8658 575.9516] /Subtype /Link /A << /S /GoTo /D (section*.22) >> >> endobj 249 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 539.3994 228.6987 548.3087] /Subtype /Link /A << /S /GoTo /D (section*.23) >> >> endobj 250 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 509.7092 234.9515 520.5552] /Subtype /Link /A << /S /GoTo /D (section*.24) >> >> endobj 251 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 481.9556 158.2302 492.8017] /Subtype /Link /A << /S /GoTo /D (section*.25) >> >> endobj 252 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 454.2021 154.4191 464.9652] /Subtype /Link /A << /S /GoTo /D (section*.26) >> >> endobj 253 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 426.4486 319.3504 437.2946] /Subtype /Link /A << /S /GoTo /D (section*.27) >> >> endobj 254 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 408.6553 184.6525 419.3906] /Subtype /Link /A << /S /GoTo /D (section*.28) >> >> endobj 255 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 390.862 165.8387 401.708] /Subtype /Link /A << /S /GoTo /D (section*.29) >> >> endobj 256 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 363.1084 272.662 373.8715] /Subtype /Link /A << /S /GoTo /D (section*.30) >> >> endobj 257 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 337.2916 203.1273 346.118] /Subtype /Link /A << /S /GoTo /D (section*.31) >> >> endobj 258 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 317.5616 202.2212 328.4076] /Subtype /Link /A << /S /GoTo /D (section*.32) >> >> endobj 259 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 299.7683 142.8749 310.5037] /Subtype /Link /A << /S /GoTo /D (section*.33) >> >> endobj 260 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 283.9117 134.2981 292.7104] /Subtype /Link /A << /S /GoTo /D (section*.34) >> >> endobj 261 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 264.1817 173.0322 274.917] /Subtype /Link /A << /S /GoTo /D (section*.35) >> >> endobj 262 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 246.3883 259.6584 257.2344] /Subtype /Link /A << /S /GoTo /D (section*.36) >> >> endobj 263 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 228.595 268.2075 239.3304] /Subtype /Link /A << /S /GoTo /D (section*.37) >> >> endobj 264 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 210.8017 265.1641 221.5371] /Subtype /Link /A << /S /GoTo /D (section*.38) >> >> endobj 265 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 193.0084 197.6561 203.7438] /Subtype /Link /A << /S /GoTo /D (section*.39) >> >> endobj 266 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 175.2151 253.5439 185.9505] /Subtype /Link /A << /S /GoTo /D (section*.40) >> >> endobj 267 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 157.4218 291.7247 168.2678] /Subtype /Link /A << /S /GoTo /D (section*.41) >> >> endobj 268 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 139.6285 141.2149 150.3638] /Subtype /Link /A << /S /GoTo /D (section*.42) >> >> endobj 242 0 obj << /D [240 0 R /XYZ 91.8009 721.8656 null] >> endobj 239 0 obj << /Font << /F35 220 0 R /F15 224 0 R >> /ProcSet [ /PDF /Text ] >> endobj 271 0 obj << /Length 878 /Filter /FlateDecode >> stream xA ShEfwy0~8Ęua~fA *h̓Gy!Gç'=|'HA(;a*ФH)fQ|z i8V*;߽q1`/X1^Gn˷~ ^~'c|9FM Ě?ߝ^W'QktɪAtL892_׏ݾ7V]n}Uu^[qTZ3G`M4ѝe ݚOq8," ҃ f`PKj߳{ goŨ͐c[ F䋌N4W(6keTv|#4"_Whz:[ d7W6nz3ƈ=lKNbmE!~ Yj}{QVn-[vsjk=[ތ68v"ymhS"Y vS}f}OA𗟟+_\!⭥)o.Mmxk[wTf{%풋8M(a+9<| XSk,ǭeǜ"\ҠԱ; 4:a@Iu| Fz;t>$9ͤ{V'YOlc3_] [vZnjnI}]=n~US)ۂrz}VތmA{3QӍb\[]|5]tqYis̔ UBQȔ1~P xXϷ~i>}r> endobj 273 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 684.0634 201.5295 694.7988] /Subtype /Link /A << /S /GoTo /D (section*.43) >> >> endobj 274 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 668.0673 183.2691 676.9767] /Subtype /Link /A << /S /GoTo /D (section*.44) >> >> endobj 275 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 648.1979 162.242 658.9333] /Subtype /Link /A << /S /GoTo /D (section*.45) >> >> endobj 276 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 632.2018 137.0648 641.0005] /Subtype /Link /A << /S /GoTo /D (section*.46) >> >> endobj 277 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 614.2691 163.7637 623.0678] /Subtype /Link /A << /S /GoTo /D (section*.47) >> >> endobj 278 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 594.3996 260.184 605.2457] /Subtype /Link /A << /S /GoTo /D (section*.48) >> >> endobj 279 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [105.745 576.4669 232.7935 587.2023] /Subtype /Link /A << /S /GoTo /D (section*.49) >> >> endobj 280 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [90.8047 548.8967 220.6918 559.42] /Subtype /Link /A << /S /GoTo /D (section*.50) >> >> endobj 272 0 obj << /D [270 0 R /XYZ 91.8009 721.8656 null] >> endobj 269 0 obj << /Font << /F15 224 0 R /F35 220 0 R >> /ProcSet [ /PDF /Text ] >> endobj 283 0 obj << /Length 2936 /Filter /FlateDecode >> stream xZKsWo*ǫ*$9>$E9PJf,*+>.T.)ݝЏ3?[4+RL/}yi'̮|xzLvY'^\ΆɇvWYiNӲL0/7ަ7>7> [FSƋO|KApKoD?~2-%8;<98Ǣ/EVizFkjeQY$ƥ,;](aK/Abhh\Ō)vAQɳ9}"q soiuQѬ2FG"H#N*YG&S>eJmͮ!X`B-` mg~fDD0ob9HЫ@J~{IՊ%$9yղY&4IEUDL I!BH2?)韎('ӞUJ] ǹ~}~(Irbubڌ#uD4+p*!n{38tVgİl2b^|;aG,h_U0*  &d_ yZeCK,@2U |PY 4QXRv1 5,@^ $⾇ 6SKYokOoe35 n-]̂ lMW)٣Puʒ9s%c: uxB<HC(I*pGȻDSkh,M6ֻdY̻3ɴgQ #4Dۥ104_nGuTJ=] jR WZ>ՋڙW͌r0ouIT>-81 e)A=P g>ΌV?V4AIJdu WUB $!vqߩe؈Y/ܽeI#k 1vT*T ozz LӘ.xVj4B-QQPke`` gl”`] ?yTR#ݳmG`=,5e_Dzm59S;:C0a?+. 7Ӊ}*ӹ.9̺9.1۔'aU4;(l4iMkJOh`JQ"Jq |c4yލ=CjEeVcˮm 5Nޮ'q0Ì[8[Dݠh;z :'x7|9/UEQ2˜;pY0V}@a/^_q v8'jx'M]OOҫ3|v7>L/z[ :~}(r|(d€rLVg&M4g rTAqO;ne}4)=cJ α-d'Xܠ Q,vk.>`L/RB%{< .mKnN|x}> ^('Q`ٸ0(s|N1E[5~yƆgn|8׺`svM-]W&;W/M/[!T@OYY8\g5ua&w[Vzi+aU;;ݤHg)QWJ2t* (KH ҄vª hZ=U'NFcjǂBS#b&oB戨X%9,80eQ4zTyvKĥ԰eK]`L&y\?]}1HAMaJc&k~|dZP2)PiyXoy_UR\[l ]%>n.=o+ɜ,KSv MS& uil^l %Jqnw[59 pJ֑hdSP2`}<˃wߞ>L~?}w;;/GUD%ղn.g ږ˓F2W2&ZZUo~0XW@(VrˆBM`YUwvs.'I-;a-e!P9 4ulVxSiu[$C{a׺nE~݊ A| |oV)wܸT/K[$aG5E^am#9 (>uSS~L;\eɸoR<**ͩ%G8;OĮ]45z}0rj#@p,hUjt6 /yX.:pUBna^ Iؒ5zo!Un/iBŗx),dyZA)h^.j I[Nokhە+?aKWwIEzjuE};u eH_w@ .,ݩ7 z3C\_T-ZPa\U먥T~"qd*C;42̴I[C#sW߂ҍRo֞V)Sc[xEMJm#_Oa)xlTz?E۶։endstream endobj 282 0 obj << /Type /Page /Contents 283 0 R /Resources 281 0 R /MediaBox [0 0 612 792] /Parent 238 0 R /Annots [ 288 0 R 289 0 R 290 0 R 291 0 R 295 0 R 296 0 R ] >> endobj 288 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [90.8047 482.4119 348.1105 494.3646] /Subtype/Link/A<> >> endobj 289 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [105.7486 446.5703 468.7987 458.523] /Subtype/Link/A<> >> endobj 290 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [90.8047 434.6151 457.7835 446.5679] /Subtype/Link/A<> >> endobj 291 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [105.7486 386.8184 243.8087 398.7711] /Subtype/Link/A<> >> endobj 295 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [201.0648 323.1533 465.8961 335.106] /Subtype/Link/A<> >> endobj 296 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [224.4989 310.2018 434.6045 322.1546] /Subtype/Link/A<> >> endobj 284 0 obj << /D [282 0 R /XYZ 91.8009 721.8656 null] >> endobj 6 0 obj << /D [282 0 R /XYZ 91.8009 674.8089 null] >> endobj 10 0 obj << /D [282 0 R /XYZ 91.8009 273.5811 null] >> endobj 281 0 obj << /Font << /F34 215 0 R /F15 224 0 R /F38 287 0 R /F14 294 0 R /F39 299 0 R /F40 302 0 R >> /ProcSet [ /PDF /Text ] >> endobj 305 0 obj << /Length 3309 /Filter /FlateDecode >> stream xڕ[IWۇdݢ ; 8 $b{ ,|UEŧ0ħ=޶C O?o~iLI-[?N^Kηteؓutmi[W%D s`A|UFαR)ssδ$d|@4F/iໍ3&/Ma -ѹ~-x=f`lU2̘N% :-\Y y\-L*ML)}y+ HOW`iAD݄|Ca5vǫhZ)MU -۱l(a@t0qjWQ zm hZ92ќj4-0 ı_07J/{@qI!=0 }nQ%L%\vC=ҳ鉩N1Jb4Nep$2SdC=O]\jfJ4cuqTVhn+%Its0E'gr ̪zjyd/\~o/x/̽\%WOE"%1,H"TI?Or2qukqoפ{t%ˉ8!lNsIG|R'{OY4Ku|6hu.A2ɮvZKj±&EP6fFdrUz/UumFC>(Z "}Ũ+J6KNV4I WGkf X1(9- gEy Qٻ2W֯68jFW ?HFmxyHKWB j=[("J T/u+;xZye6 7u$ uxG_%NT@8F h:@s VX2 %)ĈG (I3nXctHD˾Hdf{ȕj'Q lJ TAq)R)E)ߝ+$ &k"6Tfa:϶LBhK>k@yu2l35\ (筂}]h qQxWeJLHXxu}Ksx꣼MZtW_43 ¦~-.B8 NJbؑ-Yx;cY +5W )A׶`\,e+ YW'+zvQP ZtJޣIžkGv BK"c|zfy=OxIcsTTiU{F^NlK[?͸mF[_m/vLRcTvnSWvm=. M.@hܭUC B|Ċu b#IMWlz4R$Z@՘]k5[v( .RZ nd*. }':.(iRS O'Q@ f o)\{{/&G{]H 7KY@)L\sEKR@k'3!}B' -_k Hg^'a Td%Q*AZs̝P!]Ž2'/QUĭ!Q޹`b*kRgc@\͗r;~۶?Z*mO157eNJOR~ݻi1O/ޥûP怟Nۺ\_:$Orz =~K1 1*ٶt[ł*nAqB9nufx+^ukT +־onseIW]v*Euݩct`Pd=x{;ݖ*)+J#. ǏyEzX0nkEnxl= d}i7Nm-/͓Vw- J. -E%*iܶqN[<$kS뼎S*lKmim4#?a˖rk6'8\~U;KYd}Z> endobj 307 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [166.8896 236.1378 349.2726 248.0905] /Subtype/Link/A<> >> endobj 306 0 obj << /D [304 0 R /XYZ 91.8009 721.8656 null] >> endobj 14 0 obj << /D [304 0 R /XYZ 91.8009 198.4548 null] >> endobj 303 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F39 299 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 310 0 obj << /Length 2733 /Filter /FlateDecode >> stream xZ[ ~~.eܷu>8K]Fz\m)(vv^Psfg("?R")s9mF%S|8> ؤܖ,X|z6|]:mj 6ޝ*lڶYƁ}/?Gs+l h@\# u]_/qN&\DGtebә} bGz%"Q>d zr͒zӛ%~wz2A0yMbAY<*`FY }ZiY|:;] $eQdem`ڋCg]"<\xeհ@NX~ImTDI`7Qˡg!CW̱ t_aZXؙZB[/t3лBWAףhV\iZȨWơVqZavz+}|[Ac ykaڄ!2:2eFRljV;OB PY\wK;IE(&b7e 9py@)6~h Vaq#۾{!w? MBj`E o'ݹ G}P]+=CU0lm@(!>20)w$dtViwboACoYm]bNtiB3ӵ%e6Vl7 WɹplIu`Fvl|V~3ZprF?#iاL=be #2}f]ug֯gxtcnAudn&o#;ks|TZϫ뽕(JU?$m%Ց ?-i^Ke/TN< ZԳ!rK{达IU )!N-wZL u3*l-7Jr!pu},UJ/ja]``QKθ~G)eH4믡-32<֜ކHfESqYu&B/e7$Es((TcWN+Pe^ ޴Es/xz|P8_ޮ n0]*! WTltUc,f֒NJTkFPlѫx`ևR4M\Ԁ\a]J5Ư~1i堕7VP8ee*Xķ0OKAsQWĖ5tJQ|cz-[nrDӛ0쨤9HJDh&/`E()rEqBن#o @o󑺚\xe%Yv6S+p}ٔӾcg-iWw^WۉVխL p<5<3ߏjܷWUJˍ@@S4dGQ?^f)Q荆ias^~SkR22}]GA˖Ns!)_{janz[2>WS9Wwn*^3 F\N_cȲ5. SA#z'2-/6 vܵRRX{[--gۢ-%m8ȎO.b ԋv$W h٧}v6*$̋pSbDWoC XԌ(44˜M@\Ka}9 4bKىq)/fʋ 3v}P5endstream endobj 309 0 obj << /Type /Page /Contents 310 0 R /Resources 308 0 R /MediaBox [0 0 612 792] /Parent 238 0 R >> endobj 311 0 obj << /D [309 0 R /XYZ 91.8009 721.8656 null] >> endobj 18 0 obj << /D [309 0 R /XYZ 91.8009 403.576 null] >> endobj 308 0 obj << /Font << /F38 287 0 R /F15 224 0 R /F40 302 0 R /F14 294 0 R /F39 299 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 317 0 obj << /Length 2389 /Filter /FlateDecode >> stream xY[5~ϯ"f3wvQ  X! tSv]\vr]*8S]CNÏD_MX 5/sf5YfiOg^eg\kEC4rX=?;.g!b m XcFT'ߜ-Ƿ>xApf>n8,t|:'o6k )_WSANNj"O0 ٵwFP-ֶ8ɏr!:̙){كǷ"P/-]\LZIXXejPh%g)1;tS:Q&ә=LA4_ .(&HorlS胈40N~Ty٫?ڌ7sԗ2ihW!F)%7#l&,+$-2kFE48tZ,ߏS$ʨ6Gs,)yRKHe좎hv@װs7%#suTL5Ӑ)nZ[mL f n)^υybgF=pW'V񎖔ݢ+^Vsm҆ x/3ﴏ  Vh]d =>~mft(VhwmQ3Wi3vt-aìjs$"6}#FX*"Ɓ399[' +-0F) &zSp'gS0Hߛ@ow@;x{اqhaXS@_'5o._}xֈM)Ay-4"L|q6[5Pfh!1G&99C"NEJд=!;*B7֙̈́;-sX#UtA3.>ABaPSEXNIIokiekf$jDA4aoۼǬ4휄s،dY2 k90KE 5ȏVVh `I`Գ ab I'9JSpT般X%IqNǖ:j G$kՓqYoOwmRIxQ͂)Sm7$ghŮ 4V ^Bb]mdw6B{ YzI\Au;qU(Pn"5Ȩtjp~w< \A&TqٗO_dSZKG8;s$lC)C|IjV͊N8mKS_bB2S9 Hd/t/0q{tIt5b(VA}V+71H-5uT&>`hљBqfd !m+ŀ>,$I.jW^m|/S}VأMtnf 9G;dɺ;kr7~ `6%8/}#(T]FM uh׃M5q'^G=D5aPͱC FaϬN!3%Usl.endstream endobj 316 0 obj << /Type /Page /Contents 317 0 R /Resources 315 0 R /MediaBox [0 0 612 792] /Parent 319 0 R >> endobj 318 0 obj << /D [316 0 R /XYZ 91.8009 721.8656 null] >> endobj 315 0 obj << /Font << /F41 314 0 R /F15 224 0 R /F35 220 0 R /F40 302 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 322 0 obj << /Length 3440 /Filter /FlateDecode >> stream x[o_qK$7wE ;A<}8HgXr!9ޞNE gow8q8W ӫAwR*x>n?S;3]h;;~|]{:= $w_ LX]]iܰ }!?/XeX/\j=˵忮~ZukZD-Vol0 \ze.^\rߨ&"1 kwY8l`.MH +d>_ 4ia8QLjff!JRy$(Pd9&@3f 88Z1],#)#CaPӓЉO_P9p(:$F2r: gl`+C"D!|Y_m3XZ;)ɐ۹' u C(7xj;_q~v_w\LL{;Y$-2@BvWl 1+Nk*h. }Lm@L7}mZ9:P `VV\Pϰ+_g-Zk5X[jGa⒕e:\d田Mp>m  KUuH&!ΘAt𙌸y#kk`aG03]ͧ ~><Ȧ'pz3M: %hk@חխř-poXdՉHx&0lq}]OU4?hh˘AvsEE{<')5DwL]zڻ3'%䝘eE1ѥ;&h;3<@LxB4âT&X?M=p23Vc c*_cEU%~SMs!Ma8h25Ojb&W˾"Ldl|gW)iGKd._yrC cEkvv9,yBÈ.|$&lۡ3z MS+827|Wo- = \7kώ^;2eRX=wLj݇Mi9NϒY!@o̮SxV z^/Ub <-G^/' ]vLu&@U]l'}iC~Ora1Lz*PvKrR*%yQP-EmA5E0ĞmZMQ)YZJbib"Ft'վhijur{zcͻ<=,b=, &ԩ)&Zӓ"LَawoÕ;EpIEp9ps+jc"ZDgh`EӲILgjlZ4 iZ n#hwD˘Q6qw6aT{Vs}oWqh:vCTH^J Eyc jH;HORQQT r{h5ȕ]89B~rř *q6p5L#JMy,q;N[:lST_ϹԡSgd!i}]w ՃmՃ7>bU #D("NicS>=MMkx@qХSwРD)ۈs ˨3r ШV8Ql^*) /Usܫ5fzL8"?HKBIA v@{JZp'*ocm~~}x^ p>c\[xaBH^n6jW$HƏ$8UC".ۇ n~ߦS:J˓ͧsP+rqY ]?N#N- nG&h ]i829nhlNl Zjcg][.8&Z:bqbCJERk2WۗE #_?DfzG6:!/PkJ Z cC=+)lip};.YBb0nEh *XΦ=&0g|b:Le[+Kh%&oʴIdr>Y@OK [$#n#1Nh5e5u9hyoL%&8ʷׂR"4ᔚ|r֞|!)OUѕ0# .d_*q;eU뵱BQo20wHbDޜg çdp('ztX \k1s,[NO Tmzld6 2VuvUp/akEɵ> endobj 323 0 obj << /D [321 0 R /XYZ 91.8009 721.8656 null] >> endobj 320 0 obj << /Font << /F38 287 0 R /F15 224 0 R /F40 302 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 326 0 obj << /Length 3338 /Filter /FlateDecode >> stream xڵ[[o~8X|h޹tQ.ZyB$G@#'^f8\0,ǹqHΪj;Wr }JU'aᏅ{P1gWo.ߝ^"Xw~"FowpʞXF/IHZƹ;ɵN seWVDk9]U\Ӑ&hTʷ(bf5vT[ cAagЅ6MeuXEáṪ3 9U'A. '4b`ivY5*^ 0.v*3҇&z:1Rl2"9!+9M RX_T(L ]Yu老y Bx= l\b}Y̿m̢@pP՘kHYP%́EYw`%izg&+kBZ0DLK{>`}Zi"wX~vI!%X3~b}]zZ%qCMԵ-sy^x -rVERQ[@~xWU.ķb)zWskŽle59SEᢃ UQ\|L ra6jj Rxm_`2֪>$OOoޡlsŋ?7Wq[55.ǣ^ @0;rQ-LF'IsQ8| ;;oI3zHpzZ,nIk&{b8@r& ! Ӈ\U蒬DT8]w-b؝2+sA{~us1Hl+mqsNs%qc7fLt_n pfrTe_:3th̼+J(}["rȼ s+3=:W`理7=3&Cƒ̉2\A]O֬}Rt],ECbS6<Ƭs$ffYm!4SSfܵ,[7blXR~ }$At6#&lb;V`q61;nF6m`BF6 Ċtװ㈋!At8A8'ńovL`V#nĄE`O #DŽh/RLpDŽc}ZLXJ1cM77>]ߕՌ/0_3qژ80 @^XK ǭ]'R%̗א㫅Qwv蝶7_]_:qKa 0R&N5!ԃUyثW x}0k.?m8I|+Q9.w޶njagcǺ6QCYv%*p&JI&a rq_gj 6qG €J׋F}լ7MY'΅U:ژ[d@VﰾEbtn=@H*U=~J:7ѬTVu`r3kQ| 4tO9].o0|9qߛw&chX\ _ )V'j/VcEw ˡ|dCߟO0k#ɽ6B19G+iY&`jIs**k5-,g]\&@z5׫iy^Eޤ]aVb,<ߕ!ϴ<`Vy1TSuNk⛞ݯz%|3>&5_fׇYX-Puα f陓^|8si~Cendstream endobj 325 0 obj << /Type /Page /Contents 326 0 R /Resources 324 0 R /MediaBox [0 0 612 792] /Parent 319 0 R >> endobj 327 0 obj << /D [325 0 R /XYZ 91.8009 721.8656 null] >> endobj 22 0 obj << /D [325 0 R /XYZ 91.8009 338.9684 null] >> endobj 324 0 obj << /Font << /F15 224 0 R /F41 314 0 R /F40 302 0 R /F39 299 0 R >> /ProcSet [ /PDF /Text ] >> endobj 330 0 obj << /Length 3455 /Filter /FlateDecode >> stream xڵ[onR4 CPD@,wCr߮°7i5IEYe #|4V,_VQ~K7K ϯg%<ω^4az] ʌ'V2@/Ù5oΖޘy:ze@|埭Xӫ7S+dn=\~>U"r~=h}8!Uۼi:+f.5p0ua`D )g o>ܽRzZz1[eVa_$i8#BN:9`SA3._ᴇm=L'qϘlZ 簩Gwh+%tG)#n4sg qTF%zLmq *(Ǽv/:tּYQPm=i{} $Y|9ɠDi0#Gf$+d|ᴃl15fHAɒ+ 3F nZ1Mqn>fu35^$ⰇjUoDP? =lÌaY,ք' b8[̔"-!xkqIUG5!ډDƠ s&n krZAq .eaFŘƜW섷33 < M,7™zi#PHU8herP7ꦨFuWGv7;7JV;4R _X[16~IXEWe35}$ *iζ[[8yE3XE81`M6q3)©1~2q)4hNTmҬ.ꧪ 9mCXY$ԪXqX*&$e-8I,͞7'I|Բb2fBVd|..v2/_VLYȐHB: ܏;H*Ϳ~=?S;w)ͅg,&E!$M6ޑϳ 8y/ujd' v6qD SxGd %y[?}ӐdJ&uȫ6Bנ~~ÏfpXª2..`=ok8ӥ` ɺpW-#/ͪNVtyC53l)8d o$*{)s5OMH㥜N"D0&)VGPp!6';>lU`QbsGY]0^މ?\qZe5+zWeryRV3f7BJ9"|;'pt W0,sc:sL~|X<RcWW[]'E%l91<<?2 <@ǮrP;'f?x0hTv_dP:@FjűmMA\3eϦv슏s92Q)pkMACENO?ʔuζoGgmgowQj>Jr rcZ 8h<l[MT.ҫNOMsT? E٭F81.Kr*:ߣQDT]XtCM-Z-2+JǶ_+rwߴ ? 61*/ ovg/Ry]y:Z7j%R]GT!Ma] tEV6~:6ů91Ze8E&痐88Ng=v=;~ 35H*R+?[?qГZpfqxU᭡' Ow/9G AzLU7]{EPNݓ]uS`knmkw[`-B7)4޿{5K;gZ6^T3!8j *pjeѠDߞ=ҪNʁ&Pb@G37Tje{zMd?t{nnwC?4|+8u ^!NsJ?տ$_AۂaWEq u3 3=:*pŃ^,d,~;HDéVWe3ޅПps彰A3wfb:n=젓maV#ڹ=.%{Δth‰ b6k^DPAP?6=ox՗׼|7+_F:e;-A[Gך(KA9lot-ો;\P=97W^"`g,BS^ڶey1㝄H{Il[E"|F\@GnX[@Ԅjc{5ЕO]DBuy=Im4[AQ` gS]PixKfh;bǫOsogF/ ͲT^=h8? [dxendstream endobj 329 0 obj << /Type /Page /Contents 330 0 R /Resources 328 0 R /MediaBox [0 0 612 792] /Parent 319 0 R /Annots [ 332 0 R ] >> endobj 332 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [94.6781 375.6392 242.9473 387.5919] /Subtype/Link/A<> >> endobj 331 0 obj << /D [329 0 R /XYZ 91.8009 721.8656 null] >> endobj 26 0 obj << /D [329 0 R /XYZ 91.8009 329.0693 null] >> endobj 328 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F34 215 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 335 0 obj << /Length 3266 /Filter /FlateDecode >> stream xڵ[K WӀ[+Q.`H9$s}0"Ir C=HQU1TSE*sϜQ?Nҧ__F`Q6-Lxʤ$?߿OItdtPѹt KP)w; |:'gȿƟ?6T]{bgbw6 0`b]]"OFw~~.!'\i6nh[fn a1ד"QnoH%4|!V1}^umI%ۖYb3hp+b@/zTw#I_.*+O IE?]OcTH MMsՍ863?kuZ5#._f7KlhQ}*, B^Rh:*uVocondF5l b muB%gaʄyd[Age6DX6GuS]7FWg3=?jf!ި*(8QШ| jR[zs,.ڼ > wUk8~]C;^ozXx@6/et^c,Նn"͒e(u5!Cab %Ć8ۄ@|(f֭tn8d96EK٨}Ts`)Fc]xЛI*A6$ B^w ꞔCX&p /Zu0FHQ5њ>\" "N.tݸ= B3P+|ٓ(Do%G&o7uiEB*wEbfVKNʧV dbvk4Orkt'Zzِ'%ӗEjvUJzTP+# bsE1YGURP2 F>]'|ߖбRHo4dŇԥYs}X-sm6o7sEMfkeA1\s m&ŠhѫZU)Z{ч.۹ݔ3׌aeYnfQH!h,irUQ#eUuJmSM5p-)-zNMYYmhVXCn<굛\ߒ] R'sclZO$փ=Wëu)0VˎfJ. `˪N-kAt]jȑKUxPK I-Z lJ \i sP ZŸY0JS4ONkN3T Cf4< Z] *`=@۰Ս~?j2T4ѝ$|-ZB )AL.#inǍq=a/Lu4),iI~;彶7)8ɴ)߭@IŘw 9PljFx%["48 R,sܦO1]YYB@Rv|ZUAgJ:<$ ^i#ILJm -:]#߀^)@^/0$ml7m3_f>wT Mv7+=#B](yf.\H  ?ZاlR׽j@Eio:l7N =jPTyAct|s/H:t1i/Y BsY46:*)*ms!xmC:]q'bDd +,d~NXAzCa}| /?!Oā|@ aVy?3 4&|.ܨǩQ-ז=(c7 @bB} g%vtXަyu^.6&H4jYmG'FAx0a]yiL1]E0qK8(~:),G9B}9[ D7ū/-:FO]? Β*CT۠3t vyRE®/hC[> x0כ#%N qn:xa!Kt߸_2[&8wjmŋL%tdDv3/1G 4 ^ -Mr49K1m«_Oq/ogX4ܽ]F &'T`9a띓tob'q}WSv E7^eFBή<݅ _'_76)W]$T+hu[/퐪 `A"*މق+|o@.O kpS u@tKڞ̫_ҝ8ݯvM]K#,'\y,0At-kP^~W4(H=5!;кvM?^o_zD9zq/WMV0Y9x{rt52q\]{Hy׉+?Rvow5*ج5Ug1 J -1v^@*fY'ݤd ?+LMmozsQSFeBC=Imΰ`zLY^19u٤g|sendstream endobj 334 0 obj << /Type /Page /Contents 335 0 R /Resources 333 0 R /MediaBox [0 0 612 792] /Parent 319 0 R >> endobj 336 0 obj << /D [334 0 R /XYZ 91.8009 721.8656 null] >> endobj 333 0 obj << /Font << /F15 224 0 R /F38 287 0 R /F40 302 0 R >> /ProcSet [ /PDF /Text ] >> endobj 339 0 obj << /Length 2562 /Filter /FlateDecode >> stream xڵZK7Wr V$J# _ Džoc"' ԃUU]531*6H̢YQQ?)ub;$<ïKB>?=|?}Ǜ}LpT 6EHDb5&[{OO#gcu뛫L,cɭKxTF>}Lt_?frnS|q_.FMRh0j^׈cuL?Pz8~߮n ![~U2zDO~[cva|i1P@"8Ep0ulj|G"6 s_v0+mWy Vs ׃eMbڱ2C`]6 ¢b ګx=w]ɻmeA6H 8EA0Z7*E4ehKt*5Q,턎 G;at*:o_s'HB)n]l+ھVx Mpo{Vx&b+ %HX1rU{oi('M5VBX7Lӊ61ӊZ.#f{9e2$58O~(6 ёv@ ]Z *K"Zcq-AlE Rq݅ZvQaF}"OiB+%3] _t2툻)!3tXRƧ)|rs;l|$å%()sR{-S r=tҸ;OIS_RL(@k[vP$(0Gu,m ܮ։yjkZv6=+SN4j5șH[YBs[XÃmkf=?e]Vf N|]>AĉE%8 b@VP vj5 <% lU6Ga _t1UoVO)yK#V-v#hoP ET :$hAvXjp5e[lluCPb>Rfo3jVK9:^WR|"Ζ<8M8?; T zT87j[]ɼÓ8WWu([dwz2G ޅp! ]AMF4cVsl^\Um(<'2+CVV]SeԂ*Nլ0'»lw_Za¨9 ([kCN:ƀeKdeoC-Fo~7* "gy T{ǙUS}WtU?%XjP nBb{!HEQ~<" #^ w]z!G&X]y8Du^ex;"} !'p%`_v>~&o(nTg{σݝmvs 9:hή0I} \g/D&>=~Y4󘏯} wϷޮG<#iyZvmtuM'؎"ւKw^~=ԥ6I]n,V bj՛DYmi"^ALV^3φIWldZ<7Vl_3n:r>{gZ*Nr툛zlEQ;)j Z/4Ǎ`/O8]X30|>>RryCG7ͼ $Bۦ=Q؟ЕzD?Ұ>jendstream endobj 338 0 obj << /Type /Page /Contents 339 0 R /Resources 337 0 R /MediaBox [0 0 612 792] /Parent 319 0 R >> endobj 340 0 obj << /D [338 0 R /XYZ 91.8009 721.8656 null] >> endobj 30 0 obj << /D [338 0 R /XYZ 91.8009 182.8732 null] >> endobj 337 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F34 215 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 343 0 obj << /Length 3316 /Filter /FlateDecode >> stream x[K$ l+z?69- P)QUꪞcvzY'#E:HOQt>x/?<OXIQoO(aOI$T) ¿? 5y8ibU e_V`^J5W8~y{uSp%X'N '"`A0 ǪTz x F{jR{aӋ_V$VjVv {V#eH9+fبɹ3M#1PgzΠ&&QpސLߔl.d#mpdsI>> /34]O )KroG?7_#2߬&<@3,KF`^iiٓ%:)XXFe.VVZ]$7ݠ`Fm,W꫓.3WW{++#!P%<o ]]A''HMqjvq FBݭarIㆰ$a߼zpm8 wals6@a!*e#(oyi:4Lr=|`7v#l[ g * V%5`YGrk™閶u%5l<ל ZzF!E6\4B: d` +s)6\oقg5])>5D [^UEp[=RG f @TcF'^f4@޼r5[6cl9(b>M4~.%a#?d+sIT#&[Ե xϗRΠT*u ޭԵi5vkR}G6a;&WԵG`w8KrەfckjRזeeTeCc/J,eu=ɾ%1vMJT߅mCJbiig=oc[OyNoNgV~ؐw"P!|$W#om{``_ 3{ܱp=ۅۭZnӆ^Bsλmp7bwsm8XpZO!(k\] P v9$ KGs6 a2$X{&a.= K쁽Klm..A Jŕj8FR`0a󱪖d.SL,E<[RZRTR0Խ̲HtzVPG&^PCEIm4btgW!G4ɧW'+{Wݬ;6:S"DcZf^f1X-4\[<\r77W$f A }>wuG%rT.5* }UjQP\|W׫u-[fvD_ϲ&ŋؽSyl;lߨ8 g3Ρ]["\+@H-haÑѷhKȱe`:U~hA䬝Oi>އC(һ&1 AS?#,:2Y/?(5)*O0~w"+{YߡN2Gҏp̱Yޱ*uhli TJ,RKqF}xlZŻH}fܧy;Qh}:k[!⥡e< X3SdV1@9W1P$)q\d[0&P ';Ã0äլ3[cR]^t]:9:SCD)޽ԈYukW򤭜_,U1f8ز0a8:ZJ6'$T0f-T"oZ//K#3I~=bdIP2#s (,@K7GE]Lw^Cը4l@f(d K0V݊v89[e&nG+_Iŭ#[XkYCX SGs%x6Fv;:aNLWI>C$<|dAB^wbNNu^jLr \~9MFϙ%dlJgf CEJbQ'Z^TxZCFX~7P~iM,Y2udrzp4lÉ-/|\eˇ:[o?9*Y6Kgz,\v7>^z&)fL7\:w_|[PS&Ta?ZJ R%,21]NRRAFueendstream endobj 342 0 obj << /Type /Page /Contents 343 0 R /Resources 341 0 R /MediaBox [0 0 612 792] /Parent 345 0 R >> endobj 344 0 obj << /D [342 0 R /XYZ 91.8009 721.8656 null] >> endobj 341 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 348 0 obj << /Length 2656 /Filter /FlateDecode >> stream x[K] W"m. <:N"]^J"uE0;(R"?)fQIr.F𳿻:Y0Z%O`2pwo_)  >6 dw)&, iL<}qXQL␮MM3"QkvE;l߰^6ڣ߂[^& $ DHA҆Wb4kCTqtr\mBb X?{/ޕ^b8w6Ч,&"p tDEʋinM3kOwѤ}^>(o݇Ŭ Sm0>W&jMfs`X5 6ctWZ`D,v$BE▕PJdA6H\q:-mih^ެ/jjKA(8 SOGϮ4p{ S^6=Ah"6#)M-GAV 'L9F?F E~kk\yls^dy\v]*'pۍ!N+mp/^ uv޴ 2f(C u/`4*asB~tAOG1IuKAY Daa TՔv+֡k:3׸HF|qe7xvݛ0,Le]}TCFZkY$7{C,V@zX{\{`sNR . pp׃u ׭6Ó%S$6@}[kDdisl֬_.k]Y`{7MDt22?%e &=klc!v.ƙhgBsD1A5GE1Vv ͛V+XOelpOI$Աr0So߮-z,rtmNƽ -`8GWQ9ߞdǬ'er;Ȅc=$܃Lx=r&H2WDg-Ijs,7}YesY3&.bዀN1ui,jqjtt3L]q ;ź6j'Kg1+ȣevh*豱Ԡ̓$.9wZjE p;(") {/M'6Zq _@aziJvRDHL+۸h+]yh]씨K¢Rny+^FQC" 9B3,ڕ-c?DzAc 1geLrwۛ,7}izNuŢl6_3|+m rHKn͇_Eg~yM[M\& 4\܀]Nl=6M.DY-+Depl\H|,4؊)ycOlSHzqkeq-aŧqyjBG (C)1wxayCq[yoG6p . mR3l'pYn?ؾe~ʌ$i.;?^F;Jwz1CwI鼧i<'bӢ^vz UGv>cFիe~e0q@:6dLK2?etendstream endobj 347 0 obj << /Type /Page /Contents 348 0 R /Resources 346 0 R /MediaBox [0 0 612 792] /Parent 345 0 R >> endobj 349 0 obj << /D [347 0 R /XYZ 91.8009 721.8656 null] >> endobj 34 0 obj << /D [347 0 R /XYZ 91.8009 674.3441 null] >> endobj 346 0 obj << /Font << /F34 215 0 R /F38 287 0 R /F15 224 0 R /F40 302 0 R >> /ProcSet [ /PDF /Text ] >> endobj 352 0 obj << /Length 3242 /Filter /FlateDecode >> stream xڵ[K WmVG#HEr!m ^?Yc㜌R{YwWO$E% </_ۏ/D3/+L(?ݿB3<,^5;7J7J7I׼Q,/OgeY $s1q6ϩv#,|ß9~F*Hщ_AC`J Z1gLC!e2JȔ$#`O2?@"@OQ;*}+ʲG|! %kr(VLlc,$g/G.|TVMubD{Ȫ0T:hta9 BћvWhg|t&YŜ%w/.׏O+9\LQ_#IV]x+*$StPDQK|q,!(%bä  ؎{B pJa~5Ks`ϕjOR*NhY;F3c\ث "o# .crίu6!$snb.x*Ysn5;;0bA/PÙ`'XM<]zC WXcaׇq~AbD)pzj=-DEW#Y}{í>LN|b9Va 뚖@!#F0ҶdO2fbH~co."(;,U9~:d@ÚZ W"J3*nφ9&k d*\Q3a ' Rnn"u8+u"!K)~52eiϱEs͊JyVDo%&Z01sCSy>!CF뻟~x!;h[)A$Oa.F *t-TR^Uz@{II<3=hpt \[#nO=GПíQ>*ϱbPmqwgv]9a$g4l! 8o(W{݁tmcwk!KLݍlۄy#m$}nEݣ`5oR:қhgЃ3̃$wY06͂Dvv{9иϦ:"}E'8ckM8/d]a6ʛ ژud4 o׭f,qF0[${d[i_u9}z;;qg[}BN_s}HׁÎMoLy%vA#]z,E%k*30c O,9)AؤJ5-Łrgb/2jA<л%}i Pz$(/ɢv}A"]>%=\I%4d^~ej8l5Q;tE8-9G/kgVvmAg>0 :-c+ c"[K8[$Fc,|b|JI˖,pgüizIȉn? YZj,6adZ27;uCel;ZmvYiYu@R_j PBfJo]o%& R0.C tkoYh^6ܬimBt=ǝY?bPÐZБDIoM#*)e,_/u"Ǜ4,Xݕ(B2~SM3u]yŰ jy=#*ǸlHAmS]Z 5í%#޳"nq M ~6Vu/8Aʜ`2.TDY[STIp.v-%t"<Xnw+ZZr&z &;$%d/K> endobj 353 0 obj << /D [351 0 R /XYZ 91.8009 721.8656 null] >> endobj 38 0 obj << /D [351 0 R /XYZ 91.8009 674.3441 null] >> endobj 42 0 obj << /D [351 0 R /XYZ 91.8009 310.9767 null] >> endobj 350 0 obj << /Font << /F34 215 0 R /F15 224 0 R /F40 302 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 356 0 obj << /Length 3123 /Filter /FlateDecode >> stream xˎh(>n9E>K,,6bݜ] z?d?wڜ)nC7>0 [3tITA>[tf+J{&O!b<=}9]$!6bD7_ m=q%sIi3[7nɧ_O'`ӗ?{vO_?~.цƺ'=72?ODDtL%&r}B!#?_g[g2d*M`CJ#appS%Eq]bU{e/D%d픂GƷFPɢ` 79/U?LK~<N$wnr*4rR=_ <M%CDH"R}ξ1!F}@ױDŐ݆SiNe sS ] ZQ]q$.%t"" HSf;ω P, SzLZ[%tٔ:6:TôYJ@݄*]fNG껁2RYn22l3 L0a},hiij.Xyrh cX5q[ &n*PsH\|Pj=8 ƬlgǡEr<nLv%mNu 9AKpMm(jS@`vTWԦ}:V؟dl¼+)<)P9LWΫjň˷լn֩JsYf~2g3|LkMtd8612l:# V֭(0U AGOy+JF9OXTU-aqU:$Ex0r8K!|5Xsm d7BI~ 0gIYUUt &eX)3)W6ɸ DJ@]Lu=6(hd1\4E\:;G= z{h\AʶXfLx9l\fVIۇ3*Il^,bD,V[IuPBwq4L^^{:90>@$!f5U}vq0$HLJafGJyF8d1R{e.-~}}*Զ"( =!<`רI=UUVJ>d43!t~_ciBd5X9|ɤu4 Aɡ kYn9B9V)`l?~}- LPɆAdܖ*n7 V [wBDaR|.|@AyT7I=j`xBRbm@s^x⧉Jm3wXv[&4Z$"Ŏ)^X URs,TzSБhwS5vshYA DZf#! )1=%DQ;\5ߜ9 .^Kt.CO,/x3vœqwӅbYCOQ?ag'5U4Cf.ǪϚJ) uk9Sf%@{(kbz]~*] cC]t]:c$Β2?AV0ꩻ|M7VuoEF=XE_7LD@v'gN"rv@aۊ߾ $\S0en⸹5ݴ,B _ j Aa Հ{ R?Ыߦ!c@u{p>w!kd:AYy7 |)b^ uߚtH6: kY[ Lo։Z*h3(B}7}v:N0iζ;B_@g/nE>t,=f6;3*={v 읮)z[0hd3OA<^?W8I%OhȮnˑwQrKa[L;k'/ gH!'bѠ`s1;AFRa{k@=oiNLM*7zv} Zkqj9 [*F'FbImTZ%x%bN~ Ӷ/',}+!n?L_pH_ "׌^_EģnZ㖪 .q^Ldj5f&S@ 9m}߯1Y'kZJ^֛ne0ݭ0vSzKa5ybW={x0sC+VدdSs/%[;zgP=ҘlV%V d" *vg&%:ԝ_\cZiIʎV{|^Oҋ`$;pgc( l-J 7̪"nG6s0(2/aJ/?j/jWt.,@ uPꟺ(d.\ڟRC0<endstream endobj 355 0 obj << /Type /Page /Contents 356 0 R /Resources 354 0 R /MediaBox [0 0 612 792] /Parent 345 0 R >> endobj 357 0 obj << /D [355 0 R /XYZ 91.8009 721.8656 null] >> endobj 354 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F14 294 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 360 0 obj << /Length 3517 /Filter /FlateDecode >> stream xڽ\K] Wܬ|iRE]tzk$'#wƅaϝs)IQiqG`pr>XcOo~|O~& %2l$g"DճOXҞ^,O7pn"}9k'{XF3$]~fm{֘Z2 8fNFYF4>TV%.vs&2:!C~F%0^Ƨ?Y_9|\]DB ->x$Y&Nj$. j+udt6h`?;`YlkEފ|9FX#T#t1xi,/ͧ F?5>x(^VEuYh ,]!yFEU~*I*b)ڬgvjʢ#)S\R vY-SS%7 f Y?}u,kROVc5:*Hy6y]TEuNeifOi28gKg@Zw`j!i7:j,UY~aQw.کqi)ƭ3 ;JgGQ}UKbd pqSOogG^yt6MQy\ů{7E1 3(Ilo\dcIOa؛_oҨ4|% ͂֠U`4K)Eg~S$:~x.jaݐu)h-:#E)=qԮ{k,AmءbTH<tCۚl,s OXZG@5tϢ} 3/<)oJ<_wq ɂ>'5fI4 4GB2ʣ'g2?FGNݓ*eM1 ׮Vos+q*D>yzUښF=AlA0H8,$WHńϔuB9LR*ŬR?=5U/"= ARP`}m:/uA3+hdG=9Wp) zy8X`'XruP(]Y>ai\_Ɗ>L=?{{pb?Eط?|9e8"GMZ+EGx.aqЃ=&^PϬn'@>ztҏtɏ;qWh_Z,91s+ )$+.syB=`E]chAj~mcUP1+rBowZ ?I?I`9.CN3WT5'5VO+\[˓ nO yd'U#T`a7B]. G|v]1G0QL\1^\ԗχR=~2]XΕܙ8ȝ;@;+yr_c %wkF;Nc8M~$R);FR>IP{%*(f2:©F9}{=FOkɼsvqmQv"cyG] %yd>v ;6H<qiInK2!$Bb?x0K.zpu`2!)s;e6H܉JICCz #hP@T-b-û~1觖6>7"$29rZLv879$A2:}O \mDHV11܁)X :{u :fվ重#\*b46ZYAsɤS6TR,@fՆfFsTW]13-}kNÁB,ʔbѦ夔9Wbp&4|;4"BR m$au;+4XBꊭʾ1@͋>TǕ`O#+z.ӕR\ZKj&'d:!L^*v8.e 5-'(N RkuzwX`s٩~-i6}K}`y&D-/Q@ [(Jz9Q mнtJ Hxqd+ΒS-i`[hEc͍xiªNAZ16UˊqXmEimFŻ Xi<\LZr ޡFI"M$IH/0عu;k!}:[7e'<wWhI&̟vzy6QKɵ.hUh Dڴ9J'8IPu&vVxܟ\MODG:!nOr1ھ(Ƈ}lj 5* DfWo Vo-JеN]&&5&6}IBb[Y//S `56M{<\ 6Hr.9lJ|qQ·Sso(pi,('G=1zѳ#[5O-j"*0xΚ$*w-9հN.psR|4,85:T4j7kzlM+P\kQcxbe-iSm N[r=;ÂK]X<`6fGdPT/bNi]OL,  Ra^(ٜU.ՐնV11,fAofzsPwen{dY:3Á5(9ym92ڈwnCse]$z&gƘG6GBiM =WIΙVW*5U:SEEur+Y`$~`%LޅNKl[ޡ]z7HܫGNtkZtً+\qn%6jV_ԖP%%U-CfٕC>[-&\pr`c/+ޝ=.ne,+x-3ݓnEB7W_? RyhC|%=`b¬_7G DJChJJ Liendstream endobj 359 0 obj << /Type /Page /Contents 360 0 R /Resources 358 0 R /MediaBox [0 0 612 792] /Parent 345 0 R >> endobj 361 0 obj << /D [359 0 R /XYZ 91.8009 721.8656 null] >> endobj 358 0 obj << /Font << /F15 224 0 R /F40 302 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 364 0 obj << /Length 2708 /Filter /FlateDecode >> stream xZKoWO,$ `Үl8FroOQlMjZR1qwub-NqO__xW"(pLz%EpǴ61Ooz.s.'%vvw+ v&B~ҚYBȟ#ӷjiQ;mgx\o_ϊ< ǿ?/t[  SͬSf2lw\)Qҵrn5gR\P80u\CkCo*_~f4p(8uD͢5C# |RLcx7=Q `VXu22TrvBA2hϙa )(8\j:IЛE>ZRZ*\UpU-c5x^&6tN,;A%8A $*hU6&؅:ZLȞ`IԀg,`dm,uJM8q0]h)<|c!E/q_1d_,ogQΆ $|B70?iFs}?DTs>n?g_>>2HTtWQIRdEpF~8)#|XQ|@lAi[ᡅF+7He0dmLH`hNYZ Dlm*8)pwr˰ZIxzz,iTT&el\eH${ SLqr)7Uq sd+yYY'%xir92gH.'x;L.F_ˉ\$4sI&QȎg5A&'2_.].b\*J.?!-ؗmʶ7 BcȽLNҮ3W)Ā˷vkFf:a Olfrɷ(0?¬t[ qRV)ov̒5QY97jճTz$6 )i[Tc 7 <-lb1Q[*-+1Jƥ;dF\ɖeEr:K⒡!$#w&DTfs]s *gW/sRnME)Z;@UۥlYd%e/6IrU6(rJ.4=8!(.\n dyb:V=kLh 4J2j2-DZz'X ]nv7[epT6b%n#X;I[8Xΰ%[~T$n㻪̥rs[@M՗.ѵ_Ԗ[BpAX nCB5+ 3?pawF 0駟i׆<-E?x q+^ܩ%V?^ ÌIP*T3@}˘qӗ= >Gbh6rf}qz+Qf}]h\Rx=.$L0'c3t-sŜQ~fo%2!Eq5P #WFO]6UeO|ET[^ǜ%nZr\D`wΘg12Bvu)VZ,]:>V$I">:pL ԫ9ɪzaU聡UBnT8rPzP ,l-0y'PBWn."ee~uЫ 1Zˡj~8b|LU}nqhݳ~3ɐu[\=@eKjqivnxC-h5ܜ{LK\ꝃjrK<ُyK vT(等\̕d a;:Ep2nD4a\kd(9+z|ZE~pl6|3UgњkI:exQϺDLQӷ5]ע=QGրAnґR_CGX㓣h$VC\,d1!qkmT|endstream endobj 363 0 obj << /Type /Page /Contents 364 0 R /Resources 362 0 R /MediaBox [0 0 612 792] /Parent 345 0 R >> endobj 365 0 obj << /D [363 0 R /XYZ 91.8009 721.8656 null] >> endobj 362 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 368 0 obj << /Length 3295 /Filter /FlateDecode >> stream x[KW |a*> 1c[dr+ vS|Yt4CNw5ޏ^uOAxqB_Jcu&_&wO(aS0GJD?~E !%+/Bpx=1rF=Yޝgu`i2sӹ("̜?zZy+NëCDܼ;o/-t JzaC0 cmtV`^y{XT) E;\*/u /_Т~ZiXkpƄ]D7aFaRW VH _ s=5' =F/k&Y!UɤRa2.p+L,Ihymym wUGu\?|xm.xW,`g(\+O{ZwUe-Yr qvdRL)ao@?)b89넴lxE$kT?"y$*e$hɄf+ wP'&n o-–Q(\ꠏ'M8fQ"z%IJO$*Yj(|Ք% ӕY@VGVVLSTOQW+$P+:l `;QǛq]tHgvr7YuGR:ӾOe2Tx+v\dyˆeh܈dZu(*˝҇eB,߬*N0EȲgI>,MۿpK# AR&.Aуn&hh'A]!AIz49uRJ|uK%4(vQ=I6>4xDvqbYǠ0f==Qrwx1Ord-yBY# hp>ݮ3"+A@ujPB C|+C,$lC6FDU8ֽ?\6'yX֯N̵.:5W,AHu7}oRKXyYzhz׻;zQi;Tۖk'J[5kOx`K:{&.KQXO-~N:!sg肤Vi&{꡺la_y*|z˹J'-);u] 4+*aN};4)u>tҐt@/kJElځ LفUbb#A%Iʞ4/LvVtP%]%u!CFjVm!Tf8>sL~xz od:JZQdU%r`nP韲FY42*90SDŽA|f@=tjgxBO*nw6LmE)A.9ǻSѢB/|lP\G:a'۴Dtw!ô>,bAXF 55&sv0LԎ~YȌ<=eTSv,rG-Y?n5K*䦪Z}lB=0Uχ;hck7(vd3 N t/gS9R&n"p4Bٶ`(J\>ɒA 2Kz2@s>di[MdW/I`֗1#ےr 1]PL{3 ;LyKBœkȹsP#shDVyfI,.Yp}`kuC})97D9<\R#Ge&DoB}1<ɾЅ>ؽj)p]nq xܪ%oqkUY> endobj 369 0 obj << /D [367 0 R /XYZ 91.8009 721.8656 null] >> endobj 366 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F38 287 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 373 0 obj << /Length 3394 /Filter /FlateDecode >> stream xڵ\[ ~8KvUKhN8"NZA{ 5H#9!?QGJ8q'NA0y89 /??"g*x oߞLyNgڬ>wkΒ]OZiq'a s=Eb^wapu:~x' :CC|t}ԩH3PDYGqt?ô,#2[8Xh ~;I2}q-DhA+'p[% L53EkZfZ9鶀4꩚a}UJ^ Iy6,nv9aj_sƕHЮfGIz@02],7GlO#1Gl}Vac=m%宒d#MUh݀cɀ] Akr0"Xas*G`&u]M1E8Xp\{Qhly[QSTK%cګU$]>Hِo8.n#dʫmT@5QRu~O/`Z{xl1è7i$NBsm7+MK8=-S]gߤiޗؔgF[Qm\jnA)#sUܓ<LjNkyx Ko=rqf{Z&WS׬0 hǯs7Zsn:آ9AZvwY:D tRyHXą GjnJ 68rgwv KtɷnA Dj[af;vCcaH4Bldaq^p9֎%mOsUO %hC"5!}83K|[KKC+67޳L&D3g67_vFl9ӳ[EdoiXw.w.*Mѷ ~x4Zo nh1>$f>l\5vͻ>h+Vt}m':MaDc>.xsǂvAc<^qɤåB(WŎ2:{x{/o/[ xO15!=W40u"ׯz# av7/Kօ4U,25r#o~?|8XѻkF $)g/X>F3eሏ#ם*{_Q+ [ɾz>TP/lX=^O_TH>1k`XVsRWNh5o yAO'֜y5za!y *vt#q'?ᘑ\>VT<k 8å+WUS%C(ѩ)3n2NU,Lv`!8QuhKkkendstream endobj 372 0 obj << /Type /Page /Contents 373 0 R /Resources 371 0 R /MediaBox [0 0 612 792] /Parent 370 0 R >> endobj 374 0 obj << /D [372 0 R /XYZ 91.8009 721.8656 null] >> endobj 371 0 obj << /Font << /F40 302 0 R /F41 314 0 R /F15 224 0 R /F38 287 0 R /F14 294 0 R >> /ProcSet [ /PDF /Text ] >> endobj 377 0 obj << /Length 3527 /Filter /FlateDecode >> stream xڵ\ͳWl|1(.rHUS܀q!89Phg.2oVkvʼn[8''5G4Z.LEg#9;/0'ϼIp˜d˼//wZ~w{BYY&QFazYOS.u閕";d;k#NT  PhA~Z _$E@AB\%`xW$WɺAdnҢ\U,lQT9[D dNEҗ~: ͼ*7F5YtoMRS@I"/YΦI7nDHvH,ۖ_e5C _AZr/e«#Qt%aETZVRaǢ5=%65}|;ބCy]dƑ7x@bbvD/p6F(н- )fRW V`S .@ [ :T4ԌOd0lo*5wL/¡kihs: !CUo$aGEN((`V^\ݾ][2Y2^}zԏ 5wV,3YjpoM /;2fkT .sNU F,cp`!6tBC7EH$Dyjd^Xt*#NxƿuJ$?CO,PUK MĦ- /!45XUK*Fl|=osOJnHOKG}Vead͸a>6V3leYR^5hNBeϧ[BN;nMP y6P@w@9} VWA*2!$sA0^A+gBTQ~[ІIE^up@pம*ŬR.ҭ>m*\ z=P Z&zJ̀gUˤՕ R#)` u_D%/^uZvuh Vb@c(RւC:/ | fqH-ƀ%ʹ,;^"ÿb uqT6$Rcŝ#>zhi%V(R9x,HHjB,٣MJA FZ/,\h*jlS{T`E` ͐eUM(u[iY{§ nKv/հwXݔ7f7Md1e@ K.,ڪ%sK+7_kTj&%`@+ra1QE593mY;ÅF2+r.$nWhRT$P@0|\&gy-ü}xQKzw(&[@zۜ1C#mt͵ڌ?, C<-Qͺ]G f0s"=?hL+2tv>ZMuV 0=n "ӑ-mvہG'Joq}vP 'JgǭSx0q帩 r ~i\9J RTLUbV|!vGOو,n'e>o^z~.voUlU[H4?\)L;Q& Wu@X`7k!Z%fd+@ԠB6򗟿|][Q+5J?;\VF`I?UJNsG{HaԟFXF6qs#΅xR~-)K \[}33T3e)SMiP|f;n9Vv" Vb ۡυ|@*<_-'6DZ U `H1=YoZE2ax0R}5d++Oebf";mtJg"AdhɌ[FP^3(-cA) t!'2? GV›m ("P`ń1(ط}x Q?m" Vbz(uv@}$5vW+VbVZdF.nhg{qMft{RdB9Ďrl\f`Oh=̀m%z5[f!j}|0#>In$áIJF_o X#k`)6G-_,G3HHX[m:Xς{!M;_W;?ʢbCI4(vD\[}/=QGN`Dt|Y.n|0#LwЭgG@g`n˿ڹtgWT&=~845I!8#3eի?N~vQa48h=|=tBf[a~[LK%H+vi3>\>ot,foHٵ f u $?R]< 0(_(Q?t!ylk7",2g2xS/DwOzHcnP%p3"Y@}~8mhݟhN^7ќEDSua_2ќ곕8h]4ќ`k$'+g`[Ӊo8є q;k| YW`w[7vE|5!js'>UU? cpN XMbfP\nFP!526_(gIXニo~`H͏.{QM*A (Nu:4"C\o͹lswV6nNzn+ռlJ#2k$u Z ?s~Ρl[18 jlK28FˏZS;Khԉ@lxэN cuɭrjv 4ٹ|;:ʮ]ÇJj^ a5MbpԫH"(8gض8Ck%FøZgJܩsJ{1H31^gLϮW\9k$|/NZ{ȃ<|&ӎskgdQf#Z#q<>+Bbr_q @#BL&)`'-t;.KG lq : |:eSMTdc );3endstream endobj 376 0 obj << /Type /Page /Contents 377 0 R /Resources 375 0 R /MediaBox [0 0 612 792] /Parent 370 0 R >> endobj 378 0 obj << /D [376 0 R /XYZ 91.8009 721.8656 null] >> endobj 375 0 obj << /Font << /F15 224 0 R /F40 302 0 R >> /ProcSet [ /PDF /Text ] >> endobj 381 0 obj << /Length 3509 /Filter /FlateDecode >> stream x\K W4|Z1 @o=ڞā=^سdJRWwn6EI8p#A0y88 /w_ÿ_^Bg*x ?t>=ə^LO? s,Xio[- Û޼UBU xiJÛ:{Lj zu{% 5^Y >7F�C։[T|7,u"G,WGULߌT Ŋ6HR ?YJ&ZjL6SI UyNy+M]T*ݒLyGxɍ%ڨxJч,# 0gd6#\9e5OjU_SE$-/vFּZ#q!7BZLŋEY`u_ (4ڕ)S0++o񥆧weUkrz⇟MjeN15,irV7րY`'DTO&tu2TE zȯP%/??gk?l{̽'- !XW,$øi=Ҷ*+^b\q5bۡ" M+f;\yQV^"T%ңJ2yb,D+} #% 3/<ɐ 1r^wV% dA+͔3 g:x}PW~n1AR+uWRPL ) PQ\ j1:ܖX 2 +g uN Uɜpzfp±v^TL8xX}l_v}Fir=Kl]G}i}kuWPr[J,J 6ϙ oQ;ƭn{TY4F*94eDh|`FdjpDTsfȬ;3BǚEP#)zD9hL#xfM)uxdF0ΟoR\kxlA>Ȣ>|#XM8jnz=G.|!F'G6\ey/Ќ0 sKɌnM18 5Lt3ufl rl!W #Q;E!.PB@vr=®.! &o>:gjܾ$Fk97.p^5J JҬ5B5K&Qc}`Hv T,L2kZcŚ$V`4֡[_5b V)v*銄V#-Tj߷Gr-Q+H"|Ed@>>t]  qY ƔfKU,=swܨdfnaSjHl, TEiYA YGWoNm ,d$/oe2SleQs _ーʕeYzYXOY+`2V ׬ YglX,c1,Ѩۻzd9|+g2HZpSΣ`Fؖ#L f XϷLk!Ae*Tڴyz`*(3Dl"vk5'1t3dg`i`7سxvS ;2XÏ׭-Ⳁs~ );&B崖\0F NwLpT%ҔS)^-NQAQ1dLDuv}r@l%kjjrcimRzҨ>6DV0(% aEiݚ|w>YQbˊj`VTcЊ5Vv -%v͓ ]̶573봼_#[JF4KMXހ86efG[Me ݝճktLwzv 9kV6Z#FS)݅UM4C\_eq`wj8Hlmoj3ֈ.lln?\+q6 lKq5Q9#hM/CgQdLG .~)9*Ym">JPp`àFduBZ#1B{Z('b870BNэy*ᦎĮus;6o tWNT7aԩs\]2tʼn.575m,|(_광x]JxGS߾7;<{6 ĦCX:^n6萋NkXlYD(U/zZR;}ՕXO7p R+כȗkk٩>VntpC/@nh/. N.֮ZL*,/Wj9E2ZnT2M[LP߃\MW@jZ e4cPV]CV*Q\|H^Iy^j'=Nd[[PlË́~™:Haꆛz0H r"7Bӹϭ*#UmmZF7{=UIԗLw75:/{3g 4lw9qIELEjK!j}﫮eh~w0)h3#Wfw!B6n`mӡV}=4xeݰteKǐ΋bq,7zўGTDx6FRskP5B0)Qֺ+k~+pI5Xy:sb+.t %#y-S(t28/tx8"f:|_Xp,SXA35:0 ?ڢpt,@խĮЂCpv,2xMW|:z{>]!DF=oslmjd 櫡AxA<)D ;HID>u"!~S.]|d6WG+NQ8mVkjXK]IIo L~ºJ'" _5;f~endstream endobj 380 0 obj << /Type /Page /Contents 381 0 R /Resources 379 0 R /MediaBox [0 0 612 792] /Parent 370 0 R >> endobj 382 0 obj << /D [380 0 R /XYZ 91.8009 721.8656 null] >> endobj 379 0 obj << /Font << /F15 224 0 R /F40 302 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 385 0 obj << /Length 3708 /Filter /FlateDecode >> stream xڵ\[o\~X%eyh[ǑU8r_/Cy+ diɕ8q'NA0y89 ?XcO~}O?óވBg*x LLyNg%*"|Ł}fOZiq')3NGBO')B+A${Yx,doF>G~+$+F3c:װB#{k~ ,XiO>*]%{7o&0>Qn[@ |"^NK`[Y8f%CN+`ӀuSdHdAH3_E7XoX:\Ղ˂-/[RHׇh2˕cqIfU;N#Y˭<y R)ut!=ն s`JVYEhBh*Y~5@|Yime ))*S@ Pc<[LFLe?c1GbPY\_ 1bZJ&cyC@ٽ\qJp,hk+J(l$ï;Q!I;m_Is>$? &T9-V=J|J#gR"aH*#Y$O[?۬V y+EgX-aqd+Z-YQ {mC}IX'ZniT\n|Yl y1#E*U+ħl Dg@G1[WGImpyb3Qk*"ֈ 躆 P9WW$sU"ַ@ M^&)q%N[SmRm2W]UY-dڪcIsQ ]%x^JӪX('%uKb$eU)K[ uvhXCUQ'8 W6RZդ]`,eyU*-Za*2eVsMlHQULPi3VlWg Q5'.-fmqqPb E XS[t RyNtE]E] Ud[p1QNC^s$\73aeQB-"0T$Ӣӧv/yMy[ws)mj t!)zkzN9nMO&~cGYԦZ.1p*&̩lٴ)H?  a hyojhf|&LAU/&,#3Ig3Ilq 62f/Y7ͼFI>tޞ@,Z3%a6ئD,IشOqghX^x] mryC3}l2`sfhhJB 4:jq&>H^`ޖ=4P+j^k !Ib4:+E{2%Ty1KOkylffAd*f!hJ:jM iSm,TuEP~+CbĠ5G˫-unڱ-v4%9TJWN| /6n! sǥA]ሦed&RjR~[MEL$QU8 c}2gG&ي1oNEôq.MdbzGÑi%R("4[\TXU4.2Tv23 +oD>zi]ݞk;SRݲ "fz68QCx(Tt2jՕ۶EO5,Ⴧ;3m;tŖ b3(Z.ԎbzKS>.76BEqqOa5]u˙] ȓDZ7{`5H; 9J [b2?ybPb,bz>\J} BK週 \!Twh"ܚA:8Nt-l#K.^^Rd<TL+/.L/KAO9+Uuy9WדchǹEG,x[~l+E9ܘA{#r&t񈥜n<UG HaM % CKxĪa㔩̭cá׋ob=[?"M:%cv 43H@yKV6u ;/ݴcjGj ӓҺ)J7s K <!|湮2:wi_TNEI+7eBToGfp*8L_2ƫM ̕nxZr:΢{X@$o6៱8.xnJZlQ[n-V+po=5]`-dԯR̖q? A'm]# ԟϸl8,ZqTg)װcՆ)~2ثl+0UQm:k$'{~wTdx燂֠)sT /k0!:ϴٕyP(q~e^pH3VGf!x`Z8cR(}.e|or8ug8q J&vew~Sv(endstream endobj 384 0 obj << /Type /Page /Contents 385 0 R /Resources 383 0 R /MediaBox [0 0 612 792] /Parent 370 0 R >> endobj 386 0 obj << /D [384 0 R /XYZ 91.8009 721.8656 null] >> endobj 383 0 obj << /Font << /F40 302 0 R /F15 224 0 R >> /ProcSet [ /PDF /Text ] >> endobj 389 0 obj << /Length 3323 /Filter /FlateDecode >> stream xڽ[Is WB)NFY{O2Y83~*Dҙn^Cj`"cc=+[jқp$}OF",Zgw/?߼ˣoa[¶RQ%`1k YvO:ZNp:zz֘YDuuP_y|nIðo=Jց~.F{HU9B[JL>-)!g'vʈQbU9Ğ':R5z0*X9(v0q+I@IE8˜{R^BmC`/* {:CS҃N;KvHT=*5[-OtgϞkkc!=֧_k'kon&lz )D@` $2k.DO -羅Im|" )`\0/6^:m3܀8hv4X^0!>)F0!K0Yvu.b01kQe!]Kzu6ΞPݪ5=5ْwYr3U2^;"$;/~ҽ4^!3_q>p)(Rǝ-QPPT+ox`e*V.Qeq:Ov6[ܭ܎}鸊in&Dx!tV6szXo 6i@#FC*863u"]waj{:՞*,-1yv^*"j~-sΥZ,Z7yY3r:X(q#k@!,:9> (H1afƂ@o܃P]8+Y\Jg>;Ō9ܝx+CmZzfEĜ$sK"(Z0t`Ɠp<ʳ™JS1> jpM O(/$S1N]UǥJ-H'7唸Qᚺ_Ds3UJYfԫ7HTMm|.U&SWTߥtn=C,|ʼ*rCE>9%Uu.,)Qb9 lHkBHmo0vb/IkuD?@=8vے[i @q8G[۝qHg];qgXCmt)(@ M4tmӮZ{{߿ v#'r;[MD@),'?ʄ| )n'!isPZ]mtҋ BU4;YyZmŁgT_2@kW5{|"[hQgQQ/D~vWm߯B^2k;`@#Zos!gh}Kޗ RMQ5^j wd͙l4T 2( OwoJf9gCΖl{_P'o?&?K&YoOeAl o]<_;~&WUrݵߖg&Dm3tOL`u+qoSvʇDTf;ɛY'ţc.p&\)y0)홙ȃeL %Ft(=n.g'4t3M|5kMd༅;ԋxo՜$@q~<'68HblDe?P:ĸ.-F endstream endobj 388 0 obj << /Type /Page /Contents 389 0 R /Resources 387 0 R /MediaBox [0 0 612 792] /Parent 370 0 R >> endobj 390 0 obj << /D [388 0 R /XYZ 91.8009 721.8656 null] >> endobj 46 0 obj << /D [388 0 R /XYZ 91.8009 174.4513 null] >> endobj 387 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F41 314 0 R /F34 215 0 R >> /ProcSet [ /PDF /Text ] >> endobj 393 0 obj << /Length 3108 /Filter /FlateDecode >> stream x\KWͳM>$m$E9$z@V{bM =լů"؁?v,ڃp>~~{߽`Fpй{h{81eKoF3U1z8qb%G)$F}z>Eȼ^ۅ?Tke| x[kϨs>>WkK>>{|巒,CFoz|?17ɘ!VjuM+¹e78xo0^anOg XzI=eS!b~[%RTn/Cja +q0bJٖtҐJL+9 d0Sw ni-=d+AF͏~؜`o*ZJ5*_ƼJ@Z ?bY$ݎ\tсMqB U d&40^ F~BdP6Q{n1; 44`LIq ,@h#Q:Oݤ0e &Z+ E#[tMYìԉmuJY>$3?ojv5D9MvA> ؖ|@?~x=w`ć[+G*$aX8UI٢Mz0xBMb$p5) "TGX|vI*WknY!D$=h~ Pc-|be bUɣicM/\%b2]#y"Sr<fC+lh)kT:JدWt]]bD T?t5i:c 0BbOa]cKS-e4U'iHKG2OBa(YOЃ7scM:w\7BwsحgKEbD!!ݠwlnbUUr82߭f0>RM9gQŲuPo\ "@cD<8g A[ Dg$iM+D 9qI+!Z ~ QZre>]ЇPjX2V|hc7yYB0Nu]/_IĵBR$*ʺ`%%-SD.,PXsAb(T5HJ_[Q5HaRrjFgpwP5g a&NVr:R5TnmG'OcU07T5H\^E3>U5dq c{)ɮOwcЭDZa[{͌ji@݃CWx4!ߪ:)f72 JIEl%A2)p{wP2L& K0S=GЃwBl=N_%zh T0 bNm& yzll=NǶl1Zf XQ;L&Ct[P9%{Y9_0 -' !Ν!D k!p-D~ZCB:g!l]@k<=`[ZE:w=n]LO^WLO& 9te8/_/clIruJ28-G<̘Oyl=0֘dxq:NM^B.}dP˶1Mdzi4L58 jbT`@wR-B.^Ҥw2HZRTl!4yY /7GEXؖ&6m@58J&U*R={߃#uE=u!XOHÖt7 wҀ,RRp LʖB}edY *QNGS4BZa=v҇!)үoVHH"Itp !',+_ hPLG&њ4wOYQu,O8N<ΑZIJJ9:H:c *r:ruW_qr7zQi#j>jd[ЕoKVc*Qʦ8Q_͒ ++u-6280 eDkd򭑟J4V$ӑ˱aFkMQǓ?2\4qX:x32䯎 HtwWƳ'ډD"Hpա刻_ M_eW;Hj5L ~ϦH=Y &{ijТDW2aXƆ9ǐ$`mRLU["i<㧬lQuIu4<[I5c=)/ycXd]a٢ \s 7-?*$T9=GRE`sM*j+%X.17hɱO(5 endstream endobj 392 0 obj << /Type /Page /Contents 393 0 R /Resources 391 0 R /MediaBox [0 0 612 792] /Parent 395 0 R >> endobj 394 0 obj << /D [392 0 R /XYZ 91.8009 721.8656 null] >> endobj 50 0 obj << /D [392 0 R /XYZ 91.8009 216.3333 null] >> endobj 391 0 obj << /Font << /F40 302 0 R /F41 314 0 R /F15 224 0 R /F34 215 0 R >> /ProcSet [ /PDF /Text ] >> endobj 398 0 obj << /Length 3499 /Filter /FlateDecode >> stream xڽ\K W3[#/r |# M俇zPEurbᙞ.6")zʼn󜇓{z?L-=SK`p:F%2"!y㧳d{yV)gIX='~i" 22%rj \60!y^=O VӫBU^×ϟ?>W~Wm͉DlA08ΔHۼC px5_kRUJ.59tM@3L"Y8S; J$c&dN8 HWLBD»j虲<6JA.׃U |N&3֌9ZϟwOJ'enMirbD50ô?[%]VgGZdۯo;BkpR.cEP'#x&++ԓ<6O$Ua@Ri \n:i]ۅzx2 a˴0wQi?EԿ϶~GnU w?ƊO/qp?_K5Xz%aA +b.d fCgB G܌ @Ix̀*X >gz_ O v REI'VC"DO0;t NPҌXLE,]paZw=f V^ŮȀ׀LnJ6K(n \knD׃Mj Tx ReըLX..4z~!=<fSL0K;*,1ܪ@ۯKXQ)AڡEQp)KGVvjX͔'9Mv^o60\4y] ",?;pP;8l1V u;cϿb1\ȃcAaw D ܇{+Ttp;چX[;i5!P4s`hggCZj r%f"\XcL0J}qr`Ofd۪Z`MPq $E`Ғ%D D BO%ɨp"ǀǙxxr|(}>>ZY:ɟ\ttEd](>h]bg2?8pJkȐ=.duB NdB K^ mL!dg-] 2#XmEmEi0K3/zef_bgF g]_z,k% SXv'Iw!S.wNgC. @ĿAE r-E s-.S˓aDik[mLe p]Ib ɖ Y<`MW<Q!6NS䨥:OD% ?E(2#Q1-fE2DaBOϑ8Kjhm< 2Uu ?fJx<-Mgm!s'KLcK0Z3|R5@4.U쉍-vZr$N5ԢffфzW,<;9u.Ι8_u޶PUX* OJz)8Q FvU:HKP#R 4Ѹ*hS6b8lku}9f4ߨeMaNW|mCFȬLdqvq-4kC5pc:㎺8ƂE÷~ܠ$p0D'p}T޻g\ݧot0Fᩴ+7h!u%[;(wݞ>Scʢ^e흻\ecsq;'Sc='`ܗRAHV)Lj+]y{@p N*ZP[f}LCAq@bxf=JTf]2ag5_nvPڎbEQB[bǜR/̪=R:mfm)im HB0gQfmnyvz{}hꕳ=;gc' W+gcGl,DbY {Hw.G*K4Zvb;9;jDL9 #٬CFcU)܁*+j>'F+5`̅;M\BefJwlbP`&Vhkƾ%T=nj*8юbi6لlM+boIYgb2ܽU&,+5t;>_|.&[‘Z,_\k{s*2U""4mNr(SUȩy W-ZUܠP@:kK ZZLG>A#\.mB%FG [jܥ5UfES̝,4S.]cpbYfE{QErtbll,v ]1Eٻ}>~]-ԶWc'e79otʥłj\=k^DΥ# -ei_ l6L`_$~Zܷcb>oH%j~1DWuL(:&cĕ1%ɢ1i1`Z4 qǎiГInTɮPO' Yxc2Z;&vL&X_ހx}#N`@\fZv* Z4vb.uq r.EV W`dFzw)"Պ5Za8?9h&YK;xA v_*4R7;| /Q5t ؗ/7kLjd3Hנ~}:#w:ĻS>m^jS-&|rШ\DgʢhRji2x]žYsW|F Қrdӫ+q'.kWQǾfG+ =ku+ny(}_͞&V+G;u}&/mZf.m *= wmz==zK Պ@9"4VJ6p1ܪ@kKkXQk)zΥ'.ݮWNFƎToJo~$as2\ Sr©ŝI{5WMCF?M!endstream endobj 397 0 obj << /Type /Page /Contents 398 0 R /Resources 396 0 R /MediaBox [0 0 612 792] /Parent 395 0 R >> endobj 399 0 obj << /D [397 0 R /XYZ 91.8009 721.8656 null] >> endobj 396 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 402 0 obj << /Length 3712 /Filter /FlateDecode >> stream xڵ\KsW|!Y~CRS!D(ڢb%e'T{.[*ƇFYqO`pp>Xc߿{! %gp`p8 |d,DB3>Gɂ>4SθOyE=`WJ Vb\Yd_F"ʟ !N udW/VC`J{x@tL^sW|+(@kP&eeF V3ensJy6"] ՚ X YTBU'fy&3Jhf cEwwAݥ|s!k 5VB]G Â1"IW\083C>J^1%S~2s +R/߃|C*4@L/{ YOJl ;Gvi m=b5}ȈX?by2A W@ V.05`;Ӗ0\@i l=bQ=a RoK7~߽t? kx]|*S@{*st.R$~ݻtP^G0mAEjJ:P\%F~xx01HDL jp.?u2oSIpY u#TRh}xZi:Qk2?/dTF(ZW2/;MwVHhvnӂ Y_`6O.hϬPsWz o@?t=ha3M˴0"1B*5 $K9bW @O_j$Mwy*rAFоڮQ&wjMr#A2WKNCjn] 8cQCMkSLx@Gg4$NC-m,[*[k%dxywTBEWMrwt> DG WwlWmZU^ܨ(Vf)HSaQ;k18I4b04SčvqC7@q430B}gldZ6w$5.\y!V(+MYz{ł˗wQwh𧿼7#fqQ\oF3F+)u96h 6S|Ajd{m2X1H m ͨ K3~tm OEhZ\"¶ܣ.=/, DRa֝׹҆UGW!5B'Q/K$gU(neޞ4-حHpFZҚ]몾sPcڔ^*c(ge|x ucwDpbAyPqcϫ1JRʮ=P܁qp{_o[ ^Pݡr y'&/%`wWF qs224#H1?޿^PJ^a~?d}yE"mbl>OGo| OkQU$-/HAm]]CYᒶpwd}5ԛecqqcWGA4XJIVsw*#PgnN#vVOb^QK fopIk;XQkoAh/+4:La<w0,9 n͗-ő0sQim="9)6eN-7jNv]SmYk,aT4qNdx#q'ΰ3VgX]NJ:&|tY ~ĭTqBJ9k=ƻ~(VRZ L Oox&5 ',Y\?^Yv| cnr \k*RɠE4+T3yv0ԍ4X B;ƣM8C$m+TbZauҶNNNe5PcBAbLV;Ky E ,vw桎63f5zھ'}cEmt(lG8&P Ǒ 34u? !HBg,N]CDavP%;UcE;nC}WL"]w?~uߣ2\;_U L v >GK"uC"z5Zuʌ+@E"3n=3˪ġf\endstream endobj 401 0 obj << /Type /Page /Contents 402 0 R /Resources 400 0 R /MediaBox [0 0 612 792] /Parent 395 0 R >> endobj 403 0 obj << /D [401 0 R /XYZ 91.8009 721.8656 null] >> endobj 400 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F38 287 0 R /F35 220 0 R >> /ProcSet [ /PDF /Text ] >> endobj 406 0 obj << /Length 4210 /Filter /FlateDecode >> stream xڵ\KWLN d'0H f rXVb{*f A쪏z"៺lJD)K;y }L1VGak0o/nˣĖϻx߭lb_^~{q47__dz$ i No 7Ug$`]0~HUvtpޘ: `M< XkkAuj7aRPhԊ9cߟ>|x70RŞUr@ +PKɉM'LHt}c_vw_U%4dZ~#E tY[]P>{YUQʂkthteOL| 2]ϲSv8z;͜V(L` =e/J4Cb@E4 f^o-hT xNYjo ʭ^e˿#w Dޚo|l~hBY6X8Y rFLU u.Dd ioink,fx6iN bk%Qb1*oWd@Ƙj 6ZzTU,crDgg.uS>Ax& jV̋ بʬVEE^2&gjXd?WZpPSPeZ⸜J^egPl4OܧƦݔg+ 5VWIC2iI1D54.|E ^lV^RugJvc' cl6]AXc'i3'U-.I^(S=I&$BK\m0C(r7)vE?P[2w?Aب 7U1N3cnPV,SYզد4F,K31$s`n`G8)feDmF,0(x֖.'߉z ȃ)r_ٕ^QsfhSpLY̌$2AsJȆ#@rSkR`ԛ$󀞿kOͱ0 t$)-dM}Ǎ>4A U\onզe% XML>xqe_ym\\ %ll"(at,*v%a..».c$J3:1MZɹHQ@5!P9-7ɍ ur ZZy4`ɚx'9`cmQJ|m7,޾ClsX\/bYۚ9BAYjVD=G]Rtͣ\)]u]4p_֠:,5j b]&,`jyⲆis$;{A5GkS}c'cwQ|>6U=r{$-yf_PJ O[.E*fEʇRXpn0vkM gWt-5^Gv9|~ o6Lmմu>qYr=9TXun jΦuLBm*Xwl)teeًX͆%Bclz^v)zozXvmMށbzSW=0c̮a=|6ןj1roMMbЅCt9j 6=&( Y%r}-a@0|[(ҺĴ<6%NoE2e>WY7YOiOf JװT? 糒Pgrw6 pyu?;<|F釯=-gpM*9 @6{. 'us:m;$K߿zwx4ӛ*Eٚᒐ9ώ{q[ ,>g@jD3uEJ+v<*Kէ}۝cI}YPCWI\=VO{._Tu)dmUqfc'B9s #]M_}IS93\lDi!6VJt !:D}c=q0zOpq\8V`8m3sdy2x?:N/b:r6}ݳ HiqxVZ +GV #l6BCJK`{?gzȞ#ZSpzԼOW;L hI)'qt YAGňqxTn`/ei :uBJ+CQ`"e|%=Oo޿= vC+\{>aSlNH%"Q+&c-?>IîηGNPʷ$n,i;Ҷd^eX33f31]r1*y59ZuPS_` ~:"ȁܟSt"~֪-=RҰj-Z:Z`o:|LB); >;)L sFlҘ?b#y|2ڞ /0->ʶ \V U/Lh9w4`:O{]qߦ'_$"n]s4C=ym 6 -,8G ;E ;8l.N)9\IyvαbP_uղ 8tuo{Ai0nlQ9NF=}K*%]zO^V~%}Wzak K[ {~l|թҨہZ` W_-liZ_s9_!IT.%bacq¢s^hlz\z,QwqjβtJ fW&Y^3#а433smSNendstream endobj 405 0 obj << /Type /Page /Contents 406 0 R /Resources 404 0 R /MediaBox [0 0 612 792] /Parent 395 0 R >> endobj 407 0 obj << /D [405 0 R /XYZ 91.8009 721.8656 null] >> endobj 404 0 obj << /Font << /F40 302 0 R /F15 224 0 R >> /ProcSet [ /PDF /Text ] >> endobj 410 0 obj << /Length 3763 /Filter /FlateDecode >> stream x\[\ ~> x][h[bnv[A{ u99̮XxDIq,NqOV #~~#i@:ɧg-9㫖=Oy#ٛY20 ϊ˛_Yi}sOo1„wl*&No~zsV#c&=9*r~\ :j !Ic_\"AV` tx8+[[]֛$5+M͗F2ЀoZ%Yӫ8df )'6fAPCd"m6?-x6LzѨcZ O|TM|:xRdtlw5w$.o'#,:٭Djػ >}ڸSQB6Ҧi&6oaIp9ΊfyYH(@pAY7+"@VWd*!F笮.3s PR= [ ڽ)ߙA$ÒNxMd.!ŵ6mcR`?*rvIZ޼x`/*^5^qlDim9Y5IOe52FW@16+>أi5Imd3JC׏Q`d,_) Qϼ)xT:Ǥvt~C>*iq#WAZf@ؼ !񧄺 9w H P)9f2ۜjLu&gFdiRW0E$4\ -m~ADe$2m6lң?=+%R46l(K cAב;R Oa`'!h!o'ӊ"r*3Y2c`Խ󗦔X(,Y3Kϋnu$e:5@5ҋ*,# G;-N!Pi!k~? E`A /Y %#B] íĐDH~'ڢŠku/R1Xʉnxm V_ gOB ;"@2fx!Xf=N}-cJok­z<`nj9|2V^t@\].Ѯx*fNo?ܾC}:RvpoUFy.;8a|تBωw Pd gӡ؞ü_5AR+ͰxN%Jj!\&R8J(k/,>W,7=Φ"l_1WJRMqnj `Nl*McUu2,)[mzȬU)X50bRI%fs@^~BcoZ:?pԂ, 2u`95oN~(Nۮ\^?_|{`_(fjj2i.frO[Kߜ~n۠5%p{9Ui4 M'dZԶP qFKCZ94 pߪT%O連' ?3  ,SyT㒔AmlyӰܰH'@`wqֵ5IUSj5eQ?ӦHJmqׅQ wۘ*xkD;ޭY"լ<`њlwpyZKfQ&\wx`a2Lx%NG5kɬ4 jG\Ȧj^'5B $2YOgF Z+5zQ' vy=F D[+ OlmZ|%Z8[@觟yR̢XHBN#:SF n6P)9~|tpZtX{`mA)EƓ*[,vĖU-VSq84Vl&?#O}vn,EG ܘ kNQL*0CLv%5fHjvA19v`; s4ml?C<02(˅Ģ*5tea:CyށԐ@ʏMk\I[瑝;ڴ J÷Ҭ”S< YO3|w`ɲ8kq:'Nw{tk?+)!-Љ5ܘ"(ֲ8husI0]SNKl[ԩiZ@|[8 gV۝8Rs_QpH02 ke1߼CmD6Wq@Y7Nf> WΝ+М l"{Ow܏ic[rzH⨫R&݂!ܸZu2{mFaq[fwS ::rVS-ZzVU 9V-D/n9^6<8ha; <$I tB K}2J[fk}4-3Z!ʻfO栯9F=Jgn+P @/*~!Kp}DeqH$Ih0:䞉p[%&O_zC@DG$+T<,Ґ|+L-tw6 ޽n9ۉ]@$Ϳ/@P!zQ3L`H" ?xSm}ћܢ5q,]q7+Káirj4KV`vđfu kQU~eD2v|~+)[%~1l1ly͹_TMgᾬ|w`+pQ7Lh!1{Vl>s`(¹sj5b1[α{-/r (q97vUwmx> endobj 411 0 obj << /D [409 0 R /XYZ 91.8009 721.8656 null] >> endobj 408 0 obj << /Font << /F15 224 0 R /F38 287 0 R /F40 302 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 414 0 obj << /Length 3228 /Filter /FlateDecode >> stream x[K WtN| ,cfvYxv{ȒĒZ*9xz&?QDQq'vA0y9 _Dh ^{Sކ^h\b@s% (L9vB8}ޑ).yƝ2gvN8ôngb۽z_߼˳?"i+l=a#_ :$a_j4!~x|V2~|_[Oɺ{["63 8W Y@o^9Jږ8366%IѦhYH y% $ ɀtU]=\A)fBN0!p#~NBJygY$ͨ5F3c#V2SXnM`>opckA=vLr9aAH 0pzW;( r!+  5S KJm7,d,aƩфs.{m︕37V hz/P!駇֎dBmtiZ,Φg6,)֡ ,yig 逡^ҮQmt2"Kgx&:t1Z~}51~/gu ɶ bFГ<|^|Di%%4Z\/ߵiq~V8PBaV@?U;Bo 9@z 5SRg75CJyY FFL48B3\3@4~0(MSDWM]ޔY'Mf\E69p&ceJm혮Ӑ5n5y7Vjpy`bJe7.'t3SlUdX‡xVp$/)msL+avvg'Af4~6c~j-k/Pa>Vܕ d3Z])>-ȫWm ˱E]hӁGvׅՈ^n;,OquڅK|# 0띉gB9˞#RnV.̊56k `E7ͨҲOK[Z#3!ڕ QK]a0㹞4,jY@N .=Obq݄UJhc{v(rPa̐6n(钑K@qF@qLŒ]8_RBիOl4#hǃSR#-LLk xfwSO9͡l)~pQvɞWz5x)21M_}o^usR%Zݱ Qs* C_G!snUtcFup(ɾ#63W=gf[ys;|$iƭш>ҥˍF$f5&)!3:]J 3ɥJ(ĶaڝC%Wiv6^i?l|¬t*utXX?պZRĠ֥"YRZM[ZZbXԃ 4f. k]&Z׺({@jR]8i7(w!m]Jrvˈlך(ͩJܥ{fd{1n xRe&Y /s+j3"&BS5%ٚt(*.ǾZDXbM I5,4I |l&f7*E$O F~(&מ `tT9AJÜ̔cҝ٠{g3eWk?Gfmi|)WƾnGaqv`I6P* <O@`s ,o-mrTڄ Q5}u--Jش:I$/oFF?[҈RբEnpq 8qgάl!N)x㑪r/i/8iJvVxq=aTsn$lB/!Zdendstream endobj 413 0 obj << /Type /Page /Contents 414 0 R /Resources 412 0 R /MediaBox [0 0 612 792] /Parent 395 0 R >> endobj 415 0 obj << /D [413 0 R /XYZ 91.8009 721.8656 null] >> endobj 54 0 obj << /D [413 0 R /XYZ 91.8009 169.0016 null] >> endobj 412 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F41 314 0 R /F34 215 0 R >> /ProcSet [ /PDF /Text ] >> endobj 418 0 obj << /Length 3648 /Filter /FlateDecode >> stream xڽ\K\ WLWr=Wl 4,kpM8A4 H3sg ;<'#EP'qOV//DNo7-9'ϯ_|9gHszea8~BQPR)6_*_*+o?F>Il721H%OԈ$ A)JWb63׼9}=&eR\4cN#"HAğ9)~l&bRs,Jlf#hU8d"xJԽR q/_43IK#(`j{\1m?퐫5J So命Qɰ*oޣޝK~\+˹[0`~bh2m~Ӏ`%,@}buބh;}AnĀO=0o^֊簖[T+oYK=ss˺ckvt-S×m }B(U]" 3N[m` #{Sw-[ D Һmmvvv+f‡{v+哫XjK34֥mWmmVoэ(=fkqY>6rUNpJd[y]L aǙV4,nH(ŨVLTG)*h}"kSRgȹ;#Bd^<u?q<\/+5rx~P6ufEH۲reؗɶ̏M#L2 Hy˞4Id\ݤrSnzhG*vc:p=&t7EڅU֐|ꆁYhXٻu 6yC}Hg/S]޲Fiwp#7tFSr\w"l0]+`QS%؍38nA \g jza7:sEI7.Ut57> ]!Xj2ߧKRl]ۺbF9%I8wR*ـw됦y4&g7>&\HžlKჩThîē&P6-lK ,bx3{_4zē\IV%JKqcŃ K=M[en@\j} H1 Ƀ\Sb7TiU0'v7aD-:)ɘ/ #mإ3g-&ݞ` $s=qu`ZLbeRp%fhS@ҮɎ1#*T6mEn91J9/ ~滏iH DZnvQ`{F5~'Q0Wfn|]pxrh;`Dg!OR !1[P8\҅(W81/7`|)|_ 9߸zxSugZ5)1ד m2hmG)ME yZQ_+Nʩ 6|4(ayiBo7N,$J EDNV1 )k:С#n1oh:s>e*CzbŪ祊_+N-=/ Yz-o.@v#o z~YaYbEíp'Mc-PLGik>~yliڴ:Y*eJ=p\.{,fmLGӸ7j|-әuo>V80)nR}n0;`ok0z[xt>~-әݻ[ V2VP[29n w^c9n /ͼ1Y4v#ΎÝb՝b|NlMK\#{kcC'aZr _csHbX7bR: C\=#Z{o{]U,b;[{UE*V`\Vczr5h7SxrQ+Uw&$dZ:;ŻUB,T3ьsw΢a*h@ײ;L9I.7fa3cLPL W7!H7;?F*xJU?$Ʀ^QY!iTłT뿽JՕ15endstream endobj 417 0 obj << /Type /Page /Contents 418 0 R /Resources 416 0 R /MediaBox [0 0 612 792] /Parent 420 0 R >> endobj 419 0 obj << /D [417 0 R /XYZ 91.8009 721.8656 null] >> endobj 416 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F38 287 0 R /F35 220 0 R >> /ProcSet [ /PDF /Text ] >> endobj 423 0 obj << /Length 3199 /Filter /FlateDecode >> stream xڵ[IݸWsq?`p_b  =I0n^`{EJƠ=zR6Y%pO,A0yX k3 ~z&2%<]LyUpx H]J'_L9/-oPOSB LȠ Qg+惏,ٟX.>,zۯ.ͫ?뫆Y{fV oA](ҧ ]߾k1B[+1jB)f 9JWo_hf W e8"/TgVn&a3i ܛJ<9@Lbtb( Vaf;yZqZ9uY7^+|m%h/A^~Y$pF2()>!2  L=ߊKYN')yĶ̶ Yu`J P~peA2nq=n!A<=xqBWpC`\7,`MV$14s؅R!?^ dPnÒ8cf-`Ê V0 CE-sZxü#ht˪B7p]#VRKCtT-~(=>w4:hh:.~tkeOmE[HEx"qُ2e񍍑1nPM7J`L( 3F-M5Fк@<2n_QDԪp1:囥 ROf!Qs4*Ky{eXhTy&نi^LNdXI,D-sj bMִJ֨D5ܓp Aj} ֩rd*%$ɐŔ2uz i Ypy5Rh P5T*~L tbBlD5ςYi@ҍL'Z6#Q՘qD\Q}je:)%#Ve*I.e.'smNAD߈UŗX{%)=3-xI(nhN}ԑb$ :`nW+jMgon&yᬑSg.+x,rӚeD6,Pq&L$!Lѕ#j$YZQwRBg[Ëo&:[WB]$l_#+M\bobGo իHVЩxj6ud7 $\#o^@RnO4tMDѼ1ĮlKZYZ-Ķ,㌕8K;4kG$oc$dil5{<$ˋqG4B &OwF\3z[ xe]`wB-rsb`6A![ OWMصR Zݠ~qJ7UrG-'# XW ၆C+s&L~=: ܦ&biM‡X ֗=AZ}A\H E<%qS%.xp$dLoetzQQB>Ŭ5gH|5gڅpf An߀ ap S6|F| Z1ϯr6&?6x{1zn V`罡ENKڜ'mrf0V$V餯dsݡ6b z,>慅م<э<# .).VzZ3rv})BׁtL`?4598<)ϰmGDl_`R'B+΀ #"G`n# #N3)13:/۝$ڈC)vMb㊕;OEsͬzϧ3]%K=?Owy J\&8Gߟbʣk968Z 5'#xtq Y9:]פ>%l)n9u:NQY*Hf?I9kR@He&ґt1ZMmsVmQţmf)Jgd>'"؎6iaۊYLAf{Vq}mI.7C_nR-$ث@]wBN`ܸR\8iR㊵JC;b*"qRp^R ׳ i_ l*NJ,w}%TsN*ղ^nY\5]WqK$QT"NZMTiMҝe(R@R\ڡIK^갴i6$J vN,iIJB95ri$SĹ\~T[yV3t]*{kNl|t۠V xbߘm5'LSSek J墕c(V]ABCCO L`>7MgI4]>ЧYKA|5m+OH{2&TۛMI[VxҋSZהJk>h(޽$ 4jM,0dEAc= 9־QB /qA>PvUԤ+)7n=#)䆜(5icGjB!a2YVe 6/pAD; HQH(43ڥ9_qE`k7`6梹a8a-bwTq ß𛗖w|iO|t;[r-[a,&0TM5}*[ P3gϷSz7fqa+QI‚!JU>+ 3Bretgߵs@}VT ˆY̊ u.c+]J3 D[VH1.3cnb7g1IAE>.~ZUвԧ2 |!roM/;$O,Y<)'`u+Yal8Ssޕ8}Wmĭm֢4FCM_;6ftg]wUԅ6vwHݵ_Mh4'uvDY ?Vendstream endobj 422 0 obj << /Type /Page /Contents 423 0 R /Resources 421 0 R /MediaBox [0 0 612 792] /Parent 420 0 R >> endobj 424 0 obj << /D [422 0 R /XYZ 91.8009 721.8656 null] >> endobj 421 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 427 0 obj << /Length 3278 /Filter /FlateDecode >> stream xڵZr\+&ވx?"خdEJrؔCIE*thqq,LANSR"JNA 黟T: ?V>=[>%uYL$^cE1d&pƈ?ݜ2y&~ UZLy)qT;4'l!i ~_YyJ"yOޞTz7WBo_ٗ6%16S9c0B*<2U^hLB_Տw7t+m8qKNhT=a.w8bGG܀w&A mE}5=8IIp'1Q$ kp:tNN;)?o|֞ U6Vp8*܀?=7E_EӲ ҴB (ݷ BzMΦ/v6TW*7@\Cзo~>>|>vkу]VȤV9Ϸse%MG Ӈ&(^+ G^Kb$=m^x^bXk9Էoeʻ tt3:ˬIN+" $S` hخ*:B\Qyށ]>br R ~ҋh9 [i:6XN ]C-Tz,p$R>;t<68URCIMQbkߎ7cP/ Mn$ђ܀/4Mm֩'l~ؼ$7) A&\!XU kxKr촻*uF_/%h||:8ܥ98vw Eօ :'+`dZɀZ(Pɥ#R$1DsV > G2.bIiiruW>:µ\1O6u`>-WL:4 Nwq|HҘ]g6N^:a::K^1H nG(4n6?{mL rTC'3MIB b*HL]mV>.)lH{D$vLݓrJxrX:/Fk{`g]5V\Ş[V]b[7[`g]̝a87Z8`/CG`[6`?}f?X;e8ugUVSN.M-H*|H;FӣLWmB`Ķh\]@VDh_̓:p]l6'S86|nmRMB\M&{$V[=Kroymл:[jS$kJA,o|+Ī.K)`oGeNzhý K/eJ,n΍65)9f%}ڦ/I&dgܚRPSa=Ɇqߒ^ a!Luk^Y^s-+P>r>иӅM04@ Pʲ/ a@C#!WeLq[W`"<B_j 0aY̫f#L݆zdB$`b;GYQ$pۺuh .nC@-Iwe߯is"zm eGFp BⳎETM%٧/%gΦSqdZJT/I#ǕMQdlzԲkA4Eg!Xܗ3 U8Q7P-7 `Z`oPj29عuf'0ƴWlyu]E1jEYhk(nȼ.Q1!Mec RԏQ3:'Nya78آTU,0@\_|Q [f ܌u3yh%iaK9TEjyv',UӊE.έt ^7 +WzO\:sVee VCNWMQN~y >!U jUHΤ{ӊX`e Ew X| oy-pkA`!6E!$ъ wx:(%MwM9pN3 ;1nb^]cjHeW%u@SLz&˒.կVl+cY†i7Vh6pȶFX\]k_rNe&nK~7Tҩ E@\=9Zt(JD aEL G adbZʶXnsv.2 _'|%9j[8gHm@;)]:1NjĹ@^X^g s播o b,qӔx*:zV5% ֻyT?~V!kn9tjK/ dIaŮcNVZlP6?h>xCu`^D.{5'/^}ã?e*gE)*U)yیˎ _ ˘DWQSF'N@H*gZL $<U^oǶǢ,Њ}7 ){|cY${poxr:{y oP C4oS+><F.ҵmp%NT빡fcS먢]gn&)aj9ay"ޛקoKч^á)[Sb4QO^ZX%ӣPlod$z-#Q CRv}87Qp:T} 9|% ԾC=I4 yeMNYYTO8^EWC#z"\q+uZ5\ qI|CbŲf,mҹgC'Pil˲b3"%i^ 뵁J6(D1_,>}ܘ2*DTE5"Y9m?^mTrJR $6fM_ Dj# Cð?8a['.5_Į,t-%f endstream endobj 426 0 obj << /Type /Page /Contents 427 0 R /Resources 425 0 R /MediaBox [0 0 612 792] /Parent 420 0 R >> endobj 428 0 obj << /D [426 0 R /XYZ 91.8009 721.8656 null] >> endobj 425 0 obj << /Font << /F40 302 0 R /F41 314 0 R /F15 224 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 431 0 obj << /Length 3240 /Filter /FlateDecode >> stream xڵ\[o\~XEmxi@Q4U]ؒ I ;RZ{v )[Q[YF v9~PVo?/Xa /3nS¬O?]浐+&.ζQZ%Wެ-l+ԕJhJU|J(w6[~S埿y`eU\9;hJrM`ST+P%o@"/_9 ~rw")g<2nsp2w6aVC8dWz0)Eh񯢖:g}9Q* p(',_ܲ8 %T6Ojj"#YA{18.me+.~O$9?IĒ%Zہ7"L"F(!0Q$[fCrI{!؜?E46O `\쇛o>~=G9'E~KʩES`x<m.ZI)lSQ׃A&1r,TOVXαPF^zCWJ!$׀=||T#qN@I|B57)SNjA4)GA۟Vckm ֎>1`s~`[ίg[6W I2 [˥[sSp&{SJB 5 NX4Qb6){GpaF;U!U|h܇/( JCWU(biU'XŴ7iĚ(sxIutҶJi+'|, ]A/`\ #2cnKPVRCTI'bpKTfSFX#w^|}Qfԑ4r|'_BQ)Sew6b/XLpJ#wѧR=n;>8e54߳RUIM i W'T$G kܶ_GDEM<&/x apſƱDGdCx4D(ALA,A φ2&eS#!JKUؠm/W7 f֐ܱiiMA3yJNCYB8Ӑ ZidQ+{N55h9؊MƞFFc#RzㄜYli=\]>g>Mr 3Xu1QhYl2a%c4>P2j=^ 0$, fr39a^|Ԁyǃ=Mr 11HpjsYgJ+9pXx\w$%R["kH}ԍCr@lN`ȇ*"`CI|1MF;>,1ld!)`KR`V\=f{τnkNIY,c1 )v& jİgYY{CTn^!jC7>ؼB`ǃ=n͛d O9\gW}wS]ܢ۟\V|q_ww2aPcŬi0EN#DjN H;YG,`F[q:[[}{iPZJ` Z45[/赏7P,Nฤipbq>1 E|wڐ5M,!d](Oܪiy$%VZg4'"74T8}j+[t(m}I~W{7o}5hGm}}i뫡yPW.V(س =+e߼ējq.(0Ybn`bCZ[gnendstream endobj 430 0 obj << /Type /Page /Contents 431 0 R /Resources 429 0 R /MediaBox [0 0 612 792] /Parent 420 0 R >> endobj 432 0 obj << /D [430 0 R /XYZ 91.8009 721.8656 null] >> endobj 58 0 obj << /D [430 0 R /XYZ 91.8009 674.3441 null] >> endobj 62 0 obj << /D [430 0 R /XYZ 91.8009 258.9474 null] >> endobj 429 0 obj << /Font << /F34 215 0 R /F15 224 0 R /F40 302 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 435 0 obj << /Length 3441 /Filter /FlateDecode >> stream xڵ[Y~ׯEͦa q'K VZ-(+F*E9#.?V"v]Tb2/݋*4VOIÏۃ5JA7)7w&w-4MYc .tBI]y;D(wibȃ <^ wWȨ{-[Z|Ɉ)NɣϾSDBU~۷gj~={G_=|BF͆QDtN}1z*]%CoǟJ'a ǫ3?ovqysqoէLe~ˏ7_g' Mew>u0ezӹDmZ1T>H]DےhB:` ?^\]|.c`'zs,U V(ݖ]>9Dre|@I8[9쥁z)n62 :7W/x!po'h |F)%5)L"haQ*̖d9`nOr&;K>Vd'':V -,CK/& ] 4nꢃ`;`+?U*"S;(TD3$32r'S.J1 帬A@ƜP?5J?5s3q!y7: wg!m OSpÁOKܼck2MQ*>5L irKLK_L@ deu,`z\*>g)n@300%] -RQP֜໶hH/ `;7AqcYaHHU $KdU0 FcpYV.Ȣ.-$Qlh> 23H9kE8I&N1$, PtGz '2d9-ET" >- Vh⦕ }i$Ŗf5FAsfյeY;-$eZ41UCv UjCRs2p.+L17Sk;۴Y:¼ $uIPIUGI+ld'ցk[xB^*eqhiЧk^)S.;(:K#s0qqAdΊmE7z2Dkۺ |ᙼiIn+ OCy'㳟a򥵖`>ɦLc*6ύ&mjeÜɪˊ)AL%Z3Q*/D'_M䚞j5dJvYR=UhJ\r_MZTdΜ/KINĠ%k^PFlecZP7/[Z@EQBDEJ_~_6CoBugp`լǒlmԞ4 յiwf)x@[N 2N:36__~3I닓L,gYSNE7b;ٚVe& &V@+ ~R7e<؅<-cKMXk/D3%a_:bEܬ27!̕f풏Ư9]5 ~*]gqYΛ*IQCQ[tZ}yq<*EHz{Jfe,x>3&yEVwP`7f `NFlnCon7|ڱY~3mvݳ_GqS l>#!ë#h?2`:_u )mFMktǬׯВ`c+nv\9mi9㸼5iWr*~\rF|er-WG|Xm/ /l±_@{H_hw X_X/TAA+v*g^5fLD EoߕZ3Eİ uAT|cZsۊ6Հc1cnuiX0ֱVvDqVOgROg}_;&FKZ7v [Vůo<`k>#JmvBR-c|fNf=@hvք D#z+$Z':x= I޻m7xӱ0̧,經PVͦ<'"[kHALz$a{ سQl @lgFj2RUΚv9Rs&,A(Iu0;KE.Nd}nֳTZ:VE:>P֬fFԤ6{Zuro"jz R/z~yKWҷ1sY&:cĕ{KDW;_b^G1HVowV 3N$]rLNROUfv]7jv`uyŦegr\]j-F΂_1cy vp> =߲s۵$ȐԒO]eۀN1NʧˮTb?{mCvi#;ɓM|^/% }˫f4I} I1'2G{sjA< ‡[BzDsro CzаreqO'w>Vrej<2fԸRj8endstream endobj 434 0 obj << /Type /Page /Contents 435 0 R /Resources 433 0 R /MediaBox [0 0 612 792] /Parent 420 0 R >> endobj 436 0 obj << /D [434 0 R /XYZ 91.8009 721.8656 null] >> endobj 66 0 obj << /D [434 0 R /XYZ 91.8009 214.8408 null] >> endobj 433 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F34 215 0 R >> /ProcSet [ /PDF /Text ] >> endobj 439 0 obj << /Length 3418 /Filter /FlateDecode >> stream xڽ\o_q}X~8K6@ A [rF I;\rC. s7;3;rCsNk//'"h ^—ίGSކJ  w%?hrc\"7Pw_ ΄W&,+e!2F/"\ѣA~8/艊tЌPqiu7 ёR{駐-s6uUcj+ZIf&kJ2;a+7,(DB#!W7N&>YF.Ts d4BwA|;z(WL|r'#FtD8ol+Xֺ5rڦbٓה7Kz=ցw[xft%dEXքʶgg;r tJ,,x#@Cg&'T###StVJ"7+kxCS6h⾙aql3lnXbVܝڷkf4mL1_"1u_R]{nWA#_1a*ϔ|:[LP0r>'.A:GM@F@9Fb Z;rG k`:= *d6s-&)ٕ:,Luo@UAJN&qIqa,~4EFY{G<؀%s:!bޱ>o]([hӂXWK'y?uCZSʺ!;i0j֎R Mi(v~4Urn(.]Wd[$DjUҶ18l" ӽ&V8U̓w7i=NSmFPzpB5r8>Kq8{swLu4]rG엫"H)lippoizP,J3j$`$*c=3O&ODAvPpB"A=u&H T#$  # $P%xu[EYJIMI?@3薪6 u5o )w2,x>+T#'"܉#ĉ'Rk8xrm;3 Og3ēg8RNqQV0(i&WNt?A ^β2`Mi2%\s6LZxrcOe3n!!ߘ` Wb2RL:(Xz$ղAF<折BWV P*Kʘڄ7gDYgV Nk~H$9iݪ\jJfk/ƫz sd Jx@@]2E|"ӎj`eU<󀕡TQ@G}4Bx&i)_LҪxş4+C"dlɄn,$ܴAzfAPo| ~} /~}+ߧO7/wVyA3!UkŹTpȸdfF)yv1v5Ȳhu{>i8r(O%ZNX Ӎyuo `NU:øR0mȠ w>wTT'{ n =/*|MJ'+< mjl}<9U,T]h咢s2lBkEted'#:MSA0d~.شg4S8u}#!Ax H&^lA'£ 5 CEDO@0i=t[W&ș!?!' %u;XϺ?o AY@ox[ HS'Su?Y'A+boW[NMucg_|=fr+e+1у,ap ҙ!_ „TOVuESU?zv)}gLÍD<K]α]fe|?biW+w^7CdK\\= VWhuEu^0νnp[[?l5:m$Mc'FXV$j=-&z1r|\SfK8]Sn^-+oDgGʢW-ZIh*[Tm'f7ܖhsOGy1zFn4pZ#}[+q'ruzR:V7&,N#YP.V:M(4c6]}I(-ĸ-ɠ)u+Mv] 4v-eC>u#nd -/z5:ƳEK;!!ݥ$oH%!nr0R;Gogq] t|G lWJ^tēyƯBU74Wi|3+؊١yBi:g/3,L7Z gl^P\LQn_I!6{AU,o zx87{9\BJg.aE*4D+2tendstream endobj 438 0 obj << /Type /Page /Contents 439 0 R /Resources 437 0 R /MediaBox [0 0 612 792] /Parent 420 0 R >> endobj 440 0 obj << /D [438 0 R /XYZ 91.8009 721.8656 null] >> endobj 437 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F14 294 0 R >> /ProcSet [ /PDF /Text ] >> endobj 443 0 obj << /Length 3363 /Filter /FlateDecode >> stream xɲ]qﯸ^nW<*, a&~Rjs{R)ʼ;n<誋%)Lw7O;'XIQÛŷ7P)+ϟ<\KkyEI/)y{y꫻Fƙ&|zSޛkuU'}ЫpWS<ʉ'bdf?42V=cF Ub`^gKnsSF" %+_EܴW"/7D2:ĉDZW4<6Qvՠ.Y=?@h>h5 Cn|C].C/M|Gmh\迠Ս-@L#:/}54!z"'OZ1k,w A#(|1|D1xС9]0нሌ{ a;MVQ%J^5O   (.&jK$n,veaa<#'~O/㌐'pCh-ISsʛk]MlDNHd 'WG,(,`,)5;7כ+׍\:e0YRj73bA7&x|_"K MY*p+Y@ƋY$[GǴ@H7+C7җibq ͠ zM]~gj-!ǡWubPOd|u;J҇:wBiЕREZL3Kf]|vѢmR"6$~ݺzl>`[oĹCUz ` ǔ "&6VՎKBk{pF'-*PJ1]P`5^d#-{lr ࣚ<6cW(VrP1> Ibω[}&#grXY2XPI2Q阋TP뵋+ m6"R1^BJq{zETr'lD 5="! c^OBEp!˷ A/oםci>s+mhpFVy+UƠ'€@>39|%caq[H ԞJځ* 0Ay>x#Lgm($03!$cGΘPSޠ%7r璪(~=Ԗ_% jR$c*m48USϨc}xƛJpL H O=m5(3\ !6Aͅc2 ^9so<g0B B^(kPQ AAI(r sXte*y\v6HkhJle5`1=O;MqKm} 3PjˇkDVaY`ƒ{ 9pε3$ $[+Ǿ@PW ɆD46$^5tn{I/čMơuQhb[i}'CiG+U r9n:bub::oLrO̓whj{8ˇnHCoF fʹ-Ec^_mQ|E;- mH~2K ؁d=T0u;vB` &뷍PߡVCj9dEp.[0T̜įF3O8SNϸn:||>BNd>)G@ٕ`ljZf-K^hԑ +z[nbgc㊑ Ի u@i'mutQ4yے o ӧ*8 ۣ l 7!*YhT:ɯ|mUPd҃H_H"R ǭJ5$%3g҃dzݱKpf\BYIAM 9}>9OU<čj?)`&x_Z:fzpguSZ}H<&Ċ1T#g;*){rbI&T᯻szMU9y̕`ػ (=,Rcz|OU3p4EfK8Uݛ~'<;ԇrkTvn3Τ:8[4.9ts}ΜVg܉2mgR%,llvEjendstream endobj 442 0 obj << /Type /Page /Contents 443 0 R /Resources 441 0 R /MediaBox [0 0 612 792] /Parent 445 0 R >> endobj 444 0 obj << /D [442 0 R /XYZ 91.8009 721.8656 null] >> endobj 70 0 obj << /D [442 0 R /XYZ 91.8009 281.4776 null] >> endobj 441 0 obj << /Font << /F15 224 0 R /F40 302 0 R /F38 287 0 R /F41 314 0 R /F34 215 0 R /F14 294 0 R >> /ProcSet [ /PDF /Text ] >> endobj 448 0 obj << /Length 3377 /Filter /FlateDecode >> stream xڵ\IWLN~x(5# 1b?Y OvS\,3O IT|cu:%)p֝~zL~{ EbA TDpN/ߜtNnq"gN/J;J[|QsZ??6WI D| "`yD//H-7\Q޵uJʏ,RƒShHT!S]݇_I?nYZ L,v֛Iρ쓵2G-@^r̯k"2؈Q͌DdVef؉|V?04*qnPivsee~!GU6g\|ւdHg\f ҚN;5Y|& ۮG٢\uZ5 IK1֜Ur  $Uly&-=L 1mѯ(N<]:G8I3sob`v R'ב'R(x u&gUm>>]_خ)j 5iͩtXwiZ3 ɤ:ګoy!銰ZeĢ,/nYx/m-T*VYSZݮ:c(coA%XgF̋`~d.K5Vل54XZoʶYowz߷F16&n\tq7b'F43K:ʄ'3t&hH.*msy MO4WC7KVH%YG깽9zta*aX4ʙoG%eƮ`k mHCs]V)= ,&4uw|3gjܚE35G{,d|>o|){ 0z.t: ph⪩S.,Ns2_al1G*F5C*";F[T#|?<]]:9 $kCNl@YeY4m ,PmuƯ=VeOKd9P?ͯ^̲ 274uk[Y6( ՞!jc(BRVq] Ff"Nmb/4oAS<|8W*!L6\Yƕ׿o~X)_М8E*#臑cX[8CM5J*L}BdP`܁1ٱ28{wq/3i3LA FWƹ#2!V>V#*K}aZ*Ozwgk uU>kQTQ-{_ʼFf4X-cGo2良fGLwECt~E]\Htɶ\+3I"F(@A jcDv c3 F;0<[V~9rZ*/5E,xM+TJgi fަP9Ɣ)IN\h=Ӧ?4P>[F5[";[#|?~|[9nJ*\oΥU[~~μ,;LDԑbe:GMiџв]|YR+8 ƭ{}TgI-;vM-0qW {H+H[!v'V-tm `6P#W,:H+UX7k:Ҡo}tL(]i*S^(w\XdIlU%l7R[EEOXvw\uEvǬˌׅY'oa`t'EzU϶l2^uJd]5,YriR4H+ laA)'zgdQvu[cYPVr+YA1Qu,AeYrN'1+zS~F3ʷ$'0<?=r>~,)T5mBUJ['@x͉/7 k@Pe#"j(ʲv|!#@Jza)zYNXX Kto~I}2o}>i#Ws}/-YߑJ[p._Aiґ`+Eij-\!VQqCj-Qp( f'BwoVb#dF: ]Ǔr¶q"Ao}YsVLPN:(, An'#L\rJmZ`0ƪ!r,y ra*DRIx]L5q#QQ*_j2G][Q,x *)`[]O,BsVZJ+Q݌j-;%ͮXM9.mG+ [Q˕jBI0m$s.a G#P5,aW݄%x b*GBWN7L:"@%Աk+Y*?%Sw}V$S9$T{R#"e'9+lgM ť{9əB}4OT(hJqg#-ܤendstream endobj 447 0 obj << /Type /Page /Contents 448 0 R /Resources 446 0 R /MediaBox [0 0 612 792] /Parent 445 0 R >> endobj 449 0 obj << /D [447 0 R /XYZ 91.8009 721.8656 null] >> endobj 446 0 obj << /Font << /F15 224 0 R /F14 294 0 R /F40 302 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 452 0 obj << /Length 2684 /Filter /FlateDecode >> stream xڵ[KoWLNZc_$ AF֐&ݤ5bbU"(NC=i/{cQFrC5Yy f-?:}|81ҞQZ%O'AYJIǟk;O"RޞIh > ( Ah B4kDhYS?o1b'ДOH$K:}ΜXcLp:=I!à#A ~z*J|E_|wu I[)cLg@/T@ KZ-}Bn,Ĩ&q-ܲ ] PPD3-g`\Cib`wqAgMr ؇O1_`+ u4 v}SL%6Lm΢D*തi li{3( 捂+ lkew0 xVX S0J䲘PO뭽DpƦ`\_{' /f65`?|.DoRhs h\tiLA9TSr ;ļ5A6cpYjfV8~lk˗.\v f?RbW4i\40ud!g&f 1*񪞳RAbon4zaOrf 3lj\mRT(P)$`~rx0:D;ňQr\. pZ[~>Į)7M:rݏkB\֫YA*6H&ER7^b8Y#)V! xYjY녘InPFkҒ+ +ei@aR)5XLB҉L  TAP,ҳLck}Kq N!M%(PIyE_ib5]- h̯>it>d~&- {1x=ǞKIbRm~%59^N2KynRaX(PX-鲐!d;*m}PYN45>lb`q 65p?`q65`d`q8,c;4X`,wZ&3`KS4[YMd,β'mLrVT`lc=Bk5/ k ma&V}g&M3lE3er5^xd&<7 p.}nk8Gō})fʅ__:Kn_sa-vb70"d9չL6,3 ĨiHfM-W-Z * h y2hC|y}~ڜ^Z{`WmH9mV 7J_?U]}v؜\6Yj86H\ã[&Ԭսa[5nW8Vƭ7p;%nZZDʆ TZn/˒(c{-g|UYTJY\6nĂbq8G=kCrŞhK}Cv_fY`6J;)QIb\TD9Q12:Y12:r;$׀^|L%;]@܇|Gϔri'C,5MJ& D3,Il,QdnDN1vWoQU_[imia<~Dl|2Yn+c5Jn.15qJ QR|^bŚ "ךxIPלt98nr|D|K@kx1g:EE DС'O;-I"{ex.ŝ$ߓ˃?jSxYGc4Q\5yt\> endobj 453 0 obj << /D [451 0 R /XYZ 91.8009 721.8656 null] >> endobj 450 0 obj << /Font << /F15 224 0 R /F40 302 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 456 0 obj << /Length 3079 /Filter /FlateDecode >> stream x[I\W=Rl rpt|Q"$Z 1S$VN<*x1#lĄ JcNIijpцvxTGrfYI  Qfod VҮA2d 1:B}Hxswڞ2s \Y_sBFHNU(خ^{AŰvr:X,1) -OBK`:+ Pt5j(%@j,130'WRn%?޿T<+#P=w7q٥lr:ĶLB[|I"' X݌LJXצIDkjC"<)iHVwÎTM"ju@)R\wd C7s—*;$}1m@杻K*^LRߎpsJDwL5fA{C"))b%V"))[jO/1#N׼)XʘĘ(O;e%A>3RU\^#׬H[>E~ܑ𢽬%Zffo8ƅ͍'|q =/Xl8590N&3ޞŕi9U1Ac%tm+1F/>MeAXdkh9!$.'?F}Ϡ:tl+1ͻ__8ͰZ>*Dn֧F]%\!>xU\YBc$#TsQh \N(Js2O6sҡl! j(Ӯ16ޒh!G΄sWJy!XnsYR]Eyr;)9==XפԣFk)i{ msxԆA^ }3ޚ{p\27c6{lZf4iVk[6/&4ϫe(ĚETC^Z4X{y.I?5EQ1X)/ 'MpAfD= (sTXl{V;nQJЩv=gK.9Ur6 2]? p8lmudj^?G6k㽍~5\,)h0ZUOu_'sA?쟃vnNdCFmw5y58{&8i]Sm|`unǫv=ݎ77^wY)oxY\*Lˎ_Ӄ:w`$&lz5ZnowSIYV=[k7SC飋EhnsMm~wݞk<:&éCO9ID70/뮷SQpnUo'HdTہ-E(ki#]v @㐽s`λTm_GVNTs0Rad%0% dj)݀Q*endstream endobj 455 0 obj << /Type /Page /Contents 456 0 R /Resources 454 0 R /MediaBox [0 0 612 792] /Parent 445 0 R >> endobj 457 0 obj << /D [455 0 R /XYZ 91.8009 721.8656 null] >> endobj 74 0 obj << /D [455 0 R /XYZ 91.8009 583.2962 null] >> endobj 454 0 obj << /Font << /F40 302 0 R /F34 215 0 R /F15 224 0 R /F14 294 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 460 0 obj << /Length 3536 /Filter /FlateDecode >> stream xڵM_z.II z)1w7k{pC^J$Jub{CM%*\~B^~w?Pcu&oo5>8^BeB b({"˫ ^{}F*ӫP)%s7TԖBHtq5{c?'SBd3ۻA wMOe~]ߨGD!=| ?;I{bZukDC&&}c[I—YP(Zftd;t, |?˸*'W,PGU5,Ӭfq}N*QN}WU~!|(־VY'@iߴ  =I^^Q.7Ƙp;bPVKU'^%&oqe67^xt"u$ v.#L3sxotB_oZJhVfIJUǺfv`&EQ,7vg{늂Y۵UOBh`F஺^v#srd+(.YݴC9 v֫cF )+EoOA)q;W#Lg;J>~H=~F/S{( Q՗3F*c f\ wI뫪z֩fOXuiMw}Iw%P^yq=C3M?<;bƆ aeC*W0L BKD\dž !nk>K)fgغIJzϱUW}V-Quy)\'ZR!5Ɇϼn%0 x>q9fI 8L)uIPzfH*|fH\h2#w ViL|F]/$n"iy-}eCA>c?vF_WzJ[Rs+”"LS*&7[H%RSrd[ dEKlm> ]{)ڴ2PVpPW 8-˾J(6rԤdlyGɛ)K²ub[30wyegm=*)}J񍉆Ȅ7 'ؒ&w{$YrMᰪ'}/^4B讗YV{1Ϭ.Ơjֲ)ۃjovuu?}#T>2:zɗB9Uj aO{IҼ(Ͻ)q^پu)`"Yb[4%:V3 7E90jƱ!O{+AA?$j6z`[x eR̡:JlIr1kṮh";ʋ5S%/.;Πt><ߖ%N?K*[tu7_m3d6E8x7&(vRҋtp'c(LW}X`O[[6lWvOE.2pi5vkX#%s8mǚBEWӸ z$]XIun ٤ ŧEI#S*?KnzrerIE֙c ̾0kZm,y'c7#c锱bbLmrWFs5K\ SiW-XZNE}`9=9a ~5 :mFK7L'n)sd D S5zBq6c1ua:elZMP 3fzKkW2mmouvFDi1mCV n4OW5؜:G3p#kqҡe@}Y[Vܪ-`bA6}lw_m:>}ʷw2?/S zme5 d@lCY޷!c>A1]-97M҉i_g+z2ǐv>ΔY1-$ V* \OiYCܛ~{xGC4CcD_YN;B fiihv^zT{ٲbu8ln*/G܋"/CàW `OtwUL&{PC=m@yq t֛ &Q򄷱vBj$S rCmrƵ{_E|; u\32͘hK4qZMY35긗~x:lGZ:?ѣryjvXX>?v\RQU4rnZ|O8m &`<;[FeXl1b1^՛ӛK'?PGVPέ,pQrax@;_M8L6K0Gjj1>5e1vrpS > endobj 461 0 obj << /D [459 0 R /XYZ 91.8009 721.8656 null] >> endobj 458 0 obj << /Font << /F14 294 0 R /F40 302 0 R /F15 224 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 464 0 obj << /Length 2714 /Filter /FlateDecode >> stream x[Ko7W(6eM=.t@+c푡H }H֌d`aH.~,*U'Ayκ ~z L ?<݃Q}:D$9ߒ^B*ew^ +ݻFQWD M(ꈿIο%_P:O/^":w]Bov7o/⟗UhLjcB<BXRZxa laVyU*56By>00Zs$M[gC 0MF"LoL(n $"ZN]]z ΘU1x2%쮌W8'ϜX2JjG5Z*v: 9#nl1#Pk2V#r1>dp(ilbd߮?},V?>GxJ]vvV@ 9u񣅈bUf4h|ujw&☁ʬE} 8<-SڹLA l0AjBF_ h7Wi*}7`лwrAXl0Iv` [&#?s hl} ȁHE?//]|^ .wtaCk<IL跎5 _\G O39Lr(0%$W=ǣܥVLȅ<ץb!n9/_oݷ-xnu?Yn|yM (:$螪B flyY <8KJ~v/t`]qp-&[ Ry8 NGhGn723 L9>FXl2-6:ܺZ+`OmlXyP}=mq:X04k- ":lH_-@;vEx)*'LtM\4+֫.R{c1E^̒Oō5^bJ[LuNsixĔ>?ê~b%bIR["HYDOq<dM<`1 ௌ,\\cĠ^Fy%:S7.`uj";>7Ȅ-y&FRF^-ʭ),SY Ut B]o%>뢷p:r[9aj[4[%).+.!fpX'Ӿ(e~˃V{i1*QAV-e eӐQ)؀az hoo20z@},,Sqkuթgt1djAaȑ\&Aop]~5vxT],ɑee\Bwe6ZJ aԇռTl50c+: WC$'z;\=(*@rw| J* |ol6D\a ) ?Sqsh_c*~@ׇ'<{H3؛t0̄JJ:όQp/\ 쥹9r-VK_j49f溦} Tݔ=}|PS5VhK}$NI_3\%r z'I 'v< 6Q=RȦ̈́6L3'䪉M6*ݓjTeK0(3.vMK^_Z>;91\~V7n u;*]KryfVp>k\fWAMRy6У{OrJc䢭% }SCBdsthrꗰr&`ta%M,n[%H&[+QK)wS/y'bx]!|@qBNV-}߀2\Zs9uOgE`"?ܓOd` P=s0TRgB&]Sш`j#eRG:Ŝs.ob7ȩN9 _c@5o~'v3AfYbh4:o.8H_~Lr]m> 1f#W{1bUއv-H)m:۪mLFsB*Ƀtޫv C xfvCI=ݿ>|ק֟ ֓Vj&F*6QF`AǴPL?\endstream endobj 463 0 obj << /Type /Page /Contents 464 0 R /Resources 462 0 R /MediaBox [0 0 612 792] /Parent 445 0 R >> endobj 465 0 obj << /D [463 0 R /XYZ 91.8009 721.8656 null] >> endobj 462 0 obj << /Font << /F40 302 0 R /F38 287 0 R /F15 224 0 R /F14 294 0 R >> /ProcSet [ /PDF /Text ] >> endobj 468 0 obj << /Length 4077 /Filter /FlateDecode >> stream x\IoWGsg 3Ar%YzvHp"l-!EjgW` 땓kh\Z|=g~Uv"#_XV?~'VZi^2z^߼9~? !V] 7\3Ֆ支|5~9/oo*#**? F pqLY8_I8`K?[y8Q.oh!|,c~2rOx7*n,Wy|NVΣ:`-[ZD$;'(9['32h-D0&󵎞qQ~J'EƳ?xK-%lOk&5 ҁ"h, lJ\! I\>頒Z`FV2͞DfpF}88|p|Iߴ8±ua* k< GKiebx5#04,LK*~#ș5L:#(xHGikFIr&&, ҥ p 0LрT,PQ6I= Nu@x7םYeg+pNj=Z&1ϝrәK[Jf!uuzϙZq4HpZu#Uȁ%==c(isi_ SIim*4t^4p*N"]tٌux]LJ{勒+вϹg վ$֧a:0>)N5X8»bʩ3D-y Y :8;OËDǣQpUEWD=R IY\^ncJx8kwĚP{ƖHvw ڔ/oQlS<$6)DY2^Y4|JTIk*[h9" t@8i9wfS-d^ *sT# '\sgZ Yp;0{CbR_h&2D?aXؗvbTK@ksٍHaOPtQaqTX.&xwU|V"ʐ[UfZ |A2E%M](1+i:,Bf_t=m/bH6tQ/UzG Ll_glp|M^g2k㘬n̙nz"$Lb0+K^t;yQOuOiB|bgc'ifZQ R#)9GJS?GIu1pPMm\6[l0Hyj&3N3zP̀d@%@nL"68NJ)%Uw,W ԇYy5q9qwcޗX6=A2@,˺hRT(L&o%ku!*Rrϼɺf"S:&u^ӼJ2 j]Ӌbo}4c=!bO[l3-)!;߼x}_ϏVǴz+`v]_TΛ|\U*;ڗRM>^m W|?]7"ZZ(tlQ%%涳@I+¸d7_MOq<"c,R*V+lա*sH= Y`nFjYK]Q;o܈o./~Kz[{ޕ&1UK5Zq98IK! $LOx׿9^?(R.*]RKLWuD"+H}t->$q14m\*k[ DeԐgǜb)Ǐ[8Gɉ%WUi#GyAwa|Lߪc Ȏˉ̋N1#*&!\8 Y=r$8hto%@:6u)t%zʥzVtk;p{2W[IFMW NOX)v5uKc\bc!&plUO 0C5}XITcP.BRVO^<5Rm ˎA - !E%huH< (:9 *,lI|"4~k z8eH@MK5Ea%dWyljQvBwz0 I/ڰ8NTDDBPiYuDt};SM EgY]a@hADZ rZT[dLW/̜7_(TIc])"m'/p:H@~7**N+Y\dSNM).*RaQ7+[T 05͠ϲtݠ?q&qdjh"Hubf՝ϢT)f<.+,ܼV-O#9dM:endstream endobj 467 0 obj << /Type /Page /Contents 468 0 R /Resources 466 0 R /MediaBox [0 0 612 792] /Parent 470 0 R >> endobj 469 0 obj << /D [467 0 R /XYZ 91.8009 721.8656 null] >> endobj 78 0 obj << /D [467 0 R /XYZ 91.8009 250.091 null] >> endobj 466 0 obj << /Font << /F14 294 0 R /F40 302 0 R /F15 224 0 R /F34 215 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 473 0 obj << /Length 2959 /Filter /FlateDecode >> stream x[KWO4ߏ ZZ9eX)=&XlrgFԚX,U_W!)L;x3y }LU0)ji)TJpŕճ*wH"yޒ)Hë7޸:ߖ`5܃ۣ1!?om~DTa$>k3wbߋMH6w(gl2BqmuAeg# Z$\ A`#f$ĩLxMVd`0VBK֘Dq &m1+)Gf8a*Mׂf556TV:*TFF^yR(I9v!] <IּuKo @݉H6kUZ6չ^L$l KZI]wt=ϿpȬ0us}[8ڮerLT%F^ -{O5f&;֪!x7W`Jk9*c95dn1?t:uy=QW"&>ᶽ7vxJY~EK"zY 汻o3vŊDSB9j-;-3ooX444ÉNQjuc\4wOFQG _ox t0TV C0#lU.Y7]yL0ߏĥ-Q*Ub2k6#ϙ,-Xendstream endobj 472 0 obj << /Type /Page /Contents 473 0 R /Resources 471 0 R /MediaBox [0 0 612 792] /Parent 470 0 R >> endobj 474 0 obj << /D [472 0 R /XYZ 91.8009 721.8656 null] >> endobj 471 0 obj << /Font << /F15 224 0 R /F40 302 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 477 0 obj << /Length 3398 /Filter /FlateDecode >> stream xڵ[K WuN|H*+9-Jdd%9W 63ZK֨ |AHu:LJD)C;xyx {(5ci)4/OV$&AI/G/߯'?xV¿,["ߦ<(+JO}L)}_QGN܄,Kx}0,,3dT. {OP|nHq>\c|*d4Á|~P 0W:p)eQ:/bVbrNt&Ț{\R78`b욢MvyxSf/HTF:/ʩij ղ86r8C4RqReߑDreNi 4?_}k"_}4YAX=r-¢[r IyV,(Q72`Z57,~Fi]8If[fMNZY[8Ƅ#%-0`œ"&E V2%hD:6޼} ~]PUB )y<7yEլ<_8-.;pai A;o2/2uHII(ϝ:WMIij}K$ ೟29E_5q ..Hh:n\zzŠ[Ud٭6DЪv|Ui iE \5F,s"ʡl9ZjYdRCh~ȡl\@nO$jgi,M)e6}Pq2hDY|L?%Ov\':naz3%zSuv}H-.vc]hkX%KuM"cQi}B>\N4ŔRMwoԧc(Y_W *C2C4ZxR ^epbF|)N\?J `5 ~r-e2eݓt\zRq[ho1iv(Yȕ~^ጟnc7_8}]i ʃUOiLU/\U=T۾NpN:J !́- VHZSPwOQ^MTn5Q%ԯ?߼{=nV&]ԕZ!'DD{"$VL/,-=HuȿֹVjo9%w/~g4=9+z.upGSs=89>;%3H:RTR|8Bgcu:KӕQbiHM4=WTYNjhDPN;юbϸɣOT *!+ͥK^@խ۹~eJ{Яu/,lÝ;J¢eLgq2q_f/FzrN8QK/q `sh oPνS6eYPA]˸gDR`V It LR%cKs·ʧFL  n*z# X7{ Ym6VT+sZg-V&l]EDD쎊0zj\OZs1X^>Vo>K0JZZeeDTPGj*}]mȲVY(}J* VBvU*Tm zVgoeYL0Y逪|Q%ʝ\LU 2Al"g!a`5FenVsY֫}uҫ([5ԕKi+DC >Yd* Hԋw;Ko+Z}a; u MgWD㋗?Q'Q3JiRfPkZmJo¾Rp.kէڳpc]xnVk.:9Ydk,ެE_\-ȢՕiͻ僙e8֣*rћ.-Ymr/GR _iOZ`m$Z` [=j0jhg͏1pI0 -^4$n'^k>ܠX CKO]2yTs 4?\3UMGp!_!>$L&g=K@1d hGsTNА1I-[,Cq4#eoHʰXg27HVNHX- ,~0#J*m¬06Ӆcض` /B兙tnJ7ϷV -%5N6J*z T-]_~Zzh.gbNm%y QQNaU9dzR 7p^1iDׁ}woXZSqziPʈF+Usj7}P>E1zϢ- Z4a{`/*6[-}%ֺ6QbN^RBV]v*=lĄj{ӕVc{Qij m!Byy{ nq dy!؋Ơ[;R!;e }s;~݉=oɲ!7'qKwj8Lt rw?9K6: :|EGЋgB a$1tZ*?\jћ(b~ʇU(|mqY,M\jlpFLҘE8a$R 6( sGWD0^/b5Oan:݇g,="z# rF8{J Ac78$z](*j18MzZ)xO>k{_aP%vK7<XbU1mU"cJmUmP%|O8S]T'8xb!3^3jV!] tRˣwź 掭ήZ4+wƾ]-1ztT Z+7t|-=*<iqZc |+t35jhKь=9Ƶ E;pj^ҼHR |v~uj=Dzaq٥Vgzt\a vm%t*=;#MNto-_w}_j|rk=7E"G W )["R' <Ę%Cɬwmendstream endobj 476 0 obj << /Type /Page /Contents 477 0 R /Resources 475 0 R /MediaBox [0 0 612 792] /Parent 470 0 R >> endobj 478 0 obj << /D [476 0 R /XYZ 91.8009 721.8656 null] >> endobj 82 0 obj << /D [476 0 R /XYZ 91.8009 169.6407 null] >> endobj 475 0 obj << /Font << /F15 224 0 R /F38 287 0 R /F40 302 0 R /F41 314 0 R /F39 299 0 R >> /ProcSet [ /PDF /Text ] >> endobj 481 0 obj << /Length 4385 /Filter /FlateDecode >> stream xڵ\KW}.&; b!G7I%?Y6$ہa俧bޙٙjcY_Uu#៺YR.7A 7?~$oϾHU0KӓReW>/Y⵿y-u/n_+_?v{.|dݫK+Ysֈԩ"!eUڱ<6w:gw'c  `ۥmBS/>bQi pjT,Ik5>#oNZ,1Ƣ` [a 7,co޿3A{ӡY[)Oo)?yZY:[~{R~!;wR$o~֗2Fxc ou 3dP'CX!zh`kb=QvFF `|YZ mzJrzjZ]9utS0O{ Wq5ʑXB npdVpۻT.Mxw;hF>WM;_+wӗF-u.y?݌fD3yjƖozL>뙚O>%DsY?Ah@^û}kzSjrvJGg=GщE,u`y"Zp,ERKض='-x<*81iV`Fͻ_Ҥ}EXy/ 9Drua`/A!Xx89˲D9;& U9 v5vM uYOGpzmiAh O+asx ]bq:\[Pdk&P*i^hg&,U3jinV3q$frmB@C'A!|ZR2m,.Z:Pǡ ee:5@5|<,|rD UZeaM. ׈,jڏ7&0 jRPK'v,X r gJAH:BƼh&uRs܃;.֞X8ڃ!_FjsDjԞDDjsHjh/%)m`5^FjsDjlknnU֪$L)TR7}֒uJ5s^R*ha6ԲqhCp5ROm.EUX ^9-KZ3eRrʾEnb*IMCPR30: xn{1%a$w 3 J3+bPix>1<`ȗ3='/+:Kyl m=X, OZl\8eC{Lt-3wQ4Əg X1*dMw]K9Pl` ko7S墳9xz3`? ,! ⠮毌T1xEasSbN )"#k xlyC}=e<6Lp "V$6ƭ*m Daup tp01,jr%Mq-Sb3u#-h@F[W By:[LJէy;Щ':eszm+|Ill):J>}}z>RT 8?̳>Q I1.Ou ν-f;6G{@+'n C]9aGHBWó?ȸӉ(VyngE2+C,QN(+!a!E`]YsY|k .)δ?"gڻ>en#/UokL %)_fz靄%@Υ'iR밾f10R28{"N׭5bs;RD{7GVN_Ү-knxuhn熤ՃN75rqp6=e|bVж=&h޿s^yj1:+ W]rncZg|}k;GVM7,哰Ш5΃",g=GaV,NxDeG{aj۶DŽ&|Q oB/{Q_xCb '.o 'zAoz2y_<XZ$yѭA@ |RKx=֍'m#9V$Hwpngq#Vh-Nx':Cʼnv ի"\]` rZMKzmyXtj7@wvk\%<sm"9DTh_t8]hm ojbM$GA൥ҭ`PfN3՗asXSf׊ޯ!]6D$vV*5\+XFsdi@RՇރ\`!5M;ysJpIRilae |0k`,{33q-uuE2.Qwa0C-o6 iVŸVxE]X~\d ]Jo+Vkl+XwJuw+-ҭne2rh>$N>NPϊ*ؖxWN8CSu*2i3O{18>KvNtxQTj2d~WО[xe))K8_WwbtY[a3ö+KfAix6mjk;fV eRWrrih8"# &Ircd>޲!n$r *mi`O}#7T@ ^ňǵ&E UL翞 ois-2[_&d2oܕMpWfjgЫfk(!M1:ĥJlG!3W& ͼ[:1~]iP/B`i}*iALӜ^=Ь;wJHZQm?Y:CH5N/+op+vg‡qf &ZF*HX>髴Gendstream endobj 480 0 obj << /Type /Page /Contents 481 0 R /Resources 479 0 R /MediaBox [0 0 612 792] /Parent 470 0 R >> endobj 482 0 obj << /D [480 0 R /XYZ 91.8009 721.8656 null] >> endobj 479 0 obj << /Font << /F15 224 0 R /F40 302 0 R /F38 287 0 R /F14 294 0 R >> /ProcSet [ /PDF /Text ] >> endobj 485 0 obj << /Length 3923 /Filter /FlateDecode >> stream xڵ\KWO4 l*0H fbl#$HOQd&wfwaX3SX"-N'/ƹ?9 _~߾Bd-7&3|SrH,@_B fcץ.Tc XFT u 2i!PmKid WDvE RˆB̈hhIze\ITWR)W$q]e PnҌʓh㮖ƔJ& ,^/,INB3CW`_s>knc.5{^fq}ELŅ7ٰfgyP]EҦ4oho!hڨHQVteagP20+J:('"RۆO*;Sڶ9S>X³.bI/њd8jn:(//U&e:>F~[ /U${ R,Cu63ebƑV;_$̆=BtYDؖq^8,7a9w24 uuo7`/5~ (چe# s-D< /QtA^`$ }FM>1av 1Z1\-Q#]7Zs^^ڏH$|" ?(I$`K9NJE$qRXCmD a >5R3FW%oUem%vA_ž"A E .)m"AH6VH:x-mS,5`a<{eKqLGMxQukXk}s3=,Z!,S R>uƬЗH0ZH׀RJ' ʢ찙O,5B7Ӱ2̝J<6K'i qi2_ BS&h)fMi@ . cedEeiQ/^3^)'bAьW*D pAIK!_1i1Xg=pi&6Cif $ ȏACtJg '(_M5S9HoZ1E{'G ǫҜYX)d0MG{ʼnj.s\(~lE+yx5:\JYWXXkbz[qR/l{WXSD{#aV󉹞03vqvh#ȣܗcՑ XlA1)q<\8B5qx@F#wZ)ɆGf4ٽ Zįe6,P8b.=qJ+٪X< "ў"F#u9m 4 zV``KN`9mڜ6q{+6ZB,NGnxtgt J6ٕCq18S;+GI͡<\eXz<"f: N`J +Ӧ/PIO~c4P^avK)^pcXG@uy OwŬbNh;Egj(ILVI IIl$1 IޠKbS5QГ$$6[;Ob&9<[ׅ9(V|R4l>٘z~k䘗c` v{<^3*`z46boI˞ە>lWY-Jzz6 r{i1x1N!R/t T\-X,jlL:N:ʟ'WghW Z,N1npvt`iw}}SNa ٶq5y4 h.vDG^Wo>z8c` EI"3zP:83FuABv}I|P&2x\ARO7hsAY,u>OSI#!$TB}@yؑǺ!,O湥f/{>}ST'qGo fʈސOf{2X@ bEendstream endobj 484 0 obj << /Type /Page /Contents 485 0 R /Resources 483 0 R /MediaBox [0 0 612 792] /Parent 470 0 R >> endobj 486 0 obj << /D [484 0 R /XYZ 91.8009 721.8656 null] >> endobj 483 0 obj << /Font << /F14 294 0 R /F40 302 0 R /F15 224 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 489 0 obj << /Length 3479 /Filter /FlateDecode >> stream x\IW@Cq_b$r tt#ð" Z{[ݏ|̼]M~,*%v <위?_ޏD3/wLyvwV NR,D9c>ww MV)gN9%{CĉFs&@Lxe4g3.vcCݕ%_kߞ?zw+]B?|VQ)*0)(`/_pvW(N%&R%VޫMG)[[=]9ZT٤8vW:±r//nKeyjW#fқ 4Cq[Ŏ3aZ7[*Qf-_R)!3#T.dF(PŷVhUt_@Gh&qQ5o;#<袟6$[9)cl0o ^*nREr{[@Қ*u5yn' ݞN):~z!N6U[cS˥%5Ε+|)fdEM$KGZovo͋n.u9ރ׆3^1՟.F[=(4Cc$ZH#HQu0*apǸXܞrW`i`qJ1r'V'{q61HNVl &GpEVr&:˧)nEN̨&#\9҃]u7w W^0khlaiSEƟa%ʍ_Zu<s'+5l1( eMT0%"ay= UI"3E9G$+xE&PYLGli(Q*#޴0C2)_dkQADY,|K{uq:>+ !C, UR[nD%U8$Ó"ūN HkOex#VU1"M].X5Z5DhzdҬSm8>P[^fƀM`=[*>4iYG☘>kpQ\79f(tA\ Dg-"DSV۫_ FP ؗSn$IG08mJMч햞esV$ Q7-bSN;WE$>Ž\8@1Oi|+c9$ KDq6YV( NoM4;?FX:dl޿{}xͳûg+f,Yp2<]eI-2FUUm`pM8$K  wOG:eBǘ[ h- 0%d yvq-C;9ZWbAC"ٸR\,0堐WVm\Es)wL:́D_$WW\J_8 D@,u (vq?$Veќ$[\57$X x41uS ,zfmkU|GXjE=?/L'Y%kpufFm~$_Iao5K6Jj2 Rp&+с!a`\ /+l"R ~W  [XE4+)ʾ>W0nfR\aeImmuvUy+UP~׋.A#z-RMqAe}ARM__%r ,"w)P2zJAB|'-)9l!|pfXBaA6u}1R밎{>ng;IlU;g}>> `+lUhuOh˸S ^U4LV|tZ18TU{3봼—Frm Gdڛ xli2ulw(50,ssS[v)\[aZm ko kW^'jP/nQʷX BNkKXJEtZILmTt9֒YuhVۖHBؓ~rHnq C,k)aq+4iq˔tPIgik5]){Z2҈R/U)aeNtp\ݐgLI뜖D7iHӟKFZCwӏXm$^SZd0ol%U{jyPPʷSMI#y!nnPJ RUh?ܑv.'%QC6y(+rIu@%Ez"E"I#׈OCt&$P=!HB0 3 q#m %q#]Cxy8oB o"EH̉ q4Ux[&q #AYGjv0F,<ڧWo 3 (cdƑMƁc_`=P57qQIѰfZAa}֫CM3Myj%0Y\$zA 0gA4//)3+˞`gT{OUGa%6uJ)uXGpOJ&p\wt8ؓ *ׁgP[OL&W=6PjiMNxNy7PEk L(ImljMljo-6H'e^Kηli2u$2i혳`U ; Mbڰ<_CŚ;.VY7|~fwoۯOrQ)`ikbdTZPS(ijI)h=XL*2)> 0;/Yzg> endobj 490 0 obj << /D [488 0 R /XYZ 91.8009 721.8656 null] >> endobj 487 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 493 0 obj << /Length 4114 /Filter /FlateDecode >> stream x\Y7~8 rK000 c%ı/^BRZ0a0gjSUJR}ف?vpXJpx>=׾Ēg9|\=INV+Ry9}'Z)$FWוx%i.]5{a(;4P ,^ߟ<;I8CBO^>>Ǔܖ3ZSKc ʟ('\9>CD˘h2.3py߮wJ*4#D a`QGvW"R>}ĖfW=z_YЄSv>Ty"miZE8r |}Zbj\ u]erI9=T1J8~`a yP~?MU Bn @ %ЮbE^$RK3l lj"OFNBe#kqYSvIcxR\=>J[ʿNj+!//\= 7y(m8e}Kڂ);07W SCXȟ޾~׻jfT~o||ou*eӿj'+1}3Q:!fA0+Eة>SKq* x'46+,o”RIEZ6imhx1~74e E]'2m䔠Cm_C^u)`#%)VLx1D,tn/#M_7>A'*Si~0/052 t։B8~h Énccmd?*~'kwZ)5p Dm]WtgNti`Bsg(G ẼXQް}?KSIU,B#W).6ux? ]rМekK#e1U'=]M\,Gi<&RVl:N!]\ڂDFl 9ܲq:UYY7jSqJ>97cO>z?>E+ِ5KoKUbC@D.;v3y܉Mp: 릮wcY3ױ~^gEe>8Uٟ2/2W2抿pGLwUo -MԲn5CgFk&0S'E!c [TBK00X?jMƑUXypWU6 7c8ӆ2g$)g;.WҺ L`>}~jq=c!CBȏ?.'vXAXI𧴣ejxWf੅hK.­S3Bth; Cwpr#r YuA,&fW= 6pQ\jh kf/4XaPvߞdk(׀}šuh庋[] fr3 Xkxr]%6GJGtRe\羼"UE4/~[,ѻiHR0:UºГFHҰr/V{,i2b3 bYj;n@- F:"<Y$ \knx,,5`Njܭmk\3ϛؓs%TI.1VDZr Rpˉ^5 <>b+3ZF՗S$}_Ė&\AqJ؛ؤZGuTc~ :MDͰnbrZ3Ҁ٧#Cfd bNU7f&!9ٱmG #q,S;=BBbXg]p!Klx2!YU-!1E9IAeC4 ]'{ q öBH8p٢Rq9VoJ #ʄwpePɛaMu>欈X 7>rAצ/]B8L~Uu{ VjuיBMU\c\]!CT$ŊQQB[dD [Ş/UqSMCY+*<9ȴa` D8] :7 ia\^16+4u4ֻ֊T81c3qRL#O.B җ\#8\֔Z>Ztp"*'P̓LMS;,T̊.Lu4"ߡ)rKLȆbASQV…#( dtnIIUP|*yL0`2ՆT7S|#5dB5J,#vRKm0)1O0J.6S3fQ֖'m] eD4 ׿m 3Z)Jf_,2)S yV-!dmvFb}^7dWf~& [D*M}nn#r ?+3Dc{3F6*|0@9e?+Dž4MR5.9ͤfXQl8S:7Ք )?$ hlT2g<,VF$HERB~.x sܘ܅1C2wa 45H;̐=q؛2@ !脝FZ6;̀HG쬇=5r mvΚEy@|CnP X[jxH؄,m[ scěDPZ,"bT2mO܍efdLole`|KrH*@;)&)=E(sb(Hg4ˈM;sMzmlQMcYŌ4|i7i5iĦ2 6qj6=(lחޓ"RiU1JmʜieV`Xjabm)1|,}zi,+XC2`XKE}˞X|H3/#k16K]T_jt?Fs{>*ȕ:9LidgԤcFMBc̃]Γ φ$ Ω'*uqXˈYF+MT.[<9iTendstream endobj 492 0 obj << /Type /Page /Contents 493 0 R /Resources 491 0 R /MediaBox [0 0 612 792] /Parent 495 0 R >> endobj 494 0 obj << /D [492 0 R /XYZ 91.8009 721.8656 null] >> endobj 491 0 obj << /Font << /F40 302 0 R /F41 314 0 R /F15 224 0 R /F38 287 0 R /F14 294 0 R >> /ProcSet [ /PDF /Text ] >> endobj 498 0 obj << /Length 3951 /Filter /FlateDecode >> stream x\oht(lCv$ {!MY%Q/=E.AU4$z^j0PجgnRX{'t70= z:/ahOG60 +XЈBzVJg$.G_Ѳ Uی7[jF$NM( IО3ZKthmbp)v>TL]<+)򼢵42({@LQ%T)9U"qDLh$U(cs~%.cI1=RagBs)U*tP+dQI\Im&`^jށ]z}{)/^pk,|Pt5HrIĶ۟BiXlއNP(wYA8^=M9T8h UT)%p4{JrѤ"* p28C ^y.SQ~ſ*n6Cw ª[1tk2!U* )>]JaRf^wʸέ$b JY ^Ŵ]>HڲE+hdr$FV1rՙV^X] NMm6FEȂaP[j p $q\dykr=%ī C 0 (ˀqy䔸r52.?Ւ,r( 1z,o$5Q/OF)TWJer yO#C$6t-%EmmyM5mTcA\oETy QF*ZZMUFqDTD 4d#)It%'ZC786v:PlH'.R;""P$\*XgIWFxM-q"l2$W5` OY&$Ab0& V+VB7y7Kfm"R\ӸWyQ+8km=`TjMEHy2累$󡆄?4!3,K*7-SθA7WPwO|g=ҧʖ--(&0PsJ~ke`[fBMaW0)LP2*p6w(N*3g,?;u({\妝h::U~]]Q}t-)i,=Q2D,SxСP @Ӏu~E6xhGWq@ LLk ?Y$lk l"]d׷`_ަOQbLOk.9kϣ o!N,t i PATn?)ʆ < ,P!8֑AI1}oa/R*%2z3 :Ff8 j>LnŅM&uPOD!E2˴ҿچ% >Xe1||+%3x87KT3)di7Y#V`1 , EXk. )֚*\{R/g8,ELDy&QX1V0AP$y'#ReEpёM$4Jn+W8=Dǽղ?u%XTD5/D͝xH ]ǭ|ښ#c '2h9J-@̌sT(:coB GjAˎzPl&~ls2-WUH63uq}ԕ,ҵ: nݵ"GxbwW[{"wΎQn8C7N-*p9dDH4.Pg#%xsiOk*7%`7[/2(e#b.r< !gF Hw*eYjBd w}V3mO]xmBjә2RY)]> Hf!ǖßuS{4#͂|KN%e" a!9_dM[](u.{O}#oӽ OlRtљѮ8Pа~\xBصyHՅ/d ]KJgb0|hԵ!(b#,"W[#\ Ч+,ڪG8ӤʐqHҭ:-y7[4戂iى$HR2K =wUARzƻ]eKUMOE_1Mx6[MvKipCІˇ5t51;:k4Ukq5 V֬d3Cvsttb3P&ƭIcHF8 6!BFn8S1R$Hqe!8h@}2<qP%cc Uu}bfqGIm3`Z`8帿 1t أ9,ܺ:ƻqq-H׀6uI]H7vq˭HZ;"w36#, IrvejptFG:C{hͱ頽cvqYF8OH4.aPgh#XG{R{.5pwI`Ok1rb{fq{%|LY;&`˧wOiӶPybq;cz}j{@ΆFRLhxlpq'%:ܩJv;{:D^G)Tفd;co=(X[u1n-f/> endobj 499 0 obj << /D [497 0 R /XYZ 91.8009 721.8656 null] >> endobj 496 0 obj << /Font << /F15 224 0 R /F40 302 0 R /F14 294 0 R >> /ProcSet [ /PDF /Text ] >> endobj 502 0 obj << /Length 4773 /Filter /FlateDecode >> stream xڵ][\~h49Fb,q75H ɛA/E٤2Fju!?JV?8'5ӻ |Drco3h$g{xE_=IgJ{xAp˜`7˼JȗXhWV ~{?߆u FRy/qt& ?= ܽOJ':P北OiDAqs' פLq} 3Q6 mL& (qf \?2 O ## wXh\_h]h${$.Q̚ci'h1K],َBds\j4?"+ !nbfP,f:Jj뫷BO{B)fچbeiq}ҟvp%珿uM #u3݄k3g9KH׀}ҕhŊ>NI838R2#74-c.է5`>Xo:-{sb+ċtsui$7GYf v|NӿUCBiK{eN= )4DQ[xYTkexJsKKX節 h+!UXzz*"/fVfk1il}ȦDv/6;n*mY^pǷĽvP`bQfH3لlusA9ɝHsʼnAv%n ZXQK!\VS)D~5*zX2xDkh( 4ZV8lH[ X*tI[$Kq!0*C*gŁΨ%c2hŴ tWmҌ$ 4ie#!]r<835M`!J,VDgu'V%iqyy/J06ӇM-O)uR ,aFbUS1sJ0uiQt 5LowU`S,';*:BE//DiFXʃٓ!i_{[(QeԖr'<۔>q+HXzJ%VK0#}'3Wdc`$ڼ !Lm`zs,ټ*^wJHUbWF6ng yRBԎ$+uN4i ZBARXkLC,az\n1n, c8% a—kިr&GuoeQa\+ fe`Z,řffWqn4jHVm$+hw"֑ y]Z嘵-x(*5`$0QmXL1balѤCti` E#bG,UeafqSΘ%eB7bj71]< ;攄ޏKX`pcpzxF7x9>yd>0 (3W>?z'߃[uwLJxH- >~xGU~^x)^}ݫ23{*«W]&!a./D?3HX(:o\ 8Sds/U=ںRoXuI Q`T^:^Z]^DjmJS1s Fzz\Ž1KhuZshxvc6$΋ܽ+4RLTfFqKrbA*:8lڧ{`/Є9fQI t h;Uh`zҢ;x Z|`^!ƍT"& kw|k%d7}l#D~ko{08$n2WkgGFS6߷45dVa(SGY$$\V2q eȫ7ص#lHH i j7եڨcR8:Y&ɁJ]Q*eރ8j;u4h&#X'{U8b.W洓U %*_pwJt2MS⟏߾9YLG݅z .t zxa)⽙r!,mf=Kzw5Pg ҃:e,ջYtf-"]te=N et55Pc\@7}j.Z@f ؿ?y5c1pFy Y,i+YNd&O?e$|"Y&dHXQ)TlWA5Dhʂ4WB12.Ai[*>b]@tnS{!C3X^$wz}RdAK8JqWfJTWf5wM*1+ cFL}L9g'v:nю,RUFZqhJ)-L70\V172\H` ) n1\p= bXpQ:Y9zTT^ʃLWdܞUMطl{`y%4]`pZn?sE(؉L$m1)*/O6n6^ְ@}!OÞͱ<H+l݌zK"Q⑜-f^|vAPF2:x8joHx,=aQ1^+H .3bpfB.8l7qHkdk~LkC`9nƅ__-~ X擢_sNB6GʹkCy̯ͱu3<_|cl/5y.;~`,ޓxjg=; Wkci~Ʊ<.gh9nnh麭%ۋ+)u!ײdnS_l>sꘒ+QZy8$ߟ$dwlt7:PN̿NP_AG뾶?RofM='m[tm2}g6З<|s[*)ou &)9Jw+Zc> endobj 504 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [90.8047 443.1377 483.7354 455.0905] /Subtype/Link/A<> >> endobj 503 0 obj << /D [501 0 R /XYZ 91.8009 721.8656 null] >> endobj 86 0 obj << /D [501 0 R /XYZ 91.8009 404.52 null] >> endobj 500 0 obj << /Font << /F15 224 0 R /F40 302 0 R /F38 287 0 R /F39 299 0 R >> /ProcSet [ /PDF /Text ] >> endobj 507 0 obj << /Length 4003 /Filter /FlateDecode >> stream xڵ\Mo7WLNo67eM=.|%'X89߷dM65ꩩz],V=k(lÇ3d?LxJ%|˹ G4JB+0]Ka:ܠ# ulSϛ(nٿ^ӄ&6 )+& a?.^G88 w`6Hj_n|!ЗmW~f<0>I4- V9&545_sq 0~B2'>h ҋt' R g f3ŕg--JLz`$52 UsFoeV{K'5 U+@F3c ~ "&FqdC(Iw?ף.iJ1 X3ÂKT+fy%#ŕe,/G@TyxD<@Cn[Os%* \ _Ԩ v0=(qN 3QXݟ۱Z{`åh-v`O-k+l ݇?zW R'0?ȒCIl-F-S܉k` fi;ei&jlMzHR @9rϛ|'QN^&,5ÈaF*JT5N4]f ,EQhk~QZ Qs>AQ2gZXj2J `0V%0D4BXY曑D7 [ d{X6Lإ(=t}< c5ז}X;oC`خHI[Ϊ4ܾ"ͽRJ}鷏l;i9ջ~3nb;Ae9h8l4AJmܳ1>vXGOnS*>߶'JA yYbG aw#" y4`$9P qFcY[9 3Iͫ?  R3>j[~a4x`ma!Lv ReX ^ $ l`6K_^=͝V?;{#*ǤN|sEҺ+bBcRzH,k(ƍ(IX.=E,R,p;hbc q݆ZXv; ߠ3iZԡcKe:`M֭ t\O)ɔz(u:/V1zsW).ՀXlTBg%]%iWX]c{TY8Ցp9v"s) 2Զ cλwkkaMq{i[Z (ՐZF/O쵔 %.jҡU{ՇKI\OW+&ߛkԴVIN1$5'ۺ-s M Jmje/kMTwFuiEJ@ڙ4H˅Y"~a/Wɓ pv6 >V3N!7qD]#%GVXnTj:6K֢SƄ♴PU#!^V(o]k_\I= IQ߅fL7JPM7'v<" Md{rB](%}&ip/v i[dBc1!gs7r o$'3Yb&7yF.1VYS rX[f=M|caG8V1Ґsi`,b+fW$[VKxky ݓ$eoOVu!S1!?[jBvuq-ˆ0 aZ3b(cgcM.J5.a|ZTOC q@M-8F5q8z`56נNQ[Z f}G`e &_؀jΥ`kڦM`FXeq@5.I5`j`;T}H5J]QZI5*Kcь}Ti{??wqy7XDaeI=8w$bdt#vE29$1+G$V$d9T|&m0? ֤%}")]ew lNQ>V"@%؊Sل tbs_lg>Sb2Q]N@$5 Y׹\je/LjZЈ%YD)iCl#-)D"2`@&w.1{h>p (ZM ]THG_̝/r8ܐw:b cvӯ&Sҫ]d+CcfPp-D[ ΑJkCR4]kF4aĬr`';?ʨ/r4ɩicE m|JhsPiP'wBKmYk(6=@RMN06-sJx(!S;,AÕe1cu.V ӱYZD24U|x~+INFhp[Ft sp(.Gā899gONW&?!!)W"íELN5&rHCl~&e:V%y}^~~&^v^6Φ8u)\zfUEKS!eoޭ^͑2p>v\bFzYE?e|*6d!FIfd}knuE2_uEj mkB&kZz41B\4<.7Lי-4vKYJ?pcnm_j28kҲR^C(.` eFMFDendstream endobj 506 0 obj << /Type /Page /Contents 507 0 R /Resources 505 0 R /MediaBox [0 0 612 792] /Parent 495 0 R >> endobj 508 0 obj << /D [506 0 R /XYZ 91.8009 721.8656 null] >> endobj 505 0 obj << /Font << /F15 224 0 R /F38 287 0 R /F40 302 0 R >> /ProcSet [ /PDF /Text ] >> endobj 511 0 obj << /Length 4108 /Filter /FlateDecode >> stream xڵ\[\ ~ϯ^ ~a(c7;(RۛqE{ u9ґv"fwC~"4D?vrXJpE+}z+z+d$D8g)VYHG(*1z:s⬵Q'=I!0ʜ1Oߝ+J|/;upc2&%N k4/{IO8)Ieo_=ͻ;͗Ͽ_eʄ Z{nA+¹c %B 7Ԑ00 Y+%OQheDp~atk"/Β"Rk3wH':#N)~q1J´;Q.:ܐJSoj)ϵQapP`~#zho\)JI?_)Y{)YÝ䣀)9NJ)YC9HfOg&OCQjߵ$ a>;x. ƒ`n\tJ" }n(Gqr9Lmi#kUe_?w,,kNEO"imx$),uSF% 2Cjlu2a&Mki(p ~N4.FRzUklft 0fzLf槍-o:(?2qe)Sgi[b).sd[{,RnNXmJHmC!.L"Zc R=9#71ϧi<  fV/-أ Lj_d-{ͤɌu-5P F߱MNPِGk-H2pP1堪|J2V5堪źp:•¿iV㳘!\Asn"Nͅ I;M,a/jp9j7娇c`6Lk Ow+ [{3댑];Դ{jeM `*&VZeMK`[؟=V s`Ewoala<>cT/ ǍCHIj8Hfwf\VF/sU<;CeT7YHZH{~5㣀 ( b||{ẉi8suP}%K.apzvIJp4I 6M=TX8 rY h^Qogah qΆv9m>DJ}B&>.:̨~( +gAyKpng {F"ćI[B)n6 ]P4O oI. SC&o2{~h)#3PXwFZ4bħ[w^IρOGSo+ =3 wuԺΛ>_Nx<& DJQfC" La[xb6= {ʆWs@\chp% >&EH8M)۴FLyA-W_G:NRo$zz3YU]r$1HX2 =peBe>i},N`8 uu>!~a#n{x#huh5J`={5kW<D!_6 +mP /]Mfʇچ*tΛkt FPno~JF >ެ240YOBH)Ӓ/%%ի>x/̰r.eY 킅MzΊ*#?3jyTdWvZ L,`?u19K{df;sy[}Suc7| w[7,&{d(RٟE^wuLL.(jZNJa^C} OȪЪŻK9bt[zțxj:q\-hs91 XQ"P,WS>teQ¯a n8sHC& 5Lb/iYp'`bͱbPgxnYE;ixlko ۵{,opm-æG7;{W{.u{3GroIMpb G8r ?+z~8cl.j/^>% w_k ߀ʯLjLS0_~}׭P\Z 7_|T)/9Akx:7h`.Ѧ4LĔ9wbٔ/#}SCh "endstream endobj 510 0 obj << /Type /Page /Contents 511 0 R /Resources 509 0 R /MediaBox [0 0 612 792] /Parent 495 0 R >> endobj 512 0 obj << /D [510 0 R /XYZ 91.8009 721.8656 null] >> endobj 90 0 obj << /D [510 0 R /XYZ 91.8009 273.0745 null] >> endobj 509 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F34 215 0 R >> /ProcSet [ /PDF /Text ] >> endobj 515 0 obj << /Length 3891 /Filter /FlateDecode >> stream xڵ\Yo ~੭ Y ~Zl=utUwg$`_X$d;PK;/҇_ở^D#%Yo`DXG 1@F'j^epYk#OzBa90ɈqN>V_v 1%$L \~<0V)* Bۛ/x񷷙!3HM @}/a?+Dñf1IQE/pYEŵFyٯonr9J&NG0KB}t'P5:G#ra$zl/>_>|Ӎe4͍]G R^R"{!sEeEfa 6GgZJ*dv,YpY u<~':*./ e~' WjAkx<~AJ濡NH. Bўi *|#EE(-\4d$:ʖh\a`+wd8/ `ȳ+),L(lwhj757hKkʔEyT@ȿiQb.OݩѶB:y^#ozTbU8XK+O wO]%Bx" ᔯṭv.⎥ υSH׀s=?잴qjakcv8`8Y!l ~+.CwE~8d1 .|3t <ëqTML5S\Q3 HvFXlw!&*ucxo#'|R&}2pJ0ݼ>N~Sĉ{?Pp5H]w>`Ps )!7H , [KC.ᆓj~'YB4IZBXu"i eg(T9XAḌ˿WZ{v}dj󀕒PǧXYۂzT31,g 5rO+L0u97b_X['z3 &{?{+7ÚȖ:d9Ma!3A: ?\ÁTZUEߖ(&wۅ:(2{X CA¸vLhl ܬ{̋pANJF]8vd$fU4=zv ݣgs!m]p|Bь LV#e@c1HsĝXԚBvj`D_8΃pFvKGB3{( [;K `H6U,™Tc.R8۫KE}'^}gKDgUR XB",D1e,Sy ֜jn]7| Ε7hA H AJGcԇaCIz˰, ](M&d-ds GhnX/?2s[Q]qsYt@ŻH#[*3a; EtEIB]P]q[IA*`{RuČ+!1UBkE~*eZcN(r2~_0(E4[~-i?UԑVt{^>t˽I4e-TWe4TۆFBe*{?MeAÝ6*8%kKKSOI5-VNرd[AL!yM[պeum.g]*Xup@B/̂ց!nlycMyvI3"VN}z˅ئbª?\r]JdZblvg_ooFPCqI%"$bh49i%xKJޫᇺyOg))]Zw`/?As#uY3oےA«3m '\{VߓrXn*XTW ;kvѧ[;hEUA[vf ҹ.6m߄#.?:8DOLV\|ُ# ȡ1/(7}*ys)_ZӼi4#!b:*>Zyh+xayM@fWN,~ S9)EHAfZaZ ((5mX3SVӃ&& '2L:}FY;< ?\h>I Km=bT5i&V;d! .)խ363}XŇj^D/*=))aRqͅ[Lӂ~M^ldrbƀT!w׿~8+,]/N^Kp'V5 y3L>P&=h9+DY8eC{:5DZ+&LVcQ,!z4=}>|6j};}nu0ay&|6z- 4\ l)/lf= qy[bxyy)H\m>mocZHújy{CGtO0!&Th^&3y\s{U} XkxwO<:(\φ&NDh Wg:y}X/i}.߀Q8R{R}pΉ L(s$9ܨ~܃7AN"]:R)ہvOKYm$EuC?:@`b2cp>H2t!9:ͱf@ cG(âOn!> {A;48c/#a9Y*ɼ>|ݭ>UsA85) 0RLL6#@^dܹ*|P!fwZn&z)RF({=`3ex͞yUό(s.˳Y"WJ: I-W5:.M#+Ǻ@5ы8H6pڊ )=YlRl Nur%U1{PGz|l&τjN|_V]T&]ʮfH" zScsm":]t]7IZt/BNSlK)²|TDG1$RFeYg<Gwʪ^/VZgk8s%u8NmikFhHr=kICka]R0>tOv&"i&eJmYv*O46B aHwi,ᯌ$ދF_ >z Θ)Ľy)ȳ$fʄj;êgEy`Y4""@fnZ O?o?]a|Ce0#7geΜx& ӆH3T$ *!Iͭr8 mt{XjĻcAnU6k5u#M1\mH; 66%/`bBo_pFV'%7eMpQ3Y#mۮdWe8r^}#0?">AG:33зfzyݾ 6oՇeVOOaxU#&:I'F8pq4 8~mOi,ҵyҐh@iڵ:j*w-囐\ Pa+uk}Eַ37QmH``o@ch$> endobj 516 0 obj << /D [514 0 R /XYZ 91.8009 721.8656 null] >> endobj 513 0 obj << /Font << /F40 302 0 R /F15 224 0 R >> /ProcSet [ /PDF /Text ] >> endobj 519 0 obj << /Length 3799 /Filter /FlateDecode >> stream xڵ\KW |~!Al#9& " ?[N.>,6͝YήkbW' <_w=³"g*x <ə~J٧_ s ,XiO/9 n:,O/߿{xz~狀ϭsU"ߌN !y.>sU|ad'F&7/闚ip &;Ku)Y^si&E )Bl2[hIp3̐7cF]1p585mu*ߊR|5}MVՖ/Z򦈚~b=b|*( ˰P:Ͽ0p pa(ĀkB@óuxl`XA#OD{`T"˥&k.%M9knVLkVBy5DTr"OJ [En`3& %ZR sT3PIBICEtXD``ÇXYZI>2Ik6THPM/&$eMb_ ̥7%wYOP"өz4~SmRjW+ф_,&ӲRauSۨ$4[Vjo4sxEJC֫ګՒ*=yXCxd(C)]1P֗+vAVR .YTQ!u,s*jMj  RYM`+Ӊx[ړdSY4p7͘7׊ qi]Z*J0y<.F 2Na rq q-9Wҥ:mlխ`66ek}~WS|M X(!=R>Z &u+ۋI}{%s;R$Tsɚ'/RP#1uJa%}Kp:u[?(.IR2>+H {XbL4;Ҳ9,$Gq;a5x7 cNCU)8sѵ" 08 p$ -;r,nHեH4qt G'LtID8  'Y??eչ*jPHHrCGLbA.R(X!ڎkTbjXԴ113pט5#Nku!I\M(^b-b-?A(%5C:-oi{qNJWiL %6ra>CyItr$*ɔ>RVA-6ZaKtfd@*Փ )eYRe!׊r6kEe 9}Q)ϴ($%ԚrIJ{oLyO ZVv9a~Bp*yq.T0RM&\%;\[[m`{a#)ip2*ȏUrv;Ҍ7Ev7m6ELkwB5rr&J$(5سWmhN֠4ߐD#,{_1&N1!\qN5֠w%i:RB! io5H^~E?]cJsW[7NJM㸱RFNDʽ JgVnzbzY%"|ŗpT P\TŠPgtZ6ѣ7'uM2k2hQ>IaAy;i*$?WPEعBmlߏ+CkiA* mMlZ-z>=9rx vxcP+{Fߗ~߷[YqeckY9R.Obk! Dy#d%xMvH:lrON26owFdl H|+oJooIO5e6ltR%JV w gΪGvԄ1 [j<2鯾͸X av"Uߎ8ɜpDsrwtG`In1(]%+d}m淾 $.  ^Z袸fr$E߿nIjq:r{M;/ZEћ/>i!{é餮{Sm} L-d*QݞGSuO (סޣ,u`_z.ZK/d5#0֟nDcھ <|3R͂i>WRIY٢ul?ZGjwA¬Fb/(D{?xmo{.=KڥA-&i뙻 ^mp*v4!X=m?) [t6N$%%w3_*\C*0W`ڈ%V>ƌi(5#3ؔ\phًy}p6+bv/iދODR{oc{)֘RTѷrFsTј`Tߎ7x3%%kL7կ"|fījZlq..^ZpάvEo}ADScuQ;XDT^(/Ik@Um*ҝ9&,@M#zVpm q+fh}^JtH$QlFkOMMgnݪaU'3-n Ǧ7S .Uy8ʼn|b" 5GܡLa`$'E}i}m݀3},ߪ }v ̛]~Y[$@qtǢ"} KO^4l}eҮ;?Io!+.Y:[=5n;˥:ZN1+S=?s"v ߪ*4zx981_㚍\endstream endobj 518 0 obj << /Type /Page /Contents 519 0 R /Resources 517 0 R /MediaBox [0 0 612 792] /Parent 521 0 R >> endobj 520 0 obj << /D [518 0 R /XYZ 91.8009 721.8656 null] >> endobj 517 0 obj << /Font << /F15 224 0 R /F40 302 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 524 0 obj << /Length 3708 /Filter /FlateDecode >> stream xڵ\[ ~7^E2 R o\nS4N8-"=As63\E~4N2NAu;<-20Kv^(a[NW%jKbbIwg<]XBE<a?8}dLxG[ PЄ2z?9}Nz+a˾[DO W߂<-bqڝ^\޾?&mJz!& U!lHalgU)-@`>X~XWP>e:_~Bʰ6črGg>4öf844 Rņ)e :ـ4,6~jhi c׷Vbu׵},%G~׈&b"D\\ږ,pm_@M1w8W'10XF1:LRnW2(. ܝ ?00%Ը:MB)P 08ƈN w7;@-;a!>#8ސcQkqʨW#Z".Mx~LFk. r=f\ٛTݓ.&%G^hYY]snk'{~_c[_RSiG~+dWy[f)#(8`e$ hSZ `z*ȗi&3"CJ3hz#H8R=R֭{ Vz/~q+Hr5OUܯbQh%~T<[3^>C#*X2 eѾB%:;֦BQ%wzNWHe=FN v qr)Cm Xժ}I dSqrD 8 okiD(u!^VPdY;l},Y* hj_.KncDq/O{ˉzpuP_ЗWqb1֑{>Lwh1;60aK=,JD=.h)8ڝH]bR"qa69y$p܌$P,:& e̙~ r żMs]\8j km/z{xjiY+u`9.O{K>&`Qە -bND9k]myA[sОyBӅL;꼩AF i⵭>"h3ɐΤ=uұ3j:(6a^֙[[{Y37aXd1Vbv:O<%`:H^GП=m'Kf,L=ƘF-.ҧG=4q>@p>#0bP O1\Հb:`bq=b&Z|1S(ׁ=)(f:Oԡ8|6X)tGB8f5m#i8mkqtUk* NMHit&#C,Zۛ5(ׁΓ>t`t8'5 ?ܱ%z V' wapZw8}lcƒ؄l{flm1dYd37!XpX`d3{'ٌp/ =4Z#_<ŋ7>񠣯8zfaKwޯPi\Ӷw該zG,ixvkq@Zaa\cڠxX1=3q`vq=ư&̴4JiNf%f`o)q. vkǖeڍiGY-AjX|g͞OtƒNz5ߪWe+{tm-ҝ )0fBs34zŘ_#_>Sָc1!;|tysp 0ItʲH,wr´Z :bmc_endstream endobj 523 0 obj << /Type /Page /Contents 524 0 R /Resources 522 0 R /MediaBox [0 0 612 792] /Parent 521 0 R >> endobj 525 0 obj << /D [523 0 R /XYZ 91.8009 721.8656 null] >> endobj 94 0 obj << /D [523 0 R /XYZ 91.8009 433.3779 null] >> endobj 526 0 obj << /D [523 0 R /XYZ 91.8009 378.344 null] >> endobj 527 0 obj << /D [523 0 R /XYZ 91.8009 365.3926 null] >> endobj 528 0 obj << /D [523 0 R /XYZ 91.8009 340.486 null] >> endobj 529 0 obj << /D [523 0 R /XYZ 91.8009 327.5345 null] >> endobj 522 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F34 215 0 R >> /ProcSet [ /PDF /Text ] >> endobj 532 0 obj << /Length 4056 /Filter /FlateDecode >> stream xڵ\KWჴ7cȇIݴ:n"Ē:a"d3;;SSuUl~bV>/'+ v|<(r]tRr1i+XW'?^Ư$uYTڞ>MDAk>+)x%+3DlU,rfébu^0'#޽x׷K9)Sp[;oxM3 ;^h•\MV#U+ 7C(W`jmU1oFE#[{-Ӭf`HP֢`|6\]FjifE'zA8Y9 f88/'ca8{3/Ɵl-cz3虱E1\k#Yc`Q[Sf v"EϫPC_?ϔ3 G+i4\)X"[4Ķ dEfviiCNYh<y_+\/#ZR݄t=G>"t!DYkv* *GHQ,Gc4"2Ȅ"J %͐cSvfH}u(!2ڂMNͤ~u+5[%d҈[i Xƽ_ADɨbh T? R,u)7e&|\F]MSj̴WNʢnE6w>KWeQ́+ğ:l+R WGQ0fڮG1bˡwpj6ii+qxnXLɢUr>bLs YWnD `l׶-»ޘHj0><@!q{H"LEs`z@vXըy8+Pg7]-3^@"'^EBڽpb`4Oh+ hBqU{䰅C]Xּ3_H!Tacf.Un%qb3cX6-]ѫoF<QrC|džHݼ wn|hg\[`ym]̚*xU,QeM2ΛKy\bjN+ޅ ..iJ퇍Vk; R ^.lK06l;&TZEiS~ՑYd8F&z܆B ŵ3`pM!{2W6 /5(mB/;OKE)ԓD5mXrsϒbVq}[.4O TBr:8z 3x3+⧾}`'VӑkExK8/KXZ9wnnP&ҖP}̂hpv\+9+1qU6.,khKaN}ߟ}m(W?tX+D rbmqrb-N}F}kco-NN$uߥ;$~!\E0cBϹtVyb;psYG;-mKGWHXkV .;VYlil?u_eo3(ZQ&1S^0BET[{9r?hCq w["?CEO>9 gmkqAM`PXeq?bqQԵ|AbÜ4U9Yr.LQKb"H}wsde>XJ9's 8&smkq;-gXeq;q8iy1Z3r(ap&Wx$. ]}έ٨wՖƍzǞfd[eal? >8;s1nZ5%ުӱuZ`ER/-J{x\#k?&N Lܭ>{Ŏ޶ڢLEg͸nH[iϒ4NqMzf&n:3~ow VlN MU_ebLd]RQDw+x<^|$"KlhI#38g7]\= {A@ՄoYcQ.X,H WݰQIb2wa9VY lC^e!3KG=$9۾C3}Wl!eƀذ7G\tp >=4rؗkx?|~|,!*>n+psvr7J+w*ݢK,w e[Ы34.gnVRP재緃#s9]8J>~)#a [̅XfEiendstream endobj 531 0 obj << /Type /Page /Contents 532 0 R /Resources 530 0 R /MediaBox [0 0 612 792] /Parent 521 0 R >> endobj 533 0 obj << /D [531 0 R /XYZ 91.8009 721.8656 null] >> endobj 530 0 obj << /Font << /F40 302 0 R /F41 314 0 R /F15 224 0 R >> /ProcSet [ /PDF /Text ] >> endobj 536 0 obj << /Length 3632 /Filter /FlateDecode >> stream xڵ\KW}|? 6c$ozSf&3ٙUd}d󜇓{~7|dL/Χg#9!R^<'aN+Ip˜de!X}z˧77g~sv_Zw4c,h;66q)5iT5j[2~,T] i\ȍOe@ tWz>9MͿ}v?NgY~ ~DGV, D#YCuq~I;ɜ';}'}݇/UXA%y%E;RtpJnd!F'sOgɂ~d~J3: BKvhw\p̨CTTb@Mc~[XT3Ie褻o>S_J֜JkIDLxwJB*& )Y Fs`Y2J1k43.? Rc)Bo (0AZ{{-;laIE9"o5u`J q*q δH[(}%6ڬa{3D[ VT`8. *?@F))j8#X_q.v/f&xk1kLJfwC/ԣC*n\_\dlc=9b(LrY,⾿LvRՔ+qz _,S+WFN]k C{?-k-,G@蛧S;'O< [I(0omSQ(ub_)k-IY{MC]1F0qk<>n)ƈDb,Xj0 ݖR΂}`{~,5U11*~vYﮂ[%j k1XZR1awb@{ JhS8}iJ#d͠Co I^ЗfoDlDAZM :*IO 0څ=1v?Ub-k/]u| (T%|*)+wkμ2/'͏'RCK]KU6h L 8MvL-E/mЅuےX60Ƴ~@ɚ] ZS-E˼|n+\fWVH0֓ݻ@]J@bҶ$w6KHIJ4t9&_ޅ߶ӊj[0Te)-NhYBA; o&z˅RKzB]DK7PHHKx;{N*N~o?bj*D*mXkƃb=egBE./64ԧpF;} s1,AJt1r ]ȱ]x1Ë: 5ٛNbr'mK+sp>ld.x]8Y.R`Nڅc\j3%Lmj{dm(I!x/(E]@kX܋ގ5;oKKΥ޴bmi&Ua:V^lW!bI[[ܮIzen _c#a jňMP:j%-xT?>Q۠J}"5;z k*FmCQ8$Oo3$\wgHgHE cz={cEgvhCa[[ /wZ䁠Q^DD4h,h>*Zj;=C>)c`EGcs 8pA*h 1F;%Zc8C rde^͓ n`kݶP8R5JdC2tBa[[)}`Xc$SzخY&"(Df1D, HD*&t>c++Xzԣ FTrNa4{9wVd2^qB "XKeZJ\JXf]wfYmmT|Tn& Xcq+qeF#ZAFPD;KUX{ZXqg)23#VḐf9ˇ~uXǼvOXWaxI[n‡b{Cj: pj7Vs(EM]JQ(b(%r8uY? ˏB 5|؆S> endobj 537 0 obj << /D [535 0 R /XYZ 91.8009 721.8656 null] >> endobj 534 0 obj << /Font << /F15 224 0 R /F40 302 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 540 0 obj << /Length 2795 /Filter /FlateDecode >> stream xڵZKoW tY p3| | ,c[HrxvA{HӜn4!kS]X*K$SD2o?OݏT:?&.(a%hጎJD>[hC*]%OzQCn%SԸ@ྍ # k LWNQԡǸqy RehÓsڃZn f .6h&:u2bm1 BK/lx+.KAHwg peO5uFȡLaLGD^+$k)-Y+> S7`G.vQi!#X%3=s|Z(/oc ~gW(_^CĒ +o&S=_ZbDv: 'g f#-i \*Zf*О5^iyOFwG͢ f.?.ôlXbLhXഔ+u;0GJ9#zGhf%(BK' ,]osԯEA'қj;!E7H-6/ {jdӜ9[4lyt eź!'XI9u$uVDd|  ;8 <|[zy^eVHT1zmYk*W2m5XX^7+# q>x!]R;tnmbA#rw0-;ZZɾKK{ZzZ̯@2(1H9+毜v$^$~ 0wfÇ;`+v\ 1xU JὍλN`ûPEYo!I=H .o8ԔD%WIu}{X°1e& / 6:SFXnj ̩YdKK{ӽ4Ȭ.!NX*X' ۦ !DyMF.'~5-bL`k"j'q]IxEJ:nrU|[ɻidP5Z-Eqdq2[=` ͬM&*^TdŰ1JM[*r'0=*tzˊLi5țz]-zۂ v`%15z'H(rfJ/ %wO.WϾkygQ@^!pD&Fz*+p sr8 dZK'*<~[(X_k=clnDjegQYP_`?[\\1BĽDT&r v2GJB'%C蛠{WHW-p(:F>QIsvd6;2g*B=¿inc-sU]ԕnTua%9Iaճ V"H9p[b;9PՖf02j`,w?.jw2wjўg(z, `1V{9:Ex^:/EfN;+NZkc-I^xdh?*s%#tҭ{^NkpNQ!e1=OisvKK({JBM'4J~Ygq ?Y:[,bl\gp)%=Sg l:[U{Cql"U<^j';T{=A :N{zN'=T8ݠ%0,KZE[JkwVORO,oNJ)q]ue**WhVrWΥH؉oXe'.C?'E" Ѫcʥ 6.5*Kn ǍZި `2K[_'.S4 >N;Q:75LGoS;l3NZ15ގڢۙ ZNqǼ)o2gi^l8"pؠ `alHZnj();LƟ hw]\j@Ŕ›N"$Myw`Q-SS4v"vka0`֎\kcBN쎱z]ýeuK'۵]6p3#2LMNN{UʷL](Fv/T/9C"-ɃR1#A<^0tB25]Ihendstream endobj 539 0 obj << /Type /Page /Contents 540 0 R /Resources 538 0 R /MediaBox [0 0 612 792] /Parent 521 0 R >> endobj 541 0 obj << /D [539 0 R /XYZ 91.8009 721.8656 null] >> endobj 538 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 544 0 obj << /Length 3230 /Filter /FlateDecode >> stream xڵ[T]5o@"5C%( чVw|{|=o=sf\mAuJ)k;0V.pQP:*@JǾwiAVPrV0rB1) ʪOq "O+Sml`0MyO!">1>!fDVe[7@= ,W6BtNJ6rAcl vQ9z!;,.xa  ̤͔'7QQKH{}1 W14ǤW/=]G,b`]*!$3o[4o[ ˠx@j'Ŝ Ilz.lI935fPrU/^/p.Xt`~ښ:I'm=]*dƓ5J;JTVr(΋'N5~P]/G.@\cwk*t~#EGoaK"@AoU6e $Yʡ(˖-bnXH#'eץM]jfcKT 0J#/tap7丝GS5xq0-i[ڜdE78Xw$Yf  д0榺d y@1 أb kbuF"R e0J]װ5,xk6Wu$e.ͱtf`XmX"ƊheQQpXV)q%@uTAċVn%R啫U7:WP&kX'ĠXNv!֊/O_-Y.EfԜZMOy7dIX*V(Os#;nXvc0MrƂgu%5U3ӡRy2|u-*:._UUA<՟)*i} ,ڱ`&G< JFб!Ĉږ<.b gzG?;P/c^:|xqx]}*wG\E0F8cJx?+!#FU2\8$R>$oSq8s &IIgTw\Cיa}F ٕ@ oM'Oy PAAV&qc=KfBl۬qbYbk@ &+ŚP-P˄I]S0u ,OwOC>M@DX+ y+-V 8 a `e-.)eyfRWk {Na/Bؠ#wt`]oD%g6וּZׇNPX{m_&tN(:}JUm*SvCHQ+,vG6n.~cpwk'jz-^ ygOm ,AUГfP|h(J5u_n&_ִ `2a,qni3eMWY:Z1Rd\&WOjleY~-,ʢt%UE)"w=nC){}m﯊"4,Zg`VmO(Rͯ#fNQ>u9˒P(+%0JbRm>Ox6h] ^T+Ì|0ӫu9sBYa#z0~f|FqnGZ[lib'1|z! T0`w>Vf7tWy^B\> S>V!`WR_ӕU/h/ ;n.ln"XeW"J*:B۴ct/=&tM%L,Mӥ4Mٽ:~h$]sK7je6J[05vg1 +"NlB}!iyJS=O i\ԏ%9ߜkE~>nn{i$f4-mo?6q{<\ppی7sMWpR>9mA5/Ͱ9 (vTaoLdE[r_RLLBNۓ2#1fMl?^{xIä́Q;jA..n/U2Lݯ.+Fv*2A IuA&@U.ݾU"mz #U N;qsl.U.> endobj 545 0 obj << /D [543 0 R /XYZ 91.8009 721.8656 null] >> endobj 546 0 obj << /D [543 0 R /XYZ 91.8009 696.959 null] >> endobj 547 0 obj << /D [543 0 R /XYZ 91.8009 684.0634 null] >> endobj 548 0 obj << /D [543 0 R /XYZ 91.8009 590.2284 null] >> endobj 549 0 obj << /D [543 0 R /XYZ 91.8009 576.7237 null] >> endobj 98 0 obj << /D [543 0 R /XYZ 91.8009 344.1111 null] >> endobj 542 0 obj << /Font << /F15 224 0 R /F40 302 0 R /F41 314 0 R /F34 215 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 552 0 obj << /Length 3418 /Filter /FlateDecode >> stream x\K] W\dW MvE; ױ nWA{%i<6E<'Hcq8<$FRoQ{N2!0`P ug2òY@Ĥ# 3n= ܆8e_ ܾd1\ $^`V'$Y*BO)~‡nTg;$ť5"k,7WKHI=y'+Y.4 ZpǼ]P?^O#s8xi]y+/kA\JR*^pC 1OLy mc&Sd4%duJzET /ARz~E̺W!{fgխl*FaZ$YW#0dݎBF`; ^lu Mij∣YqՉzz !#;z oQ$Yf$I-$:"f#6ޓ|h|'C矘KhZvAcPgePtqtE䷟>"G[sSYPRƷBY&&?}y]th2f[]`GcYD|LbN#6a>mE?D% )O+Ne P?p`ɂ>TfwrPؕobqu52>)RuKXjU&AiDn&ee%,LL1vPB*ɦ]d;Pj -$*ŬR˿~4 :i,lD<L<0v1d@`aCf@g#U=tL!\XË1H WP,!+Qo>&9p+oM7*>KjZ PU_D2h sEwwP(slr :*xbGh2>ZG7KHׁ:g2:߻Z̾.G ɸf\9-%ӓIɌnsZIq#z'Vdzl"E >U+UqBv(Y]4Z*.ؐN^DaF=ف,+|v3YNq@Šŝ)eR{`XC tGUav9ؗ}˩tr?3JvX{YeNaef \ 9$*;xTfi^Re> [i5$6@|zM9^ynDӚzfLY(iXUx6 i[5YwGGdG?؃m }rc=Jڶ39Hf9,ad" 栻)Ėt IA#%j73I^ҷ/͋{}l~Ԭѕg-1VR7@r΢hg$7Vx)TE7%ӚdF6sNIz۴hp3Źu9q2 bה3j+e}9ݻh}go/FMu7tu'M*-")"S !ww&ukƆ,VN)}_ѩIY_:6lWipH̕rlc N~/=b?u q :ٍEڽdpc-jI c@\75m? 46Rxǿ|Ib\rrXl[ezpڄ6b>ɖ6ؘ.) XtV.M]nk+PQ*28P6XԡVIϭ㱫6F|`Nҝk F0ҹפbG $w^DP/7#t ,,a't7>V{i'i7ACne;/{Mi-y@#]%;jP~gkx:{[Sp\jxK]a@xÂe\_¼8R`SB9SܬQ ٢ Os/uxz V>tا^D0_N3ВB۪Љ}\`i'i?Kćnss!~ dp8/@.upG`kDuf`:{,?~;~^k l;ۗJCNK`[c3;GܞaZ[|9q,"ؒDb$R@#y"mE`_;3-C~Bm }K̿f5ZBVP0^,eYRL`« )'n^b@gɤP>-@9)n•N,.dT(;?endstream endobj 551 0 obj << /Type /Page /Contents 552 0 R /Resources 550 0 R /MediaBox [0 0 612 792] /Parent 554 0 R >> endobj 553 0 obj << /D [551 0 R /XYZ 91.8009 721.8656 null] >> endobj 550 0 obj << /Font << /F15 224 0 R /F40 302 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 557 0 obj << /Length 3372 /Filter /FlateDecode >> stream x[[o ~:hڢi>՛m/[pP俇s gwvWGR8>{v$PbOLA0y k>]Bg*x ?OZ Q: k|OGɂ>V)gҘt93JCcfq9F~ݝJ NG_d'| ,XiSd^=ߞ|wٴUQ_CAI1QUt!=j/imP*:L5L: PO\8k]d%J6ѼUx8i^),1pM%(=~#/p&^*D@>0~BE z+%L*8XP2mF Ee~G L?~\ճhSEg 2ᄝȈ*ə:< $"&~lT@f"\# ]颫M43&GY0Cjx3滟o߱67>L:Ϥ4bfB2DUӁJy[*f+]%`~7W\!Q~5Ӟj QDjX39eS~sDQ_ǸTdI1㱏l*`w1s ZX-N8X٤_Gq?+ }u9&g6/KQCf^`qaY)Kz(rDF){%ei"u޲E^ ^68QRfx.*/ƱgmXpNH];`7qb)jMo\;{8*"]R l 2f6RAB“$t2Qg7[] ؀q)T.\t!:GӸwUѢ2@,ߦPtP4Ӽ. ڒ89cEa`SL~# .i⸀l[}3ۺ-6བhn 7ctF+^%tQP3,Lzi^RZ#)+ ^+ZjkH:hwN _qS|2p 3ZV=dBICF3_`xŗV/m3.u9#b*婵HY ؅ӳ80ž||.}6Mzk:v2IeLBtζu [tFҵ+=]yu 9b*X0do6;V¦6攰w0)|I[&EuB= k+)J^G34 :CCnlВ=GI.9ØK\4Ѐ9-+'S9"#YKl(2Mj"j;k`H#%,0RJ y[ ENG3L!%tvYȺ/̒HX i&3RWy0&4LE7E1Fu;djʖ̿UAA3ip,"Ks^on5`'۲0uGF}%dU2f̬Ol,ثͻ =mSܕw*I$TX»w'c1{rVc,mϽ8wL{&<9SՐ, +;Bp{'Bݲ\zR+ Ia_`s%* iw|i 9dlu1n䴧BbWJo:w[T! `=3J^\l^k}Kׯ{ øW98< O^e IKJՏųcC]?F~lSǨ~lCYǶV?Fn1*~~l[9o s!^894䴣RC3Ԋf84䴧BbR֎SjRݤYQv+$F ֭p5Ԛ]ؼ~yv\J?`TycBԍyWNCUԻ%DIeR򢝫 "Maṕ˳-#F]`j/-l,-+ ~j. FD,+Q*\,tʞ0x)tϮ>|7_ \^_{cup)$?\w!F߻57h7i9 q)qvs>LKi?ҵSx *+t#`+G^6@Z XZuK/^W i(oTҭNȈglP=[<ֆ 4O1#̣Gm:hOv@<8־6끭Qҭxbt֏~%eT 1!G/dh/m -W*u<wGY 0[^%u^;W47ϞmYDKHXLlSY>N',˯?Y_O,۩LWVV>a%olj 9GNgI?Ҩ:`+EaBd!̎;Ra9M\^kh#Zך[4@T7tDEŧUƔt 'D]i`=I3MPZv%Q]$FCƕBŸq7W}Ussq%tc_~6*̢{JnϾz,KI Q"73 *qBӽmI1Ѥt̉uF7YOax $!E[Q] סBUyϤaZObi,M]<|ܝ!qATtt-'PۦO2f36Օ0ҹ¡V.KIP0Я:{jMEݞ˵PUHt }lQ 6&g9[0Y^[cϪKl]3ܮSMT?d75淨8a΋Uh{:]ȑleеTZ8S:u-p|84vvH,'cR{f]sny O"|` Ofۇ> endobj 558 0 obj << /D [556 0 R /XYZ 91.8009 721.8656 null] >> endobj 555 0 obj << /Font << /F40 302 0 R /F41 314 0 R /F15 224 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 561 0 obj << /Length 3100 /Filter /FlateDecode >> stream xڭn\_}ҼA$PC]- B#;ACr9kF s4gvQYe,\wo5AorKpQ.ewV-6 ~+i8Pw^%-rw{:|I ie mq.OpH<+ ~c\:|wZ˷;@oq?/c3:)ql3AYCTjU$'ӊXcxTԅ4ۈO)s ۏ{sϯ>w_çp՝{kc>t޳I >Hf;fZ1$otJHlz8iHmhvMyp]WXH3$"2'p &בŽ M{HWWK]cnpYBi92sLz>!i,ո=+eɅm[j,脝 >]Rv#,t?B) 1h^7g6̏DYeB> {9A ˵Rq[;P"63h]VW$0v. M2herm]b`uJ$HqGWUcqV%wNRbETGӧY=W1qjx !@ZJ*|B4/ci UI G@1qIOR$#%Y;k ;S@{ˢ%b-0sFCfjkH,O $Lv}ߑObíYމkҠ}x=9QMM`x1Y"]{t^(^R7[G{C9$A5O-͆Cp`$2ji[AĪd/nIEZM zt+ e~ܭy rzӳ%?6O*Gd W?_?ܼfZCLFMIqJhkV<sV֧ % `Q&fJ¶w5#ac#M33Һ[E:mbd$ WHaDDc*FFQVvq6ĄҞX9.a3oO yof'U#F|@M,ZkW41U2Kf;˴ oXV (j+[L,ӕ-s]`JZ  Nʶ Qfl%JT -y +`Ҩ(r)FzY&98uU6޲r%T/n,ıE:d1iixqL4eHh$fHzꉶXy^?;1hC>tq<ol\'bQ pEeC.G^[5.d @ROOME>H#8aca(Ovx2ɃŖVN-yXȼުv9QUq٘;y6FNUccwÉ>۾#-R;El1َ|aE#hzQ^U2$#F$ѭ g1MaOGO+5^kd׾. /yF1xms 3:stF)zO< 7&? }9yjsɟq'k[>&=֡RP6RZR$3ސʼ]׏WzCR1,p`ӸSRX-q #(i.O#; YAOCi~΃~Eѓᘄf|"R6x쇟no?/~.]ޗMEǂٖ3ШO-rl#9 baoolD hrQwlfmIt5 m;!m^*KO#g+N?*jZgpbFo*2hd)g,~vSq;~`yh36N#r3/k}G"[.dxQ9|m×QYߍq0.Cu )o 7p9lU3?._R_R/'?.@u{wb_}IKr_S!t'^b꜊ S:ԹMr9M޿]Cb 0iS+KvI(jo a3z|!}}9k?Mn7#N}|2{{V>_.]]̫m9 )o vLg]u%<ӂ9)[8ek1HRcj_E?iv$euXt3gn ̎=4endstream endobj 560 0 obj << /Type /Page /Contents 561 0 R /Resources 559 0 R /MediaBox [0 0 612 792] /Parent 554 0 R >> endobj 562 0 obj << /D [560 0 R /XYZ 91.8009 721.8656 null] >> endobj 102 0 obj << /D [560 0 R /XYZ 91.8009 458.9218 null] >> endobj 559 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F34 215 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 565 0 obj << /Length 3300 /Filter /FlateDecode >> stream x[[k9~ϯ8oaZeag`mH`{e.%ZϱեOuWWY8/¹?8  <4Z.LE/GSyi![sQ2,KZiqE2.;ܟ 9O% 3!J,F? G(oo_3o=|(t]nOxP H֣L ҋ-L`֚q/3YMU{sh#ghf WSH׀G׻`j )Npmyz4CVB]1ЅˋJlOm2cO{-cE[PĖsh /܄h M.8¥qwc(qG;G$ vπG D1j$+T% ֝5`7jHwR +&@ XmԤNCdxRkҚWv}rgxQZf{rÃ'x@T0Z(fZ^0ɎَMc(+9p.l9 d(P)`h$х(M&43?{%GhJ%b,JjCQ?H BU-FVb%%FyEZ sdDuȂ{+UTet-J0n\) |Mdz&Js)V( Cb9ucc5!~M;W(L '?;|}S~B[E QZ8|JfJjP;M"Җې!WS v+RMHJg9aTIéd[l{_L-yqd"orsxkT Uo5Ex6٬oHK E>1Xt!_뮋swKWa.Jnl {*;]8(1cnY_d9Ap8B>?%xs OO7qd1 Q]gjR 56t<d4k$u8ktm` *NmܐД-[ \NLPXvmjTţQ_lQ 2MEh"ѢB K*]mt@ز1Q:Ϭb&Ѷh{6 ܣR'=~VJm觽Ոm` m\j9ٴHAp^t9RK!bBfWX29"qP&!M6ŕsJve[d]>T)2:'XJs9'pgm5V qe!QO,6Uo,kC1R 9!ypT Qӝδ I72)L *+ifѕ1 ĺ/r>ERQ6` /b}I/os}/ $_R 8P>Bla^,~jucO}+A1=P/J(}̅f/&bcYZ8_LY@3LJ:@Lb cFrMXpofBPݸ~Bjݸz:KW?oW 89@[9! ~qIh z"jbHFGN6'( sLMP#]bs^Kj\[3VF322_qw\ P "7J϶_9ЈW{^M`zIk8E4: d!0wA| _mwAg^4_q:7¶9gYTA>홃| P2,՘6QF Y@- mSYxU(gxft3H׀ ͗о?}zW ;D^Ȍ&@ƕ#f=qs/1' O!MR~?3[\><% L@}h7NNw+Oy=}\&dSP!MR~?Ö[pwl`/}hct$ K+Oi%O)B5>&ӧӧKv6qTJ8H9E%-* ;C[t< R\A#jOgra %;A./uu>zf;,"e(L]\י[5#3y[s|kQ6m=ngX.P D#lv&);ö:':G[Ůg$Tugw8U$msGzev.uL[)$jcYddзu.һiؿ> endobj 566 0 obj << /D [564 0 R /XYZ 91.8009 721.8656 null] >> endobj 563 0 obj << /Font << /F40 302 0 R /F15 224 0 R >> /ProcSet [ /PDF /Text ] >> endobj 569 0 obj << /Length 3058 /Filter /FlateDecode >> stream xڭZ[;~WcD$Ue#7@ +:8T 3N)sϜVSK } Eu+8u JeTjMtJV @)he_ONlGN<9e-ywGp5U}Zl8tt7}qy/ni<(; Gv5t$yO"oׯ*eN޿o >Y?Aا(7sáL 9~tsϺӁ[Iķk1U.ZP=^A -3w?P=߾߽ a#8M[Tw;\l8TwjrA`Lhc}Np:<n&K܄ YcNr_ӑhIWIg"9 IwSʵWo2KbWKx)*>DeopFE6`Yb=y^A_Wf&vic`@TmT0ֵOT*DGV0T qXw:md{uv-aG6:oG3yw&Y%$u`<}r F %c\13`Ix hx#Q|epIG_6P)#=edӞEd t CH;%'Xx[TEIJ,1%}ɟ'6gMW2Ba@*jԹ&?,GYS])C\ B9yV :~[u!_E=6Қ:-)V)V*6G:T`]zL8fhϤWт)Fn[vq l$ )τ.@8k Ӓf9;Ϣ]wVI3Q9UƭcYDcOAQaXfyOw1c2r4)06Òƃg-.? BM^01TMY.Nw 3FTbimX.ϞRg@@͞1D%C©- Nm9&FT"r &Z:b-+{TJ?e|\/Ӡp .tnun@ȶd,"5<ߟN`/w;[Sk#b to7台NGm8f\ȟo]FGb T|Q!"e_ :$%2rY\nrظbHP7@Y1?>fat+uh;gcr> P/M%\|QWx撞dt9HVR hj*W۞eRQMHł `6*v~)KzT\_A6A%W;匝MʶD#ϭ=/6/WM"ch;!/a. 1fN&V'͐p=Sxm(0%v9Fl/{bPGn)SLM2x-+akkbjWU;=7.#4fKr¶8È3JV=8G!OTv1: +{ژmmCn9>:FsǍA`b5_jof8pRH)ue MjBjSTg#b<"7 &'X%=9M%iLgHi>(x,^enERseﳴCs`[Q-2=~3qVՋ ^~HԆD)ru!:Z~kA+ uq[INLNm/uZmBYGDLMo"H}a; ĔHNh/˲V 4zin=Obx>o;dU r{ ԔpLS"`fhT<̛h[JT!LA|)lS&. =n~8Bؚs˓?Zj%Zhie١#pl!-V+mB$2\n3v)XƭQlaqwKgZK`ҿKpQjQD@hdP%i<GuU m̹p=hM~/爵xcx#+_Bc|Es%aҪT Q#fҍTfZD";vɛ񽬻d/4Ɋ-\ :ٴ/5dA=>߽@J^{sԼoKYak{5cȂؤ_nX9]&<& O$EYQl ֪7/hh4,jAmnc[k4m,ОUŚ[ hZYUl,GO.Dd&c,ꀎ `Y_VF%%o-ZU>MKޭj䭧}aB{ ]x'¶ z֮8YW5쨗ŝyXPkqTB {{:`INZYk<2:36("VNjP>vYcVA aQ55u༩m)ϣƹzQ4@^cCk16S27r5zտ]E_'^E íx3zzMR+*&LRӕ[fe"B wyS'ƕsVLm7e]732!*QЀQde=l.t:>tT6f)\6*nT 1 |{ X]&m䠗q0C@`~qM^k`%nɎu0׆\߾+O_ m*QBH&[?^BL~އ[ޢ"_\Z#%x=p TBxTS1ٱSb+jwT d8ӱKXFH:[n_+z%A)l$]n$DX;Jjpf%?V+$3S\Xendstream endobj 568 0 obj << /Type /Page /Contents 569 0 R /Resources 567 0 R /MediaBox [0 0 612 792] /Parent 554 0 R >> endobj 570 0 obj << /D [568 0 R /XYZ 91.8009 721.8656 null] >> endobj 567 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F14 294 0 R >> /ProcSet [ /PDF /Text ] >> endobj 573 0 obj << /Length 3381 /Filter /FlateDecode >> stream xڵ[KoWLthh AvCݢ,91w5r~*9=egI?MIvI(e _?CoTcu&E ?&{P)7NOWo}.]})E6|"%owW?6^gM@K/W/tO+f3QUn|P*H/,j# Y'gAUhyS3+@̲i|(RT{4{iT:"(yGʞٵʜ~M C9vG4h\o]~t 27D{F DI}KE,<\9h2{kZUh(D[P@1y)7[ͮa #ኟ #|cğX,ٶE/ix+"U]9H@8q\Q gp{6»hJ6dFf2Gp혝(t:sOU7z(#'&퍣)TA UQa .cJR)"NUߑx`8S]saV$P&f%TKO Vm/ e 3y(-6 8b@ 7<(&-QhJ*n}YCuIn7@q >GC|irNTNʥ>As9d/byCS=_f\~BAso<',ʸ拭OK*$Y0څ'&pZ6$Ul"0DJJTkhȎ  6Axe`njѡdі冰bDDγTl$hfd24Z@AZ]j|0POiv21"a Tކ&f\1ܘK@`2ZX ġhG!<&0v 1&:cd:~Xm3kJ reVi36 c9)S? q()~ZUpa^#zOȵI9cO BdRQOG`=ʧ˵>Ȃ@3dԻvxCGj @C-ail U/ _?ܭ8҆'I mo@} ^[y8]*(#Q3joԱSw[\2Pmpzɝk6E%Bj {i> NЖa#%?p@υa.ORB,SqcDqԁb^x]S=8{M&{ s|cp rMcj0v3/J]/ٓGs§})'<r!'[J'Q:q=c+sI8o D$EW Tׁ;h賔 nѭ$oH[L)PDQN.rX*p_*/)]&u,9VD覇ث!8Kێ͵fKR&|r[MiezLm{endstream endobj 572 0 obj << /Type /Page /Contents 573 0 R /Resources 571 0 R /MediaBox [0 0 612 792] /Parent 554 0 R >> endobj 574 0 obj << /D [572 0 R /XYZ 91.8009 721.8656 null] >> endobj 106 0 obj << /D [572 0 R /XYZ 91.8009 496.0774 null] >> endobj 571 0 obj << /Font << /F15 224 0 R /F40 302 0 R /F38 287 0 R /F34 215 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 577 0 obj << /Length 3451 /Filter /FlateDecode >> stream x[IWL;m arpAm(` O*n-6Fլb}c.3ըE,|!^z/ovQn],cVf]\o>ڭc̼պFgfsWZ֙#Y}x_pYm܌Wu dOLÊ]o9פbJ=r,].y^+ѠDz[I=〢iIb٫Mw7Ih>pmՀ%1[Z5W}yֈ. scT:2] m={uU'A@{Dr땏Μ#!sp pF;Hλ18i (o[ SP1 AuCqV@1݁B(~µ(~CXv0HC 9 _vPX5G, j3C&`Yrty,0fP,AE,'P#(#/@,CD*+CX3A?h穇 9_}U1$:!8b+ @ `/_tNދ)+5h\6ya!wDr1K1 _`iLElP!5βZ Q*[k/>xebK07gzGP{w^eqzygA.'i+/!h5l k]^Ѳs/cJ˲S ez֬JO.7 @\"k;$lb8:y$ۑ7:c >L߽yjl(HYRp&ӆS[Vz'TlFjil79{q@1YӭIr؜SѹT\_X(5$,vtzjOeENϾ}]7md^LZL ,[Z?V-9eu dS,vjIi9X"R}{,.[b1S2=ɳF ޳ gDp*iy#J- H>b-m`%c+%zA+lqqO6y(o叱K N25#%Nۍ4F7oA.1hvב: Alm<8⥖}<'PR4.vD>~rqDk652GxVU ?ϒQЅnm#Ƈ-a۽`wWy$swBM"\8&AhI܏ҖK+@aQ%Kz R&voɽ>Repr[cUe ,@.Q,XAp (}'Vj u&O7BQiUGе,/Ls}˞F*"oI+D>˃>7,{7F8 2kXYdW7*%+)b^KY", Xx`DJв5X{7?,g he~bWBro}ei.+mzJ < (j)/=+>~J=Ct꡽܉ysx ITXY$D"U?ŝHŪqGKlKhKEmuΒ㉅꾡& >36g<G8ϝ_ߐYCT߀:[7Iu ,v+)ͼu|S н48yTTJ%ӫz*zLCJͮm&cպdo@'C=YOZXYZINZB|.ʦ+9FYzJ]kɹSVA\Aq\P(A_˫n PYZmCJ -+L:tbJs˷زXחEF #Λo]/8C0bO{p`=_]}sQ42vfeP,oeG&z* \-ݶE3,lR?j!մk(`mν9e*v#AېEnj5¥80]j1;DIDS+D׏ )fukfnsEY ZqK nȄ݇q@iXOàP{S_>p!l 8)E% N^ %^}2PTaKs|I鳃7ZE;2іO *Qw:V"|3,Y5uEuQ {8Ku ƹXg]/ڙZu=A~uzfi,Pc;})c6,*&`U&i30a? r`z0c2awb2@e  O¦b=Mq.(XmW'^lu]7Dwt:핝"hXGwj^ #1.6908ԤC ;b^wd~V]+Ql:6ҟgޕ2ٻ #ݔU;y꺏mgġ+ƟEc>ì-~,EDh"mcFï*:f T?HjvL.o<Fiml*q]ؙendstream endobj 576 0 obj << /Type /Page /Contents 577 0 R /Resources 575 0 R /MediaBox [0 0 612 792] /Parent 579 0 R >> endobj 578 0 obj << /D [576 0 R /XYZ 91.8009 721.8656 null] >> endobj 110 0 obj << /D [576 0 R /XYZ 91.8009 678.2397 null] >> endobj 575 0 obj << /Font << /F39 299 0 R /F15 224 0 R /F14 294 0 R /F40 302 0 R /F41 314 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 582 0 obj << /Length 3102 /Filter /FlateDecode >> stream xڵ\[ ~((_Z@b׎z]l@ԅf=aDQIQf ?lqXJb8|J/w_^<K4["UqJsfW?\/F51RE[Mr[[!N91洆OVh<3?+vZ5fR3U<2 x]~C2hT2O"d*PD jj!QV4Q ƄyQhO)h"i@Dn]S|&XfY!"Tj? ؽ{3U8C(jY#N)JbUfiUA.4]81`4da(JTKJhA^q2RVfްY}Q `_0h,_DͷVV8qQ,&yj)$Fud]$[:I~AyFILߡaLZ?ٳ|=h< 5Ut0r YLAK Fd8XPlڑ86rѭ#/pǣFFGbQwrG]} _5Ofp a?HKfY 9۝IpmM\]⁣j2M$ᖊoL =>QfAVhFws<C6s0oXeKִs#A+X"-%BE&3s_`8km4 H!0,V[yE.= 4ќS5e |% l2fl6DЯN 3rm*¹ci :Qo~iV!Nj5C?v`a0F`L5 qx5B~U(EE+,E N#Ƹz \ScB- ą<.jKdѷ=)Bxdmk+J؏\X3yiF4x#gj,5`_<a,~J&vr3 ^5T 5X0ʍcŌaڕ\]3F2zn2mc|N3M8Gi5<#Iyg+ic'{uC>Do 7Qjؽ`2n2˜37d^;vo&p용fBr6yu#i"h,m NR {@}䵧|d4K >R?=w/DN3pDMLpQ_pa gz5zD&TZDN3dSĀ|CDN3tfkCD˫W4s%BZЋcG!!q ;#aLmACݒ FԽW&!a-6}H{~FNrrZʰSQU.<*hsmf8R" ruc0*L]\,6a7ŒL4-Ad65x%#Ud"%a{Y>IKxbQtbI&Kj~ Eq4{]dKrad 8.4-k S1͒߷01l5܁f3>GŌ``?GO>KvxXv eN3lD1WrJ/Sp5C;\3̞"RWXb!}NBvjDkbP'zUqȚL]TS[nZF! ƵWBap{ 9j ['j%H>L5l-8#9Eb=Ԁ U70zY1[p/q? zDKy$)|M#OS; όnx=ԪɌPuraY%B/zoj$WW,FK:r&x-`;*%k<*VJ_v)^% N HQ?|8+~}9݀Yw ha9x=W7Śytg\SH?UaWm•ݪlJqȮ#Ti.RKa(Ys]U1A mhq TG =7^TW|@ؒh6=G; GaTu'Dz}7b56H}u3g 87:͎vp!8jO^|46S=MjjͣnKhuA@Ka}5o"EݱwH!7a> endobj 583 0 obj << /D [581 0 R /XYZ 91.8009 721.8656 null] >> endobj 580 0 obj << /Font << /F15 224 0 R /F38 287 0 R /F40 302 0 R /F14 294 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 586 0 obj << /Length 4983 /Filter /FlateDecode >> stream x]ߏq~b|! a6e#yXoQrXFw UVd&ܙ j"YH6Łal|>8 Xc__໿|'S$oZ &;N3nTf/o|4fw1ϤM~AJ& )ѫ+> Uj:챁?_l}<🯏7G#J72߼WN7ky^!:EAy?F,IdE*6A ׻;rrY'CWHW)#߅óo^|w :y(~ \))!׷n3vpQc̹YwIjddJx~F[e|0Sgy5Uɱڢ߾I xMpi,zp?T}^`?ǓjbR!(VX{sKzM4BXYP0V s*#F+mqdzTSA W9HWmiii{:}5'}I} 06Y{kRM^BNRm$䱑[洆&3` {%ĮV>sf8˿Mo{Myo7.$ VC><:G3SA8MgS(/p"(vN0// E y2BcJ"DeZ&>} G=."f1OS:m-)ϱ`xRrٻֵ 9S1a $ϩ5&FC.ʰKllܕ\ƬLg*C1]|HL<ϟq7Mla8[{qj A_~֡+$KmɊRؔh2N0aU諟|yCQ:ô.=zEFFYY \H7%*іP\^ΐ!e(ʧ&)m!Wy4Jj_! ?9vN F*ByFzr>hѩɰYB!Gy]Bǀ -*XQ_m)}Jr5'dH?hL R|ZJ EgpJ̬ .aE n 7o~뻷=3'4NJT-/-=%Kni88zB3v1XEt4,˘-ХV8 8y8XW.M6"`= DdLE ǻ{ݱ_CGCge*V!bD%͘b%>h #o-T5 酎=sMwun"jtH@lVb̙iWJ PAw2"vIu"m_ʝW]m_]T U=80 h zS-h.m+\8J˅x XQ||n1-XT Vkx;fZc-.z O2#'oi^Õs #(WRRRO:-G4VYllĕd^,ʕ 5UntrVݑl`QS)U2S$M|Ŧ3Z*sg*壑ٛ 3$GB$M#`Ŷq6^ȧ  w*jn QWeBB4vD+~<՛4$r#Q[eH73|QMYC(Wߺ?ΆiVWp#j!,N]"=OB@N@NgӜ, Q(_JkOWdCy[6;ŵȍ}zK!r5/ 秱Bg=~ף4 d82CܙdҀv;vf )Yʭj5 äj'Յ]Xp癵jT4׌:Jhi)H}wl8FU3N>Jb٤Tru`Cr O,mhb_O5c{hKQKO& Q~rkr2mWd0: \Ǎ{$Q<⫱"p(l_bEDv;TQ^K[uNOXXmӱonI5l pcS-Mޢa^_.<ڴÚc X1J`tR#aBVkyl#/$N)Den`)D`;!6Q}r۾0DqU! CT^KuY- Dݢg!Q9XŽ&܃H᤹ %*ALLp)k)Wʹ]Epeu{E5}XFCTܭZ>/DE #\ET lk>%P}Xk{[-ޤg+5ǻ:lh+Sv8:3`~Hۛp;UV|L 1 ҤU>mVm(2mAoIa_qr H\mi{Q¼-əQ"y B\eGv;\==%|yev[֕{º7>ևwFh-hzO@~뿾BM>p+AZv13+JYm*,X(iRE>르H!q1s|JGHQ,Gu-K5K'^;ӌ|z[\ڌ1,7zٻ&vP9AZJ{_=6K] %#\Z3P ig}xjauNGE@gಗ J¾VGfhRB3(G1Ç?WS-Gv@BbGK(V 3} fɩ3vr?(Gb%\ \hQ@ѐ҃`f+07^y9ދHh:n Nbټ%P5g}UD<ʣ0r5ȁW=ҟyGo2&[{9|p'}çru7Mb3&(;%sL[ | `A0@05S #SC :[C'`^`QۤpRth4UǬ"sdb&׺6OA [I tF*0T;-hk{zQ+CR#l&wy!o{f0 +,zO5} TQh[aM|cR[iZv=n ^v feeVu+ZY(H((D`wa;Jd%:**lDUv+[[럍XW ̻0Q*Y2PNP@*=g-&mlGas#nf{aeK}|CB&K>9ys؇7`{}'c6+mCޓ>Ҙ9!f֣s*$0Ӹ?샫,87Zi2 >ҘOleb[ex>b[4bVa. k34ט6bMX>Xsn/&8oEb X̡XNL39A wiM)oUm!йqCM 5 )l\CPRTqWAЙEo×5xAz}[|W p9].<5{9ҁxJonMX4讁x z,.q; +T*xA#Rt.wKrYf ytEKvs6%+".m֮(MBs릢D~/B$HXbWw=.y*`7[\䁃 7f*ǽ&9S{6U &Ftendstream endobj 585 0 obj << /Type /Page /Contents 586 0 R /Resources 584 0 R /MediaBox [0 0 612 792] /Parent 579 0 R >> endobj 587 0 obj << /D [585 0 R /XYZ 91.8009 721.8656 null] >> endobj 584 0 obj << /Font << /F41 314 0 R /F40 302 0 R /F15 224 0 R >> /ProcSet [ /PDF /Text ] >> endobj 590 0 obj << /Length 3063 /Filter /FlateDecode >> stream xڵ[K$ ﯨ O۲T" 3lAfPJT]5ow5DREr"?%V)5~p-3Uh@„U㗍_VKBO_n}KiܾDyi~i4VU|v+~)Ng֧R8$~su#}T??" 3t<}ie\Qf9kbڜiTε?qPe'@Wko_U_$@қFUh)I@ʪe1dBꡨǑ3N}嬔b'.h 2&-6I1*S9K -, eNb+,:~Z7ecGKC|cH(S-TB4:1h/sYw"$rL|թ<2e~1z|gR6h*IT~~} Ig&&YB{ERÁ՞X{bGߠ6ͳeM`Ku۲1w4V!eT{%ce^,:va|;]{rXI׳o6VHoՁM՞M&{bMFlM>MR<z0̶1l#Rr^QSO_V@%}FBNNG˺b*59ƋL`EX5H.`@`B?|xe|_u#W֨B|W%>[>DFݓF! =PUֻWnkAnIaa HX'?u~1qux4My\-$^臇I.{"IRPx[ #[V} ps9""YUߗs6c3f=Kt zy:X`'X!>Z:_pf *.uu$NG'yFh<ڽ3<5Ay,Eԯ?챌pr;dz>VXoc?_ Wltp7[3_p¬zTGFpreqC1+eSMtM+|` Rk#T]MD3\Fk!3YB)Upi*}Li&4F i&2(z& ZC$Mb99]J/uU9P) b3TfIiC`6{?yU8hKWYr:8IOAkONttn \zmY /GtmH~ʧ4nJ8TKP ?JP,"szڪx>'NG& jxmB̠+P;Q4w"7ճvg8f#դ^cYkW_}լ2wZk=̬/KG(0Sc̰(kϑҘHx_֊-j5%g)SS E(eQPbD%vo!׹2 *KwHh.J֏>lz6] iI]ۻu;mKyf!kNEj%[*IڷMHn:bW)άMڦb>YZUj\4yJK6sygbuX6B.zoz+jz֩Pϻ;j;[MsuzjҴl?KmGs7jf3V@%;lJmYjr-Uf6 f%7="Sۡ?EIWXK/.YLoMFgM";TfI5;jMK{dM7"RTyxhxH]A6β*X~Piy ϶ MPw`iȶ ENW}q8|,k~㹜iz3~nYoXѮK2_?Ļ C%1<hokړʶ$w{kur?ukYY~SNYO՞yKG_N|M3bм?-ݶUxiRńjKK܎&Z βK5|JNnm<.T;Ɨ_ (}BLQȷ)n֜mKF$Bm՗Uڊo(.WP|z$%[_[V0#!Wx/xR\^ ԖIPsfG4nen2W7X>8[mUvSqL3['o?x Bh%CS%Zdendstream endobj 589 0 obj << /Type /Page /Contents 590 0 R /Resources 588 0 R /MediaBox [0 0 612 792] /Parent 579 0 R >> endobj 591 0 obj << /D [589 0 R /XYZ 91.8009 721.8656 null] >> endobj 114 0 obj << /D [589 0 R /XYZ 91.8009 633.4744 null] >> endobj 118 0 obj << /D [589 0 R /XYZ 91.8009 239.6948 null] >> endobj 588 0 obj << /Font << /F15 224 0 R /F39 299 0 R /F14 294 0 R /F40 302 0 R /F34 215 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 594 0 obj << /Length 3528 /Filter /FlateDecode >> stream xڵ\I W?EA_$668 m{|Y~]E~EE(CsNk'_'"h ^oZ 7L'*"3Gɂ~fZiq1o3.}[J2'o 3+{I9.2'=ͫϟߊۗωm!glAa0&) JWHńn 㮹v]G UYZ_W5,]z@#HP`׃L{!X mm5 kHHQ|SRCίjlc[܇KJ޵<KV6^L*F6}1hek\-yE7a$9HH4$[&3 kA`k)D dU&oOXI.L$VL>kMK]ʤiI"B~cb0AY4*$ds#>͏ාx;Q7gpYN!Q7=8!:H C8 VdtU&ec41yDu&!s!k(hPPsF@L4[Ȗ =C6*@4dJ'L's^h'Yi;h(ÄT,:1ԉ\xigIZMciaJܻ`XAPd8C8RMqf' K.$k$c=፯o@̧ Nv0+)"(Ml.8quɫӖ>tY"* y n1~<]8XoF`n}XSOi8HnxͰ uh`ۣ>4ĶQ3t`m%e+5£A]bmhfV"$͸MZhka9ZǵGaVOextik]qq>fr]ۗ v~ɏXяr_7`b "~ E65v9cfV`h`O)!Bbҏjۣ14*?zO>\]s5L7K3J޷]ppp=\[}I¤]ۙ^W3ZpWfL$;=NlXwzNK5N/)5hg;R%ܻ=쎺y3t+OF*yrump'8, /1kILDV̭한_ 0ER,v',++} i;[ =1Y*UT'e*Ty՛/yʣNJd9vr r Xrىy ;!~vs;3;+$:ĆSvRvVp " ycN #f3tof4?|F {d0 "y{9* 0]5LލJ0D/e,em%vKu\2sh6Ԁ+AZ[-:Q{lKY6@ZY&s2K=)%3һ 8#/%0ǜqJCNC`[m& ];<WHgQ=J*2vń?Vs\[8[U`{9 #x_cVLk3&ѭ@W*AbexD5K>prvpAT2Nc~9ӬmƲ/)f0E gjK80][9FjJ0o®oO( n`܉qYt}(b~Z%3tr:eZaLeQDkyW>pOdF rvIF<4Z`haHd\\pdzP%zsb l[{bw/ցTJ}Ӭ=~wU԰p5t+oW%%j痫.ҭV*̿zxA*END/,: #`[-k ukBD{3(۫l\2f'Bܝoim+^qy.i=+sÕ}1gQTHZ/MTaLƷNN _G--,TX?aQ .% $6 9r/!`6";rsX`3nQTZp"BA4ΝZl7èN4J_]VRS"kagKr0#n^yRh7/w<)Լ3doq[vss9JxJx'WbON@*$5U4q9FUu9f7i⌷+祖$@FT-合{9 <-b:}u>zL OcGѳH[R+^ M]rAk.l an ca{WD zM ވݒNqڟY/>k%)z^M]a&7, "ojF@;Iƅ}R/_ۭMeȘY`a;\:tMm^O t(e/HzqľgyLT&mnP5YgAt3Z+kт1izw-QϩЩ ~s2fq\1OA+ BDcendstream endobj 593 0 obj << /Type /Page /Contents 594 0 R /Resources 592 0 R /MediaBox [0 0 612 792] /Parent 579 0 R >> endobj 595 0 obj << /D [593 0 R /XYZ 91.8009 721.8656 null] >> endobj 592 0 obj << /Font << /F40 302 0 R /F15 224 0 R >> /ProcSet [ /PDF /Text ] >> endobj 598 0 obj << /Length 3382 /Filter /FlateDecode >> stream x\KW |.a~K@nZUX V/{MltubU+{؁A+}x= E-rգhJI8/R|ƻȉ $(sP(.Ϥ&@zFU ;KãWT|lds_a/qPxwRIۗW߳W/o/:< #%XE8w,|P"&79V qR$WཀྵrAk=$52 $4^oqV7y5U< "BMsAxcB- lj5%17nr}͐㧄T \9|cM!ClJDp+(>*nB[UWTTIԠkUП䇥5զIz^YZ>dGۑKEl& 8e\BvPK5?(rJ-?0p5@C<&FJwl`B@5L1ï!DCpAO~+0x(\VBH#uf[F[:Lt)5 S|̊i%'"f2oVEa&E18\M1Z^ !aqsۿP9hkD!P^ "Xj(gdQSITOt7[PbԐ֊C*2$W4Z,`kFFF={|ʯ 㛼F*K+Z>L/1(K\T[#|ixze7y/[v nqXNG`QMWJ D[[(jxئ} jכ#/+xYjX/Ğn+Y> $Z;HЄz0!Ыe* r]͙HJĆAt"z M8hI#9[آO$#e̱`c"I)(TJ#J7h@i9Ez4 N2yȨ 7@uP\Z$z@;%><|l4\&}~l(Z8nEk9JY-X }{ߖ> .c!6&k$6nޕET-zԇ ˮ{4?+E/T>d"/>!:"|j,"?5Lj S[?S5 Xu3ujOkS/ qu9kn2pe ܿ .~pJ[5 Vb5){&amicq SFnKj41 C~Br 5T \r2giï:—J<sI* ZG,բt2r௫{O{^,`2.v.S}L`׽DX.6\Z֬\9K¶~`&4 BƊgaF'-|ߑOUGX@+˻R"Î9)8`FE_!{bO]%Rf,:g9jސL8KTj2ӈIN}H 76-D[zPuѢTf=Bk|vQF /wuLEvp tP]yG@Et\AAdb?gNʚ> HR I$i 7$`$4Ly`j_©QgY~$93J*#yn5x3m+Y,`[ǂ) 9ܛu.}&.=@֤-E(ֺ(#a{׹vhQQbzeKAbrU=#ܥ [Z\DIـv6/Ef9ܛundV2 ܩ!X+ 'Wx.'c}YOg>Dg{Cz{犡ԍvs}59pJn0L^&<gM\'1>=LL6n ?iYlZrJ9K,8zP&Mŵs9Qܚ4U=OftGe`F^qsA3Se`2]m5 q--6L6~A-z`!e&KATCo&tSђR]$5Y-(k5%Sѫ)9/oNϚ^ÌӴ?=v=?F^Zg`*&!Qbͨ0?|[La|4sN\Eg @~i8҉g6e |Ň B,1F]9C%ضN!$d Wwu4\k%F=FFKFܿvwF^-j:+cZX|{ڀuƭ>Vެ=*E#Ei`o$G_eo‚3laa]hjiYeX:m$>T4BD*A34K侑5IlDD"mȱ~[OzP}I{7~{(WǏwPד"1CFS&堛ݦbqKQ]X;bI\썥|+~^RQn@Xo*UYlܤPm۴<`liwn h'Vn0't7Q%!9\1Ig׺vܽc4޹᭥u`MӋrvμ^JR+GX4ry:1#bk9s"f  Һo9I|IUtBb8'ۿcխm”㩦e|Ǟȼ,'VE_;5Li5P-+~-#ji_SelNӦpr!ۋX)#]XUr#vbR4 w:.<2X! 7EoAQOb+;HrunXtG LAztʹK+v6hh_xGx[0+/v!?Ŀ| 6F62I\8endstream endobj 597 0 obj << /Type /Page /Contents 598 0 R /Resources 596 0 R /MediaBox [0 0 612 792] /Parent 579 0 R >> endobj 599 0 obj << /D [597 0 R /XYZ 91.8009 721.8656 null] >> endobj 596 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 602 0 obj << /Length 3638 /Filter /FlateDecode >> stream xڵ\K6W3@Mj_ Džo8q]?!ߢ*"%Z0f*U}8q'N`$|ƞ~k??FK%ѹ:i%v>M3'Yg&f}dOZiq'%;=ܟ^u]ɔ'1YY Uʟ&ϟOOJ{zDtDOnۗωqͩ(FW?F7=bX3eQ7>R#)@z o0 8fhl-/ҢJl:14ĵ4&$ )w0)g^-+ DWᝦHsBYB Bi?~8Z#XL+gvM Y!``1pcJ7JdD]F`{N%6GITLxP[9P SoŔ^5ԭf`vvR*\`5JW.oL4 f䑇U,)3"zco)ΆM4t"{JT:";- xˤutq 1h[{esEz! _r{$Hqz*ʕtpy*5`\]QbR p0*ᇴFI30$ؾB1U!Āi!vNeY>VbC B;~$hVByZ֚KnDcp|Y>8,&Xd0qIlR䯎ƌk!.7#qhU*?CJ6S3"~Uxj]69e9WQh*#abm"LNjP B!\YXh\֚ܒUQr ؛Tضûrdw^PdK>G,G<&Wxhsf@1ls@E"b09ѪZcYVN U1ԼQyސP< %qC7"5.E t;Jrȇ%3f峠6Pi*zZx9I+la60TѵΌ\Ū?Y)MWx+4 On42I{; 7v80-rx wQBkg0,zy­BJ&^>ȴZ`1 z _*ZHWZY;Nm Z^,TЛ-r*/޲ʐKNNVfJGB |rF$]-vՄH`Pu Ll ΜëHs$1`]6ER;QlWTj*杤OU٪Ky' 525&% "B):~!Qư$/kw$ Q'Q5>C/Lʱl:QDa%4ql$-zB&Lѝ( *#OӬSvB-C zYp %M]ld /Vh9a+J-Y]b0ש8[Ahr2dwUW4\YT%bgD@8غ"7]K*|1'VzT{9XC͒**1W:buZR3B3 ]:ClJ߼nR$.fR便vژNқUąܑ6}[$&ORmeM.u߲J\-HH,z27xvz'*!B(r)q$4Ӕ++f!K6= W厽KҔV)rk$plsEXg@h- W+cY+i+,io~W&FaI+qk$n,Ŋ=:H`,J#&Wۿ`ÇB7ØPYaƠ9333k*MBشv- ʵk*_4ܬAN^ŅDZa][wq+lQ] 0Xvഀ=ODW{\-NtD9&ƲT=e(A>W>YP-rߢ [(t?ܺ"^X+[K Z3饏~^jf@?,9>XYCv递irCM9HTqXe#JsEn'AJM!DGI0 (m Yx77óx.gE lf>؃P4H3 `G46g2gmcU}lS?o-Uh߿y\.u0HWgWdi/HR-ڜ '';k&nl-q+ir֏f]v^G`)JaOYbj/vL4Hܜ¦bmZ2_44HOGa'ȕn5UPx?}W#qTl6}W.#=JIvvDYhBzo)G\V*&JmM'b3WJJX(hBwÊv]44R W)a5r%yKay>q 6Rs sKȅXX0-BvaJ q5w!hyhcyTDWKvND5+!B]m/="DEo`-)嗸I:CGU܀-mp+'e/fb]Zh\?ab,HQ>y!G) ɖo?o}=2M1+J|w(YC(rksILMt3S4ڟ4<u>;Fy`nφ;*`k{ xR#Tر@C9bN豆[]I+ͣ{Z4La>/gF7D~ K~b₦\li%-/ڲ1#| ]&yUĒ`bYГ 9eDJ~fM r-,)/K* T^T=oi4zYRO筚,묗%p%_<!#8HrϜA%+8?iΤwXgB֒b.iL'EW_endstream endobj 601 0 obj << /Type /Page /Contents 602 0 R /Resources 600 0 R /MediaBox [0 0 612 792] /Parent 604 0 R >> endobj 603 0 obj << /D [601 0 R /XYZ 91.8009 721.8656 null] >> endobj 600 0 obj << /Font << /F40 302 0 R /F41 314 0 R /F15 224 0 R >> /ProcSet [ /PDF /Text ] >> endobj 607 0 obj << /Length 3976 /Filter /FlateDecode >> stream xڵ]o6~_oqI] !oMP]jv>o(r(RJF{;;q837Xv;XJǓB+}z+z> 2["Fʧ`$Vxdtr5~NFkWIORH"2'i}jOOx"]Q>r„5Lw?8=9E;NF69~k=_F2jOߟTz}kvuw^uTɘ!ꔪD`_(eآҢG `\fZ lzF mݯOuvM@ =d%[@Dv",ݖE 7~I ,o2.\G MVX'Sz ?laH2 uI_ȱJ rX .;٬ )WLȨ WA+C Ԍ-+$E)z(4ROIfM? ߛ?w$)2To>Δ82_ (R {Jt'S22}`VTuʬ,UM ;h[pћ0GIU)f3Fp~ms.zp.*#es<5y9LqJI 589\:AY .U8|)ҽ7QI':X4(Y\x_`u6` UxZG*!a)sysJ2$jZOQ9$5 ٤z\KxgM#P9 bmTfvO04(pQQ-lhP ~]\N!!\./`boc"ZbܐSbAz0M7 b'ma}Lĉ܂d%20TiP 18Cs(Opzɬ0 649~yCiaBK3(VŤ!>x"PV_%& ~uUa].漰ArTTĞE(\ݝ } EGTӢHW 9MDgsXhzt,BќBMR$OX/Ra@kU W#/E ,]_gu U.ׂ:0ZhXhCeGJͭ']8OID='] f"rV 㨂¸m\W)#-}-Ĭ: iF'껌hchE4k G6n(׳bmޖjzց72uՀ:hQ.{o뀍9mwPμ msml6oz o;74`RxmoK5y[ iok#[ M@7 ;!u؛: {uz`'hxH+e`Lvr&m|z-|*tzF mH#%Aݐ0ʋS5j+-4V|-4ŶX'h/z  j2r =Ixn$Yի3|c'QSZa=Sy fB {wE5uZo/CkC+,vZ؋04 3we-uZm/C[Zl3*Zt+Zؑ 62n 2w)سޠLZbif i3C[Z3F. H.a?^@>⎀[;Uzܹ}-!Du\u"ޝiVpY)࿔"_ƻxb,]Y{6b Kz.ũ~sMs2ɒ,lrUxT8x,)Į`Gx̪`(uv͇ ɵ{m=TErG5 Lp9e-Wٗ2TC C΄gY8-?GT8׎2ajGLAM""+v:,R۽`b]~+ ˙3Q Op{Rct#}ɌY߁TX5kxLhw->(\y5kiq%F> endobj 608 0 obj << /D [606 0 R /XYZ 91.8009 721.8656 null] >> endobj 605 0 obj << /Font << /F40 302 0 R /F41 314 0 R /F15 224 0 R >> /ProcSet [ /PDF /Text ] >> endobj 611 0 obj << /Length 3633 /Filter /FlateDecode >> stream xڵ͏ݶ+^sY/RhXڛԅ-6v.A%q4ȡEzf~o9.S^N4J^~~|&;aN/W(a:_8;bmrբn)/Xa #{:.Ϗ</^-"{;x=)=|q-Ow{ Q_߼߭_|P͇^ޠ:* U:u"Ha|/U z]+Xm `m; U0 ?^ ;Aط3ij!,Fķ5Pa}IS->~cX9{&E-3]bC` shts$bwVXj8bYX0{k"ёS94T d-T٩.(9~&_ʋD1pCX#[l5b]+oxש\N M"IDo /rr+ Oq!>NطR?Tkͬ7ջӎ@5-X crn.lk|ssEaGk8v4`E>ċ\BmkKNL41Pzb;E5/iHe+30[֋z֟R+#4u(ֈoh|7r||v7ku-J`g<-7Z4`1|r᱈9] Ήv-]]s7mZ/ѵq Rhk] A,F] ju-ZDgBv-F}_M IDnz&1 Pml&w :[dAe=Vnղ(jbfuv]m,f {xb ;N&nr>swZPmE(@⢞գȵ+y^Z8|RIP$85Z8SV#{gk%kDv4`E>\mN41D(tGvO:-P,4 ^hk|s}~:!nzCFmG[ȵ+y^IP;8i8LqvWٰ۔EL: >1 uzz,==S@8;"ڤJ|G?O|.A6=r :GTը{\uZK~UR6n }Q]9sN|TW욘4v MIfywCc>/Dwb4%~㼢Pà텁jMM;cvZ7\qXgyZN;4YFdz1 x7f!L™QYLRQ?w 4*;ᆋx/՚REv/zMgBÜ1 rJ2.T .1xh[`2:/&njPTp Uj|gNV&Oj歡U`zM`ǧ9L{C|ŒB`H n.M3d7.*1b"I*8Hq%UA_| ؃wBzս.t/rQ*=SGUP/pEpD K0K+fi&G$ -<6+JmOll?m$Mi#0ӏ> PTYf%W ݴݴ@#~κ^[npaCKn $0&^b8).3[:! Xj'd2:-mũA<܉b[T|9=x8OXvkj$ Ά8}HU0 \p1sΧL{1di"w%da3Vbd\ظ(OD¢D c+%ɠskI\aEbt(^DH>hRj?5M0" `i?ɰzg1nɟz]LgQypQ,ޢrcim+iG..ǐuv!m_O+Jʹ8v>MȐ{NMͤ@ɹNJ9*=:A&wR|h&nR*ܡ2^!Dij)ɼf!̍0qԜi%Sob[Syl +q6n͸Cij{<[! _ Rwxmb8ŽoK{̎\ju  *9uhG%$YY6 FHendstream endobj 610 0 obj << /Type /Page /Contents 611 0 R /Resources 609 0 R /MediaBox [0 0 612 792] /Parent 604 0 R >> endobj 612 0 obj << /D [610 0 R /XYZ 91.8009 721.8656 null] >> endobj 609 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 615 0 obj << /Length 3997 /Filter /FlateDecode >> stream xڵ\I\ W]^!CFr!2YJ!{X kyM/Cn>+>ZHv;XF6JpE+}x//X|#n|{Tf-V2/%Vs}x&FJ{Л&jyxg/3//7G|S V|g 7|s?u~Z3o-MhhLy_@(E`,%GJF.=;%&pO+0Fn?Er#p%3 AzhbAw&  n~xÑIbXx|G uQqIFGVjQoxQ@m RBiM r#?~ra؄wcp&^{zEfmp̿jVe$;:9U,kFteI}]p)YQQ?2:BuP{5;뎼h6`@W6P?U-]DL;Cq̲"M'9ۃ<2 e/9*o{1ny;V\)*Ơhr︨cp׀) FCLdphH*V> ޅq}8|EU2 !*ӷ~ev՘_44`X"h5 |Zb Whh18^N An# n JsHge0F*) %>#j@ˊJ!Xd9OҼ~t.[<,(4@dry_0³j`*O3sSߋTg.,D u*50+y!+¹eq8)q)pI A,)DWm N{v ,U`|*~Q>MiŦ>ĶݿySFՖ8-S2Yd3̐3с%X PvKV}= '}wজ%HV˟^>4ha\^Ai54LW&!Qb1y>=D|Ta%<!MR.1Pr^L׊P%`ڀ5 ݍ,"]v<< `S/{jm14hYw(GR񐧛Ynd"9.NkE̮n(ՖODoBo3(jy_EٷV8yAL*QՄ3&J$͐mUDe0TА/sT;yUbN)|vp]y(bBtJp qXhkh*q>|tzO b UG2lX<'ٕ |`5s{r9(L`NΙhST½L Y%ux[}2ș`S)~YmYݧ/˽FNSqKfTHpۥN8w.jk/oAv> nrx|4ؓr9ϕrsb={ԆXɫ83DoZ99o v=-KKgl *hr _fsɂK(7OhSrWnlO7M2 y2*>tw?8<SEb52*]a`5a%02^tg `{ dhW:I9-{;^< [֪%XB:HqWǟUﴱxX0~+SHM)&Zِ,~ۮ1I+`__xJ~-pňٸXTuaڻ@7Mzyv+"P:^C>Y3)Hݩ/Ωo 1bCLy#_9Q|3cbӕՕ)vgkxJ920DFIm!meH6X`Pl$~s^b7hZ??e:9~<~̥ R6]$ccZM26~$;9`1 )% o֧[F~aJVi22 ~]t4Ñ@Z#$ vOIfԔr$ ʿd+9DWa0\_=鹈ZE kgݤ~;= A,{@ _#?]u2G+{nNhn02ZI@+La /3wdDq-]t W#Ϻ }J;a DWOm.x_gn'm\ڲ2 \z :Tl`(=a)k Jx\Oܔ2J/c䘜d}뀓l]4ρ:E]hj/oWv-|Zʉ*鲰զC"YwC,/rMÂVx^bbT £&]k@y74Y[H[$ƨ. Iy}'a$LZ%Bde4 [$QGoUѕbOJG*X"JvMXFAWve=YXQM:&T;p~X4X_U웢xf0FLS챆P&]w؋qj=u[(댇,tNuNK w,Juk 6V(. -}QC Tz ĺl$AjͫJl:GXu}ﮟBNX? %~X]*UkسA 5!ůs0X,T Tle3aX =פ1+V70J` y24iA&EsTR); u@zl*ktIb[dO|f v'v<J``i՗ igwŀQ#3 uJQ{ET@"6}!k P}"aRaEl lOZl+tXU(T=ӡ%|#'lR[]0HB7QsRCžNGrwʴ}zmB6%69TF`l:N5_qq"JyH."nr1(v:Xwk}R*)2èӱ ,U`?V"މǷZ#5l2_o[=|~XTr6U̅p㫄]Jy7I{T\&ƙܛBR$ 91w7x6D{;u f6U{7<=7̱5?CD׼QKiƊd24ւSm2X > endobj 616 0 obj << /D [614 0 R /XYZ 91.8009 721.8656 null] >> endobj 613 0 obj << /Font << /F15 224 0 R /F40 302 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 619 0 obj << /Length 3859 /Filter /FlateDecode >> stream xڵ\KsWd|H*+9@T[]l%O@cK\=~8qO`$|ƞ^}Bd-7&gSl[$b>_5%~:KL jrƝf !'v18Dicҹ8?|ٗdbbs~ CU iOf|+eYI 4<j]? qTb xD  Rwg$4 <tR++&|"1I?SY&|·aEpSD'6T{.P$ w\z-J#!E)j| #~JX$*D਼0uQG&i/HEe:'(1 -0_jv9RE~TVÊ6 8Oߢ0q0 W {: 1k ɖoZ =Yi&mJ0uY?,H p:,ÄTSzg"I`l6#LTވl ̀mEMbڢ+uODE`yc UP=GN~xNṆjuFUٌQ$&"{\[Y"8R]v.{q)U*z4WP&&NU'S\lfyy:,'pu}:^?86$&=G "rX$O_S|!A) ǩ]|i$8ϕ I9*x/a@MW!BbˉaRu9k͸t b2j429VVIZ&G3y%>9F/*D39ZؐRnPQJq[􏭂iXZό.|wvߞEå3TTï~ }ARKeg m/ {O D+Ʒ-Dr(6eQ!uAc\!M1&2);1Eu)= >)SNL[rʀB\)7)~hczљNbJښ#sBZ `yDXςO*@f TaWrR6'44RlZ"1rI2 ,).!H%sі:>Dr9MKNJAYK\A*Wd3,I*brz=ot14L0`Jf{VELWHX$9MF_]6)5bMDh=rj b?S+T;+0I+T}ҪB*sg[\LΨtQwӭ>hb-Sk@rBUþba=Xw}Ooӯ'?vWjoK ?7 fŹ  Y@91Lb6slM"594ub}ttb 5xw>sklx uӸ v .d EYT`kzn]d68.t]2ιs Α,OM|&\js*SW+иFe&fbWm`>Άƻh;/BK->*wv!5eԄA"T^B+.H7HHe(ژP9nq"7A/j=h8^L҉ƙPT7dfm4VjAg=g!#ArRD]^6ThKMwԹhDVcK< &Z3a~GZTw&JڧH6T+}e |#䰂I: UqAIA.rZa$bh|>XwXϯO/>ZZ/qEh[E3"rZK<`ye&;d Y/cD޸p<.z#NRT28GuL VD!ad縉h)Ϗu`rRaU{ux:slr&<˧w a<"A0,J=ch'`l5օj]+/,ufzpW]EVX'q]OϮӶ0Uۢ(tB VJX-t A~Mz V^eq%%XkNvZJ0UĘI<ίsR9vQ4vm/17z+~8X5s=> endobj 620 0 obj << /D [618 0 R /XYZ 91.8009 721.8656 null] >> endobj 621 0 obj << /D [618 0 R /XYZ 91.8009 443.6296 null] >> endobj 622 0 obj << /D [618 0 R /XYZ 91.8009 430.1248 null] >> endobj 623 0 obj << /D [618 0 R /XYZ 91.8009 417.1734 null] >> endobj 617 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F38 287 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 626 0 obj << /Length 3527 /Filter /FlateDecode >> stream xڵ\KoW4, +.c[k`ɀ&,d7=ÐX,փ,8q'+ ~~y# Hǔw_t>=L9㧃R L| YM wE|LYm'-J8=Ty_ QH;3Iy 3?.p߫1J78 ,ͻȼfz0eL7AK}A Axe^%[kk3ZKCK (<b&2q{pjAJ5oLA Äv:) f#ER΃2A8>7 (IEZ6'anjťtw0o%Gt]ϴvpjZt$»[(- =I[+1`c-0` J˜7 R脽ΈZ#1@f DQ]pK`F}[~9 XJ'!X[iۃs4[<>Ak_|4eFc" mNrDY#o>1pZ_Aail-qh/hbfWPqk$&Sm%ʝ=aCUXQ|KTccX X릊 n(Y xllk`sX~t|n9HL( c;֥s[+q/ź+_#Llrsj%-U[(,\Agiיq̃^!S _^%}m ڝn5eh#sk%m>i7a^;w|dx \6T& ApX?w5%?s81 2Ib4J#oI$ZlA;A͙[#qVs 28\Agil-1{uX0aيslAek92["+v4^M5*%ށU%'L:; V[ևoN!fQ! @b+VLz5-ԀFy~[Yp#"2JVweQBl%m#G(J`\sk/!}y!3/ş 0Hwiǧ?OPc`k$nmlRʜZ];\i\z "寠34H=6P*ü'UZ{@ Hy3"zelJu@@7{ZlZ#iͺt7H8.EХ&T]Z 3=Sši'U G Ȇ w6XP9 ܇H/<05y q[KeI??n/=^1W9j0j2Y=_[3:?WC;vfz.5qk$vKn4ٌJu|yl[ 8EJ0h= QVN0i=QhFKseNC`k=d۳[ }yCha>T.Q\H4H+M<砾 lw/Y}lľ"s.,zl5؇ϯLƹ+3sk%n6zCWju@At_KK@K ;73Btyx,KCkǪ}8}"n 踿Оry\"N/\QaHR85jd+rҽ߮vHoksLRߕB'hVѶ15<tҍw2J|b6h{8zn,ykZ ULD˲jt(cy>.Fdm,[-Q/:jsL24)S.lƱ,`$ʝ&2džj] ҒYiNNd݋\Z4˙#8̾=?VixΪTy^LX_s ZXJSW]5&:#mGu2AA9&x*BuOw],\pNKt!l3d2sN3/O φg.[[.k5(5/l ux&Ay,5}D즮9 &n& T8Xm1xb0'ـڹp2TP ]Uy1W:9KA\ n.Ї#OiXsoFBr0l .' 2XEJKnLʈ' :UҚRLKPFDq32^=a+}ML \j%GdJKS 1CⴡQJD-ٛҾ 㓅Zݤ-4)ۻ1A$[kܘG)wAVW[d(՘\kUh8 F,lQ0;w@htNƭxwɤyҴc[=@pYҵu.vzl 5K4+qb!/ȖL'K&0B=x,LL5;Wmendstream endobj 625 0 obj << /Type /Page /Contents 626 0 R /Resources 624 0 R /MediaBox [0 0 612 792] /Parent 604 0 R >> endobj 627 0 obj << /D [625 0 R /XYZ 91.8009 721.8656 null] >> endobj 122 0 obj << /D [625 0 R /XYZ 91.8009 299.0975 null] >> endobj 126 0 obj << /D [625 0 R /XYZ 91.8009 270.4156 null] >> endobj 624 0 obj << /Font << /F41 314 0 R /F40 302 0 R /F15 224 0 R /F34 215 0 R /F39 299 0 R >> /ProcSet [ /PDF /Text ] >> endobj 630 0 obj << /Length 2853 /Filter /FlateDecode >> stream xZKoW4|< ߏ,rH"9f` ϧdnY.مVXE~U$D2MAÃw~pJNWXIQ+'k0ѧ餤ADBA>Ic,:d&0$f?O8^QW[WlsiY6шEzX9%ǩJ5||W?_5JؙvB`'3<]o8`3e {WėJx&~pCeI~/O>[|AI 3/aM믿~`އM'!~gstw0v,^i%!~?;:M[O -bF$\2|py)t)7n!{¿uZiX|mcĀ}VÛ*y xp16^myww~l ~!HEOK@Ig chV_#),˾-h FmpcQ^(n7C$E0(X a8}< I%ЦVo߫FmMPjy> ]-#Zu$ԷQ 'We|!ɜ_a[%-YT0h0NOlg%w%Ylk])gP#Ց}>kԕ iBF =1א1d*ݶ'A3dAyk0 [ PǪ.̔aV0Cj ,#9uڭ T@1 :K'qPLA5|_F[4p3ޫ>] (` y\Hkh^Sc[="iծv)-F+U[p+^\k7ZJòҖi(X2G h3% }}Mq[-+uJ*Ro~_5_ +%:ڱgd%g{hd 0XtVi&E+y5&uF丏~=2HEx JHPsV#$[!݄YegteOf66kf UྙF3qm 1-Lz3 !13m?07&7]憔Bne NC~Y+lF+5] Ұibz)=/*QOE dMimH )P+K^ EBՕ-2HԗӪ.PSJ + KTez^3d5RV3x ܌ƙϫVGgqr-$%M`endstream endobj 629 0 obj << /Type /Page /Contents 630 0 R /Resources 628 0 R /MediaBox [0 0 612 792] /Parent 632 0 R >> endobj 631 0 obj << /D [629 0 R /XYZ 91.8009 721.8656 null] >> endobj 130 0 obj << /D [629 0 R /XYZ 91.8009 263.1614 null] >> endobj 628 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F39 299 0 R >> /ProcSet [ /PDF /Text ] >> endobj 635 0 obj << /Length 3060 /Filter /FlateDecode >> stream xڵ[KoWL=ho6[ CC8XȚ-X(3wߧ(-]*W/V׈ 6p7N…5vs}o>_L$1tg$g{˟x歴7-sZ,.))ckµQ۝;?nwJIwo6nJ$ :x@.Ҝ) [\*{s3M'"1 +#;1Y\Yx ԆL$s0ugܙ N8ؾ23)V+Zeի G4ÆhY\R^5ZJkB5ǖzwAה5Xק9}{CQ^ۤ6RTYɌQE%)( 8 mʲSH0hS(Z59l3bgHn=>|}<nwS#ytIRzlEd`њPJȚ*{ 2ecFx=ad||Wǧ9 g*PG'Ҏ|SF]O$FD㉅&zlLY"E#֚X}29k}SRE*Qϐ2պux31]"x^et ^?.Xòj mGԴ_D f}PU$[ǖ2 pO_AC1}hă`~Qb'WYbRv^f)PAudzl 2c Po9KE4D=0QO^lˎꪄ"XiRu*d`uV&|j~z_=^״ N&HrL̠ JѢ^"Fɒrtnn9rA2g\P Gu{l c SO?Os }==MHZ]_Q8\/c=ډRAupzl 8c PS<ΫG0m8hZ4 1]v|X6Cd||@bɯF󈬽oW \pU$[ǖ3p|>/P8.p p2q>sϤkZDžԔ >׮<DԹAzEB˚G3CU|1o!Hgi~&ɺ-dӴ dTgެn(UTlT{l.*{4aH͡DЏ9kazZ/Ujʵsad|0|=i8 qep*[ b[;wk[! ,73d`||w9|I9`>s klOH8a4iݻۛCL UV겭@M}<~?<<API\$b,TM?7o'VX˿x V ޔ,)Cyv1#O̫TLi-tY b_ЍRaNVAN;67P,n|c s>XLAd'H 0M!'Û]>ɥ8mn?00aPrCO=f3sI ӆ()|#DDg YW_TY&";Te]bƻ'Arcɤ;nZ&I ǤoL  ! g0*54_e7LJ/]ƕ7RÚ̅ Ğ(\XH|0]w8X^o;5W]}/7];/sk~aks^wYǼH/r K/FL.c0*D2 ]佈U:D:+ABz76xw+;CH3GΕ5&4m 4G05^ uH ?>7!ƁP$h̅;h,UTH5Ք2]X,wdLuڹ/ aNQE AAahھEu18R-1If=lھEº6Sަ5d9p(XkrO܆A(,|+ym5ȼD-;Rud*:Vԙ*U,*DT@(Sh 9˶;8@CRU2A (Ot=@gLfr]%(KOy;^(8eDK>QFy= =,"IOqI jstkCia[P)bM^1B/~kV12||> endobj 637 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [90.8047 653.6221 319.1153 665.5749] /Subtype/Link/A<> >> endobj 638 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 .5 .5] /Rect [105.7486 238.2371 484.8717 250.1898] /Subtype/Link/A<> >> endobj 636 0 obj << /D [634 0 R /XYZ 91.8009 721.8656 null] >> endobj 134 0 obj << /D [634 0 R /XYZ 91.8009 201.4281 null] >> endobj 633 0 obj << /Font << /F15 224 0 R /F40 302 0 R /F14 294 0 R /F41 314 0 R /F42 641 0 R /F39 299 0 R >> /ProcSet [ /PDF /Text ] >> endobj 644 0 obj << /Length 3929 /Filter /FlateDecode >> stream x\KWMZ@Cn:$m$AVFJV =Gn63 Qwub=Ival|>8 ?7??ᇟODrbj$qh$gbW䷯|0Vëw$NͳՇWoG?*k6~Kǿ:jgW't* $8S%&I5D('iHlP*~P$zN«~󻫿LQ6#|պeSʫITF,WGTPDڂ+2?o(9Ę<:4PO: Єf0>&14>QZ gťWQ LW {4ka" ^ C"U60q3haN%s ŒBGL0xS AF.0;Y Hm\×axcJ'OԑfĦQ!f SjQi:A3'A8QF"U[ eP19 $!$9]АJc^U # %EPs^Tq0>oG TBΫ3ഭ5UdyYObCvEH*"1_sTȞK]yo#[2xBJNQ`,@YaIӓTz:Eid88 ;yaD6dheӜxMvCJ鉥珞Wx?I> CbqL!Û6TיCת4Vgi#mghuJ dp^yʻ_jKHń3P\B6LY0 LAPa %ڍ ] R*{$PbAϕP\ C䞤0´1gȁ@(FBdN8}02-&ry[Hx,ZsMa h"1vL[ Vg ``mHGd{zK f}*^$(d0f0Eiz%˺r3Ƶ+vyj%`~5-ΘƣEi1>sRH >[JMނMBft3 %5BRq7g9-K4d^{7woƂ:?(ur:gܰGG~z6}Z@n1=֌@%n:> k$J# ݗbHٖazvo_G+h+M]C@c&h3Qy?<}9F>V\􃑞i6f4Q8{m9i ħ ><M\{>voٺł<;Zf7KQ,Ĩ-'~[^r{|*my ζ|l%ߖjGmL1yv/v ۖ^-XQ[NdQpk4Kn^苛א?>Ç2Nqn- GT LB¶0Wd" 7[IpL:gNMb8iՁڏ'̓w`;ԗx7u_;JnSb}| }|ٮ*˻}`kBDaN'"$v3qfg3Jn;vsk)ձR\Go;:=>f0,13P&83Otػ'HuZ"]߃QlJAil%A{) &H3MD o[ ]X H{Į~?̬z[CCe{!hg:8J UgA\Df62dD~ SUB_v䞶]JRMΙrN+ТVKЅ-[lDž5R늓7^?fЖRP[ջ#%IFL舤u /5興l^/Vf  ՂM-3J yW6^BJno[Opﵽ oi~px>|4ұȕvXУ[ҳr7g=Z$ ' ~ٶڂcXm.Ym cjXjK`[3zvZٷ86b\wuP/NlV> endobj 645 0 obj << /D [643 0 R /XYZ 91.8009 721.8656 null] >> endobj 642 0 obj << /Font << /F15 224 0 R /F40 302 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 648 0 obj << /Length 3128 /Filter /FlateDecode >> stream xڵ[KW | ~!Al#9-a#AҮ!cA{Hv7wf43]]^,b?pg"h ^—V)onܱ mb5=wd{xV)gKƥr/ݻ^`."@* * 8F 旟 !N&,|4wBWnc?>ygBkƃL;H)/j ܛV*s |ph8 ukn8.gmj0)F> 0350iq`rGWoM#F~$>tm̩nT (GgeyDL%JP~wo;sB&z6z@}>,@>Oi_tɃƒlL=YH2H3HD]%_qD\*"V"d+PȪ`K q>+fRyP8YU✛[qs.ʪ8o9jSkt$h޷ =>zf3 HT,kD<&a4=H*Az2?HE8U$6xb!  uY(JH=Kibc P's [!jo/7AdƧDL͚E TUdMѠHi]-T<ȲhҳK%mXUe[<|_y"Xv2"l$7lKPeFTD=Cg7Kea7߲+D(¥ٰf**ES%&65ULr~v6b Ч .c;ꤕ#r-PgN]4&]U63-sŻ%D7Š*WHKnl1S!~t9/$ƪ"[u;DbgEdYiHaXΏѕk 0;KF3z3bEK1Ws mTSiɟ$7RAYV95ȏVŕF&JeP}nQtѐ"%?BgVۄ]A.- 9ԝ?U.Vr6ߚKy/S4<7GtqD<*]:;-8\;W<U/7*V]b,Ad'nB Z^olVW7+ֹT? uiuY^(fA㴞lu{UyC]\ BV Qbxx^?]6qXI!X*ZD{Q4BIDd߭lM5šq%U,v!S3҆2axYO oMcD׀]V:XB{9Y'q[rvS, 0bK=IQ4:E㪦Z d|/>P,!ޯq՝bLې ]꼵kj-NS'icV{biK_PKu7 r/n9obLˑy?ӝB #5‡'T`G99 yM5EKWΜpji92Ȩ>xq.)yHЋ9KÅt/qqzqͦR)Pb(d퇯'-ƻxaeR\`r:E>Gů,D6ܗC)ᘵbr3Zri*n?xPyU>2_:T8m2(G'h=j]ty$,H@QA2LTWJΊ~yp(.ϒwe:-МaQ>MDgTniV؟7 is?܋zN@_.#i]/ƥyCCƶe7i(J>|ڴc4īN&> ?; i#I%iORꚫv+TM-Y0\;i0P~# F։g^;<#KခsfȲCzMX^ZF[/-m^ZC#tFeHL헖6/:<*xVŷjgM)]:0]ZkоZN}<سXiŪ-%׶_ 6z*ov k_P +zX_<X2Fj3to0a2ko-c*(Y:5'P\6B2c2PHZN+endstream endobj 647 0 obj << /Type /Page /Contents 648 0 R /Resources 646 0 R /MediaBox [0 0 612 792] /Parent 632 0 R >> endobj 649 0 obj << /D [647 0 R /XYZ 91.8009 721.8656 null] >> endobj 138 0 obj << /D [647 0 R /XYZ 91.8009 568.3309 null] >> endobj 142 0 obj << /D [647 0 R /XYZ 91.8009 251.2975 null] >> endobj 646 0 obj << /Font << /F40 302 0 R /F41 314 0 R /F39 299 0 R /F15 224 0 R >> /ProcSet [ /PDF /Text ] >> endobj 652 0 obj << /Length 3235 /Filter /FlateDecode >> stream xڵ[[[~+;@&AoQlr-lFwx^)kw+93Ù\~c~1l^7?AQ1{%Igf2idBC㛽`9x v)a!o'ݩ &ǴM+d G͇f} %3R8ɸq*G+a6l ]!{~bݫgRlZ~K5“:3nwSW+5]egz,EYN*Kt ZtDRv_քZ͔1vc,0 \Rka߲u%M !aNaHw - )0PZ3X!1J@#:QoF+ʰ14,҄tLtBIS7fxJ$=+1cXSZM/^J/⻽jRRw~_,#9&R,,Fſ2 RLw9܃įo\07;~8 Ӈu.<Ʋs)O*/TkBP׷ׇAC X׋=kdk-^Do'>>] ^ QVx{BV%ηؽqEˣ:y*HvrYPAo@xe7`nvD^BupD" &Rkm 6hN5jYl Mo5b[D_JBLjƏXSR`7^3E"6_ZJ*?ubbe>Y6"cl߃n XHX45y|,YQ'܆+H>%D~8?CP HW@?:="vNmniهJD,+le8(~ˏk-!xVOj$ϔ:ef>%gT-wtBhm+thR8ZB\L-l5.Ǚ{D]rkqhBh %|MJ/xy3=@f$g_ j6=I hiO6Ti>IYdM9;ZtZkhQ-j]PQ +H~i Yc4.6)&"%G6{dZgR ''"C fWkѪ6ZJKX{$um6nE j"06:2E3:?ܺNt;kYpn͸T^{aˢ-]@bi~`/Nqp`oJnpR꿿|R;L9'+ٳqط,& )F6|,7Yi,7jMr8(s؊NQlfiUČqEI܆/ƩUQ5AGSugdpρ^LĮTE%eȽ?%xTr̖?M `,G1{{pZ(qU5W7ݪ[ ]7tiRY88Hi*-^a3pi-sҙUS;^)x5danS^1 `C+Pw臲Ta Y %93Bub&W1uf62 iwVKNY:c,'=ǡuZ8*!W%lu|Y;][2)!4-@}('RՀ:ujX'eu6,Pܻۏkh>BN rc4=a 1p%E6Km,*칇H-xb>=3]?Z~V8^XR񖧒E M@i"O͖pKwX+]~?y' z04ER3Yt6E4S% +֐4F#W䭫IU ĸp0f0QWKfI )X#NŬ=P_+؝t Uؖγh @A&dF(: y`c*=9wx7oC1=L64HIML?^#Ϸ7?S⏂PJd >-=\F)(qwLb y5YBiSW &S"^@'mA!l=@܌y\ͬxUB{_㡊`O;f%$׷gYD)˸n-I;|1$!d@]=W6J%z{ơ`z Ǩ LꦼGXB?z&0+VH(5l&QBC9@A;GFv;ڎYCu96JN5L)6,dJ:U3 !:J}?_EPL\Zf{+٣^9YW֏g<ZPjlb#4H(8o5m GBgֵ aI Q;}vjԙ6PM+9cf>||_ooCpKyl$iY8F)5)W<,qux (SH/:lv)[8 &eqt*ѫt'|83Zl)/z,&H>9JSt2kEAQH3Q_P골of6YX:3B^(X$Q*5Txk|}+N-?Zak·\ t㯚qhL7 DbM|F4}WYXf_z+K=A:t5Ba4M *p&S! 2O;X;YBﴋQ(&c@x׼iWC b"[1L̲u\y=5FA8m.:O kqptޙ/΅8|(ݮlEЫ=Rey^;8C:vl* 6v*vR |,ɥL`*endstream endobj 651 0 obj << /Type /Page /Contents 652 0 R /Resources 650 0 R /MediaBox [0 0 612 792] /Parent 632 0 R >> endobj 653 0 obj << /D [651 0 R /XYZ 91.8009 721.8656 null] >> endobj 146 0 obj << /D [651 0 R /XYZ 91.8009 570.6355 null] >> endobj 654 0 obj << /D [651 0 R /XYZ 91.8009 526.7456 null] >> endobj 655 0 obj << /D [651 0 R /XYZ 91.8009 513.2408 null] >> endobj 150 0 obj << /D [651 0 R /XYZ 91.8009 348.3417 null] >> endobj 650 0 obj << /Font << /F40 302 0 R /F39 299 0 R /F15 224 0 R /F41 314 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 658 0 obj << /Length 2709 /Filter /FlateDecode >> stream x[KW@y b!doQlvWkeH_Tuwl3S`XCU_׻8' pe. H >IW=xzy'.#n5h~[DZH2G+/;+:Q`m熶#U^,[9T4GcNY@Pr  |!2ie`9AֈƟlRxD7 n2Rr v,|ٟT!FuxQj#9$5CL{9#'#rq{mhxD%DyA'<4o:SiZ)0=4k-:ѹBjsciy!9; %cH6 JRm [VfV;1\wLgA#rZl#^10rv#,~2Ǹ5A+pұI%k\EwlbJ%[7nIhnCI4zK阼2/|y$l g<1ys*3Pѕ2!.*2TQ줔N5DMzJk͉T.B bAd \ i"n.e-O#B-Ů̪hwnGo) ã^}wS3/$N4dǚ5 Ki'4*M[f]CߐÁ*Ǧq!blQgdK3VΠЫ&f4Aie9lA0c!ow+bąXS OR^2c W؋@ -$!_$M=V&dN8l`z ~nsn1{ wk VӁJŚ:s'QR䱜6aA6./qüY }S'}Y~[mŇ[>|6ث|x+p ujԍ*7`8ʃ E ۱%_6lih "N;^JƁ AmuLHAr' ¾{ZWD]^[?wgk{ܽp!pVH)aK' pJ#|/'Bþeyjo:^n$8Xb^/rK.43 Z"BEO;p>:%-}Xb .4##þLiBj_v8]m|K^gmv'=rV껅sL+7G-dy?y\z\Hm.}`[H{c g+λ:( t'0W^wn9޻zm%/%n#`ksA$ѽq![~/{k%k/ɼ(7i2\q a*d5;+4eGBSܦxendstream endobj 657 0 obj << /Type /Page /Contents 658 0 R /Resources 656 0 R /MediaBox [0 0 612 792] /Parent 632 0 R >> endobj 659 0 obj << /D [657 0 R /XYZ 91.8009 721.8656 null] >> endobj 154 0 obj << /D [657 0 R /XYZ 91.8009 678.2397 null] >> endobj 158 0 obj << /D [657 0 R /XYZ 91.8009 466.914 null] >> endobj 162 0 obj << /D [657 0 R /XYZ 91.8009 385.5245 null] >> endobj 656 0 obj << /Font << /F39 299 0 R /F15 224 0 R /F40 302 0 R >> /ProcSet [ /PDF /Text ] >> endobj 662 0 obj << /Length 3068 /Filter /FlateDecode >> stream xڭ[K W4n-C.C2A>@PJTIU53LK"")#- < kϯJ5Zzݓ ͫ?pccee!X}ooǠ*ˏ۟9Q,h}8I͔5(nsǓsxpm(0 k^gN{qgxwZ;Ho'x$k-spLuDtF•ED|ش^N= NbBxZMhWZ 3k}Pcu9M}8uӒudU{Im8Պu3Lg1Lȃ&6+INXYT= O;&UBْ o4`ڀ!A{eC +U\Wd5M4Kq~eFQ$_0k%:q}Iܓe1ZAdd{"φ˜mw-* Y (107Z䧩ڵil4G`n=\Rm"LpB3n tUbF2'%.ާ}jIsd2K3jA"=[UI ܐC*y&E[ZX"NsD>8wdI m6P24uջ]ZF,OK"cx ӱ.'.9\ҜEeJפd1z;NJ7Z)]{Gӗțsr2Ox9Y;NLP+cAI7}oJS҈\Fy(z'HhI3&LWH-C7.sخOp^N|M\3/<J$ZB$f@,JV@qei{8>dD\;eW&oipwX|B%CI ,Sp^K{\lAa`Ql'3X(ŬR~s]ס!`?0vIMJGOE[` pEb)i7i{%wjKö*.DžψTˈVPj%rB^*dG+SѹJ ɸ ,2I'"h86ypFKScEzf,ٞ 7 T'ZWzCvz1b};?Dfrњ &7P\Rc$TVI2W0X ja $G N n]ka^0 VK+a@0x`|kYo]#9XD׫|>/uJ H$rf:ȄCEIWMS-6;GXʦ~Zì;Qa,Y4cgr[KmF‰ ?7#+j ebc ZLcǣsc: ws{@؇$(~#{"\b\DӔ.P6KOu#YHo1Q$Ѧ };OsIOȴr o_bKhVz  w%`/<:1S,aKG$gfqԘ{\zly-óJŶ}ř/p=`b41bs``6TW=981+8?/lXHoqu x?od:;qpL ;yIH900ԞY WӉvlS jz~g X]D(DEL V%b[jL3O!zևs%A4f<3L[;QZV)``|4QvmiԄqF;6&rb]d _WEIviՁQfS1 [z^M]!It;*u^m+?O_>=TD뽢$]L&bAl-^ڽPmvDęe՞AZ߉;ҙۘM; LmA_z|aŌ]lƈMp>b K솒 ט]f]]˔WbWP{:OF B?L_ʷ۫,Ri_zX/ 949'YsxsvE{%Қr:8C2獲`Ly^pe>\_eN]JqQ>CP^TJ!uU,JkJ'FՕ꽎`4EL[%ᛆ:6/"xH&,Tc); :yME:VY.ثfJu \_3M8oۆ8j\Yv,%a4K#|]`K@){XB$V*‬Sx$ηYD$NM;i xjiдlqzRoxmԸ>e38t/_ŅLjcj.[m뺦ʦv #lja7\4/3O/:1> endobj 663 0 obj << /D [661 0 R /XYZ 91.8009 721.8656 null] >> endobj 166 0 obj << /D [661 0 R /XYZ 91.8009 678.2397 null] >> endobj 660 0 obj << /Font << /F39 299 0 R /F15 224 0 R /F40 302 0 R /F14 294 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 667 0 obj << /Length 3313 /Filter /FlateDecode >> stream xڵ\KoW 5, F70ȫXl426"=G&`H鮮X,f+ 22PjW]}{?bQF;pҸ1hXI0x!bi 'vU IQfWM!^H7Żm|WsC1=GIWXfń Z2Aίߟ~yy~8O +G%> B(wGW~.% RESeazsav{fSM&"#@,qtĘ4u0*`jj]ep 1bxg ǭC+ѕ`0PP!a咘Cr]u6ҬJ}G4Ufm+zXIga./tfmSЊpnY1t& '#=$HI=QB0s!4J_!/qL\P ~d`tgmSk!R>^@\?ˁPNĬG}r|!7//y wџ (O_Ɗ^B}BP*wiE>|Za5$!ՊEM=ȕŶSF4| YLʔ{~01U 酑Ү$tP YPzn 8*e"z#$,U(L!)Q">QROZ!7&^Xu {-oQFy $,+& Lzp?'iWtDS3MAK==Rq"KSlБ^H*/:M@tAKN2C&B`2#2&HR\_ ~V `>x{ ZFÔkg0#eRyxxx̃#8l:% x-146y##5Hs āmKQŌM7~QW5h5%])B(T92KkyGËqds.K/8^FK`7Ig4rG6w L V5U?*@<қe`荘yL.u^S *㐛M:qX=ڼ؁mr#_ XPSԢa]}~]mhKf!{о 3|3k5^p )(pfc+%)dzկ.ko4qŨئ+Ox0.O@,0/J/?mw7"gHp  R#wON^ )LIpP[;>U@UQ0!? i&WÐ$;+@ׁr#sFPLº>KSw G& 5NKn`©Q84TۛQ{%ڃyn%wX+ʍ|rn{Rň@} Ut\ҹbԢö=W|6eISXm1fĢn\٘#J!Q?gV^Q.97Pw%Rx=O(vBIS\eV\?u.ET\E CM=`Et$\+-Oj,b>zy%޼$Q f`eǏnk+?I*>qpTiqb)-.9e+1QEZ6؞8 PSXew =R~ 8Ɉ)LlJuJurgEUw/aԽ\'x*&'/NBoќbד[@feo3)={#-`.DU;pL%1vjT{QR[}S* R&֔T6$~jؔ*Z=84+tԹk*owPAvA'XY i.0BBK B 3CVqԮrejV J\(r1Y>=:[ND\*MtbZ\{To2r1%kB,JO`T*AUE`,lR4Ql"@D9,%}*Vf%iwY ұE i#QPu.]. nUp{XƓEDH`7X{-^|4DĦ*O UACP_@; ՚*͍K}t =.ޔfS\%O-_QXa H`5.]}1(^1Ytرp$fVˌ~^*$syʺUrB~M &a(2~h~ ;NI"$VB~x{gk r}`dʐDӟvyP RB4l=tt`r#w1qbe7ʍp?t eIn찼iF`F[NzHv%[;[oUsMyadY`T6f4endstream endobj 666 0 obj << /Type /Page /Contents 667 0 R /Resources 665 0 R /MediaBox [0 0 612 792] /Parent 664 0 R >> endobj 668 0 obj << /D [666 0 R /XYZ 91.8009 721.8656 null] >> endobj 170 0 obj << /D [666 0 R /XYZ 91.8009 501.9683 null] >> endobj 665 0 obj << /Font << /F40 302 0 R /F15 224 0 R /F39 299 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 671 0 obj << /Length 4213 /Filter /FlateDecode >> stream xڵoW[Hn߻l>hK$0Tl@AΒ1Gt77y8tyλ5p+~eLu^wZ 7-Xcp:A+͔3}FO|"^7[D\2q7|Z(QǠiʿ[^{շk~Xg=yЛw?J}맛OW?W5 1\RKpäxQ Z3egt̹NSQn~Z8 {RQV΍>?Y+inuFN#JY Q|u'dNK(YF(o>g}5\)`r˼O`rfG RP,߽vD[>.a3ͧimƷE~li#ܐ l&1L)R/iݲ(\\\]Ryr;h8S>{Ӓ1k/%aהmdr3X!PeBBAh r3܇t̶!;B*pREs}^ɤm6R0y9Y2mU=G ^n鵲RLBЙ>-s^Je"O (7OOYځoGu wɏPQAvE@xzүIU9Z3|[젟*:Ձg-:)2,їtYE!sZ#=Iz<y%Fјb_JgY )M֩fMay}Ҁ=NYLP2C0)>BC!}GBι2>㤹 X}6SZ5qآU J vn:fE>c9uչ4IqKti b)i6c?Qjeb8N9bIbwlǦ ?X1* h{m)ncJk:LBEL0u?k7x> ӧSupY'D׮c^qCt(,;lS_B`'pQn{]=t>bf`QFL1&%,XFLJ5`KhLL0-h8v@LFכǕQ(Μt"#u;jK%.UWpX]ڿRMrjdĞ]{T}coTn\#2<oj)Z~h(}t1|nM7(7kuye`q}`~^vnDCq--5$*M,XY= w{lqS8'"7w/ cMHa1..| 'L۝v|Ӧ"q*[R,kҵ1\٦Z+pHWZګ9s orz]]s#1E&C9 #q"pQu~R}U:,dnqz~ 1<BU-lӅ12SmWe؟߾}Uݚ(Q[]cHmMY,0Ee>9,X.`ƍ} ka?Hqm0vBa-,.v״\,,.W< H--V>b@깿YsdrSp=Z1IA5XKD~Sc ䷨B,x_%|(b9|ǼCM$b9 pd=(b%iah-H̸Pm(7:? +Tگ]1N(7-yW8qTDa-#G8 ]4lˏ٠Y㆛xkOܾ.0T߶DeXWry`5>ҀeX\2wquH57CW umOy 퇛V D۶ƏqW`ikTz˨ZWKI`U`ۿ^ڼ(^W&ݴ&E4܄Z/܄UÍ!9<` { (t'TK{OS#C'-<80an4b\]O5 p_WhIM}=.(w[&Fc磮z#XQn+Z0&.B,Q'ǨNtOOwTɕ[Jov>+eu&Jf1:7 ű ᦍ/Bԃ1p"j-'ͺ gv}iYjݧ:I-@;[%-N݇RX?9+`tYRWKN-6Yº I- * ٫ײ}kq .=3fBTMe_CQ/ַ i3.y\舄:L ۟Oʩ״) x 4\ 3r Tڣ,^V_8 PAEMX>`9ޕA^^IjLZի7WG'"EF@3h!8ȡ*+7QUD?J> ѹm}%f-xC&rs$Sf|lgPsNo>5 :%|7.!I+HxTpC h؎@ >4)4ެ xP ۉO?5d*'q55I͎!4Gi i5.^^f  FrHHt0]Sl!?j 47˅˭ꌥ܌߂M Xm͌i kfv{E"e߰[څaaCypk*5EfOq5u>"XGq7~T26%3oj ``HЖu\Ӊbm=}/m)n#φmVbX ;ւW_X/T ÇJ#> endobj 672 0 obj << /D [670 0 R /XYZ 91.8009 721.8656 null] >> endobj 174 0 obj << /D [670 0 R /XYZ 91.8009 237.6297 null] >> endobj 669 0 obj << /Font << /F40 302 0 R /F39 299 0 R /F15 224 0 R >> /ProcSet [ /PDF /Text ] >> endobj 675 0 obj << /Length 2870 /Filter /FlateDecode >> stream xڭ[K WͳUo!.C7I%m#yҮ"$@vjу>Elj7(vA'r~*4VGa̯k0^5D&$ןF6;h12O \)+U^>wo|_5C6N V1PX^}D~+lޘ;hd'hn~wftLv}l?pJZ~SNh=F E wteY4pn/X7 VXMg+# )Kt#Ϟ=7>7_sipE>7H'"/6 ]IgN %₾9#i̪ |\EA:ǕA RF/؁ a{sa78`%[xnwrkhz} +AC xi,N!lѨd8mBJDlpJx*cNzEiE5'<# "]_AfW.nmf a߽Y k&;e n?|Sd#?Ɋ`['֎ZCʊN%(d-_ߊ=mՂ\PNT4\5 }'phY`$-ka:+g-lٜ4 l*=]~fpl-"9"=~<1氁Ԇ}m ú>jK8.ZMdٰ׉+wNNR?.[Н>`U+3[!@g<6ʡZ&cNQ֑M׆6=*\#%q*i:<*_ lAqj wlÁF>UqڊSא&i$[O e*MbCٺL@5/'(b<ZO, ZYTzWaM&0/'9tb̎S#L}rJan2먌!:+s Tr㠞wa\'q1\qw̛ZҎ6rPytnb1:sX V`%ٹ22*_U /Qz#a $V`eן(bK(.`A9IХ*9'x6Î8*RBr3l/a͌Gې8ۃ~%31/LeY): uE$Q9#B%&$kLH^C 5L1]q]x;| "m<ŃUެ-;YY-k0W Emj&b *8 ި|Ti sDPӓu y2Y&~I:cHi?noMW vELggcB_OY)F8N,}x=u(nrRhNvIxE\GVdZcX5^.T5~c՛c⪮6eSU3ƣC5h#W2Js{9q^b3վ  8&[ѰG(]A'rA-Ҳk`hdm! Q \2|y!^0s{_{ԿU=DZf99 2vx ΗV餦, g;7yk+Zw;o.8M$MET;|**{^{!5Իszs?qב 5jTxIVy qڀKD|xC@f]vOطiq:4ZF l$z-[ pDbWy5/:dz D7eɟXYKD`/fK4id^Omk;f٦|\I/zPФw9o.\EStK*äZ% =v/AKRŴii?Wfg MjB5(/QU٪4U~_8nCjϖ#E[ZgaI4SfExL`\sZ/%IT| #Q7l5T|YV *s'_&AI3Rruu;7(u^L h_SR󽠤.0ڹv8ۏ7C3I3Di ݄"X40_4Nx槞)A/`0toYҽ&=hm^NA;6|+=H 2_{/72㕼|F;Mv!u4KZ&q=+SYq#tPgj> endobj 676 0 obj << /D [674 0 R /XYZ 91.8009 721.8656 null] >> endobj 178 0 obj << /D [674 0 R /XYZ 91.8009 509.9384 null] >> endobj 182 0 obj << /D [674 0 R /XYZ 91.8009 418.1689 null] >> endobj 186 0 obj << /D [674 0 R /XYZ 91.8009 235.2441 null] >> endobj 673 0 obj << /Font << /F40 302 0 R /F41 314 0 R /F39 299 0 R /F15 224 0 R >> /ProcSet [ /PDF /Text ] >> endobj 679 0 obj << /Length 3213 /Filter /FlateDecode >> stream xڭ[ݏ _owd}k/},f^M|NQK}PF!@7!HJ"Eq8xIa=|~w?F˅)Hch$g{EͫR ÛOE],Ûo))o4)oxf-o 4h9*g[ O F">w26𯕄y?$3o ȅf^QjU M{#h\@<Ĉ燛<24Q#* ci.(1QJN"d-/OTaeԪE]_Le*NjpRp.%*JN_F> `(WLqMRGz8<hu/ȰEMFМXV``8>hP F ]p]oKO AxڐIM\mZ 7oddO\'"ay/0ͩM-Bʃ- q|n~7y/˒6y9`+avwӐL/V̨C`<'tǽt|T؄1LU¤}p ֕v*aRzs^! v}$kwXYIV)fUH׀}݁_^,heXj͸aj>RrCI`r`j@< [uo{KaWW@Cc:џ@zʆ pϘig<8X5;VYilo`Z><ԇɜpRmHY i%QLe siZFh8vj$nP~pE0[Tji Ξn,30EcŎ"Uܞ2֡VE(>#S|#HϷmHxWD`;IVA1u6qZ48'y?Bz|Gui<9YsZ8 zf}LnSv]R# KyI1;ΘNÚP{fmM<ֈI}MȡA'-Si&^diVlwm D-6WgHKZ^:"gv`4qHjp#.fIE-?.T*;oOj&Q?ha$orK8o9\kϧ_B~ܪ@t.PY_uӑuj|H+LJoB{0 YZGB:endstream endobj 678 0 obj << /Type /Page /Contents 679 0 R /Resources 677 0 R /MediaBox [0 0 612 792] /Parent 664 0 R >> endobj 680 0 obj << /D [678 0 R /XYZ 91.8009 721.8656 null] >> endobj 190 0 obj << /D [678 0 R /XYZ 91.8009 678.2397 null] >> endobj 194 0 obj << /D [678 0 R /XYZ 91.8009 231.6262 null] >> endobj 677 0 obj << /Font << /F39 299 0 R /F15 224 0 R /F40 302 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 683 0 obj << /Length 2996 /Filter /FlateDecode >> stream xZ[o\~طj/Kim>~TX#Ceגբ]srh3lT:"ïoLq _OeSȇSsrJe0}UpSJ>8딍>lP& ;A.7ص_7Zd}]l,H''+^Gbwow$@8;4Nǫ_=o3T4$;( 2+rMO\;lj-XT#39]l# vpx^⦔L@6ҤU>]&6yg5lgTJ&G<%"wIx[QvﭏmOo]?#bTӀQ*O+ Jb\:RDǀх :K(ŅgCuPё3YR(t.sڒK 3$~¾ĺ k#D *êʲ!vN$\XҌF,ެsV9Yb1^Z%_IiLe2"Vp27 "Y$$7p*x0ô糢\hڏ&gftA~$et[3vzqĝLJa?8U@ɍq{.(݀Hۧ/ǵ1$Js_MB66)0Ȉ<ؙ%,c_y5 jYC_1хM9=:zYty;IqqO-yyXT䱷ܙ:՞\žK[MYK%*|8Axg .ZSSXd6C~CbFCStoiA@CKn==[3ڷ@ØWk)hCd|FҪ!/q'1sޙԿ=M\5YaI S [&q(<aۑ>$goһ"C)%TImEUgbvM1PeF4O;ӝL[6C AӸO?*eMþW}>Fy6ULdh,jإ2b qwzdۦgTO9 K0'o:K1m?>YQB!DCW&BP2 3j8O{z_bI#^l0.~廛!:@eq2~;x^RGm_/ۨMmIFO#M5"rUKr] Ʊ%"M{NvKq(TVTfh(Z=U}|L@ir'98qX `Q( za0h!짶 CPWBm!R'|BCZ8P׌4Fcvϰ~ߝxn"d P8{B@Ͳ# pᶖZQfj ``:] hdE@-79Y؋X;6 }F}ӺeI2- 7mk yE/CުXj2pm)FeQ/@(*6QtK0+hoА2S #(N'H[Q[+ةu{]24O3|Aj eauͶW]8Ezm8z@hfaT76YWW3N,\(('c {RMHt-p<]/{j=xoD 75/4/س6u kNXSsqHgq{;jQz 7l\ ,<7;-{ْABm/B/^C|2!E wܸ6*9C#1RӠCv8< B_] ,u& 4[[ F EP\^%\V Cq9v$ f||ӄ뫍Q*hDQENQF&Rw:Wfyh6 T2^ jÓEflL9%kK m!G1u^F;N}D;^d}e9OlӴdZ{HEyscyM1gxÐ#+{1q0#ӜY_sM:~AЛGd EIui>|!ݏv}-mw^L>DƑ>9 XwP r ^t!RmNDs ӣ՝~*~/Ŝ.qw{mwÿ5vy$T'``tC8fҪ.>Fu^_֠R5n708:xѨc쭂hؼ/?vy{endstream endobj 682 0 obj << /Type /Page /Contents 683 0 R /Resources 681 0 R /MediaBox [0 0 612 792] /Parent 664 0 R >> endobj 684 0 obj << /D [682 0 R /XYZ 91.8009 721.8656 null] >> endobj 198 0 obj << /D [682 0 R /XYZ 91.8009 368.4511 null] >> endobj 681 0 obj << /Font << /F40 302 0 R /F41 314 0 R /F15 224 0 R /F35 220 0 R /F34 215 0 R /F38 287 0 R >> /ProcSet [ /PDF /Text ] >> endobj 687 0 obj << /Length 3737 /Filter /FlateDecode >> stream x\o#B@*'/},- ,;d+Mcr/p|vg9̏ڈ ,qn>=;wh'tLMvdU)K6OӔtxmeIy:ln 9 wI_#gg\l@ՕEOkgf^nln>ni>|v7lPF?NOg-3<ݏ/ n )31;se6D#* 43a,\0d[洞7VybPܥ%imn֓L+0҂'RxJ?ƫVx*u#:QXZ銁E?nC'.Lσćg?Im-&#eA±YI< k)KӼ!RVe\󇧻V/8jpp:}$L gMB۩< (rKr:AI$(qnWffYx$,TTZy fc$hHP idU _M%5BQQqCSSD $筚 ` hA@˩]+Bc^"-.߀$WNB 헝p<>=,ac?0H휴^%2nCT;Vbj`- 8,DF}Z k8_ٞ8JLL%ƅ[Y^'NZ5暩|5|݊'9n(H':#2Z898ف԰'P5U9;l;5Ѳ'Eo@9etɳtfgh$ W (_ϯUt"@jw5k =8K(ǹWB<|\j7!A.Caĕ@tdw<ìCсlOX$׌;ƒ$D#I"eII|W$I$n_pt^]NIa]4v翉LRy+KWt9|Ŏ BrtT'GnnzW:Tސ1- Y <蓏O^(Brjc̄cc@d!7(<weFj5ycZZG\Z[+j|jZ~QL j%D#"e|WJvxzz GB(&_چb S`,g꿆Pi=: KҞU):%8zǏ tt2tF\ tZ+С| t~y=t4'gSM|^I!03 )QO=!L2Pe87:trL;)"%~! D d@r-@XKcb >TP<vG}y>`D"nI)RB7{e ?,)ҙRu `o)(1+"|b:҉m]ۀV"kMr皘0}+:йEW"\]RW "^q)M'3H.rZ6A JbV-$֓\QY i+0hEEKSi M%!J$l*G\lJ#ʮ $}ub-=1aD ׫&\5t\Ga[h[~cM6!i.k{ĕh廢mʗt'ƹScM3ͥ3k0iIqf(:ynseB!;?`s.bщ;t9x i4M"pKB6;*d?x[;WXO<4MRF /M8=0'.5hNYhWqB4.ij^JV?=}>%+#%͢B;aGLpDD f4XZ5gF^`=o T0(A%dgyU>PYEq'q#/{w`bq۶+kw8T' э34TL0!6#G>+OŃzګ:<Z"vmQr ri[gHYF^Y O8WhਜRs]9\4PU U[2 .~MGLsm-D4˫{B0iZ{J;v&c~Hr)1Cz?MjEg !7gJ_Gx]f]%x8&2Y7tӠ|!ZObW]ʎQf9M1FR O+6Ost(x0zĈ:QKhx\9 j#,m_Z_~Jqs8k)7ޞ?Ks!qE?߇p}D!m|7K]stT-%߱Z2׶=&Q`Kl $D[xg{hk%SY(gVat:pD __}[ؾMsNPvIT?n߮RϔhdgAk |AvR*>!HjOI{M.V$^S2@? EpTD;-O؇l2=165W m-"k-k{W^scZKqJ]_1B2.o){`\s+h~^{#}7}(߽endstream endobj 686 0 obj << /Type /Page /Contents 687 0 R /Resources 685 0 R /MediaBox [0 0 612 792] /Parent 689 0 R >> endobj 688 0 obj << /D [686 0 R /XYZ 91.8009 721.8656 null] >> endobj 685 0 obj << /Font << /F41 314 0 R /F15 224 0 R /F14 294 0 R /F40 302 0 R >> /ProcSet [ /PDF /Text ] >> endobj 692 0 obj << /Length 3073 /Filter /FlateDecode >> stream x\MoW(+NK$@ξ9HDhv~YddaX,Rbgcg3#B+}v=6OD^*N g{wWfl&cj4g-샐PR߹dߨ^ku.ZQRtG9$IQIlh}ƲFvEh}~&и Xێ؂iOq?MJB3Ɯ}yms/QگM3ꚑ&4/% @qD^2Ff8;*>ly|_!Ο-5qx8Blo,8CxI199<5UF*JbQQ+*)Qc4\>lZJ3׏ï<@Q"9?soa\Wώ7+{wsw{箾fA<5jȓTNց{^ R!^ypMzZmW%r&LLbdS U҃E*qWTqJv{iEkB,Kx'3ZEGdJDGF@٫H~*5C$TJЄMzЊz٘,]"Z6{{opk f:enG9xRX ӛ\LNrގm/iN OLjfPz3 m!3 CqiThsMe|gu YO`")ciVN3pcӪmOtUO`6ji]*ƍZ~nT(ҟEѮ&' PsO_v,#RHǔgf:pW8Z$2#PR!؅$13N|n&bq r|U{5nνᅌ bf\Y ^Q;Omr"AMm1}oVoHfCofoXල}L~iHWW|"6/>7fJrNOWkNIKgk  t":Ee>o-/{qsf?Z =`!|Ʃ!κKUfDjGV=X=XwE7 ݷ7"(W 'j:z%RN-(!`6&qWĸoXSd)E1C]U!oOذ%z٘,]"-š)<8bQP1_I >5[>{];6A[x1=X{;~vvnזR>s9kj3-}9MZ̄ /_L8pSfSr*JLzIZS&exnHAP_x/ !vQ+ LcoJȞ[ЙhmUw ds 0EE7m<&T4 ˢF3&-h2%&:DX OҐ[/())xUoO;W"o$\VEyN?of)ʊ0^?$^e)֭aH;qlAmhآ.C"WKG:p%TkB%%KG1EDrH'UU~zxR*W$w7xfWopl%sK0"ʱ=6n<Ǣ}u5O^šj菮{De] m 7tEMm|ܤP]x<4Ie"=T0e<4b._RuKyf[s)7z;r.9%fPԠzD1%LHB|\?f hxz½>Õ!j=`Yh1=XDd$-ׇSYΞ}_VoCKQBͅn/)v}U/0ՃE|ո+|a"?xr[aQ{,%83Sä`.lg\=fczw% ,}l&iA S8%E'tưUGF6fczw$ $j߾?8{B]d`5 s6OR_iYj5ՁC~W.l,G׽/.8EtC' ߲ѯoH@E !,ݣNhzq_mFe3j kyZﭞendstream endobj 691 0 obj << /Type /Page /Contents 692 0 R /Resources 690 0 R /MediaBox [0 0 612 792] /Parent 689 0 R >> endobj 693 0 obj << /D [691 0 R /XYZ 91.8009 721.8656 null] >> endobj 690 0 obj << /Font << /F15 224 0 R /F14 294 0 R /F40 302 0 R >> /ProcSet [ /PDF /Text ] >> endobj 696 0 obj << /Length 1580 /Filter /FlateDecode >> stream xڥX[o[7 ~ϯ8j%6 C{X:nk4u>Rt$$VD'AQ4 x&w {~X(LX #cFҳZy#ыE.ϔH^4TR=R"hodת5v_}oWbκf䨠/˕1fqi\44Y# # rQLgi?"ނP@i%A-WkJhhJ֔{E~yU- ܉+(Z-j{߶ lj`M1B%ΨHC rO e4AhUfG`wlM1eQ7ye8M)%Yr<mqA[H"BGV:WQm@h]a?ԸR9EܜF;nA9> s4=;\>9 걠QYMah}SVULU/'o*T?_W5I^p;ڨ49Lμ "Y&sQ)rJ藎 6#*,Ci*ʰx|ܡ9 !˩(5z+Κ嚩dN!3+$|VjÁw-\aݮgJIHc A-nY2SMNHsH$)-of6;o *!K`pE x¢WO_o6ZP O`xn-9nsѸ&H|3Vk/ RkcxdNtWJjvcendstream endobj 695 0 obj << /Type /Page /Contents 696 0 R /Resources 694 0 R /MediaBox [0 0 612 792] /Parent 689 0 R >> endobj 697 0 obj << /D [695 0 R /XYZ 91.8009 721.8656 null] >> endobj 694 0 obj << /Font << /F14 294 0 R /F40 302 0 R /F15 224 0 R /F41 314 0 R >> /ProcSet [ /PDF /Text ] >> endobj 698 0 obj << /Type /Encoding /Differences [ 0 /grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron/dotaccent/cedilla/ogonek/uni04C0/angleleft/angleright/quotedblleft/quotedblright/cyrflex/dblgrave/cyrbreve/endash/emdash.cyr/afii61664/perthousandzero/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/uni2423/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/hyphen.alt/afii10050/uni0492/afii10051/afii10060/uni04BA/uni0496/uni0498/afii10058/afii10056/uni049A/uni04A0/uni049C/uni04D4/uni04A2/uni04A4/afii10054/uni04E8/uni04AA/afii10062/uni04AE/uni04B0/uni04B2/afii10145/uni04B8/uni04B6/afii10053/uni04D8/afii10059/afii10023/afii61352/currency/section/afii10098/uni0493/afii10099/afii10108/uni04BB/uni0497/uni0499/afii10106/afii10104/uni049B/uni04A1/uni049D/uni04D5/uni04A3/uni04A5/afii10102/uni04E9/uni04AB/afii10110/uni04AF/uni04B1/uni04B3/afii10193/uni04B9/uni04B7/afii10101/afii10846/afii10107/afii10071/quotedblbase/guillemotleft.cyr/guillemotright.cyr/afii10017/afii10018/afii10019/afii10020/afii10021/afii10022/afii10024/afii10025/afii10026/afii10027/afii10028/afii10029/afii10030/afii10031/afii10032/afii10033/afii10034/afii10035/afii10036/afii10037/afii10038/afii10039/afii10040/afii10041/afii10042/afii10043/afii10044/afii10045/afii10046/afii10047/afii10048/afii10049/afii10065/afii10066/afii10067/afii10068/afii10069/afii10070/afii10072/afii10073/afii10074/afii10075/afii10076/afii10077/afii10078/afii10079/afii10080/afii10081/afii10082/afii10083/afii10084/afii10085/afii10086/afii10087/afii10088/afii10089/afii10090/afii10091/afii10092/afii10093/afii10094/afii10095/afii10096/afii10097] >> endobj 640 0 obj << /Length1 739 /Length2 25462 /Length3 532 /Length 26043 /Filter /FlateDecode >> stream xl{ctfMhܱqĶm۶m۶m۶m;鸃3[s]Ϯڬ:HDl=Mhh9J zZ&h!Gg ;[agN1@`g&{8Z;ȍ(Z[X8T\-ܮN..LL&S k\LV fbkh` w10H[:PL Fvɉغ8:5 #, *' S:;q612w@ D 00rYB+nv.Ck_cH061bm-k`c wq6q8"&p6XX{/?fILKIXoM x5r/LW-ol=ֿ['*Jd[#;c [38o?=f߱;@_C sa`d012XٙL >eSחLLMW쌸-ZB}E *fUVW{n,̍`qg yv% L`O& uV^*|k~ՇހbɂF;glSN1g^H: 1Du#į->ڊQ!gj~PU#Ιޒ`i<}M'8|L:"rk}"w$K2Q d;>&}K&aq'}>YġbĊbmq!jLsT Nj:"jW=cqN iNKNsq֊b7xD RpS~pyMN;diWw嗢ƻȣ'V#X }0|C良ȶ q3-4Z\I6z]aGK$&s2Ea͐z!1_sin d_mɐQ7^- iׯk>9Uw\}.ySt܎&ez?[UB!Yk AYg n soV% nm~Wy xGsg(%2:GZUv; ij[PC]՛=񋪲[(f lB|s\ҭYa0y*\Z4$KۼMK0SnHiM0L|17D5g}Qe;j3F>)D'[;-%0x$p0pT\| i9pA;Gv`NO.O&vūdQm,g8́цfHq#b24sW ~&@3xZ@ݺ,?l^ -[Ve2 ^LL6 sYAWw5JaV/2僇Bw'Aڲdݕ'@p8Ƣm(d 헄=OnY sA*65NNl55K^{CĔi@pt̙@D3]s mrޱB4C?( VQ* ?Dz) 99$ ~`p<5 u^z2E3Z9vVѶ98#`Cs_"?CtLQOl$`m 6^Ll>a(*0!?p%(㸷}Pt9)"ސM :hSu׎kv}hO}|Qufb\ѿ%RTÛ0eLAX 8u %C,_) E.E'Q]շ(b_-W #/Qf+Hȵ tLLHb])> O,L(2Sa* w@R;%5sAuKl(DEșv%6?vg }fjsCzHn"Έq: YFfW| r^QN1 :Yl!)ŽJA@MH2bIu)$5XAqĠ2'<zWMgXVդrᾥ~sOι+*Rϝ$*^Z?r3@ >;lPTc oTO\0;z9F ǥ*|}-G?b-r61LFDV!+3 z3Hݙ7 +xAunpwH.ZIYƽ*Vǽr/9hE\IeÛ 14s2HԢ3ʺv?.,zr\TNטۯLWPPg/%xxPV㲝q `6iZ{Vja!V*B1 ;Ȗȱ1FXBSox~d:`ķ~13)}OUVq, 2êK5{I7.G7$3B/I ֥Cc%UN*/V^@p *[;\Jz 6pڈ@GݒOwA7:7C>#۩S'ȵ%8fj[bo L7X.tP`uzS`zE*Wm+βu]H(/ 9ǯ5PI) wVab:0 ~GvחW Q>b.r]>5dM726ŗs4K},vPR4IMM\\m(LypW yt!"W`ZLC,X;qh5/Ko9,*bTy6x7b<*i<^;}yS9sOoǘ>km:]Ppk,ܧ5~߲ͦ_c6Trg 1_I^h-^lUt[Mama3Vu􎮝v?hMF'm= e~W-1jbtx*⬩(mzQf ~&*oʚaٱayqWCL+1[:EA:?ӔDGcӰ T"CX?f '6&z1+RY6'6g+$4F,q ; l`U[Mɴ.-F#v.x謇*4UWJ'5~>⇂)۹JNk={I?;11jИ&D 2!#^U4[*A`6B2nmxU/ ?BqNсhxf(fX˪hB8fXXBʅֵ}s]<)M?iq W4Cl*őܚnIw EjlBȅCּACg.|?=vI UevTFNUkX6+[ TxlEBsFI% u{2Le靯BLmv7ewk3" ]fh|#lteJ&cKQc)$›Si9rતE]o;;U21.24ghJe١ .0 &pe:]S,9&,c2?TjG;~?)mYA3L mPg=d3wC6Z*E9N\åmyd+;TXJJ<48]p"f?AK<ID7#_?Q-ӝM8aeZ M;/Q]T^xdG&A-dߙS#`u|{Nmgcmt`30g.1vpTW$z4Q 9F GR=ТT}f2s%sӶ@=k>j"G\ul[25f+:Y2=ܔ2f$1t|{Ai ZbKd qYdfa~y $ݡ"LT#?AbC Aыi{GrQwIdU{lι69Yг+2vOxr:ixu`Hԟ I{1y5-LJZa ðl"c9#g{wfQ !x*:l1%بY1ǎư}-dOUs4 S"6 UEEV=S$h"OgRAYn, 'd'YC޵[]U Qh7eK(vfsR8]cz *C{h; )Ei?3aC:eaM|l6cD76sȗ(bة /qȆ޶V'"m;Dۗ-L: DkarJrzy px*9 ͆UHZM@QZ h 8( B| M_D#TXjM6~ҁp¨ /ψ[\^p%%ЈIX^g$;P*|bi!C%):-TPd$u'ơͩ.h *^Ic[o TND0ݫ{v)S.PrE/=QgOU lI ,b"]F]&\ .ej ,|1L{I=N6y趓S ɫZgqpq:= !widY%1?c0nqm`>az-BZɷMi [:ɾ'1Bxm6h^P}ۦ0 JaZtBNH~p$ x6#"h}#y@7gүWRB6se4б25syCn6l~zU"4Eu4r:va2^i­x 'fȄk] W oU\6Cg\:vAzf[[wj8);jHzf21 s>?H$TBa=6Vbޕ|I!\^\B gw0:KOU>fj/uWbNuókkT'?Y65#}=wuFG$h>8omd@sᠬK:s~};d]s%pADhx_G}(*ue|bIdj8-ݩ6imoky"i5އ_ f~l+m1X n6u_~w?c/3ÇɸeEW:#*~$T p''7o>/۩fޗie2qYsk\+Ȍr+l 4tn7lU'ӾF#t};u6s)@Z5 zVEq+*7Xt4[w; *fm1^ӏ)ZRgzvDʕ"uyt7Kyx\2gSz/.3Cg q_/%[(K;Mp;֗ŬF 8H}ִyPX8R3fR2 :OmAkr.. =ME8VxA(}X! N5C$wBy5*o(h~vky#_%#i!V㕁lw+8|S oK͏ j/1Ҧo@Bo5Wv8Vbn x8k-i/$]Cˇ$~e8p}l|Kd|Ϧؘ[$.MWn!igm^J[*Jg6WQBqz1x3ナf1@e=ДOq 5#o^I-UVnX7\MhbU!7R$4NE=.2#fM  4UVE&upQzҍD,Ƴx%V[k8-Hoz=g<]3loiVv8P7/k͡6cA">M&6  6NꎏN12Y5Um2uH41iq{x[_.H)zj 5%:U]CO=fa-LZ*L͡t \K!#fDmsi{b0z[ )*tD5l"i?5HTkoh7>6oj=E)c#1:W64MÊk )jbmWu;'C3qۓ EbL=d R4l @iRY3NAU\< > -8g$ulC?a=z{ )Цs$GBK:ǯO Zo5#LyJZyfX]?4C^u.jsSt:_̛IZ:j,fy(:r&6uDv|oKM0svλn߉d4x_g݇qprcotUV% ph n1#V,} .:4KSէ_c% VZZig-x62Ӑ-/?tҦdO1&̎M-pr6t뚣`Bp,+.i*ȟgOHg+4KW 71s|%aJTY6x-r{D${!bw|݅ܣk+Vk/+w.I"eX%%!:Ŭ'yPnT"|?X :M@ Vi6?Y3f7߯kAH(nӡeiRǨ)Kla 'u녭S 0| ۅhONL)T'P;W+PĄ7+-飭+:~M\F I2bؠ#Pgܩ0lG1QIH%UbmS^#.ï*~Sb[ ˗1 "%Q8P^|{CQꨋU7SA5>[7mFTBIkA K.TDvl` ᄍZn첫, r2'dKW+Y8q z87( LdVJeV K>ag/Yç2IgZu)=&~ϗޤsQn{IP;Ɏv|@[KiQ:J %# AH̅ǣɯ{Ϙ_u1`=)|!V3^.Z}s 9^:tuiWndL24cpϻpQ>1|{=iBapjqWr„o$\iyJ!}-Yt Sǝ,r[\vjM[3vau] G 9y$%H9\b% #h.G2J BUkNa]V&X3Q`8eg7?}4<59ٳq\_`SUۓŅo Sݚąo1{_|] uKgQrHc_FXKo8:HskreJE*옠0Gry[ȧQFqo|#^x58l3{J .]YnU}ϕwQ'޴'徧CGu(j:g0QzߗmNXfGȍA36sY4$*9FHۜs1RLީWv'De< 0$u<*q9T jŖ'|kv?v@)7'd*D?-O׽oⶤzk ZwzF99S Y)y1+b_(@m#wH){s۵,2Ħ_fi~ 41K01HkH[E&2z E5E3uz}u)i84d|i}V3i9 r&v|S#Y_mjWmFxBc"*ZNP=ӭ(ܣ(}S *(wwȡ̠v>؞x>_ü<*rr"yAh/( R M>Zs[⇁oVsiiQr?߯p 6axcL#k)C/:4럑`@ƊB $bLw%by%hMe2TI8p'`2m n|3 f*yFg¸{{RVf5|Ou}O_`V;46e+k A gCΠ HCs{k$bZL_(H  ^Z!'oGl-°%$WTsRvr o2^%vG^~uqh{9cl(q#P-XA zo.˔CyN[w/xwLQ*Y!W0fBz$* 5Q:">;Uz`>+(sZC,y }*s|ߕM4naJ1bR (r%o ᩭdz[fAjJP%h\ބ1p2Dkm0"E[&iShݯ1S9Ae/-P)f-ξCF?쐅-O-$Lx0,fhu=oy: |qk+8e0n:B~9Y5Şڇ! +y2JN8Y2^ 2tI f2?]^muhשSua"a;uf3vۧ\F3xv+OءN M[1Rւ)"V29H`+GeO#P& A%{'@\XM|auwg|FJ\<+j$xn [+|<91|*H( Rj҃ fNr.bxh0#y8=bM$πE5%{5Oy=GyE<ޖ-ϥH=E+NC|`&;T$|R:\P~Sdi-R2bt/K-J*hr>P瀬ʳip ~Ra>k9N-ַ7k (q>洮rۓk)}>mø+`oY5cVGٝӆXFQPѮg2Cۭ3t(gLS};Ż^@ ?߈7_l5hY@^ta7QʿO6vdϩ{~|_:uDq& Q*6"~KM8zCqhpJʕsZ'ķrk{=蟡(sHG0`*ta,foBDw'e+䵖t]qʀFd~CxL-Z^7QPXFA FRg 8mr4 3ȐCD5'h0i\ey.HBY*yXgUJTL;mW#_f[iDח5ꆐfR~uKf md=;5J )ƅ>B㕞Lh ڥc@d͟kU}C +xpUZrlꬴY&yIlC,2BۉDDu^5㈱KxԥglzEkFX~5t,f/tZ(}Ojj@04t&s h?. =NvVk9Zw2 usծX' Fɕ@6j NLkD?J-AXlEY?˖0,Jg(j<_xD1RҮ (8h>"XFe>Slp'rnV : 8ċpp밖Ec hrq@[uQ̵+L-[Eky RVۚ%W82F L`I< эv~y~ S[X #2?!V.gX3.M $_e3=G%V.ݟytrU$+UdrF[ܲXGĞ FUDVefFˣʁ'&ΎiȊٍ]ysWfg;^ҭC~XV J8 |{5^A{P%?.RDQaW̖=J" $Z|/i Qa, gҟ'ʅ%;]K^XN~<ބ}Ē,FsZJ=ʻi_761TnaFG#.uuEB~2#3R0yȜIn" l_]Mxs )Gђh3R[ r,) IUxCTm4V`pXwf(n!in۠;:]WA "l|5Ri۳ v%j ١ZP?$̗mm_4 [ Is7:i6U?GͿll=r%T1.E{J\@~_Jj7a`oODEmvh\x0O3LM; VǨqD5gXBUFsTzd9`9R΍.UC4>i[_H5pGJXv@z^e*_Bg&2!|LUjD/m\BUTeZS:`!P HܓS7u{,Oa&"^kzZ pPe&؇"N?GSKʓbJU1퍤9R;0]Ԗw4RG[}8šHtsdp)k;Y5Vv#I0H*PR t]U?Ykeʗ/GSߐy߶+B 1괏9~2f OFu:3R Vnz7\_]SS&ڵʡ>_bX;`w:-4edI*clthГkU!mX՛՘jՆ) idJa,I*OWmb3TUsVzTK:ˌc]X<= VtyȮ@?f~a1] =Ygd{M- vzJ=JO蹺nBpi}nW*#m^7\,K4_"Om۠%xѶPD.ᜰ!Az쪙gA6ɩ+ToJB;.;yY 0ͧ"*=Mc)nF%ljyCTkUe?Ag\٣'b",Lc3:3MQ"' 3uN7U3)bȿ[ oO't,?Ȃœo G$@ ͫ'}ꢮ-~Z'h$huMk R,a 3+\z7OIMqG@Cx.l\ W1~sli?;6C 6ped]]V+:⦸ٳ$ ń.~QW{"!B(#diAc Cև  +Ɠ&a=/(iDE FS5~%OɱJM_ӕgJyXJFPS垟lGj꺰Ki,W~q57) K0Fˎّd|~N4+%0CsSgBR =-R/4"g7_-4%+Q]1-#mnDĪ;B!tmȭ&v|U%PႠE6Z>U43abGK㯔-CAoܡ7_No8'DݝA3ǟ}Pv+x^Xdp+Q<3"#0wޏ|K2WS$h^$BwS'CX=A$sڧSl Bzb%r!݂T.Α-Hh\XL7=Z_" sp0stߎ~'  );eU*6xmDVH܀v雡4Ox6䏳Y+H4Y`ĺ'wXOsH'Ⱦ?F3OSl؁J4-|\ѓn?ӳ>+[;+QNA,k$׃\æ@}3N]LEJPC׳,2o'7L8!EAk%ݦ;_]qdtu% ),4ܿ%Tag,Xq̍obajgrc#Gj缟H,tրY$~0!<.{6y>oXϲ hjdLƹ[Y1$_8jV! 6[Fj3@ Y~ )s̚dҕ/뭼49 V_ =4s: )8 Z20|L"?LڞWf1eb]TʕCONs,)Hl lI~͎-3i V< zZ2߬O$M3ۅ3-=Ё.ugRj&Y O{](Nc۶۶m;Ɖm۶m|üuV<;ullJRi^ܢVK]% ]G7-rF61OCxk*[>):("K&b4Zٟa}!P2 q`&el$rJƪRAQ 8Ʀf""Gd"3ZvڙK\tW׾ol#&=DqkF ۻơrr컿1)}gEy jql_yi}FT>(c!y͝> gDyX{#&CLk)DV ZexB 3(\D+67{8vpxz#D!90rh5N>hj/G&H/^84M3+|/*Vܵ"LeA>eᅰVCjJ̕z66uzɕNA%N]S}O001ATN/)V,(_؝i2)2fy6|=_ 7!bN{P4KPSs;8R廾ƕl-HkYcD0O[xN00gUCsƸO 4"ڃww\Vvʘ};-N jC3e wM!Sݎy`×b.Twp$pސj>YgwF1eZq][ⷀƜ:[Z%Pjfyk6#>Jtܶr;IfYۄWj4hcL'dGDVyԢGKCoCT 7)2tU`[@[ P`vkڌ\9JW y %ۭuqpƖ3zm>#0\ 2֞r>- U|kSOsnXµħeU+IJzbҁUc$!n+*e}eIf&߄lDH@)Ϣg#CӦ7K+;4E3ǼH=V' Z88ïRts0RʨىX'0P_`n'FǎI:YÅ~I 1'>SA?u?0@ YO;̉ sƭki;v2rQxq0KTp-v^!p!kՈRj0 >8?MڕR d ? nu.#ڵzNY͞=V4wAr" 0F HlѷMjA8n Suq.>c/JN.Ë ng'uw;O)hbCQ$6O+חsjgE;NM(R"P BƢ{y)MC<0kڦnJ+)Ґ-dwz5 +1Idk!zۆKPE{֠lXUl8tppfUxBg3njō[bbhوϫ"/Ȝ]@T0nin(jE%J2y$s*#M+b2B6J(uZ'A Ì] pAKTǫzShvCVm(e:y Q[g ]:SIHG3o#n }`.B=@*4n^l P+pux1 q;-A|$TIXݐ`RT?OC?+ h{rnQQM-V<6ZnH9-qi:w#f&u6\l"𔴸]"_Ԭ}7_y/d4gO&(ۙ~F.P]K+0wRd;Y(w3!Hԁa'vrIuF ċ'ӵ>fY( =ƍ&:*GYnnS+'4غ~12e/_] _Xcb0ڥOi zOjCdS5qp9PS}4&X0pYMսe>Nv$?\ky4gx:i4jWI2pV ?iXS2S||fx{]4/eh2A}[#"b⠩ :~[r#!+DD;.%hRf{gд76w䆻O?lدPT#K5Gä~ /ҞX2y޺jA8r+"g7*e"Fg͢Sу%(Dg./h-~ ۇ1ug3{k`ͪ)Ds: Y^<6aqx V!  -Z+.E!ΝV:AMJ#?k=aΪ]3\[ -^WWi3%*ju)if~haYNz08qk34H"h2kjbC)G ^ln|})™3<> 8-.73?2 LuZG?XV/G$և~9~I/ 5wf}/i{ESmjvU)FpMQ4w)]}C óΚܵa~UcӓI dLХmnD@:ORTV}h.a6=) C.?خ)Jx2av~N?E+R` ,T\A?ִoKSSD-`k.J1\xQ|f"ǤX]K^ex8ވzjDW#Lq>5cGت[7nމ6:{pk=0>- %3刊E9CMiFR6zJL/C1-NhTp*{niJAM喂i4*v)t7AekMSpQ4Vs(aսkQK[5"5i"7.>٢{+C):z^_ p JwX'Q;v/}CJ\6CWo񰻔P^U\c^d5SjϦr՝ϪWmm )DHpΕFgRxۿ707V&-c: ߆XU>b /anf$^[x)&YsY%TZΥzj>,R&^hE@0 uP h`(QY_oTܵ̚`[A% T:7vp㐻Nڨ}YP5^=c'Kt-s,uf+Me\pzh/zz;II{E3ݝJ-" <?q6CP|XͦSJ'c==%AtvLi?2uy.$ z1vNbz3ᄇSyn=fo l2,g5\ߒU>< ts0WAiwbO{%g4)󟟕|'W)unؿ^7b$EpHn]f˶$YijލXz7 es%)ϻ( j3|OR ,h1U.Ͷ>Z$("F){#DLQ&fvHT =*A狺2ϳ(2wn" >+e쎦xzTd:VѸ|Y÷_܋KB~ "tm|Y]; -AC+5*ڂ{g3Jc#f-50< t٨R2 -o7#NzA>ry&`g)X -qjZo  p%[<;C9Ö\rӠC# ԽZKOxoc3-BӜϣd`?_қl]>DT,0XK_5"C<^9FzUΗg-HsL,ɮr{ެ<p-ӿW.G66 kUumBPJVl Qu'TaZހ@7lԻ4E+1112:h?D,^!mZ{q&Lok6XbGx8Lꘌx kU_mWޟ6]ڜ+6eX·͒sDh3&JӊOu;%+Ur1!itjJ:v1 GXg& eHv$~n3 L{yy*Tޑ%ϔH=0(mˎG Ô~bxam _Q׫1iV徦1R8+;,S CNlY`ӫ&&YdDr^NR^)L YkCsG7 )H41TY1[}n[ٿmU 5ߪK"UZ(0Ut2STԥ rӶ;"J4$,@v 8K@2 YQI{T߆$xmLIgdm XDӎˡ{,Rb8 "TDqu-0vƿF*cI TKT7U9 w\CZ_yژU= b>ks7:&*GɵNF 3;"W>g6W;S+§& U&OW{A'դ;l$jŸnpyY F BIb#㹹JV1r&SC&Z/ME#_QG˖%8Ao]3y*c4,U De:2*5ྟU09"~bfY̲m(H Fnc5ڡNbX򑴐.4WWR!uLE_Uj!z:pJ?D6dE7;w{`-Z&JA ckz)3^p/SlJI9|$l/%z ;zl;fәJj4̤uG~iA R^ζ$ ~ʾz=SɂOBe/U%#!>a2N/t̀^';?bЃ=+?E GmL \m xendstream endobj 641 0 obj << /Type /Font /Subtype /Type1 /Encoding 698 0 R /FirstChar 46 /LastChar 255 /Widths 699 0 R /BaseFont /CPLKMV+SFBI1000 /FontDescriptor 639 0 R >> endobj 639 0 obj << /Ascent 694 /CapHeight 686 /Descent -194 /FontName /CPLKMV+SFBI1000 /ItalicAngle -14.04 /StemV 50 /XHeight 444 /FontBBox [-127 -321 1684 931] /Flags 4 /CharSet (/period/slash/colon/a/c/d/e/g/h/i/k/l/m/n/o/p/r/s/t/u/v/w/y/afii10033/afii10066/afii10069/afii10070/afii10077/afii10078/afii10079/afii10080/afii10082/afii10085/afii10087/afii10097) /FontFile 640 0 R >> endobj 699 0 obj [355 591 0 0 0 0 0 0 0 0 0 0 355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 591 0 532 591 532 0 532 591 355 0 532 297 944 650 591 591 0 502 487 385 620 532 768 0 562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 895 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 550 0 0 550 511 0 0 0 0 0 620 856 650 550 0 585 0 0 591 0 649 0 0 0 0 0 0 0 0 0 620 ] endobj 313 0 obj << /Length1 736 /Length2 33907 /Length3 532 /Length 34532 /Filter /FlateDecode >> stream x|stf5vc۶mtl۶mm;9{qYUk͚cMA"`dgf`JH1311X((DƮVbƮ@& t0X(^V*S [c3+;+g%]ōM"U j [J *Iu$ll Pr32Y]sgտ80;bvyq5a E5(( 'O ?@S+uGpek_ΞfV=t7wp6ss?\GCjl7[[c; J w0:տiW c;+[Ϛta{Tgfc`bn"a 4SrG{Wg7`MKRSe|!hkQ,CM_ n(p -*u /KXhB ԖZPK)l^U-*2{fR%!y즏{0F:gR=!F4'SYIBFVϤjg5'b/r]%ӎdrA@4՝L@d`笻U}]XF;N|t4G^Wz}L6R />z1$N׮4sMb1D%QҪa7BM1Z35Pv Tg3̉7تTcp≲CRڶ8)ynzQfW翙e=3êm uųZf۠' &Q\e kF]Ba;;=cQvjO2݃ba{}oK@ZCڦShN |`VAP\s(s׍̼F R3-n1\oU潥id'h<П-bBcEf6g]yHs5Vn*nqVj. K{(6j0{WlcXb$HT7egS6{: O2⒌7F ?~c}@q>\ nkhY)mJjFr:(#X@p16=AjZKY K_i1ksTC; a06dqy_z3sR_ln<єw 6}x(ʚB 6-Wyfg%vt63I?Y#0 ?ؒ`ZD2÷IgГ?TL;rkBR!-Ml^^UpD '%:ÎhecXH|eiZM`G,3`~( rexŃׄtXDaϳy@k_MdV]|Vݎ'H`6#{d|~P`wѵ^Ĝ&eZoݩNιSIhד̵0X4tBz5^P<8ƛ|,3FHũ꡾ҟa>-vs5>mBԍ莊k6Vʴ.z)/U)bjK*ohr^vql]| d'v{^.m,,\J}.HOhKtH]HҴ݊!@ zde2O mU,)RMOx#OBB [AI9':1tN!rRu_ye@-LS装 '\^`ߚt]Ӥӭ҈)EgOTl{t*O$O |ʮH$>r'-WU>*EC:l.HSNö~k>^Wlo8AWAW!h0TP()n_1q{tǃ|2Z ¢`ɭA*)ti{ЀNH.J13A% "p7KKs \huõCUvuy>d5HPɁ :ⴻ؈@gGC=Hab왻А"/?IȈ~\ v>$ВӍ)rJJ .,_ߔ͊$⛃LYd9ht8b*z5ZuaCZ@(.,HFM=IHZSu"rX(GHy4Z8{ 1Xi*wi[ \T uu%Ò`$ bBdSoehdF\Bu6~-𤊬 V J'2>Lt#o|B3&9a}Ad]hi=^-Ab"~x)3RI]cGϘд1t4VC"Yr6. F؞/O{VKr;TGa,;}r1BY+כ =5 aY`N0QV%7-'q_ -觇|\Dg4?bU3]XeL@ASY7 8a j@5DI1mJG[F@)hMQ9QwJp(lEEBnA,{jB?X+-^3Lz`ҠtᴅH`soX ح﾿UL/Px3Ϥ);B S\;Q9ɜc: p`-[eis FojTC̜|@ z3DOߜv(ߞY3,cցX_TgzW^P/13R#O{ 7+η73 סezRؓCFHYzG_{70VlTySBjfv"W m Oڃ'[$Oiܥ*{Jd"b 4a,w[Z1|ɻU0WyL" )?Yf.c>@X*e1=9.W.1}A~K ^2"%F2rgJ)(=~/\X)HVWj_>E&2uj A'eSMS"!5W\b#2J N5R][ªž5@Wei:npEr%zb0'LS.jv&m&PY=Bu_1zP?wž2.m%aWCvMY.?C;>1 [/ymmJY^(elԝ C44"dk7hݽ7ˊjOͮL3Ȭ5]tD<E61wޒ]^NcO}'Y[_Q??\voˉF%=}{C_AU b*}J0SX2K1fi 3;i,V%Čhy˷obGi`GjXw= U n^ut]jn>J)Єՙ_1h-]GF R}N$LKv_;Bq EѢ}u19ce/fS/{}.~SRwX+SƤ(ިja߫=MM I'x(=:W\f]r S&N@ KޤFQγhkH ώRR ٯyx5W* 7+lE,;WNa7|V>pbmP3ž#-Eݘ&Bcu|mΝYT0tCj9#2xm80gT\ (/ptWZm%`:alD02Uya WOe )0 k%NQВIߞ!֒v2DtlBKwS)v.mij 5܌%߬8rrq\$%?$tؖ+֧} WG$D0-Zhd 9IoX-Aȫ4Gĭ`d%3^}$Y3;ƍiO1YSCEM*t} C:/-KEju-۬Z?͡~zU YX7@ֆ'.$BkT^(~GWղfۼﰕTޭo^pLx5HhQ=dJ Yn5zaQٛVy} ˜tk ;0J,F1_/6''!a-PO8>`tYE]FmV{#FЃZ˻" 3*" Ż8I ^MF#S51|`V\>#:#+`oVRNQja$$Sm$!~P8뢑v}}WLNlO̻lǚb^\`RX.4U nzHһ';t9UݚN-— *Pۉtw-d}'8h 9I+SȁcLCf_:Qs:Gٿg2nzkGm lvaW*e9+hZ?cf(9t:s&Ж> 6-Kr;1|T/)P'm3aNəzEǒx`"ʼnʱSylz}rU&6ޫozޜ.ms¯#: ș j*4=Ĕ_b:rX1Y_?!Fr]1MX%;JxR]vQT7_=k^/^o_™F˳o:ͮy`)IO-eP/ԵXLIgiH70 {rg՝wܡtXG 5J1 /{&xI_' WJNcb<,xK9]o5P'A?tzͮ? Qіd*8~4o_648~]q_ew#k7Nˋ yk .*{Xc{!j(밶퀥b}VY7!I(Nu: PJ?FZH7R?ی#mucb%իQ02O?S}BgZP8I줡fYWĉ^rɴyLH[9XN1; )h|#D&=췸+c@Jl[N:y 6^m;p,Jd,Ze |Wfi c\AP]#t'/o* ^t6+Sw&EMivdYl] FF30u"'?pژ4Q?NV{i-p&CV{uOۓ *diS}BjA,0ƏK2'ma]kU}7{`1+# $ yuLI[ehKsAZI;!sST[ÿB!FĮWn1 m)~7(9#Y:K18 bޜ3s@spg=UqmCp$PDŽnQijXr>2w˰vղJߜ(n-;Vʏa}!&F7Za]0=1`]sPw }&nl<#Mhj ]ʉf2cOF$ SJ#E g9 8|8 ˿~֎`)>ē`6"#4I4v{3|ᘠlhNm6ڔ+> 3L.h-6aFNZГơ!eA5ccRCskGReGa 6<X͔W#iEA/yK\yz=[2}ގưg`'ɸhXmHdX+"&I40w>3Vf?9&kP3L׸y[8qV|AagXXμ>42rƲ,\P!^-w=&-01d14I6aa4N"XɥtzL`s (1̮ȔI>(Z?{TΗ4 T@5l&6'_<ޔ laŅtČ[iCsgm$%&`BȞ!QnHpQ!0e]듿ߚgw'$$9w䙼Cv2}^E82rHē*oM)xKB"3ւ)L=z62جH^F(lN"µn BR˕Qh]lpƌC6SHIRdG[%č%u%[xzwy!;OL{=?>bl 云 L܁4Dv\|(u?@2XoVg|ux i*{[K#n.y@Nߥ Vi,ŭx7JgvbmCS# oá\> 9κ%gL!hYk[-:JyXbŌ[CaSC 6,4tT7i. xCTX\kf}4p*\l0+x%N[8h5U D|[;}_yJd1L0& " k"ifs\ xf/罭'RSCkqJo_?ˀMȑ|puENs(#As{h' >=k~М"#O9MXNCΈzCn=\Q ;iW3Eyy3D 8$7lz1X [&l3A!q=j{a)"K"CNZ%ZL[fN $B,h6i's΍qmwNc8j=&/"S+;QVP3xkaȪcϳ&yܪMR.3WŅ0&JFóWȺ/di񖻯R+[\q|dC8B!.X ^ORгe"GzW)tиqYٽY ^8;=a(~zQ*!q,J3^䘾nڕ\;KL$'=dg-6Pm>w]* K~q8a2Ƞm|&q'/.7䖞 `vL]K qA  >eSn 3Y= 3JOHϮ:y9[}"*rMnuI|(<>N>)@bCv?;w0N8k yY15T}Wpvդ +$JY^d,`7\.nߌ\n<0wZ(Km"boYT< Qkz)Ly铩+= 'tj9;+߀z{fcj0p5׮^ԓ^7f?VQk1 V nb~pl!]t4Ց yC6oqs@ޒ޼4FX5._zp`ܘ0Mwz:eYӤA%9 4ϋא}j B$_y/k~ܪvd8l􌂐K$  #|\ܼ)=>#gu ƟE4ubIĆ욒;˵Ѥf[19qic^ou1vh唯˞u7NE1솱+ģn(!EW >+ΝӅڍ?v~".#&eh?I=t\@RzC>9 -AsHU-KwHT,D ŒSltMe3<XuV%Q⣴Tm ;ۄHC٨~8&XД2&K՜}dnk i?W܈CQ0T4v&A"]4"~Fxȧ\i,GySEu۶;g,Q?2}Dg{ Ώ\RS/G!hbk^>,Piz 3 r f .Y[''Kq)DVˎ;Y1ޚGuWӚZ 7Hg,+󌐰RA-,7&KcS&>wfSŻk=c,S ͢Sݗdcb ?J =(GŶ9 >N{s ~C7-#. 2zy4NOcw͏4'"u^3r0H i$?OGGӞ%NV3 pVhBa:әj]4Df1~5άi5byMo d6dϚ@ðn O҅ ?7ݘ2]#s`VB9OYn^Dg0ʨ r] G^C Wxxx'-֡NdY*kaU)nMAb>l֋"c5j/-̊WQ#} (C:(Kϩ!Ow>~\Ӵ1C>KK,F SNWO!)1jҋHϧefLk['B[G)S}!Sx(Ի]oI!^FD]b[C4d/ߍgy8}{(h>tDб␳$1X|(~kcg{$#~1]}Mq^ Hz 8FC**so.@<=>&aI#0-j)\z7EWsjX$v#ЌX=TMAyn u=!h _ʫI!ˆ5Q-)VKW} fnIM2_$Oveߞbu<< ə9އ ѢM3\?!~'eѝG2oN=ͪ M=4V L¤]YK)؏0ZRhMwsM?iX?>TI;8Oj6+6,Q4:7#CtؓmAomNY o 岲ݶ>k)K,* 5}|w0jxCfvr0[sc"92M넹k`T/۔wҨ*_GWSvV9uܗ[VYZ%4luqezЈyF{{73 >} PL{ ` k9W"C=t(z-{A.zto=~Hk׾*ɑ!8\  3ڑfHz;%6s(.yxigKp_#hQ_A VFV~^5-pmqX0?2_m>f-~9TwO ` L0`a%^e@^v6d,?0%䂁]2[F(,(jN s _ %m"h[}S8כ.=JB`jMr|t+op 6 ݮ`JT۽DK9X5R1,uB9wJa=xNΝjn"="!h Wبߟ-{YxBUYw#\{әa\ZcF)_P<>I3g`6 *'N$muS SRj >{d6%gl&tVWLdTHk\s~2?7k;<*2 K4y-E_u{=#U eK ]~=Srɉ AwoЩ#&vZkf1y ^1kO\ O$Јb9QƦpFCTZ0?5Wܸ!Fp<|^,#-F˄EVhqb]&惲]N?Pc+jQΡQ6!ߩe Fk;ny%/CotɘA,p+Du@CƟ7SUn^,-"U6^BoR3MSylT;־43}&>P<Ę5t`I ,.WB;9Y;)&.0yfK :VL2˅&\GzWi.(y`R;qf Xm̝qqyv~dBļBVj*]g3swۜr\+, 1OscޚKk"xw$6R'ZS,{JN$r=JB}LqwmC,F2W\fsSV+ gBzo1ӭ ,Sr)ez)OVfu$ce%- o]r*.3I, ?=Y+v>rRv3qʋ~χ 3#: h+br鄃+R*m~f/>vĺy8ѼVA{n.+2O2ݵ%xHP^GuOk>u0YƎz_XlVӌɣf6[bd/ .2n_~iPv&w/,f U6 J3-I4AƗSu}{ y8,~TgN75 ||VaA0 >Ӧ^;sEl9h l# ʩ H}@u#tR_,f=9ho*YlOfnNHIh-aoc+s<ӛ46tEv𡿆X叓 d奠4d[Tp2hJjk8%WP~,HVy 6Ct9%Nһ!Zfsrea#T=CƘl*$u8ɉw&,{]1}ʤ?zD=h .2ы?eQ1~EdK:y".ҟ=.mzLN 6xVJcwRyެݒ"-8dOCmx:-dyW!Keu%o Uz笱VOgI ď QDybJu'*&T'IM:i3j6Q҇PJX5yoo#xF`w91iמD*P+4lm ]~Qsaz='+OQle1#g<$ \*mL9 `25o{ڭɭOu p "Y$ln. 䗸rk۞]o뻵FNhz o1l-gW @Qlj>4tgiNXnwyR C4.>~KT|yq*9ÀAZI[i)/4x' .oќdAr P!SFAh"D$xFSTӹd7*uZM~uiPE@)NRƮ1}GyJ :{)'wS`n;O _eؔRZ@M6JrZ.|:nF3n^GPw$գ_+lCiG1oy\ۍW p>ָG`6 w@VP 1]sg>/ aUaIaj5e:# ԈQ(qb Ι?C]bhYd#Q["-x-3Uک*=q9b2CKQvQ֖haa?6{Jn) QnZK5S yڂFe}Jz4)h ֊L`"ΓZ+8}wߛ1Y%XRo z`Yڭ)rVu[sIKٌ_Z3%^$x#]Biltt ,3DIQHVtA}򥊼ly(/!L A zg2I>u6bMVm- wfց@;=\ &/gm \j/;0Ӹw! X$,͓Qu#l,pJ(7.tsfv4(3*yOۏ?N9_31䞥ZhȒ:!MC;? W!B3*kK˂$ LPNi\zq)5Vل%V@i QtۋIr3趿)z';sj]y8Ot45L"L-xJ9Y"q,fBr6\uDv[Ciw{+A~%ΰEJxE Yw)AO *NQtG@dWFxfyVl┡pN.ş:H[b!d@@h׉=lܾ/d4a~@b"TRDRyy) 6J8W73+yàڟyp\eKpT֓bsns~ %"9GT J'8ΡS). 0fsıɣL.YdA,.qл Q_YQC+T_#Աڌpg^lMڒ} '@)d1f ]Ә&P.Oq xAjXcTs'%w 7 V@%npQvi*ĕp)py+1T$/u{D$sB, ϶C FAE\߾{y1$OfJr{;` "f,=*!-p2u"=*Ԃ+-)m=CC1)V|mkQ"lnAKEtrf!T&~"-Bo5_CX6NقulRυ`J^*ODwEm+d[lߝ)ޡJ=ɼ  &LeUQ a=ܸ .mډS?:9y)pd(6ԴkR.r?] J~\&t&ke""h$oE]8.K^>@ͳewΨf/簈F{8tȶ$yYKf=43Psj!, p %р,NgK*VL |I ѩTf_4Hs=ctH{#*e_lT\=/d]{2XK''F)\gb(5U*w1݌l"UkUI!ϔ΁aZ k5}+/j\ӧ;vO,$LQl}b$*'Gˍ̪tﳪPp{#Fڰ(mswxǂ#Q X{?='oXճ8PuRB$3vp:C՘h4Bԏ(a˿ؑ!YH%j%tH`1A3h}J2Cǯi4c6$|LQD]ږm+3^AvwJt#d0I*70&>r:+'up'`Į_OHa4ND83,үdkŒ!$:>cYy`kp?כwxpwrn+  !ҋ.+NG|ZD&C@Mt7 J*{$Xe,}w"Tsp()汹V/J ґ¾qb*[ш(igYD%؁KrplRTg><ޛAq`J-NJ||8"\\O7L<(6vddFlp#üuIz_#BJC)[sOR[vdA1G־HTvߜ+uR Җc>l{CEA6< $A9h+uzYsqEacAI"ltOUC p&fx;͜ !ƣ| ̌Nz拵 #EF^;Ęua*OۡtPyKltMy&9$v$GBFzG$QҿZCXp,A0%*a:VjH؏cӝs<%lalU@E%cJW=q89m4rv "4c:]_ [%^atpׇ߱$' ,yצXaճ[sis.A糁nފд|j27Ҕ~ Ȇ_%CW~d|{"T_z6~=< zxNd&Uu8ef)?$3o|˖O+[q%)Q.=rJ_;<ZdԂUaލ$0`m+m&F_q utg0ZPYy$_VK(Ȕ<~LhR KcfߨG{TZ3 41  d!z%ܩQ5Y&gh5vz7/_#KKjӿw5{ML\1cxm`Q3Eb;͵>nٱe|eف>KU)6+>~[9BMn[hhl$S|`L#;N^c8S瀞Ə,d<*<'2DVG- fDCwBuYHѯVTƅLĵIf@G "Kib0I?kZRYTkc!Cu3xsZx>N3[d$Y?}Hퟆ+?bK5Px@ ) WIf(Vf蚇N,.:d+ K=y%C3_Ehb|8}q#4~OiquuաB4fǃv \̛x@z@P{gV[v ʹrIĽqXwJj{d"bpDϽ%f>kEA986s@nm)N0Få5GB$Y^㺨lļ"eB:es-ã8$Q] rEl-2V)HZhص>8mT lfxF&u|2 !Uo>klg *hmNluV:4 ykrz l3bYe!6+Xb4jVT{wƖl.MO:n4̣݋<4".T!`pO1^*yU/FjF~fr܊,xF^=E.[c5ՙNE2\)<:ZFf! d=tdXcJ ԟ%T&ᰯ}EfIys@=dy]3paPLǴ@7bV(h~,IwU"Q_}u(V=䕭.6?)AV"k#--zo& iŸ4CoZW xUWlX.U>ވ9Mm(ڷQ.|2+LQ@ayk[w8^ "ze&MRyvd)Igw4!<:eҬȝY%Ljo6=߳KD{ nPWI[3%+͑"9䵺!Os Нnk!0υ [N3 S+Ќ@P% XU7' ڣlj=IlQmF/Fڭ,ylipP2ڀ/wgV"$D}9[$rΨxBCEg]_{4Jt5й:HSGĔ]. h)[ǥcC䨄2ԛ$6p]%["HV|,o7_D9!R,AP .<mݶ!&R$.rUϾ 2,I5:V=Jr08L>;L6DD`X1`eC :_q#zFFcv 咕+iUVZtێürEms)V$MQxJ0}K+EZ )lbc1Z-|藐1@zϚfW7UScWTV-^!I̍ƸdJ6(`4['9L{&('[re>&Є 8| ) o9 8SiKJA!>8m*+<=#_΂yQŋ% ΢#i,eqrͫ#kG4 NM#e J}4m%7Kvy-JYV|Ĝ-ުgZw*K~&vkǦ<:R. Rdj^ [.gZ-2Bټp.ˏa7wN\Ϫ1p2'{:Tn\XKj gKX/WGwi^Ae#RLS QAv -v5+*Ӎs?+lV}K{>۠\9(!֑G,섚Q@@/[Y^+)fBw]G([v@tEssh;^:Twy+G2^hnhG=k-& ?lJk*UsAErS.TվS1̤J86lՋH4[uE#hFbNyC`LPWJ!jG(0Ngh^ 2-r\ՆQ> Tnw>U >(`3E̖}+j$e%dgM})?)؀pmQŒRp$*Qx3/P>"@`]C|8ӥsM` ۷hńP Q=| ozʎPFST\oژ#T>YRC\1uڇ>Ƕu0)BR5_*՛gMjrd뜓G7] YN%GP諽Wc&RxK5*CU kj5TU8 }V~hGYkd0_^5i}%Yn^VUAA}"dc , uaL/sGm?ݽD!Mynm3HTZc7UBg(xm5^[v-p]&^f(8E2k05G,2SKPSRt oT'=\XTld\-S4 %|L`gG|\?  lp^_ۙsKjANDD8b%MI Ow܇HvR4x 蕀 Q瓛Aj>@S=0u: jvt`MQEw[ܿX-Iw~ngd2PRb*J*38UBp6Sjkg^@i1w 4qp :sb6Ekj3]z9M"z m_m=V?K%fы ^.fU=sW6^a'&@G~j6g<:r􌳍jZPA׾P:J jSj89-3U?PxDyUG4-$cbs߀k !rbU([>W~L*+x;csZ ;GhhfmVHBh!a}:w;t yyQ7W@||YLq[=MzDzn1_^ .j ri\K~\탢K5dco؎xߊ8?9^Tq<0UukZNs!يx1ań7barz ,Іa#zo8lhe-׻ˊrDo$tY8|d!}앛,@څR#y&BOO|~Soi`Ch$`Zz{]#6O|u 2h2{xipДkP~ȋysK]䫤4h<\(vPГklgzML%P8f6^eKXn.#t#N 9O:՝KiriDmRZfWBkShFl|3 8eRpj=Q]x$@ƸO'*$℗>5gAdETog8O~ ~ ږyS|0e='$Fk5TxG0ߗeNT8懓~2\)-Y)ˁT0~j~ɞGj+N#0iޖ2t뛾F/jh_)NpIiP+#߿q (&3Y/TA0/]1˄ICuw¾$C!3L9{WG5"gsJ t 9>`".>s) TIرQ)q+GQ^V!Cn̢87E#NctS1 f"Lyj(JK0rӜ͗i*Z=% 'WMWN:YqWmB'O)ĔQa(.n> 0X6?6nҧkE2)Xۢ ҡCԴ1aO0S633A-цhPA{plqy< }i/ϯ0ȖRoiJ d<ʻBأ u*mHy3):ښׂ=Ґ`r䂅rC)y3?4V`뀅h8V,ΐV_nYCd #%VT> 'TU_Oׯk7E=vsL'fVl/Ni3ƖHn~d6aCІ̡娜V(ѢܯJsuM`i-O8k;>oN=` >L3ĉ-f q(B {eH1u'Ys>sڦPaZb^6C|Y?dJQ,oiLw`Ü-F'sN) J>|gR̕~X[ \:Cخ=]7ɺdCQ!& ^5*z keD$gm,%J?T)e>bsiBғb? !F_ɱ 1^bMCI `chtTRpBN1 9၀k |u{'kQtVw/٧T i +[ukat# ?#b)_.C,Sfjfq&"w:L4ktN;ڣdaqvrS&pqIn 8_shJRH R1gIazY48s=ޭd=Bn'.άaެN=ujYd|_l[aF4r;Cg]~6~SUc'G`c/ DDo#ȍAZZPʮ\|Ž7E)fWE0Oy}YcI>KlQ'Lp>1|V`q:lH?-&}$$qV 8H*Q|*3p.+3+:ZSLCe].BU&_B ^yuVvxnHO*"n=z >& 2ihϿ+/ U&N韒=뼼)C,0l2g-j>4MvWqd7 W×+H+bf[vFpu,7Pt\Jɨd{^74s>8d M?iٿ"c~:2&(6 oڠImwe^>)P|30tFW!a ղO$]>Xm?)]WVDX&V eAcm ;w@o4zyQf -w8gbҷ+>a 63Gc H; }d/)Nۮ^\?J!UH,G9T UcB!v"_}` wEyfXJ+.7+\-'k)WN˩:ݦK0vv`ɜ-lٮ{@"CoM9\@?}٘-FM9Zuۂ%LWb C0 x7Τն [r}1rAp!(/]NцlP\XuwǑsaPg *%䆰Am_|Lf2tfQj`wv @Xb k πpwn|\C![\D`jzȨti4{64R}qpDb ybF` /-s ho`j -i~6\"!z qf,(g9\J }wFHee%xQKli &3p9*#iS }#Ꮖ$kgM~DIc~N9yN!`x9U Wf3l~cE=E(xc?%2 =xxPho5,k EGF/O{UpQr^MS#ilFDdH|18$AUk?XD0Xfk ȫye r蚅,WjΠBOK(gCn!>S *tx,QSDIz%cA^ZM wZ B*&]%go6i" w2S6C 5&7%]-Y:#3@+ d+퉡r-hKMEz ϔ5n83Sx0R3*&0Pai&7;=Q\(/!,kݒ_^H*C\ԖРq3KٖHKZ\qmpA_b?ۑp沽M|G/ )q rihA0q6VmR=!od,uﹷ'#ꯂt(+Mx60CTսkLӭ^GK-?usUaqA8-R~l"Nz/?J7g@m258f?`@B&zr2K`X:3˅\SzS }0(za=Eƕ-釰gLG?{״Ugj)6GX?pCTA]QX\'9,AANj:HfКt~Ղ,.Kw>?W7 צ:Kk.cա$8I!?ZNT? OYZVrMV:fĪJf~OΧ$I+{Ѫ mst#Bq-n?ƭw5^":%ė" sv mA VOjPeG&c}b#P-)U.ESoĔ&F$xW/d0a@XcM6|TB-!vYSaEF?3'qWv)kIc?>=p̴ cZs{ 0G1O)1m:/tMe06VՙP/P ab`#z\n>,*EA |%~)}iM]!a_kgp^XsG`OgH֜3FOdم]A-rsa.~d $P]5鎁[M^a-3_vـr1< dj3hد{Y /,[LN& }_zڋ/aNwJG-u+Txi}K@R1ifmTPjw )@!ά]py6>; z~7$HE5ٖbw8!a6^j-v,ˮ&sFZ35DN)! =AZ`ap=$EUsfrF23-^᭪"gY[roõH*A5sg+`Ͷ"]l+3+?ph,GBamF &n^)*ԦP^#uǼ"V!{LCe Ȝ5#osd;.}^_O&{ 26]6AoGm7m.ҋ^v.Fp-}h{=gz%>3_ωU ߃LeyvjhK?89V[z#y@FڮPH@wTKM5xI,c^S*ymS.Q U?~UHF_)y~ZKƮhs2g2Ж*z i2F8)4caLi# Hq\hu\ vg=51c37B#F0"[M?P*m^#:FYr>xa4=mblI;į_0b6!]n.hmYbv] ̴,)uNNߖTTifPf}l?2J_v֜+OI@)^BU1ԏN:Z2OZ7-I/sŊ[ƣM==%~/ډEjSfsvi˾Y++1oe>|1]G椻~N@)65wF pm4΅%<~0[m.k Bz(LDh/XM^j?v }NduW+6\WUKnz*Y5k+abXV9bطc T/Z+z7)}eo WO@ȳ1cҮ9 s:!UI#EGNu<ugu:#%Mƶu. pÖX.JN ,vŕ:`؋"fď(ƍWB+3jClɵ-y"&!OJd倊) 'q?U݈⪳4ћK42{Bj~Rxл e- UH*jWQ0̣N%5C[Gun{t`~Kbu^ φ/pW6~'CPEKм]8|$[#:g`˫Uh掙WZA>b"K8Xǿ>YSÞLQr[2S;k{s(>✂Bc X'.m[`xH "vBl| BU?a|fendstream endobj 314 0 obj << /Type /Font /Subtype /Type1 /Encoding 698 0 R /FirstChar 33 /LastChar 255 /Widths 700 0 R /BaseFont /QETTKS+SFIT1000 /FontDescriptor 312 0 R >> endobj 312 0 obj << /Ascent 611 /CapHeight 611 /Descent -222 /FontName /QETTKS+SFIT1000 /ItalicAngle -14.04 /StemV 50 /XHeight 430 /FontBBox [-70 -360 1392 838] /Flags 4 /CharSet (/exclam/quotedbl/numbersign/dollar/quoteright/parenleft/parenright/comma/hyphen/period/slash/zero/one/two/four/five/six/colon/semicolon/equal/A/N/V/underscore/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/u/v/w/x/y/braceleft/braceright/guillemotleft.cyr/guillemotright.cyr/afii10017/afii10018/afii10019/afii10030/afii10031/afii10034/afii10035/afii10037/afii10049/afii10065/afii10066/afii10067/afii10068/afii10069/afii10070/afii10072/afii10073/afii10074/afii10075/afii10076/afii10077/afii10078/afii10079/afii10080/afii10081/afii10082/afii10083/afii10084/afii10085/afii10086/afii10087/afii10088/afii10089/afii10090/afii10091/afii10092/afii10093/afii10094/afii10095/afii10096/afii10097) /FontFile 313 0 R >> endobj 700 0 obj [525 525 525 525 0 0 525 525 525 0 0 525 525 525 525 525 525 525 0 525 525 525 0 0 0 525 525 0 525 0 0 0 525 0 0 0 0 0 0 0 0 0 0 0 0 525 0 0 0 0 0 0 0 525 0 0 0 0 0 0 0 0 525 0 525 525 525 525 525 525 525 525 525 0 525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 0 525 0 525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 525 525 525 525 0 0 0 0 0 0 0 0 0 525 525 0 0 525 525 0 525 0 0 0 0 0 0 0 0 0 0 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] endobj 301 0 obj << /Length1 725 /Length2 53808 /Length3 532 /Length 54453 /Filter /FlateDecode >> stream xlePeݲ,5pwoqwwwi~{}'S#++FV1LUG.JJp9K\|@sRu#););++3ʕ֌ -dr&rupY 1; 1SZI-@@Rqe]Y%iRZi%MRi=`Kfj 2#U]tΤY9؛Ʌ݁ήpv#URV g'؛*SnhI]'Od?d=1#\IM {&ko@H́lmv@RZq;G7W39ٞ_{8AK؁l! Q{cryU@ (Anv)?j`owǢ !)'?Cﴤ9ޒT?;gE֊Wg'>+F_#sabg!eJ;k w !.9X6,!Y0S03eɰ<}27>$ @6h*s-{D"OD.<Q[|U{ 7·3SqM_[ R9s*Df2)mFۊ[3D1TX_ ?B ]S[:]Z̲uǗI^3$z{}&mCt!ex&2Z@yc+@X_>جw AiS4NS4[rsA\">vr]E|xGW1迕f7p+~F&]9濺 nS+sCC?FR? ?r*T임e`2Ȉ~X;&lbn)X0ѢZ4!qLKNrlwQu):լ -ƊҜBAR~*pmkiI6cj#p?\`Z2llj`jyq$p'4ҡTdo~POk{r֦w4ysj䧐q9iBs6LЦbt V)K "07}Ҹ#ok N^~<_M<=*-_r`ԜXZH0kz)F_QװmM ]-t ϩHR^)l _5|8ES $v.|~Ey>bwd nku8`>-.jff+3E"F4؋]Ejbx-Y~$1>2-F1Ҳ QϮǙ((j# NewKr$B. Yˀ?S~?X ^'i: ɟ $t C¾ 9ɦxI|VK~}q4RBl z}Y*Rd)hIgrS& J*ڏf)>H hЛlӓ-%|trGS,ˁ!i* $[==걶XaŻ0o::>Eg"{kJ쁛8c! E#,{N!?]mѼ|S(9lcL0whBĽn)%ǘ%~:$0Ηh۞l|sZ}VJKk2iM?Afv ;[*,ZQ(-~a wwi"tI$':FHK_iP /P󠱨ZTCw TeR^X!hb)]ڍ*×B Ɉ2*}LgSlawnXoiwSFYi=MCu2'."b/7ɚ6U|b5&OG ZZa"[ <ȗ731T͒>w 3@RQQ*}]D? ķ-AK}WJ}kR9'Xb:37 ;%'91]i/b茴U6DoMQ~sp^Cn7['ِ^d4s8 KI68|FloYLN}7\ԣbTNw8Q#QmCI@G{|5+-Cto< U@r dާCD{*PXİ&x0\޷0 3UVgh* ҾFEy_"H?6s?c]GVl^#6#^ _H>aGLJJ(sj#2uXy@s¬R"{f y4aٍ Zi3\P`Dk|y'\dX<|WX:9BXVъ |tJ%˶*mRx[.NI_|%䃉;D#,7 N$uh#Ǩ;3Bz> Խט'nV}>GJ^6␔'(ppV"cwFy(H'0LqF$ۦO[RR}۶YknsKf 90Xn{u*i|If0pǫ|K-Kmt*M|%4 pYչ#C'=(D!o؃p~eR>lʢoQQ\r bwrk])޷H'7Etx $dPDjmrf]y@rl!7 6AmMV+GEÎpa ЪA-{PRhmlk|#y?5(>0f+d,SJ垝F3w)$[DIo;l} o<%uWy@|"ǯs´teϺg^ڎ8*/6]ɹ4DGϸ5>_GATN׏ xZq[>. ݃eĔ?uCXیdy( lO$怜Pp˯ˍdߩ$6 h cG@̦Ǡl9BN[V,FC9%z}9@sEnqe\)Cn /ͦx%OνԘI2i#2O7$ cE圇 c MFRbpT|fɘfn%A8d2E؅ԈC8J֣XqU#\'35jЫ5ɂ=둓P1+VJAd 劚}<^*s~C%ǁ|SꪷoP΅푴ܼ7qtV u0@q؝py/WEܪ'B;Dj9=Xvr& #{.d=12Vl2#6)Dc_+Di%_p"٫_LȨDav1fZz[vA>J1xT>V_1X(ߒ}hO,U<[@G9}M4wfE5elAu:I]>l+_)1[Z4,b j_ktx8cƳb1C]5wG3Gޗ-# TH|!zu0l (|9ˀ!zG?8pSj_M 6B,Oh҂ɂ&EQ\6M #C!sso٪e`H;d̉ԝI Uwpu j9daf|l KrUӣV-Dӑ$g̽G'y ,}~t̉129wpCxzrsOqZ=me´b..8.`ѮR[:cO?GEaH2ɾZL܂@"]{/Q;mgwtɄd3{s?H}/kU11+'?!r-mn>E|`_K\7lϏڱYSED &,ژZ8URGȼ1,;L/Xzdt-? #L[h SM4Ww;2]pe 9jGxNMQ ߠ9 z`PPe=hA{*gv,I+OYnD~?T4oda[wӸ;TM<Ӷ~(J72qp:rY @g*MsHhyΞ$#l4 XӲa"]*okB [gIh7^fhvҦV(?$n6LDYH~w17tϓ8kn 9BϚ!8fo8&5 Ů̗sYFGxEP#Vi6mg]]Yin;iFRΌ%--eX.-OyY7aR+Ht]> 12W?Wm+/7Vp|4ۓ]1!^m(|('i6ќȔp\-^n Ia-5pt")ZK8JXz+\SChI^o((J/á[y0^Ӟ)}D~ֱQ i¥f1!+$!ͽ˂&I!1Kg-:ᜮ$QtY;CzB?h`Wnv&1_rl"9o"5.Ż֘<7Z r<6- Zm~ #@{,zNJ  k-Q5,B3Is ~TM эJ98D6A̞>YU#5:Bj˧̞!-.הc X |_W-2N-'q7./ܾCnHt$릲tm0\aN+G|eppr߫WР)M;ٗɡo+.qMwLgY'? }Pis7bG-ϘR }a5E7ez$j). ϦwHjDm3Mxk#Za0 .^gk-RG~l"𲲽b:z}$Oj~MG+[;iXj9 l_xKk#s.&#l4ŲLǓ_dupvqӷ)V| HS6g05 I#%`2FV Uw2CF,]vPBB0*Oq!+u τ+ DqVҏpIP;oVxT 1q78}l3ͷs0Hq cSEeIEʿ>҉q[NZMwY$u~Ҿ$ & lK b/'jYI.nsoD|W^\ּՙRSЁ9}T Fw_Uw=/@޷),cSU-ŅjmfLM?%5+o%*e)qF5 Nky Z#C.^PO(UDJ_,ef-eEOapcqϘ1Ho'f-DpOz<>.Q񿇯PN%!vp#||xV2o|2]ƸR2l eU3'wr/sQڡ@/'n/}XaC$*@&'TEr&u'1=A.L*Ϡޯi}i6T8g䄕y wc'Ӫk}~uPȪ(*ޒopIhhόAd1LaD-JW~x /W8 `s6j M}#'z{X),nDs5.wBdF#mJ=k#Z'OV -g[r!:K1ۃZϩT 0%զ3tIjTeI8EbJiP} fefBtFgU˞G6K`).K8q,1Ue*t-z!=(Y Ӛ@H#9e[Q5'oo{zCr@_݅BQ<@f皮[eMKgi/Hi0~i`AAL#$͎hQ m&=৏#q'%.3Oew-0J]LLXѮD#{bs4f({ (¥Edv8NCtP~7-p:BTg!]5Њ90)V9)myQ.?ǒK78r2ɖ^^BNd穀^NEqzO#MD#?]3v۟f%L&)IvѦZ>TSY \h>$ 7>-ꧩLkjY*Me{yRsT=ʐF l h3FН^ux577-C+TONo;g4;2kS31 0<{U Lv_6ujcrqjq}ڝ))Rmki!:Ĭ"t642d3K4 hIAc/J.V񱄢33rVm2IUUyP|b`GpU`F p(t\po{@oV/Flo |~tOV,h=XBM×wmjڤg$r*? @ W~_=,^<2b~Gs-i7xq }ϪWc_23ѝ9?Eɭ-4:w$(pe^=٦’yh#3폧w~0%z̿B AeF,BaqJj0cCf,Rv9c;u|[M(.o\u\+-s&{p0xo9m'-2k fMC bg36T%hWQؾ+_/fCsߋ<@[&ҭ^W;s ;4̈svO|8LU'ѥ o8 *GmSЗV(w +BVm^¾\>.dcr@T \.0 exK'8AȶTC*:$J: Qs=K-9,$l8{qMeB^\H-* p]TߥƸ5wu`K5ȖT8KC_c!|0`Du5xt=pS0k[ jū+Z$4Rm| Lr7R gudZ!|]TS)FPfh4DC7Tul0%xψa5-|5", # Vu0^^DlĶ!S4r%v.3!i)iwȅ"|fH]jԕjѺ&Iva' 5"kjִyg5dg=-O1O e--j]S]|,$,"QD1rCZ9Pa�xg}*E!,zb(YyM[_+m+$!*oJ1[Kn'A큡k[Vj[k/B4E7fYz3ӕvN45nƫw5,yy^4$0!f];e{rj%uy FZu;L,5%Pt?7߱K1Q;72̞`mlpr jvM5K-00}~v~?q]KtSoUw GNwoCQo~@x?&yͶa)v!gncZIN Vl/?! bʑ$귄8XM;<@5T56hoh-(0dvnЂ˙< HpKo&4@>B>NFzpNO7v=@aH0~OϬ_Þ&4;I`#g"$KP0`]eTaݽ-qL(ࢲ j7kd`'7JŪkǮ0)˃VL_<yrdsT {RH쿾McZNSipY?Ϡ?}Ž5[7 J2t;RF8.O]WDީc)\BuoEf>;7/ÍzwL~^Z33/M{4YaOKe%bZf֣o.{C6oCynk}(:_}ԾR,qQNprfD""r 8]eè!&^5sdQşM> ]w* LH*K˝pkǐV,+wr/ȫͼ H 6@#,GסmpͲG FHJE8J)핂N FrQsђ|һD'\ҕ81 dce Je>G|hdN+\>IX$6U0' F 30 U{bB1$Brxqfkll9k{3 KnF<24\H̹[b\S.TdaZwp ǔ3bR Zʼ Ew5sz!_4=N|gᱹ˗92afHzȟP鍻]{ga2iy!#`kG@9_9c22u9x;yT7z8p |ɉYp?8* ]耘[aIN%L.1ȡb,ۛzWW%B-ƜGaGBr*"b&Qp᚛#74=|'ާE ΘbckQx" 4Khj߳[wO vuxމ.a oO_UY za-M>E?ns0T7~?MHzSzo)b0VZs`:ng6.5 '_XuRY\371Vf_H0~1V,cDZߪ=.o@~Y(~nPʡdF%::Rtd2JvS-t,  $:׻rkQKuw7^+|Veh#իPu1Ӗ{uCIί OKLTTI9ڣ~,@֧A#PEϘӍ+?-l;7H]+X·̒i,Ԝb+{H/+*>t!x2…:מI}r-pG J"bV\P:w/wWܹ,A[pS`8%Zm[s'= %NR珨ϸP 83AŽF2/߄ ~YꐫPNT#tǮqHEBAĜYHf'#U1,y]ln``vE4e/ Uj]U@=5&} E){:)T3g*'*Y#٧7\ۊ]X b)|Q=mz l*i NT^ ئ .\mM@F GYc Y}@O5fXA>p{3(Ecdb9RZ٭[gM=UnRtw 2cŽh-9z%cC 0\ٿL^sA{@ԓk||uV#%E p k‘@%{94Af]vt0*\nT{O(ˆ7q=D+_AX"liIg;u&R3,DfԊKlvDɓ?Sg &+)|9 v%*p J?4(=yR5;B35֙Nu>40fɰ5E\{~}̘HQ܎ STte%nڢ\+-$0&oas~>Yx?tyGbJV9Ge|ˎbWc!2U2V]KwVYX1,J$ʔy=kut0@(4 aETVg=H:qU 6hau˰jnd)IB܊1УT3?twZ)!:)qMhզP-g*:H$k8LpLg"{A6ީf)Yk Ro,s}Uk bkx4J7= a X\*&7)D*/AY%] oxiFkMzeRPΊO~ Z>9XiQKwxQ-yi|FfD.F,v gϐij1俏 j/|1:_̊&Z!v?qX=0Y/%+?P @GeWBZ2DPohA$]ܝHbK8AU5Sq f G?q=TG״)5|KJJR [)Ae" wj'Dh=fTPL7iyӦ y>n$9k@u bt^TH/i72\oK:vU;gXW3\a+*#JpQbp?Tl-iINk*w/@7v!7R^(<$RAc NSCœYS :3Gڄ< 6Q<<{c 3Aoxpu#w`|' U?R+S(cDRK=Zb<<.V#V '6{|jb ˒;aG]Om$WBֲ4Yg^$ou+nU~9Hn2xGZQ]lLjs1y!{>m)tBm62FG g`TQJHlrGjSPfM0ڢKR[ܞCՊԤˮR_$\'W(>AnYg_-KB{uz78rJB=FQ \5μz 3y%= `%K,,`{q)5J!ܗ\-;I lmN=V\LVxm)R ʇxzEC΂>1xl(xr/%,iKFmܳ>J8Jnu5Uٹٴ}&'jϩUAUnW g8yM89dƃS֘|~yc`Ud}ڴ(~D\)8^'a:?6`U,ω>r*Pzėgrk+֪W)!t!W/&;h}uMah7Ŵ>NgX g&Epel۶m۶m۶m۶m۶qg:oT/]\` q:3$aYZNeGWZiX,c(afNhz}OkЗ`/h(edb*NHOYҡa>wAKGߟf^|, -Tu#&iFa]Dy7bFI 6W5pxWߢeoD6J5% !i5?AuDK7eԭYY< ^%(t4v2EŸh\1ER`po|)DqQJ@Dq颟\(iRVwWZje 5Mʏvi 'P fa螵: ^oH<ѫ2)\64b䢭ewAlf:iFJl+~@+l{tF>cOsSoVj22#mBb~0B<>l|TLڎJhe8K'~@ NL_?9-,`F!8͕w[ 8AejPq+Ǔiqikl`{EEA/&p.#]sH즐$9fܼU OpuW|a 8Rwi+O6.¨ӀAgr0tj/~2#BYI]f}N3AÙ!'P5dIdACsz'uܓA/R6(n-Eo|s>[R;/L1c†}7 7 dڰ4iWЌjGr6alǭIeiL$81{It"s]iՁcOۗq9]QK6 )fNv v {{50C2i3E\72 `ڗ]Ao>$v2A3~ؕvbH%ܸ6 @ϔ8cOriq,i PIX쮲̂n2 栥RXcj͇ܘ:.\B"0BJIWj l(98c(մ*|)uWBa|G> i(Z"*CIqH"3?npT1PF#pp9WsdTY&ĨŏMH0 >D!,")K*2=>tHSMjIMB hej֖(t ݻ>+?:lrK.03 bwUVb,&ޔ_ M84yP%ji㶰>)*14#M}K"1k m _rVn(3ுۚ,rωRu ݲR?^Ag!URChu(?R񰟽^'\b,R#]iFmD#vD6P<_HXP%I[~fko۾z)= tV[pԿ_'G$" /$>F\︕OqH'peai Tp Fe4 uĦ<+%H\d5@\_$*~d.tt4€A>xRͷWT|LnHCb> 0? =(V9>58%W*σbmAIUa|x]"I{5;r{ 5l(BԱ/`\FbƢR7|xNzŮ3:b=ᒒ̏=E!'Hxi.?q{ Cp,*| HVad9%o版7g?G,R¼-'xdMDz]KaE c[YoiȮ-fAGo:!tzaUb(~vǁ=o lBK|[p-$J:5h9@d 5H_-suuG mݲ &vG\2Q`D|H"`\l[ %9*:}Ƿ*jVbNqT"V 5vr˝@tnS4*?Lj6eEB9>;Iδ9Q*zm.J~ ŝM 7 (1qveũ )F}7 }PF4(\, ]Zhiˣm|mFGw#X5 |rA 0Ĭ܅@-(8ŨHAU>,d;Ʊ\4+~w;(Oi&҂q+r~mM|XXZ6\SJ|Ʃ@*uA%Otv@J& -g$]wIDA^7, ,5g $!Ji6 I 5hpcxxFWКFfZv0$Q42e}2+PjGkcŪ) vU bf'^#@niO#k{[}yEz-[_!sXXȐkFEpŤC&$5JoܨŠ{|PᐉTnQ4=ژ|ɃS"|>nfrì}%|~g=cYZ CóY"Nt>BPcj=[Z!2AD!;Ü݌͹胴|f .ۮ&6m NjlB(+Ng{>83!8gR+GVv/jtvL IaS~7;qI^(W[bNOO%;Lc'rچF֦ #NՈAty6 SCc'|7%8f^.$`yq_((@MXm=׽޼CMqNwi"zhAS9h ͚˱隭CX/wl2*M/ `stmapߧGM Y0'.USlU?HJv#aF̈6fiX ]}å/q˭|:c<٥ȡvc@@[*o0 g`cl>,Q =kr8\Hw٬0 2WRl O.Q&,GtbaPB-H?")Kr_(<1顼p-rr,ۢ"[IT,I+:,h :~ۤ_6&ҺdQU.zSԂCt<& ^y+_WW /W4sorvy8cMkmzB ù\>!wh5ZCp KF)J9^Ʒ`% 4'vza zlÒ. 6d'@0L{ lM:St7s4dto>9= DFtܛGj2Gg!lWxμgucro;9ruO:Hqßoⷜ֡7$&ɬ9Pz'}+6by]tUJ]Z#S|0|+ lSP,@|ly9؈G@T +qj  ,Z#ܨ^ڋ;6uB:Eyͥղ d>k<(SOK= qNemPn?+TiW3KYUH']cT[e!{eJ)|%'Pa YC<գy:WBtvX=L0‚Ȧ2c6 3r=?El2^+-$YtW:8'!z[f K]`HGb {?ˑtt_Y>U|U<4~H+>6::1>U׃|o=d޽ݟGWt.NPn5 QUǖ]mtTglԊֿ V,_Mw N-̧S lͦPyƯm;Eiqe fh w:r@S=c?!  %yjE'B$n]!Pr;a۵PRG[ldKQq0L\pc⥠ ijvM<#׶ U!Q9^NU.UVq97)hI\8j=:v aBOIu2Vw^7+IqVU!MLB~#!a*lO[]!rj'/?j&tfIQ ɽ!ŸWA;Q*C3 ?-]sxj3,aՍz<\M&S&Ӏŗ;#-^AG)Cx Rm{"F!dk[bemؽ ožc *qp-Cn'jȝ8FU阎~)>`b%5K*T)m$yXWmq4%O%]?\;Iί+Jlw2;_lWqL.eo︽bn8;;=p?G*mJi =k9I'SY;qK6\r9t>l+^9Q`m/6aSz+yɵ Mƀn !d?Js>K@yE;6uz3IzAÜ\:7Az?c餍8@M$Ղ/0p-tĽSt"ړmPպѻJ ?a6Ȱh^-9BQ$)U'0(Wc/s!]Ĝ wal&_td=t|yB@,c ]>rg]ePEbm4zhD9Ӷ,S HgZ[JRrDn8OSsב$OD2s׳1P&ۻT5lzH m8 =VT[]>A2-L- ܽXGAH A]5vJ7O| ,1f=66ǣ)C{l]u,.q+k}ĬCZ C͂> [\o)V:->k |6׳tHQ{ 2Xa{|HAosVy`ztdHj)x-ͼB ɟ06ongΌPT/rǑPOh6G3nWXu&l*( k!Jjr*nB\-qڎJдϞ='J9)H(]yWb.n3:4a}'])pP^D|x5GÓ * z:SCv"V ̀`A!@9_Ž)A=0>dӄ pE ՙbOnVT{>9m+=RL7M篔%|h7m_HD9U3ow/bp Og:,\m8H5qCLuȫ;L7ԖR? 3c:ؘ+gIhι~JeLΓ/{Z7; o{K¹ȅuuBZ]JY;؃V0@FGKy*jFJaRM 9da}0\"֣񫗘(~ր5;dĐ+.)hEߜ2$?<ȳD}2{(^gZ>'~<x%S s:7;:)S/])jEnݞwN8DmwӹEJs!M$H9˲) ?G%)}DXaC"^`/ӛF5. fNv{IP{*s*)`"ٕgpCcH'Buέs ^h'FUz6C ,uY(hTzD#Tq@RgeHZX;r^ԴHpGmȖ\i5:DVf 0? 4e(Oس-a(o7nL 뢺K}ÓZtFl5h9dK ÊЋ"5{ t2s ǒ=0;m{Fod۹J0_cH㞐&>B^v4w\Ryʞ;SU?nx)(޲=hKwhyYq zIQOZq,YMkDy_d z/bpB "[IӅ)]wh- ,|HE]Wϧ7 5`E, 8u~5ԫ),*>Ӥ°)ůC:ms?@٧xFrs#&D )]S7͒ Mk,)Th0'\4T:fBZˣ(gd: %o &0 R/QkٞjerlvN3a grμx `0,jmeCzǟvID5 vP0;kͶfVMVx((f7Zb%nԴb M"MK~N՝y:GQ]-a鯨 糦hU_J:8ߍEuͻbw _q汎 5M:C ݁qZA$'|)i#=gXz7z` Eڂ$4V]F^INr:CL97zF7W+9?1tgPzs d\6)fҡU%wzc~)6p_iK\:)ΫBf1 CEVL(L*:@>rM8vJѠ ;݊1v&)aZ`᫐]xv{\ԔLR[2i8҄FL;ѭF2iƓN#Ȭ דuhHdmo ŚHu^yMpJ.0wwa,vtZ{)ȠppZ PW@%B Wlj+ ƾw:T)s)a=hMSz MݦqT-IeP/-_P;7=38IiV^V=^-Cn~F1%b z0 k_hhweC9{҇*),“e5r]vUr݈m'*$~.D 3q) Vz{;%qp}H!n( :[cJP.˵66c5h-a{fDZ2:)xG_V ߨ޺ѭsvx}rC. ~ H gD#Q~3!U^=Lf7:f?8K#csȚl @ULZ JK\'|݇sIfJ~xč:aok^UK[cj>8Cw5K8SAǨpQZmb'_.k-9r-h[޼l 5ڝ%qkvOK1j]iMxB=>w*b UR_]&{bzbXr7G|BZo1#{خ˵擘&Zgo2 I#DEhY]9Wkmk[O JJS_.ԓOsC!L(+ qW2o@6PۃVž̾C0BH|an6cX TEC5jns/#ω^5ˎ@!*Opȳ?!t@4z1J b22y+=?:1 i=E }®X<~q.yTk؊h{un:Afk,\=Gk6+ B8EgdK s\קn$U .p ĔV։uS pb7tseQr>ګWuW!p}-9 R K( &)AB窤$ˌtQ#ɭI*; '-nB" D/zw#@7nTMlUB 1HJ`鲞q*ȵCShX֐hC1DU$0Q@k=o9{* ?.]rִ@_IO>C7ƈ{d!<*9fFe~[B eUN;)3>T,| ~H|+1Z`Zr8ӛ}քȹKg`_ZQȻ[oB:~ꇴ<#AvC{9aus_<m!~c1/6Д?;)P`ֻ1"Mv]{ ^j+ j' m}AANVvjsAKNѿfpQQ#u˄'pؙ!I>-{y! Gq'q;|k"J>8 k3|Qq:^3Fʤ|`9bU\`&Cskl)h`wzu+ `Yq^P'3c < EdPǦE OΝ7o1T*Іp{XL RiZqin/YJ5e{t),l2say3O,7FךT G-yQQ7V68_c28Kb?z7;[v7`45rsnjyNWZuvL|H,U~ 9hO-,$wRƆIދm5˫[[fKʓKTv_`VK`;A]7Lt4@RKj.K)Gq͂M/̎ 6)'/\/_ 6cX/_w,O'Ŀ`1Dj0ԲzHH~fgaKZy0 F[sB mkOBݾU 3'&:c؀p=x~".*1€KC^..V^q_3h=\n)mp8qC %Kn?m?]4ޝJV4*#0W,nDWԘ!O +L1g⇜AsDT >4O]C -4x@\cVlh|&i~&ER%v)=B&mPJ iX@&l:6&.gU_2/%hɪm?,\+f7XشaT 'Bt<C9Czт)xQ?'sRw Gf 2\Q.j~?;WVHtg?̆IQFDq ,rzlj¤G~K{Uz|elX6OOI%z|(j~fc_)'JMa N` %fiP| vIOk}-G5JRғ 8I=CX%x Ln{SR'1#uگҡVH06Lgv0ŀ}{5ƽ|q][$[R #C+4P"#Ҝ#tBC0QbI쓓F:^+[0N[4ҏcLq6AʤRuߒ޵|J; ,rԌrŨX1*/=Hh /Cv פ5)50bT5[(ٕ.w엎~zaVF,iǥkWbw XY4b ԯ|/@Zn>1v>Ր˕ i~Q!^Xd`D䦆Hhg:z6$xe?չ ?t a=?Cn{۝tGr K.S]ljlyuz I*ۂ üb\&3K:h/HB۰D$@_<͹q`U(" a)( &0 G], }"y;{NGtx  Piwꐆ(6 ɋP Ĵ #epm iQ%5SROzPOTJCep:Qίc> orXa;.VRҲe)Z+ʲT2:IYyE"F 2Œ`+yx^EXOLn6`Hϩ7:w諹nۚRmqa=2-mJ76@LH;faUn-?e%X[pr2eh.lwGCesX ;Thݶ'Z 5R͵ #DprK8 7ǣCeB-(GXqO-ߌ`) .p @x}n{\d8^3XŲ[ U!*X&տ'KJ룵͂_}7K O9þϬ٨  L>c6~hB וc5J82SoaV癙~u|ۣBs69U3pӴ0p6.4MjN93_K)ZW 1D ٨G-X4ףf|[K!el<5`1?=;ducqX#ir?-7%Tbb;;蘣Nz$7Q --QE+q4%9"ڤy]- wUB q;Mn~-vArGqꇮFc^ُG`w\F;Y<6S;;5傞t32LD7Yaᖞy \UI wٕ$RE ri>LXu6 tƗ-Bs >G0j=Ji aGxG4`!7ڋj3Y3E-7d]3ιܛsbT'7 hHϛNy9X"uc aO5r W$ }P[h/{)zl@ Pø'ZmP-5T}0'0C13Z?iNiCW=8}xSVcSB%Z +PnTDVe QB'[;NWu3Ϲ럥cɊ;"QՀStaoު1 5S"ck,$.9pJ6X79HSl^I2[8[c]`k쐣FU H}єlҒæ0^Z] Xg`ᕽt1Rx!%%aŒE5D".:Nj2@KٯB̍FbM=lޟbG /KZ7Yo=(h>g)y>l*7w[::E֧Eƿ]<ڎBlf0K{2Q.54(?of_@g±pX?(\aXg̐5O)}2)pW'Q[滑r.JdO]8&1q T|ԧD_lPXwsk<1 3DB&>H9` y[ƦNz5y#@UB}.K~aT%P?ºx͙ҲgQO0X ӵkEQjs#I꛷c%vŌ+#:bdjGwFVq9N[U@| )2AݫdK 8`Ƞ+IYI_Dv6{x>hfqm 2vі ѻn!`IX3FKngi= ;`=Kޱl_}ۮ;Bi'VvZjII.1`k+Ԇ^J)>؎U|ʨSվ&& F*b@u75x۳T pwo?(ݬ֬a&GyHB-7pIߥd'E[X;AJ&lOj3I=$j ĪaOHbbQ׎rp}eH$?=H`~=' P|4+LT83|tQ݌Ur",jQ_pwF^%:'|Z||@j_s9=̣j7`U37:2495^3ŖL3Ϳ QK7\I}-_oE#lv UHP*et䅨y.0_bk/(q+*M:Ib P?^B|9rۅ|Zȁ/XcCT܀ذ>gԬu7^MqE;M5Z>f7=^%&85YR>g]?kPfAy_YhBWncy>j^KUō0tà(M_XHH` t"M*кgW8ܦwOJ=(@9.l=7iZDC DIAS2n Ep~؝^<'oYZwE*.wE{qDUbʤq7h,Ob׺fJ"bt*Ud.kUcBxg>^EEqnt1@&ݒDœk/hh&zLw wqqJ=+QxhlK˵m&5")f<xɵ#ى^rddNI#dOR-"5);4f- $j az!X4jj9=L2Tuho%O*,*%$g4{ #FY9 SژOJK"XH9 z-Ow?RSL;4z@Ġ/\$D`h(gӛa{~ v@*zI/G=xbHO[.dUE\H62vˮTGb`Jj09Bpm].\ʫsNyo?M*ԛxfr9 ydV/p-[CJwzB~{hm?"k7;9i8P#&.0KJӴSa;>Ec<1v'6QS D17٦Sϭ>>%v$;wψeM~E :3/_g[n t*Ϫ|ϴw&u. i1難jLqi' h{}lwڑ3}ۏ~(\,,K{T7ng [lm{~]dc p}g]95# oMݠ^PVߵ%%d]ݹU/L 3mY(} /E\v Ngg ֕Bw5yxfSZ/ *[ůq dhc:X?Ew$@3qEMhO͞rqI!lg SBs[(7LU]7a ,Q^yKPGO t|p_ݮy;mtYzV%6}fGd鄻N>/=BOlaԾ^NVUkdQ '>۬C[`}_ P摋UŴUR Sf^%&s$KR7|]S$S^IE5HmG;φx&"L0l(%O(q/; 24`8qc qA;; B# 'dt0b D~Zt*"RI{"S'6jJÍ[2 "ek%k%} DP/iZhb}{dTqGG^ZSg!vVk}'[4'!;觸h0~@&mKBq=,7?3J<Ҵ! Tf0ys|=fghYlY0t#|cs`(sYp)F)NT[ZXZu;?.' =FR* 0m2 AJ˸0Wd"h>v # ?'9àr–*'͌*D }s{tUVt: :[sԎ\ ډ"zy{ӹQ*muEr#c.#[&\L2v9b1CAD!` F̭"%oyjaL4%s\ {i` vcvn nGҩb}2]4y,^b$ <{= Uj$ױDJUbw/84) ˳eYh&S-Au |>/p~|Gb%5B`,tTLmMLtiGj si$iM;c*dQ`4#&kUv0>cU_|}Mr;?MT0vm Fvniԙ%WԾ]MGҀgth ѼƶKV}q\M_Ԅ9kq%&ctN56ƗP[2ؤi?d4:{O(eG=DH%z ȑ׊EJƤgΟM {<=V?lp[˷cgF0un#2ôu D.&߹~|Ejz4yFgiU5 ?׋imy|Mhp gV 7xΉ\ 5?W)-z>?Hd2t~0Ax=& 9ɦ7SG(T};aӦB,eh&1cˢܡЃR*#Ek" 5{i[$G`i02SYr DҗP$`jlmoy.>/]+f!MRq-}BQ0yOu,B:|p1 !y5?l!I+DFvf{ݓc jjL:ݯ4]%?qE.sN!PST%\GPbF؏A1ީv $̭|7a3lev:=շe&FVhEbv!6}Wq:W0R*/ B[ij@O+6X/Bnen4~('&]6TbK5HtvvoSq uB1`<䊼MSjynO挺y [(9Ң]h'%&s!MCp,玄6 P-fؙ͚_21ٗ].ؔ/򯧴%C.ڽ!`SCRcr;##j h8p2 ~ck(!<0|IxQ:2Tm<9 ֎!ȗM! fbH/tyTOi߿8z?6C} "Wz¹ɒu28lqvNAlŽ0QLmrSb7uVVrRYz6G8XpWpɪkpuL"5_\'dsna^/,6'QA)qJkǹzTՅƾh2ZD-|xJ(34*KDϒG0de:Uc+(~&uVDAre/\gs;Ǡ*~yBqe30]ẢW@Zp$Uc{d< UzVd8W@K#|;)3:zZ?68̻&*j6Nvr;a/M{v W{I [+jb^u[6泝 ,zP<ץ\UI˃2lCfSPpBOfsPZVh[Bڢ}:){0I( U~Sϸp@z5g[kuWvlRt][7("}mWhu _lN6m=]o!ORmΆrbkwb []vx2  QY ]\buid(ɪ_Rj=u _0 Q̵v预Pt1N i8 jV'u,iqD Q {yo}{EP4xk-T6=q ݋'SJxibpf 醶[y9#9m$=-z| +\ MB v_{Ti$ s 7k/Zt ƕs)ɭ6e㌦$h$W\biKKؒ{@$ӶlOm'FLuZ ZYo2[ZBtaҿ[T ՗7&ɽv80Q ~S|HlF2;)v*|( ?LLSvk6ƙ>.T_ 9 4D_DUyzщL 1I|-m*wM̗m B%G dߢVnN3i?hRY=#-kg5x,w'f8f誽L :\UhXElC~1+|y=6[Q@ w :ɳvo)~Un'$B! 0Z(uu nDUsWt yc2rJ8:$9±W }d:Ku (hr]*tn5zM>z {v j{jQ>E2j6m]YC #<xL{~ʪ/g>20殺<zaS b.ΪYm?;K+@2 U5Ɨ6rܡnY5^.LSfհ5z_R-ktw5=iULN/ J C),R8|I$nJI!Ue2JT_hmbYw/& dNM{}tl]'grl%%#!V'4*f >m|x[?O*;oksHIDڤ]C_oũn=dFeeݶz@G[ƙy7*?*I&OR<~deйS]GH0v8Q6m@-e.QU J ~_H }scǛ- d0]o Ov1($J/{i"4l&(l/os/Jy8∜9C2kRJ(zH73R]=Xs(I/H~TㅷC G H!r'CH,< ~IM#:ڎZyuKp8`E`łcھGoTQM4w"SzXZq*N5yPq l@Ƅ Y~WJ2AWa R'aJAu>ԗD 舧N*a2 È+籥RǟA)B7ʎ? `%쩏ta曶tpv+shDY/@Jsr͊]Xv{q[E \hQg} #8nO_[X*]ty5Wpidxnd[!LۦIc+4bMB4gUH֔쀞[E>TYyMO}li})ONGNQ{0Hyh.JE# +O. vD@b=UZ_ 32z;^f@k]#P;Ғ4" e3nhf0tɷ nSp}м7:{qme~zZVc҇5(/@֜{f)iWwGX =٘F=oA$3ρ B&?{}levj.\) Ν~z0]q]]ޭl=~54V;jn(wc XA6,O5_֩QkDP($2#@zCGjɗ5W4@Im96UݠG=Md Jɲ6SQeґp 鉇-)$ANj¦5aϥ]_3?ѫXm:XT9uh;;7cW ?x䵳މ>u X8s,N F-`)*t׿(.TR[؍P++鿖Ӳg|ZLf&پA+U$Zela0n_~؃9p69q.ƆSf^4@ꏈ<ѭGD8UnWN іZ[ %AG:<̬TEr_BpV;I[N碪s\#zxQ9#"YoX&rN4ፆjwR`=ADUK $̙ByFm N(OHrIM8 @CI }R"-pU Lz;\QJW)_cO[d.IcDi^gJv>X^J , %Q0OjQ2׊6kY89A_/}H44쉯fө  :Tm٤gO SwS*|sᷖ]=YvLlvFXd>K{^qKx, 4C`%K37HBu &GdQҼ)k]V[ su euHP7dЋz( ŋ&Q)G Wu+UɈ&kPy`6W؞͖!%< U-Ԉڗev9;O_'DXܨi7z0AX9\4yժQ~Tx[dTf=e`Ob -x8.Ϩ9,x)#āi|@yRe4jiAa\T'LEbK:=m h*&y Lg޵s> ^xjv+uy&PNnd}Mc@,-A!_{?N {Զv%Ҷ\I*"J}d~124UxL*+y~?3̞Vc3Q؇+ $3nЛ5&F@+ȇ%[z *| 3Lϐ-<HO5V]!v}4B(Mۺ-|ķ;5@E.?~Cϖ!$pk tb4KCjqc.\Gu%Śēc@ 1LH?EC׈'OT !i}:|-5lwBk{[l-dW^)/ r6Υˑ:bDj\neG vj@5Yx[o f4􋬅1aout9P+Rm8> @hö骎dS`R/TZGrPotKP,m2'>MIo =57z_ MDG/_A*TX'31s܂Tzh=۳mxHÅK"F_b7(11^]zQWE{]7*dMG?|>cYa z14#+u ˖xp8V ezhdyNQmkcqD_hjSEL#KjWq;S7U5O je |' DStIFHEdZIa-^TgK"HM`k?M8?ۗGѝ< :dhL 2fŧ]F2-הE pS4XlԈlɖ6?Bh[ ЪXB^mV\|R5\hn݌F^LD Qaf(`G1VY @Ӷ`ΣSjEG" %ATs P !flrd5moc[~g-h |$j<apZ$wmUҖLbp1X <µ@ΫU[ŏ Lk7ڎ` ~hf/ =`99QNxF!˲9]hƸ%,:U?WŮ5!Ɩom_9]`nkiAWq{xH۱d,+[>n9>'4oq̭YZ/2տ,I2sl-Mx[L/ <+{B} FJK:& XhM;8FyV Dry(B/?L bI90,*ks/k_ "*#JEbThekF])~2%լ? G>DKU`^ko'"rM>VrZQ0n?i1/̍ i`h&)# Y47ǝ !f/duHapM"ۈUwL[2Bq2 sz]e]&kPf/J\K'2\vus=k `WE  x"}uyö́ЬOʫ{g{%T۞:˽ cL,|MHr~QuMn`xd6^ZwoZkt kAʷ@^Einy/\O>6')Ac$7Э31Muf}l;< o.J5 UF-,~11c>=WO0 `,;U_mTCG\dG'/]/oƏ>Vm kcNjG vG% Xpsjv=֞t fLR=k6}q0$_E2P4GPx8T#^w3e,XG"'d%ړ=8cK@:lvs74#]]R3?WkdY/E[v=Gz䴱}䶾wmvlfsDE_W6O&9p0]eʔrΤ.0 &:I335"^]Y6U<O #}}`frЈCW A~ hx{O*{ z"Â8kzc NքPUC>U3d[7 G~"Yny0dtw-}2=cC}Q}ƛ'?+%Ao2cc9iɺS¢!gHV[u|oxF~e+92d(|Ƹmyg_F U_1qt_&.]K:%?< )4&#H?gwÂ#f[ LmF! .~qlYYASܺĚuih`b׾f/}@az]Ot$xBYdGg" Dw` `d1"Y.Kex\ԈvL20EB#P&A1&G/+qܬ,3B:G~Вfn{G_TasqpճLQ5VtX75g`gQ+˰Λd 8W1"Iz{E4rbx1Nf 9Bidֱ\1Fu켷c8fCJGu? t I{D1/MC J6魶  A^(M~0y r*̑"7˳BHs͆#sr(|mP'W܇; ct.f˗ 7y 8Rt2͑³f*A|JYO@+oe1ױ%lr팜T E7ϙ8oe[@hna4Hn#GKRʤ!HtIww{o=?|<_pGF}`Nj{__!7> :в7/Mseam~T'V횚jLwZd? O,Xi,o }W|>ͰfzD0!8#\SGS1,md(7]1!w7T,BUs ɠ I L-i.1@z^RkTi@pC.8?Z%@; 5Rɞbv좶a,y%,FTe8djF>3Ejy6V'+X[OQl1b5f=ѓh1\EoĤTW36I'ґE97y9WֳWD? l-E Xկ]gŗuY,:/>p _uYtRm.wUqW7!g*py}wy[G kxlIv!eҵTEo[isihaݣXmfN*7J L\)gRr6nCKdEG`ɵj.."CF2ڏ)0t"XR|b9,M?$?fm;8vcV^.]k9xdܽ 1F"[kg4b)ZՒHohFiJ^8?k;lz[cZZ?=9r#ZVw"Ǖ c5C,*Q릇h'G }Pc<€q$O*LjQB_o|HrQ)(.gqJɇ~™n\]`SCYɏ~# zs~a'G}IsX`bbHY[B,{h-T}.EW1ruJgztP#=.7UAPڮ5iU4qNGϧlݲ$2kHdB;(G[vw\!E~рBPՁJ.ӱشwgX*`bC~+վj0F~eM&/ Aڧl:Ι~yPgաoy \ *lss$f_/6k ~CDSt◌e畁ɼVD3xml<& ]Hg5D5<'ʟ>&G %99[/^iΒ}|Y\˗J"r85N':r1}u!g%da&>QFl_2+l1}qO܈lY'\yHaa6ȋ Wv PʝTu@Zlc n_:O?yDsh8PaԙC) !7O$;]-:NLe6; 8CfS֤C xkORZK&Vپ@|G*3KMU9$ꮎA>-ߐ`4_)Y)~59IWaKs8Zɡ(I>[Z=A`NY_ !ѭ|iȝ9vdTZ$sdĭ#ѮפRs"K{6⍪Sa81 {tmr,( qZeÞֽP_5.d9^GQ;z̯|,b**bֶd7&Xyo#@P vVdkׄfKI9 h=1dӝ( ѡu҅NY:59 z"|Kh3gD"zƖE,jY,.韛ܒq%רr/R s=1j|w%:b>o#nІLqgɘR~8Q?A7nqA3٢r.өk֨ ƿuᔫojNOD;'>owHMW=V Tr~؛2WU, 8**:I;0tP1CWeHzͳST(}YʧJ;UK5`^X&{gم{ B:sk}-vq5H7_0,lƙ̉CReh\y.8%ϔ{{G Y-'G7co6{e_ӝ) <,f|p lYkA>"@&H `VZo~yubak2=‡M{$NXp_LYb /+xk\ǦontZS Gsg;3-lњ;qo|UFs OVRěOJ,E/x@5wb,NGNsTe;)\^"~f!"bm1iwٵ=+g׿GX_1&W2gWy&2Ŧ:2DM=n98ơ6>!gjڒZˊ&F]X rngs~<{:w&:yTqӣP!\@I1bV Ţ~p\=ݼ(&i *K.pnJB.RTaE+}';:Mp4Rog>  G8x%N oy(J;5=i%{EdY]?퓪rh 5-d-1IU˱4R +$FN9ֽe"$J(H`mZ-?crsy0v 1|HC ;IӆlH,OG`,֣Y'Ch1N{[.r|3UǗtѶ3܎y4eP<{2.9³&ᢋ6QQB A;t*=4:-_q(\*싩`[OS5" R^r%Wo􃱱΃ܗ*Xiw[p7ᔐMYL*s~/(Mqڋ x_I{OIGx^0_3srd X/w0eY8''nʩ[c(BnU)QkMŇ_6Ld,Xja+ٜ+M*,{'<58FjO}+ /ZKb[V]PIpU_ܱh¥FC'1y}Ec0`D܏(Ѽ-S2,aL^KLdi̓Fk2H޿u5Yp\9 ~ItNAòk#ZHtJ_IQ XM(]'S/m6B:9k9k҉++ 98(w|+AdԿE:8#2N6j.Ba%Tfݚz}c([=[&G.iLX-a5ttk_Av˺/8klY3`=kYs %jzTv gRy7ʟRw3 l$r w`[CԴA{)שXTlI@VWT!;[MOǴ'deU]a뽟V0.&\tݘ,;7;`pm-HoMw1N`u3q7msru! #80HBk4~w,E5咦aNnͬW3ތnGl|ԙCL&DMuesK)Iy4z8NPQzDƛ}w4o#`x(*FVk"4~929RS_0<r 1<>9A;30oܢZ@?!_u=7^ &CK-KCVDXG@ eK}2%xPv7'OZNI8h&7r'e pXKV,v#YlyCǃF[%JGA&'S3z-چz}5"wS-\J&H8][' #MLBm` >|Q,װ1x&q5?d)?z:[}tā͢endstream endobj 302 0 obj << /Type /Font /Subtype /Type1 /Encoding 698 0 R /FirstChar 2 /LastChar 255 /Widths 701 0 R /BaseFont /XLDEJF+SFTT1000 /FontDescriptor 300 0 R >> endobj 300 0 obj << /Ascent 611 /CapHeight 611 /Descent -222 /FontName /XLDEJF+SFTT1000 /ItalicAngle 0 /StemV 50 /XHeight 430 /FontBBox [-208 -360 1374 838] /Flags 4 /CharSet (/circumflex/exclam/quotedbl/numbersign/dollar/percent/quoteright/parenleft/parenright/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/I/K/L/M/N/O/P/Q/R/S/T/U/X/bracketleft/backslash/bracketright/asciicircum/underscore/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/braceright/asciitilde/guillemotleft.cyr/guillemotright.cyr/afii10017/afii10018/afii10019/afii10020/afii10021/afii10024/afii10025/afii10026/afii10028/afii10030/afii10031/afii10032/afii10033/afii10034/afii10035/afii10036/afii10037/afii10038/afii10039/afii10041/afii10047/afii10048/afii10049/afii10065/afii10066/afii10067/afii10068/afii10069/afii10070/afii10072/afii10073/afii10074/afii10075/afii10076/afii10077/afii10078/afii10079/afii10080/afii10081/afii10082/afii10083/afii10084/afii10085/afii10086/afii10087/afii10088/afii10089/afii10090/afii10091/afii10092/afii10093/afii10094/afii10095/afii10096/afii10097) /FontFile 301 0 R >> endobj 701 0 obj [525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 525 525 525 525 0 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 0 525 525 525 525 525 525 525 525 525 525 525 0 0 525 0 0 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 525 525 525 525 525 525 0 525 525 525 0 525 0 525 525 525 525 525 525 525 525 525 525 0 525 0 0 0 0 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] endobj 298 0 obj << /Length1 727 /Length2 23307 /Length3 532 /Length 23961 /Filter /FlateDecode >> stream xlc( -}۶m۶m۶m۶o۶m۶̼Q'#O̊*Q;[ge{ZzN|%QAuFzz|zZ&H!Gg ;[agN|5c|%{|F $BvfFZ[X8Y۹Zs::Sdblnojam/$'!!+O.&/fbkh`/bhma/madbdBojo_hMbv62"r"BtB:;q612tt g_?-$3-$ݿt5gO9 )MLAX[ؘ ػ888 Y㋸;m`ca? g5GA,D-M-W3~?gv?i[#;c [3|%5p4_iy/chᎯEO#_KܽhiXX99Y|_t\Ml-?9Aq[VUPP0Nj!X ]c>(cA]J<4ę@LNE`Ul(ׇbF;glSN1g^H: 1Dwį->يQ!fj@PUϙ ڃ%3/? ?x2@d dhϞ. ߕ[R #e!H_~lL'Ƥ?*]='PB=KЖt;\!ڑr/`p S025 IaJ(uge:DT\c1W(3K6nS{rVZ$cb@xB-5_k1!,;/`P1Ӊ*41T<::ݡ~Z/;嗀Mf7Id wI]}A;1!k_ol\[ܳ5*CiNueB)) -*=SQz!ޗl+0Qb>|v ËV՚j ܊u]>tQ]{|p-5@(L Z׳+a<" Ne}KZ>J=a%Xt@ƹv£ 9$i>;%sdAI|z~" ;ՖenE1F!> vӎ|mgiW{8T㐰[6NEjU՞_|N͡]SMuEP ;gI jݽ=˄꣄c=1LIZ j]DnrYj3F_ʂ=:%' $=g)Tawd!2?uEyH/B_\\}CChLx[M#ZܓG)X{ȦR2r(mKA8DLM%w0y>q] tהK@J<.0.]Wbqq|SA"|(N.2m0x8K|V9|֯;>%'7P-᳒PoE/+ٽ K}R.sܶ*DLw ͉cq9oZKq8'~RZ2 Pϻ!$d[ J+Go&@@o1]B ޶k}pm^A~RiW,%Wˉ>'[ٹ%ϳ4J=ڜtZI(eс^v`Іڽffs<86:ܯlLy!^WM -ܘ,ѯa H/E, g`ʖea߷BbtdO=ܼ#npa\OY"7 nykJwFq`݃jrdZ}6e$"0ռ*->| , g߳~9`gkc8VCh͓Hjhv=Z=D~ Vd? r&:,:!@`Go>Ӻ~Mq +PUA{TҶ|lq"i^'[7OKmmbpYfGpv%A)5@kVdP SHϫE< $bt r=]'.X&|eՏ :!JV֢ln yu&5Oɭxkf.|"ӾC$vϭ<(aq~ Z  kXiEK9ZTؕ]e:_qOK?2?Ns7wQDȝ|]ʍWt_^9qT:S)MUG݄H{ߑQOޟ0DV3lpߒ7aWq"eҰ6 =FUT &?/tNc#SUYu_H\Y_p3Kii @2Gz2E#2RռJ Hw-hc >n5K-_e\N5``7Lm6#6`CK|БMlFIm;б厚w1>\ O 4j1c/8G"x9˨@-1C{Cv3#^)eaD*/G]AsmXOfm-'"߾QR`/nH׀aem1O_BFLcT[*$*.4|-`z$46ej'xP6HN0΅K{ѥsGlݐšNsی +'$#_F+/6yՀ`j"e%EJfHI!H\5تJi|NcKkyCtiDF8]9 *pO)oA.#ȭ:a]2 BBn`\B8gt'nSF[oWMb'w/Z [uXSHԹ2.$M{Z^ rZ,yYPMF'驲ODDp=(d1J֮xz"9*SAjuGϊ#Il&;!gr7'w @JрFޠ2ǂ#nj;a@*z.HЂ; +X 4us{ T}% Ga1oUcuZdup9 >8Ya'x̦} uZ4~1q^`6cQQkj ~ m̙|sK/_U7N eO5Zb;Gt,8_EMbZSu8&t9ߵ4+nuFymlPd[%#%i5%-T׍T'c GdgG do8sx&aT'GΪv_Q+ӋtȇJB *> O3Bxq۷?&.v͆5UpRL1ct3ۦJB t=,`cs $yCpjW^ 2ǻpx dirѽ[{l["Y܃p#U9&;e痓cw~`q+$(ƻPl遤7;Os;ӫOk5dxN6+[҇mV,)l ju=rQcSTtD5D, P8qQ _)t$>]|?qgzy\D́4f[ үCm2PU +,tY vKx&RHX|+Oy'võOe> ˀJ(*Z]NюlKoAQBFwR c*w]dfFT(fۦmR tWR֕gej5r)/x~(ۦAK۳‰\ڻ-&MF'cΘ L"&Jwoےl}.x4֒Y^ŠN!<>jw([驰Pī7j0} 6oXqdPGk"m혺_Rp!^+e>> 2RD{VY$]n`R jX}!xNǮөMp^tN[`!-VMCU(18;Z}6AR|Ek@Fxwbǡ˧(&qO*Qs55_"OadQQ<7to;9yW򍧿^WR?KOD3-p $?4>(5QZ =Q>l<B #d˿Ug3P5?Lϖ@R$=DeOTsk+t X@B{Qm^ ݆3* sr2mz)6]}`1||]X]0[ǯ*D,7R.ybB /c9ֱEt+R]`٣-F*,5bbfe`>r.d,;XOTKm H% =Y'dZH0{Ǿ!A77jVُ"> Aj^`_d450%w$.E˧y%WO _\Srai<ŬO/ ͧmϥF)F0ɠ[J o(=ΆA%peOH'0>o (}A,?=fNLVXoG"P$"1iKZ?_#R-qK1,HB#d Cx5F p7ŷ撣o3ܷPKu3/QnStWo33;0ץ W,(jNΩDO廝T&AYTEvV`q d#I d([9d:앟8>oeЉm>h)osv2vvNR#/Aɋ|dUJE4'֘'y].PJ9ZxzӰ>վ(~~ R\0 1XԸ>wܔ5&.y[d\o_]6R|x2vomN\ M1PJ^n(vMHKc2On'LӚH¥[,%%B drG6-S!AjCĴ1Gf'/hҺc_}m~KI3ħV3'X4\7e$ {pA ˯Yh"c>(VAsB ߓa*_OԫEnkaAra^e2qixPl繫;;#Qql>JPGG0S:Ҩ0X0rB1~Cv&J `{5^҉Oi/ t6z&US2C(BR!Z`/}-W9 ^V\ k$;p[ua#Mgm4, 'r`T5lM,̆?z9^64he=x'|ҘW~l[rR^޷@ Ui>!)>6Q(ᝣk3&$4ޱ$W`F)?F8BTVZu yR٨Npt*ͺnӤ|T|$V(Q̒LJ36G35QWAQdr$ٕ іWkw"Ki$zA;RNfͼtסD ;ظ.-Q=ZÑ)Y|2l *mܓUr"=wHZ(v|*I ZdXl*gݏ!?- D_!A+{m2m3,5vHH~f3p;")dLg@ߡvxbmc)ͺ <ϨJzoNmTCѐk.p)12\u|%aJ!TyPd.kW^B"jfflʠ9<*kV0'u<=kbp8v ȥ`V|TMmSw"9 t3x3u^AJyɉ}:[P!9Kço'8oZs0M7|j wjdx/кhb-GV 7L䥜neJ0d`ZXSD3GgHuE`.kbpJܑ3mg݅./yY='n&,т+C$Iӱk+!Zwd*9> 4IPWYjHlP|# ™r a=$%'?iz&ί=)j̥=bM#"}Sl=ؖsRh D1iĒz H}}} u,7FDrp7[3Woy#nL75'V6bl>k]ݿ ppjZ^ihogoqhRBWds:H൘;gWcT^!ko֤ Tnv ~hMkO @fbg\*J"a@̑fM`.<%Β?"^S hƠgLG%wlz6"X!?߄bkiJ{V9=T?3XN.Ҿ +GWLA .3l^R 71p=4`Tݖ ^wb4QgI;-hYc@r$&s[Ґ^"\fZbe=G[~ה@@GęCH}>dFE񬬮MϘ֜5=eG.@j/(dKV]|"@%g^t`.{.y.Nk-l{qQMLUWM7.IRI.(Am_IgSr?]AĢlw A8WXa- hiz,6OaDdž(b;pf-٥]n\e J(-Ku돗^Y 6JcpH2Wft^3 nÛݪ#I!i='xgm<2e/r H0 Js  c0d: ffV|S8eD #t{AE3v'_Vz .,mÈZjA_աDv> ['o&%>@T ;XIzL"Kq$=Ex^f 8=|} oV0&cMisaC籄P~G5) +kg@E%x[.RCT Z˛.V).7,Z*Aok;n ֪G;aU{$jԡ(&# ܖh}dgs%ϸCӭ'" -l:A^p#eg/73Fuv>~`[]S. qkjR$p pp,~Ry7Y^R#sQHrsk+.= b=*4 hd9U`Ct#yH1OWʩJ݈o5GtZX "EǞ;}Y=Ƈ츷dÔ,rRHCI:I STDYZ NԻp0QR'!BbZ'5sE奀q) az hzWzȩmڠg)~~qbZ+g=* \Zgq\ [IҢ&/Xw6I"YH^eΨxxQT>Ea͜ܒu4Y ،iC1&>/#/ٷv[bisKsz!a bɖsw{7W΋S}qB74S>e++qMX׸d!-:Q!ͺHRzhTz ƉhGνe$F/66#g\gɘRH쳃wӾn@3!~mQ#ZZ{:^x&dLBsV#iuUFexB`gOvS N)q=iDԦOTTiX!)P]ӻ9|Y-ۀ/s*T Q 7ħ]WDf~!;Wɚ>1DH_4/U5gbm^#ޭ+"5>;U: V[ JӉ١>;Ooi-hX(`[XJޯ^yؼ۠3lH˶vpHмٯAk  A`XW.^RrJ-3ޫ7Dv@Șe]D2n: ¦_7#śFdZIqsQ"N-'xPj֣*P ^tِehtUc0Z^-3elZ;k L7s&܎ai˙dxW9HW;D|[>qMW 4AsW|"NwTEf Dvj@nQoޤ\ǐrj?ri{mI= F.YL# HoaUR%%pʪ N Ũ>%lCdpqQ[p\ua֦Th9uᡁ:W8jBs6%\+t(zb}w!MI]j_WXb -|Gu?qA?*AU5~yaHtr%WGxvhgo?$_tL +D#VD<"5Չϗ̠t V\;r8gOI6#~$P8$cw ~pأ6'Kct"Bh{Մ 5m>"0TYN | #U`TBv^хl6/]E,fy!{nb8'[|P ZB2p"ĺ\R-SFPBhW]ʋh-㡤wf̬kסfb7$ccՑ#($ĖQT]$1 +W4s!ذ%:zmF7 1Po兟)^V4 nRNRbPtn1a}.r`~dLdM_L|C_DC9_J=+mǾUbvc1MVqY5D/~0:$r\~.s0`8Uu5 s*TY$dC8DiÍ%9 @_Ӓы!T ẘmx yN# 9NvNmY= ]l=cS/"5KVLv0~vؽENUe׊Q*E"#YTLz jn/KI@(WMz% %4 [PxD.DF#G }.9l 9E 7vW[_ؑOs-? #4(Q`6RGSTcQ\rI-EBi Y)Q`~a x{= Ye-PQnN|{Ta.8JD-˃,^K<@>=;_}_/EXdlJ7YwK )S]iP +^TP).iVLjI0`B^y|ˉ! s&TB[,O雬MM[^)4Fq~'ږr0oz^$Sq1M&NL"@Hod\njs $z6nјŸxvZ{Toa0 WBV>ėOY!LTrqGrZԁȫ^mqG݃&^]`<ϩQZ ^ݘL>~pb7L ipI6PҾ1n/==,+m޶*՗b}BwgHz@p.{)Fgh]=+DA@1nl!iey |n^R88VZV\6S Bhv7C(:Fp#:}H&:ǎAqDMs)ӌؿcU3Nq 9XS*TZ~j;A2z "/ADB^ t$1Z;43d殈x'cvTA# 6hި.Phe $bu߯\;aawi~ sg V,u>6@ȫbcl\rq8Շ 턎-ae H(= C7ؘ}a%(<'`?{ t[I^,ᢪ''=Kco. v7RbY:S[rݛh˦dشQRcP+nadWO6PUQE+) kU29\LI-iiܥUI|T*x41^ƸjK|d[}Mڎ[DJڨ+Iwr`sc. <B5*udClm!tK5dq 1¼1Ӑlt4HAu5M&cQ9FY }bz};쏛iy&rv1 Y=|+N ݽ4ili~$"A?KY9fBvT$qP2C<ڡ}x|DjP(`Mm07{:A&$K BףH'8U@6 g]iY7|mBbg3b* z~BqeN&㞓;"2[7 ugԂ!qV~h [w緱2ԝC;V͗.hLܝx/'B/э.[">eAr -7DfƆTԪ1IiԭU""b1* 㡷㹣VcY7> ʼHUigPC 88D_~nsiV *`ڜ "nm1h!s3YilQ0 2YЙ3/+Ki$f՗G!/W>zN3Hq>sRϒݾy=8(}mܳlS,}-+N4 R7̯w[sZ?ᆴXUKn =,E-a5=,@3jT.qCn+ 8f;teQ<-%SA,G"q0Q~fDYch39TZDf@IӺxdMc79 v|SثzٻUv,?U q)Ab꥞bcC7 MmF{s㐂](vT8BrȰrT1ϼ ^؂S6d{l~, pYw~Ut@[~ R{3i׃pquDxl jήD,F)u sv*wK1wt )/٫C.+uzZ9 eQjle+1466+X3Tx7 w85%dv U6:Kݡ+=OHu1K!b}vm*X&8 tq/뿗wOb$ɽ nKſxrd}d0oDPҭwȢ(S\@Xfl";#H]Mp=&_ʟÒWUn-sا3O{V 0P8dlNޓm7v=;vMvMmlcq{ xOz7`cMZK>d>[5Z|eBͧ[cD@,u.UOCM!iS>{yGfm } ]*B VxUfW,ͳnW2ɛ C `ety2Zi[}SD pcx|b^JA^!5ǣE>mH\!kP0]&rFKbAsپsѵd1dٷ4g5&wKXܕp[ۉD!^i?\ Pm)d1f7٠A ƔpRРJDz]60 W9D =ZsrTSяx˅q_kvƟ°:]$DyjF-V_K`9y7sWU|}s>9;Lnw lxckQ*k:U6I]6æxce&(gnd;r$SsC=<{Z$eZn_&N'7{`ǗzXp@>4eWgHs[a}G-B29'g.S\)K>Y7=~/GB=QV]̌}҈a|?mC*cK2wC?y;ԅMEVX/[MoUt/7ܾ&3v^@l2|W]TiSw3GÀgd漹clL`5 f 1^⮯Nչ#D,2 < ,+݃d$eaǵ-%#ߵ;C̕yyH@Du0Q̘vQ&+3&i7"jMP+|i☍{<ETΖgaDcwv#t7Rc:\1S(DU׳潈[-Kc*>.hm42IYK`xŒ %#WcX0DLe,G'3.!2 dZӟV]LBYÁĴ7XFt>[=!  IбύfFQr:rWe@Iت%1|^~适l2UgJ7jŲ>x>v6`qo}?)ΥOv#JWЌcEa|}˽j8 S]u/HFVpv+ma/}im7ǯ#"-)1d<<o?f<;Ej׉L|NUh~,"bo캺;aHEB%forTê3y>k/Ws4t\ Cp <Ӗ9z1wL#φ4h@#毷lSyl~"\'/3T!@hXE!\01-!lU#]mjs,~=1" {g9d,t"t% 4Ān,&b`wyM;9.?&k>'8M 70/]өxCݻ+H2=,6 p۫' H*c{AZ=|v~fw/RSq3MT E?};V.&.;C! .)NKv&kBN~I[##ZR;uyDs۩NY0 KH 8/s,~ !=5c[Sq W {#Y /JV_XVЖ?%c?oSWy&=1**!սo[-*Wv!);4wi낟>[3?#10)Ce-?u MnhaKڲݓ+k-ס y9gCz.JovmH"zΤ2Y6״v_5}8Lq9SЎ]3ʻߤ]v˦1.K*]JgN-\ `E}m&e:IxY>0KOJ2 /lmQ,'YD̳TPspgb!_^U]ӱ+ȫIe?ԂDp ^5rqY, iſU 7(՞mP,%nf:4R! N/L~L`v>"!T#I![VCvI {"?[MScFK_S;䷟Xӹ; 8L—>Qo?&n􊎊tb TeiL]  VqgK*Νy嶊8L*rB:?wT4gR11q:ȾpZ} ̟)zKe!0X%|t|c+h/X #q3^H*A-hoښQLu3bG53AVa\q]3^cLz̦ U \P-2z2glgt/N8|P j*I*AMRgi>b3&C ñ_|/d G=!d")+P 7!, d`P8ʦq0P5Q/0_$%DN+d_;Եw輂>97 | .`DhQڟI:\rX]T1,?65\ajӚ@c`+$Cl,O_6$_X|-vlEwN֛%$Y@#E'ϦwY=t`R W}J㗌j i!p$gZ"G+? "քAO*sBdYa&smctZշ hSTrdU̍xDF8/|X !]>Z=S`𸊩OyiuZӒ%e0;Kz~ݳ f?-}n1$NåD)q<8V Ƨ&KeB?n z@AA B yap@Iŵlը~qhdR܉B97uu [X< 8KO"27B1ѯd 0;`v`t{fY o%m3h߸h%\*uBLК!4ב1@RxLx@wTP*sP?$ q߳OYklBF^l*a[fAiKA(r0d_&P["5#}ޔ ^ܸXp1.Q(Q2dIX/Z]M #9# 3_[^2BgT#%l{)<"LthcȆFO=/Pw:xd\7DǬD:A?_*6n >4Ǡ8 cئl-Rd4z4 #}ATd|Zwj"Pثx9'naaDȌZ)=%)4A2r_{19W:\>?!\)YK4ǃ1dghe̓*eK' ?۴CnJqńTgd3BЀ r{6o7NV-5' a)B+# /go'+6M U+HLFӔ*>_ssd0=%'ZG~~y۸n&!fTVllfd*z]cVdjWŹ.6<#OAVVe1\[~N4*ًE⣾d'x*oad2\4͇QlKoƅ9@p?H\i%Ӯ'/&|L8fI]R@?Gu+$zߑIvf ܏˹7כ u!"f!FwYj%X,$Si#NO^^0/@i:[cb оY_Qަx|\Au>tЛ '0gYX1Kvd9 8tՉFP2V޺gZI٣ uX4]HZcJaS]X?d=>eYuyY֎|wS2t\os$1+FH6UV> (Ԕ~;fR٤y,OB |xtYLQ f")O C^G:щlC&x\ǹ00NƆ' ^e{*zI(P G23@JCͰ[vkH!iӗ 2L3tUR/g1^/ :%oEAQsCX|,r|}QuC,ʩXW"wqKD(quY:s8 8YI"nD}:,J<|JD>x@Cfz!yS/k(\+t"ߜ&VF#GqN qaH;>5$C5bK%+ehsjTY8\n^`^]u+Fƞ(A!>a3dbf& B% EL:HAlӗՠy$~OQp˞kW'q I0ewA'*^K+CR qC2|hi1k9P׈m|/%$d֜S̮tTc.@B ]vhF +Sڝ'V9Nk؀V-4P qrEjS'ոEfoN2uK,Z4/H SʷiD-4|MXxL.9負~6|/7dV{WKRmئqf&tKkŞ>,'k~C K4Tb܉X'uCZܕFC5fT8o_"uC%`#nx1K^4IX"k}AUb~Q=Ge3 JN&endstream endobj 299 0 obj << /Type /Font /Subtype /Type1 /Encoding 698 0 R /FirstChar 46 /LastChar 255 /Widths 702 0 R /BaseFont /UMLQNI+SFBX1200 /FontDescriptor 297 0 R >> endobj 297 0 obj << /Ascent 694 /CapHeight 686 /Descent -194 /FontName /UMLQNI+SFBX1200 /ItalicAngle 0 /StemV 50 /XHeight 444 /FontBBox [-223 -316 1694 925] /Flags 4 /CharSet (/period/A/D/E/I/N/S/T/a/e/i/k/l/n/r/t/w/x/afii10019/afii10021/afii10024/afii10025/afii10026/afii10028/afii10030/afii10032/afii10033/afii10034/afii10035/afii10036/afii10038/afii10065/afii10066/afii10067/afii10068/afii10069/afii10070/afii10072/afii10073/afii10074/afii10075/afii10076/afii10077/afii10078/afii10079/afii10080/afii10081/afii10082/afii10083/afii10084/afii10085/afii10086/afii10087/afii10089/afii10090/afii10092/afii10093/afii10094/afii10096/afii10097) /FontFile 298 0 R >> endobj 702 0 obj [312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 849 0 0 862 738 0 0 0 419 0 0 0 0 879 0 0 0 0 625 782 0 0 0 0 0 0 0 0 0 0 0 0 547 0 0 0 513 0 0 0 312 0 594 312 0 625 0 0 0 459 0 437 0 0 812 594 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 800 0 881 0 1342 687 881 0 881 0 1067 0 845 881 768 812 782 0 937 0 0 0 0 0 0 0 0 0 0 0 547 562 562 485 625 513 937 500 625 625 625 625 750 625 562 625 625 500 532 594 875 594 0 625 921 0 672 812 562 0 844 594 ] endobj 293 0 obj << /Length1 1403 /Length2 6051 /Length3 544 /Length 7045 /Filter /FlateDecode >> stream xyuPm/%*-䃀tww7Rº,.AI(H7ҡ4H( ")" gΙ9gw3Ww_y8X+; C5 箰 $$* $$0aܠAP U4\>`aQ@XBFXRFH;0@_A" U$ sr} pAaiiI2A@qq!`7b|%dp$Ia u~Q pj FC "rPF+bV,?)}fF%;edIt%Pw{7Quo)lsbND5BqU OHxLGZ4޿ថϾ7>$g-L* D2p [o{~tԢfS?3":0uE$Ġ1 ȏc&tܚ'MtDzY!aB q`ԩ"eXsZR^mI/*e#۶L:^* Uָ;qk8%+N7h*mYk0 rBυw|*کb\T/hDSXgeg̒)mR8!}̹]r4rC3H@4Y!UjQPd+3L 510}+"Ml;Ln&ʮcL+ VΤ rt w*z R'^M?9PyR*1EkmI..rc5\;RRmf."pZlD@:c 1~JUM%J]r|K&t%)஁'*yI;Ne]%[|xjV}07U?¬{k$9{72$ >1๎>U4~&;[x;=(si^iޱꌳadxC5Ӝ"qFqEQgrQy/+K=+=zޫ0!9؛e;WlQT7KuXrIEB{ie]ԪǐUf*}Zy;a7ѱiW"& ER2:JB٢^?0[LSU":/V_Pqw0xa-ݙΦi?Q{]=LBc !]K,@O/Q4l! Cvɹ[74ԭZ` xt6!s)9&$3NQ$P&}nkv7v0~=YBZnVƽf Xzya Z}7P!Cg\'o"eaHY泬_hl*N.?>ۙCܝ$DRk+ԃU)3_@]. =g&5(K̵}qn{@ӱP՞x"ceIuU?m KP>⭽sF :<' Wlߝ>~Hxn@?z 0 *~U7 iFi P69l6|Ǝas3襶 u4S}CK۴yK` d@m=|JJo2-t]v}Ξ9Q؂i><8yW(Wn%?t"tE<]k9H~e3dēa/ s+~Bg`rVId;V}{c xbM G6FԖ%ld< ,^uOk5 &[H#h)X^\`[ܴbBTN~5CuTIEE wNT[_fSM1we S? b;Y^oI;5 ʔGޣҬ%ԧX!ڷ#e&:GxO֮A8fb˩:Y433%JR&ʜ$ԾDEt+#l)y0{lҾ&C4S¹O9e Tx ƢBOn"rk_9s(yrэ'~^c^fbެӃ"QOn4: a.I22 KT(NP~_zQ}o.$pWu_ޏA?Or|ضyX>Tm?oIozo}oڽ+U\vJ }8??3A?iAhk{ߚ'ޥ j˸~:'2BɃlkL-NJN7`]urҷm+/nJU0g_%-!5V(Qtp|y8&tw=υ^ݲ/W*zUySv#@vu΁rpA1Uo#<>,d^tbce|qM҆/7R~*}@\蛊( |r?&TKf0bQ¸[#=6}]2qڗq`}##e>e1"l:QtmW35n5kIw uG+}c}[ݖ|nBHD~Jfo]JqU[,@#:kIzK:G%jB\ 84&;?0y+e(ɠWVqzHм6#~ ĂaODkyײrAsIJY'~y]J)ڵs' 65x YgS cU} ڌCRNc},r%. H!=_&A?]H8zҭV l0f6 ?!`X"*XH뎖ܨ94ŝ6O }A V͓:IW+Y:mAEV@duX{=H`JKC Il;66Zz`oJ(hca No$NHjp˛xB \U֭txBeta nvzPoI5IY7j2׽<oA1}%UfWYL4gb T h/BJADz=O!\Ui[=c%[U66fGMCcel-KlXx_/I7=Ѫh jc9* +1}X޺&σLlⶣ Q`% &W=l1xYlzM2ҕzcjѰ6"gښ_].!khg̓GG|j?F=ڬGkb 9,O5(gt;)D|VjSӁ Sd6(TinDtYK+g]{s 1e]X+#Ps1΍K !dXޔ;wVrgnETQF;Ô8J{'l ?ފ&~q|&Þl3~]i(hrhs20\-)s ]bYeȨv^>%cVo>EE`/jЕܭga9sZjpD%qjO֬bcIQM|sRn+Ju Эt:ltǗHPhhI{O4cb~Gt>R%[4^1ywZL1a'ãBXJ&.!_iJKs\LfxjсQuj4G rͧ&ѹCFO.C/N/L")[/^ɂ>7i*oܜ.2xKJ)hHbԐ3inL=&I}Kn2qL*5<^`vtքgK3Hܘ0γQ&Z]Q&#QY*ԝR+[ :F[:z RZr5=dsySqDv^Φ@b|r!ͽI)޹=>ķD_\8S{  H rdY63;'|󫯇ge+E-EFF$tëa=,1k"M*_*tZeɄV[֝%?}PDK#{7Bbk*H|6<A_ȹ8=wBW̌쵄3 ApvC;1w f0 {Ln*Dvs^k,'u0SCihAh FP u%Mendstream endobj 294 0 obj << /Type /Font /Subtype /Type1 /Encoding 703 0 R /FirstChar 15 /LastChar 15 /Widths 704 0 R /BaseFont /HFEOCQ+CMSY10 /FontDescriptor 292 0 R >> endobj 292 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 /FontName /HFEOCQ+CMSY10 /ItalicAngle -14.04 /StemV 40 /XHeight 431 /FontBBox [-29 -960 1116 775] /Flags 4 /CharSet (/bullet) /FontFile 293 0 R >> endobj 704 0 obj [500 ] endobj 703 0 obj << /Type /Encoding /Differences [ 0 /.notdef 15/bullet 16/.notdef] >> endobj 286 0 obj << /Length1 726 /Length2 28851 /Length3 532 /Length 29477 /Filter /FlateDecode >> stream xlcpn϶=vdǶm۶mvc۶mNvvls[ebtgUHE ,"`c!%v25t1t1ML&FR ˜A@&JG eSS) ,))'Sڙ:\l,2ƦvΦ3{'89?̜m*br*Qaza @Fv.\M],U 忖-Z:yǢadXL-`=?aWIC~4v35P::dML.T?0C[K_C.hgt,t ,[:Yz(X#?B;nݑ55t$Ͼxu)߫KIP 373(N+Z ;ݿ}e ],= tj=c/JHÛ@`dadp23ƮNNv.VRw7zlsXUWSR2h#[[ŹWwß 4ݿړo!67;!]y-UiWXw mk,vy{s#Hj%+VʱY1Ơsi7a}NR%Si"ڈ`$eX_9"Q@CB"fAZei55~):PTd\Gkp+hmRhuwK3?F؃Jz6t5eHW^ecٕ]^lԳ|5-iGj3j>& ߪ+m ǵVdEeW_t[ 1;v_lPu?zJBu\ʷ.3sIrNߑʈ.(+C@E2 KfaIJmYȏt{r\sKX$7ՅKn:d(o%SU@.-:n/~mcwN#.LA~f"]rJ~\0%xr׬u8Q 1M^ϴ3%,0Js;x:{d9:A398n[m;Ƣzd5bvtKVecmdYf&؋0 )E[LEz6rTYJ }~!).\2>q&6U̡_d'5p0F}Yw Y"N7/ SCZ@DËMNwBi-Zy_d,,mP;<E&/[Y9MHDK=9g,e g6<ˉE-t{tS !I% Bc֞l IY}OM&'njh}N?ŃzX(7:Fc{۫^bp$ƯAXSc&-t- P`^a=aƲ{ݍ8Fb'q"xOŻگ F# ΐԷN>Odlq<¶WjiT㴈&lwh!<~d-&*S|N=)A=0q{d +%W2͠!T`J8^nAٳ]k)nq$mcN*ҒMxf5N]͐?@I!:__if/BޗTNΞ}QA(GCâ@1ӻ 0r92*ûd3W5Q8$Y`a00"n`~V@\,9&Zo}:sD6j15,S*v.r vQl"~7ְ)q?ʈq :OH]D|}Qt#i`("RT=nR[`X|=p:Ekp(^^_ Xx.̽M6A^5&%Q4Gͪa^(ZRE#5^è>5 !+Fx$ofY.Z5s1IPK~MV#M]*۝VC.x,cܡ>H76Y2c,sKZyt})eJFM+:_6%lNCNЪ{Oǡj/H^ܦ5z$.kgtZO(|`>[h+ה{S?\'$dOi*)^mGij-O^vl~|Ғ`5H<|B):N1e8 y'(X 8;M 3ؖc3I}7\־#C`>u e>&t=pICzǦVޞ"rcRMť%r޹HehЊE\e:蛅ۀDpI1 ؍;>N;MFي$;^ ,R\nnUN3yQ CZzs7͆pv8iѧ+.ifDA/afl fk. 1WVfE,x/x[l7LkO} .lαDfu8<|d,Sǒ3׷ܱ$v>[a#G2AOJ8, ILL|)MYI:.!|5 r!0~m'ej`tl(r=24l($=i-2\E^ (aMdwµ=YDkL,eN t3Bd9P`I5 hzͪ[eЦ t)՗irNjan)u˄wD6'JnrOްa qb /Av'ohdq,.[7Q,-^" 'a CFWb4c1}|~Lmiy :lniZ5ԂD}>L2cSy־ؖK0"S{a Cmu؝W{lS|T>}f%ƿ+QK !gXθٯɟ2`FchWnuwv4r΋u-qU@5sZӹ2,&/>frE1j'"$;PF3;yIpO:O H wBP_dUx#n)"l!"e&a]Fꕹ(Ӱ,G7ؐ%r<}+ٚ8vHe>ͱnGk{W8VaI$g!$&e}W>ů籵3*ΈH`W/#Y-'_4fҠ1/8Mt@ksfssz%G@> xb>qŹ$:˞auM2KM3T43HV(v:n!lo]^@Qhh 컯|v!įwqM_?ڊ&XMm!Ad=Բ??|+ 1ڄH('6$g-uz5سL]w` ?w)zaw|IZt9oBt)/ +]Go[yqyFSĒDtgɸ̘d[Ԏ`t؝Gp:d`1XEgxgQC74/IRujD2LL< t'vkjrʁނs$ziz yJuvt +ф Ux\uˀJ^<`UwtJn 9r{"O7Cq06uۄ/OWƆOGE7#74}Cmz#ϴI? *)җѦkUKp[Q!F:/Pem}"(U씵k|\-Ԅ\JWr[Lwk#m͵7Ach@eBm! XZ ,Q[T_F~rD҆BEL7:# pUiaĥY֛5g)#stH+~#M;,?-űZWZNק*eЂ0BaHlY05]$̔SQ:CEn6ieH61tAӿ)̓C'.gw!J<ᘪFلd6bqq<" Q[-Ni[݆Q$2Ȋ]x*MD̠rxD|5x6+dﲘ G* ¹/}Kh{H(JjEmO.u7 [#~@'r:{w!b5S:귪1h!EdK7 ) >n;+~]^E6AFE;2F&r蝵-xXNZ[ viym! ׶_Jx `#OD7a:u_Bv|dj &/$%x]! >^a:Ls.樒B C1I`eTLs1tk:CB4#<*tZr 9)*ozN;I+cUL`2VFewt|u5(i<|^"%-́aRo`݂PX[s`6m$p7ULPr1DglC$m#Vn:7xc >S Qm`@Wz|ѯA]TUX-07)^YCO 8ݯFy E =}nL^hqLlз} dvU⌏vy<8S);xWd"赼gɭݼBJB<>&C,LCRZk@,|a .ʚ}Y1"R&v o>i?YfNk٠SQ'D PR׵TX֊5i t 10&̢jSCY,Å7]c_Alܜں]yܼIsyW]j. RTn"EHS(>m=O JPDDs@%IcdtY%V5^Pb8-hIqMf-(ajuop>1*9N ϘZ$NS"=7HZnGuֻ%9D^L?1?s+ÙVs24h =d]7&8,n8q'|xe {pDW:fUϓH3/wjαd0op/DcG[m+޲xVFMfco=uNeBT{6b.J)t󉄡_Zw}APZCp-Mv!cWkΡ=N|vT8Anѝ[<]4,HXFD|ͯ$RQN14!,e]!idbaJ{Ą䁄+9^,VtC7̗y.Kd;Dc;TGʲL)BK= jZKSdመNqݮMJR+~!Rƭiy81WD\v2k/1RsY!5/5؊dAi+p.Xs-Ez<>%@4El[~c8mVP)|At| '`FHuVѝ }qj7{b剋)1ZRi,Kcyn=Pk} m"d^h!~YN@B(;Li:'}1 ;Ls'˚%v*,6][,m/o:.07n9-3F)FT1! ^s(0knV5zFY_>0s!"ȡN3(*+.ߩ'.w {"ٟ~l9 Lسb/!/]1>(՜ːDׂ6@=rhe\爛:[QpmOI.6Ѹ'iaDO^#i*#+!mSR$J4X "#7I;&̣V@^@8N-v񂕹oFV vXK"ƌ;_W{h;fHRJOvW$ש 41t85´랸с٤~Vp9D I񈆲OΔ4w;zofbSO EJ̱rwy&olugԕ,;`=^"Qvؖ$4>F@i4eДPuFix/&=׷eޱpxljH>=K_āx ]ӛo8Cf: ᶚ]ZR)fvN|+LV%z;w/1Ykʅ A%rN+5ܬ )cǯl5'3駎QCĵ{6|.UgDs1~4KC#tl7@z4;Ј@3K4 -vժhnFr^3C,4R0cPRaāA]a\g. Ȫk,J)-!rt^̒EX[783_#{1 Ś-: ÇĨ#7n>-,Xc EtE4x'38k6R˞tDbbYr~4c8͕z8/YxUtv-Hkn Czz~'̕}Xg*H)i!%dVF.jBF>zu{ƨ;+ a3RFaKlǫs{GbJ!I5CvylGv;FͤrQ9+Pߩ17 U\@[`b>FT+BV5j)?ۣ6JuPxD>?Eˣ`cu* :AM Kf_Z?aH.mHysn:]}vx]KqɗTbE$jIj6]MX$oj)-'$$Fy^j0v~:ʼn%ΙuVjbvͣ%Zn"*q: @>#HHEe*VlCIF|AT U*#, 4 r_Ui FbCDo 2fU ׾:yuۋhaeirb?P]y$UFuݜo޷8pw&ҵOhuS /1i-i+UsF1^> x/X& mu_]cӱn*7. A(q˹s;Au $N=KM((Zwa?D8, 8EESYni1o@/w.v ցX 8 .dWK)QZh{s!Skʣ9iK҆Iݎ'qm8k> ~w̠ ^}B)WCy[v9܉qF1p7z6Z3?#zC;_o Pzt] 4W'hXԹQ5dvJrg9GU53nbO4cXq̝e,u *#0uWkZJc!̚3}|t5cH]Wrjk L CŊyrYa6 C!,z%I.Csk]jNG{ }XdA^4'-L*o?-3kkD y l" +tC!||gdX& d#8X QCT?FpW4B%O\ {dYS!<ߍl$IG: J.u|ytkZZs _7;$Km/'6U4ط\(6yQ1_z$s$$ !=9!Epq&^ @Dg&ɿ$kpD IIΆlw`^--/"R Y+V<቏Vr<0s ʳjkZe5Onnn֣MtN23l\*=T*qZ:k¹—aT)}f͌iL`JoMqg\?ZrE[G)DʹdlR~VV&hA(QN"8߉pt^FJ@;ۇ/HemPy0>~JXSǛke<*ro]gj86p:777s(Yg}s83xEs2r[`+fz'9ma&)Z`|i?sį͛"$ӑS5  S2/=٫3 T?aJOk%[LEpd?o&eH80>EGD ~,|=Qߨe,Z L#P VzـGF/ F*y9&Qk|L}_dOz@F{S0-sb~@k Vg}#;JK"aĿ$Zs\3T6cP),π !8U5 lUx[(/U/xFD!3W#ruo a+Ym<񚒽w׽kEvΎAqDbpyhnB~^hЈBh\8(+!4Y܈b\6wQ8 D{NAF?F{6ON Crrʾ4?1t{yuupR+%h!Z)RQt^ 3bӲN %S:}6~u-٦0n)Y2QHno ?5f[B6^ c `@ ٳ]h͍ӫiLq^VR`&@EQz(۔VYe i$"yOliPe"!ܚ T&ܰUzihTE |W;{+>N/bia K )t27x.t8I01tᔯgI8n8J࠻EU";(] H ݾoM??\UL@1RʊmuɌaIkaJ,YPh;>SL0G ?MYl!,X'3Q'R Z|I%a|ȱKN~{W?+ؓDJ܅3@cjVԠ!Ka˄yJf~jMaqCaibBdR>aX4;Bs)>GjwL> /Pq"T<&ől]GFрyG~^+Q~mnŞ?.6a\9CS3 sƣIxu9yG@as7WJӡ{IkœFlTӾ ࡟ 4f<;(TU[S2&T+28nw3Go#G*- )]<߭;ô"&^D;1Y,KJܼhTQc*_B?T[|F<Ǣ+F)=8{3\^4 XCm5R~ȷj<_D(d){Aua2o:^Y6O9$-HkoRc\]*.#(.' ;ĕԛ+}F(t˦7mcH*;.0dJOh6zc`S * lwz5HeE|Gʁ*fQl ke.H|{:mîϦ*麟\~:H 5 R? V) n%Ne=pi/Z:5؛=irW9#c q!Qxs$Z3%9A[#B>bOBm. |E)91 8$'! cs+8:̱o [ mnWU*J(3 xrpwYcc Y]}a:g V -zm!ݸU{9lՙ2VRWt˼nm6fJLp.Mu5_x0?z7)` bO_gd~K]|@d Z#0>pc%?NnI`xT垈w5UO/i%j{i84.hxZ 2(Uj +c7H@~TKܹ#ʨW5p}H`XdKl%(E%g2ZR'@ B<F+b0--cll/`++61YxHXev^OTjIꊂzͥl4,TM*k^z>>K/`Cո/F̌$w-te_yO&lM\a HAņrv73[V|卡A)bK%;ںEc#ʼ;Z94Wc6fnQ_11@"*YSs? ڿ ݼEo% 5jkQʤGfEMAɊS]Df]v{Mj5KRj&Y?F F=j[Hh0 {M^++\e 'fIln lTezTBҶBՙL^LiC Zt?~Y.o0gvf5t:G8c騟`q!f?DӔT~]tZ-(Sf1'c#@ݸ%{-+GɄ@5A;~84n~%LMX 8U0i0Ք !~dÎ]MؘKhZ͞_`SE i \}Ԣ}æGxNKaL3!kX/ N2Lg(njQ>SG֏ڪ&bZN[Ecj'2ӶX& | 3>UIՅh`%uPd'P Ֆ I|4xp\Z׶acLYXۘKHΐ?)mT~]@A=^JMF!=@cf`RɺVocQ-IV˝e{ُ +T\(֕'5Ag.%fHRg@_dVG~C?͔jmKoi03<7gM0?L``0?ԜRPc#IZvѪ~R˴{ZɆi*2&vRWiK PZ uZs&9U)c4)pt/* [ClB\5m D=wnT6M2LbQnXZJ[oq=߁M(6G̖!uen] (?RГ*hހKFmfX%q|A 2쵍%zF{B*8OhSiOY5lҟ)Ppx#$LpA0.b5$n-4T1KnK re Nm1ՖM{1ZJc9m& o1.0-qJcxFr4UO7e.zwJ LyGj is0p}6?}UDۄ'@z/()"'`C_ϣP)׌n6&pHe{̀U 1 ƽn#Ƕ\~<4P*dwpny1g5.ᘚDEۖi̞[ɎEu4>T1R[d w|744/S{meEj#Tڙ:NOԁä@XHTjy[]:~0_r aQ-N R' wx!Rе"I}*m]eY'}:f$×˗+߭t'Q5#Bj1oNA/ }HPy.6E\>[e%MM@%N@&">1 ƵŐ6yb-,*57WuXC@W*=x,}Ca>onW X9f/y?Aִ\wQ?REv kw4,4pR ZDOuhYqV:-ʬjڻ=u:O`h,nfl_-cx®k1]|(4xv'Abg-142ۈdyM3f5[ec"iQ;v[:)Ӽg-wq{zt`Cn|Z`4B>}13 fikAl炾Y'[]CGr}®>Yp+XH? !Y9跈SMҜT: KnF4G/C40ՙf*E<D?A=ȑsjcg#b37[jfP뜗~N$ \`7Ij5H{o;Qݪ=Ga)9Z_ ѻ/J"3ZOB<|9iF!ca~&,un 媫VƇ%G՘x٘(E ed6?PܚY`$˓%yaA_rT9g7JL7gjs돔k(j [;?frJ w+~K.v,hݐQy3ڥ0>/K%G'wіì:-TL(_md}Ș!vtK )_R5&~x80iTN+j7G~He!p|ē`4S`O0Ԡ" ty uHc<79@oQ/m(cA۔f62t[z7W)tWv6t'pG#l8]!o ΢4[J0+q Z&¿By=谵wJfRIAlKPc5-lӕ͵2Q+b[ lFb.O0s˒y BNha2 ^ :>4PS *s4/d 3:oZeW Nj!`n0"^7eFa-+^c9Nd~vL);Y $zeYqSoP=g԰w,/Km۶mӶmۺm۶mӶmsZl=I%~ǥ*%J Zy ݄PW牡܍8B]8my)D9i GOn+|HH%Aj ǓBQzʇD6Aj7_ET?ozpTEÅ]ڛJcL/8^7E}/~DLM^_zZɫRpu_$vyAyfr<5Nw8kQ67~T!,c`\)M}`Ck =9ge[F Z}2H'M(f#7LCe~'4%!lhrQaYs7ZWVjaL|!ߺ.no jx!{r40z+Kؗ<&VS(ԽrE Tь3mb~)?'f/44Hw|,<&ʒ*9gX3[b1?ҮuShȿ[OY5 wp6UT`8=؈z/-߽52-::2E~-LZa boZ>n4rښRh5 #8m !nj(ٺc}L,>܅glBpqĖjՙ mE3A/.'2 )[*ah[q}_0bٲ)K7XaXC6@cL*(!Ƀ&@o zt5pC~VӲg훸ӊӌZG!mkk[/u1X`/&|坚TFe1K1]))S0K H!0l3Bpeja0lL>7gG>SBL(ӷJj&t;liXb}Ӝ441Rߊ7N*yi :Ph2"iǦ8۰b6ӏg>u-1-{Կ|">WڅCdvJ٩Zx4:)lP'Dcgs?rIcvIO&6yMcw=!ZYXIAQw'dd ]?!IYfEφM Qm-lh`i ˙b0G(C`91,φbmN;OFaMh:.QfN\S'L&{~)jc\L͍L0ޑcq)H6%pɵ?m fC+ [s-DX] K% L\iZB 嬷kXWTT)wȴT5:ZsCu^?wj˅ELA5?ngoSbzHIa6?@3:eyϖIyƪg׊DQp!7f[o뇦F1DkJZ}Hѷ_IWv2cFty㇀N|%[ %ī9FAVc;2D1þ,%^Ph@Abr?NWKߍt ZWQc{w~)X2,6R+qxiA1u[ܛKg ?o)+#=CRzb 9vZA҄~dg)UBD!=`YM C^Z\5#ס ,j'k#߬ "O>ߢ4"ߥ0Iu7NZ:(`hI{DFI3!s@<-G̰Lf:^u%RX*`C'ƾݹ^Q1^Qל`"T "f9 }q(E.g pQ#Q PÎcӽGh[B㸋߾=$U&BخӾrX O@G16eܛ'ZcnRI,)K83q Xܕu>7NS?) d3XK,qdՎũdg_('{1;ऩ=}o-ੲb;en3T%_?U8Nȣ&Idt^[ʧ۬,-S}\zM&_)L'Ou]:Z&71Uzj$i5O= X =ry0 e3 ฤZOm)K H@D9^7V`+<łڠ(a,O+v5ƙOO&O,&l({zΧEKP#hWRoCXJd%@2zS1Tb1RYv@;ߒzcqpʭm2vmC4SAf d{8M.3ObQ_\z剽m}u3߳<ڹ! 2mrx@܌yRVX?S;؟\C@}P# (\4W艚zէSt]wC2$G+.n.PMC~$X՝[6؅O:%kCCn8=Vesk?Lc% `\dT|Hĺ'uG}̃Pc|mNh}ù x&>d>pR&.JJ< Z2xg$XQ37n?* ~.2KcPX $1Kؼ,f z/h1Q|DY"d @+WYs25JfO6#jwԆ赃[ESy % 3$:rG%<4g@ЭRo>-S A)8IȞ|;r#Gpvz@YHgʴP?stgq>d4wUn!-Gq~YhP TB}OnלDKy\ :+3%nbpZY&М ٨'=8tYn(}ٙm".O,>W NLkǿo5]I{腮~y`ճU#:_nYn)y ?lˌ$*TmAERUJX\ONl~Z5n:kfI'X7lLLgQ8pA)f]ԹTUQyE%D. ZOΌI8VbLwV`S.nX֫%R@4y (? ׭e ߮E(Rf^XmZ3e+;`Qr(Êu Z\,MR _ԍ}NWl̓{1&6OX  EDW)ۿ:!??9TtKm븻zf,3h67&iÍ5 ڒ$"zktׅ}[a`Ʀy?/V %'^?yU[F-5yt,VtS&^i;[qW=-sq(G;yQ8{;}-o( @=u JpKUKMofX&,Q }h@c 8l9پ4aHk^RLbeoycAQ{XԒ0yxQҷYmRnkTc1Ì*9ǵΝ v|dW{\9{c- &WcksBDБ[2( iСG#|BC޷7Ye/w AqM6͔0lg$ޝ"+y)|I#C֯DRn|zͧ(ߒkK6o4l'Lp;{B$5ZB)5E\= zAyUX]e 97l7%4EuCy@ /v=om| RU&E(f"78_!7t_U W ]-O\hGHZ)7*  G(@-mz$;),oa"Cr6c!|s e-ybpIT0[h{dJ0} m܁ 7ԗ,,#;|50@YnlI蟨&;-u?5ZV=q|&"4ڻw8H}%$ܞ?4NȌ]'Zy/Qbf ~!缗2Mئ7" E*PWrJxQ0}n  U}:-ī|NK-uu CN+M--:?5'<uCW`htD Ttk%[s׻ ǝj(14t?ςZjU쮀 ~+pKbx FeBֵ{4E%T;k}܏+l4# eMӺ6_c<\q?^]rpfbN^'sEr+L^AWL鷨سAƾŜ%Y L)uΥz5ߊ)C(0~EdN^' U f g^-HZI~UjU*ܪV*[ ˂N-'׳M 8 nZn_:t.1G{Q*UFG] l]?t:qOɕ;yrEpm~KTEzal}\Tp`6G2.VKæ{>tSPg!Qzq؋Y&.Ή.< ycE]rg R~j" .!Czup[`g*SQb%K LQFx7ژlf M\SWrz.K'(bc҇q7823q۲9@xCOS2sI΍ ( `Ψ;&\0YP|YRF5Lgq^ܞaIJR #)<ݡCn-{t[ʠqc.99ex#鰱N*6 PfʚaӘz0K Bc/?&uWK:;U9Ny携\yKHd!-x n/}\׌u@`Վ_R bbT7۸%%/S<-R2982=Tw1+}~NkUC5/E2[9eЊ1[r^[`~sLѬLJ ϾG\-rx5d}tQ&F4 DHKz KSY~E)&9Idű )/288`c,rvWy"4R} }&=HjqI&BP}7 S*8ed!<(PY|Y~((n4ޯɖH~Eu@>'M&* UU8 a {F˶ Q]m 9rVb0Kv/'BJ Cǿn,O /ű{l#;WODm$"6ʰD1>X2p7ު|r5<5W3= SGj b#=m^^wQ܋ˎBC#I'D xOBD-Z^q#̿."3}Ւp2 wY:9LbAg9Of fA5})UBczJwok/WEq+ #qa2\D2*4v &[P`Iإ䵋'ή-` (B<$R5}.Vgp: [O  +9}ۂl,@FTnnc/'%FQ](YWռ3]x9gF9τ?k4H~ DHhK'?ûMjC)Y1=!@X}`<>U٘mLHFPC?jџڂ< xQ_Έi4\arw[K[)]{~{Vf_|b<px5\5v6[b -cCa -qZf|>064^8>ةNxs:%oAujK^bn.ϙh}NugvdMތK tvpt^a7|m1ģr_)nC2|Y+)C")Xhuԏ>L̰6h+zPyeTj〼{b7|KK/>;QEN7M8dVyA~EtzRD{Oud6,Efgf36$GvrԹ^ӁF0D < >rk,4u&KLB8{c vػn"w;c|йn=J| qWb(`W wHNR)6ju "~%2sKRbh#t0p)0*|3\@ QDA>e,CatWFvJom\G}uզnMZe<5b=Ҡ44@Yzx]hl{n Vѩhcaځd`7!4_:`7H^CDFW 4Q嵋̿<٪8bOB ܓ6D-5DgY_mG#9EXdE]هd|e.:8T# fEDԄ{[Us>h0Gd-d oD(M6vu SHRςzʦbMl?񄘖4U5t 8  g }1l7Z!S+-ЈiVL,7!B0*~\e Xti \8 bzI "He}*M[6jrqM^™VdshZ%~i7{v;7ŽōY}OC- kjӉiow"ڻY rݺ ~R"wUq K4C$PC@EK]Añ^ǶvSŽe8dxlա\3Ε3߿.4f?<-ۥ/K SP~kS?/$EX@i'6{zY4@eJh+{.q3fM +5vJj ܺK?LDJiOy>Vc> $cs>TkcӺXLy95M 3~ oIuQ+~W׎yg$蝤iak%/S:O&$N96v3m>%F d+ݎF/+tNȫ۶c:qD֒U>Yz:,1Da~1 3 X{J5*d+Nth* n&hg,:q?Gٟ *_Պyf^vlGuY4*{ly#535Z:6w4|q8. vt/}(\<ݽoR@VT;ȬK ;1-K ,-ZlիcFhZ' Ƿnk/,`hx7,y9G6?YՌ &@!n>VOso\R?$am>_1 Z-&aHNjA }Mfk.Zm.x]fMjÅ@3 iQ'X ha ZVzYsQ7ID;nz6 _>r?T1? isy. jFRWUyxA?CwŭHx.Ōg &[:*ljϩ_#Ƞ઻Nx1VtImDc3 󉂷c5_ʼni-0]>f%[_g~/u^cMϋ+RQygIMٍe?MBV#$˷>v\GIFT9SjBݳv)8H$>teZn}Qb7 'ZYͥ]SP%]X@tl%gBtE,oqha HiUPHh ҮLu^Rꪆ"}X0%a͎ 퐬i(W0 }]N%-2RQ#X9v嶃+ŊvtJcSii@cmg6Qn̦mAH<޶1ɴO hkOe9zThk]*u)^,62V#-`*?bi;C%`TKHW4¬#s '|RsB :ݿ\$ѐ(q%c%7j =R%6iApNz&wɇ0Fo^i54ORp?atoGqz|NjDo :< clpkg:(t<</n<Q }g;-XΪ%`FXv|7H0Yx)`:@?<{F4Q <ubu F?`^Zak<1@(2zL410 FZ.1=IzhKl "Ni`H#y#g+78ii*uCF>Bwߠ,8VHEy|//\1|84C~Z_;sCv0+${@4fJ~eNO5& XTa?=0X|*:p ()^ھcġwRg+z`M-qԔ Ap""7d!y?uoqLys7fHTK˷m]S2*UKP숡9HwsQ 8k||-7ؚ9:9<(endstream endobj 287 0 obj << /Type /Font /Subtype /Type1 /Encoding 698 0 R /FirstChar 33 /LastChar 255 /Widths 705 0 R /BaseFont /HCDCNH+SFTI1000 /FontDescriptor 285 0 R >> endobj 285 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /HCDCNH+SFTI1000 /ItalicAngle -14.04 /StemV 50 /XHeight 430 /FontBBox [-95 -321 1415 932] /Flags 4 /CharSet (/exclam/parenleft/parenright/comma/period/slash/one/two/five/a/b/e/g/i/l/n/o/r/s/t/u/guillemotleft.cyr/guillemotright.cyr/afii10019/afii10020/afii10021/afii10026/afii10032/afii10033/afii10034/afii10035/afii10036/afii10065/afii10066/afii10067/afii10068/afii10069/afii10070/afii10072/afii10073/afii10074/afii10075/afii10076/afii10077/afii10078/afii10079/afii10080/afii10081/afii10082/afii10083/afii10084/afii10085/afii10086/afii10087/afii10088/afii10089/afii10090/afii10091/afii10092/afii10093/afii10094/afii10095/afii10096/afii10097) /FontFile 286 0 R >> endobj 705 0 obj [307 0 0 0 0 0 0 409 409 0 0 307 0 307 511 0 511 511 0 0 511 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 511 460 0 0 460 0 460 0 307 0 0 255 0 562 511 0 0 422 409 332 537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 562 562 0 0 704 627 769 0 0 0 769 0 0 0 0 0 766 769 678 715 715 0 0 0 0 0 0 0 0 0 0 0 0 0 493 475 493 422 475 442 1048 460 562 562 511 537 741 562 475 562 506 442 818 511 680 540 567 537 818 823 485 664 511 442 723 537 ] endobj 223 0 obj << /Length1 721 /Length2 38414 /Length3 532 /Length 39059 /Filter /FlateDecode >> stream xlcpnݺ-kvضfl۶m۶=cNfl۶}YԾukyzjQ5H El=MiJ2 :fRR!Gg ;[ag.1@`b``!{8Z;((]Z[X8T\-2sb=y WmjgkF0I܌O]j|A\:aR#}~Gup E[vT. 0OEoEV ~hH4>yLչwsIV:Aۀ".]6(dpBNCZ(*TZՅ!<0,ӅR7[@2wu#`MveAO1]xD޶nat9#n !~c $%tVQŚ COטE, FM0d5;sFA=W @PQfJ02F7rg#PaƘehxe먗Z6{[~o\>t5lJ1!ߠ8v 9f %GX̕1 )~$M bM/u{¬iɱGΣYFCGdD;0C%=8]~%f9?ѷO'$/󗾐/\ӯu0 #|Yw QcEOWF<'+:(|R_WfJ(azÃ+mV{FMrHbn3!Ӈ&<gg F^1>n58U߱]l8VH`4aztڀcSbv|ƲdϺBRUz\oӎ"ÂCʾ3,[2::G6mZZ1TJm$L5!lY@3fl_<0jˠŷ4;`ɳP/h :Ϻy# ΓVAai-ctQ`*Zb1sdQAJC+nB)1UQLJ(~ `8{H#LCZmTp+xUSe?S,uMWtT},KST7V8qf^~m>K rߕoCDklOmA3ʂiN݄53:& ҡa.QU-/vjI 1K|^ }"fdSgBRQ<'(Ff7-0 t7qdn _tՋN1/er[;_Rm1q^@t`my||58\Z{GV4f3,ymʪ9}LJ.+X;v>btqţ DNAFގ:r N^_T-~3If@{4&/oxј! Ҧ)M E+(`؀Py*@rJeZ*į=z#9[,f1)|ȼ?xXT |InLsGWj:'ڈye:y.AQ.%͗\!͋OyH'g֔ZM c`uyWɿڌcv reǓMްuPe ȍ+W"qyUΪYr\4܍jD_sO[cȑ͂.&\Gzzg!*u^tjb<^1 U _#H0|2%\@| _^>8bꡳ@bQ#j1bfS-ϺjOJ[Xs|HyI|U *>lRHk_ڢxZ\X-e5\_56;_Q[>7;}=$',Nv0G]=Sp̤e^U%%D%#MV꬘I@su%'"|톄afmxWBUS$ >bwb@#Nx5CW`hʖ1;tNV/qCE9cK΍JVUSnKԿ S?R S׭@j,t>$eb#>`hqm0`u ";w=1J_Y64)巫{u2a߅E\>U{fN6ewmbՌdCYϕ adm[E0ۃSDb(1u^@Mvt*9YQxw$m̅ӰFL,7_ؓC}p.d2nnl9@N=:\L#ߒ/Nۢ.(-mIƱcmm8xmITxqDdH"'v*1(OMZ2(n'鞑\تa3aBvƽeCiid_P2#VQt 6Oϧ[(jFv {"Ytie6ҧ"X^k!eSe'aeㄡ?)C1BSKz%[̛D*ⲝc% x\.X ZPg3O'Z5;SI3"}9-"8ޑ}*UJ-]LХOg .cFc3 IBPװ /Ti?rm%aŅ`?ɂ BuY.c:A%S8q F;.6*FBuOUW3:C5e# Mr\+ EQٕjJ6Y V': 0:jH*" U7vlG m])(_$a0IiIw/6\2HCG\ 6))]_@zSRSHgo5f9.*&b0OQ  ցoke?=/g[A0!QZv f q*߄;C~Ir?{ Vvq:5KJny'-¼c cK%ET Do(?N"-m!43t>QlۗZ 5}z!N#;„ xEС -Vn1~"n:٭Τ|E|8\4N KOkb}`>$5x:XNmB˺|8"3a+e#]`~ך&gݑ$6++=iJ`O@5r1_::dٲ+ iV4 ~gxgۈ̔v[`j8@}2޾]y'XR5.XFZa[s3[%EsU.x/;R+pAba0aB4Zr"KYn۟X3qv"}m+q4e{+J7ֳ1rQTm=ܒmRyt'!A԰ cƳQ8[2YfXPc Z2XJTmbx/&Ϯ?Z;q\`f)+;۰l9\]Wz"CpEC IT}$¡tdGɐjW/,UѼ$`9#Tڋ08()h+G[yNOpUUH Rp1=uRqshQb21"#4x{YHtmzRdwJI%w+~f hL6jI̚L&k Ric~‡ƓF8«cU>wN:n95&seuViT|}#!`Awq "T>l%:hHI310_:k6/nӞd6vNOR/˾bnȐ|]l2TH ]}mX1ӥ~Mu͔0I%F;vĩ'p α A]F[> &~]O'G[5vAÛshZ2{H mܷB.A=ӕpvl,̢S+dJR`ȉ?BPQ9*@`V gx09;)O 4y֬xm݀lF[_&0{ Gjhk;Hi᳜Ԧ7 $N0ȭsn=zA(c u:⸰SW]c #'EORJS"Ŗ[%U?up{ 0"E:.5tBVIIkGhND?t-#3DMsMΖB=cT~pS]Brc5[x> ؎& R;& 4=kM, TNu # @ڞ8t~EA Җn 5@YiLvy>>~oڴ/&jEc޷'~lMCB w}nZQ}~f+^&+⟲y$KqSH8ILվI S #8Pf YAӿA, '8tE֏Na껛ί`1=?5 ~x҂mAC0`hcU}^Ȕ4ܞKWBE UW׉WQcpz?nxTrkn< 6e_MyShT+:apnwiܾ1k>}{*PI?m.{Q}9mL]cOߴњ.TKrAaHqS5RܗN,pr lT[9*BwvU&Ȱ6cXg>hw~TroBD$Q[F{LbsG9mu)ۀȜexZ`\y4+rc}p 9 ?n }C-Ka11uZfaٟ8p}}\i> -؝i&=C BEwb\ yъV6:3 >⭇a>J[7?vjl WNԽÀ%%WZM>=l2ʠi-@9)ʖ6R(dǨMZt%&m ufX{~d\P:ǹiw^~J_s)P3]cD,ÄwYWk8INEyYP7F,Ga pu wwqɍ3" ߋj4(kpr\AS2͖*n40;G&{ZX5`lͳ4 {X @0DL茗 4?P;M1$uiˮ`LiENtĭqtlXpٴvFU)oPwvJJڥ{v0[9i6Ҙ䥔|ɕ.r$8gt%g`gDv{q N~ ծ ߂;IBsٙxC JolY%2qxIF/^9NUVLfϺƵNj׼u>1 ^-X#hK= 7z0ph5L r RzZ9d 7 B_l'n3aQRi jY4KQ_%<ςC xw\@>CS¤xd\|]V\jcClMўy/u9V4L[!f~]T % gK9Y0~ m4n:- ]g{)Nq=#O9*&̮9.b( LaQ&]Up|j{u~PRbCrmysr/9e7/cξpIdDo; EyO"Y^peyAopa M p).ڑplrϲkū}U~Y4^4"9 7J" at})Flgc6\]TuD,~,lC)&JիÒq,KJ&R.Wfp8?wuBBNZUmds"rH$؋}ܗC1D^9`$c?Ufysw*lc/cx `7~Vuڐ=> '-c&DOb./{ i\XxB-la[4ї8 !xbUOcߋqwx%!`!D/@qC&ȕM,+?ko p䝄/0Zz@n1wwZoc;zKM."NB ?} vid??WwMRԜ^.({]5+],/Qċ үe䁤eek* QL>*(=|pJ4gL^%f$7fNXgR6>OȤI*4*J&13K h`Y"wS"D3IH w|K PA[p߄Xu,#ca^k̸#v\INLo5Q bRw79~ /SܽȲi_5r 1.gh6QYK/R2dgLnFn~8w7K^dt[ߦU\L8@bXek vQ[Wݵt/Y8xh؇{3jؑ}=dU5rNMSרJuV&Q#)E ̓/!sNKCz٦ŇBg$5Gt!v ?ʫB<8Is`V1IlgOZ,8)è#[m@RD8J;A hu+fxG`WHjK_W >Z]GVԎ cĢSa?zlK < {o%LØ8\04O_7 Ytް{}l_WZѦv0"TeHosj< kSpt4 F EL9Z\ ;US :zB[;/jڦTJr6U{DK@9_Xh)LinO6?+byh! &TnT&Ai3M뺆G1GvWVW?x6)G`0D>>h8u^c-1nGy{lpNn s6 &] Ѥg_b^ U잇fK8um `lpfC~cw<^{v׭Ѻ VxmCȑYHH:c: vOdC?k%0 8nEN6" 5;uT R1ZRi\z&;]3_y8Y޹o,LGe* fQ3 X3$ml}盓d^tvX߱QX1*q01CFKz iF34W\@<6Ng*g>7ò|@8Q5aюSf\ A̟b.eIF1g5Ύ!a]~~ZO.ݟc #]yC/\ec$S"[c}[r(1羁#[~wL0 ;* M ,GW PgQ[l@'u8[i ;' 3$2eE)2`%ˏY֮ jʓ 呭 >S߯ki-`]Vmڹ#ꤳ}]ɛT~MaH 1B`+$""֯Q~RڌxЍQ7hA!~IY}>"3 SxW|#Rv {N3ɥ~rs.ƭ6lwyTG$tYANy*:ec[ eu`Ӈ__ eE/[y'æVrTk_.W1ݞq +P4)@ʧ(~~јXj1JX#8)DL$(u'YTڝ E6G1h `|{ gM˒_鄓GQ 섛Āv*>%+ȸ/}ɍŽU'ǝ[†ZܡbTi*ÍrMŐۯ\R{@X+dlA&?Drۥ גc-{`f TS"K^L/7'`kۡCA։O{b9x?Q1W\=6W cB\嘌+Sce-e*'Z+sЍջ7Ck=o#-2(xBLuGRvsA9O\pM2uf"B?O )Eƃr׳k)8hڟWpQRVЛI9 .4*s|YF.E#Șvs MUI+1=,l`IrK+.3tOpphYm!R !8IEBbB`<;?();t'$O)c?gC.rW]W>6| 3%’K3S$lb*jic i붎?7sRqWmvfOyd;óQ8L!_fxs0Hc *]tw0txBzx=ړsw䗝 r:=FME٬ȉ4׌WW"۷d(aт%& "qeˮ8~IN(B@U8[<*5חxY٧Bh:o{ʢΝ, z,qw] -]4x%vUJߑ*b*rjMi Joɿ-~{'5Lh8͉DmӠE|O_+Lmύ/ޢmj%s,RʪQZECZ-r 5J$ůl9Hǖ9텴ٟ1w/G|o:{(zZ(IAR ޗqdHS EmE8k J,ݗ/`)k/V+n%p;MD U:xL+~<I; Endg)\DOe"TM Wb##L#5BW)y Ń_]Ӡ░7E0l1_jFأ"oa 4o3Q9qypcIxn؉Vw& Q O\ f:AWe-Ю/a0-$IfT-YE-6zmX#C944FY0uf~⨦* m 5D/seQ X!] %UIg?Bi%>|D~;f/.2&kAlk;#{,m]2ܝׯD2Am죲̥3cUV_Ӯa[O} ԃkX P8F/.[@=,G ‡|=§ M1|JRE.Ld@IcJ'j\u^=H*iEc0&J@7qx5wv|KH$M?Hw`%_)HA*g1UGۅ)gMn2rab;V=lY: WShİL/s*Qz9LsYj\4Ogrts9.ܪ9O Cz]!qZSxY/2-&N y{…L>qxlpβ0Hfc{hP"e&%o-b0;(̶D~_S%b G#X΄S:# |s͓̺QHC t2B.߱NAƴܥ+ &s:\椪qNf2{ێ8nLoIr8ۙHtMwI ej'cbCv(zkz4%C5Hw}pRV-RN?~`BI>B 륲Eg.1[woN!8) a>T;uE c:ޏXEr]{#:ꇪHSrhonܡML4\- χ>8~՟dJBD9103Q;0@6P]jqa wу@w0S8 5݀D)<>]UYzwJ~Cւӎ%C@hy\JC(P"˨لv7$SKe~B1E{{^ƹz 2? ] ؚx iȀKl:z f281}í"?>O0QgS,|GJOwp!]ʌ[g\vN &ƍT cŖ^vQ`52F I8/qg |a ճJ=QZ!̀gJ$|,n&3+) ܖ!x3 7`Y7*!cX-9 t+wyࠔ\9*gJle$nFIٰ4 %) z;'E}s-YpCt ]E U·!,kܷ"FxIusYi, c63Me;ƪCxjnӱ/Q`M1@7Xc=dSq< l~ VW(_lTƨU+w>儠 ́>%ӊZss)LNS6)sBsY=sjn4GݓF}dx.7G̃Izv}u_AH\g,45jka)(" .L|.uEv w⓲FMjЩ]oհ _6zguѭ;m]|oSI> y%:tuB;.g~.]TBk ml+OQ9&Pٹ( P+3f;&?#7Ywk~vRJ&.=5 "'R(Bs}s*aY7:C?y:# 5 Hx$}μVj+'7S Hi*4(hņ󭤈X7|b}r- p(Ybעfa=Za'>:k=Ⱥ -R63aeV+q0wmzIǸmΘ,y6ЈP 06toQgO\7i9&Jq!J+,WHchޗd4[戇e9_xc4/͌t~nl3$WRB{ACjrW% 9] .THl7v`&Z^u@,lB̥-܇5D|ȏ RI{0!QXr&NCmu_E~u dܑ=SO'n8N*3"R+Lf~ @W-ۭ*DjRb>jW [Zr]U+Zx)x䱵=,ʇj0 =1$f}\"tސ2$+дZqsbY21ux@c^x*59` ^Ԡ(.O%V/u^kM4gW_2.tcL&)2gbak=3Ï8DO.B Z( 6N`8Jr}DTB pBWK=AT-}:lQMظ{S>r.5P~w#w(*bﯶb=ARr_y$;* '5o\]oK ҧ-Y$U.հ zXD E *ňCb V3R_|ݒt(yL;+J<#ojɠ6R 8e!/D*Q`<{+rPrujKۅYC]s KQ[p-{߿T5HZw}=E] *Am8]Gǀ- /em#MI6zzt][EL]NA\{ee S ӟ B7dTCR{N KľXj 0j=^͓[6idIv7]6?70^אLӋXlI$0$=={eP1 l@]< 6udB:z"lݲ$L5a5;T+*s[끕A ȍpj4aefi0%\H  `ޏd.amR^o6XD?OwƯMo?8d1foU3@|bx 9zYb̫ͺOR2fp]zfKlSB_YiX(|{:tUfsW[7g{a3HL1Tͩ ˬzZ$)8uul=k*Y/a)^`trOk94V1Kx+7b%G.ER:iWJ{hӭQqDR!DIRIxבe`$ LLM$[c #Ҙ/SGPbB>3P*1iUrOV՗ԍ|E]u!sӓ |ibRYeH,m僡.nmHD6YD@dZ>qeEW } EF~ןmPR`X8u Ë|{v#m{ƭO:#@,I&m5Q*{S.?UBBn 9Ne↱[4}[ h`sA2w1e#I/4!¡'g <]’Z PZlߖ{}XlۜRIH!!:D?g ˉ -g60ѐ8~- =Gt7j S&?TS6uިGId7{.l >)Uf44rI̋e %-qΎD !N^*1[yȤ84&Wvj(BX=Oyb^vvP<|}0ܯHm x}h!Nozc^o^qqݎƐe<̆>Ѐl X@^˳p̋ 4_m|&h+XghB~!NQT|)h}r7aӻ1joNog/~K•h*Jݓt|-ʻGl7Tv8A3Ur! P#(8С~<(`Eߔ&UR,tsb4GRu1\zI4pM+g=?"_o:^~ƀ?5OQfl*Xu.16Sul-QU3]*X.k,J H}CIdV^WlZ*zJp n`րΌON_m] }0ãruyVPڡ&S5:_@Y-8ѽjQݾ̍j!&ER5JG#όP%Hr*%FH#3 f6.ٌ k߳hi9KaUe)?-b1T$Y"8ѿNCbMyan1$Xf9/ug]3mJ%}шLq<D>Tl%AM)o-H"81iW=Ac6=׏1-^ 5QS>࿆mEEzL T 9O&*) wĈ/~'@ Mr wY?D?uA8o %8 05*ͧ}enj,<n:IufA114뵡@vf]@Z柺ΖJޯnm_: sQ0J">P *d_7y.E -HB9|NŪ^ۅV ̀E* jNAŝa>"UrDħm{q) RaؐȰUvxI]3Xf']ΥC F|(%oUUagK!ͯj}.O4"ba$Y.6퐞4ը(ígo7WZ^{o ҨkD(i'<˾l>mekEgE<1/O+zlYnrPP{OWnչaRFS-rڙr x&7>AyPLu]Wp]iP>i}1ͶiI0[%~㛾pCx 2cN] } j@w/ÀA0."VL]9¡#n5=,ɖt7ZO.^PQN*9w,%Nd 5)`3Zǣ`@mX5?-֨2bWvr:hmc0a_3Pa̡r%0"]tp<A* J3YH*!pL$N*1NW1HRZ{)r>aY^+>+4GzPa~TSi>4Ixwt8POP!t~!"Ƚ\<84E-:DN3JA佡:E|_1:yfi9&үj~ڳt72'o\?@X.w9{58p[Pq}?&٢IwKkm&.ῥE7|#Lnh.j:bU.$A'8CO _bt9Q_5*ߑ1kfv\WE񊤠t ml@<4Βd:ghK <X#"AFCqBwk/ֽꄂ] )$ޟ73@,C?_z y 턥Mc>心(/ʣJ#6 cO\ѐ| ]l x65Ks?(|q*Ljmilh(^71'JƺV=?3[jP6h,|uY/ 8>OrNr A>K =6SY }#qc Ss$B&U|I05 LO>IB~.D|woRE~ySr(YZS]l>Ҝ)uűn5Cn%($b@ؓgԳZDwe U u耶FnTږ0wt}qt SbRy0Sn«L}w,>ih0[XS s̓ -g8(RG韅(C P:/L"Le7g]dœ5DgUpmAbq>8ϋכA3{nG_k1ҳ0;kO/imob(l溊`Ǿ&sKUX(Nbf>Uf.(3Y v070czڂՇ ?`No^w$pGD1bU-'JuxW`^%r[lzOUc} ^!ӯ f k?PZ 2AFP4P0DSXz5TMQnŘڻQV-Ȃ$E>{MeuJ>d^p[\$Te_ndlxy,\y=}}1Zdq]lApvvA+z#~/#I&J@ T$~>tl24̬O[ZMws3^͵AeE]_{vMx%ENT.k-`4kvBO=kjd8@B vdF*5Gif*5Μs]oMA\3eW}gUm (yEiM&1ߋ"Z6F>8l 4H 6; H ;ozeyZjHRHt{d#k" $L eD9>R ~+s<q 5}(/qQ=%u{)K;e>Z_ :j Ȧʼz}0e4Z%AH<@ש+ԔX6RU(tNhQ1gT6FO2e ' -U} [mKȎyjvB܃i_>H+3ѿU3iKX- чК+t4ѫi~?i#srkш][et0I6XO$6F%Cn7>(ʬ=y."줮!7Gee%wK&\,g+nc zfZv Ňʏ=6;韔ݤ љ)NE) $=wᴜ/vo풭Q3\)_MZ^yb)+K~D+O-S&J&pD ȉ$ۖY,,?ǘN2aeUf}3~ .S1 4clx7U'NҞF]em *4,?.ؐAj.xA 8,-|3);Axmv':sī29CPۯL#FPB]Oz m]3t{ЁhXcp\>rlE/Zû|d `, =f*u&h{ul0#=Qo~|l'Q׷jqD\}ODNzT1.MG͎YuPݟ^IXP+j~BwZ`^}ZR#N_q¸Bt))y=.#gR'h $ BKVt''놔պiIg}q5<}}EݝHy\x1]a/dô@q )iK>tT.x!mȽڹu1Nlt~4^4:2d"+]+wGM,q䠏3p?2ΈPZ2][3 ~?(!)Wtn!P6dR Q6[lRCxNM4j-"-f.K;t]/|$P,SӀ"q}\f"Xn2LD퐓{YY;l/ОॣpQ k7,42 X1(tͩY}>kOݠmᨦEK{qM,Qr79^OIB;CS5+jWg 9 Gw=3ƚ@OyJk}Mhqe UKzU!J /HKhgCɃ~2'vCsfߦu9 ڍ9Yn_eYF# !t(܍Q>xE@4TO_>5)O>z@[y-7`%Ֆ$Q'ͪpc C4sM ?|c8՘/˥r&*Hі^b͂#G-[Ilg&ޠ\Ŗc b- LʃʼLymIt,˶ s5ߥ=Z<hyDHQ ;'إʊ-h*O\Z2R 8`@Uk_/)4RIgfޓ%}&v"pV'[ԷzNm?T "v7|`G~8Ψ/Ke>v4.¥+M7)s`ol`!y𵝉W a'@WW.Mi] ؜KX'* n| ْ^ϖukL^0m_|%\"@f2^oe4` A]ONDn2 ڿۭRᨼ0n48AcV YŎCR_(WJZ-Że8c#%^)Z 7|&i=xkjVA9?=lꯁ+ŎiK3 tCVeٜnW ؈#$m ع:<?mF0C^GJ^%̫n>{|b>F@TY.'eIEd} #QO; ~UkkZUs:[u_@"OضvMkΤoC5T Ec&~B×cIFZ©s- SjQMu$#-M'ں C߼  .Z VC.p%u#4R1n@·*GA u$W×.N;Z0 *A hhO$O/qA"}Z6ǩ Y;P42]λFV$O7+0jиr97,/PnLL[OƥLx{[bP{. OuH$CaP1 KyZ#}).KvQ+O ͚MG ղ1Zs)l,=mQFVc2zzUuߩMgX+2(WaճDLm`[]3Jӭ4!?ʏx$h` ]ͣAKQphp~tcf;ą}oً-#,bZ[Ԥ XLNZȃz`_ci6,sBO 8 Ŭ,0K&ǹzjXC_s&-_FBT]$nmfKAJZf$xfEA版wT48̐"Rܼ`%,*t^}~Ivp50 Z{eebU\^Jhi'?R33 LmĊdB 6kIh'f?gY\|MY5Ԣ|6~+ۑQ;7fghm.8'?Y:)V;wE?Zn=p*v,P@T9{sF? Č-ܔO]]V6Ek_`Wŀn]2PMLiYDHAo53X!\Y1`,FP.&={ÆO¼ Q)Vizbe/b-TH_<"IXƙlA'eM nqY\ Hu 1<ܺ9*FkV̨j{ycJƁzwY~ >yK1Q֌<✰xq7aQ^-TS/y+ﰺEx2‽([8gh\ΡfNߤ'uP~ |%GIu6l}#Q2>Q2"qbeK3~zqZAK1=!KJ$,H> j'M.{ Y:iy;hAvֺ_z2(\Pu'zQ*>Еlh#@nI舔uf,޻W`_`)<\!LOZ.PiTwdu&_׼Ӿ`"gHb=tiDn) )YTvϰH 0]+Ac2vh)VbM;Ed57kM bQ!j$Պ +E:f\G(7F={Soy,?Nk<3lch7S)BMmc~~ӅDdĭaWFm1KaR%|׮pɞ4ڈcA|]wߞo_,(XIh,Ŏsb2n2UW.}~\GMjfƛhpe7:a  );-{rҢgciG$DOJ1У0 8uYM\XPBpl$Y9Kd[Nݗl}8Y=>K.Cʒ\ςL '?5߉t9=;E6MD:RUss/#C+=+LKZ%'rlзfBX' EfS ; *Uh:w ʹ=Dj:VҾf@* tDI^wЭEƤjôΊ[n4Ux,>YXZOJּfn4C?4^q@1wdc'/T-@{QZ \޵kd-=W%{e$~b n;65`4>Lbe!CcfF6v#&C&(k'<|ޞfM äKX3ݧ"eXR=87h U-D4L藎DAtQW/l66 7g|c)T;GO LLD(S& X­k Y2vS2)6?nϷHBq]%Tͽ 3)ЪSX.ƗZξm-Ƴdl![X̺@ȓh-Ь*H{no؃΀O~}g9crÞ%]b`8Q4*BK_Z"u%0Piϲ~Efqj.ݫd5֣YopODuҕW} `7}É^[d9'O! N #2ь VM?D6`mR)GdE^-2,)V,ET̓soQY&fŭY!L}O ,g{F~opCHeC uUZ SCJ[S[BeAXzw7Ш뚑Cq]CHyyZ|y$VhYbsaX\1UJ~6UdT; Q|pSk&@xdEl;9"XJƻּv3Rg%pZ_yQprl4DɈQu]mkx<0`#3̧f~g~X~O7r=4}h=iΜʙ܌0vm)Ϫ97 ^b}`+Mڣ=DN+[l={!Ȅ~7 Y-610fdil걍}Jl.e]|*,0\Y,kJD5&3O^OEa'uA?2 8ͅs^8_$jKur:#) JF ?mϭn sbKS Ҷr4h t:YrSJqwuBDHpNC03Mh4n T\P_shV<9CO)a1*V Ƕ1ӔWdCg-vںޤ7Դ6g1JLl#Ww.UgGVofGxV$%ur8ν- +LDqq nB|zg't`+ZmxG٣$v})wC"'0}UF8Nx;(sFDT4+% [U BuVH eϕ&fo[6bRh(2([/f6 yv$rv3B*[5>/`g}B6X_)Է jB#)&(Qs= @(FG՝V?a^CCoYXB]Ϙ+~ӴB؁,vFjɟ ]> dݸ"xպotĮ P&J ciSY:r^ANX8· J+Bh&^ .VV'߹Ғ7AhM  )3E }XYKFMAGee#\ g22(kI۸HȒx#1͂eV13[<޽i/;[ULJM5V@e\kǀE$%ƍf|xzl@34-v$`{jBJҪh>>6(ݤxf~/O+Q DhS.q`#b;U>gzUv(取aR 1FC0,sY<]  #,+fه.2 co_bv(J ,C‘k*2Ơu"4#)r3isl~0vd#¡='chCd<+stކ{_0ZUQ<`[ZYVuCa`/ۥ}=Ov=;)B4@n/v@: G{N^ނI0`> rD!A$( ̙.X):23"BH`  e9D>?x0١U#:+⏌]o+34a8( gA iTbq P1^ 8#uGķuSW*\1h ~b1WgDFL=1K:7Yi|E;{]M˕Ay_zš}:Lph5̍Pn $mh! B[$<.[V8a_Ln3XDg '諸pUVBWUUDW0dГ q<K\sJ?zc 4~3l 0b9M*5>>+ZrhMB7P]@{neρWGhq Cn*FI3;Z.7k,d9c\ea="r E{x2N)=OPSZ2&eX GI5 ]O)=a6/#ĹCUp8մ*gk0JR9l#q !i/Ujv[idi5c(w! ԤDb*iōcP!+k5_@>\vBp 2L? hnyRvJoGSO߶'gnp &%C  W/{WOmXL㾺ycڹң\IԪhhnp=ثΡibi܂ _uM QXK2dqWQV6p>$uf ^nhnr=XyE6۠^^H*?6^( k#K1e$Q'L=aM1shwݕ9S,*3w8ݳj2iQ%ܾ3e#iFZT%Z.׸@h1D^a'{bR3K6 FJ,,.}@f)(!@vTjVZ&"wJHʟ[W7;DTHŸjQly\Z0K{q/6%l,j<k0.FP@2Y(ej!R4!:e: ~sߋb0z Ț7Oʃh)AP^+f9ӟ4ER}45^nKaLPي Da`u( f;bOP;œ6#!fbٶɒKR{|,C\X\T^BE7v5[O_V*\wlt_|e/ v0!uFIt<[(#t;.zTŃᦱɀt-'k5c搓J6q$z+)c6}vID} WA\H'ئڌ&ib>cV32W>)V{$f䤼 V rwz=Ҽ3"F_8(T-onZH2+ ؗ?F+,U6,9兯gn1V>|=u-j:5jѤHAIqhE_9Ə$Y0YSƉ%ic!k.aNFr@c\8REoJ#jC -n@Dg9|%)CكN<C>rwF.QUY}e[w7Ą%hi'1[gEayN껔'3J|KkMdjI_=`1I`CprI,/vx]K֓dDBHަ>뼯j;vwt0Imxr@ *]b#'>GPmHvsM`mP;Y3h2bQlgW!jN?1!1 ;Sw-¶N  V~wLQsD͖:*n-nRҰQ)ifߠקPBuzz]Q-Xt=#&PwK>]Ncy-~?K\)>⫩:ӄ:ʔ /꘮`,IdCdAtrp ~;+%_]ُ\,H7Lﻜ 08juTm @SqݟXzBW !!$Ymm9 w('*?,s,Ջ(IԻ]^'j IcOzR滗e"Q? #O uk^zQ~fNi2+) RH N<eZ m䀕ԟFX[d J\d1ٔ=y1DIWUW!!/Y_C Ϭ4a"O*]U H^?`,vtAN-mNH^P:=vwz=^?@xCS!!,<=nWBLUx d|s zsz mTk2it(w&6KxOƓA :ו<ڳTnKĦn񧧺sEZ 鼎a݋57.I7B ]m8=4I@%Vdrz3^|ȏ!ċ*%׽PvW?9>u;1c%R ^>@?m+AJP~ U0At{,vg0NCrݺ/Qԕjī #wr7'驧?"&]] KÞ;ǵ+V=d>'[Ԏ ;2D5S4ۛ.~[3mJT4~B,9ۓiB\E'S"iQ3WVN6^֭{endstream endobj 224 0 obj << /Type /Font /Subtype /Type1 /Encoding 698 0 R /FirstChar 2 /LastChar 255 /Widths 706 0 R /BaseFont /TXFAEU+SFRM1000 /FontDescriptor 222 0 R >> endobj 222 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /TXFAEU+SFRM1000 /ItalicAngle 0 /StemV 50 /XHeight 430 /FontBBox [-189 -321 1456 937] /Flags 4 /CharSet (/circumflex/endash/emdash.cyr/fi/fl/exclam/numbersign/dollar/percent/quoteright/parenleft/parenright/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/D/E/F/H/I/J/L/M/N/O/P/S/T/U/W/X/Z/bracketleft/backslash/bracketright/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/afii10071/quotedblbase/guillemotleft.cyr/guillemotright.cyr/afii10017/afii10018/afii10019/afii10020/afii10021/afii10022/afii10024/afii10025/afii10026/afii10028/afii10029/afii10030/afii10031/afii10032/afii10033/afii10034/afii10035/afii10036/afii10037/afii10038/afii10039/afii10040/afii10041/afii10047/afii10049/afii10065/afii10066/afii10067/afii10068/afii10069/afii10070/afii10072/afii10073/afii10074/afii10075/afii10076/afii10077/afii10078/afii10079/afii10080/afii10081/afii10082/afii10083/afii10084/afii10085/afii10086/afii10087/afii10088/afii10089/afii10090/afii10091/afii10092/afii10093/afii10094/afii10095/afii10096/afii10097) /FontFile 223 0 R >> endobj 706 0 obj [500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 805 0 0 0 0 0 555 555 0 0 0 278 0 833 500 833 0 278 389 389 0 0 278 333 278 500 500 500 500 500 500 500 500 500 500 500 278 278 778 778 778 472 778 750 708 0 764 680 653 0 750 361 514 0 625 916 750 778 680 0 0 555 722 750 0 1028 750 0 611 278 500 278 0 778 278 500 555 444 555 444 305 500 555 278 305 528 278 833 555 500 555 528 392 394 389 555 528 722 528 528 444 500 278 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 444 333 555 555 750 708 708 625 778 680 1194 611 778 0 778 778 916 778 778 778 680 722 722 750 833 750 778 778 0 0 0 0 0 722 0 778 500 500 500 444 555 444 833 444 555 555 555 555 667 555 500 555 555 444 500 528 778 528 555 555 805 805 611 722 500 444 750 542 ] endobj 219 0 obj << /Length1 727 /Length2 30380 /Length3 532 /Length 31017 /Filter /FlateDecode >> stream xl{cpm87mMlyc۶mv2q2ms;uoz^]zTɉ\T= L<qMf&&&+,9 4,&&fXr ʄN@&*O p,mQE-)y @ht2(Xd-Mv@j? 893bfN91UaqyU(( +O3?hǿec?Xu 04q-`=?nSW!??RLf]mll*Q{[W@d1yLEZx!bv(T͌l~ _O)?jjog ̿1*jJi;,fgbojigPqGQ#'q;hd/\,=:L }JDÛ@`dpr_tM\v.^8@{J?*HڹC5f[a Sk{Uwx@c]Vx T q k)i_R[c :81RWNlT}]yHWc4\-ifʘͷzk]7e1GNZ4Tҿ֠&Q}C o\G@@}2 fo5C[<{n+r=:X9 hnpBsR0[iy1vXG4W ?l ?$))RRNW+0GjV"v¿)=]eŷ,/Ul_Ցq3j5noD uW .رꬦ-G'.&(Q͎>$5'N§6`26<]_J[Ԋ(#_Or_߁s_v1bnXT`qlNj;lnxDr+S ` [a jg |d~aÑiY~Q;DX_ i& l 4qn6ΰ`ڈ>9x'jBe"@2"=iآ{Y ⸌ _\~K;0_'v0T5z@D7mG˷dV~Ou>x/b9x`!`IOyzZ63s+㝍S 1fNӜZ&)ZW;]v}Bwy\xa+zRh?]=bs3烷#TBT]%$!!㻣2I)ӎDFJښ5y 9* P| COt~#C74 c3㏦7a*܏taM#ڵI=vJ~ƒ?ߐlT|N_sJq0v~yj1wY#ôt+3t*iLgy\ a(W2rtW:E" _os`~\Z[wl*XL'|1uj`ܢD0n8z As_Uqd>.\)tI+?k'՞^ФX.=5n=Xo+CΔpp-'(dNvb9mb{/ÛAzAA<s h%3ċYkujk<"W+B;%ƌcIH)oV^p6zEpX9=(E_iNHli!)`Gd2kfn؋4ZaUY-N`Z^ݳ6x L*DF2Tlӷѻ K5kƽ!z4Ӂ-#7zIkj)O4kbD : * %,fy>MreˏOZAw1nHJwi-'Eh& kt1 oYw§չ~)qnA|so[5;^Վ y9MQ`b%Y+i\rp>4!υ֐rz==AzZΏL_ӠѢo*oKXxL=xT7(ÄHi="] e 8pS+šcūXMbN`=հ۸T o5Ao\fP쥢AkЫ̒XGc6F׎\)P@-鋷O}a˨̣Ь`1bIPDW^4E^d#:1T7m|2-# Yȣ= q MA qXm**"M|fI4@ (uzY'SwZC`!$աG3є!Jwm>J[T ;Ӥ]1PPj?EX`[΂`}bP). fG7CHZz`~x60Sׂ6 c-޿#XӌZI.`r01 /N"/򂻀#TD ]O[ լ9VwxU1Gރ/`j) t ̵AbU'8o/%!mũ swZej=%"1p%8<ƀD:`**ݹ\hd t;A>3e LKMg@ C);`wlIXA[ W4U_4dΧ9#q7L{OHR9rXސ;_Jx6z#IOmZ>r#0|̙w]Ul3QY~Uz;#+%̼Msa ZT9Wp"~\kW)7<|P+PAٴ93B*0ԼzNZ<:!C^;`XߖMgIT.'ݼ Άc0.4e8`h6;t˄q_'*^C$d 4_\BBQA[\tT9T%9p<}\y)ږFjώqp>$DHw%psP}!ns^dlKO r֞WrC^r7跎&̜Z|.žHq^bߜ/S```{KQۣx۠i:,y ?Qi872Sy y ,Yʍy Xk \'xg*JZ9Mys()`~",JD_!oqi;> !DSYf r:y9#o+d;v;]ú%)vpI`kQ(,n T2LYM,2iit;桯8h*t$4<8:Y9DrѮDL1KP_/n* E}' rF!0C=h|_MRr Etj6A\?"H2tA]dE<9 wB 4ؒ~C֤cʙ{Ȕ@;7[ ,rׯhUÛzV<ĉ˛/ ~yB_ .yt.׶=Y"l@0V*>RqC<@L/4e4ibU!ے"ۦ캥{PtS|5?ڣG /epzEs9!2Lz'64 QG+7~Zki牶#3qqf=fZ4$cc!g\(1cayi V~|d-9v7eEҮNI`A.h,\` ϲRҞ:Q&B NK+E TL$;5o'Kw) Nsq cfe*<M@Fv-w7Pٵni68'F-8试Bõ ]d=pncH݀ `w# gB A+D49Ӆo4gÜvQGfz+E#(TVX0kڠe>Qj>z쮀\oY7a~}`o#L=B-Yׅhri#AeP+YףŒG .~~NSd2UJ&\iG{qƿ299y"K6'q3Q Cu-ADз ᛶ}ݞSrsiG F}OdhE{2O9&~nYv L:7RIs j`jEշĘ(Pz[IoD"v\jI~?{P7/f,+܅$l?qR fWט|KBP۫꥟u ;= J넽&*H36G-8P]P^ oӫt }M(а"gcQ#uO,(m1eP.Vẇ!lQ! t ?WE{ė0YNm90~͊757ڳeqHܥՅ.Ark>[ym_!$FFrT6Mz#} !AaxeooF ?.L9Ō")L4DVBup]'y86 )ZŜ{zc1nގ4:G7/ _2Q[ qvFlmRH9f9d}Tql&¢ ؜֞43be3Ⱦ?Fʴ\O*Myˆ*}lڨ: ̩Z! 1|`kl̴Қ}uчX`,@$LaRijjַ[Ng<ۓ8ZߖLa6GbVeXI +5(G4 A~ÇNǿgf**KFpzQzPOF,_iZnb8bHFm8DI5b79dC^{hsBrS`gn3w[z ?pӵ[jfO KYF+6"Fk^Z7rń}]MgXa(IN.*;Vl'+OfבBɡ؇hɣ͊XKr+\kG,]AE=ʵU2;] Vg!iO<=plWߥY ,h9%Fm'oS&&.(nY};jX/A&9o{&ј]{a.FaGf_¨pHZ|)GG0'. w+dV(ܧ wCUI!XE*kxAE*[3,?HYE<=N`c c=ޢp(7  *ovg 9:TNZg5a:9g.˱:ͰGט6J #$8JcL/l =+sug)Qa0^}V |vo t_Bl)˩2^L&SJ]XRPf78wkv Woub 4` fxY6+ʁh,>F*}[gee.x? mT؇+c.?dWA%JM^0v,@sQCI #N6sTYUb)o5\/^Sp,z((C^u+t$ä;lKo(f\4UG &g+2VoBKor%IBlΣŤ!Wr*΍V S1`BOD7V:}C绠)TAoׁnVl|i I%[Y,!߉IPq#*3и:#kMLò]+B|= --[fpX划֓s!]Ehh{|&c>MNdW4C",m2a %[4m)1wx{܆ iF7Qоs1줅m~jų\(v!J(*ҧѨ<4$JF^B~9&NĜFM*LpіΑ٦ TRJ8)GgeƤ#=a(avPζƙ%)!>lF 2: Q@Tc}j,}Զޅ' `rvB~6"_F,xa$D5FdGbI,*T_mgu | *KD)`ѝkF{[O>~js94c#1"Vt9gɏhx״n`Fi z&LG)nK\&nϦ_(qt)ąT=dF*nueB곥5{2G&!Ky.$t!Nd$Q+"qsjU5`\`B1hUkzB|׎B{O q2&P!/JVkpoueujM$"dIZ \&f$K;JlܔmUПƿVM P!&h>޹捼?/z]WE'S sOfp/~T<hKAWߠ6)ޓkF?)bu/ 5KA?a|ϑzrz^/A> 3D$.ԥDuބzE\GLqһe6ү߲֙?o䶨(ȓ>%1b6 Pderz:6=l:NEbY<߮<=lnj(RMuG-`"??Njha̡ɠh,)SF]u05hԋ\Җ;" /[I7 uX3J_~@ _Ѡ)y𔱫9E`|@V]Mrɂ"lW-K2/CiK}L.GiGjqt:9jf-(^a DgY% 'vy7?XX\ t#SRӮX1wh:%VhK~O8?y 'iExLx (N8Gۓ_1$-Ip:UdQ/R4HT\#:k۪xۺ5~Q7菈&;~> 8HYe$zIHY)[6{a_@'꣌O *VjX:r{$84oP%ۦ'&-&-MDTiN 3pR˷6)i2RIZNp5\˾ ө\A=? V2~:vPݣJPi̗dOr%fv֚řcY\p~KZ蟛Jm%.Ia>6uy4K_+t2$8-P, _!!^IB {oZ;/:.OO,hB+W=P=OߡO5c7 Y>W@4' zmh lō*ms5E io0ǁA|Uk6&\.L[+{4t_S0T@G70 n=>/탢IRaQ"SS8cg5Q2$Fx>MJZ'E:8qAZEFg_72JW}W=UlM'8xdN(KwkZvgz: V{-8]z6|.DyfQƩ#ɹM9'%\j-KXV2#8'眚p. |zFhAthOiV޺ tq>wl4M#iB)^퇩Y;ё3M<%c->q-ߏ;)ځ@:O+7%%_΂po5wR ߦziap=&!qT+gm8.[PsI={3p J9F2T9Z]21ucw<j_es .6z ˳^B_Tsɩ)CfYΜӤ$bKb$Zp^ZQDA1YWqJaA*r;[yAO;].PJ// <}9ϵt#}htBvS{!EmSo})ksI\Cse/;CƜm.8't>뮭hPտyN(؜H`\? UM闛IJ$ ~A~&M1Ϲ¾g('>ȣ1]?3UaM$!~!X&`A6&!5J _deg$RƍIݿQ; cޞhP)=!zQblG͑{X}*S意\V]_욑O֏K&P0ywN%)促[11REڷ<7oc7s3{2m-8W3 ɾ)ӖNFga7#mJ>޶J+fc$S>Q2n*uMQNGZ࣐f2[.bB: H`syV6E =H##j`W"g?TgaŨ Gq_:]lLy`&X{fGuˆ]H3ٍ29%a^X4 hqD!|~ka } Į'pN6A#zSw~d#a4] 0A N#ɇPSe}[;_SG3Ndv]7gZc$(„Aʧc/oBN]>h0!:ّ" Sİ '`1n0>:s>UN]6bZJ7YנtP($oVlBYeQ {qL+;@jk%_)``FIPƙ*zQ$4**oya8o鋙{ hr6K9Jm R߾+)l 9Ks]ݦҠy-r'? @a1(e?0A4UuyVHdu *G/e26yOZV0-%+RAxv?w+&L1M6=j1b ]ЂFq<$^ӕul~m:L)3c-/;Sq1#B&G >9 Oo̙7 B}xɷ=cv:bYȚUϠ֩rPReNNV`ׯZ%3yvZ;78`ZRy}s.i~F,EZ6(=9gd5.zmMyH*<ԀWc쭗?^~G`Y͡B+ fZD{S%l{B$OXHɂe禮o =xWVxҰoZ4黶>Gfx`+k ȆǶuC2gY0D—oX>,a>|]Nd^_/^6@@'h[׀4"+hl Nmzٝ*dK;x O^MI55w a%Ѫ+}e;Ҫ_JNE+#knnbaFo%?7cۭZ_Dž36XDB O@q{0[iӈ~S,߉X~eFČvh}=x((C p^cۻKrZ!hOvmWo Wx!E>w9nK#+ay++:Dj0Q; D  b< B#c;oP꓿*6Pve<-h'W0L)YMhdDXqof3ʥ9ɳFh*I㤺;S+goɱ|y6 uQyx'2]S;Wd/QYG.7dzu5d͞@ ObHgH\648:13R7Q#1UYzK4>2W Y:9rH k1;:\Oq+4˺nF!F*|\OlDQGp#/apx:Z5+6@Ut9$D0ˋccli}*Ʊ 0xj}ɖ6idwq SVF^ *bxXRY\,:" a~p Cj*c,@Ï*+_ѫ"Kr%dVUx*v&>)z*YUߵ39o [a` ک@M46߀%dI]0IL/Bu8{%׽[UKy᠌S" tЖxʠĜqgokt忮vq#E-Ռ,۔=U:q~($!O9Y1TXM vH͈|Эh(vyOrBovzf ڃ)?av%Wk. ҧ!Ӹ-;`]}(jt-c D.mc('ˀ?lfZz5y."L v rT}qHMH1#"gd~ϸT톊 0z$qDFfuJqP']8MA ?dLPl빻&'>2YbG/*&+XfiLޛjHv&e)a vI5Q8 T|]jIil!ZGGū:c]i>hA+mz-Ȧls̈́*?VQk,8w5|ߍ/Їڦ:-U‰-s '.zk3!V\Pl%l}ߵٷk5>]Kѱ i=U"&ByE90@ӗ 'IOF쩛KX=͍/A^Qhvua"NelE!",\3[78M%f\Ңye%n*u$jCN¬-Mk?4APNE"4ax=UZ^4}7'+Ja m#Y 77MdDDi-`QK q.~w7AH?TE/f-\e7b؃:2 $%.~Ȥ9GE^EM&2a:qb2Ӛ欨euDxM/J EZBMjb%.Z:kYEV^/|HG2l vo}Am+ͪ;Qkҩ&QRe2oc(KK9?舝K%"'k<@8J"`94c,F# CxvмcL0̼WKsЮ#53<3̺yʃYi,Xs> ?y  "0XgKOgNQ%DzrI /gܶP([Z  $s1u 5-8]_`/H_pj 2=Uh,zYV1\aR(bfq&ߔk4/:͹q~?">mY%ނ}k:L9ݠyCz wc[5$MPn,(?6HJP$<'#6V3c6ZvM]lĺ1DQGQ 9Aq5Z!qͮ9h}._H )lm:煽Q`K,YsK:?g`:h+!&빨<R(zٟ|2U~(}4Gj(UG#k)KhFK 0;w E凒N'^XFz}tN4l'$V̞P}[_@ѿ@<(vOVSZnpWd&.;wshs%NJ>*-ъd Z¥\=5о`I VǀZ\lTݢa:OX+p0:TZ[lRh=jR 3@{I zȱEF.R:5[?eW$αv\% $KalH/&|ŋbVlulak?<175aJwt¢Pd!'!j,V5hrkQyH YiL)TEQ]~]M=&,Jb[DY:w{M~eoxxC7_Q+X/1 q`6iO9&ǮeLߒw Ji,YM ߜ]ʧLvMpCNXC~ 츯_DU}Qdnӑ:r6O1Cg}V`V `5gOX;)?1G\tg!YE knO**u+Uĵiጯj+MoCѝQ$p`:wL ;ot$ퟞ.6H0WdjUMw'GD@Ìsh<"3*N`?&ZAF"c,E6b}o2wY\^}R:bv'؃l$>_mmt;eJd&"͚G4ƫ{k`b `#0Z_gia"쇵d!d-d>_f u[Pk7&~ƟIN#IV=m\UoVJeUOns aׇ)qүqn$  VuK0 𳗏<^@cS#J{ʤxr%I9TsHFsĨD=\t$}E&w,.__|WP-~GϏ-ueauT|jazXWWm -84zDb9*rӬ;YR뤫H/2I/ؤY?ݏY~5--5J:Ya7Bpf{(HŪ @cbj@ƒsͳ3ݶҾ)Oe<ãFmbݢ[<{JJ.& \+䣿'C!]72yo=S{9#fШ8GA`ldH>҆Y+y7^Q C7*eHm$]񭟝GÂsc |?5DwVuU`H\زdLYa`-25!7YG$cB;iT *%u-VD>I+oP7dEFSdF";]0LhI(3a˄C 1;(\)8Xy_'U(+)2%{L8!)'`{iW觠$&s4kH~&R Ա5hC=:&ug\+bYA&%ƙ m}D[_II.4]02VUـh> j-̚'"|+@5g =>U\BDܶ"MwLy`QqT7ήd5Fá`-6:m :MKpE1*bf Z;| Vo*XK: O1dj AXhWA'|=j|ys5Ar((eib@4%lY\ܲ Nw?Ÿ 1/џ+nBBЦiQTןZuq347oQȢfR-z& ΰ f}r=c&fHlWK3I)N 'eVX{O{ q}>-m}&MKC(Gß=$Nvs]vPsn43Ťpcq[*Tn){$F h;HTC"R7P"#TQ뱥n^?;Ҥm!m)gQ=}w- 7ph0go^ B{ʀ`AW&9pxoIIM~ҏ#>}OMz杊9.Hƚ 3t' zt% }S?`r:δRk*Y98j-'p9LNskD!HwJsY/lq$4,~N\Z>.zO5@AB-jB7=Ag1CɊ~>l΄#̚"e!S$H/S+[ȩМ`˕ :6i9Es=x"gbҜۏmAWRUZ_?wU ܊g*/od7_ ]E]U匵@:}tS玦"XK]bタns{8x*R鮒8۠\5tҁVQbI4MY2TLFp^KvѯK_ c9+#SIR E="xԧYZê릋2>Ilt bpj˳pڞ^=q~bt`½:>b0ۜzySc3 Jˎ\תZ#񗛕G.k@2(r7֮/-)3-ɼō%,٦n몼H bm旁ݩ`&$digNZyekay l9[RlSAD=qiv~abF)^aVڲS%+mDW<ȓB#Z.!+-A%QyJt٪b?$B^_#ܒγ6o@5ܫZ,5B-&ɏej|c(G#ў-s7m)Bk_;6hz_HI8:ب.s3T f1B cH]`<%)%lOYR%8?f.[SEQJdp4':~Տtvt3t6)S`i[E)XO`7h/ 3˂ Aq*O3avEC-}iMhhi;6Ga0_ mxYжPjA%\U2+KڄM8s yrȝF01:E~v^ P-d._!A#1 9Ґ˘l[mQZBKXubq'hH-}Xe՞ocՌ+BgE~$}7{ʒo'_:D9 1@w U A>1pp.2 c ]4q;bT pu62%ع/~\ 0&t,!6m,' ;i+<\xؼx I$NGR&uuE1{lG56^ wPi_!M?JxcR|f%3=`+Ray@) i.uV/ fGUL \]p+.@)`D <HeR@(λ%hCK> i'{ n:w2.GєѴ\b7VՍ ud5[t)m؈O2JJcƖ ]m&aErRs:[s>6p0e eq ݵ-DiΝ(Q_SYZ[5a3pdʔ|uħ;}B.s`>6k 'VNĤ `9ا$(Čd|-fB|bq̕86B(g89 $x#q0tŝykUhGM.5uƈE;G!6<Ȏ@̥\Uc0lU*˻NwZ:*?ltMHě}^n1cQPMUc퍍MnFmXO7:?=廋hҡ#1X|fn QcۻY9ND~?=gduU*Kupv=0[*DC'$ݩMw2~Rʭ.} GlCQq%q`eRg[[Y̓tRg 1/EA녪0*hni0V9/sd B5gTqh8Sf֏ܽ}W꾮v#6 wYb4?תfT;]sa^ 錼H= =#"UҪ{._VI'2ŸH!0è9n538сG*,~7JmƟVl6I81$b]04;v{^\j3Df(.¿9YI\wW BQ1a?1Std2!~֓ARU+?(i%r[ ae]5׻eA@ȌQ=VZmfun.mmD0Z9Q_{8ԁ뎨;X7ZSp*uGxͻWfUk~ؾMk}nl_X:<,ѥ( XkI",wn[-^laq?QE AmXzE[HN F{;4+n9L`*b矌cL&DV8\{Xnw`c:hžHa?.+J~\Y 3ط@hK.sPi읮4veǹT?eX~l=&u ^FؓW=T)]kPI@zW8*τC.Ƀ6\  0Sp=_ӂiE6ɥ#3Ƥ5p 짫 \=A<ӹ 7R#֒oKFp^zyK[iAvkH {brF1<:ljwN)9٨"-]j0MlMS%Z'ł,2lh Q86 G~vdU[9|RV4`UB 23"2]Cj* IS\qTT\6 W 9mWSq0;{G`'YRxAI4rQ3/7 ac5Jsn_حP6{.&_# $3l5 > 0&,L]mUF;s̮Z|YaaH1HdKUnQouV fk"1}fMwmˎSS|Ot[n:FB#dS+ґ^b{-kh%(Lжw4btꂽ#Gʃ>y: !CmBMh/k=(W< ۀVjLoL AQwxk$g 4&X d0K})%uKh3ğ#|o-6?}zDY?+4X}Y ^`tp2=_Hʺ$GQdX^Jk dTl:V0>^7u>$ 0ͨOF {}y8& uܭ, *],L34~pyNV`sJI*NЯ./W@kY~wH0ξV:M`]{^qs\%!41/?V85לcvhZ`"x RQo^'}Na(T sdV%Hㄦl}Գ tlN{2D&EavsK6}ݾEnR71o-ɝ KqcQR~ѲOpj7-U }J oe<&p`g_SF'P +ti)mG?<2U8GYE! ^\lsRjZզ[cL@LhG]|mZtTX4ݣƽYAat$8 jkQ[;79s%$=3"d]xgЩMQ5v?<8ķbRwo]/؅Y$d|hCc9'{5Wrq)m#\B6%tu w{B#4ֈܕ;K•$ɱWʝܠ1pJ/nd(/,øoSۍ$ӠXsr[[ͱBŤbkc J!rzzUZ;7lQދh\rS*Z#\83 ֑EӹR3vk !*Ȣ2vQlK5ݨ]I=DcMU|~0c+)Z6O>֝-\V@1ؗJAzLȷ d YO ܚo4 댞^9%aUժ'm[죒C,ae Gl7v}l 5gWF:,)wT0[9=U ';: ڳ>O!S')PX}UJ,f|G(xry*tƛ[V<.7iLAr b/BOxAԊ4ۓ  FEٍ~І.:GLx#C94>ΥjK_n)"n:JrzZ=N1Y#}$nFa\C9P>F2ߠ~ԙe8ѷHb(sqc33y 7ܪngۡqRpk<bԢCs,E7A aغj/d:fS!qC` Cݛh]$~/fK\+13{=zOs+#<̺54dh Vy AmiscK*32V!H7esr;=# qB_חtb%*XkQ=.ѹlt9"|0qo*uB%B RиiN֦ R cN/`Ll@8 'awB$zFFfU@'c4DE=tONsR S4o PV吒{iPN76X2(evtӠKgAH  y/R3PIQ+Mn4AI}ޢ2\o*z "r M|H'V)9rΒPvg{q [8eB4 )e;yIhJOk}.pa=IqLͥs(Ǔ z19M)Xm.L_uxaЕ^)jm6.|Enp\@WtfVoOaa r%Xj\$~u׀ ҇#6%Qtwjq&[XHV۔Dtd6ʵ)9\<<^ml ) PE8_W־3t ^lj@X+xja g^JfP0OX24S>̈́tE?%Qթi?[-{g"$σAGڜ;tX\xQۮa[X%c#Ea-ԵN3fdFn^90ʷk׾]> endobj 218 0 obj << /Ascent 694 /CapHeight 686 /Descent -194 /FontName /PWCJUZ+SFBX1000 /ItalicAngle 0 /StemV 50 /XHeight 444 /FontBBox [-229 -316 1737 939] /Flags 4 /CharSet (/quotedblleft/quotedblright/quoteright/comma/hyphen/period/zero/one/two/three/four/five/six/seven/eight/nine/A/D/E/I/N/S/T/quoteleft/a/d/e/g/i/l/m/n/p/r/s/t/y/afii10017/afii10020/afii10021/afii10026/afii10028/afii10030/afii10032/afii10033/afii10035/afii10036/afii10038/afii10065/afii10066/afii10067/afii10068/afii10069/afii10070/afii10072/afii10073/afii10074/afii10075/afii10076/afii10077/afii10078/afii10079/afii10080/afii10081/afii10082/afii10083/afii10084/afii10085/afii10086/afii10087/afii10088/afii10089/afii10091/afii10092/afii10093/afii10094/afii10096/afii10097) /FontFile 219 0 R >> endobj 707 0 obj [411 411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 319 0 0 0 0 319 383 319 0 575 575 575 575 575 575 575 575 575 575 0 0 0 0 0 0 0 869 0 0 882 755 0 0 0 436 0 0 0 0 900 0 0 0 0 639 800 0 0 0 0 0 0 0 0 0 0 0 319 559 0 0 639 527 0 575 0 319 0 0 319 958 639 0 639 0 473 454 447 0 0 0 0 607 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 869 0 0 691 901 0 0 0 901 0 901 0 1091 0 864 901 0 830 800 0 958 0 0 0 0 0 0 0 0 0 0 0 559 575 575 496 639 527 958 511 639 639 639 639 766 639 575 639 639 511 544 607 894 607 639 639 0 941 687 830 575 0 862 607 ] endobj 214 0 obj << /Length1 727 /Length2 25571 /Length3 532 /Length 26213 /Filter /FlateDecode >> stream xlsp.msbMlLl۶m[kb۶of{"'uV2330Tą5ؘL p"@#gK;[Q#g @h PY,LLp;{GKs g uk#SKKGUɅE$ lYZ" ZR* y5hd Pt14Zm3;G091+`fv691U!qyU +O?@cuGp_%`ji 0[17)[3;̦.u|8v7Dl]9;S-@ 577"Cctt*Z:C?Tۮ)\Ml=?b&v5r4_ÿ݊FBL.ghabא0ܽYfv73ho t3 Jm )+6T ! ˜*Bj5QSw!J5٭"Zxnt.u_;~VM2B/V[ %$eKn#zT0"]2D _}Iܟ LaJ{AT?S ω(Z+SR{Ò-Xox hlӴ1q߄c_1`+ˆjY&$м/nR#8JW;[dZŻ)L.]^۽;g~ii;p6ǔQ/%,X[X8Tb\)b .Gv61ZT~$(oٗF"Bŋ[qmhq?3mZ'T.NWNC6q`K4t72<ҡ'q`dHݭ(edLPurܬA$bF`~*SYZ7vQ_t~`ӷ|'Og/{ٗZD=Tи4P']Yh藀(o~ ˶K6 #$ C1B<$K]뻡jzb!i9\PCCJqix@g"d0ܪW4̅GF6I+0o\Qk]8O54B mU"##xߓЃ\KϸJYj4Q8@Ҏ+E6.w.#v] 4 MqFp0=cf^G`?o? DGjط4L'D? ZC4|J^߈~˵Hwa7@X<[ؗZ̞ۖSl]: L%,@RmԷAOn{sblzsˤ)C)rK3vN9kNE$eK.# D |KJ?ԻmwtAUS&,#n=v"g=5 ֗[,Jb0~MȀ`\yg.u$qPf(X66Qw}ʥ"pw160g"Fedݵ<'z "s}Bj\QW7|N 0ũE ~a0"'m`2hRa<҈Qxv̸mH-sɱԑrmU²& K)оT JR),[zT4 4HD<%~ⷱ VJ:if[,ٟ ~>;<C> 0N >}m9ZeP6BQ /f.$:.'wպ/Q5\[9uĸj, rw _ \іKй\撿kO7#.Uze2E^$*DYѧ4&8,bsʩ̈Vl~tT }*,!jxمϜ:6Q8ܪQ8E"#|BD~^數Ϻ8C߳H$ Lk3Z0 o/י~5 t3J]_qc 9۷_? ]4$ P[߈3bݫ+AiO^9A 9NmWD$xM-܃5ؗ]e ym{cяhU5?[6sX~7|u?6Ba p"N Vq(%_kDgQrNLm?ibϴ۾TˆvE@Kx&:7y|`TgJ~<8|' JX^T㙣"+LMtN'cD %GQc<ݗ.ˡp!'+/3^ADH|jZV`O9fB">N ܐke&`8#`ʘ  ;-IV!!gbp9Ys5wZ~-Ez-7$o9 {q7id*XPr@0U^!?(p%1kW?CAۺf( 2\_*Cn^5K=ݻlkdG[r]5RXױJgBvU{9>CPxm<[ιi7.XOujePz8/Ʋ<s-AN憮2d A[ޘ^DJ Vxt/:x0khl 'nu0^|Nc*>2&?:WӹLTP g lqH= e? P R`i cY>w.,}E=ɢ/=\ʬfߘ:(EJR q}tkGPhKt778E05b3h/9lѝTzZFnLm@>%7Rj'z\!HtiW%z[6 ݢ);_J(S~\WFS<rmE s:,E nACbĐ4hMһ0W ` rY[Z5 E}ܖ*6s"0|O;WbRclzRBvrB`sfvK0h/Y8(hPLoDz!.ҭ z~>K >VU273w x[kXN8wz*!K>F X|=(nujI#KZzCGǽ悳Bg^Q_K*fyBz4X&D!O8,@H۽ u]٠´~ґ̮nؚT;w{eCq5ǵ7jZ]H9WuCh}?2l0ư`{\DK:&u{<%SBl./rhڻV@ 73U#^|PAHB4y@[aQjQ'2Wmk0m/d&`]Q"MD扙0`j4+U1rcO*eWrUgf1P_.E$"{S4LD]1 N%,{N:唛t%o^u{ &ں;f`MSq:m'y-VRdAw ݿ:52'=2N& eխS2Hb/ M͎YD9o9{PG=xk+ع q?c|"sAʂø '^ _qM9%({]Ч/GS)):hi|bD:BĆݕR Xr~Ū) ٻ~@X(KS &!M>zJC08{KM$G3ፔEGOɴ (7" j4c;9,t5[r>d2PL7r+V)?##Zͤ(~&'\EKu|)-&'rʦ`O)Ӵ܁Z׋wb{n]JKpgaX2S鯊[ 9:v J\Yk@5~mz23vc,*iR/饨3"Dbhf)#ú26v'mG2 z\qD[#+g4/LŚPތ}ZTl>n+G-_gV3q^3@Ot Pj_SK acU,Rqlz(l \& QLWdh -L&ehRР H}+N? sj]e9 vDi]ω'yuXcEߩ7PX̊W1"~d.M>6V>J"pv:8oo"Gf=nR6z3\0erf޵KV8+j s$@TA,cu,`D*`u+{:3e.Q37{[s&-c%P”Q^`z7zM"Br).|P:&qflNԾ]4oB1Sȕvp6$<2% _B/`#H噛~~Ǟ7#(\A!`3}AC&ģ ѩ wmtB2|9X^dטqN =Џ̹J*&S Nr_G &@3- _c˿h#R|2Uv owErDbpfy˽miY*H>c8gzJ05[ז" YݮQ4 Wr'S1̘s7˵`0yxwHē.yb+ꁉgJ?({3. S 3Nst;_/ i<"B{Nl#Tw%Qޞ^y:#<1qWdA w@ x#nରq1I#JS>=:'|$W>lzՄVѪ/ 7-^rVus}Ep"׫8 eS_ [ W&F΍XW'El )-v,6'pnQt=/N3tIb+/'ئִǾ?#)nFX顠@ܫ7bu#( >Ӳu"[$S5*eB yJaU,jNLDqCmAlZJOэi2A>K@6#l psbZ\C#yT"y2LϷ̀?TZ3Xp!2Wy@i ~My.a`x;}xDѽ!B*AgPTmwFEF{-)x }ĞD3yqSbs`W5G/:|77_RfÓ-t^ ]jg-|ii2*NHC kO$Ʉ΂.5ve{%0b3w9S_dsz[A!`| {3@ov_EO$rh K&E8)%uke 8bU%q4ytvKPK!K5^M{lr.y)r0(#)X/yEB0e,U:F!WW-x|2^:.!"|l1f̪F q#L!ʀ @yUu-«T>b o/mكLkҌW/ysǐ+de!K9F-W8$_)5f'P҅ܔ ,ũJLV~'cWgyD)M-d8r>y:$A+tc=(a&Oi++" 8CxK;m YE Ie^tܴ2; I0l4 jTxEΦ nC>-;g3 q7m ;>s$"E\n >ط-Z4Σ[=NB*}¯vŦ-vdH@ÿFIix{|C3Am #[LzDjĬ%ȡ@s)HOs;Ұеndwhx>MZ-b,{!3,L@ Icb$E£ܵvARx [L*aqsVgIJ=y;Ly 2>p^k9 [p} >k−WѕV`ďTgQuJ!|L vvq@"XLG w벐:(Au'Ti>-eߚ`~WƝ`:!695ĴkI=떔BmWMR3JehcyJ^/kD>H&c_ V׺s"]S\&XdđS7ǂ{L_9AS"X5ПZB/q&rB 84a3V62I j?k;[;>z4/| ƙզEB*)kG9=V{¿J4"uLǫcy܊PJ?q M1=ekrdUD?Y\2vsk8aoI,9d 8M5U n_dCk. yZhvq,L:\j46/fZ/_x iwo^EQMBiy5>NWToA0lZT酁5y^!.Y8Α)CX*i9oA5lnM k*̑L~5` rcH; zVu3L,)ވW) \tBp  %J KvDp1{pm> >w&3pdV|'O\şt>kɫ^ibƚ΂6iEh1B{'X.Mb@7*"o^BK1k22p٪ \Tiljo0 ,hGPܪRTXQv!놖ZD9KI1z-ImC[/̱Bq| KcO[̕rmtf\|Dh$W|b@_ήj(Ɋ$Y=#f<pgۼaJD%s2EUi:%aVJuɗ{ ѢgXƴӚE=e6ѵUA{oXcs'2bmE2JU>?( ZE_,,wW |B#|gb$s?r#Xxr`TfZme.5m3,DK)@#7 aͱLtt՘ڰ4Y ڳEkۆ.[#4IU/~f^#`Fjw7jޜ4|m!xkv'(~M# =p鎘? [3 "h}T GԾcÛFJ@/QE`8{{YZVs`/)8o2~F ;P^jAڰ9jɾv.{gc (AwK^~ʏ-kSS<˿G:NiiRSjhR3NGh<#m7̃  H*'Z 0Gy~MsϻMy a|huLxy_ K?/^%y!k v58c_u^bdܗ~*Bf{:nWe^k 5L{>yvj\"WB 1H(Wг:tkn ' n^3g5Yp3K:d$჎F E)ص!KJ<{qFIj@\ 'eMY]0? 7dg Ѭwo4O'/Gz;7:`CK4-E#J򳚁$C\MȖbfF2fvu}Vm!Te*B%3;-br;W9A`GO ѫR"_ j7IOW^'~vf3Ui7[ܘg |^~嫧%}lfCN>L錙qNШ1MjU:TW{VWh]0rU5izJD{dlHݗfr~YiNǦ9\Sy5eX4%i5X8y@['ȪmLF) w z vv3>hSZp_`wZcg롷C |RY4ˍ㵤w?[׍Mh-攥š_LLFgnRD;JaRrVTɨtk]ry^'Ÿ9Tջ'lNЉF-B18(wl ҂:Z/)km*I%+'e0hL"<E:9 u(Kvl]*B| L2DvNf'VyFq)Rj' 'ɕ,G(j&3Q?/ZءFv] nΐ̲N".]vk 'kvc=5+iSd;[)'Z_ŵf`5{5O֘@r  h۾ S?Q4u(xsE>f2-Y@J>cKBrtiY/((TTxmw'~>]0}v쥄61Uy{U-?"+m!>}GsrGNıYL:߿b+C$&eJ{ȦUXԙg|/h(N/ýA5ET+*RD*qMT>|$gDˇC#fpԠ1dž;&*=iT޾_nBÉ~]TK|CMAlmrq+]r?a@* Cd.:'yBX^[a92dxڄx KMv_,sjQǐRd{A0ifDsX@̆vYY\{SAoxww3yigr {9bEY^R*}|zgA[!''y/xhtc]0g$T:@5e-I WdyrmA]~_wnz&ezQ]})U#aTU*4^#hCp$ٶxuAMzPS@m2)MXΓFٟ }&O+- }xNj[U!܀?H[$>!5913R4/E=][0RESt.!}DfJ,jlqy#!:maN#_k$T)]XuʘJ)`[E!iN^-@\+0/>8 ZnAi +^OM%Kpб0 ʃdF ,:X=,vBz=꽜@BHz˥'*&.f9.w> { aQ"Ο<)S(͋y,W`cT_R52qBfN\tO-ilkвY*z[nN9EVwilfPJACtI(B6\Cǔ_ڳp cC$@'1Ty/Mm`W=qz ։b/;Bm=tS`*Dj—X{ﴜgeipt߯ݾ[r*Ź)]-ߐY* BdZ#3Xu e5\Ԭsٽd gѥq;QQ.g?W<*!J E-杧>h -)3%ulOŊ?q3*(iMKIRL\Gu#6Vs ^G1wϳYWNA:K8Y3c#G[]o 9wH_U waSq޿MhI42 _i~YUsPX$K#@M2~t$骐'!w a'0>)8 0}<֣a#o[Jv/Q91g1"h@{^ţ]w?<1B`𴞸a(%74aV^yӋ4s>r&v@5悵rkI&\Ľž#}[a&A7 SiMrIюd9ʱy"KbCXt1&@+_$D ze-zcmoXhMeeAӘ/2"1Meqx;Z:VbWifjhQA6g"2Ji7;ݰv_3tls?7}c9S]B}y&m?g o}(/)YK%q}W7HϨv>2Q@1p?O+7}‘q*#Pʷ<:Xy,M!p_ywܷg&KCitV~d :KiꎭSN0ߏ3[gUNb,I?dĚ%wjb<~NРTI B4$9-2i*caB 5C6ᄓK.K*kNcaSv?_7oEyMߜZ]F|M?Q,&eHCUh;Ҥ݈?<)I[Ni䊑ǿB9z-@-Hg .z[Ph=lXٟ/5m\N3UIR9/-$K0<6jp=ie~fUިQ'(f/}2Rc)>1N C+.<0=me.؇+ +ox=ք]a$s!V kxbQb3{. <'yn>ȥ_h&K g3UsjMbӣ"Xk߲m;+uV4QFrUdq?az(!sο8-VJNPŪDʘXp# HϚ$<Κe~ƞ .&eʚ5]5_\xC7f( 7NlD4dz}[ϑ1InAF$F|[E%pV@zl&w_䰜ZdCX% teG\m q *WW%șp),U͜3?/ ffܷ$ތoD[X'{?2ϢN8Kw)^f1nHκ7p0-Wz`$MZ~|H0(ާ&N_TN]-EV-^{B]Q0kHAh0$o/Ɛ?Բx1kHfK!\\{e4!z+cճOqڿBa_7AGVQ'SZY/)f( ÊgfgYGqMY  Sƙ ə!LTyMiK"ȽXW2ďq,[Kv/s`]}S20y2pYt[L;?V=sZP`LLm۶m۶ub۶m<6~n?Qpj<6P-SEUChA=s6P}pww_AtbƟAæ'o)^&I/BlX Z8%op;4"eMa-鄍-aL6N*2Drr[Sѷ@'t5%E@)amFqцX'ɺК74>pOK;pyזsWcH"4lq{  Dӓș{xMhRD]|A1-ǒVl_[ixdzP: P&_š$Y[}inTz /((1~ğZdPg'_q|v_#n( [NbG;-iy Jkd:uf@şS(~ H"5_ya]^K"c&uO[Z7słܜhFsEGpM<|` Fwn7q=RN_`v>!EA.Pcd%Bњ7I, 6ZD qa# giXOGo*' }Pظ3<ݲ ' `x9vL7 0$b u/t5Κ`{z>h$] LZ*6)6 ̳__ cJک1x7I&PUȀIRsqk{ӦqÃ5Ͼ+Ǿ.gRfS`WM5^6d})[='#ؑ 5\1~-J 2uyuPsXgȲ}v.Aݮ>څכHd8э:x?S1]eh"D)tVn;-nB$B-{U ]anV JL^:hy;hf?8.գdŲQ26۽kD_pyU|FC7֞'>#Ŷ6n#I(B3A#,K4b"~ߘX[$–O@0@ũǯ;x^Cu>^qG6+Vs&nj8o'ΰQebp_F*dFCOD_YwN>wɌbIC%y:_J( %S_o LI: |`FO(efr:]SlJɐ;;K:+XEG{u*? XlrT2'/IQ/1LTP^6>"/N!P;i#MX0MD\-$вvyʝ:eXlڕ~ }[pz}bTchPsRA4@|@t !P"ɴ"=;FzJ'vtB׿0CQp AMe~EF\'Q ,#E_b(,Ǝ/P+xfDs(b<ԏk %}^X04^P䵄SA5.kܗ/Ԅ[nT/ݎ/6yfqHPT=v4b73sыu}7а~{ug7E@kwo|KF[ B5bFoՆ6QIU8{z"p&m)$=IYî}q\F!Xy&Y[!џHu|Vg,nQB2k|{aTE)G^"(w ҹF;4+JQR6+QЋs( ,-IO=\}{ƶ#6)KBQ6h7-Zm]^PW~!jJ"3M/ ii,G_d~b$@jS~A.!ϚSt baf; GHIKwץτ|!ץ`"\t wZ~7%j1/LE|5xާJ>+E|xnbj֍;)ny1BPOx m;]ղBĂE`yI:̱п%@LȉAY=si0?eֳmfr 88:֨[ osKp]'Sf뿜NIfWשr@Aƙ]c6ROd;g9G?SҴDaƨZ%c z`azޯX'Z#kcyVP;ajL5ǗB񑑦gi !I\/] Yht3AQa f{,rT]*<۫t@f+B+S*Q:FEM@e<6R'|C^~IehM..嶜of2Au37!J++ 7K_nd'nSCwh ̧ U9|`w+"^2oR '.s+Yj4A7!U=JY:nآYpR\Fj)hvXU6 \]S)8[X78Q~_9joXx-7X1f%qC.PۖKV?PAݳPoɢ')'IaAs][/}oJGYx7bؤ4U!#Lv(!lhubN쮱סz o4<'Tݾ_Qu+rp4=/LZ33Lٜ |`/9.Mă%QLj$b'm"&;zg.KbhZ!退]鰪Z1XѠVwI;$&QbFDG9c"G]$kI O;2UZujdZ2ڲ}6֒qﰚzm>fv4s$V  .;XDJu@A1 ǃqW9WZy;ꈩiZ.|p.CW5`?Ox/+^)Th/Nւ*!`GGVeghr=l-k Jhs87C1Z'}D \ޝ4F#!u" .OB']'}2c wЪymxɬp /n!, q{|gC t,W0'iFr`B~+3q(?t+'<:'ԉjĥG E"ƐnE]PdLְ^*N4~mhfpQ\[ZZA)ͧ Fo9zft&WفnI tȉБ|@싯?r/=2L.~u1awBނoaQA!|ĩiWb2)7)ͦ#VWz0Юv[Էkt4=zP1yT:Ushl5{^?C_ nkZMQIFsƖ>hc8JEJwNx0m:}U5*n7B}cp5b5ޟ.g闕){8}*ac7yΉRғ%6%'ÄAcلM`Jk {!;e[3[9^W`zG\gи.ԺմD7xڭWRf)'P TY}:bF9kk^*1~U8Od_F\F:X09 M7)pd^?(9!|֓AAx{EbEK-crcJB8.vDQ.U/S@xƫEwW}-qh7fK9ݣ{cv̙ -4G C GJKlRûE*̢J s}6YoF"Ӭ8oq+jTUlXǎE-i2a`q(gsvbM؞we7_@Js@98ub'tYkclbLef$L+to:+}'_YL>V##X/CN ' :ڛ8AX{{% fY6n#Pp QK~X|Qk u>[ې aO÷f%U9cqgP8 907  hIա}jMmNpq)Fܯ5L<2TyUkixY ~9!ٱɈXS#K&Ug(de0B}-n臺E\_k\y z,쿨^5^xNa ..YсS/̨֣ab#\7G",Ab{Tcig LwoQ 7%LeMVK2}<_^;cyq?qy ZK=ql?`,wZ&"03O|\[5Mpz@;x? v/0IDC>%_ƭݖhY/ֽvu#;\8Z]꯮v)Y!JJ\{l+ 1҆`z3:mn.ԑ(3;uGB-qPtݴsiZ OkۭmHLs:R246Bu O*aΛRJ{]nܭ$HJ]4hRR aFW]w$̠zk%ƣӞ@g=6t|uʨ$&U,$MqU)Ѽ$zRa' 7xzj}]%-QWN+W-Acr>«£jj`LԱbXvI"XrT2Fh@@AC2wo]+V=o*.ې7ߤtm|T!4xGY-p9PFR#*eTBn;:%ITx׼I}7KCK#Q~(ИLT\$R ᰦNc#>A}o3Y|I2=sAA/p=%OAwTWbU++$% 1xͩy$,HM&e-$6Z.vd(l-4VMI -cޓ-7‚E9OP[N%r@d2>*<Xhi"wy!9qŸ`[Q'j~˱/J ҦbZ# ڭb{cn!E1FөDb̡'ER! )D:]pyMRGɷCW{vj{\@jR|< }Z E>L,:uZA`Ɉ`tm9uq Yטg8]dWlR0nShml#bnj ))ʣ[l][_:F|]80m*:۶#tmi9C`ZJK<^1۴Dn]#%zZ%B鄙lؠ{vwWw0,i(: X_)8Qpw2- %@[kz}j9t3a,éfh|yҕ{ !LRjlt܏'>Ղы\: ?Z5CD7̑HaY/l>cY ?TTX#rD//%|$+eC}M >g%wh&n¤>;Q-Ia \[E# 9 G8ii>( ;$`f 4Hx y~}~\FcTGYz _fУrC ;+YŲOgIL?D-[g<x92iP Q~쫲ccV) ̦UMJ'sB,A95wsS%#0i9QRنcbxE.H4yi^n؈VR%* 6*Xu qi8Je64M?W͹T>|՛zΰЅ 8,z^l ߂1 N]9$^T1ƖkSOww 6b$N^P[,pPP-0 !6#`ReL-kއ@ g%7[-A Fў,Ah\0o^+]9YZSfT5[>x 7xXBhFۭủ ;u O5Am^S]'j?")ߒG5qy[%5f<./ؠmEwUNyw-#zlec yu@Ύ|8%}z0mpI0bu{, aMW{86FGGؔȑ<6ǐ屦8.},:?pDI}UNjOhb= |޺2QC'*}N/8n6%\*Li+k2S'o ְOTV0wTȀA#F(c1!\C1U.CE?y=( ,$ܵ8E{>b`)RO.g:Ajm1=69O>Y,S\)0& ;ҖY|w.lbnF_&#qkiPfQ%e.~~ا',xƸ1Zy j26!)}p 01xldih_3A|j%>q6S0@`"/\d~1ꁋމ~ʢ!Pчj}Pm0miɋ_GFee{gw'8(MBe\m|8>;@<]EmMje"GXY܅ l1ÂP"a2da1l߫7lmb M ?>vvX _'Qr`/@/eFVȤ.Goc/M9>Y"0zTb8ᯗ\v.wD80ҹ;Y%s'GTZC^:aqqhN?qG> endobj 213 0 obj << /Ascent 694 /CapHeight 686 /Descent -194 /FontName /LCTKNU+SFBX1440 /ItalicAngle 0 /StemV 50 /XHeight 444 /FontBBox [-218 -316 1652 915] /Flags 4 /CharSet (/quotedblleft/quotedblright/quoteright/comma/hyphen/period/zero/one/two/three/four/five/six/seven/eight/nine/A/D/E/I/N/S/T/quoteleft/a/d/e/g/i/l/m/n/p/r/s/t/y/afii10017/afii10020/afii10021/afii10026/afii10028/afii10030/afii10032/afii10033/afii10035/afii10036/afii10038/afii10065/afii10066/afii10067/afii10068/afii10069/afii10070/afii10072/afii10073/afii10074/afii10075/afii10076/afii10077/afii10078/afii10079/afii10080/afii10081/afii10082/afii10083/afii10084/afii10085/afii10086/afii10087/afii10088/afii10089/afii10091/afii10092/afii10093/afii10094/afii10096/afii10097) /FontFile 214 0 R >> endobj 708 0 obj [379 379 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 305 0 0 0 0 305 367 305 0 550 550 550 550 550 550 550 550 550 550 0 0 0 0 0 0 0 830 0 0 843 722 0 0 0 405 0 0 0 0 860 0 0 0 0 611 765 0 0 0 0 0 0 0 0 0 0 0 305 550 0 0 611 500 0 550 0 305 0 0 305 916 611 0 611 0 446 434 428 0 0 0 0 580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 830 0 0 660 861 0 0 0 861 0 861 0 1043 0 826 861 0 794 765 0 916 0 0 0 0 0 0 0 0 0 0 0 550 550 550 474 611 500 916 489 611 611 611 611 733 611 550 611 611 489 520 580 855 580 611 611 0 901 657 794 550 0 825 581 ] endobj 211 0 obj << /Length1 721 /Length2 12104 /Length3 532 /Length 12718 /Filter /FlateDecode >> stream xrUP]%.wwww8wLީyU>Y_ՋXY20qTĕLL&8rrG32@f_ bhin 2P12tػZXx]]]]\]@g QPԒPIȫ$@v G# @d;lLL-ɉv GmrbB 1FU)@V︝_4_871od]GG p@ ` 2cnRvfM]K/?_  hy#[J79m2?'BBvcwIdhWj3#S]@.x#^Dikbv&vZ9O[ _;@_`OP^@N6= 35qqt9#߻'H ;nyބ'*)G` vjPv8yjgajw{@0o̷u)uHb B8"[}*"-3ZQ{ ӿTDZ5 vN[YPc>^‡*2 e#niNZ-]C[2ea, pIc`_uFµ9J%uchR⩴»A&&K`VQiް%PC)Zܕͪ~M*VQ’=Yk$T($m6ʐT̹ ?l|O Cq޷H1ƪWk伍Fg"U1X5#.UȦ 0 $N$71꾍 ~m?#sr^X9+|30 ]NInH~,[{G9>Pp}u/xkQ|;M[SERa741>b{WIʃ 3-SB>.1ONRP9DW>u̗8z;ܝkp Ūާ 6:v}g=_|V@}fRuG,P$=qC ^ab >s,#je'c6Ɔ,ҏ$ JvJ}W mY,. C^5ZM^R=;eS3 hK)> !˝Ўqq*E? hNLftwIb+ȟPkUR^p]x8b,`sN֥[R0`( Ud9av{TLjdp)f3>mkjjebѾ1a1&}éD{oqzB` IosDTƾMϤqձLJCls/",-Eo,a'L~^2D=6pVǟ~-n&Z-dyp Y:3J 3+2!Oayv*C 0մzT8nFd޶/9#6R>LmߛmB:NżנHNXLDV443WhJ@Ѱ݃/e87OZp LZ&#w?!hx.Ap%5o?t|?B;͓iu:>i ^hhEemLC5iL$w B؅D,SrR`ip]3…F\A3"(ݗ.BEX|/XIc~Uπ|(M We(=lZB% "MB u5%3Kd)j+gE܇{22 l53I^V \"v,ΎyYD̼ao}Yu'+ W$_Rh˳x9F+kg%)t/91M.UD1+ ?WJ.#jrm;&+ֻtPPĜ&RLj8dV_d'lro‡6JJQ;;ҽÓ?nrT++?(CoK6g^exR߈ jYhgNY.Wڛƴ{+% GRd +F!֖#L 6̈́M<*kgn%`cd5We^4߃^i[\'ڦߌ{Gq0.ot44q#1Gv-!``-}DBH\9Ӡ)FřxmaPcxDz2`\>PKjyN"|Vzg-hĩn@లzڦ5Lh&ۮPdR h*yE2* ի(rlxe^7Dʼn g1jkt5R/yǮ8Ab(X c37?`K* P:(wC{('5T7'9A{ hPDGxٺga/RM1v0îo`Qxv~gZ)@R*֭}*xI$h&U9 6L'lު5eܘsaLfyR n7}J,T?:~#m%|݋l At9eugg%$Ljo jof&T#/=F*,|EPVv0̋3-w uiE,uPZ|y "\|sel\Q c?J5E5y2 =V1};.a͡fVUf5"UA(mog&, T(Gfw-CEacM^0'1ۏrJb2^ T+$T2j͝ 9>ՠf[_֙-ҵ@qh?Qbd2{ \ ,n͈ӝJ>/p{6[Q펈U.]Ca8i ꑨДTtFCUj@Fiy6fMobK|PI2Z6ढb<1`9E i݊󙪼whٹs&&!;OgҊ)t pz`}8$];M{+`0<o[u5X[\+{?SݞaG/؂[u-p?$a7q0nhK,xE/? Ž:rӺ0˦aEб.Xdu=B\-5+hH_/5;8ĖC_+_+.E+30F6RL% 5gš܀4̚5Ca{uxp/B@HzmIiPKJ\WkW!G̀>Џw~Ĉ;5 c0.a#Y3cd ̫`6etJ '1^GJ݈T]-֨^5`8ˮݟm̛} _7o V[1`KYnIs&/.t7j+?d;S5p0{T}$` !:62]3gHz} ;6FcH0SA8=Ir+Ǒ9 P *~h@F:#ȗ+LW+_s >Iih?I1t&2nڥ*hQ"Z7P,$pM wfO}>( Yjy`ѦcZrLv=1ȇ"t[:bٌ_ݰ'oY#\ZKNB6X~x?@W?oE7R͋kk5.FS?JT)D xF&(J`Q6.[v0u61䑸S>InRji| 5'7>@J05C/~}IU2T$a1*OM?[졌dE`}š@II_ *bJeari UN _|~˩Oޠ̘Q\Պbq->B9-zBedje T_sGߨ;@9[*1u]ne7{E& qTqY:0+X!/DB̓4&Ѯs/b-et?+;bn[C8AlԳT?_|KLre*:bM H~[ۻ*-Ӷ1[ #l/$_xJz%TP8kUs0F#`1cʽHP?yr{:ɲՔƨqҼ UZʗ*/C`a c#m4 9#zNX"Hal6D>֔"qljwʔ9K-#n#ZX=Z0HEp}'|H0kJp֛>X8pDV)[-9C ʱ wˆZ(3}!2FèE 1=T|CO^+|]aV_ -J%l#dƂy>QZ%֙}+^-l^HÌN~J5 ;XK~s2W~4oQRW|%o Cy%.q#h2ĴSMo]_eGm[&C>mDtO*V,!(s,Ū[MVi>ը/V]DejRcB+"1,|R&3ߡ UL6^QL= L}l/яm*|Ly2O(2nj:hc fxIR"*`~$UT }6u⏳(RCRV>q"નDZIVVz]Hr!G'\) $̂riِ#ﰽ)D q\K9&׷![ՙ<_XXimkYl/2,S43+&~ạ77~?FYކ< 3_=*7gEӜh<'3~ }vHڦgnͧP9We6Sg??BLJ7*#K"H^maz ?{dJwboOJ0_MԵ&0hމqWL.7Ŝeipx?4go-鳝O>FWۗ:[]OJo὇[ YbU6P NlfYBt+ ^H&j3d'qD0WsIZ%˟t)yG%T^H7xNx+|uoɹ>}X:d{_k b86DK| iT*}5(T/!=7ǬXAs$cT+}^S>9bXK+ݿĭ@䖠JWɅ}pk[ ]"^nm&g$¥n=q!*k6JgE ZsgiLo^}szGЅ1ԝv`.㩻t1x\;5,KlR8v=?J=v4V6_6qǃ Kb~N66C9?R)\0bصoZ7jY#My/Cz&a?$H 6knϗn@/T&$ YKv>'H/boؚ .q6rCߘSiΟ|* 䮸V2YuR%oq>xQ+C['b5} S#>3[Q~7fTaJ3 [c4۪9*^Ak܈6鲤 aR3.zm mV IY$ cjVF?%2d jq }t*j.5gLg{!s|G\%Qj >;֒B~<\g4DqC\W>/j9f}?Ph @vDK=_pՓ2 Va-Q `仾s̚@8ˇ^a0O\D7jN *~*c!]Į3Ѱu66:OO_kgfտר2%T-8#Yrlxp?jn^mR۱.8hx_gl#:gî`Us9RKN:#=En2X6l uirp|<8c8 / A ґSA茷rZXF_ ^:xky+@((-ga}Khӷ(IZ܌ħ[4'u= kfcHj8f2'.Jy,(.zN.}*|^qm xi-F6]fN~J ͑{9X2u%Ԧ?TqdHw9uHXuMYM7?qTBVe7W+5UQ X$z㓤9^*޶O M$W&ʋpO1RsbFNJB s-$>KkNHM|h1+Sj#}~?Anܥ:GvjҀ.H&+WXYg&;uDD&eꫬMHxCArtsi(j9t΢!tSmjc{UOӴy9WAUݡyNWG^!c2a>daqջC+e6P`Y~ -gR802#RfJd𯉷x|AH s(oiW3t <"1:ͧtǬx,ޖ^^EjR-麂2lkK 67Uk(*ës#C=dʩP%RM|XK N<ѓ9*2U4@#~_vjYwv 4 6 ?3q=\{_Ϙ32Zc9Z߀''Թ: iB$#p|: S>D,@Vpo~bK 9:bv7R"f>5a8̋RP9gIަ+ڭ+y 7qr׈^Fwv;;K#L/lsZ Su q~,Yu ^9Tne*-r?eȫstk J1 -LN$ˏ,N{t:Y2r֓e=47 BY Qr/+c4qjD%`}$rqf&wԨ_2j*~$BLX] 2{UcK~!J,Kt=("•9R}<H;)iA(tAnljoxʪ~0EOr$}$c@w!3uo q>dʳrH~7ń^塽ޝdv~#0{ZpH2\B8&Lق 5fYeMoI(`7fɞW>"ykQ]k 6;Bh+>~ S2_ #w;zn+TsmMpb{פ)#^q~DheY8 ?<uD_AsW k_E- eQ~σ(Rn77Iu) tEFpH@ݧebtshӥ@) k<@/zLD\~oyKl&<@_yA!Kx[.zC'! WM}D]LJ{z]@S|+RdĒt ˕=zhI/dw mρ,uf5l}5ZD'r5W"O/|pqOdĤm$3)+2e{cqs9zrBs ri?FNbuhp(r>o1;R,tM~~v:-C޳N,WQ41%a&BɴYڀq!l|ϵS|vHOTePguO]ǂZ7}oy74|͡t9SUO{EdB|:pN`We!@ +y@&1q~͜~{Ef|7mi l0Ԣ-l?E_s6g¼Z -+Ԭe,9!L ]<9Q rf.4~qT:~M 4\\ F2)9LD;GBS0W̯?5ܳESI7]Q+Ux׍#?P.+tpᘐ>/En=S:~ìTGjnAl A߹9EqYX8bz.f^d]2G8fAZ#jǨ-/'-4Z6 5^ð-aEsIQAx,u29ӹЪ? 0c7Ά~9v]%+-[vb'NuO+o&6 #Gg{[#Gkendstream endobj 212 0 obj << /Type /Font /Subtype /Type1 /Encoding 698 0 R /FirstChar 46 /LastChar 251 /Widths 709 0 R /BaseFont /FOAACB+SFRM1200 /FontDescriptor 210 0 R >> endobj 210 0 obj << /Ascent 689 /CapHeight 689 /Descent -194 /FontName /FOAACB+SFRM1200 /ItalicAngle 0 /StemV 50 /XHeight 430 /FontBBox [-185 -320 1420 942] /Flags 4 /CharSet (/period/zero/one/two/three/five/seven/afii10028/afii10033/afii10070/afii10080/afii10082/afii10083/afii10084/afii10087/afii10093) /FontFile 211 0 R >> endobj 709 0 obj [272 0 489 489 489 489 0 489 0 489 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 761 0 0 0 0 761 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 435 0 0 0 0 0 0 0 0 489 0 544 435 489 0 0 517 0 0 0 0 0 707 ] endobj 208 0 obj << /Length1 721 /Length2 5958 /Length3 532 /Length 6580 /Filter /FlateDecode >> stream xtePJm@,. 000hnA!  $Aw=֫z޿[ϖ^haP+[#+ b`0 *DDF ; b\}`Gٖ C u{zzJ{{p=$9@ C@9-mM%@  l Pۂ = laP;8sE #a. }E-M}+?COh-?ݱZ࿖ͿֿY'l؀P,yz"! d@4. 4`v 8 sBA]'*2P' ;m0Ij{ IFEdpӋ򩍿.RSVTSfwJ+@mav`@%no௴6CiD3n?deao8x|<>~!EA ?_ylabNMe ShlSlN|Tx5L!|9J}oHSgI;șg;2}= &.<3x^V߰CW)Zл5H˥6Z&)E''ݪn{a2~XWM0="k 91fN=9~I;,m:Gh3*+#'>V0E&y=yAĂD -b)RAjL@bɾ=NY-^tQmϛe֤N3>2k{ܩg OFl2(ߒ^$1N7kUؘ֋L5\?*7ʇEg%'BNe%>/ib}\t/VZS.If:OA5ʰB;[2ArFN ^ SM\]`̯+:JW=Ig}piPtg .J:!i_ӟTjfW /RGn3dJ!3U]@}JPn^e_Vu;l%UM0c/ݬ%Jd`ڭ,w@kh\|S qO}Yi{I8tzghk\tj$Y?<~Hn/5vElQK׳<ĚJ^chNp^P͓xpY=>>3E Nƀng,ez>!lkx 6|ȚuδWwң\;SŻJ >Y8Fv΁ghi} b;&ݺwIrΩuD )}y甭65'RSHMF,^!F8z,B,2FXm} ff1˘)uf !pXٿ# UMaEڅ߬"P~_Zkʷov7l4D>蓙l^)pk[llLY_'Cc %Z$?6D%g=nNaC6J# W0oxD z\WKHELc.)~z&:x66I 8Yʈ*36DY.'q]qc1FidM;Mewj,v3H+{[WYypH#'ګT4'X|aWd ҍ &C;}u[^/N$dn0}_,9uH=WvV~u}`j}%RRv5!Gw[Uç+"ƂȀ]h0?; i7Iv}T׃\ˇΟ 䚓w!K{D!N#)e(78TtGůXOMfXw :Є$BL~,mBPu;BHUg%Y3mS΂)k~@ljճ>EBrF=NDCc:n 2?q'ăYl^bw5W .u^!e!x:h~.5hR6[c#~iq8AA=GF._8 ͂ iE&H5I-1.:S]Tmid41Dњߙ' R!Ejy|&ń?B%x}J]=sQ:y5xP}_㊔X{$vk o7WLQ>anhO3[ͦ.YKUR5-)kû-6/NEkZR飓׷w8yVw[&tGnzZQJi&bedWu(Q6UITR~]S5X"\?Tl$HD]O-JUs̓a;2]U yz9>|Gcwz4#G/PģG`[㙱xuac[6;R-E툱 &"Rh&!\<7C ^#si(g&4hBE9dgT\۵׽6PZ:nkp׭EeU ؉F6VtҜzjMKhLQ9tS'']% y‹pMh^ķ_ ؠ_~H`ŴEx.3Bqqe1{hþ6O1W S))Yh.AR^hƎ&?ekm߼ bC zTL-gϏJH$sL%1]^cѲS^y17P $1fց@}Y˶vѤ\e~M_+bp44,Bis[IőݲtLO?I;Ϡߋ۸֒-R;zg"]p'=oWmH6 [.݉S,TSAAFUFj5)C= Qѫ&DϺprMTuɋ?I65v>Fz/.:ꆓQa6*U\|,h^cq-_=3u 3G[{ޔ6=$u6tJ1nXeQ}!U2t=*Bq,Cّe"S.z]-qfoDWMba_|H͍s K1) 1hwc/RE ˼Ӯ\Jcf`,R'xVHMZCA_Fnl%tf7~\ְ[^cP^ 2"%=uS1:oehŸC=?r ~eJA[ͮӚP=%fp8vUҴpo[-&N'dyE\r?k7ЋȇL\? p![^kCUS#"~=&p;d5E oծynŇ9hʝ Xi~LƋ$l۶o4V.(A$wN*D/M6_fݞwvaQͼ7F"O)5N6 ٜ?)*BjJ),ĥh߫$l'xȒrՖ|mEZ+(}tY=º!;9Or񬳤|,Bq9xdW6؂ F,U:S sGW Zk%v\l ->1+"Xh"妦u~}+Ho\=)q)B;"lGf3_w/CMKq?X'}'h5J_BQn2\GaYVzwVթ岼||kpo=ٵ;kK=x\^Ɔ o;аQ ԜRi {P[@[|7=(K_ĉvV=CEj xINiB"o|ٻ]ޓ@!Qltb=?-F4E}ٕ[SM& 0 M~ȿ/Y}_m3yfQ)&𜐺Ma6s{j;~C)iEN J`~[7c8^t'Tfҽc.xAWeUtNf<t-^ M5PNNF<ȴQL3,,v06#r"xxhRЊzn{9ʖ{v!҈S!zG;}BZ NFbt 0BxyVW̙(]ٯd{y>rZ]Wٝˎ: Nq^pzz=Rht?- *'lD| jRJn122/QERavrņd1|{𔵢5{S-z2R LjafL~)DWn=LylHPHF=e-:}7w_&<. 5 sefae+uU4t}_͕UFiv,1qhPY?׫;B)`c|$$!?OV'-e;?ũΘ\t3RFG gq/dn 7Ѓ|\$鯓&9M73ʑShڇ֚Lɷp"3>&֭&}RPF[*]W%օP,6t1NjC*?+1%nd;58.bfdW?_!~>!AN#FQk}a)k~|Y<*wGw$uQ>e:Mc/3Y4|-*lr\dw}ufq[íg;rpy[evo/K5LJKbsy+ѻ`mfsrsS=A}w&5̧A#cZw)Ha6Dj?h쭱W^wz\s<>F#U6?e7>± כS2f7S9jco;dWXqڼ:zaR<7oiЎ0f}rw 32wUo+@\L*}-UH=bMxm\{*ߜ._&T6ht 5{B>g+q,,r\X{l! s;}yendstream endobj 209 0 obj << /Type /Font /Subtype /Type1 /Encoding 698 0 R /FirstChar 65 /LastChar 243 /Widths 710 0 R /BaseFont /KHFKKP+SFRM1728 /FontDescriptor 207 0 R >> endobj 207 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /KHFKKP+SFRM1728 /ItalicAngle 0 /StemV 50 /XHeight 430 /FontBBox [-174 -318 1347 949] /Flags 4 /CharSet (/A/D/E/I/N/S/T/afii10034/afii10067/afii10069/afii10076/afii10080/afii10083/afii10084/afii10085) /FontFile 208 0 R >> endobj 710 0 obj [704 0 0 718 639 0 0 0 339 0 0 0 0 704 0 0 0 0 522 679 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 639 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 470 0 522 0 0 0 0 0 522 0 0 0 470 0 0 418 470 496 ] endobj 238 0 obj << /Type /Pages /Count 6 /Parent 711 0 R /Kids [202 0 R 240 0 R 270 0 R 282 0 R 304 0 R 309 0 R] >> endobj 319 0 obj << /Type /Pages /Count 6 /Parent 711 0 R /Kids [316 0 R 321 0 R 325 0 R 329 0 R 334 0 R 338 0 R] >> endobj 345 0 obj << /Type /Pages /Count 6 /Parent 711 0 R /Kids [342 0 R 347 0 R 351 0 R 355 0 R 359 0 R 363 0 R] >> endobj 370 0 obj << /Type /Pages /Count 6 /Parent 711 0 R /Kids [367 0 R 372 0 R 376 0 R 380 0 R 384 0 R 388 0 R] >> endobj 395 0 obj << /Type /Pages /Count 6 /Parent 711 0 R /Kids [392 0 R 397 0 R 401 0 R 405 0 R 409 0 R 413 0 R] >> endobj 420 0 obj << /Type /Pages /Count 6 /Parent 711 0 R /Kids [417 0 R 422 0 R 426 0 R 430 0 R 434 0 R 438 0 R] >> endobj 445 0 obj << /Type /Pages /Count 6 /Parent 712 0 R /Kids [442 0 R 447 0 R 451 0 R 455 0 R 459 0 R 463 0 R] >> endobj 470 0 obj << /Type /Pages /Count 6 /Parent 712 0 R /Kids [467 0 R 472 0 R 476 0 R 480 0 R 484 0 R 488 0 R] >> endobj 495 0 obj << /Type /Pages /Count 6 /Parent 712 0 R /Kids [492 0 R 497 0 R 501 0 R 506 0 R 510 0 R 514 0 R] >> endobj 521 0 obj << /Type /Pages /Count 6 /Parent 712 0 R /Kids [518 0 R 523 0 R 531 0 R 535 0 R 539 0 R 543 0 R] >> endobj 554 0 obj << /Type /Pages /Count 6 /Parent 712 0 R /Kids [551 0 R 556 0 R 560 0 R 564 0 R 568 0 R 572 0 R] >> endobj 579 0 obj << /Type /Pages /Count 6 /Parent 712 0 R /Kids [576 0 R 581 0 R 585 0 R 589 0 R 593 0 R 597 0 R] >> endobj 604 0 obj << /Type /Pages /Count 6 /Parent 713 0 R /Kids [601 0 R 606 0 R 610 0 R 614 0 R 618 0 R 625 0 R] >> endobj 632 0 obj << /Type /Pages /Count 6 /Parent 713 0 R /Kids [629 0 R 634 0 R 643 0 R 647 0 R 651 0 R 657 0 R] >> endobj 664 0 obj << /Type /Pages /Count 6 /Parent 713 0 R /Kids [661 0 R 666 0 R 670 0 R 674 0 R 678 0 R 682 0 R] >> endobj 689 0 obj << /Type /Pages /Count 3 /Parent 713 0 R /Kids [686 0 R 691 0 R 695 0 R] >> endobj 711 0 obj << /Type /Pages /Count 36 /Parent 714 0 R /Kids [238 0 R 319 0 R 345 0 R 370 0 R 395 0 R 420 0 R] >> endobj 712 0 obj << /Type /Pages /Count 36 /Parent 714 0 R /Kids [445 0 R 470 0 R 495 0 R 521 0 R 554 0 R 579 0 R] >> endobj 713 0 obj << /Type /Pages /Count 21 /Parent 714 0 R /Kids [604 0 R 632 0 R 664 0 R 689 0 R] >> endobj 714 0 obj << /Type /Pages /Count 93 /Kids [711 0 R 712 0 R 713 0 R] >> endobj 715 0 obj << /Type /Outlines /First 7 0 R /Last 199 0 R /Count 23 >> endobj 199 0 obj << /Title 200 0 R /A 197 0 R /Parent 715 0 R /Prev 123 0 R >> endobj 195 0 obj << /Title 196 0 R /A 193 0 R /Parent 123 0 R /Prev 191 0 R >> endobj 191 0 obj << /Title 192 0 R /A 189 0 R /Parent 123 0 R /Prev 187 0 R /Next 195 0 R >> endobj 187 0 obj << /Title 188 0 R /A 185 0 R /Parent 123 0 R /Prev 183 0 R /Next 191 0 R >> endobj 183 0 obj << /Title 184 0 R /A 181 0 R /Parent 123 0 R /Prev 179 0 R /Next 187 0 R >> endobj 179 0 obj << /Title 180 0 R /A 177 0 R /Parent 123 0 R /Prev 175 0 R /Next 183 0 R >> endobj 175 0 obj << /Title 176 0 R /A 173 0 R /Parent 123 0 R /Prev 171 0 R /Next 179 0 R >> endobj 171 0 obj << /Title 172 0 R /A 169 0 R /Parent 123 0 R /Prev 167 0 R /Next 175 0 R >> endobj 167 0 obj << /Title 168 0 R /A 165 0 R /Parent 123 0 R /Prev 163 0 R /Next 171 0 R >> endobj 163 0 obj << /Title 164 0 R /A 161 0 R /Parent 123 0 R /Prev 159 0 R /Next 167 0 R >> endobj 159 0 obj << /Title 160 0 R /A 157 0 R /Parent 123 0 R /Prev 155 0 R /Next 163 0 R >> endobj 155 0 obj << /Title 156 0 R /A 153 0 R /Parent 123 0 R /Prev 151 0 R /Next 159 0 R >> endobj 151 0 obj << /Title 152 0 R /A 149 0 R /Parent 123 0 R /Prev 147 0 R /Next 155 0 R >> endobj 147 0 obj << /Title 148 0 R /A 145 0 R /Parent 123 0 R /Prev 143 0 R /Next 151 0 R >> endobj 143 0 obj << /Title 144 0 R /A 141 0 R /Parent 123 0 R /Prev 139 0 R /Next 147 0 R >> endobj 139 0 obj << /Title 140 0 R /A 137 0 R /Parent 123 0 R /Prev 135 0 R /Next 143 0 R >> endobj 135 0 obj << /Title 136 0 R /A 133 0 R /Parent 123 0 R /Prev 131 0 R /Next 139 0 R >> endobj 131 0 obj << /Title 132 0 R /A 129 0 R /Parent 123 0 R /Prev 127 0 R /Next 135 0 R >> endobj 127 0 obj << /Title 128 0 R /A 125 0 R /Parent 123 0 R /Next 131 0 R >> endobj 123 0 obj << /Title 124 0 R /A 121 0 R /Parent 715 0 R /Prev 119 0 R /Next 199 0 R /First 127 0 R /Last 195 0 R /Count -18 >> endobj 119 0 obj << /Title 120 0 R /A 117 0 R /Parent 715 0 R /Prev 107 0 R /Next 123 0 R >> endobj 115 0 obj << /Title 116 0 R /A 113 0 R /Parent 107 0 R /Prev 111 0 R >> endobj 111 0 obj << /Title 112 0 R /A 109 0 R /Parent 107 0 R /Next 115 0 R >> endobj 107 0 obj << /Title 108 0 R /A 105 0 R /Parent 715 0 R /Prev 103 0 R /Next 119 0 R /First 111 0 R /Last 115 0 R /Count -2 >> endobj 103 0 obj << /Title 104 0 R /A 101 0 R /Parent 715 0 R /Prev 99 0 R /Next 107 0 R >> endobj 99 0 obj << /Title 100 0 R /A 97 0 R /Parent 715 0 R /Prev 95 0 R /Next 103 0 R >> endobj 95 0 obj << /Title 96 0 R /A 93 0 R /Parent 715 0 R /Prev 91 0 R /Next 99 0 R >> endobj 91 0 obj << /Title 92 0 R /A 89 0 R /Parent 715 0 R /Prev 79 0 R /Next 95 0 R >> endobj 87 0 obj << /Title 88 0 R /A 85 0 R /Parent 79 0 R /Prev 83 0 R >> endobj 83 0 obj << /Title 84 0 R /A 81 0 R /Parent 79 0 R /Next 87 0 R >> endobj 79 0 obj << /Title 80 0 R /A 77 0 R /Parent 715 0 R /Prev 75 0 R /Next 91 0 R /First 83 0 R /Last 87 0 R /Count -2 >> endobj 75 0 obj << /Title 76 0 R /A 73 0 R /Parent 715 0 R /Prev 71 0 R /Next 79 0 R >> endobj 71 0 obj << /Title 72 0 R /A 69 0 R /Parent 715 0 R /Prev 67 0 R /Next 75 0 R >> endobj 67 0 obj << /Title 68 0 R /A 65 0 R /Parent 715 0 R /Prev 63 0 R /Next 71 0 R >> endobj 63 0 obj << /Title 64 0 R /A 61 0 R /Parent 715 0 R /Prev 59 0 R /Next 67 0 R >> endobj 59 0 obj << /Title 60 0 R /A 57 0 R /Parent 715 0 R /Prev 55 0 R /Next 63 0 R >> endobj 55 0 obj << /Title 56 0 R /A 53 0 R /Parent 715 0 R /Prev 51 0 R /Next 59 0 R >> endobj 51 0 obj << /Title 52 0 R /A 49 0 R /Parent 715 0 R /Prev 47 0 R /Next 55 0 R >> endobj 47 0 obj << /Title 48 0 R /A 45 0 R /Parent 715 0 R /Prev 43 0 R /Next 51 0 R >> endobj 43 0 obj << /Title 44 0 R /A 41 0 R /Parent 715 0 R /Prev 39 0 R /Next 47 0 R >> endobj 39 0 obj << /Title 40 0 R /A 37 0 R /Parent 715 0 R /Prev 35 0 R /Next 43 0 R >> endobj 35 0 obj << /Title 36 0 R /A 33 0 R /Parent 715 0 R /Prev 31 0 R /Next 39 0 R >> endobj 31 0 obj << /Title 32 0 R /A 29 0 R /Parent 715 0 R /Prev 27 0 R /Next 35 0 R >> endobj 27 0 obj << /Title 28 0 R /A 25 0 R /Parent 715 0 R /Prev 7 0 R /Next 31 0 R >> endobj 23 0 obj << /Title 24 0 R /A 21 0 R /Parent 7 0 R /Prev 19 0 R >> endobj 19 0 obj << /Title 20 0 R /A 17 0 R /Parent 7 0 R /Prev 15 0 R /Next 23 0 R >> endobj 15 0 obj << /Title 16 0 R /A 13 0 R /Parent 7 0 R /Prev 11 0 R /Next 19 0 R >> endobj 11 0 obj << /Title 12 0 R /A 9 0 R /Parent 7 0 R /Next 15 0 R >> endobj 7 0 obj << /Title 8 0 R /A 5 0 R /Parent 715 0 R /Next 27 0 R /First 11 0 R /Last 23 0 R /Count -4 >> endobj 716 0 obj << /Names [(Doc-Start) 206 0 R (Item.1) 526 0 R (Item.10) 622 0 R (Item.11) 623 0 R (Item.12) 654 0 R (Item.13) 655 0 R (Item.2) 527 0 R (Item.3) 528 0 R (Item.4) 529 0 R (Item.5) 546 0 R (Item.6) 547 0 R (Item.7) 548 0 R (Item.8) 549 0 R (Item.9) 621 0 R (page.1) 205 0 R (page.10) 331 0 R (page.11) 336 0 R (page.12) 340 0 R (page.13) 344 0 R (page.14) 349 0 R (page.15) 353 0 R (page.16) 357 0 R (page.17) 361 0 R (page.18) 365 0 R (page.19) 369 0 R (page.2) 242 0 R (page.20) 374 0 R (page.21) 378 0 R (page.22) 382 0 R (page.23) 386 0 R (page.24) 390 0 R (page.25) 394 0 R (page.26) 399 0 R (page.27) 403 0 R (page.28) 407 0 R (page.29) 411 0 R (page.3) 272 0 R (page.30) 415 0 R (page.31) 419 0 R (page.32) 424 0 R (page.33) 428 0 R (page.34) 432 0 R (page.35) 436 0 R (page.36) 440 0 R (page.37) 444 0 R (page.38) 449 0 R (page.39) 453 0 R (page.4) 284 0 R (page.40) 457 0 R (page.41) 461 0 R (page.42) 465 0 R (page.43) 469 0 R (page.44) 474 0 R (page.45) 478 0 R (page.46) 482 0 R (page.47) 486 0 R (page.48) 490 0 R (page.49) 494 0 R (page.5) 306 0 R (page.50) 499 0 R (page.51) 503 0 R (page.52) 508 0 R (page.53) 512 0 R (page.54) 516 0 R (page.55) 520 0 R (page.56) 525 0 R (page.57) 533 0 R (page.58) 537 0 R (page.59) 541 0 R (page.6) 311 0 R (page.60) 545 0 R (page.61) 553 0 R (page.62) 558 0 R (page.63) 562 0 R (page.64) 566 0 R (page.65) 570 0 R (page.66) 574 0 R (page.67) 578 0 R (page.68) 583 0 R (page.69) 587 0 R (page.7) 318 0 R (page.70) 591 0 R (page.71) 595 0 R (page.72) 599 0 R (page.73) 603 0 R (page.74) 608 0 R (page.75) 612 0 R (page.76) 616 0 R (page.77) 620 0 R (page.78) 627 0 R (page.79) 631 0 R (page.8) 323 0 R (page.80) 636 0 R (page.81) 645 0 R (page.82) 649 0 R (page.83) 653 0 R (page.84) 659 0 R (page.85) 663 0 R (page.86) 668 0 R (page.87) 672 0 R (page.88) 676 0 R (page.89) 680 0 R (page.9) 327 0 R (page.90) 684 0 R (page.91) 688 0 R (page.92) 693 0 R (page.93) 697 0 R (section*.1) 216 0 R (section*.10) 38 0 R (section*.11) 42 0 R (section*.12) 46 0 R (section*.13) 50 0 R (section*.14) 54 0 R (section*.15) 58 0 R (section*.16) 62 0 R (section*.17) 66 0 R (section*.18) 70 0 R (section*.19) 74 0 R (section*.2) 6 0 R (section*.20) 78 0 R (section*.21) 82 0 R (section*.22) 86 0 R (section*.23) 90 0 R (section*.24) 94 0 R (section*.25) 98 0 R (section*.26) 102 0 R (section*.27) 106 0 R (section*.28) 110 0 R (section*.29) 114 0 R (section*.3) 10 0 R (section*.30) 118 0 R (section*.31) 122 0 R (section*.32) 126 0 R (section*.33) 130 0 R (section*.34) 134 0 R (section*.35) 138 0 R (section*.36) 142 0 R (section*.37) 146 0 R (section*.38) 150 0 R (section*.39) 154 0 R (section*.4) 14 0 R (section*.40) 158 0 R (section*.41) 162 0 R (section*.42) 166 0 R (section*.43) 170 0 R (section*.44) 174 0 R (section*.45) 178 0 R (section*.46) 182 0 R (section*.47) 186 0 R (section*.48) 190 0 R (section*.49) 194 0 R (section*.5) 18 0 R (section*.50) 198 0 R (section*.6) 22 0 R (section*.7) 26 0 R (section*.8) 30 0 R (section*.9) 34 0 R] /Limits [(Doc-Start) (section*.9)] >> endobj 717 0 obj << /Kids [716 0 R] >> endobj 718 0 obj << /Dests 717 0 R >> endobj 719 0 obj << /Type /Catalog /Pages 714 0 R /Outlines 715 0 R /Names 718 0 R /PageMode /UseOutlines /OpenAction 201 0 R >> endobj 720 0 obj << /Author(\376\377)/Title(\376\377\000r\000u\000:\000g\000a\000m\000e\000d\000e\000v\000:\000d\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords() /CreationDate (D:20130527102700+04'00') /PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4) >> endobj xref 0 721 0000000001 65535 f 0000000002 00000 f 0000000003 00000 f 0000000004 00000 f 0000000000 00000 f 0000000009 00000 n 0000029676 00000 n 0000686953 00000 n 0000000055 00000 n 0000000211 00000 n 0000029737 00000 n 0000686881 00000 n 0000000257 00000 n 0000000412 00000 n 0000033713 00000 n 0000686795 00000 n 0000000459 00000 n 0000000769 00000 n 0000036874 00000 n 0000686709 00000 n 0000000816 00000 n 0000000987 00000 n 0000047239 00000 n 0000686636 00000 n 0000001034 00000 n 0000001173 00000 n 0000051327 00000 n 0000686549 00000 n 0000001220 00000 n 0000001305 00000 n 0000057936 00000 n 0000686461 00000 n 0000001352 00000 n 0000001453 00000 n 0000064689 00000 n 0000686373 00000 n 0000001500 00000 n 0000001745 00000 n 0000068359 00000 n 0000686285 00000 n 0000001793 00000 n 0000002139 00000 n 0000068421 00000 n 0000686197 00000 n 0000002187 00000 n 0000002504 00000 n 0000101803 00000 n 0000686109 00000 n 0000002552 00000 n 0000002669 00000 n 0000105339 00000 n 0000686021 00000 n 0000002717 00000 n 0000002938 00000 n 0000125604 00000 n 0000685933 00000 n 0000002986 00000 n 0000003279 00000 n 0000140482 00000 n 0000685845 00000 n 0000003327 00000 n 0000003478 00000 n 0000140544 00000 n 0000685757 00000 n 0000003526 00000 n 0000003672 00000 n 0000144413 00000 n 0000685669 00000 n 0000003720 00000 n 0000003887 00000 n 0000151962 00000 n 0000685581 00000 n 0000003935 00000 n 0000004262 00000 n 0000162275 00000 n 0000685493 00000 n 0000004310 00000 n 0000004515 00000 n 0000173775 00000 n 0000685368 00000 n 0000004563 00000 n 0000004669 00000 n 0000180925 00000 n 0000685294 00000 n 0000004717 00000 n 0000004896 00000 n 0000208061 00000 n 0000685220 00000 n 0000004944 00000 n 0000005091 00000 n 0000216951 00000 n 0000685132 00000 n 0000005139 00000 n 0000005341 00000 n 0000229457 00000 n 0000685044 00000 n 0000005389 00000 n 0000005599 00000 n 0000245145 00000 n 0000684954 00000 n 0000005647 00000 n 0000005754 00000 n 0000256195 00000 n 0000684862 00000 n 0000005803 00000 n 0000005902 00000 n 0000267056 00000 n 0000684730 00000 n 0000005951 00000 n 0000006274 00000 n 0000270949 00000 n 0000684651 00000 n 0000006323 00000 n 0000006463 00000 n 0000283284 00000 n 0000684572 00000 n 0000006512 00000 n 0000006620 00000 n 0000283347 00000 n 0000684479 00000 n 0000006669 00000 n 0000006936 00000 n 0000316002 00000 n 0000684346 00000 n 0000006985 00000 n 0000007156 00000 n 0000316065 00000 n 0000684267 00000 n 0000007205 00000 n 0000007377 00000 n 0000319360 00000 n 0000684174 00000 n 0000007426 00000 n 0000007502 00000 n 0000323246 00000 n 0000684081 00000 n 0000007551 00000 n 0000007611 00000 n 0000331111 00000 n 0000683988 00000 n 0000007660 00000 n 0000007792 00000 n 0000331174 00000 n 0000683895 00000 n 0000007841 00000 n 0000008094 00000 n 0000334838 00000 n 0000683802 00000 n 0000008143 00000 n 0000008416 00000 n 0000335027 00000 n 0000683709 00000 n 0000008465 00000 n 0000008741 00000 n 0000338178 00000 n 0000683616 00000 n 0000008790 00000 n 0000008962 00000 n 0000338241 00000 n 0000683523 00000 n 0000009011 00000 n 0000009255 00000 n 0000338303 00000 n 0000683430 00000 n 0000009304 00000 n 0000009620 00000 n 0000341787 00000 n 0000683337 00000 n 0000009669 00000 n 0000009745 00000 n 0000345542 00000 n 0000683244 00000 n 0000009794 00000 n 0000009958 00000 n 0000350184 00000 n 0000683151 00000 n 0000010007 00000 n 0000010139 00000 n 0000353470 00000 n 0000683058 00000 n 0000010188 00000 n 0000010296 00000 n 0000353533 00000 n 0000682965 00000 n 0000010345 00000 n 0000010405 00000 n 0000353596 00000 n 0000682872 00000 n 0000010454 00000 n 0000010562 00000 n 0000357238 00000 n 0000682779 00000 n 0000010611 00000 n 0000010879 00000 n 0000357301 00000 n 0000682700 00000 n 0000010928 00000 n 0000011156 00000 n 0000360726 00000 n 0000682621 00000 n 0000011205 00000 n 0000011383 00000 n 0000012943 00000 n 0000015716 00000 n 0000011435 00000 n 0000015528 00000 n 0000015591 00000 n 0000679580 00000 n 0000672716 00000 n 0000679416 00000 n 0000671926 00000 n 0000658923 00000 n 0000671762 00000 n 0000657499 00000 n 0000631001 00000 n 0000657335 00000 n 0000015653 00000 n 0000013187 00000 n 0000629577 00000 n 0000598275 00000 n 0000629413 00000 n 0000013342 00000 n 0000596228 00000 n 0000556885 00000 n 0000596065 00000 n 0000013498 00000 n 0000013654 00000 n 0000013810 00000 n 0000013965 00000 n 0000014119 00000 n 0000014274 00000 n 0000014430 00000 n 0000014587 00000 n 0000014744 00000 n 0000014900 00000 n 0000015057 00000 n 0000015214 00000 n 0000015371 00000 n 0000680281 00000 n 0000022542 00000 n 0000018071 00000 n 0000015840 00000 n 0000022479 00000 n 0000018403 00000 n 0000018560 00000 n 0000018717 00000 n 0000018874 00000 n 0000019031 00000 n 0000019188 00000 n 0000019345 00000 n 0000019502 00000 n 0000019659 00000 n 0000019816 00000 n 0000019973 00000 n 0000020130 00000 n 0000020287 00000 n 0000020442 00000 n 0000020598 00000 n 0000020754 00000 n 0000020911 00000 n 0000021068 00000 n 0000021225 00000 n 0000021381 00000 n 0000021538 00000 n 0000021694 00000 n 0000021851 00000 n 0000022008 00000 n 0000022165 00000 n 0000022322 00000 n 0000025088 00000 n 0000023585 00000 n 0000022627 00000 n 0000025025 00000 n 0000023773 00000 n 0000023930 00000 n 0000024087 00000 n 0000024243 00000 n 0000024400 00000 n 0000024557 00000 n 0000024713 00000 n 0000024870 00000 n 0000029799 00000 n 0000028189 00000 n 0000025173 00000 n 0000029613 00000 n 0000555556 00000 n 0000525794 00000 n 0000555392 00000 n 0000028361 00000 n 0000028567 00000 n 0000028794 00000 n 0000029022 00000 n 0000525475 00000 n 0000518148 00000 n 0000525314 00000 n 0000029205 00000 n 0000029415 00000 n 0000516926 00000 n 0000492680 00000 n 0000516762 00000 n 0000490695 00000 n 0000435958 00000 n 0000490532 00000 n 0000033775 00000 n 0000033325 00000 n 0000029936 00000 n 0000033650 00000 n 0000033457 00000 n 0000036935 00000 n 0000036699 00000 n 0000033886 00000 n 0000036811 00000 n 0000434433 00000 n 0000399616 00000 n 0000434269 00000 n 0000039716 00000 n 0000039541 00000 n 0000037072 00000 n 0000039653 00000 n 0000680398 00000 n 0000043535 00000 n 0000043360 00000 n 0000039840 00000 n 0000043472 00000 n 0000047301 00000 n 0000047064 00000 n 0000043646 00000 n 0000047176 00000 n 0000051389 00000 n 0000050947 00000 n 0000047412 00000 n 0000051264 00000 n 0000051079 00000 n 0000055021 00000 n 0000054846 00000 n 0000051500 00000 n 0000054958 00000 n 0000057998 00000 n 0000057761 00000 n 0000055119 00000 n 0000057873 00000 n 0000061680 00000 n 0000061505 00000 n 0000058109 00000 n 0000061617 00000 n 0000680515 00000 n 0000064751 00000 n 0000064514 00000 n 0000061778 00000 n 0000064626 00000 n 0000068483 00000 n 0000068184 00000 n 0000064862 00000 n 0000068296 00000 n 0000071972 00000 n 0000071797 00000 n 0000068594 00000 n 0000071909 00000 n 0000075855 00000 n 0000075680 00000 n 0000072083 00000 n 0000075792 00000 n 0000078916 00000 n 0000078741 00000 n 0000075953 00000 n 0000078853 00000 n 0000082564 00000 n 0000082389 00000 n 0000079014 00000 n 0000082501 00000 n 0000680632 00000 n 0000086324 00000 n 0000086149 00000 n 0000082675 00000 n 0000086261 00000 n 0000090230 00000 n 0000090055 00000 n 0000086448 00000 n 0000090167 00000 n 0000094079 00000 n 0000093904 00000 n 0000090315 00000 n 0000094016 00000 n 0000098140 00000 n 0000097965 00000 n 0000094177 00000 n 0000098077 00000 n 0000101865 00000 n 0000101628 00000 n 0000098225 00000 n 0000101740 00000 n 0000105401 00000 n 0000105164 00000 n 0000101976 00000 n 0000105276 00000 n 0000680749 00000 n 0000109266 00000 n 0000109091 00000 n 0000105512 00000 n 0000109203 00000 n 0000113331 00000 n 0000113156 00000 n 0000109364 00000 n 0000113268 00000 n 0000117907 00000 n 0000117732 00000 n 0000113442 00000 n 0000117844 00000 n 0000122010 00000 n 0000121835 00000 n 0000117992 00000 n 0000121947 00000 n 0000125666 00000 n 0000125429 00000 n 0000122121 00000 n 0000125541 00000 n 0000129680 00000 n 0000129505 00000 n 0000125777 00000 n 0000129617 00000 n 0000680866 00000 n 0000133245 00000 n 0000133070 00000 n 0000129791 00000 n 0000133182 00000 n 0000136876 00000 n 0000136701 00000 n 0000133343 00000 n 0000136813 00000 n 0000140606 00000 n 0000140307 00000 n 0000136987 00000 n 0000140419 00000 n 0000144475 00000 n 0000144238 00000 n 0000140717 00000 n 0000144350 00000 n 0000148246 00000 n 0000148071 00000 n 0000144573 00000 n 0000148183 00000 n 0000152024 00000 n 0000151787 00000 n 0000148344 00000 n 0000151899 00000 n 0000680983 00000 n 0000155793 00000 n 0000155618 00000 n 0000152161 00000 n 0000155730 00000 n 0000158843 00000 n 0000158668 00000 n 0000155904 00000 n 0000158780 00000 n 0000162337 00000 n 0000162100 00000 n 0000158941 00000 n 0000162212 00000 n 0000166252 00000 n 0000166077 00000 n 0000162461 00000 n 0000166189 00000 n 0000169332 00000 n 0000169157 00000 n 0000166363 00000 n 0000169269 00000 n 0000173836 00000 n 0000173600 00000 n 0000169443 00000 n 0000173712 00000 n 0000681100 00000 n 0000177174 00000 n 0000176999 00000 n 0000173960 00000 n 0000177111 00000 n 0000180987 00000 n 0000180750 00000 n 0000177272 00000 n 0000180862 00000 n 0000185751 00000 n 0000185576 00000 n 0000181111 00000 n 0000185688 00000 n 0000190040 00000 n 0000189865 00000 n 0000185862 00000 n 0000189977 00000 n 0000193885 00000 n 0000193710 00000 n 0000190151 00000 n 0000193822 00000 n 0000198352 00000 n 0000198177 00000 n 0000193983 00000 n 0000198289 00000 n 0000681217 00000 n 0000202682 00000 n 0000202507 00000 n 0000198476 00000 n 0000202619 00000 n 0000208121 00000 n 0000207633 00000 n 0000202780 00000 n 0000207998 00000 n 0000207765 00000 n 0000212490 00000 n 0000212315 00000 n 0000208232 00000 n 0000212427 00000 n 0000217013 00000 n 0000216776 00000 n 0000212588 00000 n 0000216888 00000 n 0000221257 00000 n 0000221082 00000 n 0000217111 00000 n 0000221194 00000 n 0000225396 00000 n 0000225221 00000 n 0000221342 00000 n 0000225333 00000 n 0000681334 00000 n 0000229769 00000 n 0000229282 00000 n 0000225494 00000 n 0000229394 00000 n 0000229519 00000 n 0000229581 00000 n 0000229644 00000 n 0000229706 00000 n 0000234178 00000 n 0000234003 00000 n 0000229867 00000 n 0000234115 00000 n 0000238163 00000 n 0000237988 00000 n 0000234276 00000 n 0000238100 00000 n 0000241311 00000 n 0000241136 00000 n 0000238261 00000 n 0000241248 00000 n 0000245207 00000 n 0000244719 00000 n 0000241409 00000 n 0000244831 00000 n 0000244894 00000 n 0000244956 00000 n 0000245019 00000 n 0000245082 00000 n 0000249004 00000 n 0000248829 00000 n 0000245331 00000 n 0000248941 00000 n 0000681451 00000 n 0000252729 00000 n 0000252554 00000 n 0000249102 00000 n 0000252666 00000 n 0000256258 00000 n 0000256020 00000 n 0000252840 00000 n 0000256132 00000 n 0000259924 00000 n 0000259749 00000 n 0000256369 00000 n 0000259861 00000 n 0000263322 00000 n 0000263147 00000 n 0000260009 00000 n 0000263259 00000 n 0000267119 00000 n 0000266881 00000 n 0000263420 00000 n 0000266993 00000 n 0000271012 00000 n 0000270774 00000 n 0000267243 00000 n 0000270886 00000 n 0000681568 00000 n 0000274506 00000 n 0000274331 00000 n 0000271149 00000 n 0000274443 00000 n 0000279868 00000 n 0000279693 00000 n 0000274630 00000 n 0000279805 00000 n 0000283410 00000 n 0000283109 00000 n 0000279966 00000 n 0000283221 00000 n 0000287330 00000 n 0000287155 00000 n 0000283547 00000 n 0000287267 00000 n 0000291052 00000 n 0000290877 00000 n 0000287415 00000 n 0000290989 00000 n 0000295043 00000 n 0000294868 00000 n 0000291150 00000 n 0000294980 00000 n 0000681685 00000 n 0000299372 00000 n 0000299197 00000 n 0000295141 00000 n 0000299309 00000 n 0000303358 00000 n 0000303183 00000 n 0000299470 00000 n 0000303295 00000 n 0000307708 00000 n 0000307533 00000 n 0000303456 00000 n 0000307645 00000 n 0000312109 00000 n 0000311745 00000 n 0000307806 00000 n 0000311857 00000 n 0000311920 00000 n 0000311983 00000 n 0000312046 00000 n 0000316128 00000 n 0000315827 00000 n 0000312220 00000 n 0000315939 00000 n 0000319423 00000 n 0000319185 00000 n 0000316252 00000 n 0000319297 00000 n 0000681802 00000 n 0000323309 00000 n 0000322661 00000 n 0000319521 00000 n 0000323183 00000 n 0000322801 00000 n 0000323001 00000 n 0000398723 00000 n 0000372395 00000 n 0000398559 00000 n 0000327630 00000 n 0000327455 00000 n 0000323446 00000 n 0000327567 00000 n 0000331237 00000 n 0000330936 00000 n 0000327728 00000 n 0000331048 00000 n 0000335090 00000 n 0000334663 00000 n 0000331348 00000 n 0000334775 00000 n 0000334901 00000 n 0000334964 00000 n 0000338366 00000 n 0000338003 00000 n 0000335214 00000 n 0000338115 00000 n 0000341850 00000 n 0000341612 00000 n 0000338464 00000 n 0000341724 00000 n 0000681919 00000 n 0000345605 00000 n 0000345367 00000 n 0000341974 00000 n 0000345479 00000 n 0000350247 00000 n 0000350009 00000 n 0000345716 00000 n 0000350121 00000 n 0000353659 00000 n 0000353295 00000 n 0000350345 00000 n 0000353407 00000 n 0000357364 00000 n 0000357063 00000 n 0000353770 00000 n 0000357175 00000 n 0000360789 00000 n 0000360551 00000 n 0000357475 00000 n 0000360663 00000 n 0000364918 00000 n 0000364743 00000 n 0000360926 00000 n 0000364855 00000 n 0000682036 00000 n 0000368357 00000 n 0000368182 00000 n 0000365029 00000 n 0000368294 00000 n 0000370290 00000 n 0000370115 00000 n 0000368455 00000 n 0000370227 00000 n 0000370401 00000 n 0000399106 00000 n 0000435308 00000 n 0000491870 00000 n 0000517586 00000 n 0000525707 00000 n 0000525683 00000 n 0000556290 00000 n 0000597451 00000 n 0000630344 00000 n 0000658266 00000 n 0000672252 00000 n 0000679873 00000 n 0000682129 00000 n 0000682247 00000 n 0000682365 00000 n 0000682467 00000 n 0000682545 00000 n 0000687062 00000 n 0000690105 00000 n 0000690144 00000 n 0000690182 00000 n 0000690312 00000 n trailer << /Size 721 /Root 719 0 R /Info 720 0 R /ID [<8D5F17AFE21566997455F3F803590DDC> <8D5F17AFE21566997455F3F803590DDC>] >> startxref 690711 %%EOF instead-1.9.1/doc/makepdfs000755 001751 001751 00000004740 12161555602 015750 0ustar00peterpeter000000 000000 #!/usr/bin/env bash function build_html() { wget "http://instead.syscall.ru/wiki/doku.php?id=$1&do=export_xhtml" -O "$2".html.1 cat "$2.html.1" | awk 'BEGIN { toc = 0; wrap=0 } { if ($0 ~ "") { toc=1; } else if ($0 ~ "") { toc=0; } # if (wrap == 1 && $0 ~ "^") { # wrap=-1 # print "WRAPCENTERMAGICEND" # } # if ($0 ~ "
= 0) { print; } # if (wrap == -1) { wrap = 0 }; # if (wrap == -2) { wrap = 1 }; }' > "$2.html.2"; mv -f "$2.html.2" "$2.html.1" # cp "$2.html.1" "$2.html.z" } function build_manual() { build_html "ru:gamedev:documentation" instead-manual local d=`date +%d.%m.%y` pandoc --toc --highlight-style=tango -f html instead-manual.html.1 -t latex --template=template.tex | sed -e 's/\\date{}/\\date{'$d'}/' -e 's/\\author{}/\\author{Петр Косых}/' -e 's/{\\char13}/'"'"'/g' -e 's/ //g' -e 's/\\title{.*}/\\title{Руководство INSTEAD}/' -e 's/WRAPCENTERMAGICSTART/\\begin{Info}/g' -e 's/WRAPCENTERMAGICEND/\\end{Info}/g' > "instead-manual.tex" rm -f instead-manual.html.1 rm -f *.toc *.aux *.out *.log pdflatex instead-manual.tex pdflatex instead-manual.tex pdflatex instead-manual.tex rm -f *.toc *.aux *.out *.log } function build_modules() { local mod="click format hideinv kbd prefs timer xact sprites sound nouse counters wroom nolife proxymenu dash hotkeys para quotes theme snapshots dbg trigger keyboard cutscene fonts" local mod2="" for m in $mod; do build_html ru:gamedev:modules:$m $m #--template=template.tex mod2="$mod2$m.html.1 " done local d=`date +%d.%m.%y` pandoc --toc --highlight-style=tango -f html $mod2 -t latex --template=template.tex | sed -e 's/ //g' | awk 'BEGIN { scr = 0; } { if ($0 ~ "\subsection{Скриншоты}") { scr=1; } else if (scr == 1 && $0 ~ "\end{document}" ) { scr=0 } else if (scr == 1 && ($0 ~ "\section" || $0 ~ "\subsection") ) { scr=0; } if (scr == 0) { print; } }' | sed -e 's/\\date{}/\\date{'$d'}/' -e 's/\\title{.*}/\\title{Модули INSTEAD}/' -e 's/{\\char13}/'"'"'/g' -e 's/WRAPCENTERMAGICSTART/\\begin{Info}/g' -e 's/WRAPCENTERMAGICEND/\\end{Info}/g' > instead-modules.tex rm -f $mod2 rm -f *.toc *.aux *.out *.log pdflatex instead-modules.tex pdflatex instead-modules.tex pdflatex instead-modules.tex rm -f *.toc *.aux *.out *.log } build_manual build_modules instead-1.9.1/doc/template.tex000644 001751 001751 00000011420 12161555602 016556 0ustar00peterpeter000000 000000 \documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$lang$,$endif$]{$documentclass$} \usepackage[utf8]{inputenc} \usepackage[T2A]{fontenc} \usepackage[russian,english]{babel} \usepackage{indentfirst} \usepackage{geometry} \usepackage{longtable} \usepackage{framed} \usepackage{color} \definecolor{shadecolor}{gray}{0.9} % \geometry{verbose,tmargin=1cm,bmargin=1cm,lmargin=1cm,rmargin=1cm,headheight=1cm,headsep=1cm,footskip=0.7cm} \usepackage{ifxetex,ifluatex} \usepackage{fixltx2e} % provides \textsubscript % use microtype if available \IfFileExists{microtype.sty}{\usepackage{microtype}}{} \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex \usepackage[utf8]{inputenc} $if(euro)$ \usepackage{eurosym} $endif$ \else % if luatex or xelatex \usepackage{fontspec} \ifxetex \usepackage{xltxtra,xunicode} \fi \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase} \newcommand{\euro}{€} $if(mainfont)$ \setmainfont{$mainfont$} $endif$ $if(sansfont)$ \setsansfont{$sansfont$} $endif$ $if(monofont)$ \setmonofont{$monofont$} $endif$ $if(mathfont)$ \setmathfont{$mathfont$} $endif$ \fi $if(geometry)$ \usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry} $endif$ $if(natbib)$ \usepackage{natbib} \bibliographystyle{plainnat} $endif$ $if(biblatex)$ \usepackage{biblatex} $if(biblio-files)$ \bibliography{$biblio-files$} $endif$ $endif$ $if(listings)$ \usepackage{listings} $endif$ $if(lhs)$ \lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{} $endif$ $if(highlighting-macros)$ $highlighting-macros$ $endif$ $if(verbatim-in-note)$ \usepackage{fancyvrb} $endif$ $if(fancy-enums)$ % Redefine labelwidth for lists; otherwise, the enumerate package will cause % markers to extend beyond the left margin. \makeatletter\AtBeginDocument{% \renewcommand{\@listi} {\setlength{\labelwidth}{4em}} }\makeatother \usepackage{enumerate} $endif$ $if(tables)$ \usepackage{ctable} \usepackage{float} % provides the H option for float placement $endif$ $if(graphics)$ \usepackage{graphicx} % We will generate all images so they have a width \maxwidth. This means % that they will get their normal width if they fit onto the page, but % are scaled down if they would overflow the margins. \makeatletter \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth \else\Gin@nat@width\fi} \makeatother \let\Oldincludegraphics\includegraphics \renewcommand{\includegraphics}[1]{\Oldincludegraphics[width=\maxwidth]{#1}} $endif$ \ifxetex \usepackage[setpagesize=false, % page size defined by xetex unicode=false, % unicode breaks when used with xetex xetex]{hyperref} \else \usepackage[unicode=true]{hyperref} \fi \hypersetup{breaklinks=true, bookmarks=true, pdfauthor={$author-meta$}, pdftitle={$title-meta$}, colorlinks=true, urlcolor=$if(urlcolor)$$urlcolor$$else$blue$endif$, linkcolor=$if(linkcolor)$$linkcolor$$else$magenta$endif$, pdfborder={0 0 0}} $if(links-as-notes)$ % Make links footnotes instead of hotlinks: \renewcommand{\href}[2]{#2\footnote{\url{#1}}} $endif$ $if(strikeout)$ \usepackage[normalem]{ulem} % avoid problems with \sout in headers with hyperref: \pdfstringdefDisableCommands{\renewcommand{\sout}{}} $endif$ % \setlength{\parindent}{0pt} \setlength{\parskip}{6pt plus 2pt minus 1pt} \setlength{\emergencystretch}{3em} % prevent overfull lines $if(numbersections)$ $else$ \setcounter{secnumdepth}{0} $endif$ $if(verbatim-in-note)$ \VerbatimFootnotes % allows verbatim text in footnotes $endif$ $if(lang)$ \ifxetex \usepackage{polyglossia} \setmainlanguage{$mainlang$} \else \usepackage[$lang$]{babel} \fi $endif$ $for(header-includes)$ $header-includes$ $endfor$ \newenvironment{fshaded}{% \def\FrameCommand{\fcolorbox{framecolor}{shadecolor}}% \MakeFramed {\FrameRestore}}% {\endMakeFramed} \renewenvironment{Shaded}{\definecolor{shadecolor}{gray}{0.9}\definecolor{framecolor}{gray}{0.5}\begin{shaded}\noindent}{\end{shaded}} % \newenvironment{Info}{\definecolor{shadecolor}{rgb}{0.9,0.9,1}\definecolor{framecolor}{rgb}{.1,.0,.7}\begin{fshaded}\noindent}{\end{fshaded}} $if(title)$ \title{$title$} $endif$ \author{$for(author)$$author$$sep$ \and $endfor$} \date{$date$} \begin{document} $if(title)$ \maketitle $endif$ $for(include-before)$ $include-before$ $endfor$ $if(toc)$ { \hypersetup{linkcolor=black} \renewcommand{\contentsname}{Оглавление} \tableofcontents \clearpage } $endif$ $body$ $if(natbib)$ $if(biblio-files)$ $if(biblio-title)$ $if(book-class)$ \renewcommand\bibname{$biblio-title$} $else$ \renewcommand\refname{$biblio-title$} $endif$ $endif$ \bibliography{$biblio-files$} $endif$ $endif$ $if(biblatex)$ \printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$ $endif$ $for(include-after)$ $include-after$ $endfor$ \end{document} instead-1.9.1/doc/instead.6000644 001751 001751 00000005660 12162117145 015745 0ustar00peterpeter000000 000000 .TH INSTEAD 6 "Version 1.9.1" Instead GAMES .SH NAME INSTEAD - Simple Text Adventure Engine, The Interpreter .SH DESCRIPTION The interpreter of STEAD (Simple Text Adventures) allows one to play games that combine visual novels, text adventures and classic quests of 1990-s. The STEAD games features are: .TP * very simple source code of the stories. (based on LUA); .TP * the ability to use graphical or textual (readline) game interface; .TP * graphic interface supports music and images; .TP * graphic interpreter theme support \- a game may change the interface look; .TP * portability (originally written for Linux, depends on SDL and lua). .SH SYNOPSIS .B sdl-instead .I [options] [game.zip to run] .SH OPTIONS .TP .B -debug Debug mode (for game developers). .TP .B -alsa Force ALSA sound (Linux only). .TP .B -nosound Run the game without sound. .TP .B -gamespath Add path with games. .TP .B -themespath Add path with themes. .TP .B -nostdgames Do not use default games. .TP .B -nostdthemes Do not use default themes. .TP .B -game Select game in gamespath. .TP .B -theme Select theme in themespath. .TP .B -owntheme Force game to use own theme. .TP .B -fullscreen Run the game in fullscreen mode. .TP .B -window Run the game in windowed mode. .TP .B -noautosave Disable autosave/autoload. .TP .B -encode [encoded file] Encode lua file. Encoded file can be executed with doencfile("encoded file"). .TP .B -idf Build idf file [INSTEAD data file] from directory. .TP .B -mode [WxH] Use WxH resolution. .TP .B -software Force software rendering .TP .B -nopause Do not pause the game on window minimize. .TP .B -hinting 0|1|2|3 Set the font hinting mode. .TP .B -install [game in zip] Install game from zip archive .TP .B -quit Quit :) .TP .B -appdata [fullpath] Store saves and settings in appdata path. Path must exist! .TP .B -chunksize [size in bytes] Size for audio buffer. Try this if sound lags. .TP .B -version Show version and exit. .PP Configuration file name is 'insteadrc' and it's located in ~/.instead/. Games can be downloaded from http://instead.sourceforge.net. Unzip them in ~/.instead/games. .SH CONTROLS Please, see tutorial. .SH LICENCE This is free software; you can redistribute it and/or modify it under the terms specified in the GNU Public Licence (GPL). .SH WARRANTY None. .SH COPYRIGHT AND CREDITS .TP .B Peter Kosyh INSTEAD author. .TP .B Ilya Ryndin Initial port to Windows. .TP .B Mahno Aleksey Port to Android. .TP .B .dm Port to Mac OS X. .TP .B Andrey Afletdinov Port to Windows CE. .TP .B Vadim Balashoff Advices. .TP .B Vladimir Zhirov Advices. .TP .B Alexander Yakovlev manual.tex support. .TP .B Serj Kalichev Advices and default theme correction. .TP .B Vladimir Podobaev, Oleg Gvozdev Testers. .TP .B Alexander Soborov Wiki support. .TP Many others for comments, bug reports, games and ideas. .SH SEE ALSO .BR http://instead.sourceforge.net instead-1.9.1/doc/Makefile000644 001751 001751 00000001465 12161555602 015671 0ustar00peterpeter000000 000000 include ../Rules.make include ../config.make all: clean: pdf: ./makepdfs # # try xetex here, and hope it works ;) # pdflatex reference.tex # makeindex reference.idx # pdflatex reference.tex # $(RM) -f reference.aux reference.log reference.toc reference.out reference.idx reference.ind reference.ilg #to-do: interpret $PATH man: man ./instead.6 | col -b > instead.txt wiki: wget "http://instead.syscall.ru/wiki/doku.php?id=ru:gamedev:documentation&do=export_xhtml" -O instead-manual.html wget "http://instead.syscall.ru/wiki/doku.php?id=en:gamedev:documentation&do=export_xhtml" -O instead-manual-en.html docs: wiki man pdf install: $(INSTALLD) $(DOCPATH) $(INSTALL) *.txt *.html *.pdf $(DOCPATH) $(INSTALLD) $(MANPATH) $(INSTALL) *.6 $(MANPATH) uninstall: $(RM) -rf $(DOCPATH) $(RM) $(MANPATH)/instead.* instead-1.9.1/doc/examples/dialog/000755 001751 001751 00000000000 12161555602 017300 5ustar00peterpeter000000 000000 instead-1.9.1/doc/examples/keyboard/000755 001751 001751 00000000000 12161555602 017641 5ustar00peterpeter000000 000000 instead-1.9.1/doc/examples/menu-demo/000755 001751 001751 00000000000 12161555602 017727 5ustar00peterpeter000000 000000 instead-1.9.1/doc/examples/trigger.lua000644 001751 001751 00000001246 12161555602 020212 0ustar00peterpeter000000 000000 -- example module function trigger(act, cond) local v = {} v.nam = 'trigger'; if not act then error("Wrong parameter to trigger.", 2) end v.act = act; if not cond then cond = true elseif type(cond) == 'string' then cond = stead.eval('return '..cond); end v.cond = cond; v.life = function(s) if stead.call_bool(s, 'cond') then s:off() local r,v = stead.call(s, 'act') if r then return r, true end return r,v end end v.state = function(s) return s._state; end v.on = function(s, p) s._state = true stead.lifeon(s, p) return s end v.off = function(s) s._state = false stead.lifeoff(s) return s end return obj(v) end instead-1.9.1/doc/examples/visual.lua000644 001751 001751 00000001657 12161555602 020060 0ustar00peterpeter000000 000000 -- example module require "timer" require "theme" function fading_goto(where, step, bg) fading_room.where = where fading_room.step = game.gui.fading; if step then fading_room.step = step end fading_room._bg = bg return walk 'fading_room' end game.fading = stead.hook(game.fading, function(f, s, ...) local r,v = f(s, unpack(arg)) if r and fading_room.active then if from() == fading_room then fading_room.active = false end return true, fading_room.step end return r,v end) fading_room = room { nam = true; var { active = false }; var { where = 'main' }; var { step = 4 }; pic = true; entered = function(s) s.active = true; if s._bg then s._saved_bg = theme.get 'scr.gfx.bg'; theme.gfx.bg(s._bg); end s._timer = timer:get(); timer:set(1); end; exit = function(s) if s._bg then theme.gfx.bg(s._saved_bg) end end; timer = function(s) timer:set(s._timer); walk(s.where) end } instead-1.9.1/doc/examples/cutscene.lua000644 001751 001751 00000007153 12161555602 020363 0ustar00peterpeter000000 000000 -- example module require "timer" require "xact" stead.cut_text = '>>>' local function get_token(txt, pos) if not pos then pos = 1 end local s,e; e = pos while true do s, e = txt:find("[\\{]", e); if not s then break end if txt:sub(s, s) == '\\' then e = e + 2 else break end end local nest = 1 local ss, ee ee = e while s do ss, ee = txt:find("[\\{}]", ee + 1); if ss then if txt:sub(ss, ss) == '\\' then ee = ee + 1 elseif txt:sub(ss, ss) == '{' then nest = nest + 1 else nest = nest - 1 end if nest == 0 then return s, ee end else break end end return nil end local function parse_token(txt) local s, e, t t = txt:sub(2, -2) local c = t:gsub("^([a-zA-Z]+)[ \t]*.*$", "%1"); local a = t:gsub("^[^ \t]+[ \t]*(.*)$", "%1"); if a then a = a:gsub("[ \t]+$", "") end return c, a end cutscene = function(v) v.txt = v.dsc if v.left then error ("Do not use left in cutscene.", 2) end v.left = function(s) timer:set(s._timer); s:reset() end; if v.timer then error ("Do not use timer in cutscene.", 2) end v.timer = function(s) s._fading = nil s._state = s._state + 1 timer:stop() s:step() return true end; v.forcedsc = true if not v.pic then v.pic = function(s) return s._pic end; end if not v.fading then v.fading = function(s) return s._fading end end v.reset = function(s) s._state = 1 s._code = 1 s._fading = nil s._txt = nil s._dsc = nil s._pic = nil end v:reset() if v.entered then error ("Do not use entered in cutscene.", 2) end v.entered = function(self) self:reset() self._timer = timer:get() self:step(); end; v.step = function(self) local s, e, c, a local n = v._state local txt = '' local code = 0 local out = '' if not self._txt then if type(self.txt) == 'table' then local k,v for k,v in ipairs(self.txt) do if type(v) == 'function' then v = v() end txt = txt .. tostring(v) end else txt = stead.call(self, 'txt') end self._txt = txt else txt = self._txt end while n > 0 and txt do if not e then e = 1 end local oe = e s, e = get_token(txt, e) if not s then c = nil out = out..txt:sub(oe) break end local strip = false c, a = parse_token(txt:sub(s, e)) if c == "pause" or c == "cut" or c == "fading" then n = n - 1 strip = true elseif c == "pic" then self._pic = a strip = true elseif c == "code" then code = code + 1 if code >= self._code then local f = stead.eval(a) if not f then error ("Wrong expression in cutscene: "..tostring(a)) end self._code = self._code + 1 f() end strip = true elseif c == "walk" then if a and a ~= "" then return stead.walk(a) end elseif c == "cls" then out = '' strip = true end if strip then out = out..txt:sub(oe, s - 1) elseif c then out = out..txt:sub(oe, e) else out = put..txt:sub(oe) end e = e + 1 end v._dsc = out if c == 'pause' then if not a or a == "" then a = 1000 end timer:set(tonumber(a)) elseif c == 'cut' then self._state = self._state + 1 if not a or a == "" then a = stead.cut_text end v._dsc = v._dsc .. "{cut|"..a.."}"; elseif c == "fading" then if not a or a == "" then a = game.gui.fading end self._fading = tonumber(a) timer:set(10) end end v.dsc = function(s) if s._dsc then return s._dsc end end if not v.obj then v.obj = {} end stead.table.insert(v.obj, 1, xact('cut', function() here():step(); return true; end )) return room(v) end instead-1.9.1/doc/examples/fonts.lua000644 001751 001751 00000005171 12161555602 017701 0ustar00peterpeter000000 000000 -- example module require "sprites" require "theme" function font(name, size, scale) if scale == nil then scale = true end local v = obj { nam = 'styler'; fname = name; size = size; cache = { }; list = { }; scaled = scale; cache_get = function(s, w, color, t) local k = w..color..tostring(t) if s.cache[k].time ~= -1 then s.cache[k].time = stead.time() end return s.cache[k] end; cache_clear = function(self, age) local k, v local new_list = {} if not age then age = 0 end for k,v in ipairs(self.list) do local key = v.word..v.color..tostring(v.t) if v.time ~= -1 and stead.time() - v.time >= age then sprite.free(v.img); self.cache[key] = nil else table.insert(new_list, v) if v.time ~= -1 then self:cache_add(v.word, v.color, v.t, v.img, nil) -- renew time else self:cache_add(v.word, v.color, v.t, v.img, -1) end end end self.list = new_list end; life = function(s) if player_moved() then s:cache_clear(2) end end; txt = function(st, txt, color, t) local s, e; local ss = 1 local res = '' if not color then color = theme.get 'win.col.fg' end if not t then t = 0 end while true do s, e = txt:find("[ \t]+", ss); local w = txt:sub(ss, s); if w and w ~= '' then st:cache_add(w, color, t) res = res .. img(st:cache_get(w, color, t).img); end if not e then break end ss = e + 1 res = res .. ' '; end return res; end; cache_add = function(s, w, color, t, key, time) local k = w..color..tostring(t) if not s.cache[k] then s.cache[k] = {} s.cache[k].img = sprite.text(s.font, w, color, t); if key and key ~= s.cache[k].img then stead.sprite_dup(s.cache[k].img, key); sprite.free(s.cache[k].img); s.cache[k].img = key end s.cache[k].word = w; s.cache[k].color = color; s.cache[k].t = t; s.cache[k].time = stead.time(); stead.table.insert(s.list, s.cache[k]); end if not stead.started and not time then time = -1 end if time then s.cache[k].time = time else s.cache[k].time = stead.time(); -- renew time end end; save = function(self, name, h, need) h:write(stead.string.format("%s = font(%q, %d, %s);\n", name, self.fname, self.size, stead.tostring(self.scaled))) local k, v for k,v in ipairs(self.list) do h:write(stead.string.format("%s:cache_add(%q, %q, %d, %q, %d);\n", name, v.word, v.color, v.t, v.img, v.time)) end end; } if v.scaled then size = sprite.font_scaled_size(size) end v.font = sprite.font(name, size); lifeon(v); return v; end instead-1.9.1/doc/examples/menu-demo/main.lua000644 001751 001751 00000007171 12161555602 021364 0ustar00peterpeter000000 000000 instead_version "1.6.3" require "proxymenu" require "hideinv" game.forcedsc = true minv = obj_menu('С СОБОЙ', 'exam', false, true); mlook = obj_menu('ОСМОТРЕТЬ', 'exam', true); mtake = obj_menu('ВЗЯТЬ', 'take', true); mdrop = obj_menu('БРОСИТЬ', 'drop', false, true); meat = obj_menu('ЕСТЬ', 'eat', true, true); mpush = obj_menu('ТОЛКАТЬ', 'push', true); muse = use_menu('ИСПОЛЬЗОВАТЬ', 'useon', 'used', 'useit', true, true); mgive = use_menu('ОТДАТЬ', 'give', 'accept', false, true, true, true); mwalk = obj_menu('ИДТИ', 'walk', false, false, true); game.useit = 'Не помогло.' game.use = 'Не сработает.' game.give = 'Отдать? Ни за что!' game.eat = 'Не буду это есть.' game.drop = 'Еще пригодится.' game.exam = 'Ничего необычного.' game.take = 'Стоит ли это брать?' game.push = 'Ничего не произошло.' game.after_take = function(s, w) take(w) end game.after_drop = function(s, w) drop(w) end put(minv, me()) put(mlook, me()) put(mtake, me()) put(mdrop, me()) put(meat, me()) put(mpush, me()) put(muse, me()) put(mgive, me()) -- put(mwalk, me()) status = stat { _Turns = 0, life = function(s) s._Turns = s._Turns + 1; end; nam = function(s) return 'Статус игрока: '..s._Turns..'^'; end }; lifeon 'status' put(status, me()); knife = obj { nam = 'ножик', dsc = 'На полу валяется ножик.', exam = 'Бесполезный перочинный ножик.', } main = room { nam = 'intro', hideinv = "true", dsc = 'Введение', exit = function(s) inv():add('knife'); end, obj = { vway('next','{Дальше}.', 'r1') } } cube = obj { nam = 'куб', dsc = 'В центре комнаты находится куб.', take = 'Вы взяли куб', exam = 'Мультифункциональный куб -- написано на кубе.', drop = 'Вы положили куб.', useit = 'Как можно использовать куб?', talk = 'Вы поговорили с кубом.', eat = function(s) return 'Вы не можете разгрызть куб.', false; end, open = 'Вы открыли куб.', close = 'Вы закрыли куб.', push = 'Вы толкаете куб.', give = function(s, w) return 'Вы пытаетесь отдать куб объекту: '..deref(w)..'.', false end, useon = function(s, w) return 'Вы пытаетесь юзать куб на объект: '..deref(w)..'. Получилось!' end, used = 'Куб поюзан.', }; sphere = obj { nam = 'сфера', dsc = 'В центре комнаты находится сфера.', take = 'Вы взяли сферу', exam = 'Мультифункциональная сфера -- написано на сфере.', drop = 'Вы положили сферу.', useit = 'Как можно использовать сферу?', talk = 'Вы поговорили с сферой.', eat = function(s) return 'Вы не можете разгрызть сферу.', false; end, open = 'Вы открыли сферу.', close = 'Вы закрыли сферу.', push = 'Вы толкаете сферу.', give = function(s, w) return 'Вы пытаетесь отдать сферу объекту: '..nameof(w)..'.', false end, useon = function(s, w) return 'Вы пытаетесь юзать сферу на объект: '..nameof(w)..'. Получилось!' end, used = 'Сфера поюзана.', }; r1 = room { nam = 'комната', dsc = 'Вы в комнате', obj = { cube, sphere }, } instead-1.9.1/doc/examples/keyboard/keyboard.lua000644 001751 001751 00000014124 12161555602 022146 0ustar00peterpeter000000 000000 require "hideinv" require "kbd" local keyb = { { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "=", }, { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "[", "]", }, { "a", "s", "d", "f", "g", "h", "j", "k", "l", ";", "'", [[\]], }, { "z", "x", "c", "v", "b", "n", "m", ",", ".", "/", }, } local kbden = { shifted = { ["1"] = "!", ["2"] = "@", ["3"] = "#", ["4"] = "$", ["5"] = "%", ["6"] = "^", ["7"] = "&", ["8"] = "*", ["9"] = "(", ["0"] = ")", ["-"] = "_", ["="] = "+", ["["] = "{", ["]"] = "}", ["\\"] = "|", [";"] = ":", ["'"] = "\"", [","] = "<", ["."] = ">", ["/"] = "?", } } local kbdru = { ["q"] = "й", ["w"] = "ц", ["e"] = "у", ["r"] = "к", ["t"] = "е", ["y"] = "н", ["u"] = "г", ["i"] = "ш", ["o"] = "щ", ["p"] = "з", ["["] = "х", ["]"] = "ъ", ["a"] = "ф", ["s"] = "ы", ["d"] = "в", ["f"] = "а", ["g"] = "п", ["h"] = "р", ["j"] = "о", ["k"] = "л", ["l"] = "д", [";"] = "ж", ["'"] = "э", ["z"] = "я", ["x"] = "ч", ["c"] = "с", ["v"] = "м", ["b"] = "и", ["n"] = "т", ["m"] = "ь", [","] = "б", ["."] = "ю", ["`"] = "ё", shifted = { ["q"] = "Й", ["w"] = "Ц", ["e"] = "У", ["r"] = "К", ["t"] = "Е", ["y"] = "Н", ["u"] = "Г", ["i"] = "Ш", ["o"] = "Щ", ["p"] = "З", ["["] = "Х", ["]"] = "Ъ", ["a"] = "Ф", ["s"] = "Ы", ["d"] = "В", ["f"] = "А", ["g"] = "П", ["h"] = "Р", ["j"] = "О", ["k"] = "Л", ["l"] = "Д", [";"] = "Ж", ["'"] = "Э", ["z"] = "Я", ["x"] = "Ч", ["c"] = "С", ["v"] = "М", ["b"] = "И", ["n"] = "Т", ["m"] = "Ь", [","] = "Б", ["."] = "Ю", ["`"] = "Ё", ["1"] = "!", ["2"] = "@", ["3"] = "#", ["4"] = ";", ["5"] = "%", ["6"] = ":", ["7"] = "?", ["8"] = "*", ["9"] = "(", ["0"] = ")", ["-"] = "_", ["="] = "+", } } local kbdlower = { ['А'] = 'а', ['Б'] = 'б', ['В'] = 'в', ['Г'] = 'г', ['Д'] = 'д', ['Е'] = 'е', ['Ё'] = 'ё', ['Ж'] = 'ж', ['З'] = 'з', ['И'] = 'и', ['Й'] = 'й', ['К'] = 'к', ['Л'] = 'л', ['М'] = 'м', ['Н'] = 'н', ['О'] = 'о', ['П'] = 'п', ['Р'] = 'р', ['С'] = 'с', ['Т'] = 'т', ['У'] = 'у', ['Ф'] = 'ф', ['Х'] = 'х', ['Ц'] = 'ц', ['Ч'] = 'ч', ['Ш'] = 'ш', ['Щ'] = 'щ', ['Ъ'] = 'ъ', ['Э'] = 'э', ['Ь'] = 'ь', ['Ы'] = 'ы', ['Ю'] = 'ю', ['Я'] = 'я', } local function tolow(s) if not s then return end s = s:lower(); local xlat = kbdlower if xlat then local k,v for k,v in pairs(xlat) do s = s:gsub(k,v); end end return s; end local function input_esc(s) local rep = function(s) return txtnb(s) end if not s then return end local r = s:gsub("[^ ]+", rep):gsub("[ \t]", rep):gsub("{","\\{"):gsub("}","\\}"); return r end local function kbdxlat(s, k) local kbd if k:len() > 1 then return end if s.alt_xlat and (game.codepage == 'UTF-8' or game.codepage == 'utf-8') then kbd = kbdru; else kbd = kbden end if kbd and s.shift then kbd = kbd.shifted; end if not kbd[k] then if s.shift then return k:upper(); end return k; end return kbd[k] end keyboard = function(v) stead.add_var(v, { text = '', alt = false, shift = false, alt_xlat = false}); v.hideinv = true if not v.cursor then v.cursor = '_' end if not v.msg then v.msg = 'Ввод: '; end v.entered = function(s) s.text = ''; s.alt = false s.shift = false hook_keys('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'); hook_keys('1', '2', '3', '4', '5', '6', '7', '8', '9', '0'); hook_keys("-", "=", "[", "]", "\\", ";", "'", ",", ".", "/"); hook_keys('space') hook_keys('backspace'); hook_keys('left alt', 'right alt', 'alt') hook_keys('left shift', 'right shift', 'shift') hook_keys('return'); end v.left = function(s) unhook_keys('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'); unhook_keys('1', '2', '3', '4', '5', '6', '7', '8', '9', '0'); unhook_keys("-", "=", "[", "]", "\\", ";", "'", ",", ".", "/"); unhook_keys('space') unhook_keys('backspace'); unhook_keys('left alt', 'right alt', 'alt') unhook_keys('left shift', 'right shift', 'shift') unhook_keys('return'); end v.kbd = function(s, press, key) if key:find("alt") then s.alt = press if s.alt then s.alt_xlat = not s.alt_xlat end return true end if key:find("shift") then s.shift = press return true end if not press then return end if s.alt then return end local o = stead.here():srch('key'); return stead.call(o, 'act', key); end v.xdsc = function(s) p (s.msg) p (input_esc(s.text..s.cursor)) pn() local k,v for k, v in ipairs(keyb) do local kk, vv local row = '' for kk, vv in ipairs(v) do local a = kbdxlat(s, vv) if vv == ',' then vv = 'comma' end row = row.."{key("..vv..")|"..input_esc(a).."}"..txtnb " "; end pn(txtc(row)) end pn (txtc[[{key(alt)|«Alt»}    {key(shift)|«Shift»}    {key(cancel)|«Отмена»}    {key(backspace)|«Забой»}    {key(return)|«Ввод»}]]); end; v.obj = { obj { nam = 'key'; act = function(s, w) if w == 'comma' then w = ',' end if w:find("alt") then stead.here().alt_xlat = not stead.here().alt_xlat return true end if w:find("shift") then stead.here().shift = not stead.here().shift return true end if w == 'space' then w = ' ' end if w == 'backspace' then if not stead.here().text or stead.here().text == '' then return end if stead.here().text:byte(stead.here().text:len()) >= 128 then stead.here().text = stead.here().text:sub(1, stead.here().text:len() - 2); else stead.here().text = stead.here().text:sub(1, stead.here().text:len() - 1); end elseif w == 'cancel' then stead.here().text = ''; stead.back(); elseif w == 'return' then return stead.back(); else w = kbdxlat(stead.here(), w) stead.here().text = stead.here().text..w; end return true end } } return xroom(v) end instead-1.9.1/doc/examples/keyboard/main.lua000644 001751 001751 00000000516 12161555602 021272 0ustar00peterpeter000000 000000 instead_version "1.7.0" require "keyboard" require "xact" input.verbose = true main = room { nam = '?'; dsc = function(s) if read.text ~= '' then p "Привет, " p (read.text,"!") else p [[Как вас {xwalk(read)|зовут}?]]; end end } read = keyboard { nam = 'Имя:'; msg = "Поле ввода:"; } instead-1.9.1/doc/examples/dialog/main.lua000644 001751 001751 00000025657 12161555602 020746 0ustar00peterpeter000000 000000 -- $Name: Диалог$ instead_version "1.6.3" require "para" require "dash" require "quotes" require "hotkeys" main = dlg { nam = '...'; entered = function(s) p [[У тебя одна минута на то, чтобы объяснить мне, как добраться до хранилища.^ — Что?^ Бац! В глазах сверкнуло и боль такая сильная, что кажется, будто она — единственное, что я сейчас чувствую. Даже сильнее страха.^ — Одна минута, — говорит он и прижимает холодный кружок дула к моему лбу.]]; end; phr = { { 'Что?', [[Бац! Оказывается, может быть ещё больнее, чем в первый раз.^ — Ещё раз скажешь "что", выстрелю.]], [[ pon 'что?' ]] }; { false, tag = 'что?', 'Что?', [[Он стискивает зубы и стреля...]], [[ walk 'theend' ]] }; { 'Но я здесь не работаю...', [[ — Но я здесь не работаю, я вообще не знаю, где тут что!^ — Какого чёрта тогда ты делаешь в кабинке оператора? ]], [[ pjump 'кто ты?' ]] }; { tag = 'про подвал', 'Хранилище в подвале.', [[— Хранилище находится в подвале...^ — Уже лучше. А теперь, как туда добраться?]], [[ pjump 'хранилище' ]] }, { }, { tag = 'кто ты?', }, { 'Я техник.', [[— Я просто техник, мне позвонили и попросили починить компьютер. Они иногда вызывают меня сюда, но я не знаю, где тут сейф, честное слово!^ — Занятно. Тогда почему на твоём бейдже написано "Старший кассир"?]], [[ pjump 'бейдж' ]] }, { 'Я от вас прячусь.', [[ — Я тут от вас прячусь...^ — А, ты один из посетителей?^ — Да.^ — Я вот не видел, как ты сюда пробегал, ты сюда зашёл ещё до того, как я вошёл в здание?^ — Да!^ — А как же ты через турникет прошёл?]], [[ pon('что?'); pjump 'лжец' ]], }, { 'Тоже решил денег взять.', [[— Да я вот решил тоже денег взять. Под шумок, так сказать. Хе-хе.^ — А, вон оно что. Но на тебе форма сотрудника банка. То есть, ты не только лжец, но ещё и вор? Двадцать секунд. Хе-хе.]], [[ poff('что?'); pjump 'лжец' ]], }, { }, { tag = 'бейдж', 'Я его одолжил, чтобы через турникет пройти.', [[— Я его одолжил, чтобы пройти через турникет, я часто так делаю, а то они никак мне собственный не сделают...^ — У кого одолжил?^ Пальцем в толстого очкарика на полу, тут же затрясшего головой.^ — Окей, спасибо, техник, — и спускает куро...]], [[ walk 'theend' ]] }, { }, { tag = 'лжец' }, { alias = 'что?' }, { alias = 'про подвал' }, { }, { tag = 'хранилище', empty = function() pon "нет пути" end, }, { "По лестнице...", [[— Вон за той дверью в подвал ведёт лестница, по ней можно спуститься до главного коридора, из него в архив, а уже через архив к двери хранилища.^ — Ещё что-нибудь, о чём мне как грабителю полезно было бы узнать?]], [[ psub 'лестница' ]] }, { tag = 'на лифте', "На лифте...", [[— В кабинете управляющего есть лифт, спускающийся прямо в хранилище. Только вряд ли вы до него доберётесь.^ — Почему это?]], [[ psub 'лифт' ]] }, { false, tag = "нет пути", "Нет", [[— К сожалению, больше путей нет.^ — Вот же задачка. Монетку бросить что ли... Это всё? Может ещё что-нибудь знаешь?]], [[ pjump "про деньги" ]] }, { }, { tag = 'лестница', empty = function(s) p "^— А другой путь есть?" pret(); end, }, { "О лестинце...", [[— На лестнице сторожит охранник с оружием.^ — Каким оружием?]], [[ psub 'оружие' ]] }, { "О коридоре...", [[— Поперёк коридора идут лазерные лучи.^ — Красные или зелёные?]], [[ psub 'коридор' ]] }, { "Об архиве...", [[— В архиве люди пропадают...^ — Что?!^ — Люди, говорю, в архиве пропадают.^ — Да это я понял! Почему пропадают?^ — Не знаю, но, поговаривают, что нужно быть поосторожнее со шкафами F.^ — Почему?^ — Пропали сотрудники Фриманн, Фрекель, Фаркопс и Фонг. У вас какая фамилия?^ — Фицжеральд.^ — О... ]], [[ if not here():empty 'лестница' then p '^— Дальше.' end]] }, { "О двери в хранилищие...", [[— Толщина двери в хранилище полтора метра.^ — Ого... — И замок «Sargent & Greenleaf».^ — Ой...^ — Пол внутри под напряжением десять тысяч вольт.^ — Ох...^ — А снаружи камеры. ]], [[ if not here():empty 'лестница' then p '^— Понятно. Дальше.' end]] }, {}, { tag = 'коридор', "Красные.", [[— Красные, кажется. А что есть какая-то разница?]], [[ if not here():empty 'лестница' then p '^— Не твоего ума дело, дальше давай.'; pret() end]] }, { "Зелёные.", [[— Зелёные, кажется, а что?^ — Проклятье, у меня дейтеранопия.^ — Зелёный цвет не различаете?^ — Да.^ — Сочувствую.]], [[ if not here():empty 'лестница' then p '^— Спасибо. Дальше.'; pret() end]] }, {}, { tag = 'оружие', "Ружьё какое-то...", [[— Не знаю, я не разбираюсь.]], [[ if not here():empty 'лестница' then p '^— Дальше.'; end pret()]] }, { "Benelli M4...", [[— Benelli M4 Super 90, шестизарядный, с телескопическим прикладом, пистолетной рукояткой, планкой Пикатинни...]], [[ if not here():empty 'лестница' then p '^— Всё, заткнись, давай дальше.'; end pret()]] }, {}, { tag = "лифт", empty = function() p "— А другой путь есть?" pret() end}, { "Управляющий.", [[— В кабинете скорее всего сидит сам управляющий.^ — И чего?^ — Он чемпион города по гарлемскому боксу.^ — Впервые слышу про такой бокс.^ — Основная особенность его в том, что во время боя разрешено использовать кастеты, биты и автоматическое оружие.]], [[ if not here():empty() then p "— Хмм, ну ладно, допустим, я с ним разберусь, что ещё?" end ]], }, { "Собаки.", [[— Собаки.^ — Собаки?^ — Да.^ — Большие?^ — Очень.^ — Много?^ — Четыре.]], [[ if not here():empty() then p "— Ох... Ну допустим, с собаками я как-нибудь управлюсь. Что-то ещё?." end]], }, { "Системы идентификации.", [[— В лифте стоят системы идентификации, которые пропускают только управляющего.^ — Какие системы?]], [[ psub 'идентификация' ]], }, {}, { tag = "идентификация", empty = function() pon "по системам все"; end}, { false, tag = 'по системам все', [[По системам идентификации всё.]], code = [[ if not here():empty('лифт') then p "— Ещё что-нибудь по лифту?" end pret() ]] }, { "Отпечатки.", [[— Сканер отпечатка правой ладони.^ — Это, теоретически, можно обойти. Дальше.]], }, { "Сетчатка глаза.", [[— Для этого у меня есть инструменты и необходимые навыки, — он зловеще ухмыляется. — Дальше.]], }, { "Вес.", [[— Датчик веса.^ — Хм. Сколько весит местный управляющий?^ — 124 килограмма. А вы сколько весите?^ — 61. Мда. Тут даже клонирующая машина бы не помогла. Ладно, дальше.]], }, {}, { tag = "про деньги", "Про деньги.", [[— Знаю про деньги в хранилище.^ — Так, и что с ними?^ — Их там нет.^ — Как нет?!^ — Ну мы переезжаем в другой район города и все деньги и ценности уже перевезли сегодня ночью.^ — Так почему ты сразу не сказал?!^ — Ну про это вы как раз не спрашивали.^ — Проклятье!^^ И с этими словами он выбегает из отделения банка, где его ловит экипаж инкассаторской машины, приехавшей, чтобы как раз перевезти содержимое хранилища в другой район города. Хе-хе.]], [[ walk 'theend' ]], }, {} } } theend = room { nam = 'Конец'; }instead-1.9.1/games/000755 001751 001751 00000000000 12161555573 014561 5ustar00peterpeter000000 000000 instead-1.9.1/games/tutorial3/000755 001751 001751 00000000000 12161555667 016513 5ustar00peterpeter000000 000000 instead-1.9.1/games/Makefile.windows000644 001751 001751 00000000237 12161555573 017714 0ustar00peterpeter000000 000000 all: install: for /D %%f in (*) do ( if not exist "..\bin\games\%%f" mkdir "..\bin\games\%%f" ) for /D %%f in (*) do ( copy /Y %%f ..\bin\games\%%f ) clean: instead-1.9.1/games/Makefile000644 001751 001751 00000000471 12161555573 016223 0ustar00peterpeter000000 000000 include ../Rules.make include ../config.make all: install: $(INSTALLD) $(GAMESPATH) for f in *; do \ echo $$f;\ if [ ! -d $$f ]; then continue; fi;\ $(INSTALLD) $(GAMESPATH)/$$f; \ tar --exclude=".svn" -cf - -C $$f . | tar -xpf - -C $(GAMESPATH)/$$f;\ done uninstall: $(RM) -rf $(GAMESPATH) clean: instead-1.9.1/games/tutorial3/it.png000644 001751 001751 00000000644 12161555573 017635 0ustar00peterpeter000000 000000 PNG  IHDR ngAMA7tEXtSoftwareAdobe ImageReadyqe<6IDATxbd10ax*RU baPZ RIJJbb e&ba`?￿@Po QVh@ TFW @` 5 B1bbzh￿%(@ f F ߿T @Wa` @JCv > @c?ܒ o BFFF8PR)#(AlY8@ 8.VwQrIENDB`instead-1.9.1/games/tutorial3/instead.ogg000644 001751 001751 00004237161 12161555573 020652 0ustar00peterpeter000000 000000 OggS﹦0&fvorbisDOggS﹦0z!Mvorbis+Xiph.Org libVorbis I 20120203 (Omnipresent)ENCODER=REAPERvorbis!BCVcT)FRJs1FbJBHsS9לk SP)RRic)RKI%t:'c[I֘kA RL)ĔRBS)ŔRJB%t:SJ(AsctJ$dLBH)JSNBH5R)sRRjA B АU@ P2((#9cI pIɱ$K,KDQU}6UUu]u]u 4d@H d Y F(BCVb(9&|sf9h*tp"In*s9's8srf1h&sf)h&sAks9qFsAj6s9j.s"Im.s9s9sspN8sZnBs>{sB8s9s9sАUA6q HEiȤݣ$h r GR TI) 4d!RH!RH!R!b) *2,2,2밳:0C KMXckZiJ)RJ) YdAF!R!r)BCV: d3 (  ?z=RN*!+ "8*QBׄ1fGI:uW*}fc0@mN |k,@Id V@ `,պ9B^;Ӟ1!#e-ЊV,  h]lV !QJHj$c9;`@ Tp xa\y5OϮMpk@n,,:h6p qB-{|,UQ=Ҕ`%,`U4 |ID@.Hֿ+p;! }yD'qpJ*(v R݉V\Ў g@ċ[,,"(9@? `OWmPWZBoRp *hUׅń|!:O,XgcM!l9$ AR4h^R._ .X*r@' _~eYDV Y|Q@" ! H~fx9R`,!uB誅TOQSD$"7G-hM@ifWM]Y#r & xՊ0,$ `]Ő MYsXҊ<Jz.8mQ=RJHA`ΪaI{rddXX6h_@D+I<&N"ĄXSJL I "+ Dӆ#S5c3O<ձzT!TӐʨZxy9)V'(! TӐ|\EŃK(ms+oV6XI ThÃih24V1=jxJ"DӠfUkJ[:ƢL t4Q4%k.t>f&HڱSElp=5vRc4u腌+nj\v{P`* oo=}MyH# mNKNzIIU0b̎\1F͖;1'~vt~!p y:zo }#K+M#DG=Ht&j"l=&D0z к!PC9L Z!GpMi  ~>Q3zB43 amy >F_ pO\@EeX̣T9kG2dD5bJ٘g8w#,(~Ld Zo!ȸLVN &6\Fpn CtD ȄӰ֮MڿlpONҖb\׾3—|*HߺՕ_J> ڷf!:o ].vn L!Vj,IG &*+*G> v1<))5y>&$!zC\E,²jg=<E(er5a`<Ѥb?=E-Kc'zqno&>rU82|=^kvxj\C{<$Sǀ_ңCjR:q0qA(р//vRo<d >,COE P./A8}"8N;4}k08HpErV Db_lbI⡕쉞21,zWTt@ܸf:\/]m_E:mK`5B9Dsj%bdN0 BRX A:a.T;~Kld0ZvbV =nX@)Qt5݆7; L=/& ?ހuCc$efy߉^XUn6B,q $~.1ba( c[.n P3,qJl>yEdX&GIhn}Dc@.CB8)t(*Lu@#AlY(4 Vg7=lD`o 9MTX>;n0r+X N˂kyw$xE̡$1 %< mk [^|+DC R9p+X,ر=[104 HXu1dMCbWO :2Bqq< 0u+b&ϩ«#/-xCLHTt(*=XOK@[ BzZmIVC䒸oOggS@﹦06&"#!""#)'$}~}wsyyGt3K^DkZ1Z~brqED?^Mt[auPv|;5e 2DL8]}\:,i"CA+ S'\YT^,DΤݗBCNd5LX*&D/F܃}:gp2s]]j=[#W/q(b"JrfI,SG 8亜)75U/` ~$"Jpk5O~>=b1A@m@]X{ F`?nt%* C\1ȯ8a`CDfa.US+/NFoP@`u3pk3yBL5A9>'~Tjj>Fm@@E>n͈3ŀӰj^T0xa/CiH YJDRxVogCB?e }zn!0Cv>no'n=u@&@Q"*Net*?(yi2< @߿?;XOp`Bܿ B( \GC}cqz|e!. jpVQT^Ŧ؈-'6G=84$#)OibhnOaSidwxeKHc~'r#H05`+ X Z XF#F5"Qe`:ҿȂs8^$&'7C41E*j*X"fSw[mf@`v"WApy4  )A;r>_k](Y 02#0 ,XPFaI ͒b ZK8<ݚV1*xj?K]D,>أVx6']BϞ )4w  >Ns|1xpUɣHliEVvT{nzrhYKD넸-wu="1*xRsRCL|c_ *Gnk Q_ 4{[wi*&#; }D7H, R $&TBd X@0nf؁9IAcKq-WNGJtxh4ag2:~騈O0أ3rX*@i:B^ *%xmc*<39:[d+ BAʭʠtrKc^HTFxwX\ġԫ'}̮FSrRΰ@& F]Py@&Ƣ y{P1I@ OJ53ޏ%fW(WT)TFw$0"BeW^Kle2a/Bo.w:Yj>Qwk:EO2 |{k ز{!g~@`Z U%sjX%{T1B{%!蹊b E ޱ.˻ca4,5^w47YJؚcUJ$=rbm6D}G_K#c ,ַrW0zz9~!iycZA0{BCAqF5"G@d XQQPa]1J^$&vbepC(0*E?*U 7Wz*c|ewjl15JDt&TJ0::wXwE1+r BFҊ$_H^#B}5B"FP!^lٔIrg۱z: kRXjq'E|Q.쨶ЁxiCkg9 UQ@Vxx$uH-f1y%T}nT WDBFd ص`Ą]4MEZq X7j]3{ JkdA_qG<)ǔ(iP?yB1e.pa:4 v+N$ްK닯U8ʗF@9 X"K(.(䤱j3Eɶg/b,A ׃Fh'>io|7ooV zȱ ց{6 @J.8EAi X" ,( 6pel fЛ0V$>N*:"%Dpm]he:07\aADY~;|& xVb4 a%Ze1 `5þ30K)zZbE;*c~~_J-()^QP avLZ`@gEuHE+^t`p;)]@t``%规1֞xk`rcßÅO7w+ w6ax H6ݝK2ܩ՜|n@~ tFB={Ņ/v?6w^>em6nbٚ p"OGYOꀃFQf$`~[+CtU&ڸe0G`0HJXTR X"r`PY|"ދ^dm2Ĭ=Bm6D#l cΛR@ζEBH^5~ cĺ}buL+_q}M+:)9j#x`@Rjg.* AjADa [.Ĕ&&N:lآ8GIDD @˶Es7Ls2~, _.pra#[!OGi\vu67FbdI8&EEE =>;Q>9V{ LT^#%"?Ӹd`r윫 +IۋD }Q@ !8 ^JJOO@rV?B@a1-TIHr^l-+Ԟ'C xKS]^G" $;F8jvgWF׏~n .fc[Zv|0!F8 Z,dP"JE(1`0 {nemHr5s{ EeKpr4p# ^Ie}>{㓘o])Q E7kP0ȁ숚@j\ˑźjR&ea?BFR DX 11a T>|8Jnt2&+BM0K=ҡ? &Vre3ߕv[6"?uE<]M4Єs/;@E5V,.J*g BK2Z P*7ncH.Y,v1]OggS@^﹦0]?!{{"&&%{NGÞ(5ӋB>eQhuGw;2{-37c _ iY06ds o>hP,$ &dD-2X?"QEYuչ>u2P-D M0>.EPTpRO0G3O!wq TN彝mAC*W|@VJJ(J] hPm="/_Q 4X!a]n\2OT!^;tr <1f FœϦ1²0lE'ct{vJgo tB0 !ezv`P^ pcX Ke+Q) Os] R'Zm[^X kɱ Ol*HZ}o OCg|(<<^ʼn1.H> 0Z(b{0  9w2FDDF2 ,e>KxebL='9}ArP z 17IO'$\7S=vi'O 8;,- :7%Q вpm r  cUKvbP0Ʌb 5~ު-05rd显IkaH[>WHӉs=|U8GK!>-uRNW9rUhF{.UkAqd-tDU#Y&!2*>ՠvy+Sq(i$‡+?[®`."H_ m'hP„W+{`M :ɠPwML+Y  @A Zqx $RuP- i*]nHH bIk 얏il@/MŢh} >VȥV["l } *Xv0nv#Y !'4@-u&3lF>barˣcd[ ?3FTJRveR0 SMҬ-xrz]G f@- &I2nPU##fkXTdP!0%aظe`L, ğCp!ޛcB`HoyKM&܀%Ks&inG_[iU>O)N*T͵ЗO띟dHW`H08 _PVDޕV\t$]mo|' }!N5RJ8*ɥ`QΑ~xI>uQON0l2y͌CN]їATAX0~erMxv"ckrmI\KYR V pcytPIowa`xMߴnX`z~`vh h '60Frx_~L>Oh_ǫJ7U@ ϫy_;eua+'DZU`rz1EP6su4΅N+d,$Zc{of3=!hC%H+Q)G} M/5&\wzx]CzVL)Q~.V7k<׮Gv$=DI \&@niZw;ucXQbjdFL3d%Zǚ*&4vX]CI:g[H5PF %&W i]7&$ z;z=Xu+,3a&w$S fyH28a//0^~b㹈0v98G}DڛɫeJtMZK'ZbM ""%"^z`{z$Zхex I`KHY?VsnMj)4Qd-i) K*ɥxQ| aGH|#kRb %@ ( pV"$BS54Eۍ]i=|0BsU՛R@3a,n2ۄ[0'mFkv@lI޸_XWf;'z!s2-zlvt ?50'wgë}ɫܮ=&sH0q3G"{ lơ^<eӦM$U6FXJX|DVc>E [ĥ3=\zO}V8o{}_?҈WoC e,[-t&ᜮEW-G]naJk3X!2~4C v3נޫōe(ٕh @3bE@ZN }`TYwy6~&1͓5a{ospݞkw-wE6WmO!MDDolcS}k!LJ踔s%:+lQNSڌLYJl̺w]x2T]Ty9֣Z\SK3h?6xMHzbBJHD$hM};AWC2߾s:=o؝$hQ!B IFuB"4ɳ OuHow׽-x zXR)n>CR&L @9]@t+kjW"z"'"v#`8؏A^KflMPpm-ر#N0aX&$B!c:%-Uj: J˅ >.wlO-?ω[7+; B ȡc/% n=AfOӁ@Z 3P8h b ԁW!$q|aŚ`=\圪tU|H~z@"~lFv K;IicG й?NPA:GhZsE0|"JvlᰁLpc0o ?BLǻbPy5NkFH"r'"JT|6;cv|{۷AY c(ӃU@[R8@/L. n7 $ ^؜ ()6]Poz+ lf͝%Sl HיހRKp(Cx}(8?Nʮ;iِۃia U\f) 8 8ܩ(#i*|<>+^Nb%- ij aZ˜jNtg`AK1i4!R @U'zE_oFm&P S`!2jyRPY-`ݛtR% OggS@﹦0Es1|#"%#"#()""%! )(&}%!#!""(%)~t?'sn;pMwGc=ݡ}<])NG&L֫cIwbY_=vy!PW` xBD%1Hv~vY_ lnqV^S&P>m&o`A2S$<%L.6j3`Xx׾p .r;ZY Fcܧzs4>6d0#oqB\J3 wE]K,[fEۜ IOa̫DH 볓E|wӞ!6Z^p 6 ë/d . Qt pB Kj3n˅ǯYHz k4ʪ>5Z$U #; "Sl]¡Dp>0WkM`#hIb[+DGC(*TJ\ KoOO(`_O3m5Y1U ~QMi蜇\!JQ bq>fDla,%+V4E:^ޞ80 姫ɈCn}?I^۲ߐ@8寉/PsV@B!FAIa\"qASSnrC%ok EF2 ;ŞIKKk+ :LS 4Xu'^ϑQ"8z#^`n w2[7: _JGjG![Ypt,4J6HM 1|*K*Mt_OzO`o'Ʊ^5(KKD`$Ms@M o4̪ B 3¼RkW# .vdue|p :++m +意cȌ_T?}hngP䓗Cx냡znEw@OF+@5rŨ'Pihƥx;GD2HL .M>b zxϢ9FR- Bb/A'HD'REC4 ҊɛgTϋ+Jˊ/ ZGJphCJE0@Eepy̰]p[(e,i"d J "cPr,h-чATL#&[NezV+7Qy>4"9ʹh˿ܜic6~ y\}5x=Nh%N*7|5"Cܨ Ll'~F˛#Fس5zQ4"h!yڡ}q@6pt|/ ! Lk{h89k<7cȬLß+b0"8AdY|SՒzmWfBL5(hh;k612nAno>dYh@Oq348{Ctb$͛7H*Z$[ttEeIo*!uPHGGzy\|e>Y0*84EDP8?>ʿtUy4R鶥B́*I/árGR5X _HwXoŊ8. 1*Gm.2bO !C#<"DF:}nܰl9H~?[]BW!dw"Ŝ URz \tF+ܰ yɡXY$*+?a ^zxp9er|9{_¢$CSS3\\i: ~x]lo6=h"UO% +W"my6@; NY4:\#KO psA#NB>K`3i2d,irb1SS;Y8 e)_2O#) "r`cn"C_tR@@/R׉7 %dtsTFL.P2I3^;t2ΌQ]Z_p*#DxQ{o{G?ːf*d'uZTzx#X,@u Uhfv F[X!OcDR up1VIk.n ~ C,s\'zs":,BB(~AyԻIm7Ϲ/(ltÀ6Q54U:N迺dmB:NQj E p Y{n^Bi&ל`ˬGR/s ջ`y2b `={m"P"p&V:@K*VfyZF0@@ondĂj ^KDKK042GVb[c➫{~cy"!S<$0d?9W.}] P ^y~@\X tB ɦN50X kIJMH ut,QQBEo/}*qb9/BQPҷ׌Jٌ~bV$ry^䆛Mmџ-z化9= M  L9h@s DnWk^ $eBLJ 6vm{v;ɘڬrTT iڰyb]Fw•xMW5)GDs6twR\Ua^UMԦ- ~Uj9igd]1*+^].E0%'OTR0\n)|&T:֍ cР~9'Ә Cm>9V_ ݶ'JWs.{qI?hN%Uv pPpUuq/0z׽~J`VD FN̊(@. Vq(9F< wqHRjihn0>0 OtR ^gpFhXA BHJ$,~ ĥXSuQB &AE) >J}=t&^ˎQ%ANz ˢ|(o]։FxoK뾼ʦ @RzӋL\gL!5VZX~`LGgqS2 !SBT, OggS@C﹦0Zp~z}%=F'*f͎X˦R pAY| '"G'cS@&6 d~3 *q_68'(``z ^a_`F' >rmA6/ɔhNrD PNo?<zE@@ >t@feN ȭW k^8-kuQ *:DqlZ& j`Q1LN|73;+1/~ublmvqk>t Jߐ0VĖ6InD2WndU%+zo[49 ~c-zɨHf)IJPRƇՏ]HJcw_(-׌xHŢOe*=*B']t5 )j8,8, F훁 ue.ԒEܞ=]¹ if)>6%lu®8 yjBd!ݍ f~NF 6h 0F Q0wPp z Y X9y ਫ਼I r=\>[6tMc u<=s*B<\z)* xbq|zYO8zb*z iC[vQZ;W(=P+Wz+*,%!x*bZ~ fm"hknIH\p(?{ֆ{N';~kz0BGB4u;DxKDO:&,3QT}`|lP+RIBZ Bť7nޏ%~tpcٖCSR#%M] 1$έ4O¿F\տ#N"X5Z"`  ->,_ |BD qtH#""{ K. ` .mnW*p\':YVfѢمd4;Q.԰A{2BCsJ@j!$&ڭjAz!q_t;j ڦJT*Ujt!0IJ K5d\ssNCG ^ u4Ng|BITb(oj}on`8H Gs$)* @*պ]܃TѮC-9k= L1!$eN;)J`r٪ [v`p"$h{nm&C`?7;]h8 ^ld[/ŪG7kaX9WQ X̬Gw#ɑ\ %+ç(r<Y,1!lQ F) \[SG*6U!%t̬5؀i8T^.':0m:GCo%u_2?G9-z_B'kWƈ(4p{KbX*Mጐsq,-hˎ%CC[ H=I{`W%J3b4xɖe gYCszZ p^ۣ*F X/[;_` n D*̈́5Yq2H>"Y|%ѣ)"da_p2!-e:_XkB/"%(qM VzhGFP+(pܬ #^{N`ۂdD0{ @S8R&~`7Ual3HCC@ \nq\$zq2H #Xn%!I7\nBVrĀ,Ș ^K.h >D$Kibf qL vU]!$|K:Oކ:G: 0#MO$Z@M| "Pw`.,4)r[D0-"*>pMLgM[\qSG ΃u*2*:]}/_ uDD\xn|d{2cZ$\iq[vhlaM@*{Qy=GDD0^:~"&+gnx녷$vobjDXNXs7Ӡu3 .\vD0տ LuLt 7@ >>p d .Dݝ:vv9կ!>1/S.Y椔0%X~/g$\mnC︅WRJ9>7R\,@VW@`4 `P2]].qPtAUQF2>^[ĚAt[ikl paxs\q"Jc-rc~aOcAlt#Zr׿}}j*v \]a G$gUIjb 6fZ`c cJ$+>b"Z$zp[lڂa `mECrhODD`-22q-h}'}oز(5V@^VEA(E(βRT"tPم1QLu)52 PF(5d^\V[A|V\> 8.T0'&%qub\=M쯇K7b{3nVQ{R6rHc ,B4.v p})cɊA@V X,)BW=k%Jk_ђoҮ$zh#H&b88TX))M(b9Ѹ{GOm~p=3?ɥc˷j%qņzS jb+D@0Av_@\!B]">k~-FZLpaĎCg(j)9/>;vB<nݱså\).Bҍ.qnQ5?zmP'eaMnABd/2eICC CZhhnP&,0= T}{D$t"4"\*On^jM#{bAZrsm/S+'V(;oϿCW޾}p0|`]XDfXg 1mD;0-E-]Gʅx!7p41atM$bnq,$Kp5A6-*䄧~i6xcB3AJ4p~#x{ęymNH6zݗ#8_Q}`ߵ`Unt n\ @BₛB$|OggS@﹦0WU&(&%v&##!"%,))J Ѷw794<~i_-wC[H,gK ޹vxޑ&AMeD aڝ~L*a Dbx?E=`z dP]n0YDQ-ȐznK=,nfODLpnL)>d4W?HǑ mδ@o,Gފ߻N#NB@ e B7MUdr+$N{aYnߪw:\JדN~RJ$2Zb};=0fZhc;~ XTvŗxDӡN?ݸ_}EooyJD(Xrwt'=pӴ@ fA,u%R&7Tqqp#1%h)BCp0+6۶VqA~upIdfɝa^&MmڮOw^M7]cin|[e~to%ҿ'e2Bu<]i9<[b0=aZkVZ7QQeE 7`d]Iܸ9L, <#{z2!~UKT<2;NCoZL: Z>MDDyaͼM{:Y9?cx栴%B"ZˆCml]L-棌WpqVe2!%n35QD6bTf%3"x ;qsAo؂-qr(?)f%=hai:vZHnyhˈJX<Ҥ'0r|ӓ$8=ޚuRi_rZG=/Uj?&HӑmBH%EV)ACB \n.1i< ő'{Y` ,~N7^rdEKH'n,5Q"h4Xn1޿a0+ٺ|F?ɪAʽ\J܀ B6!.(!!8N蜷X 75U`]]Ou%%FF6s25#IAy&7(q%ئy #`P=Uo]zו i ZxzSt>krcpvq"(~ˮRzW]zPyZ;J"Z>gԶ6jQ%QWBlm 2RPE~LciUQ쉪\*fxR=m/۞_ )ZTD1s .5e}C r>E2g r|]Q%(]#cV5&@T֏TR%#ic>Ô]ư?R9CQ }Vf}?lі5Dlԧݼb+fܺ% ,!ᔑZ-R>%cm}O&ųdڟjm6llM2懮xK),*FS;N5Lk#U/ 8QP3ĸ~DUЪ*3gschRh%f;mnoBDY#+>ᜂrrV I﶐ xjz:Tf#rsou,OXЯWwc}gvd-;FHT}Bzs2_bm {22j@Wta{#V7/v1q hzw(bRy I*~;N'iX,Uwׂ=)UbbpNwH0a^DcB"m¢ :`|Q6zBttz}'$\Z@ yFA-?H`dlFOG*҉"*~mR'BWIα*MFN 6m⼒&BP)o+^3K.\6#zt==⸰_Lq*] ܿb4ZkDdkQtBG-p YHr^GV [p>y(eQ6JB"DC#v#:)^?ڼpDZw Mi LPMX +nTD8F\eSXty~#[S1;9*doaCZt(|Bc I @\,Filu"eY"n>KdTKnշ)6ac-M֦r&7^]`Zn H) ne~'̿xM}21ˋ[Sszio@@@qPt<`f:_]YQD5HI I;NIVp/cYY N .+QP  "O%wÉ?g_^5B/4fq.w 1bW~,Y` k P ȇh H[+T]s"D" "Qܵ:z=Y ;N1)]vb$>ׁ_mu~LՎ4Sﯿr=eҨ:DwnhMT׆!q'h}bѸDT3Y~?=|3CYbJcӧ4QOSx? M_R6ZJ"DbhLmm;!r`Rϯ{$)5]lYyT:afL'sY7^L~YLQ&TYYrsgnZ ǬSꆬۍ:d |&J0vI)_pn+IB߃ ">?as? d*NSO9Ar/nI~_+m:8:>|M*M`J!@r%"f`^S ~J/ Xo+ OggS@﹦0"8?+#%#$#$(&$#&#"$#'%$^M(& k.X1k]9v(H6qJDDDtb O7tuv>e}yU 8@o*$XN/ {|y:Jnɬ6CP':&E6bS>LSrh..BS":pU7`0q;[ h8?x!V$jB^rd iNdc9OPy$XyW42me;?* wp8J*a~vlJ{i܊Qht `mRğRo _:Eo!:b|/4aL ) LOJ@h<nbPnF# %..Sr\bIwiذp)/;qf7Xk˔>axc;OIu߯F=;tl`ce7!>, N^dV2/Hx--wkB1IP)kfN%~hJbtbPJ>j&"cD|yVWU+jt nv76@ }p,#ՠ`2& ݸ >[6bl=.^-6՞Yb* 29$hoUָ<۝2w/GtQ'_W\\QQJ]D E @:ܬu:@,9 Q@crlHY^*Tj]Ao"%{1LjlWǠ㌼N Lz/Ql(Zng~ލmT@4q C@x$*T +P:{*H"ьTLSӶ?\ŕ/ HXGH(v䨇qeċL𚻨$>{`Rbo_^ PAz_ęJCWf2ٕr1u!<5ݷ {n?ۃE8 -n+;W؎+\Nj@ S":稜ŀ .SゑPIDEYڅVx(HVѲQ\b%SJWn'CDp*F|eI2%n;x2?{{7ޟNiO`&q-V&x6 }1p;G4v]xdGR%Op),>% y7C&eKA4$/Ι])8|\yay77eC·cYE4@2n]GK#I 8kNC{^C(,k# T> &H%.+?( Fd)RBǷwl{?: N @?w~I+Kv?(b x2+EI +!q~6f'bxXFKx_* Ҍ$kkuUW>z/%W>if2RcQ㳰XW]s`@\ \Av&.ʱjA(,&+L_KR`weW5H&d!jݺ{ݯΗnq8:\y<"; _?CqC0փ/n tQ Mu X+@pؒ[HVŬŶF %"NƘ&[|RY$""/|`ap_>dx!K5sa/? k=n ALP*HT]dXʃoLXł?UtҹBneL1y<|/B S"XoYW-Iۗ+wbZm9] -H ш$,*LB"(T'"Vmf@ 4ebRq ʢ&1,KQ5XK(~55t$Q oc1^\y¤U>p1,MK(< 4]w~|I;nP_DMg^]<ә\[z+ILڼ]$Ӭ}:\[kKYV$`[S1*0 ϰ4utt jI, "+@ȁW !7fF2܂.ɪB=>N$pt" B %)Q@H=>,;P:]uy7<_YiD"h3̊.c9`@72MU $wĊ~ M!1M VptG!%~CR!Wl\Ph)'\ps2"ӆ5r|O,R60 1A*< }Bҁb 07.| 42JGP sve!~-&fᛌ4fr 7r^w9 Do*5j;,e^<><7+P>pk i#A4Q;7 TB+r0E)`HP%.~+־CD l>LJOSPl{om4#"dDA2'4˧QUavq}\}u[|96iKKn&mij-܁t0T  `1@THf>.% cJMJ)>#o++r$dFLQVWj[hi'!d\u=I_+(K1-gd%싀Qp .Op+POggS@﹦0 J1}~25 t;ecKQBUsRU S=M/[~R>=L}Ja%oՓ߽8?gǺ2I)$Va) hdVH+ "  k*ު&'1>ec{2^N@D4=™֎x-7.Q|O/[V=PgS Xyâ $`hcAX V-,KN%`܁گ4sL+vt|EHith<۷=ˑ&[;/x,D&eBS@& S{N_@xtbp`m].tHX65D"Q-/ , fǜ@m)ϊJ+0AP!2BjD!> q1 XKH?(WOq oռf[^zb^+uƪB0jH7.?+ DB< !&!a0!"ZVr.Y݂b­f>wo@") 0K^^aż|يO@(qf/h_K @ qv*i*-V*2 _j)\.πpI! *#*T %~~9"0^n P<69QIn2MO9/!VG?rawC'|ځxlZ&pE5P܀#np)Tp3R f5Q XPK,z~lӚ:8%<@„ ~QJQhný`x|?K6ya!&ͻ-ޫH0n@@" PH  W=Bޛ}/7s"(x54ՠxVW9ꗉ#@|Onx6zau+=yq"23g_Lr~ٗ> PJ6c*b86po˅ AC` j 2 VvA *CP $܂1lQ{VKm9ECn-PyLODNHǑz/uO<.&>׻n0P(goAZ TSHQ <*}dGErQA|"vCkTݚd\܊DrYx|]2F[_y,V*)ko<tυd,SaX@[O΍Ҭ ?T/.VL("-FEm n kp8zsň$/=xw-@_4M "w]_S+}a9hț>Q|V$ӮundP P?ڀO7&d`DMwN! P]#o+vn΃ 䎫nAPN9/b <<Gڮcf;ұu|پg!^J(!>;)&FE@?13Q7EX9hAB~K6iN.(8nkf), ^D9=D {ZAm=F/ܻuKHN]wk`m1װ10"d!q@`Bq`=jD׌I^gDܴ~u:be/|sF ta$"ђxk\}Y[xqՂ! Q_~?bӆ*!ve_}[nJT] )@$G M@Vt+ qALf NwbUE">(=.h٤m<OKi4f]&63Eڣuv-1@PD"X+Be,r xUFEp0 h Wn-d쁗])]USjp/;ZX\f WfϺ$[گ?y3Ar h j@Kr``iA XA^  07`.X2Sм@@ ^ĚmK V >6Yqt.Bq]~t}پp?tSsw|w"/*!']+^ғgʳj6h@}p3AE['D^hI ^EbE=U9|=4[\ppWJ2xh/roM7Aq~p痏Kv$hEO RDUcַ\ZIi @djcI"*)h,ڥ~,.hu+XK6 b`WR *1 +ҟkق{wNg3y=˨XJL@6rwJX*AX'AhL**]U+⃺ӧX0-k6m//ذIS Fvdt*Ra|3ζ#c[n7fO^ÇNjL}&UN0\&)p,GJB7 Q7C֤$(ZC}H~Kvin#(\X^fKثRSrTb9i2w77^<N)H\HD*c[[4X ܀&xQh 0B+iE=`܊cͥ>`$r/EܑC+% Iƞ"*_x~Njy Ԏ~M㊭Q}Q7 r?"a`-5* 0b (Sl t.Q^;n5\ [E/C;0)2 D4c4''v=ϜofNGo2̒]F+-tcİ髯5@5/`L`$ R ,>~ɠ#Ulrx9xQO$ D"J =;oGGGvwݿZQ&mJ^kĝt/ ъ ) K0cL`0WKun 7T^0ǹC\0aS:{_%ª{쳷o|Ǔ]e߬>Ŧ z᠆sMv3ibئZcև%G ~k+iJ%1x J&R#Q7j{}Ψ)/+ɷ%KOߴ_o^y}Ο1l.G/g A 3aV̠FpJ ,ܒ^T: z D ^K6i 1'R1 c=9*x"HJD*mڇ̓&V*4itܽÝK|poht,ȝ06vZh0bS ^"|HmF^+v㜍x<=b6&o?spr74x?PU$B"'o潔׳-ѿ~8uώg/~{~ &,2:%425y JϱXSF`iA)'bD! OggS@﹦0 VxA&,'##"!&#%!('+ejFv침hs>,0]@D$̈"Hϫ7;ԁ9uigO^\ GƯ~y]VL#9:`oi&epVa !5 5q>l㙍Y$ު8rM@Q N8*WTdw'c_lhr9w.04^Zh7)% 0cL%]4tB+aYʋtW"YӸ" Ei_ߣ^^뙋,@hN\igcSxj#޻J^$5ʷ]H;a3kgQ̐!Sˆ=E H:阚L8hpZ`Vd,,Xp&A _Rч*rPYłb&{ӥ٦cc'Y,ly1\73E7WnϿ} NH:Zd2s ,}݉ngb >,t&8:)Nv)!r^ (j(kh"YģO^WODq;cc7q(|L|o75sjV*U 7qMM$@;BqKĴ9?QEe n@%>v =P.{u=/^}.?Onq}af5ֻ~uG1.n% ?N=t`Il4Ju`ɪq[ MTT: )5rÍa ~r/{_b>5.x)Mmc=ms ퟿;Z?/wg0sHa#a 4~8,Cxj0>ˠD+X:Yc:Ie$ª .b\ڮPV*챑;Fe׭0?ۧg_Ϗǧ⪞CqgwWGv˻;Z~xϘǿU]@mXZ5HpFX:.&0"Ai-VJnbPu 4مKGmN E]':C_Ͼ* .I(Wf,sϡ+%0J"E$L4?R:%ԝdT^kY|~ަӷ]S6-)KQtVTFw9t́F~:^{Zet"{u;.2eLNLbz*lɘуtP? G@8GU1$1!RP+2SB}sւ{&>zNLq@A^!pYZv/fkcg_yP\ |@"B^gEcEe%t^]p\<ɉFDK;/ٱ돿L?O)(VX?#iBmH#T4 X,2XSQ摕ׅNH<rq^ &&a:s^V\fn1,`79GE" D )Б<]AO{^秏78CU^a؀ADx4%@ r5WV\H! Vʍ$N뫼+S<~)E6>^EpTJAS-V0u2zKڻ! ;(+\~ *"_G \ FsM9@ ­($^-gI,|tn$?Ht8*R"KhGf [OފvDZ8y۔'F[&ns)<p%tvDb18]HbE8A7Ɉ$Fq(@@^MI7Hq߃h>z:.7^jܡYA$}]o~Z0Ib" @OY7 q&! l` a*Mp~ ,l.&M5Y~o/Ok͵HK~UAw>J (Q0@@&\Po'q,{Rw=Fn~<~{<AyR9`2r,p$¸ `YNȔu\(!$"az6'7v#|lni K۶ٜ,R/cW[ADC&29hkt_@R7x:D^ON "9SAP܀KT,Mڗ%q?+w(mT)!nZ# ,OGQVMC|TݳD:Sx\|߭%pR>%: $EG4,Kz \l9W, j"Ryv'@e5_M3N2G b#6O= )es5k0w(7<KsBeSW_J 9q\3q\WaZRujl 3 qKl(Koon{ZTT]E*t@LG4pbhf}~3&#qD>1):Ƹ, B9=bC)V,1?vYá9o@4Q""LSs~:3rOOY5d_WA1pW7IAgb]!U;@\@7x@\ @7A p 5[G$m[9aE$U$T%վ:J(L隡mǍ~pWv]s%BODtw2Rp}t_G`-@ I7`ѴWVh* NP|'2XvbH7.nBe*+,޺B&g_Wͥl!>Ng)HZ[,G-Ɖ(|LJ}'ؿ:XS]7s 钕F7:J`)EwZE41s `EKWyDqx(GY꥘+~;nFNR3?|T0 m-Ox+R`YNm7>. "Mc-b][b,3yDwR)Ƞ,YLqqzĽlNר,zfL1:]6BØ]ZBGCڧoDƓpNS h)!hWN{3/>v =|};BlF:HDT D~=8Rr}\ IL" f?gZWkm6 J\ }pH܈=$'@b sc C06C3GGcv22݊΢q6.c^_#wXPo>땲eVAhv3<'I'0@?~զ[ Bq5G'2JgGúUڭuڈ A-;*,-íyӝkSJ$@Y(7KC*uYD)є-U,\ { aWZsKbJ4td;ڜDW0 :<][+ vY1t MX,t1`6HF=xKM(G% DzV$7TX> 6gA0ftK <8.v5)  p\Լt*''-Co޽u/Qk1qS&΀n%B2v1CĄ 0:g dnŸbgHCɮ4 RJfDDSVp!u7[)+On0 gȑ<ZG˜,H61U M@*@? F`KyɁPl5x 52BJ,!k|)*J=MDIb=(YG0ړ OE.tzUWM]&I,(K#h>1Y˻6) i9q&sоiHBཁRHӅqir P (EJ4MY򛧌2Aln ]mXMSi  DGfԼ~}rF[纭?1,MK&Mo<7[jM|#,MY/cYO>_,}pެiI $bc7 UA44h\کz*B4O—fZA03'kgKu_ϴ +8)ثba|\D>u߇rxx BQLYJFWS*-11iYsf6wTLWJU X8[;a3gë'rsr5+J$3=(p~DE!/P5!Kb q4I# z{7tXΠTy$8NG͑5% `Um ,J%T~mec : `iz.*AK 1`%g(b0Kh묖R!VpdV$2GU S U0@4Wbn[N,/"~&ERuZ4a|qE!֓r; )-^U cݴx!'.\u*]8$J!G.NX$5Pw\C nE1,zk , O<0 D$ΆYe=-+*jˊ*!a7_ckGQ[$+ՙNpq(1 1IxVX[Ʌ~]q!r5uiJJ9JPH0KDV"랆Íސ͈ע*6^"]uv1mZazI"  8ع1-h=42"^evb BGhd'XD{LfZ&t07Svy{!rFtbrmqnԖ!^嚧!h:ih.`$H(QTUHZ|kZ%>~,U8`v6UZ$3=1OHνmm#)76h ~h TH@T"AWbTԅ(NғL&C1R^jpҋ!D4PctGN!6톍tݥa$[H@z*E8W "Piu &*uc XԂ(> vB.& K//FÇK]W>MT\°7Xjv^~,̂;1y+Etd OZWaA +GBVwNAh"]>X,^+6i.G>p&ܯ]aPe"AڸZ} qa2$B<2iӛ3obvǺ5O1h(*<NCW *yb3?Vq_I;6ux 7F+b< >Z?QBoilա=smdڳUٟp[0]${-tr~0=MbV `Dn QUbxIV@t !!dAh. 0"шnOggS﹦0 \0%!!%%#,(%}{#!#"%"''$%)$"$$)i@V8N1:^gQ~lKgp7}".[_5@Gq~X(8~+*{(H4ccK&'45sM[n+P;zJΥAN*H~ 6_fm=^ߜ%ɇSgݪjBBpF@g`-vCw.N' +=*gtq$Iz8@$ ꄅ;Xy({N~,ƶ15wٓI,c?-Z'>icg-k2ÃEꃯ?QhXxܘ}OptDP6_LD7 ^OX nV? Q`pnĮ~;eb^ʌz%E2= CToH4,vS AC[D]RoLז{|^clT7EL"ۂ,X DX &<(heC+oa7C9YK9Zh<+ʫDQ/q)K;_nKvu?<Ogѵ0(Gzg$|н{NU+ N|M ΆEA&@z_Pƨ1X, O] ־V{m+//l>Z[? E}5{4 `)J{0%'ho$ѱW&Sj#]hLJbA{{ؿ6:B(#uq@k-HsH7̥045|=ϸ@hԀ0j&Auk*(( g+mc5lϥ)r|_tzDdQ6"<~/wF*軜|S診VtKP v,\((jfa$Ql&d['^p .ef!k|,.t:3 $Wd$ ;\3_-$ p,ԯB>(3m$]qȎɫ{E]P>x%X5b;L DRB] DX  ʕ:eE*$I̫]/\.a];|%pu ئEu&8{58%Xk|Xwz*7p2XD+ 'ִwF@(k&3}psK.%KF+##@ͯ d 5fׇC<9y8V>s\| :J]|V9 X? C@Ŏa`RgM!rMz|܄Zϓo;@W*"B"Avrד5:Mj }M^1 >g_B23Y6iDPH ԘO&‾aŤo> "&+^RTltDWʮ8/F1 prEi&m~!5ZġO]M2) gr+VwE5`w2l" `| ´!D9\ e9/@Q]\2-.]'K+cPU4" JL%+_uw7>}>ljּ@/`W[1hsX+E4 0ZS͎0*n"x YELbTajBYoyNͰ[+|;2BGPB&i$}>5Ȇ*^+LB**[&D4Ou湵p@o|aNB!%d2D1ꄲ=˭ iҘ{8]4m5u= OuL4DU 3aϟs|=9:䨊ڸTD]$'kI-tVE㞊-ZM)pkh2E|(D>>>e6O[.Dw JyEคg4{J.cg`􍶇ȸw&zӳ@"' ,^Gun!;pT$>{ )ygn7+..CBknͳ_)S)7$XP*O#} aĦF8;;UDItHN  BhN($ AiY5QPQ! _%T b޾>+eWA4J+ɔQ&iL. EԠnf=F`@1ٓ|{ =U UT Y>t`*5 7AC 4mȀGZtm8CRj U^+־gpxZ벰0H73Aoh{[wFۇ?_Ur&C,G9q&uk Q!6RV NS*su<| :t`U~#bD(#[\ 9,{lsW >5W>(xR-aZ0G7ʄ~ 8\:m&sk˿* |UU ︬`|A8ǻ&U+¹$N P "Cgd#71b^|a䐾X`$[f;CWD}B - (՟(@oYdSh]}eƻܨ;2^v0H`B|u ޯނ2poHM"& #:iFp%^[6IW/[t-F\4*{ nyPDD@UfVpkJW-AxC;#n(з>,UGh[$P.I7\-lqE4@`MB[ed<WbH)QA).PDO4qnEj;n$ů,[|z}3ǨS>rͽ}S4+Ҿφ0cf!`SH}WZ.\6]SK`Ky=^f~] N#k!)KHYi<t1~X嶮~)֍%7OIņq?x<ߵ>{*'bîH$ϚLG!IF+q'yh{3yOggS@O﹦0 ",),!&&"&#($!"!$"&"*'\YSVw8 2h>~5w·Sq^LDUf<*uClRpk^= U/;L,z:|.j;\XphH)ʈryZ(#CuẃEHOHAq!ҩQ:ϧ_눰*uO9)d5{ҷa":-`KxS _XDrl:H\ *JGc-PRǧ4l@H DbU\ m$dI$ j 2>r;"A"m/kL v%)}+.=.b𼰰F{6i-Ne,H(yxaO0XKAcc2a g.@4pT0pJm7mwSԦ1cYi9eP߂@ě?|=OX'Vĵn6qEfBIqq6pԕS"67(}y"^Ŀ`Fh!)s_(~!aq1"e*"jKH aB6bJ| R.<#R*%vLבdy z0 V2GLM⧊Y' W\?%w4ʳ'{\{jXb%c.0ɽA0 D}l_oHq@L17Z qϹ +oUj5Ą``+v]+qIF+e"bjCܣ7HⰦ>NԿá݉+Va-tt}TX#ܷUN9H1x~j8A5~ߘj=DJ$fiF JdnJ^ne,("=q11jy<рVmHCTCZ,rZ÷z$Va@Ju+*w9֧g[@0䏉"= M@;(9:BۊYd :Mvw4#WfNc1c6+X:ƜKh 'Ps8ނ*S7:Rb++IѬ%a9:% 8$j DX@saq"ní#Q.C2˔F>K=Z;عvV|L;%ޒyfTe,=XJҋ?Q~ZF%¾\4$"c:6a@dޫmc7VgHDNENxQO s&>c|X>pX0H@ȻiXZDe  bE* Eh~{fג~ !c.9ZM0L3#?؈1eU":QP[o*Ԟ3mݲLklrU\x+ǦBK4%c,\51y!ODDLYF@+KGy$U ׂ+BnJIŞ'YP32Zyn׫1Ż#zd":&7N+ /==͏ӛʶvkwIRK-:RbT"|!'r[w7γ4ijzxޖ'G^JQpv0ErF=}0D4˳݀ik {id庻GC D4'"Vuegf'a}\/LSjM xl~6gTQMT؃~Û=_&;"_w|+e|rVKҒ\?z_#Nvt i͒vNJqU\%L+6c L\X>[ј"/bua,75# MJ#˨ b@|~@*`̠;+P tw{QU2W)/b{FЙ1a8>-2A?v9n P-Aj*:3Ěp0JǚvbN.r!VX|r 4^Kl)EtJed{ज़MU:}J ;Lݿ8}* ח̎I%z`ҍi?0a-c=K5TIxou$X “AHCt)^j%.">;&6p*BZpq`Wh"ҽ>G7w3[}2ve?6*TF_ue \ >Rqu(q/cjwEh.Y5 D vcBU PEfb@0z%?ͦ?a -px\}>wy8֨#=ƶ{YET L4\z&HG:/\9lI<UD_֘ n􈝻hR_pn-e`@.ȽϳZH[n-4}, ^WSO[ G)Z;jЅ&C/FFAHiQOggS@﹦0C\+&''%&&'(){#%$#"#)(%k6nxaH0gd N?/8t}$"~w$ Uj9iv{~)XvU+VdV~[4elR1A   c/nj UQGT ڼF,̻UUh3$?͇c@Sqۥ!vp~i4.vV̈khpBAAtLQ .YN詵isFcE&P &ǐ`@ETD06, m 6^ eY#s7 V[EDT<u[|kk:kOh\Zҥ'aBWǼ1h u9N>[~VxUA,DD49Mג&\\ÈW>S]4]!y0`ҭ ]rIAӞ`zv H09zq $`l~!@L{  @{tfH vDҲXcpUDS k v_7~ۑ7)iz;  ^ܨZ*D6X/NU vGQi#,"nmzH%d7[qGZStĖI|Dc^fFVM4t|?ׅ]~]il1Vu@ cu]e&mP#.J yGrDOJKQ+^ރIT ~[5P-p$2.aϹW^%~XzxYLݲ7ߋGT DG Xkc#Ʋ3p)E/Md|ܵ0cR0B d(ґ .RD*6!^+nǸlcCŶ.B=:݊m;G@w%?.-/F&#|ާ2@FmOGI>YhVHƠJv pK nǖ>U0rwP2f42ƨ"Е&Z~ f˸܃Z&%.3 )oܮwiU=DDW_?Vv9 sm7(>Gm|vf>g!Gdz!T}ᕙΡ}Krқs M9b*WW GwmdI6V~|mwt6Ν~wEϯ=rYzޙ;4^ z*ڂ bWP,@,?`"Bz V d 'H7ops򋂻u \s}Q8Tg5ɮ[^U+~Ulx7  ]O#EFڟ5M%wSx*T цG*I0.7FdP;L4k9C6_|SF ze5DGw5+a54Ie1Sf#D UT?~A`t7ӸhsZS>mN9,W]ٚ~:h=r~>JO<Eձ3oH\gO(حDA=4ςVT+g?r@dD;,ÍӞ=\a㐂%K?Z!~o6:MO bTWitUPl} {02%\%yq-):LxDS33y/I1OC(-ds9-Z*)r2zUƅ=J9 wq|uVFNŰ.U%BE&~R*˕bf^kHmz@]!WQ ,eX~LʛIa7>9=8|hi0y! A.iiWo}W%YP>_,nh5de^HHFY+ ,>Y'{qCZ{}| IxUS% GMG>t":.V5~=㮯3NJ E@ JJ_1G@bD)8;0딘p~[q p[fgGT@$녺鵋O_XeyWhADD qZ⚑7*LB7-]_,q|eG.׼il< Ӷ@PI##f܈ SLĢOI,"q~+zd+~M1-}߰W.H)%*@^5'*׻?_=;7%_P $;;6'EڛmRK- * r{x-po'55 ;r Z82>H# > FnI2W0.kV-ߪ/>SŭV"(р;G}ﬡ[tf P ||mp.Wi.W J@O1 dt`DʎgP>!Υfة neo.qZBJ0~Ei 7,68ݽ&R44;09m&Q!hzinpi &ے+) NkFdաX4 $eD uyjIoGxFQ3fUJ^k(]&ze<_.ի2һ?G0YOfVg'ZXcpy rFIoNwB$O嗫H1e1Qyh,&*X-ʫ Wދ {ι~Z| H58D =jLw4Vfm[2t8BK0-^,wF8-b,gSޥ0 ?N3cb"aq"RE.ދxeR8 7[Hk}txl}'%ptí)uguZq`8PYhC`-q+&6JvV^[.}sgs4>*,ܞ;A׌jDk%K6iJra*TTY,pS<al:UFJɀ-W SˆU HkCYD{[6ֱŁ.p!̝4FQ-*tXgGǰL$1% o `.OggS@,﹦01~>[n^Х>п)q"JDx14X6JW-O=ŋ7:f sqv?a"w=C,k]3%Ja9#[Ƭ0c M(`2zQ( *H,~M .7`r*1:GWH}pן%VP3A=st2.`}j,Ytlz"|qoDH@3IJ[b2zodc7g=l5'|Q7 %"P3SKihL񚨈U@!(t_3XMC~z,&DȽgSZy b|[!EMDqG>I%v9UNo%') Cw'1)m琱>w\jpz_qK7|>5JӈhN ^|d \L#r}\8V?=@:k9d=\=/?:.ruw(ˈ_}x?ֲN:7=y,v~<}t =r/RN>JIp! #@֥ 7;GƲ(CmYU.l6C~ %{*щ1h}OVv pEtZx0耈趗at燹ɦO6zexӶ|8'ɰTMq֦aX~[kFւ6| m\l0,Xj? *=@qojy<ʣ;Jj2bKi*0l`Y;mIM ZaО  =U [Hl8=f[]܂Ɋz_8XoO1p^`%Cw*|q b!U-C{@E+aWu" ;em ǩ>(u2ӡ<5oM=̒͝' y[K @Pݩ5$ĪuōRBJN].p6Q _b끣 ltc&jJa[~+fO ;$C]@pr^U}5=%{O/+)LotOW{,:m;7j}WFraߦ=o~5^ E|Uyg.Ok~TY7D+nfr e)}~+~YV,\?t)8`Wz'By"J:}˳Rt$whf{C  {0회eou|dņ)R(w&Ӓ;mċ\unV DDpmtR $+}sZY.DG8b'׫ߴ+#XO񞴣X,E7h[e%ї%˙QfIXR.pZhcK+#aUPۙ&ZTidYt2s T. X\kNHTMY 6L WٳIR]O﨏_Z/cV|z+(]ii'H "UsZu.Į}9H.P(pp8oJ5"NX\{.qG3$r4P/ 슫E'ox~w-"C0?=^ɻ'n>C 0t[w3+kTjɝ"kCYn>j+aȫH 55b覗\Z+ D9D>[fqkGazX=K]PJ?8;Iت0^87pVۯog)t 0vD{1!S6Ś%ri2fl9P>,#R\|1y;`\ T>63~ Xic=W7 /Vn.<߷SEvKՎ[)(|1׋$!AbHeÝ» jsd٢jEyY7.[*ŕ>;q I AKXОeYX.S X Dv|QEz}i>{ Eq˿Aw̬m&Q2;@'O F@mO:?:llipkLX- 0/;B_ {vnL飬kNe^H}co{ՉpVԩ&jܣUkӶ)6c9jRk׮uSq%c(q^|M)늲_O5{ld0BkR_Kvowկӷ)Z`$M>|vKC+f׎H. 2(X:gW|"p0m S =.cڻ>s8t .ȵ}yDkں$-:<kVfϗnjYNVA~z'/OY(P*P\k6GKVY52Ů҄D.Ni\ =g]ᨶj1%|[C8m<.tOD˴:\3ZBHEH!4'{$EQd[[&e uX'(0` .&9sV,|,%Vjla4#:iY@]9V Nn{"ϟ.uxE}Ȉ(THeءJ3NJw,TȬ[T`@ADުє DvʳlG_7ں߿z[,iwEF Lx*..b u۝2|b=zL(*f53gnz|pr w|DLii^TNX>H~+fZ.{ɑ6'"ٳVI$-.5nf^ߚڕSҰq<=/K_GTFx:JT1~)b=#'HڨzӿUw_D'Ubh|=+5J~)YL^]% WhOʗOo{~J܍abɅ3wQn[ڑX }NftJ 7#X)IV-۷ij?8Lǹ+";+q'H0%f9"YJwSBJ~ؼ?7pg# >nzb C 9tFȟp4+4Taһ'4Q*%zlXzVyrE8mhM]>+nX.p"mT?*OsSo(E?=_osol~E+{qi}Umh\ѼIb*YCP( ao_8Z4 Qil*e6E )ǥE2q~K6G.*H8}nbeQ^?UCΌ{^?]wy|enn^*@&uA& d0()ifxvWE"Va"a\[Ҟ|dX2<+Mkȋ[Df/V>r-ƈxbӑ@UYfJA?q{wc[,6~qo9*w},x"rr RH?f4<'\fG׵ d4;|6I)=ҁ[.DBf+4)l]G_|S~gy D6<2h֑mv5 8+?&ަQ3 s}`H|q}u:^AJ91^̳|j1Q۫-OggS﹦0%(#>c Y=R 7^z5q߂-0q=XEK5Ö[{SAOa+}G?,լPvWnwessS7K{ @ O~%O'F 7@%8$Ll̔p3`W\ 'bWye0m¾ݳВ2 ՚YaG!Ou 8.BAT4ߟqtk:5~-TA:P[a[QF;Uߍuc])m|R?pC~[v50<zApEL=@|s"yep" 5|Jڸ'\^{.:e$F;! EW XxeB)y:OC<7vXn|ϙaƱ(s5J5+,%Fc"b"~ XK/ `avEì-?pzyLh|PEv[v9.0+b1ᦺkpdzʻvı36`ƱSG՟K[\##ɷBmGJaVNtk <9`)쁏 <ǡ?M p'SyH$ggPZo~%cqg+uVwg:Y-qvFׇ H,ݰu^%F< ! ^ř< ǥZ1"!Yf-H@;Qbc%1n`%^ Eg~wg(+&Fh>taV/U/@"O,@m#hݾX9!J4p}aaPDR΅?! mb 6껢]i;jA^kL$<BTb}%JTǀzSONDK78%]KA,>L[uT@x*1;p՛ؒ 5,;{toT$F$ %v,ҹğí RyV"Rab  8q5E^01!,BTzbIEx"zs,1竧gI X [Oןwއטm<>wOvcI=QMfKf:T*@sRi5$t;5fZV#7vGdFi=nze㾚ƞjm}1Y80Ѻ"),)!.x9i{P[D RGZDv\˜P-:EGu OMc֪D,rH@7xN;Moh öam./O\ =xX$AG< ISnj.bKVE(ե4` =_Lqȅ۲`5(^KE^>+rDiSc.`L0v3?Q?<ՎA=[ =9ݺM1pTAk4E1Ւ]yR hY`!A7 7@.(FI#Fs]rX\4F7id.*FZ^g.y13s.NԂ3r>,.H/ ;ַ& @nݿ oKb<|A c@#cV4'NVxflzN(3"Tj&el$Sg^:\[I}V 㩉 6nu:n{'^Y߽uX[\uFF^P].[lS55X4ͲtRYUg[bRh/xJVY\!E~R'e©Y\5k^1Bx'شg鬦ɿtUYF'ʋqwc6ڭIFyUȝ\2PZwW xedSu 1'QjYUerm TpLɢɫqGaU˝wZx59Bn81l<^RQ qmv ~յ̦ 9t @N{. kPd$B 8A'&# e @ _Ql DF~Ĩq?QZ6kww~I(+^;D; :18v$m]O&6q^0H)"klp2I&@+ JV-:p+KD a;ozA+^%PƬ/1:Gս0)O^)NZxg(3s۰>2MF.EW%JLj4w$cFZ^xWo`?~66҄@n`vֆ0a(Pt3&G֪9qo}Vs4=]]Tbqa:x=] DK1MMj&VmUcbThWafAHSI,%ܱ9F rg WP(wDn⟏DGʮ";VF'63,(T栖Daj4Y m7Dӭڤ?:j[ч͢OQy;,M>^g8%>}}^cU;0dھ+u]5ڭ}Ikw8k pus}H+a^KE/8`kabɳo:*.Lk| h/C)DoW; PᬰDKXC%>mV毇X$vYjr+J)W>ݮ{uuTW«D ڜkq`Sߟ:MjZA\[%Ck~.a㻳udE+-# /<}@o&V.yRϪOa?1ƢkBtIѥs : rO+)|n_PeG>Nuaš0Vao K]&+V>+ix 1B(v ;NG$wɚ-6| ҶV^H w}X칏}4*@¯@`w}²cy5'у jssK0tF@g-aNwk"-8M~mvSW!D7w!%Q%HXp~;NLGXc{璵l1CjW.` Jq>zs4~\X0J} fLG#IA7ô I/SҎ׍{;sq/slنSQݐ+0tw EXM~+2%](kʍ3PlxhV˱pTZUӁ,0G`\zws-WuZٓ&]}nm=F=b_ օhB$-"CqֺEO<NI`3Խk}6κ>a#}iBxwgUq0R`H >f !S1E%vpZ!śN%G+CCHf:0i?n$u_qӳQ$ĖM+JkD~YrZaM!"FpBW;m,lbfg_`ʕm !?/̽ˇ;1zBZxXnDKd"QYH+&RJeֱ }HJb+^{#M|H}^8*{`:Hם1ƷUׇ!fOh4Q٠qc֬zz+*K^o{֪N6wiz#w^?7[u>wvpOߵ;! bep0>N+IjɎ#PFT6pV pU Pq2M{-}n4HkBnv7N|:C _;]sINK׹60F]n-6]|?x/bj"\X!}}?ar3&R  ȸA+N)(1P@J:DJNX*858yx{/>aI1P ?Zw{"}[Hn~Vk|o( y70c-Lٖ瑐f~0mU_rfb6?{)=7dߜg6Ϻӳn8È% ^¡گ$Ȃ(qn+3:&aeA?y<`9q\SI' Iu5ccƍW#q}' xtH5Gn֐'7>R0D ):Q\s& %/RG#UF > .D\!R[:cs:|> t'"R8;gS̼]%0QJw t-L"INgvQJ^v=G*?fHf5@hxg2E_Ӭ-UO-Gkx tb eJu+m +TDl 3YBBʪm Ta*D\P}/'ْo}>qgu|k7DsW(kb] b?A oa6d)zc~ߑ5Ͳ v%=C6x'`!uy|9b‹~ZV YkvnBR(Eߎ%-D]]'~TGp6G`LJd7Zй_:vtJPAN_6WmܟUu~mV otWVkFoYv&1q) %[^.q'ņVTjpa[N2 .*֒iIHF.\?.TҊ>{ :w\ŁՕFvl|Ǹ|>~2X׳|g Z1iH,1{,kIZ?so>aE k#ۤTum^j r|ˢZ6P"KN%"s9N{T8kYq1l[2VUNQۅ% #FB/ hut vh.@ɚ NY_]Npgro8ZQ?qn\5gZ;|j5QLQMԊ@0^N&6lU]z50BO7.Jq0Fȣ,F D8|w{ ?~ꪬ턐 VڛDf`4.'̿ 5aw[qtpnmY#I\fխ4B9GSM\ʩfEZ4o=bT \,;Nu\e۰5] nZ'.5ScӁr 0湏IMl~' Z\#V{nӉXbRw;$9K"L[#b`Sm sSj|C͑Śk-Z]6 "+ ,0ڥj!>VR9S_Ցp.OpvMnIV\7 mE[?7s"iZ.m@N}:̙]Kl}8 i-gםԃqUS̯l=D2}NG2q59PH/u)yzj+%OggS@N﹦0&¹ȃ_M2W랧wv{u8WiF?q$ss89x1cuRÍ#Q;??OUZȁ1dQv+tՎ~Y Cᤗ!z)~ӭ;H !V3[24R waLkt0,H)X~u͕af ק6g5pƎYNN/¡OVSoJ,޻0j}ԥj :-xF>?VGj vv#ndqRJ'@gH-Gk~E[rQE<a%CDgzp.Fp _$K#oyBO2jNf 5p*J?6zfZ3G$gk{s+H|各gu҃<G  8\kcuṫ~hy=ke^m½֍1[>ϧI=-FyNw4N}N u>ӓטI_wtr䁃,_vgOV un=Jڬ6)Enz;1|_ ~́.h{ý\(ae7aWjP3\{l|L[*5!6)"HwnmTZhԚoZWs>&5C0۩Yww6e;|;wvS/t j,ۢMlǍ組O#u/4eV‡rt ^,g?Jd2C'؁E)`f6/=$6Ü0vmߨ. ٽ 48vT= !0>ѕ;g}hwڽ ,q'!t/|yx {~t;2ĤE7NGV)],VHZ&UeO~atD~+N"7ݎ.ьhl=\C7XJ)x4I.'7, 42q\O7 4`ng4-zqm`Zӯ$Xi|>)8`}Ke~S=8/8R9]2ޜ0'O_JLאͧ8n˔i\1B+|0I:Zq1aZB80|H)O,Yw |3]a~b/_Z#mHzJefk(y[ʡF5ξup+%q%!WƹSP EAQ6(5>Q ^+ZKcՄ_,oCi্_rgT_ȍulN<'y4$! F R!iQVo6}N#N'$"ߥ~ rl6#mľxdjY>!犄J[GSܕ +́^B,N.WOYeQ0Y XZq,׵ާos/nc4d]V'GR7!21 p_|p<E\YVJ5um1n\K.Fi̒XЌdM 1ɽe N[nC߼K{XPC X$$vuw&GsU͍rYYhb4qk\ r@Wr !8236;mG~{_ETeOA_څ#Υm8߿߯{vjcn>5VA*mWMHƬuǨ<~(,n-.KN.Bztkކa2Uեt8.MYR"N4G?ήgÑqE Zc 5%]5?3+:&~8]s%ATs>N!4UܮvU;31RݍWil%W'Nic ZXEѾu:'K H$>+@㣭eUlU,3OQG=b1ܿ5]P@Q1usuyWҧz)_c&3/, sZ}ұzRގ}ɫ޵>${KN >HL%|"eD ڐ !ط{!!d{ݦWtéT kt -~yqSLQ]bYa1sیQ'x-.@^;NLPË3fx{ndZʡz/)pvLM_3SwE4$4=# I`->6_a4z\k4D6.@i_ؕX_.o@4g6T#r Z?8k(U@un{}]nbgiD K΃ֳDjڱ xȗx {$,6cʍ?iAjo0{][ZүHfAP"#}ܙrW>TW~TxʞN5&\}.9+!h䫽!/J&Ii=ra= 4uIyG?x7{h~@6&b #-Q`H}Uo$WVe>v@_,Mʝ)aM+AS!Z˗J?~8x>nl"]J#Zj% blk$ΔCkY>x[0UVNVӭ׆me(2j{EZnc@Τ '^iIC/He]#l Z  w v+v́鰣5cW?0d;pj #sl<=<++o=q둕$%7vt?u94!Z_g7e?Nٚrþt 1i}6yܔP" lov'7ԋy_kCĎKXI@dwyDcp w(@Q/!u~PB@遗xe der .P,5Uxq?NGQ= ٥*$#.qR޷/TӁ{:BMK!g]Vv٠ѸUA)!d~S6$knƀ 5Zr*d'IN6 ܤv.M |Rx~ާ h#B4& &% ٹݹRBe*ujx/}x]uP%OU"KQ,Ԟ 3Ba JXش UK)CyzfJpt>N%wn gbziY* nO б( D0-NQ^YP#tLw55{^cǾϻzq<9Nos=VF6.\HEET!Õ*HU]6 gOggS@﹦0k2! ԆU$kNnǝwL^G%4 ~m+7?b S^EL1?2nހ_^ǔiaRsqEnU6O6oۉ.6""Du]a1)Nd1uqvk5WMC%P$iDE! C{/ +cqq7c4p&SR(Yb)8H3~9D5)GOHT]9 `Hiܒ^@ q  #>ƛF3:]*4l?u$ p-@|M+ѸQ4pNY&@ @q㡽L5|2Wzm7%!M˓dMg:$_gp$zkIr*SL 8B8 yu~GLk0+QTt%*2.bwEJt+ʍ 0kC-Tڥ0;%<$;ݦR\=0|PCiYT>'e?]|{BzH o"0&AYutCh "Ac L,tg= $yy7Ś5{ msoJF"HKTð)wk cZtURFO~zu@UVR A0PS Ǜp݅zyo-$m?_&(;a #kYϏpsDvHuc\n!qPorJ;2<bM Ÿ9urT:o>Q3p5*~BɎ[m`Gg@9=l3 FL"\Vx&&u<|=K cjEpdtb@Zc:Xf^6[5odƳCQj/Xo[u(?#W+43u[6T@;φ&vK/h0."avL +{ogo\cM}@h1uW{ 떮v侑Fsdߟێu$oF7(qQS hJH}Kְ龍|Pq]I,b^KkP.Ŗ) v~ds6a\?iWSǛIwq](VR; ސѸhʆ\.j -H|d<#{4Z?yfo |L`!WD;!IÕ~KRDD^zTw&,,F?HJv{"#D9f?MOvR8&G6ΪJ^_)o*@ |~6;R@XҌo!? rZhc;|=$ S_/JXGq+ ce'^z)@;sPN82*`GSf6n_H3PEAZ N-6YJb =nv]Hbw#H# I=Y˥V>دs~ogU;(rE_- K gĜ^ePs2r_ H0|b ?@P R{./b?"Ft g*H25SSismKIxq~=e/9n3z)oMyNv39Kb_i5ܙtdbJ5,Ik~KPFBkAeB\抋O-;jR]OkhX̗ E?,ݽ!;s_kvv9TGVH$LI%86Rڿd jW!"(᪁!#K~W:v<ѹ# t,]r5 BkYy) *0/](S<Ь@6vH0ztH:%‥6 zT͆^Ks`lg9us!~3[sޚ\TmLӊV)T)HR+qzZ, \PIE^v@B^ra([tUG< @@)jDP9߬S<;,0}YUh* yiJ봅j7ا^́7HI6GrCӳ0j6jkL0udWHJޣp* >:}Ohm^ Gdd':'>8*UDHs;I!.?yk3{v8 =dۏJ!dx ^-vGy]zƺtN,l{lаLw0^|ƿ;lpW9ePAJb$^C6޻j<GV_}XLu.u#{`lEˤ:0 h"WAb:ot%Cސh )>+]vg; zq?[/&5>6 szVn}^:GIJJWf%JqV w"k'ȳ(ݭC/S*D=y5(<*,E[}߉Iۣ5-So l){2X|=Fat/E}1ph6RM )ŧt%*ŀl=ےAtlN-J)cY$NS8@o:JJ&'z_э~;)Hƾ1>*/v!zTO+_|1.:#s sv::n9\qdQdCDʋζgBw*'-=$ vh)X( h8M͕*qbTPfKMn] 4+D@9@^  -Y`5b:\Í76UD*?Ǯe(EiNU##~FZa|}O#JV.t,!uWHUB+K_)UX޹%!k9IEwDbwQ:\+ D9?m݅o_nhyB|< ֔Z |[p+m*'ɧ7  ̑{5W"t d \jH U( f$x۫8w=o'MEAsv8SqV&;OIH:Dʹ(a%-9RZ%un8۲FQl{C #i;z?w?G'9 לӬӱDF% ]M[,0H]DmQ!Zӄ~7!ZbqJ=SkqV.L9ከT_'  vZ UyFIɏl±[՞##Kpf PgJRq5#ߛpRaԛ/eܩ`!ϫ{Rҕ:| 3P LW)Eś(4pJ!ƀ+pAOggS@ ﹦0"#''!-*>D605O1eL 5, 3>ԟ^wBtv‚@O'X) o\OvK-qvxLٚZ$i,n%0(sGDyZUQ@,1>5 bEp ֪Dp@q;©4nSR76 .:WP 0d(raϬܿmSiⵁZta=aA866iZIwаg+hRyF떲V{|^4"QmXeL ,I2C҂sAya*WIéJX7AC)>oo]U}6цc^ ȷ,H+)nv:DJn1A}c{Aojq:g|7+InlLp9`/_9f7C*wV[}V$;a2\jW2V|6@QF %2";l$7ho\XXb)h &a0oi3~]}mĸw{¦l un 5 #YJq D^+֔vȈƒi>r7 U;aFV^YC腁o樠[" r*`t/>$"id8h1znC&VwǿsqM/sZ!q|-.xqr%By p eqfZ҈hXOSԯh\h#X4;OΞ[7BxӍiOt-+w^Cal42M9Aidۨ9qcĴMzޖUo7wC&Q*%EWp1nWZ=b$X Dx>h5RWɀѝ@)rظVJH|WݧlWO=^*Ba\F1ZӱsT@|I*WӕGV5k3n\K(ެ9hH?giJ?VC+1RjJokdEV 7`0 MVU\*KTE8V~Sx~ 71SX# Fk_,`RĐH ^8Dڮ"q cbURذYݴgrt=_(|S_H4Vr._55w; n&D¦75?uO8KGiOM xL6׸3۔aR% 2EåԲ Q]Rl"F(;D G mbw^"\USt4Ng?7 Kɲ-kZbX} >C:D BW `G/@t~<:)g,8~N0ɧ^ ٕ)v78{A3$Z`?9gu1i% ej?`|6"-S=?Aކ9w5+9#*+9?ʵHv;U}zwC&,&1pzevխQ~?N ~ceMwLliiN٠*- aQ }_gp"T[kMV  㻰#Us_}C ,Wj{P2 çlŕGWLW| 'uD +\J45xM"J4 LCLU:UFDHR|ýqQ]!y_aK::&H"z+upRɈdX \ifԭM|J[zQ}*]n '.w}4Մ4}/a蒒u-`n/ȼΧ/W5XfmB/eTksl/5*ˤ<|[ `J^;V\upAj)L|>B@r?= Z >|ASŢN_3x{Fo kiPcdt]wDq,_nh̅Y:Z7}2%f m\+Z~R霾n(˸Z, ;L&׎B7Ӫh=>?A˻IgV?zYpz/d#򦇷;sYߠݏ`]0A( #HA02ɨt]+(?n4(GU ?wvg"1^jr9Wk3KLG׊ < vY;@Itf>(pfo!-4cDŽRhv'@ ߻I \c1e#~sQ}**l4::tvG& XS(FD$yefGhvoC3%:W"{U͗Qf)eieIZTJ~KvdL[Y@0"KSH MXBڬS%p_;mt{}[%eo[[so8M J&;>qxl_E?3#wԟa Z?_+p(sAKѺw ŶS@jGɶ3N;vKrWڷAo#/N';&caHu0CiR^ւb`61 x(Y3<Ӧ,cx:aӛR?B+{ju88l!%>) XVQ @ҳ ͒Y3|>7?9NT#ɻo=75/xGq;(q]x^+\?!Qu!=φ̫Iz3kOM@7'^&~$4ėjUa>0R[<0Z~Ke & L^ȠZ >89+a |Բh-:m|/?|xBfHKnA i І VQ/p [FOr'} _4V?<{֭S @eZ:N/ۧB/%4^1 }ceiXOggS@m﹦0IUf%kHݨUc҂Eo>jsMVI^?uLt(mE >*)tr+1 +fw$T4u0"[FϷV-`  J%+ZW?Dc+Ém5Jlٗ.һ7 |&DCh[-F+_}ѪZvFTimW~epչї1>؈K+6~Uׂ+CRIL*&%u`90?LAu'R9{wrwl#: ,tsS4*X{&?=qu$GG">` *|ӧWSfDi]0IZ=ݘ??Nvx 6( k]~V q^Q)Fvl'KчA[eXX77Jϋks:mbRmc^Ow׮6|=tqJO,"}"ٗRĠ#$箴qn^RJ2֚nݚ! S=i{8n˗۸{~w7-fC^eݯ|Q< ֽH3KB{ gS!N \)a<{/K&Fڛb<ą~~D}{@@ݎPq'@t#yTȖ'ZYngg| )uW绥w.[[ iwgC4,eƃT G)<‹j6ꕔ|܁Y7Kv_/o.OGRdZ+X08wݻi-w/v/K*;7ui\;"p_X#L/{BcZCևTXx:WxljR6wf9}`UiRৃMf=Mg tkmπ^XNގfs -Q3U D{7(H#w?5|VGb J; g%JWMEE,Ldk 82؆.p\#r]{swDZ0~NוjF˲SQ4o5m2L۷O'؉"oO2*%ȾU^|(<,{,Z;t~ \>TRk[{mwfiuӰP׋Vã> y957@L|9&q/7yv86#\0@~@g0C`\Bt b9ۿ<?,+i%!7wObZ+Y-F^s-~ЊmJZ){wk̷fYg|^6kA&.]n:#z6@|mewaI05/ ,)}?stZBʚeij͎tNkeFU8hKՉC)"af rb5Z+s]\KNo8u#6:4~f&ϥL/+P?[SR2_xw_1ڢӵz˫U[۶ۻӫe|mdpl^nM-LY qDHp:lP $2w2E]ʻNu珆e&q<N|s c}Z8uW[Xn:.1zƢ*U ^f5&݅"7vN;e㍦B 2!.eBk(0N ț"E5fě]Q5[ʏqigȝ;|y\31:D]#Fvwݲ­(U^;6Aj/Ŗh`^h}\Rk?>}[UȄM_taX>Tׂ,:tғpWob=7ǻx?ѳvң@K:%W I&:nk(;)0rd?S ?Y_8mteOS7ob]Cp5P+s\{n.=[qRhE0DOggS@﹦0[nZN'VHz灴2Ů+)vl!WpY vGg:DZ팞<3"s5gN B߭"Ld#qh7@?ڒaaPv{J#kLה.wrXJwυ 0{^5=oT(7}LM_yMb1jlg5rK^xr|^@֤^an0~_- sbR3­V}ABMŬzU)Cp]@lXOpI硪W:58ĥYF*.BAhh2ɓQ֋Eq`rg==~=w8ޣ7]2%`qHAA'F8ߘ3 .5B <|b$mѼ I9 8q*"B?ǬBPd{ƶz{BiZ4uxM5Rwj62nsq𱓻󷻃{8lQ/oWrz\`@~f^ֽڒ,6%] xר+!CU~gʝUם.n4 y,o?7t%t4+gW_%` ^ՐA4hh}R) dx?9Bs(.tzw/N^fKwk߀^]pbmY[T[.H!S]׏xr+mۮ^q$r%ɧ? 5mw`M26 Rkyq?kgg]jѪm$K!^҃Htj( ~sLN?CP$J/oE^|c}w ]Kf|@L%I_$$[xlio ;vxc|w |F9#>K+襶zݷ~2 ѼVt(*k.h^ @Rcp*k?'Yb,߷쳞gAHC4(teHI% X7K&;.O0<|SSV3' 8RwZͲ<)7C-pb*ZRZܨkf1;>];S{pP<"њy{y;yAbk먿l3b3"v$"bo2t>#F>>nfgӷt_="[n^yښ5?G}֮R1 R^c_{JnWޔtj E}) fpW'RQI=^AeNt&0@yv5k=Pv鏜7(u;0|͕VE9sZH4gH&2CV8/VZKpˈN87Xj+97֍7=WT{_5pe~ CuV=WhC8xC_?;ݬ6fCƧ9e 8\eUbUE%1k "%wźt/5ˤR"b++ %蝷lzo]__:y'Fi~A /f1ZVNE _ U FxZ ts*G}{栱8bGC=\VQz#Wi",fOwoI 4me|&>ە10u_bdE}׹?>!/T}r9>x1\r>ZmYW鸰4\Lgt/9nΫ,v^.޻'N,@&)LWenkkPbGL~ Ivn^"Zԇ8h@EFŹ> _;dXʊN_v^q^~<3M^_m0 d!iyçՖnT_)H"{fEnQoڗe.za5 +N+RovӰrײR&x'#Il̹`Š㥖)`qJ:֜?Z+P@vҞ26,>UŒh 5چ|iK.0IdIZwF wGpo4v9n!f*駖r5>W^XWRq +b(X6[7*!뺼,)``p 9.Tq`tL xZ)htyw;{G7dh6bCqZj5Z( U rM%k?`B*-}mчlE{W'4voQJW|+V~nLsx&| |!萐1.3 Te6i7_u&(ܵy>sP|tV59 nZQ?p5ay͕jo2+pc ytpz;_u#˙2'v5w"E',˂Z\od$rǕ(SOOggS4 ﹦0!=."$!+& "# ! %$}!!""!"%%&vI%UN kzS~˦ps)ٹwNS2?{N/?mxA3y]w, f|Ʀۿ+sφ>ћp 0A '@%q/nL2*Fzs/݆:\˧<.bmJ<;(AF*/,Ĉ<<@کߵ(HGDߘ=<@5 Z,n$Z)Tr,~/=+޿ycѺˢD bS$Y9@hem[#Wlvl0$SL.9> cyMn~葏d-t*F({Դ[Iy&ga]ˇO[V}(^ʳ2%1?ׇ!1 8'.ww]$%z7(ĄS!B@`~. ]& ( gkڮ0g.BLƊE9o5ը-P@h{FR'#)j@BMyY"7t F5Tc-wp@yC@* ߋo18jŴ@Kh[ rNFk\8V8bR@_#"16a׊H?1 zζ#hVGi2n6E 5z>LBBN[Z7Z9Q1H$u`?fkPխ'B3+'^պu vK$n ~'`1:GD՛}!PS-}lTg ˶p_sN/Avb,Z|$ZV[XSÊ[{9J tH1|?q$ϩ5Q|(¸+.պP$#eIE*PY53"u#lA>0+JUq6ٖ;7<`$bs^h pxہ(2Da O؝7l#邇q 4S@O%Jh?ژxj EQ=HAV#YWňIX/]~bw?*< Ƞv8Ǽn( ޴16*KRjO"Ijy1&Sގ%)v\ ) Q+ ɷ ұ4 ;Z. LG2-7]Z^Cr{ߑfV,|q}nBg#C@+TW['SdI1?.U\%{:ucm_y[ {*~\cT+\Yk//y+d܆5Ihd  Sm'@P:+SǺWV^P\1r_뵜 Kfľ6'{}:f%ZHNOkɔIs$a':/r8q_Iʕ_,ݕPP\#F K5XFpފ%@nrXЖȇj +c`Ƿׇ9&CGҲ+N_8-ꂶ} oCpni[ƹl 4o118A#1 R2-R)@DLuo\K⠅^6D aܰ~#I#n'yb,Rܞ8@ 1S$ pZbER"Rއ(vZ#pm@Q~պhuҁB H‡|U~BL=ӑ7hC|,PbJ"^`tT|;kU]H1"+s&sbq~r25K^ l4uw\_FS[~H)z4FVLRG]KM`r3LQ S]HEM  eQU~RުCAf<{aw4@*DIMA]ϸو-#:m=Pb5֙%7fh)>`0 KVpJQ!FXS{AzE(nIHQ1gEcI R B)>%dCCA% cb26wp1[5=7lKzǃPXx4h` +$tYb wV#`PGvaNH IIW:,M.^k.H:, wF z AK$Q[^gK<>Nsd"ŷZ"tѡS BxP0PGY @ D!]f}Q)M".Բ 1T$r\h@UUb'@n"@fڙͫ M^$@CҠ,ԮQ2b4T%[lulIbZd2é rVyf&OH̿ A, tnG1X"!ȵ9|bzȒ[Em9gpEk\U ji!T_ B{K׳{:Pn L_KƠ f(l KG~~Gs2!R5TeI͘na{ZI\W+Gj@TcA/ \Œ-6Zn"g [T_M0 /_/./*!kׯ*04cŒ׆pW,ɨLa),5/ 9-ס*J4|qaV3?Tgӗۉ!$/6 C,2-C^ +Ͳi[=UeK2NQihc%ʰ6H +R2\   ILj@]nQ1wacEmv ˝91/Js!EUc.ݻ*#PkY' 1'h^+$[pԏ_7CY[XB!DK[:`ZCx%D`p%jn\r?ij~(Elj-AB]۟uCA"Rs4|FZA5F1k^rZ Pe*w{%Z1qϙ)<`DDy&n܅j] @Np"#Ip@RR48L] F<VJ#֧ʷ1!sÿ9(@`iÀ49rQn:IPؠ1 5!MtIK4BvЊ$HD^[CⰏٲr08:wZq`{cqTEp@F47jF~_8yv+&[f H@D_[~K<%FiZ\z;ރ [xaNT Qj0 bxdńQ¾'u3F IN;n  ~")}m]. ~n5ou[l |Kt}%%63b}X ᇫ`$@R`SEJRBJHeܙŠ) b}r6*xMω`o1xpN N1"*I<ѮpC,ՀVhN@*A-i'"urQkn0n ִ%C&V @EijvS'ďKN*7+%"aж.U@pi UF ءª =& 7փ6 ^@+4DϗmF, e+u @Lo(r˩L8"f8"_Qr#yv'3Fbu.Pyf)Hvu=)WMjr?4) Av4_4a0( El< ,Hd-m2B -1 90>5S:P|Ny/DFP<hýע'v#a^S c+:>m&t*0HbRc, 4P(ТZ]xMl( f AQ\jp /1n-kr'Co,c֏-EO@bh-E^@Kba-@ BG F,>{)fJw"_'n#NB/[A(+_^uC Bv:&D|C Xԋj/~QqvmQ#uo4DagQbE $#JvS^cu%j`1D .@ ,F{A GjFx)3`pϟ.xb+WO?zG-/Ʃn @?A bk!m='VwK+ZELUe$y]ĂtQ7-Ơ \H4h}W J)Hj: P2du}W9xZ#U8I:=2D4 ,)_%t*? P~`QJ`Y BB" R!1H;鰃8a٠qhGklJ_xg|W!mh0j󵄏>+Z%xMJPD#,WR(A ^"NpZ@6f^T`v,Wl3}Hs C#-R_ |5PGvT"GVIUJ@:r{޵05^."\L`}"\>5 {T#aZiW߿1c}vy?!n%m;fXToHr ʋzmPEkGg lyA)x&VSDqi^ѽ> .f3'`7}܃V]mH4/:u'oh̯SͼH2h=WZiot %C]t>1|qoX(x[}ܕM% hq}0ȫB"~t!Z; Í1B au)|-k"6mOF7X4K-Msh֛AjLw-f+I7*ڄL!\ Yɸ(E@ )Ғ_Tw$x,ث`kB1$~sF4иm A#H']Ht:kRb+THIթi5n>j o^ w(HBEAY,*\%3EBKq7>0 ?]qxAȤY"M`1۟~?e7\nОe tƫ&hP =V,[tn h0Iyu0GMW# /֝oVsY^nH2HX |>`\pM= <XZ:.6 "9u\ϫrٲ>x #,(%^Mh<rcVx F^!?J %,du[oT:lٗ~Пk{BaCjuy@/XH8@NQhPų◃nVUO="d.P2Mfm;ev |LN#$!DipJLn$!9*LII;tZrCo!WQ4c s@VJ(m8!Kj5jSE܈cH(0W~i;ܒqWKGpa4#R♷~IXGh}nhHMگ&5 (58²:m#;% 5&n , +X:Ÿlf Ρ5#V+VTPjY]IbZ.nZ M(qX.F~LrXoQxeɮ&AƬ~.; n(#1A\'`Ojg7kx?\&J6,wkIw~pպpis%o%S/*L8F@p !@@ nK,ʥ2<fIIW 3ҹ.lsAŸ݋Uz w홾#<BR%O@Xp\NqV_X Hlr+PhK4k~ f$ ۳X 9XӦ}O1IIulHحe+xD$ޫOl*Hgv&Qپci`s!ϲ; bJ )""dO^sfШH].!p4@EU+ ;f},n~LìԒxA|C) گwݍK݅>yς彚݊T@c,JDcrUZߝof[9]{m],PAO&>*L ܨ&JF钐[^\ cpuP FUDpRmkxrfF4V#&7H3g  ^ND▕),j^~ZjڏKU&upZIb[.՗x uuwuzW a=\N^ҊW ;¤hAc`넋XU\b \HJt ^r֞ ET% ڄ0f 8ľH)Az^qa0nvnm.2)o}4o<6ywdR2S= tdt e >y_\}:r\YgɵإV Œm12K q[)VdC.53.[ӡ@R#)L}V" ڻ'D&3B{Eb19(rr~-~=?W˭ځǽP0@oTJDlX. ,w{_ ] {}kӪBftD q N'm5a%;1*H,י R*E%T,.^L^ʚX;uKufovU}AOLqqdh,2|?ndeBY?ѼvU83>6(~W[k :Vm%ćqʄ(lnr9 ՓUi!Q`* [nn =a .n0p؂[0U 1#XDS[)Yf{>%’D9]fAВYqqL'N~Ftn"kIjg63,^j)2 BB@mpC .R[h``:1>@ 'lOl~3 ]gRTtxJhcL-;;]xzoc0 /?+clu+NrnR[1,e-ju)Fl4o!͵^"vY)plM,`غ}f8 S#Uq !sf7JoVuSr7NC\b%+ n!.E6~?,7:xHS1%Uf$ON,m쏴@/w-*fYm} )lgûXGEISkX$` h1ʘu %>=F""\]T ,K2T[|aeoQ$[n8yb~뻽 XL[ Ã+RtFڱ 7.ojTaȨ`FpAeQ61X-|f0A)ph HQ*3Yb<+&4Z mMu GEA r11֔TP|'X"QDyW匈{!,; #j *i?Ύ/lѵזZZ汒јe74X2M~mAfָ믤Bg%ku7P~WǸatkIwQ˞2ŢgVkpIY5jPcY^(=%l&a5g h]Q Vʋ%ttg%ú8m>> RZ$^3?ȒQŤ!6Qp@jAqLw2CV{VܧϺ#ZҾ*Pv.KZnD1wq޼^#E= = V7'QAZwAR\I?5RǨ.ӊf$=KǺ$}יb (V(} aW:Rg a%2t8|L>+NrN w wEcdUCŐj| %iB,^$? BN*tzrl]nJܔϫA‚0ִMPm#  V<`"<Sc~p2ZyC !wS\ux;~(2H'=dfVh~RRf1*KA\Na!!gxa(PJ#WUtS@cdZ'ֿ%u6m %H5Zw#Vigy&cx9J/ќ7lTW$_4qŒ*iɦEXcWeEIMBoI Ksɹzjq⃁636 )B u%2c+hڣg p7H$5@M3VƆp6Oa]*_2ԝo WmsivO-+XK?ZyoK}c #MsP>n+_4lрà^\i x:kы2Uq߆J$w5#;oL#ɪ$BÁ爒*Fzl*H'%%L_>S;bzϫqʎr)R#P>NkYCǘ+)Mk-)$n5v!;yRkYVÖ 2!ϛ8|qi:]DC> 0+8Y۽QRjL32'}kFR~brqW]N~4tt1ߴK6Yz,jTV|~lNv4[bw'vP n{Z}$%0iW;>G׿FZPBA: vi8R$VN~Vс% JIwgB4ߖͻ\n:|6x=,̗q0s.o2Kg>IhU,Q@^q  熱Wħ\Wr`&+GVgp҅"iRx p ҉ d@tR/GZ8HJ3%t7=?SKZoBy'X7J2J1_gqd隷ʴ[geBW-4_.8 F,@|\ynhV)+Rb*돌0E~iԩ= @/TppG9FJk>%`ۡWo B0Ջmٟ;bJMsiNIԝ=֝fG6 ): 5VyeAkNA%;& tt=W֏kph7Vy{ʀQPaRﶢఃAPaz;t*ڎa<$T< !h:u);dNWUq6Eu0/`AxR|{HҘܳU n5 .{Rx66,%-kV|\QVpGL?=jnl_tNvW)7/_E?ZS2"~;:h* KXC$ojJAu"Hqw/o`hz7~@ \k wC:#GĺY:1jt>pV=M0ηalu?6V6wNnB{v M+Fԛ|ϑ1TFg -|`AhJ>Sk&L؍K$ f qD h5v_nz0)hxs"c=סr.d39!bMs_|W7|=Q'<aϊ> GEUe P/@one sayp:3k|BC賳}km='􋼗=̳[{? G>Ć!<(`HBhNH<wvܘ`vkaܐͯjMaZ^6[%`bFA!>TYIYd_WX{R 0(=:FN leb 1ux./02;uuzlE &;>KS5nx(3O>LG$SkɋyFJRϳ[<._S;%9s̯Lês¶qR(#q{F2s7]D+Ffu MɁTQH5Mi+$$N]z޴9CNipl.zXNe47&՟_"F~9K=Sot՟l0nu._>z_ܹFuW6S[ﭱ>[Ƥ Ÿ9Qެ5!@Y,*Va9?RBY)s3 }y2,}^鴕yRW1r^*K5cHJ_.{PCrkWCFVaQKSL1Hi;>#=p(. OHE]*}%4K7οe9FR! cZ2Q ,uPc~0pjqV-4ü7;Sbfe&`]d P|MM1;{1(nwpyZO?^xߺ|/ǧlŪQJ 얡 & 4ϯn/ܗ:@l _S6~JV;o=OnktݪF&'N\L !۵LSR1A]1ez-b!9N6.BUǮv}5;ۙ];lbޯCthXz'ПgE0nvmh1!~$[m~I/]ceŧ`IsGB#A{"#JD-å`"[:  >j˩&]*G$t-0\?,ڗXsVdP)Տ>@ isaBzqN%I,Oj{ŒZ4R=,\<jnҢ ݧ MLr װ"e]]2< E.sn떁wv %q)(8MU ӵ:rvV^8*k,2W~4xA9 R3`71L|Dd<>_{_Qњz[)FI=Rtm[J;ګ{@E8LZ_v{ءtqb!y+;Pc5^=-¤Sy`9XzUahAY L"v CY jt<2$T[Μ`_^\8ꥳ>3qJ"d[Hj9yg*(\LS ו#|}Ѽm/jUA%.\W@30?g_fԂ RFPXU4DU6iT^,?o|ZRl}ڑL[bC7=z.Zޡd]|u:g~?g/a)ԎiòC|;[#d]AnF˩oNm;kЩ 7)lcCV93'-llѼo8D$Q!wԮW:6Ѷyr@(5/WC@D,$L_Q(E:z\DD˩7^5-'whVƃ]! jQu[|d\"'a݉IvW<_g6eaŻ+/y%VD44C K\. vfa 6R&}\W)*@I` %lRFr"DUz^椸Ay)=C-+:VnB4LWbk 5SgZ絽BBa{8hQl[ku2qzRt-Id{+d]l 3Y˥RSݬF{14i\[ o^E\Brz7_ߕ]Q(CZ?#dC,Ũ۹ZGEiEfqfe|e 8~v+>FJA^ .J<5V ;2B6!w-Kx-ɹRJOj-S qߝo O&B(±;Kz&Á*U8ȂpgQl,u7vVC{%VX&)Zҹ̧nA!0/k^DJ2g([BJv&Ұ'~0|ȥKŕ`[c]+˾Z1uŪa w&,x߶Kz7IR{DlMu!BP'[@r?] D$Ӹ;FTٜͩnOxLһ쓍31Ij&K #ջ)ŘsǶdwcnX$ZɭW<3TWd5YWm{0iWm˒NR_8\Uiыa qRϧsU['q\WluI=Ge==$$VϚ>rlY2,N*6WzSy+U>mkIjqDU(Soƒ%,vJX LUSib%ZGv4}{jb\Yk ]ގ`/ٮ8A\=yᔿӑ*daHr&A6IP*PۉzIf￱!T_E˞w+JL9V_Ht*W;Q3dƗ;0 TODՋCFLR"?h9t5W_W̛0N{/Ws{vU Usq=N}Zz?$MJY@Hɩ8}t ʷ\1a\)-~sH7o7\'p7'} | p~]~aE~܈Kx&Fs]5_ٶOPo]̈%޻<ˎX 8#L٠<@"&z }a eRR5f_qڶޕ7/r &w^eǸ`s0{},6TULWl^|'M6ϱ&s ɒ\'~ ocMOVI ˤk}&F|Bx;j%h r[br 6GnwkV|K['n_zǸnsñFFx4̍V+NV} >W&ʸҮkbtDLw,ɏ\^r w#4q6Nj]5]0)YwwS1ѾskJ*C Ԟx8?7mkyqλueC`{O}fzqKiJo,M-׈PTSTP8q)H7=!LUhX5%)S:~RfNi4%gEl[D8 _KGxi[ K Tck,!\p~|^Xز[cKtX V6\5W,(!7:_x5irߺPjL ;"3Lg< ؕ^Xn5)n5Lj9\VAX,jW|,[>\›-w:J` cʆu5/칢8ΝbTLUqane `5Js@IBݢx:g>4d)0vI[Ge#0($p{ДSN|aַL.{9Ƚ1'}XI7Wo/zKhwxـΔ8,44 D֥l7|U&|*?«*`WZcDU]F7 Y}vO/Si%rrY~QOtT@1װ BèӖڡ[C6w> 7wIq(rrc jً44Z2ً%!ٝY WF`U$w0̓Jș(?O.ڞxq>dB*d1 'UU.fN\O4O|ebH$K?*pX'-s1_Á@W}U[d55NzȽ,rOj:j,+R /§^ExY( Zd!,ddFLwT[|uț8.v' ܚ51IDWmei?[evzyO5gݶ%Uu-TW`vt52sp۩nI\n’E1DS) H< ܯS@#~x"LUSzxp݀ *[QYPB̭n*!F\YFGWvڏ( K5yc+%@4S"ӕ-9xJ Vj%Xh-=g&n(+l](Xdn;}O8NrS}3Few1h\g0XCϔvxZ[R~ۖ#dž d>?pQؽ\-Pef~|Zu`/'x\Q\Xܿ{yt0&JضϘr(a#ї=}+k}KߚlH2˕D1 [#i%o-79xɓO&OpџKkBdY9_X=wc [Fl]X̳;V]aJm@o![^e{5W7#zR ?r\c7~8hjJYZ^fR,:DUvը*;'N%|&}wSK|VTY6U/pԎ99E~&0U&Jad]Xb%N>֐`ۮ6;o+4y]O-zn~)r3ND4=N6:#BwI1=t!nPyPHeȐ}IْWxlf%]f'M6kp\tdZ9C#h#ejQs p|сVRb{ uZbds(>A,xCK^c_ s%dX#dT 謹rO㢩LnYAV?i/LL.6חy:>X]~"㮹rkz">7F !\-QwIі(.l1UQݤ/}[BȤR'`Znf#w6L[W,FpynlݙTfn)"TYα$ձ@}% .5aO8Z٨tܪ LU | [GhuW ǭ4W4)rďK,d4w')w?mD[LyTU^JɉS-{nMT_Oql1Co1әӦcX!ʟ0>'?Oc;虚ld΂X4=YIrSi!~ln|Z!jKӭ׼yiW<ڋXS.Q*e4> a_0=*j9 CA|YG@ub3y̎TәN %;$(#^c'C2}I V5Y!eM|H1,lgl8 ! i:behRʽϨ\48aBPz-l>=~, |1nnG#dmT"bљ2 |\{FEΏC=U oUk/i1N7u1cgư9n{$P[{% VZ / ֕'z|0=L6ޟ,dzHg ;l_{+MR"<n@*,%Eo#սY{tb&}k_;7CW_<]6ڠIIQ@JخcPXD\4n|5NM< "Z˪m^fW8>o|ϯcEE|!z|%* H$u.'3?/'okCn^4})_"4Ho0^/o1=oêdA@|N;^鏌$Q0gx[cqƤͤ.|3TMFq[%&اPpMP?k Uqhx鯯zmւ愓lXHG鲴޿ݜ,Ndenw Ft^O}5_[s%v~uYC1x8j}4yV:O{'΂ jr(6|mtM1q5ִoeGIu;f6jj_o+߂Iŕw|$Ķ" rGOggS@ ﹦0ld*$!!$"#!(&%tzt{ruv  !!$&~.@KW?|~FxRWCԣ7\_QxXI=YtR:! GF5C %v6_ӛqrkЀǰT_oo)~ 75D]/$ӹP(!P;ܱ@iQ(-W,* >Nрv\'%^=vSyܮKlӇY5zu֮4 ͱtƻxo)=i2xjNǕImsg?o!~z W&kgUN\MUrH0$U4}-`!Ba>|.NBVV\$%֋0ɮ(c P)[-y7z(:wN%ShXf"\s Ij{9Lwc0cf^HFB7.4n=zQəct] NIeBX#d^h FyC"zho%fˏ]^ϥ}A-QG&$>6xb5Y yz(G-e)B[2na1?i~kc<)  窅ɇPu]+P,>lnU;./x<29TUT?}lQL GWOG3yثSF!bHo:'_k,ᗿDMok1]Ĕ6@Axvhϖc:A*y 11JKnvtQ:l.ހЀ`aZ=)aj8ԅ |! ͪ65m#DDCvd?$u;U< ǗEzR [I[;LC+^jv4I!{)kFՠnbXwi01H>&rdM4Zۅ)ay$q<3gڡUB,0бpr-" H xJPy$<,V 0.$rAeE;ƁnVq tqH7H R\0˒LQa9_fXyoEˋu$ZWOD@}x}5QvH*%%H$0pE~. [dvl\0,D)U߭i2'2bÓl#d8kdz q&}xɢe5畁H$ʀZ*h`E&>1 ?~n*j`iid,#RȜr?Oi,?.Dv/5$U@`BMnex/* >!Ab!D>|Lo9]tɍ_sa p4 pMY NĂt>!@"@(U@P752?&E \( DmI+f)щBy/LYB,}!Q$rkra'gEdYHcD oF^.^v9HT[#rj@l @][.nF` * Ȉ`bP ,jEaT]lwl>>՞tfNuJ?g\ \!N, LW(d"7~pI^Y~{5ԺH׊TW,K\lq`{pMMFJSr<[ln~+?^1|RhF|uy"ALWtv9F{qZf}2hRP\]ᶅ08 >W<7JAu_ ,laWvrԾȀgkiR-rzCZ|0i; Y6&OSSX_v=;cK UUO-YJG,7+OwÛ˳h qک4e9xhxu=F\Þ+@Tq}=˜3lJdC4e7GH7NjMY+lz,.1%.p;KDum /:LH~6Rv UߺK7j., @+!Ù(YUD}BzAB+c 7`Ba@BDs:j9JY;1JN5drE1>*e>lzDlbcK>7$\j*84RqŒL#naLL/.O:Kœ΋lP ֡5 # yr AP[U[@`Ee><~ V tlꆀ p]'èy"&ADP³ ;Uyp ox\+ָ?:vǑ4@hOn0&ƈZ/[y0lzMkDe zڭd*@ F-Z Ho@S/(XTۄ'; VφYNDDu5H"^;v; Ő[n H)iݣ4cc_R ~ [ 1L1:u- R;L԰ʝ"cÍ\^jGnBvo*hSZ2S:U%HE.&TQ3 K;>ٌdw[ Bȗ:q:V)/M ]kxC"g+IC?Zn\h{xpERoWED 01*!n&rR $%"J"K`b~~j#ZxvOggS@ ﹦0V^'6$!$! #&%$ ! #!&*% # %"##! "'%d =pvb jD!w`p@Sm^j`EH^8xvNe_@FpYx[ QԷA7..h!@ L*}zc\No=biI s .p6*Ƹtx]+]TWg^/bG nMs3+ NpqkטU|I/y|^"-UMArmȱEw*"]2_ŌT!&l$T2oQ|ܽT\!tb >8+R#OEp!bG!607mE $;hs\!?>1GK-}+78SǢxy>u٣gDm܆6cPP x&3)' ⌚v uȀ+$)A$! ]+ER ""T\k;q Up])M#{Ch"2SK_` %gɸ ` n(@M]-jw.Ǒo;7sGYF'ێGxT R)@H ݍh5h ׬. E3~Lf;v_;î'MN-qm0qlǁNWz{Z'hlzrϏl4*/M`}] 㣊PO;D>ABº ^ 6U҉ x\$c6= dx>F*ǡ?)U3 7E&hADTx4]״[ANdPkZFgpUڰFߖ8^&>1˧vӿ88I̓5hz9 zݼX)XRU>BNUeEr4և,o: I)A.Օ#o]=۟$q>9@C*ӷ?y{3òT1ׯyXX>PPk!p6ªy(M] Fw*;&)Ս[ 3t'HO5:j*nugiv9o7&7}\Z'FLv>mbTS (MRvqo̩E^h윴WKILQN'!xk3Ȗ5#u=1QDMM+^>U5ͩՊ1lvv}vIcI>uGf{澽]w U-T]ۗc@o[ws%vs/mEZϔlcQd8w@Is=U @v4')CNAzf>1trٔ 0e"ל_Ύb,a9R*L~zQgrSK0Z4( Ԡ4BQIZFT*<`cBH2 ^WJ.mzaA->VP$9B׈.ޜq|I%fu=% nCƂ>LHWtڏtc~^ZhRQw0/Ѭ8bW/,+¬}(NEI%A h . X( ތ'WdVU8$]rJ.v1;%ieBs&?qgYUj}fhqJg_Dc#"8x` *4{`Dp.?"&.Q1 #Dh[6@25},LQQFm|>`X&BTrҔӛNϮsfVݍU tе: .D$d[HDeМ</[{1Y~]=a2WÜ T[(t_Uvzk0;1vD4O0o|1A&_6xe|gG"U:Thf)f^&/sr\ko2o^IFwb[ ]P @nGODЀ < .Y pTG@{UZ0DXp|!HnK\T qGP-Y O4},1vC I Ajʸa/d xJCb(Y>VkE2`KP<%$AMIMp$n𪅛%*>PDAۢK4vqLDj6;6-!ī%k)D](k?rMU/vw,2m~Y݊ CVM%e#*o[ҹA= fÈ`n,ȨMp̡D,ThD7H2EۂvD"޻n?P \U?>ۃI;$rjk*ncV\U3b^y Lw-rlQHVLUh~d}^Q2[e)d[on_|yoI6 ^RTOG؁@sȮy71;LU+nƒjlҠUvu% TYuԕ!ec]6o8͔ZZl_HD^4%ldޗoLSy!{%ROK\S,ya8TQ) OTO;;&j ^h/ \$<~ "ZBOggS@d ﹦0ޫj0$!! !%(( " "! &%%!!!" #%&.^a PNϭ0]_mYw`)$-,x~F'r\i5Ɩm@;Ȇ# # @sPP @PTƋ,ntIAri0P#~">l6:]_fզ@wj1<Ѧ>N4k[|6_i s K2ө&S^m=9[;Kv.ë?zH|(j$b`r3)(9Ņ>68"XyPh|()T[0X`!B>SꋃƓ|f#x}~M Da!dRN&}Mꠚ$QQ^!~s.پB0b @8) ڳB<A!p'-Dެn%F*b:ds S6ODd)?0:7^ekO-$= njC2Yk֔"WSM uR P`?>K50\v v[Et3P3:AD@.2 ^v4;zw0ra 0#;DG$Wl~$޴nӧfUl) I,@4Ɏeg d" ^A$B(pB_5X\7n%Ƈ,%e9rxe`b)) )D;{fQ7'jOYNb# 0F$q`CEBQogsα3 %CM O4`E[ƺB 3/xtׇ+A ĨDHaFzxot3mͪ#.S,c4a[HgCY`Tm[`(ꔛFpk@;GkNp#S%1H<@~b(&^ &p;']ڠ z^ĮD($O=8_рXgq֏j/5f/IqBͫ RV}*AaE.Ab Ia @dpDq`A``ƲPD j( 4x`z f_k1äVh 'W84w/M=vit+[E-1(#Ou֚UlL!CP;jŨEBn@H, TNQ8PY,u[ADW8* $^pŬ_C̈ѧ \WiJy[E`2_Z)dFU\WMШJ)qƒP_N ϥC2nDW)q P-RyXwU(p LW4_+Ir[DdWBWU"ڣH#rL:fvL[ӻI}Aո{{=Ź2cIY-*MP1: "7Bĥc8xXjU^< WҮ?&-"S6'fxR:(vU2L])j6؂elT6CJYZRn޻J4tܙ.)w0α:[aEPgF^)KE> vQFnE'\P:(9']of]kQ#d֥33|viq{FT2t B :f lG90JxL 1᷾z^w+s8KȞVpzo8bБ|W@N9 3>#MƱ7JTc~\X[x(iymK&'s3'? FӛC@A]I x6 c-"{٤ʅqo`*WpOggS@ ﹦0 (`&%&ntvqz|w #! (%}|~|6>i (~N 0׳'Jhm= 2rF e=Ʋz90n=F"+P#uY5%zlbPHԤ4d2Dn&)bㅵDA+>|./|d% & DъUֶ K!։('D"bDc?5[,_\d:eح7đgàHAJjcp^Ԁ2r\L80bQJsRunLunnJ3+W׏8"d V$0j88h*%{-iBRJ%u EnQ]T<`P1\R+X4Ћ46YOD`}U!98߬~0h1eеU**m[qp@3ao;%nB\P\J HnҀ:=b},뿜4ӵn]vn\g'G(Sƅ Nǐ !ݚF֭J R,uKBYRT)U"a~^@lLSU®Lx? GGoWvOש۝mvm}q?dv!QFhȈ5]D*8gᖕ :'"Y㘻?noQ=evȼvlv4:5U4 dZA2Wj~5ri8;*1 uB iG|+q(ig/Cs6,\e98ltx<l}!b-umvŪ?4T A(بDM92i n&2J8粵_6lb"G1(ħjҗj5*]A3Q\_䈫K R>mJSDrǹyv}N74\e٘R`'sVdeJg.sdn_]/:1 A`_qZB 0> “!̺#= INnz=Rs\qѤODFaqHysrؽ+P+@5y]H@ 1uma1Q#m o\d$Yɺê7^nI=Ƃ>M-BXSƢӱj1 ɀIE̴1aPi68.!nWcJ0 p U-׸@,<>hi3ak!K.5RkjD"V {UP$RHaۙqGx|}ze(!JT0+) c)@ˏ]n\H@DU( ?p", "&cfXͦp";T y)b"aۢJ0ץHب?8iBGT)H oLI<FB$ZqA^ p >ֱK__ ,h-Z1 #R@_R \Vbq L^A5NLkGl x)$SĄDY4Q_Bso t({ IiU@2@ )k]t-7+ K F@v;1҄> X>mX$DzF*z~Û3rxP`>hl\uۇaT 0rmc|XD0D0@I\mXԈwEȃUH`PT>r.E L[ JhBe,WVZdNG:v5k) <[Zg#<}~; RTH1LYMСJU͗WP=&d$LYOeq mYkǽN`Eo~|\hT]dB@U?o硫oxknkz&m`[f`7LCWDEX/179E"҃j^aN[A7\}}"2^m?.ϣf4u.ŐGvxz|9kCkBRsX\^ l1fHI_\LCJ_YuslG9\ t8">DKiBU5<"Q9ڦI]i?2KnmF#[ BeJ,Ue\$1b8|YūHJ'.52%YԡʨJE[]4lR)̗lnỿTkNp(e>1DkZ* L(N@8h@-cPg >T#M ˂ D71J+ \$>Mw81s禯 t `nț4MA`pb*lPl ABR^,LOggS= ﹦0!X2~!"!"%%&$#""!('%!$#)$#%$$m^!sjņFhf9ucֹArʌP#FDiv\sb)ϳ .:o!Ϯ&7pQ!i5o؀cg.$Pd"Fn iZM=R6a\ n@;!6ۚ%3|VK:]@G3H,Hc혇X^uTe#)ވ~-* 5p P`> J@Ba5\"X"> K_VrKel Ω3L4;W)ׁʪ1SS=Zp8@0Bc@$Po.wS pJؒ܊B "V U MQ[> @A~$aZXۿ|ᕩ /%~}vrm7u/S$\`;: _ #|vJOr<[`Qݍ\n/n(9"yFGePc\DW*+S/=cZj,uDSteʚ )8<^DUSծq +'_Fu7<"DO ϓ"B^|YOM%>sDQHtrij͔"kbYsDWJa~"5 (h[ܚd][+Ϸ#֯ ۑi.LLY r</8/!'MP {3z6E0,  \HqȟÜ>CSa1˜> xc*x󃌷>brbS*_HqC׹^n5;){*!떈>&RS̽H}=)vh;"U̒Mn0muݽ/aH zfqaXTn( w-6^b W#F/-'VcD%/('}f Tt[LODDG\VUX[aX\stٔt3i23h7 !ٺSƈ'a5KzdHbqVB@Q GdI͍W&̸V?@Q/ڐ|OE%y ]|Z7a#H2D{C!Ƀ/E%N.͑1K9*wS3 W,nh)j'0U0$Te~PF֓X{43qߧLS%jyXVTm54ҍf8.,Sh3Hs~ ZlR&.׿uQ LWfMQ(e@F%8"!&W)r!dcl+!kp;WܖO~g\}(Z\. YQP.ɚ86ASC9O]m56ULh"z웩փ0Ik!Uӿ!uJHO@}ǁȨz9jTM6 PUr`26"c "|>zBKjRNY}4# Q ՟dRu UHt"$ҠN>K,dŶ$GiX.<3w' FgDz@W ` H}ρ} p!J" l[d䝇m>cLHInvCVP%=ai5 L('ND'L^yώ2O -r <dPzDYہ/oZ :Fe;AD,VUu;n~DmTIrc(!ks Ek>UKePPD$|_a׍I;^Ԉ 7ZllSP>) L~MH#Q#;ߐCep#2$dP*:.${w .DY)08ĬK'-3F$(<ʤF,Qӕr}rikIO}R8~o~*cLS˨/[F+}Xݪ4.7&ۡ% TYY!9 xsث89?.>7 \\]R׼H:t^bL aa%m[;kB %CNlU6Gx%g&(bVX0Z3%e犪'v72;^XW{u N1vnrqޟ>ɓ~;ʅ'STMUszVhWǔ"KcJ7[^dtrO̡7q@X.?$@R C QPtӡgz-׶bAYK]TWJ<`JZE;s~Bմf!R|*ULʐMX"C=\ @vX1Sk:a"R!`bx+I@"@']{6RcD͔3b9=q8\5#i">X6bһ]~񇗿(zvÄѶ{Ham@w3`U@([H3ͥ#@a 9BRD|:ڝ=ڭT,!v \UK;6~=_:޷sᾧE%)Qje-=$~ڹEkpt9vz^=OK![eu2D4E(A @S Ӹ (@ )P!z~Q$iZk]7?,c}ea @[Y-s9]4MY˳Hnavsw<\b >R$Qڟ%t?Fe_w!Bv1[%OggS ﹦0"JZ;""*+(&#%$#("($!" !"),&%%#!%''% !"# !%&%"%#'-LY_l( uAoDJjn*Dێ֐ic81cK ,XJD^h*FxXǡqQ?|^ձ6<[a+6o8<ܞwʗ+zڎfr~2^IkY\[ WWs=:N7G.뒠?Xd_dZ`i0iKJObYޮGc6STz+fL(xb# 2|oNg@3$KHk8oEnM|PZX$.m3mpܬfu[ιÊ1ebU !uFn: ǙKǯ 78;i`P'c>,oEC pg5uFl~iExZd,#\imt)fVtkk S#LDWw/_;dLT!>q\2o2|}uל~ dف!5ەzٻt\XUa2:L+d07ۥm~L1^Ln,l/`_WȈ~"r+MK*DΓO6ZGͩǻJdV+)Dہ3Sm$nD<;P\I7Xqle2,,O2?lHKgsTאS7zÆC Z~hH[tߚ{ $OK4\W(N>)sZ*Y׼,1rZE_֕vLcA(^TJ4`6Q woYv%gãv{mLՠr0=h<4dۨ7) Kړ򦿮- &p+xZӭqSR,˘':*R&L׮?ۭx LW*|Zai.3b;UKY=7z3\Gz5SS^'Z_ba]\QKvo$^rU_>aFSħ G$ow3U*Ia=ͮ)[U>D5{ ^C;;Gxr,moo*PR*0Շ9w=:f,>zAmdd}jIeaWZsI[K)OU\ׅ?}4fˏ SoOoK&HJ&Gr@88 pDa$[ n7P1 mmL(KO?$QS QbL@gP ތ޸>& G&F4/}h9t %(Mct)Ucw^ ҉2 <&휪˳+ q :sd}LQUvvt`-|å+0p;`KmbU>95@J  b̵_XZr(3׹>SHgߺ$4cFCSCYO@^A; r(;)X6bĊ`NiBE$_T5,8g:.\y&]zڜWncz&"WA%p|jA`[>!9TNS `5\z_>:w 1dQ!_@]__wnb,aJKvxI}:x̜P2Ibq(0=U>/JoKKr+Ŕ4p_˨ 8>,6vAv?ʈ'˸jgv;1%l}CD4G"Esau$Oj}E4[2*g1R3`e["!Y zBQVDDj d4\~E])6k80\*PNűo]dP̓IrAu>G}ƨ8O0ЩSu73Ǭzv'vxY̿Ǿ<Ge:E6W%~=?B~sa958qz}r|B̻7~ K v) 9hŚ*h3&Ϧ!<zAKjdkLE+K7M81lG9MC#ѝ[q2d&$%2N8t]0pJX.*(S'+!R [Pa~v6"+,UK&/xmuA|13YJ2XDU*ng֏\ ./w}n5[RsLU'ae_ yMR$QdʶZ<gjV?15A${,O٠&uxJ5M=wj_X9Q4OaTN]ٻd%/Jr!Rc6.L׺Ʃwf}(x lW#,L]x̪K67cmJZ1,176]0 T_VaB>ض|wG@SbhřKϮ/+z= uHcʹOv\IbJg+:\ zNw ?+;f!l;::9)Øo] D_ N[SY׻"=kMI*T_Ȫ.JM8$Ty#U  <'R)ON=D4%b Z¼So&uw srr輶<6(wVJ4k\&pJ2?2ב>>$!dFZ'bX]dSD!-x&,.n>8&&(:<bi"0i_atBDHOf۶6cVKlMcߑjPCXA +$ZZFyl~<2+p0-j"adÄ~z 4b' hĸ /cEH,b7Ĕ9xybS5M .=#uxi1qw֫Rn2sY|3_՛,n FlW7 T`hg%1.ī^zUI¦G !!,tJD!@%iFX4J g΂rS;3j!EHjkF̷M8xR"PA1Χ74%SjrPGG,^_bPq3L""F`gT~qr[F[+,i^1ƅo9l 8|-ݿ<7瓦E/"9)@4t`s>2d3ڟ/&빨ˆ&뺉1"G?}TMvc -|4Wv Ӣ'D[ƽ^ޱ$nϘ |:w 7sjK7C YEfC PB@ AYY [VCjktOoars0/ɡ5?fnǓ~>8nsWJ7=M7ͧ-ŠQ2n&( J}je1@vz+Ih\QOOuLc :Kukm$7'-̗OvQ;vܨpp&RJ582J8fB3'XX `eTYPJ-Pm,~MWMCt = lj& nU:-UKm1!գ8p3|NtD)k,IJnKOy#^Ef*`ʔ"o`9Hb1 !yڒ0qRPoBgd:!0 Bѽ}:JD4&vd6̈^iL6(qq;aFXvjt.@pLhJs<|)o4('^35Eb"?f=n0U(e2$4CӤO?JʰN<0c')aAۜz2W*94/0bTꎻKB:G!ݰu܅ ȅN;6ULR ^^Ĩ7?(92譛P5Xx<θcreݩu4w[ q;f~c.2WvN﷠ys1D@=UPڶQWݝ|mkgBsjeu׹J\65f ^,.2I.j^@$vS/GJ(ԪI`\cXcԋHb6oc{GuVr$"TBtwI$qP07vN~B#a- @ҴC1Z-lхܟo4(+*j;q0TAvxndl 0JζzpPVrYUY[°DL4wC>crǡCer2ʤLώ4ԓ=ϵl:5zcX)7EZL +}%F#bMZ fkt( 1NIo^~3O3Kc|珺ivKdl|$WCUv2H\ rn\]MoE 5q@,@dָ̙APQ o`iWyMS0G=2mv &|[ڡ8q##̐ɭRι[?׈4DwoА~%:Q:mot8J{eho޽fkHwO!/{N#z)a.Ѹsm8/1*!޻uA{k|.=*ϲ&$,t9{q9І囆qV+R;q;P L%d}=>m}݈$ $+YY$ a}HE3<7& PY,`F f@" mp1ۥ N̺aXTB3jeHn(HSD3-ǥiyJqT'QۖCšxII 'SOTYѕVh)^R( "^ v)@ēBXw8/( ₑ☰/Id&[ÂNq1L#3`=,XaP0H x0JT@ X,D+!fAFP(@ˍpN- ƙVۥ X6%Pl8Q,`EM#e axqD"CXN=x6[q('8ݡ%0LG"w%Qt)\ ="Mľ/4a4* JЦpmTG`\V\f Q `Jq OggS@]﹦0$A1a`(|$""# (&(է$!$$"!&'#_C etmE:zNaJP )QD%K'SgkKf/ymns TCD0X)ȉu(%"(K$>\BJGJR i~ $|)њ\7YX2%^a#it79驧鈴;;@LP$hw,|`LAwȊ w-( БD E;Ɓ0eoBex 2q æv_|(hxOļ$za*/kx $" cII_=I2P ńNߩ#ꁟ{c ~S[o$֕2ܽ 7w0(Jks<~\6> 8,}$ٟpݞ ff,_Z6YlseFm^uOy-w.ܴ-n{trTrسQڳz:oNxr Fya/wք,w茚r1ud/ޝ6vuIOڌpR曟Pَ=ə[ @ OBtX4fG#${r($ kXFR5+(R w'7$TZ&XV]ܷl Z9Mwdqb[ A! $l ` K>4DohsAx-B_0RJU='je@)>}g88?uP"$ ठ w$QNmX;\YuCa7ɻLT H+>]dХbna-J2A""WHQ_Io$*\7^"0~ A G/VPDޅd C"7.x! pyM7AA`1p.5 &Dv 馡ZhKg{@|ƔRcH߲ƒmj@DYN?W0}VR 5\hVYУPRRP#PjR 8T@*\_"ka :0a7gCZVWF\'D[Z:}` 7r~n1kzZQk;-@Uo{UնK{. g柀86j t\\A`-Zq|ZlY,ru5J Y!& 4A!P#-LQp4;UvT@~)GO OJpDWAs^'wdS4u.TSQ qv=xP{fDiETDSсJ~|W𾮏+37~S[T]*f]:0&<֖ؔ򫗺mSצU$[BJE|2`ˏT/rjy]ϵz-7zutDQF{jޏϼ֒?{Cm;oESj m7h~vvg4FT1&"vϝb-i n L)|V>5?_ROw߶D'!mݜ{DҊVSͯ6M }F qrH+~1]闗\@dk&QhFVi椼' ;|37Xj~o\rTIYl>bG o=3NeBBhNK}c;}[u:=bc<*;{:ϧg%1{ClŶiƥF)KM6E nqfnaU棈~\U;&Qjs%:72w7Hcߋf_U>Ӹr xy}f[)zf8%i-?%Y ܍lȮ<k!qq%*6ǚK# 1Bsb %E ];5RI %)R7XjȶV\%*ɲs_e >^>HRCEuN,g = p|' OH,.Q_oc-?&yFňY A;1': 'p;nFy+U`T NղhX@fsPR }ڲ䇥=ϛ.w0lv.?vkoMatd 4̿s=`V.+vl[Y?B&}61491sב=U? K;ˆQlY[s}䶓12 Jcb!-7&;ԗp?B~ܙy`*UzUR_AѴzhݏGztî XTT\B*F18jCC!(AOsrv|MIP\S,SgcW5:jJ${a[V6CP@GH J 5 Vz}F8_/KÁK/%ʓыb|W /m>T`Dc Pm.J$h~Uju(t(•~bSrM;{%QJj0cjQ 1H$F-ꍱ,4ƭѯ2h͹~"m.3ct{}y 8%ޟ$͒* g'/J#4)yxxPWwmfncs5F%5 F D}Fdڸn > nan+Júh2n%jAzC(wFT] Wף"ϧ܄`oƓؐL[d/Bkpi;N%En'2yR 64ZbkDȜ]fJyU0aa+2%qzU rĢ󢘣?8s -NX6@Y(-,70@3˧nTe_ʄ]8 $"Ъ`QCE$MX\"V OggS@﹦0%P"zqnw}{uy}}{|{#)n%UN|:QNF33246yrB/;J5z(7  +YW,/zFů),\R Y$@a 7aj^c^T}㪌 }`K]aJ yaJ*%ecjTC@ ctkJ%qd `V(T@ F|P|XAͦ4C(\ D<*vYaJ}ln$ Y rn= <(ŋjB/ ;;AJ!T( "Hb>-yÍL?qg+Jt ؒ+.%.97D#Y\2@)nXQ \ k@4Pa>L.M@fwffR+M (~^*\~tn+(gM2/%b_$ң[@x4Mp vX-deeqah  V ӡUKMÊL_RLf}J^L6D$e/SxPO=9>"(0* }y#z|33DZGCD1Ȣ*T i2D#2XI)D7 s>UszZMGD\ Q$nQ[Nс=vTi8=`*a%f79(+]SΚz=#f}ÝHa^ P@Ċ(@JD@fHjYߑnAqRj!b^bP#T .ɀY?j"GSFܹ&u÷ Eh||gyBN8+Z8PO V%Eb Er+AR XB#` - vQ5n89;2 5ܱeLO㤿\ӣG/Q~ YnFp t}hu(`,X8M'MyXD>0(X -uƀ0 `cn B%ªGzrd^y|;ӎoX(;nse:߯_[@*'0:!DD*&@ڰAW}#$]p*^~#PEu5YCJ fހ`2mf2JK> "G Yӑe/FXU ]b܊/UA(䀡:@@ H1AJFr Y'YeFm- Ŏ5>fL<1z@hKQ질)MBe¾rXٻ**,(Z e\G nVXnHbN,^]( ElV/XO)+?y*6X4>Gcb} @I} D0`Jq0[-_ ` Ȓ(0Z #.E~F#e Xurq7ʐJ 5킀4S!aC%ijFQ2kl<-p(Ҳ`lCGI0Q@J61s!* G$< $m" @>c/CYF{+A$.()Q$|Q,D)?qb8[rlxp8t;*5< U.cJ]%lB +z5= .rěMf$HK  ; nh,g<Ӗ"X *6DJ8 |V\ȑɛ5s5wT+KD pCMtd ƪ dw0QtI µܘU"zP^"- /t+7@"PB"1P(,t"J̀eq*%t܆LerTu7Fv.2.3aT6K$@$6mV@EFKĜ6Q<01 ۘ'Ѧ0D^때A/n\(2>,BlE)SApAh۞t J L7PfҀkpQ0 @AS1{ clVfԺ(N%'HOR_zx7LgywO{ߟô5/ (bd) |$E| vP C.%sIG|$R$O NWѹz`n9t㛛T*ŗE2ȧю;H]| *Z\` qB1"DE ܸ,d np@dIâ="-$f)F8=\p#* ,TTeШ_n2Fcq fok4 Vb40ͬ4>hq#hT 28 `K yڈT\D"MM@Tm!(UٓPA1/B>&3nӻqeg`wv!\1sJrH 67 Goy c"|PoPXR‚@^LNَrC_y cՒ-;"d|vSz0f8Jك.~7b c@a $DP} BCQB]<m+vQ6{ E/ДXP>x>F^ڼ8>HX7X)b5'7.Jr[ӼcJlKB|UCf-UEȊvpI[@X.*rHE'ڤ,ۥL4 X~rǥ LӭDH.b`t ZًGEb<{SK͵&D\.6(~OF!%$4Q0@, "",v@c~fK<]/id˽'#ڊY'ɘ:=_D2>| 64ٕi%\hHV{dM$(%"NlXB;mK)Gd ",RFX!Оi i?}$SnԈg Ko?1 Gq6QQ8E\a\M Tq)C{yYq$Me!7=؎!amC!`K-"&~7+v1<.QaQiSUDӰQ2ү6ғMфlHUΧC]oednx3Y=O6(&r)!*uySU 5_IF C@H~v|MEǠt.3sޔyGi |6yb2aȧˮ@ K@Me,sM7}OP5RЭDF ?kvӊ\.Tǔ/ mZcɸw8"@8TO$Q&y>sdTsܲ]ETdZZw3k1Go˪R32ҌBSZ&v.< k@ m8*H\h8$5 Xܾ"m덖nӗn@ 05.HslMCƕB1Zz "-Klј>B3 LrRHh]`KsR*Txj:6q%;H7:Lpj;wD. TpIFJr. 62'mFȾ| %3v1Y˓5". Lb.jJA[VQd<>8xSS8?IUHU, ,#P&7("#"*JCu0%aSl1ܺv5 _ȻCUJW>neE 쨰F"YhcXD\9=%Fd_(VDvB%l,'אސdrRk7@haRkUjB[>uHvQD+Z>|΃ʏAn dH :7@d"[bGӒmJ]^Fv>ޖb_)6\~$ 2HnB$+@spo/d TT % ^LN>;%;sӢ bp^={H8%ɪ*Ni,&QӸd`!|>э)eOBASbJ$7Z R]Jq4 }",NBL7M^S]Bdαg?{ЎD$L 4YeQ}{XhR }C![ph8ˏbh`A%,NQ҇"\Xe X •+NR^RU7=^lX@F4w>($MV`Mv6#CÜʶFs 03vy( P6,@ $ONG1倝 ,@,* vS*n,`xdasJ$TTOݞ47uDxm ƸXsit%"Xh߲#]rԒ&d~l]t"Ԩ*bQ)( ^ͮ"B7.~@hISzDFvd͝jyF]:=O$Y2'j0}ـL7@`{J:+s#D2+h~9X .Iv$  Hr]u.Ng;-4!;_Ug 6) 4; z}~R+W%vb@""J؂"CdRbWeN r 9jV%?QEa)üڛǹP:lW)E - "BRA:Pj6JxO-Kab\ӕ4-A@BAABAAA5$!֑98^|ֵB[$`KXTZ0]~'MKQY.}4+qſl?]ۻ2.hwE%MZt2u&~/?^ mPT at8bKuoAYFDW 4ck0.nBQFDv5&NtȠꬥǀ/v NR5ґ†FE3WW{F_ [HeŘs3"dF27whLmޖ$lVc}yvx?Hcޭبy%mGk P h\,9 N p ,܈ # l^~5OMR  &IFFO82>y|'ƧC̣F #40(- #"(,<00%XXX>\@D+.2'=MeszT/@I&J'{wo=#qd_:cSFއ9jo"C@/*XXEnv#eh!b` U#+"" kfAnǂUz3NZ'9%o1}Fq/9~7_0eH*W$.u{%x AR׀j%Fwy |\dʻl>:7Gg-pDCd.- *I<& AjhtWklht;D/y< ^qFkqW-wPO<LOggS﹦0' N({'+'%&%"%"'&( &$ec/_I0TDh7^^>+4Y6s6ݶ>OUDW;}f|ƼC[?q4H͑ w18-[l5^rK2n%A H%IRB * Hi >*DhF>w";h$^9a+Or>2fr _l#*v4153;kz'B20]0@ )@%W\~2^5+]nhJNf~Mbx֢7oju3}ozzCs UP"\/RVS#{M UmeyAvw$7D;\À@)"R QE> $xaS!NW\O4%wS37_4{>/*7f~T9Bo#{M㮰1B @`%Vb:+Mk)>QFCA?#(> r [ X 91"-=)^M%ڂO&\Dx?>`zx8tz(* nPH@ V²<JT", EaAnDAD~5F*r1ܥq8O:xUPĂI~J9=Z{!M]%/bzs}GTn @:UH! _YD@߀| pUP ,pp"rh%pfYM*aû/V3׼hqJ"J)aJӗ|N 3a6=QrSV H5WL8z`Q"Y$VÐpĮ"k@@9TU&9HtW=L\\FaFݭnIѺJ|D-5;iꆫ3#4h&ZQWODDg7 Γ+j 1641G:Zc"PxԘCRh#qG%ceՐ }341IbYF b׍ҧ  6nlBRis݀[1~5D,d{zq{,3@vxIm"DXj- Wqf7yuMZma5t1{}"5S 4k}-Kb\4RRV:~)M;reA MYdT1=Q"" 5oUI?9 ?#btO[W)#@b*@3vT֢iaY|Pj=( Wlh}a[s%TSQ*$ъex5yoptn>7"D٩u U6><'$7{BݷJ\[ eK)7Wp˦4cS74[JlDįD)8@w2+$wZyGǖN4.uZHҝupQl(22%JW'|#o$5sv>FBI+o0 fa%VkV N V%ZVQR ܎0Mɴ$X X!;T7a'ao7.Qnu,{N%O!VY}vEz8p~+޿Y178׾n3eo])4ZAIJNP̨M1u:lq\61E*L*b%2"ތ @|g*qvDhBj}ĸل$3$IO]yhW頃5B[d EEwmzƁ'8{f_7Bxjk+5utk&I\0Jdn^q >]N)4cr7*D#Mb`X[߭GGG_]jzIGI#6ţ /A.(G}jXuz1 ˁ.PSfc_RMYlxV$=$VLj+, N.JJ .HA@k]PU)xі}7Nc&^su iª*O%xԀ5>lG!UDpuAD.9H7¤"pqzX ">\g`GYr ݬ]'"B;rY{4TC5`}x_;NsТ7)"XklG|p7&MS@HV:g.7XqB6p=])bP@?A^;־[g +L 'wP)%JfޠBj"3pEw;[n,_Xx_2A,1RBD *&|Ic&n~$!^hy'JEW<-X YPTMD(iw?/S2i0ͱpjI>ް{u[ p4;WTQG9+Qjfd}9r[YJpsVHOE\ap_"ErIfxEB͇}({QHƲ{RJlJf=pecf^} AGz]"J8Ձ9Xk\DA1DДC`J2,'~f݂Tg?拊 J "DMd6Ãoۉ>3u$%ʏQ.qD rMuWErp[N:R1_H}q,RdςBLҚYQv2]V(S OggS@-﹦0(dx`("")$&%}|~!!!#!"!&&η<~fwyѯ$&=:%cQ,*iiy~佞yfq2gAL4S6(W< KNз)~=5&TY?k+F0Ɔ\$?f};GgVLYdS@ەr#N}ʿ82?%TYR;E)!J%tRT9,L>N *WF珐O>?^иK}} Ӕӄ'W~T3Q?_n=d HMnY!Ӽ߇X(hU@K:poHjYY۩OaC - @1" 7!!K21Z冑 v^y9-8%h`OBLSE8m>t>qhhi0 /1p r)Zdpi *R > QqFA>JVB;ANL|NwSZ_ P G6=s[VnVoMn FNL@p ,@b,|N#a+7`(^ #& X*E >u71,y\kf1aӼTFY\uV֢i;nuӤgsb\ѡ @cЩ]B 8\Y>ъ1H( *z,707 r3H! >,ŁVhA+]VPr"[lB[IFًѼVbxviO"p!Ic6 _G<%@Hfp+ $RBABD L… ) = @թ.fnPFʃaLu͉!Ngn>'[ pR`wZ[Ut2AtÀEhW]ld_KAÊ\=A#gt 04iDԩ'/2e?VigXSqԫ4̫-H2Şh_/ JG׸R (u321ucBDT \r# ,ތ&A@|Go)Bva\~(҆6b0XykgrUE5i FҢ%*O2Az{kl2ֲ .RPP6 ō# ތ[!E^?m>g)I&gϕ86U*MSJqj#'gة#kÝJT*<9p} Tu`K .% &< *hbڡXEDNI Bo8%C}q1(:iҤy79?{wð)_6v{% wIZj$ɨ5 +a,QqL0+8p rXX6FF9?NYWS""t;fbѕ]e870nmW?³<;Zud]~q Ew Ҧ:ThZB8x8y؄w|/ BOqeC, #cHoNeA)ڻxN0병 BW, wd\EgÏ~6}}U$0EFSLH 24nPB-@12]K-*fBmP)4,؉.rW.]^(F 2֊t|5h@4"Mc||<ٲlHkVF_*"_ņPC2ޭƙY7Fݢ1j AĊx}b߂L*:Uʲ QhQ}X ;ml(2>^ /:ViT?4:=n1ni/7u'f.c798tҕ,hr]{+6+kL+PJŅU_ӜKG5btR"eB ~i+02 0Hfbr1)9U2Wua1 CUj` u'4G6 Y(geY.2J0,B!JeN|)a~.'}zct9v]V2sU(nrQ9|\|us̽ţQJ]Vq7F.Sz$8Vj@Y<]bSW+̅ش#jZ: $aM4SHGW>0Jn_ 1D!$H+"j9I{ە~V{B)J뎻|04G׆v'pӾ><Blłxc4Dg ~k;u*|DyJ5йG n2dayW ad§iϹLsRkM1' 1,% gORJs$nE Оn< iq[*h˾>^ IsvFmCnè믪>GT ?TYBWZx1JM~  #HM.EwzRtkXyid@z]{qz="mΣߒ\P*Xjx vZX,2jdp> 9CggNržN!U?n^ok~C+F&֡q3´ΕMѼXΗFjuF\5DzE\DFL驕A Xvy}DDLX*ٙ}pvch48qνWY|hh\aL;ϨڏPmπ2}0X`Xsku.]|e^9"~5A41OggS@﹦0)O8J;},` |6ڷL[e3WS"}V˧;7|ZRߗ}楬LQ{<*.9H+duV{7 gwHm !cY4G%9nL p%T`<8`%u?is s\fLB][zL JYdNt^${ԔYJfdW^ֆYn&6Q$UkCCYOEmmk*s7J9h,LS)HŦA" +4S5\[IEA.cqm;RO,BѩN:i&K/w;-Dt~"^=)7N#qV|b,m+=)=>"gWG7Kb3X4bC(9o\ xZ@q]ƀh˂:mʮ@#H?_{(k}ŭ]8Q*+w )DJEc2>6 omJ gfU>?R*b8`I1D#!z@#Ռ6C4=.ũMtw$US?e}̚Es.A|!Pf*A!_ DhІ^DIS|XRBf'Į9dG$Tu0;( Jt~|1y+Che.E7T$aP1`[!8@ސ&74nɧA-E_7'BKWΊX.hV"Qa.~|)E% A~hP!VJK,>9eA(CeR| 2"vOۈB7KPS8R•6A`-n2C6hOt?6j(z(DJ%hqIn@# @R#Ŏ <{>&~L`i|%%"^7'2?\%͈ꂡN4RA]p*sa5@b{.*i{[kݴ*:^}XQ*2Y4x, 1OT1 ΀U5{O?~Kht"kB,, |XUi$MWH /2T۹eO ;2+$^a`J&sE_{vmnv!fpS =&*@ Xk66raȳ+nkZi%Dj~~QaR4gec+q0㫖vo$IY6BkN5ZX`Y2'萈9 aS)}vvm~|\&JSFQJ>d$ T|[vEJfmeB"G"VͲN_W:-XiW9RrYU(@0@(m-CHѢnA5/uF#J-j$ȖRaBrA2.+F^G4L`Ƶ*ݵJn,tbTq鱼:aaw@:u$A5Dss3 A`ڃT%M92R]fo|J唠־g-8eio}{: "XP#,` 9|R⒊X ?qkZ` /"#rt1=},9lUb0ǛNmu9=_Ͷ5_!녢Ұ@ [.e@]= OY|1I Mh`Z"[}" ChtH]Т"7$>P'QݍfCv^EG<VWf,w[jmoh/ft<B]) n M$`DSJ8 . > p3@ |a!>tMo[XD.RisykU'qǷ_8>g³+/o;h"T_"Zm2WZ`?P$|X9 DL^SP®kD<"H~\c'( cs/.o/1: @e tk( b#@P "[!:A.QbH0P!\%*~C*j˾E+Pbiu5@5ܔ\YvZiBڙ(&?x5Q\=ڦ^V*|j%WQVndE E 0`SG9Pc{FO- @P@n`,`#rd^oi:1cxaf~wd~4Oy)R0ClȤe?GЪ+xq+nBYR haQ˄<5"`[&!FO=@aB cLw+ڝa,NBǺO_u4ͲeeUY&ήiJ]14n*$WrSpUu.>s\;q1!܎" l 7! l5 A(誰D!ˮIQIyҡJ)p[*>.&N?\;XJc37: 2)@ m@@Ym0:RVλI X"驱B""0Q2\UE^L.!?q~ɂXFK| d]&KaLI " d mˇ(O.S䌙7qB:!iA\ or.$~`CuE0sT`@\1'N}kFhgꏨ|`@G[OhmxN xa0y՘+{b̆˺D%GlqY ')q̊@ T c͘ly'x><"O[}KQRI`-=(ᩛ}O;nOt9-D Ynu쯐hD8jqnQoG|>z'C$eaQc*7м1Pq;$cL`v&""{ߍxpgY8?^ â6<O2jH1i i:UXi:`/ks$TA " 4/.?Kt"7" K 0kiL xcC[Ae8sϦ]`}޺bKvc%f63 <NWޏFhz &PZuKJ!ª,a"뼞#E2G¥5ڕNA*-xHn&m]b,vXUUj`̡|_س$  |Nj*q:o~Ccntu+!~f ?I,h:A5fRJ%W& pY "nɪ#Ibwc]'7#`oXј촑B>qYK5N"d1fJkIZ1#(M[Jytτ.F)D~a Q)H#:\dn?aQ~@S)f, ؑd7{ʆ1]5cy`fb)1:1P ÅAPF ~Kql@[tLhHc xè`Y^ \M43٠ƚym UPgnm7'dkoq3bB7 D$WL{w8MN=7G_U5FBL7%P:Dߤ҇><>w-b,F*U~A":ޠpۋwi&pGh`~??EDSɘI|t8̊*0PU (kpH*j߆G qs9PqhK$|gS+KMi_kg_R3ێ7#"yX ʴ!("^FXޜtHy 4ttNA">]+152O^=68!5{c? s^Xؐh[b5.}qB@ȏbjuoZ@4ǻp|˰y /~gSӇN8 pügj0Ɗ?C"[r ތn%/eH䳫)YG%iuJZ'|yxx*߸8?24s.~.ˋ%H_[e կR>ϲqFց(H! RfP:kʟ˟]J+b-)("c,-$@aD fC|c'Ȋ>JRWO޼(m^?Cl0o֊a{ pN?C8u0a&f\o=(#Z'G t"7GRbZ܈Z+a9Z87@E!R [ [6m4T?Ԑ~uxtaTJJHD@SBJo7Gmfu|z20̆WCu؟7__c%/Y JaVlA ryQ}ݤ[irjT7g1k.0nvr"Q`cW(eKl筛]6:L.l~_52")i25&\ݐmF8:yVלY1cJ>f2ll,Zc܏'s>>1Wv>B\jxNTDOXo8ML5zc]Xh/" բ(Ze,y]SRp 'MsMįo/]_=y7w7wy4YòVD_X_1p (X( &R%i6Wj~ɻABpK2.½Š DOggSW﹦0+.*$!#" '$##!!# ')&$ !| _oY j֋Tb V}g[0>e?Jo/,~Jal~hK*-!: xjai@|́qɑf z&wҡHvٲRRdWiͳ c:}5Deziu)XJxْ9Rc5+ xh` ƨG(OVW>v>`\<|Ac^d򲀟ʯZx >aH w\;”x+4:k Y 5ܭ1en>TTZuzRU,sXBk%/[fdg{BW P7`\kKLև;?ŏoe5HW:9YvFf2@&bJUiB6nwHZQ\w|jʝJ!jԨRw„ rAȕ93;_8qy^ޏ񻹵T$$*ULu Пn֝) +tь}L@FQsS{et1-oSޤh]1>y{"oH\@P>H+\k" V1JԜZ…꒱xO TR%"FI`-EDUMѫqdyQՊ,SK]̶tMGTYHtU4 %M^.[~%aω"%YCa n:3H\`Qjd`HA0IzV bh@{ِDGiJH+F#_ S_5 }-(MZ_fXES\h1>j/(a5&VHncޠ~ƃA{6&Iʢ_~sK*\S wVqXtbqi;\1Cu|hT0S׀ePRBI X{ѨheZd(yW5T + ! *6!&pg+Ҁ0+&zH,ơ2\&h@G-bvϷ{WM޼IQT1,o:!XJ;Q&6:q}>S_Y\,RJv&rR3)J/@ m%Y%UaU<3KvCED%GfC[U$N(ffR&$]znxhLc#8 NC # -`0vs=PS L7 "t_L,܀">l1B/ %LNA>WB](HSII0@ңԔ$IXzԮ2^XMesniz{\F6%p W+D k :[Y+X>nTcM8|9̹GؖoQzoYN'W6ܖ8XCgQ2΅ҵqQG$DoXme-Hg nʍLW(+)/I'$)/8P,7 +`T# ~ݞjU^>x^FFVO! ܯ̆̇I[X^9ݲu:WK-Y~U%eJC-nT$8jin$P{S þ̞s &qHOէ_^KX-mFdqRndGƔ: 7ެn5[.lͫ?Qzvi-],gɠ~sb8~yۛq{;- Wi콵=18S"FdYJ$sF6Hq.Oa!Ck9doç?V}Ȧءm3@.i`.#AqWR*.% $T>x6 j E=\Ԟ O`2`LXesO_妷xazHT~RC@ =M߀#b'r/Kpa/p#(! \_V:Qav:W$7%Е2I<[qkStK}u/*s\ e)R(TQЩ+׿2 1XeR\[jawm6Lfch!W"D[k UFߢea0Bc LW@96v_~ާG9PMBT]QP;G=&WFz)Lm)PT[d+`n^\U&LxCIکQs?#SDYz.̱C҃ה/?s) {fa:4j֕ΙZ樣Tt*|kdBGq9_vϪu:!e>lAݗHo Q:\g 1aE,j j.k슷NM P2 ѬCgKJYki 过X*Ƀ |m#xAĨ2ď˂2NK"%-l /Cn)1-#Qħhj|-@E 2:-\̿Q}n|ǂbᲈ h&^! G6N6(Zʕ[H[R$iTf^9ZֳEwÄL w\w~n͙ş}uS'#~2v =QE"d"XQj|HpSJ`:& Cؑth"ڝy:+oerC2RρaiƯP5ฟ&az&o:wIgʲx7;!ZYq.5i`GE[pT|HR/e5'2.(oSR,S'NSu1% .]RߧԉPO_`x̅M9@#?!V b `&c!\[˖4ׯ!Y^*/ jl TWbȨ caT {0ZP E 4S Eu,:T\j*2TOggS@﹦0,R1 "" '&x#!!"&'$~t~~ !!!(%wzz{ywTYj 1=)9J)TKF$Qz,N9փ0:UOPDSQuix ~i_ML+1+DSshޝ}?x0؉r5"ULY ϕRL5ϧ ε'?aM l]tUVP,. ǃm>Gq)Ml1ZLE {F z"}~p̌#p6@t:,s|[nz4~ùgSRa_9WA@mא, \ H4o,WLAP 7F`<d_S 6!܄E"1$.8)q ׬N^BA,"½DZ.c69y?3wi-Px =2E(Vp0cr-Y5Y9&gU%]wUF* dp~w;f!ѳ?~߁t{`T $53 XӮ4xv jf ch䆗z-ݖլ #fU1C0J~Pq=m_W` *ojq]ط Ԫ-?GơՀ@2ތ̀] J 6J;JODoYU0X'e+X|:*T>e6O=v q3ဴ ȴnZΫRd<~IF!:eEn4o%"upK5,,[-QOB~f]R!$bk#~dՊO&}IaHD 79ӯ5 eݯ1f>;⪯W? F@@{ m\D\nlT(XKDUӪ TLէ'}Nr4PbDOia|q>i^wy&Ǒ4!{3U$OL%'"N%0ڧNCR!uŠ\W +2 sj< s{LS<`*&$Ly47C^3@vC;7&R A$!JZ`dvw*m,,&rMSJ> :"/nTA@\ˈ~|@&vnz3&c-X q,+Q^,J a+a/~1Zc:^KJoZˈan B}Lq5ppI xFCKvd>rڔzΣ5"(eD`*խQeeKfpc)!(TMdޭG9SN/{:ô0Mg@D9.~$P3 i/D%.F706dPלPቋvs~Z4ch@60mWR`Z4Qo˶}$cL̿uv||:LC7q:A{R'Õ"K5~'Wk7b 2* L==1+9/O0G , in8RV t?2iϦ4R$Grv(²GmL7 ngc#hh Q jYF`cC9, }|( x.RXB7RXH^|Nƃ=0h^FpRwXw=0Br,#v!v203㴜7LE׮qruy"jl|w5h@Fd,H^c`0 6+RE ~+Xfw4.OKNB7{Q ?,װ 7X4 ӓ~-æQwFnc4n!ϊL@P@}*^].RX#`H(H`!Q$ W_ jڏ+M?GYd|V?`ԍrIp_c6l<\F>:=4VJ|4Wd[\쪋 lnX54l25~ýWQTdaujGUHhᯭ&2vkIXDT;te7g\|QLJZ7ZLblϳ{1QY 3NYkӕc8ut0F:_g~<% oZkyht/[y0wFr}X"l9@ob N6va v#+W(`9Lt #0~2ʗ.akx( ;=bJIKIصp1oY鼽C,[VZ@h;TG T 7;4D.=؀DDKK+"0A;~g 4}8<J71)R" c_iuD.[b,3MtK?_ _BIeő 7$ SQ$:pA{4aB?6q,d!<UU|@_%TPHTjt˱!6=l;%j?NC(=~ (Qdp d@@I L6CƚW,;h\ƃE)fe'0qMe T&/8])mNӥK'|NX|P$t0J V( 7.p].N(%y~4` J,MODDm;/f'LX1e1&j#1K#RU&$DJ R|1.Ĵ@ frqޜ "zyɧ`8YOJkA' M^U7~}}@@zQdi~$@N/@#_G%:o%]Dr6 R@G}*E*G5E$H^L.ژɱ4?4X^Ș׳Q%)&is^Ѯ? 1Ta9  !-#h\XNt[ey冺  < > *E ^5ԃA"o+/%!1:5¡kgO/o81;tey>h=߸ggw |\i@#~T @|u F=p޿@ ).& pW""K:470vQ]EZז%\雟 "Nw.g{ O5i=u?vnF#zIE-C/[x}])P @6?>]t WP8%RɂFLRJ @=4 WM ~{N8eT%հ$"8I$15% 0x1R4p2eÿQ(NQ~@&Re$(RЀ(3X(dB{@ E7JD9p%+) ]ɪX*f\K :fD,bh\8 MT[Ni"@zMvN3e/wmCk(~ŀqGD b62kY?.{uqF~iGCLU*4>%p@HUo^V?**Mz F?,T3k;*< JQ#\Uϧ*b޾Y<mܽ]R1eU4&D5Nj]j ]O3VJ薱'"[v/FU,V4#4]X]/.'Lc_/÷&cSW%w5 ΛJʶ/:$nPJDLם V,H֊\QCJ+PRpi ~J.W%WlW ^m 0AXluPâ~:wvgәXWtㄅc}No^d}tДUau8%R0Ln%B(,.>cQ-תңve.onBX${YKU#V~ ^қ/, o.{5ȳ;@ڟb&""$@=eĆuuZ-Wbٞ4IWFZⰋWQNW8OqF]q,H0p4Wp5ҀdR`np8JCuetZg-\OztQxK<}r屟x~Uhx_{ č'u6d9R1!>)j1RCU}j FU8mi%#*&%N5K)N)`d%ܷP87XTKA RFER  Nj8YUcqww sXjySyօO7D<>@vRK H^ @SScnJC͠WU)p; gQI6c H  D# Htwt{7D[eׇlP}T)a"H_K ݄l*Kw|گȹyH-RW +(*10d+8Z)g.Tܺv=z% V".qED=^˷gb˱שn ^Dϒ s֦km͓Sۺя^g_]#" h#An'Qʫ'opKn_6bGKbwt"a(*!g=\U㢫 RugV.xKZ^7?L$\@q /ގ qOOTUji_.[<&_WTg?d%dWT6H6wFW{72T{>jPD[$e?2۠l75El]XtUV~^zޝvL qvJ_elcmm,`a7XSb/aƉj;Oyyz{vSTߢ}!CQJŘ3HGzɊaB &(qP){/@V+1mhw(#AZq``?`%OggS﹦0.h:#"$"$'%$$""$$''"%(! (%$" "!!(()&&!# '%$ìޜqlHch]"ɜl>A]I.nHhM)B4bJϰH|QtAjg&XG+gUX*v[XH-XqaJPknW)EK}4BQ3_wQ,GRmL?̹ؑgA(cfib)e!!ZP.~o_R] ΊRwmAFO-e:!]bMӕn+f鏣,vf+%E \[gr{-DR{7:~JD MT]m(oޔ٧ƪ@͖) ehЍF4Q15e 0i~ZIij]LO@Ueϙ5|XiIrtahb TWM5L)9{q dz`-dۖ-h'g(RUr<+)7]<T[Nʼn(~pxt\dչE+O;iªwN<] U|_}wkRE=ߤsߵ>Zv 3ߏ>F9˫W&-vSߚ(8&xꆃmI2x,hO 1YCr!1[p MhH[)58zsE\XmEm% }Ǔk=`UX1JIT,I.Q6*A^udwZd^~* x<̲1P_18-ʪ6N ju,/V.~Rs­?!$ iJ8̣ABkP? bnI1MvzX7W:vzUjbTHkaR DSPHBLjlD%A\}HĐLU?M!9`KtlӅv>_~im8Tp@&ϻj qA O;IX6z0T%H|_w:eq2Jek.ndd$~vNy|y[}>PcD Ehz.'澚i/npv% }zURԩ4q& @ɽp9~N9r=nlb~z*Ku7qr#ߖ^yV %BǖB!ϊSXBɕ^H /CiՐ=x+g״[TGδ!)/G<}Mg5Ŷ}dr#R W,j$Z6:¬Y[˚C0G5϶]d:Uw]I2?$Jmܶ}(L1 67~uQGA*{V';ӎl@ `.9s}l%8btMr#o:_z|x6u%cFN*\ݖ.Ŝ\NJ}$t5kPDS,f\a~h~3w/GhZJw\|<uҭcR'ǴfS6d䠷r&imu{TՐkۦh05<!l w1'DWjW[$oe[[C2 L0U7|gC-6ɖg폜/*L5dP{1M啚Y5dw^u$ǯdWǭkԊx@KYIl(:mBIdgsH(a᱓."u# iqΓ D|Lͭ>! ة;nT[uwZĄlcz~҃FE7niڛL>3.V{!0YEG]9`5%P)x'Sc)2>ʝzr?a__|u X({7n_:"c瀈FT"* `%,֭dȢ&?7-F5"EX,U5) )c4ˌ}G9Nr||bjmRB9`-9]Wo}Xe l5hA,D,PެPF *gy$z2":>`Ũ8Wg?])MhCd;jTGǟ{t A;w>ev ݢ7wYہʹn;HBApE',;Ibd@BVI6{nl2ZJТy57Q  <><VcחX龧a%RvحJiM0q礥q{D@3?[ A"TX*@;XArT۠9-^˚mYrT< Ǎ k~NY aA.Sd6U5d[8^g#vݎ8})/lQU5N+^ Bq$k^)Yi~sξxUgN\_b6}y} 7YeJQ I8>A\]L$/&گ/A⃧e05=zƦbɊ. ~PkzL+èb?˼Nٗ#I2Gy2q0/Ҳ̺Ɣl쐲X&Jr>]*`'t5!S{y 9:+(+xr}=ܖ"H^?5SëP?Gq(BH';w1>:>|N˦DZWИAP+&ǔ&$zg4ޜu}t]&ḄOhW|=:9]C8|L{&VJ,M$IG1uF<yFϒK6:R^=+s,o}%J6v͆2lS-)s~Y>[`M?EA0w+pݛIx [KY|֋iah1э'r1[+jc} #κQ؁Mj'F PP%MX'Α3(UL*A,:Q6k}uHV-UwvT_B[<7aLYԢ:2{Z/9,IXhOggS@﹦0//"# #!$"&$$ ###%%&%$#!%&$|}LYh gnC u DWؓA=n˿؝0#S|sx8[W)l5|~;iS%44jؤiK-7W!ER ŹT>Vo,E\_¨ (K#2jtoFt_zzq<~ڹxXtHuV|g}>LB*f^WC\aI dcX7P|,D%c8 L>rValᙆn⡝<C =n-w lcN՞TLNÔ7d /FF\[X.* .Ɛͷ49ǷT:5_~T>ܾ> 5`RA r xtvGfa:k#ɊpŸ"igL>v=&POSt1]e{շEyc_ǙQ>a=nD+ĜO?iV}KޒJ2Ny s K#4 /vtkn;<(]GmV>Y4ZCJ9GDy 0j`Jv d߰|pD`߁'@3U["D-QRS L߁g͇wbڎWYvQҮƷ 1)<op8ț/]e9W('>Ʊ&DW4&+!|9jZ?+ތyݝ^L_ s.G`qFÛ|sVusf1\_ 0s_ 9!ejt-Ο=*U$\&V"0 iY\](E7C])2>9tEdw1?;[2Lf+ I6?qսq>?-H .Zg?.&/ /DX@` !*,UNKQkAaU> bv@fR6J^)h5;tP8(2ɑY*a-IAjXg#U&vn딩ws3nޚHrdLZٜ:yN yPK쎐L ĊՏJ(HT 1Ҁ^wźi<&gfI鼩MĨyn5'b]֒P:eI|Ԓ!vDcDzTwjQ\g $T4j * $/dW#Y77oNWbtfjݭ1Z` f8%rKG7݆F9[qT/}o/@{ 5SCǾq%ܕڤ^9iM5kAYTmk`q@$\Z.|lע|zo&\jX0+]"CۚwT+VeXP?Cu˱n٘]v ‹y, ~'ܸk;y8 &tQr -aNLGFt" /|>]*DkWu7T?FL$ؐb mU ɝJ}]%m n'_B=5&IJHUYXV*iشGis'Mr\Pcw(rZ$]h|C3@ tH| Pc$7aő%˳OA7s>EF" f̪g&\ 5fW+M6إS_r}IbۆXߺ,tShn+ {߷U;c4qPHlNUL=B|l^4yX2ӌllxΖ1~㺥$XIt?چH Yzn`rF@ࡩ^6,t;6*jݥ?< smQ2#~qL3ip)ǒ~%!SjȐ~Q(A>j?ND'ן/*5Ik7&ۯoβVRPish.J*>\5C/K"= Cٯv"B\B XVz>܍2wk6»>[RJd x)ae]Z?J* ]PJVK OAA dG&`@n|)1] EwřcMYԖ£b~&[NPN>/ɸ,)'u1ˇG'tii>CKkBIR7ޠh\t89![Nrq(a|~v*Qʆ(r#!I+S85'<~f0oܒCp,U:{$L>IA-7L8V%1sYڞ:HS?C2*tMoۇ( ~}E>m ,z$ҪDHTK^\.Mwܻ ^ŨzJᅵY7`>za0~zs]<؋") ( 5@u>6Qe~CwFvfbE$W0^RcCR`qCED6KA&`}60p3<Qpx5if&Z.^< V)M܏slBuhqleg7^f:\J6n5lJÙrkն;fsGYxj]j7XCBe)D .,0C7U 4`{QjtPT;Sw+2:ߖS׻|~"Μ%Ѥ۲mw2JYa?T(#ҖF b'jH^J+I@]ՑBZpD``{A,]\]DAU?Ƭ;Cm>l6e}i2nkwGIZ3j`n8ڹ]BB8Pk, DI  [Z"ܰ Ϲ uQ`x^#6q3HCHv4RBSz iE^jBY^7lAv;N^"A49 oz$X1,f 7i|DJPͰr+{ e m*ˬeFPMp>,IBI^Ո |^b{ #y=\y6N58Ong"oíةѐEwMSԾFw?cqU?Q5;{ng} 5]1z@aD,UW7'=>1!+ԿxǷ`~y|lls " mQ}{6]~qM)s%T9kKA!"?ɫ.FLjx-8 MOҲ%a1GOggS@P﹦00'Bi1!! ! "&(&vsx}xnr"")&#&$#"$(DY(:yoI /iL[fzc4\OJBE,G̴#RRpRR &UI_z֢\M+ dž$f5D5iPc=|rlF9 1=]jA=#67av@$bfahJ!)V|2(27c)8yR:YA'"F06ڌ{Fus˸M[-&(:Q!#V@Ppp,'ob7\\DP`!)`D.^lImwd:- IE"1O|E3/> `m4x[pWPXA#@PK|H nH\yP( }DUa1/%>|"hC asb&6s V!Mf&u2bW.C+˶t@1.Ȭ` %H~ ~" uȐH/HprA$+vX&n5؜x8ɣsj")uff⩙WY\INfm=dy u!AJ7&} p8REjtT Z d]H ~v&=l i炄1鑈M~DF 0w3N{M2H믨F5T1cdO;KdAP"4%HE/\L,"%ޜCaE31I~~> `+88/(")R(;(M%ôg?k0&]ܣP/DP C "1-Q@/YTpӍL""b!R.G O u55 bE]t]v8&jP}I <|i,6h@@$a6 bx2X\jt:o\9  A  {q ~Bğ?T孼2l޶/zb1!eZ| i4|7yw|27:bvWst9d_JY><蠁cym俞m$B kf |gi  e7Rv<9jw֬;ո[:{SOatpZlu%-1Դ? (9P Jju7z~&Mr˥d|F;o^OY7u|r$t[?_| s8"~Ni,~ Nie4i1V.OO^{OyÅU??ݤ*+Pǀ͒ mQ8N !QXf)6 "`^cm*g?nحBAUM*.֣@u ˺܀"^\nHZ!;.T5=Rz M e!OKnNm[QD bpx88u $Nlh l5>Ƅ*@G1 p Lw:"9g"yM5 >' v@X^<.i~B XQ#~`ϥݘKQ8Kf'kf뉛4o~"ZG 1i#0$(?FnZh/!UJ @Ge#Q3^.@)$&&TqPK -1 ?;#Hϟ{)çV|Vf +߻TRl=$l0s)$>4J@5`HGF[Ǯ"*p]n$P'$+0*S6o@1@{.@آ.P|m/CRŒ$t[n.fdz0փɗ( -c7tlO߂R@T7Tx&  h]p(X>KְI̋֜pB9H:t>Sj`Uֆ3D<$//@3s/&duݜq(`S,(@n :* @- %(ED(U Z"*G149ԇ7[x(P -|IpDYJ0c53| c?yR/PzCgkmٟԀD1λR(Hp!1 & -a>Apo F(%9#p(T q M@YkN߿~'M j{Pf>0َdwQߙpS ^ M4A@<@$J 04 .$3$kl<^?U4GH>D#HLU8RE ovB- fkO7#ʹT߆m{;At[K4iO+DW*5{vLM~:0$Om ۷+ΪҧI"bzJ\W7rÃm=2Iy7߷FuD]yi7D;NDIoksV?>#h88zvrnPuutl?yw p$(mf/l?ǚy-6 rpxyur6x?6:޹i7n@4,PvҳsF^z솛|' ! Y]ts}K7 >ŠwtV7@<&!Ϋ#J  $u){[T@ O/ fF4&Q u#"5lHťWviuQ4e V穿!%/huvKFXTXg} wbIb E\.;- ftY2 ct*rBDVnd*j:vtz>Zqh;_0u<M9{]ukyfZ1WZ/9эi(׺—[Sڕ'#zUszok[k?J8bݛ[Y,v[m#!+É+D-^h zMF'0^ԌްnvId'K.|ᓛ&N3:7mnvS 2`lz4FqN땺Uڶn4C=gU8KNO&㊎Ld+e 8A 8e*)):?>T9saG4z?K~ R|FulW1Gg;jX~ r▔6I%F8֋Ӈ|2)(j,o+*Vۡ_,6h0OggS﹦01f2##"'$%!(&'~~ ! !*'~"! % *' Kx }(JJ/~v뚷hKMUW|D{!c ])CQHSDŽ=zHR(7,n^DD5hnNodOGqq<7B[] e\;cln$dۣQ]d%>vp b[yKv "p(V_,߽Hzxi/Yl7{=&FBLͭBw'@v x|C@gUBi`A{ B L]Rz <߿at5f!sc6(S9Fb܃t>4Pŗ~n pŷH&2:|k<CSK-6dX7S뚫hitzr`\y/N) HkQ Σa8΂eqO|!)R`c KcZϢp;ptú9*$wN:mE*ԱKK/@m@u=a/gvvïWr*!*o Diuvrp NŹy(ha~+x|@ .JRoVV(ɢA B!PҘEV [İHLW)2?KƢN}GiPoDU=OTh^n΃ds)CҜT\S \}(Ͻ݃M~-7k(cqD,UT4yioxƳN<+bL4וL8L磯ܥq pSxXDU?nϗNq݊hU.Tg.qE T݆ӕc4r+mU|6V].*TߐcÃ\LiBXg ld]lKb{{mfjtkL";|eV9 8l:+oI7/gj=c.僢k] v-Cl&!~L F|Ӌb|Lad8щ:Ҡ\I.dN74>jaM5Ѐ%8 *((=yrM#7_T~a`2  bEibl`M >A9[VWWc^"Ӣ󅞈N2ʡvj>K}UH16eWXPjf*p.Y\W|RM_p 9vTHuD ~Nb2~PEcLƟNdt%(xb8@ 4 r2=FL/YK`r1?@Q)bE PP-a=DòDI,~PT A %"<:B2tŷ y^%S.jc?;#n$K v05Si邍5@ GYc~Ь(A@ * F+([e1vpaUq~a QA7<ށ w+ƅ'o{>Jrh6=ÿbۚ_닦ь,ߚVt ] O.` 7>2\^ lnB J@ǵT.ct$ A*4fP$2eD;ٷgw WӬ~r]+mRdlb(PtPh H0r~EBpo$%N_xuk^j:q@ 1 w ø^}΢&2 6 @!O ѧ ,QqDF ^4>/U:R13UR; RDTVHA R0(ZdWh`1+Q@4bWm@ZLgH`܋QABIL.U5.ًdDtJ|.<J`H鄬~@4,,crxΌ?Ṅ %T7  *`% @rOVT#[XQ27 |.4D >PT6 ?R@?+2?wB %*m[T=yìD9Nd}[qon mTϏO!z-~XU4Z*Nf4Pp `RDŠǾS 7ZVT GCD*8BBmLU) 0o.RxtU5$TU* jZ]#}dɖԪ^n6%LUAYH69)nN} Eo*cF\WW`VwxgpckeEDO\+SlξfI+AZV +dWpE4?< x3W-nKvÆ B#$\[tYv[?;N{MwL*WK&{2k 5D݄_ ?bًIyj$W#ƚif"$ ~;+M5;GkٺTl}m$ĻP8;LHV.?9ʃ{ `\V9q=N-1s8SvuZbdY3E]Pm!i VWV-(w&n@. >w~(n+Q*CI$HCb(T0Xł4!"ZX/].bEW0"-&fS#){4P'j|G+nyPt»Ze7⍱Y+daTἊtC2p/ȃV!%/ 77zZh;-JXRl)RD&.l0/c7~gT2vɯ[` A`Ѕfp*PUv F;,jH&fA$Q@_b\;",>,"V=~A3H'E "HDž}RR,$9)-+ ][yat"um7MWF2AZ!5 m@;ˆpw/U{NZ93@x~DTréC܄E#R$d4.YIu2y$F-";5!a@Ɗ-g@UDj/Oxtb org."(~A.6Dr:Rk! +!\Y+?Xolh{msrXJ QGbY"t]F.;uӳ{.M:e76n&*:st_7Pyܯ<^q6 lJjPDl]psEY]6|ΑH.ܚJt.K,T_Y T_ySm \W.q[<lY.cw< Xl_W@ٗN0mYeoR%)\]-~`OpNՔn'lne)Vl](EW9ϸFwH~rqjF@ZVM+ z?B^U&O-Whb?|'V\QJƝ4$={՜@;/$ad4EI*}f5Hݭ񙨜Gh' ^>Ծ?eg@mY2 Nc&/YMxi>$pa퓢2EC&f2!;͖ITZ hI daiBj&!I!GNV^" G1#+^p]U[hX6E ǒMhE`$ԑk޼f  ]TigI)̏hjxy5D(//gBKF酭5N"_p?b`CUt3N]@C'8>Ye=OمԖ(+Œn)R\ҕw~c7ȸ~\T]͞x| O]/>Lf<7W(sX _m&2es`i`&$$+9&JhY:/q;3im^+ [B+7{}xk.HVĮk_{6~2>$T5S=Sc|(xgoq=&e+ZB:R?E v^xF)]~JnRd RB, fVԹZ:IukD#ЮNR_+1~A[uQ)co%9T+ۡvY&Cz)PGH:58f_d_/4>&kMN&sE*$StWz=7ow87%j,tZTWmՕʟC1RZ]@TYtE~pdnP!bzI*t]#g$8[9迷&UWZkX*t,<Z;5ۄ88pR}:Al[Kr_'o'{F@ 꽵u5S\[{Rזpmz| ^pyIlMaJzZF/%J]%P!w%vRܺ+Kٿ?Y]yw##˼prɀD|":Fqp%ӄ؃:/fΪQk4tP ?^Hɠv](оL8 jz~ @,>9F*r!6q!+eKȃR`q[2BK@w7c#9B S@\ԙ</R ϹӦ ӌ ܰ]10EmjAds:bbF }LX>pū~+D^7W?DB s@H>tyAȹ&E)0Jl} >  T `@t 6)H򌠴zܪ?WDhYp#P„Ei.-MtV0_: ݃cl?z+oߺmGw4MOӲ^!k眺! c%{:f_WV/Phz205vU$P x7C 7(i#4yW" e-Q\Y-෬{g?oY'Pe(Hf7D[k+b_x{o픬tt!wnLUH){#䤷NژVl \WJU+k.?+UDLWUӼH`:u ^4+l[T1~6݃Jfuv+Y$Yp"4_{X?:an~̧|ajls>W1CP bR|n~ƔVXuL,v/S#i e'Dw|""':ʫO{WwNFRVwH?@NܿHo]ub9WpRqG,&*)y6 6K4Q]B:hޖK4Y,dfzZXwׁHQqE?҈hb&땿줓ľlw63Obo{_jtR>iA@|X}Cq c6wDRӭ M`Xq6QIUItlpWnMIx4R F2zHoܚ(Åf(~@ O-.&nSMV O>"` .k3Mpe, x6GwXlpGS<,("*Ѫ7X;O0[lM׀ U14P ȡF>afը1 6<>3D+$ktCHJVj^eAe-(2."j[sӑH&zSZƲ?A{lq c6`7egu vj V~t

lڲ`=k}pkmd] uD[VNS$.Rl+YAO,bniYZ@BJ$Tb9AE~~?sjL~D@b1aaSMOZicf٨?KŦ@V'\'vt oF$}3D|^z jFYF 6Am+&e|QՐ^if EH4;~x/z<>1?[{]cjVp33(d? شxu3"qD~J 75 ^KC?aU&u C^/6KZ+ N:!R$B x,9~tw  OO>~eR@} j@. jb flZ"*,۩B>DHU o\*R4J NU(r#*5yO=yx~owՠF&M5ͽhު|S|ݳM `{/85H\%@'T0@nxWP$,[Atll@"T>"&0cLUJ%Cys//I]4= TYVx h7ϻo14S*f^S\QxGIvPqT4StTU"`f̏/֟~ ;XV"dWJ^|8@~)t`yX5H7\WJjuykLZ0í3TY{_LE$t)]\edS12҈m Zi{<}z; WcZVDma:n_l6p)'2qC1=FdR9OG J&sRD"*븚[:V$7MlK4_FOFl +hћ"0Lm>Q@d+ mXtqA 5O*8|~\F9܃>:2u YF$&:/"%)ZЄ$!LYlq0}ѿ-+b& & J. Jb((Ya<2A5cjq߯#Xm8E.0$Aj$5:2-+є_˩OP8@KyhP{p :A.[ 5Iq,+X!;xnfW,HXK%\+؋)( $!bQ gOͳYrn5gñ/nكET ʇ@Ȧ/Z"G\ȃtc n`vZI Zn[ҼdB$)J̓[Ku'ױ;OoՏīዧn.J ɰ['NVU@Hn5 e2r է(~l>lC.@{X sAR5DB"LDV,MvlIN694Kc 2} Er{:%p2 ءJZT~oĈ!:3~`^ p|iF#nV=eQt; -0[cńY4(kS(7s?u X=dW*Vk@M@B@0X%(KI4A ĵ82s8|u i{u]V8`:0.L p&$ AyA;+9E-\v-`-]c  %XY4+@AT@&TP#+^LQħl/nޏ`0m4vn`$";dl\zzdv~,p}O(yY Q[1 *a34+zh@ ^|. [F_fs Ƣ1 c}, vpA$3.bfx TSDu~9shp @)$tI0Ա Ҹ,4F ²D$qdLM;&S? |0ְpS+r3.H)H."Uw!26n(< @R_RC`K祂8~,e?q):~(!i7X(0rk_UbdŔjQ>#E%-6}H޳ڴ!X?verOS=W a]mo?햼!KA (l9'@hPnVrE ݑB)AQawo5Wt'}3[HYk$zHnRq- *m7$|mf39MR"()j4;UtOt㿥6hsP_k\DO$'QFp;۱X\OT HH@BauBu,~L}!}bկ,L!»C7ĂHI/V˹蠑1pbqɏ# "ĕPe u!P4[L_,,ZT`1$WyNA! ف6> &L!psPNy}E!~d"L.'$'*וwcs>wǦ 5Q  KnW #xic Wz2]LxRU` &[t63zu1DX_8D֤,F~X'~yb'F5x2`p ~Onؤ<0@'cšШ7j,E6 HkWV K?\Wg$ = 7FD>æMb! j8u (#oiJN&-d|z xP ^LPr;ox%5,f4$՞AYG?G*> 1 K)V []@fc U XVgH2JH~ox>^zl: @/4fRRG+H4MR6dFC8Z@wAY'XV^v 3ˊ!wX~7'(ɄcAoơX0@9+_؋yqFΧx|=g#ux[xr+UD[PP ptB@gMJ Uu' ?zZN,=A OvY94SeEf>}@z'is|W%?p@`FW n0tv-¦cËsXBO)k) }.yYaOggS﹦04W2%"$!($*")$$!!%)&#&'%!&+',%%&$!*vCC[5/-RsOFLfV(X[,& MWp Et)nWڊx.wshu e] [R.O&sݮlƁDZMNu|ǻfe(+3Ҳkv6+T_ ZIY% M dbZOppلT_{C[ nJ-d-y>_ўoҸl됝n}{_7csR/t_~J~4萦WZ_vCn ,O >5 LsÌ",*}  ag}?ɷ΍|.ng jKCZb)5%[Xϲ=_;/kxm?5KYkP/UR) m7&u&eQ ^?C:QU7ʦy.5c(ap ܬ;>HNoFݧ AGe 9 +xp{5W}72XK"<  r((Q^+XVѼo4׿"h,Fŀ—x؍mY;{y۰Ϸ $O}'=ЦB TӉٖe;4? ?rpLkC:f@H970H 70PDS6fڃԀacvT;@-DSzY_%QVRR* DQ'jIyxy txc`"~4c}bj$P{NeeYtb|2lJD\D4\IF͹ uŌSS[ޑ2!(:,է!$lfN~N_$M =穠Uv9P:2XVGt ެfi~9Q 7h#Ts@9.Bɢt|0>).4[tfM0Hn@p>5-uS>+"A\ +F l(/* c ;uZ@ld)1B`,N?j./XwK.>\o׎Ss^!c:"ݸ\dyzҩfG9}Az24BtDE\"@Y(z;I@K?W$V\F\R5M(XOnajd]j۴>gY hĢ; V:h$GLU=UU`jQTv{繾`'D2d[hZؙq2^M*K5 3O\|B 1T[tk+b#x/Zke"a%CKCE*D(uGdܺzۤu|aX߭:'v44 3RY .( ]q(X3s5w!n0!֠#C~};55("S4iM#h{13;+QZ_PI`+B`dW;IԂ]jr~Ve9Lu9# *VV̪Qcz` A%`P|[j,:I,Wa|&3J[Q*$I%XF >;{q\6p3dՔ>gQ8CK6#V.[.݋W}8z4uCnVπU 􌜊|6nI(+"܈{ 0" n8j~_JȶmT*KziVEtr_=vyS?d<_SiӜ<EJ}wss\.Ad҅.^olK|{]oM(P?TC0@.L斎lr@/P3CGMAE?Wu*k*rX%3I,#  DQA*~67&i6KiAݒ7TDUU" |ͺ7ڥTDͩ*F{G~G@NuCپeq d O{x @` 0qѠw 9TSF_5:~m>51#DIU5G/EAԿ;0WZ"}x%f_ d]1˓2[A^kdi}-2o5PXTcbW4}Z$4GXRMvnӹ{IJ<_^aJ|0=A?ïÒ'k=߯YȄWvsY˵GXC^S $ĒVW3_ ʟqGu061nXeFMz'>49HM5e;{sp8f5,VgpWkp}r<ᘵ|3_:#EQO8-p~N@ ? Nks"<~[ ȕm%EDԎ= qm+ĩVb™  2ue+ʑhP Ycg_* aiX?ҽP4bi'OOj'l7g;|{4(+0v$]XBBn) [6}{`O/Qw1LhOd<Q9;y2v +Zs2~buOpZ?" ,9A Q3l?3m3pQ@DH0-9*bJ^r=fhocr8ṙcZ;i&E %h1BgV,7npb`E4t׶eyח$!]RopCZnL2Wo_7/W8Sܓ%[0;n&_Tb~Y_@ }6qZ/ TцtT=Ӯi9}@_p)cKT 1r|Æ-ךj1LSNQw/fkEZO,.l[|xVjϭH$ppIX[-ߢmCGܪvC e痫vhBQ>?2WZq42kƓSj𳘤t4^}Qw&eeMI,D/7kImcI14E$uZknw0fw:,Y /I v֣~EޤR!(sAZR)*f"D*~nͬA0\F1bu]0'b*J#BmGwgnBWי6$ cdoN+KhuQip֍=h h]*] x ȱ0~I$VH ~N~oK7RV83WIuݜ~ BHcl?UW]9-\?Œ{b?,ual-*rV7sN/ұX&7ָ5>nY iuR'H|D 'b- +\ѳtoRk~͹Uz.g#B9\/?ETơL#)U.1M%;ݟT/˿ba߯N'C^8[!ig_(R @{@G0@ ДkV* oߦKBQ/X7G w!Fӏ^[FVAllssMd /ek@h#DƄ\[Q%J bA`.\nВvQ5 LW$Jd>}ӿ~JRd@S? Xܮ r'Je`Wj\ցU\;{CXRHRLꞱy L_U೏cKQhhKYFKO~&Z2\_K]_q '^] )8n3i7LzƮ5sr(Ǹcm8M+~fo_V&OS.j6bIG!<*x 9$TK2U^>t(Ȉ &v\iw7wObG\=J (cI׾ ! f,h:IV8n;ܱ\zTUWMzkAKN#]z1S'>Kx/w㦡v`Mg3xs%,8x]|%e˯0v,酙o*qXo~gt7CH):O!kzLvbw`g%4˗`!7Ft>I& t~k9#yhTlsI{Lݳ^5N^<"1IC"Rٕ6*fw!9`Ffoz.6G7GJu͹w W]iy-ġRj,mq㧦:ǧ3f?pprSz,2opf .I㠃e_,a:o]^myu9) kOw I5X.TٺOUܼ ~D5g̵s gQ#϶4u4E80h#\a"m%z5So"skߊi3+<݆!5=OzqBq,D]/*LD&?<\> iLzN!mNDU)Hnn|;@.YKoh/)h~®n4QU6hVtޒ߾ %NBZL[Ֆwh~ԉ)8_C"\{шFlT3T[ C-.MB`l]Bʎgŗ-I~L[ :%<ă׺^wĨNmtlG<(OzH-stx`U?\v@,l_zsVgSQGySκ*ݍ.v)Ѹ SqCחOXurji^Xj\r1۞w5~?̒n jVpQcVpGg>afl F%)H ,Dz:FǓ=R;TA1 Y$+4ݞ~?Ro|`L)KoޗvK6*7UO<nEĢ2Յr#Y$% pBKvAU{yΘ7 y%)HEF.=ÉOƢٸng^q<{s?l~>,9EFL]_%TL(ju|XzإEXU㸪+lEMJP͍$`}BA$D|֣GL[Nǩ!L(r(DJXbh`z hɥ{l=bcΆOH:wL I9uq۶~D `F2{QII3&ObmC!FS7.Z렖[Q-plŀ2f4F@ sU̹)gH?_?m\/n8|1~qK25hC㯳y/ƒHD} ll1/鷳&]6îwo)<.λ;&˘ݗ'v}1 6xsnsօ݈mg"G"<~LM03``;VAOt#J *cӄPƊ?1.|^#a.  6e)"DiCGfl7dtaCF{4DZxfLkZ'1[ӝOb7 A /zC/?azAц{Cp H5$F8I`bޫX%.jv$o{?Vts>gO։iDcf,IbL!'%ޱEL;/!35cHE?[Uƍ& OATLBP-o]#m|MBBA8:@Ѐe"?%P8=Qم|wk~>>ez :KPQ 4yX꽀!qALQrtT#cG "I1GtnvWs>TQ@FgXǽR s:j숑,9)WK=R]T806}h6IyRq>`=R :tU5A U?ef*n *^).D7KpE(CPX+6L A)^BagS O d?ss̛1tݝx5 Q:aw&L#:^v3+@]{^}ykw%91![0+y|w\fUT|5.A_r g/`lej`Q3Yg>)]qZ%sv 00A)jqȒ=DτVo`VO1Ey62HӔOval JPA[NƐM5*A۲ѩ,(p\;\vSB켇h_YHv$ N8I@CZ o`f($2*QL š Ha]H˲k*sR)T |,@)v'ԑE '"]ȬV]0I@O k7w7;؀Ν; 5  B$MC,Ud5Ho7uh>,/nLץ jmg8 a_BbiY0x 0r ["K4I:&˚:B{j#6X6(+ lP"$I$A i#._>2Z%)c֎3"̠ I"0 r@b;bpoz Pt}$8v* X+vъM|^$/ϩM55`;Êi42H" P8-#)sM{9xqx{f|=UE0!mKdlnSP%$c 8F@.~2AL%OC A&F"!ASWCxRSB25Ziƶ:6"|'B SXY;D> 2h 47= ~D7^?ḫF2Q8N{ Ő t2kʟ(IvHEE*8Hfn.0uIQ1I@æ@aň8 d4A I յcrc p܎'^ً۬ODȟ] veʀAQ$B t:CBAF*!I"NQss59&h2y`]--0.b̩&7 h$^Ge@IXn\%!t~;~) T)#"F}|' (+P"$ED ADk?'{}ޤicY;e;Y^ѶUyu=4|X-e&pɁN\ ޫ.]K`YdY_̾zvVL:t)գOnԕLjdY}]Yvhw8kb8JPTYBQȶ/w@ ugH:KE\W$fWQG_ksՕgBJ>TWl 6M0]64j CDW.{(2Q;ͪdR 0ʬTY\mi&oܺ GzFWr)VqHJl]X%ȴ͠]&?mxyO+>E6PoeRZٕeZ">38b!OggS@ ﹦07+ty" " ! ('#ѫ#"!&!("&v|ywryiǤ !vz':Mh<ʕ((=MbfHsƒy㿏M:zw:zE^Hb!SPM|\ =*Y MLsޭndy1#N)XGDTl֮pXٛF$q'<ɄQHH~h1a?gAvr-^f` T!#f59 @=h >8ᆱ8_ *XRJ ^,NC[&8F3#̿{T`d 2Į"$QH#9pOԟm;i3y?|!p;# u/ b}@)5OA 1`LA4 A&x`E\>"L0'|.93I9·sC-BDS"Xo l>W!u;CE4T@`PqceܗP"Rw%ˆ{4 ! Xܢ`A@`4Y1#=Kɔȓɖ'"]1d_X ko VNHs@wHkG{ P%kK4he>e[\$e"Q2 ([paa^L;J ;۱=Fo‹W$08E"ҟ!h4LG ;̸5&FNaYMzsl=} (E lZDܑCi-@@]"6K #펣 &)؟W mP )bb3QgޚG็Ba= ZwAmt!"\ IP)׹$N P `jqAVUDYPQ/KMR60^{~a]׋/e æ$<F"y)IeMºW5Bյz`oB) x+@(axBQ -ύDOjh#~`DSAv%,EH.َ}d`]qT4SdI |O k8ҲƝU,M%*˵ee1Icꔩ)&tghV`␸'Bs_ݽlzvNsЅX;ma8G-"Xӟ&>1Ēs,_:m]oGwp.ͷO%fKYJ?r~2Ej͒{͍Qkԗut,B }.@_ I|NVR1 p,1&TYt|@B%SiOviԱ!+%2@nk F&$(L쩒3yݼZNlIF8GGߟ}Evi?a*QAnX-|v:AsLu1A>"iUQv$"2Koߎx-\z^k/&KC~g_#>*9fm`o@aD8"Yp'xqM>; 'c' ]*)ArKD%" D#"q\)HR~=?3IBTZTYWmf~?h=9fsWʙN{DUhQs]rdoOVqثUmLQ1'lv\+ ]S7fbY j:4M*.em|B] LWTUՖdxYݛd(q&&G*DYb69惇!!~}Q&tOFJ:'d[i.!8Z~>y{w),uz"DdeaTWH7K6j'5>l?WuG^8~ZWJDG}GvW#ѴXt>}R_7=zIr[n F5DL";$"]DAY\ PD/E_l9\<dDn  76`s~vAU͗.6@$UBCb?I LJi]?vJuP2Hl(0 ܀Q",`"ެn%QW XѿN:B?ȍXЊC(3)0ڹ,$qΧ/cc(YN t+kH(XP`6Ǎ.Yԋ |$~HnJ^qQW~.j8%biZvI m1&ݧy Y\_^P /0r0җ- D\Xb-7 F\>0p^ԟQ թqcMbNڹhrB`:.3nùGpӤa cH e`P#.( [@:dchfp;a D,&T܀ OggS@p﹦08/7 " "!&%"!$# %%&# !"&$&"! "#$$zJ/ oa !"d=^S{,oݚaBq D42u;hU{陼?ٖUnXLaБz h*V \.TB@ 9(T| FLU"הPח~qՅ1e EoTSS50?x N[bsdI!2bITSu4};y45ȝd%ZE TUH:7 ~Еqr'qvIDSkЫ. j RyfVx\WӤy6|$dKY #RDQ(>5/w!M!UۦN ѣb+T[ȩKv껇@T5v|m{k>[[3&sB`x`4}@@x~&>('T™4ٌ&V-@ >>Rӌz0Flє0J]nc'7"$44HַS,B@ Er%wQWO"Ƕ}`q"taը)hKPP.Pܤ&=k17SLKҙp4bPI)tFzA%&oqll120V캷AQt 2xv1 M@q7>0Lw9L}%غ'a\:\EQ u4Fܜ!5A'~Ngx* P HB RDr/ٹra @)baכivܕBN:a.pp 0&/.fw7@Gp+>,v=/;h֎ }ך a` JA$!usi0zUuzU=wmJ"oن$:U(0-7~sQ$MP\"^XW-b&ea.\]6ecYE@vW-Rlī+*,t]RkC3]ԋ !.t[RkD{X<9ΖȒ]-%y \YJg{ŚNcXY%c8} \YvaER"\=W1wRYUJddYܯiGiͱ^/k0ʐ.d[%F5gkE={TT"[Ͽ), |_b,+ ߩrXw-'z߾:. gRTcLaL:=/w](\hؓ?i厰gjZ@+湯2vJ&a柦D#G nF{I6[$l}-Li4:?_'T"QT"?b@Ө$uE#\K|2T$["Kn. 4? ,֑2<@2@  h=!USjp(AS$D{aSJ臨Z>|콧u܋AESLq@`VP -TJu匦*L;YI1X$ n$Q/+e-+I75ј -Jp!ĿKZƲ`mW'?WΎ=1By+X'+=d56N` B)-9%Mwj*'Pn~(T@ %y@t~.$ᦋA糉,>W^=Y gCe'$"˿M}?sg<}|>q4h4R=!rӪ?wܥ1V1FՃRT `Hh ;aX@%TW€\MBw?ɝ|$~--b).RkW8Bj\Y-Օ̲| VP|Sj% dWܮgJK{ nM/ߍwCCUl[F6WFЇ/ t\wwQu4Ɩ@K("Ex=C+N@"%G&͸}DzKwqb 0ٷ# j@gS* "@sP8AYk D% ^WU@GtW`%̾hZ&´^I3AͳaQ6 Xf4 AѪMP)&EK-Ut͔ҲV잰tUEa  fݹR`0P#E U~!+٤1O <=P# W(o? y8Q>T01r"DL<5C\}k,6.W,޿ejӠcYNSsSch@R"(ܲ>E,6e Zŧ\]^F_`` JRPnyJo{\WFZ\]99`m )HQDYB GYbߚLk>yZƝgOJ@)w~73WeZR KMi LQ6M>Dzi@tTa$LWM(k@}!gO' }_FX5>KO!T^I)ND(L.Xc:JװǤ]_-{vu81Z "g "|wqso_[ekĘmV-1J@Lb$ TKE*@:d`!^,FpPS@ N`2Mm)sð UBReƇ]nLA^4jXaDߕ͐ej&% ) Ʌ&%Z ~{EZ.`Y&pthi?tp>>$dssĨ  (5c3/wMVZ eZ ^I͖+%@ n)#?J6 FOggS@﹦09\j&{}"! %("xwxtww^{E ^ R +aif@b,UOTd<:~}Ф)OWQR )i*Q bޒǑh+q9­^Me^s/K[pr, ^,6ELV( J=K^'ʧΪ߂"{8nzb{}lтjחITd@_dIr 8`4`h$X>]b,ыz5S3nP,K+>)P \mM̮у, zg8 hfOc̗Buc}nr4&PD‘;4R+ #$k5|c$c9u醱ىḩvBLT\W4wJ8O|f5+?#. I#/(G  BP0WU:\NaǯfESB2C3sWP:5X`ްۿr89#O[!$nA!bjJy,Q00b {ƁqEp34sLvvؼ}f˓2$e&>n+rt- r@D{iov /dw_}&힐y2+l<9_W1 b[ѼsJ9)QW 'gZ" ~\MK.PgNC|}F@DD)Ŕ =7Pn*fWHާgtaDZ _-fI]-*J I;d%<߮,A ,b?4+0&t]ԓ/sIem[(]i=BÄرc@S($ 1G"|@J+>%$} eh A@( R)A u<$O$ EhhGe,DR?(iIboCPPz!xpojb)0*$aE9^+.ol-B KI@Ebi`r)Q԰qiI-Lq2lWt5ڛ4EN? @T@) X"QIjd2Fu+94B)Ѩ+26 HX^T0м[ ( L)MR@8mfǔ2vl(z٢ƼV6vOhڂyh2s8!ave4o8Gb$px! kP X$vjSK0tK SD eģYfYbxJa0nɪʽau}u ,%a 9*\7#Q2J(^c`4T-RDL`#riu҇GxoK/#MߺW]nN.Ma< &ιF8YcἪO{DH(OٴTm>`]a"~8ޝ-[GL`qDO2 B"i`u :L3 416`ՠoC%!q+ʋ+iہr.  HJ'[XjkA$A~͞P@>&57x'i @1%B@T 7=fhE6 ZGT 8#@K.(zFnXshV.%♹qC3ϩz";R2vP2HEsWӽ10S0/":oг׀y]1 `N8<Uy 7" Ɂ-.XneLH 4af<$q+$P@"E"@6"-g{k|θY\>QDH.XQ%PP ^I9I0ȅ[@+pd" 퍗 ʍKcb1 HP a * );CdA ? ,%&}qRJ*Bb!Dx$kHC22ƛ4=gy:^H2[6mm@=!hT%`0^lT D9PV \F_D""| N-A.ok@JaH΂4kly3c FSM 6zqcwⅈP%HK]0Dmh nPJt\*&9\$0@[`9Dlƃ7)(syJ&͍[jݟ ETBDDN&–NrvSWlf_>re@F(H]o9QVg E@u>,nRFCt=qfRu:D֘ RJ'$nyjUfm=`;;f'mXP0 L!JpB%XyfEJhO @V SHy>tVxBTZNl4DwOnWG$qHKͿwNTPmzH w6ݾ \%6Yb:o5֧*2SyU_[CDvuL8-MN~ riTZQԮ=Æ{ \f!`q~_'|| rR?`&p/F[z]?:WxC ZYmz _^\,<+ e"4{Nԗ;@|.è 짓5` q D~zfg^N42Pnr|尤 Ȣ R#>sҍB.v,q}eO_kkke&iQ-C+Q>UCp}%,,aOggS@J﹦0:)0#" # )$'!"!!!'&& !#&'$lRDaՎ@P|ZySlυ6V`.J"ij2 "@JN+8}EL٣1ޢ?nѬN/! )}K!G1*jlCh'cU\ת0Jp) t?OM^<cC Ai ΟMJ|q\ /H" 2Dt&cg[6h|Nۈ7F9`Prv]2RʂAp"ɚFY)9 ၮH2+>9^5&}oǎU F=*[ . *D13^)[.S+BZ'!y Nfc%m ,PI]! *epRmbeaYM t axƸ"D3kN0 ϒ5,hۉ6b#9@Si|Zb3w驖f*-[^/xQAa:0P4)U WCi B$7 PCqʅ!>ˇxB\ұ[^W-i~Qn D>Kv#mk:^+Y fa/%N 7D$y-Ok0]-p҇$ ('\YpC?Z V@\eUDNjޜ6(6T,O Nw*Bŏj=sVBqrb&B!!P&A xfl>튂Q?EAq$ȶMP$1LvbmW t pPh6GC"I2$QhJ+aR4Ÿl]yC+º/S *6)y)hv9.1qT(^>I6VD]Zu_K dKM-X#~gps Ȭ\I@9p"XDnU/uRr UUm4*= q4`ϗH-I~Ò/yFZDY<>uUTҠ`0E3cPDYLD! q}k+$WmZM2$-F(ID}f/r&:8p;M~'Yۜ4̇%\ǎfvdalxLԌ[laN` kP z$V`9Ym2y<:܉bd&"|NMC#`u@>?%ʄ<#˟~JNgO:L:u=lo~!*|gޟ5$7&?w5IA6OGU ~]B,xrE~2o@9{<.!XF?#NXv6-2(#l?;.{g^=ד$N>06,'8;/btNqW;4 /_=Ah˜2Vx#t+L205A~<]WQ) JeHHG\괮KBI;.b+F!@ iWHG'>~1ҝyxpޓ7FtHbV8sL6˥7r8iޔ^WCvvqCCsMV,oJ? Vq1e< .nk:|Ń(T^ f1A_;g5t\/ú'LSV)xQO67^D7N̏^wۇ `Wp2%ҹs0YLpUKuQi7nZ\X7!{4DT]1P+DJƧ2i5TM2(VePq節+GBңxOvg6@~e Oé2Bf5I)61DǷeP΄1(ƞ-Di59ȕPr=$"A'u H8Dvy#XʖKK*R(D69g3n cu>ʷg=AEO-ĘR}hՎ!hq!5K@ ՀGN))00, $,A `Q#R;*,DW!(ov0U6k%*j*Lzb3=x0_^%}wͅ kET]N(+t[bw ]&ҞY)ZW*<*o}4%ɹbJn,KYKsbE <H2;^,i~xinS筄4U+6V,OJբ0ڠunBN( 7{r=]¤F>{nǴ7o KբIJWOȑD-ʺ!gߕnцZ:bFLyIۍh J, HuPKa ތ^K~,كREd309j(|L\4Kv0ڶvo7 @K,9{!`\((oiDbg0~{0`gB-4J\˅l>F 2/oy[e6(AW7(QL ,D2v=B]M_!tuPHGPRjpVS xk6#Z9t H\\;ѭЌ$?#}qp0{qN::+$^[ B̓`DpJDw%u5_Yvs\UqwI*"`[VQ| OSu҄A| FpULW!`tĤߝ$;[5Zޘ5DLYn{xӠ1kZq~R*TYH~9LZcpw¥LYHi:5ɶvs"V LUWEUO j_cРgY':k)ŎDW='kq^s| i#4c7:}idY)Kv囧l`"ͤDrS\io=d](ZEW//=u0=;֪ܕJv%6cķB<}qr26<gϒ޾ oNY&PM5`Mힸh% ;r;N59pr);MvW1HJZw7Vyc$4Zr1\4Iz9"^S-DI<P9q(+3.H_Y Fٳ_;rCt2 J370@(U%#*8Bp| d*U1l^= EG_6xang-y9*fD*DZ^ɞ{QӾk!BRWqKo5m@'%G| T@< Z3{VN[KB"7b$֥o(ܰ,DQR`?Z<Nϟ[\R54')LՎO.nuL͂2 9@+J=a, w2=??M.EӃFXNY cƤM~p} :}dva\h/k[>s$ud]@Rrony")I"M $KhݲTzI>QJ|,(5 ,ѱgILʀ"Ɨ`nz)aZDf,׋áUacQ>F`fYŷs]~e*8`x~wXNH\JҫN HDS95w űQC\א"Q6ujn #G,M0\<7=Fx7>JBB MϱB:j녁]Dsn^gjo) mDrʵȪgrk6][$@΁H(ݤ \bR')J9Y e1 K|^d`|K1cvzFLPu4H%ټol챁cpx汩?@rr&uG²pG,rS!r B)rMJ\NFVx<>D!iE R#i"((3}bo|p/PLH5{,SdW-7oF `T<2BEF Ep/ְ lB W $ %aT/ fXVI.DW)+:on8cTF*59nLdyZV10T[+I7/AY?nA*͝] LDȪa=_XH1&-SMM6ί7^L׺S=e?_:= )Z-S q&I,S գyzv>@.sUME7y/:7\_\ mߵun.btY + L_LJ/6x@7|qf*UrJa)㮒JX˦/w|~nZ5J?f.i9G_ ,{&nhZ2z'X9Vdm_C%ʐ&I?#϶w}M_3KJdG_'kJk;ȹ#ö~eRC JuP}[sФ^ZRV߾zx ϣ(i>|m:.Rv&7(š]04802GXzpv32GSoę^Gj5%*vV5d{PuHĔ/J&CuYi&IEđ o9}̞p[Xcn*~%uj~5kռjׄhGXxOn`Ϊ,jzӹa'f>iDKkBXƲFkgza38a'q8rl6^F!M,GYrgRI2J)gșß unwYYkP:5-}QPJs9SJ)gx{2v~٥ @ Evj`ehhyt⊱D~?CpĿ)hi"ճz_j_뵏gD鎳83ۧYzZYr$t]gĞ Qᄗ E8-su Zq] [#9FQjtK+1 sbݲ+tbD$Ȩoj׳i 舗Y0OLW矪Hz^j>gJfv>5\P 0EEǠ@LxVX¸4x'?}u1j:NΔsn<[|S480=@Gq܄vS)mir Lݖl< ; {_esVNT6Ѷv;phyTD}Lߐ7ۅЊdVe>~"NK4$Db^A xNEdƴK,S$R /l0q{L2dZqdu)-u#L]tS.rn^3UgQӹLo2o?;ݐ*=Vo~\H&^$>}! ޳N>@];as-\/En΢YֻkقhhZH}İˎu3UȎIv 9yS=>19wnzs?u_L>IvtG|WCꧻCBQ/Ҝg*-),f 5b>} nШLvQU#ND8TcvMd]=%o30oP鰈|aݠyl~DT@.^>e4W>ѻ2Rn*ND`F֊`ųp-.#&Y)sչ*1IIvt/z6{GMl]S$Pu(# wvvl*i`q DRv3 :K cC@tYfK`Y,RJu[2y^= `93N8pjЖQO'o~l3/-G}FtADn#9ohP6lXǷc9r}58}p6ϲ;R6R*:}_=Mi2`hE^VVD`!^ {-MUBXmтjZZ׽wf >D""U^ `˜ lIe]}U(Mziܛ3 ~4ndldh̳_>yմm*M\kNQ2Xn0^^*  wL3 ̓߰SARPK_AH%rz$P1-"gq>#(}c>KO:koxz_{vC7W!svsӻ^T&uKIso]WcڟYnR ;dR>nx, )%R.˹@VCTS?&z+nGM/FPT!,>?v n>4i>C뿫SpJ5 Xar *hexu,6\Q$z B> 6}@-@ 8 j0uugpKAdˣ3ى8W@  5qk˽ 88)4m¦rVvck>BSJfs1qХZd,3>^WDI,#P-Ez@R{x#)M¥V0Ə]pTVe'/yh $iʘ Ng_IQ9A\;"k a)+*炭:ΰ~UҠ/[FC0nxY^b61L?6vwL=ɒYQgO}^Dr Fw׾Ԥ[;"utqÝǵ"$)'.a S$է,UD *ynsw.옊txS%cdLY ahu[bi_5(T4WIfO9E ` CK DX1xpVt)p1ܝU\T[Te;Ғ&5l]qD <[ 8jNء\B&{D[ihȦTp\]Ϻ~ߔ՗~߼#oa#D]-${$₃Ikk :f.2&0ZHF1D(css8p)yh$y|jtNTdE%5__H2@iGJF.-ME*5)^];Bn?dǿ9ޛGz`3l#ϊ!=\T~_iMh,hU$6Ƨ >rāz3&j3Զ6y v `K&p0h jV +7ȀN2xn"OggSl﹦0=fȋ+!" &$%"""""&&$-1:Kf [[ܮus: DBZM!(I"5ܤS!,uRLoҒ%S PDFpD]^t## `. 3 ? ƠTmpuLJzısM G #;c+-6D:p#4B(d RF4=1Me۝1ѭ!DhQDW^X d@zo~D>6]'E`u~ Ls ;7ѭ6<]PG @֬5X2$đHA$G0R{&5ݹziF (@o ` R0h_<~V J@r\7JcvS2@t# H2ljb|-6щe#/$Gpۇ]yhU4Bx=F`_`tNuAkEe@ >*(Vެn诠N_s#>PkuL&MHImLшE?^<#=Dt9M2;u8,E@ k,À U OFd@Ї{"J9&Jv9+~)YG2>bEȡƹ 2$A R$ڵ&P#;e2!vt.g&o?H Pry8㸚5@q DnF~_$ 9rt{Lv\gک-i|m_bߡ'#*rL?ʌR$V,֬@20 2 "ETߴo^[RՃ~l5asG;: @ zu`nbgV$9P{\DUQ@ez4纷$ZbM!$: TWh |@078HZMV D[- Xxe%TLmR*,OUY\  7^֘M-\[pjO"0 =ws޷$c]^.V Ta<ؾ_:MO;k$%'Z+[1(@ |cV" _EuѸKKF-/`J'iK:Yĥk{a6 8>m Q²mV3{` ͌5JpNe/GvAɺ^|;דn꫟Zk:8u= 6rֻ,+"";cNrrޜNm""߳:e#~e)"E? ,LwaQ.&o׶f_{5d<{5I´`0Ur2)А* @\O1,;͍v9Dn) TCŵlnlIcsJB|t\8 J&eĄXG31)Lu;31~B:.SHA@az|` $&ռJ7(*)Ѣ?@rč(~Ln₟V)1B[p!~7,0&€5 R$]aÙ<Ȗ>"Z hrB|kZMJ БRZG.nV?D Eɓa@qa~Kֺs0֚5t Fc9Sk@8HNK)T.ӛb-k\Q :UteLw`QTF*lzA 4.1z ƨ̀zaHkN#hcyLQIUԺ'`H_YWV4̕O8&>">4t~391Χw礥iA[ ].D d$bg 27Zp $JeTW bYv F>;vi7Tl͚=*86%)e;-`#0mCBФ^'Һ6pi1 (F`V@1"R@KS eFUPzEd''WfztH&(^]9A- *v%h\VDF&H/u@wV0XP/A2QD@n ?X8rYAoqOsyA-rM %uPjqX$=*uģ v^ !BD+(C΃bcR@@8t$p tdHf!/>[WZ뚿T22 2lySAѯ}sPڞ|&21W+_YH A_Vaꒀ1@X@lMA2 7%/ G5WTr/]Q+ѵ;S|TQ4j̧n #LS|i M1SבxkNrE)SJ[DQΨ ;U~1 ^|=8]?8LfOZ0`G? @W0K*D R ҟpe.EbNEviʄx| 󲙱dx6+zhy:.Epz2TI.~5=e\@!)՚D?ŕ]{~2 B FD"6S[~-.Q YFJ\]>%Bl.1h@lѸ)'<[m$ɬc WfQLs߷sSǹھK{,]O>ߟ&fJ%=^⸊9+p 5 @.@Gc&N*OPƏ;MjYbB-D,&8qtW0E}\&beqmԱ|;ʋGi= 5aePYr"QhXĖTsV"5 I@8>@!pA=RJHTsiL̹Y.<-0 Q:FI m`cfPL~XPBg5x _BO\HPt)E&&x A ޫW[Eu& n B/}I| Fn;oS)"D+̷5lwbB>% ?nmkN mEr,A3 ."*mQI&f,$khq|"> K_~'d|_%_vLftwTD(tz''Nja>{òk}upsq=|4눌?V*Gq.Ѥv-T68@:uK$>\ 7>aA -R;уT~eI5@mn1@EVPTdAijceYW ;Y[ɡˣۑ\U,ȧ. 4ҫ@ȸ)i~@=~VܺKaD @pQ%xy oVs~bVfQ!9ًZ˗Xp6U$ tn=tg[[xx  |y!@RNp%;_t?bC(H't A Ԉ qOggS@﹦0>RԠ2""!"" )%( !"!!(( !!$")&~~x|~DقO@`:8+HGƍʹBHy"Xc]T׉*4ji9_J# Kic4Tj+4oܜןw7+eJ1BL-⟻sI =5ۘ"\[3+ގLpt#?)'}ql \_f )Uz`M+oB&vP9es+IӓxUW6Y'yOdFg [`Jᨊ(O#ъ I/yg45[ U?FKs͛(:x:tJ @{7\.b_ňjD(:#U? {uN`|NŁ;^ go>{Qj|Ă.W`C-99߻X$gbs1Lxj&nà1^~Pq)hP7%‚qM-& X&X7D*!zbEhBP\.OХ <%t7@קHNw0.w\]5.U0_絝p>4_Y(;|S^剋V|fsBz&ikі`cmRY>?,'rfqD=JIMQhIE(}2%ǖ=7e)U% Qͮ3@u`$B(HG'&BTH\#dF`>lf)P7v,NӭJ#0E0FND7m4Ne'.hwgr GP_QRal" 5%@ɇ#5%_xU?sI5 …{ׂ 2QE]V,1KR UuN.h_ _/3dlt?5ن?8@ށ7 _ FXJI҂0=s (ue%_;KTG]<~rP}Q}9AK}'WK*f}J`6kE8Xeiz) ph=1 YWl'[,)bEd׼XsGfNpCFThDSc) 9wNef01XDYJ. E6$_y-ˇIބ7rf$TYd:WvX6~+vB4qT[d+Sԗq+tp\( ;P"4,Qj=L=q´{8*# #DDUtMѧw=fK{i*oH K4WtE]hzvFiwмi#]+k달LuUC^(k^2{`8-|Z͹ڪw m( Z]d޾EgȵYs|q.{kqܙt:L}~H @rAXnPp $`GghZ #^mG DAsou: DHDHı;9'v_7b߁l]O5X/E@`+0\tk KhII ЄѐEy?! (m>y bXPI$BDhȕS57@%@~&bŷ6p{ZF1R#ME>p 0M"EHMy~!S.`6; _}ptb A%BD7TB!v>DD}Gq\ 6ALB<~L8: .BBIiHǶ&i;1XrĶqha5:2.H&J"NqTjyB?fȂ YT,7 "i$2u{g뎧 hwA4'H)"T݅b7r&vOF֢hÏn/Ci0PpH@#L<@\n!Xuɑ $`Vl62haOSAoN1 i.(9e4ItѸ&3M#wY8O^5|I`5\@ #_,ė pH~Lfb-*<6S]agjssae$P0!RFaDۯӘarKVq72Z<^t <&%$If:tFZt@!f@A{MB(d'h޹_Έ6q+x:(E(H#MDinL?Mٝ'l܏ncn@҇#U0I;1b,\ҀͯX.NaU8UXA^Lf#6~S buG+s:T1g4DDo.tFM;1;kƀƅXyUaSÇB@&SK ^O1@##J#:4bdG;&YEX$aV m=jJP!MD!3Mo@c1Ê]4˵f$OoȮUi(@< X?:,EY74DT 屃2@k gqC'@4J8DX3Ap@e.Hd @EjJ+*J#BA@"Uhb4/Q?h`X\C&YA@hgx30eN\k}w VXW] qk~aTl@O!(S.0RE)|"8r"?~Z\ ~pԨ7*7TRRD1M)iY_=Hp>h q&^ZĶBjʰoT\BXE9 Z9$HXc# NژS%QkS r5%d"Iq2O "r7/6>cIü -ںԀ^vbGX%,e oӨ h) tiͮ)yĸpաp:.n!A )狛1۽|:qX/)4Re&% ]WB;6Quk+v‡x,DROggS@J﹦0?a$|$'" !$#&$ެNݡ~ msUC-.[*\@!kyR?=ωM'ӭ0cS|~V@A[dhU(N>B !@ NS?Z|[>/Q5SYX2!0QADL%򄇈eZcwcb|]yq sjQ$(8"%"BDFnl#?7Gyo&rY9=-u8˥v.`$j@ O6nhrkF Џʑ ~T]e\s`AFRi$n摤6D_ .14x@ $3a+6p'B۴:;楤~WQZ&@O&ɍ>[w#Et8$exH)!#=cJݶ>xҕFhA=C9d 4d@ *p=O8XDZ:$)ϜiD8a$,3yC r})~|6Q1^qE Iz- 'īzf'5xf,WL?;] g46NZTz 09tpkw Bp@ 8LY92ĸ \ԅ8 hB ր<&>%LdP^4цb'yO1#LHoc?/WCjΉoDf`Y 'r| Mvc֊ /W!6G$ڿU t ѩ)µq?oq}ף譞a/+ %  J$5]1Y*ûf`*ZNph < -@ִܪ l B&r.sp,%e}|DUzC*q@pjȳ;KuX bFP |-rTHTb9n(:AnY*ѣT{W(tN0,0KjAiVcwy>y36&]a_8sLiFh?N ߁Z  ((0.& `c &`@M5 r PPە^FF ̴Fs j$MKIb]IgΖ2ϖe`fl9=8e.noUHoXa@- IfL)*s EG(6\ijQo> Í+QqDw>>"@K \(XXNĪ?GZ*zҞlZ3IgߪH"T 8^lHR 7ȀNhJ4)@T2%n=a|wdV;nޘv{4n|G mí?w)N+.DC,k5@Kv\e4ke@m '\9@%(\I.!H/?Q.nlJ(0MDR f?UZ"t}If*}q2t阋^eMF ǥvfq\%W1V̅8@%~:U0L6 bu#Eba7EVf~ׂ]y<({+h/g==vzӱ?KT UU[x&rRj_RDȦܧC 7Yl,m 4W8S9G !}L8bbGQ!*2E;$ ,Y-L6ECpY}/G/as! !X)K$TCLz:_&0\}3/j;}k}%@H7Z^. 8z0YS~%PM D0Չ .'"pg~VG|*oK*rb[7J&L*HDIclJ˭da,عuG W9]( 8ghm VD%`(րIRSL~MC[mݧܔ >H87Nih LD$H$H-y1-$08a{N ow? X\,̖Rh-ElYuTLx _/FHRM )֞.u#VWc<nHnݚk   )贻NK[ }P@ #wgoNv<R5F(dȢ<`  NERG~S3$ݯԚKVR"IDD$nTiix\L")wh8~5]Xp*my$5@bU  ezi@2Ҿ0Z Yv=@^NN]u@$4*M2uРNh:|4ߋG} VukP 4e ILt7߮|*scXygnωOWm}WrUjfYHwÊiAF-4=('$J.Vڼ򦳙r/?F.6&7<,Hes# \}]PbY) " nj{XV 3tYe՟!wV!y]7?Z`V𜚜(SJJ%rCq370uތр`l|4%1<8"M36G h%v4~^vvdD$q0FxVgXMƱ?v6~kMǺMV8Ʋֲ}לxs ǵ=e$,vs#G,Υ"(/DY^ށ՛ށn/-K/x°ηk$7K8^Ow"x1(sKWWwu/PAg:V wP83cR?)nl}+8moT-ӏӮS/KzˤY"٣{dX(Bݕ t\i *OggS﹦0@մ+'$!"!!" &'%y!!!!"%% f^bҚNf03$)bٳ?.MivfL$ט7 [W 4׸Y~ A` j _7~ӳ{Qz/Ðakae[RVLh܄7\S 2E[LDK{ACvj J&L DPeZ|ɝTVt1Q"fٺ(zڢsW|QQELY K(OTa5'zM[iks2V%j o l|=/(w8s\e1 B2޼n,BM^uzu #$w@ U\ lG!1%܂Vw5iZ1UE1T 0([u.hIu!2\: |nA(e\"aH YN@ Jl@)BhEq$;Pg =@FcVKv5 |7+1.+fZ H(5i_<*vAa*yCDBjYj-N^=Z_qsçvcsoD.P?1Au <'P })PQ/e$I2X.]jG}7VtLYm>')݄uƛGM\^J#~Ө*=UG-g>79UBDmL!ks]ODwcI#!̖Яmܟ.{MF p&D r_ũcl`B谛_Lc7|:d$!} Bj0/ЬÕTa ^k 0 EH_l0u+}O>?ZFG}o W5oMoÔ/ŕoztgv@4m\ȶuJIĢ@L۵K`vAy!C\(HUcJUjASbt;>bvZ@ f1ġVv `N0W&7ɔGst4M8̺\C*:`<Zs)a\u=vy9siN8ˎn도[?!mz >7 5/ 5B B"E Bb0ƫ3"j4}Q5S?'9Oj4 &s>2e+O?FX!W@ĝ8 eO#:Tps09JI;r8$Q(a5p- (ň>l/ih{gnjM"\p S kxն5_a  T")Vp/#cCxǕ 0&˖r'xg>}hM+{X\=#$1Μ,ygWf~ZEwzY,K-GӆMM ;:.Ϯ:ֱ5nG(`0.#^ IP$mGAl-DO!bThx.[k>|}:$bTSan^+M5sY-C$W. | 7@<hciO 1%˓q^ܙ8|3ϟpm_d.?*IYjm#섢f(d}[ꝗ o /V?~:-SR6cE 4cUCk%)¤$>XQx| . HS[>_$& xf~I1ꮑ/Wnn'Q)\qgm!K%.g٠Hj n/ | Hj{ z0,[.ƁqÎ1:,kv<$u.OJ3,)[_ Sߛ iWasz IU.ĕM9S%Z:, #?+Wk-*TրyH=أ<@g7R^.;[ <V\tJD4u 5Cńܽgɴ4zʝ^QW$ZHeFoEt 8tŒRF3j +\JF*I6QB#IXgb(Y~~+vE5ƭb Ͷ#M?v &Sx[Z}h ('}U,:u7 4!1! #VѢ+H >*[;vztgt֬bMEN?[\)щ(}"S'vso6e詞+o;)@Vp< ;QJA\#Q nŷä*&]+7@c`F*DźL u'$-,s\qn*ܽ]#h֕/YXQJe"3h'd:oԺwsNFnwB:ҙgpwW1" /πel16L܄OpH+rQ-íӡ}M zDykW|~V; 91yXJ:}"|b_U0J.G#L(wGr@HuQǒ>7UI/iX\(XW)酭H},UppGpr vR. ]LjS=6U?%*:e4m=ǖ]C﯋Cw1Mlz_8T$S5j-.U)"d~*yɸᗦ]uh-?|HlNBN·. &]U'z$7GLwG =Uc_^;9sQ@K/ o8=XT ^o*Z8-6#':)LBWo?ćked^< # q9j<4(+ؕ#!FhVQUr q:JNDcfIÂmtx};5OJFYsCԅ i|*x$K  C QY^uUPTrR$O <>s]P'+\7rkCԿɮqʀ> wPB4__S`6nlvv|Jm7WܲP(ʀ2Q11) >+ E]>,6}{,2|PUP`7QeU:l86ёۖZI*?u\(^9:p˙mb_|= !rh7_t#n @aSz+aTXUgo@+N s$Mե Z \I`H kW,N-mnqx3M9m+O2M`{W7Oџ;q#BȄ{r()dGqF~ d%"\#,rg!j0zMZ0! (a 2"d^ V MΜ 򽂣xiM`=?yamU>MF uE%Di}. Ǖ*|ߛ;a ܰHH'7[@n6lia‹&A"g8ҽvw$U.C!B^TUT *7Z/Cu%V>DQ})GR?`]NmcG2EDWvYʘӟx $-WtAY#X2\LUt YHl,t]3jȇ$DDΧ:"iq>V5{.ܗ%+\>)!oy~XjS/< |~ÓȺTYNPhZZ+=x2w^ZHZ_lX~M;ՆLWBUi9\C~*y2:&O7>: fNsyh>ad$hW[3_C./ʪVx9&U9ϼ5'S=?.a*x[C ZӀz\E% AF(ݟ8L隥s{~nlvj˚:ZlۉΣRԘr~6^Ռ4f. ƀ煁]ljWͳaLa6wD 31_w;Qt/9JM^x*([<$pN6& trshO~:=tQ80T{NR 0 ھPҩNr4bLwOӝGI>Ա6tzuFC\'Re>O[neC)? >W%MT]a~Z .ҍ>f4]t M1 &6&Wc4Z3c?ucaFt'!CrhKrt T]eǣ keZJiؾ=r,5*{un*t~u= g%a<(7*\Z?}ل"=kL X`%7*l(yD0pefHcQ{o L"Hx=*2W DD}3X" z TTP1dBٛ<\cEDdSR T+!O;P5ϖ4gj Y{$&l oof{L m`* y uIڸI 4iN#Y*GcD|X֤4 opo p,PV ^S.m0LlRV9$k>19a%Xpbqi9h> 6 GЅۍͧ.,@0/ K2eG+ ,:baL2?qFθl|7`O/λGevQMD+ ])̉Q)$p50l*SkcPS՚nx+V#=u ;뺑+R` +Af~E'~Z5&F-o2IId7eKSGљ{tKf%q1:jfjJsc%EB!.n2X]F^54R29I:jPB )ńvu]QʓPEQ  "bt$$Pe5&Lq$מ%8'!nAF~8UG|WRYدC[$(PS?2ۅ) X Xq;E`9l`EGE5Jޤ^ 6 Cc[a (#eyYW]l V5,FMZOh8i^{__m/\& Zi;nT#Tw0Q+@?LCjau{ IJ4 "$ ,!U/c)HW/Rb(j-&87)CUkO65⋆9qlB6CRu*øXE,RW\/5K" 5 K +Ry2@z' ȓ+ $ ^3_ @2rEZ@Cda l1{t24*Lx0M[[Ġa]+$@ [Fb )\Q"kؒʊp@ D]Ba!BX)@ _{J+ 0/B r,.FK|r W9nbC:e5[,/>m**sg Y;CA(q E,bMYK"z- I\^4DV#[]z`/j)OggS@﹦0B~&#"#!"#&%%~x~(&|n`$pSZB+vu.B G$ <m ݦqKF'̒"@*.¹Q*I'5> B9HiB@F`+_5@܅o l!FXZ_ĚA5$HD|>j2kcфM~Vq$`.) rD:x\r*bdZ84/T D @XG6V ,: %\P P@sG~ {zHe5Mt]GP.7VOD^C{͠kèM CDyO<]QKSg˞\6MMcpkx~so?UF .R2H *-~V5h6-sT 2^ >__Yք R!T]Nm|Cq(ҸpdRrlll{\[pFYEt`W1ZLU*7M/q5L4uZhP TU¨ 80C[~v=ޓH5k#N.TDSf Ao~KN-R;f@&u(*[*T[6( v?XS/[')*Ť\TW6, ԕdL0ݮ}]}T9#d7Sr[wݺ9!:w^j=P# !9/Y,,XӸh  3:s\ѧ#!Q3uK/Wupʿ-ĵd9d3OZ7Ҧ߼ A.rT ?C@jրшb)X AגCEHXRC#^(8?G`SٌQ#v'O{,"c !pfcI?)c<ߜ8)=o}1i>:8{CTfFnqaԈV5X?AnpB}QފH*x9[Paۻ1dy*(v;6>mt_b9,4S_&BBs)T3- CZ?j|6XnGtw9)5:ܜ 2e]yB"HD[+ > 8 rO˱E02[1?J S"$w}()^ H(k1qHR#C*KfC+d.YR8(,JڨrFW0@glaB ti ~CU#=22=t"Ώ2:ٹd#Nl;{&s84ÅyDV)#a5Jvrgr0JTKZ(iWS [Cl޹9V= Q3=,A*Q-| t ^i]',naszɢ4gWiGt^ S~:3Y/O^vwO^oU'kb`PῘ5!@C4F=+l.E0I eX=>~Gev*eAe2/2̊ Ɔ]t.?莒;sOx2]ݺ7_~GesΧղykTS,ύbt0g') z55L`FynXuVU= J؋n ,N.StTNoT$[&\N2܅q~z&=3 FR}RŰMph[w;_nS֛XXl̈́LieӪkudQ1jkn;R9]vCPswkqG0:nNIJK@&߭5: .jzNΧ|ЛeziOѥٖP2'҄&nFܓ1x[N94P&ec V~_Ltß}pɀb –D^|5A"^#L`$wPM/?=M ec{#YI=t<]4]ԤqS)KPETV.KCJX$E\ZJ%H A P X\d^A߲`LvRCP/W,ń~H.RQ:2ueY "H RrQ U #hcɻ529'3Fi7cz G ^.*Q~!HA}a>0Y6萴ȶIk3:*q #JiR^pk*DI1БXQ*wo,%b^4`[]T iVD.$Waq~Y1 nm syN' vX0h9A:e.ϚzEF}ŸrF5Ppq!"&"~5A¥~Kd0?qIDSz}R@d4[yYڗ x!$/1e j)b Իr[cڣG WjWq8B1S&$-Q lY{)ip,je:nШ.v(E(r1Z.^822qz=Y{;/JO@px€ǴkQv\D,7 %QQYQ,v(,{Ն*@>/uO)5E,( ;׋bץ~$5gfp2ݗYM;MmIx*E*@8&_PV*?7>(RTvUѲDe*}ܨ1ီhX{}=$'i QR .$HDxw:x{'KBn\5vit"*.H V(ȵ1*ɹ:vjLሏ MK 4R !;)h؀/? {bpSn iLf&[ew:(iVE h`,`,5-%1{aK,$.H;` \FA>MܕX0(MP M@I ňH8` +DfXLd4|1GhV%`ʑ<SPa:B.@q@P!GOggS@﹦0C0.xuyy! !!!!&%#%"#)$&"! #!"$KBQJ(^REvWBNXP1"F3L`avqK)1d*hcaB::t.JF9A  0+BXD&~L.2RBl`ȩ=.' ǻW@YLb1nTc$,) }'}9.|S#X ^Zh[0,*%}Y D׽Š`1ȁ$~{1?h9ZqbxSηveb^K$̥9wk4:5o9UD1`1 ljj7چaWV( 1lnC?#J)~i=8sڙ 7"i ؾ]l u$QíQit֌a~BƀNkP7 H.wL!$pAB0ԕ `\>"J-U/k, 9N[ڠ N125fnTS<|$R;=.hAGW<  ( }(V)datPI" ]KNЬЉC@W (ݲ22v"֏Rh]5`Hhwi6֮TZ?|XsB ] LtBx 1\ t2X PHvLQꉋi'y߿b85iE LW$є96ypif-[ǘDQ\IژcriK|ڮOI22 DS3E4_><8gŵReWZi EI>K-#i?!ON" (6AB Υ3OaW3poÇX_lY̒SwE4r!ZO΋i9K@nC!'7j 8Hn~^B!{VWPB\,)sG_w~-F~eS]}\3[Z'Eb9V +'t޸b9Xl+cOMgla^7%,v%jVl̎guuU_嗟Fl?f^j(WJUibN;lDDcp+7!-c(>&iˌQLTP\*  p/HW(<){`*V݀Qۭ!`ͪdI]u,"bҧ=)\PD(0}P;ɧv WXBs@Jo 2X@ƨ7^nEl@!܃!BWWq >f "#GǂcvJbLص.XD'RJcIhH5v%t*HpPrx>%(!{9W5Lť, م)#7r7 TDW'+ ]Ђ)e1o)_^ʼ{NGKZm; 3n;Ix\D(#@ LS`G=#iSE=ؓ2\HbDSaS^.`xGFH;wKf *4MeDxڰl81{vI&!"LQ*|dBEh1LWg*5ZQ,dy9JXqSHjZmF:F N o6v"ߧoji}Fǡ "V͹ҿ9Xn̝?]z6589_hWFzȓ#l.h~ ]7sdmKhoŤ]٦5ˡsnԖFPl;[1vA7_?ζJK@7(eѦDi}E}Qp9-JqyW7O1ս1h-i`^JErH-9Y_m 6YbܶQGXgh&>ٗnR\%{{kIdS /̤(x;j|SSsoB!YhIg?qcg}eޑ[eb*yXqڿ/IXˠ,n% %gTF5k\HZ},p]N7cqs6ILwV[Ħ8k8‡!RI-aw7 zqTKC9Lz~,Qߦcy)n)nY%{ z 7'ѹT-ޙ%T1<՞h kq8ZK8zF=cU%|\j0֑}üd[BH^vdHbY/A,\3ZÞ%m/87L{+Ҝrde٘ZcM ޼To%<>ச%(՗^1FeMVc<;P]c=:p[B<޺ ^cDPHAP`4ϖc4aBmJ PlwVMY^5TuMdž* 01ePΙ vJ*$]PK,19C[6Q?Tba]leWB?@2}f ="?6\ظ؏Hz h 9?]l|i! ȑ Mxu^EYlV>::zqj2, ǪV@hEP o!>/9zg3.8\V"VRJ}VkH6=9 |-ZT"ȍ;s砼5xcA1(J!c7Қ_.>\wH`1=}PqWD;UZ<X*OggSZ﹦0D#N>G4" % "#(%'~zyz! %#(wvrv|~y $"!")$'!!V .]kH<Ɔ5l-Uf?~:h=c ;۩ѽJqY;8ZN{v{.4d 6ʡgFnDAIa$ݓҸS.1yLY%C]=gNALL*{xfN?-br+JXXm, mPAKbBS5m YT]Xw5z% ʔNR%yQ/3}]b3y'^l-"'jU & /**c%(P0@t#p͈H((#|!=,.   L!ԖYV]1 M&f Xh@ l( 3xbrY2HHȅ.nD$DVA |nAK" 紏Q؊?]7VP-t#wsz\Ft4l6lu'[*+\@SHMt;J``ob | ؂;EVdEDDD|fxHM#,I"M29h:D, 3,w&/G?ܟ,$Ϭ1JG~vBbIZ)`9| $h4Y$QZ1p3^LNQ  /AC4V!Dw:$70rY.S<:j_#t6v엋ÀH!?6& G"RLK=cˋFȡd JTVx` n1r (?b1@7L62@i;Xm""Yfl >Є7q֐3i*# AY̯P@D$JTeČݠgrD\\{#.arVC GUXT鿨8UV@eC">v%/z!s RJ\PTbX q;%c`|Z:n@= @ŀ`  (HX. $;D2'G)/R Z/K]Pߓ;1%VoAW sZ8Э Ct>e@s_@o "ZBQP+)RF?dtKZh(ZW &][Aт2MI bu>Km'Rb1Ϲ3\:^]%ood1: el | pQ O\|" 7p (HLYg o^=Z*1WSILYaA5Ss"ߥb' 3B, LU 6Oʽ,mb{y5bHRDQQT1P~r~⣤1U[dP"b\UUB*+$qdbH\YuZBaDxd-R`u `7@x6y ;N&^|%$   +"+f$2Schet䴈4zE ( PX 0V'B:$rn~lN%I)NQB6 [jPu4IB FD&ٸSlճ"/Ďۈ7$tz@U0x [)~L"x1bV d^lɁb= f4 +~N;, 2EĈHDFde_"v"%:k}XyFP}K}X `,%>R\҉1čVO)F `sL@*iDBiN޴FGJl9w=8Kemf|"MJ@s@B70`ZI $qqeEZ9fl/=fcpe?GTtJK ,c/X슚*=`jE2Z4+0%E@ۨp3п PzPXڔW2 "iH~H \!iEh81Fdq-*y,ԀI~y'Js b [)ӓ+`> YV{$%&;Z nIR~'Oڑ<J  #;[f-A_՜&%}8X?STbM7 '!*QB7B-H,`PтiP@ 4YӖN0ɇi/?G 7WWLK%w?*>X(Q]! ط%7n|~Nƀ;^ :'+JQ~Jw^a+M$A g 7lh}eh. ! *ψ( =! \,BjLˣ\X\n + DKNZ e$bόYLt@w"f9QAD2uv Ks]^Vvw CA#Z@9a0@KIY )I)Z޳c Od`%*E(_JvS L\ޮRYH,h=ܾxU88l&HDT5֒Ŭ9ķ|7YW0nr8[.u~u@r-<_B1YG >`EXOhEZTY+Lc}E ʕQ*qYTY+('/9Xx V'V4jOggS@﹦0E{7+!!'(%} !%%'|{%'}DWfYBYGW查︒(DY- oĻ/Y<سӬC*Ϋk L[8,-%>8j%Yԯ^@ލ?1Z b؏9u0"DJq0Iqob>nqÞ<hIu,P"YXi`oMi^F 2PɊ("Ё `H3\(|>p, y6LY ]E".+# [H$"@PX>f.̼tRF';΢mR+]Ureq,@W `Qj00>,@BK.R 5&mm9 IFx.dlQIv8(=n'" "M,S5~bw"""y[@"+. `< `6@KʑY]$KLWjáǭWrN/waLȯDVLShGD~yV~ռ(9 b -ILWbS?4r`?8F;=qHDTyTU!7WG wO}b ɚYs㣔pLS"ו fjmO EʉAO &mS%r kK 'mZoŦ?ܸ3r)ΔR Q_U9bej fFcNRHDHT4L|E c%ɟt>si&:[A$p5PS:ݐ4\@`:m44+,ynjqCjkB ǒjPc&rtn:2 -Ǣ0aNwLۘ7Uwxfɘۥ~Ej6u5҂tEc</}1hb46ϧ'  xwÒSws#w (iX'xF2XȸnQ뱺,mIJM@R,mCCMLPA}%Qs2n[㍲"p4K>lEBC40$P@PK2066~7/z-Gy#"ʾk6 g;].?i(@lbЈI2r:_szun|ًF MocNwVE%^)vh*jPZ >˥txTPBPJ-^fkS&-Ƥ`۞zH`zVXm'XRRiLSo Y;NOI$~S'u*uv%ņ7а:QC}-vW.2GTpC6 ^ ,9k$p%΅)% y_ ٹ#$ %U 5ˀTcC @j~Pd$<'V^JEbDn"QPE BQB>@Kq3+ $6PJ)##"!z6]KloLPn#`]EX1{{WeFEj1b,4s_L Fbb @eQ[A&wf'4! `2M2o>+G\'x*o>0$:@S$iJD D F v3u%KNQV"%c t҄CBlEE\\ Ƣ%G2Gm]001f$~5V6eHo6ͧ!BO$ M!(Mh>(?OD,$#8CWN@1MFГj' .6#LR h'd/i 0PAIp 7"B" n "fedZeB 4uA}.4YQ"|Wڑ\N#I-,=ef ?$Y.vwE)PGh 1 XL(f9PŚmE7"+2EJW%I+p.ƕ{eZS60"ID$&i7ÝMi\֔U aA^P[}Ҽ#`Hr&p pN:#lAC0 `"\[e!k=zi4+{tg,s)]mqdpYʛz`cl 3fӒ<>SZJνzl|_Z/âx%nhٍJh#Gt7^kcvJwTabG9ј14DSװpT|B6`AɶVEY-T* Š0!¼l6*y]}q ¡40!28R$Prw5'-ѻ70] `.4;PF*n G)b$E' PAudq-Š]])mV!/sk1 0"  @Ձ1:xp/ow.^p=7H-@% T~ p·e%`Z[>ғiS(.𿖁h1tJ_'׳2S! r!F"sҬŧ> ė"ivQ!0_YE-h_0K PH9XN͂Z` L] 8ekm~GqtK:|dYB%6`_" d{jIvs]=}ѨyқD3d]d2Wybč\P$ä}gȄɩ|.1a,g("2jj[x])đ׾1z`[w{٭nF_:h:|*:n\,DF z(nIUd?k pv{ApOqF̖7IwxV6ǧ&.nqsQ`Nm$)ӵvvs)+8rլiªBKq'm4D,-giq9ß/BNj揁-n [BxA|b#9RI0|8֦U\T)bnA#J PG¸l.OC c/h[} /cRd2xLaKQu\my\.3% *HPH;ȉs0WA a d*(_XEn˚W7fy%Y]d(P0T,(^0igL A;s,j^uѪ.C"^S3{QD_ʂ@i> Pk(Eab3rmoiYg-ѥ p fD D*|gFߥ&*JrJP0=I?gEܪտ@`oT+Fd*JP:0n"M",HD*hGBE n^\ɨ#8Mŭ?D4Ϭ߽X?\l 7>6!X*xd +4_L'o~ +FtGԧա+ZY^ IR٤l4u*,Ը x~d- # p7 LUajt7}At4[F:I4jvRTUQ`u4~ZkOO2i O F"DUU%=n~$wV:Y(d0 %J)16JЌ͜;Z h0Ef$O9By"I|IVwJHD1s{cMf S'5{'J `* U(!l$=Rq8B,/$x(j?- .R~ v`[ \Ñ4a[g5[I|݌(i4cNsN(X k>V%XVw.Qn%@ &A*TWT1`^M17]ZЊn0خuz)~/ˍ%$'M}|t|ijpt֤?;tw̻{1@v!8Xz롖k-z|S}:]qkf.ߓOPv_q0jQ}]DZUMPx}=S ˑ-{nS"pfTQ^:x/!te=C1q I\R~CbĻؔIwӍ7}Υ.'h>Z߅T?OIi$-$Y"-P҈^,!;mwK/3 K XR"b2y>%YŒ_>BtNJtP<^sKne@]Ÿ |U?ҚlL!ý˜lE,FE#T@E~-,^)PjK5>*xߤyzD4._5'{`<ʝ&-/8D9mRS?@$ @X& X$R cF_vB 9D&] 1܀:*OggS﹦0G>U@ ###"$%#"# " '$& # !!')$&#$$$)%&""!! !'%$$# #)'T[M=@{Y?-$Ao*TK\݆Uye4!dhJ5 RWLΐU59|m+:@\woD!$e4\*Hn<(#6f|*p,#Yd߁mpXT軕]^T׆;m_@o}ǚ=JkO+TTׁj?˃{&D97uml]ٖH{n- h=6r]ѕ&r laml`[wi\*+aKf%$EjcTr"ba)6#׃m7-uGvېk':́O^Ɲcg ^煅v⹠Vrhe:ӡ L;DDMoc%>_rJP@ Pp#QðTȥ.PfX3(B=eo )ꇆmFLkQJs^@C PFM[.z94 ̹3 dBk}h4]?o^CNݹ_k9{԰(^|Kܱ<&,nnr!b_T?Be?:@!>wÃw m~j:Fpvc go߄x2+e4W.,Ǖ"+BYIe,Wuz\О,bf?2K MRI1D@ -meX="5=4}MU\ېQ~7ht+o=Ď6dި\Y6||\>aAjZMf! bClڢ{9=~[ZzFYc\E㼣=p4qʼn \׸VɃSl i|NTݼ3w^|۝;q/;>&{LLu 4?{#m?ͥ'eT[L,)1q76?u(vcXgJHbTېkڸܜ;R;YM!(8~Rzxwu>{FJñ 7r~2>|^Th0 ;OCJ *+ʅ>9ELgU6]֕v!k(ocsYk[ VZ tEvvx*yDl6B \8=&X_uV|'>c&WV\C75b2 Kx"%9\k5OFV=船eR6Mck_ڮ?yԻbz/iccܚײ!l ( y6b(tB1W[#p_{WEw $x[]7oяbZpnqIk\n(<Ƹx ).16lU6֞/3gVT:u{M>;Bv$lYjOU7o{z$N58= d_)@')@i}{AHBITU|j^ҳA Yc}TUeT{p=x s7-1oS2dWrGGʶ925*5_º/ g܃/UKUN9TY - ӟ?,A8fY#k6r_Y6NOggS@﹦0Hq5%$"# !!#&$ (&('&!"! !!&#$%"$*%$&}l_ H`B a z64Lv^5^MH5mkbj-iWPHͽ о\]B]bn[5^e.,Pʛ~JVDuݽݢ [Q8R}p[oy:zQD(/[C#M*s~4;Ez Ak05kJ^}cv@yqOp:KW$-%;+S_}: =j?}BeJr 49ڥaqQ\V J1֝'usIl 30qw^70C#acUrǂK7NϱduX^KUJ]ic}bBдQ5f,ȋl5jtä>0 1xؘB.~k]Fu~J{ݗQGy]x: 7YaZvxBRPf)h@__ѭKk爋a,rZ7?.s}MVՏ#aZݫ|˜S$qmwn܃)]oQu=XCFʘzmqx|kjqb]^WNjGnl(~Fl5kjTF*Q\;<end %\Y1iȵO?]u}l&^CTHܺTWUן{^LWC'o\ C #ϩwA"T/\YPTt,y𠄯CM7gaxCMDcz{ ɻQPlU;:.TctjLڐ>LJNȺ@x:)uV?tcI7jR5bJ8/[\Α deUz`k>{$hrC5E_l]+,rYr1TrΩY0{-4XZd_rE՞K meJw_o~??{.l_Ռ"hOG+IR77L$AîѾ̾j|e_9fvAB2!ȽB.WlۏFL};pd,8!`; ϵGDNݖfvu\]@pe7Z;GF{rA;7e^:Y*T[`)*W/WipmzUpDLa6Hn%a*IePz$tcmo=>)Ph{++O(>Be\_+ltxt]Mި7hSq7rVZID]aZ,#VjWa].,\[@zH {QܝZz1Ox\D¬+ ~lg/·9F1eN{˺F% 0?ʌ˛8({-J_("Ը̍//z93ԝ,eEZDgo6$Id~6M nf'j]&pu:͑75L/ǘꂓ0nϷ#;wvkӼ᫠iܗ  0(+q>.*١yMOJf?!ڒy^.r0;Ysvwᆱ>NPY%H6֍4$$鶗j\ K=7 -݁e$@wJ+DEi:JH,z}\ܲU8lrRohD蕙5O~q>%T0k)ge@kƤf7Ie<4X;8a]&yc zc~cʍ̹֕LZăx' iCz5{@BL D@IT _o %BW<ےxy8dOPνMc5-ߝ7SLyx &wih=)dKtE5ވE!zr[T=\;]4&FЅSn(1~+NBZ%[;`w2 eE*@BWgYWisڹP5J"]JF賂qo.r ŒBRhHGMARR(")]`R p>T* * 9eK&y߯٦~Z6L<oGp;;psVwsfe4;ƹr^#ݘχ P|{L;ȼ;ޚPU!I&‚'|oSpyVjؽoz]Sޛz7>Gj˱b.+QжnHY K,~JU @m2Tr>FZJj^ft7N0}W{`~J40}jx:P) L,䦻YYX, je]XVtFRiK Xcz8>cP ke@8VY8'JNޟG\ ә}eF;qM흁{w%Pu !DSLV%6M/g=ʡkxgF}_ZFm<[l#>&@AtH (,bق |͡Z#0saHeՉ: $B|qQKsX-lo ;it9!8 @A2X N3E<*qrF/^l0Io=Z/²3U*U?AZ@KpcR|DG@/9][Dߋ#PT})L>9DzzKv|b 0Ѡ. $0Q;kgNq/iP*vWBF,yzZ%5[hUj  +DZ( *\Lیc>]O)E,?5 KA0 NUC& DeJOD5QAbq),lqV1Tc:_:;=V/y87~I\VR\l8)i>HtLPkj>ζ'9/"uws[!%]h`kZ. "*) ~R3  O ^ iD]3aͷtq)4bNJ[7O_2MKHVo{\0~**>>PIJJdE*H^n>Ł8HF B`Q)~"FATQ.:JFv0^zan'v  z|< /b-t!(et8vzUBD)ŠIa *OggSV﹦0Is+!""! ! ($%zx|zup#!%##&%ޫ^@v1 @|<<]`J8tBH1 8J/ԙI3©|0-k1@5AP_/1ܜ=7o'/5gnSUK2OB}Nqkڰ+( vFۅIAMAbX8,#OH 51;habݰTNzrs^-O\pH WX^ %[NIǬCxLT m,\.gc a0đ"!~̍t pl ,(P{Sn\ݙp15Ǧ7f?nܴAX@T)Ki]ȟz~dnbцA {G(*t_-LT5R7я7i^ugLtgvF*m l7D ~k]od^XZWSp#2EfxU9| )")YMvONGh(ðM4ި 8itg'H7s(DzBr8ސ 竾mɠ. _޼.&ig'Kb.6g"y8ơ-j%N&$ B`tsf\>7}lm'U?3SD -5@BN& "9"e@VGdK _  >4;ߨ.ܕ?ivt;"!( !DLhay\RL f!dl~,1@5+E@ R*T{ t|FYue9GZTBY I @8: Ȃ$u#kf:;ghvܘNJkfB!@S$Pq.*JǧE}jΏ%a'ow6L 0l3P@?5lXr``ܜ`rQfOm0}NGiG"-X-fR2‰/='.dSbHFdmi4vr8Qv`KT$[_hۈH*XVDܞ##g2=&<5,aHdĐGDAHiۑR<$*踪:/f;k!Gc70 ;fn@ 0@@uDn]${30O + P$! F)h@ !u!iF|QEJ2,|@t DO5 r,Ơ`Z>|.nͩ C6FfmfjLwB2`BA,tu)bw:Hwp }%EyPv*|  i25xž ʂ<@%xjF\7> ,56A5^5~7wE JeDHӏMU,*ץEW֯.s"a}X'IBM& 04kF]k6+:ʾF$tEd 6ͻBS7#ɘ 5,wԛBu\1(9kŒs*HGxdpNeZ6MEVG&&R+B2e3u+@y}wr;~--I%Tdt hC#G7+ٔ( +Y\hMeB@{ ?9O Y0s.qeBdDT__^O%)Kc?{ϰ„A6׫P 6' \C2SCp‚gD@It ~`bDD.^CsSiT\ BLߙT{9sGnҁ̸/kG\ { (g9(e <2"i@d=T @>Lwk5B-T[p ,+@>8A-|. ؠ6DDS$3 Kb%ҸQ@5Skg z ګRMx  n/h@ێf[t ttE,~PYQ{JD%ScnFfd5= /v /@ph]0_,"EnNcIx]wyð0vo( a K=' BIe &\/l?7GmSp,zb"IF.Load;;NԁwfNLpjx! cϯOe@=*o:B|T@!טͯVM(3`JW.xKzA_!XՃ;VX^\tF= mc*_S{;S(`%=qVֲڵV!!6^k FZ?R,vjFWwi{էLx0"yke\5Jf3>s30(AF.W 䅫2,&0,c Bv!gYQ , ,0H4xSVNw2=)mY01c;`fƢ8ʘx6=ˎZih'm.тcյf2{-s~ͼs~#bwV@X`o&{d|_VY~g{,]"@b u ]tzR ,"35f wgI˗1$z. iIFOƊ|ݼ^dnvf6M:K} on9MӹL6ޤ~)FDH1m-@|MQ9G 4f]hrϹ>z3U'?xvv+LcՏpaZyʨ ě=NC=`iK]YAb$N6xdK)%kt-Vs JgajPQJAK 0nL)WtG)c 0>6🭎_8vgh@҆WB:Yxoʫ-Ln{-݆R0ƈuDTc  ~e.!-Xs5s6_ʟO8]{3X\@l3W_|1n"M#t@w-U ҜyA׽CY W)cF5! ~S]Iͻ&U([>׻2 |1"U-`@geɧ㴣g/ @16(}VRpyB !4X9S*>jp}0" *-D(VtuTiBɪx""ܟ?I !Ok6d|Z!zLWݴNR} i`o| H%YIQ[nlJE+\"A\UNM'$u:Ici\΂YUT2yyJwRuy,MdɆ>{{F5k|/7ZLS1TT_j]}Ҿhpv(LOQUG"k~T?Dxꪣa=fkulvWtL[UV~H<܀i1tzkGh/#Tc嫱e8.?|?Kz9[zf#.NixkKB26 GYtq8:y!p+>xRwʒݕwӹw?"o 4;!jR-DU#LR=S߶N"[i Lϳƣ>/oaQ:7ȢlzEe]w*ˀ Nn\_N3Zk c.g9eۅWGx 1W2ќԬKBrL,dմiݣ" јDWz APpo? Xc)tsCDZX J@|vqtL;e7E.nՇ0G%( ɱF*O44ES7ϟ蠛=ք+@ ~}5;\(^/uկ++ ='0 V@jR⒅"KN5N1k@\H GLz%"'I֜7vJ<j)\#nC"tZes2P.f>87FIsHV봯Tp5r a|1Q9-ݮ5Yz=[.؍ӝl? 7='>޺b޹[^VE깖6h(I3;2v<Fo@$tj]xjX1|^O #gMO9vjjOjN6!-E5D;O/b۫_h-vӹp"T?kM'C =QԘPR"4X*,KOrY۽WVfͮ 8L #"=n>}ݡbƇO>! FPnnn-F@p :*7^M|:$[V; V,դiΈdAL&  B-CI)dUέ{uPʍYTFj6߼]i U/TUmg ~ok Z1ͧRiqƘ<)y_U=gG\8wJ*T[˨~-RgR'|7k_\_Յhןy6s\5ש=qk'C T]*R<}B|wBY[ܒ*/U@Ěw&ړreҭ$|z$)weO5ڳ>?Qnt[ 9iWICC2-{3aU~nz<Iα?jHL|a裮<kw+^>qrbrY'.݁C\lD7ìjJ*6J`3i|=.JK^2Ś/b$65n39J(q!M" >c^=q:KjKw{߰Lr#=x%ShzutZCj\7!2o_v>k@!p.UE\>3 OggS﹦0K%-!"##" '))+'*$&('!! "#%(((^,@|"7hjO}oa2ko}ChvVi9Lhz`jGHJI7hNy8#xe"021}8zNL:}n`j緯{21Jרf־4z_̽Z?ie Ɔ CnS V~bpZCfX-^ duLFE߱5v-$z; wn}0ftk$Fcivh|r6y՝<p w;o<}nm#:1ٴ>Qi-/YG1JzVѽҊ %Z!0,+Ca|&=BQMؕ?Fxf963:XpsYC('_&Is\߮+50*XǬ=ya>ܳe>OQ_ߖA!:V6uX_[Hpux 2ec&[DxP^\^LgV "^#|UċH!QEwi֚o,%*=\7٫ٜ.J^w&~8r @6 4N :i4i ID1#[;fp2=S+`7<%zBrP%d ɀ+W#yI]O[&EDN11)K>%{wvJ+=(2,X)Ϗe+J}<]} DWO`om60  h:@#,YݜUd D +HR-7I$qlJ$"%1fCgp+8HX:L}M+$1l`o>:"`O]z jӚ]UW.:ukTqݍ./"Dc %Mx `s鿛ƥZ82=__}*E# a5rBы MX޴g 7ϒuPD-p3G7K\1ZV,9#A EݤC<֣B$ŹR T.`[}X-Nwھr@W/[!"IU R3_jVfeGQoN4c _5F5Z/Jq_]yl Jۈ ܞ3i2xy? -M**Ir(f'ԌS_d6[^$2j@z5jW͟ee5t&Gj{ls4>iĦX2RO@a~ffM/JgEsFF8.plίʚQ]%lD.-L c㊺9'QW_^=u4j ȕ547:x`U6'j=Jfw],u\~rDQ! ~| rcf!ѫn*"vp&L0[h'*3ĉeNdvȋ#D_;{ }Qz*k;I6a h *]EޫY[1]\f(`TK^gvAEOuh(zյH|ۅ҃*a[M'bhgJlhU'QџE.=3Kk0}qpmi&i z /2J1.+ B 2m:.@,W(x|! N&{_^8MADSfI/WDy_㞮E*4D ~c_6"D(k(%$1ZVl:gRޢ!D׆k_{H@)S)tӾ9سr,68i2#7I GKKZS7r<KJȊZq ~ֆ\Yʞ+!8v+(H}%t~o7L]R'H}ڷ."48MN57Y&vCտw2 %`XBh{赫=/o']KƩ㣫.֬qntq#:=i.[ؒiIc&Tce1<^‹s`"c 㛯|qtr]dnuSCTmsrv`l:$~=MKp8^}P㫂 >T[8l&z! wNr6uvIlO"kf_1LW.$Ȭ]K ]j~gn}uX:F ǚYi/Io:4\ X遗.tghiӂUN O~ ΁Ṟ@ 9ԓM7<38#'ůޅ;<?m[+Ug_gs=xe}n8a9Ox9`e!A ZLWA;}\-_Yd HTN(S!.6K }yfN3[X9'N9\/< BS:ol@˭6=V}kxs}rGps+cį=rGe`tڝ1w3|w&y? w+ն'DWU.Lk_y0ɡ:A>w(% H#M dNUVu0kaoo132O9`D@sq~sMI<~pC 3cTbTYh 4W"VpH$I;fdIʑNNZju]cOggS\﹦0LBtK'$ !"#%$'%!""!$ $%&' !")'%! "!%"#'%(&'#%&(&)()%##&ler^O`b,Cq+^l>?Z\\ez]Y<<8H{5Ӑc]\da@`O ^j)GnRCS-\a-WW%<R MqnXR|*T_ qdN%b޲r:9l2Et_N\7W7_<8i bR;.ʒl__WRZv .XꞿuZ0<]h^?7^AF㳯}`Lhinp%D]kӅ𮣃)<^OyZuF:o<>-Lշ5XwdŪ5||ut_dA(@* >pZ9 rzjqe<_JLH]775kbmQMU(%8.K1\7v 𪦜:4kcJ leV#ic DcUr/.0 IDfmMa*kꐦ ^A7S$Oe x5;wf{E8}Ş dq\ђla9|.T>(կT_W!UcQsȯ8JD#HTsstX w-zk%FN LŚ^Khqc| R˧$MAjzb~>;~w^yo٭?b)LS*EXMO|{oBfѤUI&ot^(ݮrd]ז h_dDx9]٤nQ0+Ӯ^LWR+sc=ih*ʰt__Y8): VH 0~}?t_)U z0L뼤zݷR{͉sl_ ->>AvJA1ݑs? nM%Ʋ2?Э`=8RrO<Λ:즦k+o.0Իub|&?1Od](>I@wjG|w oX9la 4\bg tf¼g R[ aiD~(sϥf> 8)isg < '3"M>_w}SsC*JιDB{ 78~mmtӄ㤉kpo'~t0)E|tV|=\~%p{9F<['K <8BϠL(o T_c(Nԃ7D &4nwlȊI2ixĚk55/sbL "PjKfoh(`jvt#2_W݇45+A!8verS }l84ܻ>k(pW[TrzOҢcOe \_e 9-6#{KoWsOp'<_UD/̥Ѓo:gڷS^Y;%M8`Iv.Yy6y屾us<wyH~5C5I[Iiڴ/'}O7G 3Y{-A4@ݘ6N\l QK[zꌾIqai'czc Gh-+8Rl71D]6YTI@j|**̧Sӏ{~a?ߦ(E4[L-&n\j\XQ嫧{kڸ r F`1捂4nBo>^O8~Ral9;hهjܽu$9&cIwKHNՉ7@Sp8YQřCΊ_;,,i/9?d?py}Y]vp:_s'9|v9I7:X"epƷ0usTY=hk4x'O9yS~?d_2՗Rir5(yŎRHשk[Plc. q> b;4獽|wFZ[ĉ JMex7߮)#-G0?NR9D4]M~WM+\dI)`e2DEpScvƺ) Ν|s009*.4b.%mQ R +PB'Ɵkc,Zx~Gcv <)Qj ^Y%ٴ5IaBCRΉɶ DPa A!r0 rKeH?1.xb77nE^\ B,i%^H 2TYV2Ͼq)Fc)C{DU_Y-bΙX?@)T3ڰƺUtS{`*%țjofzTOggS﹦0M8~P*$"""$#&$(!#"$$$!&'s\Y5?+8i[zdy[z;FZawUD G&?Nim ^th1͙Cc8|qf<fS,;w(d礝7JZ1RIؤtvS,Ooψ/̶.>ȓ VDspR>u5X8&}xiY1#Ʀ0dmUIVٗ>ʹ\w "A̳<3{˘~hUw[0LgH +dѓ ^l / }]`Pp!>/W'õB*q:Ѡz, ԁA̝cn\%sIh琲W+DW5cק&oǓuϩ>7j?~ w(و!RKd}4}> := _&L*\2Z\7SHba?Miϐ s V?~a*-QM^ѡ>WFv@E,a`o}mOAGV@࢚{FgnC%J1 j40`HT X UU4ώx7߇\. 3$yۏvͲNF[B(qTж˵3XmjW[8e۱ILفjl<ɭ%%G^ 0{ L]{UׂϠ>S͋%vUT2D] be߼C6҈n:u. J%%%p~DkO/d%oV+&|?86NS ;i+v:!I]pmY]j (K;fI^ڼy꿦J3ϯ~%pݵHiKq&\/?"Q+H{"I SLI_懫Ӫc}U0!dw :#H]'4 }N$sG֭dϛ#i[J{gWh5.Ի4i?0ӃɰsL^K[_S^sݣb%mv]/ׯ\^XGcJU{w|ƣųK^F溊?U5kdlG֖t,8FFQpaZH>%&;L3VCeф:eEkU7>k 34\ix'I&J.]bM=BhegHj57=画n˚+{\0봫$ ȦSkI/C噲ԧ^ Ƙx aC!a :<* 7YdO@, {]&%H4$'y=ϸ%"Uc@HcJMh@pz p!~#7z֝5C>qHJۘ%)2@!PQ.;~tcd2u#d=j~GZ q|I&&Ijf (3rA<'kTc(#w \1VuQ0L{+`S",*^ 4+7 +9d#e20>XjwB":6ӊ^qlk~qְ M)QT/֋5:N7`G/Y8 M dYF L `^,QEEJJSX X7K)8rK%5Es(hQcCJPonhC?..3x*[Â;*`?Fa{|u6h!fUHڜ0b ]B@<` 05|wpzӌYιO08 ȦdqHE!8%ϊ*fAkɆ"pxļ?=1)c-IO-ǵl9]fmkoV)pK@ ih؀.*@AM!ŒBý6ې)C[Sѿ+ 5SSi?EI9ߵCn.rY0 LU!PI0 9*rR$UWi8 :!TLST4ߜA0iֻ+ѩIZ_ <Ղ-|z ړZДތXPnL:IT_Zh:D r<-k6)5CΖLQAb"/fkgw/UE$?S¤e,ӂє=>bᥖݱU[5vrMj4\~Ko?r'\*elTWe-\#/½5ޮ}- d[F/@{كW.ӓ$Z(y. !=7Zm@6=.@i󋐕5}1nںqjnuL7:o)LKf]/t0}s̪,#)k)Hzw(L5`Q%w[վk߬ #5U"KTTT{/cL2ӭ` i"R<*ig*WENr`9DB#r׹eYUUm` L5@iVs HtieJ2 #( tԴr|ͧ "&#q鿌N$ sZgu%&v<1,ƚ{t4*M"H9 h`c@k ~ֽj՝7jSY#.Eg@%}#n~lTOȄ4ZV@ 4aLh:C Ce [fkWP-0@82 +j^+D#٭ KL޽v!!P !O!hޫog;M(-;[ Z<<Żwa|S>*\pkᰀiIO.~<1Exf "C"$  L?V򓿡|Y)zMasr>.4ٰS 5p+hWLƱ#cekA+ui'-Ep,j8 bp `l*O1HELB8]mcm`|5W(B@U ` tArvXP/KťC&}E.e1rۖNE#&'h5pJTK:Q)rIfP WFqe3F.\t@E_r95;O@-F\gLiZեc@ba,nh7,KGaXP8F"hZR>>h97^ExJ 8W 9)UFFʂ$.]~+v5j{l3XU=` mu%OS";k]HΧd}E:)UA 8|*@j CEU@Mv1{oDVFP ~*yU1*"+ +˥FrP ~a@0bA#O)Q!EЌٻWfSչV{ @{M\P@ tX+\ ]U%ŸKu(R?~cT_+# $W AÕğApJQq/͕ևh_X|BQBd+P7 $_+s%,槵0 eZbN4IexaVOu{`|?F Nόټe0M/R+/v(A R!bwNV$NE2W pXz80}.1wà 8+sOzSUE+'>UX= Ts!}=@ATL0DқoʾF~X7 n-},os). 쓔곧Y׺ܞXVhwsw ,UL'؅kwi=[kXB,ULj&:A2"!_n%Zɛ"q,UЛy{[S6$o+ʈ,Ou5Ã?|^70ˆ+<ՂM<1.p(jOt%hzyKu̞<'x$j9|[y C*b:,Mʇeq۟|3-@5CWTB.,>5<4Qv {L l tK-c!nV DUu+$\w=xۼIlfX>')w.DQ *2E3SGӯ28CQ$_|@@VP{:EdG+E? 2Ldɮ%o7bTu=s^qk>-,Uͧӧ NH+InOV_Y_ϰB`p=75oimJm T_Ri&*#\ kXp?.D+~!X @&L `tzDtdR]N~yw9.` e + >VªN DuxYCXHPk7RT^ €ї*H L!3hZ7xK6^R'[M`g,(ݽgtRG!qDHМ %qi{P,2b],IzV)%&JYnD"eE;A2K >ۅҁ ` X~&߅q8Lf)3}QQ`bc\[˿LKidS;x е(Rb;jɅk$ȊFBr.IDKS-쥨B#kXqY; ~ :VZ炅G @!xX4+ӟHi)u_K%X![PZtG v`4${xKt(`@DnłRM˪ ME0ZGP]^+ڃԗ|HSA]OLϛEէ 38(R͓:"1 @j@1 DBm=paVJ9N3,VJQR`Īc mֲpK>'jXx03.Jv?>hofoؚm?>|FÝ/s Ti6;A .|G9YR]sqKQʵJ@[m8#x+fҀk F1Z9XWOSBHK3: cpqL G#ȨCAPg@*(3`ͨ_jmHHu>s-f!ry%F"IDj{^VTb6VDD/(LZ8&&Fhe;?% #A[<*ofj/z5mkR-Ԛ xW;O cz^f{-J[AN!:d;Mx¹Q 2Nq*1<pQKnV4,`7q\p]#0З)|>*jҬYMR4GI=<cO>_ G9_)5RDSrQT˱=x;ZŇC _l{}a?.,KO^_q_4|NFQPW)`Zؘ*X*e) u\W+ҁAnGu,\rB&JTx=Y3&ć\JfziQl0:&F4@3p$nM̕eZ5֌F{ߠZd8sRuWۑB JB ;&HL0D4{5c Vz5@lT)/w[% ]-n`gO " (0 0rPYEl(!oNJvq,LqʅXD\hz5xڱ/TEI 6~"*&u9\ ^9CBڤ/%-bҔ?i}M 6V=F`&Ni^tGqyz=pD!# r`&"l O2ZE?M--Em(Q"QGs~K1n [ P|%uͤӴ8\+Ѳ3k mEf}1틴%O*HDgX8\@ J50@@(2lS36K?IQ k )f(Dy #A1,j~;1.dBC6-͖EdY`g/kÂ5ua O)ɶZf9t?-ҲmN am3(ncp<hl@(A@pQ`d+KE-VNq!EpJiXJVA)|)ϠKoe sC> `%`4埮>łUGTDr.owDewX {K#GH_ 8 W7\[5 8r7k N׾(qԁh=W10gEE˥:n5 8 NOggS﹦0O*'^;& L?p0oV GY%42KP"nV;SIU \nu?e б[`|@p7ի MKS$ -]N0a|:pϰ#KuSt{S<XhU!֊bt9wźu̦7K;'h)zȊW{C.݃dԽ<.|C|(jU In)y%@*_! czlKەi΃n~@885sG^K~:t15:|U>7 ,).hnrN)Uj 7D0^a #Qx n+V>QG.S?eN8ƻl[|>F!CX(> P R@C]ן:}PoZٰލ_;\ռwNg>:! t_ JkqihE/Ixw.WyTJgvjF O>O=Ҙ    pG$?R 2t()*F5T|sIؠkCϨKH{§{P )jp[zRA!Hxu%q#D/6 `UJɮR`430TQ -v|B1Zr!\l^`t2at %n pxX"D=>we`-F6gٵC41轞m 0M5riB }lqR%qHZ 0`1֕Bc̩`?nɧmޖK"Vx]+@`{qu`c%4i0m^ICE%Jp ML};R(V?^Z}w> ކ(o^ʩlkyȦvz_yZqsh@ +TUT)Y; ěߥ1Xq n;&h\+@l/FbG/HΫ  (>"P 3L(C@W4tUP`Haq^;F9#d IJҭ"`>#(nc\NӉo,lcOOvumZ^4M RؒBA(L(P,"fv\gY,_<j{r *9ҖAu|- G~%\_ŊM@z;){I)\ڹ_aS2u8aM"5#l)AJM+ Yr{Ksݕ @jQMY︬ݦ2i'L15sVY+1JkTQY ^t5/-Uh(EG*> G HG6 1,}@kk䳒=EHĦ;JFy7˻R VfPj H 'x,$Eԕ519ݢvH]o*w4} .eCdv)DsDӓB~6i?>$r *Z`iȊhYY쩕+Kb~2w)$pn k `*0AųP@ ALzh^+ZF} qZiϚU`RJ5VD #jQXz^JNF1i+1 -F>0@ΥO)Ѣ2?,G;2F=ű ZG=" 4%,xNY!XuKn*5}]qCMB~4_J(D+ܰ^\Kc+5դY#KJ+DL bJGq25z7ӝ?҃Ua XA'%(IpP1 F}ziM(阦1dʶzYcx폐--b٣k(uӌ%~K.E:-#۱5/Z4N`J2a[|?t2Tf[*a}f)[FG QP5 2lLgT֝JPg$:g䶶F|+Ϝ/%T4cXdϼ1B4*L~ŘȮPflj~+&F(?+:J3VwKaODC"iIr!lm7~8-<$/;b<@w/D|H% k)fTV8t2>ks֊+Թl90΋.8 >1^leV^Fdf%Z/KX>׋-܉{.JB^sUbRuYH6c07/84* p'ڷ@Zm6@/T&Q#Nw{(^~;꺹=!홾Z^'](W+U`h84Wzә2KS M^1E@ Et/bI߾_pUxn7]X|?qo/pϞzu:sE~q|]u"4tD6Ⱥ#ppKr 7|9f}˃}9 c;(mאOPfŢ=4,Vg$M5QߡF/MkkZn9h8K)V?T6|*"Cyg'BHwܦq*8Oc6tsfK͒βYjc%V*DU:z6x$hQC2{U-O(Tq%Dk63B667Aڜl:bvӬوOHJ=KkGXI] ~|K>T" Ġ"Hvm_RH<֤h\o>߫ΌId5AH0%<h~Y&/%"֜g duDvCwxoS;L#ӞҖ-D.5(reu쮙Xqj߭3⍱nZhDUzsCy;h-1F!%t#o6,;vm+vw1qS@j(δPt8OK}A V 5_P+@ RI/(I18pY^j߹L,VMOו[^\( ozxa뱴 ;ňh]*x hVZ7)1j n6 iL8Ucޡ%1@n(!tqJlK(W?&'c[n^>fp5XqSsrVnjvl,WkbZ\SVJUHr`[1MU;42H |`NAɫTAiꪗ>uRfHzxV2~``>< <  +} @)Fc]2Axu:ѻB1 G?_Ǵ҄RٝBͪP2~%J79R |ΕK3CDŽ|hEN4T>|:$rM*fV@ 20FC;7l0;GE/hnͪvE&Xm3ĭgI܊GZ~'/tRn^L5ǚ('_0t.9d?!??)ß[Q-HE>|+!O4O&c?lsZ&,hK1V9C9PPVA SD*dWg7]wΎv)NʙL3g ceC3W(O9gtfo vf@Rn5i:r7#5dʐ^l|(0ɩX4B>!9W?[:֌F$z62GOaB( M R b `!Tٖu!5za2cn\.(tN6uP}L]g.g+*Ի*> fM2\nJiU%PF\{٠fWZ'skmtߘ:JDL֪>z0J5_ ]2@@f/?VH+@d*Cqhzm@|Xtػ i*Ӌ2 'S1 [_WѠZ,5}ػZJ4F%e2U!sB6A1WʦgtHOsoΒ)"0YT6UwZp pBmJp+ N$ k4Pfd7<;Y1eBx!/Xk(iLbJ&X5G]7y^mX T~C5A0Q7 f+kkwvS C3J%#c@GsUp]bV9dm2\AwwC@IԠLOּZgaw*i-k]1EWai h A=":ԛ7\XDw4^bp^ |#V {/b=ZWZW -~)sU w]w=INF.<}Afzpkdp%$ajC1e/EDDE@p"%bHrWucPv<8,p5GPq־NsݦPW,7!XkXFvP>:&U:Fc\9@k0O'OI 0#sz8\~{P-rL@:h#?;ICqrMy@ %C9*}vK"\G+3+DO&CCrxc`,^qQfdW*7Wk ds>JVE8+W*V@6O€~ Fidг.wT: Y [T-vCkH :Чn *ulKh6#WSR8({WkwKkez> ܧ7g,PeIԤ`(Sl~ aQR+qx,3Ui:ʂ1\PHZA肍PCi ~ xSNbܒx|Ŕr2WUͫr/}Ӷ_*3T}wUMi9 59Ve|aRuN<_*J~WAw4h])-wcg%`5>H*(UP:\O[5R 6Mha fu".vɭh~l=oA3SJQVTۥ=WA!~U$x_^IqKF #+a?6_Ԁb6?,(\yX r@ @,D  Pp;P~`qc%Vp7ŴdXCF)E-Ѯe< \)8.a @#i@ xPSdS+#><\~Hs UqImT@ ] v)L Z@ͱloؓ hj"DVHnNß MWBq|N} k O$.+]S: Dsd̪:ndh*QZSs[>d#|%ޒ}ze%802U[xTGzRc\'Fw+oGUEVp̏zGhs]C|n.Ua&dQd'4?,gD:$© 0 dڠt@3 (~nw\7Y-Ǡ@ @ư$Ya^Qװ<~PׇQ^xM҄ ;PACXn.H, 80%>4*.eM,dT`+0eL煕”V& 5~Kǖ/u2֒ S`!C֓l >r6LVM%D҉L?1zcogݴq Tl]a|z=voU%uBD~K,-v:Z0`>RI h]C7a6d#G]ȘϞMt>zu m-Z0 d/2:@F=GX[V BqoqE+(qEBXjy55ަo?HA($#[m՝4nx_b0~7Tz"_X\NFڂ"v@!͚Z~QHNPp72B-]⸰edWIU +c8,&5IxOLCE5+t TjOggS@\ ﹦0Qe +"+%%~ "$ !#(*&!! !%%#"~kP1V c\PG~$Abeh.dxERZ'’+* y *L- ׀`0y/b`] ՀT $*DuKmM9rjVP jY.ĭ^{f<{HKī(UExb1'ؒ2slԎbVo+Fh(@(d%E/RZA^5MD^“Pq-ذsD}E2H:#*~k4 Qd4[yc$Su@:F™4a?fdDGaOb4! ^VP-p)^U'a,bXxV/mJa]NCVN6ě+eӴPV_հ[\Y ;Nln2Җj~+r( CWb;Iاu*R7r"^ua hwgSn ӛXcN^)qm@g4@PX6h5G\aeQMJq]qYv3Y%JpS@K0ZbRê* "~ƺDdR0L.:7?хY$fnRSqǺ1F4 "fciȷw*#@P;TjSe؏||6 nr^SxFĸO3Jh$4/g/kݑ]q׼c іpaY&*2*hAb|pi7uU1rbp,r3rn.~E٨e㣀У>1 ;8N~ޘ&JݠQ(1P|u#uFjNYnT“*P֭ @+vɍL0C3" o N[*2v4X]P89߁xv@^h&0@OcHH & Ê:Q;Y9ʚ8Dmm@J7H->nVJ V.P@6Ka4֬Nq|91@eı,؏h:#oіu1JGK*JD!e= A (O{$6Z (q095br-nV@3Tj߯Vg? bЌ.@ 9K!z=,jgqHʤTY1S <[z:0QM|r4r} QD>5{>^Jj@b$@psƨQ:ֆd֏˱v.B;6B:!rGQ IY"$I-Uu5$Sp,|fzLZ?ax "jUu1*Qnj>;4F؋-,,|`-ȕ7+n;*Ȋyyè-} դD)z"U^h=rPEC.gA 4lj5_|ܠKci86ɦ|&EFzfcqje @ѧX 6(C)x~><ӘP eՄQx. HGgEfgldVhL/=|x@ž#eF QDZCeCbPeڽ 5j+ "Sx9 n$T\H"};ƦT=m/R L4âeN֍ jĘͫ Kj丂`ǰjV%\H.gEbs.?V+طGH^bD@jf"@sXĒfy<}""Nr/t6iBDv|QhsM4w#ҐFyw*pbY7|Q7S.Dnah+j&+73:kKlLk$ U>T1FAu(s6c,\_*m_mb%&+Q@/Ю:}CV!GQ+(Jni3+-Q_*fhD WBr ~+•4VDi DTi83YyeaQXx+L@\ ty=NڷНw3lRJ=͋ Ĕ'F~{9%IUDzSԒMe.VZ0?.cT<՞Dm`~'0&c蹢L:ON\s]U>vnɆj[ ,тhtdog!Ғiֆ/<1fIANj`B^8vf|gfvLWa>4sL&q&cZc I2uX.4M@Ĝ>h?M/-2ܘ5a׬t٭Om|xLWEUY ;'I6Gel6<TWzSUwkR)uiJC|[:~GpLcŏF`Dz_c"fEb0J6N mw7IhLbu9_s?y\:h鲄pmU!G sSme%ነ]pW}Bb:ILzPX ^#JOggS ﹦0Rh *}vw !"##)%˯"!!''%xx~y{+Ɛ!Hv \!:ƿ.E'"r4wCtQ<=[Nw?ؑ$@e-a$V(%܆פraJ8Ԑ'Y ¨T%DM6;ƄXS*s%aj Ic\\?D`\1TSz"-WZ"c)xl=at[DO8).!˻V)8ʫbU98r1O@CAq ˵]/ $DByG+aC_;ϗ%l2s&αP01%.YDD{rLhaaX>'{/qF{sTq"J\"yS dY]t"2u5YAֺr>H= IMZB`M>+@>۱@6)UOw|H?yvnaxaR٬5em 0>zĥlf40I(f̅V /"泅FFb KMVC V/m |bdR!0A~m~:)m) +VnݚVF' &*tcQ\dUj3i$(%e Ţf;&M׸?@Pe1*&Y5$0)c vXI[/X}XP'>Ix\ v|޳ĮGRQB~&@ pga IX(+2&00x~+&t-be wa \l uKi7yh$LbolG(|I~}ġ0A0Y DCGq9Y^%K_ddw| 4OzH=HVPk[ XJÀ*. ?_4JJόh^zԏXq4V6cJis8mWƸcTB6'_U2Iܦ X\n2Fm1zQ>W_ iWp]d;ew3UaB;C FT4G)b2h(7GݰGq*#=0w`=3udGW_NcFfU9|n 8$t5ۆ4rI8?njix <ML3NUcBc\덇Rnȥel%ep2ogƪLX*ShQFֿSq.XwGS פUz j> _j,ᾯ!zָs;K{_eҐĺ߭d/giY'lNyp޽XF mP:}pPz]X/"dVv*z]yxSi]M3'5h:Hnm&_KytB%SUB=:;@]iOw-"-vhM/I񯞇 'o߫F_;$d)5H#>ku4T?ZToi\W-iG=t.R*b=_Td2St`$"jF(MLA,T,xWMH:`,&El&0) ϋ85/XD9ßJ3>|Qo?t8 tT_Mw "RTXwDCtGO5b 'EH:&qVO:&K c0\V,OP_ N[ 1ξkRw@%7"%AGTL]"#`x $J&j~)Ԋ$*bALh $JA,ecdH]$6ypJUD4ڨ׺prf{6GfW̶ YI658el-3`6`:Jq eKYx`@iY6%Y bki -@Ofe-~bX74VE'43Mde^X;=pe 8az9:" +\| אt8WAdufIFr'+os~1jXlbOggS@2!﹦0Sܩ@2$ %#%(%'"wt|!!$"%"$%$#$!#"(&(~xr4QI3~s5SIZWǻWWXQ4Of->d9Oef3b</9|Q맛BnvzYb 7g {`,$GdoAdL|UE,4i,riUm/?z=bQoi i}6?}!-:F?=/vTάlD9xKcDFAn$%SL Sd@Ս47d ubIV~sZy Tɫ9XDbIYN~״2q/܃a9Pq:N/~J;-JC|{ok64e}=DkE?FJ +/֓O[^ZE=6420#oK:$$I JiKdU^E@]춑Ь¿kֻvϼ ! 1Wz.ՋnI)q |6$5/,k M@]S"43,]HiL>5)kPr1Y. pdf-l wg_XۑB;ZxiDYklc !D{6QA4Ӯ?b,5p`Mgf(ۼ~;-4eƍFQB:0"d׊9\>C]j$n3VBc.TV#GrU<6c\ 45Xia *.Zq|47sɈq,qp=;E!49 rAEfh dZ\\ф@~K.+h(Qw;ZUΙ=/0c"˲MD?̨s?S43/hY sRu@ɦ'(Po@-|gqr rp*^IBapZn>9%ea@^&Y=Rbq*AvIԺ9OƥÜ8ƏUTN)G6VdiG@pP(ʁS]B,MGo{x0_Rӓ o!V DQh << xRYh4u1eDѸ!Y4Kk7jS[2P"=}[KfX/A%?ڲfrC.Qsz"` ҔB8#h?0q-=iҊ{ qT ni@`@*  Y >༘nP(zp!pfX IQ-!^ -Q5q, sl21',%Ӗ؇QO$P 34 @ YR:=X@̳sX+ DSDAcDĘ?!WEb4 %>tv#UZVs)?Rš/s/2I\?}; t w ] Jj TTޓhj >z>BC'qDYu TͰ.-n/Ň02eg66Y @:enZ܏NY{brO"^V~ΟϽ~Ӽ/j#V37]WP`+8{`lX#Sx aUIaoyeuJ#3[B-E6tZl^ VP)YX^ǡelū?X[bU7M|߅#;t側ufzMWlD<27|琲a]q@)MC -iraù KTeyU9x t l5_TS(tŪL+Mvnީ=G{WONZa <Q6[7w}Bc莳Dq6Uo FǛTL];9X_UjLͼt%?vΧ* TlK)@Ӧ2|o Rg&oRc%*1٘j@4E*Y)Ry68FD?ƠP;.UMX%C~LDɸ"#MҤ]<cQXfB@=PJh';K>`A%@}A@$`E.--McXzƵ M8Ln[/0!G$JEc"L7*q?Qi2 Qp#C"gG(D#\Lb T.`pOggS@!﹦0T_,|zyz}~ ##$$!'%{~ #!!$"'#x~K&`6TW+&iB`)Ɵ~JqiF8z6Wu|g U2'f'@2ԬFO* @ _ /^' ;Lԋ*{#c }ͣ RD ΁R kv{U-<8q2z0}Zs #$ 1QDP㌌ v6s/wGԯ4MhW4W@X-`LhaɄ RDZ¼ H|> fDn1utGL󪤓D;0^#R%M#\@cpLq_'`z(>0[S>TêT#IM>8CELHH"PʻX%lȌNv{c[]gʒf$u<]dE";@>|0bHdJB|.TJDlz$NcxiD5ӱsl#" =3qddӰnd VNa>h b`uČ.n 1eJQF hǴoF(kbo@Q)5i \VA!n6ުQ!QӟNOd;n:{F G[(l41!%@.X "4 vɳEI]QKo~:{yv kP^Q#%#wARk)].s[[./lOєXDN/G&a 4,>FWDsP^;7VJvXZI Ƅ,.T? z'M u|fKF JM(1 дKlŁ,TB"u+Fm~ByQϸ>Z[ɦXd:'sӍc ^~,N \@.8lJ:NWy:tb01>berlĄ;^ orԈ <_ۦΠja/`HEnM.@|əԇ;A:*xBh(aոk'tˈ V_YECE(>fj)pNI54otz6 gQ"VOM /qe2Q@׫BȺZdE4p<$H}xk\t T!XOJGjtދrK'0Y:j$ҡNr5@⢁0ԅ" ¿+V C$@w/K/R"!1F7$oɀ3@;T h, A&N"L"^A ^ 'сZ+qĢUF 0 %T+(PFgЊX-VP@b !X8)a\uVNT!!l`S \(oYre,kVA + bªr88X D( 2qQ+~;&\i$-a^vDU:/H(VN;Ua@&ܚFhgOf[6gdc.Ђ>xH)@Kj9Ot#@!UH'ZK&|/:( SQPBS@G?DPхOfRc ^D:@Ҡ|HY,mB́qAjj[9~GOX2V`XWϹK~PpHz]Tnr)Q!@ceNP0cV:<-.+ۧ]$\b*EmڇrY[μ9Bx"d}ƸuZΫD4Bɒ?Jsyu^ycP;cp@W?8(UV(b1A2[9YwEƔX-ލ{fC!L+cq+'g$l*uE%2CBDUU$n6xPiha7x^Wd4~]~xyjzBFy d8R@0-!"f*_RV #< >@!'OggS"﹦0UtY +~}! $"&&"{zyx|"$"#"$*&;G&EKPM}H'7  4[Y95Ҍ2з$sk H,0@ DYŢD@A3r% r~;NmeI]#M @7Ow2] 2a``(GHB `TnzjKuT 2(΂)J$_H;T~pbKX%Hi4Zlʄ 2D1 "a_ŽӜd FmN\#ƒ.Q%GfB߀K >1{ET- KvXS󻆯!zK B 紛0J4KO4VĞ4op Cu*7X(o8QqP vYMW VİȒ5*0>,v¿ {d{GC^ra@b)1!t")B>/=}o;`)0=] J mf!wg1WZ Y:@%Y2Xts΢]Aˍ~K8@vnM! :,ήΌG M^?&JU ʟw h{{Vu'w+*nP ŏZ@:Iv: *=sDrsXF6,n5jlM թ$-hĜۭtaט,\]79H?Q"j%02(O< JǢN@ _XoR@?@+ɴ@ppA6S Z]hgn3D\Јc~պv|HpN>Fq=Gyc"4fyb8emWyHA$A Z01$ˢ95nzE{$˜W7h`TMX0a QCCdH Fm>E2%Z/5"RQQJaڈJU ;~;n[>Y~i  I }Ńt0lL^ǹ4:+wz}EobVrW2 o >+Gcb,c,^pSW` $wa=e'Ƴ7_֐v%JR?, ]uT?V5L,h庖WAZQ^@DU]C S";A +2HD{U`Lrbb":eΛ Pm;|ÝE1%C"$ :i}DAKS5{@(7 2%` j#ZF/7 iMs:EWh;!ct4e;zWA;7fjcKyuIx`Uz/d'+Fhn(kzC9ݜVC,FKC]:x]-nZ!ޜnT@kxVq/PWMDSO9{QܽEțBBLș6){kQ1H*y'mӱԨARx=V ,Vi7ʴ{R"&}IP@ތ.U* s{aIv锈b:cLyѭ 1Z//̣59RG iޣ&jf0hPe=J` .W/'&FS ˊQ@|\?>V[,,:A$@b 2/Q aUQ6eΟ><.idžc[?eeȵ9=||?txk̀ADA&'e~]?xP c80@Ĕ(pIzu5^xĀYT+BdDQrQկԾ#`/sM q(![~Tz6cox``i8 ~8** % \§?ǟ7wkЎvX˂Pd @(@]c@@dGABŅ^RoTΎ1hsPi))((#bD̘ת}y!u?tR@@I@cx@  ` Y$@E [Ԉ H~;56$!tcBBwċ;0lP~ĘDl7ESFơ2 DT@'L. @ QA6`%Y% 9d0 }TgQ + " $kfB[x@R]2u>c7*y 'lEDD:P-UKګg@%]?wľ;  >\}#,H 2ȅSSmhyj0>+N&B6I[]fV[<+%#Qu$gE<nGk4@ e ++KDlScQY>nF`ua.n}m<V.űnh3HEկI= O"l/_ɛI~zoiᕦ Iw5wW$p9{Gq\ @.N t:B  ޫ]WW~u A }UOW s\L[Eq l=TXf[ H]Q(I?tA<h΅p,x+7+yęΓ/GY+>??YƒӒn\WIc&IGfTDQ7<_y索l:Mr!Hm 4ӂOlW_,%*8,q(LΓ2okβzc·F \؃#?QA%)[$z^46ȟ T\_1*H9F@u~Fkۻb :i!ʀӴ2CTWF>cJK$p5nZqƷS42휱&:"-{}& ͫ =( 6{LWMZֳ o5BZZckZLRiV8Z OggSx"﹦0V""!(&""#)'|.Uam> 0u˚͗1a#rcwӓE.ZfQxTiow0M3`h(AmvVXWIoV ^Mḍno8qzk0n2l 8Ulk;.>\65^r*s ]/]Ȕ&aPvp!MΪz'?Z ƥ0(UX@`2|DcUq ^_7T :fFq+/d:g}b1%?D 5axղ ^,vvS(5ǮJ7dI pIQC]8D65`]9[l. 4:8%C[20 ,s-6/ R 2(ujcvZ AxZkD+Ƅ2(yb-(N)gd$qyc."Xjatv;\}5HyE Ww22.|Cm<Uq2q#+,7 哢nvH~e0]1@3 6RRM ce@XѱM `9N fɉv%iDtEJ JpK8ܬ=aA)!GBV=>ETVC뾙Xxͬ9IC݃f[C䕴1l7S~nތNcIVh5}oEVFÕR_s2bӌ)]3h~?#Ulъ[ _<@OLBqzLR2ՏQ|jY448E\SLhv5t1€wkWWrL.ޔR'P*rrlڦxijaBLs7DA멳h;>%_ JEf+`M @B(hl˥=\ )L|D *pMc)=^ܥ`kBݭH R,*40MSf0B  ,3uS(mU Ą SM rU5) n94dR!HЅD8@@]h 9B*;^VE| {ㄅ[L4'hv=r< 9goՎFcf{9> l _X^F> pUtxxȡo@A, =w8`U/+lRz# ͊ "' N+ZTd4A*4bY19 œ{UuЉ3(@0ZV~|K@9gtػ& 0VBQ_9RT{ YG{ D*uC"T TiЭyB9-O|>[b>9Ǻoa\2J#Q *S,_l95}n@r9dC@Hfŧ7o؜7G9Elڮc\NvCl8;FzycHjz.gEW.1bu\8⎵ V 2@I4`b!Ɗ/?SDiyセv]Ǫ`G_ 创^]taMSwSY=i-8Ufm LRϹj3ϢJ Xqo^lo[5XᇵqNi\+~鵕Tuh?6Ozesxm&q=i!鰣ci?ۖYړC5Ǟsn3:a73|vem?F`7zͭ5>|=k1]R].G1킀dU^8Y^ Z/h?ri +u4pq5;ϝ%L۶ M[ :g|sfoݯt>0:fw@nu3Uc ~17Y Ļc=]ax|PYi$K%w PWcPJ*`=FR[iKFd.ޅtz 4**Xc9!Oֆ4_I&h hbD*njxr;?FHyo]{˿aC\xS]d"[i⢆ARA\e8|7"8 ّd&Z!aq(rx)u?ԚНHcggs$/fVKXҢ8|S˓6۶Ih_UV҇cRxNÜs !J\!#΅?wVknxB<#Ő.yz(TTllPP#U ~&TK x)%0 PLZoAH p% J|* @ITWX mJA]&1_'R\W,)S0aǃ_̥ 8޵XH*6 +<! AdAXX{?}2,}Vp+-gߖ^+m:/ 7zjυa6:\mM%Hj:61oZ^1>JmF ٷt7`Mb[W8}m9d`;KB9~f?GX4ӂ' V_.Vonmpwb\_7dDŽF>\eU9҅k5bAFJjw'՟!I ,|!t>zR̄=$eA8?O6t2.fbM2YiVha~~S\@k\{ K*T i4~yL׎5iX}t{8g*`D8ro~f%-e+&DY=CQVpiڕGTlφ}na=b\_+Sm) 4!)&ҿ7m8en:cY#0FZ6⳽ˇvD$ s::]]z;Mkuؒtѭ Ň1 }Hm?B+~z1JKi7i| U +QyEݓͷhm#M8߈a %#r_exAu:m8k3XB^jn<4 ;$|]YtpGӷX \.-6;.B9s8|LOcY]F)m~G ]$NF7Rς6K}D;v0Iq.P:.=CWΊ'$ u,1R,kwqbb!T1PQ"(*HHѣ&-ӘexSMD@XUmp,hNBۏ||DG]dg{@]Z$F񕰶mklvR1Vm5BƁ;zq FϊNgaP3hFϧr\h/ez͔2nFa9! Ats>1oI͟lHhGԨq.I!ųDT&A$-ʘfLAZODc:xSK5PkԓbԸmx=Z&yή3{n( #ҁy*Ǫ2ɱ }ؾY=q,/T8(R* M( څp *7VG[{N^NͫӟT;_,-=w[ճ=Iіt #X2`2w˶F+Q둣 *a0MzcO{5}úY7& sK,\.spO~g|j/ɗ;ol%QG%Q{#sQw5LI5~qMaֲHC 5$m!}]iVЈ {$3c7 ԺBUM!`&(ֽ1q+X^+GBL-Ӑ 3֕ʹ:1 f-mf9[clq2d 72YTn{ jn$ @ %~YvbI7'&_5p[{ L5};mI?HL} \x.xeR 1ck ^"҉F#[05.ɑ u%2@ݔ*G$2ӌ0ޗdXCހ~wSӿ(E\[ӹݡJ5yaptxYj2u݆P즨 q{ mS>?`EXL۱^f•hoR eh] +S?0H֔iF"-o2p{VaUtJ 7DFw$z7S @!mѫn]FGRhv$UyJMkVw}Fih3G^ey(eɏɇtvYchܭR6nieb W7I#Xc:#Ն­(^\U'^ޜVэa?K5aAXFHBƑy498Ke'dGa댌DJA1e훻2WdF`Syz(@yj]Uӻ|:]v7 c!v$s,u;u 5U@uFvEڜNƄ(ꕃaZ:4G': (1fa^qqs1m5&V9lҍ<5ٹuvxՍD>2Wv80||eeпkS[5prprS8_ }Bw8rq`\K- s r-0M 1f3[:(_O˘|vzY&F2$ݿ<297Nn7y'v8edg_CtNnjoLrn.pӬ2nNJ˲ +X1)p;N,@%0̻c]!О e<kQU@$$I}KM*)Ҕ=t'k"~( ҔeG$2I2jkw`q_0ُnz̤\:ɬޣԸ>i|*v\3uKĂ`}M L+ ؗ8:ܸgDW9N&?iuɆJX-MDjn=]:jL<h܈ƚx4$LѺS46}] <8g ?LYeUD:&=~e_hy%;$bƭc;"D)8؆@Nдb]DSETq l:yknc*qe2!O3TWaU$*'sm:O4>_dFTUTETGh+PD0Ϳ7Omݦ̾%eQ?Hm #VrD2 )CX^nhفj&ciʌ/!ǘMo|e>FG}7>j老 PPI=я^RA r:@Vհ"딘6P(VRҋ["yoA53"cWmܱDT~+:%h[2e4)BCv*{lָ̹&i-͟9XG41~X.3@uF5$&P?3\L@3J m;pM^}Ic^:r8W(oƓ"h-w_>D+F4Ɖj|cF`M9Bsa "$}:E>d ɟd 㥯tcQǀ)61 N @= +52*V F_ ر".T^3 w6 ues)q/;'WcdSbQ X4>0ɓ#yJ ȣ49_P4`K@=4P0"@ȳEL'hnkja-vVj`E&eBB՜|aiHDm/.V:2c0اKMZ{vu*tܛqS Ny@ G-p# G“Y,H)QYǖk]Ȧ{}=G_cWsc#ufE!b5ZiFb*("M|^An$RABBi.kxΥrIM&E ߌ'-]T j _*@iX{jAUy0rƻa:8MCOv{Bul:lx}=VQD{np JJl7\X;U+>U[$^H FњA|Jcc|ځ#݋[MxhwGYpgES P86@)Zyz4 b_$Z&7C@Y(IK>Sm>F6Cj-kХ"zuf{M(K 1 WmkKۘ;Ѧv`VH5 Y24DKLxN ~Usĺl9zl0LuIƨlB+w72V"`KJ~5& &_5F.z7T|$M#f˾ƒhwxFn oH>tNYvyqa`mjkĂ* cX@s7Q;[:s_o1q8{V[qBL#S.mF`ح\ 0!"ZOu\jxtKѨ'D"/[)vS}?][*<=x]~Mwry] rx:GVjPeo7;<[n naH%SυNp*faWeu+`9s9-KHk\0TOggSB#﹦0Xb**! !#($&{zx|zz'!&" '##z}u|M&%Odf{p%'8!054Mȣ(ۺXqgmhUE],MUWQw]ypϏ.\һ6m%IDՄ/ĞVF`Δh ʭMY7TSUe_lY31Hw*EگELl<=8b:'Ssي6؎,Oe/ 'w6<_XGǩ{V/lsc\UQUU &$ӇwQgQKXŏH[ү\E@HLq '# DL 046LB\FF=K2ցo^rΡE%f E$ @?QjPs&nx *Ѐ K6BHYt>^rt'P-Av.!a F4Q$"YLZ:ȨDeK +z/^tO@[! Vg@MR ۠1 HaKx 8@6s>ԧ5*bv@j@VJD1%DŽwvVv8yb1G-պ%MX6 uUO0 PnY7h'O5QT7.1)`&NZks'XtV`DWch㏽~Bg[h i]+ pwN,.2|vpQ PY,,h A.uq,&-hܭ#2>@]`Ziʱrt-M9`<JہfpО.tAn p +duz)ˍ WR=)X71m;ˈ?9UC<*YƮaJXKq:6^ŸPz_ƀvqEhuO-%kz 1ߥK40%n1H HR# $RK'DD+ wѬѴ jDLȎɽ^M | &w =We:.fOxWq.~ >B\d{A8RM$ ˧d}s?_W^-[p/v8Q$ ֤Cm-:BlfJPqRgn1:N}l~2eW3dlݏ1Ls'܅Uஊ;Pم.&EakL-E$%LPj# maM :bDm+P_ՓA4Pͭ*@4Lb^7C>q3rX}Ff2g`8gŽ_osX1hv**՘BJ*Ʉ;~zlvHY@esL=L01;= ZɹF#pd7eh»a;RV <]ouC@g55Ƞbn2'H%Ch[1eNkKfa8m5~t+0G8 `y%U^<.TD*y..6Flk.K!^ ϳ3VE:;]2[6? !8Q΀ 40@ {Q D;P]`1 -9asR?[o{t$7s;r82*z%p!ECRU֧mx CyTYc9ajҦ-c?YY8E*0`EdmCq))PF>wjc?3 K d26. 7[h@ }LP2hX./qLtoQMkx_)=l/]]]fZ7R &e- sGvv<z0I".N/KMWrx*e; W 5F9$G5#)q,L %yJ r>x"""  7 ӘɣSow=ӝv4Aȍ\Ht$*k wÍaXALKފ,MWO %& !< ^<=iiȶ0\ U-d\[i]<%^& "qPC]TdDc:>ư|艅+L̮y^ѨvQ#4"Ýf"~0D@!@IU>FF_qHM4L=6ǰ('EX0+^٬]ME6~Q=wXvuR8~=%l1V 'b-N/l#XgG?h|ÏSOE+ UcU*Gۦ0l߭ aBn@ta0DZ GkD)Ӛ"uD ;L+m b8Bq,[)8 ^j;va2 #>TXځ}듽`ʒ]!wb G !^7 DՄ;Դ#=8K(u(LS]=\S=yu[s=\kDUQ-1͵ق$vm#/2Nzu\]QPӢk\f] 8S)'{7vDzi nڗ4 1L#S]r;"x$@k%ZTOcB Iy:SG曱փFaخ\iX&v.UYaWH PAp'!el~v>G2 `EJDWR[f+ϱ6LcYjQ&bbPw@}I~}^{pPS; *~e4V\äX$kh ǹ>[0kۈhɝ`, IͱȮpdqJ=ۗlL\U$`qjw[M7e:6pisU\P^2,. @L~\v_\6gnTB<$"fscS{YZ, h1( 0N@3 't (ʅ]@'1ؽV k~L#ÒdM MrqL.SYmgr-edߕpahQ-lOVV#$ɓ,wY橧סf-tn @* p+ P &@;`l&($ֺ܎j?*P(w~KYg5u"ZK6BD?DXhp¼xi~x'sS+hQdC|t9Nef;$^v;U^hive1j^#~.50Pz"JODKv"1@Ӎvv Xe z@xSL0%Jwe( vV<[&0 DH 2(B@HX1$Uju}eͣe^ַXlnUFq_KZ[XbI ѕM$>;26C tcU ]+3鷒i`\01AhC0An$e 03H[|l^* JȂ5&U:8R1Tx ZC@aA \:F4։Cp5߫^(śn؅Z?3$5,x xvKpO@Isd ސD&| Lܛ#)(Ҁ-shxZ{atkV$6cH}F.H7FBR>+PSGa(ɴN{?^L!>ܞXx_tΡ (^֪A&m$AE?h:N]2dh ,JV\lrRKV98zM(Z>.Vd߭B ֢vTKH D)yGqxeQEE&<\J*ak9M<YOϒ\ڽз۷gȗzڠ.) inE]D@ahCxmG y|Qb8=޿cswm[R3j[ENQr 0MDQ\ ?8NjrcV n"lJ64Uã*9^Izi!tB6zUEЦS.A ;z J.Cy_w~{hEa0>SZm WWZZ]5jUHmi ,@XY+UzJ\ {^[]&F̸-c$kv. @ RD~Nw Ԍ 4clcpS x < .U5 4pIxa:RTFK. Sj|d-ؽAHR%x[W8CA$ҥ@"S.NMNZv h@㸸 G ym,@ ؂(ͫ+ >n0>K@%1WBgudu_*7untS <$J="rb!s6)~@$ #d]AlǠI"|І{sr*iV `@>KFPhY(1jjˏ E)Ӟ p ġP"%$4u2Q1t0N9pR(Ud7 El@!%f @*dE(y7H aDHHK@vUȈ:hc ! dDKO(W*H ڀ3MTFvůǞb+vK( X= np'FJb>MPAi-^,/V=݂kxŇ 5sX[qR4H 0 F#"9Ղ&lnW|9oxD]d [U= UzhWdE֦H CC">!%D xvKc'?Xƴ›uO)"!aH(.;q4|7+sՅ=nKT$$VGS)T_@T7#kљܺB$JB440o KЖ;VQ?(BQXk>/o"+<}B"B D9sRln]Z>,=YKGbs]_,npپ@ߞ@zbaCgb%)gTL0"H!YBD \hs őeFWu+6|s&_3]/33v]AR' 9Ӫ\x8 RT徵W9ƞް`#WC>TU/D'ۑ{\}P|ނL`mմЋF "DxS799\JH`]V/2]^x^ ے?%DW Zkȑ?:޷'n{2WL]SWF+XH2]GjTԢ:fS'Qmp#e L~ Yyfm_Ko7VDt O͒ΕoѢQ6t˳vjvy4= @.I spG$Np_Ds7X5x~h3R|J@b`dX lSqC'#n]6z*'Xvg~$"#;?XS[:na8OZ/;9x`Hac @=jdPAT76XH\p 1BOggS($﹦0Z vq|{uywqzw}& ^]{ꄓ:5e1d۬9 G$JRH w`~zl+͡E@r<4 &@@(B 5227U."<C7[7TLꡩB `_FSLDi~lI,Mip=Ur/\3з>,;4(n<@B hZE-\W5^<,B蠩}%aYSKi ,>]<'JD$rS1fO E)_q ]` ++H@˃CSK?Rmkֈ*S"ZH]^ @E`DkwnGOk޲arw+^ߔDKğhLfbٰhWOi>|Cy@—He3 x "-p`i{*5\bb F@!2k.\-3!J=Z7>1 (Hb0md`NF_ ˳P| r GX`~W"-NE0 ˖ 8r ]Fpkmm O٫ ߖ)"J@54#OFXP̡DLDHDWADVG1ҹx (U ,^,U4q}(`b5x A>|B#]aKdYXߺD!QLfӠM22rم>?{8AdhA-AG?`5%`Ց 9/uQQw%#P^(MGJ(z2DTӨ( ͱen,/7M 4[#> 6`$=OBH [څȓ %xBl;PSڍZgStfѲ@$$NdsEbp( #9a0^ߋifA NQ> Dw,քYzTarD~\jB`Il-UH}HvHDD!d01UF'3hF,>Fu23 *H2%X7ҁ H VP4 "qq#\-@نLKlSӺQ #R",U٥iYehDn&HVŊHPN (`"f "is#ׁRK4BX(l D߰c&5gbQk%1H<"%gBSxL>oW@1p'P@T>QF"LJ6PFc0RLS&~qZ(9ݖR<"Q+@6FTx@*XTP'U#,*Jb@HVqE2.t+F4]Uq*ȁV].Ȋ eJ!om2 ~vT@j(`p(|* ̢U>Rd4xu +1>ť`^F"l\nۓA&!)A9+s>G"BfӊKO5!6~ [v <1%#@\ c'vȂ\UA>gF!VY+ҀVD^ǖDu"]+cX=dm6,n3a>~ωmĻ(b\!W;n0\] BxT:XDvՐ~KG _TŐP)W(G(qܘea (˕SD@ƩnF@ nT$NL1nyqZ>t9ణ{-= @/ w_2{ *I"0T߰dp^:"GcQ,.H!^ErD4 4an6AҒR^8.%0%i N+Y2F Σ| Nc%u2*0`WlrܑWf3KJx> 1~b5#gîZJD 2^EmR/ih^vU]Lvq[ӑe1.[$cɦ)TPX4I&*6KwVhv{+gRSm %8룡6Ts'gr齻7:Z[RBy u0BY 1 ^6X' $]:ԣFqG:ѹ>߄VVPB%:[j1U ` "@"RO۠W!xT`ԨN&~ Cyvגo冗ugjhoLwޮגjDrH֊eeܘ. 5Q DA~N)R BbShHoHHˀY 3d*M2bb tʪ8^P. t0?OܠDЗ/> c'~hޡ̆Ҷ˷=VzQY6c)w F4Һ ;2JX4O@=N?H䜓]k\`lq:`yD -4E\D'ƀXlOV1*GsQ9ה748KSʴcEQ [zcU;zB/hsXwT*ںppnd #Le-ҫYbapa9L,i dDx 'Oԅh+/tOP'ŝ~ 1)#|;am?=Ÿudc- 2TFn X^{\eJ:; /NqzOM]G!u_WVCs:CڞW\WV5{( ^+&]VPh p͕bO \@L67+'oNM L5IAURUAn P`J$l bcS;õr|qAxYf;dYqTuDW+ֽePDbK2]NcV1aX7*KSfeTܾ:Q׏Ar9@O $$ @Y=! NECO(AnӃu_Q籧O.ҾlPZQu8v_  ⭰>ۥC1z-mפ'H?p\.00TJqIHC9 H;Qq> '8 /Q%VS68+_; V`h!@hj!ch(4GhbC"VnuitKl3B${"KNo.UH9y_1y@w1 vM5 ;s'/SG6]<[S-WD ~.O cg) 0AET ]V@p iHI[ ANu݌T0Z;nn*7—+6BvE8*@M; ȀA5 9 g 3,؈= zd0aah-PK`<ۀ X%` Pmx&=S(.^;f̽4_+P!%pBtMiRWiΖdwD4y &7x:S]wDMȒh B4E,ЅF `w$ȣ ."Mc i BK@ 2S;b7"HNG"/@|(i{ \P`DVWvщv̯9%$_pxݠ>*r+q8<]J1ժ7eO~ەq2.vN+zzX}57q:MdI.Q3=2F=:$ޞ4@?E}/@ Q#*5)2\7CP/+jW*q?i_)TwUl!~DUiDFٯ}tSF[fA#ӢJ``@';G<- ߐ Vw#p%@rKɢ:B)E68UԆ؎JJ\Z0 X"^~ 'aQC_m!T"bJPSn4nWIS2SrODDky; m`0v7{TIN툆xF"cm=85nW>y1etR)8BH-ˍ@ /  ~+2P/6 i `D봋VO4&K#y(f1(}bvbYLUi2k.+J'qoZW{o+5@wt+Fh(=q{>OnXN{ CF>c.5V~cXB~^ j b( fnyěJ&`cx_:/&ˢ6ѯ̌zT,+SP9 qYm0eVr e xQDSv L-uRjbRd eO*L{-+nnsV_E^+BܫelG fzAVzDw QFF~ . #/)ƉF2X#6j5eFִ=4cYIC%EZG# z;; 4u >*P 0m^pj҄K =[YuVn70-qXu>I0XQN%NQJa QFla:3۩Q.}t;wUZ9eH% * &y*Ry=츱^XD"p iBʦމxVel@xsY iTU雦9g E{ Q|$+&aLb}>Vz cdP X4,4Ҭt'-e uq'fH&P-"S1<'TwSK ^PIp֣QZ z70+u[n4r' CMtej~lNބpޫv96,S()!!M)J\zݶGcy}4t{E0e)H)n@0(,0QS 0!`B>AB=VpTLWلg"dro2yϢ| ƣXĆ20RA C") t`Z{!T6 c/&=nAUyTl)l  7\D  }xR#"QĤ&+?n4ҖPJ氡iLSf?ټMV=dR:1coG2 26 97^43P0V@`!W@ /<)0vRobdADC.+ҭ__r(&垨Fzh5 z05k]FDĵafYW:pa24n~evmءks[Hq`w81ޯi'<Zx7ok6"^x27q[JfEwʟ31>H (h1Z~ZWnMop>B8f1"H/#v5GjNMvi3XΒ,씐,v"Pf~V[J?"M.7TZKS R'/egXUfvK 'R8YE'.@M $VnP?|np׋r7QbL$j $rPZԁ\B^ZbLōե 6sd 0>m=JV9ְXZgP`K2u:},.*@:gۤN^S0_!<(njX%bs%RzU8$5&{[:q;#p o3_W)!к aR?=tNs "sddH<Ɋ]B-8(> @5Hkh:,?7NGwm&A(f痩1;)?[t:\k`@9xIuxX<H g1(~ ƾtw\gWJM\On'GO>0_aK2r"Y/JN%TX@[ƥZŀN걆R,le<I$ʄPf=m>Yf-+-7qt1]a=wa (¹01Ȝ+Zu$ܯ%Y(Ls:]%c=H!g4tf bg 4d鴷^4;ݪ?[! xbv d+anrlVmי}psGݰ+++KL`WiSJ~wZzˍe9a0y-.\OQRP] F{^`awwcmYULgjхBzEÓ! 4Fʯ;iBt9^], ̾7cxrs?URWz,|+]ө&H* cm겟R:?e,vkX]l4Z?o"'8CYӿ<=>:=֚lvq} N),!Vz1X+2tP%ZD*@@@s FmnwĪFbS{C jy+Ɏ(8gUC)K"e`kF_OggS$﹦0\[(,&%& ! #!')&""##!$$#niqqLx*6MX+ww3n{_3Y\$+DJR[x²o7淙`Txj,q` @s_u12톄Li4Z}^ $=@. k٪]n,L⚌EF>PG0*OB]# ą2l 2M 6z^3248?4/!cK3ճ&u9t3 r/]FtFtBr5@\f7حQDƒ4X$j"AHZE5`clnї9P4(Ѥ1<7RdtQgW7F"Κ7;@@ )Rhh׈a] .⩝I`5ڥ 7ފ?8 HB̆f(\NA X>U2 CjdMO&䲲HR4l3槜a= EK sbzQm2ar8q8Jo糈'H?Vp܂ l;cFW {w긪D#V?JXs9IoJ=O{|+g{Hv;t/c##c W{'v<. ZJB3XcwE {s[U.5Wb E] 1F".$K*&Od*f]|v@0!j9m}PP,K5IrVx0Ξwm8(K$Kʓfr͛L݃]՚B(,ω#>Mòr8OɉnrW&ڇ+DfzsYw*\nhbjS*џ<ט'{6^ɍ6wK$bJfTrz=qv6S^MڷӔDUKJ]9v`p4~ۑ󎇶#7N `8PfjO/+ʈ֏Ȉ|YQ1B%EMy ENٛ7[p)ή fx]m[U-苮yfh/xH|bE)*Hk8]czCH]-^4c2|nD`0+˴ʰZg-~% -L @ˠԫ#}{cmnas۳~N06 ANO%U_}i:PF͎K7-f.M XBM L;j89c|t{\cHW3;SS) .^ PD; huiVeQa 蒛ihCTM x6(X``ApR @ /P 2H&l䏈Xjb^`CC? bkT5G\8^m&H F.( ~ |HI k/WE|61(.1jl]`%q6C)&w GH&kܸaD'EmY?H-ɢè`6;C#RRCi :GżҢ( |BԱ묨R?V 1eguqZcW^}=tݶVb2є)u>ZgC3-m<=IT9S넃rf)xܰ,)J BeaM_2MJ)~تH{AK ?t>D)SC@0cl7WSCwwDl^4U@.eBߛ Q+\; ǘ$)7vUCS<,s@;wqiy+NnԪ* O !ܰ sZ,>Ua0fv3V꧁  DkΕj\zםYi44em),ٺen]R{ɒkl7Wn.oYYn1-^(@2"Og0HƧɥ#[Q=c>7o2vZbRd_Y LX /cfVOcy=T gKG4ZkS |s&\R23=vo͛WpM"|6cs;(#A5%5|XYiBe T䰯X2n]BE .qLΔմ.;<Vi_ Iد8 @<8j[ l_Vx}cX&(f7TYYն뚧ʆ]!ڷe[L.d]@YW5 <[_WJ)iU#XZcٲpjbX#A+NaI +r ҧ(clF^|1y.EWXHj-hʂ p#a,mMPpnl`i-V!1?NH`%H*+~l)FVsY*A€i4u G"J)bl:4tpK#F_Mv) 2`P@3T6 p $*"P};^Ms=y䲖dBf{e-,BȏHiʄQI.r@s 6^+6)`K><I$j!B q  +zė,vC0Hvs R(-(t)Zc%ʧ_ShO9  D>,H@dkPJ,F Ssq$X^-UbPta6nR@W@ &Ba9,ĸn{}G"9 #t 6> q*7JEv“.w#J"2OggSg%﹦0]ϲ#~~$""#!$'(#%^LֵtYk%yBMY vrӟP 1!B=3q' $hDj& 9NLd?e@h78b0>b5<(K~ޔJX,cjU2z)Q"y!{MCw _qCz[SbD] 'PUDDIʽd| | B}*+7+Ů9aam2m[F&0oO;:+?h ]X}H J\i'7Ipmxy=~== *## N@@dD- $ id*Rt}G.ZĺE8B.,% %1TU(h%N5(9P7uzLQMd{xWP[<-UgZPf!/DQAМv3}VgJ8tpB+7}F4T,O?gjx[P$ܷ =$ ,q@㓹 hno$ H!r;"k~t:WZJjL@\R1j *%պ`Zk !S얗),=~fBhk@VкP?"Edp;E5I5KTjpN)L ܔ^fOqt߈Ė6|➵Cl2L1nh(ώ#U"A%7.$1+#~&I"R |rٟޑ]6_2qфGq=&[CT' T8C/z,aȢgip`+K\aws@j+cx5nKkɋE뜹FͳK60wXW(W.^&A/4es:DdeI}u>aX?i+%#@E㠤H̗ U@a2eV7T82TIIOP%tbIUeVqX*"\Dv>-A0pإc.08X& BJNr#3Kf8gAǹvmN 4@@n9%w@ƇB-\՛J+^e/7$Q_$VIMcE1DK?*ތNe4@3]Ҹ(4r#7e3i,/l#TԻmt8lEQ|1&%Qli? U8mW|ܣtBd+SC' I4>!M]ҪzyxxYѳ뼄Tøތc#e$ӾIa b^93PTL]25ltc{SyhHg'N4 VWa x.ܯ9DhJK aL}LOd,ܝlfc/|qO" n>pWӮv(\%vH \/W@|Np ?ѣ]4<-/:7BD[v pJk2!J %Y(q 7ufٲ"SjY܌;xjvQ{1t(T^L. 7\Z*Bl@0j% a3\ytj鞙%SuIz[ZGz @R3hP]&((`@rcBc r h ;.B@ Tn,N!B є*Ld<-sL((Z6XN`ק{{O9;/6 Wpz+^Doa#HE4﹁Vps(nE`U,x6_Hz%2Kf: g(R6u%δcr- 7(ECEd <HZvUXY9J`4̬{ɺZJ6J19'u+(ӻn!=%%+ƢT A#m.YX2c .MŹ+1XYjtlQ@W3/Nj* j)N KԂZYcZ>%6LH<Ze7j.($&Ze:w~CA); E-!;|3b 6YbUv(~]PzP4E8$U1Y+hoʝLcEI|hVK5;v)@ - pi %R٧E>cW9}⧐ṌXn& /wsx%(.>뱩s_G e~G UqӖ#Z`GJz2WlY@6vJ۪I>wڲ[LDIG-u%\c'!}c~qmpT0VfK8b#,A.0@x~K7 ,%Wk2BQ^`S""#qڟ'A}5u¼Зآ#g d HH*tύ:b-7Kz6#^閒"g`N >+ؗ"B@kǐ ?  SLMQ&I ,3fD/$1/L~}~ewiMgCs6~7'"%cvӇsjNǚLW+QUQƝފ{L^Kuq0<X !&з&m4ۄ :FĄ6:DSs%<RAE<-jm%wIOQJ- @\xm"k#p%O lnh"wFLJ XeK1>~C@ۮ  Պ eãlZ<&;Li3 ry 6OG[6+IFN 7Y503:P%C\+@ %O1py-5$jVF$%S\!H{խ;.M PqqsNf %vJGL$NƖ>]>ޛn=ܬIku;0@EC@(5h;(*Ie^K )XDZ,4V+<#˲PA˭iܑ 3r.U@Mȑ}OȦ逋Ca!lBDc L 88ptekcpök>Y'Uȉ0jBQr60w&! EF]7ҵ ^N~ ~cu{2ӡy'$ KeÀfy]ec2,ٴp&2o8$ctR!bU]a u$#[c-4sΑc7IYC% @o{N)%u`RpN1AP0J&DB D`6~1ir}ڙc $hy/̶(EzGĸm\pXɰ>d9aU N|h5eV+B +Kxm0=ᕼ_޴e[^ ; ΂E7}X8olJ|&Jsw]B <`0O=Eb l@` 7@f(6P*)!@$۳XMˆq ԧ3"F7-P *&t>YѫcW2iZ.R,?fdJE(L>y/N#I IsphržT.VEt0xEP"N8 Vźԑ$Pa=bS "~Do 89ՏmHp{tâh.(z,<#/T H'h\AI&V1z^C:Knvm_ :Q]X'!D<ӘQ\}ϖ}3Rk_Wu<tOvT:tBQIғ:2̹W4gϞcPo= DGԴ,͂_._ 1(A ÛDՎ9v+^پ | A6&DDهkUl3{NsZec̗7T^mo &TCڒ;aTdzʷ_|\]#]WwxG〨NvWgߛN2OggS@F&﹦0_ R@,$$s|||#$% " ($!!!"#$#(&|rwte]9Ykr( S;N,vA0^S1dpG""AŁU2~}9oSKyoeQ*@le!?Bw\!tmrڥvg*)|q؏5>&]fAi6P%_]*%O%;t>NΗ1$F|w   b gLtý@@ $LAJrQ9f\qmīpQDb@>;f43Bp oByu&)GW\i+8FiL peiJ2gFئy 4r>y;8r/Yg2\2f~U@$(! u^hǽ Jax2IR 2:-5|ht*jȝ!뮘 ~Lf1H:rt:!-2"=F|OE}{(@ 0Ce7M밋>#@E[¦R5ݰEPjj]=]iK`4 FKh|fk!Ch=4R2 lPJ]SO˯ö4I/5OX[rG+UG@~%QAe#bP+FZw`dbGɲPI<`D bk,Y Vb[y)*ż0-uoͳu.^p|SJD%vIbVE6*˵8Ex^$]RmD588\z@'w>bPWn!+HJqL~=/ \\e4 eH^),ղuz<<l FѠy??k=.jckB'ҡ5W\?ev,skDY}uu{Xjz7:Km46R  EIMx.f)zT,1W Ju}kSg{ 8RΏߌ~ v})G H Aŏ 5v1< U#d Htѹ@0%>}H&78uw#3N#1HૻhXK뫗BE"R:kQG" !)e]PI+j1%Lᶋ/++^.+=-^L^0l!V>m- SC) [Zx'X)fsv:G3MYBnRA@r$[b( >6Y~ ^h'U5xsJ;8 e@ݦD PS8 KMٔ=%§(wSaXC(p88lK=wV*>Ihj?^We @ ]U0k>Vb `dz rJジkUk@"fG*jK.İ8h1'uoD`sC 6ha.l2O_g7G,_\0-2i]'$9,lu$)Ǝ3(@^2 +cX7ηaK>XL,>5B;`Ԗ \F]CҼ+&I;&;":E.mF.d }@/֥۟)ķXmK<N2pZO8H$)d*@jA{ZI8"(sx1ngΰj0*w.~K,r3X7ESpHb0= (S*.1 ԗ=LD k-%V ޗVC3@yц51/f@kZ5ơ '` @@uJu, e,~.>Fڿ+>%BpIh x.(ּz#Yi-Q86^┏CO I@!tZؑЮ>2bXlSR:?FΟPN-[_}9\`QSȭ Ҳzٱqɕɤ^e$C`6LS A'a |ˮuU) nXCwCxAۨ?r =^^چe2̣ˡp!jܱ{r٭u*+:<=VXҕ XԻ*VLdž6 c)64@L8gа_hޏh#?4~a0= %2\k<*D`n Y uku?+n=|xp,]{Z (i Jᓧ;|/IvE"-s0Z8x,YG) @JnC|HUP2E*h-wD\gC+Q, OggS&﹦0` $~"""$" &';ڬUbmi?\ΝI~|>(s\ H)6 ^{KE}<@[_ew h9g' %$KC  P  V} F()p$Pu/ ;F.~oBwHmY֍-v-%I6NTD)o?9{_ONcrz4PMC یcf@9ݴ@cn&JA*>R,*YVJiw pjNʱ n+u_(5UrD6FZn Ǻ:}vݨc R2:%:V*?U֕q fcp؎/xM50@5+2 gPi \aB!$EU"dC{F#B7ʜ@퉪;Ʊ 7+&)C|^cܑ+ɟ~JbQwla M i/ b.J_A | MėuEi;xYDL3QIA|PF&>,N   > 9J+L%O{.;}0qߖab|"s_! !QBMhS!~Р hn NoSq}ӡh73s1(սB|'*yG:N鼠ǎ1=Fua9Ե>,ҳr0kjP4$^$Äcђbi!_5hwP!6;h$)(^h-t A!?DUSinϝ I >Jɍ YnR2&.4=W7pCf)h&CD@.͢5ǩlfu2{{'Lh"nODc]Ip!A@}zBIq&co X7@gs'1z/Jo^Ɓh)y aiEZFHG!,et.W:NDyz KpS K`V9^\vuO~9uI,gúqn4a x%e$i< 2,n\NS<aYya@ĝ`KHD8ʝI;fo$.csiX4b߅ bdjЀa!hL+p~+?|߽U};ne&u1[ DDg ̉2"tv[PE2# %J n$<6Fd$Y2Nm B[(f#ߥrS5~qfп 41.Mq@Jm5p5`3D@$zpX )Bܬ @ $/TRsTp7o]~+fL&P+hg>)JZuaB  B0@arQNgeyx9a#m! `3 4Hq |$\9D VR_jv.ZxDD +ҥJ8h_$p "  0C 7aPFnڃ7!T֨ρq\Kȫ : W`@P0܀,$DihI`*.!YR~;fRDO`8hO#tAK\*F6`CAq$(P0 /bї;;XWLgՂZ<H{~h0_\.t3Hk3*O U` nXhvlDX9 1TPY'HsØQNv! Rț|Tɗtݡ]4p\u=2qWt(Bw.?vJG#=3y!ABn@H:(q=8enX)sqs)j¯+'tIK_ $i8|V=~B^L. "޹]駁BP9#nhWɠǏfc/xz1#ҝ7rcV.vY<Pݿkm C"$u/D-U|bn;ʕ}r06vC;t1<73=$f)Nn Ku4~B eb\څawLIK6g:~ojxrO6ls^Ś85yʟ^7W;79?*=RFA.7m4&t qZd]gݻFoeXCsZ)͆}9Lkhlq@"IP+}Dibf .<,Jo<"i&28q DU$fPD|j* S)O ?{-u.<cYʜXiGb7z`J4z95IDYk)X h}9IŞxJ&by8:^D˄xUO l8Hɻ Km5 N"0W Zɱ/YPqT0TnچM¬%^Q]*wZWYZAfG Ț?#lȭu2 DZh +"KƣXZwV [iXLvO& gI(C†ϋM- Ih",'h~K=/O[~p ^n (.|DFH3 "C8JIQ繠 G#!I1Aa#VJ;oEbWLS&І V6pAa?p-y`lх*vg$f }CTM &HCK":R+ + |n %&"F ROggS''﹦0a˳[,{~{"""!%!%&%z||~& #&#)&&e0 ?ZpƂ5Ӯt"ƶ;8dfh?1^̝:Q5_2'jt1 `R}2!_Q)" 3z6y')'ΌjfqRj% O!*PJETu2,^f(O!KQZɀ+Aʁpùfݓ \C)R|}|؜6U Wg)y̨p: dĴ(ԼOA\ 4 .x ȃx W ;N'QG3#9Z2"Bօi|0_exwn?/ 2hxDhy $8+\2yTSDl?Hr#LM@c"&adĆ?XY/ 0`h#l^m&Ȅ-੷4a.ҽEwyH]V@n8&ɓZ*FX;6N#^Brm-@" KgG W#܄Ah)&~XGW{l4YvwѪ4/ @rA|9 "lOq(b]n iVB Op4$, .Kv" ?K.qp/& ɀ%c6GMZZ;|`?1W6U)(@>g.&Zvl@xUj"[]7?.hª> TǨ0Vda|^Pp?N*Ȭ^L#^xxmX+lF @^e0VAPWoĉV/orsZqUY˪'4ޒSUKDBJjҗ.^ F2`[Y/abd#e:E|? mSNLJ?gLhl?Nx- ,/FMHJ*@+M@Tp,jc?@e3+/Ђ.Iq$b@? Tض^:.qI3A%YJrHZ$D F!jgЁ}c}q#~}jޓ4@;O'Zt3bIL1cf2/Xw 2p 1dP(w@(`|xu|#n²xx #!$'qчP)`}GDԡv;vS`29,r]o~'D͝ `W"""jXX^F=_O}|\>C -K|j`wI \GqFܛQ㏃68[d>Tܲ[4z1rKb@\CVRXDdf)r>x^jyphaěMʔDў41crLZ _5H4D,Mef=<w:lպ;6[ BX,LӸfs!`tu"ý׽d4b~@o[G4m]:jDOp:رmCUo< 7H  #\%>2L4 nɄ(Pn#XpaTTYtsW8[@x (09@u$wXu@TPMX,i>E EVq݈"  (nWkE~+6E<@7uD00Zݖq=-y _BŐs(ڊA.xA$ !UWk O"1ⓓTʊ} hs4#O@MsY+%bz8-$PG?_"r?u퓇a߮do_yҼGTԫM2-~P>z+` \ "66)bn$O:/DD Y<iApH5}{ VQTZ3_:[bF{@7\ADu= nl|C`SEM4ӂ`_<х}J~ʀ+ r|ֱ`37bMWݢV?;a,ZfqJcK"ڌmMhv˅ >" )-A9 d@\^~Yeg816IlWnR}}N~CU " 1q*a:%QJ#J7K]JU|.f@x=lv¨tX`H!$l_p8[4厛ۻ]c""@rMʊ@P-E@0PbSA.c.qYQ^2|HBh@VӐOggS'﹦0bWZҳaW׫kY4>[NHkUh՘JhDR\^ *gtJi HMu .Ma)3Nk%LgUT,%KbMv)JTH "u3$(VP` @ 7U.nQqsr9>|NN dp w{XfX(8_f/1koDt7O Up2@@a @r{`Ip*,`>$jA `t0hɀh8~LNt"P%tݝd4sziŢL.%3$g:n71l ]g Ӌ`/xlk ~ rpP8Bw)A &3$a%k+^aQ 5|c&̆(zsIN+Ɛa$ K GXj;社D%IkR@Vc`pP` tAQ,7#cp] ""e >K&O։ BX3ĵ+$0s#pLxnn B+C05 $.Pj0}\/9hv857v .KQ9#pmdX:EVD_įp2$ jY  n-uv8Lxq5S=6$mЋՖƲSZ"rX @ӴϏ,Wt Cvr%>5nZ8R*oL+ٕFa딦ьj7VbILㇻDE!\*E, ?R-G:@1sƩr W9=F䇉,tX|*[mV9AZZҴa;Xk5ot#)nQ "]#m}DsEI_TF>7_'u<ht.v8qNs7cћZsPk,,2z9ۅ:BxZzşC| La9R4 =j:VnYݗF;VH2/ I ^] @:M ))a!xc~^GhooMe~Zkt~K2m| ׈E+\ %Y A%X2|^`QjU9j&r<<݌Xte>$ڃXk!JD)Rc Nnn_Nj%#l_T"gұđ5zN2Fx-_cRá8H>CCQy=$RZ-j%5LUR^ *4E, _#3Q?iS nhޜ??Fk"u }( B@F/ǡ ,#z$*f%ubSy{!C 9Ms6N/j<`b -c:Rk5 j^`~h<$DSr˜\nf8=~|Bv3ѐ ıǤ,p8dH7HΈq@}-#Ƨ( naŕ5?&JB.[?a+1Uv*EO$XF ..~%2vC/ |0xfe ?DەA0gʗeBgۍ@z({8"Tm19n;OSap:n #{1o?wEU6\V\zE+}o XuCƓފ:z1v+F$L>?H8,k埞ߞV˫1t?0}R::iIXY7x!>m\8 FVU .3SҊ:D,}UrKePWސ`PRZ^(TEVYj: iwܝ;[g\ᰋ+qyTq =O}uoz+z497YR_!qP@%Ё}.fU`Z.95Zʻ@rpKf^:q0gNZ$(:;%숆cDKdz>\u]Y ;]w  ݯ>@:iE]@,6pg ;VA9]jFR\b05=XßӯujlVBAlJ 5&|&;)6[T~']>륾 ﴨO,=[ͻDw82پ}e94`FAB`JcU. 3BR P2}HxDRʯwJTK:`HׁGR%&.-:ثky JFSJXqdF'|.䰸uMz%/tukn2W΂&m0u]SlWc>D!D(DrVAP#T}씁HEiZI8l3~eo^3bI6,bu8g݋שF·Ås]A()5nhU%r(oA[v CygF77bS뢁QHK;3%aOggS(﹦0c ,& ""!&!((|}~|'#DO3pN3{ꉨIˑ H5DD9$]6Q\+w[)FS<EsFu&vx0K?K͞IZzBu7+,2[2מ$|!),ӂf|_Ck_rbe{䮛BܭZ7,Z?r@NsHͻ7yo~LthG=X,ye5dٞ}/L[Q`p#uvIzJs~=}JjEђ.dX;|`#D$e&Ef_= -,S"*Ŀrz}ꪬ( G#y_j#GdBͮgTjڀr%OI6C{Z,oYo838i^ + e "niŇNz]YDyM/<-FӘ-?vz#֜ ̪qt u<51ŸRFcnoߴt=5t+&# w]5Wj N5A. ռ~ ƒSp$PDPWihiUF :f;b\~y.JX@.#P Ik%P+VYc|H^VI1b zŒB!E*`>E _.$,<Q J]8XϮa&QAT@ tЉq1 ƐoЍ9K!jˡ$qQdb$i- Y!z H;'WB@]=NS"""55wK"N;5KԖP}hTct`L#~Cf{4LO3O4Ýd[#v=vF+)p͡1?VfńR :b, j>0WC䦃 IPYaEA(~S :a2:꧔h3 "ChZ'C5Z<^dZ1}g)zvݾu!& pO$4`杙_Ǐh,1V, LpR(e7TچLUA"[)hK\z9 2cD)s,p*?)HaLi9kh(^F\Wغh|"zc:Cm0C K{E$`"]v2( U%L ȼBUV@!b^ve4&Tw+MCfu]]5Oh7?wBtųofEt.yWUjBh y*V|%EDKPӪ3E),F&KreA DntŊ"FMgfbGa$ȡ^ BmE@sTl%)%{h!s;<vܯ*)!u @] @2D N vw ILC *n$2Lkޡ: C /6e(d5{0׊O㝷[v<<'޸0U.݆9@ = I a Bܰ J9}xK=u0JbhPN% ' qZԸVtqHbt!)jP&AA$1/7XFM3Hֵd.|e2A?p}7&HFu38@@ (OXD7oBXBXa J *,1C &FD!_vҕ"]2|ab)!vNB:t]RF C +ʼPEPDOH}®:APd0# eJ6=tPȈ҃ܯ|*C RqÄ1w;a*>vя@Ș̆z|m@'>:a Ā| 3 _*p3(+pC~6A-*Q^Eԃh/!2/nBm4e:"Ά#ذwze=}d8صD!XחDDwAQ8rG#{dkW!H`~;$ufӀ+ї8ᒒ-cOi *dkc'|֘+sW#ҍd|{zz^<l(7^vRXHSDrP#ֈ %cUXR~ 1^|("f/<8OKz idKjU"2Ĥog_x觮o8r:s*-Pȍ5nuU"-xY+#z~$W]l_o)Kk|ꅢ7ح\d($`4Q'lK=LH ޾%k[L+~]: |] Īſe(訒U#'7ɒ)eDݪ{܅ar[*co L mcD$HPSH9Vd_ IIӭme1{1_JO0%)OJ4`6{nJ4nK|һzܽ+t*nAhTM+'BuG >H{8w.:2+ WD t&п?HuK̮dre.LSeUtdn*EK~1O{͞LWezUМ(6s{=Pڬ,#[ZfX<ֈE4X ikX\+Åz{8 ![gddHN8ydQⱈᛷ-Y_,y}&@EreaA:0.MC@E, /:wځ`~[جPavRgoUHDf&0 `@ rlK# # 'V:xtUDCiF @@X\Y,5 +SXD*%&BD΄ [fTo¨:2ZܽVKL&ɤ %+JJ.6 `d(-z(+0%~%n(FjyYtkNH X0uc .ln/aJHn8*%7턓^XW1ƢWbw!}h:}PُNY4b:mHp & GGR7+"z熥V|2PnXG!VDOggSf(﹦0dt6'$$"!$!%&("  ##y### &&# "("(&$a+t!(b~s>\뛅%c;^5_rrN`a'go`Ոjߵ - $9Lp)55L'x-egߨݎeu?' 횯Q 8kps"be\.Vb4Xa4ׂk?1@a* 2°T4Oegxk[>D$RF%9w 3Sߓ@Uv$KZ3f~?W9gS T$⪛="yTGD֒ըfTvQ ߵ IoL-.$eݓ[SJS4UK7ӑ:M ytE.moJdLW"Ԧ1w'Rz$ ۩* GХ/ $k?Ix*dUAU#T`GMKa9f_d;B?U:+ΟW;1Y3d RyX6F{>n0DD.awĦCK}h4^ugN4|wr+Y0מ Dpy  qєi@8¢I;cکQÍqA")pQR~;&ŪHݎ,z! WZO2>äZpSWvCfW0H|@P QmT~P,5? WA.^3Zy$5"`QD;!q;f>%91:p#cc9GKbq(?aJl͘Wnt+ `@A(:v5"C5 Eɑ1F%HX$P!"^LTیKK a;-Dӳ)3'D.3_Hї&L/%mزHx* )C& #^ 16?7I`QHQnsdɸNp뭊EN5^nVbE~N~ LXiന*ӟHtY]X:8|aU]rf'Oi{ueR=K;4!P]B'CXLB][kIyI*($45C: I ^|6>MPCLhgj`p-'pD3uf "@4d4hyN42*m:j6(A[8H"R].& H7՛Dz>K=e@WpFE(iN^|<;W#fmz4bONQ\'RS ';dI9}geg6~CQ nwGD5HX(_ )nA)j/#! 9vKAƽ08,b$^LD# C0˜KuU("M)44atmd/3]0C /{kD~ɢ@InuH/b0(+jkI+AR `&uR,KhVR0%E%M%aێ_{.V6"Hb"2_nL>r,}ۇoo>m]_&m>@nAD} WX?b&܎ B<"H"Db50 bE-eղQۇ@L@n|>%JhfMܲr^%gzpsfR==pg<x#X8-A-P%GHn*IPO^[RCJ#&-#¹1nL&ORf2?6L`fbLs .s}Jk 91eL'3"s~fN΢ePA4=7ԄT~W&F8Pj@*.`*+:fh ׻Uյu7D5 > &d,&2Ӿ 쓂TU.ʯDDD"h>F1(O''1Ojdډv!LXBcԚ|^j$<á[J {8`ּa]f,Nڱ<:;;}#iR hoA[ȍ( &%?7 ņIb" h]"쨸TD;&O2w]IK6,,ʝ\II1#dT `XXoLIPW(C !T\*X(~'a ރFBRC)QR‰crhhǎk-F;"@pfђ 0P1ܷӛc.G0tK&i1\+qn0')r_RԥPz{W2,$cgJKSJg | l*JDD͆ΛFA[)z},.uTi޽]N A2W'ޡQƬrCʆ,w,jsd٨|:CgYw9T%M+rwT[0hi)!0?UɻlgV 1\s>&z5 ߝOxⰚ?.bE"vL֐!"r +_AX׮ĒD?w>rW*Z\p " Q !B$E: Ȫ~"$RTFnİ!ԀTD{a( "4tew]ǛRjQT1Qv}86rh9J PM1< t@kX6On(n j^i<lsn9/{/w|Uap˕ F ,OYʣ$EX8Ki+[hZ~,\\a!f3ӎS߲t \iXΜvതFT4nVc ە00(F[ `d/ `zlBi$ߙ99E˔WL(C͐ >Ƭb[[ֱZ2lKE]f[_1W~7zzw0~bT9x_! MQ=v%>YHaXu uxLx63YtOL!eڵ.CòWR}gfԆŵVD {w|f)eu2n5T{_c&F[,Ѵ!PpQhOggS(﹦0el .#%##"#+&%×"## $"$"!)ތS,$*=2>, >QTRdafΦ.LIϊK:v X,Y@)2u r QMbx_aYnX]Z徊ۏm5Fi~<{nO(+DEmH54n β^LN=?zq9ք a-QtJ%*Ա(RFΦjN6O;n㙋]MKB5୼@4#|BX$RLX17DiȊ}7 Ո9&q:&UcԱޤނppe٢L3V\P^|.S&VrD{|.sX>_2-a;@QI`0Mm$ҟq>?~1(DahG`D4K$0 CpS?Mz4fqxq~qаk!_N[_$Z,,R^bk|" Bu!ZHFYq5?YJ.-s:E!Yq+a_Hđ`T8uJu/n?{DF]aeVk8x c/ N65ۺ4W )EM`1/7,ך~LcC@@ާ년Cq9˳(&!3̕XdpqOsᵋa!F"  H%]}__g5Я!?: & -;+f}f,ez}RYiqxom&uV;]- ^lֵF߱ZP \ vXj١4 ??GRAEd'G-l5mz4VHz=ܓ&$?CIs}'ɾv^1#vpiROֶz^'.&/P.=\Uq!{v;o8ߊuD?: -`>?EB9kW=ǼU<sγ'E%Nv^ õavxYҰPbvu"?Α<[O]a &0_ 2ڠw"9BG DUB|dJsί.993IL[ bֆxNw栖I>*BLѶ.NX2!^" !+e5ќ!&/ǧj*i?w/Vi1ɸ^)9x}N͜jgȬ?ʼn$̞t̶Gw:{Mn7R Mbgx`8֙^n*LҙϚ:KrpK74lZo]>Q ͣCAbIAY V3Md d8QQk!3Ņ-o#fF;NU&`@b `#[ .MPHhg@(G+iܴ";yЌ0;Iuǯ2FA~l5]nXk$E }IUi)I}.HM0 24c0e4/N;O0j9{(S@Y.(/ES4P @ bK $ `S`Tk[eJK]͐hksȻ%E4Vf.{x7M.rd- F& )>E\uIKZ߈gӣXȯfY\AhK/kJK @ @9!+#$>n VaLUY7%+y1U~r0_<\Y^Y vSRNv]0.\Jg-Q"LWUjcjݘ^%QDUĦ$+[9iXZEQLS2*J?~[2Pvb*LSIXե xӱhX݅|2dbdY!bUXl _k$epF5tӣ7JXdcd6(MBԊ0N%'JA(X J nPpd)+OA1}$?MpVUCb}pM[Y-Y (E)] Lw *(HXIPIB} k6P! @m`;yHjA&PpWqS$:)U(`O+3# 7 Fx*- HU@{}H9X XafPVբH͂(2.HD%^LNwUCy*XHz. MLLS"J\ŧYalqF:"|vx\!p L; <>TtTaċ/>qD+{+7!p6KNmXC =YT 2_!2sJy቙L<׊H#QڦiR4 % Sl,C+:IV H{Oaih!.1_opsk4ܕ ſ E"^ UXDYd'S<Kٰ]ϴ'wq֢A\DUT_A) ƒַ=IsY7XmcD۸<AppK|7I}ُ鏏|4[y$҉7a%ys74d8n&mrp0r;}x/2ujd8߈jqES͙edmBȨb5b^|v>]Aą0kwaۈZQ=ADbNM)›uE&:VzOl:6hݕZ'1^Zٍѹ6Y԰9M!],nF@3KDwIQ<~5 #nVa b"^v JSF躓[u"s|lj/;>":(MSCXP`Qp {;w<@1B;/&R;{^P |װeUBU.iAR{g~h[>RЎKXZ-9^GP Ll-g!` N鴨?!?'_PUSw:Lv bj (/ VX|IMT q<*mQı8jǂUHL"IQxOggS@()﹦0f/!%!#"%$!!!'#("! ! )'&~{eڀSEW"FX6[mw'u[5$q,H*$-6 o"Pj#_έ:Py? 2u C#T瘍0)(pǚn_vжb4<Ǭo-q:ߜE'Kpx/޸rf^+fBKD.b6K!RB +b40 NzPvzV Cn˰po~z i:wqT  Hn,+"Ʊ#1MCAˇp7Ub fZb(nHܺ!v КZ04`)ý*Pt @mFݯ*(9W zh@SBt}Ŋk2 ,5B N>-D "ܽF6=t=-F+%AmpGM>7_ǥMUkZwvp7ltv}:e _Bb0>!b  4" :B{ * V8l\I $y{dcl,jd)6U )%zU(&iLq6C/V],A,V ~i;1@ɑS'*X%֧t*YD^f4"2z@!񢌡yPiJ x;D=yQ` 9H+uAk^l>bЀ{l%E:躠h-*Ut`!25i\5gT'؞tz|8}'hqYbi?D+\10+QIQPXj[P~\DBXE\srQ#ߴIA-5?aB%BN%,9T4"ߴ] +0q$ &KI?~0 _teЗS-mE}Ułx!G3HVk6m%Tlkƻ-/p;~E@O/7xN&JDT0d*$o.s( TD猐Z@K64 Uxϐj\"qLnBW/]W!VTwcY#8HA")~aTW w?[se-gde٠,C'6e1ʛGwar}dgAޕ&yvbw]L6.mE]Url0Xu7\^ӝ;@b\HۆR)a.)(qQxYbz--e*BY>XXdcU 6z 50R \aPĔ 0*u\c~$ QwI10r#j Da`X |-^|clrX)nD ]ux4QQilDvͻͅsDd)ʄao %@ `8ɼ6ژb7W*YdwFm@7,5Tsuk=QKR|k8@|}\ <Ӻ)(ZrrF%3,jb:zP,~6}jJn?U` FT &(3$ě{ա&H4"UR6Ԋ & \."kv 1^9H%jp"YʧvDDD!hRr< ϿʻX@~cum^Cc҂nx_X*Ca1aTv1#B1r|R ˢ7 Ot4S".<#@s|R.]yl~fPԥD[MW  2r!cf)G_zCr Zid"$SQ㊾\ܮBK!D4}vPk1$L}%"-%SF\_Ojʾfq`ÝiEN⽓4TelO\!{iԼSs'JfiL9='}5_*Yl4u4  @:Ng\6>I`J/wA58J#SK**$ y\_ݓEEB `5bLSH6@?^j';e5}_(_R8ՓV7CyR5HkI}uPnYe!b],~NdR%.1.A#8i Wӏb0tڢ!甎f5=bs4&+cerW@rIQRWi0`B#w_5/*L*iA[IaQ{>w.QZ[m5HIXհTެnc!VY=KG 7hJ*;hGI{n43͓EKz.NcUD@~2/óAtWhEmT)×}2^/(SD%cmyB!Z,EA/QQB.5/ZK d!P–\U&xti4"ܮ F摆62R J6 }IƸW=j Yّk`sxwI{A)J2]UjEn%ÕpTw] -pI"~I!%.\+Ә\-wݲC:d,βa8jhmu\%אjokNb\jPDҥY} ,  W@BOggS)﹦0g6U7 !$z!!#!"&&$)|!!$#{#%%uXXEn.H(+ iyt3DIo">`mIR}ˆx@ "D( N]Z"?֫L=F롚k0E =\ƫƝZ1)u*ӄ@uoi8G~+wD [1dqN Am!~Oh0\YnNLV2c'!kp@`B0(N'(bcġG>BTJfޔ$: 阐jILiu%|:&>а6̌bi:>1$et8;5kd侌b>𹾿?bR"V'q"!jNE H~% FqOZ XX&Ng8HβΦ;E lA4ɮ>\`oiht8tgKGްY{"tm +ئ72i2X 79Eր5o4GJ,GI(}dûKi"7b~%\X CഫD#)Iv6[\l[oa!A~fZ58LAԈdؾDZKaRFZbSڣgfvةM)ɦ_2ޅyh \fH_ƈjPV,;z@ⵒ N ~QsM&!ő&̦]j$+Gƀw ~蜹VA:'@hh`q $(V ܃YLkZvUL.nJ F!Q<%*pep-ֲ>KWKr` m,P _C ƨuY0@21]c좈Σl ?"ɽH3>`<vPZV@grfASA'E@, \:Ƃ]K Bu, IU qn{nE1,64`( 2tA_PBkn&qyJ1=#~"&d[T$o U^` pJ. /~g XDTWUUUӖy- `k{<@rWZ\iE4UL?Uu ~IdgZ,*@eo"D]b( 2 c~8=yY`(AXQYZ*UG| tݞ6PUPC⪍F}UV2tA >BP07ğ.t4iEIt^,~ËS_2_19Qp/cPժ[])RE ;+$VSnIԂ8 J Oko'<Η{,ne%C9f&~;{hAta9M*K-9/s_.]4$CUS'A+$M5*}pUYlG&b]ؽXi[!x%HyWoq @ltGQшh"GE٥Tkm'5pgݵS,څD)^:&A</!qKRA+џUAPƓ~W] m.4O guƠ!C MHz@)b e`W makdY=hQK4aR*Cc0nCAf&Έ!vX$ )diɨJDtaNU,OG_?&.1*C== j_m1hvG_@aq,_PMNfD0Ǻ6%\ we?ƃ%!/@<ѳa'ĭHi&KWyWuٳϐt,.O&~tZ||;awPW@@`DPQ6kD|(F1U(+y+U= Y^H|Z!.EM ,i. C{@ }y.SHK:{l>uqINqϩn>T_ P2դ!N|:]7=7V77Rf@A~ADNٵ.2XE XUG>^nKLVu DуD|NZс&4/3i _$Nᒱ]IhPŹn0kk"gD%b`!]"í *v15~,m$|> @ cu2IAeA]]rދ+ tm#Ue>lMux>&j Uk d.FUȊBP%0QHN@>%-[OH#{3_A^F!6l6,1uV$ Qo?27%ޮ+l ״*Y"':i%/i0i욭mTeSyk ;# ?iVOLgYBY+3U!J]x1>ҡr"F[_(R,SQ\-R 9Q{UO=j=$$ond$uNF&?Jwm{nrhg7VGx*?9آ76=n5F WȮxiN+ֻ1?]];˸?Vtni ^Ys|.>-j`si 炄Zƪ)h -Xf2Faz<uK9 Zroth6%qAp7X:xW7v:]Sm +n[!d7Fy *DVXEl"#q/ٜ_\(ϳӉhQ fhDTd̗IaZZvlWj0p٥ qpFy\b 1^-L DK>d G*!sMzJl D|<{Ŕ aiUjGeWe H?U 5ppwH*2#`Ii~lNLz@j9u&=!4`W꟦iIt2A? EĢ&Ã\Áe(6dSfQ+ZJPXQZʵ cIDI0 E2\)QDC,>\"^qOZ+J_4nrR UŌN|{:3%"Bחc2cP(-nWO Gev,ZAR?n;?2R$ ʈ@Ĩ*`r-=,SCI,N*eFZ@\uWؕXO)!QWܱq[KUF ` y+ȜnЦ w$j\=~yoTW^,{{P $#"`K *H %c x_Hs*+KNAG=6Ȉ! 6-V< ~S޸~sd B3ykwOBFܼ,1J2¥QBǽOggS@c*﹦0iFv2zx !"&w! !!(%$ ""#%''%v~\52K.JH()]TbJiF2ƢfK* H% 1ȯ{G<6l뗎&c48;:Ʋ*.۟-O(;b ˮYʡ< ޼hM^Ri G"٩]R,8:7n^,G]3}Ysk 6G3kpO Ɗ˷Gu)O$ٖЯ +ƃЛ]1 {DQh=_ఞ|4Elq\Iro22CsrrV3uzVkpA^zߖͧ1P+XӘJd{{wxefGQ{ PE.>AubT00"+K+*~Ѭo,e)7l _8$cqW$VH ұM{^si7b$fS`z>81 4aaDVfIB@XxUm'H\qQG0T67PV(Uå1'ac H0 V:Th:YE;k4>6 ).Y@F¤ǐ`I^teK=rp&V@# >Rݚ_ AIcT`@XH厀A>ۼ @u uc^M]҂@q] (J"JԂY: -= BEyVep/z$2< u@t*ET"aE 2 dri1T } >X1/)Нs *%lmpR?%ȗiy5ٞjn?~4A`Fg> ]U@,6%XVKOc JXAIV0 @H@'pdXDSL r<5KGr+H6ƨˈá]?NiKBuSNsmtfGwp]X,:?%wJ qC]db:鮖iZu& TU]#<@TivݗQݓFzU{".UP !"TCa(EB]|-25kLK?QgCO\.[!ɝZQ,'((0jDɎ@@ Z QI )zƍh+H(J2k=MvͬeQӊ>1Ms_H,rYE,?KDȘ/*V,H\m 5OYDIp 9ъvXDCu>!A2\JeA WT!d]vPzxoqlgVFbL"\T;ω'n:ێf3{ \e=Y}V7~X,_gkj7=ȭdg=YϼBn5_}DoӫvI1݄"`^î::toѿ}0bo* I:j꜔}Kqt|ED-tfӡ3,g#PMkc6Fn}~OUw>=%xQb,~KwX)0I10J7KknNqNc kӡ~O mvc1_]ܶ]?8oF$(f52F'V#ߎћl{hK:;L'C\5<$V2#1 *T$ތXoNZ"0ODDH3 s)YO6lݍ.MeSF犥J$1>y79H;F$22!V@`Zs5P<"b7 aB\N! ? ٵ>PxNGDDIF&9jYDk]Xzezma&b/l yXu7htC}]ʘeԊǀnO1" ]Z)ڃ*U~FYAR<l.|1uH ԛ|6=?ɜ$e˨ M>좠ScI_)bڕ EJf HC=˜3MW)^9Ciq?n殴%(k~皨Kq{yeehFUHhQHoC#~^R\LS4H]|7I](L]EKjH\[1f+ÃL[%"egڕpa 2oDT7] 1>*=:۹#xT_;"ȷ/y°WB#P*S61up&,Y*7W%trPϛҭhQ]T_շrl^ZTpBQȦtigŭL] QWhz=on|<:GZR D[GՓsz|y8 1*\+[L\Q!@M7esFܗq^Y(c"\QI^9 `PMT  &3rbZ <#;. g`#V#Fv]RFo w,8 .XS+Nǂ y?L""mkZqުR33t(ڥݠV ͍J1$cVV/S\Xk~A>D H *VL~!E/]߆oc,K%A9v&-⒓4%"4+YuvqyMQ/;3 twz:E bIǿaSݺΩ٠5$jh`GAkrB̬ua]\TS gݟ>\:"t+pMn)!ATW TUIC ~68ojJAn/LQ*2ƒ>ѳY4S y<.x0~Gv8AW4$Uuέ}@:o',4djhI4SGSLՕ(9TP7AwS%TYQU\s-#fWI@mbǕ?} TcbO֬-;'qE3e$)|l/23)LZgJ, ͑*4AШF]eNH?l8NQ&]U ;n5&^ع̑`iTI6 itIHB,F@*EWo~CҤK/Gͧq:7hπqR;cd8cy*}0uSYHn' 78 _ŗ:c BZ v5^LC 4Щi_Ü+kB!А""ZwKM2>m#\ג4K)c 7b+|+MF 5DO6 x]̡$nʤ% ?)G5VUЪIv*:1LUDSUoA{#5֒ ݔs\UeTB}xhww}`ckHx\JDS T%܇3^ qE0DQ U>1^$Zy;KciTW@橻VOB}{l/7Y dY}{T$ɘyÃC͒roR\[SLۻ׺TZ8hZ0{vHTa/37jcKXLH`UYx \e!ZV yxݎh$m /Ɓ}/']Z9[<!'DGULׇ1Ƅ teuI,t:cfFXnniU불]OOqK#]_Mpng^}{'e,f#EAo!'ds*y8H5[~rP$SAyzu`]`h(֭)\eVm,\OaD=-uq"{seپCI&|OeIφ~okg"aMM`E, ]kw'Z\E2X8#V~5Xcy!`WDŽVS6]=er.n,|^IH4Zv6&p}hKPf2 {%5 ^Wk5]" e**V@Zq7I^1% X@br:I4*ut:g}z|EalL[~^mWM5R]i+$ "ͺjfN:۵B ARG'aXMҥ/&KzfB0 JL8:2nӾWl,jc~z8[O;!C i ,)92!x=\~3cGqud z%l< WPW,h5RiM.bAP vVF E w,[ %hpj~*M#NAR*uiҴfߚ9pdFG*jqHA(@]7PK_ '+QDSD/KS:w0M> X.3Gd XnW_P>˥:RQuxXr\v,.&Iͽ8C"DDDa k_gO~J;qaڰ75?T^N$!U:έԺCN`eJXb~H#1mdTE2Ei@ DQ(*H3<\_ݴ:g0> 4YK?Qy{Jc**!Ԁ_DDij~}\{! +4O/Ց9޽0_٢S0v˜e$MU'OGz8; {]#-VL( QDV,iS6Qm<A£]MxSd?BD]⫮=qܖ S7Sߛ)nD_LC79*NƥXʩ&Bf͒: ÑQGfT@`w#_Z\s9}a|8Ԗ9mKҋL.i'v֕Q&%ɊO9!\'F)i6o'ӧC;{ d݃WOzJ V$ Y$E*Ir,7^XtSOggS@)+﹦0k1$$$%"&&&'|z{z~$ $&)$z{  $!>D7>@χ&iK%?Lh/Rճ͎3 C1|t@m@Rt+pi[} @'d0ocIቾOUFV%Xiwc=ɍhՕJ."^1q0 iJR1;Iki4M)q]HclhSv9$7e俓ޚ:6ٰ%i{  PeeFDMB@ $(+EYҔ pe,`Ze%L_:*PUFP+VKT#lf&FD##BeJJYʌ.ԁ UCdC;܌jՈE$ k;[}hC(}EI7u}JS #WE>X YK(~L.>I_* xn]!P,F\W榩Ls)k1TXggbc3oC:%M!J :f5X_l"2cJT7, OvDJ9*(3 P #7&XՌ]C5!+7E0(e\Q䜫g/BrEшQ|>lx5/"h ua\J{*GmBH8;5YfX3yg}/n~m.s(OmFIE=cuI5"rq*jVS'޳rP>SH7;e*LF|1I 8Y$tJ J+~q1&!Zkw/X٫g}mk) !#*OT^!a $mO, 45L! |I-V=1sA .eKV"}pX2 'g# c,@:JK)uoK~մ}Ц.>`&{P 8 7@AØk@A>IT{ o NF2H݇#-ځ9c1vAmV鷐b ƾ2@@OU0`J!$P!ܓ˓s#.bTJ'ĨЧ/M{4$8o%dؾ IM `8NP@#N1` `j$9rʢ\ȱ^] H%~J  U/ j_xm^>uA%O}- Ұ>,Oh~\iUxk* ,4)Q5re̝9q@z DoϨywT,bji@H6y1ԺbnL*s} =+/#´ND UAQR ?7cC _hAO}RPF2  } r>{+5PLWZt݆\T]̭=  /U]Iz7uL5%TeUQ0'M+D'_A++ų0nۥI2`HQ+eETTs`]s-?b\ĵ]46o<33񁌙c*oDCQ5AvL_K"fI# b-N1_ xu:;Nb)E,tn BIJvn).k[D fi( CP28S$+M'vz4JΟjl.6QCҢa Ŀ_U3rќg%; CPcOCiaXedw3&( %"B|Ԉ iTوM9mq)BĉN9! ˞[ynuScۧ#10P@5D[`2勼8[QsDD$n6-fhL .$uQ@tvD4D N!1xzBaiLMPUegD"r"O&,n 2Sܭ"#;#4W~\13;B]LSHz1j]IiNO0`2|ОB%K34҄H-AtRb$qX 7#u FR\tWҧHRPRRdͩvnK6萚{tH[#?S1A[rE)T[h7wa:]6 [DܞQƂ~A9B$)+}@"F9@bRy >E-0U%&0ZMtP,u 7$ʒq^#LUjSՔ3oS{]u[JƮnr,SUO4H|aī݉j "DY=C6Ãgo}Lx4ܲD1QS;^*бr!^=Rݽ\gє P^c97gճl_h6M]QFz'|i~0Qu~U;%Z6'0z͢tgRIL~XŪ{ Y8 ϯ"X*q0ĂTo K*0bp4"q(U zWA^|G88|g]mnCysA9NXy բʁX#ǞA7 9(~(6hP,P7xG@_C T!5 ,>$HUZ*[--@6u[AC1%.`A.@$d@ 'ac6˛?I4"U L)B.JD#X@(c}M!@&B0s  V[F]hk2 %By t Yڅj/*yIȩ!?QBY)2I83İ)@SQHdkbB~ &Пkŋ:+,Jk!:a)"LYS)~i!PN(BhQۂLS)&`I7V;jsykKDSLu)6j峕AIc0)I+LU UFaƫ?pXQ}uO)VDSL՟3ꪧ?hǚܤ233QaTU҈)&xU,R)٬_ R,cĤl]"ʄ &Y"j?^6(k爫ͼ tgUwfOٚ"i0xTKm5 :<ɱb- ccS_FYF!2. e~J'|4[M^kRYEmcXlH' |UMLϵ2',du! $ ,'jq:H^|:6 J$k5 g,H`!%;єh `::!ǤK2䙔:5@^:A A>"[(@ bxMYJ OggS@+﹦0l26   )&vw "! ! !$#$!#! '(%! !)&'^Lv,REƗ$xw 8W"D^Ռܴh(qZ"{pg}@t@e :h ,=~aYGQJzxsŭW'd  *M k vnHP' PF<ߧëVZDDD0Nd^<[p8?0UeD^ƭt&J|ם,]00  }Xp~XH)h8]"$C0g1%DO9o)ݡbv3M]8DO}@O39+B ,: DS⣩ ?z= īYyC<т5hWxHu_Ka,OBDzD\N (:g$I崃Le %Qi/'r"z7_2?\2OڎA̻X,iP lkU%RW.:U(Қ0*U\YcPCQE,\0D,P{e^"3ҋ-l4&I ^@.yI" ~U%A$ .JsÉ7 ָjy԰6 x 6žBM`n4uBԗnl%hT^Aа I cλ"-rV^E"Bn:HvӦӧS̒ef=QM)`f [uuM9{xWB,6e"牁& ڵiDsc%uK,WdO(} eEIx RXȘwXvsa' --7dA) A44,>E²0|̰e?W@ #<^ tC OMWK&[1DI/cDA@LtwuCH%Ǘ^"M~(о/8(Ñ @~!݁pNSXcXwF4N`:: .h &4{Tn +AMOIiŪ@DO!Z!7-G×\p^ϋj{{[k~DT{f(7@J'(jN:4[ !FHmpl% BÍP(ǜ'gB9R! LWUY젃sۖUB|2yÅ -<<=}~vFKcI1V-`ӺE*0MIGxܡþ6[PtncdK+`*@[KbJik6ٮPB*%i=gݾpׯ3wy^B_B;e$㪬R>uvR]{.B l%r/2,\E_ n0򑷔_ɠVG u >.*Zl >hh@HZGQimluERzIYF]Fؘ|n)ʊ8;ƥAa^R{SI*k'󽞥ɭ o4#d᤹^)S_?"8غ _+ pi,NüǛؐ@r"+ %ar ptW0fԒ#Z25yކjb؊k)o,妀8kVJh,-Ū+\Sê@NTd`vSc8W}6G*VyOF^\" uF_ۺ1:p MwR:G1]ݣZ~ֽ6Hb-UY(CEsz@W?єpը]GڂlN>4Ç!)#Apd W@`(R ?F{ӝku놲l oŧ%}H [Յ4JBTb>\vxI%ol|k#J4RH? e=՟&#X;Qgfڼ c@m1>jYB &Pg"vɥE0 Ti0AKaDmdW s/ڥiCHFCL0RJ.V ȝ~ڋ~tNĢ=%ID{Q{4@!q#X}b|]ܘx7H]TTaEKbPؑ[ald}P)րDQ)fr<M 2Rz. TS9z̺=x }U!)hXDE@kbd !k$OU&O5o=;WyIK%ˉOmƷ/^5pYw$M{?cm TxN3!.t!e;?>\cOw]`'RX5=v%?Tg8X^֬T6N[@~ %c:Lfcd%v'\^z4,RB`C~T[ac8_wZo鴕?m%M<IAl.̗btj^$钴9Vե\LHgnАfݴxæg!{Lu0s*ǹhq/OoxyBf0:F0@eEx OggS@+﹦0m'0}!"!!"*&)Ʌ!" # $&#$"$*$$Ɵ>E,4׮$%tp}H ,Fe|P+}rFlljLvcfBҰ ]Xlͺ66q/PG0'&{ CyEtAQe@Jċ00 #i#|.@]kBK$m$)N,H u[ 9.K3_x5ծΉW%G>XF%PR[At!n4;S5V+.?R$":15K/&D4EL>HG79ʍmùfGsŠ   d* 4fHs!67Y>K  vM$uERDSj.<KXo^"wlSRi`Fc0c |k{^;v,7Naq.&Ժ 7a  S*TZ2=e6m&γa{Ie,G TNvAlA@ b9P$^ =i y@iD%pq ,>KNn@"ג5@- uf&pUE /AB@O訒,ֻ*KV@K0l0a,.TNFa5mm (- p0,:^ͲEW _ǂGJd#~-17ia7P0))ڈDuxeBZJZπma1[-I  L9bh ?n9P]]P@C*b|%= nLSUTN0V=8YuDUUUݗO}4(NQ-DUUE]'coD"#<E|!$>3߀Adr(+%E"=eC ~fGF! $B|s~ 5@*N~o.ù^u gJ)3;Ou %R~JRܑ-JJ{F`c:q_/ 0'(@-xgV+nttԈ[96ʜ7Ƥmժ+}2aoT!@@UGu[* a:SĨY{-zFǂ}TV5.^0 `$3yZ>PĘH]]W3p6f"q6vML PLpAȔQ6Ԣfpq Ҳ:CAՁn_b\=GN=§l6$E\I몙K+]41.^{eҁ4` EF4*"5eO(Xa^Jn6(In^uSa%8*:_?=QN{ƚMa͠!-:}iղxoN._B{<Mw+s;ڶ;)%J:OggSO,﹦0nuz7}#!!"*&%#!$ " "#" #!"*%&!$"#% '(‰{^E҃l\E"d5lNSzK:8~$3]?زeD3% 5o`Հ6a ptZQ2Kak喯eB]&x]\m ^%6˂P# Eb~Œ$!0%cP0sglQF`aQßX<8xg"VP @)bb"(&xsz++hU)IV36 abHtAB\ڃ RSFxa!}G)a۟2ˋr﵆>x FJM?MN IJH-\ SN8.4 $z9X:7N (=JbCD k7?Uے[l o}婠# U$ KZk(2*͕߫В#6+dPj8Kڧy5?þ7EH*fxlKFǔ R"Dddx4nv:Y(wne۱&twt wkj!\u{.QoB-l8[a0ykLGhh |r",L 7u Fcr{¤ɳ򟦆Ѕcю# yv  T݂iᎊ>hXjk {FlT&w!v M%joϽ A\d#p(i,YMɔ 8ʿ\>C>L%Њh Zӏ%t~n()T8 bK0/OT@T}0`%sX;E`CYl[b, cl-\^jkZULUWp`!ٲnX]W w:m\WcDQV%UkJi!fMLJ(Z,\Y-LЎcגaoDImfUTYGЫ͂Ncg "!:)X\WQU!e^+VÛzuL[cVJHk<ϬHE 2,ҍ%U\c}ī,fVY8TJRgͺgӦ2[5Kj`'*Mbq'깛ʂ%(t>Vתۿ跷shnQطrL.*DV w[XXb$EsSw_? A/~[&qJdE2KmS!JK +Dp^&'LѲ2@h8eD4ܪ֓[va:(дv* z* JXDp*Fp`>,Ҁb+ƦYBaF[15 < =(zE2FM14 a*~<%nDtCMy.qH> هlmO t`n >a eO1RUݲ0F-FbjApT;<xF_\DBsqMlUI-s@e47=VHD"zz Ib@`DNJE.L֋AIZ(C~BR#]\.L$RJʚ>^B VCvfKG45+mc\P"",wb}`$KfA/kmp7"IK y̧H⻄{b{s #[傔KÂ嬯_u,o sǸ'XBI!$M˱"^BSpM}-BvuvΑd_W]_H;^!eh3LQY Le2kҽA"*ZMAl/oj:\01YHe/{!׶ZpX1K{i4h^Ri0-Lf$^ݘ痌yt1Ụu'")Z~fׁm~jSM d9r?ۘwY8ӿOp12O.ȝ{E"4>.SM,|ZSPxN++c"a@)Irӗ?{ljfM6˚ 0A`sLNghIN1&c1Yvu>a94 8$cAZIdJ! ׀ޜ6KG xiW*J(֕ĈrIvz.ånEt^<m`j D:-v4@ nI[!VC(:BKêiMBQG<~\hM {dw\*f z,,TiZS-=MS9%xlO#TS,0=ʰD^a $PQ` fA$kSwXQ$&rxRQ^l1-N~LS} #we`QR!86m] ,i6)cy$L%:$ѓe7x\eKYYJV7G*{7\uOlƽE,T 6R\lkQfVVTӄ'Ń %)l..nt8֟7k_~2vnW@'\Wi20^O6 'Mrme.*.x9~1ОSj$ZRk>^|6F:dRU\SJSw{,&~Hî:$QJJ2R&Xbͳ>:ܔLH.1#]nl] RT'Fkg ƘdNy]$G: Yk%9S~l6n4lmh <ġ)=3COD2/#:95hRT-#OWMD;Tw:Vr.(鎗M #xb SdA"Lq*6`vcIͱ vƩ-{oY)(f"lKзd7&h ǧNOi^֔hƣB$#S4 XcD<npw?mۿ,DE5F 7#RT bTe^O. q0šclW@5%PɃs,WP\SfuLհBB\LU (A[yۇߧ4ɓdH( TU)h2}S]d뜩1 DSeOTQsY\vԟS5NT !EIPDOMёgSe|w]$QDYeQV+!{t*Q~4H\_A$7M+Ak'i':utrJ |gWw?3F˹ ]pR󗷫:,5 aNLS%~QZJ}a?r~L>s[Y|*(fpN"M-B$jlU|. ID0,򷾽~ 88)kz ֧=9]Vkc^(WŹBR5VEOg~qD"zdkE 'Ɪr֏0gRQ@SpQD P9 }ىti~IRx+x|${t1 Cf-vE qQJVe5ǪXaH (*^֮X-] Aš煀DcB9HY= gHikz+-9^0RٮQ:*Z:&t`vD2zS`M:H%\v`j#@roKiz$9I$4|tX$YԢ[C_0FVW؂VNM>شso~c#{]7b`e]^+dD*KE4@&R  4 N+D"7KMM\$3},L8_vd!}iZRB vn_ix ʨXӾ΅g>h{\739檵[1T{* 1=UDTދ.!&hd> `EOcL>v*MxF4z46nи M1ߎǐ ѐ A(Һm@΍%@A]Yw9"J3}NwK%VRÊW c1.EPLrG491ғEKll\磈֣f&ƩÉX۶1_>7jy623;Lq2ʗ8nsX*f~8 qj a T.ZADֈ%ѵ7 gPLM̀+'"e64&3=>\>\ ' 9w=8u,i zD*fN[`O]LS @!v|$]M);8,&[gf_6%zcQeѝ9  Sه 4~l e#: jJH>}'-hucwazWãYc :n"8A^S:Ƹ IŊZ'OP'4˸%mz/:UeGDW+!9\JY4MÇ׺w\cuH SHM-Fc :֭i80:5BvY/HYKEy?8RqUhGGgcnnU'u$:̮tfƫWPa~I:γ[f6;^q)fDF01(jk îFr"6Tꝁ1 BЬ`Rׁi F)~6)܉ ,-])p紬x.`8fAXu#l^f_[3+?J F %J,iXAp ,*WA^\;. 0Ҍ3C "ywQ˕.Ie=pcl~ ,T`+w{1%DV R$ [ q Hg + {Y)rفlySatiZf!paE:D΢xֱ)-  3?萶ۛoITo2m/p'(chJ rePjJؕ'TV"^wOggS-﹦0pM/ ! $##$!% )#'®""  %#LU*ԫ2Y-ԄxKocKR~j**DSL*&#=SM㾌}FRDQL* aAM;ZwPDSU)Uk7!#LyR:pM|͌ "- @2IսF^LS2)Võ+GA0)|YRQLSUU[)A*CڸFäz~u~\g⯳l1V$K" |{/ώsg)tgav t@.B"0oQTz|vɱD4"}bYZ&2ELZ,NvG7MH% դrXmULgOռ٬ Et4Mcv sʊH垣W*#z"A!lH9EU#A]X NÇE)C܅*~6+Is:?QB0O5t)vC Fj7"5 +HJ,:}鈠s8+%^1Ƽ8~V=%_ŽI %`5`6.-5|.U``c*LD.5+Wt*_O/e1.UyM}{פ6oWkc*А#(OKA~\.Weҩ6 &˨torxbzF x?1?6mA{.Y|6#;7 +=h>jh;'6`/}mA!؅a~/U'F?_=\ddh,V6mB~|% c$ d|/";(G9b%׿oU6+t|;Ow+fBP_;|҈$6ae0=C0̮س .TP&t x(煐IvQ$KFldeFӐH 9UF(h~Im fWzgBHeh{a{cy !bg,6޵%sضˍ,U5,/@ڗ`+/ݡ]pJns&B {)zO .9?a`iPi2dyj,FFT̾܎.3.]NK=4Tى!7ۚNvsG*4{zqeV):^eM}$xԿ2vi^b r-8 ^l6wA!bsL_"ӡJcq҈ }ӣx嵅n/,sX|lخ`߄EM\N76*`)ρQ."u]>ύ<8wl7?Y_̚{tV w|5Y3ϩL)ɻ 9+]d9!"S<<[KNw(=' ZDtI `dVEU~_% ^m}+6ʜ~xt_~KN|nqx(GPhƽc8|kH!;v[("r(3p0|,yiҗ~DFff^x1{ N 3DBn'(:w?r{#G1 P6PZ =-o^ ~Ck 1ߔhHU"*qdkD,5XB%+ჾ$vŮM8Dth~?=ɚ6 ߈髧W^u[Ζٯl:i'^ W *n=-BZhPSijfۼ^ciط1Zs`7~ 6٫Qn6zc wޖ>V Z y8QW*nOngVa}tYanH1k|fRdgDOggSn-﹦0qxp5%#%$&!,&%~ ! ")'%à! ##!#%#%""#!'*%:3zy\۳N ^Š,Hy9E~Yqq{Ń&@[涗%(d[RvΦRk-;M'[uP1 u~KK3 " = Gw ྈH#GjTzVu뾊ϵA2[bWIloqxf(DפXi'w_, ]]KihXK$Y+.*_ր> o%, R9W,Rsϊ{`1lV!.\*4YY_ruSnM:HJqH4ςCY ]E|ȡBE! 4MewRKB\%lCNfp,R͂xe`([+"-%[Ef Ssރ6N3uWRf_}"T]Kד *[`V'eܪ:o\eK⳱^'h,\UuX\kÕ˾6ےzQ TseEl _F^byQYmyXhvq1;SJX%>H}=R_YF*5˸ jߥ-JY5zMgǣ1~eY=Uz~[Έ=B*/ 5`\>e1V;.Ũ~2i+5ќYz;4?sjX!a=Q1-Szb ٰk0,ZS?w-JG7h, ŕ>mGʎ m88'<ʪAe^l'lb/Ƙ煀EBJP@X2HՒeOVYoƍ5s@.)WooQ=U Í4%7Irq駌"M_[ǒDQAV`UQřp~ir`Q߸^?ccca"cO}]Ѻ%U啽|Hy/ V3}3{qn(oPz0~F1R{ ;*UkG9zyCp1 u E  H՞UWKNiE]a$)g tQpr?$S.AgxJ@F)oOY\Ս(;" ?,JN4 oϟ+_Q6#bNra,w̤ߝc/T7v&- ,5n .1$`#}L86ȟ1='2e˅'\'Qcm9{D3tb(Asrԡvjb'bU,JCh,壋OxơRo(v4F<\P+9jԒmEjceeyM[Fk4@ H)˶&Ǖ=6Z+1 5#êe6U!zJ" !iXdy6;rg~ fwLeөx)=Q3:On_ٷ+\jH??)`!t9:tF/h 7S w]4e+XĞtkrDgPS?4+mÇe%ODEG7.nusuyH':i=vQwִ)jpy2 E $3p(h']<Ktm:ƠRd \LwA(gH} CW* wv:քܚJYz0%LX%#0pU L;0W E4!jM0E՜^1;vכЃy5Y<8RkoUVzJ'4*8YtfckVJho,. {PP 9g'nV{MOJև:yk@{|m+Q*!˟~ϧavIFs,ˋ^ؗ,7cbhTFEf4h ~&Y\@Z5zّ4ѼHP5]BH=⨻5Vc A}IU6Term( 1ƒ裗LYIUV֖ehZ+Z7FmZw%0T[q6c4}M\^iv#PUi(n\Yq+kSL])$l{8ŐbDWՕbXШyy"FP<)KrC)lV2phpOa\JnwHSbT6$BӊKݷ`BrI +[^8&5Fo7Leu]›}'""B֋\R3_1Jħt[(P0|)1fY{LZ`(a+.aޯZ4$grgOM6[c6%"<͂fη@P:드+~⯎k,spw\.m]cn&"4O /TC,ЃRG*qpe~{RǪ d]kp̪Uzxp?/c2eFSuhTb*=;ؖ@f(5HI(cS8+EӐ@Ǵ8:8F@>VorVaTBrTk-ќ)e55HxFn9nKgIHŢAg?Qq=F 8 "X5Q|dԻ)~)Wy-]=}Nq iڇ#È*KcTBY5}H1OggS-﹦0rIg/ # #"#,)$! !$$"#$"$##''ތX)%ߋZsal@ųfrtkvz0 CF[=LI>s1\@d" ^~۟,P:4p`kJz )vuGu| c׿c )(ŠPE7opy>$wH0$a E`!;b^3vbuHіtlJָ<4BjhXr@K-Hd@ȏ*Gt0B4} @X#tH~ZB.\1Q)&\T()+&>.kyATPkNVL!*(s՚-?13t;9)ESx_?x:_%mC7P E$0n ?9ƞ: @x0М:concdŲKz{ʔQָ՝AL d2\o#Xb@[a.d դQH|zA!V# ʖ$>]\<"76dv%j?*r BZ\u +x'7=auVz<ܣֲo/C1, u).iQD7p%kR"un!4iu G(xN3yYJ|his>KlXȈtT1(/54GcdD+& (jus|ÍF(\ ȎA{X{bvz"f掷^N2'(D%U>Cr)BDHnPo&A b=~\֩C/RB-??E^]f,Αwzb@T9L,S}cfzVJkM}N {'Q5CxȚ7m5m5)*Q8+ k0֋H[5hԡ^԰<,Ɗ~Lv=ձ!(wL6hwM|͌2we,>WlGɜP#dy PҚ`#ng;ȁOhz=[ctqk1؜n YO=&X!TbQjuHE9X]AVuXvK82KN| ߳Jd(2N#Vӄ|`Wb};O=({fv6:ۯrj_C9&'\ŏ@7ST^6˩c  E&WbF@^uެcl, v>XNsg6rIQ(T,LY1̹"]px5{K~bqԺ1 #ܸ~q)^UcفƪewڐvSlP*S qQ 6^]^gaN[sou,$aqB$+~L4Qa~k0~Lz6?eTOCAV_)6҃IkaIZoo)% r@t >,a~ =2x읠,IG$s6 # DLD`ߓZ[y&98lߌDj.8&dȒF@ZkbBد(jΈ`cZ)<ᕻ[T,MEG}"[FT/!d?>2r z$d!!QLmMh+?k廆d"NYa=T1QiSe M @wEP0ȃ׌W6G&0L[«*[%]MueRc%wQTW+ifz^SՀbȋ(a^%dY-V?AaȈG DS?Sjb-ےJ5h^cDS?Suܧu 8&t)8j,Su jPTVbn * p~4"!dY!bjeQ&%F?AFQS|h25leAVMud٠J@i؛{}LJ4:fѱTDpL%4Ts@?Q*EYhZY 3qC|mb" #m]7PRFL 0 jPa+˛N1 .H- q>Z)o!@TԦaaAV,pb@.@B̎XP0}>]\$Pk;]N=6Ep~.0Xt!DDHDIlzٯZ"sajXlY\2'rE'l р^岍2ܿD:Vx?{٦R^+ JzDk-3=o Uj).vygHҜS:ӴֳM./yy|FzOx4t}U EWBPoB&fƬ:>v NPFndH*Lz$2Ү'M- bã4nx[yRbm[%b̈GX a=I>QUDYQVphж3Yz"K3m )ȯ LٞQVޖO^ ?)#RU-74DLjD[Ֆ=r bgDŽ6 K*׸5LWJNk˯}mO n\V̖ȸxKfڱd%9IdnZSMYVk"Zv:gTw׬B 5XĹU$Ja,5n2Aq5 NB@5z1HE*MkD" =#Htj2'cz>lC@$3B!TJs,7bm߆OQ$#<@ KXxcO]E܁OggS@0.﹦0s Zԉ.  % "" !#"}!!!#!&$&{.pJj2F@Y!8xtȫ scۇ…հ-PVa] ۶Y gzY:l2C7C:mOhTeZoczׁ}m!2Z_ :]Ȋ!ҽoE35^{KLp?ݪφI">d]#*HlN!#cc[Oco%w4nxr0}QØn6+$r4FЖT*!`Ei@>{.3TKRMT%Ch;+Hs-n]h@$ 4"D`>枮2dIbEX@^6894PP=Q|"mmbi#jk/P_kf@|o=-R_a` קUEF,gC2Ql` j h`Hͼ4ad{Ƒ06svu2{wۭN|n `@  @$yh x1_# t!#ʖDWuUS2QgY Z--PRPTWG$KUƒk@[eHJ\Y *hcG %[%k25LWSGUS-J<޹/6-B%TYUAQS@#27 A2 4YuT>WUT] nతjJl[!TuU('߱%,D~me< lc6ݚZi&rN]#V3Z.r\D`\aU% _"KEcaϓIU+4rшdS8wDsX/.dUhP_@@@PQ$H pV@ ;_x}=`N,ɷ~ 3fP.VYao$xd-u~|fmٷDXkMNX6NX#&fOXAK "&Z@KbcjB@W F v(9e!ch-4q{&q)~F`7#V3k dVt~Ѝ=vw/deV@ w&"Npkݒ:-  uIth>le{'GuX;M.Wr)UO{uq_^՗jkЅ|&UҺ!En„mrYQ.Ѿ`ySR4⻪ƛm1F_)BXQb)6~}ns~P_v i])Ui"$d$MF;i|pqYL8tܡٳ ѐK 3Odp)*qv JH{,aX:08o xn($U|<,1$-|6mDFK|s9"# %oz' ̓Ն13Z/F] GPJ`F#0П'rD(G FSҀi T)"- kfk6#@(FePcC)şDDdV;SއüwD6P9tpQ[CuE2A*\( .=S:nR톫`%1{Y$C"+& ,Yţ ;+T5TW=Uhju$xU^VI 02٦ ηL:OwT6?le'#[4GݢN_,Mz iD[3_2 ŇDՂQTh?xqBi4$Meީp>9~K5z SkT_+rj}T2B&݆tDaG}L؃@;$׈]8B;fǼ SEA#`~E!9؝'ʲ(TS蕍GLJO߱w;ƂgǖQdo~ ,9څ݉ |$J{3vG_c6ؘjT:PF Wn_\ɚ'}K({XfPNGɜW/bl6'vތvc,^07]m@ awr4}54RMgNiqiVaYHkl H;Oƌ ~2 j*8@p^ 5%5MSƾ\Uxde9vZcQ~z~B.~6@.?nQ,@hLeVhwsO|0XHեֻ۰2cЁ3F:`_*7uh*ePgm5 )dsoJYۧ5Bdk):Ec#/ eQ\*Mat^1VǛk#O皷8-.A9-Y:Zoɵ.4 .(WT\SGf)Vo w:TU_$ۦ`\!dwz5MDz@"U^YD'a_]8&tĀXePWNkj|r>VGZ! ~Q2'#!da ۰,uOggS@.﹦0tU1!!"$!"!## "$ "(%%yvz $!yzvi\Azé4GzIU=# 2x[u7ڗJޔRjU52(T3u5!%I376ZJ >;*1׎KaH`.؍"4Y &ɸapZ=6FO^vjOpsAK!@FPuB7 @%Z+0P]<K'$Ԩ'*dTEI+Z`-Jf@Pa4JF <4f|."f4a400_)t+x< _ 'X/Ztjt rs 0@s`iVG. 49Q)l/  (Q$!g!{%%pXBB;|0Ho)c*(z߽ȹܢ daÒxi:F֏ɶEͭjqt_b$zg: 0YqJ4`)EE@B@P t?Ba QTSq*:@88~j* e̹GMB.>"4UL6S:iÃ1R(YKki\UĪ8UGxpq2c<}ךj%_oL"TS*:s9)0~7?ĺDUUd*:]iuioG7H(LSӪJ"rzgݍ7pJm(X"DSL<”Zz`#6h\W|6.q(SWchGT_dU"yp˽\o}Ql:5\>$ͬ Q!su02 -Һiib2~GrdJI>=jvbkquX? 2h:^0 =N`f@H()*5T `w8>%~dnUZn~*A/@>/,(1XSb\hkq}yhhIgGE[HNeޑhYDnC^Tqq#ec[!V$Ea1Ap%U8FZ s>1F)N'"g\&'NGnli$V,X!  QӮ*68F%y M  `.dө2xf<َ s25rH?Fg#MT 9c J9k,#\bi.JIH*!c1A-Og^u'x_Eۣ$JJ|D(es01]L!g랎ny>=ؾK  ~м!(GĘJM8L c3\?/jY]@Bh|X$VAAB*D]T:{tgC@C*y2:K.NJ`#dǜTQ~-C&7_ִ+@JƴLW-i>5BDn@fM  T|…M1<ǝ0~{Ux7jLUIT= +ԭ:;™:c$QLUGr`zh>IB,KDQLD):ɓ\׫]=s[6S{UTWbTqzOZ]/_H1aD[K֩Wi {)5:|SLa WEu~M溳=>!wX#wmQĝn8gXҳ#0Ρ&>־ԏo-S@H$""@v\2ܓ[,,ΉYLg ]whDfFWjȄ9!u]D?©k]CC:ﲎq:҈f-)t;\j!YdBl bދf,i{@`{DDh&9;ao4z>~[$m҅FDZc M 4ʋ w`d>:11p][ fLLU(PCEM.S`"v'H |fi  Yc'<|cH pT@st9Fla(B#nJ@ NWr#nͿ<4?>|ʯ`8y=fRdcO´9]"9lfiDHLpzx^xNDKS٘6h:ݲdnNß.0 Z  I>RUkUXeH"RPHirB4,"OggS.﹦0uU!F5!" ""'%%|## !!&#&~ $%!" #"!mKXw,!; \B!DDo9ȵB4F]V7?8""c?DZ-;J_{,}9wUvG:q1\oc8Tj=ipK7II4RQ 7hS#ξ>/|]OPR C6c~Jϲ%,dvaRrfyP5$K颲P>uoJY1(`g*FDZ saE}pª^Ů$)S0gTdNN $rOjCo:̪ӡʝ00͍WB/7l;hhrYP]"2vcXYB%YrVֻIqXJA?dP$H>jj!4v C vS3'E[XBH~] /!Efp7ӕU_opV4cVLIfɪwM("!]n `P_+rnO7`HtT"uL"W1D4FjQ,b,.Rc%$n[,4O—hjMG?=4&N;(kG/u=9I31nJp%t);_2*EkDi NNhjo)JL;f-Yrw0a[KlLL,wiwCl{z ,TqUk4mۿKkC/ক߷f2m~TeN +1Uqs6{ל^C">/,:>b9ZETrݧǥb&na'PT;@Y3|5ߐ%a5^s-M"x'έg%!l(dZk1 d2Wva?- B*Trg)a{#N}zSK$ Y>.me&oZJDžvcs:16S~D >f\36&k7.NEa `DtCg*;(/?c+{@jY9ףS/kJcH)GW Ihs!DVOL1m2 r1Dz2 PWӸو dh Ӽdžz¬Ì)]өc}V;@a+^ҲɧxHHR m酕~9u{n 9^ 6BЃ  B.#1 I c^LNv1pi y?%O Tq{ aaaL3[fiKt'ha҇;fO NZއt2a7\&ǪNEbد$۲_X]H5]E\[fe< HonY UYV"DtѨo-ո,g6 6^]q>/wEyIXzn+C'P@!ǔ 0R5Z#ˋ q\"4StOU eP=?IN0bx$Ue꟫L1@xV6}9NLYYU(xd4_rTZ'J]RU<<e@_ϩ}*GNW,Qeړh0&+{]^SvzJX)ei4OI^[R;W=l >qR8,,մ5]&T&Z!VN܌o߾XTc UXp,Y(%SY[QvkLg Uقf8X#Y#qL:Mj)Gw]mͳr0Oc8Z`g#wl>8UO)D<{GrԜgQi!IC?v9*w7[AMuX> !TeB1 B-s܄N\=~v`{@TKGtA \CiedE4(NrD wWOo|q}KywaHCXM@@'Qa'uEPx #uzR܌d o?K09^\2% }YNBƈhOOwJә9I^F$-p_oQ:~\C-x  & =X] U"۠UH̶Ipb!E[f 8nz@`ẍN2&>b/(\Hd}o͕۝?M(T#u) 4!q@)B2V1A7!հ y[Q|yFOZ X DM9odž0e)DW4dDO#*#H d[ז fn*sӲ|^w~\el6;a v"L*x"Y0^|w|1ź0:J)dIii̼RnGL~X^MyN-!*8Pc=$N=#1bn)/G9 {<<bmWGnI*b(sZ҂p/!~\6T -q9Ts`6v>DDd[iLD,x0Sb]0CӂibKT #xr 02aQ~W±uߥM$9Rbtũ@+SV⦒B;o8F@xcV-o ЀQ`\D$D^HDCQ5Vv _URS+}hRԮ9;v{o @1sʱp/ 8jފ+ e( ':J(2J R.nQt/,K '畷z[c;IԞM%4[Jٖ݅-cpzm=HhrLx0䓵'E֍21b/?DL؝;A lWKu4SZTtP~:X[qu`}H$MGMQ=@|/cII0Bǟu-OggS@_/﹦0v`1%*%! &$#)%!! !!&)#pqy  #$$yz4Ց5U~p1O1UrfNmu,4[uăV% j<L{^F%TN8ۜVHj i/翓^KD[ kU9RY%G`@ G5Q47#"ca̕V_gmwchf[K˗͍H$̪rqg$TQ6W"bpMpM=*1!5Y) !҉ o"ܱը-av푩59eurOgü =c+va||L^5iTOpGzbQk) .Au!% z^,N$X6#CaSd&fƞzq{a6c 4ѹʇnG۵̓XJwfYsn&gApm=dZ)w5ke q6T>+\zHDCn^m9F xҦ#n eVBN敱#17=ʖi{G5` IPoJT?:t6Ocj[g. -+ I\.W^!Š#>;&R Z1uu #4< 89bcCwE0 ~¬$h=8\~=F_ M6 Va_.r i刬HJvxA?Gm؈4T㲢.+ >^!nEܻ f _E1 kҊ*\OYd%@HVӐGwP4@ v:M5; dG K>QM_r~x%xL I~i .K+(nWč1f vi@8|ZD4pQF/hkamcO,揲yV~65!nFmE ? XsE+cpKCcRh#=2&X4޿ˑ3='f}{'HA Wؗv|1U/ FtMA0ZDWMU4X5]ߖ?:ɴI/3fϸAdeQU9RFSʀU(#2a֌s5:lNР@@xR A `<(EQ|zhdnM⩙4[7vZMhE0ݼ\L\ڵ@TO mHUԹ]3!"J爌Iw=JOqX0\᷀.` Yq|Jfޜ. ^s6dcw]EUo0 QnI]HEF:O̩G&@S.8!# CB]ф*T}5SVC\7}fuW1ϝuafChp^W2/t%hg*Qlu)jes*uFvY hsêZ ͮed{(̍$23"iD_øB& N:O[c#%Mac^;rK ]RR[.%$|bdKLEPHu4Bdk^PBxfZڅB(x9D-bQ8&sxu4wi'7Z}.jUOǠ>jzLpձ !B 2 }H7As겕j@I$UHk | ]}9"]YJ1"V~kĢ S^u=}OhߺDU jG>m]*m$94uzRiB(*2Rsy*":fGY|r;6}F{w%ls{74/7[QVBHtN5 +iWjSJSLl9gVl0IHK&&mchXZ ܜI3;`ah^~(5ZzbҶ*Y,#]]4Q4\V`h(,XC'5cH1@bAAH"2cpQEPAOggS/﹦0w6ty{!"" $ %%!! !&"w~  !%&%!!!!%#Ƥ>ڇR6ü4ӱ]WvQU"DS1B b)` S F@PBd\%@ XW;?W/'S,?(DU*BUIh%*.6U:D /`D:-0NJs  3Qcˣ1\_nrwE@CR% E6@ Cr*xh帱"^yĊQ$!,,[$MT p EU%D#QQ妗oH;'33l8-E 0a]j ws~Uj52Ǭkd-'P9Qd\_M1\v(DЀ7LvI |>`UO" @RfVP2ct=y>A `ȭ@4p)(pDaֿz,Oad!lV!$c(*VA_`bK־2xe6 Ȍ@,#B$F~5EJir!8]?ޒ旋t2E4~DVB5Dʊt!Ժ2%ccM7+n#)uRCq˸^TWt%ife <87L_3w6EWkHDل#Oi3GyqXt5 o VKڼ%!,;׵_F贊U `=M`7Q"&BԐu}^a]]'!BwwZbPPhw$h9*@vQ$`g _&LE R\WcCjɖЌb̌%QUTWU௫7Z{tAdC smJTW*ad+QiTk{ 5 f7_F'õۋطTzT2M$ QXq;y^~&/_nPũ@_ Q1my +^7 Vmpq`YZ`y&!tBu눻HLb \QTnz&+o\o-Q1򡤐2DWUe*uZ_DExLg}S=$;b)FQLWG՞Z.̥.L0b$zzԧ1Ȏ"ŸM8P1+]JwC޸Fl=c] OAvQ7& O`^}\j3@5fȦA_+膯o}z+ZFmAc%^3*iAa_JTcL "i13B5q-ɘo_(D[f!N;F%N!\ !2a@ ^Co2`&`.H0M k.(`.괢*q5/f#FSl:e!V2$SvX J*$ ÔkC>I%ЋΩճS&7¬\0n@V3}ʅ {YwH+-)ґm5@q)& Hh:_^ƅyH򏕟XL.@j`Ipqn$HJʏ?EGJ<̞뽎x;mhXXӏiIetU@08j?bHРu{%R(F{H@$8-kcSF^Ώğ?.@8;gP8[_yRtN״5z8F k$7NF4me5OIncdk/uJ_8+ۿMS@ܞOSqxSu:^+CGJVˮm[ta RS5Soҹ(g/*vM-RQ.kϘ5NP)+i /18EIrG|rK'L*qکm{=40cm{>V=H6A"Bήy04>녦VZ+t:Y-+sFUtRZv_NEXd.bX$ jJ~ dc3̭( = CiLt Hh #@~ p_tP3lhЯBð?X^dt %eLIt^sWDG}~UE,ϣ&4K?v^eJ_&ip^)z-LQMXLeKU|.Q+缎B4Qh1q7?~] va0γQ45eXYKUZQbYD߈-_K+ B(^V'iݛ(` 쓉HEu#(`Z 0bZ>q ީNc" i|Nw @Jǔ6Pw J#rIC"ۢ{&I8&)>`؄8Xogiy&ת% Դv{&u&2zAI5WmxKYJy%]/t"j+8{Xߧz/{0Z[ò/IC gI1aטx\,o/ur,(n  D[zeRۆ8;VHe\[֦ |?XY RԪU¹|$TYJUp$&J@_~C5/ՓؠL[{z, XsԮa/S\Q̄\لWVi땶@|k\Wq D(wvtţI,a Lۉlg)o?qϞlc1U$n\=x0%]Mc6Yv[J)v?\ah1 Yu<ݕ|{:;O::NIf"~L˹n Txk4wȃlCy>^TaGkDu-QmKCP˘"D`1ǐ5rձ-(e7 (\@A!p,6G1>;V])|c^ֆzqe? w j'rK/$ k? w y R  %(AIl';TjpgE*"Eу]U >K&Em$OJZ2)ƕPR]sJ}": :A>nx V@= 7@I@HF aQh"3rhEYw2|XJKE" &ܸƖ }Cd$@L]5,M 73 ꏒoE'BX~pHWCuf BrܐD؇( NQQ",JnE8Ju>6su$iOk.6RH8jЖre.I,͂6ꚹzv+xΓfl +2*@) K–elsK^fϥ4 ·]ʒ_)(MQjñ35u%1;g8;9N@@ېoDiswPSV9@Hq]G{Nt?aLoX6O+b8=f}]ǯB.;#ֺK7nWitCEje!jptޜp56XAN+$4|͟yӳN%ir 4V(Deviin0ަyj"MBȡLQ1jsbk&qV}:QKsy[5>5ɹkg1IX%ͳ^\40 E1A>/ +aK)EJ-磛ƆAhqNL\Ŷe']~ID,,57$Q\nup,@p]ru&6|. B[}IYy짎us0+6J0זP4yPN?F.@.ֽ]~\5(w\6 Y P9R1TiidF/r#"g}]>&(\ 򷸝HpDT"͙۾&m&TE@/P(4|R[ƥw@/w b^C|~Q̄2 JRO)^iXg a>XxJi-Qp,]TZN%YÈp qT#҈ "$>!."Z#XdWt9ocƋ6* >J^c&"DOZƔW/[ו>;B:\32,Oei + U'_B$!Fh4rO W`\kgl,rRs~gڊF7$'hNr$vL,Lӥn1~4Ii{PHgpoP9 Hk"Z(|4`+*{wP@4Bl>vod#hU%al95b}~p`b'J36rKh,J_ķ׈pD7*$F9D"΀e;1H` ["ROggS0﹦0y3!&$ "  &$~ %$$ KfF_*|oPEBL,f>`["9L$!3yhin6Z&Qayl2Zyߚ7Ò$|@sg@ f +JPMrf2AN{@L ˨E`v5"*SDUUAU1L4'mv$TK֠\S҈(Yb ^rZ7"-LSLUU=It0-}6aWXDLWUdSr҃kE&&D_g[ AJ N+wlYѬ`Œe^i"$ۙ ɸ+8er}},qE!B7]N8حgpD,Am6MS7Ċk7^1 u&|P9A`DK"` eBΡ$IviN\Yl~iF>_Ui]hD13`uؗ]/쥏IGP'of͆S e6`a(Z&L kh_"f)$=J,YưrQZRcCVLLb>sŢFx8`;?IDISN)"FKm7b1rD]ɇYS-4xfN=n~5q{4;>WaX7r}<4}p8 \pK|"b]#~6@?S'B9z0p4PF8g/#bl¬t@B **H B{ EUJnsg:{Jޡ,v*Q!\p~%AMarug le](fe:[QlJ+Y0{uiCd3d <2٢jHfsZE&l.5 NrsL䊅UX B$*%B~Gضh KJRh &RJ%G-Ƅqb8IyY֑ii#&ѵ:a`j1T h`m+Tp*'#X>G$ UmW<,E&!DB@/P*4ٴ L*0FJR0_IFaVvÌrhEK84@ B)BtguEGeGwunJ2 Ty"ƊP/R& 5 j^+VMz{;u|Ls2짔FԸ @WI^HS,oB ?ת`O>' <3Y qJ 2_<tw P  Q@@xrQQ^[D<?[d!WJ[e],'aH"ɚR S:WS )wxxR@|0Y$ h`Yƀ(v|#.,0JVX΂LZ-c-I,"u1aM@Zb[DBXȀԈ(!!k%c0' +f#UzpOAJS TJN vO#-huAǭQ?$n2.* r(x]DUGNUU*{ Z{n:T5" ΏZIR.vK} deUu`Lh^G84)š L2{547]a[+1G.΋H ÌaiVW'|s@,G17weEbVrV Ԇj46 ǔ Ʒ xgEBL̘ b&uQ7 |vt 6pѱ B<]+Y?M)!UhXIrBÓFhLFfh j)Yi tJPaaKNԊZB=AI>ܶX+.*(k|Rv,ڠE$~XR6s#9'}.#99i#5UN~4A+`5HeDh &&c`28UWCW0BY_WnHTFIRҷ,, vkɝTC/EnS] L@|ֹ;;@0HOx\E <`jPUXrY^- hF@ESLzAh<ۡBD+]U! Rb!b1=>G@ eA74dgQܻN68zU20J2ݞ|gNvETƽq?{_wY|3l6) w콧!:Pf \?E2Wl;q?#QbhYFxͨڰ\6^l2N3 Ռk+,#Y5Z$BPM7_N^'puzn|ux엳CE #"mQ!'0Я^CV:wXKkmlrM!.+ތNs6Ķ@ fok%iK&J$'7+m|u0oz61_fʝ}fuAq|WXYY?pxY mJ1_޽ʴh[pۅIUX{ 3GX9PE8m+@rc/@wZ+(e`ig9+'JHټADnV+:dyNzrYd :xTHd0Cსq4{۳Q]!Pb!'P bV8ʎm^/EA"|ҷk}d# sPf5v0_ #E qdpyٗ>gΉf&MG}17rUf+dbHFrQgWȎQYPuK|ԁђpۥ%ITֺn DSq'JC]F/Z +t4[ş, }~үUzT9;\%]_ѶOV.Y4zγe?p4y=v\GDRB TkZҽrcԨ=>oÁqޞ8"~sFBQ: E7\*!K+t.ob#{NG ߄tWvԨ1HH\uF3S5ǭu<ʉ2m/#(f7$j bHkv D0X-0@*"R5\p\b~<'l엘\*^tKwܗt.Hov#\0(t*$rP6ɗp4\mmjYhy0 $تXS;8.(HH BxA$ -ތ6>ѠqkFmVsh^\ ?0$ЌR$JQMj4[ 2 ҩFV$):'tؑTq}A@ (3 " g%E@K ? )¢ |.^^lÁk>;o)%# -F)(P0RHd0UA*fTI"IEqo{:'MU0H0 IEi+, '*%ޏ%+I+Y]G.:;|N(i$Be4 0=ۼqqjGZ@eнsvsz`%T,7YT҂6($*8e`Dj@~\R9 _n'e>`!EPΔSENF"z0݅cPcjs Т̀fX@)׸coXeAښZMI>lv(jh%o &>q?RT^o(,HG*o,$ fd۔_|jMk ΑuAM_+7EJrrXT4 &WJ ^5vڱy8*Daӣ/ZI wNb?piQQ]Eڡ~A@ A,Љ? "u @]cyL{,'i`}0Z ,;kU[2uAYf 5xS3[A9ᢦq13樄=c=V V cZY9\j ,m>[BoMd^J 5d@  22"k͑' wΥ:u7 /p{Xp(п@L]~D*h)F`g KFoUh.O6LEFX"Z/B .0  `$MfF"g|QF%=|ErN9@`PPP%<@Q@cEAKBxt;Ɣt F1{mb 솭Klknc7h F)PbMjv]G?߉\ 7p:緶o: Naq 8EPmIalKX 3\@?ADЕD_(*8.ALU )d^ ͧ%OU"PDUL92xajJպR#V #)lN]V\cKX+ZXZA]-Fef^ct-zRS;x%K,AF#VP2LddE1b݆;=4RyW w{xK> ӣ6*qFy˃N:;oۓ`:.tۨ!@n1P.L6)`VvW8á³)RẪ 64G!汭Eccӌ4dRtVc60eu) 8 K,[!]Vz㑨pj5 B};~. |i?h@JbP~rgv,0uh}= 3 # sP?y #<"B(L4*jT"P% nE*Q^E8`Bbz ]Wz0{aP! *!^&͍d;Kiݭצa@1#%6x5mRJ(Z]0 vBu iiU ۵yӧjw[G?p+y,~%LZ ̻[A%@}$ N 32Y46;Q5b%5ΫX&6!R';@|7^" Ƙ;9H_g'簺ՑJx%+ ,1DRX\ޛoׄNo昤ဧ=n٧ZslĎ~e?1mYBaj}7Yw+.A"P!6aN +R#,AR/`bXP> %RoPwE ͇Ü l t%cFwv`.i24q^8TnpgV s@q*S V^f I 6 1qOggS@`1﹦0{ +=p!#!!")%$œ$ $! &&${!""!"%$% " &#!! ('$1f R)QrȟD)4̺-};?>m >о˖RN Y$uPDytˆ>ŀnFD0bv%}/ 1ީ6F# "R'/rm4@s^GWӺwdI<{@]42Yf~B=tTnH;hҔ7wpܙ~}A[Gv5Dm_y감#Bj iDb m_ K+K,Yf b< 4XR1E ,RlzǛs ~ӓU˭ε*4b%irM^,Q /垥(24KC,՝a9trC9E$R<b^?B[ErU,MV~۾w"H6`x|:L[{)+lKNb&-567n>3E4_G=>La~A>W*CjiJjfAU!j) D-Ry\E-;kdHQkK!HHεnkd7K6mЍ][g}V㘒 FXPLNT `Aՠ2FX'~o>qj QFJԦLo+1[&QyABJ>Ʀ a NSψ|H^0c0qT0.^Q ΒV _;x". 4 @J05-n &֕sFXrB-OFxhH7xѐ$tiδX VIKwƢFL Zo8b)fSzN@)|)%;~Md plpil$?߈K?X>ixm!KDi$>:*P! i6&~l3)]XkTk3|yCb "U;VNZV8$[UWbK{>nӀ=ւϽ Rڿ"+a20ǭ DQl4rϹ'_ChSM, xT9$MD(B,$3%#$R-(XrĚ,d2 9}8 Il["W%T}e\ aȋLWWV|MONiRj_7_A\Uqhv̫J edSc-1lY"* sƒ P~C}Un*qa$PD[UQ>E;Nu["2´ HlWbQUUQڕ˖I{g1%T[V`T֗ڛe}\#2NG/ULcdS$l`0F.;M?I(1^-⺴%uk x#sҀAXO*Ohә5b X9DVeexs,:;yJt 6U|lM_靫:3c23?&~Ni8|}8:Ӻy.觱(ś>!!o# tA UDu %.TdphEXh<1݌NX7wRA _)@$Kڏd1=k2ji <ς2f]x tg˄F]&}{%Q{ KU'?%eM7k[{#2( ,%e)q{cxx-V_[b+mA I^4gL|b܃O fŞ]50$,͚Sf/]#*hG tr4G\__c՗DIbvgOr^X0PX7_2^ucąޜ62Ӿ!"hf:}Ԏ,D8~4XjD{|2֍WeVH*pi 84(vq^MIQ~ *N4j7ͭK;K 6G奖hbx I?PbYdœ.S"$^G@9F%J?&nt>MV̦{2np#.nhBڄ N`eO04QUA*)D""U `۠jcr7phFn"ZQ {K{S糽pǶ^֡HHD),KȖގ?]o/鍉GaKkuwSHg1m˄^e@zF Vn1_Jig(_d E9<#1D?H7i  L]U̝@i }OyBLWe omG-^X譮=i8KLUgJSr#* ɤq%]ݠ(T_}CYXcAHiNq BL[BVv]vCZ:1ET[}VΜ4ӞU E\a! $ݖeq$-?+kTX,[L8 F"1t{0%(QN\g+-C$Pk*5HV+-u%kѥ餫3C0Jm_w4D>@gA!hh5.h`yUܬ&Vl%B2U 9J G|=uۄ P@B_9*O"js:4$~SyDEm騯2:qea,7J jRhH p; A`$եT V P K&Rl %I`]2@UhnDWg̗9pcI Kg3kb/*]uQG f(0-XnhDT97JV^۵D%bAr! D$DSLVW #xuɃ= Qָ <[U^]k'֧5*<LYzؠ9U{Y{bwR4Q^UqPQ #اQhA"LQ OB!+&D31j) 4S OWôL/k u3~o674a{V_$+|f$鱽z{LeBUYG%?1 c7Y%JV`]/pNCEyHgQ+?B")ZIaitX5CM;HvCsD |d Y+=pG$鴊>J0:UML_Sm/^;19紟 OggS1﹦0|9OA*! &#%""$ # %'! !\$w xeYjMAv|O.ώ7yD1W۞{LC:t גLVM]P QQqM#$iAxrȐQ$DJj@C‡ A~lW3 l֥;ɞdq]/`4sOi$,|k 1 мF&-FF7L+:E@P0+zby&gzWr-Azh\;R\(Icz H\VK&z]  גRM& Y2Nx1c~! ;s5ysFxC(rlMH)ҹ {t4 *p,."a4EAP+B?h8BR0g\U$P9-bFєS^>>DF |6 صs`,M@. W#9mD񊭸+h_7݁kU8=T)uvǒ=J%g-#d ~V62J |^Z9B:u,2@-׵MWD1i7,8$;<Svx:6/#Hr3^%};xb1ğ m^ܼA֛)ΪċinJOy4[@+A\X7ԓ ^\㲙@&#^q9FC0 0sNS$3IӬ{Ne4u286ےq3IzWq6h0 HS@B,gƻi?1 "D薎-^kܛoeu)gYbvR-Ws5j 8ĉ+`Z5R NK'}P $ u&xPl$U8L͵srY Iİq6֟{@׏w))L0huXYn 2dgcM|}#{WvHw7-ڷSJ>VCFT(=RFa_1 qӐ%b%KɁ0VP ~D鐪FIFޤc!ch']%O1}[a]o~' [FloZzuB 4pey ߶_]R}? Vԑ&e*7\7޽6+D‚ ^<61f]51 -\ѡYs!6=44anƝ1*˂2J"'hHlӝHY01ATAC4̓|Yc:~٫sKQ>-zkH_g>{k¡5X-Fra&kHձdi煄E*O'l;pXBX5yޤ,]33i.. YBo;7a$Rq>vDSwQCH= ؜%=Ϧsry>P3C8&Υ05ud(e3kep W$> F2@3͂I 0mxS1,&W?\R5r~07\6X2lKj̾qڣv 2==vowfc|L9F2RƬ5Iw7i t~NCKkuzv@]zRړ, #p+$ְ DF%L vDm\LgXxY "P&i,i,Awj3ua *緻VrN<<[GjOCĵK| gw9ghr* JxQ9`$;il`碁T{)8@UjOXt(C\ΤTZ)W g+ݢ4͈%$wIƒ0J cwno+Z=B!CFPf7X) ql@m.@cK-kwAexsVL|;k%~mEhwyb0)`J0\un(ݔbZwe+[%tD`V Y('B5d7.G{t֕E"i*ɎņQ|^mI%KUJ4$_ҤS昦mNKGaWbSSVleE;̢}^C륮T$/iI$T9 YEߏo#ʼncsxr$K4"{A :ʖwR-`A'J1qb;*kzNY+o`$iY0J"뮀ش'$x \F`~?!v^.LU(x2%MJ|yt1lO 7آ CE1?DS4@su" J2@x9W4ȹeueaRpEPy#3%\ afŻn8H" nHe$QiA@Ɔ=R u{{IPj[$KeYF6WoGK;[=VjB4Qeʟ6<\=3T?ri!!0b`^,bC&1=rrier5lOlxjv?[Zxf-7o宦wPO?Ʉ KHJAb?:n>ZSXBul!#Č׼:n0%I\1>Ci@Ԙc] 3[rmY wq|!Pn@4q;=UR%TOȥ$6V!IBAgح[#7X Nx>Cg_uEXOni4IJFNB\CNx:$蜕-ƚSޫG|ǡ&4F9jOout'J 2Bmlݣ-{?+5vM'kPVZV`{E\A|%Uل:łiaWOO-ikIYe[_~{kB.reD M2dxߖggFKJ׼?l?F~z%;av ɋ‚@ .&z0Uvk?(En8  `OZsW+,FAahGTW"7]- @ICK=$lQG;OggS!2﹦0}=:'$%" !($(s"##"% '&! ! "!&"~! %"{\Srr=wK>n{\u] TS{6ZQ@גx$LUêQV¦ɴ\$::q 'Cw\cYY*i$D*wvz ueNoaVl6Ѐ;|6=Ѡ7ݘD<Ȱf㺸߭F1J)iFx,& u+v(Ͳ ;T27כk_VORkiQ1bPCHQ# bzku|N5=>3AӮhpO Gl;Jc8H q!1yᑢ*%ԡ6+z)l.1.dҒ(V~|uYK>:vو9Q&°Ҋv&{fl1din\iW;(AYBG|B0@Cz]zgqDZDWّrsT_X,X\ &vkurTzku= h_nF{ŋ3 #FH.o_wO_>#gI+ {9|-d8AH5,mTqfjnoۑQd*OCH5T2?_Lv%,V,= DXn+8XqST]˻N)6Iάj$CuEd_)υp%c&=]Tl)hJLۘh; j7$]R|4EO{gư챃P_z~ID7zR-W4ςf1;1ݽ +Pb%h!/\ep1Sa݋ \]ԨKBAŻ35ry&DeeSA惵k2?*,4IW .br ţ!] `/tk xwŬWaR.)&cSqN 9_5:eԙfsl]ESe6o]Q'7v|zXWzvh `C.58 JTWZ PjLTZ>NSvwK9UFi.,9F,'㯜G~ݦ#a#eb$uj\D4;oטH WoU{9{hy;&6VQ%>X!!EerNbsǥ{N?|BsZ-`%*q㣉ɼ /n]L 7-13vP$maT4Z ՕzIӡNFnIEcHWĜJD\ Lv'8ɮFċEt `" ~:Qn΋͉4i:av32b|ow4l؋">. (ɭijUv,ƒ>9Ɨ.$13Xr(U%(N!|8xhYƠFct,?D23h k4%DN'4Gfkrhph7K[-Rݜ`4 ˆX=Š7ncC?({N А:\I鈔N3 20c[$1 czmdW:ݲZc$C  T۫9Zr@0AG'\\}j<w/H*aHgnHUƀ3.l= `WlskB0tp)Q"2n<1zluZ6ώ/Ʃ߸ZA `%$۶@mQ,ϢMduj4+;(,l#E-lm,dCT ߲ 00 \_)TUK#Vw8ѱʹf;g+ně)s4b?ƕ)$ ^k爛~$?)~v1| tLӱuxl>7d} ]A`;~]UY&J!Kv@}mgM8x@+?6ŲD+^1G谯)J/8sݴ[C`}k 7wctGOHT1`V%B% 8u󹐛u.@ǸiL7QC^{ JylAcWJuHyKHr.B=kLW-XMVv{d]csƪor!]4OeMS-]=Gs4Wv5%Dۂ:->? _u1P`7{pgBd &/0Pq k$,Ѭƅ`1W)Q!q>mBD8$ЀA)a|q?鴝޻;,WѳWǎu~Żݜ*pBn``2H+'bKeH[TUS@ -ד%+c&^9۪TUxhJvGx0~4NK1LUGU¾=EDqY;< 5̕UKTWIhSUQՇ{@D݀40<LUUєf,Ne;ٳ4DWIU|x̖/2GeZS LYezՑY4"miy6d\c5+Vw2(`ӰcÍX:e j_>raVT-v@"=i,&HcDh<on 5J.궫U'-ٚ}U7l)PHH T2|,Q#p#>>*^nڝ VC#A;U{)F v+HӔ2*9V m,G5v͟mk Yhx(#R [d(R@><[1Oˉ էHKic3k-%S[PxUvAOI3_d2c\xx&9SJ&]wOZ{6( 񽔏_|-pNGΧ3& n .0a|'.GB PY@8]cqB2 !5RVOggS2﹦0~&u36#"$"""'")!# ")%$! #$"!$#%$)"$4KBIS!nݣʒDSu ~ };D˾5I-$KTtWLu!\`T )ӃIA'7iFGyI,51gX6yi7NbEzrlpn YLckc ȵqlG/+dBӬs8>#zSVd^l xe**V B Jijt-b'GKP(Bέ4qS+(H֩ !B)Fkg0EV_##nUQ L  EkV0 V/`7!?сE6-5Egu.ݿ#f0B٠j>hƜXZA!]^K% PAeKjIPe"B"6äccFL/֧ӿЪa:|tJe#1,R7+\a`㡍Mv^O$>徼n{<4H/u&B-i!ӊr;PxFAB)@"pMIZ~Ek}tc5#}r,]Ntq'A)p 4 k"Ҝ99E(rA4F(,VE=4GAkR_/pDdfYÚ.4>#Fɫ(D(( !6ץKݗSьEjS?*VEY~)\y?Rѷ 7  ^ zsc ѐ4YFf)tC)'/s/=FoovcfSdXuWx/"QRf_xs|)۶PVX iy~49"^""©j,bvH;0P: 00l(axŬ$Tơ. q{~Z0kӔef_ zT!_Be)@c^.%Saf xiJ <8imD${%tydeQVڤ$G;'\Zmxlfk) kLa0xxbk"4:˅Z%0\%- ؁PHe-:_a )ҢFU-l4>_JrKVhщt˶bo^%e{&G yqpy(4 l-w׊(j:jafk>}D%"h7˥&y F̠/ O.;;ODTB7.IOKFyoʏ_ m : z7+\8}CrF\Q"35i(Rab2Q$( ܴɵ%Y%YKXI#tԭDljx@]D1"͆PwjUc1@uAA8p2hߡ?ǗeMgd7څ+pu;=wה (ڟ# %~a,1ZqIU,HA  z,_V)5vGphVJ)~2Vm&(ZTKaFNp X <U‚Њ Ĉ,R6тr\xGtZZz4v#ȎRwzѲj? w9(}94=[S:@e5yޗv\avNL'UP\TeeYxpRzcwbMLWHڼ-0*\-R 6HE9WQff&#W\}{8@߬TMnVNogyddbTFaŒI;W&l +Xr\~H77Y_ *j]*8>ox|VoDwh&㣋\cs8~NKhm3sD*jG,>tOt7줣"$i8$K TqH"B?׉~Տֻ\.3թu~wJmաd^vJ1{HXKc%ܻijp%uiB0BpSK!i])ٙa(_L'Q1| SOʌH坨t(#V277 -.SPX8%|Qn]֧M+ żk :m1'OggS@2﹦0jť/}!!"#$#'($##|!"###)&!F guT| x.(Y*:OD@rizP]v2Of%UwFA7 `1SR1X P^2X?[P&^L.V A ^Pc #H)(DjB0D(,\KlA P[>"/ 8JaF)QN7ߏsc\T,S%@4*E t ,5CaMT*Zb]־F5>iOWCsȃdm=0^0AX1;I\CH951KTzIbIƉ^e,uiw`g#H9\wSٿbZzlu?ޠ"]H9k6PXt*¨(y~.A+鎸HB'sګR.ONDh,3Ҝ$ KY \Ę5!}a_&hvu #O6H<jcĿT;wm/TՀ<"@  Pv4$S -Pe)%AOyHFfnLLyѳعz,bV3e c"l Uu"AIhGO*PPG#)q;_Hy.E*u=lD$jf,TL"R eP*-Ʃ?єZ}w_s2P՜>@b-aǻTBP0ɷ 0(ܨDV$H97/LpTVM(I$H+~V2pl4`cqWo̊4U*U zk}}C6bCL]ԅ{PKf%]#ݠ VYT\TWy =QyFo%`v:rixq<׌OvbW}/R8ׂPTuO 4MZQ, ZGI$39wgGV 4=0J ݭT;.j"bܭv-<KsdM$QUp4AY Aq `clrbJɰRBbE&2ziP+_V7Š)D*q$/AQBˠ%[ @fߦH$`\Q2EIkEKv#4%B[L=Uz;_C-!̀vJ:>*}* ආHU?mBڡ)6n'bHB-5eK/7v4Ux4Piڟx&(#kA\TYqƣCK[ 5i%ƮTB*T+7ÃW0f;iKa#!] B2LU!:\\҃YeӪR)(4%,6ota֋f(,c5AxQ=h;׬`s{W6]zC-BG 1ZusH )S֭%m*C)j 9>}Ah>)ЀtGEӵP3Ÿ-0k:b9%y?֨۱$_nn5y-[pW6alΔZ˙mݫ;n+ɮ}M)Vͳ鳸GrFWX/[#zPPqZy&c.p,,e*aXe$eEP@$m:K@BXĞCK0rv}8RD90LOv+ds Kt4d7]{G*Ұ )7$X Y$&`qa;hMn渊d&"o3.TfX(Dhq}1{j+:Nvtx_ wxtTݶcjoUJWFpƧXrfD]zD3gKTҊn_.Y`I#= „>&MVZSQc_ʜ`nܕ*^qǿ<&P\eUYV:X9B$܄ljzc.U23}PI;}!Ϻ2NJed1"ÄdBdA\o|q8Pf0-aLj5*biD'-uDnҼNV ŕb`QVI~. Q X@ l]eLId+ :Չ1ߎ0178~2Ci)"Nt*-@lɦ4@W0՝^7|YsbRR">auFK~͞ڍ cv_zUU< `u#N( 05D&2up9Lz Au-4 DQ.%XWp޵?9!ZqQ+zA;e p,sZ 3*KE(-#/"dY(~撷S"CMD A45xZ~D:3O#/3a,Z dkw(  H3HWvͦATcB_R[G>Rq}xLabYXS>|()Ldcdm=8 xc Ҝx*cL_UYL@c^QT2av(yb)UL ch=Ĝ8v۸}*t UME4DzЁH>6*江n9;;.<\ZNE5V.GXᳬ* 5^|6%⥠ŌM/9ݑ`U i jRfИ?iEqlg΄}"")qYU >t!0 he7F9*DB}&O1Rp[Z>CM,8F\^L/1qŞ2ih^0aɹRF"ZXya|!H/4Y՛jفmY e{tnctԜ5ϧ:?UP堲b.zNs|TVx>}^g֌trC{ñrC RU p h3$3N =K`h>C3UivK6E$;|lG0D5; ȮV$pD ;PQV hy☚!paj-Bf@h!oAg |T85T(<O.gfө~ [_'ofL{IzH\VwP`>*pcmQXӨѸ9I޸f$$MҼXpv6K$]Hbޑ.ř e;;//g_} `5ֱl0@kևqytY\|:֛ZqRM4+Sb6(5 @)^[#5\ F.n)\{Y]R]P(1ҩI#"5a 8Y%1hnMQU@\ݩ#۔7?q/ "fҙ0"x%$Rh%fkr1jur.mB!uk} FNa&KÑB!Bv:O'h+F&=^!uMD”F#l$0.Nz!0/  B`("j aEQQM\A*+{Bfgj_Y ! 4Q]5SU$M J;΍Pim%zzMpay+DiD P{$P# .U," G]AeE J*.bATH$Ŏ߅LU èIJld=\3z .LQLQ+xI[DT/gb\QTUeTZxs2{H>_OZ DWLKUI`sX!tQDTSei<}{iBuR!uELSLģ*U]Yh}tpR/(T[>.F >Oy 1;=o;%deLڰ{cW4"*뛚ɱvcϷvS ϏLYQVi8lS7*yM7TLW$▂0c/7vdu,{nr "(jztɫ-ۗ7R6Xғ!D܍.!{;7v.|7Ǔ=ɬDU.(b_vc:\8v iDav@]^k֙C"hċ^ + )UөN7FQ#)]<\Iό.[ fG*` P|ieT`H~ʩn* 7;%g%Ͳ,6qנ"4XA[kUqsA W E|-2Eаx~F)uQ^$E1XpQ]FDY4o41 5w1jӘPUw@P@@P . u<_kǜ(gZ+V l[-" {),&e 4GJ3#B!˹iY9niL A&5K}~_Gu8:6jX -k ćj (Ff *`❔i\YU#,&5^vXp϶.eEBDNl'NxE6`Jŷ0eXA;<ӶȄրҿJ^D]cMDݎnwDG-]$Wvr6),Kq'pp6,B͗DA4KJO ]>|i-%͗ǚʭLxؾnr`h/$K`4W$s*f椐xV3_F?FkwLa >_'v`gag>~c z9!SecV˨duūӟA_6^/x\ ]A$CS;aL^#j+3f &;6׮VXQׇ`eit0Bte\ʂL8-.$^r^N ^%H}+Quҙupavʍyc1hhN y{*5+m*CIj/ۦSo M&5kFy!_:s&!<{`Ge'izj~FQ~f<=6cW@&-%L^lfB.& -6 g1|^Oi:F19W oӱd/'Kga.3Hjpxr͏.1,^S1tJ7ҴzHj $0K x%IȆ0E%b 8?/o:ˣwOqaӶ1~s>iKB MgÎNҼ 7) S_O`omsЀ@$ ݘFв@`s-H zMwd"RIЄZ@ ,vuzFڈDCZSX,#-IМ^XFG̰ﴛps(g{-Sc6w.tN &ϼҨtw` F!pD5ib`wiM(#`hQXua$;Bb1 Z|FvhKJjZC`aKpS\%+dzz` bђEbz0蹿-$p/h@ `lZX6k?ߏucD}"\I'P}645خ n!+tJNmM)Ze0qW'P"pIjn]>;FUB-WbJK />B0\Ay4]Q*-\QK;>v}^f6Fio@p4*Шc/l ld}idu;YBCȔ:K{Ml-3v-׸eP\V2Un\ZiFd{Ladl5ؐ$K%ӹEH1 &JiB*Sќ bKS8'nz_ ˝o{b&g\k_\'p/kNKW\^$BD+eL$k$K7\q@-l"9^M(iˠ|lK ƏF2QYD(PHh'+ѬouW^|=_i Z ZmUd77]*!@M HV2!^f)d+U9#Mi6YV^vIΏf G1+"0h @J0^i5#6S4,\ԓd5c5qٍL&|s#m j^bmV4(T[hP)lwT-!|N=@0`~>`T BN&:? wNϏwo]9XVUžvG2Ui>Ti3]hDS>|1㋤{%dIS+QZ),5. i+Bl D@c0cF8|qyG:Ifch'Klv^Y)eP61)WQ!F)u7شzrNX5÷ly껚X R)1ZjRiYjPV ӿ-3/qd~ Cp@R)b\P®\#-OiZV n FMd |4mTcNxLP8eHe`% HåNݘàF! v%䍼\N`UA,b礪E,y2)+o :Nn'DFH qI”@ŀŮX~."WXh(7ZV?Krzp!Snv?#Q~ROc)F|8MMԉUƺ2oJcf(A"Z+\*16`'d j% 5!DjLYXg&Ӭ/Bti .!$SLDS8s5,¶-pDYOVÃXat*>:'@PkD[dS=ÃG 9nxM(F$0\4QzC)2I+O<gy mw6[r%OsՍq"d;""MDAG ic$ebdaaٷX_#R觅WPt>ܨ(Q1E0SxE[O1xN;O?!I0c_%1xQv#Uvy7y.DEr B'C7@ ǨLw:ч)L*䁒Sp\6n0<.EHKF"1RJ".NwеOHjP 0kR b-Q$":e?L(70D/pR?,F+0b5W4"jH9 FZ#AtIgWWMu\N%/߲U"@蹠Hc"kc^vÕ p25##C,ҦS"&L!R U Et2*6CXŒ+ajgޏ c%F+5^o L5"UQkF^^AwBwZ ْ'/I2O`tp0{ɖI]mQt0_9 c"5O$v0P'A#QK93%VFMvlsZg'4+Eipя3[eH K-bYD5RzAn+N%ڢ`h7ck ,b`_H0Bi׈)91iƒ~4NF5T'&q5hwsV0d@m*h50অT (XVnT>E=EQrÂ%%"ެnI 1g2j] p8c;Q4tiNlfLȍI9㙸LJ}sEcdj@!X7 @ 45 zD,7ʲ˷c4Vj-5Eс#r]s@1JS ,V_cU=[IZ!*UTa=i<?X; s'Yٷ[vE1JmATX `BrVQWL!2J<4e" w`lDp5޾1i$Oӆ̓E|)8FMuIpRP,DщgAm]/ ^_Z* SP[0(ʢ, cS׼V_$U4%[f 5w~l&h|^>#oB D^oEȉ۷iSŠ"DlTC">吷Hm:0WlNQR̗6gЇ?!%::D4Qi;Rn)ٽIX\;. r.0h~|6&@xg2JsZSSDDƴ21,Qmv,UA&DЬPzP \Ct U-K$HI I{jiUpMHx]?W@Ŋ|y *T es 㹟FR@/DSa'15]5ӮXvl2u2S% I79 \Uqj.yu4VX]Q$LWz+a3|vx01)zLYUez<҃1 "ix \UjJҖOJ_gͤ,JӮLUtUPyHfXa͛B۾VM) +K%IRql- soS]HgRej1k8"3MQL@32oojUhu^K!V4߸sRn x쿮`;Wlσ;]=^|v& P+>{ $@9+]ğN)i> hF8)m;GQiS' I:h; A{hBvjZ7IB ϠT%EL A~\GHiT)^ @iSF*'K҈.=L]ͽ[ꁓFtX;fqi!`ЪDT7 pP/fy< /c>>“C qì bJ}0f.b@aD.V[foC@`xUj! "dD<;,QS;ఋ+5|Upm혍[MG"~["T]t@3g@cs5GFŠ%?IHDDڅ\\qaLWd@(p(nH▥U\_x sItfT_lpd񵿻*ӷI D,iD"nQ(U^^)i4т5g %OGOx>2 :ObLR Zxa~pwvR%%N-Wc>6j)-]baD oX^vFՠ9nh>~&0NwS ֆIGOO!gؐ1V퍒O."31(^iW*\C>󬎴6]OggS@s4﹦0c0"! "$&{  '%&}"%!$(%$^CNӭ;?$HhmP\ϙOL$128vZTt9.Cb;aY4.PVnjTm@*P~1#f.p+:z ߫sv"T1ƛ~һ.AJk6Y!T?d9hnɖQ 2&LX&f˨1  Mwқ] +^%WyuzChl!FjXT}Qf!wɵϲ+!2ø!Ys4jHckS[% sy#^r!j LvMn8E+K>":1w)q!'QL9vJ- 5WE ԨD%̾7fp8I$V ek=Y3z}: j]B wLadr %X G6ќ L]-LM 1 NVsK晝 qdY[4]Iq6D$uq !>(5 o48reC&~NɦqlIOʟz!ɟ nPX95RZC({P8/zGC4{&dd:sݹf>'#$a@G49q{dn%|hvphڸ:hZԮwnpO~lS&6 (*Y+kXnV;,9m  9B$DSUj$$S볭~{'ınt_]ATWt++r2_Ilݕ"2KI꾎DiG?m?Ew0j}Am~]XXob(?>! cD1.E$>^/B@"4o/Kz3H㺘1MNHJG -IsjF%]CVةþ;X7Xp37&X?:yelŠi-aNAH R'J^ݞzVA"v{DӮSJ,i4"([[hV0}P3P(Y ]$1إ`v2; `TxZR]`\u.IJ6=8M`-N<@%t"20,DŽ9 gYH6T[ ;O/c$gdL d_xC (tUhHjDG5$P\`v ML[)k ˜:˼ӟ|Dx$/Ĩ t_`o:=!xWҐ+eULٌ)ki̘< knKHxrDU hjƓbM{H5CHME,,M4& kQwsaY(5P$E_4MtZW)ѳVfnǃ{ލRGy*Tai5F"5i.F8ڞkCz4ڳ}& LcW$@ ,:FkQF1z&to^v8?6|Fd-'(i'|9Mk8,b+"NH*I*Pb?pEgw~6՘rN}b} y6t\{|=dmʧ&< ^6F2I-kLpv'i6%q)ĭeZ➞o{p; sN<v8L@B5p -}pi.+U=+4G$t JJ.Uɣ|t;sMm 2Z?QBBLJ0rxr6q6lc6aiPen8l>T+d\'[%sGnwwdc}l,s@,yf!k2̯deWz"r~q>\\tۣԃ:;&K@4~ӊUVP$70_/yWIѨϛ0WJѼ84GɯqU_Su?J9=R:|()0u:DMM.ڭ8X5^T>[nN-0̎5 ?*taPV)xsv|ʩ͔틻 ]l]%ݿH+bkDt=ۘن*`T PDMMk!_X#q?HHa2 *^6VJ_ڧq9-j6~JDdӘ^zXYOIfe$㎆nyat\v`Fi/>Wlؕ2%o)KW,WXI=&A YA /5Yd:AEW >.,[/Z:xNTiDH:dl&lf?˳l-J;Y\`c,-@dw*4(alrUO|:{3R?2/zHՍ?K챤nE:`SgAE7=SB؄E圫<0(02r32%zah:u\섓CR_L&4I1t;R&Rx[7hOzd\xL4*)W=$-a`Rɍ.#PXJ ] b4g9D)-tN d\vITn#)&vfSut/^^Pk75 \: c &-Ư3 t(+ *Xu\*+OggS4﹦0 0"$"!" &('  ##z!!!$"ˡ$ ܠL37l6ǔ'b=WPî*Rx24 h/YOƪBR/Σ{+쪂ZJ$, aI9=H ݍ  :R?=m7 윞&ptq-^|0GhXj A5= ~ X9%ȞEF%A?DFV IZR|v=ꊪX|L\+Fw6 '((V,(-T>i^)jE::.{@ =̢ @ Yjޠ8*pX5ȋpgGB i.Q#|,4 5(DUSJe xw8EZ'ѽJTaat9kn:=BzU9 ^uddFỲiԵʪ|$g!mU4S⣩Fws7֠+/Z5D*d_w):?shnn\_,i[ڗ9؛u^;ެwnUwDcL%1&E88)ѐs}3GV[ա[}?uZ[Vt{{Fm969?A麠9T!53x)!#Hg. :aH*P A "ǑU FQ;#.ֱ Ey(k6? *+cn= > ьXXOC<sa2(hLtQӈIK5qOeN>Y_GYzKmކHSF&W-4 we r(?-7`.Z5xNLխ]*h $1̾}0F^yH o) â,PO7 'h[YY9R*/ՑLUi?Y FK U&LKLp"Prj> W\!Qm/+>L)%רuqϑD\s.W6ݚ]홠Tco-'|֕M< %_/52Fm7fP)B%6@DYUVHuF+,7{hV\pLYS10sșj^T_)w4E#7KLWUaUAUNvQ$m)u&s@ ഫOODdtRbYL7'kfGX"Repmtc;m|<çO>ۥAb^RȸGAD1&%!1-IMkpӾdm/ =D)N2N3V n=]9hk:|bc}ޤ!ڙ@@!pIѧbp xMlCU>ۭ*rLQ=DLvkƓ*A(\3q (@(B5ePͶnk?^&JV'qT뼉#*~߿K w,)H4 nPH@ >r/Px t\JB !]0` !$!dY}m:iI_r+߱QV*dY}WV[{ˆ%)kzoLT klP!yMԬ|O #=[Rxk647<dadc0 ^d9x" 1v+^F= 0_F(ZVa&ps/YFM,kteA B|&UD,YA3+ pX?~\rK`{H_n}q老pl8AUFj\8)D8[lnM|-6xm<؏MavfԐv_MSBmS;mTo}]gZUbN"(\~kb C/ ZA@NNahUI_]}bt頎v'6#fZ \:2RXBh0jh(3v+ɿ+5wS6{2?e_ýR-a!UڌzQ@A dw;B{.lU@&0_Yd`v%SY*4iϿӉOX(ҏk1JZ}MS+[>m::L 3!UG84J-r9ӍINzڜ3rpn~np۟`5Zy=+`MHJ[kZXjRn=E{\'rs”/6ߔrd{0m0da|՗m8u\ If{T~G.6cXK84:g?iN+l<; nh_jujLshn]ec +6rS ޜˤ_9%Ksa?(,aGKMM7X44`KA댐$I 9F-\Br= t8u7KXЪisfٕ$FZ&F˲1’O0l !r# ~)BdN 9xpJȘs.[W?Xney5pe9TDE5R?kR_ ,t4=tI͹v4m=[Bû1}hSczmz_wLgĵkgaj%ؕ[rK(iERk>*K&R:TUD@&>?JgT_{nXܺ9+!LqqS?mf[y/'s~.{1&1'zRNC"}j@(QxҬ/gAB7Oߛd^{C%%X -ºuKILS҈+K?k⿼*꺒10HKOxfwɪG;WG$In*m٧)^b-Gjˢ\ȗ寇FuqKJq~0%Ǹ5 l<6 Ue1Ebm]eJcv2HDԉNOX,Ep=Wpµ0umwd@]P VT%Q,1a: #E&șICY`, Kn'[a~|6I@IHehxe"$=l&Ax^«H(A<K3"Ufg"2$r7'uzz+زFH6,U̫DJ`.TP j%ʌU"U*5Ơ7tKD%%{Ʒw8o;5eZhp6& 2`(Fe.1/gmW˜{; !ܴ!%B7^:?CV&QĢj"X͆}]rFXYUVݺm'_7A [/jlj*!ZMӟV.-tuаk,j09vܴw9>(R]rdZWLS0 <#ú \-6&O^I7U/(nMM50\O8EbyjڳQv B i^-)HeIt@a`ֺ;&,?"ʆ2HQ$b Qp uKB4S@̬~k<~v0j)DUsEfC<\S0IQ%TWÃЀPz )~՜a4SdI~>6`^LbJQD z*x#mlUyj*uwDnXݮ{,oчvq'ăgKrHaQɳdZ-p_+N5c1!#ST4J1ˌ8X H؏ A HՉ mv[S8!b"+ .#|jc)0Ún֠9*ӏ&I5i'fs`BǍ󿋡ځ"bV9/R)e7dUJlF)n!|FX5Wx8H4"zv 5wZ F3+l/lBPO0:Х$ l7m2NWZe{pJP% \Oǩ9n܈(:Xj5~t-[J%5BH|v)VF"^2ywELD /g.Sͧ{2ٝŷ6"r_~0+( xJ*>H@IARwUO~܀Q7^m>PQ!nSC?@ |C <0%L)ӑ/bn)wh&..5jbjX"z \'A@93D I S"v+ݞP*,1!{`U"5 BFdyaC$Ӯ?93e@I4(ȷ諌{uxqP'5(*B >d**AM7xnJ)Ք0VݵbeF1#%mքwnG ެ"p׼@00sy&ɓ5$woOhfw^1;8^Eil $4X(JOD Բr9UA @dWt1#Ěa,U! #UA1-uJFFBz`N⢕%)&eCñH7a>۷1Upt&* RCY 듻tVBTѧh@D@ 1P+GE96   Ӱ:iZe ,|}ڿAqf0&EOO0 +j(oo&w䋪V:!LjP>j K}i09JP$K(Y7]UkFj2 DrsT UAE);Dd#GO_VgFb:;{(jR,KU.<9.nGޜ?U7v%J,MGԎCͫ?vO~bn) 5PT8'Z@mja<{OW$HȖhTSuD)-KȝXgW <Ӊ㞢zO'[(WQ<߁?e4!LdS8<͊W۽I}7 Dgʧ,!s_.tSxVdg" b<(3)5Um=>ϖ(:,fgR p0,f=ˈ,G"c~$2ڂCUR P}}7͑=J\ZS2vcy7\#rܩ*άbfo;s0{|Crs۩o~j9& ;~{>08X:6DFCFy@<>ކz8]m Y?ش NTBL$:qvPu*^,gO?:jjbp<]EM2?Hs5QDY!U&HhM%!I'  T=⯝ۦ!%)p+ւ kH`4^lw AȂK4rRC\EL2Y|郖B]IF cg$gBq(e5 XRU @0@bU&D &0ֱ,hIgT,%D[џ^,I SV5SoNI"s}ּj3$XxD4Ƈg3:&'yzUpr)Σs0`Do#-@B?H\[FJ:)0b}Xf6ap.wMTW ӧJQz\?5) ]ǖ(LU تvCb^ |5ŌF-R|;%C~\gYp?I nI ɋB6ރNԪq: Ɠg&NB $- C )`ˈLQDY{UFZH@YQz8+AĞL=¯Y|zG!\e'ewX%m !fB2XP, vRGq L0hu%1@;xI>l>& "(7lf>7 F<&s'*g1<52&F\kN\5L 1BsJHsJ8*M_x>E-R?El'A, KF><6>@;ۣ3t W L%)}:peڶazѵNy§w}US>,Ji,d+*8_I|]IEZEXpHZEv{ֱm@X$~4Nom`Pt|n i4r*(lxݞv;I<ǏKH BTR_Uա3ʬ[t4ꠗ7GiW K)8}+" Ka (2D.n<ӂg꩓}]T\R:T2BXUDO䟧Lе@F7889͢HE0<͇2LW!Zt@x3ݻ51Ɨ}]7\4biU,sl,T%A(wEIYZײ&|Q.#%Ðj"=agwJj#l;<Heѫl m\y- )c"(86jغS"|,gS i`2o7EId[/˓lH2JWXan4#ppW|T}k#m_&IHggy@}H1sz>LVF/F BFt)1|vE6&|hS$/ F#Z2- y;xF.vXĸlBWn0m-B{1@BUdqN9p&+yι׼B17B$܍sܽۻ-7Wp0[3R+G6aq%Q =~fENx^A-%/OIrS bvi->{s}{f o-7L6`%ɗ3]jWwy6JlD/FuϏano8˖^:W%:SKJw#Vh l[Q ( Z3 pEeIK5caz1e+ȖNypn66ԓG`IR"K6x>k4(톦JV3Y5Hй^MDZacv؅H>nz ^\qd[:/>]馑K3w] `dh)Л#Gg&^@UV~EURPK7N>Lj4$snt\| Um!}+R|}͞<-5NfMF^Iv6u:c,9:qs5x%[bAC >K&h/S$Z1 Pӳ[DM=}q 䊪nx.NrLljC8HrVN?,v+MNu"t++Ox 2ЀjfR0ZnXg(B| Ni\.׳{z50zH,Vs`XQ4qEYkR_[ඒ,('|n {DEMB O'(ߩ$#|^uii UgUKtHPCKNBd:@i 7"yXvZP*#c ¢`J6kL'g0Œu*0}BȈjOξ8؁E]r š1̦G[rGqj4ƺ$dah0j}b}J,{^ (,В.AV %S#H^Xޏ ++(\]ؠZT%HR2 Hb LWL:#@&˖ĻۍTddUd vq sҞOAD~QDUS.+UYX">{?IUfdYauU(7p Ėu 5tgdv (u 1-/V3&^+ -1H SL |8l]+qЧQ[Eaɽtw櫂1bYh5uD(8*$s$24!8*BT;m ̷@\ezd#0F{}\+d<8N6On(H)E׈A6r+§ ;A3fXe/ h}1._مh=Ҥh^lNN;$76Pzi5?kK TDGEbeBC)) .T,bKj!P6[`@<ph cD=ҝw.w$rhvT#nDmو4@@^p "G]$EI +XO삮хؓىd+oݕ'"#;r»P bҧ]tvH϶R6NS%j!1^멯Tf_EE1F_X|)͉!DƤ \-S|#3P8ҥsNHVv P-'y.`?O' >ALz$MV,Ȣh#RRiӦqd9\PLS iL*ٓݱj5{א^TLUP]ʒTyF^LdVEJq)LT¹AK&.>X \v|L;S,T'SFFWBnDEw-ٽQ˾i]g\ (RF-Ea Y1TΖ>31R_7TEA=#f1Q͂OggS@5﹦0x7"" "*&'! #%!()%  $% %$# '($%~uZL3laM,P01eY52p\)$Ch$ /T0ҋf{{=HgF$$B`55I)2|,w Xc_Eb( B4MeӦz{~[XvGJo`a Ymi ,<۸#.e]8r6`lL>a0('$ĚK1nWJHzBE 3~˩`ibܘ-PSҰ J]T$1 XK*Jƽ;:T_ÐX8. ֹ (!{"#gXa7pyBZxR~U-, LO6O>+˹Ut(>*aU+ ~ _Q@lǁ"p]@ɡ.(Qă%R9AOɈaFEHEѥ7`ZwB咚137B@5dV@H|@po49`zi#X(dmJK ^nS+*^غ6AI.Wi"ʴ ErEy2Nf4[9,K1^gRu' c Y(V@T;bn 1RS:usbMQMu(>7dԞʶH.cD?聋X kR /Z7 bຠVrpOSYbU/0ʍIs3 GfSGW1WÈYa٨"9$HUsuq% od!. ߅T 8-0V}-Kr" 6Nk]KiBuZےjd3 ~R9_u&2y:DD4gnv4hn./6x/|Wi+HP, v BtE ڥ+"M$KT#taSQm++ߥ"Cq)u@B)4SJKU)0΃gہOlgK{"HIL^OS~֩Sn쵁QN%%K4KҸ&zHdi崫ǙWVULѸEc3kn }%(x -yiVLMwG2FϦ2lime-Uwa{1Ҩt킉 * !3d(=f^15 Ky|wUy6{'b(hFS5}'UnF8ԏr5Je9v8?'$cGNZt4ʕ_Qʷ VS kna,X1LpsaKP^$1ccQ;_.X0eR0Cت}Ma%1wߍ î9@ ЮCZd-$8/"a&~dAK0qUq#(TDSLvQU5Z~C"^}^<qL[?da,oQ惡) ިʌl/*zzLR:X".X`IyZ EeAXTEfbF5җO9qD'e3e1+!1OosRb1n ɳ 1e 2dѾsؔ%*YHrR>|qbެ f|VL6 %F/f.?‚݄)'XJL5!Ic6<,FјJ0``4!`X& p )TU<ѨFiSw$ v" ͊HAmfxQh-. 9d?I [~0bKԛPPDwOggS@`6﹦0V0}" !!&(|!"! '%%""!!#''~{&2! 4ZHF,Mgh20\رtq7vؠ(86ۦUgTPr4D @+'ƒ銭Zajx)XAt\[{Eq%Z LND||6Kzg씇B`ZbB绡:Z液_4ڱx7ݳ{1f~?m$ o{(^Iڴ1^T ud@3uCXʢ =8:@!dq۰ЈzS/7ŎkɎ[Ev్D,Y.|*laB5w*I}mmir?&Lv~)cnWƽ(LǝQ2%c)w-XZiy¥ zD!eX^\5&H~*4sZ_%N2:Zf-.:FKe![J"*ze.[9H:{?qJnyBjQ@SՒMߦmt_ZS9 eL $\7(w) V%h\NA @]P[vWQD VK(ف(f}>h4%\蒈Nm9( G Ofv3unjU I <*hH,R%EΡ,nX K24H_9vG~gi՟0GD[mo{sMVͭ2ҹzkXEu<vZ圷d; f۸ċITIDObvqN_r[ ^nhiY$YlNYUiG-!OG cXV$L[*KM2٘QJ,_l ]T6œ[fMiOʥSk>Q)<[>SL/I {5ޅɅ;.)1T,[U54Wt x@|d,sTl|L[Lі܅EXb˴LiA4D]2F8Ywm"+UpO*]>>]w#Dc8{QvӸ(M^wryo ںc%J`ukA="ZE.ŇH狞$IaHqJSz]{,fIJvΐʪV˪)^c*?G+,YDWvV"`0$)+L"Q\qrO+iZngàf\o8M} X(|bo/B m;lOTfvA`\P2ĜOv_ЉJb*,U.8NJ[n'zcd.E(" # DƍHU^|.nΪ`=NKS 2 v\JSJDE! pYf Z4Q2[houؗT[7! fy P"2h5HV2/H(9+ܡp݈ n,*l.3Sqwtc?M8X9QL?`kn0ʠX@-U,2$,ƃJ8Ŏyt{-hk Z( <Дè n2X7G?UJPK5GLLOf6ZFQ@N&f:4jnOAqZv7 , %@QL;àJJ&KnܒCC=UPs0Jbq^Fн })Q @ X 9KRE/?Q\BԷՅiqCc}.KT!mah0x"H@ UU;Hzlm*RGA*A}Ij[T[D!ߖ5ydDڝ,SХNGRRHSU!L,ϣațjr9ݼi̢3@uxKtrKYM fsZ9%i\P ^WEք{8(kEPIU>+SG^cW*/Ah<<+'"%q Y#_2>"Vb/fp4"f4"է)ݲ­n@* }h&)ZTK%oX6Ƣܻ|B0 !CxP;F=8 . %>?UzX-_ϮP?ԗ7{k_yls@5[৛wo^HMڌ>e1dS%ם\vD5Ґ?,T4Xߐ@?PSs1>@d/]Oj!,Ƌ}@&RKTgUY!D3W]fxprs[ k-ѐ,p٭{!Y`,V(#(Gf-Δ"EAn07ld/$.p4\*&W+PE1:V;:Ϛ;B MÊ79Rp6׃c 5^k/[c6QpS]+E(Rp5s^$/7"r9 ~6u2ܮaE \]MYeM׉5xV2Nz)"uA $S'SlLWϟ~wx%.Fo)Cn d_=Wג I]n[1lk1^!'8V1+dIJOPf";t-\kٺ']uhFbe&WQ$6z5?N1Z0"SYd)2'FUIqX m uTE)Ѥ\Tݘbw&O!'uJq=ȝ#_ *hͩ:8b.7P'ȰɠAQ9؎*wM`, po^NUXIVkWC)gM3lj#hnDjK4f1o?2aX,9#I\8'F @ 8RfXwHkJ U+ cN "KDޜֱ5D= tiVhU!gJ@I) (;Z1L]JQH^`OggS6﹦0pf4 $"$!! !#$"!!!%(%#$!#$!"!&%nQq-[k.)ثO~tXHiáH#XЭqZvig`.`S͒]g@"PVp/T0*Tԁ 1 (bTW҆)6-L3Ŭf_P#5MhˎhWO;-H#%U'm~|6.[ pϱ  ӢSLDQԌ9i'E;yf gLtk^ [W]Ҭ| K8wzq GHʄ2Ei;IܠF_nΫPBEyvd Tv{Ʈ. dB!hN @(~YFQQ쌣MZU?4@fg{|S-tAx \~hu, s"([Q~h5_qN˅o}J-KQ k܅9cTY˝qHC@LUeЪhN==E<[KWQ%DUeBSUNKQF&F!(DUeҧȡ9u<,y^IJb^5mz Qi**TUtUo`b9wuJQg#d]daQyx QT7u?䎥)lgavֻgj|$ă![r(3u%/lUZB@ PT(QJĐH^NNkFθap-sSUȉFd'Mȋrf."xx/h谩gnwr` 궙p A]sJBz1>l.>u\pA asIZIX!iT>rjk1u,6#sݜ:5qu`,!!ml|G0$HԄb%u iI\qA]l TvkmF/ӭYe3! Vʲx>?EdDZߘF'XH&,cfI- Z}m#QI #ڨ8ohLe2 |稵tWo[W7q4N#0ba95.ůoV+!o ڻ,5LwDo6 .m6s#> av 3Zaݚf_B*'y$a5:+V0+^'Ѹ|mnRn(#*#yb LMCN#xc\ l9jɛ3Ð7'w?`TҿF0ñ)sZP616IDDpPeGWkthf0frc$&@1>{gK}ƛ~8 lmLd_>Kw44\ dg| *ge>leNRh  [.XLਂPi.mh%c&;ۯVY 8JBmqqzK+iKUnJzePaH2@8-ii9(Y.II[oY]%]XhKӦlm))k^9d~NnzW8#P;j.t{Y68v~9ϮOI|:z7W(m+ez/\UZMEAaQJ^+Msv&3w+D9oӮ\zʜp*:8;{}76)߻y'vt\ -XIK5<3DIԴ0BRyuܩIdUi"E(aQ,[3OKRnYJOBray-ٚbu,KQ[tDhHVوxֱt֦ r-pWU]l?_턜$3 iMhr1_8HKXHˍBn]e4ݬ[!n2$2oCHu>ay1G/xI% Y+d XIbH JGE@({iJUEd3~2(cO$cuˈ.ڠrUbI|w]yo?v70wty=^sNfD(C~4ԾҩW9 "Btb6Ij+Ckc )B LSMԢǻ<\7۝~#FɨeO9V ӱ%OAtvC4MO<_9҃bì+1TDfA}ͫŭՃvuK?5h˽W2dD*k837-xPhVaؔLgBY#CZ `}8>Cw~}ԧɌD$QڀU;OQ]}&õVqԜ݆7]I)eCHbN3^KJ>j*UHg9q|3OggS7﹦0,1s3  ##$%"" $(&&}}$$ "!*'&$>ncZ4p0@Z,EOrAgISJS6͟on^[ZN5Hcjܟ*w͐4 =kX@![ՓvChx!!mZ:ZF,btyrXG" (>v'1FK* c!Z8zi[%":'R]:8;a9%6IKᣱCFxdqy?"hDvY܈:_12j׈6 u 4s%>BLtcyU 7҃LpMb+*p",66cڬ+cr'@&:a.1Bfi),]#HIŋH,[oTR})݃ca[LG"bSq)V "Md(!+jR5Rͤ1Ț):CVӤp)H!(n5 Vv"#c*TWe*ri+YƃRnhu*!Y TY *fdYV8Kb-TYt+kxE&xmk=ɕmRJZ\Ykhq퉃 霧>Ji^ڲ" zeW,k diy { 8X Y$tbl Eݍt˾6 bwZШɢ;1F`O)jeJÞ8_7CL EUIƣ3ѮIl\5o]ndfy^8E'^8'eI9փFoA-uFQbYukrc,TlLc ˖|@Fnpʦ^;~d]9/CmvNJP~J)as|7]l`\uV [ͽ&ػqbqA}(uPcuh0v6ja ]cAE4KgHpݛܑj #]t*Dr-WR1DW xpjsbHkӤgVMm$D'[@(7YYn򚱊 T$ML5WְM?.eRU!<фϳkrs.WU # DUQuf|QBLWl' Dt:"{kk&YW)hqmnܿ4Rde`yˌ v?Vs6\gbU k=ו 5Bm.X_d꾶Z= -0c4 0_(QFzvg"!8f2v/l~8Ri@51|bKH F}=ww-;Pݑ5THa'OvcE_Dg +$ҒHVYXhHb~.S64]Rs?=MFtҜN^|eDn"1>cGQ =4pJH1=焽TX~pv/;ۮ韷B>Km+#>XxLa4T ) (<ɺH']*޼vuJ@]^*M\D/Iq&e,2Ic8.~Ȯ{mDsg] p,XgV*cê[- [ w6X)H#RN(FX<6nöUV޼.$ xJ50. cϻNFP 4Vq0]4@Ks;#5Nojf 5*r2X$6+KEY^Vw&"FZc)N_x \2+9gfV1s,N[e?:JB00{Ɖ 0AR<~"|[BU{6ș}Ԭ@#!O~S unN``D'lN·ͳ68dld|ڔR<CGEAbI@$bJ- rVby?N1:OϹ cn] &L\3ҌI=tdq T,\.L Tu1]iYUҧlSgs&O n>:DL}2DǮfKIt+Ƃgpjgb%rO(LTɗHn „"SMD*5\9| -TXѠP9j0/#[hLSIADrQX^qpq+<tbi')uC˷d Dbva{@5ҰSIRS"LYirJż>2ZTo5UDd#O6yCaoeeR{wYՌA%FDirL[3?>CE8bJi(DWӤ ^@$Jt W}DG=OS Ta ਋A{m7iMňhkR'hVFHP[ш LcL%0 V\GQ*API:GֺkАS/ZJ >2;uݳ:5H& Ė$@6d8JBo!޾! @Q"Ԯ~ JJ֔~ʠSQq.q|i8يf9Whb 4a21+Ȑ8)ĜnH|ROyBR>dBw },s}c[)n {+]* d&P f#DX y"]\} +FWPTYeUVNGy듎aP4Ҵ*TDWLOUBby^I#N P 4Wu(-Uu㪓`h^ʫCDTWtUUxz*2vNCΒTTW骊>&%-OggS7﹦01%"%%#%$&'%$!!" %&y !""(DWd#0ec8*xV.KZD[eVyVQ :ؽhS c2Tlg!uVhn<ɇBr8-ɾ 6-ғA"%}5LF%D9iҲ0 jݕc>G-ŹHay9-anei'KTȶ0 da!+)id4Zpne}-#>]2SОN7oVP;]Z낄&nFH' ,siPαi6:qvcØ+{cHɨ`غ H$WejoF YOP![Qh"Xp|n&2MO'qA¨Rq* FDF)SyfN˦-uS CI&+^9KA_HH;| n1ϺԎlM$nt^8t֛mK$K_vXBƀo[};e.+UODƢIIB~V;yogN57%7^U^ p"}]A.T/ &lT5>Dn  %"-%R4ij. ;@<%ۺj$ [L5LՉx74=rm}IOL沉\}[uDH.ph !o{( )T:OvL _=tAVXV*DA@xVM~ZM ( wjy}8CJMu2W֦);ius`k˱WE_tk}͆u<c( wI@q 7R,~|E@ pՑ@Bt(#?tL333u:/o9[[WQ&&4A]V#,4oАht|(JU@BiW5I>IX-VIWz`GM9&MBN 8:dC\ML[e:t0"5iI50\\]ܪ[0j\vEr |v$2NE@ tODD57IBJSɤ)vuGNat}`8^j$IU oҔqWu^32@I, R8޸晈E(ruSv**+D|.V[|#,77 xN²R!m"V͋2@D|y&[/=3 M`ªD M(@&:NjbRD\r%H׵A5x!Qa0.5I 0t늦Ai?b^Il<%#c2KMD!.'9^nB&$ Z4`ŸBQߜ 'ܠdb.(4.QfS-܈rvy⥰fy-?^Q]ҽ53Z #BvY <^ \)QE攕+i&r''uN2EsH€næL '+n M6YiRa>PnmXss2Ju7"- IHdTjz * #.h\\94">& z:JDF*s63i,tzqa~/1- S+u ;8'z5N+u4' 87ñ{D] e?t9n~'wqOggS@7﹦0"}1&&&uz!!!#"(&%$#%|  !$"lc=1LW]q,3vas|f\eSYYHIY9y_}C|N2l나Za> `m ֲ8`n*z_zf0 Lc5K`8\}XkWHG*GI뢕TM-/\h-77"bQ \ův.85 ""t~!{:s/sFjtM}Ô=CpC?֍s5X}kp@PI9DX>N"fv) >aQOD K:XO4w,;@dH Mm[wiGe MZU851hb|N;/!mWߪq5 aFmFۍ,k>Vr$H`QH^t @x۠1HZs%ri`Y1=ڹe;tLm\6#pIP|qLC!PBU*cQMCܱDx !p'2XjdN7[QA6ӮxQ <0$ȌE;.M.h|tGD+ m@*%2 T* ~Ndٱ SKT&G$;JtyCC6Kn 3_2[h-T& IFuqt4h*2 0ʈȌyzJLtnT(z-(2Hʊ Zs0B$Dto!cV]"}kkA0~:WGĈlQ;$?Qc :6R>AP1,Gh(&˛KCǹd2i> tHB=JV֑IJ5 r>-.@ oz=8,"UD4QgMɉ& Zk; %7| @@th 'kꦡ.+fH .jͱ.V$] $u BWA!‹V>@k~'""1uI$͘0JLx\ɣaz=7Cvlb&B  C١Hlu1 d(Bv/jαh˱]}n8D`_p:}C@ϏRًWZ)mFaN?oW{t("bElf)$e1`ʂz`{Mٞ^nIՓװ-wָe"zi[T]3Va5L}SDT]mnR]zϙxS蕛憦DW%@;扑rΡMCtEDk. s[ωz+TnPfD~Bi<֎\KS6\Ƕ4/ D?I/IU:J LcbDm6iIHNSǶ`TeJ Au@!sOeFnI#5|3Vݩ Z 0'RQˬSUnڑH|)x8r׽f{%$g 4 :^9r8 70 =sVG_L]H3EO-ݕ :O[=9_jEI܁thq8&GAt~mL؞_9IEbt 2ʒ}κPNtrb=z GGuut'K uBE) dHT'i@!9p'6(g"L ?k@h0ʸ xe,j!ތnus'9;gtqqxHu 16I0? Ho5S1;r`!d5 ArU T@)L,"Z[#"EC(joBFT)T({f>k̼D&E}>v&$"Q0x+jAH*Rq)StVF8C$UZ%=,/MUu㦘uaJeyrL+"&ʛr`ǖL"J ʄLWQ}#j:,._6Q mFچ#TW + hOr'tuB֭,>ܐD\]ë+ndk^&*a0Jd5JbPLW WW L[|Ȍdj+pCJ4Q *&&?}ͯ]Aj;RHu%LSLQ*vwPj1gd]!b֕E$쏠("%Lcd2=zDiyKaMͬO: R"1a+ AJ{ J(V^2d4cHiqvQv,MAh1m31!-EDÇ*q瀥o.DYI|'ps I H*X%lDrS1*^B\f6ݲ 3G]$q5:m% ũxU̞s/ޓ;pqCЍ{_cw)+\Iq揿쩙04>We뜍+ QMY+ݴU^U< SF,_4b\ "mEFNÛۖ?cy'~(1[2Ƥ̥2iP>+vvߖüO=q˦-/!Od'@dFBӔt집mQ´ R1!__{ #J*>le@L1V4e5?>J #my|`ngM jqЀGnۖ+G]1a?zᏨ8~-SXc<篽I+ Et;[UU6xT}BXs4a!`6,OggSM8﹦06%""!!"!&&{  ! &""~ #"%%&z}y#!"! +^!` 0ރ&Nb\%K!L]æ 㸌IWa\d12ll>" KÍ]yZQYǷ䭊Asߵ% ]J߽^"&@2r$$KxvIW},+"Y_=w=/( +V hzoh}P4 %k 5PLUUpՕR[HQۚˮ#ҢyYR,0@bXS 4 `FaY"F,EPn=>7tU4~r#>vDq4^8DhHxa|ӉRvUbl$ :ㆋG*!Y_$@-`V4kVnj'l3"Z)" DV$!찊JXƀ'$ 63w-؈4`0lsGQ aSu0׏?_-llcӒz%rdȄP+@``?X ]cu &^gl ׊jk`BK.6cٳDx-{Y"vs=2#TU \)?N+ȍno$$>,mBǮą^xN& @M~@ 7PDvmԋtY`LJPD(Fu)X ALae*c%ZOXf5L(~j* DY*K°lx]5LYc\vҸl[q 72 GW5Y:]W DYu+V@'lܨ0*@LSYU$>̓]r.Wq՚7*ILW)k quӳŎ^DWeuUV|s("Nñu7%da}W7&"__n6.S#v'\gda6hu2K>j}\uY+3:PD1gìx@?,*,b*'֡1kQΣ堦I0Kdș͗dLi OeUԬ;VZzTR:emÁ,5p1O!)0 L Anj9NƃPgpnKs`SQMޝN$o^ćy0}"B"Rr2YH:v/fG1$[ M)02($j&2IݣY\ :O.S5T,zFΌ&BPD^)c!^WHUoFq‰"ГﴮJz""xQHL[N0♞W^%+ ?2jFFBz#00d!xw v%4;GJ Y #" [/-YO S*CX8HD9iZ)aowU8m7f&ޱiQbTT`' J\`UDXsѽ-ҜV(XoLaQ8H rlL;=8;p҆/N&z)sd[A, 4|OAoġr߳NA-yLnCMn`TyiKؑ}yG֊ƭqSz3?P\aklMdM9xt3ub n'\Z Da(~˜Nv,k{A5ٯnV^/\@ 3]x )*QVJzߎCk8SHQjK0ko0Z;\u6e%O4èkgIzy0RM4<'wm[nGw1;؜6].G،f׷kH6;Ml} ٗkh"Ym5FVAɫOG""+OrC ܜᨱ)%َFcqED1͸7n!nqضq%62]Okyr~,B؍6vRDX[u>T jXxT 瘞(MVKsc`2Ylf@3.*$Q C XJT)G&FM"˓%9*WPb8>D۵9R'$"reFNEc00f.{iKFJ5\m@.mʢ=*#|MiLW7{uSkwϹUJb3Q@q8,dN8P4 4uz^CSX:i,wt0'[nFhh |I\%I,ܬp5$T0͍en(.דYqS, %A)(.AXG;HZU6|"Du0tivN-T${h4OxakR $ԋQD) hQ,n|66͑*7H6)W KRXP[$ֵ3+S p]ճDDivdJ'62X<^irkcCw~D( @ T#ckZKdRrPo:9) z@>KO̠h; - va0Q%^Zc,Lwgw?qrzԽNWPA`C j8{Ӑ2׳Ga-Sb<I!%sma ^k&Dd 6EP/8@dPʲW>Mq+O?%.yrqk;h(~mCD'5(*| vbW/iQGTf ȧ31E M Q0VEE!$("!Q ) wLcj}f nQ$I/HVP#D o}AsC!Ԭʪ[i }kT[Ayx E9bT:/㮇< |E=P4 8b:ˣhVe"MtT pBzXk˹eWb={:( &Y"0Xs~lNvq)AO9I9O@'\ K WJ)Ph;ߕ 9c%6KĢG[VXD mqw.'oca)4`I\ ,+0. /0Pn\J%70AXK;fZ, e'q(zJ`}a-M)q]lye.)"ؑ=s*rVHF®KViZKnh8E *8mXt\"ʺ@.Q.V%;"V"Zv*FnR\OoiX.$ܥzϽd*`0H "RlŔKJQ5HEݹf[1y)"ʊ+ 7D.W@  )P0=0@Bv4Sl(GS' {=-ŵLSIUu2*F2xFFKͫiWRq#edYsĺv>͞|T0{UtpٳKiB|.*A5Ř4q+ 2%,'9֧[nwPfP;I|/Z@ÈPR@@NIR ~4B |@E_ 'D%J:JPnSYknգxh^H,2z=Цj4I ^ٔShL=X{S| ٥]VR| I@0{6ӾQ=M>*QhYa. .+ڲMS}_a' F=zz!Z_1_(ѭWt20 0ee9e"7 H^xw(JX3HR,BJTẰp,=;gdx? ~Y}ji6\YdWȖD[vlN@& 3& R xО\j6;TK>z=B[, kRtsu5VȕίCd[>=4uu=Z{N'ݚ=3Ǝ\[Ɲ%9AF$#L(ޛE(A`4FAi"lsʻ?X1Fluˆf}h||J7DͦWe U@9C}xȌsc|dizْyccdz78O6ţpztC;41^Hb xLn#~)j~/e:QS7](b?|"Lu@58+2^|fݣ)v&h6W#ѕ:}"4H2-ʈNX+_1soӫ]inKꢿÞlQ}'|k8׽'-/@Ď4ҖHWID*JZ/<6S|xfSxh]ǔi`yڗxlFɆ؟Mh01n"|VQF%=wT1-1'uI͢(6Z%CZ6Jz0itiy#p_JRh^v;u%9d!-!,.!MJ" :m& rn$Z7a: %a8 UI"2{7O|7BnFhFI.*2DR*TphqՒҀQIc+_ 4hn23:ĘQt3diNHinc*, (MBOnONwH39k.c3FȎNJmev*.5 t_SܭA[X-[Lj%lfҁHdϋKU)!LNDGIdvm^d-S'_yNь'ȶdF@{`LXtb*5=7sŠ]E] i܅ 7pE(|6N7v &~GQ9uҽ+pUafQnH9&iuꩶv_[wC@곮j#q>>ǐn #qKZ2BYbV,  \=yQB7ތo -[r8i1^>%,Ҽ|0 d:Uӫ "]EDu-I 4aqIt|͟K9Be%\EeZ0o"~,֓ek](v@[ b(V*#"!Qjt2ʻaQэC#چq$H:;}WJ7%.`-tl[@5Iv$CswL ? ƬvQ~92#TV@~uPdpʽ K[T.X.$]$NKfmmR4k $)!uKw~]čcSNRJӳe곻(B|1TB\=ePc1tn NOggS9﹦0'pE6! !"&'$%#! #$"! #"(%&}"#"! !$%!QI;_XWZ8]ʖTŐZYqS+?zuz,f%ґ ,0~ErtdU`|RsQ걛F>麞钗&kӎKxlv1ΆQ;9)Xr+R)0:ԯ0@g ׽'wE(B)EB~+B? m5 W~~nHU[8@~QeW-!Yt4Q/nr02"V:n;~N] lP|̣Q8wׯƦS?)C(kRDóþ:c]/Vx Q/1}Ԁj0h)~ݮјnq F lEDe"S;1ElVZ.7zxQ[HpWƀd,&?\m|Ia YQMP0EiFBDg%Ns@Bn~ `iϴ&:r?Q"VAabZMKxZ"kΗm.i8ymD(M9rFP7Wo՘PB;U"ݣ%O?VRJ+A*Xx [d_!h );j*laqK I|9Ѧl:y #\ST[ȩR3@J?@."LQB!y1ƒsY/+=\DUtѕ^P%KhyrE_c)T[UWY:x gs\^t dg,8֖l-LE[rȾnh<[6V NcaYMB5YS PFY#5FſL1VhU ?Yk4:&Ǻɤ&4pZr]:4i$pP$M/fpe=^j=x;oH&;^=&sQb'@XE9:# >ns8C 7S!Ϊ5Ӻ?S"l^ܦ㙎%v'0uu5fplkl @I g}n3m-0 ӵw6䫪8*E"J.3D$>nK/AtkkSiWRJD"T56_ ?:a˽~TNOSv/{PV!-ae^7 JPF3ʢWD䉱$>úTvKP1<E(ܓCqa?S"M1C\4:W2:\|l^bZ]Sp~b&d JM5^ ͲaaxPN:Br7F0! uP,5->ETxkƒG >E\WVLYQ3G![ZiJrmƵCp[LX ` Z}.xұCiQ<4{)x̰<V&E(<ٞ>A@ %e׺J4тJfnx=O *? D[jO7Ãy"=uȟ')\a5w,( ]ͫh{lTҦH JeTeF".0kv':|%h 0`1+Nuoݰ/4RHaj4)u4h;YZ*̎ Ŷ 6b,X y?.Ahfk bγxsosMwGY|?:ow>n<&:W,'st̶ӱyg:ǣ!}>+J1Q >.-^Ҫh ӨTD<Κ&514.cgee*m%RMtc hgq0Hwʯhe~M//g)MYgk_ .c!\ĥ ?n *T% (@>vFY!;Z{'= V}R$1Be^B8ϐAF Kp {&7 N WVL VNOO$rXxur#[#5+6, p+BfnY\g ق FӺiөZ~Qҡi@` , F؈iQpOwIHS݇]8"i%OG4^4mv]N5` E<I"j$˱Eozt'WDZs>n nu(+:na, ]Ghc L.^\N!|pͬ6јtt(<(_rt A\vz OաԢ :ĕA9мuJk+z;%PĔ@T!èkŘKf4 &ں-xNVi8qn\L=^(vba<}CG E}@vdT0U@R}Z3%8qK it/) l\h+rTCq l^$Gd+;v%rYPK^ZU2a{6]aO5(-kSDKY.W =eSS(|2mymM{ Z, ś?=O@wo55Ez[;nkov?7.,PNeņlh3fӛ|U>ujvIf|p8ݘcw3NȝFUi&m4M  ccʊbwx1{g~߇G:췕9=Fm%{ 5Rz}jU>ܤO7+]+ \͠6Ff24JL>e:4;,FRo?ڜŝum)KiI;H$R5)h51%⭚5Q*7$%.FvTu5>+&YdljŊin9qy 4bzĎ y# 0ܸY'nVf}ڶa& vm}ϧ8@(ߧxR(vyrej{+κ\XJsҼ9 ɇ޳yֱ; ^*jқ0P.i)B o3`cpGddKĻ IrFb(q/,QehbX?83z_4_P=0\).7"4if?c,9lpPX"TW 7EE<سf`j"$~ ڰTgquFzZn1b/% 1Q o-3^ 7&<ݘp0 Q))VXn$?>Wݨ_ߎYd1.PjGLAA\.$j9(׾k4a&?ՄB|P5?A>Fe^N(@n,!.08%e?JIJ -ʌ 9T$g0ҘO3w% LJ7 Go4%̠DTV =5faȌj]F (&Wh+}6Qpל;V )}ݶ @F*ӄ W@h+Ro['!T[q 8Y'/ER\]뫡Ã@[:h&~FMk^L]eS`EO x"++ ])LYWln.gФͪDtōTS˪<|8!o4MiEm=G$Zde , ?i@;v ^SkrTad- I$`wRbTn5ʞQ [ LedRU`JIW/S Z E<Iө(C"(B!Ch/5X/Bh9#ڬx\tP-oR,?!hmIU*hFz [ TXmJ,Kus ژGb~ ^,Qԥ HnyYޜvub\"U%BPvU*4Q$I(rb!D5f;XzvvlQ4h;hO\d ]VHkAc*E`oK7kE`6+2Ԉ I*% n~6)ZL:xf[MF, [O4E891>w Rc$ #HĄ_p$[W4D dXAe1N4 }v|Z|Z<{TGq@"Q.9 )%590ii^ݰ5wˆvއA ,35cqT,&\ 9,g**l D "dW-aUS5F`&ieQ-$d]QBGyYaZ;RPGRL[qV$PDKަ B&8\W*adE ~c$ՙk" TWej lhvyS'5c%"\YqV٫cL~S6Or1J\a+Ujl!u,on;=qﶄ_תTetWY> X7]myXy cj 0=(0k +~*!YMwUӴhIUUچM.ZHSEC q0)./5_7w+JB 1‡u̷QZp#afxﺟtqc?0K"W.chӱ&H]'RQ 04S⹘j\Ge0+(AD$q'"w;Y p*}b MFbۛ$5-@^H#h@Br ^޼. p.2uڵb=HetlfNl\&㓅u#s{= 2A P'k İBAE _5"X >Hw\>{ hqٽbpyŔN،%LmҜvvZ6 +pB2qf]l t~q ^q'MaHcFa[-hPW֜*&DzU K_ } EqOggS9﹦0+S. #"#'%% %&#$"nSB_ !?NHgBryR!llCH!Ez װ4M?|AbI3 ` SUEة$JxSd#8 IP -]~* aIn{Y#;c M`;Y|zBeiG1k1[/[2G$7Իj`7Uv𰐵NTD7Es s* `hX P.$Ԁ%C>.vAkNkE`@jD9[9mƸaEXf iExZMwWn{rW_h)?9wOT΄GJ;M_j-d*gUd#$ʆ[QfpE iT] {x0ogG˲35,#ݪ <ׂMՂkdj*Ƴ?=}w bKITݕI ٥ܻt!=Y4b"n! ^;c f#R;2\A4ׂO6Ã<.$M&rR TUj8@r=]Ў)F lRDB~(Uɗ= O)[V:sq T_2.& Ѷp=oP3טt귛)DcL 0:%I &/ʔTfaR[L [sw0CfB6)!, z18yً;[z_byqVGӱ)f1ޮdt*q `C4Q!bjٵ.b-4- GܡԢ0U!<^#F P\N`6,sT)%ڬ ݐ\>g(>j71k&ڣ E-:<,Q+>׳?iK{vϟ/@K W"dj:"X$^ˈ >QO(QiFElH۱Xuᐻ4$*Bb%g}!@ 㺶Qe|Rq,[综Vb7${]4U½@vH,KwYXhwEGnT8/ 7 4he`?O[k+ѫtJt*0{~N)klʵ9K.=HjOp y=EZ30.PPW)%08NGj!̚z;U$DT)(T"^gDSNU*4ӖOK|2:ú l(LUU@WVHH6z4-ҨJ TSUxrHsmuB(LQ WW33y fZm1*LSLifd+<4J LWtW V%A0oWͧ0v&5I"d]a%>׊ VFݖɿ1vlcm hjWB9G݃*;z؛)ns]N5Q/mZ"E?ivdeK9 t4.ius7Agi'9S$; ]M1c%i("?%}ՁEsȗPC7 iUL z5s/D& 0^ ;LV)U8yKVs"i' ~BMD,!^ .cY&fj k`9V\h4&h&IKtŹM/6kuBt.(i VUT0ÙPs#Aa:{aPH+^۪;z5 Zn- p_+?.=, # VDH+JQ%Ŗ#H|N=&9`u:ĢJ,Xzf$i1&K%3|ό\[YIϣjLd@3M & B@d0OFyxBFŘJB+ B\ߒ+es+$#OdF5gE+Zb~zwk)(Bɒe+$B_r֞8~?: x1"-w[ W lt@UA _Z9da2i ] zpȩL[ VP6yZhHۢ 1G\W*L\y)늩,E\U*r YC/̯hTUqjlHp1^$s'[2fh\WPLʶy0qDGi;j%Q%dYuk3e3KoH o91ܨT]K-sw!G(7/M}ü~l_$*YE#3FwėeF wfz%Z1LRF-eiP,W w8sZdž}L QRۚԢ.^KbC]{s ;D q&M=b]_~cnt~ڴҳݛlǺ)bCEq^cR5B,)fy~!EZ^\΁aRcvi׵R6jѲ,E:;0N^Xl4"ȌYJZ2d9>;V; Jv8̦T4A`'w΁F {kC1ܩ썥;h}j)u\{2up Z5MZjRFGBPv5k76!s.)ʔ'4=ε65Mv{oUJٖٶeg߅ދQ(f(pPZӡJ7I'NؒΧ((2Vuvz1fҰh +I@$b%yo!ot>Nja#S"ø%fs~4<% v[;Íi~ BP(ZFj]j XLleE8@zA5 > p_#_`Nĸ$my438'̩5=nqI5;4S5Ͻk^]s2PQj2fj6~:nœņ\4;pGpKCg0!ޘJ %Z H9܌c >WN=ӡ*ŕ逑cp, I4(b8qȺ+$[rJRf, uv_˺A'X*?=U1"F Kmˑ{Ӻo^Ӌ}Ii"2= 8cSp.5;7a%ҘRC0UA.#c|v݃ՃUA׋RkRٵrQc?XfcA"p9!݀&iZ#*1]b09L( H#dyA\21R7{Ua|&};UFFF̾L?[Wc~E1* #?7<-j畭rB̎ ~@\Ӣt";O쀳ѳ6rcRu~n휌JJ4ݟ2oWdqEܛ=;-e89oSzimMyDfLl"qn͗,!!MJ`Ex־PM*OggS@A:﹦0~2"" !$#~#""!")#$~{}}#"!#!!&$$~kvsr}A"`d1i&>A"`|~DgTX/>΍f:,'ܽY?ٖsm͗]MX|)빈]VM5]ZJi7IIr0.fiwgGJf[8TӹܨOXcZ͐ɾt)> wZU*ZKJ( M>YL_ ƒiU쥹BMq픫Fn׽km8Ԏ>f'-h^$.gSuv4ԁgdj؜gDue'Х^,LM4R_K5fu o mޕ3{clK*sb} q| ԑcoMO?{ʁ+WO>%ft ~X{@2ɬ|~D$A. )=I  le4NmL~fWո`4L޳(ZkU$APIUTFD- r "-N"TmkbqO` Fa봳h"؎ M7Lbp`wRN@:pZe2y8g>=#}dXdZ\r[{y0Q?U,V9X^^2 KA $]{6cF>5n0̙:b?DLcpfr?$M3'=}D "G]W: ife{JO-BYcQ7H?1C +@%RrH eO >5I %u: 4`MCҜAa{f`zA;!bv2rer@@F!1)uWvW?zJ~8z|@֛+q"V[U "⅊$fFPGn`.qS|b#2![„]ӟ(&&B\Q7Gqm kM^˹:S.vM`#By^Z!_eeD niزGqF͉wn:Ud%D><"^IjY$W~/aʬR?DDD e(cqȈϗjq_(.\+oSaU4 P!) B)^oϸ`m/-VZn&)y@_$0< NstP t;X=&z^F.FԄKv%ܛh"S;zݵbQK&C-i@[>})Zi r+u 5IpwD2><SUŒ*V+<<871I*D,Ot+ U옒zߞ.mZê7Zx =4['KCd7ȭPwPuGTO1]P;E͒zclSV66XYD9m/nBvjG E=> j 5{ո19<C*l*;}>-I ügtr@i(9kf.;cq4.hX,2shGz?3BJ*&TF@ \p ֋e%T;84 F!!P4NcJ1A u1 B/ mz\AsA^eI}mc4FSwgfS qdO;V #Wdr^K` E yCt@p F%F,ǥ~^zvOc%9 r7Ie3 fth$2y6.,h4( B>D"CP`(|T UP☦˫, :0Tj ԅXEy>-uץN_EqR"l椦MsISj}( scfanbIƴ-L 5(K\q;ʥv*q,GD|(A`Ǩp;|) > 'FZncf;^BF gi"ͱߦ [7: "lC.Kpk rs_1brW?Ƒ#,o2uW|nt/w^-3|s{{|s@"ʤBݖCH'$ 8;^zEld45/-v!%@ k8J}||pY0J)R_ήqu&3 >m-`Rz-L_+@^bnHzŹ L۸& +x~niS$j Ch/%Kp<_. ~ŗϐ8rB4YKk'损owcxITrfWB IU5br̸E}>zcM!{6<̈́KF;=^7 OXt"La<TfdAXvx6L/4d#TadjD?X07Xmю5iv,ܽ\c":X5?J.^ar@۩b Р4 p[ѡO%"Je_12#,*1aP7eMRnYO,W&=KIUS^fքbA)$8o9/1R7Y␔ۺ5R ЯVH;~\f.jlYI"N \A(Q,t s,dۉs [p_.[YZE{ rPFE4.  j`@kRWn/$uF&7(~l6WP *xfނܢDSเ.@$YĔZ;iGNqC6.>zQ;h??Qp >" atdR̕!2XAq)ul@U{.^Q}8^V,Q"7s*1w"d"Ա[ *0>%]NγT\䎗V^[Tv wfapDpȬxvJxdk>h%c TJ% > LPOggS@:﹦0h6! &#z #""$&$"! %% !!&&$DWL*uίV-'3eVm%XWuAa\YWVHW ~gfi(LUGWUEUA<դdb"/)23F^ DSԮg)bn"i@v{kĕLSSI)*, n`2+ayH²TLUIQUUAմJx$s1EFd[}@VU(`zօyڒi!{l lemV{Z-(74oVxTG1EuPFGۚ\/ Y(eFY1)@FJC1y6CVJK2TkD^7%;9.Uo;gVPWaLpl (t+Hn%;X!h%$nЙ_k-qE4Za! ˎ[s!m.`<fsn5GO$lfs$ODD$S0kIH v~v9%yyN}z@Tp68@ x21 [SpWr7q/ʠT\R%~l6)U n9fp]zF~!٠CfLi~_| t [? *SenBZV#Wgb,r_]"*^ ս, [-Ӷ\hb_YNeD1>TKd*H%VZc]~um4}]N9hvwC E5_(ΒsWUa-8' T{?"\(#iIHE\0U,Ot"`5%pɷRyLQi 6y2rOt/ aDTz.6vh桃3itW)|DSBO*<~i<ھ$=y/Fu'͡Y{9YR]=ZMմy:~@"ma*O"5@_Co:r2%i t8lfQ00LFJ:L~impn2ݴ]&݁?_ӿ1kt>ګ=N)s(j[]s'uЌK*^}.ECb2w.Ձa(sDy!3^4`Npv|ɢ խFN?edL'jID:/[~2r#54zz'(cUZeevWٷ9pi1!Ld)? 6E}V(ġx^H¨:ODrBj"mٖYSds0\ `W}E(￝0Ni4ç9vSl*gzŒ=u^eP"12bd.!I"2@ Лe^c2^`ۦBJ00H45$Iv5s${P/+IQћ8K&^AwYK,XI!ND)-B9f%huϝ;<[@EA:XR/ o|'Rru cT( Jpa[IVkF\F,%D!3MO\.Ŏ 15D ]_oo6ȜM?j_~%FB ,QDj"#RKQP (@8>_R3A{Ru0\*\Y+ kk}ɆĔ"K1FTW*̽=iO OXF8j+TW kJ|K@Z>g_>RUWLWIO)@C9w]`nAAQE DWU&Ҝ+`{r0w&ZL'%Efv{)1o#̀Nmjg M >Nϟ,ʚ""S&"d8C( (Ii Į&I%5]trFkfXeʱ@ԵD`ܘHRuS1>aTn i2r~) n~׃~ѵ.5(Wi@s J*]c5XSa>$~ݞj ,v3Hq]ҰhROH%Vzs dtGCs#gi#VEDf+E+I[Ei!"&:4 hQ=ҋ%ױ"im{ VAhq| @{H'WvjhoH-,$xqɭ`˅: #SD4PʭUV\ Qcx +tD]BSWxp Dl{]%l_}2̖la*=BM7C1#\T_k4_"kLYeOUUE3Y[/tިq&ܡDSzMa&k;R˃ZP SoPDTS0)=ucPG{W2DITW˚YVdg t%A1A9n)llcVfO&8lIRG]x%>d_\gUw@HJ=,SEN<|ޑ(ŕ67P߰6DRo/kۃXd^><[Z{L"ke! C; tĩ/eHa1>@̌MG̠ڻ1=yrGX[k`()bpE\OggS@;﹦0b| 6!!$#%)#&$~{}#%$$"*&'  %"$ #%#kcP@C޽k}&Ж9 Q,;0Jt""VCfI@ؖb(2 /"RH(ҚXJIb@lI =s75uHus1D+)tΠ-X^AZ& zPGu%*̖d/Jv. H< d('v X:F`Yd%3ag6-HVA Тhllp ؒJi,W 7 (( u*Z0k9zR6)Щ8Î^^GXP. %R'(%m2SȟhϘNzm~nW}Z<(<03 ,&Bm.)%dq3 K29"]X$PvŒPQƥA!YH#E)y\˗fL/,4i&2+NTPG>ͤOЮ)=I8 #j!`EҀ nv1ޘ \j~jZ$@g:px.H_Y QK @yj֑4cjMye|DdId2` ,eIV^XW4UBgu#\xHA ~rr<.b?QGP1 T۠9e~h+@*(H0@8f :FE0T 8BTAF mHIkW#1^ޓ[%zu-m5Vy.]@ԄQ>&b-ufbB$ !]R(|{ hRBr%:U2J /`~~)v?Q/cŕFWQQ\G^0-P%F4U7Li/5 :q1 ɛ|?R;JS][YTlnoutuas*Q!^@t)U뛄eֽ>sss<~U !+DR)]>:V9w>.8%+ k6iڅaM4 km L/p}ơ-kQJR-p)>YSt9-;~7S3GFl?1d{ۊ4 ^+;!yZ! U$j ޗSB^w$*rW:g8J#Q)8roK1qCL)܉ÃOH1P#UZk+\cxq]82+3JjqbRH%<"l 9G ?^xdGi2V3qcL$KGV=nu>)#2{NSkPL] D΄`;VUN\:{\BLctEQZ=|mƇi #q*Xd콚 .`& yim09 %URr< lZC)oJ V;5B.+A@5!7+CV2FƍoΥ+e,Ţ}wm@G%}X`Ny؅:5nc b(gcI@ ոahYLrHJxGp`d'3 L;^ XWR?wZ25{g6 Ajŵ&;NPqzKȀSDrCqBpƕ,XF*ENF`rq% 2:]׆S㱟e6Ͻ#N2Ὅ葐1 OggSk;﹦0L)|!$ # #$%|!! !(%'¡E0QHB)}5*妆誓5#n6m \B%)pbamFDOj1j ΡQ:\Q2 RBHUiIq~{% srD0F~$Jm&^.3}¸\l!F2/h8T"tL}W+ C`xH%E4ޑG좖8tE6&v(.!Qhދ%z p#фVfHpeus2cA } UKU-*$Du;u* `cjfSSi<L!\|5вRN\I'.~dF!t]s=vͣ>]+(~@%^]c1h YFu_uф ,_>6Y16KvưF3d9D漠S8xO,<DIPnⱄB>\q AiTTdbKdJb%X~lC%ԀsU'd(r,;ȒHyG}uuS[FVdLcu3Ǭ=?c轮v1oa;]QEJ}w3t18ǍRBDTP%)\v̀e2@~LnșEhܧ̶bӯz@nFwn~DÙQ$)xrry %ƒ'} FJfemk} JTH*Ĉ V;^S0M pZ52E-b~uB`7T.O&J/ U::o{cdVb!iF]!}C^ ib CJ2Y⡹BM;;d.7Yjecz=_xiHsRV FEL]**ڋ|pXj˙+5  D[LZw~vyNw6Y yhS 51haMA%U,^*FJdwZ5+2r#ht+_R˪|]Zk4z ?7~5emQLf5mc3 C&'9Be@úa)W1̀ )~Qb$Rit]%?,_cy[v|ۀYBr!i-@lbr1l>f΃ԇ IBN(lFYE ; AR.+XyT*M.Kd l=Rf޴,'m>Q>6+ɏ1%"˝OQˌac_n7# 6@@ȅX?8S'`@OK PUۀ#\H*aQPA F 5tWV1>Qڦ|g@ Մ`.jE Jg( J*ĻCb'KMXUq PLڗGPjAqF!s `.u@su BqI qB+PeZA !iV(\$F/V×1=8FD;@ h\-@ h %%p~,Q T-ړ{Yv 7ilm0(CP~p>P^;BIwaLDU, ~4|.%WR[EAO&:։131EgQ(g @c .<~ jG*vDSK"gnEAVo$Xs(9@Ta \ETCআ!g3ܺIs gMp0461v^z==[DxBnY{u7x35j~;yFIsJwӊȊ$ѥTi"%GOA#0X/,i5Rqx|X^*>,[(?}h1!Z]_mOzeiOrþc$RA&7\ IאbZ uy4Fz x˜UP&FֽhSgp<u[6:[Ba$I;vQ_`Y4YUjl'fe<DOΩDI%T[qh+@7ζ`pιۮqhН1 (.TaM7Ã~tK;є9BRͩE$S TAyگ _;ױhjT,QLTZ3뾽w_%\NK m\}&,4Q$CˈVqZۈ;EߞGMW\a!nzxpԉu}}QL {975lgV l[2RIc\ͩۗan<6ё c":HE٠8wBt⢳FnW˜4׆sMh$2cA~Kg'wQ2k|V,[ْ5'Xx=]{OrYUBb8r=?Oat:ßڹON1⦜~X*r1RЗ˺;f9`5 tG@Ӣ/|K޸)(illo t,$2^a_M`pmPbn>nle~/<~gڷ :w!}4 [ZzsF9nD}%I)d,]|V_(TI(̗Lt^}7. x.EqQZ60 K7iǑQvBMv\iDXĚ W;(\R͊Jw\ 5 b m>d问L=q6NOԳVvbpPp!q<nsÓ _9Ht(aU~9=!E&cӱp<]2S#s3~:φ%ikl XPs?ٱwD߯$I~٧G֑g`T'ۏ'vt޴@p)9CR2ȕAի6|vS#lO&=`>;[TUi3U+\~Ruo$F#UQ0TUeȬJ\UӉA^ӨDa:XfpR}}RD48C$M2o 1^0Fo~p(YJbz{M0fu¸1:D^銱e7;"A&"$eԯKD530%݆<3w6!Sl;Lws:3^Hqh@CD.*lj X<bΞ=G\\>Q pYBB5iE'hnY$Fnn<dzZMG8PmJ;]d91(HGA$N"4*ܘᶑXZu=E)RD>L6eA]k %+YTD{m&} 7o`r+FOs)|$;Hve(AKFZvj}6/{`9З}8 whG"Mb0YBI$ AhQ 6;e.agt\ND-_AFֽedLP~}S+"zdcURheFF_EWAcf+(l׎Yv0E@,a]͌[Ր'*LTJBٱPorӀR4 ctPYdYÃ- l6ꤰV8<>_%ZLX( ,WWQt f!&^L;&. 'mʫz ‘A-#:vS_JyΓ>BV?R {e^RVB[!R $Xp)cV8ᱦ|qqL)N,:ڌa_l#ִ>+J PoVy~7~E"c8R:\(M9rq 7@Xm3#c{ES76šEOaujW?&i )gy\3ub] Pvl5PwkOa,?paXeVڱw>&%7 \|:+ Wn,*)lA*L$5Ņ!4:82DYué 9ywa,"z[\7e #O)RǪԮQGCb?J;OoSHY\Ў)&I"<6 + F~|lc0b0Ia>P!QdQ=UkjIOkY?ٍa]X_Mӊ oJu VF{f@غA^:--jV8i(-#ۅB& xJ6LWYM6rx.AE\ƫRDUqMt9k k -*ьn!ޘ &M LQȧÃ!|E tRKP4bh.ʊ/߶^ޔ)LamTV*,QeœgA]xE3g{1_+QIG,eky.<88#oư6W?J/'LYUP镾+50ǿ ÿ޸leNhV&p" BhDHZ//b1Bl+.glk!` p/d|k)_|d6xszv1i pd+I0oڳ96bn8LpF5x0s>ٖFi]QNюVBbc|rbN$CzJ7u_i`4>M=Teh,Fywx$WlHM3^%2 E▻ĕMLBc;ff.ih$L5$1[qiL'SFmhbŲhh*S=3%?|x=a;,u톙vvʿo~|ܰ&惀2Bͳ\Pj0@OggS-<﹦0o5 ! #%"""$"$$&å$$"" %%&~ %$>ZʕpHh vfu\]~J"r%)N2t8εMҮ2CBG3T"PH*O$[͆i$% XpwgP%Fp]dX <6=T;=Y7 p}vD gS"Dh-)25&JN6Avͥxb|GX2Ҥcc\WRXN\^.o)VI6?S*DSJplioQC,IX )uҨu smW`0+7!BaY© %w|hS;Tq!/~#4>c{]>6].żO r]g>7H۵O+ei=" ,x0#j躨+h(X,'_ކ_L`^|v1exgjOLvuI-\46!UqC#Tn'f2rR &c HA@phucQyg!kYuQ( `]/Ądavr >l~ 4 c;sUKvsx"B%;Mzk#]@ƢHFyG;:zzJV!)C+RE C28]QA!Hw؈c`(! _Պ{D[ q-4( ejPLSj&RfVP8~/zĪ[q?%"mIcWi-5qdMԛ{ Kv(Xpz`V14#e-l[ݶ7ÃS> MѳY5D\Ӹ]D`? JfW\anx OjM&/W;55I <׉㞮 Ęg[ N$h8T۠,M{O61}8a`6xBgM7J!,KYjle ¦/f^nJS+\cX98 थ1CA?!sZ3\gYX pߛ EL9*?Zʻ~}KS6Oe&p~YDe3Ud]NBORaNO5>6=a0͒lj 4yOD1ZIJj=ti-E:_nc|Z y`4kşOHޅiAYǞw-拧ʹl8_||W* B 7}'s 2DrDD %lŔpoBrxClbuӗoK3?Ejp;R(!jH5*7証Kmgymb{CE[^>4f>͕* Á .mL:q4=v~x^!vT5lѪ1>&8:~p&w7CeHӵ5=N(SUN>Y8QkywJ a, V ޜV~ĥ`sZWRUGf0 m!^늍::!(4̩zŢ% ޜT yZ[5X!+a5񘚛 yƔ$6f 1 h1"8B2DM d$!]٘~NHԏsC=7wQ)O 4VtKTzY\,q"4u#^i2fmho]Y?<ת})登NZQbUzmp#H{}\1@`I gWE96B5&W>O `*)⨴9xtyQAx|΀mՆFZh %˅ ^+xp Ng9f7y|lN10<"KYuv $! K4\n lClSD[䟮 xjK F]gz6kM\]hԏx :@D#zJl|g鳠=h>;d$}'(gW4ilD2(=yNHpnΒ-w\Q8E,R.l ;9ݓ !I EC LMg4* [ !ؚDWYNf6Ӎ[DǾը۱z\[x'Aʹ`)mFBZh4q]Fx\cL֐ŶHR.څCh*} }FӏsjZ{VtFw% DğjJq D!ӯT/JNp9~J,*&Lo _Ȏ^`6|zvL9IpF/bF^5tkZkjp׫= _/}Y).rhm!"X>B;h$LG&1pa ]EdOtԜM}LOqYRmϊJn=@;p1AAd eP❄JQFXEш"1Fp'xY<7ћkj%;fBR9-N|S0,Yb()~^JdnjK#!YH]@K) GP/l2)O! aA@Q(, >*(ge:FLs[(BRb̪aL ~۽v|eY;b& )޾"kD^Iãs$Yvy]4mƝ MBIA2ElU["U)"(TU %\sS@R!XFLU2|%Q+R:Gϡ|XHԖ"T rƂW!H^s!(탬e+ߟFj, qp;4r;'W5NvS`OggS<﹦0+*$'%$%)*%!!"# &#%>^[!!%.SrU\6ed?b\T iAf?Ddq!lg8 **{ |$ @fS)PY_80ǀnLYU\TSP]T5 ⵨&8,^Z;߇HY4e;'K>]ųӡ%XN,;7c"N' NͲ_'cCĬ/> U@MB6jkijIZtHu~SR%v3DY2bpɈ+G!{e^ZAf  Y6.{RcNSs$룯ճ{ʓ^7EĵO i[^D@oDt-:B1;VH\SoXvѨ/e'ܛZYK+ \ҋ7bKeC<L$60cNz:b՜JhD`Oߎ\`k/5v;@KwSy[2Lٕ'ٳ<4QXi9-<͞f1ӟv+x7?MKqWBZ0F(($R%>8~xw/۳׸rGJ<ձ(Z, 6Aou ]uxNm$U/>WdM:V`~ek?C?-q~<] Fc*^jRip9n*oᓍc|Wj%=QF"M fVݵl0(œbNbΖ7+ll b__gK,hAo`H{.HGedLhPeipxSY5[)x*\{ 0X VqSuNm F:1ml.H^̈lDlOX&Q#[دΧ. #}Y# f _hb'ur2?׈ pI^OUD' p#&BtP >|8@pzHp%Ʈ?&Jz`W Qހ<_JF"ڞVqI54L,i)`ɬ֜nCnʛ{z;E 5C)̋gܶˑXB.DXYTUB [% E hp ,U)Rtz .f{02*t6fMe1\Ab ׸1}kl Űx%9O.MfUL`&&i(u6"t3"ق+:Dl@?T(e!*(ӨΫJ13NGdѳ:njvQ^^fIe{ryPL'7Un#븱}[T7|T)?q䓒2bkͰ-V6@4/H+pv)U(E9U"v00s)aR^QKU'{5!l\2.vj2 utѪh1x XV9ynN GLvPF_R?u(wMn%t6rbpX`*YdaB1YQ D^|5W: 'm40*^'"J˃"O" Х.27K:_P2(Vw*i„Aϛsy{XࣳSߎ|~H2:Z!]!oH#hk}q0ni%Yoм/u(D~eSqrp(H&+!h0`u/aWp!?FXVhI Yvh^wqkgf7'e|uxh9{,msGT!hT^Tb`0`Dw|lL., n|Ѱ b>Ę 84uODD z(]<5CcwkҜK?khxv9]s4xmj qM(X(@B~po0ĨI"hN`+SJDD:h-,7nTn('n.\ 鉟g yr}3ouvXcЧő6hmo43 <(R/jDb̐BETt:Fh|R3<}R"SzIcKnӧ;90ap6wSP+n0MA~k dc^l]+|J|x- ]#N2m.?HҼ82cgƏ마ź-,U1Bn бd@:4á X=( ònQs5|Ϡ\*+BQ V6sG 0cU (zۍa˩/b!y !S92*di߲Y>=sٴA=)L\ڈZK>cݢ. J+A$  5kkgPj~e];n:߻-)6x<0WgV\_rQd L@JTYcCVМ`* =GY %#LSe(i>w:ƶj(\ZTxհBw(*wŀ˙U~^j: վꅠQ/BIvҜcQf]G18>TaG32dľPlVN hj7j{WS5TӒ QCֶ߮wֺf9QAP$*D>^0޾ 0,,8Ft@ì^xW)ɳiDܘ0A,v,MݝkqwUB{vtx91#r_.cmWx{\tSچrsF+kR٫dg5u%AnAsÊa\kֵnkmZQ`/BCO\[g򧯁`{]97KʋK1ہO KigEfB%NJi*9^7.>ɱ`.i"f !Fy,]%fE.vvcē5vq>! &P(\TcW9 (o?dD2U|HDق8ͶVW۴9 NV+a8 4K Dz <9itK I4Q—( xˊmDk.mX+A,ՂC6!׹cc]Ad_5ԝJ\a* vr-Sډ6杨S\dc"٘iR)._`rKk>`Q5 0~lчua%¢g]0/J*dM+*ޝN8U6iaExeU¨Γsvq'&a+ 0m喇5N:!܂0^&۔{kZ8g:0J'Lp4^[@m>֊-\8t :";&K6/`6M]eF.UCZіF9ٜvrps㬃ط%#ZQ;u tE pKP+5 \9åHR@/J`'\$YF~" L`QA0 J4^l.RPʧH4P w|/bU $.8dh!$@7XC`Iys}oKq]ņNt/ uPmTʯGIpE"V[RJed$h^-ݲh&*kˆW1ƺm$25LAJ$[ +6 P89%xEXy]Srr]B\!4+8yJ݋ XS @>bp+kF{aPyb[c놊-n"LY*kOԅ2wߊ҈}{%U\Yc@UV9=_diP= Tc*\W~RX՞ WsXLULQUUUUJ><]aUt3BsLWi*v젃͹*xB>GN!)LWUDq{%HT[Pn(! i){1wɆn:KMdcH5xm@z I_OtoU-KS KubLX$ρq s5`G; qK u?8J9RF3#WUeaqcJ!*]Bk/vP @ Q dP0@O"1c `]دi{=|)^!>Y@*_kf[DR #E\[W+:6I~\*6M}(\B"F$GhcXXJF(V 0|\-1I_yyVG{\Mt""99Oy-s.fD0CN#lD[@j"&1Ǧt0RZLKC=~˭,pSΊ](K&+ª..BQk}sAի4.f]B'q"$,(׈3a4ڻ+lsƆ\w߯nՍ H@F @ FDWůZƭŠtX9 Fs |"[.k'5 DQeU#T+G wO2wZL߸kx xyn}hy_DiϬf.6RHD=p԰ՑUARu0=Rn;lotmmj؍qsZ6# řr/^nE怌/]89-t|$2ioH;2_iNk-"ٯ:x3ڔ])ͯ@AP3 Vr`._h4ސVH.mOLhw­`4-0WRJ@P1dIB)j+_AnFQU#O%MZT~eC; ĉd-%:(84+ #kz{|il=eǏԤib0%@bYIF*W;6.ȣ]!\[C󜻅AY"Ǜ y[ʼnp e:-Q 4WTU?Lav"̂A5Vh()DY/Uu 57D6ƒk\j$2KJTWhJ?*@S׏ "T[ʣRՙ~GZl {HíSnsٷWfleHU!f péŶ(G!yYJ]Ӗ3Ms{P[cvjŎE O'2e!h6 7r|h/yK-Is83\TJ#uZADk,?طKr!U@*p;j4;")CT01B P eV0/~nS`"!8A !Iv Z&\ .ml>iY Bcׂ*=L,+.!np*$]U G)XE"n6"D8@"R5C*^ͮnlifO_BRu:") TFbw܁KyDnkei0L : *L\p(44׈ qӺvE'F,+xA|uw!R)0ԝX 1p+KP ;XzB~eQ28i FFi茡&1k^.s۩<mۖyw1 |[ĥD`)!\s ]cVh8F!JA`YV*ZT]Qׁ~m2}K*";I1Y\]̪О@[~Uz{z6>U; \a+,b(#A:ZE!{7TTW:/>b)"LUUĞ)U̥mg&txHDQ Obv<ѧMu=n!h?Ƅ4S\U=Mmz<8ϡ`l*d_bKCŃ@*(X.푹Yilcn6Fxjh_ U3koVl {)=' zqaS=:~۞aVD't,DJ( - bsa1*h4Vȟ~'3l2Q]NTS(B7`qGa(T=iB$30bQqSApŵ.2u(RӒ:?Nx<.!a65%+Cm|ǥE38~D#Q6g:ү4fѴ;hDph'.q߯& @inp}RshAxxuH>Yt*B ^|ֱ3Mivƥǀ봋KDv"DDIQOڒ!R l>R4m: t]\Y j eg~#T<tsf ) D4S7qQ'm8F*ˊu T1.| r8a74ilN `GK\%1)q)̳,K,oV@hj Ȍ41#E,QKxQ~B>v+8so7 deOƚ2ۍ2,;#tR#3qy"CgVETU{u NE! Ae٥9m&[W0\&~Q[]m2MUjH+ ` .L#$s$\Cn2'FŊ6“sq)2'edEsӤ}2Ħ nY( @*)Yu4n!Om G0=Q dw]ϚΗZڥ]X jEԯkU^̅^|!T^{YF Jĭ~oX2^ b)R74)WPfXq9K2&iXr H؀<q^vxKNXCr걬sš;f˞i*DuȫxV/FW~4ٙ$uȺ">^zF:@-!4{ːxeD H2Ve?rZL+" Ѽ|1ɄuXpvm=ݤlܿ+>~Ф2PCYSKT˥i P8[Vm~>0/Qy6n]VQ0$5bZm`4\,gx??N;H4%b۫}ks<ƫ!ˍrAl7j"j7@pDtK]X `E:6H Dl]\A?4CqIb'nW~vu9 D,'QWg6/5H Oh'|cw`C!|?J q8[};˭xs)*C KBܴV HA%4YQjo.[$=: N%YרCqd_aPyx zF:Nm^$AYdc׹8@+FROFzy ho4ق(M>Nskf)y ,IU/4!c='%\5TF2b¨",Mꗧ,ɒլn[PnRֶ OggS=﹦0 Z)&&)$""#$#")'$4UK?SE~xd]Vonl8nL[t l`u=4 [ޔ7}ՑD_L 1:NfG9.e=N׻7:{&ub f͊L a'J-X&9СD!I}从cǺ6eDt})1bD[K= IOA\2JLn=uKh\7a9Q}^~8QQk3%lk;@<.GA`ł$.T/,f1VfD BP)F^.gK˲p-1gHcߎ&q )Y\odKٕ 4i#+Ī$w |qU,Lm uEP |({pi;杻@JQ$fǜ6qH4 Bkv6])qDGbAS+r^2;{ռYH{.FoaX]! @| q%J)4BÂM$-,\c\UJM~L[a}vUr!DWLԧ*UsOk22(HI*~ZneAT[Svq {Njp(L׸D?}dJ&TcU  `YSO_KQ2/ycxZ䶜5ЪhEԷ%mQV )!$*i~w5/pVY^Ąff6Zmš%Ӟv7xιv}mX+T5<$+B[2 &k+b2>6U(bwzZi$90=&kn"gGj-lIL\>HvljEh9``A@%_HK~.ErXXWhb(. AAp.^ƺ O&d-ғ4.A!EG,{ǵ&ҜP4(䠘.GSa+J'%nC/mtnGa[Ps+M 8C ]P XʇG .&Yew]rJ< C~-U$XADQ6ƅ0l; 5!MOTS@5ޒykLZb< jG4.Ff 2ZziޠnC$Ұ y~ Z'r ~|I@Ngxfdt& qqXI#rgjvONB;EM_ 6@9&Tc~'aj*Ƥ1rJ-7S[qOmnh_h0}N\g$G=K8Iɮ%cx}~%hYQU./HMlyݟGڥM)ώլXSkp u:eDٹ!^ Pߕ:- #w qybj~U﷓2Mkx~ǵc~yngb38n ݒ3 6Rl#~kEVI#tFnfhQ,7\~6t3 xޅݣ0 +s#||֖6i\|*QVϧtM)xءk!حػ<' XƣBCxeJG^G(c֖ЧXWUȝ/j]=e0-NơHID4:N&@ \C|1R\ܡ N/(̼ ;viz/EIbDdC]ݒnv4_xj/| )iɣ?sc 5]RRA]<Er86dx&c )wH+ )WK RKXir|p4Ec- H ?$W2'7UO$cicڝ\h ruN1sxKCg)P e%IUj2r#v'|bIޭqw_wo8:;):[IwJXCSMxUu]u,K 3 F)HlQ\ ^sE5X(@F<}N)P\#$/&v& c^EGøpj/ƾNW3Ow],n-c \) Ϳg z`BCwa˴486.[FDT )$u^I!T">lރ%j2V,Z `4Mބ쿪$ h2/6|t9++p2^n@Ov= HSxJD˭mH{-RA  R\nZTM\4 {"hc92JmkdhF2QHbOt/lV߀tkYRXs@]Y(A1*(LTAQ{SxU)֑̖yF!.UV4M(Gf;-JW-+*P˅R*{U4vt5\8 2. dU:ˑԲm:@at\,D+DE2UN7uL"dFyjW9IP<7ճ=5KS== bk'Z]iL,]bHckGm1 ߟJqxaRl6Cax=|N㕪$IbpnM1avntaH2,Z4Nyer tdHȬм|AZEmي37z@ri߉`xc%V̓uXc;l\i-)V@SVVG,B~vÖBD+ơ0 ~^jKA4P4|wRLϪz, 9Q@CKe5S k }>3+ t|t=Mrog2ڛw۽T5Vu}jP$TTšk$y!2|.|6sAd\ ȿ!MQj6&l﹦0Ӳ0$"""+$$ !## '%&!!$"|5F4`Wb;:ӡܡ}Ko7 ӧ#cf>>u6lcz|lB#p =$&p ?ɦ\;*I8Fq3S~/yOpRw~;4̝2RfLZ͉n1b%F!V$LpӠE♂U0sct%pA11NZZnj2Ӊ ݜ-2-#;坵!WT#1vV RoG dܷ{ d疭=5+byxМ-Gm~<&w@riyxJ^`B7Z"X0@;M^c}>CG%E&<[ %MȧAÌC2\EbF,b Fq! K2QJם\ѝ̏e]J~9lʼnⳡms=&?B)S/Y0uOon=cWR%: Q#>M'Y0!!>/CƗ'a/ݤdd5Z}L]Щ l"ڮغVNL=qJ&{ӧn?)CwSݥ_~(2zO`]nJtdRFb VCU bDK%cd ~Bߘs/.su_d?'9܂y^?=H*n%dV'7'OmKmvjwt=/Ĩ? Kq.w l:u"pgmϑZk*oc:Įo䘬;SZlsk>ſ:Șٰ1 :nJ 玑zi1!,U yzojyp'I YM4YLԋ)SLۃv!ki$U,Y4*?8|O@3qPWT DY `YܲSxkI"D]Ch~\Cb{.DWZL0)w&C1($ QL&Mt 8a:4Ns.(t)ȆP!Z?01b-1Ba+#@ {D$~zNd,2u2REbH3G"ͿE/K!CڈYU 2,T`IDP T P>ё1ׇ(: 2nH`@ "Dn|N8ć1K.!sv$S,j,mWF|8ӵH#J/*H`dt׿D3&%Dlhe_UoUEvDDV($[+%."M k`R (p]pT1""FJ5긢RɢHub4ØG#J=;.iig" n7W8.2K`󮭴8X%bQal"a-P >nc*s٭E1M낄}q" Ҧ<Vec2dG΢]yuP(_ۤ7͞Ų‡~]G P!Db8K{*Mq@  .: nUPrt?d#fL7q{Ru?n>,6R)c*):A6h`@nN}4!k 0\6"HIаp׺֛6KD-;ݴm @aXǧ@\i($ox&ҷsvjX]zQI#cMY: `tA/h]E!\aUXÃLij?\12WD(ֈ=9ϯIЂX/*4* `z/V)E~++I4т긜h{`W_Ng;:6qBS1IG\ATDc>DȟӢY; ]2o:θH͈.ѺKEwʰnoVR $`\~ d߄DwHj*.qّ“ -% ButnXJF*Hb"ZQ{$wU> >\6.vH{ .S(9j%g?pj:LǘqFQ'8ncܥ.|1"mA.j!8NacnInҘ:*w^nj=ԏ=rk]K4LO?%Y: [nJE ϲ҃mqˆbˊk(MPnX: kf5T 7+NvU|\08> .\+[,bqdy |vH;Ŋ#.Ax/a)Gzt'b%Pc qG\g[)<]u2Jm_cCXKUGm|c݅%-u&HTYeW.,`ryV(VZzDWL*UF}?; qӼg!CuTYcī29mQyH<!3dTY m .{GE,TA!˳ngH8TVXUI|)wנ8ٜtu|x~l?.|v&Q!%sI3<&"@Ϋ4ͧc!Zjbݠ .28iXl:1˚_Bb>nDk[GX{D*MAlI+cgݠDV>mk}hRe` !N{td̅qlTwn0ڎmEKm(ဂ!O+jg@<Bn=T##[?SݹGH"F*9(jboXsDUHŸ> G(uOggSt>﹦0O2" %!# %&$ #("!"""%$'#!!!$'v[%`)\D[asZ}Ҏ˻oGdKz@)Q%EIn36f5ֻ_q/%'RV3QuF< ` Z&,6|=`-YZWX:,楠6Dr,] &%TԭR&,SlNF; =h3T[T\_Ks &KKҗXT_=}9~Y&V3$^}|_WKDU}DѵhH+|d25YGIH,Meʛ Ú?y+.Hs7qK%=uNe4b2":x%5$4\.ET[ xKtuV?̓l)&um<oaT]bcK&M/sF|\?zvE2 b(f Yy5cD8zuT|Rm/[jsr-p823emˮA&CO+h^#%UR ~ݞk[q{[ESI(G6~ *φ[i)ALk{YSʕ1 몵+E`ҠHE~nCfx^ uAU=R$ҷ0NMdΓvj(Quf.Rǘ4& vAV:w$gW.LoSJ+I@<5$^1:q&shNYjs>mkqRn7)% 2׽vɁԝB^EC𼐰_9ÒZJI8y&onǦiD84r4uˣcL+٥!*qvC&A#q:TVov0fqfRVC)11K49գ=2z_ZҺ/B WD.L@q~E!|)$*_҉h; G&LMFq-5%8(%wO9OzWuK/mb,s֮jeʎ0aJ.} %^7_oH)zʈt=bzE+KSap,[ *M2Da%0lHc9瑝edIC랏64+&qՊIr3|nX4X9)o+%ɑ.js\q95j4t'Zk}@VtLK"';YT7)؈LnSl ++]yoFZ#N_wEQ{18FVIb j_b,bP(~<5}l@&$6xJ:)hA%8/$6{C MgC"žVo7 F,Y, (&Q` `BىõSf 5j=rJ4aAԷ obQ,vs0hhgǜW4ff.w/>9渹IJ.6x8Zdٿ\*UQJ83t|x]`؉خaP% I@ @9@ e%#$''%6VնH<I2.bAVD\YDUel=ؼ?}nK Ӥ5"TWU9=ȇ%.Q!q@\[++dhoK'JJiմR&c ADUU*UIWxгFͮX+ DSL(&hO/^>弤RRN0DDUGFSL=YF2J}=q^~JK1kH%6wZ|5z&wLQŌ:Kh"B= @tJ%,k${qCϵnfL^THF!}T,R-fa1&b]8x'w:^.}\!v& PD.ܢ A9Y+dNbQ<.vR\v3({@/ $Tc?FVv "P uJ):ُ|wO*l/`3~:sȢ|2juG~a8 Dž ^n}Iwuc' y;=(c.4NUjl#0eؖd,q_։K3a)iJͮA(MLDrM9zr8 $Qdi{_` j3zbQFCDv}78 BQ1mXfR#`ӣhT[qŊa!BxjFB(~!!G(\3V)))yExZt%4~"H궤a@cM`LB@&h<?a%o14J(DEgZP G]O.AU#l:]̭fF yBrJa('֯%dY@E!`̅(!pd:Y8(٬chӺɧ<4X[2)F\Jsm_Mz|k1 7,c$_h;0f␲ֱp&,mv -;5֢44~14z:4Q!j`˵HO7\1!E=-6Deg26g[ZNǶ;{1[Xf)B/y(nkDT\t7A&Jri1vKN*@vf'5IJxٌv镧4i'G1Zh$i:$5!QzR*S 5"r=">ig)+H  /1)udhY $(]pq7Ve_vVl곤~M,;$?Ms,3%Ӈ[C(wGL 2vO ɶeCW[I;};CvzS<ژjwϭDW-+3Qmr4O-$?+?ʊҾLn ] T﹦0S1#&z ! !# )'&"%% "%"dcloWkrM r/ZN;u1dgYP L1[8>pRMӟͧ¢i ;&' `NSaw[-0Sh"1F$Ƥr=].*j 6FֈHƟ؊· ="VьoP nn$߈iQS\|^C8=OОG#wj Ps ̘mjs@.l$E+ &bsUpD*. 4Os4L`j2]6F A? )n&">~U1b.݁ʁ^z]PM j!b\!A(dЀXeH]H]kFVOE;%wb6AkAQn9B[i޽ًKrNxpc܎.%BmUMD1d"0O3ӅnX$ {z]R .B&)$if.r:135-䏉=^Tى K0Liȱb>Y._@Jv#qJb5~k`dFL4F ADa6*˺%V֦*fM>ҍnhc-֓vN((S YGUcmȌڷ~KpTTln(buC`d=$#(azړoZ(i䋧\+Kcx;QHSB!Y#?<p*XXԋEސ ]p_C]R2jN V-"BUҡ9x}Џ"^e1ᘩ ಔq KYLOHIJf<;|/WmM\*{vI5OBCrv{,(nճƨKu' agx-Ft\5 htNHPa5Paw||t1!mӽ}BSFB´^&@|}Jd\)OSX8WtH5Y.,kZ_c4'+WXeRA^ FAJA~őFE3%N貴݋]/|1Cn=67U  LUT{BA%"~?Zzt&O%O}[7 {g{3{{NU_.W=O%I9F `Lc@*^[.CtwNʍ Qg"₸. \[ LWU+&!f ~+vE79\Uc:_N.F-h@5}cTY A:Lٳdl&cbJ*\Ut੪ Ьe0?&bR-ITS2ȡG%ѫyAT4SlhVUL]x+|sUv0nWXť\YjR_u?x2ߔeOBdrӱvW#|c@6F!cj"ANCj_>k$ֵl= */]n"y~dfFhsVُG<}b )9Is|>NM#;)U[X (Zm6V!PjpڕbEg#"]RWi#i~|1hQ{4OfVNgI)zp?5rksج~R`@-YOY1܀>UNw!$E."b@_܀p]6U[ eAm%j09!XM'tIN9҅ŝ}?N/5:=0;[en" @cd@ @YWd@as`&_"q`N4`嗎TJC{0trxrޮ6?wJRB122'^DFD* Mg)q#{^fD"зZ@DJ_`PYH*E(GUde!-EbA&2csY*1J`H\W8^ @Pnm0M'OE4\U*_a⸮8ٕbc.TWq,+DR>Ȧ'ɗk.H\[Uka 2|lɾ@\ac1s\_& adXFtd,[Fޠ0`nU/ԲV'9rL&ƚJ[/h%V'bz|~~2FlÈݼ74lJ)ʅr<2鎃՚k9D2ګ=Fe%8۷w'2vkʺ˪EկqMws£=,r~{ԻlL xd54:-Zqicڒ d OkC:@ViΘ:}L{_6*hC$@&$x4~lǕXC;;Zڕ֕ۦ) .y*,66Cpxu-AҾkftۛk:3( [_7( +x5H(T|HmR`;AjkeE +N@`7euV*(-WR,4q,&{_;q$$5oNhnSJp2ˮقIw'cgxVoht'ag埏lFʡ%C|:6?FOʊ뾾+2ݛ_n5N}'m'ܒ"WQ ܲz-2#"xs^\N)_7Bfp(9S`"e+sfOetln ڊ^[e˼ri<4i/p}kN+yZ$3LUj$u%ېKB)ې4j:6^&Ƴvkϭj;5.e]Ϊa] CnBL|ŃЛ~ \*4q>.`' ?Urc4Igϛ۷˛-l!?W:YLF:kMKp}?Fxɨ^U:/&{{fѽ w84MY[Jv;C(4 5X*^.Q2 ځNuu7$5+R|gHNOPu<v1&$ M0ʛgI|^$!)5`י]:nո S-_j|=E+m-1)2k@_' !Ь~2ăL65>nQѵbIV2FYKUHW;r?\4@ Xc]U>l6>"< MJ`9(3Rj_ Gf0o6۳cHH#CC(,1pu;P*r4aBS#0넫7{d.z=4= JhFҦƢEV5`R,~̭Er`pMW(=eeo:f`=_/-0L̡SRhd+Ord^Lp3.R+)a"7z[rڛ_E srz1R.CBf W*#**ϲpQTWCQ@E;$^ J.f&T1F`phGQ#H WB¤.o uDƢ}әFqI_czF }Ddzf)7;/csjm#Z<(m~["F:~TG n x/кRk1V[[i}nDƫX1)!M0` ALz"x^ ̳AB~K #&v)IZꭒBⲂ,oE jWju::B2svVL?r\EgI:MVߙ4b^d?qWtWg0;FQAʥpzG)`6M 7pvˁ"Koe'>Fm4mz|:=.7-#_bEJ[!#D[Ãzh!-SN]r-ML[6UL7'/ L$&+iS1VT\]ï*kGW_΃ߨ=U]F \_ikÃˀvJZӯ%I(+V CK%{~ʇ&DWiNۉpu~ w,05ᖤ:Ь5ܩ Ǭ7W4*@r/oȿdy#(\~ wA:Eֱ9@0! nFo]DZ" 9zYOu|؝޹EҜy?jeMGFj8AHSnSsFSWe2 ZmcȯV]bqY σGޝ^[/oqn0OH[r[E`zf'T3DRY!쮥4[f^&˪\. :kg➍hhy`6'I7!9yiXc^K ) #@Db}cr0j#^~k,5F_ӨfcV =DV\6fS4 iQ2@2/^GcG٤ {Μ%hf /R DWSvTejІ{p)#(LQlkf^B `$/Xbؘ+daQX6yx %wJ+|Esi~(]liU%9 f'wCSi tkCm֖Zkwrb0P^uo]Sv҈ ÷N=D,#eDnS 9/byD$cۦ ed;K'q7O ѨapHbIu5ɴYiZ-};us2M \"L\Dv6VU(+6Ay Jr*.>X t58c50s:&Ng2_dİX~/ ΚmޭNM"/vh5OR"_ !dta7\4-^ b6(I:; f""2 A:,^6+dpZ(*9-8_S"Zr':9̷NL:@~ (sP v5|6QCyDuDᗳ-#C.zh!U"ɊH "HNֽ aB`mL/ɘzlE?yM椫uLkĄY9a]]o|AWXtp~NA,rk x[H4VAA-A-,omC|s ԑ"+#OggS?﹦0`ó5#" #%&&% ! $&$#"#"%(# ""$"! &'lN?)\e"vL2rzݬ^Iɾ sIn`% Dݮ"mP!d"%iwƏ(R.َ҇a#A;u2[=7{^6n lUש z$Rg)afihiި ]Hqd%*;(-ivoY!5 `d "?<1XgJ x1/ra $X"|l!s*q"jGB{ v.fW:"IQ &JUP ~_,m0-:`jť XB] 9BLS!DUr/(ndR.k(-ߚ@,>쵏 %+›$3HiP6N&MDuo.7J|5J\Rb}2iP  ᳎yR& g%p3%a^ȧVDTP.cJ\]tYVPKf_:2_l[^yE&y|fiق"TUϔZBl<5\lՒ$adY̫ mr d7S3 ]Π 7[S)\Wx*uzΟxeS[w-]BA[_ \Wm+dk?q]PL%(uݚdabXzVF$( 'E}s鋕 q:\cYS'ר) eߍs4:{:SmK.nXVB,P|"bx"fBJ)Y> ו䞛'}W8,,A{˭ZLB$UHH MY^/XԶ(*p(b\t1E"x7\v&vYzvRf/7h[˒:(4h}G ^L~CbQk¬puj:Vj`ھL8<șmx͛b̥H'/R?Ao T7Yܺ)+R;da_,!U^[8RS8[6m)6PlaeFQ{}anR vRv?Y9|\v ?zR|L.5dvp'xa˧;B=< qyyJZ{,Nͻ1k 67NSK5\Y =XƽQCo]s1ӟTYtoͅ;&u{uO[|T)?x9i]Hb= HD[93J׈tLR%L I`@܀se5YEn-޻ DT ~=Q>/%2*mGT[ ͕߷ )n$DVrnطaodadUx3y~pmT1\n쮜-kګQ)pcB|վa:a:Zٝ~eYO6;Nn79?{6cҸd)M7ȚeU|Us6MaWow7ʮݾqn`mTsS='?8َu-{: lB2B(Zl܀m@B>mM"3Z[sAF]XڎVnՅD:ηLؽ'}Q6hJEbS|* s:6(ǵ\NUz}7˽| AZ"#JPoY" `Uƨ0VR5b0w - bXF{ms4hsZDKahf$>zXF 'E?`B5۬}S(Rm=tj69nAƍ0\, BS!wNݵ9vxr$ȺyF 6]H쪀LE0?W&Fʠv'nvlj3džY*tGIhwm܋1®qn@ T _n #T!g|.i D᳠T1^T>,IbPԪz%/]ߐ"HFf)D%hT/w(1hH4 =foC噙7^ʝrqqXWfylE>{=PI<q"J!C.XcHp/[!MLjׁffXʅht>IvOz0V{s2 yIFnn>p \bJ;D(VN_sIHV,'\;eZW7,FPQ^Ueh75 M|.+Q\/ڶ4ޞDv_ӣhoƂՋY:_ v>`i4r :"%@CV qE4 VMd3aDn2h+6K2f+X\;&GcF@*CЉ.$tu6kw항LxqU`7&3]:uZPP- PlF<j@6 |R=d1R2^7!5^EF bBb*w1`T,yG}?*} 'ELD K\^$p+)zYuEx^5\^ETA|ˇUI&" ,0F%)}rIH7LSUŲmBFفLL nv8 K TY k+r?fͯhzz ԠQ2lW++.SBA;@y4 1L_SV OHu̿arIz{)ALU*ͪrd](F wQ) .TSt[~l'x~"0d㖑\QAk# Q\ 8 d]!PB1`>x(Q tdv2|TleARw@|mh6h-NɻZ4F/=ccb0>?eq}Նc4-Jr%IMXVodk^A[m0k$eZ- 3%mcDĂ P!tEAB{ +mcGu5o;ysŧc:^?n[IHs|]@pX>MڰPdz>#bLbvZ̴;"tUk J"C{i؁a'E\%#!"A8H9"<)1+‚FOggS?﹦0\4 ! !!%($#!#&&&)!$!%")&)ϟ%! !##V6s]jh Ll=BXE9ִt{wAqa|i11/L6@ %f)#7c(2׺ zш=$^P~Y(d!&G"!OiTDagnp?^$5RhfLzæ"垎{Zj>ǽ'>:n:7~ļUӠ*s !bOsRcb:nIq#u=x=(yC@>ޜv? ~`@8 f:B_baǘɳ>j v6x&u(+ ^֍m\^l2P*aojJ*)P%a~T&JStCE a1c^}^Ʋ"% <F VG<=וSJTt{X)4,UlD^m*nAh省(M@%"Ҁ`tpY!& AJF`"UۚM)$B0@`C~YCF\~6p+UQ" s*GDvYהRZ[5\Јo [ԪB@WDu`Uk# UtEr_g rWE`Z\n2X7Rڷ\]a*Za,їXH'6]eTxgo|m2bC)I! dD?`{⏂0 APF$V)y DKujA sF|dsJzRVMQDUs  +N2^JC-e|eʹ7,, Oɉ=`ӗ4okJ~5ã7Fg'+9xܨ #l?y g0pzzb0$.yS1=Kѕ?k63g.戺'G E#Gq AΒ7'H@a+Bj!';~r?u.qVn4oG e ¨wík(-cVE".Vu%b⹀b%$+|>hHZt =[8"̒nHt|I\vjK B( %,\=;a/;y6'_hPff%#.2 R,X'>[dZ tz C p ˜Rg4$h-ڡǛIf袮$K(D8Ц/7L=+uC?GA),c)kC`놯 kM]G']I\V-È~^L{YێZs:,YuSS dfy[,ۼN TɽEFf-@xnK,zRXXkcW?N0ٓN Ho$/+&yE簖lK@^8UP1UXA2a ^^Rd0.yj"dnKVmi$K/4'rӷlD4Ǵܛx9=IU \+=gfR=M_KI,&eʘieRƜP[f筰^S nX5f⦏?pAV0ueaPlE]>R2,*.uZ=ZQE'pb;=njfijrn11ieI]pvQcc\?I2UT#(Pl@ r@qW @Hn:Ȭ*ޓ1ii4l{wNfY͏RZWKs- 6"AvSVvnK-l9.Zץ2d0)C5#'5oW0Xi^v͵yN5K|2{oVg'JiqJ J74ʆ YUic1)T÷͞OɔNՔZjtj%~S?(fp׊ֱV6 m(GDUǒ*C>;gkYjJY 4QEӒ:~s?dV x^9va 4KIu=<Z{,=%h.KTՎa/rQWwJ1TwS\l@p U,25RȽnR[D1Q58XL~+] Oޮdv\^+L%zawZ\~٘pnw;xyi}VuZvwU SƻF-D!83I@ 4?y^c۰="nZ[P﵎N޸хRo,F>N$dvB<. ;tMV-e|?xlztWQMe;p=;^iC^IDK &Q@ (H}+>Wdu ;o"I}I?" zz$ƪ1RpxM>w+$kNet!`s|o&k24`(#% J챜Y &Zœ6V}$!i ,'-KaZkF$V  ,/L,,GX16%FHHЮ=K$U8`6 HCbHwgHa~[>A$lVaӋz:DQQh8ڹ)#T ȶn+DP<.'i* ;B~EZKl[MW֞?lͯ!ychV^i:M\[j ƒ/k8TdX U~vQrd[*ajG~4Uq3\q "\[qU*[LhqP\ViWlYvu7fu m::ބrY &d\W@Vo>Z.s`P{'NUQL[ï- yWV- =R$}&}oDlceVKJQI^Zt:nHOggS@S@﹦0'}%"##%)'#!"!#""'$zvU3ы eulx~"K8!9L: (M7SdF-3rad8DSj jⰞ\FۯA_sz \5yH/"Y4>JTQ_8փC nąr^Z@}^#\$eI.PJi(<:?zܹļh^<^G4Rz)IEw|:^AlxucxEcXE 5Pb-Pލٖ0K81J8.HМ0+(kʥ(*үX>a ?^YHr4@= p:m ;UR% M`ջDwAæbB3\̐\gnK%k[ɫ )+o~.׋+>ud84)1lZnCd=^kCӝ]$i"p;ɀ*V @TB,ub1 q@B$0J\U?hZYm_h‘Rտsa]L8:q@[==x/{|"$MG?^H9ΨIV:i dWN`Z<Nj~/y7T絢9F Lݘi3?9A·ܮbOz,BTD6v~j>~]qa1R{b+sXG,WLYw?LOe;of6Tjt-Ta c02măW:gGμgo\^@W BY/kaJ8f^ɫ6/pvu~X%C^ƀyY:ưLA+-O"Z * ?yG?aY:YkoB?ukL~{j^_-SxkTuN4kqZU5&xlCLEcw봮?hh+&.\h bxJjRNЍ>8摐qiV[7FFoxҧڠY~;wE+.V[^;V&fx^fE/mthU#Tܘ6IOŭ;]j3Sj%B$5\ rrWK+OrPqģ1x߅nxdׇtTǛ>Ktw֤ˆA,g4' ஻2``w yauzhy~<.>z>wY-)L/4VVD]~8ĸWIɩy {Α H 鹩^4J I>jHl߈h^m6fKX1_}6XHtnQ9{ +ԑJC[j |eBL[Ed ][62x[ufyF]8:>ٻS!aVQWYvoGQU!'?) Q8׸s. mƲv8Oha|o#Z=ˊ),C4[R^ $ 5]@bu:N5;[|e:K._e6G%vvǟXȝql>1! ⦣H1SXp8-<\aa%߿_ךů nw?qzcéUt~j75hN)wC?nhPHE˼ m=|8DWK&B'.fo?%G3HcpFI B  ( [QCzf* 2?g]콿wqcX(g??rp믅GqgG8ðynD 0F?Y+4@u-=G! C)5ss)Ƕ/ۨtrޯ#;pnY{҅jXrT+T;;$7ւI d_+ƒ 8pjhL~qח\daQڼXqqG-y"T_›+UO}X`vX͹6\[@*fEAK_Kl.UT[ )%.%acœ0l#ּMO]8tEJsPU*U%t`CRz`9l[ZR6Chq5@ leYR0DűPr &2iWq(5L#r;|(1f4Fm4酫GA@h=ɭ jA|A]U .@0w&.Ḑ>HDܘ8L/<.O50rFL$|ŀ}Pw%%0:p\ӆG)3<=lH_?G:~Җկwwވ0KH{2+5Ap# jv SVC,5m: ".Eb5IML* -bė~U䌍uYv41=Z0j$3ͶosFmmBAY=1V#R]hbH#Jd ] me%A2y@$c(KKiz ^QTc5LZ  4Wˇ"֡pD6ތ7]28nTۮHBlXW(6{(4JX IpG} ">x+l[:?&>\&S^5i`2ХXY)w)bR?QJ= ZoRہ#yحP/|6DՎ@U")+QyQ TڮVĈ(B.>ڢ5(>Sw޽e4'b2|azc`^UDD-Cs i*1Wk \{4^ml^(]%^7]>S3{ݸL>>\o %=z&K9/Q+%@.UW5W;R  û%6vUB -u}xXpY= \#fDDHτw%{_ϚT>2zO|gO-zpݝ<홍Vy>oNd{ 8v/19;vnte6|>{Maf #60S|^% VHAW5#OggS@﹦0r) < # "$&)%ɕ"!##%('!!%(& ! $$!%" %(('&<[S혜c/)dvq')%*WL[˧j_cFmu1IjJ] ,DcQ BR)ʧqd1nn4HkHvO};k~럜.}[\Ӣ8 m.O9$f1Ͱ[8/*#UtBh`TbWڀg5b-a!;cSVڳX:8XSG5,2ncʏ6}Wn7e7ͩ_K/6677B@_; ūv8]X8SRT[ga~>PTocSLYs{x~~d2Tb 4QL.~a[W>h~wFSt-q&TamNԁxFDnOBw;;.}$\iak[;OW.PV!H"7SlkNya-',M}~n{a9\{Y+'2OvEk$p)/_r'}SBX%nlaF4}kok% dm "e@BsQqD 醫I,pKK%ٚI!<7!tdO'5Y5ʑR,a޼<9rF?,F3@EN w(uhb~A6;D KYCYqq}Y|X%"Ӊk3M!S?P /$*ۄi!]!!>$+6j% ݕlNQ@| /di"2\<Fˏ[Фwewgg/3܆=OR(l  pBXJP!q" *誈R56%m- {x^VY!wM,<,2F.юAZd 4|mcΐ#bL Cٮn'ZAgN+$Z[Ra#p#B"؉dUܬ*nf3ݿukSL*` LWU)&-Z>f*瘉'lWU\|S(cu)R{\Q"\U{򮩸y23&JʦcJ\Y{OWU;N=ħCͮ>\UZUi|Eӹn]N2)DgeL j>Q=);}ɬl`lgY"x)m̈OȞVF4ۍ7Y+:<)"Ri"oee! Rd"WyIK ½AeiBMҡc ů<\b}bwJLݰn,P+5:M[Ͳ g kG}vx3I;tf*//>va@ixXK'rA vcj ڡb'_lx-xX$3JtEk!9H\O\YWd~r=pvcsIcr鉈R" ' R]Jæz:] ^=':b-k8.n[e>XFJ= K*A)%Bq]B  #D3HU@@  B56|V&e@XLV!~JgFJOY866p{e1U/2 uhd{- B*3S7b/ofM9Z*4]ubiVUw7n]R YSqp$ `T ~,h2 4h`]\%:S&:e7Kndt1a\d34ɞn+E`ao׋Hlq$GzQ+W bs|]iKHpCƬO>8K);&L 6jÄ(`|1+N]4ΆG]zpn)~}/X(i@ SgWh`! r(Xu9ne}+JZ$> "ƸB\1m( P^,?B!OD<[Xא.2>?waxɝB†HG49y&dGՋۢ} ))q:{_uqBHB8WiXԈn%rH=/#ڄWOZԧ+.- /鋇(vU_'DQBJp?bt3ducw""{#F'W_>}%+Gly9сxiG4k:gqsҶ3ĕEE+łFgLS6un~rȰГU~>9OҸ\Uah޼}:B W|)Ob(d!U8~޳1:彽YoÝ|=AETU'ÃӦz4ҾL{ht$d^h\,q+A{zIn\ÛRCML^O<ͻSYaRHxk){;ߘsD[ʯ+Gr=@zڼZ}G+f&{k˾ 3deCu9 l[fz1D1ˈ8nwD7 Sc=T9 盍V׾0}1jvfHb)OI<{ãǽ"={-:vY Aʆb^뤡xt.XFkb<{QHHv pm"׃yKhDT /4r1# -.4W`Wԝb:vdiugikVO#kۇq1u=X8Tvm|f!߷nd0=54Fiib&]}FKLD,q0a%'­Z:u$~PN$,NRп 4jSZLQ֊5^ = Ѐ.֬DMlegENpʤs7'|>FXj6]߯|Ҥt&*;*%pK@;("@ PF7Op*]{ (0ݟ_;\K꺂)FS&%P L7L֊!G!D.V6c lV1+H(geD=s}Y bι)eg/:=x֞}\h/wb]]?X,L 'b_J FCj2gbCQԽЬvq߮Ȍ{"oxC Xdy]uq^$u] t[Al5V U!ʉ编nJ^+Lی,!]Bϋs5(#$cdY!hut~+A}jX#ij~R\Ytj ohߞ ƒKnsC#"LUGԢ,ieVYS.YOElYTh9R-ZŠl-+2ӟ` &XD'c~Ց|)g\ebYÃ#mUed(=41nTeJC32 D|ۭtNH<60;HɦG_Rqx(L*K!iJ~j|򸴧N_4ɢɒ-0X6V!V^e8n {V"cm#íGҫ\i>~I-) 1=Q npoh48jg_˶ʑut`&ۼ־w`buWD:XE'(l0"u9X,tXQG4 7j4ƊgzNe)YvhX %QF\7!J&B-)% z•|.2@ 峉MI!!` z|nJf̮uԎם5-}U:okhJ5 q;]Y2׹ZHA#nհcA;VzCr[>֕SY` ~\30C}iH o\4, JqFkb|Jj]ңfb;~6WP~^gv (Q  Rt3}sYx](5e #%W*尋2P,DQ!PTuxǗ5Zk! O\Uj;  $UKC/iiHOQThRsb#f1|˱T&L3Y7֖7LgQCEBLTQɨp`+}{YKipHe2ڛDLp؃17謊7jx-q(#{^#le=n&5MG No\撛t32v-\g,84ʷ ̳}7\A&ftg,mOHm-eQSYRI3250zf=`V}Ӵ:)2LsړRKĮc$v[5$M--ʹ^*nWfO)b(DTuMR]x1ͩ(8ѱ8"cTO{|O; Ϊ!iBX rP)7cEPO>nfR hH0էDDDS4&ţ,t{a<5 "x",Ȧ2R<XKOggSrA﹦01\W2# !"%&'* ! " &"$"$&&()%${ !" 6EH o9|^ڢ!@Q/D.aϤKNE MHKoMG؈hKaCwʳ*#"PR|y3W#z6yxsaoC ۀq0vꋺ! ~.SM 7h6!V7xtLTV4G2"c;NBOvȨDg!MVc^AaBLoЖkg32XkB9 5"8M W∋#hNVR2Zq@C\C,BiL$3s]'Ư9WwWDȮtb:/4j.Pz |'+_>\"ش`!=EEFY|ξ^EĴ(ZU}aayuZ]՗ )E%[ "UwH|PӊYBWN@ Jhp7Tߐ>)ݜXi<q^" Cڏn ৌZ,Jkwn~+eOHK4y*K.ww&Ze/> SѳMCYu[h,:@`#vUQ=@;>~ᆢXP5FebJEX4iuF к'׵{M{! 頰4Oe??+W9MAu(rnaUI\ێO-O=KhME&%6T:WaQ\@|VE\ӓ}ӝ׆lmIx+ lG Kb<\Dv;1+?AQi!8_*vL[o`d๪Iz^da$P3B ƘECNg0Y^lc6F1M&U V{>;p%4!@w @yeQOAzk/YF~c6{A"ҶF!i"eyZd}'6yrI*u#JܸPOwټכ јv/V{]ŝH]0!g^@NPe\y+N;7 tX"^n>Cڍ[6²9m֤Y\6C.54GHp.(Zi^k  5FNKf8]} Hj& )UX>\N[^1D DB F՟"&Jt|t6*M pRy;>R.m/lO`<8 q )bZ %«!<Š$3'ⱋ K AQcދE(\-B:4xDT }o%e1|,N2:wb[BUrtFx!lc*#ߎkv_?jOC`l(/O}']{>;}nmOH5Mc8/-5WR?2$f~,@-"OA$F쏭yvָ݉5Kdy< BIqTDN)~6}ڸ:wNm#]{ hf],p 7YGpbp ]P>\ ⎓ű*pZROHĎ:ߦ>[UO^U lԊ*HCshA[!c;yu~k{wcuE"Nj:UxЍQ\P %(y+%|Łތ5X!岋{Հ4یeOy7s"Nw]%٘nGu$`ZVĆ#zoJ᝗չ!6]DxRQ)!)R#jQn5U@ hsXEa0pǫo,L/ݳoסkdV#U3^W*^e-RR;br)]v\^aPMC5 [#$R.3\5R/.zŢ tpQdbb2+:M#.tyQ"T4t)D-Ňg:bjNPVψr$'`[Xe1Tk 3.q{vQT]}g]6Ys "Rhc!T[{RW,><<|yT Щj(l_ ÃWp*ӷMb,պ*1LWUPQ[zw9WI mk[D4LW"ٗ Yϱ"~K0ԴOggS@A﹦0|*# '&y!! ! (&%ô$"!%!!&'&D[tK"WYNcIO|9+TYk>.Sv@{|iĐ)J 1PDabM_#NR5e[}}ST_zϗZ~O:؃(CJVfB/RWl.AdH0*O!&.v>s٭Ӹ,r}'+H5T9 w1ʨ~e{s0g&=><3VdwL  I1M+X *qXJQƦ +Fc3F hG,.,cv7.LhHN BD3(¸b=v2Q0Tψ3uUT AR$6JĽpFH0*>|AÚ,]ĭ F>gREY4)aY%mc [F̪CAu6qʠ*AAšNt{^+dqB4|q] j-֘8Of5WϏ0{;w9'k֚ѿ7*Y}8rNjDف B&gǍyB`ތ-!LJ4ELHy^+:)!Rw;T k48%l@A9cj"R0jf6=w}n2Է++֭U]7]EX~n j,m""0&- AMBfz}?L6_:?y;F/l)or$edH63\,TakdDlCK=w(i>k>*VQtֱfc!r^0Etȁȸ>@isqb;PZNwD댽AQiCO $w,m8P!Fn 84':[Ki m|flgHuHyD) VeTqdu:^dgYAݓ7"42J]`I6 =A`|Vu71Ɗ[;sZ}^YrHXGcB9 ʙʪk*UAI 2mRg8?JKf? *#x*,շ\(3t!Z+g{AmiioHV&PRG. VaEêJ^>.Z?@_uZqHQs^ca:G7ۡ&a2\ta~xj0tv$i狩;ɫ?2a)yr)#؍e5{=A&Ÿi^p% U. XZ2q0ٌZ%-D`bX#, qu̎mAZiH'+~RF Byˬ5g!XGF&&^1 ycӒ8~:wȭzlsfOaD{KXK"׶ #DQE)U~hUxac`Br(^isiUCkp~KfSd,+YT\Ȫ1iFmUDbOmyX4I < &H;). AZӘ&wWh˯Ru⠗-zb8Vь7r1L",Ml)dxN^1`TwkÒ<٩G[בa⳺h>>$^aU!KH @K .!݊=p:)8%5 gͻ3e61µK!=tF1H?&Rp'ˏ3%wJ@$ĭVS&@!:la?T,L1öuƖw/f_c5,:Ek'IuB@rs"{V1sRpik?cSCOs1 |qn][bSgPJ6HRJd9pzA"#~dFT/W&_ga9S\}54븋*v4lakfƧ>VBpa @6tZvݢ}S$|4Vڬc><2{z=!~&3(By)v) Wv>Ҫ }%%=p(0\cQl0ƒGXfo-MX>PB\\[*wx%f[ђn_I` # ϸIKHf/l^<>UJUbUVgDQL)=UխiX6!.CPeHd]YEofI=,&&Ql'XGdcV!X =mPTU^,}[Q-la^i/cthؙ~LZ/3|<޾z{}Y&9Xtq-{%c1r HЩ'AS …+J&{U`Y/4qր *ljl>ͧ=lTZA%@wl*~ ~]iXhDJDGͻ(Уh.Yrfrkɫ[M׍=p=dе@(/5YL </ S4?e5",d/>]>=!VФٜ\D̤u1=QŠ͑1(z ;VbpFR\or "ɕyd >yjioT@6gfUJKv,v{&RjG.Ckލ5flggǢ);=HT۵Fe{=iY]gj78ѿa|QFH[Z.LFSlv:A&躪fe: hcN٥^VcC`+IW8՜arenKFiލ Qjwoǣrugo:K+#^ks蟽n i-Cޛ_Zv a]{no.ƲƝ `oěqQ|ՀEM3`b19-VuU_L]ԝsiE燱k_n 32$ڀ9|P@X%;4M߆RbܹnA7׸{|y4+B:_b-7e(][,V e<] wyDtNTHNQ$G=ի|ObqFwg.b;lcPHژ d53ݯq޽9 e{^59Nﲕ~Tx[U|LtT݃lŴFRcslN(  [ed|DjiԩE NeU4E^}g G,r`3)CJP'$w>Oo`Z/jQմIS>ٍ"4JxVqۘFD5cG #o&TQq ~5Q X=* xƬTl $׻wfI̦tp׼beWߦP&W@A5w)%!{ddr02Go8UP/ edlk lcXcehwvXy&QL``"T(ꃀp=_KS-J/-QmQ\HeOuDdiCFlg™hlAV`厝G: PʂP9Tںa,#!&wJ9WCTʸÞ:ܤ&M~l?؛ĿT~F :.H3'ٔ&X7ƣ)9*K2qݰ1z +QihJaSȵU8(Oc'ݜy E <2@ 4L1v@'`§c P`6u p}ʳhcH'D gy+kr]U8D H"BOW=Eϟ3{Vyl?jG֫)UD8n\ @ i(y76f[-k82=(dYR>StWo:[ZăsN9~uB&ciRLU*þ zrB3huu" \Y@EIM@ ;`( qDQ6OM^]9^=uY2IG@Ĩ(g[fĕ:xc>d1k`9M@KV>'O{[AoV Ad398/7\Vjhb˭qCq~ *ve&XV&da4 i{ߘl8\[,nIH+ʚ@ ll$~u`* @r%jŀȦ!I1 @.BVn$!l D(.>EB q:H.)Tk95AKev{LG#^IV1NMcCbPo2pcnpj`ʾx5 F}`Trh`V\Te} {ip,Lۑadx""xVjQĝe^uGGm fk"Ӹʽ4f~&h PG],$-@#őtI`"팀 j p!daHrIrV UtbWG C,WL?Yt:7RH ?W$XTD[֞k,oEAQQb|7nXE;I L]QP_ڪBQ" .ALY*&v_ɀY8yF.-gn-}"LY L>rdP?GV^]wu]4Yt-B@{~&.ҜνyǬإQ*dc YYr]}>Q e6i z4/me4͕؇"G @NPo\ _r޸DÑ9P%z/W`W+:TDk'&ʰ0blhY6H OggSB﹦0Tu F5"! ")#$|!!!!$)(&  !%$"$ %"#(ޜN ,|R*Xp(k%!ZSnޘ:ݚظFvrhh:8۳j vI%M9 Oa@X" KLUh9tDZALC6gR!{iHX7 bKZ *^|֩A?&~& v-LJ?ELc,G:vI]2_8:=cx\zA2ޢ#9#k P)A"HC è 0JpI4>./;@CA}W(Rŷ%Kkv/58.@(#YnxWi90*]qd(!RJYﳛ͕GC㨹"Y^^d8U &xodcei`]B.TUipVuN5B Q_zUA@ IOHQjujY=Z;nS®O|$$$BF$R=9qNgMehƆI,9eNR4,ϛentghRESV rJ ΩھdK`(ܜdY`X« m1]# |6qֺ 6/h%R]r,[*#/c_JqִhoU!ZW{?U0J"U Gs WJj+_dAaH*!p YtY=cD9D$r\ "7[-0{:;.(6:;$)KTdQj"IdD&T^4E5b%,nEp*`vUFf>U B5(R)n'@,;$T:v[9ThU?I+R?P/i$|XouBC@KpV!=K&Y7ec4 g/}h1@ <pUOHkT9pfZb @([@Ҽ1BUۋٴ3;֫ Q1=|@Ho 1B,+{ Y-9I1 oSD[ T&p]1Uş(Q揪Xfgބq49K"[hw2Ȩ&"I$ njxU&DWqie!x.a ABhZHB1XA1F~N˴hf] К炐sug.)i(29dJs$C+˅M-?ʨxȷ3 QT% 5*Bx|Zc@|DDR+kzHX>.\4Mk;`P+bD(b1 8O1LL&!bZW D9P`ka>m YI[n0xA!au-2@,|\CA^d~.<ssyi4{qrGS;FGD/wJNW>i).1\OTIh[ʐ^, iiY b-@ 咆k\8 MQr+cZRJTXi+39n[LaYY8 xp!OyȔ+[+bDYm"yWsz=1eT>սqEILS}UWrzwp H|&אe4OUOTxSbxLWv0XZ S:DBQVރxy$:u$_$#`ێ_s=_ T[ WT=wŴ΍R)],kFmy5Da(Ƙ zLѦZJ*:3L]͐2qT:{&DB{&` @`x~dfA1iOaOjtqq78 =JTSxmx7qV学IvC=<}8aʝ #qC!4P$.ea94@Pn ~l*~ڧD6E;&G(aV@+\=0O+=i k,K' y^jjShZs׫hrFӢ4$D)` O=w_('3|T0bp9i~ jBDӦo,"8~KfH{ġ,$̕ KzNct2˄8oy(Dг9p;J#Th9 Pp&y׊YennDZ >*qՙXQ9Ӈ")bDEB#YچR8.h4{IfIeDy.% KVj.a3bq$9{mqbZ>I>?`X7GKjS@Z\@-Խ)6}!Q,\/HԺTj)X9 fDA$cႇD14*YIM3٢=j'qt#a! 0' ~y!TolHʼ\Dwb*ǗAD<vCeXk,~VJ 4 G1 Wݲ"F{6e I],:(Oi*fky1x0YNmcb\v!-']bL^wVoeᖤ%I:W>$\- @s< hAbPYصc&+]] vU,>bſ~߱aqIOggSB﹦0NR7#$$ ""# %$$\eC0)M2a _$9dnop\e1Tl9VOh?)f:tz%5%\-$~(Oo;Gꮘy&71{~.8~@-S/_4FVQZrjhL‘ @ކ5ʧ*n! \#xY>LZ@a3 O^@C V0d*>&8gY{@ nA Q=O 2Cλcݒ_%,.m%V1ۖ[?+e̥c.7ɓqÿ)IxM>3okm8n^톆%[Sզ5A ~j*.3" {% (_+&\DQHr:3#WY \?-}i)>wi. |nCo/Kv~=wft0Ԛh3zPʳ DJJ'˜ x\5xv]idsc[bKWb}lOIcXsju5uuK?#Xd2'XV~8hcY 21  K,FtuSą?l2FR?֚}>nWwyS6{vz;|b_yJ5v !PT&@QyPe !f޵/eN–h1-ІkVa!`W@u"Wzkׯd7q\޹eL̆_*=F̍ʴZ br7B+ XPZ$K􄀧=YRnz:"68^cj>bDKY ˄Õej@4wE޻ERpEiJi2l:`F4fì?|=;ٝI׳8;vgݦ"Vb0H*@)?S1~`5/s$_֪~$k{ N"XI۾(J^ƁN@ "|>/pS\ :˯*#yfC39P |fݕԐ HoQ:Tezz׷qk]DYe_3y4,&#VPA$0D|);Ʊ܈gq GJD鎿5뱆}ӇEK.3j=M'cÑBiǸW4]<,zUιn˺|h^_5c`޶wKlO@ <,^q69mb%G;;^{om}Vry'|Q }C$Ibr;q'T÷J[w`ZFWk9 Pˉw7+Q#헬j,! \fE6 e #6K&_sBDMvEH.3H`ˁ!d[lĻ Q.`2 B:@)O/ҳ)dRWCU:=loRStlXqVUںYb) @C#owd o]UJO+I^^moʗȝ' 2=|zhsu|}h&.) G5^kVn4I0mt^fyXQi%2"G15]"u3nK8vn#T[רARprnoa*cHUD[*V#HA;0٭Ӎzm:QSTDYUԾy\\O6o:N/:濵Gtc=xXevmI?7Ο;i񻒉Tg{eExv>\ :m(Ikڜ-1 r,tX`0ȌzsYer1~+ঽC/s#</M>V ڙKŢe-,;1=?0=Wކn}bagkN]ʶ ?>U)9f(JO (hv-a.J ƭC.7>u@@xz@ E]x$ɫfvҹ})seۍh~YFDdCDE j!̱!oSZLzjv 3}&# FbfCn6~lgQsZqI w42szm%~6^2uF\/W&S M"6Sdzdݺp";dK5H2:?4ѣjzNR!jy=85Z˿zhvg=Nn(HVTrrG I״*iI `g2mvX0\gF |ļ$o$:|MttR4T xJJVL/23cx by͌)#mp2[#I>a:)=<}]G[D,Wn BF+.~6~e^5{.$E&NW#S\j7uڍpV*(89w×͝!\dzp^HDF==.s&6 |F߾py_'IT135 ᑉ$1/Q&mj( /c- !OggS@RC﹦0n.#!!!$!)&%"$"!%# %"'#~}~^6&<lPBJh|N0^)`gcALq>t_9){7OqEc/c&Zaz] .8_iq`xVt $im^WNkUr7#F#C U沬UK2׬+0*Э))^ZHai;%,3}F6O'%SLr[>/?p|鼣=ܕ4DNxon;Kx?v C=U?*4Hk-|8/ݒE~R-bDt*0u/;.qZbmvD@m ژ-L̈aw§r47ZNw8ii@,p[7@ؔ>%?4 5iƨ|֢%?ӹB`:Yi3~EgfOCopU͖juB8.wMs@Ŧ$d(HiRzwYbɕWЖw.q=Sb\"!QV농d8g}LYi+r3'ͬdTԲ L +,bsFSHw;?Myfj^J TWAt$ZTl zP<6JS LNӻ~VnfG.DׂxׇBA7;mQ\(/S\WaTg47p?tx($OFMj=t~]c6MɆgmPdK&j%R@O~ŕ;-gAT@k/ZW<׋W _'+K]v.=,-w5c;8(b=,ՎvpHK[GD4_X4PnqM/VFsX|Rȕ)p|D3r+V+PzY~N"ʈ3[Rkl6{xEtK0atr㹟ll5O3LjWzXW4lA|_vo\M$MazmgkRD%I$Ȩe+왤U#㮛G)J7Nrr![B<[_ Ijޙ\q#5f)wnez"[ ה5h,F1pb=BԚFLz&4jĺ~|vh;>{VV=H-|NǟG:\b c)~-[$ Q6Ty;iJ<]=zInIe*{Žg&BZ gY4KJA HA\ (^\vQ tyl *JQrE5 :\:X>?aiUWe7Zo% ..k4pQkCMNe; (#RJ¡`LY"Q&DONX,K֮= 0|dEAlsN7o^]{˯ryheHs)E9?Tέ<}}/:DwFg5 Ufg$&p 5^L7)A ATn"OGсRldrXfBBYTSv4Xk(Ϝ^Ynݡ\]+nxUKC TX?<pjj +ܰX<16rpH%M2GM6 %4b V]i`뼮xjC$DMST+s=Ds\NŤ)* DW5C؃6j*iIYnN5)yL] Jy<Nv zMcMLx'REyIUqc-$tOm_]z`㠄jH[?:8t{J6.(w7ix}.Μ'~7Z\9zfX'J> pM]^_U E; |e&  i"JDatq)_ wwp#WY81'cvt;LDD9d=JWUTo)ߧKթ u[(m~;E5t?m}! ޳Y&'\]~6~Gd3N x<7W-d WØi ;9$o RtUɝůdSn.+%dDx+VhĢ 2!V$!hӎF#d4yKR]d a(,Bb\r'ow|u3_Od >̩l.KA,|ʫ'sKς DRׯ]o`(b3 \BFā1<~8f~@0(J@pVxxB$OL@qok,u?FTC̯t>M/ϖ{<(V?f7'^R-Ym:-Ť:Ό8WB#v 1oMꫠI\[WkenV@E uA%AEXOggSC﹦0)7! !!!#"&&#!  &'$! %#$ ! "")'%<Ղk+g}y=0Qyme"dU,㗳 ӽd{80˜"\Uau[f?G~*3 ׏v/#GDWbU6vvT|v#Vμ4Fw' L1U5D|)6˒壈*DSYjMҊ֡k3u%sLUA4DaS2_㙢]\:"dUv]~òO@7u/h+ 3dg̱$íHn4S^Y<| 並ുXN:ʨFʣ}25pn~Nb@M^vEILEn2~K%ͥ:]6Yn\v>z G+S4E uhd)$ LY)Сewwr "ާ{nWzmL?TPP[j\K>ͮw:H٭\Tpp3,át8XNvBdo*Tsy|8pa,ڈM΄lϯfc\F{5/Ǝp} nIۃᖺ껺v+%zAQE!7[BeY~-.<^jBk"SDk ~МYOѲ,I!gh#wC K뤀S14J-H`UfY!* Xy Kx#Wz$GȖIީ)H#=nsx\WeŹ#%V%k)[ VNށ$ bu,n lkg磾Emr^ID4)7j|MsM<$gvo_O Ij^_C۔&-z0 (5o $_9~#hV԰\XW$T]WrmN_ƅ4CRϫV4uño.\WveǗ-xPHZc<ց\]"]-L{Yʿ*uH U%J\Ym3hEM|kZ\Y(t9@ysS0#++TWWV9uXtpV:IL[ۖSi>z_Ujk lc NK `N^urﱾD:64cncZͰr_ 4L@p?Z}jYNCye\|3:VIK'As[\_idiֱig0.[ d%xypAAe:Tŭzaz5>65/:rB'7 PTKxpG|3FR?v47\5~0xNGҼhf$Ʀ3!M?~|T_:ޥ`éoQh@ 0 \<D cI`kTDʈn\.U4fk() .M rѫxQtzQLGCzlyOp'bo CHཅi+Nd&ogyvHCe#"rN`E 4{f8Ez g>?E i6Xv3QD1&%Z]EGӣDw%ח#՗at $KJb.MPdx*D@67{p#*DS S> ,NG RYw"\[Y,+4͇njӃқn@M\[$k Ej~ zl0kf5#LUYܗEkOMK܎ŸVʛ ,SL{*j n,(*DTWY*HTZr1/U"zٽY:T_UP`׼ u0~atTaU1&8xڻ$Qou4옇Tf\Ƶv\cbB yVl, #EdӊLgy[c\Ԏ(8;w/|TEu`'ŒdH?tpS?b Fl]n%X;o;f 1 t!}0;r)$}l"ĝ nň1v_?zRDӡr4bDyENżl7ο}C4ȬQ,tl}4¦T`RmyZHxm1,hQk;ia ʤ^_1XhXbEUc0~6:F)H VP4*aO(CfefIDF/[㲧ډ+/|cH YF\ 8,$C!ԡk-#pK=+3bZaV(͑búyX& BU*1ց 8>> W͞(b<j4y'J!KB+, s2rr2;a;'D^oʡܙV^g%BhVqU%ՄUG(q$K9,?Uի,7MWX".cY*I /Z]W)uHO@l(:u1fp+ÇR+WĚQ}/I#;$$]PSWuKU3TIZ*!VHDhh( Qb#Dz ~O)V-6]o2k#aφT6F2tAuövΪnGڐlѶjPbYj8F=@c (+P6ዥ% P%E),=XX%{-XR~-@@챵  nDE7!&hpd 1XSOCRf-$TĠ p\LR|LI vnzP e-эoE8gw3sOh,kesiB7%wLcO:{ܹ~xPtseb~$xސ]KOHaOERbXk'/sۮYp?Secc '|.AkF*l_P2s^nLzzPJ"|OO1-A`T- \ߎ3[8V9/_%F}w_WVj0PT[ nn,CxhXT;T5L 5TSdտ=Bex_FCt8\[ңmyhfnGvLґ~q8 DaJ.5I R xCXCV̞>zkVtS$p\4%  ?B\8˕C)Gg3W,W8k_4z#b)~rUd䌨h0 \1櫢:,vS\.nix8n^^fѣ0$Lc!lsx)_kHe+ȝҎ]c=zx3ȹݮwC]2O\WlYgH\_sjal6'{bң<,xm)z䦢.D#%B5*F|(AU Yj?@F: hN>*?~~2:wXƎbk'juӷ?cdGN >::PPxfmE0aȌ`#e]jAGXOggSD﹦0% !!')!"!"'& F&R>b@xeĈw˃ύPDD){}y~vb$mp>%qB*}gUz*7u9BA Cd[|UAz)5BXMEkEnX"hT[QHs|y-1=ps _H }fmJM\J/%ԲwU2BԫX k(A7Q@ . è@co/hiNlxplkqv276J`dfOǼںm15J8nI܅W{1wok |fLR2BClIM_o)/Q.5_}E0g!{g%ڧҽIPXZc ځ C?[IMG%Oo'å34ͼ><||P %摸ɸk$$p}[g<1vP:,z_3vI%agSJXi9gh4~ mXKHA\LBO7WW:sdRL7>n-@x ӡ"b2qiBHƚOn<{ӷ畣Oqy4;5ݷ:kӼ.9nL+esV$ l3WϦkΟI>6|(:ttKN9n5QvWK+ٱfcpP,W ՐR |z|f yt%lGdXeG#QIbލr믿oJIz@ N"Pm4_I4{_Gѐ-ACCg-uMƈN-Me <`b3rK Y㉶pYU~|vWl&C!a`J'ێ'SG/gr3K#yu#t? 4n}*tS{bD۱r34Sݲ8M<Εd?f}ejyyۡJk[q&=Jb&ָ\ZuF޲^||e ӝʕRg>~v$1JdNKg =zӿ~c4$, {Ki` :iusS5FrTp@[>(>CMFoSLdrw47e<ƣCU4*e#n Ω7| )"FAnUMC@ (g9o콓h׹ !_e5KNwV]yS,fH g"ڶ^f&o$v%hgר榾c:t>ְ6Go;Jۨgf}tt[ A8Jb~EF9vK0 RpEapSVEK vGE%Muѱ̐مV l&I1[5W!!qJw{dޗrt_?5 1]zCWZ5Jzt$Q(*!FmOz0$kiɶ~v.A!xg  "| (UJH2q^c['!G)Km.>QӗB;x ak@NJGÚvz IIFH%m&r !Ivo0Ƙs Ҧkt24L;7;D$HQWmK^@?|h]F'|.pv)UB-5) c\S.F'GRNK=J~ aqqdqO1"PYyZTK;m~*3!r$ѕVdS.Sr%e fa@Jfz5T0G~6dPD|ii*N&;J)kEi\)aIhḫS!:S@ecR tFT*yZ< DR +k8v3P!BH>G)ՠ3/:ڦX㯔Wv:&҅"$J 5 >1!c5 tĮ ?H#/clQ4f#lGb]QHM R;>PѸaĸzޘ4Ě[lgt%S7$߈!⍥vȌ.\yW(Q^u%@0Jp +Y/]J0u&6';w=/o#fmY6#U|Lē- !* ;{,HKd7N"?Q:ו)o0 zjyP I7\TIDP!m^ OggS@uD﹦0:1""#$#" ,%%}z!!!#'%$~$""# #(#~kA"4-Si ;ɕ+RFOMx_f,޳ݫ ̌K5 ypUx__\(6 vܬ^u,Xk٧YI?VɇL;)dnF:l a6fԍ1jYƢP^"A0/͘!x.Pw TV?Uz!#Lv43BtKCWT;[>Qk@ƬalyfiLa{zπѐOmbOQݞQk] AeCa V2G^dP29˔!D<DIUu"k3 Ïuɦ$z!;:gww+lGwC Pi"6:AIɑͶf3*"+m*)}<'j\_ 1y.I_Gx\m] aB1"+]P,[xQ/Gu| L[A4ώ`Oýx"GRj5K,U Qy^9sV3ӿ-؛aEDSQV_u҆nQťP,Y#=dn0HC#kDzw"FHC(LY B\xEG`:; }@+CT,DWjSivh iuNH)EISG)s?_O:=UR( O9(y]ჽu7=:=Qzlc6K՚T؃տG_moqya TeY`'|KWqCNȯ)+׏&<5ґ 7b"-p+Ȉ!L&ę P$IMk0U,eNwCM>^mK::E}w'ErWG ـ4v%NnCvC`;P;v r爬2pj! VcG#Q;zO+nO1||;&kAr3u:T?8`Ҝ̏Zs:|nU!֢HAD:'Sp!X tƢCbKsתAzFIB$Zɓ0s?v51n̎*҈Lť+`q)"M4>`(l{ Q 'хtL39QsnU)goǔd$Z;dD%٨#Wr?"`J܅j䂌JIXsL@{jSptr^)S>ҌQ|p.0.nc.FbJCRgmP* i"`<5Q$([P],,bB}l6CAP\pUD4& e_9eN=.iZRˣ w>RHNJ"!*o2|EŮCbcYBCH . i,%(0 ^5IhPcQ;H:*.Fyɒ);˘'96w,bJ%G3̝%>qF# VJ![hXLM* %DhZrxIȄ)PJ$c@nhBt) ޭ.s)iҕFKtU >݈n]3i]&ds#;>6Ma:b9s( AK-E:1:vN/$Z>!`rf:CXѪX[V(ri ׅ+?(8P3֜7G6N\]n{{ n RH/gWbUA0p NZ|8F9>АHH(BP?؁>XZA[֩]!/t -AdDewA.zwpi'Qv{<~6Iire:nu{YR`"ޒ8`:ЏZ5V>ئs$ȨU\`Z;~-IAZ,S&D##( TWaSU!ÃنQtB0Odaa98fV,Ր9*#\W8iFܶ_ 7~\f=XMlf=x:iWlDD4/ۜ-chng5Hr': H @܂%ѰGĞ/Sm-+j{TY֜M(RL2v.]M[¥*><)vN Dhj'D @LD阆j%9M2lbܤ_--G fW>+ڪ `Dj Kr ^8GpMJJB֒{ّ |Ƶ,yCpzϞծ\sWg-l$"A"J$0g̮^q6Lu0-$[2y24  '@s%UI p!q!-b᳨ ! EEc.mL<1>'ϐ-VF"dA""1NC[ۄ$7ch8KlNӷz~u2S@Pi9pԘD& (K vQRhFAKh,e1: CKS );cMN<҅`+R&Ϥq*#8(@ `-Q<{4ʽ|v ".%WKԺ* $BH~žf $km]RV)=Qtbч@y,;9!23q6V.wm -QXy}8DzYo3BnjR5 HHY ~lmc!(K6;s*weS}Jѣha>>pa9C0]!'\xX @ WA"Bº:5 " Jf, -J/ZBmUh(vK&ʼEMc 7ȤE(3hjQI\x'"]$) Od o}/0 DV  [y]uՠYP"KT5U;FҐDWd Ն.c lɿ_9DZQ(DS+>3=n*,zbRV˸@T[=ïhssǪu@y?=GnH+n(Z4SGL|sXچoG@rC\H*,RJ6ՉO>`C6p8WdJeN2%%x]"qC;eYXD̮I&Mۡl>Qe2xuzu_8٦/ջZ+6:Ƴ/⧤_eZYٞ"y<@x,2 ]KOggS@D﹦0c4?.% &"!!"((!""!!#&!#!"!)&(^}A"xV<| :1}&PTJFFqyJ,b1,v M>%rH9%vRdŦV6 nL MQI3 iĕnqUGw1b֍gÔ/Ps6+¾NM5}Ԑ煄rBQh-l.wiy&:~cUa{%ʩnl:`!@1`dsb{m+H q~64u!DQ;y}|E ԝXg")|O>aM.vJ20.n^~;&ɎJhŴ?YNp/ກi$tf'vWtSo_yezJ[!R LCw۾UeVn"R???nw2ݺ>uY)SR""j}բl5`cɯu٪B[t.rz˖IH\@!I T˝ZED f1\KԘ'f%TJ0P!%TU*ģu xq4?oW8mb\WjWV!4 @iJu,l*9T[ii iK①RtJA U9A.cٸ 7y>% A~1dSVE'611^w&]h<+12ҊF@RKDYn=eQC![ XRPT cQm|o8[}D~>߄H?pwOMT4|NAVkahzl磫{A¼|g8:hN2â ܓDu~z(>qJ-E+ I ʂm(!-rxaVT2"XTaXA 8XZKATS(TYޜ{b<|'K'4I5j̍Lv d]ӭ 5֞m-luov}zARL[{.~`[:^Si gPLW*$*&9KBKJJ)֪RLU*WglIws8í#U˭L[YӖZ*R=65=fp#taH|F*ݤm 8`}{HeͯBqnK`~7B_Fhs-<'?z["B? J[ڵHAaSAWA{V[C~@!C:c{̮ϦiZnp(}#c#ӫԃ8zE3&ܪj[fo# YkrLDj/&wPqw sG -Z˧'% fÉ?1Hc;t?_f[JtsoINIZ`Gh@0hbv>x_m&KwRK&tZ#c;H K%"LB dX+dn(s  JNw>V DSUՒ@kImző~AMLWՆVwkyqǭ"CtDۉ3W1-*Lƒ?0 B4i4W)>|sْz^j»wS្ tcH~Pݍhb~ߌf1_le}WYvT;z}T|l~c+tp%˹o$`wBO%ESbT>M'H(iO*ϊ琳X,y\^yl#䪞/XT81@ {xGY KX)tBѡ鴍xCl\H} +ׁi4>n֭AV/XxZ| bN;)v!;`FNp,9lizxus[V»QbX Ԋ1ARԠ U@@xuK ^J=G"t*hN qM0,Zf󔫉}LC(S41F.a*NMHccӻǾ](@Y$XK$ABȱATRtE \vJiwpI&,*I>6%L݂TZUi)1Rtp`.H (N*lH2wi|n"ɉ xo_ֺ%(\ AW[ehXj, 9b^")" 8|6IfKEqq OggS2E﹦0.~!"!##!&(&# !!#&" #&#Si~&RauGM\jsڹ2`(Z|˜fE8{F.Բ;QgK_Hт0!kB _-(,aHIR/(ಀ*.=nu6s8)! p+Ic"H-(z4>N[ZƸF6g86Cx+Y&V˛%u9UK+|Ԏ/!f! P0Ӄ 0U g]"@#d-\`pR44Da*{4L99Cغ|,"x=ܢqV­_2ө.|6hsqt8Y>"5aM.$Hh^8ru;sec(:ݑW?{nrj<@rc0wyNt\/-?sȤt$׾iXrP9*akC+FVב8ZxEDZ{C8HI{_?QZz6? N #RCC;k7g]X9yÏ[0?m!m k -}i1{;Gbgѕ@}0ٌ U2eJPF;EaPq TW* jjG\  't fd@!x liO4CrRvOPl-lf:>@ه"s(T#+zuH(gMYB0+,ƽbm Fsq8CáV/(/#/}ZEz>pp~_xѸgN윶\1)]UvPe LIV%Y#QQ~QS\xc9>Dlu)@ ]v, +FHmy_+b Am7 Lx (>X&n"^cXح[iobt($j zsbnWZ3zLM]XnfK+7R5bPSE0O IpM*K;VJWŘS+lBhE iLT-?quBT`r^q(s뻜{4hWG/?λZ%zO瞳lQ4 D:J|kᮤ1 XWBm 6>7. ze)VS4WU^YjA֯1n%NMbvY\Ym2yb`)eںZ|kLWGN[`&w<&ɵOro,ADW +&ss҃=G|L%L\u"PDUL,rƒ/E|Ό!\UҸ+:u4|O~Ssv;Xq(LYS-2Q_uA 򵓾|V޸%\aö0 'ɊN}||-Tvo9 TzcnbEݘ #SunȲ,-23b=?=&BB9>М9iv:n+ ws{G?};sATs"}DT@'|V󙫃Z$#)2pLŦr_ܰr=&Pyz^.ތ4ap/;&5Bh FL. T̥f&r^\֧ z'PotӭITW + sVB>Wm7l$0DYtOIƇ&t{ZRzq_/Tat1bs秊ovC:U%+ApD(ZV*س9Nq?QΦ%3oYϗ6Hz\ݹ_?ͲøE_9}VԹfw- Эƌmf'~HV] Ǡ(8/jO\l禲-x9Ŝ]yY5/5g{owu}Β:R Je~,fQ@vX;xNw@+UU]MfQXZmDiх\ctޔǗتz_3S"vVtm7l"nzblA@jۥ*UʗF_(aOyzcuN&Kjuosڧ(E4֎X(˓xc~lI|f #d.PMlfm3̗̲rt4z+1ظ4rCz(kZrShun=zj:jŖg#bX'0<*S6&2G9[?!zn|dH{Ҍe~AAQ0.: N*Ԋ%~BDe6) ˯.vgx'ܶ|Ģ=$ܽ>bV+'`S<s;̌˘L%>:ij,2N!밭 65LÍ+V1]-O6W.QTzJBcrVk"{EA@n0!7a\y\\u[4_'f^4(!HݮQeeH+ s[A;n}Qטe5(q2]!Ȝm͍}fA Ѻ\~w^*V d8ĬlA.h13DaJ)~#K{‘̺ƸtX0WOg &7FcSw/ATZ|Φ~x6vj uD5ic>'}7B1RzWt>]Z)D\0ƀ@l(ړ-\'t!@C-<[4sz@qSr'4>HHfEIlH69ڛS~>WiJ RQ BlYhᤊkpl:Udg}iõqkO;}c嬬ʖՖ2+G*nr"sxGIOggS@E﹦0g2$ ! ! !%%"!  !&&&~ !! &&KS,_h\`~*2QR, dx)jMq5}鳹뙪.:%vu T.錀QG#рJXnwEa1BIbTCL8X`;^o^zv>M?6#]A:Cڋie8rRǵ9,c,[L_TO]ڐY>Ʈ6[#7k_ b - \[ -:i3(<9[Bw~ L]D.Mŧm$/ HyP*L[.:ekw0ϊ5~\I4[xT(qIS7z_H,CqD[L,JE{ߗWipZ]/PL_L ,#z1K>NZ8T]5WUA|_7a10|JОΥq~lK&UDӎ 7:o*)[E'%hʡ]+•*R{^f12Y! ;\?!Ft|mgSv6fnFptVzˑ4 Ѐt 0T\"^GUZ t JR*h(wT^ 7YtALLxg- wڹ>LҌ3Fc;|DL fFҒOh2De봣Q#%In͉cWڅeBc>}rÖtD!4ѥ6: A01LN~ڀ^uPF_O@\laB-0eZǀ!@ g$T@2V-,.n;rM2qSd8zx٥j%ARk@U' A'ph1+B+ .\trq,.(,i~ HP@7Wi ֛JU˘(5Ѱyrx0Wq%x2)7+ d] *ئ~@Z˾RLsn[?\iYs3`i`$B^dWX*r'z8XJ<Ƭᥙ Kؔ'RD5S>cC#;MۥQ;/;%&[O#I['ˉVC`,埧@U4Վ LV\놅e$ΛbA,6*/L)",R%\g]a60QO^c%rhdL|A 4Ӄ"P?#TVWIǍۖ,^*bˌmt>qK̜ƤU@%jxY j#8bB57\T3Fn7K&H-~Y0ФB(ս0Ʈvsc h‹^zސM$0 DD5BALSuڱ.>F1/ZG !ٿ%ĚL[Єx/:8$,RP8G'ʊ=0r=ɑPٴ' F,LO7rXc8@YƎ&p*)HE˦sJ;٥ ?9;4qP{"%`:XC;ЮW$np;/.5hMB(TWa%P\NSBlx6Tq%ӞgiL7'z!aO>sF;61k΃׷݉vpJ̍:S5}Rwe!-@v5xPʙ Of~Ga!RoT1ȅaE\ NHn{S)xNZ>&qcK2sljN2ph).?1YQO:C.ywG,eӿ*?a*)f.aX?= 7mlzS<Iq]*Ծ,XuĢ<7 Ǹ @Fjץ"g@J IKL)]ш~1.c!Nzϳ[c˦}ыOhRԴ#fH$ *mXA跴$ ð U@EE|ET ?Q~\# X9\rzL5'OE26}*C?5_=À  ‘]h0\Q?"QTX XnV%A,;E"P\&(k&H $n-;"R/,kʌǢ+`qiDFG"9H^]^s{o6L:q&D9\k}zf'>\fpp|~Nh:j޼DL^tӏY,i }8=dhw>q;FtEcbXK͉'U/+ed*@@BtHZhE=\)AFn /1 <`?AOjNrqؘ fl{GeObI"]ڌ2lG+k pSo{\UeT%^C"o`5nYU! fk@qkP oVDU'py'" ttMgRp|Q Qe+kx:dM\W)Ksin.^x iczL:VTe9,4$-4'1Em~>es_3o ,`F8G Pj*„r䏋ĵm~۱I~rNiN0^9EbfgG8ntNx52>+%&jpz;謆l1_C44@\Ko_p˾RZ FC^%a D;X0RKfxzX&ԳO4hqGXW7yE-{2X #+;VB\43F ZVkMYň"x<`.I\ҝ> K.b1 sE4nq]r#^LW,"tyHNwDD?ZF4o|!IyɽD\_DͲ W_tAan$$׶TgGin_dg݀> P-k]rEJDVK-z ^-  dd5|u=j=\؟fMtd:I5,Y+E* 0bsޟDh*MIH$Ŀ7rL_U^]0㈑Ã5j9_~g!ߋa=UJZ*`mQZ*IN.JWUkLJpOG B EfMDw({GlE!fh-N~},x%d,6炁S)cOm-uZf-=]! ղ#~#(EX+p{!jV*:Ԥpi #@t`߸;;*ϵX, ^ȼ1?NM:v滛ӌˮ0KqNAmiޔR&[%"cI0B(e #0A Q'W`QZTOHTW`]vI@# }g.x8SAБb|?I&;'K%e8qzInqW~^0*[A€:|- jRx Hmck` KL.kQZWpt4(߶EiI2Ok0qix v LT#@0m ?+L+𶻒6ZuŔ}b@BXII0V^ {^#@/8)633+d]zn^xq}qϚg-}|&Dg→AC^`RVx}VܼꪹQX(zz=%".M.uiD#%uBXl4ps+0KB:Hs0H:χY$3>Poú(&l+3"C<v =<;|أ " , 9J-)qmS.C ;2KG&o+M ӢmJl^M2L>5r7ۉ]Qd pj=#TjI(`j{Cs ׃fW9P;k.)}-"JnA"^pK&R8 +%E(W"BE:c͇oݱ)ؕb,!=W7}cn X{o,87>o&Ĩ >V {ߖT B Ta [.4ħ>4sn"R̥Ƌ0f P}RDWUl)=ǭ[6-VulETBGYo>zEI@p bTY㫭fEZEZo9,yx" kqmv0fUUu`SlW>nUSV#,WUDUc;<9g`*h,",ղ:4-޺v 2R?wvDYOMY^[#kZ#m/kWP%û W7 debYYp+8Wב~\ƨ뼌[0=Im\dZp`-UNGO|ίFzֵ2MnZ> ab'\LjH8), ֛do%%u[3Ia~m2郰ۖa2pDF u@$i#~6n>Gd|{Tdg L'.nWkԷNA*d]HkN {ݎ.:@ JW=MDULsNO?lk]Ѻ/IY bm#NC99ܝGPM̢[N/[EYB+t1Vrw9]#xII1F >әd}D +<8V)taȗZcEwzgU_G A ﻫ͹UT@4m)7Vm&tELyn;06x-PB t.nDXvpDY V`6NU_[J`ѲGP𹷓="sI"k8gϞ&D$a vyUuvjuMdHoԝoO4 +) 㐚W4Ѱ^dJk_-3;GbDM=Ux~"gPj\[F-.(.u+UTX#\arYP"'rm=8F/Sp^HKQTUtՕ<);)QF-CUp3ŪBپygi (4Wg._>Kǎpkׂ]뵎_E`MHL@iVRZVD]Z$y`~|),{E|g0APӊRg(dU c_]F|էl,]/{bh#ϯ#!!MF.ײuooܯKCf͚0=ݼmTJ}  DYee0!7G:=3 GLGIL[BvFHf>ճI.RtαͮyUi)٧ĂF^~ӝՍb$QUmVB=u[ e씤/LNNWM\af,bYWbzV^>L&\etWirtЂ9c+쌳XtԸ2n% `􂉤!3 cWz{juZ?G)ё\dGGơFDDr{)0P.@3[N*#ђf7p11ef#]hjFGªi-ϛFtzeAZAhո<YtvW^饬|&d)(f1݊R "C>3ր %1 I\K`(6bxl_Kh\ӨT~:e2''?2oЕUZ҂0VJbY) E iMCaö ׏ZNSG-z4BIuH1rH F6syC@~,=Sȸ <,?cD*/_{כq~$w4wz/2/VJҾ- Rb+IR,umj*T̔[ UUeXBdZu^1=Pc|1@p[*BsbO?s\1Emsf&-QT[0kM "{ԃNgF fVa)ώ. qyz1lK>Jq)?JBi*j`(~n)mRQ>abvZTїr:f8#Il]m&{%cs؝$׻1>Mqn XNg*ʾ'k=ؕǚjTXQ "eG*; ua3 n Z>L^NL ٩3:T:JSv:Mu,bdpE%ӻGykoyJ貲 @wV]UZ#@)T(+ }u⺡W! e\ q<)ުK:Eh91_V߾Ғ5sW6BTA?5,O#^w}5(ȧk}bN"F!ԡ߆EEJmMV=?84$"iUeA.D]UM]DI<4e;y5tpQ.TWSVYA='-I`tj`ϊw T_Y80x@lxe]nnW}$LWUԚӛjX`1dVh΢ b LSTRpNmܯ5'}:6G8,Uu-v22La/8=ؖRN7nujReGyC&-ajќ+8<na8EcA0߮)y/sTs+'Dj\%c棕и 'ֺEr-0X^z/FFɆ$W%O%'Bùv^jML*kJ9X^LSn$Om+8sIy:>mow]^F^|9<.{^saO|W.Zp'87#Xs 5 W+lqYJ'$`؈^xQFZxmpQzA>ªeQ[T2=N p }c$57@3T0"C~m""iãp6Vаh(VpIv\@@@VGMw:FF)1ؑX*+mzoGrCD\^C$pt-ub|_rAsw^IMƈߟ^<9)Dd ig(eno@v%Ƒi@>DHΛ [BFdWwCJG" O[BgMV;9k%1pIb5x56c BpXscv0X|&ӿQz;C"wC,bx)56AC5w_As\Ma<+X6k,ajg(56fpB!sj; f|K ĺO#8}>nߕ65QH5dDUpjT pn):kJXr~(<8;gu\<N4Wd15\zI^^k/v^Ϊ"<]]GN}NCśF :Us-0W1ZSJҫ}%X+=3J9Ǜ7S}Wھۺ}Ո>p)FAM{tu7@_:Orb30=O UwEZ)=khu:_Fݱ%&O+y4ޔ+XFA]"Ǣݘ^%ՇF4ҥI;}tmCun1_Azk\e#F;giܞozfzX-=311$Vu12vzn WAG\UTOggS@F﹦0̩Wµ'(([E h,H\NXR5"3Gz;.iR ۾­y5˫ce!Č0im66Աy2ebAcĸ> ƍSnױn8ݹvUL+_*WSjvIucvD+\Y (qFXK% ES\2 EǢ({v:xRV6MP K!֔YHCl2yѸc [֦/s5O8.ӽ:5rfuzRWG 8|MK 7Tτ\ fC[X!@7̢ IW_Q54y>?SuIdN%D$`#\gDTJ ak5dv=62}L_wj^Yf+@;X1h" /$W\0w!@kqQ/p7K<6"/퉯̪õ^& :prΕ'FPҔ5wjT]qv.eQ=|޶"@X |GTp:[erz`o@ [%2fIzγ;ב_=!NUnuN?iv Vi7y(ŚHy]| ~˅hP3o @H]@v 6} 8a?qYĻMn3Vh:Ќ腞ΐ*(0;]x$4SNǴl@31J Fó`J jɝDZwڦjn~҉qu:u=jt߱!oxS'+BB7R {KjGjו_4 F?eaE$G.AֳƱu/ f&TD&MJ{k4Zhxta?~7L5'c8x*NeL|SG1SS{'ֹbʍjNR|uÍ*e+JbI~ &`F+ƇoňIzX%T\a+Nθ^ GS(WT22 u<(oz?OA 5tyfg!`\T`%bnػfMTcQN}iJ~cI5{9O~r2=oF8Z$4sf,W RFS$yÿ V8 xb+Oฑ)(eL ֬IX5]h~BvjtuZI'aw)@yZ&>CϊHbgG6Cc`zV'Q|=~5Oy)qdשfNo |ꝵ>!r%.R@PD%c`#a9!qK*,*,I|f/]2oߌ3D:iY haHrKukxdu7;ŷ+b_;PSx16Rnf ^^/q9! iݮRsTDpKzcX ~RPޠVL*&4ÏJ|pBRͯ.[6fؑƽI~;^;|nc1TهtH^+%pǠ=l4i=1UC3ޛ8-n( [cM_>|t=JEQ0M8^ Si ۏ(EmqNI[fMӻwkW~umB5$z Uq( &t O"q7g6ڏtqg1PY|{(H(_4>3z?ͮ) @TK~L؁躓ip?D4OKl. wDS#vǾe_NJ[~cxɓETA o ؃STUR,].kt Vq3wPdzuCYV:vpp(+({67^9cSX8H9!o/; B:dq9Kע+2X| f$ A)Ӗ N^$sl\`s=S}QSg}JCX*/Yű7)JY\ʨnl1%I%wI5W7R?oL'٥n?ovJSiJ2\dג?tgy-,% B tc6~\C-G gՎ)ZQ=o,l`xB6ӶRH)RGIv+bc A€y"@&:Iyj\4~dn-~lOD?l߽ΧRPSwo/!alt{JUFht sL|Nb G 婻bkې.7nzCoBxet&^1I(T-qN{,huֲd)kx/|>[**Fh@??W/~_|Qy1wwE];KY*wjcO9 N4H&S-57)N% /ވeŴb0.XrcD\ʕ3T] @,b%So-YOggS@G﹦0W%!&#!!,'ns@i8J(p}*TBU+OiH0 Fl-J]:[/y$vIW-y(,XuDwz q~א/\f65*z9MjиkZu[:<:nw!qj{띍9}~k5fF.47w1~͞^H05}5+ ؕfD<6Dрڝ#<QueVMCB1?:1)ݕ r[=9?Wa1(jhoQJs#Pdx{^ >^P d7rjX!JvJO5XG^EV~}֓n[l!MLG6c*ˋt 5$Ҧ' `j8XåBX:R(yBh\#T_mv|=)m"p@34ۆX~ܯ#\0gĶ^PױR .J)ѩX?# ~Sܔs~Ę/Ѭb푻SC%I$-075\ zb`ٳE^($0!ݮz/ume4{Ӯ:?ljծ|6\q׳rvC,up_D%B5^ 6 ]}^9_cKZd1|Ϳ. 30VG ß'Go}ӈDs*7'6gwm 1kZxmm#pI'ލ<$o5YوJ6&g̶^A̅O #^^qy,LRťւP4:C3y 4,ki <O~uNz`뙡{uzv Lݮ\ʎ0JF]]y.%|*Oz/lt|w~ij.8ˤ>7O~sTm8+q;߮ !|!ފ_F;ʊsiqJk(H*sҜ'Fϰ{E_ZkLiz][o==x||Z;"c}ޮm΂CS2ӔtQWs^IܽNWJK7]n~ymؼósc7%ڱ>ec`Q˻[Ę=6罽 ܞױT׷LW7?Wwgu^_L?_7ţ [?}qP|̏lx^"m^g=i0-T h?Sjw%] 76FiM-Rop!Jx^Kn'yhvSR[ A,aO>/~͏;P9JO|{9TkHoT/hv'u7&Pco{vRc.ȃ֞~qtV?ɖٷhD@hCQU?1,pSӕgo+j*:4$~kw9kfd3#`DOU~7)<K1er=EUVJ7\`m xPlmfi=tS=L_[Ggx% :<_)GzNfwZ*T1UK[VֵI:ەKd[W@<_23rL:fj>b d]CXj!Hw")dkHRm)n1cZ-zܦ56;vhDո#](xq*VK7Vp\E^LKF:1M:OʰMW ES;4O'"dc;i?(ꘘq+HUiO,!CGr!H6*T(URdi-KX9g{GY ME!KDA[0TisKZ4up/Ae"޼_/w lz y^w?xIzmW]?޴)0@@k֑ٞ/)rb_RZZ:ܡĤ%P>bHVN9)\@7`)^C;q}dqwgZv|4^k>jwG篟m67A^qW"k#vQ*][[#E tHH#AC;pxi1kӳ[j. &u֠XND!+1yA dXU@5 0 h2i1Ou+ j5vB?Y2~ tB|;@##@@o9=JuڥbCowm )qeER5td 6--` ojS/ QN;djÐ#".i<6~ICNvHp1DN&%rt&pChf59< +]Gx 0ʺj`]iRBf2^Xf p\n%IY!t^'RRyvRv_96+g7:a>:c-Ih-6e,@B?EdQG2 5a]q E Ú(ۏbĕPH%NשIz@[7K*(OtZK о!wz>;qn۾Mr35>EU{lij)nDU`fOv`B@4EL(^iw9O"GmF^/ӇK_-_?q~zv_jN)E hJ &/ӆxi QIc:\q%{f1F Rs`TEtތޗ2/S BBМ?2?&<[]h5 QK iKݿtI2 qM|b/ &ռL[R:޸ "wP[lI(cњ'|^eGBf.AXuSJww dW?loݱy vݻj`.C #00XB,r!HE _|UP"VF]Y ċ ~<.8Lk\q84jpU~%KL`iSsڭ׉i 4厇S>x2eFho҂5MVanŝ~tW 3rj̑nG%$׭"?D0ʨFE>OggS@G﹦0zA5-UDMWץ~ xQQhvךک7n'}_Ny_-T=mE@۳ 3Y[X5V7a*nv oR s%{fUPD5L^XZif7.#oF!pW;|ttr5~vbxo^6NJ'+=TЖ;u3ʝtgi,j`:!0;r(I٢VRp3f 8촨矦Do4N:q)b(o黷[+etmq1 &v G?D ek`q20L]Aq gfˤcU{rB$e P^ƹ;<תYn.2=j'JHAZDbLp3?ns M/Ҙ늨\;N@ʄvj}glOw^Q*@#Au5V$xR>An)Cc&p2Ѡ` 4/Mbb@?3,sXa_-lvQ,ְA8B5O@JᢺppQqa}d(\>NV V$bH %Vn9Fcsc5)0Bɧ~_~.#q`~/P]c[kq`c#kg^22}Gwd+v8gINRlW3w~.t7)?yWFD+ t8D%ޫ;'~a{ȥt:WQ7 >anB)Dh\5@-qԡ^\Q!:Xf#_U?}|49CY{'>^A޶K6tђWnx]/rç}MFb} c I(@HzkƘ&nRQQipzɧmԺ/2R.urWCKuThBҸN<0_N?̝ɧoUo7v'L wc|66BrےpJ3#2DUjxYJƍf?"<.}]NP4.  gOuqgF~Ao8Inu7=FI{yGUpϒG d2M@ZסԳ20=3kfleF7e=ӁnMᲬI8%WpK,aOa^\nXd42 ౎!IrzX4?{ݷrdY]1/??yCY*I[@ w@Kp]Fjw|?MiCfI"s/:6dtA~\R8[vbb W5,^~.udR0]bb* ppiReH72뿋">6h4Q"`/Bڧ8^ Q:ZѦt y^3LW hohʨqPrw-e`EO44>lnmJYL𸕱v\$JO'^WgsOfǖױpY{ٞ;4>U).J;VtLZ"%vB.cMo?C<0|W.s8 d;7G"%>U͏B,)+TY҉Oԛ^s>\n/@Oa?« JkSXO;%H j}'f?x-Uvjf&H>2jpշ"@Z˒LdH |y_M嵪ėj;x9ǩ٭DKi!DX>Mb@W~jErq5$84R)QLr83h`{F(9۷=9wxB*1yʎR,#hLGo''3`vJD!j,R INn~]Fq؄;4zk~8Cg1bumɺ³ `&W3ͦ (njI33\"3SidODWae}+^n5tvNK@CK1 h\&%%y@#wM~/.ÑPXsdk(Z.V.ec]qgg^ni-Kh n^lj Ϗ3X8YXZ@g︵~`gޔY<.Ib:]~!:D|&YfZu w#u&oSC@~7BqA9qv"۱9Dž(ޓ!B vBD2DBn,Ќяp`*c)!k\ G؍j4lD'k(- H39.K=&o3`!CbnH!ğ]|fVrl̠M#ϥ(ש@ |E+v7*DCYsҾ i$,?*bW4}}5aH$4x2 Zd[yvUY~;}ν[m\OV\%LW" XÒHKMk4Kt|.iW{J &[:BM|6pZG? #[6_CV;bD,xڹ}PKS khVE.ц}- 0uR-`sa܍e(xќm"bp14CA3>a:D ҕ N OggS@G﹦02rڏ:Ԇ[ ;V'K鸮G\;LWGn<: FRE:+K"|ˁ(;#Fb@XfE'4>h7Pd}NRpϿ/9nz@}t庁GtB$WBj)`Z7!+iﺊFO*K"tAxbsshMς* ?~Qtˉ~kTXwynWKd8@ T8Nq:ti2abaXzOXiحNr+Pw6o(Sz!W2R()]kQ>fQ9)\O5v5F5i-8];O~Ccұ׵O:Zb/-{5-H@á^ѼN!5nk~{'+ܠxj{ z+WڊFH)U2kA@vڥ1w;nu 8>shVSJK~$;h_{u~{p_>³~9ֺgk\tcV}v92!h 8$'Y܏KHS@wPtk]e`7 [MMeƚ%+|7(+.5XY5~کk#q8b tUà h΅U˧Ө_0n|?h_,+LW<8&L%@q^Os|I|˽,ۥ{b㩏]aLm5Rc d\@t5w1p2ACxSsj)gweEoԴPh<]'YA>]A+e yZict4TQ>uO\ K?Åp:$rĐihp*VRttur^rҹ(wXl 4Z]S7u&CFT" Չ$ aYH*jp%&+w85+$0=FnўL_S4Yc[9?t^y\'I'4H$jxbSnVt9-۵-ZIu.Ca|YK߽O]5RL+siP~~սJ=.S᷼G <:7h0tx0hߟ^r :l^{+:lg4n% i!$)P5V*ML{S^ɡ7 Y0׮w7S'%3 v 4w#L:L)bc2k$keJc\N ,@?ْ9ӜvF#/w)Zu}wkW?-qs2v& !Xfs67gܨsx=kXG`uj*Qw8/5Ɗ6QX1䂵JL.Vmpy7Y;e =q3, Ysͫ)M\vpieun7xAYM-zQtwuK%I D:|F/{͝}- ܀M?wyjeŦ3Jmqxa/bWeRTFJ06\;)>n} &sZzyk#חg"ȫ`^?M%Tqs vZ %8mD6^4GF'+(SFě!sɣnP 1,zq zܷ9^}͆I@y:&Jy-xx-r/>U?w]>F->gkNf5q?ͤ[gF^ $ZcZs̠cŹ^I˫lGS\|_5FEWߩ 72Ա L7h( YGOGNQEߘ_WKAocЧujޚS1rWπenCp5b3(k{k5JrnLC5(^<^<<&;hCyKE'^du/3Wˇ~JƖ&s=pxz6ݽI:/jjܴw c[# }!n3m"ة4: I \iJcEfPoz(Gꪸ2Te4o+~l\I"/-q%~v*HF!pɱsChH28ķ ١G9K{+eOҬj{fs}6()|OjMf58c?=멨wz<Ż0[j$"aXսsLy/N$v<ʹ  DŽxNܯni"r5UTOc4 78|#i'r`&@epIJC}V:\)={X %v)WJ;4Ω74uݤ+Ӂ`_OggS@KH﹦0;-;ǹ `ԗPdөȡ+])ⰼR?pm v秲)Ǫ>C#L$䦝d ҭS!A!枆!IҐtPž3m(Е8^)qJl4u}heɟ'T-$#VMA!(HC.Xһ; -8ܫ2F 8-9׋ix}۩+<&k EڱNuwrE&E!d$v ǐgh:bK2vLwrxPwA(هXI';Fx0iAZ1d^xIL46w7sz>?~ܪHJ){g8UV@3+@n HvRY%+)7:Q᱑ʨ']{z ;|X1p vt.e1d@p-FR+߈d,KqfbW^vI>z(ôeD"|"Detk##`P%`z}1Bwo錃'jlʐ&1c]!SQv+H4Ղ:A,i%WR~+vf.@05Oha|vm.jm3_\lQW%}kUsNj{:MhLw$p0j| fCu:QQU}Jb~"21vlRS4]Sj`bRH8 ^Ra2@sO O)QvCMܖڹyc\%OtH{9(5, w> Uv"6 $BkBm -H#0*Z.F\Y$ .~\n5'9[S5VJqFT;4ۮYzyLygG囷Ԭ ꪪ}ه BDn`m8 pOt' %cѰY@9DE H$OxÚӓӁ1JM-d`j]dQɰ1iU>% F Os\txUkbof6;4Ɋz4pᤜ3.\~=x,4inP̧vMjZ^:UJ`sY)U^P?E)U_zàgPc-.}ZQ4xH{cCHH ܆`Y6Gp,׹N҇rԀgѻlΊН{ZDl3C$D9 ?@Nu"WMi z˭/ehBtNH_?M9Ԉkk  :S0i?H׭U2tl.0v9' [Izq\fl,.?qc-eq3DKB D{jo%Ԏ{_&[a ^-sX [j?̍%l%bGi#%i+mq;et?=]QvZFN .~5c^N ;}1A]+>F}C3RvH@Tn>lT39%$4Lp(g/9Jq/OO~6 0;:t9hOf`X&WRϋ:4r u*ҡ]=xnfݔm7f2|\6[,$*aPYt{:(TT~F$;8 Ɲ-7\\]cTZGKIૉuf|ɉ뉫wc?nrV;NSDUӓ&G\7P,[Z ^[Iq wR^ZJUėdTJiY~}go!ߓ0>xvc]Gs/9~rGI|sDo!VtHyۧ`Eq{[ҌqBѬ/Iʇ2:bӪ+ۆ} ; k~Ž`J<>[.n/E4cu趑]XkH\]W>-Z{{՛vFo|J_|"kIط.])C㛼~˸:N')[*$>X"4}5[`uhq7`W4OR!2gT)٥${1L,!*Uw?!\)Ln'dE ِ/UPZ+Qƍ.2Ѳb:˾vqx 12~өg|xv3@t0@&9" G( e,E_;rJn'ώNjk 'ҝCB47Sۊk"8_|nm-d6J1Al9=, |LOJt4.gk?UK/wIdm~~D@ @Lt~%x0t%BjEڐli}G-A I*j)=L %/EX#\6?0|]~Knn> ]r+KJx wT+8o~:M1{7LF!cf4w[V+%lՕy' `R&/w rwgt>Y>@0Ǭ4ǮB*QiQFlX/ıl]aZqe{%T>~2k}.]yF+OCO<<mq+tuCb7N)VZ`膇s5CJ!t4$/Q{uX( C)3h(#rߥq(0hb95](+RLx%i gn!%8,*AZ">\}i& v$b9 7bWT K/r5SO'/]G.:|v5} (@φV<ha !_ |_j˘鞗cdoVosԑGeދPxQniEknuiNC0^%m(kYg 6K/c(o&bC7<޷G#1a #6К:@hA{c$u P(.3 ͪ޾6N &^G+b5]*A'kIn H">s\^<^RK %)]Ly8HC2,:3+J3J:*Z@. @]GMBjԁ :] H j}V82cIBy&|0<THӋ+-e&^<>'0(^6kR?>r˴Pο2Z3qzݘ)nQ;؁h!7ѽ8V(sǠ>b(RKx] Jش~Bczwˊ![۹D!@"!,oge>;nbO$,2|8uqlhM*xt1̚.]6O |(*z8b(tI!NLd̩ NB6T_$Ufמ=w_ t+[j2 N*XW~+q)׶4§z(\iyGθe g~ 7,uUZ dX@thO5nf$(ǀ9TK9I@&# @u: 3n@ !u4K|Mke(OPXX \^\^Xe\C'k[Am:I IпM@^%OIFc{^;|NmP1s٤69,=v/.%4uM \>,񀐌 jc\{C𳈭y,Qk^)q&h/w%}S\iy[.bw8uub;wDm|<@ ċN7mFC||wIjOQVX;(t+ceQTj9K@Q Knq \r]S]%h v1שLJ&u^ l^ݷF:1}oBH]~=GiIșt5eky.f@І$ 2rbhu8K5b[ZۂVDp 1pa kݵ2Qx/9sr ZJ=2GVITK K͞n6ߕt~<7dV qxi\Ba 7]"<ԜNKCznS:ZBSƳ=g?JboGb94{WO4֍ռVwo. .fǑngwY=OP&~lGngc-.V- v% 98^\Չ *[-Q3VW\{nta[H}q9?-@Vf!E\\1 %eus"Jv/r;ח❘$v>"B^R*lCBaݳDf.v E}~\qEk7ePt(]+zUbN,ƋǗ*6 c7Q` ճa4+ۻV0 c[cS}S!{0r#jfv%_Oz%Z}}VfXiZ7(eUB,o x2{>%d`ܧZU)^w9WgTݎ3j S>qjc՗y]7n#IM7:> T0b=cRI> !!e^Rl,x_5JJ>Zh] aL@n G\E7qrzȥ=kVbX WR2/X͔Q)YtX6NYg_`U| 4InC t7~4rZBmYppmhxē5^u`˫uZ*F$ΣS= QhMT,1 h"*+SW z">=2ͺa,4䠂n1#pV$ 촶) $uVď/@wQT)ovlaWL[.5CȾ72L^{/rԊ[;C->ͩ;L`W=z5wرI뻇?]zcϿDKC%Qհ)me X%*6. :i2ͨD֝V[ _O5i8 sY>l^$ Nܚ'y&h *{3O O._8Ņ?yCcl}Dn%K\?s+Vwڦ5N^ko}?{]%sV<&lRoEPb! % KQ*lIFkIC ]+E7M4o?~gJVR׎+jf7Z!&ψp+恃Y; ?Pxsۤ4 d.n߭m~/P'߭{mQ*rZuŲªJnR Z@).sP|v_]tFNS|uL+:3/IHnp$6im]Aj0 Fwx ˠ DNЍ':C>i}Tލxű:z]Zk5(1kqY4H;P,ޣivF+֕nZ&6\ZNB>9&0Wpێ!vdKOw6eM Qz$#{@ܟ,By0"QH^LQ&W`wG2bjL")^zoq`̢͒z6Q텽V?&HIrO & ߚ^":= |,:BmrVZ0_^Nr= 7=KZ @8W;)'LF'ϑQfh^h3Ny6'$ pM=F',MEO@'Q#!5M0ֽL5x%)>vBcBB܂NHދr{i"XĢ;=- xc]5@vy~$6'q~b X-3] ~(hB9Aޗl\r# 8#Vv"X̙;]!dZ9ם" )P@V1!!L~m\4ȑ^^m%Nc.!M u.ė~Dٝ~i'[:}߿MNO* {ЂOX^ }bj;-&/e૵یw#"WZ{ Ln+!+ ?H^;wx7at2jfN®R,/ԙ{:۟ w:ez~iGw7>>:WYZPYķcRiH̭#ϑeύ9ޱ4__~kU_ݕ-R*1$*U{/Tw9 b֞LXcROggS@I﹦0l?k6՛;ctilҔ73/ +1JO{Ok .æJŽbmjVܒEbVR? qt(ZSf%$wKuW ´sBtk=8MFnLĂC >GEp͵^χU3x%) lF}Yխ%1/XHgm3Cq@ bҧ͆V Bp'L%iVyMֲ}jnNܻD <4:y}&U' >\~W;UC5O`C|l \sŕhF1ýUJj}z+v>턝WٍR#m4tz0. Rr:DRie.ʼn* Q#0DϤ*ŭ>\>KvU֐R;,|(8J-3ltmIVZ 䅚Σ]+v!i>Jٽ!-c e{M{w )ăii }9:c%̟ў\`4kI* "+Np RM@.t ojesk4QdOO7ۻJP\+u$ۢ$1j j%/S!_'0Fp-Zs ҿc&>3vYUԌcw `B$*u_Tʨ>+d_qw$ #pa5W b?} ::90s5OԔ!Bo We,/D*tR8H*˰:{ƼWv.r03+PViBPP.+FK+ ϯ;j] C1@WjR`!PVҨU=3jOeR#?aPno5kŒqӎF c~^@ȩ S'+[]*cy*yZ6굨K*!`T!q0==FkK>lq;vJ,܆GhO-SYvqι:W0|] d./Op/^ 0P%"H߸K}<%9 YcCHG>y:nIMyesgE|^ԑȕ9\I5 \aATNǠ^2".6g ʭn[E4@vWK~KkϦ|"آ[>z?%,JR%:FoBZ0)Dm@4# dFd:ҐB;r<1[I-mXw"*@a03>\c~h4%H^Q1jy?~].b8;xt=?>~yn#νZYDx"J"iľyDDdUJ S7nZnrb?%ŀ Ԇأm j `]iW #扅jו닂T8%LL ] ZI 4t%ůSqz'쯵"1n>խWڱ'{njAӀat"Z$ /^YsR_ұ 6"ﲅdEqU PGT G0~=R~AHJq1? qYl嘉85=GSC^]!9n!c}\ytIq`u+#73{n*xEGIˌX4׳*Raڬ5 ڴ0JDjdTb HCR4u/6_cmYG}Ǣg7j)Y)܋U'!,Jꈯ\^;N5Avs?E:.atq[EjYa~&ID/NW!gE:|lR[8 (q#? K=]}N@>aEmfYc_VaRB;+CC #+8;} [5ДqsI^ 谹/D>_PzEyl=Ư/b^o{hE~vC'i-a\ok=L5,Zpg^(ҕ$(7Fw5?THK>Qn]Bky'v&ۓ>Y9}aG..?;Jd`.v Э)<McfuZY`@xP.HI—J:GKpA}/g1V?]p1EDfs'L%4~[CoZU٧ۗ3eű7yye޾"6J4DLlbfsqt!''Z!v7 IkY(ij#D p ET>mq ~jd Og⯝u?fmE0~Y|ǩ]~ q(ݵcc|+3)?t~}("+M3~)R2)yӀYW4Rok!E, q!sۍqMM>~TE 'ǂ͂5uzܿQڪP`캏ZG/I݊(/'|m7K]IVg]gFYc!gRZ|ieNGVOEsPlJUSDYFVBBrMU\c43k5u@3¡񰸇kV,n̞>v'ߏ?=& uGW̯7li5pi5CIj"_R<,y%F־ߠlCW|~")↣0H3stB@*|>ƽ#V( EW:_Wϖᄟ2).mά߸R'ok?(W.>G'xD|K4Q:n|4ʱCy ˕B42\9]l=-`حRER"(~KYb!E{c2k!( dH"mrvO_޾[n\ʌч={zM(aR+m,`\ BibE&ZS,{@k+[+b E@26 n&Gx:i>\(Ͽ/hL!{,R<~<K踩rd]-,Iٰ`X$ jZV6C$Q)ǚu @Hb8'jgFRĠ3ik.|x>uQZ1e/|3Wb6ܑ6ZOggSI﹦0, -))&qt%#"%""#&%{##%#! ($%<>z.&ygL%dT?r곧F^u/Q{׿io[ }&XL_;ىj{v2|YH1wuywi<4L?ö[(۝m-ur 㺵jR<ډ`kl &</vUҲMm][|֖VTcH NPGI"j2ZHsv Q:tFd~/\V$}r }M,Rs H5(+"pź\^ك@:vl; _Ǻp+ڮ)NhӖ-S,F'&S e.6!3@әTUj<+p?Rd'= JYl6*=s3jls=( B$мroV*UXRU9Wq +g,KLJg<-BV>z{ɓu/>~:NkHbenR[zy8M0 ad.mB0ui`t:Xh.n8 bM0)RG\Ii,)Tw%SqSDLD <i7N6H>4w~Po%Q>1r x!8ֽU/رMs}-  ź%$-&IgOY!s؀Rp2#z%X7(QqQ(7 vR>:Ns=o]\6u\"]y{;$8 n"' Ԏ;f]8eF,)q؝3KR5E>&F%24\g#˜O"_w[m$ %Ek3ہJV&acM/&pݘ؃9x`e}*LT$1rDPBB̚#$20.<5D)3$!4*?Oն!@Gվ }@?ck.JPS.4rq(ZѪ(<&$b > vrilNjRK6xMljv6@q 4 t"KC*?ш?yvGVu NQ$=d"[P'y u(DU"$P1k%B^MrQc-X46M  QŠP\-&FmO3Q}mgy'F0,|/5|@kmP 6 \˪SrSeF[q̈ĸ( ⢮ZyKzucD/bZˋm8W*$zTPеҗp찃chOj(t%zP 8).EAKp}P" "~x({NfiYLw9M,|؄+y&LZ`\ieإBlx5XHHBQ  .dO0ԉPĢYY VBd H HV{5:-EЄs]ZZ_\p*iʮ_u%'Do_%S٢S%څ5oTnva}r\H_XiYTuE"QS $}T <8p@pˋe[+|z2q.@\ݖ)yћPMnP?dә\i`ڎj;FX 򹕍"\ߠOl{_._fxaF/ 4ɫL׆U5$>~Z nMߛk;WL@ _N]X0/ƝUەQV\h"̋z#i?!QkCCj\Y69\!gt0v7~ 'vlF\^n1˛z| j6o4;ap=ڊw XuA@/)!>s#H2)EJ&\?펉ާ..~t `$  $)7HJl}&Yk&_iNKaqXYvt2!wl!tS(~ktG* 1fx.zZ'!!vк~$xXyf/&$X*{? 잟m `ߠ( h{F`; sq _Zn.5!op uv.~p^Kx2! 39@j(aZWx%"k/Kߵ17(*@zim^iZ1 h6TX;BAp (j.^ 0hX^ rJ`Y_NZpS#r)=a} h,}?Ǥ8/`m߁~ź \ "B#bȵφ{l\/nSLY΢axӸEfJP!ty+aArOݯ~+Ý^/o^4&>6 y*9M<Eeq>L.zL/ɀV,єRe.֣JB!b/B'JDqT^ v4q@ay *32``uX'+^Ysѕ0.OggSI﹦0Oڝ+!" """*'%|zyv!"!#"$('kn)Oe`,@_|JR2>.X`HA H lc#H pOEΝ Aco D"D% PFkb>;v`*V4P[*ҁ =`וs2 gn.OO/ךİޭ DHd`hѝB0vu)x#e-'^nX (:6DK)c-G(`8=oTx K)D@^o׽GO @ ?@܊(Hp!֚uEXV'WcDB< Ҏ% >#3@7b0KNt&>AU÷o@j(QF_vyq w΂v?c DMFd`=F`-P*)~MRvfn@Q ֬]"N1IRp'ozG=^~Uk2Es1 ѧUږ 4%g;Wt@p40 [;).#/ԃI * 9]EPQѿFD!`L tkM[]vT0KL\٠םi0Dۃo"1k7J1T0յ3\mx{Z=x1*aeWkL׆^eh6թN[b>=Q TפJT<}?/="CAd3IDW׵Wy|G{my܏^8r&G$ DQ5qmp>ZRx]S;9pt*&t[Ρ*;}e RXϩp2:NS>Dl],+o$̒-dw46ZesۍH봦N q@SIe{V/Ŕ{αb*bLd俑7T/|(,Qw=٢_N@5 loXZoqG@}wDM\e^x *6̊<(j Fu|6lOxNzˡ,%؝3L1,J܀#$Jih.D!@)ZB DyΫyXkbX/_$չ, n p;P$$^n }E3(؋.xRj C|Hp5b)Qk F;a3m `!L4tB }'.nϨl@ԧT0 VDV;p H{.p{J Jٰ30.Ri UH1%J)tkp۽֖pA/@πq`p4 P]4һhg\t(W)t0$kvrGg-5[ 57<qQt$#vTR (  '5g^}޻}z M4%Jw! )@&+@mAk`6jDmG}7G G:0ĊQIGʰ>\)gV n-1/Η(ҟ"Qow\10<|e,BYHZ:@V5)F颚 a!î 0%"ƅrp{iF{#5GЂ`ǻr]Y/1Wn4%G@{|s~^(@4h3i=[ @4 ܀ꁳa+hx8aX.X?zkNrRe a=ʅs a-&:%&H h W FK9hY, pc|Z~&8#+.rZ¯llZ2?/ *^q(tDDcJG`y\߻?(E ,MHn&2@6.әkf-F)-wuKf%RӀh~+.x.:S@ ;'b$EO ROD7g3̎wz `E_k%i~hH^c 4-V ±B. QjCȽLU`(h0 G?fP0, aD>|a܊=Ӫ9 \Py\D>Q"lXwġ,?>:h7WyTUk_X/PGtIJȦbQ (jN0إxX~[!CR4m)`7HN+sJDi췁cwjf[v+SNπ8m]kYⒷ&CH@Ҏ1X:Kw\a^5kwn0^;N`4LXc BN//UOD6ڂ؛:egVFqjBjM"ha 6}pig|M.Ňc((BZ٥1,w*mB[~ vCg~][#f3> *MLucz~MEaFvT;h Nxn xh=biJi4c0o{f;Xt`sVƢ[R+ jG*X :H5xCӬ܎X"&8|lIb$JA:d `Sݰ%*z~NfeBHnHn0 oc6[g0~˪a YQIԷVOWt떆!hT5*MleV0X+d$^ \_O4M5Wvzh?1y'<4!-^SpRCڹ*+ Dxdt“axgRvKƄ#Wr#B16E^Qyw=5PLa ~tZΛ[@#W%^B{Ŷi 24'؎<67L`KgJ<w/p3ZMZ62*v6%H5x&a_"⟈"ŀ倍zʼ/@?;J Nk?aўȔ^d@  эFA!pA" vxy0LH^tJYд?pXEW!7[-~n7?|+g`fa/7i͏@;"Η$Ut뮗M>R"1G(|\J,Mc#) (֓GF$LSt 6wMcZUN[$TِSaC_Ã)%KmxPxTTLdÃ/=`X mo N5efI\ּ~0 le;QQCQ\i?A7KFB}&ui<^UhSŃKq+1Br5|].(Ti҈WN>ӛ67O]dפFq FS+-޽ۓeOt(OggS@cJ﹦0W+"z$$'"%%')($##'"*(l>m[q* ̒XTKwxSφ;eZ7`44w ɬISkH~3NNmijX+͐v%2}Ѣ >_zځ~["9X7UopD$>|fV-.n ɵhG.tU>S &(1$E}B"`O*!b@,/+}{-ܺ`U5kASm@9 2zD,Je ~ę;+NPQܔ2p;`Q>%:ALJa-mɿͿT[p}!"xQe ӱj&t'Qa@Mߢ%"ń! ud ^Kpǡ$Ϛ%r%m?p+6(ǂ(ZpУXQxKqiC  {`@-'6"HSB6ˮRTg]KnKInU>~;bѣ,KRzE̛2;a"R&FVrjsuWK~A0E|t@QU J^a3"FGug Ta: ATW(5c~;t ,O Ԏ^SQ.* Q2qiy8|_jZǯ"I%!?Zke3TeXtIG/0Ya"MnMKzdzMudVyC+kƶ(HNPWi Kܩis B(({b 6JUg-n_e@YI?iE*@A q^+qɦSkك&m.)-V"ԏO0R_a<1׷Ӷ{/6zEmG)PnܻȪ4DյqpxwꪤC( ױ}14s~5/=q/;qj>ޮvg,"U6 {B ^CZaY`7!|D fY+,O F竨|j$fO ˎy+yT 8Qk H99]@] 5šBqQ~|Àb%u;(LqB,ddERj͞XʣVM~CKPFR?%аtgV~t˔iqt%v"IR&]HƼb̳86}DkS*p5tEeebU^M,)+އZrA=GY6u$>^_Ըs%J0<ؼ t/K==wJ)Ė;p mJ*0o `= ɀ*߲7%]u8 ^M7<.'W#ʥgVPYriSP%\_\ ?n%(gRD#BM#iXy؞h~d;"h)F!g4*C+wA#+xFrK$D|sRADb s9z -@Σcm _w)~hYQ+tD$" FO` |=4יK3/YM(8QZH#%JL@*A;KcͭFٟ8So_L*_xM9x]J]g{%dXLՆi6柇۽k WHutU&MLDю{O i3_"F2UXb*MɧDmH@PWOtx_{級ڏ~ {ۿT i|@IӴ<)07?,d"u:\ނ<9H%eRݮtTX,yEѥ?XoU8~mky=ӚL%Yzkb\0 'fTLr=h:g:&^?DGXU 蜐$9i.R>!q}e|qUnQn)V~P@R9 NDu# (>kER} /snpnmR/zU{bJJ?6+#/s?QJ틳K`KX+4-;im>bL@@̬':Ye ʁ:N1owRGЙ " ~v4X5`N!.9O'BP'WƤOL@ _?V.u)gu*0e`HG9ty (.qo@Qy ^jhiJLim{riA0t;>4@WD)iGvLFFޏ)0<6{K+`(>*C.HŭDyJSe9"p͈F#(XC U&`QMH7/-qpU1QLb1]{6Ο)(ׇxY+L Ffn\nYqXQ]&zXsջA2 )W$7H#^ևT1 5>\Mb8dϽ &elѵq޷0v}W[,OX]쨃GB 0rDLKM9)b&{Y݀ABQ,UʸX}S\nebklNpknpNҒb;pA}Yካ蒈dGeף&o*DvWfCI;X"8/%汃D`$uџJeHºR邛B=3RpBQ9t9U#\OggSJ﹦0gcj2%!##$"((#~#!"#$!$'(#%!%"!(%%K mrz Moʩx~Wz|hLL@.-鬮 H*\߇n^b 'P*u}PI4VT*,I 8&#($">/V n}CczvGvDᏋn^/wͷ8`^hk9^T孓_K/EK jxƣGV'_߹R""Fӷ8ЎQD|BX$SIbz~SEQXߏuDxpQ6y_zҝfױ[9cCo:JTDI5 {യ^x7|ϱ֕|N>{ Rv,%7\05?-8_az%riƙ~.y6YLQYjdM?ZsK%ݴtIf/LWY*|땵kJ[ p8O=*Ƣd o)#}ËIeiH4Uo+"x^0"QBj4tӫM'F+KΉ4jGJ^r> 7jdy:"ZA$z@OeD%@0A{rI70¢1[:oF&+X\G>%GQov< ݭ^kl-rhSK#  PL`؍8Ϗ{]ih|'rqA.[vby;8Y*{84n yqQR +IrР Gtwx߯F#D1z "MdD8؂}{Ŷv#JT+fR?IHt D1w&0;$<փXR""JD[;[.CJ}c}*'g ,á.#vF Ge)!ZUS\*5Z~ԐoZG!|^XrN,Js%H){ `[ α0/yz^O'rۀ.Dupl @a5 fop ~nF۬ 3`@I ّIQy-%̡kPƎH"!VtN 'J˶"[96>Xr٪^uVQ?;MX:@qJmpcD91*[ttKQ,!bLz+(" 6̡Y 6tirJ]G[`'?gXwLc͉CQ"FI$Rk/Rl'ЁRDL n}PHg5b$TRh%` 0!^.r,tJ `-o3DM0V!RȕJ \ CP'"Z SM<vmQjtvWk0$07,hmo{EiN}ﯤµ2(>@6tR4$ JԢ鶛JSӅ82 3Tؽ̔`:h`@; lU(UH94B#J U.L@ru8S$ 2;JnOzڣYGTՠ4ݐ}b n;u%Т$TU,z_B_@>FA7YgլYcL8W?[ev{WJy\阺L>1~ݪNm8oSc \Sm{`-y-2\#t{}JI4lhWDVtoXFۑJ"dY_mЊ6 >rΤ uɋ13 {6v졃c'ڇtgfέrLDH5cЂ9 `?D|jrťtu18m"ӑRvDzyZR5YcGk_۟"4ΰ#O:@GfTqKb&g)SD >6ed_`YQkL;!":a?Pd.f zhT6c|Nɂ1W͵ AGX W ^0]"uj@_t$ЭHuozq8b둆 ?BV,1RΝj| Dw R{b4'ZQ`>'@ \)d&1]|ហTT @T~; qh*HE/Ѡt:k=@vD+Er~xv뻭Yߖbۜp4H/`=[]G !4 !ʭ8s+2j"EC'i-G.5"~6C nosC'2Up /6*lvEۏΒbW`@/b &+5 j=c>vP/a: AZXuB)V6p v5kfEe 5/:Ԣj`NOgdZSu}"FtvÚp* jN$wcRaRRӮW)lv&,ċ>F(P7ρjG.~Kf)UBRkȌ^eR|lѠ2`ic }ųKYw -NT% oVEnU6@F+_welVpchW!M6C(A$"m/O>;6rb"i0ڲGM[ P"JPl>ϒ 5Z^a3= [`(@o{Ѡ1 H9DrMA VQ#qe !UEba-t@% d_]xq>Z8LOdg֟xirT9!|!':A籘Půs  h;(`\1ucJkUMAQ}JG*nȉD5@(P DU5T^])42n޵azHڒuT6t?`mcu@J#W,17S;m'/W~7֐OjL ulG= y͞$+FלVT (ۋh}.[lF-X7~ێ#x< 5tT~%:4Êʫ)4~H 8T@:iz ӆa^cvF$ 6E7n.",VX\YZ=d4D+Qٌ pcP61aDODDZR?GN N­!FR MQ@Q_vyDpp;GZs"<KBw\ ,'"" I?f.ɓ8=M߭v* !PA @` ЈH z@a(t܂]B܀J,ۻvJ.$Q_Xڝu$@LcnU2t9 _V\$J4!No›>lmGU">:*o($YVGkh"b "Vc?qADK7pK{ i܈J17>\d +eYs"ǜ:KtǻX(&jDD(>O (izb"F t nRHM֚UhPyДX! |75А*lt@/Aڵ֚Yĸn^ ֤ ki@k)5=.)+JW@GN'c$AJACVdY_}_C8]%/?@?dn3 H9;n ЌRy`3"'~kx̬E3J6JG\4t9+xזΩ¦& k,dPzTgUs%8@Ұ9o.`5 n՘@XX\V? (B-+)u).56:6f Ұu5{qp_/?-c_qr|D""B s!..&+G艥G>{W QAowMaAVӿzx ``#n"Y2CH^ D%!<*wJO\IO(+vKoDOZzkaS 263M]T i6/ͱ@Z_4$WCjb DS?Ѵ#lM4㉚< pJ'4Qm 1+ɘ9OZqǷF%an*oOu L>+ۼ}  e~I-zeo&dLSǭY97o'l=5:dWa*H1`%%dũxqmک4v::ȖJ ntϘiO&gȣV>|++JqQ0F۰*2z84Õjj7)Nb]7;1;\'P}Iv ^9^}:UxJ!` A ^{ְNJ&9(أ·*C$㔦4?)S =1 i@U6?,hX>ɃL]V9׀Z[0="|f,\ "Ȃ+be.FZj6Ym5*q7+ 5!4*9fon~$6JO= O'~ۯ <a}&p  ` r kW7L!Cb<j_dyYEQ]~5,ژaoWv`˥uvIn8 h˘M{=6.Gx@.@#hGpٯ;aLtwfL;B+N^6zeFL/z-˓XxƇ8C>D .6S=aU5,:uM$@c`j"2`NpN \;u5rمroBwC LźyS\!2#)jx--jc"}JǾ}HB.j߼ҿ[VT}`4po_@* A8UGa"TtJ`|ޣUkiK0:I{bdd|L]]!}( /g t pOB b%q*m*&mS`E7(R&}Xe+.[^e룽Īܖ\"THԳ"9)XCM>ZYgB` {9ґ@mp@I[P 1bzmd@2.3T>T.~;vlC4*.d x!]y?R"""\X@6`.ykl_B!߿O P WJLPdBBx `@ UGa K.zM^ĉ8=C=6|kod#Q4Wڋv~d360YJw-0 ;Dڸ p/l ԁh?5kL< 1H@vTtI"q( -i< >>dˡ 8ަIC`AEѨ4O xY9᮹?9U~'qaoo?  t3(HS& 6s=Y}%A+QծƀcdHgQYnHԲ r3r2 NKM"~h/&]nv"`?$KoЛzE<K/P `\8kG\ǀCR.7 Gڪ8[n``Yr{NL%YRl|sc?Do+RHv0Wr:)n_+x%s:P{&VB"*.Z0r[#T|Z( ۽ܾ΄ E0rY5hɤa:ܚUhXU-1J>%\Ow2wژI~s=B+{p,&@_i:= nP@ !R0ވ:-SrxiUx5+Gv`:||K ^4 z#^|ixvP!0U-?5'.! nM=T#}k⺆!i\z_#+nQ z`hX `>L4#fM9pe; $,2F?Vƀ*#?EJawd|0wՍ` ǁ ?IdԐU[X=U˩RS@5闣@D&!]D$^zv֒nB :*L{qgL$g/d!")Y m6sPz7 *2 HID_I `\#ă䨁H`M% ! H |O rSs& AmCR0z:ysMӉifȇ/Nj?"fP4G€"cGTz4"CtW{hroM{t @GDUAF "k(!VGMDkZVjxo'S \֖C2WlHYGmn'x TsiG@3=vcdr|'Z2Md2;7,F:l 7Alsa|4/#w͇/>lfT "(%P[2\}2ij?s>~IFQT10\]Fr֡znPPX|n_, "<*T`d"yecOggS@K﹦06+~xs%%"%"$)+'|!$%#'%+)~w{bN휡ǒ[K(n>&{aEYPGHDA}UabXj` Nwnv-{ p? #.c>@p#x>)˰c:n)PY'\.>k` ~fi4?FsKJ:9M `vɞX2]B@$? M-#7m+^=_ d{<| ޽ rA-^K`WDM-~ 4<*H H#ł[{۩&Pz˅CW qPV.BrD(AWR%)mZdv7j: nBh@z AԃsQE(@\Qރӏ3X9,O! }e+}B^+Ҕ+d XN5L-|!9EH'uK `0,*ZOl6m_n} HPI0]=,$7jDOd>&[Y4RDDc*%qԖ}k0j7[€0@``5 hc 7ȁJ,Zflf>RRo!Zh%6"\=D:];{_o"M1#ڂ9Yw(;(v5A8XɷS0`صA@d Af﨟 Y/m.;TۆFۇ~^.V 0|7o9d(1us:PT׆tU5+/^ xJy}cqʫSFLQj"xg˷hϰ _>N^"l;\ζNWVp0?_Mg(|9*vw5eHr”[ff:{Lv@?"L΋+k2 E $"" Wv2]m;ϘX9wHd0?b!$H'JY/}LʥXHP6DYnr"[vtL nP{`Rtj1~03 '3B2'"" 0! JS:$#NYZyX)M . , cNw1|>h&d2ceA}bZfx>ild\PFz~Hٴu Xق\HS:wi+/Dw[ #`(ȷW `A̅ӾƬL%&do3P U4p ~.|FHZ@(K^Zk.~$tb xq' $^)(fQ^uop*Mq5R 3O_AMZʧ tmTM(\eO+n*tC˶c(5Su0Li@X9bH^9ky1*5Hkut!LjgSF{!i!ׁATNw )k{ "cqLu}A߮F>m5^ vlaCs'C9/pѠ&-34Z%tkߖW)FMT;ݺDa?@  4#vM,p,X :* Q彸x-aJ`g@p*CeC|m#A$1?gfN! MK_o~lwB^O$;x]Y!'q7-XQ%\ޥ +ƈ^q;:s>f\GAA":)Ǵ=iY͵Qz/Te?`kqIh@]1x@ dhqHTJ*iٲAS p 34ۈ$}BS_Z 6~/*֜U#iIu-;NJ@>X} Jh10`ܗlvQR ?@jWwps!aEPBEZ GDSqӵ?\zzmKI|WLLp69r6덉@ x޺{gLՠgWnMM{"&m8LLu\=i)ͿF"Nb Lن}m;\sU ^A蟰 BO 8?j}xtwAڽ[*Cu1:%曪iIAroA 5؍ )IfpM%f(6,i7>@“E?aM+n8: WHŀh3:&&]+kД0ά/DlwE<fBEƂ%)>MV#2䤽*x/JBO`G QJ)!ަ~a~z[NC20ZE/T+ *Nq`y :-'MjE~ DYYn^i2 V.c'C2y;*%锈1YGU'?XOzcusE 4br^h8u* ӑTHhSJQL;z =GL [}bHNj|~=5wZwy[.*M\ePѠ ȉxpPV)]m 7г*ӈZm10Wߐ)1S"^+ed?[}1zZ\ $lt*9!BD%z,_P-;jb]?!NW 7P <?X(vӜ",sc$ꄉ∀E!nbpoV^[N&rU8ž``տiPA"""AAIDD,cʄޭ~ŋ*@T(`RU^*ȅo7:s3($( Ǡ0 \)М_o) TD3UBO+2 IA) J":doL!'U@}gGqMw P> %6h ,RP YD@F#`@^OggSL﹦0|uP2#%$$!")*#""#$"$%*(# %"&*$%}jȶNY*rN8j4QġMCm"|jARDW'o=/\W⫫ Cσ78v!svHo:&XG!ó ssNZ c"T7fdVQbOa~O޻߇J|qtk7; KZH 7A>T,Hw kQ/b'!ܜ׃̀_@͜aL \~Kb̨Fpzgql16\&ʋ"VD#%J!VCoebԘ'.3ePW4탷O8[nK_<X{[H,VqB;B{>(^r.3y'I򃩉,}y6ZDsRpdRkwۻ1wr5iZNXVJDK2<Xjf%AA@E"Q T}",ޛ#9^:r0Lײ@kEɅhpj"(B?jvT`7V"ܟ@) 1xavp̶ſ5ps&R"aHh/#, n_4@(^EYܰ~o4.ayJ΢}v7REU ZԈ\ ]8"(hN/ tꮳ2yT[AQDYEcx%$U[.rMj |"A E<}z^kEO v4`~֢y6aZ w$J\8 vUn TOvE!F?AuwAVX_GO|@7ދr͠"IiM)4 .( F*KLbq;~  0H3pYlhL4 'qL9g.`p%AjDQ[le#)!`i4 F(ECpAv5U\7v6%vVk_Yǿ];qƾ m ] K\36G+)F;R+:$!PVXDr#"~9 JxZQ@b\"!-=4kd+ E߿z_k\N%N) &?՟~OaGcbMpDuD;HKD%=7 "ʲH!A T*8 + Dx૚<υH;([!uoD))lv6~/|]LDD*Z-$ ڋ~O:t_z$єkZS?b:&=$-gKL>63u OUѧvJ <Su5?\K=/=фw2e$vG,*Gx׵>#&bom<Cjѣ`=[ʾՒ_{DQ _Δ^u y|׫7ZFrЃ*$ZLRfڵaxtv?2ש/=9ۓъX\>^TJHH;,'\,_fBm lnOQJN-@9ZL@2\Fp:D>ᾩ^$TX˸4 H)+ra/r$Z8!vLIB`W"qJ Go˞SS)F[*B4MA0QtO =@*t,k#Vx=S#H_I]0:K6z@BX!HJx=)¡DD)ߵ+}ˋFk $Q" vPp %X B\oQK[QV7pJ eHY_)( A\ `TM&kI %, _ nvܿq~`=4NM|u@w1㒙XSXQ WLtq"^z?,=V Ua ޢoaEa̅Ylfj2lՠ]A~:mMJڕ[ckOJ'hV ; JsO]{9ƇYL8qE}9vG\iAzh\zF dj$2ZZ@ uFc2(<)31V~ UנSB*f`17`ؚ,.g-w4x~:QJ$^x9}>X҅i)yO(d}.@Z+F%xDl(^}/jt(U@ū6 l, pEt٨NȟW/< l9x}9S  KcKՏf-a(_$#,27 BV 9Ś$[=DH1R-E%*DIMtwFdvi0!}LD|S5F?0󻅆$Eq&HԺjr ~O.NB7߭\tA?%4|xAک4kbh ZO`R5r`@Q`m)ׄM keP]m4X [4nA3 &9Q9EŜZb!>!;ФnA8$ Q L>[)(?6p\-F_D ) %3a(xECE*ymc맮d_JAA_A)OggSL﹦0y,"!$" "(+%y"####$'(*NzGTt78/㲢9L"'"xq}Tn$<ϗ=z&__Gg z`DV> @!F9ʈX Ibj6 g11]f6d22AYc,D"Gm1œ A <̇#@9x?#_z:B@|De% ][%XC05rK\"1 &*W.~JJ#x5 !,R~!U*·,Uo?eGesJ'8KӴHݧmd(ǑkCcDUU5Pzg''Fq:ԔL ic-_90>]PtFʽxvl[LM3fRjzQTb>^~~̗w-NIHV$YL Iumn'FkpK[Y [B,ϱS5_|teDO6\-{+ Q9JlNwq>x%Vi}Qy{@ʕ7TU쪟^p>^}{sx63%FA!8]CV 3qX~9j:k\'s^`"eD`+ h7=Ћ;M?,3?vײ0$kmCxR/%@{QGB"yj5 |WPp[lJ'y2#;ѣ|0қEр E,W눶3{GϕV /iݞhf='MsG6usN3Oe~1 OpSKrϰU%'1E)p}eE?nJ9?住"zc3@T)ɫ/2yR,eX_D[SHH Jj!zX\1*;lʠ~gZǚӃ8^YQbQzPX$͑J0IS\9 -gn8X nd 4n#T7€'v(E$ lŤ. vಹ|f68p\߲+\ǒZpIBC'/ "0U>p;ph 8PD\G5H((P U5]!$5,Z]F+be2Y~ttb%cϺ͍;!)VOoӗC K `y ʾcw 5Mww?WD3 %2!BM|XL5$d hkУmd4W+Ņ7~%=M)dF}`@5;}r{G@bD^" !=j/(0̓ <Hb`HJ mcg Zg)Z"WqPSH4EDiy]8 33'1 uo;-`ʮBb@AECB e@./Ra= `ljR~ RBGP/,JCyDD=]Mz11EoV,Z% ΐ?H0]A6Ӵ`bP׈ HԂE(J#iU#V #H.AuD^;r u*;.zuf5'|cQO(xGѮ (z¼.߮BTW  {$7 7D.lJ(^"HKD5]+Fl艭0~04m;٘AS#î%&wg¸_q%礪N $8*z!6~I^J7rJ!$g$(:f|v?m$DnC(jmѢZJ>@+ɸPk/EJ:0%H~kae϶&8.b> ?!?5`=}6zy4w"}j"(Zt s츆9VC\ap2J8\[FJ1NLWc U9X  ^[.lOHD\M14]QR‚~ag?뙗w|TM i:H `0X >PxC.elɘD<ꠠeP xD TZaP> ^ld b`Z :4O) wC_E}R( BT}Kg/oAHK{rE֏.LIĚ^v 1(2Da-Tʍlp?e˸t'-K5$ on͜B5򮉲s"^ހmN hm5Dti(< Y JшຽW;PQsBG ˭ruct `{͜MɆTC!ή鰞8}Z~ۯk3}a`D];``@rBɂ рGZ?hyx0](`<EߊیF7  .x)aPLr{Z+Nޗ(d* RxϖtCT|V5' *qcDž~.?|u=j1nc\O4Czdyˆہ~㟵맿?|W}uXGBWH %Z| %-\"C 4[kVR2[j@}[4MiwsoVc*wz <@aav)FWs<̕ms]yYZ֥ӦdêߕYDЙ$5~3l|ܝqLאڋZq ljy7W0j~j*AD٭E\ɷ?{u܋b{sku(N?)U?_(aԬ`ʾT>'+v/3v rN6~VXoOpƃDwr`~+bMƛVόe/{-E"D;Awuu\K=hDE཈$UX W?.( *x0 䱝LC=un#H`TP#)@ &D*pOP6\>0?G+"DB"j)$ykt-ϥu87~znNS_! %@)@E`gTDCnY.}q".OggSL﹦0^F_,%"""#&*''!!#"!#,(~ "";TE 1 )WH4D :~;'_4ͱ_g;Qoo>HAXFsj;5 $ xOaj uI>6Iz<ܚWc,"+̣aQ"'JDDxÉFf<<2{ԟ@ҏN-|{ $VUj@P`DXSB=^_Cet b1O%YD3T6nrMԚ{V.zS $Z4Xն8_wpMJi6V6 L *g^~sMt}>-s-A9:[2qD,0ׅ\n-=HL%o$4XLd<C|8J$=[e{=5!a\#mDӆu5`u/U)B6>D+eKF '!gnŒQɽLG bPT*?M x_8/NNBvNM<Չ_?:-ul &%q?8-:ToFmJ *ڨ; /LaH,@wP`/>Dancm.30 at ]Nw>UWϻ "ڈ} _|@ c󓠿6UhGWUVJ{h2ݲKH3̤[UN;84E|""" ?9߉mW͍+;--At V(|~(Ec7etkN Tv{NvJioPpYTbF8U[k15.(]E E(<7b|H{KO]rț,tL-Xxhb o.@1s\{@C "}["Ԁ" gz˗gJ@@"@>K1,>5r>5RZɚzI4u mE? Đ t3=&*T4?`vxIN&7@.ڝfDt tta_±#GDtݑ3*LAHj,>\~NJsJfK;A{^b2¹0'"":tt現y=Q6," ܊ǀ1[):$F \jnƧ XF9a)G;vђYx~ڥtܦױF{N]\#Bɇ* (z6VD|LDDlPI ߐ~xwP?.#n3P IDu\ E#Ҥ1h+pC?e>;⡷ Χc[ػMǝ.8 \$HDX:gopXE2-ľg06 kA )vT7p vW*7CRR`%(" a;=VAxWǚ(MsV"CPAA H| d(㯾}H;t PI W enj 7 X8!SX]$\v ueԺNgӀg>>-ZzJn|}7t{o+ɹ!B =]T]F=g޶{vIUMڽĿ> U܂}$TuWpPn BeJDJEc`:Ӂh,Q1յ7.^9H`$ηL84674Oz#퍒~ITז5xe?rk,X_|[﷛jL@j{]7m<- >-_D7?O%4ĝ:A$8ؚ33_J.ZRL )<$%ILu͈;)[Dxfvg{l$Ilبؿ߿TX&Z6NI OTZ׎2ӭTSz*-!*l^۲CAOye[h(aSiGko6*azA!,Ǻua_$@!DA w<p tpOB6eYs< %ӗY {nx , h¡єeDħp ^q Ӓpto9+)lzhԔi]ә}+z"u!bnD }zkw0)lx$"^ɊD*?kP$n/`PkNbfl `ZpcLf i6R)=M#q\}Tg*5q[='pgQsBoS"ꯐZ U9\"Hj& qy+MHr kQ 6Dp*^+tN$e)v܈M-7b|L]h9Sc4g[1w /()Sֺ.JbMg89;J$5<  f,w>S6"_D+~b.iS\9CId`Vr,O%8giW翾μgz=Z=R @!4qI8@Ç]gD֊' Z)7$F_^GֈK x~kM{ ܚ;,b+-{Ҥf^f޽ k=e?>}&.T˒k*w .I q)뗑ÈRI`45R7QPԔF)iI/(7^̘,&`5ϢLA<gRqS >¹f$1 4B&h= I6/hI N@L '<hzeG?+ O7*kH2n0/е8nOq >_Ɖ@Nw}QSڶ@O__1uuCѦhL*jT"N1 F(y7lP J.VܡL*e" a:/|7| ++F6Mۃdy}Q8Q-w'3;wfXUonTW"zCgEI-y8UtdjdMX0$6XE>$Z(܄lR\T ڐVۿ>f~S$ L@4|x{,Uf}[%[Lՠj{Zg=01ITg]!>VZ<יUNxq B'DiȜE֯çZ[ ,Q{v@aWT}q7K{ؼ6d[,]k>*0+(Io;S7iZ;fm]$V{ְffk%I;$\PmEVrIGøܹH *a$#& ^C\$g8%$kz͝S+|cD-' )(-NS[%ݔ.D5ZӚD 7gAԠ& Xt^Kt˻ i95k:AĊ51$&XWr-@sWϾ5Ҏ^W=;@70(֟ RրLe$RÔ mc[KR!+H3mnZܜ%$w#.<79LEƠg\F~T_͎#vәB`@_ @@%hºc_͢ +#i1( 4 HebMFOp 밥1$ ジ,R7DD0QRғU WF]DY,+2}E"#"My`!vDUT kRyw~1$~prwq?G7{hfT տyyk2w4=d}g LF35N{t{My\o9Օs<-5X_yY<{)wKJDцӴ!o3}]=y-%eNqX]yL \חlzMc%b5_eԲc3,:1A?_'`ZGҠ~-zG_7C\@JF+uW:$mȤoTdڑ\T/k^0 2{{-ӻ ֬ET2;B2$rzB9n 5 ԍ ` W;łY:D >֛z`1Z-.~kl @/d hQ#1>n:^ 88I!>>݇mxe?Gؿ&kCaR0 P {@Gh cReT*hCp [Nf K1(FKTp OpבAG=^ ߢ.:Tc),x з]@ XqHGtFʊw5`2iwmաJP F]~[6H.&BK}FĈ"`Rz;`ydDD'(\r9ajW8UbRG0@7=r@F"#n.:Kux!.]IKCbW[L*E06V1pī?%dN@ kzs|4E fI s Q @?C3$BL`Pހdʆ\3~u nnOVGb lGv)2#DCe"Et{C:X=A1UWɑyMc{ʴ DDI40^ZTվ>]eðǔJD׾yS59?dxt6:*)RH4ͨ: W{7w`펃NTov7{+(TU UvB݊mRsLɹXAoV7}\YrY :.k..N;7"#[*:0nnp; P ڳ?_|>*m-0 꼙uIi2?i1U;jgJ@()' cM;A+Ա> K0Q #@ ܘ.@ֆ q\]uS? E[Rboo,,J/"@GӀsT[%`}1`yPXd Q7-.1 OnEd\e%hڇ9i ,<i arXJ1ϼA{}ظ'>/Yy;7C/(@`9t, V1 hH;$/ RAY|ܾVBƍ(~D")8MD)YcXMdv ʀ'J495b>4~|6傕;Q +\AE %`VzS,h ߃[1"T*)[]%@[DHA@`di,pIIY\" shm+~ )~ /I\ݾμTy_0 -`#r<"S:xhB."F=]Uz4J`æ!HL,-‡ҚܰsE~]WŲqDDȱSv8ڿ?3d-uN9>(*pV@—QLJFľ VPYn pAr. HF=OggSM﹦0,}!##"!$&))} !"#&#&''>;Gr(IPJ%{f!sA90jrTj:Bz^0k/qj%JWqW\W jF[%2!X)p%-4PvAD*v\lV.PdSqpDUEHDt`}NWz*K[$iT"a`l0 `bA%|AE)(  )\ݴ=bEK*F`IIuUA?'ݯrZd5?m\8P*bDD-5´f,3~ 'PG?܇6n? >hB@_q_p;X 4@TuXJOFpLBeA4؝h@6j{22mk TFib?^h=z@ݲl3T 皈\yWٲxdL6-)+e1Dq3E%(bȦވu*5.4OST< Lӫu<ާÍΥB,DӺ=Q5i> \}}KlCR )FdnCw …RbM$>B<,|:qJc` P~fLf'Xļ%1GLf#\p\](MQ:9X^MOz1iz~TzTZRQO^z_`M#nڧzKD qL./j%+%^$[tMAHn09n KX^HDD4p~+zDz/4LZ=jI}wӼWj D <^H 8`~"ގJ9I27o7dH-n0Iu\jNbLD#ZrdN)%G@/HLpFo(^-ԝ7eAoFW+7JkI I7_K|.nHdBMTa[BT@@bDl>K^ 0&ψx-p?%D?g-]'_>7 1'pHH/, 1 ()[A G4sgڄ|%JE>l>˒Ɇ;ӵ6 "|UD`ՓQlů.g V@e g12ъʚ60pg^aD4/k;g7++RTdCDlrL k8{ݑTiRF^ c/zKzkҊ-2V#_}"#@y1404Azy*R!(p 0X# ̚F5ROJsoB$[pYЂD b2`"jUl^9 p{nb VZS:\ ODD# oT| 6[7ǀ s`mPM&JkHK'p~6bXT@[d\"Ji $S0jl3A]>}eE2DDtNi4ڨ8#zT_Nk= 4@RaD07pXŊ$J>tQU #ALx*t~kֶFMZS^7JD Z1wpN /)-K֧,XO?S\ֺ']M}܏"D$ϳhvK u+{@2Ѿ(mDp50׆=a姈Nqa4=$NO̲yH5]3It\4I㙊״GSk`_Q e?*^TTQ4Mmm?f^[_Ӎ8n0yݖ\q<ѴXc'&,Xۙ 7mVRzfffZ .AZɚiE`4}C/ `1u(Yz ̎ddF n&KrHc۶9H@$-DT^N$!@]> /@r.d3-kn).JM`D [ 7Oش/SOŠM I{DDH ^U.~2p_ `} ({nG ֏? z VX<68Yd!f:R*vE-EԒ Qo"YQpڬ@\)Q8(m\cLI< 3XvSpC@AOggS:N﹦01&$!#"$+)'#$&"##.'}$#%!"$)'%^;n;ؒ#jM"vvaoYHL GZk&}B&KIc OO^OPTtf:)`![UtLRRfY|q)8TTɪ~|{@r5vk*,}'{<9a3"5UnNi4+e> 5 J݉5+D/HDi)3㡽op꿀ܳ*@ݿ!p@@*|+yEbHczPQcXIGLA %R {eixv0[Ę%|8zL"4,A?M4:_^i;dkpv9{q'OTG PX 6o~h8g ( ]mXbS>xTk È|![}ʐ{1ǖBl=\enb@Adz$J;MfĩS1hտ%`=+o-Х׾6,1AG01A銂eF+ 5xǬUV˂qćؿ ~+ js&{?x{փ%2VzV&@Akr HC| pBcXpx6 sa$B1ƌaHpq^Mr,_v2p12#s Xnɾ$Z.V8s28&LD/!Δwo+ 0?@(Lpj'聐@@FiXdxD{ϐ0!^ʕ$ӑMEՌlYxbKdNcE"葈h`Vx:?*GM'Mw2oф,@1A-U2uU.^VV`EڑE"MfG ~GQ9PViQ BXمSI$\PD Gt$a_~ޗqTtt>o?H]D.`ݩ @hr",@$F, P$b%[gix{ZK?9"uR Gĝ|^}=}|WH*k\LN"M>@U `0 xx!0QY=T#Ia1<ӎhk`qvJ_$<UVڻG6(uiW)X~yYBL ){O[ֶ,B&^9yϽ7<֏O>鹡hvq~FNK$et-1o|@Hnl3ӍY$\0.l~z&`㻞x;Q"=8*> "ODXܡ0 >Lcz~wMr]LJ^ u My\@kc΁  -HآяE40"Dqk6rK]1_!לؘea| o_fED(C/kH@[F\Z(;Z Q-~)[f! 8M}5'as/^A*T`:6cHh(0 ^k6b }2W {_/ })> NБ"Dt":ְN@R7ޓsSNy¼t>5-3_h9ԛQ4g^܃Hd)%-Hb9Ġz(5R|৐;l-z%C"Eez[R$w]x#T\v=ݼ\?q%xMy:,E&Y dTCO=vY9e8U%wJeZ[.nM_K%өr{{j^w7v&vDJJD`+?]d<C" {G@H=U@+5\1nNt@'RtaQҠMqh 0+%1V2t YG]"")(Yϊa _r^ǂDoغ>@Zy6, )h"F\Sb~ŠV;mgJlXP%W|lA`mA" QJ˳Mk෨ /yvzowYP(G҅t_RO-G# (Yxą8C鋟0)my<fY~X} -G[lـ$I""alFwcrsu>t˝ΌCeg?%ZE 6>z(?mT(+b G͉#=z(.&j|LՆӵQo }|-4G45h3cX{YKm1:L>d^FFL>i'wˋXKr21J7"4gq^9WыMs̥`DLנܨ[3;tuB2<pk],{.jɝކ %L^jN8p[g+8qshXT՘f:qh8yCf8xyWh?l TWS66S>X^m5%_wc{fE&OggSN﹦0+,z!%$&$"&'&}!!$$""(&({~Z+a4gG.2 ";FH"7|fY`45.1%Sj{̧/GEwvNw|ZٷUz{ hT4`Ν!4ېkG\%0qC!6r>EKHnl#ꅴ'侵k.0"8aN:@-X]+iM$?Q Χ}ON沍n$mwA@ @r` tPۂ/@qh%D !XoT:B K6nIF- Z\$] \ NS$DD>L;wԐ ^{(u@ Tۃ`t3>xQ>`E58E]$Jp #!:c"搆^KNrN$z-j{Ϭ$~6C.<7x8Edҟ&"zT_T]٥]_ܾY{|4@@w  \QPJq7 =\=L@6`%5"e *f5Pz¼ т|/Is`{.8 ELi" ̎fT{0B}n8Rp58?  *+ OV3k{H0ӛNR$P YŅX_r wƈ^|^@WvǑZ6 DEr@"ItJ4`{Spë8yT'.Տ(B%UZ=z@&W\~]E1b"׼^K.'qK7EC5 "50oӧ{ޭ\zp! U/Hǔ&7m jE$CPbVvZ _ _^ÿ%j;*dD _ ->SڃV.x7 T ya|e =%^g | XI/(P/F3p3|;tޔn'𞾦 @ z3Y 0psH "*B @V!5A*!jVZbF1-Z쌭% QO8LE!"-=:mČarVֵXpVUwf_m4TCSRt x+n`n;%$@ pX`U7Oi0tWmxM  TlΟ)W`V{T3[a5 LON:.?X=~rп44dTWFcGG;!4H62LنֽٞF6Ӿu!8ZI;D@MV 1_`]%~^ԎoLה?~H:N;I#M$tS5s_VBtpӆ!q\iD׵Fدу;|͙S{rS{hTLSZi*p>dY$j6q+1Ҧ\JFpӪS &Țd A}.+ŠHpe:%Z \gQOODt2nx4ThW~[|aw2xiR00H <ZA@N0fV! .ŊaZat[vp&Vaq h4nZ'{@P Hp`ܮu(x`eQ\@fA%,ڵ 2ǀdqDt]Y~ebynyrI1>9U0S_!c`"4NH-et}B;',ByHWnC"`=;nI+;ӈpaQDV*vt9P9`E6/R?3g.ٷe;?EwػaI'D*_\AvHps^h:<DD h;SV[ʓH Sk1 >}ApׄX-;n0Zj@baĈDcL@L󌛫<,-~/wrՐm՗4xO5q_Y[`U{3=_cFL ٧<`_Ϧ1Sc7+D|73?:_zKtlum&_XQmv*^M8EXa*=DIx(Xl\?@p%BMFӍ?iå\GAc63H.ў' $_dH˺}(@ M@lF Xn̲Eɖč웓z"2D-~+i4|d)M*msAQ~.l*O5V&睔lzd r hDk";"3GTD Thy^@Ȋ#dnӕSY1:|`s"L!aZ0pߖ<0JIe|w_kI(- =Ƿ"P@%w";{[Jj{~ʍ$xD}KŐly"k-Rl@)Y(S$A{ZA?++S"J@~:l=IK$+ր_K${ܗhW(ZSW@HP`"nԭmY Ɠ0܃)<X1ʀ_u ].j ~Kb)Qosĭ'S0Cͽcqbt|*eߜ\;^AoP:VTpHh`uN.^ T`o̔ulPay'foo>cI&% `-7 كɱtXᤸHYJ)hn ; zΣ`ƫVhon#]ɘfh@uWrʫQ& %n3=`+Bck^B/dϥx ;W&SQ #/jO}O_AXMG #9cXLŝS ,>9 %X,υ+G3㚶T2܄[^Di,0XHX{Qg1q e#ى0́:C] %W/w@p`&>CQP"F'ЦOQh U~1?cƁ}U*&6[).^;Ul@*95&.7ib|+F^) M pq_rޗ65бFjz@qAWdBƋ\( T\Jb?<в*1;*R׊DAprjfgܫ`z 2Ncp}a*ODDpL:_wbv%XO#h MPw) FlC %Ep7ݦ`!JM ]+7"UIuҽ1kud8ܚGWg-f9þYJ?Mz##b;Mg&8wvҮ p( @t8Y g%\_qrU(\C/6OugqG<5b] \H`*mH 趁@QBX=npIE1W a9hK8 䒛S^b+{6!`iaRlJK>I;$;F=z:ҳāhFhuth3-Hk ˺Lŷ PUfR^1]2;EC=:ţ =#r^T'oL?;[,:P]}='3[gL8*`|9xSʇP[֦ Ʋ&GidR0"jB1(X"*W1̼9EpSBJicYI'3TI;=o9tRFx> E"VnARx8`Qn1vs7z)#Etӑ'|Bap^[d`nV,:6\LfwPL/IW"%$ (ALe5bю&č🟎R*n/@,%]1 EpXT1$b,*A":q`Ś[l >9M8#cüFgq(c]ؠd 6Am"_o/AzϹ'p/p+\ii!¯Va0ox2 V L? XMhWTJ*pRu8bZvO骶[D(u㻑6D$[bW оn{KЏJ9r<"m ԀUyMS j5# w@@r/c)+n$m'dON1\f$G\H]ZҧDܰW_=Rp? =#0Ҧ3\Bl`uR"DT>]ZR#Uc ^DV6Nj~bkEitax%WĦYdZΕр7B.5鰑<)gm `MQI:`nD "T5Tj 7eCAn)Ee䑹CdH\\9E'#OggSO﹦01"#$%"#)&(}%"!$#&,'~#"#"#"('#kqHfbAzTdZL*Dc>l{ͺG?Ʊ]Fuv*3HTLkrMGp۱30<__\4Mt42ootUa}:g/q6y!I\λl`R;y_$)x'wQ^wOvFfB>OzNЌRb&#u ARKS N O>_/D;'XجOEʄDDD_ş9̾i_F8ekIV! ʶm! <Nn }[#U8Ћ$>!"rdR#]rc=C*ŏFJODhhldLO,G:Ő(@"W"!dJt/}$u}a8n (#_{ke@̌& } UF-Ị)`| ܔ dXx=`VUDq!|HFknbˠ؆ai/"v:Xptwae氪'"|ҟcҌid)t@ǦQAVa?4 {= X%KPxkjk<M37!KK~{`OEHV-{0͋Žb%?α /B1 7TPK!b€~@"~v  %0ݭ QFLVcDKYqh&`<d[X+ܟ`^Ðuf"XK ̹RƸ Q XUhdl] "l[Wwx[?݄x H\Z* Dj[AJhE0Ւ%J'(Wp{.z8dرok㶌l "htT8k6 [g˿k6xN3.UdEa.n5w16bK[V!.@@P"WeT@]ԝnC0Htru0B>cN>[9OggSO﹦0홷.|u!!$$!&$'|$###""(%'}#"#lvfY ^J_ {\,0WqA`1p?ƞ~v$tjczlu%b7$}Kb a K(ԴWFw|Rtz"":]Ό˺=82yeVN߷?QZUB*/~ 6Z}+_6)[1$p+ꄇ@t{K[7<,~nPy(.gnv@,D0P WJ$ WIswyPt4IO{rPkw61vil tMU]NGǃ*͙u{uufjd>i~|O[a4ӛ^1JfeL*!=~I& 󇾗gƋuvEo]O_{ww`1*’)!͖9)Mk \?+P09ghn;w~+ʳGpub0X#z_Z6 R'Q4ҬdG f]񁄌SظOr )=nO+06_>LWk8Ș4"rGrW<Ǯ[Xu z[ *J yae!퍰 h$g57WêGhD].n)N37]_fS ׉~Ş`R@.O{V5=4€5lBY-oa`G =Z$ "$dT.p2{D 1RqDhϵڟGMV$zķWsТqlH 7@O0A`@Ҕ@<B  =TcW.n= &'H`[` ~[.be4X#B=[]+OD!1ri}Ȼm(zkw p#*@߸v sIP9th<} 5{Ό2NwBP p{Jd`ayJΥ>;x LNǒce ˂AI+Ut@'p[g{ns} P/\!*e X9 L9ZÁXsvOT[cU!#$2npD0 p ,OơLsd;t˩tP`׊-vI~ 8n[![@롵bC)) P>;6ƑqVQXHʰ"(]#{J%Qͻ  4> 0mDrIn\"~ K߯/lN)%BM"Jm14c>^+DGGMK݅WQ/o@T_7` XQSBaYưHWˍ: QjeDFCA,3S5 EV_71QB>i:8$ICU ,p6?pt4}yܭ=5u.aDG"""B0keCIz,hKPV%#ȪA؟54<;p,u#"B;eH']wɎNjze%BzDD23K^bxH|@8Cu M| FT KMra+ ^kii`|Ņ鈚kn92ð[vtmF9(SFͯYB|_@U)D #,U9r?^ # ZАrwngwҰx"܀FkrY%+\MI?,:sED#0܇}Aٿ1nQ@cFOMA"B@I D@0[Դ(uňSˀ.{P݃TP^KpƲ;y;r,c*c9/%h nzۥMa@-c]a jAyЍ~ 9Ƃ_cQVv0`' .Q+b`ҚN~ nY0H% ~L5ӭ-=dC`~&'bD\g:.ͬ|: Y]oCzMBQY _QHѝ 6U;uĀ滑mcVeBXo+޺YhSJ0[E/B%taF"JFe/~U>:7KCtVhA$u#:+aPP %q#Erh;n X\\pWT  .hVVK-s{{&4!cXx1Y>%D@cF[lmI0]RJǎ5p$Qu )1. {t8"@ g@6H} \;3(V8tYK)8s u|sřsJ呈fac:hZꭵ\_]ݷdxujG@I`Ur@ZXBv\U @'ӗ{8 톅1X'G/mDh#pTՍg̗'oߵVZM(#jh#,M իkEOݭ?͹YQR ;ٔT _~s}}l&”ⷝ| OggSaP﹦0x@)""!'*(~~!#!%#$('&~<8U.~3⍜<[FO-4Mj,h߾8cn v7%D΀m[[m3 5>o*{YeWǔDQ[;<}3`iE+I?ǵW]LUYzOv<i> 4D{I/.#k|c2] DYKeYW HfrimF6q#qS\j\ :; D@ӘKlb &s+Z+speN?:.{|WA} <_5%JZ"Hm`T@:5S.mUN"B\H gƅŁyvxɔ͌ C 2 S0ȕ? Rr20L8sgoT~'tjrA1B@ )F  *`uѭIѧ0nsQV]  v% v+8wkfD47NH&s ^6HODH7hR)~??v a_;G X>5HZYO eθI۝,?ѱM$Hh,7 ]{%Y] [^b˘/3J=𲄴Tq.hv);n.wU(d n 7 Po;چu`lR)q|eDAm'A`kj)9& H$³>/;| LFkyS{ 'w.Xt< gί5} -xyK7ݸuq ,H10Z@dPr0e/atW}j3|D5`zFRe^n>,nq0dV:t(ł.pv +TӨz|O5wN5.x áz0Izn Rh"b:Tn֋3YΝ@J 0t@a,a>;f1jfhJši1Z>yuq 7dJ4槂̓rv$'轜OZ(+((ɰ"@K{Ս-#OG ~YX@%QTn"V2aJEL) 8|ha .p tR?$ V_[9O"::`cxfBFTr.n~"IFD\ pR21Tmh=!G*& qJ:k.774,hWJϝC8@w%Xp_0`X`-ǰE«2kK?:9Hʳ W >5dᑀX{i pˢ+qDDh_Zo[{+ˏk$ J`փVx98J*@` nqaBF@R $:Nx Z_ŞP: wFF cI'""J]I/ y3rj;O珯l=A"$`Y&7jnP.rhp{du*ÚB3FeR(ITɴ^`*6hMd&:}\7;>ҴAS[]I->?-[|ؔߋ[O;*t0gAAς = `ĺ~^nW]L~.'JX `.V4HG>hq]kG9-|,ߑ^jLgWϼvhO͌ '՞7.T) "SԻ+X0aCBƒFq-j9ު!gmqo1Hn ]cS˥+g bQ5`) +8~P񤌋 \O)хuuj =tn^&g*X_|VisNb2|`I@ S,$%Gj<0j:V"Ad\7wڸ %v*+^nfJÉhzڱb1Xn9rD".[ wa5:\HA?{b(=Ng|HcUF'bEe>5-[(AL,״)t|% MeIhF>\^YŤM 6G\,WyHqէ}[|RߝPUR2aFxa?RޑhˢFX ppIwѲ0nh *) JMG}~^6^ WMX8Dx >(V8x-z$ԱJ>:!T\(MF0#c> A@۠uZ$P? 1nD+ł*V:ܝ!"@+B^|ZQ&λIOXZ5GI*:| kɍsbHwJΝ1B^SMӹU$+hQQѲ` -(@%¨ p,]ZNnhTR(cpj6z `!`Mc</Bc"8:6{w;"R݉|+ cXL Q+In{,1&*@V(4ݏpW R=WDD"aELFh/qͤ3Y.n)>VRR\ِt%, D?(/=] !W/IuV)|yb-lFj<`iwMk3JjE$h!%'"^H C]́  ދvnJ.>G,A꘢) `$hD Z^/?4ڃ~|:o^Ŗݺ]vBs|y*5!z8\Vn!fu*D .pB pˀѩq@qҖ(~ (Kđ+F+XąEqNv2|( j-b1ɸ>~@ =Kc^ %TnPj)q 7!ɑjdY$$"[NnM{ah œ$t\G,J$SJ ~XGfĔW} p V@ 7|wUp\eid e]DVvC;H1RO!T;rO&.?M4ibdbvŅή9NO..SE&/F K B@@: HodNR7P2طC%) D2XP- [le9WKDMv04|, NdQS1>,+vRZtd)؇]rHB `V@!*t4\ut#Ap #n ' Jy!e %gyf4:nh4C5X¡9'#iI]3rxp% a: ^ 0IVz^*\uU;(%p2""8 *ŖOggSP﹦0Ĵ1"%"$&"*'&"""%",'}%####$%(% DKAx;bT`k8GJDK6,u)Iw'oI 1?B U#m_ם j'cF-n\EJ@$_@DDgB!h Tp TlI..lIa?k{ m/_5Bi+%JJb~~wY,""~yf@[)VPy! 2ʁ(<UN)e\_ /V%VRSHD$zU5׼yUh=֜~YTZW +z 44|oϾs>r_!^%,Lgyy]@LO{G=a L٠ޫښd򜟯Le$5+r$GKG˳3 'eu)G[w5ӌ~7r]_W*% (p>Vħcqt} [@V(hh*HQ(~ B+hۀLE.ca[NfMC#Yr!{zTEQ Y'll|%tt&& w`# 0 )V].rd?)8E~'g -Rh %`Z1]!Q-Z"(մhb $i- F$t7h"GI?c\|##=4".D;{I )@!f ?n<0w="O)B4?9"BꍰGXGE2J"ݸY~HʈHD4MƒwM!=O-s/W8D…T:b :a4+ڀt Hd&qƲc-b́j .^uDdU!=B(ʎkKF^4Mwqml(@$pAG^p^{%t%DЮKx{@DAl_@!N8BLpnDDb3)p fn+tڨƠS F {uFh1+#cO}W2FIFs¯Zk\\Dlu4z3 @ܴ6CPnP GLqY A.9OxH"" sT تԭTŋnr픙1T=ӎs>~><~VΡ,dML zGW/omx]*c_m.8%VՎ!waP TՐW689Zl#]4;o<t/08>@jc 7l?L4j,o~hiVP1=S{4d^+*2._Wm CkLO!"fLJlrϯ~#5 J)"X:/f;k|J6z}ueo!6nZRgP'0X\QPTOz8WlP'#0Viֺu+޻r%M_YڴK٫0]J!BQz2/ڣa(:%d+QoK{! r`pZi@ 4+k9[ pO0m`bed!]aW;rhϖX,@'o*|: yz:3Ȅ85kARu #JO7&@R}|5[4gI֤z k3wP"`Et)O1vu__-&%UkN3^ @UUD-rjز:@hqCo:N~"ZЅ6M@V^8 ra޾xF i71PpW,| U0@$*\*!*t f.j6GxvA(D4L~\^f~88;w,]~]8 "z7TI\lkJV@U&|$I\5]dzYT=_1[]I[0]kziK TSR""Npb;l켳-f|&sv¬]AC-H{ -w;U (u8KQBgTW*8<|k'C[66V}d+e_N/CG5@iADD$( p?' c㘳2O>|sj@n0Ї{*Q-1Av‚pC@"RF,(~KvnG$S_|)d'{|] [NP >~]ٕ"D Ihgn2GfE[(w"(+. t\tFi  9b ޠ_U>J eEGf6*b 3}P1e=K]0R+?&^FXI J"1 u^.q-R]f4.~aL} PU\\:3@DM$rn0> i*D IOMt۽ɕ "=}A<71DՎUFzE_z$g03?qC,Tk:ng[1F.}* sj^ TQ5^/Y P鰛&n7BMbBuz~LUY3HշcӴe^o# \Ya'joYKiK)Qu71Y&:FxJn.ɛ U,Kn.e5r92-?} o05q8%DcVYԖW`n+Ze,L."~ v|4ې0j̒w<"*(J> q ֬Fn n ,3GMƦNkVPzDD ^*:ˉ,拒#573èqt-obq e2{P'[;D $:d1 `֓O+v<r^5bI.r$z).XTpZ)W?MDjs_tdr8:,}-5x g_)1A%PL/# ih i֪1)Ay/&Wg]NS(Yy=i]׳=)ѭ{pge-M@!r.ʿW=YXH<p"$T)!H@NDӠu 1? I䑝v׹L+TՐ4ӓ_X=/Yᔯ74J$4׵ۭr0廰;zƲRYQ#Lk)g}-UL?~_q9BL Ȕ×kkm=Ht:?aL6<4c>uM{ӕtZ'kL* ( e') I%5Oc8}2l[>=Ld]r+rq έ_z* bH%5a07W&ccN[XJ<=!eG_.{ Z.tֶYw=7'vUҜ[Q3 1u?0*zFL ʚ"5hpH7[9Nv֫ 궋N)IXQ{rN Ȥ.=G qD Jx"<%:t_9 |=ƏfxעaKzXt7MR!0Y#H&zSw%o5pDDX9h+X\>+p(.-DlY#%/>YxhSwRO/.r%ϳ{b#BT@g*m` #ch׈;kPkvb Gbp`Vca3x+"S= }=[= $mPRcl}Rx+S8=OD-bͣp 53MVJ͒GRNPQ a^^+NrMb.#R( C}JN^K859@G'=9 `#r+P#:NiP7ȉ*@_]G!c)̧/0# ʅKNQ6YQskLr 4|_Zet"J467̞8&)wڣ7ﴞrl]#n }z 7@gT2R+!f6 Q eIӡsB (kf@QoY-*~kr@ҋl[WN2]T$,ƫ:%t3 HELK9> ۮğTY^bW U?1r;b"#w# 0DOxmT,Q:vtF!y-HfR1>% `)˔qwRk*Xl?=?S@)=\Y ^uP hx7|)Zw.7tuaIX\6*frCDB%ieAӫwqÞS*JS3J9_!p(@7zl im Wة%':ː2JI2RSTy0mˊLӾyL7/,1k+Dx~v~<"l㨦4Q&? WWctD>\yiN.̐fS?F͉]eٯ ~'AsІ4mDI=c:'aG+?-Ÿ\7 'yQLYKڣq4Fps)ƍh/gQ!:veSc\Y=YRj9CWNѱ.%Ʃމ%uiz:DI !.*TBVIS^LM4;+ HMEk~Z5 wʯcoz˦ã77Mo0e4T/R8Т{@p 5p`o\\LBQ6Ra!FktI\c%vh`YZu pq%R"JD[6~  0*څ"RSh_gw5h i5( P1촋~+ҷƔ~v5)e^ͪj"ӵq@iA?QTd?_VoR>_-nʅa7 @hdY=n W/6_fjb !F2腹XR^|z>@u,%K.ŽqԼ'JD}iuNB.@-/нw]: `~A@`+͈0>KaCqWrX'4+%8i!+h@t})+^&cB/w9eVDE-y:9rR كlj{BGAT?BA \Q$v@Q+8'I "ƫObMdi׈eVV"GFz/te2@c,UJRlBO\1DD4@,R װ*/?$@@$*_ FkyntO$C]Ԩ7Uȉ8&5kEetYݫeLLiQ:Ir{z,ih@wOFE :hf$\Q4\e{}Yv=MJ2~qŋIDDf7|?5p5fӁ:zxzS&%4QK^>LО<hGKFhqt4}UOggSQ﹦0`)%,%%xzy!!$! "'%'L@ڨּpW g:m),^ɫ94tqBvƍ_PJ?G=Ncfozr9 LWYlH짭Ett"0ϔTY#O~\ªWr󩯙)ߝȧ:*Pͅ!Zwq,EɈh"VzqAsrqx+R*1SvJXƌؿnLaxH9}T)@WIp=EmrJ$.8>L؍~U5$#l n [?0X1,$bHDP[αPOޛt )%&M h[oCǎ.,߀%zYO( FPюN`&vտ&tM(k+j-״nBBv%85e&.BW'$J P# h~_p߲ @* 1+ "=gzN`t)Y@2Ǐ܈U ĞJH]53ga>(+%+JR?`ߎeF=?({/Dԉggn4Rmc ;7)҅jE @[tO4Dm9c> P"B Dg*1ДtQ_>(sk `@gf`V1Hn Y >bV"e{IAL{Ds8Q ޕ"ca"B䴻p3ݛvՌ{gV/|? PǼx_sB(3,7Z?jeA&r@ kI #)O[#,^;NzX@ܞ @,YQ*ljhThrA{[ 0r5HwKS$nw% 2 Pp_6lEtO cD,3Z0`5>;b4LD)4_J]X*F %@u_ұ ŇI-.I:*dqW%]G]/wAEBI呅E@Y9и}( a/AUtx; $)eǏq7 !Cz U) "f nĮQ:vəU.B @g,Dxw0" >kEXk[@EQTLP*%+ZYJpMCC1ֲ)K8}ϟ$%5,l]cao>WP[m U:Y h[Ysɺ WvM\V< aP SW#@F ^-ܒ#k2^b-pC,`|~%"R&mSa}23aMnұڤXyX8 ]b׫-:D1Z<D:HL !x\qҘU( EMŘ!)V~knt,f'lh!R՟0 N?Y1KI>~Dy DF.`ZQ* 0`hiLCA]]]""dI BO!b[rYr%֔6߇`h ût\+O4% ^rFKx}fEgIVˆ]K0gLO'kcV.+Hы\LJgVDwTO B" 5N)%, pI&YRHi\vŏ?iKdOy6cnj }U%]>c?)c=Qj51D 1`ćba7JM7$َ!%cᾆE0~<V͡](`p1Yz(韈&[esXn٨wO~!%sIúmY(ݪ# 8ryV]Z 7{݇(LoT%\[Lqqg%f Ɠ V'Ą]k7jڷBàpx ƴ[pxe¤\!Nh<*q;,-־.j~ ]Ij>yQ>n.Vij* 72n22+@ӌ6ZAFh*0f (22MV[?LE돀^*hj -V@B;s2F*Hu 7XR`09 d5䵘KUla='pBU e3Y'lFι*cS<2@DF t5"{z a Y0d:Z`vq.\"ɁV)*#,!):JPPJV4VDD4](6fT /Z# {K:##92 C6.,=hW"谎Eps jyʬd3k,^RP'Uhc' >DOp" $5nEjtZdٜS?r?^,=uZkvX \Ր;\,/ENtB3pVmTӐh w͇sA}&J:#L ,(vɿ^\EGR+ueLנޠ9y̗udWj&콊~!وE;x&{4/.a&NDZƒֳ),?b/׫{qP - dk ;I$qoʊB*0w:6-#FI,3!س&(gp7prSCiM8=#""JUo:' *G@ً!, ʂ3 Atpe \7躋@်E$b,q(>*78"زKS7>ޜp=t/HD׺Rc2}1[}__ :PS7!p0iIFL@~ )"0" J7`wlQ(pf 9#W(mjd ˇ_~kbIɗ!LWv_M8߫RWgj\Q,ۙE8t,k?%SӯƕƔ z*ưteUC`XcTԠ[ 3@;1掩vr!DLQ~-I¾߸ɴfM*Rn[i@_7@S @잯' [>#b)[k Ԍֲ~[lԥGܖ=z* ^an` pW;A{k?Nq8X*~ <=m90n'@F`2lX;n`QG#dl!V):^+.rs8K䜐j !>&)A'$7S$DdQU\Ő{6/FN iB L"`)T#d9^$&|E;F%QQi@Q FDQfɅK 'zFC>9jnfs.~.G a n?ǴgedC*H؉2W" 5s$`=ڞ F)'UV{́rT0ì6pÀ&ܒ>1[~O|NDR<7=˻%/c!";@]:/2cXk(@$`@C301MUDt* W_]!@4.k Dƫ ;uOfP@LX%g]T͖t=^o U 1/Z-DoXxp{f9]h(DXe$ DHuh%H}TT,46DZ,n`aFUpGbŒ~KnBVVM2 [zb|Oα_E$HhBb/lw׭Ýȫ6 j`a4 ``|#kƉ*`5 Bp*DʑiMlʱyiA nj<] ࡁOU%N@ #V8@1($ 27jtMD(OPa6 Fj(ֈೋѿ!ᮟOs?A3w#?ܵNWq|RÇ9s4.H7ub;#e3P:H!`\ Xn"D::NYBz <qiKjmY|}}cǷǕفC)L$S5H.,xanJK852nm>XZq|"""ʧYUBE_$MqP^Iz*1-K,&t|[ֽF5x Tjzck7L}޻A CQY󺱈Rm:cLjFz)m>0l0B)9$!SY':mGm4bu;h>0v6"]ߩm[k@@p\hrA(IyS~tM7 b6E{ȶ^Qg *VGD)<,|j `'Yfƨ]ZDO{8‘j=vXj'A>1XD(*\O]þւpQ$+g|j|lNw|CzȬfR՘-DVVr? ~Tn@oySeStԓ 'VV#4ѹ#3hks1=zk5H^Dt9Vwq}ETB1C 0#}UA7J UHK;D+@v 5 1IхCIxnpJ2(S_t$Fe|>欔OD4wuNVrG&pb?Ϧ/GTG@D'.D7B VI VQܟUZ]7.ةSp}DVFF`Dˤ΁>; E9%/(EI魆.  -]]'B@LDhZ|^ :zb%?v5  m8V,ßG:)5^]I`+۠2< |ATc)\$baN_"5'd\v|D6THBLK=^W} 4IÃLv3K&4 TѾqynչuή}[SĨmPcJWn&SRw6\׶eG8 V?r_NċNVLQ=㛩$?R9s}_:NN?\dYRuo&u|e IS }ߔZF8f rњ8L⥒ p,ӀgsՉ"81=&m,]thb1S[/zX^@C@(MMOI{90'v&{ x@r> fbMk$agmp//ˁ̯,E#QJTUO_zo{[w!v @ `pq'(蟛RKޡHz V۱#GxD68D񯀌!f.ĸ4TV^z&"Z?O6Gǟ3n;8(muN@L"TPKP!݄Q]ҏA^h`ȸv, >F eq}</+C|J)K+gF|c~ ޻ΣM_4,{mPq3|ziL$r/@ROq)97[ TV X0{,"tɛƁH4Er*ŊBzzw;NVCzx߷7 &!mPwTR#'P'/W[-`cko" O7 D}jC|j J%OggSR﹦0P2{z""!$!"$)(#"#$&")$(y}####!&*(n6M35"IBPqBOݯ;lh5U3HaJjPO%ߩB,`c7!ɎQ6p4M(, ^i]zyL[s LqM&f# 1TH)W ZD[]Kl@,:{A6Z HN_@Z`]&|X="@, Êʁq9^l G8)hi6rE"ѣ b.GDH2%mx* =J o^(,`Q0@*p\HfKĜA{T~?uZb'` 0 Mċ>mdV:qEt zE6tz=T8HՋ%[vbè$.N̆)\ⰣPM.A5q=%:MXqBXz~6}/0a4Uw쪫%U=kL)iE.rO/1J'D7foY\{+~Kx b*Hkҁ7¥ta̫`h6W6o&n뉅;y ըUz*L>9R{XpT^XjE/j5HYDV5 ʀ 78!7>+ 5XWjPz'ӟйv Y-]w"xU>6 rxQђnAϲϲ RGK4*~_deoB:][f3/Z.9#QA>Si7F{?%"(z\Rz-P 5"U *wU"qpa8PCm(b(,((Xep^mhdRCpz{%e5Tta\Dtpz;;.5pO*JpJďH2n&0S v'U% WW0bA/{i zUј !p w4@YH5P U3Qź2A,VҞ6KZUC:P,P & cw&JʹJ ǠaXH.Z*j3.9xAP@i#eL#^[?5}2x8=Jvmk8tӓ;RO3 oWRY Z񌬀~Q$hWL%m)g!9eFY5>"Z.O>7,ME{YLMVx;q]o1ܛPID6ty/[<,dҪ%D\49V-^S~C(=b8Z͸ 4q䤚"c x׈xʨeC}T׍47b_{Ryd2S34O$y˃u#Buk3eGr6S,Qrp  -<6h LWbS֒zm7$v 5NbDT +8F1ڢÆu/#DI340,Õu(!k2tm~l4cDٓ\ps6+0 Vdmf([m r=ŵΑ7U,!`V~,řp\gcNbnI rP$Tۍ;6h} ]ǰ$4"1; `stgo Bk?I.sUPQFFfdI"i41\ҹZ -K!8 1EODpaِtxG v hC SՉPEv$_͊Ա _aY-ޤk,kbeb(0)~\ iƸxEm|<P$8+w8IoݛI8==Cxn^H*|^1 ~ n 2㺲-#U JGy6hc}hE-Z~ZAPGLwؠ.];үrkddS,}mg&us!藵>W;MN$, 4F ?ID7ĔTŇs0EQTKb Ld3qqkq.]f7+;o;}!2\٤hKۼzN@6$ctn%15Dx(ڙYN_y,1ٿcTאihqx{|ߨK?yQLِ+|14F2cTD@ptg>t@HK+$}jb(ԞN%dUίi8lr<~l)mhφwd[TA ;򺫖 e̋pS+c^z0%7LN!lCƌ[$ ^{Xjӷc۾{Ek!԰I0b"J Tgo~i{.զ鲌SlɩB!8T+}0[;,IR.g[; In7_ޛ*(zzd`>۩)ne׶nYqSeU  $ `|I`kOeڼ;1s Cit  IDH}f7 @$ 5@Fԩn {tA#UqshwZ@dFo+Bt]"j,""]  >5rbً8 Q?l>Js9}>?hV[Gfw= ח%$v-5LCen%DX=qVjO!!RȪR$SY$-[bMQOQ&*(Ӣ4'>DpF/Vpa}ohG0%rO!@ާw˟:@ pE>Zg5@jr9J =8%~[nVk2S[|<$8ʼnhPl ?3;Кnl6R`/0/k<|Jpu6FB rN9ocM֊eAOI”0P.kl;&g*c3.u2&1+ދmW"S4 lX":N] ^@IvO@ j8B/n@ib8- P~׎+*x"qR+ B?>HisNz ჱ~gkYA4zi{]v!G^ЧS[f1xˊ #Z0e /3tVN$P@gm0@4'7I0nBLDuUww+~P'<6,W5ru,TGPVYE\/u|6Z-{}>e*0n Tӵ~~jϟR^ADDib+ x{)\䊦xJ{t,3_Ho,dO6@hsK/e4=GiP4cwe9,6ҟN/( wmF'}~+gۆwu~oi;ģw-BJؽ5f\H]mqp<oQ A!` b+=uxع%߆**ՑDSL,3XrWY~`b $ =9NW0>&H8s.BqmX &A1KbwF)|V1jڝjmGjJ9ݥgl"56pY ^{ Xs{Z!+ >&cXyU0#m~N~_DU.X' i R bhyRmhm{@ ОSXZ)2^`GBOsWU5%AglkOHGOHe"*BQ&>lJg? gMKiJCF5?%훣/="Zu_9;C&HHDC/&o/k+iLN=YxdK"";SnwDTuEŢx> nk\' \",sUqg^ \I\߾H0ے;(%߹3Ү3Ve \{U= #^.tDvMqdQ JT`ݢ3V~D@CxA{{i֜Oی?\wT61]d_`z笐X;Z|^Bq@ DHL3$!)[ ށ` D.*L HRt7}9 7x`@1PWͬ( t{o>[p[(ٵǗiJ H@|(\D <+(_RBYeÀ n.IEzlRp6VXQcνܩVH7pu:F P"r2( IzZTk%i_ S~`dxՆ!ʹR9N[50:)rqb} VPp 2KAS_[ADFP}…:*D 1x3. 2 vIfI (EK}&MiD?:}h?MA ˴STxas4&s;j1iE yїH.t[q'I""hS `rEEٝ}]T샏8^H)0IK6Pw!bEXY@vJRZ\ِ50\o]]W &y_Ds`-;ZΜ)H!dzO]~qtV9 {+fQxHD0Ko?_Jot^Bcښ)#L m:|G_?ĬzmBpZi(Jf5 FD~[tI |tSHgp*‡ nhS(/ Oΰp`vTG |hZ0O>.xқpd{!#$tу$"hWM},V~kx3^ >R~8Z"QjDD)pw2i-t ȷu*gc4ނ ޿vj AIt A@}p_aE9($ NMQ@5A@ǐ:p14Xrk:ri-iM"cI TEmV dQKAID$Tf>;vh3iHKnlic&rHH&@b{?S&'AܟH*c @16-:OoaOVo=f Qc'E!F>+6HD3z Gk.zePqa/XQAbv4I Ǿ(Ks>JV>A`?M;MOr0@PNb5d"p8*D jʄeqYl$s9c̼dl37`hlֱG:}g+JC"(x͹wZ[Ӻ)x3r_ZS>O]>+}k* <"XkmN|jV-D. RhI$KOggS4S﹦0Y#!#%"+''%''&($% #!$%%%$! #!%%(($# !!#"(%$" "##!("$$ # "#*&"%'&!#% !$#)%#TۭɮCWCxkCm;%bé۸\L)?]mKF*6%\ӐQl_[0_?$ Ƙ?7e \i~׷6K:зL|]kJ TUhY50&Wd%d)+"(T`jp>wŧV֋qfSDttu?zgj鼾ohu"TYfJumja .c穔gC5֤V^d_YV^&؃4P>l<i7[0:qU0q:;eThCg (/n~em壻X̏/bo=t|<}EF,T]OdpvL1_"sDil#\Yi1įm#~('L]Y&29Y:JIj$'T_<[C0 Θ>dW$^Olaͣ 63gpnǼdz R T_Y5)t(eлEzOa/GL^[MZ_ٝ!Rգʾ?\u/:VK^=?(އVLW1nv%`{f/monzu;T[~E􍁥'͗,^c,eźmPU7d_aԕU҃Eltչa%kIP\$?U*?Ix0\/$Tdl͕M#w}r|ԣ J+fS5W翞X=H˭ffkշ_hGTW8V7h(_):t%Fd'a5LWDuh^ f򝈳ΒSMZ%Cda]Օ5=;e.jd[ )֯D."=؛ОQSVYMoQn&.d]59nűw ?l soys)DѠU m/2ڼ^~џDkiDW*FM:yN)$ˤpi\Wh5(?xL&!;+ uJ<]JVIa&Ѥupͣ}wYolkV=-T[d(D*W4 1I#d .D[U4P#|)e<5ĿaVBL\]=j/O[Cek7\]e ٕlo `v[R :XDD:tСPOi߹񲝖 w=L[YBQVA6yͼN]=UT]Shs3xnkhۍخl|8z&h/Eh?T$o%F$nyMUMy qzЯ2tEmV) ˍhL+nΗmPM-dôcfh9^`w{ e|fyM-w9>rD[ߎ\_EГE1X{s5˞٤9 e|͙FL]$Yq]@B#dwשLpRf .bLAqğټ|VC2UN?Fs3+Ғ.W^aUi K}шFWjsj=u4.0;}N#ץ)!k~;4q^Fyq:s2{d;&Vgy cgչo #_s>Ñpg'r|T]TpoS'I~'mi)5`8(Gb:H_gYtƇLYrQV&T-P ^\=~v2)O`\[i~ &]WjhS,o4FLIJDW2,:}{|>kMb+T2ĴDYtV }xvuim(#G {uS,"\](Ȕ/n\.P磖\8` T[Q*ċ%/_IŰ,TWiY~CzsarBFD%DBg <L0Oq^$")!#x{srRtʯUΏԍQT^gӕs;\*U\Bܪs[EŦo_@n߆RzсO+9-8A OggSS﹦0-'$'%(!(! !"$+&(${uy! %'DYi}[OGU3ɔFo-\\[犢Ɯ~}e=X ȍGxuyn/r,2"SO0|\M _d_waV*?Yq;oM=w[z2]>R]Ǖ͓YjELDȦ}ggtԶc!}5UI-LT**W  <.ơh1f{դW>IɟgP %$L*,pwOH P $;P,(FXWUhPDӄFe^u>rgiTek~0/8iAu덪\S^&Rg?5V1 aA87k\A+ ԏ0!f[݃YSL8ny䍈6UCfwc߾C5@Eum8L}oTeY H5Sg0 PX3iTi![fc݂% h\ t9ϥk⹠MWRGtŋr7Z[ _pv 7PXzݩя0=zu =+$>~y-D "^\6A/r@`]q.J4GVDk>t"woS!{ P dPLLal Zδ}Q…\n Ln!. 뫔d,,*YQ4~.G Crx`msa+xPFU2EJDGs]d6ab>?r_k_84<*hbDK]4u>1y!63;@ vB ZE;"2I5{vˉ  ץ԰4ғ;}\#/Ŋ0pбyPBDO7o Tb0aB+_J`Q5DꘇA7ԫ9QB듮յUC=CPg .~ID]./s JrU @$BxƒF_㧯_|G?k4 ^{ܧ~G;']^(~6҅RHw!/5=ӻ<#DFmjM7U;a*,ӟ6>j轎U$"Ud1pkI,e~Pa' az6iO:26JR@'yn٥}]^|Cyr^wN2R/wZ*BQM[v~@@ox@EUxË-R<۟ݬt0NzqGƧ=$VE;M<1*wӋ#@Ȯ=u=x:9~=W, R?%|bS(7\+rzt.& +C`x+$Z>yo!de_~DMɐ|TY*H4GO~`aOEx3J2JM"ATW31\[E{J{#ơR8KLSʑ4߼!n1* I~D07+)?p>G1I{ٳǑzgun}NF)S]_i̘<%˸l:l] \ +M١ޜXݘLLw~;{np8ϹzL$x1ȷNf 7=}wRgbalG qgYE\!UNaZUvyQ'pW_^1<5g"Q?f5t8raPGXlt#*%[kb*CxL d"^wϴ6#C0;x|9.%MvƑ]q󰅊vl.Pt !>(.-Wt[e!}Ly8ԅ=ZZ>ҧ>mi"kA;=ۚTntD[voe4'`:FfU,tJ 7YeLA/*\%f-k"jA>Tm5iF~. >(@rpΛJ]DXQs,J& =y1:n_5:Ct7Q| `FMPy0b H i]W > mM\޽?a4n%C$,%OggSS﹦0 #'#}^|nzr ^ R!fbfKگ3e S:n[2O|hbP7d)3"T34ԗzo>mosaEr㜯s.k )h.ArSV/JlcVTM6Ϻv Jف\n"FX9:l$9c[oQ` ,@& ڨryJM;U7`WRf7r,Ë= W-xdtCr>՗s 7IAȥňq4Jr%.+K^\cDA7LEbqp^ ?4O̸r7oky|t+NzbA?<ib 6wrM >ֶ)#K]&ɉE3c߉ OCܨtk CҮUZFqFMQ .4E!عcz]JZX%t7Bj8#o=\tӬ|XO>^> @ 6'Vc#|Ov.jݣml6텸j@W\5UylæM_#mv$X>~T~IO-;N_" _+{=m{c*CWեX 9DXph&I{{k*pCp}@2:X^ G\f.:6;y݅57Pk.Vkz8B*׺ )+O0dKX b%'QLD$zn[k81O^0&~N+,h pO ::-BR(.4@4B-G|Jf3 #h(FsHtSi2~XXSk"znZaoABv "<;ϻ(\{:l3486⋄/`z8tr9nRtl~l8r$<2yujJWY)TYuLµI乶n2.k<Әlx/7%7,L^\m>/wrط>h)udXEd[h+` |N S;-]&o~٭3d_ԬK5yo?{~]e.Q[  Xa ezLU*yhJK.&+v?m}ewH,gs:,h(+A5MDfƙCNOb4TZ'Sޞx≍kdu_*6 qEY !On¶M݄(N vP/1!2(QQ$: )SP@=SLfƣFT%F12,`TV>Lcu;"Kݒ=>8THJr&C@UWQQFZW%punU+6k'ktW)F1A팱M|(q\c@ ,=j#΅l%$FJҠ*O=v1BP? GuV2(PdEFFj'|nE!@esK+˩/{Q!a`v_BG$}"8f7xQ]_|ut}5 _%W{3j97O57k~Y(/tzuJ i}wVCx)6g<*l3ُcLN?8\CZ ~,L< -YwN51۽#ko[1gD1USyWƞqcǘ+y:keng _Ĕ :7{nd*oJ~kܦ~;MOߒ<ҊǞg9fgg',D5YjI5Ռ%aae(/UмϬA aNJdCw^&-pCB/bW 73&'9NJǸc-v6q0NG}o7 B>vj3@4*;b}1bk5኎R_64Oð/^pcȆ_l_׬%:f:w:[Ұ N A5*vRIL>+FѢbbh`󡦂)aL(B,WS9(4I3|abH$取1v1*S^fb H2kO⨾W tL l9?S텴?To\sw4< n)_^%z/v)@(QT|=)Ų8f0&|>//5Z," ֨ CWw#$$NlI 7 ,1i@v;jHth\x9PU֡᫘ 5ZY MYk8A!W WH[劾N4[m$7@>\˕oRZʨ`pa'~{cIA63>+֋RnK\ w~ю%:FM_lif~>///*M x5MF]*2}B71$? 2Ђ,QB&: :JR %`Qzŗ?ߡtO)ҙגKңm]MewTVLs"~ޥӖ|w5szy?gׄdr:ޅG*StDlu#vw$\>^L?Wrs"eQ7 O +B|d- Hh`kY?rjT;*t.Ewp|{h{.l$- v9\^6 R0yMO۠ v6]C dCu< uX2qϑT+r2ܫ(ʹ‘+hTDZU E"NI`HNaYj.u $Js4m)c/]2퐆\}jZHH:w8ƟF Qafʋ uyJ/6H%k8??6ěO?߭| $A8))i~/4jDbZ(idA'FKKi,gdoZA-oOژTJqwn )!ǡsP&uמ"YVe_y8ٱcŅa5-sIٱX+L,u%eX``'5& ٣pp-n]1Wtϓ|0=tU{v0ł\.GoA&9|p~u6UFP `KL_u7w_x9\ ٔm|qAW9 ƷR j bI!ZC>%f@crh]BOVGrٲTX*.LtΕכGMǣSYv@i]vS@G';ެl"0c)a:*3ZqC8T`o!Zs8~76tchqu4dRk7W_b OggS@[T﹦0E'&%&ҳN u$^d,y_f*ܶ^H7W:bKu![]G(d5Z_+a0Z5Ϳd7K?%(|e}W{Zdē:Chc+L_[;fFH%}1$G| =%Rw(Y ^]+ Bca|^#m+?8  o [;\v{3vFnSd!čY"Gj7[1uHidUfz:HLBͩա`鞵O{:cǥ1MrPT(F.iixģY^ͅYI7!M:sC+NR` c)trjd՟=~IƜ?WԋTGXO`oeF3nt5N__Nׯ }Y:Cz8նL`K/Mc65d9fGoH҇1#XR%ptK**><΁ћI>7\#UZqhmT/Ef@.||ŧǮ T/5TkJoT#g怕6!w[_4n#D$68]mUؗ~sn+A %.R5W%MANi\Æ{jP~vۢχtxONsTNGhZT$/<=_KVB@'Tݼne 2ЬRLČͽrzOׯ=:X\??kS&2!44;v᭎%3?A\p}H .T^qRn0߶ DOtAV@.hUj AMߛ^6E`:Ǐo޸Nuw~wnBgik߾j k=G*2`NYNuH@$ ȸi ,Дpz?En]M-vj]cE|9Ӫ@lۍ oqS/>AGV#ϑovr:Q_}ќRoxKl %;R4:#'M-r:" @8@دc|>%2?aSR[,}4 +JDAamp{ 38tsH:@Z׶^b_Fê@g䌆Xc;qp}7a/DH$(q@:| ^c]LׅCW'ES=*,tLGSz}'cÎY4b+XLi*yBhӵkvb'QOhn̋qt!Ɛj9F1cH&jR-wGSKNOŀ4%F?T-Xx?-e/dڶfgYt'U S:Ev55N5#+eu!"`:Uy]?;II1Y+\Y$$kUA%1H9r ~1FUnqz`2X|~iQv*eղ ƛ¢fvpYxm]tLG6+)w А=9<6*N?$ņvÒ|&\&Ԡ_2ȟΛ9uE!W#b( )~s]>|ށ7|] | 즮s!)A]H r]~FʔGQMit;p_au Ϛi 49O`O%`T_K}{9UeSV{7'C |wUH H_!DE.wF%}_9Mg/qجWk*8ҜC`YYޭYH9" ?Y.gַ_2R.b[᢫q_[wyN>Mzse?Vf'ȝ[Hrr dcޣsX!+veGhkY wNw!rY=bVvJ1>]NP_Vpcf?&: ֒R_r3uxż}=}+~k4!B|_=|z .XJ?3nŅO?3#:'k u2%v-9hGL8ıƋgc !x!M@];v wzStqUBh:f٣*#σc>iu=^!qm/vrG¨T$kbi ;oE5d>w4rpR"U(j$ ;RSYWp%o[r~'։mX͓ V= /9 Xd& ?^hm& [[J4 ¸FLm|:*WC Oue[ TK%Edąع ě 3jh!- .-Hǣ+8%݅8cS8=7܁8mWR4K*Kv ow׏Ud/#s,J) ?!el7n֛d~1bξ}!ˊjڞ0{}{ y&lBtlAkHR&9WkzJ^2:܋+zK'LOOO,8s_gC/AА =nQ A9`M_Ƽ׋nwg\ڐ8G_#z' q9:lW-Vp9)惨F1uL c)BϟuݑJ?e9Kt/%͹%v]P2(VhlN҄B!@`sIEȢt'&yuNu܊mr7lK.)&\F\I$؋ȯj5SdWCY~ީOk'Y: TVQ^w1LؓVH/=EndOggS@T﹦0]o"## #$!#&&' |dg"4Z!Z7DaE%W?4CBk['I2<{Eg̏-+f,>"0h4#gomla$>a x,ח[a4B/i!iiH㦆1B:ejP$ҀtR{T% !^\NƁ!hwŌ92gyɳVbwm \*fxLv2r>R`wҚqfӻl=ヲ~x1xmHKP ݺ\gD\_;=jke>1;IKѦ~b7Xkq~*es"^.ߚ/ "l/vVrBh`Is\p+S}ZPtN|9(Q8\49:/AK+ʥST.+q1I@ɯrkmO֪|w]{޽=j#1܏$"'A;rK6dqF*[Be` $ , PW 6ŝ^r͹-.'=w3l5lT"Nv!rNRۗnC(cUP2p΅lCxÆ+V+F2ZqUf)uKվ;QNGј.f"ru{ NCC׎% ( D]~f`6+# xKl8^ΣgۿԽ4jWPs\HoQbiG"0\o]k6J+xRo׻^QWnOxG18yd1Nn-ӓJ%aPf(܉K6@Iq[KAKĒsݿknIxO۹=KwH~Jd;0)+UU.aܹ!ZeW3Vq eQ>-KQ[8OhVT+]ٖT۩Y2Gkެٵ:HaFSG(CJxh6 Ԛ2~*w/VIsuC ]k1]w{!6r[e7:]kyȩcM; {~Zw,; ftYLkzmp\֘:PB5k]OnǬ4:D춫F`XR3 DJ9oۛ kz|1rm@"^1ZĂ0z+J|8¢2?&i$g_"h-R'3p;fXn-j)U$ 7d0KQ׺NS>A*\)EZgeGS+~vT9W0m Ù>NR|IU[jM5TKz”!-ӘR"q9v-?fI"]TT/DE_c!nZh )(1 (GPhCjpC(% G&& 2+܎!O2]+xB|> ʎXQ J6dc[u_&L@ުH$5=_.إgܧ,? }\  *,*+*T |b,V, j' mPP#G V ^1hRQt0yυi.EEM8C)TƏ:.O}vZ4L5ڮ -S"U7i@ @'|ag&.g*` D` <i 1 G D+lN&c_|."!AF烱$SN͜Ȓ8Z"ng pw9{J_D-Y9nT D 5*̀4Dpd.7" & (*\4xX\F HN>"~ :d )ARL^:5qE:Yo< ~Ӆ"`XV&T$`ܶE@^ґQx.RUE6C:%mCQpXQ#ᚏvΒmڣaeX@)`]*:x v30Q@VDDL ?pYT|U.+@[b\4E&U~H >O|(#301C"8szɈݮgI{Bg3e `P&':h/\}(PAaBe8#J*~+]<{!rǚ5|pPs+J3ӧ%OOs> ;pmw_坖e㋮u] {I&/ah5Axú&эBqYweL> .oB|RE$>uZBRZkEKP Z?>6^r@ӻ|f5mﰧ0ɨu86W8>(- w:^1Nkָ4۲ 㼾eĺZ\,_kd;֦*6*?jbqv (1e o9HB+T_?EOEyXdy=)r@iA|K!g+d;?SY^bB6aCýgL!VPsw bFgD1-n>|. b0%K:;s)=ifSȂMq9[@jrLTcOC^}6}Ȭ3bI nk9йNPA3XΎ3E HLhh1ѥ"A ^LNn8e0MC K T|, /exEdƇ+[#=Ib~E %yeʄ \pdI4\nύh7 [D#w'P,`EOggSU﹦0'>(&&%%"#%%)!#" $")&%(vf/Hy  Mq8f{CvŌ#:o::3]5Pn [eu'BjE]RYiMs7@Hq9-5(s ,%0mdy\*'W$S=ό ܲB @Zn^Szq܆u4UKK%GTGWN( iSօX>_p dFuGj48+gIdΠP!2W. LY1t=^3%"h"v_5Zd?g̰L6 'M19$t+zv^5nu1t|Ȉe9o[ 4VtSf'vئih'z~p@9G5;RUWCF?4KQ!qf^wsvsEpTĂ3kS<X`msΣT^~vZ'+k$2jur~4F!xe\++QRSN!D0[6;g_ iъI_.?ܚFҧ&rL/Sɼm?6(&!| H@6vK%wwjÏֆ Kn oT&fQw59[K$N+M -q ֆ!rWaeJ #5w!ɨD|nI=K8c%\0 O#yR`45jډx}7 tל#F"\5"]IЏld&9G߫XؖIQ/L{MfP+fkސyXs]ǣ[ROwTjݢ:/K .Ѡ:)~a`h$y'+N륻/\0}v2+vFhmA{3[#(k:J fU""Õ0 M81stx+x}mF|,lԥ-&VlxbA"~ۥZ^z jN!<%o*߰J fQ{]W}Nr<XʒUwR;CXk} 9 8Y\Ƣ˘6\~~x+z~voL}[7wܽP߆chh!޺ijsCޜpimUJUu 7,'ziA%@/s++hBYZgOe2سW_F݇/q:715 0:i;4r BxilԇݷjׇjmAqi}9j7C\C2k@"E˕ҵwKBo@]Xy%/@Vnd#^gwg/&/QFM67Q䚯*d"cyW*H& >q*G&+}Rv>w-u׷ObVF6Vji1n: CIHpC^ v+qq\HbI\ps[@~qu#c0C =9@ n~P 7itM]~n%zR&0Ѹ }ihR}׳5/a5)4iG(9nh s)8XԑJH\!5"+e_фZFkн-gX˵ER% Ep'Kjn$E9ޞkV<EMp]W٥vu_ͷH*ԄҴ7aVǏV5ф;@rX*5 ږk LD(*=YhZ-M^\p2v7Gz{.#鐙~q kvMqqPqz#Mljd(ۄ8ta?yV[ٝ''|ϙvtci skD8- h$lg4 E码=]뷜p3n VLƃ7#QU* !f1aWԷo:)׃)v ziT S~|r-`ck@.Sxzn5A}; .4Nc-7@m Z@!.G:3AOggS~U﹦0s=!"!)''&zx|y{vx!"!! !#%#! "!&$! "#%   ''%̞[`vEk#. \Rar!. _0H ' ng!k"Ց9|TY!Utq 2I$@'.]RT<4ѯFD{M$t]5p!qVG7Vɢ A^u,a]ETx0>֊"C ]K]/!Xjw sF~}LX8ݨ]Q@+`o t\ԈƸUErX.~B"CdY@\Qi*<>}d~09-2jLW"YV|.iƢI5ŘR4Q+}#$Qj(0\uTQmWm}*ۃ-e4T3gF] LU2Ǯ+Ns-H]^DXB59ڷv \]AfN^t ypzsXv󮜎D[% B[V$`& &euzoi!$\]zS**`>z܅=PkEcl^Wn(;3a+qWD![o IWzq&oxq} 9.v'/5Wx_c2ܓWjK $(@@<+`Ct!$"DI̮B$_2|>by$SHi9"e :i#$,6S)CCI1G2L5pʓ3GWl}E,rH 7X,.ެnb@{VVq$ NKd#M#5nZ~ޱj넫|bհn(;#C ]D!(\jtcpn5%P@Wb ,.E;6.J<"LHp%r@I2f(0+}${e:NzX)km}QЍf^e@IaͫS sQXǚRy,!<5>|v E+NGҋX,\ @K#Z?L$:ڔN)q_  Nd8Uao9yÝSz~|%L5i8t2b,CB= BX8+ֈF0BQ_dcny&oMmTQc2OSs`hb{9DpQEtal2>"PG]NL#_!*zT_Xx𺦁/ծT HTY`."@0a;E%V$I\R3'сE  ]TS̩J(`%ϖ>z27̕!gH\YBOUb&۵wKrn" ux!&7LU$JK>x5]Nƒ"BFumuϺ(]fH զ- AƬqoG5K*Sek_{0k*15WFVMۻ'55j-N8Wi-jUI h F%kڢHdV@n*ڮBgWovv=1R<[æVc8Ng|yc_ {UHuڻ f˿WO?gfyZvڤ]7Xi^PV|J${i''2 Y%$V7]~,vQ Ѹ`|.epG5Jo/ }VhvsԢ2~{^>;vϊ^r2u"j8&@r=y-TcH,S-_VlNT^2<֩QoG 2>q44j<*zrWxYm.j 3bt\_]>fvO-MIOl.{։%mGR>*:v|F"*OB3v:|>fa?r븍k4{xĈb;rosn،-\ n8Y4g BToʙ]+cQ^l6:+N']eogn#,rn=Ac4۴I{GMv>˨/ !L^Ȫ⯊9|}L{&w$~X‹e-(Q MQ:%#,~+e&rFj| td9GKt2:us{~T^%"EwJjKF#U)"e"4!hp>Ni5d#s ;C̿kAO a2vm*,OwD=ǾW$'<{c1_(nb@7 ulVq8=PlZ~wҊ*!К<wmfo0RC]W\{q^y>Dj'wBxٰӺԔP Ǘz!U_·7?.رmĹ^B(hv)ff4CG8Nj>qb FiA9#ã`8mp;ǘ><]jg=~\d׼'Idƣ!B*C:?YղBv/֕u /oz7lސKA zYJX<1ۋGڝҋ_sn>O>s6$my1iwXU ,c!5#6V_6@32ۻ^6KG%*_ye2iN܆×p\ԉץ$DRz7u`vRD$_P;rcLQ؞cc.ϋ )M2 :S3G&j[0_)5ҽI͎՟oq(*(ܘJ *ج`I0F ;:L_^*^+!u5P+ƴ @0V|TT8FLQb{0 V @LS4x6AX.^Jae%q!j>M. -T0Ø .Skv/2fIl2lR#Z#Z%q*PXYP6n}@R(TT(`"|P4iFGWi!n"Ӻgc3'<|J1~588Z-ON& |+ TzrLeP7ڴ(:TEG3.؂H BDʠdP`qY cэX&wD )f}[p'xKP#_, h#Mb8s"ɃMJ,7Gc@s0F.L0n$F9Vkj-{;|դiX.enjJ%D\TS[`% R*2=P`].LM(0u]ɑ(:(8c jBޜ?70- $M)fO) >ˢut^('jN:~l]o{r\xpba؎BefdUQ,@Tv `ؖu O1-+2Чz/O]~X#xK@GqQOggSKV﹦0B"(&(#"!!"&&|LMĿ|uB?nJ8IH)( s^Vlp6@ QBsZd] ?jp# U]AJa20P#77."D<&Aǎ6y<C ufvbnH8&o6r[$[s~Ϲ̷{EPfF3x3 @^La`0K G@P@P$ \*GBp#^ .4Y|`a4YshL\.ӨX7l) |`תsSeu/l E:|v 7s1ZI.|],BD#dY`vV8Jh/tD&F >m9x?˥\38/ү3l>޿V|:VfS[WP#mތnuD]J>&R.aQjO ݮ*Fy& NM?~ulD7 7GVMHRi2,Nyڧ{Ӈ~ZIJƓq+u`n<eZݶj,U|lN cV-RAdπ)mv+@#81(\~|t#A s !I"Ӣ4NԘ͸fz}sSXB\xqU27Ki ]Ԫ!kz]JuP۰S2 J!T Z@涗#e~aH)I vyrJP(vЦ.W >L~DXB|;ďU"s),ͥd#f6G!g8c}1,a*CHP@;0' 3#<%FSh0޸p@$ZA'6 GXq\+֢C:t36VqЃ7rT{JxPSUzO ARA0\Ӫn  a SQVY&<dil?CZjQo'%ӥ{9 DlJ*3c-P"1/2Xܦ~%J|2ɤ u'ZMRpO)"CtH"{q>=ұ 8? z<S^V"J%kDr꫟Wo@`Wr̷wR)+2#%`Ԛ_MK ($U@цŇ`^M2S #Y6\/ٖqͽi$^.w]ʰ;WWu?*R+?\hLN y|} SdMp,rg X)e7$MBټU8ud l1ڨt,緯)GV.PZqD>4A.wC!t}hdoZ=Hyu@x_0nhUs]jEIUq[ԏB$٨}hOBԐ>tznԯT븾Nl("CNzNF.gE6ǥdUK1uh# ւѝI @ls8mdҢ3ٺoov찊ōNv W6dڵ05R8c& |J]R24Y[i9eQ{nIy츾Ik##gXbtYtxx̅J 6!_lz\7xڂSsT/ JQ|l>_XOeJ%m }{SqtADp(!D:Zgk` @")PcԠkOU ᣬܙj0ʄPȮ63xQIf D%d[5HhN6wχ.xc^ԘaTY1˵ e957npvo DOM5fڌ?\^ҡX+5/F:*X LQQ47WHha jIQLSjʉn߮>,I#3 sa㗇m|9dwad` ϸ@HT4؞f(.p]@kPAeެ]Ik(τώZ";k|Q` t"B sSDvcz6kR[.MS+{J贀DvT!&)&-XNd Gݤz]I}0.r m;OggSV﹦06*&'#"# !()'&%$##(%)"!!"!&,)+!#%$(%(%ތ2p'i)(SZχG*:D]ҰiH~E:Ѭ)'1sY=}phKi|x}^@%Bq ~K`NKR8DS @n]zG D&PWbk# ^Lurh)hUQOR1i]8#RH."Rp?-\`cԌ{bݱ=o) n!(u~/=CP%p2X70ԭ]\Ci7va_]B6 6i ܴaкfj^AK905&?9:Aպ_\<P: ?D^w|/"IIw4<=Lya>QC>@ uRa @ړp5 'Ă %lr)x -|D`f]NpCp@Fϲ}I;o7ەLYzXycyѨ}c˩8Tݘ@|h=A{#iy6)9RG,YN{RsccSӍ jt_2{cRX[,5D8pBΡ ʟn?E8S~v2=ryV^5J8pO:dgE6eɎ~%~(X*󉣳zKΒ˧-:R7Ac" eJ NWHNTSW4قճ[/۱[D> $N[@,QCz E& $۝!)fO},kJ§ӌ }ϕ1|}x/esl)q\F5m't[Xsn[Q-߻iEٺ/$ !d( c #aAKpgv;N~$X =My4_/.z{ɟz9s$+J3<}z.m?dܴ_T%!V1oV!a$5` 0$J ƌ{WC k4~;*I ۱QalaT m߿.z|/su/{[sædL@,rڞbi\|wJbwsaL5(0D6ۣlȩNM27D٠Tm6e2~9Ohrz=?L tM>rurSV/ A&k>j,ոmEӎ1RjMn% rg?_ߝ\ЉetZ99}oMJ+jdYyΗw%Ήs0zNXXmν'{:m":D.C g8~7W̆9f?*yv:wyfMтieC"|'=~ lpԃw9r|_ 8\OWGދvr@7NnF0n/tFƃ 7?Ow!l?kB$eJIqrCJ34 ٪J\ZZ ^x[rMu)j;3ˑLRY!1$ڂĈߕCk8m p]slj'z_(]ßOu۱cE59$'8Z_NnuyMweEuN2i;fc)`wC!1{šo0DvW!`eTG}JB?\Saaz4dT4ؼr:B_X7Ѹ侎Dx[0W&X~O;qϺLck8 \rWu~srd+ik>% ߍ9\߁Wv؛`_ҷLj-ҾzwZLGC`1 YbB ӽdzENlvuVtl6;Nm,jOݜ #Fk/ձ;V/ K1WJ)!dB2r0!cL/kcNYp~u!=fIHא&`I Nf HjA8& t"5l$v XQD89k"v[r -Wwli|o}vTWJ>դxc>lWR{ЙIW/ 7Qǡ ">SP2e)(]VHB ~ T٩l KtS(nT|A&+Jn1]\pf^ކ S?Ց;ɍ3)];DdS7zp 0YsD4юxh}n>LXZҦT](-K8%4͆W5 V i,I4Na<ϸ:6a@p0v9ݞZ#Ƥۊ>DW)} jY,3_~W>yntGo CJ~ceTaLӗ  4 gٛ,<ָom\ct"l l?zS5ۚ~߼L_~2: 5&, `RȞSƗu>in94=\$%^tʉgFD!s (QZgaϙSG4"FSԛ沋B0h)N Y-RDtKQƬ"+H556L1ٗis9a:_?3_}$NgܹXUX xjZa;J4+`Um/C}O3wtX .^,K J/.m>P[GE(Ÿ3D7Mծ@:˥t7qX幠Ts($S/F}3$N;D7ǾÑmUI@{`ED)dQ4 WQ0%1vb{u~𝫛0%s]1&tggGqe8\_-]Uy6D$U$AC3qQgXcO~4:uR7cY+v>"5(E^i qOggS W﹦0~1. !""%(!##!" $($#$ '(%&y~DW)q}]<(%e!lcTֽDYѮ2rqA맜A~j߸JDDUf@L}J`rv PZOYwRNT_1ۗB?Ppdlϭ͢,"cjY0U %?5>wܞzHnZ/I-c"@:/"ѐtz)G&>hFwΝ3.f;qOjY9;rNjƩUc p9.ϗ:~,t:uTd]aq J82iy{' d[v%u}8eGPDm\]O5`q7?*tyH|gǻC,rn-mQG \߆[8Ԏ/"Bq1o?{$̪ Ư_cn:=! @\K[*0d_Ai'ye Ҽ}2n>TWs*}w*`3y,EvMb>4GߌkRۡwO]+!58h"\K^4uS|"su%kvǣdoO|V8Yix{=S \QE . D$i.F"x:aqȑj-VxR\yӌvf-^F^eҎ﷣TlD6?sLtttY:}+dK9H]|y]!g_<Ղ3ppV$ x:`s8KL ͨHxH@+Pc+QVjʥ(Dg0sun2;l[},{/2l0j/=3UƧ <To~vT݁nHf˟zsߔ7'n7ȇ4xk@RsvTŔVoġ2bj@ri%pAby8 cJNmu>u[5e-[E9n) #>GD0+һ-i`[%UEpw?N)5&+P<7#!L׳P=ц.*iwk}Y\ OGӽZp]^ K1`qw5RV9扴xP>Սp4_JJ7\ΒE2333Et6 Sqn28v3 hIc1t΁pa4ʪ^'=\s*kI}ѐ~OA|ݜ3jcsjohP_bc/#۩u*L$HʢIVZ.c!4^@Tt}QbPCu$0UGӌ[E \&  > FMĨ@jGiFEtvqT+D %^ X:Xӱ`C3"DwK|N< u?݋.63^u EԟMvV?)A@Z"@}~LNƁrӒvwThvA7,pD8`3ZO ¥6L<dCj-b)/bGPP S STwݶ>ҒWCn\G:cG(8Uo )&1j;a =5NY@/,TZ㶩9J;|gq#:1]gL'kiG~S 3֙B>.:mjy<`i-$fɅ( "ۭAbA\ǃM0 ;s, 7+6 X{ߎn:X/rNZ$7WcU=b"DŃ8 ;84-8$PEw50k% kFA fL4GHcayp>wO{1}G󆝥gJX睚Bbڲkl ֹˡ]9gƈ$$5ZXY  #$K3 .EHYv\ Q[{GȴWLbzL3Q1 q\Թ^J0GZ]#=$?RƓfޯ~'o\,^){DeČEZ܄J‚IJ~nLq|`Z,wA/<UܯXYU٧(j|vnJԾtze5JBx{`>C9ԹѳClv8}~=H|Dw= 2%ڵw)+2(ɬﳢ|0/P(|T2l.4 H V3sV.\( ajLk&t̀ !%=35>(^ARM0ot%m.֪ XCC޶ [ލݝǦZGbZ@+($U`C<ꦼ+=4cF쵏?/}t'SCmx6N 5^|RlEwLX8OggS@vW﹦0i=c*!  "($$w||ywxu#""!$!)$~|LU\ d 7WTJT*DSJ=#? }s7  [XT N1!EakuOH[M84laPDieSW -@(} >MΑ" QmP` :[\F@|/„}.ws R!)L>ı1ew tɸ{Mvrr/a =h@/P` <ADP" PU(\jp.L%RR< bcerrpxX\8,gi(~c^F?L9J\uI y$ l0pqYc$Dp($ T0`E\L.@<քp{Ln>]|lf >_{,W,- p<>/ő3ʈtFBWvW?'bY)O{}L&0,>-pfZ C!eX\X;2]mްp(hs:>K3)~K9'?1PhHmesP8pUᛋޜ8 K\j*2 X*Ųm92~5F D _azj] ;VAL 0!犞KNQzʌ >56,hb]Ŋ$4?+/\J{ W!UTEa=Elniq޲9ia \]+LDwA_h Dnz:r! Q"DH$R}0r6?bQA* eh=6؂0ֹ~HB3)r$7bhقeV V>Nؓ\ZWv D\?@D𹧏Vwk&NJOvپ0`T%}љD~~0֡3WO ۚ0„ 2l ڐUK:ae7@d_ '6(T= DUk?_u,4Sd .Hѽ+E]iC=>(TW#hEM $ӷV l[2ҳ:-d[Sf޵}hʝQK"k;@(xh$ GEiyWz^D&9E+>@oXH?cm)BCdƢ ]7TW@R  oKAx.z"+FM׃[C=84/e؋][#(*]8;r(ǐy};5>;e_Zg+tWƷvajNAz.鋮~frgSfꇑEBz6+aOggSW﹦055$ ! $('""&%"!%(%#"#!!)%)" !#&޻Sp(~5N >\*E$vS`zOMڳѤ'ߏ<;;8 4څ\Qw$VOhU{i3q*pc"ql+P2í%&<P};.쭘C.8ʴѐCnI\7ka/pSHt7~ĭ+gUQw:4o~"P5cLM SD]ZMcDY*ȹ A9uVZ( vnW;‹Is `K.h&kN?QLk'2[횼~F⧈%4=71^s &|Ϸ r*^b'L`ZP|%;=u k!ޤn,j<&DMX~1FKtzg??;}ߝ8rDYS>hp{ۼYNHc6NVJ[DUeKyePVD K?rհY:ehPFE  :)燉\K=3͹R1e&U78m9,|J~(Q9F 5IsWDg& 9/#OBr\:eϯ)JL.9V_S[ a!!RGkk,b= "<G+NPM-rM%7\@ͷ)XT~CHl~<4mg1p㾗SI;{}z[U#pr ځ9Nq.½]!>70}M`4ob( $͑fI_O)E XC"#C@`Ā WD$Eܬ#Z ^.x>R0#JG^E|%%Vi ?h0w8Wp&uz~  ( 8/' fXcYN9Cۣ݋W+?=Hc{imFgr% JrI#!Ze*K G fp'g' !i f/e V^cy @E\(Y#7+Jq<΀j!@[ruɴ\p7$6+߶{nOl8iPӛ4-TFY6y ME[Zw-sL$S?lsI YSsT u6GW(Zi|4D:Ɯ}s~I`^\_w:Q"١C"8;KЏuG].:Zq*+Y+rޜ_sB3 Ɔ LX(i؍F-N(dgfF< ߷j7]î_7bJ("4&@d GA7xIdi#2 .?e~lv=1) f em &+~77_4̏_4k -5>fE @ 8{P a+.l  V7< PT~,jt]>|G >`_6P3}ZJ1k`+e8QUNF]Y'%!v-,Uif{K~$lR+<%DؤwɑuP<:A ۶ O.L7ԥ@V@>Ym>Ֆ.;DkcU@R&_>/{|( |ժ],~.VLU(t grB~et( gp&DW˦Rvߌ">W9x+<]h `rU9~nQTkDI kن[ ˖.OA$q\6a*y+FQ.tȫoRO*- ;ϋ=۸as}~.Kn(gʆEٜh#~``$[KH5dQb9MKôeB~.\ŭJF=F#AM!k6h>NΌJta\LȎ'˪G˗uAĶ?8TD!X>pGh{A 8PWrx?I $oXfʐ(Ѹ#rPMU.;2&Pa%J*>_Ʊ\LVC5.89QUWi4-AW_U *4 <JzQ($ .;h/-2uY5%DQXe] xǂN_֙"BHc"TLWɟ-i柿š6M/9ֿ$ {?1cc\Yʈ/lw+pqĭN0#TQ"וAUUQūUm5,WVX9i"=cܮ=1U>l_(J8pskCnF^{izQ 01[H7hM(C~:_Y Qd#af?RJ#a۠=r$ʭȽ/F x(}bhS\XAQ,)E\5Q:ʒy1<ݍiAf庍pgeJrL 8HwP~Ŋ$n%@ȓB" w+0u1Q.T% jR̵ /FŹ _ikgM[<61wi2lbR CcA/KJn$U5(|"NH,YBB,T֛֩BFg$(񹌞CRpSΟG] 30}?0`8/  i4K1aN\/`YH?C p).* c 75n0FH,t ^,2$pJdW4S2d~YFEM+15D(5L[`UR}÷~m%fT/X\]*,vaQ:e#LY+#.k%1$rChP.')#PPv2/]av=j಻IaULRMƘbc^D}TjE)k)uo," F"N= ڏc*q0p)<~k@ ܂x Oqؕ.JHکed '6X\^KELb^ڱ0' U DxA*:qS ǸٗMGۨ)X"@5PUυ' q>.͡NIDwAX8<(*Ed.dg 3Sca0"A;ph:+L_*߱>sJ~ Ő/)7xJa^0 e#y5+K2N'I ๰tdԵ: )97+ fDŽIkl$Jt#2(toXph- e%ͬkmbQR<( VAsrPe&T* [+X |Qz@1H]_0ҝQOD,~Ln4c,,hj$SϮ1Rgo)2@V1g̜ge߽O I̽VCa١sU_m1*jb`ǴDDKj~\Ib ;.Pܔ Te`|pTP68"5rqcHzw.4Q B9P+c2;';X98J+~fR jI/#X]ەW?!`B/sRS8̢4A߬Ц/"TϤGJ4 H m6z_=[ii]}Tdy_㐖Q z~e*[4,:>AVt'J4Z@N0TuxjM9{PSkٙڋlㆾFQZl6_םGz¨ `,awM!\KbbuPk B%PZA%*{LOpg^Y:m).+Tz. #B=G=fN؋QhZĎG <ʭ=6ycnIB&Ժ{]UGpoH fLzx@ aјM1ax)s7[1vA{ŭxI̤b1R@Qa/) ʄT .<qi#0H4Vi8 QkC Wuu>LŃ՝Tvxdm"`v" vѰ#&Ósnf~*(>\R/0%ҷ˃X UGe1-YnD(Ȅ')y}3` L7[c(5}Ȝ\l4ޙ`RU/=mP)a0"b@EӭiMKBX=?&M;M+}vSn(ѝ_^vw-Ӄ91`C5ndU(`F]$4dynpK(/(d,. V4HE+Y4U3G={}=Mط'6 = TaJ.BNm˹q^]7?o5f3 v%QҐǟv)QWB#hY.82[[S"1ƗL!{X^| 7:1 co0dJ~ݔf86S` 8kDWr] @1h_*,\!,"5B.>d"!y$uTUQiJS@C6Ԉ$2'?7BvQ24بF}: L@&:8,= cXX ^T#Ѹ0)}@*'P]   ѻ xE1%(3^XXhGA\,ZAh_z`ME7Rÿl¨ wO5l#.J~fj0H*eMAސV~lxtV,P Am ,=AA@ABAE ?P#^/LBtѓD<ѪI`q6*  A1Fsw~\FӋSe;΃h (”0'C@ {!,b!p {N1]X` هEM T2=3XY_2AYĂSL*oEֺ["04v(t, ~= X-|7^QPTY+k9\|yb}>g;+! bjTUbjJ~z l0V_JQ#Cꅘ(LU(71߾&fg$g^FaČ(ALDU̫ O~mMCFOTW(|U![<4ӃЍ5* TY5 0| Br}jehJ %H #D[Ѩ ci?g-uy렺B1!&QI"DUB``cQ{OAd_in%4ǘ+#c:oJCzL1svcv zºVb([ne|vt~JrdwQKuH:J$ī:jZd|HSP1~~SD, qӃ,Y-eMO\C?,}xVAS P;=|fiBuQ^zVg{MPs<%rf8u=mF;=FAN-:(E{!*U jv`Ʌqr R.l.q9HI/Q}E=:8rLmѼݭ֒e;G0 dHD F[0n`JD@P$  AC eЁa4K"wJl\vD >Mڍ'KI@ug6l=)Fã qOi鈤J#8mbI", ∋0# " >e@ Щnا[{N$%F|N8*E&1a4] .cxVFcb Ua9^ Q`fJD:yTIt٢ ccU^XRPaADX d)H *ad'HtǞgO?xs^=!s|gEjL!_P>P*5!Tؑ "D@;"q>#Ct0(> NЃcX&gxnh)S[Ip}=` `2LSHj_#x*5["3 < Йl(*7y]\7qn7јn.AA>PM3];C@@v)CZRI Sx-]m'wf'QJ62F3xPs|ە8>Z$^QnXdIDO:̐jk4 h)hb$v  #"TOD5tb)M:~g[*%$MEO)rkqƃW2?k׈%*LM&JxwXǨqxNs?&LIf^۶4fLcudٸ؛OY}diq]_ PwJP Hx n6Z*ݽvTCZX#+XvL< @b)Bx0̫?:5IlCkK잸#KWwU:H9y{&ruT;uj5M=pÉ' iVcFDOFpdH ݻ+3 (Cx*+_$BTA;lBb1p,Fu],cWGJH4$?.vZʈy|:zs? ~rS9iѾ r1Ɲ7~5 v9o:PN2Q@ XREPJd%Fp98K6= e^D vRRfZA ׍Dixe)Q^c{fKdzm2vgJ!s4n~jI'?r}CϷݹo٩>!>ߌFC@usݡ Q|/kOH)\,j80ROggSY﹦0$0#! &#"#)$&$$! !&&###$$$*%'$u^^3h >7X?(b+)K0ysm=?Y<cr[`q.7U{lic} eAg|Xw/Ԯԑ:rSJJ0)D[>ݒh| ;sMNtL1]^e88133qK1~Y5ȴ!h @MMS$P&LG>-ӌ߄{`QW[2k$7‵& ,tԩc<AE.X\Dދ{Fϓe$I6EN+)>0p鳒 56׻U~Sǿۍ?^qVJVm~B| %3+B)Cׯch?eJ< p aEhB]3ǬF!4!VfP}:gH5:A@z *y-9A3splbY (%OJU$7q݈T^,'Tҝ7]Y%PWVDUA+ڏg ;gddMQUg1TDY7(%iIoO汕=W1!) 45F;{t˱\dJIqׁ=4h0F>|r>|4uq՘;4Tȥx2V0PcuC LKU]=/qƃ? 5\PAU&M`QGaM7(:R@T^̈SHI^>fl*\`N)+ȳɽefL.6? ܢϡ_j]I!v:C R`[A2{nz (ALkYjȿWtx} !f4n@d>Mpa.6 ɜ^i fPZtUO`6Фx4)MhaPP&bV;'g~Q* ?~.l/@Z$6 }mIPO#p=-@nI5oAWNإy7"|J )k^z[CDudWwađrV?9̓etw,s47Jc^~}ۛ^i*I{rGC}aU" $3@ɒzZUXٕ_ցp a4fV"~/}۹ZPl T[kZ~놥CZc'e([sn -DU}Ө1폇˾H!Sf=˕C4QӪvG@*-"dLWNS s,N=h:0,1TSg l*iP&d`NpI%^DU}Y#oC0CV1[c |ITWjԦh.H41ٵǩPk:qk)\Y\ Vn([ 6~G;O f;ʯT]t OMI8Z6eF]5L5fp7kڛrf+(N |g_ :[7y>Ubry>Xz` I{;u#4jC(VNOEDd6~vΘ]&g M[F$Jiz+]J0pvbg F6fa~;N2 YtX~#Du#@*_ 'DejgWz؝Ǜؚ_k[kMB_yEơ'nSj(d}%Q]Kt 8RAv; fe&#!"v/˶d-NbuTFں*(׊ qbѫ.XN6,xsug:Bb- @ڰr= Wd 7Ѐ18d1-p@cF(FG\ >9_:@WKMlc9aKs<'dMl?Lu4\bXҎ){Nc 5zQ?Dctq" A08=+-6H-k?p {jt@ R!TeX)]0͋T|kmS}.OCuơ+8{l. :Q<3"҃ Qx.<FYdKq \YQVk..Vat%2qgKC) >?Je]n~nӐ@TRII0M+Iw֘h鳣pEw(>,} M}J lh:Y2\]@  h.D DVdhZhTD!07*!OggS@sY﹦0.Pu- ## %'%" !!#(%! !"!&#&DY\銋i: {!, ($,#OՕfKnk1UJH4U).~4 "mRτavBTWJ||mMޚ_) P blD{D7*?R81@ n(9J]UD #p\+Rsx,$St W}\d>xk>.vU) ŨG8[GT9&vY?o丆 8g}=:oA.omp2 >>J몐(}U3"M b]1PEUՈ_ g$tB)+r|!:= / j!zs%dJ!kk 蕆 ];f8+E=J@*B$8=1:ca94YE >c RA,g^ZL v͵(e 'EEP9!%r!xq'DCR+"[$݃HF.@7@@]C(2"HR ߎ66`DEBS@] sN`r2 LEBkRBK[rHٟHYmc"'1ǻ[7q2kRK׼4͘ۑ9S}4ڡՄ_z)`ٽ5@2p  k-"0`9`]-4F <2YX94 ! dY^[x35}hWN)SoK՛bT?8z'KqCI$]LQ h Og^l3esUU[ALW) 67y4WJ3.ӓhD;mq]?фTYtC0t>dʴ4=pS]l.źDWCV[{*7^<ƗƩY~N9 wck g8qq~#ٮ9ŎJ?=TBXF r棫OcG#JdU]paFR =i_lm:*Ve.&+-)km-6ȏ@hգ|Mj*c⿰Fh h ~ C`fIAr,ĭVwʽMmv~%Ut0vsl-u[ECPhWR@@bIahg2$$?2D_s\+:0=cLR޵*(gO7}1xdRP|r~gC%^Ԑ&_-DbU:m6ޜcED_45C "ב㳕]f]C_T}t>ĸ{cT>^nm~DOhG"ĂۥkVhh[gŔgl\Cz|r} k}}3tЪͼ5=Ӧ xjK(Gqz&n$DR4k"/iѩ8 |.^iϱُX"v\Bde,gP3ݍgMPv3qd]V)LMf&pqU%䙫vu;}4:к̭!TdcJx#$ c$ٜ# ℛ,yɗVymf,2n(ΩJ.k$}pO^CUbꐔnk76C|=cbr hؾkɈώ>ĘF快t.0j$]-WP*ujG7J!J lދ &c1\$Ӿ4MܬILYNXttjWDכA{qv' iuv3ntSpV ~hדy֘qq'dƶ]&z68])R҈r˕ zQ7(~CbOGH@K]W;G/ks=x?D?iaz}e F-,a٥w$K~N {tdH&ZL(PQCPӳVf\xZ__oeVWHQqSN;Y/7Xl5k 8ҙ +6zx_!4@g.0/Vfo1k慺l{vL2RG\ j,K۩.?.J1P@] k m ;Է;؈XadmnFQ@Toޮ#H{N^ n~-aE!#%X 'r$mԡQ|eOݛx4{Jmox4dkQXA|]ǘZw/Cexs7szsm;lyYtog^K,R2D%2 Bӊqa5OggS@Y﹦0+#!! #+%&tz|$"$"$'$'{^n:̤CcFKԁ3iD91a>;OјA[x?_E IuHJ"-*sѶgِ0qQAp՜0f6L[f2э%;[(;+_LN1 MvÌ Ҋ+N*&LĤoɖ0b8Fġ->sNƐPH|p҄oSxԀj8МQ9v8HP4qC5ks -wѦHJĺ@BLuT)K&{ǎjP (bO 3K0Fwh$Pq @á_]֦i dJR~|*LAm(M߃FXa QqY\BLKwŋ2oVK.A&^va6w,)c|,5p¦r9Uw.XP[TǾQ8ZɭVE+Pg-C8aHMJ3+dRB={`R,G-8to7 .Uk3$5ε0%" |+ڗjJQ9. Kd> moJЩ|>p,,.^tr_5y /zL+u_ G,*U(ӹ=$6M-u{*IͅmGS\x"4-6ӳxzk(uR 1)Mf-f*vTϒ3t; _^xrqL o-cG; 3WWͮǺ|ꋕX'ֱ8C)CQks25W'vMDfVÐC9?cz!fV۩a8Xy$wPm]kU~( Mt}XI TYBWYlOch=\J{:K?LY(tDgnG'* W,\5 7Cz\[iK@+k2Gxp7woZ^5UdaY Oąԙy7el̦/Plei7{ѐI5GްҗUuڛAG`0 MX |XT]wF\3|ċHi12Ajz":Jiujen^O^_kp*g ;ڗJn܁ %#A JbG nX9.6Zp|c: GbHRnP~AAQP*>AP4Ft~<1 索+UĴ`Sv҉-S;ޔ5^L~+cm8g(R AѺd%c@G5 R'S*.DV@y^ދ2rU BsE *( &ZweӧHMW83DWP  @$dPQ 7r">L.USGɗMNd xŒidc>u=R/~v=S|f> ^ MHIB=@= ȪrȠ=DDDL&Q:Ǥ6FՃ4iZ0[O=Cǽ4܌q4:|a_C%#F#VAdmDYD @ VdaEd}pj,>,a՘&]7z֙JZMuU^D91  ԝ' 1NXdISMDe"ކ2yP @2UIjJ 7%tS(1˶R'U? l}S4O+n}Daȟ !)Dvzq`I-1uItar)C"Rv8Q^VZ:z4[UpP_#c!{9 ^1~dXɥ`(n A$.T~\]|J PpZ*SM$2rΎe$|TGц=[lO#kN#@fE_zY~kĨƠm F;RA t@&j p xMGiEԨיLFXY^/& AԇqLScUq n҆݊&qo>FI|ATO*t?6sofsIDդYG+t=T(^f';bT)<0 0F{K)t{(, \o?txk&S7Q=FD$)l?|M ؚ5hM(!lss~W2d]H~E ҦkG8F27lc"bQ EI.4c!q]ϞX[f>D ~89&@cqE!8K'8GBJ G#l۱\OJjvkY~0o &HjAcGL&\u8E-i|M{5v3au ld ެ.R^"J3w*:ϐDŽh7_NvԲwbmkӳ1u1(Ơ `R D @TLBKϠq"PaBq*!\xVm'+t.V,:1!r18oD:ݟM3.V բN0{\*_|J/h1!n,0A5 Y<&TlBh\+wO7sUsaRp8R-kgu m"ݘ%d/rbqC"8PU\xF;Xp!!T  ~#8[&tG-N=S(a]+acd@lxgKӟ{qq哝GoѰH*8"\1~\vw# AGK[Ǜ,FDr *evB@ ^Ter8vv 9ЦyDȫa.GcG ]i *"x;9 -6P7"8]]$  簯lІU\`X(v ,Ё]xd~_,`R W?U" `}ڇ5cXKy^@ƍ@*@(rJUB@$*d[hjVR߸,XAѥP] Ԁڗ2d_WX LF3yyX]I6#@vui>=~~:2S7W HwM0PˇD^aK@Vm$`'э*K%ZDy}WHÐZ`DWyGOaŝ{+ g{'Gupcvp߽QQ4 5c3+\{| %h ?(V67n.BtAD$PInOggS@=Z﹦0fo5"!! "$%#!$"# "*'| !!!!!&$%" !"!&%LS є6*1Iɮe?:Llk|ׇ+R"[|0g\ ɭJ#͚VQ)F~nC@Rֶf"qo8+ە»^دdtr%[oRy15PG)*4[ kH_RnQז.6UxK4 .VqI'z^L]M%˞c! TЌ^H` *}tkɆ@ G-XP]r]wQ$Rtm(1f3h#vI#m#9ǥop\_cT\P" ^P{Ò X  g$3iׅzse<^$&Hf[m*ݸ'BO-:3qqi\+EQ3iÇ"uǧ8֍YJߟiL6dU橱d\Lj0^p,aэn h)J֐uN۱ddsn[w)V>߬) X|}}S%!IձqXקȝ*Tqyf 3 u]%"KMp~ zɞV!t ŻMVV_u'/6 Gd?~~l&08c  x-ȸjVw<m~L@L=СmՇvB;|r=jZ6=I n1{,nп^`dtRE'h!c:gO/pJU'@-+OGOފ -跋O)\QRB@h׈!jIݠ }@:gy*@X:VP8-%tD4ƽii#`)}g4=H10#b]W"&W"{وU^^F˥{J~XN?_Hz[IW$w 0٠Zѯib4\i) AXo(zquN!g5hj6{E訂-4sz.,ttIaϥ;B3Jpd1kP0H)ԵP `p .7TK+!|i&}iM8VܭsxcaRӋ$SbY?qۋJ^>-NoV YTa( * V@qA$3.|.c# myfSpCGjTd\K6c1Fz>vם%slP3xHvѱp.`_hMx<1tS}+!$(3Huݓ%ed Xh\>  K! \aAXk0\?sp|[(-DW Bx4gȻ4̾륪$U*&*=<_ꋫ{a\Q"LUéhLʋӃMOvҠx_?uTC \WՕmnx[>q-W_L]}G~iOqk AĘ{N }N!7-b2 &'[>yN%L4]_O FD_=X!q` `(V .< k= 0"2'AB!U)g`E dE^bl )* v6-70\4UxJi^v9=ߨPqt %Y 8,A;b=9w'C R: }` pt !nV+Aʂ7\kZ0ȌeZzs%QK`rJ_vG`UO^!)LE XbH5N (  P{LD  E`Y`KEd_peZ'k_j/Ǜ# dYU6<>{x}?C!b8TWܠ se=,U 䎛*ð"DUëihY<_;^9?xC s \W܏+hnW\S%n^ 1d]jAh&?gxp{_ɝ뼈a1dkP\]aؕ ʏI@2{ToE*6!M Kn:Yl_ ëS1{l[TttN/]KsPtcknL$YJCg7{F&anoaOX& 9{;tʨR4:OSg}ϕWo=w)6, ƦVG)ucUe#|jҸbT 0a0!t\E*ESS}}:b%LY7 2B hauZTM_ .uFDG:soYZm<rԶ '{/p `@U!I FD1 \BX0DC,/$=H;>A bc$p"8 %NC ^7'JqlMk~FѝoFѻ2ftBBH^#J0 Fhc>(8Zp5 +ryԈ$h"%A O ϮJN!7J諷~|n%1QHpU7 \.xQ+¾)s!8C&Jԕ\5 *nt5O5݉bET) |"cAT[B-WL< fp5n2.X+J#&LW+irXqV}f(UWd[œ-_w Av}kR(qeDWUavN~w5o#N%)ɍBTY<Y*T];翚[xYT TU :] ~kO_f<=mj.Q\K\Y ~~c#g.k:Iq2la,o'h/G݌y{8Վ|e@UF);fn̎Y,LƔwZvPM Z?JYkGTFF"p*Yi9ibrk KYE,6e0- !uLyl<  AeE}HYq, ",,X҂DB-^*|@hPzI&'L hkǪc83±iס2Fc)!3VyA6D( 7 0m0pBi  kDW&@cS␨$P\UꊃwCe<BUYELU|D2@ QmmcmXiSBdCycI?v"k;v%͉Sm !"Qu #^ FVb-g(gia{;FWhma8پ |B "F,\Fz "U ܻ߻qݛ¾ǝ^W8t)a:PZnt7ց 3y IC T5$~DE|>$f< `|,*% Wb@vsMGM=n|%Áo..֛])谋JYjℌ03d\hr,_IêNsJjs|6b~ IFvt*p;Q{1O,QBe|[^;nFzu_<Z咀|LW!gbEQ`|1N 7꼦Rz'i4UƁMjIeN>S3ǨycCZqup8U՞=ZHYza'5k 嶻Ǐ[*gc:Oc5{K\/ƒt}Ax( +oBzvH֤9ttmj6͟ 47cǔWP!n(ՐWpݒR䮍k.dSOxwO?R$m?5#7g(j[(FAXQ3j=@3D#^ к3V.O-LoͼΌiŽcE|6֨|2@$YaˎcM< lq!2Lk|q}qځ:̬^{Yicf]~tm+JKjiVU7R46Ń՝Ad7J?P· -?fY*'efJhx7k ~d{?~fBM4$*? '#N#cqbxkk Jj7%5So4ӵג%P.nEOZ?OggS [﹦0h&'$&>LLF'!KXeL.\/S7uR񔫋Tfq,/|v R7~G,2'kmu~k>]ӽ,+"yyi̇ 1DtތyQH6x:_ܚAnz3c,L1\QXXQc2xRԴ@T;NDL_ ?Xelſ "zOug!dhR]R6*(YB Al0ºgӼH‘RHeKm^') 4ٶ ?gۛb3fV!^ACe~|tJ< EU|XPI^@n9G 3I‹yI_і4ss?9cKt~|s52OS)X| f#v,5mN'#Pc,~֘4K>Mo >NNjnK̯8b߈< *t L=zT%G`g Ft0Ny蹀GLm)]JE`uÞL fe3dy;_;:v*L0(P YM5B8X) cw^6* j zv0Bq?E/ ^[&J( }e xA0~eu+MikNFZ} E?*~v_V`cn ^ !l$0)_|X |֘5s}t&5qDt+_HLf7'_K-/\@bvL=qm@GF`Ј櫩پIH.Sֽr8~\UCWhڳͬ6@Q1F6&X;r1Vrgn/IvFi" R>>YB S@k U~;fBBr#@ҘC@G@G8ӧ0ب낥Td÷Tѹ#ߪ^ @Yn\t\5 X](G @bOr/|Gs L%;^?x@6RB.+6Tnvڧ8f ,xH#c 6GXIU>pC7t/lhd|֛ek2 -#`ROժ1U`N:xZ%ղRh[֝zTQh%JXV&0F;(e(@dR.Q-ycjx8zHWFR.Tc|J3S2OҼg #E35Y$1NjP°V 6$M؂qpxrnZ+iPȃN **,v|Cƣ|@/m'[]5J20+ʧ%='k+S+D, Ee4byV5 ? Y% z- tIA ;$|6lȾpCb A%q\ p#|ֲBIA{6,' TZSie BI()5d:}=`Ftc%fGvn鼧{|(P4Zx93B -z J pd6 _" V)$OX%Q pYT5r[6:A"LNWALNԣț4fZTxY 3Y)&{:6KH8) ˺}eԽTQ~~&P7XO)-"J t$QCeq#"~NA*q"~|N4,ޤ9&: M1;jaڄEцDh7],-& *@{qeHMeD\ 3S *Ԭ.!`ޜ^LӳK?7PwjhfX#R LGQtjt) NHE04^`{Lr; fK 3P55.XLDԀ!+>܉ʠE5\.BuMF|ț0hh %C"TLۜ?tYI3!b)#ۿ5QٜHi YQʓuTB.ҘJ,%E\Bp~%|HDIGX.B$>|N*l 7LeeO`"LCdX&}E|j0WO4bakĢ|3拧.fC̟^DĪh!Pɿ_(U3hm;rQmH ʒ-$3p8n T\\N}ĭE:=-KC#\?Q^wf9qHd<ˋ]]h d^(Q(ͤ8ʆGY(qCSt"9%a($ VVOggS@t[﹦0}0 !" &$!!$!!$)&# #!""&%$>msAbq3@>@υC2 yb6Nk$9ԗsNlyn4Q"VXI`LD 1*\-jagPȑB,,X"ebgt !,X|xԵH1Sq9RLDV!{像 =~ ʸ@ht* (mV,@jq TcH\V|w^ՊB F$.D0ֲm-T&+z:A cw.iJ :ŏ#7ql1"&ÌElL˦a;@*2Hw-@A&7sX "-^LU[jg5_PF{Vr G.h (@`S xt׶ A;P|`."vxTaը@77b@ˬ 2`߇'Mv*H ʅ?P55zOB {! $я9Uʜ'-+N+ +a`☽.D\)r+UAjx~e1}bEG$t64R)␬^r4ޘr:@܃\.\r·0%PPT2*++'/KπN3PY jnLWKջ;@v'1~+Ml Y.xT=9-(41hpߍjfr{,ٽ|4an#4QRdGP'rh5ZS5y~7؞&*sI˒ՒGoAwX︬ΓOxLq""Q,*hk)ؼljo' %O -L_qnu^_Y wʄ ,.i*^+\eX 6ҊR)ŵIa`-T g`%1hqc!;]^nd< `NvUHS;:6>xc9NJȬ eW " _zv.VVzۧ{ziɥ #D !a vW^}}T@ Cb/iNF"JNh7n~XOU[{=n;hG +c.fFa @os`a Y[{HlRu ~}V(FVe |+C8"uI(E/ՕОbM+k""Bmspj+ǧ< ĸiƛy*{-%@W "`- ZT@e ˥} u.!F"AԬTWt ς` dY=T^yϥXG %߉?Z-+ m]{"wQj DSWU"GWV-~^6W T ,QKbѴ3@sߏ=/Z6gȧxߩ]TDtm!9,I#r weK~B\ u δǓO~̯~Hnd5RWISLdW&*V{Ú]IR&ͩC'd]uko>]; YWET܄1b&L2QBMU_ihƴQf\qOGk8>T< ~”ts/WZuT&v 1ujD/Nz)v) Y)Y w __MφZ$pW Lޅr.5#m7 \.݉r)#:L1zd!d'"$bL gt^&?jAR!2L4H}ొX%4n9RaU1Cޜ.~)FzZ(#nz{}@:Hy&0"A RP&KI|(d%}Wi,hhZb݆,THΠ9b//(s#\[.!T]@.Ӹ8 ' w#(cqzݹjOp4IgN|`_'g4vQT/)+nG*6 _Tux/mg: / MhDDY)+Hs!`}\ wEqsd,+j ˫f;{X録G $Q㯬!_RnMvp$PV,O{U \}RN췫5F3ZQ TWa\u՜O8 O;t-S">p%DYAhkٽxP$r_+) I!D۝ռaXqh_`6*fYfB8!L[k О<_mw?Ļ/}\)8vr9o޸T_-:vKc;ϡq [{n+.ѨvzeaP!r ^íqu&('SͅVAYWHC| p  JB\;n&NKn"* *?Y$(~\ Sٿ}-t_O,bD .ԚJtkM29@U nBɶ!|ݗ> SSI2N 0pkr =]G@TnEfD(\$^-!l$8!:Zq5ZJ VE) ?QJ'`%6*p+y7=qWߐHp >۹`0d Ҳ+cMLW8bD>j>ȧo9**krh RVÑND#p*bjS/⋏]쬘FWrɦ?զ)VPpg8}U)ac(D*ޒg A:Fʹb@ ~6J>`Ёq7?p! ոH1 F"jY4z.c 1OggS[﹦0~{G"""!!)&&'"" #)&%&)!*&)%)&#!#'$)!!"!!!))w#"#$''$'"#"% &'%DDj~~}'SO?Jnj Tն?\s_k'D\Ƶjg9zd9!RT=:NOLՠcm^6@Mœ]5#51L>櫺qϼd{͜DvQHεթ Ӵ2rΒB^N:2S{SK>U\Y9j>'ƶN7-it1dMUd_KP=>W]:ܰ9d#?D_ C/m 9kOM}Tv}ۘx- 4eLFaL<wu{\5ˈ.{ITY,V(^פ hrbZ&DYtl(`0qR:m+}!d_Ry[,XWZ'"CIR*\]B_FTI[ TvGj|a[X 5߰wKHjDa܋{aOtc9ƋvpC Y\8 NvDSCYW JMEFHȱ_~~R|].  {utMkoogNy5Ldcɤ V$ذyKrT}hvoqJT_|ӹq4xRN}~1l[?@Eub\Ij$l{kLNd6r!Z /k:TОl>lLۖ].98b#4EK*dm <$ 'vO|演нOl.\s6=op=Z6ܳAks ͛Xlas9w9~^۹\YEUj}#x0jkIkڜwnD<6$|ҧT-zZd>qqk6LD6$AҼ$4rxC>~/:d6lHcZ_>%0@-keT>l/:@//S$7%D \{yxf"nb D$[k-xYc32Szug?fsYx[&ɕ#r_D065}gu{|uX?%WjLd? "S~>:G"D(uXasχ9pT}U>5*l=cwv(XiislW a!q͑4FmiekQS}/7+ȟX#ˑVS@Y$1"u0JK3XzcQR|$DП_O#e56[p,ŕ`(;wDdw֏ ݦ,7C_b mo ΐC k$ q{ݺ4#,(dY5T>d'|I8|$B"$"V%NW%\俟:yhzF0DR}Ysa۠eiJq Ӣ(f,0}rt ! d07䭙g6=:$+{KٷV?l~Ӧͪ E+D? ZǐX.>a-\b~#!!{F2 '>5Av+y*+|C]} <`y/j{JG p56vT8Gͩrt35ᘅ.ւ`c]i=j[n \!3 _ f,t'p7~I8+Qh ."clbZ[uz&0EXh4Z"J ۭPYox*/9a]Ϧӡ\5)PGua +p-t@fpt/ . q-cTW=T?Dd]`ͳʏT2zYTW}SU\~j}i/922pbXd[ 6G;W[|*Dx F2DUT?|i]$ypUdIJ_I1TWxyz#8w2!#\WXUm 9sDJ6d,\YH|tBhW{ sn֣~7]#vDa &AS];9pa<$Id/e{ fO޶~TD%2[Ene)~9ut-Mg7%詡3iH"1eL/7Zy6>g'/1vM%|@l/t/;^_oL|wNY~/o_cDav쓲H}Njl kr^S# TdzOIQ χlMU-OIn,V1|4 c16"aR,pRgJK`LԢ$K3fϾND)?ӐFl.O*n %y:z[e[zec%=LUIH( 0l^崌2w 2)޵)HSajB? r8aOE$t  ;Tj)Dpu4WQ!2LgpA9MNm2tz H'#@%VT$ݠ#cqkq+Cyui'`0LqEL>{/1OIv\w^?O#W-^%c3X'T2'%\m&SSӓ{s/w*^,WVRrswR[ÂwOzSoo+oÕdaE♷gW@~26:%׫)^?~䯎Edu?.-ʞO:]];סsXO:i~0 <*xϝWI6&_|)KR֠IiձbMMnGCOMnXEa T!YZ\ʪfArLZBZ><t@zRJp*JF/;NiLƒ v[zE6<\ s IH?n%~)(îvQ`h Vn* {_F셳hYo<n/.tcbO%{0U+Xp|Hӝ r3^(+UD^tZ "?tJPW!Kjpxkzq̰za:WgT͇\ "\),)Eɕ)?$#u})0Mf́`14g6OSSpg!V|֬>_o$ilX(owpltЏo: ޹FkYֻ8U#܅4z3;pk. \.}âu\ 4YZr+"##Farmw[Wr^Y(vMi1ˆ 7PbpA)ሽzS#o/lMW+NXV7~k[?=Ć!!L խw+ R-|NυiThR*D [ؑ.'d=݅~quw5VrƧɌC0k (|Ss̐$l;@o?G9jɴZ>|/4߅M4d;RX ½R>## ެ  >Kq(>"" G?Wiqa5POM7 ij gP1x 2Uo2ji$9cFetx3~++c?#=eHè)SC-s1H.n^~]Zi*CTE-`ͷ|QӬ<*ȟ [sae#UCѯ/`-$G/q)vao)Q F|_{9F2MSmݕxN/:e#QdJۆ![X6pMEX2o½E,}b@5 upiJ4) \^5[ǾL0\0I{䬰mň1DeWZ,WqHrzhH4]3^3 J`,R$5`ыd]Uj)_ޚ7°su<a?{?+RL}oRj i\A/̕WM8? NP*ܯ+4 *(nId{({ٗzo9E[u1E]/:Of^xbX1 zuxXre~<(_^689 I6_SF=vrE%׮_oI# X> e&YֆGvo8íNW75MVP-oW``aM:- n(QN c^va \1tfU408|D :ϰ ӽ\3*;UgݗLAv{Pc*6Nrʨ4i:pV::7oxfyw௱{-}߯lQ;֊aŬ4)b*4ދcr^ !Dx~!oAg?؅;OR7BȊ[C|Om$$ݞ}ϑֆbFojhHM9V(ݚFO>?fqwn5﯑͌1qTok=?q6-fZi= EGtL^;`dǗՒnEβR\ɟ>A-rꌁT[} scF{FA9D1]4adѝ9^fv)^AFfy AY`o`;[aͦni H*F=%VkQ@aviB(n?.XIOv1$"їN߫~ظ:IcV֡ը6w]Gnsй+nϻϾƛ^f&X"hNeq%}Sv̉8FѶ(7T \uK5eUw5w.W0pXB,XꣁN%Q1WP^o~?ܨ"H :"χ>g{T㋽BDY}&%qrXτ9Zgm+KjLk=&2(nZ)tY%ɪlg<ܱYd4>(PZtck糩5O&70dK 8811$q^oߔ&/o@Yo={9'_|c=^5UGkGHr{ uJd[[.&AGA;_[f!vʢ!4+sXV\iɛ=Yt'[YޖcV?+ :>*\/mGp4M:5]`'KydA9SD=Fk~n6| V*w156- LJ|Z A |@܁WW,hRzji ߬w+{0&h#y?7A8G}Dk v&548ƹ|ͧXCq-#2 do! bȰ#;.t ὂNtM=Pt}|hd2?iº/Z?z"9Ą4۪w2ή ﻫ6(ȇ='WiR'j@Ach.TV|}:uC EezeCENlYNl^OZ wTly ^@m4S×)TW~~ֱۙKw{O OplchVO͑R&k"M\"u=u|!v>(ql|$'2hXc*32LLO4QOiMv,|8]&Av\C'tNszKNL@!ܠ01~7NE7< P,w d nΑUlr֦/7h l봒!G,4R19׻݇R*5OnUaprP5k7@$R0hLh(#DXD>\,x(g*+tGa=X^,J6G)bӉ2CrTovȎΧ+8DzG~HP,* IB%PBOggS@\﹦0^"yw{t"!#! "#%&ã[0";oqa\hU႒?jv#XM\irq)%bhU zT)t[AcP9().J_-V\\@ʄʠrA1`!><^aS;wԚ>XS^89/("E@_HǏ32n0j{J7܌j6aZ|:DґyF-].?# $(P|b &~, s aA9-YAy۶ĕS|Te|fڒbUŎV4o'+Ll$D'?.,nS-@ǩ "X! 60H`@Ųc!bp̮B?CԼft5 -ؤ$*HXd@5oW)o\,C 6ʊc! PZ*aNX *;Fp)@F! $ I!@e@"\D~|Ƿ T֎1:QxsAQ\0+#x~rRIʎZqogOfxqQT*tɖr@vDt7 BAk^<b( Q|^ē.lga ܞ!t_M ֙H[VrPcTqLƸCZ1$2nX*}/0A4]}\u,uCF"Kbٽ 9~|q ּtK4Na+;r{psz8s>^w~(C5"`K 248C86 NdBod" Up#%H Ž>T(D^LnW+ e Prc5K`7JdہTxesQQ-'2d/.[EKE1DJ?HiW} &@ 40vԙ5zVt Qh {0XJ+^,A;Qa>öX,¾tU-mcoټՖ{.(DC= nIfRAH\ B8]~zS7pE7+7Ir SjDon{.ik˂6lmR4W1v>*=8.# @S5焒neKto߉p(+U ha@27 ;k qO;40_v$-砡6sT o: T+%pg fdHqt6HszN_+Y33hA|,P457< ^9>^5 5<%}WT =C͓x%_Tv.| UԆ0#ID0|a Kd%DAO!` < UU'5_wocj`HEDaҧ `4[ @9Շ~7Y"b::FTFeY3q~r?Jyֵ!eZDWajOr8_tW0i1]ӿ%4UO9мxx7zp^"LY| _~KNߍܼ2]gsLU8jU0_bA]KSz 9f*E$\WFd?B?juod`YH\YJIM#"ƒqS847}mبmx.\]:WH]$؃K/shFUDZ6Fk[ҩnF"`h%ݲ@xVG5{!ҩk'U{I$rf1W]WfvCm$a&>B)/@ԍISsOF?fMeXU:slK.Ìk'lhqn?l!(>n#c9W,|r8M^nE7`i~/aQ0<,"i\,cr10߆m msH+Rz7_Oe?3㮴v9Ɉg݆ߵ]]xVD򃰔=גչP&**u9R;5A&|fs:*.8zSwch?ULqjT uimΦĒ^̸_SG?<J7Bج+n=)ZWveƋfc1nnII1}u3aG4ƴ]4n\N#C (-gt@`IJ?N9ek»|5GBoIMn .GN3JIe8{1v'h6/ݔ#HX^wM?RYȖEnRtRRAVvvC)dZ~eN\ tJsȵkavL>â&;{xN6K*GjM  V) rέJ1bkeI1ߥzGl|͍ oڙ<-BHk޵[6CWKAMojġE=|z6HZE (ѳף#{Z䜆,2&%Eb jGQ>Tm8һ:x\{]z:Nim#o嵎.KY'_8C:UpCʑ V= 4պ .YӆI0k*Xq}<JՋz‚}ww=woiZ3DYc" \ԍ=E9 琑*rBb91$~g״=[F_PmE\)mr{LzIw0|DY<`ܵkGEsP?e> ^uB@7ZSVp=D\+ XR?{CzBsX3xz~3o>+p)±>ٰ`5QJ5d#^c!URӧՏY\>Q-ֽa'\("zF`p#zcDNo ҺDxXc2]\١#i,bJTeJ7_q߶~զ *ltH[)ra M-/g{Ax=lxrϚﶦmW1[ IOQICwj-co1+1t"Lm㰖L'n;z3dګc Rmv@9z8"{p2HgA .S,ƻIh Dp eЇ@9ؓ.A?wBu[P1z$*Feө, qCC€c,ڨ\u4! 84Ɔ?T#D (`A4鋁p5R* K}^$`PeYArAqAY%*}#sqlqh #]T PP<(טe e%]*D V\{>QQ&%H?B LgbM_Z++ N?%6M#˙˝zM~6H7 6b-`XEAܖ)E"`G%PbXy\Z,TU@+揭/rmڔo{ Z TWm 6guxspMOꈟZ믗@}\W@pϧlyXb ]gӆ5¼$pd'_Lb/EM2"4WVÃ8^BՎLl0jM\S\ʈ</ 3{>ÒEǰR5TWabu$T/B B*F35b8d[ 7wc `, rM&:gT[BSvvf\җݼ ?kt0ӽc=w+ Zg&P#G:_t`}µ)8ɕjˠ{4GR9']4>nnAt^ۇ&q}2M*0@ ;Uv~6d[zPLFq-qE8@ ^-B(E }\ ѾJpY(_-sqg0tDPrO!"ֳ,P4LEnx:8r~#eGHuhW~8# cR ;FB psɑ<7e8Lrr$T Z鑌_'e ɷ/BMP@qrX ((| w1BÊd@xADWu`EpAu.EicRPGn+̓ko?Ӎ&K sE4M1LUЩ HMաQ[N{oZ\ˍ%\UTh5}t48ǦaIY/)ä \_ חȘ6Ѳ c@7$SŦFkofeE1vD'"jZyq #5?{(EUʿbli}])41v=<76|xٺvMxi6s@ SsbB;1veߎ5Ws Vu|)8>r[PX70,X=7p^F.%I?F@"7SO8XXK.\CV+(KHM͡٧׊ &"/ 9S>LF.KF4`QB@#n~IU`'M4Ps2jID+D$ #(` >JGc(._'i%}-гDl *R!4SD/ٰysf&bA0R36Mm CHX8DDz2F%Pn@`*xIK>m',*D`Y\v1a>cs'ot 4͂YF.#rzm?_p{ny hL`h<4 -%@N^'hE7XdɑeC6 %`q9xn .!fbg"li570aCV i0:5e]գSDDk?B7coY&{44A@QMЅP5C9ŀCGq+l/ P"D`Ч2apTrp#~N5F?X }.( {Ce 4tǪQ2H|"lƽ١yKEGDk" %ɪqPm\@ h$za&hq@ Q肶V *\.%F}YB!XV/)u%9ZjBL?̤GS_$tћ^~|76 #A† NU:@ JT𔨸 4f`r5V\) "% $6% XB7~Pb&O ^U[EˤdR8$D(STbclqcBl;=m:hTI 7 I'@| ? vz$$Zhe0"[N&T fk}q$| G!7|y6KK(WLO1J1֣=}s wBN dA n. AJA5G&npI- O>ʥbEXyT] -N~:\M4ȁ޴Rl]F^ 8ú]{DJ̎R\MCT[6t#}E.bw,7YWdLUS3qfӵV({aF4\LY) nO-Pc$[{ \U'MY\ u:bݱU0D[=@VP˅[BrIԤUU.|_74y9僿PO&]:'\atCVGMi֮aD]7#/tk1o x~P^+&Ǐlsnád:=hy{~@KqNl6i/\*%PyYdSVnV%hTWIr3ёQ90=mőWV$`FJᆛ;3^L@0WKeK0h.¡Տ(GüF)jpl⭍͛K2ӑ-C/o4߯c*hUh%pаa7Y(Ss~󿡊FlR"VBeY\w#lۤc~ŰT^PHr륢@N{(x VuO?~ǵt>U{eGF cNGݲ<]Es<641d t" ] P( ˼W>XӢ9+ϫ@( +*k`pTbKT OggSK]﹦0+yn% " !! ($!#%!##+)UPQw+Ӌ`Xsɘ+V]âE(SwJu,a.m󵊈,V'`re")}"BL06`EI`qBEB$ mq`)JR\TYAT3E)`w uvXnBIT1Hn\[6PuЮ3n{ߥZ$$ZTYUTI6ߺbmy0,j$ҕKd[Uz0grDGn2+LY79:Y3 wSux8龮a)d]*nh>A0V zGWKT[ +ˆ4oXW8Z2qIJ7olybtc@6x8W&!X3IUtokofk!f.աC [T1 p|Dn%W?IH$'Ru\ Isű1kHb\'4ȬHV1ATnӇR0=:Ϸ/@}} ~:]`s}srߟڣW1ROZhD8 杽,KpLx?:84q2K7^c^ pχ1K(b%Fr:f7,}3HŋJHɷ 5CmJO}Mr7EqW#UYźQLq mf*` |>\D07A݌eZ›$\p(+ gH#eʶuYn\o6)tƃX(CiHّ4JǛɍ0A@ [Y%/ɼcԋD!*R寊%+y2׍[vq>ٕ=!mN{˵LtA'>Q'k2jnVlఊxOkv|9<]||mxʅ ]MPnZ<FK m( &@ԃ4% 4~*nd[[KrK{{/ih쓜w#E D[jQ_-ЋqmIj+a7ԺHdW/ܼ>|ZzIz:54oTY4+6/z?҃/"QD33N4W?X;^;{/u[ٹLYimܼ~e`:]خB!:բ6L[ک͕lu D}QWz){7ND_LFO[ ʊ!h9hG˺w{bI221n-_<{N-㓮YͻKu#LqU5:K=zUuLhX֮n,\)PSZ>kB}⒧̇v5yN8fDT({K)cQÝv$IDdžxN_sϛ~wה?"j4B|b[W!`vlxs^D|PN%)QZ hvN,:Ȣ9TB=}X?Uyq<69i ?i`"C{D;O=gbuVw$zkW^'fbcr^f90\n#C9w&UKΒY7>įk@p.JZRe'ͧlLȘ}m 9Ýci ]ݻfXr@/8UpRn'¾նnH) bP:2ݯ754J[ 7X^PٸT5]6XcY"Ec; kV7ACC ~BixG al]X0hRNXtb%!ټc 3X\b2Hilz.FAq٘>tr0~ѶA>?Oy}GGacWţلgKwF_je1!b)c&%:d̟/[)櫆*ڭO]%Rߥ󺑕Q/^o-3})> a}R jGPk =xYc,6^(^JܤNS\@:?GwLyikOv"Ŷ`όm6% 9h(h_7q}/Bgrubȝg{ӱsMwe4ǭ^U6IZ嘮ۍrU^P`)^~tw^ņ@Ze4P"?BWY #tu_G=b}|=Lk|#1&n2{sPJ!NԔ9nXSls:gw~ H/UҟDkzdl(x!y$iH%G՞@~ڍ ^&%\5|n3+G'nV{377u[y.'()ЙIցdZݹBϭc$.%G"Q9oov}OS Z(kV a6HRJ(\̵9Í[(!skΖBޚF3PPͿƤg#T h= iWy?(㯩25x\1-!j[[Cvm;:zJh_@Uڲ*JiUg@ o1*ɜiqҾ?'afG քN@흯FHO3kd1MKofǍ{6_I4Om{7bvlykۏQ_{^eMj5 By-V狋g(^  ]Nd^N19@ Cq8UpU%bQ=1 9] |Лt0^?qaB1~r[f9$e~jGͺ.4`HoIYD_-gNЊes᙭kShIÔ|\u1\A3#}a/Zֺ>Ŏ HʀN]@5vSWrp~TNp|6=fq%ί&^,5v#i<W㵛/6!ya:PV*njhR-WkPH:٧ٶm׿O78O̧Ԕֲ?+3Vm^N쉁cU6*O^ʬyi?Kn vbB­>T@&AYwڒ7QrR\܄k77BgS8htopn>'D ݮ\֘ζ1Lvp}VFJkvlɿa̜i_$UH53EHHac=,5^)PBc;uː!@5j(pWY[M'WoO^ηn|ry cd.@kbEz7V?b&_(am{y^?Rb6Uq(~i__ő?>]!M%63jghFgG6qV qpLPj )r! 8yrAy[ Nu l+޶mcLWTU\G c4Yc ]>$:>qv2_uo& \]˪Zw |;?vCO4k嚦~*:>ѐ/(E@h&F DCšMv"@L /ތ| 1;^437卻nsQ3ܲeRM"ҡMm"i/sr`@ F_WSal 6A9m҇錁TcaE\ "N&˗G (ȭ jRЄM2 Iia,t^7!향3n&iv{.CҗB(,J+iH2 bB$r 1i6clXl?^vf׭EZUTU2Mh > 2' t#7Bj)@ jɄ^_P`J!/9=Jؔ"֡u: gPf%D L)c<ӧh3+^(7KI i NTw!JVa zah Ђ7(@'Uk C0^Z)#:;N" c= _ 5(BPI)J)׼nay+m#.:[f\ Rmd4_l 2̖^.^s K\/X>(V`fL^fLq Q:xc ѓ:-r,>wl"2թ, D0($Icf/k_58Ii,(kZDs @x\ bM(Wu-@\tm$8>8Id[5N6k)o)#Ƌ[ %Tf.LU(d!5˥BzzuG)p!]d]*J9*CERϦyWTdW*0_n`67Q11wU\Y b|g)A.u&T ̫@\YeJ@(ӻw#5JX dWu)SK`<iE覾14,JCX@ V+5p DYa 4=_2C/ ¢ `<9FQD0m'@zA[@l V G@ T$/-0  Em jdE4AZ?wE)_6[J ps&S%F#O3 [B0i^fZ8IS܋H(tEA *~Hp\W߼g0 g]H+6CƤFM1!/x%Z8u4G"/Zte֮/ l]A'"o踆F`܋/qs`s,?60hi9˝ ]*(blmQ&wBش %*^D 8u#8/:١u)mvM5 Aq1@ּf2RI|g8˞[nخB%?胤 @l `]`)=&C^eǏ؍` (E? 3*#D?d.(L7elNJ,@;eR}ATY4&fC$YL wG>,KC{S@ޡ; QexT( O)(+M [!`H[é@R kε"%C.8ոJ0U(I(k[ {~_<`7E0)!(!@'y>6! f8;?lsv.^Hd?gwDPf@7Dv2,4H^S ʃ\cH=&MTWQnTy'gg}-qLkTI2CDQhB5+5gG@hEi._=b 6RUS)~~_|{}85[Q!lSLSaSzp0^W;=VӦeU(d4SO};{^YCz !/E4WӔM91@߼^mGܺ=$YTY!bER -?߮FAڷaT]*LY *~G%CT'L3Q¬Fzv7YB`~8yeI6o9'I4-mhZ2sWr_6SobPW瘦d@4^vKS.Tk2\#aVzlNw(Sf[7/ҋ*Dԭ)hG|V.(OggS^﹦0[p5~!!!#!!!(& """'#%$%$ #((#'"#&!)%+>}NUnQܤBx'A&if8&a\W⼇ȏӉLFTiXe6 =ke8!(P1yJeT)7(D<6!fW<Z#V5Tq]ՏwziYz}kx]"G5JܚGD$>ԟQPp4 QEȽ2'DG a)u`jA$Q\O~<6:A\.I.G +uBtawYϧLGF1РN(%[IX OlGƵ5>Uc{zӛ;>vۻ T>]y&P"D~v4!݈E\B;e(@m ,MA] -~)%A9y`z,,wwJ#Vml u]&m"eł {SC6}mV OPg'!6gnU f%h^ۥZW;v@B;q>vG~ ql UN:(P@J ~:#2Ωf[#Kf#+|o(S\Y]lGXk~]?ϹN?Phi" *+/qI*}Z BX7dԪTS n>|Zhyp)=_;HD~b{LUQj9o,/N/9c8+ԻnRqLœU rMm_IW.gj~"\US=\lhH衿y4˙)a) ,QBOT6̼ŕZ/?c dBG?^DSk9" z{Sk>;<)7lWN[-0`+~xSoz]fjt^&L]Y!:8)rm',LGį(T _svq}=mNOה2e^XL1qOM0Y,<9}Sؤ/OKM0B? [n =fsoYWC"́,,l.}F |NnM(5%L5&?B 2bmg{m[ܳ/[-DSpwolvzB' UJxB?_~".m:AA (%z7Vx.ͩ-NSL+ V6B\[έ370ٹ W]5hwdYӶ5Tlqv kֳGu\W3՞b=쬎UYFDS!dV-Goipv S'dE$fF4 97g'(Nu-"Tnuc_45zoƴbnK9'""sWvρt\/ $ 6 :ShT7iRС %,AQ$V=v6")gm0lcL<->Ϣ]c ^ >U}2tj'Q,f]i"J:{bHTjG/M@<oqOl{Qo` > |jrϔChQ?U@ ;YLAQw|1XD)P<)VX+#j@6+)p]!XȦ!0 ^x|bp[.dX{>_Mda;{po%|Z > ]δC!~ćV rޤN q@J8vɘL!ZH?,ŋ;.hNJ&Vzv۱yq_.C-A欶鿮3av!(ዳ-hAHnd/@/!>u:\ 6 +W11H!X>*M_fS,ZzDhuϳQ,L*k}!bjL;]uJ1R~z5`T OMn/ch5 lDUN4Ֆ]v3eKRVkMAL TU*r3j\a#of}̥JMdܖlvv?Ah0맲ssF->\[#hjm*; /voZ_fF|\[˫r(BCU/`*1) ӱԫk 0蘈 Er8zȰ\_.c\y.aZRimp426M}6*q1[9SP SЄKo# f[<|x4ʋI#|;XvQ!n7+:@[2 6Dzp:0?#}pfDwo" d**؁P/$Mӌ1~ Yu)CKw%qnmHx`c&?r|j;%/SZ 1}qll2ƥ2. >bYѠv[.f vќW0B``fgaj]ᄡg} ]9Y6J]/{M˛Χ.o/?S>f,45~܎R}\pf9qx9p!WzW?ۿ߂~:8*L>IHQV y|#z[WT% 9'c8YmD̑k܆Ix)#2Oe6Fd!0W6$ /]N$>Ӹ;*LmnasWmQEc1kmOJ+d{UXsϾ?97Supݰ jvOJddK =mF\=xNMs7_"d߶gpYŀ̧V9캛:}xDL"7QTiIfk|?8Yo}4}¾a<)4R4UR59Ǘ eN(OggSf^﹦03#"!""%&#"%$#%'&%!! !!!'$%$$$%($dU6>G@^>@)?n9nRd۰Qa:J`S?('-:]K{ZD$6<%=I;ƲvdL<5$|{ Z΅ s]n}$D仯kh{dsrzQ~-\ m xn n,!815DUElvjղH{'^fSF)9ONݷ_ l]Z;ng32x)DJM;J+ydni?` \$ͻ먧F@SS~hֲr(CGkJ¡^- `>#],y϶2=ԟOU0wR͈.S~1M52Lrn2?ņDcl#dH~zÀ]vEi PnqSnTBUC}vv"J>LXA)LaB&j&S^} aU^DQ9aTǽR.Q "wld6m!:w5b,@ (ώ_4|!gcH(,$T-c6$˦(~DT`e$޲1FCcЂ9>MEH!0AqHӂ"1R UuVzС[2에C_…˝&sfd|4l08DP p6p"\8l}FӌTpA$HM>|<}hk菐' 2yMvX~ yeB# N,u3rI9h\ #5BLtL_G"A)q&EII_ j ⳙ@| k4Xy%01$ TߖU8d*C/\/oN7e߮{?n,*\0Y8wi8{Yɗk7{Ne"T0M39XՌvPis$LM3rŃ,k:]r\kf'H\Ֆّ٬Kr?&u!|zjld2i<;bސvt>g u.S[.T[hf ğnZ݅X8nBOj؃@]χ R1Vf9 "nDu(#;?,E`E@ZǓ=ڥ r;;RIXۥ Q/,,)}= !m$5mgnooz_.IG҈BvJáy!&2g LOTUmq3T U~L׌0zⱮuԾ0ZCe$i L Kt)v E 6~I|%,J|>pӎ.>q 'ԺsV'祼QZށ 4B~h^J?* J^t}x6b խwi2|0vYYJ־E fT~LVe.z%1>o\oG ViH$DŽ֎nFߝu`21=f<U^W"ioBLO%(ھKM\6UH V9 uwӣ/ nYr`/R#iy\Uti~1?hg2_6:LinŹ`LY}Ֆ\{8~5st&3 FsTNU/֖/tIt JRudY?imΚ\2_Ui3(!UczdWΡ([۷m=g0DZՐ-E T]QѮ{E 8_M%Z5LWHu a<}Kkk|ywte.Kv`OOF4R$to7lmf: pn[| %pܭa\\ IHJW̙mz\RZ?8¾PuIL)y: 㡑[7ۧtZZN9GȈraF9'YkN፽8Ҳ\8~mkn[ae:^QX\:ܹO0$ޜklj(^Se| !2fh.,WvSHjDck8W5.h~t  Wq%eH*|>qs.O?R$@f9<+.B?8Slʦ ~_#y\ǮUQ'k }i%z@4,˓#a;Jd '?XH#[ m܀e_%B.1^>אIknq9e?!xkLv%{?Xn(E=Mr[#3WH3T2^INucϯF扨2^;Œ~NT V%M-ʀ +>‚rqCH*"+xBuF} 10a!dlk|Ʊag-@T?oOcvzdz thHok8_nyqfTאv`8>_~F ͤ%T_LLϴ>8zwcs$;tEM!l-_~$Dh`BD RvbT0nh?sW֜ntYc!T[ZӖPӴ}N)x%ɷ_fwo&\]7_:K؞~-\)=KZKFL0^9JY8?DVj?d]i,@謵d*@{mҥrץ /%h%_qP&݆@v:)o,#}g~^%sd?WrvxcKJYC~LE@mUKȗԑ"^ MY C=l}Zv՚b*YUFC$UvÁ1V4{+bINb:6XbY ,{ņ  $P\Eÿ·9r$oCdSei'FRRb`UI#z5a; {^e|ڮ_kZ6T9-o 5>wȈB;L]bj54Ra܍8,]5~+e@ p[7@=|b_= 4qq15#ң_ŭq~} cNwŘH3kmCل9,^p}M Gxm|ʶk^;ly1ssu6ί\k~zy$E=CRF"[YXA\Ir P 4VC1\FŨĢ]^[.&HrĤ ?n\N[[͝oJG*猐eG7Fws8:TWtw'F6?'ly=|Hns9dNYz>cnfT*]EK&OggS^﹦0V2"!!!# (''n?}8~ 5ꨏ,q8&D##:n:;oFZ/UbAT_uL  ^x VBzt]GMLysMgkhO?{_uin&RZB4-WHIQHsCZ}%:(%S48,J\hL5L+mZۥad,I$n{$϶)أ~MܘqZA$K&dCRAQME)k2:l}EW7Vg+ϩ2 nQZS*ެK D@Qc ~lkH(_&qXt$֜s0 $n$nQ:H8*,WZ %3qț4䈏L935F-ۛ931~bxNWnTXeò j`z+F7 C Zw5 $Pccݴ>;F>?ҵc퇴5[1Y 0ZԷjU~=1&:DrF5^w2<;dp'wBCh1'X!l`S*e_ )oPoҜVkccIf 7#*-wQ~06Hi 46͠87 LFCa-X@:JU0uny\enn؇=k)iXeGaڭ5-?{tHswkLq!)@KnEwi_Rvd1N{}SC̳1u8i En9,򅟻)*̅TB(B:쮔 +rE)[2,}x;&|.ũURebKds:8rAphO{D rHc= SJS^`S%HVߕy1PxCݞΧkm+.M!jx1j7vZ.ipUGQ uKoKn~ő\2[' \ДrjOi;",%]|A9s\G\bۇ&6sP|?58?`h}Ga]qU!JkW3: qF!'OC<~M!ŵ~e~MkUA՘5T랧%+t!]m.XK+ȕkנFE/1.hMSxQҟ=AC#{v(z9i4P=F7~M:nnu{6nu57Qilk|P 0F1UuUl l7  6PţXL1M#fO+W4dZü몒o^d/>x{.suu[lV!?_*HEG3n3XDyE$>tmH^6ht2=t ʔݻkö!PGh6=咦gE>,i.+I1(KaxnDW<yu}OV1ZT[p0kƃq"YS#>ATKT[ݕ5s{y K o*LwCR.D:W ix˼ۻ$DuVUpE d餯-;Wxm}e頔c$Dé$RTUS|"+~._ϒk.8?T X=8f֧_gKԿs(\*0>vB|ADd& qǪOTY嵕)"|s~ݸY?5Ndc$X>ضyM'rI 깨nOI)]Z|1;hCo-gboP\??!*Ĉ!JatRц{6%%겥hfm*g<.E)HZoa X-ID.#X1@2AADH JWI^XTڋx᤹SZ/п-<.i3``@@$ _\ v'0|p,2V,Ǟ1POIb26c8ԑu|XQЅd`B0" ", W{XeFMjl^^@k-b SK0)T2A]0IT *K ̡⹕!)ӟ C=F/&ͅe20$iHPYiX,uFtܔ,X?z>1$v eq \d0nY,L#Hv%uF ܛ)@]$ ?p4+~nc6t/nV d`IG$&n`o)F O}?9`Ōb-yޖut@%4 9X6ű^x˼BN-EE( ϓ` vف`I?ڱ@#9cAfGNV T$)z<:h,EL鳃yø(*7+qL!( Eip@|p 8JEUAIAq&@~nCe$cʡI n!k! iHH! 2YgA.'[]N#`lX-&J]pZܓc6D_ d_('bD|} &suTԱGG !(Ya0e 5 RލkM,nWn h(^@0^mL)H'l.I:QDMO XS"LC=&WKn w 7S )b$֊ҟC1jXXfa0:LI$i%v6|?+6 E -H$ R`"4Dܒ  nܬ ( 7/a]W5d\~<1{n &Cut.ɨ153cpdGc/"~w!baQVK^dH谱n65jwH7Hi+f;AX~&r)٣h=Py*\6qy?A=fʥM_&nP;{tu`EZ1[1OggS<_﹦0R],!!!"!"&#v "" #('zuy{xy>UN"t_sF^&e\.X)%g%X~s'Ɩ1ٸazl9}}]WE YȒtH@Tʁ&ʙ$ ,vv]ΌQMW+,2ᆺ_p8!NK8La= }Ab, x@`^|~G$ LHL8?CjF2"܅txm(z篟Yľyp  t ]@*XWTWOF-|<,7^Ls-Mp.L~V*i2 ( RDR'6n^Ga#n\~e,$bΧf"!"@ӗjHk`tX(AMladuA'~բm8c L-KjX"a$#@-{k{^XMnI:q,i˖F JvP B, gǢ2 ,ɂv`{.(Չ5kuJʭCG)aIJ .tj5~n*~\7d@ n8$q9@=)MS&s-(Ml \kv`Z5 9p{6$y]W;K68Bhm!{rզ<J<,)Mc;ȄhG*P!@oX/Rii ![]* T+j L+&D*W ~kn8ČR3t*~7vlp!H~x JCw9aEDD=wTXre!\^+hl Bw`"MH3@ h^1\lM{ Dkpvcˍ*`4 c0RoߎoVh }^>dr)!E@eKfxFdkm {uxV}2 ]-=4(.kF-pm`,*>>+ f4S$* rb:G~ekKÍJ\YeT|EW] GM}aXLS845I\g0ޞ tOaL*^DShT/nՆ@L; !PUdTY2IWWCxޡ7}שf{n^=/*P%4h{ukom5Hhf@׳ 5[ӈl4peT,.FƄ[;w:c',vT,4\,V&+QI7Y!&SµUxS3 |-   k J#,HWM:еD'dGф4GW@,N 4Iqa\Ɓڦ0uW˛YEWbF1CRWX*eKMT@%\^;!`v p) 1N^׷mP$jm_|c8f)3tgC"&A*Mpš*I5*wyIbYu)Hm^ƀDbzKslXaǓItO7};sƿpbO#s1 TՆũڑ|-?B(ݠi^{L$TQʱr 7z!SG] E\WUZYVM?( "4`]F'ЪI.Iid `7C7F0U zh@?H.l  P?}_`A$z | DjeBj߲4̤> D FĔ2lMtĸm0q*=J|[fNE@U <`#Y1D \KܒQ- M(5A"ue!F <~@[l6҃if2SBقsWnGw|plI}OKj Dl` <F¢r `(P&8XW8eߠ9Tc!r+( 7@ŝesuA"ߴ5I%~z ,aQx#ɄxZU:pxxRJ'Q1$"dDJpB1l) $,(NdQWK6.WRŒ]r 6G lmcO 8 9d<)a3m?! &yF*g-͠`ʵaBv7P>Q@. A{[ E2ҔDm4Pcڶ0?Q!ߏC==\woV)̐8&f6Rv4.AJmӶ@Y~)pPw pt PS9 ]bA߀*OggS@_﹦0`pu#8!#! "!!(%$!  %#$!! "$""p} ""!'$$TU%Bd"[yJJbiLQk[bj_~>ySm5z r߼!.TUeN?f_KzfR¢!k2LMRUJ<$ץR ZZTWrULdB CHODYP>kIvnT\_dU /55M>a;b3LKWQaNr"TX!?:.;'\D6SySFqaow3@WYsakXZ L(A AB$AsRR^笢IO_z3%kTV`^  G``@< X [ϖP@n+S{#Ay`' %9ʘ{.Xi2$$NLt*t9'zzuL[BQˢ6xfK'E}x QuTY\JL1|%p^b$\UiJZϧ4M7u+C\\W&6U֚R<ؗ՗{3i; \]dE>8,y-σߓi[XCG*d]\7';&5V;{$ǒo~d\et+`lʽPqC^s76Hǖz[]@Řނy D #QOLEnD9)A>4'|`JJv8c5Xw28$ j815RU3 ANX-sUI]*m*! 4UC%!b+X@;w 63zχE%((.R2;TGݓ*"?* (14z#cG#CeU}./6(h*~J qe.x ֆu||&[KӣU~(VtA4@@G0G]WXz*O@ hC*F`1\ &8Id=ݞ7 FH@;^}~H_ϗ4%DNb"B$y__mh b. !o$ aZ"NId؊7:B5\YAn.[DUF@b~š%qI\mITU"XՕ/U\wqLC?'89DUUL|,z>cagPJd[BFWFԷ]z|]-KrI\[BU8[fr$rq@L:DMװtLU0)=v;Z_)u]F27bAQD[JϕBL v}˧󿯓FĖ`O(d_. КfB8xpl5kٵ<|e(W&61M(|*:|)QVlN5 7m2b$GI9YX,&Yrl8ѩ&}5dK+aɭ607=t8Ѵ=*yP>奬 0p)r P@ B% ]H.0)\ ͲZ quDn48e]@@9.s1$A`t%~_nj!L]0K:3[bLc֕4*nJg  *P|A0,"^ߚ!$[N_$Ǥ%υ++ 1!Q˝ u(el;h6 «~hM pY`*p B&0v7;*K =Z#҅<'{FZ[{'{{w),@0)AHԕ `?{qvO>s$%~WW8zvv >%5@-[~T: u*\UյP4#d:RSH),\YB_n$r_ߺ\Pw[ض'ÐV\LU\ɩ}Ox,mp؛JV*!O-,){FX`ˑ&Ez_a9~>Oiiº%1aX2 k.,vBNC Xdbe!>ROi; tυmYzU(*DB )ROZL]vA~Okv*%zIUip*7)dP4ZO]8`\Gj^ȉK DpWOBoH@#OggS@`﹦0WS+{| !" !&&#!  (%>֑J'n1Lu@ .y1SqJI~ig^ hwϦb;9U.][P!10{] IK2iRWDb-b%%l|"By- I٢z@t1\ܠ nE?̈́L {þ#=:"2f̻6e>ɑ4}&IvQNϪl䬈by9ϯdc7DU_<:Hy'B$E5 h->z'A)~ltt@cԅ*3{B"!ꠉ .3-{67k̺tIv$ 4 0hq@#,{{57@NI3(Azz\iPb@(10z })%5ȝBu}f%$ΰJ 4^2^zY_'Kj|I`+ _8U?*RwwO#i`㷰pI( tqY!Id-FW^>vB!|gRj^f/O/3 v峉D1ګDz0CM Zb#av` P`G +97j `]V8Z&I Xn;R|^Lr*?"ˣ?FdeȈ}Ydc(+f$90`*!˘EKŇje `b}JeSxsVvCx${OD"hлZVeJȉ?p6yc}ac^".MF FY\ 0hGzw:d#L~X84'*Hz]7 >>5KO)N~,XJ2(e#w3:bڋ7-o~uʻ"tR*((hȨCrdL{g" ]JpK^O_.VG`(~LNހ%'iW+.\ S%.hDy{Bidɋ(EIYQK2 E2qMCu,ja~)er[?S,Q@ I3k'Rxk6ƁfAܱDE+wڛfD1KL\È2ro<e ѭb)16#73/gؤ+-@>h?nBU IҗPJ V;>(=^> Brh=H}KDAvId)zXj>O<0~I/Y}!:F֘*v.U( ܠ "8m ȧ)#Uˇl@W.@3J "aٟ_@0e şo @)SOR'йL:l*<^,3+چ6DY.Y-ܷvnj5=Fp&lg@=w,6@)%#}d!d+ct5QW驑`Z *WJ) Z1]zײZϓ]0]*d]lCgfA6kUZJB ^oK TW\JIpv39h$hvG*W$LUGP{]rZ&gΗŠ&DW9)M _r^JMnLW\JP]9y"!\~½!buTU\J Լm0}$k%źTYikiz\ęݸ=nkMFTaJ RS2_E?/}o`5Fm2TƩ#;M禀,% @s8`\4ZYfwv7&k}7R(7܅ 7#AFs25v=Ĕa'Zj UĊ2l`B0N)R}p4MWꝕPLlUƉYg}h|kTB2C E `p <` %zxެN%3xOmt!W:u՞5i@+qN5 $k& "$%̍KI&b7/_I؟?> :x(`)Η&rM-P1P\_@gk$Xxp>\v&BanmF:uI(K6$:\xnCHkPB0I$Bʐ_&6،~xOۋPtZ M@`7`8ĄsN K4 />F@5V28.t V ($$rՍQfCmXBLi֎6`=i_#$(2rœ~ uhѣ1/ 6 1HUe$c%}6}SՆT, _H5@`4``˲\҆5-ւD}#?\*-DެOK rzD,ءua7M '*)u0:fm0#',GCϸDQh2m1S\ǭ51ba<! < 4'%~l{3v;uD !@BuaRR83M( R"\TMd҉;3q.ϣN":a#qs& RR`epm_1'"{D@(IP R\x]Bb!j̽ Sȇ2ABMOFe&VwVJ ڠ%R$A22촗 pOϢS~% ȸN^U_H 9IY` : P1Xa@N'Px2 >jZˊ4QF#Ȳ O>2 &:P.!%,W YHr3,yʃvXC"#DU€eО/.vڽ*@˹*TYRu=~ԇP~ɋlMD)T,WF:t 7WW߆j p9`@`nwul|Bc>W$5xtV|ξjnmUOggS@x`﹦0f` 1{|y""" !#'#  %" *'"#! " &%#>u &vzipw:;k}6;O;KǾ͎&AhY&LF.iEXĕ@Lҋy| 8rQ@QEL1"'•"lSmba .)x 9pI"R$H}iÃ9-&tp<}vl^G[z@d@gJp ha0hC{!Bbt!@U# "^ J SVhwF`Yz-@r`j++N.U}jY!<:zUne%H u_iv._o t)b  ~@>rWP# 97xk+MOp;$9ڈ#wr^s 7m:߬R ;^FQ:0q 8,X?*r@bE؃M7"L^t8@CzW&` .„!E$9Y1nucjcYSF<R@-o@TTt ﰬo y@a>0C)&`BiEY\0?FJcA{_SqlՏ($!(!CKՕ]S)ûfTozAO[ (y.@b ޣ>X ~2AbAFpq+4SQ؅Eb!d/CbLIdBDSy5*T_䝅S NS5.*e4W)$C{3ø>=kudخ"Y#U4O`k*?߷Ez%tg RMrj(%4B^DYh@Ã1 ߹!Fw|p}a*T[*T[ \Ttjϔ"-qV7Lo3!RB,Ci( dݺ徟mws :ʬLO+2MTWԹm E!BF(ABѪ]edr;~?Xc۩ycA[k#*FF,]S %B$~XH\][=vxWekgBZ31F$lcJaYcyʔK8cTAqe`yi.w_TkNPÃnH>d62oDg`pX6 )QHdhL{{&"|g@W6 :8E卋cq=lxce\ Poz@~YfI.<,5֨a3OOEZ"Hޝ/:Z0jzcfs'8PӶ>RK1 1-  ,sQ`.0%oDUt^,^ F [0AX `<4?MOڞfoZribl^`:IG8"6b\ߧŅ*Y %ҥ6^bv(Aq!RFUULM$PzPӵTA4=K㸒OH)MhU#$EFÅE:SM۠yFvCBL^o9tV6}|\%LRj$4c^F_Ł1M],jP\Qu%3ot*:E\_>}<05Ԑ7'dÍc}äy޻UC: V?0ke s72_PHMTRkPs8HITn]"J{]X$ _ v]fXK&ѱ{͎ bm~7m3ρ,pgauuoބF/EgH_vDG+79`+Ë ~0ސ daez X`C?>uѪ~d[v lf({v߃Wo³gb"B:0z5PG0W{ܯO(v^86(VH #EI. ^_~1oiQ7tZ:RY=`äD&ڥc-ŷWw-@B[t)}RF.hyaf4b.6rcn8D!S15hByeb<[WP.ƂbIxى_fzu܇b,w.ȟ%BRq4}LU~} v[+ @Mr ؒ`V#n7I{V4]"٤ ar aA DYT}`UjN1qH.T׎uAj7VC/cPrZ.}eah5F\[m+ U޿I04İ;!y_bz]8ch.5Hu+{|sv/zBOXh]{ܺb^նe MGeHȡLz]̙& P.C [+b] .t4ʺ(Ot ާ.TpTP?^nuB= u0cj1j*7ՅSbEi$D]er}%e1^t74 ~Jپ:PPP@?,$rSIHH%r-$%nnM `y<ʑr3esM!Y]8%,RE1>)9wY1sy51PB a%TU@@k 1q^?v_ΐcxcȠb#\\ DFvu|52*SjL?Qd2㰮}G[VDO42w/*<44ϕ#\; v_'a7U#fAq6:9f4&jG+B_4S q@ `cqˬSuT[6j65Ml@j|J_N~ƢT[Ե4fύNgI^TLY}Ֆ \;y狾\!yRDSkv2gN(W BsLQXUӾVC945L׸=żE\Y@s}y@`̦\֛m}! \_ D} A/CQnޭ-VJ2B^ +r $y'dW >lOʵەku55O-%Wޙ]_WS"<U:^5ŧ(9b ȘU:q e;omA}4!:J|~u, /Z N[CAB ŧ_ψ tKq NmLc+.,!gU{(p(.s ¼,>cp|ݛg.z=y1IC&B1_BO>5o-) g&ɚc5m> n@!kt.rE`9$VOggS@`﹦0(0;!"!#')+%# %"*#)"#!"#,)(&##)'&(!## " %&#^=L$w=^̓u׫fA&,\1HlLHUr>!Y=qq<<WVS m B@@E{䁢&@@)jy$Wd%$PHh'ө UTt0z"VxZUZwj  LF2Ͼ[xk/Z-Ϻf"B||9}vMneg^q;6ZuGM%Xw+@(G5 Vq,yERĊ$踥/+oR{A=$b@L6]\AMYZUp/.J[ҘCQ-\ѾUĕ <;fՔLUM6?^{{/_d*HF^DD:P~R6nn6%bmIUhR)T ּ/?>J oM7vTۍ{e[6s0vxj[q*K˱z'{}ow"\=[prHA`XNGk-m@8ޏƽ#У@=TkQ4?FAO9&`P\:~(&V\'c7\o~9|2o7k:FA'{u>$/^p%*j4dֹ5|i[[GՙOޞGChdnHX2<6 h L@zh%Pj٧"CBȨ1z}n~SL>2\=[K-d6bdu*\wX8݅SLzRϩkS"~#da,H(*#RR%{Tvh$FUwMޔ.@gv=g34XNQBɓٶ8% $) :.ni@_WcHvJO.0V9ךô|šO"E}%ݘwVbZi9j4ɫoWMpE7IR[x5򽖔K_,RNfp7ؖL!Ih^G]*crex0ӕ6xX"p|$k41vTgRv! l#PݘhfZ^nӑN҄7͋8 8J#Th&0BUty9% *n@#D %72K%h.,# ~JbS0a@7"7MىtasC'i,=y DYT9 xB^M'Ƙ7ڭݜByM%1 57n>20Q~wyj#K(l\N#Iph:Y72]>]ڨR6yuRA} x5~%Qp4ًυ'VO_6.(NO+MO89KLobi"\dIXf]7k|mrladͳMz*7WXUb2> |X, Q~ fL6;$4^jbUsUjX sLi2֢'v7pl7k][oAZ !%h_A|6u!,:,Ǜy_cf(K*s\+9lbiɅU`&>TFB(eѨ]DKeX53@n'CKH*&He_~u\WFĺ\d_o7V\p˩e3cdS6ܘjϟaY-.L;PWXIP64`Zk /ܐKrFHhǼ T;"1Rn[V bLY37ۗWt%SaOT+DWSv;{wxde},EdUGW׺E3úB!$z|? pDY}4?)>e]ăT/2)5ƕX.Dd]LL7 kt=5lsg^So󐤱۰Tatl 6y"!†'R׹l ta(P7לO]QRR[7Y:_:JeN[GQ--Snrn{cMcmxl9z 6J9R+*eHwƸd(}fYa<>49{K40W vQZuqEBߌEӡrJg0[ M* yQD#APOjE_j5uCθ%c#׋xy2&Qٺ@R@ dQ̀!I/1t.&_ T/7= v&G Q&;\I| ~X8[~<.%Jvbv˳+4;"GaLJ;q{mi%-1'w<)slڷ~~p!جm4-=w#@@'YOtd%Nr&k4 -nYBc ldO5)B5B 9OggS=a﹦02&p*##!#'&&%|"!"" ! )%L:. t >Tf|S-\ۖ9x87ȔmZ8"Os \pS,xh~\Lyhh&ӒΫߺID䴣Aek VQyּv^?|pNiLWT%suIoIncD[ .(:~:v&㉛gǜL_ [P<8񦅥\G.:<67, (gG*^TlyH1ETJ<{|MU}xY/O&eAGF*mŰ4}א¶, QMUP0X.ֺo 0^<ֆS03A!h4iOULȩYDw?MnQ:ߥ2F\dt X" i m򶙟5dv:6CC?FNS&u(_Zւ(\0h~[CH!I`& _GPYǩg::gɥӬTwأ7\BD|. O:gOA2k.nm/NS2@ rLkѶjC65#;A,T F0"#>K%(Y+4pADDTAa<+"y{=/ n< M=Xh?] VNkxJ.%V͔.5#NʥpH7-KR`Vj(..8YF U6nU]+Lb~;WVۮeiKhHҘPKO\cdrJ:C>Sx5uf(1ӡݛwgF!qcPRz,ܡ^F^u nSF8&KR9?JRC`I2LxQ8oRݳCքuHgjB  k,iώ7~u8=&}۩)B5 ӱaՐi}zc]‚w>nseјķ|NɠBf낢9?HMO՛/6IOM%qYvYuᐲPdLt00a8b2|1L OͺSm>1UX)I.aq @#Zul${"iɼ@t$O\W|V)fZ4H⢉elo"C*oБn\A?^_dus|i _{>w|r'?ۯ6PЩ~SkU6/ߌNwW5#.j2!]C2'P[,aJۉD),Uh7=p#+GBhq1 ԋ7foNjGآݪWpTm7t)L?L HSy?Zi7iM[{ǑWׯp SJ"nJ[ WDͨX>-^QJh+ ijK'"2S7hamrr8a8mߌz)H'.h{mZzZRJ aK3؄1K`"-̖lb10m(j5B /m9PIaQXs] )q"eS ^rs-벣cݝ: RNm \ h%%Puܱ'95!qARKx]zmh/r{NR|T+6B`]XrJV ȊBR]Mk5i٤BЖ 2'^ѩP+b0>,r#\~T;u"ݞT+ ʰ4D D[NZ#^,A<HvgeQYn;ADFe{[_Moc5q UBnj? ?ʧkt6C S1+͑Exi,i \ A*n!`^l) RXu1M",^#*ª*HT+UX @IP h^/S:nTHd^2BN5pt,niUS_-qI!ԁp,n $vl<:̅ъ yDŽT,~BFlg?>H3pcb*|̡xxT0-Q6&#k \E*OZ!{WƖ_Z\eOZ :`ݛҨ]r(jA5sMno_v7NSw/pN+bE v wphުhAO^ ?)$>QF ؉OhכHiÜu;E)sZǖ>ԝ?Hժ9&tA/Qbɭ֣chh?Yj^Ŋ\UK&q@\wyW1l^ ]̡˺l3 B.DU助pÎ1؃k (=5R5DU(r6vo/bN( 4Qtj|V|iG,,U<OqAݓz}>~2|$TWе8Ԧ#>zk0ʞ &8 \4Nlᮚvѡ2z T>+,*J;Mn}4EL[QւLz3,jKw_WOî[[e/\[ .:A Hhz)ҵlJcdk̽: :SڤH 4\[,22 dߎag/"PS_s.dS~6,j1QRl8ݐֽI ~JSYY0'" nuwpbl:fYuo=JGFu4GS `eYj/I||xT6cw8~ڵcWKx#VA!i|o.0Rˠ2f@^\@> ^ \q0;e .=IZ@X2 #I٪L)uxD.=mQ?*xrp\ 7<d;a6ܐ* ( p"N)AFc6[D9.Lq1*KH!MG(vՠ^ P2f6sSC:Ti3F,I@~WBHw"07`(h@A0,Z (\ |@Ŷ2OggSa﹦0"*$ !!!!("$" !!*(wMd6Eݺ0 a` J @DL(d,bYmtK[ bOeGDNcWPj@D hW0JP~'hlA7e t(?}/-)%>dmVlc6LZ P\P:s* "$RIwlx4f6*Fm&"ܿE`30_6Xt 0 nY` vv.`N\,l%i='N5<ȇu q# gpeʀAQHAd5ƴ_A -²D)lIaxS2@tx0O~@@+uAf@?@KKZ~ 6Ad;0~e+ͦ֎NHfQJqrLS7GG{ Φ|a]$S_^]E~ѫR׉ٜFItR/ тf(4%r1LA@@j5Я.!::)]5?QFR-I9YNG*D/5Zw|.q1̕h$kY߸u0=鷼)_<چYWHVdn%P  o n@+Dȡ*K&؁'@LnV~8UiL|| ֥'RE"SR\ɧKpR#ox0ff~ *@/7$"I Zn$J F dRA2#2,^u2B4k ݤI/m &c)Hd$ƕ;ׇ~u=wy0ZRPD^Ih!G4 @0\JXr r /\Ve f*  ZA餒ﺂԼOYDp[S_ߗecdu-Ƕ Vg% f)lT  B@nC` 8nkbA6J'ASI0M,T0 ~u"*qh(D3@MJr|WMa%%\i#t ipMf4\jXXz!(zH@ dsnX#>0Ŋ@dA)\zW5uD1E;k@M{̂um3%R"Fr+И⏺|n?>< 8TV`tPehB` `(X+zD,0 VU.m!\;9RRUԂ‹ɤ ^0ZTcaV͗LJ_klKG`S2EDf 1t7u<ƍ# 0&;K"{pe+\@RiE=EH`~˅~%S`Ч]\WN`4%*oZ9;qR12%`{Jv DWH3>ck>[3uv*T.DQ"eDR;zOw0򲄨Hy.,SS8ܾDlO~K.U`BJJJLU|i 72/ެl<ڔAI|u*e(kv j{FEL|p}"|ˡOB"駑I{_+M}}z7}NgNꋷ)c~HdͿtR)Da 1*)y&.!^mn]܊X4$pOMyYS2c܉Co7(|~z5[7jO@Ӝ!m?f ;9Tbk _G(*Q.O* ,H<.CfA8dc\/ Ji+폛׮c.t(߿똝FQmm;kBT05V5oǔ0kx}>uW|5Z; {cN![rIg PTsX T.v^DJ rJD~nM5" sf4X ."\7x _lV2?~:L E{}|Z沰 Q?ݎALVH|:q_-@mH@ #'*,%+q v]B hE R|gSY-!tr ?ETWb J65)y^Ɗ a56p{G F4J9 ,RL|1tIbD7T F,*ĊTWS/<ߴw(BㄛlR TΈ6Ά% 4 f$\SPU3@>#;!c?%n P\ېëҨ]Ϻާz&)DOAd*\{w+vL6o5P,OOQD?+6%_BVJ31q'b`6 ㊧Z`lUk=UOL^|weE{2IYԆo)|>TYd =ї5,z[6k:j?{=r GJ!'5ѱĎ&z+a8!c]9#$#$Ip9<-ge/V:,HM0RDEev+x.XP^8@n˥$5 ]vEj1Ve9u ;IlfD~+њ @`tEm@aD+# j.C^ @,pwk 2> .MʦdnƉ초Y\#y-1jJ|d,a Fj"@X R%~<_\zҸ(qa *=Hcԃ6\ɃeGBT@>k =k9>|"RlJS\$D,m󙌘Iv:TB ګp?ˡ,P LÊUXQE\ ƀ +B~KЀ;p8t)9-JY<(];؈᥵DߞR6lZ.&@YXo P@0F ,A" 4* w bEH;f:TbPzT68Cw$DmVK2Ch~yv L/N DzuW FjC_X]{D ~"}KX( n 1p   tULS(ZZ;=h HȪ6:}ORC ӯ^,\S`Ub]L]}%7UiBcd[wuӹf/G]C4*W\YD)4×Ń; +v5PgRUd[u$KO;BP*\YgJa/׾ȧ.5a qDSJ P䷬Oة5eb+*ՊQDW* 1>]" ^oaM)ҶY'_^Խd_AEͽkuAiIYM-Bd_NX'[<ؗ0|vꕯu_k|.Usl{T @YV8pa8>cхPl'Hct\Y Go^5-e]S*}s|R(?_x׭o9?.{M0˂r+ ,w-3^7' |Ρ&qpLOIshS4\x,Mx".d@Mv)FBh:5[M(P4Uj~%L@r+RKxSځE,ђ8z]yц@? eAAP!DD"@jnclE ӆ_SռE7@Hn߁ii@ O D~L6&jCR`c xѣĸυi`)(!@$AH"X\6Nvtv>%`A4<P s : s \0I'|Tp}""^LNdvTwnܚv K(hBQ" ""zvYIS>礩'G>3nwyB݄3j7z `8a/ѭ Qʾ _$Š"\n&u+@ Jar.lG130(H%k=N͌WT]lmqd,i2K*TM`l*tN‚Dd@TTp".|SZ`O sAk&DH.elIчc,2fǤe]6ؒdi7A."hИ xЭP0/`0':q.(">`X9\n1Gl]%wHn]EE !E@’$NlLlbމ8qzA'@ -aq M@vn5t!AE ?P +ųDv0QzŦz;6~"í`>Ey2#,ʂ"($?vL=;kz_f4FճBAG@)83OkgUNPU(LWTE7US>qmѴ 6/7JͦD]Lu.B`>xmyXE2 %n򱬉]*]\_t* BXLy.b}Ł\Ie:Vrˤ8f'r糎b 2BY+Z,k 1wFNsmҾ}\mкb0c%PL TYЍveSlz`$-5Pb%ڃj@=|K0z Z8SB^)}>vaS&͞LECAcsmq(efh"A03҇S~X:֘`tY4Z!xC*( 8XC8w f?]+]N*B)4.xApyĊ4Ce "a:W\y/龤>GvJ\l~@xX ̊ACDItE\r\t/K?g"H m@g 9CW1GK8'b@'/X9 OggSb﹦06### )#TW\dJ%fLJE K݆%[,VdWh`_}n@$ 7QwlI\L_0.1 <8L|SZ T]B \[p8 nTD^ma;OJ\]BD]QrE#×[ΚG\WBTW@X? @] &ihJ$WSlc$b%r]m@r]^q T_ C/!?xk4 ñ&:5>׈:%4 t$^/sCR2F'dqqo9ɱ;Rfx:5Ojlg4Ғ?^ԕkdIDP3!w7R)5H$ WbT $StGBh^R-U^NDH*G e@ankH#'dDM܇Hx%'Û$j'Di7 D(.gJ+ϛ*Zi#,]nލg斂ѣ!!5W>P«# O`WaAeox8lo%h ,̫#tp(ѼVtg \TU[)'/ϿvWKˌI t7j*CjDw8hPwVYzU$SJ 7 {NHqp͘8n/}fw8n{T_.@|5sܘd@t W,{+¢ kD i9HZJ\7:~kB\2I c /@ [+-v Dtj:P,a\wƸ'9cmL{7\9OnIZ5FdMv̈zQ !ee@12y[9G(<";9g_734X0%8ޞbaNݠttyC; PT<`l̟R"rHG':rۦF_SeIxVLH݊G(9IĚY6]TF@A90 ` Fۂh":\b1hP?OD >Q|.EpJ$˥$t\Rd %K~*;OI2dnI<𔷌h!6^:(O)Y R&υ (EWш 1  l6Q"ѡ*kb4_^=;[T&ʄa%@%ee[YFu+1^I% Aɒ 䥶X} $g&血'Fx0K]Ũ[reuFjB@Y2@u 4CZ;~>"e G|cm*!HS\fځ2I=Ȧ~SeJ x>˒RrF֐@551vh'@l@֞),Y/@`>8[ ʠ[x)BnS" 5D06 .a(I?T]F$ 2) av̠Mu\0ҠD\dI%0xYF[^[zOH _V-a  zP5"AeBXc&Ia nD&B~.$Q'UCB$ەaJ!JΆ A'?:k@,BSS嗫`Ҳ!{֊K<ΫpYexA 5P6(P P^ՁۦgA#*ȥ`S@lqDa)hAqe>+ #,8!ħF$"'ĥ8@{aQ"S# uIGݴ2 lhG7F2bh4St 76Ԏj@u2ćk#,+_\2`XDpb`E"ۍFV=&a&bJ02ODDDi!{cô2'0){YyK^QCMN @Q7$Mbԥ9@ D% @ann."A$< AͲXQ Nxx!FYy_Hj`JȜQ:+la sO}~YGcѪdZ66R=-B.AP#B `n@-@ ӣGz`1yA@LBUT2 "%"Ӄ)uXԻmq+九EG Cz66 X- p tY"LErCe0;׫KdzxjV^==dw,")6$ @r! T(7P YI *e`^Dn%M*'CɐWۭ"L6S.f4M[S& }YgIBY'l?v+6wqa~{p'=b3PF7Yo@qK٬(| htBdPC7@$*$ d-L`Q̎5A7vI r^&i]TiSr S#vwmm;dⅴ]0 i‹uc*kM, AsmP<βwW:~%S2Nk^i|ZuɎ-e{ΫEi,Ltq~b[>jvlZ($B8A1NsD3|Lb%ʰ"SJ͢C\ᤩaXi0|mY͘]i-d<.J@V (gE*Rti*PhL L7Z.ܐX.d`>dO@x9H8n+&l<Ĉ&e,5cY55tT[Wf9@"3@P̠or.  <ƋPCl!E4#d0.&^ړ ""Y:=v ECiAKuO"6 `dKDӒ?];{v@1aSݟ82Z X͠@Ydqb.j@p#Go @&wn~|֑gm,~]ٍ< ,ޅ,Xc!CE03?ɤHh:fyݿ֣;Ƣ3J4j@0aNL!A$9S0nx+Fq(0RZqs!Z#`bkChefzTܢ;d ɒXHM8|3^I =U@\o (aYZu~ Ii#JqN G*Vl]\PpAURc!!^|!&,pM ?"f Q*GCZaB2_:'bs:v 1b".F P2@dq;ÒF*xPHA]Br*V\еPAeOggSb﹦0h3W+!)($%$$"'%!!#"'%&)í#!"޽Ot9~;M9- q4cct|;>fY8.`6t }JZ#>].7DRrޜnuH9]XW߱ q%kL[QWv`Ӷgo, E\[2)QZcx0$N۰{PTjJ#L[Ywiugn.jBW?H}]4rvD55~m\YwICN~2VSD )㾖:AU|PT"t)/{ou^l RjQ* ^ZAΰV .1FYzĤҠ% 1NRXmhbTflvXG|xcӧŻ1|'i_p;n #7p rlq?TgJdTEQ2J+/UV U1R?e`(Ș>땬vNPhZ w5\dTUahJt'h>"1@V}xivh=yx݁2hP¯kdu30,JV'g1<0A>@p, d >o5,>+43(? AOKM0n>%KhO=<{ʼ_v7(=_#h@k]A-n5b Vy@^7J-._ՃzmCAk@ \-?A2VЌ":X^?ͻiĘTَ'Wsc㰛 lCX!%=]mwS"c.Yzb&bj2B{`)$DyP6e1 2!4%;F(Cрb;Hпڰ lߺ+g#Ed&{-<lVnx\GzȘ᙮. ü+4YԸ8X 9=Uu0 ^wUwSxZ{.j|7r_9H 1^veٶתVތb 4,.lFJR<Mf&ǨLiȉeHc~\*rK(89v=U Blk0\ָqCq.r|g7F<zy<4˫vQ5o^ab4 cM5zo.׭^ v^rX Χg`Vҋۛ  ,2:tS/4fQ)0Nn‚ ҝSkwխc.&EMutXGN+;uS~s bcJ(B_1E~ŢQZeLGZ*S!>7VK~ucKxcy/5&klO^x~pLzJ$Jʆ_="<75>mq:mcO=ca͞ϥuL{-7c/&7zbxUnou,(,Tb~Qb\`Kp h.Hr ROC}ן&%۶L;Gc/qtQw҇ 1+QS~ ֛OY}."J6 L ~M[egKvտAnGDոn._R5X(+n@ ҵX5@I[\ְJa&F:Dj<oqyhlj:-aU*STL1IZUϘvf{f R=?@KO_S<}*; (@È#I o6'|)2}AEŸ%>m OnTTRPoʂ>Y5Tm\i*ey[Kތ ivspJLJRsfd2muH302ߔc ua ˾ T  F6" Oi(@݌^t)y.0Xת b:H9ȢK]Oϱq[)v+k Wz7%`,Z+Պ[99|@f6|t2~%"Y$r%$+Š\^uIYs|P M|^FmN$DdM3#;ScB#ڐ?v?9ٰ1kΔWPhK4[NqU5(VOdzVFB`\*;n0bij 8B|ڌ7pOďxTF8=#I$R6sRy}Q.aPXAļՖ j*TP7 nIjTC.t2IJHC[QFĥ(v8 L]w@!txSb>D3CdU)o@~mw?56U9LWa5L: N0Ux;*l=sXkIw,O*OU}+ #ۨݎ(׿ӃOT*= TYSV?vHeR]vNDs2O ~ll]í35)#ZBL;]Mz#da(P3͗-i$'.u:}:P/ @!p@}IGl~8|82}wsNŹ3Ly}벶|]? 6/9Ks5zc1߾vFh73@ɀI͗sgw[mHC^Vvb Be7]4o? {oxHw*r F A 3wYn"tmu֜_`zBDyϖ3| W *YtKn%eT6( (+EBR>o*'Z2ª[b~ T?I5=(e-恗@ЃF!V6hĥ[p?1`un[$cc8P>pR8|:$6;.-W36Ύ؉v1`ë+.<4g  |-c.¶pJ]N{sHXN~v+{Q"tv" QAnZ?1xl()H+lbH"K ȖyZmV"f:"uLuGFN[#H*Tݐ6xyAydY_ykܓ:lLONڨZ+giM~;8IeFL@(m~>/L$T٭SǧLS5|~|xɓXtQ˴c;\U>񨚴hΜ7|A-wkTˋF)5oLUhE旷: R8Ih߿kPVT] .0,J2I _(GBhL9#*=y>\]z%BaWKĿq8|e5.KАHp2::I@̑ 62љٵbqDiלi\Iqߴ{h,Pw'C,4皑`NS 2 +g ;pg'ݷC+J++ :\+rĵ# HT7#~)V|4Rc8ioRVj] vf2uGDB3,G*] Oniro69*wbSD| 倔o4(]9 \,n֠O$@c`T؊`c4HO`-+lФy8\\n0%ъ :kV`!b bgvDf̘fO@^,)'҂" dGt @"4za/@9~LѬ! z" %yIn(0F@5,!0bD$&9Tpl;Y·Ajl4@yt~S"X@{E(>,RPG|Z W$%ȉu\ؙ#"A F;lxe`*'1SeLOnjhxk7"U^[F=ZI?|-%0.Yb" KârQ\|]|-7F߳LE.#704Q" svl>L&D26l1:ifDieUbX+t=hXc#neJVk6:v-6hkQn%$Had3iݷ{$k1q'H`A#[I@+T@cIDR&\M >WK2 )+c(ⵔV9;n;V:a%tE0/R8|v2N#_ٱH`~q] ?}mϡ#1yw48&N#bNj6+IvZqwiM 3 P)p:h ?Ѣg)q\@" i=~ŬH8ݒ=Hry q c k5^h![wvf4" G?"f VC5OQ)P WQFQXhpWp@Q/D=wp@.hꀥpxSP6I(qfGȼ!7?af_Ɏဗf kl8X[ kv)Zu\Q߶MH# 2-k AcLyNO!t{I%,bU$z4F.?DV"[T[uۏrfXMLP?6UʺVuTOggSc﹦0h$ !!('$%$!" (&LY+˾2yY J!:8@N߂~I(Zǂrds$>bVf@E|.g/?]"m00*MM_2qS.ש2vm4:hqED+nTvt6MgA/1 -L,,Q@9h8K40/QL+J%? Duq|2 L^FT)MH9Na,)D0 6swD$~ ;/[o3-wZBmwРiUrJ1l)+#O[)rΰctuG$ `am8|:p;>ޓ F01C;k$IN~"sTwQ{DFg܁n Q23"AQ׿+Yv~h7l~>vuhd '=N;hWP[l>_ HT#ncR9Mpu @S +BB:6T[NxҼn ~;{p _;8%nDO3eS/_^i~`/"1p(nsr.P*M{Io/ByTݺ*kٳ~+PI/v+2-0J`$ 0#/wIX1Q"'$iܯ>j;K9;*w8go0.ۅ*bB$ fR!ZTl{ϕJ Am 1v,#ukan*{๊svLOW .+qE+²k~O*><6Z)x̌FX 4 mOSG/< 0HD&T2.(Bvѩr*"7{"|Ͷ-˂⁊n.5k[,>Ͱv53;yC368ƮȬ_0Ek0V6$/ 5g¸AX&[btqlkɈ#9ʔ%'B26b62<ʴ 9,(+Vzu)FnU ^+ SF),YDFbMERE$BQ涼T b')u9yZ&WBx*ؠ dln\Fn>!9qetl1.{:GUlv5ΦzηP]9i,ʘ:tϡ!P-j a1dVCr7F+QupEޜ.zMT<~\\Ң'?6Efp<:G"qQxN05uҥfj*8O,Sl4돧3foYS@4!vS8b=r_t#4[7c|O㔹9ctW>ͫDA%XJ"sM b dR*>cN}XuO63~NNR㺿Y{?2*s~B :NO7)@>?8\C^nC?T {YLIvմ!{]7LG[b7q'! Eׁ\ ^!&|^j$lnPʢ7eLq^O:'uwЅ<\aXeN/nG< bWG}aM#jgfX)ج;]]spbl!վWjqgktia?e7$zt% H 7#D*l1@) ssj;YmELXHw㪝N `v[tOmm~yM?Fw_88&)<>Γfor 5ͳǸʹq~5Ḽt\;J%aڮg$>P0R8 TH=[=[^m9۞}4o$v%t 2_!ljuI欔]Ë["Ќ!18xj fOf?ϛysL驷cRZ1rQn\چOYr]+w:qKvp\^nW'^(.l1bەp\ #JRGGpQxbüC |+F gn7HHI=Zׂ%2[N "ph41Ʉ RCXG=4IZBv,oC#7 J"7#^c|$'ݲfgv2$`Re)7Q9zMueINgp3DרHW\ HJ__arjحOaDGKę9G̙ˏ+.8E:ߥAWB*xn\JYC "kNRHsՃ%K AF紋B~o886M.-2[Km YZ7qhx{R(el$DI~'JO[A :ͣa' *a'' PTC3Ht1lPҮ$㇥(b*.+[HtmE;vBf7aiL0ut+H)Zt~t鋫B$IN_d5S6_/Ij  Tz*49DZ AI7nm_C)NunLtKBY%gJ\%)J4~ەL4BK):ME⺱TJ7Eȡ~S#؎3IhFN+ūӹS=`l I#ٜqTBMz)mq^Yc{ͦ/h!iVUnʙcj"Sr;>BPğ6T`<qXL6M7>;T?adקxu8~!:7nj؍+/AhPTvkZɺk*980(Hup5<0oϖl^Cz̻#;%v} R݅\ZGU%*eyH=QdqE=,I~ۍB@JAvPBXPx>85p6LI4,;cfJXї`o;f:ABM-mޜB_$ P 7 ca7s~@(:̽$Z&7HS] YR F1JOggS@d﹦0烱+'(% " #%&#z{}~{x!"""'$ª~;6!P\fL%#HsFKi'PtO3OO>)Lj"W <*؈NWX*@\N (B[qmuJSra^T%&tGGh¯RU^Y wA0]4:нaE3O$oLs_9,t^,]Y[,TD Dujn DafZ)3cw1ְSL4)uq#ލ`Eg+Z$W T @<L3׭ \By+_޽uե"eMacrũ=Jvw% &S\[^pDev1TK`a$AЏ殑o8;b$ñ軲hڱiFu AIYZň^Qk0 L_$h+kNԁj d8c(߂KD* $֒ n, rSNn(dc@#Z"*3lC Ǝ) i~(\3ɎND0k\t*Y^+/% Z?ėV/@j (4 2U`YpV+@t'֍a,^͞R] )I4›^/> F[#Hai0|A]YI $,X` ]!TTIZ0NUfGGGp#:88aF:͝߾sعm]V}XSKTq 8GGUՍJ vdP(OjbMn78p O&PL\+l[.<ɔLފfA\P~U8{#]|˜p}t2#sȣi!p;ր^Xd  Pf@Xƌxr/R+ )x!5 -ƨr X-;6 2/Jcňh ^ry*v@xyN#Nm&_M-a{~|OI! H LY-R m*n\Ħn^k9A 99IU}U"x)+^j\$n˷o5z%nOANHdՐʪʉnKZ^q oР"T4+v? "ͺ9˼ڄ % dۭLDJSmxPw6"=gRCyXY i 3\-׍(_./bo*֨A IL𓮮+B @#@b8P.ȑl:CIUUlcҴAE-+. ] 6n dT#"aNlG:bB^7>AE埰GډY+P>Rn&+BW/\P-X0JK h_~Lޜj)+I*O%кxj6n dH 1"ƜĮw֋YwJKAR!KK&CT&Vp##P/H> ֌Aw5 H >fT, S bcy~}ep5<88hlB~0/";e&SOӿ?Bk>Ih%'J`QM5 +B Y*L#^f:F7KƲΈJ2"wIW&6HMqDByeDI gcw,v_G1BN ]~t{Y8 C @9Їy.\7  VU^T7Vz lY,F?/l HI#"! w:;fJ,3(|!ɩ P. 3R$vT7@Udn i0ڕh_uǪyuN۲ .?.] 1 1"FDcjxNu ]LUri F ˌA  JbA0a%X: 5B8&_DQ3%adLâ%r| 'Kma4Ot*L`-5t]%T}%0 LQ(T%h>_ޕ#?x͉0ܓWSOPT#)4MF#@u#ml_ 1zOn7*~΃nL+UVH1q#0Tud W!LvU"N\vIhPi$s¶-7WbQ:]>awW~'Z}N簼zM 6 K;|( _lΤ̙~Y*^,?Qcoj!dվJ* 㙎#*w OggS@md﹦0+6;Q0#$!##" ''$$"  &(vw!  " &&Ln#2& K{(CdP/Tk&hoxg.#ca?ԴOPּiiҞo 7ـ&ۭYN8!سvY۷-[9XצVOnI,mv13\t3ևQ,+԰"F.TI$C6NdR|^/mҤԃ{&8).?%Ƞ+,eu^ }kk֜s9?Z)r|3P\?cz}9:M֍Fk`a/yYF&5vaaŸYe{êw8hPmʊt0jCJ4V~uNa<,ݥy,ߣZ,qy?ϙzL<=|+?_Dr&Xp~|̤AelSJᆹ\{6uG<&^gm|x8;'N(/vyйbs7%9% 릁<;hվҬ6rLTh3(h>/V*+.;aLVT?ʲVQo Q2 (&$!DJg " !<:4FzBٗdJitkG`OLGqd{io*\!+Fe;0(!8` ^8uPqrlj^hd)aq#+L2Rrrejz3[}q,k~ m3P1h#k@AkPہ+oHĬظ{:.Uq ?tҿ~ڷ˭11aYc\ CdXԩ,m@M0NJHHhlE>VycԦiA8p@Rj6y v&خh4w.C=(Awх)aEqH0ҥP&[ LU=)RCMZ6P*\[Nʾ`=`:}ZToC5]]\YE0db` fS~Ub\]7֗ȩ_X Yu;ƤT.TQ4H*VP.ᆕ\qRVkz$MJB*bRmy]8a9oJ(DUjʩ5O76 qSuݽ. \UadsU0Os} _'7VIU ;\_ RYXpV wՕ'0\[۰_|&vJjz^X2:Ew T#~"3Y\,bi`reJʒKNjic8SX0S{" ~$]5UL !"X'ۢW83x?<} :gXyI@$ hc`A|]Dd:$! ?ʈM_zt@2Ŀ %*`0&$tlHmfJ5͝p,{o,øK<+nc?T&Z@P >hvT7,!*v8,LGRdXy~neH\F%ύiP󣪅*i-LK)5gg9;<1}MT<,< rb$J2 D nnFH9P_Zxރ ^`M#t 7kNPa`s#Bg%BȌeu쩣^n[fl` ,xC\G컥nZzH>̩awh+uR5H'qJ6iEB~@B}TP,Zpȡ L]ë n}Nj}vOd7TIgjTS8q ɜ%qS.Pl3MF~8CU*@'F1ϥ\l4rcNCdOR P FM<(Z 4>ln^CJ zĸcՃs\ႢE(xO4 2xy=jK&M'Ά["c:*Xh`7 &b`=` ѝA $$+T]D5ѹ)H;o X0MOI=[`@q)[4f+̬)N'P G@'8<-.>X."p#_ &(( cbEnD@@D;6Dz5Nz)doJ.<U|jq:@J$HD^%o] kVw_'\\_6@2n ,P@AGinFKnBDX>VfCTY@te gǻO7-zA*,XEK = LW-W]ho>?\$6#{wSz bK,Ot6_i=K$ĠKLUb Qv}w}p! QtdY`Pˏ%}euvjq(4($eDS\( ciǿ<#\֦ǟAdDEd]fP?݂wJtĔ?-R/T[Ӗ0m};W(UOoM<&{f)%7k)-!A)|DDYuBL2e|{lQ5eضӳ^2qez|g fH/c.&U&B #jBcJ+k(/Š]Wvw+lR?QNl> ARvP..Ij0!tz*P@C.6|\æV8D$SW.=PRHB-.J"BdtD[OS=P2(KTD*-&Gp{Д"`ŋ Dhy|SI[)·SR)`raBP"$jmС!Ŵ$@hܪnE0Д [ΤlY ;o"K >o*ĝiID) ^|.1\BS))D{\Y@F t v]Dzp֠k Bd3!b4=?u^bIsN:i7Wvfy;u}ǰy$[ Ĥ[ ,!|\`gp0pJj|OGHpEL΁4Y԰$=!/$7)!ZÙp !JjVp?{[ ":M%Ä]*-) r#߈p#t@ j#4E|B!UZ"i%6iCDB1_4˿`(hita\=|$1&jJnظaoQ .eL@vXA(ȱS-C@G`q ڇ#;2VRo>^j+~fQm_zLJG`!fk:R闓"m:I:~[˽|voM]Bm$t[tnN]h0MB@3R"cq*  qa<n ô c^u VM [abB RV,&$&R( BEOO/MbӍ=kD# q( ȍcP Pd0m H8X#hw hS }DH.&On2VBOggSd﹦0-eK0$ %&$&|! ! &$#$ " #%{~|^6Lq p >O͍ D2.+n=,lԄ"F MWS,т:W .. 6Mm?C]'ǁ_@UPPZb[Pc7ay`:Շ} ?knla1jǵlKGcȍ_'Rݪ\S4% їW/KFpLWU 52_5Hy պ#VxԜXj8\8BV 5ZPERmTZTWOV8Ck)-5 sfe4"cIYrU){tUhem'NZߞoڽs:.-겫XSBgUP X|w97Y:QCȒ,nB0K60TA,s> PQi\]OD=^N|\,PBqq aA`).nLK@x>: , P* ZAuW-. UHI" v:pAx:݋~$9ÐI$!@"0-"X>в8hUp*@772Brő 5țUA ꁧI5; @,`m`pYNTW+ic{zhM}bHuV"X\Y<6_>my2xFJDQ†vU`*4^7'ڞ3(M *먆$L]"6}Omnƺj*DW8+RpE/U!w-W[2LY"  _H=؃1LŻ٢d½PJTWd*YN >KvgB77bDqI\_srX'b&5o;gޥAoX+ZKFR7cJ ax~NdNb\WZҏ8k])K)DƮfK$#i \k1^J2lo:~wq`(n>GuPltx) )hFu2"5Xbai~^"rBSX24c$9),݅XмBv _d?$UخA&("|eS6p@x4Tls&dsUm5lBǟV ,OuiasNMalٗQ%{`D%@^yP.(n74h31)B}k3N~+>vk#*%ƨo2ufY'ӵ>b+?|5SX,b$8 ?3 >{%1@@ cb*R򟦔ZL\ZՆۣ?w"ÐaՀCSx{~h>O50 H`D+$!EBr߮FU6IŵxB{^J ,YJfh,|9<ܛ%IrƸɻ>. $<_pj^\*A$kqn>Ύ6rO5=6/I*=yvo=8LM5;ܖ1ѺL=dnh~YjlӠ N 9FU;NGnDb؊S$\z\e8z0.`>h̜~DP[AP1RHأcq(Ӡ"q@"%ܨ\`-R`am d%TuϟQQT+4Ps Q0EF^\6t/hsYTqBu`0x\,gd,n/-'6K*sw=1uLKzIC3:^<XTcҐ6mc9k37^{ Y),_۞EZ"2["^\ i Rshph:ZЅ20QcK901`dmGm[J3e QQF DA$Bֈ 7$v>( KIv;uʗTg>V]% ddTZ LA2ȐYYJdyAbJK)'M*Mbx.ʵu>36;nt SiJ@pYX @xÊv4:}B@LIBn ($5H Ƙɽ,p@<NsaܠH4f1N 1#VŶq9yRrʺ1 /!"YQV(J{/τpsbH( D# I6NFdݎޔ 4"UV}!sJVBdp!6-n!Wx y1hBsU]R~j(S)u Qo7fUu+T4BD 6깂OggS@Ce﹦0P^%~|t&'$"% !!)#ۥZ:)$ _nNDHF-,<`6=Ylͣo}ލӳv b,fQw˵HD3 Y7TЛ!K&* [G[*# ܊@Xps> ޳_L% w+0e(a#,X9[|lu{?|1M+G!X,Kpm@J,*^ mP7fQ@A-b~ehg5+;zJQ(+YdRu5xH7K'nx;%dVEq%p )B!PWuP#cz?XqSto@^Afdj`J%F$"\vYZDt`a+ɲtd.vfݝ]1}3io2͓fcI6fPl"MYngQU@tMHVl&擽xu[q[(juq!*Ks>Ka-> -h@nn%#=< +5a2N)bJ#j¹LwB'k%.a_K殣hL)]]PWLfuExTVD\. ]~l6)4]cFDB7I-IB55liZ P$)#rR-MRugݺ{H"4*N<*͡kRS:sJ`X% f`SjXn~,VLӘ۵;'H#Dr43e`2 $Bas IƢdIfΤo?V *B`ṭ~. x<V& BXh@fD&9yЧKP 0~X&5"Dބi$7jSuƹS Aa$A451=\'~]ü&۪K NOL)GΛ0)V^9R7 ED\(qV!7G'R 7m9}p8TAHA^|kMhȹF%,/?IkYQ#]bZd`e$D D-Bx. ;,wt~k$eI$-("wr`A iDl4ayPpy|Α,n\.1fcPrIpq3=] ia֠HH$B #_~ot̐%ͷc_/y|) :Y`lJC` FN*25/~:D &D%;6gC:w: !_1*l皙G+s()0 R,=דCI{s}u̯KON 쏔}J!=H9 YR%ĤИ& N `A$$8wف_T[-Y<\y)6PJT[%J $e~hhlaՕ%@{|6`4جsx5֝E@m+f>2V OIVߞ?qg_ ɡRr(C}$Q,JZtX\=_,L͖veh٩c h ;$g/'DvG@#Dc3:?\|l1~7?ڨAg(G_t u6 C3V 9\ޜJE%?c]#D| @ ~Tp(X)GD6/գlTRjzv6&Ni>plFrtsizmI >K8 [?6;e*cV QJ9By䄺L M So7dwٲBE4X!@Òsj--ð ? '|jGs>o\K MΟK9^`rX*>LIgD/6Ē`@Lm,u{%QYP?B'@2dE`Q§G+6Pq@ L8vv\r~,K mF+2CzQT)UF !|0-lGx彯_=~y5jTeJ#? 8E@?$5 @T P/KCA37rD@ s'µ ~5BQk\װ!oflNJx 0EJ6 T!assLѼj>cX²@Cn䀫зԀ3Qe \zjm@ 4(݆DD9euQ$ }zKЛh:kj_WPqAUZ!t/^jP87C$S@Vr38-iL_M[+9L<] \YS5@|;)덤YjMTW8Ҥb?r-@[lws:HTѴ-tDU"طk\WqW|oM"j(\]=(Kcv^Sjx}}Nj2nlaN]=]*SKy(4V쎐vGG[6QFP!zTeNn5SsaZ=_mݮempdVz[6{|zQ4fGĂK._kȠ+KLo~ ߡkˣ*g&I*/UŁ{׍}wyr Y]]|0/8qʦ\}`ak9Ks͕P\M[J)OggSe﹦0!0""""#"!'&" !"!'(###!$(('%$"#~@ju+NA%(8tu`E~jMNtyݯJ4h,J[PR̐>gYwxR'1ZͻZ4m®47j RV=6]wՠ9u5j{k;rwyPϒƍ&2qukLbv,.  _U\~Tdn߰~ SO>>sxK}EyGě2˗Y^l9Mk>l]阺)sik |ݣZ>\rj%{Z]E!vk~IETI@:4!`qkKgSM9ȘŵX0U6sc̏=H_tX#/kC#ztWc+E7]׍/ RI *Ԇhc. s^~?mӗ_ggT)?ˑd]MUK?QVyRNA0H_֧ZÁJ\#[,)Ýb/x>NKPWcҁBbP~DjI %֎L09 G5^5Dz~FM#GGNV5=AXw:vǁШ~<9eRĤUO}# Cmi^~R[jv1n{C<~6g2Xo7_Ze|B9,g}]VeQPԄyYQq#6Q7 |diFCo"s/u8ZOGéH8IOU}D%hVab(z>%,v<+S3>orl/ sGo`V>)-Z15^-cS2l?V?kv~8T*K MC?E+vfQ?'sZ,k6HLrUJY{t3mq,}{?HIp &^^%>ߘbN?;(_n^j=>oNAP$ByA@~Vta6 fD߁54ߩXw~=`XG-sGt!EJZ+s^۬Mp/v<|W~D|Oz:3:lϑaWʑ:3[O?-% v⧜sai{P7Ps!Ƙג[T nh}xlhƪUM_DUYvUxM_`x'!#ӆR|*LD̩)~*/zo~ǰEhj \WMT&,_<_)*y/\DOÛϺch HzMBJ|jJޔX\STwغ\YY"*g@c@>^dA2v_)r(Y+jD=pl]SQkeB;6i0 ] (Mn9VuB\ĶE88mbH}⋰ycuT'N9AX}, ?>  |w7f`7b yBTqaGLYh{Hav8gL L^hdYN`Vh'WKH;1`wF7,+FDQ!nUՋ4ΩqK`j0p|Fof9 ,U#)?:ظVܞer9vLW=) 6bHPO_wc:0=ŭ+LW+|eoAhwey% ʯ׆T[k A2MXpp⺜Dꘅ۩+ Fl] `YnK/k45v:[׳ߏHwϤ{&Ҧa*l'bQ5[^p7/=ns:'C_v98,4-{e/ j*Iq#đjI;SrB4׾+'eWD- i_5X6 7k0D}vHG"oGC2H<T/ @'f"d$$H}S5_)?E$LPF7-UDAus 1ӣ-X_'Sy#LEs(3sTpfcBܳ]A!xHroF*4HMډ=;R`t+QeE#`!-x*oNyQlĐPUcrd R߭s%y`4>3O< @$moӧ')2@/!#QͺT[ne@'OBAcN(C"[f݈0%W6*`"/Ż.|~vʩ\(JsV0!vAszN;x<NP1b1j~*jD;0ʷeJ@A ,W|9nHus }]/8jI<5Gl21:S6f;1h[UʲaEBے{Y[N0[=ww$"Fb\sK{^gZ՘6KGp*%|Ik|ڝ1PŢ~ebII8ʂBVat´x\ېS86:|8TΧgotZt66|kWQԕ[mԯ)\0pU8dK h+Ԃe]2䭳}64OggSe﹦0_ 57"!)$'""!!"'&~#%# (%&)&! ! !%%Ù#%# !%$$Ty6V+{6sݮ=b&p+QL*madwY;݅26'T!p6_M_4"m痀GI"LDפGlh ^J8nc\U>jrHX*  %ݐdL٠+[{W.2=ޥ#Φ_ET,Y_.bMk[tn:uψ <ӎ{_ِep~L; ͝dT \!U6xyINsp])kWA \Wl2/[pcT׸g_fLWduhƵ\l\#:aZ/zF ڛnAYk^utc *s`\eT?9ߓlk畹Ѕ\?; v>}^wNkw^v,%2$id8Ƚ;C5IJ0n L <', !JG"*l;l V&_^=]ވ{ZD@ l`:~4qJ{AȐOSU#E"wNϾI e:‹EyZ틃ѠvډJLw䆩=f%;IpNtT%mseձbd:BuS tR9Q\\X?ֺ ެb1ՀϻXB(0y0j'@ZF"{$e{m&OGŒb5ةBzp'X Ф2 ݿ06^osA+GeENpjtpg";z9°k^ܴ#DG1<|Ip*+p$JDĨ$(Ꮓ_єs>:|t꼨֥=!}pb;D \;[q 6C*th$^l}ZA/keR@䲂,dlkx|N(Qt$0BEǃy/?[ci}!ĉv0/swBXѮDK#a:o9v3$WT19vxTшV1[I1V!41;QWל:ɸqr - >mJmm;#]TAJn8^60:1bb|.gRy4=.ϧ0x$:>G"@Sxkn- q, [Fޯi^(dC'_kDu~-p|q sέ'qr G# WСFԱDTɻ'u+dSܪ ^KAJ/ 5,eA»t(1WgoO]<%kߛWWN0^<# \ Ih?e M 69#l;/PnE?#qykgcfjk>ӝ'+FzcL!Q\V _3cILa^VVF""e~IV?. =~ iYq[^@ NK)Y f*LzoyW%{Kv$zTڏzDB$uy1eaFU|Pki9 p$#}'rZ%)^?Q*o2F:v5MGCY$IZ18nlŏ㹍-L5vSyO~8>.q_vR-$y]\˫|wd['*goiޟ@ä$te\Y3j_m]=xgqWmp\ \Y7qBjֻˢ] nN .LY?h"7σiWy}UV=A\W ھX { eJ(\Y*:vql=uooucZTcà H7W%ގvh5v m _,>Pv+aURD!Ĝ~!guEi_RqNhfnN<).4BНCo4&T yYbt b>fӝFۍҞ_XWgd9_ǢN=8yɬ7#Ǔɓd-%8'׷P'5x]'ORaK'R|LKVOf'`k8/$sv's$M1V.l15IYef.7A}Ġ G[д8T = )T%HqgFY]6TȒ @ %|ޚer0>ލ;;#gSY!?""yb܎FGM;W/c3Fv\Wyb֘ovMS" Im=&P$%T^mZ `4`I H`B5gO£9,VP@kYDktV b^: f:A?r>x2'֎bZ*M_<|${O*_w~\ܥP-qF]#|.P !I$=wdtf2@}!M;P2KfQ Q(+_ !l տڏïvx#˯pgm0]zRqN+ TߖS6 CV .B "O7*ruNecLLڼٹ0t˘R= N.oIcP!e ~JH&j!|HP\i F,Qaڥ&RrUQH$v Z%t}fo?8}׵&O1^e&Ɵ^q])m_up5K+h^j.>KMpesD(٦`]ɂ3\OggShf﹦0~ĦC,}.ISeX!>4*FU'"ri) 9qø={9CTAsi@ LãCJʾP]6]~ E2 +NPOwh{u%+P%m6"qX]X= i߮wE^oDd| |<_lz<Im޾sZ1@ b$U}1Ztj瞹:U>yX2Ċ A2pn%ctx.*߲?7gi~+f$;a^r"zzca܍(*_(*@@A4ܞukĶtN| 5vI<۾~A9i3λ>S~{cvs6KnnJ책ݬj)vl' 8U0LO 1G:>4-LNL>rf rUuXۥvO"l1y_xk}̷rE3CxzߦPN|.#[?.PpSu#,3#-!s1 bTl^SJ@v'ODD8jZfickI}~mr(2罆Ǩ_yt卲%ڇ~qzIQܢ77FZ{Y(_o '*C 0M %#>i?%k!4 癐}OUODP}g+ug^éudxi-Aŷ$Fd @ jk4%!k\*mjl5$ǖZ.I <Mp k@ev1X`DJrtsnu:ϯ'4Jlmk. tJs'.w(_)ͺ:ϟγ7/ڹs|m~oy=ӯV]ȹkWzijP[lEޛ-I@r հHDTTC?U%~}ge6:Ex "+iVzbݍ]aEJxYWхR"Z_ZydGDMn -"DhWwi>Q><S`@>J?4|zZB?_c +gHQa4;+j!`]$j;ml|A|l"2PzCmqV 8${ ksӔulhya D`GEFR%te,p1ȅJQ9:F#ZݖL\x8'|SP&>l}tdP[vBЇAl \5K%RM0Nwc#l?ou. *8zl~˩zF׹vhƛ]qڶ;7= ;Je]* u5<Q@DLE:V!ٰ,RTχѵ,sg9Í׻A`~W$`ӡiOJԨ|0U3d &_'fmﹾl`Σs]6n_+=F|r~*Ϡss'7?/iaBUTQ^C[% %yx&ip,>RA!5 3&,%k"XQT!N mIYt=5,v`:@mEԼp#qG_&8 a) ?+<+~|ֱ ϧqZӊϞEBd VP\"Uǩ@YCIC% eX:d&0qRl7fq]{HI燪 P:j d\>;L NlxwI ZH hu؂plN̠FĈn55u]. nMs [V lP diYRXQzY \ r{)MKRpV' 0  &|" -D*O \\K!K{c+V5^0BJqxQsLMbZ20,(aH)#B`{}{,r5%]ݦi n-ll `x'+ 3 y05_>X"+֞ c'5 e EI) i ۈGd4p-/'(O[=UX_4py,X9t*`X n]_ZGgt7& _ra0`P$2"aZN8 #Ȉbsܴm6~,3 P[Si9h ، D}`~`~B ƈN"!{ƺ0 c+6 "IDP(q9z34y.5ݥ¾lk:ʽq9ᖗsJ@cs'8K \l9M`ZyP=GQ~n.!R!>58݅?l;.le0A` H$4 ,jQea#,w=ދW0<4J~Ip(*$ *8((GP@:AȗvS5uܨGtr6M,@P& ! "I($Y)O5S>ə6y:{"Qp Z$Yw=k[lTlF3ۀ ;]x؂`YKځnM9Y5;Ї`9Ë% A BHIH S .`}#OKs IAKD E;qVh1(7@1ML<'@`"Kv,Q@\ݖ%(@A:RN J8MxB A(Ӈ$ɲuWmglv=InC/jR^ދ) J`wLE9XF6z4Sb%Ȉ,<;?(ދf+~i8dٲ ЗyZ)ɔd%u~C˱+?OM0@ZP4 WA`Ub72uCy )H?5@"^{iEAKqg{T$yjx)E2ED D$`!F=XWᶑaw&x(@_POH gal 0F*@Ўpjl@W #X",[6Ȭʠ_YALN=~ 8l0l@)&$Ew[ QjʂfpPc$ڄMZ0dZ)}@E,1 >>7OggSf﹦0J~;(&%}~!!##" *&{}~*f,A$pc *L8>]v]ЀP$ "7$x6=}^6v"`;9% AHj8T. i FΩ"̠D[ 0JpK`>;6?2 W?+6i2,f0~] 2L.OP:@ VWѯ@n -PM&L)C!F73H@:AV'P >~U[vl, E_j f}*-kJxԬH#RKbC-uCY׀~>؋NUx.6R *H J`Fi*de@ۗx8EF >;Xd6co4Ln~f/L2!]Eaaic Bho&㦭VdUjq/ļBROӗf'P 0H: &X#Dvx w[h0œp#*6FZȌڠ%\c~e.ws-B2I$B HCx eÁvqJc@Ɠ pN wn J7H0ȼ0%vvqc% 6f0gDM PfۥCJ`?6.ZV $&j{n4 Z_W }GY⷟n!l<g @,'u7 (pZBPa\ D;܌HX.LS8T/VY;髄B]E*DUiD6\ո_Y/S1Sm]5-DURvwW犝JQ9oYZLQK*X㴏FA`~8I٪$sRﯜ<'.(Q"4c\zp;*iVJn:$8bd4 Պ2@5;Tws@7qwipܓbXPF+ÀT"D^kjM}mXȿH?5"%Ui1ţnFҝiʽuUSc~Ȱ(\OP3T%Ft YO pET伞\$lX` " AzHM@Mui.HJ,gc\YK1OOkl|%1Zzف0&(zWyZRͷ F)_j%E\Ә03^uZɓqÔ 満8xARD/uŤEj %1Ogwvm ރdPcG7zw~미`eڋ*x 32X~6rGՐ*gdž*x_'\}HH)uiswj1Tp[n_),B`s@Ė]w9no +cE*Dە!h8-0s&d7x"<C"ǘHḇ!{P ]r)>UrܵHJ `h s/sx B + @$ZH(S6vMcV!ե~ݞs1A6%|-Ʋr(}ۿ"=a*3PB2ȉӖPPe@|_ˍIB - $"p ]dܥ*5!î/8\͸u=e :,*F`pLsֲZff^~L41h}=3C:[ | @+o8B$*&I]Lm@镤H%BX\8W}?!R}؈_^ͼŋUP$'(:kK<ٺOT_V0Ϳް=Y*LOͮk(޾>^\(B\QpTST i~ˡkJwk@uj[a TU(*n'@PR 9! DYڨh>Q>\IV[s֬%1*d@T(^jG``[ߧLJ݊ooJ\_1|#@o _'m~2ENTdPF_3(8NJ~i2QYdJ:b"JTHI:׺Tӟ d+ka#iIO;y-j:Gi҄ء[gGmܱ0RкPfs=1K$uFP jdA9s bnqO^ϻuZhE&!ToJZY^xSH "h)ѣ D`AKci˞i%`]őՖ(U1NRؑ&rۙZ>peܪ#'O0}٪iYw  DW8BĔ {637g "|soe *=9\' pZ1YcN'YdtqO.SnZ@ n|*@nGPс5.w%T#"ul]f')P`򄧡Y5 "$SDX;8\?ϊ{~(иC }4Be5~vTDYܡ T#ؗ ~Vx@B +pU4 Rm\p(EG$/Kl]- ~+ֻ`a( :u@.Z(b&ip䲲$MI݁W>jcJUE5ǫA 8\pZ ^5til3ݒ=zQ\PzƋCUH84 Mg4g@!^R-@1z|AչXm? {rR4IPӀ* -Ip^5x}rˑq?f$f8HC) <\2P܁{8=( *@sF2`aplr}6PS /<Pjۥк(ѬRY+`eD̖5u7e|F_>Dٗ^Kc;z Ūyu5<@_`~@AA8,f(O"` ŕ :3b bȍN ER>WT5lɼDy%'wɉE)c8iD<긯F5V./y(Q,FJ,n,Fe/o#bx! 7qjPH(DVЧN;lb\rSNKpCfd~I#6?;[^nVAJ2[_aé\ڹWVHYFuA^Uf%ۂ"H7y %pY?* ~k6Dh&!P"4)Q6~sj.ɓ7l_A[84R.X vtB.RbJ3_;#np8D9ЬZ.:舋e3 \WrIe0>6jR(?%"⻴jڣ! njh H3T6hPpی5_a >$E3#E{n!ƚQ-:"'iOggS^g﹦0 ~x}~x|ehÝݓ0*6`r*t"8CU"QgoFGo}w"l/{ ؒ6v?V7.V3Raw/+yfYwcZ"33*FEZ~b21 {uI1/'"D/|ݩ57}Sѷ1_3Xc_nE`d/H8pI'*n\.1 4_RCTޫIx-xX'm=`qV,s1Ę0HK #R7~>[:ˡqBJ@0iTԆ10,nb](2[<"6 @Lw(n鑿FZL@9J)`!5Kt=MR"Z~:a^O"广% @Ϭl]p6(3 ]Ah)>~r>K)1o!ImͩPp&;,a FgC+0 `Z~ۮS! Am}*j8HODX=_vN/l7xiZm! xv,?7Y?J+@%S`Zw$D?f b(%~^퓁9w<fl>O.̪juLEUbЋp 6M:ƘWlΉTtC8,2<@ &+&5G.&kT5*+*Gd~tõ`*_#Y;Ek2ITb8=92S Q^ӑOnL|uG:ߕBм! ػRCdE&TZFvJAkZ`ARA\4=kƥ B.>[bLGrs.hcéqլp"Q(Q`>_l ׆qӛh?+5 @YZ4` 5 O 7 G+X ъ `obfH:ܴ694 WdFxZl(YQHDDu{K$VUm rStB0~ H~ 50\P+R\yj1 "|˫q#[ᔽhIPGetSU5"b"""umwz̻#? VW_='*QNCcB 6*͡U!T=!.`%6Y7#+QM҄[Hޛ>b.b>x`%ψ(@®O++bc{WܮN s"ꊷ^?9 &su`,se%yBM*nފR@^H0t5jrcpkA4e*/?b""L|êQƒ9?_{Ҁ}m]1mCL'xYLjy1@ D */SjSqPJA2nLaJe^+NrkxDr ђSJqU%7}~`teC싷7D@Y*>oB (+zF@oDfXM+"u>($j>pdHGer 9XV7 ǻ*^E*Yr.BGDwA7i+3:k8iiakHQrrv  \yp=:?r`oъDdLlVvhAqI>ʕ^ IؼwTbŭJ>ޕG0q$ ߂q*}nBؾS lӚ 5^N)Teq1amdH%U=Bu*T9 km \@ {8$J'@~^l/N+[:V׻6n $mkԁG:KuzSX7A]Ԩf~ iEiMqu9@ P,إ{mͤ#nE.q_ p{8-r]Ym?3s߼ g? "%#0EL%Y>M߿nw#J{;\E!h.gD R-cQ[.21x:%37n]1CJD`nڻչ-`xұKSEE@_&PQ`C jZص,\#F"J?}`1&mA% # fi˄._M v>_yO {KF0xӻ[շU{ɡ[=mn 3 ]Zg+ .ȔƮKX- ˪ *Nt冁+]{R_| gBît8Mg{o%O7^C5I[zN+ Ѡ<KUJY\nU{A-ۊn 0kFJ89rJw6"Q?@dg,^eKo@*8)ZY G|B?T>(M};u%)5KT71Y)YA$;`lS,-⍑u.rTx%Qdqa7c9]NuI*` 6ŞZia ŜoXT'6ņ+ׇq o #4@Yʰ[~J DwqO5(S): a^{+p%_leҠas0Ϡnϵs>(gq>:Ki1kѿ|q=\h,H60cUX4AX~]|y;q EtuA~'e<%@-A0pa'A("#S_V,;[VTIc>+Nr(Ni-y-HgzbZq @afdܜŅo⼃{Z0i# \݀L=캯iP ,*Xj& kS Ucc5N?uuO7G)TRH1G[^K2PKn0/f@΅$ }رCgoIhugݽ׮)킱?QAꍮKAyFnvl{LXIR.Bimѭ^  ,f u/駉|6BZ?r=07Сšjz3X哯cڧ kj Soh>W$,agBFEIAQ@F>fۦ2 V ͧcO٠O d n#@^S)=\խu&_puwbR؁Bn=AJVKJA nvU}^W|KI@QDAyS@:. BAK1,ˁ[x,9'J4Ab߰>>P.fSP̎ ^R ,zȰ:v=BiHumѰ@+>3OV~k6^09l<_0n!E1U$(  .x%xp !C \BS2"zot~wn\M[?\JhZ۹7]1S5`I9: !87/7~;c3CJ/cQ=.ǭ5VSc7b r޿`K^6nǣD[)z9 jx-ͳ7~pp|hK;kEǧY!Uh@/`aT.-vכ ;]ȻzJ>8/%ꂅJl2`]t[bPl%zXUqJ|L^_4X̃ #\p{Z6lD ĝj <&k޺i%+>ϭm_ʈ뮽EDb+ZU"`<,R =|Ƒ >nLF/aI_"W ]Ze&Ղ3E{Fh 6CszSri[wK!(%>pfݪIAڿ!:cX0Xw\Mz kk35 Wɡxjbr8z1[?87q_44)6> +B; #]ChАϚ~ot\,zTHWb)+17Ӊ`ƥW6Y.Ha@un:=BKcY %z՝b"nC|k3oT'F"gmP`IxOgӮgDDϟ^-stUG N[-|8Skqظj'{L%ƘlȷwƛF`F]ޱ V>:?NٯH1RRP-eai MxN #xh"u"*OuO4ijpz qƄXmvu{;^V^YnŗJL ha@X<3Lt4-]J,k"+(.*ml }|4\?%J!>y"@dpQunfTI'9$'L'zP+`I*@ j/qĔouK^X#XDZ%(2 pIphjų9"c2H `L gO)~a)?N&fhޢЈ`)1n,vlALӃ9H0"AX^Gm()ֈ emkV #uG! 8EAPopՙJ~^̜&&mjKZ"/?'Fx#SgOq_Vq߫dޯ*Iș*ZTL&<ܮ/ܝX=cSlf ^n{yR1(|%zX TJkL sg9bh p1{ \z#in,p)̲7~V_Ja#"Y;F)@3F9<$e5b!Zm鑿XKQfyVCX,nSzn͵h!4{:bdP 38]o/4>'ǻ\$ b@u,K@nLG]_:Ŧ%u#$bHѕIԃվ5#[CRuF19xaJɊ ".J.l;'ڭ$ ?[8*IgDufԃm2FU $DDvVOֻ/e!Od Yn w_#e&GݮՉ:KR;& jD-z ` Ir `(&נ=I ,SƧ8+|h"">P4XI^=D}iD 6M@|Vڐ.n2r 115CSMN1҄ܐLb'h'7S5c"(W^=KQY/{DZ͜Oﺲ{_vR:_~W8>S*S 9~&㣽k|jB}3/RwgwhHBí5Qt@HQ= +_TM fP,&m|5.LO4`WW v9{Kz Rr׀WO|ׯz1^qVNK-K{\ݿw x5m0`j |mC?;)tX宜"Ebԋ9&c 4Y1L@' `kn^ )%J\cy ڎ>qI&7\>>Di JWfRJ xS"FlUR^){m5ӹKY+,A z˺ǧ+>ڑS>km03W>MR}Hv'Bwry_~>c#K'ƒc\d|^kIQk%Ee S#;[XS#jt5$=c˕0sl`P?MD^E잟LuWk31;&>5@SKf{]@t  pWMP҃&jCfPc-" h\ \7vh$?"ngˋ weW|锈3%VW}^e4Gyw~3"ⓛ)Ld^OX2:׶% "T\8F޵brdV͍1܄ hTR bÆΫݙqsE^Wtg=tϟ=x◳qGJppOٍg-"Wb\Dpa~ z@S5LggT)%""wp'q2p8=ۛ?87|hfpM_ȶcƪ~w)Uk.0( B5%֪i*D# kofڭH*$bbk=K[TCPQIS#FiJdGO]n6NrHx}XhW-vz!B^ɭ$^ n(7}}-j!VT jkQ F_7T*SˆVR*\qfb?t_y3òI>*{ +eV kf˶\nNfzshN1W~K,WtxA4| ઄Ҵ~E' ^ ⶤV\oç9EONx,UggMϯ[htio1G{`NZAX70({snoXEAydMHx.u%F*YPv+}//j8y쉤C><ov\O<=-K5zSok_[O(1sM{B>ydf~`(IuGIV NI})\ukAjF.Ǵ(j5\InO0t\9e\*ZHg?x?æ d(f5byrV :Zc<."ncKʬ;.܍ ![ׄ[k0sː-+RJ|䝅׼B ^`"OggSBh﹦0;a>=Ӗb63~` BO{r+~*ޢ 9}W/iBN54z0ա͒)Zinzk#Txu LPP+X">̲>ʭl 5 \OMi56ap: @k}}=wڶg||hzja]vݤns0zF g[/FlZ%[qڇ #@ !"z RCAwLhv^@ݚԖoGچ*?x{qnu6U=¨k7Ql3B c0c'#PZHdt_c48[b(5W -b:#!v %W:k.VU)6=ڋCs,"@ċ@՟~ӲjæCP?k6=ct ^UK7Xj|pZDkRD|{t(#5rUy? 08cBv [u.GJ744*hDLL}4R41RsE̍΍zy7UY%BXnPR H;@q^ʭrb{V[8'0ϿnVg"_~s,:-D+DĜCoViŔ1fެF% *`T3v,?Ik%{DSk(f\_`|LmHeth}i$>O @? x7]~˰~.A#svb}A 1xY|c" l+\eܺ)brC>u1TJ^PZ75(‵*c9? D˝%v--5^-h0i>j(P>(oja?-owbe.t.|[B5 5uӲol~*k}gk8|!SS5׺HXҍah.VA~BW~ 6'pʝh._=ۨ(:+^&л]7;ѶW{]pxx0b4ίhcOFX Ia_r3lౄ[k W` a1ˢc]#,+>IBEB#i" lΏn'.+7XWb4AJ!{Sf(Gy ~ʝ6d6Ĵr U\}H6^89U dNB`qg'ow}8+U?hhYHg@w vYB!'F*#:RF`-ajq 7|yutk4*!!l *,P+ mQKlO??cM?:ωRܛJ w:̧Kޝ&~Isp%Ӿq1Apk<^M-hW] pu[RzeҩL  G,`aU΂" q\^5`5 (|~_w(8`?{9TjsvxE:gx !JX5*yi+ T %t8ujWfB+v*SRF1YH k\TTTGEM%no*wP$F<`Jd][7Q׿4{}8Wo 1.K4z~j3^l-ӭb 0>bq3R|xg}j7b*o(ŧp!W#u`-"" -ӂ[5|^T}~O'"%{v?Fnrn>g?-XuZ&JEPJAF:Ih9̨J mp tx'c&@K0BP;ZDb D%ʝ=LprEV紨?%~-޾=O^}]ϟHtaI;DŽZo H-cWjs3Zvjrԍxdr7QE'0=\jDW`x$X.]-v&y(wVL@x Oî\'?|xuc4\w 9+5ִy_mZa9v{G=j|^G\;|zO,P*kD.>ʭ&*I^Ay>oFu kpQk7Im,g6ߜK).I @ dO]׸gjub;L)0!]vW'>6+țo>ReΧ:+lt?ue#_VnWv|IQ-*-H?C@CF Oz-[k؉3bulo!Bφ%gH VoIrVd}T1{H aFC-Ec8'VjY!Fӥ:;>r$2`Mf&kDK&^I2sOϽx|2v.~/3X֧c"(SN:h; jXQ; eeY&^"XWbB CAIdts+d/blO[: reشf+OggSh﹦0UWʝҥI-%pʝ=Tf#˻t;k|3Ie)NF_,F\{LFmSFJx`'r=5쿠 KJj5TVÚK1ޏTc AFMi7ed맄7-xZ(Qâ ɭɀ|^7.2xy7]))ҕ6q7/zw}F|YG8n( :@8 „8VLMbi,ӖO* kNq`e#rAt6^WZ qhWSwf9PlQT,h ɭz6"=oX4<.pybsyWV8zXV $9Rc w=#T{'Z0b-߆Z3SCN&ֽe\kbB" rM1 |&1LEtǨj>p[4qIQ1n9-^}=N/D/DZS+Dzy u s TQHI߈X$*p( ݊z%G]՘"A-5ZIh S(߉ >iWO>m]=oS/pwxV7:p&onv1 xV|3;uaM٩ulo_IɭSb|~`|?`/)׷{!OVBN}yO[܊%*6g+:{eњ]{zQ/FϬTοU+J Ζi,4=dLEԈk$ɭA|%B%7e>^>j:mv}S"Q-uyn$~훼pRCIՠӦvT-XZeH)>YNU q %ke5CH.1j5 R# S: ^2qICdW{ɇOA\a ЧRHH@~MŁ\#*7/*v&<O'uÏ{1kht ZBkG@6VWC4{hc!m"ftJ&ޮIYκYo6/z\Bx4ӬvhkSZie$-&9|Ycʙ0/ع?,=290 V4 `lsu:߰ &R'̤R{ng+SM7nS㏻r$%g;F,+b\mE*TA>(M_i#WWL6Ǎ0>5< 슫s75Y)֮_7]6*סֺ|D  X59h}v\R(6U@Tj;N}i359~afmpGo#g '/Ocg.?ւwؗO1u6dOI*?}_Jok&UԾ2JbrƹđH'd" R,)EYT D=[rܛU nQ.$ɭfC x>_4}D8}ܷ6T/%q>p5ΈG@"Ÿ9ku=AYYz.|J\j.ؾQseaz>UۛFܣB0~GۆS(m[ɤC0O?p4.WuzGYn*zv!)tpβC&aѨY:^'-3|lpCvn'&XFTxP ۺg#uZT$Dɝ5@$W4z>cbW9N$1j'.$t~p]D/c#R)闻/IOde ޺_8)5_F;]5UםG:xO2it BYsXB'CV .ɝ%@{ p/-\?hZl^xzh]!u;ϋZRp*rE~ֈb&dVFfd4KŒP;H͍Eޘy'J= -CwerxiIü@o7lD鍍EK422QVz3 EXvKc{Nw‹I-ur+7CJ%=]I]qV\,\DT]-YKU [L6nu ri}{{|ṫիypg3rZN=GLB0pnT\ԙ$NpBȸz hZo=)\0b#aR?7`:zҖQRUU$ɝ5Enωa|h\%%Ek#'2av[bvίyO `.liip이VJ(51/·6kmU]CH* rnˏA+x༫t[:J@OggS"i﹦0CMZ2:J-聋pv Q.?.^+ݘ#H'{:[ju: prŊ4J pQN{ԖJQAݎu"1f'z(W  M-g_${  ϫxe闳nz zzfXcʛ݆;r$VG_|T\<8O}snկ:G0ʊN)v~SP QCZ8HDɝ5%{ r Oǩ9 AH׬ߧKғc)sSYX:ꊎ0j|fIk[Z럥Fcwav7LJqb# >kJj#ϟ/6޼8o/'h])֧/4=UL]w n q4@Z[F떈U5p?uTEɾQK+;wgCoXw ȭd19>"`1\We 0?=s솗߱4=t~uhV?_0q'RR {VSވkjZb~׳ezʦӠ j^XY”Z:Eس]׭iv 0\$>M4ܹBaL*ً/o<0tNF 7 תsNۊk 3[#a}Zĉ/gDqfafzm[k 2UpP>Uyu 7}rl& B~-d.J" &1<(`O?u$hxx=xϢ|Z^\w8-WTzLy{#5RS8oa>S 1qR0vU"*BpM64 DrgzMk'ũB? w~_OX}ڽw1 s/"RSްڋ/v>= jnm_Wzt4ϱVJ \ 4LaY#Jt/^ a~Myމݸi? (-xxê?){54kyRzH*yCG#6i--5.L{C(ڱsѨPwg!2\bfVmWkWzƐdâ[P~ȍo'0ɝ#MtӍJOӻ_ι2۲^q]Tۘ)2BVI=nD$_m7i h=vcޯ vIxH JHqMBݦqMB >=A#wtr&ҧpsHin-K] a?ь7JA 8t&zS:~r!ƍkz<tCJo:6#RnLo]z<8uVJKɌv Wݡa[_Z^ɝ%7g+F3  #!hn*{G~&p0{U~&έM%sem M!;鳹Dk7/5-t,MjJĐUo:x~(7컮<>ɝ% #sHnѿ+*G"99sr;~г*kfՃO] 6V uq%ib\9E#~y*<7΃ة[JV`:1N r8:,{>@nBH@~r[ xLx ^4m|$EdO~[6=q轻hzunԊI*{c115G``O~詫L,>CQZѱrG}F=^ ~ȍHV#g >4NV(&.RP4N]dO. U ~=6 m{N0_>fKftXk(*m^ZN qF~ mcۮn]/t`O'̱Kr\.?ДJlWAִ;g VA<T #YfNno^R{tPByxm'6z] jP˨: ɽ3oGh~`mc*"gkteo{+DH}K:vBKeu?vzËys0Yn,#PSeM95OtK'VMˠ 0Y@;JS* V>| oi/L9䮕nZ=6DR!U%%p&.O9[EBȝ-O7,r{$sWO &ϜC5`/eY-Z xuuW5} xU#"@ZuN-?D0+=j`.bzC7e_M0DnP;X@c~6ZSZ?Ƕx-MGgӺڞl)GH﫚+KnvŘ)VAqKo0uϐDɝ-,An2fArJq ^5G"ht$3S֏]5N2AsG_4ucD ?\+.(/{_!,/w˴6ٵlq[T\D -tI̛܀<5 gl^ ۑaXx>Xϼ+UT=L:`뀗֬3eHO$_ǤL-n -Ծݵ^b\P^70==#|(3PRBeIe% MYWޜ^wh>&@6#W{#Uy5ŷ9ڏ#ɷқً(}b+nFRbbK-pA~5t%w[ /*/7Hڽs-_ڱs?7k\- ;-]!{';?-|3C\Ur,MPTGvHD3 1$ca'XT3; lrFW(žz"x_<y}1Σ^!.x~5qRp 3v W#*菐FOH]2Ff&)M]cZe镦D)ƭt](ȝ-tgU`G+tE T+>WMxK<ʏy8nR?~mAt3dpHKfB9tZKX蟀`넘#~Ry#X \Ǖun1ƨv1D(^]%d!h3XOGn0qv.ԤK;[؛fj}搷Z mMӫANJQ΄W70:oC&?ݍ1JfxErBD>ӌhH^'gf\1zy7pʩ/B4">ukXwVߴ$-ٽoivQݺ/kv_8FofʼnCn³6\#*ڤ~Og>W}wP:eD{{VuAA֚Ap0ʹGxUws?y ~v& BrCh'ʱI#{c:>O Be ,Ti`aȝ->FF(ߑLFـӮ0~~w6>0R&3[ݻOIZ!rPIő\w A;{kpjZkb_z5 HK,/AR$B~ȝ#t dk?⁼hf(ծk0`@ӯѫ{5#3I7x# o;H]|؞kvIgge7b.jyΫcB@(P "ȝ#72܉>M ʩ+("l9xá#[h^٤yp{ WOXٲ«J% ئ5Gy劏!;r/5jBL)\I7N`JDD*.^ȝ=ޔbE?к۽; ~+"ϵDc r[{$ } :un$,y@@VDo=q{O0",|Xrrk ",2FR\$~ms&4C^q]x>J7 m݌z1ݾš1jj X' KU|(5I 7c[xLh{3w)گD7l*nz`>dSFgچagca^tCOD%C*sX=-'Ǿ1XD4l Uǟ~%7`G^A(7w.8f_myRZ/Zd7TaW\ `?{/|'q>?pj̅ơ? t2*f\)L0wCv`< z;ku qdMƼ*-1`c.Z6Fc,#VЋ+ \qPCHzjN]*5H^+H63 aqaӉۇI2$5]j|*C%~@s!0#p_ j$pۛˣfQFB EdPKB]nK$ eSF ]y#`kßܙ4Eu ?&V'X{Va]I6}[6A{Ά~ǨQ6@y֨!$u亏20Q1"٪] ^oPk@]+څ[!؀K|P (88_Di}路i[JnDd|h9 uODOd},Us'qN65`+$o+:Wf2kX,[ bLUE$Pmcfc=ΠFR|*Cʉ;jV@XV7 Kh왲yEsɘHt du4n]hCrt#S)XDdm`6*# An5T =xgV)tom+_cXujG*7@NU"DDȝ;!CSmxU~!C܏ұxpXgBiD 6;\0eԶ]߅e(8"wī5ΧUKX@VD"LsA+(Q6Pm -D8S$‹4[O<_鄖׏6_C"`+Jsnڨ򔨃w`uӪ1֎aq= mXB6[C`X99`F=3+` WƊtD?4M\|[or,7JDh[w Ӆ%;BHO}F1HI_AjOK0(4|w-tbep A">=3m ʶ"wMh"t/YWNؖ>Ux.:}Up{ۿvA6].,2%Bt_}*B` %;>x)֒6$B! ^m66]3L6/jɨrU@}ex]" \P` cgJ_ ^eRfaցXV7$_c]a  ]; (a1ܥx<scLH|>{Fh[>o?ݯj.ñ7زEao?L>8c^C"й|[H<ϲMZ@dI?PpD0(ȝ#f2 63&ey #OCLP2@pvym#ґwrn5ަ{q+I鋌GFBMO-SnRY{kzQB"B%OggS"j﹦0 j"|}~xxwzy}kpzw|twtww{|wsqwzswn]H&2ȝ3i fܩkBZl1z\8+σu/aZ5 &(%F"e!y *D,>ȝݳ.iܣ<]8xN'B"i1&}OH,^/zEz{V{.f[ H\{V *J˰rI,)՘;t^C°P>3 7sn`WX ؀۝e>M\Ms+zsY=vҦߜ#Jdb j{?<$?B&" !6;Ǩ! dF "^]S0?nuVqƋ,9{b%+^?닟}ɇ {pPȭ]ݾ p3.!cE㦦kǪyIb (>ȝѩ #wo3-"1Iu/,W'B$v] vkT|P;huN_V I0hZ4HT<:7<:)a  H0@-i" w]Kus>NN@z::KIɴ1h@/ٷhoIFfBƛUmy©;riaY!a`<w ,$$(^ȝ3z+i<"a)'Nh?UU&.KFUF/zO%=vV2!+HQMUE!JFR-RDT` jE[vOހ?=%""$V*K/opDž?{zsGu *M&|zb|e_Ł?T2VYu+%E>]c6r Ar, <<""k|+m| T N ޒ%('sBj]0.*PbAmؙcECPf*=j`Ŷƞ>".7 vok[hE1G WAa=gxF[ 3M^\7c.b  * >]=b 6rgqv剽j 4K'$D"r8]{]{ԣ*eo5_CfHi@7 U{ CZmU 'npSt'[]ipPנ D$.>s&<9g&{d] 9\~{^#܈Oέƿ|cwϿ$7)-mdx۵b!ulbcX ! % PA]mD6eog$Le*՟??裠6Cz]Ew^Fr=;*5XBzqt"tVƨ+}M&#āD@ ǝͽ3Y22xW^V҈Hs_P_ |\.;#,~E}oSWPB5+omشkxA{+V8gRXP$ Ƚ[h qyva`ofϫ|$D$DAaI ~E7ٻaۓ٭/3*t]JQcA/ݯ ԕ?obi2^~/axsD *]4M{ܫD0;L!"kvyNDH{\GO`}M?O!&s)> ]8j"т2KzG֑tJ/iQ"a!~k&C & 78U"!!p7|S \p5*{%mma/ h5JϒOv>㮖aq !BA^]=Y mlv29}C󄄄L_dzK?:.t1jS׷į8.h0Iaw]uE[5{ǹE`ZFoJyVv{W217Տ,>W.>,k pJVe?_D@w8("WpE,*@ǽ38.l`;[Ttf vo==iB""`khxa0/Fȝ3 (׍]8xZfH+Rىo<ģ~7lKwsYZ"U-RȀ _Zo1:q kT TUPJ>=>0BYSiW|i(?&B" |%Jx s`9˶WUPOeԌ}e2fM&4/X뎷ݕpUQ5`XDDP $>]mṶ{]A?lk뱠>"HD8 i6&I֯:ƻwA:wNBH=*"m;GqZ* JI0^=j [{eb3諱f z9%$$:qx?S': '`06xguџ6]9akW4s~"-%]u3@/,&mxΠsx5!rW.>g}M:UB?HNpCHkM}xIW2mqFohbQյ2EuQ]54gl#IpV&D$"஽xLjUC[7cfZ#ʠVK.˄[b(twaZnGeJ$lp ]4hq)@`1BP=%+{o#6*^Wpr^?&B"BeO[ӏָ]_xX߭ H[ j+|!,Y IL ħ(BKLewlp-!!n g|W_zWKAIfpܖNVӅ@qP P aH OggSj﹦0 +[%zt|ynlusqvpyslujr|tolkx{mkrkjnnslrngjݖml {|7xm^b_!!!5:WOW_U YW7XpVv>Qg@-o^GSrMi,u)#P\, X ^]2u6=sώaCvMUN7\;YS/|_U^zFz 譕^vd0[^MQE $D ݶAVg.ilEɽX8'$"S،>o~bn=W?/uU{Mu~1{GH!?8Ɗ?@߹܏zu?7nA*%W;b B8P#.d1`^:aUrHHH]7+ kVyW*^:"?'# el.|[QET.0`*X D>=iKaE =^~ H6Cu>0*!{S+V%q){\bj+| ? 6B%=JHusX5UD䟚~J(B\H>$HX,TXD^Ƚ6!w Pp]%aG$$">p2k`ز:ߝ%"vVpC. dn[۱ l GX,"a )=efmAn_egv˩v5ꄄQrn?U7RMQ(!jrE% 62 3kTX?jK>=u$NV揻[/ fq]SRsuBB$"f]t -~>:TتfQn`˝ Ca4W,٤QT WUX YJXȽ.l#~,ٔA۸3\'iucDD$Fa}4߾uڋ۫֝&}y?}TiUJ\A 1nY.Qe = q/X'2G-9-Kwċ4)M]5ݿE;;=mTB⮇A &bn}XP"^0p `$ Ƚ. @ w06)- ٙTL`_Lv&ڙܛ]{aX1}ۀpDYFJTH* ~}.]mb[OCI- ׫"glnH ~4d>=0Fmpr ;lx*>{ Oq{<በ !"^Ƚs]4"wI~a/ p:>ÏD?mu9^S@7DevK4'ȓv-d~(KhiEaa`$` ,EWfSv^q]|5!"!vGi>Bh/zꌆ+0ҏqtmx)ɾ!23g@]M<ڡR0aHV=6~ |lA8FΕ ~3o{v"n1ZlTy]dfz~;rdztdBd]DPjU ] "=6`K=7%ۥFLΤ]/s'藝շ"i8=DKd A ==뿯PJ mncYraA `Kq@1^}4@K *0#o(jL@uEtp's}w3kGY@`HP0G%Ԉ r'h$LK80W)"1nܵv>7*ztfIS,dnj).QBb^}b 3㨆B؅ ȹ:!"~uzCܚ:*;ŭâk`jUPh8]c` ,wv㥵2!]  ,ȽcEV@}E~Nx{8sb$BBD\Nďo\{uIg}frmD6-2!`l[F&:՚^Éug]4@^}N&lܽ^69$۬"LTBR #!$1Jby>=֛!i ցᬾϟo z&-P ~H˧\$ZE%bH=3.[-q:' >wC8JDHD3M ϴZ}{D/.; Zv{.Kg0H!cflRcS1%C  ˂=m؅A>Q[ٶe/H >{8rbB"B|o}|qf߳$?~)4 D_T+|@ ^Ƚ{[~,q d^ "$@pqDGn>a5,hLЍ'gP_^MÜinȄÅҡȀ W@Ţ^ȽYcx<< ؀Uơx y?K#pճWEn!vI,:❵BQAM-i@@d!>Ƚa6,G>;DH g<ĥۭ?sٵ?fẄ́j>iQ>m=.k* .,}ydSr$lE5$~$D"X̷r ux 9 .<@w|S $xE(,$Ƚ/V2Ƚ'ɰUyW5W  p=@F3 G>`fE^005}ҨY_4lAt $ >ȽMã^U 8~,;B//_ؕHHX.N>]=^~|dwKkgoMhg`f1jPCk+ĤTP`$, J,`^X滼\mZ8Wy0rHHH޿t[5f3\/U{m:` ;5*$C1)ň+R`P}G+P}c3 b+>v59T]a"BBp=v;B&Lotn~.Dpj&KFl0fnK_D^ "0}i6bfJ'ڪxn[_!@gOfٽW^?D 0C}v5eBzK b+@P}e0`sݎNx^|D"$tD^sxNho}]3ڎA`^)r+B"Bo-7vK݈z8O4죄w{N^+ c]hE52 s.|@DB^Ƚp'͑ y#L.TTN E⧈Qx2\n=tzAHp-)B4*TTzBD$xb3ngl ?mU"n'BGdWnb(}H{"~lv8}u](a ƙ>s=" _l~QND>p{{0}:NȬH޹o ={xnOH *^O܂Er^Sݨjb9OO.'{l˓=ߟƪ(8@Iq %Ry:C̕# R*pED",~}M?a8 |(*/^e5H6j>>n^/./"yg>.q+3d.P,.~!YMҐJ@ hAAŸV slo0_V7n^v8:ϑ*ޚ&òʺV=4b Pi;V0M~}{aWv =WBq @ \HPN4]aݫvl<{ڽ螈qZ?k|xWِ肑 ~wBy8>0*>%UeH|=<M{k.h;D(D=VEQYb^ iBgr| #:!@{-ln+`V({w_x$RH.=i :t 'tI IX \T~(onQt܀@uUVղi: 耬instead-1.9.1/games/tutorial3/main-en.lua000644 001751 001751 00000017533 12161555573 020547 0ustar00peterpeter000000 000000 -- $Name:English Tutorial$ instead_version "1.6.0" game.act = 'You can\'t.'; game.inv = "Hmm... Wrong..."; game.use = 'Won\'t work...'; game.pic = 'instead.png'; set_music('instead.ogg'); main = room { nam = 'Tutorial', act = function() walk('r1'); end, dsc = txtc("Welcome to INSTEAD tutorial mode.")..[[^^ The game consists of scenes. Each game scene has a description, consisting of static and dynamic parts. Dynamic part includes objects, characters, etc. A player can interact with the dynamic part by clicking mouse on the highlighted links.^^ The current scene is called "Tutorial" and you are reading the static part of its description. The only object in this scene is the "Next" object, which you can see below the text. Thus, to continue learning you can click "Next".]], obj = { vobj('continue', '{Next}'), }, }; paper = obj { nam = 'paper', dsc = 'The first thing you notice in the room is a {sheet of paper}.', tak = 'You take the paper.', var { seen = false, haswriting = false }, inv = function(s) if here() == r2 then s.seen = true; end if not s.haswriting then return 'A blank sheet of squared paper. Probably torn out of the copy-book.'; end p 'A sheet of squared paper with your name on it.'; end, used = function(s, w) if w == pencil and here() == r4 then s.haswriting = true; p 'You write your name on the paper.'; end end, }; pencil = obj { nam = 'pencil', dsc = 'There is a {pencil} on the floor.', tak = 'You pick the pencil.', var { seen = false }, inv = function(s) if here() == r2 then s.seen = true; end p 'An ordinary wooden pencil.'; end, }; r1 = room { nam = 'Lesson 1', enter = function() lifeon('r1'); end, life = function(s) if not have('paper') or not have('pencil') then return end put(vway('continue', [[Excellent!^You've probably noticed that the static part of the scene description disappeared, replaced by the descriptions of the objects you've taken. To see the full scene description again either click on the scene name at the top — "Lesson 1" or press F5. The result is the same.^^ {Next}]], 'r2')); lifeoff('r1'); end, dsc = [[Lesson 1. Interacting with objects^^ Let's continue the lesson. You are inside a room. Take both objects that you see. You can just click on them with mouse. If you prefer keyboard, you can pick an object with arrow keys and press "Enter" to interact with it.]], obj = { 'paper', 'pencil'}, }; r2 = room { nam = 'Lesson 2', enter = function() lifeon('r2'); end, life = function(s) if not paper.seen or not pencil.seen then return end put(vway("continue", "Good!^^{Next}", 'r3')); lifeoff('r2'); end, dsc = [[Lesson 2. Using the inventory — Part I^^ Now you've got objects that you can examine or use. That's what the inventory is for. To look at any object double click on it. Or you can switch the cursor to the inventory with "Tab", choose an object and press "enter" twice. To return the cursor to the scene description, press "Tab" again.^^ So, look at the paper. Then do the same with the pencil.]], }; apple = obj { nam = 'apple', dsc = 'There\'s an {apple} on the table.', tak = 'You take an apple from the table.', var { knife = false }, inv = function(s) if here() == r4 then remove(s, me()); return 'You eat the apple.'; end p 'Looks appetizing.'; end, }; desk = obj { nam = 'desk', dsc = 'In this lesson you see a wooden {desk}.', var { seen = false, haswriting = false }, act = function(s) if s.haswriting then s.seen = true; return 'Large oaken desk. There\'s a pencil inscription on its top: "Lorem Ipsum".'; end p 'Large oaken desk.'; end, used = function(s, w) if w == pencil and not s.haswriting then s.haswriting = true; return 'You write several letters on the desk.'; end end, obj = { 'apple' }, }; r3 = room { nam = 'Lesson 3', enter = function() lifeon('r3'); end, life = function(s) if not desk.seen or not have 'apple' then return end put(vway("continue", "^^{Next}", 'r4')); lifeoff('r3'); end, dsc = [[Lesson 3. Using the inventory — Part II^^ You can act with inventory objects on other objects of the scene or inventory. In this room you'll see a desk. Try using pencil on it.^^ To do that click mouse on the pencil, then click on the desk. Or you can do the same with "Tab", "enter" and arrows.^^ Then look at the table. And don't forget to take the apple, you'll need it in the next lesson.]], obj = { 'desk' }, }; r4 = room { nam = 'Lesson 4', enter = function() apple.knife = false; lifeon('r4'); end, life = function(s) if not paper.haswriting or have('apple') then return end put(vway("continue", "Good.^^{Next}", 'r5')); lifeoff('r4'); end, dsc = [[Lesson 4. Using the inventory — Part III^^ Good, now let's learn several more actions with objects.^^ First, write something on the paper. Click pencil, then paper. Then you can look at the paper to see your writing.^^ Second, eat an apple, you've taken in the previous room. Double click on it.^^ All those actions can be done with keyboard as described previously.]], }; r5 = room { nam = 'Lesson 5', exit = function(s, t) if t ~= r6 then p 'We\'ve already finished this lesson.^ Go to lesson 6, please.' return false; end end, dsc = [[Lesson 5. Moving — Part I^^ Now we'll study the passages between rooms. In this room you see five links with lesson numbers. Go to lesson 6.^^ Click on the appropriate link or use keyboard — pick the link with arrows and press "Enter".]], way = { 'r1', 'r2', 'r3', 'r4', 'r6'}, }; r6 = room { nam = 'Lesson 6', exit = function(s, t) if t ~= theend then return 'We\'ve already finished this lesson..^ Go to the last lesson, please.', false; end end, dsc = [[Lesson 6. Moving - Part II^^ Now go to the last lesson.]], way = { 'r1', 'r2', 'r3', 'r4', 'r6', 'theend'}, }; theend = room { nam = 'Last lesson', dsc = [[With the help of the menu you can choose a game, save or load the state, or do other things. To open the menu press "Esc" or click the menu icon at the bottom right.^^ Now you are ready to play. Good luck!!!^^ Download games for INSTEAD here: ]]..txtu("http://instead.sourceforge.net")..[[^^ The tutorial uses the track The Titan Turrican from svenzzon.]], obj = { vway('keys', 'See {list of keyboard shortcuts}.', 'help')}, }; help = room { nam = 'Keyboard shortcuts', dsc = [[ Esc - Menu.^ Alt+Q - Exit.^ Alt+Enter - Full screen/window.^ F5 - Refresh the scene.^ Space/Backspace - Scroll the scene description.^ Tab/Shift+Tab - Switch between active zones.^ PgUp/PgDn - Scroll the active zone.^ Arrows left/right - Choose links in the active zone.^ F2 - Save game.^ F3 - Load game.^ F8 - Quick save.^ F9 - Quick load.^^ Shortcuts, that depend on the chosen keyboard mode (see Menu -> Settings -> Keyboard mode):^^ Arrows up/down:^  - "Scroll" mode: scroll active zone.^  - "Links" mode: choose links in the active zone.^  - "Smart" mode: both choose links and scroll active zone.^^ Arrows up/down + Shift or Alt:^  - "Scroll" mode: choose links in the active zone.^  - "Links" mode: scroll active zone.^  - "Smart" mode: scroll active zone. ]], obj = { vway('cmdline', 'See {command line parameters}.', 'help2')}, }; help2 = room { nam = 'Command line parameters', dsc = [[ -nosound - launch without sound;^ -alsa - force ALSA use (Linux only);^ -debug - debug mode for game developers;^ -theme - pick a theme;^ -game - pick a game;^ -themespath - additional path to themes;^ -gamespath - additional path to games;^ -window - windowed mode;^ -fullscreen - fullscreen mode;^ -noautosave - disable autosave/autoload option;^ -encode [encoded.lua] - encode lua source code (use doencfile from lua to load it);^ -mode [WxH] - use WxH resolution. ]], obj = { vway('keys', 'See {list of keyboard shortcuts}.', 'help')}, }; instead-1.9.1/games/tutorial3/main.lua000644 001751 001751 00000002320 12152561132 020117 0ustar00peterpeter000000 000000 -- $Name:Tutorial$ -- $Name(ru):Обучение$ -- $Name(ua):Навчання$ instead_version "1.6.0" require "xact" tut_lang = { ru = 'Язык', en = 'Language', ua = 'Мова', it = 'Lingua', es = 'Idioma', pt = 'Linguagem', } tut_title = { ru = 'Обучение', en = 'Tutorial', ua = 'Навчання', it = 'Tutorial', es = 'Tutorial', pt = 'Tutorial', } if not LANG or not tut_lang[LANG] then LANG = "en" end tut_lang = tut_lang[LANG] tut_title = tut_title[LANG] main = room { nam = tut_title; pic = 'instead.png'; forcedsc = true; dsc = txtc ( txtb(tut_lang)..'^^'.. img('gb.png')..' '..[[{en|English}^]].. img('ru.png')..' '..[[{ru|Русский}^]].. img('ua.png')..' '..[[{ua|Українська}^]].. img('es.png')..' '..[[{es|Español}^]].. img('br.png')..' '..[[{pt|Português}^]].. img('it.png')..' '..[[{it|Italiano}]]); obj = { xact("ru", code [[ gamefile('main-ru.lua', true) ]]); xact("en", code [[ gamefile('main-en.lua', true) ]]); xact("ua", code [[ gamefile('main-ua.lua', true) ]]); xact("es", code [[ gamefile('main-es.lua', true) ]]); xact("it", code [[ gamefile('main-it.lua', true) ]]); xact("pt", code [[ gamefile('main-pt.lua', true) ]]); } }instead-1.9.1/games/tutorial3/main-ua.lua000644 001751 001751 00000032116 12161555573 020544 0ustar00peterpeter000000 000000 -- $Name:Навчання$ instead_version "1.6.0" require "dash" -- '--' replace :) require "para" -- be more "Russian" require "quotes" game.act = 'Не виходить.'; game.inv = "Гм.. Не те.."; game.use = 'Не спрацює...'; game.pic = 'instead.png'; set_music('instead.ogg'); main = room { nam = 'Навчання', act = function() -- only one vobj, no check, just goto walk('r1'); end, dsc = txtc("Вітаємо в режимі навчання INSTEAD.")..[[^^ Гра складається зі сцен. Кожна сцена гри має опис, що складається зі статичної та динамічної частини. Динамічна частина включає об'єкти, персонажі й т.і. З динамічною частиною гравець може взаємодіяти за допомогою миші, нажимаючи на підсвічені посилання.^^ Дана сцена має назву "Навчання" і зараз Ви читаєте статичну частину її опису. Єдиним об'єктом сцени є об'єкт "Далі", котрий Ви бачите внизу тексту. Отже, для продовження навчання Ви можете натиснути на "Далі".]], obj = { vobj('continue', '{Далі}'), }, }; paper = obj { nam = 'папір', dsc = 'Перше, що Ви помічаєте в кімнаті -- {аркуш паперу}.', tak = 'Ви взяли папір.', var { seen = false, haswriting = false }, inv = function(s) if here() == r2 then s.seen = true; end if not s.haswriting then return 'Чистий аркуш картатого паперу. Схоже, його вирвали з зошита.'; end p 'Аркуш картатого паперу, на якому написано Ваше ім`я.'; end, used = function(s, w) if w == pencil and here() == r4 then s.haswriting = true; p 'Ви пишите на аркуші своє ім`я.'; end end, }; pencil = obj { nam = 'олівець', dsc = 'На підлозі лежить {олівець}.', tak = 'Ви підібрали олівець.', var { seen = false }, inv = function(s) if here() == r2 then s.seen = true; end p 'Звичайний дерев`яний олівець.'; end, }; r1 = room { nam = 'Урок 1', enter = code [[ lifeon('r1') ]], life = function(s) if not have 'paper' or not have 'pencil' then return end put(vway('continue', [[Відмінно!^Ви, швидше за все помітили, що статична частина опису сцени зникла, поступившись місцем опису предметів, котрі Ви взяли. Щоб знову подивитись повний опис сцени, можна нажати на її назву, відображену у верхній частині вікна -- "Урок 1". Окрім того, можна нажати клавішу F5 на клавіатурі, результат буде такий само.^^ {Далі}]], 'r2')); lifeoff('r1'); end, dsc = [[Урок 1. Взаємодія з об`єктами^^ Продовжимо урок. Зараз Ви знаходитесь в кімнаті. Візьміть обидва предмети, котрі Ви бачите. Нагадаємо, що для цього Ви можете просто використовувати мишу. Якщо Вам зручніше використовувати клавіатуру -- можна обрати потрібний предмет за допомогою клавіш зі стрілками и натиснути "Введення" для взаємодії з ними.]], obj = { 'paper', 'pencil'}, }; r2 = room { nam = 'Урок 2', enter = code [[ lifeon('r2') ]], life = function(s) if not paper.seen or not pencil.seen then return end put(vway("continue", "Гарно!^^{Далі}", 'r3')); lifeoff('r2'); end, dsc = [[Урок 2. Використання інвентарю - Частина I^^ Тепер у Вас з'явилися предмети, котрі можно використовувати чи вивчати. Для цього призначений інвентар. Ви можете подивитися на будь-який предмет інвентарю двічи клацнувши мишею по цьому предмету. Те ж саме можна зробити за допомогою клавіатури: нажміть "Tab", щоб перемкнутися на панель інвентарю, оберіть потрібний предмет і двічі нажміть "Введення". Щоб повернутися назад до опису сцени, нажмить "Tab" ще раз.^^ Отже, подивіться на папір. Потім, повторіть цю операцію з олівцем.]], }; apple = obj { nam = 'яблуко', dsc = 'На столі лежить {яблуко}.', tak = 'Ви взяли яблуко зі столу.', var { knife = false }, inv = function(s) if here() == r4 then remove(s, me()); return 'Вы з`їдаєте яблуко.'; end p 'Виглядає апетитно.'; end, }; desk = obj { nam = 'стіл', dsc = 'В цьому уроці ви бачите дерев`яний {письмовий стіл}.', var { haswriting = false, seen = false }, act = function(s) if s.haswriting then s.seen = true; return 'Великий дубовий письмовий стіл. На стільниці видно дрібний напис олівцем: "Любіть Україну".'; end p 'Великий дубовий письмовий стіл.'; end, used = function(s, w) if w == pencil and not s.haswriting then s.haswriting = true; p 'Ви пишете на столешні декілька літер.'; end end, obj = { 'apple' }, }; r3 = room { nam = 'Урок 3', enter = code [[ lifeon('r3') ]], life = function(s) if not desk.seen or not have('apple') then return end put(vway("continue", "^^{Далі}", 'r4')); lifeoff('r3'); end, dsc = [[Урок 3. Використання інвентаря - Частина II^^ Ви можете задіяти предмети інвентарю на інші предмети сцени чи інвентарю. В цій комнаті ви бачите стіл. Спробуйте задіяти олівець на стіл.^^ Для цього клацніть мишей на олівець, а потім на стіл. Те ж саме можна зробити за допомогою клавіатури: використовуючи клавіши "Tab", "Введення" й "стрілки".^^ Потім подивіться на стіл. І не забудьте взяти яблуко, воно нам знадобиться в наступному уроці.]], obj = { 'desk' }, }; r4 = room { nam = 'Урок 4', enter = function() apple.knife = false; lifeon('r4'); end, life = function(s) if not paper.haswriting or have('apple') then return end put(vway("continue", "Гаразд.^^{Далі}", 'r5')); lifeoff('r4'); end, dsc = [[Урок 4. Використання інвентарю - Частина III^^ Гаразд, тепер вивчимо ще декілька дій з предметами.^^ По-перше, напішить що-небудь на папері. Для цього нажміть мишею на олівець, а потім на папір. Після цього ви можете подивитись на папір, щоб побачити ваш запис.^^ По-друге, з'їште яблуко, котре Ви взяли зі столу в попередній кімнаті. Для цього двічи клацніть по яблуку в інвентарі.^^ Всі описані дії можна виконати за допомогою клавіатури так само, як показано в попередньому уроці.]], }; r5 = room { nam = 'Урок 5', exit = function(s, t) if t ~= r6 then return 'Цей урок ми вже пройшли.^ Будь ласка, перейдіть на урок 6.', false; end end, dsc = [[Урок 5. Переміщення - Частина I^^ Тепер вивчимо переходи між кімнатами. В цій кімнаті Ви бачите п'ять допоміжних посилань з номерами уроків. Перейдіть на урок 6. ^^ Для цього натисніть мишею на відповідне посилання. Ви також можете використати клавіатуру -- виберіть потрібне посилання за допомогою клавіш зі стрілками та нажміть "Введення" для переходу.]], way = { 'r1', 'r2', 'r3', 'r4', 'r6'}, }; r6 = room { nam = 'Урок 6', exit = function(s, t) if t ~= theend then p 'Цей урок ми вже пройшли.^ Будь ласка, перейдіть на останній урок.' return false; -- same as return "text", false end end, dsc = [[Урок 6. Переміщення - Частина II^^ Тепер перейдіть на останній урок.]], way = { 'r1', 'r2', 'r3', 'r4', 'r6', 'theend'}, }; theend = room { nam = 'Останній урок', dsc = [[Ви можете вибирати гру, зберігати та завантажувати її стан і виконувати інші дії за допомогою меню. Для виклику меню натисніть клавішу "Esc" або натисніть мишею на символ меню (справа знизу).^^ Тепер Ви готові до гри. Хай щастить!!!^^ Ігри для INSTEAD можно завантажити тут: ]]..txtu("http://instead.syscall.ru")..[[^^ Для навчання використан трек Instead game-engine вiд svenzzon.]], obj = { vway('keys', 'Подивитись {список клавіш}.', 'help')}, }; help = room { nam = 'Список клавіш', dsc = [[ Esc - Виклик меню;^ Alt+Q - Вихід;^ Alt+Enter - Повноекранний/віконний режим;^ F5 - Оновлення сцени;^ Пробел/Backspace - Прокрутка опису сцени;^ Tab/Shift+Tab - Переключення між активними зонами;^ PgUp/PgDn - Прокрутка активної зони;^ Стрілки вліво/вправо - Вибір посиланнь в активній зоні;^ F2 - Збереження гри;^ F3 - Завантаження гри;^ F8 - Швидке збереження гри;^ F9 - Швидке завантаження гри.^^ Клавіши, поведінка яких залежить від обраного режиму клавіатури (див. Меню -> Налаштування -> Режим клавіатури):^^ Стрілки вгору/вниз:^  - В режимі "Прокрутка": прокрутка активної зони;^  - В режимі "Посилання": вибір посиланнь в активній зоні;^  - В режимі "Розумний": одночасний вибір посиланнь та прокрутка активної зони.^^ Стрілки вгору/вниз + Shift або Alt:^  - В режимі "Прокрутка": вибір посиланнь в активній зоні;^  - В режимі "Посилання": прокрутка активної зони;^  - В режимі "Розумний": прокрутка активної зони. ]], obj = { vway('cmdline', 'Подивитись {параметри командного рядка}.', 'help2')}, }; help2 = room { nam = 'Параметри командного рядка', dsc = [[ -nosound - запуск без звуку;^ -alsa - примусове використання alsa (тільки для Linux);^ -debug - режим налагоджування для розробників ігр;^ -theme <тема> - вибір теми;^ -game <гра> - вибір гри;^ -themespath <шлях> - додатковий шлях до тем;^ -gamespath <шлях> - додатковий шлях до ігр;^ -windows - віконний режим;^ -fullscreen - повноекранний режим;^ -noautosave - відключити автозбереження/автозагрузку;^ -encode [encoded.lua] - закодувати вихідний текст lua (використовуйте doencfile для загрузки такого файла);^ -mode [ШИРИНАxВИСОТА] - встановити роздільну здатність екрану. ]], obj = { vway('keys', 'Подивитись {список клавіш}.', 'help')}, }; instead-1.9.1/games/tutorial3/main-ru.lua000644 001751 001751 00000032272 12161555573 020570 0ustar00peterpeter000000 000000 -- $Name:Обучение$ instead_version "1.6.0" require "dash" -- '--' replace :) require "para" -- be more "Russian" require "quotes" game.act = 'Не получается.'; game.inv = "Гм.. Не то.."; game.use = 'Не сработает...'; game.pic = 'instead.png'; set_music('instead.ogg'); main = room { nam = 'Обучение', act = function() -- only one vobj, no check, just goto walk('r1'); end, dsc = txtc("Добро пожаловать в режим обучения INSTEAD.")..[[^^ Игра состоит из сцен. Каждая сцена игры имеет описание, состоящее из статической и динамической части. Динамическая часть включает объекты, персонажей и т.д. С динамической частью игрок может взаимодействовать с помощью мыши, нажимая на подсвеченные ссылки.^^ Данная сцена называется "Обучение" и сейчас Вы читаете статическую часть её описания. Единственным объектом сцены является объект "Дальше", который Вы видите внизу текста. Итак, для продолжения обучения Вы можете нажать на "Дальше".]], obj = { vobj('continue', '{Дальше}'), }, }; paper = obj { nam = 'бумага', dsc = 'Первое, что Вы замечаете в комнате -- {листок бумаги}.', tak = 'Вы взяли бумагу.', var { seen = false, haswriting = false }, inv = function(s) if here() == r2 then s.seen = true; end if not s.haswriting then return 'Чистый лист клетчатой бумаги. Похоже, его вырвали из тетради.'; end p 'Лист клетчатой бумаги, на котором написано Ваше имя.'; end, used = function(s, w) if w == pencil and here() == r4 then s.haswriting = true; p 'Вы пишете на листке своё имя.'; end end, }; pencil = obj { nam = 'карандаш', dsc = 'На полу лежит {карандаш}.', tak = 'Вы подобрали карандаш.', var { seen = false }, inv = function(s) if here() == r2 then s.seen = true; end p 'Обычный деревянный карандаш.'; end, }; r1 = room { nam = 'Урок 1', enter = code [[ lifeon('r1') ]], life = function(s) if not have 'paper' or not have 'pencil' then return end put(vway('continue', [[Отлично!^Вы скорее всего заметили, что статическая часть описания сцены исчезла, уступив место описанию предметов, которые Вы взяли. Чтобы снова посмотреть полное описание сцены, можно нажать на её название, отображаемое в верхней части окна -- "Урок 1". Кроме того, можно нажать клавишу F5 на клавиатуре, результат будет таким же.^^ {Дальше}]], 'r2')); lifeoff('r1'); end, dsc = [[Урок 1. Взаимодействие с объектами^^ Продолжим урок. Сейчас Вы находитесь в комнате. Возьмите оба предмета, которые Вы видите. Напомним, что для этого Вы можете просто использовать мышь. Если Вам удобнее пользоваться клавиатурой -- можно выбрать нужный предмет с помощью клавиш со стрелками и нажать "Ввод" для взаимодействия с ним.]], obj = { 'paper', 'pencil'}, }; r2 = room { nam = 'Урок 2', enter = code [[ lifeon('r2') ]], life = function(s) if not paper.seen or not pencil.seen then return end put(vway("continue", "Хорошо!^^{Дальше}", 'r3')); lifeoff('r2'); end, dsc = [[Урок 2. Использование инвентаря - Часть I^^ Теперь у Вас появились предметы, которые можно использовать или изучать. Для этого предназначен инвентарь. Вы можете посмотреть на любой предмет инвентаря дважды щелкнув мышью по этому предмету. То же самое можно сделать с помощью клавиатуры: нажмите "Tab", чтобы переключиться на панель инвентаря, выберите нужный предмет и дважды нажмите "Ввод". Чтобы вернуться назад к описанию сцены, нажмите "Tab" еще раз.^^ Итак, посмотрите на бумагу. Затем, повторите эту операцию с карандашом.]], }; apple = obj { nam = 'яблоко', dsc = 'На столе лежит {яблоко}.', tak = 'Вы взяли яблоко со стола.', var { knife = false }, inv = function(s) if here() == r4 then remove(s, me()); return 'Вы съедаете яблоко.'; end p 'Выглядит аппетитно.'; end, }; desk = obj { nam = 'стол', dsc = 'На этом уроке вы видите деревянный {письменный стол}.', var { haswriting = false, seen = false }, act = function(s) if s.haswriting then s.seen = true; return 'Большой дубовый письменный стол. На столешнице видна мелкая надпись карандашом: "Lorem Ipsum".'; end p 'Большой дубовый письменный стол.'; end, used = function(s, w) if w == pencil and not s.haswriting then s.haswriting = true; p 'Вы пишете на столешнице несколько букв.'; end end, obj = { 'apple' }, }; r3 = room { nam = 'Урок 3', enter = code [[ lifeon('r3') ]], life = function(s) if not desk.seen or not have('apple') then return end put(vway("continue", "^^{Дальше}", 'r4')); lifeoff('r3'); end, dsc = [[Урок 3. Использование инвентаря - Часть II^^ Вы можете действовать предметами инвентаря на другие предметы сцены или инвентаря. В этой комнате вы увидите стол. Попробуйте воздействовать карандашом на стол.^^ Для этого нажмите мышью на карандаш, а затем на стол. То же самое можно сделать с помощью клавиатуры: используя клавиши "Tab", "Ввод" и "стрелки".^^ Затем посмотрите на стол. И не забудьте взять яблоко, оно нам пригодится в следующем уроке.]], obj = { 'desk' }, }; r4 = room { nam = 'Урок 4', enter = function() apple.knife = false; lifeon('r4'); end, life = function(s) if not paper.haswriting or have('apple') then return end put(vway("continue", "Хорошо.^^{Дальше}", 'r5')); lifeoff('r4'); end, dsc = [[Урок 4. Использование инвентаря - Часть III^^ Хорошо, теперь изучим еще несколько действий с предметами.^^ Во-первых, напишите что-нибудь на бумаге. Для этого нажмите мышью на карандаш, а затем на бумагу. После этого вы можете посмотреть на бумагу, чтобы увидеть вашу запись.^^ Во-вторых, съешьте яблоко, которое Вы взяли со стола в предыдущей комнате. Для этого дважды щелкните по яблоку в инвентаре.^^ Все описанные действия можно выполнить с помощью клавиатуры так же, как показано в предыдущем уроке.]], }; r5 = room { nam = 'Урок 5', exit = function(s, t) if t ~= r6 then return 'Этот урок мы уже прошли.^ Пожалуйста, перейдите на урок 6.', false; end end, dsc = [[Урок 5. Перемещение - Часть I^^ Теперь изучим переходы между комнатами. В этой комнате Вы видите пять дополнительных ссылок с номерами уроков. Перейдите на урок 6. ^^ Для этого нажмите мышью на соответствующую ссылку. Вы также можете воспользоваться клавиатурой -- выберите нужную ссылку с помощью клавиш со стрелками и нажмите "Ввод" для перехода.]], way = { 'r1', 'r2', 'r3', 'r4', 'r6'}, }; r6 = room { nam = 'Урок 6', exit = function(s, t) if t ~= theend then p 'Этот урок мы уже прошли.^ Пожалуйста, перейдите на последний урок.' return false; -- same as return "text", false end end, dsc = [[Урок 6. Перемещение - Часть II^^ Теперь перейдите на последний урок.]], way = { 'r1', 'r2', 'r3', 'r4', 'r6', 'theend'}, }; theend = room { nam = 'Последний урок', dsc = [[Вы можете выбирать игру, сохранять и загружать её состояние и выполнять другие действия с помощью меню. Для вызова меню нажмите клавишу "Esc" или нажмите мышью на символ меню (справа снизу).^^ Теперь Вы готовы к игре. Удачи!!!^^ Игры для INSTEAD можно скачать здесь: ]]..txtu("http://instead.syscall.ru")..[[^^ В обучении использован трек Instead game-engine от svenzzon.]], obj = { vway('keys', 'Посмотреть {список клавиш}.', 'help')}, }; help = room { nam = 'Список клавиш', dsc = [[ Esc - Вызов меню;^ Alt+Q - Выход;^ Alt+Enter - Полноэкранный/оконный режим;^ F5 - Обновление сцены;^ Пробел/Backspace - Прокрутка описания сцены;^ Tab/Shift+Tab - Переключение между активными зонами;^ PgUp/PgDn - Прокрутка активной зоны;^ Стрелки влево/вправо - Выбор ссылок в активной зоне;^ F2 - Сохранение игры;^ F3 - Загрузка игры;^ F8 - Быстрое сохранение игры;^ F9 - Быстрая загрузка игры.^^ Клавиши, поведение которых зависит от выбранного режима клавиатуры (см. Меню -> Настройки -> Режим клавиатуры):^^ Стрелки вверх/вниз:^  - В режиме "Прокрутка": прокрутка активной зоны;^  - В режиме "Ссылки": выбор ссылок в активной зоне;^  - В режиме "Умный": одновременно выбор ссылок и прокрутка активной зоны.^^ Стрелки вверх/вниз + Shift или Alt:^  - В режиме "Прокрутка": выбор ссылок в активной зоне;^  - В режиме "Ссылки": прокрутка активной зоны;^  - В режиме "Умный": прокрутка активной зоны. ]], obj = { vway('cmdline', 'Посмотреть {параметры командной строки}.', 'help2')}, }; help2 = room { nam = 'Параметры командной строки', dsc = [[ -nosound - запуск без звука;^ -alsa - принудительное использование alsa (только для Linux);^ -debug - отладочный режим для разработчика игр;^ -theme <тема> - выбор темы;^ -game <игра> - выбор игры;^ -themespath <путь> - дополнительный путь к темам;^ -gamespath <путь> - дополнительный путь к играм;^ -windows - оконный режим;^ -fullscreen - полноэкранный режим;^ -noautosave - отключить автосохранение/автозагрузку;^ -encode [encoded.lua] - закодировать исходный текст lua (используйте doencfile для загрузки такого файла);^ -mode [ШИРИНАxВЫСОТА] - установить разрешение. ]], obj = { vway('keys', 'Посмотреть {список клавиш}.', 'help')}, }; instead-1.9.1/games/tutorial3/ua.png000644 001751 001751 00000000676 12161555573 017633 0ustar00peterpeter000000 000000 PNG  IHDR ngAMA7tEXtSoftwareAdobe ImageReadyqe<PIDATxbdh1 ?(# rr1Pz(* jd!7nG3K,TCœ~KG00T??߿ !~!@lTd6H+ks X. l$P*  rJSߟ wHʖbc:@20?/WdbRz@C, HTE( @ P6  @uJDA:#B?bz@I8`@pAHnGIENDB`instead-1.9.1/games/tutorial3/main-es.lua000644 001751 001751 00000020606 12161555573 020547 0ustar00peterpeter000000 000000 -- $Name:Tutorial Español$ instead_version "1.6.0" game.act = 'No puedes hacer eso.'; game.inv = "Hmm... Nop..."; game.use = 'No pasa nada...'; game.pic = 'instead.png'; set_music('instead.ogg'); main = room { nam = 'Tutorial', act = function() walk('r1'); end, dsc = txtc("Bienvenido al tutorial de INSTEAD.")..[[^^ En INSTEAD un juego se divide en "escenas". Cada escena tiene una descripción, conformada por secciones estáticas y dinámicas. Las secciones estáticas pueden incluir objetos, personajes, etc. Como jugador puedes interactuar con las partes dinámicas al hacer click en los links resaltados.^^ La escena actual se llama "Tutorial" y tu estás leyendo la sección estática de su descripción. El único objeto en esta escena es el objeto "Siguiente", que puedes ver más abajo. Esto es: para seguir aprendiendo haz click en "Siguiente".]], obj = { vobj('continue', '{Siguiente}'), }, }; paper = obj { nam = 'papel', dsc = 'Lo primero que ves en la habitación es un {pedazo de papel}.', tak = 'Coges el papel.', var { seen = false, haswriting = false }, inv = function(s) if here() == r2 then s.seen = true; end if not s.haswriting then return 'Una hoja blanca y cuadrada. Probablemente arrancada de un libro.'; end p 'Una hoja cuadrada de papel con tu nombre escrito en ella.'; end, used = function(s, w) if w == pencil and here() == r4 then s.haswriting = true; p 'Escribes tu nombre en el papel.'; end end, }; pencil = obj { nam = 'lápiz', dsc = 'Hay un {lápiz} en el piso.', tak = 'Coges el lápiz.', var { seen = false }, inv = function(s) if here() == r2 then s.seen = true; end p 'Un lápiz común de madera.'; end, }; r1 = room { nam = 'Lección 1', enter = function() lifeon('r1'); end, life = function(s) if not have('paper') or not have('pencil') then return end put(vway('continue', [[Genial!^Te abrás dado cuenta que la parte estática de la descripción ya no está; reemplazada por las descripciones de los objetos que cogiste. Para ver nuevamente la descricpión completa de esta escena puedes clickear en el nombre arriba (Lección 1) o pulsar F5. Es lo mismo.^^ {Siguiente}]], 'r2')); lifeoff('r1'); end, dsc = [[Lección 1. Interactuar con objetos^^ Continuemos con el tutorial. Estás en una habitación. Coge los dos objetos que ves aquí. Para ello, puedes clickear sobre ellos con el ratón o -si lo prefieres- usar las flechas de tu teclado para posicionarte y el "Enter" para interactuar.]], obj = { 'paper', 'pencil'}, }; r2 = room { nam = 'Lección 2', enter = function() lifeon('r2'); end, life = function(s) if not paper.seen or not pencil.seen then return end put(vway("continue", "Bien!^^{Siguiente}", 'r3')); lifeoff('r2'); end, dsc = [[Lección 2. Usando el inventario — Parte I^^ Ahora tienes en tu poder objetos que puedes examinar o usar. Eso es tu inventario. Para examinar un objeto haz doble click en él. O puedes manejar el cursor con la tecla "Tab", elegir un objeto y presionar Enter dos veces. Para volver el cursor a la descripción de la escena, presiona nuevamente "Tab".^^ Ok, examina el papel. Y haz lo propio con el lápiz.]], }; apple = obj { nam = 'manzana', dsc = 'Hay una {manzana} sobre la mesa.', tak = 'Coges la manzana de la mesa.', var { knife = false }, inv = function(s) if here() == r4 then remove(s, me()); return 'Te comes la manzana.'; end p 'Luce apetecible.'; end, }; desk = obj { nam = 'escritorio', dsc = 'Aquí ves un {escritorio} de madera.', var { seen = false, haswriting = false }, act = function(s) if s.haswriting then s.seen = true; return 'Un gran escritorio de roble. Hay algo escrito en él: "Lorem Ipsum".'; end p 'Un gran escritorio de roble.'; end, used = function(s, w) if w == pencil and not s.haswriting then s.haswriting = true; p 'Garabateas unas palabras sobre el escritorio.'; end end, obj = { 'apple' }, }; r3 = room { nam = 'Lección 3', enter = function() lifeon('r3'); end, life = function(s) if not desk.seen or not have 'apple' then return end put(vway("continue", "^^{Siguiente}", 'r4')); lifeoff('r3'); end, dsc = [[Lección 3. Usando el inventario — Parte II^^ Puedes combinar una acción con un objeto de tu inventario y un objeto de la escena o del mismo inventario. En esta habitación verás un escritorio. Prueba usar el lápiz con él.^^ Para ello, haz click sobre el lápiz, y entonces click sobre el escritorio. O puedes conseguir lo mismo con "Tab", "Enter" y las flechas de tu teclado.^^ A continuación, examina el escritorio. Y no te olvides de coger la manzana. La necesitarás para la próxima lección.]], obj = { 'desk' }, }; r4 = room { nam = 'Lección 4', enter = function() apple.knife = false; lifeon('r4'); end, life = function(s) if not paper.haswriting or have 'apple' then return end put(vway("continue", "Bien!^^{Siguiente}", 'r5')); lifeoff('r4'); end, dsc = [[Lección 4. Usando el inventario — Parte III^^ Bien, ahora veamos un par de acciones más sobre objetos.^^ Primero, escribir algo en el papel. Haz click en el lápiz y luego en el papel. Y entonces examina el papel para ver lo que haz escrito.^^ Segundo, cómete la manzana que cogiste en la escena anterior. Haz doble click en ella.^^ Todas estas acciones también pueden ejecutarse con tu teclado, como ya se ha descrito.]], }; r5 = room { nam = 'Lección 5', exit = function(s, t) if t ~= r6 then p 'Ya hemos terminado esta lección.^ Ve a la lección 6, por favor.' return false; end end, dsc = [[Lección 5. Moviéndose — Parte I^^ Ahora analizaremos el movimiento entre localidades. En esta habitación puedes ver 5 links con los nombres de las lecciones. Ve a la lección 6.^^ Haz click en el link correspondiente o usa el teclado (ubica el cursor con las flechas y presiona "Enter").]], way = { 'r1', 'r2', 'r3', 'r4', 'r6'}, }; r6 = room { nam = 'Lección 6', exit = function(s, t) if t ~= theend then return 'Ya hemos terminado esta lección.^ Ve a la última lección, por favor.', false; end end, dsc = [[Lección 6. Moviéndose - Parte II^^ Ahora ve a la última lección.]], way = { 'r1', 'r2', 'r3', 'r4', 'r6', 'theend'}, }; theend = room { nam = 'Ultima lección', dsc = [[Mediante el menú flotante, puedes elegir un juego, salvar o cargar un juego, y un par de cosas más. Para abrirlo presiona "Esc" o haz click en el icono de menú abajo a la derecha.^^ Ahora ya estás listo para jugar. Buena suerte!!!^^ Descarga nuevos juegos para INSTEAD aquí: ]]..txtu("http://instead.sourceforge.net")..[[^^ Este tutorial usa el tema Instead game-engine de svenzzon.]], obj = { vway('keys', 'Ver {lista de atajos de teclado}.', 'help')}, }; help = room { nam = 'Atajos de Teclado', dsc = [[ Esc - Menú.^ Alt+Q - Salir.^ Alt+Enter - Pantalla Completa/Ventana.^ F5 - Actualizar escena.^ Espacio/Backspace - Desplazar la descripción de la escena.^ Tab/Shift+Tab - Cambiar entres zonas activas.^ PgUp/PgDn - Desplazar el contenido de la zona activa.^ Teclas izqu/derecha - Elegir links en la zona activa.^ F2 - Salvar juego.^ F3 - Cargar juego.^ F8 - Salvado Express.^ F9 - Carga Express.^^ Atajos que dependen del modo de teclado elegido (ver Menú->Opciones->Modo Teclado):^^ Flechas arriba/abajo:^  - Modo "Scroll": hace scroll de zona activa.^  - Modo "Links": elige los links en la zona activa.^  - Modo "Smart": combina las dos anteriores.^^ Flechas arriba/abajo + Shift o Alt:^  - Modo "Scroll": elige los links en la zona activa.^  - Modo "Links": hace scroll de zona activa.^  - Modo "Smart": hace scroll de zona activa. ]], obj = { vway('cmdline', 'Ver {parámetros línea de comandos}.', 'help2')}, }; help2 = room { nam = 'Parámetros línea de comandos', dsc = [[ -nosound - lanza sin sonido;^ -alsa - fuerza el uso de ALSA (solo Linux);^ -debug - modo debug para desarrolladores;^ -theme - elige un tema;^ -game - elige un juego;^ -themespath - ruta adicional para los temas;^ -gamespath - ruta adicional para los juegos;^ -window - modo ventana;^ -fullscreen - pantalla completa;^ -noautosave - deshabilita opción autosalvar/autocargar;^ -encode [encoded.lua] - encode del código fuente lua (usar doencfile desde lua para cargarlo);^ -mode [WxH] - usa resolusion WxH. ]], obj = { vway('keys', 'Ver {lista de atajos de teclado}.', 'help')}, }; instead-1.9.1/games/tutorial3/ru.png000644 001751 001751 00000000644 12161555573 017647 0ustar00peterpeter000000 000000 PNG  IHDR ngAMA7tEXtSoftwareAdobe ImageReadyqe<6IDATxb?BAX )̀l#/ dj?6 ==gd䌿 d@$$XX XoH7?_Iyy?|4D/ THRH\) @@,5|HӟD efE ?phU=L0HJ倢 `g1 H W*M  ?e8aIENDB`instead-1.9.1/games/tutorial3/es.png000644 001751 001751 00000000725 12161555573 017630 0ustar00peterpeter000000 000000 PNG  IHDR ngAMA7tEXtSoftwareAdobe ImageReadyqe<gIDATxbπPX@_upɒ2ҒKF6hU wg@ տCH($ f@, 3}^_/03f`@1 T?'00t|}/jb@v_1bØUzW[Fz@L`EO?Zf]#l 7P@11Ęw/q?̆@7  200w,0Ɵ 2x XfARC!@T @_Q#OC@ ZGIENDB`instead-1.9.1/games/tutorial3/instead.png000644 001751 001751 00000023462 12161555573 020653 0ustar00peterpeter000000 000000 PNG  IHDRCF>sBITUF pHYs >FtEXtSoftwarewww.inkscape.org<&IDATxwT?}„ ErFĬfEEQԋ _^1/PYDTPDA%HZ`aa̜T3,33ˢkgaf:߮NJ#ke1NPoO& \rY銣,le%g()>LscTB*,! yebeEdyNiqZ"H c />-]E~ӳ; t olԣ저{[ iKYBެT{)7I\<pp\<+CiJ@CGWOhE==sTMU60|)9Z*SR~n'W; |9-cȞK,V2tLte.Qj#ۼ"#U<~1>? _L^P|(:[#&",xr~xiUجϞ5#Xs/[ȋ+;V7[ø& %)ӽ=uKB\ÍoQ0XSQoټ !pI0ARJ)Kϖ3,} IL:,߉3O:.Ed'Ep69߫V5Y_7Y.饉3_h\Ti2}cs"KeSJ:e򛌕_*y\`cŮ',KY%hy@ͥ[HDj?=,9s!˖ɖZW뇝r ǔi3prЏʿA]rX㈔|[5^ky)I +͉ 2uoSSM-qPUm&{ȿ .şI ~~#t\4]tMSցW s c c)7{E)3Ը_Sٳr F~CܞX/'Ih@)u c8S8b<=*b36&ˇ$KT&ja"Z4hF^e,%6>:{xN =zgw@7)#}jHDd ԭeR'UUP=W2Wr?x/g"%$ꁹ=% Kk5!cϏ#Ucd-nq tY 0Q "d|V-T0` Vf`nw |Z_}g\+ޙ ',~Jji7#u LrW+!2)KH?g}֢7~=Ckyۢ3"ݺxߧ߯ΪM$4F곕X1J; ]G.:D> 캬wQ]'&v eN{rPG)=4.) s/U*'ˢ݊87L}:FK^Nz{^!YuakGkuyD2!wzⱈ>^|N|>U;P^-(.z ՗ cJe)1p?Y+SV5oT|[gngufDrW{eH=鷲ix%ǘ.B? *uϙ?.%a.V#UVI,V_f[㐤/eglJRBz-|9]&h>/6|¹&hjgM*g ÄS ҄t&6TM%[b=waWޘ{eKM$!;F}g]JNLt{yR{_TdS)-_)t,y=cgwu\ s6HfS⸆qҧB-4dVOkށt^}{ӌjC{89D)lT{C_.Mg|m:RZF9 ^kFcYՉ)k+6ֲXVW;T3kǤPŹonwg%ߘ̧Z4J' ނM V'rU-'u79'fĞ#{y+V$@$ҟ)'SjCW;3tv:B:Xgaiwu㲂 2^|J~ lޛfTIr٬B<}J\?/yKO_A \Foc6v҈2Tu7LvGCneNߌY1x$Sd>").0lS RMVߵ 9oLpO)SR\4_l<nY|C9JT&jě "%2GӧMJHL9'-;d ˂MNH*OF*O on /p/YB?Nݘ:Wˬ'SNpz뵫vtu.*  Qȼ.i7 ix fZʰW#vLEt{tFc4i%tWTqF!8k'z^QfҼU{(U>. <`!/V;g%AWoD/YGIcaMy(vN#zlt3QI:@6~ &֢ o/A͘eVd(jS:W,i-}$`>GM:Tu3oFf<kI0tk0L=:d|UoЗ7d?CDjⷋ݄M6`軡fekZ۷\>\% MtaH(G#.iPYV&ML֘rM^Ҭˮ{oP7Rm1 p[hZSno%:OWq\3v/)aՠf:!;#'|yK*bŚ)G}IWU~=S`XCO Bkڐ$p) ӬdKta?<{ UV3qqS{H(.TpP BjxFl'Ti}cJ*M0pi` .tJ$ki;D v`%zO}K^KܓiȗIyek=9C.kP^e;.giJ\ N>Iylpy ߙv MY3}Xm8wУ=y4?;;Ҕ>?J\#dpeP/t8V^-\Yu~N?04T75odBww>#LgC4ٱyqitS5]H+i5{1R4k\uO;]wqNܚTu:gތTSmyM)純GHiy=Yu7`ȔJC+jk_snc,v"fBɮA|i/ivc'$M??_Z̵>ʠ_$"[<=OCˈKԞ:OeSzW-g˰hTuD>hgҙe{Mix)|[Օ=KDs)4ɑ u$I.2Qq|~,egdPUciI*$"E0gJ*f؛MuF sޑI^&6P fm Wi9 &:t,gN ⨋} JU,t8|S! 0)::=v)W #V'vnh;5߂VCcfE=AkV\*Osp\剎!g|T(Gq<1S CTА<+ճnk7h!b2~j?ހ4;u+"˽A&{sE$̨I{ᓻֆOSo pzoU/u1&\GjxݢYAj@|up=jZj ? "˹13r'M1ufά*lɉr,mЅ*CZ:}踴GtT)K/sʉ,qDO=R)u2>Cp_&FSA\*Z` ӝl1$ngЁOqӑcn;g3A, 0\0f]VқF~& \F0^t'KYˮ<#t"+q5{ CѨf y+pW0K=vIH*;*(6Ϩ3ЖCzSُTXDOZmrYi2򾧚 _~N kG Ie@kф_)$6?>*[Y RzІh Jj*mbSYW)SǬObn Ue,`(uWf/;(wYRВ#ʋ 5flB`7Ty /s,$~Ȑ/ht,#&UO  JKڈ[lv/ ⑸)hdP:Y,꥽N5y/ʔ <)}nX=y}_l/=e)FuaWÞiK cEܒ24nD?n<'s}4z&<)2crJ*-n>FlX*)V]QoA<QbJ:K$ȭ7bQqnkv@ JTOUj΃|ϻ@s( hCNх$|Lܸ]xQN>i/ПLz\I>o2N=ly,,V+e,3|> A>' ya 3x^q4R0|.'JN8>c &q&yL"=wa>Vh9|ƛs:_^c4bx|fG%KXHn #wM8_DASQ&4J?ltS(50neP `IENDB`instead-1.9.1/games/tutorial3/gb.png000644 001751 001751 00000001127 12161555573 017606 0ustar00peterpeter000000 000000 PNG  IHDR ntEXtSoftwareAdobe ImageReadyqe<IDATxb4sC^a``ߊ+mS[_wo~Ȫr:]v'E>л?FUE!5Cn_?+ yF[L5]^gw^ +TWy'##Ż Ogwxci7;N07z*mn0|;?f`׊+7>ݷGĀ\{re7; 3%?qp׿߿Eeѐy lmY@?'`Jk<7BtΫ>0{+%_my3gCsv͋Llnqa3;/Y0ϟ@0o\d>S\3}l7s!30jJ3jJ#.氦9mY~;-m0m?2z!9[ A K~IENDB`instead-1.9.1/games/tutorial3/main-it.lua000644 001751 001751 00000021335 12161555573 020554 0ustar00peterpeter000000 000000 -- $Name:Tutorial Italiano$ instead_version "1.6.0" game.act = 'Non puoi.'; game.inv = "Hmm... Sbagliato..."; game.use = 'Non funziona...'; game.pic = 'instead.png'; set_music('instead.ogg'); main = room { nam = 'Tutorial', act = function() walk('r1'); end, dsc = txtc("Benvenuto in questa guida introduttiva ad INSTEAD.")..[[^^ Il gioco consiste di scene. Ogni scena del gioco ha una descrizione, formata da parti statiche e dinamiche. Le parti dinamiche includono oggetti, personaggi, etc... Il giocatore può interagire con la parte dinamica cliccando con il mouse sui link evidenziati.^^ La scena corrente è chiamata "Tutorial" e state leggendo la parte statica della sua descrizione. L'unico oggetto di questa scena è l'oggetto "Avanti", che potete vedere sotto il testo. Così, per continuare questa guida basta fare click su "Avanti".]], obj = { vobj('continua', '{Avanti}'), }, }; paper = obj { nam = 'foglio', dsc = 'La prima cosa che potete notare nella stanza è un {foglio di carta}.', tak = 'Prendi il foglio.', var { seen = false, haswriting = false }, inv = function(s) if here() == r2 then s.seen = true; end if not s.haswriting then return 'Un foglio di carta bianca a quadretti. Probabilmente strappato da un quaderno.'; end p 'Un foglio a quadretti con il tuo nome scritto sopra.'; end, used = function(s, w) if w == pencil and here() == r4 then s.haswriting = true; p 'Scrivi il tuo nome sul foglio.'; end end, }; pencil = obj { nam = 'matita', dsc = 'C\'è anche una {matita} sul pavimento.', tak = 'Raccogli la matita.', var { seen = false }, inv = function(s) if here() == r2 then s.seen = true; end p 'Una normale matita di legno.'; end, }; r1 = room { nam = 'Lezione 1', enter = function() lifeon('r1'); end, life = function(s) if not have('paper') or not have('pencil') then return end put(vway('avanti', [[Eccellente!^Avrete probabilmente notato che la parte statica della descrizione della scena è scomparsa, rimpiazzata dalla descrizione degli oggetti che avete preso. Per vedere di nuovo la descrizione completa della scena potete fare click sul nome della scena in alto — "Lezione 1" o premere F5. Il risultato è lo stesso.^^ {Next}]], 'r2')); lifeoff('r1'); end, dsc = [[Lezione 1. Interagire con gli oggetti^^ Continuiamo la nostra guida. Siete dentro una stanza e potete vedere due oggetti presenti. Per prenderli fate semplicemente click su di essi con il mouse o, se preferite usare la tastiera, potete raccogliere un oggetto usando i tasti freccia e premendo quindi "Invio" per interagire con essi.]], obj = { 'paper', 'pencil'}, }; r2 = room { nam = 'Lezione 2', enter = function() lifeon('r2'); end, life = function(s) if not paper.seen or not pencil.seen then return end put(vway("avanti", "Bene!^^{Avanti}", 'r3')); lifeoff('r2'); end, dsc = [[Lezione 2. Usare l'inventario — Parte I^^ Ora avete nel vostro inventario due oggetti che potete esaminare od usare. Per esaminare un qualsiasi oggetto fate doppio click su di esso oppure potete posizionare il cursore nell'inventario con il tasto "Tab", scegliete l'oggetto e premete "invio" due volte. Per tornare con il cursore alla descrizione della scena premete di nuovo "Tab"^^ Ora, osservate il foglio, e quindi fate lo stesso con la matita.]], }; apple = obj { nam = 'mela', dsc = 'C\'è una {mela} sul tavolo.', tak = 'Prendi la mela dal tavolo.', var { knife = false }, inv = function(s) if here() == r4 then remove(s, me()); return 'Mangi la mela.'; end p 'Sembra appetitosa.'; end, }; desk = obj { nam = 'scrivania', dsc = 'Puoi vedere una {scrivania} di legno.', var { seen = false, haswriting = false }, act = function(s) if s.haswriting then s.seen = true; return 'Una larga scrivania di legno. C\'è un\'iscrizione sul piano: "Lorem Ipsum".'; end p 'Una larga scrivania in legno.'; end, used = function(s, w) if w == pencil and not s.haswriting then s.haswriting = true; return 'Scrivi alcune lettere sulla scrivania.'; end end, obj = { 'apple' }, }; r3 = room { nam = 'Lezione 3', enter = function() lifeon('r3'); end, life = function(s) if not desk.seen or not have 'apple' then return end put(vway("continua", "^^{Avanti}", 'r4')); lifeoff('r3'); end, dsc = [[Lezione 3. Usare l'inventario — Parte II^^ Potete agire con oggetti dell'inventario su altri oggeti della scena o dell'inventario stesso. In questa locazione potete vedere una scrivania. Provate ad usare la matita su di essa.^^ Per farlo fate click con il mouse sulla matita, e quindi sulla scrivania. Oppure usate la tastiera con i tasti "Tab", "invio" e le frecce.^^ Ora guardate il tavolo e non scordatevi di prendere la mela, ne avrete bisogno per la prossima dimostrazione.]], obj = { 'desk' }, }; r4 = room { nam = 'Lezione 4', enter = function() apple.knife = false; lifeon('r4'); end, life = function(s) if not paper.haswriting or have('apple') then return end put(vway("continua", "Bene.^^{Avanti}", 'r5')); lifeoff('r4'); end, dsc = [[Lezione 4. Usare l'inventario — Parte III^^ Bene, ora vediamo qualche altra azione con gli oggetti.^^ Come prima cosa, scrivete qualcosa sul foglio. Fate click sulla matita e quindi sul foglio. Ora potete osservare il foglio e controllare cosa avete scritto.^^ Come secondo passo, mangiate la mela, l'avete presa nella precedente locazione. Per farlo fate doppio click su di essa.^^ Tutte queste azioni possono essere eseguite anche con la tastiera come già descritto in precedenza.]], }; r5 = room { nam = 'Lezione 5', exit = function(s, t) if t ~= r6 then p 'Abbiamo già terminato questa parte della guida. Proseguiamo alla prossima, per favore.' return false; end end, dsc = [[Lezione 5. Movimenti — Parte I^^ Ora vedremo i passaggi tra una locazione e l'altra. In questa stanza potete vedere cinque link che portano verso le lezioni numerate. Andate alla 6.^^ Fate click sul giusto link o usate la tastera - selezionate il link con le frecce e premete "Invio".]], way = { 'r1', 'r2', 'r3', 'r4', 'r6'}, }; r6 = room { nam = 'Lezione 6', exit = function(s, t) if t ~= theend then return 'Abbiamo già terminato questa lezione.^ Proseguiamo verso la 6, per favore.', false; end end, dsc = [[Lezione 6. Movimenti - Parte II^^ Ora passiamo all'ultimo step di questa guida.]], way = { 'r1', 'r2', 'r3', 'r4', 'r6', 'theend'}, }; theend = room { nam = 'Gran Finale', dsc = [[Con l'aiuto del menu potete scegliere un gioco, salvare o caricare una partita, oltre a svariate altre cose. Per aprire il menu premete "Esc" o fate click sull'icona di menu in basso a destra.^^ Ora siete pronti a giocare. Buona Fortuna!!!^^ Scaricate i giochi per INSTEAD qui: ]]..txtu("http://instead.sourceforge.net")..[[^^ Il tutorial si avvale del brano musicale Instead game-engine di svenzzon.]], obj = { vway('keys', 'Vedi {lista delle scorciatoie da tastiera}.', 'help')}, }; help = room { nam = 'Scorciatoie da tastiera', dsc = [[ Esc - Menu.^ Alt+Q - Esci.^ Alt+Enter - Schermo intero/finestra.^ F5 - Ristampa la descrizione completa della scena.^ Space/Backspace - Scorri la descrizione della scena.^ Tab/Shift+Tab - Passa da una zona attiva all'altra.^ PgUp/PgDn - Scorri la zona attiva.^ Freccia sinistra/destra - Scegli i link nella zona attiva.^ F2 - Salva la partita.^ F3 - Carica la partita.^ F8 - Salvataggio veloce.^ F9 - Caricamento veloce.^^ Le scorciatoie sono attive se si sceglie la modalità tastiera nelle impostazioni (vedi Menu -> Impostazioni -> Keyboard mode):^^ Frecce su/giù:^  - "Scroll" mode: scorre la zona attiva.^  - "Links" mode: sceglie i link nella zona attiva.^  - "Smart" mode: sceglie i link e scorre la zona attiva.^^ Frecce su/giù + Shift o Alt:^  - "Scroll" mode: sceglie i link nella zona attiva.^  - "Links" mode: scorre la zona attiva.^  - "Smart" mode: scorre la zona attiva. ]], obj = { vway('cmdline', 'Vedi {parametri della linea di comando}.', 'help2')}, }; help2 = room { nam = 'Parametri della linea di comando', dsc = [[ -nosound - lancia il gioco senza suono;^ -alsa - forza l'uso di ALSA (solo per Linux);^ -debug - modalità di debug per sviluppatori di giochi;^ -theme - scegli un tema;^ -game - scegli un gioco;^ -themespath - percorsi addizionali per i temi;^ -gamespath - percorsi addizionali per i giochi;^ -window - modalità finestra;^ -fullscreen - modalità a tutto schermo;^ -noautosave - disabilita l'opzione di autosalvataggio/autocaricamento;^ -encode [encoded.lua] - comprime il codice sorgente di lua (usate doencfile da lua per caricarlo);^ -mode [WxH] - usa la risoluzione WxH. ]], obj = { vway('keys', 'Vedi {lista delle scorciatorie da tastiera}.', 'help')}, }; instead-1.9.1/games/tutorial3/br.png000644 001751 001751 00000001121 10304563000 017570 0ustar00peterpeter000000 000000 PNG  IHDR ngAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbdHf@ `/03 @5F7g`￿6ZXl9 ϟ߿UOBY;K^?K_h@5T T5ToUդ $~涐eO; o bL_g~ UszhdČY/D:U6[R?f?OGsA_2ЖҶ0<t{W|x_D˒_.fg y)h)˖bU?}n[/I^r2|d   &go~Ko2,@ `H?$x$A^; 3˿kaܿ(@128"b9F1C/AnIENDB`instead-1.9.1/games/tutorial3/main-pt.lua000644 001751 001751 00000020446 12153172232 020551 0ustar00peterpeter000000 000000 -- $Name:Tutorial Português$ instead_version "1.6.0" game.act = 'Isso não é permitido.'; game.inv = "Hmm... Não..."; game.use = 'Não funciona...'; game.pic = 'instead.png'; set_music('instead.ogg'); main = room { nam = 'Tutorial', act = function() walk('r1'); end, dsc = txtc("Bem-vindo ao tutorial do INSTEAD.")..[[^^ Cada jogo consiste de cenas. Cada cena do jogo tem uma descrição, com partes estáticas e dinâmicas. Partes dinâmicas incluem objetos, personagens, etc. Um jogador pode interagir com a parte dinâmica clicando com o mouse nos links realçados.^^ A cena corrente é chamada de "Tutorial" e você está lendo a parte estática da sua descrição. O único objeto nesta cena é o objeto "Próxima", que você pode ver abaixo do texto. Então, para continuar aprendendo você pode clicar "Próxima".]], obj = { vobj('continue', '{Próxima}'), }, }; paper = obj { nam = 'papel', dsc = 'A primeira coisa que você vê no local é uma {folha de papel}.', tak = 'Você pega o papel.', var { seen = false, haswriting = false }, inv = function(s) if here() == r2 then s.seen = true; end if not s.haswriting then return 'Uma folha branca e quadrada de papel. Provavelmente rasgada de um livro.'; end p 'Uma folha quadrada de papel com seu nome nela.'; end, used = function(s, w) if w == pencil and here() == r4 then s.haswriting = true; p 'Você escreve o seu nome no papel.'; end end, }; pencil = obj { nam = 'lápis', dsc = 'Há um {lápis} no chão.', tak = 'Você pega o lápis.', var { seen = false }, inv = function(s) if here() == r2 then s.seen = true; end p 'Um simples lápis de madeira.'; end, }; r1 = room { nam = 'Lição 1', enter = function() lifeon('r1'); end, life = function(s) if not have('paper') or not have('pencil') then return end put(vway('continue', [[Excelente!^Você provavelmente notou que a parte estática da descrição da cena desapareceu, substituída pelas descrições dos objetos que você pegou. Para ver a descrição completa da cena novamente clique no seu nome no alto da da página — "Lição 1" ou tecle F5. O resultado é o mesmo.^^ {Próxima}]], 'r2')); lifeoff('r1'); end, dsc = [[Lição 1. Interagindo com objetos^^ Continuando com a lição. Você está num local. Pegue os objetos que você vê. Basta clicar neles com o mouse. Se preferir o teclado, você pode apontar para um objeto com as setas direcionais e pressionar "Enter" para interagir com ele.]], obj = { 'paper', 'pencil'}, }; r2 = room { nam = 'Lição 2', enter = function() lifeon('r2'); end, life = function(s) if not paper.seen or not pencil.seen then return end put(vway("continue", "Muito Bem!^^{Próxima}", 'r3')); lifeoff('r2'); end, dsc = [[Lição 2. Usando o inventário — Parte I^^ Agora você tem objetos para examinar ou usar. O inventário é para isso. Para examinar algum objeto dê duplo clique nele. Ou você pode mover o cursor para o inventário com a tecla "Tab", escolha um objeto e tecle "enter" duas vezes. Para levar o cursor de volta para a descrição da cena, tecle "Tab" novamente.^^ Então, examine o lápis. Faça o mesmo com o papel.]], }; apple = obj { nam = 'maçã', dsc = 'Há uma {maçã} na mesa.', tak = 'Você pega a maçã da mesa.', var { knife = false }, inv = function(s) if here() == r4 then remove(s, me()); return 'Você comeu a maçã.'; end p 'Hum, apetitosa.'; end, }; desk = obj { nam = 'escrivaninha', dsc = 'Você vê aqui uma {escrivaninha} de madeira.', var { seen = false, haswriting = false }, act = function(s) if s.haswriting then s.seen = true; return 'Uma grande escrivaninha de carvalho. Há uma inscrição a lápis no seu topo: "Lorem Ipsum".'; end p 'Uma grande escrivaninha de carvalho.'; end, used = function(s, w) if w == pencil and not s.haswriting then s.haswriting = true; return 'Você escreve várias letras na escrivaninha.'; end end, obj = { 'apple' }, }; r3 = room { nam = 'Lição 3', enter = function() lifeon('r3'); end, life = function(s) if not desk.seen or not have 'apple' then return end put(vway("continue", "^^{Próxima}", 'r4')); lifeoff('r3'); end, dsc = [[Lição 3. Usando o inventário — Parte II^^ Você pode usar objetos do inventário para afetar outros objetos da cena ou do inventário. Neste local você vê uma escrivaninha. Tente usar o lápis nela.^^ Para isso clique com o mouse no lápis, então clique na escrivaninha. Ou você pode fazer o mesmo com "Tab", "enter" e as setas do teclado.^^ Então examine a mesa. E não esqueça de pegar a maçã, você precisará dela na próxima lição.]], obj = { 'desk' }, }; r4 = room { nam = 'Lição 4', enter = function() apple.knife = false; lifeon('r4'); end, life = function(s) if not paper.haswriting or have('apple') then return end put(vway("continue", "Muito bem.^^{Próxima}", 'r5')); lifeoff('r4'); end, dsc = [[Lição 4. Usando o inventário — Parte III^^ Bom, agora vamos aprender diversas outras ações com objetos.^^ Primeiro, escreva algo no papel. Clique no lápis, depois no papel. Então você pode examinar o papel para ver os seus escritos.^^ Segundo, coma a maçã que você pegou no local anterior. Dê duplo clique nela.^^ Todas estas ações podem ser realizadas com o teclado, conforme descrito antes.]], }; r5 = room { nam = 'Lição 5', exit = function(s, t) if t ~= r6 then p 'Já terminamos esta lição.^ Favor seguir para a lição 6.' return false; end end, dsc = [[Lição 5. Movendo-se — Parte I^^ Agora vamos estudar as passagens entre os locais. Neste local você vê cinco links com números de lições. Vá para a lição 6.^^ Clique no link apropriado ou use o teclado — selecione o link com as setas e tecle "Enter".]], way = { 'r1', 'r2', 'r3', 'r4', 'r6'}, }; r6 = room { nam = 'Lição 6', exit = function(s, t) if t ~= theend then return 'Já terminamos esta lição..^ Favor seguir para a última lição.', false; end end, dsc = [[Lição 6. Movendo-se - Parte II^^ Agora vá para a última lição.]], way = { 'r1', 'r2', 'r3', 'r4', 'r6', 'theend'}, }; theend = room { nam = 'Última lição', dsc = [[Com a ajuda do menu você pode escolher um jogo, salvar ou carregar o seu estado, ou fazer outras coisas. Para abrir o menu tecle "Esc" ou clique no ícone do menu à direita no fundo da página.^^ Agora você está pronto para jogar. Boa sorte!!!^^ Baixe jogos aqui: ]]..txtu("http://instead-games.sourceforge.net/")..[[^^ O tutorial usa o tema "The Titan Turrican" de svenzzon.]], obj = { vway('keys', 'Ver {lista de atalhos de teclado}.', 'help')}, }; help = room { nam = 'Atalhos de teclado', dsc = [[ Esc - Menu.^ Alt+Q - Sair.^ Alt+Enter - Tela cheia/janela.^ F5 - Atualizar cena.^ Space/Backspace - Rolar descrição da cena.^ Tab/Shift+Tab - Alternar áreas ativas.^ PgUp/PgDn - Rolar área ativa.^ Arrows left/right - Selecionar links na área ativa.^ F2 - Salvar jogo.^ F3 - Carregar jogo.^ F8 - Salvar rápido.^ F9 - Carregar rápido.^^ Atalhos que dependem do modo de teclado escolhido (Ver Menu -> Opções -> Modo de teclado):^^ Setas acima/abaixo:^  - Modo "Scroll": rolar área ativa.^  - Modo "Links": selecionar links na área ativa.^  - Modo "Smart": selecionar links e rolar área ativa.^^ Setas acima/abaixo + Shift ou Alt:^  - Modo "Scroll": selecionar links na área ativa.^  - Modo "Links": rolar área ativa.^  - Modo "Smart": rolar área ativa. ]], obj = { vway('cmdline', 'Ver {parâmetros de linha de comando}.', 'help2')}, }; help2 = room { nam = 'parâmetros de linha de comando', dsc = [[ -nosound - executar sem som;^ -alsa - forçar uso de ALSA (Somente Linux);^ -debug - modo de depuração para desenvolvedores de jogos;^ -theme - escolha um tema;^ -game - escolha um jogo;^ -themespath - endereço adicional para temas;^ -gamespath - endereço adicional para jogos;^ -window - modo de janela;^ -fullscreen - modo de tela cheia;^ -noautosave - desabilitar opções de salvar/carregar automaticamente;^ -encode [codificado.lua] - codificar código-fonte Lua (usar doencfile de Lua para carregá-lo);^ -mode [WxH] - usar resolução WxH. ]], obj = { vway('keys', 'Ver {lista de atalhos de teclado}.', 'help')}, }; instead-1.9.1/icon/000755 001751 001751 00000000000 12161555602 014406 5ustar00peterpeter000000 000000 instead-1.9.1/icon/sdl_instead.ico000644 001751 001751 00000063726 12161555602 017411 0ustar00peterpeter000000 000000 00f  h)00 %-  R hnc(0`͟~knlhyyyШfʷwsZuso͎{ʷy}ue߻sxjھ~h´ݸ׿ȼo{r Āզž߹׬У˨αӺŹurpl '+Ƥ}ò߽ٯҢʚŔÜƢʬϵԿƺ~ezws+1 bc~ymʿڳӦ̛ƕÝƧ̱һǶj}ܓș&+$+#'{{{rǸ֪ΜƕӠߩܦÖâɭϷw~tbwww;> 4:KQ39ZQH̭ϟǔõ١ۢۢڢڡןӼħ˱ѽоt|l chdibf$'cʖ֜לל֛֛֚՚ՙϕηȮθԺŸf|tgvw#(hl&*?PcɐӗӖӕӕҕєѓѓѓВБɍưĪ̵ѵŽwVqme<@ݚܚۂ uIcm͏АϐΏΏΎΎ΍͌̌̌̋̊ˊˉņx|~~ȰίuV~zsnoӴ⑔%*mY{ַˊˊˊʉʉʈʇɇɆȆȅȅDŽDŽǃƃƂƁ|uyyz}ĪȬnsk^>Aik&Ze~DžDŽƃłŁŁĀ~}}}|{{zzsp~suux¤sytB\g"1Ppr}}|{zwvvuttvvvwwv{ÀăĂÁ|wqޯjfvknor{ivu{wЫpxwtqpܯmӨhХfҧfХe̢cѥd٬hݮj߰jq‚˔ΚϛΚ͙̗ɔ⾋̫~رwԨhW~Xi{fijl]mkurmrpmڬhУb̠`Ɯ]WUUTQSW˜Zʥoۺǘ˛͜ΜΛ̙ɖӳ[PNDzf`SHxT`xbf]khdkkhܫdե`ȚZSQOKIH|FzEM^pxĪҵ۽Ƙ̜̜z z'#U[MIsS{Ms?{qOe}amjʺݩ`ktثjʞ^—YSMNMbXCiZ@VoMOWTs[lgku{ֹĘ>9 o/1k.1f#M DII>AjLMB|sd򴬠q—[ΫzìpZ_\l[xfmafb{hdYhRYYVXThkth\~"[9Wn(,J,-O?c~5Vq@("3UF2wX.whR~pD\sXavvdcXdgbT[ZVVQ{Tdkzcq[`UTr 46p.3Ne;Xo#';Y>bx5,%3CJ;bzfzrnekV8oyڑߌށzŅOWXg^PSly.B`pw~ n->a3;S/1HPzlemb@bu`NqiҘߌߋމs`#3[]_i@AdSypNtrtrpomfOY`Ͽumpz}]Q;tiUoxxgw݊ވr > E&4UACXII`26DWywvmfponcPV򘧮vxmprmwFbueYjr}Ɗއ]rl14@4:G$,=_{yU}qnpn[fw黾hzϻtY7b=@DC܊ވ};HU&.=v|~}rgmqarpWrꧧ物Ǣitzdijzߌߋށ!-C$.<:JTNbm~ndefytrbPywǒϪ藻Ή}ޢ勱fszz|asђߍߋށЃcjtyxɁ|dt|gvtX\q䄑Ԯ郕҆㒿ߕioߋmMam{ʅ܃܂w`~Vpfyxqz}߀Љo}ߎ_vCWb^ujv}t܂܀}|yvWz㞯ֲꁜㄛ扫ɝ㍹p̈́̐qk~Ђ؃܁zn~p܎ն늟滼ϩ璷ˆɓܝ䀢nzwЏpun|Ԕ帻쏡ް׫菪唹Υft禰ٛv𵺼얪˟ӭ鐰xz|ס凧n␿u~|ٸɇ싢q|耚mvzxmӇȘ⋷xq͟hii}qtуrү瘽got~u|lǤ}燩qstw}Ӡ䒼ӗۀk뢿rz،z덞ۙjopݵ゗syȖvkqtҬt۟sӔ߁|zpx|~wٛګڰ}Xvyꎢ\pz횾{~uz猟~ā犚ҫ̝ܲ( @䵲}{m}ⴲͼž}}韡ڨ¬?DWZϲӻ٭вԾѷQUdfجМħ̳й|۵Y] -1ǽРȕТȠ£ɱѿ©v HNHMljmƿȔŻ؟ٟ؟םҿɶѻȼ{>A:@uyux9B’іԗӗҖҕєʏƸDZůu~t~Þtw7L|zŊ΍̍̌̋̊ʉʉʈɇƅĮ~~îqehmpK`~ÄDžƄƃƂŁŁāĀ~}|y}vyoRnyײvzxv߳q޳pݱoݱnqrv~ņNJƉązݱpk~lnxm݄~رrqmըfϣc\ZXXɝ]ϥh⼇ɖ͛Λ˘῏vfn^cW^j|e`|z۾wljӤ`ƙYPNtG|JtHvOfqβė~*) h61KmZMlEzWpuhͼȡkЧnå{ltZj`pslmurouqyekg\mu`V'k+5]/8^+Ce?SE9h?跰x[qSyzytxoka{zp_ZY\ z).k>QmQ|EfQ;IPAdzyp~̏֒ߑߊۆqg?Z{d m5@pTyOrmnl`Uvħ܁|wlu`}wz̃?Z1EoPJh~yoxtniV𢲺ƛڡvvcI^ed~j4AP_lygipf~ﲺҙ͈y|ߌmB[pLamo{h~ss[j졯ө哤Ţ啼ҐƏņȒ߈wz_{|ȁullts{Ɨš֠ٻɛӠᘽљ֙Șw[wn}vĂـ~ywzΚ敱޶Ǡڒϔ֌~Šy~|uĨ깾靶Ѧ⌟۝wʈ̑ɛ̷͟뜷Û䖵{͓̑؆Ȑv‘rx{發πだ𤶾צ睽˲頺Ɵ˝şԦ剧~Ζṣ̌䈘⯹۩狭ڕȌ~ȍלsʻ畹͈˻ƌԙȎ̭Մn˜埼ʖsŕǺб( ڶڨιķ).̵­Ƿҳ"'_cv֛՚ÔŦszyʈɇȅDŽł˴}sݰnХf͢c٬jʑō}iskͺجlhYx\u_~f{30y*2]XHB{atq^jr w.=}Sz\LoՊtrCWrTqrÒlyԠϙ܋mfvszΠëϙǝАɸp|}φüѪֳʍքǎ؞ؓӣڒѹǝɡՙӒᆪӝǣɦ؋ПûAAAAAAAAAAAAAAAA(0`  2 ibS9 pR5 /0)k\ʷul]AmT=)  2A8(sʷtVK6{`K6$  ,+*)  D`T=pUK8~\F2! ]~IkB2 % FugM´ȼjD=/rXC0 T5&I/* fižŹh!jV@- 7aI89>9,xyòƺrW$ gR=* 42h^JC3ʿǶseLcN9& \6~l%fG$+ vh^GĽӠߩܦÖu`T=_J6$ 64:KQ39PG=񽷛õ١ۢۢڢڡןӼnWJ5y\G3" 1<chdibf$'c֜לל֛֛֚՚ՙϕη_F:(wZD/a#(hl&*?PcɐӗӖӕӕҕєѓѓѓВБɍưŽoL(!jS9!'/3 uIcm͏АϐΏΏΎΎ΍͌̌̌̋̊ˊˉņx|~~ydA(!V5  O%*mY{ַˊˊˊʉʉʈʇɇɆȆȅȅDŽDŽǃƃƂƁ|uyyz}mA6$D#  &-5>Aik&Ze~DžDŽƃłŁŁĀ~}}}|{{zzsp~suuxOWQL' `~}B\g"1Ppr}}|{zwvvuttvvvwwv{ÀăĂÁ|wqޯjfvknor{CTRO) Wtp{wЫpxwtqpܯmӨhХfҧfХe̢cѥd٬hݮj߰jq‚˔ΚϛΚ͙̗ɔ⾋̫~رwԨhW~Xi{fijl5IFM(OjfurmrpmڬhУb̠`Ɯ]WUUTQSW˜Zʥoۺǘ˛͜ΜΛ̙ɖӳ[PNDzf`SHxT`xbf1C@H$ gcLdkkhܫdե`ȚZSQOKIH|FzEM^pxĪҵ۽Ƙ̜̜z z'#U[MIsS{Ms?{qOe}1@<; p@{ݩ`ktثjʞ^—YSMNMbXCiZ@VoMOWTs[lgku{ֹĘ>9 o/1k.1f#M DII>AjLMBC7!)  P=!muA—[ΫzìpZ_\l[xfmafb{hdYhRYYVXThkth\~"[9Wn(,J,-O?c~5Vq@("3UF2wX.J5 @   BaH%e6\sXavvdcXdgbT[ZVVQ{Tdkzcq[`UTr 46p.3Ne;Xo#';Y>bx5,%3CJ;bzH'CTjuE?3X@oyzOWXg^PSly.B`pw~ n->a3;S/1HPzlemb@bu`=d}mK+ 0Tm{s`#3[]_i@AdSypNtrtrpomf$-vX7  7DELalĞ|TpANR]Q;tiUoxxgwr > E&4UACXII`26DWywvmfponXPV&q"  [r~Yq~|ufJ7$iwS"pI8O[~nbKGMutrbKu&MUVnzc>',x\{M!).=4BIxy dyѲNbmpR>0>FQjxdC$  $6oۨYkt}-8>lae՞q$/6: ).Bc_r|!$k\pzze{ب &05&+B(;D>[iD_lYwš:EKK/(oˬu?R[ % D`n!(*qV=+!"").U~`zF#/KX9oyq#,1l\ND?AK%-2~s?PX&?JW:^n+2R/DOwO`h2;@#& &*5?DUfoǀ-9?M!*/v&*0 Jr~quk3GtQ~GSvƐtTJ[cYnx' gw+0Wsўpuݵum~* Q9WfD^k1@Hh'+Xp#DQWi[lu ;Ua2Tw YnyRfpM |8??( @ %%%  `n`F?6' R0   [l̻¼b&"]9"UUUUUU 6_;(%D=/«k)%`9"UUUnO"2OF6ukV {P/ %%% ~BN YxbkdPS0  L?Ip  {rZкǼТȠySJ7iE' Zi HNHMgfhƿŻ؟ٟ؟םҿȼyJB2 nH(%%%%%%  :@uyux9B’іԗӗҖҕєʏƸ~pV0'V7  +Zpstw7L|zŊ΍̍̌̋̊ʉʉʈɇƅĮ~~wlR)#0UUU 8FJ~mpK`~ÄDžƄƃƂŁŁāĀ~}|y}vyhnc=UUU((6Wx|Rnyײvzxv߳q޳pݱoݱnqrv~ņNJƉązݱpk~lnxSonBUUU$#5j٢~رrqmըfϣc\ZXXɝ]ϥh⼇ɖ͛Λ˘῏vfn^cW^j|eDb`>'"0YljӤ`ƙYPNtG|JtHvOfqβė~*) h61KmZMlEzWNTE,hO,zUЧnå{ltZj`pslmurouqyekg\mu`V'k+5]/8^+Ce?SE9}]26( 1$c}jL~gHyzytxoka{zp_ZY\ z).k>QmQ|EfQ;IP=bwi3 ,o]km㉴qg?Z{d m5@pTyOrmnl`8[qi>%%%1>Ef'17wri3CJD=/whN}vz?Z1EoPJh~ynP|XndM|3@PdoTlzc M. fZB$oZ>^ed~j4AP_lyAat ZWap/J\`"  )16rBRZmܠ;LU!j [)5;qmB[p7M[b{2IWc[_sV4Re UUU QclOcmYz\xρrpJi{tj.DQFd+5;Xbx !#= À??(   TTT***'}t`i`N ]@V!VZZZ# _cu֛՚Ô/)3 35^szyʈɇȅDŽł˴jn`%TTT?VV}sݰnХf͢c٬jʑō}is]+SC)d֨fhYx\u_~f{30y*2]XHBaU9ZZZ -rrg샥q^jr w.=}Sz\Dg}Q L`k{!"_R>rrCWrTqh0K[i(@O"*.OWmxXq image/svg+xml instead-1.9.1/icon/book16x16.ico000644 001751 001751 00000002176 12161555602 016550 0ustar00peterpeter000000 000000  h(  % awh}+ËڌM,=F߃rBcx\XmxBIZcRgs:6GS .VvWMmE"3;U0?GV2KX iĵ&+.@f}1:4hܭ% A`pz^|m\nwo??instead-1.9.1/icon/sdl_instead_1x32.png000644 001751 001751 00000003205 12161555602 020162 0ustar00peterpeter000000 000000 PNG  IHDR DsRGBPLTEDd)s -#$V.7J$.C'(zR,":Wf,M4/g/0$ U63@=20?OH>/g=(ZA,V@DFGH[D6q><.Ohz@AWL҅R C7W-tn!H/uShϮ=~ǟ[$9N|>-MAY~Mqg/@ !X<IENDB`instead-1.9.1/icon/instead-s60.svg000644 001751 001751 00000020646 12161555602 017174 0ustar00peterpeter000000 000000 image/svg+xml instead-1.9.1/icon/sdl_instead.png000644 001751 001751 00000052001 12161555602 017403 0ustar00peterpeter000000 000000 PNG  IHDR>asRGBbKGD pHYs B(xtIME'tEXtCommentCreated with GIMPW IDATxw|ӶhUV˽ɽǝbcSC:@(C SI`L w6m5KJݙcfwG,{~4Y><<?GO`Plܶ$k l?C=yX℉pЖ(Iҁ|xP k>F[ Ur}_yphjh푳N$*ST}Y#9%` 0?Co#$?}SNthʧ(HsF$k(S'$ ?r^weI֘8v piVF* ot2^MU>YSr#*2s'fO_e")ҷOQ(vpXJN5_ȡ? A9NdE 53S%IR 0vDEL$YAU+Wx<5onʡ)lLM~& F) g]絗KϟU\7wO J+kl+Mš߾|KSqg>V@Vm3(K=M=MVL=ObS{o:nl;Xi,M@o(5`;:N0«obО/!"Ir Kޝk£Ͻ+71cڨ{[Z;ᗁ@ ։B!|iE_jNQ|zg>{>r,<|<10la~~;Kγ⃀AHK`m+_7VNLn0aw.|$cAv:2A=nrN CriQ·ǢƟ(0Ag 4)J$v b*wf;e%A6|d55G0-oJ/t:F L?NJnVj8 V`;vcS^Yg! ~J ~ O^@U/V+ڦ~yx ٗdVg8#Q]SlGAM0JTފ 1mOb&qg»۞1 q3_ed7jDl (lۻ=pĠB+S/sg.}ƦVXnF)s9*PNzcnj],aνs#DpƴQٷ^}}{0o)=Tu2fӈr zeܒ~9}鋑zé\D঻^`oi @1^^Tԓ3Oj;4E +q:5N4]lVbV.}QY>[f^5}feRɹcUhYjuZzɊ ˈ]Q?(*zzʚt` ډۢ6Qz$IwƎХXzۋVlQIV.$+J8 oЁ=ʞ×AnN&-x_3s0f)ښ&kk޶5]s鳎߇S1%!X{de-GKOSN8FMU7S/ ud-|\W53#;37N ?hX.!43yjdI:ߵ'w;c%+0*Mgkݵu{ToMZ Bj=dPi!/Fo}GEY', Ktbfe[7;?'pT d޲= }B !-%iCһG,!KPUSƭ.$N9>$ԧ_~z0zI:[QZ1ORAP7#)1Շn9G3ZJL+h0P9'9,;P'J㧌 TOQt:^]*>/5HHvޡ.~NR6??X` 2uیmعl/ϜکB0SEcb;a?zO^,+𛭭ъ-%;PFȲ >\괹M&1qnAvf*ޤՊ !Y&6Pyun3n';3hܫ Q R6!+Xkvϑ?t &E v8~A'?z%dgw;_jk) &mXqǝq/=qR&}+r.xs9v6A'fQtJ( >=tR]{5_][Gyeu=ޜIeqc _{ǃ/j:`Knx.,^>׻:ʇZ>$$N(qbl1@nGQbH*'c%ʝXc&2RG !!BLy󃯟?w>˧KRQU$)kFK!R Sv "૕WZuxHo(-tν/VȒ^`;cE>[;vA]J - q)-363gx,'{~p_(Q,hh'.xg$95o*N:sv/滝ecP g?4mm^{o5K@d[_E;)]źnQf~PQ+~Ab/8c*6o e'pbRBܵIs9:-łΈ iItD)C9oKoWeDkN?eAqp vUTI#{1id7}Ki &Xv20t}-Vዒ1c5PUHj.1UQxo,$0]eL }GeYbԑ u۾!@_?q㟺 e`.k#JپPFc66\@\z{-Dߗo)Iqfz9 _˩vv] ͭ^{} 8釽3ѭ[P~Vdz=097'=oDI?:SƄ_q;i(mi3thoiwFK@k[%7RQU'ŀ> Sx!xEKؼVGYc=P^aˎ:eJLz֔Cx/Y `xC?U[|ք.H"SeQ8*0>I/EI}F-QcзgAFRz;Gιn>zuײaG aėc<eƽ cK -]lQ5[Zr7JQɠxu瞃͇kĄJgN$DD|ᨡ}r˜ !cq b}3>~|֯gSj"Oְ~ W|{0Hз8sa"_SRv٘1KL֣ȫ_ٴp.,@,6zd!Db=n<\\U\?.3{`BػshtWBؔLQ^:͝)Ǎ.I=sy 9;xmt#k޾S=qkwC+;gBuDE jNU +@XJ`G ; 33$EU$\C{W, c:c:\MS8e3tZ "t<&x_r׵SUy #zgtBPq:p/ѷ. Pl..>cQ}젲K˦ī6O,=Rr#:IDs\tY@&w9qiSq;>vv%EysteSFˁ*X(|>lPcras.Eq~zLjIq~}wy^eMKT۲|vq y<7k>r+Vx܎.?aGʲBGmDJ+V=0}҈󟿋PΛ.ͺV>y쉓nDn3g-xw?zcxbpepSY59Fk+˿ɢT },km pxvGoln>\b^[%aB)#5ӌFSd*-;+4+1Uk쫚\F X\0bH{C8j7h;Xj1{p~E|ݸs`eq:5/OqF{khޏԤWʴ;Qv^!1>7-K7:w֨N\u?Xk EGȈs9J^{j3O9'M)atIzeЍܔ.ś" v2B@nWk@όn/f!Kۡ*M-," .\Mhu?q阋9SSoe薿s nCKͷґk/wً\#?c_>=$Fkjn_>VׄOsЦjmð; ħ7U9d >!a9ָ '>m`ʻ2sVm t/ 6EIs9't_{N9[w[EuhҲ̎@߃Ni,N2{o֩5p`SQY̜4"+-ӅLMm5bLfK%]&.ێ*HCZ+rDY*5%)ϼ>5ʭGꚸgEk1 }nXfZɲÝW4⑨ M6m++gYqA~J$'Hw߱aJ3$P8܊Umʄ-i)INfxr IDATƦʗZ<ݘK6XpڹŬ qB~Nw^Ԯnap@YVe+@ҙ S0 uI &/AdoJ~|oqՅH/w!+6ld!( zSǸ8O7ȣ-D2lw]Z֔]ZeG㕖{-VqΠo )[J{#Ͽò߭^B(-OҀLYs'O)8R"0`+k h1Py 8熹-=7!g}Izߏ$ZWJT:=g7 3 Uh 5pn֩B54Rj 8=FBR3^N[:n/=zS;-ݽ'^z^yyx\qB_[')F,⑘KLp*Cg2MS$So"fwظKt.?gubѥyu[sɓ(;\Miy9e2lH.17>}h1NbS,qC 3S% /a jQ-Pr vFw]-ڛ=Mа{¼뷟KwJY)Zr_ hJ0֡U&|I `0#EeD" Pv7/Cx9<3x8eZ U|1 Ëرo?{J0ڊhmq.lǾ5&w;c(Iq qmWV.9ϻxQ\ |d=5wP68͙H}*gyqj2C\u(?f,ISJ ?e/aSs }s1LޓT{?0f NP C!ش};S'拧p UJYMSHwr>y㎡3:r \EeY1{l& 1;mo%ɉ|CrJM6݇ͬ\6殮Տ+^#ђ2М.< F;dbfOQ}T9۹ט?8DH}?2YэAiev%?N&G˒wӿ(܌vb[xo[,ZKܻ1H-﷧[ыG}m" /- [}s[5<?;RVYKeu=ջik vvighX:ô4ȁdPQKlB  É4 !%PJǡ24텨A_nhs9UYC e ]ٺ +w?1hJEMBA $)*=zݢӿ燎}dG buQы!!͉8lkfo} 8k}l*ڱʫY~g?i $| ;ߚUni*' 73"`PkcvOuJ\Mxe^ˬ7[yVqlt!#!nrg z 鞛MLM6kG8窇SZjuۢ\g46ew/zMyϹw9ӕLыx ؾ=dJ`JX{U͚۸Y6=LFy;6o?w= !l8.lZcE:Eߞ'x+/˩Ϲs `0:*sYSe9aMc_^_HacPn^x-z#/ Wl1WԖD!udڭ*bV Qɦ|1}1G|VDVjd꽴yzfw .`Z Iw'Υ:,)1_vdLЪ0YA0d2rP4M}UM,;yTo7qy@]2 OR2s{}p/xv$rh)~Δ$\9:E:Hpi'|0c{0X7?WfKM#HklUhiwQ9ְX=sr>66, xj465fH9O"!'HEVƞ;ݏ_b %DT`!<|fҩF|3VmMf%7?vj-pAҳ @vaONF[ g ٚe"q*uׁ%o8Fv>@Ak uV6qr$SOBѲkrz?l o7qCÿw֗&Xu/z 1oc(lP,1I JdLFq<9S4Tvͤ$ki㾧гP*Jy;Ίow(2"9g1~xϰ\a'K6T0IG%8yZI\9)4Ւ[dH!hC&Lc㩯o]G@+ R{flGֈK|[777"@46R'to\w,߸ЂB[[Xl'Ǐ+f`-?+Io*CA3g^Ccs6[cp /l:m^XX Rt̻l_h7ļ>$#SHq[Ⴁc: u<4#5p!М.N0 +qpܬ}VmŸa=ÿԈOJ!5;L=!(-~TC70 6 oyy$7A0oq'+&IȖ+>'}v0_ onE  4gA񠑴ϕP &P\4Ϊlmjmy;/Z )_U±' u}ʈ 0T8A35R2ܮ%l.7/M^Y)AO.^w'b 0PN|6g'\cy}1A|b2OfMctF .|ūv0pTȲ(hFs\S.ohv!e8%3HvRȚ|:X^AT~k6odrp(2_lY@Ud>^6g$ zkiU523| GcgIJEANQ_Z j&z!٦5 E5_8ӅrpݤmkB~_zw/Mό BqNd&:I1 `´$!+4eEEV5́9PNT͉9ZW")n)NK.TMD,oFE (+DB )ͥP/+Ԧ'iTBrQpkTPBRY\,uJׂƊ}4WM',~l%tIF2,G~=0K0 MCkʙ_4 IIԴJx]2,bHji(쭬BX9NgjN7=GL/[-2$[!*L7(;v;N`@O#FZsq$O B⒒V1Pi0T|m.Ij'հC+@|VP<(NFXѱ@U ]F(20L% #,I,.CXnaCur tÖ *@ [%]E .B*HY_QUT4DU4KdsȪyLRB72-HZ$ )-'_HQ,Y8^Ke;Ob`-0&Bx/uy=Q{ "#3'ɺ>Rh H,j rս h 3#6ҡ׎?VǸ|_SRJ4;a2V,# Ca((̻~2B@Ba! dNH a !d޸Z_+('-_ozN'%"P<`M~.Y$YFFBH${ }P ߴ"pVYAPDb &dwf>uq#'9ղ:4 Cq`h  taI#+#x/(mX@q DQ];IObV,M)!,W c.HfMW Z Z^@2G xTM3]9P5fl,ɦٷ ,o[I=xj{盥y GUW[8A}Eh2yMT~N0hk.z&&3ȲHaU68f KYIJ[-mm$%7lqߺ0Lo _PUEDb1A ]P=$)+BfD$˄+HˠJ44d{;\a?2$f>Gn?uBd~ٟ")d H#K80p$,ǀ3L ewc#7.OA=' Ԫ8]8h9RIJpHu$'Qh3XѼ;MSQөѳ@%zk$?d@BFXq9 Iü8C1[ [do A3`4H#$I-b R@d+ݪ^ `$OYMD(e  K߄-d G:UCIM|c'?gVꧾzC55}àCd:"˲5L7d(B4XK(.P(W_f*,lHf/+հY0 3`TAahBBۊF)xk, 2P YPL.H@[Fd"B%%㼩2!pe34Եh1Tt́Sb\[A 1ыD2/aYv_RC' -[w{8<>NW~(9jB6]A8ѿ C Bݪ!*E2aX1 kʖWѻR+e wI6Auץ䒈SySRlUJ2-Ch ]$c(* &/ hfp*:@+#U4Vj`W)yY2IIްBAnH'C˟өX\.-ީm/62arrRp:*TI:[hi"G?܉)ߍi9L6V\`F8(XKaRE5g~V#AVoPfM­JT b QeB@G/K%mA !̘Bsk+߇V=$&&l =x$Yu ՜v kut !4a˖m橧>Vrmg3xp%.;ʿb $V.GfO(́RC>FLcȑ\_d)"|۰]&X9> 6U˼*V vV hp\c2嫫l/r; i^܇I2iEm$ HO<>'&i𙯅o~3@bWlS7>.)bF-G0@vΝhX)[Z؃6ok ZiQðVnj-˲@F!aV૯lFNzH?P')э, ~ɪahYPՐ8ea-CcO<=8Q3SP\nfVVi8P%,˸\Nzj$G(5Y<8oYkN밠B M;a+="Y D,TQ;k{; Zk+Gf9l8׃bJ%fx乹2hFT?nc-`1GVqGf23罁+%oבȟI߳ﭠ[n9 ˁde%Wώ)@j@xCœ!"z[Dn84|xGn1'PEgTi/ii|?dDrrSN4ͅᎱw.Pn泭|2k6XM#VQ e!NzHauכw0@2G"W/zmZϖt3$*$'HVVS py<8q`% +m ȶtHiozK}Q$Z9r`u6[AI.z9z=NsxYV4'j V\hG t 4jZX/& edﺥW'rޘcQxTm駓ԯ?"@}\fÇSz%d#٩Fݤ)&8p'$Ƙ\GG8\xDf|G!wTΔ&đC{ݳڕ >y* ʍy 9u8\6%pSMs#I~#!=uȎe`77 pLg4&<ZbRGl^4s.΅ϵ-q "}t|բtFDNloQ_u$80i\.Gw- a,G+Y8ӋOIgGyT ԣ*l?WRˈ1vF,g0bR s服7DIDAT= àmi&%g⽩WtFgQ˗EtPq^⛿(tu4;m xS)EynB:wװ\@RV>ۿ^ĒPz_v %\:9 ؞yf:*<>x퐿fvCH+HJN[am4TQsh/)+''Í㊝nCB5n#QȲF uo-H-t>{*|e41'+55d "j9vב-A.x N\7wC߲kGm di-+#0~tᅄ-u~'ģ*M$?}S_UN8uB 2m&,)BuaVmٙMZbj ٳ5Bznߺ_,,@]waYg ` @Q`Suf}\NzHöu67kojniuE)h8\A=(u?q|'10aC(3o7 aDAj0d_FE'/w*&@[?;$H5kE kBM,/#Vt"xŻJ/e#v2 nkkQ>v@ 7o/xC <תVpkd!)ā3Rz5đ't1rj ')+2{sb 4}H u襼lW.{^|T|7s{Ym@6)弐"/[<&rdQM2?Q-U~ϿMA ,Yedg;f¹Z 6'%)B_naѲq'&gf&':PO;f )/+ 'e,j[/sE`px-k.,ϱM) 6 m  2Y 0THC AFIb\|wn /wWB$#sTUNp ZOE服oJJj 0Fx , 5ɩ 1%>@?(q45C٢z}yN?W`l:Pfİ$+`so ˀ/rc" A46 8]?3O6lxQU9Ah&A"*k`"{F-gr,lƗ7Je9^u8Np#D1 U/-VU|h?/oc/H<1iLR S`|"dKxal=yX 0"v_[ 8΅u *A$kŰ'@qQ3܍۝gёcHtTC=(TRv=r/G>#%Yкvw覓z)tߊb]]"sQ>Qxb`k5?άlXU"qβ*Na|-4L|( ^w2bċ`%>QA$"virKQ^ɱ<*J3ɠA̛n6 #K& z#h^;\sߒ'f|B c`sAN݊5O4Rյ8Jt620j\DWhR^=#ΑXmʏҼ "I ':z9B,QQS ~ɮ& wꉜ W30iht>b?حWӰK U05}QTgor^qy2Ţ\rt'͡mܚwMlv:=Qt(ںs>ɃojJ}?>˯n} *.Z{qo?k;I0T'ct|KBCY_}3jG9(,7Hlбh(2ZDѥXUEzwq\}bӭױoכHx}=o?x:u&Erb0{@!C/z?A\S 1 7,?ʟ>*R4J_k#jBDQ $AƱb 0F{l ֬20<ޯN1ӺU8^t]ǦueRĘrH$kHfvi/BðCf휚8.6wv୪g'l\.1ıv n (1c\oe'=?iTwfm2 r BHík0qN8!G׋ܱ/KhT[ΫZS{smӳszzZ pzd$0|ĝ@p019ž~ W-btWvPUU=7c&˰VQf_W33fX;8 IZ>]7#~{6"69ʲ" H'a~Щ)˪)]XKtf7Y~_Oaw%9HEX?j "@֥ˎC yck.^m~ ΪR^\ : $=, շ#Ѩ̗M~UTE:N'[`frS_kXOWkۍf4AJg H;ndY{wR^wÎ2KgI5mtV YX >)`$99u↫Qۛ6т3M,[A8.ADQo=G:QVSOyi?rpF<{;l0,Hh8S"!γK_ n|)BCL4q7jX\apxq2䤬OY%A>%;tN|ߎPS8逷%q :6NU<^En~ Atzk (4 H,\Layva܆"lx3WS8j }3M3Btcx['DyrOuGqBdI?>Mdfh;W-2D S J? vt}ׯ'h}=[dplE3oHaSB4)cf@y)n&L3I3u-;7G2T 6@MNgR<6d-LJc f/kzcS-TasRGBbKGD pHYs B(xtIME1iTXtCommentCreated with GIMPd.e IDATxwl{r~T]{X555ƒb,]cEAD#pzmcbk_3<<?-=]ӶG7r_rā&AN|\!IN,?&;t2驉xX]Q=ej!'} 's E HKJRT`1vBAng:>qk~h3& IRd̟$ `6瞼]~(ZjJ?`r3\!Lǜ}ǑP-Uctq~see/͊b1'|[AZm(af%>ցj3Ehv>aX$ty(V{ }W!AZR|y4rcK(jw_~y& jO?Zw&j)4">?NJ7PMfzrZy9{,\Ln!]΁ Yy}^_)C(*xX?0nW|)FyEJ7ߋ_}\!?9\TuUӸ#.6N͵c~#[EC }G}:dYS$NMsa3nY M&~AQT}}9N.dl^?{ !(K?E᾿/-{C xxzO[VS~ܥXm!t@:~x>l?ސF؍0i"' ߞ{y"= ` >Bn`gy5nLJ#.Avf*ٙ)f1}vKUm~{z8rj'`[q~AiZ[ݸU+guWKj= H^ױbfϚ)LvFr^k_$@\M~/HNm/-SL#WqG}hw+ )1mNרʹJ8̣9p>ϸa$̔yicx'.ɴ y~7NۭCEM+v {W>k\!OgLj/p"Hɋq#AӘ;6.=E9D7 f{5U'1YCQ#^ r!*媛egy^G|oׅ]| M0 |/ع'o]taV2 xbo,Ȗnb*fSo`[YBH_W|P ;x'>z댗>x]e(/zGWW/23spI{Sҝ{ץʇkF愉|iI"!%]ݽ\v?xTd8T&/03{jd _J/9͕ˎ?c_K%`F?l7bˏ Vp,2!.blRZB%pI:J8%.*zX6Y XoQ~ڍ3s"5hx|Mtu{ gGyDzf~q韨mNb6'+M絻IrwvusY7ug(͐|;1/r/@}v,Lw ^vzŏ11dƔCCN9BZ;bźou3mIrc7P2 .4sl?]4@~?d%3chc>翿o~RI ?˔ :’6?-CO͝o|UU(_͗ L:3s /.$@МYc {>,ۍ$'% 9@b@?YQg?+K>~Is(.bP]oPÌ |g7ӥċ? \=UON,YZ|%Y__GJFcAlP]^\ׁ3 p)7 0cbd^XSϿܯ^}M}.xퟫ&j Puwd\Ng?^JXtu8yx vȧ$)}7.aw_z2BsblV Y}Ofz/ϕk6COB>1s+yii1gf ͘)l⡧ͩHvR1+W[ewZ{6Pr$&HIvq`>dn_z|^πuJW+*5Xj=N;=>aQӿi].^1/{C.WM}oĤ#_u꧱M'jCLX[g@͊5Xn}͆ od9M)jNjJ$Y, eU5|74V_9Y)}@>WJ}|Mc~ғ #c#7,>?} 6o[#x~j V-9v>h|˸|>4UJG]׍*鯯txSHzz<86'gb~:g[LZr|O=j|Sj*1-k *aM˳4ӮYYF-aHP?B>q)IrWMgʬĨĊsϜKFQRJTE !tKUiQdk` .!OjπjٝMzJB 3=&)*pOI>~Z??mot̨\UnϰF[gr*l.cN:J MHL/>x1v+pjwM"IspI̝]ʸooU **+K Mͱr tT\x#9hH&^Y55[xv?4l賕l.-:,cgY5"cWkx_GS\}I2..&R/_}*ƌ𚤄k/>C8l{dLFUִy𥠪>eۮ1CsQYY4;8S7Gɷ:_yjQcLN6L+C|O7gp%+aM_ui.57cg\& lHX9=tʯ>ZYxz+1E}rR|Hv )5ln?[;9=UKz?YWZ# 0-JQTz}<9D+Ϛ3k鰻wϖo' HB} Vm(Ί00ڪjB|HvFѫi ;kڸO~ݱLIaŪMD:8|au( +7.t`}x60p|~N*o=~ 6-gͦOcK^{O^Wo~y> M3J/i5d:OxoW`q93s¯z(9I>q_.p>ZAI6)%n7_vT̵(HpDZ,% T7uPV>mVΘwn漓BG\4Fv7SΘ>NoY5h{Vx;~<#}F`~jr2pحX(*$\Koy?45z)o#-tnVn7 ̛3HZRܠ=x?ЃgMV}k9Ow|#2QF'Kgyi5c2\,hhcPj%E5wssFIq׹n͢ilZmJ_`k6+9؃wʘ⹪CN3TJr_#9)Cg)~)<.?>}v(7|,Nc߿*nxa4 = v| {L0X&i]RQ]/&,UMESUz4 t-_\4^4UjVz|.x )z{ǭ`~|kd[rr샊[=S¾%OCUhz J?^7,ne: ]^GKF@]7^ ;BZR(Gˇth=:2s_zɟJLtTen*纋S%;VGIƍ.-Eq58lbltt{zHrRJtkAKVeHGcnp鍏Q|Rr,'JavQ,?&+">`=z٤$,]qP3L𣅤A~i9  bdWuޯJO˹2Dd =?4J||qOMJkųp5).$ՠxV>u5 aU?iW< \<§6q1d9xYd2RW?m{hQ}p-.Ϸ'{cW>yU,^VOD^N7>eMU=)G; &(IWJ/-͍|`>keʯNrP:Wn7ȱHً2)Ac[>rc7EU$n'|r' Z창=*9`rPɗ/!,|&3S/PW7D@bTjp;;$iL˲R1|^+p|p$}??-+OCJ۴?5Ҳ]+, 3%Gwo/X&~d1o#O:p )D(En`^QV4ZM08@ۉG0ͭ~-x r cjWԷrCŪ?zT'Ҵ-ҽb9 q 1KK9idtx?peirH%srC7yVACF{%7>p k4򅷖#Wc?T[w^ARF. >yr.c 3s^Ʌ~d_ܶfd$kxrsfz^liB߇{dcē Z4HMN}.=&z{>\y7th)f%6@ ^#6-kV5'p s7>\ |K޹jY/:CJnb7d:>0rV,p黭ZQ$;>M/Zث.Vʫ=T-B"yu^YLPŢ~'}_Ԏ\}g3 OkcbA(*هXg"?i+9055 3!XWegg  0ˎu`r^ =L0{_Jwh?:Y5t=H="[/]Ͻ~Jl\-u̝={n83bd N7u~۩l$/#"xfata 5v5# IDATf"̼"NJ6~9\4+G*#Bv&ˆ:+%z ƎAǃCEvA:;9big%Rĕ">Ƃ%[/ň)sڼ %X*(Kfyp.&YqjlӻHIs꯮hdy+/뭨*u)̚ZVoeZ[3}{HI$[IE)¤aTO_ٰbo/aD[`8%toXՉV8h蠤8TWLw| =ɹytpVYȌ#ɈxW2URk|9~ !l a,Y܉`o|6fN) WB3np gpף`)$b,BA BHi($}Dg~{ٱB$V"y;bUT_tN m$®Ⱚ*BؒEixzݼŲ̀ɳ|+o,z3[lFRl[|Xd|JEFyV;׃EzIRɉMHi>_fJ\v3C*^!WێݕNJ `Ԥ|\yAzЬV 0 2r(24/}>N>0q!KX?4=}kvXBۢTK9!ǃm8lW!>[m).F:FZ1'Ջ* vҲfP8a:^] -w 'YUJ_Fj{fɨ&}~dɍl{=|^tn( {/9`7H+9h:H bt{dw1~,\i]PeMj cLJ0L`ڜ=ͤ19|z'GiPBj4jC:Hu%yj1w_duc 9"*_KLv.5|z/&5/EL$%_sbVO*#jcEs{ y8s(9pJ,1"m|zK2ro:2.>1GèJExȏEquqtx>O7 Yb{)EB3+çb._\|.,}-xsR2¿1-DI 4`Oz=:xBU(UEU54ݎnMO4!G6@n{/$cbX׍M2#A2di.:ؗKMd{jBW+%{.5b7FGO# cE#@^~L>*EC"$&Hx}:]n/={tzp=Б/aDF+_>rq3xOH~ EgC Ów\í*\w~uB) S PMCU͗P](~VV݁bY(*vPeLI[#aJcjk!%tyWZJFJ,5U& ځ98ǐ9GGK=n%/b'a'KpHi uTCa|>.Hχ{>?º2د]MgCxy08Ʀ4m_KIp%R=Xf U9"0/0@H,ˮ)" WEi4 bCXP5s[ELBAbEX%qm`N]% q S˷!@0 }>^n|n7@NKfjq +txł"%FKk'=-ێ /@Jnf&㛦fzI=!4V CaSv$0ĐCm4P$)ӄ*](t>]zg-~+;`O@ L+ B A$_|#eΡ ů|2b,6ٞ>XǐjjV,6;jݰmh`U< d'G\ MSzuTE$-5FJk$d* "L`D@Ec3t/Mn~{§.ɀY"L :/8 +T4BTua*?tWc5p '/0D^4K(ӬlGϤ"?6$4B#4Z64Mۛm#ŷSAUU1(!&!Q3W2jQhV{pDT׺@ z|CӂZ@o?*CPv~7 {l<>iy}^:{u=͎Ow;=-u$1%d;AxR|X,?#eY(Hh;H#!(H]`lC0̋3TCU2Г~7uoU@(Jp|=h FJ[$U5BQ$6\[BP?4g(ΈiEq8#FbǘU7 UJ<t6*2Ź̘0Uo^v2ׯUt1lY-rJJ k`C`H-`Ň1 K}Ұ  ?00Xem(U= M$5 fpX@xi!+B ĸ)3I3:bPӈ% Z^z bŦ0|^zښj%޳11deYIHp!ДRe/nL@P>!!Iv/ٸ $כҴ /Ð!RݟCQZ\PAp+E4?r](.jWeWq1 .hmK"h \P0TL|AǠ+j`Su|^[-޵rr2NWPċCHhlb/'>Z#++ < g׷RIj I!ݍ߇VwTX)+nA0$K߇WT"rT#Ep䠈Th 4Ek84]XU"!$R)0 t<<=^pR6*s!tw4ZSm c-;5HHH^3eVVc3Eؒ%xwzxe\Lddif1eI3sB(~=$?aA`EQ bcen`n]-ΣCEE#`gٰ -Tw^8Wa.R b?0 5@xX "Lkumd´\XTŨK*6ҵ KQb /LKe=7'2W'%SJ{;xTW7ߝnEU22i377Wf?xBiR̵{JEp"? &d-Yk!U"b`T;1OJk.<7QIbbÈ˗G?T0c j8=G P?o?|`[&5϶QmOݽKO"vG|7KH1 YUBw-aK'.)5~_+)~h 0r )߰~+u ej>b`%K s ϘI۪d j**pE|t+gl+mNzA1VY! -#M?C[} M;ob<;<>0> |>\ҝt2ISHs.^lvlXޟ((xlpS **ۓ\3& 6FXHVʻ9XWr?04t0A"G'{iobjd%f "yJ1.n`Wu oY\8wGfv݉%l5t# nb )7\}{usˆaQj:k iIv 4(.;|.e ]ƊȖR]Zp:c{Cj}D΂a>/mʛDrN!3|>?J3׳~G x3YBk(]^_(r3)CY*oiNFh,vHJ>|AP݆@Cd(ef\aZB^p>2/JORdF$$ٿc?{! y)\:^K 鈣]zo/+*Y“瞅6V /MI`1 LL|][*ZAq crxOX@0hnbm䥃WBDE7kHò- lnGAQ+{va@w LMp3/ϮX3ҭ500F1IX E HS"F(*Y)tsvk#cxR2~aF"w2 Igk ;FN~$&K FW%(tw{XYZLeE<~i7ð7̔pXn+:V}ﺵXpO֕d8 &`umgTvA_Ex0 _D&11e)Jog;Y#}ME|e&:[i(~;K(^sEGB(:kհڋ%)TnǎMetʓk ΀Wu0oL)) څ_%zK 4s:yOWcs0蓨ز֗3{Ӂ|M&<FHAP\B|m9[wQOJڍgZiE{vLN򐒒௪P~^2ҵz )]=Ȅl&T37.cv95hP) ހ.ne<DŽдζk9ƀZs~͙NmvK9hT |0]:Z>̢ dKՆh,f=%j B`>@ ]7)|GtFyy|s_~`7锴Ab+P|N) [ISǚ ][M.hm .'OG^m- &{IGljOVR4VWR_KG)9d; uP#mH{0-m,RGyE$g÷yoiXsB7|n oM\}3'*m]9cHICJ=B*"/ 0࡬ OYcjoEmBVL 9YfV h'ttvUi5[[5 He˪exغo,J! r|98p.IZhܹYg'#чѥ6'@ jjl#MVz<1QOT7CkA%*nVmdSABF>i9yԖ;g>,kGynXlfEE2ǍOfRe}L.FD|5EF4pR$#^ Xu=8RG[HW{/}30SAa HM.Wf"}U Mlz2Ffckla ¥B_+=偪Hj yP 6fuy+"W3~?8!ﶆ͈ qjbW *K7U0wJ.gRD_u x b"wTֲb{#z6IDATLE8Y#[wK?[j'Rc>pN >9đ9 W0?1>7 aTQ!#$IY]!uۡ &de'h.s= ~5B^dRy㻘3e$6vgv!}!hmoPI-"%3]gB!?d|/n/˽!#F^xL>d[7tq܌"H $>|!?tvutc4$e5^&-|YGKLБ5z4MU𛛨ߵOvN'̴D2TP͗ߔ\Rs0'x֏!lrҤ\xϳtҴsGMLe|a6BH? _}k=׫2hM4McMIAt?~Pk6/QQ]͙03zgrt>(ig>ڵ(r.Zڅت́(i)DdAEBآX.qRf)eLý-a6'sN<;ӘɎnFe9(oɝ;e-M,SR B$}~nqJf\+]@kdNfLj9vmAU=K]sk ض$;5h/B#݈/}nR(`~*_P\.v񠷋W 1_¯-NΣ 7b[}xz*7GQG]= ҫIqTZpGd!.wJ Gp]3jyIENDB`instead-1.9.1/icon/Makefile000644 001751 001751 00000000656 12161555602 016055 0ustar00peterpeter000000 000000 include ../Rules.make include ../config.make clean: all: install: $(INSTALLD) $(ICONPATH) $(INSTALL) sdl_instead.png $(ICONPATH) ifeq ($(WINDOWS), yes) $(INSTALL) sdl_instead_1x32.png $(ICONPATH)/sdl_instead_1.png else $(INSTALL) sdl_instead_1.png $(ICONPATH) endif $(INSTALL) sdl_instead.ico $(ICONPATH) uninstall: $(RM) $(ICONPATH)/sdl_instead.png $(RM) $(ICONPATH)/sdl_instead_1.png $(RM) $(ICONPATH)/sdl_instead.ico instead-1.9.1/icons.mk000644 001751 001751 00000001700 12161555602 015120 0ustar00peterpeter000000 000000 # ============================================================================== # Name : Icons_scalable_dc.mk # Part of : Helloworldbasic # Description : This is file for creating .mif file (scalable icon) # Version : # # Copyright (c) 2002-2006 Nokia Corporation. # This material, including documentation and any related # computer programs, is protected by copyright controlled by # Nokia Corporation. # ============================================================================== ZDIR=$(EPOCROOT)epoc32\data\z TARGETDIR=$(ZDIR)\resource\apps ICONTARGETFILENAME=$(TARGETDIR)\instead.mif ICONDIR=.\icon do_nothing : @rem do_nothing MAKMAKE : do_nothing BLD : do_nothing CLEAN : do_nothing LIB : do_nothing CLEANLIB : do_nothing RESOURCE : mifconv $(ICONTARGETFILENAME) \ /c32 $(ICONDIR)\instead-s60.svg FREEZE : do_nothing SAVESPACE : do_nothing RELEASABLES : @echo $(ICONTARGETFILENAME) FINAL : do_nothing instead-1.9.1/instead.mmp000644 001751 001751 00000002502 12161555602 015617 0ustar00peterpeter000000 000000 targettype exe target instead.exe MACRO S60 MACRO _USE_BROWSE MACRO _USE_UNPACK MACRO unix MACRO _HAVE_ICONV MACRO _LOCAL_APPDATA MACRO _SDL_MOD_BUG SYSTEMINCLUDE /epoc32/include/libc /epoc32/include/esdl /epoc32/include/mmf/plugin /epoc32/include // /epoc32/include/stdapis sourcepath ./src/sdl-instead SOURCE symbian.cpp SOURCE graphics.c input.c game.c main.c instead.c sound.c SDL_rotozoom.c SDL_anigif.c SDL_gfxBlitFunc.c config.c themes.c menu.c util.c cache.c unzip.c ioapi.c unpack.c s60.c lfs.c idf.c SOURCE snprintf.c USERINCLUDE ./src/sdl-instead MACRO S60V3 staticlibrary lua.lib sdl_image.lib sdl_ttf.lib SDL_Mixer_ogg.lib libpng.lib libjpeg.lib esdl.lib libiconv.lib libtremor.lib LIBRARY cone.lib eikcore.lib LIBRARY euser.lib apparc.lib fbscli.lib LIBRARY estlib.lib apgrfx.lib bafl.lib LIBRARY gdi.lib hal.lib bitgdi.lib LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib LIBRARY avkon.lib LIBRARY ezlib.lib //library libc.lib library commondialogs.lib //ALWAYS_BUILD_AS_ARM EPOCSTACKSIZE 81000 EPOCHEAPSIZE 7192000 32384000 UID 0x100039ce 0xA0020410 CAPABILITY none sourcepath . START RESOURCE instead.rss HEADER TARGETPATH /resource/apps LANG SC END sourcepath . START RESOURCE instead_reg.rss TARGETPATH /private/10003a3f/apps END //ALWAYS_BUILD_AS_ARM instead-1.9.1/instead.pkg000644 001751 001751 00000022525 12170230436 015611 0ustar00peterpeter000000 000000 ; This is an auto-generated PKG file by Carbide. ; This file uses variables specific to Carbide builds that will not work ; on command-line builds. If you want to use this generated PKG file from the ; command-line tools you will need to modify the variables with the appropriate ; values: , $(PLATFORM), $(TARGET) ; ;Language - standard language definitions &EN ; standard SIS file header #{"INSTEAD"},(0xA0020410),1,9,1 ;Localised Vendor name %{"Peter Kosyh"} ;Unique Vendor name :"Peter Kosyh" ;Supports Series 60 v 3.0 [0x101F7961], 0, 0, 0, {"Series60ProductID"} ; ; Display GNU Public Licence ; ;Files to install ;You should change the source paths to match that of your environment ; ""-"c:\data\instead\stdout.txt",FILENULL ""-"c:\data\instead\stderr.txt",FILENULL ""-"c:\data\instead\sdl.ini",FILENULL "\home\peter\Devel\gnupoc\symbian-sdks\s60_26\epoc32\release\gcce\urel\instead.exe" -"!:\sys\bin\instead.exe" "\home\peter\Devel\gnupoc\symbian-sdks\s60_26\epoc32\data\z\resource\apps\instead.rsc" -"!:\resource\apps\instead.rsc" "\home\peter\Devel\gnupoc\symbian-sdks\s60_26\epoc32\data\z\private\10003a3f\apps\instead_reg.rsc" -"!:\private\10003a3f\import\apps\instead_reg.rsc" "\home\peter\Devel\gnupoc\symbian-sdks\s60_26\epoc32\data\z\resource\apps\instead.mif" -"!:\resource\apps\instead.mif" ".\symbian_gamedata\appdata\games\tutorial3\main.lua" -"!:\data\instead\appdata\games\tutorial3\main.lua" ".\symbian_gamedata\appdata\games\tutorial3\main-ru.lua" -"!:\data\instead\appdata\games\tutorial3\main-ru.lua" ".\symbian_gamedata\appdata\games\tutorial3\main-ua.lua" -"!:\data\instead\appdata\games\tutorial3\main-ua.lua" ".\symbian_gamedata\appdata\games\tutorial3\main-en.lua" -"!:\data\instead\appdata\games\tutorial3\main-en.lua" ".\symbian_gamedata\appdata\games\tutorial3\main-it.lua" -"!:\data\instead\appdata\games\tutorial3\main-it.lua" ".\symbian_gamedata\appdata\games\tutorial3\main-es.lua" -"!:\data\instead\appdata\games\tutorial3\main-es.lua" ".\symbian_gamedata\appdata\games\tutorial3\main-pt.lua" -"!:\data\instead\appdata\games\tutorial3\main-pt.lua" ".\symbian_gamedata\appdata\games\tutorial3\ru.png" -"!:\data\instead\appdata\games\tutorial3\ru.png" ".\symbian_gamedata\appdata\games\tutorial3\ua.png" -"!:\data\instead\appdata\games\tutorial3\ua.png" ".\symbian_gamedata\appdata\games\tutorial3\gb.png" -"!:\data\instead\appdata\games\tutorial3\gb.png" ".\symbian_gamedata\appdata\games\tutorial3\it.png" -"!:\data\instead\appdata\games\tutorial3\it.png" ".\symbian_gamedata\appdata\games\tutorial3\es.png" -"!:\data\instead\appdata\games\tutorial3\es.png" ".\symbian_gamedata\appdata\games\tutorial3\br.png" -"!:\data\instead\appdata\games\tutorial3\br.png" ".\symbian_gamedata\appdata\games\tutorial3\instead.png" -"!:\data\instead\appdata\games\tutorial3\instead.png" ".\symbian_gamedata\appdata\games\tutorial3\instead.ogg" -"!:\data\instead\appdata\games\tutorial3\instead.ogg" ".\symbian_gamedata\stead\vars.lua" -"!:\data\instead\stead\vars.lua" ".\symbian_gamedata\stead\timer.lua" -"!:\data\instead\stead\timer.lua" ".\symbian_gamedata\stead\kbd.lua" -"!:\data\instead\stead\kbd.lua" ".\symbian_gamedata\stead\walk.lua" -"!:\data\instead\stead\walk.lua" ".\symbian_gamedata\stead\object.lua" -"!:\data\instead\stead\object.lua" ".\symbian_gamedata\stead\dash.lua" -"!:\data\instead\stead\dash.lua" ".\symbian_gamedata\stead\snapshots.lua" -"!:\data\instead\stead\snapshots.lua" ".\symbian_gamedata\stead\hideinv.lua" -"!:\data\instead\stead\hideinv.lua" ".\symbian_gamedata\stead\quotes.lua" -"!:\data\instead\stead\quotes.lua" ".\symbian_gamedata\stead\format.lua" -"!:\data\instead\stead\format.lua" ".\symbian_gamedata\stead\click.lua" -"!:\data\instead\stead\click.lua" ".\symbian_gamedata\stead\dbg.lua" -"!:\data\instead\stead\dbg.lua" ".\symbian_gamedata\stead\xact.lua" -"!:\data\instead\stead\xact.lua" ".\symbian_gamedata\stead\hotkeys.lua" -"!:\data\instead\stead\hotkeys.lua" ".\symbian_gamedata\stead\input.lua" -"!:\data\instead\stead\input.lua" ".\symbian_gamedata\stead\gui.lua" -"!:\data\instead\stead\gui.lua" ".\symbian_gamedata\stead\stead.lua" -"!:\data\instead\stead\stead.lua" ".\symbian_gamedata\stead\para.lua" -"!:\data\instead\stead\para.lua" ".\symbian_gamedata\stead\theme.lua" -"!:\data\instead\stead\theme.lua" ".\symbian_gamedata\stead\prefs.lua" -"!:\data\instead\stead\prefs.lua" ".\symbian_gamedata\stead\sprites.lua" -"!:\data\instead\stead\sprites.lua" ".\symbian_gamedata\stead\sound.lua" -"!:\data\instead\stead\sound.lua" ".\symbian_gamedata\stead\wroom.lua" -"!:\data\instead\stead\wroom.lua" ".\symbian_gamedata\stead\nouse.lua" -"!:\data\instead\stead\nouse.lua" ".\symbian_gamedata\stead\dlg.lua" -"!:\data\instead\stead\dlg.lua" ".\symbian_gamedata\stead\counters.lua" -"!:\data\instead\stead\counters.lua" ".\symbian_gamedata\stead\proxymenu.lua" -"!:\data\instead\stead\proxymenu.lua" ".\symbian_gamedata\stead\nolife.lua" -"!:\data\instead\stead\nolife.lua" ".\symbian_gamedata\lang\ru.ini" -"!:\data\instead\lang\ru.ini" ".\symbian_gamedata\lang\en.ini" -"!:\data\instead\lang\en.ini" ".\symbian_gamedata\themes\fantasy\down.png" -"!:\data\instead\themes\fantasy\down.png" ".\symbian_gamedata\themes\fantasy\up.png" -"!:\data\instead\themes\fantasy\up.png" ".\symbian_gamedata\themes\fantasy\menu.png" -"!:\data\instead\themes\fantasy\menu.png" ".\symbian_gamedata\themes\fantasy\bg.jpg" -"!:\data\instead\themes\fantasy\bg.jpg" ".\symbian_gamedata\themes\fantasy\theme.ini" -"!:\data\instead\themes\fantasy\theme.ini" ".\symbian_gamedata\themes\arctic\aup.png" -"!:\data\instead\themes\arctic\aup.png" ".\symbian_gamedata\themes\arctic\menu.png" -"!:\data\instead\themes\arctic\menu.png" ".\symbian_gamedata\themes\arctic\bg.jpg" -"!:\data\instead\themes\arctic\bg.jpg" ".\symbian_gamedata\themes\arctic\theme.ini" -"!:\data\instead\themes\arctic\theme.ini" ".\symbian_gamedata\themes\arctic\cursor.png" -"!:\data\instead\themes\arctic\cursor.png" ".\symbian_gamedata\themes\arctic\cursor-use.png" -"!:\data\instead\themes\arctic\cursor-use.png" ".\symbian_gamedata\themes\arctic\adown.png" -"!:\data\instead\themes\arctic\adown.png" ".\symbian_gamedata\themes\clearlooks\aup.png" -"!:\data\instead\themes\clearlooks\aup.png" ".\symbian_gamedata\themes\clearlooks\menu.png" -"!:\data\instead\themes\clearlooks\menu.png" ".\symbian_gamedata\themes\clearlooks\bg.jpg" -"!:\data\instead\themes\clearlooks\bg.jpg" ".\symbian_gamedata\themes\clearlooks\theme.ini" -"!:\data\instead\themes\clearlooks\theme.ini" ".\symbian_gamedata\themes\clearlooks\cursor.png" -"!:\data\instead\themes\clearlooks\cursor.png" ".\symbian_gamedata\themes\clearlooks\cursor-use.png" -"!:\data\instead\themes\clearlooks\cursor-use.png" ".\symbian_gamedata\themes\clearlooks\adown.png" -"!:\data\instead\themes\clearlooks\adown.png" ".\symbian_gamedata\themes\original\theme.ini" -"!:\data\instead\themes\original\theme.ini" ".\symbian_gamedata\themes\default\click.wav" -"!:\data\instead\themes\default\click.wav" ".\symbian_gamedata\themes\default\aup.png" -"!:\data\instead\themes\default\aup.png" ".\symbian_gamedata\themes\default\menu.png" -"!:\data\instead\themes\default\menu.png" ".\symbian_gamedata\themes\default\use.png" -"!:\data\instead\themes\default\use.png" ".\symbian_gamedata\themes\default\bg.jpg" -"!:\data\instead\themes\default\bg.jpg" ".\symbian_gamedata\themes\default\theme.ini" -"!:\data\instead\themes\default\theme.ini" ".\symbian_gamedata\themes\default\cursor.png" -"!:\data\instead\themes\default\cursor.png" ".\symbian_gamedata\themes\default\click.ogg" -"!:\data\instead\themes\default\click.ogg" ".\symbian_gamedata\themes\default\cursor-use.png" -"!:\data\instead\themes\default\cursor-use.png" ".\symbian_gamedata\themes\default\sans.ttf" -"!:\data\instead\themes\default\sans.ttf" ".\symbian_gamedata\themes\default\sans-b.ttf" -"!:\data\instead\themes\default\sans-b.ttf" ".\symbian_gamedata\themes\default\sans-i.ttf" -"!:\data\instead\themes\default\sans-i.ttf" ".\symbian_gamedata\themes\default\sans-bi.ttf" -"!:\data\instead\themes\default\sans-bi.ttf" ".\symbian_gamedata\themes\default\adown.png" -"!:\data\instead\themes\default\adown.png" ".\symbian_gamedata\themes\default\aup.png" -"!:\data\instead\themes\default\aup.png" ".\symbian_gamedata\themes\book\theme.ini" -"!:\data\instead\themes\book\theme.ini" ".\symbian_gamedata\themes\book\book.jpg" -"!:\data\instead\themes\book\book.jpg" ".\symbian_gamedata\themes\bluesteel\menu.png" -"!:\data\instead\themes\bluesteel\menu.png" ".\symbian_gamedata\themes\bluesteel\downarrow.png" -"!:\data\instead\themes\bluesteel\downarrow.png" ".\symbian_gamedata\themes\bluesteel\bg.jpg" -"!:\data\instead\themes\bluesteel\bg.jpg" ".\symbian_gamedata\themes\bluesteel\theme.ini" -"!:\data\instead\themes\bluesteel\theme.ini" ".\symbian_gamedata\themes\bluesteel\cursor.png" -"!:\data\instead\themes\bluesteel\cursor.png" ".\symbian_gamedata\themes\bluesteel\cursor-use.png" -"!:\data\instead\themes\bluesteel\cursor-use.png" ".\symbian_gamedata\themes\bluesteel\uparrow.png" -"!:\data\instead\themes\bluesteel\uparrow.png" ".\symbian_gamedata\themes\wide\theme.ini" -"!:\data\instead\themes\wide\theme.ini" ".\symbian_gamedata\icon\sdl_instead.png" -"!:\data\instead\icon\sdl_instead.png" ".\symbian_gamedata\icon\sdl_instead_1.png" -"!:\data\instead\icon\sdl_instead_1.png" instead-1.9.1/instead.rss000644 001751 001751 00000002133 12161555602 015635 0ustar00peterpeter000000 000000 NAME INST #include #include #include #include #include // Enumerations #include // Resource structures RESOURCE RSS_SIGNATURE { } RESOURCE TBUF16 { buf=""; } RESOURCE EIK_APP_INFO { } // This file localise the applications icons and caption RESOURCE LOCALISABLE_APP_INFO r_appinfo { short_caption = "INSTEAD"; caption_and_icon = { CAPTION_AND_ICON_INFO { // The caption text is defined in the rls file caption = "INSTEAD"; // Icons are used to represent applications in the // application launcher and application title bar. // The number_of_icons value identifies how many icons // that exist in the icon_file. number_of_icons = 1; // Using the application icons. icon_file = "\\resource\\apps\\instead.mif"; } }; } RESOURCE FILESELECTIONDIALOG r_file_selection_dialog { title = "Select-a-file:"; root_path = "C:\\"; filters = { FILTER { filter_type = EFilenameFilter; filter_style = EInclusiveFilter; filter_data = { "*.lua", "*.zip", "*.idf" }; } }; } instead-1.9.1/instead.spec000644 001751 001751 00000001507 12162116752 015764 0ustar00peterpeter000000 000000 Summary: simple text adventures/visual novels engine and game Name: instead Version: 1.9.1 Release: 1%{?dist} License: GPLv2 URL: http://instead.sourceforge.net Source0: %{name}_%{version}.tar.gz Group: Amusements/Games BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: SDL-devel, SDL_mixer-devel, SDL_image-devel, SDL_ttf-devel, lua-devel %description Simple text adventures/visual novels engine and game Visual novell/text quest-like game in Russian with engine. %prep %setup -q echo -e "2\n\/usr" | ./configure.sh %build make %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) #%doc doc/* %{_bindir}/* %{_datadir}/%{name}/* %{_datadir}/applications/* %{_datadir}/pixmaps/* %{_datadir}/doc/* %{_mandir}/* instead-1.9.1/instead_reg.rss000644 001751 001751 00000000616 12161555573 016505 0ustar00peterpeter000000 000000 #include #include UID2 KUidAppRegistrationResourceFile UID3 0xA0020410 // application UID RESOURCE APP_REGISTRATION_INFO { app_file = "instead"; // filename of application binary (minus extension) // Specify the location of the localisable icon/caption definition file localisable_resource_file = "\\resource\\apps\\instead"; localisable_resource_id = R_APPINFO; } instead-1.9.1/lang/000755 001751 001751 00000000000 12161555647 014410 5ustar00peterpeter000000 000000 instead-1.9.1/lang/en.ini000644 001751 001751 00000006056 12161555602 015511 0ustar00peterpeter000000 000000 ;$Name:English$ UNKNOWN_ERROR = Unknown error. ERROR_MENU = Error while loading game:\n\ '%s'\n\ \n\ Ok WARNING_MENU = Error while processing game:\n\ '%s'\n\ \n\ Ok SAVE_SLOT_EMPTY = empty SELECT_LOAD_MENU = Load game\n\n AUTOSAVE_SLOT = Autosave BROKEN_SLOT = error SELECT_SAVE_MENU = Save game\n\n MAIN_MENU = \ Resume game\n\ Select game\n\ Select theme\n\ Restart game\n\ Load game\n\ Save game\n\ About\n\ Settings\n\ Quit ABOUT_MENU = \ INSTEAD - %s\n\ \n\ Written by Peter Kosyh '2009-2013\n\ Ported to Windows by Ilja Ryndin\n\ \n\ Homepage:\n\ http://instead.sourceforge.net\n\ \n\ Back BACK_MENU = Back ON = On OFF = Off SELECT_GAME_MENU = Select game to play\n\n SELECT_THEME_MENU = Select theme\n\n KBD_MODE_LINKS = Links KBD_MODE_SMART = Smart KBD_MODE_SCROLL = Scroll FROM_THEME = Theme SETTINGS_SND_MENU = \ [Graphics][Sound][Other]\n\ \n\ Volume: <<< %d%% >>>\n\ \n\ Quality: << %dHz >>\n\ \n\ Music: %s\n\ \n\ Click sound: %s\n\ \n\ Apply SETTINGS_GFX_MENU = \ [Graphics][Sound][Other]\n\ \n\ Resolution: <<%s>>\n\ Full screen: %s\n\ Font scaling: <<%d>>\n\ Justify text: <<%s>>\n\ Links highlighting: %s\n\ Fading effect: %s\n\ Custom game themes: %s\n\ \n\ Apply SETTINGS_OTH_MENU = \ [Graphics][Sound][Other]\n\ \n\ Scrolling mode: %s\n\ Mouse filter: %s\n\ Keyboard mode: %s\n\ \n\ Language: <<%s>>\n\ \n\ Аutosave: %s\n\ \n\ Apply OWN_THEME_MENU = \ Warning!!!\n\ \n\ Current game has a custom theme.\n\ Changes will be ignored.\n\ \n\ You can disable custom themes\n\ in settings menu.\n\ \n\ Ok CUSTOM_THEME_MENU = \ Warning!!!\n\ \n\ This game has a custom theme, but custom themes are disabled. \ The game may look differently from the author's design.\n\ \n\ You can enable custom theme support in settings menu.\n\ \n\ Ok QUIT_MENU = \ Really quit?\n\ \n\ Yes | No SAVED_MENU = \ Current Game saved!\n\ \n\ Ok NOGAMES_MENU = \ No games found. \n\ Please, put any game in the directory \n'%s' NOTHEMES_MENU = \ No themes found.\n\ Please, put any theme in the directory:\n'%s' CANCEL_MENU = Cancel DISABLED_SAVE_MENU = \ Saving is disabled by game.\n BROWSE_MENU = \ [...] REMOVE_MENU = \ Remove the game?\n\ %s\n\ \n\ Yes | No WAIT_MENU = \ Wait please... instead-1.9.1/lang/ua.ini000644 001751 001751 00000010635 12161555602 015512 0ustar00peterpeter000000 000000 ;$Name:Українська$ UNKNOWN_ERROR = Невідома помилка. ERROR_MENU = Під час ініціалізації виникла невідома помилка:\n\ '%s'\n\ \n\ Так WARNING_MENU = Під час роботи гри виникла помилка:\n\ '%s'\n\ \n\ Так SAVE_SLOT_EMPTY = пусто SELECT_LOAD_MENU = Завантажте гру\n\n AUTOSAVE_SLOT = Автозбереження BROKEN_SLOT = помилка SELECT_SAVE_MENU = Збережить гру\n\n MAIN_MENU = \ Продовжити гру\n\ Вибір гри\n\ Вибір теми\n\ Розпочати заново\n\ Завантажити гру\n\ Зберегти гру\n\ ІнформацІя\n\ Налаштування\n\ Вихід ABOUT_MENU = \ INSTEAD - %s\n\ \n\ Інтерпретатор простих\n\ текстових пригод:\n\ Косих П.О. '2009-2013\n\ \n\ Адаптація для Windows:\n\ Риндін І.В. '2009\n\ \n\ Сайт проекта:\n\ http://instead.sourceforge.net\n\ \n\ Назад BACK_MENU = Назад ON = Так OFF = Ні KBD_MODE_LINKS = Посилання KBD_MODE_SMART = Розумний KBD_MODE_SCROLL = Прокрутка FROM_THEME = Тема SETTINGS_SND_MENU = \ [Графіка][Звук][Інше]\n\ \n\ Гучність: <<< %d%% >>>\n\ \n\ Якість: << %dГц >>\n\ \n\ Музика: %s\n\ \n\ Звук клацання: %s\n\ \n\ Застосувати SETTINGS_GFX_MENU = \ [Графіка][Звук][Інше]\n\ \n\ Розмір вікна: <<%s>>\n\ Повний екран: %s\n\ Масштаб шрифту: <<%d>>\n\ Текст по ширині: <<%s>>\n\ Підсвітка посиланнь: %s\n\ Ефект загасання: %s\n\ Власні теми ігр: %s\n\ \n\ Застосувати SETTINGS_OTH_MENU = \ [Графіка][Звук][Інше]\n\ \n\ Режим прокрутки: %s\n\ Фільтр миши: %s\n\ Режим клавіатури: %s\n\ \n\ Мова: <<%s>>\n\ \n\ Автозбереження: %s\n\ \n\ Застосувати CUSTOM_THEME_MENU = \ Увага!!!\n\ \n\ Гра містить власну тему, але підтримка власних тем відключена в налаштуваннях. \ Гра може виглядати не так, як задумував її автор.\n\ \n\ Ви можете дозволити можливість перевизначення тем в налаштуваннях.\n\ \n\ Так OWN_THEME_MENU = \ Увага!!!\n\ \n\ Вибрана гра перевизначає тему. Зміни не вступять до сили.\n\ \n\ Ви можете заборонити можливість перевизначення тем в налаштуваннях.\n\ \n\ Так QUIT_MENU = \ Насправді вийти?\n\ \n\ Так | Ні SELECT_GAME_MENU = Вибір гри\n\n SELECT_THEME_MENU = Вибір теми\n\n SAVED_MENU = \ Гра збережена!\n\ \n\ Так NOGAMES_MENU = \ Не знайдено жодної гри.\n\ Будь ласка, скопіруйте хоча б одну гру до каталогу:\n'%s' NOTHEMES_MENU = \ Не знайдено жодної теми.\n\ Будь ласка, скопіруйте хоча б одну тему до каталогу:\n'%s'\n CANCEL_MENU = Відміна DISABLED_SAVE_MENU = \ Збереження заборонено грою.\n BROWSE_MENU = \ [...] REMOVE_MENU = \ Видалити гру?\n\ %s\n\ \n\ Так | Ні WAIT_MENU = \ Будь ласка, почекайте... instead-1.9.1/lang/ru.ini000644 001751 001751 00000010700 12161555602 015524 0ustar00peterpeter000000 000000 ;$Name:Русский$ UNKNOWN_ERROR = Неизвестная ошибка. ERROR_MENU = Во время инициализации игры произошла ошибка:\n\ '%s'\n\ \n\ Да WARNING_MENU = Во время работы игры произошла ошибка:\n\ '%s'\n\ \n\ Да SAVE_SLOT_EMPTY = пусто SELECT_LOAD_MENU = Загрузите игру\n\n AUTOSAVE_SLOT = Автосохранение BROKEN_SLOT = ошибка SELECT_SAVE_MENU = Сохраните игру\n\n MAIN_MENU = \ Продолжить игру\n\ Выбор игры\n\ Выбор темы\n\ Начать заново\n\ Загрузить игру\n\ Сохранить игру\n\ Информация\n\ Настройки\n\ Выход ABOUT_MENU = \ INSTEAD - %s\n\ \n\ Интерпретатор простых\n\ текстовых приключений:\n\ Косых П.А. '2009-2013\n\ \n\ Адаптация для Windows:\n\ Рындин И.В. '2009\n\ \n\ Сайт проекта:\n\ http://instead.sourceforge.net\n\ \n\ Назад BACK_MENU = Назад ON = Да OFF = Нет KBD_MODE_LINKS = Ссылки KBD_MODE_SMART = Умный KBD_MODE_SCROLL = Прокрутка FROM_THEME = Тема SETTINGS_SND_MENU = \ [Графика][Звук][Другое]\n\ \n\ Громкость: <<< %d%% >>>\n\ \n\ Качество: << %dГц >>\n\ \n\ Музыка: %s\n\ \n\ Звук щелчка: %s\n\ \n\ Применить SETTINGS_GFX_MENU = \ [Графика][Звук][Другое]\n\ \n\ Размер окна: <<%s>>\n\ Полный экран: %s\n\ Масштаб шрифта: <<%d>>\n\ Текст по ширине: <<%s>>\n\ Подсветка ссылок: %s\n\ Эффект перехода: %s\n\ Собственные темы игр: %s\n\ \n\ Применить SETTINGS_OTH_MENU = \ [Графика][Звук][Другое]\n\ \n\ Режим прокрутки: %s\n\ Фильтр мышки: %s\n\ Режим клавиатуры: %s\n\ \n\ Язык: <<%s>>\n\ \n\ Автосохранение: %s\n\ \n\ Применить CUSTOM_THEME_MENU = \ Внимание!!!\n\ \n\ Игра содержит собственную тему, но поддержка собственных тем отключена в настройках. \ Игра может выглядеть не так, как задумывал ее автор.\n\ \n\ Вы можете разрешить возможность переопределения тем в настройках.\n\ \n\ Да OWN_THEME_MENU = \ Внимание!!!\n\ \n\ Выбранная игра переопределяет тему. Изменения не вступят в силу.\n\ \n\ Вы можете запретить возможность переопределения тем в настройках.\n\ \n\ Да QUIT_MENU = \ На самом деле выйти?\n\ \n\ Да | Нет SELECT_GAME_MENU = Выбор игры\n\n SELECT_THEME_MENU = Выбор темы\n\n SAVED_MENU = \ Игра сохранена!\n\ \n\ Да NOGAMES_MENU = \ Не найдена ни одна игра.\n\ Пожалуйста, скопируйте хотя бы одну игру в каталог:\n'%s' NOTHEMES_MENU = \ Не найдена ни одна тема.\n\ Пожалуйста, скопируйте хотя бы одну тему в каталог:\n'%s'\n CANCEL_MENU = Отмена DISABLED_SAVE_MENU = \ Сохранение запрещено игрой.\n BROWSE_MENU = \ [...] REMOVE_MENU = \ Удалить игру?\n\ %s\n\ \n\ Да | Нет WAIT_MENU = \ Пожалуйста, подождите... instead-1.9.1/lang/es.ini000644 001751 001751 00000006434 12161555602 015516 0ustar00peterpeter000000 000000 ;$Name:Español$ UNKNOWN_ERROR = Error desconocido. ERROR_MENU = Error al cargar el juego:\n\ '%s'\n\ \n\ Ok WARNING_MENU = Error al procesar el juego:\n\ '%s'\n\ \n\ Ok SAVE_SLOT_EMPTY = vacío SELECT_LOAD_MENU = Cargar juego\n\n AUTOSAVE_SLOT = Autoguardar BROKEN_SLOT = error SELECT_SAVE_MENU = Guardar juego\n\n MAIN_MENU = \ Continuar juego\n\ Elegir juego\n\ Elegir tema\n\ Reiniciar juego\n\ Cargar juego\n\ Guardar juego\n\ Acerca de\n\ Opciones\n\ Salir ABOUT_MENU = \ INSTEAD - %s\n\ \n\ Escrito por Peter Kosyh '2009-2013\n\ Porting a Windows por Ilja Ryndin\n\ \n\ Web:\n\ http://instead.sourceforge.net\n\ \n\ Atrás BACK_MENU = Atrás ON = On OFF = Off SELECT_GAME_MENU = Elegir juego\n\n SELECT_THEME_MENU = Elegir tema\n\n KBD_MODE_LINKS = Links KBD_MODE_SMART = Smart KBD_MODE_SCROLL = Scroll FROM_THEME = Tema SETTINGS_SND_MENU = \ [Gráficos][Sonido][Otros]\n\ \n\ Volumen: <<< %d%% >>>\n\ \n\ Calidad: << %dHz >>\n\ \n\ Música: %s\n\ \n\ Sonido Click: %s\n\ \n\ Aceptar SETTINGS_GFX_MENU = \ [Gráficos][Sonido][Otros]\n\ \n\ Resolución: <<%s>>\n\ Pantalla Completa: %s\n\ Escala de Fuente: <<%d>>\n\ Justificar el texto: <<%s>>\n\ Resaltar Links: %s\n\ Efecto de atenuación: %s\n\ Temas específicos del juego: %s\n\ \n\ Aceptar SETTINGS_OTH_MENU = \ [Gráficos][Sonido][Otros]\n\ \n\ Modo Scrolling: %s\n\ Filtrar Mouse: %s\n\ Modo Teclado: %s\n\ \n\ Idioma: <<%s>>\n\ \n\ AutoGuardar: %s\n\ \n\ Aceptar OWN_THEME_MENU = \ Atención!!\n\ \n\ El juego actual tienen un tema específico.\n\ Los cambios se descartarán\n\ \n\ No puedes deshabilitar los temas específicos\n\ en el menú de opciones.\n\ \n\ Ok CUSTOM_THEME_MENU = \ Atención!!\n\ \n\ Este juego requiere un tema específico, pero los temas específicos están deshabilitados. \ Este juego puede no tener el aspecto original diseñado por su autor.\n\ \n\ Puedes habilitar el soporte de temas específicos desde el menú de opciones.\n\ \n\ Ok QUIT_MENU = \ ¿Realmente quieres salir?\n\ \n\ Sí | No SAVED_MENU = \ Juego guardado!\n\ \n\ Ok NOGAMES_MENU = \ No se encontraron juegos. \n\ Por favor, copia algún juego en la carpeta \n'%s' NOTHEMES_MENU = \ No existen temas.\n\ Por favor, copia algún tema en la carpeta :\n'%s' CANCEL_MENU = Cancelar DISABLED_SAVE_MENU = \ Guardar está deshabilitado desde el juego.\n BROWSE_MENU = \ [...] REMOVE_MENU = \ ¿Quitar el juego?\n\ %s\n\ \n\ Yes | No WAIT_MENU = \ Espere por favor... instead-1.9.1/lang/Makefile.windows000644 001751 001751 00000000163 12161555602 017530 0ustar00peterpeter000000 000000 include ../Rules.make clean: all: install: if not exist ..\bin\lang mkdir ..\bin\lang copy /Y *.ini ..\bin\lang instead-1.9.1/lang/it.ini000644 001751 001751 00000006571 12161555602 015525 0ustar00peterpeter000000 000000 ;$Name:Italiano$ UNKNOWN_ERROR = Errore sconosciuto. ERROR_MENU = Errore nel caricamento del gioco:\n\ '%s'\n\ \n\ Ok WARNING_MENU = Errore durante l'avvio del gioco:\n\ '%s'\n\ \n\ Ok SAVE_SLOT_EMPTY = vuoto SELECT_LOAD_MENU = Carica una partita\n\n AUTOSAVE_SLOT = Autosalvataggio BROKEN_SLOT = errore SELECT_SAVE_MENU = Salvare la partita\n\n MAIN_MENU = \ Torna al gioco\n\ Seleziona una partita\n\ Seleziona un tema\n\ Ricomincia\n\ Carica\n\ Salva\n\ Informazioni\n\ Impostazioni\n\ Esci ABOUT_MENU = \ INSTEAD - %s\n\ \n\ Scritto da Peter Kosyh '2009-2010\n\ Portato in Windows da Ilja Ryndin\n\ \n\ Homepage:\n\ http://instead.sourceforge.net\n\ \n\ Indietro BACK_MENU = Indietro ON = On OFF = Off SELECT_GAME_MENU = Scegli un gioco\n\n SELECT_THEME_MENU = Scegli un tema\n\n KBD_MODE_LINKS = Links KBD_MODE_SMART = Smart KBD_MODE_SCROLL = Scroll FROM_THEME = Tema SETTINGS_SND_MENU = \ [Grafica][Sound][Altri]\n\ \n\ Volume: <<< %d%% >>>\n\ \n\ Qualità: << %dHz >>\n\ \n\ Musica: %s\n\ \n\ Suono Click: %s\n\ \n\ Applica SETTINGS_GFX_MENU = \ [Grafica][Sound][Altri]\n\ \n\ Risoluzione: <<%s>>\n\ Schermo intero: %s\n\ Dimensione dei Caratteri: <<%d>>\n\ Giustificare il testo: <<%s>>\n\ Evidenziazione dei Links: %s\n\ Effetto dissolvenza: %s\n\ Tema personalizzato del gioco: %s\n\ \n\ Applica SETTINGS_OTH_MENU = \ [Grafica][Sound][Altri]\n\ \n\ Modalità di Scorrimento: %s\n\ Filtro Mouse: %s\n\ Modalità Tastiera: %s\n\ \n\ Lingua: <<%s>>\n\ \n\ Аutosalvataggio: %s\n\ \n\ Applica OWN_THEME_MENU = \ Attenzione!!!\n\ \n\ Il gioco attuale ha un tema personalizzato.\n\ I Cambiamenti saranno ignorati.\n\ \n\ Puoi disabilitare i temi personalizzati\n\ nel menu delle impostazioni.\n\ \n\ Ok CUSTOM_THEME_MENU = \ Attenzione!!!\n\ \n\ Questo gioco ha un tema personalizzato, ma i temi personalizzati sono disabilitati. \ Il gioco può apparire differente dalle intenzioni dell'autore.\n\ \n\ Puoi abilitare il supporto dei temi personalizzati nel menu delle impostazioni.\n\ \n\ Ok QUIT_MENU = \ Vuoi davvero uscire?\n\ \n\ Si | No SAVED_MENU = \ La partita è stata salvata!\n\ \n\ Ok NOGAMES_MENU = \ Non è stata trovato alcun gioco. \n\ Per favore, inserisci un gioco nella cartella \n'%s' NOTHEMES_MENU = \ Non è stato trovato alcun tema.\n\ Per favore, inserite un tema nella cartella:\n'%s' CANCEL_MENU = Cancella DISABLED_SAVE_MENU = \ I salvataggi sono disabilitati dal gioco.\n BROWSE_MENU = \ [...] REMOVE_MENU = \ Rimuovere il gioco?\n\ %s\n\ \n\ Si | No WAIT_MENU = \ Attendere prego... instead-1.9.1/lang/Makefile000644 001751 001751 00000000277 12161555602 016045 0ustar00peterpeter000000 000000 include ../Rules.make include ../config.make clean: all: install: $(INSTALLD) $(LANGPATH) for f in *.ini; do \ $(INSTALL) $$f $(LANGPATH)/$$f;\ done uninstall: $(RM) -rf $(LANGPATH) instead-1.9.1/lang/pt.ini000644 001751 001751 00000006174 12161540741 015531 0ustar00peterpeter000000 000000 ;$Name:Português$ UNKNOWN_ERROR = Erro desconhecido. ERROR_MENU = Erro ao carregar o jogo:\n\ '%s'\n\ \n\ Ok WARNING_MENU = Erro ao processar o jogo:\n\ '%s'\n\ \n\ Ok SAVE_SLOT_EMPTY = vazio SELECT_LOAD_MENU = Carregar jogo\n\n AUTOSAVE_SLOT = Auto-salvar BROKEN_SLOT = erro SELECT_SAVE_MENU = Salvar jogo\n\n MAIN_MENU = \ Continuar jogo\n\ Escolher jogo\n\ Escolher tema\n\ Reiniciar jogo\n\ Carregar jogo\n\ Salvar jogo\n\ Sobre\n\ Opções\n\ Sair ABOUT_MENU = \ INSTEAD - %s\n\ \n\ Escrito por Peter Kosyh '2009-2013\n\ Portado para o Windows por Ilja Ryndin\n\ \n\ Web:\n\ http://instead.sourceforge.net\n\ \n\ Voltar BACK_MENU = Voltar ON = On OFF = Off SELECT_GAME_MENU = Escolher jogo\n\n SELECT_THEME_MENU = Escolher tema\n\n KBD_MODE_LINKS = Links KBD_MODE_SMART = Smart KBD_MODE_SCROLL = Scroll FROM_THEME = Theme SETTINGS_SND_MENU = \ [Gráficos][Som][Outros]\n\ \n\ Volume: <<< %d%% >>>\n\ \n\ Qualidade: << %dHz >>\n\ \n\ Música: %s\n\ \n\ Som de click: %s\n\ \n\ Aplicar SETTINGS_GFX_MENU = \ [Gráficos][Som][Outros]\n\ \n\ Resolução: <<%s>>\n\ Tela cheia: %s\n\ Fonte: <<%d>>\n\ Justificar: <<%s>>\n\ Realçar links: %s\n\ Atenuação: %s\n\ Temas do jogo: %s\n\ \n\ Aplicar SETTINGS_OTH_MENU = \ [Gráficos][Som][Outros]\n\ \n\ Modo de rolagem: %s\n\ Filtro de Mouse: %s\n\ Modo de teclado: %s\n\ \n\ Língua: <<%s>>\n\ \n\ Аuto-salvar: %s\n\ \n\ Aplicar OWN_THEME_MENU = \ Atenção!!!\n\ \n\ O jogo atual tem um tema personalizado.\n\ Alterações serão ignoradas.\n\ \n\ Você pode desabilitar temas personalizados\n\ no menu de opções.\n\ \n\ Ok CUSTOM_THEME_MENU = \ Atenção!!!\n\ \n\ Há um tema para este jogo, mas temas personalizados estão desabilitados. \ O jogo pode parecer diferente do projeto do autor.\n\ \n\ Você pode habilitar suporte a temas personalizados no menu de opções.\n\ \n\ Ok QUIT_MENU = \ Sair mesmo?\n\ \n\ Sim | Não SAVED_MENU = \ Jogo salvo!\n\ \n\ Ok NOGAMES_MENU = \ Nenhum jogo encontrado. \n\ Favor colocar um jogo na pasta \n'%s' NOTHEMES_MENU = \ Nenhum tema encontrado.\n\ Favor colocar um tema na pasta:\n'%s' CANCEL_MENU = Cancelar DISABLED_SAVE_MENU = \ Salvar desabilitado.\n BROWSE_MENU = \ [...] REMOVE_MENU = \ Remover o jogo?\n\ %s\n\ \n\ Sim | Não WAIT_MENU = \ Favor aguardar... instead-1.9.1/maemo-build.patch000644 001751 001751 00000011122 12161555573 016676 0ustar00peterpeter000000 000000 diff -Nur instead-1.4.1/debian/compat instead-1.4.1-maemo/debian/compat --- instead-1.4.1/debian/compat 2011-05-13 11:40:08.000000000 +0400 +++ instead-1.4.1-maemo/debian/compat 2011-05-11 07:45:43.357935817 +0400 @@ -1 +1 @@ -7 +4 diff -Nur instead-1.4.1/debian/control instead-1.4.1-maemo/debian/control --- instead-1.4.1/debian/control 2011-05-13 11:40:08.000000000 +0400 +++ instead-1.4.1-maemo/debian/control 2011-05-11 07:45:43.357935817 +0400 @@ -1,8 +1,8 @@ Source: instead -Section: games +Section: user/games Priority: optional Maintainer: Peter Kosyh -Build-Depends: debhelper (>= 7), pkg-config, liblua5.1-dev, libsdl1.2-dev, libsdl-ttf2.0-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev, zlib1g-dev +Build-Depends: debhelper (>= 5), pkg-config, liblua5.1-dev, libsdl1.2-dev, libsdl-ttf2.0-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev, zlib1g-dev Standards-Version: 3.8.3 Homepage: http://instead.sourceforge.net @@ -11,4 +11,3 @@ Depends: ${shlibs:Depends}, ${misc:Depends} Description: simple text adventures/visual novels engine Visual novell/text quest-like engine. - diff -Nur instead-1.4.1/debian/rules instead-1.4.1-maemo/debian/rules --- instead-1.4.1/debian/rules 2011-05-13 11:40:08.000000000 +0400 +++ instead-1.4.1-maemo/debian/rules 2011-05-11 07:45:43.361932007 +0400 @@ -52,7 +52,7 @@ install: build dh_testdir dh_testroot - dh_prep +# dh_prep dh_installdirs # Add here commands to install the package into debian/instead. diff -Nur instead-1.4.1/desktop/instead.desktop.in instead-1.4.1-maemo/desktop/instead.desktop.in --- instead-1.4.1/desktop/instead.desktop.in 2011-05-13 11:40:18.000000000 +0400 +++ instead-1.4.1-maemo/desktop/instead.desktop.in 2011-05-11 07:45:43.361932007 +0400 @@ -7,6 +7,10 @@ Comment=Siple Text Adventures Interpreter Comment[ru]=Интерпретатор простых приключений Exec=@BIN/sdl-instead -Icon=sdl_instead.png +Icon=sdl_instead Terminal=false +X-Window-Icon=sdl_instead +X-Window-Icon-Dimmed=sdl_instead +X-HildonDesk-ShowInToolbar=true +StartupWMClass=instead Categories=Game;LogicGame; diff -Nur instead-1.4.1/desktop/Makefile instead-1.4.1-maemo/desktop/Makefile --- instead-1.4.1/desktop/Makefile 2011-05-13 11:40:18.000000000 +0400 +++ instead-1.4.1-maemo/desktop/Makefile 2011-05-11 07:45:43.361932007 +0400 @@ -10,9 +10,9 @@ cat instead.desktop.in | sed -e "s|@BIN|$(BIN)|g" > instead.desktop install: - $(INSTALLD) $(DESTDIR)$(PREFIX)/share/applications - $(INSTALL) instead.desktop $(DESTDIR)$(PREFIX)/share/applications/instead.desktop + $(INSTALLD) $(DESTDIR)$(PREFIX)/share/applications/hildon + $(INSTALL) instead.desktop $(DESTDIR)$(PREFIX)/share/applications/hildon/instead.desktop uninstall: - $(RM) $(DESTDIR)$(PREFIX)/share/applications/instead.desktop + $(RM) $(DESTDIR)$(PREFIX)/share/applications/hildon/instead.desktop diff -Nur instead-1.4.1/Rules.make.system instead-1.4.1-maemo/Rules.make.system --- instead-1.4.1/Rules.make.system 2011-05-13 11:40:07.000000000 +0400 +++ instead-1.4.1-maemo/Rules.make.system 2011-05-11 07:45:43.361932007 +0400 @@ -28,7 +28,7 @@ SDL_CFLAGS=$(shell sdl-config --cflags) SDL_LFLAGS=$(shell sdl-config --libs) -lSDL_ttf -lSDL_mixer -lSDL_image -CFLAGS += -Wall -Dunix -D_USE_UNPACK # -D_SDL_MOD_BUG +CFLAGS += -Wall -Dunix -D_USE_UNPACK -DMAEMO # -D_SDL_MOD_BUG INSTALLD=install -d -m 0755 INSTALLB=install -m 0755 diff -Nur instead-1.4.1/themes/default/theme.ini instead-1.4.1-maemo/themes/default/theme.ini --- instead-1.4.1/themes/default/theme.ini 2011-05-13 11:40:10.000000000 +0400 +++ instead-1.4.1-maemo/themes/default/theme.ini 2011-05-11 07:49:15.577901900 +0400 @@ -4,7 +4,7 @@ ; $Name(it): Predefinito$ scr.w = 800 -scr.h = 600 +scr.h = 480 scr.gfx.scalable = 1 scr.gfx.h = -1 @@ -21,7 +21,7 @@ win.x = 48 win.y = 8 win.w = 500 -win.h = 568 +win.h = 448 win.fnt.name = {sans,sans-b,sans-i,sans-bi}.ttf win.fnt.size = 16 @@ -39,7 +39,8 @@ inv.x = 620 inv.y = 8 inv.w = 144 -inv.h = 564 +inv.h = 448 + inv.fnt.name = {sans,sans-b,sans-i,sans-bi}.ttf inv.fnt.size = 16 @@ -67,8 +68,8 @@ menu.fnt.height = 1.0 menu.gfx.button = menu.png menu.button.x = 776 -menu.button.y = 576 +menu.button.y = 456 snd.click = click.wav ; click.ogg diff -Nur instead-1.4.1/themes/wide/theme.ini instead-1.4.1-maemo/themes/wide/theme.ini --- instead-1.4.1/themes/wide/theme.ini 2011-05-13 11:40:11.000000000 +0400 +++ instead-1.4.1-maemo/themes/wide/theme.ini 2011-05-11 07:47:51.833957190 +0400 @@ -2,10 +2,3 @@ ; $Name(ru):Широкая$ ; $Name(es):Amplio$ ; $Name(it):Ampio$ - -scr.w = 800 -scr.h = 480 -win.h = 448 -inv.h = 448 - -menu.button.y = 456 instead-1.9.1/sdl-instead000755 001751 001751 00000000000 12170510042 022716 2src/sdl-instead/sdl-insteadustar00peterpeter000000 000000 instead-1.9.1/setup-kit.iss000644 001751 001751 00000004337 12162116661 016131 0ustar00peterpeter000000 000000 [Setup] AppName=INSTEAD-KIT AppVerName=INSTEAD 1.9.1 DefaultDirName={pf}\Pinebrush games\INSTEAD DefaultGroupName=Pinebrush games UninstallDisplayIcon={app}\sdl-instead.exe OutputDir=. OutputBaseFilename=instead-kit-1.9.1 AllowNoIcons=true [Languages] Name: en; MessagesFile: compiler:Default.isl Name: ru; MessagesFile: compiler:Languages\Russian.isl [Files] Source: sdl-instead.exe; DestDir: {app} Source: instead-launcher.exe; DestDir: {app} Source: qt_ru.qm; DestDir: {app} Source: appdata\*; DestDir: {app}\appdata Source: Microsoft.VC80.CRT\*; DestDir: {app}\Microsoft.VC80.CRT Source: games\tutorial3\*; DestDir: {app}\games\tutorial3 Source: icon\*; DestDir: {app}\icon Source: doc\*; DestDir: {app}\doc Source: stead\*; DestDir: {app}\stead Source: lang\*; DestDir: {app}\lang Source: themes\default\*; DestDir: {app}\themes\default Source: themes\book\*; DestDir: {app}\themes\book Source: themes\original\*; DestDir: {app}\themes\original Source: themes\fantasy\*; DestDir: {app}\themes\fantasy Source: themes\arctic\*; DestDir: {app}\themes\arctic Source: themes\bluesteel\*; DestDir: {app}\themes\bluesteel Source: themes\wide\*; DestDir: {app}\themes\wide Source: *.dll; DestDir: {app} [CustomMessages] CreateDesktopIcon=Create a &desktop icons LaunchGame=Launch &game UninstallMsg=Uninstall INSTEAD-KIT ru.CreateDesktopIcon= & ru.LaunchGame= & ru.UninstallMsg= INSTEAD ru.RmSettingsMsg= ? [Tasks] Name: desktopicon; Description: {cm:CreateDesktopIcon} [Run] Filename: {app}\instead-launcher.exe; Description: {cm:LaunchGame}; WorkingDir: {app}; Flags: postinstall [Icons] Name: {commondesktop}\INSTEAD; Filename: {app}\sdl-instead.exe; WorkingDir: {app}; Tasks: desktopicon Name: {commondesktop}\INSTEAD-Launcher; Filename: {app}\instead-launcher.exe; WorkingDir: {app}; Tasks: desktopicon Name: {group}\INSTEAD; Filename: {app}\sdl-instead.exe; WorkingDir: {app} Name: {group}\INSTEAD-Launcher; Filename: {app}\instead-launcher.exe; WorkingDir: {app} Name: {group}\{cm:UninstallMsg}; Filename: {uninstallexe} [UninstallDelete] Name: {app}; Type: dirifempty Name: {pf}\Pinebrush games; Type: dirifempty instead-1.9.1/setup.iss000644 001751 001751 00000005664 12162116744 015352 0ustar00peterpeter000000 000000 [Setup] AppName=INSTEAD AppVerName=INSTEAD 1.9.1 DefaultDirName={pf}\Pinebrush games\INSTEAD DefaultGroupName=Pinebrush games UninstallDisplayIcon={app}\sdl-instead.exe OutputDir=. OutputBaseFilename=instead-1.9.1 AllowNoIcons=true SetupIconFile=icon\sdl_instead.ico ChangesAssociations=yes [Languages] Name: en; MessagesFile: compiler:Default.isl Name: ru; MessagesFile: compiler:Languages\Russian.isl [Files] Source: sdl-instead.exe; DestDir: {app} Source: Microsoft.VC80.CRT\*; DestDir: {app}\Microsoft.VC80.CRT Source: games\tutorial3\*; DestDir: {app}\games\tutorial3 Source: icon\*; DestDir: {app}\icon Source: doc\*; DestDir: {app}\doc Source: stead\*; DestDir: {app}\stead Source: lang\*; DestDir: {app}\lang Source: themes\default\*; DestDir: {app}\themes\default Source: themes\book\*; DestDir: {app}\themes\book Source: themes\original\*; DestDir: {app}\themes\original Source: themes\fantasy\*; DestDir: {app}\themes\fantasy Source: themes\arctic\*; DestDir: {app}\themes\arctic Source: themes\bluesteel\*; DestDir: {app}\themes\bluesteel Source: themes\clearlooks\*; DestDir: {app}\themes\clearlooks Source: *.dll; DestDir: {app} [CustomMessages] CreateDesktopIcon=Create a &desktop icon LaunchGame=Launch &game UninstallMsg=Uninstall INSTEAD RmSettingsMsg=Would you like to remove settings and saved games? ru.CreateDesktopIcon= & ru.LaunchGame= & ru.UninstallMsg= INSTEAD ru.RmSettingsMsg= ? [Tasks] Name: desktopicon; Description: {cm:CreateDesktopIcon} [Run] Filename: {app}\sdl-instead.exe; Description: {cm:LaunchGame}; WorkingDir: {app}; Flags: postinstall [Icons] Name: {commondesktop}\INSTEAD; Filename: {app}\sdl-instead.exe; WorkingDir: {app}; Tasks: desktopicon Name: {group}\INSTEAD; Filename: {app}\sdl-instead.exe; WorkingDir: {app} Name: {group}\{cm:UninstallMsg}; Filename: {uninstallexe} [UninstallDelete] Name: {app}; Type: dirifempty Name: {pf}\Pinebrush games; Type: dirifempty [Registry] Root: HKCR; Subkey: ".idf"; ValueType: string; ValueName: ""; ValueData: "INSTEAD"; Flags: uninsdeletevalue Root: HKCR; Subkey: "INSTEAD"; ValueType: string; ValueName: ""; ValueData: "INSTEAD data file"; Flags: uninsdeletekey Root: HKCR; Subkey: "INSTEAD\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\sdl-instead.exe,0" Root: HKCR; Subkey: "INSTEAD\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\sdl-instead.exe"" ""%1""" [Code] procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); begin case CurUninstallStep of usPostUninstall: begin if MsgBox(CustomMessage('RmSettingsMsg'), mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = idYes then begin // remove settings and saved games manually DelTree(ExpandConstant('{localappdata}\instead'), True, True, True); end; end; end; end; instead-1.9.1/src/000755 001751 001751 00000000000 12161555570 014251 5ustar00peterpeter000000 000000 instead-1.9.1/src/zlib/000755 001751 001751 00000000000 12161555570 015211 5ustar00peterpeter000000 000000 instead-1.9.1/src/instead/000755 001751 001751 00000000000 12161555570 015700 5ustar00peterpeter000000 000000 instead-1.9.1/src/sdl-instead/000755 001751 001751 00000000000 12170510463 016450 5ustar00peterpeter000000 000000 instead-1.9.1/src/sdl-instead/iowin32.h000644 001751 001751 00000001523 12161555571 020125 0ustar00peterpeter000000 000000 /* iowin32.h -- IO base function header for compress/uncompress .zip Version 1.1, February 14h, 2010 part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) Modifications for Zip64 support Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) For more info read MiniZip_info.txt */ #include #ifdef __cplusplus extern "C" { #endif void fill_win32_filefunc OF((zlib_filefunc_def* pzlib_filefunc_def)); void fill_win32_filefunc64 OF((zlib_filefunc64_def* pzlib_filefunc_def)); void fill_win32_filefunc64A OF((zlib_filefunc64_def* pzlib_filefunc_def)); void fill_win32_filefunc64W OF((zlib_filefunc64_def* pzlib_filefunc_def)); #ifdef __cplusplus } #endif instead-1.9.1/src/sdl-instead/SDL_anigif.c000644 001751 001751 00000042306 12161555571 020571 0ustar00peterpeter000000 000000 /* SDL_anigif: An example animated GIF image loading library for use with SDL SDL_image Copyright (C) 1997-2006 Sam Lantinga Animated GIF "derived work" Copyright (C) 2006 Doug McFadyen This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include #include "SDL_anigif.h" #include "sdl_idf.h" extern idf_t game_idf; /* Code from here to end of file has been adapted from XPaint: */ /* +-------------------------------------------------------------------+ */ /* | Copyright 1990, 1991, 1993 David Koblas. | */ /* | Copyright 1996 Torsten Martinsen. | */ /* | Permission to use, copy, modify, and distribute this software | */ /* | and its documentation for any purpose and without fee is hereby | */ /* | granted, provided that the above copyright notice appear in all | */ /* | copies and that both that copyright notice and this permission | */ /* | notice appear in supporting documentation. This software is | */ /* | provided "as is" without express or implied warranty. | */ /* +-------------------------------------------------------------------+ */ /* Adapted for use in SDL by Sam Lantinga -- 7/20/98 */ /* Animated GIF support by Doug McFadyen -- 10/19/06 */ #define MAXCOLORMAPSIZE 256 #define TRUE 1 #define FALSE 0 #define CM_RED 0 #define CM_GREEN 1 #define CM_BLUE 2 #define MAX_LWZ_BITS 12 #define INTERLACE 0x40 #define LOCALCOLORMAP 0x80 #define BitSet(byte,bit) (((byte) & (bit)) == (bit)) #define LM_to_uint(a,b) (((b)<<8)|(a)) #define SDL_SetError(t) ((void)0) /* We're not SDL so ignore error reporting */ typedef struct { unsigned int Width; unsigned int Height; unsigned char ColorMap[3][MAXCOLORMAPSIZE]; unsigned int BitPixel; unsigned int ColorResolution; unsigned int Background; unsigned int AspectRatio; } gifscreen; typedef struct { int transparent; int delayTime; int inputFlag; int disposal; } gif89; typedef struct { /* global data */ SDL_RWops* src; int loop; gifscreen gs; gif89 g89; int zerodatablock; /* AG_LoadGIF_RW data */ unsigned char localColorMap[3][MAXCOLORMAPSIZE]; /* GetCode data */ unsigned char buf[280]; int curbit, lastbit, done, lastbyte; /* LWZReadByte data */ int fresh, code, incode; int codesize, setcodesize; int maxcode, maxcodesize; int firstcode, oldcode; int clearcode, endcode; int table[2][(1 << MAX_LWZ_BITS)]; int stack[(1 << (MAX_LWZ_BITS))*2], *sp; } gifdata; static int ReadColorMap( gifdata* gd, int number, unsigned char buffer[3][MAXCOLORMAPSIZE] ); static int DoExtension( gifdata* gd, int label ); static int GetDataBlock( gifdata* gd, unsigned char* buf ); static int GetCode( gifdata* gd, int code_size, int flag ); static int LWZReadByte( gifdata* gd, int flag, int input_code_size ); static SDL_Surface* ReadImage( gifdata* gd, int len, int height, int, unsigned char cmap[3][MAXCOLORMAPSIZE], int interlace, int ignore ); int AG_isGIF( SDL_RWops* src ) { int isGIF = FALSE; if ( src ) { int start = SDL_RWtell( src ); char magic[6]; if ( SDL_RWread(src,magic,sizeof(magic),1) ) { if ( (strncmp(magic,"GIF",3) == 0) && ((memcmp(magic+3,"87a",3) == 0) || (memcmp(magic+3,"89a",3) == 0)) ) { isGIF = TRUE; } } SDL_RWseek( src, start, SEEK_SET ); } return isGIF; } int AG_LoadGIF( const char* file, AG_Frame* frames, int size, int *loop ) { int n = 0; SDL_RWops* src = RWFromIdf(game_idf, file); if ( src ) { n = AG_LoadGIF_RW( src, frames, size, loop ); SDL_RWclose( src ); } return n; } void AG_FreeSurfaces( AG_Frame* frames, int nFrames ) { int i; if ( frames ) { for ( i = 0; i < nFrames; i++ ) { if ( frames[i].surface ) { SDL_FreeSurface( frames[i].surface ); frames[i].surface = NULL; } } } } #if SDL_VERSION_ATLEAST(2,0,0) extern SDL_Surface *SDL_DisplayFormat(SDL_Surface * surface); extern SDL_Surface *SDL_DisplayFormatAlpha(SDL_Surface * surface); #endif int AG_ConvertSurfacesToDisplayFormat( AG_Frame* frames, int nFrames ) { int i; int n = 0; if ( frames ) { for ( i = 0; i < nFrames; i++ ) { if ( frames[i].surface ) { #if SDL_VERSION_ATLEAST(2,0,0) SDL_Surface* surface; if (SDL_GetColorKey(frames[i].surface, NULL) == 0) surface = SDL_DisplayFormatAlpha(frames[i].surface); else surface = SDL_DisplayFormat(frames[i].surface); #else SDL_Surface* surface = (frames[i].surface->flags & SDL_SRCCOLORKEY) ? SDL_DisplayFormatAlpha(frames[i].surface) : SDL_DisplayFormat(frames[i].surface); #endif if ( surface ) { SDL_FreeSurface( frames[i].surface ); frames[i].surface = surface; n++; } } } } return n; } int AG_NormalizeSurfacesToDisplayFormat( AG_Frame* frames, int nFrames ) { int n = 0; if ( nFrames > 0 && frames && frames[0].surface ) { #if SDL_VERSION_ATLEAST(2,0,0) SDL_Surface* mainSurface; int newDispose; if (SDL_GetColorKey(frames[0].surface, NULL) == 0) { mainSurface = SDL_DisplayFormatAlpha(frames[0].surface); newDispose = AG_DISPOSE_RESTORE_BACKGROUND; } else { mainSurface = SDL_DisplayFormat(frames[0].surface); newDispose = AG_DISPOSE_NONE; } #else SDL_Surface* mainSurface = (frames[0].surface->flags & SDL_SRCCOLORKEY) ? SDL_DisplayFormatAlpha(frames[0].surface) : SDL_DisplayFormat(frames[0].surface); const int newDispose = (frames[0].surface->flags & SDL_SRCCOLORKEY) ? AG_DISPOSE_RESTORE_BACKGROUND : AG_DISPOSE_NONE; #endif if ( mainSurface ) { int i; int lastDispose = AG_DISPOSE_NA; int iRestore = 0; const Uint8 alpha = (frames[0].disposal == AG_DISPOSE_NONE || frames[0].disposal == AG_DISPOSE_NA) ? SDL_ALPHA_OPAQUE : SDL_ALPHA_TRANSPARENT; SDL_FillRect( mainSurface, NULL, SDL_MapRGBA(mainSurface->format,0,0,0,alpha) ); for ( i = 0; i < nFrames; i++ ) { if ( frames[i].surface ) { SDL_Surface* surface = SDL_ConvertSurface( mainSurface, mainSurface->format, mainSurface->flags ); if ( surface ) { SDL_Rect r; if ( lastDispose == AG_DISPOSE_NONE ) SDL_BlitSurface( frames[i-1].surface, NULL, surface, NULL ); if ( lastDispose == AG_DISPOSE_RESTORE_PREVIOUS ) SDL_BlitSurface( frames[iRestore].surface, NULL, surface, NULL ); if ( frames[i].disposal != AG_DISPOSE_RESTORE_PREVIOUS ) iRestore = i; r.x = (Sint16)frames[i].x; r.y = (Sint16)frames[i].y; SDL_BlitSurface( frames[i].surface, NULL, surface, &r ); SDL_FreeSurface( frames[i].surface ); frames[i].surface = surface; frames[i].x = frames[i].y = 0; lastDispose = frames[i].disposal; frames[i].disposal = newDispose; n++; } } } SDL_FreeSurface( mainSurface ); } } return n; } int AG_LoadGIF_RW( SDL_RWops* src, AG_Frame* frames, int maxFrames, int *loop) { int start; unsigned char buf[16]; unsigned char c; int useGlobalColormap; int bitPixel; int iFrame = 0; char version[4]; SDL_Surface* image = NULL; gifdata* gd; if ( src == NULL ) return 0; gd = malloc( sizeof(*gd) ); memset( gd, 0, sizeof(*gd) ); gd->src = src; gd->loop = 1; start = SDL_RWtell( src ); if ( !SDL_RWread(src,buf,6,1) ) { SDL_SetError( "error reading magic number" ); goto done; } if ( strncmp((char*)buf,"GIF",3) != 0 ) { SDL_SetError( "not a GIF file" ); goto done; } strncpy( version, (char*)buf+3, 3 ); version[3] = '\0'; if ( (strcmp(version,"87a") != 0) && (strcmp(version,"89a") != 0) ) { SDL_SetError( "bad version number, not '87a' or '89a'" ); goto done; } gd->g89.transparent = -1; gd->g89.delayTime = -1; gd->g89.inputFlag = -1; gd->g89.disposal = AG_DISPOSE_NA; if ( !SDL_RWread(src,buf,7,1) ) { SDL_SetError( "failed to read screen descriptor" ); goto done; } gd->gs.Width = LM_to_uint(buf[0],buf[1]); gd->gs.Height = LM_to_uint(buf[2],buf[3]); gd->gs.BitPixel = 2 << (buf[4] & 0x07); gd->gs.ColorResolution = (((buf[4] & 0x70) >> 3) + 1); gd->gs.Background = buf[5]; gd->gs.AspectRatio = buf[6]; if ( BitSet(buf[4],LOCALCOLORMAP) ) /* Global Colormap */ { if ( ReadColorMap(gd,gd->gs.BitPixel,gd->gs.ColorMap) ) { SDL_SetError( "error reading global colormap" ); goto done; } } do { if ( !SDL_RWread(src,&c,1,1) ) { SDL_SetError( "EOF / read error on image data" ); goto done; } if ( c == ';' ) /* GIF terminator */ goto done; if ( c == '!' ) /* Extension */ { if ( !SDL_RWread(src,&c,1,1) ) { SDL_SetError( "EOF / read error on extention function code" ); goto done; } DoExtension( gd, c ); continue; } if ( c != ',' ) /* Not a valid start character */ continue; if ( !SDL_RWread(src,buf,9,1) ) { SDL_SetError( "couldn't read left/top/width/height" ); goto done; } useGlobalColormap = !BitSet(buf[8],LOCALCOLORMAP); bitPixel = 1 << ((buf[8] & 0x07) + 1); if ( !useGlobalColormap ) { if ( ReadColorMap(gd,bitPixel,gd->localColorMap) ) { SDL_SetError( "error reading local colormap" ); goto done; } image = ReadImage( gd, LM_to_uint(buf[4],buf[5]), LM_to_uint(buf[6],buf[7]), bitPixel, gd->localColorMap, BitSet(buf[8],INTERLACE), (frames==NULL) ); } else { image = ReadImage( gd, LM_to_uint(buf[4],buf[5]), LM_to_uint(buf[6],buf[7]), gd->gs.BitPixel, gd->gs.ColorMap, BitSet(buf[8],INTERLACE), (frames==NULL) ); } if ( frames ) { if ( image == NULL ) goto done; if ( gd->g89.transparent >= 0 ) #if SDL_VERSION_ATLEAST(2,0,0) SDL_SetColorKey( image, SDL_TRUE, gd->g89.transparent ); #else SDL_SetColorKey( image, SDL_SRCCOLORKEY, gd->g89.transparent ); #endif frames[iFrame].surface = image; frames[iFrame].x = LM_to_uint(buf[0], buf[1]); frames[iFrame].y = LM_to_uint(buf[2], buf[3]); frames[iFrame].disposal = gd->g89.disposal; frames[iFrame].delay = gd->g89.delayTime*10; /* gd->g89.transparent = -1; ** Hmmm, not sure if this should be reset for each frame? */ } iFrame++; } while ( iFrame < maxFrames || frames == NULL ); done: if ( image == NULL ) SDL_RWseek( src, start, SEEK_SET ); if (loop) *loop = gd->loop; free( gd ); return iFrame; } static int ReadColorMap( gifdata* gd, int number, unsigned char buffer[3][MAXCOLORMAPSIZE] ) { int i; unsigned char rgb[3]; int flag; flag = TRUE; for ( i = 0; i < number; ++i ) { if ( !SDL_RWread(gd->src,rgb,sizeof(rgb),1) ) { SDL_SetError( "bad colormap" ); return 1; } buffer[CM_RED][i] = rgb[0]; buffer[CM_GREEN][i] = rgb[1]; buffer[CM_BLUE][i] = rgb[2]; flag &= (rgb[0] == rgb[1] && rgb[1] == rgb[2]); } return FALSE; } static int DoExtension( gifdata* gd, int label ) { unsigned char buf[256]; switch ( label ) { case 0x01: /* Plain Text Extension */ break; case 0xff: /* Application Extension */ if (GetDataBlock( gd, buf ) != 11) break; if (strncmp((char*)buf, "NETSCAPE2.0", 11)) break; if (GetDataBlock( gd, buf ) != 3) break; if (buf[0] != 1) break; gd->loop = (unsigned int)buf[1] | (((unsigned int)buf[2]) << 8); break; case 0xfe: /* Comment Extension */ while ( GetDataBlock(gd,buf) != 0 ) ; return FALSE; case 0xf9: /* Graphic Control Extension */ (void)GetDataBlock( gd, buf ); gd->g89.disposal = (buf[0] >> 2) & 0x7; gd->g89.inputFlag = (buf[0] >> 1) & 0x1; gd->g89.delayTime = LM_to_uint(buf[1],buf[2]); if ( (buf[0] & 0x1) != 0 ) gd->g89.transparent = buf[3]; while ( GetDataBlock(gd,buf) != 0 ) ; return FALSE; } while ( GetDataBlock(gd,buf) != 0 ) ; return FALSE; } static int GetDataBlock( gifdata* gd, unsigned char* buf ) { unsigned char count; if ( !SDL_RWread(gd->src,&count,1,1) ) { /* pm_message("error in getting DataBlock size" ); */ return -1; } gd->zerodatablock = count == 0; if ( (count != 0) && !SDL_RWread(gd->src,buf,count,1) ) { /* pm_message("error in reading DataBlock" ); */ return -1; } return count; } static int GetCode( gifdata* gd, int code_size, int flag ) { int i, j, ret; int count; if ( flag ) { gd->curbit = 0; gd->lastbit = 0; gd->done = FALSE; return 0; } if ( (gd->curbit + code_size) >= gd->lastbit ) { if ( gd->done ) { if ( gd->curbit >= gd->lastbit ) SDL_SetError( "ran off the end of my bits" ); return -1; } gd->buf[0] = gd->buf[gd->lastbyte - 2]; gd->buf[1] = gd->buf[gd->lastbyte - 1]; if ( (count = GetDataBlock(gd, &gd->buf[2])) == 0 ) gd->done = TRUE; gd->lastbyte = 2 + count; gd->curbit = (gd->curbit - gd->lastbit) + 16; gd->lastbit = (2 + count)*8; } ret = 0; for ( i = gd->curbit, j = 0; j < code_size; ++i, ++j ) ret |= ((gd->buf[i / 8] & (1 << (i % 8))) != 0) << j; gd->curbit += code_size; return ret; } static int LWZReadByte( gifdata* gd, int flag, int input_code_size ) { int i, code, incode; if ( flag ) { gd->setcodesize = input_code_size; gd->codesize = gd->setcodesize + 1; gd->clearcode = 1 << gd->setcodesize; gd->endcode = gd->clearcode + 1; gd->maxcodesize = gd->clearcode*2; gd->maxcode = gd->clearcode + 2; GetCode( gd, 0, TRUE ); gd->fresh = TRUE; for ( i = 0; i < gd->clearcode; ++i ) { gd->table[0][i] = 0; gd->table[1][i] = i; } for ( ; i < (1 << MAX_LWZ_BITS); ++i ) gd->table[0][i] = gd->table[1][0] = 0; gd->sp = gd->stack; return 0; } else if ( gd->fresh ) { gd->fresh = FALSE; do { gd->firstcode = gd->oldcode = GetCode( gd, gd->codesize, FALSE ); } while ( gd->firstcode == gd->clearcode ); return gd->firstcode; } if ( gd->sp > gd->stack ) return *--gd->sp; while ( (code = GetCode(gd,gd->codesize,FALSE)) >= 0 ) { if ( code == gd->clearcode ) { for ( i = 0; i < gd->clearcode; ++i ) { gd->table[0][i] = 0; gd->table[1][i] = i; } for ( ; i < (1 << MAX_LWZ_BITS); ++i ) gd->table[0][i] = gd->table[1][i] = 0; gd->codesize = gd->setcodesize + 1; gd->maxcodesize = gd->clearcode*2; gd->maxcode = gd->clearcode + 2; gd->sp = gd->stack; gd->firstcode = gd->oldcode = GetCode( gd, gd->codesize, FALSE ); return gd->firstcode; } else if ( code == gd->endcode ) { int count; unsigned char buf[260]; if ( gd->zerodatablock ) return -2; while ( (count = GetDataBlock(gd,buf)) > 0 ) ; if ( count != 0 ) { /* pm_message("missing EOD in data stream (common occurence)"); */ } return -2; } incode = code; if ( code >= gd->maxcode ) { *gd->sp++ = gd->firstcode; code = gd->oldcode; } while ( code >= gd->clearcode ) { *gd->sp++ = gd->table[1][code]; if ( code == gd->table[0][code] ) SDL_SetError( "circular table entry BIG ERROR" ); code = gd->table[0][code]; } *gd->sp++ = gd->firstcode = gd->table[1][code]; if ( (code = gd->maxcode) < (1 << MAX_LWZ_BITS) ) { gd->table[0][code] = gd->oldcode; gd->table[1][code] = gd->firstcode; ++gd->maxcode; if ( (gd->maxcode >= gd->maxcodesize) && (gd->maxcodesize < (1 << MAX_LWZ_BITS)) ) { gd->maxcodesize *= 2; ++gd->codesize; } } gd->oldcode = incode; if ( gd->sp > gd->stack ) return *--gd->sp; } return code; } static SDL_Surface* ReadImage( gifdata* gd, int len, int height, int cmapSize, unsigned char cmap[3][MAXCOLORMAPSIZE], int interlace, int ignore ) { SDL_Surface* image; unsigned char c; int i, v; int xpos = 0, ypos = 0, pass = 0; /* Initialize the compression routines */ if ( !SDL_RWread(gd->src,&c,1,1) ) { SDL_SetError( "EOF / read error on image data" ); return NULL; } if ( LWZReadByte(gd,TRUE,c) < 0 ) { SDL_SetError( "error reading image" ); return NULL; } /* If this is an "uninteresting picture" ignore it. */ if ( ignore ) { while ( LWZReadByte(gd,FALSE,c) >= 0 ) ; return NULL; } image = SDL_CreateRGBSurface( SDL_SWSURFACE, len, height, 8, 0, 0, 0, 0 ); for ( i = 0; i < cmapSize; i++ ) { image->format->palette->colors[i].r = cmap[CM_RED][i]; image->format->palette->colors[i].g = cmap[CM_GREEN][i]; image->format->palette->colors[i].b = cmap[CM_BLUE][i]; } while ( (v = LWZReadByte(gd,FALSE,c)) >= 0 ) { ((Uint8*)image->pixels)[xpos + ypos*image->pitch] = (Uint8)v; ++xpos; if ( xpos == len ) { xpos = 0; if ( interlace ) { switch ( pass ) { case 0: case 1: ypos += 8; break; case 2: ypos += 4; break; case 3: ypos += 2; break; } if ( ypos >= height ) { ++pass; switch ( pass ) { case 1: ypos = 4; break; case 2: ypos = 2; break; case 3: ypos = 1; break; default: goto fini; } } } else { ++ypos; } } if ( ypos >= height ) break; } fini: return image; } instead-1.9.1/src/sdl-instead/graphics.c000644 001751 001751 00000275012 12161555571 020434 0ustar00peterpeter000000 000000 #include "externals.h" #include "internals.h" #include #include #include #include #if SDL_VERSION_ATLEAST(2,0,0) #include "SDL2_rotozoom.h" #define SDL_SRCALPHA 0 #else #include "SDL_rotozoom.h" #endif #include "SDL_gfxBlitFunc.h" #include "SDL_anigif.h" #include "sdl_idf.h" #define IMG_ANIGIF 1 struct _img_t { SDL_Surface *s; // SDL_Texture *t; int flags; void *aux; }; #define Surf(p) (((p)?(((img_t)(p))->s):NULL)) #ifndef SDL_malloc #define SDL_malloc malloc #endif #ifndef SDL_free #define SDL_free free #endif static img_t screen = NULL; static cache_t images = NULL; static struct { const char *name; unsigned long val; } cnames[] = { {"aliceblue", 0xf0f8ff}, {"antiquewhite", 0xfaebd7}, {"aqua", 0x00ffff}, {"aquamarine", 0x7fffd4}, {"azure", 0xf0ffff}, {"beige", 0xf5f5dc}, {"bisque", 0xffe4c4}, {"black", 0x000000}, {"blanchedalmond", 0xffebcd}, {"blue", 0x0000ff}, {"blueviolet", 0x8a2be2}, {"brown", 0xa52a2a}, {"burlywood", 0xdeb887}, {"cadetblue", 0x5f9ea0}, {"chartreuse", 0x7fff00}, {"chocolate", 0xd2691e}, {"coral", 0xff7f50}, {"cornflowerblue", 0x6495ed}, {"cornsilk", 0xfff8dc}, {"crimson", 0xdc143c}, {"cyan", 0x00ffff}, {"darkblue", 0x00008b}, {"darkcyan", 0x008b8b}, {"darkgoldenrod", 0xb8860b}, {"darkgray", 0xa9a9a9}, {"darkgreen", 0x006400}, {"darkkhaki", 0xbdb76b}, {"darkmagenta", 0x8b008b}, {"darkolivegreen", 0x556b2f}, {"darkorange", 0xff8c00}, {"darkorchid", 0x9932cc}, {"darkred", 0x8b0000}, {"darksalmon", 0xe9967a}, {"darkseagreen", 0x8fbc8f}, {"darkslateblue", 0x483d8b}, {"darkslategray", 0x2f4f4f}, {"darkturquoise", 0x00ced1}, {"darkviolet", 0x9400d3}, {"deeppink", 0xff1493}, {"deepskyblue", 0x00bfff}, {"dimgray", 0x696969}, {"dodgerblue", 0x1e90ff}, {"feldspar", 0xd19275}, {"firebrick", 0xb22222}, {"floralwhite", 0xfffaf0}, {"forestgreen", 0x228b22}, {"fuchsia", 0xff00ff}, {"gainsboro", 0xdcdcdc}, {"ghostwhite", 0xf8f8ff}, {"gold", 0xffd700}, {"goldenrod", 0xdaa520}, {"gray", 0x808080}, {"green", 0x008000}, {"greenyellow", 0xadff2f}, {"honeydew", 0xf0fff0}, {"hotpink", 0xff69b4}, {"indianred", 0xcd5c5c}, {"indigo", 0x4b0082}, {"ivory", 0xfffff0}, {"khaki", 0xf0e68c}, {"lavender", 0xe6e6fa}, {"lavenderblush", 0xfff0f5}, {"lawngreen", 0x7cfc00}, {"lemonchiffon", 0xfffacd}, {"lightblue", 0xadd8e6}, {"lightcoral", 0xf08080}, {"lightcyan", 0xe0ffff}, {"lightgoldenrodyellow", 0xfafad2}, {"lightgrey", 0xd3d3d3}, {"lightgreen", 0x90ee90}, {"lightpink", 0xffb6c1}, {"lightsalmon", 0xffa07a}, {"lightseagreen", 0x20b2aa}, {"lightskyblue", 0x87cefa}, {"lightslateblue", 0x8470ff}, {"lightslategray", 0x778899}, {"lightsteelblue", 0xb0c4de}, {"lightyellow", 0xffffe0}, {"lime", 0x00ff00}, {"limegreen", 0x32cd32}, {"linen", 0xfaf0e6}, {"magenta", 0xff00ff}, {"maroon", 0x800000}, {"mediumaquamarine", 0x66cdaa}, {"mediumblue", 0x0000cd}, {"mediumorchid", 0xba55d3}, {"mediumpurple", 0x9370d8}, {"mediumseagreen", 0x3cb371}, {"mediumslateblue", 0x7b68ee}, {"mediumspringgreen", 0x00fa9a}, {"mediumturquoise", 0x48d1cc}, {"mediumvioletred", 0xc71585}, {"midnightblue", 0x191970}, {"mintcream", 0xf5fffa}, {"mistyrose", 0xffe4e1}, {"moccasin", 0xffe4b5}, {"navajowhite", 0xffdead}, {"navy", 0x000080}, {"oldlace", 0xfdf5e6}, {"olive", 0x808000}, {"olivedrab", 0x6b8e23}, {"orange", 0xffa500}, {"orangered", 0xff4500}, {"orchid", 0xda70d6}, {"palegoldenrod", 0xeee8aa}, {"palegreen", 0x98fb98}, {"paleturquoise", 0xafeeee}, {"palevioletred", 0xd87093}, {"papayawhip", 0xffefd5}, {"peachpuff", 0xffdab9}, {"peru", 0xcd853f}, {"pink", 0xffc0cb}, {"plum", 0xdda0dd}, {"powderblue", 0xb0e0e6}, {"purple", 0x800080}, {"red", 0xff0000}, {"rosybrown", 0xbc8f8f}, {"royalblue", 0x4169e1}, {"saddlebrown", 0x8b4513}, {"salmon", 0xfa8072}, {"sandybrown", 0xf4a460}, {"seagreen", 0x2e8b57}, {"seashell", 0xfff5ee}, {"sienna", 0xa0522d}, {"silver", 0xc0c0c0}, {"skyblue", 0x87ceeb}, {"slateblue", 0x6a5acd}, {"slategray", 0x708090}, {"snow", 0xfffafa}, {"springgreen", 0x00ff7f}, {"steelblue", 0x4682b4}, {"tan", 0xd2b48c}, {"teal", 0x008080}, {"thistle", 0xd8bfd8}, {"tomato", 0xff6347}, {"turquoise", 0x40e0d0}, {"violet", 0xee82ee}, {"violetred", 0xd02090}, {"wheat", 0xf5deb3}, {"white", 0xffffff}, {"whitesmoke", 0xf5f5f5}, {"yellow", 0xffff00}, {"yellowgreen", 0x9acd32}, {NULL, 0x0}, }; int gfx_parse_color ( const char *spec, color_t *def) { int n, i; int r, g, b; char c; if (!spec) return -1; spec += strspn(spec, " \t"); n = strlen (spec); if (*spec == '#') { /* * RGB */ spec++; n--; if (n != 3 && n != 6 && n != 9 && n != 12) return -1; n /= 3; g = b = 0; do { r = g; g = b; b = 0; for (i = n; --i >= 0; ) { c = *spec++; b <<= 4; if (c >= '0' && c <= '9') b |= c - '0'; else if (c >= 'A' && c <= 'F') b |= c - ('A' - 10); else if (c >= 'a' && c <= 'f') b |= c - ('a' - 10); else return (0); } } while (*spec != '\0'); n <<= 2; // n = 16 - n; if (def) { def->r = r; def->g = g; def->b = b; } return 0; } for (i=0; cnames[i].name; i++) { if (!strcmp(cnames[i].name, spec)) { if (def) { def->r = (cnames[i].val & 0xff0000) >> 16; def->g = (cnames[i].val & 0x00ff00) >> 8; def->b = (cnames[i].val & 0x0000ff); } return 0; } } return -1; } struct _anigif_t; struct agspawn { SDL_Rect clip; img_t bg; int x; int y; }; #define AGSPAWN_BLOCK 8 struct _anigif_t { struct _anigif_t *next; struct _anigif_t *prev; int cur_frame; int nr_frames; int loop; int drawn; int active; int delay; int spawn_nr; struct agspawn *spawn; AG_Frame frames[0]; }; typedef struct _anigif_t *anigif_t; static int anigif_spawn(anigif_t ag, int x, int y, int w, int h) { int nr; SDL_Rect clip; SDL_GetClipRect(Surf(screen), &clip); //gfx_free_image(ag->bg); if (!ag->spawn && !(ag->spawn = malloc(AGSPAWN_BLOCK * sizeof(struct agspawn)))) return -1; nr = ag->spawn_nr + 1; if (!(nr % AGSPAWN_BLOCK)) { /* grow */ void *p = realloc(ag->spawn, AGSPAWN_BLOCK * sizeof(struct agspawn) * ((nr / AGSPAWN_BLOCK) + 1)); if (!p) return -1; ag->spawn = p; } ag->spawn[ag->spawn_nr].x = x; ag->spawn[ag->spawn_nr].y = y; ag->spawn[ag->spawn_nr].clip = clip; ag->spawn[ag->spawn_nr].bg = gfx_grab_screen(x, y, w, h); ag->spawn_nr = nr; return 0; } static anigif_t anim_gifs = NULL; static int anigif_drawn_nr = 0; static anigif_t anigif_find(anigif_t g) { anigif_t p; for (p = anim_gifs; p; p = p->next) { if (p == g) return p; } return NULL; } static void anigif_disposal(anigif_t g) { SDL_Rect dest; SDL_Rect clip; int i = 0; SDL_Surface *img = NULL; AG_Frame *frame; frame = &g->frames[g->cur_frame]; SDL_GetClipRect(Surf(screen), &clip); dest.x = 0; //g->x; dest.y = 0; //g->y; dest.w = dest.h = 0; /* to make happy compiler */ switch (frame->disposal) { case AG_DISPOSE_NA: case AG_DISPOSE_NONE: /* just show next frame */ break; case AG_DISPOSE_RESTORE_BACKGROUND: // img = g->bg; // dest.w = Surf(img)->w; // dest.h = Surf(img)->h; break; case AG_DISPOSE_RESTORE_PREVIOUS: if (g->cur_frame) { img = (g->frames[g->cur_frame - 1].surface); dest.w = g->frames[g->cur_frame - 1].surface->w; dest.h = g->frames[g->cur_frame - 1].surface->h; dest.x += g->frames[g->cur_frame - 1].x; dest.y += g->frames[g->cur_frame - 1].y; } break; } for (i = 0; i < g->spawn_nr; i++) { SDL_Rect dst; SDL_SetClipRect(Surf(screen), &g->spawn[i].clip); dst = dest; dst.x += g->spawn[i].x; dst.y += g->spawn[i].y; if (frame->disposal == AG_DISPOSE_RESTORE_BACKGROUND) { img = Surf(g->spawn[i].bg); dst.w = img->w; dst.h = img->h; } if (img) { /* draw bg */ SDL_BlitSurface(img, NULL, Surf(screen), &dst); } } SDL_SetClipRect(Surf(screen), &clip); } static void anigif_frame(anigif_t g) { int i; SDL_Rect dest; SDL_Rect clip; AG_Frame *frame; frame = &g->frames[g->cur_frame]; SDL_GetClipRect(Surf(screen), &clip); dest.w = frame->surface->w; dest.h = frame->surface->h; for (i = 0; i < g->spawn_nr; i++) { dest.x = g->spawn[i].x + frame->x; dest.y = g->spawn[i].y + frame->y; SDL_SetClipRect(Surf(screen), &g->spawn[i].clip); SDL_BlitSurface(frame->surface, NULL, Surf(screen), &dest); } g->delay = timer_counter; SDL_SetClipRect(Surf(screen), &clip); } static anigif_t is_anigif(img_t img) { if (img && (img->flags & IMG_ANIGIF)) return (anigif_t)(img->aux); return NULL; } static anigif_t anigif_add(anigif_t g) { anigif_t p; p = anigif_find(g); if (p) { return p; } if (!anim_gifs) { anim_gifs = g; g->next = NULL; g->prev = NULL; return g; } for (p = anim_gifs; p && p->next; p = p->next); p->next = g; g->next = NULL; g->prev = p; return g; } static anigif_t anigif_del(anigif_t g) { if (g->prev == NULL) anim_gifs = g->next; else g->prev->next = g->next; if (g->next) g->next->prev = g->prev; return g; } static void anigif_free_spawn(anigif_t g) { int i; for (i = 0; i < g->spawn_nr; i++) gfx_free_image(g->spawn[i].bg); if (g->spawn) { free(g->spawn); g->spawn = NULL; g->spawn_nr = 0; } } static void anigif_free(anigif_t g) { AG_FreeSurfaces(g->frames, g->nr_frames); anigif_free_spawn(g); free(g); } static void gfx_free_img(img_t p) { if (!p) return; SDL_FreeSurface(Surf(p)); // todo texture SDL_free(p); } void gfx_free_image(img_t p) { anigif_t ag; if (!p) return; if (!cache_forget(images, p)) return; /* cached sprite */ if ((ag = is_anigif(p))) { if (ag->drawn) anigif_drawn_nr --; anigif_del(ag); anigif_free(ag); return; } gfx_free_img(p); } void gfx_cache_free_image(void *p) { return gfx_free_image((img_t)p); } int gfx_img_w(img_t pixmap) { if (!pixmap) return 0; return Surf(pixmap)->w; } int gfx_img_h(img_t pixmap) { if (!pixmap) return 0; return Surf(pixmap)->h; } void gfx_noclip(void) { SDL_SetClipRect(Surf(screen), NULL); } void gfx_getclip(int *x, int *y, int *w, int *h) { SDL_Rect clip; if (!screen) return; SDL_GetClipRect(Surf(screen), &clip); if (x) *x = clip.x; if (y) *y = clip.y; if (w) *w = clip.w; if (h) *h = clip.h; } void gfx_clip(int x, int y, int w, int h) { SDL_Rect src; src.x = x; src.y = y; src.w = w; src.h = h; SDL_SetClipRect(Surf(screen), &src); } #define GFX_IMG(v) gfx_new_img(v, 0, NULL) static img_t gfx_new_img(SDL_Surface *s, int fl, void *data) { img_t i; if (!s) return NULL; i = SDL_malloc(sizeof(struct _img_t)); if (i) { i->s = s; // i->t = NULL; i->flags = fl; i->aux = data; } return i; } img_t gfx_new(int w, int h) { SDL_Surface *dst; if (!screen) { Uint32 rmask, gmask, bmask, amask; #if SDL_BYTEORDER == SDL_BIG_ENDIAN rmask = 0xff000000; gmask = 0x00ff0000; bmask = 0x0000ff00; amask = 0x000000ff; #else rmask = 0x000000ff; gmask = 0x0000ff00; bmask = 0x00ff0000; amask = 0xff000000; #endif dst = SDL_CreateRGBSurface(SDL_SWSURFACE | SDL_SRCALPHA, w, h, 32, rmask, gmask, bmask, amask); } else { dst = SDL_CreateRGBSurface(SDL_SWSURFACE | SDL_SRCALPHA, w, h, Surf(screen)->format->BitsPerPixel, Surf(screen)->format->Rmask, Surf(screen)->format->Gmask, Surf(screen)->format->Bmask, Surf(screen)->format->Amask); } #if SDL_VERSION_ATLEAST(2,0,0) if (dst) SDL_SetSurfaceBlendMode(dst, SDL_BLENDMODE_NONE); #endif if (dst) return GFX_IMG(dst); return NULL; } void gfx_img_fill(img_t img, int x, int y, int w, int h, color_t col) { SDL_Rect dest; dest.x = x; dest.y = y; dest.w = w; dest.h = h; SDL_FillRect(Surf(img), &dest, SDL_MapRGB((Surf(img))->format, col.r, col.g, col.b)); } void gfx_fill(int x, int y, int w, int h, color_t col) { gfx_img_fill(screen, x, y, w, h, col); } img_t gfx_screen(img_t nscreen) { img_t img; if (nscreen) { img = screen; screen = nscreen; return img; } return screen; } img_t gfx_grab_screen(int x, int y, int w, int h) { SDL_Rect dst, src; SDL_Surface *img = SDL_CreateRGBSurface(Surf(screen)->flags, w, h, Surf(screen)->format->BitsPerPixel, Surf(screen)->format->Rmask, Surf(screen)->format->Gmask, Surf(screen)->format->Bmask, Surf(screen)->format->Amask); if (!img) return NULL; src.x = x; src.y = y; src.w = w; src.h = h; dst.x = 0; dst.y = 0; dst.w = w; dst.h = h; // SDL_SetSurfaceBlendMode(screen, SDL_BLENDMODE_NONE); // SDL_SetSurfaceBlendMode(img, SDL_BLENDMODE_NONE); SDL_BlitSurface(Surf(screen), &src, img, &dst); return GFX_IMG(img); } #if SDL_VERSION_ATLEAST(2,0,0) static SDL_RendererInfo SDL_VideoRendererInfo; SDL_Surface *SDL_DisplayFormatAlpha(SDL_Surface * surface) { // SDL_PixelFormat *format; SDL_Surface *converted; if (!screen) { fprintf(stderr, "No video mode has been set.\n"); return NULL; } // format = SDL_AllocFormat(SDL_PIXELFORMAT_ARGB8888); // if (surface->format->Amask == 0 && surface->format->palette) /* hack! */ // SDL_SetColorKey(surface, SDL_TRUE, *(Uint8*)surface->pixels); converted = SDL_ConvertSurface(surface, Surf(screen)->format, 0); //SDL_RLEACCEL); if (converted) SDL_SetSurfaceBlendMode(converted, SDL_BLENDMODE_BLEND); // SDL_FreeFormat(format); return converted; } SDL_Surface *SDL_DisplayFormat(SDL_Surface * surface) { SDL_PixelFormat *format; SDL_Surface *converted; if (!screen) { fprintf(stderr, "No video mode has been set.\n"); return NULL; } format = Surf(screen)->format; // format = SDL_AllocFormat(SDL_PIXELFORMAT_ARGB8888); converted = SDL_ConvertSurface(surface, format, 0);//SDL_RLEACCEL); /* Set the flags appropriate for copying to display surface */ // SDL_FreeFormat(format); return converted; } #endif img_t gfx_display_alpha(img_t src) { SDL_Surface* res; if (!src) return NULL; if (!screen) return src; if (is_anigif(src)) /* already optimized */ return src; res = SDL_DisplayFormatAlpha(Surf(src)); if (!res) return src; gfx_free_image(src); return GFX_IMG(res); } int gfx_get_pixel(img_t src, int x, int y, color_t *color) { Uint8 r, g, b, a; Uint32 col = 0; Uint8 *ptr; int bpp; SDL_Surface *img = Surf(src); if (!img) return -1; if (x >= img->w || y >= img->h || x < 0 || y < 0) return -1; if (SDL_LockSurface(img)) return -1; if (img->format) bpp = img->format->BytesPerPixel; else bpp = 1; /* hack? */ ptr = (Uint8*)img->pixels; ptr += img->pitch * y; ptr += x * bpp; memcpy(&col, ptr, bpp); SDL_UnlockSurface(img); if (color) SDL_GetRGBA(col, img->format, &r, &g, &b, &a); if (color) { color->r = r; color->g = g; color->b = b; color->a = a; } return 0; } int gfx_set_pixel(img_t src, int x, int y, color_t color) { int bpp; Uint32 col; Uint8 *ptr; SDL_Surface *img = Surf(src); if (!img) return -1; if (x >= img->w || y >= img->h || x < 0 || y < 0) return -1; if (SDL_LockSurface(img)) return -1; if (img->format) bpp = img->format->BytesPerPixel; else bpp = 1; /* hack? */ ptr = (Uint8*)img->pixels; ptr += img->pitch * y; ptr += x * bpp; col = SDL_MapRGBA(img->format, color.r, color.g, color.b, color.a); memcpy(ptr, &col, bpp); SDL_UnlockSurface(img); return 0; } img_t gfx_alpha_img(img_t src, int alpha) { Uint8 *ptr; Uint32 col; int size; int bpp; img_t img = NULL; if (screen) { SDL_Surface *s = SDL_DisplayFormatAlpha(Surf(src)); if (s) img = GFX_IMG(s); } else img = gfx_new(Surf(src)->w, Surf(src)->h); if (!img) return NULL; if (Surf(img)->format) bpp = Surf(img)->format->BytesPerPixel; else bpp = 1; gfx_set_alpha(img, SDL_ALPHA_OPAQUE); if (SDL_LockSurface(Surf(img)) == 0) { int w = Surf(img)->w; ptr = (Uint8*)(Surf(img)->pixels); size = Surf(img)->w * Surf(img)->h; while (size --) { Uint8 r, g, b, a; memcpy(&col, ptr, bpp); SDL_GetRGBA(col, Surf(img)->format, &r, &g, &b, &a); col = SDL_MapRGBA(Surf(img)->format, r, g, b, a * alpha / 255); memcpy(ptr, &col, bpp); ptr += bpp; w --; if (!w) { w = Surf(img)->w; ptr += Surf(img)->pitch; ptr -= w * bpp; } } SDL_UnlockSurface(Surf(img)); } return img; } void gfx_set_alpha(img_t src, int alpha) { #if SDL_VERSION_ATLEAST(1,3,0) // if (Surf(src)->format->Amask) // alpha = SDL_ALPHA_OPAQUE; SDL_SetSurfaceAlphaMod(Surf(src), alpha); // SDL_SetSurfaceBlendMode((SDL_Surface *)src, SDL_BLENDMODE_NONE); // else SDL_SetSurfaceBlendMode(Surf(src), SDL_BLENDMODE_BLEND); #else SDL_SetAlpha(Surf(src), SDL_SRCALPHA, alpha); #endif } void gfx_unset_alpha(img_t src) { #if SDL_VERSION_ATLEAST(1,3,0) SDL_SetSurfaceAlphaMod(Surf(src), SDL_ALPHA_OPAQUE); SDL_SetSurfaceBlendMode(Surf(src), SDL_BLENDMODE_NONE); #else SDL_SetAlpha(Surf(src), 0, SDL_ALPHA_OPAQUE); #endif } img_t gfx_combine(img_t src, img_t dst) { img_t new; SDL_Surface *s; s = SDL_DisplayFormatAlpha(Surf(dst)); if (!s) return NULL; new = GFX_IMG(s); if (new) SDL_BlitSurface(Surf(src), NULL, Surf(new), NULL); return new; } static img_t img_pad(char *fname) { int l,r,t,b, rc; img_t img, img2; SDL_Rect to; char *p = fname; p += strcspn(p, ","); if (*p != ',') return NULL; p ++; rc = sscanf(fname, "%d %d %d %d,", &t, &r, &b, &l); if (rc == 1) { r = b = l = t; } else if (rc == 2) { b = t; l = r; } else if (rc == 3) { l = r; } else if (rc == 4) { ; } else return NULL; img = gfx_load_image(p); if (!img) return NULL; img2 = gfx_new(gfx_img_w(img) + l + r, gfx_img_h(img) + t + b); if (!img2) { gfx_free_image(img); return NULL; } else { img_t img = gfx_alpha_img(img2, 0); if (img) { gfx_free_image(img2); img2 = img; } } to.x = l; to.y = t; SDL_gfxBlitRGBA(Surf(img), NULL, Surf(img2), &to); gfx_free_image(img); return img2; } static img_t _gfx_load_combined_image(char *filename); /* blank:WxH */ static img_t _gfx_load_special_image(char *f, int combined) { int alpha = 0; int blank = 0; char *filename; img_t img, img2; char *pc = NULL, *pt = NULL; int wh[2] = { 0, 0 }; if (!f) return NULL; if (!(f = filename = strdup(f))) return NULL; if (!strncmp(filename, "blank:", 6)) { filename += 6; blank = 1; } else if (!strncmp(filename, "spr:", 4) && !combined) { // filename += 4; img2 = cache_get(images, filename); // fprintf(stderr, "get:%s %p\n", filename, img2); goto out; } else if (!strncmp(filename, "box:", 4)) { filename += 4; alpha = 255; } else if (!strncmp(filename, "pad:", 4)) { filename += 4; img2 = img_pad(filename); goto out; } else if (!strncmp(filename, "comb:", 5)) { filename += 5; img2 = _gfx_load_combined_image(filename); goto out; } else goto err; if (strchr(filename, ';')) goto err; /* combined */ if (blank) goto skip; pc = filename + strcspn(filename, ","); if (*pc == ',') { *pc = 0; pc ++; pt = pc + strcspn(pc, ","); if (*pt == ',') { *pt = 0; pt ++; } else pt = NULL; } else pc = NULL; skip: if (parse_mode(filename, wh)) goto err; if (wh[0] <= 0 || wh[1] <= 0) goto err; img = gfx_new(wh[0], wh[1]); if (!img) goto err; if (pc) { color_t col = { .r = 255, .g = 255, .b = 255 }; gfx_parse_color(pc, &col); gfx_img_fill(img, 0, 0, wh[0], wh[1], col); } if (pt) alpha = atoi(pt); img2 = gfx_alpha_img(img, alpha); gfx_free_image(img); out: free(f); return img2; err: free(f); return NULL; } cache_t gfx_image_cache(void) { return images; } static anigif_t ag_new(int nr) { anigif_t agif = malloc(sizeof(struct _anigif_t) + nr * sizeof(AG_Frame)); if (!agif) return NULL; memset(agif, 0, sizeof(struct _anigif_t) + nr * sizeof(AG_Frame)); agif->nr_frames = nr; return agif; } static anigif_t ag_dup(anigif_t ag) { anigif_t agif = malloc(sizeof(struct _anigif_t) + ag->nr_frames * sizeof(AG_Frame)); if (!agif) return NULL; memcpy(agif, ag, sizeof(struct _anigif_t) + ag->nr_frames * sizeof(AG_Frame)); return agif; } static img_t _gfx_load_image(char *filename, int combined) { SDL_RWops *rw; img_t img; int nr = 0; filename = strip(filename); img = _gfx_load_special_image(filename, combined); if (img) return img; if (strstr(filename,".gif") || strstr(filename,".GIF")) nr = AG_LoadGIF(filename, NULL, 0, NULL); if (nr > 1) { /* anigif logic */ int loop = 0; anigif_t agif = ag_new(nr); if (!agif) return NULL; AG_LoadGIF(filename, agif->frames, nr, &loop); AG_NormalizeSurfacesToDisplayFormat( agif->frames, nr); agif->loop = loop; anigif_add(agif); // fprintf(stderr, "anigif: %s %p\n", filename, agif->frames[0].surface); return gfx_new_img(agif->frames[0].surface, IMG_ANIGIF, agif); } rw = RWFromIdf(game_idf, filename); if (!rw || !(img = GFX_IMG(IMG_Load_RW(rw, 1)))) return NULL; if (Surf(img)->format->BitsPerPixel == 32) { /* hack for 32 bit BMP :( */ SDL_RWops *rwop; rwop = RWFromIdf(game_idf, filename); if (rwop) { if (IMG_isBMP(rwop)) // SDL_SetAlpha(img, 0, SDL_ALPHA_OPAQUE); gfx_unset_alpha(img); SDL_RWclose(rwop); } } img = gfx_display_alpha(img); return img; } /* x.png;a.png@1,2;b.png@3,4 */ static img_t _gfx_load_combined_image(char *filename) { char *str; char *p, *ep; img_t base = NULL, img = NULL; p = str = strdup(filename); if (!str) return NULL; ep = p + strcspn(p, ";"); if (*ep != ';') goto err; /* first image is a base image */ *ep = 0; base = _gfx_load_image(strip(p), 1); if (!base) goto err; p = ep + 1; while (*p) { int x = 0, y = 0, c = 0; SDL_Rect to; ep = p + strcspn(p, ";@"); if (*ep == '@') { *ep = 0; ep ++; if (*ep == 'c') { c = 1; ep ++; } sscanf(ep, "%d,%d", &x, &y); ep += strcspn(ep, ";"); if (*ep) ep ++; } else if (*ep == ';') { *ep = 0; ep ++; } else if (*ep) { goto err; } img = _gfx_load_image(strip(p), 1); if (img) { to.x = x; to.y = y; if (c) { to.x -= gfx_img_w(img) / 2; to.y -= gfx_img_h(img) / 2; } to.w = to.h = 0; SDL_gfxBlitRGBA(Surf(img), NULL, Surf(base), &to); gfx_free_image(img); } p = ep; } free(str); return base; err: gfx_free_image(base); free(str); return NULL; } img_t gfx_load_image(char *filename) { img_t img = NULL; if (!filename) return NULL; /* if (!access(filename, R_OK)) */ img = _gfx_load_image(filename, 0); if (!img) img = _gfx_load_combined_image(filename); if (!img) fprintf(stderr, "Can not load image: '%s'\n", filename); return img; } void gfx_draw_bg(img_t p, int x, int y, int width, int height) { SDL_Surface *pixbuf = Surf(p); SDL_Rect dest, src; src.x = x; src.y = y; src.w = width; src.h = height; dest.x = x; dest.y = y; dest.w = width; dest.h = height; SDL_BlitSurface(pixbuf, &src, Surf(screen), &dest); } void gfx_draw_from(img_t p, int x, int y, int width, int height, img_t to, int xx, int yy) { SDL_Surface *pixbuf = Surf(p); SDL_Surface *scr = Surf(to); SDL_Rect dest, src; if (!scr) scr = Surf(screen); src.x = x; src.y = y; src.w = width; src.h = height; dest.x = xx; dest.y = yy; dest.w = width; dest.h = height; SDL_BlitSurface(pixbuf, &src, scr, &dest); } void gfx_compose_from(img_t p, int x, int y, int width, int height, img_t to, int xx, int yy) { SDL_Surface *pixbuf = Surf(p); SDL_Surface *scr = Surf(to); SDL_Rect dest, src; if (!scr) scr = Surf(screen); src.x = x; src.y = y; src.w = width; src.h = height; dest.x = xx; dest.y = yy; dest.w = width; dest.h = height; SDL_gfxBlitRGBA(pixbuf, &src, scr, &dest); } void gfx_copy_from(img_t p, int x, int y, int width, int height, img_t to, int xx, int yy) { SDL_Surface *pixbuf = Surf(p); SDL_Surface *scr = Surf(to); SDL_Rect dest, src; if (!scr) scr = Surf(screen); src.x = x; src.y = y; src.w = width; src.h = height; dest.x = xx; dest.y = yy; dest.w = width; dest.h = height; gfx_unset_alpha(p); SDL_BlitSurface(pixbuf, &src, scr, &dest); gfx_set_alpha(p, 255); } void gfx_draw(img_t p, int x, int y) { anigif_t ag; SDL_Surface *pixbuf = Surf(p); SDL_Rect dest; dest.x = x; dest.y = y; dest.w = pixbuf->w; dest.h = pixbuf->h; if (!DIRECT_MODE) /* no gifs in direct mode */ ag = is_anigif(p); else ag = NULL; if (ag) { anigif_spawn(ag, x, y, dest.w, dest.h); if (!ag->drawn) anigif_drawn_nr ++; ag->drawn = 1; ag->active = 1; anigif_frame(ag); return; } SDL_BlitSurface(pixbuf, NULL, Surf(screen), &dest); } void gfx_stop_gif(img_t p) { anigif_t ag; ag = is_anigif(p); if (ag) ag->active = 0; } void gfx_dispose_gif(img_t p) { anigif_t ag; ag = is_anigif(p); if (ag) { if (ag->drawn) anigif_drawn_nr --; ag->drawn = 0; anigif_free_spawn(ag); } } void gfx_start_gif(img_t p) { anigif_t ag; ag = is_anigif(p); if (ag) ag->active = 1; } int gfx_frame_gif(img_t img) { anigif_t ag; ag = is_anigif(img); if (!ag) return 0; if (!ag->drawn || !ag->active) return 0; if (ag->loop == -1) return 0; if ((timer_counter - ag->delay) < (ag->frames[ag->cur_frame].delay / HZ)) return 0; if (ag->cur_frame != ag->nr_frames - 1 || ag->loop > 1 || !ag->loop) anigif_disposal(ag); ag->cur_frame ++; if (ag->cur_frame >= ag->nr_frames) { if (!ag->loop || ag->loop > 1) ag->cur_frame = 0; else ag->cur_frame --; /* last one */ if (ag->loop) { ag->loop --; if (!ag->loop) ag->loop = -1; /* disabled */ } } if (ag->loop != -1) anigif_frame(ag); return 1; } int gfx_is_drawn_gifs(void) { return anigif_drawn_nr; } void gfx_update_gif(img_t img) { int i = 0; anigif_t ag; ag = is_anigif(img); if (!ag) return; if (!ag->drawn || !ag->active) return; for (i = 0; i < ag->spawn_nr; i++) { gfx_update(ag->spawn[i].x, ag->spawn[i].y, gfx_img_w(img), gfx_img_h(img)); } } void gfx_draw_wh(img_t p, int x, int y, int w, int h) { SDL_Surface *pixbuf = Surf(p); SDL_Rect dest, src; src.x = 0; src.y = 0; src.w = w; src.h = h; dest.x = x; dest.y = y; dest.w = w; dest.h = h; SDL_BlitSurface(pixbuf, &src, Surf(screen), &dest); } static SDL_Color bgcol = { .r = 0, .g = 0, .b = 0 }; void gfx_bg(color_t col) { bgcol.r = col.r; bgcol.g = col.g; bgcol.b = col.b; } void gfx_clear(int x, int y, int w, int h) { SDL_Rect dest; dest.x = x; dest.y = y; dest.w = w; dest.h = h; SDL_FillRect(Surf(screen), &dest, SDL_MapRGB(Surf(screen)->format, bgcol.r, bgcol.g, bgcol.b)); } int gfx_width = -1; int gfx_height = -1; int gfx_fs = -1; static SDL_Rect** vid_modes = NULL; static SDL_Rect m640x480 = { .w = 640, .h = 480 }; static SDL_Rect m800x480 = { .w = 800, .h = 480 }; static SDL_Rect m800x600 = { .w = 800, .h = 600 }; static SDL_Rect m1024x768 = { .w = 1024, .h = 768 }; static SDL_Rect m1280x800 = { .w = 1280, .h = 800 }; static SDL_Rect* std_modes[] = { &m640x480, &m800x480, &m800x600, &m1024x768, &m1280x800, NULL }; #if SDL_VERSION_ATLEAST(2,0,0) static int SDL_CurrentDisplay = 0; static void SelectVideoDisplay() { const char *variable = SDL_getenv("SDL_VIDEO_FULLSCREEN_DISPLAY"); if ( !variable ) { variable = SDL_getenv("SDL_VIDEO_FULLSCREEN_HEAD"); } if ( variable ) { SDL_CurrentDisplay = SDL_atoi(variable); } } static SDL_Rect **SDL_ListModes(const SDL_PixelFormat * format, Uint32 flags) { SDL_DisplayMode mode; int i, nmodes; SDL_Rect **modes; Uint32 Rmask, Gmask, Bmask, Amask; int bpp; SelectVideoDisplay(); SDL_GetDesktopDisplayMode(SDL_CurrentDisplay, &mode); SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, &Gmask, &Bmask, &Amask); if (format) bpp = format->BitsPerPixel; nmodes = 0; modes = NULL; for (i = 0; i < SDL_GetNumDisplayModes(SDL_CurrentDisplay); ++i) { SDL_DisplayMode mode; SDL_GetDisplayMode(SDL_CurrentDisplay, i, &mode); if (!mode.w || !mode.h) { return (SDL_Rect **) (-1); } // fprintf(stderr, "Mode: %d %d %d %d\n", bpp, SDL_BITSPERPIXEL(mode.format), mode.w, mode.h); if (bpp < SDL_BITSPERPIXEL(mode.format)) { continue; } if (nmodes > 0 && modes[nmodes - 1]->w == mode.w && modes[nmodes - 1]->h == mode.h) { continue; } modes = SDL_realloc(modes, (nmodes + 2) * sizeof(*modes)); if (!modes) { return NULL; } modes[nmodes] = (SDL_Rect *) SDL_malloc(sizeof(SDL_Rect)); if (!modes[nmodes]) { return NULL; } modes[nmodes]->x = 0; modes[nmodes]->y = 0; modes[nmodes]->w = mode.w; modes[nmodes]->h = mode.h; ++nmodes; } if (modes) { modes[nmodes] = NULL; } return modes; } #endif int gfx_modes(void) { int i = 0; SDL_Rect** modes; #if SDL_VERSION_ATLEAST(2,0,0) modes = SDL_ListModes(NULL, 0); #else #ifdef __APPLE__ modes = SDL_ListModes(NULL, SDL_FULLSCREEN | SDL_SWSURFACE | SDL_ANYFORMAT); #else modes = SDL_ListModes(NULL, SDL_FULLSCREEN | SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_ANYFORMAT); #endif #endif if (modes == (SDL_Rect**)0)/* no modes */ return 0; if (modes == (SDL_Rect**)-1) { vid_modes = std_modes; return 5; } for (i = 0; modes[i]; ++i); vid_modes = modes; return i; } int gfx_get_mode(int n, int *w, int *h) { if (!vid_modes) gfx_modes(); if (!vid_modes || !vid_modes[n]) return -1; if (w) *w = vid_modes[n]->w; if (h) *h = vid_modes[n]->h; return 0; } int gfx_prev_mode(int *w, int *h) { int ww, hh, i = 0; if (!w || !h) return -1; while ((*w != -1 && *h != -1) && !gfx_get_mode(i, &ww, &hh)) { if (ww == *w && hh == *h) break; i ++; } if (*w == -1 || *h == -1) i = gfx_modes(); if (!i) return -1; i --; if (gfx_get_mode(i, &ww, &hh)) return -1; *w = ww; *h = hh; return 0; } int gfx_next_mode(int *w, int *h) { int ww, hh, i = 0; if (!w || !h) return -1; while ((*w != -1 && *h != -1) && !gfx_get_mode(i, &ww, &hh)) { i ++; if (ww == *w && hh == *h) break; } if (gfx_get_mode(i, &ww, &hh)) return -1; *w = ww; *h = hh; return 0; } int gfx_get_max_mode(int *w, int *h) { #ifdef MAEMO *w = 800; *h = 480; #else int ww = 0, hh = 0; int i = 0; *w = 0; *h = 0; if (!vid_modes) gfx_modes(); if (!vid_modes) return -1; while (!gfx_get_mode(i, &ww, &hh)) { if ((ww * hh >= (*w) * (*h)) && ww > (*w)) { *w = ww; *h = hh; } i ++; } #endif return 0; } static SDL_Surface *icon = NULL; extern int software_sw; #if SDL_VERSION_ATLEAST(2,0,0) SDL_Window *SDL_VideoWindow = NULL; static SDL_Texture *SDL_VideoTexture = NULL; static SDL_Surface *SDL_VideoSurface = NULL; static SDL_Renderer *Renderer = NULL; static void GetEnvironmentWindowPosition(int w, int h, int *x, int *y) { const char *window = SDL_getenv("SDL_VIDEO_WINDOW_POS"); const char *center = SDL_getenv("SDL_VIDEO_CENTERED"); if (window) { if (SDL_sscanf(window, "%d,%d", x, y) == 2) { return; } if (SDL_strcmp(window, "center") == 0) { center = window; } } if (center) { SDL_DisplayMode mode; SDL_GetDesktopDisplayMode(SDL_CurrentDisplay, &mode); *x = (mode.w - w) / 2; *y = (mode.h - h) / 2; } } static SDL_Surface *CreateVideoSurface(SDL_Texture * texture) { SDL_Surface *surface; Uint32 format; int w, h; int bpp; Uint32 Rmask, Gmask, Bmask, Amask; // void *pixels; // int pitch; if (SDL_QueryTexture(texture, &format, NULL, &w, &h) < 0) { return NULL; } if (!SDL_PixelFormatEnumToMasks(format, &bpp, &Rmask, &Gmask, &Bmask, &Amask)) { fprintf(stderr, "Unknown texture format.\n"); return NULL; } surface = SDL_CreateRGBSurface(0, w, h, bpp, Rmask, Gmask, Bmask, Amask); SDL_SetSurfaceBlendMode(surface, SDL_BLENDMODE_NONE); return surface; } int gfx_set_mode(int w, int h, int fs) { int window_x = SDL_WINDOWPOS_UNDEFINED; int window_y = SDL_WINDOWPOS_UNDEFINED; SDL_DisplayMode desktop_mode; char title[4096]; strcpy( title, "INSTEAD - " ); strcat( title, VERSION ); if (gfx_width == w && gfx_height == h && gfx_fs == fs) return 0; /* already done */ SelectVideoDisplay(); SDL_GetDesktopDisplayMode(SDL_CurrentDisplay, &desktop_mode); if (vid_modes && vid_modes != std_modes) SDL_free(vid_modes); vid_modes = NULL; if (screen) gfx_free_image(screen); if (SDL_VideoTexture) SDL_DestroyTexture(SDL_VideoTexture); if (Renderer) SDL_DestroyRenderer(Renderer); screen = NULL; Renderer = NULL; SDL_VideoTexture = NULL; if (SDL_VideoWindow) { SDL_GetWindowPosition(SDL_VideoWindow, &window_x, &window_y); SDL_DestroyWindow(SDL_VideoWindow); SDL_VideoWindow = NULL; } else GetEnvironmentWindowPosition(w, h, &window_x, &window_y); SDL_VideoWindow = SDL_CreateWindow(title, window_x, window_y, w, h, SDL_WINDOW_SHOWN | ((fs)?SDL_WINDOW_FULLSCREEN:0)); if (SDL_VideoWindow == NULL) { fprintf(stderr, "Unable to create %dx%d window: %s\n", w, h, SDL_GetError()); return -1; } if (icon) SDL_SetWindowIcon(SDL_VideoWindow, icon); if (fs) { SDL_DisplayMode mode; SDL_zero(mode); mode.format = desktop_mode.format; if (SDL_SetWindowDisplayMode(SDL_VideoWindow, &mode) < 0) { fprintf(stderr, "Unable to set display mode: %s\n", SDL_GetError()); // return -1; } } if (software_sw || !(Renderer = SDL_CreateRenderer(SDL_VideoWindow, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_TARGETTEXTURE))) { fprintf(stderr, "Fallback to software renderer.\n"); if (!(Renderer = SDL_CreateRenderer(SDL_VideoWindow, -1, SDL_RENDERER_SOFTWARE))) { fprintf(stderr, "Unable to create renderer: %s\n", SDL_GetError()); return -1; } } SDL_GetRendererInfo(Renderer, &SDL_VideoRendererInfo); SDL_VideoTexture = SDL_CreateTexture(Renderer, SDL_PIXELFORMAT_ARGB8888/*/*desktop_mode.format*/, SDL_TEXTUREACCESS_STREAMING, w, h); if (!SDL_VideoTexture) { fprintf(stderr, "Unable to create texture: %s\n", SDL_GetError()); return -1; } // SDL_SetTextureBlendMode(SDL_VideoTexture, SDL_BLENDMODE_NONE); SDL_VideoSurface = CreateVideoSurface(SDL_VideoTexture); if (!SDL_VideoSurface) { fprintf(stderr, "Unable to create screen surface: %s\n", SDL_GetError()); return -1; } /* Set a default screen palette */ #if 0 if (SDL_VideoSurface->format->palette) { // SDL_VideoSurface->flags |= SDL_HWPALETTE; // SDL_DitherColors(SDL_VideoSurface->format->palette->colors, // SDL_VideoSurface->format->BitsPerPixel); // SDL_AddPaletteWatch(SDL_VideoSurface->format->palette, // SDL_VideoPaletteChanged, SDL_VideoSurface); SDL_SetPaletteColors(SDL_VideoSurface->format->palette, SDL_VideoSurface->format->palette->colors, 0, SDL_VideoSurface->format->palette->ncolors); } #endif SDL_ShowCursor(SDL_DISABLE); gfx_fs = fs; gfx_width = w; gfx_height = h; screen = GFX_IMG(SDL_VideoSurface); fprintf(stderr,"Video mode: %dx%d@%dbpp\n", Surf(screen)->w, Surf(screen)->h, Surf(screen)->format->BitsPerPixel); gfx_clear(0, 0, gfx_width, gfx_height); return 0; } #else int gfx_set_mode(int w, int h, int fs) { int hw = (software_sw)?0:SDL_HWSURFACE; SDL_Surface *scr; if (gfx_width == w && gfx_height == h && gfx_fs == fs) return 0; /* already done */ vid_modes = NULL; gfx_fs = fs; gfx_width = w; gfx_height = h; SDL_ShowCursor(SDL_DISABLE); #ifdef S60 scr = SDL_SetVideoMode(gfx_width, gfx_height, 0, SDL_ANYFORMAT | hw | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); #else #ifdef ANDROID scr = SDL_SetVideoMode(gfx_width, gfx_height, 0, hw | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); #else #ifdef MAEMO scr = SDL_SetVideoMode(gfx_width, gfx_height, 16, SDL_DOUBLEBUF | hw | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); #else #ifdef __APPLE__ scr = SDL_SetVideoMode(gfx_width, gfx_height, (fs)?32:0, SDL_SWSURFACE | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); if (scr == NULL) /* ok, fallback to anyformat */ scr = SDL_SetVideoMode(gfx_width, gfx_height, 0, SDL_ANYFORMAT | SDL_SWSURFACE | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); #else #ifndef _WIN32_WCE #if SDL_VERSION_ATLEAST(1,3,0) scr = SDL_SetVideoMode(gfx_width, gfx_height, 32, SDL_DOUBLEBUF | hw | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); #else scr = SDL_SetVideoMode(gfx_width, gfx_height, (fs)?32:0, SDL_DOUBLEBUF | hw | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); #endif if (scr == NULL) /* ok, fallback to anyformat */ #endif scr = SDL_SetVideoMode(gfx_width, gfx_height, 0, SDL_ANYFORMAT | hw | ( ( fs ) ? SDL_FULLSCREEN : 0 ) ); #endif #endif #endif #endif screen = GFX_IMG(scr); if (scr == NULL || screen == NULL) { fprintf(stderr, "Unable to set %dx%d video: %s\n", w, h, SDL_GetError()); return -1; } fprintf(stderr,"Video mode: %dx%d@%dbpp\n", scr->w, scr->h, scr->format->BitsPerPixel); gfx_clear(0, 0, gfx_width, gfx_height); return 0; } #endif int gfx_video_init(void) { #if !SDL_VERSION_ATLEAST(2,0,0) char title[4096]; strcpy( title, "INSTEAD - " ); strcat( title, VERSION ); #endif if (TTF_Init()) { fprintf(stderr, "Can't init TTF subsystem.\n"); return -1; } #if !SDL_VERSION_ATLEAST(2,0,0) SDL_WM_SetCaption( title, title ); #endif #ifndef ICON_PATH #define ICON_PATH "./icon" #endif icon = IMG_Load( ICON_PATH"/sdl_instead_1.png" ); #if !SDL_VERSION_ATLEAST(2,0,0) if ( icon ) { SDL_WM_SetIcon( icon, NULL ); } #endif return 0; } #if SDL_VERSION_ATLEAST(2,0,0) static int queue_x1 = -1; static int queue_y1 = -1; static int queue_x2 = -1; static int queue_y2 = -1; static int queue_dirty = 0; static SDL_Texture *cursor = NULL; static int cursor_xc = 0; static int cursor_yc = 0; static int cursor_w; static int cursor_h; static int cursor_on = 1; void gfx_set_cursor(img_t cur, int xc, int yc) { if (cursor) SDL_DestroyTexture(cursor); if (!cur) { cursor = NULL; cursor_w = 0; cursor_h = 0; return; } cursor = SDL_CreateTextureFromSurface(Renderer, Surf(cur)); if (!cursor) return; cursor_w = gfx_img_w(cur); cursor_h = gfx_img_h(cur); cursor_xc = xc; cursor_yc = yc; SDL_SetTextureBlendMode(cursor, SDL_BLENDMODE_BLEND); } void gfx_show_cursor(int on) { cursor_on = on; } void gfx_draw_cursor(void) { int cursor_x = 0; int cursor_y = 0; SDL_Rect rect; if (!cursor_on || !mouse_focus()) return; gfx_cursor(&cursor_x, &cursor_y); cursor_x -= cursor_xc; cursor_y -= cursor_yc; rect.x = cursor_x; rect.y = cursor_y; rect.w = cursor_w; // - 1; /* SDL 2.0 hack? */ rect.h = cursor_h; // - 1; SDL_RenderCopy(Renderer, cursor, NULL, &rect); } static void SDL_UpdateRect(SDL_Surface * screen, Sint32 x, Sint32 y, Uint32 w, Uint32 h); int SDL_Flip(SDL_Surface * screen) { SDL_Rect rect; int pitch = screen->pitch; int psize = screen->format->BytesPerPixel; void *pixels = screen->pixels; if (queue_dirty) { rect.x = queue_x1; rect.y = queue_y1; rect.w = queue_x2 - queue_x1; rect.h = queue_y2 - queue_y1; pixels += pitch * queue_y1 + queue_x1 * psize; SDL_UpdateTexture(SDL_VideoTexture, &rect, pixels, pitch); if (SDL_VideoRendererInfo.flags & SDL_RENDERER_ACCELERATED) SDL_RenderCopy(Renderer, SDL_VideoTexture, NULL, NULL); else SDL_RenderCopy(Renderer, SDL_VideoTexture, &rect, &rect); SDL_RenderPresent(Renderer); } queue_x1 = queue_y1 = queue_x2 = queue_y2 = -1; queue_dirty = 0; return 0; } static void SDL_UpdateRect(SDL_Surface * screen, Sint32 x, Sint32 y, Uint32 w, Uint32 h) { if (queue_x1 < 0 || x < queue_x1) queue_x1 = x; if (queue_y1 < 0 || y < queue_y1) queue_y1 = y; if ((Sint32)(x + w) > queue_x2) queue_x2 = (Sint32)(x + w); if ((Sint32)(y + h) > queue_y2) queue_y2 = (Sint32)(y + h); queue_dirty = 1; } #else void gfx_set_cursor(img_t cur, int xc, int yc) { return; } #endif void gfx_flip(void) { #if SDL_VERSION_ATLEAST(2,0,0) queue_x1 = queue_y1 = 0; queue_x2 = gfx_width; queue_y2 = gfx_height; queue_dirty = 1; #else SDL_Flip(Surf(screen)); #endif } void gfx_commit(void) { #if SDL_VERSION_ATLEAST(2,0,0) SDL_Flip(Surf(screen)); #endif } void gfx_update(int x, int y, int w, int h) { if (x < 0) { w += x; x = 0; } if (y < 0) { h += y; y = 0; } if (w < 0 || h < 0) return; if (x >= gfx_width || y >= gfx_height) return; if (x + w > gfx_width) { w = gfx_width - x; } if (y + h > gfx_height) { h = gfx_height - y; } SDL_UpdateRect(Surf(screen), x, y, w, h); } void gfx_video_done(void) { if (icon) SDL_FreeSurface(icon); screen = NULL; TTF_Quit(); } img_t gfx_scale(img_t src, float xscale, float yscale, int smooth) { anigif_t ag; if ((ag = is_anigif(src))) { int i; anigif_t ag2; ag2 = ag_dup(ag); if (!ag2) return NULL; for (i = 0; i < ag->nr_frames; i ++) { SDL_Surface *s = zoomSurface(ag->frames[i].surface, xscale, yscale, 1); ag2->frames[i].surface = s; ag2->frames[i].x = (float)(ag2->frames[i].x) * xscale; ag2->frames[i].y = (float)(ag2->frames[i].y) * yscale; } anigif_add(ag2); /* scaled anigif added */ return gfx_new_img(ag2->frames[0].surface, IMG_ANIGIF, ag2); } return GFX_IMG(zoomSurface(Surf(src), xscale, yscale, smooth)); } img_t gfx_rotate(img_t src, float angle, int smooth) { anigif_t ag; float rangle = angle * (M_PI / 180.0); if ((ag = is_anigif(src))) { int i; int w,h; float x, y, x1, y1; w = gfx_img_w(src); h = gfx_img_h(src); for (i = 0; i < ag->nr_frames; i ++) { SDL_Surface *s = rotozoomSurface(ag->frames[i].surface, angle, 1.0, smooth); if (i) SDL_FreeSurface(ag->frames[i].surface); ag->frames[i].surface = s; x = (float)(ag->frames[i].x) - w / 2; y = (float)(ag->frames[i].y) - h / 2; x1 = x*cos(rangle) - y*sin(rangle); y1 = y*cos(rangle) + x*sin(rangle); ag->frames[i].x = x1 + w / 2; ag->frames[i].y = y1 + h / 2; } return GFX_IMG(ag->frames[0].surface); } return GFX_IMG(rotozoomSurface(Surf(src), angle, 1.0, smooth)); } #define FN_REG 0 #define FN_BOLD 1 #define FN_ITALIC 2 #define FN_ITALICBOLD 3 #define FN_MAX 4 struct fnt { TTF_Font *fn; TTF_Font *fonts[FN_MAX]; int style; }; /* prefix{regular,italic, bold, bolditalic}.ttf */ static int parse_fn(const char *f, char *files[]) { int e; int nr = 0; int elen; const char *ep = f; const char *s = f; int pref = strcspn(f, "{"); if (!f[pref]) goto no; f += pref + 1; ep = f; ep += strcspn(f, "}"); if (!*ep) goto no; ep ++; elen = strlen(ep); while (1) { f += strspn(f, " \t"); e = strcspn(f, ",}"); if (!e) { /* empty subst */ files[nr] = NULL; goto skip; } files[nr] = malloc(e + pref + elen + 1); if (!files[nr]) break; if (pref) memcpy(files[nr], s, pref); if (e) memcpy(files[nr] + pref, f, e); if (elen) memcpy(files[nr] + pref + e, ep, elen); *(files[nr] + pref + e + elen) = 0; skip: nr ++; if (!f[e] || f[e] == '}') break; f += e + 1; if (nr >=4) break; } return nr; no: files[0] = strdup(s); return (files[0])?1:0; } extern int hinting_sw; fnt_t fnt_load(const char *fname, int size) { TTF_Font *fn; struct fnt *h; int i, n = 0; char *files[4] = { NULL, NULL, NULL, NULL }; h = malloc(sizeof(struct fnt)); if (!h) return NULL; h->fonts[0] = h->fonts[1] = h->fonts[2] = h->fonts[3] = NULL; n = parse_fn(fname, files); if (!n) goto err; for (i = 0; i < n; i++) { fn = NULL; if (!is_empty(files[i])) { SDL_RWops *rw = RWFromIdf(game_idf, files[i]); if (!rw || !(fn = TTF_OpenFontRW(rw, 1, size))) { fprintf(stderr, "Can not load font: '%s'\n", files[i]); } } if (!fn && i == 0) /* no regular */ goto err; #ifdef TTF_HINTING_LIGHT if (fn) { switch (hinting_sw) { case 0: TTF_SetFontHinting(fn, TTF_HINTING_NORMAL); break; case 1: TTF_SetFontHinting(fn, TTF_HINTING_LIGHT); break; case 2: TTF_SetFontHinting(fn, TTF_HINTING_MONO); break; case 3: TTF_SetFontHinting(fn, TTF_HINTING_NONE); break; default: break; } } #endif h->fonts[i] = fn; } h->fn = h->fonts[FN_REG]; for (i = 0; i < n; i++) free(files[i]); return (fnt_t) h; err: for (i = 0; i < n; i++) free(files[i]); fnt_free(h); return NULL; } void fnt_style(fnt_t fn, int style) { struct fnt *h = (struct fnt*)fn; if (!h) return; h->style = style; if ((style & TTF_STYLE_BOLD) && (style & TTF_STYLE_ITALIC)) { if (h->fonts[FN_ITALICBOLD]) { h->fn = h->fonts[FN_ITALICBOLD]; style &= ~TTF_STYLE_BOLD; style &= ~TTF_STYLE_ITALIC; } else h->fn = h->fonts[FN_REG]; } else if ((style & TTF_STYLE_BOLD)) { if (h->fonts[FN_BOLD]) { h->fn = h->fonts[FN_BOLD]; style &= ~TTF_STYLE_BOLD; } else h->fn = h->fonts[FN_REG]; } else if ((style & TTF_STYLE_ITALIC)) { if (h->fonts[FN_ITALIC]) { h->fn = h->fonts[FN_ITALIC]; style &= ~TTF_STYLE_ITALIC; } else h->fn = h->fonts[FN_REG]; } else { h->fn = h->fonts[FN_REG]; } TTF_SetFontStyle((TTF_Font *)h->fn, style); } img_t fnt_render(fnt_t fn, const char *p, color_t col) { SDL_Color scol = { .r = col.r, .g = col.g, .b = col.b }; struct fnt *h = (struct fnt*)fn; if (!h) return NULL; return GFX_IMG(TTF_RenderUTF8_Blended((TTF_Font *)h->fn, p, scol)); } int fnt_height(fnt_t fn) { struct fnt *h = (struct fnt*)fn; if (!fn) return 0; return TTF_FontHeight((TTF_Font *)(h->fonts[FN_REG])); } void fnt_free(fnt_t fnt) { int i; struct fnt *h = (struct fnt*)fnt; if (!fnt) return; for (i = 0; i < FN_MAX; i++) { if (h->fonts[i]) TTF_CloseFont((TTF_Font *)h->fonts[i]); } free(h); } void txt_draw(fnt_t fnt, const char *txt, int x, int y, color_t col) { img_t s = fnt_render(fnt, txt, col); gfx_draw(s, x, y); } #if 0 int txt_width(fnt_t fnt, const char *txt) { const char *p = txt; int c = 0; int w = 0; Uint16 u = 0; struct fnt *f = (struct fnt*)fnt; if (!f) return 0; while (*p) { if (!c) { if (! (*p & 0x80)) { // ascii c = 1; u = *p & 0x7f; } else { if ((*p & 0xe0) == 0xc0) { c = 2; u = *p & 0x1f; } else if ((*p & 0xf0) == 0xe0) { c = 3; u = *p & 0xf; } else if ((*p & 0xf8) == 0xf0) { c = 4; u = *p & 0x3; } else { c = 1; u = *p & 0x7f; /* fallback */ } } } else { if ((*p & 0xc0) != 0x80) { c = 1; u = *p & 0x7f; /* fallback */ } else { u <<= 6; u |= *p & 0x3f; } } c --; if (!c) { int adv = 0; TTF_GlyphMetrics(f->fn, u, NULL, NULL, NULL, NULL, &adv); w += adv; } p ++; } return w; } #endif void txt_size(fnt_t fnt, const char *txt, int *w, int *h) { int ww, hh; struct fnt *f = (struct fnt*)fnt; TTF_SizeUTF8((TTF_Font *)f->fn, txt, &ww, &hh); if (w) *w = ww; if (h) *h = hh; } struct word; struct line; struct xref; struct word { int style; int x; int w; int unbrake; int valign; int img_align; char *word; img_t img; struct word *next; /* in line */ struct word *prev; /* in line */ struct line *line; struct xref *xref; img_t prerend; img_t hlprerend; }; img_t word_image(word_t v) { struct word *w = (struct word*)v; if (!w) return NULL; return w->img; } struct word *word_new(const char *str) { struct word *w; w = malloc(sizeof(struct word)); if (!w) return NULL; w->word = strdup(str); w->next = NULL; w->x = 0; w->w = 0; w->valign = 0; w->line = NULL; w->xref = NULL; w->style = 0; w->img = NULL; w->img_align = 0; w->unbrake = 0; w->prerend = NULL; w->hlprerend = NULL; return w; } struct line { int x; int y; int h; int w; int num; int align; int pos; int tabx; int al_tabx; struct word *words; struct line *next; struct line *prev; struct layout *layout; }; static int vertical_align(struct word *w, int *hh); int word_geom(word_t v, int *x, int *y, int *w, int *h) { int xx, yy, ww, hh; struct line *line; struct word *word = (struct word*)v; if (!word || !word->line) return -1; line = word->line; xx = word->x + line->x; ww = word->w; yy = line->y; yy += vertical_align(v, &hh); if (x) *x = xx; if (y) *y = yy; if (w) *w = ww; if (h) *h = hh; return 0; } struct line *line_new(void) { struct line *l; l = malloc(sizeof(struct line)); if (!l) return NULL; l->words = NULL; l->next = NULL; l->prev = NULL; l->x = 0; l->w = 0; l->y = 0; l->h = 0; l->num = 0; l->tabx = -1; l->al_tabx = ALIGN_LEFT; l->layout = NULL; l->align = 0; l->pos = 0; return l; } int line_empty(struct line *line) { struct word *w; w = line->words; while (w) { if (w->img_align) { w = w->next; continue; } return 0; } return 1; } static int line_margin(struct line *line) { struct word *w; w = line->words; while (w) { if (w->img_align) return 1; w = w->next; } return 0; } static struct word *next_word(struct word *w) { while (w->next && w->next->img_align) /* skip margins */ w = w->next; return w->next; } void line_justify(struct line *line, int width) { int x = 0; int last_margin = 0; int last_unbrake = 0; struct word *w; int sp, spm, lw = 0; int lnum = 0; if (!line || line->num <= 1 /*|| width <= line->w*/) return; w = line->words; while (w) { lw += w->w; if (last_margin && w->unbrake) w->unbrake = last_unbrake; if (!w->unbrake && !w->img_align) lnum ++; if (!last_margin && w->img_align) last_unbrake = w->unbrake; last_margin = w->img_align; w = w->next; } if (lnum <=1 ) return; w = line->words; sp = (width - lw) / (lnum - 1); spm = (width - lw) % (lnum - 1); while (w) { if (!w->img_align) { w->x = x; if (next_word(w) && next_word(w)->unbrake) x += w->w; else { x += w->w + sp + ((spm)?1:0); if (spm) spm --; } } w = w->next; } } void line_right(struct line *line, int width) { struct word *w; int sp; if (!line || line->num == 0) return; sp = width - line->w; w = line->words; while (w) { if (!w->img_align) { w->x += sp; } w = w->next; } } void line_center(struct line *line, int width) { struct word *w; int sp; if (!line || line->num == 0) return; sp = (width - line->w)/2; w = line->words; while (w) { if (!w->img_align) { w->x += sp; } w = w->next; } } void line_align(struct line *line, int width, int style, int nl) { if (style == ALIGN_JUSTIFY) { if (nl) return; return line_justify(line, width); } if (style == ALIGN_CENTER) return line_center(line, width); if (style == ALIGN_LEFT) return; if (style == ALIGN_RIGHT) return line_right(line, width); } void word_free(struct word *word); void line_free(struct line *line) { struct word *w; if (!line) return; w = line->words; while (w) { struct word *ow = w; w = w->next; word_free(ow); } free(line); } void line_add_word(struct line *l, struct word *word) { struct word *w = l->words; l->num ++; word->line = l; if (!l->words) { l->words = word; word->prev = word; return; } w = w->prev; w->next = word; word->prev = w; l->words->prev = word; return; } struct image; struct image { struct image *next; char *name; img_t image; int free_it; }; struct image *image_new(const char *name, img_t img) { struct image *g = malloc(sizeof(struct image)); if (!g) return NULL; g->image = img; g->name = strdup(name); g->next = NULL; g->free_it = 0; return g; } void image_free(struct image *image) { if (!image) return; if (image->name) free(image->name); if (image->free_it) gfx_free_image(image->image); free(image); } struct textbox; #define ALIGN_NEST 16 struct margin; struct margin { struct margin *next; int w; int h; int y; int align; struct word *word; }; struct margin *margin_new(void) { struct margin *m = malloc(sizeof(struct margin)); if (!m) return NULL; m->w = m->h = m->align = 0; m->next = NULL; return m; } void margin_free(struct margin *m) { if (m) free(m); } struct layout { fnt_t fn; float fn_height; color_t col; color_t lcol; color_t acol; struct image *images; struct xref *xrefs; struct line *lines; struct line *anchor; struct textbox *box; struct margin *margin; int w; int h; int align; int valign; int saved_align[ALIGN_NEST]; int saved_valign[ALIGN_NEST]; int acnt; int vcnt; int style; int scnt[4]; int lstyle; cache_t img_cache; cache_t prerend_cache; cache_t hlprerend_cache; }; struct xref { struct xref *next; struct xref *prev; struct word **words; struct layout *layout; char *link; int num; int active; }; struct textbox { struct layout *lay; struct line *line; int off; int w; int h; }; void word_free(struct word *word) { if (!word) return; // if (word->img) // gfx_free_image(word->img); if (word->word) free(word->word); if (word->prerend) { cache_forget(word->line->layout->prerend_cache, word->prerend); // SDL_FreeSurface(word->prerend); } if (word->hlprerend) { cache_forget(word->line->layout->hlprerend_cache, word->hlprerend); // SDL_FreeSurface(word->hlprerend); } word->hlprerend = word->prerend = NULL; free(word); } struct xref *xref_new(char *link) { struct xref *p; p = malloc(sizeof(struct xref)); if (!p) return NULL; if (link) p->link = strdup(link); else p->link = NULL; p->num = 0; p->layout = NULL; p->next = NULL; p->prev = NULL; p->active = 0; p->words = NULL; return p; } void xref_add_word(struct xref *xref, struct word *word) { xref->words = realloc(xref->words, (xref->num + 1) * sizeof(struct word*)); xref->words[xref->num ++] = word; word->xref = xref; } void xref_free(struct xref *xref) { if (xref->link) free(xref->link); if (xref->words) free(xref->words); free(xref); } void layout_add_line(struct layout *layout, struct line *line) { struct line *l = layout->lines; line->layout = layout; if (!l) { layout->lines = line; line->prev = line; return; } l = l->prev; l->next = line; line->prev = l; layout->lines->prev = line; return; } void layout_add_margin(struct layout *layout, struct margin *margin) { struct margin *m = layout->margin; if (!m) { layout->margin = margin; return; } while (m->next) m = m->next; m->next = margin; return; } #if 1 static int layout_skip_margin(struct layout *layout, int y) { struct margin *m = layout->margin; int my = y; if (!m) return y; while (m) { if (m->y + m->h > my) my = m->y + m->h; m = m->next; } if (y < my) y = my; return y; } #endif static int layout_find_margin(struct layout *layout, int y, int *w) { struct margin *m = layout->margin; int xpos = 0; int rpos = layout->w; if (!m) { if (w) *w = layout->w; return 0; } while (m) { if (y >= m->y && y < m->y + m->h) { if (m->align == ALIGN_LEFT) xpos = (xpos < m->w)?m->w:xpos; else rpos = (rpos > layout->w - m->w)?layout->w - m->w:rpos; } m = m->next; } if (w) *w = rpos - xpos; return xpos; } struct image *_layout_lookup_image(struct layout *layout, const char *name) { struct image *g = layout->images; for (g = layout->images; g; g = g->next) { if (!strcmp(g->name, name)) return g; } return NULL; } img_t txt_layout_images(layout_t lay, void **v) { struct image **g = (struct image **)v; struct layout *layout = (struct layout *)lay; if (!layout) return NULL; if (!*v) *v = layout->images; else *v = (*g)->next; if (!*v) return NULL; return (*g)->image; } void layout_add_image(struct layout *layout, struct image *image) { struct image *g = layout->images; if (!g) { layout->images = image; return; } while (g->next) g = g->next; g->next = image; return; } img_t layout_lookup_image(struct layout *layout, char *name) { struct image *g = _layout_lookup_image(layout, name); return (g)?g->image: NULL; } void layout_add_xref(struct layout *layout, struct xref *xref) { struct xref *x = layout->xrefs; xref->layout = layout; if (!x) { layout->xrefs = xref; xref->prev = xref; return; } x = x->prev; x->next = xref; xref->prev = x; layout->xrefs->prev = xref; return; } static void sdl_surface_free(void *p) { gfx_free_img((img_t)p); } struct layout *layout_new(fnt_t fn, int w, int h) { struct layout *l; l = malloc(sizeof(struct layout)); if (!l) return NULL; l->lines = NULL; l->anchor = NULL; l->images = NULL; l->w = w; l->h = h; l->fn = fn; l->fn_height = 1.0f; l->align = ALIGN_JUSTIFY; l->valign = 0; l->style = 0; l->lstyle = 0; l->xrefs = NULL; l->margin = NULL; l->col = gfx_col(0, 0, 0); l->lcol = gfx_col(0, 0, 255); l->acol = gfx_col(255, 0, 0); l->box = NULL; l->img_cache = cache_init(0, gfx_cache_free_image); l->prerend_cache = cache_init(0, sdl_surface_free); l->hlprerend_cache = cache_init(0, sdl_surface_free); memset(l->scnt, 0, sizeof(l->scnt)); memset(l->saved_align, 0, sizeof(l->saved_align)); memset(l->saved_valign, 0, sizeof(l->saved_valign)); l->acnt = 0; l->vcnt = 0; return l; } void txt_layout_size(layout_t lay, int *w, int *h) { struct layout *layout = (struct layout *)lay; if (!lay) return; if (w) *w = layout->w; if (h) *h = layout->h; } void txt_layout_set_size(layout_t lay, int w, int h) { struct layout *layout = (struct layout *)lay; if (!lay) return; layout->w = w; layout->h = h; } int txt_layout_add_img(layout_t lay, const char *name, img_t img) { struct layout *layout = (struct layout *)lay; struct image *image; image = _layout_lookup_image(layout, name); if (image) { /* overwrite */ image->image = img; return 0; } image = image_new(name, img); if (!image) return -1; layout_add_image(layout, image); return 0; } void _txt_layout_free(layout_t lay) { struct layout *layout = (struct layout *)lay; struct line *l; struct image *g; struct xref *x; struct margin *m; if (!layout) return; l = layout->lines; while (l) { struct line *ol = l; l = l->next; line_free(ol); } x = layout->xrefs; while (x) { struct xref *ox = x; x = x->next; xref_free(ox); } m = layout->margin; while (m) { struct margin *om = m; m = m->next; margin_free(om); } g = layout->images; while (g) { struct image *og = g; g = g->next; if (!cache_have(layout->img_cache, og->image)) og->free_it = 0; /* do not free from cache */ cache_forget(layout->img_cache, og->image); image_free(og); } layout->images = NULL; layout->xrefs = NULL; layout->lines = NULL; layout->anchor = NULL; layout->margin = NULL; memset(layout->scnt, 0, sizeof(layout->scnt)); memset(layout->saved_align, 0, sizeof(layout->saved_align)); memset(layout->saved_valign, 0, sizeof(layout->saved_valign)); layout->acnt = 0; layout->vcnt = 0; } word_t txt_layout_words_ex(layout_t lay, struct line *line, word_t v, int off, int height) { struct layout *layout = (struct layout*)lay; struct word *w = (struct word*)v; if (!lay) return NULL; if (!w) { if (!line) line = layout->lines; if (!line) return NULL; w = line->words; } else { line = w->line; w = w->next; } for (; (!w || (line->y + line->h) < off) && line->next; line = line->next, w = line->words); if ((line->y + line->h) < off) w = NULL; else if (height >= 0 && line->y - off > height) w = NULL; return w; } word_t txt_layout_words(layout_t lay, word_t v) { return txt_layout_words_ex(lay, NULL, v, 0, -1); } void txt_layout_free(layout_t lay) { struct layout *layout = (struct layout *)lay; _txt_layout_free(lay); if (lay) { cache_free(layout->img_cache); cache_free(layout->prerend_cache); cache_free(layout->hlprerend_cache); layout->img_cache = NULL; layout->prerend_cache = NULL; layout->hlprerend_cache = NULL; free(lay); } } #define TOKEN_NONE 0x000 #define TOKEN_A 0x001 #define TOKEN_B 0x002 #define TOKEN_I 0x004 #define TOKEN_U 0x008 #define TOKEN_S 0x010 #define TOKEN_C 0x020 #define TOKEN_R 0x040 #define TOKEN_J 0x080 #define TOKEN_L 0x100 #define TOKEN_T 0x200 #define TOKEN_D 0x400 #define TOKEN_M 0x800 #define TOKEN_X 0x1000 #define TOKEN_CLOSE 0x2000 #define TOKEN(x) (x & 0x1fff) int get_token(const char *ptr, char **eptr, char **val, int *sp) { char *ep, *p; int closing = 0; *eptr = NULL; p = (char*)ptr; ptr += strspn(ptr, " \t"); if (sp) { *sp = 0; if (p != ptr) *sp = 1; } if (val) *val = NULL; if (!*ptr) return 0; if (*ptr != '<') return 0; ptr ++; if (*ptr == '/') { closing = 1; if (!ptr[1] || ptr[2] != '>') return 0; ptr ++; } switch (*ptr) { case 'x': if (ptr[1] != ':') return 0; ptr += 2; ep = find_in_esc(ptr, "\\>"); if (*ep != '>') return 0; if (val) { p = malloc(ep - ptr + 1); if (!p) return 0; memcpy(p, ptr, ep - ptr); p[ep - ptr] = 0; *val = p; } *eptr = ep + 1; return TOKEN_X; case 'a': if (closing) { *eptr = (char*)ptr + 2; return TOKEN_A | TOKEN_CLOSE; } if (ptr[1] != ':') { return 0; } ptr += 2; // ep = (char*)ptr + strcspn(ptr, ">"); ep = find_in_esc(ptr, "\\>"); if (*ep != '>') { return 0; } if (val) { p = malloc(ep - ptr + 1); if (!p) return 0; memcpy(p, ptr, ep - ptr); p[ep - ptr] = 0; parse_esc_string(p, val); if (*val) free(p); else *val = p; } *eptr = ep + 1; return TOKEN_A; case 'b': if (closing) { *eptr = (char*)ptr + 2; return TOKEN_B | TOKEN_CLOSE; } if (ptr[1] == '>') { *eptr = (char*)ptr + 2; return TOKEN_B; } break; case 'i': if (closing) { *eptr = (char*)ptr + 2; return TOKEN_I | TOKEN_CLOSE; } if (ptr[1] == '>') { *eptr = (char*)ptr + 2; return TOKEN_I; } break; case 's': if (closing) { *eptr = (char*)ptr + 2; return TOKEN_S | TOKEN_CLOSE; } if (ptr[1] == '>') { *eptr = (char*)ptr + 2; return TOKEN_S; } break; case 't': if (closing) { *eptr = (char*)ptr + 2; return TOKEN_T | TOKEN_CLOSE; } if (ptr[1] == '>') { *eptr = (char*)ptr + 2; return TOKEN_T; } break; case 'd': if (closing) { *eptr = (char*)ptr + 2; return TOKEN_D | TOKEN_CLOSE; } if (ptr[1] == '>') { *eptr = (char*)ptr + 2; return TOKEN_D; } break; case 'm': if (closing) { *eptr = (char*)ptr + 2; return TOKEN_M | TOKEN_CLOSE; } if (ptr[1] == '>') { *eptr = (char*)ptr + 2; return TOKEN_M; } break; case 'u': if (closing) { *eptr = (char*)ptr + 2; return TOKEN_U | TOKEN_CLOSE; } if (ptr[1] == '>') { *eptr = (char*)ptr + 2; return TOKEN_U; } break; case 'c': if (closing) { *eptr = (char*)ptr + 2; return TOKEN_C | TOKEN_CLOSE; } if (ptr[1] == '>') { *eptr = (char*)ptr + 2; return TOKEN_C; } break; case 'r': if (closing) { *eptr = (char*)ptr + 2; return TOKEN_R | TOKEN_CLOSE; } if (ptr[1] == '>') { *eptr = (char*)ptr + 2; return TOKEN_R; } break; case 'j': if (closing) { *eptr = (char*)ptr + 2; return TOKEN_J | TOKEN_CLOSE; } if (ptr[1] == '>') { *eptr = (char*)ptr + 2; return TOKEN_J; } break; case 'l': if (closing) { *eptr = (char*)ptr + 2; return TOKEN_L | TOKEN_CLOSE; } if (ptr[1] == '>') { *eptr = (char*)ptr + 2; return TOKEN_L; } break; } return 0; } static int is_delim(int c) { switch(c) { case '.': case ',': case ':': case '!': case '+': case '-': case '?': case '/': return 1; } return 0; } static int process_word_token(const char *p, char **eptr, char ch) { char *ep; if (eptr) *eptr = (char*)p; if (!p) return 0; if (p[0] != '<' || p[1] != ch || p[2] != ':') return 0; p += 3; ep = find_in_esc(p, "\\>"); if (*ep != '>') return 0; if (eptr) *eptr = ep + 1; return (ep - p + 1); } static int word_img(const char *p, char **eptr) { return process_word_token(p, eptr, 'g'); } static int word_token(const char *p, char **eptr) { return process_word_token(p, eptr, 'w'); } static int lookup_cjk(const char *ptr, int limit) { unsigned long sym; int off = 0, rc; while ((rc = get_utf8(ptr, &sym))) { if (is_cjk(sym)) return off; off += rc; ptr += rc; if (off >= limit) break; } return off; } static int cjk_here(const char *ptr) { unsigned long sym; int rc; rc = get_utf8(ptr, &sym); if (is_cjk(sym)) return rc; return 0; } static const char *lookup_token_or_sp(const char *ptr) { char *eptr; const char *p = ptr; while (*p) { int cjk, rc; rc = strcspn(p, " .,:!+-?/<\t\n"); cjk = lookup_cjk(p, rc); if (p[cjk] && cjk < rc) { /* cjk symbol found! */ rc = cjk; if (!rc) rc += get_utf8(p, NULL); } p += rc; if (*p != '<' ) { while (is_delim(*p)) p ++; /* if (is_delim(*p)) p ++; */ return p; } if (!get_token(p, &eptr, NULL, NULL)) { if (word_img(p, &eptr)) { if (p == ptr) /* first one */ p = eptr; return p; } else if (word_token(p, &eptr)) { if (p == ptr) /* first one */ p = eptr; return p; } p ++; continue; } return p; } return ptr; } #define BREAK_NONE 0 #define BREAK_SPACE 1 static char *get_word(const char *ptr, char **eptr, int *sp) { const char *ep; char *o; size_t sz; *eptr = NULL; o = (char*)ptr; ptr += strspn(ptr, " \t"); if (sp) { *sp = BREAK_NONE; if (o != ptr) *sp = BREAK_SPACE; } if (!*ptr) return NULL; ep = lookup_token_or_sp(ptr); // ep += strcspn(ep, " \t\n"); sz = ep - ptr; o = malloc(sz + 1); memcpy(o, ptr, sz); o[sz] = 0; sz = word_img(ptr, eptr); if (sz) return o; sz = word_token(ptr, eptr); if (sz) return o; *eptr = (char*)ep; return o; } void layout_debug(struct layout *layout) { struct line *line; struct word *word; line = layout->lines; while (line) { printf("%d of %d)", line->y, line->num); word = line->words; while (word) { printf("%d)%s ", word->x, word->word); word = word->next; } printf("\n"); line = line->next; } } void txt_layout_color(layout_t lay, color_t fg) { struct layout *layout = (struct layout*)lay; if (!lay) return; layout->col = fg; } void txt_layout_font_height(layout_t lay, float height) { struct layout *layout = (struct layout*)lay; if (!lay) return; layout->fn_height = height; } void txt_layout_link_color(layout_t lay, color_t link) { struct layout *layout = (struct layout*)lay; if (!lay) return; layout->lcol = link; } void txt_layout_active_color(layout_t lay, color_t link) { struct layout *layout = (struct layout*)lay; if (!lay) return; layout->acol = link; } void txt_layout_link_style(layout_t lay, int style) { struct layout *layout = (struct layout*)lay; if (!lay) return; layout->lstyle = style; } static char *word_cache_string(struct word *w, Uint32 style) { char *p; int len = 0; len = (w->word)?strlen(w->word):0; len += 16; p = malloc(len); if (!p) return NULL; sprintf(p, "%s-%08x", (w->word)?w->word:"", style); return p; } static void word_render(struct layout *layout, struct word *word, int x, int y) { char *wc = NULL; img_t s; img_t prerend = NULL; img_t hlprerend = NULL; color_t fgcol = { .r = layout->col.r, .g = layout->col.g, .b = layout->col.b }; color_t lcol = { .r = layout->lcol.r, .g = layout->lcol.g, .b = layout->lcol.b }; color_t acol = { .r = layout->acol.r, .g = layout->acol.g, .b = layout->acol.b }; Uint32 style; if (!word->xref) { style = (fgcol.r << 24) + (fgcol.g << 16) + (fgcol.b << 8); } else if (word->xref->active) { style = (acol.r << 24) + (acol.g << 16) + (acol.b << 8); } else { style = (lcol.r << 24) + (lcol.g << 16) + (lcol.b << 8); } if (word->xref && !word->style) { fnt_style(layout->fn, layout->lstyle); wc = word_cache_string(word, layout->lstyle | style); } else { fnt_style(layout->fn, word->style); wc = word_cache_string(word, word->style | style); } if (!wc) return; if (!word->xref) { if (!word->prerend) { prerend = cache_get(layout->prerend_cache, wc); if (!prerend) { word->prerend = fnt_render(layout->fn, word->word, fgcol); word->prerend = gfx_display_alpha(word->prerend); cache_add(layout->prerend_cache, wc, word->prerend); } else { word->prerend = prerend; } } s = word->prerend; } else if (word->xref->active) { if (!word->hlprerend) { hlprerend = cache_get(layout->hlprerend_cache, wc); if (!hlprerend) { word->hlprerend = fnt_render(layout->fn, word->word, acol); word->hlprerend = gfx_display_alpha(word->hlprerend); cache_add(layout->hlprerend_cache, wc, word->hlprerend); } else { word->hlprerend = hlprerend; } } s = word->hlprerend; } else { if (!word->prerend) { prerend = cache_get(layout->prerend_cache, wc); if (!prerend) { word->prerend = fnt_render(layout->fn, word->word, lcol); word->prerend = gfx_display_alpha(word->prerend); cache_add(layout->prerend_cache, wc, word->prerend); } else { word->prerend = prerend; } } s = word->prerend; } free(wc); if (!s) return; gfx_draw(s, x, y); } fnt_t txt_layout_font(layout_t lay) { struct layout *layout = lay; if (!lay) return NULL; return layout->fn; } static int vertical_align(struct word *w, int *hh) { int h; struct line *line = w->line; struct layout *layout = line->layout; if (w->img) h = gfx_img_h(w->img); else h = fnt_height(layout->fn); if (hh) *hh = h; if (w->img && w->img_align) return 0; if (w->valign == ALIGN_TOP) return 0; else if (w->valign == ALIGN_BOTTOM) return line->h - h; return (line->h - h) / 2; } static void word_image_render(struct word *word, int x, int y, clear_fn clear, update_fn update) { struct line *line = word->line; struct layout *layout = line->layout; int yy; if (clear && !word->xref) return; yy = vertical_align(word, NULL); if (clear) { if (word->img) { if (word->img_align) clear(x + word->x, y + line->y + yy, gfx_img_w(word->img), gfx_img_h(word->img)); else clear(x + line->x + word->x, y + line->y + yy, gfx_img_w(word->img), gfx_img_h(word->img)); } else clear(x + line->x + word->x, y + line->y/* + yy*/, word->w, line->h); } if (word->img) { if (word->img_align) gfx_draw(word->img, x + word->x, y + line->y + yy); else gfx_draw(word->img, x + line->x + word->x, y + line->y + yy); if (update) update(x + word->x, y + line->y + yy, gfx_img_w(word->img), gfx_img_h(word->img)); } else { word_render(layout, word, x + line->x + word->x, y + yy + line->y); if (update) update(x + line->x + word->x, y + line->y + yy, word->w, line->h); } } void xref_update(xref_t pxref, int x, int y, clear_fn clear, update_fn update) { int i; struct xref *xref = (struct xref*)pxref; struct layout *layout; struct word *word; if (!xref) return; layout = xref->layout; if (layout->box) { gfx_clip(x, y, layout->box->w, layout->box->h); y -= (layout->box)->off; } for (i = 0; i < xref->num; i ++) { word = xref->words[i]; if (!word->img_align) word_image_render(word, x, y, clear, update); } gfx_noclip(); } void txt_layout_draw_ex(layout_t lay, struct line *line, int x, int y, int off, int height, clear_fn clear) { void *v; img_t img; struct layout *layout = (struct layout*)lay; struct margin *margin; struct word *word; // line = layout->lines; // gfx_clip(x, y, layout->w, layout->h); if (!lay) return; for (v = NULL; (img = txt_layout_images(lay, &v)); ) gfx_dispose_gif(img); for (margin = layout->margin; margin; margin = margin->next) { if (margin->y + margin->h < off) continue; if (margin->y - off > height) continue; word_image_render(margin->word, x, y, clear, NULL); } if (!line) line = layout->lines; for (; line; line= line->next) { if ((line->y + line->h) < off) continue; if (line->y - off > height) break; for (word = line->words; word; word = word->next ) { if (!word->img_align) word_image_render(word, x, y, clear, NULL); } } cache_shrink(layout->prerend_cache); cache_shrink(layout->hlprerend_cache); cache_shrink(layout->img_cache); // gfx_noclip(); } void txt_layout_draw(layout_t lay, int x, int y) { struct layout *layout = (struct layout*)lay; txt_layout_draw_ex(lay, NULL, x, y, 0, layout->h, 0); } textbox_t txt_box(int w, int h) { struct textbox *box; box = malloc(sizeof(struct textbox)); if (!box) return NULL; box->lay = NULL; //(struct layout*)lay; box->w = w; box->h = h; box->off = 0; box->line = NULL; //(box->lay)->lines; return box; } void txt_box_norm(textbox_t tbox) { struct textbox *box = (struct textbox *)tbox; struct line *line; int off = box->off; if (!tbox || !box->lay) return; box->line = box->lay->lines; for (line = box->line; line; line = line->next) { if (off < line->h) break; off -= line->h; box->line = line; } } layout_t txt_box_layout(textbox_t tbox) { struct textbox *box = (struct textbox *)tbox; if (!box) return NULL; return box->lay; } void txt_box_set(textbox_t tbox, layout_t lay) { struct textbox *box = (struct textbox *)tbox; if (!box) return; box->lay = (struct layout*)lay; box->off = 0; if (lay) box->lay->box = box; txt_box_norm(tbox); } void txt_box_resize(textbox_t tbox, int w, int h) { struct textbox *box = (struct textbox *)tbox; if (!tbox) return; box->w = w; box->h = h; txt_box_norm(tbox); } void txt_box_size(textbox_t tbox, int *w, int *h) { struct textbox *box = (struct textbox *)tbox; if (!tbox) return; if (w) *w = box->w; if (h) *h = box->h; } void txt_box_scroll_next(textbox_t tbox, int disp) { int off, h; struct textbox *box = (struct textbox *)tbox; struct line *line; if (!tbox) return; line = box->line; if (!line) return; txt_box_real_size(box, NULL, &h); if (h - box->off < box->h) return; off = h - box->off - box->h; if (disp > off) disp = off; off = box->off - line->y; /* offset from cur line */ off += disp; /* needed offset */ while (line->next && off >= line->next->y - line->y) { off -= (line->next->y - line->y); line = line->next; } box->line = line; box->off = line->y + off; } void txt_box_scroll_prev(textbox_t tbox, int disp) { int off; struct textbox *box = (struct textbox *)tbox; struct line *line; struct layout *l= box->lay; if (!tbox) return; line = box->line; if (!line) return; off = box->off - line->y; /* offset from cur line */ off -= disp; /* offset from current line */ while (line != l->lines && off < 0) { line = line->prev; off += (line->next->y - line->y); } box->line = line; box->off = line->y + off; if (box->off <0) box->off = 0; } void txt_box_scroll(textbox_t tbox, int disp) { if (!tbox) return; if (disp >0) return txt_box_scroll_next(tbox, disp); else if (disp <0) return txt_box_scroll_prev(tbox, -disp); } void txt_box_next_line(textbox_t tbox) { struct textbox *box = (struct textbox *)tbox; struct line *line; if (!box || !box->lay) return; line = box->line; if (!line) return; // txt_box_norm(tbox); if (box->lay->h - box->off < box->h) return; line = line->next; if (line) { box->off = line->y; box->line = line; } } void txt_box_prev_line(textbox_t tbox) { struct textbox *box = (struct textbox *)tbox; struct line *line; struct layout *l; if (!box || !box->lay) return; l = box->lay; line = box->line; if (!line) return; if (line != l->lines) { line = line->prev; box->line = line; box->off = line->y; } else box->off = 0; } int txt_box_off(textbox_t tbox) { struct textbox *box = (struct textbox *)tbox; if (!box) return -1; return box->off; } void txt_box_next(textbox_t tbox) { struct textbox *box = (struct textbox *)tbox; struct line *line; if (!tbox) return; line = box->line; if (!line) return; for (; line; line = line->next) { if ((line->y + line->h - box->off) >= box->h) break; } if (line) { box->off += (line->y - box->off); box->line = line; } } void txt_box_prev(textbox_t tbox) { struct textbox *box = (struct textbox *)tbox; struct layout *lay; struct line *line; if (!tbox) return; lay = box->lay; if (!lay) return; line = box->line; if (!line) return; for (; line != lay->lines; line = line->prev) { if ((box->off - line->y) >= box->h) break; } if (line == lay->lines) { box->off = 0; box->line = lay->lines; return; } box->off = line->y; box->line = line; } xref_t txt_box_xrefs(textbox_t tbox) { struct textbox *box = (struct textbox*)tbox; struct xref *xref = NULL; struct word *word = NULL; struct line *line; if (!tbox) return NULL; for (line = box->line; line; line = line->next) { if (line->y < box->off) continue; /* too high */ if (line->y + line->h > box->h + box->off) break; /* bottom */ for (word = line->words; word; word = word->next) { xref = word->xref; if (!xref || word->img_align) continue; return xref; } } return xref; } xref_t txt_box_xref(textbox_t tbox, int x, int y) { struct textbox *box = (struct textbox*)tbox; struct xref *xref = NULL; struct word *word = NULL; struct line *line; if (!tbox) return NULL; y += box->off; if (x < 0) return NULL; if (y < 0) return NULL; if (x >= box->w) return NULL; for (line = box->line; line; line = line->next) { int hh, yy; if (y < line->y) break; if (y > line->y + line->h) continue; for (word = line->words; word; word = word->next) { yy = vertical_align(word, &hh); if (y < line->y + yy || y > line->y + yy + hh) continue; if (x < line->x + word->x) continue; xref = word->xref; if (!xref) continue; if (x < line->x + word->x + word->w) break; if (word->next && word->next->xref == xref && x < line->x + word->next->x + word->next->w) { yy = vertical_align(word->next, &hh); if (y < line->y + yy || y > line->y + yy + hh) continue; break; } } } if (word && xref) { return xref; } return NULL; } void txt_box_free(textbox_t tbox) { if (!tbox) return; free(tbox); } img_t txt_box_render(textbox_t tbox) { img_t old_screen; img_t dst; struct textbox *box = (struct textbox *)tbox; if (!tbox) return NULL; dst = gfx_new(box->w, box->h); if (!dst) return NULL; old_screen = screen; screen = dst; gfx_clear(0, 0, box->w, box->h); // gfx_clip(0, 0, box->w, box->h); // printf("line: %d\n", box->line->y); txt_layout_draw_ex(box->lay, box->line, 0, - box->off, box->off, box->h, NULL); // gfx_noclip(); screen = old_screen; return dst; } void txt_box_draw(textbox_t tbox, int x, int y) { struct textbox *box = (struct textbox *)tbox; if (!tbox) return; gfx_clip(x, y, box->w, box->h); // printf("line: %d\n", box->line->y); txt_layout_draw_ex(box->lay, box->line, x, y - box->off, box->off, box->h, NULL); gfx_noclip(); } void txt_box_update_links(textbox_t tbox, int x, int y, clear_fn clear) { struct textbox *box = (struct textbox *)tbox; if (!tbox) return; gfx_clip(x, y, box->w, box->h); // printf("line: %d\n", box->line->y); txt_layout_draw_ex(box->lay, box->line, x, y - box->off, box->off, box->h, clear); gfx_noclip(); } void txt_layout_update_links(layout_t layout, int x, int y, clear_fn clear) { struct layout *lay = (struct layout *)layout; // gfx_clip(x, y, box->w, box->h); // printf("line: %d\n", box->line->y); txt_layout_draw_ex(lay, lay->lines, x, y, 0, lay->h, clear); // gfx_noclip(); } img_t get_img(struct layout *layout, char *p, int *al) { int len; int align; img_t img; struct image *image; int escaped = 0; *al = 0; len = word_img(p, NULL); if (!len) return NULL; p += 3; p[len - 1] = 0; align = strcspn(p, "|"); if (!p[align]) align = 0; else { if (!strcmp(p + align + 1, "left")) *al = ALIGN_LEFT; else if (!strcmp(p + align + 1, "right")) *al = ALIGN_RIGHT; if (*al) { p[align] = 0; if (align && p[align - 1] == '\\') { p[align - 1] = 0; escaped = 1; } } } img = layout_lookup_image(layout, p); if (img) goto out; img = cache_get(layout->img_cache, p); if (!img) { unix_path(p); if (!(img = gfx_load_image(p))) goto out; theme_img_scale(&img); /* bad style, no gfx layer :( */ } image = image_new(p, img); if (!image) { gfx_free_image(img); img = NULL; } else { layout_add_image(layout, image); image->free_it = 1; /* free on layout destroy */ // if (gfx_img_w(img) <= GFX_MAX_CACHED_W && gfx_img_h(img) <= GFX_MAX_CACHED_H) cache_add(layout->img_cache, p, img); } out: if (align) { p[align] = '|'; if (escaped) p[align - 1] = '\\'; } p[len - 1] = '>'; if (!img) *al = 0; return img; } static char *get_word_token(char *p, int *token) { int len; char *r; char *val = NULL; len = word_token(p, NULL); if (token) *token = 0; if (!len) return p; if (token) *token = 1; p[len - 1 + 3] = 0; r = strdup((p + 3)); parse_esc_string(r, &val); free(p); if (val) { free(r); r = val; } return r; } char *process_token(char *ptr, struct layout *layout, struct line *line, struct xref **xref, int *sp) { int token; char *val = NULL; int bit = 0; int al = 0; int *cnt = NULL; char *eptr; token = get_token(ptr, &eptr, &val, sp); if (!token) return NULL; if (TOKEN(token) == TOKEN_B) { cnt = &layout->scnt[0]; bit = TTF_STYLE_BOLD; } else if (TOKEN(token) == TOKEN_I) { cnt = &layout->scnt[1]; bit = TTF_STYLE_ITALIC; } else if (TOKEN(token) == TOKEN_U) { cnt = &layout->scnt[2]; bit = TTF_STYLE_UNDERLINE; } else if (TOKEN(token) == TOKEN_S) { cnt = &layout->scnt[3]; #ifdef TTF_STYLE_STRIKETHROUGH bit = TTF_STYLE_STRIKETHROUGH; #else bit = TTF_STYLE_ITALIC; #endif } if (bit) { if (token & TOKEN_CLOSE) { -- (*cnt); if (*cnt < 0) /* fuzzy */ *cnt = 0; if (!*cnt) layout->style &= ~bit; } else { ++ (*cnt); layout->style |= bit; } goto out; } if (TOKEN(token) == TOKEN_L) al = ALIGN_LEFT; else if (TOKEN(token) == TOKEN_R) al = ALIGN_RIGHT; else if (TOKEN(token) == TOKEN_C) al = ALIGN_CENTER; else if (TOKEN(token) == TOKEN_J) al = ALIGN_JUSTIFY; if (al) { if (token & TOKEN_CLOSE) { layout->acnt --; if (layout->acnt <0) layout->acnt = 0; layout->align = layout->saved_align[layout->acnt]; } else { layout->saved_align[layout->acnt] = layout->align; layout->acnt ++; if (layout->acnt >= ALIGN_NEST) layout->acnt = ALIGN_NEST - 1; layout->align = al; line->align = al; } goto out; } al = 0; if (TOKEN(token) == TOKEN_T) al = ALIGN_TOP; else if (TOKEN(token) == TOKEN_D) al = ALIGN_BOTTOM; else if (TOKEN(token) == TOKEN_M) al = ALIGN_MIDDLE; if (al) { if (token & TOKEN_CLOSE) { layout->vcnt --; if (layout->vcnt <0) layout->vcnt = 0; layout->valign = layout->saved_valign[layout->vcnt]; } else { layout->saved_valign[layout->vcnt] = layout->valign; layout->vcnt ++; if (layout->vcnt >= ALIGN_NEST) layout->vcnt = ALIGN_NEST - 1; layout->valign = al; } goto out; } if (TOKEN(token) == TOKEN_X) { int xpos; if (strchr(val, '%') && sscanf(val, "%d%%", &xpos) == 1) { xpos = layout->w * xpos / 100; } else { xpos = atoi(val); xpos = xpos * game_theme.scale; } line->tabx = xpos; line->al_tabx = ALIGN_LEFT; if (strstr(val, "right")) line->al_tabx = ALIGN_RIGHT; else if (strstr(val, "center")) line->al_tabx = ALIGN_CENTER; goto out; } if (TOKEN(token) == TOKEN_A) { if (token & TOKEN_CLOSE) { if (*xref) layout_add_xref(layout, *xref); *xref = NULL; } else { if (*xref) { eptr = NULL; goto out; } if (!strcmp(val, "#")) { /* jump anchor */ layout->anchor = line; } else { *xref = xref_new(val); } } } out: if (val) free(val); return eptr; } int get_unbrakable_len(struct layout *layout, const char *ptr) { int w = 0; int ww = 0; char *p, *eptr; while (ptr && *ptr) { int sp, sp2 = 0; while (get_token(ptr, &eptr, NULL, &sp)) { if (sp) sp2 ++; ptr = eptr; } if (sp2) return w; p = get_word(ptr, &eptr, &sp); if (!p) return w; if (sp || !*p || cjk_here(p) || word_img(p, NULL) || word_token(p, NULL)) { free(p); return w; } txt_size(layout->fn, p, &ww, NULL); ptr = eptr; w += ww; if (!*p) ptr ++; else if (is_delim(*(ptr - 1))) { free(p); break; } free(p); } return w; } int txt_layout_pos2off(layout_t lay, int pos, int *hh) { int off = 0; struct line *line; struct layout *layout = (struct layout*)lay; if (!layout) return 0; for (line = layout->lines; line && (line->pos <= pos); line = line->next) { off = line->y; // + line->h; if (hh) *hh = line->h; } return off; } int txt_layout_anchor(layout_t lay, int *hh) { int off; struct line *line; struct layout *layout = (struct layout*)lay; if (!layout) return -1; line = layout->anchor; if (!line) return -1; off = line->y; // + line->h; if (hh) *hh = line->h; return off; } void _txt_layout_add(layout_t lay, char *txt) { int sp = 0; int saved_style; int width; int img_align; struct margin *m; struct line *line, *lastline = NULL; struct layout *layout = (struct layout*)lay; char *p, *eptr; char *ptr = txt; struct xref *xref = NULL; int w, h = 0, nl = 0; int spw; img_t img = NULL; if (!layout || !layout->fn) return; saved_style = layout->style; fnt_style(layout->fn, 0); txt_size(layout->fn, " ", &spw, NULL); if (layout->lines) { lastline = layout->lines->prev; lastline->pos = 0; } if (!lastline) { line = line_new(); if (!line) goto err; line->h = h; line->align = layout->align; } else { line = lastline; } line->x = layout_find_margin(layout, line->y, &width); while (ptr && *ptr) { struct word *word; int sp2, addlen = 0; int wtok; eptr = process_token(ptr, layout, line, &xref, &sp2); if (eptr) { ptr = eptr; if (xref && layout->style == saved_style) fnt_style(layout->fn, layout->lstyle); // & ~TTF_STYLE_ITALIC); else fnt_style(layout->fn, layout->style);// & ~TTF_STYLE_ITALIC); if (!ptr || !*ptr) break; if (sp2) sp = -1; continue; } if (sp == -1) { p = get_word(ptr, &eptr, NULL); sp = 1; } else p = get_word(ptr, &eptr, &sp); if (!p) break; img = get_img(layout, p, &img_align); if (!img_align) /* margins reset */ addlen = get_unbrakable_len(layout, eptr); wtok = 0; if (img) { w = gfx_img_w(img); h = gfx_img_h(img); if (img_align) { if (!line_margin(line)) { line->y = layout_skip_margin(layout, line->y); width = layout->w; line->x = 0; } if (width - w <= 0) img_align = 0; } } else { p = get_word_token(p, &wtok); txt_size(layout->fn, p, &w, &h); h *= layout->fn_height; } nl = (wtok)?0:!*p; if (!line->h && !img_align && line_empty(line)) /* first word ? */ line->h = h; if (img_align && !line->w) line->h = 0; #if 0 if (!nl) { int ww = width - (line->w + ((sp && line->w)?spw:0) + addlen); p = word_hyphen(layout, p, ww, &eptr, &w); } #endif if ((line->num && (line->w + ((sp && line->w)?spw:0) + w + addlen) > width) || nl) { struct line *ol = line; h = 0; /* reset h for new line */ if ((layout->h) && (line->y + line->h) >= layout->h) break; if (line != lastline) { layout_add_line(layout, line); } line_align(line, width, line->align, nl); line = line_new(); if (!line) { free(p); goto err; } line->align = layout->align; line->h = 0;//h; line->y = ol->y + ol->h; // line->x = 0; line->x = layout_find_margin(layout, line->y, &width); // fprintf(stderr,"%d %d\n", line->x, width); if (nl) { ptr = eptr + 1; } free(p); // ptr = eptr; line->pos = (int)(ptr - txt); continue; } if (h > line->h && !img_align) line->h = h; word = word_new(p); if (!word) { line_free(line); goto err; } word->valign = layout->valign; if (!sp && !line_empty(line)) word->unbrake = 1; word->style = layout->style; if (line->w && !word->unbrake) line->w += spw; word->w = w; word->x = line->w; if (line->tabx > 0) { word->x = line->tabx - line->x; if (line->al_tabx == ALIGN_RIGHT) word->x -= word->w; else if (line->al_tabx == ALIGN_CENTER) word->x -= word->w/2; if (word->x + word->w > width) word->x = width - word->w; if (word->x < line->w) word->x = line->w; else line->w = word->x; line->tabx = -1; line->align = ALIGN_LEFT; } word->img = img; word->img_align = img_align; if (img_align && (m = margin_new())) { int x2, w2; x2 = layout_find_margin(layout, line->y, &w2); if (img_align == ALIGN_LEFT) { line->x += w; m->w = x2 + w; } else m->w = layout->w - x2 - w2 + w; // fprintf(stderr,"w: %d %d %d\n", width, w, width - w); width -= w; m->h = h; m->y = line->y; m->align = img_align; m->word = word; word->w = 0; if (img_align == ALIGN_LEFT) word->x = x2; else word->x = x2 + w2 - w; h = 0; w = 0; layout_add_margin(layout, m); } // if (line->w) // w += spw; line_add_word(line, word); if (xref) xref_add_word(xref, word); line->w += w; if (nl) eptr ++; ptr = eptr; free(p); } if (layout->h == 0) layout->h = line->y + line->h; // if (line->num) { if (line != lastline) layout_add_line(layout, line); line_align(line, width, line->align, nl); // } else // line_free(line); if (xref) layout_add_xref(layout, xref); layout->style = saved_style; return; err: txt_layout_free(layout); return; } void txt_layout_add(layout_t lay, char *txt) { struct layout *layout = (struct layout*)lay; if (layout) layout->h = 0; _txt_layout_add(lay, txt); } xref_t xref_next(xref_t x) { if (!x) return NULL; return ((struct xref*)x)->next; } xref_t xref_prev(xref_t x) { struct layout *l; if (!x) return NULL; l = ((struct xref*)x)->layout; if (x == l->xrefs) /* last one */ return NULL; x = ((struct xref*)x)->prev; return x; } xref_t txt_layout_xrefs(layout_t lay) { struct layout *layout = (struct layout*)lay; if (!layout) return NULL; return layout->xrefs; } int xref_position(xref_t x, int *xc, int *yc) { int i; int w = 0; struct line *line = NULL; struct word *word = NULL; struct xref *xref = (struct xref*)x; if (!xref || !xref->num) return -1; for (i = 0; i < xref->num; i ++) { word = xref->words[i]; if (!word->img_align) w += word->w; } w = w/2; for (i = 0; i < xref->num; i ++) { word = xref->words[i]; if (word->img_align) continue; line = word->line; w -= word->w; if (w < 0) break; } if (!line || !word) return -1; if (xc) *xc = line->x + word->x + (word->w + w); if (yc) *yc = line->y + line->h / 2; return 0; } xref_t txt_layout_xref(layout_t lay, int x, int y) { struct layout *layout = (struct layout*)lay; struct xref *xref; struct word *word; struct line *line; int i; if (!lay || x < 0 || y < 0) return NULL; for (xref = layout->xrefs; xref; xref = xref->next) { for (i = 0; i < xref->num; i ++) { int hh,yy; word = xref->words[i]; line = word->line; if (word->img_align) continue; if (y < line->y || y > line->y + line->h) continue; yy = vertical_align(word, &hh); if (y < line->y + yy || y > line->y + yy + hh) continue; if (x < line->x + word->x) continue; if (x <= line->x + word->x + word->w) return xref; if (word->next && word->next->xref == xref && x < line->x + word->next->x + word->next->w) { yy = vertical_align(word->next, &hh); if (y < line->y + yy || y > line->y + yy + hh) continue; return xref; } } } return NULL; } layout_t xref_layout(xref_t x) { struct xref *xref = (struct xref*)x; if (!xref) return NULL; return xref->layout; } char *xref_get_text(xref_t x) { struct xref *xref = (struct xref*)x; if (!xref) return NULL; return xref->link; } void xref_set_active(xref_t x, int val) { struct xref *xref = (struct xref*)x; if (!xref) return; xref->active = val; } int xref_get_active(xref_t x) { struct xref *xref = (struct xref*)x; if (!xref) return 0; return xref->active; } layout_t txt_layout(fnt_t fn, int align, int width, int height) { struct layout *layout; layout = layout_new(fn, width, height); if (!layout) return NULL; layout->align = align; // _txt_layout_add(layout, txt); return layout; } void txt_layout_set(layout_t lay, char *txt) { struct layout *layout = (struct layout*)lay; if (!layout) return; layout->h = 0; _txt_layout_free(lay); _txt_layout_add(lay, txt); } void _txt_layout_real_size(layout_t lay, struct line *line, int *pw, int *ph) { int w = 0; int h = 0; struct margin *margin; struct layout *layout = (struct layout*)lay; if (!layout) return; if (!line) line = layout->lines; for ( ; line; line = line->next) { while (!line->num && line->next) line = line->next; if (line->w > w) w = line->w; if (line->num && line->y + line->h > h) h = line->y + line->h; } for (margin = layout->margin; margin; margin = margin->next) { if (margin->y + margin->h > h) h = margin->y + margin->h; } if (pw) *pw = w; if (ph) *ph = h; } void txt_layout_real_size(layout_t lay, int *pw, int *ph) { _txt_layout_real_size(lay, NULL, pw, ph); } void txt_box_real_size(textbox_t box, int *pw, int *ph) { if (!box) return; if (pw) _txt_layout_real_size(txt_box_layout(box), NULL, pw, ph); else {/* faster path */ struct line *line = ((struct layout*)txt_box_layout(box))->lines; struct line *lines = line; if (lines) line = lines->prev; for (; line != lines && !line->num; line = line->prev); _txt_layout_real_size(txt_box_layout(box), line, NULL, ph); } } void gfx_cursor(int *xp, int *yp) { int x, y; SDL_GetMouseState(&x, &y); if (xp) *xp = x; if (yp) *yp = y; } void gfx_warp_cursor(int x, int y) { #if SDL_VERSION_ATLEAST(2,0,0) SDL_WarpMouseInWindow(SDL_VideoWindow, x, y); #else SDL_WarpMouse(x, y); #endif } int ALPHA_STEPS = 4; static volatile int fade_step_nr = -1; int gfx_fading(void) { return (fade_step_nr != -1); } static img_t fade_bg = NULL; static img_t fade_fg = NULL; #if SDL_VERSION_ATLEAST(2,0,0) static SDL_Texture *fade_bg_texture = NULL; static SDL_Texture *fade_fg_texture = NULL; #endif static void update_gfx(void *aux) { img_t img = fade_fg; if (fade_step_nr == -1 || !img || !fade_bg || !fade_fg) return; #if !SDL_VERSION_ATLEAST(2,0,0) game_cursor(CURSOR_CLEAR); gfx_set_alpha(img, (255 * (fade_step_nr + 1)) / ALPHA_STEPS); gfx_draw(fade_bg, 0, 0); gfx_draw(img, 0, 0); game_cursor(CURSOR_DRAW); gfx_flip(); #endif fade_step_nr ++; if (fade_step_nr == ALPHA_STEPS) { #if SDL_VERSION_ATLEAST(2,0,0) game_cursor(CURSOR_CLEAR); gfx_draw(fade_fg, 0, 0); game_cursor(CURSOR_ON); gfx_flip(); gfx_commit(); #endif fade_step_nr = -1; } } static Uint32 update(Uint32 interval, void *aux) { push_user_event(update_gfx, aux); return interval; } extern void nsleep(int delay); void gfx_change_screen(img_t src, int steps) { struct inp_event ev; SDL_TimerID han; if (steps <= 1 || !opt_fading) { gfx_draw(src, 0, 0); game_cursor(CURSOR_ON); gfx_flip(); // gfx_commit(); return; } fade_fg = NULL; fade_bg = gfx_grab_screen(0, 0, gfx_width, gfx_height); if (!fade_bg) /* ok, i like kernel logic. No memory, but we must work! */ return; fade_fg = src; #if SDL_VERSION_ATLEAST(2,0,0) fade_bg_texture = SDL_CreateTextureFromSurface(Renderer, Surf(fade_bg)); if (!fade_bg_texture) return; SDL_SetTextureAlphaMod(fade_bg_texture, 255); SDL_SetTextureBlendMode(fade_bg_texture, SDL_BLENDMODE_NONE); fade_fg_texture = SDL_CreateTextureFromSurface(Renderer, Surf(src)); if (!fade_fg_texture) return; SDL_SetTextureBlendMode(fade_fg_texture, SDL_BLENDMODE_BLEND); #endif memset(&ev, 0, sizeof(ev)); ALPHA_STEPS = steps; fade_step_nr = 0; han = SDL_AddTimer(60, update, NULL); while (input(&ev, 1) >=0 && gfx_fading()) { /* just wait for change */ #if !SDL_VERSION_ATLEAST(2,0,0) game_cursor(CURSOR_ON); gfx_commit(); #else SDL_RenderCopy(Renderer, fade_bg_texture, NULL, NULL); SDL_SetTextureAlphaMod(fade_fg_texture, (255 * (fade_step_nr)) / ALPHA_STEPS); SDL_RenderCopy(Renderer, fade_fg_texture, NULL, NULL); gfx_draw_cursor(); SDL_RenderPresent(Renderer); #endif } SDL_RemoveTimer(han); #if SDL_VERSION_ATLEAST(2,0,0) SDL_DestroyTexture(fade_fg_texture); SDL_DestroyTexture(fade_bg_texture); #endif gfx_free_image(fade_bg); fade_bg = NULL; } int gfx_init(void) { if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) < 0) { fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); return -1; } if (!(images = cache_init(-1, gfx_cache_free_image))) { fprintf(stderr, "Can't init cache subsystem.\n"); gfx_done(); return -1; } // SDL_DisableScreenSaver(); return 0; } void gfx_done(void) { cache_free(images); images = NULL; SDL_Quit(); } gtimer_t gfx_add_timer(int delay, int (*fn)(int, void*), void *aux) { #if SDL_VERSION_ATLEAST(1,3,0) return (gtimer_t)SDL_AddTimer(delay, (SDL_TimerCallback)fn, aux); #else return (gtimer_t)SDL_AddTimer(delay, (SDL_NewTimerCallback)fn, aux); #endif } void gfx_del_timer(gtimer_t han) { if (han) SDL_RemoveTimer((SDL_TimerID)han); } unsigned long gfx_ticks(void) { return SDL_GetTicks(); } int gfx_pending(void) { #if SDL_VERSION_ATLEAST(2,0,0) return queue_dirty; #else return 0; #endif } instead-1.9.1/src/sdl-instead/ioapi.c000644 001751 001751 00000016775 12161555571 017746 0ustar00peterpeter000000 000000 #ifdef _USE_UNPACK /* ioapi.h -- IO base function header for compress/uncompress .zip part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) Modifications for Zip64 support Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) For more info read MiniZip_info.txt */ #if (defined(_WIN32)) #define _CRT_SECURE_NO_WARNINGS #endif #include "ioapi.h" voidpf call_zopen64 (const zlib_filefunc64_32_def* pfilefunc,const void*filename,int mode) { if (pfilefunc->zfile_func64.zopen64_file != NULL) return (*(pfilefunc->zfile_func64.zopen64_file)) (pfilefunc->zfile_func64.opaque,filename,mode); else { return (*(pfilefunc->zopen32_file))(pfilefunc->zfile_func64.opaque,(const char*)filename,mode); } } long call_zseek64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream, ZPOS64_T offset, int origin) { if (pfilefunc->zfile_func64.zseek64_file != NULL) return (*(pfilefunc->zfile_func64.zseek64_file)) (pfilefunc->zfile_func64.opaque,filestream,offset,origin); else { uLong offsetTruncated = (uLong)offset; if (offsetTruncated != offset) return -1; else return (*(pfilefunc->zseek32_file))(pfilefunc->zfile_func64.opaque,filestream,offsetTruncated,origin); } } ZPOS64_T call_ztell64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream) { if (pfilefunc->zfile_func64.zseek64_file != NULL) return (*(pfilefunc->zfile_func64.ztell64_file)) (pfilefunc->zfile_func64.opaque,filestream); else { uLong tell_uLong = (*(pfilefunc->ztell32_file))(pfilefunc->zfile_func64.opaque,filestream); if ((tell_uLong) == ((uLong)-1)) return (ZPOS64_T)-1; else return tell_uLong; } } void fill_zlib_filefunc64_32_def_from_filefunc32(zlib_filefunc64_32_def* p_filefunc64_32,const zlib_filefunc_def* p_filefunc32) { p_filefunc64_32->zfile_func64.zopen64_file = NULL; p_filefunc64_32->zopen32_file = p_filefunc32->zopen_file; p_filefunc64_32->zfile_func64.zerror_file = p_filefunc32->zerror_file; p_filefunc64_32->zfile_func64.zread_file = p_filefunc32->zread_file; p_filefunc64_32->zfile_func64.zwrite_file = p_filefunc32->zwrite_file; p_filefunc64_32->zfile_func64.ztell64_file = NULL; p_filefunc64_32->zfile_func64.zseek64_file = NULL; p_filefunc64_32->zfile_func64.zclose_file = p_filefunc32->zclose_file; p_filefunc64_32->zfile_func64.zerror_file = p_filefunc32->zerror_file; p_filefunc64_32->zfile_func64.opaque = p_filefunc32->opaque; p_filefunc64_32->zseek32_file = p_filefunc32->zseek_file; p_filefunc64_32->ztell32_file = p_filefunc32->ztell_file; } static voidpf ZCALLBACK fopen_file_func OF((voidpf opaque, const char* filename, int mode)); static uLong ZCALLBACK fread_file_func OF((voidpf opaque, voidpf stream, void* buf, uLong size)); static uLong ZCALLBACK fwrite_file_func OF((voidpf opaque, voidpf stream, const void* buf,uLong size)); static ZPOS64_T ZCALLBACK ftell64_file_func OF((voidpf opaque, voidpf stream)); static long ZCALLBACK fseek64_file_func OF((voidpf opaque, voidpf stream, ZPOS64_T offset, int origin)); static int ZCALLBACK fclose_file_func OF((voidpf opaque, voidpf stream)); static int ZCALLBACK ferror_file_func OF((voidpf opaque, voidpf stream)); static voidpf ZCALLBACK fopen_file_func (voidpf opaque, const char* filename, int mode) { FILE* file = NULL; const char* mode_fopen = NULL; if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ) mode_fopen = "rb"; else if (mode & ZLIB_FILEFUNC_MODE_EXISTING) mode_fopen = "r+b"; else if (mode & ZLIB_FILEFUNC_MODE_CREATE) mode_fopen = "wb"; if ((filename!=NULL) && (mode_fopen != NULL)) file = fopen(filename, mode_fopen); return file; } static voidpf ZCALLBACK fopen64_file_func (voidpf opaque, const void* filename, int mode) { FILE* file = NULL; const char* mode_fopen = NULL; if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ) mode_fopen = "rb"; else if (mode & ZLIB_FILEFUNC_MODE_EXISTING) mode_fopen = "r+b"; else if (mode & ZLIB_FILEFUNC_MODE_CREATE) mode_fopen = "wb"; if ((filename!=NULL) && (mode_fopen != NULL)) file = fopen64((const char*)filename, mode_fopen); return file; } static uLong ZCALLBACK fread_file_func (voidpf opaque, voidpf stream, void* buf, uLong size) { uLong ret; ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream); return ret; } static uLong ZCALLBACK fwrite_file_func (voidpf opaque, voidpf stream, const void* buf, uLong size) { uLong ret; ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream); return ret; } static long ZCALLBACK ftell_file_func (voidpf opaque, voidpf stream) { long ret; ret = ftell((FILE *)stream); return ret; } static ZPOS64_T ZCALLBACK ftell64_file_func (voidpf opaque, voidpf stream) { ZPOS64_T ret; ret = ftello64((FILE *)stream); return ret; } static long ZCALLBACK fseek_file_func (voidpf opaque, voidpf stream, uLong offset, int origin) { int fseek_origin=0; long ret; switch (origin) { case ZLIB_FILEFUNC_SEEK_CUR : fseek_origin = SEEK_CUR; break; case ZLIB_FILEFUNC_SEEK_END : fseek_origin = SEEK_END; break; case ZLIB_FILEFUNC_SEEK_SET : fseek_origin = SEEK_SET; break; default: return -1; } ret = 0; if (fseek((FILE *)stream, offset, fseek_origin) != 0) ret = -1; return ret; } static long ZCALLBACK fseek64_file_func (voidpf opaque, voidpf stream, ZPOS64_T offset, int origin) { int fseek_origin=0; long ret; switch (origin) { case ZLIB_FILEFUNC_SEEK_CUR : fseek_origin = SEEK_CUR; break; case ZLIB_FILEFUNC_SEEK_END : fseek_origin = SEEK_END; break; case ZLIB_FILEFUNC_SEEK_SET : fseek_origin = SEEK_SET; break; default: return -1; } ret = 0; if(fseeko64((FILE *)stream, offset, fseek_origin) != 0) ret = -1; return ret; } static int ZCALLBACK fclose_file_func (voidpf opaque, voidpf stream) { int ret; ret = fclose((FILE *)stream); return ret; } static int ZCALLBACK ferror_file_func (voidpf opaque, voidpf stream) { int ret; ret = ferror((FILE *)stream); return ret; } void fill_fopen_filefunc (pzlib_filefunc_def) zlib_filefunc_def* pzlib_filefunc_def; { pzlib_filefunc_def->zopen_file = fopen_file_func; pzlib_filefunc_def->zread_file = fread_file_func; pzlib_filefunc_def->zwrite_file = fwrite_file_func; pzlib_filefunc_def->ztell_file = ftell_file_func; pzlib_filefunc_def->zseek_file = fseek_file_func; pzlib_filefunc_def->zclose_file = fclose_file_func; pzlib_filefunc_def->zerror_file = ferror_file_func; pzlib_filefunc_def->opaque = NULL; } void fill_fopen64_filefunc (zlib_filefunc64_def* pzlib_filefunc_def) { pzlib_filefunc_def->zopen64_file = fopen64_file_func; pzlib_filefunc_def->zread_file = fread_file_func; pzlib_filefunc_def->zwrite_file = fwrite_file_func; pzlib_filefunc_def->ztell64_file = ftell64_file_func; pzlib_filefunc_def->zseek64_file = fseek64_file_func; pzlib_filefunc_def->zclose_file = fclose_file_func; pzlib_filefunc_def->zerror_file = ferror_file_func; pzlib_filefunc_def->opaque = NULL; } #endif instead-1.9.1/src/sdl-instead/idf.c000644 001751 001751 00000024653 12161555571 017401 0ustar00peterpeter000000 000000 #include "externals.h" #include "internals.h" #include "idf.h" #include "list.h" #include typedef struct _idfd_t { struct list_head list; unsigned long offset; unsigned long size; idf_t idf; } idfd_t; struct _idff_t { struct list_head list; idfd_t *dir; unsigned long pos; FILE *fd; }; static void free_idfd(void *p) { idfd_t *dir = (idfd_t*)p; if (!p) return; while (!list_empty(&dir->list)) { idff_t idff; idff = (idff_t)(dir->list.next); idf_close(idff); } free(p); } struct _idf_t { unsigned long size; FILE *fd; char *path; cache_t dir; int idfonly; }; void idf_done(idf_t idf) { if (!idf) return; if (idf->path) free(idf->path); if (idf->dir) cache_free(idf->dir); if (idf->fd) fclose(idf->fd); free(idf); } void idf_shrink(idf_t idf) { if (!idf) return; if (idf->dir) cache_shrink(idf->dir); } static int read_word(FILE *fd, unsigned long *w) { unsigned char word[4]; if (fread(word, 1, 4, fd) != 4) return -1; *w = (unsigned long)word[0] | ((unsigned long)word[1] << 8) | ((unsigned long)word[2] << 16) | ((unsigned long)word[3] << 24); return 0; } static int write_word(FILE *fd, unsigned long w) { char word[4]; word[0] = w & 0xff; word[1] = (w & 0xff00) >> 8; word[2] = (w & 0xff0000) >> 16; word[3] = (w & 0xff000000) >> 24; if (fwrite(word, 1, 4, fd) != 4) return -1; return 0; } int idf_magic(const char *fname) { char sign[4]; FILE *fd = fopen(dirpath(fname), "rb"); if (!fd) return 0; if (fread(sign, 1, 4, fd) != 4) { fclose(fd); return 0; } fclose(fd); if (!memcmp(sign, "IDF1", 4)) return 1; return 0; } idf_t idf_init(const char *fname) { char sign[4]; unsigned long dir_size; char *fp = dirpath(fname); idf_t idf = malloc(sizeof(struct _idf_t)); if (!idf) return NULL; idf->path = strdup(fname); if (!idf->path) goto err; idf->idfonly = 0; idf->fd = fopen(fp, "rb"); idf->dir = cache_init(-1, free_idfd); if (!idf->fd || !idf->dir) goto err; if (fseek(idf->fd, 0, SEEK_END)) goto err; idf->size = ftell(idf->fd); if ((int)idf->size < 0) goto err; if (fseek(idf->fd, 0, SEEK_SET)) goto err; if (fread(sign, 1, 4, idf->fd) != 4) goto err; if (memcmp(sign, "IDF1", 4)) goto err; if (read_word(idf->fd, &dir_size)) goto err; if (dir_size > idf->size) goto err; while (dir_size > 0) { unsigned long off; unsigned long size; unsigned char sz; char name[256]; idfd_t *e; if (fread(&sz, 1, 1, idf->fd) != 1) goto err; if (fread(name, 1, sz, idf->fd) != sz) goto err; name[sz] = 0; if (read_word(idf->fd, &off)) goto err; if (read_word(idf->fd, &size)) goto err; e = malloc(sizeof(idfd_t)); if (!e) goto err; e->offset = off; e->size = size; e->idf = idf; INIT_LIST_HEAD(&e->list); if (cache_add(idf->dir, name, e)) { free(e); goto err; } cache_forget(idf->dir, e); /* use like hash */ // fprintf(stderr,"Parsed: '%s' @ %ld, %ld\n", name, off, size); dir_size -= (1 + sz + 4 + 4); } return idf; err: idf_done(idf); return NULL; } typedef struct { struct list_head list; char *path; long size; } idf_item_t; static int fcopy(FILE *to, const char *fname) { int rc = -1; char buff[4096]; FILE *fd; fd = fopen(fname, "rb"); if (!fd) return -1; while (!feof(fd)) { int s = fread(buff, 1, sizeof(buff), fd); if (!s) { if (feof(fd)) break; goto err; } if (fwrite(buff, 1, s, to) != s) goto err; } rc = 0; err: fclose(fd); return rc; } static int idf_tree(const char *path, struct list_head *list, const char *fname) { DIR *d; struct dirent *de; if (!path) return 0; d = opendir(dirpath(path)); if (!d) { if (!access(dirpath(path), R_OK) && fname) { FILE *fd; idf_item_t *i; fd = fopen(dirpath(path), "rb"); i = malloc(sizeof(idf_item_t)); if (!i) return -1; INIT_LIST_HEAD(&i->list); if (!(i->path = strdup(fname))) goto err; if (fseek(fd, 0, SEEK_END) < 0) goto err; if ((i->size = ftell(fd)) < 0) goto err; fclose(fd); fprintf(stderr, "Added file: '%s' size: %ld\n", path, i->size); list_add(&i->list, list); return 0; err: if (i->path) free(i->path); free(i); return -1; } return 0; } while ((de = readdir(d))) { char *p; if (!strcmp(de->d_name, ".") || !strcmp(de->d_name, "..")) continue; p = getfilepath(path, de->d_name); if (p) { char *pp = getfilepath(fname, de->d_name); if (pp) { idf_tree(p, list, pp); free(pp); } free(p); } } closedir(d); return 0; } int idf_create(const char *file, const char *path) { int rc = -1, i; FILE *fd; char *p; unsigned long off = 0; long dict_size = 0; struct list_head *pos; LIST_HEAD(items); p = strdup(path); if (!p) return -1; unix_path(p); i = strlen(p) - 1; while (i >= 0 && p[i] == '/') { p[i --] = 0; } idf_tree(p, &items, NULL); free(p); list_for_each(pos, &items) { idf_item_t *it = (idf_item_t *)pos; dict_size += (1 + strlen(it->path) + 4 + 4); } fd = fopen(dirpath(file), "wb"); if (!fd) goto err; if (fwrite("IDF1", 1, 4, fd) != 4) goto err; if (write_word(fd, dict_size) < 0) goto err; off = 4 + 4 + dict_size; list_for_each(pos, &items) { unsigned char s; idf_item_t *it = (idf_item_t *)pos; s = strlen(it->path); if (fwrite(&s, 1, 1, fd) != 1) goto err; p = strdup(it->path); if (!p) goto err; tolow(p); /* in idf always lowcase */ if (fwrite(p, 1, s, fd) != s) { free(p); goto err; } free(p); if (write_word(fd, off) < 0) goto err; if (write_word(fd, it->size) < 0) goto err; off += it->size; } list_for_each(pos, &items) { idf_item_t *it = (idf_item_t *)pos; char *p; p = getfilepath(path, it->path); if (p) { int rc = fcopy(fd, p); free(p); if (rc) { fprintf(stderr, "Error while copy file '%s'...\n", it->path); goto err; } } } rc = 0; err: if (rc) fprintf(stderr, "Error creating idf file...\n"); while (!list_empty(&items)) { idf_item_t *it = (idf_item_t *)items.next; free(it->path); list_del(&it->list); free(it); } if (fd) fclose(fd); return rc; } int idf_seek(idff_t fil, int offset, int whence) { idfd_t *dir = fil->dir; switch (whence) { case SEEK_SET: if (offset < 0 || offset > dir->size) { return -1; } fil->pos = offset; break; case SEEK_END: if (dir->size + offset > dir->size || (int)(dir->size + offset) < 0) { return -1; } fil->pos = dir->size + offset; break; case SEEK_CUR: if (fil->pos + offset > dir->size || (int)(fil->pos + offset) < 0) { return -1; } fil->pos += offset; break; } if (!fseek(fil->fd, fil->pos + dir->offset, SEEK_SET)) return fil->pos; return -1; } #if SDL_VERSION_ATLEAST(2,0,0) static Sint64 idfrw_seek(struct SDL_RWops *context, Sint64 offset, int whence) #else static int idfrw_seek(struct SDL_RWops *context, int offset, int whence) #endif { idff_t fil = (idff_t)context->hidden.unknown.data1; return idf_seek(fil, offset, whence); } int idf_read(idff_t fil, void *ptr, int size, int maxnum) { int rc = 0; long pos; idfd_t *dir = fil->dir; if (fseek(fil->fd, dir->offset + fil->pos, SEEK_SET) < 0) { return 0; } #if 1 while (maxnum) { pos = ftell(fil->fd); fil->pos = pos - dir->offset; if (fil->pos + size > dir->size) { break; } if (fread(ptr, size, 1, fil->fd) != 1) break; // fil->pos += size; ptr += size; maxnum --; rc ++; } #else rc = fread(ptr, size, maxnum, fil->fd); #endif pos = ftell(fil->fd); fil->pos = pos - dir->offset; return rc; } #if SDL_VERSION_ATLEAST(2,0,0) static size_t idfrw_read(struct SDL_RWops *context, void *ptr, size_t size, size_t maxnum) #else static int idfrw_read(struct SDL_RWops *context, void *ptr, int size, int maxnum) #endif { idff_t fil = (idff_t)context->hidden.unknown.data1; return idf_read(fil, ptr, size, maxnum); } int idf_close(idff_t fil) { if (fil) { fclose(fil->fd); list_del(&fil->list); free(fil); } return 0; /* nothing todo */ } static int idfrw_close(struct SDL_RWops *context) { if (context) { idff_t fil = (idff_t)context->hidden.unknown.data1; idf_close(fil); SDL_FreeRW(context); } return 0; } #if 0 int idf_extract(idf_t idf, const char *fname) { FILE *out; int size; idfd_t *dir = NULL; char buff[4096]; if (idf) dir = cache_lookup(idf->dir, fname); if (!dir) return -1; fseek(idf->fd, dir->offset, SEEK_SET); out = fopen("out.bin", "wb"); size = dir->size; while (size>0) { int s ; if (size < sizeof(buff)) s = fread(buff, 1, size, idf->fd); else s = fread(buff, 1, sizeof(buff), idf->fd); fwrite(buff, 1, s, out); size -= s; fprintf(stderr, "size = %d\n", size); } fclose(out); return 0; } #endif int idf_eof(idff_t idf) { if (!idf) return 1; if (idf->pos >= idf->dir->size) return 1; return 0; } int idf_error(idff_t idf) { if (!idf || !idf->fd) return -1; return ferror(idf->fd); } int idf_only(idf_t idf, int fl) { int i; if (!idf) return -1; if (fl == -1) return idf->idfonly; i = idf->idfonly; idf->idfonly = fl; return i; } idff_t idf_open(idf_t idf, const char *fname) { idfd_t *dir = NULL; idff_t fil = NULL; char *p; if (!idf || !fname) return NULL; p = strdup(fname); if (!p) return NULL; tolow(p); if (idf) dir = cache_lookup(idf->dir, p); free(p); if (!dir) return NULL; fil = malloc(sizeof(struct _idff_t)); if (!fil) return NULL; INIT_LIST_HEAD(&fil->list); fil->dir = dir; fil->pos = 0; fil->fd = fopen(dirpath(idf->path), "rb"); if (!fil->fd) goto err; list_add(&fil->list, &dir->list); return fil; err: free(fil); return NULL; } int idf_access(idf_t idf, const char *fname) { idfd_t *dir = NULL; if (idf) dir = cache_lookup(idf->dir, fname); if (!dir) return -1; return 0; } char *idf_gets(idff_t idf, char *b, int size) { int rc, rc2; if (!idf) return NULL; if (!size) return NULL; rc = idf_read(idf, b, 1, size); if (rc < 0) return NULL; if (!rc && idf_eof(idf)) return NULL; if (!idf_eof(idf)) b[rc - 1] = 0; else { if (rc < size) b[rc] = 0; else b[size - 1] = 0; } rc2 = strcspn(b, "\n"); b[rc2] = 0; idf_seek(idf, - (rc - rc2 - 1), SEEK_CUR); return b; } SDL_RWops *RWFromIdf(idf_t idf, const char *fname) { idff_t fil = NULL; SDL_RWops *n; fil = idf_open(idf, fname); if (!fil) { if (!idf || !idf->idfonly) return SDL_RWFromFile(dirpath(fname), "rb"); return NULL; } n = SDL_AllocRW(); if (!n) goto err; n->seek = idfrw_seek; n->read = idfrw_read; n->close = idfrw_close; n->hidden.unknown.data1 = fil; return n; err: if (n) SDL_FreeRW(n); free(fil); return NULL; } instead-1.9.1/src/sdl-instead/snprintf.c000644 001751 001751 00000055732 12161555571 020504 0ustar00peterpeter000000 000000 /* * snprintf.c - a portable implementation of snprintf * * AUTHOR * Mark Martinec , April 1999 * Copyright: Mark Martinec * * TERMS AND CONDITIONS * for copying, distribution and modification, NO WARRANTY: * GNU GENERAL PUBLIC LICENSE, Version 2 or later * (see file LICENSE in the distribution kit) * * FEATURES * - careful adherence to specs regarding flags, field width and precision; * - good performance for large string handling (large format, large * argument or large paddings). Performance is similar to system's sprintf * and in several cases significantly better (make sure you compile with * optimizations turned on, tell the compiler the code is strict ANSI * if necessary to give it more freedom for optimizations); * - written in standard ANSI C - requires an ANSI C compiler. * * SUPPORTED FORMATS AND DATA TYPES * * This snprintf only supports format specifiers: * s, c, d, o, u, x, X, p (and synonyms: i, D, U, O - see below) * with flags: '-', '+', ' ', '0' and '#'. * An asterisk is supported for field width as well as precision. * * Data type modifiers 'h' (short int), 'l' (long int) * and 'll' (long long int) are supported. * NOTE: * If macro SNPRINTF_LONGLONG_SUPPORT is not defined (default) the * data type modifier 'll' is recognized but treated the same as 'l', * which may cause argument value truncation! Defining * SNPRINTF_LONGLONG_SUPPORT requires that your system's sprintf also * handles data type modifier 'll'. long long int is a language * extension which may not be portable. * * Conversion of numeric data (formats d, o, u, x, X, p) with data type * modifiers (none or h, l, ll) is left to the system routine sprintf, * but all handling of flags, field width and precision as well as c and * s formats is done very carefully by this portable routine. If a string * precision (truncation) is specified (e.g. %.8s) it is guaranteed the * string beyond the specified precision will not be referenced. * * Data type modifiers h, l and ll are ignored for c and s formats (data * types wint_t and wchar_t are not supported). * * The following common synonyms for conversion characters are supported: * - i is a synonym for d * - D is a synonym for ld, explicit data type modifiers are ignored * - U is a synonym for lu, explicit data type modifiers are ignored * - O is a synonym for lo, explicit data type modifiers are ignored * * The following is specifically not supported: * - flag ' (thousands' grouping character) is recognized but ignored * - numeric formats: f, e, E, g, G and synonym F * - data type modifier 'L' (long double) and 'q' (quad - use 'll' instead) * - wide character/string formats: C, lc, S, ls * - writeback of converted string length: conversion character n * - the n$ specification for direct reference to n-th argument * - locales * * AVAILABILITY * http://www.ijs.si/software/snprintf/ * * REVISION HISTORY * Apr 1999 V0.9 Mark Martinec * - initial version, some modifications after comparing printf * man pages for Digital Unix 4.0, Solaris 2.6 and HPUX 10, * and checking how Perl handles sprintf (differently!); * 9 Apr 1999 V1.0 Mark Martinec * - added main test program, fixed remaining inconsistencies, * added optional (long long int) support; * 12 Apr 1999 V1.1 Mark Martinec * - support the 'p' format (pointer to void); * - if a string precision is specified * make sure the string beyond the specified precision * will not be referenced (e.g. by strlen); * 13 Apr 1999 V1.2 Mark Martinec * - support synonyms %D=%ld, %U=%lu, %O=%lo; * - speed up the case of long format string with few conversions; * 30 Jun 1999 V1.3 Mark Martinec * - fixed runaway loop (eventually crashing when str_l wraps * beyond 2*31) while copying format string without * conversion specifiers to a buffer that is too short * (thanks to Edwin Young for * spoting the problem) * - added macros PORTABLE_SNPRINTF_VERSION_(MAJOR|MINOR) * to snprintf.h */ /* Define HAVE_SNPRINTF if your system already has snprintf. * * If HAVE_SNPRINTF is defined this module will produce no code * unless PREFER_PORTABLE_SNPRINTF is defined as well, * causing portable version of snprintf to be called portable_snprintf. */ /* #define HAVE_SNPRINTF */ /* Define PREFER_PORTABLE_SNPRINTF if your system does have snprintf * but you would prefer to use this portable routine instead. * In this case the portable routine is declared as portable_snprintf * and a macro 'snprintf' is defined to expand to 'portable_snprintf' * - see file snprintf.h . * Defining this macro if HAVE_SNPRINTF is *not* defined does no harm. */ /* #define PREFER_PORTABLE_SNPRINTF */ /* Define SNPRINTF_LONGLONG_SUPPORT if you want to support * data type (long long int) and data type modifier 'll' (e.g. %lld). * If undefined, 'll' is recognized but treated as a single 'l'. * * If the system's sprintf does not handle 'll' * the SNPRINTF_LONGLONG_SUPPORT must not be defined! * * This is off by default since (long long int) is a language extension. */ /* #define SNPRINTF_LONGLONG_SUPPORT */ /* Define the following macros if desired: * SOLARIS_COMPATIBLE, SOLARIS_BUG_COMPATIBLE, * HPUX_COMPATIBLE, HPUX_BUG_COMPATIBLE, * DIGITAL_UNIX_COMPATIBLE, DIGITAL_UNIX_BUG_COMPATIBLE, * PERL_COMPATIBLE, PERL_BUG_COMPATIBLE, * * - For portable applications it is best not to rely on peculiarities * of a given implementation so it may be best not to define any * of the macros that select compatibility and to avoid features * that vary among the systems. * * - Selecting compatibility with more than one operating system * is not strictly forbidden but is not recommended. * * - 'x'_BUG_COMPATIBLE implies 'x'_COMPATIBLE . * * - 'x'_COMPATIBLE refers to (and enables) a behaviour that is * documented in a sprintf man page on a given operating system * and actually adhered to by the system's sprintf (but not on * most other operating systems). It may also refer to and enable * a behaviour that is declared 'undefined' or 'implementation specific' * in the man page but a given implementation behaves predictably * in a certain way. * * - 'x'_BUG_COMPATIBLE refers to (and enables) a behaviour of system's sprintf * that contradicts the sprintf man page on the same operating system. */ /* ============================================= */ /* NO USER SERVICABLE PARTS FOLLOWING THIS POINT */ /* ============================================= */ /* * If the system does have snprintf and the portable routine is not * specifically required, this module produces no code. */ #if !defined(HAVE_SNPRINTF) || defined(PREFER_PORTABLE_SNPRINTF) #if defined(SOLARIS_BUG_COMPATIBLE) && !defined(SOLARIS_COMPATIBLE) #define SOLARIS_COMPATIBLE #endif #if defined(HPUX_BUG_COMPATIBLE) && !defined(HPUX_COMPATIBLE) #define HPUX_COMPATIBLE #endif #if defined(DIGITAL_UNIX_BUG_COMPATIBLE) && !defined(DIGITAL_UNIX_COMPATIBLE) #define DIGITAL_UNIX_COMPATIBLE #endif #if defined(PERL_BUG_COMPATIBLE) && !defined(PERL_COMPATIBLE) #define PERL_COMPATIBLE #endif #include #include #include #include #include #ifdef isdigit #undef isdigit #endif #define isdigit(c) ((c) >= '0' && (c) <= '9') #if !defined(HAVE_SNPRINTF) /* declare our portable routine under name snprintf */ #define portable_snprintf snprintf #else /* declare our portable routine under name portable_snprintf */ #endif /* prototype */ int portable_snprintf(char *str, size_t str_m, const char *fmt, /*args*/ ...); /* declaration */ int portable_snprintf(char *str, size_t str_m, const char *fmt, /*args*/ ...) { va_list ap; size_t str_l = 0; const char *p = fmt; if (str_m < 1) return -1; va_start(ap, fmt); if (!p) p = ""; while (*p) { if (*p != '%') { /* if (str_l < str_m) str[str_l++] = *p++; -- this would be sufficient */ /* but the following code achieves better performance for cases * where format string is long and contains few conversions */ const char *q = strchr(p+1,'%'); int n = !q ? strlen(p) : (q-p); int avail = (int)(str_m-str_l); if (avail > 0) { register int k; register char *r; register const char* p1; for (p1=p, r=str+str_l, k=(n>avail?avail:n); k>0; k--) *r++ = *p1++; } p += n; str_l += n; } else { const char *starting_p; int min_field_width = 0, precision = 0; int zero_padding = 0, precision_specified = 0, justify_left = 0; int alternative_form = 0, force_sign = 0; int space_for_positive = 1; /* If both the ' ' and '+' flags appear, the ' ' flag should be ignored. */ char data_type_modifier = '\0'; /* allowed valued: \0, h, l, L, p */ char tmp[32];/* temporary buffer for simple numeric->string conversion */ const char *str_arg = 0;/* string address in case of string arguments */ int str_arg_l; /* natural field width of arg without padding and sign */ long int long_arg; /* long int argument value - always defined in case of numeric arguments, regardless of data type modifiers. In case of data type modifier 'll' the value is stored in long_long_arg and only the sign of long_arg is guaranteed to be correct */ void *ptr_arg; /* pointer argument value - only defined for p format */ int int_arg; /* int argument value - only defined if no h or l modif.*/ #ifdef SNPRINTF_LONGLONG_SUPPORT long long int long_long_arg = 0; /* long long argument value - only defined if ll modifier is present */ #endif int number_of_zeros_to_pad = 0; int zero_padding_insertion_ind = 0; char fmt_spec = '\0'; /* current format specifier character */ starting_p = p; p++; /* skip '%' */ /* parse flags */ while (*p == '0' || *p == '-' || *p == '+' || *p == ' ' || *p == '#' || *p == '\'') { switch (*p) { case '0': zero_padding = 1; break; case '-': justify_left = 1; break; case '+': force_sign = 1; space_for_positive = 0; break; case ' ': force_sign = 1; /* If both the ' ' and '+' flags appear, the ' ' flag should be ignored */ #ifdef PERL_COMPATIBLE /* ... but in Perl the last of ' ' and '+' applies */ space_for_positive = 1; #endif break; case '#': alternative_form = 1; break; case '\'': break; } p++; } /* If the '0' and '-' flags both appear, the '0' flag should be ignored. */ /* parse field width */ if (*p == '*') { p++; min_field_width = va_arg(ap, int); if (min_field_width < 0) { min_field_width = -min_field_width; justify_left = 1; } } else if (isdigit((int)(*p))) { min_field_width = *p++ - '0'; while (isdigit((int)(*p))) min_field_width = 10*min_field_width + (*p++ - '0'); } /* parse precision */ if (*p == '.') { p++; precision_specified = 1; if (*p == '*') { p++; precision = va_arg(ap, int); if (precision < 0) { precision_specified = 0; precision = 0; /* NOTE: * Solaris 2.6 man page claims that in this case the precision * should be set to 0. Digital Unix 4.0 and HPUX 10 man page * claim that this case should be treated as unspecified precision, * which is what we do here. */ } } else if (isdigit((int)(*p))) { precision = *p++ - '0'; while (isdigit((int)(*p))) precision = 10*precision + (*p++ - '0'); } } /* parse 'h', 'l' and 'll' data type modifiers */ if (*p == 'h' || *p == 'l') { data_type_modifier = *p; p++; if (data_type_modifier == 'l' && *p == 'l') {/* double l = long long */ #ifdef SNPRINTF_LONGLONG_SUPPORT data_type_modifier = '2'; /* double l encoded as '2' */ #else data_type_modifier = 'l'; /* treat it as single 'l' */ #endif p++; } } fmt_spec = *p; /* common synonyms: */ switch (fmt_spec) { case 'i': fmt_spec = 'd'; break; case 'D': fmt_spec = 'd'; data_type_modifier = 'l'; break; case 'U': fmt_spec = 'u'; data_type_modifier = 'l'; break; case 'O': fmt_spec = 'o'; data_type_modifier = 'l'; break; default: break; } /* get parameter value, do initial processing */ switch (fmt_spec) { case '%': /* % behaves similar to 's' regarding flags and field widths */ case 'c': /* c behaves similar to 's' regarding flags and field widths */ case 's': data_type_modifier = '\0'; /* wint_t and wchar_t not supported */ /* the result of zero padding flag with non-numeric format is undefined */ /* Solaris and HPUX 10 does zero padding in this case, Digital Unix not */ #ifdef DIGITAL_UNIX_COMPATIBLE zero_padding = 0; /* turn zero padding off for string formats */ #endif str_arg_l = 1; switch (fmt_spec) { case '%': str_arg = p; break; case 'c': { int j = va_arg(ap, int); str_arg = (const char*) &j; } break; case 's': str_arg = va_arg(ap, const char *); if (!str_arg) str_arg_l = 0; /* make sure not to address string beyond the specified precision !!! */ else if (!precision_specified) str_arg_l = strlen(str_arg); /* truncate string if necessary as requested by precision */ else if (precision <= 0) str_arg_l = 0; else { const char *q = memchr(str_arg,'\0',(size_t)precision); str_arg_l = !q ? precision : (q-str_arg); } break; default: break; } break; case 'd': case 'o': case 'u': case 'x': case 'X': case 'p': long_arg = 0; int_arg = 0; ptr_arg = NULL; if (fmt_spec == 'p') { /* HPUX 10: An l, h, ll or L before any other conversion character * (other than d, i, o, u, x, or X) is ignored. * Digital Unix: * not specified, but seems to behave as HPUX does. * Solaris: If an h, l, or L appears before any other conversion * specifier (other than d, i, o, u, x, or X), the behavior * is undefined. (Actually %hp converts only 16-bits of address * and %llp treats address as 64-bit data which is incompatible * with (void *) argument on a 32-bit system). */ #ifdef SOLARIS_COMPATIBLE # ifdef SOLARIS_BUG_COMPATIBLE /* keep data type modifiers even if it represents 'll' */ # else if (data_type_modifier == '2') data_type_modifier = '\0'; # endif #else data_type_modifier = '\0'; #endif ptr_arg = va_arg(ap, void *); long_arg = !ptr_arg ? 0 : 1; } else { switch (data_type_modifier) { case '\0': case 'h': /* It is non-portable to specify a second argument of char or short * to va_arg, because arguments seen by the called function * are not char or short. C converts char and short arguments * to int before passing them to a function. */ int_arg = va_arg(ap, int); long_arg = int_arg; break; case 'l': long_arg = va_arg(ap, long int); break; #ifdef SNPRINTF_LONGLONG_SUPPORT case '2': long_long_arg = va_arg(ap, long long int); /* only the sign of long_arg is guaranteed */ if (long_long_arg > 0) long_arg = +1; else if (long_long_arg < 0) long_arg = -1; else long_arg = 0; break; #endif } } str_arg = tmp; str_arg_l = 0; /* NOTE: * For d, i, o, u, x, and X conversions, if precision is specified, * the '0' flag should be ignored. This is so with Solaris 2.6, * Digital UNIX 4.0 and HPUX 10; but not with Perl. */ #ifndef PERL_COMPATIBLE if (precision_specified) zero_padding = 0; #endif if (fmt_spec == 'd') { if (force_sign && long_arg >= 0) tmp[str_arg_l++] = space_for_positive ? ' ' : '+'; /* leave negative numbers for sprintf to handle, to avoid handling tricky cases like (short int)(-32768) */ } else if (alternative_form) { if (long_arg != 0 && (fmt_spec == 'x' || fmt_spec == 'X') ) { tmp[str_arg_l++] = '0'; tmp[str_arg_l++] = fmt_spec; } #ifdef HPUX_COMPATIBLE else if (fmt_spec == 'p' /* HPUX 10: for an alternative form of p conversion, * a nonzero result is prefixed by 0x. */ #ifndef HPUX_BUG_COMPATIBLE /* Actually it uses 0x prefix even for a zero value. */ && long_arg != 0 #endif ) { tmp[str_arg_l++] = '0'; tmp[str_arg_l++] = 'x'; } #endif } zero_padding_insertion_ind = str_arg_l; if (!precision_specified) precision = 1; /* default precision is 1 */ if (precision == 0 && long_arg == 0 #ifdef HPUX_BUG_COMPATIBLE && fmt_spec != 'p' /* HPUX 10 man page claims: With conversion character p the result of * converting a zero value with a precision of zero is a null string. * Actually it returns all zeroes. */ #endif ) { /* converted to null string */ } else { char f[5]; int f_l = 0; f[f_l++] = '%'; if (!data_type_modifier) { } else if (data_type_modifier=='2') { f[f_l++] = 'l'; f[f_l++] = 'l'; } else f[f_l++] = data_type_modifier; f[f_l++] = fmt_spec; f[f_l++] = '\0'; if (fmt_spec == 'p') str_arg_l+=sprintf(tmp+str_arg_l, f, ptr_arg); else { switch (data_type_modifier) { case '\0': case 'h': str_arg_l+=sprintf(tmp+str_arg_l, f, int_arg); break; case 'l': str_arg_l+=sprintf(tmp+str_arg_l, f, long_arg); break; #ifdef SNPRINTF_LONGLONG_SUPPORT case '2': str_arg_l+=sprintf(tmp+str_arg_l,f,long_long_arg); break; #endif } } if (zero_padding_insertion_ind < str_arg_l && tmp[zero_padding_insertion_ind] == '-') zero_padding_insertion_ind++; } { int num_of_digits = str_arg_l - zero_padding_insertion_ind; if (alternative_form && fmt_spec == 'o' #ifdef HPUX_COMPATIBLE /* ("%#.o",0) -> "" */ && (str_arg_l > 0) #endif #ifdef DIGITAL_UNIX_BUG_COMPATIBLE /* ("%#o",0) -> "00" */ #else && !(zero_padding_insertion_ind < str_arg_l && tmp[zero_padding_insertion_ind] == '0') #endif ) { /* assure leading zero for alternative-form octal numbers */ if (!precision_specified || precision < num_of_digits+1) { precision = num_of_digits+1; precision_specified = 1; } } /* zero padding to specified precision? */ if (num_of_digits < precision) number_of_zeros_to_pad = precision - num_of_digits; } /* zero padding to specified minimal field width? */ if (!justify_left && zero_padding) { int n = min_field_width - (str_arg_l+number_of_zeros_to_pad); if (n > 0) number_of_zeros_to_pad += n; } break; default: /* unrecognized format, keep format string unchanged */ zero_padding = 0; /* turn zero padding off for non-numeric formats */ #ifndef DIGITAL_UNIX_COMPATIBLE justify_left = 1; min_field_width = 0; /* reset flags */ #endif #ifdef PERL_COMPATIBLE /* keep the entire format string unchanged */ str_arg = starting_p; str_arg_l = p - starting_p; #else /* discard the unrecognized format, just keep the unrecognized fmt char */ str_arg = p; str_arg_l = 0; #endif if (*p) str_arg_l++; /* include invalid fmt specifier if not at EOS */ break; } if (*p) p++; /* step over the just processed format specifier */ /* insert padding to the left as requested by min_field_width */ if (!justify_left) { /* left padding with blank or zero */ int n = min_field_width - (str_arg_l+number_of_zeros_to_pad); if (n > 0) { int avail = (int)(str_m-str_l); if (avail > 0) { /* memset(str+str_l, zp, (n>avail?avail:n)); */ const char zp = (zero_padding ? '0' : ' '); register int k; register char *r; for (r=str+str_l, k=(n>avail?avail:n); k>0; k--) *r++ = zp; } str_l += n; } } /* zero padding as requested by the precision for numeric formats requred?*/ if (number_of_zeros_to_pad <= 0) { /* will not copy first part of numeric here, * * force it to be copied later in its entirety */ zero_padding_insertion_ind = 0; } else { /* insert first part of numerics (sign or '0x') before zero padding */ int n = zero_padding_insertion_ind; if (n > 0) { int avail = (int)(str_m-str_l); if (avail > 0) memcpy(str+str_l, str_arg, (size_t)(n>avail?avail:n)); str_l += n; } /* insert zero padding as requested by the precision */ n = number_of_zeros_to_pad; if (n > 0) { int avail = (int)(str_m-str_l); if (avail > 0) { /* memset(str+str_l, '0', (n>avail?avail:n)); */ register int k; register char *r; for (r=str+str_l, k=(n>avail?avail:n); k>0; k--) *r++ = '0'; } str_l += n; } } /* insert formatted string (or unmodified format for unknown formats) */ { int n = str_arg_l - zero_padding_insertion_ind; if (n > 0) { int avail = (int)(str_m-str_l); if (avail > 0) memcpy(str+str_l, str_arg+zero_padding_insertion_ind, (size_t)(n>avail ? avail : n) ); str_l += n; } } /* insert right padding */ if (justify_left) { /* right blank padding to the field width */ int n = min_field_width - (str_arg_l+number_of_zeros_to_pad); if (n > 0) { int avail = (int)(str_m-str_l); if (avail > 0) { /* memset(str+str_l, ' ', (n>avail?avail:n)); */ register int k; register char *r; for (r=str+str_l, k=(n>avail?avail:n); k>0; k--) *r++ = ' '; } str_l += n; } } } } va_end(ap); if (str_m > 0) /* make sure the string is null-terminated even at the expense of overwriting the last character */ str[str_l <= str_m-1 ? str_l : str_m-1] = '\0'; return str_l; /* return the number of characters formatted (excluding trailing null character), that is, the number of characters that would have been written to the buffer if it were large enough */ } #endif instead-1.9.1/src/sdl-instead/internals.h000644 001751 001751 00000000346 12161555571 020634 0ustar00peterpeter000000 000000 #ifdef S60 #include "s60.h" #endif #include "util.h" #include "cache.h" #include "graphics.h" #include "sound.h" #include "game.h" #include "themes.h" #include "menu.h" #include "config.h" #include "input.h" #include "instead.h" instead-1.9.1/src/sdl-instead/SDL_anigif.h000644 001751 001751 00000004140 12161555571 020570 0ustar00peterpeter000000 000000 /* SDL_anigif: An example animated GIF image loading library for use with SDL SDL_image Copyright (C) 1997-2006 Sam Lantinga Animated GIF "derived work" Copyright (C) 2006 Doug McFadyen This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef _SDL_ANIGIF_H #define _SDL_ANIGIF_H #include #ifdef __cplusplus extern "C" { #endif typedef struct { SDL_Surface* surface; /* SDL surface for this frame */ int x, y; /* Frame offset position */ int disposal; /* Disposal code */ int delay; /* Frame delay in ms */ int user; /* User data (not used by aniGIF) */ } AG_Frame; #define AG_DISPOSE_NA 0 /* No disposal specified */ #define AG_DISPOSE_NONE 1 /* Do not dispose */ #define AG_DISPOSE_RESTORE_BACKGROUND 2 /* Restore to background */ #define AG_DISPOSE_RESTORE_PREVIOUS 3 /* Restore to previous */ extern DECLSPEC int AG_isGIF( SDL_RWops* src ); extern DECLSPEC int AG_LoadGIF( const char* file, AG_Frame* frames, int maxFrames, int *loop ); extern DECLSPEC void AG_FreeSurfaces( AG_Frame* frames, int nFrames ); extern DECLSPEC int AG_ConvertSurfacesToDisplayFormat( AG_Frame* frames, int nFrames ); extern DECLSPEC int AG_NormalizeSurfacesToDisplayFormat( AG_Frame* frames, int nFrames ); extern DECLSPEC int AG_LoadGIF_RW( SDL_RWops* src, AG_Frame* frames, int size, int *loop ); #ifdef __cplusplus } #endif #include "close_code.h" #endif /* _SDL_ANIGIF_H */ instead-1.9.1/src/sdl-instead/macosx.m000644 001751 001751 00000010602 12161555571 020130 0ustar00peterpeter000000 000000 #include #include #include #include #include #include #include #include #include #include #include #include #include "sdl_iconv.h" #include "internals.h" #ifndef PATH_MAX #define PATH_MAX 4096 #endif static char save_path[PATH_MAX]; static char cfg_path[PATH_MAX]; static char local_games_path[PATH_MAX]; static char local_themes_path[PATH_MAX]; static char local_stead_path[PATH_MAX]; void nsleep(int u) { usleep(u); } char *game_locale(void) { char *p; char *s; p = getenv("LANG"); if (!p || !(s = strdup(p))) return NULL; if ((p = strchr(s, '_'))) *p = 0; return s; } char *game_tmp_path(void) { static char tmp[PATH_MAX]="/tmp/instead-games"; if (mkdir(tmp, S_IRWXU) && errno != EEXIST) return NULL; return tmp; } char *appdir(void) { static char dir[PATH_MAX]; struct passwd *pw; #ifdef _LOCAL_APPDATA strcpy(dir, game_cwd); strcat(dir, "/appdata"); if (!access(dir, W_OK)) return dir; #endif pw = getpwuid(getuid()); if (!pw) return NULL; snprintf(dir, sizeof(dir) - 1 , "%s/.instead", pw->pw_dir); return dir; } char *game_local_games_path(int cr) { char *app = appdir(); if (!app) return NULL; strcpy(local_games_path, app); if (cr) { if (mkdir(local_games_path, S_IRWXU) && errno != EEXIST) return NULL; } strcat(local_games_path,"/games"); if (cr) { if (mkdir(local_games_path, S_IRWXU) && errno != EEXIST) return NULL; } return local_games_path; } char *game_local_themes_path(void) { char *app = appdir(); if (!app) return NULL; snprintf(local_themes_path, sizeof(local_themes_path) - 1 , "%s/themes", app); return local_themes_path; } char *game_local_stead_path(void) { char *app = appdir(); if (!app) return NULL; snprintf(local_stead_path, sizeof(local_stead_path) - 1 , "%s/stead", app); return local_stead_path; } char *game_cfg_path(void) { char *app = appdir(); struct passwd *pw; pw = getpwuid(getuid()); if (!pw) return NULL; snprintf(cfg_path, sizeof(cfg_path) - 1 , "%s/.insteadrc", pw->pw_dir); /* at home */ if (!access(cfg_path, R_OK)) return cfg_path; /* no at home? Try in dir */ if (app) snprintf(cfg_path, sizeof(cfg_path) - 1 , "%s/", app); if (!app || (mkdir(cfg_path, S_IRWXU) && errno != EEXIST)) snprintf(cfg_path, sizeof(cfg_path) - 1 , "%s/.insteadrc", pw->pw_dir); /* fallback to home */ else snprintf(cfg_path, sizeof(cfg_path) - 1 , "%s/insteadrc", app); return cfg_path; } char *game_save_path(int cr, int nr) { char *app = appdir(); if (!curgame_dir) return NULL; if (!access("saves", R_OK)) { if (nr) snprintf(save_path, sizeof(save_path) - 1, "saves/save%d", nr); else snprintf(save_path, sizeof(save_path) - 1, "saves/autosave"); return save_path; } if (!app) return NULL; snprintf(save_path, sizeof(save_path) - 1 , "%s/", app); if (cr && mkdir(save_path, S_IRWXU) && errno != EEXIST) return NULL; snprintf(save_path, sizeof(save_path) - 1 , "%s/saves", app); if (cr && mkdir(save_path, S_IRWXU) && errno != EEXIST) return NULL; snprintf(save_path, sizeof(save_path) - 1, "%s/saves/%s/", app, curgame_dir); if (cr && mkdir(save_path, S_IRWXU) && errno != EEXIST) return NULL; if (nr) snprintf(save_path, sizeof(save_path) - 1, "%s/saves/%s/save%d", app, curgame_dir, nr); else snprintf(save_path, sizeof(save_path) - 1, "%s/saves/%s/autosave", app, curgame_dir); return save_path; } int debug_init(void) { return 0; } void debug_done() { } char *sdl_path(char *p) { unix_path(p); return p; } char *open_file_dialog(void) { const char *filename; static char *file_name[PATH_MAX]; NSArray* fileTypes = [NSArray arrayWithObjects: @"zip", @"lua", @"idf", nil]; NSOpenPanel * panel = [NSOpenPanel openPanel]; [panel setCanChooseDirectories:NO]; [panel setCanChooseFiles:YES]; [panel setAllowsMultipleSelection:NO]; if ([panel runModalForTypes:fileTypes] == NSOKButton) { #ifdef __POWERPC__ filename = [[panel filename] cString]; #else filename = [[panel filename] cStringUsingEncoding:NSUTF8StringEncoding]; #endif strcpy(file_name, filename); return file_name; } return NULL; } int setdir(const char *path) { return chdir(path); } char *getdir(char *path, size_t size) { return getcwd(path, size); } char *dirpath(const char *path) { return (char*)path; } instead-1.9.1/src/sdl-instead/graphics.h000644 001751 001751 00000016267 12161555571 020446 0ustar00peterpeter000000 000000 #ifndef __GRAPHICS_H__ #define __GRAPHICS_H__ #include /* #define GFX_CACHE_SIZE 64 #define GFX_MAX_CACHED_W 256 #define GFX_MAX_CACHED_H 256 #define WORD_CACHE_SIZE 1024 #define LINK_CACHE_SIZE 64 */ #if SDL_VERSION_ATLEAST(1,3,0) typedef int gtimer_t; #define NULL_TIMER 0 #else typedef void* gtimer_t; #define NULL_TIMER NULL #endif struct _img_t; typedef struct _img_t* img_t; typedef void* fnt_t; typedef void* layout_t; typedef void* textbox_t; typedef void* xref_t; typedef void* word_t; typedef struct { int r; int g; int b; int a; } color_t; #define ALIGN_LEFT 1 #define ALIGN_RIGHT 2 #define ALIGN_CENTER 4 #define ALIGN_JUSTIFY 8 #define ALIGN_TOP 16 #define ALIGN_BOTTOM 32 #define ALIGN_MIDDLE 64 #define STYLE_NORMAL 0x00 #define STYLE_BOLD 0x01 #define STYLE_ITALIC 0x02 #define STYLE_UNDERLINE 0x04 static inline color_t gfx_col(int r, int g, int b) { color_t col; col.r = r; col.g = g; col.b = b; col.a = 0; return col; } extern int gfx_init(void); extern void gfx_done(void); extern int gfx_parse_color (const char *spec, color_t *def); extern void gfx_flip(void); extern void gfx_commit(void); extern cache_t gfx_image_cache(void); extern img_t gfx_screen(img_t nscreen); extern void gfx_bg(color_t col); extern void gfx_noclip(void); extern void gfx_clip(int x, int y, int w, int h); extern void gfx_getclip(int *x, int *y, int *w, int *h); extern int gfx_width; extern int gfx_height; extern int gfx_video_init(void); extern int gfx_set_mode(int w, int h, int fs); extern int gfx_get_mode(int n, int *w, int *h); extern int gfx_get_max_mode(int *w, int *h); extern int gfx_next_mode(int *w, int *h); extern int gfx_prev_mode(int *w, int *h); extern void gfx_update(int x, int y, int w, int h); extern void gfx_video_done(void); extern void gfx_clear(int x, int y, int w, int h); extern void gfx_copy_from(img_t p, int x, int y, int width, int height, img_t to, int xx, int yy); extern void gfx_draw(img_t pixmap, int x, int y); extern void gfx_draw_wh(img_t p, int x, int y, int w, int h); extern img_t gfx_grab_screen(int x, int y, int w, int h); extern img_t gfx_new(int w, int h); extern img_t gfx_load_image(char *filename); extern void gfx_free_image(img_t pixmap); extern int gfx_img_w(img_t pixmap); extern int gfx_img_h(img_t pixmap); extern img_t gfx_combine(img_t src, img_t dst); extern void gfx_set_alpha(img_t src, int alpha); extern void gfx_unset_alpha(img_t src); extern img_t gfx_alpha_img(img_t src, int alpha); extern img_t gfx_display_alpha(img_t src); extern img_t gfx_scale(img_t src, float xscale, float yscale, int smooth); extern img_t gfx_rotate(img_t src, float angle, int smooth); extern void gfx_draw_bg(img_t p, int x, int y, int width, int height); extern void gfx_draw_from(img_t p, int x, int y, int width, int height, img_t to, int xx, int yy); extern void gfx_compose_from(img_t p, int x, int y, int width, int height, img_t to, int xx, int yy); extern void gfx_cursor(int *xp, int *yp); extern void gfx_warp_cursor(int x, int y); extern void gfx_change_screen(img_t src, int steps); extern int gfx_fading(void); extern void gfx_img_fill(img_t img, int x, int y, int w, int h, color_t col); extern void gfx_fill(int x, int y, int w, int h, color_t col); extern int gfx_get_pixel(img_t src, int x, int y, color_t *color); extern int gfx_set_pixel(img_t src, int x, int y, color_t color); extern fnt_t fnt_load(const char *fname, int size); extern void fnt_free(fnt_t); extern int fnt_height(fnt_t fn); extern void fnt_style(fnt_t fn, int style); extern img_t fnt_render(fnt_t fn, const char *p, color_t col); extern void txt_draw(fnt_t fnt, const char *txt, int x, int y, color_t col); extern void txt_size(fnt_t fnt, const char *txt, int *w, int *h); // extern int txt_width(fnt_t fnt, const char *txt); //extern layout_t txt_layout(fnt_t fn, char *txt, int width, int height); extern layout_t txt_layout(fnt_t fn, int align, int width, int height); extern void txt_layout_add(layout_t lay, char *txt); extern void txt_layout_set(layout_t lay, char *txt); extern void txt_layout_draw(layout_t lay, int x, int y); extern void txt_layout_free(layout_t lay); extern void _txt_layout_free(layout_t lay); /* do not free lay obj */ extern xref_t txt_layout_xref(layout_t lay, int x, int y); extern void txt_layout_color(layout_t lay, color_t fg); extern fnt_t txt_layout_font(layout_t lay); extern void txt_layout_font_height(layout_t lay, float height); extern void txt_layout_link_color(layout_t lay, color_t link); extern void txt_layout_active_color(layout_t lay, color_t link); extern void txt_layout_link_style(layout_t lay, int style); extern int txt_layout_add_img(layout_t lay, const char *name, img_t img); extern img_t txt_layout_images(layout_t lay, void **v); /* enumerator */ extern word_t txt_layout_words(layout_t lay, word_t w); /* enumerator */ extern int word_geom(word_t v, int *x, int *y, int *w, int *h); extern img_t word_image(word_t v); extern void txt_layout_size(layout_t lay, int *w, int *h); extern textbox_t txt_box(int w, int h); extern layout_t txt_box_layout(textbox_t tbox); extern void txt_box_set(textbox_t tbox, layout_t lay); extern void txt_box_free(textbox_t tbox); extern void txt_box_draw(textbox_t tbox, int x, int y); extern void txt_box_next(textbox_t tbox); extern void txt_box_prev(textbox_t tbox); extern void txt_box_next_line(textbox_t tbox); extern void txt_box_prev_line(textbox_t tbox); extern void txt_box_scroll(textbox_t tbox, int disp); extern xref_t txt_box_xref(textbox_t tbox, int x, int y); extern xref_t txt_box_xrefs(textbox_t tbox); extern void txt_box_real_size(textbox_t box, int *pw, int *ph); extern int txt_box_off(textbox_t tbox); extern void txt_box_size(textbox_t tbox, int *w, int *h); extern void txt_box_resize(textbox_t tbox, int w, int h); typedef void (*clear_fn)(int x, int y, int w, int h); extern void txt_box_update_links(textbox_t tbox, int x, int y, clear_fn); extern void txt_layout_update_links(layout_t layout, int x, int y, clear_fn clear); extern void txt_layout_real_size(layout_t lay, int *w, int *h); extern void txt_layout_set_size(layout_t lay, int w, int h); /* without text only */ extern int txt_layout_pos2off(layout_t lay, int pos, int *hh); extern int txt_layout_anchor(layout_t lay, int *hh); extern img_t txt_box_render(textbox_t tbox); extern char *xref_get_text(xref_t x); extern void xref_set_active(xref_t x, int val); extern int xref_get_active(xref_t x); extern xref_t xref_next(xref_t x); extern xref_t xref_prev(xref_t x); extern int xref_position(xref_t x, int *xc, int *yc); extern xref_t txt_layout_xrefs(layout_t lay); extern layout_t xref_layout(xref_t x); typedef void (*update_fn)(int x, int y, int w, int h); extern void xref_update(xref_t xref, int x, int y, clear_fn clear, update_fn update); extern void gfx_start_gif(img_t img); extern int gfx_is_drawn_gifs(void); extern void gfx_stop_gif(img_t img); extern int gfx_frame_gif(img_t img); extern void gfx_del_timer(gtimer_t han); extern gtimer_t gfx_add_timer(int delay, int (*fn)(int, void*), void *aux); extern void gfx_update_gif(img_t img); extern void gfx_dispose_gif(img_t p); extern unsigned long gfx_ticks(void); extern void gfx_set_cursor(img_t cur, int xc, int yc); extern int gfx_pending(void); #endif instead-1.9.1/src/sdl-instead/config.c000644 001751 001751 00000005261 12161555571 020076 0ustar00peterpeter000000 000000 #include "externals.h" #include "internals.h" #if defined(ANDROID) || defined(S60) || defined(_WIN32_WCE) || defined(MAEMO) int opt_fsize = 12; #else int opt_fsize = 0; #endif #if defined(MAEMO) || defined(ANDROID) int opt_fs = 1; int opt_owntheme = 0; int opt_hl = 0; #else #ifndef _WIN32_WCE int opt_fs = 0; int opt_owntheme = 1; int opt_hl = 1; #else int opt_fs = 1; int opt_owntheme = 1; int opt_hl = 0; #endif #endif int opt_fading = 1; int opt_hz = 22050; int opt_vol = 127; int opt_motion = 1; int opt_click = 1; int opt_music = 1; int opt_autosave = 1; int opt_filter = 1; int opt_kbd = KBD_SMART; int opt_justify = 0; char *opt_game = NULL; char *opt_theme = NULL; char *opt_lang = NULL; int opt_mode[2] = {-1, -1}; int parse_mode(const char *v, void *data) { int w, h; char *eptr; int *p = ((int *)data); w = strtol(v, &eptr, 10); if (!w || (eptr == v) || (*eptr != 'x')) return -1; eptr ++; h = strtol(eptr, &eptr, 10); if (!h || (*eptr)) return -1; p[0] = w; p[1] = h; return 0; } static struct parser cfg_parser[] = { { "hz", parse_int, &opt_hz }, { "fs", parse_int, &opt_fs }, { "vol", parse_int, &opt_vol }, { "hl", parse_int, &opt_hl }, { "game", parse_string, &opt_game }, { "theme", parse_string, &opt_theme }, { "autosave", parse_int, &opt_autosave }, { "motion", parse_int, &opt_motion }, { "click", parse_int, &opt_click }, { "music", parse_int, &opt_music }, { "fscale", parse_int, &opt_fsize }, { "filter", parse_int, &opt_filter }, { "owntheme", parse_int, &opt_owntheme }, { "lang", parse_string, &opt_lang }, { "kbd", parse_int, &opt_kbd }, { "mode", parse_mode, opt_mode }, { "justify", parse_int, &opt_justify }, { "fading", parse_int, &opt_fading }, { NULL, }, }; static int cfg_parse(const char *path) { return parse_ini(path, cfg_parser); } int cfg_load(void) { char *p = game_cfg_path(); if (!p) return -1; if (access(p, R_OK)) return 0; return cfg_parse(p); } int cfg_save(void) { int save_owntheme = (opt_owntheme == 2)?0:opt_owntheme; int save_autosave = (opt_autosave == 2)?1:opt_autosave; FILE *fp; char *p = game_cfg_path(); if (!p) return -1; fp = fopen(p, "w"); if (!fp) return -1; fprintf(fp, "fs = %d\nhl = %d\nhz = %d\nvol = %d\nautosave = %d\n\ game = %s\nfscale = %d\nmotion = %d\n\ click = %d\nmusic = %d\ntheme = %s\n\ filter = %d\nowntheme = %d\nlang = %s\nkbd = %d\nmode = %dx%d\njustify = %d\nfading = %d", opt_fs, opt_hl, opt_hz, opt_vol, save_autosave, curgame_dir?curgame_dir:"", opt_fsize, opt_motion, opt_click, opt_music, curtheme_dir?curtheme_dir:DEFAULT_THEME, opt_filter, save_owntheme, opt_lang, opt_kbd, opt_mode[0], opt_mode[1], opt_justify, opt_fading); fclose(fp); return 0; } instead-1.9.1/src/sdl-instead/ioapi.h000644 001751 001751 00000015554 12161555571 017745 0ustar00peterpeter000000 000000 /* ioapi.h -- IO base function header for compress/uncompress .zip part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) Modifications for Zip64 support Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) For more info read MiniZip_info.txt Changes Oct-2009 - Defined ZPOS64_T to fpos_t on windows and u_int64_t on linux. (might need to find a better why for this) Oct-2009 - Change to fseeko64, ftello64 and fopen64 so large files would work on linux. More if/def section may be needed to support other platforms Oct-2009 - Defined fxxxx64 calls to normal fopen/ftell/fseek so they would compile on windows. (but you should use iowin32.c for windows instead) */ #ifndef _ZLIBIOAPI64_H #define _ZLIBIOAPI64_H /* we need no > 2Gb games */ #define USE_FILE32API #if (!defined(_WIN32)) && (!defined(WIN32)) // Linux needs this to support file operation on files larger then 4+GB // But might need better if/def to select just the platforms that needs them. #ifndef __USE_FILE_OFFSET64 #define __USE_FILE_OFFSET64 #endif #ifndef __USE_LARGEFILE64 #define __USE_LARGEFILE64 #endif #ifndef _LARGEFILE64_SOURCE #define _LARGEFILE64_SOURCE #endif #ifndef _FILE_OFFSET_BIT #define _FILE_OFFSET_BIT 64 #endif #endif #include #include #include "zlib.h" #ifndef OF /* function prototypes */ # ifdef STDC # define OF(args) args # else # define OF(args) () # endif #endif #if defined(USE_FILE32API) #define fopen64 fopen #define ftello64 ftell #define fseeko64 fseek #else #ifdef _MSC_VER #define fopen64 fopen #if (_MSC_VER >= 1400) && (!(defined(NO_MSCVER_FILE64_FUNC))) #define ftello64 _ftelli64 #define fseeko64 _fseeki64 #else // old MSC #define ftello64 ftell #define fseeko64 fseek #endif #endif #endif /* #ifndef ZPOS64_T #ifdef _WIN32 #define ZPOS64_T fpos_t #else #include #define ZPOS64_T uint64_t #endif #endif */ #ifdef HAVE_MINIZIP64_CONF_H #include "mz64conf.h" #endif /* a type choosen by DEFINE */ #ifdef HAVE_64BIT_INT_CUSTOM typedef 64BIT_INT_CUSTOM_TYPE ZPOS64_T; #else #ifdef HAS_STDINT_H #include "stdint.h" typedef uint64_t ZPOS64_T; #else #if defined(_MSC_VER) || defined(__BORLANDC__) typedef unsigned __int64 ZPOS64_T; #else typedef unsigned long long int ZPOS64_T; #endif #endif #endif #ifdef __cplusplus extern "C" { #endif #define ZLIB_FILEFUNC_SEEK_CUR (1) #define ZLIB_FILEFUNC_SEEK_END (2) #define ZLIB_FILEFUNC_SEEK_SET (0) #define ZLIB_FILEFUNC_MODE_READ (1) #define ZLIB_FILEFUNC_MODE_WRITE (2) #define ZLIB_FILEFUNC_MODE_READWRITEFILTER (3) #define ZLIB_FILEFUNC_MODE_EXISTING (4) #define ZLIB_FILEFUNC_MODE_CREATE (8) #ifndef ZCALLBACK #if (defined(WIN32) || defined(_WIN32) || defined (WINDOWS) || defined (_WINDOWS)) && defined(CALLBACK) && defined (USEWINDOWS_CALLBACK) #define ZCALLBACK CALLBACK #else #define ZCALLBACK #endif #endif typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode)); typedef uLong (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size)); typedef uLong (ZCALLBACK *write_file_func) OF((voidpf opaque, voidpf stream, const void* buf, uLong size)); typedef int (ZCALLBACK *close_file_func) OF((voidpf opaque, voidpf stream)); typedef int (ZCALLBACK *testerror_file_func) OF((voidpf opaque, voidpf stream)); typedef long (ZCALLBACK *tell_file_func) OF((voidpf opaque, voidpf stream)); typedef long (ZCALLBACK *seek_file_func) OF((voidpf opaque, voidpf stream, uLong offset, int origin)); /* here is the "old" 32 bits structure structure */ typedef struct zlib_filefunc_def_s { open_file_func zopen_file; read_file_func zread_file; write_file_func zwrite_file; tell_file_func ztell_file; seek_file_func zseek_file; close_file_func zclose_file; testerror_file_func zerror_file; voidpf opaque; } zlib_filefunc_def; typedef ZPOS64_T (ZCALLBACK *tell64_file_func) OF((voidpf opaque, voidpf stream)); typedef long (ZCALLBACK *seek64_file_func) OF((voidpf opaque, voidpf stream, ZPOS64_T offset, int origin)); typedef voidpf (ZCALLBACK *open64_file_func) OF((voidpf opaque, const void* filename, int mode)); typedef struct zlib_filefunc64_def_s { open64_file_func zopen64_file; read_file_func zread_file; write_file_func zwrite_file; tell64_file_func ztell64_file; seek64_file_func zseek64_file; close_file_func zclose_file; testerror_file_func zerror_file; voidpf opaque; } zlib_filefunc64_def; void fill_fopen64_filefunc OF((zlib_filefunc64_def* pzlib_filefunc_def)); void fill_fopen_filefunc OF((zlib_filefunc_def* pzlib_filefunc_def)); /* now internal definition, only for zip.c and unzip.h */ typedef struct zlib_filefunc64_32_def_s { zlib_filefunc64_def zfile_func64; open_file_func zopen32_file; tell_file_func ztell32_file; seek_file_func zseek32_file; } zlib_filefunc64_32_def; #define ZREAD64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zread_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size)) #define ZWRITE64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zwrite_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size)) //#define ZTELL64(filefunc,filestream) ((*((filefunc).ztell64_file)) ((filefunc).opaque,filestream)) //#define ZSEEK64(filefunc,filestream,pos,mode) ((*((filefunc).zseek64_file)) ((filefunc).opaque,filestream,pos,mode)) #define ZCLOSE64(filefunc,filestream) ((*((filefunc).zfile_func64.zclose_file)) ((filefunc).zfile_func64.opaque,filestream)) #define ZERROR64(filefunc,filestream) ((*((filefunc).zfile_func64.zerror_file)) ((filefunc).zfile_func64.opaque,filestream)) voidpf call_zopen64 OF((const zlib_filefunc64_32_def* pfilefunc,const void*filename,int mode)); long call_zseek64 OF((const zlib_filefunc64_32_def* pfilefunc,voidpf filestream, ZPOS64_T offset, int origin)); ZPOS64_T call_ztell64 OF((const zlib_filefunc64_32_def* pfilefunc,voidpf filestream)); void fill_zlib_filefunc64_32_def_from_filefunc32(zlib_filefunc64_32_def* p_filefunc64_32,const zlib_filefunc_def* p_filefunc32); #define ZOPEN64(filefunc,filename,mode) (call_zopen64((&(filefunc)),(filename),(mode))) #define ZTELL64(filefunc,filestream) (call_ztell64((&(filefunc)),(filestream))) #define ZSEEK64(filefunc,filestream,pos,mode) (call_zseek64((&(filefunc)),(filestream),(pos),(mode))) #ifdef __cplusplus } #endif #endif instead-1.9.1/src/sdl-instead/idf.h000644 001751 001751 00000001425 12161555571 017376 0ustar00peterpeter000000 000000 #ifndef __IDF_H_INCLUDED #define __IDF_H_INCLUDED struct _idf_t; struct _idff_t; typedef struct _idf_t *idf_t; typedef struct _idff_t *idff_t; extern idf_t idf_init(const char *path); extern void idf_shrink(idf_t idf); extern void idf_done(idf_t idf); extern int idf_create(const char *file, const char *path); extern idff_t idf_open(idf_t idf, const char *fname); extern int idf_seek(idff_t fil, int offset, int whence); extern int idf_read(idff_t fil, void *ptr, int size, int maxnum); extern int idf_close(idff_t fil); extern int idf_eof(idff_t idf); extern int idf_error(idff_t idf); extern int idf_access(idf_t idf, const char *fname); extern char *idf_gets(idff_t idf, char *b, int size); extern int idf_magic(const char *fname); extern int idf_only(idf_t idf, int fl); #endif instead-1.9.1/src/sdl-instead/snprintf.h000644 001751 001751 00000000721 12161555571 020475 0ustar00peterpeter000000 000000 #ifndef _PORTABLE_SNPRINTF_H_ #define _PORTABLE_SNPRINTF_H_ #define PORTABLE_SNPRINTF_VERSION_MAJOR 1 #define PORTABLE_SNPRINTF_VERSION_MINOR 3 #ifdef HAVE_SNPRINTF #include #else extern int snprintf(char *, size_t, const char *, /*args*/ ...); #endif #if defined(HAVE_SNPRINTF) && defined(PREFER_PORTABLE_SNPRINTF) extern int portable_snprintf(char *str, size_t str_m, const char *fmt, /*args*/ ...); #define snprintf portable_snprintf #endif #endif instead-1.9.1/src/sdl-instead/sdl_idf.h000644 001751 001751 00000000245 12161555571 020237 0ustar00peterpeter000000 000000 #ifndef __SDL_IDF_H_INCLUDED #define __SDL_IDF_H_INCLUDED #include #include "idf.h" extern SDL_RWops *RWFromIdf(idf_t idf, const char *fname); #endif instead-1.9.1/src/sdl-instead/externals.h000644 001751 001751 00000000747 12161555571 020647 0ustar00peterpeter000000 000000 #ifdef _WIN32_WCE #include "wince.h" #endif #include #include #include #include #include #include #include // #include #include #include "sdl_iconv.h" #include // #include #include #include #include #include #include #include #include #ifndef S60 #include #endif #include instead-1.9.1/src/sdl-instead/config.h000644 001751 001751 00000001515 12161555571 020101 0ustar00peterpeter000000 000000 #ifndef __CONFIG_H_INCLUDED #define __CONFIG_H_INCLUDED #define FONT_SZ(v) ((v) * (1.0f + ((0.1f * opt_fsize)))) #define KBD_SMART 0 #define KBD_NORMAL 1 #define KBD_INVERSE 2 #define KBD_MAX 3 #define JUST_THEME 0 #define JUST_NO 1 #define JUST_YES 2 #define JUST_MAX 3 extern char *appdata_sw; extern int chunksize_sw; extern int opt_fading; extern int opt_fsize; extern int opt_fs; extern int opt_owntheme; extern int opt_hl; extern int opt_hz; extern int opt_vol; extern int opt_motion; extern int opt_click; extern int opt_music; extern int opt_autosave; extern int opt_filter; extern int opt_kbd; extern int opt_justify; extern int opt_mode[2]; extern char *opt_game; extern char *opt_theme; extern char *opt_lang; extern int cfg_load(void); extern int cfg_save(void); extern int parse_mode(const char *v, void *data); #endif instead-1.9.1/src/sdl-instead/util.c000644 001751 001751 00000025335 12161555571 017612 0ustar00peterpeter000000 000000 #include "externals.h" #include "config.h" #include "util.h" #include "idf.h" int get_utf8(const char *sp, unsigned long *sym_out) { int i = 0, l = 0; unsigned long sym = 0; const unsigned char *p = (const unsigned char*)sp; if (sym_out) *sym_out = *p; if (!*p) return 0; if (!(*p & 0xc0)) return 1; if ((*p & 0xe0) == 0xc0) { l = 1; sym = (*p & 0x1f); } else if ((*p & 0xf0) == 0xe0) { l = 2; sym = (*p & 0xf); } else if ((*p & 0xf8) == 0xf0) { l = 3; sym = (*p & 7); } else if ((*p & 0xfc) == 0xf8) { l = 4; sym = (*p & 3); } else if ((*p & 0xfe) == 0xfc) { l = 5; sym = (*p & 1); } else { return 1; } p ++; for (i = 0; i < l; i ++) { sym <<= 6; if ((*p & 0xc0) != 0x80) { return 1; } sym |= (*p++ & 0x3f); } if (sym_out) *sym_out = sym; return l + 1; } int is_cjk(unsigned long sym) { if (sym >=0x2E80 && sym <= 0x2EFF) return 1; if (sym >=0x2F00 && sym <= 0x2FDF) return 1; if (sym >= 0x2FF0 && sym <= 0x2FFF) return 1; if (sym >= 0x3000 && sym <= 0x303F) return 1; if (sym >= 0x3040 && sym <= 0x309F) return 1; if (sym >= 0x30A0 && sym <=0x30FF) return 1; if (sym >= 0x3100 && sym <=0x312F) return 1; if (sym >= 0x3130 && sym <= 0x318F) return 1; if (sym >= 0x3190 && sym <= 0x319F) return 1; if (sym >= 0x31A0 && sym <= 0x31BF) return 1; if (sym >= 0x31F0 && sym <= 0x31FF) return 1; if (sym >= 0x3200 && sym <= 0x32FF) return 1; if (sym >= 0x3300 && sym <= 0x33FF) return 1; if (sym >= 0x3400 && sym <= 0x4DBF) return 1; if (sym >= 0x4DC0 && sym <= 0x4DFF) return 1; if (sym >= 0x4E00 && sym <= 0x9FFF) return 1; if (sym >= 0xA000 && sym <= 0xA48F) return 1; if (sym >= 0xA490 && sym <= 0xA4CF) return 1; if (sym >= 0xAC00 && sym <= 0xD7AF) return 1; if (sym >= 0xF900 && sym <= 0xFAFF) return 1; if (sym >= 0xFE30 && sym <= 0xFE4F) return 1; if (sym >= 0x1D300 && sym <= 0x1D35F) return 1; if (sym >= 0x20000 && sym <= 0x2A6DF) return 1; if (sym >= 0x2F800 && sym <= 0x2FA1F) return 1; return 0; } void tolow(char *p) { while (*p) { if (*p >= 'A' && *p <= 'Z') *p |= 0x20; p ++; } } int strlowcmp(const char *s, const char *d) { int rc; char *ss = NULL; char *dd = NULL; ss = strdup(s); dd = strdup(d); if (!ss || !dd) { rc = strcmp(s, d); goto err; } tolow(ss); tolow(dd); rc = strcmp(ss, dd); err: if (ss) free(ss); if (dd) free(dd); return rc; } char *getfilepath(const char *d, const char *n) { int i = ((d)?strlen(d):0) + ((n)?strlen(n):0) + 3; char *p = malloc(i); if (p) { p[0] = 0; if (d) { strcpy(p, d); strcat(p, "/"); } strcat(p, n); unix_path(p); } return p; } char *getpath(const char *d, const char *n) { char *p = getfilepath(d, n); strcat(p, "/"); return p; } int is_space(int c) { return (c == ' ' || c == '\t'); } int is_empty(const char *str) { if (!str || !*str) return 1; while (*str && !is_space(*str++)) return 0; return 1; } char *strip(char *s) { char *e; while (is_space(*s)) s ++; if (!*s) return s; e = s + strlen(s) - 1; while (e != s && is_space(*e)) { *e = 0; e --; } return s; } int process_cmd(char *n, char *v, struct parser *cmd_parser) { int i; n = strip(n); v = strip(v); for (i = 0; cmd_parser[i].cmd; i++) { if (!strcmp(cmd_parser[i].cmd, n)) { return cmd_parser[i].fn(v, cmd_parser[i].p); } } return -1; } static int fgetsesc(char *oline, size_t size, char *(*getl)(void *p, char *s, int size), void *fp) { int nr = 0; char line[4096]; *oline = 0; *line = 0; while (getl(fp, line, sizeof(line))) { int i; nr ++; i = strcspn(line, "\n\r"); if (!i || !line[i]) break; line[i] = 0; if (line[i - 1] == '\\') { line[i - 1] = 0; strncat(oline, line, size); line[0] = 0; size -= strlen(line); if (size <= 0) return nr; } else { break; } } strncat(oline, line, size); return nr; } char *find_in_esc(const char *l, const char *s) { int esc = 0; for (; *l; l++) { if (esc) { esc = 0; continue; } l += strcspn(l, s); if (*l == '\\') { esc = 1; continue; } if (!esc) return (char*)l; } return NULL; } static void comments_zap(char *p) { char *l = find_in_esc(p, "\\;\n"); if (l) *l = 0; } int parse_all(void *fp, char *(*getl)(void *p, char *s, int size), const char *path, struct parser *cmd_parser) { int nr; int rc = 0; int line_nr = 1; char line[4096]; if (!fp) return -1; while ((nr = fgetsesc(line, sizeof(line), getl, fp))) { char *p = line; char *val; int len; line_nr += nr; p += strspn(p, " \t"); if (*p == ';') continue; len = strcspn(p, "="); if (p[len] != '=') /* just ignore it */ continue; p[len] = 0; val = p + len + 1; len = strcspn(p, " \t"); p[len] = 0; // printf("%s\n", p); val += strspn(val, " \t"); comments_zap(val); // val[strcspn(val, ";\n")] = 0; if (process_cmd(p, val, cmd_parser)) { rc = -1; fprintf(stderr, "Can't process cmd '%s' on line %d in '%s': %s\n", p, line_nr - nr, path, strerror(errno)); } } return rc; } static char *file_gets(void *fd, char *s, int size) { return fgets(s, size, (FILE *)fd); } static char *idff_gets(void *fd, char *s, int size) { return idf_gets((idff_t)fd, s, size); } int parse_ini(const char *path, struct parser *cmd_parser) { int rc = 0; FILE *fp; fp = fopen(path, "rb"); if (!fp) return -1; rc = parse_all(fp, file_gets, path, cmd_parser); fclose(fp); return rc; } int parse_idff(idff_t idff, const char *path, struct parser *cmd_parser) { if (!idff) return -1; return parse_all(idff, idff_gets, path, cmd_parser); } int parse_string(const char *v, void *data) { char **p = ((char **)data); if (*p) free(*p); *p = strdup(v); if (!*p) return -1; return 0; } char *encode_esc_string(const char *v) { char *r, *p; if (!v) return NULL; p = r = malloc((strlen(v)*2) + 1); if (!r) return NULL; while (*v) { switch (*v) { case ' ': *p ++ = '\\'; *p ++ = ' '; break; case '"': *p ++ = '\\'; *p ++ = '"'; break; case '\'': *p ++ = '\\'; *p ++ = '\''; break; case '\\': *p ++ = '\\'; *p ++ = '\\'; break; case '\n': *p ++ ='\\'; *p ++ ='\n'; break; default: *p ++ = *v; } v ++; } *p ++ = 0; return r; } int parse_esc_string(const char *v, void *data) { int esc = 0; char *ptr; char **p = ((char **)data); if (*p) free(*p); *p = strdup(v); if (!*p) return -1; for (ptr = *p; *v; v ++) { if (esc) { switch (*v) { case 'n': *ptr = '\n'; break; case '$': *ptr = '$'; break; case '\\': *ptr = '\\'; break; case ';': *ptr = ';'; break; case 'r': *ptr = '\n'; break; default: *ptr = *v; break; } esc = 0; ptr ++; continue; } else if (*v != '\\') { *ptr = *v; ptr ++; continue; } else esc = 1; } *ptr = 0; return 0; } int parse_int(const char *v, void *data) { int *i = (int *)data; char *eptr = NULL; *i = strtol(v, &eptr, 0); if (!eptr || *eptr) return -1; return 0; } int parse_float(const char *v, void *data) { float *f = (float *)data; if (sscanf(v, "%f", f) != 1) return -1; return 0; } static int parse_path(const char *v, void *data) { char **p = ((char **)data); if (*p) free(*p); if (!v[0]) { *p = strdup(""); return (*p)?0:-1; } *p = strdup(v); if (!*p) return -1; *p = sdl_path(*p); return 0; } extern int theme_relative; /* hack, theme layer here :( */ int parse_full_path(const char *v, void *data) { char cwd[PATH_MAX]; char **p = ((char **)data); if (theme_relative || !strncmp(v, "blank:", 6) || !strncmp(v, "box:", 4) || !strncmp(v, "spr:", 4)) /* hack for special files*/ return parse_path(v, data); if (*p) free(*p); if (!v[0]) { *p = strdup(""); return (*p)?0:-1; } getdir(cwd, sizeof(cwd)); *p = malloc(strlen(v) + strlen(cwd) + 2); if (!*p) return -1; strcpy(*p, cwd); strcat(*p,"/"); strcat(*p, v); *p = sdl_path(*p); return 0; } void unix_path(char *path) { char *p = path; if (!path) return; while (*p) { /* bad bad Windows!!! */ if (*p == '\\') *p = '/'; p ++; } return; } static char *lookup_tag_all(const char *tag, const char *comm, char *(*getl)(void *p, char *s, int size), void *fp) { int brk = 0; char *l; char line[1024]; while ((l = getl(fp, line, sizeof(line))) && !brk) { l = parse_tag(l, tag, comm, &brk); if (l) return l; } return NULL; } char *lookup_tag(const char *fname, const char *tag, const char *comm) { char *l; FILE *fd = fopen(fname, "rb"); if (!fd) return NULL; l = lookup_tag_all(tag, comm, file_gets, fd); fclose(fd); return l; } char *lookup_lang_tag(const char *fname, const char *tag, const char *comm) { char lang_tag[1024]; char *l; snprintf(lang_tag, sizeof(lang_tag), "%s(%s)", tag, opt_lang); l = lookup_tag(fname, lang_tag, comm); if (!l) l = lookup_tag(fname, tag, comm); return l; } char *lookup_lang_tag_idf(idff_t idf, const char *tag, const char *comm) { char lang_tag[1024]; char *l; if (!idf) return NULL; snprintf(lang_tag, sizeof(lang_tag), "%s(%s)", tag, opt_lang); l = lookup_tag_all(lang_tag, comm, idff_gets, idf); if (!l) { idf_seek(idf, 0, SEEK_SET); l = lookup_tag_all(tag, comm, idff_gets, idf); } return l; } char *parse_tag(char *line, const char *tag, const char *comm, int *brk) { char *l = line; char *ns = NULL; char ftag[1024]; snprintf(ftag, sizeof(ftag), "$%s:", tag); l += strspn(l, " \t"); if (strncmp(l, comm, strlen(comm))) { /* non coment block */ *brk = 1; return NULL; } l += strlen(comm); l += strspn(l, " \t"); if (strncmp(l, ftag, strlen(ftag))) return NULL; l += strlen(ftag); l += strspn(l, " \t"); ns = l; l = find_in_esc(l, "\\$"); if (l) *l = 0; l = ns; ns = NULL; if (parse_esc_string(l, &ns)) return NULL; ns[strcspn(ns, "\n\r")] = 0; return ns; } #ifdef _HAVE_ICONV #define CHAR_MAX_LEN 4 char *decode(iconv_t hiconv, const char *s) { size_t s_size, chs_size, outsz, insz; char *inbuf, *outbuf, *chs_buf; if (!s || hiconv == (iconv_t)(-1)) return NULL; s_size = strlen(s) + 1; chs_size = s_size * CHAR_MAX_LEN; if ((chs_buf = malloc(chs_size + CHAR_MAX_LEN))==NULL) goto exitf; outsz = chs_size; outbuf = chs_buf; insz = s_size; inbuf = (char*)s; while (insz) { if (iconv(hiconv, &inbuf, &insz, &outbuf, &outsz) == (size_t)(-1)) goto exitf; } *outbuf++ = 0; return chs_buf; exitf: if(chs_buf) free(chs_buf); return NULL; } #endif int remove_dir(const char *path) { DIR *d; struct dirent *de; if (!path) return 0; d = opendir(path); if (!d) { if (!access(path, F_OK)) { unlink(path); } return -1; } while ((de = readdir(d))) { char *p; if (!strcmp(de->d_name, ".") || !strcmp(de->d_name, "..")) continue; p = getfilepath(path, de->d_name); if (p) { remove_dir(p); free(p); } } closedir(d); rmdir(path); return 0; } instead-1.9.1/src/sdl-instead/unpack.c000644 001751 001751 00000021637 12161555571 020117 0ustar00peterpeter000000 000000 #ifdef _USE_UNPACK /* miniunz.c Version 1.1, February 14h, 2010 sample part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) Modifications of Unzip for Zip64 Copyright (C) 2007-2008 Even Rouault Modifications for Zip64 support on both zip and unzip Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) */ #ifndef _WIN32 #ifndef __USE_FILE_OFFSET64 #define __USE_FILE_OFFSET64 #endif #ifndef __USE_LARGEFILE64 #define __USE_LARGEFILE64 #endif #ifndef _LARGEFILE64_SOURCE #define _LARGEFILE64_SOURCE #endif #ifndef _FILE_OFFSET_BIT #define _FILE_OFFSET_BIT 64 #endif #endif #include "externals.h" #ifdef unix # include #ifndef S60 # include #endif #else # include # include #endif #include "unzip.h" #include "util.h" #define CASESENSITIVITY (0) #define WRITEBUFFERSIZE (8192) #define MAXFILENAME (256) #ifdef _WIN32 #define USEWIN32IOAPI #include "iowin32.h" #endif char zip_game_dirname[PATH_MAX]; /* change_file_date : change the date/time of a file filename : the filename of the file where date/time must be modified dosdate : the new date at the MSDos format (4 bytes) tmu_date : the SAME new date at the tm_unz format */ static void change_file_date(filename, dosdate, tmu_date) const char *filename; uLong dosdate; tm_unz tmu_date; { #ifdef _WIN32 HANDLE hFile; FILETIME ftm, ftLocal, ftCreate, ftLastAcc, ftLastWrite; hFile = CreateFileA(filename, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); GetFileTime(hFile, &ftCreate, &ftLastAcc, &ftLastWrite); DosDateTimeToFileTime((WORD) (dosdate >> 16), (WORD) dosdate, &ftLocal); LocalFileTimeToFileTime(&ftLocal, &ftm); SetFileTime(hFile, &ftm, &ftLastAcc, &ftm); CloseHandle(hFile); #else #ifdef unix #ifndef S60 struct utimbuf ut; struct tm newdate; newdate.tm_sec = tmu_date.tm_sec; newdate.tm_min = tmu_date.tm_min; newdate.tm_hour = tmu_date.tm_hour; newdate.tm_mday = tmu_date.tm_mday; newdate.tm_mon = tmu_date.tm_mon; if (tmu_date.tm_year > 1900) newdate.tm_year = tmu_date.tm_year - 1900; else newdate.tm_year = tmu_date.tm_year; newdate.tm_isdst = -1; ut.actime = ut.modtime = mktime(&newdate); utime(filename, &ut); #endif #endif #endif } /* mymkdir and change_file_date are not 100 % portable As I don't know well Unix, I wait feedback for the unix portion */ static int mymkdir(dirname) const char *dirname; { int ret = 0; #ifdef _WIN32 ret = _mkdir(dirname); #else #ifdef unix ret = mkdir(dirname, 0775); #endif #endif return ret; } static int makedir(newdir) const char *newdir; { char *buffer; char *p; int len = (int)strlen(newdir); if (len <= 0) return 0; buffer = (char *)malloc(len + 1); if (buffer == NULL) { fprintf(stderr, "Error allocating memory\n"); return UNZ_INTERNALERROR; } strcpy(buffer, newdir); if (buffer[len - 1] == '/') { buffer[len - 1] = '\0'; } if (mymkdir(buffer) == 0) { free(buffer); return 1; } p = buffer + 1; while (1) { char hold; while (*p && *p != '\\' && *p != '/') p++; hold = *p; *p = 0; if ((mymkdir(buffer) == -1) && (errno == ENOENT)) { fprintf(stderr, "couldn't create directory %s\n", buffer); free(buffer); return 0; } if (hold == 0) break; *p++ = hold; } free(buffer); return 1; } static int do_extract_currentfile(uf, password) unzFile uf; const char *password; { char filename_inzip[256]; char dir_inzip[256]; char *filename_withoutpath; char *p; int err = UNZ_OK; FILE *fout = NULL; void *buf; uInt size_buf; unz_file_info64 file_info; err = unzGetCurrentFileInfo64(uf, &file_info, filename_inzip, sizeof(filename_inzip), NULL, 0, NULL, 0); if (err != UNZ_OK) { fprintf(stderr, "error %d with zipfile in unzGetCurrentFileInfo\n", err); return err; } size_buf = WRITEBUFFERSIZE; buf = (void *)malloc(size_buf); if (buf == NULL) { fprintf(stderr, "Error allocating memory\n"); return UNZ_INTERNALERROR; } p = filename_withoutpath = filename_inzip; strcpy(dir_inzip, filename_inzip); while ((*p) != '\0') { if (((*p) == '/') || ((*p) == '\\')) filename_withoutpath = p + 1; p++; } p = dir_inzip + strcspn(dir_inzip, "/\\"); *p = 0; if ((*filename_withoutpath) == '\0') { if (zip_game_dirname[0] && strncmp(zip_game_dirname, filename_inzip, strlen(zip_game_dirname))) { err = -1; fprintf(stderr, "Too many dirs in zip...\n"); goto out; } fprintf(stderr, "creating directory: %s\n", filename_inzip); mymkdir(filename_inzip); if (!*zip_game_dirname) strcpy(zip_game_dirname, dir_inzip); } else { const char *write_filename; int skip = 0; write_filename = filename_inzip; err = unzOpenCurrentFilePassword(uf, password); if (err != UNZ_OK) { fprintf (stderr, "error %d with zipfile in unzOpenCurrentFilePassword\n", err); goto out; } if (skip == 0) { fout = fopen64(write_filename, "wb"); /* some zipfile don't contain directory alone before file */ if ((fout == NULL) && (filename_withoutpath != (char *)filename_inzip)) { char c = *(filename_withoutpath - 1); *(filename_withoutpath - 1) = '\0'; makedir(write_filename); *(filename_withoutpath - 1) = c; fout = fopen64(write_filename, "wb"); } if (fout == NULL) { fprintf(stderr, "error opening %s\n", write_filename); } } if ((filename_withoutpath != (char *)filename_inzip) && !*zip_game_dirname) { strcpy(zip_game_dirname, dir_inzip); } if (fout != NULL) { fprintf(stderr, " extracting: %s\n", write_filename); do { err = unzReadCurrentFile(uf, buf, size_buf); if (err < 0) { fprintf (stderr, "error %d with zipfile in unzReadCurrentFile\n", err); break; } if (err > 0) if (fwrite(buf, err, 1, fout) != 1) { fprintf (stderr, "error in writing extracted file\n"); err = UNZ_ERRNO; break; } } while (err > 0); if (fout) fclose(fout); if (err == 0) change_file_date(write_filename, file_info.dosDate, file_info.tmu_date); } if (err == UNZ_OK) { err = unzCloseCurrentFile(uf); if (err != UNZ_OK) { fprintf (stderr, "error %d with zipfile in unzCloseCurrentFile\n", err); } } else unzCloseCurrentFile(uf); /* don't lose the error */ if (!*zip_game_dirname) { err = -1; fprintf(stderr, "No dir in zip...\n"); if (idf_magic(write_filename)) { fprintf(stderr, "Idf unpacked: %s\n", write_filename); strcpy(zip_game_dirname, write_filename); err = 0; } else unlink(write_filename); goto out; } } if (*zip_game_dirname) { int s = strlen(zip_game_dirname); unix_path(zip_game_dirname); if (s && (zip_game_dirname[s - 1] == '/')) s --; zip_game_dirname[s] = 0; } out: free(buf); return err; } static int do_extract(uf, password) unzFile uf; const char *password; { uLong i; unz_global_info64 gi; int err; err = unzGetGlobalInfo64(uf, &gi); if (err != UNZ_OK) fprintf(stderr, "error %d with zipfile in unzGetGlobalInfo \n", err); for (i = 0; i < gi.number_entry; i++) { if (do_extract_currentfile(uf, password) != UNZ_OK) return -1; if ((i + 1) < gi.number_entry) { err = unzGoToNextFile(uf); if (err != UNZ_OK) { fprintf (stderr, "error %d with zipfile in unzGoToNextFile\n", err); return -1; } } } return 0; } int unpack(const char *zipfilename, const char *dirname) { char game_cwd[PATH_MAX]; char filename_try[MAXFILENAME + 16] = ""; int ret_value = 0; if (dirname && !getcwd(game_cwd, sizeof(game_cwd))) { fprintf(stderr, "Error: can not get current dir.\n"); return -1; } unzFile uf = NULL; zip_game_dirname[0] = 0; # ifdef USEWIN32IOAPI zlib_filefunc64_def ffunc; # endif strncpy(filename_try, zipfilename, MAXFILENAME - 1); /* strncpy doesnt append the trailing NULL, of the string is too long. */ filename_try[MAXFILENAME] = '\0'; # ifdef USEWIN32IOAPI fill_win32_filefunc64A(&ffunc); uf = unzOpen2_64(zipfilename, &ffunc); # else uf = unzOpen64(zipfilename); # endif if (uf == NULL) { strcat(filename_try, ".zip"); # ifdef USEWIN32IOAPI uf = unzOpen2_64(filename_try, &ffunc); # else uf = unzOpen64(filename_try); # endif } if (uf == NULL) { fprintf(stderr, "Cannot open %s or %s.zip\n", zipfilename, zipfilename); return -1; } fprintf(stderr, "%s opened\n", filename_try); #ifdef _WIN32 if (dirname && _chdir(dirname)) #else if (dirname && chdir(dirname)) #endif { ret_value = -1; fprintf(stderr, "Error changing dir to %s, aborting\n", dirname); goto out; } ret_value = do_extract(uf, NULL); out: unzClose(uf); #ifdef _WIN32 if (dirname) _chdir(game_cwd); #else if (dirname) { if (chdir(game_cwd)) fprintf(stderr, "Warning: can not chdir.\n"); } #endif return ret_value; } #endif instead-1.9.1/src/sdl-instead/util.h000644 001751 001751 00000003604 12161555571 017612 0ustar00peterpeter000000 000000 #ifndef __UTIL_H_INCLUDED #define __UTIL_H_INCLUDED #include "idf.h" typedef int (*parser_fn)(const char *v, void *data); struct parser { const char *cmd; parser_fn fn; void *p; long aux; }; extern int is_cjk(unsigned long sym); extern int get_utf8(const char *p, unsigned long *sym_out); extern int is_space(int c); extern int is_empty(const char *str); extern int parse_ini(const char *path, struct parser *cmd_parser); extern int parse_idff(idff_t idff, const char *path, struct parser *cmd_parser); extern char *getpath(const char *d, const char *n); extern char *strip(char *s); char *getfilepath(const char *d, const char *n); extern char *lookup_tag(const char *fname, const char *tag, const char *comm); extern char *lookup_lang_tag(const char *fname, const char *tag, const char *comm); extern char *lookup_lang_tag_idf(idff_t idf, const char *tag, const char *comm); extern int parse_esc_string(const char *v, void *data); extern int parse_string(const char *v, void *data); extern int parse_int(const char *v, void *data); extern int parse_float(const char *v, void *data); extern int parse_full_path(const char *v, void *data); extern int process_cmd(char *n, char *v, struct parser *cmd_parser); extern char *encode_esc_string(const char *v); extern char *find_in_esc(const char *l, const char *s); #ifdef _HAVE_ICONV extern char *decode(iconv_t hiconv, const char *s); #endif extern void unix_path(char *path); extern char *sdl_path(char *path); extern int setdir(const char *path); extern char *getdir(char *path, size_t size); extern char *dirpath(const char *path); extern char *parse_tag(char *line, const char *tag, const char *comm, int *brk); extern int remove_dir(const char *path); extern void tolow(char *p); extern int strlowcmp(const char *s, const char *d); #ifndef PATH_MAX #define PATH_MAX 4096 #endif #define FREE(v) do { if ((v)) free((v)); v = NULL; } while(0) #endif instead-1.9.1/src/sdl-instead/unix.c000644 001751 001751 00000017236 12161555571 017621 0ustar00peterpeter000000 000000 #include #include #include #include #include #include #include #include #include #include #include "sdl_iconv.h" #include "internals.h" #ifdef _USE_GTK #include #endif #ifndef PATH_MAX #define PATH_MAX 4096 #endif static char save_path[PATH_MAX]; static char cfg_path[PATH_MAX]; static char local_games_path[PATH_MAX]; static char local_themes_path[PATH_MAX]; static char local_stead_path[PATH_MAX]; void nsleep(int u) { usleep(u); } char *game_locale(void) { char *p; char *s; p = getenv("LANG"); if (!p || !(s = strdup(p))) return NULL; if ((p = strchr(s, '_'))) *p = 0; return s; } char *game_tmp_path(void) { static char tmp[PATH_MAX]="/tmp/instead-games"; if (mkdir(tmp, S_IRWXU) && errno != EEXIST) return NULL; return tmp; } #ifdef _USE_GTK static volatile int gtk_response = -1; static void run_response_handler (GtkDialog *dialog, gint response_id, gpointer data) { gtk_response = response_id; } GdkPixbuf *create_pixbuf(const gchar * filename) { gchar path[PATH_MAX]; GdkPixbuf *pixbuf; GError *error = NULL; path[0] = 0; if (filename[0] != '/') { strcpy(path, game_cwd); strcat(path, "/"); } strcat(path, filename); pixbuf = gdk_pixbuf_new_from_file(path, &error); if(!pixbuf) { fprintf(stderr, "%s\n", error->message); g_error_free(error); } return pixbuf; } #endif extern char *BROWSE_MENU; char *open_file_dialog(void) { #ifndef _USE_GTK /* unix people don't need win solutions */ return NULL; #else gulong response_handler; char *filename = NULL; static int old_dir_set = 0; static char file[PATH_MAX]; static char old_dir[PATH_MAX]; GtkWidget *file_dialog; GtkFileFilter *file_filter_all; GtkFileFilter *file_filter_zip; /* GtkFileFilter *file_filter_lua; */ file_filter_all = gtk_file_filter_new(); gtk_file_filter_add_pattern(file_filter_all, "*"); gtk_file_filter_set_name(file_filter_all, "*"); file_filter_zip = gtk_file_filter_new(); gtk_file_filter_add_pattern(file_filter_zip, "*.zip"); gtk_file_filter_add_pattern(file_filter_zip, "main.lua"); gtk_file_filter_add_pattern(file_filter_zip, "*.idf"); gtk_file_filter_set_name(file_filter_zip, "main.lua; *.zip; *.idf"); /* file_filter_lua = gtk_file_filter_new(); gtk_file_filter_add_pattern(file_filter_lua, "main.lua"); gtk_file_filter_set_name(file_filter_lua, "main.lua"); */ file[0] = 0; file_dialog = gtk_file_chooser_dialog_new (BROWSE_MENU, NULL, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); if (old_dir_set) gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(file_dialog), old_dir); gtk_window_set_icon(GTK_WINDOW(file_dialog), create_pixbuf(ICON_PATH"/sdl_instead.png")); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(file_dialog), file_filter_all); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(file_dialog), file_filter_zip); /* gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(file_dialog), file_filter_lua);*/ gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(file_dialog), file_filter_zip); response_handler = g_signal_connect (file_dialog, "response", G_CALLBACK (run_response_handler), NULL); gtk_window_set_modal (GTK_WINDOW (file_dialog), TRUE); gtk_widget_show(file_dialog); gtk_response = -1; /* dirty, but we need both SDL and gtk */ while (gtk_response == -1) { struct inp_event ev; memset(&ev, 0, sizeof(struct inp_event)); while (gtk_events_pending()) { gtk_main_iteration(); while ((input(&ev, 0)) == AGAIN); } while ((input(&ev, 0)) == AGAIN); nsleep(HZ*100); } if (gtk_response == GTK_RESPONSE_ACCEPT) { filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_dialog)); if (filename) { strcpy(file, filename); g_free (filename); } filename = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(file_dialog)); if (filename) { strcpy(old_dir, filename); g_free (filename); old_dir_set = 1; } } if (gtk_response != GTK_RESPONSE_DELETE_EVENT) { g_signal_handler_disconnect (GTK_WIDGET(file_dialog), response_handler); gtk_widget_destroy(GTK_WIDGET(file_dialog)); } while(gtk_events_pending()) gtk_main_iteration(); return (file[0])?file:NULL; #endif } char *appdir(void) { static char dir[PATH_MAX]; struct passwd *pw; #ifdef _LOCAL_APPDATA if (appdata_sw) strcpy(dir, appdata_sw); else { strcpy(dir, game_cwd); strcat(dir, "/appdata"); } if (!access(dir, W_OK)) return dir; #endif pw = getpwuid(getuid()); if (!pw) return NULL; snprintf(dir, sizeof(dir) - 1 , "%s/.instead", pw->pw_dir); return dir; } char *game_local_games_path(int cr) { char *app = appdir(); if (!app) return NULL; strcpy(local_games_path, app); if (cr) { if (mkdir(local_games_path, S_IRWXU) && errno != EEXIST) return NULL; } strcat(local_games_path,"/games"); if (cr) { if (mkdir(local_games_path, S_IRWXU) && errno != EEXIST) return NULL; } return local_games_path; } char *game_local_themes_path(void) { char *app = appdir(); if (!app) return NULL; snprintf(local_themes_path, sizeof(local_themes_path) - 1 , "%s/themes", app); return local_themes_path; } char *game_local_stead_path(void) { char *app = appdir(); if (!app) return NULL; snprintf(local_stead_path, sizeof(local_stead_path) - 1 , "%s/stead", app); return local_stead_path; } char *game_cfg_path(void) { char *app = appdir(); struct passwd *pw; pw = getpwuid(getuid()); if (!pw) return NULL; snprintf(cfg_path, sizeof(cfg_path) - 1 , "%s/.insteadrc", pw->pw_dir); /* at home */ if (!access(cfg_path, R_OK)) return cfg_path; /* no at home? Try in dir */ if (app) snprintf(cfg_path, sizeof(cfg_path) - 1 , "%s/", app); if (!app || (mkdir(cfg_path, S_IRWXU) && errno != EEXIST)) snprintf(cfg_path, sizeof(cfg_path) - 1 , "%s/.insteadrc", pw->pw_dir); /* fallback to home */ else snprintf(cfg_path, sizeof(cfg_path) - 1 , "%s/insteadrc", app); return cfg_path; } char *game_save_path(int cr, int nr) { char *app = appdir(); if (!curgame_dir) return NULL; if (!access("saves", R_OK)) { if (nr) snprintf(save_path, sizeof(save_path) - 1, "saves/save%d", nr); else snprintf(save_path, sizeof(save_path) - 1, "saves/autosave"); return save_path; } if (!app) return NULL; snprintf(save_path, sizeof(save_path) - 1 , "%s/", app); if (cr && mkdir(save_path, S_IRWXU) && errno != EEXIST) return NULL; snprintf(save_path, sizeof(save_path) - 1 , "%s/saves", app); if (cr && mkdir(save_path, S_IRWXU) && errno != EEXIST) return NULL; snprintf(save_path, sizeof(save_path) - 1, "%s/saves/%s/", app, curgame_dir); if (cr && mkdir(save_path, S_IRWXU) && errno != EEXIST) return NULL; if (nr) snprintf(save_path, sizeof(save_path) - 1, "%s/saves/%s/save%d", app, curgame_dir, nr); else snprintf(save_path, sizeof(save_path) - 1, "%s/saves/%s/autosave", app, curgame_dir); return save_path; } int debug_init(void) { return 0; } void debug_done() { } char *sdl_path(char *p) { unix_path(p); return p; } #ifndef ANDROID int setdir(const char *path) { return chdir(path); } char *getdir(char *path, size_t size) { return getcwd(path, size); } char *dirpath(const char *path) { return (char*)path; } #else static char curdir[PATH_MAX]; int setdir(const char *path) { strncpy(curdir, path, sizeof(curdir) - 1); return chdir(path); } char *getdir(char *path, size_t size) { strncpy(path, curdir, size - 1); return path; } char *dirpath(const char *path) { static char fp[PATH_MAX]; if (path[0] == '/') return (char*)path; strcpy(fp, curdir); strcat(fp, "/"); strcat(fp, path); unix_path(fp); return fp; } #endif instead-1.9.1/src/sdl-instead/lfs.c000644 001751 001751 00000005466 12161555571 017424 0ustar00peterpeter000000 000000 /* From: ** LuaFileSystem ** Copyright Kepler Project 2003 (http://www.keplerproject.org/luafilesystem) ** $Id: lfs.c,v 1.61 2009/07/04 02:10:16 mascarenhas Exp $ */ #include "externals.h" #define DIR_METATABLE "directory metatable" typedef struct dir_data { int closed; #ifdef _WIN32 long hFile; char pattern[MAX_PATH+1]; #else DIR *dir; #endif } dir_data; /* ** Directory iterator */ static int dir_iter (lua_State *L) { #ifdef _WIN32 struct _finddata_t c_file; #else struct dirent *entry; #endif dir_data *d = (dir_data *)luaL_checkudata (L, 1, DIR_METATABLE); luaL_argcheck (L, d->closed == 0, 1, "closed directory"); #ifdef _WIN32 if (d->hFile == 0L) { /* first entry */ if ((d->hFile = _findfirst (d->pattern, &c_file)) == -1L) { lua_pushnil (L); lua_pushstring (L, "Error while iterating dir."); d->closed = 1; return 2; } else { lua_pushstring (L, c_file.name); return 1; } } else { /* next entry */ if (_findnext (d->hFile, &c_file) == -1L) { /* no more entries => close directory */ _findclose (d->hFile); d->closed = 1; return 0; } else { lua_pushstring (L, c_file.name); return 1; } } #else if ((entry = readdir (d->dir)) != NULL) { lua_pushstring (L, entry->d_name); return 1; } else { /* no more entries => close directory */ closedir (d->dir); d->closed = 1; return 0; } #endif } /* ** Closes directory iterators */ static int dir_close (lua_State *L) { dir_data *d = (dir_data *)lua_touserdata (L, 1); #ifdef _WIN32 if (!d->closed && d->hFile) { _findclose (d->hFile); } #else if (!d->closed && d->dir) { closedir (d->dir); } #endif d->closed = 1; return 0; } /* ** Factory of directory iterators */ int dir_iter_factory (lua_State *L) { const char *path = luaL_checkstring (L, 1); dir_data *d; lua_pushcfunction (L, dir_iter); d = (dir_data *) lua_newuserdata (L, sizeof(dir_data)); d->closed = 0; #ifdef _WIN32 d->hFile = 0L; luaL_getmetatable (L, DIR_METATABLE); lua_setmetatable (L, -2); if (strlen(path) > MAX_PATH-2) luaL_error (L, "path too long: %s", path); else sprintf (d->pattern, "%s/*", path); #else luaL_getmetatable (L, DIR_METATABLE); lua_setmetatable (L, -2); d->dir = opendir (path); if (d->dir == NULL) luaL_error (L, "cannot open %s."); #endif return 2; } /* ** Creates directory metatable. */ static int dir_create_meta (lua_State *L) { luaL_newmetatable (L, DIR_METATABLE); /* set its __gc field */ lua_pushstring (L, "__index"); lua_newtable(L); lua_pushstring (L, "next"); lua_pushcfunction (L, dir_iter); lua_settable(L, -3); lua_pushstring (L, "close"); lua_pushcfunction (L, dir_close); lua_settable(L, -3); lua_settable (L, -3); lua_pushstring (L, "__gc"); lua_pushcfunction (L, dir_close); lua_settable (L, -3); return 1; } int luaopen_lfs (lua_State *L) { dir_create_meta (L); return 1; } instead-1.9.1/src/sdl-instead/themes.c000644 001751 001751 00000063074 12161555571 020124 0ustar00peterpeter000000 000000 #include "externals.h" #include "internals.h" int theme_relative = 0; char *curtheme_dir = NULL; static int parse_win_align(const char *v, void *data) { int *i = (int *)data; if (!strcmp(v, "left")) *i = ALIGN_LEFT; else if (!strcmp(v, "justify")) *i = ALIGN_JUSTIFY; else if (!strcmp(v, "center")) *i = ALIGN_CENTER; else if (!strcmp(v, "right")) *i = ALIGN_RIGHT; else return -1; return 0; } static int parse_gfx_mode(const char *v, void *data) { int *i = (int *)data; if (!strcmp(v, "fixed")) *i = GFX_MODE_FIXED; else if (!strcmp(v, "embedded")) *i = GFX_MODE_EMBEDDED; else if (!strncmp(v, "float", 5)) { *i = GFX_MODE_FLOAT; v += 5; if (!*v) /* compat */ *i |= GFX_ALIGN_SET(ALIGN_TOP); while (*v) { if (*v != '-') return -1; v ++; if (!strncmp(v, "top", 3)) { *i |= GFX_ALIGN_SET(ALIGN_TOP); v += 3; } else if (!strncmp(v, "middle", 6)) { *i |= GFX_ALIGN_SET(ALIGN_MIDDLE); v += 6; } else if (!strncmp(v, "bottom", 6)) { *i |= GFX_ALIGN_SET(ALIGN_BOTTOM); v += 6; } else if (!strncmp(v, "left", 4)) { *i |= GFX_ALIGN_SET(ALIGN_LEFT); v += 4; } else if (!strncmp(v, "right", 5)) { *i |= GFX_ALIGN_SET(ALIGN_RIGHT); v += 5; } else if (!strncmp(v, "center", 6)) { *i |= GFX_ALIGN_SET(ALIGN_CENTER); v += 6; } else return -1; } } else if (!strcmp(v, "direct")) *i = GFX_MODE_DIRECT; else return -1; return 0; } static int out_gfx_mode(const void *v, char **out) { char *o; char buff[256]; int m = *((int*)v); switch (GFX_MODE(m)) { case GFX_MODE_FIXED: o = strdup("fixed"); break; case GFX_MODE_EMBEDDED: o = strdup("embedded"); break; case GFX_MODE_FLOAT: strcpy(buff, "float"); if (GFX_ALIGN(m) != ALIGN_TOP) { /* compat */ if (GFX_ALIGN(m) & ALIGN_TOP) strcat(buff,"-top"); else if (GFX_ALIGN(m) & ALIGN_BOTTOM) strcat(buff,"-bottom"); if (GFX_ALIGN(m) & ALIGN_LEFT) strcat(buff,"-left"); else if (GFX_ALIGN(m) & ALIGN_RIGHT) strcat(buff,"-right"); } o = strdup(buff); break; case GFX_MODE_DIRECT: o = strdup("direct"); break; default: o = strdup(""); break; } if (!o) return -1; *out = o; return 0; } static int parse_inv_mode(const char *v, void *data) { int *i = (int *)data; if (!strcmp(v, "vertical") || !strcmp(v, "0") || !strcmp(v, "vertical-left")) *i = INV_MODE_VERT | INV_ALIGN_SET(ALIGN_LEFT); else if (!strcmp(v, "horizontal") || !strcmp(v, "1") || !strcmp(v, "horizontal-center")) *i = INV_MODE_HORIZ | INV_ALIGN_SET(ALIGN_CENTER); else if (!strcmp(v, "horizontal-left") || !strcmp(v, "1")) *i = INV_MODE_HORIZ | INV_ALIGN_SET(ALIGN_LEFT); else if (!strcmp(v, "horizontal-right") || !strcmp(v, "1")) *i = INV_MODE_HORIZ | INV_ALIGN_SET(ALIGN_RIGHT); else if (!strcmp(v, "disabled") || !strcmp(v, "-1")) *i = INV_MODE_DISABLED; else if (!strcmp(v, "vertical-right")) *i = INV_MODE_VERT | INV_ALIGN_SET(ALIGN_RIGHT); else if (!strcmp(v, "vertical-center")) *i = INV_MODE_VERT | INV_ALIGN_SET(ALIGN_CENTER); else return -1; return 0; } static int out_inv_mode(const void *v, char **out) { char *o; int m = *((int*)v); o = malloc(64); if (!o) return -1; if (m == INV_MODE_DISABLED) { sprintf(o, "disabled"); *out = o; return 0; } if ((INV_MODE(m) == INV_MODE_HORIZ)) sprintf(o, "horizontal"); else sprintf(o, "vertical"); if ((m & INV_ALIGN_SET(ALIGN_CENTER)) == INV_ALIGN_SET(ALIGN_CENTER)) { strcat(o, "-center"); } else if ((m & INV_ALIGN_SET(ALIGN_LEFT)) == INV_ALIGN_SET(ALIGN_LEFT)) { strcat(o, "-left"); } else if ((m & INV_ALIGN_SET(ALIGN_RIGHT)) == INV_ALIGN_SET(ALIGN_RIGHT)) { strcat(o, "-right"); } *out = o; return 0; } static int parse_color(const char *v, void *data) { color_t *c = (color_t *)data; return gfx_parse_color(v, c); } static int out_color(const void *v, char **out) { char *o; color_t *c = (color_t *)v; o = malloc(16); if (!o) return -1; sprintf(o, "#%02x%02x%02x", c->r, c->g, c->b); *out = o; return 0; } static int parse_include(const char *v, void *data) { int rc; char cwd[PATH_MAX]; if (!strlowcmp(v, DEFAULT_THEME)) return 0; getdir(cwd, sizeof(cwd)); setdir(game_cwd); rc = game_theme_load(v); // if (!rc) // game_theme_select(v); setdir(cwd); return rc; } struct parser cmd_parser[] = { { "scr.w", parse_int, &game_theme.w }, { "scr.h", parse_int, &game_theme.h }, { "scr.gfx.scalable", parse_int, &game_theme.gfx_scalable }, { "scr.col.bg", parse_color, &game_theme.bgcol }, { "scr.gfx.bg", parse_full_path, &game_theme.bg_name, CHANGED_BG }, { "scr.gfx.cursor.normal", parse_full_path, &game_theme.cursor_name, CHANGED_CURSOR }, { "scr.gfx.cursor.x", parse_int, &game_theme.cur_x }, { "scr.gfx.cursor.y", parse_int, &game_theme.cur_y }, { "scr.gfx.use", parse_full_path, &game_theme.use_name, CHANGED_USE }, /* compat */ { "scr.gfx.cursor.use", parse_full_path, &game_theme.use_name, CHANGED_USE }, { "scr.gfx.pad", parse_int, &game_theme.pad }, { "scr.gfx.x", parse_int, &game_theme.gfx_x }, { "scr.gfx.y", parse_int, &game_theme.gfx_y }, { "scr.gfx.w", parse_int, &game_theme.max_scene_w }, { "scr.gfx.h", parse_int, &game_theme.max_scene_h }, { "scr.gfx.mode", parse_gfx_mode, &game_theme.gfx_mode }, { "win.align", parse_win_align, &game_theme.win_align }, { "win.x", parse_int, &game_theme.win_x }, { "win.y", parse_int, &game_theme.win_y }, { "win.w", parse_int, &game_theme.win_w }, { "win.h", parse_int, &game_theme.win_h }, { "win.scroll.mode", parse_int, &game_theme.win_scroll_mode }, { "win.fnt.name", parse_full_path, &game_theme.font_name, CHANGED_FONT }, { "win.fnt.size", parse_int, &game_theme.font_size, CHANGED_FONT }, { "win.fnt.height", parse_float, &game_theme.font_height }, /* compat mode directive */ { "win.gfx.h", parse_int, &game_theme.max_scene_h }, /* here it was */ { "win.gfx.up", parse_full_path, &game_theme.a_up_name, CHANGED_UP }, { "win.gfx.down", parse_full_path, &game_theme.a_down_name, CHANGED_DOWN }, { "win.up.x", parse_int, &game_theme.a_up_x }, { "win.up.y", parse_int, &game_theme.a_up_y }, { "win.down.x", parse_int, &game_theme.a_down_x }, { "win.down.y", parse_int, &game_theme.a_down_y }, { "win.col.fg", parse_color, &game_theme.fgcol }, { "win.col.link", parse_color, &game_theme.lcol }, { "win.col.alink", parse_color, &game_theme.acol }, { "inv.x", parse_int, &game_theme.inv_x }, { "inv.y", parse_int, &game_theme.inv_y }, { "inv.w", parse_int, &game_theme.inv_w }, { "inv.h", parse_int, &game_theme.inv_h }, { "inv.mode", parse_inv_mode, &game_theme.inv_mode }, { "inv.horiz", parse_inv_mode, &game_theme.inv_mode }, { "inv.col.fg", parse_color, &game_theme.icol }, { "inv.col.link", parse_color, &game_theme.ilcol }, { "inv.col.alink", parse_color, &game_theme.iacol }, { "inv.fnt.name", parse_full_path, &game_theme.inv_font_name, CHANGED_IFONT }, { "inv.fnt.size", parse_int, &game_theme.inv_font_size, CHANGED_IFONT }, { "inv.fnt.height", parse_float, &game_theme.inv_font_height }, { "inv.gfx.up", parse_full_path, &game_theme.inv_a_up_name, CHANGED_IUP }, { "inv.gfx.down", parse_full_path, &game_theme.inv_a_down_name, CHANGED_IDOWN }, { "inv.up.x", parse_int, &game_theme.inv_a_up_x }, { "inv.up.y", parse_int, &game_theme.inv_a_up_y }, { "inv.down.x", parse_int, &game_theme.inv_a_down_x }, { "inv.down.y", parse_int, &game_theme.inv_a_down_y }, { "menu.col.bg", parse_color, &game_theme.menu_bg }, { "menu.col.fg", parse_color, &game_theme.menu_fg }, { "menu.col.link", parse_color, &game_theme.menu_link }, { "menu.col.alink", parse_color, &game_theme.menu_alink }, { "menu.col.alpha", parse_int, &game_theme.menu_alpha }, { "menu.col.border", parse_color, &game_theme.border_col }, { "menu.bw", parse_int, &game_theme.border_w}, { "menu.fnt.name", parse_full_path, &game_theme.menu_font_name, CHANGED_MFONT }, { "menu.fnt.size", parse_int, &game_theme.menu_font_size, CHANGED_MFONT }, { "menu.fnt.height", parse_float, &game_theme.menu_font_height }, { "menu.gfx.button", parse_full_path, &game_theme.menu_button_name, CHANGED_BUTTON }, { "menu.button.x", parse_int, &game_theme.menu_button_x }, { "menu.button.y", parse_int, &game_theme.menu_button_y }, /* compat */ { "menu.buttonx", parse_int, &game_theme.menu_button_x }, { "menu.buttony", parse_int, &game_theme.menu_button_y }, { "snd.click", parse_full_path, &game_theme.click_name, CHANGED_CLICK }, { "include", parse_include, NULL }, { NULL, }, }; #define TF_POSX 1 #define TF_POSY 2 #define TF_NEG 4 typedef struct { const char *name; int *val; int flags; } theme_scalable_t; static theme_scalable_t theme_scalables[] = { { "scr.w", &game_theme.w }, { "scr.h", &game_theme.h }, { "scr.gfx.cursor.x", &game_theme.cur_x }, { "scr.gfx.cursor.y", &game_theme.cur_y }, { "scr.gfx.pad", &game_theme.pad }, { "scr.gfx.x", &game_theme.gfx_x, TF_POSX }, { "scr.gfx.y", &game_theme.gfx_y, TF_POSY }, { "scr.gfx.w", &game_theme.max_scene_w, TF_NEG }, { "scr.gfx.h", &game_theme.max_scene_h, TF_NEG }, { "win.x", &game_theme.win_x, TF_POSX }, { "win.y", &game_theme.win_y, TF_POSY }, { "win.w", &game_theme.win_w }, { "win.h", &game_theme.win_h }, { "win.fnt.size", &game_theme.font_size }, { "inv.x", &game_theme.inv_x, TF_POSX }, { "inv.y", &game_theme.inv_y, TF_POSY }, { "inv.w", &game_theme.inv_w }, { "inv.h", &game_theme.inv_h }, { "inv.fnt.size", &game_theme.inv_font_size }, { "menu.fnt.size", &game_theme.menu_font_size }, { "menu.button.x", &game_theme.menu_button_x, TF_POSX }, { "menu.button.y", &game_theme.menu_button_y, TF_POSY }, { "win.up.x", &game_theme.a_up_x, TF_POSX | TF_NEG }, { "win.up.y", &game_theme.a_up_y, TF_POSY | TF_NEG }, { "win.down.x", &game_theme.a_down_x, TF_POSX | TF_NEG }, { "win.down.y", &game_theme.a_down_y, TF_POSY | TF_NEG }, { "inv.up.x", &game_theme.inv_a_up_x, TF_POSX | TF_NEG }, { "inv.up.y", &game_theme.inv_a_up_y, TF_POSY | TF_NEG }, { "inv.down.x", &game_theme.inv_a_down_x, TF_POSX | TF_NEG }, { "inv.down.y", &game_theme.inv_a_down_y, TF_POSY | TF_NEG }, { NULL, }, }; static int theme_scalables_unscaled[sizeof(theme_scalables)/sizeof(theme_scalable_t)]; struct game_theme game_theme = { .scale = 1.0f, .w = 800, .h = 480, .gfx_scalable = 1, .bg_name = NULL, .bg = NULL, .use_name = NULL, .cursor_name = NULL, .use = NULL, .cursor = NULL, .cur_x = 0, .cur_y = 0, .font_name = NULL, .font_height = 1.0f, .font = NULL, .a_up_name = NULL, .a_down_name = NULL, .a_up = NULL, .a_down = NULL, .a_up_x = -1, .a_up_y = -1, .a_down_x = -1, .a_down_y = -1, .inv_font_name = NULL, .inv_font = NULL, .inv_font_height = 1.0f, .inv_a_up_name = NULL, .inv_a_down_name = NULL, .inv_a_up_x = -1, .inv_a_up_y = -1, .inv_a_down_x = -1, .inv_a_down_y = -1, .inv_a_up = NULL, .inv_a_down = NULL, .menu_font_name = NULL, .menu_font_height = 1.0f, .menu_font = NULL, .menu_button_name = NULL, .menu_button = NULL, .win_align = ALIGN_JUSTIFY, .win_scroll_mode = 2, .gfx_mode = GFX_MODE_EMBEDDED, .inv_mode = INV_MODE_VERT | INV_ALIGN_SET(ALIGN_LEFT), .click_name = NULL, .click = NULL, .xoff = 0, .yoff = 0, .changed = 0, }; struct game_theme game_theme; static void free_theme_strings(void) { struct game_theme *t = &game_theme; FREE(t->use_name); FREE(t->cursor_name); FREE(t->bg_name); FREE(t->inv_a_up_name); FREE(t->inv_a_down_name); FREE(t->a_down_name); FREE(t->a_up_name); FREE(t->font_name); FREE(t->inv_font_name); FREE(t->menu_font_name); FREE(t->menu_button_name); FREE(t->click_name); } int game_theme_free(void) { free_theme_strings(); if (game_theme.font) fnt_free(game_theme.font); if (game_theme.inv_font) fnt_free(game_theme.inv_font); if (game_theme.menu_font) fnt_free(game_theme.menu_font); if (game_theme.a_up) gfx_free_image(game_theme.a_up); if (game_theme.a_down) gfx_free_image(game_theme.a_down); if (game_theme.inv_a_up) gfx_free_image(game_theme.inv_a_up); if (game_theme.inv_a_down) gfx_free_image(game_theme.inv_a_down); if (game_theme.use) gfx_free_image(game_theme.use); if (game_theme.cursor) { gfx_free_image(game_theme.cursor); gfx_set_cursor(NULL, 0, 0); } if (game_theme.bg) gfx_free_image(game_theme.bg); if (game_theme.menu_button) gfx_free_image(game_theme.menu_button); if (game_theme.click) { sound_put(game_theme.click); } game_theme.font = game_theme.inv_font = game_theme.menu_font = NULL; game_theme.a_up = game_theme.a_down = game_theme.use = NULL; game_theme.inv_a_up = game_theme.inv_a_down = NULL; game_theme.menu_button = NULL; game_theme.bg = NULL; game_theme.click = NULL; game_theme.cur_x = game_theme.cur_y = 0; game_theme.cursor = game_theme.use = NULL; return 0; } int theme_img_scale(img_t *p) { img_t pic; float v = game_theme.scale; if (!p || !*p || v == 1.0f) return 0; if (!cache_have(gfx_image_cache(), *p)) return 0; /* do not scale sprites! */ pic = gfx_scale(*p, v, v, SCALABLE_THEME_SMOOTH); if (!pic) return -1; gfx_free_image(*p); *p = pic; return 0; } static int game_theme_scale(int w, int h) { int i; float xs, ys, v; int xoff, yoff; struct game_theme *t = &game_theme; if (w < 0 || h < 0 || (w == t->w && h == t->h)) { t->scale = 1.0f; t->xoff = 0; t->yoff = 0; w = t->w; h = t->h; goto out; } xs = (float)w / (float)t->w; ys = (float)h / (float)t->h; v = (xs < ys)?xs:ys; if (!SCALABLE_THEME) { if (v > 1.0f) { int ff = 1; while (ff && ff <= v && ff < 0x1000) ff <<= 1; ff >>= 1; v = ff; } else { float f = ceil(1.0f / v); int ff = 1; while (ff && ff < f && ff < 0x1000) ff <<= 1; v = 1.0f / (float)ff; } } xoff = (w - t->w*v)/2; yoff = (h - t->h*v)/2; if (xoff < 0) xoff = 0; if (yoff < 0) yoff = 0; t->scale = v; t->xoff = xoff; t->yoff = yoff; out: for (i = 0; theme_scalables[i].name; i++) { int val = *(theme_scalables[i].val); theme_scalables_unscaled[i] = val; if (val == -1 && (theme_scalables[i].flags & TF_NEG)) continue; val *= t->scale; if (theme_scalables[i].flags & TF_POSX) val += t->xoff; if (theme_scalables[i].flags & TF_POSY) val += t->yoff; *(theme_scalables[i].val) = val; } t->w = w; t->h = h; return 0; } extern int parse_relative_path; char *theme_getvar(char *name) { int i; for (i = 0; theme_scalables[i].name; i ++) { int val; char buf[64]; if (strcmp(theme_scalables[i].name, name)) continue; val = theme_scalables_unscaled[i]; sprintf(buf, "%d", val); return strdup(buf); } /* so, it is a string or like this */ for (i = 0; cmd_parser[i].cmd; i++) { int *num; char *s; float *f; char buf[64]; if (strcmp(cmd_parser[i].cmd, name)) continue; if (cmd_parser[i].fn == parse_int) { num = (int *)cmd_parser[i].p; sprintf(buf, "%d", *num); return strdup(buf); } else if (cmd_parser[i].fn == parse_full_path) { s = *((char **)cmd_parser[i].p); if (!s) return NULL; return strdup(s); } else if (cmd_parser[i].fn == parse_inv_mode) { if (out_inv_mode(cmd_parser[i].p, &s)) return NULL; return s; } else if (cmd_parser[i].fn == parse_gfx_mode) { if (out_gfx_mode(cmd_parser[i].p, &s)) return NULL; return s; } else if (cmd_parser[i].fn == parse_float) { f = (float*)cmd_parser[i].p; sprintf(buf, "%f", *f); return strdup(buf); } else if (cmd_parser[i].fn == parse_color) { if (out_color(cmd_parser[i].p, &s)) return NULL; return s; } else return NULL; break; } return NULL; } static int theme_process_cmd(char *n, char *v, struct parser *cmd_parser) { int i; n = strip(n); v = strip(v); if (process_cmd(n, v, cmd_parser)) return -1; for (i = 0; cmd_parser[i].cmd; i++) { if (!strcmp(cmd_parser[i].cmd, n)) { game_theme.changed |= cmd_parser[i].aux; return 0; } } return -1; } int theme_setvar(char *name, char *val) { int rc = -1; struct game_theme *t = &game_theme; theme_relative = 1; if (!theme_process_cmd(name, val, cmd_parser)) { int i; for (i = 0; theme_scalables[i].name; i++) { int val; if (strcmp(theme_scalables[i].name, name)) continue; val = *(theme_scalables[i].val); theme_scalables_unscaled[i] = val; if (val == -1 && (theme_scalables[i].flags & TF_NEG)) continue; val *= t->scale; if (theme_scalables[i].flags & TF_POSX) val += t->xoff; if (theme_scalables[i].flags & TF_POSY) val += t->yoff; *(theme_scalables[i].val) = val; break; } rc = 0; } theme_relative = 0; return rc; } static int theme_bg_scale(void) { struct game_theme *t = &game_theme; if (t->bg) { img_t screen, pic; int xoff = (t->w - gfx_img_w(t->bg))/2; int yoff = (t->h - gfx_img_h(t->bg))/2; if (xoff < 0) xoff = 0; if (yoff < 0) yoff = 0; if (t->scale != 1.0f || xoff || yoff) { pic = gfx_new(t->w, t->h); if (!pic) return -1; screen = gfx_screen(pic); gfx_img_fill(pic, 0, 0, t->w, t->h, gfx_col(0,0,0)); gfx_draw(t->bg, xoff, yoff); gfx_screen(screen); gfx_free_image(t->bg); t->bg = pic; } } return 0; } int game_theme_optimize(void) { /* todo: check errors */ struct game_theme *t = &game_theme; if (t->bg && cache_have(gfx_image_cache(), t->bg)) { t->bg = gfx_display_alpha(t->bg); gfx_unset_alpha(t->bg); } if (t->a_up && cache_have(gfx_image_cache(), t->a_up)) t->a_up = gfx_display_alpha(t->a_up); if (t->a_down && cache_have(gfx_image_cache(), t->a_down)) t->a_down = gfx_display_alpha(t->a_down); if (t->inv_a_up && cache_have(gfx_image_cache(), t->inv_a_up)) t->inv_a_up = gfx_display_alpha(t->inv_a_up); if (t->inv_a_down && cache_have(gfx_image_cache(), t->inv_a_down)) t->inv_a_down = gfx_display_alpha(t->inv_a_down); if (t->use && cache_have(gfx_image_cache(), t->use)) t->use = gfx_display_alpha(t->use); if (t->cursor && cache_have(gfx_image_cache(), t->cursor)) { t->cursor = gfx_display_alpha(t->cursor); gfx_set_cursor(t->cursor, t->cur_x, t->cur_y); } if (t->menu_button && cache_have(gfx_image_cache(), t->menu_button)) t->menu_button = gfx_display_alpha(t->menu_button); return 0; } static int game_theme_update_data(void) { struct game_theme *t = &game_theme; int idf = idf_only(game_idf, 0); if (t->font_name && (t->changed & CHANGED_FONT)) { fnt_free(t->font); if (!(t->font = fnt_load(t->font_name, FONT_SZ(t->font_size)))) goto err; } if (t->inv_font_name && (t->changed & CHANGED_IFONT)) { fnt_free(t->inv_font); if (!(t->inv_font = fnt_load(t->inv_font_name, FONT_SZ(t->inv_font_size)))) goto err; } if (t->menu_font_name && (t->changed & CHANGED_MFONT)) { int m = FONT_SZ(t->inv_font_size); if (MAX_MENU_LINES * m * game_theme.menu_font_height > game_theme.h) m = game_theme.h / MAX_MENU_LINES / game_theme.menu_font_height; else if (m < t->menu_font_size) m = t->menu_font_size; // fprintf(stderr, "%d %d > %d? %d", (int)FONT_SZ(t->inv_font_size), (int)FONT_SZ(t->inv_font_size) * MAX_MENU_LINES, game_theme.h, m); fnt_free(t->menu_font); if (!(t->menu_font = fnt_load(t->menu_font_name, m))) /* do not scale menu!!! */ goto err; } if (t->a_up_name && (t->changed & CHANGED_UP)) { gfx_free_image(t->a_up); if (!(t->a_up = gfx_load_image(t->a_up_name))) goto err; if (theme_img_scale(&t->a_up)) goto err; } if (t->a_down_name && (t->changed & CHANGED_DOWN)) { gfx_free_image(t->a_down); if (!(t->a_down = gfx_load_image(t->a_down_name))) goto err; if (theme_img_scale(&t->a_down)) goto err; } if (t->inv_a_up_name && (t->changed & CHANGED_IUP)) { gfx_free_image(t->inv_a_up); if (!(t->inv_a_up = gfx_load_image(t->inv_a_up_name))) goto err; if (theme_img_scale(&t->inv_a_up)) goto err; } if (t->inv_a_down_name && (t->changed & CHANGED_IDOWN)) { gfx_free_image(t->inv_a_down); if (!(t->inv_a_down = gfx_load_image(t->inv_a_down_name))) goto err; if (theme_img_scale(&t->inv_a_down)) goto err; } if (t->bg_name && (t->changed & CHANGED_BG)) { gfx_free_image(t->bg); t->bg = NULL; if (t->bg_name[0] && !(t->bg = gfx_load_image(t->bg_name))) goto skip; /* not fatal */ if (theme_img_scale(&t->bg)) goto err; if (theme_bg_scale()) goto err; } skip: if (t->use_name && (t->changed & CHANGED_USE)) { gfx_free_image(t->use); if (!(t->use = gfx_load_image(t->use_name))) goto err; if (theme_img_scale(&t->use)) goto err; } if (t->cursor_name && (t->changed & CHANGED_CURSOR)) { gfx_free_image(t->cursor); if (!(t->cursor = gfx_load_image(t->cursor_name))) goto err; if (theme_img_scale(&t->cursor)) goto err; gfx_set_cursor(t->cursor, t->cur_x, t->cur_y); } if (t->menu_button_name && (t->changed & CHANGED_BUTTON)) { gfx_free_image(t->menu_button); if (!(t->menu_button = gfx_load_image(t->menu_button_name))) goto err; if (theme_img_scale(&t->menu_button)) goto err; } if (t->click_name && (t->changed & CHANGED_CLICK)) { sound_put(t->click); t->click = sound_get(t->click_name); } // free_theme_strings(); /* todo, font */ t->changed = 0; if (!t->cursor || !t->use || !t->inv_a_up || !t->inv_a_down || !t->a_down || !t->a_up || !t->font || !t->inv_font || !t->menu_font || !t->menu_button) { fprintf(stderr,"Can't init theme. Not all required elements are defined.\n"); goto err; } idf_only(game_idf, idf); return 0; err: idf_only(game_idf, idf); t->changed = 0; return -1; } int game_theme_update(void) { game_release_theme(); if (game_theme_update_data()) { fprintf(stderr, "Can not update theme!\n"); game_error(); return -1; } if (game_apply_theme()) { fprintf(stderr, "Can not apply theme!\n"); game_error(); return -1; } return 0; } int game_theme_init(void) { color_t col = { .r = 0, .g = 0, .b = 0 }; int w = opt_mode[0]; int h = opt_mode[1]; if (w == -1) { /* as theme */ if (gfx_get_max_mode(&w, &h) || (game_theme.w <= w && game_theme.h <= h)) { w = opt_mode[0]; h = opt_mode[1]; } } #if 0 /* not useful */ else if (opt_fs) { /* selected and full screen */ if (gfx_get_max_mode(&w, &h) || (opt_mode[0] <= w && opt_mode[1] <= h)) { w = opt_mode[0]; h = opt_mode[1]; } } #endif #if 0 if (!SCALABLE_THEME && (w < game_theme.w || h < game_theme.h)) { /* no scalable? TODO: message? */ w = game_theme.w; h = game_theme.h; } #endif game_theme_scale(w, h); if (gfx_set_mode(game_theme.w, game_theme.h, opt_fs)) { opt_mode[0] = opt_mode[1] = -1; opt_fs = 0; /* safe options */ return -1; } gfx_fill(0, 0, game_theme.w, game_theme.h, col); if (game_theme_update_data()) { fprintf(stderr, "Can not init theme!\n"); game_theme_free(); game_theme_select(DEFAULT_THEME); return -1; } return 0; } static int theme_parse(const char *path) { idff_t idf = NULL; if (theme_relative) idf = idf_open(game_idf, path); if (idf) { int rc = parse_idff(idf, path, cmd_parser); idf_close(idf); if (rc) fprintf(stderr, "Theme parsed with errors!\n"); return rc; } if (parse_ini(dirpath(path), cmd_parser)) { fprintf(stderr, "Theme parsed with errors!\n"); // game_theme_free(); return -1; } return 0; } int theme_load(const char *name) { if (theme_parse(name)) return 0; /* no theme loaded if error in parsing */ return 0; } struct theme *themes = NULL; int themes_nr = 0; static int is_theme(const char *path, const char *n) { int rc = 0; char *p = getpath(path, n); char *pp; if (!p) return 0; pp = malloc(strlen(p) + strlen(THEME_FILE) + 1); if (pp) { strcpy(pp, p); strcat(pp, THEME_FILE); if (!access(pp, R_OK)) rc = 1; free(pp); } free(p); return rc; } static char *theme_name(const char *path, const char *d_name) { char *l; char *p = getfilepath(path, THEME_FILE); if (!p) goto err; l = lookup_lang_tag(p, "Name", ";"); free(p); if (l) return l; err: return strdup(d_name); } static int cmp_theme(const void *p1, const void *p2) { const struct theme *t1 = (const struct theme*)p1; const struct theme *t2 = (const struct theme*)p2; return strcmp(t1->name, t2->name); } static void themes_sort() { qsort(themes, themes_nr, sizeof(struct theme), cmp_theme); } static struct theme *theme_lookup(const char *name); int themes_lookup(const char *path) { char *p; int n = 0, i = 0; DIR *d; struct dirent *de; if (!path) return 0; d = opendir(path); if (!d) return -1; while ((de = readdir(d))) { if (theme_lookup(de->d_name)) continue; if (!is_theme(path, de->d_name)) continue; n ++; } rewinddir(d); if (!n) goto out; themes = realloc(themes, sizeof(struct theme) * (n + themes_nr)); while ((de = readdir(d)) && i < n) { /*if (de->d_type != DT_DIR) continue;*/ if (theme_lookup(de->d_name)) continue; if (!is_theme(path, de->d_name)) continue; p = getpath(path, de->d_name); themes[themes_nr].path = p; themes[themes_nr].dir = strdup(de->d_name); themes[themes_nr].name = theme_name(p, de->d_name); themes_nr ++; i ++; } out: closedir(d); themes_sort(); return 0; } int themes_rename(void) { int i; char cwd[PATH_MAX]; getdir(cwd, sizeof(cwd)); setdir(game_cwd); for (i = 0; i < themes_nr; i++) { FREE(themes[i].name); themes[i].name = theme_name(dirpath(themes[i].path), themes[i].dir); } setdir(cwd); return 0; } static struct theme *theme_lookup(const char *name) { int i; if (!name || !*name) { if (themes_nr == 1) return &themes[0]; return NULL; } for (i = 0; ipath) || theme_load(THEME_FILE)) goto err; rc = 0; err: setdir(cwd); theme_relative = rel; return rc; } int game_theme_select(const char *name) { struct theme *theme; theme = theme_lookup(name); if (!theme) return -1; curtheme_dir = theme->dir; return 0; } int game_default_theme(void) { return game_theme_load(DEFAULT_THEME); } instead-1.9.1/src/sdl-instead/sdl_iconv.h000644 001751 001751 00000000471 12161555571 020614 0ustar00peterpeter000000 000000 #ifndef _SDL_ICONV_H #define _SDL_ICONV_H #ifdef _SDL_ICONV #include #define iconv SDL_iconv #define iconv_t SDL_iconv_t #define iconv_open SDL_iconv_open #define iconv_close SDL_iconv_close #else #ifdef _HAVE_ICONV #include #endif #endif /* _SDL_ICONV */ #endif /* _SDL_ICONV_H */ instead-1.9.1/src/sdl-instead/android.h000644 001751 001751 00000001165 12161555571 020255 0ustar00peterpeter000000 000000 #include #ifndef SDL_JAVA_PACKAGE_PATH #error You have to define SDL_JAVA_PACKAGE_PATH to your package path with dots replaced with underscores, for example "com_example_SanAngeles" #endif #define JAVA_EXPORT_NAME2(name,package) Java_##package##_##name #define JAVA_EXPORT_NAME1(name,package) JAVA_EXPORT_NAME2(name,package) #define JAVA_EXPORT_NAME(name) JAVA_EXPORT_NAME1(name,SDL_JAVA_PACKAGE_PATH) extern void JNICALL JAVA_EXPORT_NAME(SDLActivity_nativeSave)(JNIEnv *env, jobject obj) { cfg_save(); } extern void JNICALL JAVA_EXPORT_NAME(SDLActivity_nativeStop)(JNIEnv *env, jobject obj) { game_done(0); exit(0); } instead-1.9.1/src/sdl-instead/COPYING000644 001751 001751 00000043110 12161555571 017513 0ustar00peterpeter000000 000000 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) 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) year 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. instead-1.9.1/src/sdl-instead/instead.c000644 001751 001751 00000113617 12161555571 020265 0ustar00peterpeter000000 000000 #include "externals.h" #include "internals.h" #include "list.h" #include "idf.h" #ifndef STEAD_PATH #define STEAD_PATH "./stead" #endif static int busy = 0; /* the Lua interpreter */ static gtimer_t instead_timer = NULL_TIMER; static int instead_timer_nr = 0; char *fromgame(const char *s); char *togame(const char *s); lua_State *L = NULL; int instead_busy(void) { return busy; } static int report (lua_State *L, int status) { if (status && !lua_isnil(L, -1)) { char *p; const char *msg = lua_tostring(L, -1); if (msg == NULL) msg = "(error object is not a string)"; fprintf(stderr,"Error: %s\n", msg); p = fromgame(msg); game_err_msg(p?p:msg); if (p) free(p); lua_pop(L, 1); status = -1; gfx_del_timer(instead_timer); /* to avoid error loops */ instead_timer = NULL_TIMER; } return status; } #if LUA_VERSION_NUM >= 502 static int traceback (lua_State *L) { const char *msg = lua_tostring(L, 1); if (msg) luaL_traceback(L, L, msg, 1); else if (!lua_isnoneornil(L, 1)) { /* is there an error object? */ if (!luaL_callmeta(L, 1, "__tostring")) /* try its 'tostring' metamethod */ lua_pushliteral(L, "(no error message)"); } return 1; } #else static int traceback (lua_State *L) { lua_getfield(L, LUA_GLOBALSINDEX, "debug"); if (!lua_istable(L, -1)) { lua_pop(L, 1); return 1; } lua_getfield(L, -1, "traceback"); if (!lua_isfunction(L, -1)) { lua_pop(L, 2); return 1; } lua_pushvalue(L, 1); /* pass error message */ lua_pushinteger(L, 2); /* skip this function and traceback */ lua_call(L, 2, 1); /* call debug.traceback */ return 1; } #endif static int docall (lua_State *L) { int status; int base = 0; if (debug_sw) { base = lua_gettop(L); /* function index */ lua_pushcfunction(L, traceback); /* push traceback function */ lua_insert(L, base); /* put it under chunk and args */ } busy ++; status = lua_pcall(L, 0, LUA_MULTRET, base); busy --; if (debug_sw) lua_remove(L, base); /* remove traceback function */ /* force a complete garbage collection in case of errors */ if (status != 0) lua_gc(L, LUA_GCCOLLECT, 0); return status; } static int dofile (lua_State *L, const char *name) { int status = luaL_loadfile(L, name) || docall(L); return report(L, status); } static const char *idf_reader(lua_State *L, void *data, size_t *size) { static char buff[4096]; int rc; rc = idf_read((idff_t)data, buff, 1, sizeof(buff)); *size = rc; if (!rc) return NULL; return buff; } static int dofile_idf (lua_State *L, idff_t idf, const char *name) { #if LUA_VERSION_NUM >= 502 int status = lua_load(L, idf_reader, idf, name, "bt") || docall(L); #else int status = lua_load(L, idf_reader, idf, name) || docall(L); #endif return report(L, status); } static int dostring (lua_State *L, const char *s) { int status = luaL_loadstring(L, s) || docall(L); return report(L, status); } char *getstring(char *cmd) { char *s; int N; if (!L) return NULL; if (dostring(L, cmd)) return NULL; N = lua_gettop(L); /* number of arguments */ if (-N >=0) return NULL; s = (char*)lua_tostring(L, -N); if (s) s = fromgame(s); return s; } int instead_eval(char *s) { if (!L) return -1; if (dostring(L, s)) return -1; return 0; } int instead_clear(void) { int N; if (!L) return -1; N = lua_gettop(L); /* number of arguments */ lua_pop(L, N); return 0; } char *instead_retval(int n) { char *s; int N; if (!L) return NULL; N = lua_gettop(L); /* number of arguments */ /* fprintf(stderr,"%d\n", N); */ if (n - N >= 0) return NULL; s = (char*)lua_tostring(L, n - N); if (s) s = fromgame(s); return s; } int instead_bretval(int n) { int N; if (!L) return 0; N = lua_gettop(L); /* number of arguments */ if (n - N >= 0) return 1; return lua_toboolean(L, n - N); } int instead_iretval(int n) { int N; if (!L) return 0; N = lua_gettop(L); /* number of arguments */ if (n - N >= 0) return 0; return lua_tonumber(L, n - N); } char *instead_cmd(char *s) { struct instead_args args[] = { { .val = NULL, .type = INSTEAD_STR }, { .val = NULL, }, }; if (!s) return NULL; s = togame(s); if (!s) return NULL; args[0].val = s; instead_function("iface:cmd", args); free(s); return instead_retval(0); } int instead_function(char *s, struct instead_args *args) { int base = 0; int status = 0; int n = 0; char *p; char f[64]; int method = 0; if (!L) return -1; strcpy(f, s); p = strchr(f, '.'); if (!p) p = strchr(f, ':'); if (p) { if (*p == ':') method = 1; *p = 0; p ++; lua_getglobal(L, f); lua_getfield(L, -1, p); lua_remove(L, -2); if (method) lua_getglobal(L, f); } else lua_getglobal(L, s); if (args) { while (args->val) { switch(args->type) { case INSTEAD_NIL: lua_pushnil(L); break; case INSTEAD_NUM: lua_pushnumber(L, atoi(args->val)); break; case INSTEAD_BOOL: if (!strcmp(args->val, "true")) lua_pushboolean(L, 1); else lua_pushboolean(L, 0); break; default: case INSTEAD_STR: lua_pushstring(L, args->val); } args ++; n ++; } } if (debug_sw) { base = lua_gettop(L) - (method + n); /* function index */ lua_pushcfunction(L, traceback); /* push traceback function */ lua_insert(L, base); /* put it under chunk and args */ } busy ++; status = lua_pcall(L, method + n, LUA_MULTRET, base); busy --; if (debug_sw) lua_remove(L, base); /* remove traceback function */ if (status) { fprintf(stderr, "Error calling:%s\n", s); lua_gc(L, LUA_GCCOLLECT, 0); } return report(L, status); } int luacall(char *cmd) { int rc; if (!L) return -1; if (dostring(L, cmd)) { return -1; } rc = lua_tonumber(L, -1); return rc; } #ifdef _HAVE_ICONV static char *curcp = "UTF-8"; static char *fromcp = NULL; #endif #ifdef _HAVE_ICONV char *fromgame(const char *s) { iconv_t han; char *str; if (!s) return NULL; if (!fromcp) goto out0; han = iconv_open(curcp, fromcp); if (han == (iconv_t)-1) goto out0; if (!(str = decode(han, s))) goto out1; iconv_close(han); return str; out1: iconv_close(han); out0: return strdup(s); } char *togame(const char *s) { iconv_t han; char *str; if (!s) return NULL; if (!fromcp) goto out0; han = iconv_open(fromcp, curcp); if (han == (iconv_t)-1) goto out0; if (!(str = decode(han, s))) goto out1; iconv_close(han); return str; out1: iconv_close(han); out0: return strdup(s); } #else char *fromgame(const char *s) { if (!s) return NULL; return strdup(s); } char *togame(const char *s) { if (!s) return NULL; return strdup(s); } #endif int instead_load(char *game) { idff_t idf = idf_open(game_idf, game); if (idf) { int rc = dofile_idf(L, idf, game); idf_close(idf); if (rc) return -1; } else if (dofile(L, dirpath(game))) { return -1; } instead_clear(); #ifdef _HAVE_ICONV if (fromcp) free(fromcp); fromcp = getstring("return game.codepage;"); instead_clear(); #endif return 0; } typedef struct LoadF { int extraline; unsigned char byte; FILE *f; idff_t idff; int enc; unsigned char buff[4096]; } LoadF; static const char *getF (lua_State *L, void *ud, size_t *size) { int i = 0; LoadF *lf = (LoadF *)ud; (void)L; if (lf->extraline) { lf->extraline = 0; *size = 1; return "\n"; } if (lf->f && feof(lf->f)) return NULL; if (lf->idff && idf_eof(lf->idff)) return NULL; if (lf->idff) *size = idf_read(lf->idff, lf->buff, 1, sizeof(lf->buff)); else *size = fread(lf->buff, 1, sizeof(lf->buff), lf->f); if (lf->enc) { for (i = 0; i < *size; i ++) { unsigned char b = lf->buff[i]; lf->buff[i] ^= lf->byte; lf->buff[i] = (lf->buff[i] >> 3) | (lf->buff[i] << 5); lf->byte = b; } } return (*size > 0) ? (char*)lf->buff : NULL; } static int errfile (lua_State *L, const char *what, int fnameindex) { const char *serr = strerror(errno); const char *filename = lua_tostring(L, fnameindex) + 1; lua_pushfstring(L, "cannot %s %s: %s", what, filename, serr); lua_remove(L, fnameindex); return LUA_ERRFILE; } static int loadfile (lua_State *L, const char *filename, int enc) { LoadF lf; int status, readstatus; int fnameindex = lua_gettop(L) + 1; /* index of filename on the stack */ lf.extraline = 0; lua_pushfstring(L, "@%s", filename); lf.idff = idf_open(game_idf, filename); if (!lf.idff) lf.f = fopen(dirpath(filename), "rb"); else lf.f = NULL; lf.byte = 0xcc; lf.enc = enc; if (lf.f == NULL && lf.idff == NULL) return errfile(L, "open", fnameindex); #if LUA_VERSION_NUM >= 502 status = lua_load(L, getF, &lf, lua_tostring(L, -1), "bt"); #else status = lua_load(L, getF, &lf, lua_tostring(L, -1)); #endif if (lf.f) readstatus = ferror(lf.f); else readstatus = idf_error(lf.idff); if (filename) { if (lf.f) fclose(lf.f); /* close file (even in case of errors) */ idf_close(lf.idff); } if (readstatus) { lua_settop(L, fnameindex); /* ignore results from `lua_load' */ return errfile(L, "read", fnameindex); } lua_remove(L, fnameindex); return status; } static int luaB_doencfile (lua_State *L) { const char *fname = luaL_optstring(L, 1, NULL); int n = lua_gettop(L); if (loadfile(L, fname, 1) != 0) lua_error(L); lua_call(L, 0, LUA_MULTRET); return lua_gettop(L) - n; } static int luaB_dofile (lua_State *L) { const char *fname = luaL_optstring(L, 1, NULL); int n = lua_gettop(L); if (loadfile(L, fname, 0) != 0) lua_error(L); lua_call(L, 0, LUA_MULTRET); return lua_gettop(L) - n; } static int luaB_print (lua_State *L) { int n = lua_gettop(L); /* number of arguments */ int i; lua_getglobal(L, "tostring"); for (i=1; i<=n; i++) { const char *s; lua_pushvalue(L, -1); /* function to be called */ lua_pushvalue(L, i); /* value to print */ lua_call(L, 1, 1); s = lua_tostring(L, -1); /* get result */ if (s == NULL) return luaL_error(L, LUA_QL("tostring") " must return a string to "LUA_QL("print")); if (i>1) fputs("\t", stdout); fputs(s, stdout); lua_pop(L, 1); /* pop result */ } fputs("\n", stdout); return 0; } static int luaB_is_sound(lua_State *L) { const char *chan = luaL_optstring(L, 1, NULL); int c, r; if (!chan) c = -1; else c = atoi(chan); r = (sound_channel(c) != NULL); lua_pushboolean(L, r); /* else not a number */ return 1; } static int luaB_get_savepath(lua_State *L) { lua_pushstring(L, dirname(game_save_path(1, 0))); return 1; } static int luaB_get_gamepath(lua_State *L) { char path[PATH_MAX]; char *p = getdir(path, sizeof(path)); if (p) unix_path(p); lua_pushstring(L, p); return 1; } static int luaB_get_steadpath(lua_State *L) { char stead_path[PATH_MAX]; if (STEAD_PATH[0] != '/') { strcpy(stead_path, game_cwd); strcat(stead_path, "/"); } else stead_path[0] = 0; strcat(stead_path, STEAD_PATH); unix_path(stead_path); lua_pushstring(L, stead_path); return 1; } static int luaB_get_themespath(lua_State *L) { char themes_path[PATH_MAX]; if (THEMES_PATH[0] != '/') { strcpy(themes_path, game_cwd); strcat(themes_path, "/"); } else themes_path[0] = 0; strcat(themes_path, THEMES_PATH); unix_path(themes_path); lua_pushstring(L, themes_path); return 1; } static int luaB_get_gamespath(lua_State *L) { char games_path[PATH_MAX]; if (GAMES_PATH[0] != '/') { strcpy(games_path, game_cwd); strcat(games_path, "/"); } else games_path[0] = 0; strcat(games_path, GAMES_PATH); unix_path(games_path); lua_pushstring(L, games_path); return 1; } static void instead_timer_do(void *data) { char *p; if (game_paused() || !curgame_dir) goto out; if (instead_function("stead.timer", NULL)) { instead_clear(); goto out; } p = instead_retval(0); instead_clear(); if (!p) goto out; game_cmd(p, 0); free(p); game_cursor(CURSOR_ON); out: instead_timer_nr = 0; } static int instead_fn(int interval, void *p) { if (instead_timer_nr) return interval; /* framedrop */ instead_timer_nr ++; push_user_event(instead_timer_do, NULL); return interval; } static int luaB_set_timer(lua_State *L) { const char *delay = luaL_optstring(L, 1, NULL); int d; gfx_del_timer(instead_timer); instead_timer = NULL_TIMER; if (!delay) d = 0; else d = atoi(delay); if (!d) return 0; instead_timer_nr = 0; instead_timer = gfx_add_timer(d, instead_fn, NULL); return 0; } extern int theme_setvar(char *name, char *val); extern char *theme_getvar(const char *name); static int luaB_theme_var(lua_State *L) { const char *var = luaL_optstring(L, 1, NULL); const char *val = luaL_optstring(L, 2, NULL); if (var && !val) { /* get */ char *p = theme_getvar(var); if (p) { lua_pushstring(L, p); free(p); return 1; } return 0; } if (!val || !var) return 0; game_own_theme = 1; if (!opt_owntheme) return 0; if (!strcmp(var, "scr.w") || !strcmp(var, "scr.h")) /* filter resolution */ return 0; if (!theme_setvar((char*)var, (char*)val)) { if (strcmp(var, "win.scroll.mode")) /* let change scroll mode w/o theme reload */ game_theme_changed = 2; } return 0; } static int luaB_theme_name(lua_State *L) { if (game_own_theme && opt_owntheme) lua_pushstring(L, "."); else lua_pushstring(L, curtheme_dir); return 1; } extern int dir_iter_factory (lua_State *L); extern int luaopen_lfs (lua_State *L); static LIST_HEAD(sprites); static LIST_HEAD(fonts); typedef struct { struct list_head list; char *name; fnt_t fnt; } _fnt_t; typedef struct { struct list_head list; char *name; img_t img; } _spr_t; static void sprites_free(void) { // fprintf(stderr, "sprites free \n"); while (!list_empty(&sprites)) { _spr_t *sp = (_spr_t*)(sprites.next); free(sp->name); cache_forget(gfx_image_cache(), sp->img); list_del(&sp->list); free(sp); } while (!list_empty(&fonts)) { _fnt_t *fn = (_fnt_t*)(fonts.next); fnt_free(fn->fnt); free(fn->name); list_del(&fn->list); free(fn); } game_pict_modify(NULL); cache_shrink(gfx_image_cache()); } static _spr_t *sprite_lookup(const char *name) { struct list_head *pos; _spr_t *sp; list_for_each(pos, &sprites) { sp = (_spr_t*)pos; if (!strcmp(name, sp->name)) { list_move(&sp->list, &sprites); // move it on head return sp; } } return NULL; } static _fnt_t *font_lookup(const char *name) { struct list_head *pos; _fnt_t *fn; list_for_each(pos, &fonts) { fn = (_fnt_t*)pos; if (!strcmp(name, fn->name)) { list_move(&fn->list, &fonts); // move it on head return fn; } } return NULL; } static _spr_t *sprite_new(const char *name, img_t img) { _spr_t *sp; sp = malloc(sizeof(_spr_t)); if (!sp) return NULL; INIT_LIST_HEAD(&sp->list); sp->name = strdup(name); if (!sp->name) { free(sp); return NULL; } sp->img = img; if (cache_add(gfx_image_cache(), name, img)) { free(sp->name); free(sp); return NULL; } // fprintf(stderr, "added: %s\n", name); list_add(&sp->list, &sprites); return sp; } static _fnt_t *font_new(const char *name, fnt_t fnt) { _fnt_t *fn; fn = malloc(sizeof(_fnt_t)); if (!fn) return NULL; INIT_LIST_HEAD(&fn->list); fn->name = strdup(name); if (!fn->name) { free(fn); return NULL; } fn->fnt = fnt; list_add(&fn->list, &fonts); return fn; } static void sprite_name(const char *name, char *sname, int size) { unsigned long h = 0; if (!sname || !size) return; h = hash_string(name); do { /* new uniq name */ snprintf(sname, size, "spr:%lx", h); h ++; } while (sprite_lookup(sname) || cache_lookup(gfx_image_cache(), sname)); sname[size - 1] = 0; } static void font_name(const char *name, char *sname, int size) { unsigned long h = 0; if (!sname || !size) return; h = hash_string(name); do { /* new uniq name */ snprintf(sname, size, "fnt:%lx", h); h ++; } while (font_lookup(sname)); sname[size - 1] = 0; } static int _free_sprite(const char *key); static int luaB_free_sprites(lua_State *L) { sprites_free(); return 0; } static int luaB_load_sprite(lua_State *L) { img_t img = NULL; _spr_t *sp; const char *key; char sname[sizeof(unsigned long) * 2 + 16]; const char *fname = luaL_optstring(L, 1, NULL); const char *desc = luaL_optstring(L, 2, NULL); if (!fname) return 0; img = gfx_load_image((char*)fname); if (img) img = gfx_display_alpha(img); /*speed up */ if (img) theme_img_scale(&img); if (!img) goto err; if (!desc || sprite_lookup(desc)) { key = sname; sprite_name(fname, sname, sizeof(sname)); } else key = desc; sp = sprite_new(key, img); if (!sp) goto err; lua_pushstring(L, key); return 1; err: gfx_free_image(img); return 0; } static int luaB_load_font(lua_State *L) { fnt_t fnt = NULL; _fnt_t *fn; const char *key; char sname[sizeof(unsigned long) * 2 + 16]; struct game_theme *t = &game_theme; const char *fname = luaL_optstring(L, 1, NULL); int sz = luaL_optnumber(L, 2, t->font_size) * game_theme.scale; const char *desc = luaL_optstring(L, 3, NULL); if (!fname) return 0; fnt = fnt_load((char*)fname, sz); if (!fnt) return 0; if (!desc || font_lookup(desc)) { key = sname; font_name(fname, sname, sizeof(sname)); } else key = desc; fn = font_new(key, fnt); if (!fn) goto err; lua_pushstring(L, key); return 1; err: fnt_free(fnt); return 0; } static int luaB_text_size(lua_State *L) { _fnt_t *fn; int w = 0, h = 0; const char *font = luaL_optstring(L, 1, NULL); const char *text = luaL_optstring(L, 2, NULL); if (!font) return 0; fn = font_lookup(font); if (!fn) return 0; if (!text) { w = 0; h = ceil((float)fnt_height(fn->fnt) / game_theme.scale); } else { txt_size(fn->fnt, text, &w, &h); w = ceil((float)w / game_theme.scale); h = ceil((float)h / game_theme.scale); } lua_pushnumber(L, w); lua_pushnumber(L, h); return 2; } static int luaB_font_size_scaled(lua_State *L) { int sz = luaL_optnumber(L, 1, game_theme.font_size); lua_pushnumber(L, FONT_SZ(sz)); return 1; } static int luaB_text_sprite(lua_State *L) { img_t img = NULL; _spr_t *sp; _fnt_t *fn; const char *key; char sname[sizeof(unsigned long) * 2 + 16]; const char *font = luaL_optstring(L, 1, NULL); const char *text = luaL_optstring(L, 2, NULL); char txtkey[32]; const char *color = luaL_optstring(L, 3, NULL); int style = luaL_optnumber(L, 4, 0); const char *desc = luaL_optstring(L, 5, NULL); color_t col = { .r = game_theme.fgcol.r, .g = game_theme.fgcol.g, .b = game_theme.fgcol.b }; if (!font) return 0; if (color) gfx_parse_color (color, &col); if (!text) text = ""; fn = font_lookup(font); if (!fn) return 0; fnt_style(fn->fnt, style); img = fnt_render(fn->fnt, text, col); if (img) img = gfx_display_alpha(img); /*speed up */ if (!img) return 0; if (!desc || sprite_lookup(desc)) { key = sname; strncpy(txtkey, text, sizeof(txtkey)); txtkey[sizeof(txtkey) - 1] = 0; sprite_name(txtkey, sname, sizeof(sname)); } else key = desc; sp = sprite_new(key, img); if (!sp) goto err; lua_pushstring(L, key); return 1; err: gfx_free_image(img); return 0; } static img_t grab_sprite(const char *dst, int *xoff, int *yoff) { img_t d; if (DIRECT_MODE && !strcmp(dst, "screen")) { d = gfx_screen(NULL); *xoff = game_theme.xoff; *yoff = game_theme.yoff; } else { *xoff = 0; *yoff = 0; d = cache_lookup(gfx_image_cache(), dst); } return d; } static int luaB_sprite_size(lua_State *L) { img_t s = NULL; float v; int w, h; int xoff, yoff; const char *src = luaL_optstring(L, 1, NULL); if (!src) return 0; s = grab_sprite(src, &xoff, &yoff); if (!s) return 0; v = game_theme.scale; w = ceil ((float)(gfx_img_w(s) - xoff * 2) / v); h = ceil ((float)(gfx_img_h(s) - yoff * 2) / v); lua_pushnumber(L, w); lua_pushnumber(L, h); return 2; } #define BLIT_COPY 0 #define BLIT_DRAW 1 #define BLIT_COMPOSE 2 static int luaB_blit_sprite(lua_State *L, int mode) { img_t s, d; img_t img2 = NULL; float v; const char *src = luaL_optstring(L, 1, NULL); int x = luaL_optnumber(L, 2, 0); int y = luaL_optnumber(L, 3, 0); int w = luaL_optnumber(L, 4, -1); int h = luaL_optnumber(L, 5, -1); const char *dst = luaL_optstring(L, 6, NULL); int xx = luaL_optnumber(L, 7, 0); int yy = luaL_optnumber(L, 8, 0); int alpha = luaL_optnumber(L, 9, 255); int xoff = 0, yoff = 0; int xoff0 = 0, yoff0 = 0; if (!src || !dst) return 0; s = grab_sprite(src, &xoff0, &yoff0); d = grab_sprite(dst, &xoff, &yoff); if (!s || !d) return 0; v = game_theme.scale; if (v != 1.0f) { x *= v; y *= v; if (w != -1) w = ceil(w * v); if (h != -1) h = ceil(h * v); xx *= v; yy *= v; } if (w == -1) w = gfx_img_w(s) - 2 * xoff0; if (h == -1) h = gfx_img_h(s) - 2 * yoff0; game_pict_modify(d); if (alpha != 255) { img2 = gfx_alpha_img(s, alpha); if (img2) s = img2; } gfx_clip(game_theme.xoff, game_theme.yoff, game_theme.w - 2*game_theme.xoff, game_theme.h - 2*game_theme.yoff); switch (mode) { case BLIT_DRAW: gfx_draw_from(s, x + xoff0, y + yoff0, w, h, d, xx + xoff, yy + yoff); break; case BLIT_COPY: gfx_copy_from(s, x + xoff0, y + yoff0, w, h, d, xx + xoff, yy + yoff); break; case BLIT_COMPOSE: gfx_compose_from(s, x + xoff0, y + yoff0, w, h, d, xx + xoff, yy + yoff); break; default: break; } gfx_noclip(); gfx_free_image(img2); lua_pushboolean(L, 1); return 1; } static int luaB_draw_sprite(lua_State *L) { return luaB_blit_sprite(L, BLIT_DRAW); } static int luaB_copy_sprite(lua_State *L) { return luaB_blit_sprite(L, BLIT_COPY); } static int luaB_compose_sprite(lua_State *L) { return luaB_blit_sprite(L, BLIT_COMPOSE); } static int luaB_alpha_sprite(lua_State *L) { _spr_t *sp; img_t s; img_t img2 = NULL; const char *key; char sname[sizeof(unsigned long) * 2 + 16]; const char *src = luaL_optstring(L, 1, NULL); int alpha = luaL_optnumber(L, 2, 255); const char *desc = luaL_optstring(L, 3, NULL); if (!src) return 0; s = cache_lookup(gfx_image_cache(), src); if (!s) return 0; img2 = gfx_alpha_img(s, alpha); if (!img2) return 0; if (!desc || sprite_lookup(desc)) { key = sname; sprite_name(src, sname, sizeof(sname)); } else key = desc; sp = sprite_new(key, img2); if (!sp) goto err; lua_pushstring(L, sname); return 1; err: gfx_free_image(img2); return 0; } static int luaB_dup_sprite(lua_State *L) { _spr_t *sp; img_t s; img_t img2 = NULL; const char *key; char sname[sizeof(unsigned long) * 2 + 16]; const char *src = luaL_optstring(L, 1, NULL); const char *desc = luaL_optstring(L, 2, NULL); if (!src) return 0; s = cache_lookup(gfx_image_cache(), src); if (!s) return 0; img2 = gfx_alpha_img(s, 255); if (!img2) return 0; if (!desc || sprite_lookup(desc)) { key = sname; sprite_name(src, sname, sizeof(sname)); } else key = desc; sp = sprite_new(key, img2); if (!sp) goto err; lua_pushstring(L, sname); return 1; err: gfx_free_image(img2); return 0; } static int luaB_scale_sprite(lua_State *L) { _spr_t *sp; img_t s; img_t img2 = NULL; const char *key; char sname[sizeof(unsigned long) * 2 + 16]; const char *src = luaL_optstring(L, 1, NULL); float xs = luaL_optnumber(L, 2, 0); float ys = luaL_optnumber(L, 3, 0); int smooth = lua_toboolean(L, 4); const char *desc = luaL_optstring(L, 5, NULL); if (!src) return 0; s = cache_lookup(gfx_image_cache(), src); if (!s) return 0; if (xs == 0) xs = 1.0f; if (ys == 0) ys = xs; img2 = gfx_scale(s, xs, ys, smooth); if (!img2) return 0; if (!desc || sprite_lookup(desc)) { key = sname; sprite_name(src, sname, sizeof(sname)); } else key = desc; sp = sprite_new(key, img2); if (!sp) goto err; lua_pushstring(L, sname); return 1; err: gfx_free_image(img2); return 0; } static int luaB_rotate_sprite(lua_State *L) { _spr_t *sp; img_t s; img_t img2 = NULL; const char *key; char sname[sizeof(unsigned long) * 2 + 16]; const char *src = luaL_optstring(L, 1, NULL); float angle = luaL_optnumber(L, 2, 1.0f); int smooth = lua_toboolean(L, 3); const char *desc = luaL_optstring(L, 4, NULL); if (!src) return 0; s = cache_lookup(gfx_image_cache(), src); if (!s) return 0; img2 = gfx_rotate(s, angle, smooth); if (!img2) return 0; if (!desc || sprite_lookup(desc)) { key = sname; sprite_name(src, sname, sizeof(sname)); } else key = desc; sp = sprite_new(key, img2); if (!sp) goto err; lua_pushstring(L, sname); return 1; err: gfx_free_image(img2); return 0; } static int luaB_fill_sprite(lua_State *L) { img_t d; float v; const char *dst = luaL_optstring(L, 1, NULL); int x = luaL_optnumber(L, 2, 0); int y = luaL_optnumber(L, 3, 0); int w = luaL_optnumber(L, 4, -1); int h = luaL_optnumber(L, 5, -1); const char *color = luaL_optstring(L, 6, NULL); int xoff = 0, yoff = 0; color_t col = { .r = game_theme.bgcol.r, .g = game_theme.bgcol.g, .b = game_theme.bgcol.b }; if (!dst) return 0; d = grab_sprite(dst, &xoff, &yoff); if (color) gfx_parse_color(color, &col); if (!d) return 0; v = game_theme.scale; if (v != 1.0f) { x *= v; y *= v; if (w != -1) w = ceil(w * v); if (h != -1) h = ceil(h * v); } if (w == -1) w = gfx_img_w(d) - 2 * xoff; if (h == -1) h = gfx_img_h(d) - 2 * yoff; game_pict_modify(d); gfx_clip(game_theme.xoff, game_theme.yoff, game_theme.w - 2*game_theme.xoff, game_theme.h - 2*game_theme.yoff); gfx_img_fill(d, x + xoff, y + yoff, w, h, col); gfx_noclip(); lua_pushboolean(L, 1); return 1; } static int luaB_pixel_sprite(lua_State *L) { img_t d; float v; int rc, w, h; color_t col = { .r = game_theme.bgcol.r, .g = game_theme.bgcol.g, .b = game_theme.bgcol.b, .a = 255 }; const char *dst = luaL_optstring(L, 1, NULL); int x = luaL_optnumber(L, 2, 0); int y = luaL_optnumber(L, 3, 0); const char *color = luaL_optstring(L, 4, NULL); int alpha = luaL_optnumber(L, 5, 255); int xoff = 0, yoff = 0; if (!dst) return 0; d = grab_sprite(dst, &xoff, &yoff); if (color) gfx_parse_color(color, &col); if (!d) return 0; w = gfx_img_w(d) - 2 * xoff; h = gfx_img_h(d) - 2 * yoff; v = game_theme.scale; if (v != 1.0f) { x *= v; y *= v; } if (color) { if (x < 0 || y < 0 || x >= w || y >= h) return 0; game_pict_modify(d); col.a = alpha; rc = gfx_set_pixel(d, x + xoff, y + yoff, col); } else { rc = gfx_get_pixel(d, x + xoff, y + yoff, &col); } if (rc) return 0; lua_pushnumber(L, col.r); lua_pushnumber(L, col.g); lua_pushnumber(L, col.b); lua_pushnumber(L, col.a); return 4; } static int _free_sprite(const char *key) { _spr_t *sp; if (!key) return -1; sp = sprite_lookup(key); if (!sp) return -1; cache_forget(gfx_image_cache(), sp->img); cache_shrink(gfx_image_cache()); list_del(&sp->list); free(sp->name); free(sp); return 0; } static int luaB_free_sprite(lua_State *L) { const char *key = luaL_optstring(L, 1, NULL); if (_free_sprite(key)) return 0; lua_pushboolean(L, 1); return 1; } static int luaB_show_menu(lua_State *L) { const char *menu = luaL_optstring(L, 1, NULL); if (menu) { if (!strcmp(menu, "save")) menu_toggle(menu_save); else if (!strcmp(menu, "load")) menu_toggle(menu_load); else if (!strcmp(menu, "quit") || !strcmp(menu, "exit")) menu_toggle(menu_askquit); else menu_toggle(-1); return 0; } menu_toggle(menu_main); return 0; } static int luaB_stead_busy(lua_State *L) { static unsigned long busy_time = 0; int busy = lua_toboolean(L, 1); if (busy) { struct inp_event ev; memset(&ev, 0, sizeof(ev)); while (input(&ev, 0) == AGAIN); if (ev.type == MOUSE_MOTION) game_cursor(CURSOR_ON); /* to make all happy */ if (!busy_time) busy_time = gfx_ticks(); if (gfx_ticks() - busy_time >= 750 && menu_visible() != menu_wait) game_menu(menu_wait); game_gfx_commit(); return 0; } if (menu_visible() == menu_wait) { menu_toggle(-1); } busy_time = 0; return 0; } static int luaB_free_font(lua_State *L) { const char *key = luaL_optstring(L, 1, NULL); _fnt_t *fn; if (!key) return 0; fn = font_lookup(key); if (!fn) return 0; list_del(&fn->list); free(fn->name); free(fn); lua_pushboolean(L, 1); return 1; } static int luaB_load_sound(lua_State *L) { int rc; const char *fname = luaL_optstring(L, 1, NULL); if (!fname) return 0; rc = sound_load(fname); if (rc) return 0; lua_pushstring(L, fname); return 1; } static int luaB_free_sound(lua_State *L) { const char *fname = luaL_optstring(L, 1, NULL); if (!fname) return 0; sound_unload(fname); return 0; } static int luaB_free_sounds(lua_State *L) { sounds_free(); return 0; } static int luaB_panning_sound(lua_State *L) { int chan = luaL_optnumber(L, 1, -1); int left = luaL_optnumber(L, 2, 255); int right = luaL_optnumber(L, 3, 255); snd_panning(chan, left, right); return 0; } static int luaB_volume_sound(lua_State *L) { int vol = luaL_optnumber(L, 1, -1); vol = snd_volume_mus(vol); lua_pushnumber(L, vol); return 1; } static int luaB_channel_sound(lua_State *L) { const char *s; int ch = luaL_optnumber(L, 1, 0); ch = ch % SND_CHANNELS; s = sound_channel(ch); if (s) { lua_pushstring(L, s); return 1; } return 0; } static int luaB_mouse_pos(lua_State *L) { int x = luaL_optnumber(L, 1, -1); int y = luaL_optnumber(L, 2, -1); float v = game_theme.scale; if (x != -1 && y != -1) { x *= v; y *= v; gfx_warp_cursor(x + game_theme.xoff, y + game_theme.yoff); x = -1; y = -1; } gfx_cursor(&x, &y); x = (x - game_theme.xoff) / v; y = (y - game_theme.yoff) / v; lua_pushnumber(L, x); lua_pushnumber(L, y); return 2; } extern int mouse_filter_delay; static int luaB_mouse_filter(lua_State *L) { int d = luaL_optnumber(L, 1, -1); int ov = mouse_filter_delay; if (d != -1) mouse_filter_delay = d; lua_pushnumber(L, ov); return 1; } static int luaB_get_ticks(lua_State *L) { lua_pushnumber(L, gfx_ticks()); return 1; } static int luaB_bit_and(lua_State *L) { unsigned int a = luaL_optnumber(L, 1, 0); unsigned int b = luaL_optnumber(L, 2, 0); unsigned int r = a & b; lua_pushnumber(L, r); return 1; } static int luaB_bit_or(lua_State *L) { unsigned int a = luaL_optnumber(L, 1, 0); unsigned int b = luaL_optnumber(L, 2, 0); unsigned int r = a | b; lua_pushnumber(L, r); return 1; } static int luaB_bit_xor(lua_State *L) { unsigned int a = luaL_optnumber(L, 1, 0); unsigned int b = luaL_optnumber(L, 2, 0); unsigned int r = a ^ b; lua_pushnumber(L, r); return 1; } static int luaB_bit_shl(lua_State *L) { unsigned int a = luaL_optnumber(L, 1, 0); unsigned int b = luaL_optnumber(L, 2, 0); unsigned int r = a << b; lua_pushnumber(L, r); return 1; } static int luaB_bit_shr(lua_State *L) { unsigned int a = luaL_optnumber(L, 1, 0); unsigned int b = luaL_optnumber(L, 2, 0); unsigned int r = a >> b; lua_pushnumber(L, r); return 1; } static int luaB_bit_not(lua_State *L) { unsigned int a = luaL_optnumber(L, 1, 0); unsigned int r = ~a; lua_pushnumber(L, r); return 1; } static int luaB_bit_div(lua_State *L) { unsigned int a = luaL_optnumber(L, 1, 0); unsigned int b = luaL_optnumber(L, 2, 1); unsigned int r; if (b) { r = a / b; lua_pushnumber(L, r); return 1; } return 0; } static int luaB_bit_idiv(lua_State *L) { int a = luaL_optnumber(L, 1, 0); int b = luaL_optnumber(L, 2, 1); int r; if (b) { r = a / b; lua_pushnumber(L, r); return 1; } return 0; } static int luaB_bit_mod(lua_State *L) { unsigned int a = luaL_optnumber(L, 1, 0); unsigned int b = luaL_optnumber(L, 2, 1); unsigned int r; if (b) { r = a % b; lua_pushnumber(L, r); return 1; } return 0; } static int luaB_bit_mul(lua_State *L) { unsigned int a = luaL_optnumber(L, 1, 0); unsigned int b = luaL_optnumber(L, 2, 0); unsigned int r = a * b; lua_pushnumber(L, r); return 1; } static int luaB_bit_imul(lua_State *L) { int a = luaL_optnumber(L, 1, 0); int b = luaL_optnumber(L, 2, 0); int r = a * b; lua_pushnumber(L, r); return 1; } static int luaB_bit_sub(lua_State *L) { unsigned int a = luaL_optnumber(L, 1, 0); unsigned int b = luaL_optnumber(L, 2, 0); unsigned int r = a - b; lua_pushnumber(L, r); return 1; } static int luaB_bit_add(lua_State *L) { unsigned int a = luaL_optnumber(L, 1, 0); unsigned int b = luaL_optnumber(L, 2, 0); unsigned int r = a + b; lua_pushnumber(L, r); return 1; } static int luaB_bit_unsigned(lua_State *L) { unsigned int a = luaL_optnumber(L, 1, 0); lua_pushnumber(L, a); return 1; } static int luaB_bit_signed(lua_State *L) { unsigned int a = luaL_optnumber(L, 1, 0); lua_pushnumber(L, (int)a); return 1; } static int luaB_maxn (lua_State *L) { lua_Number max = 0; luaL_checktype(L, 1, LUA_TTABLE); lua_pushnil(L); /* first key */ while (lua_next(L, 1)) { lua_pop(L, 1); /* remove value */ if (lua_type(L, -1) == LUA_TNUMBER) { lua_Number v = lua_tonumber(L, -1); if (v > max) max = v; } } lua_pushnumber(L, max); return 1; } static const luaL_Reg base_funcs[] = { {"doencfile", luaB_doencfile}, {"dofile", luaB_dofile}, {"print", luaB_print}, /* for some mystic, it is needed in win version (with -debug) */ {"table_get_maxn", luaB_maxn}, {"instead_readdir", dir_iter_factory}, {"instead_sound", luaB_is_sound}, {"instead_savepath", luaB_get_savepath}, {"instead_gamepath", luaB_get_gamepath}, {"instead_steadpath", luaB_get_steadpath}, {"instead_themespath", luaB_get_themespath}, {"instead_gamespath", luaB_get_gamespath}, {"instead_timer", luaB_set_timer}, {"instead_theme_var", luaB_theme_var}, {"instead_theme_name", luaB_theme_name}, {"instead_menu_toggle", luaB_show_menu}, {"instead_busy", luaB_stead_busy}, {"instead_sound_load", luaB_load_sound}, {"instead_sound_free", luaB_free_sound}, {"instead_sound_channel", luaB_channel_sound}, {"instead_sound_panning", luaB_panning_sound}, {"instead_sound_volume", luaB_volume_sound}, {"instead_sounds_free", luaB_free_sounds}, {"instead_mouse_pos", luaB_mouse_pos}, {"instead_mouse_filter", luaB_mouse_filter}, {"instead_font_load", luaB_load_font}, {"instead_font_free", luaB_free_font}, {"instead_font_scaled_size", luaB_font_size_scaled}, {"instead_ticks", luaB_get_ticks}, {"instead_sprite_load", luaB_load_sprite}, {"instead_sprite_text", luaB_text_sprite}, {"instead_sprite_free", luaB_free_sprite}, {"instead_sprites_free", luaB_free_sprites}, {"instead_sprite_draw", luaB_draw_sprite}, {"instead_sprite_copy", luaB_copy_sprite}, {"instead_sprite_compose", luaB_compose_sprite}, {"instead_sprite_fill", luaB_fill_sprite}, {"instead_sprite_dup", luaB_dup_sprite}, {"instead_sprite_alpha", luaB_alpha_sprite}, {"instead_sprite_size", luaB_sprite_size}, {"instead_sprite_scale", luaB_scale_sprite}, {"instead_sprite_rotate", luaB_rotate_sprite}, {"instead_sprite_text_size", luaB_text_size}, {"instead_sprite_pixel", luaB_pixel_sprite}, {"bit_or", luaB_bit_or}, {"bit_and", luaB_bit_and}, {"bit_xor", luaB_bit_xor}, {"bit_shl", luaB_bit_shl}, {"bit_shr", luaB_bit_shr}, {"bit_not", luaB_bit_not}, {"bit_div", luaB_bit_div}, {"bit_idiv", luaB_bit_idiv}, {"bit_mod", luaB_bit_mod}, {"bit_mul", luaB_bit_mul}, {"bit_imul", luaB_bit_imul}, {"bit_sub", luaB_bit_sub}, {"bit_add", luaB_bit_add}, {"bit_signed", luaB_bit_signed}, {"bit_unsigned", luaB_bit_unsigned}, {NULL, NULL} }; int instead_lang(void) { char lang[64]; if (!L) return 0; if (opt_lang && *opt_lang) snprintf(lang, sizeof(lang) - 1, "LANG='%s'", opt_lang); else snprintf(lang, sizeof(lang) - 1, "LANG='en'"); instead_eval(lang); instead_clear(); return 0; } static int instead_platform(void) { char plat[64]; if (!L) return 0; snprintf(plat, sizeof(plat) - 1, "PLATFORM='UNIX'"); #ifdef __APPLE__ snprintf(plat, sizeof(plat) - 1, "PLATFORM='MACOSX'"); #endif #ifdef _WIN32 snprintf(plat, sizeof(plat) - 1, "PLATFORM='WIN32'"); #endif #ifdef _WIN32_WCE snprintf(plat, sizeof(plat) - 1, "PLATFORM='WINCE'"); #endif #ifdef S60 snprintf(plat, sizeof(plat) - 1, "PLATFORM='S60'"); #endif #ifdef ANDROID snprintf(plat, sizeof(plat) - 1, "PLATFORM='ANDROID'"); #endif #ifdef MAEMO snprintf(plat, sizeof(plat) - 1, "PLATFORM='MAEMO'"); #endif plat[sizeof(plat) - 1] = 0; instead_eval(plat); instead_clear(); return 0; } static int instead_package(const char *path) { char *p; #if defined(_WIN32_WCE) char stead_path[PATH_MAX * 4] = "package.path=\""; /* wince have not cwd :) */ if (path) { strcat(stead_path, path); strcat(stead_path, "/?.lua"); strcat(stead_path, ";"); } #else char stead_path[PATH_MAX] = "package.path=\"./?.lua;"; #endif p = game_local_stead_path(); if (p) { strcat(stead_path, p); strcat(stead_path, "/?.lua"); strcat(stead_path, ";"); } if (STEAD_PATH[0] != '/') { strcat(stead_path, game_cwd); strcat(stead_path, "/"); strcat(stead_path, STEAD_PATH); } else { strcat(stead_path, STEAD_PATH); } strcat(stead_path, "/?.lua"); strcat(stead_path, "\""); instead_eval(stead_path); instead_clear(); /* putenv(stead_path); */ return 0; } int instead_init(const char *path) { busy = 0; setlocale(LC_ALL,""); setlocale(LC_NUMERIC,"C"); /* to avoid . -> , in numbers */ // strcpy(curcp, "UTF-8"); /* initialize Lua */ #if LUA_VERSION_NUM >= 502 L = luaL_newstate(); #else L = lua_open(); #endif if (!L) return -1; luaL_openlibs(L); #if LUA_VERSION_NUM >= 502 lua_pushglobaltable(L); lua_pushglobaltable(L); lua_setfield(L, -2, "_G"); /* open lib into global table */ luaL_setfuncs(L, base_funcs, 0); #else luaL_register(L, "_G", base_funcs); #endif luaopen_lfs (L); instead_package(path); instead_platform(); instead_lang(); if (dofile(L, dirpath(STEAD_PATH"/stead.lua"))) { return -1; } if (dofile(L, dirpath(STEAD_PATH"/gui.lua"))) { instead_clear(); return -1; } /* cleanup Lua */ instead_clear(); srand(time(NULL)); return 0; } void instead_done(void) { gfx_del_timer(instead_timer); instead_timer = NULL_TIMER; #ifdef _HAVE_ICONV if (fromcp) free(fromcp); #endif if (L) lua_close(L); L = NULL; #ifdef _HAVE_ICONV fromcp = NULL; #endif sprites_free(); } int instead_encode(const char *s, const char *d) { FILE *src; FILE *dst; size_t size; int i = 0; unsigned char byte = 0xcc; unsigned char buff[4096]; src = fopen(s, "rb"); if (!src) { fprintf(stderr,"Can't open on read: '%s'.\n", s); return -1; } dst = fopen(d, "wb"); if (!dst) { fprintf(stderr,"Can't open on write: '%s'.\n", s); fclose(src); return -1; } while ((size = fread(buff, 1, sizeof(buff), src))) { for (i = 0; i < size; i++) { buff[i] = (buff[i] << 3) | (buff[i] >> 5); buff[i] ^= byte; byte = buff[i]; } if (fwrite(buff, 1, size, dst) != size) { fprintf(stderr, "Error while writing file: '%s'.\n", d); fclose(src); fclose(dst); return -1; } } fclose(src); fclose(dst); return 0; } instead-1.9.1/src/sdl-instead/sound.c000644 001751 001751 00000013327 12170510462 017751 0ustar00peterpeter000000 000000 #include "externals.h" #include "internals.h" #include #include #include "sdl_idf.h" #ifdef S60 int audio_rate = 11025; #else int audio_rate = 22050; #endif Uint16 audio_format = MIX_DEFAULT_FORMAT; int audio_channels = 2; int audio_buffers = 8192; static mus_t mus; static char *next_mus = NULL; static int next_fadein = 0; static int next_loop = -1; static SDL_TimerID timer_id = NULL_TIMER; static int sound_on = 0; struct _mus_t { Mix_Music *mus; SDL_RWops *rw; }; static void mus_callback(void *aux) { if (!timer_id) return; if (snd_playing_mus()) return; if (mus) snd_free_mus(mus); mus = NULL; if (next_mus) { snd_play_mus(next_mus, next_fadein, next_loop); free(next_mus); next_mus = NULL; } SDL_RemoveTimer(timer_id); timer_id = NULL_TIMER; } static Uint32 callback(Uint32 interval, void *aux) { push_user_event(mus_callback, aux); return interval; } int snd_hz(void) { int freq = 0; if (sound_on) Mix_QuerySpec(&freq, NULL, NULL); return freq; } int alsa_sw = 0; int nosound_sw = 0; void snd_pause(int on) { if (!sound_on) return; if (on) { Mix_Pause(-1); Mix_PauseMusic(); } else { Mix_Resume(-1); Mix_ResumeMusic(); } return; } int snd_init(int hz) { int chunk; if (nosound_sw) return -1; if (!hz) hz = audio_rate; else audio_rate = hz; chunk = (chunksize_sw>0)?chunksize_sw:DEFAULT_CHUNKSIZE; audio_buffers = (audio_rate / 11025) * chunk; if (audio_buffers <=0) /* wrong parameter? */ audio_buffers = DEFAULT_CHUNKSIZE; if (SDL_InitSubSystem(SDL_INIT_AUDIO) < 0) { fprintf(stderr, "Unable to init audio!\n"); return -1; } if (alsa_sw) { SDL_AudioInit("alsa"); } if (Mix_OpenAudio(hz, audio_format, audio_channels, audio_buffers)) { fprintf(stderr, "Unable to open audio!\n"); return -1; } sound_on = 1; Mix_ChannelFinished(game_channel_finished); return 0; } int snd_volume_mus(int vol) { if (!sound_on) return 0; Mix_Volume(-1, vol); return Mix_VolumeMusic(vol); } #define MIXER_VERSION_ATLEAST(a,b,c) (SDL_VERSIONNUM(SDL_MIXER_MAJOR_VERSION, SDL_MIXER_MINOR_VERSION,SDL_MIXER_PATCHLEVEL) >= SDL_VERSIONNUM(a, b, c)) wav_t snd_load_wav(const char *fname) { SDL_RWops *rw; wav_t r; if (!sound_on) return NULL; if (!fname || !*fname) return NULL; rw = RWFromIdf(game_idf, fname); if (!rw || !(r = (wav_t)Mix_LoadWAV_RW(rw, 1))) { fprintf(stderr,"Can't load '%s'.\n", fname); return NULL; } return r; } void snd_free_wav(wav_t w) { if (!w) return; // Mix_HaltChannel(-1); Mix_FreeChunk((Mix_Chunk*)w); } void snd_halt_chan(int han, int ms) { if (han >= MIX_CHANNELS) han %= MIX_CHANNELS; if (ms) Mix_FadeOutChannel(han, ms); else { Mix_HaltChannel(han); } } mus_t snd_load_mus(const char *fname) { mus_t mus = NULL; if (!sound_on) return NULL; mus = malloc(sizeof(struct _mus_t)); if (!mus) return NULL; mus->rw = RWFromIdf(game_idf, fname); if (!mus->rw) goto err; #if MIXER_VERSION_ATLEAST(2,0,0) mus->mus = Mix_LoadMUS_RW(mus->rw, SDL_FALSE); #else mus->mus = Mix_LoadMUS_RW(mus->rw); #endif if (!mus->mus) goto err1; return mus; err1: SDL_RWclose(mus->rw); err: free(mus); return NULL; } extern void game_music_finished(void); int snd_play_mus(char *fname, int ms, int loop) { if (!sound_on) return 0; if (snd_playing_mus()) { if (next_mus) { free(next_mus); } next_mus = strdup(fname); next_fadein = ms; next_loop = loop; if (!timer_id) timer_id = SDL_AddTimer(200, callback, NULL); return 1; } if (mus) snd_free_mus(mus); mus = snd_load_mus(fname); if (!mus) { fprintf(stderr,"Can't load '%s'.\n", fname); return 0; } if (loop >= 0) Mix_HookMusicFinished(game_music_finished); else Mix_HookMusicFinished(NULL); if (ms) Mix_FadeInMusic(mus->mus, loop, ms); else Mix_PlayMusic(mus->mus, loop); snd_volume_mus(snd_volume_mus(-1)); // SDL hack? return 0; } void snd_stop_mus(int ms) { if (!sound_on) return; Mix_HookMusicFinished(NULL); if (ms) Mix_FadeOutMusic(ms); else Mix_HaltMusic(); } int snd_playing_mus(void) { if (!sound_on) return 0; if (Mix_PlayingMusic() | Mix_FadingMusic()) return 1; return 0; } int snd_playing(int channel) { if (!sound_on) return 0; if (channel >= MIX_CHANNELS) channel %= MIX_CHANNELS; if (channel < 0) channel = -1; return Mix_Playing(channel); } int snd_panning(int channel, int left, int right) { if (channel >= MIX_CHANNELS) channel %= MIX_CHANNELS; if (channel < 0) channel = -1; return Mix_SetPanning(channel, left, right); } void snd_free_mus(mus_t mus) { int to_close = 0; if (!sound_on) return; if (!mus) return; Mix_HaltMusic(); if (mus->mus) { #ifdef _SDL_MOD_BUG if ((Mix_GetMusicType(mus->mus) == MUS_MOD) && !MIXER_VERSION_ATLEAST(1, 2, 12)) SDL_RWclose(mus->rw); #endif if (MIXER_VERSION_ATLEAST(1, 2, 12) && Mix_GetMusicType(mus->mus) != MUS_MP3) { to_close = 1; } Mix_FreeMusic((Mix_Music*) mus->mus); if (to_close) SDL_RWclose(mus->rw); } free(mus); } int snd_play(void *chunk, int channel, int loop) { if (!sound_on) return -1; if (!chunk) return -1; if (channel >= MIX_CHANNELS) channel %= MIX_CHANNELS; if (channel < 0) channel = -1; if (channel != -1) snd_halt_chan(channel, 0); snd_volume_mus(snd_volume_mus(-1)); // SDL hack? return Mix_PlayChannel(channel, (Mix_Chunk*)chunk, loop); } void snd_done(void) { if (!sound_on) return; Mix_ChannelFinished(NULL); if (timer_id) { SDL_RemoveTimer(timer_id); timer_id = NULL_TIMER; } Mix_HaltChannel(-1); Mix_HaltMusic(); if (mus) snd_free_mus(mus); mus = NULL; if (next_mus) free(next_mus); next_mus = NULL; Mix_CloseAudio(); SDL_QuitSubSystem(SDL_INIT_AUDIO); } int snd_vol_from_pcn(int v) { return (v * 127) / 100; } int snd_vol_to_pcn(int v) { return (v * 100) / 127; } instead-1.9.1/src/sdl-instead/windows.c000644 001751 001751 00000014037 12161555571 020324 0ustar00peterpeter000000 000000 #include #include #include #include #include #include #include #include #include #include "sdl_iconv.h" #include "internals.h" extern char *curgame; extern char *curgame_dir; static char local_games_path[PATH_MAX]; static char local_themes_path[PATH_MAX]; static char local_stead_path[PATH_MAX]; static char save_path[PATH_MAX]; static char cfg_path[PATH_MAX]; void nsleep(int u) { Sleep(u); } char *game_locale(void) { char buff[64]; buff[0] = 0; if (!GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SISO639LANGNAME, buff,sizeof(buff) - 1)) return NULL; return strdup(buff); } static char *game_codepage = NULL; #ifdef _HAVE_ICONV static char *game_cp(void) { char cpbuff[64]; char buff[64]; buff[0] = 0; if (!GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_IDEFAULTANSICODEPAGE, buff,sizeof(buff) - 1)) return NULL; snprintf(cpbuff, sizeof(cpbuff), "WINDOWS-%s", buff); return strdup(cpbuff); } char *mbs2utf8(const char *s) { iconv_t han; char *str; if (!game_codepage) game_codepage = game_cp(); if (!s) return NULL; if (!game_codepage) goto out0; han = iconv_open("UTF-8", game_codepage); if (han == (iconv_t)-1) goto out0; if (!(str = decode(han, s))) goto out1; iconv_close(han); return str; out1: iconv_close(han); out0: return strdup(s); } #else char *mbs2utf8(const char *s) { return strdup(s); } #endif extern void unix_path(char *); char *sdl_path(char *p) { char *r = mbs2utf8(p); if (p) free(p); unix_path(r); return r; } char *app_dir( void ); char *game_tmp_path(void) { DWORD dwRetVal = 0; static TCHAR lpTempPathBuffer[MAX_PATH]; // Gets the temp path env string (no guarantee it's a valid path). dwRetVal = GetTempPath(MAX_PATH, // length of the buffer lpTempPathBuffer); // buffer for path if (dwRetVal > MAX_PATH || (dwRetVal == 0)) { return NULL; } strcat((char*)lpTempPathBuffer, "/instead-games"); if (mkdir((char*)lpTempPathBuffer) && errno != EEXIST) return NULL; unix_path((char*)lpTempPathBuffer); return (char*)lpTempPathBuffer; } char *game_local_games_path(int cr) { char *app = app_dir(); if (!app) return NULL; snprintf(local_games_path, sizeof(local_games_path) - 1 , "%s/", app); if (cr) { if (mkdir(local_games_path) && errno != EEXIST) return NULL; } strcat(local_games_path,"/games"); if (cr) { if (mkdir(local_games_path) && errno != EEXIST) return NULL; } return local_games_path; } char *game_local_themes_path(void) { snprintf(local_themes_path, sizeof(local_themes_path) - 1 , "%s/themes", app_dir()); return local_themes_path; } char *game_local_stead_path(void) { snprintf(local_stead_path, sizeof(local_stead_path) - 1 , "%s/stead", app_dir()); return local_stead_path; } #if 0 char *home_dir( void ) { static char homedir[PATH_MAX]=""; SHGetFolderPath( NULL, CSIDL_FLAG_CREATE | CSIDL_PROFILE, NULL, 0, (LPTSTR)homedir ); unix_path(homedir); return homedir; } #endif char *app_dir( void ) { static char appdir[PATH_MAX]=""; #ifdef _LOCAL_APPDATA if (appdata_sw) strcpy(appdir, appdata_sw); else { strcpy(appdir, game_cwd); strcat(appdir, "/appdata"); } if (!access(appdir, W_OK)) return appdir; #endif SHGetFolderPath( NULL, CSIDL_FLAG_CREATE | CSIDL_LOCAL_APPDATA, NULL, 0, (LPTSTR)appdir ); unix_path(appdir); strcat(appdir, "/instead"); return appdir; } char *game_cfg_path( void ) { char *p = app_dir(); if (!p) return NULL; snprintf(cfg_path, sizeof(cfg_path) - 1 , "%src", p); /* appdir/insteadrc ;) */ if (!access(cfg_path, R_OK)) return cfg_path; /* no at home? Try in dir */ snprintf(cfg_path, sizeof(cfg_path) - 1 , "%s", p); if (mkdir(cfg_path) && errno != EEXIST) { snprintf(cfg_path, sizeof(cfg_path) - 1 , "%src", p); /* appdir/insteadrc ;) */ return cfg_path; } snprintf(cfg_path, sizeof(cfg_path) - 1 , "%s/insteadrc", p); return cfg_path; } char *game_save_path( int cr, int nr ) { char appdir[PATH_MAX]; char *p = app_dir(); if (!curgame_dir) return NULL; if (!access("saves", R_OK)) { if (nr) snprintf(save_path, sizeof(save_path) - 1, "saves/save%d", nr); else snprintf(save_path, sizeof(save_path) - 1, "saves/autosave"); return save_path; } if (!p) return NULL; strcpy( appdir, p ); if (cr && mkdir(appdir) && errno != EEXIST) return NULL; snprintf(save_path, sizeof(save_path) - 1 , "%s/saves", appdir); if (cr && mkdir(save_path) && errno != EEXIST) return NULL; snprintf(save_path, sizeof(save_path) - 1, "%s/saves/%s", appdir, curgame_dir); if (cr && mkdir(save_path) && errno != EEXIST) return NULL; if (nr) snprintf(save_path, sizeof(save_path) - 1, "%s/saves/%s/save%d", appdir, curgame_dir, nr); else snprintf(save_path, sizeof(save_path) - 1, "%s/saves/%s/autosave", appdir, curgame_dir); return save_path; } int debug_init(void) { if (!AllocConsole()) return -1; SetConsoleTitle("Debug"); freopen("CON", "w", stdout); //Map stdout freopen("CON", "w", stderr); //Map stderr return 0; } void debug_done() { FreeConsole(); } #ifdef _USE_BROWSE char *open_file_dialog(void) { OPENFILENAME ofn; static char szFile[MAX_PATH]; static char szOldDir[MAX_PATH]; static int old_dir_set = 0; ZeroMemory( &ofn , sizeof( ofn)); ofn.lStructSize = sizeof ( ofn ); ofn.hwndOwner = NULL ; ofn.lpstrFile = szFile ; ofn.lpstrFile[0] = '\0'; ofn.nMaxFile = sizeof( szFile ); ofn.lpstrFilter = "*.*\0*.*\0main.lua;*.zip;*.idf\0main.lua;*.zip;*.idf\0\0"; ofn.nFilterIndex = 2; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; if (!old_dir_set) ofn.lpstrInitialDir = NULL; else ofn.lpstrInitialDir = szOldDir; ofn.Flags = OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_READONLY; if (!GetOpenFileName(&ofn)) return NULL; old_dir_set = 1; strcpy(szOldDir, ofn.lpstrFile); dirname(szOldDir); unix_path(ofn.lpstrFile); return ofn.lpstrFile; } #endif int setdir(const char *path) { return chdir(path); } char *getdir(char *path, size_t size) { return getcwd(path, size); } char *dirpath(const char *path) { return (char*)path; } instead-1.9.1/src/sdl-instead/themes.h000644 001751 001751 00000006304 12161555571 020122 0ustar00peterpeter000000 000000 #ifndef __THEMES_INCLUDED_H #define __THEMES_INCLUDED_H #include "graphics.h" #include "sound.h" #define DEFAULT_THEME "default" #ifndef THEMES_PATH #define THEMES_PATH "./themes" #endif #define THEME_FILE "theme.ini" struct game_theme { float scale; int w; int h; int gfx_scalable; color_t bgcol; char *bg_name; img_t bg; char *use_name; char *cursor_name; int cur_x; int cur_y; img_t use; img_t cursor; int pad; int win_align; int win_x; int win_y; int win_w; int win_h; int win_scroll_mode; char *font_name; int font_size; float font_height; fnt_t font; int gfx_x; int gfx_y; int max_scene_w; int max_scene_h; char *a_up_name; char *a_down_name; img_t a_up; img_t a_down; int a_up_x; int a_up_y; int a_down_x; int a_down_y; color_t fgcol; color_t lcol; color_t acol; int inv_x; int inv_y; int inv_w; int inv_h; color_t icol; color_t ilcol; color_t iacol; char *inv_font_name; int inv_font_size; float inv_font_height; fnt_t inv_font; char *inv_a_up_name; char *inv_a_down_name; img_t inv_a_up; img_t inv_a_down; int inv_a_up_x; int inv_a_up_y; int inv_a_down_x; int inv_a_down_y; // int lstyle; // int ilstyle; color_t menu_bg; color_t menu_fg; color_t border_col; color_t menu_link; color_t menu_alink; int menu_alpha; int border_w; char *menu_font_name; int menu_font_size; float menu_font_height; fnt_t menu_font; char *menu_button_name; img_t menu_button; int menu_button_x; int menu_button_y; int gfx_mode; int inv_mode; char *click_name; void *click; int xoff; int yoff; int changed; }; #define CHANGED_FONT 1 #define CHANGED_IFONT 2 #define CHANGED_MFONT 4 #define CHANGED_BG 8 #define CHANGED_CLICK 0x10 #define CHANGED_CURSOR 0x20 #define CHANGED_USE 0x40 #define CHANGED_UP 0x80 #define CHANGED_DOWN 0x100 #define CHANGED_IUP 0x200 #define CHANGED_IDOWN 0x400 #define CHANGED_BUTTON 0x800 #define CHANGED_ALL 0xffff struct theme { char *path; char *name; char *dir; }; extern struct theme *themes; extern int themes_nr; extern char *curtheme_dir; extern struct game_theme game_theme; extern struct game_theme game_theme_unscaled; extern int game_default_theme(void); extern int game_theme_select(const char *name); extern int themes_lookup(const char *path); extern int themes_rename(void); extern int game_theme_load(const char *name); extern int game_theme_init(void); extern int game_theme_free(void); extern int game_theme_optimize(void); extern int game_theme_update(void); extern int theme_load(const char *name); extern char *game_local_themes_path(void); extern int theme_img_scale(img_t *p); extern int theme_scalable_mode(int w, int h); extern int theme_relative; #define GFX_MODE_FLOAT 0 #define GFX_MODE_FIXED 1 #define GFX_MODE_EMBEDDED 2 #define GFX_MODE_DIRECT 3 #define GFX_MODE(v) ((v)&0xff) #define GFX_ALIGN(v) ((v)>>8) #define GFX_ALIGN_SET(v) ((v)<<8) #define INV_MODE_DISABLED -1 #define INV_MODE_VERT 0 #define INV_MODE_HORIZ 1 #define INV_MODE(v) ((v)&0xff) #define INV_ALIGN(v) ((v)>>8) #define INV_ALIGN_SET(v) ((v)<<8) #define DIRECT_MODE (game_theme.gfx_mode == GFX_MODE_DIRECT) #define SCALABLE_THEME (game_theme.gfx_scalable) #define SCALABLE_THEME_SMOOTH (game_theme.gfx_scalable & 1) #endif instead-1.9.1/src/sdl-instead/SDL_rotozoom.c000644 001751 001751 00000122304 12161555571 021221 0ustar00peterpeter000000 000000 #include #if SDL_VERSION_ATLEAST(2,0,0) #include "SDL2_rotozoom.c" #else /* SDL_rotozoom.c: rotozoomer, zoomer and shrinker for 32bit or 8bit surfaces Copyright (C) 2001-2012 Andreas Schiffler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Andreas Schiffler -- aschiffler at ferzkopp dot net */ #ifdef WIN32 #include #endif #include #include #include "SDL_rotozoom.h" /* ---- Internally used structures */ /*! \brief A 32 bit RGBA pixel. */ typedef struct tColorRGBA { Uint8 r; Uint8 g; Uint8 b; Uint8 a; } tColorRGBA; /*! \brief A 8bit Y/palette pixel. */ typedef struct tColorY { Uint8 y; } tColorY; /*! \brief Returns maximum of two numbers a and b. */ #define MAX(a,b) (((a) > (b)) ? (a) : (b)) /*! \brief Number of guard rows added to destination surfaces. This is a simple but effective workaround for observed issues. These rows allocate extra memory and are then hidden from the surface. Rows are added to the end of destination surfaces when they are allocated. This catches any potential overflows which seem to happen with just the right src image dimensions and scale/rotation and can lead to a situation where the program can segfault. */ #define GUARD_ROWS (2) /*! \brief Lower limit of absolute zoom factor or rotation degrees. */ #define VALUE_LIMIT 0.001 /*! \brief Returns colorkey info for a surface */ Uint32 _colorkey(SDL_Surface *src) { Uint32 key = 0; #if (SDL_MINOR_VERSION == 3) SDL_GetColorKey(src, &key); #else if (src) { key = src->format->colorkey; } #endif return key; } /*! \brief Internal 32 bit integer-factor averaging Shrinker. Shrinks 32 bit RGBA/ABGR 'src' surface to 'dst' surface. Averages color and alpha values values of src pixels to calculate dst pixels. Assumes src and dst surfaces are of 32 bit depth. Assumes dst surface was allocated with the correct dimensions. \param src The surface to shrink (input). \param dst The shrunken surface (output). \param factorx The horizontal shrinking ratio. \param factory The vertical shrinking ratio. \return 0 for success or -1 for error. */ int _shrinkSurfaceRGBA(SDL_Surface * src, SDL_Surface * dst, int factorx, int factory) { int x, y, dx, dy, dgap, ra, ga, ba, aa; int n_average; tColorRGBA *sp, *osp, *oosp; tColorRGBA *dp; /* * Averaging integer shrink */ /* Precalculate division factor */ n_average = factorx*factory; /* * Scan destination */ sp = (tColorRGBA *) src->pixels; // sgap = src->pitch - src->w * 4; dp = (tColorRGBA *) dst->pixels; dgap = dst->pitch - dst->w * 4; for (y = 0; y < dst->h; y++) { osp=sp; for (x = 0; x < dst->w; x++) { /* Trace out source box and accumulate */ oosp=sp; ra=ga=ba=aa=0; for (dy=0; dy < factory; dy++) { for (dx=0; dx < factorx; dx++) { ra += sp->r; ga += sp->g; ba += sp->b; aa += sp->a; sp++; } /* src dx loop */ sp = (tColorRGBA *)((Uint8*)sp + (src->pitch - 4*factorx)); // next y } /* src dy loop */ /* next box-x */ sp = (tColorRGBA *)((Uint8*)oosp + 4*factorx); /* Store result in destination */ dp->r = ra/n_average; dp->g = ga/n_average; dp->b = ba/n_average; dp->a = aa/n_average; /* * Advance destination pointer */ dp++; } /* dst x loop */ /* next box-y */ sp = (tColorRGBA *)((Uint8*)osp + src->pitch*factory); /* * Advance destination pointers */ dp = (tColorRGBA *) ((Uint8 *) dp + dgap); } /* dst y loop */ return (0); } /*! \brief Internal 8 bit integer-factor averaging shrinker. Shrinks 8bit Y 'src' surface to 'dst' surface. Averages color (brightness) values values of src pixels to calculate dst pixels. Assumes src and dst surfaces are of 8 bit depth. Assumes dst surface was allocated with the correct dimensions. \param src The surface to shrink (input). \param dst The shrunken surface (output). \param factorx The horizontal shrinking ratio. \param factory The vertical shrinking ratio. \return 0 for success or -1 for error. */ int _shrinkSurfaceY(SDL_Surface * src, SDL_Surface * dst, int factorx, int factory) { int x, y, dx, dy, dgap, a; int n_average; Uint8 *sp, *osp, *oosp; Uint8 *dp; /* * Averaging integer shrink */ /* Precalculate division factor */ n_average = factorx*factory; /* * Scan destination */ sp = (Uint8 *) src->pixels; // sgap = src->pitch - src->w; dp = (Uint8 *) dst->pixels; dgap = dst->pitch - dst->w; for (y = 0; y < dst->h; y++) { osp=sp; for (x = 0; x < dst->w; x++) { /* Trace out source box and accumulate */ oosp=sp; a=0; for (dy=0; dy < factory; dy++) { for (dx=0; dx < factorx; dx++) { a += (*sp); /* next x */ sp++; } /* end src dx loop */ /* next y */ sp = (Uint8 *)((Uint8*)sp + (src->pitch - factorx)); } /* end src dy loop */ /* next box-x */ sp = (Uint8 *)((Uint8*)oosp + factorx); /* Store result in destination */ *dp = a/n_average; /* * Advance destination pointer */ dp++; } /* end dst x loop */ /* next box-y */ sp = (Uint8 *)((Uint8*)osp + src->pitch*factory); /* * Advance destination pointers */ dp = (Uint8 *)((Uint8 *)dp + dgap); } /* end dst y loop */ return (0); } /*! \brief Internal 32 bit Zoomer with optional anti-aliasing by bilinear interpolation. Zooms 32 bit RGBA/ABGR 'src' surface to 'dst' surface. Assumes src and dst surfaces are of 32 bit depth. Assumes dst surface was allocated with the correct dimensions. \param src The surface to zoom (input). \param dst The zoomed surface (output). \param flipx Flag indicating if the image should be horizontally flipped. \param flipy Flag indicating if the image should be vertically flipped. \param smooth Antialiasing flag; set to SMOOTHING_ON to enable. \return 0 for success or -1 for error. */ int _zoomSurfaceRGBA(SDL_Surface * src, SDL_Surface * dst, int flipx, int flipy, int smooth) { int x, y, sx, sy, ssx, ssy, *sax, *say, *csax, *csay, *salast, csx, csy, ex, ey, cx, cy, sstep, sstepx, sstepy; tColorRGBA *c00, *c01, *c10, *c11; tColorRGBA *sp, *csp, *dp; int spixelgap, spixelw, spixelh, dgap, t1, t2; /* * Allocate memory for row/column increments */ if ((sax = (int *) malloc((dst->w + 1) * sizeof(Uint32))) == NULL) { return (-1); } if ((say = (int *) malloc((dst->h + 1) * sizeof(Uint32))) == NULL) { free(sax); return (-1); } /* * Precalculate row increments */ spixelw = (src->w - 1); spixelh = (src->h - 1); if (smooth) { sx = (int) (65536.0 * (float) spixelw / (float) (dst->w - 1)); sy = (int) (65536.0 * (float) spixelh / (float) (dst->h - 1)); } else { sx = (int) (65536.0 * (float) (src->w) / (float) (dst->w)); sy = (int) (65536.0 * (float) (src->h) / (float) (dst->h)); } /* Maximum scaled source size */ ssx = (src->w << 16) - 1; ssy = (src->h << 16) - 1; /* Precalculate horizontal row increments */ csx = 0; csax = sax; for (x = 0; x <= dst->w; x++) { *csax = csx; csax++; csx += sx; /* Guard from overflows */ if (csx > ssx) { csx = ssx; } } /* Precalculate vertical row increments */ csy = 0; csay = say; for (y = 0; y <= dst->h; y++) { *csay = csy; csay++; csy += sy; /* Guard from overflows */ if (csy > ssy) { csy = ssy; } } sp = (tColorRGBA *) src->pixels; dp = (tColorRGBA *) dst->pixels; dgap = dst->pitch - dst->w * 4; spixelgap = src->pitch/4; if (flipx) sp += spixelw; if (flipy) sp += (spixelgap * spixelh); /* * Switch between interpolating and non-interpolating code */ if (smooth) { /* * Interpolating Zoom */ csay = say; for (y = 0; y < dst->h; y++) { csp = sp; csax = sax; for (x = 0; x < dst->w; x++) { /* * Setup color source pointers */ ex = (*csax & 0xffff); ey = (*csay & 0xffff); cx = (*csax >> 16); cy = (*csay >> 16); sstepx = cx < spixelw; sstepy = cy < spixelh; c00 = sp; c01 = sp; c10 = sp; if (sstepy) { if (flipy) { c10 -= spixelgap; } else { c10 += spixelgap; } } c11 = c10; if (sstepx) { if (flipx) { c01--; c11--; } else { c01++; c11++; } } /* * Draw and interpolate colors */ t1 = ((((c01->r - c00->r) * ex) >> 16) + c00->r) & 0xff; t2 = ((((c11->r - c10->r) * ex) >> 16) + c10->r) & 0xff; dp->r = (((t2 - t1) * ey) >> 16) + t1; t1 = ((((c01->g - c00->g) * ex) >> 16) + c00->g) & 0xff; t2 = ((((c11->g - c10->g) * ex) >> 16) + c10->g) & 0xff; dp->g = (((t2 - t1) * ey) >> 16) + t1; t1 = ((((c01->b - c00->b) * ex) >> 16) + c00->b) & 0xff; t2 = ((((c11->b - c10->b) * ex) >> 16) + c10->b) & 0xff; dp->b = (((t2 - t1) * ey) >> 16) + t1; t1 = ((((c01->a - c00->a) * ex) >> 16) + c00->a) & 0xff; t2 = ((((c11->a - c10->a) * ex) >> 16) + c10->a) & 0xff; dp->a = (((t2 - t1) * ey) >> 16) + t1; /* * Advance source pointer x */ salast = csax; csax++; sstep = (*csax >> 16) - (*salast >> 16); if (flipx) { sp -= sstep; } else { sp += sstep; } /* * Advance destination pointer x */ dp++; } /* * Advance source pointer y */ salast = csay; csay++; sstep = (*csay >> 16) - (*salast >> 16); sstep *= spixelgap; if (flipy) { sp = csp - sstep; } else { sp = csp + sstep; } /* * Advance destination pointer y */ dp = (tColorRGBA *) ((Uint8 *) dp + dgap); } } else { /* * Non-Interpolating Zoom */ csay = say; for (y = 0; y < dst->h; y++) { csp = sp; csax = sax; for (x = 0; x < dst->w; x++) { /* * Draw */ *dp = *sp; /* * Advance source pointer x */ salast = csax; csax++; sstep = (*csax >> 16) - (*salast >> 16); if (flipx) sstep = -sstep; sp += sstep; /* * Advance destination pointer x */ dp++; } /* * Advance source pointer y */ salast = csay; csay++; sstep = (*csay >> 16) - (*salast >> 16); sstep *= spixelgap; if (flipy) sstep = -sstep; sp = csp + sstep; /* * Advance destination pointer y */ dp = (tColorRGBA *) ((Uint8 *) dp + dgap); } } /* * Remove temp arrays */ free(sax); free(say); return (0); } /*! \brief Internal 8 bit Zoomer without smoothing. Zooms 8bit palette/Y 'src' surface to 'dst' surface. Assumes src and dst surfaces are of 8 bit depth. Assumes dst surface was allocated with the correct dimensions. \param src The surface to zoom (input). \param dst The zoomed surface (output). \param flipx Flag indicating if the image should be horizontally flipped. \param flipy Flag indicating if the image should be vertically flipped. \return 0 for success or -1 for error. */ int _zoomSurfaceY(SDL_Surface * src, SDL_Surface * dst, int flipx, int flipy) { int x, y; Uint32 *sax, *say, *csax, *csay; int csx, csy; Uint8 *sp, *dp, *csp; int dgap; /* * Allocate memory for row increments */ if ((sax = (Uint32 *) malloc((dst->w + 1) * sizeof(Uint32))) == NULL) { return (-1); } if ((say = (Uint32 *) malloc((dst->h + 1) * sizeof(Uint32))) == NULL) { free(sax); return (-1); } /* * Pointer setup */ sp = csp = (Uint8 *) src->pixels; dp = (Uint8 *) dst->pixels; dgap = dst->pitch - dst->w; if (flipx) csp += (src->w-1); if (flipy) csp = ( (Uint8*)csp + src->pitch*(src->h-1) ); /* * Precalculate row increments */ csx = 0; csax = sax; for (x = 0; x < dst->w; x++) { csx += src->w; *csax = 0; while (csx >= dst->w) { csx -= dst->w; (*csax)++; } (*csax) = (*csax) * (flipx ? -1 : 1); csax++; } csy = 0; csay = say; for (y = 0; y < dst->h; y++) { csy += src->h; *csay = 0; while (csy >= dst->h) { csy -= dst->h; (*csay)++; } (*csay) = (*csay) * (flipy ? -1 : 1); csay++; } /* * Draw */ csay = say; for (y = 0; y < dst->h; y++) { csax = sax; sp = csp; for (x = 0; x < dst->w; x++) { /* * Draw */ *dp = *sp; /* * Advance source pointers */ sp += (*csax); csax++; /* * Advance destination pointer */ dp++; } /* * Advance source pointer (for row) */ csp += ((*csay) * src->pitch); csay++; /* * Advance destination pointers */ dp += dgap; } /* * Remove temp arrays */ free(sax); free(say); return (0); } /*! \brief Internal 32 bit rotozoomer with optional anti-aliasing. Rotates and zooms 32 bit RGBA/ABGR 'src' surface to 'dst' surface based on the control parameters by scanning the destination surface and applying optionally anti-aliasing by bilinear interpolation. Assumes src and dst surfaces are of 32 bit depth. Assumes dst surface was allocated with the correct dimensions. \param src Source surface. \param dst Destination surface. \param cx Horizontal center coordinate. \param cy Vertical center coordinate. \param isin Integer version of sine of angle. \param icos Integer version of cosine of angle. \param flipx Flag indicating horizontal mirroring should be applied. \param flipy Flag indicating vertical mirroring should be applied. \param smooth Flag indicating anti-aliasing should be used. */ void _transformSurfaceRGBA(SDL_Surface * src, SDL_Surface * dst, int cx, int cy, int isin, int icos, int flipx, int flipy, int smooth) { int x, y, t1, t2, dx, dy, xd, yd, sdx, sdy, ax, ay, ex, ey, sw, sh; tColorRGBA c00, c01, c10, c11, cswap; tColorRGBA *pc, *sp; int gap; /* * Variable setup */ xd = ((src->w - dst->w) << 15); yd = ((src->h - dst->h) << 15); ax = (cx << 16) - (icos * cx); ay = (cy << 16) - (isin * cx); sw = src->w - 1; sh = src->h - 1; pc = (tColorRGBA*) dst->pixels; gap = dst->pitch - dst->w * 4; /* * Switch between interpolating and non-interpolating code */ if (smooth) { for (y = 0; y < dst->h; y++) { dy = cy - y; sdx = (ax + (isin * dy)) + xd; sdy = (ay - (icos * dy)) + yd; for (x = 0; x < dst->w; x++) { dx = (sdx >> 16); dy = (sdy >> 16); if (flipx) dx = sw - dx; if (flipy) dy = sh - dy; if ((dx > -1) && (dy > -1) && (dx < (src->w-1)) && (dy < (src->h-1))) { sp = (tColorRGBA *)src->pixels;; sp += ((src->pitch/4) * dy); sp += dx; c00 = *sp; sp += 1; c01 = *sp; sp += (src->pitch/4); c11 = *sp; sp -= 1; c10 = *sp; if (flipx) { cswap = c00; c00=c01; c01=cswap; cswap = c10; c10=c11; c11=cswap; } if (flipy) { cswap = c00; c00=c10; c10=cswap; cswap = c01; c01=c11; c11=cswap; } /* * Interpolate colors */ ex = (sdx & 0xffff); ey = (sdy & 0xffff); t1 = ((((c01.r - c00.r) * ex) >> 16) + c00.r) & 0xff; t2 = ((((c11.r - c10.r) * ex) >> 16) + c10.r) & 0xff; pc->r = (((t2 - t1) * ey) >> 16) + t1; t1 = ((((c01.g - c00.g) * ex) >> 16) + c00.g) & 0xff; t2 = ((((c11.g - c10.g) * ex) >> 16) + c10.g) & 0xff; pc->g = (((t2 - t1) * ey) >> 16) + t1; t1 = ((((c01.b - c00.b) * ex) >> 16) + c00.b) & 0xff; t2 = ((((c11.b - c10.b) * ex) >> 16) + c10.b) & 0xff; pc->b = (((t2 - t1) * ey) >> 16) + t1; t1 = ((((c01.a - c00.a) * ex) >> 16) + c00.a) & 0xff; t2 = ((((c11.a - c10.a) * ex) >> 16) + c10.a) & 0xff; pc->a = (((t2 - t1) * ey) >> 16) + t1; } sdx += icos; sdy += isin; pc++; } pc = (tColorRGBA *) ((Uint8 *) pc + gap); } } else { for (y = 0; y < dst->h; y++) { dy = cy - y; sdx = (ax + (isin * dy)) + xd; sdy = (ay - (icos * dy)) + yd; for (x = 0; x < dst->w; x++) { dx = (short) (sdx >> 16); dy = (short) (sdy >> 16); if (flipx) dx = (src->w-1)-dx; if (flipy) dy = (src->h-1)-dy; if ((dx >= 0) && (dy >= 0) && (dx < src->w) && (dy < src->h)) { sp = (tColorRGBA *) ((Uint8 *) src->pixels + src->pitch * dy); sp += dx; *pc = *sp; } sdx += icos; sdy += isin; pc++; } pc = (tColorRGBA *) ((Uint8 *) pc + gap); } } } /*! \brief Rotates and zooms 8 bit palette/Y 'src' surface to 'dst' surface without smoothing. Rotates and zooms 8 bit RGBA/ABGR 'src' surface to 'dst' surface based on the control parameters by scanning the destination surface. Assumes src and dst surfaces are of 8 bit depth. Assumes dst surface was allocated with the correct dimensions. \param src Source surface. \param dst Destination surface. \param cx Horizontal center coordinate. \param cy Vertical center coordinate. \param isin Integer version of sine of angle. \param icos Integer version of cosine of angle. \param flipx Flag indicating horizontal mirroring should be applied. \param flipy Flag indicating vertical mirroring should be applied. */ void transformSurfaceY(SDL_Surface * src, SDL_Surface * dst, int cx, int cy, int isin, int icos, int flipx, int flipy) { int x, y, dx, dy, xd, yd, sdx, sdy, ax, ay; tColorY *pc, *sp; int gap; /* * Variable setup */ xd = ((src->w - dst->w) << 15); yd = ((src->h - dst->h) << 15); ax = (cx << 16) - (icos * cx); ay = (cy << 16) - (isin * cx); // sw = src->w - 1; // sh = src->h - 1; pc = (tColorY*) dst->pixels; gap = dst->pitch - dst->w; /* * Clear surface to colorkey */ memset(pc, (int)(_colorkey(src) & 0xff), dst->pitch * dst->h); /* * Iterate through destination surface */ for (y = 0; y < dst->h; y++) { dy = cy - y; sdx = (ax + (isin * dy)) + xd; sdy = (ay - (icos * dy)) + yd; for (x = 0; x < dst->w; x++) { dx = (short) (sdx >> 16); dy = (short) (sdy >> 16); if (flipx) dx = (src->w-1)-dx; if (flipy) dy = (src->h-1)-dy; if ((dx >= 0) && (dy >= 0) && (dx < src->w) && (dy < src->h)) { sp = (tColorY *) (src->pixels); sp += (src->pitch * dy + dx); *pc = *sp; } sdx += icos; sdy += isin; pc++; } pc += gap; } } /*! \brief Rotates a 32 bit surface in increments of 90 degrees. Specialized 90 degree rotator which rotates a 'src' surface in 90 degree increments clockwise returning a new surface. Faster than rotozoomer since not scanning or interpolation takes place. Input surface must be 32 bit. (code contributed by J. Schiller, improved by C. Allport and A. Schiffler) \param src Source surface to rotate. \param numClockwiseTurns Number of clockwise 90 degree turns to apply to the source. \returns The new, rotated surface; or NULL for surfaces with incorrect input format. */ SDL_Surface* rotateSurface90Degrees(SDL_Surface* src, int numClockwiseTurns) { int row, col, newWidth, newHeight; int bpp, src_ipr, dst_ipr; SDL_Surface* dst; Uint32* srcBuf; Uint32* dstBuf; /* Has to be a valid surface pointer and only 32-bit surfaces (for now) */ if (!src || src->format->BitsPerPixel != 32) { return NULL; } /* normalize numClockwiseTurns */ while(numClockwiseTurns < 0) { numClockwiseTurns += 4; } numClockwiseTurns = (numClockwiseTurns % 4); /* if it's even, our new width will be the same as the source surface */ newWidth = (numClockwiseTurns % 2) ? (src->h) : (src->w); newHeight = (numClockwiseTurns % 2) ? (src->w) : (src->h); dst = SDL_CreateRGBSurface( src->flags, newWidth, newHeight, src->format->BitsPerPixel, src->format->Rmask, src->format->Gmask, src->format->Bmask, src->format->Amask); if(!dst) { return NULL; } if (SDL_MUSTLOCK(dst)) { SDL_LockSurface(dst); } if (SDL_MUSTLOCK(dst)) { SDL_LockSurface(dst); } /* Calculate int-per-row */ bpp = src->format->BitsPerPixel / 8; src_ipr = src->pitch / bpp; dst_ipr = dst->pitch / bpp; switch(numClockwiseTurns) { case 0: /* Make a copy of the surface */ { /* Unfortunately SDL_BlitSurface cannot be used to make a copy of the surface since it does not preserve alpha. */ if (src->pitch == dst->pitch) { /* If the pitch is the same for both surfaces, the memory can be copied all at once. */ memcpy(dst->pixels, src->pixels, (src->h * src->pitch)); } else { /* If the pitch differs, copy each row separately */ srcBuf = (Uint32*)(src->pixels); dstBuf = (Uint32*)(dst->pixels); for (row = 0; row < src->h; row++) { memcpy(dstBuf, srcBuf, dst->w * bpp); srcBuf += src_ipr; dstBuf += dst_ipr; } /* end for(col) */ } /* end for(row) */ } break; /* rotate clockwise */ case 1: /* rotated 90 degrees clockwise */ { for (row = 0; row < src->h; ++row) { srcBuf = (Uint32*)(src->pixels) + (row * src_ipr); dstBuf = (Uint32*)(dst->pixels) + (dst->w - row - 1); for (col = 0; col < src->w; ++col) { *dstBuf = *srcBuf; ++srcBuf; dstBuf += dst_ipr; } /* end for(col) */ } /* end for(row) */ } break; case 2: /* rotated 180 degrees clockwise */ { for (row = 0; row < src->h; ++row) { srcBuf = (Uint32*)(src->pixels) + (row * src_ipr); dstBuf = (Uint32*)(dst->pixels) + ((dst->h - row - 1) * dst_ipr) + (dst->w - 1); for (col = 0; col < src->w; ++col) { *dstBuf = *srcBuf; ++srcBuf; --dstBuf; } } } break; case 3: { for (row = 0; row < src->h; ++row) { srcBuf = (Uint32*)(src->pixels) + (row * src_ipr); dstBuf = (Uint32*)(dst->pixels) + row + ((dst->h - 1) * dst_ipr); for (col = 0; col < src->w; ++col) { *dstBuf = *srcBuf; ++srcBuf; dstBuf -= dst_ipr; } } } break; } /* end switch */ if (SDL_MUSTLOCK(src)) { SDL_UnlockSurface(src); } if (SDL_MUSTLOCK(dst)) { SDL_UnlockSurface(dst); } return dst; } /*! \brief Internal target surface sizing function for rotozooms with trig result return. \param width The source surface width. \param height The source surface height. \param angle The angle to rotate in degrees. \param zoomx The horizontal scaling factor. \param zoomy The vertical scaling factor. \param dstwidth The calculated width of the destination surface. \param dstheight The calculated height of the destination surface. \param canglezoom The sine of the angle adjusted by the zoom factor. \param sanglezoom The cosine of the angle adjusted by the zoom factor. */ void _rotozoomSurfaceSizeTrig(int width, int height, double angle, double zoomx, double zoomy, int *dstwidth, int *dstheight, double *canglezoom, double *sanglezoom) { double x, y, cx, cy, sx, sy; double radangle; int dstwidthhalf, dstheighthalf; /* * Determine destination width and height by rotating a centered source box */ radangle = angle * (M_PI / 180.0); *sanglezoom = sin(radangle); *canglezoom = cos(radangle); *sanglezoom *= zoomx; *canglezoom *= zoomx; x = (double)(width / 2); y = (double)(height / 2); cx = *canglezoom * x; cy = *canglezoom * y; sx = *sanglezoom * x; sy = *sanglezoom * y; dstwidthhalf = MAX((int) ceil(MAX(MAX(MAX(fabs(cx + sy), fabs(cx - sy)), fabs(-cx + sy)), fabs(-cx - sy))), 1); dstheighthalf = MAX((int) ceil(MAX(MAX(MAX(fabs(sx + cy), fabs(sx - cy)), fabs(-sx + cy)), fabs(-sx - cy))), 1); *dstwidth = 2 * dstwidthhalf; *dstheight = 2 * dstheighthalf; } /*! \brief Returns the size of the resulting target surface for a rotozoomSurfaceXY() call. \param width The source surface width. \param height The source surface height. \param angle The angle to rotate in degrees. \param zoomx The horizontal scaling factor. \param zoomy The vertical scaling factor. \param dstwidth The calculated width of the rotozoomed destination surface. \param dstheight The calculated height of the rotozoomed destination surface. */ void rotozoomSurfaceSizeXY(int width, int height, double angle, double zoomx, double zoomy, int *dstwidth, int *dstheight) { double dummy_sanglezoom, dummy_canglezoom; _rotozoomSurfaceSizeTrig(width, height, angle, zoomx, zoomy, dstwidth, dstheight, &dummy_sanglezoom, &dummy_canglezoom); } /*! \brief Returns the size of the resulting target surface for a rotozoomSurface() call. \param width The source surface width. \param height The source surface height. \param angle The angle to rotate in degrees. \param zoom The scaling factor. \param dstwidth The calculated width of the rotozoomed destination surface. \param dstheight The calculated height of the rotozoomed destination surface. */ void rotozoomSurfaceSize(int width, int height, double angle, double zoom, int *dstwidth, int *dstheight) { double dummy_sanglezoom, dummy_canglezoom; _rotozoomSurfaceSizeTrig(width, height, angle, zoom, zoom, dstwidth, dstheight, &dummy_sanglezoom, &dummy_canglezoom); } /*! \brief Rotates and zooms a surface and optional anti-aliasing. Rotates and zoomes a 32bit or 8bit 'src' surface to newly created 'dst' surface. 'angle' is the rotation in degrees and 'zoom' a scaling factor. If 'smooth' is set then the destination 32bit surface is anti-aliased. If the surface is not 8bit or 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly. \param src The surface to rotozoom. \param angle The angle to rotate in degrees. \param zoom The scaling factor. \param smooth Antialiasing flag; set to SMOOTHING_ON to enable. \return The new rotozoomed surface. */ SDL_Surface *rotozoomSurface(SDL_Surface * src, double angle, double zoom, int smooth) { return rotozoomSurfaceXY(src, angle, zoom, zoom, smooth); } /*! \brief Rotates and zooms a surface with different horizontal and vertival scaling factors and optional anti-aliasing. Rotates and zooms a 32bit or 8bit 'src' surface to newly created 'dst' surface. 'angle' is the rotation in degrees, 'zoomx and 'zoomy' scaling factors. If 'smooth' is set then the destination 32bit surface is anti-aliased. If the surface is not 8bit or 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly. \param src The surface to rotozoom. \param angle The angle to rotate in degrees. \param zoomx The horizontal scaling factor. \param zoomy The vertical scaling factor. \param smooth Antialiasing flag; set to SMOOTHING_ON to enable. \return The new rotozoomed surface. */ SDL_Surface *rotozoomSurfaceXY(SDL_Surface * src, double angle, double zoomx, double zoomy, int smooth) { SDL_Surface *rz_src; SDL_Surface *rz_dst; double zoominv; double sanglezoom, canglezoom, sanglezoominv, canglezoominv; int dstwidthhalf, dstwidth, dstheighthalf, dstheight; int is32bit; int i, src_converted; int flipx,flipy; Uint8 r,g,b; Uint32 colorkey = 0; int colorKeyAvailable = 0; /* * Sanity check */ if (src == NULL) return (NULL); if (src->flags & SDL_SRCCOLORKEY) { colorkey = _colorkey(src); SDL_GetRGB(colorkey, src->format, &r, &g, &b); colorKeyAvailable = 1; } /* * Determine if source surface is 32bit or 8bit */ is32bit = (src->format->BitsPerPixel == 32); if ((is32bit) || (src->format->BitsPerPixel == 8)) { /* * Use source surface 'as is' */ rz_src = src; src_converted = 0; } else { /* * New source surface is 32bit with a defined RGBA ordering */ rz_src = SDL_CreateRGBSurface(SDL_SWSURFACE, src->w, src->h, 32, #if SDL_BYTEORDER == SDL_LIL_ENDIAN 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000 #else 0xff000000, 0x00ff0000, 0x0000ff00, 0x000000ff #endif ); if(colorKeyAvailable) SDL_SetColorKey(src, 0, 0); SDL_BlitSurface(src, NULL, rz_src, NULL); if(colorKeyAvailable) SDL_SetColorKey(src, SDL_SRCCOLORKEY, colorkey); src_converted = 1; is32bit = 1; } /* * Sanity check zoom factor */ flipx = (zoomx<0.0); if (flipx) zoomx=-zoomx; flipy = (zoomy<0.0); if (flipy) zoomy=-zoomy; if (zoomx < VALUE_LIMIT) zoomx = VALUE_LIMIT; if (zoomy < VALUE_LIMIT) zoomy = VALUE_LIMIT; zoominv = 65536.0 / (zoomx * zoomx); /* * Check if we have a rotozoom or just a zoom */ if (fabs(angle) > VALUE_LIMIT) { /* * Angle!=0: full rotozoom */ /* * ----------------------- */ /* Determine target size */ _rotozoomSurfaceSizeTrig(rz_src->w, rz_src->h, angle, zoomx, zoomy, &dstwidth, &dstheight, &canglezoom, &sanglezoom); /* * Calculate target factors from sin/cos and zoom */ sanglezoominv = sanglezoom; canglezoominv = canglezoom; sanglezoominv *= zoominv; canglezoominv *= zoominv; /* Calculate half size */ dstwidthhalf = dstwidth / 2; dstheighthalf = dstheight / 2; /* * Alloc space to completely contain the rotated surface */ rz_dst = NULL; if (is32bit) { /* * Target surface is 32bit with source RGBA/ABGR ordering */ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 32, rz_src->format->Rmask, rz_src->format->Gmask, rz_src->format->Bmask, rz_src->format->Amask); } else { /* * Target surface is 8bit */ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 8, 0, 0, 0, 0); } /* Check target */ if (rz_dst == NULL) return NULL; /* Adjust for guard rows */ rz_dst->h = dstheight; if (colorKeyAvailable == 1){ colorkey = SDL_MapRGB(rz_dst->format, r, g, b); SDL_FillRect(rz_dst, NULL, colorkey ); } /* * Lock source surface */ if (SDL_MUSTLOCK(rz_src)) { SDL_LockSurface(rz_src); } /* * Check which kind of surface we have */ if (is32bit) { /* * Call the 32bit transformation routine to do the rotation (using alpha) */ _transformSurfaceRGBA(rz_src, rz_dst, dstwidthhalf, dstheighthalf, (int) (sanglezoominv), (int) (canglezoominv), flipx, flipy, smooth); /* * Turn on source-alpha support */ SDL_SetAlpha(rz_dst, SDL_SRCALPHA, 255); SDL_SetColorKey(rz_dst, SDL_SRCCOLORKEY | SDL_RLEACCEL, _colorkey(rz_src)); } else { /* * Copy palette and colorkey info */ for (i = 0; i < rz_src->format->palette->ncolors; i++) { rz_dst->format->palette->colors[i] = rz_src->format->palette->colors[i]; } rz_dst->format->palette->ncolors = rz_src->format->palette->ncolors; /* * Call the 8bit transformation routine to do the rotation */ transformSurfaceY(rz_src, rz_dst, dstwidthhalf, dstheighthalf, (int) (sanglezoominv), (int) (canglezoominv), flipx, flipy); SDL_SetColorKey(rz_dst, SDL_SRCCOLORKEY | SDL_RLEACCEL, _colorkey(rz_src)); } /* * Unlock source surface */ if (SDL_MUSTLOCK(rz_src)) { SDL_UnlockSurface(rz_src); } } else { /* * Angle=0: Just a zoom */ /* * -------------------- */ /* * Calculate target size */ zoomSurfaceSize(rz_src->w, rz_src->h, zoomx, zoomy, &dstwidth, &dstheight); /* * Alloc space to completely contain the zoomed surface */ rz_dst = NULL; if (is32bit) { /* * Target surface is 32bit with source RGBA/ABGR ordering */ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 32, rz_src->format->Rmask, rz_src->format->Gmask, rz_src->format->Bmask, rz_src->format->Amask); } else { /* * Target surface is 8bit */ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 8, 0, 0, 0, 0); } /* Check target */ if (rz_dst == NULL) return NULL; /* Adjust for guard rows */ rz_dst->h = dstheight; if (colorKeyAvailable == 1){ colorkey = SDL_MapRGB(rz_dst->format, r, g, b); SDL_FillRect(rz_dst, NULL, colorkey ); } /* * Lock source surface */ if (SDL_MUSTLOCK(rz_src)) { SDL_LockSurface(rz_src); } /* * Check which kind of surface we have */ if (is32bit) { /* * Call the 32bit transformation routine to do the zooming (using alpha) */ _zoomSurfaceRGBA(rz_src, rz_dst, flipx, flipy, smooth); /* * Turn on source-alpha support */ SDL_SetAlpha(rz_dst, SDL_SRCALPHA, 255); SDL_SetColorKey(rz_dst, SDL_SRCCOLORKEY | SDL_RLEACCEL, _colorkey(rz_src)); } else { /* * Copy palette and colorkey info */ for (i = 0; i < rz_src->format->palette->ncolors; i++) { rz_dst->format->palette->colors[i] = rz_src->format->palette->colors[i]; } rz_dst->format->palette->ncolors = rz_src->format->palette->ncolors; /* * Call the 8bit transformation routine to do the zooming */ _zoomSurfaceY(rz_src, rz_dst, flipx, flipy); SDL_SetColorKey(rz_dst, SDL_SRCCOLORKEY | SDL_RLEACCEL, _colorkey(rz_src)); } /* * Unlock source surface */ if (SDL_MUSTLOCK(rz_src)) { SDL_UnlockSurface(rz_src); } } /* * Cleanup temp surface */ if (src_converted) { SDL_FreeSurface(rz_src); } /* * Return destination surface */ return (rz_dst); } /*! \brief Calculates the size of the target surface for a zoomSurface() call. The minimum size of the target surface is 1. The input factors can be positive or negative. \param width The width of the source surface to zoom. \param height The height of the source surface to zoom. \param zoomx The horizontal zoom factor. \param zoomy The vertical zoom factor. \param dstwidth Pointer to an integer to store the calculated width of the zoomed target surface. \param dstheight Pointer to an integer to store the calculated height of the zoomed target surface. */ void zoomSurfaceSize(int width, int height, double zoomx, double zoomy, int *dstwidth, int *dstheight) { /* * Make zoom factors positive */ int flipx, flipy; flipx = (zoomx<0.0); if (flipx) zoomx = -zoomx; flipy = (zoomy<0.0); if (flipy) zoomy = -zoomy; /* * Sanity check zoom factors */ if (zoomx < VALUE_LIMIT) { zoomx = VALUE_LIMIT; } if (zoomy < VALUE_LIMIT) { zoomy = VALUE_LIMIT; } /* * Calculate target size */ *dstwidth = (int) floor(((double) width * zoomx) + 0.5); *dstheight = (int) floor(((double) height * zoomy) + 0.5); if (*dstwidth < 1) { *dstwidth = 1; } if (*dstheight < 1) { *dstheight = 1; } } /*! \brief Zoom a surface by independent horizontal and vertical factors with optional smoothing. Zooms a 32bit or 8bit 'src' surface to newly created 'dst' surface. 'zoomx' and 'zoomy' are scaling factors for width and height. If 'smooth' is on then the destination 32bit surface is anti-aliased. If the surface is not 8bit or 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly. If zoom factors are negative, the image is flipped on the axes. \param src The surface to zoom. \param zoomx The horizontal zoom factor. \param zoomy The vertical zoom factor. \param smooth Antialiasing flag; set to SMOOTHING_ON to enable. \return The new, zoomed surface. */ SDL_Surface *zoomSurface(SDL_Surface * src, double zoomx, double zoomy, int smooth) { SDL_Surface *rz_src; SDL_Surface *rz_dst; int dstwidth, dstheight; int is32bit; int i, src_converted; int flipx, flipy; /* * Sanity check */ if (src == NULL) return (NULL); /* * Determine if source surface is 32bit or 8bit */ is32bit = (src->format->BitsPerPixel == 32); if ((is32bit) || (src->format->BitsPerPixel == 8)) { /* * Use source surface 'as is' */ rz_src = src; src_converted = 0; } else { /* * New source surface is 32bit with a defined RGBA ordering */ rz_src = SDL_CreateRGBSurface(SDL_SWSURFACE, src->w, src->h, 32, #if SDL_BYTEORDER == SDL_LIL_ENDIAN 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000 #else 0xff000000, 0x00ff0000, 0x0000ff00, 0x000000ff #endif ); if (rz_src == NULL) { return NULL; } SDL_BlitSurface(src, NULL, rz_src, NULL); src_converted = 1; is32bit = 1; } flipx = (zoomx<0.0); if (flipx) zoomx = -zoomx; flipy = (zoomy<0.0); if (flipy) zoomy = -zoomy; /* Get size if target */ zoomSurfaceSize(rz_src->w, rz_src->h, zoomx, zoomy, &dstwidth, &dstheight); /* * Alloc space to completely contain the zoomed surface */ rz_dst = NULL; if (is32bit) { /* * Target surface is 32bit with source RGBA/ABGR ordering */ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 32, rz_src->format->Rmask, rz_src->format->Gmask, rz_src->format->Bmask, rz_src->format->Amask); } else { /* * Target surface is 8bit */ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 8, 0, 0, 0, 0); } /* Check target */ if (rz_dst == NULL) { /* * Cleanup temp surface */ if (src_converted) { SDL_FreeSurface(rz_src); } return NULL; } /* Adjust for guard rows */ rz_dst->h = dstheight; /* * Lock source surface */ if (SDL_MUSTLOCK(rz_src)) { SDL_LockSurface(rz_src); } /* * Check which kind of surface we have */ if (is32bit) { /* * Call the 32bit transformation routine to do the zooming (using alpha) */ _zoomSurfaceRGBA(rz_src, rz_dst, flipx, flipy, smooth); /* * Turn on source-alpha support */ SDL_SetAlpha(rz_dst, SDL_SRCALPHA, 255); } else { /* * Copy palette and colorkey info */ for (i = 0; i < rz_src->format->palette->ncolors; i++) { rz_dst->format->palette->colors[i] = rz_src->format->palette->colors[i]; } rz_dst->format->palette->ncolors = rz_src->format->palette->ncolors; /* * Call the 8bit transformation routine to do the zooming */ _zoomSurfaceY(rz_src, rz_dst, flipx, flipy); SDL_SetColorKey(rz_dst, SDL_SRCCOLORKEY | SDL_RLEACCEL, _colorkey(rz_src)); } /* * Unlock source surface */ if (SDL_MUSTLOCK(rz_src)) { SDL_UnlockSurface(rz_src); } /* * Cleanup temp surface */ if (src_converted) { SDL_FreeSurface(rz_src); } /* * Return destination surface */ return (rz_dst); } /*! \brief Shrink a surface by an integer ratio using averaging. Shrinks a 32bit or 8bit 'src' surface to a newly created 'dst' surface. 'factorx' and 'factory' are the shrinking ratios (i.e. 2=1/2 the size, 3=1/3 the size, etc.) The destination surface is antialiased by averaging the source box RGBA or Y information. If the surface is not 8bit or 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly. The input surface is not modified. The output surface is newly allocated. \param src The surface to shrink. \param factorx The horizontal shrinking ratio. \param factory The vertical shrinking ratio. \return The new, shrunken surface. */ /*@null@*/ SDL_Surface *shrinkSurface(SDL_Surface *src, int factorx, int factory) { int result; SDL_Surface *rz_src; SDL_Surface *rz_dst = NULL; int dstwidth, dstheight; int is32bit; int i, src_converted; int haveError = 0; /* * Sanity check */ if (src == NULL) { return (NULL); } /* * Determine if source surface is 32bit or 8bit */ is32bit = (src->format->BitsPerPixel == 32); if ((is32bit) || (src->format->BitsPerPixel == 8)) { /* * Use source surface 'as is' */ rz_src = src; src_converted = 0; } else { /* * New source surface is 32bit with a defined RGBA ordering */ rz_src = SDL_CreateRGBSurface(SDL_SWSURFACE, src->w, src->h, 32, #if SDL_BYTEORDER == SDL_LIL_ENDIAN 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000 #else 0xff000000, 0x00ff0000, 0x0000ff00, 0x000000ff #endif ); if (rz_src==NULL) { haveError = 1; goto exitShrinkSurface; } SDL_BlitSurface(src, NULL, rz_src, NULL); src_converted = 1; is32bit = 1; } /* * Lock the surface */ if (SDL_MUSTLOCK(rz_src)) { if (SDL_LockSurface(rz_src) < 0) { haveError = 1; goto exitShrinkSurface; } } /* Get size for target */ dstwidth=rz_src->w/factorx; while (dstwidth*factorx>rz_src->w) { dstwidth--; } dstheight=rz_src->h/factory; while (dstheight*factory>rz_src->h) { dstheight--; } /* * Alloc space to completely contain the shrunken surface * (with added guard rows) */ if (is32bit==1) { /* * Target surface is 32bit with source RGBA/ABGR ordering */ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 32, rz_src->format->Rmask, rz_src->format->Gmask, rz_src->format->Bmask, rz_src->format->Amask); } else { /* * Target surface is 8bit */ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 8, 0, 0, 0, 0); } /* Check target */ if (rz_dst == NULL) { haveError = 1; goto exitShrinkSurface; } /* Adjust for guard rows */ rz_dst->h = dstheight; /* * Check which kind of surface we have */ if (is32bit==1) { /* * Call the 32bit transformation routine to do the shrinking (using alpha) */ result = _shrinkSurfaceRGBA(rz_src, rz_dst, factorx, factory); if ((result!=0) || (rz_dst==NULL)) { haveError = 1; goto exitShrinkSurface; } /* * Turn on source-alpha support */ result = SDL_SetAlpha(rz_dst, SDL_SRCALPHA, 255); if (result!=0) { haveError = 1; goto exitShrinkSurface; } } else { /* * Copy palette and colorkey info */ for (i = 0; i < rz_src->format->palette->ncolors; i++) { rz_dst->format->palette->colors[i] = rz_src->format->palette->colors[i]; } rz_dst->format->palette->ncolors = rz_src->format->palette->ncolors; /* * Call the 8bit transformation routine to do the shrinking */ result = _shrinkSurfaceY(rz_src, rz_dst, factorx, factory); if (result!=0) { haveError = 1; goto exitShrinkSurface; } /* * Set colorkey on target */ result = SDL_SetColorKey(rz_dst, SDL_SRCCOLORKEY | SDL_RLEACCEL, _colorkey(rz_src)); if (result!=0) { haveError = 1; goto exitShrinkSurface; } } exitShrinkSurface: if (rz_src!=NULL) { /* * Unlock source surface */ if (SDL_MUSTLOCK(rz_src)) { SDL_UnlockSurface(rz_src); } /* * Cleanup temp surface */ if (src_converted==1) { SDL_FreeSurface(rz_src); } } /* Check error state; maybe need to cleanup destination */ if (haveError==1) { if (rz_dst!=NULL) { SDL_FreeSurface(rz_dst); } rz_dst=NULL; } /* * Return destination surface */ return (rz_dst); } #endif instead-1.9.1/src/sdl-instead/instead.h000644 001751 001751 00000001351 12161555571 020261 0ustar00peterpeter000000 000000 #ifndef __INSTEAD_H__ #define __INSTEAD_H__ #define INSTEAD_NIL 0 #define INSTEAD_NUM 1 #define INSTEAD_STR 2 #define INSTEAD_BOOL 3 struct instead_args { int type; const char *val; }; extern int instead_init(const char *path); extern int instead_load(char *game); extern void instead_done(void); extern char *instead_cmd(char *s); extern int instead_function(char *s, struct instead_args *args); extern int instead_eval(char *s); extern int instead_clear(void); extern char *instead_retval(int n); extern int instead_bretval(int n); extern int instead_iretval(int n); extern int instead_lang(void); char *fromgame(const char *s); extern int instead_encode(const char *s, const char *d); extern int instead_busy(void); #endif instead-1.9.1/src/sdl-instead/Makefile000644 001751 001751 00000002322 12161555571 020120 0ustar00peterpeter000000 000000 include ../../Rules.make include ../../config.make CFLAGS += $(SDL_CFLAGS) $(LUA_CFLAGS) $(ZLIB_CFLAGS) $(EXTRA_CFLAGS) -DLANG_PATH=\"${LANGPATH}/\" -DSTEAD_PATH=\"${STEADPATH}/\" -DGAMES_PATH=\"${GAMESPATH}/\" -DTHEMES_PATH=\"${THEMESPATH}/\" -DVERSION=\"$(VERSION)\" -DICON_PATH=\"${ICONPATH}/\" LDFLAGS += $(SDL_LFLAGS) $(LUA_LFLAGS) $(ZLIB_LFLAGS) $(EXTRA_LDFLAGS) SRC := graphics.c input.c game.c main.c instead.c sound.c SDL_rotozoom.c SDL_anigif.c SDL_gfxBlitFunc.c config.c themes.c menu.c util.c cache.c unzip.c ioapi.c unpack.c lfs.c idf.c $(PLATFORM) H := cache.h config.h externals.h game.h graphics.h input.h instead.h internals.h ioapi.h iowin32.h list.h \ menu.h SDL_rotozoom.h SDL_anigif.h SDL_gfxBlitFunc.h sound.h themes.h unzip.h util.h OBJ := $(patsubst %.c, %.o, $(SRC)) $(ADDOBJ) all: sdl-instead$(EXE) $(OBJ): %.o : %.c $(H) $(CC) -c $(<) $(I) $(CFLAGS) $(CPPFLAGS) sdl-instead$(EXE): $(OBJ) $(RESOURCES) $(CC) $(CFLAGS) $(^) $(LDFLAGS) -o $(@) install: $(INSTALLD) $(BIN) $(INSTALLB) sdl-instead$(EXE) $(BIN)/sdl-instead$(EXE) $(LN) sdl-instead$(EXE) $(BIN)/instead$(EXE) uninstall: $(RM) $(BIN)/sdl-instead$(EXE) $(RM) $(BIN)/instead$(EXE) clean: $(RM) -f *.o sdl-instead$(EXE) instead-1.9.1/src/sdl-instead/resources.rc000644 001751 001751 00000000070 12161555571 021016 0ustar00peterpeter000000 000000 MAINICON ICON DISCARDABLE "../../icon/sdl_instead.ico" instead-1.9.1/src/sdl-instead/sound.h000644 001751 001751 00000001520 12161555571 017760 0ustar00peterpeter000000 000000 #ifndef __SOUND_H__ #define __SOUND_H__ typedef void* wav_t; typedef struct _mus_t *mus_t; #define DEFAULT_CHUNKSIZE 1024 //extern mus_t snd_load_mus(const char *path); extern void snd_free_mus(mus_t mus); extern int snd_init(int hz); extern int snd_hz(void); extern int snd_play(wav_t chunk, int channel, int loop); extern void snd_halt_chan(int han, int ms); extern void snd_free_wav(wav_t chunk); extern wav_t snd_load_wav(const char *fname); extern int snd_play_mus(char *music, int ms, int loop); extern int snd_playing_mus(); extern void snd_stop_mus(int ms); extern int snd_volume_mus(int vol); extern void snd_done(void); extern int snd_vol_from_pcn(int v); extern int snd_vol_to_pcn(int v); extern int snd_playing(int channel); extern void snd_pause(int on); extern int snd_panning(int channel, int left, int right); #endif instead-1.9.1/src/sdl-instead/input.c000644 001751 001751 00000014532 12161555571 017771 0ustar00peterpeter000000 000000 #include "externals.h" #include "internals.h" #include static int m_focus = 0; static int m_minimized = 0; #if SDL_VERSION_ATLEAST(2,0,0) extern SDL_Window *SDL_VideoWindow; #define SDL_APPMOUSEFOCUS 1 #define SDL_APPACTIVE 2 #define SDL_APPINPUTFOCUS 4 static Uint8 SDL_GetAppState(void) { Uint8 state = 0; Uint32 flags = 0; flags = SDL_GetWindowFlags(SDL_VideoWindow); if ((flags & SDL_WINDOW_SHOWN) && !(flags & SDL_WINDOW_MINIMIZED)) { state |= SDL_APPACTIVE; } if (flags & SDL_WINDOW_INPUT_FOCUS) { state |= SDL_APPINPUTFOCUS; } if (flags & SDL_WINDOW_MOUSE_FOCUS) { state |= SDL_APPMOUSEFOCUS; } return state; } #endif int minimized(void) { if (nopause_sw) return 0; return m_minimized; } int mouse_focus(void) { return m_focus; } int mouse_cursor(int on) { if (on) SDL_ShowCursor(SDL_ENABLE); else SDL_ShowCursor(SDL_DISABLE); return 0; } void push_user_event(void (*p) (void*), void *data) { SDL_Event event; SDL_UserEvent uevent; memset(&event, 0, sizeof(event)); memset(&uevent, 0, sizeof(uevent)); uevent.type = SDL_USEREVENT; uevent.code = 0; event.type = SDL_USEREVENT; uevent.data1 = p; uevent.data2 = data; event.user = uevent; SDL_PushEvent(&event); } int input_init(void) { #if SDL_VERSION_ATLEAST(2,0,0) // SDL_EnableKeyRepeat(500, 30); // TODO ? #else SDL_EnableKeyRepeat(500, 30); #endif m_focus = !!(SDL_GetAppState() & SDL_APPMOUSEFOCUS); return 0; } void input_clear(void) { SDL_Event event; while (SDL_PollEvent(&event)); return; } void input_uevents(void) { SDL_Event peek; #if SDL_VERSION_ATLEAST(1,3,0) while (SDL_PeepEvents(&peek, 1, SDL_GETEVENT, SDL_USEREVENT, SDL_USEREVENT) > 0) { #else while (SDL_PeepEvents(&peek, 1, SDL_GETEVENT, SDL_EVENTMASK (SDL_USEREVENT)) > 0) { #endif void (*p) (void*) = peek.user.data1; p(peek.user.data2); } } #if SDL_VERSION_ATLEAST(1,3,0) static void key_compat(struct inp_event *inp) { if (!strcmp(inp->sym, "pageup")) strcpy(inp->sym, "page up"); else if (!strcmp(inp->sym, "pagedown")) strcpy(inp->sym, "page down"); } #endif int input(struct inp_event *inp, int wait) { int rc; SDL_Event event; SDL_Event peek; memset(&event, 0, sizeof(event)); memset(&peek, 0, sizeof(peek)); if (wait) { rc = SDL_WaitEvent(&event); } else rc = SDL_PollEvent(&event); if (!rc) return 0; inp->sym[0] = 0; inp->type = 0; inp->count = 1; switch(event.type){ #if SDL_VERSION_ATLEAST(2,0,0) case SDL_WINDOWEVENT: switch (event.window.event) { // case SDL_WINDOWEVENT_SHOWN: case SDL_WINDOWEVENT_EXPOSED: gfx_flip(); gfx_commit(); break; case SDL_WINDOWEVENT_MINIMIZED: case SDL_WINDOWEVENT_RESTORED: m_minimized = (event.window.event == SDL_WINDOWEVENT_MINIMIZED); snd_pause(!nopause_sw && m_minimized); break; case SDL_WINDOWEVENT_ENTER: case SDL_WINDOWEVENT_FOCUS_GAINED: m_focus = 1; if (opt_fs) mouse_cursor(0); break; case SDL_WINDOWEVENT_LEAVE: m_focus = 0; if (opt_fs) mouse_cursor(1); /* is it hack?*/ break; default: break; } if (SDL_PeepEvents(&peek, 1, SDL_PEEKEVENT, SDL_WINDOWEVENT, SDL_WINDOWEVENT) > 0) return AGAIN; /* to avoid flickering */ return 0; #else case SDL_ACTIVEEVENT: if (event.active.state & SDL_APPACTIVE) { m_minimized = !event.active.gain; snd_pause(!nopause_sw && m_minimized); } if (event.active.state & (SDL_APPMOUSEFOCUS | SDL_APPINPUTFOCUS)) { if (event.active.gain) { m_focus = 1; if (opt_fs) mouse_cursor(0); } else if (event.active.state & SDL_APPMOUSEFOCUS) { m_focus = 0; if (opt_fs) mouse_cursor(1); /* is it hack?*/ } } #if SDL_VERSION_ATLEAST(1,3,0) if (SDL_PeepEvents(&peek, 1, SDL_PEEKEVENT, SDL_ACTIVEEVENT, SDL_ACTIVEEVENT) > 0) #else if (SDL_PeepEvents(&peek, 1, SDL_PEEKEVENT, SDL_EVENTMASK(SDL_ACTIVEEVENT)) > 0) #endif return AGAIN; /* to avoid flickering */ return 0; #endif case SDL_USEREVENT: { void (*p) (void*) = event.user.data1; p(event.user.data2); return AGAIN; } case SDL_QUIT: game_running = 0; return -1; case SDL_KEYDOWN: //A key has been pressed inp->type = KEY_DOWN; inp->code = event.key.keysym.scancode; strncpy(inp->sym, SDL_GetKeyName(event.key.keysym.sym), sizeof(inp->sym)); inp->sym[sizeof(inp->sym) - 1] = 0; tolow(inp->sym); #if SDL_VERSION_ATLEAST(1,3,0) key_compat(inp); #endif break; case SDL_KEYUP: inp->type = KEY_UP; inp->code = event.key.keysym.scancode; strncpy(inp->sym, SDL_GetKeyName(event.key.keysym.sym), sizeof(inp->sym)); inp->sym[sizeof(inp->sym) - 1] = 0; tolow(inp->sym); #if SDL_VERSION_ATLEAST(1,3,0) key_compat(inp); #endif break; case SDL_MOUSEMOTION: m_focus = 1; /* ahhh */ inp->type = MOUSE_MOTION; inp->x = event.button.x; inp->y = event.button.y; #if SDL_VERSION_ATLEAST(1,3,0) while (SDL_PeepEvents(&peek, 1, SDL_GETEVENT, SDL_MOUSEMOTION, SDL_MOUSEMOTION) > 0) { #else while (SDL_PeepEvents(&peek, 1, SDL_GETEVENT, SDL_EVENTMASK (SDL_MOUSEMOTION)) > 0) { #endif inp->x = peek.button.x; inp->y = peek.button.y; } break; case SDL_MOUSEBUTTONUP: inp->type = MOUSE_UP; inp->x = event.button.x; inp->y = event.button.y; inp->code = event.button.button; if (event.button.button == 4) inp->type = 0; else if (event.button.button == 5) inp->type = 0; break; #if SDL_VERSION_ATLEAST(2,0,0) case SDL_MOUSEWHEEL: inp->type = (event.wheel.y > 0) ? MOUSE_WHEEL_UP : MOUSE_WHEEL_DOWN; while (SDL_PeepEvents(&peek, 1, SDL_GETEVENT, SDL_MOUSEWHEEL, SDL_MOUSEWHEEL) > 0) { if (!((event.wheel.y > 0 && inp->type == MOUSE_WHEEL_UP) || (event.wheel.y < 0 && inp->type == MOUSE_WHEEL_DOWN))) break; inp->count ++; } break; #endif case SDL_MOUSEBUTTONDOWN: m_focus = 1; /* ahhh */ inp->type = MOUSE_DOWN; inp->x = event.button.x; inp->y = event.button.y; inp->code = event.button.button; if (event.button.button == 4) inp->type = MOUSE_WHEEL_UP; else if (event.button.button == 5) inp->type = MOUSE_WHEEL_DOWN; #if SDL_VERSION_ATLEAST(1,3,0) while (SDL_PeepEvents(&peek, 1, SDL_GETEVENT, SDL_MOUSEBUTTONDOWN, SDL_MOUSEBUTTONDOWN) > 0) { #else while (SDL_PeepEvents(&peek, 1, SDL_GETEVENT, SDL_EVENTMASK (SDL_MOUSEBUTTONDOWN)) > 0) { #endif if (!((event.button.button == 4 && inp->type == MOUSE_WHEEL_UP) || (event.button.button == 5 && inp->type == MOUSE_WHEEL_DOWN))) break; inp->count ++; } break; default: break; } return 1; } instead-1.9.1/src/sdl-instead/SDL_rotozoom.h000644 001751 001751 00000005750 12161555571 021233 0ustar00peterpeter000000 000000 #include #if SDL_VERSION_ATLEAST(2,0,0) #include "SDL2_rotozoom.h" #else /* SDL_rotozoom.c: rotozoomer, zoomer and shrinker for 32bit or 8bit surfaces Copyright (C) 2001-2012 Andreas Schiffler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Andreas Schiffler -- aschiffler at ferzkopp dot net */ #ifndef _SDL_rotozoom_h #define _SDL_rotozoom_h #include /* Set up for C function definitions, even when using C++ */ #ifdef __cplusplus extern "C" { #endif #ifndef M_PI #define M_PI 3.141592654 #endif #include "SDL.h" /* ---- Defines */ /*! \brief Disable anti-aliasing (no smoothing). */ #define SMOOTHING_OFF 0 /*! \brief Enable anti-aliasing (smoothing). */ #define SMOOTHING_ON 1 /* ---- Function Prototypes */ #ifdef _MSC_VER # if defined(DLL_EXPORT) && !defined(LIBSDL_GFX_DLL_IMPORT) # define SDL_ROTOZOOM_SCOPE __declspec(dllexport) # else # ifdef LIBSDL_GFX_DLL_IMPORT # define SDL_ROTOZOOM_SCOPE __declspec(dllimport) # endif # endif #endif #ifndef SDL_ROTOZOOM_SCOPE # define SDL_ROTOZOOM_SCOPE extern #endif /* Rotozoom functions */ SDL_ROTOZOOM_SCOPE SDL_Surface *rotozoomSurface(SDL_Surface * src, double angle, double zoom, int smooth); SDL_ROTOZOOM_SCOPE SDL_Surface *rotozoomSurfaceXY (SDL_Surface * src, double angle, double zoomx, double zoomy, int smooth); SDL_ROTOZOOM_SCOPE void rotozoomSurfaceSize(int width, int height, double angle, double zoom, int *dstwidth, int *dstheight); SDL_ROTOZOOM_SCOPE void rotozoomSurfaceSizeXY (int width, int height, double angle, double zoomx, double zoomy, int *dstwidth, int *dstheight); /* Zooming functions */ SDL_ROTOZOOM_SCOPE SDL_Surface *zoomSurface(SDL_Surface * src, double zoomx, double zoomy, int smooth); SDL_ROTOZOOM_SCOPE void zoomSurfaceSize(int width, int height, double zoomx, double zoomy, int *dstwidth, int *dstheight); /* Shrinking functions */ SDL_ROTOZOOM_SCOPE SDL_Surface *shrinkSurface(SDL_Surface * src, int factorx, int factory); /* Specialized rotation functions */ SDL_ROTOZOOM_SCOPE SDL_Surface* rotateSurface90Degrees(SDL_Surface* src, int numClockwiseTurns); /* Ends C function definitions when using C++ */ #ifdef __cplusplus } #endif #endif /* _SDL_rotozoom_h */ #endif instead-1.9.1/src/sdl-instead/symbian.cpp000644 001751 001751 00000004615 12161555571 020635 0ustar00peterpeter000000 000000 #include // For single function calls #include #include #include #include #include #include #include #include #include #include #include FILE* mystdout = NULL; FILE* mystderr = NULL; char* desc2str(const TDesC& aDescriptor) { static char fname[256]; TInt length = aDescriptor.Length(); HBufC8* buffer = HBufC8::NewLC(length); buffer->Des().Copy(aDescriptor); char* str = fname; Mem::Copy(str, buffer->Ptr(), length); str[length] = '\0'; CleanupStack::PopAndDestroy(buffer); return str; } extern "C" { void s60delay(int u) { if (u > 0) { User::AfterHighRes(u); } } char s60_data[] = "E:\\data\\instead"; #ifdef _USE_BROWSE char *get_file_name(void) { TFileName FileName; if (!AknCommonDialogs::RunSelectDlgLD(FileName, 0)) return NULL; return desc2str(FileName); } #endif } class CSymbianApp : public CSDLApp { public: CSymbianApp(); ~CSymbianApp(); void PreInitializeAppL() { mystdout = fopen("c:\\data\\instead\\stdout.txt","w"); mystderr = fopen("c:\\data\\instead\\stderr.txt","w"); *stdout = *mystdout; *stderr = *mystderr; s60_data[0] = BitmapStoreName()[0]; fprintf(stderr,"Using data from: %s\n", s60_data); } TUid AppDllUid() const; }; #ifdef EPOC_AS_APP // this function is called automatically by the SymbianOS to deliver the new CApaApplication object #if !defined (UIQ3) && !defined (S60V3) EXPORT_C #endif CApaApplication* NewApplication() { return new CSymbianApp; } #if defined (UIQ3) || defined (S60V3) #include // E32Main() contains the program's start up code, the entry point for an EXE. GLDEF_C TInt E32Main() { return EikStart::RunApplication(NewApplication); } #endif #endif // EPOC_AS_APP #if !defined (UIQ3) && !defined (S60V3) GLDEF_C TInt E32Dll(TDllReason) { return KErrNone; } #endif CSymbianApp::CSymbianApp() { } CSymbianApp::~CSymbianApp() { } #if defined (UIQ3) #include /** * Returns the resource id to be used to declare the views supported by this UIQ3 app * @return TInt, resource id */ TInt CSymbianApp::ViewResourceId() { return R_SDL_VIEW_UI_CONFIGURATIONS; } #endif /** * Responsible for returning the unique UID of this application * @return unique UID for this application in a TUid **/ TUid CSymbianApp::AppDllUid() const { return TUid::Uid(0xA0020410); } instead-1.9.1/src/sdl-instead/cache.c000644 001751 001751 00000014047 12161555571 017676 0ustar00peterpeter000000 000000 #include #include #include "list.h" #include "cache.h" extern unsigned long hash_string(const char *str); #define HASH_SIZE 511 typedef struct { struct list_head list; struct list_head unused; int auto_grow; int size; int max_size; int used; cache_free_fn free_fn; struct list_head hash[HASH_SIZE]; struct list_head vhash[HASH_SIZE]; } __cache_t; typedef struct { struct list_head list; struct list_head *hash; struct list_head *vhash; char *name; void *data; int used; } __cache_e_t; typedef struct { struct list_head list; struct list_head *data; } __hash_item_t; /* #define GOLDEN_RATIO_PRIME_32 0x9e370001UL */ #include static unsigned long hash_long32(unsigned long a) { a = (a+0x7ed55d16) + (a<<12); a = (a^0xc761c23c) ^ (a>>19); a = (a+0x165667b1) + (a<<5); a = (a+0xd3a2646c) ^ (a<<9); a = (a+0xfd7046c5) + (a<<3); a = (a^0xb55a4f09) ^ (a>>16); return a; } static unsigned long hash_long64(unsigned long key) { key = (~key) + (key << 21); // key = (key << 21) - key - 1; key = key ^ (key >> 24); key = (key + (key << 3)) + (key << 8); // key * 265 key = key ^ (key >> 14); key = (key + (key << 2)) + (key << 4); // key * 21 key = key ^ (key >> 28); key = key + (key << 31); return key; } unsigned long hash_addr(void *p) { if (sizeof(long) == 8) return hash_long64((unsigned long)p); return hash_long32((unsigned long)p); } unsigned long hash_string(const char *str) { unsigned long hash = 0; int c; while ((c = *str++)) hash = c + (hash << 6) + (hash << 16) - hash; return hash; } cache_t cache_init(int size, cache_free_fn free_fn) { int i = 0; __cache_t *c = malloc(sizeof(__cache_t)); if (!c) return NULL; INIT_LIST_HEAD(&c->list); INIT_LIST_HEAD(&c->unused); c->auto_grow = 0; c->size = 0; c->used = 0; if (!size) c->auto_grow = 1; c->max_size = size; c->free_fn = free_fn; for (i = 0; i < HASH_SIZE; i++) { INIT_LIST_HEAD(&c->hash[i]); INIT_LIST_HEAD(&c->vhash[i]); } return (cache_t)c; } static void cache_e_free(cache_t cache, __cache_e_t *cc) { __cache_t *c = cache; if (!c) return; list_del(cc->hash); list_del(cc->vhash); list_del(&cc->list); if (c->free_fn && !cc->used) { c->free_fn(cc->data); } free(cc->name); free(cc->hash); free(cc->vhash); free(cc); } void cache_zap(cache_t cache) { __cache_t *c = cache; if (!c) return; while (!list_empty(&c->list)) cache_e_free(cache, (__cache_e_t *)(c->list.next)); while (!list_empty(&c->unused)) cache_e_free(cache, (__cache_e_t *)(c->unused.next)); c->size = 0; c->used = 0; } void cache_free(cache_t cache) { if (!cache) return; cache_zap(cache); free(cache); } static __cache_e_t *_cache_lookup(cache_t cache, const char *name) { struct list_head *pos; struct list_head *list; __cache_t *c = cache; __cache_e_t *cc; if (!c || !name) return NULL; list = &c->hash[hash_string(name) % HASH_SIZE]; list_for_each(pos, list) { cc = (__cache_e_t*)((__hash_item_t*)pos)->data; if (!strcmp(cc->name, name)) return cc; } return NULL; } static __cache_e_t *cache_data(cache_t cache, void *p) { struct list_head *pos; struct list_head *list; __cache_t *c = cache; __cache_e_t *cc; if (!c || !p) return NULL; list = &c->vhash[hash_addr(p) % HASH_SIZE]; list_for_each(pos, list) { cc = (__cache_e_t*)((__hash_item_t*)pos)->data; if (p == cc->data) return cc; } return NULL; } int cache_forget(cache_t cache, void *p) { __cache_t *c = cache; __cache_e_t *cc = cache_data(cache, p); // if (cc) // fprintf(stderr, "Forget %p at %d\n", p, cc->used); if (cc && cc->used) { cc->used --; if (!cc->used) { ((__cache_t*)cache)->used --; list_move_tail(&cc->list, &c->unused); } return 0; } return -1; } void *cache_get(cache_t cache, const char *name) { __cache_e_t *cc; __cache_t *c = cache; if (!c || !name) return NULL; cc = _cache_lookup(cache, name); if (!cc) return NULL; cc->used ++; /* need again! */ if (cc->used == 1) ((__cache_t*)cache)->used ++; list_move(&cc->list, &c->list); /* first place */ // printf("cache_get %s:%p %d\n", name, cc->data, cc->used); return cc->data; } void *cache_lookup(cache_t cache, const char *name) { __cache_e_t *cc; __cache_t *c = cache; if (!c || !name) return NULL; cc = _cache_lookup(cache, name); if (!cc) return NULL; return cc->data; } int cache_have(cache_t cache, void *p) { __cache_e_t *cc; __cache_t *c = cache; if (!c || !p) return -1; cc = cache_data(cache, p); if (!cc) return -1; return 0; } static void __cache_shrink(__cache_t *c) { while (c->size && c->size > c->max_size && !list_empty(&c->unused)) { __cache_e_t *cc = (__cache_e_t *)(c->unused.next); c->size --; cache_e_free(c, cc); } // fprintf(stderr,"%d/%d\n", c->size, c->used); } int cache_add(cache_t cache, const char *name, void *p) { __cache_e_t *cc; __hash_item_t *hh; __hash_item_t *vh; __cache_t *c = cache; struct list_head *list; if (!c || !name) return -1; cc = _cache_lookup(cache, name); if (cc) return 0; cc = malloc(sizeof(__cache_e_t)); if (!cc) return -1; hh = malloc(sizeof(__hash_item_t)); if (!hh) { free(cc); return -1; } vh = malloc(sizeof(__hash_item_t)); if (!vh) { free(hh); free(cc); return -1; } cc->name = strdup(name); if (!cc->name) { free(vh); free(hh); free(cc); return -1; } cc->data = p; cc->used = 1; cc->hash = (struct list_head*) hh; cc->vhash = (struct list_head*) vh; list_add((struct list_head*)cc, &c->list); list = &c->hash[hash_string(name) % HASH_SIZE]; hh->data = (struct list_head*)cc; list_add((struct list_head*)hh, list); list = &c->vhash[hash_addr(p) % HASH_SIZE]; vh->data = (struct list_head*)cc; list_add((struct list_head*)vh, list); c->size ++; c->used ++; if (c->auto_grow && c->used > c->max_size) c->max_size = c->used; // printf("cache_add %s:%p %d\n", name, cc->data, cc->used); // __cache_shrink(c); return 0; } void cache_shrink(cache_t cache) { __cache_t *c = cache; if (c->auto_grow && c->max_size > 2*c->used) c->max_size = c->used + c->used / 2; __cache_shrink(c); // printf("size: %d:%d:%d\n", c->used, c->size, c->max_size); } instead-1.9.1/src/sdl-instead/input.h000644 001751 001751 00000001111 12161555571 017763 0ustar00peterpeter000000 000000 #ifndef __INPUT_H__ #define __INPUT_H__ #define KEY_DOWN 1 #define KEY_UP 2 #define MOUSE_DOWN 3 #define MOUSE_UP 4 #define MOUSE_WHEEL_UP 5 #define MOUSE_WHEEL_DOWN 6 #define MOUSE_MOTION 7 #define USER_EVENT 8 #define AGAIN 2 struct inp_event { int type; int code; char sym[64]; int x; int y; int count; }; int input(struct inp_event *ev, int wait); int input_init(void); void input_clear(void); void input_uevents(void); void push_user_event(void (*p) (void*), void *data); int mouse_focus(void); extern int minimized(void); extern int mouse_cursor(int on); #endif instead-1.9.1/src/sdl-instead/menu.c000644 001751 001751 00000055532 12161555571 017603 0ustar00peterpeter000000 000000 #include "externals.h" #include "internals.h" static int restart_needed = 0; static int games_menu_from = 0; static int themes_menu_from = 0; static int cur_lang = 0; int cur_menu = menu_main; char *UNKNOWN_ERROR = NULL; char *ERROR_MENU = NULL; char *WARNING_MENU = NULL; char *SAVE_SLOT_EMPTY = NULL; char *SELECT_LOAD_MENU = NULL; char *AUTOSAVE_SLOT = NULL; char *BROKEN_SLOT = NULL; char *SELECT_SAVE_MENU = NULL; char *MAIN_MENU = NULL; char *ABOUT_MENU = NULL; char *BACK_MENU = NULL; char *SETTINGS_SND_MENU = NULL; char *SETTINGS_GFX_MENU = NULL; char *SETTINGS_OTH_MENU = NULL; char *CUSTOM_THEME_MENU = NULL; char *OWN_THEME_MENU = NULL; char *WAIT_MENU = NULL; char *SELECT_GAME_MENU = NULL; char *SELECT_THEME_MENU = NULL; char *SAVED_MENU = NULL; char *NOGAMES_MENU = NULL; char *NOTHEMES_MENU = NULL; char *BROWSE_MENU = NULL; char *QUIT_MENU = NULL; char *REMOVE_MENU = NULL; char *ON = NULL; char *OFF = NULL; char *KBD_MODE_LINKS = NULL; char *KBD_MODE_SMART = NULL; char *KBD_MODE_SCROLL = NULL; char *CANCEL_MENU = NULL; char *FROM_THEME = NULL; char *DISABLED_SAVE_MENU = NULL; static char menu_buff[8192]; static char *slot_name(const char *path) { struct stat st; char *l; if (stat(path, &st)) return NULL; l = lookup_tag(path, "Name", "--"); if (l) { if (!is_empty(l)) { int y; char *m; static char *months[] = {/* to work on every locale ;)*/ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", }; struct tm *tm; time_t t; char *s = fromgame(l); free(l); if (!s) return s; time(&t); tm = localtime(&t); y = tm->tm_year; tm = localtime(&st.st_mtime); l = malloc(strlen(s) + 64); if (!l) return s; if (tm->tm_mon >=0 && tm->tm_mon < 12) m = months[tm->tm_mon]; else m = "?"; if (tm->tm_year == y) snprintf(l, 64, "%02d %s %02d:%02d - ", tm->tm_mday, m, tm->tm_hour, tm->tm_min); else { if (tm->tm_year < 1900) tm->tm_year += 1900; snprintf(l, 64, "%02d %s %02d:%02d %04d - ", tm->tm_mday, m, tm->tm_hour, tm->tm_min, tm->tm_year); } strcat(l, s); free(s); return l; } free(l); } l = ctime(&st.st_mtime); if (!l) return NULL; l[strcspn(l,"\n")] = 0; return strdup(l); } static void load_menu(void) { int i; *menu_buff = 0; /* if (!game_saves_enabled()) { strcat(menu_buff, DISABLED_SAVE_MENU); strcat(menu_buff, CANCEL_MENU); return; } */ strcpy(menu_buff, SELECT_LOAD_MENU); for (i = 0; i < MAX_SAVE_SLOTS; i ++) { char tmp[PATH_MAX]; char *s = game_save_path(0, i); if (!s || access(s, R_OK)) { if (!i) continue; snprintf(tmp, sizeof(tmp), "%d - %s\n", i, SAVE_SLOT_EMPTY); } else { char *name; if (!i) name = strdup(AUTOSAVE_SLOT); else name = slot_name(s); if (!name) snprintf(tmp, sizeof(tmp), "%d - %s\n", i, BROKEN_SLOT); else { snprintf(tmp, sizeof(tmp), "%d - %s\n", i, i, name); free(name); } } strcat(menu_buff, tmp); } strcat(menu_buff,"\n"); strcat(menu_buff, CANCEL_MENU); } static void save_menu(void) { int i; *menu_buff = 0; if (!game_saves_enabled()) { strcat(menu_buff, DISABLED_SAVE_MENU); strcat(menu_buff, CANCEL_MENU); return; } strcpy(menu_buff, SELECT_SAVE_MENU); for (i = 1; i < MAX_SAVE_SLOTS; i ++) { char tmp[PATH_MAX]; char *s = game_save_path(0, i); if (!s || access(s, R_OK)) snprintf(tmp, sizeof(tmp), "%d - %s\n", i, i, SAVE_SLOT_EMPTY); else { char *name; if (!i) name = strdup(AUTOSAVE_SLOT); else name = slot_name(s); if (!name) snprintf(tmp, sizeof(tmp), "%d - %s\n", i, i, BROKEN_SLOT); else { snprintf(tmp, sizeof(tmp), "%d - %s\n", i, i, name); free(name); } } strcat(menu_buff, tmp); } strcat(menu_buff,"\n"); strcat(menu_buff, CANCEL_MENU); } static int pages_menu(char *res, int nr, int max, const char *menu, const char *append) { static char buff[256]; int k = MENU_PER_PAGER; int i = nr - MENU_PER_PAGER / 2; if (i < 0) i = 0; else if (max - i < MENU_PER_PAGER) i = max - MENU_PER_PAGER; if (i < 0) i = 0; if (nr) sprintf(buff, "<< ", menu); else sprintf(buff, "<< "); strcat(res, buff); for (; i < max && k-- ; i ++) { if (i != nr) sprintf(buff, "[%d] ", menu, i, i + 1); else sprintf(buff, "[%d] ", i + 1); strcat(res, buff); } if ((nr + 1) != max) sprintf(buff, ">>", menu); else sprintf(buff, ">>"); strcat(res, buff); strcat(res, append); return 0; } static void games_menu(void) { int i, n; #ifdef _USE_BROWSE int append_browse = 0; #endif char tmp[PATH_MAX]; #ifdef _USE_BROWSE snprintf(tmp, sizeof(tmp), " %s\n", BROWSE_MENU); #else snprintf(tmp, sizeof(tmp), "\n"); #endif strcpy(menu_buff, SELECT_GAME_MENU); if ((games_nr - 1) / MENU_GAMES_MAX) pages_menu(menu_buff, games_menu_from / MENU_GAMES_MAX, (games_nr - 1) / MENU_GAMES_MAX + 1, "games", tmp); #ifdef _USE_BROWSE else append_browse = 1; #endif for (i = games_menu_from, n = 0; i < games_nr && n < MENU_GAMES_MAX; i ++) { if (!games[i].name[0]) /* empty */ continue; if (curgame_dir && !strcmp(games[i].dir, curgame_dir)) snprintf(tmp, sizeof(tmp), "%s", games[i].name); else snprintf(tmp, sizeof(tmp), "%s", games[i].dir, games[i].name); if (strncmp(GAMES_PATH, games[i].path, strlen(GAMES_PATH)) && !access(games[i].path, W_OK)) { snprintf(tmp + strlen(tmp), sizeof(tmp), " [X]\n", i); } else strcat(tmp, "\n"); strcat(menu_buff, tmp); n ++; } for(;n < MENU_GAMES_MAX && games_nr > MENU_GAMES_MAX; n++) /* align h */ strcat(menu_buff, "\n"); #ifdef _USE_BROWSE if (append_browse) { snprintf(tmp, sizeof(tmp), "%s\n", BROWSE_MENU); strcat(menu_buff, tmp); } #endif if (!games_nr) { sprintf(menu_buff, NOGAMES_MENU, GAMES_PATH); #ifdef _USE_BROWSE strcat(menu_buff,"\n"); snprintf(tmp, sizeof(tmp), "%s\n", BROWSE_MENU); strcat(menu_buff, tmp); #endif } strcat(menu_buff,"\n"); strcat(menu_buff, BACK_MENU); } int games_menu_maxw(void) { int i = 0; int oldm = games_menu_from; int maxw = 0; for (i = 0; i < games_nr; i += MENU_GAMES_MAX) { int w; games_menu_from = i; games_menu(); game_menu_box_wh(menu_buff, &w, NULL); if (w > maxw) maxw = w; } games_menu_from = oldm; return maxw; } static void themes_menu(void) { int i, n; strcpy(menu_buff, SELECT_THEME_MENU); if ((themes_nr - 1) / MENU_THEMES_MAX) pages_menu(menu_buff, themes_menu_from / MENU_THEMES_MAX, (themes_nr - 1) / MENU_THEMES_MAX + 1, "themes", "\n"); for (i = themes_menu_from, n = 0; i < themes_nr && n < MENU_THEMES_MAX; i ++) { char tmp[PATH_MAX]; if (!themes[i].name[0]) /* empty */ continue; if (curtheme_dir && !strcmp(themes[i].dir, curtheme_dir)) snprintf(tmp, sizeof(tmp), "%s\n", themes[i].name); else snprintf(tmp, sizeof(tmp), "%s\n", themes[i].dir, themes[i].name); strcat(menu_buff, tmp); n ++; } for(;n < MENU_THEMES_MAX && themes_nr > MENU_THEMES_MAX; n++) /* align h */ strcat(menu_buff, "\n"); if (!themes_nr) sprintf(menu_buff, NOTHEMES_MENU, THEMES_PATH); strcat(menu_buff, "\n"); strcat(menu_buff, BACK_MENU); } int themes_menu_maxw(void) { int i = 0; int oldm = themes_menu_from; int maxw = 0; for (i = 0; i < themes_nr; i += MENU_THEMES_MAX) { int w; themes_menu_from = i; themes_menu(); game_menu_box_wh(menu_buff, &w, NULL); if (w > maxw) maxw = w; } themes_menu_from = oldm; return maxw; } static char *opt_get_mode(void) { static char buff[128]; if (opt_mode[0] == -1 || opt_mode[1] == -1) { snprintf(buff, sizeof(buff), "%s", FROM_THEME); return buff; } snprintf(buff, sizeof(buff), "%dx%d", opt_mode[0], opt_mode[1]); return buff; } static int gtr = 0; static int menu_settings_num = 0; char *game_menu_gen(void) { if (cur_menu == menu_main) { strcpy(menu_buff, MAIN_MENU); } else if (cur_menu == menu_about) { snprintf(menu_buff, sizeof(menu_buff), ABOUT_MENU, VERSION); } else if (cur_menu == menu_settings) { char *just[JUST_MAX] = { FROM_THEME, OFF, ON }; char *kbd [KBD_MAX] = { KBD_MODE_SMART, KBD_MODE_LINKS, KBD_MODE_SCROLL }; opt_kbd = (unsigned int)opt_kbd % KBD_MAX; opt_justify = (unsigned int)opt_justify % JUST_MAX; switch (menu_settings_num) { case 0: snprintf(menu_buff, sizeof(menu_buff), SETTINGS_GFX_MENU, opt_get_mode(), opt_fs?ON:OFF, opt_fsize, just[opt_justify], opt_hl?ON:OFF, opt_fading?ON:OFF, opt_owntheme?ON:OFF); break; case 1: snprintf(menu_buff, sizeof(menu_buff), SETTINGS_SND_MENU, snd_vol_to_pcn(snd_volume_mus(-1)), snd_hz(), opt_music?ON:OFF, opt_click?ON:OFF); break; case 2: snprintf(menu_buff, sizeof(menu_buff), SETTINGS_OTH_MENU, opt_motion?ON:OFF, opt_filter?ON:OFF, kbd[opt_kbd], langs[cur_lang].name, (opt_autosave & 1)?ON:OFF); break; } } else if (cur_menu == menu_askquit) { strcpy(menu_buff, QUIT_MENU); } else if (cur_menu == menu_saved) { strcpy(menu_buff, SAVED_MENU); } else if (cur_menu == menu_games) { games_menu(); } else if (cur_menu == menu_themes) { themes_menu(); } else if (cur_menu == menu_own_theme) { strcpy(menu_buff, OWN_THEME_MENU); } else if (cur_menu == menu_wait) { strcpy(menu_buff, WAIT_MENU); } else if (cur_menu == menu_custom_theme) { strcpy(menu_buff, CUSTOM_THEME_MENU); } else if (cur_menu == menu_load) { load_menu(); } else if (cur_menu == menu_save) { save_menu(); } else if (cur_menu == menu_error) { snprintf(menu_buff, sizeof(menu_buff), ERROR_MENU, err_msg?err_msg:UNKNOWN_ERROR); game_err_msg(NULL); } else if (cur_menu == menu_warning) { snprintf(menu_buff, sizeof(menu_buff), WARNING_MENU, err_msg?err_msg:UNKNOWN_ERROR); game_err_msg(NULL); } else if (cur_menu == menu_remove) { snprintf(menu_buff, sizeof(menu_buff), REMOVE_MENU, games[gtr].path); } return menu_buff; } int game_menu_act(const char *a) { static int old_vol = 0; if (!strcmp(a, "/autosave")) { opt_autosave = !(opt_autosave & 1); game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/kbd")) { opt_kbd += 1; if (opt_kbd == KBD_MAX) opt_kbd = 0; game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/owntheme")) { opt_owntheme = !opt_owntheme; if (game_own_theme) restart_needed = 1; game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/motion")) { opt_motion ^= 1; game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/filter")) { opt_filter ^= 1; game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/click")) { opt_click ^= 1; game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/mode++")) { #ifndef ANDROID if (gfx_next_mode(&opt_mode[0], &opt_mode[1])) opt_mode[0] = opt_mode[1] = -1; restart_needed = 1; game_menu_box(1, game_menu_gen()); #endif } else if (!strcmp(a, "/mode--")) { #ifndef ANDROID if (gfx_prev_mode(&opt_mode[0], &opt_mode[1])) opt_mode[0] = opt_mode[1] = -1; restart_needed = 1; game_menu_box(1, game_menu_gen()); #endif } else if (!strcmp(a, "/just++")) { restart_needed = 1; opt_justify ++; if (opt_justify >= JUST_MAX) opt_justify = 0; game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/just--")) { restart_needed = 1; opt_justify --; if (opt_justify < 0) opt_justify = JUST_MAX - 1; game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/fs--")) { opt_fsize --; if (FONT_SZ(game_theme.font_size) > FONT_MIN_SZ * game_theme.scale) { restart_needed = 1; } else opt_fsize ++; game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/fs++")) { opt_fsize ++; if (FONT_SZ(game_theme.font_size) < FONT_MAX_SZ * game_theme.scale) { restart_needed = 1; } else opt_fsize --; game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/hl")) { opt_hl ^= 1; game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/fading")) { opt_fading ^= 1; game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/fs")) { #ifndef ANDROID restart_needed = 1; opt_fs ^= 1; game_menu_box(1, game_menu_gen()); #endif } else if (!strncmp(a, "/games ", 7)) { if (!strcmp(a + 7, "prev")) { games_menu_from -= MENU_GAMES_MAX; if (games_menu_from < 0) games_menu_from = 0; } else if (!strcmp(a + 7, "next")) { if (games_menu_from + MENU_GAMES_MAX < games_nr) games_menu_from += MENU_GAMES_MAX; } else { int nr = atoi(a + 7); games_menu_from = nr * MENU_GAMES_MAX; } game_menu_box(1, game_menu_gen()); } else if (!strncmp(a, "/themes ", 8)) { if (!strcmp(a + 8, "prev")) { themes_menu_from -= MENU_THEMES_MAX; if (themes_menu_from < 0) themes_menu_from = 0; } else if (!strcmp(a + 8, "next")) { if (themes_menu_from + MENU_THEMES_MAX < themes_nr) themes_menu_from += MENU_THEMES_MAX; } else { int nr = atoi(a + 8); themes_menu_from = nr * MENU_THEMES_MAX; } game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/select")) { game_menu(menu_games); } else if (!strcmp(a, "/remove")) { fprintf(stderr,"Removing '%s'\n", games[gtr].path); if (curgame_dir && !strcmp(curgame_dir, games[gtr].dir)) { game_done(0); if (game_init(NULL)) { game_error(); return 0; } } games_remove(gtr); if (games_menu_from >= games_nr) games_menu_from -= MENU_GAMES_MAX; if (games_menu_from < 0) games_menu_from = 0; game_menu(menu_games); } else if (!strcmp(a, "/themes")) { game_menu(menu_themes); } else if (!strcmp(a, "/save_menu")) { if (curgame_dir) game_menu(menu_save); } else if (!strncmp(a, "/save", 5)) { if (!game_save(atoi(a + 5))) { game_menu(menu_saved); } } else if (!strcmp(a, "/load_menu")) { if (curgame_dir) game_menu(menu_load); } else if (!strncmp(a, "/load", 5)) { int nr = atoi(a + 5); if (!curgame_dir) return 0; // free_last(); game_menu_box(0, NULL); if (!game_reset()) { game_load(nr); cur_menu = menu_main; } // game_menu_box(0, NULL); } else if (!strcmp(a, "/new")) { char *s; if (!curgame_dir) return 0; // free_last(); /* remove autlosave */ s = game_save_path(0, 0); if (s && !access(s, R_OK) && (opt_autosave & 1)) unlink (s); game_menu_box(0, NULL); if (!game_reset()) { game_cmd("look", 0); custom_theme_warn(); } } else if (!strcmp(a,"/main")) { if (restart_needed) { game_restart(); restart_needed = 0; } game_menu(menu_main); } else if (!strcmp(a,"/ask_quit")) { game_menu(menu_askquit); } else if (!strncmp(a, "/remove_", 8)) { gtr = atoi(a + 8); game_menu(menu_remove); } else if (!strcmp(a,"/about")) { game_menu(menu_about); } else if (!strcmp(a,"/mtoggle")) { if (!old_vol) { old_vol = snd_volume_mus(-1); game_change_vol(0, 0); } else { game_change_vol(0, old_vol); old_vol = 0; } game_menu_box(1, game_menu_gen()); } else if (!strcmp(a,"/music")) { opt_music ^= 1; if (!opt_music) { game_stop_mus(0); } else game_music_player(); game_menu_box(1, game_menu_gen()); } else if (!strcmp(a,"/resume")) { cur_menu = menu_main; game_menu_box(0, NULL); } else if (!strcmp(a, "/settings")) { game_menu(menu_settings); } else if (!strcmp(a, "/settings-gfx")) { menu_settings_num = 0; game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/settings-snd")) { menu_settings_num = 1; game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/settings-oth")) { menu_settings_num = 2; game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/vol--")) { game_change_vol(-10, 0); game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/vol++")) { game_change_vol(+10, 0); game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/vol-")) { game_change_vol(-1, 0); game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/vol+")) { game_change_vol(+1, 0); game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/hz-")) { int hz = snd_hz(); if (hz == 48000) hz = 44100; else if (hz == 44100) hz = 22050; else if (hz == 22050) hz = 11025; else hz = 0; game_change_hz(hz); game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/hz+")) { int hz = snd_hz(); if (hz == 11025) hz = 22050; else if (hz == 22050) hz = 44100; else if (hz == 44100) hz = 48000; else hz = 0; game_change_hz(hz); game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/lang++")) { do { cur_lang ++; if (cur_lang >= langs_nr) cur_lang = 0; } while (menu_lang_select(langs[cur_lang].file)); if (curgame_dir) instead_lang(); themes_rename(); games_rename(); game_menu_box(1, game_menu_gen()); } else if (!strcmp(a, "/lang--")) { do { cur_lang --; if (cur_lang < 0) cur_lang = langs_nr - 1; } while (menu_lang_select(langs[cur_lang].file)); themes_rename(); game_menu_box(1, game_menu_gen()); } else if (!strcmp(a,"/quit")) { return -1; #ifdef _USE_BROWSE } else if (!strcmp(a,"/browse")) { game_from_disk(); return 0; #endif } else if (cur_menu == menu_games) { char *p; p = strdup(a); if (p) { game_done(0); if (game_init(p)) { game_error(); } free(p); } } else if (cur_menu == menu_themes) { char *p; p = strdup(a); if (p) { if (game_theme_select(p)) fprintf(stderr, "Can't select theme:%s:%s\n", p, strerror(errno)); char *og = curgame_dir; game_save(-1); game_done(0); if (game_init(og)) { game_error(); } else if (curgame_dir && game_own_theme && opt_owntheme) { game_menu(menu_own_theme); } free(p); } } return 0; } void custom_theme_warn(void) { #ifndef ANDROID if (game_own_theme && !opt_owntheme && cur_menu != menu_warning) { mouse_reset(1); game_menu(menu_custom_theme); } #endif } struct lang *langs = NULL; int langs_nr = 0; static void lang_free(void) { FREE(UNKNOWN_ERROR); FREE(ERROR_MENU); FREE(WARNING_MENU); FREE(SAVE_SLOT_EMPTY); FREE(SELECT_LOAD_MENU); FREE(AUTOSAVE_SLOT); FREE(BROKEN_SLOT); FREE(SELECT_SAVE_MENU); FREE(MAIN_MENU); FREE(ABOUT_MENU); FREE(BACK_MENU); FREE(SETTINGS_SND_MENU); FREE(SETTINGS_GFX_MENU); FREE(SETTINGS_OTH_MENU); FREE(CUSTOM_THEME_MENU); FREE(OWN_THEME_MENU); FREE(WAIT_MENU); FREE(SELECT_GAME_MENU); FREE(SELECT_THEME_MENU); FREE(SAVED_MENU); FREE(NOGAMES_MENU); FREE(NOTHEMES_MENU); FREE(QUIT_MENU); FREE(REMOVE_MENU); FREE(ON); FREE(OFF); FREE(KBD_MODE_LINKS); FREE(KBD_MODE_SMART); FREE(KBD_MODE_SCROLL); FREE(CANCEL_MENU); FREE(FROM_THEME); FREE(DISABLED_SAVE_MENU); FREE(BROWSE_MENU); } static int lang_ok(void) { if (UNKNOWN_ERROR && ERROR_MENU && WARNING_MENU && SAVE_SLOT_EMPTY && SELECT_LOAD_MENU && AUTOSAVE_SLOT && BROKEN_SLOT && SELECT_SAVE_MENU && MAIN_MENU && ABOUT_MENU && BACK_MENU && SETTINGS_SND_MENU && SETTINGS_GFX_MENU && SETTINGS_OTH_MENU && CUSTOM_THEME_MENU && OWN_THEME_MENU && SELECT_GAME_MENU && SELECT_THEME_MENU && WAIT_MENU && SAVED_MENU && NOGAMES_MENU && NOTHEMES_MENU && QUIT_MENU && REMOVE_MENU && ON && OFF && KBD_MODE_LINKS && KBD_MODE_SMART && KBD_MODE_SCROLL && CANCEL_MENU && FROM_THEME && DISABLED_SAVE_MENU && BROWSE_MENU) return 0; return -1; } struct parser lang_parser[] = { { "UNKNOWN_ERROR", parse_esc_string, &UNKNOWN_ERROR }, { "ERROR_MENU", parse_esc_string, &ERROR_MENU }, { "WARNING_MENU", parse_esc_string, &WARNING_MENU }, { "SAVE_SLOT_EMPTY", parse_esc_string, &SAVE_SLOT_EMPTY }, { "SELECT_LOAD_MENU", parse_esc_string, &SELECT_LOAD_MENU }, { "AUTOSAVE_SLOT", parse_esc_string, &AUTOSAVE_SLOT }, { "BROKEN_SLOT", parse_esc_string, &BROKEN_SLOT }, { "SELECT_SAVE_MENU", parse_esc_string, &SELECT_SAVE_MENU }, { "MAIN_MENU", parse_esc_string, &MAIN_MENU }, { "ABOUT_MENU", parse_esc_string, &ABOUT_MENU }, { "BACK_MENU", parse_esc_string, &BACK_MENU }, { "SETTINGS_GFX_MENU", parse_esc_string, &SETTINGS_GFX_MENU }, { "SETTINGS_SND_MENU", parse_esc_string, &SETTINGS_SND_MENU }, { "SETTINGS_OTH_MENU", parse_esc_string, &SETTINGS_OTH_MENU }, { "CUSTOM_THEME_MENU", parse_esc_string, &CUSTOM_THEME_MENU }, { "OWN_THEME_MENU", parse_esc_string, &OWN_THEME_MENU }, { "WAIT_MENU", parse_esc_string, &WAIT_MENU }, { "SELECT_GAME_MENU", parse_esc_string, &SELECT_GAME_MENU }, { "SELECT_THEME_MENU", parse_esc_string, &SELECT_THEME_MENU }, { "SAVED_MENU", parse_esc_string, &SAVED_MENU }, { "NOGAMES_MENU", parse_esc_string, &NOGAMES_MENU }, { "NOTHEMES_MENU", parse_esc_string, &NOTHEMES_MENU }, { "QUIT_MENU", parse_esc_string, &QUIT_MENU }, { "REMOVE_MENU", parse_esc_string, &REMOVE_MENU }, { "ON", parse_esc_string, &ON }, { "OFF", parse_esc_string, &OFF }, { "KBD_MODE_LINKS", parse_esc_string, &KBD_MODE_LINKS }, { "KBD_MODE_SMART", parse_esc_string, &KBD_MODE_SMART }, { "KBD_MODE_SCROLL", parse_esc_string, &KBD_MODE_SCROLL }, { "CANCEL_MENU", parse_esc_string, &CANCEL_MENU }, { "FROM_THEME", parse_esc_string, &FROM_THEME }, { "DISABLED_SAVE_MENU", parse_esc_string, &DISABLED_SAVE_MENU }, { "BROWSE_MENU", parse_esc_string, &BROWSE_MENU }, { NULL, }, }; static int lang_parse(const char *path) { return parse_ini(path, lang_parser); } static int is_lang(const char *path, const char *n) { char *p = getfilepath(path, n); if (!p) return 0; if (access(p, F_OK)) return 0; free(p); if (!(p = strstr(n, ".ini")) && !(p = strstr(n, ".INI"))) return 0; return 1; } static char *lang_code(const char *str) { char *p = strdup(str); if (!p) return NULL; p[strcspn(p, ".")] = 0; tolow(p); return p; } static char *lang_name(const char *path, const char *file) { char *l; l = lookup_tag(path, "Name", ";"); if (l) return l; return lang_code(file); } static int cmp_lang(const void *p1, const void *p2) { const struct lang *l1 = (const struct lang*)p1; const struct lang *l2 = (const struct lang*)p2; return strcmp(l1->name, l2->name); } static void langs_sort() { qsort(langs, langs_nr, sizeof(struct lang), cmp_lang); } int menu_langs_lookup(const char *path) { char *p; int n = 0, i = 0; DIR *d; struct dirent *de; if (!path) return 0; d = opendir(path); if (!d) return -1; while ((de = readdir(d))) { if (!is_lang(path, de->d_name)) continue; n ++; } rewinddir(d); if (!n) goto out; langs = realloc(langs, sizeof(struct lang) * (n + langs_nr)); while ((de = readdir(d)) && i < n) { if (!is_lang(path, de->d_name)) continue; p = getfilepath(path, de->d_name); langs[langs_nr].path = p; langs[langs_nr].file = lang_code(de->d_name); langs[langs_nr].name = lang_name(p, de->d_name); langs_nr ++; i ++; } out: langs_sort(); closedir(d); return 0; } int menu_lang_select(const char *name) { int i; char cwd[PATH_MAX]; if (!name) return -1; getdir(cwd, sizeof(cwd)); setdir(game_cwd); for (i = 0; i cpl_unz* 2007-2008 - Even Rouault - Remove old C style function prototypes 2007-2008 - Even Rouault - Add unzip support for ZIP64 Copyright (C) 2007-2008 Even Rouault Oct-2009 - Mathias Svensson - Removed cpl_* from symbol names (Even Rouault added them but since this is now moved to a new project (minizip64) I renamed them again). Oct-2009 - Mathias Svensson - Fixed problem if uncompressed size was > 4G and compressed size was <4G should only read the compressed/uncompressed size from the Zip64 format if the size from normal header was 0xFFFFFFFF Oct-2009 - Mathias Svensson - Applied some bug fixes from paches recived from Gilles Vollant Oct-2009 - Mathias Svensson - Applied support to unzip files with compression mathod BZIP2 (bzip2 lib is required) Patch created by Daniel Borca Jan-2010 - back to unzip and minizip 1.0 name scheme, with compatibility layer Copyright (C) 1998 - 2010 Gilles Vollant, Even Rouault, Mathias Svensson */ #include #include #include #ifndef NOUNCRYPT #define NOUNCRYPT #endif #include "zlib.h" #include "unzip.h" #ifdef STDC # include # include # include #endif #ifdef NO_ERRNO_H extern int errno; #else # include #endif #ifndef local # define local static #endif /* compile with -Dlocal if your debugger can't find static symbols */ #ifndef CASESENSITIVITYDEFAULT_NO # if !defined(unix) && !defined(CASESENSITIVITYDEFAULT_YES) # define CASESENSITIVITYDEFAULT_NO # endif #endif #ifndef UNZ_BUFSIZE #define UNZ_BUFSIZE (16384) #endif #ifndef UNZ_MAXFILENAMEINZIP #define UNZ_MAXFILENAMEINZIP (256) #endif #ifndef ALLOC # define ALLOC(size) (malloc(size)) #endif #ifndef TRYFREE # define TRYFREE(p) {if (p) free(p);} #endif #define SIZECENTRALDIRITEM (0x2e) #define SIZEZIPLOCALHEADER (0x1e) const char unz_copyright[] = " unzip 1.01 Copyright 1998-2004 Gilles Vollant - http://www.winimage.com/zLibDll"; /* unz_file_info_interntal contain internal info about a file in zipfile*/ typedef struct unz_file_info64_internal_s { ZPOS64_T offset_curfile;/* relative offset of local header 8 bytes */ } unz_file_info64_internal; /* file_in_zip_read_info_s contain internal information about a file in zipfile, when reading and decompress it */ typedef struct { char *read_buffer; /* internal buffer for compressed data */ z_stream stream; /* zLib stream structure for inflate */ #ifdef HAVE_BZIP2 bz_stream bstream; /* bzLib stream structure for bziped */ #endif ZPOS64_T pos_in_zipfile; /* position in byte on the zipfile, for fseek*/ uLong stream_initialised; /* flag set if stream structure is initialised*/ ZPOS64_T offset_local_extrafield;/* offset of the local extra field */ uInt size_local_extrafield;/* size of the local extra field */ ZPOS64_T pos_local_extrafield; /* position in the local extra field in read*/ ZPOS64_T total_out_64; uLong crc32; /* crc32 of all data uncompressed */ uLong crc32_wait; /* crc32 we must obtain after decompress all */ ZPOS64_T rest_read_compressed; /* number of byte to be decompressed */ ZPOS64_T rest_read_uncompressed;/*number of byte to be obtained after decomp*/ zlib_filefunc64_32_def z_filefunc; voidpf filestream; /* io structore of the zipfile */ uLong compression_method; /* compression method (0==store) */ ZPOS64_T byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ int raw; } file_in_zip64_read_info_s; /* unz64_s contain internal information about the zipfile */ typedef struct { zlib_filefunc64_32_def z_filefunc; int is64bitOpenFunction; voidpf filestream; /* io structore of the zipfile */ unz_global_info64 gi; /* public global information */ ZPOS64_T byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ ZPOS64_T num_file; /* number of the current file in the zipfile*/ ZPOS64_T pos_in_central_dir; /* pos of the current file in the central dir*/ ZPOS64_T current_file_ok; /* flag about the usability of the current file*/ ZPOS64_T central_pos; /* position of the beginning of the central dir*/ ZPOS64_T size_central_dir; /* size of the central directory */ ZPOS64_T offset_central_dir; /* offset of start of central directory with respect to the starting disk number */ unz_file_info64 cur_file_info; /* public info about the current file in zip*/ unz_file_info64_internal cur_file_info_internal; /* private info about it*/ file_in_zip64_read_info_s* pfile_in_zip_read; /* structure about the current file if we are decompressing it */ int encrypted; int isZip64; # ifndef NOUNCRYPT unsigned long keys[3]; /* keys defining the pseudo-random sequence */ const unsigned long* pcrc_32_tab; # endif } unz64_s; #ifndef NOUNCRYPT #include "crypt.h" #endif /* =========================================================================== Read a byte from a gz_stream; update next_in and avail_in. Return EOF for end of file. IN assertion: the stream s has been sucessfully opened for reading. */ local int unz64local_getByte OF(( const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, int *pi)); local int unz64local_getByte(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, int *pi) { unsigned char c; int err = (int)ZREAD64(*pzlib_filefunc_def,filestream,&c,1); if (err==1) { *pi = (int)c; return UNZ_OK; } else { if (ZERROR64(*pzlib_filefunc_def,filestream)) return UNZ_ERRNO; else return UNZ_EOF; } } /* =========================================================================== Reads a long in LSB order from the given gz_stream. Sets */ local int unz64local_getShort OF(( const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong *pX)); local int unz64local_getShort (const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong *pX) { uLong x ; int i = 0; int err; err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); x = (uLong)i; if (err==UNZ_OK) err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); x |= ((uLong)i)<<8; if (err==UNZ_OK) *pX = x; else *pX = 0; return err; } local int unz64local_getLong OF(( const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong *pX)); local int unz64local_getLong (const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong *pX) { uLong x ; int i = 0; int err; err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); x = (uLong)i; if (err==UNZ_OK) err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); x |= ((uLong)i)<<8; if (err==UNZ_OK) err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); x |= ((uLong)i)<<16; if (err==UNZ_OK) err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); x += ((uLong)i)<<24; if (err==UNZ_OK) *pX = x; else *pX = 0; return err; } local int unz64local_getLong64 OF(( const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, ZPOS64_T *pX)); local int unz64local_getLong64 (const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, ZPOS64_T *pX) { ZPOS64_T x ; int i = 0; int err; err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); x = (ZPOS64_T)i; if (err==UNZ_OK) err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); x |= ((ZPOS64_T)i)<<8; if (err==UNZ_OK) err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); x |= ((ZPOS64_T)i)<<16; if (err==UNZ_OK) err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); x |= ((ZPOS64_T)i)<<24; if (err==UNZ_OK) err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); x |= ((ZPOS64_T)i)<<32; if (err==UNZ_OK) err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); x |= ((ZPOS64_T)i)<<40; if (err==UNZ_OK) err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); x |= ((ZPOS64_T)i)<<48; if (err==UNZ_OK) err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); x |= ((ZPOS64_T)i)<<56; if (err==UNZ_OK) *pX = x; else *pX = 0; return err; } /* My own strcmpi / strcasecmp */ local int strcmpcasenosensitive_internal (const char* fileName1, const char* fileName2) { for (;;) { char c1=*(fileName1++); char c2=*(fileName2++); if ((c1>='a') && (c1<='z')) c1 -= 0x20; if ((c2>='a') && (c2<='z')) c2 -= 0x20; if (c1=='\0') return ((c2=='\0') ? 0 : -1); if (c2=='\0') return 1; if (c1c2) return 1; } } #ifdef CASESENSITIVITYDEFAULT_NO #define CASESENSITIVITYDEFAULTVALUE 2 #else #define CASESENSITIVITYDEFAULTVALUE 1 #endif #ifndef STRCMPCASENOSENTIVEFUNCTION #define STRCMPCASENOSENTIVEFUNCTION strcmpcasenosensitive_internal #endif /* Compare two filename (fileName1,fileName2). If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp) If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi or strcasecmp) If iCaseSenisivity = 0, case sensitivity is defaut of your operating system (like 1 on Unix, 2 on Windows) */ extern int ZEXPORT unzStringFileNameCompare (const char* fileName1, const char* fileName2, int iCaseSensitivity) { if (iCaseSensitivity==0) iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE; if (iCaseSensitivity==1) return strcmp(fileName1,fileName2); return STRCMPCASENOSENTIVEFUNCTION(fileName1,fileName2); } #ifndef BUFREADCOMMENT #define BUFREADCOMMENT (0x400) #endif /* Locate the Central directory of a zipfile (at the end, just before the global comment) */ local ZPOS64_T unz64local_SearchCentralDir OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream)); local ZPOS64_T unz64local_SearchCentralDir(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream) { unsigned char* buf; ZPOS64_T uSizeFile; ZPOS64_T uBackRead; ZPOS64_T uMaxBack=0xffff; /* maximum size of global comment */ ZPOS64_T uPosFound=0; if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0) return 0; uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream); if (uMaxBack>uSizeFile) uMaxBack = uSizeFile; buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4); if (buf==NULL) return 0; uBackRead = 4; while (uBackReaduMaxBack) uBackRead = uMaxBack; else uBackRead+=BUFREADCOMMENT; uReadPos = uSizeFile-uBackRead ; uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ? (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos); if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0) break; if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize) break; for (i=(int)uReadSize-3; (i--)>0;) if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) && ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06)) { uPosFound = uReadPos+i; break; } if (uPosFound!=0) break; } TRYFREE(buf); return uPosFound; } /* Locate the Central directory 64 of a zipfile (at the end, just before the global comment) */ local ZPOS64_T unz64local_SearchCentralDir64 OF(( const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream)); local ZPOS64_T unz64local_SearchCentralDir64(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream) { unsigned char* buf; ZPOS64_T uSizeFile; ZPOS64_T uBackRead; ZPOS64_T uMaxBack=0xffff; /* maximum size of global comment */ ZPOS64_T uPosFound=0; uLong uL; ZPOS64_T relativeOffset; if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0) return 0; uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream); if (uMaxBack>uSizeFile) uMaxBack = uSizeFile; buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4); if (buf==NULL) return 0; uBackRead = 4; while (uBackReaduMaxBack) uBackRead = uMaxBack; else uBackRead+=BUFREADCOMMENT; uReadPos = uSizeFile-uBackRead ; uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ? (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos); if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0) break; if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize) break; for (i=(int)uReadSize-3; (i--)>0;) if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) && ((*(buf+i+2))==0x06) && ((*(buf+i+3))==0x07)) { uPosFound = uReadPos+i; break; } if (uPosFound!=0) break; } TRYFREE(buf); if (uPosFound == 0) return 0; /* Zip64 end of central directory locator */ if (ZSEEK64(*pzlib_filefunc_def,filestream, uPosFound,ZLIB_FILEFUNC_SEEK_SET)!=0) return 0; /* the signature, already checked */ if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK) return 0; /* number of the disk with the start of the zip64 end of central directory */ if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK) return 0; if (uL != 0) return 0; /* relative offset of the zip64 end of central directory record */ if (unz64local_getLong64(pzlib_filefunc_def,filestream,&relativeOffset)!=UNZ_OK) return 0; /* total number of disks */ if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK) return 0; if (uL != 1) return 0; /* Goto end of central directory record */ if (ZSEEK64(*pzlib_filefunc_def,filestream, relativeOffset,ZLIB_FILEFUNC_SEEK_SET)!=0) return 0; /* the signature */ if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK) return 0; if (uL != 0x06064b50) return 0; return relativeOffset; } /* Open a Zip file. path contain the full pathname (by example, on a Windows NT computer "c:\\test\\zlib114.zip" or on an Unix computer "zlib/zlib114.zip". If the zipfile cannot be opened (file doesn't exist or in not valid), the return value is NULL. Else, the return value is a unzFile Handle, usable with other function of this unzip package. */ local unzFile unzOpenInternal (const void *path, zlib_filefunc64_32_def* pzlib_filefunc64_32_def, int is64bitOpenFunction) { unz64_s us; unz64_s *s; ZPOS64_T central_pos; uLong uL; uLong number_disk; /* number of the current dist, used for spaning ZIP, unsupported, always 0*/ uLong number_disk_with_CD; /* number the the disk with central dir, used for spaning ZIP, unsupported, always 0*/ ZPOS64_T number_entry_CD; /* total number of entries in the central dir (same than number_entry on nospan) */ int err=UNZ_OK; if (unz_copyright[0]!=' ') return NULL; us.z_filefunc.zseek32_file = NULL; us.z_filefunc.ztell32_file = NULL; if (pzlib_filefunc64_32_def==NULL) fill_fopen64_filefunc(&us.z_filefunc.zfile_func64); else us.z_filefunc = *pzlib_filefunc64_32_def; us.is64bitOpenFunction = is64bitOpenFunction; us.filestream = ZOPEN64(us.z_filefunc, path, ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_EXISTING); if (us.filestream==NULL) return NULL; central_pos = unz64local_SearchCentralDir64(&us.z_filefunc,us.filestream); if (central_pos) { uLong uS; ZPOS64_T uL64; us.isZip64 = 1; if (ZSEEK64(us.z_filefunc, us.filestream, central_pos,ZLIB_FILEFUNC_SEEK_SET)!=0) err=UNZ_ERRNO; /* the signature, already checked */ if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK) err=UNZ_ERRNO; /* size of zip64 end of central directory record */ if (unz64local_getLong64(&us.z_filefunc, us.filestream,&uL64)!=UNZ_OK) err=UNZ_ERRNO; /* version made by */ if (unz64local_getShort(&us.z_filefunc, us.filestream,&uS)!=UNZ_OK) err=UNZ_ERRNO; /* version needed to extract */ if (unz64local_getShort(&us.z_filefunc, us.filestream,&uS)!=UNZ_OK) err=UNZ_ERRNO; /* number of this disk */ if (unz64local_getLong(&us.z_filefunc, us.filestream,&number_disk)!=UNZ_OK) err=UNZ_ERRNO; /* number of the disk with the start of the central directory */ if (unz64local_getLong(&us.z_filefunc, us.filestream,&number_disk_with_CD)!=UNZ_OK) err=UNZ_ERRNO; /* total number of entries in the central directory on this disk */ if (unz64local_getLong64(&us.z_filefunc, us.filestream,&us.gi.number_entry)!=UNZ_OK) err=UNZ_ERRNO; /* total number of entries in the central directory */ if (unz64local_getLong64(&us.z_filefunc, us.filestream,&number_entry_CD)!=UNZ_OK) err=UNZ_ERRNO; if ((number_entry_CD!=us.gi.number_entry) || (number_disk_with_CD!=0) || (number_disk!=0)) err=UNZ_BADZIPFILE; /* size of the central directory */ if (unz64local_getLong64(&us.z_filefunc, us.filestream,&us.size_central_dir)!=UNZ_OK) err=UNZ_ERRNO; /* offset of start of central directory with respect to the starting disk number */ if (unz64local_getLong64(&us.z_filefunc, us.filestream,&us.offset_central_dir)!=UNZ_OK) err=UNZ_ERRNO; us.gi.size_comment = 0; } else { central_pos = unz64local_SearchCentralDir(&us.z_filefunc,us.filestream); if (central_pos==0) err=UNZ_ERRNO; us.isZip64 = 0; if (ZSEEK64(us.z_filefunc, us.filestream, central_pos,ZLIB_FILEFUNC_SEEK_SET)!=0) err=UNZ_ERRNO; /* the signature, already checked */ if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK) err=UNZ_ERRNO; /* number of this disk */ if (unz64local_getShort(&us.z_filefunc, us.filestream,&number_disk)!=UNZ_OK) err=UNZ_ERRNO; /* number of the disk with the start of the central directory */ if (unz64local_getShort(&us.z_filefunc, us.filestream,&number_disk_with_CD)!=UNZ_OK) err=UNZ_ERRNO; /* total number of entries in the central dir on this disk */ if (unz64local_getShort(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK) err=UNZ_ERRNO; us.gi.number_entry = uL; /* total number of entries in the central dir */ if (unz64local_getShort(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK) err=UNZ_ERRNO; number_entry_CD = uL; if ((number_entry_CD!=us.gi.number_entry) || (number_disk_with_CD!=0) || (number_disk!=0)) err=UNZ_BADZIPFILE; /* size of the central directory */ if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK) err=UNZ_ERRNO; us.size_central_dir = uL; /* offset of start of central directory with respect to the starting disk number */ if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK) err=UNZ_ERRNO; us.offset_central_dir = uL; /* zipfile comment length */ if (unz64local_getShort(&us.z_filefunc, us.filestream,&us.gi.size_comment)!=UNZ_OK) err=UNZ_ERRNO; } if ((central_pospfile_in_zip_read!=NULL) unzCloseCurrentFile(file); ZCLOSE64(s->z_filefunc, s->filestream); TRYFREE(s); return UNZ_OK; } /* Write info about the ZipFile in the *pglobal_info structure. No preparation of the structure is needed return UNZ_OK if there is no problem. */ extern int ZEXPORT unzGetGlobalInfo64 (unzFile file, unz_global_info64* pglobal_info) { unz64_s* s; if (file==NULL) return UNZ_PARAMERROR; s=(unz64_s*)file; *pglobal_info=s->gi; return UNZ_OK; } extern int ZEXPORT unzGetGlobalInfo (unzFile file, unz_global_info* pglobal_info32) { unz64_s* s; if (file==NULL) return UNZ_PARAMERROR; s=(unz64_s*)file; /* to do : check if number_entry is not truncated */ pglobal_info32->number_entry = (uLong)s->gi.number_entry; pglobal_info32->size_comment = s->gi.size_comment; return UNZ_OK; } /* Translate date/time from Dos format to tm_unz (readable more easilty) */ local void unz64local_DosDateToTmuDate (ZPOS64_T ulDosDate, tm_unz* ptm) { ZPOS64_T uDate; uDate = (ZPOS64_T)(ulDosDate>>16); ptm->tm_mday = (uInt)(uDate&0x1f) ; ptm->tm_mon = (uInt)((((uDate)&0x1E0)/0x20)-1) ; ptm->tm_year = (uInt)(((uDate&0x0FE00)/0x0200)+1980) ; ptm->tm_hour = (uInt) ((ulDosDate &0xF800)/0x800); ptm->tm_min = (uInt) ((ulDosDate&0x7E0)/0x20) ; ptm->tm_sec = (uInt) (2*(ulDosDate&0x1f)) ; } /* Get Info about the current file in the zipfile, with internal only info */ local int unz64local_GetCurrentFileInfoInternal OF((unzFile file, unz_file_info64 *pfile_info, unz_file_info64_internal *pfile_info_internal, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize)); local int unz64local_GetCurrentFileInfoInternal (unzFile file, unz_file_info64 *pfile_info, unz_file_info64_internal *pfile_info_internal, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize) { unz64_s* s; unz_file_info64 file_info; unz_file_info64_internal file_info_internal; int err=UNZ_OK; uLong uMagic; long lSeek=0; uLong uL; if (file==NULL) return UNZ_PARAMERROR; s=(unz64_s*)file; if (ZSEEK64(s->z_filefunc, s->filestream, s->pos_in_central_dir+s->byte_before_the_zipfile, ZLIB_FILEFUNC_SEEK_SET)!=0) err=UNZ_ERRNO; /* we check the magic */ if (err==UNZ_OK) { if (unz64local_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK) err=UNZ_ERRNO; else if (uMagic!=0x02014b50) err=UNZ_BADZIPFILE; } if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.version) != UNZ_OK) err=UNZ_ERRNO; if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.version_needed) != UNZ_OK) err=UNZ_ERRNO; if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.flag) != UNZ_OK) err=UNZ_ERRNO; if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.compression_method) != UNZ_OK) err=UNZ_ERRNO; if (unz64local_getLong(&s->z_filefunc, s->filestream,&file_info.dosDate) != UNZ_OK) err=UNZ_ERRNO; unz64local_DosDateToTmuDate(file_info.dosDate,&file_info.tmu_date); if (unz64local_getLong(&s->z_filefunc, s->filestream,&file_info.crc) != UNZ_OK) err=UNZ_ERRNO; if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK) err=UNZ_ERRNO; file_info.compressed_size = uL; if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK) err=UNZ_ERRNO; file_info.uncompressed_size = uL; if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.size_filename) != UNZ_OK) err=UNZ_ERRNO; if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.size_file_extra) != UNZ_OK) err=UNZ_ERRNO; if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.size_file_comment) != UNZ_OK) err=UNZ_ERRNO; if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.disk_num_start) != UNZ_OK) err=UNZ_ERRNO; if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.internal_fa) != UNZ_OK) err=UNZ_ERRNO; if (unz64local_getLong(&s->z_filefunc, s->filestream,&file_info.external_fa) != UNZ_OK) err=UNZ_ERRNO; // relative offset of local header if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK) err=UNZ_ERRNO; file_info_internal.offset_curfile = uL; lSeek+=file_info.size_filename; if ((err==UNZ_OK) && (szFileName!=NULL)) { uLong uSizeRead ; if (file_info.size_filename0) && (fileNameBufferSize>0)) if (ZREAD64(s->z_filefunc, s->filestream,szFileName,uSizeRead)!=uSizeRead) err=UNZ_ERRNO; lSeek -= uSizeRead; } // Read extrafield if ((err==UNZ_OK) && (extraField!=NULL)) { ZPOS64_T uSizeRead ; if (file_info.size_file_extraz_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0) lSeek=0; else err=UNZ_ERRNO; } if ((file_info.size_file_extra>0) && (extraFieldBufferSize>0)) if (ZREAD64(s->z_filefunc, s->filestream,extraField,(uLong)uSizeRead)!=uSizeRead) err=UNZ_ERRNO; lSeek += file_info.size_file_extra - (uLong)uSizeRead; } else lSeek += file_info.size_file_extra; if ((err==UNZ_OK) && (file_info.size_file_extra != 0)) { uLong acc = 0; // since lSeek now points to after the extra field we need to move back lSeek -= file_info.size_file_extra; if (lSeek!=0) { if (ZSEEK64(s->z_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0) lSeek=0; else err=UNZ_ERRNO; } while(acc < file_info.size_file_extra) { uLong headerId; uLong dataSize; if (unz64local_getShort(&s->z_filefunc, s->filestream,&headerId) != UNZ_OK) err=UNZ_ERRNO; if (unz64local_getShort(&s->z_filefunc, s->filestream,&dataSize) != UNZ_OK) err=UNZ_ERRNO; /* ZIP64 extra fields */ if (headerId == 0x0001) { uLong uL; if(file_info.uncompressed_size == (ZPOS64_T)(unsigned long)-1) { if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info.uncompressed_size) != UNZ_OK) err=UNZ_ERRNO; } if(file_info.compressed_size == (ZPOS64_T)(unsigned long)-1) { if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info.compressed_size) != UNZ_OK) err=UNZ_ERRNO; } if(file_info_internal.offset_curfile == (ZPOS64_T)(unsigned long)-1) { /* Relative Header offset */ if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info_internal.offset_curfile) != UNZ_OK) err=UNZ_ERRNO; } if(file_info.disk_num_start == (unsigned long)-1) { /* Disk Start Number */ if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK) err=UNZ_ERRNO; } } else { if (ZSEEK64(s->z_filefunc, s->filestream,dataSize,ZLIB_FILEFUNC_SEEK_CUR)!=0) err=UNZ_ERRNO; } acc += 2 + 2 + dataSize; } } if ((err==UNZ_OK) && (szComment!=NULL)) { uLong uSizeRead ; if (file_info.size_file_commentz_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0) lSeek=0; else err=UNZ_ERRNO; } if ((file_info.size_file_comment>0) && (commentBufferSize>0)) if (ZREAD64(s->z_filefunc, s->filestream,szComment,uSizeRead)!=uSizeRead) err=UNZ_ERRNO; lSeek+=file_info.size_file_comment - uSizeRead; } else lSeek+=file_info.size_file_comment; if ((err==UNZ_OK) && (pfile_info!=NULL)) *pfile_info=file_info; if ((err==UNZ_OK) && (pfile_info_internal!=NULL)) *pfile_info_internal=file_info_internal; return err; } /* Write info about the ZipFile in the *pglobal_info structure. No preparation of the structure is needed return UNZ_OK if there is no problem. */ extern int ZEXPORT unzGetCurrentFileInfo64 (unzFile file, unz_file_info64 * pfile_info, char * szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char* szComment, uLong commentBufferSize) { return unz64local_GetCurrentFileInfoInternal(file,pfile_info,NULL, szFileName,fileNameBufferSize, extraField,extraFieldBufferSize, szComment,commentBufferSize); } extern int ZEXPORT unzGetCurrentFileInfo (unzFile file, unz_file_info * pfile_info, char * szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char* szComment, uLong commentBufferSize) { int err; unz_file_info64 file_info64; err = unz64local_GetCurrentFileInfoInternal(file,&file_info64,NULL, szFileName,fileNameBufferSize, extraField,extraFieldBufferSize, szComment,commentBufferSize); if (err==UNZ_OK) { pfile_info->version = file_info64.version; pfile_info->version_needed = file_info64.version_needed; pfile_info->flag = file_info64.flag; pfile_info->compression_method = file_info64.compression_method; pfile_info->dosDate = file_info64.dosDate; pfile_info->crc = file_info64.crc; pfile_info->size_filename = file_info64.size_filename; pfile_info->size_file_extra = file_info64.size_file_extra; pfile_info->size_file_comment = file_info64.size_file_comment; pfile_info->disk_num_start = file_info64.disk_num_start; pfile_info->internal_fa = file_info64.internal_fa; pfile_info->external_fa = file_info64.external_fa; pfile_info->tmu_date = file_info64.tmu_date, pfile_info->compressed_size = (uLong)file_info64.compressed_size; pfile_info->uncompressed_size = (uLong)file_info64.uncompressed_size; } return err; } /* Set the current file of the zipfile to the first file. return UNZ_OK if there is no problem */ extern int ZEXPORT unzGoToFirstFile (unzFile file) { int err=UNZ_OK; unz64_s* s; if (file==NULL) return UNZ_PARAMERROR; s=(unz64_s*)file; s->pos_in_central_dir=s->offset_central_dir; s->num_file=0; err=unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info, &s->cur_file_info_internal, NULL,0,NULL,0,NULL,0); s->current_file_ok = (err == UNZ_OK); return err; } /* Set the current file of the zipfile to the next file. return UNZ_OK if there is no problem return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest. */ extern int ZEXPORT unzGoToNextFile (unzFile file) { unz64_s* s; int err; if (file==NULL) return UNZ_PARAMERROR; s=(unz64_s*)file; if (!s->current_file_ok) return UNZ_END_OF_LIST_OF_FILE; if (s->gi.number_entry != 0xffff) /* 2^16 files overflow hack */ if (s->num_file+1==s->gi.number_entry) return UNZ_END_OF_LIST_OF_FILE; s->pos_in_central_dir += SIZECENTRALDIRITEM + s->cur_file_info.size_filename + s->cur_file_info.size_file_extra + s->cur_file_info.size_file_comment ; s->num_file++; err = unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info, &s->cur_file_info_internal, NULL,0,NULL,0,NULL,0); s->current_file_ok = (err == UNZ_OK); return err; } /* Try locate the file szFileName in the zipfile. For the iCaseSensitivity signification, see unzipStringFileNameCompare return value : UNZ_OK if the file is found. It becomes the current file. UNZ_END_OF_LIST_OF_FILE if the file is not found */ extern int ZEXPORT unzLocateFile (unzFile file, const char *szFileName, int iCaseSensitivity) { unz64_s* s; int err; /* We remember the 'current' position in the file so that we can jump * back there if we fail. */ unz_file_info64 cur_file_infoSaved; unz_file_info64_internal cur_file_info_internalSaved; ZPOS64_T num_fileSaved; ZPOS64_T pos_in_central_dirSaved; if (file==NULL) return UNZ_PARAMERROR; if (strlen(szFileName)>=UNZ_MAXFILENAMEINZIP) return UNZ_PARAMERROR; s=(unz64_s*)file; if (!s->current_file_ok) return UNZ_END_OF_LIST_OF_FILE; /* Save the current state */ num_fileSaved = s->num_file; pos_in_central_dirSaved = s->pos_in_central_dir; cur_file_infoSaved = s->cur_file_info; cur_file_info_internalSaved = s->cur_file_info_internal; err = unzGoToFirstFile(file); while (err == UNZ_OK) { char szCurrentFileName[UNZ_MAXFILENAMEINZIP+1]; err = unzGetCurrentFileInfo64(file,NULL, szCurrentFileName,sizeof(szCurrentFileName)-1, NULL,0,NULL,0); if (err == UNZ_OK) { if (unzStringFileNameCompare(szCurrentFileName, szFileName,iCaseSensitivity)==0) return UNZ_OK; err = unzGoToNextFile(file); } } /* We failed, so restore the state of the 'current file' to where we * were. */ s->num_file = num_fileSaved ; s->pos_in_central_dir = pos_in_central_dirSaved ; s->cur_file_info = cur_file_infoSaved; s->cur_file_info_internal = cur_file_info_internalSaved; return err; } /* /////////////////////////////////////////// // Contributed by Ryan Haksi (mailto://cryogen@infoserve.net) // I need random access // // Further optimization could be realized by adding an ability // to cache the directory in memory. The goal being a single // comprehensive file read to put the file I need in a memory. */ /* typedef struct unz_file_pos_s { ZPOS64_T pos_in_zip_directory; // offset in file ZPOS64_T num_of_file; // # of file } unz_file_pos; */ extern int ZEXPORT unzGetFilePos64(unzFile file, unz64_file_pos* file_pos) { unz64_s* s; if (file==NULL || file_pos==NULL) return UNZ_PARAMERROR; s=(unz64_s*)file; if (!s->current_file_ok) return UNZ_END_OF_LIST_OF_FILE; file_pos->pos_in_zip_directory = s->pos_in_central_dir; file_pos->num_of_file = s->num_file; return UNZ_OK; } extern int ZEXPORT unzGetFilePos( unzFile file, unz_file_pos* file_pos) { unz64_file_pos file_pos64; int err = unzGetFilePos64(file,&file_pos64); if (err==UNZ_OK) { file_pos->pos_in_zip_directory = (uLong)file_pos64.pos_in_zip_directory; file_pos->num_of_file = (uLong)file_pos64.num_of_file; } return err; } extern int ZEXPORT unzGoToFilePos64(unzFile file, const unz64_file_pos* file_pos) { unz64_s* s; int err; if (file==NULL || file_pos==NULL) return UNZ_PARAMERROR; s=(unz64_s*)file; /* jump to the right spot */ s->pos_in_central_dir = file_pos->pos_in_zip_directory; s->num_file = file_pos->num_of_file; /* set the current file */ err = unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info, &s->cur_file_info_internal, NULL,0,NULL,0,NULL,0); /* return results */ s->current_file_ok = (err == UNZ_OK); return err; } extern int ZEXPORT unzGoToFilePos( unzFile file, unz_file_pos* file_pos) { unz64_file_pos file_pos64; if (file_pos == NULL) return UNZ_PARAMERROR; file_pos64.pos_in_zip_directory = file_pos->pos_in_zip_directory; file_pos64.num_of_file = file_pos->num_of_file; return unzGoToFilePos64(file,&file_pos64); } /* // Unzip Helper Functions - should be here? /////////////////////////////////////////// */ /* Read the local header of the current zipfile Check the coherency of the local header and info in the end of central directory about this file store in *piSizeVar the size of extra info in local header (filename and size of extra field data) */ local int unz64local_CheckCurrentFileCoherencyHeader (unz64_s* s, uInt* piSizeVar, ZPOS64_T * poffset_local_extrafield, uInt * psize_local_extrafield) { uLong uMagic,uData,uFlags; uLong size_filename; uLong size_extra_field; int err=UNZ_OK; *piSizeVar = 0; *poffset_local_extrafield = 0; *psize_local_extrafield = 0; if (ZSEEK64(s->z_filefunc, s->filestream,s->cur_file_info_internal.offset_curfile + s->byte_before_the_zipfile,ZLIB_FILEFUNC_SEEK_SET)!=0) return UNZ_ERRNO; if (err==UNZ_OK) { if (unz64local_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK) err=UNZ_ERRNO; else if (uMagic!=0x04034b50) err=UNZ_BADZIPFILE; } if (unz64local_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) err=UNZ_ERRNO; /* else if ((err==UNZ_OK) && (uData!=s->cur_file_info.wVersion)) err=UNZ_BADZIPFILE; */ if (unz64local_getShort(&s->z_filefunc, s->filestream,&uFlags) != UNZ_OK) err=UNZ_ERRNO; if (unz64local_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) err=UNZ_ERRNO; else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compression_method)) err=UNZ_BADZIPFILE; if ((err==UNZ_OK) && (s->cur_file_info.compression_method!=0) && /* #ifdef HAVE_BZIP2 */ (s->cur_file_info.compression_method!=Z_BZIP2ED) && /* #endif */ (s->cur_file_info.compression_method!=Z_DEFLATED)) err=UNZ_BADZIPFILE; if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* date/time */ err=UNZ_ERRNO; if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* crc */ err=UNZ_ERRNO; else if ((err==UNZ_OK) && (uData!=s->cur_file_info.crc) && ((uFlags & 8)==0)) err=UNZ_BADZIPFILE; if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* size compr */ err=UNZ_ERRNO; else if (uData != 0xFFFFFFFF && (err==UNZ_OK) && (uData!=s->cur_file_info.compressed_size) && ((uFlags & 8)==0)) err=UNZ_BADZIPFILE; if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* size uncompr */ err=UNZ_ERRNO; else if (uData != 0xFFFFFFFF && (err==UNZ_OK) && (uData!=s->cur_file_info.uncompressed_size) && ((uFlags & 8)==0)) err=UNZ_BADZIPFILE; if (unz64local_getShort(&s->z_filefunc, s->filestream,&size_filename) != UNZ_OK) err=UNZ_ERRNO; else if ((err==UNZ_OK) && (size_filename!=s->cur_file_info.size_filename)) err=UNZ_BADZIPFILE; *piSizeVar += (uInt)size_filename; if (unz64local_getShort(&s->z_filefunc, s->filestream,&size_extra_field) != UNZ_OK) err=UNZ_ERRNO; *poffset_local_extrafield= s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER + size_filename; *psize_local_extrafield = (uInt)size_extra_field; *piSizeVar += (uInt)size_extra_field; return err; } /* Open for reading data the current file in the zipfile. If there is no error and the file is opened, the return value is UNZ_OK. */ extern int ZEXPORT unzOpenCurrentFile3 (unzFile file, int* method, int* level, int raw, const char* password) { int err=UNZ_OK; uInt iSizeVar; unz64_s* s; file_in_zip64_read_info_s* pfile_in_zip_read_info; ZPOS64_T offset_local_extrafield; /* offset of the local extra field */ uInt size_local_extrafield; /* size of the local extra field */ # ifndef NOUNCRYPT char source[12]; # else if (password != NULL) return UNZ_PARAMERROR; # endif if (file==NULL) return UNZ_PARAMERROR; s=(unz64_s*)file; if (!s->current_file_ok) return UNZ_PARAMERROR; if (s->pfile_in_zip_read != NULL) unzCloseCurrentFile(file); if (unz64local_CheckCurrentFileCoherencyHeader(s,&iSizeVar, &offset_local_extrafield,&size_local_extrafield)!=UNZ_OK) return UNZ_BADZIPFILE; pfile_in_zip_read_info = (file_in_zip64_read_info_s*)ALLOC(sizeof(file_in_zip64_read_info_s)); if (pfile_in_zip_read_info==NULL) return UNZ_INTERNALERROR; pfile_in_zip_read_info->read_buffer=(char*)ALLOC(UNZ_BUFSIZE); pfile_in_zip_read_info->offset_local_extrafield = offset_local_extrafield; pfile_in_zip_read_info->size_local_extrafield = size_local_extrafield; pfile_in_zip_read_info->pos_local_extrafield=0; pfile_in_zip_read_info->raw=raw; if (pfile_in_zip_read_info->read_buffer==NULL) { TRYFREE(pfile_in_zip_read_info); return UNZ_INTERNALERROR; } pfile_in_zip_read_info->stream_initialised=0; if (method!=NULL) *method = (int)s->cur_file_info.compression_method; if (level!=NULL) { *level = 6; switch (s->cur_file_info.flag & 0x06) { case 6 : *level = 1; break; case 4 : *level = 2; break; case 2 : *level = 9; break; } } if ((s->cur_file_info.compression_method!=0) && /* #ifdef HAVE_BZIP2 */ (s->cur_file_info.compression_method!=Z_BZIP2ED) && /* #endif */ (s->cur_file_info.compression_method!=Z_DEFLATED)) err=UNZ_BADZIPFILE; pfile_in_zip_read_info->crc32_wait=s->cur_file_info.crc; pfile_in_zip_read_info->crc32=0; pfile_in_zip_read_info->total_out_64=0; pfile_in_zip_read_info->compression_method = s->cur_file_info.compression_method; pfile_in_zip_read_info->filestream=s->filestream; pfile_in_zip_read_info->z_filefunc=s->z_filefunc; pfile_in_zip_read_info->byte_before_the_zipfile=s->byte_before_the_zipfile; pfile_in_zip_read_info->stream.total_out = 0; if ((s->cur_file_info.compression_method==Z_BZIP2ED) && (!raw)) { #ifdef HAVE_BZIP2 pfile_in_zip_read_info->bstream.bzalloc = (void *(*) (void *, int, int))0; pfile_in_zip_read_info->bstream.bzfree = (free_func)0; pfile_in_zip_read_info->bstream.opaque = (voidpf)0; pfile_in_zip_read_info->bstream.state = (voidpf)0; pfile_in_zip_read_info->stream.zalloc = (alloc_func)0; pfile_in_zip_read_info->stream.zfree = (free_func)0; pfile_in_zip_read_info->stream.opaque = (voidpf)0; pfile_in_zip_read_info->stream.next_in = (voidpf)0; pfile_in_zip_read_info->stream.avail_in = 0; err=BZ2_bzDecompressInit(&pfile_in_zip_read_info->bstream, 0, 0); if (err == Z_OK) pfile_in_zip_read_info->stream_initialised=Z_BZIP2ED; else { TRYFREE(pfile_in_zip_read_info); return err; } #else pfile_in_zip_read_info->raw=1; #endif } else if ((s->cur_file_info.compression_method==Z_DEFLATED) && (!raw)) { pfile_in_zip_read_info->stream.zalloc = (alloc_func)0; pfile_in_zip_read_info->stream.zfree = (free_func)0; pfile_in_zip_read_info->stream.opaque = (voidpf)0; pfile_in_zip_read_info->stream.next_in = 0; pfile_in_zip_read_info->stream.avail_in = 0; err=inflateInit2(&pfile_in_zip_read_info->stream, -MAX_WBITS); if (err == Z_OK) pfile_in_zip_read_info->stream_initialised=Z_DEFLATED; else { TRYFREE(pfile_in_zip_read_info); return err; } /* windowBits is passed < 0 to tell that there is no zlib header. * Note that in this case inflate *requires* an extra "dummy" byte * after the compressed stream in order to complete decompression and * return Z_STREAM_END. * In unzip, i don't wait absolutely Z_STREAM_END because I known the * size of both compressed and uncompressed data */ } pfile_in_zip_read_info->rest_read_compressed = s->cur_file_info.compressed_size ; pfile_in_zip_read_info->rest_read_uncompressed = s->cur_file_info.uncompressed_size ; pfile_in_zip_read_info->pos_in_zipfile = s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER + iSizeVar; pfile_in_zip_read_info->stream.avail_in = (uInt)0; s->pfile_in_zip_read = pfile_in_zip_read_info; s->encrypted = 0; # ifndef NOUNCRYPT if (password != NULL) { int i; s->pcrc_32_tab = get_crc_table(); init_keys(password,s->keys,s->pcrc_32_tab); if (ZSEEK64(s->z_filefunc, s->filestream, s->pfile_in_zip_read->pos_in_zipfile + s->pfile_in_zip_read->byte_before_the_zipfile, SEEK_SET)!=0) return UNZ_INTERNALERROR; if(ZREAD64(s->z_filefunc, s->filestream,source, 12)<12) return UNZ_INTERNALERROR; for (i = 0; i<12; i++) zdecode(s->keys,s->pcrc_32_tab,source[i]); s->pfile_in_zip_read->pos_in_zipfile+=12; s->encrypted=1; } # endif return UNZ_OK; } extern int ZEXPORT unzOpenCurrentFile (unzFile file) { return unzOpenCurrentFile3(file, NULL, NULL, 0, NULL); } extern int ZEXPORT unzOpenCurrentFilePassword (unzFile file, const char* password) { return unzOpenCurrentFile3(file, NULL, NULL, 0, password); } extern int ZEXPORT unzOpenCurrentFile2 (unzFile file, int* method, int* level, int raw) { return unzOpenCurrentFile3(file, method, level, raw, NULL); } /** Addition for GDAL : START */ extern ZPOS64_T ZEXPORT unzGetCurrentFileZStreamPos64( unzFile file) { unz64_s* s; file_in_zip64_read_info_s* pfile_in_zip_read_info; s=(unz64_s*)file; if (file==NULL) return 0; //UNZ_PARAMERROR; pfile_in_zip_read_info=s->pfile_in_zip_read; if (pfile_in_zip_read_info==NULL) return 0; //UNZ_PARAMERROR; return pfile_in_zip_read_info->pos_in_zipfile + pfile_in_zip_read_info->byte_before_the_zipfile; } /** Addition for GDAL : END */ /* Read bytes from the current file. buf contain buffer where data must be copied len the size of buf. return the number of byte copied if somes bytes are copied return 0 if the end of file was reached return <0 with error code if there is an error (UNZ_ERRNO for IO error, or zLib error for uncompress error) */ extern int ZEXPORT unzReadCurrentFile (unzFile file, voidp buf, unsigned len) { int err=UNZ_OK; uInt iRead = 0; unz64_s* s; file_in_zip64_read_info_s* pfile_in_zip_read_info; if (file==NULL) return UNZ_PARAMERROR; s=(unz64_s*)file; pfile_in_zip_read_info=s->pfile_in_zip_read; if (pfile_in_zip_read_info==NULL) return UNZ_PARAMERROR; if ((pfile_in_zip_read_info->read_buffer == NULL)) return UNZ_END_OF_LIST_OF_FILE; if (len==0) return 0; pfile_in_zip_read_info->stream.next_out = (Bytef*)buf; pfile_in_zip_read_info->stream.avail_out = (uInt)len; if ((len>pfile_in_zip_read_info->rest_read_uncompressed) && (!(pfile_in_zip_read_info->raw))) pfile_in_zip_read_info->stream.avail_out = (uInt)pfile_in_zip_read_info->rest_read_uncompressed; if ((len>pfile_in_zip_read_info->rest_read_compressed+ pfile_in_zip_read_info->stream.avail_in) && (pfile_in_zip_read_info->raw)) pfile_in_zip_read_info->stream.avail_out = (uInt)pfile_in_zip_read_info->rest_read_compressed+ pfile_in_zip_read_info->stream.avail_in; while (pfile_in_zip_read_info->stream.avail_out>0) { if ((pfile_in_zip_read_info->stream.avail_in==0) && (pfile_in_zip_read_info->rest_read_compressed>0)) { uInt uReadThis = UNZ_BUFSIZE; if (pfile_in_zip_read_info->rest_read_compressedrest_read_compressed; if (uReadThis == 0) return UNZ_EOF; if (ZSEEK64(pfile_in_zip_read_info->z_filefunc, pfile_in_zip_read_info->filestream, pfile_in_zip_read_info->pos_in_zipfile + pfile_in_zip_read_info->byte_before_the_zipfile, ZLIB_FILEFUNC_SEEK_SET)!=0) return UNZ_ERRNO; if (ZREAD64(pfile_in_zip_read_info->z_filefunc, pfile_in_zip_read_info->filestream, pfile_in_zip_read_info->read_buffer, uReadThis)!=uReadThis) return UNZ_ERRNO; # ifndef NOUNCRYPT if(s->encrypted) { uInt i; for(i=0;iread_buffer[i] = zdecode(s->keys,s->pcrc_32_tab, pfile_in_zip_read_info->read_buffer[i]); } # endif pfile_in_zip_read_info->pos_in_zipfile += uReadThis; pfile_in_zip_read_info->rest_read_compressed-=uReadThis; pfile_in_zip_read_info->stream.next_in = (Bytef*)pfile_in_zip_read_info->read_buffer; pfile_in_zip_read_info->stream.avail_in = (uInt)uReadThis; } if ((pfile_in_zip_read_info->compression_method==0) || (pfile_in_zip_read_info->raw)) { uInt uDoCopy,i ; if ((pfile_in_zip_read_info->stream.avail_in == 0) && (pfile_in_zip_read_info->rest_read_compressed == 0)) return (iRead==0) ? UNZ_EOF : iRead; if (pfile_in_zip_read_info->stream.avail_out < pfile_in_zip_read_info->stream.avail_in) uDoCopy = pfile_in_zip_read_info->stream.avail_out ; else uDoCopy = pfile_in_zip_read_info->stream.avail_in ; for (i=0;istream.next_out+i) = *(pfile_in_zip_read_info->stream.next_in+i); pfile_in_zip_read_info->total_out_64 = pfile_in_zip_read_info->total_out_64 + uDoCopy; pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32, pfile_in_zip_read_info->stream.next_out, uDoCopy); pfile_in_zip_read_info->rest_read_uncompressed-=uDoCopy; pfile_in_zip_read_info->stream.avail_in -= uDoCopy; pfile_in_zip_read_info->stream.avail_out -= uDoCopy; pfile_in_zip_read_info->stream.next_out += uDoCopy; pfile_in_zip_read_info->stream.next_in += uDoCopy; pfile_in_zip_read_info->stream.total_out += uDoCopy; iRead += uDoCopy; } else if (pfile_in_zip_read_info->compression_method==Z_BZIP2ED) { #ifdef HAVE_BZIP2 uLong uTotalOutBefore,uTotalOutAfter; const Bytef *bufBefore; uLong uOutThis; pfile_in_zip_read_info->bstream.next_in = (char*)pfile_in_zip_read_info->stream.next_in; pfile_in_zip_read_info->bstream.avail_in = pfile_in_zip_read_info->stream.avail_in; pfile_in_zip_read_info->bstream.total_in_lo32 = pfile_in_zip_read_info->stream.total_in; pfile_in_zip_read_info->bstream.total_in_hi32 = 0; pfile_in_zip_read_info->bstream.next_out = (char*)pfile_in_zip_read_info->stream.next_out; pfile_in_zip_read_info->bstream.avail_out = pfile_in_zip_read_info->stream.avail_out; pfile_in_zip_read_info->bstream.total_out_lo32 = pfile_in_zip_read_info->stream.total_out; pfile_in_zip_read_info->bstream.total_out_hi32 = 0; uTotalOutBefore = pfile_in_zip_read_info->bstream.total_out_lo32; bufBefore = (const Bytef *)pfile_in_zip_read_info->bstream.next_out; err=BZ2_bzDecompress(&pfile_in_zip_read_info->bstream); uTotalOutAfter = pfile_in_zip_read_info->bstream.total_out_lo32; uOutThis = uTotalOutAfter-uTotalOutBefore; pfile_in_zip_read_info->total_out_64 = pfile_in_zip_read_info->total_out_64 + uOutThis; pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32,bufBefore, (uInt)(uOutThis)); pfile_in_zip_read_info->rest_read_uncompressed -= uOutThis; iRead += (uInt)(uTotalOutAfter - uTotalOutBefore); pfile_in_zip_read_info->stream.next_in = (Bytef*)pfile_in_zip_read_info->bstream.next_in; pfile_in_zip_read_info->stream.avail_in = pfile_in_zip_read_info->bstream.avail_in; pfile_in_zip_read_info->stream.total_in = pfile_in_zip_read_info->bstream.total_in_lo32; pfile_in_zip_read_info->stream.next_out = (Bytef*)pfile_in_zip_read_info->bstream.next_out; pfile_in_zip_read_info->stream.avail_out = pfile_in_zip_read_info->bstream.avail_out; pfile_in_zip_read_info->stream.total_out = pfile_in_zip_read_info->bstream.total_out_lo32; if (err==BZ_STREAM_END) return (iRead==0) ? UNZ_EOF : iRead; if (err!=BZ_OK) break; #endif } // end Z_BZIP2ED else { ZPOS64_T uTotalOutBefore,uTotalOutAfter; const Bytef *bufBefore; ZPOS64_T uOutThis; int flush=Z_SYNC_FLUSH; uTotalOutBefore = pfile_in_zip_read_info->stream.total_out; bufBefore = pfile_in_zip_read_info->stream.next_out; /* if ((pfile_in_zip_read_info->rest_read_uncompressed == pfile_in_zip_read_info->stream.avail_out) && (pfile_in_zip_read_info->rest_read_compressed == 0)) flush = Z_FINISH; */ err=inflate(&pfile_in_zip_read_info->stream,flush); if ((err>=0) && (pfile_in_zip_read_info->stream.msg!=NULL)) err = Z_DATA_ERROR; uTotalOutAfter = pfile_in_zip_read_info->stream.total_out; uOutThis = uTotalOutAfter-uTotalOutBefore; pfile_in_zip_read_info->total_out_64 = pfile_in_zip_read_info->total_out_64 + uOutThis; pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32,bufBefore, (uInt)(uOutThis)); pfile_in_zip_read_info->rest_read_uncompressed -= uOutThis; iRead += (uInt)(uTotalOutAfter - uTotalOutBefore); if (err==Z_STREAM_END) return (iRead==0) ? UNZ_EOF : iRead; if (err!=Z_OK) break; } } if (err==Z_OK) return iRead; return err; } /* Give the current position in uncompressed data */ extern z_off_t ZEXPORT unztell (unzFile file) { unz64_s* s; file_in_zip64_read_info_s* pfile_in_zip_read_info; if (file==NULL) return UNZ_PARAMERROR; s=(unz64_s*)file; pfile_in_zip_read_info=s->pfile_in_zip_read; if (pfile_in_zip_read_info==NULL) return UNZ_PARAMERROR; return (z_off_t)pfile_in_zip_read_info->stream.total_out; } extern ZPOS64_T ZEXPORT unztell64 (unzFile file) { unz64_s* s; file_in_zip64_read_info_s* pfile_in_zip_read_info; if (file==NULL) return (ZPOS64_T)-1; s=(unz64_s*)file; pfile_in_zip_read_info=s->pfile_in_zip_read; if (pfile_in_zip_read_info==NULL) return (ZPOS64_T)-1; return pfile_in_zip_read_info->total_out_64; } /* return 1 if the end of file was reached, 0 elsewhere */ extern int ZEXPORT unzeof (unzFile file) { unz64_s* s; file_in_zip64_read_info_s* pfile_in_zip_read_info; if (file==NULL) return UNZ_PARAMERROR; s=(unz64_s*)file; pfile_in_zip_read_info=s->pfile_in_zip_read; if (pfile_in_zip_read_info==NULL) return UNZ_PARAMERROR; if (pfile_in_zip_read_info->rest_read_uncompressed == 0) return 1; else return 0; } /* Read extra field from the current file (opened by unzOpenCurrentFile) This is the local-header version of the extra field (sometimes, there is more info in the local-header version than in the central-header) if buf==NULL, it return the size of the local extra field that can be read if buf!=NULL, len is the size of the buffer, the extra header is copied in buf. the return value is the number of bytes copied in buf, or (if <0) the error code */ extern int ZEXPORT unzGetLocalExtrafield (unzFile file, voidp buf, unsigned len) { unz64_s* s; file_in_zip64_read_info_s* pfile_in_zip_read_info; uInt read_now; ZPOS64_T size_to_read; if (file==NULL) return UNZ_PARAMERROR; s=(unz64_s*)file; pfile_in_zip_read_info=s->pfile_in_zip_read; if (pfile_in_zip_read_info==NULL) return UNZ_PARAMERROR; size_to_read = (pfile_in_zip_read_info->size_local_extrafield - pfile_in_zip_read_info->pos_local_extrafield); if (buf==NULL) return (int)size_to_read; if (len>size_to_read) read_now = (uInt)size_to_read; else read_now = (uInt)len ; if (read_now==0) return 0; if (ZSEEK64(pfile_in_zip_read_info->z_filefunc, pfile_in_zip_read_info->filestream, pfile_in_zip_read_info->offset_local_extrafield + pfile_in_zip_read_info->pos_local_extrafield, ZLIB_FILEFUNC_SEEK_SET)!=0) return UNZ_ERRNO; if (ZREAD64(pfile_in_zip_read_info->z_filefunc, pfile_in_zip_read_info->filestream, buf,read_now)!=read_now) return UNZ_ERRNO; return (int)read_now; } /* Close the file in zip opened with unzipOpenCurrentFile Return UNZ_CRCERROR if all the file was read but the CRC is not good */ extern int ZEXPORT unzCloseCurrentFile (unzFile file) { int err=UNZ_OK; unz64_s* s; file_in_zip64_read_info_s* pfile_in_zip_read_info; if (file==NULL) return UNZ_PARAMERROR; s=(unz64_s*)file; pfile_in_zip_read_info=s->pfile_in_zip_read; if (pfile_in_zip_read_info==NULL) return UNZ_PARAMERROR; if ((pfile_in_zip_read_info->rest_read_uncompressed == 0) && (!pfile_in_zip_read_info->raw)) { if (pfile_in_zip_read_info->crc32 != pfile_in_zip_read_info->crc32_wait) err=UNZ_CRCERROR; } TRYFREE(pfile_in_zip_read_info->read_buffer); pfile_in_zip_read_info->read_buffer = NULL; if (pfile_in_zip_read_info->stream_initialised == Z_DEFLATED) inflateEnd(&pfile_in_zip_read_info->stream); #ifdef HAVE_BZIP2 else if (pfile_in_zip_read_info->stream_initialised == Z_BZIP2ED) BZ2_bzDecompressEnd(&pfile_in_zip_read_info->bstream); #endif pfile_in_zip_read_info->stream_initialised = 0; TRYFREE(pfile_in_zip_read_info); s->pfile_in_zip_read=NULL; return err; } /* Get the global comment string of the ZipFile, in the szComment buffer. uSizeBuf is the size of the szComment buffer. return the number of byte copied or an error code <0 */ extern int ZEXPORT unzGetGlobalComment (unzFile file, char * szComment, uLong uSizeBuf) { unz64_s* s; uLong uReadThis ; if (file==NULL) return (int)UNZ_PARAMERROR; s=(unz64_s*)file; uReadThis = uSizeBuf; if (uReadThis>s->gi.size_comment) uReadThis = s->gi.size_comment; if (ZSEEK64(s->z_filefunc,s->filestream,s->central_pos+22,ZLIB_FILEFUNC_SEEK_SET)!=0) return UNZ_ERRNO; if (uReadThis>0) { *szComment='\0'; if (ZREAD64(s->z_filefunc,s->filestream,szComment,uReadThis)!=uReadThis) return UNZ_ERRNO; } if ((szComment != NULL) && (uSizeBuf > s->gi.size_comment)) *(szComment+s->gi.size_comment)='\0'; return (int)uReadThis; } /* Additions by RX '2004 */ extern ZPOS64_T ZEXPORT unzGetOffset64(unzFile file) { unz64_s* s; if (file==NULL) return 0; //UNZ_PARAMERROR; s=(unz64_s*)file; if (!s->current_file_ok) return 0; if (s->gi.number_entry != 0 && s->gi.number_entry != 0xffff) if (s->num_file==s->gi.number_entry) return 0; return s->pos_in_central_dir; } extern uLong ZEXPORT unzGetOffset (unzFile file) { ZPOS64_T offset64; if (file==NULL) return 0; //UNZ_PARAMERROR; offset64 = unzGetOffset64(file); return (uLong)offset64; } extern int ZEXPORT unzSetOffset64(unzFile file, ZPOS64_T pos) { unz64_s* s; int err; if (file==NULL) return UNZ_PARAMERROR; s=(unz64_s*)file; s->pos_in_central_dir = pos; s->num_file = s->gi.number_entry; /* hack */ err = unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info, &s->cur_file_info_internal, NULL,0,NULL,0,NULL,0); s->current_file_ok = (err == UNZ_OK); return err; } extern int ZEXPORT unzSetOffset (unzFile file, uLong pos) { return unzSetOffset64(file,pos); } #endif instead-1.9.1/src/sdl-instead/wince.c000644 001751 001751 00000014033 12161555571 017733 0ustar00peterpeter000000 000000 #include "wince.h" #include #include #include #include #include #include #include #include #include "sdl_iconv.h" #include "internals.h" extern char *curgame; extern char *curgame_dir; static char local_games_path[PATH_MAX]; static char local_themes_path[PATH_MAX]; static char local_stead_path[PATH_MAX]; static char save_path[PATH_MAX]; static char cfg_path[PATH_MAX]; void nsleep(int u) { Sleep(u); } char *game_locale(void) { char buff[64]; buff[0] = 0; if (!GetLocaleInfoA(LOCALE_USER_DEFAULT, LOCALE_SISO639LANGNAME, buff,sizeof(buff) - 1)) return NULL; return strdup(buff); } #if 0 static char *game_codepage = NULL; #ifdef _HAVE_ICONV static char *game_cp(void) { char cpbuff[64]; char buff[64]; buff[0] = 0; if (!GetLocaleInfoA(LOCALE_USER_DEFAULT, LOCALE_IDEFAULTANSICODEPAGE, buff,sizeof(buff) - 1)) return NULL; snprintf(cpbuff, sizeof(cpbuff), "WINDOWS-%s", buff); return strdup(cpbuff); } char *mbs2utf8(const char *s) { iconv_t han; char *str; if (!game_codepage) game_codepage = game_cp(); if (!s) return NULL; if (!game_codepage) goto out0; han = iconv_open("UTF-8", game_codepage); if (han == (iconv_t)-1) goto out0; if (!(str = decode(han, s))) goto out1; iconv_close(han); return str; out1: iconv_close(han); out0: return strdup(s); } #else char *mbs2utf8(const char *s) { return strdup(s); } #endif #endif extern void unix_path(char *); char *sdl_path(char *p) { #if 0 char *r = mbs2utf8(p); if (p) free(p); unix_path(r); return r; #else unix_path(p); return p; #endif } char *app_dir( void ); char *game_tmp_path(void) { DWORD dwRetVal = 0; static TCHAR lpTempPathBuffer[MAX_PATH]; // Gets the temp path env string (no guarantee it's a valid path). dwRetVal = GetTempPath(MAX_PATH, // length of the buffer lpTempPathBuffer); // buffer for path if (dwRetVal > MAX_PATH || (dwRetVal == 0)) { return NULL; } strcat((char*)lpTempPathBuffer, "/instead-games"); if (mkdir((char*)lpTempPathBuffer) && access((char*)lpTempPathBuffer, W_OK)) return NULL; unix_path((char*)lpTempPathBuffer); return (char*)lpTempPathBuffer; } char *game_local_games_path(int cr) { char *app = app_dir(); if (!app) return NULL; snprintf(local_games_path, sizeof(local_games_path) - 1 , "%s/", app); if (cr) { if (mkdir(local_games_path) && access(local_games_path, W_OK)) return NULL; } strcat(local_games_path,"/games"); if (cr) { if (mkdir(local_games_path) && access(local_games_path, W_OK)) return NULL; } return local_games_path; } char *game_local_themes_path(void) { snprintf(local_themes_path, sizeof(local_themes_path) - 1 , "%s/themes", app_dir()); return local_themes_path; } char *game_local_stead_path(void) { snprintf(local_stead_path, sizeof(local_stead_path) - 1 , "%s/stead", app_dir()); return local_stead_path; } #if 0 char *home_dir( void ) { static char homedir[PATH_MAX]=""; SHGetFolderPath( NULL, CSIDL_FLAG_CREATE | CSIDL_PROFILE, NULL, 0, (LPTSTR)homedir ); unix_path(homedir); return homedir; } #endif char *app_dir( void ) { static char appdir[PATH_MAX]=""; if (appdata_sw) strcpy(appdir, appdata_sw); else { strcpy(appdir, game_cwd); strcat(appdir, "/appdata"); } if (!access(appdir, W_OK)) return appdir; return NULL; } char *game_cfg_path( void ) { char *p = app_dir(); if (!p) return NULL; snprintf(cfg_path, sizeof(cfg_path) - 1 , "%src", p); /* appdir/insteadrc ;) */ if (!access(cfg_path, R_OK)) return cfg_path; /* no at home? Try in dir */ snprintf(cfg_path, sizeof(cfg_path) - 1 , "%s", p); if (mkdir(cfg_path) && access(cfg_path, W_OK)) { snprintf(cfg_path, sizeof(cfg_path) - 1 , "%src", p); /* appdir/insteadrc ;) */ return cfg_path; } snprintf(cfg_path, sizeof(cfg_path) - 1 , "%s/insteadrc", p); return cfg_path; } char *game_save_path( int cr, int nr ) { char appdir[PATH_MAX]; char *p = app_dir(); if (!curgame_dir) return NULL; if (!access("saves", R_OK)) { if (nr) snprintf(save_path, sizeof(save_path) - 1, "saves/save%d", nr); else snprintf(save_path, sizeof(save_path) - 1, "saves/autosave"); return save_path; } if (!p) return NULL; strcpy( appdir, p ); if (cr && mkdir(appdir) && access(appdir, W_OK)) return NULL; snprintf(save_path, sizeof(save_path) - 1 , "%s/saves", appdir); if (cr && mkdir(save_path) && access(save_path, W_OK)) return NULL; snprintf(save_path, sizeof(save_path) - 1, "%s/saves/%s", appdir, curgame_dir); if (cr && mkdir(save_path) && access(save_path, W_OK)) return NULL; if (nr) snprintf(save_path, sizeof(save_path) - 1, "%s/saves/%s/save%d", appdir, curgame_dir, nr); else snprintf(save_path, sizeof(save_path) - 1, "%s/saves/%s/autosave", appdir, curgame_dir); return save_path; } int debug_init(void) { return 0; } void debug_done() { } #ifdef _USE_BROWSE char *open_file_dialog(void) { OPENFILENAME ofn; static char szFile[MAX_PATH]; static char szOldDir[MAX_PATH]; static int old_dir_set = 0; ZeroMemory( &ofn , sizeof( ofn)); ofn.lStructSize = sizeof ( ofn ); ofn.hwndOwner = NULL ; ofn.lpstrFile = szFile ; ofn.lpstrFile[0] = '\0'; ofn.nMaxFile = sizeof( szFile ); ofn.lpstrFilter = "*.*\0*.*\0main.lua;*.zip\0main.lua;*.zip\0\0"; ofn.nFilterIndex = 2; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; if (!old_dir_set) ofn.lpstrInitialDir = NULL; else ofn.lpstrInitialDir = szOldDir; ofn.Flags = OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_READONLY; if (!GetOpenFileName(&ofn)) return NULL; old_dir_set = 1; strcpy(szOldDir, ofn.lpstrFile); dirname(szOldDir); unix_path(ofn.lpstrFile); return ofn.lpstrFile; } #endif static char curdir[PATH_MAX]; int setdir(const char *path) { strncpy(curdir, path, sizeof(curdir) - 1); return 0; } char *getdir(char *path, size_t size) { strncpy(path, curdir, size - 1); return path; } char *dirpath(const char *path) { static char fp[PATH_MAX * 4]; if (path[0] == '/') return (char*)path; strcpy(fp, curdir); strcat(fp, "/"); strcat(fp, path); unix_path(fp); return fp; } instead-1.9.1/src/sdl-instead/cache.h000644 001751 001751 00000001212 12161555571 017671 0ustar00peterpeter000000 000000 #ifndef __CACHE_H #define __CACHE_H typedef void * cache_t; typedef void (*cache_free_fn)(void *p); extern cache_t cache_init(int size, cache_free_fn); extern void cache_free(cache_t cache); extern int cache_forget(cache_t cache, void *p); extern void cache_zap(cache_t cache); extern void cache_shrink(cache_t cache); extern void *cache_get(cache_t cache, const char *name); extern void *cache_lookup(cache_t cache, const char *name); extern int cache_add(cache_t cache, const char *name, void *p); extern int cache_have(cache_t cache, void *p); extern unsigned long hash_addr(void *p); extern unsigned long hash_string(const char *str); #endif instead-1.9.1/src/sdl-instead/s60.c000644 001751 001751 00000007600 12161555571 017240 0ustar00peterpeter000000 000000 #include #include #include #include #include #include #include #include #include #include #include #include "snprintf.h" #include "sdl_iconv.h" #include "internals.h" #ifndef PATH_MAX #define PATH_MAX 256 #endif static char save_path[PATH_MAX]; static char cfg_path[PATH_MAX]; static char local_games_path[PATH_MAX]; static char local_themes_path[PATH_MAX]; static char local_stead_path[PATH_MAX]; extern void s60delay(int u); void nsleep(int u) { s60delay(u); } char *game_locale(void) { char *p; char *s; p = getenv("LANG"); if (!p || !(s = strdup(p))) return NULL; if ((p = strchr(s, '_'))) *p = 0; return s; } char *game_tmp_path(void) { static char tmp[PATH_MAX]="/tmp/instead-games"; if (mkdir(tmp, S_IRWXU) && errno != EEXIST) return NULL; return tmp; } extern char *BROWSE_MENU; extern char *get_file_name(void); char *open_file_dialog(void) { #ifdef _USE_BROWSE char *p; unix_path((p = get_file_name())); fprintf(stderr,"Selected file: %s\n", p); return p; #else return NULL; #endif } char *appdir(void) { static char dir[PATH_MAX]; if (appdata_sw) strcpy(dir, appdata_sw); else { strcpy(dir, game_cwd); strcat(dir, "/appdata"); } return dir; } char *game_local_games_path(int cr) { char *app = appdir(); if (!app) return NULL; strcpy(local_games_path, app); if (cr) { if (mkdir(local_games_path, S_IRWXU) && errno != EEXIST) return NULL; } strcat(local_games_path,"/games"); if (cr) { if (mkdir(local_games_path, S_IRWXU) && errno != EEXIST) return NULL; } return local_games_path; } char *game_local_themes_path(void) { char *app = appdir(); if (!app) return NULL; snprintf(local_themes_path, sizeof(local_themes_path) - 1 , "%s/themes", app); return local_themes_path; } char *game_local_stead_path(void) { char *app = appdir(); if (!app) return NULL; snprintf(local_stead_path, sizeof(local_stead_path) - 1 , "%s/stead/", app); return local_stead_path; } char *game_cfg_path(void) { char *app = appdir(); if (!app) return NULL; snprintf(cfg_path, sizeof(cfg_path) - 1 , "%s/insteadrc", app); return cfg_path; } char *game_save_path(int cr, int nr) { char *app = appdir(); if (!curgame_dir) return NULL; if (!access("saves", R_OK)) { if (nr) snprintf(save_path, sizeof(save_path) - 1, "saves/save%d", nr); else snprintf(save_path, sizeof(save_path) - 1, "saves/autosave"); return save_path; } if (!app) return NULL; snprintf(save_path, sizeof(save_path) - 1 , "%s/", app); if (cr && mkdir(save_path, S_IRWXU) && errno != EEXIST) return NULL; snprintf(save_path, sizeof(save_path) - 1 , "%s/saves", app); if (cr && mkdir(save_path, S_IRWXU) && errno != EEXIST) return NULL; snprintf(save_path, sizeof(save_path) - 1, "%s/saves/%s/", app, curgame_dir); if (cr && mkdir(save_path, S_IRWXU) && errno != EEXIST) return NULL; if (nr) snprintf(save_path, sizeof(save_path) - 1, "%s/saves/%s/save%d", app, curgame_dir, nr); else snprintf(save_path, sizeof(save_path) - 1, "%s/saves/%s/autosave", app, curgame_dir); return save_path; } int debug_init(void) { return 0; } void debug_done() { } char *sdl_path(char *p) { unix_path(p); return p; } int setdir(const char *path) { return chdir(path); } char *getdir(char *path, size_t size) { return getcwd(path, size); } char *dirpath(const char *path) { return (char*)path; } char *dirname(char *path) { char *p; if (path == NULL || *path == '\0') return "."; p = path + strlen(path) - 1; while (*p == '/') { if (p == path) return path; *p-- = '\0'; } while (p >= path && *p != '/') p--; return p < path ? "." : p == path ? "/" : (*p = '\0', path); } char* basename (char* path) { char *ptr = path; int l = 0; while (ptr[(l = strcspn (ptr, "\\//"))]) ptr += l + 1; return ptr; } instead-1.9.1/src/sdl-instead/game.c000644 001751 001751 00000214155 12161555571 017546 0ustar00peterpeter000000 000000 #include "externals.h" #include "internals.h" #include "list.h" #include "idf.h" #define MOTION_TIME (abs(timer_counter - click_time) >= 200 / HZ) int game_running = 1; char *err_msg = NULL; #define ERR_MSG_MAX 512 char game_cwd[PATH_MAX]; char *curgame_dir = NULL; #define DATA_IDF "data.idf" idf_t game_idf = NULL; int game_own_theme = 0; int game_theme_changed = 0; int mouse_filter_delay = 400; static int need_restart = 0; static int game_pic_w = 0; static int game_pic_h = 0; static char *last_music = NULL; static char *last_pict = NULL; static char *last_title = NULL; static char *last_cmd = NULL; void game_cursor(int on); void game_err_msg(const char *s) { if (err_msg) free(err_msg); if (s) { err_msg = strdup(s); if (err_msg && strlen(err_msg) > ERR_MSG_MAX) { err_msg[ERR_MSG_MAX - 4] = 0; strcat(err_msg, "..."); } } else err_msg = NULL; } static int is_game(const char *path, const char *n) { int rc = 0; char *p = getfilepath(path, n); char *pp; if (!p) return 0; if (idf_magic(p)) { free(p); return 1; } strcat(p, "/"); pp = malloc(strlen(p) + strlen(MAIN_FILE) + 1); if (pp) { strcpy(pp, p); strcat(pp, MAIN_FILE); if (!access(pp, R_OK)) rc = 1; free(pp); } free(p); return rc; } struct game *games = NULL; int games_nr = 0; void free_last(void); static struct game *game_lookup(const char *name) { int i; if (!name || !*name) { if (games_nr == 1) return &games[0]; return NULL; } for (i = 0; idir; instead_done(); if (instead_init(g->path)) { curgame_dir = oldgame; return -1; } if (g->idf) { setdir(game_cwd); if (oldgame != curgame_dir) { idf_done(game_idf); game_idf = idf_init(g->path); if (game_idf) idf_only(game_idf, 1); } } if ((!g->idf && setdir(g->path)) || (g->idf && !game_idf)) { curgame_dir = oldgame; return -1; } if (oldgame != curgame_dir && !g->idf) { idf_done(game_idf); game_idf = idf_init(DATA_IDF); } game_use_theme(); if (game_theme_init()) { curgame_dir = oldgame; return -1; } if (instead_load(MAIN_FILE)) { curgame_dir = oldgame; return -1; } rc = instead_function("game:ini", NULL); instead_clear(); return rc; } else { game_use_theme(); game_theme_init(); } return 0; } static char *game_name(const char *path, const char *d_name) { char *l; char *p; if (idf_magic(path)) { idf_t idf = idf_init(path); idff_t idff = idf_open(idf, MAIN_FILE); l = lookup_lang_tag_idf(idff, "Name", "--"); idf_close(idff); idf_done(idf); if (l) return l; goto err; } p = getfilepath(path, MAIN_FILE); if (!p) goto err; l = lookup_lang_tag(p, "Name", "--"); free(p); if (l) return l; err: return strdup(d_name); } int games_rename(void) { int i; char cwd[PATH_MAX]; getdir(cwd, sizeof(cwd)); setdir(game_cwd); for (i = 0; i < games_nr; i++) { FREE(games[i].name); games[i].name = game_name(dirpath(games[i].path), games[i].dir); } setdir(cwd); return 0; } static int cmp_game(const void *p1, const void *p2) { const struct game *g1 = (const struct game*)p1; const struct game *g2 = (const struct game*)p2; int g1_s = !!strncmp(g1->path, GAMES_PATH, strlen(GAMES_PATH)); int g2_s = !!strncmp(g2->path, GAMES_PATH, strlen(GAMES_PATH)); if (g1_s != g2_s) return g1_s - g2_s; return strcmp(g1->name, g2->name); } static void games_sort() { qsort(games, games_nr, sizeof(struct game), cmp_game); } static int games_add(const char *path, const char *dir) { char *p; if (!is_game(path, dir)) return -1; p = getfilepath(path, dir); if (!p) return -1; if (!idf_magic(p)) { strcat(p, "/"); games[games_nr].idf = 0; } else games[games_nr].idf = 1; games[games_nr].path = p; games[games_nr].dir = strdup(dir); games[games_nr].name = game_name(p, dir); games_nr ++; return 0; } int games_replace(const char *path, const char *dir) { int rc; char *p; struct game *g; if (!is_game(path, dir)) return -1; g = game_lookup(dir); if (g) { if (g->idf) p = getfilepath(path, dir); else p = getpath(path, dir); if (!p) return -1; free(g->path); free(g->dir); free(g->name); g->path = p; g->dir = strdup(dir); g->name = game_name(p, dir); games_sort(); return 0; } games = realloc(games, sizeof(struct game) * (1 + games_nr)); if (!games) return -1; rc = games_add(path, dir); if (!rc) games_sort(); return rc; } int games_lookup(const char *path) { int n = 0, i = 0; DIR *d; struct dirent *de; if (!path) return 0; d = opendir(path); if (!d) return -1; while ((de = readdir(d))) { /*if (de->d_type != DT_DIR) continue;*/ if (game_lookup(de->d_name)) continue; if (!is_game(path, de->d_name)) continue; n ++; } rewinddir(d); if (!n) goto out; games = realloc(games, sizeof(struct game) * (n + games_nr)); while ((de = readdir(d)) && i < n) { /*if (de->d_type != DT_DIR) continue;*/ if (game_lookup(de->d_name)) continue; if (games_add(path, de->d_name)) continue; i ++; } out: closedir(d); games_sort(); return 0; } int games_remove(int gtr) { int rc; rc = remove_dir(games[gtr].path); free(games[gtr].name); free(games[gtr].dir); free(games[gtr].path); games_nr --; memmove(&games[gtr], &games[gtr + 1], (games_nr - gtr) * sizeof(struct game)); games = realloc(games, games_nr * sizeof(struct game)); return rc; } static int motion_mode = 0; static int motion_id = 0; static int motion_y = 0; static int mx, my; static img_t menubg = NULL; static img_t menu = NULL; static int menu_shown = 0; static int browse_dialog = 0; int game_cmd(char *cmd, int click); void game_clear(int x, int y, int w, int h) { game_cursor(CURSOR_CLEAR); if (game_theme.bg) gfx_draw_bg(game_theme.bg, x, y, w, h); else gfx_clear(x, y, w, h); if (menu_shown) { int xx = x - mx; int yy = y - my; gfx_draw_from(menubg, xx, yy, w, h, NULL, x, y); gfx_draw_from(menu, xx, yy, w, h, NULL, x, y); } } void game_clear(int x, int y, int w, int h); struct el { int id; int x; int y; int mx; int my; /* coordinates */ int type; int drawn; // int clone; union { layout_t lay; textbox_t box; img_t img; void *p; } p; }; enum { elt_box, elt_layout, elt_image, }; enum { el_menu = 1, el_title, el_ways, el_inv, el_scene, el_sup, el_sdown, // el_sslide, el_iup, el_idown, // el_islide, el_spic, el_menu_button, el_max, }; static struct el objs[el_max]; static void el_set(int i, int t, int x, int y, void *p) { objs[i].id = i; objs[i].x = x; objs[i].y = y; objs[i].p.p = p; objs[i].type = t; objs[i].drawn = 0; // objs[i].clone = 0; } static struct el *el(int num) { return &objs[num]; } static textbox_t el_box(int num) { return objs[num].p.box; } static layout_t el_layout(int num) { return objs[num].p.lay; } static img_t el_img(int num) { return objs[num].p.img; } char *game_menu_gen(void); void game_menu(int nr) { cur_menu = nr; game_menu_box(1, game_menu_gen()); } int game_error(void) { game_done(1); if (game_init(NULL)) { fprintf(stderr,"Fatal error! Can't init anything!!!\n"); exit(1); } game_menu(menu_error); return 0; } static void el_draw(int n); int window_sw = 0; int fullscreen_sw = 0; int game_load(int nr) { char *s; s = game_save_path(0, nr); if (s && !access(s, R_OK)) { char cmd[PATH_MAX]; char sav[PATH_MAX]; strcpy(sav, s); snprintf(cmd, sizeof(cmd) - 1, "load %s", s); game_cmd(cmd, 0); if (nr == -1) unlink(sav); return 0; } return -1; } int game_saves_enabled(void) { int rc; instead_function("instead.isEnableSave", NULL); rc = instead_bretval(0); instead_clear(); return rc; } int game_autosave_enabled(void) { int rc; instead_function("instead.isEnableAutosave", NULL); rc = instead_bretval(0); instead_clear(); return rc; } int game_save(int nr) { char *s = game_save_path(1, nr); char cmd[PATH_MAX]; char *p; if (s) { if (nr == -1 || nr == 0) { struct instead_args args_1[] = { { .val = "-1", .type = INSTEAD_NUM }, { .val = NULL, } }; struct instead_args args_0[] = { { .val = "0", .type = INSTEAD_NUM }, { .val = NULL, } }; if (nr == -1) instead_function("instead.autosave", args_1); /* enable saving for -1 */ else if (!game_autosave_enabled()) return 0; /* nothing todo */ else instead_function("instead.autosave", args_0); /* enable saving for 0 */ instead_clear(); } snprintf(cmd, sizeof(cmd) - 1, "save %s", s); p = instead_cmd(cmd); if (p) free(p); if (!instead_bretval(1) || (!p && err_msg)) { instead_clear(); game_menu(menu_warning); return -1; } instead_clear(); return 0; } return -1; } static int inv_enabled(void) { return (game_theme.inv_mode != INV_MODE_DISABLED); } int game_apply_theme(void) { int align = game_theme.win_align; layout_t lay; textbox_t box; memset(objs, 0, sizeof(struct el) * el_max); gfx_bg(game_theme.bgcol); if (!DIRECT_MODE) game_clear(0, 0, game_theme.w, game_theme.h); gfx_flip(); if (opt_justify == JUST_NO && align == ALIGN_JUSTIFY) align = ALIGN_LEFT; else if (opt_justify == JUST_YES && align == ALIGN_LEFT) align = ALIGN_JUSTIFY; lay = txt_layout(game_theme.font, align, game_theme.win_w, game_theme.win_h); if (!lay) return -1; box = txt_box(game_theme.win_w, game_theme.win_h); if (!box) return -1; txt_layout_color(lay, game_theme.fgcol); txt_layout_link_color(lay, game_theme.lcol); // txt_layout_link_style(lay, 4); txt_layout_active_color(lay, game_theme.acol); txt_layout_font_height(lay, game_theme.font_height); txt_box_set(box, lay); el_set(el_scene, elt_box, game_theme.win_x, 0, box); if (inv_enabled()) { lay = txt_layout(game_theme.inv_font, INV_ALIGN(game_theme.inv_mode), game_theme.inv_w, game_theme.inv_h); if (!lay) return -1; txt_layout_color(lay, game_theme.icol); txt_layout_link_color(lay, game_theme.ilcol); txt_layout_active_color(lay, game_theme.iacol); txt_layout_font_height(lay, game_theme.inv_font_height); box = txt_box(game_theme.inv_w, game_theme.inv_h); if (!box) return -1; txt_box_set(box, lay); el_set(el_inv, elt_box, game_theme.inv_x, game_theme.inv_y, box); } else el_set(el_inv, elt_box, game_theme.inv_x, game_theme.inv_y, NULL); lay = txt_layout(game_theme.font, ALIGN_CENTER, game_theme.win_w, 0); if (!lay) return -1; txt_layout_color(lay, game_theme.fgcol); txt_layout_link_color(lay, game_theme.lcol); txt_layout_active_color(lay, game_theme.acol); txt_layout_font_height(lay, game_theme.font_height); el_set(el_title, elt_layout, game_theme.win_x, game_theme.win_y, lay); lay = txt_layout(game_theme.font, ALIGN_CENTER, game_theme.win_w, 0); if (!lay) return -1; txt_layout_color(lay, game_theme.fgcol); txt_layout_link_color(lay, game_theme.lcol); txt_layout_active_color(lay, game_theme.acol); txt_layout_font_height(lay, game_theme.font_height); el_set(el_ways, elt_layout, game_theme.win_x, 0, lay); el_set(el_sdown, elt_image, 0, 0, game_theme.a_down); el_set(el_sup, elt_image, 0, 0, game_theme.a_up); el_set(el_idown, elt_image, 0, 0, game_theme.inv_a_down); el_set(el_iup, elt_image, 0, 0, game_theme.inv_a_up); el_set(el_spic, elt_image, game_theme.win_x, game_theme.win_y, NULL); el_set(el_menu, elt_layout, 0, 0, NULL); el_set(el_menu_button, elt_image, game_theme.menu_button_x, game_theme.menu_button_y, game_theme.menu_button); if (!DIRECT_MODE) { el_draw(el_menu_button); } return 0; } int game_restart(void) { char *og = curgame_dir; game_save(-1); game_done(0); if (game_init(og)) { game_error(); return 0; } return 0; } int static cur_vol = 0; void free_last_music(void); void game_stop_mus(int ms) { snd_stop_mus(ms); free_last_music(); } int game_change_vol(int d, int val) { int v = snd_volume_mus(-1); int pc = snd_vol_to_pcn(v); int opc = pc; if (d) { pc += d; if (pc < 0) pc = 0; if (pc > 100) pc = 100; while (snd_vol_to_pcn(v) != pc) v += (d<0)?-1:1; } else { v = val; pc = snd_vol_to_pcn(v); } if (!pc) v = 0; snd_volume_mus(v); if (opc && !pc) { game_stop_mus(0); } if (!opc && pc) { game_music_player(); } cur_vol = snd_volume_mus(-1); opt_vol = cur_vol; return 0; } static void sounds_reload(void); int game_change_hz(int hz) { if (!hz) return -1; snd_done(); free_last_music(); snd_init(hz); snd_volume_mus(cur_vol); sounds_reload(); game_music_player(); opt_hz = snd_hz(); return 0; } unsigned long timer_counter = 0; gtimer_t timer_han = NULL_TIMER; static void _game_gfx_commit(void *data) { gfx_commit(); } void game_gfx_commit(void) { if (gfx_pending()) push_user_event(_game_gfx_commit, NULL); } static void anigif_do(void *data) { void *v; img_t img; if (browse_dialog || menu_shown || gfx_fading() || minimized()) return; game_cursor(CURSOR_CLEAR); if (gfx_frame_gif(el_img(el_spic))) { /* scene */ game_cursor(CURSOR_DRAW); gfx_update_gif(el_img(el_spic)); } game_cursor(CURSOR_CLEAR); for (v = NULL; (img = txt_layout_images(txt_box_layout(el_box(el_scene)), &v)); ) { /* scene */ if ((img != el_img(el_spic)) && gfx_frame_gif(img)) { game_cursor(CURSOR_DRAW); gfx_update_gif(img); } } game_cursor(CURSOR_CLEAR); for (v = NULL; (img = txt_layout_images(txt_box_layout(el_box(el_inv)), &v)); ) { /* inv */ if (gfx_frame_gif(img)) { game_cursor(CURSOR_DRAW); gfx_update_gif(img); } } game_cursor(CURSOR_CLEAR); for (v = NULL; (img = txt_layout_images(el_layout(el_title), &v)); ) { /* title */ if (gfx_frame_gif(img)) { game_cursor(CURSOR_DRAW); gfx_update_gif(img); } } game_cursor(CURSOR_CLEAR); for (v = NULL; (img = txt_layout_images(el_layout(el_ways), &v)); ) { /* ways */ if (gfx_frame_gif(img)) { game_cursor(CURSOR_DRAW); gfx_update_gif(img); } } game_cursor(CURSOR_ON); game_gfx_commit(); } int counter_fn(int interval, void *p) { timer_counter ++; if (gfx_is_drawn_gifs() && !DIRECT_MODE) push_user_event(anigif_do, NULL); return interval; } int game_use_theme(void) { int rc = 0; game_theme_changed = 0; game_own_theme = 0; game_theme.changed = CHANGED_ALL; if (game_default_theme()) { fprintf(stderr, "Can't load default theme.\n"); return -1; } if (curgame_dir && (!idf_access(game_idf, THEME_FILE) || !access(dirpath(THEME_FILE), R_OK))) { game_own_theme = 1; } if (game_own_theme && opt_owntheme) { theme_relative = 1; rc = theme_load(THEME_FILE); theme_relative = 0; } else if (curtheme_dir && strlowcmp(DEFAULT_THEME, curtheme_dir)) { rc = game_theme_load(curtheme_dir); } return rc; } int game_init(const char *name) { getdir(game_cwd, sizeof(game_cwd)); unix_path(game_cwd); if (name) game_err_msg(NULL); snd_init(opt_hz); game_change_vol(0, opt_vol); if (game_select(name)) return -1; if (game_theme_optimize()) return -1; if (game_apply_theme()) { game_theme_select(DEFAULT_THEME); return -1; } timer_han = gfx_add_timer(HZ, counter_fn, NULL); if (!curgame_dir) { game_menu(menu_games); } else { if (!game_load(-1)) /* tmp save */ goto out; if ((opt_autosave & 1) && !game_load(0)) /* autosave */ goto out; game_cmd("look", 0); custom_theme_warn(); if (opt_autosave & 1) game_save(0); } out: return 0; } void free_last_music(void) { if (last_music) free(last_music); last_music = NULL; } void free_last(void) { if (last_pict) free(last_pict); if (last_title) free(last_title); if (last_cmd) free(last_cmd); last_pict = last_title = last_cmd = NULL; game_stop_mus(500); sounds_free(); } void game_release_theme(void) { int i; mouse_reset(1); game_cursor(CURSOR_OFF); if (el_img(el_spic)) gfx_free_image(el_img(el_spic)); for (i = 0; i < el_max; i++) { struct el *o; o = el(i); if (o->type == elt_layout && o->p.p) { txt_layout_free(o->p.lay); } else if (o->type == elt_box && o->p.p) { txt_layout_free(txt_box_layout(o->p.box)); txt_box_free(o->p.box); } o->p.p = NULL; o->drawn = 0; } if (menu) gfx_free_image(menu); if (menubg) gfx_free_image(menubg); menu = menubg = NULL; gfx_update(0, 0, game_theme.w, game_theme.h); } void game_done(int err) { gfx_del_timer(timer_han); timer_han = NULL_TIMER; if ((opt_autosave & 1) && curgame_dir && !err) game_save(0); curgame_dir = NULL; setdir(game_cwd); // cfg_save(); if (menu_shown) menu_toggle(-1); free_last(); /* here all lost user callback are */ game_release_theme(); game_theme_free(); input_clear(); snd_done(); instead_done(); //#ifndef ANDROID // gfx_video_done(); //#endif game_own_theme = 0; idf_done(game_idf); game_idf = NULL; need_restart = 0; // SDL_Quit(); } static void el_size(int i, int *w, int *h) { int type; type = el(i)->type; if (type == elt_layout) txt_layout_size(el_layout(i), w, h); else if (type == elt_box) txt_box_size(el_box(i), w, h); else if (type == elt_image) { if (w) *w = gfx_img_w(el_img(i)); if (h) *h = gfx_img_h(el_img(i)); } } #define el_clear(n) _el_clear(n, game_clear) #define el_clear_nobg(n) _el_clear(n, NULL) static int _el_clear(int n, clear_fn clear) { void *v; img_t img; int x, y, w, h; struct el *o; o = el(n); if (!o || !o->drawn) return 0; x = o->x; y = o->y; el_size(n, &w, &h); o->drawn = 0; if (clear) clear(x, y, w, h); if (o->type == elt_box) { for (v = NULL; (img = txt_layout_images(txt_box_layout(el_box(n)), &v)); ) gfx_dispose_gif(img); } else if (o->type == elt_layout) { for (v = NULL; (img = txt_layout_images(el_layout(n), &v)); ) gfx_dispose_gif(img); } else if (o->type == elt_image) gfx_dispose_gif(el_img(n)); return 1; } static void el_update(int n) { int x, y, w, h; struct el *o; o = el(n); // if (!o->drawn) // return; x = o->x; y = o->y; el_size(n, &w, &h); game_cursor(CURSOR_DRAW); gfx_update(x, y, w, h); return; } static void el_clip(int n) { int x, y, w, h; struct el *o; o = el(n); x = o->x; y = o->y; el_size(n, &w, &h); gfx_clip(x, y, w, h); return; } int box_isscroll_up(int n) { if (el(n)->type != elt_box) return -1; if (txt_box_off(el_box(n))) return 0; return -1; } int box_isscroll_down(int n) { int off; int h, hh; if (el(n)->type != elt_box) return -1; el_size(n, NULL, &h); txt_box_real_size(el_box(n), NULL, &hh); off = txt_box_off(el_box(n)); if (hh - off > h) return 0; return -1; } void box_update_scrollbar(int n) { struct el *elup = NULL; struct el *eldown = NULL; // struct el *elslide; int x1, y1; int x2, y2; int off; int w, h, hh; if (n == el_scene) { elup = el(el_sup); eldown = el(el_sdown); x1 = game_theme.a_up_x; y1 = game_theme.a_up_y; x2 = game_theme.a_down_x; y2 = game_theme.a_down_y; // elslide = el(el_sslide); } else if (n == el_inv) { elup = el(el_iup); eldown = el(el_idown); x1 = game_theme.inv_a_up_x; y1 = game_theme.inv_a_up_y; x2 = game_theme.inv_a_down_x; y2 = game_theme.inv_a_down_y; // elslide = el(el_islide); } else /* impossible case */ return; if (!elup || !eldown) return; // if (x1 == -1 || y1 == -1 || x2 == -1 || y2 == -1) el_size(n, &w, &h); if (x1 == -1) x1 = el(n)->x + w + game_theme.pad; if (y1 == -1) y1 = el(n)->y; if (x2 == -1) x2 = x1; if (y2 == -1) y2 = y1 + h - gfx_img_h(game_theme.a_down); txt_box_real_size(el_box(n), NULL, &hh); off = txt_box_off(el_box(n)); if (el_clear(elup->id)) { if (elup->x != x1 || elup->y != y1) el_update(elup->id); } if (el_clear(eldown->id)) { if (eldown->x != x2 || eldown->y != y2) el_update(eldown->id); } elup->x = x1; elup->y = y1; eldown->x = x2; eldown->y = y2; el_clear(elup->id); el_clear(eldown->id); if (hh - off > h) el_draw(eldown->id); if (off) el_draw(elup->id); el_update(elup->id); el_update(eldown->id); } void el_draw(int n) { int x, y; struct el *o; o = el(n); x = o->x; y = o->y; if (!o->p.p) return; game_cursor(CURSOR_CLEAR); if (o->type == elt_image) gfx_draw(o->p.img, x, y); else if (o->type == elt_layout) txt_layout_draw(o->p.lay, x, y); else if (o->type == elt_box) { txt_box_draw(o->p.box, x, y); box_update_scrollbar(o->id); } o->drawn = 1; return; } img_t game_pict_scale(img_t img, int ww, int hh) { img_t img2 = img; int w, h, www, hhh; float scale1, scale2, scale = 1.0f; game_pic_w = gfx_img_w(img); game_pic_h = gfx_img_h(img); if (!cache_have(gfx_image_cache(), img)) { game_pic_w = (int)((float)game_pic_w / (float)game_theme.scale); game_pic_h = (int)((float)game_pic_h / (float)game_theme.scale); return img; /* do not scale sprites! */ } if (game_theme.scale > 1.0f) theme_img_scale(&img); w = gfx_img_w(img); h = gfx_img_h(img); if (ww == -1) ww = w; if (hh == -1) hh = h; if (w <= ww && h <= hh) return img; www = ww; hhh = hh; while (scale * (float)w > ww || scale * (float)h > hh) { scale1 = (float)(www - 2) / (float)(w); scale2 = (float)(hhh - 2) / (float)(h); scale = (scale1drawn = 0; if (el_layout(el_menu)) { _txt_layout_free(el_layout(el_menu)); lay = el_layout(el_menu); } if (menubg) { game_cursor(CURSOR_CLEAR); gfx_draw(menubg, mx, my); gfx_free_image(menubg); menubg = NULL; } if (menu) { gfx_free_image(menu); menu = NULL; } if (!DIRECT_MODE) { el_clear(el_menu_button); if (!show) el_draw(el_menu_button); } if (!show) { game_cursor(CURSOR_DRAW); gfx_flip(); return; } if (!lay) { lay = txt_layout(game_theme.menu_font, ALIGN_CENTER, game_theme.w - 2 * (b + pad), 0); txt_layout_color(lay, game_theme.menu_fg); txt_layout_link_color(lay, game_theme.menu_link); txt_layout_active_color(lay, game_theme.menu_alink); txt_layout_font_height(lay, game_theme.menu_font_height); } else txt_layout_set_size(lay, game_theme.w - 2 * (b + pad), 0); txt_layout_set(lay, (char*)txt); txt_layout_real_size(lay, &w, &h); if (width) w = width; txt_layout_set_size(lay, w, h); txt_layout_set(lay, (char*)txt); menu = gfx_new(w + (b + pad)*2, h + (b + pad)*2); gfx_img_fill(menu, 0, 0, w + (b + pad)*2, h + (b + pad)*2, game_theme.border_col); gfx_img_fill(menu, b, b, w + pad*2, h + pad*2, game_theme.menu_bg); gfx_set_alpha(menu, game_theme.menu_alpha); x = (game_theme.w - w)/2; y = (game_theme.h - h)/2; mx = x - b - pad; my = y - b - pad; mw = w + (b + pad) * 2; mh = h + (b + pad) * 2; game_cursor(CURSOR_CLEAR); menubg = gfx_grab_screen(mx, my, mw, mh); gfx_draw(menu, mx, my); el_set(el_menu, elt_layout, /*game_theme.win_x*/ x, y, lay); el_draw(el_menu); game_cursor(CURSOR_DRAW); gfx_flip(); } void game_menu_box(int show, const char *txt) { int w = 0; if (cur_menu == menu_games) { /* hack a bit :( */ w = games_menu_maxw(); game_menu_gen(); } else if (cur_menu == menu_themes) { w = themes_menu_maxw(); game_menu_gen(); } return game_menu_box_width(show, txt, w); } int check_new_place(char *title) { int rc = 0; if (!title && !last_title) return 0; if (!title && last_title) { rc = 1; } else if (!last_title || strcmp(title, last_title)) { rc = 1; } if (last_title) { free(last_title); } last_title = title; return rc; } int check_new_pict(char *pict) { int rc = 0; if (!pict && !last_pict) return 0; if (!pict && last_pict) { rc = 1; } else if (!last_pict || strcmp(pict, last_pict)) { rc = 1; } if (last_pict) { free(last_pict); } last_pict = pict; return rc; } static int check_fading(int *new_scene) { int rc; int st; instead_function("instead.get_fading", NULL); rc = instead_bretval(0); st = instead_iretval(1); if (st < 0) st = 0; else if (st > 255) st = 255; instead_clear(); if (new_scene) *new_scene = rc; return st; } static void game_autosave(void) { int b,r; if (!curgame_dir) return; instead_function("instead.get_autosave", NULL); b = instead_bretval(0); r = instead_iretval(1); instead_clear(); if (b) { r = r % MAX_SAVE_SLOTS; game_save(r); /* instead_eval("game.autosave = false;"); instead_clear();*/ } } static void game_instead_restart(void) { int b; if (!curgame_dir) return; instead_function("instead.get_restart", NULL); b = instead_bretval(0); instead_clear(); need_restart = b; } static void finish_music(void *data) { int rc; if (!curgame_dir) return; instead_function("instead.finish_music", NULL); rc = instead_bretval(0); instead_clear(); if (rc) free_last_music(); snd_volume_mus(cur_vol); /* reset volume */ } void game_music_finished(void) { push_user_event(&finish_music, NULL); } void game_music_player(void) { int loop; char *mus; int cf_out = 0; int cf_in = 0; if (!snd_volume_mus(-1)) return; if (!opt_music || !curgame_dir) return; instead_function("instead.get_music", NULL); mus = instead_retval(0); loop = instead_iretval(1); unix_path(mus); instead_clear(); instead_function("instead.get_music_fading", NULL); cf_out = instead_iretval(0); cf_in = instead_iretval(1); instead_clear(); if (mus && loop == -1) { /* disabled, 0 - forever, 1-n - loops */ free(mus); mus = NULL; } if (loop == 0) loop = -1; if (cf_out == 0) cf_out = 500; else if (cf_out < 0) cf_out = 0; if (cf_in < 0) cf_in = 0; if (!mus) { if (last_music) { game_stop_mus(cf_out); } } else if (!last_music || strcmp(last_music, mus)) { game_stop_mus(cf_out); last_music = mus; snd_play_mus(mus, cf_in, loop); } else free(mus); } #define MAX_WAVS SND_CHANNELS * 2 static LIST_HEAD(sounds); static int sounds_nr = 0; typedef struct { struct list_head list; char *fname; wav_t wav; int loaded; int system; } _snd_t; typedef struct { _snd_t *snd; int loop; int channel; } _snd_req_t; static _snd_t *channels[SND_CHANNELS] = {}; static _snd_req_t sound_reqs[SND_CHANNELS] = {}; static void sound_play(_snd_t *sn, int chan, int loop); static void sound_callback(void *aux) { _snd_req_t *r; int channel = *((int *)aux); int c = channel % SND_CHANNELS; free(aux); // fprintf(stderr, "finished: %d\n", channel); channels[c] = NULL; r = &sound_reqs[c]; if (r->snd) { _snd_t *s = r->snd; r->snd = NULL; sound_play(s, channel, r->loop); } else { snd_halt_chan(channel, 0); /* to avoid races */ } } void game_channel_finished(int channel) { int *i = malloc(sizeof(channel)); if (!i) { fprintf(stderr, "game_channel_finished: No memory\n"); return; } *i = channel; push_user_event(sound_callback, i); } static int sound_playing(_snd_t *snd) { int i; for (i = 0; i < SND_CHANNELS; i++) { if (channels[i] == snd) return i; if (sound_reqs[i].snd == snd) return i; } return -1; } const char *sound_channel(int i) { _snd_t *sn; if (i >= SND_CHANNELS) i = i % SND_CHANNELS; if (i == -1) { for (i = 0; i < SND_CHANNELS; i++) { sn = channels[i]; if (sn && !sn->system) return sn->fname; } return NULL; } sn = channels[i]; if (!sn) return NULL; if (sn->system) return NULL; /* hidden system sound */ return sn->fname; } static void sound_free(_snd_t *sn) { if (!sn) return; list_del(&sn->list); sounds_nr --; free(sn->fname); snd_free_wav(sn->wav); free(sn); } static void sounds_shrink(void) { struct list_head *pos, *pos2; _snd_t *sn; pos = sounds.next; // fprintf(stderr,"shrink try\n"); while (pos != &sounds && sounds_nr > MAX_WAVS) { sn = (_snd_t*)pos; if (sound_playing(sn) != -1 || sn->loaded) { pos = pos->next; continue; } pos2 = pos->next; sound_free(sn); pos = pos2; // fprintf(stderr,"shrink by 1\n"); } } void sounds_free(void) { int i = 0; struct list_head *pos, *pos2; _snd_t *sn; pos = sounds.next; snd_halt_chan(-1, 0); /* halt sounds */ while (pos != &sounds) { sn = (_snd_t*)pos; pos2 = pos->next; if (sn->system) sn->loaded = 1; /* ref by system only */ else sound_free(sn); pos = pos2; } for (i = 0; i < SND_CHANNELS; i++) { channels[i] = NULL; sound_reqs[i].snd = NULL; } // sounds_nr = 0; // fprintf(stderr, "%d\n", sounds_nr); input_uevents(); /* all callbacks */ } static _snd_t *sound_find(const char *fname) { struct list_head *pos; _snd_t *sn; list_for_each(pos, &sounds) { sn = (_snd_t*)pos; if (!strcmp(fname, sn->fname)) { list_move(&sn->list, &sounds); // move it on head return sn; } } return NULL; } static int sound_find_channel(int chan) { int i; for (i = 0; i < SND_CHANNELS; i ++) { if (!channels[i] && !sound_reqs[i].snd) return i; } return -1; } static void sound_play(_snd_t *sn, int chan, int loop) { int c; if (!sn) return; if (chan == -1) { c = sound_find_channel(chan); if (c == -1) return; /* all channels are busy */ } else c = chan; if (channels[c]) { sound_reqs[c].snd = sn; sound_reqs[c].loop = loop; sound_reqs[c].channel = chan; snd_halt_chan(chan, 0); /* work in callback */ input_uevents(); /* all callbacks */ return; } c = snd_play(sn->wav, c, loop - 1); // fprintf(stderr, "added: %d\n", c); if (c == -1) return; channels[c] = sn; } static _snd_t *sound_add(const char *fname) { wav_t w; _snd_t *sn; if (!fname || !*fname) return NULL; sn = malloc(sizeof(_snd_t)); if (!sn) return NULL; INIT_LIST_HEAD(&sn->list); sn->fname = strdup(fname); sn->loaded = 0; sn->system = 0; if (!sn->fname) { free(sn); return NULL; } w = snd_load_wav(fname); if (!w) goto err; sn->wav = w; sounds_shrink(); list_add(&sn->list, &sounds); sounds_nr ++; return sn; err: free(sn->fname); free(sn); return NULL; } static void sounds_reload(void) { struct list_head *pos; _snd_t *sn; int i; snd_halt_chan(-1, 0); /* stop all sound */ list_for_each(pos, &sounds) { sn = (_snd_t*)pos; snd_free_wav(sn->wav); sn->wav = snd_load_wav(sn->fname); } for (i = 0; i < SND_CHANNELS; i++) { channels[i] = NULL; sound_reqs[i].snd = NULL; } input_clear(); /* all callbacks */ } static void *_sound_get(const char *fname) { _snd_t *sn; sn = sound_find(fname); if (sn) { sn->loaded ++; /* to pin */ return sn; } sn = sound_add(fname); if (!sn) return NULL; sn->loaded = 1; return sn; } static void _sound_put(void *s) { _snd_t *sn = (_snd_t *)s; if (!sn || !sn->loaded) return; if (!sn->system || sn->loaded > 1) sn->loaded --; if (!sn->loaded && sound_playing(sn) == -1) sound_free(sn); return; } void *sound_get(const char *fname) { _snd_t *sn = _sound_get(fname); if (!sn) return NULL; sn->system = 1; return sn; } void sound_put(void *s) { _snd_t *sn = (_snd_t *)s; if (!sn) return; sn->system = 0; _sound_put(sn); } int sound_load(const char *fname) { _snd_t *sn = _sound_get(fname); if (!sn) return -1; return 0; } void sound_unload(const char *fname) { _snd_t *sn; sn = sound_find(fname); _sound_put(sn); return; } static int _play_combined_snd(char *filename, int chan, int loop) { char *str; char *p, *ep; _snd_t *sn; p = str = strdup(filename); if (!str) return -1; p = strip(p); while (*p) { int c = chan, l = loop; int at = 0; ep = p + strcspn(p, ";@"); if (*ep == '@') { at = 1; *ep = 0; ep ++; sscanf(ep, "%d,%d", &c, &l); ep += strcspn(ep, ";"); if (*ep) ep ++; } else if (*ep == ';') { *ep = 0; ep ++; } else if (*ep) { goto err; } p = strip(p); sn = sound_find(p); if (!sn) sn = sound_add(p); if (sn) sound_play(sn, c, l); else if (at || c != -1) /* if @ or specific channel */ snd_halt_chan(c, 500); p = ep; } free(str); return 0; err: free(str); return -1; } void game_sound_player(void) { char *snd; int chan = -1; int loop = 1; struct instead_args args[] = { { .val = "nil", .type = INSTEAD_NIL }, { .val = "-1", .type = INSTEAD_NUM }, { .val = NULL } }; if (!snd_volume_mus(-1)) return; instead_function("instead.get_sound", NULL); loop = instead_iretval(2); chan = instead_iretval(1); snd = instead_retval(0); instead_clear(); if (!snd) { if (chan != -1) { /* halt channel */ snd_halt_chan(chan, 500); instead_function("instead.set_sound", args); instead_clear(); } return; } instead_function("instead.set_sound", args); instead_clear(); unix_path(snd); _play_combined_snd(snd, chan, loop); free(snd); } static char *get_inv(void) { char *ni; struct instead_args args[] = { { .val = NULL, .type = INSTEAD_BOOL }, { .val = NULL, }, }; args[0].val = (INV_MODE(game_theme.inv_mode) == INV_MODE_HORIZ)?"true":"false"; instead_function("instead.get_inv", args); ni = instead_retval(0); instead_clear(); return ni; } static int find_diff_pos(const char *p1, const char *p2) { int pos = 0; if (!p1 || !p2) return -1; while ((*p1 == *p2) && *p1) { p1 ++; p2 ++; pos ++; } if (!*p1) return -1; return pos; } static void scroll_to_diff(const char *cmdstr, int cur_off, int new_scene) { int off = 0; int pos = 0; int h = 0; int hh = 0; off = txt_layout_anchor(txt_box_layout(el_box(el_scene)), &hh); /* tag? */ if (off == -1) { if (new_scene) return; /* nothing to do */ pos = find_diff_pos(cmdstr, last_cmd); if (pos != -1) off = txt_layout_pos2off(txt_box_layout(el_box(el_scene)), pos, &hh); if (off == -1) off = cur_off; } el_size(el_scene, NULL, &h); if (game_theme.win_scroll_mode == 2 && (cur_off <= off && cur_off + h >= off + hh)) { /* do not scroll */ off = cur_off; } txt_box_scroll(el_box(el_scene), off); } static void scroll_to_last(void) { int w, h; txt_layout_size(txt_box_layout(el_box(el_scene)), &w, &h); txt_box_scroll(el_box(el_scene), h); } int game_highlight(int x, int y, int on); int game_pict_modify(img_t p) { static int modify = 0; int last = modify; if (p && ((el_img(el_spic) == p) || p == gfx_screen(NULL))) modify = 1; else modify = 0; return last; } static void game_pict_clip(void) { int x, y, w, h; if (GFX_MODE(game_theme.gfx_mode) == GFX_MODE_EMBEDDED) { el_clip(el_scene); return; } if (GFX_MODE(game_theme.gfx_mode) != GFX_MODE_FLOAT) { x = game_theme.win_x; y = game_theme.win_y; w = game_theme.win_w; h = game_theme.win_h; } else { x = game_theme.gfx_x; y = game_theme.gfx_y; w = game_theme.max_scene_w; h = game_theme.max_scene_h; } gfx_clip(x, y, w, h); } static void game_redraw_pic(void) { int x, y, ox, oy; if (game_pict_coord(&x, &y, NULL, NULL)) return; game_pict_clip(); ox = el(el_spic)->x; oy = el(el_spic)->y; el(el_spic)->x = x; el(el_spic)->y = y; el_clear(el_spic); el_draw(el_spic); gfx_noclip(); el_update(el_spic); el(el_spic)->x = ox; el(el_spic)->y = oy; } static xref_t hl_xref = NULL; static struct el *hl_el = NULL; int game_cmd(char *cmd, int click) { int old_off; int fading = 0; int new_pict = 0; int new_place = 0; int redraw_pict = 0; int title_h = 0, ways_h = 0, pict_h = 0; char buf[1024]; char *cmdstr = NULL; char *invstr = NULL; char *waystr = NULL; char *title = NULL; char *pict = NULL; img_t oldscreen = NULL; int dd = (DIRECT_MODE); int rc = 0; int new_scene = 0; int m_restore = 0; if (menu_shown) return -1; // if (dd) game_cursor(CURSOR_CLEAR); cmdstr = instead_cmd(cmd); rc = !instead_bretval(1); instead_clear(); game_music_player(); game_sound_player(); if (opt_click && click && !rc) sound_play(game_theme.click, -1, 1); if (DIRECT_MODE) { if (cmdstr) free(cmdstr); if (game_theme_changed == 2) { /* cursor change only? */ img_t offscreen = gfx_new(game_theme.w, game_theme.h); oldscreen = gfx_screen(offscreen); gfx_draw(oldscreen, 0, 0); game_theme_update(); game_theme_changed = 1; offscreen = gfx_screen(oldscreen); gfx_change_screen(offscreen, 1); gfx_free_image(offscreen); } if (game_pict_modify(NULL)) goto out; return rc; } else if (dd) { /* disable direct mode on the fly */ game_theme_changed = 2; /* force redraw */ game_cursor(CURSOR_DRAW); } if (!cmdstr) { if (game_pict_modify(NULL)) /* redraw pic only */ game_redraw_pic(); if (!rc) { if (hl_el == el(el_inv)) { m_restore = !click; mouse_reset(0); } goto inv; /* hackish? ok, yes it is... */ } goto err; /* really nothing to do */ } m_restore = !click; mouse_reset(0); /* redraw all, so, reset mouse */ fading = check_fading(&new_scene); instead_function("instead.get_title", NULL); title = instead_retval(0); instead_clear(); new_place = check_new_place(title); instead_function("instead.get_picture", NULL); pict = instead_retval(0); instead_clear(); unix_path(pict); new_pict = check_new_pict(pict); if (game_theme_changed == 2 && opt_owntheme && !fading) fading = 1; /* one frame at least */ if (fading) { /* take old screen */ game_cursor(CURSOR_CLEAR); img_t offscreen = gfx_new(game_theme.w, game_theme.h); oldscreen = gfx_screen(offscreen); gfx_draw(oldscreen, 0, 0); } if (game_theme_changed == 2 && opt_owntheme) { game_theme_update(); game_theme_changed = 1; new_place = 1; if (pict) new_pict = 1; } if (new_place) el_clear(el_title); if (title && *title) { snprintf(buf, sizeof(buf), "%s", title); txt_layout_set(el_layout(el_title), buf); txt_layout_size(el_layout(el_title), NULL, &title_h); title_h += game_theme.font_size * game_theme.font_height / 2; // todo? } else txt_layout_set(el_layout(el_title), NULL); if (new_pict || fading || game_pict_modify(NULL) || (new_place && (GFX_MODE(game_theme.gfx_mode) == GFX_MODE_FIXED))) { redraw_pict = 1; } game_pict_clip(); if (redraw_pict) { if (el_img(el_spic)) { if (GFX_MODE(game_theme.gfx_mode) == GFX_MODE_EMBEDDED) el_clear_nobg(el_spic); else el_clear(el_spic); if (new_pict) { gfx_free_image(el_img(el_spic)); el(el_spic)->p.p = NULL; if (GFX_MODE(game_theme.gfx_mode) == GFX_MODE_EMBEDDED && !el(el_spic)->p.p) /* clear embedded gfx */ txt_layout_add_img(txt_box_layout(el_box(el_scene)), "scene", NULL); } } } if (pict) { int w, h, x; img_t img; if (new_pict) { img = gfx_load_image(pict); if (GFX_MODE(game_theme.gfx_mode) != GFX_MODE_FLOAT) img = game_pict_scale(img, game_theme.win_w, game_theme.max_scene_h); else img = game_pict_scale(img, game_theme.max_scene_w, game_theme.max_scene_h); } else img = el_img(el_spic); if (img) { w = gfx_img_w(img); h = gfx_img_h(img); if (GFX_MODE(game_theme.gfx_mode) != GFX_MODE_FLOAT) { x = (game_theme.win_w - w)/2 + game_theme.win_x; if (redraw_pict) el_set(el_spic, elt_image, x, game_theme.win_y + title_h, img); } else { int xx, yy; if (GFX_ALIGN(game_theme.gfx_mode) & ALIGN_TOP) yy = 0; else if (GFX_ALIGN(game_theme.gfx_mode) & ALIGN_BOTTOM) yy = game_theme.max_scene_h - h; else yy = (game_theme.max_scene_h - h)/2; if (GFX_ALIGN(game_theme.gfx_mode) & ALIGN_LEFT) xx = 0; else if (GFX_ALIGN(game_theme.gfx_mode) & ALIGN_RIGHT) xx = game_theme.max_scene_w - w; else xx = (game_theme.max_scene_w - w)/2; x = xx + game_theme.gfx_x; if (redraw_pict) el_set(el_spic, elt_image, x, game_theme.gfx_y + yy, img); } pict_h = h; } } gfx_noclip(); /* clear area */ el_clear(el_ways); el_clear(el_scene); instead_function("instead.get_ways", NULL); waystr = instead_retval(0); instead_clear(); if (waystr) { int l = strlen(waystr); if (l && waystr[l - 1] == '\n') waystr[l - 1] = 0; } if (game_theme.gfx_mode != GFX_MODE_EMBEDDED) { txt_layout_set(el_layout(el_ways), waystr); txt_layout_size(el_layout(el_ways), NULL, &ways_h); } old_off = txt_box_off(el_box(el_scene)); if (GFX_MODE(game_theme.gfx_mode) == GFX_MODE_EMBEDDED) { char *p; pict_h = 0; /* to fake code bellow */ txt_layout_set(txt_box_layout(el_box(el_scene)), ""); /* hack, to null layout, but not images */ if (el_img(el_spic)) { txt_layout_add_img(txt_box_layout(el_box(el_scene)),"scene", el_img(el_spic)); txt_layout_add(txt_box_layout(el_box(el_scene)), "\n"); } p = malloc(strlen(cmdstr) + ((waystr)?strlen(waystr):0) + 16); if (p) { *p = 0; if ((waystr && *waystr) || el_img(el_spic)) { /* is this hack needed? */ if (waystr) strcpy(p, waystr); strcat(p, "\n"); /* small hack */ } strcat(p, cmdstr); free(cmdstr); cmdstr = p; } else { /* paranoia? Yes... */ txt_layout_add(txt_box_layout(el_box(el_scene)), waystr); txt_layout_add(txt_box_layout(el_box(el_scene)), "\n"); /* small hack */ } txt_layout_add(txt_box_layout(el_box(el_scene)), cmdstr); txt_box_set(el_box(el_scene), txt_box_layout(el_box(el_scene))); } else { if (GFX_MODE(game_theme.gfx_mode) == GFX_MODE_FLOAT) pict_h = 0; txt_layout_set(txt_box_layout(el_box(el_scene)), cmdstr); txt_box_set(el_box(el_scene), txt_box_layout(el_box(el_scene))); } el(el_ways)->y = el(el_title)->y + title_h + pict_h; if (waystr) free(waystr); el(el_scene)->y = el(el_ways)->y + ways_h; /* game_clear(game_theme.win_x, game_theme.win_y + pict_h + title_h, game_theme.win_w, game_theme.win_h - pict_h - title_h); */ /* draw title and ways */ if (new_place) el_draw(el_title); if (game_theme.gfx_mode != GFX_MODE_EMBEDDED) { el_draw(el_ways); if (redraw_pict) { game_pict_clip(); el_draw(el_spic); gfx_noclip(); } } txt_box_resize(el_box(el_scene), game_theme.win_w, game_theme.win_h - title_h - ways_h - pict_h); if (game_theme.win_scroll_mode == 1 || game_theme.win_scroll_mode == 2) { scroll_to_diff(cmdstr, old_off, new_scene); } else if (game_theme.win_scroll_mode == 3) { scroll_to_last(); } FREE(last_cmd); last_cmd = cmdstr; el_draw(el_scene); inv: if (inv_enabled()) { int off; invstr = get_inv(); off = txt_box_off(el_box(el_inv)); txt_layout_set(txt_box_layout(el_box(el_inv)), invstr); txt_box_set(el_box(el_inv), txt_box_layout(el_box(el_inv))); txt_box_scroll(el_box(el_inv), off); if (invstr) free(invstr); el_clear(el_inv); el_draw(el_inv); } if (fading) { img_t offscreen; game_cursor(CURSOR_CLEAR); gfx_stop_gif(el_img(el_spic)); offscreen = gfx_screen(oldscreen); gfx_change_screen(offscreen, fading); gfx_start_gif(el_img(el_spic)); gfx_free_image(offscreen); // input_clear(); } { int x, y; if (!m_restore || mouse_restore()) { gfx_cursor(&x, &y); game_highlight(x, y, 1); /* highlight new scene, to avoid flickering */ } } if (fading) goto err; out: game_cursor(CURSOR_DRAW); gfx_flip(); // input_clear(); err: game_autosave(); game_instead_restart(); #if 0 if (err_msg) { mouse_reset(1); game_menu(menu_warning); return -1; } #endif return rc; } void game_update(int x, int y, int w, int h) { game_cursor(CURSOR_DRAW); gfx_update(x, y, w, h); } void game_xref_update(xref_t xref, int x, int y) { game_cursor(CURSOR_CLEAR); xref_update(xref, x, y, game_clear, game_update); } xref_t use_xref = NULL; int disable_use(void) { if (use_xref) { xref_set_active(use_xref, 0); if (xref_layout(use_xref) == txt_box_layout(el_box(el_inv))) game_xref_update(use_xref, el(el_inv)->x, el(el_inv)->y); else game_xref_update(use_xref, el(el_scene)->x, el(el_scene)->y); use_xref = NULL; return 1; } return 0; } void enable_use(xref_t xref) { use_xref = xref; xref_set_active(xref, 1); if (xref_layout(use_xref) == txt_box_layout(el_box(el_inv))) game_xref_update(use_xref, el(el_inv)->x, el(el_inv)->y); else game_xref_update(use_xref, el(el_scene)->x, el(el_scene)->y); } struct el *look_obj(int x, int y) { int i; for (i = 0; i < el_max; i++) { int w, h; if (el(i)->drawn && el(i)->id == el_menu) { return el(i); } if (x < el(i)->x || y < el(i)->y || !el(i)->drawn) continue; el_size(i, &w, &h); if (x >= el(i)->x && y >= el(i)->y && x < el(i)->x + w && y < el(i)->y + h) return el(i); } return NULL; } static xref_t get_nearest_xref(int i, int mx, int my); xref_t look_xref(int x, int y, struct el **elem) { struct el *o; int type; xref_t xref = NULL; o = look_obj(x, y); if (elem) *elem = o; if (!o) return NULL; type = o->type; if (type == elt_layout) xref = txt_layout_xref(o->p.lay, x - o->x, y - o->y); else if (type == elt_box) xref = txt_box_xref(o->p.box, x - o->x, y - o->y); #ifdef ANDROID if (!xref) { int xc, yc, r; xref = get_nearest_xref(o->id, x, y); if (!xref) return NULL; r = fnt_height(txt_layout_font(xref_layout(xref))) * 2; /* radius is here */ if (!xref_position(xref, &xc, &yc)) { if (o->type == elt_box && yc) yc -= txt_box_off(el_box(o->id)); xc += o->x; yc += o->y; if (((x - xc)*(x - xc) + (y - yc)*(y - yc)) < (r * r)) return xref; } return NULL; } #endif return xref; } static xref_t click_xref = NULL; static struct el *click_el = NULL; static unsigned long click_time = 0; static int click_x = -1; static int click_y = -1; int menu_visible(void) { if (menu_shown) return cur_menu; return 0; } int game_paused(void) { return browse_dialog || menu_shown || use_xref || click_xref || gfx_fading() || minimized() || instead_busy(); } void menu_update(struct el *elem) { gfx_draw(menubg, mx, my); gfx_draw(menu, mx, my); txt_layout_draw(elem->p.lay, elem->x, elem->y); gfx_update(mx, my, gfx_img_w(menu), gfx_img_h(menu)); // gfx_fill(x, y, w, h, game_theme.menu_bg); } int game_highlight(int x, int y, int on) { struct el *elem = NULL; xref_t xref = NULL; if (on == 1) { xref = look_xref(x, y, &elem); if (xref && opt_hl && !xref_get_active(xref)) { xref_set_active(xref, 1); game_xref_update(xref, elem->x, elem->y); } } if (hl_xref != xref && hl_el) { if (hl_xref != use_xref && xref_get_active(hl_xref)) { xref_set_active(hl_xref, 0); game_xref_update(hl_xref, hl_el->x, hl_el->y); } } hl_xref = xref; hl_el = elem; return 0; } void mouse_reset(int hl) { if (hl) game_highlight(-1, -1, 0); else hl_xref = hl_el = NULL; disable_use(); motion_mode = 0; click_xref = click_el = NULL; } void menu_toggle(int menu) { mouse_reset(1); menu_shown ^= 1; if (!menu_shown) cur_menu = menu_main; else if (menu != -1) cur_menu = menu; game_menu_box(menu_shown, game_menu_gen()); } static int scroll_pup(int id) { int hh; if (box_isscroll_up(id)) return -1; // game_highlight(-1, -1, 0); // if (game_theme.gfx_mode == GFX_MODE_EMBEDDED) { el_size(el_scene, NULL, &hh); txt_box_scroll(el_box(id), -hh); // } else // txt_box_prev(el_box(id)); el_clear(id); el_draw(id); el_update(id); return 0; } static int scroll_pdown(int id) { int hh; if (box_isscroll_down(id)) return -1; // game_highlight(-1, -1, 0); // if (game_theme.gfx_mode == GFX_MODE_EMBEDDED) { el_size(el_scene, NULL, &hh); txt_box_scroll(el_box(id), hh); // } else // txt_box_next(el_box(id)); el_clear(id); el_draw(id); el_update(id); return 0; } int mouse_filter(int filter) { static unsigned int old_counter = 0; if (!opt_filter || !mouse_filter_delay) return 0; if (filter && (abs(old_counter - timer_counter) <= (mouse_filter_delay / HZ))) /* 400 ms */ return -1; old_counter = timer_counter; return 0; } /* action: 0 - first click,1 - second, -1 - restore */ int game_click(int x, int y, int action, int filter) { int menu_mode = 0; int use_mode = 0; int go_mode = 0; struct el *elem = NULL; char buf[1024]; xref_t xref = NULL; char *xref_txt; int was_motion = (motion_mode == 2); if (!action) { click_x = x; click_y = y; motion_y = y; click_time = timer_counter; } else if (action == 1) { click_x = -1; click_y = -1; } if (action) motion_mode = 0; if (filter && opt_filter && action == 1) { xref_t new_xref; struct el *new_elem; new_xref = look_xref(x, y, &new_elem); if (new_xref != click_xref || new_elem != click_el) { click_el = NULL; if (click_xref) { click_xref = NULL; return 0; /* just filtered */ } click_xref = NULL; } } if (action == 1) { xref = click_xref; elem = click_el; click_xref = NULL; click_el = NULL; } else { /* just press */ xref = look_xref(x, y, &elem); if (xref) { xref_set_active(xref, 1); game_xref_update(xref, elem->x, elem->y); } else if (elem && elem->type == elt_box && opt_motion && (!box_isscroll_up(elem->id) || !box_isscroll_down(elem->id))) { motion_mode = 1; motion_id = elem->id; return 0; } click_xref = xref; click_el = elem; return 0; } /* now look only second press */ if (!xref) { if (elem) { if (elem->id == el_menu_button) { menu_toggle(-1); } else if (elem->id == el_sdown) { scroll_pdown(el_scene); } else if (elem->id == el_sup) { scroll_pup(el_scene); } else if (elem->id == el_idown) { scroll_pdown(el_inv); } else if (elem->id == el_iup) { scroll_pup(el_inv); } else if (disable_use()); // el_update(el_inv); motion_mode = 0; } else if (!(was_motion && MOTION_TIME)) { disable_use(); // el_update(el_inv); // gfx_flip(); } return 0; } /* second xref */ if (elem->id == el_menu) { // xref_set_active(xref, 0); // txt_layout_update_links(elem->p.lay, elem->x, elem->y, game_clear); if (game_menu_act(xref_get_text(xref))) { return -1; } // game_menu_box(menu_shown, game_menu_gen()); // gfx_flip(); return 1; } xref_txt = xref_get_text(xref); if (!strncmp("act ", xref_get_text(xref), 4)) { menu_mode = 1; xref_txt += 4; } else if (!strncmp("use ", xref_get_text(xref), 4)) { use_mode = 1; xref_txt += 4; } else if (!strncmp("go ", xref_get_text(xref), 3)) { go_mode = 1; xref_txt += 3; } else if (elem->id == el_inv) { use_mode = 1; } if (!use_xref) { if (use_mode) { enable_use(xref); // el_update(el_inv); return 0; } if (menu_mode) { if (elem->id == el_inv) snprintf(buf, sizeof(buf), "use %s", xref_txt); else snprintf(buf, sizeof(buf), "act %s", xref_txt); } else snprintf(buf, sizeof(buf), "%s", xref_get_text(xref)); if (mouse_filter(filter)) return 0; game_cmd(buf, 1); return 1; } if (menu_mode || go_mode || elem->id == el_title) return 0; if (use_xref == xref) snprintf(buf,sizeof(buf), "use %s", xref_txt); else { if (!strncmp("use ", xref_get_text(use_xref), 4)) /* already use */ snprintf(buf,sizeof(buf), "%s,%s", xref_get_text(use_xref), xref_txt); else snprintf(buf,sizeof(buf), "use %s,%s", xref_get_text(use_xref), xref_txt); } if (mouse_filter(filter)) return 0; disable_use(); game_cmd(buf, 1); return 1; } int mouse_restore(void) { if (click_x == -1 || click_y == -1) return -1; game_click(click_x, click_y, -1, 0); return 0; } void game_cursor(int on) { static img_t grab = NULL; static img_t cur = NULL; static int xc = 0, yc = 0, w = 0, h = 0; //, w, h; int xx, yy, ww, hh; gfx_getclip(&xx, &yy, &ww, &hh); gfx_noclip(); if (on == CURSOR_OFF) cur = NULL; if (grab) { gfx_draw(grab, xc, yc); gfx_free_image(grab); grab = NULL; } if (on == CURSOR_OFF) { gfx_update(xc, yc, w, h); goto out; } if (on == CURSOR_CLEAR) goto out; if (on != CURSOR_DRAW) cur = (use_xref) ? game_theme.use:game_theme.cursor; if (!cur) goto out; do { int ox = xc; int oy = yc; int ow = w; int oh = h; if (on != CURSOR_DRAW) { gfx_cursor(&xc, &yc); xc -= game_theme.cur_x; yc -= game_theme.cur_y; } w = gfx_img_w(cur); h = gfx_img_h(cur); grab = gfx_grab_screen(xc, yc, w, h); if (mouse_focus()) gfx_draw(cur, xc, yc); if (on != CURSOR_DRAW) { gfx_update(xc, yc, w, h); gfx_update(ox, oy, ow, oh); } } while (0); out: gfx_clip(xx, yy, ww, hh); return; } static void scroll_up(int id, int count) { // int i; if (box_isscroll_up(id)) return; // game_highlight(-1, -1, 0); // if (game_theme.gfx_mode == GFX_MODE_EMBEDDED) txt_box_scroll(el_box(id), -(FONT_SZ(game_theme.font_size)) * count); // else // for (i = 0; i < count; i++) // txt_box_prev_line(el_box(id)); el_clear(id); el_draw(id); el_update(id); } static void scroll_down(int id, int count) { // int i; if (box_isscroll_down(id)) return; // game_highlight(-1, -1, 0); // if (game_theme.gfx_mode == GFX_MODE_EMBEDDED) txt_box_scroll(el_box(id), (FONT_SZ(game_theme.font_size)) * count); // else // for (i = 0; i < count; i++) // txt_box_next_line(el_box(id)); el_clear(id); el_draw(id); el_update(id); } static int scroll_possible(int id, int off) { if (!off || (off > 0 && box_isscroll_down(id)) || (off < 0 && box_isscroll_up(id))) return -1; return 0; } static void scroll_motion(int id, int off) { if (scroll_possible(id, off)) return; game_highlight(-1, -1, 0); txt_box_scroll(el_box(id), off); el_clear(id); el_draw(id); el_update(id); } static int sel_el = 0; static void frame_next(void) { if (sel_el == el_scene && !inv_enabled()) sel_el = el_inv; switch(sel_el) { default: case 0: sel_el = el_scene; break; case el_ways: sel_el = el_scene; break; case el_scene: sel_el = el_inv; break; case el_inv: if (game_theme.gfx_mode != GFX_MODE_EMBEDDED && txt_layout_xrefs(el_layout(el_ways))) sel_el = el_ways; else sel_el = el_scene; break; } } static void frame_prev(void) { switch(sel_el) { default: case 0: sel_el = el_inv; break; case el_title: sel_el = el_inv; break; case el_ways: sel_el = el_inv; break; case el_scene: if (game_theme.gfx_mode != GFX_MODE_EMBEDDED && txt_layout_xrefs(el_layout(el_ways))) sel_el = el_ways; else sel_el = el_inv; break; case el_inv: sel_el = el_scene; break; } if (sel_el == el_inv && !inv_enabled()) sel_el = el_scene; } static int select_ref(int prev, int last); static xref_t get_xref(int i, int last); static void xref_jump(xref_t xref, struct el* elem); static void select_frame(int prev) { struct el *elem = NULL; int x, y, w, h; gfx_cursor(&x, &y); elem = look_obj(x, y); if (elem) sel_el = elem->id; el(sel_el)->mx = x; el(sel_el)->my = y; if (menu_shown) { sel_el = el_menu; } else { // int old_sel; // if (!sel_el) // frame_next(); // old_sel = sel_el; // do { if (prev) { frame_prev(); } else { frame_next(); } // } while (!get_xref(sel_el, 0) && sel_el != old_sel); } el_size(sel_el, &w, &h); x = el(sel_el)->mx; y = el(sel_el)->my; if (x < el(sel_el)->x || y < el(sel_el)->y || x > el(sel_el)->x + w || y > el(sel_el)->y + h) { x = el(sel_el)->x + w / 2; y = el(sel_el)->y + h / 2; } gfx_warp_cursor(x, y); if (!look_xref(x, y, &elem) && elem) { xref_t xref = get_nearest_xref(elem->id, x, y); xref_jump(xref, elem); } } static int xref_rel_position(xref_t xref, struct el *elem, int *x, int *y) { int rc = xref_position(xref, x, y); if (!rc && elem->type == elt_box && y) { *y -= txt_box_off(el_box(elem->id)); } return rc; } static int xref_visible(xref_t xref, struct el *elem) { int x, y, w, h; if (!elem || !xref) return -1; if (xref_rel_position(xref, elem, &x, &y)) return -1; el_size(elem->id, &w, &h); if (y < 0 || y >= h) return -1; return 0; } static xref_t get_nearest_xref(int i, int mx, int my) { xref_t xref = NULL; xref_t min_xref = NULL; int min_disp = game_theme.h * game_theme.h + game_theme.w * game_theme.w; if (!i) return NULL; for (xref = get_xref(i, 0); !xref_visible(xref, el(i)); xref = xref_next(xref)) { int x, y, disp; if (xref_rel_position(xref, el(i), &x, &y)) continue; disp = (x + el(i)->x - mx) * (x + el(i)->x - mx) + (y + el(i)->y - my) * (y + el(i)->y - my); if (disp < min_disp) { min_disp = disp; min_xref = xref; } } return min_xref; } static xref_t get_xref(int i, int last) { xref_t xref = NULL; int type; type = el(i)->type; if (type == elt_layout) { xref = txt_layout_xrefs(el_layout(i)); while (last && xref && xref_next(xref)) xref = xref_next(xref); } else if (type == elt_box) { xref = txt_box_xrefs(el_box(i)); while (!last && xref && !xref_visible(xref_prev(xref), el(i))) /* try find visible one */ xref = xref_prev(xref); while (last && xref && !xref_visible(xref_next(xref), el(i))) xref = xref_next(xref); } return xref; } static void xref_jump(xref_t xref, struct el* elem) { int x, y; if (!elem || !xref || xref_visible(xref, elem) || xref_rel_position(xref, elem, &x, &y)) return; gfx_warp_cursor(elem->x + x, elem->y + y); } static int select_ref(int prev, int last) { int x, y; struct el *elem = NULL; xref_t xref = NULL; gfx_cursor(&x, &y); xref = look_xref(x, y, &elem); if (!elem) { if (!sel_el) select_frame(0); elem = el(sel_el); } if (last) { if (!(xref = get_xref(elem->id, !prev))) return -1; } else if (xref) { if (prev) { if (!(xref = xref_prev(xref)) || xref_visible(xref, elem)) { if (!box_isscroll_up(elem->id) || !box_isscroll_down(elem->id)) return -1; else xref = get_xref(elem->id, 1); } } else { if (!(xref = xref_next(xref)) || xref_visible(xref, elem)) { if (!box_isscroll_down(elem->id) || !box_isscroll_up(elem->id)) return -1; else xref = get_xref(elem->id, 0); } } } if (!xref) xref = get_nearest_xref(elem->id, x, y); if (!xref) return -1; xref_jump(xref, elem); return 0; } static void game_scroll_up(int count) { int xm, ym; struct el *o; gfx_cursor(&xm, &ym); o = look_obj(xm, ym); if (o && (o->id == el_scene || o->id == el_inv)) { scroll_up(o->id, count); } } static void game_scroll_down(int count) { int xm, ym; struct el *o; gfx_cursor(&xm, &ym); o = look_obj(xm, ym); if (o && (o->id == el_scene || o->id == el_inv)) { scroll_down(o->id, count); } } static int game_scroll_pup(void) { int xm, ym; struct el *o; gfx_cursor(&xm, &ym); o = look_obj(xm, ym); if (o && (o->id == el_scene || o->id == el_inv)) { return scroll_pup(o->id); } return -1; } static int game_scroll_pdown(void) { int xm, ym; struct el *o; gfx_cursor(&xm, &ym); o = look_obj(xm, ym); if (o && (o->id == el_scene || o->id == el_inv)) { return scroll_pdown(o->id); } return -1; } static int is_key(struct inp_event *ev, const char *name) { return strcmp(ev->sym, name); } int game_pict_coord(int *x, int *y, int *w, int *h) { img_t img; int ww, hh; int xx, yy; word_t word; img = el_img(el_spic); if (!img) return -1; if (game_theme.gfx_mode != GFX_MODE_EMBEDDED) { xx = el(el_spic)->x; yy = el(el_spic)->y; ww = gfx_img_w(img); hh = gfx_img_h(img); goto out; } el_size(el_scene, &ww, &hh); for (word = NULL; (word = txt_layout_words(txt_box_layout(el_box(el_scene)), word)); ) { /* scene */ if (word_image(word) != img) { word = NULL; /* first word is always pic */ break; // continue; } word_geom(word, &xx, &yy, &ww, &hh); yy -= txt_box_off(el_box(el_scene)); xx += el(el_scene)->x; yy += el(el_scene)->y; break; } if (!word) return -1; out: if (x) *x = xx; if (y) *y = yy; if (w) *w = ww; if (h) *h = hh; return 0; } static int game_pic_click(int x, int y, int *ox, int *oy) { int xx, yy, ww, hh; if (game_pict_coord(&xx, &yy, &ww, &hh)) return -1; if (x >= xx && y >= yy && x < (xx + ww) && y < (yy + hh)) { *ox = x - xx; *oy = y - yy; if (ww) *ox = (int)((float)(*ox) * (float)game_pic_w / (float)ww); else *ox = 0; if (hh) *oy = (int)((float)(*oy) * (float)game_pic_h / (float)hh); else *oy = 0; return 0; } return -1; } static int game_bg_click(int x, int y, int *ox, int *oy) { struct el *o; struct game_theme *t = &game_theme; if (x < t->xoff || y < t->yoff || x >= (t->w - t->xoff) || y >= (t->h - t->yoff)) return -1; o = look_obj(x, y); if (o && (o->id == el_sup || o->id == el_sdown || o->id == el_iup || o->id == el_idown || o->id == el_menu_button)) return -1; /* ask Odyssey for that ;) */ *ox = (int)((float)(x - t->xoff) / (float)t->scale); *oy = (int)((float)(y - t->yoff) / (float)t->scale); return 0; } static int game_input(int down, const char *key, int x, int y, int mb) { char *p; struct instead_args args[8]; int rc = 0; char tx[16]; char ty[16]; char tpx[16]; char tpy[16]; char tmb[16]; if (game_paused()) return -1; if (mb == -1) { const char *k; args[0].val = "kbd"; args[0].type = INSTEAD_STR; args[1].val = (down)?"true":"false"; args[1].type = INSTEAD_BOOL; k = (key)?key:"unknown"; args[2].val = (char*)k; args[2].type = INSTEAD_STR; args[3].val = NULL; } else { int px = -1; int py = -1; game_pic_click(x, y, &px, &py); /* got picture coord */ if (game_bg_click(x, y, &x, &y)) /* no click on bg */ return -1; snprintf(tx, sizeof(tx), "%d", x); snprintf(ty, sizeof(ty), "%d", y); snprintf(tmb, sizeof(tmb), "%d", mb); args[0].val = "mouse"; args[0].type = INSTEAD_STR; args[1].val = (down)?"true":"false"; args[1].type = INSTEAD_BOOL; args[2].val = tmb; args[2].type = INSTEAD_NUM; args[3].val = tx; args[3].type = INSTEAD_NUM; args[4].val = ty; args[4].type = INSTEAD_NUM; args[5].val = NULL; if (px != -1) { snprintf(tpx, sizeof(tpx), "%d", px); snprintf(tpy, sizeof(tpy), "%d", py); args[5].val = tpx; args[5].type = INSTEAD_NUM; args[6].val = tpy; args[6].type = INSTEAD_NUM; args[7].val = NULL; } } if (instead_function("stead.input", args)) { instead_clear(); return -1; } p = instead_retval(0); instead_clear(); if (!p) return -1; rc = game_cmd(p, mb != -1); free(p); return (rc)?-1:0; } extern char zip_game_dirname[]; extern int unpack(const char *zipfilename, const char *dirname); #ifdef _USE_BROWSE int game_from_disk(void) { int i = 0; char *g, *p, *b, *d; char dir[PATH_MAX]; char base[PATH_MAX]; #ifndef MAEMO #ifndef S60 if (opt_fs) { int old_menu = (menu_shown) ? cur_menu: -1; opt_fs ^= 1; game_restart(); if (old_menu != -1) game_menu(old_menu); } #endif #endif mouse_cursor(1); game_cursor(CURSOR_OFF); browse_dialog = 1; g = p = open_file_dialog(); browse_dialog = 0; game_cursor(CURSOR_ON); mouse_cursor(0); gfx_flip(); if (!p) return -1; strcpy(dir, p); strcpy(base, p); d = dir; b = base; i = strlen(d); if (i && d[i - 1] != '/') { /* file */ if (!idf_magic(d)) { d = dirname(d); strcpy(b, d); } } d = dirname(d); b = basename(b); #ifdef _USE_UNPACK p = games_sw ? games_sw:game_local_games_path(1); fprintf(stderr,"Trying to install: %s\n", g); if (!unpack(g, p)) { if (!zip_game_dirname[0]) return -1; if (games_replace(p, zip_game_dirname)) goto clean; p = zip_game_dirname; } else if (zip_game_dirname[0]) { /* error, needs to clean */ goto clean; #else if (0) { #endif } else if (games_replace(d, b)) { return -1; } else p = b; game_done(0); if (game_init(p)) { game_error(); } return 0; #ifdef _USE_UNPACK clean: p = getpath(p, zip_game_dirname); fprintf(stderr, "Cleaning: '%s'...\n", p); remove_dir(p); free(p); return -1; #endif } #endif int game_loop(void) { static int alt_pressed = 0; static int shift_pressed = 0; static int control_pressed = 0; static int x = 0, y = 0; struct inp_event ev; memset(&ev, 0, sizeof(struct inp_event)); while (game_running) { int rc; ev.x = -1; // game_cursor(CURSOR_CLEAR); /* release bg */ while (((rc = input(&ev, 1)) == AGAIN) && !need_restart) gfx_commit(); if (rc == -1) {/* close */ break; } else if (curgame_dir && (ev.type == KEY_DOWN || ev.type == KEY_UP) && !game_input((ev.type == KEY_DOWN), ev.sym, -1, -1, -1)) { ; /* all is done in game_input */ } else if (curgame_dir && (ev.type == MOUSE_DOWN || ev.type == MOUSE_UP) && !game_input((ev.type == MOUSE_DOWN), "mouse", ev.x, ev.y, ev.code)) { ; /* all is done in game_input */ } else if (((ev.type == KEY_DOWN) || (ev.type == KEY_UP)) && (!is_key(&ev, "left alt") || !is_key(&ev, "right alt"))) { alt_pressed = (ev.type == KEY_DOWN) ? 1:0; } else if (((ev.type == KEY_DOWN) || (ev.type == KEY_UP)) && (!is_key(&ev,"left shift") || !is_key(&ev, "right shift"))) { shift_pressed = (ev.type == KEY_DOWN) ? 1:0; } else if (((ev.type == KEY_DOWN) || (ev.type == KEY_UP)) && (!is_key(&ev,"left ctrl") || !is_key(&ev, "right ctrl"))) { control_pressed = (ev.type == KEY_DOWN) ? 1:0; } else if (ev.type == KEY_DOWN) { if (!is_key(&ev, "escape") #if defined(S60) || defined(_WIN32_WCE) || !is_key(&ev, "space") #endif #if defined(_WIN32_WCE) || (ev.code >= 0xc0 && ev.code <= 0xcf) || !is_key(&ev, "f1") || !is_key(&ev, "f2") || !is_key(&ev, "f3") || !is_key(&ev, "f4") || !is_key(&ev, "f5") #endif #ifdef ANDROID || ev.code == 118 #endif ) { if (use_xref) disable_use(); else menu_toggle(-1); } else if (!is_key(&ev, "f1")) { if (!menu_shown) menu_toggle(-1); /* } else if (!is_key(&ev, "f6")) { mouse_reset(1); game_menu(menu_games); */ } else if (!is_key(&ev, "f2") && curgame_dir) { mouse_reset(1); game_menu(menu_save); } else if (!is_key(&ev, "f3") && curgame_dir) { mouse_reset(1); game_menu(menu_load); } else if (!is_key(&ev, "f8") && curgame_dir && !menu_shown) { if (game_saves_enabled()) game_save(9); } else if (!is_key(&ev, "f9") && curgame_dir && !menu_shown) { if (game_saves_enabled()) { if (!access(game_save_path(0, 9), R_OK)) { if (!game_reset()) game_load(9); } } } else if (!is_key(&ev, "f5") && curgame_dir && !menu_shown) { mouse_reset(1); game_cmd("look", 0); } else if ((alt_pressed || control_pressed) && !is_key(&ev, "r") && curgame_dir && !menu_shown && debug_sw) { mouse_reset(1); game_menu_act("/new"); shift_pressed = alt_pressed = control_pressed = 0; } else if (!is_key(&ev, "f10") #ifdef ANDROID || ev.code == 270 #endif ) { #ifdef ANDROID break; #else mouse_reset(1); game_menu(menu_askquit); #endif } else if ((alt_pressed | control_pressed) && (!is_key(&ev, "q") || !is_key(&ev, "f4"))) { break; } else if (alt_pressed && (!is_key(&ev, "enter") || !is_key(&ev, "return"))) { int old_menu = (menu_shown) ? cur_menu: -1; shift_pressed = alt_pressed = control_pressed = 0; opt_fs ^= 1; game_restart(); if (old_menu != -1) game_menu(old_menu); } else if (!is_key(&ev, "f4") && !alt_pressed) { #ifdef _USE_UNPACK #ifdef _USE_BROWSE mouse_reset(1); if (!game_from_disk()) { shift_pressed = alt_pressed = control_pressed = 0; } #endif #endif } else if (DIRECT_MODE && !menu_shown) { ; // nothing todo } else if (!alt_pressed && (!is_key(&ev, "return") || !is_key(&ev, "enter") #ifdef S60 || !is_key(&ev, ".") #endif )) { gfx_cursor(&x, &y); game_highlight(-1, -1, 0); /* reset */ game_click(x, y, 0, 0); game_highlight(x, y, 1); /* hl on/off */ game_highlight(x, y, 0); if (game_click(x, y, 1, 0) == -1) break; } else if (!is_key(&ev, "tab")) { select_frame(shift_pressed); } else if (!is_key(&ev, "up") || !is_key(&ev, "down") || !is_key(&ev, "[8]") || !is_key(&ev, "[2]")) { int lm; int prev = !is_key(&ev, "up") || !is_key(&ev, "[8]"); if (opt_kbd == KBD_INVERSE) lm = (alt_pressed || shift_pressed); else lm = (!alt_pressed && !shift_pressed); if (menu_shown || lm) { if (select_ref(prev, 0)) { if (opt_kbd == KBD_SMART) { (prev)?game_scroll_up(1):game_scroll_down(1); select_ref(prev, 1); } else select_ref(prev, 1); } } else (prev)?game_scroll_up(1):game_scroll_down(1); } else if (!is_key(&ev, "page up") || !is_key(&ev, "[9]") || !is_key(&ev, "page down") || !is_key(&ev, "[3]")) { int lm; int prev = !is_key(&ev, "page up") || !is_key(&ev, "[9]"); if (opt_kbd == KBD_INVERSE) lm = (alt_pressed || shift_pressed); else lm = (!alt_pressed && !shift_pressed); if (menu_shown || lm) { if (select_ref(prev, 0) || select_ref(prev, 1)) { if (opt_kbd == KBD_SMART) { int s = (prev)?game_scroll_pup():game_scroll_pdown(); if (!s) select_ref(!prev, 1); } else select_ref(prev, 0); } } else { if (prev) game_scroll_pup(); else game_scroll_pdown(); } #if !defined(S60) && !defined(_WIN32_WCE) } else if (!is_key(&ev, "left") || !is_key(&ev, "[4]")) { select_ref(1, 0); } else if (!is_key(&ev, "right") || !is_key(&ev, "[6]")) { select_ref(0, 0); } else if (!is_key(&ev, "backspace") && !menu_shown) { scroll_pup(el_scene); } else if (!is_key(&ev, "space") && !menu_shown) { scroll_pdown(el_scene); #else } else if (!is_key(&ev, "left") || !is_key(&ev, "[4]")) { if (menu_shown) select_ref(1, 0); else select_frame(1); } else if (!is_key(&ev, "right") || !is_key(&ev, "[6]")) { if (menu_shown) select_ref(0, 0); else select_frame(0); #endif } } else if (DIRECT_MODE && !menu_shown) { ; // nothing todo } else if (ev.type == MOUSE_DOWN) { if (ev.code != 1) disable_use(); else { game_highlight(-1, -1, 0); game_click(ev.x, ev.y, 0, 1); x = ev.x; y = ev.y; } } else if (ev.type == MOUSE_UP) { game_highlight(-1, -1, 0); if (game_click(ev.x, ev.y, 1, 1) == -1) break; } else if (ev.type == MOUSE_WHEEL_UP && !menu_shown) { game_scroll_up(ev.count); } else if (ev.type == MOUSE_WHEEL_DOWN && !menu_shown) { game_scroll_down(ev.count); } else if (ev.type == MOUSE_MOTION) { if (opt_motion && !motion_mode && click_el && MOTION_TIME && !scroll_possible(click_el->id, click_y - ev.y)) { motion_id = click_el->id; motion_y = click_y; motion_mode = 1; click_xref = click_el = NULL; } if (motion_mode) { motion_mode = 2; scroll_motion(motion_id, motion_y - ev.y); motion_y = ev.y; } // game_highlight(ev.x, ev.y, 1); } if (need_restart) { need_restart = 0; game_menu_act("/new"); } if (!DIRECT_MODE || menu_shown) { if (click_xref) game_highlight(x, y, 1); else if (!motion_mode) { int x, y; gfx_cursor(&x, &y); game_highlight(x, y, 1); } } game_cursor(CURSOR_ON); if (err_msg) { mouse_reset(1); game_menu(menu_warning); } game_gfx_commit(); } return 0; } instead-1.9.1/src/sdl-instead/menu.h000644 001751 001751 00000002053 12161555571 017576 0ustar00peterpeter000000 000000 #ifndef __MENU_H_INCLUDED #define __MENU_H_INCLUDED #if defined(ANDROID) || defined(S60) || defined(_WIN32_WCE) #define MENU_GAMES_MAX 5 #define MENU_THEMES_MAX 5 #define MENU_PER_PAGER 5 #else #define MENU_GAMES_MAX 8 #define MENU_THEMES_MAX 8 #define MENU_PER_PAGER 7 #endif #define FONT_MIN_SZ 8 #define FONT_MAX_SZ 64 #define MAX_SAVE_SLOTS 6 #define LANG_DEF "en" #define MAX_MENU_LINES 16 extern int cur_menu; extern char *game_menu_gen(void); extern int game_menu_act(const char *a); extern void custom_theme_warn(void); extern int menu_langs_lookup(const char *path); extern int menu_lang_select(const char *name); extern int games_menu_maxw(void); extern int themes_menu_maxw(void); struct lang { char *path; char *name; char *file; }; extern struct lang *langs; extern int langs_nr; enum { menu_main = 1, menu_about, menu_settings, menu_quit, menu_askquit, menu_saved, menu_games, menu_themes, menu_own_theme, menu_custom_theme, menu_load, menu_save, menu_error, menu_warning, menu_remove, menu_wait, menu_max, }; #endif instead-1.9.1/src/sdl-instead/unzip.h000644 001751 001751 00000037746 12161555571 020020 0ustar00peterpeter000000 000000 /* unzip.h -- IO for uncompress .zip files using zlib Version 1.1, February 14h, 2010 part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) Modifications of Unzip for Zip64 Copyright (C) 2007-2008 Even Rouault Modifications for Zip64 support on both zip and unzip Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) For more info read MiniZip_info.txt --------------------------------------------------------------------------------- Condition of use and distribution are the same than zlib : This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. --------------------------------------------------------------------------------- Changes See header of unzip64.c */ #ifndef _unz64_H #define _unz64_H #ifdef __cplusplus extern "C" { #endif #ifndef _ZLIB_H #include "zlib.h" #endif #ifndef _ZLIBIOAPI_H #include "ioapi.h" #endif #ifdef HAVE_BZIP2 #include "bzlib.h" #endif #define Z_BZIP2ED 12 #if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP) /* like the STRICT of WIN32, we define a pointer that cannot be converted from (void*) without cast */ typedef struct TagunzFile__ { int unused; } unzFile__; typedef unzFile__ *unzFile; #else typedef voidp unzFile; #endif #define UNZ_OK (0) #define UNZ_END_OF_LIST_OF_FILE (-100) #define UNZ_ERRNO (Z_ERRNO) #define UNZ_EOF (0) #define UNZ_PARAMERROR (-102) #define UNZ_BADZIPFILE (-103) #define UNZ_INTERNALERROR (-104) #define UNZ_CRCERROR (-105) /* tm_unz contain date/time info */ typedef struct tm_unz_s { uInt tm_sec; /* seconds after the minute - [0,59] */ uInt tm_min; /* minutes after the hour - [0,59] */ uInt tm_hour; /* hours since midnight - [0,23] */ uInt tm_mday; /* day of the month - [1,31] */ uInt tm_mon; /* months since January - [0,11] */ uInt tm_year; /* years - [1980..2044] */ } tm_unz; /* unz_global_info structure contain global data about the ZIPfile These data comes from the end of central dir */ typedef struct unz_global_info64_s { ZPOS64_T number_entry; /* total number of entries in the central dir on this disk */ uLong size_comment; /* size of the global comment of the zipfile */ } unz_global_info64; typedef struct unz_global_info_s { uLong number_entry; /* total number of entries in the central dir on this disk */ uLong size_comment; /* size of the global comment of the zipfile */ } unz_global_info; /* unz_file_info contain information about a file in the zipfile */ typedef struct unz_file_info64_s { uLong version; /* version made by 2 bytes */ uLong version_needed; /* version needed to extract 2 bytes */ uLong flag; /* general purpose bit flag 2 bytes */ uLong compression_method; /* compression method 2 bytes */ uLong dosDate; /* last mod file date in Dos fmt 4 bytes */ uLong crc; /* crc-32 4 bytes */ ZPOS64_T compressed_size; /* compressed size 8 bytes */ ZPOS64_T uncompressed_size; /* uncompressed size 8 bytes */ uLong size_filename; /* filename length 2 bytes */ uLong size_file_extra; /* extra field length 2 bytes */ uLong size_file_comment; /* file comment length 2 bytes */ uLong disk_num_start; /* disk number start 2 bytes */ uLong internal_fa; /* internal file attributes 2 bytes */ uLong external_fa; /* external file attributes 4 bytes */ tm_unz tmu_date; } unz_file_info64; typedef struct unz_file_info_s { uLong version; /* version made by 2 bytes */ uLong version_needed; /* version needed to extract 2 bytes */ uLong flag; /* general purpose bit flag 2 bytes */ uLong compression_method; /* compression method 2 bytes */ uLong dosDate; /* last mod file date in Dos fmt 4 bytes */ uLong crc; /* crc-32 4 bytes */ uLong compressed_size; /* compressed size 4 bytes */ uLong uncompressed_size; /* uncompressed size 4 bytes */ uLong size_filename; /* filename length 2 bytes */ uLong size_file_extra; /* extra field length 2 bytes */ uLong size_file_comment; /* file comment length 2 bytes */ uLong disk_num_start; /* disk number start 2 bytes */ uLong internal_fa; /* internal file attributes 2 bytes */ uLong external_fa; /* external file attributes 4 bytes */ tm_unz tmu_date; } unz_file_info; extern int ZEXPORT unzStringFileNameCompare OF ((const char* fileName1, const char* fileName2, int iCaseSensitivity)); /* Compare two filename (fileName1,fileName2). If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp) If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi or strcasecmp) If iCaseSenisivity = 0, case sensitivity is defaut of your operating system (like 1 on Unix, 2 on Windows) */ extern unzFile ZEXPORT unzOpen OF((const char *path)); extern unzFile ZEXPORT unzOpen64 OF((const void *path)); /* Open a Zip file. path contain the full pathname (by example, on a Windows XP computer "c:\\zlib\\zlib113.zip" or on an Unix computer "zlib/zlib113.zip". If the zipfile cannot be opened (file don't exist or in not valid), the return value is NULL. Else, the return value is a unzFile Handle, usable with other function of this unzip package. the "64" function take a const void* pointer, because the path is just the value passed to the open64_file_func callback. Under Windows, if UNICODE is defined, using fill_fopen64_filefunc, the path is a pointer to a wide unicode string (LPCTSTR is LPCWSTR), so const char* does not describe the reality */ extern unzFile ZEXPORT unzOpen2 OF((const char *path, zlib_filefunc_def* pzlib_filefunc_def)); /* Open a Zip file, like unzOpen, but provide a set of file low level API for read/write the zip file (see ioapi.h) */ extern unzFile ZEXPORT unzOpen2_64 OF((const void *path, zlib_filefunc64_def* pzlib_filefunc_def)); /* Open a Zip file, like unz64Open, but provide a set of file low level API for read/write the zip file (see ioapi.h) */ extern int ZEXPORT unzClose OF((unzFile file)); /* Close a ZipFile opened with unzipOpen. If there is files inside the .Zip opened with unzOpenCurrentFile (see later), these files MUST be closed with unzipCloseCurrentFile before call unzipClose. return UNZ_OK if there is no problem. */ extern int ZEXPORT unzGetGlobalInfo OF((unzFile file, unz_global_info *pglobal_info)); extern int ZEXPORT unzGetGlobalInfo64 OF((unzFile file, unz_global_info64 *pglobal_info)); /* Write info about the ZipFile in the *pglobal_info structure. No preparation of the structure is needed return UNZ_OK if there is no problem. */ extern int ZEXPORT unzGetGlobalComment OF((unzFile file, char *szComment, uLong uSizeBuf)); /* Get the global comment string of the ZipFile, in the szComment buffer. uSizeBuf is the size of the szComment buffer. return the number of byte copied or an error code <0 */ /***************************************************************************/ /* Unzip package allow you browse the directory of the zipfile */ extern int ZEXPORT unzGoToFirstFile OF((unzFile file)); /* Set the current file of the zipfile to the first file. return UNZ_OK if there is no problem */ extern int ZEXPORT unzGoToNextFile OF((unzFile file)); /* Set the current file of the zipfile to the next file. return UNZ_OK if there is no problem return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest. */ extern int ZEXPORT unzLocateFile OF((unzFile file, const char *szFileName, int iCaseSensitivity)); /* Try locate the file szFileName in the zipfile. For the iCaseSensitivity signification, see unzStringFileNameCompare return value : UNZ_OK if the file is found. It becomes the current file. UNZ_END_OF_LIST_OF_FILE if the file is not found */ /* ****************************************** */ /* Ryan supplied functions */ /* unz_file_info contain information about a file in the zipfile */ typedef struct unz_file_pos_s { uLong pos_in_zip_directory; /* offset in zip file directory */ uLong num_of_file; /* # of file */ } unz_file_pos; extern int ZEXPORT unzGetFilePos( unzFile file, unz_file_pos* file_pos); extern int ZEXPORT unzGoToFilePos( unzFile file, unz_file_pos* file_pos); typedef struct unz64_file_pos_s { ZPOS64_T pos_in_zip_directory; /* offset in zip file directory */ ZPOS64_T num_of_file; /* # of file */ } unz64_file_pos; extern int ZEXPORT unzGetFilePos64( unzFile file, unz64_file_pos* file_pos); extern int ZEXPORT unzGoToFilePos64( unzFile file, const unz64_file_pos* file_pos); /* ****************************************** */ extern int ZEXPORT unzGetCurrentFileInfo64 OF((unzFile file, unz_file_info64 *pfile_info, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize)); extern int ZEXPORT unzGetCurrentFileInfo OF((unzFile file, unz_file_info *pfile_info, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize)); /* Get Info about the current file if pfile_info!=NULL, the *pfile_info structure will contain somes info about the current file if szFileName!=NULL, the filemane string will be copied in szFileName (fileNameBufferSize is the size of the buffer) if extraField!=NULL, the extra field information will be copied in extraField (extraFieldBufferSize is the size of the buffer). This is the Central-header version of the extra field if szComment!=NULL, the comment string of the file will be copied in szComment (commentBufferSize is the size of the buffer) */ /** Addition for GDAL : START */ extern ZPOS64_T ZEXPORT unzGetCurrentFileZStreamPos64 OF((unzFile file)); /** Addition for GDAL : END */ /***************************************************************************/ /* for reading the content of the current zipfile, you can open it, read data from it, and close it (you can close it before reading all the file) */ extern int ZEXPORT unzOpenCurrentFile OF((unzFile file)); /* Open for reading data the current file in the zipfile. If there is no error, the return value is UNZ_OK. */ extern int ZEXPORT unzOpenCurrentFilePassword OF((unzFile file, const char* password)); /* Open for reading data the current file in the zipfile. password is a crypting password If there is no error, the return value is UNZ_OK. */ extern int ZEXPORT unzOpenCurrentFile2 OF((unzFile file, int* method, int* level, int raw)); /* Same than unzOpenCurrentFile, but open for read raw the file (not uncompress) if raw==1 *method will receive method of compression, *level will receive level of compression note : you can set level parameter as NULL (if you did not want known level, but you CANNOT set method parameter as NULL */ extern int ZEXPORT unzOpenCurrentFile3 OF((unzFile file, int* method, int* level, int raw, const char* password)); /* Same than unzOpenCurrentFile, but open for read raw the file (not uncompress) if raw==1 *method will receive method of compression, *level will receive level of compression note : you can set level parameter as NULL (if you did not want known level, but you CANNOT set method parameter as NULL */ extern int ZEXPORT unzCloseCurrentFile OF((unzFile file)); /* Close the file in zip opened with unzOpenCurrentFile Return UNZ_CRCERROR if all the file was read but the CRC is not good */ extern int ZEXPORT unzReadCurrentFile OF((unzFile file, voidp buf, unsigned len)); /* Read bytes from the current file (opened by unzOpenCurrentFile) buf contain buffer where data must be copied len the size of buf. return the number of byte copied if somes bytes are copied return 0 if the end of file was reached return <0 with error code if there is an error (UNZ_ERRNO for IO error, or zLib error for uncompress error) */ extern z_off_t ZEXPORT unztell OF((unzFile file)); extern ZPOS64_T ZEXPORT unztell64 OF((unzFile file)); /* Give the current position in uncompressed data */ extern int ZEXPORT unzeof OF((unzFile file)); /* return 1 if the end of file was reached, 0 elsewhere */ extern int ZEXPORT unzGetLocalExtrafield OF((unzFile file, voidp buf, unsigned len)); /* Read extra field from the current file (opened by unzOpenCurrentFile) This is the local-header version of the extra field (sometimes, there is more info in the local-header version than in the central-header) if buf==NULL, it return the size of the local extra field if buf!=NULL, len is the size of the buffer, the extra header is copied in buf. the return value is the number of bytes copied in buf, or (if <0) the error code */ /***************************************************************************/ /* Get the current file offset */ extern ZPOS64_T ZEXPORT unzGetOffset64 (unzFile file); extern uLong ZEXPORT unzGetOffset (unzFile file); /* Set the current file offset */ extern int ZEXPORT unzSetOffset64 (unzFile file, ZPOS64_T pos); extern int ZEXPORT unzSetOffset (unzFile file, uLong pos); #ifdef __cplusplus } #endif #endif /* _unz64_H */ instead-1.9.1/src/sdl-instead/wince.h000644 001751 001751 00000000247 12161555571 017742 0ustar00peterpeter000000 000000 #ifndef _WINCE_EXTERNAL_H #define _WINCE_EXTERNAL_H #define PATH_MAX 255 #define errno 0 #define strerror(a) "" #define putenv(a) ; #define setlocale(a, b) ; #endif instead-1.9.1/src/sdl-instead/SDL2_rotozoom.c000644 001751 001751 00000116712 12161555571 021311 0ustar00peterpeter000000 000000 /* SDL2_rotozoom.c: rotozoomer, zoomer and shrinker for 32bit or 8bit surfaces Copyright (C) 2012 Andreas Schiffler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Andreas Schiffler -- aschiffler at ferzkopp dot net */ #ifdef WIN32 #include #endif #include #include #include "SDL2_rotozoom.h" /* ---- Internally used structures */ /*! \brief A 32 bit RGBA pixel. */ typedef struct tColorRGBA { Uint8 r; Uint8 g; Uint8 b; Uint8 a; } tColorRGBA; /*! \brief A 8bit Y/palette pixel. */ typedef struct tColorY { Uint8 y; } tColorY; /*! \brief Returns maximum of two numbers a and b. */ #define MAX(a,b) (((a) > (b)) ? (a) : (b)) /*! \brief Number of guard rows added to destination surfaces. This is a simple but effective workaround for observed issues. These rows allocate extra memory and are then hidden from the surface. Rows are added to the end of destination surfaces when they are allocated. This catches any potential overflows which seem to happen with just the right src image dimensions and scale/rotation and can lead to a situation where the program can segfault. */ #define GUARD_ROWS (2) /*! \brief Lower limit of absolute zoom factor or rotation degrees. */ #define VALUE_LIMIT 0.001 /*! \brief Returns colorkey info for a surface */ Uint32 _colorkey(SDL_Surface *src) { Uint32 key = 0; SDL_GetColorKey(src, &key); return key; } /*! \brief Internal 32 bit integer-factor averaging Shrinker. Shrinks 32 bit RGBA/ABGR 'src' surface to 'dst' surface. Averages color and alpha values values of src pixels to calculate dst pixels. Assumes src and dst surfaces are of 32 bit depth. Assumes dst surface was allocated with the correct dimensions. \param src The surface to shrink (input). \param dst The shrunken surface (output). \param factorx The horizontal shrinking ratio. \param factory The vertical shrinking ratio. \return 0 for success or -1 for error. */ int _shrinkSurfaceRGBA(SDL_Surface * src, SDL_Surface * dst, int factorx, int factory) { int x, y, dx, dy, sgap, dgap, ra, ga, ba, aa; int n_average; tColorRGBA *sp, *osp, *oosp; tColorRGBA *dp; /* * Averaging integer shrink */ /* Precalculate division factor */ n_average = factorx*factory; /* * Scan destination */ sp = (tColorRGBA *) src->pixels; sgap = src->pitch - src->w * 4; dp = (tColorRGBA *) dst->pixels; dgap = dst->pitch - dst->w * 4; for (y = 0; y < dst->h; y++) { osp=sp; for (x = 0; x < dst->w; x++) { /* Trace out source box and accumulate */ oosp=sp; ra=ga=ba=aa=0; for (dy=0; dy < factory; dy++) { for (dx=0; dx < factorx; dx++) { ra += sp->r; ga += sp->g; ba += sp->b; aa += sp->a; sp++; } /* src dx loop */ sp = (tColorRGBA *)((Uint8*)sp + (src->pitch - 4*factorx)); // next y } /* src dy loop */ /* next box-x */ sp = (tColorRGBA *)((Uint8*)oosp + 4*factorx); /* Store result in destination */ dp->r = ra/n_average; dp->g = ga/n_average; dp->b = ba/n_average; dp->a = aa/n_average; /* * Advance destination pointer */ dp++; } /* dst x loop */ /* next box-y */ sp = (tColorRGBA *)((Uint8*)osp + src->pitch*factory); /* * Advance destination pointers */ dp = (tColorRGBA *) ((Uint8 *) dp + dgap); } /* dst y loop */ return (0); } /*! \brief Internal 8 bit integer-factor averaging shrinker. Shrinks 8bit Y 'src' surface to 'dst' surface. Averages color (brightness) values values of src pixels to calculate dst pixels. Assumes src and dst surfaces are of 8 bit depth. Assumes dst surface was allocated with the correct dimensions. \param src The surface to shrink (input). \param dst The shrunken surface (output). \param factorx The horizontal shrinking ratio. \param factory The vertical shrinking ratio. \return 0 for success or -1 for error. */ int _shrinkSurfaceY(SDL_Surface * src, SDL_Surface * dst, int factorx, int factory) { int x, y, dx, dy, sgap, dgap, a; int n_average; Uint8 *sp, *osp, *oosp; Uint8 *dp; /* * Averaging integer shrink */ /* Precalculate division factor */ n_average = factorx*factory; /* * Scan destination */ sp = (Uint8 *) src->pixels; sgap = src->pitch - src->w; dp = (Uint8 *) dst->pixels; dgap = dst->pitch - dst->w; for (y = 0; y < dst->h; y++) { osp=sp; for (x = 0; x < dst->w; x++) { /* Trace out source box and accumulate */ oosp=sp; a=0; for (dy=0; dy < factory; dy++) { for (dx=0; dx < factorx; dx++) { a += (*sp); /* next x */ sp++; } /* end src dx loop */ /* next y */ sp = (Uint8 *)((Uint8*)sp + (src->pitch - factorx)); } /* end src dy loop */ /* next box-x */ sp = (Uint8 *)((Uint8*)oosp + factorx); /* Store result in destination */ *dp = a/n_average; /* * Advance destination pointer */ dp++; } /* end dst x loop */ /* next box-y */ sp = (Uint8 *)((Uint8*)osp + src->pitch*factory); /* * Advance destination pointers */ dp = (Uint8 *)((Uint8 *)dp + dgap); } /* end dst y loop */ return (0); } /*! \brief Internal 32 bit Zoomer with optional anti-aliasing by bilinear interpolation. Zooms 32 bit RGBA/ABGR 'src' surface to 'dst' surface. Assumes src and dst surfaces are of 32 bit depth. Assumes dst surface was allocated with the correct dimensions. \param src The surface to zoom (input). \param dst The zoomed surface (output). \param flipx Flag indicating if the image should be horizontally flipped. \param flipy Flag indicating if the image should be vertically flipped. \param smooth Antialiasing flag; set to SMOOTHING_ON to enable. \return 0 for success or -1 for error. */ int _zoomSurfaceRGBA(SDL_Surface * src, SDL_Surface * dst, int flipx, int flipy, int smooth) { int x, y, sx, sy, ssx, ssy, *sax, *say, *csax, *csay, *salast, csx, csy, ex, ey, cx, cy, sstep, sstepx, sstepy; tColorRGBA *c00, *c01, *c10, *c11; tColorRGBA *sp, *csp, *dp; int spixelgap, spixelw, spixelh, dgap, t1, t2; /* * Allocate memory for row/column increments */ if ((sax = (int *) malloc((dst->w + 1) * sizeof(Uint32))) == NULL) { return (-1); } if ((say = (int *) malloc((dst->h + 1) * sizeof(Uint32))) == NULL) { free(sax); return (-1); } /* * Precalculate row increments */ spixelw = (src->w - 1); spixelh = (src->h - 1); if (smooth) { sx = (int) (65536.0 * (float) spixelw / (float) (dst->w - 1)); sy = (int) (65536.0 * (float) spixelh / (float) (dst->h - 1)); } else { sx = (int) (65536.0 * (float) (src->w) / (float) (dst->w)); sy = (int) (65536.0 * (float) (src->h) / (float) (dst->h)); } /* Maximum scaled source size */ ssx = (src->w << 16) - 1; ssy = (src->h << 16) - 1; /* Precalculate horizontal row increments */ csx = 0; csax = sax; for (x = 0; x <= dst->w; x++) { *csax = csx; csax++; csx += sx; /* Guard from overflows */ if (csx > ssx) { csx = ssx; } } /* Precalculate vertical row increments */ csy = 0; csay = say; for (y = 0; y <= dst->h; y++) { *csay = csy; csay++; csy += sy; /* Guard from overflows */ if (csy > ssy) { csy = ssy; } } sp = (tColorRGBA *) src->pixels; dp = (tColorRGBA *) dst->pixels; dgap = dst->pitch - dst->w * 4; spixelgap = src->pitch/4; if (flipx) sp += spixelw; if (flipy) sp += (spixelgap * spixelh); /* * Switch between interpolating and non-interpolating code */ if (smooth) { /* * Interpolating Zoom */ csay = say; for (y = 0; y < dst->h; y++) { csp = sp; csax = sax; for (x = 0; x < dst->w; x++) { /* * Setup color source pointers */ ex = (*csax & 0xffff); ey = (*csay & 0xffff); cx = (*csax >> 16); cy = (*csay >> 16); sstepx = cx < spixelw; sstepy = cy < spixelh; c00 = sp; c01 = sp; c10 = sp; if (sstepy) { if (flipy) { c10 -= spixelgap; } else { c10 += spixelgap; } } c11 = c10; if (sstepx) { if (flipx) { c01--; c11--; } else { c01++; c11++; } } /* * Draw and interpolate colors */ t1 = ((((c01->r - c00->r) * ex) >> 16) + c00->r) & 0xff; t2 = ((((c11->r - c10->r) * ex) >> 16) + c10->r) & 0xff; dp->r = (((t2 - t1) * ey) >> 16) + t1; t1 = ((((c01->g - c00->g) * ex) >> 16) + c00->g) & 0xff; t2 = ((((c11->g - c10->g) * ex) >> 16) + c10->g) & 0xff; dp->g = (((t2 - t1) * ey) >> 16) + t1; t1 = ((((c01->b - c00->b) * ex) >> 16) + c00->b) & 0xff; t2 = ((((c11->b - c10->b) * ex) >> 16) + c10->b) & 0xff; dp->b = (((t2 - t1) * ey) >> 16) + t1; t1 = ((((c01->a - c00->a) * ex) >> 16) + c00->a) & 0xff; t2 = ((((c11->a - c10->a) * ex) >> 16) + c10->a) & 0xff; dp->a = (((t2 - t1) * ey) >> 16) + t1; /* * Advance source pointer x */ salast = csax; csax++; sstep = (*csax >> 16) - (*salast >> 16); if (flipx) { sp -= sstep; } else { sp += sstep; } /* * Advance destination pointer x */ dp++; } /* * Advance source pointer y */ salast = csay; csay++; sstep = (*csay >> 16) - (*salast >> 16); sstep *= spixelgap; if (flipy) { sp = csp - sstep; } else { sp = csp + sstep; } /* * Advance destination pointer y */ dp = (tColorRGBA *) ((Uint8 *) dp + dgap); } } else { /* * Non-Interpolating Zoom */ csay = say; for (y = 0; y < dst->h; y++) { csp = sp; csax = sax; for (x = 0; x < dst->w; x++) { /* * Draw */ *dp = *sp; /* * Advance source pointer x */ salast = csax; csax++; sstep = (*csax >> 16) - (*salast >> 16); if (flipx) sstep = -sstep; sp += sstep; /* * Advance destination pointer x */ dp++; } /* * Advance source pointer y */ salast = csay; csay++; sstep = (*csay >> 16) - (*salast >> 16); sstep *= spixelgap; if (flipy) sstep = -sstep; sp = csp + sstep; /* * Advance destination pointer y */ dp = (tColorRGBA *) ((Uint8 *) dp + dgap); } } /* * Remove temp arrays */ free(sax); free(say); return (0); } /*! \brief Internal 8 bit Zoomer without smoothing. Zooms 8bit palette/Y 'src' surface to 'dst' surface. Assumes src and dst surfaces are of 8 bit depth. Assumes dst surface was allocated with the correct dimensions. \param src The surface to zoom (input). \param dst The zoomed surface (output). \param flipx Flag indicating if the image should be horizontally flipped. \param flipy Flag indicating if the image should be vertically flipped. \return 0 for success or -1 for error. */ int _zoomSurfaceY(SDL_Surface * src, SDL_Surface * dst, int flipx, int flipy) { int x, y; Uint32 *sax, *say, *csax, *csay; int csx, csy; Uint8 *sp, *dp, *csp; int dgap; /* * Allocate memory for row increments */ if ((sax = (Uint32 *) malloc((dst->w + 1) * sizeof(Uint32))) == NULL) { return (-1); } if ((say = (Uint32 *) malloc((dst->h + 1) * sizeof(Uint32))) == NULL) { free(sax); return (-1); } /* * Pointer setup */ sp = csp = (Uint8 *) src->pixels; dp = (Uint8 *) dst->pixels; dgap = dst->pitch - dst->w; if (flipx) csp += (src->w-1); if (flipy) csp = ( (Uint8*)csp + src->pitch*(src->h-1) ); /* * Precalculate row increments */ csx = 0; csax = sax; for (x = 0; x < dst->w; x++) { csx += src->w; *csax = 0; while (csx >= dst->w) { csx -= dst->w; (*csax)++; } (*csax) = (*csax) * (flipx ? -1 : 1); csax++; } csy = 0; csay = say; for (y = 0; y < dst->h; y++) { csy += src->h; *csay = 0; while (csy >= dst->h) { csy -= dst->h; (*csay)++; } (*csay) = (*csay) * (flipy ? -1 : 1); csay++; } /* * Draw */ csay = say; for (y = 0; y < dst->h; y++) { csax = sax; sp = csp; for (x = 0; x < dst->w; x++) { /* * Draw */ *dp = *sp; /* * Advance source pointers */ sp += (*csax); csax++; /* * Advance destination pointer */ dp++; } /* * Advance source pointer (for row) */ csp += ((*csay) * src->pitch); csay++; /* * Advance destination pointers */ dp += dgap; } /* * Remove temp arrays */ free(sax); free(say); return (0); } /*! \brief Internal 32 bit rotozoomer with optional anti-aliasing. Rotates and zooms 32 bit RGBA/ABGR 'src' surface to 'dst' surface based on the control parameters by scanning the destination surface and applying optionally anti-aliasing by bilinear interpolation. Assumes src and dst surfaces are of 32 bit depth. Assumes dst surface was allocated with the correct dimensions. \param src Source surface. \param dst Destination surface. \param cx Horizontal center coordinate. \param cy Vertical center coordinate. \param isin Integer version of sine of angle. \param icos Integer version of cosine of angle. \param flipx Flag indicating horizontal mirroring should be applied. \param flipy Flag indicating vertical mirroring should be applied. \param smooth Flag indicating anti-aliasing should be used. */ void _transformSurfaceRGBA(SDL_Surface * src, SDL_Surface * dst, int cx, int cy, int isin, int icos, int flipx, int flipy, int smooth) { int x, y, t1, t2, dx, dy, xd, yd, sdx, sdy, ax, ay, ex, ey, sw, sh; tColorRGBA c00, c01, c10, c11, cswap; tColorRGBA *pc, *sp; int gap; /* * Variable setup */ xd = ((src->w - dst->w) << 15); yd = ((src->h - dst->h) << 15); ax = (cx << 16) - (icos * cx); ay = (cy << 16) - (isin * cx); sw = src->w - 1; sh = src->h - 1; pc = (tColorRGBA*) dst->pixels; gap = dst->pitch - dst->w * 4; /* * Switch between interpolating and non-interpolating code */ if (smooth) { for (y = 0; y < dst->h; y++) { dy = cy - y; sdx = (ax + (isin * dy)) + xd; sdy = (ay - (icos * dy)) + yd; for (x = 0; x < dst->w; x++) { dx = (sdx >> 16); dy = (sdy >> 16); if (flipx) dx = sw - dx; if (flipy) dy = sh - dy; if ((dx > -1) && (dy > -1) && (dx < (src->w-1)) && (dy < (src->h-1))) { sp = (tColorRGBA *)src->pixels;; sp += ((src->pitch/4) * dy); sp += dx; c00 = *sp; sp += 1; c01 = *sp; sp += (src->pitch/4); c11 = *sp; sp -= 1; c10 = *sp; if (flipx) { cswap = c00; c00=c01; c01=cswap; cswap = c10; c10=c11; c11=cswap; } if (flipy) { cswap = c00; c00=c10; c10=cswap; cswap = c01; c01=c11; c11=cswap; } /* * Interpolate colors */ ex = (sdx & 0xffff); ey = (sdy & 0xffff); t1 = ((((c01.r - c00.r) * ex) >> 16) + c00.r) & 0xff; t2 = ((((c11.r - c10.r) * ex) >> 16) + c10.r) & 0xff; pc->r = (((t2 - t1) * ey) >> 16) + t1; t1 = ((((c01.g - c00.g) * ex) >> 16) + c00.g) & 0xff; t2 = ((((c11.g - c10.g) * ex) >> 16) + c10.g) & 0xff; pc->g = (((t2 - t1) * ey) >> 16) + t1; t1 = ((((c01.b - c00.b) * ex) >> 16) + c00.b) & 0xff; t2 = ((((c11.b - c10.b) * ex) >> 16) + c10.b) & 0xff; pc->b = (((t2 - t1) * ey) >> 16) + t1; t1 = ((((c01.a - c00.a) * ex) >> 16) + c00.a) & 0xff; t2 = ((((c11.a - c10.a) * ex) >> 16) + c10.a) & 0xff; pc->a = (((t2 - t1) * ey) >> 16) + t1; } sdx += icos; sdy += isin; pc++; } pc = (tColorRGBA *) ((Uint8 *) pc + gap); } } else { for (y = 0; y < dst->h; y++) { dy = cy - y; sdx = (ax + (isin * dy)) + xd; sdy = (ay - (icos * dy)) + yd; for (x = 0; x < dst->w; x++) { dx = (short) (sdx >> 16); dy = (short) (sdy >> 16); if (flipx) dx = (src->w-1)-dx; if (flipy) dy = (src->h-1)-dy; if ((dx >= 0) && (dy >= 0) && (dx < src->w) && (dy < src->h)) { sp = (tColorRGBA *) ((Uint8 *) src->pixels + src->pitch * dy); sp += dx; *pc = *sp; } sdx += icos; sdy += isin; pc++; } pc = (tColorRGBA *) ((Uint8 *) pc + gap); } } } /*! \brief Rotates and zooms 8 bit palette/Y 'src' surface to 'dst' surface without smoothing. Rotates and zooms 8 bit RGBA/ABGR 'src' surface to 'dst' surface based on the control parameters by scanning the destination surface. Assumes src and dst surfaces are of 8 bit depth. Assumes dst surface was allocated with the correct dimensions. \param src Source surface. \param dst Destination surface. \param cx Horizontal center coordinate. \param cy Vertical center coordinate. \param isin Integer version of sine of angle. \param icos Integer version of cosine of angle. \param flipx Flag indicating horizontal mirroring should be applied. \param flipy Flag indicating vertical mirroring should be applied. */ void transformSurfaceY(SDL_Surface * src, SDL_Surface * dst, int cx, int cy, int isin, int icos, int flipx, int flipy) { int x, y, dx, dy, xd, yd, sdx, sdy, ax, ay, sw, sh; tColorY *pc, *sp; int gap; /* * Variable setup */ xd = ((src->w - dst->w) << 15); yd = ((src->h - dst->h) << 15); ax = (cx << 16) - (icos * cx); ay = (cy << 16) - (isin * cx); sw = src->w - 1; sh = src->h - 1; pc = (tColorY*) dst->pixels; gap = dst->pitch - dst->w; /* * Clear surface to colorkey */ memset(pc, (int)(_colorkey(src) & 0xff), dst->pitch * dst->h); /* * Iterate through destination surface */ for (y = 0; y < dst->h; y++) { dy = cy - y; sdx = (ax + (isin * dy)) + xd; sdy = (ay - (icos * dy)) + yd; for (x = 0; x < dst->w; x++) { dx = (short) (sdx >> 16); dy = (short) (sdy >> 16); if (flipx) dx = (src->w-1)-dx; if (flipy) dy = (src->h-1)-dy; if ((dx >= 0) && (dy >= 0) && (dx < src->w) && (dy < src->h)) { sp = (tColorY *) (src->pixels); sp += (src->pitch * dy + dx); *pc = *sp; } sdx += icos; sdy += isin; pc++; } pc += gap; } } /*! \brief Rotates a 32 bit surface in increments of 90 degrees. Specialized 90 degree rotator which rotates a 'src' surface in 90 degree increments clockwise returning a new surface. Faster than rotozoomer since not scanning or interpolation takes place. Input surface must be 32 bit. (code contributed by J. Schiller, improved by C. Allport and A. Schiffler) \param src Source surface to rotate. \param numClockwiseTurns Number of clockwise 90 degree turns to apply to the source. \returns The new, rotated surface; or NULL for surfaces with incorrect input format. */ SDL_Surface* rotateSurface90Degrees(SDL_Surface* src, int numClockwiseTurns) { int row, col, newWidth, newHeight; int bpp, src_ipr, dst_ipr; SDL_Surface* dst; Uint32* srcBuf; Uint32* dstBuf; /* Has to be a valid surface pointer and only 32-bit surfaces (for now) */ if (!src || src->format->BitsPerPixel != 32) { return NULL; } /* normalize numClockwiseTurns */ while(numClockwiseTurns < 0) { numClockwiseTurns += 4; } numClockwiseTurns = (numClockwiseTurns % 4); /* if it's even, our new width will be the same as the source surface */ newWidth = (numClockwiseTurns % 2) ? (src->h) : (src->w); newHeight = (numClockwiseTurns % 2) ? (src->w) : (src->h); dst = SDL_CreateRGBSurface( src->flags, newWidth, newHeight, src->format->BitsPerPixel, src->format->Rmask, src->format->Gmask, src->format->Bmask, src->format->Amask); if(!dst) { return NULL; } if (SDL_MUSTLOCK(dst)) { SDL_LockSurface(dst); } if (SDL_MUSTLOCK(dst)) { SDL_LockSurface(dst); } /* Calculate int-per-row */ bpp = src->format->BitsPerPixel / 8; src_ipr = src->pitch / bpp; dst_ipr = dst->pitch / bpp; switch(numClockwiseTurns) { case 0: /* Make a copy of the surface */ { /* Unfortunately SDL_BlitSurface cannot be used to make a copy of the surface since it does not preserve alpha. */ if (src->pitch == dst->pitch) { /* If the pitch is the same for both surfaces, the memory can be copied all at once. */ memcpy(dst->pixels, src->pixels, (src->h * src->pitch)); } else { /* If the pitch differs, copy each row separately */ srcBuf = (Uint32*)(src->pixels); dstBuf = (Uint32*)(dst->pixels); for (row = 0; row < src->h; row++) { memcpy(dstBuf, srcBuf, dst->w * bpp); srcBuf += src_ipr; dstBuf += dst_ipr; } /* end for(col) */ } /* end for(row) */ } break; /* rotate clockwise */ case 1: /* rotated 90 degrees clockwise */ { for (row = 0; row < src->h; ++row) { srcBuf = (Uint32*)(src->pixels) + (row * src_ipr); dstBuf = (Uint32*)(dst->pixels) + (dst->w - row - 1); for (col = 0; col < src->w; ++col) { *dstBuf = *srcBuf; ++srcBuf; dstBuf += dst_ipr; } /* end for(col) */ } /* end for(row) */ } break; case 2: /* rotated 180 degrees clockwise */ { for (row = 0; row < src->h; ++row) { srcBuf = (Uint32*)(src->pixels) + (row * src_ipr); dstBuf = (Uint32*)(dst->pixels) + ((dst->h - row - 1) * dst_ipr) + (dst->w - 1); for (col = 0; col < src->w; ++col) { *dstBuf = *srcBuf; ++srcBuf; --dstBuf; } } } break; case 3: { for (row = 0; row < src->h; ++row) { srcBuf = (Uint32*)(src->pixels) + (row * src_ipr); dstBuf = (Uint32*)(dst->pixels) + row + ((dst->h - 1) * dst_ipr); for (col = 0; col < src->w; ++col) { *dstBuf = *srcBuf; ++srcBuf; dstBuf -= dst_ipr; } } } break; } /* end switch */ if (SDL_MUSTLOCK(src)) { SDL_UnlockSurface(src); } if (SDL_MUSTLOCK(dst)) { SDL_UnlockSurface(dst); } return dst; } /*! \brief Internal target surface sizing function for rotozooms with trig result return. \param width The source surface width. \param height The source surface height. \param angle The angle to rotate in degrees. \param zoomx The horizontal scaling factor. \param zoomy The vertical scaling factor. \param dstwidth The calculated width of the destination surface. \param dstheight The calculated height of the destination surface. \param canglezoom The sine of the angle adjusted by the zoom factor. \param sanglezoom The cosine of the angle adjusted by the zoom factor. */ void _rotozoomSurfaceSizeTrig(int width, int height, double angle, double zoomx, double zoomy, int *dstwidth, int *dstheight, double *canglezoom, double *sanglezoom) { double x, y, cx, cy, sx, sy; double radangle; int dstwidthhalf, dstheighthalf; /* * Determine destination width and height by rotating a centered source box */ radangle = angle * (M_PI / 180.0); *sanglezoom = sin(radangle); *canglezoom = cos(radangle); *sanglezoom *= zoomx; *canglezoom *= zoomx; x = (double)(width / 2); y = (double)(height / 2); cx = *canglezoom * x; cy = *canglezoom * y; sx = *sanglezoom * x; sy = *sanglezoom * y; dstwidthhalf = MAX((int) ceil(MAX(MAX(MAX(fabs(cx + sy), fabs(cx - sy)), fabs(-cx + sy)), fabs(-cx - sy))), 1); dstheighthalf = MAX((int) ceil(MAX(MAX(MAX(fabs(sx + cy), fabs(sx - cy)), fabs(-sx + cy)), fabs(-sx - cy))), 1); *dstwidth = 2 * dstwidthhalf; *dstheight = 2 * dstheighthalf; } /*! \brief Returns the size of the resulting target surface for a rotozoomSurfaceXY() call. \param width The source surface width. \param height The source surface height. \param angle The angle to rotate in degrees. \param zoomx The horizontal scaling factor. \param zoomy The vertical scaling factor. \param dstwidth The calculated width of the rotozoomed destination surface. \param dstheight The calculated height of the rotozoomed destination surface. */ void rotozoomSurfaceSizeXY(int width, int height, double angle, double zoomx, double zoomy, int *dstwidth, int *dstheight) { double dummy_sanglezoom, dummy_canglezoom; _rotozoomSurfaceSizeTrig(width, height, angle, zoomx, zoomy, dstwidth, dstheight, &dummy_sanglezoom, &dummy_canglezoom); } /*! \brief Returns the size of the resulting target surface for a rotozoomSurface() call. \param width The source surface width. \param height The source surface height. \param angle The angle to rotate in degrees. \param zoom The scaling factor. \param dstwidth The calculated width of the rotozoomed destination surface. \param dstheight The calculated height of the rotozoomed destination surface. */ void rotozoomSurfaceSize(int width, int height, double angle, double zoom, int *dstwidth, int *dstheight) { double dummy_sanglezoom, dummy_canglezoom; _rotozoomSurfaceSizeTrig(width, height, angle, zoom, zoom, dstwidth, dstheight, &dummy_sanglezoom, &dummy_canglezoom); } /*! \brief Rotates and zooms a surface and optional anti-aliasing. Rotates and zoomes a 32bit or 8bit 'src' surface to newly created 'dst' surface. 'angle' is the rotation in degrees and 'zoom' a scaling factor. If 'smooth' is set then the destination 32bit surface is anti-aliased. If the surface is not 8bit or 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly. \param src The surface to rotozoom. \param angle The angle to rotate in degrees. \param zoom The scaling factor. \param smooth Antialiasing flag; set to SMOOTHING_ON to enable. \return The new rotozoomed surface. */ SDL_Surface *rotozoomSurface(SDL_Surface * src, double angle, double zoom, int smooth) { return rotozoomSurfaceXY(src, angle, zoom, zoom, smooth); } /*! \brief Rotates and zooms a surface with different horizontal and vertival scaling factors and optional anti-aliasing. Rotates and zooms a 32bit or 8bit 'src' surface to newly created 'dst' surface. 'angle' is the rotation in degrees, 'zoomx and 'zoomy' scaling factors. If 'smooth' is set then the destination 32bit surface is anti-aliased. If the surface is not 8bit or 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly. \param src The surface to rotozoom. \param angle The angle to rotate in degrees. \param zoomx The horizontal scaling factor. \param zoomy The vertical scaling factor. \param smooth Antialiasing flag; set to SMOOTHING_ON to enable. \return The new rotozoomed surface. */ SDL_Surface *rotozoomSurfaceXY(SDL_Surface * src, double angle, double zoomx, double zoomy, int smooth) { SDL_Surface *rz_src; SDL_Surface *rz_dst; double zoominv; double sanglezoom, canglezoom, sanglezoominv, canglezoominv; int dstwidthhalf, dstwidth, dstheighthalf, dstheight; int is32bit; int i, src_converted; int flipx,flipy; /* * Sanity check */ if (src == NULL) { return (NULL); } /* * Determine if source surface is 32bit or 8bit */ is32bit = (src->format->BitsPerPixel == 32); if ((is32bit) || (src->format->BitsPerPixel == 8)) { /* * Use source surface 'as is' */ rz_src = src; src_converted = 0; } else { /* * New source surface is 32bit with a defined RGBA ordering */ rz_src = SDL_CreateRGBSurface(SDL_SWSURFACE, src->w, src->h, 32, #if SDL_BYTEORDER == SDL_LIL_ENDIAN 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000 #else 0xff000000, 0x00ff0000, 0x0000ff00, 0x000000ff #endif ); SDL_BlitSurface(src, NULL, rz_src, NULL); src_converted = 1; is32bit = 1; } /* * Sanity check zoom factor */ flipx = (zoomx<0.0); if (flipx) zoomx=-zoomx; flipy = (zoomy<0.0); if (flipy) zoomy=-zoomy; if (zoomx < VALUE_LIMIT) zoomx = VALUE_LIMIT; if (zoomy < VALUE_LIMIT) zoomy = VALUE_LIMIT; zoominv = 65536.0 / (zoomx * zoomx); /* * Check if we have a rotozoom or just a zoom */ if (fabs(angle) > VALUE_LIMIT) { /* * Angle!=0: full rotozoom */ /* * ----------------------- */ /* Determine target size */ _rotozoomSurfaceSizeTrig(rz_src->w, rz_src->h, angle, zoomx, zoomy, &dstwidth, &dstheight, &canglezoom, &sanglezoom); /* * Calculate target factors from sin/cos and zoom */ sanglezoominv = sanglezoom; canglezoominv = canglezoom; sanglezoominv *= zoominv; canglezoominv *= zoominv; /* Calculate half size */ dstwidthhalf = dstwidth / 2; dstheighthalf = dstheight / 2; /* * Alloc space to completely contain the rotated surface */ rz_dst = NULL; if (is32bit) { /* * Target surface is 32bit with source RGBA/ABGR ordering */ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 32, rz_src->format->Rmask, rz_src->format->Gmask, rz_src->format->Bmask, rz_src->format->Amask); } else { /* * Target surface is 8bit */ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 8, 0, 0, 0, 0); } /* Check target */ if (rz_dst == NULL) return NULL; /* Adjust for guard rows */ rz_dst->h = dstheight; /* * Lock source surface */ if (SDL_MUSTLOCK(rz_src)) { SDL_LockSurface(rz_src); } /* * Check which kind of surface we have */ if (is32bit) { /* * Call the 32bit transformation routine to do the rotation (using alpha) */ _transformSurfaceRGBA(rz_src, rz_dst, dstwidthhalf, dstheighthalf, (int) (sanglezoominv), (int) (canglezoominv), flipx, flipy, smooth); } else { /* * Copy palette and colorkey info */ for (i = 0; i < rz_src->format->palette->ncolors; i++) { rz_dst->format->palette->colors[i] = rz_src->format->palette->colors[i]; } rz_dst->format->palette->ncolors = rz_src->format->palette->ncolors; /* * Call the 8bit transformation routine to do the rotation */ transformSurfaceY(rz_src, rz_dst, dstwidthhalf, dstheighthalf, (int) (sanglezoominv), (int) (canglezoominv), flipx, flipy); } /* * Unlock source surface */ if (SDL_MUSTLOCK(rz_src)) { SDL_UnlockSurface(rz_src); } } else { /* * Angle=0: Just a zoom */ /* * -------------------- */ /* * Calculate target size */ zoomSurfaceSize(rz_src->w, rz_src->h, zoomx, zoomy, &dstwidth, &dstheight); /* * Alloc space to completely contain the zoomed surface */ rz_dst = NULL; if (is32bit) { /* * Target surface is 32bit with source RGBA/ABGR ordering */ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 32, rz_src->format->Rmask, rz_src->format->Gmask, rz_src->format->Bmask, rz_src->format->Amask); } else { /* * Target surface is 8bit */ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 8, 0, 0, 0, 0); } /* Check target */ if (rz_dst == NULL) return NULL; /* Adjust for guard rows */ rz_dst->h = dstheight; /* * Lock source surface */ if (SDL_MUSTLOCK(rz_src)) { SDL_LockSurface(rz_src); } /* * Check which kind of surface we have */ if (is32bit) { /* * Call the 32bit transformation routine to do the zooming (using alpha) */ _zoomSurfaceRGBA(rz_src, rz_dst, flipx, flipy, smooth); } else { /* * Copy palette and colorkey info */ for (i = 0; i < rz_src->format->palette->ncolors; i++) { rz_dst->format->palette->colors[i] = rz_src->format->palette->colors[i]; } rz_dst->format->palette->ncolors = rz_src->format->palette->ncolors; /* * Call the 8bit transformation routine to do the zooming */ _zoomSurfaceY(rz_src, rz_dst, flipx, flipy); } /* * Unlock source surface */ if (SDL_MUSTLOCK(rz_src)) { SDL_UnlockSurface(rz_src); } } /* * Cleanup temp surface */ if (src_converted) { SDL_FreeSurface(rz_src); } /* * Return destination surface */ return (rz_dst); } /*! \brief Calculates the size of the target surface for a zoomSurface() call. The minimum size of the target surface is 1. The input factors can be positive or negative. \param width The width of the source surface to zoom. \param height The height of the source surface to zoom. \param zoomx The horizontal zoom factor. \param zoomy The vertical zoom factor. \param dstwidth Pointer to an integer to store the calculated width of the zoomed target surface. \param dstheight Pointer to an integer to store the calculated height of the zoomed target surface. */ void zoomSurfaceSize(int width, int height, double zoomx, double zoomy, int *dstwidth, int *dstheight) { /* * Make zoom factors positive */ int flipx, flipy; flipx = (zoomx<0.0); if (flipx) zoomx = -zoomx; flipy = (zoomy<0.0); if (flipy) zoomy = -zoomy; /* * Sanity check zoom factors */ if (zoomx < VALUE_LIMIT) { zoomx = VALUE_LIMIT; } if (zoomy < VALUE_LIMIT) { zoomy = VALUE_LIMIT; } /* * Calculate target size */ *dstwidth = (int) floor(((double) width * zoomx) + 0.5); *dstheight = (int) floor(((double) height * zoomy) + 0.5); if (*dstwidth < 1) { *dstwidth = 1; } if (*dstheight < 1) { *dstheight = 1; } } /*! \brief Zoom a surface by independent horizontal and vertical factors with optional smoothing. Zooms a 32bit or 8bit 'src' surface to newly created 'dst' surface. 'zoomx' and 'zoomy' are scaling factors for width and height. If 'smooth' is on then the destination 32bit surface is anti-aliased. If the surface is not 8bit or 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly. If zoom factors are negative, the image is flipped on the axes. \param src The surface to zoom. \param zoomx The horizontal zoom factor. \param zoomy The vertical zoom factor. \param smooth Antialiasing flag; set to SMOOTHING_ON to enable. \return The new, zoomed surface. */ SDL_Surface *zoomSurface(SDL_Surface * src, double zoomx, double zoomy, int smooth) { SDL_Surface *rz_src; SDL_Surface *rz_dst; int dstwidth, dstheight; int is32bit; int i, src_converted; int flipx, flipy; /* * Sanity check */ if (src == NULL) return (NULL); /* * Determine if source surface is 32bit or 8bit */ is32bit = (src->format->BitsPerPixel == 32); if ((is32bit) || (src->format->BitsPerPixel == 8)) { /* * Use source surface 'as is' */ rz_src = src; src_converted = 0; } else { /* * New source surface is 32bit with a defined RGBA ordering */ rz_src = SDL_CreateRGBSurface(SDL_SWSURFACE, src->w, src->h, 32, #if SDL_BYTEORDER == SDL_LIL_ENDIAN 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000 #else 0xff000000, 0x00ff0000, 0x0000ff00, 0x000000ff #endif ); if (rz_src == NULL) { return NULL; } SDL_BlitSurface(src, NULL, rz_src, NULL); src_converted = 1; is32bit = 1; } flipx = (zoomx<0.0); if (flipx) zoomx = -zoomx; flipy = (zoomy<0.0); if (flipy) zoomy = -zoomy; /* Get size if target */ zoomSurfaceSize(rz_src->w, rz_src->h, zoomx, zoomy, &dstwidth, &dstheight); /* * Alloc space to completely contain the zoomed surface */ rz_dst = NULL; if (is32bit) { /* * Target surface is 32bit with source RGBA/ABGR ordering */ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 32, rz_src->format->Rmask, rz_src->format->Gmask, rz_src->format->Bmask, rz_src->format->Amask); } else { /* * Target surface is 8bit */ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 8, 0, 0, 0, 0); } /* Check target */ if (rz_dst == NULL) { /* * Cleanup temp surface */ if (src_converted) { SDL_FreeSurface(rz_src); } return NULL; } /* Adjust for guard rows */ rz_dst->h = dstheight; /* * Lock source surface */ if (SDL_MUSTLOCK(rz_src)) { SDL_LockSurface(rz_src); } /* * Check which kind of surface we have */ if (is32bit) { /* * Call the 32bit transformation routine to do the zooming (using alpha) */ _zoomSurfaceRGBA(rz_src, rz_dst, flipx, flipy, smooth); } else { /* * Copy palette and colorkey info */ for (i = 0; i < rz_src->format->palette->ncolors; i++) { rz_dst->format->palette->colors[i] = rz_src->format->palette->colors[i]; } rz_dst->format->palette->ncolors = rz_src->format->palette->ncolors; /* * Call the 8bit transformation routine to do the zooming */ _zoomSurfaceY(rz_src, rz_dst, flipx, flipy); } /* * Unlock source surface */ if (SDL_MUSTLOCK(rz_src)) { SDL_UnlockSurface(rz_src); } /* * Cleanup temp surface */ if (src_converted) { SDL_FreeSurface(rz_src); } /* * Return destination surface */ return (rz_dst); } /*! \brief Shrink a surface by an integer ratio using averaging. Shrinks a 32bit or 8bit 'src' surface to a newly created 'dst' surface. 'factorx' and 'factory' are the shrinking ratios (i.e. 2=1/2 the size, 3=1/3 the size, etc.) The destination surface is antialiased by averaging the source box RGBA or Y information. If the surface is not 8bit or 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly. The input surface is not modified. The output surface is newly allocated. \param src The surface to shrink. \param factorx The horizontal shrinking ratio. \param factory The vertical shrinking ratio. \return The new, shrunken surface. */ /*@null@*/ SDL_Surface *shrinkSurface(SDL_Surface *src, int factorx, int factory) { int result; SDL_Surface *rz_src; SDL_Surface *rz_dst = NULL; int dstwidth, dstheight; int is32bit; int i, src_converted; int haveError = 0; /* * Sanity check */ if (src == NULL) { return (NULL); } /* * Determine if source surface is 32bit or 8bit */ is32bit = (src->format->BitsPerPixel == 32); if ((is32bit) || (src->format->BitsPerPixel == 8)) { /* * Use source surface 'as is' */ rz_src = src; src_converted = 0; } else { /* * New source surface is 32bit with a defined RGBA ordering */ rz_src = SDL_CreateRGBSurface(SDL_SWSURFACE, src->w, src->h, 32, #if SDL_BYTEORDER == SDL_LIL_ENDIAN 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000 #else 0xff000000, 0x00ff0000, 0x0000ff00, 0x000000ff #endif ); if (rz_src==NULL) { haveError = 1; goto exitShrinkSurface; } SDL_BlitSurface(src, NULL, rz_src, NULL); src_converted = 1; is32bit = 1; } /* * Lock the surface */ if (SDL_MUSTLOCK(rz_src)) { if (SDL_LockSurface(rz_src) < 0) { haveError = 1; goto exitShrinkSurface; } } /* Get size for target */ dstwidth=rz_src->w/factorx; while (dstwidth*factorx>rz_src->w) { dstwidth--; } dstheight=rz_src->h/factory; while (dstheight*factory>rz_src->h) { dstheight--; } /* * Alloc space to completely contain the shrunken surface * (with added guard rows) */ if (is32bit==1) { /* * Target surface is 32bit with source RGBA/ABGR ordering */ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 32, rz_src->format->Rmask, rz_src->format->Gmask, rz_src->format->Bmask, rz_src->format->Amask); } else { /* * Target surface is 8bit */ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 8, 0, 0, 0, 0); } /* Check target */ if (rz_dst == NULL) { haveError = 1; goto exitShrinkSurface; } /* Adjust for guard rows */ rz_dst->h = dstheight; /* * Check which kind of surface we have */ if (is32bit==1) { /* * Call the 32bit transformation routine to do the shrinking (using alpha) */ result = _shrinkSurfaceRGBA(rz_src, rz_dst, factorx, factory); if ((result!=0) || (rz_dst==NULL)) { haveError = 1; goto exitShrinkSurface; } } else { /* * Copy palette and colorkey info */ for (i = 0; i < rz_src->format->palette->ncolors; i++) { rz_dst->format->palette->colors[i] = rz_src->format->palette->colors[i]; } rz_dst->format->palette->ncolors = rz_src->format->palette->ncolors; /* * Call the 8bit transformation routine to do the shrinking */ result = _shrinkSurfaceY(rz_src, rz_dst, factorx, factory); if (result!=0) { haveError = 1; goto exitShrinkSurface; } } exitShrinkSurface: if (rz_src!=NULL) { /* * Unlock source surface */ if (SDL_MUSTLOCK(rz_src)) { SDL_UnlockSurface(rz_src); } /* * Cleanup temp surface */ if (src_converted==1) { SDL_FreeSurface(rz_src); } } /* Check error state; maybe need to cleanup destination */ if (haveError==1) { if (rz_dst!=NULL) { SDL_FreeSurface(rz_dst); } rz_dst=NULL; } /* * Return destination surface */ return (rz_dst); } instead-1.9.1/src/sdl-instead/SDL_gfxBlitFunc.c000644 001751 001751 00000031552 12161555571 021550 0ustar00peterpeter000000 000000 /* SDL_gfxBlitFunc.c: custom blitters Copyright (C) 2001-2012 Andreas Schiffler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Andreas Schiffler -- aschiffler at ferzkopp dot net */ #include "SDL_gfxBlitFunc.h" /*! \brief Alpha adjustment table for custom blitter. The table provides values for a modified, non-linear transfer function which maintain brightness. */ const unsigned int GFX_ALPHA_ADJUST_ARRAY[256] = { 0, /* 0 */ 15, /* 1 */ 22, /* 2 */ 27, /* 3 */ 31, /* 4 */ 35, /* 5 */ 39, /* 6 */ 42, /* 7 */ 45, /* 8 */ 47, /* 9 */ 50, /* 10 */ 52, /* 11 */ 55, /* 12 */ 57, /* 13 */ 59, /* 14 */ 61, /* 15 */ 63, /* 16 */ 65, /* 17 */ 67, /* 18 */ 69, /* 19 */ 71, /* 20 */ 73, /* 21 */ 74, /* 22 */ 76, /* 23 */ 78, /* 24 */ 79, /* 25 */ 81, /* 26 */ 82, /* 27 */ 84, /* 28 */ 85, /* 29 */ 87, /* 30 */ 88, /* 31 */ 90, /* 32 */ 91, /* 33 */ 93, /* 34 */ 94, /* 35 */ 95, /* 36 */ 97, /* 37 */ 98, /* 38 */ 99, /* 39 */ 100, /* 40 */ 102, /* 41 */ 103, /* 42 */ 104, /* 43 */ 105, /* 44 */ 107, /* 45 */ 108, /* 46 */ 109, /* 47 */ 110, /* 48 */ 111, /* 49 */ 112, /* 50 */ 114, /* 51 */ 115, /* 52 */ 116, /* 53 */ 117, /* 54 */ 118, /* 55 */ 119, /* 56 */ 120, /* 57 */ 121, /* 58 */ 122, /* 59 */ 123, /* 60 */ 124, /* 61 */ 125, /* 62 */ 126, /* 63 */ 127, /* 64 */ 128, /* 65 */ 129, /* 66 */ 130, /* 67 */ 131, /* 68 */ 132, /* 69 */ 133, /* 70 */ 134, /* 71 */ 135, /* 72 */ 136, /* 73 */ 137, /* 74 */ 138, /* 75 */ 139, /* 76 */ 140, /* 77 */ 141, /* 78 */ 141, /* 79 */ 142, /* 80 */ 143, /* 81 */ 144, /* 82 */ 145, /* 83 */ 146, /* 84 */ 147, /* 85 */ 148, /* 86 */ 148, /* 87 */ 149, /* 88 */ 150, /* 89 */ 151, /* 90 */ 152, /* 91 */ 153, /* 92 */ 153, /* 93 */ 154, /* 94 */ 155, /* 95 */ 156, /* 96 */ 157, /* 97 */ 158, /* 98 */ 158, /* 99 */ 159, /* 100 */ 160, /* 101 */ 161, /* 102 */ 162, /* 103 */ 162, /* 104 */ 163, /* 105 */ 164, /* 106 */ 165, /* 107 */ 165, /* 108 */ 166, /* 109 */ 167, /* 110 */ 168, /* 111 */ 168, /* 112 */ 169, /* 113 */ 170, /* 114 */ 171, /* 115 */ 171, /* 116 */ 172, /* 117 */ 173, /* 118 */ 174, /* 119 */ 174, /* 120 */ 175, /* 121 */ 176, /* 122 */ 177, /* 123 */ 177, /* 124 */ 178, /* 125 */ 179, /* 126 */ 179, /* 127 */ 180, /* 128 */ 181, /* 129 */ 182, /* 130 */ 182, /* 131 */ 183, /* 132 */ 184, /* 133 */ 184, /* 134 */ 185, /* 135 */ 186, /* 136 */ 186, /* 137 */ 187, /* 138 */ 188, /* 139 */ 188, /* 140 */ 189, /* 141 */ 190, /* 142 */ 190, /* 143 */ 191, /* 144 */ 192, /* 145 */ 192, /* 146 */ 193, /* 147 */ 194, /* 148 */ 194, /* 149 */ 195, /* 150 */ 196, /* 151 */ 196, /* 152 */ 197, /* 153 */ 198, /* 154 */ 198, /* 155 */ 199, /* 156 */ 200, /* 157 */ 200, /* 158 */ 201, /* 159 */ 201, /* 160 */ 202, /* 161 */ 203, /* 162 */ 203, /* 163 */ 204, /* 164 */ 205, /* 165 */ 205, /* 166 */ 206, /* 167 */ 206, /* 168 */ 207, /* 169 */ 208, /* 170 */ 208, /* 171 */ 209, /* 172 */ 210, /* 173 */ 210, /* 174 */ 211, /* 175 */ 211, /* 176 */ 212, /* 177 */ 213, /* 178 */ 213, /* 179 */ 214, /* 180 */ 214, /* 181 */ 215, /* 182 */ 216, /* 183 */ 216, /* 184 */ 217, /* 185 */ 217, /* 186 */ 218, /* 187 */ 218, /* 188 */ 219, /* 189 */ 220, /* 190 */ 220, /* 191 */ 221, /* 192 */ 221, /* 193 */ 222, /* 194 */ 222, /* 195 */ 223, /* 196 */ 224, /* 197 */ 224, /* 198 */ 225, /* 199 */ 225, /* 200 */ 226, /* 201 */ 226, /* 202 */ 227, /* 203 */ 228, /* 204 */ 228, /* 205 */ 229, /* 206 */ 229, /* 207 */ 230, /* 208 */ 230, /* 209 */ 231, /* 210 */ 231, /* 211 */ 232, /* 212 */ 233, /* 213 */ 233, /* 214 */ 234, /* 215 */ 234, /* 216 */ 235, /* 217 */ 235, /* 218 */ 236, /* 219 */ 236, /* 220 */ 237, /* 221 */ 237, /* 222 */ 238, /* 223 */ 238, /* 224 */ 239, /* 225 */ 240, /* 226 */ 240, /* 227 */ 241, /* 228 */ 241, /* 229 */ 242, /* 230 */ 242, /* 231 */ 243, /* 232 */ 243, /* 233 */ 244, /* 234 */ 244, /* 235 */ 245, /* 236 */ 245, /* 237 */ 246, /* 238 */ 246, /* 239 */ 247, /* 240 */ 247, /* 241 */ 248, /* 242 */ 248, /* 243 */ 249, /* 244 */ 249, /* 245 */ 250, /* 246 */ 250, /* 247 */ 251, /* 248 */ 251, /* 249 */ 252, /* 250 */ 252, /* 251 */ 253, /* 252 */ 253, /* 253 */ 254, /* 254 */ 255 /* 255 */ }; /*! \brief Internal blitter using adjusted destination alpha during RGBA->RGBA blits. Performs the blit based on the 'info' structure and applies the transfer function to the destination 'a' values. \param info The blit info to use. */ void _SDL_gfxBlitBlitterRGBA(SDL_gfxBlitInfo * info) { int width = info->d_width; int height = info->d_height; Uint8 *src = info->s_pixels; int srcskip = info->s_skip; Uint8 *dst = info->d_pixels; int dstskip = info->d_skip; SDL_PixelFormat *srcfmt = info->src; SDL_PixelFormat *dstfmt = info->dst; Uint8 srcbpp = srcfmt->BytesPerPixel; Uint8 dstbpp = dstfmt->BytesPerPixel; while (height--) { GFX_DUFFS_LOOP4( { Uint32 pixel; unsigned sR; unsigned sG; unsigned sB; unsigned sA; unsigned dR; unsigned dG; unsigned dB; unsigned dA; unsigned sAA; GFX_DISASSEMBLE_RGBA(src, srcbpp, srcfmt, pixel, sR, sG, sB, sA); GFX_DISASSEMBLE_RGBA(dst, dstbpp, dstfmt, pixel, dR, dG, dB, dA); sAA=GFX_ALPHA_ADJUST_ARRAY[sA & 255]; GFX_ALPHA_BLEND(sR, sG, sB, sAA, dR, dG, dB); dA |= sAA; GFX_ASSEMBLE_RGBA(dst, dstbpp, dstfmt, dR, dG, dB, dA); src += srcbpp; dst += dstbpp; }, width); src += srcskip; dst += dstskip; } } /*! \brief Internal blitter setup wrapper for RGBA->RGBA blits. Sets up the blitter info based on the 'src' and 'dst' surfaces and rectangles. \param src The source surface. \param srcrect The source rectangle. \param dst The destination surface. \param dstrect The destination rectangle. \returns Returns 1 if blit was performed, 0 otherwise. */ int _SDL_gfxBlitRGBACall(SDL_Surface * src, SDL_Rect * srcrect, SDL_Surface * dst, SDL_Rect * dstrect) { /* * Set up source and destination buffer pointers, then blit */ if (srcrect->w && srcrect->h) { SDL_gfxBlitInfo info; /* * Set up the blit information */ #if SDL_VERSION_ATLEAST(1,3,0) info.s_pixels = (Uint8 *) src->pixels + (Uint16) srcrect->y * src->pitch + (Uint16) srcrect->x * src->format->BytesPerPixel; #else info.s_pixels = (Uint8 *) src->pixels + src->offset + (Uint16) srcrect->y * src->pitch + (Uint16) srcrect->x * src->format->BytesPerPixel; #endif info.s_width = srcrect->w; info.s_height = srcrect->h; info.s_skip = (int)(src->pitch - info.s_width * src->format->BytesPerPixel); #if SDL_VERSION_ATLEAST(1,3,0) info.d_pixels = (Uint8 *) dst->pixels + (Uint16) dstrect->y * dst->pitch + (Uint16) dstrect->x * dst->format->BytesPerPixel; #else info.d_pixels = (Uint8 *) dst->pixels + dst->offset + (Uint16) dstrect->y * dst->pitch + (Uint16) dstrect->x * dst->format->BytesPerPixel; #endif info.d_width = dstrect->w; info.d_height = dstrect->h; info.d_skip = (int)(dst->pitch - info.d_width * dst->format->BytesPerPixel); info.aux_data = NULL; info.src = src->format; info.table = NULL; info.dst = dst->format; /* * Run the actual software blitter */ _SDL_gfxBlitBlitterRGBA(&info); return 1; } return (0); } /*! \brief Blitter for RGBA->RGBA blits with alpha adjustment. Verifies the input 'src' and 'dst' surfaces and rectangles and performs blit. The destination clip rectangle is honored. \param src The source surface. \param srcrect The source rectangle. \param dst The destination surface. \param dstrect The destination rectangle. \returns Returns 1 if blit was performed, 0 otherwise, or -1 if an error occured. */ int SDL_gfxBlitRGBA(SDL_Surface * src, SDL_Rect * srcrect, SDL_Surface * dst, SDL_Rect * dstrect) { SDL_Rect sr, dr; int srcx, srcy, w, h; /* * Make sure the surfaces aren't locked */ if (!src || !dst) { SDL_SetError("SDL_UpperBlit: passed a NULL surface"); return (-1); } if ((src->locked) || (dst->locked)) { SDL_SetError("Surfaces must not be locked during blit"); return (-1); } /* * If the destination rectangle is NULL, use the entire dest surface */ if (dstrect == NULL) { dr.x = dr.y = 0; dr.w = dst->w; dr.h = dst->h; } else { dr = *dstrect; } /* * Clip the source rectangle to the source surface */ if (srcrect) { int maxw, maxh; srcx = srcrect->x; w = srcrect->w; if (srcx < 0) { w += srcx; dr.x -= srcx; srcx = 0; } maxw = src->w - srcx; if (maxw < w) w = maxw; srcy = srcrect->y; h = srcrect->h; if (srcy < 0) { h += srcy; dr.y -= srcy; srcy = 0; } maxh = src->h - srcy; if (maxh < h) h = maxh; } else { srcx = srcy = 0; w = src->w; h = src->h; } /* * Clip the destination rectangle against the clip rectangle */ { SDL_Rect *clip = &dst->clip_rect; int dx, dy; dx = clip->x - dr.x; if (dx > 0) { w -= dx; dr.x += dx; srcx += dx; } dx = dr.x + w - clip->x - clip->w; if (dx > 0) w -= dx; dy = clip->y - dr.y; if (dy > 0) { h -= dy; dr.y += dy; srcy += dy; } dy = dr.y + h - clip->y - clip->h; if (dy > 0) h -= dy; } if (w > 0 && h > 0) { sr.x = srcx; sr.y = srcy; sr.w = dr.w = w; sr.h = dr.h = h; return (_SDL_gfxBlitRGBACall(src, &sr, dst, &dr)); } return 0; } /*! \brief Sets the alpha channel in a 32 bit surface. Helper function that sets the alpha channel in a 32 bit surface to a constant value. Only 32 bit surfaces can be used with this function. \param src Pointer to the target surface to change. \param a The alpha value to set. \return Returns 1 if alpha was changed, -1 otherwise. */ int SDL_gfxSetAlpha(SDL_Surface *src, Uint8 a) { #if SDL_BYTEORDER == SDL_BIG_ENDIAN const int alpha_offset = 0; #else const int alpha_offset = 3; #endif int i, j, row_skip; Uint8 *pixels; /* Check if we have a 32bit surface */ if ( (src==NULL) || (src->format==NULL) || (src->format->BytesPerPixel!=4) ) { SDL_SetError("SDL_gfxSetAlpha: Invalid input surface."); return -1; } /* * Lock the surface */ if (SDL_MUSTLOCK(src)) { if (SDL_LockSurface(src) < 0) { return (-1); } } /* Process */ pixels = (Uint8 *)src->pixels; row_skip = (src->pitch - (4*src->w)); pixels += alpha_offset; for ( i=0; ih; i++ ) { for ( j=0; jw; j++ ) { *pixels = a; pixels += 4; } pixels += row_skip; } /* * Unlock surface */ if (SDL_MUSTLOCK(src)) { SDL_UnlockSurface(src); } return 1; } /*! \brief Multiply the alpha channel in a 32bit surface. Helper function that multiplies the alpha channel in a 32 bit surface with a constant value. The final alpha is always scaled to the range 0-255 (i.e. the factor is a/256). Only 32 bit surfaces can be used with this function. \param src Pointer to the target surface to change. \param a The alpha value to multiply with. When a is 255, this function is a NoOp. \return Returns 1 if alpha was changed, 0 otherwise. Returns -1 if input surface is invalid. */ int SDL_gfxMultiplyAlpha(SDL_Surface *src, Uint8 a) { #if SDL_BYTEORDER == SDL_BIG_ENDIAN const int alpha_offset = 0; #else const int alpha_offset = 3; #endif int i, j, row_skip; Uint8 *pixels; /* Check if we have a 32bit surface */ if ( (src==NULL) || (src->format==NULL) || (src->format->BytesPerPixel!=4) ) { SDL_SetError("SDL_gfxMultiplyAlpha: Invalid input surface."); return -1; } /* Check if multiplication is needed */ if (a==255) { return 0; } /* * Lock the surface */ if (SDL_MUSTLOCK(src)) { if (SDL_LockSurface(src) < 0) { return (-1); } } /* Process */ pixels = (Uint8 *)src->pixels; row_skip = (src->pitch - (4*src->w)); pixels += alpha_offset; for ( i=0; ih; i++ ) { for ( j=0; jw; j++ ) { *pixels = (Uint8)(((int)(*pixels)*a)>>8); pixels += 4; } pixels += row_skip; } /* * Unlock surface */ if (SDL_MUSTLOCK(src)) { SDL_UnlockSurface(src); } return 1; } instead-1.9.1/src/sdl-instead/s60.h000644 001751 001751 00000000527 12162117161 017234 0ustar00peterpeter000000 000000 #ifndef S60_H #define S60_H #define PATH_MAX 256 #define VERSION "1.9.1" #define DATAPATH "./" #define STEAD_PATH DATAPATH"stead/" #define THEMES_PATH DATAPATH"themes/" #define GAMES_PATH DATAPATH"games/" #define ICON_PATH DATAPATH"icon/" #define LANG_PATH DATAPATH"lang/" extern char *dirname(char *); extern char *basename(char *); #endif instead-1.9.1/src/sdl-instead/game.h000644 001751 001751 00000006057 12161555571 017553 0ustar00peterpeter000000 000000 #ifndef __GAME_H__ #define __GAME_H__ #include #include "idf.h" #define SND_CHANNELS MIX_CHANNELS #ifndef GAMES_PATH #define GAMES_PATH "./games" #endif #define MAIN_FILE "main.lua" #define HZ 100 extern int game_running; extern int game_theme_changed; extern int nosound_sw; extern int alsa_sw; extern int debug_sw; extern int fullscreen_sw; extern int window_sw; extern int nopause_sw; extern int game_own_theme; /* current game has own theme */ extern char *games_sw; extern char *err_msg; /* last error message */ extern char game_cwd[PATH_MAX]; /* current game cwd */ extern char *curgame_dir; extern char *game_local_stead_path(void); extern char *game_local_games_path(int cr); extern char *game_tmp_path(void); extern int game_theme_select(const char *name); extern int game_init(const char *game); extern int game_loop(void); extern void game_done(int err); extern int game_load_theme(const char *path); extern int game_apply_theme(void); extern int game_use_theme(void); extern void game_release_theme(void); extern int game_reset(void); extern void game_music_player(void); extern void game_stop_mus(int ms); extern int game_change_vol(int d, int val); extern int game_change_hz(int hz); extern int games_lookup(const char *path); extern int games_remove(int nr); extern int games_replace(const char *path, const char *dir); extern int games_rename(void); extern void game_err_msg(const char *s); extern int game_error(void); extern int game_restart(void); extern int game_select(const char *name); extern int game_cmd(char *cmd, int click); extern void game_menu(int nr); /* select and show menu */ extern void game_menu_box(int show, const char *txt); /* show menu */ extern int game_menu_box_wh(const char *txt, int *w, int *h); extern void game_menu_box_width(int show, const char *txt, int width); extern void mouse_reset(int hl); extern int mouse_restore(void); extern int game_load(int nr); extern int game_save(int nr); extern int game_saves_enabled(void); extern char *game_cfg_path(void); extern char *game_save_path(int rc, int nr); extern char *game_locale(void); extern int game_paused(void); extern char *open_file_dialog(void); extern int game_from_disk(void); extern int game_pict_modify(img_t p); extern int game_pict_coord(int *x, int *y, int *w, int *h); extern void menu_toggle(int menu); extern int menu_visible(void); extern void game_channel_finished(int channel); extern int sound_load(const char *fname); extern void sound_unload(const char *fname); extern void sounds_free(void); extern const char *sound_channel(int i); extern void *sound_get(const char *fname); extern void sound_put(void *sn); void game_gfx_commit(void); #define CURSOR_CLEAR -1 #define CURSOR_OFF 0 #define CURSOR_ON 1 #define CURSOR_DRAW 2 extern void game_cursor(int on); /* must be called with -1 before gfx change and 1 after, 2 - not update */ struct game { char *path; char *name; char *dir; int idf; }; extern struct game *games; extern int games_nr; extern idf_t game_idf; extern unsigned long timer_counter; #endif instead-1.9.1/src/sdl-instead/list.h000644 001751 001751 00000007245 12161555571 017615 0ustar00peterpeter000000 000000 #ifndef _LIST_H #define _LIST_H #include #define LIST_POISON1 NULL #define LIST_POISON2 NULL struct list_head { struct list_head *next, *prev; }; #define LIST_HEAD_INIT(name) { &(name), &(name) } #define LIST_HEAD(name) \ struct list_head name = LIST_HEAD_INIT(name) static inline void INIT_LIST_HEAD(struct list_head *list) { list->next = list; list->prev = list; } static inline void __list_add(struct list_head *new, struct list_head *prev, struct list_head *next) { next->prev = new; new->next = next; new->prev = prev; prev->next = new; } static inline void list_add(struct list_head *new, struct list_head *head) { __list_add(new, head, head->next); } static inline void list_add_tail(struct list_head *new, struct list_head *head) { __list_add(new, head->prev, head); } static inline void __list_del(struct list_head * prev, struct list_head * next) { next->prev = prev; prev->next = next; } static inline void list_del(struct list_head *entry) { __list_del(entry->prev, entry->next); entry->next = LIST_POISON1; entry->prev = LIST_POISON2; } static inline void list_replace(struct list_head *old, struct list_head *new) { new->next = old->next; new->next->prev = new; new->prev = old->prev; new->prev->next = new; } static inline void list_replace_init(struct list_head *old, struct list_head *new) { list_replace(old, new); INIT_LIST_HEAD(old); } static inline void list_del_init(struct list_head *entry) { __list_del(entry->prev, entry->next); INIT_LIST_HEAD(entry); } static inline void list_move(struct list_head *list, struct list_head *head) { __list_del(list->prev, list->next); list_add(list, head); } static inline void list_move_tail(struct list_head *list, struct list_head *head) { __list_del(list->prev, list->next); list_add_tail(list, head); } static inline int list_is_last(const struct list_head *list, const struct list_head *head) { return list->next == head; } static inline int list_empty(const struct list_head *head) { return head->next == head; } static inline void __list_splice(const struct list_head *list, struct list_head *prev, struct list_head *next) { struct list_head *first = list->next; struct list_head *last = list->prev; first->prev = prev; prev->next = first; last->next = next; next->prev = last; } static inline void list_splice(const struct list_head *list, struct list_head *head) { if (!list_empty(list)) __list_splice(list, head, head->next); } static inline void list_splice_tail(struct list_head *list, struct list_head *head) { if (!list_empty(list)) __list_splice(list, head->prev, head); } static inline void list_splice_init(struct list_head *list, struct list_head *head) { if (!list_empty(list)) { __list_splice(list, head, head->next); INIT_LIST_HEAD(list); } } static inline void list_splice_tail_init(struct list_head *list, struct list_head *head) { if (!list_empty(list)) { __list_splice(list, head->prev, head); INIT_LIST_HEAD(list); } } #define list_for_each(pos, head) \ for (pos = (head)->next; pos != (head); \ pos = pos->next) #define __list_for_each(pos, head) \ for (pos = (head)->next; pos != (head); pos = pos->next) #define list_for_each_prev(pos, head) \ for (pos = (head)->prev; pos != (head); \ pos = pos->prev) #define list_for_each_entry(pos, head, member) \ for (pos = list_entry((head)->next, typeof(*pos), member); \ &pos->member != (head); \ pos = list_entry(pos->member.next, typeof(*pos), member)) #define list_for_each_entry_from(pos, head, member) \ for (; &pos->member != (head); \ pos = list_entry(pos->member.next, typeof(*pos), member)) #endif instead-1.9.1/src/sdl-instead/SDL2_rotozoom.h000644 001751 001751 00000005670 12161555571 021316 0ustar00peterpeter000000 000000 /* SDL2_rotozoom.c: rotozoomer, zoomer and shrinker for 32bit or 8bit surfaces Copyright (C) 2001-2012 Andreas Schiffler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Andreas Schiffler -- aschiffler at ferzkopp dot net */ #ifndef _SDL2_rotozoom_h #define _SDL2_rotozoom_h #include /* Set up for C function definitions, even when using C++ */ #ifdef __cplusplus extern "C" { #endif #ifndef M_PI #define M_PI 3.1415926535897932384626433832795 #endif #include "SDL.h" /* ---- Defines */ /*! \brief Disable anti-aliasing (no smoothing). */ #define SMOOTHING_OFF 0 /*! \brief Enable anti-aliasing (smoothing). */ #define SMOOTHING_ON 1 /* ---- Function Prototypes */ #ifdef _MSC_VER # if defined(DLL_EXPORT) && !defined(LIBSDL2_GFX_DLL_IMPORT) # define SDL2_ROTOZOOM_SCOPE __declspec(dllexport) # else # ifdef LIBSDL2_GFX_DLL_IMPORT # define SDL2_ROTOZOOM_SCOPE __declspec(dllimport) # endif # endif #endif #ifndef SDL2_ROTOZOOM_SCOPE # define SDL2_ROTOZOOM_SCOPE extern #endif /* Rotozoom functions */ SDL2_ROTOZOOM_SCOPE SDL_Surface *rotozoomSurface(SDL_Surface * src, double angle, double zoom, int smooth); SDL2_ROTOZOOM_SCOPE SDL_Surface *rotozoomSurfaceXY (SDL_Surface * src, double angle, double zoomx, double zoomy, int smooth); SDL2_ROTOZOOM_SCOPE void rotozoomSurfaceSize(int width, int height, double angle, double zoom, int *dstwidth, int *dstheight); SDL2_ROTOZOOM_SCOPE void rotozoomSurfaceSizeXY (int width, int height, double angle, double zoomx, double zoomy, int *dstwidth, int *dstheight); /* Zooming functions */ SDL2_ROTOZOOM_SCOPE SDL_Surface *zoomSurface(SDL_Surface * src, double zoomx, double zoomy, int smooth); SDL2_ROTOZOOM_SCOPE void zoomSurfaceSize(int width, int height, double zoomx, double zoomy, int *dstwidth, int *dstheight); /* Shrinking functions */ SDL2_ROTOZOOM_SCOPE SDL_Surface *shrinkSurface(SDL_Surface * src, int factorx, int factory); /* Specialized rotation functions */ SDL2_ROTOZOOM_SCOPE SDL_Surface* rotateSurface90Degrees(SDL_Surface* src, int numClockwiseTurns); /* Ends C function definitions when using C++ */ #ifdef __cplusplus } #endif #endif /* _SDL2_rotozoom_h */ instead-1.9.1/src/sdl-instead/SDL_gfxBlitFunc.h000644 001751 001751 00000010636 12161555571 021555 0ustar00peterpeter000000 000000 /* SDL_gfxBlitFunc.h: custom blitters Copyright (C) 2001-2012 Andreas Schiffler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Andreas Schiffler -- aschiffler at ferzkopp dot net */ #ifndef _SDL_gfxBlitFunc_h #define _SDL_gfxBlitFunc_h /* Set up for C function definitions, even when using C++ */ #ifdef __cplusplus extern "C" { #endif #include #include #include #include extern const unsigned int GFX_ALPHA_ADJUST_ARRAY[256]; /* ---- Function Prototypes */ #ifdef _MSC_VER # if defined(DLL_EXPORT) && !defined(LIBSDL_GFX_DLL_IMPORT) # define SDL_GFXBLITFUNC_SCOPE __declspec(dllexport) # else # ifdef LIBSDL_GFX_DLL_IMPORT # define SDL_GFXBLITFUNC_SCOPE __declspec(dllimport) # endif # endif #endif #ifndef SDL_GFXBLITFUNC_SCOPE # define SDL_GFXBLITFUNC_SCOPE extern #endif SDL_GFXBLITFUNC_SCOPE int SDL_gfxBlitRGBA(SDL_Surface * src, SDL_Rect * srcrect, SDL_Surface * dst, SDL_Rect * dstrect); SDL_GFXBLITFUNC_SCOPE int SDL_gfxSetAlpha(SDL_Surface * src, Uint8 a); SDL_GFXBLITFUNC_SCOPE int SDL_gfxMultiplyAlpha(SDL_Surface * src, Uint8 a); /* -------- Macros */ /* Define SDL macros locally as a substitute for an #include "SDL_blit.h", */ /* which doesn't work since the include file doesn't get installed. */ /*! \brief The structure passed to the low level blit functions. */ typedef struct { Uint8 *s_pixels; int s_width; int s_height; int s_skip; Uint8 *d_pixels; int d_width; int d_height; int d_skip; void *aux_data; SDL_PixelFormat *src; Uint8 *table; SDL_PixelFormat *dst; } SDL_gfxBlitInfo; /*! \brief Unwrap RGBA values from a pixel using mask, shift and loss for surface. */ #define GFX_RGBA_FROM_PIXEL(pixel, fmt, r, g, b, a) \ { \ r = ((pixel&fmt->Rmask)>>fmt->Rshift)<Rloss; \ g = ((pixel&fmt->Gmask)>>fmt->Gshift)<Gloss; \ b = ((pixel&fmt->Bmask)>>fmt->Bshift)<Bloss; \ a = ((pixel&fmt->Amask)>>fmt->Ashift)<Aloss; \ } /*! \brief Disassemble buffer pointer into a pixel and separate RGBA values. */ #define GFX_DISASSEMBLE_RGBA(buf, bpp, fmt, pixel, r, g, b, a) \ do { \ pixel = *((Uint32 *)(buf)); \ GFX_RGBA_FROM_PIXEL(pixel, fmt, r, g, b, a); \ pixel &= ~fmt->Amask; \ } while(0) /*! \brief Wrap a pixel from RGBA values using mask, shift and loss for surface. */ #define GFX_PIXEL_FROM_RGBA(pixel, fmt, r, g, b, a) \ { \ pixel = ((r>>fmt->Rloss)<Rshift)| \ ((g>>fmt->Gloss)<Gshift)| \ ((b>>fmt->Bloss)<Bshift)| \ ((a<Aloss)<Ashift); \ } /*! \brief Assemble pixel into buffer pointer from separate RGBA values. */ #define GFX_ASSEMBLE_RGBA(buf, bpp, fmt, r, g, b, a) \ { \ Uint32 pixel; \ \ GFX_PIXEL_FROM_RGBA(pixel, fmt, r, g, b, a); \ *((Uint32 *)(buf)) = pixel; \ } /*! \brief Blend the RGB values of two pixels based on a source alpha value. */ #define GFX_ALPHA_BLEND(sR, sG, sB, A, dR, dG, dB) \ do { \ dR = (((sR-dR)*(A))/255)+dR; \ dG = (((sG-dG)*(A))/255)+dG; \ dB = (((sB-dB)*(A))/255)+dB; \ } while(0) /*! \brief 4-times unrolled DUFFs loop. This is a very useful loop for optimizing blitters. */ #define GFX_DUFFS_LOOP4(pixel_copy_increment, width) \ { int n = (width+3)/4; \ switch (width & 3) { \ case 0: do { pixel_copy_increment; \ case 3: pixel_copy_increment; \ case 2: pixel_copy_increment; \ case 1: pixel_copy_increment; \ } while ( --n > 0 ); \ } \ } /* Ends C function definitions when using C++ */ #ifdef __cplusplus } #endif #endif /* _SDL_gfxBlitFunc_h */ instead-1.9.1/src/sdl-instead/main.c000644 001751 001751 00000020267 12161555571 017560 0ustar00peterpeter000000 000000 #if defined(__APPLE__) || defined(S60) || defined(ANDROID) #include #endif #include "externals.h" #include "internals.h" #include "idf.h" #ifdef _USE_GTK #include #endif #ifdef ANDROID #include "android.h" #endif #ifdef _WIN32_WCE extern void libwince_init(const char* prog, int debug); #endif extern int debug_init(void); extern void debug_done(void); int debug_sw = 0; int noauto_sw = 0; int nostdgames_sw = 0; int nostdthemes_sw = 0; int version_sw = 0; int owntheme_sw = 0; int nopause_sw = 0; int chunksize_sw = 0; int software_sw = 0; int hinting_sw = 1; char *game_sw = NULL; char *games_sw = NULL; char *theme_sw = NULL; char *themes_sw = NULL; char *encode_sw = NULL; char *encode_output = NULL; char *mode_sw = NULL; char *appdata_sw = NULL; char *idf_sw = NULL; char *start_idf_sw = NULL; #ifdef _USE_UNPACK extern int unpack(const char *zipfilename, const char *where); extern char zip_game_dirname[]; static int setup_zip(const char *file, char *p) { if (!p) return -1; fprintf(stderr,"Trying to install: %s\n", file); if (unpack(file, p)) { if (zip_game_dirname[0]) { p = getpath(p, zip_game_dirname); fprintf(stderr, "Cleaning: '%s'...\n", p); remove_dir(p); free(p); } return -1; } game_sw = zip_game_dirname; games_sw = p; return 0; } #endif static int start_idf(char *file) { if (!file) return -1; if (!idf_magic(file)) return -1; start_idf_sw = file; return 0; } #ifdef __APPLE__ #include void macosx_init(void) { char resourcePath[PATH_MAX]; CFBundleRef mainBundle; CFURLRef resourcesDirectoryURL; mainBundle = CFBundleGetMainBundle(); if (!mainBundle) return; resourcesDirectoryURL = CFBundleCopyResourcesDirectoryURL(mainBundle); if (!resourcesDirectoryURL) return; CFURLGetFileSystemRepresentation(resourcesDirectoryURL, true, (UInt8 *) resourcePath, PATH_MAX); CFRelease(resourcesDirectoryURL); chdir(resourcePath); return; } #endif #ifdef _WIN32_WCE char *getcurdir(char *path) { char *p; if (path == NULL || *path == '\0') return "."; p = path + strlen(path) - 1; while (*p == '/') { if (p == path) return path; *p-- = '\0'; } while (p >= path && *p != '/') p--; return p < path ? "." : p == path ? "/" : (*p = '\0', path); } void wince_init(char *path) { unix_path(path); strcpy(game_cwd, getcurdir(path)); } #endif int main(int argc, char *argv[]) { #ifdef _USE_UNPACK int clean_tmp = 0; #endif int err = 0; int i; #ifdef __APPLE__ macosx_init(); #endif #ifdef _USE_GTK gtk_init(&argc, &argv); #endif #ifndef S60 putenv("SDL_MOUSE_RELATIVE=0"); /* test this! */ #endif #ifdef _WIN32_WCE libwince_init(argv[0], 1); wince_init(argv[0]); #else #ifdef S60 extern char s60_data[]; strcpy(game_cwd, s60_data); #else #ifdef _WIN32 strcpy(game_cwd, dirname(argv[0])); #else if (!getcwd(game_cwd, sizeof(game_cwd))) fprintf(stderr,"Warning: can not get current dir\n."); #endif #endif #endif unix_path(game_cwd); setdir(game_cwd); for (i = 1; i < argc; i++) { if (!strcmp(argv[i],"-alsa")) alsa_sw = 1; else if (!strcmp(argv[i], "-nosound")) nosound_sw = 1; else if (!strcmp(argv[i], "-fullscreen")) fullscreen_sw = 1; else if (!strcmp(argv[i], "-mode")) { if ((i + 1) < argc) mode_sw = argv[++i]; else mode_sw = "-1x-1"; } else if (!strcmp(argv[i], "-window")) window_sw = 1; else if (!strcmp(argv[i], "-debug")) debug_sw = 1; else if (!strcmp(argv[i], "-owntheme")) owntheme_sw = 1; else if (!strcmp(argv[i], "-noautosave")) noauto_sw = 1; else if (!strcmp(argv[i], "-game")) { if ((i + 1) < argc) game_sw = argv[++i]; else game_sw = ""; } else if (!strcmp(argv[i], "-theme")) { if ((i + 1) < argc) theme_sw = argv[++i]; else theme_sw = ""; } else if (!strcmp(argv[i], "-nostdgames")) { nostdgames_sw = 1; #ifdef _LOCAL_APPDATA } else if (!strcmp(argv[i], "-appdata")) { if ((i + 1) < argc) appdata_sw = argv[++i]; else appdata_sw = ""; #endif } else if (!strcmp(argv[i], "-chunksize")) { if ((i + 1) < argc) chunksize_sw = atoi(argv[++i]); else chunksize_sw = DEFAULT_CHUNKSIZE; } else if (!strcmp(argv[i], "-gamespath")) { if ((i + 1) < argc) games_sw = argv[++i]; else games_sw = ""; } else if (!strcmp(argv[i], "-themespath")) { if ((i + 1) < argc) themes_sw = argv[++i]; else themes_sw = ""; } else if (!strcmp(argv[i], "-idf")) { if ((i + 1) < argc) idf_sw = argv[++i]; else { fprintf(stderr,"No data directory specified.\n"); exit(1); } } else if (!strcmp(argv[i], "-encode")) { if ((i + 1) < argc) encode_sw = argv[++i]; else { fprintf(stderr,"No lua file specified.\n"); exit(1); } if ((i + 1) < argc) encode_output = argv[++i]; else encode_output = "lua.enc"; } else if (!strcmp(argv[i], "-version")) { version_sw = 1; } else if (!strcmp(argv[i], "-nopause")) { nopause_sw = 1; } else if (!strcmp(argv[i], "-software")) { software_sw = 1; #ifdef _USE_UNPACK } else if (!strcmp(argv[i], "-install")) { if ((i + 1) < argc) { char *file = argv[++i]; char *p; if (games_sw) p = games_sw; else p = game_local_games_path(1); if (setup_zip(file, p)) exit(1); } #endif } else if (!strcmp(argv[i], "-quit")) { exit(0); } else if (!strcmp(argv[i], "-hinting")) { if ((i + 1) < argc) hinting_sw = atoi(argv[++i]); else hinting_sw = 1; } else if (argv[i][0] == '-') { fprintf(stderr,"Unknown option: %s\n", argv[i]); exit(1); } else if (!start_idf(argv[i])) { fprintf(stderr, "Adding idf: %s\n", argv[i]); } #ifdef _USE_UNPACK else { char *p; if (games_sw) p = games_sw; else p = game_tmp_path(); if (setup_zip(argv[i], p)) exit(1); clean_tmp = 1; } #endif } if (debug_sw) { debug_init(); } if (version_sw) { fprintf(stdout, VERSION"\n"); goto out; } if (encode_sw) { err = instead_encode(encode_sw, encode_output); goto out; } if (idf_sw) { char *p = malloc(strlen(idf_sw) + 5); if (p) { char *b; strcpy(p, idf_sw); b = basename(p); strcat(b, ".idf"); idf_create(b, idf_sw); free(p); } else idf_create("data.idf", idf_sw); goto out; } menu_langs_lookup(dirpath(LANG_PATH)); if (!langs_nr) { fprintf(stderr, "No languages found in: %s.\n", dirpath(LANG_PATH)); exit(1); } cfg_load(); if (!opt_lang || !opt_lang[0]) opt_lang = game_locale(); if (menu_lang_select(opt_lang) && menu_lang_select(LANG_DEF)) { fprintf(stderr, "Can not load default language.\n"); exit(1); } if (games_sw) games_lookup(games_sw); if (owntheme_sw && !opt_owntheme) { opt_owntheme = 2; } if (!nostdgames_sw && games_lookup(dirpath(GAMES_PATH))) fprintf(stderr, "No games found in: %s.\n", GAMES_PATH); if (themes_sw) themes_lookup(themes_sw); if (!nostdthemes_sw) { themes_lookup(dirpath(THEMES_PATH)); themes_lookup(game_local_themes_path()); } if (!nostdgames_sw) games_lookup(game_local_games_path(0)); if (start_idf_sw) { char *d, *b; char *dd, *bb; static char idf_game[255]; d = strdup(start_idf_sw); b = strdup(start_idf_sw); if (d && b) { dd = dirname(d); bb = basename(b); if (!games_replace(dirpath(dd), bb)) { game_sw = idf_game; strncpy(idf_game, bb, sizeof(idf_game) - 1); idf_game[sizeof(idf_game) - 1] = 0; } } if (d) free(d); if (b) free(b); } if (noauto_sw && opt_autosave) opt_autosave = 2; if (window_sw) opt_fs = 0; if (fullscreen_sw) opt_fs = 1; if (mode_sw) parse_mode(mode_sw, opt_mode); if (game_sw) { FREE(opt_game); opt_game = game_sw; } if (theme_sw) { FREE(opt_theme); opt_theme = theme_sw; } if (opt_theme) game_theme_select(opt_theme); if (!curtheme_dir) game_theme_select(DEFAULT_THEME); // Initialize SDL if (gfx_init() < 0) return -1; if (gfx_video_init() || input_init()) return -1; if (game_init(opt_game)) { game_error(); } game_loop(); cfg_save(); game_done(0); gfx_video_done(); #ifndef ANDROID gfx_done(); #endif out: if (debug_sw) debug_done(); #ifdef _USE_GTK /* gtk_main_quit (); */ #endif #ifdef _USE_UNPACK if (clean_tmp) remove_dir(game_tmp_path()); #endif #ifdef ANDROID exit(err); #endif return err; } instead-1.9.1/src/sdl-instead/iowin32.c000644 001751 001751 00000027231 12161555571 020124 0ustar00peterpeter000000 000000 #ifdef _USE_UNPACK /* iowin32.c -- IO base function header for compress/uncompress .zip Version 1.1, February 14h, 2010 part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) Modifications for Zip64 support Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) For more info read MiniZip_info.txt */ #include #include "zlib.h" #include "ioapi.h" #include "iowin32.h" #ifndef INVALID_HANDLE_VALUE #define INVALID_HANDLE_VALUE (0xFFFFFFFF) #endif #ifndef INVALID_SET_FILE_POINTER #define INVALID_SET_FILE_POINTER ((DWORD)-1) #endif voidpf ZCALLBACK win32_open_file_func OF((voidpf opaque, const char* filename, int mode)); uLong ZCALLBACK win32_read_file_func OF((voidpf opaque, voidpf stream, void* buf, uLong size)); uLong ZCALLBACK win32_write_file_func OF((voidpf opaque, voidpf stream, const void* buf, uLong size)); ZPOS64_T ZCALLBACK win32_tell64_file_func OF((voidpf opaque, voidpf stream)); long ZCALLBACK win32_seek64_file_func OF((voidpf opaque, voidpf stream, ZPOS64_T offset, int origin)); int ZCALLBACK win32_close_file_func OF((voidpf opaque, voidpf stream)); int ZCALLBACK win32_error_file_func OF((voidpf opaque, voidpf stream)); typedef struct { HANDLE hf; int error; } WIN32FILE_IOWIN; static void win32_translate_open_mode(int mode, DWORD* lpdwDesiredAccess, DWORD* lpdwCreationDisposition, DWORD* lpdwShareMode, DWORD* lpdwFlagsAndAttributes) { *lpdwDesiredAccess = *lpdwShareMode = *lpdwFlagsAndAttributes = *lpdwCreationDisposition = 0; if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ) { *lpdwDesiredAccess = GENERIC_READ; *lpdwCreationDisposition = OPEN_EXISTING; *lpdwShareMode = FILE_SHARE_READ; } else if (mode & ZLIB_FILEFUNC_MODE_EXISTING) { *lpdwDesiredAccess = GENERIC_WRITE | GENERIC_READ; *lpdwCreationDisposition = OPEN_EXISTING; } else if (mode & ZLIB_FILEFUNC_MODE_CREATE) { *lpdwDesiredAccess = GENERIC_WRITE | GENERIC_READ; *lpdwCreationDisposition = CREATE_ALWAYS; } } static voidpf win32_build_iowin(HANDLE hFile) { voidpf ret=NULL; if ((hFile != NULL) && (hFile != INVALID_HANDLE_VALUE)) { WIN32FILE_IOWIN w32fiow; w32fiow.hf = hFile; w32fiow.error = 0; ret = malloc(sizeof(WIN32FILE_IOWIN)); if (ret==NULL) CloseHandle(hFile); else *((WIN32FILE_IOWIN*)ret) = w32fiow; } return ret; } voidpf ZCALLBACK win32_open64_file_func (voidpf opaque,const void* filename,int mode) { const char* mode_fopen = NULL; DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ; HANDLE hFile = NULL; win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes); if ((filename!=NULL) && (dwDesiredAccess != 0)) hFile = CreateFile((LPCTSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL); return win32_build_iowin(hFile); } voidpf ZCALLBACK win32_open64_file_funcA (voidpf opaque,const void* filename,int mode) { const char* mode_fopen = NULL; DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ; HANDLE hFile = NULL; win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes); if ((filename!=NULL) && (dwDesiredAccess != 0)) hFile = CreateFileA((LPCSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL); return win32_build_iowin(hFile); } voidpf ZCALLBACK win32_open64_file_funcW (voidpf opaque,const void* filename,int mode) { const char* mode_fopen = NULL; DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ; HANDLE hFile = NULL; win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes); if ((filename!=NULL) && (dwDesiredAccess != 0)) hFile = CreateFileW((LPCWSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL); return win32_build_iowin(hFile); } voidpf ZCALLBACK win32_open_file_func (voidpf opaque,const char* filename,int mode) { const char* mode_fopen = NULL; DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ; HANDLE hFile = NULL; win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes); if ((filename!=NULL) && (dwDesiredAccess != 0)) hFile = CreateFile((LPCTSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL); return win32_build_iowin(hFile); } uLong ZCALLBACK win32_read_file_func (voidpf opaque, voidpf stream, void* buf,uLong size) { uLong ret=0; HANDLE hFile = NULL; if (stream!=NULL) hFile = ((WIN32FILE_IOWIN*)stream) -> hf; if (hFile != NULL) { if (!ReadFile(hFile, buf, size, &ret, NULL)) { DWORD dwErr = GetLastError(); if (dwErr == ERROR_HANDLE_EOF) dwErr = 0; ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; } } return ret; } uLong ZCALLBACK win32_write_file_func (voidpf opaque,voidpf stream,const void* buf,uLong size) { uLong ret=0; HANDLE hFile = NULL; if (stream!=NULL) hFile = ((WIN32FILE_IOWIN*)stream) -> hf; if (hFile != NULL) { if (!WriteFile(hFile, buf, size, &ret, NULL)) { DWORD dwErr = GetLastError(); if (dwErr == ERROR_HANDLE_EOF) dwErr = 0; ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; } } return ret; } long ZCALLBACK win32_tell_file_func (voidpf opaque,voidpf stream) { long ret=-1; HANDLE hFile = NULL; if (stream!=NULL) hFile = ((WIN32FILE_IOWIN*)stream) -> hf; if (hFile != NULL) { DWORD dwSet = SetFilePointer(hFile, 0, NULL, FILE_CURRENT); if (dwSet == INVALID_SET_FILE_POINTER) { DWORD dwErr = GetLastError(); ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; ret = -1; } else ret=(long)dwSet; } return ret; } ZPOS64_T ZCALLBACK win32_tell64_file_func (voidpf opaque, voidpf stream) { ZPOS64_T ret= (ZPOS64_T)-1; HANDLE hFile = NULL; if (stream!=NULL) hFile = ((WIN32FILE_IOWIN*)stream)->hf; if (hFile) { LARGE_INTEGER li; li.QuadPart = 0; li.u.LowPart = SetFilePointer(hFile, li.u.LowPart, &li.u.HighPart, FILE_CURRENT); if ( (li.LowPart == 0xFFFFFFFF) && (GetLastError() != NO_ERROR)) { DWORD dwErr = GetLastError(); ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; ret = (ZPOS64_T)-1; } else ret=li.QuadPart; } return ret; } long ZCALLBACK win32_seek_file_func (voidpf opaque,voidpf stream,uLong offset,int origin) { DWORD dwMoveMethod=0xFFFFFFFF; HANDLE hFile = NULL; long ret=-1; if (stream!=NULL) hFile = ((WIN32FILE_IOWIN*)stream) -> hf; switch (origin) { case ZLIB_FILEFUNC_SEEK_CUR : dwMoveMethod = FILE_CURRENT; break; case ZLIB_FILEFUNC_SEEK_END : dwMoveMethod = FILE_END; break; case ZLIB_FILEFUNC_SEEK_SET : dwMoveMethod = FILE_BEGIN; break; default: return -1; } if (hFile != NULL) { DWORD dwSet = SetFilePointer(hFile, offset, NULL, dwMoveMethod); if (dwSet == INVALID_SET_FILE_POINTER) { DWORD dwErr = GetLastError(); ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; ret = -1; } else ret=0; } return ret; } long ZCALLBACK win32_seek64_file_func (voidpf opaque, voidpf stream,ZPOS64_T offset,int origin) { DWORD dwMoveMethod=0xFFFFFFFF; HANDLE hFile = NULL; long ret=-1; if (stream!=NULL) hFile = ((WIN32FILE_IOWIN*)stream)->hf; switch (origin) { case ZLIB_FILEFUNC_SEEK_CUR : dwMoveMethod = FILE_CURRENT; break; case ZLIB_FILEFUNC_SEEK_END : dwMoveMethod = FILE_END; break; case ZLIB_FILEFUNC_SEEK_SET : dwMoveMethod = FILE_BEGIN; break; default: return -1; } if (hFile) { LARGE_INTEGER* li = (LARGE_INTEGER*)&offset; DWORD dwSet = SetFilePointer(hFile, li->u.LowPart, &li->u.HighPart, dwMoveMethod); if (dwSet == INVALID_SET_FILE_POINTER) { DWORD dwErr = GetLastError(); ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; ret = -1; } else ret=0; } return ret; } int ZCALLBACK win32_close_file_func (voidpf opaque, voidpf stream) { int ret=-1; if (stream!=NULL) { HANDLE hFile; hFile = ((WIN32FILE_IOWIN*)stream) -> hf; if (hFile != NULL) { CloseHandle(hFile); ret=0; } free(stream); } return ret; } int ZCALLBACK win32_error_file_func (voidpf opaque,voidpf stream) { int ret=-1; if (stream!=NULL) { ret = ((WIN32FILE_IOWIN*)stream) -> error; } return ret; } void fill_win32_filefunc (zlib_filefunc_def* pzlib_filefunc_def) { pzlib_filefunc_def->zopen_file = win32_open_file_func; pzlib_filefunc_def->zread_file = win32_read_file_func; pzlib_filefunc_def->zwrite_file = win32_write_file_func; pzlib_filefunc_def->ztell_file = win32_tell_file_func; pzlib_filefunc_def->zseek_file = win32_seek_file_func; pzlib_filefunc_def->zclose_file = win32_close_file_func; pzlib_filefunc_def->zerror_file = win32_error_file_func; pzlib_filefunc_def->opaque = NULL; } void fill_win32_filefunc64(zlib_filefunc64_def* pzlib_filefunc_def) { pzlib_filefunc_def->zopen64_file = win32_open64_file_func; pzlib_filefunc_def->zread_file = win32_read_file_func; pzlib_filefunc_def->zwrite_file = win32_write_file_func; pzlib_filefunc_def->ztell64_file = win32_tell64_file_func; pzlib_filefunc_def->zseek64_file = win32_seek64_file_func; pzlib_filefunc_def->zclose_file = win32_close_file_func; pzlib_filefunc_def->zerror_file = win32_error_file_func; pzlib_filefunc_def->opaque = NULL; } void fill_win32_filefunc64A(zlib_filefunc64_def* pzlib_filefunc_def) { pzlib_filefunc_def->zopen64_file = win32_open64_file_funcA; pzlib_filefunc_def->zread_file = win32_read_file_func; pzlib_filefunc_def->zwrite_file = win32_write_file_func; pzlib_filefunc_def->ztell64_file = win32_tell64_file_func; pzlib_filefunc_def->zseek64_file = win32_seek64_file_func; pzlib_filefunc_def->zclose_file = win32_close_file_func; pzlib_filefunc_def->zerror_file = win32_error_file_func; pzlib_filefunc_def->opaque = NULL; } void fill_win32_filefunc64W(zlib_filefunc64_def* pzlib_filefunc_def) { pzlib_filefunc_def->zopen64_file = win32_open64_file_funcW; pzlib_filefunc_def->zread_file = win32_read_file_func; pzlib_filefunc_def->zwrite_file = win32_write_file_func; pzlib_filefunc_def->ztell64_file = win32_tell64_file_func; pzlib_filefunc_def->zseek64_file = win32_seek64_file_func; pzlib_filefunc_def->zclose_file = win32_close_file_func; pzlib_filefunc_def->zerror_file = win32_error_file_func; pzlib_filefunc_def->opaque = NULL; } #endif instead-1.9.1/src/instead/tutorial/000755 001751 001751 00000000000 12161555570 017543 5ustar00peterpeter000000 000000 instead-1.9.1/src/instead/COPYING000644 001751 001751 00000043110 12161555570 016732 0ustar00peterpeter000000 000000 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) 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) year 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. instead-1.9.1/src/instead/instead.c000644 001751 001751 00000003426 12161555570 017500 0ustar00peterpeter000000 000000 #include #include #include #include #include #include #include #include #include /* the Lua interpreter */ lua_State* L; extern char *fromgame(char *s); char *getstring(char *cmd) { char *s; int N; if (luaL_dostring(L, cmd)) { fprintf(stderr,"Error: %s\n", lua_tostring(L, -1)); exit(1); } N = lua_gettop(L); if (N <= 0) return NULL; s = (char*)lua_tostring(L, -N); if (s) s = fromgame(s); lua_pop(L, N); return s; } int luacall(char *cmd) { int rc, N; if (luaL_dostring(L, cmd)) { fprintf(stderr,"Error: %s\n", lua_tostring(L, -1)); exit(1); } N = lua_gettop(L); if (N <= 0) return 0; rc = lua_tonumber(L, -1); lua_pop(L, N); return rc; } extern int loop(void); extern int width; extern int height; int main (int argc, char *argv[]) { int opt; setlocale(LC_ALL,""); /* initialize Lua */ while ((opt = getopt(argc, argv, "w:h:")) != -1) { switch (opt) { case 'w': width = atoi(optarg); break; case 'h': height = atoi(optarg); break; } } if (argc < 2 || argc - optind < 1) { fprintf(stderr,"Usage: %s [-w] [-h]\n", argv[0]); return 1; } if (width == 0 || height == 0) { fprintf(stderr,"Wrong geometry.\n"); return 1; } L = lua_open(); luaL_openlibs(L); if (luaL_loadfile(L,STEAD_PATH"stead.lua") || lua_pcall(L, 0, 0, 0)) { fprintf(stderr,"Error:%s\n", lua_tostring(L, -1)); return 1; } if (luaL_loadfile(L,argv[optind]) || lua_pcall(L, 0, 0, 0)) { fprintf(stderr,"Error:%s\n", lua_tostring(L, -1)); return 1; } loop(); /* cleanup Lua */ lua_close(L); return 0; } instead-1.9.1/src/instead/rline.c000644 001751 001751 00000024603 12161555570 017162 0ustar00peterpeter000000 000000 #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef _HAVE_ICONV #include #include #endif extern char *getstring(char *cmd); char *stripwhite(char *string) { char *s, *t; for (s = string; isspace(*s); s++); if (*s == 0) return (s); t = s + strlen(s) - 1; while (t > s && isspace(*t)) t--; *++t = '\0'; return s; } #define MAX_WORDS 255 struct completion; struct completion { char *list; char *words[MAX_WORDS + 1]; int ids[MAX_WORDS + 1]; int num; int period; int id; int hide; struct completion *next; }; struct completion obj_comp = { .list = NULL, .id = 1,}; struct completion way_comp = { .list = NULL, .id = 1,}; struct completion inv_comp = { .list = NULL, .period = 1, .id = 1,}; struct completion cmd_comp = { .list = NULL, .hide = 1,}; int comp_num(struct completion *c) { int num = 0; for (; c && !c->hide; c = c->next) { num += c->num; } return num; } char *comp_generator(const char *text, int state, struct completion *co) { struct completion *c = co; static int list_index; int len; char *name; int i = 0, id; int index = 0; if (!state) { list_index = 0; } len = strlen(text); for (; c && (index != list_index);) { for (i = 0; (index != list_index) && c->words[i]; i ++) index ++; if (index != list_index) c = c->next; } for (;c; c = c->next) { if (c->hide && !len) continue; id = (c->id)?atoi(text):0; if (id) { if (state) continue; } for (; (name = c->words[i]); i ++) { name = c->words[i]; list_index ++; if (id == c->ids[i] || strncmp(name, text, len) == 0) { int expand = 0; char *s = malloc(strlen(name) + 16); if (!s) return NULL; *s = 0; if ( len == 0 && !id) { if (comp_num(co) >1 && c->id) { expand = 1; sprintf(s, "%02d:", c->ids[i]); } } strcat(s, name); if (c->period) { if (expand) strcat(s, "(*)"); else if (c->period == 1) strcat(s, ","); } else strcat(s, " "); return s; } } i = 0; } return NULL; } void getcompletion(char *list, struct completion *c) { int i; char *p; char *s = list; c->num = 0; if (c->list) free(c->list); c->list = list; for (i = 0; list && i < MAX_WORDS && *s; i++) { while (isspace(*s)) s ++; if (!*s) break; c->words[i] = s; c->num ++; s += strcspn(s, ",("); c->ids[i] = -1; if (*s == '(') { p = s; s ++; c->ids[i] = atoi(s); s += strcspn(s, ",)"); if (*s == ')') s ++; *p = 0; } if (*s == ',') { *s = 0; s ++; } } c->words[i] = NULL; return; } char *obj_generator(const char *text, int state) { obj_comp.next = NULL; return comp_generator(text, state, &obj_comp); } char *way_generator(const char *text, int state) { return comp_generator(text, state, &way_comp); } char *inv_generator(const char *text, int state) { inv_comp.next = NULL; inv_comp.period = 1; return comp_generator(text, state, &inv_comp); } char *objcmd_generator(const char *text, int state) { obj_comp.next = &cmd_comp; return comp_generator(text, state, &obj_comp); } char *objinv_generator(const char *text, int state) { obj_comp.next = &inv_comp; inv_comp.period = -1; return comp_generator(text, state, &obj_comp); } char *search_word(char *text, char **words, int n, int len) { int i; char *t = strdup(text); if (!t) return NULL; t[len] = 0; while (isspace(*text)) text ++; for (i = 0; i < n; i++) { if (!strncmp(text, words[i], strlen(words[i]))) { free(t); return words[i]; } } free(t); return NULL; } char **tquest_completion(char *text, int start, int end) { char **matches; rl_attempted_completion_over = 1; matches = (char **) NULL; /* If this word is at the start of the line, then it is a command to complete. Otherwise it is the name of a file in the current directory. */ //str = strdup(rl_line_buffer); if (start == 0) matches = rl_completion_matches(text, objcmd_generator); else { char *n = search_word(rl_line_buffer, cmd_comp.words, cmd_comp.num, rl_point); if (!n) return (matches); else if (!strcmp(n, "go")) matches = rl_completion_matches(text, way_generator); else if (!strcmp(n, "use")) { if (!strstr(rl_line_buffer,",")) { matches = rl_completion_matches(text, inv_generator); } else { matches = rl_completion_matches(text, objinv_generator); } } else if (!strcmp(n, "act")) { matches = rl_completion_matches(text, obj_generator); } else if (!strcmp(n, "load") || !strcmp(n, "save")) { rl_attempted_completion_over = 0; } } return (matches); } /* Tell the GNU Readline library how to complete. We want to try to complete on command names if this is the first word in the line, or on filenames if not. */ #ifdef _HAVE_ICONV static char curcp[64]; static char *fromcp; #endif void initialize_readline(void) { /* Allow conditional parsing of the ~/.inputrc file. */ rl_readline_name = "instead"; rl_completion_append_character=0; rl_basic_word_break_characters = " \t,"; rl_parse_and_bind(strdup("set show-all-if-ambiguous on")); rl_parse_and_bind(strdup("Control-u: 'use '")); rl_parse_and_bind(strdup("Control-a: 'act '")); rl_parse_and_bind(strdup("Control-g: 'go '")); /* Tell the completer that we want a crack first. */ rl_attempted_completion_function = (CPPFunction *) tquest_completion; #ifdef _HAVE_ICONV strncpy(curcp, nl_langinfo(CODESET), sizeof(curcp)); fromcp = getstring("return game.codepage;"); #endif } wchar_t *string_towc(const char *str) { wchar_t *pwstr=NULL; size_t size; if (!str) return NULL; pwstr = malloc((1 + strlen(str)) * sizeof(wchar_t)); size = mbstowcs(pwstr, str, strlen(str)); if (size == (size_t)-1) { free(pwstr); return NULL; } pwstr[size] = 0; return pwstr; } char *string_fromwc(const wchar_t *str) { char *pstr=NULL; size_t mbs_size; if (!str) return NULL; mbs_size = wcstombs(NULL, str, 0); if (mbs_size == (size_t)-1) return NULL; pstr = malloc(mbs_size + 1); pstr[ wcstombs(pstr, str, mbs_size) ] = 0; return pstr; } #ifdef _HAVE_ICONV #define CHAR_MAX_LEN 4 static char *decode(iconv_t hiconv, const char *s) { size_t s_size, chs_size, outsz, insz; char *inbuf, *outbuf, *chs_buf; if (!s || hiconv == (iconv_t)(-1)) return NULL; s_size = strlen(s); chs_size = s_size * CHAR_MAX_LEN; if ((chs_buf = malloc(chs_size + CHAR_MAX_LEN))==NULL) goto exitf; outsz = chs_size; outbuf = chs_buf; insz = s_size; inbuf = (char*)s; while (insz) { if (iconv(hiconv, &inbuf, &insz, &outbuf, &outsz) == (size_t)(-1)) goto exitf; } *outbuf++ = 0; return chs_buf; exitf: if(chs_buf) free(chs_buf); return NULL; } char *fromgame(const char *s) { iconv_t han; char *str; if (!s) return NULL; if (!fromcp) goto out0; han = iconv_open(curcp, fromcp); if (han == (iconv_t)-1) goto out0; if (!(str = decode(han, s))) goto out1; iconv_close(han); return str; out1: iconv_close(han); out0: return strdup(s); } char *togame(const char *s) { iconv_t han; char *str; if (!s) return NULL; if (!fromcp) goto out0; han = iconv_open(fromcp, curcp); if (han == (iconv_t)-1) goto out0; if (!(str = decode(han, s))) goto out1; iconv_close(han); return str; out1: iconv_close(han); out0: return strdup(s); } #else char *fromgame(const char *s) { if (!s) return NULL; return strdup(s); } char *togame(const char *s) { if (!s) return NULL; return strdup(s); } #endif int width = 80; int height = 25; #define STDIN_FILENO 0 int getch(void) { struct termios oldt, newt; int ch; tcgetattr( STDIN_FILENO, &oldt ); newt = oldt; newt.c_lflag &= ~( ICANON | ECHO ); tcsetattr( STDIN_FILENO, TCSANOW, &newt ); ch = getchar(); tcsetattr( STDIN_FILENO, TCSANOW, &oldt ); return ch; } void out(char *str) { int lines = 0; int i; wchar_t *ws, *wp, saved, *ows; char *ms; size_t sz = width, oldsz; if (!str) return; ows = ws = string_towc(str); if (!ws) return; wp = ws; fprintf(stdout,"\n"); for (i = 0; i < width/2 - 6; i++) fprintf(stdout, " "); fprintf(stdout,"* * *\n\n"); while (*ws && *wp) { wp += wcscspn(wp, L" ,\t\n"); if (*wp == ',') wp ++; saved = *wp; *wp = 0; oldsz = sz; sz = wcslen(ws); if (sz > width || saved == '\n') { *wp = saved; if (sz <= width) oldsz = sz; saved = ws[oldsz]; ws[oldsz] = 0; lines ++; if (lines >= (height)) { printf("-- more --"); getch(); printf("\r \r"); lines = 0; } ms = string_fromwc(ws); if (ms) printf("%s\n", ms); free(ms); ws[oldsz] = saved; if (saved == L' ' || saved == L'\t' || saved == L'\n') oldsz ++; ws += oldsz; wp = ws; sz = width; continue; } *wp = saved; if (saved) wp ++; } if (wp != ws) { lines ++; if (lines > height) { printf("-- more --"); getch(); printf("\r"); lines = 0; } ms = string_fromwc(ws); if (ms) printf("%s\n", ms); free(ms); } free(ows); free(str); } void execute_line(char *s) { char buf[1024]; char *p = s; while (*p) { if (*p == '\\' || *p == '\'' || *p == '\"' || *p == '[' || *p == ']') return; p ++; } s = togame(s); snprintf(buf, sizeof(buf), "return iface:cmd('%s')", s); p = getstring(buf); free(s); out(p); } extern int luacall(char *cmd); void loop(void) { char *line, *s; initialize_readline(); /* Bind our completer. */ getcompletion(strdup("act,look,go,back,use,load,save,quit,help,obj,inv,way,ls"), &cmd_comp); out(getstring("return (par('',fmt(game:ini()),iface:cmd('look')));")); // out(getstring("return fmt(me():look());")); /* Loop reading and executing lines until the user quits. */ while (1) { luacall("me():tag();"); getcompletion(getstring("return here():str();"), &obj_comp); getcompletion(getstring("return me():str();"), &inv_comp); getcompletion(getstring("return here().way:str();"), &way_comp); line = readline("-- > "); if (!line) break; /* Remove leading and trailing whitespace from the line. Then, if there is anything left, add it to the history list and execute it. */ s = stripwhite(line); if (*s) { add_history(s); } if (!strcmp(s, "help")) { printf("Usage: act, look, use, go, back, load, save, quit.\n"); } else if (!strcmp(s, "quit")) break; else { execute_line(s); } free(line); } exit(0); } instead-1.9.1/src/instead/Makefile000644 001751 001751 00000000557 12161555570 017347 0ustar00peterpeter000000 000000 #!/usr/bin/make -f include ../../Rules.make include ../../config.make all: instead instead: instead.c rline.c $(CC) $(CFLAGS) -DSTEAD_PATH=\"${STEADPATH}/\" instead.c $(LUA_CFLAGS) rline.c $(LUA_LFLAGS) -lncurses -lreadline -o instead clean: $(RM) -rf *.o instead install: $(INSTALLD) $(BIN) $(INSTALLB) instead $(BIN)/instead uninstall: $(RM) $(BIN)/instead instead-1.9.1/src/instead/tutorial/main.lua000644 001751 001751 00000016575 12161555570 021210 0ustar00peterpeter000000 000000 game.codepage="UTF-8" game.err = "Ошибка!" game.dsc = [[Команды:^ look(или просто ввод), act <на что> (или просто на что), use <что> [на что], go <куда>,^ back, inv, way, obj, quit, save , load . Работает автодополнение по табуляции.^^]]; main = room { nam = 'Обучение', act = function() return goto('r1'); end, dsc = [[Добро пожаловать в режим обучения instead (readline версия). Ввод команд в игре осуществляется с клавиатуры. Каждая сцена игры представляет собой описание статической и динамической части. Для просмотра сцены вы можете набрать look и нажать ввод или просто нажать ввод. При наборе команд работает режим автодополнения по табуляции, например, вы можете набрать l и нажать tab. ^^ Данный текст также является сценой, так что вы можете попробовать команду look прямо сейчас. Динамическая часть сцены состоит из объектов, персонажей и т.д. С динамической частью игрок может взаимодействовать с помощью команды act <объект>. При этом, так как это наиболее часто используемая команда, слово act можно пропускать. В данной сцене единственным объектом является объект "Дальше" -- который вы видите внизу текста. Итак, для продолжения обучения вы можете: нажать табуляцию (при этом выберется единственный объект сцены) или набрать act табуляция -- и нажать ввод. ]], obj = { vobj(1, 'Дальше', '{Дальше}'), }, }; apple = obj { nam = 'яблоко', dsc = 'На полу лежит {яблоко}.', tak = 'Вы взяли яблоко.', inv = function(s) s._seen = true; if s._knife then inv():del('apple'); return 'Яблоко почищено! Вы его съели.'; end return 'Выглядит аппетитно!'; end, used = function(s, w) if w == 'knife' and not s._knife and here() == r4 then s._knife = true; return 'Вы чистите яблоко.'; end end, }; knife = obj { nam = 'нож', dsc = 'На полу лежит {нож}.', tak = 'Вы взяли нож.', inv = function(s) s._seen = true; return 'Острый нож.'; end, }; r1 = room { enter = function() lifeon('r1'); end, exit = function() lifeoff('r1'); end, life = function() if have('apple') and have('knife') then return goto('r2'); end end, nam = 'урок 1', dsc = [[Продолжим урок. Сейчас вы находитесь в комнате. Возьмите оба предмета, которые вы видите в этой комнате. Напомним, что для этого вы можете нажать таб и выбрать предмет по первой букве или цифре, или начать с команды act.]], obj = { 'apple', 'knife' }, }; r2 = room { nam = 'урок 2', enter = function() lifeon('r2'); end, exit = function() lifeoff('r2'); end, life = function() if apple._seen and knife._seen then return goto('r3'); end end, dsc = [[Отлично!! Теперь у вас появились предметы, которые вы можете использовать или изучать. Для этого используется команда use. Не забывайте про автодополнение по tab. Вы можете смотреть свой инвентарь с помощью команды inv или просто use и табуляция. Итак, посмотрите на ножик. Начните с команды use, потом нажмите табуляцию и выберете среди предметов нож. Затем, повторите эту операцию с яблоком.]], }; tabl = obj { nam = 'стол', dsc = 'На этом уроке вы видите деревянный {стол}.', act = function(s) if s._knife then s._seen = true; return 'На столе стоит ваш автограф.'; end return 'Обычный стол, из дуба.'; end, used = function(s, w) if w == 'knife' and not s._knife then s._knife = true; return 'Вы вырезаете что-то ножиком на столе.'; end end, obj = { 'vasa' }, }; vasa = obj { nam = 'ваза', dsc = 'На столе стоит {ваза}.'; act = 'Ваза как ваза.'; } r3 = room { nam = 'урок 3', enter = function() lifeon('r3'); end, exit = function() lifeoff('r3'); end, life = function() if tabl._seen then return goto('r4'); end end, dsc = [[Хорошо! Как вы заметили, возле предметов инвентаря стоит символ (*). Вы можете действовать предметами инвентаря на другие предметы сцены или инвентаря. Попробуйте использовать нож на стол. Для этого наберите use, нажмите табуляцию и выберите нож, затем опять нажмите табуляцию и выберите стол. Затем посмотрите на стол командой act табуляция стол или просто нажав табуляцию и выбрав стол.]], obj = { 'tabl' }, }; r4 = room { nam = 'урок 4', enter = function() apple._knife = false; lifeon('r4'); end, exit = function() lifeoff('r4'); end, life = function() if not have('apple') then return goto('r5'); end end, dsc = [[Ладно, а теперь -- почистите яблоко. Для этого используйте команду use. Затем съешьте яблоко.]], }; r5 = room { nam = 'урок 5', dsc = [[Хорошо. Изучаем команду go -- идти. Наберите go и нажмите табуляцию. Идите на урок 6.]], exit = function(s, t) if t ~= 'r6' then return 'Я просил идти на урок 6...', false; end end, way = { 'r1', 'r2', 'r3', 'r4', 'r6'}, }; r6 = room { nam = 'урок 6', dsc = [[Вы можете посмотреть все пути с помощью команды way или go табуляция. Идите на последний урок.]], exit = function(s, t) if t ~= 'theend' then return 'Я просил идти на последний урок...', false; end end, way = { 'r1', 'r2', 'r3', 'r4', 'r6', 'theend'}, }; theend = room { nam = 'последний урок', dsc = [[Вы можете сохранять игру: save имяфайла и считывать игру: load имяфайла. Для выхода наберите quit Вы можете нажимать control-u для use, control-a для act, control-g для go. Удачи!!!]], }; instead-1.9.1/src/zlib/inffast.h000644 001751 001751 00000000642 12161555570 017016 0ustar00peterpeter000000 000000 /* inffast.h -- header to use inffast.c * Copyright (C) 1995-2003 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ /* WARNING: this file should *not* be used by applications. It is part of the implementation of the compression library and is subject to change. Applications should only use zlib.h. */ void inflate_fast OF((z_streamp strm, unsigned start)); instead-1.9.1/src/zlib/inffixed.h000644 001751 001751 00000014445 12161555570 017166 0ustar00peterpeter000000 000000 /* inffixed.h -- table for decoding fixed codes * Generated automatically by makefixed(). */ /* WARNING: this file should *not* be used by applications. It is part of the implementation of the compression library and is subject to change. Applications should only use zlib.h. */ static const code lenfix[512] = { {96,7,0},{0,8,80},{0,8,16},{20,8,115},{18,7,31},{0,8,112},{0,8,48}, {0,9,192},{16,7,10},{0,8,96},{0,8,32},{0,9,160},{0,8,0},{0,8,128}, {0,8,64},{0,9,224},{16,7,6},{0,8,88},{0,8,24},{0,9,144},{19,7,59}, {0,8,120},{0,8,56},{0,9,208},{17,7,17},{0,8,104},{0,8,40},{0,9,176}, {0,8,8},{0,8,136},{0,8,72},{0,9,240},{16,7,4},{0,8,84},{0,8,20}, {21,8,227},{19,7,43},{0,8,116},{0,8,52},{0,9,200},{17,7,13},{0,8,100}, {0,8,36},{0,9,168},{0,8,4},{0,8,132},{0,8,68},{0,9,232},{16,7,8}, {0,8,92},{0,8,28},{0,9,152},{20,7,83},{0,8,124},{0,8,60},{0,9,216}, {18,7,23},{0,8,108},{0,8,44},{0,9,184},{0,8,12},{0,8,140},{0,8,76}, {0,9,248},{16,7,3},{0,8,82},{0,8,18},{21,8,163},{19,7,35},{0,8,114}, {0,8,50},{0,9,196},{17,7,11},{0,8,98},{0,8,34},{0,9,164},{0,8,2}, {0,8,130},{0,8,66},{0,9,228},{16,7,7},{0,8,90},{0,8,26},{0,9,148}, {20,7,67},{0,8,122},{0,8,58},{0,9,212},{18,7,19},{0,8,106},{0,8,42}, {0,9,180},{0,8,10},{0,8,138},{0,8,74},{0,9,244},{16,7,5},{0,8,86}, {0,8,22},{64,8,0},{19,7,51},{0,8,118},{0,8,54},{0,9,204},{17,7,15}, {0,8,102},{0,8,38},{0,9,172},{0,8,6},{0,8,134},{0,8,70},{0,9,236}, {16,7,9},{0,8,94},{0,8,30},{0,9,156},{20,7,99},{0,8,126},{0,8,62}, {0,9,220},{18,7,27},{0,8,110},{0,8,46},{0,9,188},{0,8,14},{0,8,142}, {0,8,78},{0,9,252},{96,7,0},{0,8,81},{0,8,17},{21,8,131},{18,7,31}, {0,8,113},{0,8,49},{0,9,194},{16,7,10},{0,8,97},{0,8,33},{0,9,162}, {0,8,1},{0,8,129},{0,8,65},{0,9,226},{16,7,6},{0,8,89},{0,8,25}, {0,9,146},{19,7,59},{0,8,121},{0,8,57},{0,9,210},{17,7,17},{0,8,105}, {0,8,41},{0,9,178},{0,8,9},{0,8,137},{0,8,73},{0,9,242},{16,7,4}, {0,8,85},{0,8,21},{16,8,258},{19,7,43},{0,8,117},{0,8,53},{0,9,202}, {17,7,13},{0,8,101},{0,8,37},{0,9,170},{0,8,5},{0,8,133},{0,8,69}, {0,9,234},{16,7,8},{0,8,93},{0,8,29},{0,9,154},{20,7,83},{0,8,125}, {0,8,61},{0,9,218},{18,7,23},{0,8,109},{0,8,45},{0,9,186},{0,8,13}, {0,8,141},{0,8,77},{0,9,250},{16,7,3},{0,8,83},{0,8,19},{21,8,195}, {19,7,35},{0,8,115},{0,8,51},{0,9,198},{17,7,11},{0,8,99},{0,8,35}, {0,9,166},{0,8,3},{0,8,131},{0,8,67},{0,9,230},{16,7,7},{0,8,91}, {0,8,27},{0,9,150},{20,7,67},{0,8,123},{0,8,59},{0,9,214},{18,7,19}, {0,8,107},{0,8,43},{0,9,182},{0,8,11},{0,8,139},{0,8,75},{0,9,246}, {16,7,5},{0,8,87},{0,8,23},{64,8,0},{19,7,51},{0,8,119},{0,8,55}, {0,9,206},{17,7,15},{0,8,103},{0,8,39},{0,9,174},{0,8,7},{0,8,135}, {0,8,71},{0,9,238},{16,7,9},{0,8,95},{0,8,31},{0,9,158},{20,7,99}, {0,8,127},{0,8,63},{0,9,222},{18,7,27},{0,8,111},{0,8,47},{0,9,190}, {0,8,15},{0,8,143},{0,8,79},{0,9,254},{96,7,0},{0,8,80},{0,8,16}, {20,8,115},{18,7,31},{0,8,112},{0,8,48},{0,9,193},{16,7,10},{0,8,96}, {0,8,32},{0,9,161},{0,8,0},{0,8,128},{0,8,64},{0,9,225},{16,7,6}, {0,8,88},{0,8,24},{0,9,145},{19,7,59},{0,8,120},{0,8,56},{0,9,209}, {17,7,17},{0,8,104},{0,8,40},{0,9,177},{0,8,8},{0,8,136},{0,8,72}, {0,9,241},{16,7,4},{0,8,84},{0,8,20},{21,8,227},{19,7,43},{0,8,116}, {0,8,52},{0,9,201},{17,7,13},{0,8,100},{0,8,36},{0,9,169},{0,8,4}, {0,8,132},{0,8,68},{0,9,233},{16,7,8},{0,8,92},{0,8,28},{0,9,153}, {20,7,83},{0,8,124},{0,8,60},{0,9,217},{18,7,23},{0,8,108},{0,8,44}, {0,9,185},{0,8,12},{0,8,140},{0,8,76},{0,9,249},{16,7,3},{0,8,82}, {0,8,18},{21,8,163},{19,7,35},{0,8,114},{0,8,50},{0,9,197},{17,7,11}, {0,8,98},{0,8,34},{0,9,165},{0,8,2},{0,8,130},{0,8,66},{0,9,229}, {16,7,7},{0,8,90},{0,8,26},{0,9,149},{20,7,67},{0,8,122},{0,8,58}, {0,9,213},{18,7,19},{0,8,106},{0,8,42},{0,9,181},{0,8,10},{0,8,138}, {0,8,74},{0,9,245},{16,7,5},{0,8,86},{0,8,22},{64,8,0},{19,7,51}, {0,8,118},{0,8,54},{0,9,205},{17,7,15},{0,8,102},{0,8,38},{0,9,173}, {0,8,6},{0,8,134},{0,8,70},{0,9,237},{16,7,9},{0,8,94},{0,8,30}, {0,9,157},{20,7,99},{0,8,126},{0,8,62},{0,9,221},{18,7,27},{0,8,110}, {0,8,46},{0,9,189},{0,8,14},{0,8,142},{0,8,78},{0,9,253},{96,7,0}, {0,8,81},{0,8,17},{21,8,131},{18,7,31},{0,8,113},{0,8,49},{0,9,195}, {16,7,10},{0,8,97},{0,8,33},{0,9,163},{0,8,1},{0,8,129},{0,8,65}, {0,9,227},{16,7,6},{0,8,89},{0,8,25},{0,9,147},{19,7,59},{0,8,121}, {0,8,57},{0,9,211},{17,7,17},{0,8,105},{0,8,41},{0,9,179},{0,8,9}, {0,8,137},{0,8,73},{0,9,243},{16,7,4},{0,8,85},{0,8,21},{16,8,258}, {19,7,43},{0,8,117},{0,8,53},{0,9,203},{17,7,13},{0,8,101},{0,8,37}, {0,9,171},{0,8,5},{0,8,133},{0,8,69},{0,9,235},{16,7,8},{0,8,93}, {0,8,29},{0,9,155},{20,7,83},{0,8,125},{0,8,61},{0,9,219},{18,7,23}, {0,8,109},{0,8,45},{0,9,187},{0,8,13},{0,8,141},{0,8,77},{0,9,251}, {16,7,3},{0,8,83},{0,8,19},{21,8,195},{19,7,35},{0,8,115},{0,8,51}, {0,9,199},{17,7,11},{0,8,99},{0,8,35},{0,9,167},{0,8,3},{0,8,131}, {0,8,67},{0,9,231},{16,7,7},{0,8,91},{0,8,27},{0,9,151},{20,7,67}, {0,8,123},{0,8,59},{0,9,215},{18,7,19},{0,8,107},{0,8,43},{0,9,183}, {0,8,11},{0,8,139},{0,8,75},{0,9,247},{16,7,5},{0,8,87},{0,8,23}, {64,8,0},{19,7,51},{0,8,119},{0,8,55},{0,9,207},{17,7,15},{0,8,103}, {0,8,39},{0,9,175},{0,8,7},{0,8,135},{0,8,71},{0,9,239},{16,7,9}, {0,8,95},{0,8,31},{0,9,159},{20,7,99},{0,8,127},{0,8,63},{0,9,223}, {18,7,27},{0,8,111},{0,8,47},{0,9,191},{0,8,15},{0,8,143},{0,8,79}, {0,9,255} }; static const code distfix[32] = { {16,5,1},{23,5,257},{19,5,17},{27,5,4097},{17,5,5},{25,5,1025}, {21,5,65},{29,5,16385},{16,5,3},{24,5,513},{20,5,33},{28,5,8193}, {18,5,9},{26,5,2049},{22,5,129},{64,5,0},{16,5,2},{23,5,385}, {19,5,25},{27,5,6145},{17,5,7},{25,5,1537},{21,5,97},{29,5,24577}, {16,5,4},{24,5,769},{20,5,49},{28,5,12289},{18,5,13},{26,5,3073}, {22,5,193},{64,5,0} }; instead-1.9.1/src/zlib/deflate.c000644 001751 001751 00000200553 12161555570 016766 0ustar00peterpeter000000 000000 /* deflate.c -- compress data using the deflation algorithm * Copyright (C) 1995-2005 Jean-loup Gailly. * For conditions of distribution and use, see copyright notice in zlib.h */ /* * ALGORITHM * * The "deflation" process depends on being able to identify portions * of the input text which are identical to earlier input (within a * sliding window trailing behind the input currently being processed). * * The most straightforward technique turns out to be the fastest for * most input files: try all possible matches and select the longest. * The key feature of this algorithm is that insertions into the string * dictionary are very simple and thus fast, and deletions are avoided * completely. Insertions are performed at each input character, whereas * string matches are performed only when the previous match ends. So it * is preferable to spend more time in matches to allow very fast string * insertions and avoid deletions. The matching algorithm for small * strings is inspired from that of Rabin & Karp. A brute force approach * is used to find longer strings when a small match has been found. * A similar algorithm is used in comic (by Jan-Mark Wams) and freeze * (by Leonid Broukhis). * A previous version of this file used a more sophisticated algorithm * (by Fiala and Greene) which is guaranteed to run in linear amortized * time, but has a larger average cost, uses more memory and is patented. * However the F&G algorithm may be faster for some highly redundant * files if the parameter max_chain_length (described below) is too large. * * ACKNOWLEDGEMENTS * * The idea of lazy evaluation of matches is due to Jan-Mark Wams, and * I found it in 'freeze' written by Leonid Broukhis. * Thanks to many people for bug reports and testing. * * REFERENCES * * Deutsch, L.P.,"DEFLATE Compressed Data Format Specification". * Available in http://www.ietf.org/rfc/rfc1951.txt * * A description of the Rabin and Karp algorithm is given in the book * "Algorithms" by R. Sedgewick, Addison-Wesley, p252. * * Fiala,E.R., and Greene,D.H. * Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595 * */ /* @(#) $Id$ */ #include "deflate.h" const char deflate_copyright[] = " deflate 1.2.3 Copyright 1995-2005 Jean-loup Gailly "; /* If you use the zlib library in a product, an acknowledgment is welcome in the documentation of your product. If for some reason you cannot include such an acknowledgment, I would appreciate that you keep this copyright string in the executable of your product. */ /* =========================================================================== * Function prototypes. */ typedef enum { need_more, /* block not completed, need more input or more output */ block_done, /* block flush performed */ finish_started, /* finish started, need only more output at next deflate */ finish_done /* finish done, accept no more input or output */ } block_state; typedef block_state (*compress_func) OF((deflate_state *s, int flush)); /* Compression function. Returns the block state after the call. */ local void fill_window OF((deflate_state *s)); local block_state deflate_stored OF((deflate_state *s, int flush)); local block_state deflate_fast OF((deflate_state *s, int flush)); #ifndef FASTEST local block_state deflate_slow OF((deflate_state *s, int flush)); #endif local void lm_init OF((deflate_state *s)); local void putShortMSB OF((deflate_state *s, uInt b)); local void flush_pending OF((z_streamp strm)); local int read_buf OF((z_streamp strm, Bytef *buf, unsigned size)); #ifndef FASTEST #ifdef ASMV void match_init OF((void)); /* asm code initialization */ uInt longest_match OF((deflate_state *s, IPos cur_match)); #else local uInt longest_match OF((deflate_state *s, IPos cur_match)); #endif #endif local uInt longest_match_fast OF((deflate_state *s, IPos cur_match)); #ifdef DEBUG local void check_match OF((deflate_state *s, IPos start, IPos match, int length)); #endif /* =========================================================================== * Local data */ #define NIL 0 /* Tail of hash chains */ #ifndef TOO_FAR # define TOO_FAR 4096 #endif /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */ #define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1) /* Minimum amount of lookahead, except at the end of the input file. * See deflate.c for comments about the MIN_MATCH+1. */ /* Values for max_lazy_match, good_match and max_chain_length, depending on * the desired pack level (0..9). The values given below have been tuned to * exclude worst case performance for pathological files. Better values may be * found for specific files. */ typedef struct config_s { ush good_length; /* reduce lazy search above this match length */ ush max_lazy; /* do not perform lazy search above this match length */ ush nice_length; /* quit search above this match length */ ush max_chain; compress_func func; } config; #ifdef FASTEST local const config configuration_table[2] = { /* good lazy nice chain */ /* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */ /* 1 */ {4, 4, 8, 4, deflate_fast}}; /* max speed, no lazy matches */ #else local const config configuration_table[10] = { /* good lazy nice chain */ /* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */ /* 1 */ {4, 4, 8, 4, deflate_fast}, /* max speed, no lazy matches */ /* 2 */ {4, 5, 16, 8, deflate_fast}, /* 3 */ {4, 6, 32, 32, deflate_fast}, /* 4 */ {4, 4, 16, 16, deflate_slow}, /* lazy matches */ /* 5 */ {8, 16, 32, 32, deflate_slow}, /* 6 */ {8, 16, 128, 128, deflate_slow}, /* 7 */ {8, 32, 128, 256, deflate_slow}, /* 8 */ {32, 128, 258, 1024, deflate_slow}, /* 9 */ {32, 258, 258, 4096, deflate_slow}}; /* max compression */ #endif /* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4 * For deflate_fast() (levels <= 3) good is ignored and lazy has a different * meaning. */ #define EQUAL 0 /* result of memcmp for equal strings */ #ifndef NO_DUMMY_DECL struct static_tree_desc_s {int dummy;}; /* for buggy compilers */ #endif /* =========================================================================== * Update a hash value with the given input byte * IN assertion: all calls to to UPDATE_HASH are made with consecutive * input characters, so that a running hash key can be computed from the * previous key instead of complete recalculation each time. */ #define UPDATE_HASH(s,h,c) (h = (((h)<hash_shift) ^ (c)) & s->hash_mask) /* =========================================================================== * Insert string str in the dictionary and set match_head to the previous head * of the hash chain (the most recent string with same hash key). Return * the previous length of the hash chain. * If this file is compiled with -DFASTEST, the compression level is forced * to 1, and no hash chains are maintained. * IN assertion: all calls to to INSERT_STRING are made with consecutive * input characters and the first MIN_MATCH bytes of str are valid * (except for the last MIN_MATCH-1 bytes of the input file). */ #ifdef FASTEST #define INSERT_STRING(s, str, match_head) \ (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \ match_head = s->head[s->ins_h], \ s->head[s->ins_h] = (Pos)(str)) #else #define INSERT_STRING(s, str, match_head) \ (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \ match_head = s->prev[(str) & s->w_mask] = s->head[s->ins_h], \ s->head[s->ins_h] = (Pos)(str)) #endif /* =========================================================================== * Initialize the hash table (avoiding 64K overflow for 16 bit systems). * prev[] will be initialized on the fly. */ #define CLEAR_HASH(s) \ s->head[s->hash_size-1] = NIL; \ zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head)); /* ========================================================================= */ int ZEXPORT deflateInit_(strm, level, version, stream_size) z_streamp strm; int level; const char *version; int stream_size; { return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, version, stream_size); /* To do: ignore strm->next_in if we use it as window */ } /* ========================================================================= */ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, version, stream_size) z_streamp strm; int level; int method; int windowBits; int memLevel; int strategy; const char *version; int stream_size; { deflate_state *s; int wrap = 1; static const char my_version[] = ZLIB_VERSION; ushf *overlay; /* We overlay pending_buf and d_buf+l_buf. This works since the average * output size for (length,distance) codes is <= 24 bits. */ if (version == Z_NULL || version[0] != my_version[0] || stream_size != sizeof(z_stream)) { return Z_VERSION_ERROR; } if (strm == Z_NULL) return Z_STREAM_ERROR; strm->msg = Z_NULL; if (strm->zalloc == (alloc_func)0) { strm->zalloc = zcalloc; strm->opaque = (voidpf)0; } if (strm->zfree == (free_func)0) strm->zfree = zcfree; #ifdef FASTEST if (level != 0) level = 1; #else if (level == Z_DEFAULT_COMPRESSION) level = 6; #endif if (windowBits < 0) { /* suppress zlib wrapper */ wrap = 0; windowBits = -windowBits; } #ifdef GZIP else if (windowBits > 15) { wrap = 2; /* write gzip wrapper instead */ windowBits -= 16; } #endif if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) { return Z_STREAM_ERROR; } if (windowBits == 8) windowBits = 9; /* until 256-byte window bug fixed */ s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state)); if (s == Z_NULL) return Z_MEM_ERROR; strm->state = (struct internal_state FAR *)s; s->strm = strm; s->wrap = wrap; s->gzhead = Z_NULL; s->w_bits = windowBits; s->w_size = 1 << s->w_bits; s->w_mask = s->w_size - 1; s->hash_bits = memLevel + 7; s->hash_size = 1 << s->hash_bits; s->hash_mask = s->hash_size - 1; s->hash_shift = ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH); s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte)); s->prev = (Posf *) ZALLOC(strm, s->w_size, sizeof(Pos)); s->head = (Posf *) ZALLOC(strm, s->hash_size, sizeof(Pos)); s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */ overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2); s->pending_buf = (uchf *) overlay; s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L); if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL || s->pending_buf == Z_NULL) { s->status = FINISH_STATE; strm->msg = (char*)ERR_MSG(Z_MEM_ERROR); deflateEnd (strm); return Z_MEM_ERROR; } s->d_buf = overlay + s->lit_bufsize/sizeof(ush); s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize; s->level = level; s->strategy = strategy; s->method = (Byte)method; return deflateReset(strm); } /* ========================================================================= */ int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength) z_streamp strm; const Bytef *dictionary; uInt dictLength; { deflate_state *s; uInt length = dictLength; uInt n; IPos hash_head = 0; if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL || strm->state->wrap == 2 || (strm->state->wrap == 1 && strm->state->status != INIT_STATE)) return Z_STREAM_ERROR; s = strm->state; if (s->wrap) strm->adler = adler32(strm->adler, dictionary, dictLength); if (length < MIN_MATCH) return Z_OK; if (length > MAX_DIST(s)) { length = MAX_DIST(s); dictionary += dictLength - length; /* use the tail of the dictionary */ } zmemcpy(s->window, dictionary, length); s->strstart = length; s->block_start = (long)length; /* Insert all strings in the hash table (except for the last two bytes). * s->lookahead stays null, so s->ins_h will be recomputed at the next * call of fill_window. */ s->ins_h = s->window[0]; UPDATE_HASH(s, s->ins_h, s->window[1]); for (n = 0; n <= length - MIN_MATCH; n++) { INSERT_STRING(s, n, hash_head); } if (hash_head) hash_head = 0; /* to make compiler happy */ return Z_OK; } /* ========================================================================= */ int ZEXPORT deflateReset (strm) z_streamp strm; { deflate_state *s; if (strm == Z_NULL || strm->state == Z_NULL || strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0) { return Z_STREAM_ERROR; } strm->total_in = strm->total_out = 0; strm->msg = Z_NULL; /* use zfree if we ever allocate msg dynamically */ strm->data_type = Z_UNKNOWN; s = (deflate_state *)strm->state; s->pending = 0; s->pending_out = s->pending_buf; if (s->wrap < 0) { s->wrap = -s->wrap; /* was made negative by deflate(..., Z_FINISH); */ } s->status = s->wrap ? INIT_STATE : BUSY_STATE; strm->adler = #ifdef GZIP s->wrap == 2 ? crc32(0L, Z_NULL, 0) : #endif adler32(0L, Z_NULL, 0); s->last_flush = Z_NO_FLUSH; _tr_init(s); lm_init(s); return Z_OK; } /* ========================================================================= */ int ZEXPORT deflateSetHeader (strm, head) z_streamp strm; gz_headerp head; { if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; if (strm->state->wrap != 2) return Z_STREAM_ERROR; strm->state->gzhead = head; return Z_OK; } /* ========================================================================= */ int ZEXPORT deflatePrime (strm, bits, value) z_streamp strm; int bits; int value; { if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; strm->state->bi_valid = bits; strm->state->bi_buf = (ush)(value & ((1 << bits) - 1)); return Z_OK; } /* ========================================================================= */ int ZEXPORT deflateParams(strm, level, strategy) z_streamp strm; int level; int strategy; { deflate_state *s; compress_func func; int err = Z_OK; if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; s = strm->state; #ifdef FASTEST if (level != 0) level = 1; #else if (level == Z_DEFAULT_COMPRESSION) level = 6; #endif if (level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) { return Z_STREAM_ERROR; } func = configuration_table[s->level].func; if (func != configuration_table[level].func && strm->total_in != 0) { /* Flush the last buffer: */ err = deflate(strm, Z_PARTIAL_FLUSH); } if (s->level != level) { s->level = level; s->max_lazy_match = configuration_table[level].max_lazy; s->good_match = configuration_table[level].good_length; s->nice_match = configuration_table[level].nice_length; s->max_chain_length = configuration_table[level].max_chain; } s->strategy = strategy; return err; } /* ========================================================================= */ int ZEXPORT deflateTune(strm, good_length, max_lazy, nice_length, max_chain) z_streamp strm; int good_length; int max_lazy; int nice_length; int max_chain; { deflate_state *s; if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; s = strm->state; s->good_match = good_length; s->max_lazy_match = max_lazy; s->nice_match = nice_length; s->max_chain_length = max_chain; return Z_OK; } /* ========================================================================= * For the default windowBits of 15 and memLevel of 8, this function returns * a close to exact, as well as small, upper bound on the compressed size. * They are coded as constants here for a reason--if the #define's are * changed, then this function needs to be changed as well. The return * value for 15 and 8 only works for those exact settings. * * For any setting other than those defaults for windowBits and memLevel, * the value returned is a conservative worst case for the maximum expansion * resulting from using fixed blocks instead of stored blocks, which deflate * can emit on compressed data for some combinations of the parameters. * * This function could be more sophisticated to provide closer upper bounds * for every combination of windowBits and memLevel, as well as wrap. * But even the conservative upper bound of about 14% expansion does not * seem onerous for output buffer allocation. */ uLong ZEXPORT deflateBound(strm, sourceLen) z_streamp strm; uLong sourceLen; { deflate_state *s; uLong destLen; /* conservative upper bound */ destLen = sourceLen + ((sourceLen + 7) >> 3) + ((sourceLen + 63) >> 6) + 11; /* if can't get parameters, return conservative bound */ if (strm == Z_NULL || strm->state == Z_NULL) return destLen; /* if not default parameters, return conservative bound */ s = strm->state; if (s->w_bits != 15 || s->hash_bits != 8 + 7) return destLen; /* default settings: return tight bound for that case */ return compressBound(sourceLen); } /* ========================================================================= * Put a short in the pending buffer. The 16-bit value is put in MSB order. * IN assertion: the stream state is correct and there is enough room in * pending_buf. */ local void putShortMSB (s, b) deflate_state *s; uInt b; { put_byte(s, (Byte)(b >> 8)); put_byte(s, (Byte)(b & 0xff)); } /* ========================================================================= * Flush as much pending output as possible. All deflate() output goes * through this function so some applications may wish to modify it * to avoid allocating a large strm->next_out buffer and copying into it. * (See also read_buf()). */ local void flush_pending(strm) z_streamp strm; { unsigned len = strm->state->pending; if (len > strm->avail_out) len = strm->avail_out; if (len == 0) return; zmemcpy(strm->next_out, strm->state->pending_out, len); strm->next_out += len; strm->state->pending_out += len; strm->total_out += len; strm->avail_out -= len; strm->state->pending -= len; if (strm->state->pending == 0) { strm->state->pending_out = strm->state->pending_buf; } } /* ========================================================================= */ int ZEXPORT deflate (strm, flush) z_streamp strm; int flush; { int old_flush; /* value of flush param for previous deflate call */ deflate_state *s; if (strm == Z_NULL || strm->state == Z_NULL || flush > Z_FINISH || flush < 0) { return Z_STREAM_ERROR; } s = strm->state; if (strm->next_out == Z_NULL || (strm->next_in == Z_NULL && strm->avail_in != 0) || (s->status == FINISH_STATE && flush != Z_FINISH)) { ERR_RETURN(strm, Z_STREAM_ERROR); } if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR); s->strm = strm; /* just in case */ old_flush = s->last_flush; s->last_flush = flush; /* Write the header */ if (s->status == INIT_STATE) { #ifdef GZIP if (s->wrap == 2) { strm->adler = crc32(0L, Z_NULL, 0); put_byte(s, 31); put_byte(s, 139); put_byte(s, 8); if (s->gzhead == NULL) { put_byte(s, 0); put_byte(s, 0); put_byte(s, 0); put_byte(s, 0); put_byte(s, 0); put_byte(s, s->level == 9 ? 2 : (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ? 4 : 0)); put_byte(s, OS_CODE); s->status = BUSY_STATE; } else { put_byte(s, (s->gzhead->text ? 1 : 0) + (s->gzhead->hcrc ? 2 : 0) + (s->gzhead->extra == Z_NULL ? 0 : 4) + (s->gzhead->name == Z_NULL ? 0 : 8) + (s->gzhead->comment == Z_NULL ? 0 : 16) ); put_byte(s, (Byte)(s->gzhead->time & 0xff)); put_byte(s, (Byte)((s->gzhead->time >> 8) & 0xff)); put_byte(s, (Byte)((s->gzhead->time >> 16) & 0xff)); put_byte(s, (Byte)((s->gzhead->time >> 24) & 0xff)); put_byte(s, s->level == 9 ? 2 : (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ? 4 : 0)); put_byte(s, s->gzhead->os & 0xff); if (s->gzhead->extra != NULL) { put_byte(s, s->gzhead->extra_len & 0xff); put_byte(s, (s->gzhead->extra_len >> 8) & 0xff); } if (s->gzhead->hcrc) strm->adler = crc32(strm->adler, s->pending_buf, s->pending); s->gzindex = 0; s->status = EXTRA_STATE; } } else #endif { uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8; uInt level_flags; if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2) level_flags = 0; else if (s->level < 6) level_flags = 1; else if (s->level == 6) level_flags = 2; else level_flags = 3; header |= (level_flags << 6); if (s->strstart != 0) header |= PRESET_DICT; header += 31 - (header % 31); s->status = BUSY_STATE; putShortMSB(s, header); /* Save the adler32 of the preset dictionary: */ if (s->strstart != 0) { putShortMSB(s, (uInt)(strm->adler >> 16)); putShortMSB(s, (uInt)(strm->adler & 0xffff)); } strm->adler = adler32(0L, Z_NULL, 0); } } #ifdef GZIP if (s->status == EXTRA_STATE) { if (s->gzhead->extra != NULL) { uInt beg = s->pending; /* start of bytes to update crc */ while (s->gzindex < (s->gzhead->extra_len & 0xffff)) { if (s->pending == s->pending_buf_size) { if (s->gzhead->hcrc && s->pending > beg) strm->adler = crc32(strm->adler, s->pending_buf + beg, s->pending - beg); flush_pending(strm); beg = s->pending; if (s->pending == s->pending_buf_size) break; } put_byte(s, s->gzhead->extra[s->gzindex]); s->gzindex++; } if (s->gzhead->hcrc && s->pending > beg) strm->adler = crc32(strm->adler, s->pending_buf + beg, s->pending - beg); if (s->gzindex == s->gzhead->extra_len) { s->gzindex = 0; s->status = NAME_STATE; } } else s->status = NAME_STATE; } if (s->status == NAME_STATE) { if (s->gzhead->name != NULL) { uInt beg = s->pending; /* start of bytes to update crc */ int val; do { if (s->pending == s->pending_buf_size) { if (s->gzhead->hcrc && s->pending > beg) strm->adler = crc32(strm->adler, s->pending_buf + beg, s->pending - beg); flush_pending(strm); beg = s->pending; if (s->pending == s->pending_buf_size) { val = 1; break; } } val = s->gzhead->name[s->gzindex++]; put_byte(s, val); } while (val != 0); if (s->gzhead->hcrc && s->pending > beg) strm->adler = crc32(strm->adler, s->pending_buf + beg, s->pending - beg); if (val == 0) { s->gzindex = 0; s->status = COMMENT_STATE; } } else s->status = COMMENT_STATE; } if (s->status == COMMENT_STATE) { if (s->gzhead->comment != NULL) { uInt beg = s->pending; /* start of bytes to update crc */ int val; do { if (s->pending == s->pending_buf_size) { if (s->gzhead->hcrc && s->pending > beg) strm->adler = crc32(strm->adler, s->pending_buf + beg, s->pending - beg); flush_pending(strm); beg = s->pending; if (s->pending == s->pending_buf_size) { val = 1; break; } } val = s->gzhead->comment[s->gzindex++]; put_byte(s, val); } while (val != 0); if (s->gzhead->hcrc && s->pending > beg) strm->adler = crc32(strm->adler, s->pending_buf + beg, s->pending - beg); if (val == 0) s->status = HCRC_STATE; } else s->status = HCRC_STATE; } if (s->status == HCRC_STATE) { if (s->gzhead->hcrc) { if (s->pending + 2 > s->pending_buf_size) flush_pending(strm); if (s->pending + 2 <= s->pending_buf_size) { put_byte(s, (Byte)(strm->adler & 0xff)); put_byte(s, (Byte)((strm->adler >> 8) & 0xff)); strm->adler = crc32(0L, Z_NULL, 0); s->status = BUSY_STATE; } } else s->status = BUSY_STATE; } #endif /* Flush as much pending output as possible */ if (s->pending != 0) { flush_pending(strm); if (strm->avail_out == 0) { /* Since avail_out is 0, deflate will be called again with * more output space, but possibly with both pending and * avail_in equal to zero. There won't be anything to do, * but this is not an error situation so make sure we * return OK instead of BUF_ERROR at next call of deflate: */ s->last_flush = -1; return Z_OK; } /* Make sure there is something to do and avoid duplicate consecutive * flushes. For repeated and useless calls with Z_FINISH, we keep * returning Z_STREAM_END instead of Z_BUF_ERROR. */ } else if (strm->avail_in == 0 && flush <= old_flush && flush != Z_FINISH) { ERR_RETURN(strm, Z_BUF_ERROR); } /* User must not provide more input after the first FINISH: */ if (s->status == FINISH_STATE && strm->avail_in != 0) { ERR_RETURN(strm, Z_BUF_ERROR); } /* Start a new block or continue the current one. */ if (strm->avail_in != 0 || s->lookahead != 0 || (flush != Z_NO_FLUSH && s->status != FINISH_STATE)) { block_state bstate; bstate = (*(configuration_table[s->level].func))(s, flush); if (bstate == finish_started || bstate == finish_done) { s->status = FINISH_STATE; } if (bstate == need_more || bstate == finish_started) { if (strm->avail_out == 0) { s->last_flush = -1; /* avoid BUF_ERROR next call, see above */ } return Z_OK; /* If flush != Z_NO_FLUSH && avail_out == 0, the next call * of deflate should use the same flush parameter to make sure * that the flush is complete. So we don't have to output an * empty block here, this will be done at next call. This also * ensures that for a very small output buffer, we emit at most * one empty block. */ } if (bstate == block_done) { if (flush == Z_PARTIAL_FLUSH) { _tr_align(s); } else { /* FULL_FLUSH or SYNC_FLUSH */ _tr_stored_block(s, (char*)0, 0L, 0); /* For a full flush, this empty block will be recognized * as a special marker by inflate_sync(). */ if (flush == Z_FULL_FLUSH) { CLEAR_HASH(s); /* forget history */ } } flush_pending(strm); if (strm->avail_out == 0) { s->last_flush = -1; /* avoid BUF_ERROR at next call, see above */ return Z_OK; } } } Assert(strm->avail_out > 0, "bug2"); if (flush != Z_FINISH) return Z_OK; if (s->wrap <= 0) return Z_STREAM_END; /* Write the trailer */ #ifdef GZIP if (s->wrap == 2) { put_byte(s, (Byte)(strm->adler & 0xff)); put_byte(s, (Byte)((strm->adler >> 8) & 0xff)); put_byte(s, (Byte)((strm->adler >> 16) & 0xff)); put_byte(s, (Byte)((strm->adler >> 24) & 0xff)); put_byte(s, (Byte)(strm->total_in & 0xff)); put_byte(s, (Byte)((strm->total_in >> 8) & 0xff)); put_byte(s, (Byte)((strm->total_in >> 16) & 0xff)); put_byte(s, (Byte)((strm->total_in >> 24) & 0xff)); } else #endif { putShortMSB(s, (uInt)(strm->adler >> 16)); putShortMSB(s, (uInt)(strm->adler & 0xffff)); } flush_pending(strm); /* If avail_out is zero, the application will call deflate again * to flush the rest. */ if (s->wrap > 0) s->wrap = -s->wrap; /* write the trailer only once! */ return s->pending != 0 ? Z_OK : Z_STREAM_END; } /* ========================================================================= */ int ZEXPORT deflateEnd (strm) z_streamp strm; { int status; if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; status = strm->state->status; if (status != INIT_STATE && status != EXTRA_STATE && status != NAME_STATE && status != COMMENT_STATE && status != HCRC_STATE && status != BUSY_STATE && status != FINISH_STATE) { return Z_STREAM_ERROR; } /* Deallocate in reverse order of allocations: */ TRY_FREE(strm, strm->state->pending_buf); TRY_FREE(strm, strm->state->head); TRY_FREE(strm, strm->state->prev); TRY_FREE(strm, strm->state->window); ZFREE(strm, strm->state); strm->state = Z_NULL; return status == BUSY_STATE ? Z_DATA_ERROR : Z_OK; } /* ========================================================================= * Copy the source state to the destination state. * To simplify the source, this is not supported for 16-bit MSDOS (which * doesn't have enough memory anyway to duplicate compression states). */ int ZEXPORT deflateCopy (dest, source) z_streamp dest; z_streamp source; { #ifdef MAXSEG_64K return Z_STREAM_ERROR; #else deflate_state *ds; deflate_state *ss; ushf *overlay; if (source == Z_NULL || dest == Z_NULL || source->state == Z_NULL) { return Z_STREAM_ERROR; } ss = source->state; zmemcpy(dest, source, sizeof(z_stream)); ds = (deflate_state *) ZALLOC(dest, 1, sizeof(deflate_state)); if (ds == Z_NULL) return Z_MEM_ERROR; dest->state = (struct internal_state FAR *) ds; zmemcpy(ds, ss, sizeof(deflate_state)); ds->strm = dest; ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte)); ds->prev = (Posf *) ZALLOC(dest, ds->w_size, sizeof(Pos)); ds->head = (Posf *) ZALLOC(dest, ds->hash_size, sizeof(Pos)); overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2); ds->pending_buf = (uchf *) overlay; if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL || ds->pending_buf == Z_NULL) { deflateEnd (dest); return Z_MEM_ERROR; } /* following zmemcpy do not work for 16-bit MSDOS */ zmemcpy(ds->window, ss->window, ds->w_size * 2 * sizeof(Byte)); zmemcpy(ds->prev, ss->prev, ds->w_size * sizeof(Pos)); zmemcpy(ds->head, ss->head, ds->hash_size * sizeof(Pos)); zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size); ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf); ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush); ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize; ds->l_desc.dyn_tree = ds->dyn_ltree; ds->d_desc.dyn_tree = ds->dyn_dtree; ds->bl_desc.dyn_tree = ds->bl_tree; return Z_OK; #endif /* MAXSEG_64K */ } /* =========================================================================== * Read a new buffer from the current input stream, update the adler32 * and total number of bytes read. All deflate() input goes through * this function so some applications may wish to modify it to avoid * allocating a large strm->next_in buffer and copying from it. * (See also flush_pending()). */ local int read_buf(strm, buf, size) z_streamp strm; Bytef *buf; unsigned size; { unsigned len = strm->avail_in; if (len > size) len = size; if (len == 0) return 0; strm->avail_in -= len; if (strm->state->wrap == 1) { strm->adler = adler32(strm->adler, strm->next_in, len); } #ifdef GZIP else if (strm->state->wrap == 2) { strm->adler = crc32(strm->adler, strm->next_in, len); } #endif zmemcpy(buf, strm->next_in, len); strm->next_in += len; strm->total_in += len; return (int)len; } /* =========================================================================== * Initialize the "longest match" routines for a new zlib stream */ local void lm_init (s) deflate_state *s; { s->window_size = (ulg)2L*s->w_size; CLEAR_HASH(s); /* Set the default configuration parameters: */ s->max_lazy_match = configuration_table[s->level].max_lazy; s->good_match = configuration_table[s->level].good_length; s->nice_match = configuration_table[s->level].nice_length; s->max_chain_length = configuration_table[s->level].max_chain; s->strstart = 0; s->block_start = 0L; s->lookahead = 0; s->match_length = s->prev_length = MIN_MATCH-1; s->match_available = 0; s->ins_h = 0; #ifndef FASTEST #ifdef ASMV match_init(); /* initialize the asm code */ #endif #endif } #ifndef FASTEST /* =========================================================================== * Set match_start to the longest match starting at the given string and * return its length. Matches shorter or equal to prev_length are discarded, * in which case the result is equal to prev_length and match_start is * garbage. * IN assertions: cur_match is the head of the hash chain for the current * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1 * OUT assertion: the match length is not greater than s->lookahead. */ #ifndef ASMV /* For 80x86 and 680x0, an optimized version will be provided in match.asm or * match.S. The code will be functionally equivalent. */ local uInt longest_match(s, cur_match) deflate_state *s; IPos cur_match; /* current match */ { unsigned chain_length = s->max_chain_length;/* max hash chain length */ register Bytef *scan = s->window + s->strstart; /* current string */ register Bytef *match; /* matched string */ register int len; /* length of current match */ int best_len = s->prev_length; /* best match length so far */ int nice_match = s->nice_match; /* stop if match long enough */ IPos limit = s->strstart > (IPos)MAX_DIST(s) ? s->strstart - (IPos)MAX_DIST(s) : NIL; /* Stop when cur_match becomes <= limit. To simplify the code, * we prevent matches with the string of window index 0. */ Posf *prev = s->prev; uInt wmask = s->w_mask; #ifdef UNALIGNED_OK /* Compare two bytes at a time. Note: this is not always beneficial. * Try with and without -DUNALIGNED_OK to check. */ register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1; register ush scan_start = *(ushf*)scan; register ush scan_end = *(ushf*)(scan+best_len-1); #else register Bytef *strend = s->window + s->strstart + MAX_MATCH; register Byte scan_end1 = scan[best_len-1]; register Byte scan_end = scan[best_len]; #endif /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. * It is easy to get rid of this optimization if necessary. */ Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); /* Do not waste too much time if we already have a good match: */ if (s->prev_length >= s->good_match) { chain_length >>= 2; } /* Do not look for matches beyond the end of the input. This is necessary * to make deflate deterministic. */ if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); do { Assert(cur_match < s->strstart, "no future"); match = s->window + cur_match; /* Skip to next match if the match length cannot increase * or if the match length is less than 2. Note that the checks below * for insufficient lookahead only occur occasionally for performance * reasons. Therefore uninitialized memory will be accessed, and * conditional jumps will be made that depend on those values. * However the length of the match is limited to the lookahead, so * the output of deflate is not affected by the uninitialized values. */ #if (defined(UNALIGNED_OK) && MAX_MATCH == 258) /* This code assumes sizeof(unsigned short) == 2. Do not use * UNALIGNED_OK if your compiler uses a different size. */ if (*(ushf*)(match+best_len-1) != scan_end || *(ushf*)match != scan_start) continue; /* It is not necessary to compare scan[2] and match[2] since they are * always equal when the other bytes match, given that the hash keys * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at * strstart+3, +5, ... up to strstart+257. We check for insufficient * lookahead only every 4th comparison; the 128th check will be made * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is * necessary to put more guard bytes at the end of the window, or * to check more often for insufficient lookahead. */ Assert(scan[2] == match[2], "scan[2]?"); scan++, match++; do { } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) == *(ushf*)(match+=2) && scan < strend); /* The funny "do {}" generates better code on most compilers */ /* Here, scan <= window+strstart+257 */ Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); if (*scan == *match) scan++; len = (MAX_MATCH - 1) - (int)(strend-scan); scan = strend - (MAX_MATCH-1); #else /* UNALIGNED_OK */ if (match[best_len] != scan_end || match[best_len-1] != scan_end1 || *match != *scan || *++match != scan[1]) continue; /* The check at best_len-1 can be removed because it will be made * again later. (This heuristic is not always a win.) * It is not necessary to compare scan[2] and match[2] since they * are always equal when the other bytes match, given that * the hash keys are equal and that HASH_BITS >= 8. */ scan += 2, match++; Assert(*scan == *match, "match[2]?"); /* We check for insufficient lookahead only every 8th comparison; * the 256th check will be made at strstart+258. */ do { } while (*++scan == *++match && *++scan == *++match && *++scan == *++match && *++scan == *++match && *++scan == *++match && *++scan == *++match && *++scan == *++match && *++scan == *++match && scan < strend); Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); len = MAX_MATCH - (int)(strend - scan); scan = strend - MAX_MATCH; #endif /* UNALIGNED_OK */ if (len > best_len) { s->match_start = cur_match; best_len = len; if (len >= nice_match) break; #ifdef UNALIGNED_OK scan_end = *(ushf*)(scan+best_len-1); #else scan_end1 = scan[best_len-1]; scan_end = scan[best_len]; #endif } } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length != 0); if ((uInt)best_len <= s->lookahead) return (uInt)best_len; return s->lookahead; } #endif /* ASMV */ #endif /* FASTEST */ /* --------------------------------------------------------------------------- * Optimized version for level == 1 or strategy == Z_RLE only */ local uInt longest_match_fast(s, cur_match) deflate_state *s; IPos cur_match; /* current match */ { register Bytef *scan = s->window + s->strstart; /* current string */ register Bytef *match; /* matched string */ register int len; /* length of current match */ register Bytef *strend = s->window + s->strstart + MAX_MATCH; /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. * It is easy to get rid of this optimization if necessary. */ Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); Assert(cur_match < s->strstart, "no future"); match = s->window + cur_match; /* Return failure if the match length is less than 2: */ if (match[0] != scan[0] || match[1] != scan[1]) return MIN_MATCH-1; /* The check at best_len-1 can be removed because it will be made * again later. (This heuristic is not always a win.) * It is not necessary to compare scan[2] and match[2] since they * are always equal when the other bytes match, given that * the hash keys are equal and that HASH_BITS >= 8. */ scan += 2, match += 2; Assert(*scan == *match, "match[2]?"); /* We check for insufficient lookahead only every 8th comparison; * the 256th check will be made at strstart+258. */ do { } while (*++scan == *++match && *++scan == *++match && *++scan == *++match && *++scan == *++match && *++scan == *++match && *++scan == *++match && *++scan == *++match && *++scan == *++match && scan < strend); Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); len = MAX_MATCH - (int)(strend - scan); if (len < MIN_MATCH) return MIN_MATCH - 1; s->match_start = cur_match; return (uInt)len <= s->lookahead ? (uInt)len : s->lookahead; } #ifdef DEBUG /* =========================================================================== * Check that the match at match_start is indeed a match. */ local void check_match(s, start, match, length) deflate_state *s; IPos start, match; int length; { /* check that the match is indeed a match */ if (zmemcmp(s->window + match, s->window + start, length) != EQUAL) { fprintf(stderr, " start %u, match %u, length %d\n", start, match, length); do { fprintf(stderr, "%c%c", s->window[match++], s->window[start++]); } while (--length != 0); z_error("invalid match"); } if (z_verbose > 1) { fprintf(stderr,"\\[%d,%d]", start-match, length); do { putc(s->window[start++], stderr); } while (--length != 0); } } #else # define check_match(s, start, match, length) #endif /* DEBUG */ /* =========================================================================== * Fill the window when the lookahead becomes insufficient. * Updates strstart and lookahead. * * IN assertion: lookahead < MIN_LOOKAHEAD * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD * At least one byte has been read, or avail_in == 0; reads are * performed for at least two bytes (required for the zip translate_eol * option -- not supported here). */ local void fill_window(s) deflate_state *s; { register unsigned n, m; register Posf *p; unsigned more; /* Amount of free space at the end of the window. */ uInt wsize = s->w_size; do { more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart); /* Deal with !@#$% 64K limit: */ if (sizeof(int) <= 2) { if (more == 0 && s->strstart == 0 && s->lookahead == 0) { more = wsize; } else if (more == (unsigned)(-1)) { /* Very unlikely, but possible on 16 bit machine if * strstart == 0 && lookahead == 1 (input done a byte at time) */ more--; } } /* If the window is almost full and there is insufficient lookahead, * move the upper half to the lower one to make room in the upper half. */ if (s->strstart >= wsize+MAX_DIST(s)) { zmemcpy(s->window, s->window+wsize, (unsigned)wsize); s->match_start -= wsize; s->strstart -= wsize; /* we now have strstart >= MAX_DIST */ s->block_start -= (long) wsize; /* Slide the hash table (could be avoided with 32 bit values at the expense of memory usage). We slide even when level == 0 to keep the hash table consistent if we switch back to level > 0 later. (Using level 0 permanently is not an optimal usage of zlib, so we don't care about this pathological case.) */ /* %%% avoid this when Z_RLE */ n = s->hash_size; p = &s->head[n]; do { m = *--p; *p = (Pos)(m >= wsize ? m-wsize : NIL); } while (--n); n = wsize; #ifndef FASTEST p = &s->prev[n]; do { m = *--p; *p = (Pos)(m >= wsize ? m-wsize : NIL); /* If n is not on any hash chain, prev[n] is garbage but * its value will never be used. */ } while (--n); #endif more += wsize; } if (s->strm->avail_in == 0) return; /* If there was no sliding: * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 && * more == window_size - lookahead - strstart * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1) * => more >= window_size - 2*WSIZE + 2 * In the BIG_MEM or MMAP case (not yet supported), * window_size == input_size + MIN_LOOKAHEAD && * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD. * Otherwise, window_size == 2*WSIZE so more >= 2. * If there was sliding, more >= WSIZE. So in all cases, more >= 2. */ Assert(more >= 2, "more < 2"); n = read_buf(s->strm, s->window + s->strstart + s->lookahead, more); s->lookahead += n; /* Initialize the hash value now that we have some input: */ if (s->lookahead >= MIN_MATCH) { s->ins_h = s->window[s->strstart]; UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]); #if MIN_MATCH != 3 Call UPDATE_HASH() MIN_MATCH-3 more times #endif } /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage, * but this is not important since only literal bytes will be emitted. */ } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0); } /* =========================================================================== * Flush the current block, with given end-of-file flag. * IN assertion: strstart is set to the end of the current match. */ #define FLUSH_BLOCK_ONLY(s, eof) { \ _tr_flush_block(s, (s->block_start >= 0L ? \ (charf *)&s->window[(unsigned)s->block_start] : \ (charf *)Z_NULL), \ (ulg)((long)s->strstart - s->block_start), \ (eof)); \ s->block_start = s->strstart; \ flush_pending(s->strm); \ Tracev((stderr,"[FLUSH]")); \ } /* Same but force premature exit if necessary. */ #define FLUSH_BLOCK(s, eof) { \ FLUSH_BLOCK_ONLY(s, eof); \ if (s->strm->avail_out == 0) return (eof) ? finish_started : need_more; \ } /* =========================================================================== * Copy without compression as much as possible from the input stream, return * the current block state. * This function does not insert new strings in the dictionary since * uncompressible data is probably not useful. This function is used * only for the level=0 compression option. * NOTE: this function should be optimized to avoid extra copying from * window to pending_buf. */ local block_state deflate_stored(s, flush) deflate_state *s; int flush; { /* Stored blocks are limited to 0xffff bytes, pending_buf is limited * to pending_buf_size, and each stored block has a 5 byte header: */ ulg max_block_size = 0xffff; ulg max_start; if (max_block_size > s->pending_buf_size - 5) { max_block_size = s->pending_buf_size - 5; } /* Copy as much as possible from input to output: */ for (;;) { /* Fill the window as much as possible: */ if (s->lookahead <= 1) { Assert(s->strstart < s->w_size+MAX_DIST(s) || s->block_start >= (long)s->w_size, "slide too late"); fill_window(s); if (s->lookahead == 0 && flush == Z_NO_FLUSH) return need_more; if (s->lookahead == 0) break; /* flush the current block */ } Assert(s->block_start >= 0L, "block gone"); s->strstart += s->lookahead; s->lookahead = 0; /* Emit a stored block if pending_buf will be full: */ max_start = s->block_start + max_block_size; if (s->strstart == 0 || (ulg)s->strstart >= max_start) { /* strstart == 0 is possible when wraparound on 16-bit machine */ s->lookahead = (uInt)(s->strstart - max_start); s->strstart = (uInt)max_start; FLUSH_BLOCK(s, 0); } /* Flush if we may have to slide, otherwise block_start may become * negative and the data will be gone: */ if (s->strstart - (uInt)s->block_start >= MAX_DIST(s)) { FLUSH_BLOCK(s, 0); } } FLUSH_BLOCK(s, flush == Z_FINISH); return flush == Z_FINISH ? finish_done : block_done; } /* =========================================================================== * Compress as much as possible from the input stream, return the current * block state. * This function does not perform lazy evaluation of matches and inserts * new strings in the dictionary only for unmatched strings or for short * matches. It is used only for the fast compression options. */ local block_state deflate_fast(s, flush) deflate_state *s; int flush; { IPos hash_head = NIL; /* head of the hash chain */ int bflush; /* set if current block must be flushed */ for (;;) { /* Make sure that we always have enough lookahead, except * at the end of the input file. We need MAX_MATCH bytes * for the next match, plus MIN_MATCH bytes to insert the * string following the next match. */ if (s->lookahead < MIN_LOOKAHEAD) { fill_window(s); if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) { return need_more; } if (s->lookahead == 0) break; /* flush the current block */ } /* Insert the string window[strstart .. strstart+2] in the * dictionary, and set hash_head to the head of the hash chain: */ if (s->lookahead >= MIN_MATCH) { INSERT_STRING(s, s->strstart, hash_head); } /* Find the longest match, discarding those <= prev_length. * At this point we have always match_length < MIN_MATCH */ if (hash_head != NIL && s->strstart - hash_head <= MAX_DIST(s)) { /* To simplify the code, we prevent matches with the string * of window index 0 (in particular we have to avoid a match * of the string with itself at the start of the input file). */ #ifdef FASTEST if ((s->strategy != Z_HUFFMAN_ONLY && s->strategy != Z_RLE) || (s->strategy == Z_RLE && s->strstart - hash_head == 1)) { s->match_length = longest_match_fast (s, hash_head); } #else if (s->strategy != Z_HUFFMAN_ONLY && s->strategy != Z_RLE) { s->match_length = longest_match (s, hash_head); } else if (s->strategy == Z_RLE && s->strstart - hash_head == 1) { s->match_length = longest_match_fast (s, hash_head); } #endif /* longest_match() or longest_match_fast() sets match_start */ } if (s->match_length >= MIN_MATCH) { check_match(s, s->strstart, s->match_start, s->match_length); _tr_tally_dist(s, s->strstart - s->match_start, s->match_length - MIN_MATCH, bflush); s->lookahead -= s->match_length; /* Insert new strings in the hash table only if the match length * is not too large. This saves time but degrades compression. */ #ifndef FASTEST if (s->match_length <= s->max_insert_length && s->lookahead >= MIN_MATCH) { s->match_length--; /* string at strstart already in table */ do { s->strstart++; INSERT_STRING(s, s->strstart, hash_head); /* strstart never exceeds WSIZE-MAX_MATCH, so there are * always MIN_MATCH bytes ahead. */ } while (--s->match_length != 0); s->strstart++; } else #endif { s->strstart += s->match_length; s->match_length = 0; s->ins_h = s->window[s->strstart]; UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]); #if MIN_MATCH != 3 Call UPDATE_HASH() MIN_MATCH-3 more times #endif /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not * matter since it will be recomputed at next deflate call. */ } } else { /* No match, output a literal byte */ Tracevv((stderr,"%c", s->window[s->strstart])); _tr_tally_lit (s, s->window[s->strstart], bflush); s->lookahead--; s->strstart++; } if (bflush) FLUSH_BLOCK(s, 0); } FLUSH_BLOCK(s, flush == Z_FINISH); return flush == Z_FINISH ? finish_done : block_done; } #ifndef FASTEST /* =========================================================================== * Same as above, but achieves better compression. We use a lazy * evaluation for matches: a match is finally adopted only if there is * no better match at the next window position. */ local block_state deflate_slow(s, flush) deflate_state *s; int flush; { IPos hash_head = NIL; /* head of hash chain */ int bflush; /* set if current block must be flushed */ /* Process the input block. */ for (;;) { /* Make sure that we always have enough lookahead, except * at the end of the input file. We need MAX_MATCH bytes * for the next match, plus MIN_MATCH bytes to insert the * string following the next match. */ if (s->lookahead < MIN_LOOKAHEAD) { fill_window(s); if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) { return need_more; } if (s->lookahead == 0) break; /* flush the current block */ } /* Insert the string window[strstart .. strstart+2] in the * dictionary, and set hash_head to the head of the hash chain: */ if (s->lookahead >= MIN_MATCH) { INSERT_STRING(s, s->strstart, hash_head); } /* Find the longest match, discarding those <= prev_length. */ s->prev_length = s->match_length, s->prev_match = s->match_start; s->match_length = MIN_MATCH-1; if (hash_head != NIL && s->prev_length < s->max_lazy_match && s->strstart - hash_head <= MAX_DIST(s)) { /* To simplify the code, we prevent matches with the string * of window index 0 (in particular we have to avoid a match * of the string with itself at the start of the input file). */ if (s->strategy != Z_HUFFMAN_ONLY && s->strategy != Z_RLE) { s->match_length = longest_match (s, hash_head); } else if (s->strategy == Z_RLE && s->strstart - hash_head == 1) { s->match_length = longest_match_fast (s, hash_head); } /* longest_match() or longest_match_fast() sets match_start */ if (s->match_length <= 5 && (s->strategy == Z_FILTERED #if TOO_FAR <= 32767 || (s->match_length == MIN_MATCH && s->strstart - s->match_start > TOO_FAR) #endif )) { /* If prev_match is also MIN_MATCH, match_start is garbage * but we will ignore the current match anyway. */ s->match_length = MIN_MATCH-1; } } /* If there was a match at the previous step and the current * match is not better, output the previous match: */ if (s->prev_length >= MIN_MATCH && s->match_length <= s->prev_length) { uInt max_insert = s->strstart + s->lookahead - MIN_MATCH; /* Do not insert strings in hash table beyond this. */ check_match(s, s->strstart-1, s->prev_match, s->prev_length); _tr_tally_dist(s, s->strstart -1 - s->prev_match, s->prev_length - MIN_MATCH, bflush); /* Insert in hash table all strings up to the end of the match. * strstart-1 and strstart are already inserted. If there is not * enough lookahead, the last two strings are not inserted in * the hash table. */ s->lookahead -= s->prev_length-1; s->prev_length -= 2; do { if (++s->strstart <= max_insert) { INSERT_STRING(s, s->strstart, hash_head); } } while (--s->prev_length != 0); s->match_available = 0; s->match_length = MIN_MATCH-1; s->strstart++; if (bflush) FLUSH_BLOCK(s, 0); } else if (s->match_available) { /* If there was no match at the previous position, output a * single literal. If there was a match but the current match * is longer, truncate the previous match to a single literal. */ Tracevv((stderr,"%c", s->window[s->strstart-1])); _tr_tally_lit(s, s->window[s->strstart-1], bflush); if (bflush) { FLUSH_BLOCK_ONLY(s, 0); } s->strstart++; s->lookahead--; if (s->strm->avail_out == 0) return need_more; } else { /* There is no previous match to compare with, wait for * the next step to decide. */ s->match_available = 1; s->strstart++; s->lookahead--; } } Assert (flush != Z_NO_FLUSH, "no flush?"); if (s->match_available) { Tracevv((stderr,"%c", s->window[s->strstart-1])); _tr_tally_lit(s, s->window[s->strstart-1], bflush); s->match_available = 0; } FLUSH_BLOCK(s, flush == Z_FINISH); return flush == Z_FINISH ? finish_done : block_done; } #endif /* FASTEST */ #if 0 /* =========================================================================== * For Z_RLE, simply look for runs of bytes, generate matches only of distance * one. Do not maintain a hash table. (It will be regenerated if this run of * deflate switches away from Z_RLE.) */ local block_state deflate_rle(s, flush) deflate_state *s; int flush; { int bflush; /* set if current block must be flushed */ uInt run; /* length of run */ uInt max; /* maximum length of run */ uInt prev; /* byte at distance one to match */ Bytef *scan; /* scan for end of run */ for (;;) { /* Make sure that we always have enough lookahead, except * at the end of the input file. We need MAX_MATCH bytes * for the longest encodable run. */ if (s->lookahead < MAX_MATCH) { fill_window(s); if (s->lookahead < MAX_MATCH && flush == Z_NO_FLUSH) { return need_more; } if (s->lookahead == 0) break; /* flush the current block */ } /* See how many times the previous byte repeats */ run = 0; if (s->strstart > 0) { /* if there is a previous byte, that is */ max = s->lookahead < MAX_MATCH ? s->lookahead : MAX_MATCH; scan = s->window + s->strstart - 1; prev = *scan++; do { if (*scan++ != prev) break; } while (++run < max); } /* Emit match if have run of MIN_MATCH or longer, else emit literal */ if (run >= MIN_MATCH) { check_match(s, s->strstart, s->strstart - 1, run); _tr_tally_dist(s, 1, run - MIN_MATCH, bflush); s->lookahead -= run; s->strstart += run; } else { /* No match, output a literal byte */ Tracevv((stderr,"%c", s->window[s->strstart])); _tr_tally_lit (s, s->window[s->strstart], bflush); s->lookahead--; s->strstart++; } if (bflush) FLUSH_BLOCK(s, 0); } FLUSH_BLOCK(s, flush == Z_FINISH); return flush == Z_FINISH ? finish_done : block_done; } #endif instead-1.9.1/src/zlib/zlib.h000644 001751 001751 00000203731 12161555570 016330 0ustar00peterpeter000000 000000 /* zlib.h -- interface of the 'zlib' general purpose compression library version 1.2.3, July 18th, 2005 Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Jean-loup Gailly Mark Adler jloup@gzip.org madler@alumni.caltech.edu The data format used by the zlib library is described by RFCs (Request for Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). */ #ifndef ZLIB_H #define ZLIB_H #include "zconf.h" #ifdef __cplusplus extern "C" { #endif #define ZLIB_VERSION "1.2.3" #define ZLIB_VERNUM 0x1230 /* The 'zlib' compression library provides in-memory compression and decompression functions, including integrity checks of the uncompressed data. This version of the library supports only one compression method (deflation) but other algorithms will be added later and will have the same stream interface. Compression can be done in a single step if the buffers are large enough (for example if an input file is mmap'ed), or can be done by repeated calls of the compression function. In the latter case, the application must provide more input and/or consume the output (providing more output space) before each call. The compressed data format used by default by the in-memory functions is the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped around a deflate stream, which is itself documented in RFC 1951. The library also supports reading and writing files in gzip (.gz) format with an interface similar to that of stdio using the functions that start with "gz". The gzip format is different from the zlib format. gzip is a gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. This library can optionally read and write gzip streams in memory as well. The zlib format was designed to be compact and fast for use in memory and on communications channels. The gzip format was designed for single- file compression on file systems, has a larger header than zlib to maintain directory information, and uses a different, slower check method than zlib. The library does not install any signal handler. The decoder checks the consistency of the compressed data, so the library should never crash even in case of corrupted input. */ typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); typedef void (*free_func) OF((voidpf opaque, voidpf address)); struct internal_state; typedef struct z_stream_s { Bytef *next_in; /* next input byte */ uInt avail_in; /* number of bytes available at next_in */ uLong total_in; /* total nb of input bytes read so far */ Bytef *next_out; /* next output byte should be put there */ uInt avail_out; /* remaining free space at next_out */ uLong total_out; /* total nb of bytes output so far */ char *msg; /* last error message, NULL if no error */ struct internal_state FAR *state; /* not visible by applications */ alloc_func zalloc; /* used to allocate the internal state */ free_func zfree; /* used to free the internal state */ voidpf opaque; /* private data object passed to zalloc and zfree */ int data_type; /* best guess about the data type: binary or text */ uLong adler; /* adler32 value of the uncompressed data */ uLong reserved; /* reserved for future use */ } z_stream; typedef z_stream FAR *z_streamp; /* gzip header information passed to and from zlib routines. See RFC 1952 for more details on the meanings of these fields. */ typedef struct gz_header_s { int text; /* true if compressed data believed to be text */ uLong time; /* modification time */ int xflags; /* extra flags (not used when writing a gzip file) */ int os; /* operating system */ Bytef *extra; /* pointer to extra field or Z_NULL if none */ uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ uInt extra_max; /* space at extra (only when reading header) */ Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ uInt name_max; /* space at name (only when reading header) */ Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ uInt comm_max; /* space at comment (only when reading header) */ int hcrc; /* true if there was or will be a header crc */ int done; /* true when done reading gzip header (not used when writing a gzip file) */ } gz_header; typedef gz_header FAR *gz_headerp; /* The application must update next_in and avail_in when avail_in has dropped to zero. It must update next_out and avail_out when avail_out has dropped to zero. The application must initialize zalloc, zfree and opaque before calling the init function. All other fields are set by the compression library and must not be updated by the application. The opaque value provided by the application will be passed as the first parameter for calls of zalloc and zfree. This can be useful for custom memory management. The compression library attaches no meaning to the opaque value. zalloc must return Z_NULL if there is not enough memory for the object. If zlib is used in a multi-threaded application, zalloc and zfree must be thread safe. On 16-bit systems, the functions zalloc and zfree must be able to allocate exactly 65536 bytes, but will not be required to allocate more than this if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers returned by zalloc for objects of exactly 65536 bytes *must* have their offset normalized to zero. The default allocation function provided by this library ensures this (see zutil.c). To reduce memory requirements and avoid any allocation of 64K objects, at the expense of compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h). The fields total_in and total_out can be used for statistics or progress reports. After compression, total_in holds the total size of the uncompressed data and may be saved for use in the decompressor (particularly if the decompressor wants to decompress everything in a single step). */ /* constants */ #define Z_NO_FLUSH 0 #define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */ #define Z_SYNC_FLUSH 2 #define Z_FULL_FLUSH 3 #define Z_FINISH 4 #define Z_BLOCK 5 /* Allowed flush values; see deflate() and inflate() below for details */ #define Z_OK 0 #define Z_STREAM_END 1 #define Z_NEED_DICT 2 #define Z_ERRNO (-1) #define Z_STREAM_ERROR (-2) #define Z_DATA_ERROR (-3) #define Z_MEM_ERROR (-4) #define Z_BUF_ERROR (-5) #define Z_VERSION_ERROR (-6) /* Return codes for the compression/decompression functions. Negative * values are errors, positive values are used for special but normal events. */ #define Z_NO_COMPRESSION 0 #define Z_BEST_SPEED 1 #define Z_BEST_COMPRESSION 9 #define Z_DEFAULT_COMPRESSION (-1) /* compression levels */ #define Z_FILTERED 1 #define Z_HUFFMAN_ONLY 2 #define Z_RLE 3 #define Z_FIXED 4 #define Z_DEFAULT_STRATEGY 0 /* compression strategy; see deflateInit2() below for details */ #define Z_BINARY 0 #define Z_TEXT 1 #define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ #define Z_UNKNOWN 2 /* Possible values of the data_type field (though see inflate()) */ #define Z_DEFLATED 8 /* The deflate compression method (the only one supported in this version) */ #define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ #define zlib_version zlibVersion() /* for compatibility with versions < 1.0.2 */ /* basic functions */ ZEXTERN const char * ZEXPORT zlibVersion OF((void)); /* The application can compare zlibVersion and ZLIB_VERSION for consistency. If the first character differs, the library code actually used is not compatible with the zlib.h header file used by the application. This check is automatically made by deflateInit and inflateInit. */ /* ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); Initializes the internal stream state for compression. The fields zalloc, zfree and opaque must be initialized before by the caller. If zalloc and zfree are set to Z_NULL, deflateInit updates them to use default allocation functions. The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: 1 gives best speed, 9 gives best compression, 0 gives no compression at all (the input data is simply copied a block at a time). Z_DEFAULT_COMPRESSION requests a default compromise between speed and compression (currently equivalent to level 6). deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_STREAM_ERROR if level is not a valid compression level, Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible with the version assumed by the caller (ZLIB_VERSION). msg is set to null if there is no error message. deflateInit does not perform any compression: this will be done by deflate(). */ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); /* deflate compresses as much data as possible, and stops when the input buffer becomes empty or the output buffer becomes full. It may introduce some output latency (reading input without producing any output) except when forced to flush. The detailed semantics are as follows. deflate performs one or both of the following actions: - Compress more input starting at next_in and update next_in and avail_in accordingly. If not all input can be processed (because there is not enough room in the output buffer), next_in and avail_in are updated and processing will resume at this point for the next call of deflate(). - Provide more output starting at next_out and update next_out and avail_out accordingly. This action is forced if the parameter flush is non zero. Forcing flush frequently degrades the compression ratio, so this parameter should be set only when necessary (in interactive applications). Some output may be provided even if flush is not set. Before the call of deflate(), the application should ensure that at least one of the actions is possible, by providing more input and/or consuming more output, and updating avail_in or avail_out accordingly; avail_out should never be zero before the call. The application can consume the compressed output when it wants, for example when the output buffer is full (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK and with zero avail_out, it must be called again after making room in the output buffer because there might be more output pending. Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to decide how much data to accumualte before producing output, in order to maximize compression. If the parameter flush is set to Z_SYNC_FLUSH, all pending output is flushed to the output buffer and the output is aligned on a byte boundary, so that the decompressor can get all input data available so far. (In particular avail_in is zero after the call if enough output space has been provided before the call.) Flushing may degrade compression for some compression algorithms and so it should be used only when necessary. If flush is set to Z_FULL_FLUSH, all output is flushed as with Z_SYNC_FLUSH, and the compression state is reset so that decompression can restart from this point if previous compressed data has been damaged or if random access is desired. Using Z_FULL_FLUSH too often can seriously degrade compression. If deflate returns with avail_out == 0, this function must be called again with the same value of the flush parameter and more output space (updated avail_out), until the flush is complete (deflate returns with non-zero avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that avail_out is greater than six to avoid repeated flush markers due to avail_out == 0 on return. If the parameter flush is set to Z_FINISH, pending input is processed, pending output is flushed and deflate returns with Z_STREAM_END if there was enough output space; if deflate returns with Z_OK, this function must be called again with Z_FINISH and more output space (updated avail_out) but no more input data, until it returns with Z_STREAM_END or an error. After deflate has returned Z_STREAM_END, the only possible operations on the stream are deflateReset or deflateEnd. Z_FINISH can be used immediately after deflateInit if all the compression is to be done in a single step. In this case, avail_out must be at least the value returned by deflateBound (see below). If deflate does not return Z_STREAM_END, then it must be called again as described above. deflate() sets strm->adler to the adler32 checksum of all input read so far (that is, total_in bytes). deflate() may update strm->data_type if it can make a good guess about the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered binary. This field is only for information purposes and does not affect the compression algorithm in any manner. deflate() returns Z_OK if some progress has been made (more input processed or more output produced), Z_STREAM_END if all input has been consumed and all output has been produced (only when flush is set to Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not fatal, and deflate() can be called again with more input and more output space to continue compressing. */ ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); /* All dynamically allocated data structures for this stream are freed. This function discards any unprocessed input and does not flush any pending output. deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state was inconsistent, Z_DATA_ERROR if the stream was freed prematurely (some input or output was discarded). In the error case, msg may be set but then points to a static string (which must not be deallocated). */ /* ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); Initializes the internal stream state for decompression. The fields next_in, avail_in, zalloc, zfree and opaque must be initialized before by the caller. If next_in is not Z_NULL and avail_in is large enough (the exact value depends on the compression method), inflateInit determines the compression method from the zlib header and allocates all data structures accordingly; otherwise the allocation will be deferred to the first call of inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to use default allocation functions. inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_VERSION_ERROR if the zlib library version is incompatible with the version assumed by the caller. msg is set to null if there is no error message. inflateInit does not perform any decompression apart from reading the zlib header if present: this will be done by inflate(). (So next_in and avail_in may be modified, but next_out and avail_out are unchanged.) */ ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); /* inflate decompresses as much data as possible, and stops when the input buffer becomes empty or the output buffer becomes full. It may introduce some output latency (reading input without producing any output) except when forced to flush. The detailed semantics are as follows. inflate performs one or both of the following actions: - Decompress more input starting at next_in and update next_in and avail_in accordingly. If not all input can be processed (because there is not enough room in the output buffer), next_in is updated and processing will resume at this point for the next call of inflate(). - Provide more output starting at next_out and update next_out and avail_out accordingly. inflate() provides as much output as possible, until there is no more input data or no more space in the output buffer (see below about the flush parameter). Before the call of inflate(), the application should ensure that at least one of the actions is possible, by providing more input and/or consuming more output, and updating the next_* and avail_* values accordingly. The application can consume the uncompressed output when it wants, for example when the output buffer is full (avail_out == 0), or after each call of inflate(). If inflate returns Z_OK and with zero avail_out, it must be called again after making room in the output buffer because there might be more output pending. The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH, or Z_BLOCK. Z_SYNC_FLUSH requests that inflate() flush as much output as possible to the output buffer. Z_BLOCK requests that inflate() stop if and when it gets to the next deflate block boundary. When decoding the zlib or gzip format, this will cause inflate() to return immediately after the header and before the first block. When doing a raw inflate, inflate() will go ahead and process the first block, and will return when it gets to the end of that block, or when it runs out of data. The Z_BLOCK option assists in appending to or combining deflate streams. Also to assist in this, on return inflate() will set strm->data_type to the number of unused bits in the last byte taken from strm->next_in, plus 64 if inflate() is currently decoding the last block in the deflate stream, plus 128 if inflate() returned immediately after decoding an end-of-block code or decoding the complete header up to just before the first byte of the deflate stream. The end-of-block will not be indicated until all of the uncompressed data from that block has been written to strm->next_out. The number of unused bits may in general be greater than seven, except when bit 7 of data_type is set, in which case the number of unused bits will be less than eight. inflate() should normally be called until it returns Z_STREAM_END or an error. However if all decompression is to be performed in a single step (a single call of inflate), the parameter flush should be set to Z_FINISH. In this case all pending input is processed and all pending output is flushed; avail_out must be large enough to hold all the uncompressed data. (The size of the uncompressed data may have been saved by the compressor for this purpose.) The next operation on this stream must be inflateEnd to deallocate the decompression state. The use of Z_FINISH is never required, but can be used to inform inflate that a faster approach may be used for the single inflate() call. In this implementation, inflate() always flushes as much output as possible to the output buffer, and always uses the faster approach on the first call. So the only effect of the flush parameter in this implementation is on the return value of inflate(), as noted below, or when it returns early because Z_BLOCK is used. If a preset dictionary is needed after this call (see inflateSetDictionary below), inflate sets strm->adler to the adler32 checksum of the dictionary chosen by the compressor and returns Z_NEED_DICT; otherwise it sets strm->adler to the adler32 checksum of all output produced so far (that is, total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described below. At the end of the stream, inflate() checks that its computed adler32 checksum is equal to that saved by the compressor and returns Z_STREAM_END only if the checksum is correct. inflate() will decompress and check either zlib-wrapped or gzip-wrapped deflate data. The header type is detected automatically. Any information contained in the gzip header is not retained, so applications that need that information should instead use raw inflate, see inflateInit2() below, or inflateBack() and perform their own processing of the gzip header and trailer. inflate() returns Z_OK if some progress has been made (more input processed or more output produced), Z_STREAM_END if the end of the compressed data has been reached and all uncompressed output has been produced, Z_NEED_DICT if a preset dictionary is needed at this point, Z_DATA_ERROR if the input data was corrupted (input stream not conforming to the zlib format or incorrect check value), Z_STREAM_ERROR if the stream structure was inconsistent (for example if next_in or next_out was NULL), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR if no progress is possible or if there was not enough room in the output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and inflate() can be called again with more input and more output space to continue decompressing. If Z_DATA_ERROR is returned, the application may then call inflateSync() to look for a good compression block if a partial recovery of the data is desired. */ ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); /* All dynamically allocated data structures for this stream are freed. This function discards any unprocessed input and does not flush any pending output. inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state was inconsistent. In the error case, msg may be set but then points to a static string (which must not be deallocated). */ /* Advanced functions */ /* The following functions are needed only in some special applications. */ /* ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, int level, int method, int windowBits, int memLevel, int strategy)); This is another version of deflateInit with more compression options. The fields next_in, zalloc, zfree and opaque must be initialized before by the caller. The method parameter is the compression method. It must be Z_DEFLATED in this version of the library. The windowBits parameter is the base two logarithm of the window size (the size of the history buffer). It should be in the range 8..15 for this version of the library. Larger values of this parameter result in better compression at the expense of memory usage. The default value is 15 if deflateInit is used instead. windowBits can also be -8..-15 for raw deflate. In this case, -windowBits determines the window size. deflate() will then generate raw deflate data with no zlib header or trailer, and will not compute an adler32 check value. windowBits can also be greater than 15 for optional gzip encoding. Add 16 to windowBits to write a simple gzip header and trailer around the compressed data instead of a zlib wrapper. The gzip header will have no file name, no extra data, no comment, no modification time (set to zero), no header crc, and the operating system will be set to 255 (unknown). If a gzip stream is being written, strm->adler is a crc32 instead of an adler32. The memLevel parameter specifies how much memory should be allocated for the internal compression state. memLevel=1 uses minimum memory but is slow and reduces compression ratio; memLevel=9 uses maximum memory for optimal speed. The default value is 8. See zconf.h for total memory usage as a function of windowBits and memLevel. The strategy parameter is used to tune the compression algorithm. Use the value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no string match), or Z_RLE to limit match distances to one (run-length encoding). Filtered data consists mostly of small values with a somewhat random distribution. In this case, the compression algorithm is tuned to compress them better. The effect of Z_FILTERED is to force more Huffman coding and less string matching; it is somewhat intermediate between Z_DEFAULT and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The strategy parameter only affects the compression ratio but not the correctness of the compressed output even if it is not set appropriately. Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler decoder for special applications. deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid method). msg is set to null if there is no error message. deflateInit2 does not perform any compression: this will be done by deflate(). */ ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, const Bytef *dictionary, uInt dictLength)); /* Initializes the compression dictionary from the given byte sequence without producing any compressed output. This function must be called immediately after deflateInit, deflateInit2 or deflateReset, before any call of deflate. The compressor and decompressor must use exactly the same dictionary (see inflateSetDictionary). The dictionary should consist of strings (byte sequences) that are likely to be encountered later in the data to be compressed, with the most commonly used strings preferably put towards the end of the dictionary. Using a dictionary is most useful when the data to be compressed is short and can be predicted with good accuracy; the data can then be compressed better than with the default empty dictionary. Depending on the size of the compression data structures selected by deflateInit or deflateInit2, a part of the dictionary may in effect be discarded, for example if the dictionary is larger than the window size in deflate or deflate2. Thus the strings most likely to be useful should be put at the end of the dictionary, not at the front. In addition, the current implementation of deflate will use at most the window size minus 262 bytes of the provided dictionary. Upon return of this function, strm->adler is set to the adler32 value of the dictionary; the decompressor may later use this value to determine which dictionary has been used by the compressor. (The adler32 value applies to the whole dictionary even if only a subset of the dictionary is actually used by the compressor.) If a raw deflate was requested, then the adler32 value is not computed and strm->adler is not set. deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a parameter is invalid (such as NULL dictionary) or the stream state is inconsistent (for example if deflate has already been called for this stream or if the compression method is bsort). deflateSetDictionary does not perform any compression: this will be done by deflate(). */ ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, z_streamp source)); /* Sets the destination stream as a complete copy of the source stream. This function can be useful when several compression strategies will be tried, for example when there are several ways of pre-processing the input data with a filter. The streams that will be discarded should then be freed by calling deflateEnd. Note that deflateCopy duplicates the internal compression state which can be quite large, so this strategy is slow and can consume lots of memory. deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_STREAM_ERROR if the source stream state was inconsistent (such as zalloc being NULL). msg is left unchanged in both source and destination. */ ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); /* This function is equivalent to deflateEnd followed by deflateInit, but does not free and reallocate all the internal compression state. The stream will keep the same compression level and any other attributes that may have been set by deflateInit2. deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent (such as zalloc or state being NULL). */ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, int level, int strategy)); /* Dynamically update the compression level and compression strategy. The interpretation of level and strategy is as in deflateInit2. This can be used to switch between compression and straight copy of the input data, or to switch to a different kind of input data requiring a different strategy. If the compression level is changed, the input available so far is compressed with the old level (and may be flushed); the new level will take effect only at the next call of deflate(). Before the call of deflateParams, the stream state must be set as for a call of deflate(), since the currently available input may have to be compressed and flushed. In particular, strm->avail_out must be non-zero. deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR if strm->avail_out was zero. */ ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, int good_length, int max_lazy, int nice_length, int max_chain)); /* Fine tune deflate's internal compression parameters. This should only be used by someone who understands the algorithm used by zlib's deflate for searching for the best matching string, and even then only by the most fanatic optimizer trying to squeeze out the last compressed bit for their specific input data. Read the deflate.c source code for the meaning of the max_lazy, good_length, nice_length, and max_chain parameters. deflateTune() can be called after deflateInit() or deflateInit2(), and returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. */ ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, uLong sourceLen)); /* deflateBound() returns an upper bound on the compressed size after deflation of sourceLen bytes. It must be called after deflateInit() or deflateInit2(). This would be used to allocate an output buffer for deflation in a single pass, and so would be called before deflate(). */ ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, int bits, int value)); /* deflatePrime() inserts bits in the deflate output stream. The intent is that this function is used to start off the deflate output with the bits leftover from a previous deflate stream when appending to it. As such, this function can only be used for raw deflate, and must be used before the first deflate() call after a deflateInit2() or deflateReset(). bits must be less than or equal to 16, and that many of the least significant bits of value will be inserted in the output. deflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent. */ ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, gz_headerp head)); /* deflateSetHeader() provides gzip header information for when a gzip stream is requested by deflateInit2(). deflateSetHeader() may be called after deflateInit2() or deflateReset() and before the first call of deflate(). The text, time, os, extra field, name, and comment information in the provided gz_header structure are written to the gzip header (xflag is ignored -- the extra flags are set according to the compression level). The caller must assure that, if not Z_NULL, name and comment are terminated with a zero byte, and that if extra is not Z_NULL, that extra_len bytes are available there. If hcrc is true, a gzip header crc is included. Note that the current versions of the command-line version of gzip (up through version 1.3.x) do not support header crc's, and will report that it is a "multi-part gzip file" and give up. If deflateSetHeader is not used, the default gzip header has text false, the time set to zero, and os set to 255, with no extra, name, or comment fields. The gzip header is returned to the default state by deflateReset(). deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent. */ /* ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, int windowBits)); This is another version of inflateInit with an extra parameter. The fields next_in, avail_in, zalloc, zfree and opaque must be initialized before by the caller. The windowBits parameter is the base two logarithm of the maximum window size (the size of the history buffer). It should be in the range 8..15 for this version of the library. The default value is 15 if inflateInit is used instead. windowBits must be greater than or equal to the windowBits value provided to deflateInit2() while compressing, or it must be equal to 15 if deflateInit2() was not used. If a compressed stream with a larger window size is given as input, inflate() will return with the error code Z_DATA_ERROR instead of trying to allocate a larger window. windowBits can also be -8..-15 for raw inflate. In this case, -windowBits determines the window size. inflate() will then process raw deflate data, not looking for a zlib or gzip header, not generating a check value, and not looking for any check values for comparison at the end of the stream. This is for use with other formats that use the deflate compressed data format such as zip. Those formats provide their own check values. If a custom format is developed using the raw deflate format for compressed data, it is recommended that a check value such as an adler32 or a crc32 be applied to the uncompressed data as is done in the zlib, gzip, and zip formats. For most applications, the zlib format should be used as is. Note that comments above on the use in deflateInit2() applies to the magnitude of windowBits. windowBits can also be greater than 15 for optional gzip decoding. Add 32 to windowBits to enable zlib and gzip decoding with automatic header detection, or add 16 to decode only the gzip format (the zlib format will return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a crc32 instead of an adler32. inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_STREAM_ERROR if a parameter is invalid (such as a null strm). msg is set to null if there is no error message. inflateInit2 does not perform any decompression apart from reading the zlib header if present: this will be done by inflate(). (So next_in and avail_in may be modified, but next_out and avail_out are unchanged.) */ ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, const Bytef *dictionary, uInt dictLength)); /* Initializes the decompression dictionary from the given uncompressed byte sequence. This function must be called immediately after a call of inflate, if that call returned Z_NEED_DICT. The dictionary chosen by the compressor can be determined from the adler32 value returned by that call of inflate. The compressor and decompressor must use exactly the same dictionary (see deflateSetDictionary). For raw inflate, this function can be called immediately after inflateInit2() or inflateReset() and before any call of inflate() to set the dictionary. The application must insure that the dictionary that was used for compression is provided. inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a parameter is invalid (such as NULL dictionary) or the stream state is inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the expected one (incorrect adler32 value). inflateSetDictionary does not perform any decompression: this will be done by subsequent calls of inflate(). */ ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); /* Skips invalid compressed data until a full flush point (see above the description of deflate with Z_FULL_FLUSH) can be found, or until all available input is skipped. No output is provided. inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point has been found, or Z_STREAM_ERROR if the stream structure was inconsistent. In the success case, the application may save the current current value of total_in which indicates where valid compressed data was found. In the error case, the application may repeatedly call inflateSync, providing more input each time, until success or end of the input data. */ ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, z_streamp source)); /* Sets the destination stream as a complete copy of the source stream. This function can be useful when randomly accessing a large stream. The first pass through the stream can periodically record the inflate state, allowing restarting inflate at those points when randomly accessing the stream. inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_STREAM_ERROR if the source stream state was inconsistent (such as zalloc being NULL). msg is left unchanged in both source and destination. */ ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); /* This function is equivalent to inflateEnd followed by inflateInit, but does not free and reallocate all the internal decompression state. The stream will keep attributes that may have been set by inflateInit2. inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent (such as zalloc or state being NULL). */ ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, int bits, int value)); /* This function inserts bits in the inflate input stream. The intent is that this function is used to start inflating at a bit position in the middle of a byte. The provided bits will be used before any bytes are used from next_in. This function should only be used with raw inflate, and should be used before the first inflate() call after inflateInit2() or inflateReset(). bits must be less than or equal to 16, and that many of the least significant bits of value will be inserted in the input. inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent. */ ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, gz_headerp head)); /* inflateGetHeader() requests that gzip header information be stored in the provided gz_header structure. inflateGetHeader() may be called after inflateInit2() or inflateReset(), and before the first call of inflate(). As inflate() processes the gzip stream, head->done is zero until the header is completed, at which time head->done is set to one. If a zlib stream is being decoded, then head->done is set to -1 to indicate that there will be no gzip header information forthcoming. Note that Z_BLOCK can be used to force inflate() to return immediately after header processing is complete and before any actual data is decompressed. The text, time, xflags, and os fields are filled in with the gzip header contents. hcrc is set to true if there is a header CRC. (The header CRC was valid if done is set to one.) If extra is not Z_NULL, then extra_max contains the maximum number of bytes to write to extra. Once done is true, extra_len contains the actual extra field length, and extra contains the extra field, or that field truncated if extra_max is less than extra_len. If name is not Z_NULL, then up to name_max characters are written there, terminated with a zero unless the length is greater than name_max. If comment is not Z_NULL, then up to comm_max characters are written there, terminated with a zero unless the length is greater than comm_max. When any of extra, name, or comment are not Z_NULL and the respective field is not present in the header, then that field is set to Z_NULL to signal its absence. This allows the use of deflateSetHeader() with the returned structure to duplicate the header. However if those fields are set to allocated memory, then the application will need to save those pointers elsewhere so that they can be eventually freed. If inflateGetHeader is not used, then the header information is simply discarded. The header is always checked for validity, including the header CRC if present. inflateReset() will reset the process to discard the header information. The application would need to call inflateGetHeader() again to retrieve the header from the next gzip stream. inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent. */ /* ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, unsigned char FAR *window)); Initialize the internal stream state for decompression using inflateBack() calls. The fields zalloc, zfree and opaque in strm must be initialized before the call. If zalloc and zfree are Z_NULL, then the default library- derived memory allocation routines are used. windowBits is the base two logarithm of the window size, in the range 8..15. window is a caller supplied buffer of that size. Except for special applications where it is assured that deflate was used with small window sizes, windowBits must be 15 and a 32K byte window must be supplied to be able to decompress general deflate streams. See inflateBack() for the usage of these routines. inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of the paramaters are invalid, Z_MEM_ERROR if the internal state could not be allocated, or Z_VERSION_ERROR if the version of the library does not match the version of the header file. */ typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *)); typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, in_func in, void FAR *in_desc, out_func out, void FAR *out_desc)); /* inflateBack() does a raw inflate with a single call using a call-back interface for input and output. This is more efficient than inflate() for file i/o applications in that it avoids copying between the output and the sliding window by simply making the window itself the output buffer. This function trusts the application to not change the output buffer passed by the output function, at least until inflateBack() returns. inflateBackInit() must be called first to allocate the internal state and to initialize the state with the user-provided window buffer. inflateBack() may then be used multiple times to inflate a complete, raw deflate stream with each call. inflateBackEnd() is then called to free the allocated state. A raw deflate stream is one with no zlib or gzip header or trailer. This routine would normally be used in a utility that reads zip or gzip files and writes out uncompressed files. The utility would decode the header and process the trailer on its own, hence this routine expects only the raw deflate stream to decompress. This is different from the normal behavior of inflate(), which expects either a zlib or gzip header and trailer around the deflate stream. inflateBack() uses two subroutines supplied by the caller that are then called by inflateBack() for input and output. inflateBack() calls those routines until it reads a complete deflate stream and writes out all of the uncompressed data, or until it encounters an error. The function's parameters and return types are defined above in the in_func and out_func typedefs. inflateBack() will call in(in_desc, &buf) which should return the number of bytes of provided input, and a pointer to that input in buf. If there is no input available, in() must return zero--buf is ignored in that case--and inflateBack() will return a buffer error. inflateBack() will call out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() should return zero on success, or non-zero on failure. If out() returns non-zero, inflateBack() will return with an error. Neither in() nor out() are permitted to change the contents of the window provided to inflateBackInit(), which is also the buffer that out() uses to write from. The length written by out() will be at most the window size. Any non-zero amount of input may be provided by in(). For convenience, inflateBack() can be provided input on the first call by setting strm->next_in and strm->avail_in. If that input is exhausted, then in() will be called. Therefore strm->next_in must be initialized before calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in must also be initialized, and then if strm->avail_in is not zero, input will initially be taken from strm->next_in[0 .. strm->avail_in - 1]. The in_desc and out_desc parameters of inflateBack() is passed as the first parameter of in() and out() respectively when they are called. These descriptors can be optionally used to pass any information that the caller- supplied in() and out() functions need to do their job. On return, inflateBack() will set strm->next_in and strm->avail_in to pass back any unused input that was provided by the last in() call. The return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR if in() or out() returned an error, Z_DATA_ERROR if there was a format error in the deflate stream (in which case strm->msg is set to indicate the nature of the error), or Z_STREAM_ERROR if the stream was not properly initialized. In the case of Z_BUF_ERROR, an input or output error can be distinguished using strm->next_in which will be Z_NULL only if in() returned an error. If strm->next is not Z_NULL, then the Z_BUF_ERROR was due to out() returning non-zero. (in() will always be called before out(), so strm->next_in is assured to be defined if out() returns non-zero.) Note that inflateBack() cannot return Z_OK. */ ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); /* All memory allocated by inflateBackInit() is freed. inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream state was inconsistent. */ ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); /* Return flags indicating compile-time options. Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: 1.0: size of uInt 3.2: size of uLong 5.4: size of voidpf (pointer) 7.6: size of z_off_t Compiler, assembler, and debug options: 8: DEBUG 9: ASMV or ASMINF -- use ASM code 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention 11: 0 (reserved) One-time table building (smaller code, but not thread-safe if true): 12: BUILDFIXED -- build static block decoding tables when needed 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed 14,15: 0 (reserved) Library content (indicates missing functionality): 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking deflate code when not needed) 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect and decode gzip streams (to avoid linking crc code) 18-19: 0 (reserved) Operation variations (changes in library functionality): 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate 21: FASTEST -- deflate algorithm with only one, lowest compression level 22,23: 0 (reserved) The sprintf variant used by gzprintf (zero is best): 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! 26: 0 = returns value, 1 = void -- 1 means inferred string length returned Remainder: 27-31: 0 (reserved) */ /* utility functions */ /* The following utility functions are implemented on top of the basic stream-oriented functions. To simplify the interface, some default options are assumed (compression level and memory usage, standard memory allocation functions). The source code of these utility functions can easily be modified if you need special options. */ ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen)); /* Compresses the source buffer into the destination buffer. sourceLen is the byte length of the source buffer. Upon entry, destLen is the total size of the destination buffer, which must be at least the value returned by compressBound(sourceLen). Upon exit, destLen is the actual size of the compressed buffer. This function can be used to compress a whole file at once if the input file is mmap'ed. compress returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR if there was not enough room in the output buffer. */ ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen, int level)); /* Compresses the source buffer into the destination buffer. The level parameter has the same meaning as in deflateInit. sourceLen is the byte length of the source buffer. Upon entry, destLen is the total size of the destination buffer, which must be at least the value returned by compressBound(sourceLen). Upon exit, destLen is the actual size of the compressed buffer. compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR if there was not enough room in the output buffer, Z_STREAM_ERROR if the level parameter is invalid. */ ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); /* compressBound() returns an upper bound on the compressed size after compress() or compress2() on sourceLen bytes. It would be used before a compress() or compress2() call to allocate the destination buffer. */ ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen)); /* Decompresses the source buffer into the destination buffer. sourceLen is the byte length of the source buffer. Upon entry, destLen is the total size of the destination buffer, which must be large enough to hold the entire uncompressed data. (The size of the uncompressed data must have been saved previously by the compressor and transmitted to the decompressor by some mechanism outside the scope of this compression library.) Upon exit, destLen is the actual size of the compressed buffer. This function can be used to decompress a whole file at once if the input file is mmap'ed. uncompress returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR if there was not enough room in the output buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. */ typedef voidp gzFile; ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); /* Opens a gzip (.gz) file for reading or writing. The mode parameter is as in fopen ("rb" or "wb") but can also include a compression level ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman only compression as in "wb1h", or 'R' for run-length encoding as in "wb1R". (See the description of deflateInit2 for more information about the strategy parameter.) gzopen can be used to read a file which is not in gzip format; in this case gzread will directly read from the file without decompression. gzopen returns NULL if the file could not be opened or if there was insufficient memory to allocate the (de)compression state; errno can be checked to distinguish the two cases (if errno is zero, the zlib error is Z_MEM_ERROR). */ ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); /* gzdopen() associates a gzFile with the file descriptor fd. File descriptors are obtained from calls like open, dup, creat, pipe or fileno (in the file has been previously opened with fopen). The mode parameter is as in gzopen. The next call of gzclose on the returned gzFile will also close the file descriptor fd, just like fclose(fdopen(fd), mode) closes the file descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode). gzdopen returns NULL if there was insufficient memory to allocate the (de)compression state. */ ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); /* Dynamically update the compression level or strategy. See the description of deflateInit2 for the meaning of these parameters. gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not opened for writing. */ ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); /* Reads the given number of uncompressed bytes from the compressed file. If the input file was not in gzip format, gzread copies the given number of bytes into the buffer. gzread returns the number of uncompressed bytes actually read (0 for end of file, -1 for error). */ ZEXTERN int ZEXPORT gzwrite OF((gzFile file, voidpc buf, unsigned len)); /* Writes the given number of uncompressed bytes into the compressed file. gzwrite returns the number of uncompressed bytes actually written (0 in case of error). */ ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...)); /* Converts, formats, and writes the args to the compressed file under control of the format string, as in fprintf. gzprintf returns the number of uncompressed bytes actually written (0 in case of error). The number of uncompressed bytes written is limited to 4095. The caller should assure that this limit is not exceeded. If it is exceeded, then gzprintf() will return return an error (0) with nothing written. In this case, there may also be a buffer overflow with unpredictable consequences, which is possible only if zlib was compiled with the insecure functions sprintf() or vsprintf() because the secure snprintf() or vsnprintf() functions were not available. */ ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); /* Writes the given null-terminated string to the compressed file, excluding the terminating null character. gzputs returns the number of characters written, or -1 in case of error. */ ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); /* Reads bytes from the compressed file until len-1 characters are read, or a newline character is read and transferred to buf, or an end-of-file condition is encountered. The string is then terminated with a null character. gzgets returns buf, or Z_NULL in case of error. */ ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); /* Writes c, converted to an unsigned char, into the compressed file. gzputc returns the value that was written, or -1 in case of error. */ ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); /* Reads one byte from the compressed file. gzgetc returns this byte or -1 in case of end of file or error. */ ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); /* Push one character back onto the stream to be read again later. Only one character of push-back is allowed. gzungetc() returns the character pushed, or -1 on failure. gzungetc() will fail if a character has been pushed but not read yet, or if c is -1. The pushed character will be discarded if the stream is repositioned with gzseek() or gzrewind(). */ ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); /* Flushes all pending output into the compressed file. The parameter flush is as in the deflate() function. The return value is the zlib error number (see function gzerror below). gzflush returns Z_OK if the flush parameter is Z_FINISH and all output could be flushed. gzflush should be called only when strictly necessary because it can degrade compression. */ ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, z_off_t offset, int whence)); /* Sets the starting position for the next gzread or gzwrite on the given compressed file. The offset represents a number of bytes in the uncompressed data stream. The whence parameter is defined as in lseek(2); the value SEEK_END is not supported. If the file is opened for reading, this function is emulated but can be extremely slow. If the file is opened for writing, only forward seeks are supported; gzseek then compresses a sequence of zeroes up to the new starting position. gzseek returns the resulting offset location as measured in bytes from the beginning of the uncompressed stream, or -1 in case of error, in particular if the file is opened for writing and the new starting position would be before the current position. */ ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); /* Rewinds the given file. This function is supported only for reading. gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) */ ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); /* Returns the starting position for the next gzread or gzwrite on the given compressed file. This position represents a number of bytes in the uncompressed data stream. gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) */ ZEXTERN int ZEXPORT gzeof OF((gzFile file)); /* Returns 1 when EOF has previously been detected reading the given input stream, otherwise zero. */ ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); /* Returns 1 if file is being read directly without decompression, otherwise zero. */ ZEXTERN int ZEXPORT gzclose OF((gzFile file)); /* Flushes all pending output if necessary, closes the compressed file and deallocates all the (de)compression state. The return value is the zlib error number (see function gzerror below). */ ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); /* Returns the error message for the last error which occurred on the given compressed file. errnum is set to zlib error number. If an error occurred in the file system and not in the compression library, errnum is set to Z_ERRNO and the application may consult errno to get the exact error code. */ ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); /* Clears the error and end-of-file flags for file. This is analogous to the clearerr() function in stdio. This is useful for continuing to read a gzip file that is being written concurrently. */ /* checksum functions */ /* These functions are not related to compression but are exported anyway because they might be useful in applications using the compression library. */ ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); /* Update a running Adler-32 checksum with the bytes buf[0..len-1] and return the updated checksum. If buf is NULL, this function returns the required initial value for the checksum. An Adler-32 checksum is almost as reliable as a CRC32 but can be computed much faster. Usage example: uLong adler = adler32(0L, Z_NULL, 0); while (read_buffer(buffer, length) != EOF) { adler = adler32(adler, buffer, length); } if (adler != original_adler) error(); */ ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, z_off_t len2)); /* Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. */ ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); /* Update a running CRC-32 with the bytes buf[0..len-1] and return the updated CRC-32. If buf is NULL, this function returns the required initial value for the for the crc. Pre- and post-conditioning (one's complement) is performed within this function so it shouldn't be done by the application. Usage example: uLong crc = crc32(0L, Z_NULL, 0); while (read_buffer(buffer, length) != EOF) { crc = crc32(crc, buffer, length); } if (crc != original_crc) error(); */ ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); /* Combine two CRC-32 check values into one. For two sequences of bytes, seq1 and seq2 with lengths len1 and len2, CRC-32 check values were calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and len2. */ /* various hacks, don't look :) */ /* deflateInit and inflateInit are macros to allow checking the zlib version * and the compiler's view of z_stream: */ ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, const char *version, int stream_size)); ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, const char *version, int stream_size)); ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, int windowBits, int memLevel, int strategy, const char *version, int stream_size)); ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, const char *version, int stream_size)); ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, unsigned char FAR *window, const char *version, int stream_size)); #define deflateInit(strm, level) \ deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream)) #define inflateInit(strm) \ inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream)) #define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ (strategy), ZLIB_VERSION, sizeof(z_stream)) #define inflateInit2(strm, windowBits) \ inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) #define inflateBackInit(strm, windowBits, window) \ inflateBackInit_((strm), (windowBits), (window), \ ZLIB_VERSION, sizeof(z_stream)) #if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) struct internal_state {int dummy;}; /* hack for buggy compilers */ #endif ZEXTERN const char * ZEXPORT zError OF((int)); ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp z)); ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void)); #ifdef __cplusplus } #endif #endif /* ZLIB_H */ instead-1.9.1/src/zlib/zutil.c000644 001751 001751 00000016436 12161555570 016536 0ustar00peterpeter000000 000000 /* zutil.c -- target dependent utility functions for the compression library * Copyright (C) 1995-2005 Jean-loup Gailly. * For conditions of distribution and use, see copyright notice in zlib.h */ /* @(#) $Id$ */ #include "zutil.h" #ifndef NO_DUMMY_DECL struct internal_state {int dummy;}; /* for buggy compilers */ #endif const char * const z_errmsg[10] = { "need dictionary", /* Z_NEED_DICT 2 */ "stream end", /* Z_STREAM_END 1 */ "", /* Z_OK 0 */ "file error", /* Z_ERRNO (-1) */ "stream error", /* Z_STREAM_ERROR (-2) */ "data error", /* Z_DATA_ERROR (-3) */ "insufficient memory", /* Z_MEM_ERROR (-4) */ "buffer error", /* Z_BUF_ERROR (-5) */ "incompatible version",/* Z_VERSION_ERROR (-6) */ ""}; const char * ZEXPORT zlibVersion() { return ZLIB_VERSION; } uLong ZEXPORT zlibCompileFlags() { uLong flags; flags = 0; switch (sizeof(uInt)) { case 2: break; case 4: flags += 1; break; case 8: flags += 2; break; default: flags += 3; } switch (sizeof(uLong)) { case 2: break; case 4: flags += 1 << 2; break; case 8: flags += 2 << 2; break; default: flags += 3 << 2; } switch (sizeof(voidpf)) { case 2: break; case 4: flags += 1 << 4; break; case 8: flags += 2 << 4; break; default: flags += 3 << 4; } switch (sizeof(z_off_t)) { case 2: break; case 4: flags += 1 << 6; break; case 8: flags += 2 << 6; break; default: flags += 3 << 6; } #ifdef DEBUG flags += 1 << 8; #endif #if defined(ASMV) || defined(ASMINF) flags += 1 << 9; #endif #ifdef ZLIB_WINAPI flags += 1 << 10; #endif #ifdef BUILDFIXED flags += 1 << 12; #endif #ifdef DYNAMIC_CRC_TABLE flags += 1 << 13; #endif #ifdef NO_GZCOMPRESS flags += 1L << 16; #endif #ifdef NO_GZIP flags += 1L << 17; #endif #ifdef PKZIP_BUG_WORKAROUND flags += 1L << 20; #endif #ifdef FASTEST flags += 1L << 21; #endif #ifdef STDC # ifdef NO_vsnprintf flags += 1L << 25; # ifdef HAS_vsprintf_void flags += 1L << 26; # endif # else # ifdef HAS_vsnprintf_void flags += 1L << 26; # endif # endif #else flags += 1L << 24; # ifdef NO_snprintf flags += 1L << 25; # ifdef HAS_sprintf_void flags += 1L << 26; # endif # else # ifdef HAS_snprintf_void flags += 1L << 26; # endif # endif #endif return flags; } #ifdef DEBUG # ifndef verbose # define verbose 0 # endif int z_verbose = verbose; void z_error (m) char *m; { fprintf(stderr, "%s\n", m); exit(1); } #endif /* exported to allow conversion of error code to string for compress() and * uncompress() */ const char * ZEXPORT zError(err) int err; { return ERR_MSG(err); } #if defined(_WIN32_WCE) /* The Microsoft C Run-Time Library for Windows CE doesn't have * errno. We define it as a global variable to simplify porting. * Its value is always 0 and should not be used. */ int errno = 0; #endif #ifndef HAVE_MEMCPY void zmemcpy(dest, source, len) Bytef* dest; const Bytef* source; uInt len; { if (len == 0) return; do { *dest++ = *source++; /* ??? to be unrolled */ } while (--len != 0); } int zmemcmp(s1, s2, len) const Bytef* s1; const Bytef* s2; uInt len; { uInt j; for (j = 0; j < len; j++) { if (s1[j] != s2[j]) return 2*(s1[j] > s2[j])-1; } return 0; } void zmemzero(dest, len) Bytef* dest; uInt len; { if (len == 0) return; do { *dest++ = 0; /* ??? to be unrolled */ } while (--len != 0); } #endif #ifdef SYS16BIT #ifdef __TURBOC__ /* Turbo C in 16-bit mode */ # define MY_ZCALLOC /* Turbo C malloc() does not allow dynamic allocation of 64K bytes * and farmalloc(64K) returns a pointer with an offset of 8, so we * must fix the pointer. Warning: the pointer must be put back to its * original form in order to free it, use zcfree(). */ #define MAX_PTR 10 /* 10*64K = 640K */ local int next_ptr = 0; typedef struct ptr_table_s { voidpf org_ptr; voidpf new_ptr; } ptr_table; local ptr_table table[MAX_PTR]; /* This table is used to remember the original form of pointers * to large buffers (64K). Such pointers are normalized with a zero offset. * Since MSDOS is not a preemptive multitasking OS, this table is not * protected from concurrent access. This hack doesn't work anyway on * a protected system like OS/2. Use Microsoft C instead. */ voidpf zcalloc (voidpf opaque, unsigned items, unsigned size) { voidpf buf = opaque; /* just to make some compilers happy */ ulg bsize = (ulg)items*size; /* If we allocate less than 65520 bytes, we assume that farmalloc * will return a usable pointer which doesn't have to be normalized. */ if (bsize < 65520L) { buf = farmalloc(bsize); if (*(ush*)&buf != 0) return buf; } else { buf = farmalloc(bsize + 16L); } if (buf == NULL || next_ptr >= MAX_PTR) return NULL; table[next_ptr].org_ptr = buf; /* Normalize the pointer to seg:0 */ *((ush*)&buf+1) += ((ush)((uch*)buf-0) + 15) >> 4; *(ush*)&buf = 0; table[next_ptr++].new_ptr = buf; return buf; } void zcfree (voidpf opaque, voidpf ptr) { int n; if (*(ush*)&ptr != 0) { /* object < 64K */ farfree(ptr); return; } /* Find the original pointer */ for (n = 0; n < next_ptr; n++) { if (ptr != table[n].new_ptr) continue; farfree(table[n].org_ptr); while (++n < next_ptr) { table[n-1] = table[n]; } next_ptr--; return; } ptr = opaque; /* just to make some compilers happy */ Assert(0, "zcfree: ptr not found"); } #endif /* __TURBOC__ */ #ifdef M_I86 /* Microsoft C in 16-bit mode */ # define MY_ZCALLOC #if (!defined(_MSC_VER) || (_MSC_VER <= 600)) # define _halloc halloc # define _hfree hfree #endif voidpf zcalloc (voidpf opaque, unsigned items, unsigned size) { if (opaque) opaque = 0; /* to make compiler happy */ return _halloc((long)items, size); } void zcfree (voidpf opaque, voidpf ptr) { if (opaque) opaque = 0; /* to make compiler happy */ _hfree(ptr); } #endif /* M_I86 */ #endif /* SYS16BIT */ #ifndef MY_ZCALLOC /* Any system without a special alloc function */ #ifndef STDC extern voidp malloc OF((uInt size)); extern voidp calloc OF((uInt items, uInt size)); extern void free OF((voidpf ptr)); #endif voidpf zcalloc (opaque, items, size) voidpf opaque; unsigned items; unsigned size; { if (opaque) items += size - size; /* make compiler happy */ return sizeof(uInt) > 2 ? (voidpf)malloc(items * size) : (voidpf)calloc(items, size); } void zcfree (opaque, ptr) voidpf opaque; voidpf ptr; { free(ptr); if (opaque) return; /* make compiler happy */ } #endif /* MY_ZCALLOC */ instead-1.9.1/src/zlib/gzio.c000644 001751 001751 00000076601 12161555570 016337 0ustar00peterpeter000000 000000 /* gzio.c -- IO on .gz files * Copyright (C) 1995-2005 Jean-loup Gailly. * For conditions of distribution and use, see copyright notice in zlib.h * * Compile this file with -DNO_GZCOMPRESS to avoid the compression code. */ /* @(#) $Id$ */ #include #include "zutil.h" #ifdef NO_DEFLATE /* for compatibility with old definition */ # define NO_GZCOMPRESS #endif #ifndef NO_DUMMY_DECL struct internal_state {int dummy;}; /* for buggy compilers */ #endif #ifndef Z_BUFSIZE # ifdef MAXSEG_64K # define Z_BUFSIZE 4096 /* minimize memory usage for 16-bit DOS */ # else # define Z_BUFSIZE 16384 # endif #endif #ifndef Z_PRINTF_BUFSIZE # define Z_PRINTF_BUFSIZE 4096 #endif #ifdef __MVS__ # pragma map (fdopen , "\174\174FDOPEN") FILE *fdopen(int, const char *); #endif #ifndef STDC extern voidp malloc OF((uInt size)); extern void free OF((voidpf ptr)); #endif #define ALLOC(size) malloc(size) #define TRYFREE(p) {if (p) free(p);} static int const gz_magic[2] = {0x1f, 0x8b}; /* gzip magic header */ /* gzip flag byte */ #define ASCII_FLAG 0x01 /* bit 0 set: file probably ascii text */ #define HEAD_CRC 0x02 /* bit 1 set: header CRC present */ #define EXTRA_FIELD 0x04 /* bit 2 set: extra field present */ #define ORIG_NAME 0x08 /* bit 3 set: original file name present */ #define COMMENT 0x10 /* bit 4 set: file comment present */ #define RESERVED 0xE0 /* bits 5..7: reserved */ typedef struct gz_stream { z_stream stream; int z_err; /* error code for last stream operation */ int z_eof; /* set if end of input file */ FILE *file; /* .gz file */ Byte *inbuf; /* input buffer */ Byte *outbuf; /* output buffer */ uLong crc; /* crc32 of uncompressed data */ char *msg; /* error message */ char *path; /* path name for debugging only */ int transparent; /* 1 if input file is not a .gz file */ char mode; /* 'w' or 'r' */ z_off_t start; /* start of compressed data in file (header skipped) */ z_off_t in; /* bytes into deflate or inflate */ z_off_t out; /* bytes out of deflate or inflate */ int back; /* one character push-back */ int last; /* true if push-back is last character */ } gz_stream; local gzFile gz_open OF((const char *path, const char *mode, int fd)); local int do_flush OF((gzFile file, int flush)); local int get_byte OF((gz_stream *s)); local void check_header OF((gz_stream *s)); local int destroy OF((gz_stream *s)); local void putLong OF((FILE *file, uLong x)); local uLong getLong OF((gz_stream *s)); /* =========================================================================== Opens a gzip (.gz) file for reading or writing. The mode parameter is as in fopen ("rb" or "wb"). The file is given either by file descriptor or path name (if fd == -1). gz_open returns NULL if the file could not be opened or if there was insufficient memory to allocate the (de)compression state; errno can be checked to distinguish the two cases (if errno is zero, the zlib error is Z_MEM_ERROR). */ local gzFile gz_open (path, mode, fd) const char *path; const char *mode; int fd; { int err; int level = Z_DEFAULT_COMPRESSION; /* compression level */ int strategy = Z_DEFAULT_STRATEGY; /* compression strategy */ char *p = (char*)mode; gz_stream *s; char fmode[80]; /* copy of mode, without the compression level */ char *m = fmode; if (!path || !mode) return Z_NULL; s = (gz_stream *)ALLOC(sizeof(gz_stream)); if (!s) return Z_NULL; s->stream.zalloc = (alloc_func)0; s->stream.zfree = (free_func)0; s->stream.opaque = (voidpf)0; s->stream.next_in = s->inbuf = Z_NULL; s->stream.next_out = s->outbuf = Z_NULL; s->stream.avail_in = s->stream.avail_out = 0; s->file = NULL; s->z_err = Z_OK; s->z_eof = 0; s->in = 0; s->out = 0; s->back = EOF; s->crc = crc32(0L, Z_NULL, 0); s->msg = NULL; s->transparent = 0; s->path = (char*)ALLOC(strlen(path)+1); if (s->path == NULL) { return destroy(s), (gzFile)Z_NULL; } strcpy(s->path, path); /* do this early for debugging */ s->mode = '\0'; do { if (*p == 'r') s->mode = 'r'; if (*p == 'w' || *p == 'a') s->mode = 'w'; if (*p >= '0' && *p <= '9') { level = *p - '0'; } else if (*p == 'f') { strategy = Z_FILTERED; } else if (*p == 'h') { strategy = Z_HUFFMAN_ONLY; } else if (*p == 'R') { strategy = Z_RLE; } else { *m++ = *p; /* copy the mode */ } } while (*p++ && m != fmode + sizeof(fmode)); if (s->mode == '\0') return destroy(s), (gzFile)Z_NULL; if (s->mode == 'w') { #ifdef NO_GZCOMPRESS err = Z_STREAM_ERROR; #else err = deflateInit2(&(s->stream), level, Z_DEFLATED, -MAX_WBITS, DEF_MEM_LEVEL, strategy); /* windowBits is passed < 0 to suppress zlib header */ s->stream.next_out = s->outbuf = (Byte*)ALLOC(Z_BUFSIZE); #endif if (err != Z_OK || s->outbuf == Z_NULL) { return destroy(s), (gzFile)Z_NULL; } } else { s->stream.next_in = s->inbuf = (Byte*)ALLOC(Z_BUFSIZE); err = inflateInit2(&(s->stream), -MAX_WBITS); /* windowBits is passed < 0 to tell that there is no zlib header. * Note that in this case inflate *requires* an extra "dummy" byte * after the compressed stream in order to complete decompression and * return Z_STREAM_END. Here the gzip CRC32 ensures that 4 bytes are * present after the compressed stream. */ if (err != Z_OK || s->inbuf == Z_NULL) { return destroy(s), (gzFile)Z_NULL; } } s->stream.avail_out = Z_BUFSIZE; errno = 0; s->file = fd < 0 ? F_OPEN(path, fmode) : (FILE*)fdopen(fd, fmode); if (s->file == NULL) { return destroy(s), (gzFile)Z_NULL; } if (s->mode == 'w') { /* Write a very simple .gz header: */ fprintf(s->file, "%c%c%c%c%c%c%c%c%c%c", gz_magic[0], gz_magic[1], Z_DEFLATED, 0 /*flags*/, 0,0,0,0 /*time*/, 0 /*xflags*/, OS_CODE); s->start = 10L; /* We use 10L instead of ftell(s->file) to because ftell causes an * fflush on some systems. This version of the library doesn't use * start anyway in write mode, so this initialization is not * necessary. */ } else { check_header(s); /* skip the .gz header */ s->start = ftell(s->file) - s->stream.avail_in; } return (gzFile)s; } /* =========================================================================== Opens a gzip (.gz) file for reading or writing. */ gzFile ZEXPORT gzopen (path, mode) const char *path; const char *mode; { return gz_open (path, mode, -1); } /* =========================================================================== Associate a gzFile with the file descriptor fd. fd is not dup'ed here to mimic the behavio(u)r of fdopen. */ gzFile ZEXPORT gzdopen (fd, mode) int fd; const char *mode; { char name[46]; /* allow for up to 128-bit integers */ if (fd < 0) return (gzFile)Z_NULL; sprintf(name, "", fd); /* for debugging */ return gz_open (name, mode, fd); } /* =========================================================================== * Update the compression level and strategy */ int ZEXPORT gzsetparams (file, level, strategy) gzFile file; int level; int strategy; { gz_stream *s = (gz_stream*)file; if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR; /* Make room to allow flushing */ if (s->stream.avail_out == 0) { s->stream.next_out = s->outbuf; if (fwrite(s->outbuf, 1, Z_BUFSIZE, s->file) != Z_BUFSIZE) { s->z_err = Z_ERRNO; } s->stream.avail_out = Z_BUFSIZE; } return deflateParams (&(s->stream), level, strategy); } /* =========================================================================== Read a byte from a gz_stream; update next_in and avail_in. Return EOF for end of file. IN assertion: the stream s has been sucessfully opened for reading. */ local int get_byte(s) gz_stream *s; { if (s->z_eof) return EOF; if (s->stream.avail_in == 0) { errno = 0; s->stream.avail_in = (uInt)fread(s->inbuf, 1, Z_BUFSIZE, s->file); if (s->stream.avail_in == 0) { s->z_eof = 1; if (ferror(s->file)) s->z_err = Z_ERRNO; return EOF; } s->stream.next_in = s->inbuf; } s->stream.avail_in--; return *(s->stream.next_in)++; } /* =========================================================================== Check the gzip header of a gz_stream opened for reading. Set the stream mode to transparent if the gzip magic header is not present; set s->err to Z_DATA_ERROR if the magic header is present but the rest of the header is incorrect. IN assertion: the stream s has already been created sucessfully; s->stream.avail_in is zero for the first time, but may be non-zero for concatenated .gz files. */ local void check_header(s) gz_stream *s; { int method; /* method byte */ int flags; /* flags byte */ uInt len; int c; /* Assure two bytes in the buffer so we can peek ahead -- handle case where first byte of header is at the end of the buffer after the last gzip segment */ len = s->stream.avail_in; if (len < 2) { if (len) s->inbuf[0] = s->stream.next_in[0]; errno = 0; len = (uInt)fread(s->inbuf + len, 1, Z_BUFSIZE >> len, s->file); if (len == 0 && ferror(s->file)) s->z_err = Z_ERRNO; s->stream.avail_in += len; s->stream.next_in = s->inbuf; if (s->stream.avail_in < 2) { s->transparent = s->stream.avail_in; return; } } /* Peek ahead to check the gzip magic header */ if (s->stream.next_in[0] != gz_magic[0] || s->stream.next_in[1] != gz_magic[1]) { s->transparent = 1; return; } s->stream.avail_in -= 2; s->stream.next_in += 2; /* Check the rest of the gzip header */ method = get_byte(s); flags = get_byte(s); if (method != Z_DEFLATED || (flags & RESERVED) != 0) { s->z_err = Z_DATA_ERROR; return; } /* Discard time, xflags and OS code: */ for (len = 0; len < 6; len++) (void)get_byte(s); if ((flags & EXTRA_FIELD) != 0) { /* skip the extra field */ len = (uInt)get_byte(s); len += ((uInt)get_byte(s))<<8; /* len is garbage if EOF but the loop below will quit anyway */ while (len-- != 0 && get_byte(s) != EOF) ; } if ((flags & ORIG_NAME) != 0) { /* skip the original file name */ while ((c = get_byte(s)) != 0 && c != EOF) ; } if ((flags & COMMENT) != 0) { /* skip the .gz file comment */ while ((c = get_byte(s)) != 0 && c != EOF) ; } if ((flags & HEAD_CRC) != 0) { /* skip the header crc */ for (len = 0; len < 2; len++) (void)get_byte(s); } s->z_err = s->z_eof ? Z_DATA_ERROR : Z_OK; } /* =========================================================================== * Cleanup then free the given gz_stream. Return a zlib error code. Try freeing in the reverse order of allocations. */ local int destroy (s) gz_stream *s; { int err = Z_OK; if (!s) return Z_STREAM_ERROR; TRYFREE(s->msg); if (s->stream.state != NULL) { if (s->mode == 'w') { #ifdef NO_GZCOMPRESS err = Z_STREAM_ERROR; #else err = deflateEnd(&(s->stream)); #endif } else if (s->mode == 'r') { err = inflateEnd(&(s->stream)); } } if (s->file != NULL && fclose(s->file)) { #ifdef ESPIPE if (errno != ESPIPE) /* fclose is broken for pipes in HP/UX */ #endif err = Z_ERRNO; } if (s->z_err < 0) err = s->z_err; TRYFREE(s->inbuf); TRYFREE(s->outbuf); TRYFREE(s->path); TRYFREE(s); return err; } /* =========================================================================== Reads the given number of uncompressed bytes from the compressed file. gzread returns the number of bytes actually read (0 for end of file). */ int ZEXPORT gzread (file, buf, len) gzFile file; voidp buf; unsigned len; { gz_stream *s = (gz_stream*)file; Bytef *start = (Bytef*)buf; /* starting point for crc computation */ Byte *next_out; /* == stream.next_out but not forced far (for MSDOS) */ if (s == NULL || s->mode != 'r') return Z_STREAM_ERROR; if (s->z_err == Z_DATA_ERROR || s->z_err == Z_ERRNO) return -1; if (s->z_err == Z_STREAM_END) return 0; /* EOF */ next_out = (Byte*)buf; s->stream.next_out = (Bytef*)buf; s->stream.avail_out = len; if (s->stream.avail_out && s->back != EOF) { *next_out++ = s->back; s->stream.next_out++; s->stream.avail_out--; s->back = EOF; s->out++; start++; if (s->last) { s->z_err = Z_STREAM_END; return 1; } } while (s->stream.avail_out != 0) { if (s->transparent) { /* Copy first the lookahead bytes: */ uInt n = s->stream.avail_in; if (n > s->stream.avail_out) n = s->stream.avail_out; if (n > 0) { zmemcpy(s->stream.next_out, s->stream.next_in, n); next_out += n; s->stream.next_out = next_out; s->stream.next_in += n; s->stream.avail_out -= n; s->stream.avail_in -= n; } if (s->stream.avail_out > 0) { s->stream.avail_out -= (uInt)fread(next_out, 1, s->stream.avail_out, s->file); } len -= s->stream.avail_out; s->in += len; s->out += len; if (len == 0) s->z_eof = 1; return (int)len; } if (s->stream.avail_in == 0 && !s->z_eof) { errno = 0; s->stream.avail_in = (uInt)fread(s->inbuf, 1, Z_BUFSIZE, s->file); if (s->stream.avail_in == 0) { s->z_eof = 1; if (ferror(s->file)) { s->z_err = Z_ERRNO; break; } } s->stream.next_in = s->inbuf; } s->in += s->stream.avail_in; s->out += s->stream.avail_out; s->z_err = inflate(&(s->stream), Z_NO_FLUSH); s->in -= s->stream.avail_in; s->out -= s->stream.avail_out; if (s->z_err == Z_STREAM_END) { /* Check CRC and original size */ s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start)); start = s->stream.next_out; if (getLong(s) != s->crc) { s->z_err = Z_DATA_ERROR; } else { (void)getLong(s); /* The uncompressed length returned by above getlong() may be * different from s->out in case of concatenated .gz files. * Check for such files: */ check_header(s); if (s->z_err == Z_OK) { inflateReset(&(s->stream)); s->crc = crc32(0L, Z_NULL, 0); } } } if (s->z_err != Z_OK || s->z_eof) break; } s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start)); if (len == s->stream.avail_out && (s->z_err == Z_DATA_ERROR || s->z_err == Z_ERRNO)) return -1; return (int)(len - s->stream.avail_out); } /* =========================================================================== Reads one byte from the compressed file. gzgetc returns this byte or -1 in case of end of file or error. */ int ZEXPORT gzgetc(file) gzFile file; { unsigned char c; return gzread(file, &c, 1) == 1 ? c : -1; } /* =========================================================================== Push one byte back onto the stream. */ int ZEXPORT gzungetc(c, file) int c; gzFile file; { gz_stream *s = (gz_stream*)file; if (s == NULL || s->mode != 'r' || c == EOF || s->back != EOF) return EOF; s->back = c; s->out--; s->last = (s->z_err == Z_STREAM_END); if (s->last) s->z_err = Z_OK; s->z_eof = 0; return c; } /* =========================================================================== Reads bytes from the compressed file until len-1 characters are read, or a newline character is read and transferred to buf, or an end-of-file condition is encountered. The string is then terminated with a null character. gzgets returns buf, or Z_NULL in case of error. The current implementation is not optimized at all. */ char * ZEXPORT gzgets(file, buf, len) gzFile file; char *buf; int len; { char *b = buf; if (buf == Z_NULL || len <= 0) return Z_NULL; while (--len > 0 && gzread(file, buf, 1) == 1 && *buf++ != '\n') ; *buf = '\0'; return b == buf && len > 0 ? Z_NULL : b; } #ifndef NO_GZCOMPRESS /* =========================================================================== Writes the given number of uncompressed bytes into the compressed file. gzwrite returns the number of bytes actually written (0 in case of error). */ int ZEXPORT gzwrite (file, buf, len) gzFile file; voidpc buf; unsigned len; { gz_stream *s = (gz_stream*)file; if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR; s->stream.next_in = (Bytef*)buf; s->stream.avail_in = len; while (s->stream.avail_in != 0) { if (s->stream.avail_out == 0) { s->stream.next_out = s->outbuf; if (fwrite(s->outbuf, 1, Z_BUFSIZE, s->file) != Z_BUFSIZE) { s->z_err = Z_ERRNO; break; } s->stream.avail_out = Z_BUFSIZE; } s->in += s->stream.avail_in; s->out += s->stream.avail_out; s->z_err = deflate(&(s->stream), Z_NO_FLUSH); s->in -= s->stream.avail_in; s->out -= s->stream.avail_out; if (s->z_err != Z_OK) break; } s->crc = crc32(s->crc, (const Bytef *)buf, len); return (int)(len - s->stream.avail_in); } /* =========================================================================== Converts, formats, and writes the args to the compressed file under control of the format string, as in fprintf. gzprintf returns the number of uncompressed bytes actually written (0 in case of error). */ #ifdef STDC #include int ZEXPORTVA gzprintf (gzFile file, const char *format, /* args */ ...) { char buf[Z_PRINTF_BUFSIZE]; va_list va; int len; buf[sizeof(buf) - 1] = 0; va_start(va, format); #ifdef NO_vsnprintf # ifdef HAS_vsprintf_void (void)vsprintf(buf, format, va); va_end(va); for (len = 0; len < sizeof(buf); len++) if (buf[len] == 0) break; # else len = vsprintf(buf, format, va); va_end(va); # endif #else # ifdef HAS_vsnprintf_void (void)vsnprintf(buf, sizeof(buf), format, va); va_end(va); len = strlen(buf); # else len = vsnprintf(buf, sizeof(buf), format, va); va_end(va); # endif #endif if (len <= 0 || len >= (int)sizeof(buf) || buf[sizeof(buf) - 1] != 0) return 0; return gzwrite(file, buf, (unsigned)len); } #else /* not ANSI C */ int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) gzFile file; const char *format; int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20; { char buf[Z_PRINTF_BUFSIZE]; int len; buf[sizeof(buf) - 1] = 0; #ifdef NO_snprintf # ifdef HAS_sprintf_void sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); for (len = 0; len < sizeof(buf); len++) if (buf[len] == 0) break; # else len = sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); # endif #else # ifdef HAS_snprintf_void snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); len = strlen(buf); # else len = snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); # endif #endif if (len <= 0 || len >= sizeof(buf) || buf[sizeof(buf) - 1] != 0) return 0; return gzwrite(file, buf, len); } #endif /* =========================================================================== Writes c, converted to an unsigned char, into the compressed file. gzputc returns the value that was written, or -1 in case of error. */ int ZEXPORT gzputc(file, c) gzFile file; int c; { unsigned char cc = (unsigned char) c; /* required for big endian systems */ return gzwrite(file, &cc, 1) == 1 ? (int)cc : -1; } /* =========================================================================== Writes the given null-terminated string to the compressed file, excluding the terminating null character. gzputs returns the number of characters written, or -1 in case of error. */ int ZEXPORT gzputs(file, s) gzFile file; const char *s; { return gzwrite(file, (char*)s, (unsigned)strlen(s)); } /* =========================================================================== Flushes all pending output into the compressed file. The parameter flush is as in the deflate() function. */ local int do_flush (file, flush) gzFile file; int flush; { uInt len; int done = 0; gz_stream *s = (gz_stream*)file; if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR; s->stream.avail_in = 0; /* should be zero already anyway */ for (;;) { len = Z_BUFSIZE - s->stream.avail_out; if (len != 0) { if ((uInt)fwrite(s->outbuf, 1, len, s->file) != len) { s->z_err = Z_ERRNO; return Z_ERRNO; } s->stream.next_out = s->outbuf; s->stream.avail_out = Z_BUFSIZE; } if (done) break; s->out += s->stream.avail_out; s->z_err = deflate(&(s->stream), flush); s->out -= s->stream.avail_out; /* Ignore the second of two consecutive flushes: */ if (len == 0 && s->z_err == Z_BUF_ERROR) s->z_err = Z_OK; /* deflate has finished flushing only when it hasn't used up * all the available space in the output buffer: */ done = (s->stream.avail_out != 0 || s->z_err == Z_STREAM_END); if (s->z_err != Z_OK && s->z_err != Z_STREAM_END) break; } return s->z_err == Z_STREAM_END ? Z_OK : s->z_err; } int ZEXPORT gzflush (file, flush) gzFile file; int flush; { gz_stream *s = (gz_stream*)file; int err = do_flush (file, flush); if (err) return err; fflush(s->file); return s->z_err == Z_STREAM_END ? Z_OK : s->z_err; } #endif /* NO_GZCOMPRESS */ /* =========================================================================== Sets the starting position for the next gzread or gzwrite on the given compressed file. The offset represents a number of bytes in the gzseek returns the resulting offset location as measured in bytes from the beginning of the uncompressed stream, or -1 in case of error. SEEK_END is not implemented, returns error. In this version of the library, gzseek can be extremely slow. */ z_off_t ZEXPORT gzseek (file, offset, whence) gzFile file; z_off_t offset; int whence; { gz_stream *s = (gz_stream*)file; if (s == NULL || whence == SEEK_END || s->z_err == Z_ERRNO || s->z_err == Z_DATA_ERROR) { return -1L; } if (s->mode == 'w') { #ifdef NO_GZCOMPRESS return -1L; #else if (whence == SEEK_SET) { offset -= s->in; } if (offset < 0) return -1L; /* At this point, offset is the number of zero bytes to write. */ if (s->inbuf == Z_NULL) { s->inbuf = (Byte*)ALLOC(Z_BUFSIZE); /* for seeking */ if (s->inbuf == Z_NULL) return -1L; zmemzero(s->inbuf, Z_BUFSIZE); } while (offset > 0) { uInt size = Z_BUFSIZE; if (offset < Z_BUFSIZE) size = (uInt)offset; size = gzwrite(file, s->inbuf, size); if (size == 0) return -1L; offset -= size; } return s->in; #endif } /* Rest of function is for reading only */ /* compute absolute position */ if (whence == SEEK_CUR) { offset += s->out; } if (offset < 0) return -1L; if (s->transparent) { /* map to fseek */ s->back = EOF; s->stream.avail_in = 0; s->stream.next_in = s->inbuf; if (fseek(s->file, offset, SEEK_SET) < 0) return -1L; s->in = s->out = offset; return offset; } /* For a negative seek, rewind and use positive seek */ if (offset >= s->out) { offset -= s->out; } else if (gzrewind(file) < 0) { return -1L; } /* offset is now the number of bytes to skip. */ if (offset != 0 && s->outbuf == Z_NULL) { s->outbuf = (Byte*)ALLOC(Z_BUFSIZE); if (s->outbuf == Z_NULL) return -1L; } if (offset && s->back != EOF) { s->back = EOF; s->out++; offset--; if (s->last) s->z_err = Z_STREAM_END; } while (offset > 0) { int size = Z_BUFSIZE; if (offset < Z_BUFSIZE) size = (int)offset; size = gzread(file, s->outbuf, (uInt)size); if (size <= 0) return -1L; offset -= size; } return s->out; } /* =========================================================================== Rewinds input file. */ int ZEXPORT gzrewind (file) gzFile file; { gz_stream *s = (gz_stream*)file; if (s == NULL || s->mode != 'r') return -1; s->z_err = Z_OK; s->z_eof = 0; s->back = EOF; s->stream.avail_in = 0; s->stream.next_in = s->inbuf; s->crc = crc32(0L, Z_NULL, 0); if (!s->transparent) (void)inflateReset(&s->stream); s->in = 0; s->out = 0; return fseek(s->file, s->start, SEEK_SET); } /* =========================================================================== Returns the starting position for the next gzread or gzwrite on the given compressed file. This position represents a number of bytes in the uncompressed data stream. */ z_off_t ZEXPORT gztell (file) gzFile file; { return gzseek(file, 0L, SEEK_CUR); } /* =========================================================================== Returns 1 when EOF has previously been detected reading the given input stream, otherwise zero. */ int ZEXPORT gzeof (file) gzFile file; { gz_stream *s = (gz_stream*)file; /* With concatenated compressed files that can have embedded * crc trailers, z_eof is no longer the only/best indicator of EOF * on a gz_stream. Handle end-of-stream error explicitly here. */ if (s == NULL || s->mode != 'r') return 0; if (s->z_eof) return 1; return s->z_err == Z_STREAM_END; } /* =========================================================================== Returns 1 if reading and doing so transparently, otherwise zero. */ int ZEXPORT gzdirect (file) gzFile file; { gz_stream *s = (gz_stream*)file; if (s == NULL || s->mode != 'r') return 0; return s->transparent; } /* =========================================================================== Outputs a long in LSB order to the given file */ local void putLong (file, x) FILE *file; uLong x; { int n; for (n = 0; n < 4; n++) { fputc((int)(x & 0xff), file); x >>= 8; } } /* =========================================================================== Reads a long in LSB order from the given gz_stream. Sets z_err in case of error. */ local uLong getLong (s) gz_stream *s; { uLong x = (uLong)get_byte(s); int c; x += ((uLong)get_byte(s))<<8; x += ((uLong)get_byte(s))<<16; c = get_byte(s); if (c == EOF) s->z_err = Z_DATA_ERROR; x += ((uLong)c)<<24; return x; } /* =========================================================================== Flushes all pending output if necessary, closes the compressed file and deallocates all the (de)compression state. */ int ZEXPORT gzclose (file) gzFile file; { gz_stream *s = (gz_stream*)file; if (s == NULL) return Z_STREAM_ERROR; if (s->mode == 'w') { #ifdef NO_GZCOMPRESS return Z_STREAM_ERROR; #else if (do_flush (file, Z_FINISH) != Z_OK) return destroy((gz_stream*)file); putLong (s->file, s->crc); putLong (s->file, (uLong)(s->in & 0xffffffff)); #endif } return destroy((gz_stream*)file); } #ifdef STDC # define zstrerror(errnum) strerror(errnum) #else # define zstrerror(errnum) "" #endif /* =========================================================================== Returns the error message for the last error which occurred on the given compressed file. errnum is set to zlib error number. If an error occurred in the file system and not in the compression library, errnum is set to Z_ERRNO and the application may consult errno to get the exact error code. */ const char * ZEXPORT gzerror (file, errnum) gzFile file; int *errnum; { char *m; gz_stream *s = (gz_stream*)file; if (s == NULL) { *errnum = Z_STREAM_ERROR; return (const char*)ERR_MSG(Z_STREAM_ERROR); } *errnum = s->z_err; if (*errnum == Z_OK) return (const char*)""; m = (char*)(*errnum == Z_ERRNO ? zstrerror(errno) : s->stream.msg); if (m == NULL || *m == '\0') m = (char*)ERR_MSG(s->z_err); TRYFREE(s->msg); s->msg = (char*)ALLOC(strlen(s->path) + strlen(m) + 3); if (s->msg == Z_NULL) return (const char*)ERR_MSG(Z_MEM_ERROR); strcpy(s->msg, s->path); strcat(s->msg, ": "); strcat(s->msg, m); return (const char*)s->msg; } /* =========================================================================== Clear the error and end-of-file flags, and do the same for the real file. */ void ZEXPORT gzclearerr (file) gzFile file; { gz_stream *s = (gz_stream*)file; if (s == NULL) return; if (s->z_err != Z_STREAM_END) s->z_err = Z_OK; s->z_eof = 0; clearerr(s->file); } instead-1.9.1/src/zlib/deflate.h000644 001751 001751 00000030235 12161555570 016771 0ustar00peterpeter000000 000000 /* deflate.h -- internal compression state * Copyright (C) 1995-2004 Jean-loup Gailly * For conditions of distribution and use, see copyright notice in zlib.h */ /* WARNING: this file should *not* be used by applications. It is part of the implementation of the compression library and is subject to change. Applications should only use zlib.h. */ /* @(#) $Id$ */ #ifndef DEFLATE_H #define DEFLATE_H #include "zutil.h" /* define NO_GZIP when compiling if you want to disable gzip header and trailer creation by deflate(). NO_GZIP would be used to avoid linking in the crc code when it is not needed. For shared libraries, gzip encoding should be left enabled. */ #ifndef NO_GZIP # define GZIP #endif /* =========================================================================== * Internal compression state. */ #define LENGTH_CODES 29 /* number of length codes, not counting the special END_BLOCK code */ #define LITERALS 256 /* number of literal bytes 0..255 */ #define L_CODES (LITERALS+1+LENGTH_CODES) /* number of Literal or Length codes, including the END_BLOCK code */ #define D_CODES 30 /* number of distance codes */ #define BL_CODES 19 /* number of codes used to transfer the bit lengths */ #define HEAP_SIZE (2*L_CODES+1) /* maximum heap size */ #define MAX_BITS 15 /* All codes must not exceed MAX_BITS bits */ #define INIT_STATE 42 #define EXTRA_STATE 69 #define NAME_STATE 73 #define COMMENT_STATE 91 #define HCRC_STATE 103 #define BUSY_STATE 113 #define FINISH_STATE 666 /* Stream status */ /* Data structure describing a single value and its code string. */ typedef struct ct_data_s { union { ush freq; /* frequency count */ ush code; /* bit string */ } fc; union { ush dad; /* father node in Huffman tree */ ush len; /* length of bit string */ } dl; } FAR ct_data; #define Freq fc.freq #define Code fc.code #define Dad dl.dad #define Len dl.len typedef struct static_tree_desc_s static_tree_desc; typedef struct tree_desc_s { ct_data *dyn_tree; /* the dynamic tree */ int max_code; /* largest code with non zero frequency */ static_tree_desc *stat_desc; /* the corresponding static tree */ } FAR tree_desc; typedef ush Pos; typedef Pos FAR Posf; typedef unsigned IPos; /* A Pos is an index in the character window. We use short instead of int to * save space in the various tables. IPos is used only for parameter passing. */ typedef struct internal_state { z_streamp strm; /* pointer back to this zlib stream */ int status; /* as the name implies */ Bytef *pending_buf; /* output still pending */ ulg pending_buf_size; /* size of pending_buf */ Bytef *pending_out; /* next pending byte to output to the stream */ uInt pending; /* nb of bytes in the pending buffer */ int wrap; /* bit 0 true for zlib, bit 1 true for gzip */ gz_headerp gzhead; /* gzip header information to write */ uInt gzindex; /* where in extra, name, or comment */ Byte method; /* STORED (for zip only) or DEFLATED */ int last_flush; /* value of flush param for previous deflate call */ /* used by deflate.c: */ uInt w_size; /* LZ77 window size (32K by default) */ uInt w_bits; /* log2(w_size) (8..16) */ uInt w_mask; /* w_size - 1 */ Bytef *window; /* Sliding window. Input bytes are read into the second half of the window, * and move to the first half later to keep a dictionary of at least wSize * bytes. With this organization, matches are limited to a distance of * wSize-MAX_MATCH bytes, but this ensures that IO is always * performed with a length multiple of the block size. Also, it limits * the window size to 64K, which is quite useful on MSDOS. * To do: use the user input buffer as sliding window. */ ulg window_size; /* Actual size of window: 2*wSize, except when the user input buffer * is directly used as sliding window. */ Posf *prev; /* Link to older string with same hash index. To limit the size of this * array to 64K, this link is maintained only for the last 32K strings. * An index in this array is thus a window index modulo 32K. */ Posf *head; /* Heads of the hash chains or NIL. */ uInt ins_h; /* hash index of string to be inserted */ uInt hash_size; /* number of elements in hash table */ uInt hash_bits; /* log2(hash_size) */ uInt hash_mask; /* hash_size-1 */ uInt hash_shift; /* Number of bits by which ins_h must be shifted at each input * step. It must be such that after MIN_MATCH steps, the oldest * byte no longer takes part in the hash key, that is: * hash_shift * MIN_MATCH >= hash_bits */ long block_start; /* Window position at the beginning of the current output block. Gets * negative when the window is moved backwards. */ uInt match_length; /* length of best match */ IPos prev_match; /* previous match */ int match_available; /* set if previous match exists */ uInt strstart; /* start of string to insert */ uInt match_start; /* start of matching string */ uInt lookahead; /* number of valid bytes ahead in window */ uInt prev_length; /* Length of the best match at previous step. Matches not greater than this * are discarded. This is used in the lazy match evaluation. */ uInt max_chain_length; /* To speed up deflation, hash chains are never searched beyond this * length. A higher limit improves compression ratio but degrades the * speed. */ uInt max_lazy_match; /* Attempt to find a better match only when the current match is strictly * smaller than this value. This mechanism is used only for compression * levels >= 4. */ # define max_insert_length max_lazy_match /* Insert new strings in the hash table only if the match length is not * greater than this length. This saves time but degrades compression. * max_insert_length is used only for compression levels <= 3. */ int level; /* compression level (1..9) */ int strategy; /* favor or force Huffman coding*/ uInt good_match; /* Use a faster search when the previous match is longer than this */ int nice_match; /* Stop searching when current match exceeds this */ /* used by trees.c: */ /* Didn't use ct_data typedef below to supress compiler warning */ struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */ struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */ struct tree_desc_s l_desc; /* desc. for literal tree */ struct tree_desc_s d_desc; /* desc. for distance tree */ struct tree_desc_s bl_desc; /* desc. for bit length tree */ ush bl_count[MAX_BITS+1]; /* number of codes at each bit length for an optimal tree */ int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */ int heap_len; /* number of elements in the heap */ int heap_max; /* element of largest frequency */ /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used. * The same heap array is used to build all trees. */ uch depth[2*L_CODES+1]; /* Depth of each subtree used as tie breaker for trees of equal frequency */ uchf *l_buf; /* buffer for literals or lengths */ uInt lit_bufsize; /* Size of match buffer for literals/lengths. There are 4 reasons for * limiting lit_bufsize to 64K: * - frequencies can be kept in 16 bit counters * - if compression is not successful for the first block, all input * data is still in the window so we can still emit a stored block even * when input comes from standard input. (This can also be done for * all blocks if lit_bufsize is not greater than 32K.) * - if compression is not successful for a file smaller than 64K, we can * even emit a stored file instead of a stored block (saving 5 bytes). * This is applicable only for zip (not gzip or zlib). * - creating new Huffman trees less frequently may not provide fast * adaptation to changes in the input data statistics. (Take for * example a binary file with poorly compressible code followed by * a highly compressible string table.) Smaller buffer sizes give * fast adaptation but have of course the overhead of transmitting * trees more frequently. * - I can't count above 4 */ uInt last_lit; /* running index in l_buf */ ushf *d_buf; /* Buffer for distances. To simplify the code, d_buf and l_buf have * the same number of elements. To use different lengths, an extra flag * array would be necessary. */ ulg opt_len; /* bit length of current block with optimal trees */ ulg static_len; /* bit length of current block with static trees */ uInt matches; /* number of string matches in current block */ int last_eob_len; /* bit length of EOB code for last block */ #ifdef DEBUG ulg compressed_len; /* total bit length of compressed file mod 2^32 */ ulg bits_sent; /* bit length of compressed data sent mod 2^32 */ #endif ush bi_buf; /* Output buffer. bits are inserted starting at the bottom (least * significant bits). */ int bi_valid; /* Number of valid bits in bi_buf. All bits above the last valid bit * are always zero. */ } FAR deflate_state; /* Output a byte on the stream. * IN assertion: there is enough room in pending_buf. */ #define put_byte(s, c) {s->pending_buf[s->pending++] = (c);} #define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1) /* Minimum amount of lookahead, except at the end of the input file. * See deflate.c for comments about the MIN_MATCH+1. */ #define MAX_DIST(s) ((s)->w_size-MIN_LOOKAHEAD) /* In order to simplify the code, particularly on 16 bit machines, match * distances are limited to MAX_DIST instead of WSIZE. */ /* in trees.c */ void _tr_init OF((deflate_state *s)); int _tr_tally OF((deflate_state *s, unsigned dist, unsigned lc)); void _tr_flush_block OF((deflate_state *s, charf *buf, ulg stored_len, int eof)); void _tr_align OF((deflate_state *s)); void _tr_stored_block OF((deflate_state *s, charf *buf, ulg stored_len, int eof)); #define d_code(dist) \ ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)]) /* Mapping from a distance to a distance code. dist is the distance - 1 and * must not have side effects. _dist_code[256] and _dist_code[257] are never * used. */ #ifndef DEBUG /* Inline versions of _tr_tally for speed: */ #if defined(GEN_TREES_H) || !defined(STDC) extern uch _length_code[]; extern uch _dist_code[]; #else extern const uch _length_code[]; extern const uch _dist_code[]; #endif # define _tr_tally_lit(s, c, flush) \ { uch cc = (c); \ s->d_buf[s->last_lit] = 0; \ s->l_buf[s->last_lit++] = cc; \ s->dyn_ltree[cc].Freq++; \ flush = (s->last_lit == s->lit_bufsize-1); \ } # define _tr_tally_dist(s, distance, length, flush) \ { uch len = (length); \ ush dist = (distance); \ s->d_buf[s->last_lit] = dist; \ s->l_buf[s->last_lit++] = len; \ dist--; \ s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \ s->dyn_dtree[d_code(dist)].Freq++; \ flush = (s->last_lit == s->lit_bufsize-1); \ } #else # define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c) # define _tr_tally_dist(s, distance, length, flush) \ flush = _tr_tally(s, distance, length) #endif #endif /* DEFLATE_H */ instead-1.9.1/src/zlib/zutil.h000644 001751 001751 00000015730 12161555570 016537 0ustar00peterpeter000000 000000 /* zutil.h -- internal interface and configuration of the compression library * Copyright (C) 1995-2005 Jean-loup Gailly. * For conditions of distribution and use, see copyright notice in zlib.h */ /* WARNING: this file should *not* be used by applications. It is part of the implementation of the compression library and is subject to change. Applications should only use zlib.h. */ /* @(#) $Id$ */ #ifndef ZUTIL_H #define ZUTIL_H #define ZLIB_INTERNAL #include "zlib.h" #ifdef STDC # ifndef _WIN32_WCE # include # endif # include # include #endif #ifdef NO_ERRNO_H # ifdef _WIN32_WCE /* The Microsoft C Run-Time Library for Windows CE doesn't have * errno. We define it as a global variable to simplify porting. * Its value is always 0 and should not be used. We rename it to * avoid conflict with other libraries that use the same workaround. */ # define errno z_errno # endif extern int errno; #else # ifndef _WIN32_WCE # include # endif #endif #ifndef local # define local static #endif /* compile with -Dlocal if your debugger can't find static symbols */ typedef unsigned char uch; typedef uch FAR uchf; typedef unsigned short ush; typedef ush FAR ushf; typedef unsigned long ulg; extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ /* (size given to avoid silly warnings with Visual C++) */ #define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)] #define ERR_RETURN(strm,err) \ return (strm->msg = (char*)ERR_MSG(err), (err)) /* To be used only when the state is known to be valid */ /* common constants */ #ifndef DEF_WBITS # define DEF_WBITS MAX_WBITS #endif /* default windowBits for decompression. MAX_WBITS is for compression only */ #if MAX_MEM_LEVEL >= 8 # define DEF_MEM_LEVEL 8 #else # define DEF_MEM_LEVEL MAX_MEM_LEVEL #endif /* default memLevel */ #define STORED_BLOCK 0 #define STATIC_TREES 1 #define DYN_TREES 2 /* The three kinds of block type */ #define MIN_MATCH 3 #define MAX_MATCH 258 /* The minimum and maximum match lengths */ #define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */ /* target dependencies */ #if defined(MSDOS) || (defined(WINDOWS) && !defined(WIN32)) # define OS_CODE 0x00 # if defined(__TURBOC__) || defined(__BORLANDC__) # if(__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__)) /* Allow compilation with ANSI keywords only enabled */ void _Cdecl farfree( void *block ); void *_Cdecl farmalloc( unsigned long nbytes ); # else # include # endif # else /* MSC or DJGPP */ # include # endif #endif #ifdef AMIGA # define OS_CODE 0x01 #endif #if defined(VAXC) || defined(VMS) # define OS_CODE 0x02 # define F_OPEN(name, mode) \ fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512") #endif #if defined(ATARI) || defined(atarist) # define OS_CODE 0x05 #endif #ifdef OS2 # define OS_CODE 0x06 # ifdef M_I86 #include # endif #endif #if defined(MACOS) || defined(TARGET_OS_MAC) # define OS_CODE 0x07 # if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os # include /* for fdopen */ # else # ifndef fdopen # define fdopen(fd,mode) NULL /* No fdopen() */ # endif # endif #endif #ifdef TOPS20 # define OS_CODE 0x0a #endif #ifdef WIN32 # ifndef __CYGWIN__ /* Cygwin is Unix, not Win32 */ # define OS_CODE 0x0b # endif #endif #ifdef __50SERIES /* Prime/PRIMOS */ # define OS_CODE 0x0f #endif #if defined(_BEOS_) || defined(RISCOS) # define fdopen(fd,mode) NULL /* No fdopen() */ #endif #if (defined(_MSC_VER) && (_MSC_VER > 600)) # if defined(_WIN32_WCE) # define fdopen(fd,mode) NULL /* No fdopen() */ # ifndef _PTRDIFF_T_DEFINED typedef int ptrdiff_t; # define _PTRDIFF_T_DEFINED # endif # else # define fdopen(fd,type) _fdopen(fd,type) # endif #endif /* common defaults */ #ifndef OS_CODE # define OS_CODE 0x03 /* assume Unix */ #endif #ifndef F_OPEN # define F_OPEN(name, mode) fopen((name), (mode)) #endif /* functions */ #if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550) # ifndef HAVE_VSNPRINTF # define HAVE_VSNPRINTF # endif #endif #if defined(__CYGWIN__) # ifndef HAVE_VSNPRINTF # define HAVE_VSNPRINTF # endif #endif #ifndef HAVE_VSNPRINTF # ifdef MSDOS /* vsnprintf may exist on some MS-DOS compilers (DJGPP?), but for now we just assume it doesn't. */ # define NO_vsnprintf # endif # ifdef __TURBOC__ # define NO_vsnprintf # endif # ifdef WIN32 /* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */ # if !defined(vsnprintf) && !defined(NO_vsnprintf) # define vsnprintf _vsnprintf # endif # endif # ifdef __SASC # define NO_vsnprintf # endif #endif #ifdef VMS # define NO_vsnprintf #endif #if defined(pyr) # define NO_MEMCPY #endif #if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__) /* Use our own functions for small and medium model with MSC <= 5.0. * You may have to use the same strategy for Borland C (untested). * The __SC__ check is for Symantec. */ # define NO_MEMCPY #endif #if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY) # define HAVE_MEMCPY #endif #ifdef HAVE_MEMCPY # ifdef SMALL_MEDIUM /* MSDOS small or medium model */ # define zmemcpy _fmemcpy # define zmemcmp _fmemcmp # define zmemzero(dest, len) _fmemset(dest, 0, len) # else # define zmemcpy memcpy # define zmemcmp memcmp # define zmemzero(dest, len) memset(dest, 0, len) # endif #else extern void zmemcpy OF((Bytef* dest, const Bytef* source, uInt len)); extern int zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len)); extern void zmemzero OF((Bytef* dest, uInt len)); #endif /* Diagnostic functions */ #ifdef DEBUG # include extern int z_verbose; extern void z_error OF((char *m)); # define Assert(cond,msg) {if(!(cond)) z_error(msg);} # define Trace(x) {if (z_verbose>=0) fprintf x ;} # define Tracev(x) {if (z_verbose>0) fprintf x ;} # define Tracevv(x) {if (z_verbose>1) fprintf x ;} # define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;} # define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;} #else # define Assert(cond,msg) # define Trace(x) # define Tracev(x) # define Tracevv(x) # define Tracec(c,x) # define Tracecv(c,x) #endif voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size)); void zcfree OF((voidpf opaque, voidpf ptr)); #define ZALLOC(strm, items, size) \ (*((strm)->zalloc))((strm)->opaque, (items), (size)) #define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr)) #define TRY_FREE(s, p) {if (p) ZFREE(s, p);} #endif /* ZUTIL_H */ instead-1.9.1/src/zlib/readme000644 001751 001751 00000013275 12161555570 016401 0ustar00peterpeter000000 000000 ZLIB DATA COMPRESSION LIBRARY zlib 1.2.3 is a general purpose data compression library. All the code is thread safe. The data format used by the zlib library is described by RFCs (Request for Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). These documents are also available in other formats from ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html All functions of the compression library are documented in the file zlib.h (volunteer to write man pages welcome, contact zlib@gzip.org). A usage example of the library is given in the file example.c which also tests that the library is working correctly. Another example is given in the file minigzip.c. The compression library itself is composed of all source files except example.c and minigzip.c. To compile all files and run the test program, follow the instructions given at the top of Makefile. In short "make test; make install" should work for most machines. For Unix: "./configure; make test; make install". For MSDOS, use one of the special makefiles such as Makefile.msc. For VMS, use make_vms.com. Questions about zlib should be sent to , or to Gilles Vollant for the Windows DLL version. The zlib home page is http://www.zlib.org or http://www.gzip.org/zlib/ Before reporting a problem, please check this site to verify that you have the latest version of zlib; otherwise get the latest version and check whether the problem still exists or not. PLEASE read the zlib FAQ http://www.gzip.org/zlib/zlib_faq.html before asking for help. Mark Nelson wrote an article about zlib for the Jan. 1997 issue of Dr. Dobb's Journal; a copy of the article is available in http://dogma.net/markn/articles/zlibtool/zlibtool.htm The changes made in version 1.2.3 are documented in the file ChangeLog. Unsupported third party contributions are provided in directory "contrib". A Java implementation of zlib is available in the Java Development Kit http://java.sun.com/j2se/1.4.2/docs/api/java/util/zip/package-summary.html See the zlib home page http://www.zlib.org for details. A Perl interface to zlib written by Paul Marquess is in the CPAN (Comprehensive Perl Archive Network) sites http://www.cpan.org/modules/by-module/Compress/ A Python interface to zlib written by A.M. Kuchling is available in Python 1.5 and later versions, see http://www.python.org/doc/lib/module-zlib.html A zlib binding for TCL written by Andreas Kupries is availlable at http://www.oche.de/~akupries/soft/trf/trf_zip.html An experimental package to read and write files in .zip format, written on top of zlib by Gilles Vollant , is available in the contrib/minizip directory of zlib. Notes for some targets: - For Windows DLL versions, please see win32/DLL_FAQ.txt - For 64-bit Irix, deflate.c must be compiled without any optimization. With -O, one libpng test fails. The test works in 32 bit mode (with the -n32 compiler flag). The compiler bug has been reported to SGI. - zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 it works when compiled with cc. - On Digital Unix 4.0D (formely OSF/1) on AlphaServer, the cc option -std1 is necessary to get gzprintf working correctly. This is done by configure. - zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works with other compilers. Use "make test" to check your compiler. - gzdopen is not supported on RISCOS, BEOS and by some Mac compilers. - For PalmOs, see http://palmzlib.sourceforge.net/ - When building a shared, i.e. dynamic library on Mac OS X, the library must be installed before testing (do "make install" before "make test"), since the library location is specified in the library. Acknowledgments: The deflate format used by zlib was defined by Phil Katz. The deflate and zlib specifications were written by L. Peter Deutsch. Thanks to all the people who reported problems and suggested various improvements in zlib; they are too numerous to cite here. Copyright notice: (C) 1995-2004 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Jean-loup Gailly Mark Adler jloup@gzip.org madler@alumni.caltech.edu If you use the zlib library in a product, we would appreciate *not* receiving lengthy legal documents to sign. The sources are provided for free but without warranty of any kind. The library has been entirely written by Jean-loup Gailly and Mark Adler; it does not include third-party code. If you redistribute modified sources, we would appreciate that you include in the file ChangeLog history information documenting your changes. Please read the FAQ for more information on the distribution of modified source versions. instead-1.9.1/src/zlib/crc32.c000644 001751 001751 00000032460 12161555570 016276 0ustar00peterpeter000000 000000 /* crc32.c -- compute the CRC-32 of a data stream * Copyright (C) 1995-2005 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h * * Thanks to Rodney Brown for his contribution of faster * CRC methods: exclusive-oring 32 bits of data at a time, and pre-computing * tables for updating the shift register in one step with three exclusive-ors * instead of four steps with four exclusive-ors. This results in about a * factor of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3. */ /* @(#) $Id$ */ /* Note on the use of DYNAMIC_CRC_TABLE: there is no mutex or semaphore protection on the static variables used to control the first-use generation of the crc tables. Therefore, if you #define DYNAMIC_CRC_TABLE, you should first call get_crc_table() to initialize the tables before allowing more than one thread to use crc32(). */ #ifdef MAKECRCH # include # ifndef DYNAMIC_CRC_TABLE # define DYNAMIC_CRC_TABLE # endif /* !DYNAMIC_CRC_TABLE */ #endif /* MAKECRCH */ #include "zutil.h" /* for STDC and FAR definitions */ #define local static /* Find a four-byte integer type for crc32_little() and crc32_big(). */ #ifndef NOBYFOUR # ifdef STDC /* need ANSI C limits.h to determine sizes */ # include # define BYFOUR # if (UINT_MAX == 0xffffffffUL) typedef unsigned int u4; # else # if (ULONG_MAX == 0xffffffffUL) typedef unsigned long u4; # else # if (USHRT_MAX == 0xffffffffUL) typedef unsigned short u4; # else # undef BYFOUR /* can't find a four-byte integer type! */ # endif # endif # endif # endif /* STDC */ #endif /* !NOBYFOUR */ /* Definitions for doing the crc four data bytes at a time. */ #ifdef BYFOUR # define REV(w) (((w)>>24)+(((w)>>8)&0xff00)+ \ (((w)&0xff00)<<8)+(((w)&0xff)<<24)) local unsigned long crc32_little OF((unsigned long, const unsigned char FAR *, unsigned)); local unsigned long crc32_big OF((unsigned long, const unsigned char FAR *, unsigned)); # define TBLS 8 #else # define TBLS 1 #endif /* BYFOUR */ /* Local functions for crc concatenation */ local unsigned long gf2_matrix_times OF((unsigned long *mat, unsigned long vec)); local void gf2_matrix_square OF((unsigned long *square, unsigned long *mat)); #ifdef DYNAMIC_CRC_TABLE local volatile int crc_table_empty = 1; local unsigned long FAR crc_table[TBLS][256]; local void make_crc_table OF((void)); #ifdef MAKECRCH local void write_table OF((FILE *, const unsigned long FAR *)); #endif /* MAKECRCH */ /* Generate tables for a byte-wise 32-bit CRC calculation on the polynomial: x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1. Polynomials over GF(2) are represented in binary, one bit per coefficient, with the lowest powers in the most significant bit. Then adding polynomials is just exclusive-or, and multiplying a polynomial by x is a right shift by one. If we call the above polynomial p, and represent a byte as the polynomial q, also with the lowest power in the most significant bit (so the byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, where a mod b means the remainder after dividing a by b. This calculation is done using the shift-register method of multiplying and taking the remainder. The register is initialized to zero, and for each incoming bit, x^32 is added mod p to the register if the bit is a one (where x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by x (which is shifting right by one and adding x^32 mod p if the bit shifted out is a one). We start with the highest power (least significant bit) of q and repeat for all eight bits of q. The first table is simply the CRC of all possible eight bit values. This is all the information needed to generate CRCs on data a byte at a time for all combinations of CRC register values and incoming bytes. The remaining tables allow for word-at-a-time CRC calculation for both big-endian and little- endian machines, where a word is four bytes. */ local void make_crc_table() { unsigned long c; int n, k; unsigned long poly; /* polynomial exclusive-or pattern */ /* terms of polynomial defining this crc (except x^32): */ static volatile int first = 1; /* flag to limit concurrent making */ static const unsigned char p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; /* See if another task is already doing this (not thread-safe, but better than nothing -- significantly reduces duration of vulnerability in case the advice about DYNAMIC_CRC_TABLE is ignored) */ if (first) { first = 0; /* make exclusive-or pattern from polynomial (0xedb88320UL) */ poly = 0UL; for (n = 0; n < sizeof(p)/sizeof(unsigned char); n++) poly |= 1UL << (31 - p[n]); /* generate a crc for every 8-bit value */ for (n = 0; n < 256; n++) { c = (unsigned long)n; for (k = 0; k < 8; k++) c = c & 1 ? poly ^ (c >> 1) : c >> 1; crc_table[0][n] = c; } #ifdef BYFOUR /* generate crc for each value followed by one, two, and three zeros, and then the byte reversal of those as well as the first table */ for (n = 0; n < 256; n++) { c = crc_table[0][n]; crc_table[4][n] = REV(c); for (k = 1; k < 4; k++) { c = crc_table[0][c & 0xff] ^ (c >> 8); crc_table[k][n] = c; crc_table[k + 4][n] = REV(c); } } #endif /* BYFOUR */ crc_table_empty = 0; } else { /* not first */ /* wait for the other guy to finish (not efficient, but rare) */ while (crc_table_empty) ; } #ifdef MAKECRCH /* write out CRC tables to crc32.h */ { FILE *out; out = fopen("crc32.h", "w"); if (out == NULL) return; fprintf(out, "/* crc32.h -- tables for rapid CRC calculation\n"); fprintf(out, " * Generated automatically by crc32.c\n */\n\n"); fprintf(out, "local const unsigned long FAR "); fprintf(out, "crc_table[TBLS][256] =\n{\n {\n"); write_table(out, crc_table[0]); # ifdef BYFOUR fprintf(out, "#ifdef BYFOUR\n"); for (k = 1; k < 8; k++) { fprintf(out, " },\n {\n"); write_table(out, crc_table[k]); } fprintf(out, "#endif\n"); # endif /* BYFOUR */ fprintf(out, " }\n};\n"); fclose(out); } #endif /* MAKECRCH */ } #ifdef MAKECRCH local void write_table(out, table) FILE *out; const unsigned long FAR *table; { int n; for (n = 0; n < 256; n++) fprintf(out, "%s0x%08lxUL%s", n % 5 ? "" : " ", table[n], n == 255 ? "\n" : (n % 5 == 4 ? ",\n" : ", ")); } #endif /* MAKECRCH */ #else /* !DYNAMIC_CRC_TABLE */ /* ======================================================================== * Tables of CRC-32s of all single-byte values, made by make_crc_table(). */ #include "crc32.h" #endif /* DYNAMIC_CRC_TABLE */ /* ========================================================================= * This function can be used by asm versions of crc32() */ const unsigned long FAR * ZEXPORT get_crc_table() { #ifdef DYNAMIC_CRC_TABLE if (crc_table_empty) make_crc_table(); #endif /* DYNAMIC_CRC_TABLE */ return (const unsigned long FAR *)crc_table; } /* ========================================================================= */ #define DO1 crc = crc_table[0][((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8) #define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1 /* ========================================================================= */ unsigned long ZEXPORT crc32(crc, buf, len) unsigned long crc; const unsigned char FAR *buf; unsigned len; { if (buf == Z_NULL) return 0UL; #ifdef DYNAMIC_CRC_TABLE if (crc_table_empty) make_crc_table(); #endif /* DYNAMIC_CRC_TABLE */ #ifdef BYFOUR if (sizeof(void *) == sizeof(ptrdiff_t)) { u4 endian; endian = 1; if (*((unsigned char *)(&endian))) return crc32_little(crc, buf, len); else return crc32_big(crc, buf, len); } #endif /* BYFOUR */ crc = crc ^ 0xffffffffUL; while (len >= 8) { DO8; len -= 8; } if (len) do { DO1; } while (--len); return crc ^ 0xffffffffUL; } #ifdef BYFOUR /* ========================================================================= */ #define DOLIT4 c ^= *buf4++; \ c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \ crc_table[1][(c >> 16) & 0xff] ^ crc_table[0][c >> 24] #define DOLIT32 DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4 /* ========================================================================= */ local unsigned long crc32_little(crc, buf, len) unsigned long crc; const unsigned char FAR *buf; unsigned len; { register u4 c; register const u4 FAR *buf4; c = (u4)crc; c = ~c; while (len && ((ptrdiff_t)buf & 3)) { c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); len--; } buf4 = (const u4 FAR *)(const void FAR *)buf; while (len >= 32) { DOLIT32; len -= 32; } while (len >= 4) { DOLIT4; len -= 4; } buf = (const unsigned char FAR *)buf4; if (len) do { c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); } while (--len); c = ~c; return (unsigned long)c; } /* ========================================================================= */ #define DOBIG4 c ^= *++buf4; \ c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \ crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24] #define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4 /* ========================================================================= */ local unsigned long crc32_big(crc, buf, len) unsigned long crc; const unsigned char FAR *buf; unsigned len; { register u4 c; register const u4 FAR *buf4; c = REV((u4)crc); c = ~c; while (len && ((ptrdiff_t)buf & 3)) { c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); len--; } buf4 = (const u4 FAR *)(const void FAR *)buf; buf4--; while (len >= 32) { DOBIG32; len -= 32; } while (len >= 4) { DOBIG4; len -= 4; } buf4++; buf = (const unsigned char FAR *)buf4; if (len) do { c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); } while (--len); c = ~c; return (unsigned long)(REV(c)); } #endif /* BYFOUR */ #define GF2_DIM 32 /* dimension of GF(2) vectors (length of CRC) */ /* ========================================================================= */ local unsigned long gf2_matrix_times(mat, vec) unsigned long *mat; unsigned long vec; { unsigned long sum; sum = 0; while (vec) { if (vec & 1) sum ^= *mat; vec >>= 1; mat++; } return sum; } /* ========================================================================= */ local void gf2_matrix_square(square, mat) unsigned long *square; unsigned long *mat; { int n; for (n = 0; n < GF2_DIM; n++) square[n] = gf2_matrix_times(mat, mat[n]); } /* ========================================================================= */ uLong ZEXPORT crc32_combine(crc1, crc2, len2) uLong crc1; uLong crc2; z_off_t len2; { int n; unsigned long row; unsigned long even[GF2_DIM]; /* even-power-of-two zeros operator */ unsigned long odd[GF2_DIM]; /* odd-power-of-two zeros operator */ /* degenerate case */ if (len2 == 0) return crc1; /* put operator for one zero bit in odd */ odd[0] = 0xedb88320L; /* CRC-32 polynomial */ row = 1; for (n = 1; n < GF2_DIM; n++) { odd[n] = row; row <<= 1; } /* put operator for two zero bits in even */ gf2_matrix_square(even, odd); /* put operator for four zero bits in odd */ gf2_matrix_square(odd, even); /* apply len2 zeros to crc1 (first square will put the operator for one zero byte, eight zero bits, in even) */ do { /* apply zeros operator for this bit of len2 */ gf2_matrix_square(even, odd); if (len2 & 1) crc1 = gf2_matrix_times(even, crc1); len2 >>= 1; /* if no more bits set, then done */ if (len2 == 0) break; /* another iteration of the loop with odd and even swapped */ gf2_matrix_square(odd, even); if (len2 & 1) crc1 = gf2_matrix_times(odd, crc1); len2 >>= 1; /* if no more bits set, then done */ } while (len2 != 0); /* return combined crc */ crc1 ^= crc2; return crc1; } instead-1.9.1/src/zlib/inftrees.c000644 001751 001751 00000033405 12161555570 017201 0ustar00peterpeter000000 000000 /* inftrees.c -- generate Huffman trees for efficient decoding * Copyright (C) 1995-2005 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ #include "zutil.h" #include "inftrees.h" #define MAXBITS 15 const char inflate_copyright[] = " inflate 1.2.3 Copyright 1995-2005 Mark Adler "; /* If you use the zlib library in a product, an acknowledgment is welcome in the documentation of your product. If for some reason you cannot include such an acknowledgment, I would appreciate that you keep this copyright string in the executable of your product. */ /* Build a set of tables to decode the provided canonical Huffman code. The code lengths are lens[0..codes-1]. The result starts at *table, whose indices are 0..2^bits-1. work is a writable array of at least lens shorts, which is used as a work area. type is the type of code to be generated, CODES, LENS, or DISTS. On return, zero is success, -1 is an invalid code, and +1 means that ENOUGH isn't enough. table on return points to the next available entry's address. bits is the requested root table index bits, and on return it is the actual root table index bits. It will differ if the request is greater than the longest code or if it is less than the shortest code. */ int inflate_table(type, lens, codes, table, bits, work) codetype type; unsigned short FAR *lens; unsigned codes; code FAR * FAR *table; unsigned FAR *bits; unsigned short FAR *work; { unsigned len; /* a code's length in bits */ unsigned sym; /* index of code symbols */ unsigned min, max; /* minimum and maximum code lengths */ unsigned root; /* number of index bits for root table */ unsigned curr; /* number of index bits for current table */ unsigned drop; /* code bits to drop for sub-table */ int left; /* number of prefix codes available */ unsigned used; /* code entries in table used */ unsigned huff; /* Huffman code */ unsigned incr; /* for incrementing code, index */ unsigned fill; /* index for replicating entries */ unsigned low; /* low bits for current root entry */ unsigned mask; /* mask for low root bits */ code this; /* table entry for duplication */ code FAR *next; /* next available space in table */ const unsigned short FAR *base; /* base value table to use */ const unsigned short FAR *extra; /* extra bits table to use */ int end; /* use base and extra for symbol > end */ unsigned short count[MAXBITS+1]; /* number of codes of each length */ unsigned short offs[MAXBITS+1]; /* offsets in table for each length */ static const unsigned short lbase[31] = { /* Length codes 257..285 base */ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; static const unsigned short lext[31] = { /* Length codes 257..285 extra */ 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 201, 196}; static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0}; static const unsigned short dext[32] = { /* Distance codes 0..29 extra */ 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64}; /* Process a set of code lengths to create a canonical Huffman code. The code lengths are lens[0..codes-1]. Each length corresponds to the symbols 0..codes-1. The Huffman code is generated by first sorting the symbols by length from short to long, and retaining the symbol order for codes with equal lengths. Then the code starts with all zero bits for the first code of the shortest length, and the codes are integer increments for the same length, and zeros are appended as the length increases. For the deflate format, these bits are stored backwards from their more natural integer increment ordering, and so when the decoding tables are built in the large loop below, the integer codes are incremented backwards. This routine assumes, but does not check, that all of the entries in lens[] are in the range 0..MAXBITS. The caller must assure this. 1..MAXBITS is interpreted as that code length. zero means that that symbol does not occur in this code. The codes are sorted by computing a count of codes for each length, creating from that a table of starting indices for each length in the sorted table, and then entering the symbols in order in the sorted table. The sorted table is work[], with that space being provided by the caller. The length counts are used for other purposes as well, i.e. finding the minimum and maximum length codes, determining if there are any codes at all, checking for a valid set of lengths, and looking ahead at length counts to determine sub-table sizes when building the decoding tables. */ /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */ for (len = 0; len <= MAXBITS; len++) count[len] = 0; for (sym = 0; sym < codes; sym++) count[lens[sym]]++; /* bound code lengths, force root to be within code lengths */ root = *bits; for (max = MAXBITS; max >= 1; max--) if (count[max] != 0) break; if (root > max) root = max; if (max == 0) { /* no symbols to code at all */ this.op = (unsigned char)64; /* invalid code marker */ this.bits = (unsigned char)1; this.val = (unsigned short)0; *(*table)++ = this; /* make a table to force an error */ *(*table)++ = this; *bits = 1; return 0; /* no symbols, but wait for decoding to report error */ } for (min = 1; min <= MAXBITS; min++) if (count[min] != 0) break; if (root < min) root = min; /* check for an over-subscribed or incomplete set of lengths */ left = 1; for (len = 1; len <= MAXBITS; len++) { left <<= 1; left -= count[len]; if (left < 0) return -1; /* over-subscribed */ } if (left > 0 && (type == CODES || max != 1)) return -1; /* incomplete set */ /* generate offsets into symbol table for each length for sorting */ offs[1] = 0; for (len = 1; len < MAXBITS; len++) offs[len + 1] = offs[len] + count[len]; /* sort symbols by length, by symbol order within each length */ for (sym = 0; sym < codes; sym++) if (lens[sym] != 0) work[offs[lens[sym]]++] = (unsigned short)sym; /* Create and fill in decoding tables. In this loop, the table being filled is at next and has curr index bits. The code being used is huff with length len. That code is converted to an index by dropping drop bits off of the bottom. For codes where len is less than drop + curr, those top drop + curr - len bits are incremented through all values to fill the table with replicated entries. root is the number of index bits for the root table. When len exceeds root, sub-tables are created pointed to by the root entry with an index of the low root bits of huff. This is saved in low to check for when a new sub-table should be started. drop is zero when the root table is being filled, and drop is root when sub-tables are being filled. When a new sub-table is needed, it is necessary to look ahead in the code lengths to determine what size sub-table is needed. The length counts are used for this, and so count[] is decremented as codes are entered in the tables. used keeps track of how many table entries have been allocated from the provided *table space. It is checked when a LENS table is being made against the space in *table, ENOUGH, minus the maximum space needed by the worst case distance code, MAXD. This should never happen, but the sufficiency of ENOUGH has not been proven exhaustively, hence the check. This assumes that when type == LENS, bits == 9. sym increments through all symbols, and the loop terminates when all codes of length max, i.e. all codes, have been processed. This routine permits incomplete codes, so another loop after this one fills in the rest of the decoding tables with invalid code markers. */ /* set up for code type */ switch (type) { case CODES: base = extra = work; /* dummy value--not used */ end = 19; break; case LENS: base = lbase; base -= 257; extra = lext; extra -= 257; end = 256; break; default: /* DISTS */ base = dbase; extra = dext; end = -1; } /* initialize state for loop */ huff = 0; /* starting code */ sym = 0; /* starting code symbol */ len = min; /* starting code length */ next = *table; /* current table to fill in */ curr = root; /* current table index bits */ drop = 0; /* current bits to drop from code for index */ low = (unsigned)(-1); /* trigger new sub-table when len > root */ used = 1U << root; /* use root table entries */ mask = used - 1; /* mask for comparing low */ /* check available table space */ if (type == LENS && used >= ENOUGH - MAXD) return 1; /* process all codes and make table entries */ for (;;) { /* create table entry */ this.bits = (unsigned char)(len - drop); if ((int)(work[sym]) < end) { this.op = (unsigned char)0; this.val = work[sym]; } else if ((int)(work[sym]) > end) { this.op = (unsigned char)(extra[work[sym]]); this.val = base[work[sym]]; } else { this.op = (unsigned char)(32 + 64); /* end of block */ this.val = 0; } /* replicate for those indices with low len bits equal to huff */ incr = 1U << (len - drop); fill = 1U << curr; min = fill; /* save offset to next table */ do { fill -= incr; next[(huff >> drop) + fill] = this; } while (fill != 0); /* backwards increment the len-bit code huff */ incr = 1U << (len - 1); while (huff & incr) incr >>= 1; if (incr != 0) { huff &= incr - 1; huff += incr; } else huff = 0; /* go to next symbol, update count, len */ sym++; if (--(count[len]) == 0) { if (len == max) break; len = lens[work[sym]]; } /* create new sub-table if needed */ if (len > root && (huff & mask) != low) { /* if first time, transition to sub-tables */ if (drop == 0) drop = root; /* increment past last table */ next += min; /* here min is 1 << curr */ /* determine length of next table */ curr = len - drop; left = (int)(1 << curr); while (curr + drop < max) { left -= count[curr + drop]; if (left <= 0) break; curr++; left <<= 1; } /* check for enough space */ used += 1U << curr; if (type == LENS && used >= ENOUGH - MAXD) return 1; /* point entry in root table to sub-table */ low = huff & mask; (*table)[low].op = (unsigned char)curr; (*table)[low].bits = (unsigned char)root; (*table)[low].val = (unsigned short)(next - *table); } } /* Fill in rest of table for incomplete codes. This loop is similar to the loop above in incrementing huff for table indices. It is assumed that len is equal to curr + drop, so there is no loop needed to increment through high index bits. When the current sub-table is filled, the loop drops back to the root table to fill in any remaining entries there. */ this.op = (unsigned char)64; /* invalid code marker */ this.bits = (unsigned char)(len - drop); this.val = (unsigned short)0; while (huff != 0) { /* when done with sub-table, drop back to root table */ if (drop != 0 && (huff & mask) != low) { drop = 0; len = root; next = *table; this.bits = (unsigned char)len; } /* put invalid code marker in table */ next[huff >> drop] = this; /* backwards increment the len-bit code huff */ incr = 1U << (len - 1); while (huff & incr) incr >>= 1; if (incr != 0) { huff &= incr - 1; huff += incr; } else huff = 0; } /* set return parameters */ *table += used; *bits = root; return 0; } instead-1.9.1/src/zlib/crc32.h000644 001751 001751 00000074441 12161555570 016310 0ustar00peterpeter000000 000000 /* crc32.h -- tables for rapid CRC calculation * Generated automatically by crc32.c */ local const unsigned long FAR crc_table[TBLS][256] = { { 0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL, 0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL, 0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL, 0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL, 0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL, 0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL, 0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL, 0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL, 0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL, 0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL, 0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL, 0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL, 0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL, 0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL, 0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL, 0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL, 0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL, 0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL, 0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL, 0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL, 0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL, 0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL, 0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL, 0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL, 0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL, 0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL, 0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL, 0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL, 0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL, 0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL, 0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL, 0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL, 0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL, 0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL, 0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL, 0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL, 0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL, 0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL, 0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL, 0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL, 0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL, 0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL, 0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL, 0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL, 0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL, 0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL, 0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL, 0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL, 0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL, 0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL, 0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL, 0x2d02ef8dUL #ifdef BYFOUR }, { 0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL, 0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL, 0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL, 0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL, 0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL, 0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL, 0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL, 0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL, 0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL, 0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL, 0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL, 0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL, 0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL, 0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL, 0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL, 0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL, 0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL, 0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL, 0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL, 0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL, 0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL, 0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL, 0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL, 0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL, 0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL, 0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL, 0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL, 0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL, 0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL, 0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL, 0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL, 0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL, 0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL, 0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL, 0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL, 0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL, 0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL, 0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL, 0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL, 0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL, 0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL, 0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL, 0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL, 0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL, 0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL, 0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL, 0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL, 0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL, 0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL, 0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL, 0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL, 0x9324fd72UL }, { 0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL, 0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL, 0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL, 0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL, 0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL, 0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL, 0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL, 0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL, 0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL, 0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL, 0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL, 0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL, 0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL, 0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL, 0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL, 0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL, 0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL, 0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL, 0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL, 0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL, 0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL, 0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL, 0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL, 0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL, 0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL, 0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL, 0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL, 0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL, 0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL, 0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL, 0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL, 0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL, 0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL, 0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL, 0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL, 0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL, 0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL, 0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL, 0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL, 0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL, 0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL, 0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL, 0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL, 0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL, 0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL, 0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL, 0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL, 0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL, 0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL, 0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL, 0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL, 0xbe9834edUL }, { 0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL, 0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL, 0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL, 0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL, 0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL, 0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL, 0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL, 0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL, 0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL, 0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL, 0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL, 0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL, 0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL, 0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL, 0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL, 0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL, 0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL, 0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL, 0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL, 0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL, 0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL, 0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL, 0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL, 0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL, 0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL, 0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL, 0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL, 0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL, 0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL, 0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL, 0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL, 0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL, 0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL, 0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL, 0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL, 0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL, 0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL, 0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL, 0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL, 0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL, 0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL, 0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL, 0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL, 0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL, 0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL, 0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL, 0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL, 0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL, 0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL, 0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL, 0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL, 0xde0506f1UL }, { 0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL, 0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL, 0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL, 0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL, 0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL, 0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL, 0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL, 0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL, 0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL, 0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL, 0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL, 0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL, 0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL, 0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL, 0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL, 0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL, 0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL, 0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL, 0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL, 0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL, 0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL, 0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL, 0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL, 0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL, 0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL, 0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL, 0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL, 0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL, 0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL, 0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL, 0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL, 0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL, 0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL, 0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL, 0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL, 0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL, 0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL, 0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL, 0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL, 0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL, 0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL, 0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL, 0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL, 0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL, 0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL, 0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL, 0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL, 0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL, 0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL, 0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL, 0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL, 0x8def022dUL }, { 0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL, 0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL, 0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL, 0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL, 0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL, 0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL, 0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL, 0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL, 0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL, 0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL, 0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL, 0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL, 0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL, 0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL, 0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL, 0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL, 0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL, 0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL, 0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL, 0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL, 0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL, 0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL, 0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL, 0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL, 0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL, 0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL, 0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL, 0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL, 0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL, 0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL, 0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL, 0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL, 0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL, 0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL, 0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL, 0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL, 0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL, 0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL, 0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL, 0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL, 0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL, 0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL, 0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL, 0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL, 0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL, 0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL, 0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL, 0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL, 0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL, 0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL, 0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL, 0x72fd2493UL }, { 0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL, 0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL, 0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL, 0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL, 0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL, 0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL, 0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL, 0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL, 0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL, 0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL, 0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL, 0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL, 0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL, 0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL, 0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL, 0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL, 0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL, 0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL, 0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL, 0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL, 0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL, 0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL, 0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL, 0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL, 0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL, 0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL, 0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL, 0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL, 0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL, 0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL, 0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL, 0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL, 0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL, 0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL, 0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL, 0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL, 0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL, 0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL, 0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL, 0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL, 0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL, 0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL, 0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL, 0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL, 0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL, 0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL, 0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL, 0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL, 0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL, 0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL, 0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL, 0xed3498beUL }, { 0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL, 0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL, 0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL, 0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL, 0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL, 0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL, 0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL, 0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL, 0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL, 0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL, 0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL, 0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL, 0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL, 0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL, 0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL, 0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL, 0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL, 0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL, 0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL, 0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL, 0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL, 0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL, 0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL, 0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL, 0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL, 0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL, 0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL, 0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL, 0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL, 0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL, 0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL, 0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL, 0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL, 0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL, 0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL, 0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL, 0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL, 0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL, 0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL, 0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL, 0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL, 0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL, 0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL, 0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL, 0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL, 0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL, 0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL, 0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL, 0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL, 0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL, 0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL, 0xf10605deUL #endif } }; instead-1.9.1/src/zlib/trees.c000644 001751 001751 00000130276 12161555570 016510 0ustar00peterpeter000000 000000 /* trees.c -- output deflated data using Huffman coding * Copyright (C) 1995-2005 Jean-loup Gailly * For conditions of distribution and use, see copyright notice in zlib.h */ /* * ALGORITHM * * The "deflation" process uses several Huffman trees. The more * common source values are represented by shorter bit sequences. * * Each code tree is stored in a compressed form which is itself * a Huffman encoding of the lengths of all the code strings (in * ascending order by source values). The actual code strings are * reconstructed from the lengths in the inflate process, as described * in the deflate specification. * * REFERENCES * * Deutsch, L.P.,"'Deflate' Compressed Data Format Specification". * Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc * * Storer, James A. * Data Compression: Methods and Theory, pp. 49-50. * Computer Science Press, 1988. ISBN 0-7167-8156-5. * * Sedgewick, R. * Algorithms, p290. * Addison-Wesley, 1983. ISBN 0-201-06672-6. */ /* @(#) $Id$ */ /* #define GEN_TREES_H */ #include "deflate.h" #ifdef DEBUG # include #endif /* =========================================================================== * Constants */ #define MAX_BL_BITS 7 /* Bit length codes must not exceed MAX_BL_BITS bits */ #define END_BLOCK 256 /* end of block literal code */ #define REP_3_6 16 /* repeat previous bit length 3-6 times (2 bits of repeat count) */ #define REPZ_3_10 17 /* repeat a zero length 3-10 times (3 bits of repeat count) */ #define REPZ_11_138 18 /* repeat a zero length 11-138 times (7 bits of repeat count) */ local const int extra_lbits[LENGTH_CODES] /* extra bits for each length code */ = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0}; local const int extra_dbits[D_CODES] /* extra bits for each distance code */ = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; local const int extra_blbits[BL_CODES]/* extra bits for each bit length code */ = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7}; local const uch bl_order[BL_CODES] = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15}; /* The lengths of the bit length codes are sent in order of decreasing * probability, to avoid transmitting the lengths for unused bit length codes. */ #define Buf_size (8 * 2*sizeof(char)) /* Number of bits used within bi_buf. (bi_buf might be implemented on * more than 16 bits on some systems.) */ /* =========================================================================== * Local data. These are initialized only once. */ #define DIST_CODE_LEN 512 /* see definition of array dist_code below */ #if defined(GEN_TREES_H) || !defined(STDC) /* non ANSI compilers may not accept trees.h */ local ct_data static_ltree[L_CODES+2]; /* The static literal tree. Since the bit lengths are imposed, there is no * need for the L_CODES extra codes used during heap construction. However * The codes 286 and 287 are needed to build a canonical tree (see _tr_init * below). */ local ct_data static_dtree[D_CODES]; /* The static distance tree. (Actually a trivial tree since all codes use * 5 bits.) */ uch _dist_code[DIST_CODE_LEN]; /* Distance codes. The first 256 values correspond to the distances * 3 .. 258, the last 256 values correspond to the top 8 bits of * the 15 bit distances. */ uch _length_code[MAX_MATCH-MIN_MATCH+1]; /* length code for each normalized match length (0 == MIN_MATCH) */ local int base_length[LENGTH_CODES]; /* First normalized length for each code (0 = MIN_MATCH) */ local int base_dist[D_CODES]; /* First normalized distance for each code (0 = distance of 1) */ #else # include "trees.h" #endif /* GEN_TREES_H */ struct static_tree_desc_s { const ct_data *static_tree; /* static tree or NULL */ const intf *extra_bits; /* extra bits for each code or NULL */ int extra_base; /* base index for extra_bits */ int elems; /* max number of elements in the tree */ int max_length; /* max bit length for the codes */ }; local static_tree_desc static_l_desc = {static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS}; local static_tree_desc static_d_desc = {static_dtree, extra_dbits, 0, D_CODES, MAX_BITS}; local static_tree_desc static_bl_desc = {(const ct_data *)0, extra_blbits, 0, BL_CODES, MAX_BL_BITS}; /* =========================================================================== * Local (static) routines in this file. */ local void tr_static_init OF((void)); local void init_block OF((deflate_state *s)); local void pqdownheap OF((deflate_state *s, ct_data *tree, int k)); local void gen_bitlen OF((deflate_state *s, tree_desc *desc)); local void gen_codes OF((ct_data *tree, int max_code, ushf *bl_count)); local void build_tree OF((deflate_state *s, tree_desc *desc)); local void scan_tree OF((deflate_state *s, ct_data *tree, int max_code)); local void send_tree OF((deflate_state *s, ct_data *tree, int max_code)); local int build_bl_tree OF((deflate_state *s)); local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes, int blcodes)); local void compress_block OF((deflate_state *s, ct_data *ltree, ct_data *dtree)); local void set_data_type OF((deflate_state *s)); local unsigned bi_reverse OF((unsigned value, int length)); local void bi_windup OF((deflate_state *s)); local void bi_flush OF((deflate_state *s)); local void copy_block OF((deflate_state *s, charf *buf, unsigned len, int header)); #ifdef GEN_TREES_H local void gen_trees_header OF((void)); #endif #ifndef DEBUG # define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len) /* Send a code of the given tree. c and tree must not have side effects */ #else /* DEBUG */ # define send_code(s, c, tree) \ { if (z_verbose>2) fprintf(stderr,"\ncd %3d ",(c)); \ send_bits(s, tree[c].Code, tree[c].Len); } #endif /* =========================================================================== * Output a short LSB first on the stream. * IN assertion: there is enough room in pendingBuf. */ #define put_short(s, w) { \ put_byte(s, (uch)((w) & 0xff)); \ put_byte(s, (uch)((ush)(w) >> 8)); \ } /* =========================================================================== * Send a value on a given number of bits. * IN assertion: length <= 16 and value fits in length bits. */ #ifdef DEBUG local void send_bits OF((deflate_state *s, int value, int length)); local void send_bits(s, value, length) deflate_state *s; int value; /* value to send */ int length; /* number of bits */ { Tracevv((stderr," l %2d v %4x ", length, value)); Assert(length > 0 && length <= 15, "invalid length"); s->bits_sent += (ulg)length; /* If not enough room in bi_buf, use (valid) bits from bi_buf and * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid)) * unused bits in value. */ if (s->bi_valid > (int)Buf_size - length) { s->bi_buf |= (value << s->bi_valid); put_short(s, s->bi_buf); s->bi_buf = (ush)value >> (Buf_size - s->bi_valid); s->bi_valid += length - Buf_size; } else { s->bi_buf |= value << s->bi_valid; s->bi_valid += length; } } #else /* !DEBUG */ #define send_bits(s, value, length) \ { int len = length;\ if (s->bi_valid > (int)Buf_size - len) {\ int val = value;\ s->bi_buf |= (val << s->bi_valid);\ put_short(s, s->bi_buf);\ s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\ s->bi_valid += len - Buf_size;\ } else {\ s->bi_buf |= (value) << s->bi_valid;\ s->bi_valid += len;\ }\ } #endif /* DEBUG */ /* the arguments must not have side effects */ /* =========================================================================== * Initialize the various 'constant' tables. */ local void tr_static_init() { #if defined(GEN_TREES_H) || !defined(STDC) static int static_init_done = 0; int n; /* iterates over tree elements */ int bits; /* bit counter */ int length; /* length value */ int code; /* code value */ int dist; /* distance index */ ush bl_count[MAX_BITS+1]; /* number of codes at each bit length for an optimal tree */ if (static_init_done) return; /* For some embedded targets, global variables are not initialized: */ static_l_desc.static_tree = static_ltree; static_l_desc.extra_bits = extra_lbits; static_d_desc.static_tree = static_dtree; static_d_desc.extra_bits = extra_dbits; static_bl_desc.extra_bits = extra_blbits; /* Initialize the mapping length (0..255) -> length code (0..28) */ length = 0; for (code = 0; code < LENGTH_CODES-1; code++) { base_length[code] = length; for (n = 0; n < (1< dist code (0..29) */ dist = 0; for (code = 0 ; code < 16; code++) { base_dist[code] = dist; for (n = 0; n < (1<>= 7; /* from now on, all distances are divided by 128 */ for ( ; code < D_CODES; code++) { base_dist[code] = dist << 7; for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) { _dist_code[256 + dist++] = (uch)code; } } Assert (dist == 256, "tr_static_init: 256+dist != 512"); /* Construct the codes of the static literal tree */ for (bits = 0; bits <= MAX_BITS; bits++) bl_count[bits] = 0; n = 0; while (n <= 143) static_ltree[n++].Len = 8, bl_count[8]++; while (n <= 255) static_ltree[n++].Len = 9, bl_count[9]++; while (n <= 279) static_ltree[n++].Len = 7, bl_count[7]++; while (n <= 287) static_ltree[n++].Len = 8, bl_count[8]++; /* Codes 286 and 287 do not exist, but we must include them in the * tree construction to get a canonical Huffman tree (longest code * all ones) */ gen_codes((ct_data *)static_ltree, L_CODES+1, bl_count); /* The static distance tree is trivial: */ for (n = 0; n < D_CODES; n++) { static_dtree[n].Len = 5; static_dtree[n].Code = bi_reverse((unsigned)n, 5); } static_init_done = 1; # ifdef GEN_TREES_H gen_trees_header(); # endif #endif /* defined(GEN_TREES_H) || !defined(STDC) */ } /* =========================================================================== * Genererate the file trees.h describing the static trees. */ #ifdef GEN_TREES_H # ifndef DEBUG # include # endif # define SEPARATOR(i, last, width) \ ((i) == (last)? "\n};\n\n" : \ ((i) % (width) == (width)-1 ? ",\n" : ", ")) void gen_trees_header() { FILE *header = fopen("trees.h", "w"); int i; Assert (header != NULL, "Can't open trees.h"); fprintf(header, "/* header created automatically with -DGEN_TREES_H */\n\n"); fprintf(header, "local const ct_data static_ltree[L_CODES+2] = {\n"); for (i = 0; i < L_CODES+2; i++) { fprintf(header, "{{%3u},{%3u}}%s", static_ltree[i].Code, static_ltree[i].Len, SEPARATOR(i, L_CODES+1, 5)); } fprintf(header, "local const ct_data static_dtree[D_CODES] = {\n"); for (i = 0; i < D_CODES; i++) { fprintf(header, "{{%2u},{%2u}}%s", static_dtree[i].Code, static_dtree[i].Len, SEPARATOR(i, D_CODES-1, 5)); } fprintf(header, "const uch _dist_code[DIST_CODE_LEN] = {\n"); for (i = 0; i < DIST_CODE_LEN; i++) { fprintf(header, "%2u%s", _dist_code[i], SEPARATOR(i, DIST_CODE_LEN-1, 20)); } fprintf(header, "const uch _length_code[MAX_MATCH-MIN_MATCH+1]= {\n"); for (i = 0; i < MAX_MATCH-MIN_MATCH+1; i++) { fprintf(header, "%2u%s", _length_code[i], SEPARATOR(i, MAX_MATCH-MIN_MATCH, 20)); } fprintf(header, "local const int base_length[LENGTH_CODES] = {\n"); for (i = 0; i < LENGTH_CODES; i++) { fprintf(header, "%1u%s", base_length[i], SEPARATOR(i, LENGTH_CODES-1, 20)); } fprintf(header, "local const int base_dist[D_CODES] = {\n"); for (i = 0; i < D_CODES; i++) { fprintf(header, "%5u%s", base_dist[i], SEPARATOR(i, D_CODES-1, 10)); } fclose(header); } #endif /* GEN_TREES_H */ /* =========================================================================== * Initialize the tree data structures for a new zlib stream. */ void _tr_init(s) deflate_state *s; { tr_static_init(); s->l_desc.dyn_tree = s->dyn_ltree; s->l_desc.stat_desc = &static_l_desc; s->d_desc.dyn_tree = s->dyn_dtree; s->d_desc.stat_desc = &static_d_desc; s->bl_desc.dyn_tree = s->bl_tree; s->bl_desc.stat_desc = &static_bl_desc; s->bi_buf = 0; s->bi_valid = 0; s->last_eob_len = 8; /* enough lookahead for inflate */ #ifdef DEBUG s->compressed_len = 0L; s->bits_sent = 0L; #endif /* Initialize the first block of the first file: */ init_block(s); } /* =========================================================================== * Initialize a new block. */ local void init_block(s) deflate_state *s; { int n; /* iterates over tree elements */ /* Initialize the trees. */ for (n = 0; n < L_CODES; n++) s->dyn_ltree[n].Freq = 0; for (n = 0; n < D_CODES; n++) s->dyn_dtree[n].Freq = 0; for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0; s->dyn_ltree[END_BLOCK].Freq = 1; s->opt_len = s->static_len = 0L; s->last_lit = s->matches = 0; } #define SMALLEST 1 /* Index within the heap array of least frequent node in the Huffman tree */ /* =========================================================================== * Remove the smallest element from the heap and recreate the heap with * one less element. Updates heap and heap_len. */ #define pqremove(s, tree, top) \ {\ top = s->heap[SMALLEST]; \ s->heap[SMALLEST] = s->heap[s->heap_len--]; \ pqdownheap(s, tree, SMALLEST); \ } /* =========================================================================== * Compares to subtrees, using the tree depth as tie breaker when * the subtrees have equal frequency. This minimizes the worst case length. */ #define smaller(tree, n, m, depth) \ (tree[n].Freq < tree[m].Freq || \ (tree[n].Freq == tree[m].Freq && depth[n] <= depth[m])) /* =========================================================================== * Restore the heap property by moving down the tree starting at node k, * exchanging a node with the smallest of its two sons if necessary, stopping * when the heap property is re-established (each father smaller than its * two sons). */ local void pqdownheap(s, tree, k) deflate_state *s; ct_data *tree; /* the tree to restore */ int k; /* node to move down */ { int v = s->heap[k]; int j = k << 1; /* left son of k */ while (j <= s->heap_len) { /* Set j to the smallest of the two sons: */ if (j < s->heap_len && smaller(tree, s->heap[j+1], s->heap[j], s->depth)) { j++; } /* Exit if v is smaller than both sons */ if (smaller(tree, v, s->heap[j], s->depth)) break; /* Exchange v with the smallest son */ s->heap[k] = s->heap[j]; k = j; /* And continue down the tree, setting j to the left son of k */ j <<= 1; } s->heap[k] = v; } /* =========================================================================== * Compute the optimal bit lengths for a tree and update the total bit length * for the current block. * IN assertion: the fields freq and dad are set, heap[heap_max] and * above are the tree nodes sorted by increasing frequency. * OUT assertions: the field len is set to the optimal bit length, the * array bl_count contains the frequencies for each bit length. * The length opt_len is updated; static_len is also updated if stree is * not null. */ local void gen_bitlen(s, desc) deflate_state *s; tree_desc *desc; /* the tree descriptor */ { ct_data *tree = desc->dyn_tree; int max_code = desc->max_code; const ct_data *stree = desc->stat_desc->static_tree; const intf *extra = desc->stat_desc->extra_bits; int base = desc->stat_desc->extra_base; int max_length = desc->stat_desc->max_length; int h; /* heap index */ int n, m; /* iterate over the tree elements */ int bits; /* bit length */ int xbits; /* extra bits */ ush f; /* frequency */ int overflow = 0; /* number of elements with bit length too large */ for (bits = 0; bits <= MAX_BITS; bits++) s->bl_count[bits] = 0; /* In a first pass, compute the optimal bit lengths (which may * overflow in the case of the bit length tree). */ tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */ for (h = s->heap_max+1; h < HEAP_SIZE; h++) { n = s->heap[h]; bits = tree[tree[n].Dad].Len + 1; if (bits > max_length) bits = max_length, overflow++; tree[n].Len = (ush)bits; /* We overwrite tree[n].Dad which is no longer needed */ if (n > max_code) continue; /* not a leaf node */ s->bl_count[bits]++; xbits = 0; if (n >= base) xbits = extra[n-base]; f = tree[n].Freq; s->opt_len += (ulg)f * (bits + xbits); if (stree) s->static_len += (ulg)f * (stree[n].Len + xbits); } if (overflow == 0) return; Trace((stderr,"\nbit length overflow\n")); /* This happens for example on obj2 and pic of the Calgary corpus */ /* Find the first bit length which could increase: */ do { bits = max_length-1; while (s->bl_count[bits] == 0) bits--; s->bl_count[bits]--; /* move one leaf down the tree */ s->bl_count[bits+1] += 2; /* move one overflow item as its brother */ s->bl_count[max_length]--; /* The brother of the overflow item also moves one step up, * but this does not affect bl_count[max_length] */ overflow -= 2; } while (overflow > 0); /* Now recompute all bit lengths, scanning in increasing frequency. * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all * lengths instead of fixing only the wrong ones. This idea is taken * from 'ar' written by Haruhiko Okumura.) */ for (bits = max_length; bits != 0; bits--) { n = s->bl_count[bits]; while (n != 0) { m = s->heap[--h]; if (m > max_code) continue; if ((unsigned) tree[m].Len != (unsigned) bits) { Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits)); s->opt_len += ((long)bits - (long)tree[m].Len) *(long)tree[m].Freq; tree[m].Len = (ush)bits; } n--; } } } /* =========================================================================== * Generate the codes for a given tree and bit counts (which need not be * optimal). * IN assertion: the array bl_count contains the bit length statistics for * the given tree and the field len is set for all tree elements. * OUT assertion: the field code is set for all tree elements of non * zero code length. */ local void gen_codes (tree, max_code, bl_count) ct_data *tree; /* the tree to decorate */ int max_code; /* largest code with non zero frequency */ ushf *bl_count; /* number of codes at each bit length */ { ush next_code[MAX_BITS+1]; /* next code value for each bit length */ ush code = 0; /* running code value */ int bits; /* bit index */ int n; /* code index */ /* The distribution counts are first used to generate the code values * without bit reversal. */ for (bits = 1; bits <= MAX_BITS; bits++) { next_code[bits] = code = (code + bl_count[bits-1]) << 1; } /* Check that the bit counts in bl_count are consistent. The last code * must be all ones. */ Assert (code + bl_count[MAX_BITS]-1 == (1<dyn_tree; const ct_data *stree = desc->stat_desc->static_tree; int elems = desc->stat_desc->elems; int n, m; /* iterate over heap elements */ int max_code = -1; /* largest code with non zero frequency */ int node; /* new node being created */ /* Construct the initial heap, with least frequent element in * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1]. * heap[0] is not used. */ s->heap_len = 0, s->heap_max = HEAP_SIZE; for (n = 0; n < elems; n++) { if (tree[n].Freq != 0) { s->heap[++(s->heap_len)] = max_code = n; s->depth[n] = 0; } else { tree[n].Len = 0; } } /* The pkzip format requires that at least one distance code exists, * and that at least one bit should be sent even if there is only one * possible code. So to avoid special checks later on we force at least * two codes of non zero frequency. */ while (s->heap_len < 2) { node = s->heap[++(s->heap_len)] = (max_code < 2 ? ++max_code : 0); tree[node].Freq = 1; s->depth[node] = 0; s->opt_len--; if (stree) s->static_len -= stree[node].Len; /* node is 0 or 1 so it does not have extra bits */ } desc->max_code = max_code; /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree, * establish sub-heaps of increasing lengths: */ for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n); /* Construct the Huffman tree by repeatedly combining the least two * frequent nodes. */ node = elems; /* next internal node of the tree */ do { pqremove(s, tree, n); /* n = node of least frequency */ m = s->heap[SMALLEST]; /* m = node of next least frequency */ s->heap[--(s->heap_max)] = n; /* keep the nodes sorted by frequency */ s->heap[--(s->heap_max)] = m; /* Create a new node father of n and m */ tree[node].Freq = tree[n].Freq + tree[m].Freq; s->depth[node] = (uch)((s->depth[n] >= s->depth[m] ? s->depth[n] : s->depth[m]) + 1); tree[n].Dad = tree[m].Dad = (ush)node; #ifdef DUMP_BL_TREE if (tree == s->bl_tree) { fprintf(stderr,"\nnode %d(%d), sons %d(%d) %d(%d)", node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq); } #endif /* and insert the new node in the heap */ s->heap[SMALLEST] = node++; pqdownheap(s, tree, SMALLEST); } while (s->heap_len >= 2); s->heap[--(s->heap_max)] = s->heap[SMALLEST]; /* At this point, the fields freq and dad are set. We can now * generate the bit lengths. */ gen_bitlen(s, (tree_desc *)desc); /* The field len is now set, we can generate the bit codes */ gen_codes ((ct_data *)tree, max_code, s->bl_count); } /* =========================================================================== * Scan a literal or distance tree to determine the frequencies of the codes * in the bit length tree. */ local void scan_tree (s, tree, max_code) deflate_state *s; ct_data *tree; /* the tree to be scanned */ int max_code; /* and its largest code of non zero frequency */ { int n; /* iterates over all tree elements */ int prevlen = -1; /* last emitted length */ int curlen; /* length of current code */ int nextlen = tree[0].Len; /* length of next code */ int count = 0; /* repeat count of the current code */ int max_count = 7; /* max repeat count */ int min_count = 4; /* min repeat count */ if (nextlen == 0) max_count = 138, min_count = 3; tree[max_code+1].Len = (ush)0xffff; /* guard */ for (n = 0; n <= max_code; n++) { curlen = nextlen; nextlen = tree[n+1].Len; if (++count < max_count && curlen == nextlen) { continue; } else if (count < min_count) { s->bl_tree[curlen].Freq += count; } else if (curlen != 0) { if (curlen != prevlen) s->bl_tree[curlen].Freq++; s->bl_tree[REP_3_6].Freq++; } else if (count <= 10) { s->bl_tree[REPZ_3_10].Freq++; } else { s->bl_tree[REPZ_11_138].Freq++; } count = 0; prevlen = curlen; if (nextlen == 0) { max_count = 138, min_count = 3; } else if (curlen == nextlen) { max_count = 6, min_count = 3; } else { max_count = 7, min_count = 4; } } } /* =========================================================================== * Send a literal or distance tree in compressed form, using the codes in * bl_tree. */ local void send_tree (s, tree, max_code) deflate_state *s; ct_data *tree; /* the tree to be scanned */ int max_code; /* and its largest code of non zero frequency */ { int n; /* iterates over all tree elements */ int prevlen = -1; /* last emitted length */ int curlen; /* length of current code */ int nextlen = tree[0].Len; /* length of next code */ int count = 0; /* repeat count of the current code */ int max_count = 7; /* max repeat count */ int min_count = 4; /* min repeat count */ /* tree[max_code+1].Len = -1; */ /* guard already set */ if (nextlen == 0) max_count = 138, min_count = 3; for (n = 0; n <= max_code; n++) { curlen = nextlen; nextlen = tree[n+1].Len; if (++count < max_count && curlen == nextlen) { continue; } else if (count < min_count) { do { send_code(s, curlen, s->bl_tree); } while (--count != 0); } else if (curlen != 0) { if (curlen != prevlen) { send_code(s, curlen, s->bl_tree); count--; } Assert(count >= 3 && count <= 6, " 3_6?"); send_code(s, REP_3_6, s->bl_tree); send_bits(s, count-3, 2); } else if (count <= 10) { send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count-3, 3); } else { send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count-11, 7); } count = 0; prevlen = curlen; if (nextlen == 0) { max_count = 138, min_count = 3; } else if (curlen == nextlen) { max_count = 6, min_count = 3; } else { max_count = 7, min_count = 4; } } } /* =========================================================================== * Construct the Huffman tree for the bit lengths and return the index in * bl_order of the last bit length code to send. */ local int build_bl_tree(s) deflate_state *s; { int max_blindex; /* index of last bit length code of non zero freq */ /* Determine the bit length frequencies for literal and distance trees */ scan_tree(s, (ct_data *)s->dyn_ltree, s->l_desc.max_code); scan_tree(s, (ct_data *)s->dyn_dtree, s->d_desc.max_code); /* Build the bit length tree: */ build_tree(s, (tree_desc *)(&(s->bl_desc))); /* opt_len now includes the length of the tree representations, except * the lengths of the bit lengths codes and the 5+5+4 bits for the counts. */ /* Determine the number of bit length codes to send. The pkzip format * requires that at least 4 bit length codes be sent. (appnote.txt says * 3 but the actual value used is 4.) */ for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) { if (s->bl_tree[bl_order[max_blindex]].Len != 0) break; } /* Update opt_len to include the bit length tree and counts */ s->opt_len += 3*(max_blindex+1) + 5+5+4; Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld", s->opt_len, s->static_len)); return max_blindex; } /* =========================================================================== * Send the header for a block using dynamic Huffman trees: the counts, the * lengths of the bit length codes, the literal tree and the distance tree. * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. */ local void send_all_trees(s, lcodes, dcodes, blcodes) deflate_state *s; int lcodes, dcodes, blcodes; /* number of codes for each tree */ { int rank; /* index in bl_order */ Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes"); Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES, "too many codes"); Tracev((stderr, "\nbl counts: ")); send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */ send_bits(s, dcodes-1, 5); send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */ for (rank = 0; rank < blcodes; rank++) { Tracev((stderr, "\nbl code %2d ", bl_order[rank])); send_bits(s, s->bl_tree[bl_order[rank]].Len, 3); } Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent)); send_tree(s, (ct_data *)s->dyn_ltree, lcodes-1); /* literal tree */ Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent)); send_tree(s, (ct_data *)s->dyn_dtree, dcodes-1); /* distance tree */ Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent)); } /* =========================================================================== * Send a stored block */ void _tr_stored_block(s, buf, stored_len, eof) deflate_state *s; charf *buf; /* input block */ ulg stored_len; /* length of input block */ int eof; /* true if this is the last block for a file */ { send_bits(s, (STORED_BLOCK<<1)+eof, 3); /* send block type */ #ifdef DEBUG s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L; s->compressed_len += (stored_len + 4) << 3; #endif copy_block(s, buf, (unsigned)stored_len, 1); /* with header */ } /* =========================================================================== * Send one empty static block to give enough lookahead for inflate. * This takes 10 bits, of which 7 may remain in the bit buffer. * The current inflate code requires 9 bits of lookahead. If the * last two codes for the previous block (real code plus EOB) were coded * on 5 bits or less, inflate may have only 5+3 bits of lookahead to decode * the last real code. In this case we send two empty static blocks instead * of one. (There are no problems if the previous block is stored or fixed.) * To simplify the code, we assume the worst case of last real code encoded * on one bit only. */ void _tr_align(s) deflate_state *s; { send_bits(s, STATIC_TREES<<1, 3); send_code(s, END_BLOCK, static_ltree); #ifdef DEBUG s->compressed_len += 10L; /* 3 for block type, 7 for EOB */ #endif bi_flush(s); /* Of the 10 bits for the empty block, we have already sent * (10 - bi_valid) bits. The lookahead for the last real code (before * the EOB of the previous block) was thus at least one plus the length * of the EOB plus what we have just sent of the empty static block. */ if (1 + s->last_eob_len + 10 - s->bi_valid < 9) { send_bits(s, STATIC_TREES<<1, 3); send_code(s, END_BLOCK, static_ltree); #ifdef DEBUG s->compressed_len += 10L; #endif bi_flush(s); } s->last_eob_len = 7; } /* =========================================================================== * Determine the best encoding for the current block: dynamic trees, static * trees or store, and output the encoded block to the zip file. */ void _tr_flush_block(s, buf, stored_len, eof) deflate_state *s; charf *buf; /* input block, or NULL if too old */ ulg stored_len; /* length of input block */ int eof; /* true if this is the last block for a file */ { ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */ int max_blindex = 0; /* index of last bit length code of non zero freq */ /* Build the Huffman trees unless a stored block is forced */ if (s->level > 0) { /* Check if the file is binary or text */ if (stored_len > 0 && s->strm->data_type == Z_UNKNOWN) set_data_type(s); /* Construct the literal and distance trees */ build_tree(s, (tree_desc *)(&(s->l_desc))); Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len, s->static_len)); build_tree(s, (tree_desc *)(&(s->d_desc))); Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len, s->static_len)); /* At this point, opt_len and static_len are the total bit lengths of * the compressed block data, excluding the tree representations. */ /* Build the bit length tree for the above two trees, and get the index * in bl_order of the last bit length code to send. */ max_blindex = build_bl_tree(s); /* Determine the best encoding. Compute the block lengths in bytes. */ opt_lenb = (s->opt_len+3+7)>>3; static_lenb = (s->static_len+3+7)>>3; Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ", opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len, s->last_lit)); if (static_lenb <= opt_lenb) opt_lenb = static_lenb; } else { Assert(buf != (char*)0, "lost buf"); opt_lenb = static_lenb = stored_len + 5; /* force a stored block */ } #ifdef FORCE_STORED if (buf != (char*)0) { /* force stored block */ #else if (stored_len+4 <= opt_lenb && buf != (char*)0) { /* 4: two words for the lengths */ #endif /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE. * Otherwise we can't have processed more than WSIZE input bytes since * the last block flush, because compression would have been * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to * transform a block into a stored block. */ _tr_stored_block(s, buf, stored_len, eof); #ifdef FORCE_STATIC } else if (static_lenb >= 0) { /* force static trees */ #else } else if (s->strategy == Z_FIXED || static_lenb == opt_lenb) { #endif send_bits(s, (STATIC_TREES<<1)+eof, 3); compress_block(s, (ct_data *)static_ltree, (ct_data *)static_dtree); #ifdef DEBUG s->compressed_len += 3 + s->static_len; #endif } else { send_bits(s, (DYN_TREES<<1)+eof, 3); send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1, max_blindex+1); compress_block(s, (ct_data *)s->dyn_ltree, (ct_data *)s->dyn_dtree); #ifdef DEBUG s->compressed_len += 3 + s->opt_len; #endif } Assert (s->compressed_len == s->bits_sent, "bad compressed size"); /* The above check is made mod 2^32, for files larger than 512 MB * and uLong implemented on 32 bits. */ init_block(s); if (eof) { bi_windup(s); #ifdef DEBUG s->compressed_len += 7; /* align on byte boundary */ #endif } Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3, s->compressed_len-7*eof)); } /* =========================================================================== * Save the match info and tally the frequency counts. Return true if * the current block must be flushed. */ int _tr_tally (s, dist, lc) deflate_state *s; unsigned dist; /* distance of matched string */ unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */ { s->d_buf[s->last_lit] = (ush)dist; s->l_buf[s->last_lit++] = (uch)lc; if (dist == 0) { /* lc is the unmatched char */ s->dyn_ltree[lc].Freq++; } else { s->matches++; /* Here, lc is the match length - MIN_MATCH */ dist--; /* dist = match distance - 1 */ Assert((ush)dist < (ush)MAX_DIST(s) && (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) && (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match"); s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++; s->dyn_dtree[d_code(dist)].Freq++; } #ifdef TRUNCATE_BLOCK /* Try to guess if it is profitable to stop the current block here */ if ((s->last_lit & 0x1fff) == 0 && s->level > 2) { /* Compute an upper bound for the compressed length */ ulg out_length = (ulg)s->last_lit*8L; ulg in_length = (ulg)((long)s->strstart - s->block_start); int dcode; for (dcode = 0; dcode < D_CODES; dcode++) { out_length += (ulg)s->dyn_dtree[dcode].Freq * (5L+extra_dbits[dcode]); } out_length >>= 3; Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ", s->last_lit, in_length, out_length, 100L - out_length*100L/in_length)); if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1; } #endif return (s->last_lit == s->lit_bufsize-1); /* We avoid equality with lit_bufsize because of wraparound at 64K * on 16 bit machines and because stored blocks are restricted to * 64K-1 bytes. */ } /* =========================================================================== * Send the block data compressed using the given Huffman trees */ local void compress_block(s, ltree, dtree) deflate_state *s; ct_data *ltree; /* literal tree */ ct_data *dtree; /* distance tree */ { unsigned dist; /* distance of matched string */ int lc; /* match length or unmatched char (if dist == 0) */ unsigned lx = 0; /* running index in l_buf */ unsigned code; /* the code to send */ int extra; /* number of extra bits to send */ if (s->last_lit != 0) do { dist = s->d_buf[lx]; lc = s->l_buf[lx++]; if (dist == 0) { send_code(s, lc, ltree); /* send a literal byte */ Tracecv(isgraph(lc), (stderr," '%c' ", lc)); } else { /* Here, lc is the match length - MIN_MATCH */ code = _length_code[lc]; send_code(s, code+LITERALS+1, ltree); /* send the length code */ extra = extra_lbits[code]; if (extra != 0) { lc -= base_length[code]; send_bits(s, lc, extra); /* send the extra length bits */ } dist--; /* dist is now the match distance - 1 */ code = d_code(dist); Assert (code < D_CODES, "bad d_code"); send_code(s, code, dtree); /* send the distance code */ extra = extra_dbits[code]; if (extra != 0) { dist -= base_dist[code]; send_bits(s, dist, extra); /* send the extra distance bits */ } } /* literal or match pair ? */ /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */ Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx, "pendingBuf overflow"); } while (lx < s->last_lit); send_code(s, END_BLOCK, ltree); s->last_eob_len = ltree[END_BLOCK].Len; } /* =========================================================================== * Set the data type to BINARY or TEXT, using a crude approximation: * set it to Z_TEXT if all symbols are either printable characters (33 to 255) * or white spaces (9 to 13, or 32); or set it to Z_BINARY otherwise. * IN assertion: the fields Freq of dyn_ltree are set. */ local void set_data_type(s) deflate_state *s; { int n; for (n = 0; n < 9; n++) if (s->dyn_ltree[n].Freq != 0) break; if (n == 9) for (n = 14; n < 32; n++) if (s->dyn_ltree[n].Freq != 0) break; s->strm->data_type = (n == 32) ? Z_TEXT : Z_BINARY; } /* =========================================================================== * Reverse the first len bits of a code, using straightforward code (a faster * method would use a table) * IN assertion: 1 <= len <= 15 */ local unsigned bi_reverse(code, len) unsigned code; /* the value to invert */ int len; /* its bit length */ { register unsigned res = 0; do { res |= code & 1; code >>= 1, res <<= 1; } while (--len > 0); return res >> 1; } /* =========================================================================== * Flush the bit buffer, keeping at most 7 bits in it. */ local void bi_flush(s) deflate_state *s; { if (s->bi_valid == 16) { put_short(s, s->bi_buf); s->bi_buf = 0; s->bi_valid = 0; } else if (s->bi_valid >= 8) { put_byte(s, (Byte)s->bi_buf); s->bi_buf >>= 8; s->bi_valid -= 8; } } /* =========================================================================== * Flush the bit buffer and align the output on a byte boundary */ local void bi_windup(s) deflate_state *s; { if (s->bi_valid > 8) { put_short(s, s->bi_buf); } else if (s->bi_valid > 0) { put_byte(s, (Byte)s->bi_buf); } s->bi_buf = 0; s->bi_valid = 0; #ifdef DEBUG s->bits_sent = (s->bits_sent+7) & ~7; #endif } /* =========================================================================== * Copy a stored block, storing first the length and its * one's complement if requested. */ local void copy_block(s, buf, len, header) deflate_state *s; charf *buf; /* the input data */ unsigned len; /* its length */ int header; /* true if block header must be written */ { bi_windup(s); /* align on byte boundary */ s->last_eob_len = 8; /* enough lookahead for inflate */ if (header) { put_short(s, (ush)len); put_short(s, (ush)~len); #ifdef DEBUG s->bits_sent += 2*16; #endif } #ifdef DEBUG s->bits_sent += (ulg)len<<3; #endif while (len--) { put_byte(s, *buf++); } } instead-1.9.1/src/zlib/inflate.c000644 001751 001751 00000142251 12161555570 017004 0ustar00peterpeter000000 000000 /* inflate.c -- zlib decompression * Copyright (C) 1995-2005 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ /* * Change history: * * 1.2.beta0 24 Nov 2002 * - First version -- complete rewrite of inflate to simplify code, avoid * creation of window when not needed, minimize use of window when it is * needed, make inffast.c even faster, implement gzip decoding, and to * improve code readability and style over the previous zlib inflate code * * 1.2.beta1 25 Nov 2002 * - Use pointers for available input and output checking in inffast.c * - Remove input and output counters in inffast.c * - Change inffast.c entry and loop from avail_in >= 7 to >= 6 * - Remove unnecessary second byte pull from length extra in inffast.c * - Unroll direct copy to three copies per loop in inffast.c * * 1.2.beta2 4 Dec 2002 * - Change external routine names to reduce potential conflicts * - Correct filename to inffixed.h for fixed tables in inflate.c * - Make hbuf[] unsigned char to match parameter type in inflate.c * - Change strm->next_out[-state->offset] to *(strm->next_out - state->offset) * to avoid negation problem on Alphas (64 bit) in inflate.c * * 1.2.beta3 22 Dec 2002 * - Add comments on state->bits assertion in inffast.c * - Add comments on op field in inftrees.h * - Fix bug in reuse of allocated window after inflateReset() * - Remove bit fields--back to byte structure for speed * - Remove distance extra == 0 check in inflate_fast()--only helps for lengths * - Change post-increments to pre-increments in inflate_fast(), PPC biased? * - Add compile time option, POSTINC, to use post-increments instead (Intel?) * - Make MATCH copy in inflate() much faster for when inflate_fast() not used * - Use local copies of stream next and avail values, as well as local bit * buffer and bit count in inflate()--for speed when inflate_fast() not used * * 1.2.beta4 1 Jan 2003 * - Split ptr - 257 statements in inflate_table() to avoid compiler warnings * - Move a comment on output buffer sizes from inffast.c to inflate.c * - Add comments in inffast.c to introduce the inflate_fast() routine * - Rearrange window copies in inflate_fast() for speed and simplification * - Unroll last copy for window match in inflate_fast() * - Use local copies of window variables in inflate_fast() for speed * - Pull out common write == 0 case for speed in inflate_fast() * - Make op and len in inflate_fast() unsigned for consistency * - Add FAR to lcode and dcode declarations in inflate_fast() * - Simplified bad distance check in inflate_fast() * - Added inflateBackInit(), inflateBack(), and inflateBackEnd() in new * source file infback.c to provide a call-back interface to inflate for * programs like gzip and unzip -- uses window as output buffer to avoid * window copying * * 1.2.beta5 1 Jan 2003 * - Improved inflateBack() interface to allow the caller to provide initial * input in strm. * - Fixed stored blocks bug in inflateBack() * * 1.2.beta6 4 Jan 2003 * - Added comments in inffast.c on effectiveness of POSTINC * - Typecasting all around to reduce compiler warnings * - Changed loops from while (1) or do {} while (1) to for (;;), again to * make compilers happy * - Changed type of window in inflateBackInit() to unsigned char * * * 1.2.beta7 27 Jan 2003 * - Changed many types to unsigned or unsigned short to avoid warnings * - Added inflateCopy() function * * 1.2.0 9 Mar 2003 * - Changed inflateBack() interface to provide separate opaque descriptors * for the in() and out() functions * - Changed inflateBack() argument and in_func typedef to swap the length * and buffer address return values for the input function * - Check next_in and next_out for Z_NULL on entry to inflate() * * The history for versions after 1.2.0 are in ChangeLog in zlib distribution. */ #include "zutil.h" #include "inftrees.h" #include "inflate.h" #include "inffast.h" #ifdef MAKEFIXED # ifndef BUILDFIXED # define BUILDFIXED # endif #endif /* function prototypes */ local void fixedtables OF((struct inflate_state FAR *state)); local int updatewindow OF((z_streamp strm, unsigned out)); #ifdef BUILDFIXED void makefixed OF((void)); #endif local unsigned syncsearch OF((unsigned FAR *have, unsigned char FAR *buf, unsigned len)); int ZEXPORT inflateReset(strm) z_streamp strm; { struct inflate_state FAR *state; if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; strm->total_in = strm->total_out = state->total = 0; strm->msg = Z_NULL; strm->adler = 1; /* to support ill-conceived Java test suite */ state->mode = HEAD; state->last = 0; state->havedict = 0; state->dmax = 32768U; state->head = Z_NULL; state->wsize = 0; state->whave = 0; state->write = 0; state->hold = 0; state->bits = 0; state->lencode = state->distcode = state->next = state->codes; Tracev((stderr, "inflate: reset\n")); return Z_OK; } int ZEXPORT inflatePrime(strm, bits, value) z_streamp strm; int bits; int value; { struct inflate_state FAR *state; if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; if (bits > 16 || state->bits + bits > 32) return Z_STREAM_ERROR; value &= (1L << bits) - 1; state->hold += value << state->bits; state->bits += bits; return Z_OK; } int ZEXPORT inflateInit2_(strm, windowBits, version, stream_size) z_streamp strm; int windowBits; const char *version; int stream_size; { struct inflate_state FAR *state; if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || stream_size != (int)(sizeof(z_stream))) return Z_VERSION_ERROR; if (strm == Z_NULL) return Z_STREAM_ERROR; strm->msg = Z_NULL; /* in case we return an error */ if (strm->zalloc == (alloc_func)0) { strm->zalloc = zcalloc; strm->opaque = (voidpf)0; } if (strm->zfree == (free_func)0) strm->zfree = zcfree; state = (struct inflate_state FAR *) ZALLOC(strm, 1, sizeof(struct inflate_state)); if (state == Z_NULL) return Z_MEM_ERROR; Tracev((stderr, "inflate: allocated\n")); strm->state = (struct internal_state FAR *)state; if (windowBits < 0) { state->wrap = 0; windowBits = -windowBits; } else { state->wrap = (windowBits >> 4) + 1; #ifdef GUNZIP if (windowBits < 48) windowBits &= 15; #endif } if (windowBits < 8 || windowBits > 15) { ZFREE(strm, state); strm->state = Z_NULL; return Z_STREAM_ERROR; } state->wbits = (unsigned)windowBits; state->window = Z_NULL; return inflateReset(strm); } int ZEXPORT inflateInit_(strm, version, stream_size) z_streamp strm; const char *version; int stream_size; { return inflateInit2_(strm, DEF_WBITS, version, stream_size); } /* Return state with length and distance decoding tables and index sizes set to fixed code decoding. Normally this returns fixed tables from inffixed.h. If BUILDFIXED is defined, then instead this routine builds the tables the first time it's called, and returns those tables the first time and thereafter. This reduces the size of the code by about 2K bytes, in exchange for a little execution time. However, BUILDFIXED should not be used for threaded applications, since the rewriting of the tables and virgin may not be thread-safe. */ local void fixedtables(state) struct inflate_state FAR *state; { #ifdef BUILDFIXED static int virgin = 1; static code *lenfix, *distfix; static code fixed[544]; /* build fixed huffman tables if first call (may not be thread safe) */ if (virgin) { unsigned sym, bits; static code *next; /* literal/length table */ sym = 0; while (sym < 144) state->lens[sym++] = 8; while (sym < 256) state->lens[sym++] = 9; while (sym < 280) state->lens[sym++] = 7; while (sym < 288) state->lens[sym++] = 8; next = fixed; lenfix = next; bits = 9; inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work); /* distance table */ sym = 0; while (sym < 32) state->lens[sym++] = 5; distfix = next; bits = 5; inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work); /* do this just once */ virgin = 0; } #else /* !BUILDFIXED */ # include "inffixed.h" #endif /* BUILDFIXED */ state->lencode = lenfix; state->lenbits = 9; state->distcode = distfix; state->distbits = 5; } #ifdef MAKEFIXED #include /* Write out the inffixed.h that is #include'd above. Defining MAKEFIXED also defines BUILDFIXED, so the tables are built on the fly. makefixed() writes those tables to stdout, which would be piped to inffixed.h. A small program can simply call makefixed to do this: void makefixed(void); int main(void) { makefixed(); return 0; } Then that can be linked with zlib built with MAKEFIXED defined and run: a.out > inffixed.h */ void makefixed() { unsigned low, size; struct inflate_state state; fixedtables(&state); puts(" /* inffixed.h -- table for decoding fixed codes"); puts(" * Generated automatically by makefixed()."); puts(" */"); puts(""); puts(" /* WARNING: this file should *not* be used by applications."); puts(" It is part of the implementation of this library and is"); puts(" subject to change. Applications should only use zlib.h."); puts(" */"); puts(""); size = 1U << 9; printf(" static const code lenfix[%u] = {", size); low = 0; for (;;) { if ((low % 7) == 0) printf("\n "); printf("{%u,%u,%d}", state.lencode[low].op, state.lencode[low].bits, state.lencode[low].val); if (++low == size) break; putchar(','); } puts("\n };"); size = 1U << 5; printf("\n static const code distfix[%u] = {", size); low = 0; for (;;) { if ((low % 6) == 0) printf("\n "); printf("{%u,%u,%d}", state.distcode[low].op, state.distcode[low].bits, state.distcode[low].val); if (++low == size) break; putchar(','); } puts("\n };"); } #endif /* MAKEFIXED */ /* Update the window with the last wsize (normally 32K) bytes written before returning. If window does not exist yet, create it. This is only called when a window is already in use, or when output has been written during this inflate call, but the end of the deflate stream has not been reached yet. It is also called to create a window for dictionary data when a dictionary is loaded. Providing output buffers larger than 32K to inflate() should provide a speed advantage, since only the last 32K of output is copied to the sliding window upon return from inflate(), and since all distances after the first 32K of output will fall in the output data, making match copies simpler and faster. The advantage may be dependent on the size of the processor's data caches. */ local int updatewindow(strm, out) z_streamp strm; unsigned out; { struct inflate_state FAR *state; unsigned copy, dist; state = (struct inflate_state FAR *)strm->state; /* if it hasn't been done already, allocate space for the window */ if (state->window == Z_NULL) { state->window = (unsigned char FAR *) ZALLOC(strm, 1U << state->wbits, sizeof(unsigned char)); if (state->window == Z_NULL) return 1; } /* if window not in use yet, initialize */ if (state->wsize == 0) { state->wsize = 1U << state->wbits; state->write = 0; state->whave = 0; } /* copy state->wsize or less output bytes into the circular window */ copy = out - strm->avail_out; if (copy >= state->wsize) { zmemcpy(state->window, strm->next_out - state->wsize, state->wsize); state->write = 0; state->whave = state->wsize; } else { dist = state->wsize - state->write; if (dist > copy) dist = copy; zmemcpy(state->window + state->write, strm->next_out - copy, dist); copy -= dist; if (copy) { zmemcpy(state->window, strm->next_out - copy, copy); state->write = copy; state->whave = state->wsize; } else { state->write += dist; if (state->write == state->wsize) state->write = 0; if (state->whave < state->wsize) state->whave += dist; } } return 0; } /* Macros for inflate(): */ /* check function to use adler32() for zlib or crc32() for gzip */ #ifdef GUNZIP # define UPDATE(check, buf, len) \ (state->flags ? crc32(check, buf, len) : adler32(check, buf, len)) #else # define UPDATE(check, buf, len) adler32(check, buf, len) #endif /* check macros for header crc */ #ifdef GUNZIP # define CRC2(check, word) \ do { \ hbuf[0] = (unsigned char)(word); \ hbuf[1] = (unsigned char)((word) >> 8); \ check = crc32(check, hbuf, 2); \ } while (0) # define CRC4(check, word) \ do { \ hbuf[0] = (unsigned char)(word); \ hbuf[1] = (unsigned char)((word) >> 8); \ hbuf[2] = (unsigned char)((word) >> 16); \ hbuf[3] = (unsigned char)((word) >> 24); \ check = crc32(check, hbuf, 4); \ } while (0) #endif /* Load registers with state in inflate() for speed */ #define LOAD() \ do { \ put = strm->next_out; \ left = strm->avail_out; \ next = strm->next_in; \ have = strm->avail_in; \ hold = state->hold; \ bits = state->bits; \ } while (0) /* Restore state from registers in inflate() */ #define RESTORE() \ do { \ strm->next_out = put; \ strm->avail_out = left; \ strm->next_in = next; \ strm->avail_in = have; \ state->hold = hold; \ state->bits = bits; \ } while (0) /* Clear the input bit accumulator */ #define INITBITS() \ do { \ hold = 0; \ bits = 0; \ } while (0) /* Get a byte of input into the bit accumulator, or return from inflate() if there is no input available. */ #define PULLBYTE() \ do { \ if (have == 0) goto inf_leave; \ have--; \ hold += (unsigned long)(*next++) << bits; \ bits += 8; \ } while (0) /* Assure that there are at least n bits in the bit accumulator. If there is not enough available input to do that, then return from inflate(). */ #define NEEDBITS(n) \ do { \ while (bits < (unsigned)(n)) \ PULLBYTE(); \ } while (0) /* Return the low n bits of the bit accumulator (n < 16) */ #define BITS(n) \ ((unsigned)hold & ((1U << (n)) - 1)) /* Remove n bits from the bit accumulator */ #define DROPBITS(n) \ do { \ hold >>= (n); \ bits -= (unsigned)(n); \ } while (0) /* Remove zero to seven bits as needed to go to a byte boundary */ #define BYTEBITS() \ do { \ hold >>= bits & 7; \ bits -= bits & 7; \ } while (0) /* Reverse the bytes in a 32-bit value */ #define REVERSE(q) \ ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \ (((q) & 0xff00) << 8) + (((q) & 0xff) << 24)) /* inflate() uses a state machine to process as much input data and generate as much output data as possible before returning. The state machine is structured roughly as follows: for (;;) switch (state) { ... case STATEn: if (not enough input data or output space to make progress) return; ... make progress ... state = STATEm; break; ... } so when inflate() is called again, the same case is attempted again, and if the appropriate resources are provided, the machine proceeds to the next state. The NEEDBITS() macro is usually the way the state evaluates whether it can proceed or should return. NEEDBITS() does the return if the requested bits are not available. The typical use of the BITS macros is: NEEDBITS(n); ... do something with BITS(n) ... DROPBITS(n); where NEEDBITS(n) either returns from inflate() if there isn't enough input left to load n bits into the accumulator, or it continues. BITS(n) gives the low n bits in the accumulator. When done, DROPBITS(n) drops the low n bits off the accumulator. INITBITS() clears the accumulator and sets the number of available bits to zero. BYTEBITS() discards just enough bits to put the accumulator on a byte boundary. After BYTEBITS() and a NEEDBITS(8), then BITS(8) would return the next byte in the stream. NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return if there is no input available. The decoding of variable length codes uses PULLBYTE() directly in order to pull just enough bytes to decode the next code, and no more. Some states loop until they get enough input, making sure that enough state information is maintained to continue the loop where it left off if NEEDBITS() returns in the loop. For example, want, need, and keep would all have to actually be part of the saved state in case NEEDBITS() returns: case STATEw: while (want < need) { NEEDBITS(n); keep[want++] = BITS(n); DROPBITS(n); } state = STATEx; case STATEx: As shown above, if the next state is also the next case, then the break is omitted. A state may also return if there is not enough output space available to complete that state. Those states are copying stored data, writing a literal byte, and copying a matching string. When returning, a "goto inf_leave" is used to update the total counters, update the check value, and determine whether any progress has been made during that inflate() call in order to return the proper return code. Progress is defined as a change in either strm->avail_in or strm->avail_out. When there is a window, goto inf_leave will update the window with the last output written. If a goto inf_leave occurs in the middle of decompression and there is no window currently, goto inf_leave will create one and copy output to the window for the next call of inflate(). In this implementation, the flush parameter of inflate() only affects the return code (per zlib.h). inflate() always writes as much as possible to strm->next_out, given the space available and the provided input--the effect documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers the allocation of and copying into a sliding window until necessary, which provides the effect documented in zlib.h for Z_FINISH when the entire input stream available. So the only thing the flush parameter actually does is: when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it will return Z_BUF_ERROR if it has not reached the end of the stream. */ int ZEXPORT inflate(strm, flush) z_streamp strm; int flush; { struct inflate_state FAR *state; unsigned char FAR *next; /* next input */ unsigned char FAR *put; /* next output */ unsigned have, left; /* available input and output */ unsigned long hold; /* bit buffer */ unsigned bits; /* bits in bit buffer */ unsigned in, out; /* save starting available input and output */ unsigned copy; /* number of stored or match bytes to copy */ unsigned char FAR *from; /* where to copy match bytes from */ code this; /* current decoding table entry */ code last; /* parent table entry */ unsigned len; /* length to copy for repeats, bits to drop */ int ret; /* return code */ #ifdef GUNZIP unsigned char hbuf[4]; /* buffer for gzip header crc calculation */ #endif static const unsigned short order[19] = /* permutation of code lengths */ {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; if (strm == Z_NULL || strm->state == Z_NULL || strm->next_out == Z_NULL || (strm->next_in == Z_NULL && strm->avail_in != 0)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; if (state->mode == TYPE) state->mode = TYPEDO; /* skip check */ LOAD(); in = have; out = left; ret = Z_OK; for (;;) switch (state->mode) { case HEAD: if (state->wrap == 0) { state->mode = TYPEDO; break; } NEEDBITS(16); #ifdef GUNZIP if ((state->wrap & 2) && hold == 0x8b1f) { /* gzip header */ state->check = crc32(0L, Z_NULL, 0); CRC2(state->check, hold); INITBITS(); state->mode = FLAGS; break; } state->flags = 0; /* expect zlib header */ if (state->head != Z_NULL) state->head->done = -1; if (!(state->wrap & 1) || /* check if zlib header allowed */ #else if ( #endif ((BITS(8) << 8) + (hold >> 8)) % 31) { strm->msg = (char *)"incorrect header check"; state->mode = BAD; break; } if (BITS(4) != Z_DEFLATED) { strm->msg = (char *)"unknown compression method"; state->mode = BAD; break; } DROPBITS(4); len = BITS(4) + 8; if (len > state->wbits) { strm->msg = (char *)"invalid window size"; state->mode = BAD; break; } state->dmax = 1U << len; Tracev((stderr, "inflate: zlib header ok\n")); strm->adler = state->check = adler32(0L, Z_NULL, 0); state->mode = hold & 0x200 ? DICTID : TYPE; INITBITS(); break; #ifdef GUNZIP case FLAGS: NEEDBITS(16); state->flags = (int)(hold); if ((state->flags & 0xff) != Z_DEFLATED) { strm->msg = (char *)"unknown compression method"; state->mode = BAD; break; } if (state->flags & 0xe000) { strm->msg = (char *)"unknown header flags set"; state->mode = BAD; break; } if (state->head != Z_NULL) state->head->text = (int)((hold >> 8) & 1); if (state->flags & 0x0200) CRC2(state->check, hold); INITBITS(); state->mode = TIME; case TIME: NEEDBITS(32); if (state->head != Z_NULL) state->head->time = hold; if (state->flags & 0x0200) CRC4(state->check, hold); INITBITS(); state->mode = OS; case OS: NEEDBITS(16); if (state->head != Z_NULL) { state->head->xflags = (int)(hold & 0xff); state->head->os = (int)(hold >> 8); } if (state->flags & 0x0200) CRC2(state->check, hold); INITBITS(); state->mode = EXLEN; case EXLEN: if (state->flags & 0x0400) { NEEDBITS(16); state->length = (unsigned)(hold); if (state->head != Z_NULL) state->head->extra_len = (unsigned)hold; if (state->flags & 0x0200) CRC2(state->check, hold); INITBITS(); } else if (state->head != Z_NULL) state->head->extra = Z_NULL; state->mode = EXTRA; case EXTRA: if (state->flags & 0x0400) { copy = state->length; if (copy > have) copy = have; if (copy) { if (state->head != Z_NULL && state->head->extra != Z_NULL) { len = state->head->extra_len - state->length; zmemcpy(state->head->extra + len, next, len + copy > state->head->extra_max ? state->head->extra_max - len : copy); } if (state->flags & 0x0200) state->check = crc32(state->check, next, copy); have -= copy; next += copy; state->length -= copy; } if (state->length) goto inf_leave; } state->length = 0; state->mode = NAME; case NAME: if (state->flags & 0x0800) { if (have == 0) goto inf_leave; copy = 0; do { len = (unsigned)(next[copy++]); if (state->head != Z_NULL && state->head->name != Z_NULL && state->length < state->head->name_max) state->head->name[state->length++] = len; } while (len && copy < have); if (state->flags & 0x0200) state->check = crc32(state->check, next, copy); have -= copy; next += copy; if (len) goto inf_leave; } else if (state->head != Z_NULL) state->head->name = Z_NULL; state->length = 0; state->mode = COMMENT; case COMMENT: if (state->flags & 0x1000) { if (have == 0) goto inf_leave; copy = 0; do { len = (unsigned)(next[copy++]); if (state->head != Z_NULL && state->head->comment != Z_NULL && state->length < state->head->comm_max) state->head->comment[state->length++] = len; } while (len && copy < have); if (state->flags & 0x0200) state->check = crc32(state->check, next, copy); have -= copy; next += copy; if (len) goto inf_leave; } else if (state->head != Z_NULL) state->head->comment = Z_NULL; state->mode = HCRC; case HCRC: if (state->flags & 0x0200) { NEEDBITS(16); if (hold != (state->check & 0xffff)) { strm->msg = (char *)"header crc mismatch"; state->mode = BAD; break; } INITBITS(); } if (state->head != Z_NULL) { state->head->hcrc = (int)((state->flags >> 9) & 1); state->head->done = 1; } strm->adler = state->check = crc32(0L, Z_NULL, 0); state->mode = TYPE; break; #endif case DICTID: NEEDBITS(32); strm->adler = state->check = REVERSE(hold); INITBITS(); state->mode = DICT; case DICT: if (state->havedict == 0) { RESTORE(); return Z_NEED_DICT; } strm->adler = state->check = adler32(0L, Z_NULL, 0); state->mode = TYPE; case TYPE: if (flush == Z_BLOCK) goto inf_leave; case TYPEDO: if (state->last) { BYTEBITS(); state->mode = CHECK; break; } NEEDBITS(3); state->last = BITS(1); DROPBITS(1); switch (BITS(2)) { case 0: /* stored block */ Tracev((stderr, "inflate: stored block%s\n", state->last ? " (last)" : "")); state->mode = STORED; break; case 1: /* fixed block */ fixedtables(state); Tracev((stderr, "inflate: fixed codes block%s\n", state->last ? " (last)" : "")); state->mode = LEN; /* decode codes */ break; case 2: /* dynamic block */ Tracev((stderr, "inflate: dynamic codes block%s\n", state->last ? " (last)" : "")); state->mode = TABLE; break; case 3: strm->msg = (char *)"invalid block type"; state->mode = BAD; } DROPBITS(2); break; case STORED: BYTEBITS(); /* go to byte boundary */ NEEDBITS(32); if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) { strm->msg = (char *)"invalid stored block lengths"; state->mode = BAD; break; } state->length = (unsigned)hold & 0xffff; Tracev((stderr, "inflate: stored length %u\n", state->length)); INITBITS(); state->mode = COPY; case COPY: copy = state->length; if (copy) { if (copy > have) copy = have; if (copy > left) copy = left; if (copy == 0) goto inf_leave; zmemcpy(put, next, copy); have -= copy; next += copy; left -= copy; put += copy; state->length -= copy; break; } Tracev((stderr, "inflate: stored end\n")); state->mode = TYPE; break; case TABLE: NEEDBITS(14); state->nlen = BITS(5) + 257; DROPBITS(5); state->ndist = BITS(5) + 1; DROPBITS(5); state->ncode = BITS(4) + 4; DROPBITS(4); #ifndef PKZIP_BUG_WORKAROUND if (state->nlen > 286 || state->ndist > 30) { strm->msg = (char *)"too many length or distance symbols"; state->mode = BAD; break; } #endif Tracev((stderr, "inflate: table sizes ok\n")); state->have = 0; state->mode = LENLENS; case LENLENS: while (state->have < state->ncode) { NEEDBITS(3); state->lens[order[state->have++]] = (unsigned short)BITS(3); DROPBITS(3); } while (state->have < 19) state->lens[order[state->have++]] = 0; state->next = state->codes; state->lencode = (code const FAR *)(state->next); state->lenbits = 7; ret = inflate_table(CODES, state->lens, 19, &(state->next), &(state->lenbits), state->work); if (ret) { strm->msg = (char *)"invalid code lengths set"; state->mode = BAD; break; } Tracev((stderr, "inflate: code lengths ok\n")); state->have = 0; state->mode = CODELENS; case CODELENS: while (state->have < state->nlen + state->ndist) { for (;;) { this = state->lencode[BITS(state->lenbits)]; if ((unsigned)(this.bits) <= bits) break; PULLBYTE(); } if (this.val < 16) { NEEDBITS(this.bits); DROPBITS(this.bits); state->lens[state->have++] = this.val; } else { if (this.val == 16) { NEEDBITS(this.bits + 2); DROPBITS(this.bits); if (state->have == 0) { strm->msg = (char *)"invalid bit length repeat"; state->mode = BAD; break; } len = state->lens[state->have - 1]; copy = 3 + BITS(2); DROPBITS(2); } else if (this.val == 17) { NEEDBITS(this.bits + 3); DROPBITS(this.bits); len = 0; copy = 3 + BITS(3); DROPBITS(3); } else { NEEDBITS(this.bits + 7); DROPBITS(this.bits); len = 0; copy = 11 + BITS(7); DROPBITS(7); } if (state->have + copy > state->nlen + state->ndist) { strm->msg = (char *)"invalid bit length repeat"; state->mode = BAD; break; } while (copy--) state->lens[state->have++] = (unsigned short)len; } } /* handle error breaks in while */ if (state->mode == BAD) break; /* build code tables */ state->next = state->codes; state->lencode = (code const FAR *)(state->next); state->lenbits = 9; ret = inflate_table(LENS, state->lens, state->nlen, &(state->next), &(state->lenbits), state->work); if (ret) { strm->msg = (char *)"invalid literal/lengths set"; state->mode = BAD; break; } state->distcode = (code const FAR *)(state->next); state->distbits = 6; ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist, &(state->next), &(state->distbits), state->work); if (ret) { strm->msg = (char *)"invalid distances set"; state->mode = BAD; break; } Tracev((stderr, "inflate: codes ok\n")); state->mode = LEN; case LEN: if (have >= 6 && left >= 258) { RESTORE(); inflate_fast(strm, out); LOAD(); break; } for (;;) { this = state->lencode[BITS(state->lenbits)]; if ((unsigned)(this.bits) <= bits) break; PULLBYTE(); } if (this.op && (this.op & 0xf0) == 0) { last = this; for (;;) { this = state->lencode[last.val + (BITS(last.bits + last.op) >> last.bits)]; if ((unsigned)(last.bits + this.bits) <= bits) break; PULLBYTE(); } DROPBITS(last.bits); } DROPBITS(this.bits); state->length = (unsigned)this.val; if ((int)(this.op) == 0) { Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ? "inflate: literal '%c'\n" : "inflate: literal 0x%02x\n", this.val)); state->mode = LIT; break; } if (this.op & 32) { Tracevv((stderr, "inflate: end of block\n")); state->mode = TYPE; break; } if (this.op & 64) { strm->msg = (char *)"invalid literal/length code"; state->mode = BAD; break; } state->extra = (unsigned)(this.op) & 15; state->mode = LENEXT; case LENEXT: if (state->extra) { NEEDBITS(state->extra); state->length += BITS(state->extra); DROPBITS(state->extra); } Tracevv((stderr, "inflate: length %u\n", state->length)); state->mode = DIST; case DIST: for (;;) { this = state->distcode[BITS(state->distbits)]; if ((unsigned)(this.bits) <= bits) break; PULLBYTE(); } if ((this.op & 0xf0) == 0) { last = this; for (;;) { this = state->distcode[last.val + (BITS(last.bits + last.op) >> last.bits)]; if ((unsigned)(last.bits + this.bits) <= bits) break; PULLBYTE(); } DROPBITS(last.bits); } DROPBITS(this.bits); if (this.op & 64) { strm->msg = (char *)"invalid distance code"; state->mode = BAD; break; } state->offset = (unsigned)this.val; state->extra = (unsigned)(this.op) & 15; state->mode = DISTEXT; case DISTEXT: if (state->extra) { NEEDBITS(state->extra); state->offset += BITS(state->extra); DROPBITS(state->extra); } #ifdef INFLATE_STRICT if (state->offset > state->dmax) { strm->msg = (char *)"invalid distance too far back"; state->mode = BAD; break; } #endif if (state->offset > state->whave + out - left) { strm->msg = (char *)"invalid distance too far back"; state->mode = BAD; break; } Tracevv((stderr, "inflate: distance %u\n", state->offset)); state->mode = MATCH; case MATCH: if (left == 0) goto inf_leave; copy = out - left; if (state->offset > copy) { /* copy from window */ copy = state->offset - copy; if (copy > state->write) { copy -= state->write; from = state->window + (state->wsize - copy); } else from = state->window + (state->write - copy); if (copy > state->length) copy = state->length; } else { /* copy from output */ from = put - state->offset; copy = state->length; } if (copy > left) copy = left; left -= copy; state->length -= copy; do { *put++ = *from++; } while (--copy); if (state->length == 0) state->mode = LEN; break; case LIT: if (left == 0) goto inf_leave; *put++ = (unsigned char)(state->length); left--; state->mode = LEN; break; case CHECK: if (state->wrap) { NEEDBITS(32); out -= left; strm->total_out += out; state->total += out; if (out) strm->adler = state->check = UPDATE(state->check, put - out, out); out = left; if (( #ifdef GUNZIP state->flags ? hold : #endif REVERSE(hold)) != state->check) { strm->msg = (char *)"incorrect data check"; state->mode = BAD; break; } INITBITS(); Tracev((stderr, "inflate: check matches trailer\n")); } #ifdef GUNZIP state->mode = LENGTH; case LENGTH: if (state->wrap && state->flags) { NEEDBITS(32); if (hold != (state->total & 0xffffffffUL)) { strm->msg = (char *)"incorrect length check"; state->mode = BAD; break; } INITBITS(); Tracev((stderr, "inflate: length matches trailer\n")); } #endif state->mode = DONE; case DONE: ret = Z_STREAM_END; goto inf_leave; case BAD: ret = Z_DATA_ERROR; goto inf_leave; case MEM: return Z_MEM_ERROR; case SYNC: default: return Z_STREAM_ERROR; } /* Return from inflate(), updating the total counts and the check value. If there was no progress during the inflate() call, return a buffer error. Call updatewindow() to create and/or update the window state. Note: a memory error from inflate() is non-recoverable. */ inf_leave: RESTORE(); if (state->wsize || (state->mode < CHECK && out != strm->avail_out)) if (updatewindow(strm, out)) { state->mode = MEM; return Z_MEM_ERROR; } in -= strm->avail_in; out -= strm->avail_out; strm->total_in += in; strm->total_out += out; state->total += out; if (state->wrap && out) strm->adler = state->check = UPDATE(state->check, strm->next_out - out, out); strm->data_type = state->bits + (state->last ? 64 : 0) + (state->mode == TYPE ? 128 : 0); if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK) ret = Z_BUF_ERROR; return ret; } int ZEXPORT inflateEnd(strm) z_streamp strm; { struct inflate_state FAR *state; if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; if (state->window != Z_NULL) ZFREE(strm, state->window); ZFREE(strm, strm->state); strm->state = Z_NULL; Tracev((stderr, "inflate: end\n")); return Z_OK; } int ZEXPORT inflateSetDictionary(strm, dictionary, dictLength) z_streamp strm; const Bytef *dictionary; uInt dictLength; { struct inflate_state FAR *state; unsigned long id; /* check state */ if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; if (state->wrap != 0 && state->mode != DICT) return Z_STREAM_ERROR; /* check for correct dictionary id */ if (state->mode == DICT) { id = adler32(0L, Z_NULL, 0); id = adler32(id, dictionary, dictLength); if (id != state->check) return Z_DATA_ERROR; } /* copy dictionary to window */ if (updatewindow(strm, strm->avail_out)) { state->mode = MEM; return Z_MEM_ERROR; } if (dictLength > state->wsize) { zmemcpy(state->window, dictionary + dictLength - state->wsize, state->wsize); state->whave = state->wsize; } else { zmemcpy(state->window + state->wsize - dictLength, dictionary, dictLength); state->whave = dictLength; } state->havedict = 1; Tracev((stderr, "inflate: dictionary set\n")); return Z_OK; } int ZEXPORT inflateGetHeader(strm, head) z_streamp strm; gz_headerp head; { struct inflate_state FAR *state; /* check state */ if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; if ((state->wrap & 2) == 0) return Z_STREAM_ERROR; /* save header structure */ state->head = head; head->done = 0; return Z_OK; } /* Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found or when out of input. When called, *have is the number of pattern bytes found in order so far, in 0..3. On return *have is updated to the new state. If on return *have equals four, then the pattern was found and the return value is how many bytes were read including the last byte of the pattern. If *have is less than four, then the pattern has not been found yet and the return value is len. In the latter case, syncsearch() can be called again with more data and the *have state. *have is initialized to zero for the first call. */ local unsigned syncsearch(have, buf, len) unsigned FAR *have; unsigned char FAR *buf; unsigned len; { unsigned got; unsigned next; got = *have; next = 0; while (next < len && got < 4) { if ((int)(buf[next]) == (got < 2 ? 0 : 0xff)) got++; else if (buf[next]) got = 0; else got = 4 - got; next++; } *have = got; return next; } int ZEXPORT inflateSync(strm) z_streamp strm; { unsigned len; /* number of bytes to look at or looked at */ unsigned long in, out; /* temporary to save total_in and total_out */ unsigned char buf[4]; /* to restore bit buffer to byte string */ struct inflate_state FAR *state; /* check parameters */ if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; if (strm->avail_in == 0 && state->bits < 8) return Z_BUF_ERROR; /* if first time, start search in bit buffer */ if (state->mode != SYNC) { state->mode = SYNC; state->hold <<= state->bits & 7; state->bits -= state->bits & 7; len = 0; while (state->bits >= 8) { buf[len++] = (unsigned char)(state->hold); state->hold >>= 8; state->bits -= 8; } state->have = 0; syncsearch(&(state->have), buf, len); } /* search available input */ len = syncsearch(&(state->have), strm->next_in, strm->avail_in); strm->avail_in -= len; strm->next_in += len; strm->total_in += len; /* return no joy or set up to restart inflate() on a new block */ if (state->have != 4) return Z_DATA_ERROR; in = strm->total_in; out = strm->total_out; inflateReset(strm); strm->total_in = in; strm->total_out = out; state->mode = TYPE; return Z_OK; } /* Returns true if inflate is currently at the end of a block generated by Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP implementation to provide an additional safety check. PPP uses Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored block. When decompressing, PPP checks that at the end of input packet, inflate is waiting for these length bytes. */ int ZEXPORT inflateSyncPoint(strm) z_streamp strm; { struct inflate_state FAR *state; if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; return state->mode == STORED && state->bits == 0; } int ZEXPORT inflateCopy(dest, source) z_streamp dest; z_streamp source; { struct inflate_state FAR *state; struct inflate_state FAR *copy; unsigned char FAR *window; unsigned wsize; /* check input */ if (dest == Z_NULL || source == Z_NULL || source->state == Z_NULL || source->zalloc == (alloc_func)0 || source->zfree == (free_func)0) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)source->state; /* allocate space */ copy = (struct inflate_state FAR *) ZALLOC(source, 1, sizeof(struct inflate_state)); if (copy == Z_NULL) return Z_MEM_ERROR; window = Z_NULL; if (state->window != Z_NULL) { window = (unsigned char FAR *) ZALLOC(source, 1U << state->wbits, sizeof(unsigned char)); if (window == Z_NULL) { ZFREE(source, copy); return Z_MEM_ERROR; } } /* copy state */ zmemcpy(dest, source, sizeof(z_stream)); zmemcpy(copy, state, sizeof(struct inflate_state)); if (state->lencode >= state->codes && state->lencode <= state->codes + ENOUGH - 1) { copy->lencode = copy->codes + (state->lencode - state->codes); copy->distcode = copy->codes + (state->distcode - state->codes); } copy->next = copy->codes + (state->next - state->codes); if (window != Z_NULL) { wsize = 1U << state->wbits; zmemcpy(window, state->window, wsize); } copy->window = window; dest->state = (struct internal_state FAR *)copy; return Z_OK; } instead-1.9.1/src/zlib/uncompr.c000644 001751 001751 00000004144 12161555570 017043 0ustar00peterpeter000000 000000 /* uncompr.c -- decompress a memory buffer * Copyright (C) 1995-2003 Jean-loup Gailly. * For conditions of distribution and use, see copyright notice in zlib.h */ /* @(#) $Id$ */ #define ZLIB_INTERNAL #include "zlib.h" /* =========================================================================== Decompresses the source buffer into the destination buffer. sourceLen is the byte length of the source buffer. Upon entry, destLen is the total size of the destination buffer, which must be large enough to hold the entire uncompressed data. (The size of the uncompressed data must have been saved previously by the compressor and transmitted to the decompressor by some mechanism outside the scope of this compression library.) Upon exit, destLen is the actual size of the compressed buffer. This function can be used to decompress a whole file at once if the input file is mmap'ed. uncompress returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR if there was not enough room in the output buffer, or Z_DATA_ERROR if the input data was corrupted. */ int ZEXPORT uncompress (dest, destLen, source, sourceLen) Bytef *dest; uLongf *destLen; const Bytef *source; uLong sourceLen; { z_stream stream; int err; stream.next_in = (Bytef*)source; stream.avail_in = (uInt)sourceLen; /* Check for source > 64K on 16-bit machine: */ if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; stream.next_out = dest; stream.avail_out = (uInt)*destLen; if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; stream.zalloc = (alloc_func)0; stream.zfree = (free_func)0; err = inflateInit(&stream); if (err != Z_OK) return err; err = inflate(&stream, Z_FINISH); if (err != Z_STREAM_END) { inflateEnd(&stream); if (err == Z_NEED_DICT || (err == Z_BUF_ERROR && stream.avail_in == 0)) return Z_DATA_ERROR; return err; } *destLen = stream.total_out; err = inflateEnd(&stream); return err; } instead-1.9.1/src/zlib/inftrees.h000644 001751 001751 00000004574 12161555570 017213 0ustar00peterpeter000000 000000 /* inftrees.h -- header to use inftrees.c * Copyright (C) 1995-2005 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ /* WARNING: this file should *not* be used by applications. It is part of the implementation of the compression library and is subject to change. Applications should only use zlib.h. */ /* Structure for decoding tables. Each entry provides either the information needed to do the operation requested by the code that indexed that table entry, or it provides a pointer to another table that indexes more bits of the code. op indicates whether the entry is a pointer to another table, a literal, a length or distance, an end-of-block, or an invalid code. For a table pointer, the low four bits of op is the number of index bits of that table. For a length or distance, the low four bits of op is the number of extra bits to get after the code. bits is the number of bits in this code or part of the code to drop off of the bit buffer. val is the actual byte to output in the case of a literal, the base length or distance, or the offset from the current table to the next table. Each entry is four bytes. */ typedef struct { unsigned char op; /* operation, extra bits, table bits */ unsigned char bits; /* bits in this part of the code */ unsigned short val; /* offset in table or code value */ } code; /* op values as set by inflate_table(): 00000000 - literal 0000tttt - table link, tttt != 0 is the number of table index bits 0001eeee - length or distance, eeee is the number of extra bits 01100000 - end of block 01000000 - invalid code */ /* Maximum size of dynamic tree. The maximum found in a long but non- exhaustive search was 1444 code structures (852 for length/literals and 592 for distances, the latter actually the result of an exhaustive search). The true maximum is not known, but the value below is more than safe. */ #define ENOUGH 2048 #define MAXD 592 /* Type of code to build for inftable() */ typedef enum { CODES, LENS, DISTS } codetype; extern int inflate_table OF((codetype type, unsigned short FAR *lens, unsigned codes, code FAR * FAR *table, unsigned FAR *bits, unsigned short FAR *work)); instead-1.9.1/src/zlib/zconf.h000644 001751 001751 00000023224 12161555570 016504 0ustar00peterpeter000000 000000 /* zconf.h -- configuration of the zlib compression library * Copyright (C) 1995-2005 Jean-loup Gailly. * For conditions of distribution and use, see copyright notice in zlib.h */ /* @(#) $Id$ */ #ifndef ZCONF_H #define ZCONF_H /* * If you *really* need a unique prefix for all types and library functions, * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. */ #ifdef Z_PREFIX # define deflateInit_ z_deflateInit_ # define deflate z_deflate # define deflateEnd z_deflateEnd # define inflateInit_ z_inflateInit_ # define inflate z_inflate # define inflateEnd z_inflateEnd # define deflateInit2_ z_deflateInit2_ # define deflateSetDictionary z_deflateSetDictionary # define deflateCopy z_deflateCopy # define deflateReset z_deflateReset # define deflateParams z_deflateParams # define deflateBound z_deflateBound # define deflatePrime z_deflatePrime # define inflateInit2_ z_inflateInit2_ # define inflateSetDictionary z_inflateSetDictionary # define inflateSync z_inflateSync # define inflateSyncPoint z_inflateSyncPoint # define inflateCopy z_inflateCopy # define inflateReset z_inflateReset # define inflateBack z_inflateBack # define inflateBackEnd z_inflateBackEnd # define compress z_compress # define compress2 z_compress2 # define compressBound z_compressBound # define uncompress z_uncompress # define adler32 z_adler32 # define crc32 z_crc32 # define get_crc_table z_get_crc_table # define zError z_zError # define alloc_func z_alloc_func # define free_func z_free_func # define in_func z_in_func # define out_func z_out_func # define Byte z_Byte # define uInt z_uInt # define uLong z_uLong # define Bytef z_Bytef # define charf z_charf # define intf z_intf # define uIntf z_uIntf # define uLongf z_uLongf # define voidpf z_voidpf # define voidp z_voidp #endif #if defined(__MSDOS__) && !defined(MSDOS) # define MSDOS #endif #if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) # define OS2 #endif #if defined(_WINDOWS) && !defined(WINDOWS) # define WINDOWS #endif #if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) # ifndef WIN32 # define WIN32 # endif #endif #if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) # if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) # ifndef SYS16BIT # define SYS16BIT # endif # endif #endif /* * Compile with -DMAXSEG_64K if the alloc function cannot allocate more * than 64k bytes at a time (needed on systems with 16-bit int). */ #ifdef SYS16BIT # define MAXSEG_64K #endif #ifdef MSDOS # define UNALIGNED_OK #endif #ifdef __STDC_VERSION__ # ifndef STDC # define STDC # endif # if __STDC_VERSION__ >= 199901L # ifndef STDC99 # define STDC99 # endif # endif #endif #if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) # define STDC #endif #if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) # define STDC #endif #if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) # define STDC #endif #if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) # define STDC #endif #if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ # define STDC #endif #ifndef STDC # ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ # define const /* note: need a more gentle solution here */ # endif #endif /* Some Mac compilers merge all .h files incorrectly: */ #if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) # define NO_DUMMY_DECL #endif /* Maximum value for memLevel in deflateInit2 */ #ifndef MAX_MEM_LEVEL # ifdef MAXSEG_64K # define MAX_MEM_LEVEL 8 # else # define MAX_MEM_LEVEL 9 # endif #endif /* Maximum value for windowBits in deflateInit2 and inflateInit2. * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files * created by gzip. (Files created by minigzip can still be extracted by * gzip.) */ #ifndef MAX_WBITS # define MAX_WBITS 15 /* 32K LZ77 window */ #endif /* The memory requirements for deflate are (in bytes): (1 << (windowBits+2)) + (1 << (memLevel+9)) that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) plus a few kilobytes for small objects. For example, if you want to reduce the default memory requirements from 256K to 128K, compile with make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" Of course this will generally degrade compression (there's no free lunch). The memory requirements for inflate are (in bytes) 1 << windowBits that is, 32K for windowBits=15 (default value) plus a few kilobytes for small objects. */ /* Type declarations */ #ifndef OF /* function prototypes */ # ifdef STDC # define OF(args) args # else # define OF(args) () # endif #endif /* The following definitions for FAR are needed only for MSDOS mixed * model programming (small or medium model with some far allocations). * This was tested only with MSC; for other MSDOS compilers you may have * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, * just define FAR to be empty. */ #ifdef SYS16BIT # if defined(M_I86SM) || defined(M_I86MM) /* MSC small or medium model */ # define SMALL_MEDIUM # ifdef _MSC_VER # define FAR _far # else # define FAR far # endif # endif # if (defined(__SMALL__) || defined(__MEDIUM__)) /* Turbo C small or medium model */ # define SMALL_MEDIUM # ifdef __BORLANDC__ # define FAR _far # else # define FAR far # endif # endif #endif #if defined(WINDOWS) || defined(WIN32) /* If building or using zlib as a DLL, define ZLIB_DLL. * This is not mandatory, but it offers a little performance increase. */ # ifdef ZLIB_DLL # if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) # ifdef ZLIB_INTERNAL # define ZEXTERN extern __declspec(dllexport) # else # define ZEXTERN extern __declspec(dllimport) # endif # endif # endif /* ZLIB_DLL */ /* If building or using zlib with the WINAPI/WINAPIV calling convention, * define ZLIB_WINAPI. * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. */ # ifdef ZLIB_WINAPI # ifdef FAR # undef FAR # endif # include /* No need for _export, use ZLIB.DEF instead. */ /* For complete Windows compatibility, use WINAPI, not __stdcall. */ # define ZEXPORT WINAPI # ifdef WIN32 # define ZEXPORTVA WINAPIV # else # define ZEXPORTVA FAR CDECL # endif # endif #endif #if defined (__BEOS__) # ifdef ZLIB_DLL # ifdef ZLIB_INTERNAL # define ZEXPORT __declspec(dllexport) # define ZEXPORTVA __declspec(dllexport) # else # define ZEXPORT __declspec(dllimport) # define ZEXPORTVA __declspec(dllimport) # endif # endif #endif #ifndef ZEXTERN # define ZEXTERN extern #endif #ifndef ZEXPORT # define ZEXPORT #endif #ifndef ZEXPORTVA # define ZEXPORTVA #endif #ifndef FAR # define FAR #endif #if !defined(__MACTYPES__) typedef unsigned char Byte; /* 8 bits */ #endif typedef unsigned int uInt; /* 16 bits or more */ typedef unsigned long uLong; /* 32 bits or more */ #ifdef SMALL_MEDIUM /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ # define Bytef Byte FAR #else typedef Byte FAR Bytef; #endif typedef char FAR charf; typedef int FAR intf; typedef uInt FAR uIntf; typedef uLong FAR uLongf; #ifdef STDC typedef void const *voidpc; typedef void FAR *voidpf; typedef void *voidp; #else typedef Byte const *voidpc; typedef Byte FAR *voidpf; typedef Byte *voidp; #endif #if 0 /* HAVE_UNISTD_H -- this line is updated by ./configure */ # include /* for off_t */ # include /* for SEEK_* and off_t */ # ifdef VMS # include /* for off_t */ # endif # define z_off_t off_t #endif #ifndef SEEK_SET # define SEEK_SET 0 /* Seek from beginning of file. */ # define SEEK_CUR 1 /* Seek from current position. */ # define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ #endif #ifndef z_off_t # define z_off_t long #endif #if defined(__OS400__) # define NO_vsnprintf #endif #if defined(__MVS__) # define NO_vsnprintf # ifdef FAR # undef FAR # endif #endif /* MVS linker does not support external names larger than 8 bytes */ #if defined(__MVS__) # pragma map(deflateInit_,"DEIN") # pragma map(deflateInit2_,"DEIN2") # pragma map(deflateEnd,"DEEND") # pragma map(deflateBound,"DEBND") # pragma map(inflateInit_,"ININ") # pragma map(inflateInit2_,"ININ2") # pragma map(inflateEnd,"INEND") # pragma map(inflateSync,"INSY") # pragma map(inflateSetDictionary,"INSEDI") # pragma map(compressBound,"CMBND") # pragma map(inflate_table,"INTABL") # pragma map(inflate_fast,"INFA") # pragma map(inflate_copyright,"INCOPY") #endif #endif /* ZCONF_H */ instead-1.9.1/src/zlib/Makefile.windows000644 001751 001751 00000000456 12161555570 020347 0ustar00peterpeter000000 000000 include ../../Rules.make include ../../config.make OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \ zutil.o inflate.o infback.o inftrees.o inffast.o all: libz.a libz.a: $(OBJS) $(OBJA) $(AR) $@ $(OBJS) $(OBJA) $(RANLIB) $@ >null 2>&1 clean: rm *.o *.a install: instead-1.9.1/src/zlib/minigzip.c000644 001751 001751 00000020224 12161555570 017203 0ustar00peterpeter000000 000000 /* minigzip.c -- simulate gzip using the zlib compression library * Copyright (C) 1995-2005 Jean-loup Gailly. * For conditions of distribution and use, see copyright notice in zlib.h */ /* * minigzip is a minimal implementation of the gzip utility. This is * only an example of using zlib and isn't meant to replace the * full-featured gzip. No attempt is made to deal with file systems * limiting names to 14 or 8+3 characters, etc... Error checking is * very limited. So use minigzip only for testing; use gzip for the * real thing. On MSDOS, use only on file names without extension * or in pipe mode. */ /* @(#) $Id$ */ #include #include "zlib.h" #ifdef STDC # include # include #endif #ifdef USE_MMAP # include # include # include #endif #if defined(MSDOS) || defined(OS2) || defined(WIN32) || defined(__CYGWIN__) # include # include # define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY) #else # define SET_BINARY_MODE(file) #endif #ifdef VMS # define unlink delete # define GZ_SUFFIX "-gz" #endif #ifdef RISCOS # define unlink remove # define GZ_SUFFIX "-gz" # define fileno(file) file->__file #endif #if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os # include /* for fileno */ #endif #ifndef WIN32 /* unlink already in stdio.h for WIN32 */ extern int unlink OF((const char *)); #endif #ifndef GZ_SUFFIX # define GZ_SUFFIX ".gz" #endif #define SUFFIX_LEN (sizeof(GZ_SUFFIX)-1) #define BUFLEN 16384 #define MAX_NAME_LEN 1024 #ifdef MAXSEG_64K # define local static /* Needed for systems with limitation on stack size. */ #else # define local #endif char *prog; void error OF((const char *msg)); void gz_compress OF((FILE *in, gzFile out)); #ifdef USE_MMAP int gz_compress_mmap OF((FILE *in, gzFile out)); #endif void gz_uncompress OF((gzFile in, FILE *out)); void file_compress OF((char *file, char *mode)); void file_uncompress OF((char *file)); int main OF((int argc, char *argv[])); /* =========================================================================== * Display error message and exit */ void error(msg) const char *msg; { fprintf(stderr, "%s: %s\n", prog, msg); exit(1); } /* =========================================================================== * Compress input to output then close both files. */ void gz_compress(in, out) FILE *in; gzFile out; { local char buf[BUFLEN]; int len; int err; #ifdef USE_MMAP /* Try first compressing with mmap. If mmap fails (minigzip used in a * pipe), use the normal fread loop. */ if (gz_compress_mmap(in, out) == Z_OK) return; #endif for (;;) { len = (int)fread(buf, 1, sizeof(buf), in); if (ferror(in)) { perror("fread"); exit(1); } if (len == 0) break; if (gzwrite(out, buf, (unsigned)len) != len) error(gzerror(out, &err)); } fclose(in); if (gzclose(out) != Z_OK) error("failed gzclose"); } #ifdef USE_MMAP /* MMAP version, Miguel Albrecht */ /* Try compressing the input file at once using mmap. Return Z_OK if * if success, Z_ERRNO otherwise. */ int gz_compress_mmap(in, out) FILE *in; gzFile out; { int len; int err; int ifd = fileno(in); caddr_t buf; /* mmap'ed buffer for the entire input file */ off_t buf_len; /* length of the input file */ struct stat sb; /* Determine the size of the file, needed for mmap: */ if (fstat(ifd, &sb) < 0) return Z_ERRNO; buf_len = sb.st_size; if (buf_len <= 0) return Z_ERRNO; /* Now do the actual mmap: */ buf = mmap((caddr_t) 0, buf_len, PROT_READ, MAP_SHARED, ifd, (off_t)0); if (buf == (caddr_t)(-1)) return Z_ERRNO; /* Compress the whole file at once: */ len = gzwrite(out, (char *)buf, (unsigned)buf_len); if (len != (int)buf_len) error(gzerror(out, &err)); munmap(buf, buf_len); fclose(in); if (gzclose(out) != Z_OK) error("failed gzclose"); return Z_OK; } #endif /* USE_MMAP */ /* =========================================================================== * Uncompress input to output then close both files. */ void gz_uncompress(in, out) gzFile in; FILE *out; { local char buf[BUFLEN]; int len; int err; for (;;) { len = gzread(in, buf, sizeof(buf)); if (len < 0) error (gzerror(in, &err)); if (len == 0) break; if ((int)fwrite(buf, 1, (unsigned)len, out) != len) { error("failed fwrite"); } } if (fclose(out)) error("failed fclose"); if (gzclose(in) != Z_OK) error("failed gzclose"); } /* =========================================================================== * Compress the given file: create a corresponding .gz file and remove the * original. */ void file_compress(file, mode) char *file; char *mode; { local char outfile[MAX_NAME_LEN]; FILE *in; gzFile out; strcpy(outfile, file); strcat(outfile, GZ_SUFFIX); in = fopen(file, "rb"); if (in == NULL) { perror(file); exit(1); } out = gzopen(outfile, mode); if (out == NULL) { fprintf(stderr, "%s: can't gzopen %s\n", prog, outfile); exit(1); } gz_compress(in, out); unlink(file); } /* =========================================================================== * Uncompress the given file and remove the original. */ void file_uncompress(file) char *file; { local char buf[MAX_NAME_LEN]; char *infile, *outfile; FILE *out; gzFile in; uInt len = (uInt)strlen(file); strcpy(buf, file); if (len > SUFFIX_LEN && strcmp(file+len-SUFFIX_LEN, GZ_SUFFIX) == 0) { infile = file; outfile = buf; outfile[len-3] = '\0'; } else { outfile = file; infile = buf; strcat(infile, GZ_SUFFIX); } in = gzopen(infile, "rb"); if (in == NULL) { fprintf(stderr, "%s: can't gzopen %s\n", prog, infile); exit(1); } out = fopen(outfile, "wb"); if (out == NULL) { perror(file); exit(1); } gz_uncompress(in, out); unlink(infile); } /* =========================================================================== * Usage: minigzip [-d] [-f] [-h] [-r] [-1 to -9] [files...] * -d : decompress * -f : compress with Z_FILTERED * -h : compress with Z_HUFFMAN_ONLY * -r : compress with Z_RLE * -1 to -9 : compression level */ int main(argc, argv) int argc; char *argv[]; { int uncompr = 0; gzFile file; char outmode[20]; strcpy(outmode, "wb6 "); prog = argv[0]; argc--, argv++; while (argc > 0) { if (strcmp(*argv, "-d") == 0) uncompr = 1; else if (strcmp(*argv, "-f") == 0) outmode[3] = 'f'; else if (strcmp(*argv, "-h") == 0) outmode[3] = 'h'; else if (strcmp(*argv, "-r") == 0) outmode[3] = 'R'; else if ((*argv)[0] == '-' && (*argv)[1] >= '1' && (*argv)[1] <= '9' && (*argv)[2] == 0) outmode[2] = (*argv)[1]; else break; argc--, argv++; } if (outmode[3] == ' ') outmode[3] = 0; if (argc == 0) { SET_BINARY_MODE(stdin); SET_BINARY_MODE(stdout); if (uncompr) { file = gzdopen(fileno(stdin), "rb"); if (file == NULL) error("can't gzdopen stdin"); gz_uncompress(file, stdout); } else { file = gzdopen(fileno(stdout), outmode); if (file == NULL) error("can't gzdopen stdout"); gz_compress(stdin, file); } } else { do { if (uncompr) { file_uncompress(*argv); } else { file_compress(*argv, outmode); } } while (argv++, --argc); } return 0; } instead-1.9.1/src/zlib/inflate.h000644 001751 001751 00000013617 12161555570 017014 0ustar00peterpeter000000 000000 /* inflate.h -- internal inflate state definition * Copyright (C) 1995-2004 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ /* WARNING: this file should *not* be used by applications. It is part of the implementation of the compression library and is subject to change. Applications should only use zlib.h. */ /* define NO_GZIP when compiling if you want to disable gzip header and trailer decoding by inflate(). NO_GZIP would be used to avoid linking in the crc code when it is not needed. For shared libraries, gzip decoding should be left enabled. */ #ifndef NO_GZIP # define GUNZIP #endif /* Possible inflate modes between inflate() calls */ typedef enum { HEAD, /* i: waiting for magic header */ FLAGS, /* i: waiting for method and flags (gzip) */ TIME, /* i: waiting for modification time (gzip) */ OS, /* i: waiting for extra flags and operating system (gzip) */ EXLEN, /* i: waiting for extra length (gzip) */ EXTRA, /* i: waiting for extra bytes (gzip) */ NAME, /* i: waiting for end of file name (gzip) */ COMMENT, /* i: waiting for end of comment (gzip) */ HCRC, /* i: waiting for header crc (gzip) */ DICTID, /* i: waiting for dictionary check value */ DICT, /* waiting for inflateSetDictionary() call */ TYPE, /* i: waiting for type bits, including last-flag bit */ TYPEDO, /* i: same, but skip check to exit inflate on new block */ STORED, /* i: waiting for stored size (length and complement) */ COPY, /* i/o: waiting for input or output to copy stored block */ TABLE, /* i: waiting for dynamic block table lengths */ LENLENS, /* i: waiting for code length code lengths */ CODELENS, /* i: waiting for length/lit and distance code lengths */ LEN, /* i: waiting for length/lit code */ LENEXT, /* i: waiting for length extra bits */ DIST, /* i: waiting for distance code */ DISTEXT, /* i: waiting for distance extra bits */ MATCH, /* o: waiting for output space to copy string */ LIT, /* o: waiting for output space to write literal */ CHECK, /* i: waiting for 32-bit check value */ LENGTH, /* i: waiting for 32-bit length (gzip) */ DONE, /* finished check, done -- remain here until reset */ BAD, /* got a data error -- remain here until reset */ MEM, /* got an inflate() memory error -- remain here until reset */ SYNC /* looking for synchronization bytes to restart inflate() */ } inflate_mode; /* State transitions between above modes - (most modes can go to the BAD or MEM mode -- not shown for clarity) Process header: HEAD -> (gzip) or (zlib) (gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME NAME -> COMMENT -> HCRC -> TYPE (zlib) -> DICTID or TYPE DICTID -> DICT -> TYPE Read deflate blocks: TYPE -> STORED or TABLE or LEN or CHECK STORED -> COPY -> TYPE TABLE -> LENLENS -> CODELENS -> LEN Read deflate codes: LEN -> LENEXT or LIT or TYPE LENEXT -> DIST -> DISTEXT -> MATCH -> LEN LIT -> LEN Process trailer: CHECK -> LENGTH -> DONE */ /* state maintained between inflate() calls. Approximately 7K bytes. */ struct inflate_state { inflate_mode mode; /* current inflate mode */ int last; /* true if processing last block */ int wrap; /* bit 0 true for zlib, bit 1 true for gzip */ int havedict; /* true if dictionary provided */ int flags; /* gzip header method and flags (0 if zlib) */ unsigned dmax; /* zlib header max distance (INFLATE_STRICT) */ unsigned long check; /* protected copy of check value */ unsigned long total; /* protected copy of output count */ gz_headerp head; /* where to save gzip header information */ /* sliding window */ unsigned wbits; /* log base 2 of requested window size */ unsigned wsize; /* window size or zero if not using window */ unsigned whave; /* valid bytes in the window */ unsigned write; /* window write index */ unsigned char FAR *window; /* allocated sliding window, if needed */ /* bit accumulator */ unsigned long hold; /* input bit accumulator */ unsigned bits; /* number of bits in "in" */ /* for string and stored block copying */ unsigned length; /* literal or length of data to copy */ unsigned offset; /* distance back to copy string from */ /* for table and code decoding */ unsigned extra; /* extra bits needed */ /* fixed and dynamic code tables */ code const FAR *lencode; /* starting table for length/literal codes */ code const FAR *distcode; /* starting table for distance codes */ unsigned lenbits; /* index bits for lencode */ unsigned distbits; /* index bits for distcode */ /* dynamic table building */ unsigned ncode; /* number of code length code lengths */ unsigned nlen; /* number of length code lengths */ unsigned ndist; /* number of distance code lengths */ unsigned have; /* number of code lengths in lens[] */ code FAR *next; /* next available space in codes[] */ unsigned short lens[320]; /* temporary storage for code lengths */ unsigned short work[288]; /* work area for code table building */ code codes[ENOUGH]; /* space for code tables */ }; instead-1.9.1/src/zlib/trees.h000644 001751 001751 00000020574 12161555570 016514 0ustar00peterpeter000000 000000 /* header created automatically with -DGEN_TREES_H */ local const ct_data static_ltree[L_CODES+2] = { {{ 12},{ 8}}, {{140},{ 8}}, {{ 76},{ 8}}, {{204},{ 8}}, {{ 44},{ 8}}, {{172},{ 8}}, {{108},{ 8}}, {{236},{ 8}}, {{ 28},{ 8}}, {{156},{ 8}}, {{ 92},{ 8}}, {{220},{ 8}}, {{ 60},{ 8}}, {{188},{ 8}}, {{124},{ 8}}, {{252},{ 8}}, {{ 2},{ 8}}, {{130},{ 8}}, {{ 66},{ 8}}, {{194},{ 8}}, {{ 34},{ 8}}, {{162},{ 8}}, {{ 98},{ 8}}, {{226},{ 8}}, {{ 18},{ 8}}, {{146},{ 8}}, {{ 82},{ 8}}, {{210},{ 8}}, {{ 50},{ 8}}, {{178},{ 8}}, {{114},{ 8}}, {{242},{ 8}}, {{ 10},{ 8}}, {{138},{ 8}}, {{ 74},{ 8}}, {{202},{ 8}}, {{ 42},{ 8}}, {{170},{ 8}}, {{106},{ 8}}, {{234},{ 8}}, {{ 26},{ 8}}, {{154},{ 8}}, {{ 90},{ 8}}, {{218},{ 8}}, {{ 58},{ 8}}, {{186},{ 8}}, {{122},{ 8}}, {{250},{ 8}}, {{ 6},{ 8}}, {{134},{ 8}}, {{ 70},{ 8}}, {{198},{ 8}}, {{ 38},{ 8}}, {{166},{ 8}}, {{102},{ 8}}, {{230},{ 8}}, {{ 22},{ 8}}, {{150},{ 8}}, {{ 86},{ 8}}, {{214},{ 8}}, {{ 54},{ 8}}, {{182},{ 8}}, {{118},{ 8}}, {{246},{ 8}}, {{ 14},{ 8}}, {{142},{ 8}}, {{ 78},{ 8}}, {{206},{ 8}}, {{ 46},{ 8}}, {{174},{ 8}}, {{110},{ 8}}, {{238},{ 8}}, {{ 30},{ 8}}, {{158},{ 8}}, {{ 94},{ 8}}, {{222},{ 8}}, {{ 62},{ 8}}, {{190},{ 8}}, {{126},{ 8}}, {{254},{ 8}}, {{ 1},{ 8}}, {{129},{ 8}}, {{ 65},{ 8}}, {{193},{ 8}}, {{ 33},{ 8}}, {{161},{ 8}}, {{ 97},{ 8}}, {{225},{ 8}}, {{ 17},{ 8}}, {{145},{ 8}}, {{ 81},{ 8}}, {{209},{ 8}}, {{ 49},{ 8}}, {{177},{ 8}}, {{113},{ 8}}, {{241},{ 8}}, {{ 9},{ 8}}, {{137},{ 8}}, {{ 73},{ 8}}, {{201},{ 8}}, {{ 41},{ 8}}, {{169},{ 8}}, {{105},{ 8}}, {{233},{ 8}}, {{ 25},{ 8}}, {{153},{ 8}}, {{ 89},{ 8}}, {{217},{ 8}}, {{ 57},{ 8}}, {{185},{ 8}}, {{121},{ 8}}, {{249},{ 8}}, {{ 5},{ 8}}, {{133},{ 8}}, {{ 69},{ 8}}, {{197},{ 8}}, {{ 37},{ 8}}, {{165},{ 8}}, {{101},{ 8}}, {{229},{ 8}}, {{ 21},{ 8}}, {{149},{ 8}}, {{ 85},{ 8}}, {{213},{ 8}}, {{ 53},{ 8}}, {{181},{ 8}}, {{117},{ 8}}, {{245},{ 8}}, {{ 13},{ 8}}, {{141},{ 8}}, {{ 77},{ 8}}, {{205},{ 8}}, {{ 45},{ 8}}, {{173},{ 8}}, {{109},{ 8}}, {{237},{ 8}}, {{ 29},{ 8}}, {{157},{ 8}}, {{ 93},{ 8}}, {{221},{ 8}}, {{ 61},{ 8}}, {{189},{ 8}}, {{125},{ 8}}, {{253},{ 8}}, {{ 19},{ 9}}, {{275},{ 9}}, {{147},{ 9}}, {{403},{ 9}}, {{ 83},{ 9}}, {{339},{ 9}}, {{211},{ 9}}, {{467},{ 9}}, {{ 51},{ 9}}, {{307},{ 9}}, {{179},{ 9}}, {{435},{ 9}}, {{115},{ 9}}, {{371},{ 9}}, {{243},{ 9}}, {{499},{ 9}}, {{ 11},{ 9}}, {{267},{ 9}}, {{139},{ 9}}, {{395},{ 9}}, {{ 75},{ 9}}, {{331},{ 9}}, {{203},{ 9}}, {{459},{ 9}}, {{ 43},{ 9}}, {{299},{ 9}}, {{171},{ 9}}, {{427},{ 9}}, {{107},{ 9}}, {{363},{ 9}}, {{235},{ 9}}, {{491},{ 9}}, {{ 27},{ 9}}, {{283},{ 9}}, {{155},{ 9}}, {{411},{ 9}}, {{ 91},{ 9}}, {{347},{ 9}}, {{219},{ 9}}, {{475},{ 9}}, {{ 59},{ 9}}, {{315},{ 9}}, {{187},{ 9}}, {{443},{ 9}}, {{123},{ 9}}, {{379},{ 9}}, {{251},{ 9}}, {{507},{ 9}}, {{ 7},{ 9}}, {{263},{ 9}}, {{135},{ 9}}, {{391},{ 9}}, {{ 71},{ 9}}, {{327},{ 9}}, {{199},{ 9}}, {{455},{ 9}}, {{ 39},{ 9}}, {{295},{ 9}}, {{167},{ 9}}, {{423},{ 9}}, {{103},{ 9}}, {{359},{ 9}}, {{231},{ 9}}, {{487},{ 9}}, {{ 23},{ 9}}, {{279},{ 9}}, {{151},{ 9}}, {{407},{ 9}}, {{ 87},{ 9}}, {{343},{ 9}}, {{215},{ 9}}, {{471},{ 9}}, {{ 55},{ 9}}, {{311},{ 9}}, {{183},{ 9}}, {{439},{ 9}}, {{119},{ 9}}, {{375},{ 9}}, {{247},{ 9}}, {{503},{ 9}}, {{ 15},{ 9}}, {{271},{ 9}}, {{143},{ 9}}, {{399},{ 9}}, {{ 79},{ 9}}, {{335},{ 9}}, {{207},{ 9}}, {{463},{ 9}}, {{ 47},{ 9}}, {{303},{ 9}}, {{175},{ 9}}, {{431},{ 9}}, {{111},{ 9}}, {{367},{ 9}}, {{239},{ 9}}, {{495},{ 9}}, {{ 31},{ 9}}, {{287},{ 9}}, {{159},{ 9}}, {{415},{ 9}}, {{ 95},{ 9}}, {{351},{ 9}}, {{223},{ 9}}, {{479},{ 9}}, {{ 63},{ 9}}, {{319},{ 9}}, {{191},{ 9}}, {{447},{ 9}}, {{127},{ 9}}, {{383},{ 9}}, {{255},{ 9}}, {{511},{ 9}}, {{ 0},{ 7}}, {{ 64},{ 7}}, {{ 32},{ 7}}, {{ 96},{ 7}}, {{ 16},{ 7}}, {{ 80},{ 7}}, {{ 48},{ 7}}, {{112},{ 7}}, {{ 8},{ 7}}, {{ 72},{ 7}}, {{ 40},{ 7}}, {{104},{ 7}}, {{ 24},{ 7}}, {{ 88},{ 7}}, {{ 56},{ 7}}, {{120},{ 7}}, {{ 4},{ 7}}, {{ 68},{ 7}}, {{ 36},{ 7}}, {{100},{ 7}}, {{ 20},{ 7}}, {{ 84},{ 7}}, {{ 52},{ 7}}, {{116},{ 7}}, {{ 3},{ 8}}, {{131},{ 8}}, {{ 67},{ 8}}, {{195},{ 8}}, {{ 35},{ 8}}, {{163},{ 8}}, {{ 99},{ 8}}, {{227},{ 8}} }; local const ct_data static_dtree[D_CODES] = { {{ 0},{ 5}}, {{16},{ 5}}, {{ 8},{ 5}}, {{24},{ 5}}, {{ 4},{ 5}}, {{20},{ 5}}, {{12},{ 5}}, {{28},{ 5}}, {{ 2},{ 5}}, {{18},{ 5}}, {{10},{ 5}}, {{26},{ 5}}, {{ 6},{ 5}}, {{22},{ 5}}, {{14},{ 5}}, {{30},{ 5}}, {{ 1},{ 5}}, {{17},{ 5}}, {{ 9},{ 5}}, {{25},{ 5}}, {{ 5},{ 5}}, {{21},{ 5}}, {{13},{ 5}}, {{29},{ 5}}, {{ 3},{ 5}}, {{19},{ 5}}, {{11},{ 5}}, {{27},{ 5}}, {{ 7},{ 5}}, {{23},{ 5}} }; const uch _dist_code[DIST_CODE_LEN] = { 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 16, 17, 18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29 }; const uch _length_code[MAX_MATCH-MIN_MATCH+1]= { 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28 }; local const int base_length[LENGTH_CODES] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 0 }; local const int base_dist[D_CODES] = { 0, 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576 }; instead-1.9.1/src/zlib/zconf.in.h000644 001751 001751 00000023224 12161555570 017111 0ustar00peterpeter000000 000000 /* zconf.h -- configuration of the zlib compression library * Copyright (C) 1995-2005 Jean-loup Gailly. * For conditions of distribution and use, see copyright notice in zlib.h */ /* @(#) $Id$ */ #ifndef ZCONF_H #define ZCONF_H /* * If you *really* need a unique prefix for all types and library functions, * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. */ #ifdef Z_PREFIX # define deflateInit_ z_deflateInit_ # define deflate z_deflate # define deflateEnd z_deflateEnd # define inflateInit_ z_inflateInit_ # define inflate z_inflate # define inflateEnd z_inflateEnd # define deflateInit2_ z_deflateInit2_ # define deflateSetDictionary z_deflateSetDictionary # define deflateCopy z_deflateCopy # define deflateReset z_deflateReset # define deflateParams z_deflateParams # define deflateBound z_deflateBound # define deflatePrime z_deflatePrime # define inflateInit2_ z_inflateInit2_ # define inflateSetDictionary z_inflateSetDictionary # define inflateSync z_inflateSync # define inflateSyncPoint z_inflateSyncPoint # define inflateCopy z_inflateCopy # define inflateReset z_inflateReset # define inflateBack z_inflateBack # define inflateBackEnd z_inflateBackEnd # define compress z_compress # define compress2 z_compress2 # define compressBound z_compressBound # define uncompress z_uncompress # define adler32 z_adler32 # define crc32 z_crc32 # define get_crc_table z_get_crc_table # define zError z_zError # define alloc_func z_alloc_func # define free_func z_free_func # define in_func z_in_func # define out_func z_out_func # define Byte z_Byte # define uInt z_uInt # define uLong z_uLong # define Bytef z_Bytef # define charf z_charf # define intf z_intf # define uIntf z_uIntf # define uLongf z_uLongf # define voidpf z_voidpf # define voidp z_voidp #endif #if defined(__MSDOS__) && !defined(MSDOS) # define MSDOS #endif #if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) # define OS2 #endif #if defined(_WINDOWS) && !defined(WINDOWS) # define WINDOWS #endif #if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) # ifndef WIN32 # define WIN32 # endif #endif #if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) # if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) # ifndef SYS16BIT # define SYS16BIT # endif # endif #endif /* * Compile with -DMAXSEG_64K if the alloc function cannot allocate more * than 64k bytes at a time (needed on systems with 16-bit int). */ #ifdef SYS16BIT # define MAXSEG_64K #endif #ifdef MSDOS # define UNALIGNED_OK #endif #ifdef __STDC_VERSION__ # ifndef STDC # define STDC # endif # if __STDC_VERSION__ >= 199901L # ifndef STDC99 # define STDC99 # endif # endif #endif #if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) # define STDC #endif #if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) # define STDC #endif #if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) # define STDC #endif #if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) # define STDC #endif #if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ # define STDC #endif #ifndef STDC # ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ # define const /* note: need a more gentle solution here */ # endif #endif /* Some Mac compilers merge all .h files incorrectly: */ #if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) # define NO_DUMMY_DECL #endif /* Maximum value for memLevel in deflateInit2 */ #ifndef MAX_MEM_LEVEL # ifdef MAXSEG_64K # define MAX_MEM_LEVEL 8 # else # define MAX_MEM_LEVEL 9 # endif #endif /* Maximum value for windowBits in deflateInit2 and inflateInit2. * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files * created by gzip. (Files created by minigzip can still be extracted by * gzip.) */ #ifndef MAX_WBITS # define MAX_WBITS 15 /* 32K LZ77 window */ #endif /* The memory requirements for deflate are (in bytes): (1 << (windowBits+2)) + (1 << (memLevel+9)) that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) plus a few kilobytes for small objects. For example, if you want to reduce the default memory requirements from 256K to 128K, compile with make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" Of course this will generally degrade compression (there's no free lunch). The memory requirements for inflate are (in bytes) 1 << windowBits that is, 32K for windowBits=15 (default value) plus a few kilobytes for small objects. */ /* Type declarations */ #ifndef OF /* function prototypes */ # ifdef STDC # define OF(args) args # else # define OF(args) () # endif #endif /* The following definitions for FAR are needed only for MSDOS mixed * model programming (small or medium model with some far allocations). * This was tested only with MSC; for other MSDOS compilers you may have * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, * just define FAR to be empty. */ #ifdef SYS16BIT # if defined(M_I86SM) || defined(M_I86MM) /* MSC small or medium model */ # define SMALL_MEDIUM # ifdef _MSC_VER # define FAR _far # else # define FAR far # endif # endif # if (defined(__SMALL__) || defined(__MEDIUM__)) /* Turbo C small or medium model */ # define SMALL_MEDIUM # ifdef __BORLANDC__ # define FAR _far # else # define FAR far # endif # endif #endif #if defined(WINDOWS) || defined(WIN32) /* If building or using zlib as a DLL, define ZLIB_DLL. * This is not mandatory, but it offers a little performance increase. */ # ifdef ZLIB_DLL # if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) # ifdef ZLIB_INTERNAL # define ZEXTERN extern __declspec(dllexport) # else # define ZEXTERN extern __declspec(dllimport) # endif # endif # endif /* ZLIB_DLL */ /* If building or using zlib with the WINAPI/WINAPIV calling convention, * define ZLIB_WINAPI. * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. */ # ifdef ZLIB_WINAPI # ifdef FAR # undef FAR # endif # include /* No need for _export, use ZLIB.DEF instead. */ /* For complete Windows compatibility, use WINAPI, not __stdcall. */ # define ZEXPORT WINAPI # ifdef WIN32 # define ZEXPORTVA WINAPIV # else # define ZEXPORTVA FAR CDECL # endif # endif #endif #if defined (__BEOS__) # ifdef ZLIB_DLL # ifdef ZLIB_INTERNAL # define ZEXPORT __declspec(dllexport) # define ZEXPORTVA __declspec(dllexport) # else # define ZEXPORT __declspec(dllimport) # define ZEXPORTVA __declspec(dllimport) # endif # endif #endif #ifndef ZEXTERN # define ZEXTERN extern #endif #ifndef ZEXPORT # define ZEXPORT #endif #ifndef ZEXPORTVA # define ZEXPORTVA #endif #ifndef FAR # define FAR #endif #if !defined(__MACTYPES__) typedef unsigned char Byte; /* 8 bits */ #endif typedef unsigned int uInt; /* 16 bits or more */ typedef unsigned long uLong; /* 32 bits or more */ #ifdef SMALL_MEDIUM /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ # define Bytef Byte FAR #else typedef Byte FAR Bytef; #endif typedef char FAR charf; typedef int FAR intf; typedef uInt FAR uIntf; typedef uLong FAR uLongf; #ifdef STDC typedef void const *voidpc; typedef void FAR *voidpf; typedef void *voidp; #else typedef Byte const *voidpc; typedef Byte FAR *voidpf; typedef Byte *voidp; #endif #if 0 /* HAVE_UNISTD_H -- this line is updated by ./configure */ # include /* for off_t */ # include /* for SEEK_* and off_t */ # ifdef VMS # include /* for off_t */ # endif # define z_off_t off_t #endif #ifndef SEEK_SET # define SEEK_SET 0 /* Seek from beginning of file. */ # define SEEK_CUR 1 /* Seek from current position. */ # define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ #endif #ifndef z_off_t # define z_off_t long #endif #if defined(__OS400__) # define NO_vsnprintf #endif #if defined(__MVS__) # define NO_vsnprintf # ifdef FAR # undef FAR # endif #endif /* MVS linker does not support external names larger than 8 bytes */ #if defined(__MVS__) # pragma map(deflateInit_,"DEIN") # pragma map(deflateInit2_,"DEIN2") # pragma map(deflateEnd,"DEEND") # pragma map(deflateBound,"DEBND") # pragma map(inflateInit_,"ININ") # pragma map(inflateInit2_,"ININ2") # pragma map(inflateEnd,"INEND") # pragma map(inflateSync,"INSY") # pragma map(inflateSetDictionary,"INSEDI") # pragma map(compressBound,"CMBND") # pragma map(inflate_table,"INTABL") # pragma map(inflate_fast,"INFA") # pragma map(inflate_copyright,"INCOPY") #endif #endif /* ZCONF_H */ instead-1.9.1/src/zlib/inffast.c000644 001751 001751 00000031126 12161555570 017012 0ustar00peterpeter000000 000000 /* inffast.c -- fast decoding * Copyright (C) 1995-2004 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ #include "zutil.h" #include "inftrees.h" #include "inflate.h" #include "inffast.h" #ifndef ASMINF /* Allow machine dependent optimization for post-increment or pre-increment. Based on testing to date, Pre-increment preferred for: - PowerPC G3 (Adler) - MIPS R5000 (Randers-Pehrson) Post-increment preferred for: - none No measurable difference: - Pentium III (Anderson) - M68060 (Nikl) */ #ifdef POSTINC # define OFF 0 # define PUP(a) *(a)++ #else # define OFF 1 # define PUP(a) *++(a) #endif /* Decode literal, length, and distance codes and write out the resulting literal and match bytes until either not enough input or output is available, an end-of-block is encountered, or a data error is encountered. When large enough input and output buffers are supplied to inflate(), for example, a 16K input buffer and a 64K output buffer, more than 95% of the inflate execution time is spent in this routine. Entry assumptions: state->mode == LEN strm->avail_in >= 6 strm->avail_out >= 258 start >= strm->avail_out state->bits < 8 On return, state->mode is one of: LEN -- ran out of enough output space or enough available input TYPE -- reached end of block code, inflate() to interpret next block BAD -- error in block data Notes: - The maximum input bits used by a length/distance pair is 15 bits for the length code, 5 bits for the length extra, 15 bits for the distance code, and 13 bits for the distance extra. This totals 48 bits, or six bytes. Therefore if strm->avail_in >= 6, then there is enough input to avoid checking for available input while decoding. - The maximum bytes that a single length/distance pair can output is 258 bytes, which is the maximum length that can be coded. inflate_fast() requires strm->avail_out >= 258 for each loop to avoid checking for output space. */ void inflate_fast(strm, start) z_streamp strm; unsigned start; /* inflate()'s starting value for strm->avail_out */ { struct inflate_state FAR *state; unsigned char FAR *in; /* local strm->next_in */ unsigned char FAR *last; /* while in < last, enough input available */ unsigned char FAR *out; /* local strm->next_out */ unsigned char FAR *beg; /* inflate()'s initial strm->next_out */ unsigned char FAR *end; /* while out < end, enough space available */ #ifdef INFLATE_STRICT unsigned dmax; /* maximum distance from zlib header */ #endif unsigned wsize; /* window size or zero if not using window */ unsigned whave; /* valid bytes in the window */ unsigned write; /* window write index */ unsigned char FAR *window; /* allocated sliding window, if wsize != 0 */ unsigned long hold; /* local strm->hold */ unsigned bits; /* local strm->bits */ code const FAR *lcode; /* local strm->lencode */ code const FAR *dcode; /* local strm->distcode */ unsigned lmask; /* mask for first level of length codes */ unsigned dmask; /* mask for first level of distance codes */ code this; /* retrieved table entry */ unsigned op; /* code bits, operation, extra bits, or */ /* window position, window bytes to copy */ unsigned len; /* match length, unused bytes */ unsigned dist; /* match distance */ unsigned char FAR *from; /* where to copy match from */ /* copy state to local variables */ state = (struct inflate_state FAR *)strm->state; in = strm->next_in - OFF; last = in + (strm->avail_in - 5); out = strm->next_out - OFF; beg = out - (start - strm->avail_out); end = out + (strm->avail_out - 257); #ifdef INFLATE_STRICT dmax = state->dmax; #endif wsize = state->wsize; whave = state->whave; write = state->write; window = state->window; hold = state->hold; bits = state->bits; lcode = state->lencode; dcode = state->distcode; lmask = (1U << state->lenbits) - 1; dmask = (1U << state->distbits) - 1; /* decode literals and length/distances until end-of-block or not enough input data or output space */ do { if (bits < 15) { hold += (unsigned long)(PUP(in)) << bits; bits += 8; hold += (unsigned long)(PUP(in)) << bits; bits += 8; } this = lcode[hold & lmask]; dolen: op = (unsigned)(this.bits); hold >>= op; bits -= op; op = (unsigned)(this.op); if (op == 0) { /* literal */ Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ? "inflate: literal '%c'\n" : "inflate: literal 0x%02x\n", this.val)); PUP(out) = (unsigned char)(this.val); } else if (op & 16) { /* length base */ len = (unsigned)(this.val); op &= 15; /* number of extra bits */ if (op) { if (bits < op) { hold += (unsigned long)(PUP(in)) << bits; bits += 8; } len += (unsigned)hold & ((1U << op) - 1); hold >>= op; bits -= op; } Tracevv((stderr, "inflate: length %u\n", len)); if (bits < 15) { hold += (unsigned long)(PUP(in)) << bits; bits += 8; hold += (unsigned long)(PUP(in)) << bits; bits += 8; } this = dcode[hold & dmask]; dodist: op = (unsigned)(this.bits); hold >>= op; bits -= op; op = (unsigned)(this.op); if (op & 16) { /* distance base */ dist = (unsigned)(this.val); op &= 15; /* number of extra bits */ if (bits < op) { hold += (unsigned long)(PUP(in)) << bits; bits += 8; if (bits < op) { hold += (unsigned long)(PUP(in)) << bits; bits += 8; } } dist += (unsigned)hold & ((1U << op) - 1); #ifdef INFLATE_STRICT if (dist > dmax) { strm->msg = (char *)"invalid distance too far back"; state->mode = BAD; break; } #endif hold >>= op; bits -= op; Tracevv((stderr, "inflate: distance %u\n", dist)); op = (unsigned)(out - beg); /* max distance in output */ if (dist > op) { /* see if copy from window */ op = dist - op; /* distance back in window */ if (op > whave) { strm->msg = (char *)"invalid distance too far back"; state->mode = BAD; break; } from = window - OFF; if (write == 0) { /* very common case */ from += wsize - op; if (op < len) { /* some from window */ len -= op; do { PUP(out) = PUP(from); } while (--op); from = out - dist; /* rest from output */ } } else if (write < op) { /* wrap around window */ from += wsize + write - op; op -= write; if (op < len) { /* some from end of window */ len -= op; do { PUP(out) = PUP(from); } while (--op); from = window - OFF; if (write < len) { /* some from start of window */ op = write; len -= op; do { PUP(out) = PUP(from); } while (--op); from = out - dist; /* rest from output */ } } } else { /* contiguous in window */ from += write - op; if (op < len) { /* some from window */ len -= op; do { PUP(out) = PUP(from); } while (--op); from = out - dist; /* rest from output */ } } while (len > 2) { PUP(out) = PUP(from); PUP(out) = PUP(from); PUP(out) = PUP(from); len -= 3; } if (len) { PUP(out) = PUP(from); if (len > 1) PUP(out) = PUP(from); } } else { from = out - dist; /* copy direct from output */ do { /* minimum length is three */ PUP(out) = PUP(from); PUP(out) = PUP(from); PUP(out) = PUP(from); len -= 3; } while (len > 2); if (len) { PUP(out) = PUP(from); if (len > 1) PUP(out) = PUP(from); } } } else if ((op & 64) == 0) { /* 2nd level distance code */ this = dcode[this.val + (hold & ((1U << op) - 1))]; goto dodist; } else { strm->msg = (char *)"invalid distance code"; state->mode = BAD; break; } } else if ((op & 64) == 0) { /* 2nd level length code */ this = lcode[this.val + (hold & ((1U << op) - 1))]; goto dolen; } else if (op & 32) { /* end-of-block */ Tracevv((stderr, "inflate: end of block\n")); state->mode = TYPE; break; } else { strm->msg = (char *)"invalid literal/length code"; state->mode = BAD; break; } } while (in < last && out < end); /* return unused bytes (on entry, bits < 8, so in won't go too far back) */ len = bits >> 3; in -= len; bits -= len << 3; hold &= (1U << bits) - 1; /* update state and return */ strm->next_in = in + OFF; strm->next_out = out + OFF; strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last)); strm->avail_out = (unsigned)(out < end ? 257 + (end - out) : 257 - (out - end)); state->hold = hold; state->bits = bits; return; } /* inflate_fast() speedups that turned out slower (on a PowerPC G3 750CXe): - Using bit fields for code structure - Different op definition to avoid & for extra bits (do & for table bits) - Three separate decoding do-loops for direct, window, and write == 0 - Special case for distance > 1 copies to do overlapped load and store copy - Explicit branch predictions (based on measured branch probabilities) - Deferring match copy and interspersed it with decoding subsequent codes - Swapping literal/length else - Swapping window/direct else - Larger unrolled copy loops (three is about right) - Moving len -= 3 statement into middle of loop */ #endif /* !ASMINF */ instead-1.9.1/src/zlib/example.c000644 001751 001751 00000041103 12161555570 017007 0ustar00peterpeter000000 000000 /* example.c -- usage example of the zlib compression library * Copyright (C) 1995-2004 Jean-loup Gailly. * For conditions of distribution and use, see copyright notice in zlib.h */ /* @(#) $Id$ */ #include #include "zlib.h" #ifdef STDC # include # include #endif #if defined(VMS) || defined(RISCOS) # define TESTFILE "foo-gz" #else # define TESTFILE "foo.gz" #endif #define CHECK_ERR(err, msg) { \ if (err != Z_OK) { \ fprintf(stderr, "%s error: %d\n", msg, err); \ exit(1); \ } \ } const char hello[] = "hello, hello!"; /* "hello world" would be more standard, but the repeated "hello" * stresses the compression code better, sorry... */ const char dictionary[] = "hello"; uLong dictId; /* Adler32 value of the dictionary */ void test_compress OF((Byte *compr, uLong comprLen, Byte *uncompr, uLong uncomprLen)); void test_gzio OF((const char *fname, Byte *uncompr, uLong uncomprLen)); void test_deflate OF((Byte *compr, uLong comprLen)); void test_inflate OF((Byte *compr, uLong comprLen, Byte *uncompr, uLong uncomprLen)); void test_large_deflate OF((Byte *compr, uLong comprLen, Byte *uncompr, uLong uncomprLen)); void test_large_inflate OF((Byte *compr, uLong comprLen, Byte *uncompr, uLong uncomprLen)); void test_flush OF((Byte *compr, uLong *comprLen)); void test_sync OF((Byte *compr, uLong comprLen, Byte *uncompr, uLong uncomprLen)); void test_dict_deflate OF((Byte *compr, uLong comprLen)); void test_dict_inflate OF((Byte *compr, uLong comprLen, Byte *uncompr, uLong uncomprLen)); int main OF((int argc, char *argv[])); /* =========================================================================== * Test compress() and uncompress() */ void test_compress(compr, comprLen, uncompr, uncomprLen) Byte *compr, *uncompr; uLong comprLen, uncomprLen; { int err; uLong len = (uLong)strlen(hello)+1; err = compress(compr, &comprLen, (const Bytef*)hello, len); CHECK_ERR(err, "compress"); strcpy((char*)uncompr, "garbage"); err = uncompress(uncompr, &uncomprLen, compr, comprLen); CHECK_ERR(err, "uncompress"); if (strcmp((char*)uncompr, hello)) { fprintf(stderr, "bad uncompress\n"); exit(1); } else { printf("uncompress(): %s\n", (char *)uncompr); } } /* =========================================================================== * Test read/write of .gz files */ void test_gzio(fname, uncompr, uncomprLen) const char *fname; /* compressed file name */ Byte *uncompr; uLong uncomprLen; { #ifdef NO_GZCOMPRESS fprintf(stderr, "NO_GZCOMPRESS -- gz* functions cannot compress\n"); #else int err; int len = (int)strlen(hello)+1; gzFile file; z_off_t pos; file = gzopen(fname, "wb"); if (file == NULL) { fprintf(stderr, "gzopen error\n"); exit(1); } gzputc(file, 'h'); if (gzputs(file, "ello") != 4) { fprintf(stderr, "gzputs err: %s\n", gzerror(file, &err)); exit(1); } if (gzprintf(file, ", %s!", "hello") != 8) { fprintf(stderr, "gzprintf err: %s\n", gzerror(file, &err)); exit(1); } gzseek(file, 1L, SEEK_CUR); /* add one zero byte */ gzclose(file); file = gzopen(fname, "rb"); if (file == NULL) { fprintf(stderr, "gzopen error\n"); exit(1); } strcpy((char*)uncompr, "garbage"); if (gzread(file, uncompr, (unsigned)uncomprLen) != len) { fprintf(stderr, "gzread err: %s\n", gzerror(file, &err)); exit(1); } if (strcmp((char*)uncompr, hello)) { fprintf(stderr, "bad gzread: %s\n", (char*)uncompr); exit(1); } else { printf("gzread(): %s\n", (char*)uncompr); } pos = gzseek(file, -8L, SEEK_CUR); if (pos != 6 || gztell(file) != pos) { fprintf(stderr, "gzseek error, pos=%ld, gztell=%ld\n", (long)pos, (long)gztell(file)); exit(1); } if (gzgetc(file) != ' ') { fprintf(stderr, "gzgetc error\n"); exit(1); } if (gzungetc(' ', file) != ' ') { fprintf(stderr, "gzungetc error\n"); exit(1); } gzgets(file, (char*)uncompr, (int)uncomprLen); if (strlen((char*)uncompr) != 7) { /* " hello!" */ fprintf(stderr, "gzgets err after gzseek: %s\n", gzerror(file, &err)); exit(1); } if (strcmp((char*)uncompr, hello + 6)) { fprintf(stderr, "bad gzgets after gzseek\n"); exit(1); } else { printf("gzgets() after gzseek: %s\n", (char*)uncompr); } gzclose(file); #endif } /* =========================================================================== * Test deflate() with small buffers */ void test_deflate(compr, comprLen) Byte *compr; uLong comprLen; { z_stream c_stream; /* compression stream */ int err; uLong len = (uLong)strlen(hello)+1; c_stream.zalloc = (alloc_func)0; c_stream.zfree = (free_func)0; c_stream.opaque = (voidpf)0; err = deflateInit(&c_stream, Z_DEFAULT_COMPRESSION); CHECK_ERR(err, "deflateInit"); c_stream.next_in = (Bytef*)hello; c_stream.next_out = compr; while (c_stream.total_in != len && c_stream.total_out < comprLen) { c_stream.avail_in = c_stream.avail_out = 1; /* force small buffers */ err = deflate(&c_stream, Z_NO_FLUSH); CHECK_ERR(err, "deflate"); } /* Finish the stream, still forcing small buffers: */ for (;;) { c_stream.avail_out = 1; err = deflate(&c_stream, Z_FINISH); if (err == Z_STREAM_END) break; CHECK_ERR(err, "deflate"); } err = deflateEnd(&c_stream); CHECK_ERR(err, "deflateEnd"); } /* =========================================================================== * Test inflate() with small buffers */ void test_inflate(compr, comprLen, uncompr, uncomprLen) Byte *compr, *uncompr; uLong comprLen, uncomprLen; { int err; z_stream d_stream; /* decompression stream */ strcpy((char*)uncompr, "garbage"); d_stream.zalloc = (alloc_func)0; d_stream.zfree = (free_func)0; d_stream.opaque = (voidpf)0; d_stream.next_in = compr; d_stream.avail_in = 0; d_stream.next_out = uncompr; err = inflateInit(&d_stream); CHECK_ERR(err, "inflateInit"); while (d_stream.total_out < uncomprLen && d_stream.total_in < comprLen) { d_stream.avail_in = d_stream.avail_out = 1; /* force small buffers */ err = inflate(&d_stream, Z_NO_FLUSH); if (err == Z_STREAM_END) break; CHECK_ERR(err, "inflate"); } err = inflateEnd(&d_stream); CHECK_ERR(err, "inflateEnd"); if (strcmp((char*)uncompr, hello)) { fprintf(stderr, "bad inflate\n"); exit(1); } else { printf("inflate(): %s\n", (char *)uncompr); } } /* =========================================================================== * Test deflate() with large buffers and dynamic change of compression level */ void test_large_deflate(compr, comprLen, uncompr, uncomprLen) Byte *compr, *uncompr; uLong comprLen, uncomprLen; { z_stream c_stream; /* compression stream */ int err; c_stream.zalloc = (alloc_func)0; c_stream.zfree = (free_func)0; c_stream.opaque = (voidpf)0; err = deflateInit(&c_stream, Z_BEST_SPEED); CHECK_ERR(err, "deflateInit"); c_stream.next_out = compr; c_stream.avail_out = (uInt)comprLen; /* At this point, uncompr is still mostly zeroes, so it should compress * very well: */ c_stream.next_in = uncompr; c_stream.avail_in = (uInt)uncomprLen; err = deflate(&c_stream, Z_NO_FLUSH); CHECK_ERR(err, "deflate"); if (c_stream.avail_in != 0) { fprintf(stderr, "deflate not greedy\n"); exit(1); } /* Feed in already compressed data and switch to no compression: */ deflateParams(&c_stream, Z_NO_COMPRESSION, Z_DEFAULT_STRATEGY); c_stream.next_in = compr; c_stream.avail_in = (uInt)comprLen/2; err = deflate(&c_stream, Z_NO_FLUSH); CHECK_ERR(err, "deflate"); /* Switch back to compressing mode: */ deflateParams(&c_stream, Z_BEST_COMPRESSION, Z_FILTERED); c_stream.next_in = uncompr; c_stream.avail_in = (uInt)uncomprLen; err = deflate(&c_stream, Z_NO_FLUSH); CHECK_ERR(err, "deflate"); err = deflate(&c_stream, Z_FINISH); if (err != Z_STREAM_END) { fprintf(stderr, "deflate should report Z_STREAM_END\n"); exit(1); } err = deflateEnd(&c_stream); CHECK_ERR(err, "deflateEnd"); } /* =========================================================================== * Test inflate() with large buffers */ void test_large_inflate(compr, comprLen, uncompr, uncomprLen) Byte *compr, *uncompr; uLong comprLen, uncomprLen; { int err; z_stream d_stream; /* decompression stream */ strcpy((char*)uncompr, "garbage"); d_stream.zalloc = (alloc_func)0; d_stream.zfree = (free_func)0; d_stream.opaque = (voidpf)0; d_stream.next_in = compr; d_stream.avail_in = (uInt)comprLen; err = inflateInit(&d_stream); CHECK_ERR(err, "inflateInit"); for (;;) { d_stream.next_out = uncompr; /* discard the output */ d_stream.avail_out = (uInt)uncomprLen; err = inflate(&d_stream, Z_NO_FLUSH); if (err == Z_STREAM_END) break; CHECK_ERR(err, "large inflate"); } err = inflateEnd(&d_stream); CHECK_ERR(err, "inflateEnd"); if (d_stream.total_out != 2*uncomprLen + comprLen/2) { fprintf(stderr, "bad large inflate: %ld\n", d_stream.total_out); exit(1); } else { printf("large_inflate(): OK\n"); } } /* =========================================================================== * Test deflate() with full flush */ void test_flush(compr, comprLen) Byte *compr; uLong *comprLen; { z_stream c_stream; /* compression stream */ int err; uInt len = (uInt)strlen(hello)+1; c_stream.zalloc = (alloc_func)0; c_stream.zfree = (free_func)0; c_stream.opaque = (voidpf)0; err = deflateInit(&c_stream, Z_DEFAULT_COMPRESSION); CHECK_ERR(err, "deflateInit"); c_stream.next_in = (Bytef*)hello; c_stream.next_out = compr; c_stream.avail_in = 3; c_stream.avail_out = (uInt)*comprLen; err = deflate(&c_stream, Z_FULL_FLUSH); CHECK_ERR(err, "deflate"); compr[3]++; /* force an error in first compressed block */ c_stream.avail_in = len - 3; err = deflate(&c_stream, Z_FINISH); if (err != Z_STREAM_END) { CHECK_ERR(err, "deflate"); } err = deflateEnd(&c_stream); CHECK_ERR(err, "deflateEnd"); *comprLen = c_stream.total_out; } /* =========================================================================== * Test inflateSync() */ void test_sync(compr, comprLen, uncompr, uncomprLen) Byte *compr, *uncompr; uLong comprLen, uncomprLen; { int err; z_stream d_stream; /* decompression stream */ strcpy((char*)uncompr, "garbage"); d_stream.zalloc = (alloc_func)0; d_stream.zfree = (free_func)0; d_stream.opaque = (voidpf)0; d_stream.next_in = compr; d_stream.avail_in = 2; /* just read the zlib header */ err = inflateInit(&d_stream); CHECK_ERR(err, "inflateInit"); d_stream.next_out = uncompr; d_stream.avail_out = (uInt)uncomprLen; inflate(&d_stream, Z_NO_FLUSH); CHECK_ERR(err, "inflate"); d_stream.avail_in = (uInt)comprLen-2; /* read all compressed data */ err = inflateSync(&d_stream); /* but skip the damaged part */ CHECK_ERR(err, "inflateSync"); err = inflate(&d_stream, Z_FINISH); if (err != Z_DATA_ERROR) { fprintf(stderr, "inflate should report DATA_ERROR\n"); /* Because of incorrect adler32 */ exit(1); } err = inflateEnd(&d_stream); CHECK_ERR(err, "inflateEnd"); printf("after inflateSync(): hel%s\n", (char *)uncompr); } /* =========================================================================== * Test deflate() with preset dictionary */ void test_dict_deflate(compr, comprLen) Byte *compr; uLong comprLen; { z_stream c_stream; /* compression stream */ int err; c_stream.zalloc = (alloc_func)0; c_stream.zfree = (free_func)0; c_stream.opaque = (voidpf)0; err = deflateInit(&c_stream, Z_BEST_COMPRESSION); CHECK_ERR(err, "deflateInit"); err = deflateSetDictionary(&c_stream, (const Bytef*)dictionary, sizeof(dictionary)); CHECK_ERR(err, "deflateSetDictionary"); dictId = c_stream.adler; c_stream.next_out = compr; c_stream.avail_out = (uInt)comprLen; c_stream.next_in = (Bytef*)hello; c_stream.avail_in = (uInt)strlen(hello)+1; err = deflate(&c_stream, Z_FINISH); if (err != Z_STREAM_END) { fprintf(stderr, "deflate should report Z_STREAM_END\n"); exit(1); } err = deflateEnd(&c_stream); CHECK_ERR(err, "deflateEnd"); } /* =========================================================================== * Test inflate() with a preset dictionary */ void test_dict_inflate(compr, comprLen, uncompr, uncomprLen) Byte *compr, *uncompr; uLong comprLen, uncomprLen; { int err; z_stream d_stream; /* decompression stream */ strcpy((char*)uncompr, "garbage"); d_stream.zalloc = (alloc_func)0; d_stream.zfree = (free_func)0; d_stream.opaque = (voidpf)0; d_stream.next_in = compr; d_stream.avail_in = (uInt)comprLen; err = inflateInit(&d_stream); CHECK_ERR(err, "inflateInit"); d_stream.next_out = uncompr; d_stream.avail_out = (uInt)uncomprLen; for (;;) { err = inflate(&d_stream, Z_NO_FLUSH); if (err == Z_STREAM_END) break; if (err == Z_NEED_DICT) { if (d_stream.adler != dictId) { fprintf(stderr, "unexpected dictionary"); exit(1); } err = inflateSetDictionary(&d_stream, (const Bytef*)dictionary, sizeof(dictionary)); } CHECK_ERR(err, "inflate with dict"); } err = inflateEnd(&d_stream); CHECK_ERR(err, "inflateEnd"); if (strcmp((char*)uncompr, hello)) { fprintf(stderr, "bad inflate with dict\n"); exit(1); } else { printf("inflate with dictionary: %s\n", (char *)uncompr); } } /* =========================================================================== * Usage: example [output.gz [input.gz]] */ int main(argc, argv) int argc; char *argv[]; { Byte *compr, *uncompr; uLong comprLen = 10000*sizeof(int); /* don't overflow on MSDOS */ uLong uncomprLen = comprLen; static const char* myVersion = ZLIB_VERSION; if (zlibVersion()[0] != myVersion[0]) { fprintf(stderr, "incompatible zlib version\n"); exit(1); } else if (strcmp(zlibVersion(), ZLIB_VERSION) != 0) { fprintf(stderr, "warning: different zlib version\n"); } printf("zlib version %s = 0x%04x, compile flags = 0x%lx\n", ZLIB_VERSION, ZLIB_VERNUM, zlibCompileFlags()); compr = (Byte*)calloc((uInt)comprLen, 1); uncompr = (Byte*)calloc((uInt)uncomprLen, 1); /* compr and uncompr are cleared to avoid reading uninitialized * data and to ensure that uncompr compresses well. */ if (compr == Z_NULL || uncompr == Z_NULL) { printf("out of memory\n"); exit(1); } test_compress(compr, comprLen, uncompr, uncomprLen); test_gzio((argc > 1 ? argv[1] : TESTFILE), uncompr, uncomprLen); test_deflate(compr, comprLen); test_inflate(compr, comprLen, uncompr, uncomprLen); test_large_deflate(compr, comprLen, uncompr, uncomprLen); test_large_inflate(compr, comprLen, uncompr, uncomprLen); test_flush(compr, &comprLen); test_sync(compr, comprLen, uncompr, uncomprLen); comprLen = uncomprLen; test_dict_deflate(compr, comprLen); test_dict_inflate(compr, comprLen, uncompr, uncomprLen); free(compr); free(uncompr); return 0; } instead-1.9.1/src/zlib/compress.c000644 001751 001751 00000005010 12161555570 017204 0ustar00peterpeter000000 000000 /* compress.c -- compress a memory buffer * Copyright (C) 1995-2003 Jean-loup Gailly. * For conditions of distribution and use, see copyright notice in zlib.h */ /* @(#) $Id$ */ #define ZLIB_INTERNAL #include "zlib.h" /* =========================================================================== Compresses the source buffer into the destination buffer. The level parameter has the same meaning as in deflateInit. sourceLen is the byte length of the source buffer. Upon entry, destLen is the total size of the destination buffer, which must be at least 0.1% larger than sourceLen plus 12 bytes. Upon exit, destLen is the actual size of the compressed buffer. compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR if there was not enough room in the output buffer, Z_STREAM_ERROR if the level parameter is invalid. */ int ZEXPORT compress2 (dest, destLen, source, sourceLen, level) Bytef *dest; uLongf *destLen; const Bytef *source; uLong sourceLen; int level; { z_stream stream; int err; stream.next_in = (Bytef*)source; stream.avail_in = (uInt)sourceLen; #ifdef MAXSEG_64K /* Check for source > 64K on 16-bit machine: */ if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; #endif stream.next_out = dest; stream.avail_out = (uInt)*destLen; if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; stream.zalloc = (alloc_func)0; stream.zfree = (free_func)0; stream.opaque = (voidpf)0; err = deflateInit(&stream, level); if (err != Z_OK) return err; err = deflate(&stream, Z_FINISH); if (err != Z_STREAM_END) { deflateEnd(&stream); return err == Z_OK ? Z_BUF_ERROR : err; } *destLen = stream.total_out; err = deflateEnd(&stream); return err; } /* =========================================================================== */ int ZEXPORT compress (dest, destLen, source, sourceLen) Bytef *dest; uLongf *destLen; const Bytef *source; uLong sourceLen; { return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION); } /* =========================================================================== If the default memLevel or windowBits for deflateInit() is changed, then this function needs to be updated. */ uLong ZEXPORT compressBound (sourceLen) uLong sourceLen; { return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) + 11; } instead-1.9.1/src/zlib/adler32.c000644 001751 001751 00000011144 12161555570 016612 0ustar00peterpeter000000 000000 /* adler32.c -- compute the Adler-32 checksum of a data stream * Copyright (C) 1995-2004 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ /* @(#) $Id$ */ #define ZLIB_INTERNAL #include "zlib.h" #define BASE 65521UL /* largest prime smaller than 65536 */ #define NMAX 5552 /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ #define DO1(buf,i) {adler += (buf)[i]; sum2 += adler;} #define DO2(buf,i) DO1(buf,i); DO1(buf,i+1); #define DO4(buf,i) DO2(buf,i); DO2(buf,i+2); #define DO8(buf,i) DO4(buf,i); DO4(buf,i+4); #define DO16(buf) DO8(buf,0); DO8(buf,8); /* use NO_DIVIDE if your processor does not do division in hardware */ #ifdef NO_DIVIDE # define MOD(a) \ do { \ if (a >= (BASE << 16)) a -= (BASE << 16); \ if (a >= (BASE << 15)) a -= (BASE << 15); \ if (a >= (BASE << 14)) a -= (BASE << 14); \ if (a >= (BASE << 13)) a -= (BASE << 13); \ if (a >= (BASE << 12)) a -= (BASE << 12); \ if (a >= (BASE << 11)) a -= (BASE << 11); \ if (a >= (BASE << 10)) a -= (BASE << 10); \ if (a >= (BASE << 9)) a -= (BASE << 9); \ if (a >= (BASE << 8)) a -= (BASE << 8); \ if (a >= (BASE << 7)) a -= (BASE << 7); \ if (a >= (BASE << 6)) a -= (BASE << 6); \ if (a >= (BASE << 5)) a -= (BASE << 5); \ if (a >= (BASE << 4)) a -= (BASE << 4); \ if (a >= (BASE << 3)) a -= (BASE << 3); \ if (a >= (BASE << 2)) a -= (BASE << 2); \ if (a >= (BASE << 1)) a -= (BASE << 1); \ if (a >= BASE) a -= BASE; \ } while (0) # define MOD4(a) \ do { \ if (a >= (BASE << 4)) a -= (BASE << 4); \ if (a >= (BASE << 3)) a -= (BASE << 3); \ if (a >= (BASE << 2)) a -= (BASE << 2); \ if (a >= (BASE << 1)) a -= (BASE << 1); \ if (a >= BASE) a -= BASE; \ } while (0) #else # define MOD(a) a %= BASE # define MOD4(a) a %= BASE #endif /* ========================================================================= */ uLong ZEXPORT adler32(adler, buf, len) uLong adler; const Bytef *buf; uInt len; { unsigned long sum2; unsigned n; /* split Adler-32 into component sums */ sum2 = (adler >> 16) & 0xffff; adler &= 0xffff; /* in case user likes doing a byte at a time, keep it fast */ if (len == 1) { adler += buf[0]; if (adler >= BASE) adler -= BASE; sum2 += adler; if (sum2 >= BASE) sum2 -= BASE; return adler | (sum2 << 16); } /* initial Adler-32 value (deferred check for len == 1 speed) */ if (buf == Z_NULL) return 1L; /* in case short lengths are provided, keep it somewhat fast */ if (len < 16) { while (len--) { adler += *buf++; sum2 += adler; } if (adler >= BASE) adler -= BASE; MOD4(sum2); /* only added so many BASE's */ return adler | (sum2 << 16); } /* do length NMAX blocks -- requires just one modulo operation */ while (len >= NMAX) { len -= NMAX; n = NMAX / 16; /* NMAX is divisible by 16 */ do { DO16(buf); /* 16 sums unrolled */ buf += 16; } while (--n); MOD(adler); MOD(sum2); } /* do remaining bytes (less than NMAX, still just one modulo) */ if (len) { /* avoid modulos if none remaining */ while (len >= 16) { len -= 16; DO16(buf); buf += 16; } while (len--) { adler += *buf++; sum2 += adler; } MOD(adler); MOD(sum2); } /* return recombined sums */ return adler | (sum2 << 16); } /* ========================================================================= */ uLong ZEXPORT adler32_combine(adler1, adler2, len2) uLong adler1; uLong adler2; z_off_t len2; { unsigned long sum1; unsigned long sum2; unsigned rem; /* the derivation of this formula is left as an exercise for the reader */ rem = (unsigned)(len2 % BASE); sum1 = adler1 & 0xffff; sum2 = rem * sum1; MOD(sum2); sum1 += (adler2 & 0xffff) + BASE - 1; sum2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) + BASE - rem; if (sum1 > BASE) sum1 -= BASE; if (sum1 > BASE) sum1 -= BASE; if (sum2 > (BASE << 1)) sum2 -= (BASE << 1); if (sum2 > BASE) sum2 -= BASE; return sum1 | (sum2 << 16); } instead-1.9.1/src/zlib/Makefile000644 001751 001751 00000000503 12161555570 016647 0ustar00peterpeter000000 000000 include ../../Rules.make include ../../config.make OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \ zutil.o inflate.o infback.o inftrees.o inffast.o all: libz.a libz.a: $(OBJS) $(OBJA) $(AR) $@ $(OBJS) $(OBJA) -@ ($(RANLIB) $@ || true) >/dev/null 2>&1 clean: rm -f *.o *.a install: instead-1.9.1/src/zlib/infback.c000644 001751 001751 00000054403 12161555570 016760 0ustar00peterpeter000000 000000 /* infback.c -- inflate using a call-back interface * Copyright (C) 1995-2005 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ /* This code is largely copied from inflate.c. Normally either infback.o or inflate.o would be linked into an application--not both. The interface with inffast.c is retained so that optimized assembler-coded versions of inflate_fast() can be used with either inflate.c or infback.c. */ #include "zutil.h" #include "inftrees.h" #include "inflate.h" #include "inffast.h" /* function prototypes */ local void fixedtables OF((struct inflate_state FAR *state)); /* strm provides memory allocation functions in zalloc and zfree, or Z_NULL to use the library memory allocation functions. windowBits is in the range 8..15, and window is a user-supplied window and output buffer that is 2**windowBits bytes. */ int ZEXPORT inflateBackInit_(strm, windowBits, window, version, stream_size) z_streamp strm; int windowBits; unsigned char FAR *window; const char *version; int stream_size; { struct inflate_state FAR *state; if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || stream_size != (int)(sizeof(z_stream))) return Z_VERSION_ERROR; if (strm == Z_NULL || window == Z_NULL || windowBits < 8 || windowBits > 15) return Z_STREAM_ERROR; strm->msg = Z_NULL; /* in case we return an error */ if (strm->zalloc == (alloc_func)0) { strm->zalloc = zcalloc; strm->opaque = (voidpf)0; } if (strm->zfree == (free_func)0) strm->zfree = zcfree; state = (struct inflate_state FAR *)ZALLOC(strm, 1, sizeof(struct inflate_state)); if (state == Z_NULL) return Z_MEM_ERROR; Tracev((stderr, "inflate: allocated\n")); strm->state = (struct internal_state FAR *)state; state->dmax = 32768U; state->wbits = windowBits; state->wsize = 1U << windowBits; state->window = window; state->write = 0; state->whave = 0; return Z_OK; } /* Return state with length and distance decoding tables and index sizes set to fixed code decoding. Normally this returns fixed tables from inffixed.h. If BUILDFIXED is defined, then instead this routine builds the tables the first time it's called, and returns those tables the first time and thereafter. This reduces the size of the code by about 2K bytes, in exchange for a little execution time. However, BUILDFIXED should not be used for threaded applications, since the rewriting of the tables and virgin may not be thread-safe. */ local void fixedtables(state) struct inflate_state FAR *state; { #ifdef BUILDFIXED static int virgin = 1; static code *lenfix, *distfix; static code fixed[544]; /* build fixed huffman tables if first call (may not be thread safe) */ if (virgin) { unsigned sym, bits; static code *next; /* literal/length table */ sym = 0; while (sym < 144) state->lens[sym++] = 8; while (sym < 256) state->lens[sym++] = 9; while (sym < 280) state->lens[sym++] = 7; while (sym < 288) state->lens[sym++] = 8; next = fixed; lenfix = next; bits = 9; inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work); /* distance table */ sym = 0; while (sym < 32) state->lens[sym++] = 5; distfix = next; bits = 5; inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work); /* do this just once */ virgin = 0; } #else /* !BUILDFIXED */ # include "inffixed.h" #endif /* BUILDFIXED */ state->lencode = lenfix; state->lenbits = 9; state->distcode = distfix; state->distbits = 5; } /* Macros for inflateBack(): */ /* Load returned state from inflate_fast() */ #define LOAD() \ do { \ put = strm->next_out; \ left = strm->avail_out; \ next = strm->next_in; \ have = strm->avail_in; \ hold = state->hold; \ bits = state->bits; \ } while (0) /* Set state from registers for inflate_fast() */ #define RESTORE() \ do { \ strm->next_out = put; \ strm->avail_out = left; \ strm->next_in = next; \ strm->avail_in = have; \ state->hold = hold; \ state->bits = bits; \ } while (0) /* Clear the input bit accumulator */ #define INITBITS() \ do { \ hold = 0; \ bits = 0; \ } while (0) /* Assure that some input is available. If input is requested, but denied, then return a Z_BUF_ERROR from inflateBack(). */ #define PULL() \ do { \ if (have == 0) { \ have = in(in_desc, &next); \ if (have == 0) { \ next = Z_NULL; \ ret = Z_BUF_ERROR; \ goto inf_leave; \ } \ } \ } while (0) /* Get a byte of input into the bit accumulator, or return from inflateBack() with an error if there is no input available. */ #define PULLBYTE() \ do { \ PULL(); \ have--; \ hold += (unsigned long)(*next++) << bits; \ bits += 8; \ } while (0) /* Assure that there are at least n bits in the bit accumulator. If there is not enough available input to do that, then return from inflateBack() with an error. */ #define NEEDBITS(n) \ do { \ while (bits < (unsigned)(n)) \ PULLBYTE(); \ } while (0) /* Return the low n bits of the bit accumulator (n < 16) */ #define BITS(n) \ ((unsigned)hold & ((1U << (n)) - 1)) /* Remove n bits from the bit accumulator */ #define DROPBITS(n) \ do { \ hold >>= (n); \ bits -= (unsigned)(n); \ } while (0) /* Remove zero to seven bits as needed to go to a byte boundary */ #define BYTEBITS() \ do { \ hold >>= bits & 7; \ bits -= bits & 7; \ } while (0) /* Assure that some output space is available, by writing out the window if it's full. If the write fails, return from inflateBack() with a Z_BUF_ERROR. */ #define ROOM() \ do { \ if (left == 0) { \ put = state->window; \ left = state->wsize; \ state->whave = left; \ if (out(out_desc, put, left)) { \ ret = Z_BUF_ERROR; \ goto inf_leave; \ } \ } \ } while (0) /* strm provides the memory allocation functions and window buffer on input, and provides information on the unused input on return. For Z_DATA_ERROR returns, strm will also provide an error message. in() and out() are the call-back input and output functions. When inflateBack() needs more input, it calls in(). When inflateBack() has filled the window with output, or when it completes with data in the window, it calls out() to write out the data. The application must not change the provided input until in() is called again or inflateBack() returns. The application must not change the window/output buffer until inflateBack() returns. in() and out() are called with a descriptor parameter provided in the inflateBack() call. This parameter can be a structure that provides the information required to do the read or write, as well as accumulated information on the input and output such as totals and check values. in() should return zero on failure. out() should return non-zero on failure. If either in() or out() fails, than inflateBack() returns a Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it was in() or out() that caused in the error. Otherwise, inflateBack() returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format error, or Z_MEM_ERROR if it could not allocate memory for the state. inflateBack() can also return Z_STREAM_ERROR if the input parameters are not correct, i.e. strm is Z_NULL or the state was not initialized. */ int ZEXPORT inflateBack(strm, in, in_desc, out, out_desc) z_streamp strm; in_func in; void FAR *in_desc; out_func out; void FAR *out_desc; { struct inflate_state FAR *state; unsigned char FAR *next; /* next input */ unsigned char FAR *put; /* next output */ unsigned have, left; /* available input and output */ unsigned long hold; /* bit buffer */ unsigned bits; /* bits in bit buffer */ unsigned copy; /* number of stored or match bytes to copy */ unsigned char FAR *from; /* where to copy match bytes from */ code this; /* current decoding table entry */ code last; /* parent table entry */ unsigned len; /* length to copy for repeats, bits to drop */ int ret; /* return code */ static const unsigned short order[19] = /* permutation of code lengths */ {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; /* Check that the strm exists and that the state was initialized */ if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; /* Reset the state */ strm->msg = Z_NULL; state->mode = TYPE; state->last = 0; state->whave = 0; next = strm->next_in; have = next != Z_NULL ? strm->avail_in : 0; hold = 0; bits = 0; put = state->window; left = state->wsize; /* Inflate until end of block marked as last */ for (;;) switch (state->mode) { case TYPE: /* determine and dispatch block type */ if (state->last) { BYTEBITS(); state->mode = DONE; break; } NEEDBITS(3); state->last = BITS(1); DROPBITS(1); switch (BITS(2)) { case 0: /* stored block */ Tracev((stderr, "inflate: stored block%s\n", state->last ? " (last)" : "")); state->mode = STORED; break; case 1: /* fixed block */ fixedtables(state); Tracev((stderr, "inflate: fixed codes block%s\n", state->last ? " (last)" : "")); state->mode = LEN; /* decode codes */ break; case 2: /* dynamic block */ Tracev((stderr, "inflate: dynamic codes block%s\n", state->last ? " (last)" : "")); state->mode = TABLE; break; case 3: strm->msg = (char *)"invalid block type"; state->mode = BAD; } DROPBITS(2); break; case STORED: /* get and verify stored block length */ BYTEBITS(); /* go to byte boundary */ NEEDBITS(32); if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) { strm->msg = (char *)"invalid stored block lengths"; state->mode = BAD; break; } state->length = (unsigned)hold & 0xffff; Tracev((stderr, "inflate: stored length %u\n", state->length)); INITBITS(); /* copy stored block from input to output */ while (state->length != 0) { copy = state->length; PULL(); ROOM(); if (copy > have) copy = have; if (copy > left) copy = left; zmemcpy(put, next, copy); have -= copy; next += copy; left -= copy; put += copy; state->length -= copy; } Tracev((stderr, "inflate: stored end\n")); state->mode = TYPE; break; case TABLE: /* get dynamic table entries descriptor */ NEEDBITS(14); state->nlen = BITS(5) + 257; DROPBITS(5); state->ndist = BITS(5) + 1; DROPBITS(5); state->ncode = BITS(4) + 4; DROPBITS(4); #ifndef PKZIP_BUG_WORKAROUND if (state->nlen > 286 || state->ndist > 30) { strm->msg = (char *)"too many length or distance symbols"; state->mode = BAD; break; } #endif Tracev((stderr, "inflate: table sizes ok\n")); /* get code length code lengths (not a typo) */ state->have = 0; while (state->have < state->ncode) { NEEDBITS(3); state->lens[order[state->have++]] = (unsigned short)BITS(3); DROPBITS(3); } while (state->have < 19) state->lens[order[state->have++]] = 0; state->next = state->codes; state->lencode = (code const FAR *)(state->next); state->lenbits = 7; ret = inflate_table(CODES, state->lens, 19, &(state->next), &(state->lenbits), state->work); if (ret) { strm->msg = (char *)"invalid code lengths set"; state->mode = BAD; break; } Tracev((stderr, "inflate: code lengths ok\n")); /* get length and distance code code lengths */ state->have = 0; while (state->have < state->nlen + state->ndist) { for (;;) { this = state->lencode[BITS(state->lenbits)]; if ((unsigned)(this.bits) <= bits) break; PULLBYTE(); } if (this.val < 16) { NEEDBITS(this.bits); DROPBITS(this.bits); state->lens[state->have++] = this.val; } else { if (this.val == 16) { NEEDBITS(this.bits + 2); DROPBITS(this.bits); if (state->have == 0) { strm->msg = (char *)"invalid bit length repeat"; state->mode = BAD; break; } len = (unsigned)(state->lens[state->have - 1]); copy = 3 + BITS(2); DROPBITS(2); } else if (this.val == 17) { NEEDBITS(this.bits + 3); DROPBITS(this.bits); len = 0; copy = 3 + BITS(3); DROPBITS(3); } else { NEEDBITS(this.bits + 7); DROPBITS(this.bits); len = 0; copy = 11 + BITS(7); DROPBITS(7); } if (state->have + copy > state->nlen + state->ndist) { strm->msg = (char *)"invalid bit length repeat"; state->mode = BAD; break; } while (copy--) state->lens[state->have++] = (unsigned short)len; } } /* handle error breaks in while */ if (state->mode == BAD) break; /* build code tables */ state->next = state->codes; state->lencode = (code const FAR *)(state->next); state->lenbits = 9; ret = inflate_table(LENS, state->lens, state->nlen, &(state->next), &(state->lenbits), state->work); if (ret) { strm->msg = (char *)"invalid literal/lengths set"; state->mode = BAD; break; } state->distcode = (code const FAR *)(state->next); state->distbits = 6; ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist, &(state->next), &(state->distbits), state->work); if (ret) { strm->msg = (char *)"invalid distances set"; state->mode = BAD; break; } Tracev((stderr, "inflate: codes ok\n")); state->mode = LEN; case LEN: /* use inflate_fast() if we have enough input and output */ if (have >= 6 && left >= 258) { RESTORE(); if (state->whave < state->wsize) state->whave = state->wsize - left; inflate_fast(strm, state->wsize); LOAD(); break; } /* get a literal, length, or end-of-block code */ for (;;) { this = state->lencode[BITS(state->lenbits)]; if ((unsigned)(this.bits) <= bits) break; PULLBYTE(); } if (this.op && (this.op & 0xf0) == 0) { last = this; for (;;) { this = state->lencode[last.val + (BITS(last.bits + last.op) >> last.bits)]; if ((unsigned)(last.bits + this.bits) <= bits) break; PULLBYTE(); } DROPBITS(last.bits); } DROPBITS(this.bits); state->length = (unsigned)this.val; /* process literal */ if (this.op == 0) { Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ? "inflate: literal '%c'\n" : "inflate: literal 0x%02x\n", this.val)); ROOM(); *put++ = (unsigned char)(state->length); left--; state->mode = LEN; break; } /* process end of block */ if (this.op & 32) { Tracevv((stderr, "inflate: end of block\n")); state->mode = TYPE; break; } /* invalid code */ if (this.op & 64) { strm->msg = (char *)"invalid literal/length code"; state->mode = BAD; break; } /* length code -- get extra bits, if any */ state->extra = (unsigned)(this.op) & 15; if (state->extra != 0) { NEEDBITS(state->extra); state->length += BITS(state->extra); DROPBITS(state->extra); } Tracevv((stderr, "inflate: length %u\n", state->length)); /* get distance code */ for (;;) { this = state->distcode[BITS(state->distbits)]; if ((unsigned)(this.bits) <= bits) break; PULLBYTE(); } if ((this.op & 0xf0) == 0) { last = this; for (;;) { this = state->distcode[last.val + (BITS(last.bits + last.op) >> last.bits)]; if ((unsigned)(last.bits + this.bits) <= bits) break; PULLBYTE(); } DROPBITS(last.bits); } DROPBITS(this.bits); if (this.op & 64) { strm->msg = (char *)"invalid distance code"; state->mode = BAD; break; } state->offset = (unsigned)this.val; /* get distance extra bits, if any */ state->extra = (unsigned)(this.op) & 15; if (state->extra != 0) { NEEDBITS(state->extra); state->offset += BITS(state->extra); DROPBITS(state->extra); } if (state->offset > state->wsize - (state->whave < state->wsize ? left : 0)) { strm->msg = (char *)"invalid distance too far back"; state->mode = BAD; break; } Tracevv((stderr, "inflate: distance %u\n", state->offset)); /* copy match from window to output */ do { ROOM(); copy = state->wsize - state->offset; if (copy < left) { from = put + copy; copy = left - copy; } else { from = put - state->offset; copy = left; } if (copy > state->length) copy = state->length; state->length -= copy; left -= copy; do { *put++ = *from++; } while (--copy); } while (state->length != 0); break; case DONE: /* inflate stream terminated properly -- write leftover output */ ret = Z_STREAM_END; if (left < state->wsize) { if (out(out_desc, state->window, state->wsize - left)) ret = Z_BUF_ERROR; } goto inf_leave; case BAD: ret = Z_DATA_ERROR; goto inf_leave; default: /* can't happen, but makes compilers happy */ ret = Z_STREAM_ERROR; goto inf_leave; } /* Return unused input */ inf_leave: strm->next_in = next; strm->avail_in = have; return ret; } int ZEXPORT inflateBackEnd(strm) z_streamp strm; { if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0) return Z_STREAM_ERROR; ZFREE(strm, strm->state); strm->state = Z_NULL; Tracev((stderr, "inflate: end\n")); return Z_OK; } instead-1.9.1/stead/000755 001751 001751 00000000000 12166017771 014563 5ustar00peterpeter000000 000000 instead-1.9.1/stead/xact.lua000644 001751 001751 00000006171 12161555602 016225 0ustar00peterpeter000000 000000 xact = function(n, f) -- just simple action! local v = {}; if f == nil and type(n) == 'table' then f = n[2]; n = n[1]; end if type(n) ~= 'string' then error ("Wrong parameter to xact.", 2) end v.xaction_type = true v.nam = n if stead.api_version >= "1.6.3" then v.disp = false end v.act = f; v = obj(v); v.save = function(self, name, h, need) if need then local f = self.act; f = stead.tostring(f); if f == nil then error("Can not save xact: "..name); end h:write(stead.string.format("%s = xact(%q, %s);\n", name, self.nam, f)) end stead.savemembers(h, self, name, false); end return v end local __do_xact = function(str, self) local aarg = {} local function parg(v) stead.table.insert(aarg, v); return '' end local xrefrep = function(str) local s = stead.string.gsub(str,'[\001\002]',''); local o,d,a, oo; local delim = ':' if stead.api_version >= "1.2.2" then delim = stead.delim; end s = s:gsub('\\?[\\'..delim..']', { [ delim ] = '\001', [ '\\'..delim ] = delim }); local i = s:find('\001', 1, true); aarg = {} if i then o = s:sub(1, i - 1); d = s:sub(i + 1); i = o:find("(", 1, true); if i then a = o:sub(i); o = o:sub(1, i - 1); a:gsub('[^,()]+', parg); end if o == '' then if isObject(self) then oo = self else error("Empty link: "..s, 3); end else if stead.api_version >= "1.6.3" then oo = stead.here():srch(o) else oo = objs():srch(o) end if not oo then oo = stead.ref(o, true) end end elseif isObject(self) then oo = self d = s; else error("Wrong link: "..s, 3); end d = d:gsub("\001", delim); return stead.xref(d, stead.ref(oo, true), stead.unpack(aarg)); end if type(str) ~= 'string' then return end local s = stead.string.gsub(str, '\\?[\\{}]', { ['{'] = '\001', ['}'] = '\002' }):gsub('\001([^\002]+)\002', xrefrep):gsub('[\001\002]', { ['\001'] = '{', ['\002'] = '}' }); return s; end stead.fmt = stead.hook(stead.fmt, function(f, ...) local i, res, s local a = {...} for i=1,stead.table.maxn(a) do if type(a[i]) == 'string' then s = __do_xact(a[i]); res = stead.par('', res, s):gsub('\\?[\\{}]', { [ '\\{' ] = '{', [ '\\}' ] = '}' }); end end return f(res); end) obj = stead.inherit(obj, function(v) v.xref = function(s, str) return __do_xact(str, s); end return v end) function xdsc(n) local v = {} v.nam = true if n == nil then v.disp = 'xdsc' elseif type(n) == 'string' then v.disp = n; else error("Wrong parameter to xdsc.", 2); end v.dsc = function(s) return stead.call(stead.here(), s.disp); end v.save = function(self, name, h, need) if need then h:write(stead.string.format("%s = xdsc(%q);\n", name, self.disp)) end stead.savemembers(h, self, name, false); end return obj(v) end xroom = stead.inherit(room, function(v) v.look = stead.hook(v.look, function(f, s,...) local xdsc = stead.call(s, 'xdsc'); return stead.par(stead.space_delim, xdsc, f(s, ...)); end) return v end) if stead.api_version >= "1.6.3" then xwalk = xact('xwalk', code [[ stead.walk(arg1) ]]); xwalk.system_type = true end -- vim:ts=4 instead-1.9.1/stead/input.lua000644 001751 001751 00000013675 12161555602 016434 0ustar00peterpeter000000 000000 local kbden = { shifted = { ["1"] = "!", ["2"] = "@", ["3"] = "#", ["4"] = "$", ["5"] = "%", ["6"] = "^", ["7"] = "&", ["8"] = "*", ["9"] = "(", ["0"] = ")", ["-"] = "_", ["="] = "+", ["["] = "{", ["]"] = "}", ["\\"] = "|", [";"] = ":", ["'"] = "\"", [","] = "<", ["."] = ">", ["/"] = "?", } } local kbdru = { ["q"] = "й", ["w"] = "ц", ["e"] = "у", ["r"] = "к", ["t"] = "е", ["y"] = "н", ["u"] = "г", ["i"] = "ш", ["o"] = "щ", ["p"] = "з", ["["] = "х", ["]"] = "ъ", ["a"] = "ф", ["s"] = "ы", ["d"] = "в", ["f"] = "а", ["g"] = "п", ["h"] = "р", ["j"] = "о", ["k"] = "л", ["l"] = "д", [";"] = "ж", ["'"] = "э", ["z"] = "я", ["x"] = "ч", ["c"] = "с", ["v"] = "м", ["b"] = "и", ["n"] = "т", ["m"] = "ь", [","] = "б", ["."] = "ю", ["`"] = "ё", shifted = { ["q"] = "Й", ["w"] = "Ц", ["e"] = "У", ["r"] = "К", ["t"] = "Е", ["y"] = "Н", ["u"] = "Г", ["i"] = "Ш", ["o"] = "Щ", ["p"] = "З", ["["] = "Х", ["]"] = "Ъ", ["a"] = "Ф", ["s"] = "Ы", ["d"] = "В", ["f"] = "А", ["g"] = "П", ["h"] = "Р", ["j"] = "О", ["k"] = "Л", ["l"] = "Д", [";"] = "Ж", ["'"] = "Э", ["z"] = "Я", ["x"] = "Ч", ["c"] = "С", ["v"] = "М", ["b"] = "И", ["n"] = "Т", ["m"] = "Ь", [","] = "Б", ["."] = "Ю", ["`"] = "Ё", ["1"] = "!", ["2"] = "@", ["3"] = "#", ["4"] = ";", ["5"] = "%", ["6"] = ":", ["7"] = "?", ["8"] = "*", ["9"] = "(", ["0"] = ")", ["-"] = "_", ["="] = "+", } } local kbdlower = { ['А'] = 'а', ['Б'] = 'б', ['В'] = 'в', ['Г'] = 'г', ['Д'] = 'д', ['Е'] = 'е', ['Ё'] = 'ё', ['Ж'] = 'ж', ['З'] = 'з', ['И'] = 'и', ['Й'] = 'й', ['К'] = 'к', ['Л'] = 'л', ['М'] = 'м', ['Н'] = 'н', ['О'] = 'о', ['П'] = 'п', ['Р'] = 'р', ['С'] = 'с', ['Т'] = 'т', ['У'] = 'у', ['Ф'] = 'ф', ['Х'] = 'х', ['Ц'] = 'ц', ['Ч'] = 'ч', ['Ш'] = 'ш', ['Щ'] = 'щ', ['Ъ'] = 'ъ', ['Э'] = 'э', ['Ь'] = 'ь', ['Ю'] = 'ю', ['Я'] = 'я', } local function tolow(s) if not s then return end s = s:lower(); local xlat = kbdlower if xlat then local k,v for k,v in pairs(xlat) do s = s:gsub(k,v); end end return s; end local function kbdxlat(s) local kbd if s == 'space' then return ' ' end if s == 'return' then return '\n' end if s:len() > 1 then return end if input.kbd_alt_xlat and (game.codepage == 'UTF-8' or game.codepage == 'utf-8') then kbd = kbdru; else kbd = kbden end if kbd and input.kbd_shift then kbd = kbd.shifted; end if not kbd[s] then if input.kbd_shift then return s:upper(); end return s; end return kbd[s] end game.action = stead.hook(game.action, function (f, s, cmd, ...) if cmd == 'kbd_enter' then local r,v if stead.here().inp_enter then r,v = stead.call(stead.here(), 'inp_enter'); elseif s.inp_enter then r,v = stead.call(s, 'inp_enter'); end return r,v -- nothing todo end return f(s, cmd, ...) end) local lookup_inp = function() local i,o for i,o in opairs(objs()) do o = stead.ref(o) if o._edit then return o end end end local input_kbd = function(s, down, key) if not input._txt then return end if key:find("shift") then input.kbd_shift = down elseif key:find("alt") then if down and input.inp_xlat then input.kbd_alt_xlat = not input.kbd_alt_xlat; end input.kbd_alt = down elseif down then local o = lookup_inp(); if not o then return end if input.kbd_alt then return end if key == "return" then if o then o._edit = false o._txt = input._txt input._txt = false return "kbd_enter" end return end if key == "backspace" then if input._txt == '' then return end if input._txt:byte(input._txt:len()) >= 128 then input._txt = input._txt:sub(1, input._txt:len() - 2); else input._txt = input._txt:sub(1, input._txt:len() - 1); end return "wait" end local c = kbdxlat(key); if not c then return end if o and type(o.filter) == 'function' then c = o:filter(c); if not c then return end end input._txt = input._txt..c; return "wait" end end stead.module_init(function() input.cursor = '_' input.inp_xlat = true input.key = stead.hook(input.key, function(f, ...) local r = input_kbd(...) if r then return r end return f(...) end) end) local function input_esc(s) local rep = function(s) return txtnb(s) end if not s then return end -- return s:gsub("\\","\\\\\\\\"):gsub(">","\\\\>"):gsub("%^","\\%^"): local r = s:gsub("[^ ]+", rep):gsub("[ \t]", rep):gsub("{","\\{"):gsub("}","\\}"); return r end function inp(n, info, txt) if type(n) ~= 'string' or type(info) ~= 'string' then error ("Wrong parameter to inp.", 2); end local v = { nam = n, _txt = '', info = info } if txt then v._txt = txt end v.dsc = function(s) if s._edit then return s.info..input_esc(input._txt)..input.cursor end return s.info..input_esc(s._txt) end v.text = function(s, text) local t if s._edit then t = input._txt else t = s._txt end if text then if s._edit then input._txt = text else s._txt = text end return end return t end v.match = function(s, str) local aa = tolow(tostring(str)):gsub("[*]",".*"):gsub("[?]",".?"); local bb = tolow(tostring(s:text())); if bb:find("^"..aa.."$") then return true end end v.state = function(s, t) local os = s._edit if t == nil then return os end s._edit = t if os and t or (not os and not t) then return os end if s._edit then input._txt = s._txt; else s._txt = input._txt input._txt = false end return os end; v.act = function(s) if input._txt and not s._edit then return true end -- somewhere else s:state(not s._edit) return true end v.save = function(self, name, h, need) if need then h:write(stead.string.format("%s = inp (%q, %q, %q);\n", name, self.nam, self.info, self._txt)) end stead.savemembers(h, self, name, false); end return obj(v) end -- vim:ts=4 instead-1.9.1/stead/stead.lua000644 001751 001751 00000201012 12166017771 016362 0ustar00peterpeter000000 000000 stead = { version = "1.9.1", api_version = "1.1.6", -- last version before 1.2.0 table = table, delim = ',', busy = instead_busy, scene_delim = "^^", space_delim = ' ', string = string, math = math, ticks = instead_ticks, mouse_pos = instead_mouse_pos, mouse_filter = instead_mouse_filter, menu_toggle = instead_menu_toggle, set_timer = instead_timer, next = next, math = math, io = io, os = os, readdir = instead_readdir, call_top = 0, call_ctx = { txt = nil, self = nil }, -- functions = {}, -- code blocks timer = function() if type(timer) == 'table' and type(timer.callback) == 'function' then return timer:callback(); end return end, input = function(event, ...) if type(input) ~= 'table' then return end if event == 'kbd' then if type(input.key) == 'function' then return input:key(...); -- pressed, event end elseif event == 'mouse' then if type(input.click) == 'function' then return input:click(...); -- pressed, x, y, mb end end return end, modules_ini = {}, module_init = function(f, ...) if type(f) ~= 'function' then error ("Wrong parameter to mod_init.", 2); end stead.table.insert(stead.modules_ini, f); f(); end } stead.last_act = function(s) local r = game.__last_act if s ~= nil and s ~= true then game.__last_act = s end return r end stead.need_scene = function(s) if s == nil then NEED_SCENE = true else NEED_SCENE = s end end if not stead.busy then stead.busy = function(v) end end if _VERSION == "Lua 5.1" then stead.eval = loadstring stead.unpack = unpack else stead.eval = load stead.unpack = table.unpack stead.table.maxn = table_get_maxn end instead = stead; function stead.getcmd(str) local a = {} local n = 1 local cmd; local i,k = stead.string.find(str, '[a-zA-Z0-9_]+'); if not i or not k then cmd = str; else cmd = stead.string.sub(str, i, k); end stead.cmd = cmd if cmd == 'load' or cmd == 'save' then a[1] = stead.strip(stead.string.sub(str, k + 1)); stead.args = a; return cmd, a end while i do k = k + 1; i,k = stead.string.find(str,'[^,]+', k); if not i then break end a[n] = stead.strip(stead.string.sub(str, i, k)); n = n + 1; end stead.args = a; return cmd, a end stead.tostring = function(v) if isCode(v) then v = stead.string.format("code %q", stead.functions[v].code); elseif type(v) == 'string' then v = stead.string.format("%q", v); elseif v == nil or type(v) == 'boolean' or type(v) == 'number' then v = tostring(v); elseif type(v) == 'table' and type(stead.deref(v)) == 'string' then v = stead.deref(v); else v = nil end return v end stead.cctx = function() return stead.call_ctx[stead.call_top]; end stead.callpush = function(v, ...) stead.call_top = stead.call_top + 1; stead.call_ctx[stead.call_top] = { txt = nil, self = v, action = false }; args = {...}; arg1 = args[1] arg2 = args[2] arg3 = args[3] arg4 = args[4] arg5 = args[5] arg6 = args[6] arg7 = args[7] arg8 = args[8] arg9 = args[9] -- dirty but clean and fast :) self = v end stead.clearargs = function() arg1 = nil arg2 = nil arg3 = nil arg4 = nil arg5 = nil arg6 = nil arg7 = nil arg8 = nil arg9 = nil self = nil end stead.callpop = function() stead.call_ctx[stead.call_top] = nil; stead.call_top = stead.call_top - 1; if stead.call_top < 0 then error ("callpush/callpop mismatch") end stead.clearargs() end stead.pclr = function() stead.cctx().txt = nil end stead.pget = function() return stead.cctx().txt; end stead.p = function(...) local i local a = {...} if stead.cctx() == nil then error ("Call from global context.", 2); end for i = 1, stead.table.maxn(a) do stead.cctx().txt = stead.par('', stead.cctx().txt, tostring(a[i])); end stead.cctx().txt = stead.cat(stead.cctx().txt, stead.space_delim); end stead.pr = function(...) local i local a = {...} if stead.cctx() == nil then error ("Call from global context.", 2); end for i = 1, stead.table.maxn(a) do stead.cctx().txt = stead.par('', stead.cctx().txt, tostring(a[i])); end end stead.pn = function(...) if stead.cctx() == nil then error ("Call from global context.", 2); end p(...); stead.cctx().txt = stead.par('', stead.cctx().txt,'^'); end -- merge strings with "space" as separator stead.par = function(space,...) local i, res local a = {...}; for i = 1, stead.table.maxn(a) do if type(a[i]) == 'string' then if res == nil then res = "" else res = res..space; end res = res..a[i]; end end return res; end -- add to not nill string any string stead.cat = function(v,...) local i, res if not v then return nil end res = v; local a = {...} for i = 1, stead.table.maxn(a) do if type(a[i]) == 'string' then res = res..a[i]; end end return res; end function txtnb(v) if type(v) ~= 'string' then return nil; end return iface:nb(v); end function img(v) if type(v) ~= 'string' then return nil; end; return iface:img(v); end function imgl(v) if type(v) ~= 'string' then return nil; end; return iface:imgl(v); end function imgr(v) if type(v) ~= 'string' then return nil; end; return iface:imgr(v); end function txtem(v) if type(v) ~= 'string' then return nil; end; return iface:em(v) end function txtst(v) if type(v) ~= 'string' then return nil; end; return iface:st(v) end function txtr(v) if type(v) ~= 'string' then return nil; end; return iface:right(v) end function txtl(v) if type(v) ~= 'string' then return nil; end; return iface:left(v) end function txtc(v) if type(v) ~= 'string' then return nil; end; return iface:center(v) end function txttab(v,a) return iface:tab(v, a) end function txtj(v) if type(v) ~= 'string' then return nil; end; return iface:just(v) end function txtb(v) if type(v) ~= 'string' then return nil; end; return iface:bold(v) end function txtu(v) if type(v) ~= 'string' then return nil; end; return iface:under(v) end function txtnm(n, v) if type(v) ~= 'string' or not tonumber(n) then return nil; end return iface:enum(n, v); end function txttop(v) if type(v) ~= 'string' then return nil; end; return iface:top(v) end function txtbottom(v) if type(v) ~= 'string' then return nil; end; return iface:bottom(v) end function txtmiddle(v) if type(v) ~= 'string' then return nil; end; return iface:middle(v) end stead.fmt = function(...) local i, res local a = {...}; for i=1,stead.table.maxn(a) do if type(a[i]) == 'string' then local s = stead.string.gsub(a[i],'[\t ]+', stead.space_delim); s = stead.string.gsub(s, '[\n]+', stead.space_delim); s = stead.string.gsub(s, '\\?[\\^]', { ['^'] = '\n', ['\\^'] = '^', ['\\\\'] = '\\'} ); res = stead.par('', res, s); end end return res end -- integer lists local inext = function(t, k) local v k, v = stead.next(t, k); while k and not tonumber(k) do k, v = stead.next(t, k); end if not tonumber(k) then return nil end return k, v end local ilist = function(s, var) return inext, s, nil; end local ordered_i = function(t) local ordered = {}; local i,v, max; max = 0; for i,v in ilist(t) do stead.table.insert(ordered, i); max = max + 1; end stead.table.sort(ordered); ordered.i = 1; ordered.max = max; return ordered; end local onext = function(t, k) local v if not k then k = ordered_i(t); end if k.i > k.max then return nil end v = k[k.i] k.i = k.i + 1 return k, t[v], v; end function opairs(s) return onext, s, nil; end function isPlayer(v) return (type(v) == 'table') and (v.player_type) end function isRoom(v) return (type(v) == 'table') and (v.location_type) end function isPhrase(v) return (type(v) == 'table') and (v.phrase_type) end function isDialog(v) return (type(v) == 'table') and (v.dialog_type) end function isDisabled(v) return (type(v) == 'table') and (v._disabled) end function isRemoved(v) return (type(v) == 'table') and (v._disabled == -1) end function isObject(v) return (type(v) == 'table') and (v.object_type) end function isXaction(v) return (type(v) == 'table') and (v.xaction_type) end stead.obj_xref = function(self,str) function xrefrep(str) local s = stead.string.gsub(str,'[\001\002]',''); return stead.xref(s, self); end if not str then return end if not isObject(self) then return str; end local s = stead.string.gsub(str, '\\?[\\{}]', { ['{'] = '\001', ['}'] = '\002', [ '\\{' ] = '{', [ '\\}' ] = '}' }):gsub('\001([^\002]+)\002', xrefrep):gsub('[\001\002]', { ['\001'] = '{', ['\002'] = '}' }); return s; end stead.obj_look = function(self) local i, vv, o if isDisabled(self) then return end local v = stead.call(self,'dsc'); if game.hinting then v = self:xref(v); elseif v then v = stead.string.gsub(v, '[{}]',''); end for i,o in opairs(self.obj) do o = stead.ref(o); if isObject(o) then vv = stead.obj_look(o); v = stead.par(stead.space_delim, v, vv); end end return v; end stead.obj_remove = function(self) self._disabled = -1; return self end stead.obj_disable = function(self) self._disabled = true; return self end stead.obj_enable = function(self) self._disabled = false; return self end stead.obj_disabled = function(self) return (self._disabled == true); end stead.obj_enable_all = function(s) if not isObject(s) then return end objs(s):enable_all(); end stead.obj_disable_all = function(s) if not isObject(s) then return end objs(s):disable_all(); end stead.obj_save = function(self, name, h, need) local dsc; if need then print ("Warning: object "..name.." can not be saved!"); return end stead.savemembers(h, self, name, need); end stead.obj_str = function(self) local i, v, vv, o; if not isObject(self) then return end if isDisabled(self) then return end for i,o in opairs(self.obj) do o = stead.ref(o); if o~= nil and not isDisabled(o) then -- isObject is better, but compat layer must be ok vv = stead.call(o, 'nam'); vv = stead.xref(vv, o); v = stead.par(',', v, vv, stead.obj_str(o)); end end return v; end function obj(v) if v.nam == nil then if isRoom(v) then if isDialog(v) then error ("No dialog name in constructor.", 3); end error ("No room name in constructor.", 3); end error ("No object name in constructor.", 2); end v.object_type = true; if v.xref == nil then v.xref = stead.obj_xref; end if v.look == nil then v.look = stead.obj_look; end if v.enable == nil then v.enable = stead.obj_enable; end if v.disable == nil then v.disable = stead.obj_disable; end if v.disabled == nil then v.disabled = stead.obj_disabled; end if v.enable_all == nil then v.enable_all = stead.obj_enable_all; end if v.disable_all == nil then v.disable_all = stead.obj_disable_all; end if v.remove == nil then v.remove = stead.obj_remove; end if v.obj == nil then v.obj = {}; end if v.srch == nil then v.srch = stead.obj_search; end if v.str == nil then v.str = stead.obj_str; end v.obj = list(v.obj); if v.save == nil then v.save = stead.obj_save; end return v end function stead.ref(n, nofunc) -- ref object by name if type(n) == 'string' then if type(_G[n]) == 'table' then -- fastest path return _G[n]; end local f = stead.eval('return '..n); if f then return stead.ref(f(), nofunc); end return nil; end if type(n) == 'table' then return n; end if type(n) == 'function' and not nofunc then local r,v = pcall(n); if not r then return nil end return stead.ref(v); end return nil end function stead.deref(n) if type(n) == 'string' then return n end if type(n) == 'table' and type(n.key_name) == 'string' then return n.key_name end return n end stead.list_check = function(self, name) local i, v, ii; for i,v,ii in opairs(self) do local o = stead.ref(v); if not o then -- isObject(o) then -- compat error ("No object: "..name.."["..tostring(ii).."]".." ("..tostring(type(v))..")") return false end if stead.deref(v) then self[ii] = stead.deref(v); end end return true; end stead.list_str = function(self) local i, v, vv, o; for i,o in opairs(self) do o = stead.ref(o); if o~= nil and not isDisabled(o) then vv = stead.call(o, 'nam'); vv = stead.xref(vv, o); v = stead.par(',', v, vv); end end return v; end stead.list_add = function(self, name, pos) local nam nam = stead.deref(name); if self:look(nam) then return nil end self.__modified__ = true; if tonumber(pos) then pos = tonumber(pos) if pos <= #self then stead.table.insert(self, pos, nam); else self[pos] = nam; -- for spare lists end else stead.table.insert(self, nam); end return true end stead.list_set = function(self, name, pos) local nam local i = tonumber(pos); if not i then return nil end nam = stead.deref(name); self.__modified__ = true; self[i] = nam; -- for spare lists return true end stead.list_find = function(self, name) local n, v, ii local o = stead.ref(name, true) for n,v,ii in opairs(self) do if stead.ref(v) == o then -- do not call func while search return ii; end end return nil end stead.list_disable_all = function(s) local k,v for k,v in opairs(s) do local o = stead.ref(v); if isObject(o) then o:disable() end end end stead.list_enable_all = function(s) local k,v for k,v in opairs(s) do local o = stead.ref(v); if isObject(o) then o:enable() end end end stead.list_enable = function(s, w) local o, i = stead.list_search(s, w, true); o = stead.ref(o); if isObject(o) then o:enable() return o end end stead.list_disable = function(s, w) local o, i = stead.list_search(s, w, true); o = stead.ref(o); if isObject(o) then o:disable() return o end end stead.list_save = function(self, name, h, need) if self.__modifyed__ or self.__modified__ then -- compat h:write(name.." = list({});\n"); need = true; end stead.savemembers(h, self, name, need); end stead.list_name = function(self, name, dis) local n, o, ii for n,o,ii in opairs(self) do o = stead.ref(o); if isObject(o) then local nam = stead.call(o,'nam') ; if ( not isDisabled(o) or dis ) and name == tostring(nam) then return ii; end end end return nil end stead.list_id = function(self, id, dis) local n,o,ii for n,o,ii in opairs(self) do o = stead.ref(o); if dis or not isDisabled(o) then if isObject(o) and id == o.id then return ii; end end end end stead.list_search = function(self, n, dis) local i; i = self:look(n); if not i then i = self:name(n, dis); end if not i and tonumber(n) then i = self:byid(tonumber(n), dis); if not i then return nil end end if not dis and isDisabled(stead.ref(self[i])) then return nil; end return self[i], i; end stead.list_zap = function(self) local n,o,ii for n,o,ii in opairs(self) do self[ii] = nil; end self.__modified__ = true return self end stead.list_concat = function(self, other, pos) local n,o,ii for n,o,ii in opairs(other) do o = stead.ref(o); if pos == nil then self:add(stead.deref(o)); else self:add(stead.deref(o), pos); pos = pos + 1; end end end stead.list_del = function(self, name) local v,n v, n = self:srch(name); if n == nil then return nil; end self.__modified__ = true if n <= #self then v = stead.table.remove(self, n); else v = self[n]; self[n] = nil -- for spare lists end return v end stead.list_purge = function(self, name) local v,n v, n = self:srch(name, true); if n == nil then return nil; end self.__modified__ = true v = stead.table.remove(self, n); if not v then v = self[n]; self[n] = nil -- for spare lists end return v end stead.list_replace = function(self, name, name2) local o, ii o, ii = self:srch(name); if ii then self:set(name2, ii); else self:add(name2); end return ii; end function list(v) v.list_type = true; v.add = stead.list_add; v.set = stead.list_set; v.cat = stead.list_concat; v.zap = stead.list_zap; v.del = stead.list_del; v.purge = stead.list_purge; v.replace = stead.list_replace; v.look = stead.list_find; v.name = stead.list_name; v.byid = stead.list_id; v.srch = stead.list_search; v.str = stead.list_str; v.check = stead.list_check; v.save = stead.list_save; v.enable = stead.list_enable; v.disable = stead.list_disable; v.enable_all = stead.list_enable_all; v.disable_all = stead.list_disable_all; return v; end function isList(v) return (type(v) == 'table') and (v.list_type == true) end stead.call = function(v, n, ...) if type(v) ~= 'table' then error ("Call on non table object:"..tostring(n), 2); end if v[n] == nil then return nil,nil; end if type(v[n]) == 'string' then return v[n]; end if type(v[n]) == 'function' then stead.callpush(v, ...) local a,b = v[n](v, ...); -- boolean, nil if type(a) == 'boolean' and b == nil then b, a = a, stead.pget() if a == nil then if stead.cctx().action then a = true else a = b b = nil end end elseif a == nil and b == nil then a = stead.pget() b = nil end if a == nil and b == nil and stead.cctx().action then a = true end stead.callpop() return a,b end if type(v[n]) == 'boolean' then return v[n] end error ("Method not string nor function:"..tostring(n), 2); end stead.call_bool = function(v, n, ...) if type(v) ~= 'table' then error ("Call bool on non table object:"..n, 2); end if v[n] == nil then return nil end if v[n] == false then return false; end if type(v[n]) == 'function' then stead.callpush(v, ...) local r,v = v[n](v, ...); stead.callpop(); return r,v; end return true; -- not nil end stead.call_value = function(v, n, ...) if type(v) ~= 'table' then error ("Call value on non table object:"..n, 2); end if v[n] == nil then return nil end if type(v[n]) ~= 'function' then return v[n]; end stead.callpush(v, ...) local r,v = v[n](v, ...); stead.callpop(); return r,v; end stead.room_scene = function(self) local v; v = iface:title(stead.call(self,'nam')); v = stead.par(stead.scene_delim, v, stead.call(self,'dsc')); --obj_look(self)); return stead.cat(v, stead.space_delim); end stead.room_look = function(self) local i, vv, o; for i,o in opairs(self.obj) do o = stead.ref(o); if isObject(o) then vv = stead.par(stead.space_delim, vv, o:look()); end end return stead.cat(vv, stead.space_delim); end stead.obj_search = function(v, n, dis) local i; local o; if not dis and isDisabled(v) then return end o = v.obj:srch(n, dis); if o then return o, v; end for i,o in opairs(v.obj) do o = stead.ref(o); if isObject(o) then local r,rr = stead.obj_search(o, n, dis); if r then return r, rr; end end end return; end stead.room_save = function(self, name, h, need) local dsc; if need then print ("Warning: room "..name.." can not be saved!"); return end stead.savemembers(h, self, name, need); end function room(v) --constructor -- if v.nam == nil then -- error ("No room name in constructor.", 2); -- end if v.scene == nil then v.scene = stead.room_scene; end if v.look == nil then v.look = stead.room_look; end if v.save == nil then v.save = stead.room_save; end v.location_type = true; if v.way == nil then v.way = { }; end v.way = list(v.way); v = obj(v); return v; end stead.dialog_enter = function(self) if not stead.dialog_rescan(self) then return nil, false end return nil, true end stead.dialog_scene = function(self) local v v = iface:title(stead.call(self,'nam')); v = stead.par(stead.scene_delim, v, stead.call(self, 'dsc')); --obj_look(self)); return v; end stead.dialog_look = function(self) local i,n,v,ph n = 1 for i,ph in opairs(self.obj) do ph = stead.ref(ph); if isPhrase(ph) and not isDisabled(ph) then v = stead.par('^', v, txtnm(n, ph:look())); n = n + 1 end end return v; end stead.dialog_rescan = function(self) local i,k,ph k = 1 for i,ph in opairs(self.obj) do ph = stead.ref(ph); if isPhrase(ph) and not isDisabled(ph) then ph.nam = tostring(k); k = k + 1; end end if k == 1 then return false end return true end stead.dialog_empty = function(self) return not stead.dialog_rescan(self); end stead.dialog_phrase = function(self, num) if not tonumber(num) then if isPhrase(stead.ref(num)) then return stead.ref(num); end return nil end return stead.ref(self.obj[tonumber(num)]); end stead.phrase_seen = function(s, enb, ...) local i, ph local a = {...} if stead.table.maxn(a) == 0 then stead.table.insert(a, stead.cctx().self); end for i=1,stead.table.maxn(a) do ph = stead.dialog_phrase(s, a[i]); local r = not isPhrase(ph) or isRemoved(ph) or ph:disabled(); if not enb then r = not r end if r then return false end end return true end stead.dialog_pseen = function(s, ...) return stead.phrase_seen(s, true, ...); end stead.dialog_punseen = function(s, ...) return stead.phrase_seen(s, false, ...); end local function ponoff(s, on, ...) local i, ph local a = {...} if stead.table.maxn(a) == 0 then stead.table.insert(a, stead.cctx().self) end for i=1,stead.table.maxn(a) do ph = stead.dialog_phrase(s, a[i]); if isPhrase(ph) and not isRemoved(ph) then if on then ph:enable(); else ph:disable(); end end end end stead.dialog_prem = function(s, ...) local i, ph local a = {...} if stead.table.maxn(a) == 0 then stead.table.insert(a, stead.cctx().self); end for i=1,stead.table.maxn(a) do ph = stead.dialog_phrase(s, a[i]); if isPhrase(ph) then ph:remove(); end end end stead.dialog_pon = function(self,...) return ponoff(self, true, ...); end stead.dialog_poff = function(self,...) return ponoff(self, false, ...); end function dlg(v) --constructor v.dialog_type = true; if v.ini == nil then v.ini = stead.dialog_enter; end if v.enter == nil then v.enter = stead.dialog_enter; end if v.look == nil then v.look = stead.dialog_look; end if v.scene == nil then v.scene = stead.dialog_scene; end if v.pon == nil then v.pon = stead.dialog_pon; end if v.poff == nil then v.poff = stead.dialog_poff; end if v.prem == nil then v.prem = stead.dialog_prem; end if v.pseen == nil then v.pseen = stead.dialog_pseen; end if v.punseen == nil then v.punseen = stead.dialog_punseen; end if v.empty == nil then v.empty = stead.dialog_empty; end v = room(v); return v; end stead.phrase_action = function(self) local ph = self; local r, ret; if isDisabled(ph) then return nil, false end -- here it is ph:disable(); -- /* disable it!!! */ local last = stead.call(ph, 'ans'); if type(ph.do_act) == 'string' then local f = stead.eval(ph.do_act); if f ~= nil then ret = f(); else error ("Error while eval phrase action."); end elseif type(ph.do_act) == 'function' then ret = ph.do_act(self); end if ret == nil then ret = stead.pget(); end if last == true or ret == true then r = true; end local wh = stead.here(); while isDialog(wh) and not stead.dialog_rescan(wh) and stead.from(wh) ~= wh do wh = stead.from(wh) end if wh ~= stead.here() then ret = stead.par(stead.space_delim, ret, stead.back(wh)); end ret = stead.par(stead.scene_delim, last, ret); if ret == nil then return r -- hack? end return ret end stead.phrase_save = function(self, name, h, need) if need then local m = " = phr(" if isDisabled(self) then m = " = _phr(" end h:write(stead.string.format("%s%s%s,%s,%s);\n", name, m, stead.tostring(self.dsc), stead.tostring(self.ans), stead.tostring(self.do_act))); end stead.savemembers(h, self, name, false); end stead.phrase_look = function(self, n) if isDisabled(self) then return end local v = stead.call(self, 'dsc'); if type(v) ~= 'string' then return; end if game.hinting then return self:xref('{'..v..'}'); end return v; end function phrase(o) --constructor local ret = o; ret.look = stead.phrase_look; ret.nam = ''; -- for start ret.phrase_type = true; ret.act = stead.phrase_action; ret.save = stead.phrase_save; ret = obj(ret); return ret; end function _phr(ask, answ, act) local p = phrase ({ dsc = ask, ans = answ, do_act = act }); p:disable(); return p; end function phr(ask, answ, act) local p = phrase ({ dsc = ask, ans = answ, do_act = act }); -- p:enable(); return p; end stead.player_inv = function(self) return iface:inv(stead.cat(self:str())); end stead.player_ways = function(self) return iface:ways(stead.cat(stead.ref(self.where).way:str())); end stead.player_objs = function(self) return iface:objs(stead.cat(stead.ref(self.where):str())); end stead.player_look = function(self) return stead.ref(self.where):scene(); end stead.obj_tag = function(self, id) local k,v if isDisabled(self) then return id end for k,v in opairs(self.obj) do v = stead.ref(v); if isObject(v) and not isDisabled(v) then id = id + 1; v.id = id; id = stead.obj_tag(v, id); end end return id; end stead.player_tagall = function(self) local id, k, v; id = 0; id = stead.obj_tag(stead.here(), id); id = stead.obj_tag(stead.me(), id); for k,v in opairs(ways()) do v = stead.ref(v); if isRoom(v) and not isDisabled(v) then id = id + 1; v.id = id; end end end stead.player_action = function(self, what, ...) local v,r,obj obj = stead.ref(self.where):srch(what); if not obj then return stead.call(stead.ref(game), 'action', what, ...); --player_do(self, what, ...); end v, r = stead.player_take(self, what, ...); if not v then v, r = stead.call(stead.ref(obj), 'act', ...); if not v and r ~= true then v, r = stead.call(stead.ref(game), 'act', obj, ...); end end return v, r; end stead.player_take = function(self, what, ...) local v,r,obj,w obj,w = stead.ref(self.where):srch(what); if not obj then return nil, false; end v,r = stead.call(stead.ref(obj), 'tak', ...); if v and r ~= false then take(obj, w); end return v; end stead.player_use = function(self, what, onwhat, ...) local obj, obj2, v, vv, r; local scene_use_mode = false obj = self:srch(what); -- in inv? if not obj then -- no obj = stead.ref(self.where):srch(what); -- in scene? if not obj then -- no! return game.err, false; end scene_use_mode = true -- scene_use_mode! end if onwhat == nil then -- only one? if scene_use_mode then return self:action(what, ...); -- call act else v, r = stead.call(stead.ref(obj),'inv', ...); -- call inv end if not v and r ~= true then v, r = stead.call(game, 'inv', obj, ...); end return v, r; end obj2 = stead.ref(self.where):srch(onwhat); -- in scene? if not obj2 then obj2 = self:srch(onwhat); -- in inv? end if not obj2 or obj2 == obj then return game.err, false; end if not scene_use_mode or isSceneUse(stead.ref(obj)) then v, r = stead.call(stead.ref(obj), 'use', obj2, ...); if r ~= false then vv = stead.call(stead.ref(obj2), 'used', obj, ...); end end if not v and not vv then v, r = stead.call(game, 'use', obj, obj2, ...); end return stead.par(stead.space_delim, v, vv); end stead.player_back = function(self) local where = stead.ref(self.where); if where == nil then return nil,false end return stead.go(self, where.__from__, true); end stead.go = function(self, where, back) local was = self.where; local need_scene = false; local ret if not stead.in_walk_call then ret = function(rc) stead.in_walk_call = false return nil end else ret = function(rc) return rc end end stead.in_walk_call = true if where == nil then return nil,ret(false) end if not isRoom(stead.ref(where)) then error ("Trying to go nowhere: "..where, 2); end if not isRoom(stead.ref(self.where)) then error ("Trying to go from nowhere: "..self.where, 2); end if stead.in_entered_call or stead.in_onexit_call then error ("Do not use walk from onexit/entered action! Use exit/enter action instead:" .. self.where, 2); end local v, r; if not isVroom(stead.ref(where)) and not stead.in_exit_call then stead.in_exit_call = true -- to break recurse v,r = stead.call(stead.ref(self.where), 'exit', where); stead.in_exit_call = nil if r == false then return v, ret(r) end end local res = v; v = nil; if not back or not isDialog(stead.ref(self.where)) or isDialog(stead.ref(where)) then v, r = stead.call(stead.ref(where), 'enter', self.where); if r == false then return v, ret(r) end need_scene = true; if stead.ref(was) ~= stead.ref(self.where) then -- jump !!! where = stead.deref(self.where); need_scene = false; end end res = stead.par(stead.scene_delim, res, v); if not back then stead.ref(where).__from__ = stead.deref(self.where); end self.where = stead.deref(where); ret(); PLAYER_MOVED = true if need_scene then -- or isForcedsc(stead.ref(where)) then -- i'am not sure... return stead.par(stead.scene_delim, res, stead.ref(where):scene()); end return res; end stead.player_walk = function(self, where, ...) local v, r = stead.go(self, where, ...); return v, r; end stead.player_go = function(self, where) local w = stead.ref(self.where).way:srch(where); if not w then return nil,false end local v, r = stead.go(self, w, false); return v, r; end stead.player_save = function(self, name, h) h:write(tostring(name)..".where = '"..stead.deref(self.where).."';\n"); stead.savemembers(h, self, name, false); end function player(v) if v.nam == nil then error ("No player name in constructor.", 2); end if v.where == nil then v.where = 'main'; end if v.tag == nil then v.tag = stead.player_tagall; end if v.walk == nil then v.walk = stead.player_walk; end if v.go == nil then v.go = stead.player_go; end if v.ways == nil then v.ways = stead.player_ways; end if v.back == nil then v.back = stead.player_back; end if v.look == nil then v.look = stead.player_look; end if v.inv == nil then v.inv = stead.player_inv; end if v.use == nil then v.use = stead.player_use; end if v.action == nil then v.action = stead.player_action; end if v.save == nil then v.save = stead.player_save; end if v.objs == nil then v.objs = stead.player_objs; end v.player_type = true; return obj(v); end stead.game_life = function(self) local i,o local av,v local was_moved stead.in_life_call = true; stead.lifes_op = {}; -- lifes to on/off stead.PLAYER_MOVED = PLAYER_MOVED for i,o in opairs(self.lifes) do local vv local pre o = stead.ref(o); if not isDisabled(o) then PLAYER_MOVED = false vv,pre = stead.call(o, 'life'); if PLAYER_MOVED then -- clear life output, but not current av = nil v = nil was_moved = true ACTION_TEXT = vv; elseif pre then av = stead.par(stead.space_delim, av, vv); else v = stead.par(stead.space_delim, v, vv); end end end PLAYER_MOVED = was_moved if not PLAYER_MOVED then PLAYER_MOVED = stead.PLAYER_MOVED end stead.PLAYER_MOVED = nil stead.in_life_call = false; for i,o in ipairs(stead.lifes_op) do if o[1] then stead.lifeon(o[2], o[3]); else stead.lifeoff(o[2]); end end stead.lifes_op = nil; return v, av; end stead.player_moved = function() return PLAYER_MOVED or stead.PLAYER_MOVED end stead.check_list = function(k, v, p) if v.check == nil or not v:check(stead.string.format("%s[%q]", p, k)) then error ("error in list: "..stead.object..'.'..k); end end stead.check_room = function(k, v) if v.obj == nil then error("no obj in room:"..k); end if v.way == nil then error("no way in room:"..k); end end stead.check_player = function(k, v) v.where = stead.deref(v.where); end stead.check_object = function(k, v) if not v.nam then error ("No name in "..k); end if isRoom(v) then stead.check_room(k, v); end if isPlayer(v) then stead.check_player(k, v); end for_each(v, k, stead.check_list, isList, stead.deref(v)) end function for_everything(f, ...) local is_ok = function(s) return true end for_each(_G, '_G', f, is_ok, ...) end local compat_api = function() if stead.compat_api then return end if stead.api_version < "1.6.0" then if not go then go = stead.go end if not goin then goin = walkin end if not goout then goout = walkout end if not goback then goback = walkback end if not _G["goto"] then if _VERSION == "Lua 5.1" then -- 5.1 lua _G["goto"] = walk end end end if stead.api_version < "1.7.1" then if not goin then goin = function() error ("Please use 'walkin' instead 'goin'.", 2) end end if not goout then goout = function() error ("Please use 'walkout' instead 'goout'.", 2) end end if not goback then goback = function() error ("Please use 'walkback' instead 'goback'.", 2) end end if not _G["goto"] then if _VERSION == "Lua 5.1" then -- 5.1 lua _G["goto"] = function() error ("Please use 'walk' instead 'goto'.", 2) end end end get_savepath = instead_savepath get_gamepath = instead_gamepath get_steadpath = instead_steadpath get_themespath = instead_themespath get_gamespath = instead_gamespath theme_var = instead_themevar theme_name = instead_theme_name is_sound = instead_sound set_timer = instead_timer menu_toggle = instead_menu_toggle stead_busy = instead_busy readdir = instead_readdir sound_load = instead_sound_load sound_free = instead_sound_free sounds_free = instead_sounds_free sound_channel = instead_sound_channel sound_volume = instead_sound_volume sound_panning = instead_sound_panning font_load = instead_font_load font_free = instead_font_free font_scaled_size = instead_font_scaled_size sprite_alpha = instead_sprite_alpha sprite_dup = instead_sprite_dup sprite_scale = instead_sprite_scale sprite_rotate = instead_sprite_rotate sprite_text = instead_sprite_text sprite_text_size = instead_sprite_text_size sprite_draw = instead_sprite_draw sprite_copy = instead_sprite_copy sprite_compose = instead_sprite_compose sprite_fill = instead_sprite_fill sprite_pixel = instead_sprite_pixel sprite_load = instead_sprite_load sprite_free = instead_sprite_free sprite_size = instead_sprite_size sprites_free = instead_sprites_free call = stead.call call_bool = stead.call_bool call_value = stead.call_value get_title = stead.get_title get_picture = stead.get_picture get_inv = stead.get_inv get_ways = stead.get_ways get_autosave = stead.get_autosave fmt = stead.fmt obj_tag = stead.obj_tag module_init = stead.module_init player_inv = stead.player_inv dialog_enter = stead.dialog_enter end if stead.api_version < "1.4.5" then stead.xref = function(...) return xref(...); end -- internals of call cctx = stead.cctx callpush = stead.callpush callpop = stead.callpop clearargs = stead.clearargs -- saving savemembers = stead.savemembers; savevar = stead.savevar clearvar = stead.clearvar -- do_ini = stead.do_ini -- do_savegame = stead.do_savegame end stead.compat_api = true end stead.do_ini = function(self, load) local v='',vv local function call_key(k, o) o.key_name = k; end local function call_codekey(k, o) stead.functions[o].key_name = k; end local function call_ini(k, o, ...) v = stead.par('', v, stead.call(o, 'ini', ...)); end stead.math.randomseed(stead.os.time(stead.os.date("*t"))) stead.rnd(1); stead.rnd(2); stead.rnd(3); -- Lua bug? if type(game) ~= 'table' then error ("No valid 'game' object."); end if not isPlayer(stead.me()) then error ("No valid player."); end if not isRoom(stead.here()) then error ("No valid room."); end game.pl = stead.deref(game.pl); stead.me().where = stead.deref(stead.me().where); -- game.where = stead.deref(game.where); if not load then compat_api() for_each_object(call_key); for_each_codeblock(call_codekey); for_each_object(stead.check_object); call_key("game", game); for_each(game, "game", stead.check_list, isList, stead.deref(game)) end for_each_object(call_ini, load); stead.me():tag(); if not self.showlast then self._lastdisp = nil; end stead.initialized = true return stead.par('',v, self._lastdisp); --stead.par('^^',v); end stead.game_ini = function(self) local v,vv v = stead.do_ini(self); vv = iface:title(stead.call(self,'nam')); vv = stead.par(stead.scene_delim, vv, stead.call(self,'dsc')); if type(init) == 'function' then init(); end -- if type(hooks) == 'function' then -- hooks(); -- end return stead.par(stead.scene_delim, vv, v); end stead.game_start = function(s) if type(start) == 'function' then start() -- start function end end function game(v) if v.nam == nil then error ("No game name in constructor.", 2); end if v.pl == nil then v.pl = 'player'; end if v.ini == nil then v.ini = stead.game_ini; end if v.start == nil then v.start = stead.game_start end if v.save == nil then v.save = stead.game_save; end if v.load == nil then v.load = stead.game_load; end if v.life == nil then v.life = stead.game_life; end if v.step == nil then v.step = stead.game_step; end if v.lifes == nil then v.lifes = {}; end v.lifes = list(v.lifes); v._time = 0; v._running = true; v.game_type = true; return v; end function live(v) return stead.ref(game.lifes:srch(v)); end function isEnableSave() if game.enable_save == nil or stead.get_autosave() then return true end return stead.call_bool(game, 'enable_save'); end function isEnableAutosave() if game.enable_autosave == nil then return true end return stead.call_bool(game, 'enable_autosave'); end function for_each(o, n, f, fv, ...) local call_list = {} local k,v if type(o) ~= 'table' then return end stead.object = n; for k,v in pairs(o) do if fv(v) then stead.table.insert(call_list, { k = k, v = v }); end end for k, v in ipairs(call_list) do f(v.k, v.v, ...); end end function isCode(s) return type(s) == 'function' and type(stead.functions[s]) == 'table' end function for_each_codeblock(f,...) for_each(_G, '_G', f, isCode, ...) end function for_each_object(f,...) for_each(_G, '_G', f, isObject, ...) end function for_each_player(f,...) for_each(_G, '_G', f, isPlayer, ...) end function for_each_room(f,...) for_each(_G, '_G', f, isRoom, ...) end function for_each_list(f,...) for_each(_G, '_G', f, isList, ...) end stead.clearvar = function(v) local k,o for k,o in pairs(v) do if type(o) == 'table' and o.__visited__ ~= nil then o.__visited__ = nil o.auto_saved = nil stead.clearvar(o) end end end stead.savemembers = function(h, self, name, need) local k,v for k,v in pairs(self) do local need2 if k ~= "__visited__" then need2 = false if isForSave(k, v, self) then need2 = true; end if type(k) == 'string' then stead.savevar(h, v, name..'['..stead.string.format("%q",k)..']', need or need2); elseif type(k) == 'number' then stead.savevar(h, v, name.."["..k.."]", need or need2) elseif type(k) == 'table' and type(k.key_name) == 'string' then stead.savevar(h, v, name.."["..k.key_name.."]", need or need2) end end end end -- savemembers = stead.savemembers; stead.savevar = function(h, v, n, need) local r,f if v == nil or type(v) == "userdata" or type(v) == "function" then if isCode(v) and need then if type(stead.functions[v].key_name) == 'string' and stead.functions[v].key_name ~= n then h:write(stead.string.format("%s=%s\n", n, stead.functions[v].key_name)) else h:write(stead.string.format("%s=code %q\n", n, stead.functions[v].code)) end end -- if need then -- error ("Variable "..n.." can not be saved!"); -- end return end -- if stead.string.find(n, '_') == 1 or stead.string.match(n,'^%u') then -- need = true; -- end if type(v) == "string" then if not need then return end h:write(stead.string.format("%s=%q\n",n,v)) return; end if type(v) == "table" then if v == _G then return end if type(v.key_name) == 'string' and v.key_name ~= n then -- just xref if v.auto_allocated and not v.auto_saved then v:save(v.key_name, h, false, true); -- here todo end if need then if stead.ref(v.key_name) == nil then v.key_name = 'null' end h:write(stead.string.format("%s = %s\n", n, v.key_name)); end return end if v.__visited__ ~= nil then return end v.__visited__ = n; if type(v.save) == 'function' then v:save(n, h, need); return; end if need then h:write(n.." = {};\n"); end stead.savemembers(h, v, n, need); return; end if not need then return end h:write(n, " = ",tostring(v)) h:write("\n") end -- savevar = stead.savevar stead.gamereset = function(file, forget) stead.clearargs() if forget then stead.stop_music(); stead.stop_sound(); timer:stop(); if type(variables) == 'table' then local k,v for k,v in ipairs(variables) do _G[v] = nil end variables = nil variables_save = nil end init = function() -- null init function end start = function() -- null start function end for_each_object(function(k, o) -- destroy all objects if o.system_type then return end _G[k] = nil end); game._scripts = { } game.lifes:zap() game.scriptsforget = true -- anything else? stead:init(); end dofile(file); game:ini(); if #game._scripts == 0 or file ~= game._scripts[#game._scripts] then if #game._scripts ~= 0 or file ~= 'main.lua' then stead.table.insert(game._scripts, file); end end end stead.gamefile = function(file, forget) stead.gamereset(file, forget) if forget then game:start() stead.started = true return stead.walk(stead.here(), false, false, true); end end stead.do_savegame = function(s, h) stead.busy(true) local function save_object(key, value, h) stead.busy(true) stead.savevar(h, value, key, false); return true; end local function save_var(key, value, h) stead.busy(true) stead.savevar(h, value, key, isForSave(key, value, _G)) end local forget = game.scriptsforget local i,v for i,v in ipairs(s._scripts) do h:write(stead.string.format("stead.gamereset(%q,%s)\n", v, tostring(forget))) forget = nil end save_object('allocator', allocator, h); -- always first! for_each_object(save_object, h); save_object('game', self, h); for_everything(save_var, h); -- save_object('_G', _G, h); stead.clearvar(_G); stead.busy(false) end stead.savename = function() return stead.call(stead.here(), 'nam'); end stead.game_save = function(self, name, file) local h; if file ~= nil then file:write(name..".pl = '"..stead.deref(self.pl).."'\n"); stead.savemembers(file, self, name, false); return nil, true end if not isEnableSave() then return nil, false end if name == nil then return nil, false end h = stead.io.open(name,"wb"); if not h then return nil, false end local n if type(stead.savename) == 'function' then n = stead.savename() end if type(n) == 'string' and n ~= "" then h:write("-- $Name: "..n:gsub("\n","\\n").."$\n"); end stead.do_savegame(self, h); h:flush(); h:close(); game.autosave = false; -- we have only one try for autosave game.restart_game = false return nil; end stead.game_load = function(self, name) if name == nil then return nil, false end local f, err = loadfile(name); if f then local i,r = f(); if r then return nil, false end i, r = stead.do_ini(self, true); if not stead.started then game:start() stead.started = true end return i, r end return nil, false end stead.game_step = function(self) self._time = self._time + 1; return self:life(self); end game = game { codepage = "UTF-8", nam = "INSTEAD -- Simple Text Adventure interpreter v"..stead.version.." '2009-2013 by Peter Kosyh", dsc = [[ Commands:^ look(or just enter), act (or just what), use [on what], go ,^ back, inv, way, obj, quit, save , load .]], pl ='pl', showlast = true, _scripts = {}, }; stead.strip = function(s) local s = tostring(s); s = stead.string.gsub(s, '^[ \t]*', ''); s = stead.string.gsub(s, '[ \t]*$', ''); return s; end function isForcedsc(v) local r,g r = stead.call_bool(v, 'forcedsc'); if r then return true end g = stead.call_bool(game, 'forcedsc', v); return g and r ~= false end function isSceneUse(v) local o,g o = stead.call_bool(v, 'scene_use'); if o then return true end g = stead.call_bool(game, 'scene_use', v); return g and o ~= false end iface = { anchor = function(self) return ''; end; img = function(self, str) return ''; end, nb = function(self, str) return str; end, em = function(self, str) return str; end, right = function(self, str) return str; end, left = function(self, str) return str; end, center = function(self, str) return str; end, just = function(self, str) return str; end, top = function(self, str) return str; end, bottom = function(self, str) return str; end, middle = function(self, str) return str; end, tab = function(self, str, al) return ''; end; bold = function(self, str) return str; end, under = function(self, str) return str; end, st = function(self, str) return str; end, enum = function(self, n, str) return n..' - '..str; end, xref = function(self, str, obj) local o = stead.ref(stead.here():srch(obj)); if not o then o = stead.ref(ways():srch(obj)); end if not o then o = stead.ref(stead.me():srch(obj)); end if not o or not o.id then return str; end return stead.cat(str,"("..tostring(o.id)..")"); end, title = function(self, str) return "["..str.."]"; end, objs = function(self, str) return str; end, ways = function(self, str) return str; end, inv = function(self, str) return str; end, text = function(self, str) if str then print(str); end end, fmt = function(self, cmd, st, moved, r, av, objs, pv) -- st -- changed state (main win), move -- loc changed local l, vv if st and not moved then if cmd ~= 'look' then av = txtem(av); pv = txtem(pv); r = txtem(r); if isForcedsc(stead.here()) then l = stead.me():look(); end end end vv = stead.fmt(stead.cat(stead.par(stead.scene_delim, l, r, av, objs, pv), '^')); return vv end, cmd = function(self, inp) local r, v; v = false stead.state = false; -- changed state (main screen) local a = { }; local cmd; RAW_TEXT = nil PLAYER_MOVED = nil stead.set_sound(); -- empty sound cmd,a = stead.getcmd(inp); if cmd == '' then cmd = 'look' end -- stead.me():tag(); local oldloc = stead.here(); if cmd == 'look' then stead.state = true r,v = stead.me():look(); elseif cmd == 'obj' then r,v = stead.me():objs(); elseif cmd == 'inv' then r,v = stead.me():inv(); elseif cmd == 'way' then r,v = stead.me():ways(); elseif cmd == 'ls' then r = stead.par(stead.scene_delim, stead.me():objs(), stead.me():inv(), stead.me():ways()); v = nil; elseif cmd == 'go' then stead.state = true r,v = stead.me():go(stead.unpack(a)); elseif cmd == 'back' then stead.state = true r,v = stead.me():go(stead.from()); elseif cmd == 'act' then stead.state = true r,v = stead.me():action(stead.unpack(a)); elseif cmd == 'use' then stead.state = true r,v = stead.me():use(stead.unpack(a)); elseif cmd == 'save' then r, v = game:save(stead.unpack(a)); elseif cmd == 'load' then r, v = game:load(stead.unpack(a)); if v ~= false and game.showlast then return r; end elseif cmd == 'wait' then -- nothing todo in game, skip tick v = nil; r = true; stead.state = true elseif cmd == 'nop' then -- inv only v = true; r = nil; stead.state = true else stead.state = true r,v = stead.me():action(cmd, stead.unpack(a)); end -- here r is action result, v - ret code value -- state -- game state changed if stead.state and r == nil and v == true then -- we do nothing return nil, true; -- menu end if stead.state and r == nil and v == nil and stead.api_version >= "1.3.5" then -- new goto return nil, false -- really nothing end if RAW_TEXT and v ~= false then return stead.cat(r, '\n'), true; end if v == false then return stead.cat(r, '\n'), false; end ACTION_TEXT = r; -- here, life methods can redefine this local av, pv -- av -- active lifes, pv -- background local vv if stead.state then pv,av = game:step(); stead.me():tag(); vv = stead.here():look(); end vv = self:fmt(cmd, stead.state, (oldloc ~= stead.here()) or PLAYER_MOVED, ACTION_TEXT, av, vv, pv); if stead.state then game._lastdisp = vv stead.last_act(ACTION_TEXT) end if vv == nil then -- nil is error vv = '' end return vv, true; -- action is here end, shell = function(self) local inp, i, k, cmd, a, n; stead.me():tag(); while game._running do inp = stead.io.read("*l"); if inp == 'quit' then break; end self:text(self:cmd(inp)); end end }; function me() return stead.ref(game.pl); end stead.me = me function where(s) if not isObject(stead.ref(s)) then error("Wrong parameter to where.", 2); end if isPlayer(stead.ref(s)) then return stead.ref(stead.ref(s).where); end return stead.ref(stead.ref(s).__where__); end function here() return stead.ref(stead.me().where); end stead.here = here function from(w) if w == nil then w = stead.here(); else w = stead.ref(w); end return stead.ref(w.__from__); end stead.from = from stead.time = function(s) local n = game._time; if type(s) == 'number' then game._time = s end return n end function inv() return stead.me().obj; end function objs(w) if not w then return stead.here().obj; else return stead.ref(w).obj; end end function ways(w) if not w then return stead.here().way; else return stead.ref(w).way; end end stead.xref = function(str, obj, ...) if type(str) ~= 'string' then return nil; end; return iface:xref(str, obj, ...); end xref = stead.xref function pseen(...) if not isDialog(stead.here()) then return end return stead.here():pseen(...); end function punseen(...) if not isDialog(stead.here()) then return end return stead.here():punseen(...); end function pon(...) if not isDialog(stead.here()) then return end stead.here():pon(...); end function poff(...) if not isDialog(stead.here()) then return end stead.here():poff(...); end function prem(...) if not isDialog(stead.here()) then return end stead.here():prem(...); end function lifeon(what, nr) if stead.in_life_call then stead.table.insert(stead.lifes_op, { true, what, nr }); return end game.lifes:add(what, nr); end stead.lifeon = lifeon function lifeoff(what) if stead.in_life_call then stead.table.insert(stead.lifes_op, { false, what }); return end game.lifes:del(what); end stead.lifeoff = lifeoff stead.allocator_save = function(s, name, h, need, auto) if s.auto_allocated and not auto then return end if need then if s.auto_allocated then -- in current realization always false local m = stead.string.format("allocator:new(%s, %s)\n", stead.tostring(s.constructor), stead.tostring(s.constructor)); h:write(m); else local m = stead.string.format(" = allocator:get(%s, %s)\n", stead.tostring(name), stead.tostring(s.constructor)); h:write(name..m); if stead.api_version >= "1.3.0" then m = stead.string.format("stead.check_object(%s, %s)\n", stead.tostring(name), name); h:write(m); end end end stead.savemembers(h, s, name, false); if s.auto_allocated then s.auto_saved = true end end function new(str) if type(str) ~= 'string' then error("Non string constructor in new.", 2); end return allocator:new(str); end function delete(v) allocator:delete(v); end stead.vobj_save = function(self, name, h, need) local dsc = self.dsc; local w = stead.deref(self.where); if need then h:write(stead.string.format("%s = vobj(%s, %s, %s, %s);\n", name, stead.tostring(self.key), stead.tostring(self.nam), stead.tostring(dsc), stead.tostring(w))); end stead.savemembers(h, self, name,false); end stead.vobj_act = function(self, ...) local o, r = stead.here():srch(self); -- self.nam if stead.ref(o) and stead.ref(o).where then return stead.walk(stead.ref(o).where); end return stead.call(stead.ref(r),'act', self.key, ...); end stead.vobj_used = function(self, ...) local o, r = stead.here():srch(self.nam); return stead.call(stead.ref(r),'used', self.key, ...); end function vobj(key, name, dsc, w) if not tonumber(key) then error ("vobj key must be number!", 2); end return obj{ key = key, nam = name, dsc = dsc, where = stead.deref(w), act = stead.vobj_act, used = stead.vobj_used, save = stead.vobj_save, obj = list({}) }; end function vway(name, dsc, w) return obj{ key = -1, nam = name, dsc = dsc, act = stead.vobj_act, where = stead.deref(w), used = stead.vobj_used, save = stead.vobj_save, obj = list({}), }; end stead.vroom_save = function(self, name, h, need) if need then local t = stead.string.format("%s = vroom(%s, %q);\n", name, stead.tostring(self.nam), stead.deref(self.where)) h:write(t); end stead.savemembers(h, self, name,false); end stead.vroom_enter = function(self, ...) return stead.walk(self.where); end function isVroom(v) return (type(v) == 'table') and (v.vroom_type) end function vroom(name, w) if w == nil then error("Wrong parameter to vroom.", 2); end return room { vroom_type = true, nam = name, where = stead.deref(w), enter = stead.vroom_enter, save = stead.vroom_save, }; end function walk(what) local v,r=stead.me():walk(what); stead.me():tag(); return v,r; end stead.walk = walk; function back() return stead.me():back(); end stead.back = back; stead.rnd = function(m) if not m then return stead.math.random(); end return stead.math.random(m); end function taken(obj) if isObject(stead.ref(obj)) and stead.ref(obj)._taken then return true end return false; end function remove(obj, from) local o,w from = stead.ref(from) if from then if isList(from) then return from:del(obj) end o,w = from:srch(obj); else o,w = stead.here():srch(obj); end if w then stead.ref(w).obj:del(obj); end o = stead.ref(o); if not isObject(o) then o = stead.ref(obj); end if isObject(o) then o.__where__ = nil; end return o end stead.remove = remove function purge(obj, from) local o,w from = stead.ref(from) if from then if isList(from) then return from:purge(obj) end o,w = from:srch(obj, true); else o,w = stead.here():srch(obj, true); end if w then stead.ref(w).obj:purge(obj); end o = stead.ref(o); if not isObject(o) then o = stead.ref(obj); end if isObject(o) then o.__where__ = nil; end return o end stead.purge = purge function taketo(obj, wh, pos) local o = remove(obj, wh); if not isObject(o) then error ("Trying to take wrong object.", 2); end inv():add(obj, pos); o._taken = true wh = stead.deref(stead.me()) if type(wh) == 'string' then o.__where__ = wh; end return o end function take(obj, wh) return taketo(obj, wh); end function takef(obj, wh) return taketo(obj, wh, 1); end function putto(obj, w, pos) local wh local o = stead.ref(obj); if not isObject(o) then error ("Trying to put wrong object.", 2); end if not w then wh = stead.deref(stead.here()); w = stead.here(); else wh = stead.deref(w); w = stead.ref(w); end if isList(w) then w:add(obj, pos); else w.obj:add(obj, pos); end if type(wh) == 'string' then o.__where__ = wh; end return o; end function put(obj, w) return stead.placeto(obj, w); end function putf(obj, w) return stead.placeto(obj, w, 1); end place = put placef = putf placeto = putto stead.placeto = placeto function replace(obj, obj2, from) local o,w,i if not isObject(stead.ref(obj2)) then error ("Wrong parameter to replace.", 2); end from = stead.ref(from) if from then if isList(from) then from:replace(obj, obj2); return stead.ref(obj) end o,w = from:srch(obj); else o,w = stead.here():srch(obj); end if w then stead.ref(w).obj:replace(o, obj2); stead.ref(obj2).__where__ = stead.deref(w); else stead.placeto(obj2, from); end o = stead.ref(o); if not isObject(o) then o = stead.ref(obj); end if isObject(o) then o.__where__ = nil; end return o; end function drop(obj, w) local o = put(obj, w); if not isObject(o) then error ("Trying to drop wrong object.", 2); end inv():del(obj); o._taken = false return o; end function dropf(obj) local o = putf(obj); if not isObject(o) then error ("Trying to dropf wrong object.", 2); end inv():del(obj); o._taken = false return o; end function seen(obj, wh) if not wh then wh = stead.here(); else wh = stead.ref(wh); end local o,w = wh:srch(obj); o = stead.ref(o); if isObject(o) then return o,w end return nil end function exist(obj, wh) if not wh then wh = stead.here(); else wh = stead.ref(wh); end local o,w = wh:srch(obj, true); o = stead.ref(o); if isObject(o) then return o,w end return nil end function have(obj) local o = inv():srch(obj); o = stead.ref(o); if isObject(o) then return o end return nil end function moveto(obj, there, from, pos) stead.remove(obj, from); stead.placeto(obj, there, pos); return stead.ref(obj); end stead.moveto = moveto function move(obj, there, from) return stead.moveto(obj, there, from); end function movef(obj, there, from) return stead.moveto(obj, there, from, 1); end stead.get_picture = function() local s = stead.call(stead.here(),'pic'); if not s then s = stead.call(game, 'pic'); end return s; end stead.get_title = function() local s = stead.call(stead.here(),'nam'); return s; end stead.get_music = function() return game._music, game._music_loop; end stead.get_music_loop = function() return game._music_loop; end stead.save_music = function(s) if s == nil then s = self end s.__old_music__ = stead.get_music(); s.__old_loop__ = stead.get_music_loop(); end stead.restore_music = function(s) if s == nil then s = self end stead.set_music(s.__old_music__, s.__old_loop__); end stead.set_music = function(s, count) game._music = s; if not tonumber(count) then game._music_loop = 0; else game._music_loop = tonumber(count); end end stead.set_music_fading = function(o, i) if o and o == 0 then o = -1 end if i and i == 0 then i = -1 end game._music_fadeout = o if not i then game._music_fadein = o else game._music_fadein = i end end stead.get_music_fading = function() return game._music_fadeout, game._music_fadein end stead.stop_music = function() stead.set_music(nil, -1); end stead.is_music = function() return game._music ~= nil and game._music_loop ~= -1 end if instead_sound == nil then function instead_sound() return false -- sdl-instead export own function end end stead.is_sound = instead_sound if instead_savepath == nil then function instead_savepath() return "./" end end function autosave(slot) game.autosave = true; game.autosave_slot = slot; end stead.autosave = autosave; stead.get_restart = function() return stead.restart_game end stead.restart = function() stead.restart_game = true end stead.get_autosave = function() return game.autosave, game.autosave_slot end stead.get_sound = function() return game._sound, game._sound_channel, game._sound_loop; end stead.get_sound_chan = function() return game._sound_channel end stead.get_sound_loop = function() return game._sound_loop end stead.stop_sound = function(chan) if not tonumber(chan) then stead.set_sound('@'); return end stead.add_sound('@'..tostring(chan)); end stead.add_sound = function(s, chan, loop) if type(s) ~= 'string' then return end if type(game._sound) == 'string' then if tonumber(chan) then s = s..'@'..tostring(chan); end if tonumber(loop) then s = s..','..tostring(loop) end stead.set_sound(game._sound..';'..s, stead.get_sound_chan(), stead.get_sound_loop()); else stead.set_sound(s, chan, loop); end end stead.set_sound = function(s, chan, loop) game._sound = s; if not tonumber(loop) then game._sound_loop = 1; else game._sound_loop = tonumber(loop); end if not tonumber(chan) then game._sound_channel = -1; else game._sound_channel = tonumber(chan); end end function change_pl(p) local o = stead.ref(p); if type(stead.deref(p)) ~= 'string' or not o then error ("Wrong player name in change_pl...", 2); end game.pl = stead.deref(p); return stead.walk(o.where, false, true, true); -- no call enter/exit end function disabled(o) return isDisabled(stead.ref(o)) end function disable(o) o = stead.ref(o) if isObject(o) then o:disable() end return o end function enable(o) o = stead.ref(o) if isObject(o) then o:enable() end return o end function disable_all(o) o = stead.ref(o) if isObject(o) or isList(o) then o:disable_all() end return o end function enable_all(o) o = stead.ref(o) if isObject(o) or isList(o) then o:enable_all() end return o end function isForSave(k, v, s) -- k - key, v - value, s -- parent table if type(k) == 'function' then return false end if type(v) == 'function' or type(v) == 'userdata' then return false end return stead.string.find(k, '_') == 1 or stead.string.match(k,'^%u') end stead.inherit = function(o, f) return function(...) return f(o(...)) end end inherit = stead.inherit stead.hook = function(o, f) return function(...) local ff if type(o) ~= 'function' then ff = function(s) return o; end else ff = o end return f(ff, ...) end end hook = stead.hook function nameof(v) if isObject(v) then local r = stead.call(v, 'nam'); return r end end stead.nameof = nameof stead.dispof = function(v) if isObject(v) then local r if game.gui then r = stead.call(v, 'disp') end if r == nil then r = stead.call(v, 'nam'); end return r end end function stead_version(v) if not tostring(v) then return end if stead.version < v then error ([[The game requires instead engine of version ]] ..v.. [[ or higher. http://instead.sourceforge.net]], 2) end stead.api_version = v if v >= "1.2.0" then require ("walk") require ("vars") require ("object") end if v >= "1.6.3" then require ("dlg") end end instead_version = stead_version function code(v) local f = stead.eval(v) if not f then error ("Wrong script: "..tostring(v), 2); end stead.functions[f] = { f = f, code = v }; return f; end stead.code = code --- here the game begins stead.objects = function(s) null = obj { nam = 'null'; } input = obj { -- input object system_type = true, nam = 'input', --[[ key = function(s, down, key) return end, ]] --[[ click = function(s, down, mb, x, y, [ px, py ] ) return end ]] }; timer = obj { -- timer calls stead.timer callback nam = 'timer', ini = function(s) if tonumber(s._timer) ~= nil and type(stead.set_timer) == 'function' then stead.set_timer(s._timer); end end, get = function(s) if tonumber(s._timer) == nil then return 0 end return tonumber(s._timer); end, stop = function(s) return s:set(0); end, del = function(s) return s:set(0); end, set = function(s, v) s._timer = tonumber(v); if type(stead.set_timer) ~= 'function' then return false end stead.set_timer(v) return true end, --[[ callback = function(s) end, ]] }; allocator = obj { nam = 'allocator', get = function(s, n, c) if isObject(stead.ref(n)) and stead.api_version >= "1.3.0" then -- static? return stead.ref(n); end local v = stead.ref(c); if not v then error ("Null object in allocator: "..tostring(c)); end v.key_name = n; v.save = stead.allocator_save; v.constructor = c; return v end, delete = function(s, w) w = stead.ref(w); if type(w.key_name) ~= 'string' then return end local f = stead.eval(w.key_name..'= nil;'); if f then f(); end end, new = function(s, n, key) local v = stead.ref(n); if type(v) ~= 'table' or type(n) ~= 'string' then error ("Error in new.", 2); end v.save = stead.allocator_save; v.constructor = n; if key then s.objects[key] = v v.key_name = stead.string.format('allocator["objects"][%s]', stead.tostring(key)); else local nm = #s.objects + 1 -- here is new index stead.table.insert(s.objects, v); v.key_name = 'allocator["objects"]['..tostring(nm)..']'; end if stead.api_version >= "1.3.0" then stead.check_object(v.key_name, v) end return v end, objects = { save = function(self, name, h, need) stead.savemembers(h, self, name, true); end, }, }; pl = player { nam = "Incognito", where = 'main', obj = { } }; main = room { nam = 'main', dsc = 'No main room defined.', }; end stead.init = function(s) stead.initialized = false stead.started = false stead:objects(); s.functions = {} -- code blocks local k,v for k,v in ipairs(s.modules_ini) do v(); end end stead:init(); -- those are sill in global space add_sound = stead.add_sound set_sound = stead.set_sound stop_sound = stead.stop_sound get_sound = stead.get_sound get_sound_loop = stead.get_sound_loop get_sound_chan = stead.get_sound_chan get_music = stead.get_music get_music_fading = stead.get_music_fading get_music_loop = stead.get_music_loop set_music = stead.set_music set_music_fading = stead.set_music_fading stop_music = stead.stop_music save_music = stead.save_music restore_music = stead.restore_music is_music = stead.is_music ref = stead.ref deref = stead.deref mouse_pos = stead.mouse_pos mouse_filter = stead.mouse_filter get_ticks = stead.ticks pclr = stead.pclr pget = stead.pget p = stead.p pr = stead.pr pn = stead.pn par = stead.par cat = stead.cat player_moved = stead.player_moved rnd = stead.rnd; gamefile = stead.gamefile time = stead.time -- vim:ts=4 instead-1.9.1/stead/kbd.lua000644 001751 001751 00000002110 12161555602 016013 0ustar00peterpeter000000 000000 game.action = stead.hook(game.action, function(f, s, cmd, ...) if cmd == 'user_kbd' then local r,v; if stead.here().kbd then r,v = stead.call(stead.here(), 'kbd', input.key_event.down, input.key_event.key); elseif s.kbd then r,v = stead.call(s, 'kbd', input.key_event.down, input.key_event.key); end if r == nil and v == nil and stead.api_version < "1.3.5" then return nil, true end return r,v end return f(s, cmd, ...); end) stead.module_init(function() input.key = stead.hook(input.key, function(f, s, down, key, ...) if input._key_hooks[key] then input.key_event = { key = key, down = down }; return 'user_kbd' end return f(s, down, key, ...) end) input._key_hooks = {} end) stead.hook_keys = function(...) local i local a = {...}; for i = 1, stead.table.maxn(a) do input._key_hooks[tostring(a[i])] = true; end end stead.unhook_keys = function(...) local i local a = {...}; for i = 1, stead.table.maxn(a) do input._key_hooks[tostring(a[i])] = nil; end end hook_keys = stead.hook_keys unhook_keys = stead.unhook_keys -- vim:ts=4 instead-1.9.1/stead/theme.lua000644 001751 001751 00000011305 12161555602 016363 0ustar00peterpeter000000 000000 theme = { nam = 'theme'; object_type = true; system_type = true; save = function(self, name, h, need) local k,v for k,v in pairs(self.vars) do h:write(stead.string.format("theme.set(%q, %q);\n", k, v)) end end; reset = function(...) local i local a = {...}; for i = 1, stead.table.maxn(a) do local name = a[i] local v if name then v = theme.reset_vars[name] if v then instead_theme_var(name, v); theme.vars[name] = nil theme.reset_vars[name] = nil end end end end; set = function(name, val) if val and name then if not theme.reset_vars[name] then theme.reset_vars[name] = instead_theme_var(name) end instead_theme_var(name, tostring(val)); theme.vars[name] = tostring(val); end end; name = function() return instead_theme_name(name); end; get = function(name) return instead_theme_var(name); end; win = { reset = function() theme.reset("win.x", "win.y", "win.w", "win.h", "win.col.fg", "win.col.link", "win.col.alink", "win.fnt.name", "win.fnt.size", "win.fnt.height"); end; geom = function(x, y, w, h) theme.set("win.x", x); theme.set("win.y", y); theme.set("win.w", w); theme.set("win.h", h); end; color = function(fg, link, alink) theme.set("win.col.fg", fg); theme.set("win.col.link", link); theme.set("win.col.alink", alink); end; font = function(name, size, height) theme.set("win.fnt.name", name); theme.set("win.fnt.size", size); theme.set("win.fnt.height", height); end; gfx = { reset = function() theme.reset("win.gfx.up", "win.up.x", "win.up.y"); theme.reset("win.gfx.down", "win.down.x", "win.down.y"); end; up = function(pic, x, y) theme.set("win.gfx.up", pic); theme.set("win.up.x", x); theme.set("win.up.y", y); end; down = function(pic, x, y) theme.set("win.gfx.down", pic); theme.set("win.down.x", x); theme.set("win.down.y", y); end; }; }; inv = { reset = function() theme.reset("inv.x", "inv.y", "inv.w", "inv.h", "inv.col.fg", "inv.col.link", "inv.col.alink", "inv.fnt.name", "inv.fnt.size", "inv.fnt.height", "inv.mode"); end; geom = function(x, y, w, h) theme.set("inv.x", x); theme.set("inv.y", y); theme.set("inv.w", w); theme.set("inv.h", h); end; color = function(fg, link, alink) theme.set("inv.col.fg", fg); theme.set("inv.col.link", link); theme.set("inv.col.alink", alink); end; font = function(name, size, height) theme.set("inv.fnt.name", name); theme.set("inv.fnt.size", size); theme.set("inv.fnt.height", height); end; mode = function(mode) theme.set("inv.mode", mode); end; gfx = { reset = function() theme.reset("inv.gfx.up", "inv.up.x", "inv.up.y"); theme.reset("inv.gfx.down", "inv.down.x", "inv.down.y"); end; up = function(pic, x, y) theme.set("inv.gfx.up", pic); theme.set("inv.up.x", x); theme.set("inv.up.y", y); end; down = function(pic, x, y) theme.set("inv.gfx.down", pic); theme.set("inv.down.x", x); theme.set("inv.down.y", y); end; }; }; menu = { reset = function() theme.reset("menu.bw", "menu.col.fg", "menu.col.bg", "menu.col.alpha", "menu.col.link", "menu.col.alink", "menu.fnt.name", "menu.fnt.size", "menu.fnt.height"); end; bw = function(w) theme.set("menu.bw", w); end; color = function(fg, bg, alpha, link, alink) theme.set("menu.col.fg", fg); theme.set("menu.col.bg", bg); theme.set("menu.col.alpha", alpha); theme.set("menu.col.link", link); theme.set("menu.col.alink", alink); end; font = function(name, size, height) theme.set("menu.fnt.name", name); theme.set("menu.fnt.size", size); theme.set("menu.fnt.height", height); end; gfx = { reset = function() theme.reset("menu.gfx.button", "menu.button.x", "menu.button.y"); end; button = function(b, x, y) theme.set("menu.gfx.button", b); theme.set("menu.button.x", x); theme.set("menu.button.y", y); end; }; }; gfx = { reset = function() theme.reset("scr.gfx.cursor.normal", "scr.gfx.cursor.use", "scr.gfx.cursor.x", "scr.gfx.cursor.y", "scr.gfx.mode", "scr.gfx.pad", "scr.gfx.bg"); end; cursor = function(norm, use, x, y) theme.set("scr.gfx.cursor.normal", norm); theme.set("scr.gfx.cursor.use", use); theme.set("scr.gfx.cursor.x", x); theme.set("scr.gfx.cursor.y", y); end; mode = function(mode) theme.set("scr.gfx.mode", mode); end; pad = function(pad) theme.set("scr.gfx.pad", pad); end; bg = function(bg) theme.set("scr.gfx.bg", bg); end; }; snd = { reset = function() theme.reset("snd.click"); end; click = function(w) theme.set("snd.click", w); end } } theme.vars = {} theme.reset_vars = {} instead-1.9.1/stead/counters.lua000644 001751 001751 00000003152 12161555602 017124 0ustar00peterpeter000000 000000 if stead.api_version < "1.6.3" then error ("Counters module can not run with api version < 1.6.3", 3) end local function inc_nr(v, n) local name = '__'..n..'_nr' if not v[name] then v[name] = 0 end v[name] = v[name] + 1 end local function read_nr(v, n, set) local name = '__'..n..'_nr' v = stead.ref(v) if type(v) ~= 'table' then return v end if not v[name] then if type(set) == 'number' then v[name] = set end return 0 end n = v[name] if type(set) == 'number' then v[name] = set end return n end game.onact = stead.hook(game.onact, function(f, v, w, ...) inc_nr(v, 'act'); inc_nr(w, 'act'); return f(v, w, ...) end) game.onuse = stead.hook(game.onuse, function(f, v, w, ...) inc_nr(v, 'use'); inc_nr(w, 'use'); return f(v, w, ...) end) game.oninv = stead.hook(game.oninv, function(f, v, w, ...) inc_nr(v, 'inv'); inc_nr(w, 'inv'); return f(v, w, ...) end) game.onwalk = stead.hook(game.onwalk, function(f, v, w, ...) inc_nr(v, 'walk'); inc_nr(w, 'walk'); return f(v, w, ...) end) function act_count(s, v) if not s and not v then s = game v = nil elseif tonumber(s) then v = s s = game end return read_nr(s, 'act', v) end function inv_count(s, v) if not s and not v then s = game v = nil elseif tonumber(s) then v = s s = game end return read_nr(s, 'inv', v) end function use_count(s, v) if not s and not v then s = game v = nil elseif tonumber(s) then v = s s = game end return read_nr(s, 'use', v) end function walk_count(s, v) if not s and not v then s = game v = nil elseif tonumber(s) then v = s s = game end return read_nr(s, 'walk', v) end instead-1.9.1/stead/wroom.lua000644 001751 001751 00000002132 12161555602 016422 0ustar00peterpeter000000 000000 stead.wroom_enter = function(self, ...) local w = self.where if type(w) ~= 'table' then w = stead.call(self, 'where') end local r, v = stead.walk(w); if v ~= false then self._toggle = true end return r, v end stead.wroom_save = function(self, name, h, need) if need then local a = stead.tostring(self.oldname); local b = stead.tostring(self.newname); local c = stead.tostring(self.where); if a == nil or b == nil or c == nil then error ("Can not save wroom "..name.."\nFunctions can not be saved, use code [[ ]]"); end local t = stead.string.format("%s = wroom(%s, %s, %s);\n", name, a, b, c); h:write(t); end stead.savemembers(h, self, name, false); end function wroom(a, b, c) local v = room { vroom_type = true, nam = a, where = c, enter = stead.wroom_enter, save = stead.wroom_save }; v.newname = b; v.oldname = a; v._toggle = false if c == nil then -- only two parameters v.newname = nil v.where = b end v.nam = function(s) if s._toggle and s.newname then return stead.call(s, 'newname') else return stead.call(s, 'oldname'); end end return v end instead-1.9.1/stead/proxymenu.lua000644 001751 001751 00000013772 12161555602 017341 0ustar00peterpeter000000 000000 stead.menu_prefix = '   ' local mpar = function(v, vv, rc) if type(v) == 'string' or type(vv) == 'string' then return stead.par(stead.space_delim, v, vv); elseif v == true or vv == true then return true end return rc end local call = function(o, m, ...) local rc = nil local v, r = stead.call(o, m, ...); if r == false or v == false then rc = false elseif r or v then rc = true end return v, r, rc end stead.obj_proxy = function(o, act, use_mode, used_act, useit_act) local v = {}; v.proxy_type = true; local d = stead.dispof(o); if type(d) == 'string' then v.nam = stead.menu_prefix..d; end if inv():srch(o) then v.nam = txtem(v.nam); end if not v.nam then v.nam = true end v.pobj = o; v.pact = act; v.use_mode = use_mode; v.used_act = used_act; v.useit_act = useit_act; v.save = function(self, name, h, need) if need then h:write(stead.string.format(name.." = stead.obj_proxy(%s, %s, %s, %s, %s);\n", stead.tostring(self.pobj), stead.tostring(self.pact), stead.tostring(self.use_mode), stead.tostring(self.used_act), stead.tostring(self.useit_act))); end stead.savemembers(h, self, name, false); end if use_mode then v.use = function(s, w) if w.proxy_type then local v, r, vv, rr, rc = false, ri local act = s.pact v, r, ri = call(game, 'before_'..act, s.pobj, w.pobj); rc = ri or rc if ri == false then return v, false end vv, r, ri = call(s.pobj, act, w.pobj); rc = ri or rc v = mpar(v, vv, rc); if ri == false then return v, false end if type(s.used_act) == 'string' and ri == nil then -- used only if use did nothing vv, r, ri = call(w.pobj, s.used_act, s.pobj); rc = ri or rc v = mpar(v, vv, rc); if ri == false then return v, false end end if ri then vv, rr, ri = call(game, 'after_'..act, s.pobj, w.pobj); rc = rc or ri v = mpar(v, vv, rc); if ri == false then return v, false end end if v == nil then v = stead.call(game, act, s.pobj, w.pobj); end return v, false; end end end v.inv = function(s) local v, r, vv, rr, rc = false, ri local act = s.pact if s.use_mode then act = s.useit_act if type(act) ~= 'string' then return nil end end v, r, ri = call(game, 'before_'..act, s.pobj); rc = rc or ri if ri == false then return v end vv, r, ri = call(s.pobj, act); rc = rc or ri v = mpar(v, vv, rc) if ri == false then return v end if ri then vv, rr, ri = call(game, 'after_'..act, s.pobj); rc = rc or ri v = mpar(v, vv, rc); end if v == nil then v = stead.call(game, act, s.pobj); end return v, rc; end if use_mode then return obj(v) end return menu(v) end stead.proxy_fill_objs = function(s, w, act, use_mode, used_act, useit_act) local ii,i,o local rc = false for i,o,ii in opairs(w) do o = stead.ref(o); if isObject(o) and not isDisabled(o) and o ~= s and not isPhrase(o) and not o.proxy_type and not isStatus(o) then s.obj:add(stead.obj_proxy(o, act, use_mode, used_act, useit_act)); if not isRoom(o) then stead.proxy_fill_objs(s, o.obj, act, use_mode, used_act, useit_act); end rc = true end end return rc end local select_only = function(s) local k, o, i for k,o in opairs(stead.me().obj) do o = stead.ref(o) if o.action_type and o._state and o ~= s then o:inv(); end end stead.obj_tag(stead.me(), MENU_TAG_ID); end local proxy_menu = function(nam, act, _scene, _inv, _way, use_mode, used_act, useit_act, _ifhave) local v = { }; if type(act) ~= 'string' then error("Wrong parameter to proxy_menu.", 3) end if null[act] then error(stead.tostring(act).."is a reserved handler. Do not use it.", 3) end if used_act and null[used_act] then error(stead.tostring(used_act).."is a reserved handler. Do not use it.", 3) end if useit_act and null[useit_act] then error(stead.tostring(useit_act).."is a reserved handler. Do not use it.", 3) end v.action_type = true; v._state = false; v.nam = nam; v.disp = function(s) local n = stead.call(s, 'nam') if s._state then return txtu(txtnb(n)); end return txtnb(n); end v.fill_scene = _scene; v.fill_inv = _inv; v.fill_ifhave = _ifhave; v.fill_way = _way; v.gen = function(s) local k,o,i local rc = false s.obj:zap(); if s.fill_inv then rc = stead.proxy_fill_objs(s, inv(), act, use_mode, used_act, useit_act); end if not s.fill_ifhave or rc then if s.fill_scene then stead.proxy_fill_objs(s, stead.here().obj, act, use_mode, used_act, useit_act); end end if s.fill_way then stead.proxy_fill_objs(s, stead.here().way, act, use_mode, used_act, useit_act); end select_only(s); end v.inv = function(s) local i,o local k,v s._state = not s._state if s._state then s:gen(); else s.obj:zap(); end return nil, true -- to say instead, do not redraw scene, only inv ;) end return menu(v); end local function gen_actions(s) local k, o for k, o in opairs(stead.me().obj) do o = stead.ref(o) if o.action_type and o._state then o:gen(); end end end act_menu = function(nam, act) local v = { }; v.action_type = true; v.nam = nam; v.gen = function(s) end v.inv = function(s) local v, r v, r = stead.call(game, act); return v, r end return menu(v); end obj_menu = function(nam, act, _scene, _inv, _way) return proxy_menu(nam, act, _scene, _inv, _way) end use_menu = function(nam, act, used_act, useit_act, _scene, _inv, _ifhave) return proxy_menu(nam, act, _scene, _inv, false, true, used_act, useit_act, _ifhave) end inv = function(s) return stead.me().inventory; end game.onuse = function(s, v, w) -- do not let use on non proxy obj if not v.proxy_type and not w.proxy_type then return end if not v.proxy_type or not w.proxy_type then return false end end player = stead.inherit(player, function(v) v.inv = function(s) gen_actions(s); return stead.player_inv(s); end v.inventory = list {} return v end) pl = player(pl) -- reinit -- vim:ts=4 instead-1.9.1/stead/object.lua000644 001751 001751 00000015627 12165774362 016554 0ustar00peterpeter000000 000000 local function onevent(ev, ...) local vv, r if stead.api_version >= "1.6.3" then vv, r = stead.call(game, ev, ...); if r == false then return vv, false end if vv == false then return nil, false end return vv end end stead.player_action = function(self, what, ...) local v,r,obj,vv if isXaction(what) then -- already xact obj = what else obj = _G[what]; end if not isXaction(obj) then obj = stead.ref(self.where):srch(what); end if not obj then return stead.call(game, 'action', what, ...); --player_do(self, what, ...); end vv, r = onevent('onact', obj, ...); if vv == false then return end if r == false then return vv end v, r = stead.player_take(self, what, ...); if not v and not r then v, r = stead.call(obj, 'act', ...); if type(vv) == 'string' then v = stead.par(stead.space_delim, vv, v); end if not v and not r then v, r = stead.call(game, 'act', obj, ...); end elseif type(vv) == 'string' then v = stead.par(stead.space_delim, vv, v); end return v, r; end stead.player_use = function(self, what, onwhat, ...) local obj, obj2, v, vv, r; local scene_use_mode = false obj = _G[what]; if isXaction(obj) then -- use xact is act return self:action(obj, onwhat, ...) end obj = self:srch(what); -- in inv? if not obj then -- no obj = stead.ref(self.where):srch(what); -- in scene? if not obj then -- no! return game.err, false; end scene_use_mode = true -- scene_use_mode! end obj = stead.ref(obj); if onwhat == nil then -- only one? if scene_use_mode then return self:action(what, ...); -- call act end vv, r = onevent('oninv', obj, ...); if vv == false then return end if r == false then return vv end v, r = stead.call(obj, 'inv', ...); -- call inv if type(vv) == 'string' then v = stead.par(stead.space_delim, vv, v); end if not v and not r then v, r = stead.call(game, 'inv', obj, ...); end return v, r; end obj2 = stead.ref(self.where):srch(onwhat); -- in scene? if not obj2 then obj2 = self:srch(onwhat); -- in inv? end if not obj2 then return game.err, false; end obj2 = stead.ref(obj2) if not scene_use_mode or isSceneUse(obj) then vv, r = onevent('onuse', obj, obj2, ...); if vv == false then return end if r == false then return vv end v, r = stead.call(obj, 'use', obj2, ...); if type(vv) == 'string' then v = stead.par(stead.space_delim, vv, v); end if r ~= false then vv = stead.call(obj2, 'used', obj, ...); if type(vv) == 'string' then v = stead.par(stead.space_delim, v, vv); end end end if v == nil and vv == true and stead.api_version >= "1.7.1" then v = true end if not v then v, r = stead.call(game, 'use', obj, obj2, ...); end -- if v == nil and stead.api_version >= "1.3.5" then -- return true -- end return v end stead.vobj_save = function(self, name, h, need) local w = stead.deref(self.where) local dsc = self.dsc if need then h:write(stead.string.format("%s = vobj(%s,%s,%s);\n", name, stead.tostring(self.nam), stead.tostring(dsc), stead.tostring(w))); end stead.savemembers(h, self, name, false); end stead.vobj_act = function(self, ...) local o, r = stead.here():srch(self); -- self.nam if stead.ref(o) and stead.ref(o).where then return stead.walk(stead.ref(o).where); end return stead.call(stead.ref(r),'act', self.nam, ...); end stead.vobj_used = function(self, ...) local o, r = stead.here():srch(self.nam); return stead.call(stead.ref(r),'used', self.nam, ...); end stead.vobj_use = function(self, ...) local o, r = stead.here():srch(self.nam); return stead.call(stead.ref(r),'use', self.nam, ...); end function vobj(name, dsc, w) return obj{ nam = tostring(name), vobject_type = true, dsc = dsc, where = stead.deref(w), act = stead.vobj_act, used = stead.vobj_used, use = stead.vobj_use, save = stead.vobj_save }; end function vway(name, dsc, w) -- o.object_type = true; return obj{ nam = tostring(name), vobject_type = true, dsc = dsc, act = stead.vobj_act, where = stead.deref(w), used = stead.vobj_used, use = stead.vobj_use, save = stead.vobj_save }; end function isVobject(v) return (type(v) == 'table') and (v.vobject_type) end stead.list_check = function(self, name) -- force using of objects, instead refs local i, v, ii; for i,v,ii in opairs(self) do local o = stead.ref(v); if not isObject(o) then error ("No object: "..name.."["..tostring(ii).."]".." ("..tostring(type(v))..")") return false end if (v.auto_allocated and not stead.ref(v.key_name)) -- renew or (isObject(stead.deref(v)) and not v._dynamic_type) then -- no named object! local n = stead.string.format("%s[%d]", name, ii); v = allocator:new(n, n); self[ii] = v; v.auto_allocated = true; for_each(v, n, stead.check_list, isList, stead.deref(v)); else self[ii] = o; end end return true; end stead.list_add = function(self, name, pos) local nam = name if stead.initialized then nam = stead.ref(name); end if not nam then error ("Add wrong object to list: "..tostring(name), 2); end if self:look(nam) then return nil end self.__modified__ = true; if isObject(stead.deref(nam)) then nam._dynamic_type = true end if tonumber(pos) then pos = tonumber(pos) if pos <= #self then stead.table.insert(self, pos, nam); else self[pos] = nam; -- for spare lists end else stead.table.insert(self, nam); end return true end stead.list_set = function(self, name, pos) local nam = name local i = tonumber(pos); if not i then return nil end if stead.initialized then nam = stead.ref(name); end if not nam then error ("Set wrong object in list: "..tostring(name), 2); end if isObject(stead.deref(nam)) then nam._dynamic_type = true end self.__modified__ = true; self[i] = nam; -- for spare lists return true end stead.list_concat = function(self, other, pos) local n,o,ii for n,o,ii in opairs(other) do o = stead.ref(o); if pos == nil then self:add(o); else self:add(o, pos); pos = pos + 1; end end end stead.delim = '|' stead.list_str = function(self) local i, v, vv, o; for i,o in opairs(self) do o = stead.ref(o); if isObject(o) and not isDisabled(o) then vv = stead.dispof(o) vv = stead.xref(vv, o); v = stead.par(stead.delim, v, vv); end end return v; end stead.obj_str = function(self) local i, v, vv, o; if not isObject(self) then return end if isDisabled(self) then return end for i,o in opairs(self.obj) do o = stead.ref(o); if isObject(o) and not isDisabled(o) then vv = stead.dispof(o) vv = stead.xref(vv, o); v = stead.par(stead.delim, v, vv, stead.obj_str(o)); end end return v; end function path(w, wh) -- search in way, disabled too if not wh then wh = stead.here(); else wh = stead.ref(wh); end local o = ways(wh):srch(w, true); o = stead.ref(o); if isRoom(o) then return o end return nil end game.lifes = list(game.lifes) stead:init(); -- reinit ob -- vim:ts=4 instead-1.9.1/stead/dlg.lua000644 001751 001751 00000025673 12161555602 016044 0ustar00peterpeter000000 000000 -- stead.phrase_prefix = '--' local function isValid(p) return isPhrase(p) and p.dsc and (p.ans or p.code) end local function isDelimiter(p) return isPhrase(p) and not isDisabled(p) and (p.dsc == nil and p.ans == nil and p.code == nil) end local tagpnext = function(a, k) if not k then if isPhrase(a.tag) then return 1, a.tag end if type(a.tag) == 'number' then local r = a.s:phrase(a.tag) if r then return 1, r end return end k = {} local r,v for r,v in opairs(a.s.obj) do v = stead.ref(v) if isPhrase(v) and v.tag == a.tag then stead.table.insert(k, v) end end k.i = 0 k.n = stead.table.maxn(k) end if k == 1 or k.i >= k.n then return nil end k.i = k.i + 1 return k, k[k.i] end local function phrases(s, tag) local a = { s = s, tag = tag } return tagpnext, a, nil; end stead.phrase_seen = function(s, enb, ...) local i, ph, k local a = {...} if stead.table.maxn(a) == 0 then stead.table.insert(a, stead.cctx().self); end for i=1,stead.table.maxn(a) do local r for k, ph in phrases(s, a[i]) do r = isPhrase(ph) and not isRemoved(ph) and not ph:disabled(); if r then break end end if enb then r = not r end if r then return false end end return true end local function ponoff(s, on, ...) local i, ph, k local a = {...} if stead.table.maxn(a) == 0 then stead.table.insert(a, stead.cctx().self) end for i=1,stead.table.maxn(a) do for k, ph in phrases(s, a[i]) do if isPhrase(ph) and not isRemoved(ph) then if on then ph:enable(); else ph:disable(); end end end end end stead.dialog_prem = function(s, ...) local i, ph, k local a = {...} if stead.table.maxn(a) == 0 then stead.table.insert(a, stead.cctx().self); end for i=1,stead.table.maxn(a) do for k, ph in phrases(s, a[i]) do if isPhrase(ph) then ph:remove(); end end end end stead.dialog_pon = function(self,...) return ponoff(self, true, ...); end stead.dialog_poff = function(self,...) return ponoff(self, false, ...); end local function phr_get(self) local n = #self.__phr_stack; if n == 0 then return 1 end return self.__phr_stack[n]; end local function phr_pop(self) local n = #self.__phr_stack; if n <= 1 then return false end stead.table.remove(stead.here().__phr_stack, n) return true end local function call_empty(self) local ph = self:phrase(phr_get(self)) local r if not isPhrase(ph) or isDisabled(ph) or not ph.empty then self:pret() return end r = stead.call(ph, "empty") if type(r) == 'string' then stead.p(r) end return r end local function call_enter(ph) local r, n if not isPhrase(ph) or isDisabled(ph) then return end if isValid(ph) then return end r = stead.call(ph, 'dsc') if type(r) == 'string' then stead.p(r) end end local function dialog_reset(self) local i,ph for i,ph in pairs(self.obj) do if isPhrase(ph) then ph.nam = '' end end end stead.dialog_look = function(self) local i,n,v,ph,ii n = 1 local start = phr_get(self) dialog_reset(self) for i,ph,ii in opairs(self.obj) do if ii >= start then if ii ~= start and isDelimiter(ph) then break end if isPhrase(ph) and not isDisabled(ph) and isValid(ph) then ph.nam = tostring(n) if type(stead.phrase_prefix) == 'string' then v = stead.par('^', v, stead.cat(stead.phrase_prefix, ph:look())); else v = stead.par('^', v, txtnm(n, ph:look())) end n = n + 1 end end end return v; end stead.dialog_rescan = function(self, naming, from) local i,k,ph,ii, start k = 0 if type(from) == 'number' then start = from elseif type(from) == 'string' then ph, start = self:phrase(from) else start = phr_get(self) end for i,ph,ii in opairs(self.obj) do if ii >= start then if ii ~= start and isDelimiter(ph) then break end if isPhrase(ph) and not isDisabled(ph) and isValid(ph) then k = k + 1; if naming then ph.nam = tostring(k) end end end end if k == 0 then return false end return k end stead.dialog_enter = function(self) if self:empty(self) then return nil, false end return nil, true end stead.dialog_current = function(self, w, ...) local r = phr_get(self) if w then local ph, i = self:phrase(w) if ph then self.__phr_stack = { i } end end return r end stead.dialog_curtag = function(self, w, ...) local p = self:phrase(phr_get(self)) if w then self:current(w) end if not isPhrase(p) then return end return p.tag end stead.dialog_empty = function(self, from) return (stead.dialog_rescan(self, false, from) == false) end stead.dialog_visible = function(self, from) local r = stead.dialog_rescan(self, false, from); if not r then r = 0 end return r end stead.dialog_pjump = function(self, w) local ph, i = self:phrase(w) if not ph then return end local n = #self.__phr_stack; if n == 0 then stead.table.insert(self.__phr_stack, i); else self.__phr_stack[n] = i end call_enter(ph) stead.cctx().action = true return end function pjump(w) if not isDialog(stead.here()) then return false end return stead.here():pjump(w) end stead.dialog_pstart = function(self, w) if not w then w = 1 end local ph, i = self:phrase(w) if not ph then return end self.__phr_stack = { i } call_enter(ph) stead.cctx().action = true return end function pstart(w) if not isDialog(stead.here()) then return end stead.here():pstart(w) end stead.dialog_psub = function(self, w) local ph, i = self:phrase(w) if not ph then return end stead.table.insert(self.__phr_stack, i); call_enter(ph) stead.cctx().action = true return end function psub(w) if not isDialog(stead.here()) then return false end return stead.here():psub(w) end stead.dialog_pret = function(self) if not phr_pop(self) then return end stead.cctx().action = true if not self:empty() then return end call_empty(self) return end function pret() if not isDialog(stead.here()) then return end return stead.here():pret() end function phr(ask, answ, act) local i = 1 local dis = false if type(ask) ~= 'table' then -- old style local p = phrase ( { dsc = ask, ans = answ, code = act }); return p end local v = ask if type(v[1]) == 'number' then -- just skip number i = i + 1 end if type(v[i]) == 'boolean' then dis = not v[i] i = i + 1 end if v.dsc == nil then v.dsc = v[i]; i = i + 1 end if v.ans == nil then v.ans = v[i]; i = i + 1 end if v.code == nil and (type(v[i]) == 'function' or type(v[i]) == 'string') then v.code = v[i]; end v = phrase(v) if dis then v = v:disable() end return v; end function _phr(ask, answ, act) -- compat only? local p = phr(ask, answ, act); p:disable() return p end stead.phr = phr stead.phrase_save = function(self, name, h, need) if need then local m = " = phrase {" local post = '}\n' if isDisabled(self) then post = "}:disable()\n" end m = stead.string.format("%s%s", name, m); if self.dsc then m = m..stead.string.format("dsc = %s, ", stead.tostring(self.dsc)); end if self.ans then m = m..stead.string.format("ans = %s, ", stead.tostring(self.ans)); end if self.code then m = m..stead.string.format("code = %s, ", stead.tostring(self.code)); end if self.tag then m = m..stead.string.format("tag = %s, ", stead.tostring(self.tag)); end if self.always then m = m..stead.string.format("always = %s, ", stead.tostring(self.always)); end if self.empty then m = m..stead.string.format("empty = %s, ", stead.tostring(self.empty)); end h:write(m..post); end stead.savemembers(h, self, name, false); end local function dialog_phr2obj(self) local k, v, n local aliases = {} if type(self.phr) ~= 'table' then return end n = 0 for k, v in ipairs(self.phr) do if type(v) == 'table' then if type(v[1]) == 'number' then n = v[1] else n = n + 1 end local p = stead.phr(v) if self.obj[n] then error ("Error in phr structure (numbering).", 4); end if v.alias then p.alias = v.alias stead.table.insert(aliases, n); end self.obj[n] = p else error ("Error in phr structure (wrong item).", 4); end end for k, v in ipairs(aliases) do local ph = self:phrase(self.obj[v].alias) if not ph then error ("Wrong alias in dlg.", 3); end self.obj[v] = ph end end stead.dialog_phrase = function(self, num) if not num then return end if isPhrase(num) then return num end if type(num) ~= 'number' then local k,v,i for k,v,i in opairs(self.obj) do v = stead.ref(v) if isPhrase(v) and v.tag == num then return v, i end end return nil end return stead.ref(self.obj[num]), num; end stead.phrase_action = function(self) local ph = self; local r, ret; local empty if isDisabled(ph) then return nil, false end -- here it is if not ph.always then ph:disable(); -- /* disable it!!! */ end local last = stead.call(ph, 'ans'); if type(ph.code) == 'string' then local f = stead.eval(ph.code); if f ~= nil then ret = f(); else error ("Error while eval phrase action:"..ph.code); end elseif type(ph.code) == 'function' then ret = ph.code(self); end if ret == nil then ret = stead.pget(); end if last == true or ret == true then r = true; end if isDialog(stead.here()) and stead.here():empty() then empty = call_empty(stead.here()); end local wh = stead.here(); while isDialog(wh) and wh:empty() and stead.from(wh) ~= wh do wh = stead.from(wh) end if wh ~= stead.here() then ret = stead.par(stead.scene_delim, ret, stead.back(wh)); end ret = stead.par(stead.space_delim, last, empty, ret); if ret == nil then return r -- hack? end return ret end function dlg(v) --constructor v.dialog_type = true; if v.ini == nil then v.ini = function(s) stead.dialog_rescan(s, true); end end if v.enter == nil then v.enter = stead.dialog_enter; end if v.look == nil then v.look = stead.dialog_look; end if v.scene == nil then v.scene = stead.dialog_scene; end if v.pon == nil then v.pon = stead.dialog_pon; end if v.poff == nil then v.poff = stead.dialog_poff; end if v.prem == nil then v.prem = stead.dialog_prem; end if v.pseen == nil then v.pseen = stead.dialog_pseen; end if v.punseen == nil then v.punseen = stead.dialog_punseen; end if v.empty == nil then v.empty = stead.dialog_empty; end if v.visible == nil then v.visible = stead.dialog_visible; end if v.current == nil then v.current = stead.dialog_current end if v.curtag == nil then v.curtag = stead.dialog_curtag end if v.pstart == nil then v.pstart = stead.dialog_pstart end if v.pjump == nil then v.pjump = stead.dialog_pjump end if v.pret == nil then v.pret = stead.dialog_pret end if v.psub == nil then v.psub = stead.dialog_psub end if v.phrase == nil then v.phrase = stead.dialog_phrase end if v.dsc == nil then v.dsc = function(s) if stead.player_moved() then stead.last_act(false) elseif type(ACTION_TEXT) ~= 'string' and stead.last_act() then stead.p(stead.last_act()) end end end v = room(v); v.__phr_stack = { 1 } dialog_phr2obj(v); return v; end instead-1.9.1/stead/vars.lua000644 001751 001751 00000005055 12161555602 016241 0ustar00peterpeter000000 000000 function isForSave(k, v, s) -- k - key, v - value, s -- parent table local i,o if type(s.variables_save) == 'table' and s.variables_save[k] then return true end if type(k) == 'function' then return false end if type(v) == 'function' or type(v) == 'userdata' then return false end if type(k) ~= 'string' then return false end return stead.string.find(k, '_') == 1 end local function __vars_add(s, v, set) local k, o if type(s.variables) ~= 'table' then s.variables = {} end for k,o in pairs(v) do if tonumber(k) then stead.table.insert(s.variables, o); elseif s.variables[k] then error ("Variable overwrites variables object: "..tostring(k)) elseif k ~= 'variable_type' then if set and not isObject(o) then if s[k] then if s == _G then print ("Global variable '"..tostring(k).."' conflicts with "..type(s[k])); else error ("Variable conflict: "..tostring(k)); end end stead.table.insert(s.variables, k); s[k] = o else s.variables[k] = o end end end end local function __vars_fill(v) local k,o if type(v) ~= 'table' then return end for k,o in ipairs(v) do if type(o) == 'table' and o.variable_type then __vars_add(v, o); v[k] = false end end if type(v.variables) == 'table' then local k,o local vars = {} v.variables_save = {} for k,o in pairs(v.variables) do if tonumber(k) and type(o) == 'string' then stead.table.insert(vars, o) else if v[k] then error ("Variable overwrites object property: "..tostring(k)); end v[k] = o stead.table.insert(vars, k); end end for k,o in ipairs(vars) do v.variables_save[o] = true end v.variables = vars; end end vars_object = obj { nam = 'vars', system_type = true, ini = function(s) __vars_fill(_G) __vars_fill(pl) __vars_fill(game) end } obj = stead.hook(obj, function(f, v, ...) __vars_fill(v) return f(v, ...) end) stead.add_var = function(s, v) if not v then v = s s = _G end if type(v) ~= 'table' then error("Wrong parameter to stead.add_var."); end if not v.variable_type then v = var(v) end __vars_add(s, v, true) __vars_fill(s) end stead.module_init(function() local k,v if type(variables) == 'nil' then variables = {} return end if type(variables) ~= 'table' then return end for k,v in ipairs(variables) do _G[v] = nil end variables = {} end) function var(v) v.variable_type = true return v end function global(v) if type(v) ~= 'table' then error("Wrong parameter to global.", 2); end __vars_add(_G, v, true); end -- vim:ts=4 instead-1.9.1/stead/nolife.lua000644 001751 001751 00000000206 12161555602 016533 0ustar00peterpeter000000 000000 game.life = stead.hook(game.life, function(f, ...) if stead.call_bool(stead.here(), 'nolife') then return end return f(...) end) instead-1.9.1/stead/prefs.lua000644 001751 001751 00000001440 12165774512 016406 0ustar00peterpeter000000 000000 prefs = obj { nam = 'preferences', system_type = true, load = function(s) local name = instead_savepath() .. '/prefs'; local f, err = loadfile(name); if not f then return nil end f(); end, ini = function(s) return s:load() end, store = function(s) s:save() stead.clearvar(s); end, save = function(s) -- save prefs on every save local name = instead_savepath() .. '/prefs'; local h = stead.io.open(name,"wb"); if not h then return false end stead.savemembers(h, s, 'prefs', true); h:flush(); h:close(); end, purge = function(s) local name = instead_savepath() .. '/prefs'; local k,v for k,v in pairs(s) do if type(v) ~= 'function' and k ~= 'nam' and k ~= 'system_type' then s[k] = nil end end return stead.os.remove(name); end }; -- vim:ts=4 instead-1.9.1/stead/dash.lua000644 001751 001751 00000000044 12161555602 016176 0ustar00peterpeter000000 000000 require "format" format.dash = true instead-1.9.1/stead/timer.lua000644 001751 001751 00000000740 12161555602 016402 0ustar00peterpeter000000 000000 game.action = stead.hook(game.action, function(f, s, cmd, ...) if cmd == 'user_timer' then local r,v if stead.here().timer then r,v = stead.call(stead.here(), 'timer'); elseif s.timer then r,v = stead.call(s, 'timer'); end if r == nil and v == nil and stead.api_version < "1.3.5" then return nil, true end return r,v end return f(s, cmd, ...); end) stead.module_init(function() timer.callback = function(s) return 'user_timer' end end) -- vim:ts=4 instead-1.9.1/stead/quotes.lua000644 001751 001751 00000000046 12161555602 016601 0ustar00peterpeter000000 000000 require "format" format.quotes = true instead-1.9.1/stead/snapshots.lua000644 001751 001751 00000003302 12161555602 017301 0ustar00peterpeter000000 000000 game._snapshots = {} stead.make_snapshot = function(nr) if not tonumber(nr) then nr = 0 end local h = { }; h.txt = '' h.write = function(s, ...) local i local a = {...}; for i = 1, stead.table.maxn(a) do s.txt = s.txt .. tostring(a[i]); end end local old = game._snapshots; game._snapshots = nil stead.do_savegame(game, h); game._snapshots = old game._snapshots[nr] = h.txt; end function isSnapshot(nr) if not tonumber(nr) then nr = 0 end return (game._snapshots[nr] ~= nil) end stead.restore_snapshot = function (nr) if not tonumber(nr) then nr = 0 end local ss = game._snapshots if not ss[nr] then return nil, true end -- nothing todo local i,v if stead.api_version >= "1.7.1" then stead.gamereset("main.lua", true); else stead.gamefile("main.lua", true); end local f, err = stead.eval(ss[nr]..' '); if not f then return end local i,r = f(); game._snapshots = ss if r then return nil, false end i = stead.do_ini(game, true); if stead.api_version >= "1.7.1" then game:start() stead.started = true PLAYER_MOVED = true -- force fading end RAW_TEXT = true -- delete_snapshot(nr); if stead.cctx() then stead.pr(i) end return i; end stead.delete_snapshot = function(nr) if not tonumber(nr) then nr = 0 end game._snapshots[nr] = nil end function make_snapshot(nr) if type(nr) ~= 'number' then nr = 0 end MAKE_SNAPSHOT = nr end function restore_snapshot(nr) return stead.restore_snapshot(nr) end function delete_snapshot(nr) return stead.delete_snapshot(nr); end iface.cmd = stead.hook(iface.cmd, function(f, ...) local r,v = f(...); if MAKE_SNAPSHOT ~= nil then stead.make_snapshot(MAKE_SNAPSHOT); MAKE_SNAPSHOT = nil end return r,v end) -- vim:ts=4 instead-1.9.1/stead/para.lua000644 001751 001751 00000000044 12161555602 016202 0ustar00peterpeter000000 000000 require "format" format.para = true instead-1.9.1/stead/gui.lua000644 001751 001751 00000016006 12161555602 016050 0ustar00peterpeter000000 000000 game.hinting = true; game.showlast = true; game.gui = { fading = 4; ways_delim = ' | '; inv_delim = '\n'; hinv_delim = ' | '; hideways = false; hideinv = false; } iface.xref = function(self, str, obj, ...) local o = stead.ref(obj); local cmd='' if not isObject(o) or isStatus(o) or (not o.id and not isXaction(o)) then return str; end if stead.ref(ways():srch(obj)) then cmd = 'go '; elseif isMenu(o) then cmd = 'act '; elseif isSceneUse(o) then cmd = 'use '; elseif isXaction(o) and not o.id then cmd = 'act '; end local a = '' local i local varg = {...} for i = 1, stead.table.maxn(varg) do a = a..','..varg[i] end if isXaction(o) and not o.id then return stead.cat('',str,''); end return stead.cat('',str,''); end; iface.anchor = function(self) return '' end iface.enum = function(self, n, str) if str == nil or n == nil then return nil; end; return n..self:nb(' - ')..str; end iface.title = function(self, str) return nil end; iface.img = function(self, str) if str == nil then return nil; end; return ""; end; iface.imgl = function(self, str) if str == nil then return nil; end; return ""; end; iface.imgr = function(self, str) if str == nil then return nil; end; return ""; end; iface.nb = function(self, str) if type(str) ~= 'string' then return nil end return "","\\>"):gsub("%^","\\^")..">"; end; iface.under = function(self, str) if str == nil then return nil; end; return stead.cat('',str,''); end; iface.em = function(self, str) if str == nil then return nil; end; return stead.cat('',str,''); end; iface.st = function(self, str) if str == nil then return nil; end; return stead.cat('',str,''); end; iface.right = function(self, str) if str == nil then return nil; end; return stead.cat('',str,''); end; iface.left = function(self, str) if str == nil then return nil; end; return stead.cat('',str,''); end; iface.center = function(self, str) if str == nil then return nil; end; return stead.cat('',str,''); end; iface.just = function(self, str) if str == nil then return nil; end; return stead.cat('',str,''); end; iface.tab = function(self, str, al) if tonumber(str) then str = tostring(str) end if type(str) ~= 'string' then return nil; end if al == 'right' then str = str .. ",right" elseif al == 'center' then str = str .. ",center" end return '' end; iface.bold = function(self, str) if str == nil then return nil; end; return stead.cat('',str,''); end; iface.top = function(self, str) if str == nil then return nil; end; return stead.cat('',str,''); end; iface.bottom = function(self, str) if str == nil then return nil; end; return stead.cat('',str,''); end; iface.middle = function(self, str) if str == nil then return nil; end; return stead.cat('',str,''); end; iface.inv = function(self, str) return str end; iface.ways = function(self, str) return str end; instead.get_inv = function(horiz) local r = stead.call_value(game.gui, 'hideinv'); if r then return end local str = iface:cmd("inv"); if str then str = stead.string.gsub(str, '\n$',''); if not horiz then str = stead.string.gsub(str, '\\?['.. stead.delim ..']', { [stead.delim] = game.gui.inv_delim, ['\\'..stead.delim] = stead.delim }); else str = stead.string.gsub(str, '\\?['.. stead.delim ..']', { [stead.delim] = game.gui.hinv_delim, ['\\'..stead.delim] = stead.delim }); end end return str end instead.get_ways = function() local r = stead.call_value(game.gui, 'hideways'); if r then return end local str = iface:cmd("way"); if str and str ~= '' then str = stead.string.gsub(str, '\n$',''); str = stead.string.gsub(str, '\\?['..stead.delim ..']', { [stead.delim] = game.gui.ways_delim, [ '\\'..stead.delim ] = stead.delim }); return iface:center(str); end return str end instead.get_title = function() local s if stead.api_version >= "1.2.0" then s = stead.dispof(stead.here()); else s = stead.call(stead.here(), 'nam'); end if type(s) == 'string' and s ~= '' then stead.state = false s = ""..stead.fmt(s)..""; s = stead.string.gsub(s, '\\'..stead.delim, stead.delim); end return s end instead.finish_music = function() if instead.get_music_loop() == 0 then return false end local n = stead.get_music() stead.set_music(n, -1); return true end instead.isEnableSave = isEnableSave; instead.isEnableAutosave = isEnableAutosave; -- here is gui staff only function stat(v) v.status_type = true return obj(v); end function isStatus(v) if type(v) ~= 'table' then return false end if v.status_type then return true end return false end stead.menu_save = function(self, name, h, need) local dsc; if need then print ("Warning: menu "..name.." can not be saved!"); return end stead.savemembers(h, self, name, need); end MENU_TAG_ID = 100000000 function menu(v) v.menu_type = true if v.inv == nil then v.inv = function(s) local r,v r,v = stead.call(s, 'menu'); if v == nil then v = true end if r == nil then stead.obj_tag(stead.me(), MENU_TAG_ID); -- retag menu field end return r, v end end if v.act == nil then v.act = function(s) local r,v r,v = stead.call(s, 'menu'); if v == nil then v = true end if r == nil then stead.obj_tag(stead.me(), MENU_TAG_ID); -- retag menu field end return r, v end end if v.save == nil then v.save = stead.menu_save; end return obj(v); end function isMenu(v) if type(v) ~= 'table' then return false end if v.menu_type then return true end return false end stead.fmt = function(...) local i, res local a={...} for i=1,stead.table.maxn(a) do if type(a[i]) == 'string' then local s = stead.string.gsub(a[i],'\t', stead.space_delim):gsub('[\n]+', stead.space_delim); s = stead.string.gsub(s, '\\?[\\^]', { ['^'] = '\n', ['\\^'] = '^', ['\\\\'] = '\\' }); res = stead.par('', res, s); end end return res end game.fading = function(s) local rc = false local p = stead.call(stead.here(), 'pic'); if stead.cmd == 'load' then game.lastpic = p; return true end if not stead.state then --only for states!!! return false end if game._time == 1 then -- first cmd game.lastpic = p; return true end if PLAYER_MOVED or game.lastpic ~= p then rc = true end game.lastpic = p return rc end game.gui.is_fading = function() --to check fading from sdl gui local r,g,v local h = stead.here() if not isRoom(h) then return false end r,v = stead.call_value(h, 'fading'); if r then if tonumber(r) and v == nil then return true, tonumber(r) end return r, v end g,v = stead.call_value(game, 'fading'); if tonumber(g) and v == nil then return true, tonumber(g) end return g, v end instead.get_fading = function() local r, v r, v = stead.call_value(game.gui, 'is_fading') if v == nil and r then v = game.gui.fading end return r,v end -- vim:ts=4 instead-1.9.1/stead/click.lua000644 001751 001751 00000004075 12161555602 016354 0ustar00peterpeter000000 000000 require "theme" click = { nam = 'click'; object_type = true; system_type = true; bg = false; press = false; button = false; save = function(self, name, h, need) local s = stead.tostring(self.bg) h:write(stead.string.format("click[%q] = %s;\n", 'bg', s)) s = stead.tostring(self.press) h:write(stead.string.format("click[%q] = %s;\n", 'press', s)) s = stead.tostring(self.button) h:write(stead.string.format("click[%q] = %s;\n", 'button', s)) end; } stead.module_init(function() input.click = stead.hook(input.click, function(f, s, press, mb, x, y, px, py, ...) local cmd = 'click ' local act = false if ( press or click.press ) and ( mb == 1 or click.button ) then cmd = cmd..tostring(press)..','..tostring(mb); if click.bg or theme.get 'scr.gfx.mode' == 'direct' then act = true cmd = cmd .. ',' .. x .. ','.. y end if px then act = true cmd = cmd .. ',' .. px .. ',' .. py end if act then return cmd end end return f(s, press, mb, x, y, px, py, ...) end) end) game.action = stead.hook(game.action, function(f, s, cmd, press, mb, x, y, px, py, ...) if cmd == 'click' then local r,v local x2 = px local y2 = py if tonumber(mb) then mb = tonumber(mb) end if tonumber(px) then x2 = tonumber(px) end if tonumber(py) then y2 = tonumber(py) end if stead.here().click then s = stead.here() end if press == 'true' then press = true else press = false end if s.click then if click.press then if click.button then r,v = stead.call(s, 'click', press, mb, tonumber(x), tonumber(y), x2, y2, ...); else r,v = stead.call(s, 'click', press, tonumber(x), tonumber(y), x2, y2, ...); end else if click.button then r,v = stead.call(s, 'click', mb, tonumber(x), tonumber(y), x2, y2, ...); else r,v = stead.call(s, 'click', tonumber(x), tonumber(y), x2, y2, ...); end end end if r == nil and v == nil and stead.api_version < "1.3.5" then return nil, true end return r,v end return f(s, cmd, x, y, px, py, ...) end) -- vim:ts=4 instead-1.9.1/stead/hotkeys.lua000644 001751 001751 00000000721 12161555602 016747 0ustar00peterpeter000000 000000 require 'kbd' stead.module_init(function() hook_keys('1','2','3','4','5','6','7','8','9','0'); end) game.kbd = stead.hook(game.kbd, function(f, s, down, key, ...) if down and key >= '0' and key <= '9' then if isDialog(stead.here()) then if key == '0' then key = '10' end local p = stead.here():srch(key); if p and stead.nameof(p) == key then return stead.call(p, 'act'); end end return end return f(s, down, key, ...); end) -- vim:ts=4 instead-1.9.1/stead/hideinv.lua000644 001751 001751 00000001014 12161555602 016703 0ustar00peterpeter000000 000000 local attr = "hideinv" if stead.api_version >= "1.6.3" then game.gui.hideinv = function(s) if stead.call_bool(stead.here(), 'hideinv') then return true end end attr = "noinv" end room = stead.inherit(room, function(v) v.entered = stead.hook(v.entered, function(f, s, ...) if stead.call_bool(s, attr) then me():disable_all(); end return f(s, ...) end) v.left = stead.hook(v.left, function(f, s, ...) if stead.call_bool(s, attr) then me():enable_all(); end return f(s, ...) end) return v end) instead-1.9.1/stead/Makefile.windows000644 001751 001751 00000001604 12161555602 017710 0ustar00peterpeter000000 000000 clean: all: stead.lua install: if not exist ..\bin\stead mkdir ..\bin\stead copy stead.lua ..\bin\stead copy gui.lua ..\bin\stead copy walk.lua ..\bin\stead copy xact.lua ..\bin\stead copy input.lua ..\bin\stead copy click.lua ..\bin\stead copy dbg.lua ..\bin\stead copy vars.lua ..\bin\stead copy prefs.lua ..\bin\stead copy snapshots.lua ..\bin\stead copy object.lua ..\bin\stead copy format.lua ..\bin\stead copy para.lua ..\bin\stead copy quotes.lua ..\bin\stead copy dash.lua ..\bin\stead copy timer.lua ..\bin\stead copy kbd.lua ..\bin\stead copy hotkeys.lua ..\bin\stead copy hideinv.lua ..\bin\stead copy theme.lua ..\bin\stead copy sprites.lua ..\bin\stead copy sound.lua ..\bin\stead copy wroom.lua ..\bin\stead copy nouse.lua ..\bin\stead copy dlg.lua ..\bin\stead copy counters.lua ..\bin\stead copy proxymenu.lua ..\bin\stead copy nolife.lua ..\bin\stead instead-1.9.1/stead/format.lua000644 001751 001751 00000002632 12161555602 016554 0ustar00peterpeter000000 000000 format = { nam = 'format'; object_type = true; system_type = true; para = false; para_space = ' '; quotes = false; dash = false; filter = nil; nopara = '_'; save = function(self, name, h, need) local k,v for k,v in pairs(self) do if k == 'para' or k == 'para_space' or k == 'quotes' or k == 'dash' or k == 'nopara' then local s = stead.tostring(v) h:write(stead.string.format("format[%q] = %s;\n", k, s)) end end end; } stead.fmt = stead.hook(stead.fmt, function(f, ...) local utf8 local r = f(...) if game.codepage == 'UTF-8' or game.codepage == 'utf-8' then utf8 = true end if type(r) == 'string' and stead.state then if type(format.filter) == 'function' and stead.state then r = format.filter(r); end if stead.call_bool(format, 'dash') and utf8 then r = r:gsub('([^-])%-%-([^-])', '%1—%2'); r = r:gsub('^%-%-([^-])', '—%1'); end if stead.call_bool(format, 'quotes') and utf8 then r = r:gsub('_"','«'):gsub('"_',"»"); r = r:gsub('"([^"]*)"','«%1»'); r = r:gsub(',,','„'):gsub("''",'”'); end if stead.call_bool(format, 'para') then r = r:gsub('\n([^\n])', '<¶>%1'):gsub('<¶>[ \t]*'..format.nopara,'\n'):gsub('<¶>[ \t]*', '\n'..txtnb(format.para_space)); r = r:gsub('^[ \t]*', '<¶>'):gsub('<¶>[ \t]*'..format.nopara,''):gsub('<¶>[ \t]*', txtnb(format.para_space)); end end return r; end) -- vim:ts=4 instead-1.9.1/stead/COPYING000644 001751 001751 00000043110 12161555602 015610 0ustar00peterpeter000000 000000 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) 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) year 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. instead-1.9.1/stead/sound.lua000644 001751 001751 00000001577 12161555602 016423 0ustar00peterpeter000000 000000 stead.sound_load = instead_sound_load stead.sound_free = instead_sound_free stead.sounds_free = instead_sounds_free stead.sound_channel = instead_sound_channel stead.sound_volume = instead_sound_volume stead.sound_panning = instead_sound_panning sound = { nam = 'sound'; object_type = true; system_type = true; load = function(fname) return stead.sound_load(fname); end; free = function(key) return stead.sound_free(key); end; play = function(key, ...) return stead.add_sound(key, ...) end; stop = function(...) stead.stop_sound(...); end; playing = function(s,...) if type(s) ~= 'number' then return stead.is_sound() end return stead.sound_channel(s,...) end; pan = function(c, l, r, ...) return stead.sound_panning(c, l, r, ...) end; vol = function(v, ...) return stead.sound_volume(v, ...) end } stead.module_init(function() stead.sounds_free(); end) instead-1.9.1/stead/nouse.lua000644 001751 001751 00000000344 12161555602 016413 0ustar00peterpeter000000 000000 game.use = function(s, w, o) local r, v r, v = stead.call(w, 'nouse', o); if not r and not v then r, v = stead.call(o, 'noused', w); end if not r and not v then r, v = stead.call(s, 'nouse', w, o) end return r, v end instead-1.9.1/stead/sprites.lua000644 001751 001751 00000006742 12161555602 016763 0ustar00peterpeter000000 000000 require "theme" stead.font_load = instead_font_load stead.font_free = instead_font_free stead.font_scaled_size = instead_font_scaled_size stead.sprite_alpha = instead_sprite_alpha stead.sprite_dup = instead_sprite_dup stead.sprite_scale = instead_sprite_scale stead.sprite_rotate = instead_sprite_rotate stead.sprite_text = instead_sprite_text stead.sprite_text_size = instead_sprite_text_size stead.sprite_draw = instead_sprite_draw stead.sprite_copy = instead_sprite_copy stead.sprite_compose = instead_sprite_compose stead.sprite_fill = instead_sprite_fill stead.sprite_pixel = instead_sprite_pixel stead.sprite_load = instead_sprite_load stead.sprite_free = instead_sprite_free stead.sprite_size = instead_sprite_size stead.sprites_free = instead_sprites_free sprite = { nam = 'sprites'; object_type = true; system_type = true; screen = function(s) if theme.get 'scr.gfx.mode' ~= 'direct' then return end return 'screen' end; font_scaled_size = function(size) return stead.font_scaled_size(size); end; font = function(font, size, ...) return stead.font_load(font, size, ...); end; free_font = function(font) return stead.font_free(key); end; font_height = function(font) local w,h = stead.sprite_text_size(font) return h end; alpha = function(name, alpha, ...) return stead.sprite_alpha(name, alpha, ...); end; dup = function(name, ...) return stead.sprite_dup(name, ...); end; scale = function(name, xs, ys, smooth, ...) if smooth == nil then smooth = true -- default is on end return stead.sprite_scale(name, xs, ys, smooth,...); end; rotate = function(name, angle, smooth, ...) if smooth == nil then smooth = true -- default is on end return stead.sprite_rotate(name, angle, smooth, ...); end; text = function(font, text, col, style, ...) return stead.sprite_text(font, text, col, style, ...); end; size = function(spr) return stead.sprite_size(spr); end; text_size = function(fnt, spr) return stead.sprite_text_size(fnt, spr); end; draw = function(s, fx, fy, fw, fh, d, x, y, alpha) if d == nil and x == nil and y == nil then return stead.sprite_draw(s, 0, 0, -1, -1, fx, fy, fw, fh); end return stead.sprite_draw(s, fx, fy, fw, fh, d, x, y, alpha); end; copy = function(s, fx, fy, fw, fh, d, x, y, alpha) if d == nil and x == nil and y == nil then return stead.sprite_copy(s, 0, 0, -1, -1, fx, fy, fw, fh); end return stead.sprite_copy(s, fx, fy, fw, fh, d, x, y, alpha); end; compose = function(s, fx, fy, fw, fh, d, x, y, alpha) if d == nil and x == nil and y == nil then return stead.sprite_compose(s, 0, 0, -1, -1, fx, fy, fw, fh); end return stead.sprite_compose(s, fx, fy, fw, fh, d, x, y, alpha); end; fill = function(d, x, y, w, h, col) if h == nil and col == nil then return stead.sprite_fill(d, 0, 0, -1, -1, x); end return stead.sprite_fill(d, x, y, w, h, col); end; pixel = function(d, x, y, col, alpha) return stead.sprite_pixel(d, x, y, col, alpha) end; load = function(fname, ...) return stead.sprite_load(fname, ...); end; blank = function(w, h, ...) local t = 'blank:'..tostring(w)..'x'..tostring(h) return stead.sprite_load(t, ...) end; box = function(w, h, col, alpha, ...) local t = 'box:'..tostring(w)..'x'..tostring(h) if col then t = t..','..tostring(col) end if alpha then t = t..','..tostring(alpha) end return stead.sprite_load(t, ...) end; free = function(key) return stead.sprite_free(key); end; } stead.module_init(function() stead.sprites_free(); end) instead-1.9.1/stead/dbg.lua000644 001751 001751 00000022536 12161555602 016025 0ustar00peterpeter000000 000000 -- add this: reuire "dbg" -- in your project -- for debug tools require "input" local function _xref_escape(n) local delim = ':' if stead.api_version >= "1.2.2" then delim = stead.delim; end if xact then n = n:gsub("\\?[\\"..delim.."]", { [delim] = "\\"..delim } ) end return n end local function ordered_n(t) local ordered = {}; local i,v, max; max = 0; for i,v in pairs(t) do local o = { k = i; v = v }; stead.table.insert(ordered, o); max = max + 1; end stead.table.sort(ordered, function(a, b) if isObject(a.v) and not isObject(b.v) then return true end if not isObject(a.v) and isObject(b.v) then return false end if isObject(a.v) and isObject(b.v) then local n = stead.call(a.v, 'nam'); local m = stead.call(b.v, 'nam'); if type(n) ~= 'string' and type(m) ~= 'string' then return false end if type(n) ~= 'string' then return true end if type(m) ~= 'string' then return false end if n == m then local o1, o2 o1 = stead.deref(a.v) o2 = stead.deref(b.v) if type(o1) == 'string' and type(o2) == 'string' then return o1 < o2 end end return n < m; end return false end) ordered.i = 1; ordered.max = max; return ordered; end local function snext(t, k) local v if not k then k = ordered_n(t); end if k.i > k.max then return nil end v = k[k.i] k.i = k.i + 1 return k, v.v, v.k; end local function spairs(s, var) return snext, s, nil; end function dbg_disp_obj() local v = obj { nam = 'disp', act = true, dsc = function(s) local r = s._txt s._txt = nil; return r end; save = function(self, name, h, need) if need then h:write(stead.string.format("%s = dbg_disp_obj();\n", name)); end stead.savemembers(h, self, name, false); end } return v; end dbg_dump_obj = function(w) w = stead.ref(w) if type(w) ~= 'table' then seen('disp')._txt = '^^No such object.'; return true end local i,o,n local rc = '' for i,o in pairs(w) do local t = stead.tostring(o); if t == i then t = tostring(o); end if t then if rc ~='' then rc = rc..'^' end local n = ''; if isObject(o) then n = stead.call(o, 'nam'); if type(n) ~= 'string' then n = '' else n = ' : '..n; end end rc = stead.cat(rc, stead.par(' ', tostring(i)..' : '..t..n)); end end seen('disp')._txt = stead.cat('^^', rc) return true; end dbg_dump_globals = function() local i,o local rc='' if type(variables) ~= 'table' then return end for i,o in ipairs(variables) do local v = _G[o]; local t = stead.tostring(v); if t then if rc ~='' then rc = rc..'^' end rc = stead.cat(rc, stead.par(' ', tostring(o)..' : '..t)); end end seen('disp')._txt = stead.cat('^^', rc) return true; end dbg_here = function() return debug_tool._here end dbg_list_objects = function() local i,o local dis = function(o) if isDisabled(o) then return ", disabled" end return '' end local rc = stead.par(' ', 'Room:'..tostring(stead.deref(dbg_here())), 'Nam:'..tostring(stead.call(dbg_here(),'nam'))); for i,o in opairs(objs(dbg_here())) do rc = rc..'^'; o = stead.ref(o) rc = stead.cat(rc, stead.par(' ', 'Id: '..tostring(o.id)..', '.. tostring(stead.deref(o))..': '..tostring(stead.call(o, 'nam'))..dis(o))); end -- seen('disp')._txt = rc return rc end dbg_list_inv = function() local i,o local rc='' local dis = function(o) if isDisabled(o) then return ", disabled" end return '' end local tak = function(o) if taken(o) then return ", taken" end return '' end for i,o in opairs(inv()) do if rc ~='' then rc = rc..'^' end o = stead.ref(o) rc = stead.cat(rc, stead.par(' ', 'Id: '..tostring(o.id)..', '.. tostring(stead.deref(o))..': '..tostring(stead.call(o, 'nam'))..dis(o)..tak(o))); end if rc == '' then return end -- seen('disp')._txt = rc return rc end dbg_execute_cmd = room { nam = "Execute Lua code", debug = true, pic = true, system_type = true, forcedsc = true, dsc = "Enter Lua code here to exec.", inp_enter = function(s) if type(s.obj[1]._txt) == 'string' then local f = stead.eval(s.obj[1]._txt); if f then seen('disp')._txt = stead.cat('^^', f()); return true end seen('disp')._txt = "^^Error in exec."; return true end return stead.back(); end, obj = { inp('inp', '{Enter cmd}: ', 'return "Hello World!"'), obj { nam = 'Back', dsc = '^{Back}', act = code [[ stead.back() ]] }, dbg_disp_obj(), }, exit = function(s) s.obj[1]:state(false) end; } dbg_dump_object = room { nam = "Dump object", debug = true, pic = true, system_type = true, forcedsc = true, dsc = "Enter object name here to dump.", inp_enter = function(s) local w = s.obj[1]._txt if type(w) == 'string' then if not stead.ref(w) then w = objs(dbg_here()):srch(w); end return dbg_dump_obj(w); end return stead.back(); end, obj = { inp('inp', '{Enter object}: ', 'main'), obj{nam = 'Here', dsc = '^{Dump here}', act = code[[ return dbg_dump_obj(dbg_here())]]}, obj{nam = 'Player',dsc = '^{Dump player}', act = code[[ return dbg_dump_obj(stead.me())]]}, obj{nam = 'Lifes', dsc = '^{Dump lifes}', act = code[[ return dbg_dump_obj(debug_tool.lifes)]]}, obj{nam = 'Ways', dsc = '^{Dump ways}', act = code[[ return dbg_dump_obj(ways(dbg_here()))]]}, obj{nam = 'Globals', dsc = '^{Dump globals}', act = code [[return dbg_dump_globals()]] }, obj{nam = 'Back', dsc = '^{Back}', act = code [[ return stead.back() ]] }, dbg_disp_obj() }, exit = function(s) s.obj[1]:state(false) end; } dbg_choose_location = dlg { debug = true, pic = true, system_type = true, forcedsc = true, nam = 'Go to', dsc = 'Select location.', gen = function(s) local k,v,kk objs(s):zap(); for k,v,kk in spairs(_G) do if isRoom(v) and not v.debug then local n = tostring(stead.call(v, 'nam')); local o = kk; if type(o) == 'string' then n = n..' : '..o; n = _xref_escape(n); put(phr(n, true, [[timer:set(debug_tool._timer); game.lifes:cat(debug_tool.lifes); return stead.walk(]]..o..[[)]]), s); end end end put (phr('Back',true, 'return stead.back()'), s) end } dbg_choose_object = dlg { debug = true, pic = true, system_type = true, forcedsc = true, nam = 'Get object', dsc = 'Select object to get.', gen = function(s) local k,v,kk objs(s):zap(); for k,v,kk in spairs(_G) do if isObject(v) and not isPhrase(v) and not isRoom(v) and not isPlayer(v) and not v.debug and not have(v) and not isStatus(v) then local n = tostring(stead.call(v, 'nam')); local o = kk; if type(o) == 'string' then n = n..' : '..o; n = _xref_escape(n); put(phr(n, true, o..':enable(); return take('..o..')'), s); end end end put (phr('Back',true, 'return stead.back()'), s) end } dbg_drop_object = dlg { debug = true, pic = true, forcedsc = true, system_type = true, nam = 'Drop object', dsc = 'Select object to drop.', gen = function(s) local k,v objs(s):zap(); for k,v in ipairs(inv()) do v = stead.ref(v); if not v.debug then local n = tostring(stead.call(v, 'nam')); local o = stead.deref(v); if type(o) == 'string' then n = n..' : '..o; n = _xref_escape(n); put (phr(n, true, o..':enable(); drop('..o..','..stead.deref(dbg_here())..')'), s) end end end put (phr('Back', true, 'return stead.back()'), s) end } function dbg_exit() local r if stead.api_version < "1.2.0" then r = stead.call(dbg_here(), 'dsc'); end game.lifes:cat(debug_tool.lifes); timer:set(debug_tool._timer); return stead.par ('^^', stead.back(), r); end debug_dlg = dlg { debug = true, pic = true, system_type = true, forcedsc = true, nam = 'Debug Tool', dsc = 'Select tool.', obj = { phr('Go to location...', true, [[pon(); dbg_choose_location:gen(); return stead.walk('dbg_choose_location')]]), phr('Get object...', true, [[pon(); dbg_choose_object:gen(); return stead.walk('dbg_choose_object')]]), phr('Put object...', true, [[pon(); dbg_drop_object:gen(); return stead.walk('dbg_drop_object')]]), phr('Current scene...', true, [[pon(); return dbg_list_objects();]]), phr('Inventory...', true, [[pon(); return dbg_list_inv();]]), phr('Dump object...', true, [[pon(); return stead.walk(dbg_dump_object);]]), phr('Exec Lua string...', true, [[pon(); return stead.walk('dbg_execute_cmd')]]), phr('Exit',true , [[pon(); return dbg_exit()]]), }, }; debug_tool = menu { debug = true, system_type = true, forcedsc = true, nam = txtb('debug'), lifes = list {}, inv = function(s) if stead.here().debug then return nil, true --nothing todo end debug_dlg.__from__ = stead.here(); s._timer = timer:get(); timer:stop(); s.lifes:zap(); s.lifes:cat(game.lifes); game.lifes:zap(); s._here = stead.here(); stead.me().where = 'debug_dlg'; -- force to go return stead.walk(self.where); end, }; game.action = stead.hook(game.action, function (f, s, cmd, ...) if cmd == 'use_debug' then return debug_tool:inv() elseif cmd == 'exit_debug' then stead.me().where = 'debug_dlg'; dbg_execute_cmd.obj[1]:state(false) dbg_dump_object.obj[1]:state(false) return dbg_exit() end return f(s, cmd, ...) end) stead.module_init(function() input.key = stead.hook(input.key, function(f, s, down, key, ...) if down and key == 'f7' then if stead.here().debug then return 'exit_debug' else return 'use_debug' end end return f(s, down, key, ...) end) putf('debug_tool', stead.me()); end) -- vim:ts=4 instead-1.9.1/stead/Makefile000644 001751 001751 00000002654 12161555602 016225 0ustar00peterpeter000000 000000 include ../Rules.make include ../config.make clean: all: stead.lua install: $(INSTALLD) $(STEADPATH) $(INSTALL) stead.lua $(STEADPATH)/stead.lua $(INSTALL) gui.lua $(STEADPATH)/gui.lua $(INSTALL) walk.lua $(STEADPATH)/walk.lua $(INSTALL) xact.lua $(STEADPATH)/xact.lua $(INSTALL) input.lua $(STEADPATH)/input.lua $(INSTALL) click.lua $(STEADPATH)/click.lua $(INSTALL) dbg.lua $(STEADPATH)/dbg.lua $(INSTALL) vars.lua $(STEADPATH)/vars.lua $(INSTALL) prefs.lua $(STEADPATH)/prefs.lua $(INSTALL) snapshots.lua $(STEADPATH)/snapshots.lua $(INSTALL) object.lua $(STEADPATH)/object.lua $(INSTALL) format.lua $(STEADPATH)/format.lua $(INSTALL) dash.lua $(STEADPATH)/dash.lua $(INSTALL) para.lua $(STEADPATH)/para.lua $(INSTALL) quotes.lua $(STEADPATH)/quotes.lua $(INSTALL) timer.lua $(STEADPATH)/timer.lua $(INSTALL) kbd.lua $(STEADPATH)/kbd.lua $(INSTALL) hotkeys.lua $(STEADPATH)/hotkeys.lua $(INSTALL) hideinv.lua $(STEADPATH)/hideinv.lua $(INSTALL) theme.lua $(STEADPATH)/theme.lua $(INSTALL) sprites.lua $(STEADPATH)/sprites.lua $(INSTALL) sound.lua $(STEADPATH)/sound.lua $(INSTALL) wroom.lua $(STEADPATH)/wroom.lua $(INSTALL) nouse.lua $(STEADPATH)/nouse.lua $(INSTALL) dlg.lua $(STEADPATH)/dlg.lua $(INSTALL) counters.lua $(STEADPATH)/counters.lua $(INSTALL) proxymenu.lua $(STEADPATH)/proxymenu.lua $(INSTALL) nolife.lua $(STEADPATH)/nolife.lua uninstall: $(RM) $(STEADPATH)/stead.lua $(RM) $(STEADPATH)/gui.lua instead-1.9.1/stead/walk.lua000644 001751 001751 00000013471 12161555602 016225 0ustar00peterpeter000000 000000 local function onevent(ev, ...) local vv, r if stead.api_version >= "1.6.3" then vv, r = stead.call(game, ev, ...); if r == false then return vv, false end if vv == false then return nil, false end return vv end end local go = function (self, where, back, noenter, noexit, nodsc) local was = self.where; local need_scene = false; local ret if not stead.in_walk_call then ret = function(rc) stead.in_walk_call = false return nil end else ret = function(rc) return rc end end stead.in_walk_call = true if where == nil then return nil, ret(false) end if not isRoom(stead.ref(where)) then error ("Trying to go nowhere: "..where); end if not isRoom(stead.ref(self.where)) then error ("Trying to go from nowhere: "..self.where); end if stead.in_entered_call or stead.in_onexit_call then error ("Do not use walk from left/entered action! Use exit/enter action instead:" .. self.where); end local v, r, jump; if not isVroom(stead.ref(where)) and not stead.in_exit_call and not noexit then stead.in_exit_call = true -- to break recurse v,r = stead.call(stead.ref(self.where), 'exit', stead.ref(where)); stead.in_exit_call = nil if r == false or (stead.api_version >= "1.3.0" and v == false and r == nil) then return v, ret(r) end if self.where ~= was then where = stead.deref(self.where) -- jump jump = true end end local res = v; v = nil; if not isVroom(stead.ref(where)) then self.where = stead.deref(where); end if not jump and not noenter then v, r = stead.call(stead.ref(where), 'enter', stead.ref(was)); if r == false or (stead.api_version >= "1.3.0" and v == false and r == nil) then self.where = was; return stead.par(stead.scene_delim, res, v), ret(r) end end need_scene = true; if stead.ref(where) ~= stead.ref(self.where) then -- jump !!! need_scene = false; end res = stead.par(stead.scene_delim, res, v); if not back then stead.ref(where).__from__ = stead.deref(was); end ret() PLAYER_MOVED = true if need_scene and not nodsc then NEED_SCENE = true end if not stead.in_walk_call then local to = self.where if not noexit then self.where = was stead.in_onexit_call = true v = stead.call(stead.ref(was), 'left', stead.ref(to)); stead.in_onexit_call = false res = stead.par(stead.scene_delim, res, v); end self.where = stead.deref(to) if not noenter then stead.in_entered_call = true v = stead.call(stead.ref(to), 'entered', stead.ref(was)); stead.in_entered_call = false res = stead.par(stead.scene_delim, res, v); end if tonumber(stead.ref(to).__visited) then stead.ref(to).__visited = stead.ref(to).__visited + 1; elseif stead.here().__visited == nil then stead.ref(to).__visited = 1 end if stead.api_version < "1.6.3" and isDialog(stead.ref(to)) then stead.dialog_rescan(stead.ref(to)) end end return res; end stead.player_go = function(self, where) -- cmd iface local w = stead.ref(self.where).way:srch(where); if not w then return nil,false end return self:walk(w); end stead.player_walk = function(self, where, ...) -- real work local v, r, vv; vv, r = onevent('onwalk', stead.ref(where), ...); if vv == false then return end if r == false then return vv end v, r = stead.go(self, where, ...); if type(vv) == 'string' then v = stead.par(stead.space_delim, vv, v); end return v, r; end stead.player_back = function(self) -- deprecated error ("Do not use stead.me():back(). It's deprecated.", 2) end stead.back = function(w) if isDialog(stead.here()) and not isDialog(stead.from()) then return stead.walkout(w); end return stead.walkback(w); end back = stead.back stead.walkback = function(w) if isRoom(stead.ref(w)) then return stead.me():walk(w, true); end return stead.me():walk(stead.from(), true); end walkback = stead.walkback stead.walk = function(what, back, noenter, noexit, nodsc, ...) return stead.me():walk(what, back, noenter, noexit, nodsc, ...); end walk = stead.walk stead.walkin = function(what) return stead.me():walk(what, false, false, true); end walkin = stead.walkin stead.walkout = function(what) if isRoom(stead.ref(what)) then return stead.me():walk(what, true, true, false, true); end return stead.me():walk(stead.from(), true, true, false, true); end walkout = stead.walkout function visited(w) if not w then w = stead.here() end w = stead.ref(w) if w == nil then return nil; end if not isRoom(w) then error ("Wrong parameter to visited.", 2); end return w.__visited end function visits(w) local n = visited(w) if not n then n = 0 end return n end iface.fmt = function(self, cmd, st, moved, r, av, objs, pv) -- st -- changed state (main win), move -- loc changed local l, vv if st then av = txtem(av); pv = txtem(pv); -- if not PLAYER_MOVED then r = txtem(r) -- end if isForcedsc(stead.here()) or NEED_SCENE then l = stead.here():scene(); end end if moved then vv = stead.fmt(stead.cat(stead.par(stead.scene_delim, r, l, av, objs, pv), '^')); else vv = stead.fmt(stead.cat(stead.par(stead.scene_delim, l, r, av, objs, pv), '^')); end return vv end stead.go = function(...) local r,v = go(...) if type(r) == 'string' and stead.cctx() then stead.pr (r) end -- if stead.in_life_call then -- ACTION_TEXT = nil -- end if r == nil and v == nil then if stead.cctx() then stead.cctx().action = true else r = true end end return r,v end iface.cmd = stead.hook(iface.cmd, function(f, ...) NEED_SCENE = nil return f(...) end) player = stead.inherit(player, function(v) v.look = function(s) if not stead.started then game:start() stead.started = true end if game._time == 0 then return stead.walk(stead.here(), false, false, true); end NEED_SCENE = true if stead.api_version >= "1.3.5" then return true -- force action end end return v end) pl = player(pl) -- reinit -- vim:ts=4 instead-1.9.1/themes/000755 001751 001751 00000000000 12161555570 014747 5ustar00peterpeter000000 000000 instead-1.9.1/themes/bluesteel/000755 001751 001751 00000000000 12161555565 016737 5ustar00peterpeter000000 000000 instead-1.9.1/themes/default/000755 001751 001751 00000000000 12161555567 016401 5ustar00peterpeter000000 000000 instead-1.9.1/themes/original/000755 001751 001751 00000000000 12161555567 016561 5ustar00peterpeter000000 000000 instead-1.9.1/themes/arctic/000755 001751 001751 00000000000 12161555567 016222 5ustar00peterpeter000000 000000 instead-1.9.1/themes/fantasy/000755 001751 001751 00000000000 12161555570 016414 5ustar00peterpeter000000 000000 instead-1.9.1/themes/wide/000755 001751 001751 00000000000 12161555570 015677 5ustar00peterpeter000000 000000 instead-1.9.1/themes/Makefile.windows000644 001751 001751 00000000271 12161555570 020100 0ustar00peterpeter000000 000000 include ../Rules.make clean: all: install: for /D %%f in (*) do ( if not exist "..\bin\themes\%%f" mkdir "..\bin\themes\%%f" ) for /D %%f in (*) do ( copy /Y %%f ..\bin\themes\%%f ) instead-1.9.1/themes/book/000755 001751 001751 00000000000 12161555570 015701 5ustar00peterpeter000000 000000 instead-1.9.1/themes/clearlooks/000755 001751 001751 00000000000 12161555570 017105 5ustar00peterpeter000000 000000 instead-1.9.1/themes/Makefile000644 001751 001751 00000000457 12161555570 016415 0ustar00peterpeter000000 000000 include ../Rules.make include ../config.make clean: all: install: $(INSTALLD) $(THEMESPATH) for f in *; do \ if [ ! -d $$f ]; then continue; fi;\ $(INSTALLD) $(THEMESPATH)/$$f;\ tar --exclude=".svn" -cf - -C $$f . | tar -xpf - -C $(THEMESPATH)/$$f;\ done uninstall: $(RM) -rf $(THEMESPATH) instead-1.9.1/themes/clearlooks/cursor.png000644 001751 001751 00000001254 12161555570 021132 0ustar00peterpeter000000 000000 PNG  IHDR}7 sRGBbKGD̿ pHYs  tIME  ܶtEXtCommentCreated with GIMPW IDAT(ϕOHa;*D,IARB%ҠKu O u !$/!Zٙwv޷úe~ymmôYR}s:V jzn<*X4Lt}=ZO2x0z.l,:X[\ĸ3>(o"$b"1i?4;n%66(b 7pED(fSwplfQ%!e>A2u}׎7gbbb~PqxG: 珹)HD udD( ҜVO'*$n}'<W>aKl$2>Yg[~CzzK$IFbJ8D Kh %VP2!ADPvIENDB`instead-1.9.1/themes/clearlooks/theme.ini000644 001751 001751 00000002250 12161555570 020707 0ustar00peterpeter000000 000000 ; $Name: Clear looks$ ; $Name(ru): Ясная$ ; $Name(ua): Ясна$ ; $Name(es): Parece claro$ ; $Name(it): Aspetto Chiaro$ scr.w = 800 scr.h = 600 scr.gfx.h = -1 scr.gfx.bg = bg.jpg scr.col.bg = black scr.gfx.cursor.x = 2 scr.gfx.cursor.y = 2 scr.gfx.cursor.normal = cursor.png scr.gfx.cursor.use = cursor-use.png scr.gfx.pad = 8 scr.gfx.mode = embedded win.x = 245 win.y = 21 win.w = 520 win.h = 558 ; win.fnt.name = sans.ttf win.fnt.size = 16 win.gfx.up = aup.png win.gfx.down = adown.png win.col.fg = black win.col.link = #b02c00 win.col.alink = #606060 inv.x = 10 inv.y = 21 inv.w = 190 inv.h = 550 ; inv.fnt.name = sans.ttf inv.fnt.size = 16 inv.gfx.up = aup.png inv.gfx.down = adown.png inv.col.fg = #606060 inv.col.link = #000000 inv.col.alink = #b02c00 inv.mode = vertical-right menu.col.bg = #f0f0f0 menu.col.fg = #000000 menu.col.link = #b02c00 menu.col.alink = #606060 menu.col.alpha = 230 menu.col.border = #606060 menu.bw = 2 ;menu.fnt.name = sans.ttf menu.fnt.size = 15 menu.gfx.button = menu.png menu.button.x = 0 menu.button.y = 576 ; snd.click = click.wav ; click.ogg ; 800x480 version ;scr.w = 800 ;scr.h = 480 ;win.h = 448 ;inv.h = 448 ;menu.button.y = 456 instead-1.9.1/themes/clearlooks/bg.jpg000644 001751 001751 00000161011 12161555570 020177 0ustar00peterpeter000000 000000 JFIFHHCreated with GIMPC  !"$"$CX "Q!1"AQ2aBRq#br3$%C'45EU7DSTcd6t!1Q!A"2 ?B6>vgkjr^a@k?eR;GO9ٯ`WʺvTHlWI[E(-t# xXǕQD` k;o_[@kGkR0ziv"(AiVW? O`A_eRiOILD3M!<#_?ϩdڽ1N~r~'|(< G.v¿W Y$ݥ~ 6gnpdA?eRviE|Ց֘ښ;;Sm_?fS=_ғ;Dz\4{^%_=o{3^ F]YW<dQ\ڟ"A1ߵ|+J ݑӝ ]I!JwM~+A~׸r??Q ZrG ˆa7m>+3Uڤ$ @տ_u%NH}J-Qp&yR9dW,L\`Q7Ջ~k|OG~O>![CP u{krB_tMڬ'{W@(NfjWM{0#vj !}}E;i ?|o瘑_s?#TP ?bo·IWr[ Tvj<~:hT8 J-Οq#;KψQ?dP#ic  4܄v#ֶpL34oO~todN@c#ӈWa sX Lz|C=Co7BGopL%1s)ޟ~^,"F|5;{碑_M|tʧ=SЊl?8^\TkH@m=O  Ͽ*M1 9 l?8;_ ~^@"ybG*m&hI,nbo)ޟdPA TB+Vb{qoO~sd/PK[P")>K;Lu$JO(:SoO~uo'0{k)P7ڥz+c:EtyZ)ޟ~^G1Њշn) }M!z2{c$Vd/PNl_OdV PcPl?8 5TEo-lvn>my&z|C"znȬdOPk E~@'TcΨ&TO~po/c?^޷ Emڽ`KNZ>y$|C-ڣB#Sa_7Yqw֦jqMu#zdlvp>Ⱦ0>MN@ƢtuɆ}i.R~ei#xQڽr){g>r+Wv u7O~v/jcj=C=sX-+ ѩIHMCI g1dP/=;SOH&j.nN*m|WsH$D}C&?{E~$`dtS $)R|W+,p5Q{v/P@" 0$]tn?|Wog8;[IH{G2z^kokD:T~Ԗck5{cP{|=&gY =~[2qc+Gn’ˊ#9ˡۭG,m2(ڃ<4k04Am$4]h$N&?: ! BhqV򪇋`&6Q-怱`d* Q'҆́TŁ)'Je!DzGjDG=L@P| I,\gǩE&czFH`VhNL' ""D(MIWԣ$=>UYc2j ?Bdj:l9f A;0D9TT$X4NS)8:j\0FղNh1;!81K& yQ=n4 l:ұ&&J36MHzNwA#^}L(z$2ę^IGUTdܳLPYrjy(tԈYMd>DE.-E",jLQ#փ$~_JdفCMJ\OJh%xqU$DΉBu 9M,PR7,'#4m7jL$D? (ΠcAQ.-hfm:jF⫦,D'5TMyES:ݨ [CŦ}fSrP _$@Q&}P9b†4T+eP7Tͫ<*>"zyH`C>>֊(,Mq6yU*.HV9Z 2îՠ qBE> (i-ͽp HGZB8 <Ԗ[of^PVd˜&UVK&nx$ >tA$EsB^Xճ(QARUvpì lA@,2I"1*vGf[g1T#qѨj2^zaEI6$5Xt8M<]1+ ?ͩ[CDg2~FŘni#{d] FbE$H<ɬM0 ϙ X|r%ظPUW-$9j ;F+c4坰̈Ñ]zEh @ǜ75"?mI=&".ȩKyXM/b<ݷQA* Q;Ṵ&Q. dMkH4^n!(bd@Qk O: $2֜->gW%ĕ15*\&1ӭ(L.Hu2 Ĭ#U̓jbIϕTVd$BqNb<˛fd'J(R2(1DzG$OUA3#ߤ ~*}U]CsFsW =FP;Ձ AR65lP Qk#EfTE;*ȚBaG2k+'Bci`( اn 1sޓ ˩E9iRn+&1󦀠3Y;` dr@4<bE"pn&Fr*вHF)4Ι5Z j dQKUX Z h0w`b}җ8OJ`H3@qh*|Ǖû` ^1@.]6=KyY;5f@(5lM3[)&d2,BRtŚr PQ` 8o֘3AƠ^U³XUE$^74,H) zR]9'S3\VԌ;(6{xb$x@hЊv,<4"Rb37QTNZ]t)@2VLQZ6*zj6."h݋]UGJߥ 5ڭ<fbZhc{0mECA v~QAcSIjxb}jɣ*|Q!Z@RNFh| X̡0UC1,9- iW/ g5fK-AC AC:UD=).楨{`+ J Uoy ~z7cv~amf?RUU t~TmY^@,P BXfV8Pzf1 ioP+410X*aAMO4[llPSe:Ӂ&χ43? C{D 7)A@҈, =ٝ LXC-J<ڃX'cF`lM/Ap!bPXM'*(LC6̌Tʭ/;WP1@[OQ聵- S>T%A"g"XdM!0#5!C0lSZ|=]gwR6=1a۰#Ȉ^MXXVDP~+TuPķK vSs1YQ3NJMFԕӐO3A74 QyDA,;S94i0B&i׈e*wJT3@'xQn6ta@_h0F#@VP0LΞҨKBU]@("wTt`tA y]EV"N֊'~t ,D(3$\ Dy.@irnl0Q|TKAFFbZzjT1er9 `Tʠ @&Q 5P.z&hDϞk8} z>ZJ[unzeb-Ԓu>,U5;ѯz78Vb'&IVn!XJ4\:&Ƥ:RQq#,Wp,P6tͼť@u*;hU# |!J O\( KUT"[Űt-9tX`{pJ)A4@E6 Mi₁n_/#ӏbS$z@at#L4ޚM2W 'F;J4ᎣVAXםTGISVZutF IFYH| HP2!ʘR2+p9 '3H Y8ciVʑwNTho>B^P`!LP>8zS.UKLB7zu`zn*+Z$ZXMǕT}+I0OJ(I-|3i, M7.DP?jIG4fRChH"*yMc Ӹ5Lrp*ĨJ@C ,oUu:7 61MMM]57(e* ͍oC:͢Vkf;u!@GkzTٗvd`w!b|Md*ww2K 0mE IR;;ہh)3ň=uPUYW6Bւx >TH݆ lb)O:e!X`+gpkb czd&t֟*%ZTaJX*v4;D^L’<!Xun@!d)GO(ň^m@( 6EMyP>+/Y](!Kʾv]n¨k:3]Tn,Ml( C XwջRLdҴѴ( , "Nw2h_NJ ohngSpT Eq@Ua:i|k"7[FkG*@J,Eʘ^B@ŵN/@zLq%tme *Xݏʁ8'$dZIFX"]@!@'u>32zfycJ#Lc&fz2cb!ljjցlF7[NkwJ@B@0#p n hv)"#ފ*AB[rF['Nӽtp '0P$`- mDAA2Z yVR xzX-AѱLB6 6q ,@dh YNΤUCaOӊ[Qs3D]&AOIt !ׇ:jlÝQwCCA iᬊȠu@ bs,2ڒ,҃3NCAhFǝĈu vkxrO)+ K)?*'T4ph$;tƪFQ[*dz:ɭ_V;@UQrQsf6Gy2zP4' dbjC^5XH5~zP9m6`y\ii[Q±-V\g$h $ɦ'9IE'X]SۈmRBw3ұpUYQ$"üւh!8mnq"`ޏzKq5

|iFjװO'|{5,I<$ǝs^M ?A] E[ukÐ+$d荆:ErxߘVUbA uiR 2v zI!s3"gL@8ޘ;㙥bDJ&7Y$ "2ꕟH$%C&cRnNdV8HR. dw31 qMeV2&@ړVMEӜDM@Eb @0ۋY@6TwL((Ȧ rhHX`F@F0"qf?RV1@Ox P%iCCS%jzuu*h2*3UM]L;S y~Gս6I5}ީ3oW%TLO>0N_:$^8f3hSYTYMzCÄ9s*E7pj)>,ǎqKDyՊ7,꺀/ ",?3SIm0ͦXi1v7DL Uiaŵ$Z-Fb9!Ty8.|"IwTeqUO2sJͨ=|Sw9sSE[Eu#;4Av7Si bnȓ',}ցؕg-"ۏM%91X֕@4Zp@RP&M@ ?It!򪏰Rso$[|RFJ4H&T 萗AH<-@5op$Ƒ`Bn<[; ]:jʁvTi9P'mEh^~vДޙIUv ם o+.:`Mni4 d7 1ޔ &{SxAέޖq Ӓ}f5 ueGV,uw+\?H($;&EEX܁% sZE8R!L. 2zTY)uo_>ΒY <'&#mh ҳ ֞vwS4d7*9UGq} 1d9WB70&^t|+qgKjJpӅRĐ;*[X N(#⬄rmrdd16(piArĴE@ӰF$.sKZРgUF3"9#x3Bwo/F"` g:hGJ[QC)Yzo[I-Sav(*r>u1WF[MB'mXJ#wo4:|Ĉ&0qUn(x i9 YΚy1Vc.ґ UNM JVAM1P5M+wOr6+D.f4v i!rhI`8R}2xSfE~FFq̖Z%ӵQԾM"\OCXZ]YlQGb y.MX;Q҄ހ:-+qZJް:s u3DžGn&@>k u5{)?m*3wP-U S 8Hδ75Y&H"6-ǖiXP bk3#CI@2zU2̜r"`X5 y0#~t[pG/9ib\[GP䭡cr}uHʃ#XH"d`T{}9B; ""v~TB3oY#QWymjX 2)i !M5{P -Nk~,;Pc%"}[nc NyS nf1m11B 6j ߼MA܁h*H@)Yܠr-2q9dK/] 3BCm+% \[z%*T}}@U\Ν8K\ئ~Qob⊠I6иHum=M8vqH yV9s<@@AwRi'@  mt@Jf*A#4u@ G8* xE3P`Dco:e8i@XsA2Α5CMΙdxҺ4 i OԴASiMQHI:U@ y9uYtzց8$V]:mD\ , *H&"0Ahs4@nj<*vu:LZP'T<ա1VU tI /vm4ʬ|1baB`Q#Dз>k\ NgPΫ;ɩJٳ-6i}`LXsHrܷQTeP89ړ93  oA">Ya+ OyE#AEBk)F67@j;+pvڛɬP-kHu.&ђ r^FhV* ڃ}2¢ϕcވPTޯZD"a֤A=PDqu(9XŻD)Pw aEaMs:b|ڌEt:i^֩GO45 q4Q[e}fԩ nCz .GJ.i>#Q `|*m1K+m .Y&#j2CqkD)(ʹbdX+4S:I7᩠L3AWkw_ X#o]sjv@s@)K{-armUOﲘͻrNk% m1W/젃װXX[̌kRE؁*$u9X&8s:ʎ#>!MF7W0hΤ7mP{ 72 SPGUVsU9jlMǤG_N+s:ւI$ c#aO 3h`G:F q+]h޲Fn1@$AxNE#0`-X=M[;48p476Vf(>WP0qb.2b].b 4RL.#j?jUAYW$h7`P "kH2n LI)H9iۮh  mIܑ#:p`;ҀL@H}l$v d^ת@DB@ڼ?[d@j}Qu_FIAQ-RL<(MA0Чӫ!r9*\)dL'Μ&/ h"c@ -k%B9֒s2.tXOn @w! XHdlQ{N;j "8S.pEfRsQa]@*z: > yҨ xWʃ ݶiF7<.XvL!2Qd^EqM l?J5UpT] b`X:3@YZ@5 U<: Rֲ.@R˖XQY Ee *4-bH&nڀR噔Cnk& q* _n/҆k0ӵZXS%juV Ek ˝9r[E"Ʈ#xnZ9o<}#EM ;q'.FL ڌwzΚN9f(} >tz LL,G]%2oT2* Dӝ/w n-AE%5.捣ts%D4YJ#P[Yp!.${ZvCOK$4NZ]@f]pMfTbuxېi6M O}4oPۉ]xc¨ r!1Z,ӵ-mLdfq֠ѿrBV 29$lcac=(33@fS*pк{2(29h\(2 וA2FhkҖLt֭4HwWd+[1n'7n#jr PTSH ƨ7E[77`* ]"L puU O*ViaZ5^<)y@fkq9lOh2y@!TnQ&I cEm <̟ҒY ?tR ޳H_K餷m2+!,-#4@0'ݥ(a΁Pa$vJv@AH=(d^tցA@AQ1H*ǖ $_::S=Tt!`*`P!X4Qh*'I)̊Eu-QXbe*: t񺚨`P=2$\:T:{#5& `d4:PVK mkGh0vo@%fZ䞀UJ^ҹUH^Cz). JjPlPv5Ġ/NtL f-DQTϕWcsBQY"o`%֬::|@8\#Hi'=(a5HtNH#LgoҲ@sq[RXtېެ oAY2$nFpxgj ,#pM1*P!q@kwehhW0 0j 5@Q@$xt-f ˭fPNk0x tFIS [Ʌy rV~,j"M(U7,Z0BP.-XVdT21udf`$AtdʒFǧ΀IVoX1E3ù C G:eu .u^~S70v |gFѷtZcn](Œf7Έi'*J 0}4 ?3aޔÏ2U YruT?Pa∕^ZaʤArR^`Ys`9!E=sֳ? q|(ZNߊAUhˀ&@4xma$cҴq!(eVΧ3Lf  Rmk;)h :sT[iU Rȣ0Zs…Cs4ᕛ?*L1EDP0HX%- yT؝EK2XJ1̚ I!d.KF$2ލ[!|b j+"peP[n`i8:d;PKCu5tɺ֬-L6 4Ptu-Kuͨ!TW BGݞ膑1/ DADGj(vEe#E$k`rK+.\nU{[SO߁TxSa%z@5mKh]4c@֔2.ti33Iʝ^ToGTf2JE10aRs.0:Eg*J7 xbx&J$ރT$O֖QR0A@N o*ŊROd @~%KO I>7ނ'eCzgʖ|$wʀWFvTyKu ubf |X HS vn!YX}NkiP|[p܀LDfM7I$ uXW$B#f. 1$%`Hj}\0i!wɬ@9&kr23Xr$Ccs\A:*&c;#Cap!S*A+'#=jRh`yIȬ9[;ާ\N>E2F? -DoG2hcoT #~ʤgxA)*B J]e#sS+УLT̈15-0XHx޸= 3*S1ldb\W=#>l?z@T9vI:MOIE :ξ\sg (E0wx!4 Q ªX-SYfy68@W[yP5DŽXO:^;iT*ZH htB743n H_+p]̚ 3L 5 ԑt}a(Qm+FbhzʹUO{6>]R }k d諘 :uB!WʬNΦeN<iFf*&qҨ8icHY`G(l0önLjѸ#5C¶TX7j@ f3LE $o*(LB_: hmMn|y-&6LI0 c48cDȘ(!ME}\+@#JʚI T!&wK+3z  AQF,m4E $Z`do5@dDN[yQ!1i`IQEa&O΁q4$ER'L 9dJ['L_./EA dx,.#Ej8nYP.i2*hԸ tlIdʝUuJQt" "i'hС]Bm?:ʼn_PJK o-3@*e URAQPiWɦRJ.cdaVB2Rds+5tU\i8U@xI;oʐ,^嚧u` $؜)),W5LjixHgw:Kij6v~c4mNδj(kwZm*tTVZRHv7.?Jڷ&5-E`G5l7uZfT ?Y@n5O"qKs:*ի8R{dždo,[Y`Ҏ5I |6IB3D`vLPT&t^34 :POA WbVtGU⵴U?e$=ظx1le Nw'M@AP˹a%4Ia`Ҿ8*H)-MQSu`[ΓI, ˂ǠނN5C~ЯOF+e[LnўfWnA=*k'X`(1@T*ǭknQaM(vCրIԒy ,adj=Z4 ZG0ZnP'5fwn"j:ĹdZlDdHVTfZC$-@`7<5pAza 5[' #AÙe1LBtURD2)-5)ʛP2}i_":S2{֑Jb~\Vb|f&OF|@( +(⦼FROA+j>3$uV2qX˭"TQ"`fRAR'p@A- S":mԺ(0".uȡ+`B<8 K X-hPqFhh J`X *ЀIu a8nf1H ̍NT d(5"E?}3PeB7<8$[pAְ`kQ7/^ϪފYfGY&r㝺Շv&q?ҁ*|*uD"idYRlZ&:k3BBwŞBXc,W աg$urξ:lQsP|Z WrnP xsX@K6u7++]Ů?҈}Uf0i4Zjk gL,;s"`!ݗ+9 W]CH9_TK ݡiNҍ.)Ĝ>u ޕ%b # ̅J(5L@t't XΕ+YEd]RME+huKI DO)de'E4%o9t # Y4MZEJj7Ѣ\xwLg7>)h!RZw4{Lqt♁ X{f?JQT 7P'6Q&pL1ҧezCx袲3։`P,{˘87?Kg@L=[T"iI#Q3ŧf(-iU5mKx]ʙ;^8xLsi443OH O(gs)ISQP5˪'DKT Jk[mchF4)QqT+G|Y,佳.&Wm9'θm÷BkԞ<d>"s˵tN9W1쬟ϰe$dv*[X1mL ӕ.L;2wkmUⅪ 'SHSe*_,P˟*0?R7{U:tܰk9`R|hcMJ<ᩛ~᩿{734躬2ޠ/Ψr_)a}@ѱU@0JĦOQx.-pK5MhkcsTMo [Rh$'~yEXhzMY? K=&).aM;V.,V̇EB[H<ޜii&abu!]m#{F=CH:_u)n5&q3X0>YCCxP:B]nL,m[tZo@.yu\ֳJ얏:UEDxΞm[b֩ Z n' !X(Rlmqzf-67}9!m6Aa qTdFƙclBy3AVb/Nt>W(ƟCX.:ܠf]@xY?sM8H۹4 ⴌTOiE嬅ݝQcŴm,SPy߼lKa ~ FFn VeZz*jPL|YƉüfPoEenWfU]@UW AMm)Uf*e.bBh< ._J> 毯='G4ɩ.Vy5+E* Tj-}A+u1RnP\r$dPI:ɒ6YZf@T<`Tʨ[N!*7t:P9QmFs~u=M5exzҘU+&A+JM/>++1ʄФ9<t L Q'ӑJUD F:PmU8؍!USa4@ɺD*̪5-50bP W\sN`=i 4nR#@+1hU 6.dhH;yhu&)a@IqmɩkH|J_?JP:V0Cf:t}?:Q6({Aw9d^Q^gW!VD5zުiz:dڵbz4['OO tj/UVUdqsQAb.ޔJ"G+ƧݶŊMfgLn?Z  GŊloV]0Unո:U[CRPy)]Z<-*[ͦ`u"rWUh_+w<%qjhAcOF!YVT<0cꥭ;Rp-b*Z`YpX&z]R #ޠEu1jb4 Lwbi(+n=٠|T ŷʫl,. *ljʓwv_6Ԫ3X־Ŭ4Cjpf*[{oErjW*YP vppJԸ| %M3 xՅe BTȩn\]UX%RyLU<~|TX'(f k<4"F7\6+ԝ3ơy ۪>* 2//g`;V?yb]5M憟vZSJ?(>Yfj_'IxUN幙V&E(B-P^oS[tҙ{b\E>2ژZ|0mEo<7/wՍ1l6L\!o>!5XT[Xi}缰o+GJoo,ZQiuLu:vpmaZ޴.OҠ[ \B? ,߆''ݬ̖Z{Fn=%"5^a҃ CEfbOS]$pJk5 YEӁ^f\/ /xp1"-hmd>L-Jrqli\3h TVX΂ڣO:V.Oe;օ%Uk$s˄.k"vv]AV־:usXNx#@+jj.Ṹ eA64ګ";^@Vi<ڙ@xRLkG fh.5Vvw&xn=)oeW)u_)VSQxc{u'{8f@E9iܘwRӰdd"|I k6ܷAVV&)T@V3׭50f V܁0(50k09Ai47)?m5'351 @K9< LG2QPԐ*0rFdy6'mA&+Nu 9ʟPA,0 7dzԙjp`;ѤNzEH#<9rYQ9 .Db%wNՠp H &#:>KuvP zŢG o U_ַpjĪRU洣} ~^.tu}3K? xTOonjwi@;j'8[[,|"lʥFc~k}"K|BiMdžR p9ӫ+{OnbZ$㧕3ʀ ̈,ɓXʖ~!ցb 3KAXg5Hw75E}(LU-;&ϕ 1܎T\(p(EL fKl`Q*&(LGMҷyTe?Q AMϨh!LYtLtůFEfbN6`@>TC`Wh]wC30?Z n`2*%,{̎F2cNI1KE-TYb3hH63&yV,CHau$HAڙ1u]?*8`s;P$ iA܌V 1D) 21` ri ` <(%+,_vj|KjYk\ۍ_27wD*=97HhY7V5-E{ME, wn4}m7U),׻eHo E--T ګjMޫ´U8~iyV{5ӻ@dGnTX L)AƫsZP(f_U^2K/m=RҔR3[Lڸ Jb~B[.dj[sh)+uMf?()UMطPz*gy497xS5UV:Zj98QJ|4L[J8O4|"ZK_z%hFT>u{) xy*^}Suh*M+|7 ^kUpimHc&=A4kUbW 2-ξ~K@װ1׊2Ge?uԷ] o8KY[-[zPV1,e`*[n'6Fo+Teo*ܨ ƅwYx ` yږB[M5{˘os2UU j"pҾᣛq/*f`)SLn-RʁmQ:+mQ:Gbo@^ tT'_wpY{:MMl"mIZAm%feBh(5Hjq 7SU։A-wvWP5mPYk[-5MjRx=ER+9_Hٯa57 }Rn8BeY"LαBq*aM;ȟHb+N[$ 1H$]Y!L(pp9suGm)Ԃ$bڦCH@0GÎPIV D3P2toD\zd~T !+p%(FDEpLA;ӷ DJ#gL{qH+ 7;'azi\xvzxa|>V 4 f@K_ kG Y::J$cEٷ[䎔d0lȍm$_*kx3@AbANǕ'nU`Q#i?[(~F`Py>=_Go%[Oֶ g{ި#"s5u"ęF)ŷMA0 MEL&UyE L~,SZ4 @TڍQn=+ZD =aFVr\P#]6 Sk;h$T3jiͳ@mV) 4 0ϕ%w7;P=-^Z X}C7f]>+7!OYG]}630u^sXmKڀia-&i-ӡ59zk!ґNx$[SF]`b[QLCQ:iʀʜI";dy(,: +NvR~FXW@|f?H=B#5OTj@Qex-Uf)Z n{V2ÊU Ś ek} 6Qk)[ʘepP 5n-y+!]}ځ0cqo5kq%PCiAt\$@ὐiDw2 rQM m qC+,|6|yR1'ݦ{'.9oӕ-^BiΜaLo"QJӏmeYׄ41645q[T/=ڞdslPL+|sjOt{͘.Uчri5[!Dᳫ<ӫN:!XrVF)Ysj LZ:%w (E)#MAS @\{G!T.7Nhxm]U:yԺ> 5|&ly`u ҁm!1Raa5@JZP3lm<7: A|5YMnMhVl0^7ezV0QJv:8ib9RZLpϜ m܊Ql,kwj:3[.u7 ]p,OJ'I!q|Jx 5T|i]+txNJimUH0zց U-H6*pN/ځhfzVx [hw`c5 u{:$wpKe ģ9X$շaAޜna 4=Bi ݱ<*(BȨw.рnuGV3 TUT$Z`k64B<)2pp?QYXUMax+|" #Q6C v #QS@ȽRiJ0kDrݐ<tݼ^Vj+.yPu5Wu,2cT#XD0P`:l-r[=a d~5ֲ5kW.nclՎ{(װ&?rN3޹dg@?ֺqinR"p,pLΙG s0I)u 0VXsO2qJP-'ފ)YD-4ͫ|DUQ.(ĕ]M _+R%%ȣt›ުX+J͏D|H7iۤ~f:d~[U`AɞC(`d|\:qvC/7ok$+ëcVD%᩶)vUKPņRh2j'>oib!bT!23) m*- s+H4Y)AIZ'`m9]ZYJhpHK\G .Yx0]2W1> KJ A<ҕDu3i-kp  'i4`[($U]c8?Ql: T M@mm6nyn{DsClGJmm:-8^OJ@YAO*sJT u%ŒuFʁ+#^ Y40mΑ% U~QR:5ۼp]N Zzи!~=ꭲ<'y:t'vi0NJ1i -CUE&umfW/5!aDc0W7&(ηP2:GRM7U`,oFX ;V7mx.uBpPcw*54AA+-W!Xqm޻2ӹa\c%`~t9d=vA?k`bcz潓 kXUuQk6q""إlĊQAmH.|+9<%M#ҘjF&A9`i IYd|逦HAf:.<)L\3E-* LyhԘʶA]`A;e g8jX!҂$>7󨦸 9Q*Lʒ+iIT"Nzr!JNi=iNuEnhVIY1P@ڜn2rlp@mq)Zqv@LҕO@ i8$ُ! K9چ15 Al."zU'?"L;O$鈳jkOL|Uz=L#-58źÄ\lh AqR':(ꃡTOaP,YFHi_< FliAF eC2OVV֒>r @8_ DGbIrddjJ`m_\P|WiA! !y`#q<=K5 ~^TtUI;P2A"y&S$HXBAb)cmFJఀ4'5Z kV> AP 6y{Z ӕa/II; @8Nr ԸQbF*8+8A2bEMؘ$:Q.YB#sP '?ҰS96F1;q⁀hO$8g0AjL0:$ֶA961,d¬ "h)3,;yUedHC<fiΖT&AA.H\դNQ!=E:1P!06D|ZNj|5&)E"$O&8jw ((UQHJ PҘj05T):! hʌ,t .(:Enʰ'" R|մsymOA]Fn]:bt^{٠ֻj=67GHbtFJ]FJ95Y@Xn4J'Q~u;*-S$Wۭ>H 2&H8Hff3SF[3c-H*РBMU*"9Ѕđ,&YK ک@، @1Ҝ$JvWˁښ*R$GC]in,ή^ӣ6L< lyֻKM`EX4oJVնa#h ?֐&JiPu?kDB[>UK0iG %e`DXu0,!"ǭqٍ=c~ t\gDe ǡbus^A?UDn\߲ٯ`QӅɃTfj֠ǰ1WPZPz' LW l٭]L qSr9W̧EUu 7* t+6/5.>l҉R -`gm&O%Uiܻ[wF.C&9Pw;& tJZ?:8 i+} ]KDl-[u5eeضՖi̬A1Q欤`i.WtQYXC+"l P<4muTl7NXuK=qZLܤ~,VexoyL[SIDAXSαY*ʶ~uI /vy{HJ<54iiۑL.U#?$:֟R`;|pkC]7IV+@ d50 fd:1&WNX7J) z&*JЅ{bMb*ֱx.hJ,09S+ X\Xo* `빦uQ~QRC|?R$\[&N<&M*uK;QژD7aQuTBg:):F(Cxxʤ[SWSC; g.(6H=/ EB-Ht7%zixbv-R6 ׋*[G`݅SQu4KW=u=MGY[Qd]QRh3A2b0+f7ZmX XfwV h^;N& aQ8E܊ݴ,li_#QXAQʒ];r]R1,nڂP( \\RA-V vdYYX߆me.9-u G\w`Dy&u&?OBӰ[V|*p̻ǢNAY}Y[xފH @R8gh"cQ0Ab'a@=hF<!ؓI >; *Hbސiǝ7ݐFǯΦT3q.Ҩ]P` .Y/ "B7,K;Q OtV&N>TMxH@-h"WVk1'UOh&-)OQM5%4樨 `z@$@@:PգP/tKT]|F*zLjbC:0C)4^;⭨T]Eˊvn=Vf@M/oG&gSAP+}$ʠP)NzUW:MK?|JFaPfU9Rm.li  iQWPg* _ә0(:sKt@'SP tOI;fcWKiE:ss f uyo 8߄TMY@5KtKu8_TZ@:nYUNxS.zjW2]:oҀR  8t5rTt˩; K{=#6NxZ˛A\wXcvCL(7RDzX= 8ITg٧aJϢ.+*$3 kTX4 p*2R]f~W0 'ʙXJk؍ԇh+MKq&8F%QzDNHi1avXr)nR ,Mlm\YXwOHg&g]+!2@]dr#OqSŚ Vb&' 7LP8ĕAڢ;I'銴KI␻ & jݭz`Pʲuwia5+Vb6^qk,j=S }.p{ٯ֦Qz@Y-{&љ#5b֎.'*:d.eB:%|A"X= \(7X`rxL,?| @ګivS Ic'}3sM^#e}w̳ :P-QOSNPxQSN@(SM-6# 9RlMҴ )J`A$æqj b rBϕ8at"e!Z0BuQ06 pQXXn92'Y(iCt0H CM~xg8W(JѱnbnM"\UPzrWQZ bHQ2j佰Ok`*-apثp zFMY*1U >ub2:r9*nbI&,EV$ IQlȑLW1VS $ Ҹ fGVUX 0f&h4.Y`twix<%ZhccLp~ >5xT@rߔӕKT6۷ SpI恁ak 5CӨ ҈lCtW.q[P0¯4UXʀ}.-)*.2 tK#:ibAT"E.[pD d]%7ž1J2:QV  Te_iu@m!v"= qYXSul U/xCAʅ j@Y@Qp+y#ɳ@;Z8r7 8S\BX-f`ih|S,]T&hmQivS"l=z8I8 6cikzXChVIPoB`~Ȥ,ll{)װ Ϣ.+*n'l+6ܷ^"7#'e fCYSl{Vé#ny0iS d8G:c"nx|`'qp3T\z\O!XbMs1U #dgʕ]G GjܐɋLLht&K2P- < 2T^6m߹"*"m$]ϥH"IAI&1.I3@Ne8\ V́S[3w`WϨUađ2:rq҃ ) Uelb9V $uؒyTL# R2 ?Ԛn#OpӍx^4&!^IwOoάquԭI.`mMI,zmCI>D慚T&(,N8I#sQ~=c{Vc$R[0`3A`5SIH\Ti-$ aq@`AT|4F'"Pރ0 nsϧd excY@(JHm*U"74i#΁`w4~:c҃ MTZȮ{ևc~8ݒܖip7V iqj[U\s0Y-#uՔ;niuʕ`wP#&1݀iIFxvLP)yuIH1@)q4琣z?=)eַPPBh")!թ@* ijai;WO}3K\z9ԻPxt4'U=D_&L*0}OX(V.ְMFB:o@&675oPbɐmA4NFF540F+G⪹\ʷZXSe P?v &;ņ|\$-bk(h#\nAi ]IkP(Z) AF+" 9 TB#>liFqoBuV]/R<[f4iDTӀT8#PxadUKG m3l#z[: J5qrkhH`SX0 dq$t 7`@eSS\OMp6NЕ@џ1@YF")[P4/wY}t AHvUdDn#Fi~p֊ +yA|jYm2ʉ``E @.PA(0nf!6!;~F$6ɨ9 '#VfJ.B q!7 q%^g~VML-'DBC:N'$0oEE\EX(j]|kr3ʤu4IeqS[GB( 8rƆ\2(wX]zɚҸ1HX.A3rMͤteS!.u.z@chTZi~ V[v3`{@_k'#<fHEWJOxeC`\ײ{~ӕ`1m82Gh.Dm"@jeT`8'bn'L젔^j-n;"TN:ޒ\!m:7dǕ> ("Uczy N1ʔĬ@U@'zR Z@ Z18m#9 +hi9\V3@T6H*dNh4iك@dQ; 0IUTI\@aHbdbUmE&坾`LP.ܤm5%a xy氰GI ":9Q YM";FjzI+3t*Tox|@T0M՞pviV/ADA("I9"<i=B*nT %[Sq+O΂9Q u@`5zLlӅELT$@@3@јq+!Q4 ң2G*mFPOΥh'>\T\@3PU/SNir'ʱe C%M2IOBMQ#E@6hԒڍhuU)#)!\ۉeӐCdPP0%Γ!ޖI(*.Nr7T:Qp^IS{:aՠCL Qy&OT p%J:VodR1E;.Vs8EP7">: 5<|?.T@U'PP X]Su5$06RfekFɤWM rI_i"yf5G!FK&j~,.D-*V)%ҊF8*GBh3*ib|nr㆚ZQ, 2z=.=igɔiJcF0OJO >T@%1 :6@R+pRƱo#ZՒۍϦ` [OM"Ii B4㉎ni444_[UeS`Dםڣ_Rdzz~'PdzRh$KOSUnE57*#bQȮMSڢނ_V*rGv c2mB:h5{Q@2X0J\YWXjk1?[m5gHNFXn@Kt9Dd'SթWM |tŅd0^F-u&aj0(:eVFO_D,P[x#D.7D#@diX "["~|#Ú-%庢 xyXH#Χ(7xY6eF&ؑj5=F$UÍS*ns  {0#@5Us d#XDmUa'DfVgʺ"Tg<f@V'tx[p LLʹ $<17KFՋʰF65'})-fPdo c XU`pe)OB aʤ bsQU\狕+(P0sAX2Y?PG"k<I5*nUݘ" FMYݕ`P /Ef l iR$)Sg |F -o5i!S}7 - gyiC)2њ.u&Rd|Y*N!05!8Blkx8ATFgz֣D>t"=hXV[Y3HdmӤ .75B$ށ́LSk!50T[@*<0/ͧLIYݶ~*ڵӀ #pRf6qg3;00GL&6Q\br~ٗL{0qsz#yZuZ㽳c6Vx=4{5)q]0Ĝ9}۰t0 jX0$O1Y̑ ImR^:O>y+*6LMi)b%r:`$rh*($/01#u Lڞ惈uTDsޝ"|Ikn!P@CJHplu{*\A^{St^)R%Idi 8L#Yla%YAt%S)R8Ṭ )h 9A5b$T0Yڝ,.ާt,N" j4nϭ92 g 'ΰ0KI'c@5HjB&y0P$j$ PBq/G 7&GWQ+s$.MU!4EsZ3=u ΁9^& 򬉯x61 v!50TPp2,@CX,ӝD}@{hڂ6u ;#OM;:KsFUK%B9ʶ_*6\XlhȖf"ѰIA&XrPy.":2[DiiMըGPE]WQWם*M(\#1Ѵ83k&[T]֙B{j`!e-xEBOΫdJ`yck;{.[(%p֖ *yEVAu4H@܌`v 1e0Z*a8E?h<E Ҍ) Ce.PV1D(;c5%z*AG tN@oZ ř 1IT)QwjRCl!*5 aŞ{Lr^]OީXD*6e,j1nB R߻aG :(ĀgRNJSC]N\%XIPw`M1jVb`t53 S[UiPaUP:m%vI,ZcΦ55`@a UeJd,6cij*`H(-q)R9Pf,n)`U>2SFﵛP>v ]Cj*J#Q`|4UdH  Q!@{I ֌ @W MP혬. ,\1iҾ:$(lC)h$A1 :jaA=+j"q KDm4b,3;1Ym864.󎕮ʀ1ډ!$tJAY@Pe6(rV։en_΄30*-V` MC-wAty_:S A(ĦHjax/ʂk/㍮L@2wl- L 'z 7}+ʪ˻}},Nu{e!Ak'/9?٧a@U\H{)o5AǢG:udonx[6= [OH&7 f75a[eEL4N.\bg{H&XAʨ w . $2ޘ@@51p|@m1&Q,(:b` &E & thLv0 &J,Lfo( 9(uPfh\:wJ Fv)ްʐ1D:PjlV A$(IPؑ`TY@'X -Qro5:fI#^jutÒWtkPgU9WjH@7dm.BJ3=teEILoQA84@2 u_{%:6G@VA<+݊kJ^-E)]-@@1@F"304$R3"\un]@ìJAR*j=$<4dRـ.%jX7Bj΄hJEKmcGwk5|C(K >T%@&[j̥ETСpwT>ZyW^~Tci+Og򪂌#y/hT;0;L*ȠMW<3f[xyM+P[Lkʀ, w=)@"iKA;F=h*p5Aݙ}3$n@SG`WKn1'zր A/ru4m)(ân 0q:V ׏t[´[LH/v5=VO;2[Q3(EJh*m6%еt$a8鬵URZ  ,WU0 z֓?J:=$0@M,םYnDl*NtS670IA aMr1ީhVb~F.f_SF.da)#iU68RnDP+u$r&N`ԍP5 a^dϋU ʾ=M=;9GB(QP"n g\tL&vaH@7y{H4ɹ@B폔 1#PmVYacnq@ @TETrO  <m:di*|&@-fNXN*6LJJͽf8 K4A$ӐHEfq D]E"$h6U[N2Im鏾PP#9UցC6#;yY: V -oO*Hc|vV%a Q`(d'z ƿJ;Jtl΃2 =[ ~]x"lWٗ%{/ݍfvOhvWicڏԐdGiڵjO˄~[R6ҏRzҏZ(mG?/q=?+Vl--!ڛԫ1CjթI+{L}/IAjCm(]+ c{JVM6/9Tv?j?RsjhQ+';!SE c+?ER]SVM]ԩ{KKVґEjD`j_RevdRz7eZ(mڛԑtELJ xFkVl#G@;#(/dOi~Bj硶>ԞUvE(=EjCu7}}JDG=3^e=CM!{#ȏVWM q%{$m+V$Pڗͣ"}C+R?VM>o ?Rޣ?=ۄթ ڏM\vEjCdq7>CKZLE5SE a&wdE]@jhD}}DS=s'ڇ VM6IPOdv]zaZ4Q>GnڥP.B?jթܱ]zh;TVOרktvOjo+Vr-?s?]zxݝ#nZ4P?kQ-a<SE:=BQ;Xc;= jh'.E{bJ~؂SEnSn"jh&^v_}=mUCDB?7jO[E=>@ թܗq=wXG2ݑڣ(Zh}#{T7}e<Z4~/kb}@N+V܊@{THO?}+Vr }koD}}B_bv թܱ^>o jy@Z(};E0^oQZ4P&GN(~ܝ<+VrAj^UAEa]{VQjCDCS:}ڇRGf$vGi jh$-EHfSXz[ST-VM]}Bb7j60(Ǩ;PKEjCdo.Qׄf\_ݩi"jh[ڞbJkQ&Gd+V$k(Eoԁ#Wj0? թ7k$G(w?ڃ^+'Ǥ^F(թYinstead-1.9.1/themes/clearlooks/menu.png000644 001751 001751 00000000543 12161555570 020561 0ustar00peterpeter000000 000000 PNG  IHDRשsBITO pHYs B(xtEXtSoftwarewww.inkscape.org<KPLTE˴::: !!!&&&((()))---999===IIIOutRNSx)VwIDAT(ϝK EKiPtw<1V`CO 1NʸR 8H˷Wȭ$mglϭHG :~]ĦIENDB`instead-1.9.1/themes/clearlooks/aup.png000644 001751 001751 00000000675 12161555570 020410 0ustar00peterpeter000000 000000 PNG  IHDRsRGB pHYs  tIME qz*siTXtCommentCreated with GIMPd.e&IDAT(ϭҽJA߼oD?`YJAKDAkmk JN[ BPEF !kTx`f?yv2dOYKw!ۨ [_ 18M1ɐ|Lʍo2\nnsW" ax ŘI?l@W՘P<'wASڽya|=*V 5{(!u  2dȸ ӺS AX VF3l.׷[|D# `}u&sS(0{_fFw|-K1(@ @R0tqG@F7zWDO'͵-*[^{2P@ z ٟH'^jAC>/p+@Cq_1/^u(?&_dߋ Տ}MlXne+K%i*d }_ز\o& ?ײAAlZ8Ue5Ldg12 *)uz?@ p<`"(Nၒ}m\׈,wl$_ڙ^#5Ŧ ̓o[wcæD_'yp՚q/d/3U>~8K"J/΢BKׇyS"&*T00Okv4Zrr.'n+]=d+[?d8BCn|ћ9)v`~,D`At!b/-3+K OO(!𭉳Ƭ/3I#GE.7u_@`@AWl ]+ިnSq ^~wjb4sTKDD@hy]Dwj 6 cm[;:Q:t=^ ַןZ>ݣ>i5q LnCH0uvD2H7?et~ \-|mUMvVsIݮ; <|G CB'_b dmwc^2w7lXmtÅ8 E/6_\rZ'W YӦ4J%0ڑf͍6%ф>aS-׎],u=ubPsQQsm_Ob Ù>A}WY)6(P to,xfo ё əfո ;3wזhW]-B$1ۛo6=Ȥ -Q2{Gk/ Ʃe}8)9`Q999ӻ{䗎Y&)i 5k~gRhG' qg=2q iON,k:d'Zw@-eg̿x%o|Τ3) &@D޽ Sx 7A`P>uFm[M{}EMeͿ I?T7kbŻ,P 0Pk<6c|Nh]Hmcѣu*HA2

]'iVxG ;n]9 d:!:D4,wηk| }^ Ez /q4cCOD$_}it8@Bۧ>3do`\ 5ܜc]uݡoQ6ѣ|چ]rUDOfIKFco5P>q7TGB4l.nS^'~LPq&MAS,zXRYG1w䀼v#v]i1xmٗ ^Obkt03@IENDB`instead-1.9.1/themes/book/theme.ini000644 001751 001751 00000001020 12161555570 017475 0ustar00peterpeter000000 000000 ; $Name:Book$ ; $Name(ru):Книга$ ; $Name(ua):Книга$ ; $Name(es):Libro$ ; $Name(it):Libro$ scr.w = 800 scr.h = 600 scr.gfx.bg = book.png scr.col.bg = white scr.gfx.x = 18 scr.gfx.y = 36 scr.gfx.w = 344 scr.gfx.h = 410 scr.gfx.mode = float win.x = 400 win.y = 18 win.w = 350 win.h = 550 win.col.fg = #000000 win.col.link = #a02c00 win.col.alink = #606060 menu.button.y = 576 inv.x = 30 inv.y = 460 inv.w = 320 inv.h = 100 inv.col.fg = #000000 inv.col.link = #902c00 inv.col.alink = #606060 inv.mode = horizontal instead-1.9.1/themes/book/book.png000644 001751 001751 00001563413 12161555570 017356 0ustar00peterpeter000000 000000 PNG  IHDR X'sRGB pHYs.#.#x?vtIME&4=tEXtCommentCreated with GIMPWbKGDfIDATxl]$IjfY={#>QG>"@G`w+#L`QζTWefEx_lqI $in :眙 I̬̪41J*͜c sd|z1[$ÃdfJ9Ơd>zc󚗛GD/@suDT@>qo/3!Pp>G=(IUR,e;= 5~赿IJbGN> v4o=/G<^v?Ss U4y04$4`lh4J9moiRi>jPI2ˌ M O@f30c? t苬,3X=|9$"Ͼ7z]Ur7IsΒ{;8^IWA/Rd9R~^#k PCkRr~@24QRejMfn*FrODI=PUps34@2UYU^xQaTUf?t I\d4 0F&+6Jѓs95_~ԻsىU*ha~VUc9gU9-3!3L{ 8gIA> 2Zz"^5$ 7?mT !Y ߽}9d"$iNp'10se;gx dqq{ 3S8g^x.A}+ `nF^sV 7NyurV8I {QA{KmY| CG(i*TYt`x*@:t+D>_{IcCfi [{ $59V[=S9;2ygGIZfl粵鞕ǰ "KP{g XWJ)wdwo<%Nv_qQ  Ľrel%0H+}ؙddVN@*uR@ʠtd$%TolUo(B9c ,``,~]?}G͙+u]1A1HWRZ'XvU^s$kA=яJ3{UyB'w] `wDaA]7+&ֵP_#|ZYW;`F̟u˗/ffnF='bjf8eU.t;!5ğ{J{όjAH+ܹ~uPtVikTe {$; i4A03dkU5缮<97+4RZNI)͢oannApk5Cw9uAߏ5fRgýJH+&H""w9$JۥcuIZ(I XI-U9缮ﺮRV*w%mv[Ug^uZff af?߾?rqy{Tc׵RɮX4۷o?۟˷rX%*aOxo̲dLjϺ̃k)J9a@1lTĨ:Is9g]Sǯ3"Fsϥ*ND#!0cwqH:Oy:K#d4sr& QU!eeaԪ>QUUJf69Y]wqeu>}_?aoo?k^bz&kfO9:y5Iw;#|"aNm#V>*άѯ'N I ʭ*$QdScp]qc=#5CcU$00D-/Յ{?ޒ:6mx<3to~N[J2kuc̼˽6TUp;g]#8䜻q4^$pYU3s^GvƻswFK/ޫ杧.nbd~~}]ȹ5t` @ "[CoaX|" k?I)1FU^לs1F )繄|~1Fg!d4ws^ F.Q@*naqO dV'g޵G?277*33sj^5~i*]v\6wӬKwں9gjΜ=9oz><^;c/`77(eҕ||Vͬ?c'xoU9 u]ꎌ fEYU~7׏_+iM:묅~I_43ܻ8缓*U<{1&*+>FАn5?hםV`fo3^)a`4*YW-( *LAP&2:Yv]Pr) fݍ"q0AFcV@yfùrw'RE8$ )Qt΅ivBcDDo n]Zu8d7r=>%) jJ׬sOa*"XY8gTxftws70cEPb'X8\׹4Z0Z-nB;0*J]t.?pA0*R8@_Ǘ_?/z_wSU|>+Uz׼58lF{KħѲtu]I[j}"2.i'H ^AyKӲldC(4x@xSvA|c nȈA1y'w.4yRtV)ލ'57qTr$l\-N-ZaG_9!s9%BW$2J+auT/;cH8g_Q9guMseuM3>NvZU{Hs2p=e-9K}j=B@̜%=*a~]ѽ}y{iBE_.TUzhh33xy]gf1f7Š*fVלlZg?+V1;sμ =Rn=a*s SE=bd&1Ff5; 5jGu_81kξwJN}gg=xPr7X egUcSUH)y^n_ow__p3+.HN?,??%(yUq]y̏n$ȘU u'ILQDvh^csN șFZҜW/Q$:r]vBZTT]7L:Ut[ Y*3snxU&ѫebJ͔t]W϶< ax\sj$v07c%SEGxa?ys " ]WF}Mͮ80R+sFҲ0̾k=ޚiN@&$bA*%x1Z7:vcHeW{htaS'D{d+O1% %c%e:9b)=!7꾯-PfcmeuǬSK5qjsl 7sۛ$q9([{ִ BܵQ0jXlmkcݙVWf` V\٩Q4V593Ӑ{GO_߿(?b( "zQsw %t3;ywLއ|LrvTME e ݓTUFkMB!O2d:d/27\ YPUխzamJJ"BPU t3ӄ"&k@TV QTAq:zE޹/m\bd=z/@xVyX}բ<ClZ[ǐR몚8«P7_9g̏E^˿8;Y9f\=; ڱC,Ntw0$j%xz HYRn0늳|XJ#1U{ψm&q]O~vn*%%ҔpwW @-gCXBDVQǮh^~ xSk@؉YD脌Q &xvۈqC2ˮ|9DH`x#z3m؜3spc:ϳ)=J=O z13GrΜG_5ƨ*7˄^PwJIC7٭w~v w9z6;0=yW̼}MZe8Rkޜ.Uѣ)ի:Aj=92fNgNVdFW/>~qW#"Y?ҷhhrl)잢QmD8 S*c!PUf)|.=HϐGlʢK6Ԥ~b' X9n+>H+UZD cK6ʀf,V\$Cs/h d/66gڙd=YؼP[j[R fnyB5J7kA&?/uA)8)<L77Eqc0wdvZC()Xjy 1`eɺ Ȝn7. 'BR)<HyY(_UUpǜM6S4ܵR"OZ׍+%ΰ=B뺪 n-&ݛT[!3A挘c 4&e[&fҝK"r]9/wմy}HcZcTU,&s:SKa/?||yZm葖 ޕڝ`S?5OoO_>kA|vޤLtJsr1JP$VTk8F@U3}ͪg_W^[޿VbCD SHU5]_ẂKi7qn46Ši{1Fd^ FFHVW~``gN3'QRS|R$wƺىRdf56望#V%کE})f05ֳ3a# a%}x_F8nQQS:!W2:{3W6x?>ea!E<ʝ,ЌWZy6,om/kf dXEWj Y9!Qw=c9-$lU i[X+ƺǣ};Ң웋{7wiV7;[9{ ( vtps^n,Ug F}hK$0B`͎Gu~M#î*%s\X<+i*M.䒳Yq|h)ְ͝|KY7Z .yg+'mn 0[IC)milV n` ]z)x~+cyd-^U\6% 'ɵ)@S U(ތOkt9KU*\`%Y-&2+}Qy#E߶ڌ%aLS Hə6K QS춠E!1ؼE;31,|F,]^L#ꆳ!;F5__j:n[G'I}G3_n>S4FfNFqG XR՚>wѐ!EhVG([@PpVƈ27U0Sߛ@YPbVeB/nUhsrUAt_rNj*Ux8VǤ@;hĈ%9ֺ]f̝T#"3^1ƽwm`pS%`%<"do+еĵK)FES1c(+W>:<AuNiNg'U7ݷӷ?{GΫGf+I9IJe5' 2*DD$F ]nTI,VKv O>}_^Ya¯]D#ܶ(՞Ѻ5%U݅iHu2'z&5˛F?{{,0I, mL(s#̦׭6z4|LN0:M1^F=;,@Hc lDʽl ؖ$][7Ȳ,}w.cDӌ%1˝͜|qB_I7䢹 Gjh`0)kٽW,Hk% w?«ܽ|ZYJ mb>wO᎜X5%[oUB_}%nFڌ,Bn{VYzM6V |k4+Ng8vɜ$h5s]gUgl,acZ|kdFkfˬJg 0*r8d' 9s]=ArAYd$gܳK j̺m5mM ceMwA|G(%IZ(&D-=ۺoLǣ)b^V7J% #U/[r]«FsuXXW!kОZDY.j\mlN pfn4AǧJ䔂wtÚ]sE3[q{lR,i1Bw1IQ/;@xjѷ.iN"&ƒ4?tb)'(K*B-MɊX5̫VCt76 hQ&΀@ )o!U?\5+2')]9ixq8Onٮ*fVU8wu/YeXFp[dYoCL-yLO1JMnD+Pqftٛh֬*`0ƣme g}Re}'_.S+bƸ ,zҨn/ĕW AW%޽}fŏ) cEuZ{;iQYoQ{\3(iwb?Օ^B#Ы}a}kM%1^E- 0rGj@C #= *9-= 3tnSyjݗmJ!j  bi6e7&i&)ۼ +eSKU9r~XsvG\2/L(kΜDZvV- t򒅁-՚.yݽ4Fl7= El[HrGN^QBbmWX0+1bK@#~DOT $&E sR4ˋ*de@ކj ,U@mA.|{{a?w1 .' nO$Lݨ`]%m]-u`fiw"yd[VEXuK6ĻMNY&2+7v a7(c,KLU VZ:H {x/i1ge]nl-N!WV C9 "uofn8/n׸:K%>fn!]H.a񶄸T_HF[g.^Ԝj}6l&gU;Ëj~mASu mqM}Un +6_*LJf/2-vbu^n %Z&4"$_ú.1̝pW_ JRV5CwFT].&6k]U ºZ;s;b,Qz3Ujw1-MeWtwf~:0k3тkJ2:X9=ގCts{TaY$`]J鯐n< w01p@čSݟ{hئTmgsYXnn}E m B¬Q%A Ћw]9-ϿΉ[]%?Mк .m?yL=^[p ?YZ1TSbgޮLLP4=t޵mE qܤFl4 S-D#2qZE|K9o¦E.-cjK~ gb_"WsVՋo鐒)dg\5eSFͽ0ˠ"H (#r`mvb@dYX@2r/&9y/G["`c^\16θK!,P+l+h;\ΐLqլye-'J?trTxQlʾ_ϟooƚ'B` 1q|< Uj? P]iq]'c֠3۲ᩬV/<1T51Nj>NJ6n[@UL(Z۬dC{d&}'*jѣ&ntxiGSL*{mpoJ=!ʲPJV:ގv{{{0sC`(\o*M%6]õnLӤB6=1@awvvy㺮Y8͈*ETՇ,ᰞi8a9;KZۙ,rDĈ;z$GX+KUD4cÇ˵HrZU\PBobG;mdЍр7k]ff1ltU%J-U :s3e2-0a)ms!Hd Y>w:D}TZxdN;[c{ͫTFsZ,Yp*xھh9vCEg9gf{X1YHiRi50\vp}G!fRjZkLu9cK{зuP0ٳas2&0`oӆfou#cl<9wqTe,b}ޮk^A&(E%tUj&. ͙`5i" 8$\]PKm]}TQ;Oh ` NU!q<38ޯrs܉ PSc(Unuڕ8Ւsnu71YueY,.bWVjM"HNU{ic%J1n>*0Q%xBZZU(xPn q ЕO, sffS=BF}wűȏc= >Vé̫ɆlmQ;oŕ/#H?|Z.u}P5xm}nƲhʻ +tVEy1RҀLCt+8L}C۩fSUj/쟜;[rkDew lRQ|q}jY1-&|X} & `՞KGhLSuY9!Y9$)oF 1br4}s]`x6K֊pDP ,hBΉ,>9W1_ uUTU)8ql%_5B1avY;^ [0;\ euaJkuu](FxcKpSiǑu]v]g[usV,MTjX`2|mb\Y(Io>u5;Յi~XcG~qwa26t &K c>O9HuUZ k?C/lZA,11I~6< pe_6\kCAf;PAFkC=fsk%}$mڣx9JȍR4q]u`=іQ%Rf@NHF!mȍ̴<1;;YUCR2ae Gӎ[RB 1rzŎs؛CdK8WgDcLӪ XH:O6U,O욪:ɧ:ԓ-F$LaRUAȰ\;̥9Vx?'Ϳeޢ5a+`ٮ"] 0Hp 5S( W$ښ&;Fpᣰ>T>,SmE>yZʆVݙpiiS_ǹ3:3441[B;,C/8{S6s7y`gW' wRh[u>2S7HQC각j-!][{hsxx3]VX;%.oE2ΨLb{E 08)6E3yoeVSG~NonKaԄbk4 | FVNt]2C汒3Eǯ l YU|eWsoB0v9Z7Oؾw[a^sbr4; d|XG6u%)3>8qpއ=@>itj;"~gܪ{-o43Qݠ|T2KK4w_js͖PoHw:_=P/GaEz }E{\˰<82D[^t{YBHq<7z?j$78)>d9lΝ>q&h2kR%$}7ô<{A!-Xd07il\p]W/6iACԭo)f!,{2~u*X`vl[|Hp@3-3Km|`mKܔu~~"W̥=rݕ$Tyϝ>LoyO+w8$KkRvy %Fo,(7?мn{ m=,-vy]˦,kyv#y|{{sx]>hyqY>Zk$WI97fqy4juGYEo9rS/i* 歈nz}vΦ/*W`67SU&ӽ`6-ZѺ;jo =5Uh¦zh/|kF%ܬ"ᴙF+hM굲UϰgdU^ ]#eb1+D?]#>E"T4u^qDrV\jUUU#r>{ di yŇVۓ'Y.\Nk nr"U0L) K%L (!F= dxTw_IyMD2w՜B3|XN,HD{n:Űtk;{}jp &AS<@<)Ǐ|Ȝi&XjE@ly?~^GDg{Ly#H:֙䙲)s`M$Dkq3Z*eRB D̠O%'*(0,OIa"$`HKdGb&Ҁʎ10 LjrxE d9ɻg4q)rjsx&ZȥW`؈!q9aڿJdf(d iN>ު:53Rhw"RT [nTc`m;)u(cHdߦI9UJ*n˗5׏(Hf1`+D@&#V X}O@8v<.*My6Ӡ@yNL+ [ : TKM_mQJ|:0 7QPTY먐qO8.sVF;17dYuQ]`?[h}V ̋GQsCDE.L{WRVaYoZL=o٣'"TRg V<. H bZ9W?MHBrSvsM ;Fe*>UWZJ<]ɉF1w1,s 'Kf| ` UT6E/> F֚T[6t'.f{lw68؃;d:J{?a",ҟϽT$ ~akmӝrsfX/e(Si$]:Xg.e.w×ӧ8[|VEUp:=BH]&#"Xٟ2Ϝژ"*w΀ řa Ӆa sg!~w fN7:>wdLr%"ӧOC[n1G!@5c%;9q*;ˁ1ՎBs !/dVe47 qQU9@?,jQXHd˷HTDZJ{1kL4(HX@x[qf57zݼiYOj /yp.N5=q*ރdNϿ_uR9S8,56=ZQQ &2栀@q-<0 sakswsSf݈"æ ȭ[i>o| 4Lzˎ妍"g\3'2p:kK"ܴARE1̠d ]s<(&i,жMmfԶ^UTtf%"j*Ǿ=q؆Ƭo#IDZCaPa7֦pg$"'f; ,S3-zk6FLw! ;tU'wu1MUibDDma¼Ϊf!5CX",DT[Cyș˜Ғ$$6#}HfLR~ԙh"&MnuEb<Ĭ|p5 `D![Gtmg2ӄ A8NYbv&1T6p܉Xh61TxW8>ۘ.c 6"|}_?ަIDGS #lpP=N mRuf'CΑ2SaeB,%Iffei y-[D;OϋMyoXcA&R`D8!n<-i҇Ŭ$sC (3dhT9 :x%3c64J֠RQsb7Ք6#6b%#nf!(Y-Ib>)kP¢EQLLG Fْҷ ÆFY~?> jMf-:ϼxzor#<܄dcR35'm:h)`CBZn[߀˵ XC4XH™X1Jkmۏg#) ЈEDJ,,(3HҸeEy.q4IN*pM Eb4O6n_|J3- i\~֛yխ慰o`1/{?g˿$Ψ1{цiI ۬Z^89Yێ/KTsM7Cw%c0oV3돨 (OA$dbfaۤ`4NǶq;|1ZkJp%ok"!3L~<DZq\o7FΞzR &nLx[pzꋜ~4ߨyCoa] }qoz˨?(c۶_~}c9Bu9ʬe{8Ž}-Px|bTj^V [Y}%tUoۛ3ea0nJ prr|V{X6"ꛋtu0 C>9R[8JLnq;"Da^(r R/0D-;7O./XI֦ u6g&XrrI;KWdk72U6+*gȬ}P4OW巢O͇pݾ3?| Hi>]*ӈ-v!x<Qlc ;màWRU:N/JrlKRR\RVhoQr”1q'Qi9w|$f>h=i]XRJ寑Jhm B09@ ը&M[s}^5Viǂ<,5s4%l u}%@)_`U> RMZg,D=L ne>t^U®@I׵A#dPoX$^ip={}Y<7Ô[]x3/.nTG~ף1̢b\0ғ㕧sL6*|:szXyZ%d&ņ2h%;j${k{Cэorई`.H玤—f2SXU>D"ᤃ `˟))q##bt1jD/ i\"cFDDHTu u0-&=Ђ9 EVi5m!j "Op J1,l,d:5<릈3*;U'U(MJPG撽1{0yӭX,>T*׆)Rž$CR'ҸE:V^jutXuxW E2 s xچ W7Q x1`h'm_nMmr ]| [uOHj RzDj']hVKOTcAqޅ[k$zS:0a^'Knbz*z=g5EKCdytEZzoG dbpilM9" pSЎWksxٜFݖ94kUTl&"f+19yDZǝC(j@Qs4fPF:u=TnwnV tO*n4ZW6OW phhxS0-w6I4ewΦ6u[6q]S-1[Dr[ի"Po9CF2<"k92$k2dgf­Ӵ cn^C #`2mWUC2XTÂ()ֈ92"#M7J} 1:nN6窞hnj3 ħoU`șmWlt[:xtS;يpU44?M$2%$!ќLNJx_!E%IZzkbv13#^yQa|3 fֱT`)kKCu(|\_e/mu"˴lR{j\tfXMBf-+i3)5uc \yG!)‡ a#(D kg~A¾:j=%'QXnx8`Ƥ H z4["'t3c'p7&tĄqP>m 9>?026,XZkE[ W/4,fp1&]-fd8Ny 7 9ִo}?7o7"wr麵O=0m{Iׯܟ{W=GShWQƈ,=mquC2H`Qh?PxK!:pesj&BD ˉ!%&x5\~¤=qȰ"!Qb27YX E |Zrgw^fջl-dњ83eb!"cEMC$l,o$JrxH^#s.]pQi*-$#ztv̈́&t0PJ1en3ƭD.C ' 4myfMXX<&%DܣuqrbҦ1h6"1 ]+  oPUܙXl&G0XqU4Gf]zWQzZDZpI@ᓔimm|]ýyxW#^fR 3Qu!D8+@sw{IMn+~xѪ(e i?)>'X uJ -dhI?GU1 -ƋR᫊ fF-.!7;||x;I0\9W=Ӎu(wnJmۖUcudKbvDn窛^UzѢ(u3wl%SMG_/L1G ƭ5QX9 c*+pZpzgFsawmr$rrt,% n Q-_+s쓗vK\]ED^HHQXOՈˢUg:e+8dE|_Kz,c:g^ݍ~;ÑuC0~II |kW௪m:C33$ksO̜V;Yl"6[MY6<:|⑱# 9}HWa~sO~Xj%Q1<߫FښR7SS*[9QWmk]a .tnl60RDr3=S'Dט nęj d-fhjŹ%"ʣ+|d9 j-qB^}pBVFpeԞ~'eOi/z=dMbY}%jrQ¢(VYqXLk0t@PFo1VW- Vje|/eVԙyPWPJ ̱hPCN?U+Mq}vA 0gsU˰[}a<\ǃe>q?$ϦTNZw::1œHba4Yy: țeZ{G".g}Yɬi}JɃ #(gU[,:+_3ȓgtM۪yy_VDUx^Ў/W⯊βyC|ue.⁡,=1RN‹ |}13Y&F_?,Σu9t%*"šm yHl,8 DAKA>H^D"_LU@Aj:[۳yb2Ķ$3M|SipwYZpK5{J9fBD7b-X\o;T߻0p>R#V{0"]Oxv^ VYOKTņl|sEx(#\)zws jS|1`)+^r[koa4b/AdW&Q i@0$E)*8QcAyZ13SQ#eq`eM]3csV4.&i:҄G?Z7vy=a]-MiK@p͍0 |jZnn(joQKA^x\ !Ϋ:}ZqĬH 5߷̭6|孈)iE;%k<goO<#_+VMު"ou4ύimoѧk051nbj3yGjsU`oheLp0|zQj2#Q@w]e &8l:^rGk23FSI5 d^]LU>+e}n`9䈃")]@Vmp63Y~Ĵ6L Rb'6˘8֕Q{ͳ Jz5d>r4PP#EJ13Ys̓3Pv_8}V2b:Rݕk{|BA xES'?)264FE1>ӻ~l ٮ5ˮ< Qy;~? ^FMo:/*W ˭K<RUג? Tjs{QxDa`@)7 ÷6Lj3\ ԎPǶ}m;d2z2OtGO}( Bٛbc6Auղ! +{I3V^ɝun4!E8ݖ۷jRrYuU'H3Lsc2!wl{ƏLBv׃nYdG@G#xb^0R;'y]@ոphW\zQ\*3vc!(uw23ݖkkmuC6YǨf$zb  KEuO/ϨeH5+LWFATTYq -ml@ZHjD c>_`*v:1MoD 1nA-4W2WZ9ᕭ:/8Z+BpIG ό2f K(Q7$\Jc֚*+Qn#Hk Q,Ξ`ZDEb 9Ջ z-cؙ-P9!JjC|]>z2ΤUzlv7lWk+B_e/c-a!Zok*,NB+iLL0:8$'꥿S'x 3b)5!}HA>}}Qfښ|cc~q_igmMMXԤ~%JxܬIޞ'~o(q0p!7˘5UM%(0,$zӹYE`oC(s0Vj]⠸۶-)6wA`nۖD9P&0k"f)BYݬ{С,dsk ENLFA̲rRр՝cl[itK/u +[h4c}Yt8AY*>qɡW`F. E3`%Seqac B*WN%aUUz 1<Ynac(|GI!3wdEM[t90aљy 5^A'F\iOΩf99k[zIOquP;-_O83Tly윇}~Ѿ2NSm{&7e G&bxr:XW ٍhAZj AaaL``)yRI1IƼ$bIȍv}L+@U5%#Ǿkkșd=mjWX\aSOYyLTUi@0~zL5^`߀dم@xMM_׃dBUj1LUeA,<(AJyί&yaIPs<4N~_s+r5\'8GQ֠θSsZ GQ ͐`w K,2T?rZI5 5w0,@ABҘ syYg*2[JwxEtZ!̐ q9_ ĩ\S;PzE1EVX)_k1 ˇ5wMY>2p0ݧqz[>ǣ7ZɹO͙Ù"Rg"x쇇nVՒqhB4-| { e u t^QsDR0HeŰX'HrT'|`DSpP_RPv7'$9&_sm6tgr#QщM57@6 2J3$Nr{ZW~]r?KӪ~|ϝTQ`ҌYno1F Ur9W!L3fLm}ʧƪ"1%^]_#q8COAJ 0!O?d< XQ~[X- ĭ|VP1h7oo @WAeo' 1WZcQ<Mk Ȯu3~DAɚ/!O喘sd}C7e-ך6"-{:j_W\%.ndXNmCk]=Es\k7ZS^:Y$xܜ<פ`(h£o1ݳF-B vљN.+< cZLfN"j63kC3u%ȃz]7-_V]zYOhb"e*fzYڲspsɮ@Fy%ھK\ zF DZUGO"Di>4)m `{.K J?`$D*ⶌ#|DZ8@eyj3(ڗULÑpJXb؟JaNB9G X3J-x<_~?oG"Ump&M35>s $pǠPpc+OlxOVS A+fN.;! ;e( t]hGh TY#NIoL[l($M &'ԭFgu\='qh*#ho9M9$qQudͮx5ow4Ǘt@p$sIn VZ w{1rFxFɀ1RnNDG(7k+A#rt/Q:HDwDf3ZaG$;9 AxGQG>jD_x<5[93!3JV>?w}M ֙vQ|RR&s)̽mlx6A` aSwWaMEFKU3i-D4ѕR>PlK0cgjcG [zm`S')17ΦOSq<[pi0ڹ6 iҐ޴!e))xjURbI}ULC{c?YTBYzFl$ I8Ebof5j#,M>_z* s&1B[ ?2D.BDZONURq5=* Ӆc=a.=aPHMȈBW עE,4nİcl6p8)2DU{>7ec1BiS7;wIl,lv@J ,6bcz޶Hoҷi=0s!a#Gj-$n_q۴5yQQ7C%=`Yq"\! ՊT7>m y=($Us^D@TN,}ڊ1l0{JY)kYfd]CV5d]f.xX86AD9b.Sқi#x*EokL+LM 걥s>G2KT>4%ga&""e0ba퓭Tru'ayc\BХ4wYwbJ3Ӄ|.YGW>KszNZbosǥCVYa4fzqqK?8\$#0<1=wdW7tH^4`qw{@3hhzCPx rcݺ<92m`J;$"q4vp5S TFܤ6m"p7S"~ ?>oe &/_˟~ٟAf@[JO[k4N7-7/*&Ǔ^ }vkejjVTgfm!~/VDs V*a+ g5, ^3*KK"ʀUm5(eIB*SA6d\@~">CfC-^̬2Ҟ~1fh\htοsK(L9`Z)<#{; RLo<ڜHk pqƉ{Cߘz_Mb֬r|}ߦp'Bg6ݤ!VC.6f}vӿ\yYZedzo5] k:]a4B` "o?uUຍ`Ŷދms3p b6& )gby:\6gq. 6sKN7Db$ ^eRWIZ "IiϘoԀ1SX=V%D9 i|(6| ^ݓK-s&a5\^s^b[7t#|-+KfD(G+tQRebf>nX-\ﮰ{Ӊ/>qԪjx3ҽ)O̹5f6:EKrնbaJHrG(FL̪IbJX~1a, % c]OuBp;^s+TFDt:Zќ/X@lCf2U/IK\U&"^ d%,+\V͛HSyԶ>>]j>""q eJB0S_@ʢ_%Ky;ܳ |J# UYXV˱$xpabϬ}mB 0Uφؘ^?FiL)n@ "5{L3֊4^r-n3T΍*Dd1=/*1?m۶%Bz9L9qkF!e_GE`ͬ ϴgT! Hov PsQ>^WެX_|j?iy^~U;(%pEILO|/p W9[L\rQ73ĆU`}3xiknV&d𷾬<Jj%>}gWK|Umv[x iL M}%m{ӳ0`;/_2pQ',ecouaawCD RAN#qq#epV˸{&9Dj3%XUׯ0WY6$. j>+뙬 bIU $' oq/!-A!f4[A5USRiF`Rr8kE$3wUU BQDjĈȜ^:Wߩj70C;_Gw ~ &c|dV|ЭzԕbKޒng5}!_>_H~Woj/ 9iPS kwN/jzH/4Xk˩֊J+6FU}sN^s{ˮ{QTաy)bq2cwJsZ'E#&(mz͍ܦB>mWٞ>Ssp 0!nD)L+y?f.KSx)Y.MǤ0wIg$$e_UT"YsZ倅c 8BdϏ M2wʻlڱ}FIo8B7%t,yd |ƘymgHYYTuʋ8QGCx)c ۸֭9}$1N ffC9&|ϘƛKضuFUH 7&Qmmc}u8YKs2Ӝ.* q19O%tDb!b7m(q{&@Ȉs\zѡl2Oi3<I`s3s?sʁO_:6tom!ޘ,<|Bc(朔MWُ#V ڎ 1dxU5gϠ=H {;ĬcXLia^9fu:|^Ec`NbJ48xhg~X_ kP`b$&{ge8`}rsfuR "ps -{wbën,MV]cmV4K_q/2"Lf r-5pG$ ՗DFtxP4W a  BbT|])f* of, ib2}1e>~@EH, e*]`q^>bqqVnLV-ŠV|U|jM]{IxrΝM};]PȆ 6vL_6UD%^4 ."vҮ KwWSL 䫲U+YO`m[YϟmE2Fp$ 73{S@3HWI3I m8JDNSq"bc\Eb?hNXp3W19'$fB$Welf6@&fF qo8lWбY Aқ5j(:f!=D<@R!X ~kclVk%<"q<[N]F=u>U6Yyu|x mn * DC!4!|V(Hrv$@eslDz8ŕv1͕_9B  Xtu5WZeoCMK; ilxSlk=d!$ȇCGАAxpˉMJhs3wS ^oM׻-ĚjU9ff"/ug]j S!"LZDm siμavDZﻙDR hDiP1[|hCҠ42ff(*rښ{c+0%]&KyAN1BN|ܓn!V3Qj4db=~E̳+p?Ř=,hnIz9c=hko&!O&/SAbU@5$5>8\(İ<:Q.>yK{nw%x̬~}YW%)a-*A:$Z5Gh9밄wb]w<-vuۖlfRD7XV`m.9>zf1'b*B¤*6q͗H_8e8, *+uetUSw3rqOAg}3jjhq?1,S\nc4ÂֿңzsէmZ&V!)~k^Ą<La>%C$C0n" unx ANy<K,˥`RHEVȽܪ)=:GB e?ks*KݾineE.qrXEE+X)DQ5xp[If_7 ⊛P[r bef'e$Rb+y1;۶/3wIXTY?[ ӊg0x:o[1-'ūz)y6n6of實_bg? yc}L%z^Х_qsyEKhީctHqD3宗u`h-20|$^Uu' %Cn׮#TA!v&vq xs$W'F4ss3yG_\ %ȕG'6 e44i=yh!W93fRcV4%f,X",֠q;(>+{83f|KͻCzL,E@Mfߦ"VSXJBQt5Ju}Q]$ 禪տUd?RN3~.&4ݝ͉u5.÷sۣ}&>=Y[JǷ1hϵ9Yuq7ICؕ\g,/uy=D/UPa!װhr5i23) qlhFlcڙI}xJ[ÕHU<%$(t3^X׶߉./U܁U8,k*BFUKUG%w$NC 2lYM6]r)%8T< MY]M$9I)mk8W[Qm 0aYI}v(=;LfdFM/^@ٿb!2bC7:`oi6]1y#f=]74? 84yBc 1ds(( 1t3ucb^p@A:JJk!"EX b]"m d/ᖘ?Zm݇J% cT3o"iڂD\2[h6uA{_<6@aJIh[]E1ō7l)*Z-*a~|b΃E)C͝x:Pί.pmmc;*A!XF˕ L-(xd5>KwmMʅ[c#enHAr;/ɕQ9bRS RТG-OeI(\Sʹ,Q!2ש7CYM%ιU:>fyp{)A$!Jaw,dfA.cu4Q~Hx"B3ClC$dx]85ZEq-p"c ;Y)K*z`hŕBDY{f^-D9)b<g_,C]ǫJ=p %(I`ƚqGrbSZFUE sڜف gb摝 \^EX"u tьqwra"Z63-o=_"ͪNSz^UR C"9zN,L"\3-ּt !8/w.Rzī}T07AZ$Ī;|H@V$]̔3wAv4hRL팝Z9 n-h^ZD"h;z3Á%Z^F .++J+,t%rf.Di(RnOZl:+RN"Ό[c:SinO0#'[W>ͦM1[~Y<I"smׇ]IC"2ȏ6!3cgIFS1. Hr2}  ~ T%nrb!Z5Y J UWhu>.Dg+4yIY!"<‹y d"z։g@2] {*;}n7 y3tI;:OMsU&d[A6q FVPE)E煻Cnƀ,'`~oz>+oG<[XsmHS94D2t 2)ɦ pwxQd1L_4c8WҀܙM7r1ZUy'DZaNchlm8g"=C" sd񭶝VOy6'2: !*X鑲Ewn3O"Sjf^k=ViZ ^b6΃VE1%EGủ ,PFIj Y=j9+J{ ^g7mziHYෘVc vR2{[Emm\ZּeWQ>zĴ;%2T 4d}XnU{!$i{=bױXq4ocAA:>}?TGB*;aq/JT#s0U*?Y|d}5(1Uc5Ru4\_O-SCc~3¿I~L^3Ý}>/|YE/Mx o F@zIK|6hrSzkG,yȬ6q\ӽP_d ]R$!пrp*KZZ/V0c ["%[ ӴVZsi>'Vl$}.͎槏1#[u (܍5v0ihZ⾌IXtT8Z-{Dtj+^&]L8EǐÔ7]Z"9lӈCUh+.9E:tvIINLN'J V̢|2fVsl_E8P!QB=VQ!ONUY D,<]d޼lke3=le]ߦCz sp1Vģo|@lJOjQ`_uͪэ"kS{B) ]-真ZWN Ӷ!,"Is VVCi-Cj%Ni GiP4<w}".,t{opw*YGm?iNg?7ro ?3v*g/ߤ]W|kˬ-G}X_gpJ&0wݸ>V}F+J=pX$-xOb풨-c?A"gvu 3\&QO5AV!ʑ3]w9,)FFJH* 0Q9ly)T'9)%*x WRRcl6/}0jr|mkWZB;x#i dQB^}x=z]i@P _ ]Z1}v]bl LD$y; u@G>Qx [ Y|?Tsw/:)I//*s2obߨTաn T7U75?v*s _t݋X0O  u\ܮQxLtFR|^;VVƭYLe~ozEr3A [=Y#0ld}Uě:8}OB`R= Ռ0Aj3T[syMtH c]evtr6o(ŒE%BAvq"THM5LAVuCd6hw8X٦kUԯ>FC܃oxLz4j:L,L۶'mB,gD$;r{W%ܕ3>IZLTe(1ǜM^ݺD *-F 19')Bcs0$UPwK<' %xw/J4&^wpA"$Ĭ Ql#K l;IM?:n t@UT 񗪊*f"r 0DEx|e<Tx?48aЗ;yjBa3|A6BqIN 7t0~}K )\dRc3yc'fen+[>fNFaBnӘ2mNwmnteVu:(V,+}݇z5GQGĒ]csCO/m*#1bEHC"%,HD8@E\Ea#rJ;ZZsNѨY=+;zu66" r)Qx3W>=HT"Xbirlmrұ{gfT Pxy1J0dOP Mcl*.}hhjp_]*#^E[{Q扄e:MsC/kUfq8;q9ei^ baĬ`B(=[)kUٜ"h! \(usSt0JJZ&Z+c[U5IEN `A4pj)LPwr"yx0eQ]>>Lp, \)F~B j,PjFC@ P8h隉2KCk5%}|Kq ٞ t}`<̫7ϝ*L"3mE{EfS ?LPԗ07RkŸeCupp˕l\ H_9?m%b_r(+քfN4y\0Оׇm/`,B* :l$. )\L[Q!# Ti&V|ɸGTT.xG􏴍>v7|7>C8*@XJPAls:sNMLvԝ"PV Cl+oxg]y%&fѳAL,J wG9S0$v;G>B7"s 3̾$’HDS%JE$VrTp8OQ$@6%#tNg녧SSV*}>9E@Z^XgÇlr {ȴEƦTS!s<%=k"16 f6xl SħZ0{Nik"J׉[xL57,r^e8<&S3Ȯ^KP)bǜ^168lTyݜ[UnqD[vN=Qf 8IA1?ze_DMh%*e2<*s*z-Ta܁KTfCB`9ޜ,VJU7C>=iȡ6gEZF[4|$' YSIʊַș6,E4Xp`=X ]] LABa7s!{ntL@BI}rd:iQ>߿sNhA T@w]>T,WUM.os.q#'V*mxEٖN;+qͻW,g)̌p7!NaX(a"U^"nmOLlMiOĎN kS1EV2 /Vm2u@?5R1cl__QrAk"D䗡Epqmw=IVKDNzz}};d {*_R`wl;oۆNw.rEMyN"3)nVM.SHuY ~.Dȏy;bj}*i!mof)y<,lCYoOԏynТV jiYDoTRe"{LV06k$Tc#p8w'/h! 酓ţa~_|{bA>H|_fK{mzJoS_DI30 iA|׎|dgnRLk)NUL&^TP;,d F2c%(aøKPJ/s hP3g2Ձ4"D[R8jxrIBKdZ`ʫ-4\t1rL,6"q%9DQ$̤kvx0}}\YsqL}nH> yxmf1ƋGW{(D}o@HN!<*#ۤ $sP鎊Q#ZRpz5vjU=9 ku=m͖b փfέjљYI>9EI_N*jҗ VPTP޲%Շ>9 IPl}KxѩJHKuÌ|9oԚ㌖zQ6~1wSRl>e$$ `OaOjA] mɒV.ۄhe۴M;"=sHI-j묱N`vqf[T{0;rE- }Ev%Ff֚c(kvߠ`Z.a\3ЃX@u WR,BtsQk fzWU7g(Y#ڛZL!RΡ p|}yf}*?䩝-{CdrĢ>ezbv@,(E=N]|j$xy]%|gΰCI>h2pxL$!>@f)#}F)\@6r Aُ?:[F|ZS8Rc;ٵIM-as)띈lV{73Xd^FqE cm#))SQ3HXYU͗<\"~*V]OAW {<ւ㦛fO_cSOmkB]/zs׋(*Tf̋Ω6x=<-|e݆P+ߌckյNWoh.@&t,kD3|µƍ@ Ĝ:YESQf}{8\jfFqI`YX\!Lɤrf}4+u3={Z7쵻Oms5G3 R5ce|r,A9҅ ׆0GK_|l&ZaqoVU٢"p9yHr+{Sn\$tc^㵦v 6 ҿ,>㬖1oEC]=E7%;C=GCrЍq|(q-buVՏJb"(q\[\| [mO\EraukDqᠦp.x!m׀oȻ@DxD>J>B7" %,2s0?"ݝ^ KR{& + ?5 3!tЏaq̓xA_ҳHfe Y{.PYbmۄmrŗۈ|???iRcАAL6Q 1fm۱ςTY{assZ sen \~ҭ;3u&p}UZ)%*wɶ*3hM:CU7d*4-rG7aBU\쳲w_AUfy嚕k'Whpm)s>uWkx%/9WOng-eT8sLRT]Vws;V'e!,\_~; /C+&A!'&?6Ǐcr\#sP,v֪\(h] Ʃ Z@q^ ՃuPzK5[RrrP^=hRy_o^Ev%ůscx&PuX *EP<1#ǭn9XvJ DѠ[qQ TC +ܶۖn첦Qu9IQb˴*!%kH9"w`~ Ag+ة̾Kcln aJ`?? hYI;R-#)^4s7C(+Ⱦ"Je~-Gߐ/&gd? l84L×S^l:x&O./z rQ%sjE&bXCt>b !'Rv^_S+3֜"ܒژ2U֞3'u v1^3&0U-kM_LI_F/ (pI#"DuyiDAWܰ >`Sх^S,,Fھw|JW\{{AŒ/X#gW?]8b?tj̤(m0b%I^e ^z[d8*dmJL'qϝwK)c|W3#8anv |S}}99H[6)(p s Ĭ_/D24#"lUf V16 pJii1 Pm{i8B蜡2B`c EX"Ab;Zz6gn}zoeIî]`u#:+rF|$5;ݤknۨEU%^'@1=Lx+8b<ӻQ(@D R逡71&͍.i|'rQ (S%ġ#UEf^dL;!!aM#L6:={fp+oKӨЪCIs΢WF(=2 pY`Ep-oќ1&ȴ13ʞd̺ r,;g JxN^=e[975ےe!uHu#=o w@\ÂrkÓV#IMHa: 9Z~ua JZnWI[32,aQ̼`!L;yt]Ǚ/L4W.> _:)vZ}jL%grSřKC;_s݌/$CτG'XU|MD(p^{b9Ch;4s^ب$'|gC͍zKᙸ,P{] v-ϰPS+$¸` "Ď2);ny<WR{ F0"wpwy= BֹTS`"7\0͕t81SXBHH􋶗?8ր͹m/쓪J$a]C뉈IA2W)껈,?x&Z!1I#V~& IAv70|NAyWfTG:e>8Ѝ| ͌|p܄<sL 6)hhiU#dZ^p }zTGd[cWڀ*@Ŵ%J+e,ha*UmV / uUma; 0-dNw|u6+ATr9q|[uUdGkt>;%C7|m |GbT^r`iwkl-%dy4%K?oĬ%$CRp_%x3:Py]kѣ4U0N!7N׋5tTev3# #mv @KlUQѺ}ƚ s2k'>打0qQ0w{2O9̅[oS!.7)rOd9"U<+f}'q`m_?^_9xAH%dHI͖d1  cYghuޅ/"<E&k{L ,*[a^wl-hZ/ %*2(4k.O7Άd}*[ض35*BOuQl>ϲ8U:*D ewy#Kie #g?eF6/I7rOHQf0S8NR@9_[@k{69\ir,n~KP@+r3tW,6GW"yL#˒Dbf)(ҍ!{\sG0)yz1-YX$뇝ĉu"%ԜO͚"/Q'2^5,rMhEAi~$TllmH\T |E52=_z_zn/Hp!9ufvw1z[N+7K* Q(T$9 {wUNOwT퐶"9:\꽖,Z;bӠ1MYRLd0P q{C쭄N{Ʉ Yxy?Cxi i[pF/"YB(BtE COjn@(OC"4ɳW%'Mpz1 U^Fj۶ oqwbZ(>Kq2u?LU[Ip=gD/aԨ]Nφs]G i{@TI0]#M`9]§x~]@i _"dFhKa#Y-ei%*8땰z/TFѰ[ u3D:/|3=8Hwkabɝl[/|.FXgϑW Okm- t{íe\1qBӧ|lֹW`NT01`J,ľzJB܉~5vjc/ 5NK?f\1oF_^'iYr=kN>J ឵B/p|nM7-zQo3/8@ħrHt2>J툡bkx| u~4.o$bj|`(bo BK^hⳉΪ*c?;FSzZm]-t)8%1{-A*hGw%tңt@DŽIQyfƌL1#tǵcD4MCoIEϗl@5{_UUDcĻC]j]oﯗ5z{0uARS uc[w[QnNsnWMLPȍ$sZ8*c] oA,۶ݕf>Ʋ3‚ƪ+0,p+gy;GhBoEA,AnSK$l+Tౙ7=t%sܶ-ox"@OVB 㱛(=eWWKUK5D6@< efC(H:(gp.4Qq~BFozQ3.kL3'P|6O}KJ,BV? &7BRiIꪳ9:(DXtfG iw~Cu,Q"tF}'ݷB+)Z&GIa꺏(>7p r{O-qR*Ssqb+FˍEzk4c|S<*MOXe{æ=1s_FӧH܏cz㾢\&hكsD@,duN(ieSk$צyZBznqJX3OӗJlC^C"+uUD@c۪C D^JF!,,x j"s7p!UU!6&|tڿXm*Q(OҽV1A̞v,Grb5,`$[P] &֑p=vbQV??fw[ T[9+{+} ?@! YXXky.|ٟ-7|x[OOlP7-~ەbˍ_z'I0'*Z j,I(o?ZXyaY`L3ygho-'{GpOeإIG0̂yf)YPRӢn \+r8Ȕ<zD8VZȊ٤*  A%&( 5Bk{Zu2#2 !wvd$P^ݏcyKrbqi P76/R0H0/ ,N88L::2ƍTQWڴcRElb*KrF\'=y^}sjkOR\Ì_/oÌoMֿ\1_i  .6ı^1Ea`8+&V3X3MEl6]O j$JYxАfB@p:Icqt&"1}.(bqyRG(%,)a2›(=u&_cl*>g˧afGpbr(WeCҷhÑԙ-5 zfH.%TKי] #a{yPL۹yEpz\,, %IZD6U 2KQ@W?m:cAG7"plG! {K[ ”Twꂏ}ga`Hǰh: ʼ ;EsvV_Fρ=4Z&Um5;uٔ]U !U_]g=5h<FE dYCk=73ruLsuDyX'^Vh=KJ1cwdPEO'/6(4xq0?R**Db9X0#MlUf E6zG#-0Dfn54;v+6m/W iD&U MB:+w}/mofΦ\f*wmܬ{}+$*RDFbJd9 Uq32EXz!RrB$fj',cQў>aݫhJZs"[& x.w̃ &]9[0l__~X4?=~ޟ8|k|2gHW2@$1YM0VdKo?D.7]փ oZߔg;4[%W?_]ԓjf4ѵPjI|"rM# EU{JC Qͪzj$}q\J: 3U8GOgLR6KI~?Dj- ĶL0YN ep@uLwpN%,rvfuUYS$TɈc^O_)9םLX`?~렇^վGWkR5 )CTsx􅢪! b& }.v8C9PWds\"ǎV9}KZbƀ#݆_.Z-9a2-Q~e}^'9D`0F8`[՛m_ xFp&mݞ° ^5wFϨOox ߽jws}r;afqBݔǜ7%Msl;^K뛞m1\B<XxHC|)::A&>/<,YQ0yf>r>U▭دVЕgǖ)GHx}lw ED!uX?}p>! n1o#\kȯ˚M[ggJ?Uۦ]ήK)c-ZH9S뚴H陂%" pZACpV-c=^{T}tc1"O3s7z$\!N F3@{| yhAңr"xnvy#62$( 6Zi`? _~,ֶuwI^7J"y | I^|D ='&^:x5H䅹fPMyэ 6c@Ct"^WJJU%`>s0$l"`&.uf9NN{C*dDDך̼TA2FUzߝ4!W BvLu$#;û))X03\ &:#z(2q,%DŽDoܻ~ $A޲|Ѯ%{vGVoU7D۶1EDї{לramq  YRMŢgEG,sQV)уlN L$~m&]z2 |8 wv>`SnIjʬ k w S@1^;n뭭O0cjV܏Bs3$%Lc0W:c4OTCX `O{\kՈեuKv"η2trO@&_LCә"T!P7j&IqwL_#w8,(䒃vkQ]-{6vZ2Jz{FHMd!!1D4?sJT9U0[ wwT$T\&n^3'M9myT+DEuGv( @zFTtHl@sS1sVM#:+e",wΦo ̬rM;gAl]qT&Bѫ"딾'u_?u03mz||:j! h>` jծrIU%@5P<%>_"ܽdX&%fwc+>-v͇}Wna 0xJ mlw}ew^|>IwWS@oJ,C*y!MŘ(MEWeVNq=}dly~6s<эjomr$?'RN4+%{i+n} ?s헙$k )-wwȢ 4@vD?wqPAt=0mW tw.]WfI2$)/Wg!:=ZDxwuQNĈ,yuNh8H*Θ[u? .0u䷳;d2NķCH (_nꉿK+𤃙"RwvQcVg1?}pZs?~\ w$O'b=8C@Pۺo#n{/T{:}r qK~QoBh9[ok'##,jq[bS2knoGHoY0(V}Kwt4f$RP PqsC"ẌBc45B2хHɚŧ23;ڈt`ǡaw1ꂨ=ICF)\!׉jW"ȕNaDTN! Z-=B5L܉hO[TL0@*R]shBP ($Vc+:VSnC@23Hvis ᠼt|F&[L4}qs9~FLѥN.|jlj/r {ۙqZZ{Y @=N(VEfD K̎.NzJDz Z7SDcZs@|fxKיQLm?ZKD#p$FN,N"#:&49nèa6Jw%!EJӎtzUvI0 .ImO`Su~JL?kHumV}3lͲŌqAĪ'(uͦz0Ӓ#x<?~_xbQGuI[pA\kUӾ+ENܶ*%>LT9pSAL 0QK`m#/x\a{uK#n[7v7\Z!KV'wnmgrHGCNaFٯ)_fܵg!lp3.-8턀~p ` 2 _ (C/HӃpc0OQ SQ;9(8@Uw6<9 iLhO&d[WbZarADɱ9}4I {r׸pIOCBhkejr̈܈`Ԉx hr?1:H<`?^@ެ|*`BQ&R4θ?Р 6x $~&)ADfz}n__m* 6 uu/#|V}؞8Ɯkscfb>x͓j<Ecjc [ĵ [Z̔_ywe"o <7ZUOz\%ux yA"_ʿ*vǰwZY7"**R&H.{T KKˆ+6@47(\ǽ$V`OõD Ȏ:qS7^^` KmB j$:\ `j;lxռ Ɂ~S#UB"3sZj ;Pdpe!.%mwSOMTX1l#3d6DDƒTLtܣ_ǻjќsyF5œs_4+#tA=`f^I|=NBh i+'KͭL{7ݚa55Vȿ`o_AkJ)2gt7z~ʡ΄>hO Y?E;) D۶ZUj437EÏ1" Q mqNµp01U19{DS E#gߑpNaD"l+M 䔙YMZv5eJSpk yf0Ɛq<+۠ W2jDCzct6}%i]t#ܶ {)} ulb**Lf+Hr1X\?`3!jڐlWDHD_y~ǿ=ˬCui3FdOFkT πq1VZ. dp)W*v~e\b>t7$PmjYXIHC3uY4 M0~@;NHȈx6sũY9Q2H4uCx1ќϞӡ^7yw^ Gkџ7I*6s!!`zD6;/WgH  ؊e% a$* >nض90^]D$PZgٳ]*l5^%V.SyFLT-iSٛ R^ 0Xk ~J&U[ڻͧ@ XS="o|^,+rylw f69ԪJյc@-X(PnA8D y^3jˁ=#FAS9>ɉ6@0U2>Q@l-AW\G>X%cW;e-u^l"4kFgBbϾ7|gr3Įʘ zɴb`QcyX SQE,\d`"/{7*蓠/eßj]UY?9Nr1ؕWܠY*AK9ܕeZySEE|#BCfvNw~W @l1 ޫo?<ÿOg$&2RG Nse "Lj RwU3ڑT1J׿D fC̞ZC ַ]MYK^HŜKG]"7ԻQRMqY4W;9+T?hTV~3bo-UsԯAB!dy-] *-QnTQ)L܂w0QK1KgEL<,[RPƼ0.)ψ;|b=A:֑@Rq7N"2Y_:*WY:4OǼֺԽs7AkYR?:ގbm |$aT?TSB;M6QؼϚ 9___kmLsc,emgN \gfZ2VqB)ʻR"w{KăE %i9.DkpuofB pnݠ4WG-w =T\:C~?YĺΣ;>ٟbɒ~?#^1Y6UcA(\_ (qql.T4-11 eXtToN"8i+ꅅ |>!aӾGvʨjlDT'ܒw{IM,D\}u!dMI~20!]r"zK^/"9'o GdRƇ)2բGE5̼ #tLx?`]u;jHaaVNfGt4|Gt}32 ,`"J8jea|dM7;'0Yqj?g"&qAC ZJke GUSrokW1 1dz\[2k'tYĢzR$W$-Ur*qӦTuPm۶m+\{ז5nPV=h޸M/RWFdH43 <$or$FAo*Nai01%K矨]S[K|cF7$~yMy\sNJnk ŔN/܆JPd!_3ȉuUK@Oۦ7|ǃcTxz>9n>ORв{õG>Arˢrq7hN?]|wdp;vYde?ϔ]sfII=w'pNE7(a"V5>\-\.pgnDe|/0( >1[3:Z:%"'Fϟ:H(+!=9L=2HWTO>:1g6X}גλ' A[kGj%F<"_jx>:cʸFzSD%?c#5xC?~˿SF?6U1ZA;() ]D<,%^40`"S̃Ƚv_81":} J_fTAUh,4 Lacl$*5HcnHjb p]].rYkǦ㘓!eʓ-!7bN z@]ά @,նm7ض 4Qgm8֟gcw B186c̚<N8c<X܆suM&b[;",<[Ad%iLz̓(cs,g,- D$fԺ590Q*ߍ:l?;uƞcP6@(#qD@`uЁeSD9Š!Nj/fA$1ȹ@.*cNE@P9F^p(`慡UVÍY7"TNșVM./hn ri8i)ւM]KW "Ct,.!1;S5&( $D 1Sl }1<2\F4TAl(3nclDDSp{Ϣby8 fSoZOxr@A̼ RA`9l^T.oLd!("͚H{H0g b_{~? ~o_CZT%4>CR犈јB Cb|St~͘r]϶mՎ:LcՀus9z|̣97Huws}TCz++÷m"ѥT`W~iEX.Z5ضHf9:5 _Q7q}0^l3!Bp㬖+۷^L8,1qe촘4!ʡrfv;ya%2p8&`T` Hd(/\<\p*禈=N[x2FE W$GMVՍpQ B_Wn͇y}~x#%qH/q-rǮIfl8tTSS6uC/ZwA Z͘6t3%e2YII"gJ`0rP1G`&H ]0Nw?z2is9ț7Q!t:D5gB6Ɓ22ɮB;*hvFu=2v"u&O@D)ig Qm8ӓa&߁YRj=5R2,"] }7K͉~.%&vS~jwc5uu녁 "EO*c\ k>BƯ%bsX?o`ډUzD ifD$k?2毫_d4Ȁ 0`]:1DuYUJ :m"}3;v'e$ڈXϼg{Wϐۜ饞Vտ:duxRo--yj8nmn۶`%Z0XkOV%JޤuHkо 3Յ4^!AA:+GRǣn'qr^(0zPqC*i&|'=6Gۡ #hD猃Yih` _zp11SAcT;P[߮g i_^! <~bKzStcU!&M&C`/ WEb>.Am/zS7:cbwӍLq2uA ~qX G^⎙ ngSq. 4A@@/J;#Q L3N6Mc߿J,B"v=P q8h^ehX5;vMS D Fyi+J60s#rTIl̢n bI_2  =U&zvZBNRU9 <@ԩEG&zRQaںNվ41AdJlN/l4iȑ?ʋ;ҏ} ׶w( bv1UAy[bf"1]ѵ2E^%T*D#T힡{+\i6_D s[DOKQk5.t~;Hqb254E, xO)>"zs Pwvi>ĩblkR{Fgh=!'ǭXľRKwbF+/UM۶^qfAs{)$W%rƜ8UI]L_=apfnOl2E0@BPSSFYRϬZG^S^5]?1-ҧb=xV1~+3Oߒ20ЪkxxWD#|??ܒѱQն @hr%ޥocL;7ѕbK' CK&faq5PCv*nR@xDpB m Rfb[уԸGY`7_K7!}Rխf*Bu1y+F`Wˉ>fP"vYפ]@pp/[vEhf|lh>nY27!Bh0È|.03J)`RFMII(kw])*vpEӴ> KhvY;tsNsCJ d6fP<-]9!:^.4EYUɹT+3$i828y^һGPR.X * |/)Rwtmn.y"i{lvo N7|urO[^jȜ-63Ω\y{=ZaVA=4OojUgA93 w&D[Ĕ w)\47Z]>1;L=Noɞ,h\XEqn&ӴYU.k?}򽿹k@ol-t'޾ل.I$d&1) x h츘 G+ zd `۔c'qn[蘙|9Ĉ9MO1Bj?rka'C7U)`J*uF,sQ "s],:S : 7@ؤ2Ț3Xm/y>U@T Pc}}}Q3ED5]nP/ONQWէh 3}%w1U]dvPqVCygpW>Gb59H3!H۶UDfU#FUd e#EzzWD(jP/뽠6 kN?dwkt;s~_D"Hjc%,)r! ;L#X/f U绯V46?8::hL1Zr lśxϓh.pK,T'hr{>Cȩ8O<:t%8LU#_k)ó:DwaO܄}h&"Gק c$3ޣHx&{ 5k'KݓKA4 !) r! 9p0@`hqUɤ$Oqx ˵ܣ $&bFb׍df&r,f }ѾBMDAB92 n()s] A1W3;@T]~RDa>k-3)o`@&<L^N$4CMSciq8ڋ?j2x۶LkC~ `c>Xu"}8c cG&&"0|m+ |8)L;<ʩ9y /.}y}}׮9"*&s @jI5d$cvo0S`Dp<,1<^c_J}t8c$dt*ZhLlsWÅ_?^;?y$Aa8?sȂuqx~XKD1b{?h{/x~V23"cgf #8|d㓈^TU%z-|>x<%E DKc+ِ*ah̉$TלLٍFDӅ42+JDD!ixiQ /O۱ m3-d6befO*s?qލt(bx<@@ ` 8/ZC-~^4'!,SY20b0a`N(Zx3{;D&osD!kmLKU'@O7Tcyx PRtQlw||. G"a/Q0EA [P]0K>JṀŪjӀTG8BΈ}20p$}n}< Ya4PX@%ް1nRq!#: . A]bWB:=1k#~հ5<>^%8zlLT0H250%&d#"q!;tAͪNe muZNo81=lɁ qc#n4=͢q]fDp-@Jggn#,B ?L@ڏ1.Yk-]c7[B2եFȔpÐq2"D8u.a@Dx{d\0#@c*  d2&aAU`Fbj#Q?kfc-LCi۷>cu3@ɇ;śv,ny"1mGAFΩ5v5=5sE\\w 2<ê Qgkh?4J7r5`N]7e˖ąt:4q:+>?;'vYMLnwѕ:PhCge756Hz1g `)a$*0d,yPĂ@dM^ |">)C%FTlaOnLbV3 Jp#J h^e2ADR3cL_|BٰuΥg=|!Lt'=$_U.W&V밄l^&k ]wp"Ja+P[p[[hWMy9T{7jkt+tES P!ӈM% "Vsx5XqCՐC}\R9eR53BR5b/ ¾&ku Q')i,͒Ј3Eٵh:\3u.v$qGNOzս ^:샦z.v*>n5ol^ߞ\6+j6*9 WČd(To7xDH0Ls!hθh"5O,NS 71bK.).t+/W xriP}\g? j \3+4zÝf$nGֲMtnog+_8vd){5d%߻'6ON<"pZ ̌N~Dulotìۡ}ocuR@48ww$ iI7q0"$Ge NtőyT' y\W?g\8]vB8U02 hg%V9уiaM % Ĭb=E)q,Es4XWݤ[`P* (|3fq'ATtcv"KhTүU@N; JaB@eԔ:gg8AAcNfz$# o۶aIAomfaQ!ݘs? 1ZDח4` @NXjXMByY/MRK=A׭{>:o7\^8}3~ǪC=FWizoLNTnH-jL-7gQʡNBp57khPj PdvGJ˯vLJ.;񥉉:Scf:9ХXM G}6}]]hWo x7w AB@5*U-R`Yju´(`v45Ck j':VLN`}5Z+㍈tEHN1LOjh?wr^.kJWU<:=ڝGZv>OۨQUUW8 `W{[qo :.ګ?q_B4P 68l# !{IKų/mt"LU5~D=D@[rgfwMA* yTuqhxI*7Fn2+esH(o`_}xtsoXKQu3sk~Yxlh8 -,cѨj g6#7Y;]4XCIul|&=3XK&yiy)(=:DLF`jW@cob 쫟j&BXjNey-2Ɛb-^3}<곤ֱxk;2=u_||鹿}:w] <7| c:Ѡ1mhiFꢫCB҇cHؚ|̣ٽݕ&̣jzf7($"#$<99謙c:]NS=Q]lf__6]Dc~vHD/̋z7wʓOQ2\S9RnE*Ԣ%"FZMYyxSbM/NsTњzA|6-"zo6>EG˩qPըjgKޫJQٍ~ycs,Alss2Z:<0MɱM_3L=S!)V!r'IP`k= |~`-.|iɤ; >Fwɼ hAx|is1p I`T> ķh"-*˫ɪګCL+;Se6X_[!us[^˙9stc泠W>ut[v:/j^9椚8+-̦bd~*ڇeN"Xֻ(9bQx'5!bY[cR[.Xy_ofhח6as&,i>Gic e1_FfE8q8>9mXd ]f̤  <&qΡ" yMj-k 9iV4mtU"Fzz2S oü/3;~S$/j[<&I؃f-q@y&̇69' 9FS] 6~{}P QUv(LMGNa&f6^|\vQ=ϋ% Juߪ\#ٵ1 _inØw0O0I<'EpM6-Y_WD|'Bf cb3boņP1rL39aJ~q{ {6']&J鯗*1 j~"QH}LM~t+o?dYd I}{2! bm>,1^yJ6S`e!@ CQzD]9KnksNܜҋ黾.B6n7} R}knCmH+ 9"EA9!8ZPmh I! #RhN>}'7b҉M"ǀGXDqf3Nuկ1`۽Zkny 1q_9Q" Rbޣ6]*" AޛRe0{IRAsp6i"2oٙEqD4sw c2& 9mXZ;{oʇMm`kXk\5X*Bbɳ2wJ YeL/ tۢ6ɊD[PN}+Xowdb#ӬD@fͿ"'4ײN9f }²avD$ U Zk0ǯ_`LU߻#l$k,L*ʸ125Ul?c`NJ8ǂnVc6v̈́ųGf9!y0nmDR/~M!nt%On>gӢvdE4Cm%{ mkm:6Z9'dgg!4o@`Ld~UmrEn4apIt"(7pC#F}̯}ͦC2ETzHS"cPm%~R_kC)c%vǘŏ~#" >~_m~I2&DڄO_TIM|0]yWK,Yy]܁kmϏ!^sKY^h)".Er="7˖yB,)n- лHxҷe-LUH'BI\QY4H#/m].dYj?؏$oB,"dS>)"zY6yryN־4==9S@%Or$ QPP_&,M`<p&2bo3MpIX~bwvn:')yC̾kzd .֘, [vX^6=Ԭ*C;xŜk65 ;ۜ~`+S8z͘7r2 [-}»u)(眴Ss`39X,(YlRvuP& >燮̱4mW{Kȋ=Bw8Ls;fKLLqhUo7-H*THev[kB] Yr4!"bC7iC}Y7f%cl%ƃCw1Z=ԉP`=q`!+}Y#E @麼?s) BUܦ쀵_(L=G$oi~%~`k4VTUFH+(P=溷瀕,3"4~ ?-(uh^, #z =Q HU ʸBc`v 7g:2%*}D0zbLY> xz1Z {PkmX݊$~&lLJ V?~bhY>Ahm4%]!D_w0 $"DhL3{rJL&/i3ABAӗFUfzLȕeVkAkKB8g ㎕Tp&7Ja>n>nq>BxX?Knuai[޾Y 7h~ŒjRI?;8-%kf@׳lMDU.`DX01QIM[SxNr)3B|jZXcTWTb k#U}k(>JM-?帎\{mzpjG^C-`S5>]AH xT~8MݱCT6ih]UȦMar^sլ`XY'K2+,}^l[Gn)Ak&`Y2l;"=pT9*oT)O{8Uw*ai{n$/k|U˴EMn7R@|JhU@' } _/TŝY^Gc`{rmm,,'x\񟪬~}SeMt_wV_ڱgz-g:<?Ͻ#'"TeoJO {痱 &i9p trzj؃U#¥(GZB?xmRrLy9 !VR(7ky2#P%*5|4CqSwjt>ux>*wnMuM@"N+j29w BȩY|񝳌 sឧ eKNI(piwc̙v+}JjqTZ3@df9+, $8VU ),갋 *-9WkG<^J#fUjQ`?eR7:@*g?_|γ +,u샞1G\!z[j1n :l9fS=・A$N* ["B/^hJTjih*v}ж2y)r2ւof3yWxsm1JoOflĩh1qR*hUciոzf{2w-dnV79CFR;߲roᕦF+X>6&Er۫uqv7]b>@7"#v}+.ݷf=HN17fD)d>G_y_iN[ҜP$Z:I/x? o S=fnvK"sv6;:+HR 4%EE meDGҖXW!r\)teѿڟ!a`LO˜zb!{_v}ˣETD9ǂcN'%D0R܌H}S=/7GzN2oLtEkNFM" W@2U[^y܎DJ <Ɗl:6Ĺpb~H=̉TXChGo/ IU<)L,4SRbvsaffni?: QOr\U[X6 '=ρ2m┃2 s?%,4Dzsjg:Um@VedvJ@ X~h 0 n I ~~6Q^\6mt“K,hɀ<才|}&H<ڀI9xc9}hK~=hT*>^C5D>kW%,,B'ZSHvb 0k*B$xY"MU ƒUs1]g\}0`|_ep1A a)D0o+KyE蕦!r{viGq@F$(텱 E/ga{Eà tTf g71GӬ4=:!)E;/)X1y'rDpkJKUR6N&\n!9-V_$K/կ1?h_ ˴>@>Lgu-z)GL=LX1խʦR=lwۄjg7!ۊ~eYܓa.2'lrqS N8k$.c ۙCtCA&3`Vœ?=30xthgkTncЂYv`~LiGc| p w1sc"C)14 Y ,,C3?> m,wQ7h8 %|LZ'VSqMlj~,4UU5Ɏv^":aO_-_['4s׏"I~a{PT2L1Ghߍ$@7)nz(nfq ;RWw]y?i6o/,x׫z_T.Kp]ܼa6if܂4pvU,$ii9 ŽA~weE>_A$rݥܢ71C#p\)͵G8 )4*\U$fPse_{(ʋ*39v7JU%@RЕ?H<Ƅ愋j+d$\ "B[[6.F5n0rGi4bKpd„e<νchSp*V2.mT;uH'T5KAرi +nhRu`:B-q7Gqhpz<cT=8~ɳC+qJv`ȳWɂ&pA(\Lj@nRʔ*pO DPpNlI땀W1"YZ o*P"Νe7{z:W&0Q.6 .,2aJAGwVgpa iP9KD4Ӱ"iˣZD{Ou>و> `i!6f#18:#L3NyyH@z`#0( 3j{0ZEQ6pQf$ 7i4lHG-*Ć*3(s<0 ԓ%Uۘo\C#ShX<ƒќ&Wy2B +dGdN>[B׋/Z@'+8KLҙ fB1H.\I>"_0ݿ ieA

yo|N#Xl-x>m#^ӂBmw0F-}v6ml)HUں5d.]ݑu,DB}Vzَ#"؆jw 'Q'yh1tfQ-'kEDcݤ 6Ow>mzژŦ8Z XyQi4vq?j@D fSgı`I,{h&gm{:(j6qD )\uU:{XEALLAMѮٲ5E\@a1\]IWRU[L93[?R#:Pb"1&`iWسÆ-LYBXS3Q3YdQkMEƥ,+1}+`78.¾XG~NvU~TLd W ])4f"KIK$Y- e ,Qþfi"dMeFd a_&Xt0T+Y,5#'"ن!M\ c.SL &"=̱,ICݖk*EDά-`av4`w! ")|Wǫv 27Nnga̾H58 ,#b(>tjffsr,Z3JnΙ>nLL,&\*u5"B1|FoG'!(HV+J(40p4ljx1߾3n$6b HUGN3J<1wk8Y,cHKC.޴F[C+͢,$c/]]&(æ;'&CJ5-,̉M#?FtH7!H%Yp6tK\ ff;0G {\]9K_A>[Z#( ypMq7"'( sCnHo`;j5g-2P0*?hT#A,/fD ^j 9n9&@ Hh捘" 0]rn}Yo)*rN|#"~&G`KYe[#4ՙE{9# t fߎ|˛w>퍥\pkG0/șgL\]V䗉juɝ0D5 Q8YP_. G,1Mͦ&K٪3﷔/2dB@ivZEqA+ KjTsfSXX : ^sOy?o<ؘ׼H2Zh-Ť"*ibM; _w^@3-< OjGb,E,.EPh=nfl(Z K!!*k(ֳZ3KF_{>M]n .h8^ޏ9:Uwy0*RSj:w%؅1]W$+і*Sn\04رEng"ׯ*zhzJ9*?2>O?~]|f^9ًXax9˙HpjjBa$$/n5?FG!{EkRZkOPd߯嚻cw |*U:R4'!$='fpv>A&aR4mLfMn˵, N9^W͉yQ Љ x{Uќ.4_7)gSuzovxr=fCsh9/ޣxXhE^ƏTYDɽ@D9]S~ն_"O ={7YD0Qu@Y UpI:(a!Z1@72mR0+yw#*L ĶT N1m2(kħ1hy :]^mH3pF74*pm<BIJC3{N*hq;1IQN<&+* 5;pM97 "⓲)","hoTz]}wqOYRMr7DOq/֗8s=~'bEz"Z?q_zSeZW @pAy-N\E7s'=wbFOt֟{~ֿe,nzE®uq5% r{OHWwȶXf!]@Y7Փ7~,=r/ vw "RAHZL![Lض*Y0d5av `˚F6i#]/uSUӐo I!QqP1yXop7<ȠV>OH آ+S 7nQMӠ/9ޏj Tܻ},zڎu|NMڮGę!ЅRY׹Rge-B_7]jrnf܏a%Zᬄ(#0$j!%1rmƶh+ޓےWC<'a8bY-9N;w&{ܤI/3 {$iAbQ\V_ƘcCC?>=Ž]zݘv2^$uwْN:OwC-* !"3U;l 7 cЁ V+./VF^0_$Ǧ7홉R8Dt֛Ju㬷sr$p WmHLI>ׄrJU0{) 2ݟòH<>b1?Gx߿n+_r86%rVpVkp{0E Η/9OjmMxl~4#ݎ/l`3MyFn%3fnEcWvF$nIJ+̲a&@Z[f}4nBzN&r ij&B#OP<8wDv\fP|7cdfM]L[ q, h)Ջmk*Zv-R\Ftk,JRY^h?c?-| E*Ԓ.sIk΃˼7龵ZpL:~_?=,K6>9'y9LGΉkeDx;0\ve_%Qe Ma1<\RBN~%Y@̝T|Gգ߷`J)c5dt 6hPn{,|p!ZӨ(' sQu[Y4mB Cq|!_嗇!gmmtݐVjs0+U4U$#0f0ќSWibn"L惙[DPeV0'"fS`QjF6"@ ٜӖZ)x_v'z^.Ls7jM J&"¼ksS)<ȤI܃#d 7&fmDM;h. 2IV#傠ڜ;xN#ail>13Q,aMUoĪs`"ª@ gf2OdȐ9HtfŶJ@w0u/(9ZSa@PW61?wHVGa޻ *-E)$ǪpJkdLܚ`ovQ,ׂnD]bv B1yRn^ f(}]!fޠ» 1?hSfnn0¶)*P0̈́&fnkvȣ$ﰥw"Ll?fa7ښoǽ EuZw)4)?N ?==c\ T2J#ļRTMTG~SBKbiܷI،;+dUNɳ۷9w}T yds1wIˀ]O o͘:jk,+M.zܛ(CfMQ)3q5P"n߾([ 3+07^DK]rͅEeڀvlSmn8gCsN["&Nf17Qv(weQ@$,TyiUCwo2kvb)/D~__ l57+ x˶Z<]rsq8Y9g wXYTaaЦI F|]Cm̢Iga"W%J"|~ݮxO'6w*X,uP9 KVA;+e9 ;=|EpZ,bZ8K`5 w2\S*L>Y%lN<c|b]9̦Mf֪Un瘐# }gmnA&$"X*)=39ȇ@:XA4>1R?yo1- \OB~_&\cU"w?z#,ai4hR^@%鋤&[FgsOD?^skinnwK`~9Wp1Wi× VQ6<\6:L<1 FZHN Qص嵬=~Z/q7L2~J6! v+)<%h ,Dc O'15!v\L+0thܝRS/rV.rj$s[@|^MkPU%1/1ea5|:0mc0t5D~eIф->EgFuK+_{Fv\QKIOT}ُz)Y-ȟosם|V`T:ϺGpS| ܌9h'b}lk(?3Ԓ,쩅/HMnIWbfɥ &L4F8Vzq`760v %(KC0㸂 WDpfVn˞TRk.-C0<,v56czN?v{"s"/E];1˒E% u7WdQb#Hs7"m9s7m:{Ef)܍(Z_^XVH3 lOvקznvI+_s&;ZrY+{A*W(čsK}XoldA"OtRbUӂ^^ "|[4TDW3$xM%(0ǢY& +U y?V' /Ѥd+3{ka0i_Bs[[[Rq/ZgX-PT$u*)v~IJacK(ATkn F$'3a_SZV4gqj-?1eP.@\I& o W%!7mǽyM| 3V ̜Fk70Zk3ɢ 2c.9(:ېyɍI`36;YDܢKLT o!KG]9 JpBXbe\V=p|ˮ." +볎M?YR7`Y.}D$-+\,y> 寒9_RLkH u!I(V\?"hA)HZȂ{/~muZp h֗hFጞ,A7[Z|N"y8v# H)N]nw!3KXɿ"{|z"sJ [q\`9'|8!GFW`RLa+y]d FG럋*£JDsL&|mNKAwXs֯%VyQB-iAfLOu`sr5">XSKVZ@\% 1'A{E*3 ؄pUyNx5hME}:qWwSfXSW LeKI&k"O 3vJe=Bm+|%(=uZT ֗I!0(‚EZɉZMmLo)blF,< I0ǥ[{S* GSlcܴcp|A V!ia BhT~ya1ET5t 9%hc<NLltQUR>kfs^վ&Drh렯 I<`.c1'Y@;e =L0nSo?? ;کW\LU6}ʰ~$/_g=EVJlzƘ"m|@̸z*m)Iƀo9Z%(23['DԜ>~_rͩH\MIL.4*! k L9O|:63g81i* Pi؎#fѣr y$!T })Q$ yHLi@Z2~){EY%=NH?l"D$ =f ff^CZ^Y.E݅8X6sڽHŰMoQ9A>ާJް2Hf-AVxWW hF\KŶfyXPYZ 4M^ybnfe}Mۯ9'9˙/2ƌZPʭowk54 䃉Rn3ʜS%a#ak-51V񸘜{AR~{Ջ'O1VOzci5 (*HSPZ\GnffvF(B '9D 0CA M|o *SUͮ0"޺UXS%BȄL(:?㫽~šA鮽Y4{&d5 Lu7 ΜfL|RR=( QL cՔ ;s2;W(CA =xILRԽީ(&폝QnZsY=gZ[7^]}nwet}4d9/gw.ݒ$90ȪȎW 4Te8 #%*2~9ߙ}N)M7\5Ly&㗍7]5 LKUr/ڱĴosܯdo\{_uTÏr:3F7@c\Z=WCE)"f풥RX9.\)Z=:&75#Wm]~Ssb-1 ^זV>"@ÞW!,"$& 2s;wFDX&gp*eR(ݭkܞJxPbR:lDFَ_3)ƛU X4\2"QEp/kDCaT!~LL?'t?QOaݱ@n o+ކ2c*+{_=#dލ$_SUfݤ5U(v`%cjfWIGFJd֠f 1"AčHWlEy&?773&3uD ?D4M&,IYMR8Š\¤MMF;>*mVfAj!l3P80|[~}q!=*șfaQ2F2=Ue/TלṮra)E0+0a?dB2()`OԂ۠cMHJI 4=: G"%5=ןj$*+3U) (?)!"FcijFLtfB"J_˫U](YG8<[3X2TDE2$SQ&$R(MtNH-:+KN>/4Ed2,_?bRex:=fҹ>VPL|\ dԒ$38}$jTY%>R#xOå:w6M*dKokC&$]P7S=J>,)"Yq=ƈ U拞7|qx#;. EK@7\`ZPPX7_+Aevg4xx%za2 :|@$m?|pt&,D)SUÃ(Eu]#HLH{Gw$~x1#P- XƀU0chvBG6z׊Oiu) pm%"3V'3H̜|C@3ȷ]7g9xqe)LΉa;m[|wYѠY8'S(d7&v4hѰ= yk 9+|J䭋9Àgtv zv Bתu} >._kYzQg6Xuhb(-̕AĢ8\SZ9׮КL)9c+kkN^eMdMID&b')1 oN3Ս&ﰏqO\ 1hV [9W4Лk#&)ppu&5bߋI?TnSY#P\΃$Jc=uw3gqWF?i`DPl__zv8 5{$+c33:N+ߌI^k8QZkJ̷n5&S,KNKRfI$ Q"aQQgUcW!!Y =Ϥ1jvpn2 :CV+_3Ƹ<~GN$h|)cψ`lɫ*`BVcۆiqXLO@bJC"|E8gѢ(1#߲fga$MI.$VK5p3 ̬# hgZɋw՟_1HklV]w5NkMh=}d3숧Aqy&AfFEbk.ADO~9!ί z+4vD)F 5=(BU+҇!#y3A,y¯YA^ a #"8J}U3iJ'߀,b.D,p$p^{0J09FǞ[4$fr74Z4]73>\DL"n˩pTՕ#%IY8f=-djמN'I` [b5ަ1;N1)R17O0 -˼k4 oNq]y!' %vX3f U UZ; {__ϔ&v~Y?JmŃ.3 /%X(^JMR6HTDoo'ݳc?͔2'DSՉls6O{X2v}uͣ"Ț"pQUSS]iO9p&Du! 0yjt~;w8-zzc|||<σ,o&{de!m ^*{h { 8ݬ1;U~,cx|]?w$/S̛Qq;=NYScif&C4&bX&%p8jG(9T6G5]a|9ni*(T `VYV շϹx{00,Ӓ@) Y"|"a~nff ԓL"Оan-bRp&x.o?_Z*?oT8?o{_>֋kw*F Əޗ5ͯMm,Wt7P[SxS1:lU$^R 9C`[ʕOevw=;)? IK @K}ܙ:0qL>,ucPzI{ u, V܇0yYnP_WZ@bZgldGi+w#L1Y@ndj̡۵\ ;')􎌐 OPTd2gdR fJ!j*Agǰ%5MFLsݯ0VYΤ=/snn7bDǸr-H rJRbUg;G|qS# xK.C#lj4|v:z`Vfʙ)Ei8TcXVgA.yBp<7=)#ע8s,縭?/oNUV4#H<%ڴ^)4qݣ}2xZ2R6@N!E{F?EZ]XKeg-oUO{)"TMcZ*nk(٬ݨ.p۽梄RRʪӠt fMw&YcwTkp6鉣8>إiKTQ) 2;ȍF&*NLšʜH\-Fj w 3%ӱ**1 dAD0Re$$&,s\ݹ:3Qs!x۔+q̠]B+uPJ藨IdգD`dRqYSdcy SQo &O\1F"LOjD1+ a)"*NaAd㺮5 (zVo?T2%<:B@:[AX'@CTZE\ny>DPATݑ c(&19魝ɬaGߋY2)"ǀlrĽ 0Ŭ$րGA{_ђiz0}DbއY}I&a+)3g^I(fπs5̬"b+/G2B'PNf=UՈ%`D!cjJ ́T&JUݏ=fwGPc[15A} Uٙ,DJ9"{d'vI9534(KV,=d&53z(=)P8ZtFh )~ 6= ޷ d-B$ؒ$HzB=Ss .O3fD q3X:\w+>OHc"3qUfE7s՟FfUq}l6j_Ycl!gVdeۯ;% -Nv!8;o%{CO"Ѐ?8|\;{bZ|«_" 5<]1QIT@VWJm旎 [JOEJk܅S px]%N/ (vj),`ZN EFg!ejc>FTϼ,۷^T ]d6]h}}WƮVΈKaY&OtTxd*JŢLPk: |EII;YeWdh׺kW]5gA8 IHB239ck9J ^ ;`^ 3v$"=S-b5)P_]c-Y&k o9'څBM~ .,@Yl$ RF?%"757N zG!}~=ITDpDjDu}Ilǝ.a V=W HWYFb' Qf[p( "{Rެu]@vY؉}ˑ(=?#JqZr:VZ520=D{[ XHq],W!5#<+HDDIUCD͖qFEyvAI/"<(LQ &ZHR~>|09a7]-[*2I>{ .0N#Jr,%5S$6w0Ú}U( (I5F"~gٚe¢H҃YBbF}qEFLQ UآVꚃBރɃ>~|OlIyuCUE52/Pm* Q&ܮoBE:Wd1Ha@#i4)%\1V*Ǜt")qx÷Yf%VTRylFܠ$ )CJQٞ59ϵ/_7ueU ȊR};YE[ԉebU%P DEbZctd$x?sqfmPJ͆V9GQzۛv\>'`;#fM{4Xc*ΫiVҌh( vf(9=UǑW˒,PizrW3Fƙ9bmf1Qw<iKҬ2 _c_z7\i0c3ЌK}]~?B7`Tq뷨D6N7Tk>bb^>&68sywmJ냓 1~ȗe !(QmD@./~lct3c,|kO|58쭘Mԙrw#<<w%{\&J$Cdw/wwg*D/_.QedYhI!:T$!1Ttx~P. ƒw 7JVH[I3IZk_UVuwZs<{0C\0D2QUϿ[8C6}g^p0qZű;@rNoT!|RDIQ~o+>K2MQZkֵXTX;/֮2l[Bp,LZA>9rJ=ˮU&=+C~N%{]@o2͈L{&0~1""7lqՅ+O_ { 1s&x⯳eғ!HKYYz;D␉3Ã_BM->JZpOwW^J?^K ̔S/D.Bdw^psDID;E֦~t.F'oĶ:.EQD\ݵ57hh#`DFY^Q{TNBX^1J9i2,Pz8`Neώ@i"<<l&n䙑$׏co1Ya|sA}7Zwf]lD82LH=TE-...x]!R3QL7X{`KW8)"{x>.Og`Em;ωeZ"M`+͕2 )Pt 73kǒfw>Hm9VթXic#3S"!GDEnC`֜9qm!|I5`ov%B$U("ϫ565~])¢jj"r'aXJ+gge{ _KGl_20JZ@[u^ 雔ְ/o_ޑ]omk;.IADsf*Hz+<=q0deJUŮKQ!U > 9G[\Qĸjj"*VMxYa&~oQᴰCMS&eCW VfL kv3u05$S-JOЊNSs;yCr׉ TUeIv;π՘"jQ߳%J,(Tby~krFOnP]S#ۄ򺮶ŇX3i)Pg6X06Id\3~7O I#-P跏#]taMxEHDH'QxR JG/Mc3hb}YJ2Tdix|'(ˈ#`|6U\ ͣ0&ܠײH?\7rFg$LjGv>2o3=O)Tlyo"Z;0yv SU\HS=\GK<7nMmDD%g*~ UGϏwRT:ZPdJ#ZkSC9};&7D]:g 44[c,l`RcLXJ#{<\4Qf21 lJkpC%`=IiJ)I뚪"ݍ8c7<‘==`dB(^NN2y2"0'3B_ q$Ɯ>,"9<=ef^!L͚~u;t]FyWDꘇ.bswGw*h:nZmI"!XiXkGq"sOkykb+nUICg41U(ߖZ^茜8=c4=TT|ڤ5kѿQ{Sfu]Dw/y~}}1yu+\PJy"Q2&Ex\ r3p,kExɎ# + Wf9Նu_ШwxߏM<#~ߠJz9o`BLWG(=ڜtJr鑔dx(~f[3G;}xkP2NHgpf|[k^ԙ<͚m{ -|mͅ7hQ%.|$ʺӸQ*!xUf<@=5E8n,yx4I`:at*;DݚW[-_QfVf^Yʗ֑]U%ev%2x=5=#htʕ\שLr.2r"syG_ui >ӚA+ƠNȜbI1\[x^}VܿXR$$8_z* (R 23ѬӦP;cu*ZA9ܲOFk35։JU,Ay9!A @VNJ~Fp\T % wEPih DBr &u<[iL2 wT^ pr r]2\@]zȷw"If5Lb+)B)"^ )œvŒ~&AL͒5maf\muj53ǹQUvK*(2ӜjiZxbůt335_Uq1/EoӿpqO-lN鞈Ͻymꔲµ|>86"w+'Wl~B?~x>([K ~'ʍӧ8$(W++rTe{ZޙيE'45#ÇUqOWF!N-AP/>oCwLdp½ӟY +?CUWl[Hs/kD;u2{ <[$8\5־ؔキo|wyo ˸Wj÷3M@F;U|ԿSy Px{bƽ +1ݬZ!V<ޒFޕ4zM>Y몪ܰ_ u'V0`0^v{>@h<9% |A.Œp pG".,ܔd \j8Ԥ`& I9 Hzeېwv|eD5VYcw)S 7)o"CP͒I'g*>TMl1.rXNH!3!STQ`LLB\_J}XPq)*1G% =ѸkwEYtG5D .X U_'Eޗ]7jYhBqߢdKXAڜb3sUْMW rܦtv26cQDudV"=8}*aY)g[IWZm\a S 濪Y6IR"}ix$&J#LO7Z5*0)LA`ߗ-ˋٞJo}q;TJrr WSE2u\^ŷ0Ľ)T5] )&qM2TTL{> TDӛ{8.9[k W vŻ/z߽NS 5Ye&Y8Ti;OWfa*:r{E @& ӢYD^]Ǯ:Zه+ݞ7NBWN쫿O}oTr{ yޣ릍ȬeLH: #Me$Mp r䔺D t hTCdOn_;_iV ]1 XD"¢h!70> %~6kf:UAdO'+ܥtu:OL f#5E$v~M!5'y v̀!R牑'E!cB5 /˛gߊ eԑi͂2^gniF 59yakctsʰZ*e$UZi\ bDZ>ǍM;9 ]UrRU \˜(w(3qE| /| ѼAPfQ0]v::*)1?&AmӎPkM {؊BdvLy)"|[5[- ҙ0ycpX5ݯ\jl\k߲K*l$TR!75"TrH][쏆꜉Eܓ7ZwƢl,JU~;[Ώ=u+m:9T  UNsg,j3E/F f;7KP](71{9-;j>_#[~J8O=;k*.QVI~[rpRT,”,ymNI??X`; ݴ4lľu=gSn9aFMNLcɊFtǫo 7-uv9yŭS-8% 2eE:yT*Fk#0H$Aδs{3iujuj0z@Uwjd=U>9u[@Ufq@I9 P>T!tC_񽿞aK îQ\pe6\Ϸ oe{:@/㽪֓">CKŔ>g͇ڔ=dSw"{\۹nָS6k6+I8k'ǿ2LU0}3&hH'p\2Ze;O/жRjeaWmhP+VCZk( /]ek)x ZIDcF%,4 b5S f/>Eֺ[8 (]>N[t,pq}D˟XZ@xS._:Vti![|C{U7kFH舗g,~kSb* A{dfy@W|nO (5 V1Ϭz}οo2%Cu]y3KA?>Wnu$K3<D'Z̉FdHe)n<["&"$겄-Ld%BیɃ6~FIY$S 2={\ >fjJ+g 푺g{Y9ϊU}pR ipM-TZk)L1mhY%g2h0,օPEf4)9{1 {BmޮI]?m&j1x;Zr+Du.̢H"yLt~sple|^vIfpjdH6.?3,5l==#hul D#O5C}H/Q#\(=a/EyF 8?X۳McT~̎:j?*RJݚ3}}8'3IB"'GFCz>UqRz(vxNﰓUDwt/faf3-O7 .[M[Qoryc8qSXĽG8f8J1ϟ&vG?OqG8p!DLO'n"H2[NMe>E$%NJcI1_*馭z)&G<(lABM*19voin2)AlJ|yf"s.J)$A7xtvxYr  b53͙@,4R!NitSDf2l8=tBD>Da,BlɊW^:pH 12TFW1fqN$)=cDᮀhY GY2GA ҽx&z0V$>g84&JI#"E4AÙX\DX320"vFI)jgD/NF%ӡJ=3^"A!$R$r֏T Sa-c+Cy"bC"ųhhVpTvfRIfl-jj9uJf,'e &?׿[C&GhLF֔G/Az>wۅGᮦ3Ǐߗu Z=51mw<7XPpǁ1'lM&VK ,H[ Qkľ;KV+UKyVE?u=,"Z3 ͚u=<* b>'FPD n23Sreq`x!\MqIu]tUQ,Rѱp=TFJ§Y;J5M&=m͜BECS,}R' 4acD yM`s_<-;kK?]>ZC[6ǡ"=*J %o_/Nޚ:OʽMU߂wr WaELRp3l cɂ_f0Jl`o,,'e9S<矟DMS+=hL:}>ׅ$T#D U\r3f""ez]=_~WԷ_L75{}M'nM<Pe \5ؾF-]w2'c%Hš qO&e2TQ S#LALuZXRX5&;<q+~B.g Lj67YbPRA<3)9- DO$j?e+ɒ#HSu{zyA6~X,vUO'Fۃn?dfDI!Q#H=\LZ:ET%%j1V-rϡњYtx0zTc@ѨS5nl/ 15+3$k9P~TUly~O0py$xT֎N??O^GHym1M ^ZXRuZaz#< "";{kMwMR#TiLĬ܈܁bD\NGۘWfRe+ ttI-ސ3G h>-c1Bcg@ ڷI.4';3UiKYBZ a"H: xXV_sx'MniMrnǷԏ2 uɡdA-lJwü I%21j>VW)^*)XSHRW>@$B!y2(ډQ,p[y\5Ux])35;#$SexKYgSS!J=,Wn@DPˏPΌAߥ&BrH)Vv.Z96΃) qc|$ZKHeC?qD jMLDx2I*QRԪrJH^"emmLoT~7 ۶HJmPOefińmv'}?wZ2m`pf@-_sZk{_ _+#@U!]53f0mVk]Y>*ZgOiDcg]d@L=%PCԧ½|4hq0C&J#\Ye Yo 2Wּ;(Rm{c XR21 ɞS[5_ tUJ,#44 LHϵr<}&T/?~׋4,%ko~1[- rf;YuC{6}j.awt8%OaZs'Ad"{3xZ6ɽ;yEWGj~(`Ng@]lzlM: oV2f0^cu@e<ၽq31*~n-#ϳmEV jYEi,y(fFJ睷XٻX1 1F{JO2?HIටp`uӓy[~"֭ _@9C$Umzdaإ R3q8E\noD-0z%&HB"SzϳGrm[Sfư)( -MgyD M49/2״6aٶoGi""V҅(dJXzex134JJVL,+H.lfgޏ'T$kʝ/.r5?C;)[a]oh<.N{ё3F&>U+8%\xgsUȥy\Npn%"?mAHEԻ _󟾵UOoOMm%=D,3;Gj<16uٴEUݷ~J:5&޶che"q w#r(׶5Ũ SՉ)('gwIe0efh]Gc5 y cZk>̵6'TzAT6x? &𭵈>x*S耘mݪL6F# 8D4详B#ܶ&b3oM.ڿ<ϟ߾=^Ǐ+x&Tfk{?͌VR-WfZSL?Z*pN3SZ#W 0Zf `}/sFZ10X,"U;݌G gv ?UEż{xкFnflHBཷ2mq'2 zD6klBV|4XJv  .ࣹ;v.,F\|½)9{߷]qE.߻a&f?~U]U(\ .o)%YIBazE&4ac;1obfߙ%s1ԠʨE ]yKP TE_-$* Cs3Φ hgnhk"˴{x0T@ξ2/ ig".DA#R# s6Z/ aAӏ|0EQ_\v@# g8=)& PpAB. T8 fyz!=#%a QmdH]RLÀZCSF’8NK!ﻪXyVS*=Q6O%%y)L=n;$55&PPL͐ɨ^ LY%P2QAMėִě)0Ejb]}?8.L B )UKF`4igYj݃J=~Cs1D} ? gcco}\UXfƪ7Uy8dR|$3bVE-_T *"&<߇eLO]z1( T]̥;1V(#|@FD~S#_@6 q_΢F Vu}@) ^Uj@ Zղ,&c/Fe~"wvA ;r6|MՌ1d=۷L.wV2n潚Vb^NHz2`!6"uEζc@ir%G,P[(5s tP<:>䫧ڴWLx^UMȉ{l+}-絘>7D %.'B̤|<(n/'[lߠ%*+yp;6Oz]45WmJ)5u,7IJkoq^Y|ҐG[% )Qy{{*Q%"-c A$C$p1ɦ?->N)i/WU2w̙ai8Zgp:J5е|WMl; p̬zzMk xbJEfqp`L`lYZs[i[Z `)3vm}; Wl qST55*grb6Dc׼SK7&m=>`Ԍ; l<ЌQA2hH(, #b\s"_|cЖ*`uml?i~fڳbxx2j4HkXX'zP^ޞYB-NFFN-awd̞K榶v@1`8p* myCDXfy /@}6NͰ%=fv4!n|sp&H'6WA(Ɋ\~x#sBiXEj2U 1{'$le>m1tbJ;+qj9ʅZXq^K@ҙYb*;)APkEFl%mk G0)1S6, 'lazB%?3VxgQnjUKs Їᓛ3_$g6B5n-hʯf0^"+,U;s 2oڊjRj#: xYԑA8P=N8VP&;J!$' Z 8ܵn`2 xțXд#1@ ɺfkn<)!ːśtddbZ|~dR+ \fv ES[NufA ژy#?K*asz&ft]R"8^x?34i!:?IW9 ^ lR,vz^~3q } R0=`3k`۬tܛ(IS\k&BK.ɲXKG|VM#rh]Ia$QšgxD܄m0[tTEpuDzDq_=FfSPg_xtG*$ .UPZO,Sٶ,=HOg(,32aJ_Je&zfDŽ1 g ˪Up%儵 lo}(+~q &Xgi.`(4AUtZ{*پM"0Pg]@vDzuh* @)"$ CX]ogRgE<:} KdW0(SaS"~ 44X,%0ť1mߥb9<32G k7Ft"}{7l֚?[ӶiWۂ-k; XU־G3۶33 ڻ+L"@,+rk4|Q#BQ3@/!'vfmd"=e?YRϣvPTYZt9zjrOi801kgHBzwj7ôaZCf$^/dwzjzg vmrؾ}@:ZUm$>3V ֣i1l+~sylmS4. 8uE(@PS(j;f>КWAL vNSNٔ3z2U성PP4I 2 5EkO-.nJQц̌.mtZǾ7S{~l͘2gv'g.:ϳE."H-irq5ry.p6 z)bD"Gl*8saՀWSe=uޝV7T^AC3S=(Dz|ڽIS Lʶp8$ YW9S gr# Om#NuSmJJQX5y̬A4O!*yBVf3YGD[hfzR"m@Bzč`ӽ2&2ZɒnHTE)m^CѶb` s[qzR=QRD B7&6*!lz{?O yҹpikgdo(hT3b5gffn`!e5yˣM $Jw@"%afS%UNv3@*dSV9¤^k Nc4iSqCkoAlyt p}߶?9cDt+qZm$#*vLH b5 <Ǒ"mq`sh>{H/)d)5I{jv6+ Ӷms"Ř*~Pkq{ hⱫK4f%"bY8Iє5S_,)4\ HS3PЫOG鞽1 /ΐ< &+<=25YhSsDQcD:"!)!8tĴ3Hc&BV:ܸnk6pmU "lN8ԝ5{ԃTmfC ItP-c5[ks 5]uyqo3hjBDgz}nkM픻c^q[MD|a(x) -yNVԩoj-) yʸʉfUbE\8Z@kU7 M9Y&RGhSn&3asy.7Τ_[lhUlSkd`P$3$–\yhzܾ yMB\SK9 0I#GA=el=7,^%N#uoc}J֥CX8V{}ITIgϊ "8]R\j8NAAҽG{Hk \*>H q> YrYlQSDEI{9%|[P39V$[kbaj=2HXL)XI:.<56k)~#3#GȺ#QbX:0eƜ\K*lB=^[ sNM$Z~aA(&$1k+hV Ry}?weQ.WC 9o~ڗZ3m[Zk]+*'CD53,[hBք‰P6rNCS  qO\N⧅Pg]}kX+hvjW(Ӭ `Bg{R"&y֟x$P2'+\*I#הP.ή^h艀_IM T[GI(9ݪ"ij`?Z۹ ʼH&PT>*727%R~ֆ/"jjey}ޏWM䈏*2}@zϷs4n#5cO zTDGf"ٻ}={T[{C٘7Ã汄\Sl~ íIV˚{DHy:(Nm$Į"]3#_%Hۛy3cpmA9MQ5=醇)Nw& \)έQ /ZLҔX4DC\J{ML3O7\IAڦ'XJ S z1bT"\|DݩB b$^_5 %>_WI2mSSpWT%q/ iP˟iL)bXE\8@![[ylOri6kjI_83fáK 3n ~Kd6mK3s_ھf# 񥥎#wAE4͚{jqXw@Хq=ϓ@wW'k|tPZ~J6 "`m~m-%;=pL1;Nҙvv(Z߶m^u eݭLMw516Q4%+rkEmaZq>׿^ODBU;sm͒tF\ &6yΫ&ūB]BlX5w7S "Hf4V^ \u3 2 IvW t:c" ÑtڊH3+d :y{#Di- #:aچ0;OCRØ\$,^0doi 첥D~⒭88AϜJ,ņN:e ҁ0MFdwC8Y\u J{=sےٛ ^U*h#9`7R`kLnV63#;RN^-C#NɦmSFd| B_hޜ{5q™pf7 {8HtFEVKd֤ɐ`cJhZ3gOϞ4ÀY$hIZHQ~L"3SdWҠZCKxaQgũɷ7Uzyq&}O鱑t䝹W6"Z++UP5er۶/..lL}Lm6Ƥ@ 20p"zHa3$=MGWrS{X|ok͠,`6m*'$I~(Z lqd\/)>_Tg:X )`B!J푰^1?49Ex^F?JVk j^;36)7ebUaKGD*K28$\1'i0.T;* 1%LdJf<{W66[n:~4 5HQWU5pKy,:A6'rǔ)9LC<3F؃ oz%)WwA":pk2`e `t1F``8JJ3勵(`(d?B:_jxMYCf*տ u%|*VC:)]XDggLV=EE/4u:mc֦1rkba`hV(H !!f@钦jih9w> L3lcQ@0&@,լI)5Jvy"S-NƜG+m̏X GG>[e>ť}= dKy}W+ s9˄˯կ:In"a^ uj>iM^ }Hvbhpi,fʵ_ETS3c3op⺂@cI@*JvYhXG{+ehΌÃ.{ddsa<Ol*Kk+ΉK5nظZP ! KݶM$w>FOGs+(1oYMфχ4sޢ`yWLòsɏ %|{V~9HH87JfX6r$D 8a8Qa1uyrrB&jƗtڸV169Θd`QZFY){.);=\D5>Cso: JɨJ5Q 榌#]Lm='2?DAY񣜜2e@z&6:vYd%}Ffa%N6E,B}>f1;ʑ`drBeUbEU'@e㉦ZC-'U3響}߭5E٫.!mll-Br.6q@Bv¶m=nUE<ˠ)):h+.ZcV +聺9Γl߶%%,JJ Z_QZ4Kę25Cr:OƺN|b{g~X9Єh?πLلT(mvIc+>fy+&hmS /,=8d*̞=/TypnlaTưpemȻzF03yԚtsc y@UX3V.Vj.@A!y= I $覚jD$P'IP!e.,fN|}8W5؛(+9fPC&I%@Jt'DelXaK :5/Duy*9 ʹR-^ĞШBuLpݑx[A d?q}+zuQXb&TX[kJ+_ͭQ}~Lֽgn dy!ܽn "X3)i>44yw߶VGMWkdч/F&w_Fy 堳5Y|WM#^c:Ώa'|0{W _Hr%u\i_*-354 >8A?yede0YǦ3l{ՃװBf?Y/xygmUɅ?x)L"T rWLÄ4K<HỪmlz۶tu:fm%p=`p_4+lF>ojDO>SuyFi=} ej,Sܜ^G~7g"!ҙ^$"ò}W[^Q4B#1-kҾc:˧H7 S=|0lCެȠ .p ,%aWp 22 mIМ8LMJzY05f~b%FΤU% qI-EtZ83 CVk}=N6S#j0sA!ȖAw ؘ>F c+7- @ni{'E}^,N,ѫz62'\GMrf0ȕMU$׿Qo Bpr՚!:_ cj&>enu$)crkcc`Yk[^G4 ;]5kf$ ;7Ȍm<s@Ln CBee-iwD|ffJ3Åj󸵦wӈ~gu5,j׮u:Ԃ ͊c;jf5#CD[_\dGK< -M G~s&ġ{U>WR}kϮQmlM:̓=ofА54@- B#2hewq導4N4lrJJ~ z(\Df ZB՞gdgߣ\PVHMs,>Uhn.ʲgdJHjQSБ5$$.p/> fU`E>p glj4hƖ =G9CX\NT\LѻgF o њzjB$r5D}p9S#R &yB0&ɼK=c[h͌J *͹1Q)Oɐ`fU6UsWv%<ܫ{Ɔ=E7U0Xu=97ٟpw\ H7`fFˡHICGm-d?{Jj&GqF 7Y(Lq($ci_u9X! H^1*0"5I4(e #LզT<P 3gm6AЂYusĦ"bC)u-IQu<&yox|WK-0( nA60NVC>!,G%qC ㌙dȌ(U[ϟ>_f '^aI: l&Bٌ 0e]X+d6Zd)D'e$Xrgp$H~V @ 5K4#<#SH)H8%ՒDU|䷥xT2LOCQi)'ؤ τ-y`j"+S\]ّQr 22DR#ۚ'aPZ j"yY5r24aϪv6LƩg^ޓ _)gl&g~zw0nUK{P *MsauF6MR)s6"e65O0[f!ZHEhuJm~r8F5~)e EH vzFVH{$'"%6TLED*:Stݒ$ɍ3fsή yךۑ3$3 ^(7E :3`V&%ABҝ'4Vp{d_n }}+u>)^Z$]Kۂ*f3D 9*|Y7RLDd^kd3BKNAoo#3 (2  n9w+eJ,?⛜!|0E(aA+feKq,vϵ-tA^ޙ .E[ЮVW/S[(huH̓ñ_!b 8ڣ?:iDjkY ҿFvKoorKf:I3]t2{ ̎CXHa J_{ AMITH1r.6%6wVQ327vO]P-c &^'Ǝ,xSihEj\/H#j^@ zV_^U-g^@B%y;<). /2' +bs=V|-fc" u.SdGDƄ<l=k~PwC.f H I_;\đFGe.^JauYF%WJɲ=@ bv?|^ [F{GqYXdIϢ|r *r=6 y8 OR[v9ewx΁H9ÝmKr~᩷y-Ljtu~Ȏݳ .N mf`EWݲ*I3yZJD:*uuRP{pv4; zy+Nhp6Ȧobq|~H⋠N0Q> Rn]:<8”5[Or}QQ+n8%4m+ #I91GCIr;@h,ArC[{]$%`Law-ż z\UYK~q N WqN}Cꈆ"9h߂hW)A^Fj܇<:5<4vU0_)@]fVA8Qu% )ZZ48lDUB[(B "BU) 'O_#a&ᴋ|mly1D^CjLFFd?30#6HA qyj8B![AT788r PA*_X`z_ ,-'q߿:*7*ra3sr`nfqr^&"/y]תy^?7[DcɮPSzpvr3ձßp6[*i6f5~zP/a@ A7-T/2 BW$m.R\c Ŝn -#d(Bc03rBOoھ1Ó#јk}h wC.S.V~]9[ڑrxlEwt\86uW3mK6Hv9~<{U}]js[rwb˚gx۴V0^@Npml^jn~̂I8(|Pmww>k[-(1Y(W}NQ$p!:ƄO8q3Wߴ9/lsxm`fc\iTCOn ҅c7:.P".=_Wy7myk("lZ ?[1BI&)e9ӽ<5JZ ut@/wbDCWa< ȡ2?lnܽ"wB%_AaV\!$(c`''y~A@OkEYH$<\Ɛy`AU`]}Ixp#b56H.BKfZILBuNf0~whm+=XU{;)|ED$aŒt5 ~F¤XYS܃u't#O*Yd$`6D:Pq"ҷ<0 MI&'`7t[+Ⱦy_/{l:ԩ"=` :խsfd勝ݼ Ɣjcua3d?)T:`m`>]yBAVШANj:0@qw.Z&|k D#v~7M/H0ʴ;R}6,OJU^}P`/~;p:0ٶWy[>6[_mJ1&&;J)-裡M}в%l*Q-bjw)CސB[g9#r mo-)_NE2']9ThD7}ܫ1 ]ex A6I- #h%x@Ub$~zL$en6wd2D9dDkN̙݈r&HzF` DGA3?]/R"J0g6*zU Ad&uCzIB̢d9nTLj M4QqT'$v;Qؑ;+;Ӛ-a N(̵uX.fy0-<~oZzܣ\]Hv}Az4>)Ltaksɏ,Bbaz}/O (ᱳ9b8:p"=bN9Fa869 7|[UhaqBK_n=\3/#c@2&o|Bs91Ғ6k}2Ed- l ڠ}t&(1P$Tum ⢵Mm~ p|9Yʖ{*L9Q${,s1v͐s a FwVn?M_Bd"21 K;-s~>"Z{ird /TH1s/ތPf:z<N9ƒd ++T&(Ž:x4a#ZDvTHw%ѵ֜/lfn.8GEe @P?9!yj $Li ;8pA!!gPp;?Ĥx*s0vF{*] A5L2W`z!%qEw#S@RUn9xu_&VC5~ԈV!".!hrHW8QC0KGS4w$LB<{"1 c=pz\]=ML) v fGmh''r a"G'p$16ZؠrpGՖ2:{gI8ٲ-5$08KuAwOw Ήsg*Pd.'akcyYHx`9ש: mWŰ3M'$"V$WecZ"I#,|D'|ȓdDf]':T,#\\y&g *vDWZ9̛dcw7i^m+*Kسo+S4d=RX՞RQtetBB£G^ZkR"{}08=Ex-7_iX` GVM9dp Yk%%-8"Z|j+Nk8;g* wSƒHL׆߈9",Q 3X.V 䊰da]d9 v39PeM~G \+0cm/ Wb+x`0|; AG`nG00Db3]Z(UϲС,s2)_/!PuTQJiw'߹Y2;uW:vdR:F {vu܍0uAT4~^3;䘽c\C By(wVDfl6D&(9Gbxg4TDI1D6?vSm9mnHfg-#`{w/< l{u2Y@SX;qt?[Zg9$p%"q?W98 \insR@|XJ7NuRe |R8{{lΨ=0u+SHTkTz ƊD]<-| O!',&?!>L4-{IGKr{*CpB)z%M;>ux%~eλ?){}Uoӡs˞zqC e#~YGq.pmR]k}"#~V 8l^ c"̑jr!2'&ܗ|6* E,d}>\Yԙ] GvF8۵XԽ:E׍5K*F91|ZC۷;*~P6Ħ2 1QI M f>J^cT ߏ{T"VW>군Brƺ}tQe]?{ b~T/vD( #Dz3|PT71WC\ҜklKe39S~^ 9:E:H;ygWI-I-P{ .Lh[݄oNKqk1$><0>^k4-,A0 nRդp16M?L@>F>Mcר-MuNB;ul7:XHD|Y1Wm8S9ªB9S"rw9/0#o1Aci@o R%'ht &T2y ucӆ_|K} d4U+Ɨ5:Wp`zI4D9Qͼsj~5U "[kٻj6EE˲A-\#"dL!1Uuyx r\^v=t&7MX)6)*p?uADyI8I#X+vVHDľ6oUTﴅK KXϗ'\mnhDoaR J<$׍ú087wfA$8we?E2>baڂR'jSsyqcМi_,bYֲ0E lx8*;!3 .Q \Li'!ZJ)Eb4_Ƶ 2G?UsF "7t×W9D~w[n^|r/[jͯ0D/U\Rvh[`eh I^-k[D,JW2FMG2F hBJqN~~T5?#㴭[ÚP@?5_TU: {/UU=Xs_3ޕVCmn,Rv9hvB~KC!|"V`ݖ([" `fpML ,'xE9( O#[ Yath9*FbFm}a܋Bt z^U5()¬8̈́ n]&|s߃_p|O \ъLg[S S&܉bFM<@*Mća=)HyZ2Y:;"pK.3W+h<<ٷno]!j!3t` 6ש0D9 ۊ9, #Kgs#b+}Quv =T[B6ztڱz9Ey݊-J&`"Dɕ Y5TA'?50`LdZZ_jնŕZFbq?a~dҞQ g0):#8;xvv;t@9{ntsIv`N@[sRN=nLVJRڻ[/{<ʴP1;rЭp[6))]PQ^SuyfSGȀPZlЖ^ ;On&Մ=d Y*>J?ٳ]߹w࿻{"H,Ǎ 4b]t3w2|_o5tCnfTY7 )c 3P GyDB9399 &di}k"|qeWD|>KTo#ڑ"z޻RrIvLvЙm9 ȘvqȲ%c1&{[KA-WQ#4p[f>$ <\y$72Q5, Px09ymܓ-/OB62(O.ͅYBEJGe[64 '+$dA.6s\XYš BYcԡto:ϥit05"?i[v^z5&B%'|4C`c*5$Q[ '"] U2[a&cH5]@VE9@nnfn##{#-ކ=0W`bt@yr!o5#1aAnL\w5Zq[B45Jl`j4vcu*gm=2 2ΛPo"؉-:3%̍Eʃq ޔX82II_68 Os_ [;pՁDsAQ*Hj\9Va#W\4JzsGsNOѿh85CHD 9IJ;*́Q$t9$z#Q]x֊,u`'?Z+5еhgș8v2#E4V+[vpgDP®'ݡn?σЪBܩjhVX~9bRa^CsUuR#Z& D"/Isq*keb=WdK_A$1kGca^8\Ya+L+ĆUI?ҡndD!j!÷[`x/3 v S8l"f 7<sAP`[&•ؓ,jK7𾿿_ U )~-\1wx4.9jڃspeڨGjiTUշ`Zi ٜ9w #B8W92Z+7 VUecܞq\KTIx-!L׮.yh $JIc"S(h*S^N_/3&Qe'XPX(W@ &eZ'Ds\xC2)D,D ԋ,2 \`ىȖ)$}_xU a/a]"90P<\ՠIWiSX,Eec^eɍU`0usDQTnKf%BRB9",>Ҹ/$0m3ٽ~eĖQIkMqP1TYIxyze授6@/LźKC\A4$RLxF[$Gx#0ե7M _>:(\T8I&sY*^U1NG$2BH*L]B%n Fqr4b}YTCVe^`AE#BXa=;vh4.]̝LDj~8Z3CU&En U"MW{Y4Qp@(/֣nAz!-\~T~pxRDi!¬cSrN<3 RcPv`p6s5X:ZCLtTeeC?Ycĵ?D뱑{HJE@C\}u'hk3gM qw̹?Ώ" pϩ.WИxk:β_C=]J"fɲׯ?Ŏ0UԽc\X f{[5AH3 Kƌ-}:R Yjr$E.*G5ܧG\K ),,BL eĤ*$as)[D_U]d dB|Xѩ O blK f ) ML ɱ#C|OaF1,Q(SxH s(̠Tru[; ~e $/qDABk!f9+qVW:pѕ,N ]Fف}D)$Z`Q| U~SWȵM0޸<=+ e_smzS@_*c5+W)]&]G` ?d-E$ =Gа[y])cRDyiUxN[Շo,OXe3aGvxl (g\rlJ nJDQ UsYw+qI"3]שC\tu߸G?mV^q~GĜs&D׹uϿZDp7|_KzS"UD$ѻH\e+F,Sƒ;zvԃԅQ57tiSoq.~DCgfzcrf!m(=7`)bL8`e"PcA u9*t3[95q4/mKMBm(Oߡ"2X|S|0;eԔ%q(k} <%:$i}N) M|I쀶q N[babO1(!IG<Ѳ%2,A5Mn}qTb|u*Oũca RD yK aFcJyPJXo!Y̵Nަ;( 4I0HEss%Xx)NJfH6jd(֜Cv={ 1GP۵Tt形ڭax,nZ\dElz'Z'_"TPE]4Nf6X_ԽQǜ9p0Oc!qS~GUs_A1y9 k @RceHT!qz:я1l$QFyP%Vv29\E^3Bh j!"*bW/2>-H }.w}Df-oDUm)"c^/qb:AȄp!Z8|֒|-;afҙoȏr^|Uݵ5zO$Xn˓uQ?nt/\ m{>'z_8=EiC@Ru2̆jqpt*׸2E8ĩ y+O'Z>;´; eCSіV].;9P`DYZƭqXBK^ E7~Z!9)>E]aQ u k bp.OQ93y&h^]&U!&A8 y\9[h$B{NO^X0GPAHEЊKnvA[9=p|$; ;W%ۣl Jx ,t(=pe8ఁ}# )鉍4LKYʝֆȬʳB_:`FI>C{%LCL'I58ך_$l- kYIJbշWDs9a7ExAq|{7V)Sl+VvE-(Fy$'=f:י@H<e*3z繏"YK{@6:OܜJfkEXp h40k*@m:zE H93)dWc|N/6F.uV|Ans.sD,}"FaIO71F*2ǫU1?1:+KTPL?d ׁ1mZA"}D!cR@b~@j>cڿ>bY,Z̊ :T4܂JcW Z5'u3|qm-W! ]AT1/!]с(%e-:j͇J%=Qm~55ƽo!Ԧ%:TrV+Vl~V'A*&_7ǃ4u\ <%6k Q/%|#΋hflH;$!+V}V*L IHGh ;hNcTJOS$:E5(I_n!1%"̎UqJs I^ gdQ!]$($<馃P]JsTJ#Q<-j~ruC$ZY Eٺz,γWK&7{o~ÁɡKOٔ,udN)yD -DI1YS,9&AQ2 v;қV>PZJB0z,4(Yu?{'o2Z `d8kw:0sDc@WCTT5'B-jëq٘%COXFƙ: s,2#t&Vq}cy./ ?rN׈*Wfm^=V 7lbCmC :E~eA1x[X5bBͅ-6"q&16g~qx}*D(XyfWOhA&NT.:rR)}ODJM͕N\" FlYqQr$ F҈]kuc7gw?zQyŐ1ug;HHO̙h[x겾#aaf1CkQd!,1Qt9zGFZfM>qW7oGC rkxzΫ!& 4/JegvJpLlwA@8; r37:̊>5mtO>%\e{aaN%+pz='f^0TJI߸))#fKbn&n޽r]%nM?g3K_ۥ-Z u|>C2H *"_@|.Cw5Uk^,PnA^¦+q(Q-;ntkج{0) _VQc\/c/ @%!WX/spqy8-wAuKwCw'Ծ;xQ}f*l~=k,Lcwϧ9XU1Δ.#;(!pI>G"yl[8Hb&_ ef"#5h`zs%Y>KH25wvokYBmP^opՎ[PחRldFN;!! 3jX>P{,2FNr3DwNЉ.lR'̅YEZJ:FAAÚGhxѹ!=g li緟ͽskHsugE=fP$LFeLݑ<#,cXxx_8Xd 3LH,ޒ"䩹%MerQ"qVo]ab]oTŷ<~S[/`7 43 ?D:-eԐ NzV,zCց٭83SP2=dCSe#o՟p] p-ʉ1l:zC 2_osLʹWq}_TGIKr!f]I񟶁Oit0wR7?BRDaATO"W s8N"su-&Uկ V{92N_ 8RRȬKkTkYٹ>F kw8E'34Ӣ+ SF"  NISX:Ϫ<'03-:g+ djdNX<Ðkpdo$nײer}+wUq  q 7H EI9zͅcK ͮ 0ttA6"aQRkxN NIgn"nDTll¯^N!"cD=c;ϬTt 38,7B ̺p"-3) *|aD,K;#B{z;8Tuq|dl}gW"#LcVѐY6AwT[ވ c6)3lpx>F60wx6N>hϦ*_=N"rA4XșXՍ)4 ɠ0wPvEEHЉ쌰r +/E*e9ZCd O7efBrO#*A$Ys.Z]JJ-N dI{$Ě#0cr58+jі<ȆU2K)yKS #A. B0C󀄈 E8ff..]ŒD q{% h6zgoQ9`adLeLX^eߋwyڸшx;n"!":]X1>c`F1΄8^P5y #my)y~9GHlT$G6-m᜚Emݟ#v}M}=%u}ޔ%ly R=J{fQ.ؑhf;1* M) #e<@v/Szy8 IN2]Xh>4mUZI|+nAqQ<͹*Zf7UC#d$Am6Rgqfb$X4KwR匍R@< m*16`-5npRd\=̃A-sG}̶3吸œcsW#pV2!.JOEW-DEFp#blQ5jL%Ƣ@'sH~0BT8H*)8 o.vViN=|t;$7E3q<"0G&D 9d鑱N䜓[\M؉>F1RN# LxsT<{okTƐ3S rA$PiߔE {㼮+kHnwS@ X[zȳnjiV$1B>=PHCq}}aĔK̩N,1X4sZw(o}PϗKYT뀙y̜KRkI*gF ]Hz~֦:mūLRZ̀܆)xUeŞT/蝲;D̲` F\Y_O'F2&Y/gKFNw.kޕ[nn-E6|e*DZJZ&hegUa&*6r}57׺ ˴!f^%+Jŭ4R{P*yW`<+żk4<=}/Ms/Rݿl#m,|ӻWU]dHH\=BE\k~6fe1J#?AS Q'e{edn*V(屸{vZ@a1lE~_yYLҦpE:N͸IotjKM*BfJrw#"m۲'G%ؽD2jF?Fkqg6@J E+f aLzֵ61/qXiעGyO|N(Yu^q<_6=o`l#YDr |%=-|<ᘱA3m%mdY`v iҀ}%#^'Kڕ#7#=Soyj#}޳HOP {yޭIB"nclȞ:4T;V ^*fIumb\nr"cqa?ٟ*Pg5A%0+ض3*ut@@VRE)8!k Go`@dFxoZq5cA92cKgEKq[3*"4 DR{QKEJӕ}z0Woo7lΐ[ok`x xϙsUŧȝZӦ-7Ȫl-X&FƮ-6;L ).9=wOe1c4flZN:Qd|}Vey9>\6H$LeJ7Jy_F,pD(z'C&{G!6eHw9n۵ TlTd7<>|i!\C%l{"cz%Z>G8"jgrWziff &`z]=-' JËi=dlPrG"(u(>b+$*q4s]^ TI5"}rt<IQ]=2<ΩjrykOºʩM&Y.8{b֎Vi.wPHzJuXU5|j+90 um1̆i6=rcZnޯ4&mᵼuC2W ػ1x2b)K+>TrQaHg53KlZ8BD1Myt; Bf>X [;ڬ<ș|N>Ea>,z+JJz V/Uݏ_OgJQ PW"ÖΉ+{8Vd wnni˧q) 3kT?3gX6 ` m!"Ӭ%%r]Z1( pq1̄[faUeplXEb nvoR]"ɍsw:??s;Zݽ ^ ;ӯDyNZ# d3v 8M[L#RL-i1R<<~waAU]  ^Zh쎪k|<+u.'_ a$yKTS痻+iv&<q^nԇ( oʂڌISH>Qc?Z3` *3'_nFc(Qv)6(]lՅex6/ BsFu^g;[ 4 x>Z{Q 0E*q>88J6XǏ>"WH˰\E16ưJuC"6Tm wZ*4U"r;DL~I ˂=QdFur8A!_:zc2۲G`% ">]}^6M0*Nfkyƃ1x)Gxf10| ?~uY"`)"'!޹FZ9~UD YD;&<]uhX엸 ˆpFDM5jO1#6r徔|qU9ui$1!O;xe#Eߙ¿>wSh* 8"ή`;g0$;SG.Ϝ1 A̹'_2A+; H @I&r_IR9t`Yy'b9=MG*X&3;dJp :*E8!Ē \/+q͓F>|\J@IkX6dH Ev 27CAզAc M>3njf َpSuu08w,~ή>|4M EF7 'dOHA$M5|aTyt_;'*6È/U&4l490zŠm׃_( Ѓ#q3!!½_r<fqA7<*$F'hy!!#\םZiʔ1󙍙lɒ6Kmpfoz[@qd16u.`+ث$Kg|>bZ>ye`8HʺSi3hҮ|>2W鯿jOK$"_َ?x]DԴءߐw?639hȿCz0u]0s390]HˆlkM͙M)!bQ`ʖG XXEJuṶ#`JWGvg2oL yy6޻Dx]ȟfC۞/z}?]^q6T, oAaKGso;g!Kfj^ڃԸ 0>0>I5?+UG{'5z3GTyV 2ZddF$.> vvp\PLvTEirh*6L(pڸT@DbmIS*Vl8.o%^ݪR'3Yx((X|= pF:E`46-sd4I91,1?{8y R3@#ul w'77sHAϤDҬfvE Vք)\^!Rc0fuaE876Dzt2j <[Wq=k=٬"ȑY?5kwW*=U] 6>8M3HD4tL%VTK2|F<*3Mf_U<)?vzIs\-vm^oΖ,xZk9@V(Ź6%nebe}.&"E߻q[< pw{LeHd^JȨ@rB8q+߱q4V];4M:OhIDm$>Uٹk5,lcw bxg{if&.S|>ͮl ffU/o 3>J!d,ĩMrtN8 "dBv>1a)nf6m:$;(@fWq\98#Ğ0oԉcW^j?lk1ߩ<Foϸh=$6 Ѧt¹CnY)1p3)yb\;4]n^W0EkB`xU=wN~[՘Er,T wT 8p +AU&'eO dJ5 "(!nVɼieŚu@LfFc@Dqa ȰgT?lF)Lն bIx&·eD;K̾Ep5LBV!;6#7/vGaMuiQb*E*(V4qмH&Qw劵Frqq5BQ|b,)-¯|IR+:pzm rr\r1,* A;P#4H[Sǀt|grm{퇙'4ޚoaϞ|JҭړYκGP6 Gi N.aSp]8Z6v[~ٯ|R2/=Of&*:c*ewm,&"&Kñ{Bnj#l]̒eMxlC$mM#1_#hپJ\Fa>wq1N@Ru^CG2"7~Km\Nx7~~zϚE5\@,\JD SrA3aANxb_qZ-@Y͍Y-‚%Z٫wxiڬw:^ȧHOV0sd{r"f>$..7h6b:#Ttn*-Dؾ*I؂KABB ]Ƚ}@F\fǑ]U/MG3Àr^6\9‡;1cspx_F0""\ǜRsnaXѹ:a!%\e-v|Jc@jnLaDh{&NEiHe߭dEф`jlE>,{KK$t_EdL2Elys2cG@Cxxr*WV v,;'V7޾V@PL3DkJ|ҫ2s[b)ak^- }3̽]!ʬ Zn6cj|{If&O>ʽ FR:MWο?CL[;,+B zpIU>OcR+Aga3c|I>3BZw96Z}3loK^4آg 3oD2gj2jd )~ +*cC*o?EjIJť}8n0>@tUГY [Q%xƨܘ$,}&a ϔPmZ`)J9 pYuZ#^v3%Dvo۟>"s?? 5"j #B3㒝U_6"HwTR6PtAVcB ba=@eiȬ\l'd Wtt1-HCX56$f>@蘼̸^agΛy/^љ)^w\NPr&IBCw 6OB=qÕ\WgbYܘfe?ɝO]GeNY31#|S|mj,l=#G[Xȕc*f-.AB(#naJ֖ێOm_" 2,HXbZ1Fv̜ҁt,rǛ0713*KwQU/a,3ڂ,LN4aH1P+fsf)ԔB<v4"~R>E!ؽT :1w^}K̈́x-<#(:@3Ҽwa67M/LT},c c$)t2 j.hXW.׼eU{,A:ל+IhJh^r~#Y. ߝZf3OZ[V*obeBX](4En3|x ;-e}TEb +մcp+Vj ƞyYyN^<@F۲'6|soqi^Kf8G[ɬ}z {u5TڈgPhz= 0K&K&|_ѯ?~G4=1z601 )]Tmaݏ3_~uQ`815n'qh;<Ƥy>uZًY3ՙwDks+|+B$rxFGG ___;"ȏ?~R0 #aLK&W{İ>"3<D/%xS`<+Cz?&b:`)f'Yqq^ _?GbKJao sq6Qk/Hݣ@ltaD5ȈC `?~ۿϟ?WZ;hIs"b95TyU!eNؗ$ӄ| !t]}͠nݛ'=/Pՠy}=Gߥ5_A;T$}<M^z08 NV nF)Ҽ8jfUBMCcٕ*Mvn&%ʜ ѱVjRkZr0XxBc>|Yҟl4/9c(l1dn|gz<#6f HuDr15a}~]p쨴dqJ'pWZ6ah_)lf,xy9ۉ> K -. D2CT*v[%E}W| wI>Y.Lٺ3=X7L-=&Lk䙝T=㋂y6,̬=[e4_UPK\q5 0ʚI ,<6_iZbw\ğj[,߬7O͹j0S8㽚0?8QW=q'CNjT#f8gÇFpRͅ%#)2R'"^暄~-`-]㏘‘avkp p ʤҴ<`)h qdb!s{t'g&iDLC &I T(ΨA(i:a\zlE.OH@ >9_K}ӇWWemܖpwe敪]Me)b궛RY3,Ѹ" aV9puWrp#2q+E#Bs-F&WQ7 k=ĬOL`ʩ1( CR45 š],dacJ|)zk`oHB;yEAn,ul܉glS?@S**.*ʯ0 QeLٽMm:ސz)^l/!:rDK ;Q>b5*T>oD%_2m!ߺK k֮ T+Z#U-&n*}IB53$Kgn\ixy4"*XdGi5f+Zn7g}fvmERkT213`s䏨Go,CJ>#ֶ }u:QA2!.Pwx`MBf+!eAn})`0!̥MSؕv+8P\ߧkif|ր6:d=4(Iep6vu `$VGc.]pa7LE v3s,b ۬[V2  eWm@tDA@6'5zCx/.KOu#=EAř^vԖpwNVS`n+H y8" 'DnNp|AE [/nơ,#lHJ@L`T֙U3SX˾Yyp+-1rp ͍gSnwBq~&gѹG3dlwϿo5R]sҍLyíY\.Mxؖ6FqF,٘_HEΰњAL>]c *3cGw7/ЫBBΑNnr[DQ*IBZѵ1E8p:Q)vߠ "nFR fEۡ]hY>3d]5"nFD-75t- WsT`[-"7Td#-)Y+cad#QY/(ڧ߂|JoUxX$|Gr3/S, Vdɗv k1KT5OkNnPvw y~X;W;!߻l-blwԫZy^  g Ne1% ܒ7yNS^njLJY$O BkG%c]Ucw/DJ|hf ;M[,颜_!j'P^{SFIߞXrՐ7Z 7O5N'H`fO#ҽoR[͐-HX+wp,M%gћ9&_`'2ㅘէr(=୒S8|D  M_%3F7=Ah6/Bw pnpʜ%dTuҎRdl"%9%(QȻj+ZU,JUZ1Ϣ$U[77mAZ݇;{RWWߜ\uyVx{r+i>i+Lhhg{5}lKv}'4{vh0gޅnAA63A[U\0ݳL١=t#|882SO.ugPYR˪g^op,^7۹Ϭj>M%$TR(c\{Db|Fְ$s4Rh{BBDQk#\4@R5,wqo:d@g%pӍ2.*y"ӽZ3I"i '': $&sjG _qByyNs(g(3 [ul_0q {~MNٱ$ܵA}8Yf}x e\sۇ B%؅ק֖(dH>L yPn3-JD~Y"kk* 5I/JX*g)-uG p' 3exJGAƢE$^ Ț(3ޝMr\c{= n2O`+CkcG`Zjyudcnm.U ޽58$"j1޻ KakMUHقq1zfzbKR_ZMbf̘ъP8r z5uǡ*W˴z6kgۤ___ff1z0v\E)1e -Xu9 ʶ-l;E Cu$s/fA]KL0k -Ru_}ܜCg: qvG4ºǡ85Α"c`#OaN> XwPЕ^U,Y?$wI|4R:`JK "?`ɧm'Ch(&1,Oݣu[ 7oc睝8EzۊN[3mDdz{Yk+GA}}{c{%x+Qo D,o;BQD434aљ!|-_[!"-/Hpgxw4GEY|e8Av %@QN./,":I,FPqSY렳V )^cRASRe'5m= +P@ <Բ}55j!ԉ3d`e1~細ڻԖ5w?,C8{N%֝N uTNmld?I洛d3&DsfOgHoÏ?OPGw7G;($U9􀪾F& c DfA wU-]~4zMӦ. DžHszܖXD%7%!_q4UϹXU=z`aa+#c;|n[87<ǜKrD/\yo f"6hG#h3˿k?=Jk!H&̑9c16BIj=cfap\PVagDP=hhfZ0Evm\(U .r!") š8U-!_3$=\3cz+h!,:!Ȭ-,8 ftx4/A_wM*i;$=#܄yԦAʪp}](aL]cVwf V0j(GJD2 E~č$}{Gr?&$a΀QALXK'P d'UGljX$-b4~yCY-|<铜p$ p#`^1u>!A s / #, ji^!¬Mjb%0Y{0wa%q!#Y)adr"'r ݪeQ` *j,B3 &_߿~0&>K&$< I+E 1gǜY10?%L _5"̳q4'k薸 qCA"S""L|/³lA&(hGdko9TU11F:$+{Flis@x:Ӌ'W2&-O|$w$]m򯥧bĘL7$)b(%2EvvWЛ7u,º7Vr{ ,tS*nˢ*EѪ"(QJH- R*Iss yH ǝ,ٹ@+`Ca9Q= .}#Ɯs_3 R,Y;py8 QyUb t0H}9^w#Ve烱᥌JT_{5Zמ_0LNS^WHY  S6uC_ @am"ᓮ:MOg]f+T\)cX9)9wglLx[ J`2b#ѝA oAխ\8̶ir@H7g1zz6Qk.aV!zޖ")BujTqgaBّ;\&:Ĥ#+*A+ 5+~x=ߋo%?z]w*nj*VXm)ʑʼn,V~8GT%9qR~ddʁJDpQ9,>R-W炪{A>ZGibkѲ,iN<1FSm|pOm*ɓ ӌ !-zx<$JUww6A|$yo%ěd5cn-zUIc n_ϡĊiܡ4+Z.|!3uI$w NBIJn;~iwV-ΡF]8<߈x<$waC[)J23|mSՖ[+c}O7wy9[KD˶T]z"W%PfR4E?Nd򮏜;2[>67EoνgGpmgGpߓ\(Ojp%WNEl$ZI{"jDPm;'*vKSwphUa4tfAJ s|䶭_ګyf TST9 ~ZY)NlRzrcU!GF_J2)ոUH͢<aW*n??W25nA8];S\ixVط5#}38 T11RM|NY,>ƦF,43mYnعRw1jrS>'k':~tUɈ!favไuNhgw举[99dzW(}ThIB.Z1_c}, `D]aə2_]֘O T8[o֔`!9BϺ0m[J R9w&V`32"plB`fF̈r鯦¸LF#Uy2U}]s; 'QDf j N3=o]]m&3~xRQybd庺wEzip 1%{Y_`OJLh'F_MTm^Q)Û!g#@g$iWz"YU:EWZo(d"M$$J2琉B VnH]0w+Na3Sߣfi}e9A(IB)7k ~~q[sP&T$T"77ʙK]Q>"\7Zcjbʇ=%*&Jg3Ɯc(<(Y*z23Sʹjo3N1w/ #P=sv㭿Jb[YÓ'ڀj]L s*uxI"6Y.kPjͻ?q3mP%(x]bi[}c}D6T]=@UX y5ఐґo)5=hU<l∈t( u| }f3imY4Rf(9svY9ƗjeU3H%Z ֚n3g&)c.ɔR@8C'(6CCaȇRWLcMR˚!޺Y(PrŽWHS5} #p5royht o `H\lǃ.uѼ<>Ŭ5cJnsjVzzoc~Us4 u"c3\MO1M5]̮y!z ڳ%\Ҟ_)b")?~11O"@4a>_ސ]0C*if???f>1cFB4 's +Z F L_$.3#;}Xf6@#5Pׯh!=׌lS1G8n8G~;cfs@cj_ngt:Ƹ̤5Q91^d5MF Bz|}}]ץ*c\"1.s3Rm+ŞК.1Z5i"дqf֮k_ޥLGknJVN+z^{ E6c>ē[5k?WI+2a)kU$cD9> o>c 9E5ƅ?w+SwgUZD@Rb`^ kdJSXOFbLL?ȋZz1Q DS5ѻEOt,Yڞ:WM4e#s`InaHJ[R!RtFh{@j59ȵf~/F/ȁ&t]1+M$s?|i"3d('$`€ЗdHS&`F$Cw#_̚$DŽ4#}g:g>c@ddɓΆ5Q5օ'xmyj[n tF,KsGp`",=a9%"c'OJv++h"Fq0^@31N\?)̚l{pC~ؕk5W8lǡ:f5?6E,KIkw?ϕ-*45O/L1uE"e20T"A&f?Vg2S> =C!MU맷~VC&ػ".g݄]K U7꽤Dqh[֌[2}[h5JBs;N=݀nەFȒtνV\б{ C~8 pUQm;UlJ>1GJq ۋ00p&pQxiLa\Ԝ.&Kp7ACe=_ jiTP"HIqOL+LCz:mnT^Fht%Px4kNzV8YB 6sQ zāsAr4xRH&Sx|'bjs4MXH⪫:j˕n\]HIYJ )=P*A랬i $ӪF{ FzfISe2YT USKtruut+fn2h)Е玼] J"k \\° G7@o_o׀Tj`GWM޽Yi3# o4CSfys+"+X۩&VkohOLRϰZ45>LR G%Ȭ5T[kѴΫD] ` Y ": "$$KXe,41car= VpVƻX#ӕf;s֧+#qQR<}fx=LiM2hR.H&!>wY||ݑ|wRJKkmݭF{d'D5Jiݧ t'' M?MU-Y4n ęsu+saGF{η|ֻCթHĖWp[cK_~휃MhXإ?\gjzX\ ][!b Z}E;h_s$Lb.kjDԴ5MIpH"DߢV rI޾dwnm Xl.uyjj]N?(A -FfZoVUZ´?Yki\ r*,Q#Ў\޹Z q(W]d~pj?!c%"Xr?equ\Զr!9d1& Vxamߤf›ek%4ΌS&IBLp#ÊAR[4*jHz5^ LMGk>CL\}9Z"R>W]UP$л,0ծ\>,+WRBi1s`k'cXF[k@Ad{vW%}Z X=Oc]UX&,>͌{*TKpYcf;r-:Yi"X켺u5iV]_7Yv)NR@oAXwFy~igkv3V9Xp1}^/3ϧOGc#f*NZGqM6Dt%&VJ^k]uDy"[7Ypq]W|>/ 7!?1ƒѱT\XUi3݉sN֦mDUKP6h~~~vm}agP~DΛ=<4-3Z2J/oiof 63n-tgyf,s4kruK"Z|y^82,u`QYB5Cnp/4;P~㌡|<%* ^gL$vFf B]*౲،սZn3;`N5Mψ9=w)ګƐW=8cި߰q]"^߫Տ̘hE8ո@FĈ31E\-OBwNs]Ǿ1'OQ/ϑtoRP$q&|RA^>9Ҡ\My-0u1~Lrv?تj*ꯞa(od?X(%輒i_aO!9򊘉wDj`zF|< >(j1Gmi ZtX T CiYY#EĦdЉSZ.iƘTVHDzy_gS'yA]qœp[g|C3h!)4=NjF–e§8U ʩ{)x\ּU(&*%TӥQnygkoq;+dUm>7-#BλS=/i~^?___i]ꭇLg[oc2֙{yomW1^qMQ}aF>.X6}fbrbcx:һWk(OW9]!P] Wm&*pZ11g|B1ղ?:=g9c* ۝Omç#b(aR=p޳cc4H " JѨޛ^:mP7f,4DuS4%TkGT۠@4Qk}Fx8 tGL"'j.S}> "pWgc_D}f:95,=f/y6$NxRi}޻;9*xM9Vsz0c:/>%{Zg(B0cɀ{"(@1b mͮ׫ǎj̩2C 7<OSH?{Ow[-RqE: IS8{YaAu]@ [ %4Hxd}zοy$C9^PD 0*ìKtULwbcy.Hh\5B!-X*"OJb:yT]!=DA2(=4iT@dz Ã_""RTɔ 4\}W/e"bj{ R5NzQ5<BgPP2pehXepﰔ.*&%sF$L ܑ<d0RejEk~@"aQ *Ҋ,jz$B@M mj.oMlwnf2Dx {p3.Q)dFR2}.jm^ӇX ܈pwa[(}#BZVVz샆9^泑hc{xS < SDBwN)9xO#PޛQ) 8r2BUy"Q?^nrg TDB4T[F \~~~T@,&?g4՝CԜבpf;<"̉CD<~U~}_ 犱ˢv$7UnT9ܓE1Mf2){쯜^M=$l: Zf5jO43p^:Jּj>XFjeTS2y(D8]"Kx A9c*a%"7e""t)0Y`Qn% SzE;3 0?nˁwׯM@}U95: "Zg*O3"R, 6[Z#˳'ugɕ7zAMG/i~ew<"Z#'-An "җiaYA̜k{sb6_`._^߻1NJXk3A_¯sԯw$܋W)FُڪNl7M{<|lhd;̕L1pKJ~[NwsȀIu马mI+L2vwIx/5[ e|8#&wk7eԬGulj*Z^bMLk 5H>Uj >dD-dzc,N s3 khq(ͬtD6&(V,ljFeI:N9݊qT{t9Lj1M[)8w@^޷uhK6L֣KĄg7*!sdbCX a)}A @H"|OW%L !P7|^Nx#%g-p @4n vP "\&к@dYLJ&]EL$aV|(gi(,b*yXT]$\u;P޷WsN_Ҡŧ!ؘuv3sA;NIxB igmcd#b\.kNN2T101}N<8*vG&b*,?JX5tDu݇fVZ>:,yw^uSȬ"sNFaI[r< V|ZiĜs>hXVӭ:ڿ&\IsHeYyD7.ךb|<>F1o4>O|{GD5Ɍzl.sB {-U[]}|_ZB4R쬜":L]Q5y=w]{f?8T޿~ˉY_m=)benyX1n 2 bZ)'Z~*P!MG#<`jߏJxT^͡v5M[6Luiy&QWG4Te TÅ Ḧ,okJiL41Lv&.V32ftw idAeϚ(^e*ֆ4zjڣhddQ-J Q0M+4Wrc+V"$*i)vC-/WNX!Ȝ+躊nd¤əã:rꈧ5 1xsznGk-#3MC9M WK0OB|jQjfխ⅜tNͬ`"V|<%h;p@>[\{4VZ^doi'w3ݻIC<)8{!޼Ś *rj1- o)w&\JPycRqm&: r|>Tֆ;LLZdS$]Ejg(Y+*&!05P{n֢*[H46?$c0D]vֻJE3x+? H 0‘*dՠ ZS̗"Ū)QYڑ XQ],KZ3q+uJA΅BBBnWb+/XqJ-Hx ʬ }D>/hw'G-+sɦTS IO/nRxҫKK>aPE2QbYiGZ"TVͯLAML"R"o[TlnT (GFBN%SAj L$;DX u zX">ljBDIðȩ fW'Kf4,g+uVcBA&"{K7EM?ύڕfC[(ET;\9% Us{S?af๖'m'c'gw_5 o[k9go3KmH2㏯1"U\*s< r oΙ ;mi/D%<Y6t.ssRDp:})<-#mRoɓ+v2`գ7CϖCwfK VvEd=cXI'zh Zx8ǩzcE?ۥ zdL|>dr*]4n<ؿ>02sh6^@D-=O惬*d̴‰t&NW+J˜#BU b>@nLN{XҲ=H.I\P_: t0pPyss{lrP$™r HQ,'"ґ/ɟB߱8R`2Xq ĚDDR4rWE )tDD&f0} -sWKƒP 5s´C3v}{P|GS M5"zxz\@S"*Mg8Q1EDŢMBa2c"hA! 1)Y057Shb=gkH31kH?x790xD[ g` 4ӴΈh$1:9C<sH1=%i8=z.bKO :&OC)J l\m{yCkɘHU@D:"$ѭ!R! c^Ad EuEp3>js~ׯ Ӭ7n/cNPtE."ktȩ'8zIoF>AhA?*ZwbkZDx3 sxw~Y"Euzֆf.t/ {Ɛ 8uHwr-y1* #oe^L^HL% N^~܈*PGmI])RPǣ0k0;zM*bѽX ={jh#W'ZgA|i)HJWYnQ2m=&^% |n2֝ τEbG`$ i&HKș 1#*̽i[( Jym$dT Ɖ9Pg "u],4Tj;uFM8ДWVMtìB/IY)$Ѡz#d.n*AAu99R51Rb2a"#'=Q&y5|Yyf!ue z-rLLulZcƒ(%30EC$.ȼ`F|y.&E_ASN@6i[{s%X;ff&R9uƶKwm7g$F+[iK(s:RSl {^?m^aGSU$U )$l[J3Un7;?U<w]ī ]ixRh*<`HI+ ;JTS̡Y7 =,Kuh[u`*&̺j:[:@emKJ[ST qav&}d ,bp0oܨ)bS?qqJIs\}[{ᖳ ǯoLQrWOM|ALO{;v)@!>~ܝKYHˇ`)V$׋R1sac(]:Nc)ّI9ySL>x^6)8 3K(yld>E jD-%{XGZWY;okBlj|mup- B)TBɱH [&1vbq1oՍc֚D\}wEyEx Z*%ПWr~>2n7/יZTר*[Xu<ݚ|“鶉Ldk #- F$k)J~* OUx[~KF-;xdx>87 }"G~uRZ m鞜27/H+U?4N? bH(R35} X)EZ\13@hܘ"pδuA4Xiێ$v3aɝ*Xg6Î9O"@F!`ex︮ÃR$H.BJG"MPUl~ʰZyd!{ [)(HX=|Yu]|HJnʹtAq*[ c?Jc>!<R[&d4פGc}prw?|86}'+0%d!4TMUj! H; =W4^bd_dFĄ~ȫm6ɇ []E kXk@KqlO vMÍ,"IGQ !;]gM|}0ƵZT1GC94;~xe_X ;ϽE"<$k1FUb76|po9Gk ­W%zVW@`+QUc:[Z(Hը*Ev}ZdXz!iF&D*@l{" 5447\;%1z%In$I.GV32̾ݙn2a^,fF0~ 8Dw8G=s뷽d:10ܛU2#RO˭[?/P10/"1:Ցc ?~AEu[,$]U{gfq]5 (3Z袪y=,0SZ7m9Eݺ l1‹`M[݈ڭ5*]Xs̒VTqy{QsLfaaeֲ,6h/s9T˔u"Y`м7Y'5;Do憺bzKTؖ(;Pe=6[+J yE,D3dmW8^[762XUc<`C1FYkczY;&BI%O)rk(0>QE:Q^zݩi0w>p}Bv%姚_M͢F5|ErXv'tpT\$/d0%" cںIk ^(Q?w`bg7:YZ0a6Y:P"yIk+sa٠z) ,5`^@ T*h^Kњaj& A6 }uv&%jۇi3P͚钓?ǷEffQLYxz&1HGԚZ(@ }]8D\U#nvi34of^h%tw/:YFN$;UڭL/I,Bef(pތd<blZJ9 #.c\>f=b챙5ח\012"^G|#%P~::*b-D#SW/9jȘ lXO0DMa#B2[oѰ+1֣p>;A -:Oev.;ߵ|X1To`MQ]j5B F]<ng Mͼ*g!6A3C*2JJ FjVBdL27-|Nv$fĆ:.bI͉^AiAfmʟ J)ףw1kCESs(DmAVS49T&6 ) Q\RU"{.Q"̻yO3dfkZӅewɉ.,ydBmDۈz(71 f]wq}z~1p]ϟ?soGaY1DZKu! BXRP> cL45"^׸R!ӔSRP"y3F4' ..q(E;~:u Wd DÈq{cp,rkBziGJ*IIn8Tnr2LZKF!&95FkGz,1$d*@Ms f7sVM 2%ȯ 4oø,n.冮 %Tbrcb w=љ, D@y"ӈlr|AڎZƥbS"Cu]I~$M͞q?f_3tׂ@ؕ{Dm,CC25B1Tnf\RH❎ GʊX!lHL]nv#KDn=v!$*A\MU03EBW6yR0w~5VBg*{4l;,_]g^I!Ug\|fH *9{d[:LS)FLר*1PD@%@!sAWTLg=i#bW?9xE_HzD0E )YMB1zq{`"5/WT UXn&Jbu7 av˵{! al2l:(G|Ib':wh^݅*xA0{θҶISu Sn.=ĸ )TIRfp4NPיs_2r?v՚b>3S3m;̕ǰWSX=nw_֎࡝}b4טDe $Q"tƘ1^4WN#'jvߜ !3rr ȸ ?64T;G+uk׷ 0qs:bf_Eӏ_}䷲t͛~z]h%@RJ[TkBvk2R;|0^xɝ3v{u!s^ VOmŰ.Zc2z ΑGƶNɤe1`iU= %u8\"W'1Vc.ٔ+3qpEqLj\b93&Ǐ?W߿8gf[dL ZAʳ"l0Z+ & W %/pNkg񇫉8OAo91b0bY[m^Q_2<;X83O <3D]ړgMɄU ŗ5:Qs8Qh71Mj\gBY2 {ʵ}}\Y$-$:we{ʆ# +O+fk>㊄7BJ4= EF΅%Jêuwjoݕ_?KU^W@}H88f82A$W}.K >]y FtgU/러.$.Bwj>v= ۬ɰcrvTP))1Ƚ^Xh[I<Uxu &y1D}k]0]5\- m|͹iӳmIHIWh:fi[شY~~ ul3&$@X9]u0AF揨`lcsNUfc<\x̩T\Q]33~1iKE^sTqO.C^,Ro!5]TV ƈ0T%o\$}ߝJHj}&<F|N".˝h_F*[V%/XC"shs0Z )!R"%[KXt8-JFS*mS9#7\z>)i)0nW>8a*ky:LyfdiI?_FIIX(#lIyL-5.5*PS(%Fܱ9>|X^_i !s!X sQ mbu0Ŧ[ȚK3wD[YbZ",[2#qWbUA=bhjfڨJK:f4mf!kc֣bKaBE1W3'(TPTh2IfiPs1::%#A><`nԛZkHEj-2ZkyEOF_ϟ3%p|}i "hS۾u \|2-r~#ۚɈ—q4777S9ZFg~ CaĢD#+f:X'۪)+%""?JfMU-`o]VBN3hs5&x9 #TC0&ЌxzaR'r| W;}KFĸS 'βdB~ K5w"MMݑc؈1j=ɐpm"XV!ynwGz%*xj2=o9!/%| AľDkEoRhyΪ$;k5ɺ1ɚ ꇐ)fVKXKH_3[ ( XmeY:o&8sJF2 Ig,a9ղ ;],^ji9e|:݈`-WrB3,8MlU [nn#BaULjWZCzˆ4I&!Ak"]]־BU,7\7:)Hfm;}=2S*7fѭy^3r(m9Mb}%Dh5&WR"ֵ͈:29M .tZY _Tɣ{H"{jm)֯F9D۴OKcL 9Lalnގޯ2ou@- ff_m)fv]UoXǏ{gQ@@KHkv3 %eW$Gdfj7W@3.g͆- -95;0 *\YSysҏ5kE딽͎4KUdLYȼ; f9Y JGNNp" Aj][3T[K2T]S0F-sR$.h=U5P+/N"|&h 54뎊fDxRMs)I2֜K8x"UҼDZ-U"@7[Ş/ _=:ZsUkbt:5JVH1+r/jΕv @b.&nsKͯh?9Gss-A=vDqggUɪ:5D7 UX![+FIܚ>tHH qU03\˫Q " 4S I$ƅFJ|kZ)1n^s`ySryk@B Qbh!v/OuT,'I2PE:OŒT Ѵ⊦g|uzjn׸8-Dn`I KSW_AwRQ%Sw,NR(UrM1<[Dv]j"8o dEwa1a$0`\co5$O!> p!DbDka捏f=RX--jY烻n1剶vrgׯ__@{#w3;MjU }El<4G;p#5B7_[c1ft *+"sӹjz5ke׬=C7PjȩX:i'fvMN؝GD~L@EDqȥ`!L_WX{PFjO[s`6a*47{ cE=eITt8EjwT޼ ˧"1u [0.*fvޖ^iBTD ̌ ٴUE#Ǔ|n-Qg <T;lP5șTĵGTY@9*=z:z"woЮX͠=h#-阍z7rru1Zkyyk+?Tl ȜT:3`8ţNIUrfZV? z[pg-#Ơ@cp3kf^iD1bm!UE%2IlP|bJU-9%8Tsc֧N|!6m˗bRD3I&WZkz#& gE.~qXj+9NM;lQcʎnO,y b& eׯq;׫;&䂤V m-=r"Q'wQ?4g둓v3t}'#~ʼn Y͝4cfF"螺9ߖ6 6fYASu񺹵zYyy~dRUw9 JMa;_[3U#nMN}TAF>eX7:k0nڐvm?CgzfL!k0o*Ȍ[UT\s Z>"<QD(Ѣff­f4h&fcOϝo$O &4d#Ľ.5&6Sg=_H u.sP-f_9}uˌeMX8e~o~q-_Tb)LGm&*K4U L5U%)"3Zأ]|:%12+f Hk~Kٮj 1.i^3 ^QGrɳ\-D*QfdXfM>twQ$ҍLvP]knfE]M5y3iqJG 8dpSܴ"ƹy][sy轻y_G/bz=?̈s3cցA}i+ @[dJr2CWM^;yKZT 46NƉPESoʸU9Ha=:$%9X0Z 4UfݲAD4gNRrr7~iPVkMpCUD;>};U+}.Vm佖NBkVY&5RQT?"Tl`߈wv<+py;iiIRd UktH>71(LS()C)|=L?Or{}Cfh cdo ^<)볱e֥"AM=Nܛ$27G(byU,jEx^Uun^ݬȔRbSBaLTgXW7U۠ε*01Hߤ!ҿ`3Gf6\EbAͬ&Yj#YZkxW}Klx@0`G.FD'sV7UQLl)XU)1Qu{90;Z7Stb=x 9)48Lr-)-YP0? Gd[c?QL,Q94SQpk$n@ʌ^9׷w"1qBm=$&j^r/i\ɒ'j$C,m ,#MVT{WyzkdFϣ&1=X+ %T6L?kBLFMl"cg2ܔM˥Hmj J۝.1E+Daѹ=Qngl|ahRVbn@DBKn.=XL 8eTN+g&?Dc.zss+UIHMjw}r퍌ij5"TM$rWƲ`2^HL8wNy[W9423/Ƞ|_cggF>CMk™ 1܉Q]$7g^ټUw߆~KDS }~nJ{u Gz g;9"1uٳ__M{)|́#W Uٹ0 ySKȌLjƌ][,K 3e?lf"Vr3]Z m)!:Pm0Uxd+7&x?0pԴC6m):* V_Xο AtT\F/kyEŧb- )4 P5$T').S͘4UCV$Έl"WH[{h"oiqq iݯjMdt9`ji?HB½uH~*__/l~~u\Kծ GoY|# ;ul!bsW?7fp*;Oإ^*?OCf}fRSҟɆ\'%Z5sH}`S!=QaAJL-Wg}Yͺ)wJԹ¹%Z;UQYeg81b 1.#"o&"L]6Lf#|1kR(**MF mGjDHooΔ]̺߯Kͬ2 z_pmPbsrҚjM&V5`"".XsMHZ d*@Nia% @2Lf>CBfDONί*Aܮ!Q{8s?s4WFDaI2^\S%/|CIU7d*$&uaRƠ'/o㗙# 7@/ S=ٱĴ}q:isIItWmݣKdͽ "B[ Α* sj5݄qʸ2C2U+b#q\wTs=ڊcLT[9P]4 fOНT5f'|6m Ptw1՟D~k2x樯?:fv^OxnyovCiv`WSH9@]UW}lF _h@ SWN]Hj;rn#S>XOr ^@)oۊsYqf;0f-5g1Sq̈́<2aM=av E0|GSpv]vV'rtHEZ+@;K3'8Mq(F/ )0Dns>yzFݝT0멦F2 f;=8W)Q1I<;w]+S#+`f;D@Ljz8=Bҵ׌2T؊gRj{ d:-3OPaVh [D'f@@額;(e4 tiضlQDlƙn_P*y}j/ =_n=9f*zcٮff&v_ g3nkĝl]Rbc4߾Y큆aǏ˴FWU([-[LGvS/fMcRգ!r-DD~h41$b<,ٿen+'>($GbVL_O[f0JiY;z 7[-m~Xp[yP\Õ@ YF=7,gV[6.;w6f'1hg7]3?P=!lux_\Euf|YbEv/&4a 6b3sEd!aWWf>=,A~ݞ{8m 'GE|g쀏LA$&ICVpuXdyBɎT1#\H^JJZMS {LX )ϲMʙ̵Lk;vڬ|mmJ*{fU+u7.Ec~DFsmXs:qپ?^?yAVOKHɼS<+<3O^aBdEjIn+RK @6uFkY rD[?(4A/g梖q1ΊCbѼ\%qxNvձJ>]@,J5lR[g=6ǀǔ;B*J6Izdk9[}mU*"2XN.&Ĥ _iPՈ%+n dU&f+M&y,%S~.ɌMq,hp5#SO̼u5v:_Z.澹[{D4s"ro&;FUTFp𤪭F*n}YR<#Œ%N$xiE\ӺU%$r.oz4X\zX'g"b$:}wMV$}]ϟ? o)vnԒFGzFyn.]³Qe_Տe>1vfjQ\5L5cӼy-3l""J ,[H_BkHdSN9}:mA/5X7KMu];#Rp]Wo&{Tye7yA e:5ؒWP[W >B)kW?}bSoy9^} #+bF1mI4T{fr`Sd{'h6YV2r&[-| dcM՝11hy(m6)7I6>6C愲ѪB/oSh$0yԖvno@c3OԪ&m9ļzKoa&FAt"%!X)GwTk{K3xwyvoVM4U3MO{kw5zݝ\uS3H:h}_Q^/T 12lq#fcl\ޏ^ e3_PuUw9?d!hqC3z^9+?뇹K䏯/IMII{u$$ByLiP=21bewIcCfCs߉%*Bg4prI 1e\; bL I.%KzTBZ#⮆ @\4!֜DSILdH EuC&KĖ*!93=J)A;#{`J}fTO_sòMN['n7B9{X2:a)kL\18%qβ2Y͐wuNLe i3ҚB"Ԙ˙6b4PT*5JYL 6~.͙.+@|nHSyZy rKs'VR:Mwko޸"Ll*9u`\#;P-npT ҋ A(OHB qѡQiY}ɸ20fM_rD]՛1FE<τwH#̬ kTC%즸MJV2]$ޠUgéd=(-f2L HSzVGbUQO,MqtoX\nįϊJԎ8Μ)5eέ I=[3JsZR$޺ 7P=ZC#!L՛[BYݖ$7i==o9[NsΈҹ8zԪ!A쳼>9IհM' OVk*89'  4N6g< laYz0L*{+%IIgݜ9؛{v2!m]Y'-d-T#VS60t侯br1J F/ܿfDyKUUu]G E@ş˵7k+_2ed 뼱FqG_>p}[:̪ o `>]eݓK5AEn!'CT*V_^-@m;RY3G|ygZj@(gzmfOĐ̈́%ݿt)oMP J~`Fpy*E8j蘏ھWn)~8ChK$rǭ\==V$Sa!f`7č=NMEd'{W]Buя}gjW+]x:ڠf:j ǡǂ/><;k1K1LD+er҆)"%Fv~d!ub,a"%9FV1҇ݕ |u# mJ(ُ<s4HHȞH+"E/GfZ~4Tw䞌 ,ʾ«XbsH1lgU,IPUWw{83Α| ks0_;a97|QB7?F$g8jQB RIuZ2BUbf#8fVdἧUjGeYlEak4jzIU̱WQ}ɖ;L0|Fzh%ZxU6-?=ȹ}Vb)Il],"JpZ\RsHƇʦBpY,5ZLJ|,15=7Z-4PmUp'?%2*˨a+ЕcyAe”CO2ds#f"{5sc@1HAHfV>Nl.3.ʄ>H[]A:lW ɍxӲ݀_o\"}Ѩ܃qos3>dM} hsjYJQ*s(v Co}dUQgs"ȕ 9Co&a&A&K2Y+g?K"Ȍ4lm(n"JQ\ںrB׼lpfhSxHўE$T|ʭɪq~D GM x6#R׋=ak?ĶlN)\8!94$a(":)= oxv2lN En:(#~0C ."Jn|z`d'{GXDz Vzq|N;dpw~$gM L_]ZoVKKxiF|Q@0NnQ c9CC òbv3ԧd!-UYFCžDRKv3FoBhѡR _M%96m12VEáLJw| ұTz9[__?t+{)=w2tdTs[]iPI{9S}ɑq8V|ө!Ӟ&S竬lnR W3Oʼn7/~ k! o)q%Cȼ#+ xăh S4CQ% >Ihf{/QT; @|U9*+5VeoF jr(eImiDj*D.ʱDȱNERX [Q{ )&D:˳fR*h{PDHXGe#!Q"Za1(I;,R<,Y5 ,MUX3=/gZupB&~cP)KV=;3YT3 8dD" ē,t@xG/Emw"\벂IUq&Tk3%!kKlN|wj^]s,6;@"r R%Ӈp9 H!oQձ,yfs},}Z>K^!iRɉjZ{o'k*zp [r.,dFvm7Y%)3C@E4ayWp-$\ |V#bW &z m52ݞ!LCJRiD4oXDV;-"_arb }yoywMŲMle9ܧK-X;Gricw[PGML ۪l"rVr\.wl5s݉_D֍Y1sD8A4p@`tSg4}:DQŠL+s`TQ/`Bћww'̈́bz.z%2*6!u!8M9 Rn!{i?BE.zdN.U.IW൶QΝJdHNTz-Kc!mHeywg48AXegߴZ3[H=ccnDcHܼj\<(WxL'dpls%Qhm~l}N_­]M:RL*iFFReqnFJV}$MEB!B[" Lgy{s;_9ګ@)*PqwiZ7)ᱶ\ow/ή\(̰4ӭe-qS,s =&:1)67C9 Ip=׋sZU7]Ձ_1|V&/-* Ͼ@N;|qQ(EhTeg<,(D4oei8 8` ۑw!;4& uVQ }z^4iuvTٰf涌P8F`/7|9L_̦t`z%/zׅF18~9-٪9i{9+!'vJ\ BPu9sjPUV;/1\Ǎ3*Z]ɧ Sdp 3QugGP[˜3K6^!5Bzk>*غ5:9`bBO 1e@nwi<0΅G g$y2);7q!f tb 5rkRnUb Of>g:,9Ƹ다쁫!zC y} GpMqЦAlsjpq*3~~|߿y 5{|ɸ* #i-! 2`v xۢJ*>kBU8t,89y ЧJXS0 Ƿ]q0-vhDL8t8 :L*9@c}Qazȯ_/!ܷTz-ueMێd@4QС`:d.ҠdA=D敆3a Rfs0\#KXVa57~sYECpk5bxz"Gt1"8[q "s,4"fͻ:9uZq8y8dOU f*W7뺾n7{bfi4 9d莯sPb_î2x,9]!`+OdDpypaT܏qBW$Uxt8{y$x+ep*THFEZt(#gr>~ c ~/cRh,?#mh ^K("cYiqfI#5pWEF(ġ*,D-hI /3\6*e2YBAf%im"z0DRO䧮HuaRg`"Љ>U1D2$X 첦n^d>,;9NՄt8OL>qGܕ¡)jhTD8>)!곰iBB3DLW܍p9ftLh\u\,~TOsFsJ0Jqy 2\GDT*E%yΑMP-~VWxșU A ٧ܖ%ZMX5cgW#LG0Ead!+ꀧD/lVEEWp3k&wX Yu]Id-ܒR<3 7eH䟨agH*4OkPDGBOa|-D16uc1ngi:Fh "n0'ivF[&ɷ9]yeFsՆ:gkAfxKV@Ȝ̏h=?bՏ.(zKu 9Ȑ9`jo5AKJ)^l}Z#5ȪQIz2 _}}ɻƬ k^iۏu#hx)ߎ'lXȥ, zr?VT$;v7-GD_K-m^LI#=Yi]gYWJ=}x+Sփ("iTw÷%ST5N-zyZv-zr:n.pРIph\2:@:҈f|gcC4-$|>6V%5eݬFQ Lٺ0ZDUx<\WD*X.ƪIkѫڦ8(1nږ$yrXoIp}>ozbmG=aI1ðRyx"[ڊTceWĤJΥ*27R>NxRh!C+(>y $졟qA`/g=*E (*jXEjp2"c;{vI?ꨢgŶxMq3ةR䆖!Qܡ} B0,*?a)[1P4E=}2Lt]<tBd ,Ƞ8NX8gv8!)`ect6B&F(/ 7O *GX]$S^P1wapsa! -"BӅ>"Di67k NZRM oYo!0e ]z!L%ra A}T XPܢBvo|wС'"Q^ﯯJመsǑT2H +evUWɹSNAx{݆NJY:RA:}kuJ㘷\ ggm~ZO4cts"ToQ\9o2p M*e$Ckشěۈj?;/[xH;9(O\} eӂ˒yuW)CZowqʻL{5Ĵ`bщ_OҍpCYǽ\kQي39+wTѮ9sޗ/%Y͠@W'O0{`d"ia8>fF[S7BDht(VWQ=B;V[7wYwi.b[NSo+9ՌBC`?U( Ç*}o9J[`{np6)'0$$fsÎ-qؾl+9tUMҊBjZ]HScy/vgrb/za@&>cjg=sZ="M$f5l- ʦ$"{H]-&뾇ߝ>qV-v*=(ȝ2Yga6x5i-"]*"ylyvk+PoI%KN3]Kk}__}ަO&E2:aqkLzrus#045bt-hwOV8@?:?y 1]Y^Ef}ARb(VﰚM\l-ICg 0*h1~DzM`Ĝs*ʛfk'jtdݭnOTQ0炂#?@}uN!<JceAUոU,9[D)| TlIu߉kQ){]Nr$tn;T:xe0lTVub5flYFy;2XZDf!*eLN8|{P'&6!L'Kp3Aຮ1~zi:.U>wShvgJSUt {͢i$r?U~*ơ'En撒YLw4x51fӾkƐGVȌz5))$9dLHAx.״yq}Ĝ1Y1݇[n#YUp 6,ﯯc>TӁxy~MZ_J)(SC1Gzٞʮ\,˗9R^gsQP%~_q[ x_9 9gCW7_ǩfq+c׼rPw[:A"f΃˾L[Q\ 1Tg =߯WښGe,^f7>ߢAl; *ACA@شM6u_=m(4#&gE|0sӨ"qr^SFxE~1—B^}ڕA]8<q9mCzQ]DKRQ-dޑc|ٜF\F+1*g3=RQ9%1jQ3 ‘SPEkӔ̈́A##|ؔqbٌ #j?$M*EV.ܴ!}~CǒVl8R7G`@pȱ3 ŸY. `+cxMBa=pN&{, GN"v%: 8~Ms a kxZ;Kx!rD#Ja#3AE(dpp[DI.+q|H@*/@2ƒPq"mXɗL ^iqDDHѽde}C]bM[){@X 9JZ+Q6}0  LkG8NtH2+&E,K̄,17dV { )17ͬ}Pj]TRЕ#ф՚z]8>wvL.**IeGoT8w{Ӛ1DN7O$Ɏ˱N(*cplxRv5ۦd$9ZGpmEց92̝ UO];D\c l7=꨷XG--_]0|돛1}R(ڈzH:O3;nnbgj~O -PQQEDFGO_Pc??4qM[_'DtB.lծfTNnw:0,,XB"~zSV`j5:K۽4awz"2j|Uz-܋$aٮӲpΤZz قʳrpҙW*39 ٵ|7 3#j`0  :{tQB~iuCW>OcSo))nɁD13a$CG(r>CozTd@^ET؈ PM%iZƗ"ݩ +8d7u 7 |Qs w ՠUPVBZ`zu.[I٦) w>^V'R $KgL?;PEcW{J|[ r\ZB)ceऴ千GIsI 膳JJ.!2ׯ:q}gic{.Fu×8)'ɖW[Z)c 혚;1^,P| 7KeR_0?YfVOkIHq׏G8sMS-yOLC5Ӭ( ?0̮ Үr6ܝԾul~ĜPeYf;P5[y"}G'===o Ҵ`os:D]282}q ?JGʂ%V,ȼ"Cd6iV/vYVXM eݛS>F3SV"FƱ/,eppOd~8Mԅǘ99GؤU4Q9`:?WS\pSJ=j?~HҦgbVDfTga#@i#ox؅741NCs꼎/+(P;29iQό2Z = :(0˕ pɰ@& (Ԓ:i?1BC\Nwyѕ%II,| $ޥ=hYJ0#bgH w[QgZDb^ 7Gջ~ÚIC=V{MEQ {=ƵFu[ELq quY!tŻSoM?+c"O'\mvYd*)J%TO"3:~B-en hΉsg3X/jr+դk{[1޲gxOMqWNugE)XQjLS$.)SdN6C^>a\R*[R橒N~Nƪ*׶\ ޜ7WXPr}K蹞TnnrpPj3fOX͞&-caQu +kDl'hW)#C3 t?@)(ŀ7jp94foX7;YpGkSUŔ &3Blsߗ][f(]0V9@DX @; OwBdw8:Q2\̹③7AηЍAL^~`d$.s^!0ӷCGL:`tRi)"6j'~;:/'Tx>ҽ%"Y[+KD%7m\ ٝst=뀒^WKPͱٲ*aQ"E .jv_0UU+Ӹ8@8 iےuզ4#pwl0 w%d,X~.mwhV$֔1h6-MjC+lL q~SH1Ne?~[PLWΥ{^@M|ssz~fCu6J!4[FoǞzy3! ~Aga;U!nM!0F*H~uMaM p'`BDfJ{bo9Cd/AM?O,j% 9c,뺴yӯj6˰V@҂Ȭ:{ɲqٱ2VGzBD\HR+`Z Xz(*-:l XX'lږCq7Hљʅ 19mX%CgS4Aj~,W^(mL@̃{awDoQ)AE1аWTL|y_z8o빞w(Rzmuup,hA hCz[x YZ|+gnec$&xy.!ZHj-!#1/7k ;o8!CABs29Yۥ5;,z᯿p$ "DITHYf0k1Daf.qscdrb 2ql~}}]gI6C{XZ8|CΈw|gP_s U2eQ1{~}#A&rDxIVzä-/-RԶC:Q/IY3u,qw)Uw0H7pe.$I#J_3M{ lBm2b$xG˄2H*ܔOUTy޹qȈ=Ȼfe8Ih >MyʦGnJYYCLso!ne9#r$7Y̜Bpyv=\Dc,G %f¿jTMmL1=آ֪wdՔeŭki=ɛ"jdĕuֳ]W-&0}fkR=|\VgVԍMB( Ȼ0礬٨w[My}.W69"vr~=}j.!ሄO1_P~4d lN3vWm{ ۗKomo=yf\5oeeS%OU~4+ְ t3ɈFJI?afK@nII~#n F#SEop1`9";OAaU7#` 쭶*ȝ9h E-ķQ\IZmJGiNߕc@jCcJ~S}c 5N}j^[UZΘ=7HMopؼU)2  D̄G1YMNW~ o-@2QgWΌ8f bx/jI7#x1`}ψ8`Q})K䞢ݒFتj.ַ2Ô.LVEHa)fH2fe ǒW) 3OuC ZwghiSlt!} 8%]cu0X9Ş{."I [5 _Ɂ ,a ؤۤ D^<,9kAIlNYV3 =}:p# 2$yb5(0+8!*%ma7SjEC.^\_ӅՖryگ'vdsWcLZ{` tCI#3)EU0[c8?-nYE&ȄMc$%1|\wYm(Ņ |db[YE]cpҴpw (7t-(~07cSɋ=%U*){Z9[V׮ pT2` 0Ĭ,irnB! {C4S#Sh_\ba=8#?؜CB K6"eԎxgvs)em.>;B8YGPP2luj'*SO\!-+*FUP $7;Dw:,_ G?*|6 G[2ݗ7YޤRԶE bD<"Y2:͗oJΰFlJI.^3mo!hZ풲S_A"Eq-:E3 1ݢ<)^-J>S=wAӻ"Cs둜.Վe;~ ]cm_y-kkѻcKUp 'qOfݬ;hǃ7Ǘٍ d%VȰp\9R"z]ugv]-9Lp(~dаv?7)G\ 2>έVDVfjGd^o}8"՚>Ƴ4D|B֙iڵ&CTQf5U0Pn KGXfnu^Dd0c5s(%ݪ,9RT&= "J5RDbZV]?cை؍ڂpg,vŇUuK$7RmXK{D {ՔT|A9)-ǃt )O$5 V P,ݹ ՌvH,fvjF:iݞ6YW:0k#yj>t<ϐ1PE Ì}1B@PH M Ha'jxxe td6pyhg/ӱU=G~q2t8xX1FDsɱȹ~u?l@eI*At&\gT.~ZVP?{ ґ&&PP]buMr?XLpdO }g^]3OZ[ՠ} J#[CƲuhO1m+g9.7ԃD]ru3g|y(\,w㚀}lꙅ2bWa{Fk7E FRf}fRfM 2g|2ɼJ r!9e#J2Oj$ \`n$ Rpn 9o߲|]d f1\[ pQ*u6MF(,2 %T%b^OѳT`'kwI Xzdoc@0ʱM`93 3F=#uVa,oIS^WHէ2"a-ir N wndt0j}cae._W"k+!wF_=߈R=|suwM2$H3LS׼Ŭ_e@VrD(nyK[<iK% }ZdzϿ/4鱪80=Lcֱsʚtӷ͸oADib9ǀݷ8D*%rYIۆYgVDncJܔ=yˡ:RVWUK3<~.2<xvKm Zљkϼ7XS:ֈ1<GHC#t{>Ï3^>CN }RpIa. M]lLqnT\^-_CF& DHtLss9Ӫ3RuϯW }8P3Lb^|RD5\#M.c_AznH3ƜZ H,$D (``'&3眑v>"׿lqFG$-@|)ׄ񜗩qOH,۠#&:{q 8~ǜDcu>D"1jx<@@+\z 10c|mi<)_ߏzqh{oVyDf\<s>cθy&f8PNq3X%V<5cyk q|}}c<kNtcafэ+氣b}֣ughkNf3( w&ըd&L&K>^]%}[&P<[$SBԭ^ւJpnc#"l5RꮪCElAlJ|xaلpbZB7m ww)dKyk^D2N 32E8Ńq/9nnuȾ}c!]U8V0 tԺIhaf/s׸q bDV83YfpqD"=U,! t.)RD93Iݽe33akGhMȶv꟭o2"P7KWzG2 3Nv ]s⯶ʲi"vt̲ɂm5@B!:̵06^>:QM:X$EW *ø溾5aA_iS*Zr}DJ'd)ܷHi^ [˱"o%$֪\-(+=]4 `jR[+)m{!fmzp5Uc(rp2ȄGAۨTdlVFv@"Sd(frn*,\DYҒ.ܴLĽ[=ґ U"'5-38\$T*2jR1GXVlI6 m"%tPb~ MX:˳Lg/466ݘ`jҢi"- ,0cZa8 c3ʚ紀*V7DXLޱobTb.2/N} Bt$p+ $$y]Q- +Bݭ,i0}*L2 ͧxKZu1'e[rD!K\S9e}g4 ޒH1l#6Ƙ32cHMeGOD>1}B%S$@z|>wՅ Vu#Ct{Pf3h4ڃ%tt7{MCpLPИ9s1D4f ?sڀJ)eKL2ڵ]Zȓ?PoePi9R>[5@!gޮUkJ &"r'Mn9\k%l>.\'z!7eoa,>?b]/HJ[n˃μ6lw27_gIgo;ȣ$;eR0ÉXW#uʴJS#ZbƧe@Zo6kluXLh7U5`S;\M*mA/;Frٙ͜ےc'7hq#@ֶV^֏2{DV* ׫̰S?ULv6ARitV RY  ˵NA5g9(fSHFc\ƋDCDrD$H-ͳeWRh8Ll9uK`ԊjCj}Z%tb[ꭐO%&D݄٩-$ L*rt!?, '++StHlNZ-LBzHÞH7^j[C)~Σ~^Qss/lULLxR&֍wa!cUa-\M1FB"B %N? w@~ȫ_^iTUF LK4'5r]$OeG ^3_"c׆r\Qa}j|Yf4)ZFXwavDsEFUC*+]&-b`V7>\[&;[&1Sb.şL+Bf[r򺮖b!{ӹPe^6a҇[Cwuewc9vZVP@R?i# V^Rjͳe6 5T kF~{Zmȧ}ù+eXdV{p/WdVװ "QXnQQ#;E7M.U&0,,QS> /`TcyUn'%mR{mkK\uwpS%4L&NYDrY?,{v?8J*#k^hkp+]%g1EWWca*QLIb SIe,="&Cfy薞֒a,e+P曘sqY&ؓ@@>tY굲f!enF KD| q77HW3ُُd]UH4 ]ޣsy=lIJU`++g"TzC|P-apu8r}U0:uJ8>],Pymj0RecD\MdrsASղ1 6lq"-'dM6}42TwwŜkYm}߃3vF1rsƠjjy1y&̎q[ޜmW RsutDnQlr ny=cͪL˥%oidBr]h#m22`.[]VA:?[+b U/N SQ9԰ T,$W~EsD ׽w%7`?2T(ߒ=zCye$+` 'kP&:RRbH@3.zT瘈P@Q$@"Qmfden%nf<&7,]S 9~ |W ~EΛ[9|PKBV0/@PdR=T r!uG)f}5pNq=X< mDJXU;|04# 7b5ʫE==ЈDnM^ZUך(*?GIH07r" bYA"_̜*wP&mnf΋gmusz2ݝC*x~y1S5"v90C4|8u?+8@1~2UapS4q j>2tgDƁ&3a|Sh|iTLbQˑP-P;/^3T%1ϯ8?3Qd)}P7!HсTH5Ь ڀࢆ+kvȫKP*l^D/z)(e !喔UtAQud.iݲ.$j5u*jI@u+a$kAzEabR"953/KOC9U>zwg{oF5Rq*C!A؊[' IK.Y-Ĕ AS%EVxQ>/P'kSQJ~т!rȔQWrp rHFӱD*hEC)¯T ).T\5}@ӡ,8Z(:Y3΂sG8 fTWBB'z3.H&e|@t-C\+۰#JI2LqKCu93dY3PyVfRBcS+t'J^=u6LLRL*~X3qZ5nyS$quwEH d8NcJEj3sy daTDuH,TU?ѥ}sd vG)-"̪;zqu,⧐'B *e-|FF2;t*W.AF4La9z6ܟȰ21gIp8@%\/#jC ֽA-WjSkn u$"]F9R\-|mCA8iQ l㌕=D=DrVշtH"Zq=QURӫB[ӢJ,pYinm1 ~ԕb_?lf&K%~0(Zn=&>3f$% woE.m`&EZ٬j{v+lz<~y;½IPݥE,§T>fp>R!$t5%"i3[-1LyPbU\ʆٸ): rMv9v Li(.AXY1 ;,*c]skO#އSKNI^/UN[cQ\M{>w.FRh,(_y@Hi籦ʑ/]4pp)&)X7n;GR+cImw`Ԣ# -{&d]Ul(RRC/|z9WDVyw@rC,&Sq>*֗(2!P ظ9u槲QMDRPݾн`GX'@TRksxDI0^$" / ɡº됺o)*"qi1猊DFG h{h#@Rv'[Y{ ̘`JVJ'cA\,E(êDĆ֬~aXZCo|<o' AYw7~h=ifG *2T]‰Ck "~~Y^qGF~CJ.4dIb۝7 ,*!]}\G[jN-^"uEкwՈbS"-aNH2 פ9W?m'Y6 "q;B;}UiboܿBPRDi>'L6Avѻk3Z4$F`X[:*(U3~>O߷Zzcw[d  Kp܏1fCG}ZU U|ȪըdJvRqtbƼX~!sִum[߂zowc=43$16{2V(b-"}=K>~G*Tkxs w&-]<{5(^1+M+ÊBb ~Nn?Ro|=?G[̪Y2FwbX{uI#.7{Za%M)p@NX4 HpT&ur -8Sd&b=mVu/]{7ު7(4U/1:4 ~,sQ}~o7VREFjz4G=8\uN[5c׌Tvw+} g*R[y;%(󯷡=aEIQ *Û04eAEL,5 & miA1\ԕʭ6hKUx @}CTfDg>S ֿeWFz<89ƈY%uy] lpbrqW·1a4soft$I=&c*wI9($#!ZiV{nS&ߜ.cdȺUG +ffZB]G7'i&M\,+G1]M*QItƳ{5#WUc))J}䯂lI1çUW;Xµ혩=zcw齪y9 ipFץ]$RW:>qhPQ5b.4]Oqjpwq>v\u5v:}eXZ>S]OF~X_,sNދHyMtPZQ0̟k!]Cؚۙ~tFo뻎NƸW1E3dgΎT_mʽzUМd~ͨ6S_En،SR.JxEԷxC԰[ADw^^_܀b{E\.ЭfCy!,|Vq b?#t!ʀ&4r>=4ZHu Q|nDӚSI!g)c"rAT۝[jEZcfh "ɱ. K;UFjV@C-`majFR`nPyOW^ l O3Q{ĝ_??1E5{Efć}u]1BܤMܾe}XG1a#2QP͘9^A}Hq$ V}U.x#D21H1 ~8se;^_'1ucDĔfNgyB5j߳*ff(v]Lwu6LWd \bIgDq1V2k6}`lv*w.֡`D"Ϟzs;\i9<jRNKDBT凤ZfByegy>>5`u"P{$"'G (vT2n 4ʦ^*MT1<cL5Ȭ_vIN )25+10tEj^qf:ׯ_Gyj# u"uQ\HpCMD>˘4Ĝ" 3!ؤo ]TT8ȒUU?RZ7Ms63֋[GL ם,%qrX ߕpi+[ pIX#9ѬA Due8l"ͻ$Ї>ϸh7.G(?iVdWYx>ƭ713jyFb ?1 J;VchfAՔ66%Ԡ HwpBcҒf!4Zn*)+?Ls^ v K2! o\IMZ D@կ wnOV~ GTXh[}ᵆ䌥"~ަI{]{akXYǠ)*siBTgץ*3ְ35v̙\4"Dy#aνab0k Vz ej@.h߭ 0 "Nx(Å"לCu9o<9_QV*uJ qT,bʴT:pE3 D\kHTBM2%Q`45QMd9Cӝcٓrؗsf9#<疊㘱!}[gβjrZc8rD+N% ,cZK03%cFyKD[^ӒL15 $BMpc@oz/^ߴ3m2 *$x U5YVYP8ǑeDr1"h1vjQiNR￿UtLsHx '77v@C|<"AktN!K/$u!R1VqP3h#OՇDp2\aqjrպiWDN׳*jv12sͺ L KryBɜ33N̫FuYfu]u}=)FHX}Fwv ;L|I(HB+hcD!&CURr t^G_5]Y9=B3ӈ)#ʗ9Ԕ4Ƈ:aVZUd3t8F(2Q@ KH9;]נȐbkjA]Pw1 [\ʔR{fmDݧ̷Y7Ng\3@LyŵmEQj `ԣdFbv|(D]ibCup#0IȘR HFCmTbwDgH/ .r{>#gK0<*vH&%oruթ KDZ'@VuT┤HAKeƙA, H+u~R)]a0̔ s<݇oq1;SR v,l ̘8ƠfsMx<~q?!j {=Q}q|fDA\xu/|7YOvsUJK6;R7F٢J8}dYUo~hrfy5S%`v+6qVr>VpaecGVƏ9> Z 4*[wV8yi-1. qNͣf&dߑ+4^tAw+Rm491f8 y [?kP,f6z*w.-,[5+tS~s\?q^E[15%[p)hefIsFcwL9aR!dV@:L3ܕMGͰ5.UO5^/v>wfȔ<_ OptGܛ-na=Y1+t|HE$M<8|A#' 3j6UeZ(9 k$] 0[MT~ ^ػ+"_*BY:ݏ,Ux1{23s) TԪF1n2<" U9+S@8O13s^Y)FA̔$Mp $Xlzdsf5VH;鞓v&15*{D0U^} ^^tVZ݃$((Tr.+eu ̖[)"y#gȍq׭4 ~)^t~8r,rENUv"Ӯ2M˖Ǜv[[{t!X$ToU;JB81YZHL 1$jj6!*:k~݅ PL$f5ӔP1Tl2Bw?J{AH3{-UfԄ-u;U`ٱ?&' &[pQrAȗ=dLH/6[X)44RUӨvQWe3Œc̈́9 > Sf(ѭ4*ڠIFBI(Z4svՖun$m*’`[FBIE۰Z22b%-[: U9_8;^/wDZWN0@Q;fw\JɌq ʐgu2!g2r3F7mݵ Eajy18-s C=yv hM{0xTWi%8& bk;& 2&%:PRHb* j]mC "<<2!@>ZTE r NFBG~+˽xf6qUI-___mBJne|x|yNtqj̜1kbslT#|Y^-6)]Mҳy]?"z}okoGkyERU\>Tp19{>o9+]ϦQS?s̕Tn\yL6ɯzDn$3unM5&43#.λ9dekmAV`Usj]Wr[HIV :1Jު[`#et;9ֻ,#; nl:vyt(:Y<@YER5z?g\S#ӎc3V22hc3B".1([.Xz;ڔJ_gC Q7{5D56=y !La5RH~CsX 8T_[f9'K]Wj 3833j -)pVOD VgɰlҺhkD9+yOP5ZYVTպXmjXqԈl]}􏺭u1kJF#1,#\ݕ d-؛ <1眓9z*sކpq1i.!P%AmL.& tXα.{+ #y]_+߲ta&s ʼ1kA,ew疾$x.YxljH.+5i >!? ??8"08D> ?N L`yc?Yb=)!9dKA5Uay)LݒST??W\_ ߲n^v\CiXif5KUKdp9$rƋxysV> ^ϯYaD@f5^ȃ5'B=^b/L:buEζc`&Kw1Fj \XGJ́TB/i"tGS~_}iNwƸm a͹V)Ua )dK̩CR3wl3&mP[?\ung5Ԫ/HB#hmM~>MfefGsx9z&/W S5B*5 &;Ŭ4GF !xm l_<1L}_43DS**5:)OG6pSMܙ&O}7|O7\4[?Ny[Cbvi=,-8SfhatVڈ!xZ+j!ŌJbRETf]qw?2^"]lH\Vqia֯w7Lj@%yqDG"Qvͫ{p8ϧql,:l9q"0"C+%/P.u߅+VAj`1F)~2Y2&%oZ`w作zI-/VZ5pBbNzE(ddjknWF>/4[S N6B;UgYZB ͹roeߋңxn}`%oE[e]{U2t6jnqk)*8.:VCHT둄@RAjFO!j&~U)K^|>u~|)-;-QZskS0Ps# dMFi#S`ZK#h-!KE͡H05ΖZfXA& Vk(:Ua#DSh+y|$ 4\\geTf_5y[e5 C6&g]UK{ K{)XndH#:WւBR@&:](G{0N<"buyC$N=kfRI|H=1N>T ǑSjs Qr" Dp])7/NR$/u; 8 -y] L2q(-{cG$fԲmx)鮐0%9ϑfx^q$acKpy.[K+p2&bkduw8q9Y#l.|T1yjb!xgi8w Cͪl/xCUW:~?d:Gh!p.X.Onjnn 7λՆN:ArOJ(:$- "yLo言)F|ֵŻTaWlXD0sv\~w9=.H:3}{7jz>E %XE-61xWz -f¥Q(afgHN5iה0E]."q ] էpK'|j]7H=W%]zqԗdo& U-sd,7<] ż7$E 7/t֨!W @(Jwws 1Ĕ x$SHyKЭO*ĦkpRٚd<} vp___Wq|AA|iNokJuY9)AV ŵ8aAlFAO-@kUSza,Ej+MgFY]_*FA}"02)mKqte۴%KA2*Yp@QM3AHĺI{IDP5ew\kCvRa^P^,a-xJ]GT0BuTNZlTRE GXC,֪zHE2sYb wׯ{cjRJCi+043R_2X8qa=W~f֤ȷT"]K)K$j!3G) 9JFF"\2ݗ13ԻjD[ }}+y3n΃Yأ˩VVR 9OeӜ( J¢20bk 84z)smb0I)"b Їx?5>*nM!a8th/h`7uުOɿ6l>ON7}U?%Pq 3:TItBbI/-ut8" 3#j["Uy.;xxU$2JI za@r }Չj`X!8mptkQa^I3/TCowhި^tGK,$nLS^ ʔM>cdΠar^IS}W܆M+۴Vp>q+:5mf ϯ/2{.N'eradB0$@KȔH)'XJ %$g$ټ^RR[1@ sMIR^Aح[!.Ÿ:B[ d׫<1~YV^[zY}&翦eѪ"/E2 W(X("VFw6?_ *菙\oY)NB(t ]E^VGZ>p_ ?_Ar?4bǜx>E^X(v t_%4!"M,ҁU#ʬj&&p& x'b X!*n~K@Vo=vKGߝY@n]ϒwy͡f.[᛭Ө؞ʒ2y<*#n͖QǪ/Y=|T!}47˴Bs3?f$E)6ex'XXAQ}=5!Dz6#ƑUVKX]1f_#lkGŨ;Qm"mߍm \MbiL뵮ʬzOz ,.Q}ûLV:E^Q,~6_HJ&xW[ kmVQP!̗h/]8}H[+T䫉dT;@+߃>LI$ČW3z/Ti'" ҃Z '5wղn9w[X̶+6(dFb)3eLY"'Cᔹ"mW Ħ$0q"ZApQ︁7%(s۵_+ʫX4J `;); jbj//Rn PF4|rT>:t3顼ꝵ8{ymeȜL4UcJ*GU!vcD6kIcJżyƜ?~1,JhJ}ܡڑEq304X-="IR1Li{όlCUԿj*zSVwN$'88IlN3o9׾4hǹ(%dJQ5vK+$#pmHEDF٢DtG0H֌x3!,Uf d' eM~8j9V:E/]jgnjHw.u{.kE_%!Q:C\џܑWwrPj-3Kl?  Hf jbl~pnYSs33UXfwgX^GoxQ:gi+hmדL89 $ʤ^FiDF8@.W̢HE?,'k* Bz,moB‚9'!,Hv|fL[nyC=VGD2ۍ2#) }3ݯS;ETQ;YH(JYk@ YQ/ff1藹/_`-/n~W D6-D)@)!Ѳkj b4\;ѕu@o*F7UubHK+Su<-v*T̚!g;T'ɫ4ɅlԮ\h LB,a{־,"ase#Bi6Ɋ("}hGqR 7; 6.R KK6 _9O7|<8D4S&[$,Ż8]E#ǐj*Y[ۦZVbݩcsΈz^sqPUm$VSS)bT#8Vs+ .sh;|1ge~Vg4"\sr/֓(6TV\<\Yׂ t-N>mõ/E㖍~Z1t*z[]"v-n_<~)1V̢0oܜݨ&(T)h'}Sy̻rYMfYwUq#R6q%eV pzkoҮr^-:>dʎ)#GRjr=\y (*vB(#KڑoA |":QTޗ"e="T:`y%Zr6,I:<)ʫ[B`{lKZY: gs$>BAh1T/QKw3]ք_^{}C8E/t,I!WQ)L@"B#E:K"iX:qrZ0A"D,$NkSS'·eb(y/ƶ>r3+AN E,;A8(1- _Ī{Vا$Rs{^ũGc @ͷ͙qT "7PB%'bysVlWZ.fYs"#m<%7Ҽ=1 !i0b@8O|8Q{ٙiHMo"^3 ٧ |>ty6'T. iGQcP8Zv*9C;HpIdD-| w2Hy΀$U3 ta_A1[++3ifffozYl:Cp̒A I?c4<KQDt[ _\C)I CFF"AqQ>@t1UţFp (\D$"-1D|AZ8d'ep~Hj>Q:UN>O,KTaaEDLXc$(1\^˺7(#9+ViAMd$N堒%TLX17"S5) 0_UyFU}JW. :c&*&@ ,_2BmvNxQz v*))YcYJ>G,CKAe\! e,2x|">Bˆ KIL'XPpH AdoP NIL`"$K QrШ 峦ҡ( r4T 8B*ˀ̕r$UȚL$I N?虓G2(^>&Ȋ%b=ȄŬ6۴JL R+hdnhͷN 2sS4=lO+@ׯ_D^6j4,ꠗ|ڇuZaOmx,X6ᣢ Yg$fMkn'!IL;zZQ2qhUHWA$EϠH2ExMT6זX o=]*FWQ\J `qwMP:Qda[mZ~MtL_?يׂ4#Qݽ~p*tEp2gK.t)3bJ"Ff+ẓ0aed=Hd=Z{}W:=%m]kH4#ZA#"؃ʔS J@_{AOjA1%3)dUUFN[!~s,foOFDE ՓCh֖zˀd߅5%\ƙ*})Zu`ǓUEC0]mww-`풻n+Ft@XF'jk[m%Dn⋅ r?[~6n ˔ޅ&CEl$DQϪ7yly]#3\›p[ׯ_5L"Q!abҥLXjkfyY-jǡo6HR/]~_v]ulĶy(Z+j 8cOr3Ryuzl+0|{YYI1)|Ƀ6}|) ɜ\mu[yi(-)=) F[ 0-ݫ.I\ I NZMiU嗕JQ=m 'J}0ʍB8&RQDnPu\23yd2Q"ѣ>*jNl.$\aHJX$3}zس\@%s\_drŅGP+BWvɻ=o ډ:CdWW,+U 5zB*GDrg?΁np5wέ˼T T%noYZOsM82;m Hsn88С4\F޴8IAncy].eqBFp2z#L,:&Eސd2wZ90B |8# (Pz|\3@I+,m:Ke/B,`̹LY`u-H5ѪKy=Dvr$G3̎1Jw)Ne(|I=)[%;[p@c\Ktmd6Y~cu9UpD4#~<޶=z?v4`+OALqFe9qS^CǏ"SvovP_Yy`*!{ŽcDq4߰`] EL4Taތwg lUbЩJ}gƌ-~iV~ӆVm UCߩQ]M;?r  p Wɏ''(8+b!F[G#Ո#"ʨ ⺯i7:k`|\)dGhFpe!d ʖḒKIKTGzX K~vIU(jn2+0('1C${RQt"=)DTv &f F-q̴&,?ʡN!oHedYN?C9ݝ*n{(V-+r:O3{A[| 3'}yKH){HzXjzW޳դH k<ϡ DF<$2sxeJRqFy-yZt_$-1IW}+bVD/[:ɠr˰1TS $jaQ f.8-( /ngA;a<Ӛ֐^D؋Ҳ}Q$ar' r<|:^ W4^;%ڡ"YlNU5wJ"t&Ud`hڬQ[OY &#@BC(YU=`E\[&*s1x~:ox7 8O}w2ʽ\1Ϸ{є|:cVZW&Q zOLcڥMCؚQ wH8:^I',Eҿ`L[lc'px,3 I\嬻q K7'j?4yu ˷6:QU[UMv\Mh=•YԶP;xcu  s\K̬ŏ0bLj޻@'.knbݧ3܆K%7G0m.ޢś>aP|1Pwgd1!f-}UWy)%-f_aexɾD!9!%0cN;>2Wc"Lq( aoQNJy~yNfaSL'0 C`n:N 'I'cA$y+D–9Oy<LnPIQFqibQ1(2ͳᑢDl<z'Nz#LI`4"R> <}Nǯ'hN@p7K2y8`aé̬xN`<6H-=f39l&DM*i #><_8f+S#YG5 ơՓJTS&^5ǡD$zwQʒ#￾<$s?_)"$<>V]@LQҺQxcU?!Sׯ?*Oy@"ݙ*ﰙ*98O?6WU"&G:"~}笂@{3s w+Nx!Mx>fB"~_!*!3#,DphƤ(F7?d3"~?yFUTWBTwOH"-CD,%bVJB fUg8@BaTBh+It \eZr0vk_a*ؓL(%%wdgΌ @z-\n!fN笫f ( 6j ˋm]fu# &s8ʫ "ƅ*٬K#"٪(343%q*,q"sLas_~^/%b)/3T DsB}H갭'eqd#k#Vx??Ps?"BL>dtr<UhV,BV*Ji}bVu:ZIfsǂZkͪb`(ܲ\QEhqTBq$dM WK|5lGM0|K~#Sw_2;E!YƍDl]6K?Ʊ6yB$/?d/:t~N1W322Ё*Q5䂻10QO XHh5UZ y;Kͳy4Hlfmbtj/ ?i/a񌯯UJڊcgr`*[d%9)__`dTygxg_\PABu\Wx`+"j}F'>/`͌:lhdUfG&&*J*^vM g]-nq%Tज़mdժ$ ZnJ ff> *0 (ebR̫e9̊/jaU- uߴF:VM{?n51#lq,ޚA%dfۨV-#%l-ulxSr(I@ P&&2-7V7`VW-`ep̘$Y>o3OM'ڻ fp,Q}<ݭGJ!LD=EU@T八ďМjf~8X/q-տoU"w`DQ#o--*{K>~ߘ9z>eFeYxImf&VW̖;9Ś ~pO諞S'GЕR"(脁*?B&DT.8_j-9IYڂB7wnn&]2L0@Bz]k Chg"X[y"1p;U:8gpʮ!$Nз@FcBdY׶,zSrUeߩUmnz($=.˞ޤ-Tݬ^t`UN^W'"pX+8yod߯ߢh($Ek+ pPOJrp:% Qt D o]MlN[,k rMCH^RdR*ln-9݇j.~;"RD]En M̀0`#I7RI=[fv>ђ4'f8"Ⱥ%qQUt",%WPUh"ѡ~Vcw|$y'ߥ )o6CIT:}$>u:!43`NAVPq;zWoӁ;n wnnX7Fw"S1UtH2 DAŭvq"9/?SM6ψIn+`ѬMkQ~&e&i~n`ѶK@ݵH%JANNҲĈюOM[FL TNA)y+\%z?L[ֽϿXEI ^Q'\{Mp $6WQWRodӥR" 1d]g#"##[vĎ gH˺Bd|l*"dHRTy""sv]~~Ϯ2yzPBzc =w}fGPaRS(vA4@ȐClB秛J;=":i*Bu&MqU⭴k\kXHϟ;ɜY$YEq{bY>M %\U+,B|HȾY+:_/,WC2=K9J@HpBB:`LbfVyuQQ}vmWÆ@Ȇڼ}6$bGI.$ JY|1ZjPw^b9E(wV~j˴)ҫ~ g.3f* )ަafu<hYhӗ[_P)ہ7Œɂ2V1z&3l֫X \dot7te[HDqyldžTP <u9Ks1Ld2%)&+J8ӓ DWPV!E$I;%vSn U  Oy+Z'L/V`h8:pi-ʦi8dqv*K҃c 5KQQfJ$&&fɎJs0uAӉ 1_5(V s*'D% S$£o5t'TؗHPR^ZzpUNz˂ch-25.k ϹIse]ܖe33uqpwo6Պ~Y@{\$aRjHyd5]mWl" R[l%DQ8.bУ զis^U'ql %_։.DlVvCgcgCE& ެ!VBY fUI.J!LDlP†v>hYuD^a&=*- ur7)"((9CDYeQ|\cRJvfnw҄s*cčUo=!L*]?י% e}3+>a9/q"rVVU7ELupaLnsg~P.T![mǎ¬+>ưCvo'Bˈ+pUz9ʬE{׳* nEbzQYrH #)[RօFɄ"f t@I@ҳ 9ܯeѓёnEAzP rj[nc.Nڌ]' ;}b66Gz'O76Hm-beڻQ3_(YX3C'UYww#f7EfF\ny1gCo[^߼LsW:2(X$=QXfI*!3cN/KѰ!.7Gyfcq&_uqVcdPxist w yւvX!(Y }0ۜ/c~J8,c"L }|Xh/vOVzʶ𕪍;9jIUZsa;Y]`uRf2sa״k@ TIW<Dž 9&rueZqW!u#m y<%6:R 䕑:p 3Ei&]QDiK$t`g1pѽLqhQwTV,J[PbzQeGUǣsbwb7f97 Vb֊kG׼O/2]ЙN4rxvE.pUW1tK,w&q=hi${Ӷ8Iz<1 ,ʢ>UjDd:2*'|JoG2Xo`$xc9<_NL<(%!IȬ#;sǴLG=j` 3ɜY@o~lrDxsDB,)\ 2wKʶ+%$+qSGd[3S!*DB7Fat@>$!ebJ dd)+ߠ})ݔs3Hl^$`1X$K0%6&TCB@ɁØ>O,DT V&>1 {9Hk'`2#HZ'dNޭ s}x?ǿMMaZG|y.,M_֌NDG0H<_7k뫷cZ2|}:b4^},3cqt>~2+(!Ql֮ש V k|>#B`OTU*a\N&2d֚_W'3,kq_ Zy~}Zkm>__>X[˴E\T")S>ԮˎC5!ebG;duRQ>))SEiyf6{;58̧vln|ݝ`2dR1fA6BCm ۶C`7W)>>>ݟ'?`PNYbPk Y8#=LubSIm iߴz`'0n7[kJJ76$G`a*r!oM RX꽋SA$2,ReA)hb jSasw_=CA`2jr&,¢=^fIT AuᏐ6r[lqL L*+Shho:DJ7VgٮmʨXRr0Ff上m4f[z󩞂BI#2<]XK}9SeKc ,F i#3H1q)\m-'4. sfM>",@;'H201 S"VJԚ <#|xhf=io|΂8bf Hy(tC[RqWz^# τ6iUn92tpG#ngz55/ y2gk}*CG30v_g1o :Erւows?w{H(vD]Z_o{n۞ krM72&,:?}']kTM!mɇ+&8Zw'ɢ1 "ƕ5C6xC @WTz\$z |䑣F?q}W9搡tTZ&IuPAHLF"]ԲH>Sƫ͵TKYq\ (m Nw7"(y=ldm.Pxߪ+:=*.,PSIlQsOzdv[+7|.zP6{Xdk M"F :ž%n"'"g:?Q{,4 ^Sc?*׋Jc&o1awhXk *NSoyĈ!HFX\uP-YP;ab;*CU3ֺ5{^}?*_%".Rq Z}xOr;+>"#)z1T|fPZu#⭔V( ?ɩڨ5$͌+~v1t"pz*jB#jWTAߊ'$j2fR3]j_#\n,jp+x?_d61~ SÊ<:X࠵,r{̔zYѕ|s&?R9ϓϟ??爠=$SgKoyZkc5#T73K~ަg5#B'g3χyjщ&*owbzX1 xD6"H\P8 P`DZg 5 $TեŮ^,[|7* l:=c8 ()\t&slJwq@) (Lr~4 (:ѥ}.EJ`UILڛ' QJaO3 Q1ZUVOkf|Ce:c)3#sc*3}oHc\]Hzp1Vxe_fvf6q,p0Lqd8³X`&g!"(U84val&Sle|4b7[d Qb|j?ԞUM @L ʕĀɐb,h[|>t65JX51UXR΂"oYK^y-%ڿr0%ML?x<H_)Cb ǣ7-0k<߳5Xf9 cVti d\L5kK{[f2,N)~2ScfIFHAn-B]5e1("f}W0&5_3Se o1K>z5>_pQuG=*B@xiu= mQUq'$li ݇i9lrNSLM(-(G6;82/s'zt7(Q0 K)=myS|5\-d|>$};dl<@ب "=|P` #rY||UlspsrPE vࣖ5mɐjP̈́gz⸆d4ծVKtSw:--}cN.oI 2"E5}z/Yu15gaٚ]^='sb,j3Cݗ(SCh!\qZt+(iXi9c 5&=^뺾|9xfdKdlES 7e&֤e3Q'%yWˠ)H3LjRH➡s" 1n*4PƝ:{qpLmr^{,@=E[Ii"xˣ)?_hۿUi ؑjڒDY.y5 L[o}\g&p]ôe&Uc\ePcCy#t=Da穪:ƸqgD1XQ.k |vLM6M<۸.Ihk>u|~|zHޚ5 o__}<օ-y܊}q4cZ O GyDK`}f34TnP3%k$DXc1$=328  9R丮 WAc*VUJo`לڨ"2P 94p[S3D5&LE*UAsKLjWQ8C@$}`rImrNhyl" Dg bIޚ)iI9 u^/o *73)P9XF eTD%L1"" h2.Fx= bXS11824\Gt.3R)s2B:HjH 6;>Z$hj->>~wT`vxdfo?zֻ̀>LpxD늈z d33N4'j7շ(G?~4vHV9~>?x~^zf^HD ڟ꼯/p]TPX~|?>s 3%y+kt[_v4mR/QR&ښ_CD{o0Un8ޛ <=2ųz1zoRRMn\[ "ʵߕ$O:lL&jST7vٳQQmO&s6Dbk3 y\?::kD'(?8Z,]s]jVYk1/Z?Q7ffyA4*^W-H)1lCT #C__N+ܣ/նASSĿ޳BoMIz\.Ƽȳb,Lk/a(=sL|ʈ4zo~f^|qfqĊ渇(Qb=VNWJqjd7bN7Jg#?ah+AQ"!ٻz0!qZfQ= 2@^=eY?2FpT:v#VɝNU]A .Fp͝U.z$)rY\xcٰL2xY3JvR̘hC8{Mh-D/WJq%Tf Y(5I3T}(O!{Hr!>?mdM28TJ\ßT7Szd:jKQơy]>bR  aĶ[1U9Mde,^l"eIݚSZD.ߚ$%_b)Jn<x9xt/ihE'%,G״(`-jX©#cLɳ`]MV(:. g*B#QƫJ͝;[+n]d;HOpFFQTvt$-a><^v8h%ĽBlX6-wBj30f9J``> 6#Vb.Ɋd U05_ s* LʙwNJ|uyM%Y>3 QWabR}W/r"+A9qi!^IچcmF/,;oº$@6#PuՠEXW9tNg0K跺!q$x鶪Ffw*+b4L~޵b̛T,hMYU_RGMޕٿuuf%{^73[r*Y {i8 ]!h1z¾*ܷn"(k0c1!K%hj3)&ҦQ39GZ)wȦk /^ m*]P #^"*- S<i16tn \`sq-_|׽=L"3{)f-%dZBXZOm`%7i["C+Ƚl;SUt:DzUz I08T<|qp+z>1P+!7zp1=H4.53x<*Ms@hQBdv+=jj#e?iII3ߕ_D{<4nj9VdS.#Kܰ/0(ze*tmnaUoQv2y]2w5DdR`չ3 hj;kaq/Dq]'hREJl\jS:kȋha}*?urˆTTZZp#i+E~T$+e}KWDguc\Y_WwW=)e7Wg5%/7xB {4Q,|BFTTjnDcBp|kAËQz[[TY<%)[ 0y?\׸Fi3(K!漯1]qub FnA+3Ƹ0+8ޜrlJVM-m'B&0JZ]O\bq@EsQn;mhR,qO}"K92!YQQMlp=sT9e/LRi6')E}XN5KUE,T=թ\f$VgIqZc@f|(DP[iZQfTrd8;"Fm EAR1$;^:*:g51vḖ$Nحz "C0!!!nhrr܋3*4s~4e5Ŷ7q;$nlt2 gZ{aW|{ ͲH$L]/ގ2|C+Y`0mE"jPoYT*#T%Dʅ{$š4ʠD01 D~%`2PON@KTU(i*W阈ceE\5].kAY ٻU)7AqB1P>@\WQ"/,efjج5-̈́U5p3͜HzK" dm8l }[337,EHZeCZ+}Dl?oU%xVkuui]o;z u"%Gٚh!8\9"p)2Wk5"q̆I Ie{-9 XbGV`JiAOV/~u+]K-"G^Mb^uxF<[=B%-[YGC@u4Mx)SM2=FD(/ (*b%dFcZ+d$|F[)nʛGxkm@hK@YҊX&%r(HznI&p @4uoٖΪG e,CQL(r]: 56?ҷm! =6{I5^>ciɍ#x Gp`FEձal\hu=;+fxz:Zw>Zft"SfqE9*~pe_d/L :ꙸ:3\S埇(-+Cj`Lyu۲̄64Hi?zM ٪>\3eCKC{^*ujk-9Fwo$7'K| *EEUVAwVv u3dCBY6V pApȄq DF[+wgd:q0~̖0CƁjl]H-ɐ[ü`oC̬`fL,f.5U[eeg2>Vd_DqL@&9ȍ$cų[)_u [ ,$RiS9&NMĊ>"\o0%YA [尨4¬t(jD9Ϝ*R+&#VX'fǘ(mZ%kp`t&jYs[-w8$a3gR0k >@# 9F}9Nq{no|˕UsnluEjV'Iרdz]_Ǐ_7PMBMv2^NE)m6X`XoZ;/zfïx2`ZN e#hmؙ٬5ɨl$haj$zz]G6t*F:~JG^k\$ '8>?G pFCUfs\뀠?4< wZ+JSKj3Bh#jۻ3EEBޮ+v֏ً2Q! S1XKPdD𡒢kL1k2T*  DmѺ4):Ode #FhSLyZG]~I* ڎǸ :|(y}T,ZWS2<zl~d1 A =|YLjzGևz}>$ǣ_DZMW+6?Z>32nGk;?lS"9"uS&CDKG:)|)36"󕙏えFgo?w LhM 5 $LIbk\:1SܴO7 Ѣʘ&Pȑa2Rl{AY=a&ck'jB.BBMLSJ>[3қuinR MZ ] &1!v+E5Lںd)g <ҩi^JỲ . c }i6Z1 g*= Ե /屷!~izBW$<`lu@L U)͖MGmb[99/tK(7hޞJDdBpzfЈ!,Oɲ6rƂG+90e 4vz$9K}|Et Q񨰿Bjt!˨ vCJuY9ИCϙH$󙤿TS"p'/>׸j̒ᬈv6IGfϯZ4FD(mV|˚"ξAK!c:?㰀5 ~o싖zZG?>pVk kMib͚A$ EitgLT4k?e}:mYo X& YVLjMIb>T "FhH{ aq`-6uyw"O鞔`ԊDt}ZTfm)whip'ү?/jD8>5b e4j X1Sc6j/BԤ2c sCX%"]vxW=EBeM_y\W,l;">d6ǧe MٚDQ+~D?|E3cw>d IcߢiiML[i?t٢hiboլ-KzZ>"iԔ5Hޚ)5G me]T\%Yt9̺;Aw;ccMxTȲŧ>!c.p]qu&dx[ݬ7n}Nj1v c\rX\wF2{9o7}w&6{48<}duQơh~9UN;&‰m:u߬erofͭ"cf]ABK+f3ED*O>Y}gLM\olUЦ<pw#Hrli$> ?ZqNo|=ZJwD"l} oSeH2)ad8R*4،Ʋp˟?0{r@--EGp]믿eR")U=V8}|]'21M^BW?_ 6_UjG 6Z$"f q J[e9<).J}F5J+TT-!ҬH_6(n{*|%=[0i޸Mw`!_ à{{~V J^)HEy#Α!ؐTM{o:gE!Hr,cBO%įQ Fͻ`[G*rK8r}˲TKo "o(U˙ 3]Ai)wR۷yj5nj'=S%i!TUGD^/Ti֠^`pŬOæ"ZF-ýD{ݽrYQ*yS!fzۅ88oDi*1-GqrG +R"5cE|;%Dxi(|W'S>VrԷ&][۪{%95{͚]SE(79pKg$#r%b\\o9C4V@J SsY!yW^ͥW%q3>8fUߺ]p{ 6 ^\ZLU!c~9Tw"T d^j^H0A=&w*f 6߂+hdٹpt*{?o٨+eS^y~LH k9ZkpRQߠLiEe?5H,\K謁ns@L)$tědZ9WBQSԹ^NHY%HȄ ,iI.f-c"p]`ύJii1#)b/Ϊ"̂<Xͬ\#uF{jT D* !* 㕻ViDWjNj[뀃 kjRJ&zֲUKlszpMV.:.͒Huà*O6 b/Ir(3ւGUho؞4iχny,XSQ+XG<-47cs"l6M*Z܁T@əH 9`d&KZ8YuҪݟBM [ԫo:)F v0k*LcfӜCn`uDV\AAq2{x_m AQj.P^;〿]3FY3>qig{KIy&e. $,N^2|HyL UDWs)IH)qkh9K1[D<8iL^ X̒EZ"=.Hn[BF̌Ϲl wTʶ9(C{3N JWeYUL4Ǩ1"1r-|ipJ=wY{x%JOZy/9|?Y3U0EsC}3s"RazV3IX`u`9_:1R P=UX7Ro+9&,.yn$u|^OH1[k 1㶌*ūd:坔X"dI9Vʾ4gϋ 2}EDeb[Q["D`j͝` M !@.ZYDcїYa"upB1GoG^g<`oO-~}/+&VL6ze7Úwlu(V x#U5\aPń/翬u2#ƀ]k@B5xfCMnؘn1}jZt|V6ߑYR8Wx hb9X{|G jK^'bZCTY;HXʅM2:#Szn~,G z Y([XN|:CԔLݬBE= Қ@ 92 BrBMT2hC,G @d" yx!D!+1v"#YBhVZ@֑뫩fxv<%hHi~WqORb7EfspE(Sal?3kU"? Us?2]Z^C%a_<M*CUˉ ܬi@"c9y~SUKe.jNQC{J S`#TB4!@iSx >77҆\%< AyڪtqDȄaE5ګ"]]NR#lAﰭi i-HP?Ik2Rpm*$FXkQ@5iŲ4U҂5ΐ)[4kfFnΙ6ʭ"h((z57B4q<6tQ1n'9i6G mP|Jg>f Ӊّ 3 c\xϧVt@ +rTeQKX<7ĉ-1BpjtoBf9ݦl޷oKd mjl6Ͻ3/v]\-tK0/W+~ssDkm'K,[FB|A@(kXb?ܬi1E*hUywH_T{kgnO\(t8{! _0 FۀChқ*UWDA/$ u q(248Wkftr1]'ܓB虚R ,&^rǭTS!dDLTpE^3 R"Et XxF :7 Qhf`r%*ܣ /굧 mfp62[j8jQ*h鞒 ѕs' d8be#1LR17)R>1 5akLPv"B9x5IW3fW۱vZ@G1BPnUn(L9#Y- lփ^W`cdIr$=(`yzvF(\o;u2-HIUw7fc t8yɁ⭏zo=$7!は CvDs}~t)?Ɨ@}qjȖHm_Ig,|NZ75[qKX O/A"3Ffz4$^W:I:°d7$udfqߠ.B(}{ʯNpTNP|{!#¼Wɾ́RHC YP {,QbK`ϩgKܜN8@xyD[?m̷5iHJ\6Cb0oVMS"Q:1}K8Uob/XQ6:o<Žq-zX ntŠ$+HUH':za ja~ƴq<$A"w(o*[VX.@5W#-inWia݉ nY669zonM\cDH*sq}y%6L, xMTZɗԨ: X79Zy'" hB `)pިY\ȹ?jg# YWMâk<0 SD}|]+GF >eX+Tn^6_?LNYӉ}w CVa^Rq3ds_K8oqcdz:<GK)ўmuMPps]BLUhi'-0f[fQd6`3!eNY VcbyMUK{{UѐcV u>xJuh,64(ꍽ2PM:"ʈQ7{ncko0W7TP2ޜҴyklĈderQrq5??h_ 쳁cM(z{׍lSm~aɔJZ%Wbƚ(F WJO] Bm\0@bw2{Vf[ٳixO}tZr/_,c1Bd1&+7`xo~˥h_vC-a. coJӋ\955WIeXqFm6Mc#Ed˕,1^{f!8ёpî#B9rKkW.juTL?a?0]ι!J\TD' iwL\3?({V 1Կ[ݮݵǨOɥw 2-%6񉱈@)-~P絠/oB5%XpĪ%qJ G0G,Әf 3ZWJ )V[WQrv g:`: _3(cAqV?ZAUWK=B>QzDHYx\#8F)CeVPgv ξQfK%m4S,Isg;K}Z2b=#Gj)an86܃{v}rueJ'b Xy^J}|A`*I,~r/*+Vky9r$5"ԉy%sM}{VD4]yzp}\=jeUxL,""r&7F;^iyחp2mvgU;PD9g{;Zb@Q:v] aY;fMAڥtA5[?? Rʛwݧ2Gqdޜ3L1k0䷄ O9 Ħ^1Ktf,l']VIކו#F4q22ƀ[S>Ff+̾]y;/|MD+$.oRFyjYye".Oʾ2S];z'apDŽL|TDth* 3Jv88=T6Y">Rvٚ3 -RMsazƈ::"*(#FBD=ňy]$> u&(6uJ{5[X$"V4D7yHDBf34U\Wìv)~m`"ؼ6o|_(Aj7>fѤǯ_aW)aL!%S=`GS,0gx68Fme:Wr\AP){i0 i`&CcT1q}GG6)WkRZ@[fJZNcYĜLc/TYTi.nRbm[(=jGT D5o 7)'P&~Yў,%%Qe4Gef8Hs2MA14hDsYwۑհ^ԍ.Xвn^G4ڎU+{He7xFYnQh8=yL8̧ψ`p>2y}|\cG5FH2rrjZ!ͷN99J uˏS,v_W Ǹ./+;5:/5g@gL&[DfGYʁ [,'K9'V1g HfN5_3'@xN'ͬ=@s*lbtE3WOP9&ٴUKfʢ'랂T7n*BS&QUbSvKmurfOc@㡲::ͫ|#|tdkXҪ>Fϕ“h[BEinninzvxxv#tk|8Q:Z8llZ*HO<:\hN'joi7 FlVν+nCd$LG}p/Tg3-Gh5Z},[6w=q$twӃ+"c^؂e 1˔وI@8y(t}pG "+h x.UXA4Kc?k ^  {;ZłG){Jh#t}:g,/p9n[ ч&hykl~Ρf!:z5UMWܣ.g{#wn?6Ţ¹LWtXiLͲ}>S5Y ;H=i̜:Mbʛ0uT+ͻ9ˇ&j$~_9#*j\m };kIml/ep^?$$kpo.ӡUܳ =\ȃ-f)yE[$5S$^+, Ƕ;oHv嚣-/d59U_5g5zŎԕ*bɼ7*}%׮2pɋ7e{?oP_9ױ3׶%b+lXA[KM}"[McHY"l̈/IGssG篻 O!\(>鍸@Aʁ7 Tp% &A:R6v=t #LQZS?>/Xβ93s"]y|e\T^@ׯw e{l|svz`G:Df"ET ; Sq3r b]}bF,N#sj#[ Yq_YyÃuÜpcVendY1C;u6F*uq:%g>XenS׳x\ Xg3ĩ^3_BX.wzhC*)lXUc = }9;rV;o 6{mK‚!= 4:V3q4c*h2TrcΈ-]h{5P rV ,}VKEF84WWYe\vJcGY?^fjKJ׿)߀psŷ/ĥm|\*sk[UuGH+[9G5)#RHSgkP[ѲvU)^x37BWusOH,Kܓݭ 5C0" Ð*cYDh{' ~$("bԎ:v?擫lguԊP.E2)c\um|t,:zsֻkEf4֬}!g cNwsvXolBz(+ڒܮ8;%P7FXs甯6Џh`q]G8V𐿾Ue]w :aSw܅L3P7ltյݱ3)ݲeqܝ&f{|v+!L:R5V0u7Yt3gn_1J>4˔ <"7n6Y10˜RQycVU1*1:jɶ fسMzs;ݥѳk#׏âL{ e쿏0 3& ͥ_ \o3bYU5Krut^ʏr"ПU(*?1HkVU9o,6϶+}v7O72d w{ZXBq;g0:IQG8'O(l+-==PdO{qZObݷZ^԰dσD7끇Yݽ(q_-!Kvw{]u֢6!QȐq  #فI- 㕌oa#N2u*14^ \3ψL9W;⩵j{}&|S]*(?&XI%w`". \%[ DDwpOjm4E177BG&)%۶ M?@8B=Xe]>Dt< (}cg5oάFYOE:oQ3:+"*33m n?1%'Vb `OU0\ &Rcc{x 5Y_$!Z[j@k:kGf0O/d6BiPm,Q.S΃L;7(͵| O^HZ^yPȜ1^òBQpLa|e nu>)x-ꪪb4"Њ`9^U=zX?N?W͈pX0HsjsлO6F#g8#j.`֞=9=:HvfnGlfs,s ҷ^ƚjűԀR1OqьIgr~Wu`vYiaMEU}c@r W.Rf?q:9p[Ag/ڧyI8p]ޏZ81%XPDGI_`#zT O,kV- 7Zɂ夻y&قMw+UnG-jU 5dwʵ/~UO@^5w 3V.d&OW,L ;4 JƈtY@Z/%v$W"Vԣ{]A>y ҹֱJ=G?/ARFog)_? GA2FR ?{d.y3sa 2ؒ$7-W _^A&y?\OU㺤&6g^Dx1"Zv霙Fᵷb{ qjIҎEZ>Ⲝ)P#0XƲyuByG6~2I=햨L|co~} GXq/`_Z֣SN|X(37(+1r6<*32+%ʬW$(Zb%Ǡ*4˻=AaV\* AۉP-S1l-_hd_1TwK(52ifkbЋW3+42r__e]޼{[鹬TzRY:5jDa!E1s/tf-a;[W=X)QVY5AJj_p,"lTI UYX\ujWD=K1۬ň~^KUrZf47'TI! V8N9;M7%L1RFW:!l'unߔ;$䖔E`M}go?2kWnTӕ.S)4^;.]~2VyٵVҫusm)0n̵`L{\c٧fM\_deN|y [1*֊ù:X< "|AZjP:_xϚV *Jrsi;+Xn].6.ܠaYrsi~BpfF<,iV:]Gfv?Ye!ozP]18XIʂ,'Qմ94`gbWo¶#W7 aM޴ :{Z{Ϣjxc5^jerURu/4?;kn.ʗlx kf-Q+=Kb~^)3-L= *~Kq9c߿55d|:Qч.}7l\WΙs~ʚ0QmGopTFh~8;~A:=1Κ3Bx<2}_EªwV0*42/3!Ֆ;|+>|fwojbʾб (+ l4bUƹh6>2G VO̺1K^q#*nYlܑX9Vݓ̼[m|XJ]rUNX*z.@3QXIr}6P1s?Y\cJ u~*8&S?+# Gu7!Vǘr?V-󮢟ġ=Vn@h9^/ 3~z?_~_>ݱ/!U20d#Q>ag\>)mE)N/:Ȟh?z}*&?,!ꊪdx@6}v{2-IEK.|Һ]u}M{̱|̮2i$!JʺInnXni>vZwvxa1Cv޹^~c0yA[AT}pCegk -zOȪz{=M#Eqh͍ɖEҖ(Qm5cm>Ud,iY ;?{@~F|La[`9잳HaCoOHrU̼ƥxUϑb(6]}el5t*#۪3 wΈ>zz-eR㚽w2bb+t3j~}\/!x m* Qp]`!)+6(aW,mX3q1`i4h $i(CGrޮNz{twݷFu}_Qj9"d33X2 w&9Ea6Jpp0﹛; ]|Ox?1-])3Z>*O{?;- X';Ö3JN^{1X*:ŏVzۄw/ `fsY Por_<ڿж~ϩ3&JV X4$άSxFc[yƾ>Q|nRⱇY|W 5G?get9 Mt%7oZuq~GhH :|n(9/`/1{gd)V&vPe+R硥n9za=Ƃ *Vrǒi~ Yŷ?f$K zR3^\mD:3o1|Z'> If7y;s<gN<`e>s4c9A11R25x#E wԜZr Ivuxl Ex1FE k-ktw`=: /~GےvuT2 j*S%髳45"bIFUY59j˧Q!؞_|gjaV&oRa1ZRX&uZ0A'@<E461Ƭq]1mfL 7qd{O,v&]ꥈثᏊ fG #%-ҬGPgv녉 US1J^K6ZkJ6PdzGv K%zZ9YIw;z:e:@'!v}K/+/wQ3%Ew]0\ 9sY78Y| Cy}}Rg`]/ M`wI1DSa͚Q ]ݱ7 [/X=Unζ5/Y;%F(&ՀL XJѐ-g7a 8(pl\S8 zR挫j®qp%.([œ4v^ma;7z 淗i C"+>RNjаn`[kv 䍘# 憙 U+S8Ҵ#^j]'A-qC6gѥ0`=ɾpW$Ba6Ƙf64^?Z︒pT?PmO9t_Wbx$8)}׸5ƼowxsCէ:$Y*2`򣱯BRp?|?RW*71z}՜35 ts da2`;Vl܄.Y9%hYU[*)=R6o@UqP=jDZ9Tkʈυ~ZDjo)UUlȲ>2؜S0-[Y2}Ƭ,m> 1I kqcM} fjE,.Ygo`v<sWhߏ_~ |um1umVNq@[ѶV4&uc;%Z!ナK1Vl@GxnH|F{hE u}1/Vs嗸d0"zeU3ء`sŶV%Q{xZge9}vbӅB):KV~fVʪ}C VfVV7z)QpȀU&mt"'~_h*Wp+xee YVy_5g"#6Yˮk+[AU-"'*ܕy(÷e| F鶊q ^yH0ÅrImծ]9oB•^+`T>"BfGƺa؆' Y7Yr5wJh'cޕ0|N`aT`3dbV!\Jk#YjTB&K^SpQj£A|$u5 ٓc˦`rI0j9M)\rm6uFpj6LȆBw(5MI~{|f}yXK: L~ >5K$& ji;ᡮ jSd ٣*>Zր[gfZXQC]0-;$_HW}"\_,`~dpCE/e k­wX̧C?>"$iը-W8}{&(Nd_5IZX5 u-hAqQQȴe++UU+b1t[z]}c4zLb@An_ 9yփ;Dօer'(jhϞLN:b\'u}___{7[>4XqIڼ~zuo`f:_7I? |0\jzX*{gLji B,92qIV9&Vmgc( ٸZ'w8k"sJ,Kma='e12sEv\1XEKsw%ӕ[Kc 9>PBT˄^R D15<єz=nH#)4=K>)RM!rln}Zy6ՍTևR&&*}l8zcsk}KŸnPnNQ)w"'5Sn̙׈3~Ҋ̷VÚ8Y0A޹4H7s:m=~hk?D0K?+54Q=uLIƈ~HR:I$G~#"n}956͢8•e$Db*}Da 80#>rM73ЭSf{д>ћ @T[1M165T&h#}%@myL*3c a5ѐ^{WQz]TEջ51ZitHЩt! Q%TqnR眎jk=q9㺯݋9+473I!5;jޞs9}s}xxejʿm6;|$Or4ij{ @xz1j t8p(L.M(D>n>,)_sk@ŵ2ԏ4OOЏOs yR+2RDL5YJk5|<*'Db*exi%rl/0.a's"?r&9dϷHܟaEv$U!cuM,}D-m\[v1vZt te9;r%$m6Vk-7W~r\= PDlwcI.b1a*"!%*Ip0;ϻ/ՏP8OtE`Xygbo]ͮq9-/|U XG-.#lsenElWX+IQ`vQ֢Fmªx}2TՀYgVn`=nmq1:gڹ2+Fsfsk4*< .Hg?;=W9b-Nfq:y\-L;Pa@13rn4&y;˯6s0(Y$ ov%sBZJ#cn <3~XwR*`^ǎTrG03u]cu)J"]Ÿ4֠SLPt76lsl{P7I:g܌"讠  nκS嫴~n9mR maߕ@mY8EYsRKb1kJ)6jJiܮ(@y6[mlT@4,32GWվ['kbG}}K9gKnhYgӞ3Gښe}m>2;jlx*W Y\beM/H6bĮI\च!2`bͭ*jV[Qu;NU=aҫɷ 75bb[n:]=.j;X<O|gDz3Mi2?> }#eHGk{$nFpQ,GPH^bt L$;njgw 08舕\UCGc;̆?`ǁ9F^ePoԐYns݅gfz7.˄rXy7VXԨgfcLĕKݎc!|t炱h9!>w*O9d#;bLaGЀgT؝$}K Z3Qnyqf톰'3QÕf.z-U&}߆5=0IaarشU̥KY$fs:9;fD7ncP?֒3} ,*;GLےbqg/v\=fa9"Fwyh-LV`H "9[kƶhnK~)R&y~m\# OSW2S0̑#,4σfG>ӐLa"v`EWfg5)X|oXk?Nhߣ2`hE5SWV8wu z7#3h}1ȝvcL+/Qei> ҍU:fΰfpT2&()thF׆XKdݽ5e:lgI& Wb Ie*l71[ zꊅ)9 ^O9ucp HK.c#~>/X@lGv';=m=Lr,v@_7 .D|WzŃe'ø# -j]Nɏo4-}ȈqQߪ0Y/'12 >s 5t7a&ωF$yfZ/Gˏ?Q;d{.{Ζϙ4BVn93^#ϙx]> 1E1|L)@ڵܼugkS/tEUX4,c\mN Yӄv-2gƈoTj1hJ1LOe[΍sGէX>q"⊗G=^_-Ƹh̪+Y!bbs Ȗ{BޮF<aB͌WRu2Խl s3;I*ʫXZ#Uz3vz%IHՇC"e/f}* Y="UfQT)\tc3yfkQ@TS )l|"Ih */z Utu]\KFC `0բO q L\^ Ep&҂@ Ffl)ĵ"r-T&_4n xͥQK=͙̩Oi1=Ēc4+U%,L8o+`wb1#tQr)DGp;I0,R%*L\-ß%(U03Fʆ;a1 ,ƙ+i E٘DrXm _ R^`!D侔 HvD,H5?D^SMoD$u.KR~,?D\y/b݆VFDII9C;pVI3 ogv9l!45s^ו뺖h!1Z{s3IͿ'j}:oy蚏QfuCqﯯ9Zׯ_Dp o&N\E> ENzәf2rDh ک*ku]񞵯j\Y5{Ykh!E;I.Z~C?Ɓ-ʩ_+0d-`^/N=HՏ줎}nDĊJ}"Eh߳! zmh>[0*'U'Kݝ5h'Btz>įXBZ+cEr76\DoSt")!f5,߿E?"~jo54'T T)p2jPhᬌH.fcїA8iOMֳqhiP6l:G.( *LRq&U&_!L;`,NY[\=Ê0Io7saV0)J@w\Urpra%&o (:љߡ6Tnm pLX!PU9Q:K'"]E.ldӣDƊFPctd d-_$E UKRZ_1ZLVٻ>k)adrĶ?#Os}FL\=یW<e/#bsNx3TV-Cϛy$mkjt^ anU N2^2b3s!MFgH>2ż"RO93bG)GV%%cf{ϰ̝RC~&ioBJĜyږqdܶP>XD^ "I]&7)2kk12i+O2oR#KE3/ ,dp"f=a^GML'sUws{?`ΆoeA||mU-;Øݱ#SSHvwb ?:)z+:÷T{= pS v!{@-Q&uѮnS?ɐrIP?yAZ\m%)I 4Jl}+Qgvn(mE'9l${ Rf'8&FPͽ6?:t9"\)$C$ʹO{4?+$p0)3x.w2K9kYs\&-C`pz5Jsrs*j<i}&&CC{^yH/?QwjmlgqCr̍|]_a(<"Lyb5tT*W3Ie5tMwz4*Dv>\6"ERYsPJ:~OhZל5j;EHEA%Gi*SUi* HUSNfDYQ*;5xxQ;T27u▉L;T" RiFԻC9;3<+3oXs,ء=?"_p|ff<ޮc^IeHRPC%xD7ߓ8u64Vs%)z v~LRwRt|,Dהݎ,f2vdrZ"bj hШD 𦎔 EG  Ijm I`ܼrBpfe2";ٌX3{VJz#p%PATҢ P*Se4u_yZW9=$wEB#)ފmM",=Z7kzG8AbK.Mj2;*f>'D5J7\6maΖI7b%KH_{%y+A tz\U0!".%}G@d\^ug^'8^dƢ"h*4<@(#`Al +V1r kXow8Ƃ1~^O0_o_+U8+pKñ"1Q7t Vu_,BwHE40ۿf(/`U&0owMĔ/R5UCfdfTq& 1E-D6']ߗ&53uLzpk*jV~/τoKE_FJqk!*׺=HMIm9rZWV6ZN295a7f1)iG*)k輦wN5"ZUUL[Ǘpb]﷪1 NN%.UܢJVEZs`jHʇK&(YYkUUjxĢ!< ^{. "rL;(ƄXjj&=>ZUTN[ ]gc4_g.{F [' 푀%V[hcx,f6U w6vC\V.H*<,3oycΘ™p #ޅ!tN2(ٗ3;iuǢH'P'țT֜QՅxIRrk6Kief„r M1[ vef$"KT}"܃U5拄FׯKe!vM* {pU#Ĕ[/3sHG5nGAmy2]g֦6DlI}Wc^fc>\3Yz]WvsNyfT KH^We)O !gD{*)="&iׄdBWtKՈ<mV> |l.SGl;Ɇ_Ą^0GU7s3TAPZ5s)z('}J&&An6p2(-#Tq凖;*<]2<3kE#œEl:ڈ'L}Myb-q.-oUSzwb~RJ{f Ф-6jZ Bx;r9Cw_15~6`--ҋ?#[\ܧ*'(k]e[a6X&.|RfsRvS "lpf*,1W,$,gA>5Ohm"U5믯XXrqRY͜8R9NOoZw'Wps)p>gd؟Y%a˛ չu6,/ }@#,*tt}uB!HUܹX AkVJA/GmEky>]3G Fb4G0Xg ک|B ekk"J{G"Ě^2.2M0wg0ڼ?e_{D|It_r*ך?­) -,FR)hnpnە;<l˲˖C -߉/فNO:=leďO5Vu&8glAtT쇟3ݭq2i{FZc1(!DȼtxB 'ӆl3K cTv"ӳ!o ;&"YHY I̦xjUv=ڵy&(aed"x)DpFy\y֌Iv=ϖiGN+HRV[y\s}f##G*`1̔#> _"LE.ĚN!bjA#I) ?9~yV?'39p^4JՕ%jyVCu{p^gxڀ)D lB!k8ٹD!, q =!Dr4 .Eε>`qBYȱ™9 ]($F<[hG%0%?H[Ogŏ˫/=HU3# t+8uOnBy?ڀc@x$h/}Rͅa;=U4kίk…+)sE#QD?1 j*}6OAֿ(9yL{A $&U ^?g`kS}|Ign"?c?d׏ιX\9,jJ! 9k1kc)lf{*BW <@%D _B3s⡦88)ou|@!orޱ a!h*8%U(-w$ Ϫj5oyE=BBȜy~2( "[>)*=EPQffXju4ɣ*|XTS q%ѣpUڭ_Fe~'q=6$g)Xs!rZbb<ފ*~zH֬%Uj*$גW+<2-GvodsϋG ꅟ6"Pʹ@"zrHR+r@StyO"!vLF5fAyresJxqD+phy{f[Iً) wTssRGbEĠ.XH)TUj5Zg0LuY1F '=Us̟k 32^UŞ.HX]})|q[X$58Ta-Q{,%ܩQaCb;*&Bm~)12љ(fY`e{_I|缕bQ+I"0ek=閇{͞-|3D_+/x~u:2[Az} sÌ^MT9I[sv od:a謾֐w&(Ýb1+I"6{^"+"CDZ"DD`CH~e>ȅx̀#5K#aZ81}ˡB"{AK#}+f1VE;BAu+h U;,3>RaD:YdĽ,=,s9lXM(w&$ݸ*;X>ؙiEĽ~^#[Mwv&A(qm6r@IV|ffBߠezQu5SrpOI#\Vbdf&L}OELXu3d[<|Z_kn(\2@z'fB@W]%:g Y{XN%aV&6K%~}/\"0H}]%taAm _k(1O/٠K]Zvd/X+\ ;4&W.sLVHpf X(=";[$\=WȎ U`>'rJRIܳД;Rc^nL|1q OP D6TɌAp߬F#ibXM/DL82$1y2< bY,^?eO  bfڌG+Ħ& DE&&| he$=p2@ ƕY=*j 9#e/9uK1" HYKPv}<5),D>v,Ε0BSX2oG^_WR9+?X8ʳCTď~]TNi*5{ttE`(1[rS"MYa*!=#K=C 9LD!A)|T,PmIB̈Ae+"w=h RɅRGjx{8B wUEZLMrV̉{|=gx0$_Y%>CT3Hr%쏥JKD2qؒ)U(ac/x:W5G)xdbMp*5ˣ_β/FœoE:iNaesw*8?,.9sb [̑kTV1VM}^{ V055YT#4$C9#d((Mu<8 aP^ϝcYj"/F LK)URaVw EQBS(Ri1 n<2Oo!7~zć9z Lt OYKZ~-l>D DkMe %VI`²Klv/AO9?O? LCWi]gf\i^JBJ&Ϩ?FDKOA}DU\:wCPCBBd45amv%zJӆĜm{`)l"aYe~O.?n,ƪNJAz? NE(V<@XO4'fnAtIzOVܶS? Sg`YUҤs" f<Px)87xflE_/afND1*듷aǜjsAy|.iKY UkzfEGq1yƵiFa3 P\j>($Zliu`2V _X(!Q hS#dRGyc׹` J w s>k c;#V3n+q6V < ?T?3֦SeXc\ˇ!"# C1ѧN3'\̝FDD+(Vє<[cSǴ4٩3=4}?q`ܞV`AOԭ=jqm `@2U473JE=7""0#Xd32rՉkIP~ʽEf5]SW|E;bg~S ?9ecf>jzxpTU眥ȩopxN<=>(?7Xk#?m8Tuao 5+Yq"WxzΉ&ʹ!(81yYa- g 񼞅upBvhc_ݪj#Qq_L+qԿ`1(A-UP '1"٣wWVIXE@?z`d5JanGFD&ʋEwNB*6n؈Mz?1ǻ ]8{O\;?^0II.w4lfctctE^s{ETJA)-%c[/ASfxP6r_^ D ~w i>`݃`PBr™aͅ˳.Z".RaZ˨$8"Ju`/';iĽ?Yd>CTJp MfEƭ0?uP%wI=eË`es}c 3~Il;Ld8< %޽0(QT( yBFAyq'VG`XieT{|*#Z6•+sA!Ƣ@A5|sa)RWO1컳j:-+|n6q+@i,4/t+BTTtqUbsO{yt]HmE(Is'Ҿo&O['HG0 HCT{1;r;?.g=|uNtܳ{xh ~|\Ql -ux飳 pTߠ i\ED'1$0 -ګ4_KD|-*4ISFƝ)|&dnV锞u㦜(U"R^%k3Z+D%y`f +aFf(ˊN:_c\9׺K8|9d!yjiJ;WO V@_'[5 P`6U݇ERO(4s!:*ܗqD|=OR֜ es"vJZ___;ZRe`Fq]T=L}o{y}}9XdȜ%3^"{!TIR lSf|rb U_~}+oܹ&1݀1^p'0hߪA1d:byɲy@1=z V\C>o5[˙MpP04d23͵r#]H{o5hk)`p!Q{z/c^f &!&3]Ly_`evs^Xp x^曎D)0d-i:[x]_wTq]j5\3\Zƈ`1WFR {qGȃCDs{9I(Z+^Qb  KP ɰ3US\Q_ŝX`"P5sBhA̙LRL&Vf5,4mf8i~X7>nQTj2최LP4a(CKSE\UUCk| 0 @oM-@i:rZ "k]E"[+i-bI(`¸wq ,Ao 0f]5pD̠o1An)"gޜIf"yFXnHFjo#.Vo&5n]_LTzs sjIb`5tIxI#T |&ܽ.9zwGAk1b[ Dl Q,""@*W1tXKF\-gltG2^SF7#;fsrUFZ$KR&D"̉Y~)YLYV`W.Jᨣ $,(DePL=)DrrF5ש9tަYGZ$Jk;LH4{xq}<^EPK/v;$06L:R#o.tKm=G/~Ej;QL-_8̄/P/iX))ʞRbx bfkOld@DrT/ u{2T/Ss^+?1oV~"{]B4at#gYcTJ>W@O1Fg@dm2/RKcVfTikvN_[bZ.kOm;YmV##a'~uZv8>"1끇M> &;Hjr63#b ѻ_MZz{R0s'޷J#Vׯ_ؖo5%gU2fOK𡾖O,I$Iz,"jYսb/XA04Xp7UE=zfj23GUTn dWJkGkt 1p&H y1k2 uLX5Ӣucw}>[%uqǚbcr;;$(FXDLwRIO s&"c績_j>֘>6T(Ͱ\ĵn}Pm 2j cL¾@]9%ff@e/ }7|EnފQ:JҽH< !DzV) 2U,"]7~d2q?ji0,ϋԌobF۴`/r5kJFYMֵRh|jLac<}oP~O$XR\dHYؙ+VKqg5B(Vǂ4dr*z9$/g"QLEy@@F@e rR҅O4H3)S)*Z&lőd ȉGPN& AnGC%R"]e!o=!пj6 c+ʪ. љ!wIuip[gɽQM7J|J{_UN5reϝx>& Aq4"R&~q6@bÅ I2 PH`n 1c@ߕp&2F*'盫|_jY#䱏;qf,tCr]^7(_JH`{\WYIsSDBW? R*Ex~]UR53n;·:=jy'1PUM=vYq_*ǃ<|xSz6Nc̵qK91bbfJ&Hu}^}Ҳ`l(aڶa@WXN[Xr[t@L\m{6:2#=o!O_lziޯgөCؓY^ `t%E,NE2.q^Cm 7{m0S4Y@{汝# !TGjʼ#|͝@ &R_?@GaEQI79KcTڬ2[L =3Ye)Zm|;-Ԭl5wv-4p!ŞrD{ъ)BAu'rY{*g/sa="Ԑ󺮗̥L{ ;47g;"m7lޖK0yuVyl=<H>=g UCr?>bH $E};Bک82GcfWG\MZУ{Rm-f7kd[_YK^qwH[̫_<9bwM&1|u,Zp/ۖ5¿J#HgvTXM DߦQ8ޟHL̐YKLMSH qH_9`5qdZˆ>BU\}r3S* znS]P݂RP|`i],3K~~($fsnҿ\Yɖ*L1i(*KТA̋&(쇙GU@ՔF-wɽub 3o׳݌Rx5^]0:{5bbInL گw+a$Hd^ڥSfM#-Y &6=Il8 Q-Cov0/x:TtS=k[:l?5}>9{55 P}. PR(UYS81qw 2'663jZ"Y8KǻN\znnꋈ\-i9Au]֚u] t1L|e**x՚1$p-3{x%/m)y@G[ #+hZrjh.L8Ux x͚ w=Uy FAe|<c11 $"}!PRh֟ϏG|f8ë(LDhv=0<I1Ly]#?ϸ"Ad׉J$1CfX2 BInGk6}~E6f:jt?"hf eojWD`Ĉ#Y Qb% hSSQk{H#U S5g>[ ǪDR]JQG4D0%iԓ=OS@ .* TIOAkkbr'*Cm3|% KDB2Q[Uj gŃKܵoTMMQZ_C < C| !j\tR-P BBZpEP }` 3hHcs-#)"3 Id5QCHxt>#CKLpZ#k֚)kF@Uc 'dBS 2ܴp> Q+ TR<*oAjJA9JZ_ӟfhFFnzbAlSQ&Hw?_ǏT!<o~LJKV2M=u|`o+@ۡR(k ]|}t=gBX#U73_.f& lLPwf3<^&:ja[xPܣ]60sozDE*1*k+fl.%noѫ5mIyU^d;zפm##g&KER[XNЀ6Iz%U?\{+@:Hld*R+9x@ @,w,j))pݔCЕ)XsAdːq޹gPF}>sDdto[XpˊY QJJ# 0fHe;;^oBn!J >byQ26)R#P;k:j(>0?펏-o8{&bǨٌ%ݗj|Mfp~ˌIY/L,I;5o*%UY5=ڐ*E Rф{/͞ k,3-v eZ#NVQ& w=~ӑP5CĦ\#"kH\ʼnOA܉KQ9 _B1I) >uuS4Req]םtNȈe |ݨnS'5k,@զLSUCJM ë7Z3V*e3rcVcOWzרׁTgfdkZw_׭q"˺Էh!Ӿy,l|y֞8uїJqo7f-Vu59^TJ,}V=|߅hFҜyon9/~u}Od-\"/4 kjP D oRn*[S: Ǿ}1 $GٵU|^lsDU1-w@ \.ťvO X4kKIY~&,9OKFqN>0Z%GNz`Y-/~vx<_"r'%~f-ndfjb͸0y>mx<~}>k/IP8 BA8)Fi%U29TBG!ҿ ۮ\Aȉ-C=)cdʢU%aU-<&ζKŧ3UT's4mkmYCTJ5:n*+b#*]4QTEr*dY~Rq/c 5ϪsկkT~6{Zٸax_Ĭ!r/!O_yJHQ54Gȕq,>`уS{>wtgC{# ./1e'ґ@mwnfAǸPdjDMH+Ct_f۱ښo5 fmEPyAEK&B^WX-*(oƹKY:2v]6Gaΰ1Ԍɦd sH`(l?Q^!/LNmXq\ B*Q h*7̊BiؼGp]F-4_QS""uM4,yl˒}^P)~1gւe BEQ^IjCíթN ̄D*oLntvLs=P "Ǐ=rxAFxvgJEvY"*hyg*`h;VM;)s,~W vEU>v*jb-kh>wAs VNQwYk'\?x<cs_nTIϧEPݎ") Xc+"L-˄!bD<ղ3D#ҰݎDH٦Er>]3#$<ɦ 6wHηҦV#BmqfxZ[#riXMd d$2RZEN]MMzj(6r n;{,~ KẌ{(ȍGf9< jF6q4U?`v5_]:rTL]\A]A4w$jР<]Z1RZdL燑="(2*nSw6l}%uӹG,&?*ڋj݇1^F+j PeJ{=15H"[}^_93̗ wѷޜ%qI0_8T .05dFE]da0Rf>D.EH O*ϳ@0ZT8yϭ 9*bKfD"eU6S3bl~ `$L'+j 2! j8:8dEgPu*i;Ҟu;j&t5N,V\ݝ ׫,:緷=TY3ewTU]ooS=VЪH(Wv-|b#qLlLs$\8BAnqM" Vn_pFs_~˦s5H6  Ӻ5 UUZ^?dfrFZIZӆ|y-;Xk)j8DtjRmc`JGŻI=7U Zϳ*Fq}H7/D΃2 (={[P}J:c&v-C5MFJ,=koS<#33w"}%qw}-)b9#9=sHIJ$Vv;V+׷Kl{Q1f8T,`&a(-xC;+O K8'SP囔L^icN< مw//=-gK\I-sTW;@">;~(' \YHW<_"S(t>YJӳ}Jw+SfeVUbdG"?3 i -y:"n/73֟1FÝ0HB%9g_gH|{?gc`vQDŸ|>ZbIld'$FHS-Sq>??7WI!Iy%Yh~Iӵ,nnA΄gx"Ԛ "FtaPz1CC`rMCz2<ϟ?wj;a&̉,2s]?>VEyF +`|RK}N23#LHd !z)(vFffG{^v{B8K(Vme.5YD4M1чہ#7&QĆtKQDB#?T̓35KNơ }EXi܍#cHM9п.8pe֤RD4x~EXG|j3`Dh3$GѤɔ5Tq>~ϟ?٥:h!*2S+p&2ڷms#-H lUH\~4kѩ&5 BCPbre)._}d+͍x}Нu_\ rfgæ>-ͅ߅TSQ:1}g'kEm+ achH<1ixKZK:̠j:Es;VKM̊9Α |"ST~]f&ݯto^-vnК^[GKxK)G]W`zZJ!%ƙcPSM(:YH+$ n;J7nƽ=v&ZEHePMsvf+2%D,JUߧpՈ$N%5ϙ*qF^[[N kqѲ˚&Zad)۟|S-{9ճYփV]5b Iz?<3Fk`BLvwR^kNM(hc>қX `?Z+WqRo5X|P\WHQ`2m«vSRtQWLL;k(crirL档ۃrxC_Q߭H ,-mRpʹ *7Xʩ}:>!EU(ؕ)n%)HXQ*/4tOxY=!trJš%: y({ ng, _V-v̘ľDLF7z"Sꦊ4j(xpZKkdvdep]ߗN$[3-B&"#;ei%O e) Y :[.`IbV}+ՠ&TVnf;kh$::zAM55*  "1"{bD[1ԞVV{9%!HvଊIq2hDzHڵH!YȷE&`g`މm:=IY&͚…9{Y#ˆѯK~lG*ƾ7mZf&/(}RoGyZ'rDE m yD5|W^ ?XBdnZwV Ä/$l\aOJd3Lj)Qވ&oaoM%Y5"9Wdc}NZėI2\D9ZլĚZt{JRu콳@Rݡ?sj{JqWM HtkM4nS0s%pJK|pSS|qT oV/-{q /!",ËxbFDpAn{@dc8>:V{C+DmmXf&Tn̩uG+Bl J9}J ^-e*ڞ_l]t~L;\E~v/f=1}_7 =^%Lͻ#j7Nh?0\Ww7JKH D%on˘_4Vjyr;׉7\Hx'</U% w#2E=ߢ^3KV|Cb6·\ͮY./Kv&jRdD&r p߱\ guM`=QQechB)0+B QҍfFq*x98{B YD R1ӲF'$G"Im0LwF@L>(e bj8C __~||Gk@ kğ "ukGX蔐E,iZk`:S"~6t=TRl˹Z1V|쾗,:q\9Fc{|wOPe0*P&idYj;O>{7R,:h7Ĝ6.{=־7@W .G@^f_'0BUe6Qrɻ ωO L[Iʔ* M*.n;Wcm*& 3M|M-8Y'UCb:-J[唙.:lތәBTٌ,?W`V{@m;Nj?=F?#kK5fsƭ6CEb2'D9@xHDx=/31r:V(F0nw;a/ dYU<}ʲM@kN!",#HC @P: {h*_ZTQw27]x̰H+FޚJQR=r]ÆpXE"gc`ZВJUwF& c r/"֗1˿UgD kŐ25VI BVc^9NT<ԡVv6 Odj n¨Hbh"mGd@EYjs\w7b@6l[XUrQ,7]Q_74=~[C^\(eR#H__OFf欔ك1͈W8k }M|_X&DP=3"y~=Lٶ}\s"z*ErڐU G~ֵ/hUqH٪˟kw{A 榨*lBPt\4,F\XYzݣss]J)a8z9;c.?Ju-spR/_+YΔٹasBE4 j jlwbq\agȩњGuT˒To-Cܺ9ez*}Y/Tc^7,x/rEٷV1cf_ʧ7f׮1юCػZ:{u[=`9!GS)n~q3jaeeu"5Ksc^"{~%&?sdw f%{ w\ h#Y$Y)nMQ9DAL2%5նBL&Q|d=3iA-pZo@ȱn6WF](.^L ,1|`VCIu-}|i `:of" M! A>֐F{F1*L;'뗪~nR#>KQ4>j4& S۔`*pG!E59i+!@xQ@,^>|$ H)'uǏ?=ZkԼNh(([#'*B9/Q}~=㷏4q)rPkFBr ReL1P14,54ɔjbے1Vz{#lH(B1!b2TǴމdHQ5eLDwFDjL53 DWMhFRcsD% TLsJL鵅{;qhk-hbL;d ޳5 WV>8hW5{RDMEIJZK{fsŎ{8ڗ cD0;"4:c(Mzs&p;`j?1v͚%q??GiOp I,\%7~!C(oyF"gC>z4"ڙ"|]~Z=c U_>ev4fzFyPZ>zDkԣQsXy9ǸDBB~ r yXRx@"-␑ДC-#ҌivPT2^LL%~H30mUDa&H xb9):tYr#޺]tO.?ݢ7 gafmewuMgN.CU]Ş ;X|!` E4|]UGڱ `]E)& H}y5fEL7_-NwڌY<Πe5k}ffEUqlNNNb%;2\0S-y2NhJh׼)5[*S7pwa4r7Ykdspf.֎zBn:Gʏ?~}Z#١JJSo8_b&0/2c.iƔ:'0A2!cʤ8P7Clݑ2zZ3[[VF k8(9.!˄vLҜy%۱{=soeP;w k1/fL "mGW0 #tqx]u]Vy#05)Ex0Vj=yzTOw=b6XyN F>ۖbolY~{6_5mXyw,.Aj#zK%u_9v20~ u&ywpn_tM*y/mM靨`!! i9CVg@zdb$89PE܏jŇi>f yvT[жCb6s͎ʆonMI'TŚes7E6ØOERk-7kߊnoI1_;͡j7"Vs1p 3q1|KB yCx8܋6n cff܊],[ovRv)^E WHqh*֜)\[u]~ka|A!2ţ_ cͰ㒥?1oqKNlt)cc "CR>I`,W_Ϥq5z,T,&lo˛֎5"㞜FQHv3m9긔[B{jѭ Gx!Do#8ǥS$ffשܙ"ئ"fcM8D[g?S{1`{O&Ãb&4`a~]Y1yb *Z_kю!"0f08X_Jr^ϡ0M's z5nNnڢҵ$`y>cx<׀`2T8v*`V6ao f:__qu(JSy}0`{lֹUH"%e8]̀{hȴ(|zW*jã.:1Z4Br#ckٺ"R?BUȸ3<21! FkE\nENCљ^H)@ dTg4Rh%CATLYTh4ѮD5%ݪDY'c?Տ#<OG\THkDsvӯו֛;#CgMX\;9NPV2eKUN{meդZ3hfMQC"Qq,q 1D6mq#pHrzӖfj&jZ#)U/fjkF،HA/DsdTu0(u2b UBS bUtMӀ!~G}xzC%Dn$*$YD c1ȐǻT401R8S%3G!1xG\cP_ሐJ<RhJhOO=G aKSM2F"&zy0"%lHR`z}\r`Vy] g 4rl%:lB]2ӓ vXA9TB 9&HAt0#J1>C FɌE!ԽdK'RQȸܯQr쑒т W`֛3΀b^CM1^ 22gb|>5HjPw"j tf@]`[spHASCM w.5`FRõT $"lrf! pdMR[݂9,bRIxQ&F2xeyjBᤙW5!c8 W^{f58STFx$keڗi_:jYRĸLQȤɪXV{ !Zm9#nRPvx:j^۬!=5ؾjj[TWSuk_i:UF+[Nh䝧ZAózIIp@8]C珠RDHf nx($"u|DF6jF$XbiU0LU~qHA4H"U 9h9h 8R?oFpE* w\$"ڌ {B!PV͚zVrg |h%@ s{s.Jʖ&btji&Dlȝ!vm". ٪Fjf0V+ʒYOaXgMAFadf} ~ T~&v!vʫY<#y^G7U$7וD&gˌI5KuWDIό1q$ 1(hҀD,ֳbA.FS.TMj9e cP~Hʳ_ps}$@87U9,LMQ !rB:(DXBx}1>bGE4U cg55m@R{EPB~]ڴvq]PdOïPqLM 2BkrSXௗL-xzYuϦf#4ëL/=8@b~7U-rJMZQDrG2D-dϘ;%:H y#}#'*@fceBjb+#|L Cýd)T%V'."rJvOx%2#zױ!dTnV̘͜[K ٲ@e`f$-ЧXsȊ"{dR fDϖjk}ƒ)6[omӶ%DabJVyGVnM}5'RVtnme4ݗ~w)pkߴvTk< /v7jpWkA%nLjuhvvPw \yB +joc kXҬU˰zz[<;7|JKx$2jY/gqD ojKĭ ($vX[ }GTD8ڑy&*y[VQj"[Gh3+W < ̕JpYwQM-1sٿ[É=:eNQT# 逤jSHURUS"y]LQdh!?_֞+Taf _nV)3˫R+g22LLJV8|XٜwnnnĔ|sQSc*ˇv e*U7՜ԊyƦ ,[d(  y!!*HI) 45\zc'9 qD $M-Ic2#6tL%ie,gUx*fq]o̤ *p)G^Xh~xB"V-uj: oŊZ5E#~`LjCMUœ}:f[3ma{ݔGfLa{I"~U5)Z!7{{Jx 9ML5]q~ԛf&_c8iM^?O-L,%Adf][r~ on+B})T9@/|hut砐o8/lAF8YԱ]K/u07^Q"$h-im$<b UYE(lI׆jfij"D; jٙ1AL޵;uQlf;|݁= n~ cUՈˬUn;ōVٹ2SLyN 6ww&3jfY1R3j"IyffCG" J>\ ۜ(\yzFJHڛteAA}%U!=0wHRWRM,@lfL[8D|b 4WvqiQ2SR2F+iSE(ǟIx<~7twTLp(wf#`GD)MO" 39ipRqp+3QyJE5]>{WI8v\X8jSJD>w >]ٽ#>=UJTA5>EE5 Ky}pu5L穪1IpRb_Z뽝[ɶ]˶SMp1m(uFf} DÕh9w05"F֚F'j."8hE'3x}LIU ܍YK͂oOS7(Ք݋x|T7zSr5QF8 3jZ)*Ve&omuz8*枿JtWGU!G,nH͜$,dFȫr P&D)2&Q JkVV5iÖI@\v#(-DEyC%yG$K1r] ٣?ro8uj`Q% I4l51kb_)kIl0Ll3%fݽNC[(QY@L j@TxJ'HȠw}kDkMT"Z[* Oc f31"YAy^jGIuv"! ;s5ZUU\]3ZDho~Hޏ`*cPW:Ja̤FdM$\` 5Ͱ@D*O22|Xk4L18,1ѴEݏ z ɇl#g o, |fgJR3G3X0+TfxQSwVluwJRT\nWk2,,<_ tGPUAqx}Tn1JÈ PQI'}t:bl0WVTedty:m*ҡHHjSGJ:b8$/|y=9RF`:|K B>b2HVBoD"#uْΎ]>nż1$Sv{Tյ܏Y>+nL[fYK1}٤ҙj?x7Ou^qlOC8Tf墺|F2"e%س>k!*:Ax9r$#yGǏ/њB5غTs}^7#<|;ne6J @UVT[C  A>(2Ī"(a#'i_sٶ>Hs!<%DfDA"Z8YkI_e,X^е>"MXIB{fZD9~6|1rnEtx~u=Ӵq"wkv]i,J ݺjGjSю~*Zibs\SEXk~l;HJ%*$\Wȴ)٢r{%$;l*߯я#=5#ɔپ!o#`Ms\[BTD!r>#4"޴j9.#H:6{IxS/ )3ɘK'[L2eJMŋ1SI̼]k [1<| RyBhGz"v]3)vQJmLu.Dz#,CDsg A~ C4>*E>ZgwE߯O^H)UNd9c5UMC>=%T)dD(:daPziKN(L@G-<=9I&x\Qn|KZHhQkz QyǜQr%Xo9f#j5Dcf9}%u#sxDq誝_<$?1;CՐwZ `#/SԴ7W_Uj*6RblL44DxEf)k%1u 0,yhjgZF$]S,+`961J"*eϜYd?T ְ!UEQrS"Bg+TGZ(lľ;97:<nWoN%^ ˊ^ʩK2է?eQUo..jp| QST .bQY쑨+k_uQy8վC{"qƏG>Io2I_Ckz<pv1}MV zAS}j#~|qg  tv /l> -TF.ĩ=G,gLN4 A Nuh5"n7yW~afѯ_8 T\,2TgUIjwvdkKJ}x<]4/ZL~M]wn<3q?L5E[DC :35žkf*>T{]xXJgZ`g"/kKL 0ky%zJ֭:[kN%F=鵶"Һ"gr 9@;hkR$3 snc^@ ~Ï(3P!k '|e.@)s1d"lP_ U҂U$ʹ5HBŴ 8"J{g3SczYkfp.k-HM)E >]FE‹ЎIO3Br !Hf\[n -}& _&+{zyV 24-*wJi!e%N%M*JP ɶFL'Dxd옦"#i)Ⱥ8OFeq<|j|#B9t>/LM*+.KUǃr[ W,2v\=se富@f"~w-*x]r8 oIL!MU]7;OCŒ0xF0Q؍-{aKޟx6b M$!v-{J@77^nXxx]!!HQĔy-rT2EF}"N$|*d9r0O#7ȎWhˆ?4CEKdn5ƸŎkHI\^ l1l͘E433`hrA~}1loy'*6G"^CyMjAa$RGOCd0Ҹ@ vxUnPGXu^zSwHheɹEzy$5r# o*pCB榼̓C f/©D`ќ=l!Kac VOaviz^ϧJY7=5m0ڂIMwfQJ.-!^i gGNy3P @_rJGRf_x)2ՕPUfxv5(jVH/vOoA3J /'DHAmSy5WJ5v$ה91cR]|oPC3{5aUr!h؞͞0ܠ2S ے%޵'1=@\{7 Y/XIzTBX;G16'Wbo˩6ZHA_?{0X ԩQ\Vtkop"֘]}G}zezrOmO˜)w}vGEl%;6G­oO!ϔڮV%!Y~CP <>lݓWL>Zߝ0Xw)535mp寰%QD1.!B 1U3.gMTn/΀Y}&jֹHT1/~9ݛu͋AGHx PJ>&,$kP>_7D}Oίrݤb?_~ -[d(JV,K20*~5g$*ʕ'z 9Hcg2GkZ[Hy +l!" b& H5,*`&jPgMX#s\<} # Pjx֊*"pg@x=ݓIkRX~G^uML5IM?_|\Q_Iģz bZ џqIOCE5ZZ7ʡO!`F}\?nfkzY߾PYkPiAvM]oS(U S˹ ȋz32f$&mFz\WF5&af2Ӭ:ߛZ\}=ZjkD2:˂$z"iUuRU}گ:e"ӣw{d5FLUc vL~<8gDNu &fpM`q&QAw lgUQYN~@͌cĖ2y ߍ;uOgɳE܍[58sͿ A#Fc+ZI0}cEC]S>U#606#v;[kLe[s17?uۿǿ?ɬFnPԏ-#n7l776t bĤaׯW'Dngf5 5P9-9#ؠ$=w'+HVN$wzkmEw/zeq9yNٟXهYo q i*5,N߲C*}+s1.0(=K4͆4ɔt+2BGy(RƂ&{oK3mIdNMVƯ7OW# 9pUn |RKW{T DRү?|eS{{_YIa-"QB"Ekd1D-^ت.0x#qW+ׅ #Kx*Tj?4r_jY^1TZLUmH pA!LX4xuNwǡRq3`Tcil3.MN)B_z*k<;bRt5'+~tcЕ@ $GOLG+1q,}Af‰,0ca.HJI5R'K4ˠ jyNF]΂ycֻxxZ;Dˣ ,L< C?~}}yX)!y`S~un2U#DM܃zT-8CEweq%"ECfJÚ%]Yk)VfwXe1槞 sS3m@85@f6?NCZQwCT,s)]?zv(UVFpNwgzX7U +6LM0rӜ5r52|f}K"H*Aef'm=mU/3Ӕ*8ER˗W* |_]KaIYM@>Woí!D|dHu͌h̨PM4\t?j\RI YRUA3) ~UEfZ% **583!q^m„MmB&R:AFޮ|ԡ~ѕP뼉XwE2*VKCTLdC`VUq>|ZCujM )Q1&#v,4M4P뭘iDB1eGJuZJDg6"%I)1bHmj2AuT}UdA&~hTBe1K.^bX38d5HoADOh9 ohܝS_wWðwTQY\P덱Q4oIe2!V:t>6LZÞ+orX$TKk-"FE`[*{u] ,e~GdXY+Wc@zk7{y]תÇB!6}j܊)r3(p YtK8a24CEJo|hsOѮv U<_&h]nENx|wr!?S3hq)zk4Uɰ8WKתq4"?kՠAkО5b1 c D#3P6,Y|>VA)]V1NUfT*|s0L3JH3*y3ҏgWzEH~И[Z[c>nr^ì'&>)[>~<13mun{u$+o1dd>ilflnVj3@٬1ɕVqI!= wGeFGJJk}ңj^c"2b0Y5h h*2j4Gſt% X˭Tի@9bU-<#u "5 t:7C , K4wn|{_Xi#L.%?$ṒqסkBrIWīrï~"G3B /ôf 4f!s 6Ik=T=f1hrk\#DE󒻧*>u|MMPjICO /]`*fnԭw\cEZCyM3ՖTe4G8}}DJS}<$B,oL)B 6& 's :b]`ۨ`dtyl92.&=y##Z| PG &b3@KE2#1\ ^뺎#3쏇EEBWEa1}kb󀮪*wn) p O͕K)6)9X|PtუCg XkU UXOn`o j}./EJ}gƱ|^;q^/Uy,?ȷ>e\r<>N \y2E,g&(Ys!D\~:@u?DyѠHáEy irȄy%wgK& .[E3g֙{Dz3-A2R(*#*1Ucuu /[ث#A(< dSr`zPګAT]e.{^STކrϭaCuhjN!%uf!>R%d3n&<\OhXfK{]6[lʛ_jqdH1 ԯp -+jOL8 p&RC!U@(>ܗSN6(C]1NNO͢-scocy P0z&Nkc bhq&!*|!rؓl8}lWfY&&#w>UĴ[d^Lk2Uhcn)1އKjXLw\Yc *9p?Sv^0c)x<.܀7= bӪYϔ'~]TqOЖ;EٗXahݽL`jW,ssQ L7[YLlM̻{yp Fb?NkAtT#p5a٪[X|D, PfeW*S?)x. Vb C{o5Gݝ 6q~x. ̞ zkʛ|.O>|3D"|lL:[FĠNMYnʑB"vQWk-##2"zYgh9n=^M`aC%Mn8xD1.97UVYyF,(vZOp_[!x^0ALLa $5Pȫ*Sj)ЉޫJM0fE[0S! ,Y]REN(;u j\sOu3,aI*,&CZ|RZr}7&+e dUR؝ DB]{(m@ ҋƞVd7Q9T3H1I eי>|Jȷ[}w_+h][者\uD#A:s+LÌQ`6$fwd_vx6ndY\BVxFDJeL%M)j |3awZB2Tf}/}I SJ&2Q`: ӚS*j/@5}*ޅYJfƀ2׿\쯤NJ60֚Ǥ|cXST&=uEx-C%&x)bVK3$dSAdqPT#*ݖڙH?쐿6-VI^7c/.ߎ8oq횪wGL$Dl )2:tx^#3|>t? R.HU Ռ;o7e1W^'5L${QbQnF_֝σSfz{Tt!WlP=, x\R1/$J22v}-AoY!aV) {{;5G6oWGu6S2p3"Q2F[ ԙ̩#'2,f/]əM- l ]du:Erf ReOiMO֞yLk 7ř7{QKǘkn~,zTw#*etwI,qf:dy$I t|ATs.툲Fjb+vz/dObMjAV8FW@  J<`5)0?1TMy`8(|w`Bvzom@1Q8.n߼9fꇋjPHm`^,IDk/@EGsgfE]@KzD+v& J.EbMF"V"1e .eZ7+93)įrc|uPY1F.Zat P o{hMkT2wY1. v8Mo%NWdZyOLH(Ѳ&d,TYn>HA3K@V 4YsOF.Zl|eζ}DDT;3Rg9ao %C:JhO7" ]Z%h3a8:u*RY[G&zJV*c0(d,1Mj:"ҬE[>b?ٶIVQ-PEiRN 15Hד~wp+mZD(>¸k\"pw5{[I9'p޺VG\Hx>⎖CS$=f*fy]4NN-WFI&.񀔶꺩޺>& ҕoKͺi3`AH])'`6K̴[&xs)Mʺߒ5Y-Aݬ 5"UJޕ G2dDM0#8אaR3ADT#6FTAժ7aÈE{jߣ{͏ 4  YTIΕ^4fHSvr&o $$-i NyWHF엍?}0AnDB/k@c?_K5 ʢ̳ɒ/&Mm-#k4ajGz7WP.3onFX6ܹPJH xGgX [$GTY E|w=w2af0gde23OB׈1 AY Hѵ 䀻@r#_fךv푙Y9U6uUaq!!M1ch{z|"a__d]) 3z]da6TDZ;%Mljaڴ!:3\3u1.Pj.LjoѰqBTEmjS^ 57fE]F͙9#7IlG>ܭvh!ڎ3xJ65*) ɷL!1Łۘ\1C5!uwS2qķӚlҺfcǀrj&23l-kTRMnsNo,g5bXE8^c p]$b%-p5f#5Tx0Ϝ I}Y.Vv#F)cV/!(gp+prg}Oᤌ}f@ *-,Ղ&J06FDî~h* 3.*Y31 Soe$jfWAz.{2ؖ_ e%G50HSE!RpJ|E,5aAՖ2 䣨9΀[T침TjR"z}= p˙.R@}0wU`FإL*ue#`epJ0]S4s"#KiľKSqbIη9Q4 q(ϯW*rsaHc^q׆9 \$t?<&N—OWmVК]{'_Vd5P'MnVrr~_F!aЇ'}@i]iզm^B]T딐j,0V:Eni;3EB 7Wm^?z9lޏ'&C27V):4u3#fcEiWzC'4K~:Z**1}Fr5F*6Ff{i_ X~YOv3YuEE~dvjY+ ,$ ncǦ`ڻ0' {Uq\-mJ Ni1c\燆^7 (|^6^׿?9EsavSЕMXn>;z~#>8iK1,KXI`&,s%7>U]#WY.L%\ ţPbم ]nW3 D/Aj={#)rRW bĴanUvYyz6f&ۅCQP-YaoRκL(m8-ĔGr-IO䒖n-RbE enkzlKD]dH>M[~IMX*%RPPm啣D"1. ,=#cP& R}c]ECLh0Rw\G6L;86>LMHhg~Yz2\;Q߭-Tf9[rE"|~*39_F kuxDջc\+`?sl6w{?;ϦNp[J{(&4'RBCهH@ZbjHYT,ރ6`(y^toրyQ e%OZopy"ݾ*}Zm3Wѩؙy Bjp6Țͻ`޼9``+.WL&gT!z׾L*b&w JVp Eֺ7^qA}}!>i%o}E!R|wEN*n,SnHܣ£kAƸ^UL_~ djD;gq"0L`LZ⺆dwTdE9 Nr|b cߛR_*l@B8T쁀\7Gh6ĽV!IC^/& ;6FVfxcvv&u1TdXEic䬢=33?h@̂STKte ùϺy>~4r3xg:@m*GAB%5D@C Jiʂd굑"7u-QRfȢadNG|n3#@Yu7]P/&+srGXwx/Wg0vʥ\@{SA0S!fxꇱdn&&N+ugEPͷ~=7RWnfG0ۇXGo.$?g)}h6R!  JhuR=cjvؽG;#< ih5\T T$R QqPju^h/{RZ LocMZk3Ň;gx2Me 5saF3hn*-A>O)WEmVWOf|Ika2BzXL|ioj/d2v{ ޕx/pߺA 뿾ofN ;0~ _*\@iMg# F(Bjf֛93RX^17i]\^N= Ӛb,#seWGDSm^TYlw,ff LU_r7_[/J)%rv;uv[,xEDU|-wO,HUi ybN1;GȜ1Z#o~dH/'fl&CN=LR$Q@x-#)ͮ(Z/yXZr*0+eΦ^H ]%gi7 ?>'=XIn ?9_ʬ뺽i U{F06-9Y?!*hBVĻ 6eM$e*4%pGFn.J8#g@cu2x>qy U)Bhhjwo1 ;bJ9"L,sҚZ7|\DżFn&m1=]p+[ )^-Hؿ6NoJ픥\QlCȒ\rjhi=︇-e <,V}qT3.JyY_>D ߎ=޿2a?迾~i<_#ҘP6Uu%L5x(&i%<'ܓ7Pj1aT݃Q \fy/wȈω o8$ȌQyffPv٘"-7XA^ϣzxuܘ)u]!ׯ9U|>KrNs˟H[ϯi̇hGkcXװWQ{F;Z+P~/2:̂fESrR,վ߯jJ~NdG_ݺ>ԃiW;=[D+NtP\4ټZk]fc`Z#Y;D<6{eqZFI'xq=)*V7rbF$d;|g$N ?Uծ7=)fþE=@$::Uy轃r F > T`].kQ5{dsڢ#)%.L>wGb9kgHTƧjVw_[iY:!~LgrH(qLWȝsGؕ1N3TZ=>ZɰxG!T d!ET?rs(n#@h>3`48#dWY<,-Wᙡ 4J"lUZ4s=5)0Ӵc.< Yp|TeJZx9ON5^\:'*6, 9ff7p*&|xb\Wò拾qEf'S; 5r`:@T\ $xR6ޒN T@  0I RnHX։>G[\D3kfa|'J#}Ih1ќ{ei{8gLj'rhEus&5֘d@{Hן)GuM͌H@ss+cSO 63H/`QŮj[̆R{ݠBI1zzG#e㼮TvϮmVe%(oB>q7_ fQ00ĕM%sͧ)8nT˄PvhOm^D$ukA E41NO~>>#T!)ZŇ@2Wn h*oS&+ 2E YLNP=!⬿"J9Cu&qg3 4Q5g+H 3;+&.ŰxAiEkY#|nׅx~2p)~ q Bp4#U"9W%U*Ybov="mAc~'CO_Gmt!Eï{3뤔7C;R#]C7`z1 ጠ` 'r1#KL)^0I7Cv$}ɀhNA*%wHĺe/SBeJXYx0麙Y~\y\6iӖL˙|~뗙sb؀;0-"\0Uxr$sS=^+"ZɃ$?K>b,k 2Z7\wK2jDqR݋w K%ylf`|g:#W"(~@5/ǬTo_r1rɴm:qlj4'jW {~U<Wc))cִ"9044UыqϸRjxK JXk]x O_?sk* e&7m_ᐯԇbI(@m}R|\*7mn4eKĦJqRn?#'J6EIdèi2ZfdRRGLj6? sTV$$4NAL.P1h9_VnA!'"n.q,+0MD¬G>pfY @7KnL@cK6ir! :g| 8D.T4˝l"Y7:3~"9JHz~Q$APQe&"1n[Ȗg]ʒP> u/]fr7j|nr*V=е!s"w[gUk-m;XYJwE띤eo',+iRJ䉺,3o0cϟ_GU~ <042uF"%K``~Ml#ɒ1?>XNF@$PNl?cx4سc=Zj1nJza\`걛Gasiq#ۜG̉n|Y<ΡZ310C,hbc{ℵ&7ۤ-gf>M[+B 1纳ږd4#if.nm*wZ.#bZ~-:}aNR__Pa^`BRL~,`{H搊M*2 ;V$–0hG?po#y׼oo߲}LT)>5@#w3l`vo$y4Tu4Fa^!2|d~8C)9fw-̤H.欖Ok|$7.XOm4+$㝟URV/nyٳs=iu.wg\[q`eBETrn$&A"ʯV{gx\FFuUîUTDc!̆GFe@x]($}W=FW蘒ƤԴ&BB=Il+-IFzv˺OwCeniۛ ~ P.,6U&B\*@3kb[SUu|ٟ{Ŗc]Z6P^8{֚Y=SS9G٥f+i 0S3dbu\WY=uZ|;&yM4(pց "bMU1N[>`"#(q><:m!BTY|GڵӕǮ'N!@9UbGQ_#2‡Y)MO4MOnJV/V ~fC,3bv4'eDY`r4 ]b){ɔWύ[!+QԴ,r`{DM,?A` B!\l I~,-̅]9;*D<|G&$TJen"e*y'2Z4"CJ"|DO''7UJPS%(e,lS{Ӎ)V`U\{2E| e$3)J$7E.,(j,6l[U+<ޓ{n.(59"y]UnS>T\RWN+}j<_na|<7Zoz}gkxТAcX q{qI Aҭu>_ezzI9@3b\i2ԏ#ߵ(#;zNVe:ޚaܑ9TIcs#"ц"Biޑ p߯q_jBs֮|}?T^3Кkqv_Ux]\v*'AB;Z74q Q,8ugF!t\W|j~]ΟN$enz4ApCiq|=ill ucc r{~?OG;W$vRU[ϟypPU:J akO3]r>o5EhYM;hQiHcض{r%60r. &5ĺLymܧﱠ҄! W"v%T2 ~r^tm{<&2 e _3鐘) n.1Uᴔu-s-lޑ#60e9[rKIہsc\zvSw/3;+5"¢(AILPEq[n`\@C u|ʽ<ʛS̵ObIkɀrfeZT7\&Y˸뼮q^a'>ոVH|ŝh x蠓-a%QX;YYX^W!B0C=!5qikq%;c>o@GWU=_$ҷb31pi>?;h (np+UQZ`?e2Bzam"ќ^{Kݣ%"eiszόl/B;8:{}.f78$GKeds2&mT- %ۊ0=itǛY#Z:䉶99-!RQO9MͭSw3 siHK 1+ٵ͟-U/Ize;^J<ǒf.Oo}3IHz7w2c.'?LJ.:-oYu=yɶ .Iʾ9 _HP$\$3[ qW{;w#Bwti3di*? ' JuyK# =`$ͮMku:Шs#ev4;CDF,4' l&&e/=S.,0v;p@BƝ }Y6A[Mfpʒ|{κfyYQ5EO=zk#7k r@KƞW1ϕ\R 1rZψǻ~kwM7^;[j/lMW>2wJKfp#b&LluSsl%_I~Xl>rXe}  D4FC3 ˜M6@/`pdVU8kei!A\ Ah1c\0#* xP<ee}~Jhq*dLRzP"~4$G.pYSZaD2xcEf{oZK_R]g|&|%1&!n#AժŻǗ%=8|7cgB;f4#tdw_>󣪌rEvy! $[9 G<=m]U_DF|Y;=d 5[6?Ƀ4(@6 K δC%gd0z]4%y9V)I{)m{,POhߎz|;4 ClK#n+su( D_w+uoeWwE lS:,#q}U} ,Oli)ErI)"[*s }DE2GBH"f&B0\VN{ʜ9 ȚJH͵Jh9qjP X87K3$cn{\vӚ;dHD|`1Op#tz:$aA}ܵY,d#X#4'f{kGuV:sdO>9)u5hve*vD¹-2֛Nu]f6d-RA/-TK+35NS({UH3íi b#ϖsסDL5ܑ9jh\B= IL=E8GF1PdG% h 4)ySrTk;OymY5Ş1b2CZGFdQ9?cM׍`pw䮋 #ԒHOAS#+Tq^!Mt&)M]nfLGy33A+E p5WKz&&Qo˴^Y}1_}FA ™44].wE4oE9MO`|Ǟ'B6ܡi[@5MGږ|R 6;T ֕ws*D5  V 22]=؛">,hMiP2~: R&TY |IJPoO`_!򄕵ǭTGƎ˅ <7M0fp%s)dL)C8?,۶9;Ӎo_EK FN#_5VrJ9/F|A>M(hm˨VED4>e 9d~oneU= H9]fu8#eIQijqY\ogm;.P4c{l//{${rfh6Hv|JQDx<c<1Ɵ3rwu1Ջ$ڬ1|^= d e5=J\ýDpQ٣leN5rAV&й9 9_I[p8`dpڷ s%K:r,͕h)dݪ0Hk}oH~Q?2239pQJE.BNЗ%vťQヮ>'k)R|EQQ_̆mHU! ɾf\H4ҥ&p/ATc]ֱ5ҫ Q^#DjQ6[i}5BvW]9Om9Xc'ښOf.ꎼKyŶ4J4q24Ҵ`|t)Z.@ؿH55|,քr'->n F ~4,!0_eq0!~E4#*, ݢ)N'2eھ!z"i _n}qG~󏖡*s~H.љH@Ϧ`\8`OkhXbآ(XR'-PS}쁨^ 1GNlP*D77/Dk+)ix*^-?Ma -+NT$Jy&_+A15$*~}![Vnt|=E5^_1=/"Tb tQW33x`˴Poj4ИܦBUq<XZם1n (a.ڎgc%D%T|{Wm #;z.ZXH 馤hS 9:,ֿ)lq]65"RIx06)av%%ו$]L Ov9r<ILPѮQ)B^X8F&cq}\ˬ,'~<A.|!4" >Y-[1Yʵ1>DlюSՇr r.hE,rW0s{Ҏ/W&x+-<bK$EiF aLU}JAY,As^%&Q)# fwzG}XӧGDZ % Pk &,LDT Gn($Z̧Jx4w-|[Cܴ~sD8]4"*f=[* $e]:nS4Ʃn$]b(YCވ$ZBR˧Ý |h" !̳(i Z<3fa ]5w$/dCG2=e%7<-12̄DvH};+ve_+.)^K˺EL5ka @2}ii"J 1Y8#DR4O'TG Kv0ܥ>R$'wZ2@u~D3 vV~,Lw|W>յijK9ELHGk=*a=|Dܝ3ɦ:`=pDeĮY0bR;H-0!0}wc ٝ<m%8oXF\B캞p2a$_fl>kI9Z(|ɽM54o-"L#J F&Q{dg my~\X.J/ y^Db9)isi^l!mJLwB O!'Mmo',1HAm঒~(9dg0X2Y\JTz4W̊(e񡞜{usW^%1L\D=b>! wHlV71o)c#lF5 h\ )"m /d»=%l Խ`'I1nPskE63 &c_CX'gͥ5(:ZZ?ro %cr?Gnf 2zp(fNjhR*19}уwtZ@R ÊPP3#¬z2ULs>,U3p.,W`魫Z̬+C_wf;3nNN,HDn,s&_o07G{\Z3%R8u#P+=[5r118j #ۢrD|V0Z&722B$(jz86͇/ >w'# |8_$mfTz)0Izjd5i9kÑ1=Ch5|e"h48!G`4/HaAw}hEܣI3 !&f\xk)EÐ<-fokP6Ij?ܿ}}9a_d=z,skStSPy\*Q\|zީG"(@ao *GXc2N7dKAa oIDm\͍7JꙐӞ.H !Ēn#]!0U{رjDxpk6i&( aԂ)Jff1v G_hA\({YJZ![&(bUǶRRKԜ?~jSobj:{%{~- IT\WYJP`O=jBT]:O݊傾p 铮`8WG88ܷ֪jo[+[h3s B$$N$Fe1sր=j->zuԞ xڀ'V֪J&E-ʺ:̢cJ%z$*,mּk1`X)"T%W_>==ZZt:pPjihHT_C}i.2\["8 3gZ4}I blNءɑ쭵Z "{w"X`j~A(IbY t/҈q'ǠNF6X2䱔Z /GCķ633UH*;x6\4.޶|g_Tt:uLֈJP6ETIc[Y%|f@]!FsA8;Je^  O]z"ck"p$984"$)alcWjXY3CwZ˽3 ?% %z}&&>;tyɃQ2`R1uЊAc%1e3skEB|FqnuxrČx!9j%pC$;Q3&\L1?@FhQ: v>e[I4Z47bpM#w71J+R9",PДoL3T-ěO~~Q$Az^og.dPLINٶmeV^`c &cb4-v՚[#6ҟgO*/k n!8!t= ,],)FC7;4RjU:v#e . KCu%t-5<1Ɉ UUւ1ai)5Oz"q B/-|ZyE^,(Aq_D(Z ,ޭxr 0q8VNތ4N$\rr7-=R1' Up.,EwWϪmf[ AޏK`&;1/z#6*9fL(6zX')Z'lmkNBfۺwv%"bW"j)uP-ukM,m]Y(<ȶ]UlsYr\Y-ڵut1 +MHDryZN۶M$w)@ÖY 7b 3!$ؐLf^hD57/^u%쁨E |vQ2ֈ `2Fp1"\zelQάbs"ATټ)"ڶ3]+lFxXhH[ P]ڢZk=upۂN煈%q,RɴJkb1 r^V#N*8@ DD׶Uf8dA!=x ~g#hd-HJYƣRzmm'G)tVW{ƾawc(CCTX'wo۪zz!v]d*DlaLƂ PX5"IpAe,nJK4Bhl%Y|l Q>M-ij< ZDR0 vC@Q#'X)Ao7G\+PovxM8zNZlSP.آ"Y]Y۰Qy*ZRxX:V~1ƥ*3z@glTP iԓz) [F|J]F6UTÑE#ROĂ &ZZxE8i%w(~ra"hYfbC։K(#*϶e9ޓ "3~Q$``p=o[fzCDڕ!C 'ࡸǩ-;΁8y^! sr#ᅙ-D`aE"ĶmVE<7WDIURĥ]WR.w;ty|\.]*sẜ5o[RbP0HK3e#f^wvi,,<ʫ0CR):VGu9&-NQM̏ZCp5'1Զ۶G)m8.Wg, Vs"G+H)ELZkݮj9&0+hx7"$G {P(]]A/n] j\Jp2WB JT u IEw.RlDA7=Aq9P](3F=nFOg*_Eƃ}w6kFC|ɚ&Bn`u [kxOG\U؄\Te?XBge{%K Q*Gs3ӲDN)5Bb۶^cD~ǂ\1FX`l'unf7 qΠE3iDG+wy*=G$V[_eӆS,R !%(Pˇ1EȆ>ɽӗڼg)2#Nf8`r[76X:/9y]#bb%=nnqLQyZM4 ɟ͛@Nm e _FpV̘}{0JLB,*p7Sn!9ܣ+}.fDY}\Z)SL2&$فTku>e!E`w2RgE5H;j6\aN]SrF۸sg3SIwoԩHߜ^GD&7npԥeqEK:C9fs3Nٍ fg1&7pe O鸢K0=nVpgR2[ #u]OZ>}!iş(¬<ΦЍr3pAm=ct2gQD|e%*pڰaҜܻ ex4z< |FsBDIITh2 L=v?Dsos8xD椞JƐ:b=0p o#8~3g9"(uhsRf'ơ007A}z@!cdfk-'9fÅmYxuYz?IdTA!k}\$*, 1Ŷ!U(7*GNkl*1"}GtEf2<##z\ﭿ69߽Ku_@?W"~A`cl6|}Fi:*0M]AXEF7ͷʴTq&In$2@mqHAxEӾ؇PMPڇ'7{@w2|A uh0LJ*0pLEdnJhD1J$Yɾh0a(3sEݵY!G (tX4ex2yloi.:6 3]i#"j`N*!. PDTi2 1E/wGϼ:d7'<$utxJqN|C>?oG[l^ ʁZ#RtPtZ*޼E#|SU'IzGGNFxb@͉dû/Pǭrg0MypoM\wMG(NSH+6n0>?*t,AEͧc<[_sѱ" UUԝ>KyowF[|0Xfd{_Uw:;m|zyaۦ ׮U}T0*IMF3F@}^*RW]"-xw6+F"ŏm8)wys%S%7ʑ#`zMBZ /(s!hu8SYgͷDq"GDiɱfODBXo[yP(lmpђ {,D#da^ڭ*+JPِ9 AA/bgVt8-+jF~ xt []4,BD5駟Ow]@5 7A7.p R 3NZ=@$CUWV7}@{w e"(H1{)Բ, :Zni)"#LŶ-q [|ZkI0|o#5v߳Gp}9#y6GrtuܬR&/#:|ӥ)t\<|7o7 ScqȽ _s=*l`ԀC0MSZ›{+eTWPR&9{;"Ψ `m(+HKNp+iYHiNs,ܛ:38vƣ"#ϡ")` 5pԶ Y^il='@ KVܖ8#[* b4y 0e 6>C4;K]l: q-ooH*ljE?,m}ȹ}c^O9v2@{ <%c5jY:@QF4/ 5T]5 g,g%Ch (w{.]EI;4Rh,ݎ=:0aOtRYEp v(0V99>/x[gU؜Vܔ99MA0 *!oFXd1DFR`ա}cVgwD15xD)TB1QkmefΎX"[n5am#(>0 0X:™-bǠGɘȫ1JʣYcZJ؀w537!K9=pF6ly}49?LpAp[F = FvDab!y:<,ܵj0*-bZ؉#kpms*:F%QURJĻc'p7.# vVjrpzD"}ܽOFACݝN颣8PωPZkMn[&3UC2JAY+\5^/ Ddq"1j-\̗N539 ?=]VEY ,CquIE0; Q`-bVC8ĥ0 JWޓpH)亮E| Yb/쮚 ܰۨr0dL:g ]"6| wmoa>L<ߩlwB™%cEpA1t(xqkmuf@'FJ ^Os!"V =*phx5b6 @4R;v<0۠vah4!ZrD9) `RZOHe2! 4RX)0j|E?|UI\#kOa0IYm6e'Ij0%>w,u^zyRՐ6í4؉#-BK擴 |E5<'7tfʒ'2>ukV x&T<ڙSΉB셬"̆-lz={kmW<[D"ˊO: G.%ive=E Vއt,%spxBcV鎛+9==߰O.vȳd4H;(y㔙@rfN 4b''|4jhޜWLf*LJLZfL,*ZH.[$ysBiw[P6’Z'_DN"RF"D3qC@J(!$y|>d'o o(SKR#Ƚa6PtvGgcRD;B#n*ީcIFF r:y1ÆFFr1073]7IN)6%#3|3e K.MTyP\qF7Ƀp3ڒ~U7ժ8gHQcYԾYL:#9(&jpwM|o[d.[2US&9'}OFH"J)%GfBS.<DT>Ë́8F3SR*5{!~ ŬV.u/)Ւ&=+ZZTVVbj]tl2w&놲cۚrw={}K"b[i(a/ff(UfI##3AƤG62z[A.Dw#P_6`&yƸ0 I] 9a+nDbo-ˣ7o|({@s 4WIݬ٦&.W;{b0ĞE1TS1dE0ǖAа !`OLy!oexX( X|d-mBp9oe]%f&l^ 3[+"ZYYp8I}0s'T~LwKZ2 W epGM1pyv椧͉܈SoƏ^c(vqRA\ IAtqAx"nfrvw7.ጃ5\74񈏤m"?`rUduӮVvp'1:! V!cև'5NY`3ٶ2F pAs?5xjG&IF:stn>m 삜US uT#С ͺ?Z", ZPtP(aN[>fRkHDk] 椣Kן 3,iKte"O듈6o\Ykv;I;0[mʻ )".h^K]<Oy9>2<%2:uɦ;Xq`$/iLStl乎T`u\ށQA爐}*6jJYz ݜIpކU03|/jOӝKv^O蝤`N0Y),ax}?(az8 30B̽%n}CF?D'^,A4pvC'ԏqH\̢(? `*?=+vI,ls?;$L]l @3#Qe.QŤHaDk%rA+Ͷ MaFEZj<t )f 4jS3s E=+v\FBunӷ3da l8mf`Pf6,D9u1^ONͬHz?|oFMpU6H,9=ܭdӓ1)k.,Akou[2<"^7\mڮ$O\.uU u7p,>$-;mZw g2Z@Lr H\˓-P/*"Z|:oݣ ekk,Rk崠\׵n~; Ë;**I>,.~|0suݶ[<]lkZE[k8s8:śfɇصW*z\׾8F"Xeߩ ˗/NERUr:U=.s\(0OmU->Ͷ %BUdC 5K)ۺ2sѤbiki}|K-y;зk/k{|[u"4EZ$+"Tʙ=L8(h]XPޝOwwӲ*hCfƺnhٶSںniRr~154\QK5k~w~pW+O(-j"XkTrZro芰 AA.UDj!0'j1Hwϒ!LBaI $IJy4w$0 7e#qӭ\4a"caA'}uqf z !ȰiIa- O3 U2rE3n\қa-@uBNHBUdҢ[VԃD:(6,l$װfvfqC  8a0w `'Vw0Kr PŃFDTög&**Aiʜ4pmbN>y <'+ q RT]6 &# |xnN֊Bkd$Q•b.ܫ@৊H$$\BI$3D|$C%4Ѕpdw)H'Pg Do!AAnPh+:2a]% o`hNf8\f5o.J(&Jq֚cj!ADAj8:k`&/as@/u!5{_o߾/??OZ|{w$I>틇o>Dow8sZ9Ӽ l1l\ʲ Q񳜋D f'_>䓟wgx'>Qw??u__>^)A.;|麜vp/,}7t~|?j7?R| mݶo}?9Q?O~ W/~GdAH7mP2 Ve N6MT~o}|~>z@,)~{GDUUOן?<7oZKif}k駟ezU՗/_~駥<w?헿Zџö_#3}?対G?dc0 *g!Hfz|O|q|Vjf._I)XEfDұf}pagǿO~_Zr{}ˇ_J]N#*8{]Xȑ)5p]1}kČ3eM8|*`Y#/$YOkYg\B|f]3[u3z7!a:0a4-_Zjr06"Q`34uF4<tIԪI^4H*ci[',]ў_B!e͘x$#jத!з,>("rIj\abσv1Jt:}6yw(i>V)Cn{>E:ҚCU^3Gv ^yh -+pX 2C„Ι>OGc'LOΠ;1cʡ9X2艌YIjU#glA0d.U՚sXDa~WD*Ďb~{節NF"J  {[d}XWHh<ou*IE'u၌zc%MHop0wHqh5˓Aged(T.F~񋟽__}ѯ}W^}_|-#<n) <5ZilfQ"Dir<[]xqfա&܍?o>cn_????Ot>}bWQwl,gexd|yz}?o>>x~w^~;8z:=<<= F;? j=F“Ffb4ȩ{wYsfٺ^TEzZ ّ@Uiӻz…)"ן}jU&o޼{'_~mOW UX pkI6LYU%)5!d̊_/_jw&*oS/ 3Q4b XX㾵xv@zFoܲ:(beBg!qrHU9ӪG1N>R:h458؛ʬ>Y^*$ ڶmmk~'?}8h5WaQy|l۟ſGOa6KD*K]9:͹S욵˺F_ևKryx$,,|>k}y,/'1! >bnƷ?r3S&pc~ȧg"Ir{8p^W3;23{ߎЫs|Ի %2N;5P &5 .hU鐵˷@纭{盂sPT9+ūUa??{86۶ZZRJϋTfnf۶ݝG7r,B$1w_B;xl/*Euzƾ7_3+D& ]|8%tY!;™|{.^݇|4-w%~Inn;_ x_/|xۚHtZ.OHW1QKeYٚiU K,j)1O)j:֗|\8֭;`6y 2AY4{$.ߙŔLy8r¹`N4ųW:.c^?}N*@&=hQ 04OyaL>8f.n'n2ъ"Kkȼ#|\`e]vr&̚14X!h8c 7$6w.Xr\ 61m 1qA's=D+Lt,v%ƒ 6w2~R!s~ At'"{i4hD{R0|&ƒWMp4Oͽeow8G8oEkΆ[Xi2N9"G3Y _[mcC^<=i5 IњmҊ 8.|`E:t|<.\Wɩ\~վG=@otE@ENE<}ZQBٻ/Ce"bU-<(gxqЁXoK{bR;R%-8!ʔD iTh"߶p'sԙB_C2@63߶,&"Ÿ 1{,\S=ݝOr*lы#Pnnf|w=E3:݋r"Ń3AD,SB4K Wbo??09AF4hx76B(|B?Q&nud,}X<}Ww'~m3QuM8M3'p;ǩ#1 ,s><:ˡo.F{čȳ|2?ε@Lo| [G_t`8//uݶm3>I93(Nچ拊3׭5 ¢5=/4LDB$Qmaa.Jô#"nFČLJd]o0켛iDiA~f&"ZæIW4mPXD-GZuE_Os9&{gkI\;Ͻ#d G! 0#wW{rG,"Ν4]>]]}?̓;vZ0y,:C3m  V^h ۝-SC ) >\_IĖ,#*@EgIT3K`@dvF5uA5R>\ 3=?|&`ƶBkF1ֱS nY)M_U9EQE7=>`-~Zo䆿k.+?v'5[}@$Joe_CT2Nԯ:97/n=k:[ƒ9jZ ML,(T/ϰ&{HrHTM !>M#Y8S|KSm&%b0D+qՈXEXg5'YiZkoP8L%2 r`%j3T;"JSr.H"G^; FsgZ3k)(D/eT2%Ap[6Y0$Fe ƅA/A7./8Gfܦ*~IkM4d*Jz+bC/]˲P.EB3Pby6HF&0r@/R$Ki. Kw|٦e"9o@LRPq4}-b ^l;0ZC{W;% "yI]stYD%CR`&Lj1ap#YnePU 9e?,imFĴmCDtUV?`fښ~?O~}~z$'#u c=nЛׯվ[/~W}W:7_LOVN'ZW#j4]DMM@ށikOh7_=}D@^Z51zjs+5#ba 3hljhR:8}i\b u-{/~Yfzg (&$! !=B]7*A0TNHYcN4~2FtIh7.rk ϦWd\Xa~[޴ZNbgaQdX"!RI/Avڃw[ppd[K7@IaId&-hXg4 tF7;8u3VP$E%ģf2@Tyg ! KuNbʬ]3=4CRZ=ڱ';cj&a1:vuH!9KŨf)_7="-b閁<׫nm~.[g{oĩ|ۗ?Mk(,%&qC&F8NِP31mۻϟgE:vu$c4'9i+kѹL,! iY -gmcװs:'#ZkTzGTrnPӊRU89#͠*K KgM1xs$T(TqdŚ ip)CP,: _NmL#VN(,GG6+"9tKne"kXD! W5vr+{łZS, .#IX㜭wn Ǽ(po '41@"ZTcNLˡ=e_H]4΁rn(sb:Nd-LW61Vq|Ag n5̀5Z6UMÃ=>^>Oo?W<$g;I҇;(1ȸ]U+\JkjgmuߵYɆ ?&dgvGPGgaa%[b*QTnhm}`!e^Nַ|+o 'X{a PȥA qrLį #"SgqYK[ 1(df잦/ .bEҕ >ϾiDv9স] 9Aj@Λw*=j`y~ rb>kKz%O/O=;.ª^,Hî1 5EǭV>l?2F%`2fU 7suwdDM(Y{q h1ˑё sdxz_b58q´ZzǧUKDjB6=f..=<<.A< X~܏1JџOF>O_m4"FBʮLM%Ee;LCahF6*f.[ѩ:~-KtUJ!s>wpĜR&vE>-5]_7Tb_y6#Q15XN] uo\q3lbf+JuZBa񎼝q ܇#%D>sHx;>C_a%HyzZy7 ̘)J=O@?mfPPLDS- 9w,n[yj;FáW}o' gqA n͍֪r_4,W2r$]DTA<6k|蛚#Rrf =zG$6M)et4ݚmf( m֭>Zvx;&6/Dg`I(ȥR?+uiTmx5=>=͍@ݏm_JO?/M5iˌۈs!pSm5fd4M?Q]k3|!҃A5` *bÓȜ_,;6Ӭ-db_*+bĒhi§XxoL 3Ҩ<n1xc#sz㘧 MO?9#2zyEI-".ږ{^חk{{+S[[LUz@YH"EԽgI=?feT3#@-9KqwBLQEP5r},JJc`XHZd2ZQ\U4@1*rdXȄDŽHD-S89v%eTS$EHm*PuM!$EIIGNޟBBЊ}л<ʁ_|\D!pɝBk($: "L~,U^'33sSyw8+I<WupkDW >F&qEpFj!^,-¬&{KzTzgXR9Wգ┏Y3.aFMv6B41ERJz `h!0-w*NOgĢwFZ"Zk"iɺu($r"jm{H!G/I.(~#@1̉:4RTIԓ7SYW21sr(c[4ϗ>Im^;/]3:js6,4 )ς.Xd6}]NyRZCnڛ~pm3YucUѠߝ%=DBTC6W2l@tbrtU$ RW=BFW50T ̖ɹ)CS "BDg&.eܫW Jȑr=22l[.ftՌ1*.gNZRqV5Ε 7%`Prf 7Y'$[iKOgiᅉ`0L0Uּzl}p5蜊PY{̶ȒaE`=E0'[콋jW1{<`_m}黗7j_}ߟZ)CT*M =<e SUWj:Rߞ*궬3,)daK3W"NBތ ԕ)Z$ab*&Z2s=3-*6'-(oYseSRu55OSĜdD ϹG[E;Rpqɒ>3,'ԵˑNJ!#ẙ[nU .gpOS E:HE1iL@20 fˮڿ9z'yGptdR/,F;KFl;ɬZ8.lXELinD>yOJ3c0k@n B$S$)L~,r'N~m .qG1rTsb}1qmhWLjD)S3";F[gن5a82m@%6ͣE틯1Q˒1Fƺ:-[,-'S I BT\_O^

ĀMs&XCca ~E8٪kS5ɍ Fay^#YMI asᕆUk9̭|,&c1`0ʥ<:CkH %랑Z2!;5i=SP`E4޾)rFc$qBqVqPɩ(9i``̯q#O#tE9)ɤJkuRQ~d6eL!x4!vSU+Ķ]dPbb&.Ж`% %DFG.bLuۀgIe"PN {ζ_F #q~<"]uLaq3 'y@i:ꯦӳWʵ,j9#L{yQLJbl_GWw֚5+)G\.[ͧߞ6yppY#vU%=;w_hʽWW~|Bgxz7_7ֶpWS="5=*˹u86({8='b"S$,U<>xw\NtJ<̈Pm 4jĈQ a.%qP4J1RiGAX hX܁`rOVA MjDkYcMaN1FzIeL9NR_u-ק9T@,]X~Lzdu2dKpf;1F>``Z5EJ w tz\3z=T`<0U "1w*,s1UD$<WhF/+5NFǶҮ! z9j!TU# YNHt MlVq|!؄I"HzN,/V*<.O%Ȁ^ƌ:RQaԺ\ )Ѕlu|Kvs(K]9@RowuP Q6S,pV.f9L!L۟G c6ODVa[̶b:{oNHLo=b\ߏq?> $X;,6fTWgLF!Em *$qYP̎TN$RrHѫI(:L$z&/:ӧ޻jeE \uTu tWLW@Z+"R]v ͒/)&2*9ٚ@jp\]VqĠd"蠊Hw9D(ɲ'Ļ'1b-GMK5lZ2õ>r7IH+r؃Cs ]Yi Gگ eN"( ) >jY y RQXMj*7"0HU0* if ,2LU;ĆocpCHN"G#JUF6H8J-AݤGTGKw)j}6&$6:c&Z(MHrH&EVw>r_Yb?U"7:"GS|ng{?`< *OC`xmW*-rX8f#5U؊q0Sof35?ş~{oF@-s NɗL@!~) MvvdDcVPE SċVA# \&w y`floG=FV_.[yY>EG5Lp1LN΄AG*ۚ/,=&|:3$m22;Imx)&3=%Iȸpꓩ`  A-KXMk-/IvO=[:2S )ƛg' QĉK~2蠢J2$ }у<8whWr/RK&$۲EMeٽ ]s  G1u8sՖ'1!Xۮ %X)"⅋+^+=Au+v26L8:It{tiX?iS xdviqOoDeX ,).CX)!W/̔i=NPE"ﻩhi:&)rNҫ@U鑚u5XD a"c,E/ٳ_{_k1aYC1Ӧ(Ջ﹍f@I\fˉh ?8(\gsaϩ]z20BH=::~UF xjs1M9zL?c|(1ViRW8TVj-S-Ghɜ M/yJ<ШyjFi}%ɏC4{(`kNMÔ6Egvn&A4Y4k aR'Fe2+ 蚎Q$Ekߪ拏);ATZ#cD6S![ky=Tb61Mݪ*8wLKw}YD1`f[ W{|u1A^tJ+ yg!uYxOI ɥ~l[/[xnȊ*gnfV(_SG!,mXXT1SCL׽Yv_L $H'iENU޼V"cRjJ%v\qflf"9,Vj`^7$|kjdVo fwx$R3Dx4FD'ݩ)RV&󸂏ZhPv+Qj?ߜT,E4$"Ykj1 *{ d\D2fWӍ9m_$".֮G3—jTH"zM(nRk#|xzJ=Yqʚ/S^ "2}yyG`[*Dt.Eb NKs&C>/<d(Y4t~aGCO#YRNReQDe5*#9;X[0mbYFd΋2| "AEFU;c {hk9TfOgONQR"ΏSFNkDM\DŽORb5F _j 8nl3:AId ݫJ; ai'y UfV^^NFY8׈{&{=z0aMW):$DH;C@[1Xo&75U(ؑ]W![z8[YKR M%INfR󗍘mUK~GL_0ȼ|=\DȀ G,6SGRz4=ֶ`kZk M&E]2j0syܘGZ62(S9\+%;e3?zɱ UzJ|<8knb:d%NZ82~KŨ t ^p*uAmd4,lS3z˰r A$kT"wa@wv5V_5LӥBFEq?> 훷0K\ʁiJ~JRx11Nrs&H>T1MهP3sLؽ _#@>%4/؞Yr(.VQ(]޽{?`9=Lu䆩sAaQotŲDF US3ͤQ&2b;V/Zkf{vqR""lkmSU!]u|CӨ8J$<#záL꾊B6rGvCbV@~jF̣B ޘTOgnRTUkM+(TZDREv1,\](4;%m$5䂊6f9̲, >-6j6RUʠ{w_S)5rhVqexd 1%0\$ݒw=b G{MTN.wƒp#" 9X}EA*wz:^ڜ5̛u3&]/חN4m"ٶx({b]Y53v^e*q?>A!}_u 7"'hݻo:tϡF& ||/}̈́s wQT[(!E,)[)PGMj.!#|R܅rK''˜a<= xGhًS&`"q^ۖѲbu1 ~5`fu xjz6G"ff#ֳɁ #3=mrtp'<\Bn0*o(#"Z?JX6Am@(JI1DthCZ$\bSpZDҫYft]D`JUm =sj1&} ,,|ذq$fJPR Q/ү$5(MaZx{' gٻxN"S)Eϸ¶}}wSc-Z*r:Lf d1!$LͧQu""I4T FK,Hb'0Z9əXHiaRGr]I\CI&SF5菍\1XQB{!zHBCN75"cOk<:[Kg H\nݳ+Deޒ Cr,Z EJI"w 9 !U[E;y?3VqVG-FPAؽd@*IY058̚ IH/N|fI2`pZF2F㺏٭x.">c{Q]E}4Awɬ}t*- 6kWgy{3l7E/1sJmFt8#o hzDJrz*#iJ tFEz#Jyɯ\]&!Ë1VS*!x=ckI$z-j$ܐ S[S ꀛbq,wsaAA<G9(p ޽YL]Qf'QT"V6kO# 0 F+,VFI_FZs:H5̄,uHMvQHɾtA1D+7, _ 7{9͛qh~e}t,7l^v<\ypD_rܶؗ_}oۛ$F?; O_^^3=o/1[kF6aER%:e'OS ^Ek-]՘*g8`?sPDqHB1JrU`.̯f [R2v&3%#UU~9kpYzj~$ׇ `dȚ M4D \b1ٗ8 y#t&džsι`|Sg@&A-_~>|vy2S!<.M#@kf٧oG1Ӳq?!b;ZNx>7ODg3#Aצ9qOzr99drs& c9I]с$QM:ι~LsD nCSqftuuNl8GsD>`A;ֲig;d.3;M3g2fKC瘡'"˄W99Zkd!ĔRr!" .?>.GHĥ/d2 QXr~qB)$,)sXtIJ ER|u?+)+DUxRϮlF1\ 'lFTCfC'Wd=U:PW߲'BcG8T1q뮠 CWIͲqZZ:JF6뇥s^#YZk͚L=fD~\;:[7R~܏07۶ywgi=QgӇ2^EZKDm ٔ0at/@{b{wF|7k-\9ˋ{O}uA Tʼ+q?Ȇݫ50|L GU:уN8!T`L!s%GSU38& bM/[VMkIFDPumR2R*{V3 zE="4ge0F1v` 9]rArpzU!fidGy0 te2BO6^YXEؚ͠bԍRE@312cM{ER0c>0"YMZ) إW}lm~Us}`|o\z'M?k waߊVQUB{&ؠ]B! 8a7AYԬ5trN3D<>>eCfSG9އM_^ZikfC˓Cȸ6sOw^.K{PKC]+ y{߶Pj\ݩ\3&Fݽ)6 l]FSM<֒_1!mӪnUTfGvi*B{Ƽx8#۶-sٞ9DM#)&M'7c%W)Iy)nﶦ*/]͌ T3H{s0 {T_M7mPU1cH%0+[P)E" n! Msa֠8U %a,دDl[&|FxC:=s I(l9 *GW`"W$"a]LTP$:]UTm 3/ .P0 WQ!ٓaaFJ{S4]ᾗNX65_s.M"%0 'YHI䝙!"v33 ș9YYcXYeœ`+=nS%6Xj7]VxBfyzua|/?$K0{y^X=?_<=M9Z'`/p}*jt|ɖ z-W,1{Ɠ%ԍ|.·‹b%ܠL]f9XbL !DѴ6ZՄ?q}™lqH=DT-ةIOfj~x.@hp$jBvCO O.ϕݪ~DY\rLD@EwiD8Dt>#C-)E5CFi:a"a]I\[tM\\)]Vjp+RͯB>3q_IufrZlh3Y^W9Qi JY)BLTc^5^O[5X8JF?dr-x C%ANSaQLxD*D0%; P+ n̞bYS2;L<ϛe^NWPO\>B:~͍Bt|?g?~8O>$(F9*9g_w=MWrIrPSkBK8LЇX'K>Xki\\ S]Yy;9h=3Rno6:6ɝ&!P.f#6Mh $R.g.Em@~e] #Yzd 6P* Wf ˆDL?Cbp0+QQ:[sSL<ǛYRBD*2ZrYQ(2udE 5hOPrYƱHGOq鍇"ݵ hp8uPbM@8D>vQ V.*O T5+SR\e~TOC Oʼ3]K8/PѯxLhA}c~*un:~]|ۊOǟ>/Oێ߬ ?ϡI i"伟ggHY-l#kX_`GX÷X![:^ǯQ&2<}Nc@r#wv||D|{DI~}ɛY֊E˭]Z3ő>{uא]9tD^>ypȺf:BѴRĽ ל7VqUl\MԔhe^&}9V=M1*O=97 boW2J mg C("N[@޴>+Y>`-$PE L%?8@\T]F[b 0O@py\SԴ2u|fL1b$ MNb^o4L.S q{#D IEoҡkB To\ﵖŖ֬jp(ewĔCJo6~WkP$kjQ;T1\xO azdBN`%q!&3R ϟxghU2Jh$  ?U13H avE$ 8 `Pkhdc (ژ X2b[43s%_b*1fӯ3Q H>}橧ǒ4bpO",s‰, ˅*B(4j}ZBR#d 8 I(s q)g|jV*/Gf~cCELQ>;w8x2DB"ΨN  ;2-)Mu0C_U0"uWguߒ`xn1-SO΃=vg\Lmطo "s Fݵ,d\`؉ E)gISù;Ǘgw=;zmuOH8|teh5|Ix42A3v>D;O;ޤC%>4qHFv!ehՇzi]k燪)BCPF(%iؤ$dԲɘ4/S!k6DM5 0f*7 E*L*4FDhw9~IFXv5fӣ-&=n>ՏUUeBi`VWM* j&&5m5leUi[ TtShK *sh5lDLwaPm^ L t-YRk Q9nS3;y-Y`]|IOO'MjM3-/cqk(C3~D(xÊۈ sˊ`,}<}Bmң-፪)*,)CD߆vB^=WPfR +%~E&@MU>?'Dq³{j(CP( s,N̡z H͊!Uv)jGpA&C! |n^L!/rEftgU[`[g}0DMUI@ym`{VVRW_[pjWj^LvvS Fy[MG{XF=Yq 5Q kg??ϟ!y#6Xrc&w ^u,4a̖Pi@}a6E"1T8ϓGqX*SA~@%=pb<_SS[ڍ=ׂzy@NBv# [0Q~hvPEmZږV]afl\*T{qck#2f?듺"W{P3B_)"a ̔tКC;c23Ԥ q2Pڅ]Q|V6Sn:Jѩò{gYYUĈdTcZݳ黝]9^BcT*Wr\+KZA d|=zi$+FX̊ wak JMAQ@d; ҎD $=N!!ooy~Ns|ps}r-QVu'ajwh:}*(5=h#WK=-Xvx{dTAb;-I *YwyaH5L>$Kr˖_)(jk=+\S%[NR Q'nG0zԐ7\Ƀ@Y*X1c6mim L#w?w(<|X;l @D xXu6?G&EƐѱN^0ɂH%ooﷷ~xSGbVѰ&j# kZl#"Ks/)KNLPufmʓT$O*GZ-U-=IjVAN{(k`1 {FܽDG^ "DvVj!I ]@w /||YB!$`8# L'baΚXQ)ئj%,ALh)Y2hՋ{XeHjSaT: \IewcVe৲^:P!XU>P{Epg*.0H"$f*RBB! Xx b@<%NPVrf/η,qlX.ϡJ:[DtJ?qk,w7S1l+"DIT)1DtqCQ B1rKq?gDOO&?1QS9#f?bv^f:~U~1Y3"cCуifFgƇ$?C@TD$ΚB:&"Ȋ`j6d8aE)GpFIaDN`t?\ZI]!Qjƻ z/tU:5S+Ͳd&8I`6lqsf4E"9Qy '+E6)`jv!ՍP]a/(2wKy2`l"aO3(v{BT/ՌxaB?xeɑZfkPHL"E*5=@LRrA "GOOOМn,\EhAg@ay*B ܳhEHePJfFԜ |!1L[CX"2Ae= TӢaj*8Tw>LHd s< J@ L&">AB545$j_ a?"B$s!)a7av >ۆ@~2PW:^ǯ7&~u暰S; :nyy)~HʌQ⃶'hVDY`NuׁkUz?uE7 u߂oۄconq65pwUcԡBP\N-DvoU٩x^Q56b=P6P '/7|*tpg| T乇f6̬BԘVLȽ& KFF1:O b*xrUH݃x\p60Cg6Zr1!b"qa )VBY6 є-cq ]&z488/P߾""3C?ΐڏ|rȶo"lKfZC] $,jH,kq`һ@n*\[c\7L`g#BժH—eYw![ [ k:\7zdb3xY`ON&J$C=A|߼Huh>īz!dykw~-0ۂf6Tpw@yQCJݦG)`I]=T2³cY%P`*gi!}9\kq/)g/%S kX7EJWJl͞9L-jS%c$6)%9~aDzټ|RAt_5_%׃gAg/$0obJU*~7 N@z tK-uF/ZfMr͉6*~Kff3hhetf6V @09Xev yZeNr%}UUvV*ś-Td"P_="(kAmU|ptU"+!Ь\xU+x& $ޝ篟~?`MQfko<#)&* d=75W%1QY j&) nu_'1B4c^xnux]ҊV3 1l<B80!Kߘ#IU}VEn]5ġ:'ãԃr(;-{' WX%csBWè^u<%DKDdJ FgٷnX],>LF 31e^s@\%Ho /Crӱ>k8"i,RE)9OB4qYqYY y;e)GTld?UwĪW: 0`csEe?00'LZKz$d9N{Qs>7,@!GR{LE/,l~j};I dʊ{(@9$8 0n$jpOvRY $H-ecf1*d鞩iҲ'4So^MǼdfPU/Rmv u=c/NDwTXhR{A B t?>??Q%J -ӫ0X̀/#_*&ʭ譨f`ȁ 1gsBnGw|}Ghu_+]҆[5C*&`f䜎Ǒ*i" -H@A@ҧT4HQ³qWi81SS]{KV'$+Oeד(I riK!k>UtҬzKV5:<˪dp{J|@Bsj) lXZf]+ޚ6S!`2bbj‹V@0kvRDDYDw2 &pV%/GMT6L9 )%D-p2Ω [D\,' V"&6ƒ!: PuA`N(bEQ#܆}yy6Q?p%(^,%"G@O5J-2P"LIh`@a?ϩ*YcB[^"<8SZu`uϲs2Rv+V L$lF{'(͝cf>a'ȳHBƍt#6{@96c3'JR/ ADIь>^ӆ*j :D)J6yIڻCtٟ;%`(rC6P݅:k󽏩io)c窲**c >trk 628ϴYȵm)e. 0kc+svd蜧Y$3p;D@DhW.SgVTL"|r'9T5> cWkXkg'R rF[ "Py`IΤ*?O Lu\Ď1?6!F_Yӏ~xƕ("g`~^$V_/m6>wZnw͢7+4솝ۮ(1n >͟ (tr{ U4Mx }j#J/cOsg0YνQx^(5,F@l$raXϫq\XkO?Df!!kIz6+ Ad+TTT|_^{lK3{62 읳[ E$} ]jD.Fv7ȣ0rqKkQU2NB@z_>!BӨ~~}rE!za2MmWPf` e_g[HN`3!L$*I"ef_8ttU>Sc#ӫR+nYf`@/  V,-K:GHx~amwjVJd?v?_:~G@ ǰk'W洿0 Qqj pQCtDaiUgG4*UcV%2PGlw-~OSl/Z)YL's[Y}iIL}2'yXU7ε:\S@Gz"Yґ1P{ Rs̘/:%%"bD2Y.UF8[e۟+CH:K\M[eWi?Pdƶmiz@܍6r]mP4;ET8NZ(Ⱦḓt5x 3 1?83CJ[X!bP01TX]ZU^W0TfuaJLÖ OK^UȸַD^1'd24=ɢ<(ҢaCeACc53C$ӑ(dM~T/Rfq= * r0aq&~zxnr>֌n7,x(y$u&=AȉΌj{ ^]5E+MCv7Uo_Դ42̈^JLYpPaQ f>v,`MGPU~}mذ!"8T C9{0;7\P xWxuңr!g2 Z"D<p1:穦f=2YO퀧۴XK={0{qr/YRpsHT41OUe0S[̴!>,ÇpݻW˚v99doEv t\*ro2Ltj=vd ̜41bё J(gә VrL@JH*p~-f-ChG`WD5+ àAD0I:^u)> ȉpAE0J%r {%H4-Lv:9K.o:[#֌[N8enbR3 2@ (ᝁzGUPelm>~h<46jkAͨ*Ra`O53-"^S~K֊JJ bMgJ:< ebsBm9Q#g!6W̅jzӏ7Q3<&6Y~總!rB֞:~+e$Ȉ'>Ynŵ"21P`ZM]!il޻8+ꀈ${^<8ci6̿ۖ r -1<}UHhkvIrlՙ'mbX'U2{< B͈dd·p0L+'3WD=D"ed_&ԎAe)uc?PUChR@dJyL %&2x!ŦĻFFJ+hΝFJDDە6~:}GݶGP "2mOyY˱});`@Ba*?av,Q<4g2="f]_i;Ɋ ݿ}@tK2;q[a8WTUH,Mj8 oؼ ^/25szj!jx,q>ay i:1IzLjdyeynDwcseQ[)h+i:[iфo8繗MG߿`xPl`9[w"ID*X\7js_Ty{gOd DL0%+N`T^#Wf[K$l*2A 1(r (%ig<"qclVV6yՏN+ եe^HDjPU*K V&j (6A(寺<(([U!$ g JBtBDa"0#W^](SE!9秸p~wӕIz<^4bo k24g=W^!? j{v-dmIŖ\+4S7ezY14uf}˾:~ s'J`0ƀBKsN)4,9AMB,Oecbav^50_d{r0OR<kSnMZlgȰ?j %s_x"o|-zI[bMnqκWoԲ[[tš`S4AڍI vK$4Sg]%cf TAZE̫" jMRc/&>hС A@ӊgfVTGIandSLj؂* ڋ h UupoA&d vDeId)q]P}hU?_y J ƹP]HdAT:Po,;%1 Pf&6\Ff7'=y֨[jIœ =Vٴ]D%(qa)i* 01)NAB ՐEf\:Kl=ct;TϷ{ ;5^`el۳ QXY#7"a9߰@;3T$lxeCgB2ץjEzV ?W0b2t_QLȏuN(9a_'J1n i9mq^xbjTiY /XO2-Av T{BB(,`MUD,!"ބ6Ak4DC* !)TSGF?Y TnT'Ǹ騅8]fl0|;BPfU B$O+*3EOpNfNu"9ɀ$*3kI0Dƍܴ%˺=aP2:d:ɫ`RR½T+TмX"LW\UOɲ'QDΌcxlM*&5#k#䡚U8=trF.ì#YDX7ٕE#<1vBمDcx04W"&RPl}ϝ ̫Y2Ä#<]:4^ղˑov3S)Hӂgtt"͕e`Xh~5S\j}_ӉIn: @"I_ɸ@Of葺e8K*:g%C-W0Fi?ʧ{p'k˥2I3,[sRLoL[yKHl\vqadWUU450}tT*2gƨ0 ERZ܍?P['1w yV{Oddt8]DCuK;Yv%(%CʤtpT`1t"SBǦ]кXbR_&2 Af{b(T)A9 $MOzF@ЦYI'i̊踤jdJDqĐs}9ueSE Yu_qsI`wRl=/?ld)"c ?nRkx.sB? I˖g* ۳\{p]{uPx6ʞN-Q$LCBаxAfn.n]r#W\˹hLR3227 4(c~Jm˖u]\0DxLJ$9WxGʓw%'z%h"Lm2C[dQQǼ?*e BJ40z j(i~ $BiOsWϸehDyR±|7Ͼ˙ \yNQd<-^X~5goj1w$uy}\w?`lg 3r0A15OίkM?b{#O?gRc``iľ߿bO}Wu[_??o((d^ Wj(Pb"ff1biE,"/{ ܗplZt=qJVZf\~83wM>7ZHVRrr߱ 2[9TՑeKwΖiN/;DDeA z\x$5A(؄,kRə]e%QS䰄dZWg*ջ^K[{ӊKk^ֽ><ڜ 67WYX-Sh^KxE=Yzj ș$HURs [%>i=K<"Qqa'Zs54uA2u++`8o~8 |N-`ת9Bj~&E9ÕSW4aq @2?M3-m%gVℯ8HcԞK-&^`.dfM4"YߨBp2'g vy'ʲ|+F`9 h+D,B&4qXĂ @xP,E5QTeJD)o3+VE2g[fL]O]fH 9]\ >s `Gx[5=3G%H*4 ,.AIu!6$iFQEH&8 sBmk6 j̉@[jճ=2կBq_JWW=֬I(ɳ<]\;GOO̝]\ҷVWX$6U<2 Y[ꨜ%_o-w~*v1ƫz7Ln_9&̘6z%foCb%H*~sy%Q.xFk*XukJr:/ġuUhD`zY )دղb%)r,Jv^&Vane.ug~PH&ʎP5-65c 7+Sq>:FBM-Qi("sNVJ̕Ǯ9A*k4l R5Cpq!va#VK^Q7t)HހL @H ..6vÚ:ܤεКI;lOفmPli%eRYXJrKĉl$_M$ѠsoXn5W㓈/!{{ҏU#~~+1sT!QzI1 v8 ΚNPUጽ?s?Oa! q!3<]l-HB8'y?+VO?43+ZbMNLd8"MHy~M$\!̀6]DKޑKI=*GBhWrQIhA YD%4;t5V{]I$noqoU7{f("D8|AzփBE!R鞪lY\o*+;3n;۶Y#.D5_?J͊u#Bk=`Jc-?ך)[v%k2@V" @ wv!Z7IGٟh< HhDĀLx"']9OA+3dRy)2#!L0TRoA/iD$j 7pә'-=Wn5b LjXV6e b_wfق? eڟn2CQ5nvK uN 4W LF̙FrhPas$[D 7 .wV`3- ގS jOCs3qв.z}j|9)># ̂e.2Rw_$P1Y9G|}D \ K)ծ>w_#f5Vs>;CJhxSfmtB>lg;xzn#^Zl,Ջ%*ܙ黭Y)[cth{@Xx,7*#rë}Jt/lpC{O2%4Ћت*Pѹ&Efhaa"Q-; Ҝ}8Z!̀ TOE6;ww{峱\*~,*+.Sƙ”J&J*z1YU T@AUPu6&҇4orw0ۯ'/ֻ%^y+=Hznq2g4"H@W~%'05gB-" DX#nh*ֱ_o{}s&Ơ?&U-MGf̐EWNNq ) >'yWx7mPn u= /PK{(.]N4wg LS%mX#Kg5뤛g/X~5ki/^{RLe F )4{*;o}g嚱Z WKhT7(0)ߛHNmzx[5ӧ3Gp]îʕ^flJmh\;xtKXȀ[[F.ܰŠwW j)#UB Őej9XP=nf7m҂-]Ywvٸh Ki'mq1`Az<`U;fvqp_M툈nu+;>#*vENFw %X;EjNg`_kc_WŌ8}93"if-K_i9svVh2U׷t(T^>pX1hV{*ΧSXާ{Cmq 0^ 0ο^k?@7ܜJliw3ݨ=dm2ǻa+LؔB]#|x $|U D3ħYm H&o,%)lvwxM>]ūd)\5 ȜFe*fD' D-10QEiobK4GZ_~`Ƭ6k.lU)'`8(%dGe0zU}i]UުEjiLʬ7^vB܁)ݵ߻+ތE1wTʙ0cNܵ}ufktCtn9}k6e/?ǯho9~=֗)ݏnXVl$3{/휾AWu~$}"^<}Z5]3lf.VUemfG /`1iLo񪱾ﴫjKۉ@SA[&jVdTr[]˶T秿}*+EQOcXh4f8h4|a,!6M5 3惾{iFM;Q ь~ ^5d^7\+-!ͱ'|)YPVaJʠ%nO.*P]RykwtYuz@W9H:+Zm@E{ΪS*!|b3{STu D|(a˷<="c^ooofq 6E_VZ?o??)۠[L,}{~8y1#{>ܐ9xy<ۛooN:%HxH+%{ɡǑymf\!SP#.-"FJWUXU$dFd pnUhe9Hqل ִ@yI;1#f`^5W;(=S`Ǫ+vɇ*dj%I KhNz> = .7)S)Ā0ʭ}Gr-^d[+j<'$?F@ QN#9~>Hr$HW CǠ=vS㝐wd췺v)1OT .5/:*S/YuB]bu-vض*.rsq#6dD3帇"^ٶz(xul%Ұ/ӗтv(nmRXx_7 ݒBjS+o)-U={fLCD߫C2s=h]s 4|F-LVRb]c{s{͋ %a$E3VЏf&$NkR$:` ۴x"LXvB:bE['7PYꯚ8,[ZWnݒm3JBd37'D%ݢS8Ȯn~+e%]_Y+mҵ,4B ejFpFĜuIJ1Ÿle8qp{ nΰk8E (&fa%8|!|=_Ǐ^fa3^=Ҷ$jU9c</߼ߏA37V'f";ϫߙXUx석&EŢ)yie&}opQ_e[ǷmO7lxfVB7>embx`@|*7&w!=5܆\(+i`$y,ibO7SJk), R f߬pr,j$:%Yͭzm={p&±\]wYÖ*\ql;A*p$dBYs.TQiƚX.zi[׻J 1P&tFKL=f a`ιUUl$J#Ge"ST_F;#qmC爐[I!us\E՜mƵlN eu>>}{f6 H=C@`U㲊n2L@%VIi7(QQs)^o=,krĶsYFlOگ7܀1|67b~2xYо*^e ~6~5/NUu*'_c͠V 'ͻeRasNf$IT`Y_FV%b/jT( in +ux#3\VPJG-21{eSm^#+[9`h00 ܪ:z4u,)IDR[ཌྷD.tc*z_pnI;]1ƨy9*tGeXF6_+V?÷eX iVTpX=pwH(FRv$)Df)F :R*@LPl08)+<*.iV|0V63fNXՅm % Ghysp  /n&Db򲛧XiC=(|{>ݬbXe ^a!IW-~m @tKL]ЬL%sΌ?3‡שHUyZIw@?@L.b13f/sΟƣLXq<0>QXc1_{1\,SҌJsIGzjbt4'Q0f&3i_v-GlʂQJ䓑2pd~H n8 `%mfEB ""f@i ΜY[DBx{F2s*(EavN(44-JnϝOy&mnT+n9OxJO, z ۀ `!L9 ^(Hӻ3s ^V.n[ÍwU]eA8Zs> ?d&YfHH3V3|Jg\-LT&,9O y(T)s6br7>r_@dWuÙ@ʹRRq1|2%:K#K:3XikY?99<<9'c QTn+p?׼"OH)xMg[zU2/dCYi^Y,%t?=lú+8 VcSx()\D6pt0\.#(P#Y\%,/m /Fvf ,|fLXC<_hc!#"H+joHMbni@W68aWMv*gsIDkl9VLgfݕ%(5̵ivJZ~/ML93? `]U4QRz;!^A7a,y1,5|ӨmCxaSJp.V9 ]ɵur)̬AxS߭e;I73ٳ; Ixyfm+Qn m2<?\/侴=!`FR_':R&i?8xktBN"faM"wUmٶu!qgTܿs*_VR92ȋ ([R\$ߙjKAi3l/JYW~CK>2E@M7N=냭sL 7޵WyD̶"i9(!eW[4*]U` 1O/{Tuu-N|(WTu]8xa j_]426ǽNiseDQ]=e,t#N%wB˧8{z0բ~ ͸2̲M+ܶKwS@/uB%0̛ȝAY Y5([CQ0"4iZw7Ă2VMZS%TܰSWQۇ5V< i2{^J1бSb% KOΣ7uK ;gnI~h>”{ -5=K0!yy vB>"uL'r%̎lݎFd}Dvc.ܽ7F"f$~TTN͹<hw7WW!xܿvX[*S$#B"hH$dkJ/س-`u[W1xg_UfUP] Z@AVNU_PƼ! 8ZW$Ge !bϭ=:o?vd_29{TFk'pwm~_[yEE c*kܲڭJ.nYSu 9?Q!.;tiS$ Oefa\n{:bY/;`9lzE^ 2]=솜 O,sNkmŲ[9]o"pS &e 0 9.ua4)_~~<_wIX˟!bsjKA(R(A"cv]wR#_X~bb&b[{ P'7hMdTIazfFͥҹH[p/k[BBEoGݻ}A79ݔLx02Y%XhfZ812 Uz̼Bnl Ŵ׏FxZXPwx?'E&Ѕ8f6@SB'dn%osXpjܸ"'dg)g(D|@pR6Ssjst{Ie־y 1lӑz`+ V8L~ M^i4w9SLeKT*Sl-3\6v#]yV8Ģ(ؓ`L<4CIDS"I(ܔ̼gJ{^$ x|hQfJaCW8lidbDH,HѮCK3$„RQcbJɑ U'9s=*'fHr3d,n!1(eO2X$˲0! *Bi^j 眿'c%s""![fU<);9iHS܍6R%h.9sE\٘b#S޵sL `f3bUڽZUl:(lcVW ߴ.TD<ơa.-vO0q]QN7*i,4FqEu TRC[='<;xj]fZu8tlg]&I5LL{ްo/#pdnONhf~gTC[I|]A)qU;ĔskrlXCmRn^Q*4 u,D(Q_ʀ]!U֥&`25u="WPlCM+)xGaN;F!&a68ƘY7weHWV&tECB`bQ.]vdPԕm%lx<8ܪd˜IX-m[oJKu)czU#>aAȨqu)X߾}{FX6Deou|_Ǐ^`~zp7q&P_"w2|X@KE1"o8Ú\@g%POoх _e ,/ [o;pY-,CQC?MWwֽc( P.Ues| e9˃S=̎Qj !+|)+7Jtd2ۅv_wO9Gi*#I;hJոaP o[z !u.˔%QU[ y{D Āufn#Гi+woH]E=IcVWFE-: f|GJ燁>>>$l~\ӵ'؈] [=@/}t8~,I@vd˴~D 8$kihTDP]WNk!{ |Å?}ڷV#&m;6EǦu|?~~vyu9d )bY@ʵ|3_cH:sXѼ"ltRԶБ9ElsTYN%؎ = PJ.Q 4*jDlnpA}3;3 X$XD%/|V(Z|֕&H(u/o7Ҧd朑DߕE!rew)v7) g19/U>AD23>h~I]k W*Rʹd4fn ϊj`Ö`Jf!FfFܒΰ5D/XyI (H9g sw7w3?A̭!CH 32V:Pk% b_Y;F^"]/!v.ի-[.sbΏz iHs=’4|WVpq9/ADۤ X_w'"{)-+cżRY8W?xR%YleRš[K>DZ̈-Qec|ӱ ݷgwC-K_p ?e~ޜLɎ#a %kG Mc ͛,Wa{fMQ+'?f,sTsц^3avZ|fI#'df&?(.*J=g dbqCT{VaM赌+|KjKR2]!uR6V"I3^yUD*H=Jb]U9^"J%26[7 ( $.ۅպMrԵ~kQׇ .5˾)[)L|7|Q\ЅEg"_ 4cJFd7w:=Fq^,#mkhUTO 5s6:E?n8MEX>:u}yڠ"ա{Z+k.[#U)^/^و = L7rc ݎ ]xnb)./w^D& }߈H׋CQ#6]#2 w^%C|.8=ޠYV1,FUJi4 :TrjDKh(8fx %1c!md^˫ɾ \.ͻz[I"M29X0*-AHz_)ׂcC inց 7YTrOh LSWݏ].+srΧ1v ༕rI ۃ') R=<2Ȍȁr2*O3|\uϷb)U}p˨-qQ¨FZI$9m#3tG8s>89Z_w"} 73C5fV͇x<Ɯo~f|{{'3>˧rXf "yh&ۤՏcw: g2Cb, x{mˈ{n>j w+T 3;Њ(S&J-^R## ٚUdFiOi L3`eHd m [0Q4yL^a3( w:YIfcD419sy=1+XB4 l Ќw?H0g Ns`fQF#sx,@dr13%E }d%JGK>Lcnj 1v4I3وJ eՏ9*ɥ[d4iT)deV-Fxw=!!aTec ũR@d' sU(z"TB&M飀 ݀JyÄ .&g:dY5)!bL]%<1hq>L g4aΘ[|X טɌױ&n nC {n%?'.q[bQ䚏Lg.|>8fpSd Ap\inQpރك#f"exY~7\)Y]3=+z 3t{}ށX5ihffc1{ϬV7=/w)|UDafbvLWFdH^Y>z{Y O=Pe/Ѩq ʈ37}7Er bm] [ΛZei۾sXZ> QUBՅeK эZ+2kS ִ_gf :7fW\2Za+o<\>-eHqgq^uͱ[ 2 I0̈{zq${gR̅_"뎋gc(_P^mě|ۡfRiloy)h)+6"ǯ{˯e41#sG Blu|?hu%;;G[}I{ps·3{>y>[x>GT &!?ZvXK m]ټaӗE΢=%@.:#6lfeMN}*k_WN(cF| ۃVUƻ{ɕl yŢh 2Ԇ6M1C=Q5ZYs:~ %BaEjƋtKal`A gnGꞗ{SZl$\uΫ.ٗC VM^wAtٗ{HÍ<' qdhC5s#v?뼸%->^0ZG3!S6X^Uχ%AE톺=2ʎۉٯx<`&at܎i܍VD7밌\yȻm+E.."dMI;&̴vEzh E#3#[3-DhNfefBY.T*vܗ(,[~Մ%>-UoѲiE|ϳtL:,/J2Ü4ϹTjA"aAzB)F," ht˘5]'IәK.Wqm|zׇ{n#İn4:nTn'+f{XW^FG}|/WUfY{D9C-x7 fW$)Spj 8λu{c8gV^0vM' mQ(D 2Y23#'6S,^nzM\CRE~x p?$?L:YܚƔ 7/2# qhfD=?x<G 3 LC R{7:IK Bߙе#Jl&yW (D#{Xaw! Ľw͹*50n4̀$o/EhBdfG ukq |JnF1]/ފcrZ]+A][ǣke d A::i=) exsǯcwhZ:pNtw58#Rw4FMfYOx]{bTI("m6 F0gn3mHSBF[-c p&2A!y03ɘc<@O;ȸٗ.dy _mnU*q5;o[TJL@ڈE ҺOM̲Ҝ~Ƞ8J)hd"" 6@FsNg{Rl$1Uӎ|"I֢I'H9 w_Ss1?d#+T8y""PR͘ȴ2;N sga'6:P7R6Lw-륯MJJeK9؅^MPS۰r0s Rg iTvTvVDIugL]Qomz8}z&IM%y6?JoǨ9h#EˑP'kً3S7*q1,kM>5Ry%dG]NQ7RS=Ú*{u"s _,M,=&^/}^۫"+-Y&Xb׸q躱h9l\dڑP u|_Ǐ"~ԑah"BIzՓ}ΙkNfĜr>s {<ko{9`mY/mt[`1m>[+֤W(gz~ M?u REٓ7hZ_XI˖*aͶNʶ^ep`J%!swzdB 뀣D I( }a #x{c}yNxZ5mpy>P" pʉXhWrxty*9 GULQyᜳ+S\g@ϣX._KAg9h]c&#D@h,F͜ [Úmi7uʾw۷nGY )?XԪoH(#2"sYpӹWd}UkTr`\.6*GzlO8h:~ꪷoooZB l7}-騘Gx<ހckLbLo~.ҷqG o)qi6fFT1<ҫz'f1wWqmn f|i^5oR:WlNP;+ߥL VvD1@%D ( 5w>;^)9}x{S'F"~JV}481%TT""pM冰9JYdRL+DoF|5SYny+i[Fe-E9U VȢc@m~ 32CYVl{_ɶo}2Iei{`?#V[V-4#AggޒRWUɳcG[^JFGUV@5[R|x5<[D(67*-id%t  1w X6FGuw{Dpb=3u>:ES#W+cnbσ" }TvR{&>Fq㩳W?n^ĔPT#"хYWٖmӹΜQK{yIG,Hk2DR QwRw}OqozջmU T kJlADER"!b$J+\&/e*TU 6 fS "BQHg~pg0C3 +ttu2F&}S#őp w"i aLDaT7#U ȹ6-2)Ý&neZ. K,B3a!(ĐRETqK\eml0:\ʴB!6m* Gz8u5OKDt\!_eE_R+ӵ+Gfv)FP%v! cw*p/A- 4:Nz4[ިl"}#ܝnTmN{&ml2>8>c@Np;1d^EN\Q #fudk""I;L$okAՠĂeZ\)vV9&N^@1"=!0#cH5a j7ȶm*G롲DۙuR9&ZDNHm Ï?BM}EIRN9$a ܬg-< 43mxpNNrIje{0=07q QV}ufouyL&,R9d,#\.i*we(,Q- һ.XJ;)!TƦgnR8-9܌ӷAhMJyqюiO<7.ch67߅Ɓ0i2R3N>BZmf#5rèH[̾Wx *-5k [pEG盨̬uJؔ*d'{k P#mۛo2r|q|ǔO{< [&DgwgXE(9ጌ{UսOu-K \} r^I]) Xd@GSʍ\xQ?Uzvj ̇ΚnW ] B%f"Sv$Q*Cc.|>уͱu$ZL{rSf2#x|(%@cg c{q̆סt$Ak#)8zƩD5"y@gSq t̂ {fyF<8V*  LZx@~afw3kMaamۤw[G޻*tS<;K^mr>xQ_.o޼y;>Xԇ&NH&Mnf Υ &n۶Nt:域Nuϰ9X1VL ^Ylگ,U ,cJQ;{w|Uk^ K~XiDP"Y&7C '*ҫu<kd*o8*VӜXIQNJ { U'<_@kJyw_~!ZٯB5gƟYK$d;hz 'H^0Q|CDD%mlUZsBPa~1=CQb8JztB B @& {@H\#yǨPua4ܻfkHT?B%{0)SeV߂v͟1es Z.cXbz^9gtKElj?nd_"T5VUjeQnr9g+/DUQmEΪ*ʈn///1-D!Hwǯ~+Ֆ5ov#8>ؖn]sUG%9CfT,̬ݻuم) {| '|܇c쒹yr"0qoQI]*6 (]rz̟,1M699? n8ObAV"4*~+zY&}Uк˪6Z 雴~z{'?Ud) &?ZI4r'1l oEXdt{z˛BV3@d߾[f|^;̎LC!ÏjPL)V@ᴈd:cbk#DZBflՈ.GIJ%JA=Rڽ1N2FIRE=R-8o"dZн~:iv>dYgcύjTdƃGȠsn0z?闪ͺAFFӰ[3Gl&Mw7 fakIWy'?V8>cz8_岥h5u3V7yN`w}ꕺ!J=v_H53Xpt)>!k1QП(D2jfAt ͏2MJش^U+hi@Iu Jl$ʡJ(< )jS$I2xWh[8/%5Dy5a۶|N[dRr{DHT],Dh9ISs pXTU*v؟ow?HD\$\w's"sG(CM.Eʫ̂Χ7*qx2(؈0 !4XQ1fs9BAY7 BBKׄ>"$hl iJ7TOv uQ >l2Y(1壸znbp}'m "d2䋦`$F$NM#۷?ɗ_K>=\.*EYtMx`K%½W&Ar P[+0,ш=z'k~T@m(jZ)p_2IP8qD?e)i^嚬8:X[%r#ǔt:ΚKn)]% %~[U%EXf-?rK 'V5,9q~^J9g[ t;&/|a^)u9SLlU[PN0j:뱲b="QC\;'H;=lI Bɶ01Wx;aiv1m$IQѨ@dG>]cAeRP_CUVVN"rTTb?ᑾBxp ǐvyޭq5*f6m}cP_#g0dH$f$Xn8:Xm۶5Z@G*`4j"5U}%hxq|jmvڶ́nƷ\\}A!gڇ}zznRdNEJv2#$2wK0wGLzC:B&< j@ Ŕkn(Fjmӆ˫1M\Wp;[X5]%p:Lgs±2z<,Tkb[z9q yYg6=}g-/q@`9m74X6C!f&, R}&<@\h@ ۈwCHWZ)^^A_YpIVg6G#)ļ,tQHXfcrD9'Y)\z*9?sw3 )w+Qr2\ʔXG]9^+"-,X z>r~3C(},Vot$]_ ^%vS[^[;I#j"qXMb>iqYU_"&9+emIjw[LY尯YHeyg%WVRܭ@x1Oq .GgREF;oxæ_ymw1D2 MБ;!yd2SkͶLnnTϱ\5d\ģ#F5ëAŹJv#| J5xcIV΀EXNLjpi4?)7"&i啯0[tU?tc0Y8Bݼۑ4R!oy"i9Dڸz*o2̊(^M'k{M-\:/2^T+fE#nP) *p x,>qd_ofkJy )D"muineN_|iۄi O 3 2{N.UȺzS(7sOVWMÒ n =J51RGMz;1:毈X+F7r$j%ڞ2rSgD\W$ 69qX7𛣲AK2 al$)"bccJ5nIk ] 61s<0cd8%zA,^)앓Nl")y mb`}7`( Tek۴gdxc^enx2)n>PzVMKDmu4{Wuf֠Qex-ʜE߹B-(Ľll6uQ7o| {7U i| ȓOx:3;!:r . Qڜe{Hb-n( N&x'7|;F 6D3'5#m)bfz}mElYUxzzz捴Й*Tn+*Ƞh4!a>-fsG." 8/FuM7=N 1i;drb#yx im^;U9;3}"}7G3k~9^^~r׽DDh efN56;X,fƐY(R!u[G8aUAӓ4HN5kn89Fk(k1+9XSklx`,7-)qOc}^#04pUaHFYO!)mU# ie4Eܜ5D Kz.I scp:r6WrMȶ Vs0|Y`dהjje(1$=e5߳,I{ML Ur^En "X_eCI`G]ܭZOT I7wHZK>ʙHB"z33se$4?|qonֻj=IWь a R" ܶ|.3q=ݮok̂ wa,C8'yx(BW f}Z}m-aT߼MQ JKI9&|qn?J:k#y\u68-\ȽFF*E]t50OKjk7_Yƻ!:#sR-UAo>;{G-/ 0NH/Iܭ[VFϏL@޲pcH[RGsnݼ4 \G~> ۶6,-Y !=֟8>pHY;CKM+ϧS]Dz`DDŞJ"u-r5fPRñʷ FQm7|/  " [j{S.ʄMh.]>W 9ӹooO 3Ez@ %<?-~ }PzH %SWx[|cF[Y,ޗALfE;~qywǑOp@1WocKocFm̟DWjByv>.9ȃ79H~iTSwY sNXFT6H[r|0*fg1pw3#jҊQb|4H0sAj1"$"-(Q%Gw9?8>2K6BZK3nUޓNIg{ + Dicw&ΖLSM5̇YpL|i|d%o|D5&W0ng` W~XYkHJ=#Kd$ht5%V Gp}p)H5B]IހfMaj$5M-{w'*qau5מTYm[_Z?ԝ!w]WЏW,6QW45%,fΈn-%zdw{gg1ڣCy޺Hav"*-Vs12@;B8:>Q?Y;$>~}Z! 3ͺʖg]ܻ۾_ `?Mƞ*y$2G]㵼}q|ʺ(jgZxTLi.3afi>}x^o߼imF:\҄"@jel,furJUbr&_892V݀ y\VpuM0]d|knF&6cg#ڝ"JS8^ףc%<xUV'~8{Mn:"dEf䴔Io5+bi7+h)3'zUSXőHtc D,-.ab /k  Z {jb>c*(cQ_7 sڴlE71*E1mnYm>7c$Olp׆~ zh1jQ zʛKSU=zjϪMIAq㨰ZaF˻]=ycVag'#r~9͍ )r- cþw щ9Ĩtg>^7L|%(g0,1;PKdݔt\s:y֒Α`͔&~$:Ix'QZIX2;4Yb& od[rJ# "0 Y@>U5ߗy3+} &T)Fu4? [&s6 n)Lg!68 #1SF T $9+_nkGo;Q7_dM`lpܢƅk^G^/`^cX> iJ؞JĊQ) w)H)*DAI1E=ܓKmw]Cgvz+pr'չj vjMIKww9Qmn{k'">n2Rxx~:muo^}Ov1f~9yy~voۛZcA5D ”AjFFTJ6\K6Qf"m2ىKM)OTnZ;F@({iOVچ99{ʖ&**R!"MȼfKbP WIADHYLYXx%4"&7 Ի6䚚U9nSF9she!̄;F N'ř 0e\^   ("E`.ID@»r&3aTya`@tkxrYa"Zaf> ,Q^Q9P2DYg1TRCT'm;)WMlέpM&"##Н0RT%n:rX_YM,BTT!NjFJ/;"%#t.V򔔖=pΦ^ͪ@ԈNDz/~/>\̨ń>û`ƲQ/a)߮*\YCeub8AV#൞F˜٣U|c7fCG@2f ?b6Y O&y1L{M4oMof멸`2gk3//_{hR[SifZk/G%>qJ]a֚kIw'_ cJݳ=7f oI>[f$l.Hm:ʀLׂ!;nVK- R`N R9y" ?a8.yxucIIjVX]T "),o-JpGN5G#jV{[gg3b;"ilk0/1058D՛1n^鵼Y7[?~orZ0RǬ(T4xw7߯{-@nvzzy-xvY5oCo߾wv"jMXG҄)odXTlp=?m!ΈB5 }:8d7п׿ 0hΏ;l`"r:[S3Nܚ뇗뵻Hkpi UY~?8>cY{wuDs%*"\ UJdH=?=ɺls?HS@G<ܐ}t,Hْ"*9\f/ңtRÈ?=UOBYG˪4d5ORfHWF'(ķG[Po)X]טY dchZQ+4lvMFҡ06$=K&r BfU2,@}/9(-%$鲾`h,kWd'kbVfyCHaH cQceV6[,Np֯3HTI&~&ÑTюtV~1!y&&40"Uy5,riҺMipJ᪪Ik53GCI9̓1.GyI~U"E\D&$nT%sM(TWӱ5 F^?ayu\`Zܵi90cqy{\N@A6 }m%̽b;BHl#ƽ6}\@.qЅe鶕1[O)CJ[{3$wϰT :|(M'VÌm;oϗK  κhr\.3<zHoq|9 %>\-QJPB\i={fSe_TS`Ar-+ ĻUɕ @(Wq lE|D~F_^3ACqGQfvh=÷S;BeFDmo_lǐ$֚X*!/- x~_R=JJ;,=n~ޚ{O?\_t۶=bQp)5}WZ sG_iV^&*w}RCƞx2N[|92|-rj̏vGKb,5CE%7Yg]bo'4A.Uehz8st|Bnv so#2Ĩ-'Yv uqFx 1%EQ#Vo +B&4K@FD Lъ2MG[s QWJm{z[Dͼimy^UeQ$@qJ_8!Бy؝25ɸZ4nXь0\G#{e8݋*˛:O.@2^0ևu &6fu/"i.]}dsV@" Lh?ix2`t/饐nH4Ng=B<(a0~ڊ@9A'=-?}'e|J陸oF9Szz'[n^0d_޾ͯĬڶmfrrh1s$ֶvU{ dWA z"M?v*-BUK{k|_|__g';0oTU!Az.yWdzkpu(˦T> &Túeq)W DQA)X]MCJ9zJE"@YoO Mi>!1k%FY 1tZQpzMR5s;ɧWigB4K+NlTR?J(tQl&+2.?uq{閾w9‡ LuIoFg3Mp=۫/נ/;mhMk˗{lv:dȶx|"lg?,}43q<)/h_|Y%bwOo!Ż @f̬///f!<iBr̖\,//WwkmӦ3cx7{%PuTUfP EJ-1_ $ѫ?U͟-N3)3l)&po9 82d~޳;NYHT"nKs"pzX* e{DlY (#[NsVlBtKn "pZc;G7s,^6o$Q+@AjXە*vֈg6mDQֺP( 7f uٯiE! [PD/fiIv\ 7h0EL_kfeFUDvC:bs3FH2/ ^8T.cg?sE"6H(JoMTYIsMJhMU۞VSiY&Þ?{o_~9[Ow޼vyw*{./O;iT"Uh_=KnxV\_yf2 R!*-[mWmI(wx}?OWO Q@N77w_oon__#ܼ[7spY'Ĉ8Σx:ы 9Q7s.dM mT[޸]yOtj5U =/)ڶ7mS-K|*ѻwZpT[na4lv:T[S֚ fc){NgI IJkV1ns*vj* [/O>U2N:&&Rx7}oM)╆)S#\H9CA2Sz7 RZkh28`n{֥ DHRϟ૯oɯ{:m|湲6p{q|B,ソ//q#ުg2]eWAOxBH( @$$LlhGؑ!zlw]v:s.bqy{b!Q!4Bۏ<{fC?c.?IaXDXsanwӘ)__~nnlU-sUGbk*bΟ9gBtL\"fCUu=O<ǟO>Q1x`!Չ TVgcQ:'8g$2(lB[LcHĺn93q۰F^._$ ɄCwU5g!`t0jq{ &BIIYXJbO12(XĠoDUVfaTfowiHAUij=""=Ң/¹tjѶI: mVĖ6"W)u]u1ƾW>|^b 1)wibL0[腁Tc+X8Btg~Ι< >zfaٛ-ʪB4r(PT9u20 ]Yu% J˷]iRo_ @0;5"79Ÿ_z3=}5 |g=g?VUsi* l=FO48/^}XZUKHqN6",?aK)%Urvab%>n"n*b0;~nDaQ&SB-g985ڭTDD8deeaDf`QD8g/hTlt]uHD%K1_^dׅu(ybjO S:4H)cujq"~DġeHm?3C!RS (bRD]c 3gz3PeރjNaTt)g3`͜sfal6f6M9s 2:enjLb%4QbHjZTMKwϺ`\Bsm)-4Vdt0sMMn*͟H!D14!u yǜ3u~6;l0KS'TMkAsneRT%4ՠp ߿wi8Iha10) B j`^3vf7nvcE( "M )&9OGO.*k ?i'ӱ4N!E E i©ED|V;沲s}aYs_Z+̷ B é:N\APx ̳WY&?$WmF-Y ۝͟Z#n1XrNbݽUh5DoamlU|9"$l ۠Cz [Xڕ-\}Fnd V9:\\.z1 [oA; zS}-fKMc)cN߭|EEa` fOﻔ;&iFȜ`[:W`8N14XYFL^aeKz{=Q RyKu4Vf"@`eY,4TT8^ 1Eۮ 춿>nSc!*~HIENDB`instead-1.9.1/themes/fantasy/up.png000644 001751 001751 00000001604 12161555570 017547 0ustar00peterpeter000000 000000 PNG  IHDR sRGBbKGD pHYs  tIME 82G!tEXtCommentCreated with GIMPWIDAT8˝MkeyMz$R@5bde7j!KtE'Џ ]EF6Ѣɦ% I͋y'`nP 660賅d n/nZެƇLJWOv=+zE@DL (YZaV5CãrXkDb7rd,0*&5Nۨ: KW:rʹ"@"WItXIR 0&hNaZ̊pG_`g=zn>+ׄ% cnT7>GE?W%j? Φ w$k}x@#g H&u)2$$wf'7wPmh4r2auv"oJ(_ŵ˝9'ۇ]e>A6UN:@{8wN_o*ɇT$ =%i˟o[ [uSc+Lq (IPS,H&$:^X!C *%Pp4'=l,@l?Ql13(#GP?sgk3K 'ZFAqU0" $ 9Q)'ͣ?/lGوNJ XP-)B6 /~KssrkIENDB`instead-1.9.1/themes/fantasy/down.png000644 001751 001751 00000001607 12161555570 020075 0ustar00peterpeter000000 000000 PNG  IHDR sRGBbKGD pHYs  tIME 89bJtEXtCommentCreated with GIMPWIDAT8˝OkeLHRK*`UQM ݹup, _ ]UC)4R:MbM3M@Ks{s#g[ۙPIJBȀ  /Ma}o_o7@a#Yc,6()toi5:4Q6oۛz}ۡo,@Rt4_$!J'}ݱv  ?}ZqB c1 XYo (?tA:D%c&}Ș|}cuvtww  J6] } SCU =R?G)phD~%t#ojnyK(N}@Bޝ|u-^ڣ|5ɴWhV/.}cFTD=8{=_okY%5/WZ앂[Dg%qf~s K#_/k;jU3WZKF26/uO|{' KOMb&Eh[X~!jXGDTc`@nzP´B賓>6w6崐7+nV<`-Y-lQXQ}?#F^|vky" T0$bQI6>>B-1$m9j ɤZ=;9`um{#rhIENDB`instead-1.9.1/themes/fantasy/bg.png000644 001751 001751 00001377373 12161555570 017537 0ustar00peterpeter000000 000000 PNG  IHDR X'sRGB pHYs  tIME )66: IDATxڄYeq}sǚ =wch4h@pIbr0$R YrXO_d@Za~pH%&E&H 4]sխtZ{8VBGU3V/27WQIB 5Z4#@Q @E$GEԂFbP @23@  h0 BHF -F@@0If$༘Y A`F3%_t` $оS ~=iӏ ^ AʫYH|mBMH!T`'X4fH(6U@@^H@( 6( ^ 18 @xiBTOfJi- @REEpi 3xAPQ8|J޲l(FjzvcAkj@̰Ea; J`h D4OXӚ/_k%hNw2lڛR0D%bA N\;mH̊E5V8:΢M q\j)QFD#Q /TҘ6 PӹCgiӆgN A!I016f#'6fP fГgDy;sBb!.)($Om`>Os#\'p•RB0 X j^X Km4 3}Ǥ;+ I̅!hx {瘎'Cc7pfxٜQm\2EE0 f%!%Q8PGS j`AUS@Ԑ֟s`hfDl,trh n3:78: *FU*+icD:,B ժH4եb$P!&Н\ y>ًSӧ%-!D`IԥZ{Ҧ[#tNbg5D3U 4 A !d m MjVMͿʹ?ݝhe )׌G Z$ZTK&k3Sv;eű3n|:r5!w{KQ?-m('1yvz74l^Ҟ6͐! 2B#=HqdSmlNгQ -3C"bz{%D-I@-Ҿ % 6mpnD!dhv&c|)6{ GUkз@ Hxj); t1mDCPSs Z1S_7:<))[VP Q21h)Dt:ƈNbBj0YNof tn26 1]1fЌQ1/I5(Ln)V R]vQԮGWK_tCҹNRz;KT@&d삯b v) p) ц=ς$7.G-r0%?-Β!ΓH']dfF$Z .b0Csjp'*(RKzf!śaڶ-3^ՙ/O5|RVyhі܍̽,vLx2EHD am6K7F46Vkf ;LGU WKyYm:,IǂeO%p@0xAY$zChhC(GX k`"@GB8.($-/i) q GeQpYTxݧdh";#m{SrL(׽ML#ςm^D?g 龷c[ǂi\k]bE"dl.GGH A2` Rm $(a7\I޵${ rN͑< R~tpyoWhJ%?(:2uri(D& `]I~r.2fYxKW:2yquq¸Xs_\3P5@x0ӳ+x$ ;s-s/{2Mka1IǶ#?>;~'T pfl-ݩ<Ȗ|eіR֝! vGW $s@5V[dUa@̂Hϔp*p0/#,W@^5"+XN۪g{sX%L[38L $@ӲB R- BK}  bDC`!=b$Yaw dv46ۼZ焅01iф!a@,*G'?M50x_ 4Z\;:יPL4c\c((B|LB@b,AB|ˬty|blp48둸R Qs @F-̄΂FêDЖ `dB&E ?:`k@`<Хh^!Ƅf! 1Sh$[lK }i{aP:*^(P9ulvu(W[[ C%5b['Ub-+C)b=y^:4*mBNhõΎiYR4rT:ƅֹ*B5"OvkfjFA-AXCБh1hah4{HV2twXFW joI"^iL&9S @bwK}dS핹\ gxsP|'t`BS([QBiUy-YQ!|SGqȒ_ Kr9KǙ^k6^6ٕіV jfp!JGZ{i;n=HZxk>fx[uIB26sŽglfBOK> ;̿,mYz7'1FjpY S3@1GgԠPg Td)jm$b 4IjU]jT",RH jtۤ m-<>kg)Zgn3abF?Zæ,x.f&*Sa1FA$F 3`bȋͥ,?_ CF#!V KBK@IP C4O7VkJrdT` mUTb֨I* k3*ZЬ9B:"`j_s -m`7(g=tgN zWe= ,@1Z F՘a% A։cB=Q`jWvR۔(ż`icht:)N^ɍS-coBɱHpN aP 9{s=,uvxjiVs.$!,%L'/eؒ40˪zw=̌h%G^i!!B~;im3GڙIc.su> $p`b!hm"!;]Rb!sN I>ԓԉ[!EJ8 ZJIKLsO6$Ɩ$y6ȷѨEZ|Ȱt5,FMuiI#;1 ,ҵxwk9CAadm|΅ݏE&pOjZQrH@ I6s Z˒ڄx UmhQ4,\{gǒV.8cR&1@5ƟҳTj:5,Y^qv?ω"*ĥ#.g3T'X RzVNHetZh[l. `Z63ȡuULBޥZsպE*BfOsz%Sǫw/Z;cHebItJaG5'5wmIJ,LJGi%#@5ϖ*2p Ǒ'@XvGV"^I'L"S7*AE us(f(D*Fs$ɛc8*d\P WW< c!&K_hRgڗQ56D<W_゗FyIge%| $t  e W<TJ8vтb1; JRID8z`VNR)0si#6K.TwjxEG"4i-YoÎ\n~DjiK*yvVV:L!~/BV ) G'0g:2XI0x'Ja8r$1LM$Ėd&N<+F*7)i)$Rޡt鷠rL@jHxLґ4!y(41'Zs8t 'iTD,y'"Eň&;)NѱdE i#FWsc/r; Q{KpKof3(6`ГT3)g?ڐdsV3S:J*X,#2m8sӮSﮕK\u f >?HohngwNc?LP@i.)|g<^,:K tBimlv[rT':ӈ' @bu x%]ۅ3ö,ÀKG˕yp"e[C*{8*}-o2`uV! aN](%yL_W '/2ϛmOGXq1 \O,ZVzI^+NRHȪ,\ Y|cu/@ 6 8Px[rC9q\ fฐiP^4VU+DiK+BKWkFXs @Ӡ`ns wB cyjGälaܢH*f,ERŧVJBLJ`xj8ӐЗnSsm`'jhV4,QR Feq Rመ dI)y6WA Qu ũڋw, vC/"Y!mnTHJvKҷZ (=QihI& "~X @"^9ϰX~rr v[KCR-QY5lY[2ے͖_K3 i{>G)e$zQU--1o4Qr^C19ihA5fsHN怬@ʸ}vuoUӰ-6iyȖnv?:E2!f9c5'ti1QA{׋^qUvo@R 2g'Sm LΓuS!<4]bI4T-{<)󵥯:,&T%eb/ah]!fGTua3RlY܍O)*1{PL fI(iHkm?hܵDMTd2P.[,%QD\(uVu,>"Bm}z(ф<7TAHgN% $HG=C{f;.v8km9vV3ǾI)ٳjgo2M*ɞQN̺BL<65[i.3{3WihKLɻfI葴,niSRGc~HhASѳvvhg4M-q74"&R$TI:R")Kᴛ܏!iKs7bM-C q56Bk=4J0OaJ/lF]i=3Rx?7=1DxsJaQj#/Hq ̢U 4yԄ$-r_E.o7mW[>E4hky\Io}a08ij=ŋD'P' A#ՆuTYjI]u()"e~؞Tm_"Mx D#%cΜFε:kDhuT1B6^AM:)ט[0oE+ԑbի<6ҙ6ĵb&QQ/GUxEӤYƛD)b h$\UY (\f|GZF8 +U)Egkft1yMx| c(L$ZLEXp*&A8e)m49謤? 5R)MFd.A_{G I1)8Epqj]`t:.hFsA*JCz_bd\pZ4fjLuvZB.k׮V m#y^.uF.h$āyE'PDx'3QgyЩ!O*'MVIh[P(l4^],R1fROU"l6H kB\ jUn\+iMДR.lAyjb:i)q6+.+OO>uu ~gq\g!-۳r4 :㢩\DۡPDdϠ1&PH:zFGTQ4,h @83,̹G_{HW,TS{I!D3s0J:Oa.X Ph4ib*F!+uIsjMV'0EZ [@5MU=uY~Zz}Ou n*oeѯ p*Ɛ7DE&fjPS .6V.~|񅵧.f4@ &8٠[+A|@31^#@ Z<)rDX<̄RVR Šb4FU)i15{׿x :37k(.cTdɑb0)˂ W)} '%cbQQ5"Z¤Ө*VDҥoɃfu*/J:O}$9)In(ՠƁ8pþκAbD[).!FVp`--2?ROC3HېKH6mvl1hĬR-mq<2VnR[;$GW>JILjKy _&5J@-ՅC,"hT]vƗD.{sE4䓼cJFa&h1+` z6>JBm43'j 'tڍҨidy*hB9m{H/+kKk+%U(b#!.sC&vE'.7uUKu3*EB!Ԋ,E{+Wpe5kϠTFj& x(3`buЪMԂ`(.;vI<7Ab(:-Ji+@l"ImiNk;~ -\>DUMsh*٤P M h*E4½i"§bh\Y(3~Jבɞ iT<>w:y'\?_Y cY_P'ިzcTm_Υ!97<4P`*lbQt~I W)\v`78~5#V_-RÐ`tQ),)lj{%{&Męf}SǪ*I딫i0 "!P441jYq؟vyv'lc확OmzqAȨ*BMD3@/lT&FE   E*ר3٤tǿ?6 Ft&Ȼ􌣨0 yUBi@Vyz-=J8!suz-1Z}]%)G! 5p 秵"i"qУ A9%Ŷey^q?>h"~P$?['ݩb}T,v*Vd]oа\(t⢵!yҴ,KeO \ԋKw~4U4aj5M-A0S5B̒ @E.cZj֥%M?{饫dz7Z_dREEE, p((FQYX'2FЂѢBRC) A-Dӊ\jAԱbi o _]}tq<{oWVUj H/0CI,b,d#i隣"jpB"ɨ7n=Fih(( w_v"_'87UTXQ}Kk[vT noj֞uo;DM4V"AQiLIhD0x;>ޟ?[5FIZM #¬plhCPq-?[,rDG";FOӬ 駚SU0 B `:k/gjT]k/[wn/}>o'z`."qz  ĈéHjTb \ByUIPU:);Aqan! jEH8E$ c0K\gvDWl^ii4IQ$pɟ:| !9"c #ӄEyzсgA.1FNцZ9.+EZH^>|R=X 0Afھˑ>q:SL _~G|ٍObĹ^gwn2)V/|o[6/b_^9r^߽߸Z^g2)K!(%gy k~מ-]2 k=mOo>}:ޔ0XGa$c5պgW7Oy'{ 3R|gɪIߑ͋u/=]NkG%Ŀ6ܞOѼY- )R8;o\+ُNFٴFO'p< נ&&>&N#w_y.{quhIYc8<?l|WesaJoe۸umBQԅ8m^+2{mݧnkoOOViFVj1\YYo5//gGyͽ}'Mu׍.:b:?j_ZVO=_oM?~5f1_Y+¼zQHW-gOK~ ⹏=-'jN|a5ܞ񢼸Y- )yK/|k}6ht8>o`zը?eES^bm"+׫ُ(>-:%_RUCH~}gqK7.zs[_wrxŵGɞ:77׋wkN8}\|TOE#5G~㭽7OoXr{X &eǥ{lϏfN/ =wfwv|o߼^\ 磧x(/1>>r^*'_x~矻6zx֧_I\̎ת/ὦ|}eO>?~Pr%<:,CmR535FQ78еW7V^^=/郃peSx?w~Y͟sj؍T'X+4`ZϟG5kW[՗m~S,ƫ1/^;eu8ݏn7_8}s;s|',&O]ݹ{8_LNIKXT(f##)=fZ<1 +4u!3l0<5|$`=?&et`d)j)M)\}PYK.S?BEOL̔gܩ gJi+dn^d&ŵm g wN5UJ[nELSV%OJnґ-M'W7bdserڇ߿39o~qyg7]?{?a}Ԫo>8 Žw/ڰᝇg5vltt~h|Nw?|x޻8nz?W_[p˯^8E~Ggw[ǡy{$n߁>GGȽz:>];l=ywk-sT{`Q>xY||w;o7noۇ Aexwgo:Ż?9^' |woƧ^uOo:?nu7W/ͺ qӇG<9hPfak{o{1>z|rHޟc㽷oN&4x~0[X+N+'^Ѽᨐ?|۷ou+_X?[z5[/7VWݪmo]8=~mux{?Rֳ&4kG[aqzPNv*lUQ~_϶&ipGRȁs|Ist0?>;.\ؿyg{7+/b7^]{;? _zvN޹7[8{d۹{p<`98~wrk߿G޺z{͍|x3:\ާNQV%.P 8JZ/7 @¥fn۸Mh$S~O?FZgfC◧eYfM.HhTBU y$!0AE领|'!98K}8Dٙ^_[hu!( }mIe j{&~>U?ڼztb%*l"&AxzhL)NS]XX$8& 9 |pÇCPPQ7]P[cp$TҋӰC$㚜:YX䥬*J}jpQvkRagڀ5{u @ݱe@t%M*sEG=C-+7_ _fwlK{@ʺʃ(߷i ,SqYeǀ祭XD!"i,eUNɱ M1xZ#fQȰkXy{;G %JdQ`eJi&}"4c\/EX44& c kHBq)W:{j4)<ڥWl ̢4FI4segL;vⲢHٗ4:| oj?xӢѩ`Ehwv Iy"d0PZZ7UawXG,n,8;ej*?,3KuW/.vuOHPh;k=/!z"-+p&XnOAPCEfqn,]{<ֈHEFE\cNhp/âC1XĭcQjr,VP}P\WV.X$.2PH,.Lc>>dz}9`Ď)}UQޓ}5^ViY8rOSw-t;eN\"#WB`. Cp@XRiêxH P"kSF|RY#(y'UE߻s}yqH_D >:Y2TTw=Nj,%Uv*H1}ykMiMCa~ę- މ\zK)FPlCqDA|50!^]QW-/Ò0P8XhWHV,3ntYuQ!)ĉ~_FbٙS_ݯtqFk݂̏t*dHr8]6`cDu|{ʗ!((tȎ}m:Md[ `qM,F%cc-#n*òTBZdMs4(dH֬PQ=! 3>>bBȀ9?s؅ސN&f{D7+&.?/bD{ZOdXtJ_eue#Č="dϯ[0j+l ^wx֌|$ZSMj XB[*tQ=",ZQ29Ew{Q2ۜg2RW Hk6j)?,`: JUw?8YXs}{Wo&yNAMЀL @R5dX OGI\#6;D6S:,+$ dGOk` oQ2@"Za` (J b1`tD 6LXWGk2{< h>mTJDea-,(: aإEԁ skRͲqgF1/[W"wiKTYTtFuh?qUz,BfOYA_ȑ)2L]YƝ7j0>]v<fMJ ΩL15{J[ Y^xx$62WfiA'ONC-n?2ͳ`4DHSu_ N9Խ./29]\{xL93x3f '0R2מ K-+ϯFBׯv*R_&8&Ʋ‹6d]|⡡RmT>>Ƽ$? YVrψlNwuSugZܒrkzʊ<V6gZ Di &HuSC.rɨo-}7mZ}'woCÃe +GPcs SQiTdBTYe4%ҽG-{K \;wF~[Nd7kZ!{XpX;6ЕUuP s]T1q/\y% CIJ4.{cO:9518$SIAdYID ŵHXxӣlU*Ug'Jc|[ԕގ;xxVkMWjL"!ʹŅ}@@NĚձhgׯãe ]#Ӿζs:'Ƨ%LSD;509]VWkWk<6{ά kYO<,8mNz%=cBýq0I4(%"wL?vndaIk Ϝ@}oLr m?WVa#X(eUV.HD&EA'<>ӮfgOEAknKl{߼ir[ŕEeY1oX#':GWfL.N#=ywxͪ<.- Gp!/wX\xzF -S *rLk(i?;9HVyjCɯ^rpŗ]rK{@x*;qK22RG%}ohs @HթM"\X!qM ʹqg{|-)ߵ}<, @I5cQ@ c4BH)8D.D:)%(&LaPPIӄ^"ArT4Jbߍog2懒s4QwG$0ҎP4RFzӤ<0I./& yo;݂`38250bdz4\d'F2*c3'4roC3_F+{ȝ̻q55\Y`-;>!itAѹoţ{vw;1 ښ_ܰ>|ﺢT]tdQvđ*aDUǽхY}m-5{uT_{Iȏ~x)2Bf7f<hѸ{o`mM#oڿ} W/|^qVHTSsGF\^6<|银>DspߒXֵKLJ=_Q5uEw|E[Զ#`cJ3[1 EIIB{I!S:7:|{1jjI˯oz/7/~e(\xP8F^yفȪ!oxE)GO[:}.ÕV].띯ش~'2Rdxr\a8 &PANX'!.0:PSE# BYV,Ӓi7qU%'O FlOwTf>ջ>ػUώ[S v-]o&MN"؄-:\޻W`KZ{OP5%#[Y84_X|cǮc~ŐcE*Ѱ Q08Md cjѮ65,oJ}oz/W-;A4PhS9',2|:-݇r\oڴ*ۇy?;rbt맭qսq-PB\zmZW/.sy=IWV?qɅx3핪3YeM:8;.{Nu, H13N}Ť>8N^?⦷W?ǗS_xP4ޡQoxzgz6^-隅6VnݺMO\wTI:vmƃ-G['YbJ06s(݌ 0a|+N3cBy49 fJSɎm_7 v2g7ٽwUQ{h^wձ@ŋvӪ&}U zR5QP]˻[ jGђ!odيEԣg:DFyR2%vC}7cӆO\t'1}hw>q6ň"$a2&02A(UDve`s>xd{%Ƚʖ=vcsOpn{5K_ȰXQ6ZX?4D}4ޱ|Au>_Wn=KQFj9=tgaI'.`AN 9` IYgz} RsPDL^CT&E 4y.`阎8`x0m Øg 5!D21\v, 2XՍ4!I`d0ΝuL00L H Ci0;oc4knCIu<׌ȌY437ڞY4˜ x&K$8@Y)pu (d c@uBǮ1c,-=c܄R' 鼎wO.w|y Zw޴=rxӲƒyԒ*3բSIeՙ,h =άbe?1 =;YzzV6lT͹htzUf5|k[CoZv-ti٢{7T:-q".XXsLk^coHG~j3~= ؘ%h$7sPBI&}Җj7*yxQK)?t1=[ўe|8Sn~vMCo~VX8v|*H 9d5EB)t GB6,F*,iS1(E#FRR%_V{W޲lhKF5ƆjK{yy=%"SemuSs[~ml`D̼z1))ց@ 99+if 8k8EVщ/N":M1U`搮 PD, Peb0Ӫ49zpvm=OHY&UJ)Ygt"#/NNKaXY`YFuDŽK(Et+ehf9DLbhDV-+^v֛״ܶ-rIJʲZZLI*TQUu=e9@_fn-t-qpt0ZM[&l~¢]t  ٙI 2<4zΧ @Zd0ovOC =_ee_qcUb4Gn)C,mȿrŪxϨĖt^,Cޜf.ӡ 0HdQL1ga`0$jb (\+C(ҒT6͌N*EpYY+Tb{ZtR[s285מ6}ҎMKå|TCәbQ\[g6=).{zclwpZ!4Nd 35Χ=@`?0| CHKH 볙):~[ZՉ/S,.oj:\rfLuY?3p5]ݗ?|bϪ" DD N ƉBAA֩Fq,`] Le S. b*ɄE"uXw^y{盦F=ּb Sss<ẺSongt/[R^i}ӕO}}_z6^PuT!rLD'@US óq::XL)Ȫ23AYwN=!gt塋V5#]jm=G)%8t1ydf10T* ,":h Bc*UE4H`:Uըsp 2YX,kT#D)(Ą"##Ui@L8/^vlXyS=-;;ڟ}dx;w}rßz/ݦ5e/r6/3 xk "A,FCEV?0aͤ!u( %,< (:3 9畇<)xi}XN/_yMΣܻWN޹_|咆[[_9)3;ٌoa(P I8tY 8~T H.F0ޣS3gnj)=2̄#a<ڦm{UDh@e]Z0fa0.y=řnG"cK.ix?qrզ/}O/dg?&b׈J1^X. b:%niґL]L()ekO7gFXX IcGk׮8+3/q X$0(Մ3dP>1I`Lje Մc$P SM( rL )T`QƲ,2N. ibY#*5DF 8oTyh22GÀ(YEe=!rN)̫)9>1sjtքtF7iAb.aO%)DiN͍L-IE!:@ѨߺX1 F:%F8& s4h% F0WF{FȌPhuo+e{qf#y_eWko&ikI߽vNw=WzIb2mݷ~xjm^]V6w.?SνRI"QLOa$g`iWo*9Be%nWSqѳ7/~󳓧ᬐt[ΝVE|-k~C>93-TK:Tp|:3N t$Y!l̴)KZ!PC* _oQR #1xo!o.8ӑvɥp&#C EƔB1l[wa s UU%NH JmyE܎ޥ[?;t_uEӢwv!u+}^)'+y.RA Ê?D1N\gr-VGXx'2oUz4<61|~;,0%W]U7g^??w8:2 L;6ﲥ[Fyյ0 $|Q=ɰ *ʹY?8%S8lt1|K~1RL\wnYm:,Ω~_Ꝉ_ZmymMo5)H? }Bɿohϴ U*;h:Z-o|xpp8?6_}kDѢj)q?uisg$BiηW&yCdGl:vTa|vFz~-eyn#\ [Szyώ)5 |:2dzNاU2KvKmŃό4MˀeNB))aPD)"ҁj%& 9i5j"YdeaP t0YT@BT5oJUN1F xl f 5"Jk::M࢓^@(Q!s?%ttCӆ(bѬ1tؗ^hAy8͖$Zd'(Ii-0 dk@’B3q<${zY(ҹskNX%H@ X$f/|~o򴡴5b&GJaNƷMYi H$~,ȭ~/!”/*nXEVvjXMo]5<YVi7/5R~+P:OgSޗo>}\kvd_׆ _vP&΂+F6&þޑMx!=4UvCY@:<[M dHZ$ 1P2> =%eE{(ܝ Cyٕ/EA\j,ZT>wG#cY3:*-t5 _SWfm{M$it5j۶#3{?8\pdžU7 oۘ*_YPwF&FQ.Bٿp9.7T"'eb㞞!y;漪q< FH0hu8<Đ\柟bق}|IqcyV@,{E^8iū,zzAt>=>7Q26ޞ*%BNϝ0$NMqoVf%4`L ?3QB *0J0HBH˜ ГpMTXƹ /2N&~_zNiDP 7HH:d4}<'S3f0E'*MxD]U^pܛq|wo_=p{G:rЧgW:"yϺVg? oy֝v qnylT,.G"i2 D@@(0RtjTQL"`M5N-Be:g֣,)7|+oo)U* 4|vx}m* ]& qǀ 5Xi:0ᠪBu H W[BkmZ,j.\w Zz Y%e-W]\=Pk"M T@[Ǯ[W-R\SQzFN!U*`PMQ8bxDr6oj<4vkyvmuOnڵHWot<ԟ|h_>Igd囚NOc,{gƒu#oy9'3?:8r+ E$E]AfK:(JblƠh`(FۖoZWy۽kB=~W7/zJ / E|Nwu#D"[ygآb~>1-6O(|{R bMϥXN8 !!&F6RJCUTʱ T&hAHd$BwccIUkk>uva]O^܋{;B f,qld'dI0DDM0q6T 1"* E1e@Ak߿uM=o3H+yH_;~S4|7 q EjzFd&/mY|5cjMܻ*{P:WmU铽CyY+No {ѣ}3򼚐|{<dq&W$RTjq@{&݅f)8S,%KrgF? ImJrkW~Y[G82QO&{CO^gm(8W6ȣ9vq r,CtJ f"Jc,rfWwnBuB:!*Ld$~Rj@F i4#q,(X*DTR`Z@Y9EH#,$Ό" Y& MDWja4c1r`F<IqR#vqvT_k]Ug>=!I'ݙGBBH!"Wg(^•WETD/ B22=Cz>SUt@{o~T^{?g#n1@i0jOMaէ DR] xy{T? ε׃|C5Y٧\,@AF0"ԾR#"ASSnyX^7 "D<P{3oO_9{ќ(FU7oh~AiXʚ<מ;f`a\mK83j ?{K,[)}`w@xCç[Lw^VU%;χM-|3y/4Lgr/Q]Z̾඘& C rg !#D`4 &m Lћ !._=Ͻsiۑ-5=tߍom}v .EӪ|5ƌo޹%K+K"Y˪$o;l (]"W1ꌤɆ2[I{tIۋ@pDe wA׉.^cɬ;]i_kCݵ3(8>+}}"c]I%ja\=6whzEDQZTbw,({ZCFPQ eXViGs(xU唣aYϱ5mMӬwtܭo׮lxA;Z8ԛ KY}PjXZG󫣣Y8l,^1o[6fi.2Ӳ{B[62ԟr\EB7CC."<ݫm=3+b/t C+~S3}oٔZ\^QUR4+.+qq`9_w_}vs^U^Q[^o[{<;_ Y[|ȉ] Bi96AY)KC\ѷD[SF ^;!oq-lzYWn=;^vosϟk,??{p[{;pٲr֜F%܉dg{ w4V?jkӼ}ˡփ9fW=ӯ]ӓ~&|`e?~k$lKFk.:rdE?&{y{Asp.yk G_?0RPa$; }woо= ާ3} ?r7>|knMͩ+yA!][?~hTIτ =Wc"O\r ֨RvU3̘u {j9=+5eN,RN):s)vҋ%cYXMLg@Vj B`ĨBH)}3oh|0NqP`(LȤGE 5.!zɨ5qD/SU!+|!)H bшܯROaH#&m .Ov8S]%MKB6(Oj1kР`MZl SIru>Հ4r揖<9wdˋ2>ɵ;PZ1G֔~4^;N*R ӮJ:'?RY+^zPdg?>lAuHbԌxٱye?8|B*DK B hugK+MHF" Pp%ٮvO(2D ) 'l=񬞴!1@0'ɑjx kV̮yqۑtI鎎O}bCڥh Zlqt4o} !KѲH< B%',-jiݑDd[i2@H*j)mk[J@G"ӷG0 4r\35o DXC}iѕ%P<(&#z{^`(#+PYQPB<ځ5Bq)Z;((S`A0'i8mEHI @/ D?ڍ"iYWVW>{~YRCmi$+Ln_;u3_Zr+',bkhY1cNUI]Eٳ׊\+_F#2[҈sHI:/*)l*4ؚsd֊uo:9}~]b"}Wj#3R};9opҎO+ @Ȅn\ϩF/_RlvmdK~egΨ(6qfԔF.ygO gL@Ӭ% }3vTd+ϭ3a3hNy'J{~L>;B'{9HVΟ"!&R wn;'#+NS/~ݭgַͪz'7<,8'+!2G1j!dpnfJbaVYc\SxkDY*EVU!#BC dYAE Vb9'cDҦd&2~h bdwY|!(MJÄh 4O0rJ"LpǙsЫx> _s` J h MΔ&Ɓs@;` QYp.zʋ<s&8B2S|,""rθPujd'!M}o玾UǜKgpJ'l512e0/8xsyZT\U+0]Mew¹chPOB²pfb`hvY;O{iʦy&gA[:&l,3lv!b֝draNѤC.?-tD|C49+e0.AҥnO=)DFr*#O;C-yhAmr- -VvbXH8QQIiӃjϽyu]\d+" 2@O$0a%2&j}xL:9.3D*2ܾ 3?>]YPҙ4C.k涜BӚj ]Qm4'uD & -i*aX֟q˱NO:jGkS!$}p?OEQZ@Ĥ{rBXs} ߸-}1V:6Q]SEE%fe]^s+ϝvޜU\VPY]1.i~2{=9)qHB߅Ur)0_~,N]J(]Rcv"l>Y[jY%w^k,pqQ$Z<7L-[[~-8?lӖ= 5Ϯ ꬨ "}yJb9˚V.h,(+ @EUU{yQJc}[GFe?BQZ1y,@ꇷ8>77oi!on(P,5Q2 ;٨MmqN]Զo;b<9E鑱BC~'w jgУRs YQ8ьvi&r޵ Ba4׀P\%`I$0{ΤN^`^1<"bAP,nY<6RVSH_]ԾdFVXU.m~6a“'zi潰kp] +ʖe!3yFK.QA IG)2QXZ,D^h9:=g.8 q+Шc,]R;kJ}O}x8(jܧ_><:IZ~ 3ݯ6 2v*3[d4*WQiXH 9b֥hR[Bb89ՓplE"ߞ,)h'oX:q:]3UTmNǥPZ}#i٣̫ %sM &cUH= 3?}''&e LWG,2@AvIJrC)-'ho}vїV=s(,5i6Cok Dz;}t hn?Rm{E%$i[8Z1#PFS!O<%U1]&C[k;ZX?勿q_ 森W=134ѢH$xm{o^)u1S<Ŵ_Ce\?xQJ?#dbaՇ9pt$K si]+Ԁޞ;7o(򢥷^{tDI;Kg5=uUڒ@wm!/|䢞!gy v(=gFS CS et_xAڕK>U?Ö28<э9.?v$KwUӝjC 8z7 VpMQV٣#U{MRQd]6yF;>P0 G\R."a zF%p*)Wێ.dMؐQ `ID 늍x<ʭ[XF9y^k*yCh 9N@qP)MQ r@)i@ɥԉR`#cE;׫O8H1Ĭy 5!c2赓8 Pr\ !CQ0ȴO\6i>&5G`(bތ+C]e(+aւ(XFC͒߾cgͳz]Yss5Gr@yΓ"(#_s"]<ݙvgyɜ97\0;M;>qU-qϴDT̤㩸eO-_t "jq5CY xVe%Y="ȺJTr\QJЂS6u%qZ]8zΞiܙ]g\Cq]mu]?r /-djݚӦ_>}kpJә1;W*B `,\]ETrYUȹZuV˰=v@0e]ڒ(^9+V Z:Z-B\CkDzٗwu/?1ܺuGOv7kk޾:1[.Z4qGg ZiP Y ՠ4y$h0qҦ3c;NΜ5?|x] n_Og3LeAWMR-]PbVDoDKIyLw ovyg#Bj!L30>4|w•("ڒr C,`P'smKYua^D@@~e<"BPD,p$ (r8A\͑92RkEPp&I;~J$,'<_Rk"I^λ̡2|={$&y@72 9LJM2@My)9^zwZ`>|/'<Xc L&JIҤ])g;X,,H|bͬʈ836z_1<⒢SCdp$>DL,A2<=K$laK{/G-h#F2mxzKDgS U[.9qCE0XPѳ`GIJI 40Mdװ~*0lՏS㗯7iJOj,6**pDHZ-j-])scUYB!c(%uNFxf4ao9pv,oܶNC69;~G_:qTg7lpT#dž2lO[7=n}5~d`xg03Y}!0p(Mݳ!@IRD, 8r#@VrFg^? z@+. inU,fpVjӛ6 hn5xdu3W7,0{N m}lA] MMdR{!F MApLdar@ԚɮC~/wǑ nȁv^nH*7p鼦Ou-gNJ;uǏv>Mz/U&G@ 7B`k(aYm謚}݌AduEE #UUAjpBk%T@([ɌK,* diHi!htUFy$VXBWʀJLC`*)8CSV;o9TY1otH \P^v&"h ,^ w9xAHjɯMvڛ!z; iT֠Wpݐ)C`+z\L+ 9F~ ƀ4hȟG HG!MZk {uX+CH.ycH@+^wƌ!s33J*+h^RX̪`.g {Kys3/)-n=ʂ@siHJy7)>C#ϏIJ tLΟS\TOّ0K'fWBu'_ڷ.>gq5UE9u  8uB`XCW!X@GR<8i@@s1b2<5xvv̡SMNGʧ-#s(#Cv8bX|Pʪk|yšEd@$5L:ږT2jWRdKJ9h0L(ID@W^r G@04Ĵy_778yt}EUʽr`pżprGCVDWAaKtͨ ^5﫹'oe]4B2nmݛtSʸCh▘tKPCxV&v)䓶Fp$WMږ#J JSb&gYW+ԌzC匡hkgjncaHYJ8ҞGU,7<3|PvBl7QI:qlxv:*9纉%o0 aptKipIi : EIM#.ݱah6s3ՕkǓ;LۉO9nU eന9* Qh0jJRPY`fdVDFN:1d<#b"=AP020dG ^CC^/AM̈Y"娠`HFr.ygRD)&gy&B$O1(R<' O:d!rzm,M9DR2 Y[F X(9GQ j<`HĽ&'޶I#7N0RHSNFSypz"_t>3|O<9y3+J$x(\kA+d`qԀwϝuDIiqWۉ G4W 2'U*wݴ䒕[t5+K#M3+ Fz{p=9Vk?gGsϣXzX@OHANd~U~6GuuKgkͫV-3pl%l6]93vU׭82߰3 BAR)0dA$P)PD[nqf2ISB $Ld|>KGLmzՎ^hDž C-T.S)^4xGڿaIG{<袠(GXV&*Hk mEAE,. "WQ". `ɑ32(ϴ&oVq`{f]$>tEj_-+4Gǧ7VVƇzp~yzܙnظA+ƅOvd^Ajp49yY)Wk \Xn})9I<$8)<"r.DЛa9Zco'W@0eW\ԙ\tW=s媆MG._+gH,-)UCS9%q{$KA q &29+ XN{X"\XJ%,`ô+'ov]{e8_ 8}~xKJ"֡oSk/H[6H^qم}X3\._^{ՅsS:dr)pϔes=|ȓOCC/ݶk,R-//Gl '5k^}(S\:~_cemm'7,&gԂS䄾Q`i * fجwF4oIpnfz*;$ 8 [OJ!(5r*Ak ̀Y 8R94ɉ8T㹜FQL(M9h8g^ěsȹڳF!HIh %.i"BƑ  7!:@iwD<2j:mp_^Yy>a s q {G&<Tf^F#Gʫ)(G楐zH #b &Dsҋ{E6%W3-d|3cmgF۰tٌ k.ϺT8A0^ TʻR{Y} yn|/IL/cy{˕W,yV.n[xrd<8<GtD߀R'^(GK@bEALg]p|?ӫcu˼闏q*UQc:}oM]P[S_pQe?ᄝBId BH#H Hjp$LL$0fRdX)$G I^4 37]x֯e _}T8?xˊ;~į9 ԟY'HĐ3xVDZ] p2؊&0t Y2J *oE[V #w:n;xvzm3w,yeu3?y®>+G^;Ѩ|/.W/3jӷϥ݈㎞J E .v<0d B񯞟 ` it8a F8rM޿a-_zmH de]va?S6雾$C@!id>YF 4P|'aD= }Qcojm/W=ӗK͂~y`!thS_e*7~D_kBXSA_O?|üuKYs[GK˙m֡LȵIWn\_,CzO8M73&Wj*5X!bF3JtI(MjHcUpniZMqb– ZT`Z 8:!C  Lɜ-fK\*pH\YG C)(*JB&2%e\0zл+tFű (Lm0dA0w:YB1D3d(KD!aH(.fcʡnKCwrWv{#Bj=q6)1YL @00(?S~fێґ'SVO =藚M3K;rzچϗv51^=n0'22B@vTX5*c|2KYE~qD4@i!f G=Ιo|jٮG̨Ifҍ;O>y:w$Gwx"aͣ-os7\*JB$$@L6);qtlۉW;N'Nb'^niOq@BH*I%Tws[0n;MjjsEQf wB.WGN2&(#I#DSHE@ a) #A$LçN^ѯ?7{Upt1Kji[!B%*9j3j\05 w[s_p$8ĦYGAg֗6~z>#7hXw/cops{ſ_?;Q%٬F%eaP+`yK+4N)$V!IoZ}r~;{~\v|TU!  CU٣㰖 WGzK9|Ƚë~m'ί n˿ѯ?~mcWͯ}6&Az\&*(8 "v3FKzp4C DϘ4%^LFU|c/\٧~zwǏhO?ymw/?kRd(;D|T0gJ-O;< :q#62*Lr!5X`3L06?F}S7?/-. w٭70(LJ?r#'x?ٟZ}[n[5d%v#ɃO?sGc7;^_ۯxc/?xx<^{_S_W?]vEr8IHĴxOx"8V=Ҁ"B!c(ɧy~?׏=s3}7,{wu?3C_3ctDq*3h^}SLs-YC+K+7)>QW[^>oyzJ Pr.#׆@IpȠ+xyVL =!FW 6+!X0®Rxb"h !q;kU7wLJ LUR% 4$EILJ6DASI"!2#4RMb*iljlxyƈb*I&MBSC|hZŦ@S\oFlk} *[s6oWQQ'ScGrѷz۪ g3#\{?q}ᇿvfBt2***Zp*$j>'DW;ʛwx单7/ ]w/_~؎E`6@$&'l ꤈6MbCo+vζ\0iX-+`|mrU -qamy3˯y^wӯ,^?ΰL\Öp$6Ne> TZ-48(!l(谖25&z2#Hj/6VQpTF I ]wn ~C=/kgvL*J7]kUbl. W+K[12k)w\?pRfBF-Op+-sE(uRwaU7/Ko}K~>2l'`9 kSU"E m ke39rhcUPج#L0%K'c;9k8_k^u.+W_@'2°OKs6hc݌ %ݖͰ^ 8( ZM2' rbh&LmuIM\A?x݇;͕^}{?rxu2~ ߌP+5j AH[x:D,{Zmٳ 0ۇO>¥ϝ7T#"A+Nn`ox0'U=Y`v܉(d L`xo<3skǗo7'w-GPdr7kk}pmIEFU2(X@T-|5s{?޻sW?/=#tu7ō4Ry!d{~T8-mqBk 3RYoVMPCQBT(>Wv TXKqoo{lӠ^ ** !Z ADicUL3hCaU&w5YC46:@\XQS^B0Z :Bƙh ;gfUII'`SR_7dtEB6*h)hטEͳf5)x wqW/)ݝqBg0қ/VҸ-;HL@uR&1Y3A2 ͅuV=d7#?xa[b6&m鑼4U婛&QßR>DV4aZ2$M4~C0ZEd&іg&}啱فYtc=s+F%Q\W&hifTeU(@Bh FvK+c Ĭ㓬 Z4&KMC\͗ܲOFF\>lȣ'=S;#B{ĵNP'@fQ˛ajHZUs#* +_KTI@%IBA@5 ̶\xZVO'uS _U @HAR=kT,rlydYQl{qWG(bR( !)籕z&ύ±B9U(sA班GZ2mO{;LD( k-U*Ͱ<`YK BԲ2Sȶ/GHqPAiVrf׸~2fbͬ-={nN~FHd}Ҧ  "dSg#&㰖MXnZmzLX$T*#V땜?v?iY1>se26IoI4r\*e60U2$HT4eMӔiG},iuLt;\Ί(h]8!ԚPVbV#ukS:NJM0d q(PԂIL`&⦽[ 5 W>ma֛VVK(27vUB\E&x2&Q(D%K7?_جيC(|sO"xnTE 3NU,D&=C%sT*J+W1{-W?U$Q(#0C$-1D UTKܙż_Б(1!lFqZo_mB$':SVJ-eaϱSoM#=5rn//޵6q7/dO/Ea+c HN &kz)`P:I4]B?ɅŴ0c3dP&1JKqSHZ/e*QAT6izG Pw339~Σ$+`Y Ѕ*mmɀ}?DDTT7K?q[\6Z׎W򓧞;LVN/Zbd"00Ɩa$3WJez&{q٥Oo?s;^ *Pa\F i3FPnA4:5cL"HA=^aJIQ%LhZYiHJ<:à3BW1k+;zJ1$aIL mGP2`a) 28B& BRa(*50;$I)&11mJʈTxTq%lVeP1EmDj n @B@DNAMM#1( `J  ќr @L(" I1Y$N55A >YE3=vo{/W(%Ux YE-F@Še(iPuoVm*"Q@9~p8R'qԠlSB?on |žf &FIxT5EzK n(i A *b1ـm]yz (ű}UTlJ!UQ!-(h)ZF #%e7,$Uj{=Fii6fVWnGU J'䦪/j"h9؄ϜnuۛQQZW>uʢh`f ʄsmwr9-76y~fٖI\7̸ 6j-bI𬚁WDY1k/ ${ty)"}/{]o&#;3$Q BPd84rwkOϴ9[1L TCR&U AQHP0Ĵ<Ŏ{KfZVx3n1={vڈ*ܹGI"Օ1=oe&:b7{!j5 u*IvP5PG\G(Ig&BO>ze{7=NIw‡z!e[YVfRU9v$$IaT'G]AQUjEl Ke۶mMT}DgK!q>s3(0Bg\0j̈bibwv\?g&ZhŖS2jгY;388-8D Tζᧈ ZLx*!ї'ךyY7KI~#-@XDjBfCqRF%ϺKkޣ?F[z]_3ic35O63 sYjRC7ާ߷= }Xm]?09FA6RyZ~Aeg(n&!O_eܬmV%*6vepy@08RVL45)(\ k;vrH ti3S'NF0}:C;g:UPD;>1c8FAίW#'0`=Ac| ^T2V hyάM ")*uJbT&mb%`63G12%&JDRWń )jHIC39r)"";nn"%SkY)bƞe}={>x/tjTj1KbS(`iCUu|_t۶Wږka:Ӥ))IChHv\Dc   Nڽo_FHggXlN\8"2 "lT)(hˑ !Lw{L_߰Ƨn>ڹ`V|][.. sEE8zu^2R#X}3LkLs]Vq.~ZF֢hT՘GDs8 :ҸQ95 (8aᨗb?IC4SR&v* w$-b3IsTxjej 7SQ9*C3bOU@mF@4kl&DC =$Q_bT&ӷ$IOh`AnZ M2XĔ1VSɖỊ̮G>>m?yegn޽S~kG.&'րEsI0wj1nTb*:$UJ#&KdV P 0BᰖR@2GmUI6*i9z ܮ_skO.mDE) b$;{&QXGX'٬KFʠZo?}~PdTBI:iZ9϶8֡zp9oz=vng'N +XFֲ: pϞ;R 4:n#j7DsFUhgT%(y}'b$eHdZ9:j=!>sbi7Eoz_xs+D5Iz CRl1Pxbq\T;߽bZQCf\ƍRgN];#&ɼPFU==VQ}3~ߌGBOJDpeaxoc׾O_^F%"ꈒ8m:|=0MS]5(aMv4!\^:Ťm &S0i?!$pYwwU{>u#6Gϝ(",QiHN"l9SB2A#!j0S`Hq#2#7&i(Ï5[Wo߳ *VF0ʴ^8T2Wu^,GWGA6jELAA瘪^gle9J&t538OkGNYo󕯹{g9^Z$ ^7QK-EjlQIYs;}ow 7|K}&|u $2҄1w5mDSLj8P{Q2 :ocȋ+{j,C,3aa2a-uRGu :R&w{K}}\a ]?г#_8~`Ջ?ymw;}un\r$/NA%GRZRR'p/ٹ[(/~UQ Oz}R##"apX 4a 3-r3LhYhv29 ߗ.D- @vf ]xyl)ZVo?-&`/';P1WZsqH$Bi$IQBUu )HTX,|%<_(2{QŦ6@EbfN`ZF1#"H̹s">M^uL躚_K/_;_^{ח]={g±r\1HR*6u>[ثuRsW&;.' g]J :$-Dv1izqQ}iffAsS$c2]'gãKEaf-eTOQcEu: ,hwPGH2b bǍX$#f$HA?qJԦitS:%]JXn015B1ɫJ E Lܶ(_2Dab\cƚ*ʷXeZ44!L'l=V1M 泔7z}"OὶK؋)e_<" J\ۥo=WK1<3a;#UƤ[&2$s8!b;?/s˭ON] ~wQ7ɑgO)+x= Kog9 KCZ?|n.ܺ#;٫5^HQ£'Z+ ZR"xMeL ϮTZf%K8Ӣ=s\9,ZynǕdWFa$C,F=Ri<椞 dRՈp\᪌u*IA{mD(cOd'S7Vn">sh&>'D,D*QԎ,@g$u 7 Q E@1#(DR᜙uM(½`vf3/xך|q({7{ѣW,=xw.Kкe%t›_~}<6PA SHZETՍaM mfGh٤r('lَ~F{~{{n*i4b464pX6e>RT$ezdܩQc Z%+e(&AhLgA4&G@2+ƩQAJAuuTQ|hsW;sx|a?! j 0AB* ZKorg62AL[%:+PFlmTqX *Y'P㠹ٖ9Suzn'yHD"c;d0ׂ) 76 LiT  ^l;(Dq3UA(Z'$7*:LX㐈IQ=Q6*Q㋶b۵=rFQ=.(HHY8[E[Z6ViX(A6dM3ǫ8 RQkFFt)Z"@BH6&4*ѭA V EH 1<]Z=sN[ea-uT&(\ ej#!QU3f G3u[J:(S-!41W5ҋf}uujP(&4i!x:VQzFFQs&A-yҴDh;㵱BL3#RbqҠٟ [慭[H.пT7MWFtAZ@S%S02N6S#-At ;+>v^R𦷽m#G.t_T~ExJ1tfδSWZr0%$iSY(neqȔjce“$Ęy=JZǹcJBvF ݞnA)reV 9!&hy`=V!jJҤ/hz 31#LT""RC9"Oqv"o΅n&!ψ c%, &"2\TE1%%mֺrCQCJLHcژYwIs&B`!=l h~fWO.?~-7Ǟ?;>񬂾?}oxB䇿Jh< ?w}c[MFv$))ZEv %$9B&Ic3ټoQ7=u<k8kA%5]#&>0vɯ&Å5@lR8Rڞr8ۢN*٬$$0ݺ*d2&#) )XQK UR;{۶剕Z0a0c'bc5OAjH;(\قH"S(AWqy|"@'op(&QG$6eIBՕʸ bpZĤ騹`jVg<:B;%刉jQT$ƲV (Q+tA1DDqaPB)@30Av͸4K-ZfVFɘKaN<Ut ݭl_sk!&ߞȌc' @Y(*LJKdȟZp@f4[޾W@DoɞyԘ (Eu?)Q9I[{.r4B6g)!fcm2/-wV6v֫4e,BmSa4*Z,8tL"j?F$)̵wvfQd"v%g㹟;pDDąhqdBus7ƒ1&:5=O``%A[<-BI\ŖOM4[!~ W8g &ŒksB Sބ3L2-ك*/yJY[1-ށńjJěpW`&`{Q6zgԧ:B+Bug[øNUl:IYK|ǑG/E-DU&<=1>DUDl [[*SJ"HHLlBz i v"JH̄IiO+n߳Jޮ>cxϡO֙-3[=/ Y}߾qșBVeD+-4/̞&h^{U0BܗZb01bl0^9uD/g&sc(-$w&ѫszB-3膀andza%5n>}&DƆi6g٪f5IOL#fŗŨpD$EVꢠS z-[q6Ds"TNb5l1cWۮ9^ke fmFZL/Eu)(tk*Ej.!?~5{ )60H55-bƉȪJC|d( L.Ov6C}~Hcuu]iŪˑi\F"lfE?q_^1>e drs`{6g5-Wwڇ~=}eߺsǟ}GfZ%S u4;3.'/reϵ},Nj"H$Wd{7akJ1ТgVg"3: Xvj M#` 7jUeP5Gb MB 7|?w#UUy}.km4zo,u{lv^1TQQSPD:` 3f!۟  X 4CTT!lu4^p0Y&A0jjDHU 9 ȁV7qFt ߿Li}GeVw)lF x ̵+>A4RqB*GjuS!UBʦP1`>kV;dm.yB+B_L7U;[S>lWI r-*3m6ai!r9.KbVCHnw? 1ɗGЋG! @֊%9p{Df YEıj0+S!2Tv31-iݥ<]kۛI}6f"hkKSuUJ:5ϦT~ ]$~A٬QzP\ J<Ą6KE[уVYmj֫;ub]Vj^nռϬ@>i0,NjE4^}^FM`DJH^Wc3Ӏ)$}@'Vf9M*:51b "8OK'ZGZEjU-Ih!\`fpd xY/f~k{ulՇ ´6Xj8 vrS ("ֱYW볺 jFuya/U)1SRprH83yv.e_xcVn:)ұcOD=0X)/D< ƱG6KYדనjcR1mĈ\A臧V@5tkʥB*<)#V ?ZH]2G :EA+ڲD{XL*֙xav"Yfܬ\pV7k )E\;=㓰HTMes͑Z&d>񺧉T1vϾR2@%1SYKEWVM\ԊsxXh"MF Î8l0 ̄ YF  LAa DTzū>ȳ EԣI$"#hRn$*cbl|RGܨ\_=bG|2zN\Ty/><ެc w ?sm׾ka_\?ǖ᳋pb,oˋ`o?@j>m1dBj& Qh Ƿҕˬ ~+mFW3CyhlDj>7OdYMMMn*Z&& q٤!B\4&w6(j6A͸5 'a }uYvY}n lGSf4ouga:0t gCdEWWZqv%`YʃoaBfYT GAV@:H (0D04Ct2R/@ɍ%:GZD׆!qF@`1׋@2Jue+.f zKn⼙=Nox'ueӷCf#K|kaW8Cv&%F*DXpzX:喥P3vIRv BZ- ܣcF"4|#A`,>y3XJ]^LjV~Hb}{E*RQz5uTc,UY_2Hu@/R3~Rd** BؙΏ24"I}R1 5^[Svh`<7C ./rV3eÒfpms![-FCH'7톟=$jxd4I\'kEC,€ԢX@2!7Z$ fI\]a1bc q3iʁb~H>RXdٝ0@VͪAzzk?[7]66X5ŁB|m 8.* ,2)I^ 'EHRZu1kbop30 dYE.?[h*X+]60wVH=FS貉a{a  S<MdGbf`ۢKK{ZHJt,<CI qBClA t5d{PR8PG\6C!Ō 3X{]먚cP:8/AWqpQfwẅpu TkI\Y`=o `A6UVj+A/eY-gs(D$|B543ߡB '֌^}a]֬o??K=tf~{;kw3x߇ws[^]_| g*`55W1v(e E%ѓ! -0f<@1v2p$$%r,Wr-^-f&ge$HԒoZ 44jR& BP1Gb@m@Зj ,M#,zseX@bh@ٹDdJX ! V," TJ845a!$4Y Bs.(iWB PŘZH&@\9`gxʇciDoqO|}H~?/3{/%?c>O?_?{𦷿;N5>/O @"bP!o cdܮ8&my_H26iGU :ͣѡ%}m?KE)8ذN \!A/Y%iK9Sހ;UTX1wHz)3_E>Cʶ"YdkKe&ĬƄ3 LM>,>FLnס]a&H;ЋghA Hy^5VLA%_B95A|kp$b$@ex׉Ze=:![=wEڵ03tT].VÀ@Tf.5\%x rEqn4Њz +@M̒ "^j;.2&3ǹxdXꉁG-M#FFZt!T)= k1:q봢i` ꊊvxƥS$&dc|rV%+ R$2sن:` ԂB@#@XMt aV]M:w&LSu7@Z:5,5H$k!ǫAiG֋B1H4rd!k< x͗860Ç룖n=` 8 Ȏa5"sy4' enYKHnA0Iŧ6jl0KK~ Noß{O>{oG_|[^ko{+݋^vw/szB؉^>̬5K_k]&&qAaygFC#.-4M# Y@8mڒ+ @bH(`Xd;aҤvr&LHVE /ک*΢{Y5(iz41A$ MW2:3:[rdl.thqEkĜ9<1hӤIfܞ^X6Gچ'u$jY}6$<{±IPe@;YnD.y $R4"13h~7h6kq4 LY1402PuEBhe %oL"&3k (`E3$%u}&@/&60"4BeQJ/o'QG蓳b#/0`xq'9 N<[ M80aUA_eˆU *0~ `IlDJr $%޵!~k$3Q`{`2f+k$ZC:bt o'' _G cwT !2LϓD;Γ: Nn6 uS$&`'2y83$Ⱨ|Xurd:Y:ʧ_O>ϱFS :'sުX|3`EHPW` yFX(.ô6lI2,".Q=\X- צ^O+0 /h 5\rM :0n$s(#c#g(1*u~; fGb m*Z59FUX$OoDd[z@AL$"e&fWDtqI,P'FX,{f"M;7) )2.z3C/,:>ce3 bYS|k( Z ",td } G}>\O9TH.`U\Gi5LZL9].cX8Qj>cbTs3:û0<.Q$DO#ū֙#5d82Z%5y~[kBo}m׿=o8U[ѯ\ f)|<}'~q 4{K6︵9iog> {KaYEd8z|g:|m.3;YfU]rU~wdƛ~ǯqn Txɦ Iˆ@Щe6R;/2nb&-pp"Rs-U{'#M+J S,{lJ+fh ܬ4 ;^s牓v;xک)M7/³WO8ۣ|K]g<12T"ܮAgfcեv3O%qK&kՒY''RŊ٘8ۀn0ҥKDղ@Sd O} b0wf^,2vYOM#dIi< dI,i;a"g > LxFZmɲ׽eSJkfC/\S_q)œz_3f4ЎC䓕!u|n馭2A PPwD 1ACP1"/!P:4I12$sl1| .er?d3UrQ @[&%Ċ1%ySմU"z0T1BA&5u\b*3d[elFbfM%K}4 DJ E@*⬢lY6lћi N}4a <0&2B4N8 br>XYq?Ԋbe#qK|$n,Cɽ=P 4O)ü>.=Z!;C{QUqəDEy_b 쓳.{kR G(U8q}|Tk|x]֦Ds;=ԁ\0 Y͢vImy52_t&+^拥#RdXy"&D 6{U@c.H%@݁AYj?+^un ӟg_|"Ln{NqF ~g-RS7׽lAmow<v}hΩˁ^OHW]M PpG^v.,0B^L @DRՋR3 z޴7*^&'C˶wXJ6‘1y+.Qb`?M l}7*Vt+RUǰ|k޻LB 3Ȣb2THDa%t~kp? bbbrM#Mb`^ZA/@ @ Nޠ% 0iN)TETECDfF$"ɰ!4 ,)_Z潥.US.Kҙ^A["q{9:zEW6"SX$:q@\+r)YuzrL U@3|4Kg17M+~f0D*իѫRϴ!Š(2`BO2N,t\%HcF9tV#^<s`[e3ZyV%CHe0׊u3'D/Z3yVFgKb J jF@s >1ɰ.Z/vZ 5 gqֆp,3 -Ķ@St-uPGR.9?pqTa 9̐ѽ~y]Lgp<= !eIqѕBWY7E=kV)eegIYlѣ*c-qA"wmT:eo!Gs V>`5 dfZ뿷x#F .zgӏP65jw8OAC8ڴf0`kF;DD$ ɊN_VTO.%97bBCa_]|βp1~ le{IHH'6Q'p$@`”"mVЛe8dO*DP jfrz+;=J1@@* AF`v8׊`6e4T͘'/^;.d1&#cBb$~"tq7W6QѤ9g!B(@yEAd"&@O$3369r @MQH | [?AbI7HM-gXHԵ<8LK"lb}ڻOw ܕws?cݽ2}vM}xw?GW篚$ڤ:٢$#]}hd3?R,Dbfq[iByɕV..R@̊b8x!2A2pfYsF3!$"B@)`UՀEqBU^ &B/ډeeRfMUt4 }{taw }0Мu,,밻&O7L[áA\ Y vB@Xw:ofCoEǨqC^H'c1Spu@0UZ)V:ܺUyI7NȝjR$Xykid#slGD-n ZEE{q[^),bNP#ăֲ芃uyLEshf+nNb!ҧYDeMT45`0:1(VeƄI~[=)DFqlB0%ul78d4D0cAV@D \-[/_NΌ\/~m{x[H[_}ۛA^qZtZC DV.02aY'1(c9B@Cvbweަ؄lIyoX{8jF"u6[@6&HVR"XlY]VDDM"'P"ZDy\g}Ǣj4ĈE"7ԑ`0FAHR˶ \J"DǼK(=#"D+ ҬEa8U-]ZqD~Uwl ߸5EdF˃W6*޳W>O~ß:>GTxbDgo^qv=MrݹSއC9YSP5| 㴢INb<:~Na@p.[ӋDWDW!(Lm0 Q貹eJV @.jBu0y&6I`ы\2m0r8Lz|&ͳ!4L@N/^kH`YM4ϫ@ǚLХ'7b@Aeefpu$N+Ok1Œ~'HxF`dr\j$+u|i %k&D-BF`qz/ @XW"%vO#NkhBWn/P*B%mYt>!r׌E>H0= Uf.? 'M*R\nE}*92b+0.RʓHˤ}C8YU+i5Ah`W߉ϊ@!$(AU6Q*0SBđ%Ttl~ /GP}>:EB\ DgeX$ PCVjB  !en7^u?OClnNf l`/T ˶qeN#́EYEgXv6HӊTBh3AD/s]hGtGQPfiÏ0̮[}2$=b$FC\#^Lb:k `V\vwk^x}wtW|z];{|o}K ;_}fG/? s݅gyn5gىn7̈m74mQڶͤ@0DYtz$:9Ȼ{5485=6["Yͥ߷n٬$|Q$NB꺎5ȖmulPȝ4$i,A$p#_TY BHzqD8"Ձ*.wq!&H>h:U)QN8t<^:"*X@MH]$#k`=ђvUsRv_xu4X۷j>Kyx/;si9?},x;O箩O}Rg;s,~^zn{?~s7c-zU&bP&д"?k"5nkz) L5F"\P4ӾI[1yo`rjay _*2d^>%ఄ4aGs2!V73 >;ԭy3pI ,0Pie$,Ra3kZ(]/ !5gE[QCמ#@ D:iE^z((t]lRcĬD'RӰ8_9x]#QōNkڞp,Y )@DA95ʆR<OLC ߺ]EN4nOBq&jf& FZ  hšHeEҔ- XN!`*Vg m쵂'bM;Kt)XDB^ eBϙ(c!fw!`{o  ptlWlH< ͠ȨPdu@7aWOWۤ]&4W/'wӢ}G<_~?GNGWOr{W?GN4_~VsNBݘ`|x $fV[ #lז?WWN#UZ+"vbtՃ<:lLafV5g916LHӈåLF5S6a ~:Gz`0!2+A.2TP= 5jX#8 ~~kԈ00HdR g1UU ٽ?jvR ӘNxLw^Cn߾Lo{Oz|???'UH{o~ՃV_=]b7,{t]6nEJI L!kUނ ꀦܗc02lմ_&:O\8b[6f|{bk~-yޱǷ rdH8`"Y\(4bX= !(@ʅoaGnLj'1Bd[Q:1Q@5oWB&>ӳV79M_+$]1adU[ђDe=Jl7Vꭑ#WUEw]5b̹'ɭ5ht:@;}&6k˼u ]'{»^w7#ovיxb;pք>/пۿ5w4rwŮ-ľm%T7Ui]mD=l^l QWHfh3l5).&yk`ף WJ礢 dr-UQڸQf}+y_P`, 'Xi'_2b@4\Y mkVre5Bd&F\<\C/O{9"YX 2T\_f&XgWW88h۷o9]'Ý~}}۶O|Yo|޳sG_y/}WN{{?s~?_rL ْ8%zQoK(JtٛH+`-+ La^\i Ө5FM(ػۖ]}sεg~ !D H- E`Hą?UIUH\Iv*;E?lW1P A!ZR{5#9Z{s[jN{^{s}e-R6pD4ecZ6X̔ Xni30mF96\$P-D1lƤD4d.Ƚ;a8^ڢgSpSږuDLY;/j:ImiV)ڄ ;kjVi)-{bА2q㏽Ww+瞹?9?{Ͼ~]ħ>>׷4|^sNzK+#5)9t|:^?MjiV.,һ1{1urt^8Qzv2ɂQ;gr#@$Mỡr=WWN88LXocAK:Ytd  oW#^8QMR #X"kRB)CJ2MY FwPdUC-u @ɲ[$f)0/ ܂.%.[逭03#\Z?rk e:8sO}ϟw߼B>0|K~KOyy5y>lr'uulߐOO^מ\,/4D.]1#YsZ^?옆Lǜ d4&cHH!WNuRA %.R]ZpLDd4G[o"kq-)@R%I:ls3'ke%UekRY m%I4+ Jf.u"]-]:ǝwv6381RR;bgjZCL֩j[6k5%e2JboP/wo'/ϼS/ҿ]Lg5swjRc4oL3b*E` SФU PtBy̚L4}uќ-@ %!uTUQ&;a8,/oֿHZ>֙PCkgHϤi6mQԁ..ݫmT%&,Q6@VsʻuSr vs_RP"g_k`VBuV˃ 8ږ|rW9@}wЦ8qL \^h{vڥ&QQ5˾jZxv]ܐ\ h~KvVPx~vIU%[Yd7cQV|vaSdMie-= Xl.gќ}uV1,7 1 >q|I:vU騎++XgbEz'wDJQL,vs4O6,fTG #tF8'Z8ZgM Y 9.c[8FŐ!{tDE -)%5M^*w@5e)ՉlKHRA])zSp=zab%(i p/֙{ =L|oxk{ybZ]>^~ c~_|p;x[޿ßo}&I;~9;4+*-<_;%Cp44W*-c{ֽZ3&̭&3@+ܢKJh}j3$^ґA`1B+#0i UyB2XlgcLS'>ڶ@2 ~x <j/KPT'=[ փep׹rwlQ?Y0ffLi21k%N!a-α#DL<$z Zdi.O3,-頂m4y&vC:t1uH8ƐQ"g"=x3fv J Ņ3=~Ĥ1 e"k_Szn):putF'.=x -C0JɯWZqb{wv-jƈ頲4!%Y#;B~_UDc֬Z[3M~G1QESi T ;lzUMӹShYZ%eV.NjQa k{MSv[l$MK|&E7J@bd)aUx~F' ;x>YKMbfmQU}UE<{2Т3P{c0%8.G؈*fٌNi<54 fLlʥ;-ֹ iԘP !5RF5N'2-ՙ(PWrwQg~ծXUK")`CÁLe냍+Yy!;".^~*1D>tknT}+'O{/_xCW64l}^|/­&[)%0f#Eg>CR?njY[IzlFhueÅyԦ{kI+e6Iх\f";c;ne?d4O9!Dj*=SӜt@#'o)ml*E*GEHS :)8 f%C;sE;8ޘLv )m])Fz(tJlk'2E>pV1Rk["Awj޻9ย:? B"Uo`I+Hvgv;vQ`Ϊ 1i=[i.mvW`S~Ŏ£BZ0eU:vϢ5qOvYagti'XG,f2aAb>Ƀds\vZT 䃮$RK]X Ei7eN-ˠh^.\HȪdd{t27|`j ?̱]ފ~FT:a"j%G//,Q4fO?,5Ǟ}'_}{?3O=wx_|qxww9=b\1eu_0wDnbAQGŐ]x$0v\:&:Î9t3]^uW=.tׁRʸ@Cu!st("`F"b1srG! J4$\G|6PQ f`0|OGA@ 惎Ȫ̼d򌡞@*@HZK,:f1 - f8L0% Gޑ2t\YDdN> 7l LرwhetǟK.~ӷ<ħ%s7N?O58S\ NP4E-df|{E!tЛc Kem޷i_:-!bri@Tr| 2=؍"41JW!o0bmri>怊EuH6QU_bwz+6pQ'ӎ4MTKKg=K_5-.3/y5si$I6H1Q` c`ٞmԈR`bE#h j>bZ9 GXvLYԺ;>E+gh7!W+LX"..gnvL}(j9ca1ihMkq mcVZz*98W5cZ7KgM/ 50jKVCPOdve3{Vzd㼆ּ$j8J)ش%nZ/,8i;*QQI^FnlUzO1# 2x%J5疦Lg"ԧ1E ,gŒS 'l$"rL&p$i\У ep奿FHŔScgtAw#<Hϗi&rL񬡿\dM*.8P]xbDXI6>]1Ǥlʯ?» /?s K~|_?V<|5o:z3=}ǔN#Rͤ"G_ƌ9&"ǣ>twc|;(/Qp/ǣ҅ Z)UO9g vV_9ICEWC4j`RTQh,,Y-Sy( /+jR61xL){љ-;0V;OIJ oe7})?qĖCU6j(yEljf,y2F)KN I&DwZDDTO!zD\"Yf+<ٿ-??ew['z1|O-TT̤p!啍 SQC?%#fe>OJ[1WWs*UC⵴ŽKhyÚcfU$2/0iA7 eq;l>|j0W,C"Ld)E> j"wƬ 5\^~1}#Id(O)m&5%Ά IbQƬjt tmOSTixβaCTxUC"1.蒁u6-[Ȟp2HEcҁ0ɔ=@#Ѷ S$P٨`!ԝMX0DIe[|MT,I g5[D \v,ۀGlj:U$jT=:e6O/6$!oUOLr 580dɺ3l<1e50Z4TqKt[@!=Z9f'OX^'MCnlm1K4);ܵrItuDBEӐI&fƺdͱZAX=zO?~7o?7ziHDGQ[,W{63m΁ޱ#z;f9?VM9D;\˅f`ӅjdE Bd$pEl`6T{ ۛ,U[DVORĴuJxN6봴5@R'R)ӄ3dzWmfGƶn8KuX;pSބޘ;.*.GV$(IjJ0&݌s-:Dw&m34AMbs%eGCQG8EǬ=js>v䈍UTS9ˀ#ȶ:m3D mN: Lg{02o48;u>s,`MQQP Q5\r> KVVrRخ QTLY~b?N' w'-GM," r +ճlGfe(&:֚ihfJJL v-1@Y<Ѳmm?Ch e?API֊͉|'m*#8#2A޿=RK]\Xd Y δ));xW*]zq?ԛk$}ou;{[~uzݑ>:x $# mV"~OJnlrkUS?IcTXz^8fǃ,<t|kOdJ ݆A4ғ8f1.n5gB(QS.IOY\=s#DO" p1EL TVl3g/6l̺S9zf(]JA&\iJoY/N Vd0McǛokWHp~'|{=Տ)=_ Gm$m;JǶqQs񗞈qcrv;+;b&l,\.w~'3trNK/\:zrCggOTQDnYE6ʳeq߅cn兣&{/,kp_Wͨ-]X*{ 0?vR>ڞ΂;do/;3"UB #cyOw[<@紉-_3­N&0S? \zWW%Ra!\b\$kRsoo+3ud㶄BʺcF0AO9y[5ܺhP`ZN|k#CTf \"MLl;.f幯p q+ըi[cM1kRIdK]  5mq/3+OXkڡ[LL4Dq:&ª1a`ɘa?x^}}~woeOw}.9Q=()_^Y%fc'[K„{\>#^S%_9C(iS(8Q]p_rLFM#;F*iFD]W.3^Yg5v rF4}Aed4ru݌RSomz&)+Q-K'OƢW6aL%ATJh1W*و/`g B`ADuRI1Jaԡ$@;C} UV\t?ɍO黾MG_?{Xa#?}o~>ޠ\OJHTWR6եsAQ{tm%Luo;"[M|OךUJ@s2vc)y͵p548~݋Qd%ĚLM xv5B [yݨU]INȠ[ۤ!R~1-ػLc{tV.7e> Z8&MƩl)g$*ۓ0FUVJ%tmKKNR>}ڟDd-X+v{V%DmT)>cv̦A@I!ٙU5)\Q: ($ N|Wܵ@CaB5p(h=zݹت`p/2ٿ]Rs J&'UO%BGK*pzW_s䙝Z'cCp:l%!2nM ^WeQplzvȢ"0JnI; V.]O69:uSL&,;ù,΋Nq]}6om*x{+TuU]u+_Z %&0t.BR.W%DdhL37} wo~~o| xt/AN^#_ۊwuO;O=z_%2±EAbm[qD').X%ဨȢWnhXGeÞ./cx_>Ɇv@8*(wXz;Fps]Sۧ ۤ{sM1aepi[a{.Þף D\iɭYDmFUa:f-E*#~V`)Y$ezK@d*6jI gt+YP :Hچ.PjDpeʫ;xbgi|K{3'/_=~#zo~W'QrwWOUQmvHM,`J1[;^Y[gnujg妵/eSyEզcy5Ѷ%-t gLrN":f;-Ѹ񞇯n6î{#H";,rVE_\9;(zf EvV"[ZY„Λ5LN6b|] =1p޵r!oCʆ9.!%٭E_:Ij"[G| ㌰؜Ilԍ D&-;5VK +׺Z gd*u[ +Koc8ם|(nzK@ δY`3I&? Jl6,/qFZw p4n4:mpe2s08cE=}2t~u4}Å{S[On|{+cԮ y,LX--/{͓<^XT9iT\9եK">]_?YUD@ xGB0՘ጮ I7=X'Yʌ1DOjuppл:AX8x ) z:NPTcr(HQ\"IیeEi&t8 `@X8&m,[.m ѹ L\pHb6Ŭ9|[ J$\8 nud!dQm'$ǯ?kNwMJI3&hak-ǥqO82QDּixZ))WΎIN888_i|&$5O;(.1/I`z1&&6RD'duջnow&{ډin+ri笁vϿmIs|C=cHy=p8F`b1 +#>pDB̢)kZBTitIl6_Vs@t:nuZҺ M6~SƟM?v0E#‚gKUZI=@qacͨɒt;k)ǩ|sxg3DY)0s`us,/e\6ڮcVf@qkPeOW;zv=Ҋ[QT햝k=Z;w!(J ! 9 (}&`d!8,9Qdy3t "eHeyQ!3̤#S2 s8rgkT|W)U;rј I9.M$=ӜVgh2o8pKs*W3@SJŠ ͢'Wp:jPSZ^3ò1XMHfОm{@VFSqwRՋs]cYaw~:uaEij!̯;'qpiQak (Na*J#Ki6{aO 9GD._<[aDx(&)W zOޓ*IM☌~Q) vN8ASR͘sY8f+sPYQi%nN9k ˲KS-jKg#DT2VIzQ{Mݿzбyc rDY۔=KKApm܎٥,~}=w8DcN)ocAꁃ8J1 ؞ Fy,!Pr!iːqW(-5\HtAD%bl[OHtTl5p'̟s'8:mv;`Y|*TEH]ߘ-(V1',G( l;f㔳A2UZkӹݦW.XdVg꫼K7/hXɊ0U|>\,1˔w )>M^lp]p$g0ŬA̳AwnV;fXtLf_7 qpBJ4 jʭ^b [mYrR J Bttjlzkg,xF߀rPRHWoe?3{i+GA,O!ha#% Acuf0јY@\veq%22|m6s$=ٜoWwzrD!I,'QT 8؎V&YMhw4DyWœ7L O!KMJG/[rj)dhg:K* sA -qYlE敍:ŤIISFJeUUw̬*fK&\SkW*lo΍@?qVTB$ʝBs#@5|w^p>qUT\f;H9C-,a<><{ͷm[1Uu\%JRVM2 r X%jcAe"`cAW@z!.Q뮒5 !֍#u#K;\[($Ch1yD)Y jsYnP[Z{NB̎:-v{"Y;JOli-cmQDY8Hak]4f$GL@I.wcdj/W` WbYU}V29Ƭܟ.BudSE%kfMyDK)[Dw}|WO3Ք !iʀ{GiHd9Eyc(C.1P[g{"Fp% 3}TzHiyD;j ;@ʸam@y}pP'Skv bƳZVhNn{5MML]9i %sflO?)( nhʒg\X~#_EN㈜z:*u MuZ%R0гEJ/[B}僶ykB%i̲E[C0ʡIUSƋQUgՂ&W9!Q:_Y5IgD_Y@,:D"]n{w*YF>Up2ֲ m_MrB +<ל83vj8SkUc>͕IbBjYFw*<JsW)Ͼ\ 2Tiy)FoLY _э[3U|ԔRSǤPͧh'Gt0uh{UD5_L,3Pg2lBwqz4J1i;GI9ҬquHlI@ " 0cbbhsdaMO1:.jUGc"ڦ|,;Ir.eٙ7Ƙs9ވLel2€Be$DO@&Ǐh YTJ*8+]Ng:̈sk9Ơ1\k9F*<ُ7ǐFTX'%wodF'2gav16t4͒㲲hsPLǂd-̅P1)κJ" =T7d2M$Kð֤_7~[7N\Zփb1bHl,7ڐQA7A9: N@ZƧDb]&,\9T̍@eaR+,}$ȂqߞS+c8'"t*HDw Cw"LAX-㵾nqY;2#dIx䴘K;p>ߤM09l}~|3-7~߽3QN=nzyA6Lս(΁UO8u`z,Odԛ~Go۫w—(SXy4lo2'F]ŵ,\t,p,-EO)D7c\lv0%j sN.MZX*Ot5aΏ39D wќhIlCQ7samxȜJ 7sä6|nuDIwB(1G_ίmv] YHܴ;AaZ։9nIOСb_5?W>p 8fbGjJBQny`g@[rmQjv,4=,N0E1QᎫÈ6 HD@=(rΉ8e`85JCwU] GmLd ^e! [ܚy_{ և;q~puCR+zeFvie] `fdo7'?li[m@>_'Jf&W!6Xm?y愗hFmr 3DPu(5Dh'ڍ?7$(i%[Q/^ dT>RBbսrS7:'A;2x5uo'm?_?a5 $P rZk}TK-ec-W~6")[-k-cMpnLJ|^VRYհM95j-Lۄ%Ne@LCb:4&C{L& (a,QmׇODސq_pq !X7:?E#yrhiW `lrb$>AxSACE`FeDGT! B1"0=lo~O,3L/o4 鱒5ҭCAL+dQu]~=ឳȥ37ۨ9CDCnffѽ3 =RCmB,Qwo5BHsk&x{&!I;}8 gZ]/o5XŁ m0o?#1kg CKRbpmcci7Wnx? 5s4o<]| \ ̔*/|s-R*@ytg`]-R WkV%-ԇ)תRq,rrbjAWӹǘ/@!+`9 gK5w.kw ZhM4 Dz}n9UI!P!PuKD[/""uVT݅1U3` XoRWǴ1R:~ ! OyXVEv(>-ڒѓJVI$үyY35B*PvkτK z[jkbE.̳>rz' 78 hC] ʚ 764U8C} Q Z]QO~? _1qJZ%;H̍r/S)@N~$$5eAITTmD}zDdDch5Ixhw6xզjM|]Q]0>| -Ѫ o6TRMǂ0hWwtTi s{m"T}!)kguzK[3 E)zH 8\=0ydӣu4EQ:M\TcL )$C7[;Au7IIY"ݤvbNbm,lԨc'ML8T<&L/WCVPϳJΗ+V x'JީO? (2I8$hMf5k``R/!_F[xTOM6LŦbuB5hkp-*3{N<mS:A뇺ژa)zU4f\zB:5[\hH2vZ;Բ/=Ht^fSO Bw3_ ƈAw'v;i"FӴI /Dʀ=3`'P&s/&r}dL{LŒ.h045K?Ⱦ|bEOVPva-yJjIH( wM&EijE@I ChRhX sC?m)OCp ‹b9KVV+K% LK}|.lsg+3uW'O3Gu0Q*j``b<*>pɏGO%/Afx8ZʭcxMd,].Sjq^nd*ZjGc!d|Im0'$ (͖?ŊքMN5%֓%y0GTV0#&džs6LE["f\lLHP/.Ȇ{F 4sT 6 `6BTvC"CyL8$.{Zʑ/.%Fu| 6|~z>K/wr>-pOD6&5s< Jq i;XqmС@/7Mt? h /b^^/=:\.ɞmĔh/}X5!q[zU&ޗ5b#ڬ.$\z0iblmI{/}tlꞙ^m*Z?Hb֕Ky3 X%ҬL\L&=E+;ﲐu/7=XO8޻y'fzx|΂ s3w3rQj}Eq ht"+StuEi/?q |F~9Xa^P]Hsa01lWBOQYyd kؔRcjtys?_2rn2oK$aԉØrufbQ460%lJp "vRiB L]숩BR+)p_0p7}8./>0.GowClǞF8=z LAf RqP KgâG˹ -h)4aQ`e!{fY@Y!fCTIbώ]9bx sLJaީuS&924PiݠIXjvκgtMq=Rw/_;ϴS #\40VéR,_mUR]Tՙ\cou⬷Ԫǧbx0{n]qe(ޥW}WΠL&g5=e$3-+v˱K[߽Ո%eM=>gjb! U] j-%1 BIQDOgbĞ=>>$Vo Q$C8Z,}'&Q-'Ϲϟ2~x/܅:3|^Yևv( 5$a?~shvy!AqV"OJS\Œq᲍囿x}Ar!^^2TfjB7Eh?UZJQșr\LUMp(~^| s0K45 JR#^j\-HwƅC YP U[DXC۸%#3)AVgJšX]~pR`iG{br`H }tNڤ+JP󋤋Kdn JIҫ8GcY?#'g:i#'3 t(0ڤ"3ЁnQf}><θ/\rWIsLBV5OD7}v"0@xXM=U~T^vl-ϦYXתQDI*y<@< 8$ԕm`Pj-nv^/̟pnj#_7kYzy}^ս=3Ǯ] -Ofk)^oCDpC'r =dvu%#7pFMĶҤq0xĕU3ѕ-PB GSɊ9L *,wfU݉ۨDx?=pMI=$Ih#Kc$ohGdc*`i!9(h_W2xUI`GmC>9* "I7v`$):B& 1*"3$!ER윩MeX̓cw0O:Jm?lgK?짖f s#;i{@u h~7!á{sאeCR'f1É8 㳃=Nv*-Z+|p`en6iJLSzrVJ{3 Bsj_q!7FmWQ YW_9/ ;7l. I*we%g.Z,3KV͆%j VP2?ivWNs0`$\i@v+< Fuw%ʉJ4wW[7GwشػLzSUDhq|.0W28Źl_DyhOk(UX-*M$!p٧SP|Ѩi#ݖnA|O3mt!UL[oO'ۥQs"˅o PcA4XN\DKL#T]iqSnhK.UCU?mk|ǩc,-cV i$'fEFP3B D6yqJg/~bފ~s盳$^]sO(=dĞ<0TژsnB8 ~ ch $mUV3i3bi㦍 ݖBT[t6/^vm+zꙍ{3~"gubhdͧo¹'Kfr'5[G\>QA' ]v*QjPچIp76.# yٛ{ |?Ͼ/; MdIӐ$m0j& JT ^fԝn)ZהSs + [n,H!&HA٬O[ A1L';{FćfK"*BPZpԜk*6 &HǼݐ*">wpZTu "jm0RoIw; 4^/_,A g bpTd|s69Uy#,v囷C5q:L^ɝ>LV)}ro]դg4W^cxλ} ]uLlXgl4n?@v9giVi|hb' n(U/ĞV@0OM z9{Wʙ=pL5d>k O'„mj.|>E԰Mb=38ԋ(uim zϿX{]WmXc^<ӕX,\IRּq'}Ik*VyZ"V]o q:joez^wԭ\P6qh0#o ĊV9'D6l"1N0c%Z93X[[PgScϛQgDjDwxQ pHsi=aLgb=pyxshT!lFu-db9sࠧ .9Pէafb.QQUw /23mo ί}W߿ d '?O 93)H$HNFIUj7WV*bi[ɔ0v~! zKmOFŖhoF䄛cnR pn7:|IJp`ʌME}rfSb CBkc>oU;9Zp|?8Av\Aـþ+VA ‹X,F(Z<,iIlA9(&Keˌ*_'_͛"ĥoGj+ތ4sLj!L]@A׺u?@0! :hlEmWJxD4R}qcZ4}T$LՐBBmөljFx3qfۙ,1gZ)'va+NCz3LZ3(lؕv6f{I7èڍ. 6j Vw55rtuդsPaFϝ]y. l=UpX&t~~+yJY]8$8.. yWʨpᵿo4N'}`NX+L56ݗq]#3zua]Xv-EW=釘!d@p@W3^r@7Utw6UTuR`?h#g_( A Dv/8\2.T\khrt8gNk;V[]+B)2Еl,y  'p(HDq0+)PinK?b/6n||x3鋁oưjrbRW&~|twͿ?W_Ob,p?ysDZiaPȐNSv85aNEBHj-q\C"7/E$$VE$98Q]ܳ#jR$cb蘺bD%|M^ܺ1%$M&@w;֔EA8oC¨-N"v[! vX5׈2$3t 4F7@!‚XMm#l Ԉ;O`"rXᓍNN^+|_lv{Z ?`'X]\› C: .8F 0ٓeޗ4߇yO(K_\av ΒX&djq=sXm̓Xnzz%^nsO& u6en@o=^jhzc$`>~% nY,ܬ !|^=9SRWk0WXsծ#97?uq hΧ\3iZ'N~6%% QY~2zj[r8 [A$O?9JT Kq,Df zqPN}`f^ljec4=o/ڦUGxQMmH<ˣFD,n8vUD.i+0_[ zTx>ci-ZsK֭I Dྕ!BQ{ e&֎X@1rZY$Og`=^ŋ|HG90ub΅4p1T?86(b1=jQ xWO0OXaEbji&vk\x2[̸'pwr$NO>5nMNJA8$i<#M3lX~ts$"%@GM LfuEhVe=3%4y`&j莛]*zphrʏroF&ʺ.k zKqz?Ǟ-aVfx&]guȮuLZ4'G _D %=׫5wZDϵ4^g֗:3ysfڳW!3m2o3ds6-Z9 h= o{ϓZ iG_u:O@.2h9m4v4Z\XٸD/_'w\ci3oA mN\կjLծ]CL*d(Wߙw.d3fY둀³Z1t={ 9r@Oo^z8f \_~|QnSSѧgj|J2SU!ͥ=Rq>]96&[]h;t;7ڭuyrWh?=ר'R"9bGtonEC ~DP9.-g6haf335:ʏx ˪k.+'և-ogEM(~^̬4GN\Gn̫u3T\ ~pOFh1Ng = A^ “&\IZEY?5rDz'<6f`%vR06ѐ0/'{7?Xܥlwa,3?nGj)I-zV)4̓0kQ3kČ-sTML*1Ԑ2%3;%Zp(r&V%-!gv; $-+].U?;cm!2>ʨւ6"?Ivrv,Ni,D֫$Y0Dظ,KVev aMsT FB`(ٝH`G1?q9MqfHs?I{8IX5|v7믬~{ߟr-_>62VOD}+3b0@}⮕ %~_\(;ՙ,.D*:G9XvI[CjyߑUH CXfA>Y-[;9;v&#+3է)2ZUw[=Dji%B*+(|%gWC水U3>y1S3s$HOI9v|: +'sƳԯnw2=Qwspaڀ?8y7;,9g`2[+/8%Zw-QrvYE_rpșKaҨuu ra. j+jNZzљ2&ܧ .XN˄Ac-ns@XmZеt;>'L3)jg;fI(j B7Ynf~#Bq~xjzAAc,%%_}(ڝ1b(p];% ;f'"af!aY ]F)j]// Z9< dF*$çqdmơ"#G+CiS;?Q 2fbbD(~4"b Ifg8,9`&I8#Gc-GEu ̨h!.dz(v]%"M"m2rb7!9Hq 3܆*LPR\c_G?'Z69I?@C /Xh3pQpL̴M%&u';dL;t_9/GOM mik)U3|  ԢW51j:X*땤Z \8)JvkI.#e*:3u5o+kl/͂-BkpX~uY˟U} OZC򫉋aO#L) /5CK ې>q" U?vkNT>olb9qD`JZ14}%f4obm s E g@Y\X[\Bh-`b<@Z wH7C'v 8nJգDaK%OáqCR&Hj no@;k7>ljۻ0In6jo?|1 ,fU-nSRB T5e@xc8`:z,ūŝ$9 "$kfHRּ5!6fRׂ#30dB&L`*(^`9n"~~_Tqv4C{&GU8q%Շڙa! &#ŋcԔ's0zdNH!l*'t0@)սg}9I6_`UR^W,NEegWC\{C+xBIŸdgxQBKb`u^-QO|BU3@C=ƶ'gdps)\)w~ϯ4̺]~6<{M_Z(zsFvm: ~[h^N M5&j/\ԂCu9{sP&昳SX` ?55_T:''LP>Nj ҮWTì6ι6^SoMj\ϝ,~(ƻL߳[suEF 9bam"fFv`M,v~fon v$hH_~׾d+>Ϳg?Ư~w}ĜH@DiIr-e:8Md4U$e3Vá侒efjjM9QK5&W;yb.U'ީ"̑00jC2"Vp,pCēKzTwP"c`  Xg *fI"^$jL459 nß?ώ>wo/#[,|ED`ܺ4MŇ,T3A&zWo-$,Nc_bu  3U@UuQӏ_!3M}j~~>,Յ?SG3]kk䊅Rh@kۣ.@t,&ACn ;v. Wv Hmrl֗T=gwIWw5)\W׉Ӏ湽E GuSkgU@sf{~kVȜԚ/+DgOH]H[4VD0^EtzTs\Q- 9v6۽iݩm"Pz5s٧2B`bAN4/c(\;,=`` r'!}~,ۖ# IMD~}=~^g?};ܡb0Z])$, s$NJHj V!R'u $ U@fY,) ~D3,eIM=Lj 2 e~cNPHv6 C?jDpW/IqBDE/ո< ^(=Uui=n(j!ȓ lAݵ(% W@Fu /_A~uV DRjNtLݫ?or* q:N\]wvRu+@d TQ[*FZfZr8$?W7Aς4@dӊ:u"ú%!3LK*3Fv*-znsswU?fS3mi}[]} lOU˖ ,>8\&Ku Uj;E~nKėy:v2Ǽ뜯☫,`Zϳ/N0<6;g5ߟĸ u=ԗ/֞DX7fshHQ`}PoQɫÝ|2@0z-2&R?_$w~²pⱚ= DwըO?+U,:[JIHDD8Vد K"lVۇ@JLj;00t;<gWMޫc[_ݥDoUo<}×_o7_>Gc=|W?*`KBCX(N&C2}y1MZM]+HE R}`L7C&u8ڱe-Z,}L嘘nWmTB0N*~r!g!ljڨӣSd*,Ȅ&g%y{zrFL$$1J(Ҳ“,A&-~,[E-KSD=J"Eb"@ <{sUuTݺgF^znPT}!/D<":]`azhwEuH 5 pD9Rm`! &Ld. B+5.ʆ|Ш*)#]M3*wP  p+/޶#--ӻyIZ<8;I6=R'KZ/zʫw<=֟/[ʭ\(*UȒ Q___U]N^9cڲCI5Ȟ>㖨;ćL)tV`T2^LcQ.!n(VjKt+Cu dpUZUm{c&UM-)D_YάeLa9]j˜HXx罐B/vJ\*RD䵧+ėY0 X &Fq!=D:aJl1Zc(2c[t>bi+BNӯ˵-I*D5xU Aj)xDW0VAjɘo|@5QH9S0•!D^P'm۴7nuB7 Orԟ~ꉥNW|'N8|ž BCF딞+FcsF&E o4Tu5WI g)]zYfb 0[@ QLu%e k]_ӄ U&Fecx7pЈh=Tq1!R&H`]*\Z*qߨWtU*edG>KdZu`O([Ba N06UrtOQUk^i^^ 6zpq!y͝fNJ (e2'p3b@E!:s+,tJ s+*طp2)VseѣPOۺm˅_p؁,\=lm|ߧ|aqo{ZhtOtu`V AEUrQ+RKܶu+9sPa\N)\(+kh$0w52^ ^>!y"[Pu"B&-F&y 4 rYW=vO%:/np[WSePR'=T{`}EsnZ? EC#%k =z5 >\=3VF5߼jT=wNk'_t= 0s"~8އѓQT o;10 >t5ȫg^,xK,ؠaZN~y7aE}Z[E:pT#̊7T)x(DRiS.1F :Ƴ~GOSR/RO5HDTE=hmxM{8DSp9Jt"+ԥXL]Bym%$ѯ+fuaCbWubJ- ɔcfvtl;Ic3/yk[׿Kq\k'60Yp! 64H32,C/BbBX%hix2-m:4I9-i(!M!@ETy myTi:[׉P( rr `!a)B!n!^u/ iӼ뭯Ƚ[zϾ冷_'c@W}#5$kNgM,:+!!ĐeDa:D U<^R1GMR_ #ufuh}aq;%>6`zҨQ_'SnD9Oc\:ϭEjpxC߼Bj(a/`&~*Jk1"Tl%nV WSēRZqYV<R٤ kڽ\aJmR[:*V;"c%Xp N _`&)MD2ZXB”ΜnJږ1w* )]^zS'n.j+Vîv_r'>sBgn}GڔB0 ҩ)r )TA͆5NBbn){1LZ1)dn"?b(ihob!ӖlZ2d]p(rM*,SbHA^5%P,A!aX@<p)?G4bWQL&I[~0|'}oIRndHN!]M-M5LeRRB&z^X*aI B%PĿKֹƾ=- ,NuԾ98?oBjyChvt7_Xé_1TYY.p5$Q/5lj[Ӱ,Ik:N"'׏!8&eFѾ48 3%K(4N#Uυ-1BխsCX6n(5^gOF jNlag.VxF)\H ~;_7xb!]پGH(5&K%\zu3*G~ ȝxy-EoRk<:'^;=KoB DP0%+?nC0l ok'L7ސf ['S6L&65ؘ>r+U/Wnָz;3-S] _~8votnh&!L7 %%e)+p1+Y1l y8"XCK ]Hrn&6½ +j*% "TBQ'в<"U$JW2Bƾpqe̋1lXN5L,fD C2_`BhE Uԋ0e`KY‹Ջ1˵ȤpTޣp=īCEi%4:tC0 s󎂧px/1w;_xԡN??/6Kk=%WMwquyo#;^+4jfupwi7L5uG|o*=ʸC#ARUu]vCP/Յ8^UYְAZu +Qo#-Sh#jsEYmϳ%ZC9#tg,υ+344,0*g@%*u UAM0;KM_kGy깚so\cRz%4LYhYhZFA=%TfTnZk)h!b. t ~㟜Du*N\:;n)ewt!􆙃8էxM&WN.=Y[>CX>8}u^\8ꏝ>u4X3GfVr TC{%/G'w [AH==m&A3$Nt5wyV2 J H̰L04$W RF+EQQ-@ E@ z_9!tJ(1h'pJ,^fe>8 .EK$%LX0gh|M2ol5;uth'LP!ky"VQZbW` 43MXURར ,c>ooSv>c7\s;4=wҝ[?t!e滟X?{>D7*e^tE.I z#! 5^(}A`@*-` 0M^Y^9Aʥa T;z7t_{FC>0Kkz* Pت1h+/36FrfE5N5ȏ)Ȯ˝a-xv!}h: ߆p$a'uZ0][3nXuAQAx5gMHױżV5OX+B,`(ZOju 2GLzc{XDURNMevNtBsPlN_{9ptj曮lǟ~wN?}=k8z|ɧ|ٕݕ.xeIqh|{me\ eNL(͆1d]U)$LP&J T*5&&*r򅄦\<c*%KNdE M('Øn'Z̴+5 rAׁb*bBBxCT'jM4{"İCxHL S7\{CQp1PaHقmEsE4@Zz-ܲF36N d5… RMm <Ưt:Q70ULQUk\kb϶DvL3Y{w׼G?xΗ_+'VGN?^z9,_/rsF.4N+>t$_| v?%]]X֛/ܴ{Gəbƭ-[q NaRDuUa9߬f@P* ˎz,hZp%6p͎Į}Uab/*/+סXz5yc>i0acSֵ#2: )ƚg>f_o[D B"K{H5zfsaDR+ǵ />YdI--K*]0S&jZb(>=^8lhriM NΑgҒV88qUR Sb2M7mӲa TgsnmP앚!BnT`&/ȝZ7 4Vʷxի/kG?vW?1ꈹ-5=3oyyj˟BqZg篹z1*J6-'V8L΋W!"5%eNMrWrI-mjYꤤĆU{ h4L596"+ &0EuFhNxtk W%L%\D CdNFw]rxűr4ӄi@Y<{diq8f2QQSdȋ0QRR;A @Ll5аD^Cjđ"y(Edjѝx #MC+<BNw-i.i7~=mJ:z?ujK}%42gs_?og7ϊ(1h]\ߘ0Qm[QjcS&]E/{\0P0a*u %Bb|D&8XyQ;L34lT\+`}W]^p#Hv~𣞣:8] '~G?kqK Mײ-Em3mVzQ)aV@ Y J`ҿ #`yAh-ѫzgaYn_ ׾`Z|Y9 @&D@MK)!+64x5\ံAR hb.@˧/w;zN~+SVOc)M7{6-o/7+Ntg;>prRH* (TW]0&Z'fOȎInlO-M&QlL)T]"* ɔ҆F}.._d>Rp-0J&'hX4 ,+{LD%,;:Zb6XU* T5>b2z WE90F_W _#Qq C{#ISckHUU^5vC 3BF1^r'ʀ51Ft4-Cp-jͪjĞ orOuNMlʷz{WKws%?2^g͝גW{=p^"/]5mվa6kqIDpE߽DӦP%a ]FT_G($dO ~O&Ll8y\ uA7F#)9? XDʾ4KW.ǁqGtx(_E0|9Btt$h}o w J =׍\VWe]gDqZFH/:uF B/A0VI$c Ga+=q G@1}^D$p6ES p[L5,mJV3 #h,ΘHݯ{<'.;<yL+=~owto֟럿/x/⹹# wX6ʢB6U$'SNi"1]БU+ H-v.su+ܩ1{b#,庐:`ŪӀOB_jH_ !1pUqUC@DC}q V}](`ŖvEjNR T(аvTt gD]eo,,5*{&EfŎU0aæD BbX*J S3aRkQtap安;w>~ٽeצG4W86Moo˷\8tDnKk7_wxus|ޱccK"gC'|W4;̠2\ᡆe!sS'jt Ԩu>fdS[v9E- xgSA'j9T"bDO‘-ֺ B]nQ;8VvEIBCz_;U3b-!*D4FڙI:q5/.6NM⦴1+/.zݠ ը>>DDI%)m2K32ްhXJ%5/mkfU^o{Wy=_~Bȉ\_z_|w>uWpxNoe?vNrx677_8 2BPw5[t.RBC Q"^ ԲDC tB@ #1-4#4 ° !ʹ &)rA)D,ڃi#av Azx^2P 98a#FA5I  mYHX@e^e:cu{WѬЕ'ZJa8ePev2 &r^ƈWTz*D2kejF,LWػ}Woqߦ8qxþox|e'6mHP̿u/=ye:b륗H@7kQDi%F9&ZClxuH ׽2{0@ʷ~Dx P 7CO \o^:]ņDjHH$RkFjۉ} lpkz〴9l]Ћ#ҒV>YhV C٪6!6/ƭ%%X>n3霎' ?p)xSuRȔQAk{ A* A0'_ȑm{/0b_rnc_ٹmg[:)Sc˫j;9oDbvoz[g6NǏwO/ub5 )r9дD]ͽ22QRlLH! (DPb9xz:РS^H I0BO,tΊ=}NDs,sKCc]B! X'@( ! }<0&`/\@LG)IYX K\~E ]΋2S<Ġia +2Mih|~(\+Vw>$fc^ 5C?\㈮9A ~hWklغ|b߱ќ>xjEW_Ot/t׫oy?y]8L6ؾa?rcO.oǖ7mxm~⸙ ;rZhk YbƖ"RݞJ\f'=G ʟ)4X*S˦*K5lN1S0H'~1{;$nqL˔Zj$qFj)wIϞ*)+uLc|Ί_ԡi}=fL3ٙMT_}"sr׵k$A^r0Qb!1|XFل?),= E0f\A?g?C|_.FsgZ:!+5`Lwo$u6Yg5T>Ik7=ՕƁR<@zNkW+B*XQKyR?cgMA+cS.3z '>ҝ9Y4L_ڟ}V0K=O?]:񜤇Ktֶ6]0gٯ=x /K}l|xQ1 뼪jÐ1h @P&%0$J^&l9E@lHD;i#儣^*R/36XGV@̢?,GF/ꅔby1MuF 6 c"\+6(q$BNmdcS`-7("21l+ FB6M@Kۣ&G7Wzj2:slG[ Ra14@'UR9o[[iro)hVuu jZQ*>hَGyQ2їWaIɄqݑ@UZ _oj++С?6JA-S=߰DlPx,F+|{-D)#(U*],F #ɴֱTOUt0)l˿\TսQ'is?fk E%5֎Yi(7ʘ Q(l- !Ȫ޾M#w Ϩh,((ʵPu!LCRCN`2:EC֒Йl!Ȃ\'PkXmG*5Bǧ4,D[yy4,5,H#.}SX-%xf[fȤ %ī\ % Kra(2'h% T-PrT% X.l75Zp2(ArRv 4,(5Wc(%dh\cɡ # cV>=IEa в^`sU`"@E+wM\y]$]nsirٕݏw /;6'?O͹7껴m|={?}ltO?$F a\7}b%傾v˞ERY0L&oyс1(S#mue(}4szݰ9Q =tAp!N(;S@5Y깁KٸS`U!rGW-UmTa=G{,TC5,]\oCPΜE4*m\0 kR\s"l2%LyJ2:vll =yګ.xɅ;n:z[o쁯|| >{A3wgoMnio޸}[V*:lk>YX'Eaf5֐1b+BsajYt=&䕔a%$Zx-հd D}pSXFdGKeZ[%+lc*ڄ2V xA;BN&3-yե<*ֵg Aba(q6*Q .`:!-]ms/ &UMP a 'h#%&Ld^@!Z|6IԋwE@,Gժ D, X5lWܻ3F/~v Wo߾ukkǎ`uo?| ~廿!Evl?k6=z͛mNR<0"hM-5LzquK $яFZ `7UѾ7ʿ*탻GRV$i< H+-w]LB_ݼsYLѓx>1bPEcb~Cù&WvSS]y5|ˀ aʁ%pѩ5R-lhBEDW3SHXϮ‡ 1wXJD))J'ed]__e;7.G_~xm}#xɵyMXJ =ۛ7}ˮ/xZsK)~䑙_ISY/ g+JOps9atcO-JƖ!)\^=<ѩL:X.%\ӆ;X ! ]jPtI-K2jAʪBKt BKQh!`ʖK13lHTEH50&)(edWQJM WQĠvk+s)2A`B1`Z< fR,b Wس~K_|z荗mʣs_}K?/uG>De9+.1qx"vŗ< /[ Fs\3!(hYO+/Nu;q(i*5>-|udjA G $&2D(yuY'vO<}O?wmI!%n_Sl޶}~_u>_˧:l^sa"xjurzUl‹X)De+jq[S6̱XC#+t%i}pz}/("1h&.x+,*`4.j(#?qgN&s_7_/\/=ѹ>v_;ZS߷gn阁?r<;=;Z6ι\&m5rBb%b^(hZ$H4e(QeciX"0LXp.X,DnI0N%B CNy5L"T:HK1Dwä,D@™h 1y) - sT}j8AN5)D (F+2VD+JXB`GM>ȯ` (xy!F&(DUBӨcc\8)<ӍN??:ahvy#{75BUmpW6ؿ;;_ ݏ Hdojm0?T憏a6U_ Fajhctxs3teoJ~%TXD u;(Ro$kZׅobqN_dߑ#Y`@_,W5r xs8B L3Xwe:R?^z("S`d 5dc N Nr.G;0J9LFx֟gb e2 _9B c=4x"zjկ"Wr =x{65~W‡̞^<ӧ]捷_{|>vu7]xg:Nn)5+4+6MkY!&/D1H,N5hXY0Fb`L RTm-QNLAɗ9BHSC92aDOͥQ״h'h%hZ80Tz~Qph{ ! RkDXD ZsBA-0B!/V(<׾v?ҊZŐ#!Aޞ0pWfy{[`4k EW K_aJ 8:iD5 J]uqBy$d<%I-{ 5C%2jT]QlGe]QL03mS*ei"VBSܶ-#zOS׿E6mĩտ{{nْ>~Ą^ibuo ݥ[X<$8v4{\bizI+s BDWK `Bf Huv-岒xm$Ĵ\rN##-Q!) %d.X-Ě]0#0B| 2@ ch)2Ql#-V!OѰIJ1eCbx"%KLbgޞ2NEɉ^<`voܑ:DNUI1kdAuqT5U*!aBL8M%\{rV[M#w~#?7x|b!O [vM=GVm6םsw1t}fTegF‚s9<&Q#TUUuFH+g 4ŲE 8Fy_~{5x=։C׺- z" DQ AwU6*RTj*W囍zS_í1@@J"Te– cK20dUxцMr;R_{j} ϻb[¹?xׇzW_ /񼯜ܱv/c_9//!MWN rID+ i W8dt DJ!- P -(BE2bp$$3 \`z2,T, 6 \(d:N}"@ZQ_ "h0pUA@ ^2Z6AEUnXjŇ^mMVVzbdu1"`HUHh5% _gg+Wlڸ'<9 wy/fsMC':{Mme;Xjw]VVT #qӺPz&~{Pƀ9uҪob8LxFg=_BDkE㘰Xj?+*,OsXHD ;]kߵ4<X׀ X"DE@\Cj]1QA_ڠ\ڿib J?eHL^ZJ mmW&RDCY+itH r-k&2C÷r?y/vƇ?y_ݷ!ݹsCd]tqcĉҪzrW>wjLii (r_>ym$lEF̄) I дh.uʰYܫ5dq^+;a"Fs|(e8<(b. Ej!F9- 4-40_0U._Đr!$/U3Lqޛڒak}{Wsf7,Iˊ8-V @F@'  Τ ,D$a(Ȓ(Q)3fw{Ω{W:wxSn-<ﻧN{eU 0 Zq3vablB8^쥳_fO_N ?Ø~[wug?paj|DANE+yס'}y/=׹7hئÈ)5 ]5`/E,9a06zx:qWטh\^폸;?Iq]` "qlU|06>ha-mͅZgc$O:O@ֽV1n& v_z{cn?kg7_~O&{Y?w>n틯;=, Rڦ&]K{~Ewm{px:*xawPxAHe 08 X-Í=[,=7(`pa?Kr.e^EF.a W}ߓA>4 ph;1RūrT2t i $k2Op?O ?bNUW?5nboٸ<1eQj>O% Y%phVJpgcV|:jf+v >軌jVSk4sV{*9+]Yh݅CpoSO[g/{ՓDu;|6@"jxsim6rՀDt͍3w~7n߼?"³˟~⇟}7V Mg `46P 2-6I!!08:PgqAbp{mLV489C P&ڈmƦY_oz.m26BM֦VP3*2G#4x BSk"迗Zc.Uݻғޕ\F3`Ps/vJz(aDj]s+1^pc:mW7&mr8mw֥.iǾ_Hwݟ/p{e?SG}{^|qwՓSYuĹqFہ\WBssyiUx< \AqWt՜,ͶzGǦi}2~~aʈN] ~_nG1x)zoB]:nԫdnN )} vOS'g% VcV%Wۇ}yYeQee4dznI#;) {[3WO&IRvZk#oQ͞ec]o\^;Nٷ/k#O}_gbK??'wߵZ+9.t9I]I~* mnлN;_e9TqD,` '7#omƙ^=IMv: o=L#E6k+@XDF{mӋ ̵/DZ)p}EwWpW!KٽXk1ڸ+7,MR CPKFZIݙ-J``CJ# n) I@5ӻ`f묶uUd/LV4?1~hFEqܨRaV!)ʭqVe!.Z>>%vjX:I0w3Πn|)b/x.UHM򦹤]zHcX|_t6U̱Z Ǎ\wڝӏ 9[?sG^g_sޝ7Y=#76-~>|U |_y`,F}WƓAwrGv⤓X:4њqjo-& ~@\ɤ65t K`nT8 8Z`](*`Ȏˈ&H3)ҔDD'yEDV b@H>j^&"͂1K$0deaHÐ1r9"Ü"g4,bս٘ZiչϯV%cռgGM22o֗ 2{~k>QsycEk@ZPǽFZc.Fc_~Sh{y`b*&T'ߦ2r^]o""J) eFnhmZ5[hnR&ZŒƪ.~,,AjRK4KĨHlMCy,Ae`3h+r6h3h&N01lS+?^ſ?~go}o{_JXWw>{>n(e8e }u58\‰y8xZY> C0YɫR06D,.}Mm l"X Q6#  !G砡SfHV+PS hiH2pya?w)H}4nrvGKpː#@$(|I68DFIhX2"rB5kM&ś4VZoll1&_ Ţ6 \ʙ߻wԶÿOnx^W0NERy&]s &`XcaGW})J쯷u$h0 YYYhYjL.FQD;9ǁy>< 3y 1F_äNi"PVxMJօEU#bXZV-ދapw MKBk9\.Boవ|?{_*ovy=)M?V ۈ!)g0x{;?IV,2p:y*26Y'GA[X8jYYw׳ǁ-ZYf6C‚X Hi 䌣a  Q^U԰:/4@d`?E@dW %QBc,}6Ԫ=K6|c`p/^\z@$;ykM*]l6R5-z4yy<&aI7@<*fn(ym.y 9Lˤ2[/!{/^?4p.{YG! )6 ը2߼ \>|*SSv3Wzj"`جccQ4Y\_XFN~Hv4jvXi.c , ־ 9ƅ!% s_tHє-h̊w8^7μ`Bvlo@gEg,r<"^?I9j(^'<{1WyWG,-,9;< fvwӿQ{ ANX1r%@$ظ"gSuczI ِr}MZ}NF, 댳M2Gd[-hrUoզl]6)K(q4i2إ`Tr*B.w!dC6 f0gmiƕ=ZvtI]v3ƚd28,IPă:9&9jTI.|pkZ+âQkX>peW䷿v}Kʭ˳;[JW9Y\FwU&F1@mʀ[S0?tqu1Aߔm`= b3~[Fz4N}{vhƕe0g*cYdo)–l|)ᤷBw|x3JKʶOjIF\iZ񊎭 賗RHHg=1Ip\ppM Y8D(+lBw:۷ɯ}!|_|w;33^d>H.@ \ܭW ^S,\i$Q[Y]kYq'$i4Snݧ[<9 san}f3|Wn+]²fSVǷڌ%T*1pI;`BOc\MZ^rҾH]s{-26|:ߕoC=}o-#\m>8T\|qeծL Ɓ?PS]ͥRIkiyP_.#_H™y+gM3]1||_~NxDLJYץ~#hKK2KYW^[%L9}B U;fF\,ȯ߬;1.M16zn={ɏwOn6.o%-us@@xu>&居m.c@lK0b α.Z#挳rAlm gn0iTan@ΈA: #kI dF֪X{;lR;2& FI2ZИ(9*ViY|qC"%Pb$H]f@ R+i)s87O } DDDPF`x׷o}/2|qf+ CXg{rH'#}ByŦjR"U^ӕ1(O/gJ`Ԥ'k<_Yxm>(~ ѴjB9x׶@dF,C1T׀3 ;ʰ \Fơ]au˾ lӨVH>%!J"F Q{DvfqYo7z $!4Y}D`ղI\q$#ˀED6= 8hpfpEv3,h(t$NmhlC1tOyzԿSpK'yW1 9{ 6 Y Zcq2vX}G5 Ӿ@_-oD[Dn9Z0s/0F  cHU˷8taUӻ44<{tEAr!m+v)4b\ EZ َy# "Z>lG1GӱEcrپ̽ulZ?x[6ex*w>(ߎ㢏D?#=nxstey1FS`hB%Ә]KJ)RަeJ;TZ_ ,ڗɧ<3Xhvef5K*)kn+*g:7w)drnjJa9P:% eKpCRcϬxrʸZٽFC[m,!vkɽޗ/fftv6[UN%ڙ׽A9rAco}p#={)b0w$Q&P hلzȎE! YM!KYp@ XX-hBCci^2RP!:y$zb>8ɐ 4 K\]h ޽TB#j#kҪ.CpY~VnzId5ͲpeU@!!cgqV=LttNE-}&fA#D<Ҁj_4\~p\Yu'}Y8/᱆"Vr̀a$6׈GAWNoWCoBvjxq^Xq Q>zu䧧t^o?$.Րҗe},X@ڵUv2繷;ʓZ󍄗Z^iø8< 3Ѩ/ʮ;;|T=t)JWf,DHMa\JIpkɥ [b3Acf˓ap|S4|-Bhtw"=YoMq8\4ק>.RC >MB\1 lr"A="yx8D} "%U~j]m.=?Q޼ǭ>Dxy]yA'{3_L!eم_|;/>>lGC5ϢӣGX|sve D4y׵XhEPeV>2[ΰ70=Ô~oa4Wn0Rt礸9 Lf] {t~ d@Q ;x =%0Z HU~9$MY'vI9ycBW5/hX6àB" {!L 2Ά`h#GeFgYcŹ"0 y?  q^;g|ҫJq-Ղ %ӤdƖpst4LB ,,08`X ,YX"8M\ h80аMJ`-(3u*c7 ![f垕j=Zp卅6AW VbXJmj)Icr׶b۷VnصAU|)geb5{ \e]/}m}9DI !cSQD.PJWģ;ϝ d`6M`ŰӘWUU5([. N./4{n1YugYثSkN{YM- ߌ۹N6BFW x!x}6BB(Dž4H#>#cj[4,C4+fNScW\nK\.!%75Մb.61ak-ml2E_~w>E!Sx-׃b-RiRN0c 8sp+w4tm,wˆ{4aiX H2rt%qlIf&p(FwB]ְȇ@k zנSPF3#F%h*C !*"rؤvo̊=a1!')h=oՅgZL|QirVqcW}}}ZYK-`[aR(a-fӉ43#2] tl_b~^cJf-BxR5cn%^73sOLj^<2LwIU>zG@6-tȫ $&t "Q~bzua:oQ+϶@" d \ ( ,M@ 02em7220rA\6V3= z[/ "p09@ߨlZrk3b4 DC5\`#%Z6`E'4UfX.L&g2Hy0z@Ša?{8l*+5bXa@XZ luifHU%&dȥ1pe&䪽d,K cL@#4y"jOC/JbAt^ h"`BF`ٓto%UiLp8&̑SrL`WthQH&$)M2V>LXǔO͂{0xΫ5l}}@VyN%J@(CjѮbĈ&p}m'SkUuo> y xq/[~r1"G~ŢHWZn맣A@+Ö}6/be2]@1d$7tpa7yp#gd/#r&%X,2 %ĶG@YXY1Ve3|m"ܾv1 M(1D6&`Xj1t   h PKgѹҘ\.0˹wBgE3:2Yzh\}`99gEآ`@XpnUz* 0gI53+jt3g4 `l<Q㛷4ZLiOUWP;P,}B"C׆cbjʮ _Jg\,T|Dwv0*>Q._ 9x֒' ?IDr&on1%C />_*AWR8ѹ%>S>cyoNf|ae@\33Sbߌ.e^)21hxq&"kGk[!ZXvm~Кqߟ-[ō^f\E}m܋ tCah!u hEmзXDxlf|^>I::ڈ~`r7,}kr0fg}6#6vb\Ȥ Bw2 z[U=^:{޽6jE2T  5 qҽWJX28O94aD+9 .4@͢YcL)"+~z)L_VDr[X\641R̝~!YgJ(r"qAS8H6H>Nj%5?N1dWqQ^Ohn#r;҄Wf1`{]osXyIwÈ4 e # /7'ŷ0;4npK8J9}^#uv*FK,Dò!oz2gۼlrكHҨ`c BSQ8aK7>Bk`'݀U"F905|Jgn6.C""6V- 4# W Ɛ!/;`5nPUȦR\NFU?J8rҋ>k Jũ47\>XycKF,㪀*v~K:.t{;T E"xJ+Fbst]!tiq{;._d48vBNo]ԉt.,h_\5,F|.9Ar'}.Z+H>h={g{\Of”9q*e}uw!7|+[XLw+n̔a/O3BV4WNᰡۀ$Gk!aN!h!$5dd! % Zs̀a(FdaN` ܳ 780HGƊ AS!œDv/I<bԼuPHvCPU!V"͉j@yꒌ1!D+w6j Ch јBzU`)i*8#kKFS!W! &tέmť`fVj'HLk6r}U. ed0ʀ}@æbeTEbM>u* a [K#DeWH2ee4ɝfdTw CUOvD!Ads_lD#E@NPFkVMTR,T)wLZ߬>g~Wz(WDNCD_hvjg At{2UBYB<}4R,-_.+6}.c}v+Oǐǀh1dMZ4.k<ږJ{!Wio+޾G'= k`I>ceF`1`z|iv~ُ؍#:q٧Kxc\ɰRuG!m;F}Ʀ/NU@>{h,ia \\5xfel>xIy+e/g6?]rB2PԒuԐ꩞%q#F^wW7!iB YсWL4XVX6ȫ;x4,bx0Ԩc.;1f]R`!QMRr4dB@z![3@$14BW16Wr#)%)2s ,1pDr\% *ҥX5v& &l2 XEk}g+ !ƊHVa40eHD09b(e9QҳKL_16"#9l1!-'i XNm'/iP ?]K~\l]9>P^ZnJ'PuaOoS ͉bzS FR.Mi~~:%(9nb.uEs`]VK6fw7ᨵ|M;IITcXw z[so2 JmrgEKݓ'qliF ALhPGv"rFvI]BÆ$C,fIs>z y}`Vޑg؈GRakjjԋEԔ@rAXN;1%TzfR fF^(bPMY-5HȽH+xǖ uvNsc۠XJ3\Ew@r7,~97~` &{JsoL\+z곗sۊ0dT2;|* Ğwk%+n :M vySG:hfJ7c˜Pݗ'Vةfl-4^"=5WW٫>i5{t]o \zĹHLޏE=-U}jl.qO*OJƟ ]{ۮ KT"0od:I-6;~c p`m/mq7= ĦYn~H{ cVot!6~.\5|zA6|wӄ& vm3HGߵ$~ohXF$mNxg;l=#q;Za3>}kW^ww\d$EpIYč/#oN26 ϯl_~c('<೰{0[]Ǚ@ Z1k 뽟 *$8͐Zh`}c mta#!c0fnfGvJ07PN`fŎDE0M1FI'e2*Gs=-h C, Srd92 1/S% <ͻru7zgUb`ijцq/L:a?t_o˜I \pwCh ]]oK\<{*8hox{,*N8,!`/1JjlJTAֻܽ)`+ZX\gVf{ݵj9$m'2ruu=Dxk!a~}pٹ[5!ш>uVaraٗ Yxԋn#=U#nހ@{!{)A.O%ˀeS{Z]C1̬9`rV0d0 EX⏥M@3dUFQH*S\ ̱it/dipYiݰKFr˻ RcPFP龶G 9:S+b-(shuM X"wT-h7O"g~/o21zrc ANPK2N$?lN|g+[r싙z;/ʛh*uۂ*JB eJSvR*pdѷIIPD+w_3Y9|u]]Q 0ZKݥQxUzT]]o,~uVe4böh2;I"l$e`kiHh#< :s7(1Pe26: XQV` !пmD]!h]\y6b ,ɳykЀ'W.4(˺8eP4v@*^9|qR#$lH/>s"`!Ҕ=wIȮE1іgd`ve9c\&W0eՉ |7RҚZf3l1m\NQ+T *2!”FCd!y )j%'8u )!T=2jůQ l` [_^KjBTTko=/auזbXBU}V P'"+mjBDc-u^T*J!34[owх)rXJ/J.;q^LKn̰mĚeP`)Tx0-:p}>AT֏%Y)-R̖1[ƕ.Meb "Z`U@!PRBUeJ@.Ƶҩ͏J9  1+7&tr&Wz$tDg8D{DXcH)WU~`K`26y(VackKh;1ir[ڵidsB'DhX!PWqkD\sya%J\0Fj*|ye1r) bI-zQŪ)z}+nuP5 lVY *46:j/!tEd:%vq~O7ʂN(PvFU z򭤯a?;)' oR Z886R5 JY jB@Haۤj x% ҔZFAf8"'Kib@1'E!Hِ*I}Jpd&Sy dJ 9Ȉ#cmBZ a<  UrR03R SW'p^aEd;> SHUqWhDTפaǺB 2˖)wZziԑWMݻFvn^]iXrW6 !8i"%x@,;%, QI535CML2Tw 8@a_?&&+ky@W lH}'ӪKsE1*g #kz N Ӭ)UF\+vw8N ^/kR) Uߒl:'fՀՓ`x垯U3TU<:CQR6ee2 WMmv!$d L-0m^GPJ&WKJjO,6th%OxB3ˮPX5(Y(]r2&tlta2^NblHY-ҩ6->MxCǪb9ws9lLQx b`4X|ȣH$}j*d` Q)c&dqeꫀK;0khn*;Pe(#^&H93*68K`T4kݚ&z'5F ê2R\^J;aѐ8}YR_:erUoZՄD^VuwTyh{ J *Z;%S];h:cyUADYComK9(@ Z0r`B**!K8+Fc5]ϲa_m1l[JDI ׌8/ 탛I/4\Nj` \0q{6cri2|o|7bmtc)3S}XvyWH*EJ " *:$ࠢ%IrB)1h^s='1LR cK:\{s:e1g{N')=/˱ ):Ŧwg_MpO-i5c s?X'muX^hP"M8Kh/}Aە !5/eQ!D5`Wk! :R d* }avtAaJEBP E(X?Pyb2l{-醇e!ED1YT,*ޗ^Da jOXfːpV}0,%SPN$BJ՚hʜ0(Rg aJ(!K`>!¹\z|g~^hd@nbƘZ_"s/ѭQ-{-2M-jkY6M|"bZ/z&  QS"Cid3'wO-)Y7ӥ=/N eIeU{(_c%J Fc3wؐedA߉NI-%J]vSd 1:adq EU@P% *@1D)SX&m$L6`&>C6 ʁ5 k}phW]qaUqeꡁb|¯.G̞jhKHX w^ Qj(מwVJ06yٷc /9<6l?wܼ+=z[hdc3ܡ RNK)Y<ȢYa 5oTS> aЭ/@bT/{ uuRa_RaVK*:| d5J$4g_~,L/D1k}sWXbXJhz_yqC6ï_ WG`&A@jyz J3*lzB N*U`T9cJ-%s `,#x˄7XtK};/޻grӡ޿5{޸?>[j.ΏӋyy79foKSC^Fl'KGLX/ĢLNIaceBQeѱ2UPj( t2NM 4,K5CؤkUӥ;xqQ .pz$MpZWR(x (yQC!ql\1l ~! UCjUyd5;}DZĖ4^Ƿ X9+m86/F/$:p/|{7Qc^c J@5g4R@g+IF(e<6SJ ˹Ͻdx2^- W?/*MNLӟz-fwm_hR+(f 5 RP>4!aJ & (=%CҋEx d~ QxURXP`a HBx"dزWϨmT|SXGd eQh`- g#$@2#;E6,*>hl.v2f [cШzjO%Rd)@AD 2sQ'xX,KteO{l|hᒻټC~+p趱 ?}SC&DVI STH +"3pp㌇kRL@*ɀ N 3H YBY-GpHT5sFg5[կg 6s-)e_Q'1*(C,1B\aJLȷUxxLjU7@@;OTEj8ծ,ǵSc}[Y#W(*;BCE5ЮVh1K`'Z{C-[ SK#ÿO|Mm(}Lۚ3jFZ42o~ӏ2o:vfl.۳w~DtT|'j (C.dLJ;,M8%?IhY %%FRFB (Re6XƨNJN JtR2yB9j.Q(jS=*D"5V@"b4Q`YZv 9ղ(^ DV6*L#h#5\:bCC`}EUaN+wP bnx *A;KɃOuOLO^z}['K7~vrfʫ+w_;[筗LNQ_DJp@*TX/3ΔZN f ֮Sk`h"dQoj˫ECz696/@֗)KH kW<4j)xVk(,Ƕr tǒLUQ 4{9\Ih)he-c||}?zݯu>lK^+؜̻_y3IJɉ]ݑ9CzFC[:4hG*,IywLy@by/D:Z3nZ`ht324 l_ eԌ%<#uhca-28Q,m([۰eV(}tpFbI4x |%^XtcOJD jzWZ|K(0#UVDW*p1ؐ1":e:T@mbEAh*BWJ^k{M':<9>r ww?+?#'o꓋[@?t;wt}Ws[Y\ a;̹hh~d*hв.y `Vֈ ߗ^Aơe@F .65Dk*_rCbl*/;WtmY{ȋ M_gVT4'Q6luOsruCO,8<S]W2(1L)-N-\R\_oG\q WO0(Öɱ׾|^v?Ęͽ׿薹+dYBQ:ד}0^XjP'0\ԓΗ(EQt{(( IUks 貽 WB4 Zh'(,W &8\Uv\UJJ`JTQI L!І0^'QC9'tiʈ1`c1 @4jW5 `+W۠\PHhR!J gtᯘ, 2@rJB O^ɁW_~{տ?7>tbw_.0,Ǫb \3K 5k]*pY,5qUm0+sp(UVB&aFeP}=ll\jTںp Am^ H϶W{6Ӛ|OZt-}~?KSOlL{tOtk/tcsy׼ld{Xk綉d(Y)e91$6բl'9-AqVzu z}Tf_^xQPlq zJ!/Z6uS2a@@\7'KܢR: Ѭ|2ʽi8DiuRf3C~υ3J+aW BR˲ĖY*g DN`[GN-Ru<[GB_ *ן3Ozﯿ}Ͻ ۲s WZ^ZSY8ҕNaѡ;}EzSʝb_%YqOLǖ;Fȝ̽eaǦ"tFҷߴ#?ΫoS7]1U>:L}/=;񢉡\q2d}Yp`U8=Bz~URCEe/Ï# +L)*5}j "}ڹ)1]ZWc}<On1hƍh|xZŇ5;dS[ *e$@+),CDb,82W+{^ K}=XZ*Rj}㍓w|{z͈{ߛ.6c#L}k-;`2s:17?v[7GO,% XX*{%AB3}=:uX(bK2P/@SQ岔J d 6$|$BYҋjj 2h'h1Ղ t RZL#I\}dG~':81 SXҠUd2URA_xB)N[?Mxym^!QA#SA(DU ĕ}Uд-@ FGTv'SϚٱNveQX\=WN_?~?qNK8{go[oضm9ӰN$0gᑄ]ewBf8a:kn8. 2$l8PJ/4V ᙁXKE+i܁#XAU@ilC[PY鹷L ׳t<e>^d\ui؁4:4/]Ak@֚ )3Բ;8ՠJ0AyNxr$7jzzǻo3S]W{G>yɟ?⯽y/7޲=ڹ]z챣vT>=5S)_bs,ѩe-mC Y= /j B703pЃU70D *VLD+=,;ףP 52A?Nȅ^4WFK+dzUv4LQԘ$$vQE!AK&]3e-՛KP㧡Z,UK^-71f7{ rlٝ|eL_6fJCs'RUKw雯h`#|uW3^Mʊ (XT\9rWI2T)!J|ɏX5L(_kbi8:D Re$`ggd7cQ:K*>׹bJQt,js2Cet1Jp1좠hc]vRzd498PAc_w+;qx37^u߁/bȓ'['>R&S3soy宏}&:4$|lťTTx!``mNS%lH)KWFw@Y%* ܨjscqU?X x$!cI,g/" 8pAUy䅔^aCpHE}Tך\ݼ9JQ(,6t# z<0U<dCB_}B  =!T bVG-p9Ȍ$,@艫=07$G]gҴ+Ez̸/?wrzZ:6[WRᶍM(7\q y|׾̂O-RgXfz DWT)+X4o "!ڏp*ES]߯A*0(bNFS_^~\k֪ Fqbkv≯4myJj}p8FjXƴTaȋ&kJE^F'" bbeFszގ۟tNwi+m|{`na 7]#O?>*NUKJG)MW\k~ShdΑmd?;4r~N˰L CX3R-0%Dib%*Ty `$1wK%m`-h B;3lHCH$P^P (ȹ,*A}&-3A@ILE'Ğ;"**D KFe$W=a25Nt tx5 l.ĆDT 0P[Xh+T\VJUJvJ+ցCEF{6sB3]JRO s]JUqE&>2}Eϔg^-ٰe{O_ٽ)ӋLs<6CPSI{쨪&C^(4~VE(ꞗ91*rȳC5hPj!M:xS}8ޮkxo=3 :ED *kO`N,L1PҎ v!Bhm̶tn+ܶe~|!zsl3'󋯽v_a}׾/?qWO.eG֌aNʲ/өnF:IYHtޡmѲ$%GS%@y9|}Aׅe4&[!$DB0 ׄYPzJL48(lRm%yAFgL 뵵PH,)  38t؇]EzRǔ TfRQ BC0"(0 =BK*,z F25LW]52hj{}mnz+:'ٗ9}ƯZ}3K'/l ӳZ߼~.o9\ݯG|L_g}[.t[N56]p{oAãګ\ڜ=P\9M b D! b Lʁ꧃pu':+!H(j j +(E 7،Õ"(obWjX/BU5p}?OU2,=--1{IЪ2dU85y~bܦ MYz@>2^#{\Or|Ȱv yr|_Ɨ~}S䮻jڃG'g6vLW_GL]{ݸic]tvcO,.- s cjI^ 7J/m0NKPUa0SX0D'Za Ee)W{k!FhYD9tRx DvDT>Lk}sȚ^  ^aLT@DP0a{6JT+ɝ 2`υ k 'l%: WWr[+ 2:-zz9~wF lj~'^+;-lk'Cy;co5FaG{OoG\cBz"JL °EVEjA& ծ'L (mĤBT R0^kv6_p/a+&'HϷ}C=>^l g{4sTc<'CUz!Z6T fb/e=րbLSFKlsͶ-]S݌9i[?Mw 8Pw^M&J0+JQS`4 K ak_4"0(0RȼAyD8Qc(Y 5j" a5xhL" $P[\VAs\ЌAؕ2x JbêǀxUԒ2RC5@vmQi ]Qz(k*"P$!II _Z>ɝauКeZbT#0>˜` W]M>Hs ?G n Ѳ;gtd׍ĝ^|t3?p䵗n|+3?_WoO.:zuO윣2 @qQN@Բ BăsL R!A:  ,XQW( P"7&pn5)8>tuՓC̴x = ~J(Y*>጑s aÎN}),P$/թ2QH% e(ej[oٖB4a!(9=wj1Ҽ?}ѷz]NMsZ8ԱOvbJo|z~励Sibg&7SsNtRBPB}ў #ʘZzAJA),BDzSY jb2G^sGcs}HLM2vJ @<8U6`ÆɋUM W](0_ rD">LBU"C I{@`p`d=^}dTcIJi\uQCUVw 3oŠ7^{}_~|wFwﻼN=\ZYY-y䝯Vk^_㦰PZ\VYRKAtߟZKx%J*gl'HZlNSʘZ:,Uf AcMuiRJIbc]ԖQ(+t6E{DSN (+Mu p h^ \7`TFwS<`٬Pp8?|o|e獈7sgW<6Г3yڋ6<:#s>e_JNCY0 ,|.!GҚEv N5H2=  ɛ!uaΎN!݋ bVQ45,o_62uh}񢡲hTIAZ0Ȱ`jc p֜Рc^ "cm]KC-LN^<1O<{?MWKnaSgm̻nxo7xU̽ss>ٻvԩ l^{4<1?~l[@0l:QrPW^JAT(hmɕO!XD;-}<\UH\$us1V[D5Rpj)  쎂g ¾<:"\/-IbN04}UTKn0c῍5'gфs]*-#U4^*vVx{$UA %Z?8Mcc7~#'>? co+F1b9{} Ny"Q,(($ډ&~{jV,ip|,j'(&XZT G+"3(䦈lHmA_k4RUf@&b& i^("Ay 8X, c x ~l(Exib{#@; *zS\AtçFUsi](cjRٮqkUc;ůإ'Ot/=_xsZ^J'E~z/RzU_mwN^+NsIV8Pp=]a\{ UB:PD{^or#t]M_Ч:Z'p%ZuT>^rus yai~"`; zT1%%ա9` DVHtK-= h;ǒI Bk;:C3ÿ׵ͼ=o3]c6otbj}coڟ-/ӧIKb%!5Is`.N_aH`ы *_u+2h G2Z23J^Ωt/t@#%L$ y)%$ ˡB ɌRƬzXFJ^yPUV:0GA)ȂAb;HS'>uLlcFK҇aQ(ec$ Bd?ZDSU^\*&`p\M3Hx`a׆t&Sle[x{_Llu";sb_?㯾fWӽ&G|$4 5<.hHx(U*IArv4R$ע }C2,6UYV8$Ʀӡ3LiU;ޤ+ƙҐ:Yc}(Ɗnh`X7 ]bՂԁ *5u(a6LP0IنXX"-KLhYk!W;5Le71vsw\?3?kyW}O|ßj[G?rdY8vpUNYS|W='"3IM'/Ș"&\Qj,XT9xYCFF{5{ɲ:lύ̬GwW<ΐ3ы-zR,"(ۄ%?/Àa6 dÀlY-@h")EKCQg؜W23޳>ƍꪙr:7"=g^k5B&4MSb@H"B}iʝTj 񄧚a5Do=^-?{oWO^;_'/=<?v/N֗|Ώr}Z$;K1F;F`Ӭ}͐}Bga"ب82dL g7b} w.\6wZ+u5;;ز&X*%)En72;[Riñ~*kpPhp) TEy\fF|(SP9fཇ  CŪv/sO>+/_s~_{_g~mqoxhsp#? ֯zg\@!0EZDNq-2ʆQ=lf'` Y.)-*` ة֊eNKU7N UDQ"#n:Dۖר@d#2?GG!]|&|@Iɔ'H)__;ȥ;;; s3=3G8.g3BJT2ۇMrO9O@s eN zL_{)%dstL˹c`g?)1Ucw{V1C~sVbc#jq:)8lD-L5N~W~柿p`o _y'>wz#`]w=,Q-$ UB"$+ 3 "si@2o*f:4I`4ŰG aLQ[ Mogp!,((`6UtQDA8F"4F%U|ld=\[3bK-3M GWK6U{LfDH yd9O:KHs;O[)6t΂NYK|5$Wxɮ5??7??3ekw+f%ѕw4sPqXs &F)6RS41;}tOֵ"y~> #BSC=~>5r5axwJ< ]wFpflbMO8hS=O,IUgB'C . ES?Bqg[7j)GK[ۯ]k.?g?vom{fy?/'}Q=4n)@',` ni0C0c$SA,(\*<,::nlڷ{;Á⠠j"0TdTGQ:.&!pىfr wY=Mx|>{"v QNS$3J'tπ4n(" 0D(uiYUYt-sY"qv8xLzPp?G?Wp/?/w?R{lZ<L+b[GNpjw[T&\ -?cp|@{:\\Ǝ=z82ks./2}z^!6N~Ļ,w~{+!ϟid,Ls<}*"WE;Ig˸?Yp!д>?`q?O:j!<k: O޾?:n,ey>ӧo~x,.{:y}[@K85ߌkڢ?ZǮ0UЕ6Z5nLE,TVUWlzTxuũa0U @l,ml{6I~JtT,LU t*:T\;N-a{իy QRi0ef9)P+c|XD6|YX66O"b"voA;6Y~K'?o?_{嫟}[زPaDoL_$vs'c1ּP/y~ꕌM'Pdk 6jqtq(=?%ŷ>Gp㿩K] nS-Ex8UQk5Mf3;"zJ "GzNVp#8O5 -< yb7Vp!O,xx_x3|jӟ/:3;{oGo>7W! \*#& A++]/ bD&j J֎12&;GRMXT1"(fI0oD;G MDqJᢐYbnz[ NRPkܐ 21 V ЙVtO:p8^SSᎢg,c˳?l)qrJ=*y׿IE^7N>;k}'g~ϭS/kw$*h}A7vpS-HB[mWK6u~S/ dl3Qe9Ys!|%MQ<|/dXWj>+oxiͭ;fi˱؛[ˑSEDMq)fsX&^;CUbS37VzP${DuM?감lNdY䃍aXu|7>nko?89s[k_}D>%_{'Y_O{, 8FxKn T .a 4{CȘr3n)Hk̂QEZ- 특,X관(;AQFdhѣBK5BM Z*U2.s2ؤ>hA}Ϗ#q[p -8lTt-|$.4aٮwB±po,~e]O<_;,YO+/O_?'xۮ=G_:/'oXA p`nN4[#鏿מo'>ۯc|tA:(̹"Z3xTϤ`OfHp8:v\FEEӗ\`>8h\>-@"( "b\pHN )ھ*R)! |AzD7'"Έ/ eiɣQ锫N9hl [ˮ˪~+7LE t {eaGxZ(hΤlRA\;|vxQ*]fJ)2;o#rs'j\;Ҟ|gf6OSbM4{Oe5 ^aƽ> g:T4*ʬ Zxɍ}{5|ŵ>Mg>Ԍ+SK}@:yr?oJR]S?_?8k0{wf!Y: 0THs4}ڢZjB[5w1BlfYݢZ%b$l*A]Wٴ":`,Pe3ϡ]iZXi>-6Ou*t h'tܤA֫%;#̓lY &İ@TTpcTݭ$>(m`05}>l<Oُn\[bfFu,J*ԶBU3n:,R}eyӭpax:^B$ۅ;GENhW&\և@]iN)t\Dbŷ4)`rsO ,pVqp,.>ո0~]ob7(ggL4)ܧZRe2v;eOբ3^;l̗H_Zt񙓰r=Rq}%CIN`%|ÃߺwǞ/Y?#LS|_.Q>\_u1ڽ[&n2cΝ`}Wj|kw2^$:sfQ-ߡcg[pXmIvMĘK(*{tH/z2o CA EY=2, ksVĂ)n,ﺛ/?7߾"HLⴏޗ. j:Zf;ɻաE! p3a < Q  s#ldUT%p aD!`!&G8!(;zzj8V}}Uq9ھiQUO벭PO@HJXx!H:\QhUP hmḓk.ΓXx D O؁}B,L8cMgpr}A ɳɕj?BN?-ֵN8Y.ח k'>u!ua|Jqx lK{c[l㉊KxG- `  PJa d ܆l }@h"feiV @DUt- SgL̝;%O•\($NixkW'e%DڎQ0v▍pఄ8G_<_cļQz7>ELgL4e dBN'1XŤs'Cm9v=jTV{Y7 /ՁO%;CM.c1禴OX{1͎[ʭtj\x/Vd&5S{`vޚ luV-o;"l1\P\FcVj-sۢpt`HWPysUNkԊv rO밨 #ⴏZ_q/>g)* ?ryAʍ=G?w6I_[- Pq5T7!JA Z:F0RDQE;+2Y[HjHDcT3YtX gi {[MPIi:*8& d"yn-{H+D[$M$ mRd5?WLS[΄妘QYAQ%u_];okwϑsBطєH=7Z65<\O :_ۦ_.| /hI<}poC+ L@=7j F륧P&lJA|vool3P(?tt·NL=|{OwVE}u] y:؃ur}U]["zC?BٝS;/3>A d-iFG]*ț C:6YXx*(4J&?R\ UGy AѤ`$]X(fN,8A1M~>Bk hZ"S`t ,Xu #;O#< ݂$Щd{#G}2CEl(*p.|SepU$M+<$ ;K^%rwVUcgD2XPhEɐmYںt@Ulj2M5U#rkp.i ;*} r!ӍC9 gNĆ8OOG`yto}&x]*kM]Z!ߑ^8/x }}cGѸs~O#r{/3̒="Spj6p?X{u_[N~ԡ Hz\\EP-D).{*,+R 'ðRRM">U!:E:pe :pbP[ΪqcD@:!.a5+ JBIzDj%MZp"fU~  i>3hN`iinXdupwYg dJ1DtYkY\")PHo{0RuJn"K3㍡lUz\´) w7FҪ;'EGW*yoOxcj=C=c/E0u4dV9os AZΜ;C4󾺬3/l5+^!8(?RaR\h]woP#x<^RRQ=Y6-ՠYC[圯ɔ.;]! uQP#QJO.ͥ KUzu-U9xzON>rWr\ky6"J` ՎO6g}qX aPئbuClAzkڞl,ܱE҆$X4`jNBPdՌ$Gr%EHUyD , V˒Z@DYvU*0Zp9Bb)c}36!6:Y uXVg'mݎ1_vU#.BRSrAb!T((тxyl#-eGVa(bK*ZR ^Q"mӶ$NF°!$p8؎"FlclTbcaALF4"A Q|e§}ww\W=?ތqyM!>OqUݻq[-|nXpDZ>v` 1Į 2Pem)$7#I4;EeTu` a,/~}6sc2U S(;a.d)p2_H'ٵE-٘ jiCk`Sdc/Yܭ[<2ZM#,:)n G,<G^ܯic)Mm{t S|Bg8Ps{DY.y O믾xSWwS{T@BI"$ RNGWظI)`?zh~ 50X+YDHfT;T9eVxj_w{=VAm^ F=_=xaq0߲!to+Iv'/oIf{ZMd[U*6V'zsAURog8Znt5bc7+XKp!Z3t]{OܺqGJJ.qsww+DG6f H݋ý&E t mtdG\TS.ܕ4wjMi{v^F܉"2txJod( QA ;dg}QNͼBG춄|?deCXa-wVF?iĉ /n*@hT-ꝟ] Z@]ˊV{ hrAaVUETfOfD z?ZtR{8g(9I66>z>߹':*b%i:W j'Gj]<.c@up@Hjj{.3qC|Gtq? Wj|&*^s$ a-F0bno#qMxKfYK1AR^bJf}2:.BN7nNqRU >^;">>s{I[J P=%^Eԓj]%ݔsVL%bIJ5#t5K~ED(#(IyI*,5UU1ob DL.0)JBҋ݅\G֯BuH^='A)`l,UĐ 1 )SV[F R1Ys6*pjʺG/i`4:P@P*RɊWy"tyE>UzDwGa{7<4|/շDx5=w__˫3u[ H;edwډz`7kn4kV I ͦ' RCxIJn/:!§P_;xwpǵ.E<Ʌ~mBV"ǃ?P rj"Z@_}Gzm kF] UYAe Pa"]CP%6Mi*-}6JKS0ǴfQC̀p`|Ss}EFc-حGϠ1z eUaR쮳aZүC!WDu5P(i1YM0^|mD VD?B*ΜB[:Cm92X@= !G CxL'O37߯5ND@[T ͥz{}8(Id$ 0oAf4Zia5yٲ'R6py[(9#㭟G&LAFa&[Gq߯cϷ6#.X)H!vIoj<ºO#ddvc."ܮԱ"}#Eej @``E{,! 7COXzf>v "N NG?oOmH'WkZJ'`ի<*"Mob0Y[sX0k f1Y&1k@}͢(UGAEüfy@Zdt .,:jCEBvkzB s6 NաIhੱS,y@2x,ۜ"$h:his߉zm׹fv_*;$yFV_}O~EMבŌ-22L5#r:Pq@/Ωo=!#Jo^}D]c0+P4X iYȧ Bķq&tYΎyjI!,v8 2+H!jDz6O38r߻l1rA2j||xi$*zm138NB ,M i"EW{xj6V-^Sh 2z8w?{M`a'Cqlc&pXt"D&BvCaC)Sc n*yFظ'G<ʒ*>'kTJycd 2X0m iXMz-3^6m,A [%˥YT+k'FfVI%KtϪU*{#|_P"eg kؑzǤZj 1L< =Du"ھjepE#(<Ũ V,Ȭ)tXgW[N= րFťs*)h)ԛ `aұ1cѓgu%UPܻ""&٥ w3̓-O.t# E,eKmh42rڏjjUYk uQ#M4yȭ 1䵫t/<8W ~Ŋ\403ڙT@ЩڬB9@ D׵19H- A'oAM"#h̙ŅʨFQ@ќTHD7 nUƎ)ZLRS:9ya'ųGg&Δ9jAU R: !<-*r9YC{:JQqhQep&YWUzu]r@' !8LpCU31ĢP9#&ڤ[3QI#EULW1AܗN5CT≼" dGUs RJA~2@f*6@ 9|Ӱe %,\^ okJ.A^m]5򅃝MnuS1$$Ψ p&3.D-^3\EU n2dէeOEoViQx30s&b IM#/P}œA-zLe$_0ᯩ5K"e"#l)jUFrU㠛WBI dQ86ȲM,,_1T`9[n^EedzZ^s)sϽ "RwmGsePKa21)K=# صڅ@AxQѯSs|%m+Ʋ׵hH HR5+<!F eiMP8*bUJ̸dLPDJBFb$ O ,kocUgN$zG6H G*ZP=ca ZǕ _, !sL3ex&f"I*(zmb#=ߤ4c}}jpA *z3L,U ^5`'ӧ{Ϝ۹;L2[T!g(EK֍t8ߗL0ѩE%vrθS #;[2&NѼod;U6l9JskjմU9&GK\K|WEC^ȥ.-GgWPWKV2\<:o婱k%1P߾jѓ[BɤU?2"8M]&څ@+Z f-5UDERcN)9 -_aXC{o&n:e4s9Dmͩ =Sq"jY%G~)m|z=OZϞ<oqZmhx01lN's w,Z)4i()i#FmfnA$#pb;! HR@#'Y{* 1"`OfΌw@}TG;8WZg'EDdU(Z\#3rrQcku|qi2U2@+tGaY[gO1Mi"WU_o^\{I8&wz۬$6B^6mZe8z5Q)X;E! ʖczEjhNwb)j(tG(ZD)`šjn-0`ʥaȻ]ULjqh^|l~^K%\s}EkeBG\E-äq ՠ*i^Eܣd:v8GSEW]Zl)Z4P=e 2R^< g;L7JG-=д pj!<1=1_t2R=Lj_\yb>QbD+ jS5_kVpErxeDQ;Gb).pTCZ(FJꇄ`Y"L9{r[lUTh8gs!31ƫ!ZC "ADEcPJ8b}bp2Z~)nz%q)ALl9"LnYE 8rQ(1!jPUŜW f8#&Fe@ cU[luVƚޅzB[O+Ar"R43e("*Byٸq}6ӛp#ܴ/Y'oy-bkp2Q_-u<5팪L/cFQ 0FeDU˃3rѲ 7œɵduk Op K}}>3BPT pveL@37V Of}#jlE2AALdUg{2I3R$41׎Ɍ'[n[! NsĴЏ3rnԓ^/P{o}H~?~ ۯJGɉ-.]f|!ѱ+ eA@? rUNEhH9Q'euJE'",.\Jx@1~)PIy@cgXf8Wnc=j&ZD 1ATpb 9V/S!"DQEQSc! ԈigW;3A`Äj^jb dCeMNYcC N; J GIt'U|銑?pW'O򒭛֎p-E`e!.-f.۷h܊RzA[lr*w92%ьG2GT܉\:t/H\TWrxp p KQϲe62!f+Pm1ZrO#pDֵQF-.hyvA)%RTT_oz]wUUT's2QFshq`H< v~辽O\wHtKSjx1J!J PqBzVEM)lKFZ1Ji[Xa4we^Ts(f!sgTbNoeg2yާN?dU㧻 AOJ̔; !B,CBIU*HPQ5*;-:>A#sm8mьFcnTȁ9|*L1/ WdK *`0[|D%ĈUeTtFf(M6c"9J"]XG QJD^^dJ60A!"=*$^:QِYYr:b9Hԩ P[_ݠ3hwE7z(|m_|ݏ%q`R ()B)){`QE=SuEя ZF¡ڟg{f -\5aΧ28^t2T/IJե9PuMrLgG(EaR-&q辈 e>|`TP=Q(M#RLB!E""X?1*:e녅t<^:y;ݟ5833s|>kZo8u{tm1D2H'R CB @QR hP"!Jcx&Op1GAfÝgr9Y2Drh$RI"U`-BQ ҘCq[Wr ML{̰x"g79_P" EZyn:Q!Wmib_nrߎ Ȇ[#tD2.4?YumYoY њ82Yt_'W?V=[䌕-U^N+69ץknǺ>8 Zx JAiE +'j%)L\/bI7+:9.NNT~~QtL9G.h p ùN&82@R;2AׯyiUqi;#~^)EԨ(;U]EWmU&e9ƨD;Jr*uGx xݶ5әn #ot̑CgǞ=yljƯ/>r-_|5щjγs2STU({rBT6qUFrk!3DŽ2"*<'.%Ȋ&=8-(J%@LBT=yfREb1X2sDFV)0fO+`eBJTTZT"9"f(85CcC i ,NALr:ScosV IU7@TTqL9i7]Oʏtw‰~+|SgO}Б_ɫMĨ}Qcse嚊Rĸ/,~`U?ljx Alo.VuX~7⥢ e^nZv uđp f '9U{c X춎FR;QKAGV>̉2S=uETRp/"LYTUDJ)Ny,s#WAt'E_y+{n0Wl|t?^w|#<5[qr}5[U?ݽ2nܴplq'<>;b@ "v+㙖 #ZIJBRR6Ș( PSjR 5():`? ap KwSy*/+EUU"H "*cYc ԧ^ >B-j0!F=K$( VDhybui5G>ougdqѣgE#Aw "#RdZ7M.Z("DwYKj3iZ$b8r*` hTEeV1ڶ)2HJzLBg+}e[gSG:f{99v6lWיc"8$e\uJB6%JB'Egf1疤bDYHsYV@;3_S5WEFΒD @D1*L1Ęf6@f4̳c-BQOM95Q& k"*2Ǥ(*R"Z dB54_S9L~:eڤxQ,(].l{θ|{ΫrhemgЩӽ{fƿ~ʨշtWݠAf,[=G3==[`mvhJKw󎆫娬zA*Z| ˞^؇Mae ({5\MK)ÈC{=7 zJ3u[2W-6aAo9>U-"ȲC-cA+7nצ:qW|G=sz]c5\9ԡ?Y|;n:{|.پn{O P1٢T@B_ 1$y"!/C))1TR D!B,riIZCZ-DM؀B*S&7t#!HTHs}@4foL̜b5jZDTYEAZFUSEX"z^oXtxh\#dTjdi @ˏ뜥z*32NJBC8OwK-Zyou;}w߻߶?-Elڛy;) sˑw͸@(\ 9&oggch旼ЋH(_=}k:+e '*~yۂ4$t4{2T jpVF#kaRx/OE j'h?*"h_DUGۮdNGyyhE6'K]^NpF-Jx_?&]gV=0=5?-z̾YnD@NA ʘ2@M 5 2#do \ # ];w*j#|d*b D)(Aj!"6(@%\,D=8c*g9g"hLc; 1=1;;UKpGAʓMi@ nn=spELZ7xιs(='\ǖlzk/:tb{iSDoqG9}y^ k'7{x6yۯWMGO$z*8s3j -%گU7eZn۲\hfuJVy>s>=0k^YZp?u2A~Dfj *RA_Rmlc퓏ֶvwQ*G"Rg`L"@ `3uRKVΓm~2J׎[(d%eƭ6Rv[=}lkw[ÿWϝ>g/ߵw?_趯7^БW\m٫v<{A+SB}1'A h['$Q*3"fDբD0ٌZL3AӓH8RBY7 b9bD250aV'O <]ֶ>y1W]t΍N>)1S)vK A M ZU]'ʈB$"~#ЋYP Q(QT  1J "FފEDI* ɀT RRQPQgV+5RKĠF(A5"HhuBzuX xs3SKɫ04Ϧ5DO]]WÔ P%+{",F宊B"q"ۺ6;p뷍NSMO\9ᒕǏNͪ}Ǐg9q7喿.{ye|ϼ捏g&wlV*ϔ ig|Gէ:,jUӘQ/+)ǯW5ddp KA/4(~KKЋ:쒞͝b!zF 5]%'v*@mRV6TbPezAU9N2;e?J/Gfo;y~ˎMu[|쾣*ؓ'ڪԟ:}Νwh4ګ&vnm99fET謹J)+11;k|[!QbjTrVdSxXYZS1-Y4DYz+EZrTW7ڤcl.ߜ>gN_rw>|m'.f|デʋ7W0w"|P{"ʎļ Wom}fy[7/GȘso!Vl m2G#jV X"Ra|s%J bjkX')zPuREESJ釂eF}Z# TԓQ9XԸ)mޭm;xc"nKAcrӹhӖf蜌iN&N_8;uhr;^wɚVu9̯vC}6gy}u'b v &Ĩe:ݘٔ`! *6v4 RQUҜr;( TDž1*1u 4Dd!RoVccNR%}rAeYz٭\5AUFyFpnO +,XX7ښx|b[m-UkĈ\wES>vtO?pKOmBq?MOL'W]\5ϟʺ=ș BUQ?c)=3QڽLT4'\4WP{w瞺c;[n37S?>Uk6{Ƙ {Osf-:ٰV\a"Rj/@QF!*JQy$L EL%cIB[N,jV&N4QB5e7 LLαRnD9"ABKXZJ@"uAp13[GU @f,0ܵ3p׊k L n3t>ҒkBwՁ;Ws׭>{᏿83>.ٹBg8p kW9mbbݵsK^O_Zph^wMc"*RJI}DeR@?j7h)) ao i1X $ךEËp ?+"7/fahYUX%b6]_Dw o,UUj͠ <ڌnF3mn7>cy6f?sO뾼E;6z0cc~Wy֥~q?lџ]VdCĚUX219!AEDAT8P抁7&DAi$9U+݌1ri(ZDt iүqm0;f T'Zolz*c@Q5J-cUJ|BOmng!Pl*D&EXD ذEܥbk5~PO3D{+wfڤW<=knk7Gg;q }Hz|&Cm[6<-[F/l=رO>Ϡ/{W2G dLd! 2&J9M5³U]j^ O8Ik^5<^#N Ry j**j]sK68jR4b62peAFgZ6kƲk{z?"n:oϩ͛|\f~c=''o>Iꮼhݟ{-W9|=m]7\6Vp=;3Ý`je6liۂiTQ*JJJ/z!6lڋ6_J ~ r@a#wUDըey 1 , GL^G䈘L#c4"'M $Cz69*ЛZh -29@@Yh29 < HxFO1}઼^yr䘌Xn<ۺΕJk'W|}v߱qOv7m^}W߼Ϳo^w]|Wgݷw~|evֿٖW̻|@/j' g(FvuTʹKlV),ʠ^,?/J5\5\_#Ҫblg0.L`t40P"E!|ب,/ 5 e4#ʘWēKVLaEuekЅRs|}{?Ӊݠ -aρ~-[yGo;w]~͛>뛷/?yףSSg w~a*]O:/Nw2dQP;(;qB?hTˮF?#_"c8S reU*8لBCR`K!" .˨YI_"]'c2L(Y41 T'{ۖx,2+4}!\G c|Ko̚K]6Eke4"d ۺi<ۼGG+&V9vbES-ڳL(Xw{ه)AXq4wC'?2K$eu2*+GhV7}CE^@=8&_&/*养eiz\ĄŐX` 劉k뫳^-\pgY.j6tنܪՑ.QOMʨ%?hQS{zݜ=3%cj9f}YT#2gMϾ}fbԱapcc7|K}36'YLJ:7^vM/۶uz zTojNU"wԼ;3)MLDI-D{Dp2G7j"$ ǀFMXYQ (b<'VTA$L.Nc6*398ظ"ɱc(BLp̠՝+ `RIhMa̾ O!G'\Fc8V6Pո2&p>Ћm}-oWl|x<1ܣ@X}͏;qOUIAby6f R?nY=H`D%&d^%NTh/Z9ⶭ )uuk2w=oڳOkW??{k^©N΁\;7եgNr:rd;:O jl!*qƖ[HVjy0،$U{[(JBY@QD1TaJIfױ•*B+7L䙭(Z F-QS K:3C+Mڜ{x UćjV.*4T(q]EB.56mպȘU7ZCg>su3?/.۱?>}qG9}xUtɷun?*I5x(H:F3tm; ` /$H:Zi["z n\el.b2 azMi˙g8ڰ"y;"w}ukhfI̎함PeUm?#?xEYS\im͖/?6k N_]gOx C=!ЅA!JVzG̦Č圡( r#X_̊DU(ٱP9F*^fZ4i L朁Dn4jeѫII0(UFTJ1 e^hQJ+iVz!<`apIw{Ь2 MeOC5=qy]^kVsڕѨ~.||Wȸ-y՛ƻ굲΍_xZG[ E))3drlь әsj5U :մrjg fdL'`ʱ;e'6)5nE(Mxf:QP"BnoX{kn25Q?%kuZs];SO׭՗l=>JALΜ,4/F"d]%XQ~|Q9XO/܉P5')2FTAB%dQ͝!˜㔜0DDu RwШcԈ\VIY7 Ax]rĎn Dfjz.U*QUP}IU؆P6>uNUylS4 uoR@U82&2ܸUD[wlٓgţ979Qq'3lhm-OMdŧ߀P7k{>T2y7y K4ry p ?YZq5YҺ5`c cX"-A"բgD[ 60@e9A)) spx<Dc6Nm~~e_t:y"sZ{N,95l%ve!~Q>w]Vy>p]EbrJXQꠘ^;z9&HRBw,`thq I}:AʠeDD˨E)A2jHæyASsy(0%ګUn!RMNfMcff Ƥ0"ʈg%t "TZqҘaO#71 `(YD0b3MURQ[bDd S8dWGuݣt"m7mkWoR!OЋ+[ fn<͕R,-DsU eZFZjhX/b@6\SP ޻Jak}{Suo===/RHeR2%2cGW^F1`C@'08'@^b  X)[)Q$Mߜgꜽ>N{zE5u:[Z:?{ě-)+aO 9+,W,O2pkwG EaS5:\\wHE77uffD*p1 W܏'~~}? o[(}dQv$!Q-oXӤUJUx=icFTU1XꚌ$IM9HHC9q;:4D)LDסkb,-tc[4]S|佪 C}ha7V=Y<t~nL;:^e5CcԪ]y\NOz8MQ{gNmyO_/}?W9c?_~x{3_r⚃ɞ}fR ͜Hg. +"QGfڬbu*O8x1X!OH$ :$05oU08ƂKGil`],M4$RDq UmOrlǮ![03d|ĔPR^\{k1rhnvrre£U[Ŝ-i"7.);{cOܽ~M??S _y7mcE/Kqv^޼Ms,[ӚU}KW*3GXΫ806+pQpe:ԡK~ y%äpD\ E%C>]3M h:N-H0ءu+%!M79Bx]3g_nz{&H-'W>@ aBDU$9wsU)rBaS:bl4r_|v6/}mϬ_|/=<OW?<{^^Mu&|`&@zs CGdC0ss#&^dm(D&48 !el\Ce/0 %BN(()^=KCMްH1 Lfurz401O+YHJm3-lqN_'-W|k3~NEco]M{qn+ō^|O*?OcU^9}%8P+?(Τ 3Ld6;Q1_Tn$9%5VJ\\W$Ǻ5EWQ=͞ +/P:ԡ~mH_&cvIhˮ+N,U܅Y f9bӼ3`DNHz|a,5EۨV$⢸%:%ื'{O?֋#o}wbmz/UMEnA>T]2j[$JjXgkϘﳱ2Zbl},uf7uꫵxd^"uւj 4WnXԬ4g j8Wc;ho9f5B )SD ̹C"Yz/?{||⻿_8܇5pbTףOP̀H#ƪdY?@RX?y1%FW`҈\&φmxd ?߹pX07J>AÍ:ԡuowxc 6-@f[۱4%v5Jg)Jpe~qÏy"Պl<@*I7zcS6UO&:X0tFo :he|l45I;Cu2n6Z /]ո+_SOMU&DLж\$cwb5@!qv {m02%À6:2ɬG]'qwEܺgv*O'p5ԖŰ.\OAHdZ;B:`C< vVnK/|@Ͳk# ];@I_(0'^|JĽ)3K^|>uIg$@BqJ:۝>26Tdooxq[CɸVGWD\VgIK b`}<+=c=}c<ԡu_zχ{H M0gv#] J !Z&p/OKZwQJPX__VɌ&Pi'"˹:mQ. 8p9ZY`[Gkq]4eEue0%18R elVVC?/OÊ%9|EGNݚ̺84;D4ɔ+CZ/4vduĤa>#l?ȈB@)"aQ^[aRx5۟V JH4&70gOM>s|Rqt'Goy|[gORȆlN#mm.[+^[?m( 5]ݐLMqښpOvwL5-vx~;ARb:ԡON?xpLnXFvvne, 9A"3q{^dUɥۛzJ͉)%l1|J*際R/lƲO?/:PF;'οCO=:N<n].7FIZQ%Z)VX\vt CI*GgH@BS ^~U>ʧ>઩5kUb 8T4ONhMaG-J;X! ) Ff8fPE)X۾ʁx y2_|t:trNO@#JLM;K=vVX*Զ.2YD^˪[Zs{+oBbՉkZ;SҶbmтa"B;Bgſhw,{m=C(CP&[g%P3pG ]2IjKv "w+JXOdц@NQ0C/9$r[3$C)P J>Knn:ԜrRrQ.C5ıhXwPסuo[W`p"n튵btpA3Oɽ%$E4Jom2g3*|;3ܯ{믟/Ѧ<6›+9 nL_~RV$QU7JL;m+ ͔]5f͋!:})ä 811s4DMlA"U(HD.Jw-ϧ5:)BDͅ Ӭ8)5qIZ uh%#!G2@qqRY%wz%Si߸ULBg%Vg/_UujT(3xK9Ju?y}s>svBh@?>+t=Fa3moߩLF4r:(nrR (dc&FPQjdapONVa#5nz 4" _4즤0UxuD"c]EK,$e!ʤz)>aO k99jy~q*y?šxV[wkϾ!`p6gxI1p]mPmrag4ʈw57ޒzS5_BU7Ww|(<ԡ=p_\MV5m;li{uIaIߗS䱲'$/D):$KTe0m 8!JGU>~ǯ'Ӹ^) y89 P:+BkB9DWP2ƯflE]m҅"#Iˆ]¨mmE®_Da#9zg=љ9+캉M)ٜH8wl 4vfWvD#%jD+B6kf99~"0h{-ݹR-Bgwi v;yfx-2DGHdF\q1hpLȵ+Jlf;Fjf\HZ JPt%c~^%q R_cP:Է%q@M`asF-!g2C2߉Zޝ}پ怵{hOY5@¦[YL2'VpY8T,gi Inɱ#P4\*G9mǤ89PuK"0JӖ-L.?6kWƾ)w%CkS?]~fO$6#ݓ5e3*d]rBdXw%c,Us=7USX78\cH{{P:7u6r;7=m؏;DH^d #=giq#\ '2'0¶la* u[@a-A3&xuL%5@S2 4۔:V(&ST F5TBPڰKUXP|>{' 0j/8il]BG÷@qA$PTdapwp!HAF9! j#||K&ώh=߄ { aItnaI x>ZUWӿZqM-˜ _y|+Қ[lSqtzM J}q6I0Jmz|.AW*OVMq-3< V0G5 tK[OufWC@b*yiȥR6-v10D0:%:s'6V۫4&Pݍ,+z7>(cO*4:np06ad2gZ%d.TJQ-U]cYBYePe1VGH#Rn #QŔ"9"J9%+1Wnr2b8"njhF&!lvRf7Uɗ(~`m`aFZ3 i@C6K\M\9 4Fh?{Ȁ"3R@SYt| std93^bXbIbPS꓍UCfT`$ bԂaְ &c߀GZNuD 7VÈj;Gk+>~CۓU-w?U -A%~%gUn (WX|{Bҋ1'C3 ӓ>{7zK[JahV(i)[БFa[ĆWM֩ɳ l"-=:\jtbOd"'$2| v2#3LXcS]i 0B>ݖiPHhQ?uͰ)>/TY <Ў In r]gU`"Pt>޽s38GxMUucrcUbw0oo$}I]eUnB]Kcf0ٞQM|^̾WռyI7CPFpuՕGYN9K+~4*Fsq'Hq(]gC=%+mQ2i&P֙ks/~ڙ$K qY|, $כyݓ5r.y)pc0a%N\u¶(gPk#3-H(G^ !8!)֦;98%Tx%2kUq.Đ2 R RsE˔X-\2El6 8gfShf03pgke6PO&f6Ktc^!'W20ǴW}Koe6k= %nb`o3ם^ OVvJч*֯_QKLJ+ml\/*ޗ`OyCuC};ǏmiZzkuů>Xd.3 )X`hR̕` N磟d{VxmA'}3p1ʁaܗ8}(%&:GxXā1e"᎞X(`HD TJSV :d""m8VTHYqLY=)Om2!'flqvWf&9Ma@X4p:jh5>lkѐʝ,%2'qXpͬHKE?pt(`WaUz!`))'Yvn#WQ{l%BHl2mEpZD] JP6M {hDM؄k-y2 wk'q106\09yj}l`hW̒=m@$vWX. q֕i@ T˿5|~m*!98t3T>ΊoG t|磇4~X}w-F(i)Z}njk4d^r%0^K'o|6uo:t11u&cME`T2ZL==$ c7 1m1 ]rcJ pq?g39>gOP#Ew,pXIϡdJV]έd/'epU0518*0kYGǥ BVd2 -iJas#'tII@ՠMxR,8:|Gu4 Ɠ@ 38C9~ήy/cKb$F0ąj^_ cϟfma523C9ZOՀ픝m2#vL47nKVfUMŦT ] >}K3YufUuyH Ez'ʅ}Q-[|}-7O+P7Ro믍i7y־Sbf#ş\sfBZt5U U*NշmbИ6]XZ:ic~Ὣq L(wWTGכwWX3p635Pv 9P0 G` SZRS.LɰF10[dL :u䄜YU~5WF)*)]Ɯqxfb@*;9~X:Ej`,k8nZ7_9\w_vaLl7^:<*26O+cd Xw@$q|7O-Ԉ6z)x)`bxPj*jtL"Dp%C/}%<뺮CKWuqWG%QZzKP:7:#0߄ӝC5;]>4z2ډ,?7e,IfUN{Km )Rqg3| g;cQ)"Uvhw{|h%flO0V5$%Cz"x*8V!L9ݨQ0@?`8+!5&kpGpGjE*dKfi߉m- 7yP{}nқm #H-mҧޘ79SJ۟bkѻ z5OĩLVCu~= ֿu*1*rZ% X9czOI/F=[? Itf;ݰ栛Z%bSh P&ؠ +CŸ8&h?'ć:7pt{yq HǍ>ȫ݇%ƚD?K)m 1E?,n+:hS8[f}PU\_I9[%=Gu6 _;dk/{sR\Ru/DJơhSeuu p6"[SYp^ 57 o/)a[ 7iπ. XfP@fƱHEQPeD!gVŕpHZWDmt@$e!шmΓ(EDbisut"ͅj %Epbmʯr˦/ %z/00V8Q\3dGv[>)gۺv775.RFhv]>P->KT'Mg`];?[aeV"n?q?ɗf׊E#48 ujt@:ё7E].;v o]J@&h֢QMU4P8wg+s3/e7 l}櫫FCPߴKUߦA>dS/`6[Ԛ&wAqiK]4^iyz{6Na)Iݻ.S ֝-x* 7.:ѥa-#Ͼt']#N&k$U+ Db#4kb[}+_. 6~r:)OH&=I͌ Dl+FkبD05K)qj;Ike}(Ky}V|x6D9Mˌ;{]>}|q8qZR`xK?3XajAE MF FͳEFZq3dnT)Y&ZP$,k-yI%cK0 Zɚ's,F#1xuC}sTg?>j0HC1.+tY&o4{IVHa @>D(bC 'p.a0Sq[Ez0xN\?uǧ?ۗԇe' L$91 q`K9#Ħ E@ͻD'!Åc o.Dkuv  a[M׊Aʠ0DlI]^&yjyAɈaqE9} ӂS,sm?vKsNx&de/3gBWx3Jލ~ {N4r4rBݩ#_ڛ"hRfA6a$sjq=pd aw|cVF*{&6e7B$kufFߛCܧ_}1c3in$:ԡÏo*:ZFWYJ<Ɩ6C6Υiߐ@Ky*`Xe.ƶ*mGUVc.2_}n'Ér[u)D;KӞ3;-\7p@j]0%'5O8E9HvXI4J!!Hotdc .U 27+x \$B obfrfw _'#L%F*P8ٶG/>v>N'0ϖݳQ{od$VKoJJ/?GfOv^waLg3zxHEX9(fJ~QCM.Xvj G5c .Tn^ #3.q/s ʉĞ_tuC[l2eW]4p&аdZ -,(3Bŝy2p9dyVzAA*Q2Pb;}z$-R:g[;\lOYzUǣ{)Ϫ$AN(9Ot7WE]\L9]` cFaQ,22[Z+er) AkpdԖ Soa r}tAa}5kڈH* {"6xn7b{eWJ;^. IQ@7ӣ~?+˖L|ǪѷU:;>uٸNUǙmr]c67Q5!quulr+,XWK* Eb͖LÐ?\]\1z uC}VrR\zͿ[C^b(vE:-{\Ҕ~9HtMsKkfwr/nCHi*@G퀎 Kk8:tSo~ Mz\:+6 HX%c6HSb\ u/2rl>Y)j!.)`>љ$a`mֳˮ1LH]Q<7#'VvMZ+$'5F{wqZ Qt Բ!eLROJk}S__S1Nʐ?|W-p/Q1'-RX%oQUb lJ`LTu Erh۫ʔ3;cvzè+WY㪿E*CPTmw1ECbeKk@ Efl3Ĝ$ou-z6H'sN G{]wP>lmXiV?[zPkק[=p;2'}r`> !fPl+rbSEֆ.RqZ &O2;^.$c&]_sn֌ b^MՅ\u oo-Q*RámC9R4:>!-6r5+Ȏݩ0"]fҕDE2625xOwܶ ܹ}_~|?1?/{G!}??|sotqg={3Q]lJa'x;lmNdJ>hr8-?ْ`dds"3yf 8%[G@uxćC{uCW~ev ?]VܙO.>Hh8Z4[p=l̯ȩcmP`,~>x3zlu^?ioGO<`s#yg|ɳ:lC }(an-!p >TGͶ(5biI4":C#m2[D4_%*ooQD2rGqweU.DQ󑟜l"k(w?M]99"GkٲKf}j&jStܠ0ǝtZsqdjX2A#>Io}x|O3~KGKx?W<}Yģ*Tw/=~xSDvθʼ{`.Y @uUc-qYːtBxf'WR5TJt~>Sw}w_heo]x۪plIPdPI荝!5lq7,1 8$PBljG]` /ТuĕCaFԢmXP09eqlg֪N{'fu.^24f|{Cf0^* /MΫ]{J+bGk I(¬L[.Vç?|?x~gQ\֗:j[5:FtlKZeJ:blH]yCl.UrT4O =֜ P8ChILHkIQuo!W>W &'eFax:Vn-{neN< >-R"2A&bJ6NtuպUvV^k?r7_//ϋ?¿T_ē2H08\bJ)y(E"bO%:8#\x u(\pJ ` pj;邠ĄIUX$OF"ܫڤ2-{4NyMyI]3ʙ3e\ˣ5.b9ixPCl`1ƫ+p; M0lhsNzyrb,?~ 'wK/|k7oЦ(f#p2.ߌ> Cm.νO79$c feѨO#QhmїLp\ԌF^ݣ<:ԯ 87I݈xxr۵X^% Qג"v A$NʳwA |m*.F=q>O^|ܧ?O>uo˗g^>ŷx+,42h$/ghԯҨ ;.u 7z>X Y{|׳{d>E???0x{R/_տrqfW"oVn}"gWWNM v&0ʰN쒵XgM$ɪ3=Ƚr@P (6!@@BhH9Lo=5}zLh3:#5#hM HЀ( jˤ**{{#"3j%Oanf{ɨ=a'jzčAuM&^}:^:HqѪq%7n9o[9hJE)"`MFdqLl TWupu#Qi54&JQNgƑ(5q u]h]jT*np 3{z=D6tm2meeesi8Wmy<42Mfk O엇?~OwSSc^=ϲБdC2JI),}Fצ^p|ɚ+lA &1(.5c!*'R]8VbPIr"P}y V f@ՌSZi) DQ dX*{ Puz.(9*uABZјBaEr৯bϽ Sw|_={g|,"JE7ZML)Zho;/:,5ZawE>FELqLj X+{MK/Jn^jTu"R/EPEF[]9(n X Y!jb~BT" e0nM+sh*U෾ub埾r6'S'{{oѷN8.n~q{{p, i41Cf,}kYVo  2F!Qհ( (C7DjMKB(E / J)0<.ꠥkPU` V"P#r tý'6+`Ͱ| pFHrh> J֣2A[N_KNTdtY-OL9{~mg~`MC={vl{uo8tϡS/iMm?2ⵐL۽@uZ9xUNHNTML0u:\zãu=#ƅp\תFS!.<&J k¤H"CQ^x 쎇hu'Q"P623Z ^xnb{S_ے4=ѹ _~`} [¾흣ϻrjgܿ{vqޟq3ݒ -KE8,WI؄D!kc-ș`l`BF̮4Ieȉ8М)#b"˔1&ĨD8YE焾aJU  ;)5BKC |t٢RjZy IyR"ϲA{JE* u%64V,HfJ ]ç -޻V;yjrKߞ c/}mS dm{ v}E:ve'+nӞRP zNKжcBn0sf)Hf3WL rx135G1QjTGEOkeR" 1^DL}n`UE6ix4[K56X=2I'UѶUmK^¢Yt]]K?-诼1W_~s;N/[zwQ1@1&LYj0jc'_Vjo,ۏ6HPX1514J T0!K?JZ"ItT:!Uy 쥫#[ֺ M8KmŽqovkkVziߝ ~/Kz?}ffҹw~䷶W_xϟ}ss <~aa3w~+k3/{ĕ[+>>|hk=XΫMq,@W/`WRnp2opCsn:kǡi̚Hvmٰ-oDrjT>/-xSPU׃2C@|Y-r _41+X_t] 5-{%5k+vLTuu?vy뱕#ܜ?lʎ W~rC:y t|fʓK*WD &cL<,y`V&RP/TP>iZC_4!2H (i鉄 z2jkRU)*T@Z;nJ6do*p;Ҡ^~GCgP4:jhkxȜ#cb\ջ̹Yu_s+4"1D +~-ox;w>ʉ'+;}+g㻍N{,S?fOW%eKTz]tړr]NurJ QZ5hZC|Vo]6QȳVbܰŀlݥε٩E ƶZMF# %aJȁ_9'sn9[_79_=gOlle<`櫶|s}{6Nvn 6nNYvֆg͉:\)hbdMP(RG, zW ZBi# T09( A%DpnоD+HP7x _pejuKш HԚ2V_jSNEQfL^Vs\}s3A5 `縝ScǗL|O/_+|LyWӓw_C^pB¡%'y۾OwLپf1ile⤟Rk E$yɥ@r(aޤ H j ~XS׃\f3BWըm5<{]JԘ+(11öTA|9 Qeؿ/۽su+9sg?ϟ]y'9C{+?}5?~햽5?z;ǖڃ 7ak`LDC^34w׍]4h() e`,+{$J(?>2[Qwz/Y!>1s{gzBXqw~ɕW>or->|w~} ?o-L=ph[v?|s綱ީVP/y'O}"8V~&T a!06\"k b (ixn 0N1aK\EjT>KrHMa/F^(ix|S}DDd|jh] eXh}LL r[&K>aL=qaeev-;͛-;w_zڔɟ~'ΣӖ7-[݇|b1sy˦s]sWwN/g%'9D(PAc Cn 1L2(cd _"U)(K0a=%$Uʘr F!!c aʘ>M+T0E֐ܬbH֨@W>A6GL@׀ ZB)%4Iۤ:`ETVdZ'aK38-8nE"a6Q5CwU0Q잰.liY?;߾tCG^+>#G=׏,?WEН_c?svbzĭۿY?y"rB~&IG{Ra$y2LfPYW]T?^gSQT}|Уp&|ClCUnU}nLDW#lt([k3n[.[WvyIqjkJ5K>u߾βxssc'<45m~=~W^;߿Ws&6{+?fzZtD"(5pal2;DzMwx޼}^֘є;6Yicն%tԺ!!#i6~9\~Y*:*2 F˔RRDjM-Tvo_}`SWU>GBQYꙇF5Q"7]%x8K7ȍ6jwjq Ic2QC"i8D+w"Cd̅d5tIHSmx,#?=~j7\փw諟>1;],g^vqkwrö~us_zx-GN/_~Wݲ8 /Ϲy r(Uȋ IKg qԃ.9E-aC|#TfC1bGyxe A¥I+&Iq֞\2;w[v1d"&PJ, KsQ$1F_TWhpdI* U/몞`Xt4}hH ug{ln{&o^}.e26&Ze۠u2BDPž: ;tiacx 57RmRPiMk>};վ? Q{AW@EV=X7#t ISR'ZYkTDPT -K-CLbLcI-2d@:]cE^e[v񼝞>~DoLϙnʼ|O_U5iNjCDS cWaB+C_{EsKK}W/}߾]ySC,v~fwMۊ{ ^/~'/,C mKMC̀a+YXdÔ%2\AFI#Eڈb|⩱GTqZuܾGtTngL eΝehR(#hI6~T ƒr:/d:,e MBڇAD\.i|{A+cXKi)6>1玜/N;ce}?7sm-)˧+ܱK ?vզvzgE/ ;*Y@a, += +YE S=R%yRǠe匜` D#ˆߘNƆɫ:A4wxQK4a(C|?cMpD /TȘlΌ 'N|(cΘ3z9=΢kY`n.%DhMJի׫|TEl'&_ZjkඡaȟƤevSlr3N\9[h/;G2n;5O٫ß?t/~-i_>y U4u2$1e=i%BܲL۴>A H&ZwE Gը kJ཈i b@) H> 4yD%ؠV P#D!"qJk gHQxe2D:fUX8ybDnuŊ|䅥w}^K/>U-WGN˘3Oݻ+vY˳Vt+Ja T85p Ss  JͬRPjt<y 4d}Q xAQ KV}@ }Iq<{$4(qW4[3*kyQ0 Y-T8))zGA΃š fa_Zj몓{ݻBۦ|9_Hk22־ݸ'n?zzĢۻO--wq_<֩3C^B(:`g&= *KR*' n^kIiqz2/nըFúфzY]%wMX5W3X\(V'(UMCKDΛڶ^obԱlvLfr.mDZ\ᾓ|_fuGN==~[>7|x@}myp27ww?S }*;|cy'dMO]rT#1DCM&"y;)Դ9M<FyZtE-Y-j'eR*k֠GP 3IBȪŗ*+m<}5U4hĠ.YC`P| kW3))t,ߘs?U)d9[*:>?G5P@U9Ut"BQBa F r&ׇ̜0cOP[հj˲^0()U0KQ :{&;- nMu6tyQjTzv)*)DYyu ֶW-L׫eq+^\ZM$mk2CRN,5Lm32mm ^u'ɜ?׏_㊻a~ugN?aUc=塉̼%G}oWWP5`-Hs %{_Bkp\4:Afɪ. JEFPB)AC.pNMu$ -0mitTL&eF)SK02ȠV*#%M2jөFr`>Wqs2f(㢚$i: 4giU3 !ho A0I@iaVeH*P'Joʬ1&莛7?zczDx͏{gq33 k ([1ەR  `r[^5j񪥨zTSA﵎aU0Keg ]=Hԑ?ӨF5q=UVϞiL % "|2KPˠema-=\6Eut3?6Ww +J/<mKf}twܴCzna|WW4uZld\9W't=N P ƒ! *:b6NT{Mf2IΑNPz-P)5X"c,SGc"rFF# (zPv, ,j@ad֪P74BI.΄]Dj{dI# ^ HL"jOkR+.Ku<ٴ{'BF9 )3Řl_;cr'} ]V[o'HTӒU&8b& ~%N\4-zU$sA)6gUjJe\L5Yv^jq@G5Q {!bZTu\DHED G?m(DkhSdXD1w23`lOϯn)9(N诿%Opu}gOͼg_|/XOtx'gWqVs`}: )09CS60kic*Vd  `Е2+>vȉ 3M\0eNQPP{iTJNK'ږLDԫRtCTAnLmVlc_jh aV(FAϨ$`@C%TD!7ZH_sZIU%4lu`5>;b[[{kO-/>sOߺ_ݼ+}^& Q-DJ-ɜ-QD) ,ZGj^wʯX.5 E uPTGG5Q}(qSpЗխd7\ѽ=<̋zU'|"!t0ͯ?V\I6Od{2|:̱Yt!,cHN]֯<>Oq"7ܸ%X-/7rcK+O:j-,,_xͭaý;3Q8q-K팭UA=2+o^bCc/(ӾJ)̰2`7-5:T&0 #1'm!L2r"[gDv*X8`t%^T &w$"0L L(psR@X4WFMx푄)SLʟtׄjGC{~3GN/ l;α ޻i'9[o:'bz#1` 29r3qF\D+NFNi7F s -ӀF$M0ѥU4aը]CLxTx(oTeL̐ Y*T NvWS!F׾ <1y@RxUUeYibX(س?+];).?tz_ɣGO\8WϖO_\"&yr8P ^)tg^㚚" b)%0> s25d,[6| ǭeき3J `A`bb SLJgf A!`5J;bԲfH9:(|oȡx Hi2$x_r ?S}`X`Ϥݷ'=OO?339v9>_Y9/~y?e|dˏߴ} }pTBbpiRnת@j(: Z 0VqSG6>EԾp4OjTzKK6 |X#AZ$^`چʉsTLc =\(Z 1R(q0Jn6͜]}ow+wwNZZZY.zٍ9;w ,͚1:v80J xL IUte˜%Z5șMwRCE'e"% BT2LJ8EPqdȘN@Dx >oSnd4w3 P)JT,#6 Mq5jdI5nese7Ԅk]١Sityx?TA UH̄_&!2; DD L!LUasbj<ꑖX XuixzO =%QjTzFkc7Gjngxxe!l0gѥh޸?0 JՐ*팗 acɉ)74nN5gjY@E1<斁*AYj3:6k*`vO_;yKqk 3AE#h!j@Ȳ!gU]| /_ V`= GTRXP NVc/h)`#T:@!%@C*7&E3O>‡kJ=hr/ūcfB뀞iF*)$jy{5~!fgoj[%UBC^BRz^WJv{󭗵rٻ}ey^; epCh28 k2ŷ&J_Cq $#kTճXjI{F zZ%}e0;ѐȬ`հЦEgH =55yh +T%MiՒ)I@40bH^Ny%-M͕Z=dꮔɕ-ͷO=1=ml-t̮AQg ;e'H63Z@'7% lH &Z8{N.xTa7go%3լGeC k >]Cf? > >~ՏTŀ={LÃ"t'4toT2,ARGf0SFXz0|w2uBup^!j"f"(y7>=z-Yʜ T཈&3wQcCJ+WWVldY}0J( tR*eXrd ԋ$EJ# `F hҳe)rCNW+`[ZV:m5/xhr@TǥʏUw[l"AJsbz!I0, )<Q%hZ:8DU4iD@_rNM+j0e&K Cm!N` y^/) 9:gK"2tdWMf⪘ *U>PhϤӤ4Pjߜk6*Ea hNۤ"UQ^T-mi(ԍM]H2FuG:j^99sqv CaF'TpިF)ԳC^&* ȕy g4tEș@)R_PTi"cNBW{BPhe&ːqpR36 .Rj,["Ctp^J $xm8u" AFVz@L>3 J@FܱX. :tz"VIY QX9b@-J,qaX(꠬*> DPD0Qf9%(K) mX$hCčfU/yl&5w5CפUf\CBɲeQcߙ5`F?W4Zh#4 3j-~QjT;ٍ<ϯm>c ݲw9Ȃ:L6VPuj)dc^Jt˸. UK19ձl-c X6=4ڲ*\kvjT*I%Udɖe˸6ؘ4~8AyK_ƣ#!$<0&{BH,YT*uշ9{5{޺J0gZ=>{o~U\p ^;^scyE}{2gJD (0d(%«{Q4"R (aDC&1}ì@`(wMm6SATŦ rDR&M)QE ]6G׹&c [ .@?̅Te 3r/S@*=J\Ayu&;:PlYetNϪG*m6zg g5l4WƝw`h|}x1%&4,AS0_Z;"5 Z*c~MBd{zAÒ,ʹLSb͈D+;t0lm%D,14d;7|9D 0U6:ɅA04 "/ 38x3XiiC 15M 4 «Qi0@5d"*G3c -aoL$Aͱ[9DUNJ)%͋jH @+ 1Q=RQ xi#$ G9jYW5ҫ<6mK x('Ef„ف`Zxqh#qoZ5UeA] au 5q$#EWA/b.P>-S8`+_UJXB2}Ү~+ 4&-$]eiܪ;0Ɖ "uYT"=OU]Zz q cYT z\}qˋ̚E-5dܿX8w LtZhO3eD(Dr@$ CsVf]d9 Bspǭ5mv)B* CUjJ V[d˦$Kb%yS$mL3ń_N#hU?]>`޷lUw2T%pW,Y&%bP;e:Ё2-FuOb=lG&[C|QOTj/Dո5o|Яc W^O^Ħj{UUUѺ)6EO]z+=k=zMXk5YXvf:f"`ʨ̚ɆsJ_['e,^{GX,e(k$-6M#l֘64C‚̖fU^'3jYn2HS"+DET0Ș{U  紂(JT\̪$;Q ޜ 2 s][/H!Rr`&NPaTQr\%(TvOZ\ JhN(n4ƯjHALąs}QS7 9ok\7s/e Q2EB؝n곭0 Qj?Dq3#QvQINڲ-U[knz/u)kʮ~qM`5|U] nE$J:`8cc|"i^ !dLfL" ^E  %Q5L1 fCTsG@@dRM'NS%!̋DH&&ځ#60}&4B9-WR!'0@Kǁ8qMWacvN=N5!,XHUPCѯB$gDʈlnӣ FJ}i7៾f|;='k\w!4pŁz} }f4pUo–FJ'bLN{1ZL`lr'$ aH ʰE1fx_04YϜ暝 ɖVH7' ,$*ݑDċzBaYsq@ C),B4X&%̅Jh"eL@!^%0a `"-D ΠJ],HM5fUux Pa1oPWT-{dC&KJƢuȔ>!Qb5 )@sPKin=;|rsh*!XD}vf,n"_]%Ӱ%z>/:1e5q륆DҺ$6~@`F>`zFwz׆e+I 1hߎe::_8i1j`mnINC`-n. =۶LMOtj@Q*PQUדd.(lPr|!aj0 T`Tabj1Kk64I]! 4 G5W0O D@`Gdlp5*rT v`CտP @|Ȫq08XA% >HSCN`&zPV>-Vmſfdh0ZUis3 om S1{C=9Q>1#أq>.(TUiShCj C4]k\zɖc#4 SbI^4kdBO0,p2i(`) 4Cg{G &LgZS-li*έ:Cv\]&3)rǭz5ռ+<{Ƶ-炘Q8鹸2PXR)2i8d\*8@  NrQ &BDKedD05"Hs"`KLTҽჵ<_6U1W]S(JiVBT6$BC3HɤS[4LX*TNDzuOQ3T%pO =-<\kSKM^X҃nvOc_ {8=3cQ?KXЁ!ژ@qgp\׸xzz9ڧ jDĩ-$dUz)ٽWʉ|=灌y2[L6#3RP4mTJשdfmi]ӗOE` @P![08hI1-(CUUE5w Ti!>dLp5NMe+ʀa6YNyu2BbBPWS% OMM݀AZKZX33eDPR7lPRvVik\[\Jt$y<:Z( E4dLEUs)ԉ^iϡi@^{i;0˹vrN۝Sv23!/9>Od c/߻pk Դ0(DxBx/l3Mi8AWJ4F-'0xX1Q`s84L4Z66R$y[ZZelM~6S5ĥIuHuV$TxgKs%~m4O]oPE֨!ÚǕ dbrG4>KƵjI3i_ 5gzK)}ZQї%4(DY~QNz ź<`RNL/ᘇ׸Ak[ZQA}T,kZh-MddRĒcB8-,Khg$TQ4=Yt\!  b"@AW!*z+a"E!l0:f5%U.Hl^%U7 a ^%({xЩUfU""D'LeJ="bJ 7Rޮq`@BվAUʠ.uВ Pi0jVynVkP TQaFDյNǿmJ빆/SB Tw_?X&FLPxk#l4A^a>z]e'F޻;&Va~f{^\}NTjET3yK ,S^^AÙ!RfU?zʖF-[c b*d,jHՉ|IHCۇc3, ,a$?= Ȁ̠1/ᮓ) @=H 1&x'򂽆1a 0-9UHjZYB vQ>1qyl?(كH鷮0fJlҩ@k/FuTDa!RxJO^Ntg Y#kzBݶ}p@S J"t'0hXu\ bn,ɺI/QME]G#'K$J4~&{d<|޷ϯX/ys4_򱆈C+ JtȈA$9fiy IQ7yP„ִh*mC6G}=+iW4ъǢ\u 5q]isӟ3̺?p:z&CLkVL ^{[&![qPR퓜;9-[Zd-td1\ҘnjOd57]sc;ѵypahM|eUC|'FX.5;b&5 CErA ,uz`=r gIUhgL"CK L mAP%"R2{*r7pD2H@\z_a h$edd$\UOoԛ*cy$57jZ*IKjyy#jf#Te lbTA0w>2w@u{t"5ᗾw_ƕ'K#mGF%qG\KUK^t]Տ7ChdE/2 op:Փ<> Wqk\{ )F`#QZ6Xx͘2԰Wg^j 1avnl0 +] d@;]y|֌ekI[(zu|)JwjD!SF* i֐1qgP!tsu"V4&{ AEA!f*DW!EţIÉ(A48G{uu"^ E啯vn'LT+T iiTV?TM-$#L:3u%DH,BȖ+h_s% Bn+ݹݬ̸W{v>}0 (*cxGB &UF*XZf"&2L#MTD> ƬQVhC5Wu ` Pk`@(#n5)NAzg80XFSpKL N# wQr#$/5j>!Xؤjѥ!M?jm 4N7/y c\: QQ8#mkCHW̧3-{~M^qusٕ7ss 7ؽwהx8k@<  [Bݵ S^ZG%qE \9ml:qk\l@0eJ`e-¡\@ZꚓI5d2JQcL kGKD0d E*jx -cyEp,g$t5rր#hϤMϺAU~~/ ? FpN!s]Y{?}^'?1s|wj7F&?@ ˵QAlu$BT]£x!pAOni}ct5q=7Vx\/߂$%E;5aV<],vh7(3Qc iWbW~+aKY5?޼U|#_8t-h_?;毟j 5A֚FfD1.|EE; ` e el)DӎC!Zmд  ÍrpR̾* &VBhXDPWQ)c,{'Zx}=FTD*18QY*bšH"N,@QTK(tkR*C5TLt* S>@HZt]k=:syӁm_OmOF apl-BUEB&{-Q~ԉQQR>?J͞!1׸A4Ƣk G*5%j񖥨aZ z^D"l`A l6Nt~o:zk_=sm^@|[oO;vn$+zx`jA^ a.4R!3`F/ =VF-0 z II L tt(D:by21FUAbW-aLBKJTZ:Brv(eBDOo{K/U*DЪN1^*Z|}Қh`␻ذn]q1/7\7!;9U;ݵل~{0\Aʛ!qBG>{ZѾLC[>tU$ҳC$4 qk\cDDi_|x Ȥ,K+W zՎ(W,udB:\z931d~GeN{v]ˏmkfS%ŵ_c'^=n/ZCфRKUkGP_\4U4Paď"cs]&??׿Q'3;._=?7g^-K玟8^=plPIOpRE|`@_ORnע kWЮJi5aezן9{ӁmO_U;vtV>®?y+ůr{.m?P#__w&;;Y&%KLa3B( eh ah(z 0xSfa 7785q}sPY!T i&FD -#S/?~䁣s[vn+N.ꡧ<<ç9i{ˋ|aZ"50ƫ^-g0mr"Ϋd΋INCS zCbrbG@< 0n2 UE)L fKhjAPk9cQؒz!C-E+2RQ%E >5RP!Y\g3!Wʵ O}6N! DA׼$Au 1<*XW]D6{fX {g~S+kNۼ+_ۯ>߸gWZON[}䉅^]]#%K?Q,5=Y&渭c#/g M2X\ m` ;3]j\7 fԧjNX.3qɌNpyxU5 2ng ^>ozS>=޷wC |O_|G}7f{yb7louy5~՗[24c{}]ybA5q]Dy<a,RTm BƧ iӥtrigmS-~Ł_xdU7\G?+z٩ɉ ^~h#^W9ESfA+eb)Y6 6dV!X0QMIC_Ta1Ѡ Z3NmQ 2)PhXnkNrJh1S@A.XADl*]>2 1ܰ̆R0!XM`nAgT`N}S>IM r5w45a~rzrdS]|ppꛍ|vy}4c{{/o/~K5 iڟ~}2a( Je"w>!TXD\[:82jZchTo=(]FFnA٤LƔո5p=3 J ` 28zծj/`,M 9Qo?_BD7]?u3¿Uvx./Y݇f_>mO/ W-,asW77, ھO=b=G<<%Mk\72}%w eF΢U2CMCS )tnRoW'ymw><Ǘmԝg߼#oym7]u~8҅k/3s|OUI!" CTj."2̙ CTITByU/)DT5]Mp(٣IB?!╙vծH,YÙa6?Y!YPz"t(D#$9԰|0f JgA- yv%JxNg 6< P͝PɞHYDL }=~Hk芉"\#YTg̛uh2Z6);HܬF^ߦ6u;t'꽊/TCQfX&S;@ᙚRtErk9uyq1G]}㮣'kz­7]93;ٱ3kG}cvlgzL˯έ8xc/z /p>pXSXְ1p"&☼B ҈AW \{֤֛5dR W]rY =TBl&\JDE`C+e<%%/'DNѧiz#JhU]NڈD,g,~DU;k `I(؎;k̻7oӚ_3 [.m_˾sS=f2lA!,zMkh<}KE&>~b/ztOly-]v@b# 4LE+n: M;qGW"7Kk(kn`okc7i߶1⣫{+; -r !"-$^v^z= Wί<M ȧ|h#Z:J3Q`j :zX%1 hHm^l#NQ + lVZG0 5Eeo<)020*-;iLN,w.?V|.+koszͷ=tew|}1;N:b񶛧^,fW]2f9KL.}AT)Z[OjpF\Dx+ruzRhZbr>1q+n:ruE(6\ZcLp4O =]?] =>=~܉cO-,n=yU'.|^^n}o',a-OZ!ƶN,^)֥#E!JA$*>&0y/$$6wxɛ 0 cXbl|R䄂Yjl3y!,J>Z<^Pl6ixcpGT1mPat7DY2?GԩTSm5PI~8;WgÉ%5E8GemrLied`7.cWY[}+^}|ˌ}X*̡K2~=zlu3+v䜻7;D4[|;聧UK[^(&.ZjV m`U*3>+lE*ʉHPő3xh]Ik\@73׋&bózڡrb \8cR&+e13< ,ӯ|7O>ΟvӴ~gky:vvS߲z)96W,-b=-ם[XrK֊Շ;./}zW'!#DKxW@B_v?ĄP#3^"w=@Ȓ)* X(ԤBD>&*!Ylr Ȣ-N@&y ,2=1rq/R.ʥ#BMX*[Q@P2 f"⤨ {ZS+U\qؚ `9Q>^)/^DdؐM84*BND  Vuچ8bTg˷&Rw&TG _MoW g6qC9Oq=!7Ŵ*īs#{Nk&ʝ_D Q1QMijṲ0̰l2npܘ(cB(T={Ȯ©bp2B.^5pL,@9tEfQ3EEBj_c;m&(bP8nљ!:,ᜰI/@& R|BHNc1Ъؐx:H75QNi<\G&ݥW=t_ Is`}dO|3ŧ^w[}s?; xLkfuW=zxV۾t߱O?|cT69 >Jأ`4pKfdZ.Z6c7՟8ٮFcj\/qq"ArMR>?_.Rj|)@j.[Y}饏:!g~2=;3ܱpoSg;l>q־sǎ}[c{ӏֽꚜ^)D_L# PxѢ6Jd6*JV!¹+Y҈`y"4(LDI$+~MFI@_MbQ3B`DBPqvO 9Q@TVҸ?ՠb +W5J L;TTeuP^7j/*ԕ^5k?}Ԡ+XIIkf.KguGssG{ Ν;Z3mt|(4)̠23ب>YMxwG :lĢQa,WܿaCxA7/!5b+5>ABpR]Y22ÖP#73goa_oy#y랩kFnGOuE_yttlm]Z|~=vb]M8vwfQ/)S9f5wʈlf BS!p @IqEI'Ridilj›K 1$&G. ~!֨"eޣf-QYqnD (4$R;6?jIlqNXu%D6~5Q(ioɨh7}D\1c?HO\Wq~x7o>mTʀkvdZSG>n+:֖[kN|⁳qi3C596!/#t6bO? kDRBa?zx³lz|s)G =;y,mDk\/ov;+|m0iPÉ%ڴd {pv2'݋;|=w?sgGfr+wLXa/؛q3r^w-{'yoi&T0CDa%2N id0+,`$1w=4IrA@"k:jOW&H"x j-2IJ04.Y;}( (p('rcZ4܀( TP@!k ÕqS&P".Y$QL:]U$:8 Һhm?x6v;: k\׸)RҍBtx9yeN-&< m_=<ФIwBw{[yU;N-Y97Vm!MɩWN6QwPD>]oǾ!pe=`9薀NU z*,QBCA<0z>RRĶq RykZK$ ٤b%#)fWTERZ)%qTC*Z!#9 bC։!zuZL`%\6vY:C?Gk߸@w)g_:*|}w~UmXՇ(J TrIm5r(ݠA"F .>Fto=Էu|a =Fr"rR&7F"3磑.5q4Vu[Wk-p6\.t&S^ +n-n*=mE٥_65_{KGs[LJϭ*怇PP@{p/ eĔ՘l61s'BMNiQ1 W9|">G8Aj {DKχy(au/#`% 8|_WF'ўhX[CKVU4Š%zI..K4[LKz& H$Oa`* e*YLkY 1PLNjݪk^?|m+/`nT3=&ڱ%={5_;R3VME.1T}7!3'Jj9%#hb$uPх9`GQsCHc⟕55o.vNX+h XC[_=tydDī*6yHHY( @(,i`g > %YӨ&E)MװaUe`:nf NTT|j@1r4'vŖTM$%S9+ZZf_%0` 8R^~iF&hul8j>\vMwY/z[ݓַ':Ə㏟?'f6ٿ^2F8pW_R5Qjum.$ɪWռAyղ78'uƮ+ʰ~cB{X|5qk\_ uKPu/rDTL:aLdH?|g<>Sn}%]^t| gNv:0WdwO-%rKYC0))+ J@!Uh Eu f2'6r㤾 oADeS|E AHjiJ1 ! $:"L'TK) 2W#Wo/MkLu ^ۑтXnƵLUrj&,GGzfҭ.v姎._}O|{ݖ]gWΞX'۬4N,>ݿod]ߵSaxvND%^}ġP&lh>."hה02V:|$5qYp995PpIt ^?ŧ~ne2uT\Fp kp{=st7I2תXFDe9_?37X4Ɠ~?n>7h~֤AC3OqK`j ;nTu3A Lb: Y@L)F$24T`F Z (-f`P,sR Sq*o QPtX.3SL#0m]9{(lCj[:d 䶨\1?4}ܐج̹8_vWݰ6{[|u<}ѱsyc 5ק6[o#"Y"B8APj}E$ٙ!xb1έmz^kX=nrjUZ *$`mmR_Oda$"'{̅{ȱN|~t|O~~2\?3u7g1tuĒ3st+Egj汀D)LD0%*2U:Ĥa#S 3ԒV;5DeBlּ[|!Bt IM)Uy{82BY\ uZik_{ߕ]r ֣ʁ( jeOf*Bfƨf{"}x&o:1]$;ro?tv2ηvhp:}w;|}?>ȅK3b[C x6lpܙ;;ؠ(lx){;jYcZ._clص`qW,xÃ+NkUZի='t!M!- ŨbDMɃFi#ׄErG[s'yDNO?y>7.CSyۉNE4xEGJI"@5c(CTQB3>k%:) hxC0 V80LBX `bCHԜrXp(brlK4;*48b}G9N*qUpB 1TYT3-hD֢@ bChۙ 0i~Iȵgwٴ4d:hk$`kj9J.i۫`Mμ,olΫWA? 㗐5O~D}\wWM\ժVWz~+InVL\Y?E`"7 !)dۭmhcEYS 9if陭vqpo_ڔY3i HP4\grqM U:._d݃@A,SCiigV+ua%pͧy*Ljܟ: Ic (s9J2|퍭f@ɑI$k8-co~>QhB A6;HnWjHkf@06Yk$Ԭč{Χ_~bwb:'צ=l*꨼GV)հݩsTθXdz!3)%e_V2̑K~LŐR5SkDMN ;YdCq#}`Pl0M@ h~;_%rbˎmVӥ6 蒵)[BL]<DQFZb I:ÎSD`Jr#Y2\#Qbפɝ̺c֬=` N|_ :dאq2KVPPg%C#:~Ӏ 3߽aYd|A1{[Sݍ XcṘz)lY¾vk*}ٱ~l4 wX%zf{zsv%)g+ٯN&7"'֏b&X skLPR)[۫C^q~:}kp1iWLWtEWWב2"WLfZgQ&,iM:_t;3[6W=Μm.& {yꭷ&psJ|'~/RxJ&#-aIO͢V\[IZQU7` > {)%{pȌx{. U'/ gI"YQ4)Ǟ<6 i +" _ TP@vd`ve3# ]FXc%U }גߑfYf$i? 'CpϯZժ^uV^J,杚4pDm.&tKE?u~eBo"H,ԺΒQ 1@H1Jp 5@{iUP3ךBcC^ Rh "]X[?ePazQW&TZT4+WJ^~MSՔ7ۄUhQ#҂(.(!鈲r ! !wqNPv[6SE;`79[whgd-Ȋ0f Zbe%y 8 u`@||;.~\ F'LN{`X&0+; d|~?@wgF[j˂l `cj3 Ftf.msg{; ^~̊%+˪VU%BWke!T%QTwXrdp3̕i^\!7 kMA;YBZ}Gԙ̓f)r [6S k:ԁQaR|Fo"4 HjٗA ]{WCMď"{ X}69Jff;g@, @^HpzZ~/|=:xcvz^$BmX.Bfs;>7hN:N 0%vr}ԅ6-:<j@)U18DBKnt H.cDI-b 5d|+ A#]l4-*Ĵ۪VU]޿hYůz }f35*dL;Yj,J`5NRQt9dBic7SxHd A 8{][ˊjq>)]λG:3<vk;F)S# LwTj#AB3E6YaKn*&50 N'ySvO\xzy#1& ǻzW2NiNTstUZ"$%\G*PhN{7}GO$3.V̇-'2B0b̒-iˮT( w^-lEbkYk|oHV*n)j~!@ve jqH#(ٞZ1'@ 47@ø( |. .[&5X$))C])pph:!iyT ƹRέdЄeݘ]܍x]XWC rjUZ}#^=課)Ka*oJ d ]]bY;ZU3ˤuIIH/7uRZ7۝^nm 魷E1\@AmETnM WH- 46 cL见?N A[d8*r$;a(+G3ւi`Z_ v<B%J|p4"Z/˿MrD$‰d67Ob@6gn]rߩ5B V"3y^GŜ]K8h9 ɓ#Jsh6˃UƝ{+|.!N{V7%nտV} nO4~.}s*WnxZ5i>GGsRboooҗMUfsR`𴢻VUZݖ}UÅy43f4EE v9o@|-Vե*pB}#nBVK0} {O{{= B5tk~i0'/duA]ժV/ Q72Vʭ% `16jM 1 MDp$yVւ|3&vzywkˢp$`"3U +WOELFteLXygDBB-,Sr ٢U$7Q+#aJ Hق}2tm^cCzR 0 %%o?OA-Cpfi%{rEdeD\$wX01 rliMQSw_v(Y2 qaa٬(CS@R̘nKsu2swЋ;ZժVW];"}jD%{25[I9yi3j͹x!D.5tB>c%L\eoHb CG jL}UZq0"(9l8%yЛ?.FN@5C" ;C&12Q ѐB kYArx#FALnh* 66Nfq4Uop;W "/sl(=Ș}m41V;C 0vKrTrcuʖ蕣"H SهT½ob WRsx!20p`gfw쎓~SOܪS a\j"agY  {F2ZwG#9^wvo#Tp6wm,qȫkVU@:ב+5S2מ7 f_&:-&`P5Ei֣]XFGBn4dsK׬vAvR-,EBm0 h@uul=%.K4bލ>49Ȯ2:}.);ˉ/R*t0ZO+sPbm7Bwfg=_l*],f1x~L.(J)S~i } jcKGWI40 # 1M֚ K[^wݍMe]8/ɢHNQj06bA3.ь{'<~os9S~!w-UkdDYwjjU/9{-ܕO78%s:aO!a%%XxlFC&, .u,"ܝI y`c" h zu/?{~: Tj7,X$$j]使i &5w P$E &F`0 ]"aw`i>N_:CWPWtUfY#Qx)c+ISqoJñS;,ndV[.J D#hBơ%, WyZ1ԼOw"+]5dKQ&Μn$T;=yldkÝlaڪ%;_uC9ZCӪԮ@.:xrg/]Ug,l WǤuj]waBwZ=t T 'yDi4![{oDSiDCx'?:=1CJŰ_QHl>nY@&SE,jӭU Pdޝ5 "1WG@Kw2K-iLnc]gZ:/DIzdeBG] Ke[w+ ޫUjUZƼfWd,V;ipEVC .SSag@@H=ƍ&0@al)HB\\X0p 1Hm.:fPU@^/ DA2XrI{H .Yg LkARrO !&͆9RѶ-=#h̥Gy2egQ\Zp=Iof2"MV}",շqdt*c#eQ^4+BzN.5|@m SgOVl>QSsh@&~:{XaI-98,f|߱:zae5ls] }FVUjy)\5yYdˁDC&A(BR40bK{)B O]'z)%Nl3IH0C]!H5:#0!LBւXKڄX-=> hMgf2I]5wsîUnkkʆ'׷>3' DC,`oH/xuLjω._|#n#X/.1K?Td0y+'MgåK;?[pǭ & ))"HA)Ede5 R'GXG]I!0vםt3`o@^&w/ŹBj?W//.rʿSl"M$Z^ RV_E`f[jsyEHTF88 Cwtְ_ͧ7CF]rFݏ`m"B7% ( 0"QDRξs%P`#6 ]^f]l0iawFn*`贄 I8VZ>zC̘~ϟ<`X(|@^]e+n{y+B,"<Z>Iumo:У| I{ɗ.Gnu0BoGjAD8N}5T =+ÇeK\ժD1ֵ Lt]k$yk6¤@ -FrX$0'$Xz9 t`} z%\evcse(ՕWV{aUc i㳢(^YtuDMkB%@b[h"Ј Ngl_4&"hVlH¶ʁu36iyz.9jV n2LA¬S$ HA>rb J5k |wEW0} b*R/VL:28KZl Į%`F9hBo:UdpvL0_ԇZTP{l] {gj{X0{q344m{ɍ'N5'Zo]p2,R|HF}.p8 s W31Sˠ΁]% êSժVXϏڍv.a#!(TNup͟pq`@v%):,*%eW,+m_q#[;xZ@nAny0 o),%̊ziQ~J9@e+CfgQ޽Y8 6Pbtm iNQ^e|Bi&9Pf%CJPKԝ`&@UڄAZmQ0l[qXjg{h4 @KrrH֏%nF6sdƭKӂDhK8hX::*(d44>OyaK&LW"b eb-^;+eSyoUjUcWeeIj{0DZؤ*DH"MHQRQ[IYL͌͏uoS5db/.:eJҍ GxF2\( H@Tw x (U-@^0f -[1hj,=ɋi1U=qI>կ9W: )6fF28@dF'E}]bYQMH5,:=9`[;8YHfA ?/;oZs;ڎ.a2#܋/nԞH=7EZժ/umolOiSi5-lֺlT"MHܢͅNe=؁5[ [N|g~ss총)Hv4/8 MUdHP汸jEXR;ۂ&`0ae!uTM}8W,yX<3( z^QWT5dB%x6ZQxȠ)%%LPC?'yDhdz]:i26G3y{ f>F7TAlܔU`Km_H.}>/;`>~vu~rzke, 2J1s|䪡S']tک$uK"gD*K!6-ֵau|y:_Tp5~[SV/.# 6/F/׋dX(HL˔$f{Y~}k=O{6ϷO{NC M%TB!ZOtVSh]JY~IM6PD2%@CLB66|7_ JtfN:DWHW w͸tr%TOey30}s 쀭 V;ZeExi2{j8gD6U[&3 ID!`6z#+fl.a}*?w[?u,nu/۔=?q 'pׄ1yR1#¬tZgԛHPD e<Q٥~s:ڇJ8fym)ׅwd`TeU70o[QKٙB*.z4y[ J2A!nƏ=pI l}MNo'rםO w_q?e>\ؘ] &3v܈)ˬ;>r#`^^_lX#/յuU<\}&_ 4#I"9 zZCk1Z1E#qB-0?o{?><~i\;~ւKv"Rk>uimMM|ty [d`l$H4'& .C'H x8a2I]a+j5&?؛ Vv@@RZ >ly17ػ e}XWTMg |&`6~/U1T~q7"dX"-o^g%ƃGoߑ3gμѧ?6/}_>|8nGֿ zO?xo{o9c? Y'EVȽ#X?vZ{+ă t:*㪴"^Z͚jU/kWIrt/7B4"!PyFȭ^ѝNkHNLE֢D!?߰9p/~LMoq??v_ϝ~MϿMynN=ӝ0wb :dԔ=ֵj}AL߳4b&_ U4   @Ų%U6׼3^Q6VR,!;G!O+:ۮeTxe†bSQGy/=m 䱴뛳[}%L#6<\B5i䓛vߓ 8z;9~l#ğ7ҹأۺ>wݗ|-=qx윰No?͔4I$9o-i&|!b|fjIuJ R]T|$  HZSr UoP5$EBSH!O〬-;z@nXga*=GWGv8`XwR8%p:gO3X >ljB 6f&0߻!u@`0@w뚎xS?}op>y֯џ|>|w?C_@aη_q 83Lckj%jEt1K~945fnijU/jD^Q{InpaSpI&Hkj$x`0&Q΢۝Ԍj m{z'?{W¿>spCw৾~wW'~_QoO7\wi|fȅ ^6,5.Id)(>fgn5,7t%~x`2롛h|.SmV>ekAlUWm0f^p >""+^gl*/].a=2޵C$-*%>ehq%Ӑ9Վ Wy"] @f-}7ln<Sۅ{S_ێMtg6/[o>\9t~ixqhr"_G/r/y cBWZK˔@S,|bbU=]G:z˭ LEB`J4O)l"o?8ûڳ>o#>po~G9}S ߼|mz{ӗo^^G\hzfJT[^&*)Tsx C }ͧz:s*g<Mz2'b-tU=G<0gFI6Y>|k (z8e6Xs4ޑ'\oTgSAm'cCj͇7>r7ٙ3ִk<VTrM'۾M#毾uN|hqNnno(@C%6g 퍖2/J^=" zԺ]U++ /199 8 ac$hđZX|~gn?y}{Z;/7=ԹoyLsN5'o~}ԭƣk7_\Omkc Lt"[*?94Sr@C{`I:ެӳAI%۲%-Y Y? -taQI"Eqd tO{U~{3o{g bx]^VfVޓ;92c(T;!(D?BkjP)=y2LSDpZ^9|0{:INmpmvJ A)j2$ÍUFi8 tԳz`pЋ$]-iF'ٙ75}w}^~}:|M76Ļogg.͟8מߚzW>_|ϝ^x7_7J6pa߉1s(A7qKkҟ#=&vGοkr u'!EepW"ҚF;GʎGЁ#'#ϕF_fvݪ=mׯ3OOg?GΞ>pjw\sv˳ؿ7?ޛxc{oۘo]'gK9 m}⎙9j rr]Wz8'Ba6OJ}D"'IWk)]@cm,/rxhjW?4(i~*V}().5)WôxKSKNE +(hYO喟-yuwZiδӮFŷyxnS;}>}{wwԹlqM~o} q֕ܭ 3߶6;cQGS?t}ǛO=~q: RRSfR KON$} \ap%0WO`#Kv3vy#'t$uژ L|*IUCo;w{.PƵ>~>N{npvO_?~lzA~݇O.ۮ??:uwz|g 3$7eq@<1 !g3u( I/gIr^ܭ Z0zd8!CQF楤J['Ffn-}dywTFQf YgzԽs,1_91JbYO<9o:)Y8ttu[_8ƿηv.\Fob;o\ڏ81VWBe:4uD4{_d> BiklDzm v}GajQlF¨8"#/|wߴ"=V?:#:{ ~W?sg/׾z|?|Ҹ_M:Ɉzp|#?MW" Vc.L,/Ⱇ]Xk^ɵgY˺)F|i~9[2C\JѴ;9&cq6֬{n[7^3Xwv֏N?̡IG.Uo|٭&k+za䗶~nGg?yNn;>za{/ݵzJ<}i e' BC;]v6 ͗ `DhAm{r[|;tx#bej{y~v{o~O_C0a\ ŹqoЧO><{F]wovݪ)kfP&L{8 IqofѢYZL#b-;|K#:Uk#Z`&HG]K#i_U9RX^^qWI@R,l4.AءCg^xQݏF }j6IŦG,n;27ʷ=sR{g^޵Ns7}8Ï>}}#gsU#I.CL"JaּK įz}0 ;3$m`kw_+ߨZ8&\eo̖|ղ\(lqǎ;9N "~GOYB#~1c/QmmVܜmLxXNh__[;^7ܹ}ƚwO~7~s[{O7wrDLDTCBs -@SSrΆrn͟G?ExÍwh?7?rbş|o}ן{b{h3έ7ܞ*DJc3fu6*#SZbH]g鼀ڛЈ9,YCij@Їb :>3,J6+-?t7 c  '‚-ceoQp$罝ey[8;wJ-, `J O.נp. \܉vRm:qmw]].~1'/϶f?7?Ƶ_7OӹI(Նh&2I.ĭj:,ZjNX$ĦCJJ'# uc~I.Е\ֲ,8U@*%B)> sULmfh㨡`$zejN3m>;}1Hn;wy Wy{o9q.`+҅qq9'mN#-yqB:Veج]qq%c%7Ch*dccxj۾F?l>_~ ?M}w|ғ'/X3ӿoRw$\}Chxϱ 1yXub;c+O?{aK{ãϟ޼x[o;=;~~]2) B,\՜@m14Tޣ*;\jD,LXD&]MYAk]3l_uq]:2\eC|՚HWb]Ή2-~%*tF|!p.I I:;]:_޶m?ؙ;ϝ~?/\a|TV~46o拗zsbԨ5oA |q]Zg 䏥'awه3Md2yN${;Z㇞lHdO3,;U%,9UV'**ioȹhf@-"l07SE0m\z~:c9z,LI7E/If$MsUXb^UP*2,έ~otѴ׬hJMjkj% Z5F.znlϋuC4{$5,06"g9xMTMYKs9&Iϓ:rN}O N?q 1\>3>7[܇_o9~tݽ)te>IHGFB!`YCcq:۞?w|ܙs.]O}Ώ<}j#hP)7D 㴚B˂%bw%p],Klm{J gw+uLFE~MS&{_w.:f='O?&I2Sڎq7?3/=sI ޴n6oTS |>L9~ןiDAE5ܚ4Ւ{-Bb؉hn5D(i~P@5H0~ /g?gD+vޛV gGcڝ9 !AC<McG0򜿔95Ox ",y_gTKwISbU#Z8ɢ 2sϴ"l*xL\Af6*wlCz6f)|` BD fA8C0FM X"O*|G i/SkcFD%-6M K+qG5 Zjf"$S.M+ᘔ 1RXI%,qUXE, vUڛ^Ӟq7!X/y*=by*HWMtbf19Գ`[.[Ѱo,=v#Zd*A.Yb%! IwXi8\1 Lw`;~,%]V@" euxϼe}%_˿ʝwW5ɳ!8"Givz#=0i8i5;Qy`$ɤ4Zՠv`,\΢:r$lh)$$91",zlk-  0dH$[Yv7 @ C\0Mk%;u=$c)Nr>L<"͵"l.`b dԘ\ 0IV_KP\پ@z(q;`cUIݔK/'JHJ'T-+2t`qn8VWٟ?F@A5q%9`F<"yDqZ\ Y7-J s1i{Xӡ+ci`^elp iyp L;aY*kb5BZFt@ keKh@d@SøIh81Dxɹˤ\[5*CԨj[ J ~g>>oЈd4uFB8gDBoNfQg1&g'.׸;fZlʥETch R0`Y, ܱLLr@LD20Ǿhg:*' ̓=97ϻ%;wM;}k V:\"娥EZkTŕ5 ݷ=5p@:#]Y[dCՠ';%(546*ԒUl,dS-/qkw4Ǭ ej+~ϵT} ?$ GB3x(]2e48DT[r#q a0G:'B*R&ϤБ3N[34~=Q;npqz]74[38nD9Pe[LI i,(dImTU;w?DT)%TEo`;BVdMIIvKҋmb$Iq+]꣉bcl0r`/Z,ٗڗ]:vITuftJvƝFtc@ǟ{qc9y)aY$Xɹ!C0 9r9f 4+#UDC4Z!D Q l$kxXA$uX23ˁa~2u; nkgczMp!˭z-~^lḌ%c7vE=W<)M'l'T͙%d#Ccxĉ8#0mb49.` ̐~W9 Ʊ8X#mjuS" ,AV>1kmQBj*ࣁ\=-]me{e ҆j7\ .%cR'gq?QpkN6+̠54 mtƑ1WMYsUj8f hLzA8R3fc07ׄǏFզmP h4C#&fjjVcT#ci{B1MdUP)LpBZQ+90s@# |T,H 1 ̊IAX I^U[ V0K`aٲ:Yxlse0[8 z0?~1kg3׸|w4/ ZUc: HXRS"Z~/d_+hVA"H"i}4EZAL_*h8TZ8,kYz~y+\GVA`e !xa9"%/h!j0#14V#'m6G?ŠI# pzsV1 AafӀ uwDGa-1C:KKdJe&6:12Zi" ]ѷDCHȆ/0  ]T aJpΕ~O7jskP!bzZ0tPv\DBZJԁR} Xلw.2"M/Mye'ʔ_͔6 6KV mqm `$U&jKL6kL턂5jtZ C>!;=(*Q\gjQV l!z5kx7Z@cak( ǞV&!'L[9!0xr4v/}e6v!5BaҰq4lXk0qr{+CAMdZTj֪d⥖2CRZbL%?c'afL8N;jhlDMۀV`k~=t1WCGy!Y*(*ɦ *zg*XCEg?hӵDlu}\NRtկoE&ejih4~ Ț?5Hed?V&,3"Es 3ݜaՋt\r룑ƞ#6r Z9L͜f:,%IH^,X/KC9ѯwh@4K3 mtݪsCMBF^6eA-)#$oj|2 5Qc,rQi*jV-v !aWk˺!0MiWO'{֧8Osdз$Eډi44fmm♋"*g1"FN H'V/9U.Wnlz%gךXy5{riyh)wpb+#IKOЪqo$ !y=B8!ֶ1¼LXR0=o &DLcD,z$5+Hbn sl``haPp+EZ7З|DAV=]A "fq0jW/ EBGFQGZ;{íG.M&o sGVל`\z"<#rK1ێeb Hƒf>K rB+ux\^ظPRye,-kYZֲ^"x| h6W#Vm[1 {k#6gY(*SIEJ0rp`N[DUI9quG!i%‘nh8~ˑkp%Bq3Tm;8D5!Gd @hQ{pG= ,gKYH#9Pe 3ȁ`0!!§^dZD)c5c `[:wcݠ8)=deEKK Z)5RL.yDFp&~| B nSށءqNF'%PnRFÀfV &;'X(wܽwhKZ.HZֲUn ^pcrRjR䫱Y 6fVkZ4M58zB484[ϓĻN`+x i=9ޱ#‘#-d!:0vBaL53*g:w4$1qEfP#0vaM/ᄋ{ G65:- j`CF:dIq˖Omfd~p8ckd5&'W-ޡZ}"h /΢Rw@LD6 HX/ju<-^SwO'P.XoFPbԬL,CRÀUV\Ilh-衉8+gVFV`pb+<C!"v] W6^؋9XWNWve-kYd]d<{ ^aPNEd#!=ya;X$*Lfl+b-2;5og=%9+soDfճ@7L ") eI98YZJ3OY}3VOf5PH"WZFD CxK ھg*3inzWz22N{92Wjtyf|fY}Ǽ,:ݙDnmP5̥H"e^4ڡ>0 H-jAlhƁ `0DZ* tCvE>CȈ,E>'K =HUb .Tq]ҫ@΃`҃>-Qm{.p&mU"nhbN2<&2cXRB&CPuH}5T< Hn2ݩϝ1Hu oɜEH׉h919SA+2#C`xXyb[̌,kS/`\QU&iXkMxx|wQ|wU1: ^Ծ2|aDPI2gJ5+e p^u9AX8G( _~\~ Sv h%0W !\l#a 0L$]}iH$. xDu(=)q%PNHG Z2 v466{fM ED3Lađ~|Ϟ=vnOrFMf"S="=B,gh"ᙲl`JQ U*8u%HÃ.祹'ZMধOڈ(ԯG >l$NOmQdSvڰiTC.z=LԽñ9!Kō(B)@t{< g:|df^7M~Yfo<Բ_)p8(^!dI *NC@r0AdV_aeSV<ՀCK}vt#:r9lzW Jk)wRxx|. ؇nk7DWՎr&Ӱ&ۦd=.Uj mdSA2ɸ2pj ? 6v̆/w`d`y[8x'IU/qΦu\#Wi˖ /[ ^R2(FiQHa@F\ 7upLlV9!#dPch¢PFN@D b ,ECj8j7Ԫ1@ 'zGU*5㊹msPj`ԡڨTrU׫fW뙾4ʩXp BJZ.' m?nZw6X JA_R:hxy5i4p_!]#^PbϡaԄ\)&O`n+[6u+st]o;ۍW{Ǐ8~ٮ헜dFyk:g;f˓9w3Sbӳ \ ? P t412*)^$6_r>#WNP1G;pCAu@j*ԫ.(}P 0DR_@p&t2u2͸tPE Y*]P闺\;~۫7p?7w~ihƴ!ƌw҇=nÀꄡ!-Eʍ@Z GUFMR+=#XaE<1ȂlȠڙnJ6H9AlQq:<9$s``9vV(-4$w+SVsiL^I7l*2B0Hr;gcmlUDTѺP R1.S+׭\7n 6vo񼹕?~{|#Opc&:&gf&D($ 3rKUnb`l"Ph ҤוݛX˯%+oc<Ï7B!Ux.@ PR"ћ [vW])=3@XŁ7U;eKyΥǩp'sͧQw[q)_?_ebᄍ²TNc2 WDkuhMp]Qi~ J DI$ ;Qfq[>ŔΙY%BLɐZrM w2BҪ>J;%Z*uI AT뱉 #^mkGw˦ln.XgwnbƇ|%{rUn0X\}vLwN RI i2V7{VefуGyއ(,j!ﲳk7^#23xw=)߸"%Z]vDA+"1Lҙf]OK;x'9_S[n~Oۮw{=zzyiilz?t}d!ɩz;FB kJ=EDBFFQuW`2YhSd@uCW*TtT |:vo#>!XPeGr4mQjk54{t5ԔI_MksM@U*88s⒝`"}'z9:xߵY9o6qsrwl㋗o}3g-S}]pS޷/CEm^5~g~ $iԪ'ORb`qaad,Eɚ4 $ iE(Q'8 生3t*%R&kppaEٍbw^PpU걦?Mj-pql {q-]2Z:Z..-n6X?ѹ~ɰoy͋7[3k9-׿xGnh&3xdOӇONQs f ;ZEPn-J OJ_Yh;髽Z1=<ÿuZ?N܆`AN4(˂rf[T'3*=RZ^ tsd ٫^JyǛ;?ԡf8S~/_{Y+~ҼOY`PK+^(:論 [h#9鴴#5('#'WHi54E-Jc!#ANoB#$l)IumzKVb)^x ꓉Ѩi4鴳F[GV9%⑔s6nv᷾\Q˯~x{ۏ?TG~zV6Sqˋ.]OΏQx 2 j/>'X.Zjr,'IG;Q6mt|s.|/>ubY^4wi{prNgSs=y>q-+6eZ,-{|+PFѸ1yUQ,0GOJV @ՏdX8m ؂3PFh߰ hnF(o(C7y,ø7;*FqsjZiВUlVxyל7ybQ>ݎ+/N8Xz% Kli:%/uwE{.+g<˞h)_CVja` Im4Rx+( d݈aszնq mi~Jxx9j=c0Ail-jQ,qfw S0GA9J 8̄YMlkmNįxw7~+m߼qSJ ˺wq~Wc/~,ublEO]3GY2yEn(3m)'a1k/ԫO+ KUUG{ "ʙJJЧXoJ/Q+qk6\nitX78*:x^:?HM-1;v1Mbxaw;KǗ(~t3D-,sUt_uk/Yܾ.[螣 ogr׭{'v3K" 3C $tSv暟.Rۦ1 5bI(-l==M:mƊxx|(0UÍ8F/l`N\ 嗒(xKW+76d)ѵi(@`Fmm[j_gtdǷk:rϤm,دߜm ’@DTxN굀 0h*N0ai:7DzM7_SBoGW[:|?k]Je{q_-,x=}l`:ŠϿ`_|S =y. ?tG^z,e[NbrLC) -ꤿju&hl2HREqqĢZLgpILy5)+Ƀy£BJXkӄ*2K|ifAE8dff6ґ;`W3muU"f77 t_&I &r/3$ԯ*9DQҧRRRr"4 R"@t˅)TfI=Hԩ2K'ml~B!X1(y=~gq>;lr׹g/xտD$Lg¥g}+WKw ANEJ |6`@٘4p}U?53DD*P)D~WOg@#.-4־mL?x SEk7:Q:H|1BLp",GEoj!3D %-!2&3L^@ٮ}blݼwYIѫ/ݿ~`sMw6->8l9;fW/f}> 3ݼЭs:=|a>h Rh` )1SG^@; ``o %d=OAhìN-QjND3ըOx|<6kV4iVĕ"F>ZU@j):iU)d~jZ"-s&+vWl&IW(j .t&W]n=ȾܗXrB-_dXZ<k3{)ߴyS,5[/|ω*2Cɏ+(גCjҘLt "%僫F;"Z%sh~K[PD Ud{m3>:ʵբ VD~NDL4ӆU I(JY>0غ Ϻx{ݸ}̦׽/{g~Sܗ~Kq3 ǎw^{O33ʹ\1s'WJ/@`2CaUW"cs2 _#D@V"KDJ\}Wkؗ 9 9RQ1Ic>ߓl b׺lH7ֲP KKp/P f27JLflhӰ0MetG95r$_a[?^s0 ƫ'&luמ{}Amtj}'~KǶl&,!7N+PՌ:v9'k%< RaW #x-^50SK^h / )FuylkyiՋE[Wv(͐^\NQ&Ti!@BRm{UFidFaW0 "6e[[ + /}?횠,8!oJ!05Ξ$@PeJʅtAWSeISncaxx|?uD]h 6QLm*$@Px+< 5<2fTm|Sws]{?x?u7|'拥_c n"][|࿼+G^\2' }zz͠ eDd #aiC!^QZփK;2v1(cjJ:tSIMo\@ İ+kZ%?hti%cC(8j;Wl7_T*O4asMP>gfc'& m<{_/[z~㹗_4^}cyO_]o{+7ZDnwRHիzU'0@IeŴp2DcF!^{6ObQM!gGZ\\qΚ-%d?z%S/}ގO|陷n cǖ\۞9voܹ#SG^FiF@A"IؐV;Âs"׼ܐ% '-`ʨrɏUY# P&!Ug^v._[gJKOg~E!T 72Nq׉1'7,*8<`*T9垨!&X l@a\rCNU+\l3 \/6`MR{S򅯪LC=kA`NQDS%N@ mmIPQl|ՃY'Lx.MK܌w*ehT]1pSN-MЬjү&O6 `&:Gܘ ZGozZC{LDAOo^6v:N=R v~O\N˷t7]6-+clo|p :@ )Q"8H03Uh UTXEˀ W3srѓ,+485 $ 0bhHSŎ2A$Iѫ3lŕ^.2%)')FI5TqBulS&N0$4hH\C_zLuYs4l4քƸBI?Z麄U%6}FIFSO^qdM1ݰ/͖˛n1ɾf@} ](E^5וR q.3U z0((S9I*5ۺ3W\ϗN#.T7i^,ֶ R4k;Dߎ<>J5c'7}GN_^{vxufI&3mB/i*%XTTb^Qj#Uj-1Q0 9THK(9E(yxa2,K MEJ2LUhِwG]Yb̖* 4qp[7LUY9kJ,YN(|*48,RʩX8WA k;]r/{ߴk]EdFplPr+D33c(HڦK\|ÌQ?񂧨e uV1ū5-q#H5Cv;t:u}㻚FR- Fc<,f{PC̨k y(|7=sϩKI d"ԶINDKӾc[)=fr^ /W5@f)7a,?䱝;JEW]˶|/22_7?xO |oK7+KUVB4BWf^ة_beUTߴ遻BK C0e(h2:YBh Q}@$)JEOQ(R[>U%V*N @IbV+4]T 0AkUt i+ʑL{3 Zb6@(!񹂅g64oy =a~|nO7nX#.)꽊,Sl<u 1SUE{R[\ʸ#-jq:pi%t,Kc0d0n/0@*k 0b:/w C47ίq F^=C\y=ʥdDz@$10c2p}RBJt%Ž(Ud085W:vsun\)~%|S?e]XCjdIp̄NF(1 ?JbbK Gڐ) eL=i(x 逇t~4ճ2q[L )i` 9r @i&'wN-pӳ6o_ӅhUR깫C;dH_Q6m-ӗ5 gNT451,5d˫)$*e;QNɌ-+2sl+,k0.J eAͣjlΓCt`fkt(2dsliYZv+[^ӹb"3?9s:HpNGǐa*Sk^ev$2_eUYd_eQZ !#tCCQ5&ˋ'c*}D)P2h@Cl u'w#yGJ^Ej1Z3J:İV4U'ЦvHtTU~ZmP(T7B`]1b<% `Yp&;3=zwv]n?R3}W(b$%i~=礁h] u *5`(g~l:+IdRekf-f_HՕ]&ZͥCj<4aΆ\նѵu=ک1ߪ OkaH)3 B('S>>AQUbۼ,yŠTCUr39 z-L1(34a8֐K[Ѝؕ@D{\y.~֍WfV\s}%DVR}O*5ABdHDx"D˨6fPP Kh5 ݂>%-uoª{%4kV_Mµ_]y*zm*,3++Du!1$#'sbyhdUTxPAdN1pi̇|EYY'f=bZ}‘b(K0kẹɴh jFQ^Vyy&IE|bJŔPsϨ핫Aihgv*5e-Pj8U11  @dzX1e Qu^Kd%3rCj@uLHnF> Rx+j4;(X q!O@-؝Aċvfe%u*-[ʽ01'F +kљ3Ks*SnVj] kxLNP'ʊJRHPvz(X뵪o@Kw*Tf^Ra$)GzP[0*Vmxf'\_RxTԀ ET4.Q*ӔPd|B n@]C MNeC 9ֿ*JP|#ƪ) 7s$xPHALufE 5Kq%L:|rmpgQ]vsmFq~&Ը'X%H2#K蕃Ž{~j|*U^w#0r-FIQ™uV g%#4Ub }ZC8.5/L>rۓT w_;M`3`(k@u@`ʰ*H.UB'GL #tyuSV%@u d2S"^!ahv̓ݻ4,J}A\4 z.= *JQQMY1VNj,0iHT{ (lC_Z \[^VzC)= #xFHbQ䓼,ˑ$oi E+b86X4?rs#r+ ͵qwK0C^NBQf.H$vD+B)AXB`j tc]4hvuW!T-Ժblԅ^n#ERuwYjebPMq mY`li{8㦳ȅ3 a*`׋B0yq"ܨ1f F dzưjG[{aՆ`NL̢7EtA.YQ2dRG{Xҫ<]~&Tb=ǓeUј4/O;F}κ"Ssx \Y4 s>A [iW]3mSijJh5Iw-٤4[P}П{m7xeiy 䜞bSa Vr0G(IɌtC7v$cA- F_[g]XMVFFT7/U:6gG6Kt#ḱY2Eܑ /pIq9$u|G,ѻ3H܌|ML;b. ~V peShǚWؘsJ0+SY1`RY Uɂ} VkX,U)v%x[kno?/+aTZtNkYK ZMcj?IB"ڐ]3b>ȩ3ΐJ=){\?ĩhH{.>WzQW~/YŊf65E UtqY% h0AiѯTZ&rmzAѐ&KLL 0`)rzA[r¥q`a3'<.a6 -d.Er-`ZIgΘEUTî\^]ϿmoZAq0`<5l cFToXdҙF A0-H`'}Z_iO (pO"t*}")$!3EtӛZ("[KR'VQx-P5DgP\*Y;;[WN'؀mu,mxԩ;.nr͒kcVN 3Ve^zXHV%f5-R N-e;ޱ`qO%3R2cb% g% ]Mr::[eW/OhUλp ^|QNp Rk}m*ȥ-,L`PDJ]ڨX6p 8D t MVR K&#NF 6X@n4Tl)"$A 3{O>yw 1k0[ZH l+$V1-; KC0 8*2***(["-?uϪy朮 \~6UykrɎ1Vᮮ|ޘk/]y";bhdZ"61zsqWhK22(`AM-=4V(.mm MMh"8 ±3fX6bBfZKxN@JR|-i<~ݾE<Б5"KY~&} F dTcUbUFhcO;}ftؕYTZ9 Q `*LFeeg PBNqYC~"Gt\Y?OUR|˒eӠsjYŞ"[2H?'9 / 4iq=*'o/b9ܐcGA 5OZ>`ԴH`0 $j ,];B7d{^}rU/lj~pcD`^F-gC9Icdy؈xjt&@=J}nrŀx yFn)b8RbuM2c{#r-N5Y,Fn-'7/  h QhL)@Zߪ>q@%MÂbyC slۋͿ1QSe odbHˆlZB<,鳚Y#wWD$-Q% {>U$(WkH\,, GG26R+.uj&׋'::]O\f7?7mݢe5c4ZCZ8yvSX@$~ jg֩ %g,UV~pЅ6ak!؉3sΉ (VÏ]|[D1mmUCQGzpmZ,QYn)=H"Ty 95y86UaD_hXUJ,AΑ$Jo(Xtê!ST'DEթ*ư<h:nʯǡ⫖պ|Q;Jk]N$!+DQeVoShŠAz Ҥ*kqm:vD_nc*rXaP[m׽BŻ>S৅\ՌCnYF9xˈHqDg]%ݻBH:*XAxmЛZd_MZ)B\h*v.v=zZw#7Ngf1y\`Xcɝ^V_a8=k} کvb-76[>ᑁلYgB( ' S`t'F6=!FC5;ź8h]U=TXmL%hj&sB6x G t󰔲vtl[#*׮,`blzHWs0IX%8f FKAj$,\TyASO-vPe$c WBMBp>̡ѱox%QH ۂٍ=]$3WvW2KnҰ+/()f|8.G4u ]/|>Uig7ynUNaZC{]O] e-&' hbDֵ>6Z6 lt 2:߯#JWmGZ).g!EϢVpͮz&,^D(6t:o]|9n$j^q`P Z]Ԯa^#ޑܴXxY:^X!>mcP\ZŕT3n5txJwPٲ kgrR[;"➛ƻ?n nEsX6O9'aG˲ Yli1ZVt`M_-J-B({RzIBN!Vڟ.Ad~bpU|lأL"o`Ls\^,C&S䫵@,Ԙ.AƘ) mlMljr½N|#5^h5żF';Y8{ 0@44 fCzڮv"533n?MXcIfT;Xq6h:]u=:l ]U6wԣSuZ`:v/&Fm%3x]wu:ccg.+m0FqDpz!`^Y\nM6jUUXz :,Hzq'O-»UkN`mufp¥p jmG DS#)/ҟX.ƻO;zD h66\$АьBEcKɴϽclDѤt`%bp\UHAhDvd_ac2o`Xgye7@KчB:Jޙ=^SchT' VE޳7tbs^)[|WC|Faɏ@X;I-E NAxҬd`Ujf~|-GM|;{|:9a5OFAtwljUwC5󩬎tIRCFHsjj7jhVRU/9~ u&jB%R\$H¼ څuVYn; MuШ=BU[RO:@Fհ M0awG*xGVM6aAЀ N,a@as@-zSC֯.>g._ |s֝A]LxUg I# ě)cM8'B6rsbnx >EҔSbC*h9-r[P] :GJz5!& yIY]S9&Ÿ*{%NGRRw\h5"$\TݣSY/#/#&W16IL"R52q!I`%`,b89"d=1+F'ۭdc4ӑ/oswmYӋ-n&6GY1F):JB6gNС+@*;!98>-h[>U?玪0)G4 ĭ)K]x]}A ,'G`01&X٬2\&b>.LY0^( :5x\zC16!g[]ύa #wqi8# ,ԡ3i6f0PhOF^jxYDWZz:k, ]cp뱁x5q6u9J9S=?:$m#m9Hy.mx+Z*` 6}me_Kaֶ긘ӚR-*ڔVMK:mBϩ, Z{' l:SEGSA/w$60h[x,ڀQWV9rs {2=J;X]^r/+]HCa4gY^ޣB Sá`(ݭ!Z]ewj0%,|;@`E(W`&!dQ eSqBP.vA캔AOls~i+!%O/ uWE~W|vz$k٘e`B^ /4Xwl'|TN1m,(oݷ;nX+_ғC?5+]L%Ru ]C"jRwYT6sqiJ&j< PԮ`jGzÇ=^Ybo-L5=G'Bm_?F|M]ahub.qZ2#W‚<>y@Q!gͤWdq^iZYw:Z."i Ris Ilj-8]/mb6Jt! ]O/jmb餌qÍܨt;pb\6[3XXVso^uM=]r!,$Ck Lmjckqzu=NDƌ >a`4Z4E϶2yZ!sE֡]!'O>)X]v޹K }u[cZ#.Kdr]`;UB'v5w<.wzR8 AB^Ch#Fa!tfs:9ޤ1 5et_ieKTMqRGt{/%=mCvz9vU=9z o]5ś5՜] /$ße2X b]VpTzX@ڊ9T`Ic-,2aә7O|OI.:4Jr$RXv:=lmi1ž"H7f EQ}K}.G5EPmB-h4ׁp<hKgmg[[ZBVRstb]Hսb2X\!66 akP3'qlC;34ɠ܂3 ,< a U=脴VAW@'w,&&,=0E"B]w~O|G?蹮yG#eڛ TSr%v)25KRسV9H/8hD..NHksV^[Gl2IxetU_ܪ!Z뉽3OH NumkD9G+3_/bZ=tY'~WvÎ?\o•~ݵaxѭ/ Bm (ێh3ڼn]G\mCl`٦j*?f hڦdQw]WaC_-hj)Yo$C!tn#:O=Ưz։G|gӛe1)IFBASFtas'WF_lM-vD]-,^'5~f{nb' eoL~bKkɒL>mp: *gZbck%uaU#s!y|wz՝/٬ɫHri zSovs}uyU!g[4YpQVdNZ1nwu3[EKKR6ޱUQe /uyP_I kY 3x.'TUhwlbϒ?g\7(g\1f'Aj}_K_5TZ8,WЫ,Gn5]l,3pq.0ZY Hy P`pJ.7}~oS3һȓݷFKZr9RKb&/h{=JrP}knWO+ȅ\xFbqZF"&[L2MVsÍ~o)Clb` !akp2o m}{}Y dt2Si>Gq‰?U|9z[S't'O@TGfN^*t^ALءzUeR}g)4;^B ϿH",8`x0\yɉ̽׽\3? ?9ivvBN@N_86x';Bg֙u(i0`;P}f:l3PF+5Og%SZ-br"ho!9pזk* IJpO&Դ/dl;b1*kN.:1nG9qK[ܐ\agv [0$-iC`3g/*.}$?>~m/9yʷ6(ړXjcߌX(,JPErI֮=߷s<1l]E1[[zWtWUŷDQ)QOL#4 !rU쒥 k=]oMQ53o%ܠ0AqB m4FRYMGg18ڻgɎX[ pg@"*=Efjs YϞ-F 'k.9%ĬҖ}zYDz;X{A`Nhf`*uQd^q#B`X8Yxnx¡Mήt4Xsh6Nréo PЩuj ' "]T/T"}B<0Um2yIeLL¬Wȁ{4?p`1% UXK&DMAMX :$l6a~T:F>b>&x3 dSww@~=t쓫;^y7'/ߣ/Y{nY~WvE ŋ/gnW-Rs !ǹyʡ+]z.;,mٝd 2W5aWQ" iVz?Iw5@Zi9JkW)ªp@,Ce׭pKsƍ}M~Ե>z5N%ш,b@˰RgV|$R5XmxHv-(jw9>ڌZ.cMmBE? *P%3KpEZW|*2~PGSd0(F$Azw\:*Ac%vt#7|*\Z}w4%[o}+G?w?s9yk^|g:#6z `p*,)RX + EAsȌ'NWdLړs^Q_q8)H&bAxJd AB& I򆈗Y!jA,h[ci'#Cg8έN TnJ#<h&7:S`Zԟ'?;C:bXy[WeU#o|,3QiAm8ȉg` +)؈lS6"N!1Z*yS BU3F:ڪӽ3 nw g/鈍WVrUȝȶ2F1ynU^\g7GT3blW7VsA=TcV,Z!R)IF,% U5'xX\^%[DLe@&e )TߴrrϑUwywx.>} /zwȧ._>~)6䅃~+?wÐp1'܄l\ZS3 s@ Oog(ŞN:ݪ;&HQ]53?Gdb2׈z8҃I BcGFmGK&yPwA0wCy18TzgC}ɐ-PwpC%.^raξ8pvN ƶ#r9;5X%dr=ZQ)9JT{ BHjXFq`1#u707 ׄJQFAt@4876MW:KA7'atdppY$aJ 7 LiMLsXD[]dhB!kvj!yNpl$ܲH[8ភNM`Py߰L`c6Xuw{緾gyGxKo?y;卸G3ytǻO>~ ؘc!7yDS49ڄ:OCV*Bޑ$ނU)!A3mя6r(k,ԚUXYHĿ `tW{j0^e F<ev2WJOV!x,1фిM1NnvI_3DNGνS?汋߻yӝ;ݝ׽h٧ƂoGtMw?xӝZ]B.hO| Gzrzx &G,Y_ŎԆ=AI}Gcc\u45 Vx..\ tFRuCEXNKH,<2m~Ify]E0B̴""R Y zqT6m~YBFijFu"ɣ2ԗP[U7y5#xg͓"GVɄR;,5IHOm^J^ՁaCʈ7Sή]ҥnosWw6wk^q'k߶d˿߾?ѭ[V:,ۆr;G8FB>Reꑤ:z4UC|`A< G QY6`_Re#6EͲW9a8Rjc+bgF [ff7_ CMpB_ EqqdqeC-ʵ~'FF6UxG_*GUԔ}y䭥Wk=l/~$Jt䩨 "dYg!;ΚD'LO87 iw=v|pPfZU[峦lCmU+9چ j3Ø7o逤l U`6>2YLbfBcdA٨^Zكp%qX47˭ltqvYؐpi,iXx5x/ί.<\?|[_[^[}Vtobs^X^j?{N7F;`WlXQ?*(;0ENp/R V"~ma+wow#!.0^񆊔azgWi{X+W:k %z2 :wv,/Əg[ MY2cQ)$OdA]H#QvZ;ooz-S|Wȿ7?7O|;GO~Sz ?'nw3't78Knh8쁑Lj#)&x8LS }㫖 Ԥ}ZF]oEeqi*XaHM3Wf:->huK#3pyP(oy1h/eͰJgs6Gk=!5晦#V'(ya`#,qvV"K |Fwe^j#lgd8Q#.md(}uwƪ@QFcuLT3}K^jɔ^_߃;%&X_ «OvERd^d.ǷeO2 !5N2IQz̅`FR<#)4PD!\铧G`*'e 0]ЀĂ2Qtylt [KH'܍Әd7YpLk1sNc;jE#(͵-FnI|xE ;s̒*K״J鷚Ҩ:HqV K_;uDUwR&F~3v#ѣƩhTt}6"1>ހ0HI򂸙Nr8G!- -:˅Klymwo-hwF8(a&F}wBtb!pdVA } qmVm--*KO pM`)"-2;"&[ڮbDI'J4d$nQ e;,,I䢘d -ANMwedAOVH,*:k @n+ŭv$g]vwNOk^vϴ?gx=APt `f Vqf%n_JJw G6$fFtL̖I }׋!9 e ,$Z4^&f[{լFM+6]; %GS#O]koNDs׭h׼`e{쩏?}{KNͻ>|3U@x_#X.5g~7]]✑zUrF:v; i$rHN4E \EW(!rR\0^~9-xYE p TEf?$ y |V=OGYblWj`~6M#{hVq3I6 Xz~ma/zLga8 R}f{ JuK2#숋-ص¸@l9DLd_d$> R#e>BIjY, &*I7-'9i.!A1 ݬRp;EYR$<< T1lV^(12hoǥK E\!ek\վZVj(bo`H.=Qa&^nCZxh;hlV%oyi f@9IIIh(D[.v$Je,,ʴ%&+1 Lya^~sNwڻϹw(WSS/{^~\D!Pºkm!m1uGG??姗ݵ{C:/|{ן>s∏{v /^oB{oxiډ/~Guo8S^69.\m_SұڔE@@Ioȓfo#Br`%)XbrI/C2c ]/r`wL7v7 i:nѵ6ڿ Ld g߳ ^T?:]w ^\:a^@;W|vKX.}uw+/ݜm/OP|?X}ṍ76vë7ÇFW?g_>lyp7k7o+诃Nz V8A:m_p0WY'q߭;k򠹡uq j&6P6a_ ;偞"!l#|yn'y2> mEߗm8.Ki[(tO:'rљUd8EI%F8LR^:8}U.'I \(z+@:7VW8A$D|Z:0rF.y$Fp7wt󯘛b#g %.e8j]yjuY( Qep.)uJ4nUBgaP23REiJd2NUp&rwA ]b,R4=Z(HRK%q@Rer!fQ¢FxFՑLwCl::r\ *f!D96F!USzʥIzj{Nqȡ#Scc{~[_rCwNb_suK?|[G8Ա=HX]yW6tk3\=)se"4-)|FP:n>t}1sߑog{a:@@ ":+1hKX`^`uM#F>ZG9p2o9i  BWM,$Ktksp# W8]w^Yۛ77zupbo>q]kݵnkwvm$>;_>ۛ8|PԲkzciZ,3]s`:(5B`ѿ}=yCZBtxg7\*ƌ~W,es>9G4хdI:ehwCMy`i7#ss?.@[N 1[EEYHjwC ]ߎ Xt.fvu٦2 zXO, P0E\%Z8ދ L=!G^U/m小rODAӍk L9?98M#jN$ IXV5*^Dg]H!˥P8 *DnqR9d)cـșp!j\#O]yDZi cFyF9z/2ص sF0_我 TZ%[MwxQ ( *<&UbѬjBԙ5\$T{[wVqtt'?I)KϾ}7&v~͈z{oonnMg'׾~>‹iÕ)Ҳc:I W8E`.`H:蹜bא9.si6(VNdNkO̍}1+7XL;`ؐ=J"(Cuf[?Wk% ?HuD*ՌFh; (6f1 `;/NSy؊$Y WUr܃QJ .ؚ#ׁt5i^/j]ݯ"֓n kSWn;}/}g˶WCr8wG|{;~?V+{&̧?tʿp~ra*mQ>]7_Փ:&כK;PjdOrVX̡ y ;m,]/ؑ`:l~AJ 'Cs\J 'v:FO"](\p>d8[ `9/Y u.:",i.g65^}k] O@raS$3BT@;d$kYD6/<5UI;rIOՠH*؋~36cv+o$*GE TQy tӞ sT"Վ_[1>ɲ,sX`AuRfjxYyviά'3(Uz"^Kvd"Ν]ߔ!b-zA.^|)3bwܻ]ѕ 8Z"›-WV<2>/nO=oL>M&,|ho=67w>\qnvߒTdX`R8"$|![+ib_K͛Iļt㼘Eݍjn^9阓1qټSyDZ(5յ_y/:̓y=y'RT6a? K/.Б^h/z oš /byd8#;+ߠ,87$(-m[.rl48a>'ZMcq^ہOUHa~%QQ :jPuB<ɒgL p1EBO;gt"j2 ĸq`Lg奉XM9.drGEUY\މ_mHRTMom1뀁I:Q!uTUxjʘnd% )&V0<6ZKX8rh9IcKgHEc%iM*jnQڋhR=w[M=Y '6#c!$q\# :WU {.13P܎1Ͳ`=xϕ@8H %/%2pD9mՈN0 q)Z鶛"b"\Ԉu ',rlnM+G>(z@ K>rK֟xCmoZobv3ҏV1w7َJ`YZ`t\)8ɉiaT?(zd,cm*ҹCu#6ꤍ p+Vɑ%7.DU6o}ёv:?_WQ<ʍO|⫡{>vW_޾йg^_qf-L|sg~ҵ Y.}x1,Bv}& LTرx㢊Ҕ9puCz]dw4G20CAv3+(ʛ1}8j@x,02M~֯sԜ-\(kMHOg9/Ļڭk= h#?7Y8{1 [3]{η?z|o[;(뷿v}坘eG񏋽 7vi/n܁l&}|RIGP*3_AYLo^e m*n%RZ,!"jj2eV )dv, Q .+fj_MvR>p j1Pb󠚻q0ꍨK5mgQe^jiwׅ!W*@ MAb(O_pVGiB<̝ rX9ր16>1q"l;OW0U(|M-X ydN{1bRkUHu usiboag(=up𑞬/B5ȓґlv箥u ٯk_͛{sF_OO~x/]ީGNw{k*/_mo&AhTUB* mh $k50_s[%mm1DKK5S "l >Ӳ/_+;}܉ @U2)[(4* uZM_'̓🅭#bo}g_Ek~{W$UxRwE~` 1pVQ0짶8v[GtMpZpUEtCɰM"tW[ ~X8N{af\tط9@Dx C}>_бu; 6ɜ$t!RF<2%i'yhVq&jۥ G.uJ3o[)׌kgzHle>la.X[vk9;  Z 9Z9V8Z^ݘFF Xh~p,0i AwR8泣}D "4[sL-PV{X{LJRcmrLFtJObq AE5!Bz/|za!l3gŃqЛ {!IjQɵR `iĊ g:!"8T 3 1VUuɋ`?v3$TZhVQ oy|??>_C+gǎ{GOK_t/>Wtkf;:ys皃v[נQQP zZZ;qcB~etRCq~WECOW qn!imlNX2B * "rJtֱW w `KӓEA'x p"4t0ُ ֢ӫ!+k.vy{/SpC~v{7;J?O{K{a,{AЗyaz=7Ke9 "%I, З9k"NX:%] !T,np"h3gI/R:3<}YkMuaƱU^鹟;IVWum8kN rt+e}1i]}g3 btvsdz & `z Hkdz7Xf$3JΩ!>s0Neu,tsLɀc3Uxu/s: *3=tXg35?7r(M^J+ 邞ax6I\t2.$AV!Jrƥ%qrM  +Wz8pdQGy)Q#6' Rȶ[.!XTħt_z&ݘy\FG.yq*F1^9lY/2p;0)]SYmѝ.QSԱ \*dEA$+Ttr`##BĚ4vQZ,DŽVt\*PېQb|qyC-K*,h.4@N.6 (?. pxhDTHARD/prK5w urvhRݜ ӗwN牛ty׭Ϋ/iunͭ>{M[r}.gzv)˞uk_BӅH z|}0^FpErju0n8Z="yzȿ{+;Wʝ\?=P?5w_XpHN<ܿv}AiC;usJ^#E@kTW6BsPeZ:-d$?uBX8AR$e[N.C`t'WRf$1;13=&AoiS7:kI?⥍޵]im/SjIVY"پg`¡X$bBT(+Ui:i `+(.AuBM@T.H+:)ۤPdTsDMJD?.ѠұNQPȉsY:Y) 2EhAYYSuQ !"HN,6u,}jB`3Uk'Z3+`A3ݸ.;傻uZB #V5 2h"vkD DܴfUL $eaOT؅U^M IFL.U$#R()Ov`RRMfe[I>Y=Pg8*BHC4:hh<C`%ē:0A0X*#4F]r+E@X) W$T;L ۱ ,҉Pz%ôU6c=)ֿgo^97&i\y޾pico]k:nm]׮6Wf$V,H*[ը3*'+S8s);b沋 Fu•ʭf!rqn |(C^ !(n;؈e MsaG u``?U8c+u9䮁\ɲOaN;u  D5{$D6Iq߁v#%Y>A$#GդRHe dÝ}aءD!Ni7]#ǨvP614ќ>v+=[E!m‘:hP,ұ,4ǪQ!BT`IYMT+ccA+ QPV'W+6JQm(ќ\iW,iMٹoڢt/Yn%qi:iѓɝOt I4"hsTc ! >Z2@c`R%T̊;>6,'Z:qDݢ2i8TlZ10k*FܩSLZVJ"(9S5KjOKmAK4xuJUCR)C0]xDzWBЋ.k)Ȥc1;Q#\YܭDUI:,Q %(?ǿz/]y ]'>h}+y7o{v>09[a2vsg?=gom_-.\oOֹi̟ԛ:1Xs Y+Gu"[,HRrBS0l+Db6`H, U AIԊZab ڇ; (dcm;x4{;ESݹm9}i֋|s-$,ۼ!/쫟:TYw5ᣟ;Kv<+&ty{]>{˩O~?E1)cW:3s*.Dm?|AVFs jst9P=5OQY6;ыt!'$PV'u1ֺ_*]Tݞ:Q;Σ#Yzss=/Jr7Qtd@QZ8uBEm.7Zw=/j0} r$9!{} :rTI39v+2JgƆ;J:Cw=, ݀hYW¥c[K%4\&7!9.\ՌaʚO5UiWiαiSkw!‘%` qFP'8\4q: ᄵY)K]Q:F F4AIل.bIUk=֢3}1)w0Y#PU*'eAm$*Q$--'j:E))#SP:A{hL HSKZUVmޔը@%;r!FR1b(RB,d -YrDtY B* DYMjv ӿfIXrndIiCAhWeSm:2"*c\0*<%@GkBKb윅 U˅=MwDHu §^ݣ+ W^tw?|sO{?sWƟ}{ꇿ3K>qcxZ1I O6!(K/) i.? 2CqQ+i`+n v4cT;cA5I, eO4UA1`eU]S&t u:@:8mg$L0%v8h=E "bԟ H^./?ʕ;Z?{~~񅺉/6)6vuګo^ow>|cۿlwS?/ "[u}a>?`~3Xh,8˴OF?uKý84}pT9i[ !(,R! YywiDe(P2tɷ\q!ĥlYT_$ä ri)md?p^,K']NgJ2bͮtbo(p^u v/@4GUuݾv+BR[(e` [:&WVNp\8B]g~n53H0[JAvLgIȠ nvOZM":gILM ȥ2a bjkZ9"9tX>){SrpGP@$|AGNu⸐{풗ii3GnT lmPŘz hʐHK|DMUJ£p yQT0zDhJO! FU'kPvst1L4zERwDY#Ɛ,`wZi4F+(*AxoVּ{K{b&|.OHa;x$I'~S) A 5Zb RD6ijЁz3{|Z:Q:a G>ED0 V3__P=7=zkϾrݿ=94k^ yC/J:lN͹Byҥ;k3ܳ,j>Ci].RX+j;GyY/et3+¥)!@U*!9 1j#9Y*:XH2yTH8mdKm6"˕`'QvZGD6)$14 jdO^hL„lUj9w%e_w7xS xxiJGs{t3*a ,%ᬺ+aZ"KNR l:fY9 1 sY4i(GXFՉ65TXBځs&LI= &E8 ͿWgER:(mvٹ;M> Id9 :kSsUoOc)tYPB`ZGQ3gCvpu,mSJmZ܍6[S:ݱKrT4+FqB]+˥E4!*fm4&m%@|6¹nΤBvk,ƠJIE+NH*Oe#*4>b`AD&]b%\{,OX4 u f 0(<ت6B[hW6 ZM' 3NBܩSw#: C"CD:k3@TG@ ]-S!kY06-<1 F=k[4iruB<$"#uBC/xYP/l;3N4⽬SG;0M'@ko_z߳j7w/:N#/_?3/J<㦍C]lYɛrfK qߎiʜ93D:t[;I ".Ar-˕c!rʲf])DeAOy þf8ء@ $W Xt@/tC[pglA0F+}>t%Ɋ5 si&"qGzu??#j-!~Ν\]}?ܫ^N7@vhäcy\ǡE]*N{[݈J7EnJ'TC?4hCSr&b%Zc':G]=T^JY\B 焳& ,Jau'qƥ uNXB*-vwMo!4ʀ4'?m>vc6]ݿċ *>Zx#Β18TpCGm.]Or*HY$a?yږV7nyaeuK^Kx1F` wOΑ[4!̼LҒc?v;|OPMhԘ$V d DcJJ#,9*S8t^ȑ C@ I9 6IѠ/(E{ٛicW>z'66 'KsRUmo lY* y$QT=vڻs]r(mđv /vؙƕ1FR!g׋K>YøO*|3mt wdmu'c/XGj&;LZ&F5ew#OU,9\),8<⽇wkVc7f6tJV#P8?~}Ոp^S`QH"8"FnO('lTG^ ,s۳@92ncѶA ӨP,4^]~o|"CmD&tb̫Rrc&Ȯ·Q:8rBțQQ NHMYPIH0iW<04+%'NZQţoO_BܭihJz‰BkN4*UmZfj%hGK/yoN}o_>t3nwsBpj}c,KB'N&u9T$YR\癏' #J̈KN*P<63Lnzh%G D 6LA ٙЁB LB*F"/$l!ʤ8osNd884 'n^޵P%l}q!^ qJq減E?tg/o]C/Է֤O}}X\i۶Kmړi,Lh2r UчVBu[}:߸Ε,TmD ̭?ASYvW"4j2=o\]?zꑻ<nMp mBF9c/BurjQnnhuV۠0벁u\VPI Oqbj#g=БWon(Δb:hC1&>3G]mjИLhI; ( ۪YG߸yږa vHbr!jM3(.IGO4Q-0rB4lbՂ>ޣnFܮ`\za'lס%V wLP^f^w7>xצclӶ]ZC i y(\bD5$äI빍(^IN8%3GޔK_y5F6ji=r|fA lkc`7Md3u`)RP00j9r/8\q{&}CcϽVUu\{0z隨lUQwji⊗g|O9 #(=V$es՟9Qڑ/|ZؙЉ;[΍.܊xۉx׹k_M5Q`^af m3#@=iv:sQ^gs&昨P!sf=p׊W3wZ*KWwcHBdK%΂x̾ZqP\)+:h9mⴍU8m5SR$pmf!:b:n; VKBZN)dj:BYC҅R9p{l7w썧~Nѧ^+>wsO^S:3w/7@b-۴46*YEB:G.U37^UɕbL0j/×IbGnk0xAS: HHNҹuH[ǪCxv﨓o1 V]"}Z .6CRnAD\r{j3sqjŽipd/__:Tmm7dvf|[?]._o㗾oooķ|,O#9P^m8 phsc۵܍W6'O~gā?t>ɥ2AҤUL2\rh>{Ym_׌PQ@B^,VNA r\V<5G]As[9tNR%j3XmbgH% 2Ti@`3,Jml heV Ų͉u$B*Ǒc{jV:)S5lsOmz[)Ǝԇ+/\7JR=d$H*'eީb^P9å7bAH :*i@983ph[N}Ս[qڭlzt}O&o( 6hɚOG@QRښm6YD7{s\sURL9$$!!JCݶ>mh+-@2UURpᜳ^{o? Ҟ2- aǫtMS2_;xl\ʑIi˯lc{n<+劕lL rLngΕDkTzbJ2CTDXUuD4$Q05 瑂^3j6(b!b3Q.LfeH%u8Ȑ[߸ @5&^U* 8΢ڋ:`~+ `Ao]hkUէ@ޫ귪$52Hc׌Ќ#HEc(gzۺ]F!TYu 9D~;DRkDR],&\Q do(C޼(F mNM7D1o a:" N *U_fXQeQ̍.l;״s'$uh@ |E4yw5g8]$#gX4 G "Fl+r2˅Us ~4) T*iV/uf`"C..HS3wWjq,Pa|IՍIySw7 z]7$CDM`@ @lNQ,b#%zuK1S4n7ќ\e& 5F#OՔC07L7wA)`I4MHgy3 Yl8'b+)]UP`!m/S$ >8-n2^\62ͩa tE0/75;~j#F+Y2'^;c,ϸD[- IScs0.d}2G!4F-< fE y} :,^Qz뚖Zǀq"QI L!פ` f` lWtYv_ThfWU4FEiSZ BE@UyHX<,,o%'NM"3u˻Ky2LwS3PPzElN@㎍yH0A ΡBT CLEyb9:-vc 鴫],XJ["8$K0 x}̂Zq#ቧ;/]t`Ts鑊04pR&V@ȹ&Qs`Lh ʳ&X|bp]9G[fmp`8uݼ.H8 ÇI׷pCWB"؊Txh&b`!4E3s,T&z>(zLWiYP[^ǞF $ૠÇ104ӃZKDk[_0U+{F<HC֚y%XA <(̓3pľ!Q6+O7W-(;6\2ͪ;Lk 9/,\ik" $4cL(⫗ELNKY.N$lL"fq3Y,f1`>8ռTT$KʻJi]_]+2D8k  ( Xh"wCHsyzln Dn kF5!ZI+Mh |MQW5''*[; kX% `npIpZMK#Q&GMNKlRoj G,a slmt 5n\V 52s6Ø@D6v8bs `EL+f[nΔ}+R@ ˕A'ڄӵHQlm|MRy_qTI=K]p{*!"–m҃ /Hƅ?wnߤ}ꖩҦim""Z7^4ef{`g.n^IBsYPE &Kg,1q {U$ʒŒV,n *hp"ʗaP nyKr gߵKD7R%y h1EP+DS#h1"tIMVTƕT=\P%4 F 6+λ=|Ldf vYRQekf(z|%ݳZgl<1IoXIr}(P, PTkӆΊ1R)0jd+b 8>eZ ˒]yPӣe"TwES^,PPK\Ymtw\nO+mS)jKlASE4T\Ds ,y_|*]!uE iam1`Hʒ<"000 bAk["fQRd n4S M\y9-Mmwotu4AEwM@r @C*(:Wce5\>QERL0aƊJsU+kjsx1_C%([J؞[.:ϾtQ[n9X+*`,fl@kR+)Lƺ!AΣOƐִA#ۚR)?}ϘJCA&*T<1})5>)q3!d$e= WcŸ@ U5xٺK~=34ЯUoyuVxXD|ºB\q~G]eu7.ikst Z>9/aw`fOwmXaFCJT ~֚akwXSvzݦCo]/-rcRF jhtIIdLi0 ;8$I#`25i&m^>[dwlhud~Ӣ_DRR&sSt!@5#XB x* 8UM !geIa)E` Bp2AҺ.7a]#r:xu`Nl\Bi⠎uT󀛩R @端U' ,QHqWIjykh?:uHy+L,U?Y80`3(s۽逯^dCGCYF["PUKz?sK[^񋯮~1P9|,>}OӾߵk<1U)_sp?\16OrIY2_:ګW>Ջ~8܂~v|1#}~Ro}u^r~|0Es@v09A[,f# 2ROi1Pt9XiU_ O?}۪U-~߱wg)﮾QL~5~_G7=ND &}53S $d LޜtxdW:p D)"0f1 R$I;vCݹy1Rٹll1_k'7~Kg_~"D4O0t)y2 Տff[0h \ >޷~Uw맾Gw=\|Vgן82>{_68-"$&Q׭|PTTD &PAN)՚cEURD8˸J)R6^_x]ïnxMOuYc86^vٜ LTYkMgqf3􈔧9"2*xlNA3Ǭ%[kۈMCsU5E͂!g}eEuR0DD|雏e4D8ΉʒL3T ,q$$R&m,x 8DX$PY J^R-ۇD ._׿_)Dpa3S7wʧv2zd#&-v 8C_Cf\BFjQuJ><D8p HEc8PTYʂwهo29}sw{ ?gN@ phޟ:'»AbP^| z5`uxFPl u]/AԵ-&;t?b L 6G(e"W_faU궫/̬oNRt6 h]j. 0'6-4'` fVFaPsA[szY,YЊBJc/8[WWOeʙσ``sCgI 6g.e6 blqҚt\BMj*C >uϑgC/:eӹbI{$՚S{;{^=o̔b5*0*#͚LP 8!"$R-WT(O1&6X,pv%?wuH~}YiW|׿سGn}Ł߱C]++*$1 ]ƁYʊy%`^78'P PR%I0& A$,C_?w}߸Ȟ]Otܢkq[$ќܾuÿ}BvGS?=sF0f2@aBOClv@p8F9r&uiJZ,SF _Ab-tƭc%E`ٟ=t4CWmSGs;}H*xndӦZ/.۰o5WmY9 5l֑` %I+>y , .@i(J*jHvLOg-H96Y-KU?+]#ޙ`\8g ̈́DnVzBtuz]eV+, t<@)8p/ RZ>~-l~+e|N;]T|E3SgXMXGz{^MqչkfW%W͑4C 0'aui\e4?{xY0XBz _coHE@~V6S}ݓ<8GһMGz-mюd6}|WSc>=žE+Rã__ S,UXR58xuppȽppڷX3൶;b~6B\MG|r e/v?[R Qf*K]5ƨj4 & [}]#͍=N6v8V%aq镽2oO 9q.HpbbGn_K^8II/i2~I1&cQEil 0 "gp5ph gw*3kcVTf0I^#skϜWa*Yc%a1aWK@נgGCb53E.NȬn#?bm]U8,iݻoO^5'{Rg;3X!0f,% +bfuO LG@BWAYuQA'*D b [07,8r"}g٣#SOʃeg*6Fm7ӓJ. K 䆆׵x8G#n2Т= !K6;(8kN FJ,R@˿;ֶǏ5uV9Dyy'Z>wgXgK^|A'?܈i$h O&<0՘ksw.5(E 0B+#h5 O?O{\ǢJs{39f'O U~?1ȁ%{djB 2 iʊ,D 8NJ"_SȑF A 𵩀uPt8?WzǗo{vס?vѶNΊ1e=y??3H6={hp'޿?T@ 2" lyI>4kczĜ,i51^ eM05r]?|Ֆy gж÷^ٝHNN-oL +7H*4|ѳ9z?է&#ڱ?;]ጣyժј!cƭL.ubsMK~wvœSNy)x乃#}%={6g .5d+*_Qي4WDMQpG4:WjŠ[=a7E-0bqS߫NS51miϻedN]tܴSrPkgvé4LhͿ%i?7] 8r7+c4lyO VavE)*I]p9΍t6 .n;Ylǯ\smyCvwPnЬEb*AQ=+yEcO|-kOOyO}BM%I&Y, d|},qyok-"FxNMy[Z9^ʌuNL9-e~gG_}dJ2o۾zuO}=4(O1&|*2B(V SEe(d" t`۵  W&%[Kʔ)]%4|MEr.tunY4P1jӜǧjzT鲍>ħ)fu6?tmǢpۮ<p8;Wnz`fjhݹx( l-s2vYФ-oܾfR9}(;X(Q% Nj=]ѓ.%V4})ѴG%AYAчK,$5h  ;H5ZTE|^:x[/w\)(mm4t1;uc HzʦӃ/LEN:/_RLYg\]52/Q!"xxCi@@l-[\O<""Sŧ+RK+ʊ\ȗZ|Z-/#3ip=4#kVDRjz|,TI?j `L$tM1L(Yx6nad^<`@b>0PS"0pfN^hm C#=]wސQpTOZ<+)Sv44=v"οu`&'ͷޱi_)Y!͖AUjnY޾$/+x:>xU<{~'̽nk ˹t/t"ѳCzsi= fy[hcJ~uEe&*r_>rT}Zv}^a~b<_;1ٳ}SSM-q[Of "r,|bP DۗϞŏfM'- O77.?q`ʟLNl_|U nw'ݳUnرzT1\}e(=t8pH`;(vՊ1OWu^yXf/Y:OqvWvG{e7]hP|\ˢ>7v>=8vFP!I 4 PU4l[Xt&ݴ44>/;cymg' #Vs dHjdqzp+;.y'ޜ|pjEh1X>9RC'\ 4##1SΙّuN'܉'Knm5-Uztxatxtpo}uw,x{pw|z٨kw?V9vP`_u / e&E_{#*BIk$N}E% I.*L$D8[gǾ-?nuͪt6Wcg_9g~}yk:_؉tS[X<>%ow,)dThʪJCU%I$W @`+JNtLD~e28 ׯyΦEmS1鱴:3j 3͸Ks :Xㅠ fHTG >iyd0Q\˥Uƪ?EE@Sk:!tOk+2. UL*AH0${oYĺ:oSfgº匝؟;\2+raqpv^5^='u0CBGDae_W|r,Ԓ.|Sorf|͊hԱS۶a`=}y !bsAI|iD j" T=ILUK>Ӵաy KÙLK}c8w1":wz 4S?#PYa>z| BW95g܈k 5 40©gwBC' XcpJFf9 c-2CWN'>W_ԼҔ\J' Uv>vM[7u<1,2c|re=;%ʁS ٴF~tp7-O$Ό"$߶ՀROeԙlY˪9!"Z>1asK.1]tiWl_l눧DˊlJ r.e\(ĘY ["ՁfM6/+j(GW'tbD=p?سystyΟ>`J7‰i7W |ntt`Ƿn~H|q@z2f7r5FkWC% ʡobV{ׂ]/guζOZOOcⱯǏT5-,-[NoqvV9y's$O$[>:qΧ^рG!}mn1&̑4(t(pze-GX_:X`x8ibL&ݗ6;t _?:?E~jB%*,ztrU Wvrr_o\5ЉxL눽 f`+f[g[UӞQ5?3L*WwuιZR+"Mm=x 382 & F Pέέιry? !h]^~}%NSαM% a@L7A51޺x״nV9﹪gNZ%VB0<3jӎg+RZs,Y {lk6LX\Mgb#A3+G2iحt\'1}A{;KIwo CLEMerkkl=-P;"Awͳi $;͇3]Z9nZ_:J%,):HTz3VF,ej&06JKF'Rc ▊Ӭ,tܻ,ҚlR\BYF@ \6p6f_{7Tk&.Ig#!ӗc zKg&S# '44TDm['u55c`Qo/2IX\X\Ԝ_0nM2H[.\6ƹD [WHBL3KJ_ZoKܱl,4FKOrdS3$ H() ,=76 $ǢV^|c0J#h' ) nZA܊UG( #8( (MBm'56uTJޡTX+t)ՕD:P f⚮m"V 09oʫ:O%Sf.YT21$j[\TߔL16s-A79oXȲ! s/%BƄRlv"3:4n^RvĤCn#K# `|22]cqƬ2U}q`KtMmfYma `r@%Cƴ" 8 4PI2 L2BIO| @ڼt:20Nw`&P Jaz43KstZhl*vM&TޚJH{h,lϟs^RvXaԳyL\!)'M2`$Y6CĄ(G$adCɵV$T=%#9E]] _mށDhҜI""k߈?RP;ko>= 薉Dhpι"A΁,qqՎ'E@\bf<\] 3'xL7 2n9&hEYK@p@D0gsyV!8C"dsl>*B s@C!kb;BIV0yv:3+q8{Y|Nwϟ&?B 009l>\0as/=/2㽮;\Nop$ף%ӌqzeQ&'.HGS)Mz08₢$!-g ϮO-zl~U;;7]$ŵexjqNHXFz7.kk~f_&SCfRB'9/t8E$}w RbUϹg,|g͌~qf/o3UC@ӝU"_SYM YaFwJ8%pMښ+MLQ$o < ͒:Y(_'Ef=syVzuk/%OSUK]w^Qe]މ3HLz t Q|$6 9YVhH~ͣH8>jٿn ۚ*dZSIJ`*:EF$ܽ\9%gƧtD-=&u_"VGD( * + B\gٗlsePu``MfO o뚼F9/r?JC`Z/+32`䜯i^v22FpDu# E/%68d 09ZFHCq5& >bWĴ-yIs^Wtx<^]|֖_8TSa'<{es~;G, )] "dV0dž^x(k'$F N slhdp%KO\m ֓}Sϫ^ؒ*ݡrOko6^Q]Zls< 8%p.K6dZ) /C@}Ne)MD6T=y^PxH&D=2xd(+C N2l0W|*D)W 2Dn W2;ɱ$p ^ 2eP\IK⓯N^sa~tE% WwjsW6id,͗亶\hQ|M~+[e9Sn("Z+AA"J P&r rsB h| OwNz));[vxyɈj;޵+<:v{mWWND{ڪ]3rT!B2:d)^;qP$n2m$) P&EvT+"P4){,:w}xّCK4U>莬[[?4+*9|d<[_TMq wCo|@%F_WDQMB^:dp)RЭ׆9!׎yv)K}dtJ!×n^]r>)3*QΓ3ak-:p¿9LW;WnYFj˕@rYY?qp}wTRB] 62"%ȱc "pʬ!,r")S6 "*2:$UM›ojWl#qO%8?t+[vrZNE֭k ::vy-{&WķzL@}|[Ã5EƼQ]28m財Kd2et+ . KhE.),\琺Ϯoi8}񹬟,k+R ͡9)34X:Oψ+HheE:jj 1ߺ}qi+r+B-6Y,++QB%W(D8=k>3Kvq xh&.H$myXHscuNLsuUSӷH tS̖3L&PbѺ "g, t]cɲyV)^^V6aj|WyxWJ x@t#uxbͺ#':>7c_H3WI> _giUk+gv^͇8|ۭ+]MñI}rd8>uE9UJʸS^Eyþ59p0a{zoP~pI8ۄ!TQ3^‡_ dcq,xz1Tukd_Px˅GeMWF4y=yd(apjug6fg|-m쮑m|o)@mSr*:9b[&ñD] C:W?}WQ\燐+ kwƣi GFAEk fLjm,je1G8A4;LJZSXeiÏnETn\[|̑]://=u*3[vMegnKSk->ֵ=13Kj?{Ȍ$ 3~4M(J1,p*gͦ ьR܎6D>k5MuFy47X,m|ڑ! K7VvyaXG&g/}wfvE^}gt /gsƘii)p :OH PQ.S%y9ܧ'TVWF`%\=r"{$JeR:5Cy=.D>&&7D7'dx"7yAu8CO^k L?ޯLX`1fCND % M:˂?$G։a.?47ۉ;K7 RPbg >'y˂T37 :V/hSJyfURP?:g/?/5r[Dhٻ]$ [*DeêΑ38%[W$ Bkɨa=%9iߟv!z]t ; 998L״=OVy76ᛛNuNM\T0pe0s: yTLa"9O!fZrSdC[G'o))s/-Tꗶv\}"a丄o2EL[BNeO9㞏W ɶ ?<ԍ-F%8վU{/+-b$8q{:+Q *n^_̱BM]Xr3Kq&[3filӅ$i*_L(YSJS'U>4S೯(!taK𽙌uh?q4!RAA@S C Ef_oGuOOpD=gu bڇ{3TnX!~w}-BPDt+ktr'8Z34i2 PY6F)kh2N#"`<;'jB8m:[R2̝#n}i_`w<.:3'vЃ7|[[bz^{V|ǻVIu%JL9{ڽ:.pJ\xr:Xo$݋I32Giq853_xf: Mn]s7HR?z+LVHW[z$;q-l2=,k'> `HTx|{w:$)\2eѼѣ׹63ni ?kFW˿!5-㨅b 9ITq$$eeq 􅳉p ;H `[k&_(Qa0dz fƊ\!~MNNM LJos󧡾{/By8TO-;ҕ078Sbfc^9 GdcixΙ_A7xZ߿OtEzL 6v]3oԉ<'ʢع+<7G)NYy2.ml.Ψ)f0 Z>R0-Dơo4Н)+,A( XUt";N%MRVl< P% c֜g-K5!!t$.; pp8bL2t6Yլɉ 룀Hsh YhT @GVUl}?Xm]RVm}{S qyLcz$J΀gϻP|_WhOOrDق <7s{Ob?m z{*Y)ByFgd76"GmZjg3d6Q1UiB)݊6gY9@[xIpo,CpHTTY[ S ~e:/- ="bGy?݁sM EB3:K "(!uɂ(sD ⓙq`&ΘeY`Jh0nE:6O12-SboLk7-Û.k._:doZ9u~kF_|/p"zde'LW|E@8d 1d0MM818pn`B7M4]"q+0N4dɑ]>Oyݷse˷U~"t/I ^I)ͤ kK6Ѝ9Z$4\P0r57xlcєP#B0a L̜MD~372&xSCp+s_xT£^~џ>styU#CPD j6]\` "d))f H(]7 aL51LN @j8O3qTؗ;_ կqR3{nk/[`N[}%*jw( l4eB_Xf]0"A8cb FLD\4HiS P G5iGܑ8̗nZs.).?4* 7z.-Goyؚmh`*"@6G8flH&'5 *P8,GαDLg6@" Ph( w}^OiMM_olZ)*aR9kV{$UG"u907]SlLհbO -W;`+IY|AA h} hY3Y_ ;'} "j&Nu^s;W_?wM <~JNJ]]cEn12qHrs䶦BI(e aA82AKd!̂qMNX,~v*#iNw7d|:G|*q=G_/[So^7FnH8AP79Ms X3Hl0`V)r(S{@&( be=O;V)@Lc#A @uq*@:1eƬI \[ghɳk^jG ܧ 8=Y:n m@RgxBȂ5Kȭӽ|a^5HrCG eP\^w$fM G ]啎;Eeww8ya[9˿xyyJVm~gwG}k|h&ΕtI{r"Ǒ?X-[ Ps%rn33$X tXRdK۾'D޻lĎ}.XUXZ,rٖ-޹9>0dqyۇф998qPDi2Șd[-h뤢@TF690tdsݲ4[xys;FpM(i wl-sLJ?6X||,y9mӃ)gz[.,y̶C`i]4{Q&@"$N ^ L ETu< RMPXEu)3\O>޸//-߾+}_VLL]Vo?VLYirhTFpKs~)Y"9R-{@@$Pt2 }EuwJso:;WR+/>oTG_Rli}s?6swƔxF$+\S&sܐ 8㠙\"H %A7i:HDg4nYAx<|%9He7?;O׽w+6^yz;i]Gc NS@\y909.M] (̳~c]ԏuJ'YOAs@)0MeG`uI 0fV/~sg- 2O런͔ =db4bG#ZT2w%(}|%G{Bʷ>iY-ӿ:J˽ݳwwW%Q&p^Dr*;߼7tƺ7?UU?{~w.]U\qѧ)$>,iD00L"J"d QkamKϿQ?µMcTvxAr}Tr*U^5gޫ~oj(U8ܴA1Hr@$e30smPK2ESu @MO Ee<6:}cNONg~}cB9KΩw86&:xcS1wbqIH/]\ԛ%+y&#I3:ˤBαSdw;u Q3da&蜇S,339,P ,AK/'W}GCvP*ĸty p&?G~<Dͽ_XiZO&W } ỳLf@c䖖 D3Ac@d0X`Y79!>嶢߮'oONKb'l4 -,~_>xņcur;o xP}yY%[=F-6?zŕ\KPBwx蠚,C$R:f̔b)T*BPcJ]b Tzy%}k[ZVGfB=rG:Z:DsOD~7;C;i޶ }6{|2@g81{B0e 9f9bBĄfZAu613^lRԢ6ұW*Kç" GnԴPTu{㓉K7vOӯ]zGI[%[_|nrIӿo_[ 8ptJPip sX,!!$ s# u08lr raê_w*_-+W7t裁w~}cx8K ΫmdBL֮W^ާE/|m{O}?W68~a\Dw' "I%B6hLh0. 07)J-Aڀp4P>'dX:ҢWrg`|_/FҢ_hʞxd7xvwLϼqkzI[L-[R[}=IR]jJY"&ª.{e0Bi̭PdI3U )c  %X4Lˊ9/ˡ?bW/vpj[6l}qGVZd?5-\&}IJ U_LcSmg_4.k6""H`)%f'6Y C Aaț oZcK* ?E>4G# P DC$3vJ41;<V˖@uDɑe~hWh3y2'Gqv-^1Msڢ g֥Ϊ(3wbQrp] 4V. xG^:|/?:;7VӉ_Jeo%˶SWugb#^ 'kk ׮$OW^>bFPr0W5Up' MNjmu=^OYh.M=#h֛-;,R_]ku ʶALk։螽oLGgƭjUF+W߰W64O)?Z6?y+kk2401am13}Ƭf yR<HeI*C()]$6S|gXy{|c9:[:Xl3#3 +ꕫKC,.pȤy4Ҵ;ƾɔ*WXFrtM_ep m+ڒ4&֔67弿gē#w,FT԰%9b AT-P^U_vnJ6R*{mMF&ҷs{8;pdznm8sBzMyMyb{櫫^zefotLS%.&z] /ZW̖၉PrV`ܛ'ߛPDYit AcM k߰2ramЎ%R !?zV2vz25e2cRܹOB3-\wղ25.{s+3:}l} zr߿~*W9<"ALfpEĔd!cpՄH,]Xo:jGn`Ow▎],)69؈vI;76jfg1wW%j rkpê Lk0Sv LD" .Dgܥa#Pte pf;%LǏ?QǖeE_m#A4M)et5Al;5[uKΣc7^bI9xy1ߥhonjۻo{Gg(D*#.J( (WBu5&Yಀq[ZD8Wt)6jJKn箮m \x^SwW_*$ ĆBũdה5.]I{;x6wmX81vN}CU^Z[U]V-'lywڢ'|Eݝ *C^hL,mBTUN "I.3kϩ pE8?ɗ6^Tb73fS/j+aIv=.IE(>4L,#;'onrrmWܻЫ f>v^mCSD"i65 b*hw*Hb`QR /ʦGekO8>WB+nrSCLcz8y| sDY4YhVɜ8°ZՅ| xQg*YX|T"̧5ehsI;8ܟU?%ij{זjESue [wyZľT(~w\NqY<#RIUIh"|q?rRߏ )t8VU(f&3&y"F@Eq`n +TOޟ6ӴDH)sR{E4nK]H߼o]{g_ܲm@Tv9J1k4 c6:OErEKcXlEKLE?x.Dن:$G%UhINw쇷DfFU@֝ВRX<Oe4.p<&'qz佮<5}ߺ]gXT~w*C)"!@):$A5d&9%4({;0Y mPhwW8b|bP<Ø!DCiOrj_ēnci̕EiWLMIK!^=1frcEo8?*zJmDX^>եY`:uTC !{CN*3ƛD T]$c%6^P3&sQE|;KeyE10x9fG-׹~*W26 ƌ|IUJ@ id3WԌKz~\\Nvb %h{6SZ7ccQyS#M&MzCPG<528wHڦ"Z,nWLwH &甃&u^g:+92&uq.')9EGz'wG," sݹU@8G#Ѥ\NX`Si$f,&?+X[{sM{̫ꪮhF7@CfHCfB҇L|O i }* jf!4$EO @3vF{S]yל>ν7WU Dw37Y{:[{E&ڎϬ>tvw?`/]w]=42y)`;nv޳Q!䱜e.o ֨C+L- W_{oFPAX~geC9 3-J9sDd[oehg.$wҒ)tOֶ{馂D5ij_L/[kuw(Kqc@~ԵW.}#ϕ ˔zٿCFڕay)v|I\+RA1pb r{.{ҭW~a꯿~r|¹7.A! bj)mӱLh&'g9mQ{qw?Q Q'a"/i+V7_XdL^dnZ{9Խᄑn ݲ]n5<}߱S+i+KnGݽ""$iރ\m7&}[2^_LwrdEq+l$vWΜ^\+77_ 8VIۭǖ/]Zn;p_yg}WE/|҉Wn''B|Zus{XWo\ڎ Á\㵡?5]/^y$?rc}pPorn9=}}4b@wȱśyc/ȞnNd=z(tx+׾}\u`%W^^4\6XH);y_"*ǗVҵ[DE|py}c go6b*щhD{ wxv߻gß:ɊVz}s}#x &_ w_'_xg\}{[kv,vZE5UD0()cHV^F zDl>FXM된)j$?@B}G5 /)-5MCv`Pu~&ڋ]K⍵'YN#k/mlmv:O]t}}lgͣ;Kٯ=~5{/ѧϼqu'Zvƫ7ϯV?hבΘ3sQ+.+uLJc ttҮ'[}O||iPKԹsmq g:˧ӹ.oo}?C'A؃LJ{l+2O߼Qn<|a͝:V+o?O>,>`,Փwߒ/>x 9PqOSϝ~ݍ> WgR6,/vzƯκ}Ʌ u^[]ΖΥ˟=76<7S_YN|7ZiE3!7oHzE>r s~qܷ^ƕK .~S˭)=zzhn:Ͽ376]X_♵}O e]oS/s?7nXRVJ-nX{{=zv,f3c?E^޵sbC 9:/?ߎz޺n=pn͝<}̷߾y枮f{δ8bqyrP~^ФwMaN?x7;yzv?v[x~rpx+/'[[“/mSyD{n7ؗ޸2ū[r)cC7/~8?=Ѕ7vW:K=}f638֣v7co@sn,wDN+:ӽA!;7po\ϝV"NR ؞=әν(|=ͭ\rNލՙn?yԇO9f|"])Kϝ>4-.-;g?-~gon'V OyV=6+W[~m}n=^gwsbqexYݹ5-ir׷g?~jŖ=x:)S睫[gi{s3~no_{/O=~L9G{Iܣ3홵o~o#HgKS{W7dgX%(8mJ~F##*)C&49m,MT7tW:"@T7iw@[4~Yi{za 3 Ivc'>d~V+OZfݽ2JݡkkGe?b6BN_s.=jQDk z啋7AYJʁAߥ}Kz3y}f-vLaL$q7mLbWgՒZdo"97CE4Ew.ͶV5ek3-- 'fFԙ]r;jp랛I<;7݊"(Jl9W߸ ._8mw2'7^8薴MVDݕ L &yNI+ni=(Dþ'{f'gnۤ+pY3yq_%0fNd]̪3j/ZaR<>p"N3Pwefa9.}+~~^qsmf&vl^=ZI<$+w2}"9+"vOR%XS}=ԩ'JٗߺL*ݔf9aCNk1TكH0R"RR86{i !*Ք)o[l?XvwwߕCn"6cn1 D-C)Q&.T$~抈Pn K rUW5:@O5DJ0H!J`A)3NR^柾yO~l(b;˟yIӊm"a*E,/v^cK{!UU!E%uJ)0pm)S4 G"FZ'oJ뷿~?Os͔qűpH">!x0 %x y9ְ0~MԘ¨sB*5 cC(JmY'"Cns'ꟾCfs?vWſ=sw_z,3Si1r@ʹ"(Ւ8%bVQ1d V)D;4Vh=/D 77+×RU~%S<U5btKp<ʨ|ڑS']›KMY50YԔdyޡix(\+ $N?u'D%aDID$(dUA$X""E-e8 fD<p!Fqm/8m-uB@( yD6\*pD\*"h 6LY…R @B -CB]Hn"6{(AI*D?Z~O=FlǺ23L*:1yA+l^sq!I "ҺF!DOfʂ*Y YP$@C"f)lr*^(NGcdA66ݵO_s׋S0lLb#k JjzU)DFAE@ bb**!@D4,51 !"xu^P** yˀW( $'[^zaNbl@6Bb1P* ($6 r'E XLAV 3z6Ǔ'G` ĩaISMN^`.`{U CH!{Õ]F\l .14X1ԇ#֐x5`TƋg&;-s|%(8U)5bU vNV1^3 OKՈɑQd ޑƑ F sizQ3\T,^8Խ|*+$&")E99"z#gd0p 1^=. P-:QU((I)s):1}H႙^=Т"CG&l%`P&D_ދy(PH`%xcXG&"2D*@ZJNUB hI$FJYSs}۽~wN[ i-<D lflC$YzdAx ^abc!.[hl)SJN:3-"G jIP52z"+ށa}wǎ'!ۀ\aV&jFTf w{0r#eQeC!cث 8V.##v, Re,*A#RB>Z_8ϵN-F6YK!GgLٓ9DHWauI"!u+y#رFd&5ꉭ@mD zUR+< ;oΧC+ DF}@Jj%BIޓedB)w)yUbʆ=<`HUH13:!sz/x\)2(D(R%2es}x}`zq$, "E7B S~e S6G8E Otb[o^zs1h!Ի`C#,rSɂ8 vBJ;U4iiG:R];Q2=+шQ_yETw"k_YH `@B N9I-9Eg k5`2B``},XђX&T))Xqk.O@ DkDJa(Dɐ+6JQ ^(&p9Ld{ Y!+Lq=ͭ3lp8klƴ:C/,»| /pST)*vL\(l sxAB\G`f&LThKچIq DI_y(c6W0/PǷ%5ldx#CZmsҚ c:0z9RJ# +G)o^FFoFtuH|4C4=M !tuc@6xuڠT;$O2gΛ܏Uʶ3Ah$CiDhP~!Y~4h|lաzS05Ċ$0I]iu;#f"B椞%&D aMF+$j%ֆ_I(]ٕC"6X*$Uz`5X+ 15e]ʃֿ=%iϩֶ4:&@NhZ%2:UC4Tǯ&M(0zאEv(&Qm}/)nIѡm$ִ`FnL;nAJVuo]M#!zOsf.|=H_"* 5DѸW_$rU  xix@Ճ$51G?M85n}QFj舢GI NBf% $>PG6 U|!(yG$hzt盛 !QhJl3$bFqak(Y)^UT:а^'BlࠁFWTH-N@ @+5"HSC jʜdNو(-z+TQe5(ܨgBo.pNrR-K-a"6ġ&իB}z~>)7ZH T 1WL2ѪG/2&T)ai6 buJ bc->?kJ UEl)^T.'- 5_F3>^T }7{r72MBL%Ɖ:/eJ NPä !6Z T0Px+wT a#Ci̞\ dk)ZJQnR- &6|ПNhXJC2fIt|5k 2vlcW}vWƛS5Z&va(jQH V2 `DLmIBpjqr` 5<L,ҝX1:" U [f4Q神NZSUIgk _}zkNuKMuꑒ)p3qsaq:"oGiW4v¥ 9ք<ωdthXkG.)mķ)@T^nD]SŃirD2,&;5I8*aʸn'K@Hi٨}C 'W:5\]\KO6  4H( TpbbAgKC -#WmnBm'{ƖJ&@bI0ȱSEbF!#%RU|u"ٺĒzv82!CLB#$!Yä!0!w"6Њ+2物(2Teɳbt%B_@CPxA: 1&IFl-F?Aj=T#ǔ"9D* SFxtd/9ȇݦ:h3 D^׻ Z6-FGLU:o3|~w{ԻSک6sMSiГ*:{5""FUfMO?A64ak ׇsmJILjRL`\bM)!PsPU*h& #AIHwȒ@u\qjb%VG%K;)? ?I=R" 5wN&),ql*@XշkdʼEkF1j۫QV_\ $fP\sEqi-\#NiK%|\=cg7 2sr.=1Ȏ4rHW7 <È(fuR*+f18 ̘"ʜV(Uj$m tbRCm b`X"Չ_BۆReFK'wiH@ 6 Q{dD r&(VJ Y N9{5deiLlc* "I-`d˹B (h#:ȸ2Yq+#K 2?x\@7۠8$,cGZ.:襥wټ/Y5C6$_ ]կ0ot0Nɡ=DmEF5O],8oą(UQqN#1#76hd/6:PȎb-),˜Tfz49څCj#?0Qt@_0UB]ʰ@t cCBX~4?/x54iJ7IִzȨ@QU]Xb_ۘ Ҩa'*e-XZ D\pb\-"DonEs cfhT.֗X9E(50\'qdTo%hhg1U ""n|VlxL1:M*^Md4IJ`,Q) LD1)P:u B3%Tu/XZ29Fdu^%XlL\Yxú L4¨L"L+u,"4fܫ iD@lvR#83cL"nbr'[^&qaY1<ׄQT+MӴ|8U;>nhF,u eCN|DTjc1x[>!Bq}M#$h{}EwbnetXI˭K!]TSr+Zfj)R{fʦT;r4:Ԡy5{)NԍR#-_[;'2rd q>Ŧ;x5EucbsʛK{^#CJFѣHP/ "B'LG=$LqT㴾nlkLgݰdWa"у!aNDo"Kc;|bG ,C[)P/22;0w&ND7@l6U&!̜:i4 *_#FDeG1_ QW LpM-uj|G)e7:"'8Ƶxf¨\E\2l#F1DGkz‘^F :R, PU_㈎V6#e34X6jj'aTa֚+6&|+y1>M_׹;'wnSSЈ"G<90jXO}p5ף#6}#e˕rj[ф,F6ϕc1U8ي;/h7G2{vC])E,=Š׮ʔ(2`8;EY X W.!4Oˮp([Q~Bt1uqȶ};mKG? T[GJm^';NHiݺӴ`r?ID=x5?D:Rԫbp)Ncjt01{+:|A7zw:F)[iQI?C4e[܆+ߘ<)y\U|>B̨DCymɟTb:%ps0x?>ژ]WFtQI#q&0ƫU҇4@"a 1zETOv׹+0AuG{vJSD*"U3j(wҡQ΅Ѩ}>?J"zUKD;\RۼeʝE9A:>x1e2Ϻ=&vEPoƪtgO{eNH~:ݽL{[ϓ>8y\lHQ~g⍍h4.TR g/#*T)Ȗi"R48T'1Si^YE,+G '"cL]@ʡf6uV ]fnvmnlCS+izdx0C*߉qT&M}=KMv `M/8"IE-QXeTɭiH1F]JQHFߢUVs̝ts$*t, 3~hu&zt:_Xp5*mIg`G_cd%-BqX|g]r;ojME'ζ6{7[=wM*'0,>Jxuj\?:F$b 񠏪:~woG%7ZmB@x+8Ƒaey51W͎2455qT<}> S-JSJ?!l \페Bvh;X?ɞǣ)QpIatG?ѥKY0bqByDvZ4BAW}1Ln/˲ߴj;}.gS~/O!xx@K `ݓi }C~ћ-C\31 й{6&a$9>CNƴ4軆'x  ![櫚Jo=qC^VkSiɺJ&~$WzX{AwUQ,gK;^`kCBu;y H2쀉winF~ḿ49M׈EsIñ:fTk@B_Č7FQ\{!Vӭ4γ vN?jyW%S2TxVٺ*?#>C$۵'|EZsʊ DX9PBɾ//~+y*<ɛX0>&č ?BY|1:6s_I5LWLqpq¤ur+nZeIW ϵWX E{??[]Im:1Tcep`dJ#I>/>0m*|u ` u|{R sX+ordErgZ~V}6~>H=ESnAS8ẹwإm  )c,n6q`1U?(fiԭW@hE<՛](i4Tej}s/sEw7J.pFSN HG((8]n trVO<ƙvUXC{S-=n{⾴ˮؐfv囝̖gMg~irՕl!lsCMP]zGԽ"|Mxb(L=m pRZl$MVܲe|hE7dA"d'S;3ƈ;Bs[c/5j6ȑ٥YyEJC{Z鼙h^YVN:C}܌MŤZq a iG_WCV)b:dSٙ6r*Sckx,2x cc 0*2LAx|*DQwJ*x =L)9n0qR5MqX6D*R7`/ WCel*V[RQ1q`G( Z:ø0;V8Tק,)'PSjo1܌r<sdܧBBpvsߙ]\$nB\5Zi,(6WŽ03Dg5ӓ)wDt%A2XE0cHQ+yWVv·l1Г㿏~S:W s(EQ` KP%TEH7 uRM"g$_bJdyĴپ8ty߼b%Rp00sn,:XC=PoPuZVR-Jcpq}J#B.l)R_ |tzY*9AFi_glV.Z4mA ΂Y8I+[wȇSzoObj1=ߤ.,cAVS} kz niz}uq! /]|UȂF Jf>D0I+o:TDZ'$í:LQ'y?eGKtlm|&򯟰@U_eA'FFFKJ1;>Z^+#7MUrquCEu`\UCZvRbj4v,B%D%{lSQeu OnR/Q.9b4D0yގmNs+K9^ b-{H2cH[p3_,{H5dGP ǶzH[.wʍMdUA[L]c}R U0 pR~S0 $eze%9nrp :N9<Xm7VR՜֧I=e octQ̹]%iDƱb6F]*%CH&Lt\ %>$T}O9Ob$] Ȅdf`UpW׶S:Bv < jIjD1CM2{Jd~/ԍDNzUd#deL-'uֽ?3]!.zY2$d1`uź.71$ͤf׀C; f=)eS<^k0bzb"x&&Mnr,3;]كg5xd$mF})dR2 ),1 LwJإ/qU}>{ʲTp1WTL%rlЬVhYUqd< Xf{s&69=ZAJ<) M}:d/v&s l=&w (O^;VC7;+6r68>'Yp͈6ZAc; /)!D j.?(h~WO}fuGFy*ɒ{9xv h>B^nX6~&mhN J3*N$Pdê|b)Br+42pǗ4nWgIr6$f)8(DCa ST[AB-l[$(suցׁtu$յuKbޫ+Yڛo . Xps֭ }Mݞj(g1Hvuȹ M?dd]<+~uDΦeʷ ԔW>u&}?teep_Z)Y.uΣଶϳ6# 0`_sYwXh Va7S;5hj Dw@3z7/2N;}<I<_trgN-"F+8S|q78YCT-ҍ;%Fߎ13=523=3'ĹǷon6-^v Q1o8)`@eIr˵պ5ڶήm4w}{e3=Ek \UǾ<?=Y\۷ ,_d oD"7$WV{PɑoI%ХBX 4/@GCIENDB`instead-1.9.1/themes/arctic/theme.ini000644 001751 001751 00000001654 12161555567 020033 0ustar00peterpeter000000 000000 ; $Name: Arctic$ ; $Name(ru): Арктика$ ; $Name(ua): Арктика$ ; $Name(es): Artico$ ; $Name(it): Artico$ scr.w = 800 scr.h = 600 scr.gfx.bg = bg.png scr.col.bg = white scr.gfx.cursor.x = 1 scr.gfx.cursor.y = 1 scr.gfx.cursor.normal = cursor.png scr.gfx.cursor.use = cursor-use.png scr.gfx.pad = 16 scr.gfx.mode = embedded win.gfx.h = -1 ;unlim win.x = 30 win.y = 16 win.w = 526 win.h = 562 win.gfx.up = aup.png win.gfx.down = adown.png win.col.fg = #000000 win.col.link = #41516a win.col.alink = #1f2837 inv.x = 620 inv.y = 16 inv.w = 140 inv.h = 548 inv.gfx.up = aup.png inv.gfx.down = adown.png inv.col.fg = #1f2837 inv.col.link = #000000 inv.col.alink = #41516a inv.mode = vertical menu.col.bg = white; #b7bdc9 menu.col.fg = black menu.col.link = blue; #1f2837 menu.col.alink = red; #41516a menu.col.alpha = 210 menu.col.border = #45536d menu.bw = 1 menu.gfx.button = menu.png menu.button.x = 768 menu.button.y = 568 instead-1.9.1/themes/arctic/menu.png000644 001751 001751 00000003440 12161555567 017675 0ustar00peterpeter000000 000000 PNG  IHDR szzsRGB pHYs.#.#x?vtIME  ٯtEXtCommentCreated with GIMPWbKGD8DY 6t{IDATXõilTUgެo3NK7JRZA-Ⱦ#PE6#D`00f}ZZ{s=^gH ehF(da$蔅>zLa+-+S3"Ax( Y(\[UC(AҝHm=^l$msݟ\8rOIOC!so9ސn[c<݊)(9T<YI6 Յ- [PF=D9nWʌ(>'fYJ zw]OrZDj'V1CuՄ =ȁvPSfz[/8!$ywf,8.:"nBgY]=Խ`ɃlߑCPz}qlvI YL̍LɋLWrtdz~׿?lĂ^B 0Q󲙢) go[ɽ^ǻK3ZnEu: 0Hk0IF t?q׮;yz*N|}%+~5b̅/N^ݸ&-:B&%[iEþ29:0^y~[ً6N}kC̉.GO]%ިYxu<f s]lQ!y}%Ox`;zE+.A8#whY|VGMs,1 19- ZJkU%E_naBŷ`"`@^v~p~$*FhEaZCJĤPN YMިM4(is\P[˿B8&BY1kE3Җ~m`E^-9!W Ѹ $A`q [lJȩL!mxm;{`@iwfMr`7 K}kY'lMVz)&*N-hvl_mrǩ5{֩*ZZьps9l(3ޠ}C H`9vw0%g Ͷ#m'>ׁ:0S$=!Ν0xba Ex,B.<#e +:w3Jҳh:%@u@ b;fZ}q9D¯%ـ1 <`xJƅ<:*>UD崵cW&_FRqjFZ#|CkL 8g9#!A @ "aH b$do5s. X|1d,Ov  :` dbID78IENDB`instead-1.9.1/themes/arctic/cursor-use.png000644 001751 001751 00000005552 12161555567 021046 0ustar00peterpeter000000 000000 PNG  IHDR&, sRGB pHYs B(xtIME ,FtEXtCommentCreated with GIMPWbKGD IDATX͘PgǕ""g(ԀQb(ذbAMl렧Ɔr8Ω bAP9eAzYRwXT?f\fDͼS`=ƖaA`~?\E 6nx@Ze2YSQQ R*--^wtt|^$=\Pi ^Ts}0d;>=@3[jVV]UVm<~xyAf /uuuTJ͜9 ! q#ymB̦<|pRrun÷we545Ç'w,>٪U{ \J*6 AACFv1Z۷ҥK ?zYVVBٳgSHEj@֯_|AB Q W<<<(((H%%%xeXXXa~~3Qp N+=P\Llٲsjܴi Ç#G66wޔq㥶Pت۷oB[nILAPl=?׷zo ,zkcdhǏ]pANl=zOus_}b"J+Q+Zٳ/nbγӈ'O^֠.j(Ԫ:@Ԯ]6܉'RPSRR*g脭[FbϞ=ix=XXЌxAq[( cRCBBmBWM~Zzu N&9s&mL)GYI8pAoJܷoU/`;;c fYXXC!'Ot=lْ%K"`Yw^h_=7666ѡVpg[tt2/""BaddI2K^"+C)G H% 7>P.NFEEɠD:|U ¡ +gJ̃+NK&OAċIwE-#BS>xo &(29 k2J!Ɏ=*sҚofF({ک0-]P@ܹ#P*OQ0qDAF'(4 7 3y^z/][;.6jʋ/Q)RB'$h?H4L/:`0w\A|0FOcPxõܼyIB {I 2Ν;sƍһw KPbtΜ9q =z p-P8T{<44[nӡP0BjYŧO$ ZhO%(/SNc`PcPnhrCh3449y5Q b@daWLJLL,ČW!^ƻp7CMyF6C`ľ> 0iddt[hEߌ^\uonQM8(Fs2qZ<k׮PQ{a6`V˅1]궁$%uuu7o0J+ ?gQc @ {|"~'?Ԅ$@~f5"fS℄1MM>JG8:1^{Aw|&ٳgmױ܉}>>i ~_hnpty1&9"`y6lRŕgm `i"+c|ʢY{ζ̡LIuO'e Z˔kڡu/DDIENDB`instead-1.9.1/themes/arctic/adown.png000644 001751 001751 00000000531 12161555567 020037 0ustar00peterpeter000000 000000 PNG  IHDRkIsRGBbKGD pHYs Є tIME #ȯ0iTXtCommentCreated with GIMPd.eIDAT8б Gzap>&V-M,e ;~!iX:SqӰLLaS.U#8Ia}agiPHTB`:FݟnqIENDB`instead-1.9.1/themes/arctic/bg.png000644 001751 001751 00000547764 12161555567 017347 0ustar00peterpeter000000 000000 PNG  IHDR X'sRGB pHYs Є tIME$bKGDtIDATx˫,˶#"j' e @= P_ SmY-6 5caF sk92c 7"5kܳY_Oqxn  Gۿ__ ޝ?_?#wlO?wo?XV-XWW/sſ?ꏿ:?رౄ/?8?[So[7wou < 9gm~+GG𽒷9 ? |ET;|ǰX@` @` @`  , X, X, X,@` X,@` X@` @` @`  , X, X, X,@` X@` X@` @` @`  , X, X, X,@` X@` X@` @`   , X, X, X,@` X@` X@` @`   , X, X, X,@` X@` X , X, X, X,@` X@` @` @`  , , X, X,@` X,@` X@` @` @`  , , X, X,@` X,@` X@` @` @`  , , X, X,@` X,@` X@` @` @`  , X, X, X,@` X,@` X@` `cpޝs"sc/>m |6oŌ=kzG$'^+9 :G߾t|0O_C5` =[Y#WW`Q/zcD "zƾ a{q&"uu 0x ?[ʛ[YHM]>WzϡnG#PW76;u8ɶ&vO)uw7TW95֗R\_ߤjg2 ;+ԕsο֑G26coP]-W)>GʁۯD~d7f*zne^Q(ee[ R`Lwە!u2 )0ZRߡ:Vv{[Hi6כ) %'`X>rS|i;܃oԆߴz1PPWG5SĐ|fFOir[7w]q#'rA޲w8HkeKLnyھ/pu5[NaCDdv4<倸NmJZw$`Fzy˱ 7Es/ӎhC%G۱k-R8BGcMdnz6z|q Uoh|'ѺH8Sbbuw+pC\]u>ؾfC'2 Uciu +gZ\ɧWWնXzPW G!v.Cn{QԻW\wsw PykVSP``tDߜz˩cw}RhYfIW5ϠAJ<:(o )[_LZ9QZ Fho@H}Yb~D]i^qM)ݸfO<;V8\얣Mk}N:4|v_ʏUߊy~o\a"o=S#ѯ$ b|ǽ}UEu @W}I6ZH,{;^_aVoJWuCVU~A{7{+X,(0j#+;",U߮t[5iozew_T:0o?y'&ʭjKmf?7n ^j~#IYbuʷx#lg} ϥnGJ[7kJbr@{햂/.y%_Fkš M;"ܱh%NYJ=en{˄=b6bm__#;=l%w,nf㖩۽BKFo+.MvDXkE~|PtdXH_MUxD5y [ܖrj,I|1'w c/X}7lvWqvטXg ?-t{=\֮heQrHcݗqYlVkGR)|bĚy,")[G':XF;yL?Uw7+ߢ)R*<2?P٣.VO} k [cdOcMsO5X6ޞ#&8'e.z)iv"|V|ſw[VZ2WbŊeJ:=/ AioE^qi5l%_pJwHCx[$ّw⛱|c&/dk0Sv!lMQ:[ue4YM/Pc9q21 @zpv4wxe.~>z7?77N4pM]56e,~;AS.SiFˤ9ievt23v7+17XP,i,?Z`g*<ed% wO0,پE}fFd~_0~ۈ%=( n5ԖsGar ݢ/99}3[ʊge[ռ '&,𤋮Jn֟tX&iB^5M!en7-n5gߚ)sh/[ȪrIyTMOdQh|7#xooZ_|Q]e{6u0,F]Qi+{ZH ٸ)#zMGRx9du8\F;nmdϽ~k|r_{٢f:z{ie[C{֞|P"̤vL$m%b>(s}Ux`qdS[g_lsowWğifx|-U=q|8;Y{beRl~`mI,m[$Rz葀raWLski[V/l-#nXDe.UZ|esh6@k`ۦxdBlgVs:[oz'=dVNձ^=AV/7g+xFl.onm{%Cv9úOS[iqߖf+խH'+GrlO?KpVrO;/ATYi̗ţU1RWn3C3`\53YaqVLKȡ_<(Y`&E\W.CW=ʶqǁkDvܲb29o 6Mcc˱ܣvfǛ _\5 φTk̊V3*Zk]z7.zMN6];&5L;lI6 _፤k-쿹f{`R5U{ʯ!}u#9xϒ6.]l~I*6HqlK[h/sN}1dIaԸSl{<;51#ctJ-7sC;n] v`X -܏'7+[/٫GC79m;kDVxaם-qrG?l2Z]fشxnkg6 `ltbл [2rа[kg[Yܫj]%5C2e Sl<@bm-{hri-`2QT[0YIWͪJ7=:jB8#;Zzq63ׅM{NC )K1׆\tc-QGab:dv:"X'bM6e!ʬ7s<0Tj0ъqR;VSēv}޻qcwd<{VOkY8]Nj}wyCuA9/nS-WәX'.>O-KC2O֔l*h-vVJ[qv{E&ZykUݛ`^{:W9*@°z@OW&L+?qQVxD9]Ɣ% >wV1qOUw1N 8[yV^\c.nnf87CJ] uy;ۭȜ#v6w14[{|G [X2]F֊ܐ۫NSE罷}$u7V!oScj3 Ije|+Aͭٶ't٨ۦ]%^ّ6MEYY2 bϯ B$/cgZ>IY ?ȯg:^5YF 77>ڻv}y)=헽Yf2][ ;>eaY}_1bs2UlNķw~CFtULP]k/vlP=Bg6˱G m6bG@6nPF!C 2ϹQj*Y1:7 +3Pz6;*LfAxUZiXCɇ)h[iZͰu[l}9^U9~\fs*琩=PxeZ{nwoq7WΠ] _6nvR{XN)mxp2\S-ie;ԤPs.͏c۷,fcE53bTD7vy>TVV/ k֬d+-GFZ`TjTj\M sI:Z?SJaqsQI\?H)s3H ֭i3l~jaGֶ׭#Ҹ,duBqHeZdLJ9p ݽz:3Ŭ [+v!ePk[!6@Ϙj4"DdT.pXuGqa*6E-Q$3GY Wm?&ʶ6W6ߖl',NNGo+m(=f;U5L d܊i[Q$if!:lbl/,DW-Z+ i]֔YjY& bLT`-,7Q,}Hs6еƑ1pcHXM9vWaa/ldP=gqGV[˟>#v)I˛z=Zf`Kmg|cOteGvI/έ[ ~/P6/@ȇh,1zC29P+OzK(KžRVH nj wn beqz$m/@gd)oi;.eiN.]a-Np迥1Q&;n | 3@,Óxf6>5lX Wh M8ӝrdhX7U=(~'aBɼaLB6b+YqI,2<; w_lX/歵—BQX66+ gגF,KǼo|vutyVnضc~;!br"zxQ͍~U%¶_O~%jOiYi"-ꌸMT 6ZYP?-J&VJ?--Lnƻ8*~AvWg J؊QoOwٺaBĻm9+]ܡ[IYAkNTHaa鑌pAeOjn%}$]֘/d"ΙH!j䜄X;P&&AquuZ6m[hf> f@t/66Q'- E29h/gb#)ebevq-MwKMKÆlj:}KNU=6ҳ) 0Yl`[$ %ܡEnCkon;:a28GlgX2^{)<.-.\\ (k.clh] kSX +ұ)髼Tf'ar25?7sx2}em-~?TUfm/κI{TD4e$GXۭf7:eX:KHXW~]\1Z32Sֲ&F1k^d:ZJ -7&fc%Dd-\iϝ*n*Uʺ!%](S ;o~tLg K =ؖxĭ9ѭ+/CF#DLYQҌdMme1^m뚎[Lņf8EMdYyQb$Jh7QBYT=zWCǔ~kB:˟>xTѩY))%feb~<_Y\ Ιs*L55kfBPmD|>% tҥE :vrñs@?J2`M+vk\Njpѕ/ؘebMlq1s5LwEm-`+^=Wᦻ^oպ¥0^;"myGф4h;uk>h3W&{˭h^[E1>}L1Ѭ|ϵj>vp (9n4s&fK[w`{f-䈷kYaJ&W:(p""7EbmӚ,Ɏ?aY.45~q:DZL(9vWyQ=Czg9 VĝQoՋȵ}wIE<8_?^./ڇ~W d>ݜbڹEV+D5H--~|?tNI?}O1YS}e5us _.M)VtdJdӧ΋Ǚ&Oø[ެ$l2 TJ -g]3)-d+E,-AdnJrC#ܦmm)c\",GփɹB=Yw\XE`wSL wfR-#&JFEu"g"FGټ.h~Y;D=UZpeICr8zRԻVv۬9:#['Skz_Q6*=cioDeMQ.m5Hࡡ:d!krNw֭議V!7ݗI3'|j-6uɪ.)4;2D},lqiSM//?~p}ԵT_d~C{O9?xMnI^<;ud# 7C=sO]/޿L׏//U /ϟbM]ꧏ5=={^.O?3GΑÓW>}ŀT۽>D'9[Ԭ;qiyuLߖ&vmgYBq)䐓hŖ J)[mOntb[́m.f2WgAf+޾w}F ڸ -f4<ԉ(ӟk6-jU5(W2ߎ궋:\e:߬d[;lXI,礸6;mK+[wOGk.{U-vz-b2y"ckgǻUL v a2Bt h3ƷbOOE6յH3/.iJNkǿõnd|7Mx\޿{Cܒ9[dd]XDv[cc hoSxQçOMMOUU LLry<}ӵ*$sw^.uXWv|QgNԲxqsI5Ƙ{->U%=%IurW+-ϭ"O}wߋ^ڻ^s{窪D\j|%%GBDEUr󧣎E^FIm"fQG{n=즩uEXndsYeG ƕwFWNfEcoX?7f.6<坯ivpfHgk88XfqbJ}J-]5&qLzm|dr{u lv?Iu0Z%Ȟa H$euf?Y`\Ҏs။ۺv=5xS2sOϼ%SRpڸfǎkv`6nD"Y4jvl4E1H]Mj?OιO8үM2NZ&%5&Iio~R_޽; 47>KMRJry\bUɐNr?e}}||VMܘ\MZ;J{E%r^_")󻧧?&%_NgԤT%Xyxc[3V6wfN49'{&}5k !2q-L@>-%/utmY*:6Ěi {>p:$2s4ǿS_PEl#Q5y҅V[NJ*QJjcXbԭ ֻ='!u}Ȋ_U`w:e.|kk\Y;TFuIg-ӡZפks,cô(Mㆭh00U+T eqcm'ry.p FZ-̬^|c2k^a.ee뾻=^g4Y .{Jk*'ލkձ[e]q_"M{T#h|JFCQU{,8[D^9WrIbcY4wNrT~~I?1߫CzmԼ\]_&*VCTua43'vDKI5kўA[t^jVH////K6BwWzmV6ѹcLW/ދs;[kgn[^TK0vub7ąI7"dIfj;!mqYŒclt!]f55y}Ɂ6"m`Xh_ ^ ;qcⱪڬF!f}l}nZ)Y B`{\N+gmّ+8IF<˝_[Y٬qgۖ `)f].o,y9/V^phּlm| yKUUk]MRk%CR3aUݻw>~jZ i|Z^[ :Ň5'&[%,=}p"M{ū3&\J)HjQ1V9s1V"bbr {4iRUSh%\vK!x;WwfI51si_FY*5:i!GHNyt:?G&?^뺾^ߝ~|~^k>8]幊UrOf|ZT/W_Km9q"Uu:nqk]bOw1ƺ,"MjRJfcTպorC]םCY5Mc߿^sm2kl)"ޛݺAX5nu\"}PSM*I[vؚU;z}oԜs~Ty .yDž̄k. ZE4ٛxdV`w˶ [l;i̺i ^s>d nꦮkCśxd!h%x߯MdOi_9!cwu]n#H瓈f\debNo\HiF5֢E|Xڐ4MB~>D55#4k(//4 4B1. I4]Iצi:u/~"OIO1^u5MΉ?lN-3*^LStir0EXJZu!4I&sAͼ|'usKv ^֎4IMEC7'".kT&qmm6}k}Nk!$߽ח~C18ca^x !x3CC1བྷ*Rp>?#ѩ\+û$l=QĔ|$ЊۥJ_k.Gv%V.r#hfvU'^F ·*W 2y sVeblͿ$ gQM(j8NwX_D ,4v4;'&p5+%\Ճ1+DiϮ\Ьp>{nm.JSu6#e)[ kq4*-(J e%*"e͆82L-}clTuysRP-4w=QSM1wOO׺Ç&%|U9BWkLMęx'K68|y15iދO'sNЗi?>GG]D\d9cvҰ鵩MUǰulcv/QՔn&CفFN|Φ6kk@6YXoɩf#ދfZCUg*OMPv c7iQ5$#K[<\-!vL\ҵ&wL Ec|M:S4~w⃙Sur:YJRI43 WULxJesRҤMɳ{oI&b&Uن`>ڻ'oNRJ=5>O풖ҷbMBDtr"!}mQqm g^24\\J/NE޽ӏ?.ky{/1?4Y۴`R"W:[yw;hv riMd悉wAxmV.M.Wy:鵾>ٓ549~Lsm5hJ>iԢ6N:j.'TUއzhR[^kqa&UT'Ni|2Ԍ>ZGc8U'SU1Oz61Et:;rԜ5·].$[㼵L5`gFvc͚x-u{té9*1cb=oD^ D*v*Q -cs N˦6i+ i}fdj3iSrZ3*"9ZM|>_*cӨA&}ɼ[vtɱ"f7sjU4Ku.w<:jX,,O[mĭ d8qw 0Im|br "BVDž/܈%,lW6VّoZB.L\7LrA?M葔{8MI՜3B[gԒ`ELMUIMQA!XϥI)c9N15((9 !G+xřhT-x\!DQM7Ӕ3Dp/&|!cV/SevA^{י4)edfixjzx.ӤWq\^/އ6AHȋ%5ND]{/*,Ԥs(9 ]@é>D_Ai2M:-U5"F"p&X_SJ"zi>}s%S鬚56~751:IJRjߎmQi s \&_F3w:U)ܸۙo&B;Ln_5^.ԤɆeˋ&(L^W[t'윺^s^$mngQy5Kʤzփ^'aӒfb8OY,RJ׺Χus^,BtN̢LSmXW+493O?6Mz5CQ&&NRk}:kLSh>mTrnm@m4_./u-8V'\~1$M;_]'gM*&qߺ{Su;9'ˆ<<f&YU1+r]U{@&9Ք>6HU'm!,ivXLQ|TژY]M>/ADMTUN\UUZާB86IMSTEċ ݊oƑ ݅YiѢ*nT5=ɦr*k༰RѐǗ3j 2Zcͭ;͢"92]c/S@g^jVQT7<w 5s]hChR&t>*[1w&jKzoc눩@FMrkzaZ4_WʡeWd%!úFq2cΎp`;XL$EBK>\oCD\޴3m"R0X[rn֧h{sfYf%6{ d")= ˛zNڷZéX|E"fKT]Ns.kDE7yTє4*]{5kRrfMӄxp&_.[R7R{.ܹƀ9KI i$h^i몪٧*ZXKS z}/J\I.od|x\)Vqy]ujbK&Q}; J4jW“>G͋%Bt6ruMtBM]T%5S "Ps<>a\Da\E%>]nrZЀr>rC|>> 9 ܖ'ߚ$Fī$)ΙY3N>k+:w|.CKuxLIrɂQuA߹GeN A{/3 E fmhֹ :O}'RJsN|AmLE/^D'ln~1o]}ks},_93kR{NDSK[BLbU{&9ku1`RH4Дcʽ|iݲ~oj+۳ߨՃM~QB{Z&|d ePu95m&ēbޛj#yjJM|4ޟ%Eh6pلǧBU^ci9Y3Ns Y.؛dz<;')iq:,Zsjv׺~yyZǁH]ן>=_.t>?SNi~t5?!m*Ú>r;eA'6 Re˨`JinKבMzKF̵aDS}TiX!Y!3w\µ\$Y1+:4\ۄF}|O>9ćQe׍nA:Idkι51o!~PݩV /wnS[,Ys|[~x9.TD.|m>DYz6M2U6.ҝ&͙^^^L#RLSSn#ՑgJ?V%h6IzSqõmDx^s5N1ƪ:]79/}1YDNgFrI9IZr>џOOOӹ]sT'uzy8vþ3K83/EUlhޭ ^ު-5,m|\"mβA݉SV]TiSlmL614L)癢vWtnJ}h;QĘfR)W(‡YUrZSw<]4?)^ZZV?ٖ6{L5%zQBNdUMM(ާFsrɥkc#|CL#ХtC$hBΔI)Yc*Us4"뺮rsS\:'vweuZ+`m}nx˾|_|ҺGBUYnɊ6ۄՃ׸o:RVXiø8NEvv ~!G M)7 n3ٽ$\*=QVc;n/%YCQU/߫Xuv1^y9"kۥhUMX)=v!s#5 ud=!9ZoLXܚ? .Kmsd""o_s]?>?>;ofZ]~ve߾8 Sqh:ƜxJ:bRNv̹<<< L@5I~fC8..Xv.2BލaS4x>5C-lJ@c2U/AW1q9/t֔p9| ٖ >>uy[ɢ]H}DTg" B˫cqs'"ǿDT_0`58t+5[rr ff5,_*"318w,r,À)eభL}C^r ǺIb$VgJ~* "08Α#= `H 4d{ cZ2ǝɖ6t(\cAL` f0Sa @1,J0kT.6bP3}:":7:k dIiN3 ouh*ĩ]1s2LWʘ)H? 9)4ҩ&k X=$ rѥaƌ`XͯpYK`D6\9DΔpZ~^թFwa -ڏp,{0+vAhؑ~)`Avqzʬky>ĻqBďvq . NyNDL8*󑹱Py0"D i(;f~=y C4l3$kdy7Tɼ]4yAÚEH5iu;+"sy+ƘDŽDtG,h` ;jĚ*9暚ymoQILkLJ5P^IԀREbLmYI]Pr=0Ě+xil2^ h8-Դb0`hy1oVYGu[ :,o52_"STK1g0jWkrHfUSʖ`8*4R %Ms\[o,"ï9<'$c{:ST Q)S9|V,6&lz+u=y{3mAl1ڈqwre7ҽQnYo>6PDP+0 S ʒ{t)n0m%"@JXep|Ks!VuwkUjc&hϹ.]) ~`:N""DL޾}{{@rD^Тj4.0XqI:тAn5 (nmGz&-Sy3;3۱^/UI^pE={J4{JLJ0S ZS i3kʒ1qVatpD4 Tc "ߋgs(&uv9ׯ_' u=jT/_6 }j<4x@vU82K-a"1ʁs=Wq=Oi7˴wu.fq<|l~o"4$YI 3YHg҆F8OhՑ2?t#+|P?We"5ok1붔3jL <p矼{.n1벦s]Q},Ý#hpy&0HXqC\*B̪Yב @u{lDe3~jk@gebrpJRRdԌ<53諭GkwWs/]i"{#?aDp`K{.7>h8O FL8+EZ5;!3R!32gg6hdny[+ ĺXо8.x6b>s-QF/хN23:E͌5bbqЈuleE-umթtHlkMg3z'1?[cAl6*>fVy=qoPK[mC֝Ee.4ˆ]ο{=tc 0ߴ +`|GWDPa7&!@ be~ЕrI؊ x^!r{|.{̫BR~ TzL-dz]X§ɘk)V:Lxo2ftp+4 q/~W<|IxL 1j/R,wR1O \7k5 W}Ni!h5W% Ts6px;R+Jk1|$~"ŵ *bw .SL@QQ[kkZxRRO僀@2v$s&IшQeޅLi%qu"i)4szyqaG %~|c"*ߙci olIP A#+415Lqmt S4W#q>1n_q>z^ȃ[ BN H+"̀OYb+aH$"MdzdMÏVEۣW4խ!&TI\7)ղ37Hd8-[ ȶD11,\b %LBݮFr?] >KO=Z]!31< ^(DL,otyf{7|dc:$&+l|t྿eߋF _\nx b|  h`b@BFm|y3ގ. `ܲ_`q VuݯL[V-6ʞŕch(]6¹j 2&_l0h*(F#t%{(#4!c`cy A4%P|rhH@HhkR;CkDvHbƵGMy!U!8nܢlevhYKG"10h_]k.$j:q%D +  Xb%31:Fv/}ZJ%k^RZS d嶫Yi(UOyh`sH$䐗xayy wNgD&Y1h)UUnǡH&FDoqyaxDn >Q %Dl>趖 V' ַoߢ͠_mk 'J僯u6^&A{"\ 8Fs AP>giQ6מ1vZ‚-bF}-[}wUEM-sj`p{oU*l#|J-;"aDJ.;Y~*0Ǿs_2t#ȖA_{E4 H%M#+VgY)u{fqӄoGrxm~~/!~@p]"EU~Mu!Lo7W5E7(3s9F$?\Ui S "5h*@9F Sˢ' m{~+.NhV|;j237!> O8U9v%4%iJ N8Mq5m,5"Nl&6S\ķ M,13#8s.ke ϡ(paL.\0(קF ٛͽKna?Qԓ=әK{a;24sjMtw9^TD}kTqbPZaRZ*ޜR?>,Ц3wrϖłMH.*89"7>pX\)64$+b䎀15[zYk߾8`-ۨZ&wM|C-dPЀ&@IXZ";K/w`%Q6MP=k.&_E.$(/`؛(uC0UTm|)ehRG_֣y݉dH­4kؿF=f^on˕2ϭɽ5Гdu0f$;G_ Rg#])|5ZЯ~[/a/Rc& jo>mނ9}@T7PuMH};JFaחPSGsXdX[a\kc{d{b. g|O)`l}v-vsе4ଟч7}Qdl7%~VfuZr+S2sTE(L'BXTLemMM^sڋ ԍx/sP}FT4`zˆGS[kA+658PZ/-623 ht.%8m-/ЅT[7kr= _QTq%iI@qЏ݁lz)% `OKnKs}l[=AUW=fnBJ^YHf't\{q[g # `*6#5-+b>ѕ[ e pvi чⲟ88q@-OQ2TnP[w1b8!J h, !&k([4M=NL7("k%X9G[W ۩^Tm^J(30m"rxS:Uz!ܕ:Y Rl${_rß?Bkܳha8=c7Iǹ`<[ uN2Rrh`^fe2l{:{l#6[&3O=8C|~KYD}NA ޭAk=Ϲ,|S5$<}m/s@#^S[3lAv=|+Gt 9Yݧ\x0fI pL1st6FQ'ur-";H!h+z ]"Kgy+` n8 C=DQ-JPnfxYhL`e})  qٷQ>3 񼛂#gCfhIY~ ,UO TO^6x~]' ^.*U+55its I`. k|>ᓆr6@_Cƛ>[nrUbEs-ޭG91pLmyc} X,ZeN+2%<&hW{y5hm`9ImaDŁHf񫠢OT̍a-?{+%,g'6EMɹG:p[i6TUhj[NRqՎT Y{7KB  *s/Yԩaiԭ2v3ps(  eS oEe7ZOuA )%sb,6# /?t414pS%{x8x1/v݄غ%?LakU>A_zJECifdc%2b7mݷfa1uG66F{t #s UНd mp#l-4>>"_Ef!1ns.5lyI'".\UpqHӧ>6+&|:;aj"ۢYh5{*޽Wtݦ[lTӢ5rztٷ:Hv/}&(E97lUȆŴ|)0QGkBuZ^z~V?L|ocsz.(>H@.F%AD=7.M*C$"\֔%y%kx °H[6u>q<Bd5 ݠ 9"?6GXmJ(a8<:{<8.+#Vqq7XYR\*>49גuw`e Ø}XzF _Epz5{f&ED#)-\j!Fn=f凴<wP'3sLNMd@$Q#dXS\?h5U!d%$B,T_nu]0U$r`G Y;J3՗@Fb`1)z\hB_(LY 7o_cȚPǔ7wL0`}{ <̇dqǁ6T=U&dSNH34jwYDkxFx$~>ވ{t}WL~/ {Sױa^% ,/uԙxZ#7yfFBƗf ‹Ivה:TrEOkO^hUؾT!aP1axhKQ _ZZL䚵591[VnuIG"0|^\K<CT98 4aJTGf æNDVa8 NeQY"(&)mLTdO;SPX'yJp [0f]s { |9jqU?mz&bHں ;5ߕh.:pk-.0 h扪*bZ 3gU@8#:tv5L)*wsJHSN/Ԯ2&ҩųQ5E@03 ȢVv L~|c.BѦiMP~c L  bVrc7oHʨ:xݹ$2 q-25z洫dD![ 3ff`/k ĥ&%$%\1v)Y+ģP~ ˏ""f45`oFxTk:wa%  QAc;! R̸vTf0_ ]@DHK+6/=||_ װٮ6 i]fneɯ}~-&bmca[VȀ"|k@tA3To剔YL>5޳, /YDDZAYZkl끈p=04HI-Jl BLTjzȇ?KTms`T)d{bU`HH01x FoB5-۞Tqj?A6gU}EߝY|e۹|6;fAûVj/vW]I= cph4gy%y}"d%*xc4i97-  M1'ITJjQ\5ĪB&r9)?o^Ϗ?%<"^OnFbк=qD]cpVnvv!ٱs5~FYԒwzK{bݪ*W"#l;h|EoR0泱>S _qjALtKVmZTϏ??%~}T'IA*݃` C$!QuZF׶%T"8EAJN^9I)_anvئԅ-zD4ڼ6tZq|IF6oT"  iN;'jk'Ս x"z>dsԃi$iC%yC V{he$G΁ Af[ |cgmFObGo;r*WG%H*1D03v뚗®LIJP( dooDX%c # q'S(fKrM+7@_ӠCg*©IJ`ǘD8,PKJ!G` 66'vCnv=v(7 a=ۿÚT-ဪ}vo@j8ʥ_\$] )ٟ LN=+733B زؿƛ3YۈwL~r=5܈}'Q]Pc@9Qyш-??1x U=Ƿo/Oq` 3jrf:Et#5|' 47z#.QXr|*l`JA1rЁH<ϜLt5yMCpsrF=lM9O _G8dЌ%DIڵR41#DpRuM$ ȄwXX'Y{TnUE#.D+ `~8_WMj&H$t:}}QZpQz̳fb `Y3,oDqEKاrG49#v+16Xާi/Wdzksbk'Cd"D҇}s BM8CBΓg; QP%41*f?zY%=3:h-DŌxSKSj K"\q:Nނ,=O,?Maċ=,exD2n]yi> CamC:JDJI ^!0AHj2ic?%DۮO_WӐ"g(V9qGL"|[j)k"]eѹ9(K{8F$-͹s >1f>K*8|Le㼲B|}H׽W;>,y]{ְйX(qVؘ Ro+LeL `DpL]QԠ[%qp[St) ֣dMՊ?Waܓe9㺞cYKZ̢ ,uTѵo-4c3EncB"ZsΥ*<^ %^^ q Q]"fι,Aw}>CkAgP+WDdWw2'.5 MY3F.}1f\&>Ǯbm0*Z4:D2CEJ'o ]9 wNjDoON;!?aceZ*%=[.f@ P+YGWonC̐)ĶSxc5r浖q}0[gԥ Q\KCNgΫ-&馛p15q=&I_iB>DD L w~XtUu^Z+~a+8U0é TLqN䮢ٻ/P9_MeW_(U0 Bk_[tj"Ň3m| o_8)M )VD*YX6D՘HU2>˜`.D+o$3B%+-L-$UW|"⋆m?=ɼr*~W}=XLCk] ^5}b} `\j-Ŀ0Qi/Pc^öw2S3U7!BNȍ#9 Dntzlsm O\`6djni.{bgj 'Uj"- _*MjP =ވSGo_Eu^_7S\d- VFϧ}|T!AFûBw1*Qe/agYEnkSö/,+2{7fi4莰m›)CvETh.ޯ`F'Ub+2u(h^ki.қ/M(pn_`DK*cj; Lw?'AykV,@39,fvEX^wKv}Dt`+3OgALɮG9KpvvvS 2\Z ؍od xgݶ^ȌwV2 50`՘.Ȩ߭4GcmQV#9EG, "y^ru%PP0ս4fC:4˦mh{7IwӯG}m~iOnkj 1'Z 8̼]ݶwj`7f<,adG|G?. @&qbKĿ##,3%s.r1s]QD-r6M4@]:>ۆdO 04LfMỦ>E]QZe_t '&Nf`y4>$' "cc ڄf{ql5nP8amˌhk8<1m5!w;Ƭ3'A Ld:υ&὘2L΃|$`dPmmWǠh yoF Q^2Ll]"d#Cl-g:ƵҎ]*_XiU\4: B',%hHU1_c &V5X>fO2ߝ"y;!LO!Z+t z `"4O( *AWY&ZYg*a=K~Se봑lfp>e_!Z#n=6"$KȾI[D{4 !)^18Ϗ\xc00SS!pK&Qw9jTVRiLOUW8}P41%k%{$\;l-ጳsl1r-9 8z}Im {ׯyq K}=3AeQ!5c<q]\To^"čZplf8Uu-93vpQZ/WĎf&aƯk\Wet@f%o`|‚&"RUEC\8<=Hl!??U e,O֟`L_9'ڍU+k{ݜ;fkkퟙ eApDd9RԖG'1Y#"̤FBo2V@x IWiuNb `Nx{KPKLobHnz[[9NBgJNDʬ,ɏ5n]c $DH(|$#Wt;BB1M|ZDH~p7`,r 9\_F~:Fc9yĜ D`b_\ %r `0tIpѓQpӚ^l`)ah8m.kKhyK ob}hUq4 !ؾCp>O=h>M lU6#|Bg")BR{סݢ,amMKo[FnYxΑ c4Rxf6DkBdlؑZ Mݦz|X zOXbD D|-q\x;T̔PⱧ ayyHv4DGFD7 89@cq Bqɖ^K]H$;gEtcNxa:9jATe-b=8DK1LT}X81o߾}||X;pD?߿<tiH׺Y"}gs>Uz"K՝HPg $XB?"9Fen7&c1=]"*le|0Y'j2q9(&?qu!21ʢs ~4vYG鋀`Ӣ_jcڗK}5.Z^,,ZEf2qa\0zfsh[d*ѺOGcm ilƍNu쉵% NI{H?7T # Dx<Cn &>r1r+[ `%"P=Zh[EOX׌ pׅUgCD[ 5nIx{%ĤɍtNFٿ\G Ҥwۃ@4-23=wZLlfM۟2ӉJDM)\veO;a9Kq+}gㅲm{`/Z 5amj2GCd]Fԛ\^DZ;I>N N"J/ ~SG)$R|DZDK0j??>|MU3iIy;`e2wl)5֚,(UUQKP5#R˽̀>4r>'sf`)ۍ|u$` @u1uZQ8\7 ~9/1U8OD?Ō;*M"ro̵ЀQTUtpfD4L"ym= `Qs]s)`n7%ޣ5ELME8bn %z>=]5GVE3YZSs(X|ZA-~^:ѥEY&*&97 dߏ4&)]-u1r"=Z@rٯ90tb9'JE>J-vAԪN_-Zc|U7%?m\D_B~:( ֜y^,`8UfaQg9W麂zy᫵i u*_b,VĭPv\|%jo."R-c33Wmn%<4+:mh)}=(=sZ)ag{YQ7m (;dK6Cߢ}aAcqc5׊9'y2 r\҆r$ C%; Geͥjxpz5sVEm,[HӆZz0&1qAcjfMV]GDfVqX[ôX%ɪ̌p2{[2J$+prwh()Pn0F )Q9󝈌oK=W`}xg\w)ܤjĦwű3S@3qmy)1ut|1F8E a<*c-sf5n~Z v/V[SURr.KJC#1FM/ Hk'0R w{x辐"  V,[1 rv3+sq>ng]6Q"9E 6Qp}Ġ93gͩIg"i?&B8%Gx*TʒS ㈩Ѳ,K+߾Ԛ ,&")u)%¾|@q T3sm@ P6%f57I)quDZ=7ђR?~~vZSrmUXGLS- 7'wy+YS)Z-!3Phw ;~0Lǒ{SJe)f́w xlLqCeM#j^@s.3t?@Ϲrss3c4s3Z ڴP!n3; OIgAı g{ehwp~uQwK1?GZgj̹Ď3ŝ9xF4<2bϚq!4ff{US#೾袞19^>k!!\VM֍3.jr^{:(b SZ.b8P9[_I coM,4$p"6w9'\RH Eb)e]^*˺Lmy}m~@RVGOi,C#`,L:}8=m]/_W&j~ID4P2'̙6G$.2 -M 3Q N99Ґ w6EjNC1VUr"~Ty&uQ&DC̤kRLV9[0{g#.uc`d1Gom:O04GC'oE!1GqU9BLaOPY`?]z@w{μyV=]D̜šKI9$g?!SbµF՚ƋGFJL)߾3pv#BJLSew<=}gJeFxQe gXLA]O#tv]MSs v.Q1_׫Gpts3irS_E cu]X13 Q)!9/"f8諱 `s?ӈB|~CD!bfB!mht^C8(πXEC^iݹ;‘Jm2Ʈ})qwLH׎w"D҃m4^x^3}bv N^8{Tjj"zQRʹm{Dݶ @[⤭%v&#Xv4[ぱ;(8Y8lJ~`Đ ̉L2qeH#O~8n2"&b N:G!.CaB3S Yy:1C" rĽCOu9'DZw' %RpU9]Wf~?m0*}߉mmu[Jr4Qw0u9G4q)WL_Z-_~-9rlꔘ4SŜ9q/2{*?9XaCYhF#隆V DE~^K ?Wq0Vn?]_^_vY^oۻ){jgV8UcGq&UkCK4 vY 4qDoؾ @HpVOTL`8N:#mb9=, 1fSJ]518TE2Ty_6!t ϩ*""&."&DjyFK@cqJfM!24iu!`4]m1sx从YxD&sgA^}vFRSOfZ@QT~hE3aT1|xOGC)E҄j Bm{ḾoPkڐHDB*9MZ }bkFop UyIƉsDwup%?-FYE05Q}{{ˊHn81y"L)%`tS}㌶apzB >wS-%`@ѠfJosS&f. 'rBG NN 3z} Հ2CJqYKNPrs$YfSB 3{yPHsR˭[GffĢ?9Vi2s`a˵}Y۷8_ܜa`~OSe9MktԽWIn1?s|u(,DDS dqdƂ@vR.*E /hHd8 Q-.pV\4Hs KR2&!ax?}:1;k:Wǁ{-OfDy?TMTkɇ;L+/$Ћ0!b: >Z'DfPRvsL^Rkcdyjc ){NHg}, A0h})Z_E"\ vk$ R惹;5u*z LmZN{<ӒG8>L@fhD7PLhy&bcaSQY1QW𩀛0 R1x,饃{\N2c@M8=,Mc s̜Z{KΈx\}|f,"Zҹ9vM#xF?4n"Jaf%։QjuvPk, R9eCvJs35[kѽD5{GbfQ{l[5t,T닋Sh}9,@\N߾ %9~r.@vJk[m>ԓ4FD>>>Je,K\UƠ!a( GDY|3}X]S$tg Gy\G8sw"vڋ umQ>DAķ0}fk-  00}y}ߐ0gHסr)95XT$̸)Xb"4&X|ViMuH+HUnSNGn7K#@%䛞Yց]20ok A# s.x])948S;|}FNgILind8ĿG#w]> c"JD)gO~`\SJZ#=d.'4 #Rsﯛjk)rǰ\b Mp4zN0'i5%ӑͨ~a1*kɷ[O23?Is5(='${sXι6r;-!BT,:s^g 7PJigF0(X]X8?.v:̼,KIDm䦒H  8up@~#oWxVCGD#QDs9Op` S )9d@2g]6["]ކ1r 1SO(DyJos)ӉpV{\_^ⴌDhJSn{k}~H|X&jIkMy7S!䔑0HܰIx%:(Af+3= ᣷__[}dJbۺ|y{cvSHTcu ɥ' hj9pYJf/7y40 .AhRӔ81Y4ָ.%.ݛaJp<>Zʾ;p&:}7E_Nat߶֚A< 4haŃ}YB kcyfsZ|z][mʉ/}`e] L9@knIbrp&8L( ;Vvuޤ=z" .S 4RzYv\/3\y̬j۾4Gsf̗3A5nC^?8$zEC}QoMgܤx1'bѡsO5~l镨ӭylrۥ)# DhVwGK 6@8y-ys#=BQF{a 7Q29hԣK5?e7NeM)}0-~RQSʹVE5MR 8p˾, x5G w`\>h<=!Zg}"`!dœJVjJRNf> *;]DL%*h|NM;ۼ(.g ]{!aAg3*A\hmUD[~.9mkiu x<<É=s݂S]q L"bf#53?sFv4"_r$#_B0hi}Afbbduʌ;Y }8<~iO@3oZחC媌$zYZzAĽ<zWֵYpbϦզ=pέst}{<*ӗ/e~{xlH@HDDĜRy"eݷǗ6X98Rbf1w87Oh}BOp(7B1O"D("Z3ďe\VoDPJ C; T@@Jymz_Z)jqH@9R}L۹JYgۖFgf.~Ey-EU41ij} v>=bpLȌ&?^?gM钳;3_.m;̰ۗj* U0xTl`914׏޺G1A4~%ED$#n(nz=ʹp>mQ\Ѐžx@r'0K^3d/GAǸ7Iۜ ^#"1@~tQG&bgTX`b'[>Ƹ t`J23ic)IŹx実!H(")q4 1ۭ֦nms9nŚcFE6N^x-jHꊓéS7e$D'!D0YP۷<:ydJK vHTJqCxbjj./JU Of3"r%.ɀ'S0Iw pνsSB 8'$ ^3Lr(<ȡ?-]2GI;~X ̤*/_m<ޖ=<%?ֺsO#%MR 3kmjk'`rJٹ)BDH jr[/۟߾T0;1;rJ%i~3yD-NP;AxN/ACw98YK)#&R5 8tU1@9%9i?}yUy#mqF88"nmOp^˲}?6=|нLWlnn_%"MU_akɅnTk}*Ę'!˲ČDڲ,9%c%)}_^Am[oMʺ/qvo9i'bB,=,OQA@N(ybզ1PbagUM)%PqPeaTG"&8v禌 qRƼ=>7f N#.,shv;Ikr9&v!?$F/bf:t1ֆ2}#|m_8:ՉśM8TDi4Lݛ ?zG%01 oB6j-?PL)0ӹ<1nNܸS6? 0!pZܡ6q\pNMsSWUdvWPE)Eٗ>|:ZНFc@o0"1VwdDtRN3>PbS5G"# Mے}j"̭#l))3!J!۶qb|̉r.pϜK3nDs9p[k" ""i3c1F?NԧeJm=&M@̪LtB{vmEJ4i#Gφ}ਫ਼ey(yoo/l!"6it5\2'JHRR}Vkm,K.?~9)2rC}z7U?whZ㱙s[`(&EUIHHjPT89}<,"벖 q)x[3\!#K'BfYJ;@։1蛰?a"9񩏙Ǣjj!Jy1Z+$m[\A_M:(~dEƶ34>@M!37vLgOdml|i9s2}J ~d `J4 ]'56ZDX ZG|9g 񋍪tm6z<~ΟxI#YRGF@BX|ֹ=kf8q,cxƳ<9"B0ȡaKc8&FOIC"6'ffU5&mM#SJ@Đܴ{]0vㅩ/. Z!3CUB%#f>e9Y>OM8ǂMh>bM~;f3UK9?ރ;TrTB39'Go}rRָ xJe[):hOCZĜvֻ0A ߹1Ӳd$HLQEzYu6z߫˶~{}eJ,1Nx R3crҾȁq~y}mu>Ԛl@;>Uڠ+ܵD$1MsnnD䦏~DUj/D#ŻwiA'v9C"Z e &1&>hyaJ=e3SZIdB^~H8G<>n)SgHY[N,tDAˈ`DA~qZhh M޾_V3$M¨  U$OaŽ\.{? gq"I O xVL/_YyAIվ}VRJGBԺF(.B sήb߿+c^C1>L ֏/ގ+aDBP3EfD٘.ח\ɥ[K^v+_^=MsJ"҄mv]8@.fiYUz#!!'6c#R"B@ÕqPgUuHHrf\/ON!AFiG5GB"&yKM+A%Dlꎎ6-}).J6QUq[kcs 9ޚ/k}l=QssmU6%sw:~ Xp<&8"`\o\E4 xS"BSwD)SMMB\8HPRN@+*֋a&!!'28(ASL`Z40}y}'!)lEu@8SB@yhQ9<c?L2]sou%t2(TfA A׀E^2ۉ3|v} ary u{8=;AO!* YJ@RJEPr!x.Wa#;[ <s ;oRyG^fF&#팏d#RiF`9cɝž5?-1SBUI 9 Zk$*96l$vNS7p5OD9%@Ԝv]L5LLyF=̔T־d!fIk1%ִ6=pϥ ",KkuYHpg$azP4e)}~EGHfNTm(-H(=Û"S=S@V/oo*Zk "@Tce]B=|s+cߧwIU "gM9?~̉AСZ=12[#۷h*aD&^JkO8=5O ֈy]0dF$UB8e)%}_=ni-VkΌYB%wrI*oOD Kͥ`k\~¶"eϸTR ;Jv}})3Jɟn2qIa"h|č>2a ׁƏuRDu4EBP}f8IDkbfH'ٮ,%'Z]}ٲ./[\lnC (D&5׷q)˲4 S*Dفj7p xp̭ϸuQ!`vk n-}b=[m)q;Z[kbqpb:21ʔ+1kAu!w;> ps'6ذp'0! _sߪo[4aҫW :XJ3h BQݛ*wx:eYft$9s3Ee GGN)L3σ@8-ϭ0Sfib!瞹a)AupE8<;ǟpV؎u/Z)qG-B•3+A;Y 5m_e֖}kv Zm-1\5̵dY;`ݷ֛sd0b[9=#"c5Z?N/9ޮ";/"=0u1Qf3! SptJ)gUsl1muh?2nER*L߿?J)s |c1 ژs*jnO:Z&j9^4rU;q|6N! Ӑ^__n_쏻?pR^߾1#1"ׯxA\rF47ߥEz[񈊪$$"̈)r?'5CnGJA$ژrkmmo1S`NnK׳fO0? b#8HMCZՈ, n(݈{)DLBIJM(09-˒RىR#"l\U{)EU DLQbk0|n^??w_DD%ZkTRkK(B)&\nKTN) x!^RefDM$<͞>wgPJLK Lܫ#=Sl۽)PwzVjMͣ Y4. )ueN{qRĬOOzbg:a3N,Œ8R+OfjfCkӐ=%漤ZA:)yY/k&|]?nx25jHjˉ%3j:*k )RL\/;R/b \ ]md$ƭ,K Dgf30v35U`yԅ*9&bDpJLz\˺eSߗe^//,!de]o//)j9KU)dfCT-TnG\eK*ްU&N4`\.ҶͬԺQ0j* " aS]KkUTcQk_# -x_^CELrNjF8P[2jRޯ,!{Hu!RN])>@̩"ݦ5wDr 3͇E7A&_3>^7NcARS>1Su"\wwa$HC?+>t0斶i9&TJ _1;$8O@PH;qOn{53%) ^%k}`]]֥;'{4L{><]or-0"FOg(:| LfrW3Ǽ!.t{t Q\ÊK.9mjz߷mlDX74UN)Xdz9udu'XxA{FŚȻ?EZ R 3G,T 5sDe1!RJQS*9b;zR+6"Dr6h!sx_RJ^rF4RK8Κh 虐)ryeHMV f7;sm{KN,#[GMsN뵵RjF@D˺(LRUNy`# bnmh]@LbT Z:8D$}߷} "bNャ)9ЪZ?тqf5ڠQagp8>OxJÉ~26 ̡#PC3qbjGL}v0&Z}Ժ}}}{{{  >NEU܃A8*=(W-6*Ji攖e&߾=Ƕё<A)Yb_*0PxrU4>K.%KJnoobf Px_(\=.6C ݗ%_UZONp+J?}nSڞ2#0,|*S朤VI]-K>Z^.?ykk*Fb9E~2ZTT9'M"'^͜R@wyL 춑{S:4@۫쭭˪jM*Io쩉RZvb9F+^嗟n)%i-DHt3eUU5#ZA0(ZR3suL`c\bzP]mE@B8ʥ^wy#ێ蜕7c|w]G6 $f;"+j'̊yC+6oc#_k[UM1t3 ` tX!1/VsRAp,R`SGtAw8A _zz1m z\Ё#@:`)p2qRb SthN|-Ne/B1}qR]x?T:O y5۾ 7ilGRONr<dz姷KI^}[m D25N_$̪r͘&3r":9`p*16q5䔑`F8;^j[ ]AUXJ!Dփ8{E %jbeٷʲʾuJJA`N˲%@,HTrjM5v\tu) +Dl=p3+0qsǶ1mz}}y)TB{m̙<|wnm#fSWwmHv]&|Ik~{ED@HIV )*~3uinGZ'37>mC_=LiOTmNaz>& jĔR)L!a9"Hm|w8C (OB)mGfoo(*pe))s53wN̤"Zݷ#T[ {2c ɩTrW)%H˲H̵=frJ(Do/Kq7vYr{1rdi9/|\,mWO֛.Ɏ[>$#2wMڎ} $tI&+ɪJ$Z?:|"ye0`T- 5o .lۺnmޏ#C8@\f,+J㈻RK4 E|e G[$AS49<23҇yf7y1/)AE<0i?jK̩/ޞYlzoGS3BqZKW[]0ba94@ mnm<3 3ZjĀ77|ZKRZ?`]+vP#fѮVeY]o& Y*~Z>>H,lvZLjooo"j^M;BC;vֺ,mL;cu)[_,nH \Zof>afT8!ßߵ[nI%ek' 0P`p Xj巿}xb>ȷoߎ>??8Qpmkv(3Dw{QmcY7UAnn潫GS6 `1J @dDF` H"3"Z;|I;3+[d6I;<9vͥ ĄLgk {CLw].]f67[ D| y K !wfF@`┼ se=![a萫cDd}~_`jœoi^slýHљn^|[8 `PQ#\{?}c ,q vsA-XJ‡MXj31jWU:ǶmVs_[78FIbDԈ__W/*<\;ITZa! H39׶/1mjlZF8Gc > - m<b̤/%h. Gu]ǑB80o~oblSCۃ;CytRt ЄPL̾|0 c'k;vb6$)I|#4jD3faa=vcDI۲toZ(5C1q)U0b]K5Po۶Վ-M 8`ן 32b~{ODfևj-"9Ors2SWzG;_uY~Wzw'B0W)7b&O޶BtjO4bY9z2MB"Z~# DM+` WxnPSt D,Bs"81v̼r]?p}]*R?™IUk)~@IJ5bߟU$z?>,\P}qvgi'j}: ݓ'jֵm7siōׄ$Ad pLņ|(zoh@s~1:sG/Б H:cLZe1+_˩9jN WdVԧ\,.`fC y0g*bVeE5F?]J@) 7Gd.R .֙M8D䶭s>>P(L5~o4Si-e%"7LS✉u*XdY-cXt003RO':0`" P?ۛBͣ;moX؛sh3s"m%U{Fjd9=vA 6Eù.֥_~wel3ͻ4 J@M+̽E XEMZtUp-}Eu9SsG7[TO㭈u' SxY-{o8Hf∐'u3IDsmÄ= o4Qحge f-P5"eI*ل,Mm\ͼT{c>geD\JQ0eXqLHdn@,u8̔OϏ.|2*"ǾA;&0 鑣`y13B/y1S_/2b:noH`=;RU ra~߿7fI69CSˌg2% RZ"tŨ%w8Q9_?j-.@huMN`S)B| l/,,uɒ%|.c䑳2駟폰N7Z R(}oe[CUJ00@n'ė)' .EYMPR\k<tyȏ[8tS.ZRܘ~QXZT`7#E\;#o~6S,+h0DJnH sR羏D:.ڳaF ?d@8]!FsH/Smfj'-<)nP'Faj6DSK[N"U,)hG 4iPjfq)$bqԱDL µn[ב>Ӏc/:~ۄyNXDr="#S0}+(UB*ۺ`mk Nt2ۯ"Ŵa6u>P.L:H#0AwswfZDE QFC%nHxNM|"1!.B;<ګK|:̹1zDqyʜmoᱬkG>Q˲d˚$td(\ͽ6PpI! 0"`|>>j(qf&񓼿;"ۆ@PUiQD@-Pv燹%=(w{kZF9CZHRZZdIip.>>@˦:nyd5+"D W7k8ö}$ Ț5{sxړӯYn,<%.'ò!ܗM ,Q r;f@w޻-k#u@#Fa9h}ۧπMMÆz/>$DԻ2Lke'CL<#!$z<*"斓tɽ81ǟ@L4,"rKbpc l$ m9xRٹ3s匘qXL¨sxN;TD#DWVgΧ-+GfjGk+3&R:Q5,,"<{ァ.ohZ

??< ?'5D}=ܘnj8CcaE_mkoG1Kap6$nR3?CA]3i}#1FS#.S<=oUuyi)7vYœb"1Ju]o *r&|[[d8XLBBkRKaǾ D8p8ٙmu yxBD,nbnS ȧ(r4/l7桐0s5 lB!Dqp8(D3EJ-E) w |&ʠe}zyo)Y Yu;$>x(O9d\A=t5h67}^EJs,sMcyI$L|FIK,< 7 ngORR#مZg GT IZ {)RJ)ǡffZZ:c1 *)f}œ1}^,ޥ | ضmnL1KXѝD p>e/I^b ~YV1˿>"k-m?C2lmoZXD| e&u@O \9hY7"zG0o=afԧ=Tc۶Vx #HfoZKo~XJ $`,*f)'>hǘAdᓾ,q.˺G~GHAR\o༥TMUG>Q2т  0|B9"א,f@D_Ϭ D$Q(usZyTxvM wO?Z?d&7mχmۺ.uwT5wUkU G #sƌDF@B^soMX4яiQWf$6R]{ Ncap͍=2>=..]A{{o?޳fy$!nnLL"5$Zj50L^)ĥj8Hxֈp˶˲e a160mMU?>S?jz)nlgGE*`NM! n2W({xKiU@jzNyN I@%\ ę4'M Q} yqo:xbYZ!0[[ YT30 "P7^~y{7Z8H5gUMm88kL-HyXlvwȰባ|Z SEo{[ eޯLm,{fp_J1 LY.џ~9Ժ]{N@-Q" NK bAb^bY9'L___9d.@fV9]}p7c_'A&h-s>(~݃ k-??ѹnkTYG24}<Ǿ &0HC D< 4&q ?~ikGe]%%M ܻ$Uj]Ẑ˺E~:x~]=#j .K@n{d:ar8}=#J𯙵*T1y}uMح<x5iTtx^  ttRsĺnfL|n I8#Ҁ(M*-zax)wSۺ"Q] NtKz| I 'ʖ>Fāffnz0=)r|&:vm]Ѥ~?ߎJHɂsFBy `mc.Ą=?\)֏H_t^̥k8Y -Hu[-0:mW] Zk/"QD<} k-]F,t9Ow8" T't<$3'mcw>GLT_+DTHDP!Q Hhf3!W,95=8鬚O+u97Pf:@]H,rBi)i|Z2>Z)"dq,oh8@9Fr\c\sggpe*gAD̐A UMXn4끈j^KBfܵ"yb4* arqm&#>L3ui I"h?ӷl+ Zk 8C3JGk Hw7jY| 0REibHYݏyM!Ĕ@x|z3ӘL#n}|33"~헷1A)#i<{q:lhsC_!Q)jϽ! *9vv4h`Jq:%NE|f0j'S ǹ'bgh;X& 3H{E!y>~aD$R H\!MpY;e+4r1uha2/T,#׷ObJ]rn 3s6A%9k ]m]y'l:R,?vAD"74C,9sHv0ѮoT+&/"8( )Eƛ3OQjL3i4yH^I\'i\LtüFhօ0ޛ xAE N}?zS8%LfѺHDf^d?˲oֺ;`eb`P^̺%<YOxMvN#r/K}!@Mws@t 0|nx>os%UNgIdOf{ϕkR b^pw'L+T F6jkCsOs ?o0!<5y4"B(jDCSɞ'D:Ĕ8ۆ8 [;sھUσDH cMA/g<:-IcHije#%.s.0[2zY,Kn m~߷u wq7JҲIZju*K8ތ/LhEsy`j@ZpZ%0kM[ϽuUB! [moB]Nj2tA|#&챇‰(J)ܛZJ4_x2 !2Z44f.;9Z4 ȋnDcQhb)%ɻ{OJvab&S`1 V56bI<D'6TAxD gf-G։X!,YmۤԏϑvPm0^]m6׋7^Ԩͥ K*GThL3@=m:FTE2DP)ULJYI8g!K˒+N F3#ļ,kK^$ bh".Ee])ERĭg{63 f/!s[눰\k#ύnLH"˲ZW)ʺKſ,Lzo7"5SE +#nD\jnpz=ю@Rҁ;p2_wkfM KaYkyVa݆g(a"Kj սֺ[W1ܼ!w83qx$GV Bf q<,9%)V05U;; {uPQț,mO!O4 Yܬ~۶@4i2UEse]~]1!^Ca/6YN,}xo7)Rmoꀈ34d9W3fRϦ7qLSSrag˞ڈ # tws圣>&aH6a>ȉ\n*|~~7;qU-`~!sD s4s00FLhE;!)"3kǁAr?<ʲd9`e]mJEx"`\̝ϡz)nykNBJOn u6B+z1<~4*, R}bNDYÅ՗>HR93=/9gت#bdC.)fcc) *" b즥H̲7?CUK=Q!"۶#A̡f5۶n[+BiYsϟ7 ۶Ex1FRDM-zWcI{zK]Zmɤ2d\鬒'=~x<#=?_}iCtd-"zQfAM{k#Z&2Aޏ־>>J®>C}R^x`@D71b1C~0wH>rx m@w"sk?ѺKNySm|⼐s1'{xLs%I,f?|n~ M_Xl˲މ|ea\\o{f^8CIAFI9nĈ x<6)C@,$Oa8ԥD&-s!"H@ڼ nq7q@.q|+x i8@8bpp"׿+/^ELi1@0aR,)رyK#݆59f&?8iى Uȅ@2"}^(f}Kpj.)$ vK1?TL,d<w~ [J#˕ x.éJMt)F2=)?K~Q3s2^yֵ9?-jRk`$u7G'`05Rg` #/uJC,)ThDfB7W,vi|>Lo݌{΢D41M{b̼Z=ʸ|SwbfJؙ)U;D# 1 zz@DFH)YLgBy[DԌhn?>Ȁ)AL0[~"A+A',=@Z|Zgn|뺖R2G;=fmkM4& h- ).9d[s8 %B0jQ U$o7ӌ * ?~\̚uBoUx<5NĀi?c>﷍d{>!;rwp+rFu630Xͤ\$dÒt¾{'p?89+/f{gkZp;Dc2I"l?kuF߿(f3WFO;݉d^8?Ys,|!t23i?#yM<5'b1!Q /3 /fF;w;=?1y$"5y1/U ,FO}3f&ctz]x`jǙ><0gR.œJa/xb~VرʛކݴG.bfg= BZH˜Z  7t]JS9LIQ sY1E8I_BHN>es7 R 15ib&"on~stH`ZdH13?{F哱pC^(#8q\,LÉ%Tz9cWr Fz?#"/S˪"e½YgJnf9@"+di,ځtox>Dm7L,?#= zL-" UP!Ɔ4ba/sDbp sz(i~auDm6iRnr2k"/yƌEͤqSD(qO: wnƒuđѴ|HRk0ljVpOcX K^@;f_ 2Z*S4zZѩn7܁8h:Zþn.B#hFh [i3E'f%l%m-EхōtugȨu ^&D/Qr+_@%io139Gx*}fk |xRRj/^\ z -(#gk:"lde]`t9+: XN*[LPQҳd|%Fv f&ZΔLnkr$Gv#2t#Q?}3@UfAxnʌpZ ZN3g 1ħe #G.XOqXm1OOU?wszX^)|f\B$C2q;w\L"  e-?`ZMZ½^J;|"zgG""ӏwfHOX|U[~ m}b.u1WUe|u!ֺGLYdϙn2D~Y/ESAhk)<ûGCh=nnTk1Od ϞރQ'9q̡+!Q\ S-eG5o9;D*Ke!̴2S/YA]#.\f>:gJBLegN$w{D^k1F:mjunU'' .W4ZgXgs`I{dIҘoM59iy BfH_# d'!BG|t, {T|y{[z}S5#c77b>>|0h)Zc3ERXz{d$XqRഌ}\R裏A\ef^kkk}ϟRJF^2g\D|ul}(KQwFJp1/bI|pkySeXo)3mKN(){$@1ѝOF0K')S޺5*BLh˺rvom/Urceޯ8+aDcYrهNlacf[8ϔ&[XX(\.8!Ii1~|"0!ӢZ Zk{_//ȼUwx<ҫRфg"$X=5"ј68Sa*c&ffFY{{} 1Mu99D.$j:D8Ej$-s/=!ݞ,e]r?@RO:΁=!gCKPDr}2rrws"aN2eٰM{_k!۷o!'iFĪŋLKaqԜ}{w&Z;R?3xC/ohMOvv9hI1T5 ̧Scdf:WUR^j I8|'Rr-K]Ⱦf*"Eͬ֒[պX`:+ǮsT?g xbK?NLIv*Gݴƴ\%"$4{RJ#,ezuxWXj^"x< )2K GDo= #ϹZLgY5;2:UdiP*rQ6YGyE0fӖ!@2\!,~ ˲d,CS2n4*SJOc4v,ӣ8k:DdwK`BI~Uj<Ǿf86<#qȽI),>9b~'fb)%"+fjIȩ~CcNxKUi<e#?i=Wrbŝ7YrБ8:df59⚫"1>ݜ!g{ tBTY!s,OT?aȗee]ü䨵>X˗/Cmk=FQYAED@Ǐ?ߗu^˹МPdOx\T?83ҏ=SSġD9qٌ,r1>cށGvYe]ׅ/޺eݎ|C) z?FbE-,1 ge}lѴS?X"4‹Vx Rׯ_[1?I,us# 9ܧ\H)zF3PU!0J˒_h#Qڶ̌7nmK)Va1pC{bXeoOwlc LԂLI=E K]s2m̔n5BM@*'SDjUM{ڑЌ0:\" rN/Ȳ\ư}opY%rfsyvtS֧w,G;r3iʌm3o5L3ka04ֺoj8}-ZKQS0UUhgfZRTR.y42g0")8XQ ZRf}]יj,?k6-`q𴳑)>T(dČIhVdaySK%>$6)J)>FRB#RY&W=__jڥ}[L+1q ҭ&x325%SK-4W8FoY 24mF1eRȇth=1FB!D0WPe6QsJe#:nfT֥Hm}N9#8k>H:{)\G"LZT@du]}FLDXHu?~o_EGU`C譍12v0$<ԗ׷4.K}]֫}#Sc1?g% ~ގ(?=A"Z058OtZELi1-ֵ:Zx1]/;BҶ"EuYB̪TrK/o/BZ#RMz{͋Hu]3/eA 7n{cNVbKQSU 3[rI?CSzyT{0ӶfwsrmrI5%_6TK,5M9T4)o"E a#qh}{mvqSa\HYVо7˺zɶǶ-=MC|c_LLF Rv3}0) {VHު8Ψt0u: ̑1Fs+w8sv|F9jnay4OqS"̷އZm?OIA7`Pk)|o@,̹ >rF@˺f15@+&=NP2T'f$D$F2"!Hi9E na>QK%Ditp/H 9A@*"f۷u5c߷p7Pְ1TC-AaGH3  L}D8!"~]p߷m ef Jl ̀/P2j)T: 11~&d/-ϩ++I{(yBy==%U X70>t^ğN#/&)lL:BԤf!R~?4ԉu]Z ,x#uYlw怰a,9"GZKa29&^6̥tY̐#Lkoo/xla*8X 6aHq{dw&,I7c.()SƵ8D,uzS @8p(M5 sImwcFkk,1.k57u::#ex=XKaơvw74ަ!\QZ'?WiWCZJ}NbDz$m^J͋nnLCu]vhYK]=3NdFz-j}oޛ[](C|h>(EpND۶O!"H:ef`C^GdZ:τl}.k]j)Rr\\].k҄i-KEo#2ԡ) bR@ƃIK$]-B݇^j^*0o{7U2FoK]X{R8هF@G#"DRݽ3>< nn ?O]knD K۶z?O42]<~{~|:ApNiܧQ'=%I'af,˥ֺ۾EJe9A2gpSfEiFMs cH,U"sn@3spC(3/K]q>Ӟwx) adl,@"S$[H~7/{r2ǡO8qw {juݮDs9)<]̙h13 PEP0`b C7a`Nefhf0}oC;Pg9e*T ,K^~}E}#uCz5ǎ3ZUUGDSVc<y "Hg=ĔZ%pYJ)>j/e)RF}47""[)&!*c RZo=' ?v3K)Hn{wC 1=Rg,|h r\3P"^#<Қ"R!߈E n:F3utv~<"ܢ}kȌ9B,"o NV&k %q|}{q0}de@Ro۶6(D3uT-DD$.Jg`\W&\-G91 UB::nc(L\R2wO[DLJA3Tdsb{Z r}lZS ڰ@әn(eס# 12s Ex\Dxo{x4~ Dn˾77{}}=_uxxb<̓Hشiĕs{Fgb]LMeYXdc"LE( 'pEsL-I*eY/g$fβTe,ZSnfXm* /"3Ve F'#W>B{?u:Ifl{.˄x|A̚?"pK*3^w$N3wj>u{#fb1"tfj3x,|<۶ZYL-$|H-un, 3^EJ/2u?*<R$ 2b~\PiO<_g|<ݩRj6uwcu?=3W >(>7̪Z,|0:*nw W&"Z*n7"{F 3SnAL˂Euom6?FiCGA)X j])eDS3t&"5E ,`-"0{Or'DJir .[29IeL !2RJLnZkUo$ăL6Ǚ csRHcY!f{%&*C5%Eʲ&B6ғ(D"%?ź$t͙b@d|n)nFbK˺Qd2T ,OX6LbQ4) 1":u6(p1 xp2iG'"mƝ5{JjZ?Yٳ xo^JRQUTǤn)%keM5HH|PYj:~#+SRH$0:D ca W'0<ǰa\w7ĉ#<-y64Xcw),K涵BE?~zdNXĮ' 3$D8ذD ҡn~̤G")%!&hNHMGڄM}en0qҦ6'Ýk#&O30)2S>E䈇E+'aޟfcwlVWDM aaIL&.ubaB.Hu]2Cz0k۷/omxx9ʷ+挖V"DG`j?xS(Rم7GH{ku%ЌpEfADf?dGxL"HR@ Zf(BDs$F ^.TJb:75'3ggQ2,rn9b&Rjضu]mEnMNDM3{;W6]ɵ.N3g8˺+1 lYRf˲ؔE_Gw`Z*>n{X /LLT7 m*Q׷/r4겤)0.UPS=YhD'? z ʦ){8ԇqw.ض0)̒I_.N}.!"J<@pB30ˬdCA9yͿJ O#6B.hE, 1T#kq@!f}T].23 JFiH(,8 i#Ltn6R.Y5Ǿ c|z^s{(v#t5"2S[?_?"'Q, q&/葾ܓ. h-̲T]!i4ųgnG6￯%]).V33o}ah[~j"a2- |x yd'wiec'p2dK`8L# N$,R6 L0lYYuP6a"7BpfmlJte ik:""E j]fbM "lnn,on33'HA3#8DQOL.G6Ƹn뺨`e]Wmgr P538snƄH>Ƙ2c=&H4>f 4ܴ0ǣ@vYmGwDDϨii>w RszY/G"U(LMa{]()벚/BJ[5Q&3f BYZR(T ay빜f^_E "2r 5c(%"r3D3υzغ9NҼl8 $* ܈ʧ`~nCۇTaĮ QETMm^nBOf,KX$JD[eMͲRR'ihr},DJmQoՍUc{$NV3K-fni\؇DDk-˲`noZJylKhm;`1콵>(!>:Z R&EHW}!Ŀ|}>fIeZ+8 x$K(iݦh)6;ƫ%Zc8gFY#x75BBvD"Pst7?(lh]}f@ ֟+#%~2hÌ w 3A<4 HI|Tb]iP=Kp{ۜC2F`m #vUZ4d1,9erv 3G@PT,dRVgǬ%(;mf(K2kq[4qnnj!,BHK.uVvr꺖ZA H5f .Um<w=Z36D8,iysC+d a#f۾B۾.ٜ`a:Zj)G^dO<"b4ΑSX>c&T4"*.r,+H9oMVji?8P@a x۶ML)*:2#!,뢪˲[R29.Kۛԟ3 Rm sjwG8BwD?K)Ej)% {LK<@rCbbD ! ȄdB1/jf{OzPje1FI}^+i!0c-GP_ $-21,s1ȹ#l$HTdSաɪ]f-ߎ,+Ǟo' }aؒ3Ԣ:ܼTe!u1YOڱDD[ԳϬw d:z"[m_岮?o{RWsl{Jru6TPW)2K`ibz  iR>e1z}Dd>Ro[]SG gQ)LDTE:䴊 5μmLsE >=#4k;kn>"o_R6Nf鶝#ƍe@s m?_.'ח.l}oNbG'.岆[zԺ >0>fZy:N@k˲쭵}@;i^7CD0^n׺{̞G n.p0>\ 0Ȗi94R11;xz$Km%>,.tkԪC 㘄§^~nqL s$ :%5y0>TٛWPf}(9Q= }B2M(U ٔЎaòpscE6sp s'U]֦"PMU3dC[$õ7 T aDP@{z&IcKO73X2P(>Q1d5<HWWeErwHa#_J,{۳dޘL>Pzx<0DN܎6xΈ(ߊ4F$BJ! ;RDD2>B]zO94y͏^HV_ =/@G_nZ-K4ڟU9yUGNA@ΐRJP,:-g~3΄2ׂq93p!:}*?~NM#pnS Y <^#~ < 4CfbQE\К]9|L:ϡHzՇ%t 82xa2Ŝ L2nDV"FDRr~B?6~Zkǘ#c:4 {j>Ln$r0iPKBL.Mu$2>'3> 8oLΝӲ3y@ud:oLv{V Risbt9((8p t8(Ҙꁌ#ov@'1dߛ2jN\8Sƀ,5,۶!@sF8C-'Ignu~'`H0V(=>75( zhgqWx |JdLJ)bϴY M)jd|UE k-lFRRʿ>p7T!l5Xkキ~-Sdu_nraqMaܜYy2H=_ a|_׵>}4B?~1~|ON 6s69O:;%% ČyOy[{($'$^H s^Jg^="ë3s+\R,"c5!b<>Vl5%r\{aw37yh;32s1,Z32 !ғ,+"P5`#`'^.3ӈP$Bc\/e"L/ Dx{Sw"Ɋ=Pg6~ z}n0너BH齩vׁ*x|<*=N펗  L^{M{ pӖ"O:JdCșD-/v$^϶HK߿\Fo۶>aA`"LEl)͝HL[~_/GchL/a\5@uRM;7:8'-\;SކS2`Cچt3H?5&QeX0+Zr3Fg fγ"u0Cnۤ4ץz,K ܹnATәGZIF̷K5U$H1{S-v3DYZ[sL<_5F6gt"}y½3qEb<3aJ0^}~{[S 8,wg~_צXf\`͹ψGq3s\9L eqJB)0 ѐWä`tlr'y{$D4 w9rR$E0s#Xe]A/_r؈'8oA."B\.0O8Zp!Hr*,ӓS"3w+fǭEq^NZy^ݞKe]Ǻ,˺4]/")RkYmXP^q~stHqP@r׷퍙ltpM{*g;-B%j@ZGD@2|܏M:F "цWљ{*Aē$Wv0cf0S|AZ+R1UJX/ ]94?L@y9Dz#Z'Zܷ!11׸D*Y8ZGBWG~rtBSh*"k8+|89gzi?V)sb$-m,X8 U~2|fq+Y.۶E 䤘4d]E Rkk( 79(Ȁ\HsvE홡=ͺD@DgĄqdBK4CcYʹEZz۶i(G޷L)aG4+%dH 1_&"*0za HYKkM*gg''̄wsW)*: Y'G$j@t}>[4܃HKps͵&@`K-L߿}~}f_Px.ǠϹ}q9!LWޮhݘEDhbV.i۾"3f~s@5 x_8]%}@KD_d|$R.s$(̓= U4s+W{?[o: 輳} <3"vպ<SC[hSU%'5RNrP1,"cKfe7<nA%hag)IʁVld~[k=RV~+F:GuY2 '`yCYֈ0G)Qf7$Hw#3 .C%_,Kc`JTa]EB0%48/#B}>3q&z S'?C&=8pxg~륏&/3CtufCm_ndb]1O "u<.k- S&whzacD\"!!!!=b"$`Ȁ''JBJ_L{D9 @0.Elf{xz]!xs~Fi 1LYf<S]j)ϖWrM/Dx~˩;~z1W-ɧ(:vPfQ Cw~^U!!(S8ç_h-c[pn`@$8q६wU/Y'd·1p{-f6z˚,$&0Uya(1z,,LH ť\{=GH;l[ɾ] nk{c.5w"T{t͸js#–eL;DRZfN\ZDpN4^(_Q3%& 2e]zk\ &,RFkC%dY eYJe3۞+t8lЎ|>V+ǰZ3L&f<Ul0OqNei˰L/߿}׿Oc u|RmPI9dZkfYN6҄f֚QfHLMNFMFd ² mNpPyٵiIѤ!2n 3eT'mKaw뒥@-Wc?Z.sSean$1ԓvb1̽ZTnzkacxwMm$ @0(Β )wiEQmX8 ̀#EA- uuHDH4E#^EFo:z,iB aF`HQp䎳4NH3xq25K㐟̨9= 3 rTYzcyq=58Lrc|?oeew04A sGt9G s|%Y :L"U1$-an%̆*O;TBI"G10y G Ue4u1\JFtG.pMXD HykV.umK-c ˉT"*zvj-3Kzaǃ ˺ޑ<2!*#8)&sH,5q锥ik[- BRk\XeѺ"qj2% kcV)A8qԧ871; @3&1, T}]kF@"f{}aj߾,ECRT"I+ ߞ' UEZKkp xakǷl9L-1>2GSz\Q7~p+}EUo>F_/;}+LM0[dz]eYZ~S'Z_%Qɗ:9\j=3i\!v1~1zS-bYZ1U;P6SӓːM> #3#5) FD* X2'%LlfJ߄Z83l~ >eYJ)~= ~;":~^Dv'| L,oOBlcp. JY͖}:ê]fxNq:S͍i |S8 jHne?1ޯzLm߇6wK]X$oۭ"Ƕ53AXmVk vD@V&?~L.M}ǺKREfy:/6ȌsCĵsf{yWj-˺RZkSWAHI~Zoa=y1ܙz=O(Bz8IEJ-L]"[Kh=oo-Q3͈ H ݥrWt  ޠ.ࡵ,) f"꽥yp.彰_Pk5OZ)ZcD8'~l;*#oLhD3XJ1C7L@x&125 n&q؛*aA 4Ox{:LhCjUBkI9哹2[3eYH&(vFx Ω $&R>ZCDv"N/׊Xj^/zS\ĝ=`Q. ho[RRο#KAUx@[M)A"dZXv5< EJ&]KZ+gobS̆{ٔ"’<0ӈp$daW=`G44-BMmR=9GPJCJED C>s'"#%)5Gړ#k!LXDZRkZUMGY+}X&Fou}{{/en利֥{%y 3:/%{T7#H-K\֏~~YEǸo37_lf5U[c4u.̐XJm] ^L@럿HH%Ⅵx>&Bއ:Tq..[zYꍙ1\Kmn,KY[k˺\KkKwSe.1}B%L$|=8x>W) IލX:X1jDs|HU/dؗ]={ff8ԟb,=ȜAoT0UTͰ[J|p&J3@"#!1#o֞G $=nv+Em?L~NŁqTLu#)\e&ՙLO 3%qvY6]# uK=")UP(RH+3,2XRY8R\$G:;y?ۖP"g)v#Y2Cvjαj]|JᾷN)""A:YiGCov1ϡ%cJ&53]*R*&}{>s-,K.os- e]. Bl-.녎\aǣ s3a*L t/˪m[/œvKxd7Uc${:ґ벬Ke0昐Hwa}rf`띠dDC5ŠpμhUx)tpBP s@M -Fw01(5p)AfU#2T߮D[r1OcZHrdrʑQ[O8Ks.Qd zceu [ K)2z)y޺9ݮWfʶIncu]W@Gȱ~)e! B#!}ZS,ue{tc?ySOhqRHt42rDJAܽMS{&7HbFMM)B}p|ֲ R4`]eѻ2m{pLhl'd*|FD,f&\"k XzYmge]pY>d"p Rm{>IeZBco}dƸ֞F˗wBrwչ(?FZ2$HjxCPףԚua|"*GAP}eY)߿8lnTӬa7~DA- Z/QZÅDf(J v+R/֡%%4{7h9D~J4aU͟ -Ty$^! !P2:,̃3,]Z!^S1 v^.kk[ocaiAWe}{G%1ռ{HvU J-Wtme]ٷrMSsfÿzjj a]u$*5e~}vwgG""PK5s{,"RH%'AD '822d brٷA @D r35o߿7""!@HR^2ӅaYE,afg0ңjzoer>LζXj]EThh?D~pKRe+K]G@zƶCj̱ d ˲ow F+Ŝo&,Z ffC[ zB*K^|[.Z@5T0#n:al RJ=8Fnԩ0^?{xꦭ zOґ]Iԡ)#$<ͭÉj=,M䎾Z1#R,׾s1 cH0m#|)e]jz8b@ &!+"_/k"4Zpj1r7ԛÊ1zr~|譖ncC0 ;H|¿YցY5E Oi!ʕT-u۳&ĽG/ThM'B* f EXk2 @m̏9  $" QELz%sSMV1cf_/D,Kavوy^5+.$4)٘&EHҷYz)x#Zk恄aOw}X段& S,63wc9 &f~lp~eKd9J{ZK@Sú~vQ7N:3#Щ;x m߯<@;)  &IRʲEBf9"R},'Luj)vf4ZwXj[Os5ǑPG4MSZ7XtkٜġLYnĄ".u]k~p?~1)EI0ZD`fɠn92 D,VU'3;{z(i>;{CێFpYbv/G{・DJ&K RmYP !Zm&(h[yUm8;1 3hۍ T;@8VpB@Q5y ֵT 1\lR.5 D)z\9?`^HlafB$$d踟o0aqjcfaKJ)"$\N<1'T3#o.R>φ|:<5'h1 n#"K-v&D&tr^{oRt>2'Te11Fꝳ|n{W6g:{Rڿ~Cu 9@xRʟ@ qDZ1 "f^Gh-ߛYop/^/"c<ga֡^kZe q]۷oR >$FHeC$|k.,\e lۖ̚\/n !;{)RD S"m{{<"Rʲ,f !Q^$轧I$%'G{^DʇQy`*Lqf^ke]΄mށsȑ]p䑇;].*\Y05s!ohE) 5d03qRg-䀤eoc,OCk:_1.u.NDuYm@4&zd`KB %uk??>vs3D4UMLׯ||0Q-{/U#My* @BWȥTk3R={ke]zT-*fLB"r>>m?j˲J8Yބu075j3}y3wÈJL9 Ǔx"@Ldg I5)Jy#">P5]&3  󾎜Q]j͒LMGuYQ OR㌜Ce|&-CB?=!SL`Bg؏)sv]ǏA@f)]q.! #: ^f%xb<#bhvdZW)ny(ZJ4yCHvY:G\. 1>r=:Uf}0Ǿ嚿?"Z=Nرjc (ǰ>r],?[]p aRXGR "sN-ϭ1t!"чRJ)"eP,u Ri]Rh^Zeutq]Z ZסL">9xG8ra&D$tux=n."tRwӥ"#1B$ Y9A@neY>@T6TpAGI<)=?:G߮KHQ\.KknoX"awLơb_o?g+L!"D"&\)D6pxZԚeO9syir,LBD0"ŒüQRtψ#0w @0Y'yu,R !.3uRʾmp3{>~T/!,,ntޱL"#`Y۾ !fOH'?O1'V{Z"C13KJ_Cg5cjYJؑR: eLŲ,)idabBBv̇Z˦e1l]&\"$J-0Z:RjϳG2?,CrsFZFRsK%]1]&|{sAs`3Ī[Oó7JDc]V3}\1zvaA0R$:4}ww`R_LBUx]/p0, Zhz, 1 Dp>|LsƒrBB,"r1}>RS>=Sh۶euE`9Qk@Ի |Ͻ@o_zJ;wSgpE2UQֺ.뺺zYm}IYӑ3Fg?۲eYt; = JYKgJh䰝YUudDf]/ܶYL}hLcpB#: ̩c@)eoLTx|B @fӑ9+*[3ֈID2c1Fr5HH9yxT@\"e߷Res>v)R.kUއ)pqH4Ev}{m:{OлMgIZkˆ >%2"<GPJ Bm\W"7c$ ƜOY̩s!LfH{ "m)Ku,S0&4Os˽6!17[Gnm@oUY$΅ʯ" f{g`^ Iey.c9o&$Bxyyn݆8#{IǾ-k=okJoO"ls#aP#2D%chZJjG;8 ]urdž3#)tՖjN}>tt|>OM~SC;dZ?vm̥ݷsNL?~׿9(j&DR}E3~GֺֺGceY!Lc\RV)EhIɩ֥"ڐq3!D4Gӵd9aA2-s_V/~nq4d#kʥoto#j):->S&JuC:4 1)|{2A R&GÙbD۶[t)$$dNIEPffV23$®~&Bvk;#.ZQz눮2^^%g@ >_ș0g$NfJH9DT*1'bTS:D2됈7D[,kL8}͏]Dssh)1OgtygN%e}&%tӸF$Zbb$ x o+ZkTj!>)\zϫ='Vr>~:  @)RZ# 2<}hƧ༸[˲HEME"Č(6ٓha As\sܡ#|s̿{PI_^8}>[kH!Te~$ }Rs]9'"1 ̄GknVkeD$뺎>ZfRn`"= L4$(1J0As <R8xV5!lV;\"0Ӵ2L"qQ祺yK-%xyy|>s1*nDHnLe1 !)P&| 3KL`Hl3$kS-KPX>zJ|汐#C2"':ڑ>i ܂Hf殽m OLME3R[3~_׵~>qLQ%˜̐(L <ֽ^Kxo{Nlch12L* 63]e̬2p&#"G W02/2L9@Ĭj|eGǜ0@) 2WtfQ5lCp`/; i/0M'׏`!D'tU<wAhœ9yDER r HsᔢOz֚4}F>ӛ#!$ gNZwpZ1$'2q4)Uq]WS)52.TJ`f u%2IÎ~_l1Z+9 !B*3ge˫i?ޛ˲"蝉)e:x\P%7U>Gl'!ΰ a"DBq3sY.RO՗Oόw5+)qJ")R59y3<2o%&l wJ).@n5gr+LMZB5=?!$54"de1`.ю㳖Lzo ]Edc<۱m뷠F_N$OE [#1z0i I?m?mY֟c0pωSJ6z> Lz̴oϠokq:{`0#I7yH2ǚ8sk=:Zhphoa3{>Hl 2;?g ms*Z1zyUT 0%WќxkHB[KrO?@+]Ft| ΅#*`&`iܴ Q3D9Xk0#-z>wd3mG*-y? u]9HԜ1t#fF8Ȼ~t82;uRjl1{H|+6g{Ju5UB&&b#x)V1DLљ3u 57CBL.Ɯ-RcRr4&NCThԐC,FU::!8.IRvnDLz?r`3Bl?J'D=8q :7VTDJzm]ܶ:\dL4"Pq^yc1)(򄚄3GF0CD!9wv(&F!cL)Bsi2V5)T%:%hfS3R> AtķCT lx^S}q'qۏ?>zo`FʅPv]JIAjt1s[Q&1rJF\Ch' BE,.uiPON<;.VR&ž8z6;O~w7ZGJ֗mo?^ۡ+p2 ;@([`dw|۱mh!S6u,Hj!_^DgD,Q#_x>g:3RluX%*"{q U4Sv SY]H2OL8YU(A 'DJDddKٺ>N̲d DTܷK)ϰHLG =pH6%>z$mYe0Z&rIڑX3} PMʁBH.cqd>c&NlneY"dQkyy_d,{KLdZkmۺ<:8%1)Xe'=qHS)* i&K"#AX5s~""s,:ocs/RhcGXj]g46!^HH8m6Ue"D/%;q sל(Pfx'pDC$nooT%\R"ʉD33ey{{5hO>Ld&^K~q}?UiSp&R#G1wG8$V"Yl"s-+cӠxepdNn\}]^_~ƚ9SCs5ޥZGb/ c8 I8͙433UZ7)gCb0\rt2E}vfʝEu qXP8c3hIl.{ ^L(s!θ3,HLv;/cBTHQ¨a_FꓕzauҘE8sf CEt 0L[ USDMǠS*9@Qr.7;Z?tЯho`»7#crOY LO 1ۦ T_dzZk-9}ۂ6M3S{tUŇRN)R\ѝ;jlͰHP%@ѡ"x{][2(1a7As>KcȫbUw' NׄA6vt_KĔM_w"jN!Gev{~ރl2ђ&?xסn) $SʳF ZHfgPlҘA58WVk=6]O 4s=03*Tin9>ܭ61]V~nwW{!>!IFt3͉sXY_+DȖZ2keY5\)HM:%ҜǑRum$s1Hr " $֎//ַȥj]8"FšxYKpsGCSJLlnqpG08HTG;vߎYry}gœ51G?S]TRN=Ѿc׍?R5$p[3RcL E3!?^R^?}}1j~/RJُԗf 6L!3XB͓sD] XzTu]{8KηR %&@ QٲH"*EEMs8rNLDmoA8}'|NlG (jƦ?>?JsH0뽗&F=mjGk9$CY~M)zω2m\nRPm@pĴGZ6C<8-G;Sa1D s^ LS"j&ap)˲2Ʀ\ @,ψ`,J_/CuvLf8W;fjuehƦ{"`Sfb._`nD!Q:;dW:l\DXHQ`dNk轙" |6kk &!$9--4qel.ڍZd{R2')~عfN Du]oC>beLuYFOXt}]5d@6$H8חO7j(YDՌ\r]˲%ȨCh)eDL"V3ٌL ynooOaȬ(4.'!.~=У29QZb-\6ڐe- !")%WQI$*VZ9,۱@א[XR4v[ېgm8Cҥ\q<^j)}v1m} Lm73Q%"]T hoC yȺ.gx"!Krp [o= I"31H{"#ltdQ;1Tf6DnD,%3gέHeaB`ʱ#ض\Re)}eَTT'T!.rJ86iYy,p\Amh QrRޙ9%e6ǍJ2ks0T**5 }gBH)se-P\9D0}88\xf˒;S=j# BLb A+x?`vD3gH&Y" U bUz<(yѮd dHVlB[TFĐS؏3Ϯy92 q-""۶qRRk]|u]FオR1A-\rV՜q8c-xyM#\! pp /)3LDsxtF9$Bf \{Rƾos@m{{-9a$)RF2'3(EhfKZW'w|&[]D@DrO۶sșZ뮖rٷCr'em |ƌ_oNhqwri~ttwH .-N|K6-saf MDZof8#D\D;əBu&l !8sgG >t '݃tn?8q`n``~ t15&!˲l*"XJA1:N+C,nV'i8PK0%"w$s&Q 3M_8KG N@{.yj4vk_M2٬\A_A39'*`mœ _qk}^u0Q˙|Ok)IϚ0{穻2&){G8plk9EyVs"RJqiJH$$!Z{WY@ `/K;A>wu]omOAg5\0_A 'dfųO@PBpT.H@Z3Wpmdi&!\rK%_ۙ+&0D/֔.6pRZ =T nKYo~CsNaz`fئEmI/3Gg.9G "jbQ.i")1KQgk5%t۶VS܍^wDK-|߷ Y|A~jRu}>YVHGW>b;\r'xk-(v[1"\߉)~G3Ra:i'0h;Zkͬwtfr5z9ox$zġVaG07ID3!' AZ #wc6RNOOeLC. lm%/uy2^lF3Ĵ,K\DL1r2u]4\5gbY ET_'UCB '@1DL9m.skI4#mM}>*→s{3k9}o9~XhKɑ "vvQOia#!*̔Cf6g?ɜJ<-:G#}Ǵ8u:QI ,ySM;=#C"q3e-w7gy@}xZs&f3xF/79V$ m#2ېDAGtG@ ;šE蜲 ĉsffZ@ԔAWPл(D n"?iXWW6U~V3bhn.F] !_WY!1HT13kءʜ| Gie&fWubP2uęTG3@ۿHJx4^ub兀2#诉S3&Dᘆ]6yK3N__OP_t0S@&~ۤRAwB=(dD0ʬLZnEFx. (it bdNV8QM<LG- cxkhCň|vc콁[)3o뺮p?F>k)&NpǺ,???Ye.( FλE8fG& ZDj QsN9XVa,6)3/8"h*9?Zm1Du5́_#BG ~=wo H~}o)@J,ȥ2'SuLDj`?"!u9 .>WfO>4zGRڷJ)2 *R [o[B: N-qBa:"8=C6Dk- NLĜsHJj k)0_~sڶbv[ZKwu]???9%ZSQnj17Q*{+LKȷ6*!!]]_$U}PєHD ZAǝH9=^^1:>95v F-Bbq )ڔUƈ D=1"ct#V:=$cC,Dʈ'CtnlfșKNC$0st%۾X~aFwL~3Ȑ&BTJ67R"|ͪ@\%2֥ F)b%;5!hLDj937 Ds+u팥bD3J ]p")'seM}Emåt+^}.6-sJ`Itnȉ*HT OtA`|yr!&-%'%1ec#3rbBctc}Fo ~`_W8m _ʳ!^`͓431rWcP5Nn">mR/O/prdIc8Ч<(FTgi (A%"P,s $00VI@Wlkم>_*eFhb-KgqrѲVf~c0b?W 2BjK^ENmV)(Su*0*R#G[̡~]2HT Nu[\k#4)%w"48y)+Ay91W)R ZN̕ѻsZjI!~")9fs",ǧP騛C܌8 3kexBDcD֓_R_[D_^_])&jDS`<0rB~ ̍RP~(/5$Di 6Lz^`Ĕ\"DQ1FkfOixs.)bLvJEctӔ2%VS9B@lRB(9Ȭc]޺ȘD LSqu).QqUL\J[e!>z"wa&ӈ*2AĒn2nGJL/E}9%۞rNc1zs.R6kɌ\|jO)8琣~ϙ;j^u|~~$B@v(tYDaen2hf)ZorM$FD 2}+'8!\)$3km8Q6\&xg: όTȰ5i'ʿjZ::1?l^dc%w 3NZxyѻ#'쩵!0tp%61T8z`ɐ̜Z̔K (;K[T5vȜKTz3ך! 5nixEďmzR@Sʐ|H=ԠqBsdYEiamhvǐ82r?ό*uu{?gb1 a=g4,x,(B~nn.DbwP80)wW_ w+% (EՕwt 1~Mȝs"m11fHHnnz[{oǎVQ?{)UcN)U3 :,Qm)9󏷷۳ww}j1zBo2K}_ooo47rNc#5RV>8ؾpF-9G73urι~8紀C$Ŷ8eĴ,KNLj.19cDw#>ZJ),qy}?eZjZl] QE">ൖe)u[{{}?jQKٞnh6uNO 9C^HbafoooD$jL)!y}X*1b;D, OC̙0u29;*A$)yS{!TZZK?PE}0p7L5as)5dGNS/.ꓙ]r"x)9%@>FΩ"2!9@1}V5&.~z}?SdMnkkG ĠN3ZN@QGsUq3UeRl0v PQ.E;u*fJt/`DD(RTM/}S=i6Lp>_e+~W}%I3  P:w(>Ud$u-_U=+\;~UG5kxvm8%fw%g~9`6 ~QG!XL?ߏ}~uCb1w\WR(a$j 3#= P#I"z=|gn|xma pw,2뫩}J~~ l-v3LX>L@B3 0Wsŷ"0q_rʵ4%2(Bf2Iݦ,HՎEЦ`f sZ%u]| %@㘙6HwDD)s,*m,>f鼐D܇~-q=d}X4#&C%5ư!y/1r O9, "[kjk\jkm#@F$H)}|GO+v1"o˲188' sWRmO1O)qح&!Lq)+n6!{s8~a>S)\Vh%DmY" #B,˥B *ǿ9)ٙ2[vj( Stq1zjYBغ"q#@D"4蠃r.H4QЧ7SMɁ} wE@p_lAsd@q`J-.ƜL'!:.eG20z"( "sjz&.<_|+5q4k͙_VpS7i*uYJ)L^ھͨhd#3OTCM.5o2 1|!fS pmqloR8LjHj"uY=E%p,q$FjW~~"+ dgGf%|M Nï[mvwӯ~2Rޝ%~q004#6r R/%|ZeEMN̦RoKeZ ]|!dNGO11wdPۏ0@3oG '6s -- '$dzAv6&)sBZk]ulAf:ODa |ko74W 5p"c.2ª7ُRLhau@/%ǔ(^U{DAB=`f$a4|U0 s@|:ZGawUKk"fvrO׈l PURVEMԘ$r>"2!2R\ R ĵ#s2ay8!D׏eJo)( -D)Sw1$0-ox}AޚC<Ϝ,%`&SR3NP=B|Yj9rۍ#ϟXJ9Zcbϐr)Cn1Gvf.:Rvn[DtSFwӞ%z&R+ pG稵=Ҡߟ ?O5SR$s@! m ŖL(j1"к%O\RDo3q@ACj˩H J߲B,3-Ċ* m}7)#H$}@JN`^MFq:͒H)Bu _Ό:Fq_f7:΂UE3}Nτ/]݇X!n`59ܗZsZR!L2JND BuKpb3.ǝzCT_Kg*͑1<@^!SՈh_ <_ )# YJ-uYTkڦ_)2hN2— ~uI8!%zC$L˺=~'Qkp__78x| ~iSyU&^+)>?ߺVx1_D $p@ 9D&=[KL`:gD$j*j\' s@ʹ[J̼ ^L807pEO3JVDgĄ1U Zvh-"KI} d9x;[ə5r3 q{{}Z mrFtdti#x ~)ֻ5I$ٙz3̪!)ݣzjɊpt\313ֈzz;J˵zE3u!<|Y@G֮VkefKh3Hea8f%[&ooۺ-xK&=}PLy!!"\ajfR$\D(sAXͬzDqÝE+GkI1Б<sfYyx~yyٶ?C1DjnH%gxnuKTECGu݊ L ֎~J)RD$W-֎L.ZkÉ=S^C8 #"2lxl}YW:T{ԥ4o/fiC khf~^}}~u-j\u>ߘCvaS@$=qL6;DSȅ, "%!l[Il}PIcxX 﨑˶#ݧ|Yd G>r"j __i6~DA{w&>E>(1[ɖea:Hf ;D ɀv2 MmKa@HpUw5d@o1@o~r {gȟZ\/&ٻd8Zuh)%\:#rPU{oKa怤fa@ @\8[ 2N0Eqt,7˵k@nmR#eb,͜:wc\fo{mJ0r&+ ֢TGܣcHx^Ńg4yrOB7rNΞ8Č{dP:~d Es3}FK0i;p%0Q@Yxa 8轗"`S1µ+D -C̑]M}Ox2KZ͋rܐ/M6R}n gRCNv3 !>HBb&;"f9V?7ߺ?~ F C xlt&_z i[*#EP6|u~#,,yt[q Y@/,Z7.R=m}Ě$*Y#:41Ӏ9S9Q4gBqz 0W63\1wwLgIS5mńZ%"{GZ03fyB+cd\m?V# ʣ&^"㏟?>?~熉UՎ˿[3#'F"8Fr"\FF} 7[ׅ)9חDZQ s&$2ZSpq<,EM a[W _i^.\@Pu!rdRKLT{bzoe-BB3/k]ԔP j]u16R2W̳|K9 pXJ^/"Ǒ8-2쥙 ',z r0,z; (Es @ݿn_myS9|||>4-L$Bs3kLg<="vW3u_jy} Ѻ<j@3Z&|HYC?ߨS@ D.j S$BumO0cD\~BUpя÷hR3>F~}yٶTcWaL3Yez;j-fnK)F9rCD`Qig}p/8I< k|fh%g(nC'=vDz.~TW~=UIw δWvsG FGӓp|'wz7.B)H8ֺ:zfs A0i^L0z߾q쩫Dl[ĂDyki߿?4EHyۻ{Q)u!ԥN\[LGtBf\F`bI㈻evpbZ譵0cAwI| PJ)ﻙ%g60~_GA`"!HE-l]@{&dR)٬hh}dN[a"1! ʺ HS^uF'vZ3s1,ۆ䟳?zg˲Y#Qj\jh8ZgH>wL2TJq\uPSD0${ݶ1&,׈DHDze{_u]}?ֺKkm(SFxFZDJgN3tKU)_}ePZ#9@@BUK6)eِh咦@*. "-jc^./MUojC}]/n_zyysaÐ}¥bDb9c,ff."լ1bvW]r}9d@Bdp[$ # ӥR$9v|އasDm%?G4}s Li p.ACwbzpeY Aog޾0=K;GGN4Y@%COsUz;۷ >}uSf|y"cZ-<6yR%Z33:4gxrY8f P[Vq@o`e~EJj-rR 3#gK$% .eϋZj}ٶZ蝉e᡺#XD`DRE{ީ0a 7RKS>I'gD|4oSuJxwEgR3] Lƌۋ>aHCƘSy<6g%n1xwɷ,çpW<qwm|`t``DD?3[P3qՎ,Ws ֶZ;fKx"쪋p*-PDt4\ 1qIK[R"XU{|2N=Yz L?:3!LG6L&bqGasth,uh1C9UɩG@˒pA jL½u7pD,љ qiAJ7.1t]/ԏ[& b:jgD'1./:G??Zˢcf?Qw<>2C$X3.FxXXslY#-mwfA"Nzb: @ @b:A}*X>uHSMl6LP}rn"A&(~K%L㷻RLe~MBFЄD/{-%lpZJgJlfT~WGDnZWf5>?^^]Uwfog8~LE-f:ļoaI`Rs'&}ߏc_ H˺2~8Yјŭղ˖Xs`a$c^bȊR\7ubbW%u]tDLI7d`p&z<S>M? avς;`C^e2v;"\H =4"g1 >Obdfa"9 OJ9> f, BP"zl!L#BEU}h)1|z.23Ȟ;18A1!f5pXBUz誩7D$B_ѲfU5w8!ag4qǹ¤4 Kd}c,oz43X!—m;XgS ;3(>&\}䋘8eVNLy=_r#t{<}z3czAܙy bic/¿q';0(\`Sg HjGliBu]uy\ֳ*%ʖތ, 2 v@Ҿ+=<+s}}!xW۾`)82Rdj1=}$N5fqrC9 0 tpfG0uִĿ?<@(uE߿4Tge<1UqU8wFۺRpeYaB؇* Ee̼. B9>~||[ EdI92aD99tp$19;"|cߏ!3>YwQ^0TO])RKAܞL{{@b;H+XH^/c{[:%YS[2@3/&hVm[ͽmCV7{tXxݴf-mR?Tk]n3/ ¶岮'Lf n/C8X ҵ5VrFoVK!.c(Z]n@w ZWsuqۉh]Wd d{c"7Df J6}Dx>ڈ8ZchBqHnr3Gf-y)Rh}2pB%=L)n[MnB#hS`=RFf'ۤV殔\6Z33"bOajSΛ;Tw0Z#AKBfsbSnv !B}ARJٿ~Z"ZN1LZPArp:M.<"O>we7&R2Q+_tjNX`9>>ut7ߝʼn'ZrRjV3Ù]lYTc*'1|id;M+-a8)FD g t}DGSr ~b^e fX-Ez}UշmfG,,F{̲=kZbfR5о8Z찱|WC/U': O9Κ#=1?̈xP.OZL-Ev̲%F{pus'$azvW΍ՍqF[uY5G?`zg=+@摵KfF R,[~1Ah[8ga|'rh OAC-DWSMJZS ̔/T!cڟm6siYNM*92쒉#,mk][;t(mr^h.EULJbZ]ߑ)/5@y -Be]18m+#R;e@͕RV^JDy1t{ Dq;6kzKBy,u =@T `W5!ip5[ Ǒg[a,Pf,1K 5/Qfo|rіrBW˞yN2s2 0=Hg-l(Lf'G I-Ksa? '6={Iu3> B!Z.>d9C[CM1λ,Q<(W^ֻi-ւf>z2“d!#SEL}sA< 39|#bf2\ K:"@\̐GS,kEd!ILzfU*_cXVHT B@ĴeLHhn/˺.RKa}`FGb&+c ̜BBB&oHYneoZ)u) 9Қ)n8Y[$S3("0sf΄OIC*,k=a';O?GMoMN{ AxևĶARk>P)bfzy}ߖZHw~y?jf.4%=n&hf,"jyf:TMSi8 'a!" DA=WJ!rt3Hp7fp݌13+s[']$KjD_QE "M#,1K4Vf}_̑PJB5@<< C 6Py$%dY6lyPbfm]Wc4)L8RScH(\uReEU#9[Y(*KqHar)"Ho "|~}AB{~̉2v=1vop[~̜v 0"1sS#)]]5XHaZWstf&2N۳21.h/k v@DH˲8U3\017S&LLLuZDthk] -5wWi<,r<;?!"JW>5gzm[ aCvtu,;˾p,3pf LYY>񷴺} 2znHG-#%Ǖ0 ǜ#oo)wiZEDkJ̥0A2)@p#„!ǡ:PJcM@#ju9}#"O4D*XCg͡"j ~cfbk).%'-6¢001L S'fݾ>?j)Fw1l!kAs:)˜0Ļ?g{RF2=ӯp>#ũq,LvA".eY_^6Fn@$~^hG[ja}R rv1r)=.;ڱ,бk"jr;{ s5h2#m#3=ZϢ|΀O+"K"WD,~Ram[o__~3@lMJ] _[kmۖ;*e!>X},B}xyy)¿~׌eQqh#q(К~", 1!(ƄL2;=;B[4i8fwV/"NphYxN0 1#ZÌ GySc17,r dn"q5fܩ:{©-XLM R{H\ ]uIkg3 bGb>Gr0ח3+R\5_{;6H)"_vFDRLdJz@Pm؈t~.֎\mY>CM۶kB(5%WJir4EJh}ʣ:0 {ubU 6'FzWs{'MzlMUgE8`'Q-iK-YLC 0^z#\z)꧙1C?n.@cjb-" % `}O;0].ҽ0Ʀ3N0[wBj!@,ZqeB~ϑ@D5xrI'?+tu~bb1yV B`TQr#ԝjg $L|Voq:nfK~ yvBG %hgT=,)\n!@LyN~F<\sjN}]D޶wPֲղҺ///3!ʌƒS1"K?ZڑBS}DZkݟm 䯙8a=" xz&"m=zVΜ鯯,˒XeGceQER#?Rea/,e.c )5TD}دߥFK!$/SȀ~B$ޟyV! aDTp-Er,k,lFa2ysZsYoRYOr-L?c,zg(e6}\=Z7Dz(!0)Hs.RX‰=ͅ[ Q]$3HJPAZ0SSIЇa%k5?51Mw?[xgi 2g4̳J4RF͌ό()@zLK-RD M㶭g«1auYPܒ-rYuw_"N7!$;Q'9BMsd!7uՌԮR$Si s 簚I10|0q-PL%Gg dZG|L)Y9}<8hK7]sD$-w3`{][w)c"Z$+"}":lR{6KY1߂b .T"4w&2S%0O;\*t֚_Ef,KU,ML$Kf}1&q2.}x Q:_sw#2 xaxJB<# F˄7["2Dn߅#_~A2설fG0KT-1SX&irvۉ9\5o ~H@ ˶D^2r9qg@'cY~tD岽]њBxsa6vVJle[/܈9AoK vۮzv47+EJ&ڶJY5}v>M]5ZJ1ƹt @YcFq/" \"XD:qDd<Ԙ0V~}yc>rӇBRI{ffc,Ku} @ow)@'UKn!F"qrϟ9en123W#լZObOh۾TNK=_X"]CÁ,u}Иiqޙm &wHQ.]_qψǫqOZ'MydIs3IJsWԃNR0S5ˌ$c<B CUGk1zes.;?m+3Gj0[ZLPc:LCL50.81fri SH\/xC4zJa*<'As(i $2@S{1#aVLZ0pdq.-/x_yңҕYm(tx"5IB hH'(ߠj( ,oPchS/ϧNCz"bOtmSY8#̜%=/Re1TeI+]>ci#m e@@.LI#Ax 3&s _|`W#}cZA!;wKS,]njT3b1->i]e7+Lvٶrb&&1RLOoKhf̷m!-Cs/"m^7H"_<ڮc1|?0~]j(`#Z8 ~c@@Bfՙ3A+QXirLn0FDaA'7S]3nf>x'x )?'#\g"D BT"Q*\Gom?Cu !e[?>~r#x#ח8v;[ϑ ra2nֺ\fYd&a)Ĥc Q>^F"v $[fDu]~8z{}%ϯCsda?^ew-T=͉@=.{F0R1Jغ'Mˊóp"hN]A$9MRJA@vm* ɟ#¥f:DJhގcY怄0먥b?n۶ޓERJ:l;'lGH K&d Cǭy|}~.[G-2D>S0ݯ/"\Rkm1t283  RU#ǻV PFGa W^1J!TI2#CU2[=r7B'Q>\gDAtcXjt5|ÈeGkH{fz!n\j-RSm' @އ;Z1X1oh!"BD n'P* sW;՜fK-B;aǻiFOVY$y{:K5<1X37st8S`kٟdx!HA֎ CUR*r +oZJ)Blu{ ȺTDTG=%%θ^wT5d2Kغ<-@jəM-i =d1Dlsnw88M<̳ ?pZG0`|V!X3,tޡWwۣO ~dij_Ryph>U3)⋸O|KeTq`N#4."?mЖ<<π3rI@qD3uhgt'ƩPUӖg kx>5߄z p^V7Ùo 7J)aKZh.q1 sZU"]јy*Rj]dmT~ {SbX nl0DI[pq"_ef\J-hx |[ {plξ{c]WPUd80Z!D*NaRJQ ~E<S~f= fS F|ZS i_HQ)$u3 pVi]tai)D8?~=Lũ!b*K^ DT>4nHZOUNjQ"EDhiWOU+uaC=y[zqHzT"bzUR9Y.L`:f&16QHH)O8zDijnp/3TD98!c=S)A@6eʉݼY/E"D<þ] m?>>3/\]c>er^[;k6SBL'ԒG( ݶ#G.M; YUVOZ^ӿL2pw;̅9(I7JFvmZ,VFTK)te^;ERxC_n7&L1sGv>v ?nu(04%*lG ;Q$̱hn~6yȸ*3?>>n.ϣ-ۖ ifj<.uJt( !R]9xv@81yFD?>~mZsz@RDĐ@ !Dov3mM&Zюpp"a`y #5ΓjS_>@/ n晟졔% ZK)ycHhGkt3ZT=P\ yu!rg7YqvdKIΙDU85OQHc("j:Z"xb\BĄ׳0޾n0 S bO[vy{\95ŵ?fCzi)Ze2'nk&s ևp$f"cZΥ['_4v|~9:MU~.5/;Uo̦/i>Wϼr:5^nv!&hn5&瓈khfOf6UXZk%!Mf:E=tz]16GFj{} 3ihb+1*;숏}oMu|k-","˺跷C ?Zܽphe"H/OR<@k=uL[C&g@UfBw&nz ,Yrp$7 tݴ&1I|<+!_V׵:zpgR{l:1FHq׼R!̈́Y"rq<8Ur1zϚ![Z:,O;NP0ᴯ" 1\I}WYi,n˝s y>:4hgT̻1!NsCgoZFM> /R½Fs{T- TlD~zcabGQ{cR$N͌ޏcg$b";@fAB@WwWF3CBC{*gH,X\d1tߏ0I64עE2nǾ3Rkbf)sQes9s}QZȈʂDOQ\90"x;5j*!T]🨅"f O44a((Y^I5gT2mLM$*ALR QQ@t}LR궭o338 ),Hp=elu[]k܍N~b,@=b@€ Mm6fR{ # bYn2F'PϏ.GB"?~vw55Dg̤9H5kD ~=ֳYD&e~ n9iL1S5I fۋS 8IcW0N\"}1tu3/KD䡥,RcݐdO88Ρ/ \^7;_cԕHg-?.Rvu 2R{z{;8쓚ZR3kb,r#fn,8TR[ Lu)gm,Q߈TY辭ZnHҎb"3j"[Kyn-V7!q2s|J2E* {H1,SN-?1uYAvjz$` 3 {Zwo=Fw3< ƿጝE4"=ֺ`EU47UUT3Z0,S:պ!gƥ=mXH|3dAXr}3E$J3l֒]sMt LPE*ϸ`⹐C'F41T5:QYoES }nP(S5ՙ02F&nח M5`?#"s`5}c<@:qY0S]Ja:"#4pΝ"v~ܼ[0NbKǶ@4tLG+F-%QB۶j)1zٶ>̂ 5LF ,Dj۶w9maRJ); "VM}.Rey>J*ER>*I(戼ϻ$Q:t/.oOK#QR f1 ]TϝtRe~* d}qmOh(|~~R+s}P >8ϯNw`̆"ߑKrmgIÌ.\RJqvH6,Ĥj\@N#eYM,Kq7p~ïF2zry=ExVhe2.脰ݷ۶m||!x\R\3R 5,__D$E91ِ翉e!"ֵ"R] }2 3IpLH%"4rP܀KzįߟLȜSDs!`rL6B:9l̜_c| ͸on['œjo޶81p܈Uu˘&s+"Pgbs) t"9^˯f&&5~:v|E5.1Q0XL9_sPhZJIq4!HJ'1.L5z#%= VHݙQ ٫ϔxtպK):!ReFjI"m Gn&cBl=q"<ϣ~j|dOt”*ԑ$x\̩iX9,N>~vɣNK )Gkw zYY/6!3x e]E"8mCBo*vwztg-B]U=Kx]8oi}Gsf!ķۍubDJ #/{|D?a4ȅ2 b^D2=m۞ϯ?>pSs`G,bjGkU 3$}"AcS4#8H0f촚[;mKy`s(UJ1޽}E8t" */&JΫg}lK1c?̔d/q 5۶wJz} ߩ3,;UܦgMIH풉 {I -̈́CY#%9RDf'M !R"`7s bsRN@8GeR&G'=]c]M{m]vW.vVۺsccy;J\5"=ADH`X9 6G*Lhzd$~$u1fv|ٺDdh6c BncxUK)Ex]w1'to?~||}!YolMD&nNr0u ym몦j= {pf@lۺx疳8ceXPu6*Ǐv׿mĶ9!"yDGM-t)c}bku Z"`h6)sa 'B_sn_H_Hp&wym̋+3\:rp.,fnf7-"ocY#vGyD؏#˪lhF<<߿~9gP!'wZ+jVJ]VB"UCv-TZ f@yT2vOeuus@ 40w&\E{oByUj>\pyc`@W }_t@3 RdoL܇0 Yeby 1kh!%5nb&!LJ{J6Y8t4c$%U5w+ѸĤleD2?Sqqvm]'8Y[:l:BZ3$@m%zWpO|Hs,p2 MT_M0ywle ܶەxqR@O-e- 1p+msI6Z3MY3<&# HUsce*5г:hrO:5z 0Kv9C]j3 >T1ejD)<"I,"D_lg,&RMU[ׂRHe]uY{c߿cw|-J,X>>ޑXGZtSx^jN"~4нL0ZZgBED"O[k~cN4SMPo- u5z@69}=gRގ}߅)UVKi1 ^K]oQ%DD$"i7~֣ФSL͆I;Ut>DD`lm 6oqyxEW-,u~"U~7PS_d37{<.Lhyg R gąKD DA2S+y sOׇ&Դc02I6Zc]?Wv+gٔ;jE2Wc 5@?~|}~B4ǩY& AEX@05,˺j,HUG1 /RXemq6E9/@D02|EyV2^҇#"s%Jb~EN^$֚Gbr&bb)"2.󤍘#eKݖ nN8LiI$}ܷ~7Ua64D\1c1= j~>E:zb i]vw53'$so[xQ e>GZ_vuٻ?˲d& 1Lխ緬CuLҐ gfi9G bGxSԝ=l88]=SE(k,u[uYh0@ M.Yg#Zw H SnUBc{s">45}&|=e1jm0c[)B˲nk;g)Z ,*R"v6u%&w7][g{뙶VWُ Aqvs1Bdzb^te!9Q7YKw:we3"-.L%Xo|i|UiZs 9~tPebmT LB۶c?=!޺0H1sazrRmmNNZk5Rw/"ٶh} p0]!9Rn:("f>lGf>OP5=)lhȎ.e ϾD$̹wAjjN<BP&LLD,y!q6sN=:TaWev!q3 !f8G8{B@(1ZÎFv!9g) U"V{^$)Yh6&B9]CDWKѤ5oP8V9֙XfA> ` G|mhUvf-KHy@\T {ddco*sݞLr%pC77Q1oVC'Bb "@)eLwo]SyP. "S6cEwFq"MMsW:xFܶ[L}*8-+1G1@$ȭ,cb Yd^DL#ֵJ)&F,/)b:L[-5JrL^wLDf|>݃3omA*!S}x81CZ~9, @ts1MUf EbRm]e"l `@`SE6 \cEi+Biv.u1lGźZ瞫I?EqS7ݥ׼d  g"O2N.D2s#ly ˜qPrC \4Jn5OY1>9?c[vʹY̔0OAL||A784;EӜYo9=>UjO^iZ<MZ+Hlv㹏v(!3,zOwfGj}&e,H@Iߝ3 /µ.v\P N|Ec8C~W=JL>F0fIƈ)*B<ÁJ-%'y#VIUS$ 1ά~g~Kvr:eQb "flsj~s{$<_ N6 7 <WFH/K-":!R!+-P#5YN8$6x; w܏f)MKBf,KEZu" RJ IK!d6xm]W&h֖eaf1W8Rs˙5ДKNr"?fĒ0[:a8z1'HR'F_IpŎ\v8sP'e2Nk<^gR&q'qR&mCBwcu]H)c5OBD][~izI}YnV{=暖 {d7 NEF![~ʺx<\[D<ᐁ'LK8R>z4Pd"n<6⮚| БugKe"8s`F[5[krqC];Yj!}QЪ|-"=O%s.r ydklmrÛo"!9R-c5GTTӷ[ip˺mJ'mtERq4 8vG dxڠ3"BReUU4Uxh3˜?ؖL_-  @G|Lu0CI)30ŬGZ1Y3hϿޫ#pw Ј}yOf"H 5 C#rs`:?gN?e)em[azn90q&%IxMh&Ʀ9DSC%5DnB!e 8yYPSKgpyR%q~iCU"U2#.j6L I|xd^#C&v0 e)EN*z1rJ"}PպuD8G0ǞCG|}k_hGrk2Sf#tHO*rͳ .ɗX>^/ 5[^~- .\16WQ-N*qsmRlq&(fGF%MojDM7{>E 3!QYܔ”݁i)|&cuJw¤ 0K"{߶mt #VY[J)LuY{)enN]j)Bǃ MYX& B:ZFTa<49"PUb~#b4 " @6J.E$Bx$"0W5˔?_>kZR1`:R)L_?Rp`Z <_?m~ .q,LΒ |m#ϮU| J.W.ՕPMoWj!1ax&wWNةFP>;HT9_jscᒭDC \O.3 Trx0T)Ie_\L0,q=+(tևGveY|Լb h$~=D($XCSjn5S i`R5 3nǑǗ1gpR`(P tB /?BLP c1=~?TݎFĵR\ _ҔܓN Lw0qRnR-O @(ȥ,_"a| Ev4)rFbX80X*ސQr /%oHv*TRWk-ca1rQZ71Q2P.~~Z`qLɲx0aomhnRf8}[glڢp>!EH~QdIH!Ν,цQ {a% C>XKK^uϿtŭ\AѦS=0ϨĽD[ qY*\ZD |w"Z;,E'Us0~*Bustxm)R`Pa!.(eΔüƒ;O扞KzthJs>H?x 0"WzfŽmm;3|T%"mm8Oaf1F#+{)UGOcJ"CvW]?1IDǏHZ1TṔsV000DʞS3mZ\~eWe~O\V >!g\P\rf*8=|$X(I'Cgh.B=2S*ow)%R$Dd9\HI=03#p*6Z٣cHNǂq7CL2 @ĔanZF Qg|Ǿ9{Fv|$EBqQ\pBpQs_^ ks̴>nȥ=:%B}8Ơ~O#?wA{u ޞza-fSq"Hfa+4"]Mo~/oJh=3_nٺK)fG sC 8<{nfJGlPY-Z*{ me).i)0Vw>>8o~{sʘg"lg-%ùonT3O /ߴ/fly az{l´PL,{_ҴAD{ǡJ6W VnʌuYjm6w{>""\o뚽61q0fR/"ֈ5r;D˲o fQaR͖٨x#nXPWu&bvLt-k@xiYW7"֮GZݐDx߭mQKm}r[ouYe<9?yl881gnn;1U8=-51 ȇ3d8Sb\P3w[,j Y<~y%9S?8ewDRd}eY.s۶S*10 Yߒ2&TΙ 5SZϾ/o'B{hذS 4IKpB=K[+Dk:v0L /BU1 nH_|}Sx$ULdi]!4+TqyDXO#Bz*2cÃ吇{5JZuvsB҂0'V#@)EdB \'m8g9sWx﷕8D8MS,9$N#iW30K#V~\]'zZJoǀ Yp8T . 9r(ƚHܶ}ߞOoeKO֚fuejI9O^|K3 #V25 ̡ '%j)1n$9Zꛪ#QE oY |ώz3_13-x4"J_~YJv=֖a)N.." X̞}77">ӋFHy_ߑ !ug47ר./_~||ힲv[µ("<{#=ϝvkx}[:D"AaϏ}3.0?i$K:?z&g>Ҳrlmo}@p3T}},Aݻ2bA汌Iہ &"NDm}x6n+1?۶|)MO 6^M \ nQEAX,.o9C(򘩈Hx7})K`tB?~ uϋXD7X Ow(vgFCi|1r%#^cgl _#& ?L:Gf!|~Od tvjTq pGm]o*0m]k-Rjb3jw~::Oc׀BHu 3e \H ?d |[R63t)=Ϫe@EVpq uHD\[ga"f]s@qZ]Rk`nEVNs#a>:Qgf]Cduwu]rikmۓC plbL? 8Btw|&)Isc4C1`(hzUJ9f5f8q5az߅H$`@h&B E`$!?xqN٧ш'}31JAИy0 vi.h䡟 "GመDD sVKDd%M3FDokkL[!& n4\bT6E6"ֱYsbpg=LOiMelqb lo+tt[OUsÙW LL R)RDύ ˒ mH1ޗu,_T3xdDBӟszLhDNO/ {6w?cO(RKS""Xmdzַ}{{Ku snp,̵B!ho> JoݘHM)y61Y̗ʏKaKww ܊ay2gT$ϏT98V2m6HP {xƥ)sR³}b"7U:7F߾}}2x.uU3L[$ DjtTLHXHj9wt gF -G'a8uJNh\g\lIyJV"='ŧ)mZ5<ۋ* 9ST0 Z'7UD0:M_}]j=f0{Z纻0EL֙9q:.$ #Dx5ݔL!/oowUK\u-Tu GM+;D$J'1QfG5.7 BX +ӈ`Zqo ]wKow7z..qT"D"PS6lc"m}E`$=Ϧ"L3/R1`bʯ|0BI3" O>6$.%wM'֏=Q9>;yZ|hQx/?OB)^djsy'A=1g*y)3fmĂh|~zSÑ8$/>K/mY=W#)rTk8U-tf`٬7na Je!R)x-Hfsk ץR"⽵gAm[g%#=wGD?RmR]x)}']D|yopuCUܘ)=Ϯa ~<H,yOGAh{  /bfyz̼$dWkM6DD)̥Co[wmND3;ƅT۷w5s >s0h3c7Kp n$7&Z#z}OP9egj7YsL|n>>k4uSO>.Yqj!¹)[&Cm|9`|+,ʧ%ʹ稞j-E4(dHK)R?YV̒:S6  ]'.̼,"mCIsj4),U/r qt?om 1PeQU{)*e[i].m]"{cR]3'4-LRhn<wD7e)۾G?ܜ!bZ8Qk˯n 2cBL!0%]=epe֚կ?-D}Ka1bۮZjR)=0Cp,`Gz"ù /qY$BH"Y"Fwέ؋.B~ԉ5ϒ8&^x?e^1{wfp#"Ɲ,&\O_:5P8\Oy2^[&\qyD @4Y"Ի"q0͌ *,m<>J]e@Bc_ym}%/&>Y'@N{n[jwUuY$] @DOAmZJdY`cswmڻ0C@oܖZkۍ0pbRk< n,s3 ]hgo">>[ٴ H:-ʰ,dמ!aH m{&>LJ' o:G0#˺sC`./ow3{xɗzu[Ʈ˾o`ooo+FzRHxogvLP01nԵєJ}ogo-jPB0uЁ.B&KyΗQCPL;sk%>1K\m8^.ŹO'ftAL #;\k/_~n܃MzLĩR'iXgT8D/uYzcIJY+8eY|TT ġ p;0=qD9NuJa @Z.a6]j̭3 b^)9K$a>tL< Zk?`)v B71k 6+N@` HŵPݙ Wc8 3IawaTdlJ!@ ⋷*La 5Q"hj˲ZWTYMg"zr JY8ӌFHNLƙ{ǝAkZ{fOĕp*{2b}yM *>P xRNG* \]½EsX)]aaVUa^z nKF)]r ѹL=Gvg?᪝}⫢<5gf1 LJU'{l,*mܠ' D' :ZXZdm϶oR3xpA|}A(]:ΕRw{ zho. 嶷?VYцOGD<1Fs:uO'Zb1 zvX̜EnH,3@hjs8gU{)ۛn6e%aZQdI2 07,BB7 R^{'<~OǭusA]`Y׌h+BtwuR9@0 DO^AđD>oY~sSo== w /Xd'C3p%g kv4\j"N(> sWpCZo_ץ2jo[vwcB nVx33T7Ș8k&#PX׃eqsQ6~gVQS-RXJ7Yؓ { ~O)~cc=['DJ0!S JI[VD @8)HW R+Ki%l|'#}j=A)\3&xn=K-j 9z84J. q@dwR,UyPB`̧IA5Vʣ¤T~J6yh]uu o6 ϢcrOn%0KJuEi$E)Q'XXƱ`5/$kp )|@™ !D/Ε5ZcT~DH>"<yCx߈P2OTb{>L|]͑. 1wCfu$Dlb"@:ހӨ8= _44qIuM}U[km]dkn 3R["K;"otXcB8T7kj?~(|Z+˂v_͌}[3Z+[œeړDVJ}].nw GevM̿ /Kkt}k]ޅ #Pm{\O{kG˲"m"EX˗/?~|W7am{6웏0VZ }o 3 7cM,{/uJ-%nΈ7$Z|ws}uk^'"KV&.5f|E G1ugJVbax1IZ\M@X䑞Ng}]jq0uma)1 Ӻud'\jH)݃SҺ%P!_}o^13J ~;&غi~݆4W\ 酪WK9Cbқ5uDDRz),©BZWԇ}P{:l[n0s~LaVRM-I=غ4;TL :|R ɺv-$D6 ):7WٖQ4xQfR2]G#*!R+3j;Ӑ?"Fbミ;>i=*C '2iF\>΄(QL/N" EĵjϻIiSWz^6d&`8ҿG*'"]NMO"$Ƙ8.Aة8K@a͠UU!Ab[HuwFadI/om[Aj2PAGUj+9vƄ/4rBݺoj]V uYDχQry9Sօcl\Gx-0}]m3yHֲ#=2\$[(ft|2'wbFetɬ>s~Q E${W*-]!ҨAL24&n4"Rp]DpU5LjLJ;~m[[oHtDaL/ #O55܄y)R S:dHnΠOd~<.CA?a 2jb؛zR[ܙH1|*>5/kh˸2|uG'˕4G.n.K{G}]ofE瓈RJ~+"a%_.3ĥK Sh_E<\ix0'$3lwǔl܋Hz, [u:@[oh;K1'N"~:7kTu~nt߃>8;( 32ReY+LSw$"?-9Da4.K vn2ə¼ʹPA!wD@?"_ {d".h+E!`_)-xnϬQWrޟ +Y{(< EUR_v# 7FiA."??R|RM‘PU\ws\U + 8!|"A甀 ~9`[Wt|Yp5MQ鰅LhEq :gJM֢ E80q"@A"5g #>'鹷}[W)5gEuq[:QAdnE$h(܎jm^O=?݁qh u8d-|<axYn `{)(%^jg#=uhJϟ?~ݶ}cF|) v[{oDpDaj]G a<7߳B0{̃2SPǦ/GgmJ9L3^>G@DfSØ\=>}R*IxB LvPcd:Ę/G@0 DXr=zө,"uY%CuazW$jTjc΄H,Fֵ,gK ´ tS"' uLH<-_S3lx>qϗjXF ?~H'X希˯#B@7껚a#ͧf۶TϮM3%)0;Y{kJi"Hr\Z ρ\ `_fxp錊-]ocLys˚p̐wq,<܂Emk"ysyGvbWgܜ#ظx~iARD½5K@ 3""\j}>;31 24+!N䕻j)mۅ4܋۶%s1!pK;d ʥO]VD!l)f>r.:&/rR L sU - gf#w˴Ԉ9)12-mDL~=Nrw7$='E7>m0,*k? c7Y26F\ j) ""f)_31@tMfI-R}d=3eYTW砞S?S"q_ <?G,K^XZ$Lq&&i+`r vtq%"&.ގ)(WD@|rY0n_s瞧(,EPgKPb6] aG,pH)_qb_F1|GBZr.)t<`KSjR*s8 3[‘y wwf@ B"ePrz&1vMhZ5v˗/)ݶm5TQX(ռpZWgƊҙz `7C@b1:giXx1@2D4C0krWOX+u?c>`J)^DOfD]woL}0!\nøͽ홪'y3s RKx;'g$h_f83%~je1K2KaDrENdN!zBE|PTy9P>N~@;ds_sL\OC4S/C%*`$3Ӆ"E{s3AfXo;01"QC(E_,{kv%@z0 G{+qb3+·vPf 3(B rj=yxHĜ{tp/ |g1`xW_"U5,*@/S#Z Mz̫ P6HdiNͺi^??i7=X]Dmv~9l:,k֝Ԍ܌!ݜ{WW}UAsߤi!ɜglal@t786yQr a|5!0C Ss Rk.Ӫ.LYwd[yYQXokO68uF;1heY}O9,_"SKQa)(!4i.Rv#9@j5HW\\ݷ8fͯv׮E_GOSC?N~h1n^տ~Z%ɭ5SU3R!Xx.A+13K[ºrVW{ V%"Y_0Y> t}u9{.TG#gxh{eWŨ貇`<*ʃ颓C1D "avr7CB&64'$fh xfJ@b^M >z %2Vl?ݽ’ OK\Rz^/|#J)ܗypT&;prO~_/5"I %7aN2geɿqh"":D\ɏD Ip&E3v9̀K0EZuJ4`2iz]ǃ`D*̵.Sq)\h 4㫵]@ȄO]S{8n$ʠeeG/Ej)UZT\eYʾ7fzˢ]d9";D=c&44~m߷ 輛m$bf ϳ%X2$ d XxvUD- sʲޒO3>gQ{GWĜ"'4s@* eiM[˜;xjt?^9ojLk3Eu=3(L(uOs3r>L~ ,{kLf@`Ăjp;"e<+J2"h  aXI&p ]g 0󳱹 L{F&CM e\E2"&GfJ_pSLkنq2 o?/rK09Qk w/^꒍J&QvL.s BEK%nͦrdlxt{x݊}-0*۬,Rk}6I\jM1B۴JdȒ6B9ӥCJ|4hhdn) /ӡ~#M\ й0:$$3(榚DSbyGM b2Co{yK)~˘Eb,,KK] P(Bz>RgLufA nsC!Lu3d&ĩM!Q)M-pfDN9WZ6t匑ajN,0a|8tHq>3' 9ܵ7A Z3 qxkM0H6X!m3S-n6L-{Gb"r2CC/OA~Ú6 i}MNӨRj1/<̈\ս7m}]]U+/37EF ԇ #N#3;.EUi|Tj.hn 2Fܲ,J)em \r\.ۣv<磾˟)v$%&h݉AO8O*I߫O!8l=~t:|f"ݩa /7cY3 3Sl&X:S%ܵFڄxH3'4pHN:dFg&wYA -%̙P43IL%S 94iidtKmsc7~|1S1Fn Zd,R{r||:eºܙ,=jbr|-kmL{6q]ΈDQӨ!7T@f"W>zY4Ik벬Dt^xZ;̜S2uTrb"M4MS.h, ku]奔RkkR>rgǧ @]+"2: "@7q#.h' Qd?X> n9{K,0cu)S8182qULJQ2`jjuwNLjG}s<@%FXǠ0Z\A诿n֔XFw$`o94i*o%_~u5tf"uYܬ)H=b)Dɸ4=; Ĵ/9_/'i)ٹ"t>j)sjIׇ1n%iZ34i 9 =Zel{\+eϖ?Wͦ ?7[ ƃڠ:|Rv83$ZW4 ݑl}_ue 8Dnk#$Ц!y 9\x@ ~hbQ "OphS wlܧ⇺C<"LGtXqͩ+u+CCMCDB`#PG?56UR fadJw !2B؍ar)yZ5{Jn`f  Ky܄!q=ʜC-7'JDc]0X(E"0{͔A-:`$@hdo:8!~h2'[N{8X@1e,͌p+[i;Yցi{)}ъr$\یHG!oVXbd9A`ntV@@ (ݜ@yUEmmK\ ,3Sb}<ԵR za!;(1bx," 9g>tJHĿͫ_/*2iJvOSNZcD h̋/4뺘i^+nWgĔ*RJM$toc%"1DШCeyP|cL'=8Au[N?$6uS9PW}<Zk9#n  `>糪u%D)%F9OzQ?ϑSUAq smicYnL18sN)f?\׵ϯ 9\3D[HGhxb9:g{r3)̔R931A9RATsʹ{]ɥLT{κU~E_?Lf ǭyA *֚\Z]a>͵8!4w%JVNjg֢~9,4!Yc^B)c]ktki0ޥ6=}؇F~X:lc"nPp|WN>ͩ:s~R{#ñR)גY0A4 4zanWb #EDn8P03 ɺӘEvxo$h^7|88֏= lh7G7% yOcta$lѶ:;Nݱp4X*8P}#H@HI$}2;86Sr"B&TeiMfDH#@m;byd-ʌ#)),- "T"ș %jюU * 1s1 m~|9"5D9qSzo1oZj"z, 4MH$"pSqJn,@%[s%(![mlJrʹ֊rN%u]TZN \wU'b$$R*SY6h ܎#z<41ӷ3\. J^|Rշo)Dz`đfNqWU`NUTje"WL|>&.m; )NMYTLmfwHz8o!x ;+"?P OS};r?S>`o#` 1'L!rf@@qXebX)…TjoDPkDSj"8_yYώE+8QחyԌ\rNDi*+A~9?w9;M˔sum =%$<|&"VE)%t%)!iN "jfiȢfbD7.~ll"˯\׺.ZJQiڤ57riM41@UML"ploF2eNS>4]dӔ*UJaT K%tDyGRO~L3w ݶ6`?O9` 3E!Q xRFh8|FSMD.ZZ8>fPJ)%y}\Ig1BrcC訖HA  Z{܇prqFǴ{sed„ ƠbkcDy]40NH2A<x=a)K OsN<}LBC ?},KkEDjt='Z+AipYڔR1s7L.:\ I5R 3Hkfʜ5Tr v_9:029P=, F]}A,B=@eY-bҀTU6|lTeYLD 5Q@O9 U=e&cQ5N)qZ3'0%` 4s蜥5SqSUH+%G937(7f}oD1#m.hGN{n$. dQd(PC\Fí,M(O]JE9"U2uИНz >3r>B%( "Ήy>UR#:?Rh[ˬ6)ǚ$&HL =jVކnR$f3 >J 7hfi.bm 7Asw0BBv Dj xs|q؄w[&ZF3b䜘Dǀ[m"NSjuy,j*D(p+)c%e`\rЍѨt^wBbfCwUě aނ"A(Qђ+:U|~.4emrbw<`ź]koC$Nt #a- SRJ9<8T%hRjjĉj-K].PXc6DAu׾7OӈVy*!9].W7+ex=D%m kvhCk`X*!zNO'FD14鏪FY{UGV 4[&M{p]8r's!mbT嵡=sO{(Yj @D'9g<3Td'l: ~:!Rͬl9%׺Zj&"^Ο5y{{Ҽ2chȪMUIy]k]i sfiDzەF'0\xYrI>#Yn헟]$7) &^/!<=Lԝ 1qkX[GoG|8?>=d{ isHB@ttӦVrJ8J>\%c/I[mAݳ"'B4Bt0rYr&3W&fJkq7$ڣÍ{"m`=K`2@8Dd b LliSc^塉o5˚R֊5fž|KRA%Sɉ=D-"1{k-&D)Y#ݣK3ÌimIzKa3Yfh].Z).m] k]WDLjnG``GC.?(bϯnͫȽ=xvPq6wsre湊!v #NeZeȟS▷āƯIL9s)6whrJ8qzjmfrVa3ֈ8\kOaFէ!5y%%8 ,pJ9|mm]+snz!@2UQ{р0<׵.{)˃ XJ$N)Dw=Ig-xg9 (! v^'-:3Ts^Yߌ%޵L`i vH ]/S.]Vѽ*z8ƙC5~*93ںF!ZrqZe) z(ZbbcОK1-[kuSBȜ˺Op4ө2ԺJ%BsGCAn}.`-⪗t4`6$q"BƜAN׵. DuQs$rjk%s65fDi5 y. Ց q*SY͙Ɂ4frlֺj}#d|>laHE~~Cvy) sNibĭں.XJBLn9gT1 NJdniD741FyrV׵Q A^[K)Zj-)V;[5JBXfV׺.+!^_^n{b +"#;ptrG V>#7po>;wCFjLȘ); s O ۗ#G;Gw[,DzF:M c@@uHLqa( gv"t&!/T&L }Hht6hm=tfD޽C7}y1 1N"̦Rz-qB@+0WS vѺ!LG |ɹ{t$$,ejk5䀌pHdI@raRrJfWˉT]d"e=|7q/1j{68l=ýpĜ`B4AĽ}qiwRɛ"0P9穔uGĂ'vW}𩝭(Һ@G+>GQq# ζ?D/mU{_g;k.B r =w_LG2D{%s61CvM,LX`!DRT#ZS/(]ֲaMfaFD?x2 <K"U< 3M{,;qJzS6VFE q|9[k@Bt75-%M9Z  1124(FsnjfZSJIJ}o@ADr.0vJ%{MQA@SU3BL%%t̉ȡ5ѵPmIfh0Q56m/Fl2\NȄx,MZӧ?p!z}{{pSJ >-!H@yZ4}J)벨*3?KM>V]O`zWA]u"+Q?;3ԎPػ0X껣!|8M|B\ToV0U3fnF]߷'F)!Kk@)#."%(/Z5#"38hi:.nnjT7y~bpsbDuщU#}?4NV9|e*kUTADyYwiYW3|e3#sk|9)/ ]ݽigSo 8ztRWBr("O>&eYn{LiǮg>h M ?cXg}%"ٛ#{ 8[&N9%u &-M% #>3UTJ)qZYelЇ8<QGNj=asC,ͷQ[2)v%)oItj T l/R1jȑ3G4 nrPjAc0{sPÚrЛ `&%RΉ!VU,|RFH%;vm҂y2s2Me1kz=DE$LDdw-9po<3쒸{\qg>LI"Vi"ݬSIYZR԰Ӝ?'˗MS0ZRUu{: qQgN+!t_jq/-B;8$BهSÈ 3C )Q&`n%4nRɳ/̜T ffLh]k9N$"JhTMlV5ЁYW|*twN`^El1J@Kxcq$T?yq߃D.+??vEE4ə9m4QS&dBG9'5޽9Uf y n po)gucu4嵝MN1=<|ofB7v~L1:PE{mZD'tS]@tMџ6NPK}2lf?o5D|bK׃S"bfVU |>*Z3Tk*1\nn98iVGҐE6c>{#}%uYEDJh`7vHeÌ`>8A6w$MӄH(*"MDT2eFĝ>3NS.FkNي4\EY)1].x¤~j]ssJ)'DV(%޾{ؓG";֨GF:^=W[Gó=9] pzD 4صχ~{$0c_  vdP7hf"qf^Bo\S]lfn41! w@q9iBo`)wtX>"o(b?S<$)3a2m]b*ZJIiS]bQDno7Uu2s:~ F%=RRPb8:XvޭI:O[pƀ=è?|'!#*b2`ffnT>LSG(-=EZɹյ.e;:kmKӞ䮦΄t9M膮-%Jk"mBhQ nD"EG4?Di+2+ )qJ9lLHCfbB3@fwl-I[Wp8al3?8n337DA H؎}ߩ'(=[B]ʄPw!N4-_a4ɐUAVWj&}=<=|# sɉ1wE5 QB]H]wCѰ3M&$Gh%QeE"ҿ/KOe[_'! 9`F9zK)%}P7i暘t=Ot4O2g-4tȃ~} 1Ym-37=c/_irwiLģ%@L@܉nszwl[Qv,-9s$JEGbwF\2Iׄޘ8 SGΩ$J&Bi-VOww ΐPtie?|>?ڞSw(iI(]L0Nv  asff|:Ħ..!SOJR\rJĒ؂ϫZk ˨u)Hkwf%O2s.wfDe^Υ^<0oZkPo3KT)r?҆2;i=aCIZ{*&o 1~uz5tV_װiR&m룝Ef@_y8cws%ty'\!b9HME4R%01ސsF~?Υ֚}YuaT (QLu㦄9ߎS!)3zq0 G3$/Fj҂EDŋIXĮ Z="|l[8{;1 bեLcnjH뛺-Ϻ8c;5po,wzi;lc`R''Ҏ DBN<‰2SS5{GvQaU@:XcwmgCN|k6M%T)8ۺSA<$x[bŎp#!Q\Ƴgj"{_ Ryw"!>D FA;$5 =IQ&@&/>j*$푀ɁİUѵڤ7ibN"T5bzDBb0 _k?B_ݿ1q]2[G R9s/_GÌt o"*ND!;%3"\[v[n;Uyn*-2M۝{d1~ZL?u:My23`󌀏ںSN7 EqwK DfWi+yjm"ʜ5&BuU+%ǧgp5r֚Dm8P`A~T%[u9;a=G`r|[ه'"w3 eaNn7c:=ўe 2rLLzyQDzRJJ9Hjr:E5 |Uťj;޷5DOI MsƋwB>H*Jў3s_ˎ1׸vī\BDH}yށCv" E"1v/wLRbt xaXl3u9Œ77sBsİuIN"B2?3Rc].M:k۹ ('.*Ĝdp[4ؗR7i>0x_fPs4k>:w4pwLh̥տ /As }R-"!s$Ҷ{v Kηuu'D&ֻ}U̓fi^]4U^'DYO8AnXTg1sCOe'. YIۭ8JΏ67*_q;QCfVݧmnJ;%̢~J&GQt;q/L .O{;EB<|+_3$(^j3Vh-ŕ֣+>f9sQ"c\47yc2^<{hC>z3?p QUAT 9u  U#Ŝq jUL.j2imHD|KkBĵ8p(RZ8T("*K9'QnJ#bA7>pot֓1{u7 sbtD^sɅP6sf-n̔(4n&L0.^a& Lt Z<@|q˲.%\csI~CJ'IH4y߿%KBaǗsbU2ӥ,ؓzϯ i z SE) m)ۭGdjZ Oh]U:U]Z͉kNˆץX~BDǩAg6:T{V69xcw99Ƀzّ7ωsJG2#"lo!XUS;jFqu-ҚJkk_K@twb1 _|O$J9"GIDrh(sJ!VES òHC4iq$jgEkd|8 ڵ],9Ri0 ^~O5 c )efQ31n4Vi;xSw@JiYVbޏCTGqD"Ɉrǡ "Tqd!9C=὾p !M>PL *2&' J3u0O9G7:vZS6f@DNF>D3nHÝBm1suQcnIDDE4/t{!3QF?(pZM."ݍ"u'fwXWN)a&jNf o[8jJzܫI#fDSGQCDN٫H}]U|:5 UEOiɺ-2P6N{ `0ӣxqX2RE8dC5+شx[]eQ5D*F̾=pAOT9yZAm mj"Tt;|~}FYyMfu>NANaEuszDxS;KkmۇĀJ.Rlt}ݖ3wYW0'uw18K6d^W-Dӷ{Nuc(e#cNl1`զ*;i?Z]mnqOf쐀~fd*ͺ/ڜAU5~wC=JO0V0f Qt93Qm$WޅHUR$N˺w3h ݩ E*{ F%խC5C'b,=_"]S6  63^ó=sE}CcH9%%3ECQ7&}cq1U\3|k%!Nt>yY7։~iug KZ%VjgKqc{q֟yth?!o.w93{NP1+HLld*0df;RL2m] (1{d˚ywcZajp=MXgf ቦrEx?6)!s[sapƗ%DC [m01zu1:k^ZW$5a_s霗 q|Ӵ'ꉖ\n?;^P;qc/;ә>>]<ʼnwDn "0Ab\ MΈZn J!qV,-6<&h*7N_>>x ڙDbR."&\tFlm~sZM+@H1]Q`mH4!.7"LL-ƒ<"owBw&${SD?$;~R0| yB5D F8f1i89(K5Ĉkzo=qe`hM1c6GsGB5&KYLQITJ0,BNΜYĘ8"pi KN)8t)eYn9̪k*юzJL9{ vg4>VU 1r:)>> Rl0c,$b{p%Kw;-N! .|RԽZCʡ8GeCJ)A$Xs_Mg tX~gl[(͕bϟj߶}'꼉9Uќ_MIy=zfVZJ9A9/YU:zm2O, +n"_ו}O\T!Z)Dd۶[Q\2,RJ8z)Qkm}E`f0AJ)9eYgsTe)q* `4"x)nf817t0>sW5攸 m7NM4xQ(}?"XjtANڟ_=~%I?>F6IAs@bpSuQG>r.qP1ˆr֤"t+RjT;p]< !.!=d(&H})eYJ)M4N4I9>j%!˲qF3 PfʉA{,l̄ ]rb4`s$]3  dVSd*/cď u=GcaO>l毱K}E5V4}#qxdhkJ)~IK>:|-|1qG1n"c@milPfR" -,NJ2I !{vf*nOض~3vCBUͥ*-uY۾mK)}~N۷9G RS@ĔR"Zx|}~A0HeF$ŻK!45Q8C3DMLǷ@-4iu]yk;*SM-L\Qs.T kk؃ۙs&$Dm{lL__jFUԁ:VXmE]9>Gs{Da0*]hs\Jbc{wkR"Y>rr.chL[@dp|0jK%Яz{܎oap22nrpz/M}qž}}ΌjVkS_qdHޙdvbo"y>ŸK^-g]πߏm괫amzk;64HvjχDz1{)O©dffAi8&Ѥmp! z N&e>3 ,XBrC@^jx5]|~tZq};r5Bgre7P'RI,LTyX|(f*As@vk!"@Gct\ zF 8FoNzY9B #x"ynaT[[֭$z&˄;hj|{A+HX b~#6e!^q{bY؇gOX_~||L R__x8߶-֔ PU۴Tc d),Xȝ^jkLڰ/FL4uݷB׿|Vk{<*bҞ߹>DJ.D=FE8Dj [qԣ49ᬝt|6Y2t.M`Ą,VPES;v:sيcHK*BT*?o?ĭ`jkG=v[߉ZՇ5m=q"ĄFVE$޽dB@WҖTqPppb\L^$W)"mmKRv-qmo?>EKy{۰og)yKYV5Q}?D5S޶[JmVs甛 P6 PQiȾܘmk o3EU\@N\JwfZv3ĉ9ZHL)gUO‹y /nsF!?t _lOO5\re| .]s^7a\&M?Z%eNCRT/Zz33f Px1ASC !Q3>`: D9s#s3ZmfV9P99sQssGs/ss?sKsXsAsGVUV^u3TV9T9s9TV9TV;{VVV#=s9-sBs<sPTsP#T99s9PTsHs9ssD!=+Qs3ss9s=s5 -s\T k3Zd13,WsG9`R-s]^^gr333333TVVVV99h999T9T9T9T9TV9T{{{{V#Vs4s4s4s4s4s4BsPsPsPsPsP99r99PPPPPPd1ss3s<3s<3s<TsPTsPTsPTsPTTVsPVsPVsPVsPVsP9TT9TT9TT9TT 9999999X9E99Gss9ss9j999TP9TP9TPTP8V;sHV;sHV;sHV;sH{{{{{{9V#sV#=D=D=D9s3s<B9TV;sH$'Ln$.?$$k93SV=9T9V&T9TVZV#?Vy`jS9V#PMk9PsVMBkSZ9vs sBP *y)OyPP Q9PQZTV;95s3V;.9TVTGVn '6@#s<^UsP5PsP:sRsS&k4sP UkPsH9@9@ s999V#sPPs>k9999ssA)UU\]~V+lsss 6)}%UXrTg5+UdH1d+ddd1d1d"g{mm))s+kUFQ@;@<fB##g#5+-qgWWB~~ O\_    " & 0 3 : < > D  !!!!"!&!.!^!!"""""""")"+"H"a"e###!%%% %%%%%$%,%4%<%l%%%%%%%%%%%%%%%&<&@&B&`&c&f&k ~Q^    & 0 2 9 < > D  !!!!"!&!.![!!"""""""")"+"H"`"d### %%% %%%%%$%,%4%<%P%%%%%%%%%%%%%%%&:&@&B&`&c&e&jG/vhzyws /,$#>1"DC:741.' ܸܿܳܰܨܜIFE(&%" bcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?w6   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`apcdhvnj#ti<7q>?fu143:kzvbm6@;2l{   }8w KRoNOPxSQL@EYXUTSRQPONMLKJIHGFEDCBA@?>=<;:9876510/.-,('&%$#"! ,E#F` &`&#HH-,E#F#a &a&#HH-,E#F` a F`&#HH-,E#F#a ` &a a&#HH-,E#F`@a f`&#HH-,E#F#a@` &a@a&#HH-, <<-, E# D# ZQX# D#Y QX# MD#Y &QX# D#Y!!-, EhD ` EFvhE`D-, C#Ce -, C#C -,(#p(>(#p(E: -, E%EadPQXED!!Y-,I#D-, EC`D-,CCe -, i@a ,b`+ d#da\XaY-,E+)#D)z-,Ee,#DE+#D-,KRXED!!Y-,KQXED!!Y-,%# `#-,%# a#-,%-,F#F`F# F`ab# # pE` PXaFY`h:-, E%FRKQ[X%F ha%%?#!8!Y-, E%FPX%F ha%%?#!8!Y-,CC -,!! d#d@b-,!QX d#d b@/+Y`-,!QX d#dUb/+Y`-, d#d@b`#!-,KSX%Id#Ei@ab aj#D#!# 9/Y-,KSX %Idi &%Id#ab aj#D&#D#D& 9# 9//Y-,E#E`#E`#E`#vhb -,H+-, ETX@D E@aD!!Y-,E0/E#Ea``iD-,KQX/#p#B!!Y-,KQX %EiSXD!!Y!!Y-,EC`c`iD-,/ED-,E# E`D-,E#E`D-,K#QX34 34YDD-,CX&EXdf`d `f X!@YaY#XeY)#D#)!!!!!Y-,CTXKS#KQZX8!!Y!!!!Y-,CX%Ed `f X!@Ya#XeY)#D%% XY%% F%#B<%%%% F%`#B< XY%%)) EeD%%)%% XY%%CH%%%%`CH!Y!!!!!!!-,% F%#B%%EH!!!!-,% %%CH!!!-,E# E P X#e#Y#h @PX!@Y#XeY`D-,KS#KQZX E`D!!Y-,KTX E`D!!Y-,KS#KQZX8!!Y-,!KTX8!!Y-,CTXF+!!!!Y-,CTXG+!!!Y-,CTXH+!!!!Y-,CTXI+!!!Y-, #KSKQZX#8!!Y-,%ISX @8!Y-,F#F`#Fa#  Fab@@pE`h:-, #Id#SX<!Y-,KRX}zY-,KKTB-,B#Q@SZX TXC`BY$QX @TXC`B$TX C`BKKRXC`BY@TXC`BY@cTXC`BY@cTXC`BY@cTX@C`BYYYYY-,Eh#KQX# E d@PX|Yh`YD-,%%#>#> #eB #B#?#? #eB#B-,zE#-P/@Go@5/_/_o ='==U=Uݸ</A  @@(F<&`ѐ`ѐѰF F@&@)AF@"'F!@#=  @`p@`з @ H=`е@ F_</A ?O@@(&)F/?@Fp5P&<<@P<'''F(F5&& &_o@F@ F_6FvP&uP&tP&sP&)pppppphpYp@tp FonHnF2U3U3UaP&`_2_P&^ZH\F'[ZxZF12UU2Uo?_S@S(,F@S"F@SFRQ(QOPOO)OYOiO@)F%IFHF!GF5FF2UU2UU @= @ 0p?_/Oo?_o_TS++KRKP[%S@QZUZ[XYBK2SX`YKdSX@YKSXBYststust+++++++st++++st++++++ssu+++++++++++++++++ssssttt++++ss+s+s+tu++++s+s+s+++++sss+++st+st+st+s+st+stu+t++++s++st+++s++su+++++++sts+sssssssss}y:wW%')L?]%uy!1=DsN0Ess`HjgaAohQ^UD,,,,Fx*2p^$v  z 0 Z 0b@HX$dXJjD8*R n !0!""Z"#J#$$j$%@%%&l&'6'(&(~(()t))*V*|*+<, ,h,-v..P/6/z040161d22*223>334F44585x56:6X6n667 7$7<7T7n7788*8B8Z8t88889D9\9t9999:6:;;.;F;`;x;<` >"><>T>j>>?҄ڄ^؆$jPB@&Ȏ2: d|ؑ2PВؒrzltp>h֜8Rt|(0<0753.'24.'>V8u~mrwI6S=NuHBwbmkh@WP VO5G,2D(J"32#3%2#".54>4.#"32>4.#"32>8`IK_77`LH_7AH`88aJI_76`"2"%5"#4$!3#"2"%6"#4$"3#}i..i}g))g)f}j..i~f)WrCDrVToDCpuVqCCqUTpDDqZ8FT@. LG( LI L L( L@- L  L?I9II/GBJ!@ H/O0@H'VM@#0JB $RO4/G!4_o *47.54>32>73267#".'#".4&#">.'326Z3Z|I *(ZgQ`5BmK3zG8L"^A-Z+ ;7L3^TH!Q_m=~v9 LAMQ3ZB&RM9SY<[l49HVG0d--5>Vg'rQ.P;"0m}6@ H@ H?9/++]q10#!bfW.@ ` p   H ??/+3/]q10.54>7!MpI##IpMPrI""IrPWootuWD?@) o   `O0 ??/]]]qq2/]q10>54.'!PrI""IrPMpI##IpMWutooK@+        ?3/]393333/]/933107''7'73DDoh=y{=hVY Q@,  @ 0 ?32]q+M9/32_^]+M10#!5!3!q9hh1"@ 0   //]210%#>5#!(0$!BCn]N##NRR(1PX?//105!P1@ 0/9/]103!!1%0@ M L/?/82/]8310++3#) Q'&@n)n@  s#s??/]q10#".54>324.#"32>JjjHGngI0M7;P10N97N2KJCCՕs./tÓu00u: S@$4D+;K no@ H t?2?329/+33/]32/10]]35!5%!!]a CPG!"7@o!$n p_ s s??3/9/]3/2/1035>54&#"%>32!G0wJ^[Z_ >sxrx>Nzsiyqr@^ZaaSn?5f^cvprA/);u@K&n'7 o1'11' o= o @H 6s,O&&&&#s,s ` p 0 @  ?3/]q?3/]9/9/+9///910#".'%32654.+532>54&#"%>32)?~|y= !8Q7ep5Q^*b\*WF,a]Wk U^|r6$IrNWR(`l9FsK-K6dg?L)*K:Wc`Xc`/kU= ;Xoh v@:?o?Oo ?Oo@H n@ Ht??39/3329/+]q33223/+]qr310!!5!34>7!S:8 o7:5 )/.?:(! M !!@H! o@4&5H* n_ o  s$$$$$ ts?  @  ?3/]]q?9/]q3//]+99//3+310+#".'%32654.#"!!!>32:CÀvyE 4L6i}9S5FZ1O*Uhr<jI9eN!>0~8Z@"5&%5DzK)0i@ Mnn@1&)H2)o$tP`.s P .s??3/]9/]]q3/q2+9/10+#"32.#">324.#"326)o4o$H*o_o @!&/HSHo_ o  @&/H $Cu99M/uMu??9/99/+]+99//q9910#".54>75.54>324.#"32>4.#"32>4<|}<0Ph7;^B#=vs{t8#B_<>kN,*G64F*(H9>oZMwV3  Q-5X?"#@YG'$8b@> M%o n:/o_@&)H4to *s  s  ?3/q?9/]q3/+]q9/210+#".'%32>7#".54>32%4.#"32>'[lK[E9Z@#BS^0\j9C~tz~A6N3/J42L1'K;$&P~W%KH6ns'<(Azmpy?S?O_ @Pp?_@"H //+]^]]]qqqqrr+r^]]]]qqqqrrr^]]]+qqqrrrr^]]]]qqqqrrrr^]]]qq/^]210!#>5#! (1$ RCn]N##NRR(V}Yh@8RR?_ /]]]3/]39=/33/3++++10 VABU#X)H@3 @?O@H0p @`p/]q/+]q/]32105!5!UJV}Yh@8RR_ ?/]2/]]]39=/33/2++++1075 5V@}DEy^m#'B@ ' $$) 0 %$?3/?9/9/]9/3210!>54&#"%>32!m#:JNK<&?ZfW9sj3VA* K}xEI!BdO?86=I0UyZGJW3237332>54.#"32>7#".54>$324.#"32>7>VLc*G2F[m;_L Dvf 'u/;oX5R욅൉]/"EinV=>jVo?}ÆEywR}qR,Mg<:dI*ka-+XZx_PW 8L.l/PT)c( L"@7 L\\+0+%[0 _ 0 `_ ?3/]q?3//]]]3/10++%2>7#"$&546$32.#"SyY;dόUUϗc:YxLkc//d/L`1aLpEm  e:iVG-S@'EonJq X L@1M M8 MM [0@Z0@__??/^]]q10+++++#!!24.+32>qjnCxeYo?˰\R{q6G>{ R@5 0 @  Z 0__o _ _??9/]q/]2]99//q103!!!!!TV ?@& 0 Z 0_/@1H_??9/+]/]2]9/10!!!!/LT-p, M, M& M&@/ M\)\ / /0/)[0_$__??3/9//]]]99//10++++%2>75!5!#"$&546$32.#"&@veQf0qSXϛiy,`m+;Q3vn=kyA @R^  DI M M @ M L L     @ H 0 Z 0 @ M ?2?3993+3/]2]3/+833/839910+++++]]++!!!! X'{X"@PZ 0_??/]]103!!'c!0[. L @ L L@ L&&.\022222;2K2k2/2222222[2{22O2;2/2 2222222K2{2?2 2+22222222k2_2K242222222{22o2T2;2/22222222 2+2K2{22;2K2k22222222222t2[2O242 2g2@22222{2o2D2+22 22222;2K2k222;2[2{22222/2272222t2K2$2 222222k2_2@22?22222?2O222 2 \ 0&&.?22?399//3/]22^]]]]]qq_qqqqqqqrrrrrrr^]]]qqqqrrrrrrrrrrr^]]]]]]]]]]]qrrrrrrr^]]]]]]]]]]qqqqqqqqqqqrrrrrrr^]]]]]]]]]qqqqq_qq2293310++++!46767#.'&'!!67>7!     V3l-52OG@<44<@GO:80j'Z*1540,*&=p@$ H \@P`p 0 @ H \ 0 @ L L   ?2?399//++/]22+]qrq22+10!!!&'.5!Qo=,,&X(*.'b23T'w&ȳ M& M M @> M M M[)0)@)`)p))) ))[ 0    _#_??/]]q]qq10++++++#"$&546$324.#"32>bY]  ^5hegh45hele0ǥhm  efoEEonJKN @/ M[0`pZ 0_/@!H_ ??9/+]/]2qq10+#!!!24&#!!2>=~…yƂ?׃9B_?[MAvhmq7">WTm$8@ 6 M62@J M2,([%[:0:@:`:p:: ::/[0*_  _4_?3/3/?/]]]qq99//10]]]]]+]+3267#".'.546$324.#"32>G|6DP.<6vF_iIK]  ^5hegh45hele0Ǎy:I) 9gXv efoEEonJKp@K( L[ ? O  p 0Z 0__o@!H_?2?9/+]9/]2]qq2/]839910+!!!!2 4&#!!2>QńA/SrC}}B_=;maOfEgd`9N;=m;@B M! M*Z)2Z)) Z? Z  O _ o  2-_$**$_ 0 0 @  ?3/]q?3/99/]99//10++#".'%32654.'.54>32.#"F垌֙_ .QyV@jK5!ӄܟY',RtGHyW0'^?АqYS')V[PԋCH M@ L M M M@1 M`/ /_p0`@!?o ??39//]q83/]qr83933]]]]10++++++)!67>7!B4" !1w-^'.*)-&_/0!@ L  L/ L L@ L( L L@ L)! )/000 002@y I$k292Y2+2222I2i222;2 2)2 2W2y2f2I2;2&2 2222222{2292Y2i2222222}2[2?2O2$2 2k22222_22+2K222W222t2[2O22;22222k222_2422222222$2D2d2j22@222k2P2D2+222222242T2t222222{2o2P2D2+2292222t2K2[202$2 22222O2o2222222p22O2_2)/ ?2?3399//3^]]]]]]qqqqq_qrrrrrrr^]]]]]]]]]]]qqqqrrrrrrrrrr^]]]]]]qqqqqqrrrrrrrr^]^]]]]qqqq_qqqqqrrrrrr^]]]]]]]^]^]]]]]qqqq/^]]]q833/^]83933333310++++++++).'&'!!67>7!67>7!   +  J  +/%f07;;831,@|194JF@>9;??FG8<3z9D @   @+    / _  ? o   0  @ ?2?39/333/]82/]]qr8399//q83839310]]]! ! ! ! A8996T1d#5@ @ K[ +K[k Z + ; [   ; K k {  + ; k   K {  {     ; K  [  $ 4   4 D t l  p  0 `    @ p     0 :  @D  P    ` p O 0    p _  0 @ ??39/33/]]]]]qqqqqqrrrrr^]]]qqqr_rrr^]qqqrrr^]qqqr^]qq/^]]q82+M82910!! !? 5RV5BB?T= p M@ M( M M@H  @ H@ H__?2?2/+]3+_q99//+310++++)5!5!!R#3sW+@ 0??/]q3/]10!!!sWu&,@ M M/?/83/]8310++33#) W7)@ 0@??/]2/]105!!5!W-E@ M M@ @H?33/2/+83829=/3310++ #!BT/r//105!NNB?0@!p/?_/]q/]10 5!+<N5D1 L@% M M L62 F"))))"FFOFG@)H?54.#"%>32327#"&'#32>5N{V.CtX(;( @qoen:# ((-je 8ʐ-Q=$G;6X="+SzN`Q%7;O2#;-GuV/2c_v&<) heep  #B9MK.Kb3$4M@%G6p6 -F$(H@ H(O 2O ?3???3/++]22qq10#".'#!>5!3>324&#"3261fk0`VH3uha.lq+TB((@T+kt!{ϗT.J663(#Sb =p`Sy"UmjT"P7N 7@FFO"GO  @O?3/]?3//]3/10".54>32.#"3267R@F{ivI `XqhPl  GyP|ӑL8aLSced Ki?T\$5D@*%F!!@$(H!7p7/G0*O1O ??3?3?/]qq+]2210!.5##".54>3234&4&5!4.#"32>L1zfa/1fl5bTD(AS+6S9*TB))46i[Ty{ΕT.H3 '26 O{"#kS!*Zc$VP-N'OF%F@''+H)/)O)_)o))$GR$$R Q?2/]?9//2]+3/10".54>32!3267"!.JuFSft6J6V=J^ Als+K7"nEՏԃ:Y߇DuU1?B.hW9?dF#W @ L_F0@HQ O??32?/+q3/322/]3/]q10+!#5354>32.#"3螞Hz[0]%-'3 ||q>iN,  1 UTNZO3ET@3$4F//@$(H/GpGF>G0*9O$!AO Q?2/?3?3?/]q3/q+]2210".'%32>5<765##".54>3234>7!4.#"32>TksE cP2S;!1zgb/2gll0 Dq(@S*6S:po*SB(N+Mk@!AJCnQ:i^Qy}˒O\g73($Tvt:fR"*X^!Sda@&M F  !!!p!!!!!!F$(H@ H P?3?3?/++]2]qr]10+>32!4.#"!!9wbU&.J53S5!8S  '0  EmZ&>.vFAlP,u @$W g      &6F  @ H / F$(H@ H{ H ?2??9/933+]/++]2]3/+833]39910]]]]]!!!! By.TjZlE@0Fp@P`??]]qqqqr]qq103!4O9( L@U L 9F -F,,,;T;;;;;;;;;T;;;/;;;;;;;`;;/; F 0  @$(H 3P!&- ?22??32/+]2]]]]qq_qqqqrr]9/210++!4.#"!4.'!3>323>32!4.#" '?-+F3 4l|CQ_8Y{M#'?-*E3_?iK*-SsEH#JC5 5@@|pysCZ7@pXQ_?iK*+OnCdO#a@&MF###%%%p%%%%%% F  $(H @ H P ?2??3/++]2]qr]10+!4.#"!4.'!3>32L.J53S324&#"32>EΉʉFCΊ΃=~x|#@Z6>aB"|ΕSR}y͖TTzaZ++ZWQ$6]"@M M%G8p8-F$(H@ H(O 2O ?3???3/++]22qq10++#".'#!4&'!3>324&#"32>1fk0_VI3uga/po*SA)(AR*6T9"{ЖU-I6(5;aS$(48k\Tz#UmjT#+[TWZO!2D@*" F@$(H4p4,G0.O'O?3???3/]qq+]22104>324>7!!46767##".%4.#"32>T2gll01zfa/(@S*6S:*SB({ϕT\g73($S6i_TlS!*Zb$VO^ L@ H/_ F$(H@ HP ???3/++]2]]q3/+10+34.'!3>32.#" *9P;1 7&iu<#NG9 ;FE;]A#  HO;:@ M! L@ M2F*F)@F H)) FO=P=0==@=/= F 2/Q$*p**/***$Q  ?3/]?3/]]]99/]]qr]q99//+10+++#".'732>54.'.54>32.#"A|sg}T *>S50S="1UsADh@ R .O v . O... .......@01!!! !!-ϸ;;r:d:  L L@3 L L          @ H @O  O  ?2?39/3]]q/]83333/+]83339310++++! ! !! 3/1x/ bWh:#$? ͱ?3/ 901%!#"'52676?!H&TQW_eL5U@3)T)IRY *f0/D: P@2GG @   O_PP?2?2/]]qr/99//]1035!5!!D )J\!W-W@6( L( L! ,,(_  0P" ++??9/9/]]33/]22/3910++".54.'5>546;#";-EmM( 75.54&+532++9]O!8K+*K9!O]9Ŋ!323267TKKBm.'C=:3T)RPN&-k0D4 =?F*  &.  2*:s@  ; K [ {  + ; k  [  [ k  + K [   @H @H @H @H ;  @H @vyH d  + ; K i   @adHt ;      [ k { $ 4     0 $   8 { T d     @ P ?@     @ P p ??9/^]]qqqqq_qrrrr^]]]]]]]qqqqqrrrr+rr^]]]++qq++++qr^]qr^]q9/^]3210!3 ,+3D$:?%/ְͰܱ22ͱ22 ܰ"2 Ͱ!2 &0167#5&'&5476753&'C)@B*xiqxqwuۢngn`<\[9, em鎌d])^0@ M( L%#'n n)  0n@7&5H)2@&=#5354>32.#"!!!267^ 327'#"&''7.732>54.#"0p<+L9!!9L++L9!!9Lj@ M M  @e;/O  pPP` \ ;   0 @     @O     ??399//]q332329/]qr^]332292/^]qr83^]3/]qr^]83^]993310++]!!!!!5!5!7!5!! !RP!!쓢T9=@ H@ P  @ H?/99//+]/+2210!!  5 K]ʹV MW L@ LF L$@ LJ( LDQILH5H"HHIY"TH?I@H"I??I",_-H,@H,QDYD2@'---- '0'@'' ?2/]/]3/]9933/+9////+999910++++++2.#"#".'732654.'.54>7.5464.'>?WxQ'9I)pi.Ng9UpB3I/)C/:x|gU .DX5z~*T~T?mG8O0&E3 GoN]d0Qi8)H4BhI"1;A'5& 0JlP,QE60=O2NZ1DnP%-<$AP-:)!-HkN1P?01AP0'6) IE'5% "4c@J  P  0 ` A_o/?_@+324.#"32>%32>7#".54>32.#"4^dc^44^dqp`TnP+`~ަ`8T9)@0! 9TtOhd00bdNtS9 />):T5d^44^dd^4r~ݥ`,OoTަ``ށ>hK**3/+UD)?q\`k:%?S.).%'He-2A@ L L( L 8(  @4H  C?o@H9 3?@H/#3,?223?3/+qr9//+]]+]229/10+++"&54>?54.#"'>3232>7#"&'#'2>=as.Ng9&%+KjEAiL)! ?GQ"o#7&\6).ia4>4>H&04<2CB5_5o55@Hp44@H4C55C4++??9///+]+q93/]99//2/8329910++#".54>324.#"32>##!24&+3264^dc^44^dqp`TnP+`~ަ`EuJ`NKEBCd^44^dd^4r~ݥ`,OoTަ``9/q^v;9324.#"32>3WuBBuW22WuBBuW3,;##<--<##;,VBsU11UsBCsU00UsC#=--=#"=..=14 u@E  @ /_o  @ @!H_@/]]]+]+3M2/9/3_^]+M2210#!5!3!5!oUT=3!K@* L   # _ o   ??3/]9/3/]2/10+'>54&#"'>32!5KTTC*'*U +HfBGiE",DSM?jy5Q@638"*1b.P<" 8M-5P@534,~5m@B"#0-#--#7 0 (""""@H""(  P ` p  ?3/]q?3/+]q9/9/9///910#".'732654.+532>54&#"'>32~TqG!7615)183-$.+*32Mc9DfC"IO-A)cp$;J' -0/1%~#',,- 3M33E'@[.9WU*@/?_/]q/105!W +V!:'G@F""") F@ H P  ??33??3/+]q22q210!.5##"&'#!!32>5! +1:!4Q(C42D*N+1@%0* 7@hK)-QsFB"IC6G/O@+ MO _  0`/3?29/]/]]3/]9/]10+###".54>3!ÛQ`52_Xu-XXT]2D@  0//]10! 1`W̹س M@% M@ M K4  $@/_dH 0P`0`p;pSXHDJH@!58H/ ??9/^]]]qq+++qr^]q_q+r/^]]/]9/33310+++#"'532654&#*73GtU-8*K>8B >!^['F3v% #"RRRj T@ H H    0@ H?2?3+]29/33/32/]10++535733Rylzuy-'Q L @) L L L)  @H #??/+]]10++++#".54>324.#"32>+U~TP{T+)S~TXQ&!1!!3##0!4#1M\33[NK\44\K;N//N:7!32>7#".!r#:JNK<& ?ZfW9sj3VA* K}xE8BdO?86=I0Ux[GJV=Xf8P0 YtD8i_3&$V&ʴ%+5+53&$@ &Z%+5+53+&$@ &%+5+53&$@ & 0%+5+53&$@ &%+55+553&$P@ 8%+55?55@[ ZR^+ ; K   ?_o_ _ _ o    _ _?2?299//]q/]_q9///]q9++3210!!!!!!!!#!>C=\h 8C>oTW&&x !1*%+5&(5 &ô  %+5+5&(@  &<  %+5+5+&(s@  & %+5+5&(s@  & %+55+55&,&%+5+5hf&,@ &J%+5+5+&,& %+5+5b&,@ &%+55+55q!u@N L L[##Z _/   @36H @+1H @$)H @"H @H _ _??9/+++++]32/3/32q9/10++#!#53!24.+!!32>qjƁnCxedYo?˰\RTR{p5=z=&1@ &/%+5+5T&2@ (&), %+5+5T&2@ (&T(+ %+5+5T+&2)&.( %+5+5T&2(&3C %+5+5T&2(&,* %+55+55VV }@!H#3C !H, < L @;!H#3C!H,<L 0 P   @`p  H?+]q3/]310]+]+]+]+ 7   Vd```Ff``bT&20@ M* M$ M$ M@ M M M@ M L @ M M M M@ M L M @; M+*'[ 4'[0*+."_  ._ ?3/?3/99/]]329910+++++++++++++++++7&546$3273#"'4&'32>%.#"ml] gJRprbԔ[a+++k?le0)+-f>gh4Ic! e'#u^㴥hMd>KlcAE{J&8I&%+5+5{J&8@ &l%+5+5{J+&8& %+5+5{J&8@ &%+55+55#5&<@  &_ %+5+5B@'[ Z 0__ _o_ o    ??99//]]/]2210#!!!!24&#!!2>=~…'RƂ?׃9B_?[|J?sgn|%$AX?>@ L L@, L9FF2@ H2@ H22'FAAPA&F''$(H'@ H'9"P-'O??9/++]]]9///++10+++#"&'532654.54>54&#"!4>32,_fG><>=QJ2KXK2!292!]Xgl<{~rm5!2;2!2JXJ28IzX1  E9.D;9I_B.E:25>(AN o{B6[zD6UD6-)17AUq4x&DCE&FI)%+5+54x&Dt @ E& EH)%+5+54x&DKF&KE)%+5+54x&DRE&ҴP`)%+5+54x&DiE&״IG)%+55+554x&DP )J&ٴOE)%+55+55BN=LU@  L  L&@& L&R0GDD /8F99SF////W_W WG@7HJGO _ o  D0QRR>MQ$)$/$5>O8 888?33/]2?3/]329/32/]3/+]]q3/9/329910+++"&'#".54>?54.#"%>32>32!3267%2>="!.?MeOO~X/Ex[+?(%;* ArrtE`t6J7U;J^ Al9\B#0U@&K3+K7"nqt2T="+SzN`Q%7;O2#;-GuV/k92Y߇AqS/?B.hW91Oe3- #B9MK?dFPW7N&Fx#  (!%+5P-&HC(&ߴ),%+5+5P-&HtK@ (&b(+%+5+5P-&HK@ )&.(%+5+5P-&Hi@ (& ,*%+55+55&C~&%+5+5rp&t@ &S%+5+5&K@ & %+5+5c&i@ &%+55+55P'5@ L@ Lش L% L@ L.(G%!'!@, H!'!'7.G%'&&!+OP`!3O ??99//]933/39/99//+3/]9910+++++#".54>32.'57.'!%4&#"326XEtT.DΉʊGCΊ.Z"F.ܦ9D%(Q' d~x|#@Z6}Foz̓RInkJHn5zF.X*.qPsK#d&QR @ $& /?"%+5+5P&RC$&մ%( %+5+5P&Rtz@ $&^$' %+5+5P&RK%&*$ %+5+5P&RR$&/? %+5+5P&Ri@ $&(& %+55+5514 M@(   @?]+M9/_^]+M10535!53xqm#/@ L 0 L L@ L L M@( M'($G 1G ('+!O+O ?3?39/329910+++++++#"&'#7.54>3273&#"4&'32>EΉc@q;;CΊh?e;6aB"|ΕS.+|Ity͖T+(rJs\GE/Q"4%#+Z\&XC\&Xtx\&XK\&XiWh&\tFW"2O@#G4+!F""$(H"@ H"0O&O @5;H !???+3?3/++]22q10!3>32#".'#!4&#"3263uga/1fk0_VIop*SA)(AR*lu2<k\PtuƐQ-I6(5;a OecN Wh&\i3&$MN@ &%+5+5<[&DMG&EF)%+5+53&$@ &&%+5+5<&DNE&JV)%+5+53b&$Q  %+53234&4&=!54.#"32>;1zfa/1fl5bTD"(AS+6S9*TB)AUO{")46i[QvwǏP.H3 '26~hN'T_!R&(M^N& %+5+5P-[&HM@ *& ()%+5+5&(a & %+5+5P-&HN(&-9%+5+5&(Om &  %+5+5P-&HO (*%+5W&(Qj %+]5Ph-N&HQ3333%+532!4.#"!#535!!!9wbU&.J53S5!Ӡ8S  '0  Em>^&>.vFAlP,9&.'Ҵ  %+5+59u&Nyٴ  %+5u: @ M( M M @ M M  @ H  F$(H@ H ?2?39933/++]23/8+3339910+++++!!!! By.Tj:@Zl&/&m %+5+5jhf&OO@ &M%+5+59&/%+59&O: %+5&/r@ %+5?5&OK@ y%+5?5&/O %+5q&OO H H++ E@&/?  Z   _??99//923/33/29/]10357!%!'3ABѓߓt) z@PF  p  `    :  5   ??99//92]3]]]qqqq]qq22/]22/]r10!57!7}}31EEJ=&1@ &Z%+5+5d&Qt@ $&d$'"%+5+59=&1%+59dO&Q .$"%+5=+&1&%+5+5d&QL$&&,"%+5+5,'Q _B@+$$% po?]]]]]]qqqqqq5+5K9P8@. LZ5;)Z 0)_/$ _?2/]???2/]29/]10+".'732>54.#"!4.'!3>32Js\H %,46C$ CgGLc9  a{Quj2*g-C+*!-VR'^U';cHD%\ZL?EE>dF'@̋ВNWdO3g@+2 L F...555p555555%F$(H@ H%P) P????3/++]2]qr]910+"&'532>54.#"!4.'!3>32E8S  '1 .J53S.?iK*-SsEH#JC5 5@@|p@pXAlP,T&2MN@ *&() %+5+5P[&RM @ &&$% %+5+5T&2(&-9 %+5+5P&RNP@ $&)5 %+5+5T&21@ (&o)2 %+55+55P&RS@ $&d%. %+55+55T+& M @K M[+;K++---@ H#[0__o( _ (_?22?329/]q/]]+_q9///]210++!#"$&546$32!!!!!.#"3267&k6Y] 8c0e^^,gh45id.V&j b B|onFPKN*:C_@@G++ %F&&AF@"'.HEE1G Q@@6;.O"6O%%%?33/]2?329//]+3/9/29910"&'#".54>32>32!32674&#"32>"!.hvBEāʉFCΊBGjt6J7U;J^ Al~x|#@Z6>aB"+K7"nOPLSR}y͖TPIQHY߇AqS/?B.hW92aZ++Z?dF&5@ & %+5+5 &Ut@ &I!%+5+59&5Դ'%+59O&U9X(%+5+&5f&%%+5+58&UL8& &%+5+5;&6@ >&>A %+5+5H&Vt9@ <&[ %+5+5H&VK@ =&B< %+5+5;W&6x /E> %+5HWO&Vx C< %+5;+&6Z@ >&@F %+5+5H&VL@ <& >D %+5+5W'xC7W8'xW+&7!@ & %+5+5&WoK@  ""["" %+]]5O@    ok  + { ;  [ k ; {  + ; [ k { Z  K[@*4H t@Hk{T;$kT;$Tdt[D+[4 @P$4pTd;$h4DTt;[$ D 7{@Co+;K K[ 0p _ _  ??9/322^]]_]qrrrrr^]]]]]]qqqqqqqqrrrrr^]]]]]]]]qqqrrrrr^]]]]]]]]]qqqrrrrrrrr^]]]]+]qq/^]+]qrr32]qr^]r^]+M99103#!#53!5!9rm8q@H( L_F  O_o@&,H O  OO?/]q32?3/32/]+q3/22/]3/3/10+"&=#535#53733#3#3267|X͹32.#"!Hz[0]%-'3 >iN,  1 qW K @( L  n  u P`p u ??9/]32/39/332910+.#"3#!#737>32  A9 $% 1V\31,B=k>iN, 3D&$'P-3@!PB@B0B BB8g=@%%+55+5?55]]]]5<&D'Ptc7@Pr@r0r rrJ&[mp)%۴OE)%+55+5+55]]]]5&&`%+5+5B&t@ V&VY .%+5+5T&@ 3&T36%+5+5&tz@ 0&b03 %+5+5;9'6H9O'kV9'798'W y@=& 6 F )9I &6F)9I 0@p@%H/?_/]q32/+]q]/]933]]10#'##53Ӡ> y@3)9I&6F)9I 0@p@%73'P~Y4$2?"$?2"3W~3YuB'>**>'BuY3@ FS?9/105!'p#l'L L@* L  L L_  @H #//+]10++++#".54>324.#"32>#(E]44]E((E]44]E("/.""./"n5]E''E]54]E((E]4-""-/""/LW@m M M  K[  K[4t 7@,1HO?@"%H@H ??++^]qr_r+r^]]]qqqrrr/^]/]9/810++".54>73326793W?$ 07?B1-5?W3J20Q>+ *s5*3 !@ L LDdt@mH   $!4!!!!!!!!!!!d!t!P!4!D! !!!!!!!!!!t!!`!D!T!0!!$!!A!@6@H /?_/]q23+_^]]]]]]]]]]]qqqqqqqqqqqrrr//^]+]10++".#"#>3232>73,YTK" /VI-ZTI! .V&/& --fX:&/& .-fX: =@(  /?_/]q22//]10#53#532X" +" +4@#/?_/]q/]3/]105!E!$%nJU h @ H    @#H@H/?_/]q++22/]3/]3/3/+1053%53!53i;L!%v)$&$Tk`5%HHHHHHHHHH@ H@HHHHHHHHHHH@ H@HHH@ H@HHHHHHHHHHH@ H@HHHHHHHHHHHHH@HHHHH@H@HHHHH@HHH@HH@H@HH@HHH~~H}}H||H{{H@zzHyyHxxHwwHvvHuuH@ttHssHrrHqqHppH@ooHnnHmmH@llHkkHjjH@iiHhhH@ggH@ffHeeH@ddHccHbbH@aaH``H__H@^^H]]H@\\H@[[HZZHYYH@XXHWWH@VVHUUHTTH@SSHRRHQQH@PPHOOH@NNH@MMHLLHKKHJJHIIH@HHHGGHFFHEEHDDH@CCH@BBHAAH@@H??H>>H@==H<KbY]  ^5hegh45hele0;phm  efoEEonJK,.H@1R  ^ R^ 0%)H@#H`/ @@%)H@#H?2?9/++q83]]]]3/++]q82933++++10%!.'&'!!H  +u0^&-)*.'^-!0=1T L@   @ H @H0 _ __??9//]]++9////10!!!5!5w9\GWT2='@Z Z 0`?2?/]q10!!!! s3Z M@+\ [ Z0_  _?2?9/332/]]99//]1035 5!!!ZQGsv B7#5<?S (3@(\/ [!55555w5f5'5G5W555555555v5g585H5%555555555w5X5E5&56555555555w5f5W5F5'5755555555v55g5H5955&55555555h5U5F5755555555b5r5S5D5@555&5555555555u5V5f5G565'555g55555555t5f5R5D505"5555555555r5d5V5@525$55555555555d5V545"5557555555p5d5P5D555T5t55555;5 555@5555[5k5{54555)[O_o0_/_' ?22?2/]^]_]]]]]]qqqqrrrrrrrr_rrr^]]]]]]]]]]]]qqqqqqqqqqqqqqqrrrrrrrrrr_rrrrrr^]]]]]]]]]]]]]]qqqqqqqqqqqrrrrrrrrrr^]]]]]]]]]]]qqqqqqqqqqqqqrrrrrrrrrr^]]]]]]]]]]]]qqqqqq9/3322104&+32>5#".54>;5!32+;#"*TwM$6ܒGJ**JGە6$MwTژq2YzcXnwÊKKwnƖXHzY2D;`#2@%%%%%%%h%x%Y%J%)%9%%%%%%x%%%i%Z%K%9%% %%%%%%%%y%j%(%8%% %%%%%%%8%H%h%%)%%%%%x%%i%Z%K%% %%%%%%%y%j%(%% %%%%%%%s%`%B%R%4%%&%%%%%%@%%t%f%%%g%%%%%%%%F%V%v%2%$%%%%%%%%t%f%B%4%%&%%%%%%y%V%f%$%%%7%%%%%%%t%P%D%+%%%%%%%T%d%%;%$%%%%%{%%%4%T%d%Z Zd K:@mDt $4Td `O 0 % Z Dp  0    _ ??339/32/]]q^]^]]]]]_]]qqqqqqrrrrrrrr^]]]]q9/32^]]]]]qqqqqqqqrrrrrrrrrrr_r^]]]]]]]qqqqqqqqqqrrrrrrrrr^]]]]]]]]]]qqqq_qqqqqqqrrrrrrrrrr^]]]]]]]]]qqqqqqqrrrrrrrrr^]]]]]]]]]]qqqqqqqqqq10!#".5!;!32>5!#(чA#JsQ  QsJ#AѐUC-PpF  FpP1ƒCS5q@B M M,$ @$`$Oo$$1[7 Z111&&&&##&_%_??322/3//]q2/qq2/99//]]3310++267>3!!>54.#"!5!2.54>$5b0hq >a7ibcj7e> pf0bRߍf35Vel99leV3fߛRb&,@ &%+55+55#5&<R & %+55+55P&~TN@ :&:=%+5+5M&T@ 8&N8;%?H?@H?H?@H?@H?@H?@H?@H?@H?@H?@H?@H?@H?H?@H?@H?@H?@H?@H?@H?@H?@H?@H?@H?@H?@H?H?@H?H?@H?H?@H?@H?@H?@H?H?@H?H?@H?H?@H?H?@H?H?@H?H?H?H?H?H?H?H?H?@H?H?H?H?H?H?H?H?H?H?H?H?@ H?H?@ H?H?@ H?H?H?H?H?H?H?@ H?H?@ H?H?@ H?H?@ H?H?@"H?H?H?H?H?H?H?@ H?H?@ H?H?@H?H?H?H?H?H?H?H?~~H?}}H?||H?{{H?zzH?yyH?xxH?wwH?vvH?uuH?ttH?ssH?rrH?qqH?ppH?ooH?nnH?mmH?llH?kkH?jjH?iiH?hhH?ggH?ffH?eeH?ddH?ccH?bbH?aaH?``H?__H?^^H?]]H?\\H?[[H?ZZH?YYH?XXH?WWH?VVH?UUH?TTH?@SSH?RRH?@QQH?PPH?OOH?NNH?MMH?LLH?KKH?JJH?IIH?HHH?GGH?@FFH?EEH?@DDH?CCH?@BBH?AAH?@@@H???H?@>>H?@==H?@<7!!.'32>7.#"\AUoHIu[B ( 60#$*  ,E0'L?/ #7M30H.8^E&'E]675/:M9 B?7.aY*-\]Jd;(XW >l L@ L1 4F@ H +F@! F$(H@ H0O11&9P &O???9/9/++]29/+910++#"&'#!463232>54.#5>54.#"4owe7 lq9#=Q.9s\: 9AF":X;$P~Yq,C/6P5XtB7'9\5/ZRIoR8 7] #A[88^D'rc$?/EoOXk:  M@ M    @ HkT +K4{d ++Kk[kO ;K[k4 l+;KdtKK[4 :tK[ @pOo @O@ M ?2?/33+/]82^]]]]]]]qqq_qrrrr^]]]]]qqqqr^]]]]]]qqqr^]]]]]qqqr^]qq3/8+39/^]9_^]33310++!>7!!>7*'u% 5: >MOIG?{7nu~FXV2 L.@ L///2/2)G4 G0)).@H.@HO L/@ L/O0O$??2+9/+]+3+/]99//]3+9910+4.'32>".'#".54>75!b 7H(CkL):Y=Fa< '+' C:\?!GɁƇGI`UEufX(LiSBpQ./Rsj5rTlLEun_!:MN7h@? L  L*F00##095GO0//'R+$$$Q  ?3/]?3/]9/9/]3/]9///910++%267#".54>75.54>32.#"3"K:!Mg\kh3*Mj?=_A"8lfFr^N"*eETX3XxEB{^8UM<"B4!/TtF9]B(*BW3?jM,(A-{98A90; A:HJBo6@ M% M L M@ M&0@54.'.54>75#!5!D(Ga86s^<  #A\:@lD.Pk{@ "$" >{lQ/8E+&CkT*WQDJ%(*%3$'Jz`PA=kXdN#b @' LF###%%%p%%%%%% F  $(H @ H P ????3/++]2]qr]10+4.#"!4&'!3>32M,G45W=!  @TlH]U)XKe=)PsKSDy*01//L5,\eZ%C@!F@"&H' F0@"&HO/  Q Q??9/q/+]2+210#".5322>7!"!.lv>yp6-'D4  3A)'D3 z1B\vx] /op/r-ll-: w@Z 0 L0 L @ H F?O>p`??]]qqqq]]qqr^]3/+10++3.5! 5@F!N @<3u: @ M( M M @ M M  @ H  F$(H@ H ?2?39933/++]23/8+3339910+++++!!!! J#j:2 T##@ M M@ M M!@ M#    @  @ H%k%T% %+%K%%%%4%%%%%%%%%%%{%%d% %+%%+%K%k%%%%[%k%%%%%%%O% %;%%%%K%[%k%4% %l+%;%K%%%%%%%%%%d%t%%K%%%%K%[%4% %:%%%%t%K%[%%%%% %@%p%%%%%%%O%o% %%%@ P?2/9/3^]]]]]]]qqq_qrrrr^]]]]]qqqqr^]]]]]]qqqr^]]]]]qqqr^]qq3/+82/^]839/9_^]3310+++++).'!'.#"'>32Tڈ   ! ,+0 60c9QtYG" -9>:0W_[SIE`=  +\b`]:'@#F"""@@DH"@25H"@$(H") F@DH25H$(H@$ H))p)))))) P  ??33??3]qr/++++]22+++]210!.5##"&'#!!32>5!Q&zV4W+F42P: ,56ci0* 7@hK)-QsFB"IC6:V г M M@ M  L M M @Ff I@qH Vv6FV"pRbD0"rTd@@HbrTB4&dt@P4g`DT `pDT 0dt@$47p_@oP/?P@ ? ?3?3^]]]qqqqqqrrr_^]]]]]]]qqqqqqqqrrrrrrrrr^]]]]]]]]_]]]qqqqqqqqqqqqqqr+rrrrrr^]]]]]]]]]]]]]qqqrr^]+]]qqq//8393310++++++!!>54&'!?lNz)8O2Nc^:PNQw--qBoH@ M< L, L L@ M>F*/9$*C9@ 7CC7??9/99992/+]]2/9////+]+9310+++++'>54.'.54>75.54>75+5!D(Ga86s^<  #A\:@lD4o|CwW32Oa/ DPLLEe=5Ys=dq=5D-&CkT*WQDJ%(*%3$'Jz`L_"="5>3!804,s@  $a$,13 |H7 s|ںJL} yWO-=@G/&G@$*H@ H O)O???/++]q210#".'#!4>324.#"32>@wk7[M>EyrɖX%D_9;S54M5Q6vŎO%27 WwJOڂZc4.W}O9E2[OoO9W  L @ M6 M@ M--# F ;F#3O*..*??3/99/2/9/10++++'>54.'.54>32.#"T,Mj>(SOF4!%  *Lg>-]XL:!2Ryis;*2:"7UA- :J3%  +@X='RL@J$(*%2$ +=YzQ;oCKB$0MdhdPQ:/R@"(G@3!#".'4.'#"32>Dˈ͊E_ '/1<0%JDvX3}yA_@i~GJʁҊB(^l|$?reV$-[^,Svp:!r@U( L/? F 0  o#`#p#####OO ?2?]]]qr2/]9/2/]10+"5>3!!3267#"&5'OE5 +36+0277|  (4  T:K@% MFp F@ H P??3/+]]qr210+#"&5!32>54.'!T;}ˆ_l;R4$,*#;ۚR.eo?p%(qPWjR%/8@-FF &F11111v11T1F1$14111111111y1f1T1F1 111111d1t1161V11111111v11I11"1111111v11B1411&11111b141D1T1&111@7H1&1F1V1v1 1111t11f1)19111g1111@]`HI1&16111111Y1i1y1D161 111111111$141D1d1 1711111t1K1[1/1?1111111`1p11?1O1 111O1o11111011)R!-Q??32?32^]]]]qqqqqqr_rrrrrr^]]]]]]_]]qqqqqqqqrr+rrr^]]]]]]qqq+qrrrrrr^]]]]]]]]]qqqqqqqqrrrrrrr^]]]]]]]]qqqqqqq/9/32910#.54>746324&#">jQuyÉJ7! !.'!'.#"'>5!!.5!!B[97{Œ};;[=ErU`zu;k;uzpUqEQqO=@ =..(=F<<3F((F &?????t?f?4?&???????f??D?6????????y?f?T?B?4?&? ???????t?f?)?I????????t?f?9?I?"??????v????T?F?$?4???????y??&?F?V?f? ??@?????r?d?V?)?9??h????V?f???9??&????????i?[?I?&?6? ??????y?k?V?4?&? ?8??????{?d?K????+??????P?`?????O?_?????<<8O#. Q-?32?3329/^]]qqqqq_qrrrrrrrrr_rr^]]]]]]]]]qqqqqqqqqqrrrrrrr^]]]]]]]]qqqqqqqrrrrrrrr^]]]]]]]]]]]]qqqqqqqqrrrrrrrrrrrr^]]]]]]]]]qqqqqqqq^]/]9/99/9/1032>54.'7#".'##".54>7326=!^U6I,=`DyG:ohJrT::TrJho:GxD`>,H6Vaڎ0ZNHjI ]ȉH &V>A(%+5+5&(y<@ & %HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH}}HzzHwwHttHqqHnnHkkHhhHeeHbbH__H\\HYYHVVHSSHPPHMMHJJHGGH H H H++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++55+553t@H L M-!Z 5@3-.0-Z?00 .0..'_p0_1._?3/]??29/]qr3/]]2+M910++>32#".'732>=4.#"!!5!$g~Kuo5*fJv_L %,46C$ >H ==H <7#"$&546$32.#"!!QxV:b̊TS̕a9WuK[c8"8d/L`1aLpEm  e:iVG-S@'2_WYe7;6,`&,&@% @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @H @}}H @yyH @uuH @rrH @nnH @ggH @ccH @``H @\\H @UUH @QQH @JJH@ @CCH @??H @88H 77H 44H 33H 22H 11H ..H ))H @ ((H @&&H %%H $$H ##H H @H @H @H H H H H H @ H++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++55+55-x&/x'H@ H@5 H\!,Z'[1+_!_!o!!!!!,``,_???9/]qr/]99//2+]++10#!!#"&'532>7!!24&#!!26xAÂM1-5AUnH:(%$#&C{y=֋\ZtC~N" 8bړ32!4.#"!!5!%[hv@DkNXB9 HiC! _&@ &K%+5+5>&J&!)%+5+5h6 @ \Z Z   t `  $ D T      d t P D        D t   +  d ; K    [ k  4    t ` T 0 $     P D +   4 D d t   i    t + [   @uK {  $  { d P 4 D   7   p 4 T d      + ; K k  T  +  ` ?3??_^]]]]qqqqqqrrrrr^]]]]]]]qqqqrrrrrr^]]]]qqqqqqqrrrrrrrrr^]]]qqqqrrrrrrr^]]]]]]]]]]qqqqq/^]9/10!!!!!c&'i'hsh3$wU M@, M [0 Z_ _ o    __??9/]qr/2]9/10++#!!!!24&#!!26wAÂ%{y=֋xZtC7!!չx"@7-= $-6th>ksU=(E-@#&)'- -Z'  ('''&'''/@  ///////V/ /9////i//[/I/&/ /// //9/Y/i///////v/Y/F/)/////v// /)/Y////////f//T/B/4/&//////////r/`/R/D/2/$///////////t/`/R/D/2/$/@//g////////t/b/T/F/2//$/////////t//f/D/T/2/$//////////d/t/P/D/ /0///7//////p/d/P/$/D////////T/t/ /////p//O/ //)& @ L ,(?22?339/3339+32^]]]]]]q_qqqqqqrrrrrrrrr^]]]]]]]]]_]]]qqqqqqqqqqqqqqrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]qqqqqqqqqqqqqrrrrrrrrrrrrrr^]]]]qqqqqqqrrr^]]]]]]]]qqqqqqqqq/^]833/833/]833/839/32999910!".'!.'!3!2>7!!##"  %+.,0F8009F0,.+% Gd  -=G$Nj@W@jNDi$G=-  .8(@X L\ /* Z* * *Z4:\@ H/__o %_% _0 `p?2/]q?3/]9/]q9/+]99//9/910+".'%32654&+532654&#"%>32~~c :OhC;;{l?^E/^vtI(Ih?CsU1J4c]]7\D&kaeY`d[`(DZ1=\j94_TEoS9 1QqI]o>7m@) M  M \ @P`p 0 M@ M\ 0  ?2?399///]22++]]qr22++103!!!46767eL2b'.*F?(X&,,7>&J@ &# %+5+5Z M@, L  Z 0a?2?39/99/]23/]833/839910++!2>7!!#!'4>L1,2.(  ##@iNDk#H>.  O'H@ H@ H\ Z  `` ???/]9/+]++10!#"&'532>7!!i1-5AUnH:(%$#&C~N" 8bړ!0=+T27#@Z Z 0`?2?/]10!!!!s3T&7  L@C L  94d4d0 @`??39/3/]83/]_]]qr^]839_^]339/10++#".'732>?! !(Oa}VGC=R&N,#71.3*+>S~V+.K7%XG (3]@(\/ )[ IY @&+H[!@&+H!5555555i5y5[55)5I55555i55[5)595I55 55555Y5i55F5)55 55555555i5F55)55555i55[5)595I55 5555i55F5)55 55555555r5`5T5@54555555t55+5;5[55@g555545D5t55555555p5d5@5455555[5555$5755555D5t5+5555555p5@5`555555_5o555 50_/_'    ??99//]3232^]]]]qqq_qqqrrrrr^]]]]qqqqqqqqrrrr^]]]]]qqqqqq_qqqqqqrrrrrrrr^]]]]]]]qqqqqqqqqqrrrrrrrrr^]]]]]]]qqqqqqqqq+/+^]9/3322104&+32>5#".54>;5!32+;#"d,3TwM${OܒGJCCJGەO{$MwT3,ژq2YzcXnwÊKKwnƖXHzY2D;h S\  "H @$H Z @%H @H Z 0 `??2?3/]++3/++q10!!!!3'9hsstn<@$ MZ Z @H 0   _ ??39/3/]]+210+!#"&5!3267!'_n|C?kR\F'#?HiC!  s@0ZZ 6 '          u  @ H   H @ H  H @ H  H @H     v  @ H   @H      s d S E 4 %          p d R D 2 $          r d R D 6 $   h    D d       D d ;      T d @ 4    8  p @@ 0 P  0 P p   @ P p  / Z 0 `?2?33/]^]]]qqqr_rrr^]]]]]]]]qqqqqqqqqrrrrrr_r^]]]]]]]]]]]]]]qqqqqqqqq_qqqqqqrrrrrrrrrrrrrr+^]+]]]]]]++q++r++^]+]]]]]]]]qqqq9/103!!!!!ssh\  @H ZZ  @H @ HdR@HrdRD2$dtRD2$rdRF4&t@ H@Hr`TB4"vdVD6$t`4T gTt+TtK4pdPD0$7 @`@@4`P`?ZO_ 0@  `?22?33?/]r^]]]]qqr_rr^]]]]]]]]]]]]]]qqqqqqqrrrrrrr^]]]]]_]]]]qqqqqqqqqqqqqqqrrrrrrrrrrrrrrrr+^]+]]]]]]]]qqqqqqqqqqqqqqqrrrrrrrrrrrrr^]]]]]]]]]]]]]]+qq++^]9/3/+]103!!!!!3#ssst;@#[Z __o __ ??9/]qr/2102#!!5!4&#!!26{y=AÂ;8}nP7!5!.#"'>32#".'7_d8"8c[KuW9äST̔b:Vx7eYW_2'@S-GVi:emEpLa1`L/.n@ , M M( M( M"@, M%Z  [0 Z 0  _ `  *_???9/?/]2q9/310+++++#".'!!!!>324.#"32>Z_ 'e⎟W,ZZ\Y,,Z[aW(ǥh\χؖQfoEEonJK#7o M@ MZ p 0@[ 0__ ?2?9/9/]]3/]83]]q29910++3.54>3!!!3!!"#}CrS/Ań#=_B}PEfOam;/N9d<ND^8@@&**4 G 0G:`:p:4O)O??9/3qq/]q99/104.#"32>2!".54>7>7>z!>Y7;`E%%BY4;_B$ɋIAApg`1afXjL1HjaM!M_`KKoFs    0EhaCsT0:"-a L@ L*G F/$F$(H@ H "R$$#RR??9/9/++]29/910++2#!32>54.+32>54&#]M'CX1;cJ)B\9<`D@V3`r:>hQ4R:% #>Y=:u$8'*;$2#C>::@ HF$(H@ HO??/++]3/+10!!::h:@KH v9I   F`pH O  O?22?3?/]]99//]3]]]]q3]q3/10#!#3>7!3#B(+,}876|ޭ~+hV/'P-NH:)" M@ M L @ L" ((H)!)) !  @ H +++;+[+k+/+++++++[+{++O+++++?+O+++++++ +/+?+_+o++++++ +/+O+_++++++ ?+O+o++++++ ++++++_+o+++?+_+++++k?+o++++++/+_+++++++++?+O++ ++:++++++`++O++++@B++o+P+?++++++p+?+_++ +" )!?33?3393339933^]]]]]]qqqqqqqqqrrrrr^]]]]]qr^]qqqrr^]qr^]_]]]]]qqqqq3/+8333/83339/^]32999910++++"&'!.'!3>7!!##X:>,'8+&&+8'-> ,;=7}KV+ & +VK8<75N9y7 L(@= LH /*F* * * G5;O;H/R% +R% Q?2/]?3/]]9/9/]99//9/910++"&'732654.#52>54&#"'>32) &4@"PY+NmA?hK)NH=3% IrX[i9&C[48fM.8q,'=*O@2># !9-( 'B\:EwW1]:a@ L L @  @$(H $(H@ H ?2?399/++]2]+]210++!!4>7!M:PVM&<@<:]&*@ &#%+5+5:e @ L F$(H@ H @ H ?2?393993/+8333/++]29910+!>7!!#!$)5'~ 5>2:0 (RK<8A:Z@=)vg+;KFOO ???/9/]3]]]]]]]qq10!!#".'532>7!l*,3F^A-/' &+$#);|ˆP!F~ \:ڶ L @ L H  $(H @ H H @$(H`$4T  ;kt[4D4dtTd {dK4 K$+;kiDt+k4T{dK$ 9Dt@G+pO 0P`   ?33?3993^]]]]qqq_qqqqrrrrr^]]]]]]qqqqrrr^]]]]]qqqqrrrrrr^]]]]]]qqrrrrr^]]]]qqq+^]2/++]293310++!##!>7!#4>7ft( &nuGF@:AHHA1tCIGF: R@F@$(H  F  $(H @ H O ?2?39/]q/++]2+]210!!!!!}:T1:PNRF:>@F@$(H F$(H@ HO?3?/++]+]10!!!F}:|:WQSP7NF::@O(8HXh @H@HF'B'gwWgFRH69H14H+.H@ H   u c  @H        b r T B  0       P ` p 2 B $         r d P 2 B   $      r T d 6 F  "     @ Hv b  @KH        f v B $ 4       j  @>nqHd  & F V     d t F V 4 "     @CFH d t V D & 6   9 @C58H  b @ P $ 4    ` p  @ ` p  @ HO?2?+^]q_qqqrr_rrr+^]]]]]]+]qqqqqqqqrrr+r^]]]qqqqqqqqqqrr+rr+rr^]]]]]]]]]]qqqqqqqqqqqrrrrrrrrr^]]]]]]_]]]]]qq+qqqqq/+++++^]q^]++^]qr+M10!!!!:x:|Wh:\RW6GW.P@-7!AGHG %YYYYYYYrYDYTYdY"Y2YYYYYYYYYYYdYtYVYBY4Y&YYYYYYYYYYYdYtYBYRY4Y"YYYYYYYYYYYFYVYvY0Y$YYYYYYYYYYYvYdYVYDY6Y$YYY@YYYYYYYYrYDYTYdY2Y$YYYYYYYYYYfYvYBY4Y"YYYYYYYYYtYYfYDYTY6Y$YYYhYYYYYFYVYvY4YYYYYYYdYYY@YY$YYYtYYY0Y$YYY8YYYYY[YY$YDYYYYYYY Y@@3YPYpYYYYYY_YYY Y0YYCUOK3234&4&5!>324.#"32>%4&#"326-^b,WPC-p^Y+-^c1ZM?/k_Z+T#8H%/H2%H9$aa$H9##8H$^e"{ЖU-I6(5;aYi[Ty{ΕT.H3 '26k\TykS!*Zc$Vk#UmjT#d:[h: B@ H F F$(H H O?2?3?/++]3/103!!!3#:|S::@#( L F@$(HF P ?2?9/3/q+]210+32>7!!#".5k$=-!;:<#+U\d9JrN(:~!9*  +RuI:  @(+H     t F f   $   v b T F 4 &         T d F 4  &       t 6 F f $   v d 6 V )        r d R D 6 $         d t F V 2 @$        t f T F   " h      v T d F 4      v d R D 6 $       v d 6 F   8     P p  @    0 @ `     @ P p @ H O?2?33/+]^]]]qqqqqr_rrr_rrr^]]]]]]]]]qqqqqqqqqqqqrrrrrrrrrrr^]]]]]]]]]]qqqqqqqqqqqqrrrrrrrrrrrrr^]]]]]]qqqqqqqqqqrrrrrrrrrr^]]]]]]]]]]qqqqqqq^]+]9/10)!!!!!w<;:||h:@ H   @(+Hy    @H &6ffTF$ʖfD&6fvT&FFf brTF$4tVfD6$@vTdF"2gtVfD&tbP$4@Pp4 7$4TdkTTd+; H@ O ?33?22?/+]^]_]]]]]qqqrrrrrr^]]]]]]]]qqqq_qqqqqqrrrrrrrrrrrrr^]]]]]]]]]qqqqqqqqqqqqqrrrrrrrrrrrr^]]]]qqqqqqqqqrrrrrr^]]]]]]]]]]]qqqqq+^]q+q3/9/103!!!!!3#=<:||&:K L@# LF F R O R ??9//q9/210++2#!!5!32>54.+9tvE]78\BMzU-|M(':%&7$F: x L@* LF`$ F@$(H F  $(H @ H R   R ?3?39//++]2]]+]9/]]10++2#!!32>54&+!54&+7!5!.#"%>32#".4 lP:P352O9X` Ivi{F@oyGh de%GiD=cE%cSLa8LӇ|͒P?iN(a@!G/ o  G* F  $(H @ H O?O&O &O????9/r/++]29/]310#".'#!!3>324&#"326BDŽuM Mv~:tnsy ;S2r||ΕSEm1:TcvBTzaZ+:e@ M M  LF@ ?F0R@HR ?3?9/+9]/]3/]8329910+++ !.54>3!!#";BB2U?#@zqfg\aM /KeBOuL&INHMP-&Hi@ (& ,*%+55+55 Wd75 L0@. M!! F333999p999# F$(H@ H#R (P---- --@H--P???99//+]q332/++]3/]322]qr]99//10++"&'532>54.#"!#535!!!3>32E8S  '1 .J53S.r?iK*-SsE A9. |p@pXAlP,-&t@ &W %+5+5P7N$Z@5 FF @ H &GOO y- O@?2/]?3/]]9//2+3/9/10".54>32.#"!!3267R@F{ivI `Xek5nfPl  GyP|ӑL8aLSced Ki?HOV&Of -.H @ #$H @ H @H @H @H H H22H@ -.H%+5++55++++++++e&i@&% H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H ||H {{H xxH ttH qqH ppH mmH jjH iiH ffH bbH __H [[H XXH TTH PPH MMH IIH FFH BBH ;;H 44H 00H ))H $$H ##H @ ""H @ H @H @H @H H H H H H+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++55+55WMk:$/! L@c L)vg+;K%Foo +F1@1/R%OO %R???9//]q99//]]]23]]]]]]]qq10++!!#".'532>7!!2#%32>54&+d*,3F^A-/' &+$#)354&+32L.J53S4?//105!>?//105!?//105!T'BB?A@- O_o 0 ?/]]qr]21054>733(0#?Cn\O##NRR(?+@   0   ?/]]210#>5#!)0#Cm]N$$NQS(B@-  O o    0     //]]]qr]210%#>5#!(1$ BCn]N##NRR(?)@ 0  ?/]]210##.=#0)(SQN$$N]mC?h]@+ _p_@ H ?/+]q]2/]qr]21054>733!54>733C)0#3(0#?Cn\O##NRR(Cn\O##NRR(?h U@6   P    ? 0  ?/]]r]2/]q]210#>5#!#>5#!h(9LR)0#Do]N$HQDo]N$$NQS(h|@Y  / O  O o    o  o@+.H@ H 0  //]++]q]2/]qr]210%#>5#!#>5#!h(0$R)0#BCn]N##NRR(Cn]N##NRR(v 8@  0@  /?229/]910#5!%LMJxsU@$  0@  ?22/229/]3291053%%%%#5UUTVdd3A}: L@ L  L L /3/]2/10++++#".54>32/Pk=4.#"32>2#".54>4.#"32>2#".54>4.#"32>~,:hN-.Ni<32 (>I&1@*nk,;$`[.("# . lyODp@G  Z   _  _@`pO / ?  /     _ ??99//]q]qr32/33/2299//10!!!!!#53!}:もtо^8@' M)( L-((.'+n  n)8n@&5H):@&=#535#5354>32.#"!!!!!267^ 54.'.54632.#"4.+32>"A0}qhQlPn:ĂAVX} " ³S^>YO$=,#>V41aL/'0EC :O00eQ4u%GhBKSCeD" z{q0M8=o_/V'%1 K<_D=0 ! !9V?sy|& $ ";YCY6$9] O=@ M7..3%n$$n?9-3o 960@G-//O(s%%/%%%s @P @ ?3/]q?3/]99//]q]q3232/]32223/9310+%267#".'#73.5467#73>32.#"!!!!HV  >ll}|F (Mu(WLwelA TJ/J7#GT7R\RPe:Nt#{D7aLJR GpQ  CrS/6!59M@  L L4@ L. L* L$@ L889667@5999977979"D,:_"o"""O@0$'H`pO /? 8?1I'6????3/]3/]]qq+q/]22]99//]]qr883]3]10++++++".54>32.#"3267#".54>32#34.#"32>cW(?fCKqP/ B;UEFT74>324&#">FPU .?UnF@D!E%\uS\0A{oD69". 6U:jk3g_S=#  Dh@'LnHbn&`VET(6EVd+?*@ L$ L  L@ L H @6"""" ,A/A H  @% 0 @  ;1'''   ! ?33?399//]]99///]2+]299//32+10++++!5!!#!&'.53#".54>324.#"32>{Z)B+U~TP{T+)S~TXQ&,. +. G./([(12+c,3oM\33[NK\44\K8J--J79L..L}*2v L@A L @-2,/-/,---oO_4 -%+/-0?32?3]q2/]+M9/2910++#367>73#46767#.'&'%##5!#     77-T8"''$=H=#')#7 U9q@C M M0(  (0(@(`(p(?O((5Z;"Z550****''*_)_??322/3//]]2/2/99//]]q3310++267>3!!>54.#"!5!2.54>]/dm; WvH 3a[[a3 JwX=oe/]Rߍf35+esJel99leJse+3fߛRX|H"/B@#I1/I0//) ??9/9//]29/10".54>32!32>7.#"kƆE,Lfv?qQ@NX.Kt]M"H$Sn;L]53WJ<"]ob}]<Oу-# 73!;H:RR:H;)"bADp*$*pDAb"V@ @ /299/105>73.'#"bADp*$*pDAb"V;H:RR:H;#d^D@  //29910.'3#>7!5;H:RR:H;#"bADp*$*pDAb"V@ @ /299/10%>7#.'53+"bADp*$*pDAb"V;H:RR:H;d^D$@@ //29929910#.'5>73!.'3#>7;H:RR:H;;H:RR:H;)"bADp*$*pDAb""bADp*$*pDAb"&@@@ /299299/105>73.'>7#.'5"bADp*$*pDAb""bADp*$*pDAb";H:RR:H;;H:RR:H;H#(@#  /299299/3210!!5>73.'>7#.'5 "bADp*$*pDAb""bADp*$*pDAb"hPX;H:RR:H;;H:RR:H;5-Ca@+  M  M@ M%%.F@ HE:F@H3R?)%% O)?O ??3/9/3/++29/10+++]#".54>3236454&#"7>32.#"32>  Z}e^Q#,D`}NLzjo974-'kBn^))2)C5( "2 3WC/1iji0uJ@mO;~a:VL, "\$>-+F\a`(.L6Q+@  M M M M@+ M M   0P@7]`HO9@` Pp _??9/3]]qr^]]+qr^]293310++++++35!.'!+p DV/aR9:Sa-O9$@Z Z 0`/2/?/]10!!!C9TH9D @)P`@-H[O [  [ 0@2 H_O_o/?O*:H _/9+]?9/]q39+/]rr99//]+r105 5!! !^qK9G8U9X@ @?/]105!U9jT@ @@C Mo   / _  ;  p O o ?/9/]qqr^]q//+839/9333+}ć+}10##5!3p7PHm#3Eu"@ L L L L4'/G>$9*C@/ ? O ? O   /]q332/332/]9910++++#"&'#".54>32>32%"32>54..#"326m/VvHgAESa8FxV1/VxHgACP_7K|X0);`GJe;p1T>"4`UMc9o1T>#4aq`e^f5G))H5/J35H*'G6_` //103!!^j8^@  //3//104>32#4.#"Dzbc{Fg5_NN^4tLLtbl98ld9%Q#@! L L!F  0@#&H'&P P/?9/+]q3/2/10++".'532>54>32.#"+*%>$,<$4ec(W?$,<%3e95H*Wc6  6G'Wc6+97>@! M=0 L<0 L+@" L,0 L M0 L0 L0 L @$ L 0 L:@+ 9%.6* ?/]23/33/10+++++++++++"&'&#"5>323267"&'.#"5>323267.KKY'C=:3T)RPN&-k0D4 =?F)KKBm.'C=:3TSL244D4 =?F)/ !'-  2*,  &..2*%H+@. M  %5E  * : J  /?  @M%(H?@$(H@"H 0 0  0 p  @ ` p  ?O@H/+]q32/]q]q32/++]3+299//]3]92]910+#7#5!!5!33!!́ՁGZӃ#JdGP B@   @ ??/]/]9//]3322105!5!5!d8d13 @#RR @$%(H @$(H@ H0@/]3/39=/33//++33/+3/++++10 5!1@wAZ13 @#RR @#%(H @$(H@ H0@/2/]39=/33//++3/+22/++++105 55!1?7 #@i y iy///10]]3 %! {RVdG,@  P?_?/]/]/]/]107!!d>T"  H  ///10+#47632#"'.'&#"TR?K3% !$ V{{?0(4 ''#i  H ///10+3#".54>3232765"Z(g>2%!%}86'"%)j%?33105! %iH??103#ؑHK"??310!!#(in"??3105!# (%%H"??3103!!Hn%H"??3105!3 %H' ???23103!!#iHnnH'???33105!3# %K( ?2?33105!!# i%n%H( ?3?33105!3! %nH 3  @  ?32??3223105!3!!# i%nnqj% ??3233105!5! AّH*A ?2?3103#3#ّhHK Kj 1  ???23310!!!!#(iijב" 3     ?3?2310!###בnn#j ? A    ??3?3310!!#!!#htjo"j 1    ???333105!5!5!# i(qב) 4A    ?2?33105!### ܑב%nj ? A    ??3?3310#!5#!5!ґttj)F)ޑqH 1   ???233103!!!!iH"ב%H 4 A    ?3?33103!!33A$Hn#nqH ?  A    ?2??33103!!3!!ّK$hH"qH 2    ???332105!5!5!3 iqב)%H 4A    ?3?3310!5!333$ב%nqH ?A      ??3?3310!5!3!3!5!$KqFH 6    ????2233103!!!!#iiH"ב"H 8     ??3?323103!!#3#AHnn KH I A     ?3?3??223310#3!!#3!!jt " "H 8  @   ????3322105!5!5!3# iqבKH ;A   @ ??3?332105!3#3# 㑑h%K#KH I  A     ?3??3?2233103#3!5!#!5!A㑑tHK )ޑj 9     ?2??3333105!!#5! iiq"h :   @  ?22?333105!!### ב%nnj J    ?3?32?333310#!5!3!!#!5jtttAޑ"בqH :@     ?3??3333105!3!5! Aّ"%H :  @  ?33?333105!333! ב%nnqH L@  A      ?3?32?3333103!!3!5!5!AH"oHL  @    ?32?32??33222233105!5!5!3!!!!# iiiqב"ב"HM  @     ?3?3322?3322223103!!###!5!33AבHnnnnH ]     ?3?32?3?3222332233103!!#!5!3!!#3!5!AבttH"ޑ" mH/?3310!!Umm?/3310!!UH??3310!!U H??/310!!* H??/310!!* *g #'+/37;?CGKOSW[_cgkosw{1mUE- y@ xlTD, xeM5@ dL4qYA)}@ |pX@(|aQ9 @ `P8u]=%@!t\<$x||xiI1!@hH0 gckhd`h_[WT\XTSOKHPLHC?GD@32#".732>54.#"Fz^^{GG{^^zFV9bLLc::cLLb9d^{GG{^^zFFz^Lc99cLLc::c# /]/102#"'&5467>76jnk5RS4l9R46n9:m64R9) //103!32>54.#")Ex[[xEEx[[xE}A[xEEx[[xEEx)+"@" '//103!4>32#".'32>54.#")Q:cKKc::cKKc:MEx[[xEEx[[xE}AKc::cKKc::cK[xEEx[[xEExscu" //10#"'.5476324'&#"3276c%%%V3eK#%HJfgGJL33FF3331HH13}5V%#%H%V5fHJJGgF3333FE6116y!-9D@] $ t $t+{+{D"(?4.(.(.1%+7+>:h:Y:G:::b^0H[[׀ؙٙW .. -- .. --#_[)4`@7*/$'!04h4Y4K4=442-_oO-_--- /99//]^]3]]]]332/99//3310#"'&54676324&#"326%4&#"326327'#"'ZZZZ. -- ., // ,0^b>LLH[[ -- .. -- ..[_#Fs;3F/@ H4.4$w##@M H H;;  H;/4#4;B p ?   9+>0/43?3O33/^]]]]]/]]]]10]]]]+]]++]]]+373#'#5.''7.'#5367'7>7"327654'.B 965--,,(17:"B?n0+(. P(9p6Eu0bb0uE`cc1u;  -;q9>_1(,=20db2/aac02P&/b@>++++""""P'''@%(H /+^]2qr/]32/qr]qr9/3210.'&547>32!!#!5!"327654&'&7Z#GS,e>SW;=>B.*PlzS++VSzmQR FF;G,+G>>=T,G;QAQF@(1A;NN?  33FF;A1?J777B??/^]]]99/r]]r9910.'.'.547>323267632#"'.'#"'&547632"327654'&6%( ? .@$    TVWvvWTTUzGSZ>==@XY<>><      "O-@" '*R*Qm}VXTTuuWV+ >=X[===>ZW>>;/(@& 0 ` p  "@ H"O_/]//+3/]/10#"'!727>'#"'&547>7>76 (_E#%?BXc$&}V+B,-SZB?N9En&86_,+i?~BCF_?BWVc %%1E[wK`_B?[J;*U/;q9S<K/@9M?4=C /)//99//]923/]10)7>7>7654&5#"&'&547632.'.547>3267>32#"&'.'FTl)@4:Z+X-;a)OII]P3N(a2+C.=#!K2dmy;*&StsOP"4&sN&(PNmVb(%)LtvSP<3=-Q}.-L'fZy'&@) @ P p  ///]10^]].'.'.'.547632>32b*gL8E+%DFfbN/"X2U#F)N7>-qEEt/'xSEj( #&b<^Q2P;`N]]5(o]H: 9Pwc;kM;!0@! @O_o! //]9/9/]2103#>54&'&'#"&547632L3:0./9@%%Hl9:Q0*%#Jj9:;b&J5-L9<gu#R#p@' LF%%/%?%##_! F  0  @H Q O!  S??3?332?/+q33/22/]3/]]]2210+5!!!#5354>32.#"39螞Hz[0]%-'3 :||q>iN,  1 U#Rg@% LF!!/!?!_F 0@HQO ?2??32?/+q33/22/]3/]]]10+!!!#5354>32.#"3:螞Hz[0]%-'3 4||q>iN,  1 UW Dس M@" M@ M ?/]q/]+/]10++#"'532654#*7>32 GtU-8*K>q &9#[j,G3v% Em\D"@_/]/]q10! 1g9\ '@ / ?    H /+9//]9/10#>5#53\"-1l,G=30T&# T@3/?o@H  @P` ??39/3329/q3322]3/+]q310#5!533354>232'LpJDeF($1:44"3 O.9[?!7^D& 8I*  @<5>#@Y+p,@   ??2/]]29/10#4>7!5!p@_>(Ie75.546324&#"32>4.#"32>y#HoLLoH#*5) .O8 9M.'=+Z:Vh2G*5++=$//$!"-7&b@ L L@p@"5#53f"-1l+H=30`.g\I @@  @ /]9//]291046733#g,(-1lNWu/0`.WT @_@ H/+]/10%5!+WU @_@ H/+]/1057!W++ _@D& 6 F )9I &6F)9I0`@p_@ H/+]32/]q]/]933]]10#'##53ƟӠ+ ?@(0`@p_@ H/+]22//]q93310#53373˟)@__@ H/+]22/3/]1053!53uX@= L L 0P`@p @H  _@ H/+]23/+/]]q10++".#"#>3232>73,YTK" /VI-ZTI! .V&/& --fX:&/& .-fX: 1@p  ?p _@ H/+]22/]]]10#573#5732X"+"+L@8 P0`p _@ H/+]2//]]qr10".'332>73[P~Y4$2?"$?2"3W~0Oh9 2##2 9hO0V H$<V_birx$$7h$9h$:$\ (  &" ^ (  8; \  VCopyright 2007 Red Hat, Inc. All rights reserved. LIBERATION is a trademark of Red Hat, Inc.Copyright 2007 Red Hat, Inc. All rights reserved. LIBERATION is a trademark of Red Hat, Inc.Liberation SansLiberation SansBoldBoldAscender - Liberation Sans BoldAscender - Liberation Sans BoldLiberation Sans BoldLiberation Sans BoldVersion 1.06Version 1.06LiberationSans-BoldLiberationSans-BoldLiberation is a trademark of Red Hat, Inc. registered in U.S. Patent and Trademark Office and certain other jurisdictions.Liberation is a trademark of Red Hat, Inc. registered in U.S. Patent and Trademark Office and certain other jurisdictions.Ascender CorporationAscender CorporationSteve MattesonSteve Mattesonhttp://www.ascendercorp.com/http://www.ascendercorp.com/http://www.ascendercorp.com/typedesigners.htmlhttp://www.ascendercorp.com/typedesigners.htmlUse of this Liberation font software is subject to the license agreement under which you accepted the Liberation font software.Use of this Liberation font software is subject to the license agreement under which you accepted the Liberation font software.http://www.ascendercorp.com/liberation.htmlhttp://www.ascendercorp.com/liberation.html'  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a bcdefghjikmlnoqprsutvwxzy{}|~     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~uni00A0uni00ADuni037Euni00B2uni00B3uni00B5uni2219uni00B9AmacronamacronAbreveabreveAogonekaogonek Ccircumflex ccircumflex Cdotaccent cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gcircumflex gcircumflex Gdotaccent gdotaccent Gcommaaccent gcommaaccent Hcircumflex hcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonekIJij Jcircumflex jcircumflex Kcommaaccent kcommaaccent kgreenlandicLacutelacute Lcommaaccent lcommaaccentLcaronlcaronLdotldotNacutenacute Ncommaaccent ncommaaccentNcaronncaron napostropheEngengOmacronomacronObreveobreve Ohungarumlaut ohungarumlautRacuteracute Rcommaaccent rcommaaccentRcaronrcaronSacutesacute Scircumflex scircumflex Tcommaaccent tcommaaccentTcarontcaronTbartbarUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentlongs Aringacute aringacuteAEacuteaeacute Oslashacute oslashacute Scommaaccent scommaaccentuni021Auni021Buni02C9tonos dieresistonos Alphatonos anoteleia EpsilontonosEtatonos Iotatonos Omicrontonos Upsilontonos OmegatonosiotadieresistonosAlphaBetaGammaEpsilonZetaEtaThetaIotaKappaLambdaMuNuXiOmicronPiRhoSigmaTauUpsilonPhiChiPsi IotadieresisUpsilondieresis alphatonos epsilontonosetatonos iotatonosupsilondieresistonosalphabetagammadeltaepsilonzetaetathetaiotakappalambdanuxiomicronrhosigma1sigmatauupsilonphichipsiomega iotadieresisupsilondieresis omicrontonos upsilontonos omegatonos afii10023 afii10051 afii10052 afii10053 afii10054 afii10055 afii10056 afii10057 afii10058 afii10059 afii10060 afii10061 afii10062 afii10145 afii10017 afii10018 afii10019 afii10020 afii10021 afii10022 afii10024 afii10025 afii10026 afii10027 afii10028 afii10029 afii10030 afii10031 afii10032 afii10033 afii10034 afii10035 afii10036 afii10037 afii10038 afii10039 afii10040 afii10041 afii10042 afii10043 afii10044 afii10045 afii10046 afii10047 afii10048 afii10049 afii10065 afii10066 afii10067 afii10068 afii10069 afii10070 afii10072 afii10073 afii10074 afii10075 afii10076 afii10077 afii10078 afii10079 afii10080 afii10081 afii10082 afii10083 afii10084 afii10085 afii10086 afii10087 afii10088 afii10089 afii10090 afii10091 afii10092 afii10093 afii10094 afii10095 afii10096 afii10097 afii10071 afii10099 afii10100 afii10101 afii10102 afii10103 afii10104 afii10105 afii10106 afii10107 afii10108 afii10109 afii10110 afii10193 afii10050 afii10098WgravewgraveWacutewacute Wdieresis wdieresisYgraveygraveuni2010uni2011 afii00208 underscoredbl quotereversedminutesecond exclamdbluni203Euni2215uni207FlirapesetaEuro afii61248 afii61289 afii61352uni2126 estimated oneeighth threeeighths fiveeighths seveneighths arrowleftarrowup arrowright arrowdown arrowboth arrowupdn arrowupdnbseuni2206 orthogonal intersection equivalencehouse revlogicalnot integraltp integralbtSF100000SF110000SF010000SF030000SF020000SF040000SF080000SF090000SF060000SF070000SF050000SF430000SF240000SF510000SF520000SF390000SF220000SF210000SF250000SF500000SF490000SF380000SF280000SF270000SF260000SF360000SF370000SF420000SF190000SF200000SF230000SF470000SF480000SF410000SF450000SF460000SF400000SF540000SF530000SF440000upblockdnblockblocklfblockrtblockltshadeshadedkshade filledboxH22073H18543H18551 filledrecttriaguptriagrttriagdntriaglfcircleH18533 invbullet invcircle openbullet smileface invsmilefacesunfemalemalespadeclubheartdiamond musicalnotemusicalnotedbluniFB01uniFB02uniF005middot commaaccent foursuperior fivesuperior sevensuperior eightsuperior cyrillicbrevecaroncommaaccentcommaaccentrotategrave.ucacute.uc circumflex.uccaron.uc dieresis.uctilde.uchungarumlaut.ucbreve.uc  LNDFLTcyrl$grek.latn8 TbDFLTcyrl&grek2latn>kernh(6Tft&djxx@bxbxr&4~& NX&2l>d H : d  " 4 V p . \ r 6DNX$<V_birx 7h9h::\ [;`"`CRX1*ȭ 'ah)x*#b0cPcG ч'_H}2pfxj))03 QAnx`'b]uX,8 ڀW1dF l[n`v*ZlV& XjI,:9)t_`2%!ٹØqol@>XVԕv-LrOMF̢l"(ߡFCwYVڮTj ,s^ o-5L~~XcljV 2)| EyzEFc! FؔL@s4Cj=CR2aOTV}cI&9.o1*BqdWYQTKy[.z)(**5Zc 4ҧMZ}5~V<Տ%"UH٪dX=^sզ٬COGrZ4; .jKOUbuAQptu URѺ,D*en4:FU<6j=Zj4 l.].w^c`3) y'grXš<'3 8+[H{āX: djzVL'r<XV'ks!3^OƐE W+uQN kJܞʓdQa-uAtvb@efWʌJ!W-vVp ,x!8i;}gAzkKx^@s }~9i6RK@Du/PQуK=A8sWged&̻@N,J[|$*h˒*LyڹN>NQV۝Xo WNؓS%;"6y Ms;pCl|Xn;bs{[z7{™"oZ#7#w @==yGMos97=yDu{t fxpשZM£Ldd:>H M.3tn$D~;,n 9?˰cqLzZn_6b>:)(u%s:<#o.CF?l;nS\°PQ3O.@kIENDB`instead-1.9.1/themes/default/click.ogg000644 001751 001751 00000013005 12161555567 020163 0ustar00peterpeter000000 000000 OggSk\KN9$vorbisDqOggSk\Kt-vorbisXiph.Org libVorbis I 20070622vorbis)BCV1L ŀАU`$)fI)(yHI)0c1c1c 4d( Ij9g'r9iN8 Q9 &cnkn)% Y@H!RH!b!b!r!r * 2 L2餓N:騣:(B -JL1Vc]|s9s9s BCV BdB!R)r 2ȀАU GI˱$O,Q53ESTMUUUUu]Wvevuv}Y[}Y[؅]aaaa}}} 4d #9)"9d ")Ifjihm˲,˲ iiiiiiifYeYeYeYeYeYeYeYeYeYeYeYeY@h*@@qq$ER$r, Y@R,r4Gs4s@BDFHJLNP@OggS9 k\K24 OPH5b6_H + #=G[b  ZUEZ"bj(V-X"E#6AED(`F[2]4|)1"/$T__2| H IhZj|I!T֢͆C)]VU4"|y EU؊3}EWgf13liG`2]ST#dezŖJlF%b:/PTPf 1V*FE +v[P#X`ۺa5c&mogiTZVլլ֬^zi/עR||e纋 */>ZYŢUTj *XAШ 02`slG6>ϔ*Z5) pPPΡ|9G.X@1L uJ@bWyi+ZEըblݚn,+EQqbeYpjett2L/ր.ēxٶq HU'2JMU)5ʤ R`U *j)3e.ضdXZS԰:d Xb)V C183Xj_]WJ*UDsi)#%D%"ZX 7N Zh X80j9<0Thz` Ը L6rڀi\$5LuiכfNžmnvTbT.ۂ&%DUI"3\F6 .(@S@e\;Ϟ"kD22md`m*cBF#"?‡ܧV ϾX y:n*Y 鶌;eW_r/aFd4^ N&ԵL#w(H"bE6hz(0ZXS(Ga&l˂isY#@jFJndF̲MRLJۛ T2YmU϶!-Z}#2v~d{gO]|˰is@?+_?lP%-DI8fnH'BNn!D:,0,}Ye,_ct=˗&x@t_xQinstead-1.9.1/themes/default/cursor.png000644 001751 001751 00000001254 12161555567 020426 0ustar00peterpeter000000 000000 PNG  IHDR}7 sRGBbKGD̿ pHYs  tIME  ܶtEXtCommentCreated with GIMPW IDAT(ϕOHa;*D,IARB%ҠKu O u !$/!Zٙwv޷úe~ymmôYR}s:V jzn<*X4Lt}=ZO2x0z.l,:X[\ĸ3>(o"$b"1i?4;n%66(b 7pED(fSwplfQ%!e>A2u}׎7gbbb~PqxG: 珹)HD udD( ҜVO'*$n}'<W>aKl$2>Yg[~CzzK$IFbJ8D Kh %VP2!ADPvIENDB`instead-1.9.1/themes/default/sans.ttf000644 001751 001751 00000417234 12161555567 020077 0ustar00peterpeter000000 000000 0FFTMMGDEF \ GPOS GSUBNC`gRT/Z33f Px1ASC@!Q3>`: D99Ws sIVHh !d9[99sPssgsNs/sRshsisYs`99edesTVVhV9g9 Vs9aV9aV].V  V.V-A999 sjsWsWsVsW9sVsssVssV99s1""\ss:sqsss-sSdk3zdA)HLP9wPsS88IVVVVVVhVVVV9 9999a9a9a9a9a9GV-VsWsWsWsWsWsWBWsWsWsWsW9 999sVssVsVsVsVsVdA,sssssVsWVsWVsWhWhWhWhWVsVVsWVsWVsWVsWVsW9gsV9gsV9gsV9gsVss 999 9 999\99 Vs[s~sUssssss9asV9asV9asVaV8V]9V]9V]9V]9.9..9ssssss V-V-A1A1A1sVsWB9G,V]9.933PW9F2AVVhX=VA9a9VX 3Z9aVl.V-buV.W9V-VFsj`VtVFVsjsjVsVOVV)`0U3?S`sV`?SW.UhV]99 u.7V@VUkVcC@9aVh.7vV.UUU.@i`sWx@sWZ1xx ksVUsW#V+zk-+7UsWs W99@ s kJ   V-[[sk~KKKssQ7UUXYV`ess:sE%lXP=]8ed3W1d8dAdd?dAd"g{mm))s+kUFQ@;@<fBw5+-|ZjZH-/ HB~~ O\_    " & 0 3 : < > D  !!!!"!&!.!^!!"""""""")"+"H"a"e###!%%% %%%%%$%,%4%<%l%%%%%%%%%%%%%%%&<&@&B&`&c&f&k ~Q^    & 0 2 9 < > D  !!!!"!&!.![!!"""""""")"+"H"`"d### %%% %%%%%$%,%4%<%P%%%%%%%%%%%%%%%&:&@&B&`&c&e&jG/vhzyws /,$#>1"DC:741.' ܸܿܳܰܨܜIFE(&%" bcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?w6   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`apcdhvnj#ti<7q>?fu143:kzvbm6@;2l{   }8w KRoNOPxSQL@EYXUTSRQPONMLKJIHGFEDCBA@?>=<;:9876510/.-,('&%$#"! ,E#F` &`&#HH-,E#F#a &a&#HH-,E#F` a F`&#HH-,E#F#a ` &a a&#HH-,E#F`@a f`&#HH-,E#F#a@` &a@a&#HH-, <<-, E# D# ZQX# D#Y QX# MD#Y &QX# D#Y!!-, EhD ` EFvhE`D-, C#Ce -, C#C -,(#p(>(#p(E: -, E%EadPQXED!!Y-,I#D-, EC`D-,CCe -, i@a ,b`+ d#da\XaY-,E+)#D)z-,Ee,#DE+#D-,KRXED!!Y-,KQXED!!Y-,%# `#-,%# a#-,%-,F#F`F# F`ab# # pE` PXaFY`h:-, E%FRKQ[X%F ha%%?#!8!Y-, E%FPX%F ha%%?#!8!Y-,CC -,!! d#d@b-,!QX d#d b@/+Y`-,!QX d#dUb/+Y`-, d#d@b`#!-,KSX%Id#Ei@ab aj#D#!# 9/Y-,KSX %Idi &%Id#ab aj#D&#D#D& 9# 9//Y-,E#E`#E`#E`#vhb -,H+-, ETX@D E@aD!!Y-,E0/E#Ea``iD-,KQX/#p#B!!Y-,KQX %EiSXD!!Y!!Y-,EC`c`iD-,/ED-,E# E`D-,E#E`D-,K#QX34 34YDD-,CX&EXdf`d `f X!@YaY#XeY)#D#)!!!!!Y-,CTXKS#KQZX8!!Y!!!!Y-,CX%Ed `f X!@Ya#XeY)#D%% XY%% F%#B<%%%% F%`#B< XY%%)) EeD%%)%% XY%%CH%%%%`CH!Y!!!!!!!-,% F%#B%%EH!!!!-,% %%CH!!!-,E# E P X#e#Y#h @PX!@Y#XeY`D-,KS#KQZX E`D!!Y-,KTX E`D!!Y-,KS#KQZX8!!Y-,!KTX8!!Y-,CTXF+!!!!Y-,CTXG+!!!Y-,CTXH+!!!!Y-,CTXI+!!!Y-, #KSKQZX#8!!Y-,%ISX @8!Y-,F#F`#Fa#  Fab@@pE`h:-, #Id#SX<!Y-,KRX}zY-,KKTB-,B#Q@SZX TXC`BY$QX @TXC`B$TX C`BKKRXC`BY@TXC`BY@cTXC`BY@cTXC`BY@cTX@C`BYYYYY-,Eh#KQX# E d@PX|Yh`YD-,%%#>#> #eB #B#?#? #eB#B-,zE#- @@ O P(F(F*F+_O_ F@FF@36FF=U=UU@F<P&(Pp@2F?Oop?а/?Э/?ЪO/o$PoF0@pЏO_oF1ts?sP&on<nF5U3U3U`P&_P&\F1[ZHZF12UU2Uo?QQ@Q58F@Q%(F@TPIF HF5GF5FFFF2UU2UU?_/Oo?oTS++KRKP[%S@QZUZ[XYBK2SX`YKdSX@YKSXBYtstu+++++stu+++t++ssu+++++++++++++++++s+tstusts++tus+stsststtsts^sstsss+ss+++s+tu++++++t++^s++^st++++ss^ssssss^}y:wW~j`jy"3kkk{Rni`[^^eoz iqHjgaAD,,,,`T2rP  D P ~  J d@(`,X@^(&* @ !"""#$6$%6%& &'X'(f))D*+d+,p--b..r.042V35|667~78p9::;T;<> >?v@8@@AABB^BCnCDDZDzDE EEF FJFlFGG(G@GXGrGGHH*HBHZHtHHHHI@IXIpIIIIJ4JKKK4KNKfKLLLLLMMNN*NBNZNrNNNNNOOOOOPP.PnQ Q"Q:QRQlQRR"R:RRRjRRRRRRS S"S6SNSfS~SST:TRTjTTTTTTUUU6UNUfU~UUUUUVV~WWW0WHW^WtWWWWXXXXYYYZlZZZZZ[[[.[[[\\\(\@\X\d]]]]]]^^(^______``*`B`Z`r```````aa`aabbb2bJbbb|bbbbccc0cHc`czcccccddfdeeff.fFf^fjfvffffg0gxgghDiijj^jkkllNlpo^oppppqrqzqqr,r4r,^(BZrh08@X` hp􌂌tJď:ȏЏؐ&>F@pΔxĖh$Bęܚj򛤜 T\dBZ(8¢bz 6d|Ħަ(D`ƧҨ4fL@ȭ`Ю 4X¯ֱ> ޳b(ZDr0P "ԼF6:Nf.Tz"P€ºRÀðHĂĶ0dŜLƒDnj2JbzȒȪ̞^lΌΨDϖLЎ>ѾnӀfԺ@ն ~~2$Lz٢8\ڪ*DdU./<2<2/<2 <23!%!!D $hUD@[9IY@H &  v  )  I &  v )  y V    T d t  b r D T " 2       r T d B  $ 4  n @fmHI  @^bH- =  @UXH QTH} _ o  GKH CFH ?BH} [ k = M  )  7    @-0H; K [  -    + ; k {   @ `   p_?/]]^]]]_qqqq_rr+rrr^]]]]]+++qq++r+r+^]]]]]]]]]qqqqqqrrr^]]]qqqqrr^]]]]q/^]+]q3/10#353gWh@!0 `p`pP`%(H@ H0o/? ?3]2/qr]q++]qr]q10#3#3jyE iy@ZZDD6D&6D&6          O?O   /3?399//]q]q3232/333/3310]]]]]]]]]]!!#!##53#5!3!33!!NXnVTnTNYnXkXnX@PjNulhhlqlhhlqrR0;F.@\ D'9955%vF?V??4&d&t&%"7/ A 0001o)o1 11 101P1p11#H1@uH1o@H753.'#4.'>" .NqNMtG@s_|dfBzu;rgX@$8rw|/Qj:AlM*\(F_7Hd= %5W@'2SbT|S,-PsK!^i C)8OmHMd>?P3 ,8Q6J2!!4DI+?S@ vy*@ H% H  H H H @ H H H@T'6 ,, ,,@,,, ,P,`,p,,,,@J''''@ H'O"E1;????/+qr/]qr99//883310++++++++]]#".54>32#3%2#".54>4.#"32>4.#"32>3WtBBsU10VuDBsU2;@rV12UtBCtU11Vv+?(*@,+?)'?,*>(+A,+@*&>,}i--h~g))g )f~k..jf)%cN !Nb_O""O|bN !Na_O""OH69IY@I${**bRrRRfGN[NI+Y+i+600%(,#|##,<\  *  *@8 H *0)&E6BI!I:-,JJM:,P,:,,: 666@= H6PH? O  MbErE6EFEJ0)M,&E ?Q?UQ3P??/]]q9]]]]/]/+]q9///]]99]910]+]]]]]]]]]]]]]]"&'#".54>7.54>32>732674.#">.'32>`:L]m@un53[~K (U]I{Z2BpS>U=Q#kF5j1 ;K0E*`d%AtV2JYBq{#HmI,OD7 B=0&73#.5*Za^X++X^aZ*iiii X+H@  WWHH@  ??/]]8210++]]]]#>54.'3+*Za^X++X^aZ*iiii!k@KM]mK[kBRCS  _ 0/ ?     ?]]]/]]3]]3qr910]]]]% '7%73-ww- ZgIHHIk)dG G@.    8 7?3]]322]]/]3210]]]]#!5!3!X`TT N H @ H @ P   @&)H @ H  //++]qr3+10+%#>5#5 {-1Xۨ5WKB AA[Op!@@p//]q//]105![Р~.@ @P@ H//+]qr1035393@y H) ??/8]810]+]3i P#'p@PY%i%F!V!f!VfYivy   yvn@)n?  s#s??/]]10^]]]]]]]]]]]]#".54>324.#"32>#MfgKKjeL(NqHLtO()OrIGrO+JJCCը߅78ߧއ;; ^@  n/@HDTdHt?2?33+/3]+/^]3/]/]2/]1035!5%3!gMW<g (@Muuze%V%)!Y!i!i##u'n@@&*H@*nt&&& @&H&\l|  s&t?9?3]]]9/+]33]/]q+210]]]]]]]]]]]35>54.#"'>32!g3O$D_:6_J/ Btkiq<3Upz|mVu||V<[>54&#"'>32?yst: +JlJEgy3fb3n[;w P{Yvl3"HoNU~R)ai7AkI8\B$N_57^Iqzo][-;eM>lV> ;Xp/7 u@Pvv@ H[ k {  op0Ps ??39/32/^]qr3322]/+3]q10]]]]]#!533!qh??Lw$% R,@V f UeZjU+e+U*e*&@YH $$$$D!# H# n@/.$%n! n ?  s(($t!ss g   ?3]]]?9//]q3/322]qr9+10_q_qr]]+]]]]]#".'732>54.#"#!!>32@~{orC (EeHFrQ,*NqH-LA5/!0civ@jF4[zF(K;#+TzOAmO,%A%5@uh$8@0zYiZjzTdT#d#t#T"d"t"5E22@- H%5Euon@/%%%%:/n  @&H *u 4s4s??3]9/2/+]2]q2/10]]]+]]]]]]]]]#".54>32.#">324.#"32>;so{z=EvH~gN{QJxT-1s`o=$HjF1dQ3(KjBAgH&jG^`CnP[QFҌ[_>upIvS-AjLNd:-Uzi D@-z i nP   _ @` t ??2/]q3/]q9/10]] #47!5! jGPe E9.Y)=Q@u((u!!uuuzzz zzzuUEeEUKeKZAjA4n*n$O n@>>>/>>>>SHn  $Cu99M/uMu??9/99/q]qr99//q9910]]]]]]]]]]]]]]]#".54>75.54>324.#"32>4.#"32>9u||w9/Oe6;]?!9pmso6!?]==hL,>dIGb?:fPUg7#DsVOoE FrQRpDZn>>mYMxW5 >Wj;Jc9:cJ:jW=  5WxL5X?##?X5*XH..HX3_I--Ja4AkM**Mm`$8@i'  t##t zz{Z(j(Yi H6%n/?O 0@: o /n @ &H4s_o*s"s  ?3]?9/]2/+]3/^]qr310]+]]]]]]]]]]]]#".'732>7#".54>324.#"32>GvQfHw[IyU0I]l7`l;?xo%IkFAhH'#FhE2gS5ݼ^!FpOEЌ/J3E|km{BNf;.UzKGzY3"Fk~:6@$@P@ H?//+]qr32105353k: Y@ H @ H @ P   @&)H @ H  /?/++]qr3+3310+%#>5#553 {-1XϜ5WKB AAeHj@H(H(H@3H Pp ?0p?o/]33]]/]/]310]+]+++5 eZ;dXGF@1@` p /_oP/]]]/]]3/]q3105!5!dXeHj@H(H(H@3H Pp 0p??o/]]]33/]3/]10]+]+++75 5eZ㚙on^T'%)@Du$$u##ZjZZzZ z :J H )))&&FF @@&,H!_  '&L_!?3]/]9/+]/9/q3/10]]]]]]]#>54.#"'>3253'%>ORO?''>NPM<%*MmC Cyzr{@GlUC<:DS7EhP?99FX;;\? z TpA8gn]re@zuuy//t&&f&cFVEfE{IJ8Z8j8;fR?6?F?R@&@6@F@%5E%5E9   H\f\\P:`:::5:E:9]9 99 }44 4K4 *h%) p"HH 1PP  R@_1o1111t=RR RR,kc$/?O 0@M6YGGBM/3]?99//]]33//]]q99//]r9]22210]]]]]]]]]]+]]]]]]]]]]]]]]]]]]]]]]#".5467##".54>3237332>54.#"32>7#"$&54>$324.#"32>7>nCva8O2E]uGT}Q(Gr<`I6't+&>kO-S㸋^0Vix,72oi?v$\"?Y8VW-_cEx`F `/@&+ -YE+:gSxݩf0C(Tx10.Qpޢ\@ts`!09p?4!sܴFv2TfG$PR@fvfviyiyse|jz9Yiu6VfZHUG%5*:  *:  0 %5P0`/_v  ?2?3]9/32]]q/]3]qq3/]q3]qq9=/33]qq]qq999910]]]]]]]]]]]]]]]]!!#3 .'!~?6d(RC-.DR(1!.@l  -u--z$$$  % &k{ Z@ H)Z@"/"""0)Z@(_)_)_??9/q9/^]2]q9/+9]]]10]]]]]]]]#!!24&#!!2>4.#!!2>ThuC!CeCUX.ATtH Q1\PsI{Y2k_,'TZ;hU= :ZwBrbB!=VC^<7#"$&546$32.x}@EuRmV!&pvV[.GDfPӘT+NkANOd9m  e<2[F*e d@F{+;{+;{{yZ@/  @Z@__??/^]]q10]]]]]]]]]#!!24.#!!2>ejңoR{:oNϰ]Q˂=H M @% H  Z@ _ _ _??9/q]/^]23/+99//103!!!!!-2< i H@: H Z@0 _?o@H_??9/+^]q]/^]23/+9/+10!!#!gg-@+j+B%R%UVVUz Y i jjI%Y%5{ @  $\@!!/ /`//[ !_"""_)_0 @   ?3/]q?9/]/]]]]]9/2/]10]]]]]]]]]]]]]]46$32.#"32>75!5!#"$&gYĐd#IhX|=BSqV[U/kYǥ e.V{M64U? @gfdk{YV  $  j    Z@ ?3?39/^]223/]839/]93q310]]]]]]]]]]]]]!#33 R͸>/8@(0 @`Z@_??/^]/]q1033!,,@ ) H H @H(   H* !%H* H* H!%HH@ H $$,\*$4..t.;... .ϫ.4. .......t...`.T.@.4........t..P.D.0..$.......p.4.D.d. ....t....`.4.T...gt.....P..$.D..4.D.d..........4.T.t.7@S..$.D.t... ....d..K..4......@.P.p.?.. .\@@%H*K$ $?3]?33+3/^]2]]]_]]]qqqqqrrrr^]]]qrrr^]]]]]]]qqqqqqqqqrrrrrrrr^]]]]]]]]]]]qqqqq^]]]qqq^]]]q29=/3310+++++++]+++]]!46767#.'&'#3>73V  wp3j,3032+a'@(-/5987/g'T/?B; Ĺ @' +H6 F  +H)9I !H H ) !H@5H&\DT0@p@@@H \@@+H  @+H ?33+?33+/^]2+]q/]_]q310]_]++]]++]+]+!#3&'.53:10)[#XH11*c-a'l@J[%% %R!!!T[fh [@) ))[     _#_??/]]]]q10]]]]]]]]]]]]#"$&546$324.#"32>_X\\A{~?A{{;ǥhm  efДPPәUVu@S *  % Z@@@Z@_/O_@ H_ ??9/+^]q/]2]q10]]]]]#!#!24&#!!26=yybQ}|>\uD=oaԒa}$8@ql|hhe"WU1Z'Z-l|Z(Z(,U,6Z662U22 [@%%:/[  ::*_ 4_ _/?3?]/]]]q992/10]]]]]]]]]]]]]]]]3267#".'.546$324.#"32>Mӆ5DS3@&[1VaFP\\A{~?A{{;Ǖu@Z9 3_Ws efДPPәUVh@> u|JZjrc@3%p@WIpTdB#3Z 0@`@ Z@_/_o_?2?9/]2/^]2]/]39/9310]_]]]+_]]]]_]]_]]]]]]]]!!#!24.#!!2>Ix~B'T[,TxL;RxM%I7h^ClN@^?)Hb]?@n>D>;61(! !!+!!Y:`6iv*Z))Z@A Z@H4Z@Hx;4@/Hw444:44/_o*Y*K***$_` R D  ?3]]]?3]]]]99]]+]]+/^]3/+]2/10]]]]]]]]]]]]]]]]]# $'732>54.'.54>32.#"Eۖ(:cfUf9?r`;wm`F(QrM5V{SbQ#?lPAvgL+Ym=%7ZA$<_BEV8& +:QkFd\*)RyP!3P6#53tН\9fSRn?]>Ɋk^+,`odψB M@JZjEUe:Zjz5Ueut {*: %5 *:4T 0`%5 P0`/y  ?3]?3]]q/]3]qq/]q_qq3]q_q9=/33]qq]qq10]]]]]]]]]]]!#367>73    -Y#)'%)#X0 .W@Iy,u{It F zIYiuGWg-[-k-{-dtU H @ HuDTd6zK[k H*:  % 5    *: %5*: %5'{'t''-*-:-----......{.o.[.O.O....@H .0.. .8x @@&Hw00060F0V00'0070g0w000000&000000x0000i0(080X000000000X0h0I0700000000(0H000X0h0000I0(0 0000000000|H90*00 000000000x0i0:0J0Z0)00 0h0000@0000|0k0\0K0<0+00 0000000000m0_0M0/0?00000000000m0}0[0M0;0-00 0800000000{0m0K0[090+00 000000000}0k0]0K0=0+00_0000000DT-'@{ H?33+]3?3]^]]_qq_qqqqqqqqqqqqqrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]qqqqqqqq_qqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]qqqq+qqqqrrrrr^]]]]qqqqqqqqqrrrrrr^]]]qqqq/+^]3_]]q/^]]+]_qqqqqqqqqq3]q_q9=///]]33]qq]qq33]qq]qq33]qq]qq10+]]]]]]]++]]]]]]]]]]]]]]]!#.'&'#367>732>73   a &h/79:70f&?|1:4EC><7m7;>CFEhy4.+ w@\I;& K[)9DT&6 )Q E 3   ]L+; RC&6     ` T 0 $       p d @ 4        t P D   $ T  4 d 4 d   K {    4 D jT d @ ; $       { d 0 $       p d @ 4   9      D t $ T T d @  0        @H     H @) r4DT ?2?39]]/]]q83/+]]]]+]8399//923]_]]qrrrrrr^]]]]]]]]]]]qqqqqqqqqqrrrr^]]qrr^]qrrrrrrrrrr^]]]]]]]]]]]qqqqqqqqqq10^]]_]]]]]]]]]]]]]]]]]]]! # 3 3 XYP} h)b-)S@  H@ Hi6FZ&Vv9I V  9  Y       Y y 6 ) 9        t V f B $ 4         v b T 6 F $        p d @  $ 4  i  @  t P ` D        T d t 0 @ $      $ D T t 9  p  $ 4 T d       4 T    p 0 `  / ;K{??39]3]]_]]]]qqqqqrrrr^]]]qqqqqqqqrrrrrrrrr^]]]]]]]]]_]qqqqqqqqqqqqqrrrrrrrrrrrr^]]qqqrrr^]]qqq/^]]]q9^]]2+M210+_^]]+]]#3 3 HH9aA z@#dtm}[)9IrTd@ H @ H@ H @ H__?2?22+/+]33/+]3310+]]]]]])5!5!!ZVW)1@0? ??/]]q]q210!#3Wu9G@(x H IF * ??/]8]810]]]+]3i W1@?@P??/]q]q21053#5!Ws HH@/HvHy6Ffv&FVf0AH@9H9Iiy )Yi @H9&6FH"8d@P$4tK4 `p@P"/2/?3]]^]_]]]]]]qqqqqqrrrrrr^]_]+]]+]+qqqq+rrrrrrr^]]]]]]]]]qqqqqqqqqrrrrrrrrr^]]]]]qqqrr^]]]]qqqqr/^]]qqq+q+qr^]+^]qr33++]qr10_]+]+++ #3΢pry i#@``///]q105!ij/@u@@/?/]/]]10] 53WsN2A@2y==y ( H + H%%F@. o8888CG@H?G0CCCC@ #H!Q(9Q 3_/P.3P?2?3/]q9/?+]q/]3/+]222/10]+]+]]"&54>?54.#"'>323267#".'#'2>=QW:W;4T>& 8gn*;"C&3I.E\u#VU*BwZ5_kN;C^:'C3@kN+.PQp7Q64T; ?bt5Y2ZIX`3@ i1y1y#@ HIYIY@? HG@  5*F05?5p555555%P /P?2???2]]qqrr/^]22]10+]]]]+]]!"&'##>533>324.#"32>r{32z>`EGmI&&IlFB`@"Yc80" +32.#"@iM` hl C|^9Vxm}U32WvDZj3gV3{@WU"e"Z2j29I6 F  yvF@*5 Gp555555 /P%P?2?2??]]qq/]]2210]]]]]]%#"!234.453#.532>54.#"52z{2>`EGmI&&JkFB`@hZ6Zb +/* 'H<+ %05ppg0.gxsb+.fWN%k@.Z#j#ZjUeI G@'%G0''''@#HP%% PP??9/9/+q/]2]q2/10]]]3267#"4>32'.#"#IrPu=flLdo/-cT:Ug9^H--[I/ӄ;XzJb<@   3 C  @j HF/O_?;_@VdH@',H 0`@/P P??32?]]]q++qr^]q/^]322/^]310+^]##5354>32.#"3i;fQ E-(3 Iz;eK+)<'aVWK1E@Hz11ve>U e Z:j:&6&)! yv /F@2"0GF@QH=##".54>3234>734.#"32>$]f@{d=dF&;UpHg]++aos.,1Pg6EcA@bD6gR2W&Gb<KQ"KxV)K:#E͇БMia>7( +32#4.#"#3=FTd>hM0XF@gI(7M28eT/EhE#.TxK~!B8'=s@ F0@*H     p      @"%HO  S???]q+qqrrrrrrrr9/+^]3210533 :W=3@ H( HF  @?@H@P_oO??O_ o?o@TORH/?O=@58Hp@#&HOpP S???]]]qq+qrr+^]]]]+qrrr^]]qqqqr^]]]qrrr+^]]]9/^]33/210++53#"&'532>536]H"A $ &1  Z>jN-+C. @T|zvV f Yiyt D  * t  T t t 0  @i H F0 ?  ? _   ? _  9 @SVH`   `   0 @  ????9^]qqr+^]qr/^]2/+_]]q833/]83_r9310]]]]]]]]!#33 0Ima />o@4F0p@"%HOp??]]]q+qqrrrrrr/^]qr10334#N;¹* H @ H";F .F///)/Y////////v/Y///F// F   6  =======i=y=[=I=+=;========i=[=)=9== ===i=====[=M=)=9=========}=+=K=[=k=========+=K=[=k== ===@======[=k=O=;=$= ========d=K=?=+====={====o=;== =j======[=O========d===+=K=======k=4===9====t==+=K=[== ======K=[={===`====O=0=/=@="5P(P/ ?22??2?2^]]]]]_]]qqqrrrrrr^]]]]]]]qqqqqqqrrrrrrr^]]]]]]]qqqqqqqqqqqrrrrrrrrrrrr^]]]]]]]qqq_qqqqqqqrrrrrr^]]]]]]]]]]]]qqqqqqqqq/^]q2/^]]]]]qqqq9/910++!4.#"#4.'33>323>32#4.#"/L79\A#8Ka@{3294U?@gI(>RjFZT'OjA-U}QS"KC0,9;/L5,\d/VN"t@;y tvy      G@$0$$@#H$GP P??/]]+q]10^]]]]]]]]]#".5!24.#"32>q{A~u8'KlDEoN),Mi>EpN*Dӏ0FҌ~b')c{~b('bWM&:@i8y8i*y*$$$@ HIYIY@? HG@''<1F0<?<p<<<<<<,P"6P?2???2]]qqrr/^]22]10+]]]+]]]#"&'##4.'33>324.#"32>(]pt.@Re?p](;bJ73#46767#4.#"32>CgQ=?Rg)KkBEb==aFv`)3inlh3%aN>@(0! F0(H ???3+/^]q23/]1034.'33>32.#"+:P9( 0>W7>"GB:;>9>[;8cQ9K7@Ut..ok%6*4 $I##H@ 09 I @H ,HO_ `9999@*'*H?99,)P $$$$$ P` p   ?3/]q?3/]q99]]+]q/]q3/+]q2/10]]]]]]]]#".'732>54.'.54632.#";pi^rM:aF'.RuFAg@ʳ 0DU.zt+MlA+ZUK8!+LwQ+@iLWQ'A01?**EfM~*9#JK,9' #/BX*,{@W(iy( i y  Hl| Ho F  @P ?  P??]32]/^]q332/]10+]+]]q]q%#"5#53733#3267*)U8}5x3?1 ҃UN?:%y@E!*!:!F@/    'F$$$$0$$$''''''p''@ HP ?2??2+]]qr/^]q]qr310]]32>53#.5##".5:4U?@gI(>RjFZT':ROjA-U}Qs"KC0,9;/L5,\e:[@79I6F:Jiy5Egw H@> H +{DTDT@ [*  K[`DT DTDT[D K[`DT `DTgDT[D K@c[7K[? `DT `P/ ?3?3^]]]_]]]]qqqqqqqqrrrr^]]]qqqqqqqqr^]]]]]]qqqqqqr^]]]]]]]]qqqrrrr^]]]]]]]]qr/^]83/^]]]]qrr839=/3310++]_]q]]q]q]q!#3>73ew:@?D??B?:*@$:)J)z)))5Eu6F6@ H9I9 H6F@ H6 F  @3 H9I H9I H #(#X###)**@I/2HI*4*&******y*6*F*f*******f*v*9*&****@ Yiy ,,,,,y,f,T,6,F,,,,,,,,t,f,9,,$,,,,,,,i,6,F, ,,,,V,f,,9,+,,,,,,,,,,r,d,V,4,D,",,,,,,,,,v,T,d,B,4,,&,,,,,,,,,f,v,T,6,F,$,,,,@,,,,f,,,D,T,6,,,i,,,,,,t,,6,F,f,$,,,,,,,,,i,V,D,,6,,,,,,,r,`,,$,T,8,,,,,t,K,0,,$,,,,,{,4,D,d,,,,,d,,,,?,,,@(HB4")#( H-#( H-#?3]+]+?3]]]+^]_]]]]]qqqqqqqrrrrrr^]]_]]]]]]qqqqqqqqrrrrrrrr^]]]]]]]]]]qqqqqqqqqqqqrrrrrrrrrrr^]]]]]]]]]]]]]]qqqqqqqrrrrr^]]]]]]]]]]]qqqqqqqq/^]83/^]]]]]]]]qqqqqqqrrr+839=///qr33333310+_q+q+q+q+]q+]q]q]qq!#.'&'#367>7367>73ѭ Ѳ P&,/-,&RJ:!C %'&$@B"#&$C: @Hyvy7 w  zx  @;   ) 9        & F f  H @  9  @tHv d V D 6 $        v d V D 6 $          F V  @H V f v D & 6  & 6 f v  v D T d 6 $         v d   & F V g F V  d V D 6 $      & 6 F 7f  @6=BH9 "       t ` T @ 4   @"H   P p  ?3?393^]_]+qqqqqqqqqqr_rr+r^]]]qqqqqqqqr^]]]]]]]]]qqqqqqqqr^]]]]]+]qrrrrrr^]]]]]]]]]]]]]qqqqqqqq+/^]r83/+^]qqqqrr8399//8892310]]_]]]]]]]]]]]]! # 3 3 ! D,[W:@;zi HrVf@$ HYF@$!!&!6!F!f!v!!!!!!! !!!@H!!!!!&!6!F!f!v!!&!6!F!f!v!!!!!!! !!&!F!V!f!!!!!! !!!!!!!!t!`!B!R!4! !!!!!!!!!!!d!t!B!R!$!4!!!!!!!!!!!d!t!V!B!$!4!!!g!!!!!!!!d!t!V!B!$!4!!!!!!@!!!!!`!p!D!T! !0!!!!!!!!!!!`!p!D!T! !0!!!7!!!!!!`!D!T! !!!!!!!!!`!! !0!P!P!!!!/!!!  P??3333^]]]q_qqqqqrrrrrrrr^]]]]]]]]qqqqqq_qqqrrrrrrrrrrrr^]]]]]]]]]]qqqqqqqqrrrrrrrrrrrr^]qrrrr+r^]q/83/^]]]]]]8399=//3310+_]]]]]+]]]]]]]]]!#"&'5326?3>73\&ObxN": 0O3S  Ծbo;v+5ZZH APRj1:  @NYitFVf({$ ;[ @'7H@H @(\dH     t ` T @ 4 D d  @ IRH   ?D d  $ D d  3>H @'H  P p  @ HPP?2?2+^]_]++qr^]]]+]qqqqqqqqq+/++^]33/^]q33_q10]]]]]]35!5!!18j&ڋ"W-`@A H H-!( ?@! / o  O / O o  +??9/]qr9/]]q3322210++".54.'5>546;#";AcB"7P33P7?[M4G)+G3M[?W)LlDi?X88X>jkl2T@,  ,AT3jmN]@ H@ HH@Hp@H@+H0@P$$HH@Hp@ H@H0$@z}H$n@ ruHTfiH@ [^HP`@ORH@ DGH>@8=H`p@H@H@p//?^]]++qrrrr+^]+_]]+q+r+rr+^]]+qqq+q+qr+++^]]]]qq+qqqr+r_rr++^]++]]9/^]103N~"W-b( H@7 H, & 0 /oO/Oo-,??9/]qr9/]q3322210++2654>75.54&+532+5^[O3G+*F4O[<7Q44Q7"BcAmje3TA,  ,@T2dlk>X88X?DlL)\)P' @Z)90 H 0 H г H@ H p  @ &323267LEIX&A<82Q(PMK%233E{4 ;=D),-  &.  2*:@[iFV9@HIYi6  y F  9   i y &    I Y y    t V f D  & 6  @H   @H$     @@Hf   @Hb r @ P " 2   @u|H  @@ nsH  l @@>ekH   v R b $ 4 D      d t  @GKH   @=;@H  7  T d t     T d  @H@  /]?^]_]+]qqrrrrr^]]+]]+qq_qqrrrrrrr+^]+]+qqqq+qr+r^]]+]]+qqqqqqrrrr^]]]]]qqq/^]]]]+qqqq3/103##5  %i?/3Ͱ2}/%3&/ְͰܱ22ͱ22 ܰ"2 Ͱ!2 ' !"$990167#5&'&576753.'$ & ?S|e[yf|Y ^9>NN" Zx7?ZW :P2@SF6F%5$' o',n#'n_  O_o2o  0Pp0@@H& Q#?o@%*H@ H,s,t2v222?3]2?39/++^]q32/+]qr/]9/q329/3910]]]#!5>=#534>32.#"!!!2>7P 9YsCFYV0cgF{cG '5A$rph,?(&C5%7PuM%.y\f7:V994$s}~8j\G*C0qs#7@wJZj,<JZj,<E U e # 3 EUe#3J"Z"j"-"="EUe#3EUe#3JZj-=.$/9)3 /]/]]10]]]]]]]]]]]]]]]]467'7>327'#"&''7.732>54.#")%dhc6IG~6ah`%+,&dfe6~GH4iff%),Mf:9fM,,Mf9:fM,G6dge'+*&ai`6GG5die%)*&iif6I:fL,,Lf::fL--Lfv@IFJjzEeuO @\  @  Q Q/  @)-H   ??39/^]q33]+q222/^]33229]2]210]]]]]]]]!!!!#!5!7!5!3 3A}@[sw}/}yN]@    H @ H   H @H  p  @H     @+H0 @ P   $      $  H H @Hp   @ H  @H0  $   @z}H   $ n @ ruH T  fiH  @ [^HP `  @ORH   @ DGH  > @8=H ` p     @!H @H@ p   / ?/99//^]]++qrrrr+^]+_]]+q+r+rr+^]]+qqq+q+qr+++^]]]]qq+qqqr+r_rr++^]++]]9/^]321033  sTMaO@u//zdU+UkU-QmQ-9m9}99U`u``S>s>>SZsZZyPPoPZP-Pt6F*I%*%-+$$ LLIK"I7KK7K7NFAIINN N@NNN!HN@HN-I,,XIA AAA@D"&HA7777ySjSSSwhS]72Q-' Q?2/39]]]]]]qq]]]]]]]/+]3//++]q29999//r10]]]]]]]]]]]]]]]]]]]]]]]2.#"#".'732>54.'.54>7.5464.'>LOlI.DT.}2Sm;DpF7R61O7:pk]uO 6Nd9:fL-9_{AAhA ;T5*K9!5Xq=:Y<1Rl<6]D'?bE-:" OG-@. .IjL-WI7 3@Q3IuS,@hM7C% (A/6H3$.IiJ-SG5.@P00E3#!4E'.B0"/F-Z{H@ H@H@H;- 9,0H+{o[O;/?@H@H/++]_qqqqqqqqqqrr+_rrrrrrr^]]]32/++++1053!53ӥø1[@oQ II*I EE*EL<9/I/6(F(6$F$9IZZ5QEQ:=446.F.6)F)9#I#9I2Q=_GoGG=G=0@ @@DH&o<7BWLRLBBBBBBBBLLLpLLLLBLBL!+??99//]q]q33/q/+]q99//]310]]]]]]]]]]]]q]]q#".54>324.#"32>%32>7#".54>32.#"4^dc^44^dq\-RtWccWtR-!CdC1K8's:RoKeb00abKpP7r &7H/Ec@d^44^dd^4rVsR-c䂃b-QsYHxV0-7#+Q?&@r^ao;$;K'!2&.Sv2A@-( H.( H( H H@ H3'' / 88@H8d8t88P88@ H8?@&HCC@3 H9 99 H   #33** P?3/]3/]29/]]3+]]]+]/+3//+_]]]+q332/]10+++++".54>?54.#"'>323267#".'#'2>=5V>!3Vq>'8#CQ +KlGDmM*#  *)9&&30P9 )J7 :8R4E\8<.<#;L /R>#<_B:2h'3MFo"7G%A 4+8AS q@Tj z j z jzjz_  @ `   _ ` /o/]32/]qq/]]q10]]]]%53 !53 vRTPQm?sm?sdG3@ P@ H?/+]]]/]]10%!5!1?H==$=:@^ H9/I/6(F(6$F$9I= H6.F.6)F)9#I#9IEE3>>E?E56@;;2??6?6?0@ @@<H&o226>4E DDD7666777p76E77E6!+??9///]q]]23//q/+]q99//833/293]10]]]]+]]]]+]#".54>324.#"32>##!24&+3264^dc^44^dq\-RtWccWtR-Rǡ3hUݟ_QPTd^44^dd^4rVsR-c䂃b-QsP?~of{PEHU| ///10!5!|s^z\'B H @! H H H   #?/]10++++#".54>324.#"32>-Ni;;hN..Nh;;iN-m0A&%A00A%&A0y;hM--Mh;54&#"'>32!+XdgR4GJDX.LkDAgG%6Sf_N3g=`QHIP1>KID3W@%!dVKIJ*q'5@ffV f Y"i"*@P H H0--- ` `"### @%H1 i"H"X""( G  ?3]?3]]9/9/+]3/q/]q2/9/910++]]]]#".'732654.+532>54&#"'>32WtI$ XUMS%8C=9=2 JGDT2Of;EhF#VZ4K0t'@Q+ CEHL-6 m 5(3!tpqP`52_W3#-XYT]2f~&@@&H/+]/^]1053wN~@ H HFV H@> H 0/o@ H P`p/]/9/+/]^]qr9/3]210++]++#"&'532>54&#*73AhK-1%)8#=HAk'^^)C0b %(dQP3} K@, 0`   0o ?2?33/3/]3/]/]2/]10]535733P{3klxk#  H @+ H  H  H$4d@& H@!H%p%%/% P ?3/]]]]/+/+]_]]q10++++#"&54>324.#"32>Ӱ+WX]T'2H00K33F+1K4ɾ[e55d\SnABnRTnBBnS @deue u eueu   p  ? o    p?  /o/]32/]]]q/]]]qqr10]]]]%#5 53#5 53ΨRRݪROot?ot?8N&y'@ p `   ?55]]]]58u&y'r/@o/ p `   3@ H?5+]]]]5]]5IN' 's.!@p`S@ H?55+]]]5V:%)@pyz##z$$Td:Jz H '''((F_@733267#".#5%>ORO?''>NPM<%*MmC Cyzr{@q2GlUC<:DS7EhP?99FX;;\? z TpA8gdR&$N&%+5+5R&$@ &L%+5+5R&$`@ &%+5+5R&$^@ &,%+5+5R&$l@ &%+55+55R&$P@ 8%+55?55@VtrVfsUem\)    Z_ _ _ _???29/9//3323/399/]99//q10]]]]]]]]]!!#!!!!!#! E !d<#2:3&3hNy&&x :0(%+5&(? &  %+5+5&(@  &(  %+5+5&(w & %+5+5&(y & %+55+55 &,&%+5+56&,F@ &E%+5+5h&,@ & %+5+54&,@ &%+55+55e!p@Eu [ [Z[  Z@#Z___??9/q32/33/2q9/10]]]]]]]3!2#!#%4.#!!!!2>ңojR{j:oN!`Q]H˂=9H &1@ & +%+5+5a&2(&ش), %+5+5a&2%@ (&%(+ %+5+5a&2@ )&.( %+5+5a&2(&1? %+5+5a&2(&,* %+55+55s H@H H HH@HHH@HH H@H /q/]]q10++++++++++++ 7   bh^^i`fJb`g_iiaG'3@Y,%T!e{lZi   tcU2[2r++T+&T&U%JZzd k ,([@5 5([ +#/_#_ ?3?399/]]]]q9910]]]]]]]]]]]]]]]]]]]]]]]#"&'#7&546$32734&'32>%.#"_QxXV\}RyUW11;;]{;23;\~?ǥh:6a  e86^pH,/V}qKU*.P)&8&%+5+5)&8@ &%%+5+5)&8@ & %+5+5)&8&%+55+55-)&<@  &A %+5+5_@?t{Z0 @ Z@__    ??99///^]22/]]q10]]]#!#3!24&#!!2>;y{b}|>RyO&XxG54.#"#4>32)W^P7CJN%\b6Q_Q6!1:1!!?Z9DkI'?xnfi5!3:3!7R_R7'BsU1 VO8M>9IbI3I:04?+%>-#MzXvp6.Pm>=ZE5/0&;9@UrWs&DCB&CF$%+5+5Ws&DtT@ B& BE$%+5+5Ws&DKC&HB$%+5+5Ws&DRB&KY$%+5+5Ws{&DiB&ʴFD$%+55+55Wss&DPG&ȴLB$%+55+55BN>OX@`6z${:ueDuDD|VjV~QjQeu)/),( H 5XF!OOO_OOOOP I =G@P/P?PPPZ,G-@H--GG@ H>PPP5@+I5SP8?Q!!J2,+,,,'P2JPP   ?3/]]?2?3/]]9/?2+9//+3/+]q2/9/]329910]+]]]]]]]]]]]]3267# #"&54>?54.#"'>32>32%32>5%.#""FmNu=flfJf]&C[ku<9X=6X@' :ip1?jo/P(QLB1d]ZS(-`Q6Rb7^H--[I/3]G*GlN3 ;C^:'C3@kN+FEJAXz3I3Wa?bt5īJbWNN&Fx (0( %+5W&HC&&'*%+5+5W&Htp@ &&T&)%+5+5W&HK@ '&,&%+5+5W{&Hi@ &&*(%+55+55 &C&´%+5+5/&t?@ &?%+5+5i&K@ & %+5+55{&i@ &%+55+55V''9@^d3d8k*k0 %5E22#G(@ (@H((((;2G-P P  @ HR$4D  5P??99//]]]+]33/9/]]q9/9+99/]910]]]]]]]".54>32.'57.'3%4.#"32>6}v84tGu++sL8xB-S*2QX/9x!GqPQsI!QvK$IokK VEr^-N#3p\JyzĊJ^Z,-\[,Z&QR@ &&/=$%+5+5V&RC#&$'%+5+5V&Rtg@ #&I#&%+5+5V&RK@ $&)#%+5+5V&RR@ #& ,:%+5+5V{&Ri@ #&'%%+55+55A$u K@0 _ ?_o @O?]]/]/]]]9/3210535!53ި,\"-@]u!!uz&&z,,BMDK &#G@/#G   @  ////// //@ H%)PP?3?399+]]]q/^]q]q9910]]]]]]]]]#"&'#7.5!2734&'32>%.#"XaEpN*%hBEoN)02tDt0.-iEwDm,1''b~U1-$)c&XC&&'*$%+5+5&XtW@ &&5&)$%+5+5&XK'&,&$%+5+5{&Xi&&*($%+55+55W&\t@  &6 #%+5+5W"6m@Lf4v4i&y&IYF V )&G@##8-!F""0"""!2P(P ??2?2?/^]22]10]]]]]]33>32#"&'##4.#"32>@Re?p]((]pt.;bJ54.#"52z{2,>`EGmI&&JkFB`@hZ6Zb +/* )'H<+ %05ppg0.gxsb+.f&(MzN & %+5+5WS&HM@ &&'&%+5+5&( & %+5+5W&HN@ &&+7%+5+5&(O% &  %+5+5W&HOD &(%+5U&(QP ´ %+5WUN&HQ} 22 %+5&(o & %+5+5W&HL&&(.%+5+5g&*@ /&"4.#%+5+5VW&JK@ G&LF)%+5+5g&*@ .&'3;#%+5+5VW&JN@ F&KW)%+5+5g&*O5%@ .&'.0#%+5+5VW&JO- FH)%+5gN&*N .2.#%+5VW &J8O&FJ)%+5+5 &+@  &  %+5+5>&K@#&(" %+5+5@H ZZ ;8DD0p @$H/_ P`_@ ?2?39/]q]2222]+]q/^]_]qqqrrr^]]3322/^]332210!!##5353!533#5!fs- )@B H! F@P   + $F0++++++p++@H#Q  P H?+2?3?9/32+]]qr/^]q3322]q910^]+>32#4.#"##5353!!=FTd>hM0XF@gI(,Y7M28eTWEhE#.TxK!B8'&,@ & %+5+5&R@ & %+5+5 1&,MN@ &%+5+5 1S&M@ &%+5+5l&,@ & %+5+5l&N@ & %+5+5\U&,Q %+5U}&LQ@ %+5]|&,O'%@ &%+5+5v:@F$ 4 @7H@4 t`@H$4HHH@&Hdt uy|HnqH@cfH0$CFH >@ 8;H@*-0H+k{@ 0 @@ H??^]+]]q_qqqr+r+^]+qqqq+++^]qqqq+r++^]+]]]]+qqqqrrrrrrr+^]]9/^]1033´:I&,-W&LM@o0]55]]]55 &-7@ &%+5+5W/@ H( H@1 H;@ H$F   $ D  @ H@H@3H@P_o 0@O@9H_ /?o?o@eORH/?O=@58Hp@#&HOp@/? P??/]3/]]]qq+qrr+^]]]]+qrrr^]]qqqq+r^]]]qqrr+++^]_]9/^]3//]+]q+]10++_]]"&'532>53#'##53M"A $ &1 6]ihW+C.@>jN-nN?&.ʹ  %+5N&NN  %+5: @H{tV f {YiC :* z,  p  P   @( H F0 ?  ?2?39]]/^]2/+]q839/]893310]]]]]]]]]]]!#33 0Il~: //&/&^ %+5+5[>&ON@ &K%+5+5N/&/ %+5~NG&O%+5/&/@  %+5?5i&O$KA@@H@H@HH@ H@ H  %+5?5++++++/&/O _%+5&OOBT%+5/ w@1ydtVV Z  @` H @H    _??9/]]9++/]q/3210qrqr]]!!573%hyUU f@*'' F @ p  @H H O??9/]9++]]]9/^]332210qq35737zz||DDXHGz &1@ &I%+5+5&Qt@ &&a&)$%+5+5N &1%+5NN&Q[ *&$%+5 &1&%+5+5&QL&&(.$%+5+5P&Qb 47@5)))0 H/@[ H*6:6663'Z@3Z@Pp0P0'_-! _?2/???2/^]]]qr/]29/]310]++]]]".'732>54.#"#4.'33>328`O?%d;@N) 'QW^yF"gV|p5V(6s-A:k_Blb.>iMD%\ZL?EE=eF'@̋ВNWN5@y44Z4j4+4;4K4.@J H..1F@ `    7%F @%P+P????2/^]qr2]qqr9/10]+]]]"&'532>54.#"#4.'33>32"A $ &1 4U?@gI(>RjFZT'6]W+C.OjA-U}QS"KC0,9;/L5,\d>jN-a&2MN@ (&)( %+5+5VS&RM@ #&$#%+5+5a&2@ (&-5 %+5+5V&RN@ #&(4%+5+5a&2@ (&](1 %+55+55V"&RS @ #&g#,%+55+55a1@w f i V0Y*T//T/ ++[+Z" 0"/"O"?"_""""""@&H" -[    3___(__????9/]/]]/]/+]q99//]29910]]]]]]]]!#"$&546$32!!!!!%267."#"399Y^:94Lo L %%}}?@~j b<WJ΃єPV2N';D@fvaUZBjBl=Z=E:U:e:E4U4e4J0Z0j0J*Z*j*I &G@32%4.#"32>%.#".#IrPu=fl=?ɉqDuCwo/?*MnDErQ-/Ql>ErQ,-cT:Ug9^H--[I/[\]ZDӏ^SXz'~b')c{~b('b᫝Jbh&5&"%+5+5&Ut@  &J #%+5+5Nh&5#%+5NN&U^$ %+5h&5f&!'%+5+58&UL8 &"(%+5+5]-&6tI@ @&[@C%+5+59&Vt9@ 8&]8; %+5+5]&6KrG@ A&F@%+5+59&VK@ 9&>8 %+5+5]N&6x (H@%+59NK&Vx @8 %+5]&6s@ @&BH%+5+59&VL@ 8&:@ %+5+5.N'x[7N*,&xGW.&7!& %+5+5&WK%+55.e@>     /  @H Z   _ _  ??9/322/]32+]q9+M9_^]10!!#!5!!5!&8P@ &$%+55+55s&XP@ +&0&$%+55+55)&8@ &Q#%+55+55&XS@ &&d&/$%+55+55U)&8Q (g''%3H3H3H++++5U:&XQW 22%+5 &:y0&5/.%+5+5&ZK,&1+*%+5+5-)&<[ & %+5+5W&\K@ !&& %+5+5-)&<h@  & %+55+55A&=@  &J %+5+51&]t5@  &] %+5+5A&=O|%@  & %+5+51&]O  %+5A&=8@  & %+5+51&]L & %+5+5}س H@8 Ho  F0p@"%HOpP??]]q+qqrrrrrrrr/^]2/]10++!#4>32.#">;fQ E-(3 ;eK+)<'N@kzYiy U e u 6 &&"2r%5P&6F  _ P  Q //]9/32/q333qqq/10]]]]]]]]]]].#"3###737>32>.!  (GmQ R#  (@--;fL+ R>'=C$@z@@fvVf@ H H H  & '  (DBBB>2>>>/ >>  Zjz 0 EPEE0E`EEEE/E U e u  >>-p9@@@@@@ H@ '&&  9?999 /3//]]]39/32/+]9/]3//3]]]]q3/]q3]]939///]q]q]]310]+++]]]#!#&'.54>32.'!4.#"32>573&!á~$!&&BX22XB&$11$$ 1$p-O Ds O--O;"";O$J<))>I$_w,!!,,# #,#Ws>&D'PUtcZ#@e&jm$%ԴLB$%+55+5+55&& %+5+5B&t@ Y&IY\=%+5+5G&K@ 4&I47 %+5+5,&t@ .&^.1%+5+5]N'69NK')V.N'7N*,&sW B@v x@ H@/?/]3/]+]10]]#'##53ih B@vx@ H@/?/]2/]+]10]]#53373hi3XSQ@;[k4D H@!H/?@H@H/++]_q++/]]]/]q10!5!X%wI@3O@@73)JtT2u'8H**G8&u 2St3Up=+;$$;*=pU3 P@ @HS?/+1053 3s'Y@ H  H H@* H@_  #/?O/]]/]10++++#".54>324.#"32>&BX22XB&&BX22XB&l$11$$11$2XB&&BX22XA&&AX21$$11&&1PUL@7 H  H H _ @ H  P`p/]q/+/]q210+++#"&54>733267G(ij"054+1-:p fU/O=* -;F'*0 M@ H  H))9Yi@H@H Щ 9@H{I@H6}o-=M H[k{H &fvn@@`emHpRb@"2Rbr$4Ddt@ <@H;@95:Hdt0@P$p@HTdt@ H@ $'H@!HD0 @+ H @@H/?/]2+]q3//]+]q_qq+q++]]+]qqqrrrrr+_^]+]]]]]qqqqqqqqqrrrrrr+^]]]]]]]q+qq+qrrrrrr^]+]qqqq+qrrr^]++]q10++".#"#>3232673*TNG76 [-J;,TNE67\+J%-%>9-_N2%-%?8,_N3 o@R f bb @?O@)H@H/?/]22/++]^]q10]]]]]]53353@@+ H) *+@p @`/]_]]/]10_]]+53E!$%A S@5 H *//     ?/]]33/2/]/]9/q]10]+53%53!53EؖB!p%R&$Tl|^ %$$HHHHHH@ H@ H?5+++++++++]5~ @ H@!HtVfD&6@Ht@$HvTd@"HFVv4&H@%Hdt6FV$@HVf$4D@w|HRb 0@p@ goHDTcfH\_HW[H@QVH$4D@CFH0$<@ 8;H@)-0H  0 H/+]]]q_qqqr+rr+^]]]+]]q++++r+^]]_]+]qqq+qqqrrrr++^]]]]]+qqqqqr+rrrr+^]]]]]]+]q+/1053'(T(|1@ q@%//]]]]5+]]5?5 '+T%|_HHHH@ Hq@%o/]]]]5+]]5?5+++++U',T|\ H @ H @ H @ Hf@%o_O//]]]]]]]5+]]5?5++++&2T|'@ *((^@ (( %/]55+]]5?5A'<Tt|@@H@H@H@HH@H@H@H@HH@H@H@H@HH@H@H@H@HH@H@H@H@H@H@H@H@H@HH@H@HHHHHHHHHHHHHHHHHHHHH~~H}}H@||H@{{H@zzHyyHxxHwwHvvH@uuHttH@ssHrrH@qqH@ppH@ooHnnH@mmHllHkkH@jjHiiH@hhH@ggH@ffHeeH@ddH@ccHbbH@aaH@``H@__H@^^H@]]H\\H@[[HZZH@YYHXXH@WWH@VVH@UUH@TTH@SSHRRHQQHPPHOOH@NNH@MMH@LLHKKHJJHIIH@HHHGGHFFHEEHDDHCCHBBH@AAH@@H??H>>H==H<@::55%_]]]]qqq5+]]5?5+A&U<@ @H@HHH@H@H@H@HHH@H@H@H@H@H@H@HH@H@H@H@HH@H@H@H@HH@H@H@H@H@ H@wwH@ssH@nnH@mmH@jjH@eeH@ddH@``H^^H@]]H@WWH@VVH@UUHTTH@ OOH@JJH@==H@88H@77H@66H@33H22H11H@00H@**H@))H@((H$$H##H@""H@H@H@HHH@H@ H@H@ H&ܴ %+555+555++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++R$%/8@(Z@0P @`_??/^]q/]10!#/8=@jzeuYV H@@ HFfvIiy _O0@H0/_ H  ?3]+?2]]/+]3/]]]]qqq39=/3310]]]]++]]]]1073!%.'># ^(RE01FR((A= +a'+@i fYV VZU *+ %%Z%!!U! +*[;o0 @P[     +_((#_#_- -]]??9//]]]/^]qqqqqrr^]9910^]]]]]]]]]]]#"$&546$324.#"32>%!!_X\\A{~?A{{;Kǥhm  efДPPәUVР|,?. N@ t{ H6  @ H HH9o0/%5*:  % 5    *:  0o0v?2?3]/]]q2]qq/]3]qq9=/3]qq3]qq]]]]10]+++]+]]%#.'&'#3N|   z?/Y#)%')#Y- 0 1Z K@1R _0 @p _ __??9//]q3/]q39910q!!!5!5}9\a2 O@(Z@Z@o   @ H_?2?+]q/]/^]10!!#!ax 3l @i t WgTd t F V f 9ggd'   0 P `  F   _  _?2?92/]]]33/3qq/^]]99//]qq3qqqqr10]]]]]]]]q]35 5!!!lmCC|.7-)<u(3 H H H@H H)Z {Zt#Z/$Dt5D555555p5`55@ H#.`  "1`  ??99//3232+]_]]qq/]q3322]]10+++++#5#".54>;53324&+32>%;#"@ŅSSŃ@CɇHGʅC08\Y++Y\84iTTiqHHu5bXXb5.+;#@ZjUeZjZjJE Zd#Z Zkd4Dd%$%4%D%%%%%%%%%`%p%T%@%%@ H"`??339/]32+_]]]]]]q/^]]qq3]q2]q10_]]]]]]!#".53;332>53+SɆC/]\88_[-DɄSTh-Pd9I9dP1hTUW9@[e$e111 H    Ht66v68v8t7767** )50( `(p((o(("[P55@EH55055[O_o 0_; '0*_)_??32]/^]]]qqr/]]+r99//]]3310]]]]]]]]+]]+]]]]267>;!5>54.#"!532.54>Z;mc*'!G`Y*=tlmt=*Y`G!'*cm;ZVj63~Ut|AA|tU~36jV4&,@ &%+55+55-) r@  H@ H @ i6FZ&Vv9IV 9Y Yy6)9 tVfB$4vbT6F$pd@$4i@tP`D Tdt0@$$DTt9p$4Td4Tp0`/  _  @ H ;K{??39]3/+]32]]_]]]]qqqqqrrrr^]]]qqqqqqqqrrrrrrrrr^]]]]]]]]]_]qqqqqqqqqqqqqrrrrrrrrrrrr^]]qqqrrr^]]qqq/^]]]q9^]]2+M2/10+_^]]+]]#3 3%53!53 ӥHH9ayVe&~T!@ <&73#.'32>7.#"KAWoFEpV? .'$  ;]B6dR= -GfFB`@8^E&'E]68?A/:gn'BA:1pg04klVsD.fWI >@D{z<<jzfvJ2Z2j2%eu%0H400@0`00@:H0404H@0+@++++++@! F00P11&9P !&P ?32??9/9/^]2]q99//+]q910]]]]]]]]]]#"&'##463232>54.#5>54.#"I5oxf8cf5#=Q.9r[8GQW+HnI&&QYq9W73#>7z0:]?C?>C?-o|A[V2@Qsjv..j.ZjZjU e r&r3C22G@.//)4 G))/P@HHoZ.0P$??99]]++2/]]q9/9932/10]]]]]]]]]]]]4.'32>".'#".54>75!`1ELIf<#IoMQpE *-) <6fO1@{sr}BI`UsVQr[L`76_7tanHDspa!SwFjN9@1%5$E$7"*% H **F000##@%0HH@B H;5G?O_@%+H;;_;0P//O/_////////'P$ P ?3?39/]q9]q/+]+++2/99//910]+]]]]]]%2>7#".54>75.54>32.#"3"6`O?i TjN`\-*H`63U="2_WvC/}K[`7aKHmB4Jr08d'G5 .TtE:_E*(@V3>jM,VcXGDUJ9F% (PE-E.V`8@u&77'|'''usd$$$$9,,<Ld666&6V6///G!(22 O@!H @2/P@H!!!!!!!0/?9]]]]+32/^]+]q2/3/9/q10]]]]]]]]]]]]]]'>54.'.54>75#!5!+Jd96oZ: ~  $B^9*YRI61Uq@ "$" >{lQ/{@O1"9XD"D>38 !&'"-! $2JdCSDFjXN#d @. H#F@P% F   0  %%p%%@H#P ???2?+]]q/^]q2]q10+4.#"#4&'33>3294U?@gI(  >RjFZT'XVOjA-U}QSDy*01//L5,\dj %@l |$$sUe|JZjsEUe     !G@@-0H' G #H0''@#H'P P P??9/]+q/+]2+q310^]]]]]]]]]]]]]]]]]#".5322>7!"!. lv>yp6*>dI*,G^B>cH*#(Ea\uy]4ؤׁ43~ԡ~3:  @ F  _o o `@P`p?p?Oj`p?`7/?o???^]]]qqrrr^]]qqqrrr^]]]]qqrrr^]]]qqrr^]]]qq9/^]q2103.53 5@F!N @<4: @r f v iyV  T F      @  F0 ?  ?2?39]]/^]2/^]q839/893q310]]]]]]]]]!#33 0Im: /!<@esjz  e u fv~lTeuVT@; HTdt]mIeu&V*:Jz  !@E!??__@#0#`### !P ??399]/^]]]]qr83/839/9910]]]]]]]]]]+]]]_]]]]]_]]_]]_]]]]]]]]]]]]'.#"'>32#.'#$*-9( #H 7WIC$cIiC $Q_A8;8<>7w:)l@7 (HZj#F"_"""""" ""+F0`+++@H)"P ?32/?3?+]/^]2^]]q210]+!.5##"&'##332>53^8EV9Rx ;bJCdC!.;;3O5@: ?|EtU/4[~Ki"LC1:#@OWgw H F@[ k { [    ; [ k  @  K[`DT DTDT[D K[`DT `DTgDT[D K[@]7K[? `DT `P/ ?3?3^]]]_]]]]qqqqqqqqrrrr^]]]qqqqqqqqr^]]]]]]qqqqqqr^]]]]]]]]qqqrrrr^]]]]]]]]qr/83^]]qr239=/+3310]_]]]#3654&'3?jMz7|Nc^:`VQw--qVjJ@}zGGe!u!!i'U2S,9nB~BBB*B , ( H II,IlI|II _%O%p%%%_o%4?F   ???O?o?????? ????@ H?*G%P *@ H*H4*9 $$$9P?22/9/]9]+]+999/]/+]q99//]22/]r3/]qr910]+]]]]]]]]]4>75.54>75+5!'>54.'.V3n}DvW32Oa/ DPLJzMpD@]@( } ";ZC?Q1 6YT@O1"9XD"D>38 !&'"-! $2JdVNRO+:0s@#5 u (H(H.P ` . #F@oP@& H22/2 HO_o"P(P???22/22]2]+]q22]/10++]".5!#>="5>3!#32>7f;R4n$' 'OE5 +36% #E;^BHJL}P  S,8  W;O/@@zeujzj-z-K[k}kJZG@1&F0011@#H1`11 P+P???]]+q/^]q2]10]]]]]]]]#".'##4>324.#"32>;?sb>bPB54.'.54>32.F6XC1  L|\5r_= ~  #Da?Bq^H2.KnaDcI6t*191Phlj*D`H9%;YD"D>38 !&',$(3D]zQ/lB",w$V:/@^ z .e.u.d*t**|!!Z!j!&l&|&J&Z&oG@ @1(G  #P+P??2/]]q^]10]]]]]]]]]]#".54>3!#".'4.'#"32>0={{{|?V~9 #+,7+"-YSk=NuL&pLJʁҊB*csNJtc*2in4a:#c@2#  H - F" """$%O%%%%%@ HP#P ?2?+]]]q9/]]33/10]+]"5>3!!32>7#".5'OE5 +36D #E+;R4  S,8  ;^B:q@>jzV)G@/! F  0  !!p!!@ H! P??3]+]]q/^]]qr210]]]]]#".5332>54.'35q{mh3uIhA!(( ;ښR2ktc2lxDx)(qUWR#-@e"e!u!!JZEU- H@6 H @PG $G+H@@/P'P+P??32?3/q/]32q2/]10]++]]]]#.54>746324&#">Jnr}C1gmE`<T\1WPDL5׌GiHύfgMrPDLyӁXP@3{T{Zj)9 H@c HtEUe&6'7GeuV'7;[{D $ @)HF5}K[k? P?3??9]]_]]]]+]]/833//^]]q833/3910]]]_]]]]]]]]++]]]]]]]]]]]%#.#"'>323 #,(* "> 0F<;$i9W6R7 >fKGW,<@Zy Hyy   Hy FFH!!!o! !!P!!!!P ??32?33/]]qqq/^]3210]+]]+]%>53#.533.W|P%;||;&O|WwIy[|zn5k5nzzZyI SO?@S!!wz:: %%*%%% *I==(. . 3G@A3G?((A0AAA@ #HAAA A@A#>>8P#. P-?32?329/9]]+]qr/]^]]99//9/910]]]]]]32>54.'7#".'##".54>732>=3srfAW5=aCmg15e_DhM44MiC_e51gmD`>4VA3R98fZRyTpeȉH$Dc@@cD$HȀe¡pTyRZf8-T{N{&i&ٴ %+55+55{&i &$" %+55+55V&RT)@ #&F#&%+5+5&T@  & # %+5+5S&T@ @&7@C(%+5+5&(yHHHHHHHHHHHHH@ H & %+55+55++++++++++++++.O-@ e%u%%@G H H* : $4 *'Z-((( Z*_+&!_(+(_??3/]??9/322/^]/]]29/10]]++]]>32#".'7326=4&#"#!5!!m5)V\5XK@o)08!TP3{xi! ]d5 .{!eowz  圜/&aq@ &! %+5+5hy*@''')))u u IF % 5 *:D,[tD+%dt@0_ "O&&&_" _ 0@p?3/]q?3/]9/q/^]_]]q3/]]]q29/]10_]]]]]]]]]]]]]]"!!32>7#"$&546$32.o|I r MmZlO(l{V[.GDfD~npH2Ri7MOd9m  e<2[F*]6|,4&,@ &%+55+55 h- &/@b9   :  y t///{(((e  H+{*zZ0'''' $ 4  @HI$4@'H I !,Z+_!!__,_???9//2/]3q+qq+q/^]q10]]+]]]]]]]]]]]]]#!!#"&'532>7!!24&#!!26 =yy`1+1oWp@ljU%>k:i\yn@t{&6Z@+ H Z  @  Z__   _???39/3//^]32/^]2/+]10]]]#!!#3!3!24&#!!26=yy¿>V}|>GWp@sT:i\y./@ eu@L H%5E Z  0  Z0p _ _ ?2?29/32]]qr/^]/]]310]+]]!4&#"#!5!!>32q5tnb#$bpv8?zm  圜 &@ &% %+5+57:&^J@ &'%+5+5h ^@@ \ Z0@@Z@    _/?3?3/]]q/^]/]]qq9/10!3!3!""hhR$@Ft{& ZP @ Z@0@#H_@    __??9/]q]+q/^]2/]]]]qqq2/10]]]]#!!!!24&#!!26=yy!~}|>oWp@H:i\y%/ahE@_ srfU e ZjaS5E\Z_$4@ H$4@H \/__/3?22?]/3+q+q/^]]]]2/10]]]]]]]]_]_]]]]]]%3#!#3>7!!2)B7,CԺ1(.6 h83Aݲ3(G)H@)uucl|l|e u !(H@#H:J)5Eu'0H(8H @ H' 7 G H@I H H H" (Z) ) 4)t))))!  @ H  D t  +  @3D+t+++/++"'`/ )!?33?339/]q329933]_]]/]83/]]]]+83/]q39/93329/93310++++]+]+]_]]]++]]]]]]]".'#&'3332>73###R-0.U0BZLQ99QLZB0U.0- U#c{DkD{c1f# {Cp<@3!|pp`eu"e"u"| Z j ;K!@z H+3Z.@%H..8Z$$$_o$$pOo0@ -H@ H3_ )#@ H##_) _ 0p H?2/+]q?3/+9/q9/++]/]]]]qq99//]_]q2/+910_]+]]]]]]]_]]_]]]".'732>54&+532654.#"'>32mv^$B[yPMzU-GG'HhAMrS8!`ilx@(Ih?CuW3E2[OM7bK,%Ed@vw{7V;(DZ1=RW-5`SDkP7 2RsI_q>{@@A H  H \)  @ P    0  \/   ?22/?33/]/^]2q/]]]q3q10++]]]]333#46767ުd3b'.('Y&,,Z:&J@ &! %+5+5@hT t TzYi H:d t P 5 E    `  Z    /  / `/ ?2?39/]29]/]q83/]29/]893310]]]]+]]]]]]32>73###9QLZB0U.0-D{c1f# {@#uUsUe@. H%5jzZ @_$4@HI$4@H I __ ???]/3q+qq+q/^]]]q10]]]+]]]]]]]]!#"&'532>7!#^1+1k0 +a2nX H H H H H H H H H @ H++++++++++3hy&.77@oZjz)UeFdtVyTdFqVf:J  ?Oo@ _?2?3/99/8]22/8]39910]]]]]]]]]]]]]]]]]]]]]]#".'732>?3 3/QZmK B@:Q#S0%:59&1>XR( %4ZDYv(3@\FVfIYi;3;5+&+5'&')ZZ#Z.O  5p555O55$/`  "1`  ??99//3232]]]q/]]]332210]]]]]]]]+#5#".54>;53324&+32>%;#"@Ņ((Ń@CɇʅC \Y+W+Y\ iTTiqHHu5bXXb5.+;h J@/\ Z@pZ@   _/?2/?3/]/^]/]]q2/10%#!3!3Ŵ@F( H H*:JZ0@po@ Z   @   @H_/  ?3/?9/]32+]q/^]]/]]]]qqq310]++]#".5332>73#$^ks8rl45nh\# /\YR{l  r@LZ Z$ {dZD    p @   _?2/?33]]_]]]]]/^]/]]]]]qq9/1033!3!3h/}@T{T\Z Z ; K [ {     o   Z   _/?2/2/?33/]/^]]]]_]]q9/2/]]]10%#!3!3!3/-ӺҺ.d@Dt{&@Z/ @Z  _ __ ??9//]2/^]]]q]10]]]]!2#!!5!4&#!!26B}|>=yy5s3-:iZWp@ym@Lt{ & Z@PpZ @ Z@@ H_ _?3/?3/9/+]/^]2/]]]q/]]10]]]]#!3!24&#!!263=yy~}|>oWp@:i\yk@Lt{ & Z @` Z@_ _??9/]]/^]2/]]]q10]]]]#!3!24&#!!26=yy~}|>oWp@:i`yiy*@Qssesesee e jZ!!  Z  (($$&[ #p####@##@? H#P` #_&&&& _ 0@pO_ ?3/]?3/]q9/q/]]q3/+]]]q39/10]]]]]]]]]]]]]]"'6$32#".'732>7!5!.XfEG.[Vvq)QmWmM r I|*F[2324.#"32>ZZٿ* c蒟W3!#!3!!"`[T'B~xI%MwS;LxT,_NlC^h7I9bH)?^WsNDx?8@E,z--fvTT [Z#z##Z/j//{..I.i.**G@:0:::@ #H4 G @#H4P*0)@)))P?/]q39/2/+]9+]q]q2/10]]]]]]]]]]4.#"32>2#".54>7>7>'IhAErQ,,Mi>EpN*q{A:Γ9d[V+V[N|^C,Ca~r[%'\prY$$XFs   !2Ile7aH):$/@ *%*@! H  &,GG@/1@11@2#H1?11&F0 $Q&&&&&%PP??9/q9/^]q2]+q]q9/9]10+]]]2#!32>54.+32>54&#4LpD#hQ5Q:% #=Z=NuN':K,C/2F,'=+RL:6@#@'H0F0P??/^]q3/]+10!#:I:h:@A f"r"""yfv""b$DTI @*H F@o @ I PP  /3?22?/3333]]2/+10]]]]]]]]]]]]]]]]!!#!#3>7!3B100Fңw::9ˆ2h2;IWNHS:'a@X"  ZjzUeuJ!!!E*:% 5 " &F'  ' @1 ''!     P ?    _  0  @@/?)))o))P)?) ))))O)_)0)"@% H%PO_O '!?33?339/^]q3299+33]]]]qqqqqqr/]qr83/]]]]qqqqqqr839/39/8933]29/893]310]]]]]]]]]]]]]]"&'#.'3332>?3###SAaB-ؼ0A4004A0-BaA PUBEM\2&2\MBU #1^N7@55&&%&--F((3G I@@V$H    99I@ H-P#P#P`p ?2/]]q?3/]q9/q9/+]]]q99//]+2/9q10]]"&'732654.#52>54&#"'>32ʧ-~g`q7\x@@rV1c]#F<* >aNUb5,GX-8dK+1e},NV^[;N-&C4JV!7*Db?*Lh?9X=$)C]:EwW1:@  @k7#<Ŭ:MRJe9<9:&@ &!%+5+5:@u9y @{ H x /OI8 yG 6   F09I  O0/ P?O??2/?3/9/^]q2/8]]]]]qr3q/]29/89qq3]3qq]10]]]+]]32>?3###04A0-BaA:&2\MBU # :@*tUeu&frdV@= Ht HF@@`p6@H  PP ???/]3]]+3q3]]qr]10+]]+]]]]]]]]]]]!!#"&'532>7!h*,3G^A0 &#3(!"&ؕ]**^:@ k{d t @z7!#4>7% # <=9,:k?HH?<@<: @0F@O9/o    @1H F   0  P? ?2?39/^]qr/]q2+]qr]qr^]210!3#!#B紴:6:VNR:m@PF@O9/o   / F0P?3?/^]q]]qr]qr^]10#!#Ǵ/:I:WMSWNF#:H@+F _ 0 @ / P?2?]]]]9/^]]+M10!!#!#d:IW:\VW>5J_@ ]]]NHHH9HmR3@K H/  H 6G@ KG$DU' HA&$Dd4aa@4#HaTadaaa@a a0aaa&-PFP1[;P ??32?32?]]]_]]]+q/^]q3322]+M10_^]+]+]+++]#"&'##467##"3234.533>3232>754.#"4.#"32>>&Vei*.op-.reV&8U<<^A""@^=9V9n4X@5\F(#A\54&+ 4hggE`;tpJvR,61G.^W2: i H@: HG F@ F @  Q   O    Q ?3?39/^]q/]2]9/10++2#!332>54&+3&4hggE`;t<pJvR,:61G.^W ::  H@V HG@//?_@#'H F  @  Q   O   Q ??9/^]q/]q2+]qr]10++2#!332>54&+84hgUE`;tpJvR,:61G.^W7N(@Wv"vkk  G@    *FF@ H P  P$ `p@"H$/@ HP?3/+]?3/+]9/q/+qr3/]q29/]10]]]]]732>7!5!.#"'>32#".7dIgD"c"CgImv Bi]ZQ3rcj=; lh5aRZX,i[DtT05أx͗V6\zN'@Uy%%t!!vyG G@) F   0  P P/  #P???9/]?/^]q2]9/^]310]]]]]#".'##33!24.#"32>fsA޴!׽#Ca=?cF%'F^8>dF&>:6~b')c{~b('b: @Du H (+H %H4+)0 H  HG  F@   @[kQ/Q  ?3?9/]2/]83]q39/9310++]]q+q++] #.5463!##";Xvxk|6z\]^]W{&Hi@ &&*(%+55+55 W9@ 1 H@V H$$9F@P---; 9F0;;;;;;p;;;9(P!3P Q H??+9/322??]]qr/^]q3322]q9/10^]++]3#5353!!3>32#"&'532>54.#",FTd>hM6]H"A $ &1 0XF@gI(!B8'7M28eT>jN-+C.EhE#.TxK&t@ &U %+5+5WN(@qtt/*?$F#F$ $$@$`$$$$$$GP P /@ H  P## #`#p#####"H##?2/+]?3/+]9/q/]2/^]q3/9/]]10]]]]".54>32.#"!!32674r3QZ]iB vmIgC"c#DgJd =jVx؀50TtD[i,XZRa5gm Cz\69KV=&OԵ @88H @ 77H @66H 55H @ 44H @22H 11H @ 00H @**H ))H @ ((H @&&H %%H $$H ##H @""H @H @ H11H@ ()H@HH@ H%+5+]++++55++++++++++++++++++%{&i&%+55+55W=M :"-*@Ruj9Huj 9  H W g w  Hm Hu6F H@ H"#F@  G))@  H)/P//@]#H/0/m  ?       ?  j )  5   -Q"""""O""" P P#Q ???9/^]q/3]]qq]q]]]]]qq]]+q+]9/]210++]]]+q+]]+qq]]+qq]]]2#!!#"&'532>7!32>54&+M4hg>e*,3G^A0 &#3(!"&E`;tpJvR,ؕ]**^61G.^W,: H@ HF G@!P!!@2#H!F @Q POQ ?2??9/^]q3//]2]+q]9/3210++32#!!#3!32>54&+4hgfNE`;t:6JvR,:6E1G.^W )@U H! F@P   +# F0++++++p+++#Q  P H?+2?3?9/32]]qr/^]q3322]q910^]+>32#4.#"##5353!!=FTd>hM0XF@gI(,Y7M28eTWEhE#.TxK!B8'&t?@ &Q%+5+5W&\@  & %-%+5+5h: }@Y I O & F@O9/o F0  p  P/3?3/]qr/^]q]qr^]9/^]1033!3!#:Ih7@%Z@F@_??3/^]]/]103!# 8@$I0 F0P???/^]q3/]10!#!3!B٣8: &:A/&03.%+5+5&ZCH+&,/*%+5+5 &:@ /&K/2.%+5+5&Zt&@ +&]+.*%+5+5 &:@ /&31.%+55+55{&Zi@ +&/-*%+55+55-)&<" & %+5+5W&\Ci &!$%+5+5[Op/Ͱ/ܰͰ015![Р[Op/Ͱ/ܰͰ015![РrL+@?O/?o@&+H/+]q//105!rÉL+@?O/?o@&+H/+]q//105!ÉL+@?O/?o@&+H/+]q//105!ÉN&BBH /@ H@ H @  H ?/+2+10+54>733 y-2Y4VKB AAH 4 H  H @  H  ?/+3+10+#>5#53H {-1X5VKB A?H 3 H  H @  H  //+3+10+%#>5#53H {-1X35WKB AA~G /@ H@ H @  H  ?/+2+10+##.=AX1-{ ?A BKV5K_ Y@: H H@ H @ H    ?32/2]/^]]2+2+10++54>733!54>733 z-1X y-2Y4VKB AAÒ4VKB AAK_ k H@ H  @ H    @ H?  ?32/2]/]3+^]]2+10++#>5#53#>5#53_ y-1X {-1X5VKB AAÑ5VKB AAK_ h H@ H  @ H    @ H  /32/2/]/3+^]]2+10++%#>5#53#>5#53_ y-1X {-1X35WKB AAÐ5WKB AAv @@%  /o  /?/]q33/22/10#53%s`arxsV@2      ?//]3/3322/21053%%%%#5hihixxGQ|I H @' H H H?  0/]]]/]]]10++++#".54>32|-Lf:9cK++Kc9:fL-:fM,,Mf:9dJ++Jd V@= 0`0@`/ /3322/]]/^]q9/10!53!53!53(7+?Sg{@ vyf@ H` H\ HV H>@ H8 H4 H. H@ H H  H@  HJ;1@v y 1f@&@@@@@@rcYihh&hhhhvhYhFh)hhhhhyhkhVh9hhh&h h " )IYy"@-1H@H}}}}y}k}]}I};}-} }}}}}}}}}}}i}[}M}6})} }}}}}}}}}{}f}K}=} }}}}}}k}}]}9}+}} }}}}}}{}}Y} };}K}}}}}}{}}f};}K} }}}}}}}}i}y}]}9}I}+}}}}}@}}{}f}I}6} }}i}}}}}y}k}I};}} }}}}}}}y}[}k}9}}+}}}}}}y}k}9}&} }8}}}}}}Y}F})}}}}}}}}{}d}K}?}}}}}}}}p}_}@}}}mTw^E,O6'?????^]]]]]]]_]]]qqqqqqq_qqqqqrrrrrrrrrr^]]]]]]]]]qqqqqqqqqqrrrrrrrrrrr^]]]]]]]]]]qqqqqqqqqqrrrrrrrrr^]]]]]qqqqqqqqqrrrrrrrrrr^]]]]]]]]]]]]]qqqqqqqqqqq/++^]/^]]]]]]]qqqqqqqrr9/]q99//^]]883310++++++++++++_]]!#3%2#".54>4.#"32>2#".54>4.#"32>2#".54>4.#"32>0?lP..Qn%7#&:''8%"6'?lP..Qn%7#&:''8%"6'?lP..Qn%7#&:''8%"6' !SjfV&%VgjS!Ib:;aIGa;;a!SjfV&%VgjS!Ib:;aIGa;;a!SjfV&%VgjS!Ib:;aIGa;;aUzY(@ H H/0?/]]10++3U@ĞzUz&V `]5XQH@7jzjzO_0@`p/o/]/]q10]]%53 PQm?sYRB@0eueupo/o/]/]]q10]]%#5 53RQot?G&@ //]55]55T ///10!5!+u`b-o@@ H@ H??/++]8/]810!#3qe!o@ H $  !$ @& HK[@H@H/?/_]]]++]3/]+]22/]/]210+4.#"#4.533>32 /#HUw&1@*na.=%d^.("# . lyO.j@E  0Pp \  Q   _?O? _ ??9/^]]q]q22/3322/]q99//10!!!!##53!gQn{$Ձ:P:@Q::%5(,0 o4n+'0n O_o:o  0Pp0@FH*Q. Q+  @*-H   'o/_o4#s)4t%:::?3]]2?3]9/]q3]+]222/+^]qr/]9/33229/339910]]#!5>=#535#5354>32.#"!!!!!2>7P 9YsCFYV0cgF{cG '5A$rphh,?(&C5%7PuM%.y\f7:V994$s}8j\G*C0g/b@Gu[[[IkIIDmD[DiRiP}[k}[kT9d969F9%a5aEaL H1@^ H H -RIQQ0HAF'K%)H" 9I8f888YHK_?K_KKK@'H_KK@APA`AAAA@ HAF d[_HdPXHdFJHd;>Hd05Hd@ HOd_dodd HY@GHAHYAN54.'.54632.#"=yy+}|>iq{#J0i]ho5n)7(跪Ky\=cX(D1">W41`M/-6 9P00dR4\uD=oaԒ {zŃbNIbx6X@=: () 5O;pwit& U$ 6WV=@DIj&:+J+z++$;4;D;t;;.779-3n%n$$n@`@^H0Q9Q6@'/H-/?/?/(s%|%%%*%%ss% ?3]]?3]]]9/]qr3]+q222/+]q3//3/229/10]]]+%267#".'#73.5467#73>32.#"!!!!dx ?gaxyE (x(I{sag? yjDjO2 (c(l *Mr~d[DvW2Mr.5zC2WvD[d'Wc/%Qd9E+O@vy/B@  H< H H @ H H HJII45?@>,?@ H?"  P`&441:MJD'????33]/]/+99//883/3310++++++]]]#".54>32#34.#"32>3267#".54>32.#"3WtBBsU10VuDBsU2;+?(*@,+?)'?,/K6E^ -MoH^R&;a|ADjL0 SKlW}i--h~g))g1cN !Nb_O""O|K|Z2RW 6cL-Ey`g*(F^7 HU~'7@ 5(HH@CH H H( (`(p((((((333##  "&H @ H O93- "-/?9/9/9999]/++]3]2^]3/]]q2/310]]+++++]%2673#"&=5>74>324.#">3DExmo B"#B;bH4O5,OnB *s( '1M6Nhm IK;lS1*NoEcv&9S64U=!$=Q.!h.#7;@| H= r E U e  & !!%!  /=:I$I9.I$$$/$$$ I0@P )$H@H 3999@#,H98 @$H @H 8?3++/+]?33++?/]q22/]]]99//]]332]10]]]]]]]]]]+]!#3&'.53#"&54>324.#"32>5!&06+WX]T'/E-.G00C).H2{,,&Y'XR(.'b3ɾ[e55d\Qk@@kPRl??lz'/@ H @HYiy% H@I H,)*@@//**@*P**'%o(, * *P***%-?33]22/]3/]]9/]210++]+]+5#.'&'#367>53##5!l (z @&,7  3)"hool9@_e$e111 H    Ht66v68v8t7767** )50(  (`(p((/o(("[55@AH555055[?Oo0 '0*_)_??32/^]]q/]]+r99//]]3310]]]]]]]]+]]+]]]]267>;!5>54.#"!532.54>Z;mc*'!G`Y*=tlmt=*Y`G!'*cm;ZVj63~Ut|AA|tU~36jVX|H -R@2Z @!!_!P!`!p!!/ /---' ?2]]?9//]2]]qq210]".54>32!32>7.#"kƆE__pŽQ@NX.Kt]L#H$Tm;M\53WJ<"]oՋBO҂-#73!;H:RR:H;)"bADp*$*pDAb"V@ @ /299/105>73.'#"bADp*$*pDAb"V;H:RR:H;#d^D@  //29910.'3#>7!5;H:RR:H;#"bADp*$*pDAb"V@ @ /299/10%>7#.'53+"bADp*$*pDAb"V;H:RR:H;d^D$@@ //29929910#.'5>73!.'3#>7;H:RR:H;;H:RR:H;)"bADp*$*pDAb""bADp*$*pDAb"&@@@ /299299/105>73.'>7#.'5"bADp*$*pDAb""bADp*$*pDAb";H:RR:H;;H:RR:H;H#(@#  /299299/3210!!5>73.'>7#.'5 "bADp*$*pDAb""bADp*$*pDAb"hPX;H:RR:H;;H:RR:H;8/E@]z!!DHUeJZzJ8Z8C8 H:C* : J %-5--- '0'''00(00F@`@@H@ HG323>54&#"7>32.#"32>  `a]N#/IfS*M@2;:7$*tCq^)$3@$5VC1 *A,BlS8.hjj0ΐM?kK32>32%"32>54..#"326],RsFaF KTZ.EsS.,RtG^CKT^3ErQ-Fw83wM+G33G]3wN+F10G/FxNNj>?fH'7dYQh<>fI(7e~(F^66\E'(F^63]E)~` //103!!^j8^#@K[K[ //3//10]]4>32#4.#"Dzbc{Fg5_NN^4tLLtbl98ldN#@ ""*"% %%%%%%@HL%/%?% %%@H%@H%%)%9% %%%%@Hk%{%%]%K%)%9%% %%%Hm%%H %%H%y%%%K%[%k%%H%%%}%%k%]%&%6%F%%%%%%p%@nwzH%@ekH%v%% %%)%%%@ORH%JNH%)% %%%%%%%%%54>32.#"$$K>#3B'2Z}K"K=$3B'2Y|N %@T0^V( (AT,B^V)8P,!C@$ H HA HB0 H=0 H*г H0@ H H 0 H0 H Hг HгH@) H?0P@`- @ H /E;@-#@)(1 1011@ '323267"&'.#"5>323267(EIAk-&A<82Q(PMK%233E{4 ;=D(EIAk-&A<82Q(PMK%233E{4 ;=D+ !%/  3+Z,  &.  2* A7$@l5: < *      dtP0 `o  _ o   /_o P   /]]3]22222/]q3/]q_qq3910_]]]]##5!!5!3!!!7 =X!l$ܔdGP 1@  ??/]/]9//33/33105!5!5!d8d?$ {@H(H(H@?H 0P @`@ HO_@PP/]33]]//+3//]q310]+]+++5 5!AZw쑑A$ y@H(H(H@>H 0P @`@ H@PO_P/]]]33//+3/]q310]+]+++75 55!AZXXu7 #@i y iy///10]]3 %! {RVdG////107!!d>T"  H  ///10+#47632#"'.'&#"TR?K3% !$ V{{?0(4 ''#i  H ///10+3#".54>3232765"Z(g>2%!%}86'"%)j%?33105! %iH??103#ؑHK"??310!!#(in"??3105!# (%%H"??3103!!Hn%H"??3105!3 %H' ???23103!!#iHnnH'???33105!3# %K( ?2?33105!!# i%n%H( ?3?33105!3! %nH 3  @  ?32??3223105!3!!# i%nnqj% ??3233105!5! AّH*A ?2?3103#3#ّhHK Kj 1  ???23310!!!!#(iijב" 3     ?3?2310!###בnn#j ? A    ??3?3310!!#!!#htjo"j 1    ???333105!5!5!# i(qב) 4A    ?2?33105!### ܑב%nj ? A    ??3?3310#!5#!5!ґttj)F)ޑqH 1   ???233103!!!!iH"ב%H 4 A    ?3?33103!!33A$Hn#nqH ?  A    ?2??33103!!3!!ّK$hH"qH 2    ???332105!5!5!3 iqב)%H 4A    ?3?3310!5!333$ב%nqH ?A      ??3?3310!5!3!3!5!$KqFH 6    ????2233103!!!!#iiH"ב"H 8     ??3?323103!!#3#AHnn KH I A     ?3?3??223310#3!!#3!!jt " "H 8  @   ????3322105!5!5!3# iqבKH ;A   @ ??3?332105!3#3# 㑑h%K#KH I  A     ?3??3?2233103#3!5!#!5!A㑑tHK )ޑj 9     ?2??3333105!!#5! iiq"h :   @  ?22?333105!!### ב%nnj J    ?3?32?333310#!5!3!!#!5jtttAޑ"בqH :@     ?3??3333105!3!5! Aّ"%H :  @  ?33?333105!333! ב%nnqH L@  A      ?3?32?3333103!!3!5!5!AH"oHL  @    ?32?32??33222233105!5!5!3!!!!# iiiqב"ב"HM  @     ?3?3322?3322223103!!###!5!33AבHnnnnH ]     ?3?32?3?3222332233103!!#!5!3!!#3!5!AבttH"ޑ" mH/?3310!!Umm?/3310!!UH??3310!!U H??/310!!* H??/310!!* *g #'+/37;?CGKOSW[_cgkosw{1mUE- y@ xlTD, xeM5@ dL4qYA)}@ |pX@(|aQ9 @ `P8u]=%@!t\<$x||xiI1!@hH0 gckhd`h_[WT\XTSOKHPLHC?GD@.)'.@D%T%K![!K[DT #//10]]]]4>32#".732>54.#"Fz^^{GG{^^zFV9bLLc::cLLb9d^{GG{^^zFFz^Lc99cLLc::c# /]/102#"'&5467>76jnk5RS4l9R46n9:m64R9) //103!32>54.#")Ex[[xEEx[[xE}A[xEEx[[xEEx)+"@" '//103!4>32#".'32>54.#")Q:cKKc::cKKc:MEx[[xEEx[[xE}AKc::cKKc::cK[xEEx[[xEExscu" //10#"'.5476324'&#"3276c%%%V3eK#%HJfgGJL33FF3331HH13}5V%#%H%V5fHJJGgF3333FE6116y!-9D@] $ t $t+{+{D"(?4.(.(.1%+7+>:h:Y:G:::b^0H[[׀ؙٙW .. -- .. --#_[)4`@7*/$'!04h4Y4K4=442-_oO-_--- /99//]^]3]]]]332/99//3310#"'&54676324&#"326%4&#"326327'#"'ZZZZ. -- ., // ,0^b>LLH[[ -- .. -- ..[_#Fs;3F/@ H4.4$w##@M H H;;  H;/4#4;B p ?   9+>0/43?3O33/^]]]]]/]]]]10]]]]+]]++]]]+373#'#5.''7.'#5367'7>7"327654'.B 965--,,(17:"B?n0+(. P(9p6Eu0bb0uE`cc1u;  -;q9>_1(,=20db2/aac02P&/b@>++++""""P'''@%(H /+^]2qr/]32/qr]qr9/3210.'&547>32!!#!5!"327654&'&7Z#GS,e>SW;=>B.*PlzS++VSzmQR FF;G,+G>>=T,G;QAQF@(1A;NN?  33FF;A1?J777B??/^]]]99/r]]r9910.'.'.547>323267632#"'.'#"'&547632"327654'&6%( ? .@$    TVWvvWTTUzGSZ>==@XY<>><      "O-@" '*R*Qm}VXTTuuWV+ >=X[===>ZW>>;/(@& 0 ` p  "@ H"O_/]//+3/]/10#"'!727>'#"'&547>7>76 (_E#%?BXc$&}V+B,-SZB?N9En&86_,+i?~BCF_?BWVc %%1E[wK`_B?[J;*U/;q9S<K/@9M?4=C /)//99//]923/]10)7>7>7654&5#"&'&547632.'.547>3267>32#"&'.'FTl)@4:Z+X-;a)OII]P3N(a2+C.=#!K2dmy;*&StsOP"4&sN&(PNmVb(%)LtvSP<3=-Q}.-L'fZy'&@) @ P p  ///]10^]].'.'.'.547632>32b*gL8E+%DFfbN/"X2U#F)N7>-qEEt/'xSEj( #&b<^Q2P;`N]]5(o]H: 9Pwc;kM;!0@! @O_o! //]9/9/]2103#>54&'&'#"&547632L3:0./9@%%Hl9:Q0*%#Jj9:;b&J5-L9<guv#dC  @; H#F/  O o  O_Fo"SP P ?3?32???/]]2/]/]q3210+]##5354>32.#"3533i;fQ E-(3 ӆIz;eK+)<'ai:wZC  @5 HF/OoO_FoP P?3?32??/]]2/]/]q10+]##5354>32.#"33i;fQ E-(3 ӇIz;eK+)<'aI4wNK H@( H_?O  P`p/]/]/]q9/10++#"&'532>54&#*732AhK-1%)8#=H>4T< )C0b %(`)?w8@ o_]]]5NH K H@ H  `@ !H   /]+]q/310++#>5#53H,(u-1XWk/0V.3 l@JV V y@32|&IlFBeJ, '6$GVQK3M!r[6CgE$CAhJ(!;Q0/$U]QU%q!'Gf+4x6@!  `` ??2/]]q3/]9/10#4>7!5!x@jM+/Pk<4MalfXq-('QD H@@R H/ H+ HL7G H===222FGGG( ` `L8# B#-??]]9/99/]q2/q/]]3/q99]10++++4.#"32>4.#"32>7#".54>75.54>32 5)'5 6-06 #=1-;$$=..="#IqMMqJ#/= $7&#FhDHiE!&8$$?.0""0/''04()5#;**<6[B%%BZ6.H4 %4@#-O;"#@)u u I  I@  /?/]2/]10]]".'332673ToQ h]]h Q9[s9g``g9s[9|E $@ P` ?]q/310#>5#53E,(u-1XWu/0`.K /@  _oP  ?   /]q]q/21046733#,(u-1X%Wu/0`.j0@u@@@H_@ H/+]+/]]10]%53H4@"z@@O@H_@ H/+]+/]]10]573H A@v x@ H@@H_@ H/+]3+/+]10]]#'##573ih A@vx@ H@@H_@ H/+]+2/+]10]]#'53373hi-Z#@_@ H/+]32/1053!53ӥDYi@" H  H@ @_@ H/+]23/]]10++]".#"#>3232673*TNG76 [-J;,TNE67\+J%-%>9-_N2%-%?8,_N3  X@<f bb @@ H@H_@ H/+]2+2/+^]q10]]]]]5733573 7@  d @ @H _@ H/+]+2/^]10^]]".'3326734JtT2um[[ku 2St)EZ15<=41ZE)V H$7<V_biqrxh$$7h$9h$:$?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a bcdefghjikmlnoqprsutvwxzy{}|~     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~uni00A0uni00ADuni037Euni00B2uni00B3uni00B5uni2219uni00B9AmacronamacronAbreveabreveAogonekaogonek Ccircumflex ccircumflex Cdotaccent cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gcircumflex gcircumflex Gdotaccent gdotaccent Gcommaaccent gcommaaccent Hcircumflex hcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonekIJij Jcircumflex jcircumflex Kcommaaccent kcommaaccent kgreenlandicLacutelacute Lcommaaccent lcommaaccentLcaronlcaronLdotldotNacutenacute Ncommaaccent ncommaaccentNcaronncaron napostropheEngengOmacronomacronObreveobreve Ohungarumlaut ohungarumlautRacuteracute Rcommaaccent rcommaaccentRcaronrcaronSacutesacute Scircumflex scircumflex Tcommaaccent tcommaaccentTcarontcaronTbartbarUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentlongs Aringacute aringacuteAEacuteaeacute Oslashacute oslashacute Scommaaccent scommaaccentuni021Auni021Buni02C9tonos dieresistonos Alphatonos anoteleia EpsilontonosEtatonos Iotatonos Omicrontonos Upsilontonos OmegatonosiotadieresistonosAlphaBetaGammaEpsilonZetaEtaThetaIotaKappaLambdaMuNuXiOmicronPiRhoSigmaTauUpsilonPhiChiPsi IotadieresisUpsilondieresis alphatonos epsilontonosetatonos iotatonosupsilondieresistonosalphabetagammadeltaepsilonzetaetathetaiotakappalambdanuxiomicronrhosigma1sigmatauupsilonphichipsiomega iotadieresisupsilondieresis omicrontonos upsilontonos omegatonos afii10023 afii10051 afii10052 afii10053 afii10054 afii10055 afii10056 afii10057 afii10058 afii10059 afii10060 afii10061 afii10062 afii10145 afii10017 afii10018 afii10019 afii10020 afii10021 afii10022 afii10024 afii10025 afii10026 afii10027 afii10028 afii10029 afii10030 afii10031 afii10032 afii10033 afii10034 afii10035 afii10036 afii10037 afii10038 afii10039 afii10040 afii10041 afii10042 afii10043 afii10044 afii10045 afii10046 afii10047 afii10048 afii10049 afii10065 afii10066 afii10067 afii10068 afii10069 afii10070 afii10072 afii10073 afii10074 afii10075 afii10076 afii10077 afii10078 afii10079 afii10080 afii10081 afii10082 afii10083 afii10084 afii10085 afii10086 afii10087 afii10088 afii10089 afii10090 afii10091 afii10092 afii10093 afii10094 afii10095 afii10096 afii10097 afii10071 afii10099 afii10100 afii10101 afii10102 afii10103 afii10104 afii10105 afii10106 afii10107 afii10108 afii10109 afii10110 afii10193 afii10050 afii10098WgravewgraveWacutewacute Wdieresis wdieresisYgraveygraveuni2010uni2011 afii00208 underscoredbl quotereversedminutesecond exclamdbluni203Euni2215uni207FlirapesetaEuro afii61248 afii61289 afii61352uni2126 estimated oneeighth threeeighths fiveeighths seveneighths arrowleftarrowup arrowright arrowdown arrowboth arrowupdn arrowupdnbseuni2206 orthogonal intersection equivalencehouse revlogicalnot integraltp integralbtSF100000SF110000SF010000SF030000SF020000SF040000SF080000SF090000SF060000SF070000SF050000SF430000SF240000SF510000SF520000SF390000SF220000SF210000SF250000SF500000SF490000SF380000SF280000SF270000SF260000SF360000SF370000SF420000SF190000SF200000SF230000SF470000SF480000SF410000SF450000SF460000SF400000SF540000SF530000SF440000upblockdnblockblocklfblockrtblockltshadeshadedkshade filledboxH22073H18543H18551 filledrecttriaguptriagrttriagdntriaglfcircleH18533 invbullet invcircle openbullet smileface invsmilefacesunfemalemalespadeclubheartdiamond musicalnotemusicalnotedbluniFB01uniFB02uniF005middotuniF004uni2074uni2075uni2077uni2078glyph571glyph572glyph573glyph574glyph575glyph576glyph577glyph578glyph579glyph580glyph581 LNDFLTcyrl$grek.latn8 TbDFLTcyrl&grek2latn>kernpi 2@^p4r|&Tv.8,:dR>TZ`6  . < b 0 H j  @ R  , > l .p(FLZ $7<V_biqrxh 7h9h:buDDY.yEoO7 ,;tMrphhb=F]~lWm493^Gb#f>-S 2S '!}_3:_ syt?6Xd`0=~ {b:, ;  y qz\x(v2 '/J[ *Vr;$V0_>vU s,FlKNd:@#05C0#3Cs\rYo5Q!-j2:^;hlD`dWFt%D vv      9+)*&*')*&(($RGCCD@AECCCBCADBDB@FQ _%&(()%+9             +     7,*)*7G6(RFAC@BBABA@0k[Kzvx:xqvdpshI\k/?ADR' ~alqmoqdenup8ssprq`b_z !!!  :,+++(+('))%SDDC3{&ja^^^\[Mzzxwzy{N\\\^`n4DR$)%*&+7  "!,*       ;,+-*,;  H                                                !         :(VIEFDDDCDD0nRyl|Ql4AB2pcp5BX&I    H  ;/--: L                             ,)),& C*n+?  Z_\7XuE88LtB'uypK<My.x F SueS m_ YJYx!keR3F 1 [|`Wb( 1K EP%#k c%>L;upz)NddhviWx\e=RlpS$SMF}Z[VDee0=1a!ds$m:B Q  a08 6   W t >U  TS^.Kni1@ *eo<K1 Z5 1;{1 OF wxYL1&$jJ|=AhprLzw3b Tx|z YXeS!g@c]!\-h-]Tr]s|OJF xnK]Vc7)+&z,"P3lQM[ij\\k1?V$ ZyO$2555w_ytwwzwvrt5% $!!G1e;gI+&pzrFt~rrtZid^M_il{?ONQOQOOPPSNRRONRQRPSPPOPQ@{j]u~u[imv56EPd'5E G:F  G*`UCqo}C?}ll^uinstead-1.9.1/themes/default/sans-i.ttf000644 001751 001751 00000473114 12161555567 020324 0ustar00peterpeter000000 000000 0FFTMMv0GDEFe GPOSfdGSUBNCkdRT/ZM33Zf  Px1ASC!W3>`: D99Ms'sV!`9x9%i9P9sYs5ss0s s.ssss6sF9Q9&sVV?q?V??9e?9QV?s???9oV?9e?V:VVV999W(s`s.sCsEsE9Ess"!"!"s"sCssE"9]sVpfaz@ssss-s?YsLd?k3dA5L9G=es`/AVVVVVVqV?V?V?V?9Q9Q9Q9Q"?9o9o9o9o9o9VV"s4s4s4s4s4s4 CsEsEsEsE9Y9Y9:9YsCs"sIsIsIsIsIdR,sVsVsVsVsVs.Vs.Vs.qCqCqCqC?E"sEV?sEV?sEV?sEV?sEV?sE9es9es9es9es?s">s"9Q9*9Q9Y9Q9Y99Q9YQ!V?""s?!s?s?@!s?3!s?s&?s&?s&3?s"9osC9osC9osCeE?"??"V:V:V:V:9]9sVsVsVsVsVsVfVV!sVs. 9,V:9QMVG5V9OLIIZ3.VV??^V??9e9QV?V??09o?V?V~V9QVF"q"?fhForC"=q"We?"bc7sC\[CDKfh8G^kv;C?fhsCfh;CV?Z?eV:9Q9Q???V5>V?Z?CV?V???|??9o?V?q\zV?c]?b?q>5>.?ts.i-',lCsEsVsV"|"g"sCg"sC"EY$VVB&5& "FsEs"!C!+H"s""sV?"fffViisk`ssDa3VMV\ssNsT%nX=>c|8d3i1dLdAdd?dAd"g{mm%))s+kUFQ@;@<fBEETX'NK8ZXZ /qHB~~ O\_    " & 0 3 : < > D  !!!!"!&!.!^!!"""""""")"+"H"a"e###!%%% %%%%%$%,%4%<%l%%%%%%%%%%%%%%%&<&@&B&`&c&f&k ~Q^    & 0 2 9 < > D  !!!!"!&!.![!!"""""""")"+"H"`"d### %%% %%%%%$%,%4%<%P%%%%%%%%%%%%%%%&:&@&B&`&c&e&jG/vhzyws /,$#>1"DC:741.' ܸܿܳܰܨܜIFE(&%" bcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?w6   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`apcdhvnj#ti<7q>?fu143:kzvbm6@;2l{   }8w KRoNOPxSQL@EYXUTSRQPONMLKJIHGFEDCBA@?>=<;:9876510/.-,('&%$#"! ,E#F` &`&#HH-,E#F#a &a&#HH-,E#F` a F`&#HH-,E#F#a ` &a a&#HH-,E#F`@a f`&#HH-,E#F#a@` &a@a&#HH-, <<-, E# D# ZQX# D#Y QX# MD#Y &QX# D#Y!!-, EhD ` EFvhE`D-, C#Ce -, C#C -,(#p(>(#p(E: -, E%EadPQXED!!Y-,I#D-, EC`D-,CCe -, i@a ,b`+ d#da\XaY-,E+)#D)z-,Ee,#DE+#D-,KRXED!!Y-,KQXED!!Y-,%# `#-,%# a#-,%-,F#F`F# F`ab# # pE` PXaFY`h:-, E%FRKQ[X%F ha%%?#!8!Y-, E%FPX%F ha%%?#!8!Y-,CC -,!! d#d@b-,!QX d#d b@/+Y`-,!QX d#dUb/+Y`-, d#d@b`#!-,KSX%Id#Ei@ab aj#D#!# 9/Y-,KSX %Idi &%Id#ab aj#D&#D#D& 9# 9//Y-,E#E`#E`#E`#vhb -,H+-, ETX@D E@aD!!Y-,E0/E#Ea``iD-,KQX/#p#B!!Y-,KQX %EiSXD!!Y!!Y-,EC`c`iD-,/ED-,E# E`D-,E#E`D-,K#QX34 34YDD-,CX&EXdf`d `f X!@YaY#XeY)#D#)!!!!!Y-,CTXKS#KQZX8!!Y!!!!Y-,CX%Ed `f X!@Ya#XeY)#D%% XY%% F%#B<%%%% F%`#B< XY%%)) EeD%%)%% XY%%CH%%%%`CH!Y!!!!!!!-,% F%#B%%EH!!!!-,% %%CH!!!-,E# E P X#e#Y#h @PX!@Y#XeY`D-,KS#KQZX E`D!!Y-,KTX E`D!!Y-,KS#KQZX8!!Y-,!KTX8!!Y-,CTXF+!!!!Y-,CTXG+!!!Y-,CTXH+!!!!Y-,CTXI+!!!Y-, #KSKQZX#8!!Y-,%ISX @8!Y-,F#F`#Fa#  Fab@@pE`h:-, #Id#SX<!Y-,KRX}zY-,KKTB-,B#Q@SZX TXC`BY$QX @TXC`B$TX C`BKKRXC`BY@TXC`BY@cTXC`BY@cTXC`BY@cTX@C`BYYYYY-,Eh#KQX# E d@PX|Yh`YD-,%%#>#> #eB #B#?#? #eB#B-,zE#-P/@o@P(F(F+/o@Pp F@FF@36FF=U=UU<P&`p@`p@ 2F?#@B2? `p/oOߩ +@ F:@A P@ $F$$$PZH$Ж@W F_oϔߔ<@F@ F_@%FЏF0@o   @'F 0Fmuuuuts?sP&и@>rF5qF5@p&,F p0poF5nF5U3U3Um)ml`P&_P&KA [ 16F @1&*F^Z2\F1[ZHZF12UU2Uo?YRRRR-4F@R $FQQ@Q58F@Q%(FP N)/FN"F MMHMXMMMMML$-FL FLLKF7IF HF5GF5FFFF2UU2UU?_/Oo?oTS++KRKP[%S@QZUZ[XYBK2SX`YKdSX@YKSXBYtstu+++++stu++++s++stu++t++s++sssu+++++++++st+++ss++++++t+++s++st+++s+stst+st+st+++sts+s++s++++su^s++^stssstst^s++s+ss+s+sstu++++++t++^s++^sst+++ssssssss}y:wW~ rj[Ltdje"39+kknL^[^t^eoz iqBHjgaASEyjDXXXXT 8 T TPHd  !H"h#H#$& &'8(()4)-./02P3h45h67?@<@AB$BLBDEdFlGHIKLMpNPOP8TTU`VXWY`Z<[\^0_c d|ehj`jlmmoptvpvyy| }~LxD$8Hx(PDt(XL <l@t8h P8h,l0`$T 4d$L| P0d$T4dX\ŒdʐhҐҸlӄӜD֜$L|ר٤,Tڄڴl4dޔ,@p,\ $<l|@p8l PDt(X0HL(d$D P Pdt , < L |   H X  $\ <p,d00xd "#$&&,'(*8+D,8-h/0l234$4X4445678t8888:;=,=\=>>???AACE@FFGHIII$I4IDITIdJdKL M$N<OHPQS,TUtVWWYTZ[]P]`_```b8cDe<ff$fffggiikxlo4qstXutvwyy8{ {}$}4~(~~lXPDxH8P L|Ph\,,\p\ŒĴH tt,,X@pӤ,pԴL՘H֔DפtH٤x4ۨ|lh<4,P8h(`|D`|X`hLLDP<Tl\p`d(P DdU./<2<2/<2<23!%!!D $hUDM%L@ @&H/@ Hp?/]/+3/]]q10]+]]#373I(((#Y@=/  @oOp9npn...@p.. $o%%@GH%%E o @H (?s3)>t>>9>).%o%%%4s P `   X+?3//]2?3//]9]332/+3/+q9///]q]3/]10]]]]]]]]]]]]]#7.'7.54>?3.'4.'>0Gr  /IgE`Le:TdrSZ7 ucVGlB!"32>7654&2#".5467>"32>7654&5^G) Zjq/7_F( Xjq0%F>4B<#C>4?h5^G) Zjq/7_F( Xjq0%F>4B<#C>4? IvU%]0~["$MxT%[.WlCxbjHb\Dx_oK`VT IvU%]0~["$MxT%[.WlCxbjHb\Dx_oK`V!=Oa@60.@75V`MyFF{C;;{:q959U9e9)@, H%% PI",I8A3SF"X@XpXX@""@ HX"X"= @7O========cKH@ H3F8A>S'==>]Q''?''>Q?322/]q9/999/+3/]2/99//+]]_]910_]]+]]]]]]]]]]]]]]]3267#"&'#".54>7.54>32>7267.'>54.#">GS0(e. 3 9&J;R}jd08mh 6f^EsR-'D^o{?+4A((F>7hY@+K@3GoM("@\ Og;+<%4W="=}{t3&) ?;615ggi7.gmp66/5vyw47#73+ "*{9K X*35WKB AAi|p%@///]q/]/]]107!iРP>@ @ H//+10373P++'I@?Oo??/]8/810]3tD Yb3\@At33-{((" [k[k T d o&&&51o/s )s??/]3/]10]]]]]]]]]2#".54>7>2>7>54&#"Qi= (^Sg; P`pv|LkT wlLkT w7ry?S>54.#"'>32! 7}^6"=U3m%RxfYm=;dv(]wb[ZfyL3Q9ww%L]42]PU{ld`dk>0a=@z88r..Z$j$z$Z#j#z#@t H%<no!n6?54.#"'6$32#".'732>54.+76$SQJ8"9R6w": ]i83`U?}~rsC 3QpIJpK'*Kf<|(?[?,J5zo/YQN^; {WtDAh>0.[J.)Ie<>s3Ǹ??LFH.x,@&y**yz%%rZjZj  $ H H,@FH H+o,,n####.o@ H,,(s    sP`tX+??3/]9/]]33//+3/]3/9/3/++9++10]]]]]]]!!>32#".'732>54.#"#W!r6FU1Yn=G̅jmE *HkJN[1)E]3`4A 5e]wŠK2XxG+(Q@(,ZZCdB!9,ss'9@X%{33s++|:/J/!!%! #n2/222o;(o5s-s p -s??3/]9/]]3/23/]9/]10]]]]]]]]".54676>32.#">3232>54&#"ck9 %~gDxcHrQNrX75.54>2>54&#""32>54.`o<-SvJ2T 4K`;ayE9fRa^6 &gWa55Qa-bm@bD(O?(.StG3X@$)PwO,UB)FI'=@`u44z**t!!5/E/%:&*&&  oo(((((? o2n@ Hs77_7o777 #s  -s ??3/]9/]2/+3/3/]310]]]]]]]]]]#".54>32#"&'732>4.#"32>76>lad3Jv_l; %b$v[PnT7"A[9HzY1">V42j]G ^mBnOqȕW>yrDIL"M-U\J:bG(7g`?`@!"FkI=Q:#@@ H?//+3/107373))))k&: B@    @!%H     /3?/]+93/]10]%#>7#7373, "*{9K X(A((35WKB AAf@ @H(H(H@3H0Pp?0p?o/]33]]/]/]310]+]]+]++]]]]5 Z;XeP@:@`pO0/_oP/]]]/]3/]]]q3105!5!Xf@ @H(H(H@3H0Pp0p??o/]]]33/]3/]10]+]]+]++]]]]75 5Z㚙on^m'+}@&z *Zz +((#0@# H-"###)(O"_"o""""?3/]/]9/]3/+q99//9910]]]2#>7>54.#"'>73eo<=ay<*O@- AYh30XD(&E`;&W''6`MaeJ#3;H.NqU@9F[=0Q9 z(Te9j]r@&nv&&fEvEEf\gWwWiTY44\8J@@ H H}ee)e9e%U{ H H H":2:B:::-9 99u??Q??2?B?3 33Z3"^ $ ^$ h%%i)y)))))) $$   H HR111111+111tt/2Ht@"*Hkt{ttt=$RRR@ HRGG$G GGB,k %$c$"B6YBMۀtpttttttt@t0t tttttpt`tPt@t0t ttt3237332>54.#"32>7#"$&54>$324.#"32>7>Cvb8O1E]uGT}Q(Gr<`I6't+&>kO-S㸋^0Viy+72oj?v$\"?Y8UW-_cEy`E `/@&+ -YE+:gSxݩf0C(Tx10.Qpޢ\@tt`!09p?4!sܴFv2TfF$P@vI(XhxR \R ^  ) i  {+;@36H@ H/_ ?2?339/32/]_]++]3/]q9=/]++++10_]]]!!#3 .'!%KP$ $,d )NA+,AO((?*@+v j(UUeIYiI$O _ o ;   Z&@U H&&[/?O@ H,*  R ^@ H *_O __lmX+??9/]qq9/+3//+<++ć3/+]]q9/+9]]10]]]]]]]!2#!!2654&#!!2>54&#!Phu?GmI%.RoJ\KpNpD,SxK 7Pd9SbC**_]@pYkpq+@(# yj e((f5*E*U*9I\@DH+\?`p-!Z/  @H _O_0+@+P++++++&_lmX+?3/]?3/]/+]3/]]q3/+10]]]]]]]]]#".54>32.#"32>7N1zɁݒH6dxŠT>aWR4gfZ}c&QIa9\{|࿛l;;`|B7/WE)k^s@1Qi8?@Y  +{{Td[??O_^    @ H __ lmX+??/+3//+<+}]3/]q10]]]]]]]2#!!2>54.+b?rn5]IfO瘅ܰX+Xxr7?i ~@Pp    /   R ^@ H_O _ _lmX+??9/]qr/+3//+<++ć3/]99//]]103!!!!!?X_<?C l@; 'H R^@ H_/_o@H_lmX+?3?9/+]/+3//+<++ć3/+9/10!!#!fne-@" z&|}y j U'e'UZjZ!%!!*)R)^--++--Z@H`/[? O _  /  @H *_/-_----$__$_)lmX+?32?3/]9/]/+]q3/]q3/+9/9/F.(-. +</+<+H++10]]]]]]]]]]]]]%#".546$32.#"32>?!7!n8rOw8S8[XS6ot[x[3[ U0T>$Wڄ;6\xB6/S?%iauB-8? ~@HW  R ^   R^@ H _ lmX+?2?39/32?3/+3//+<++ć3/3//+<++]10!!#3!3ttsTQ"W&*H@(#H?R^@ HlmX+?2?3/+2//+<++]]++]1033Q@[dt)9p R ^O0p/\/  __@PlmX+?2/]?99/]3/]]]qq3/F( +</+<+H++9/]10]]"&'732>7!7!}pd767#.'&'#367>7!  2|  # )3j,3043,`%L_-5987/f(`/C#(0,(#G?@+g(HHI0 H  @(H e u F V  @ HR @  R@%OpR@"   @ H   lmX+?33/22?3/3/+3//+<++3/]]qq3//+<++ć++10+]]]+]+]+]+]]!#367>73 .0)]'QA+0)e3o3r@Q+22+*$%%$yYi;v   V f 4ZO/_///5"Z/@H'_ _??/+]3/]10]]]]]]]]]]]]]]2#".5467>$"32>7>54.ޙO K ̗b 8kb͖c :lUԀ1i0^Wڃ.`1_Jʀ+W'kk5K}*Z&kk6?Il@CzW[/  R ^    @ H _@ H _ lmX+?3?9/+/+3//+<++ć3/]]10]]2#!#!2654.#!TtFOӄXj6-RsF6dZnyA;A\<e}*D@ ()v)y @H'Y'i'V f 5: J *CC);%66&. * * Z#Z@@/@@@@$"32>7>54.ޙO y $6H-F&R1UwN, ʆC ̗b 8kb͖c :lUԀ1i0kBY6 3_W _{.`1_Jʀ+W'kk5K}*Z&kk6?@wv {VfWR^dtP@H [@ HR^@ H__lmX+?22/3?9/2/+3//+<++ć3/+]3/+9/]]]++10]]]]!!#!2 2654&#!Gqdh{E pUeI3`Vpx:@;@k:$7t7p6;3[-"d"t"dt;;tDTDTyk%\$$9[/Zpo/?=\@ H/V/I/xK/*`%% _@P?2/]?3/99]]]]]/+3/]]q9/]2/10]]]]]]]]]]]]]]]".'732>54.'.54>32.#"hÈQ 8^^bm:"TlXtD_nyL6TuNhY()TXWM/[W%>\=?eK3H93;W|Zi^+,OnA30L5#?W36G2):Yc\k@D/__oOR^/_lmX+?3?22/]3//+<++33/]q/]]]]q10#!7!Z圜!@euYW) R^9P_o0/# # R^   @6:HP`p_@ H _lmX+??399993/3/+qr+3/F"( " +</+<+H++]3/]]]qqrr^]3/F"(" +</+<+H++10^]]]]]".54>7332>73hN 2XzHWwUs6ps785$MJlG#,`odψB@73 /D -Y#)'%)#Y/.0!%H!@=H!!!v!T! %HO_ H HvK[{9+/H@ HH@ H Hi X I  HR!)!L   R O  R/)/^000R^   G W H)X))x)g)()8))GWg )) 0V0f0002 2222222@-2H{292I2Y2)2I2Y2i22222 @ H0/!  /) 222222222{2k@292 2222222{2k2Y2K292 222222y2i2Y2I292)222222f2V2)2222222{2i2I2)22 222222222y2k2]2I2;2-22 222222222y2k2[2K2;2+22 22222222@2y2i2Y2K2;2)22 2i22222222{2k2[2K2;2/22 22222222{2;2+22 22222222{2o2229222rrr_^]]]]]]]]]]]qqqqqqqqqqqqrrrrrrrrrrrrrrrr_^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]qqqqqqqrrrrrrrrrrrrr^]]]]]]]]]]]]qqqqqqqqqqqqr?3/33?3/33/3/+^]^]]qq+qr3/]89=///]]]]]]]q]]]]++ć++ć++ć++10+]]_]+++]++]]]]]+]+q+]]]++]!#.'&'#367>732>73~G/]ߎO  K,5057<@?=4n&?{2:4EC=<7m8;=CFEhy4 @  $-HH$-H@H%,H@B%,Hk      R KR L @3@     O    @"&Hp   / O _  @@ H   ?22/3?33/39/+8]3/]]+]q8999//]88++ć++10]]+q+q++++! # 3 3 p^'\#@i$$$R^RLRKO@p @@ HlmX+?3?33/39/33/+]]83/]]qq89=/++ć++/]]q3/+<++10]]qqq#3 3qs20HH9^ @$4D %*H Hf+;K%*H@ HIYi@A H    RM/ @ H__?2?2/+3/3/]3/++99//]+10]++r]++r)7!7!!:uVWu%@F H *Zjz@@RP`/?OO??/]qq3/]++2/]3/]10]+]!#3'rWu5@rV} H??/8/]810+]]]3@ WW`F@(vRO/??/]22/]/]++3/10]73#7!AWs(@ :HH@0HvHy0@`p @P`0AH@:H?Oo/_o@H 9 0@?>54&#"'>32326732>7C ]U#K[pJNuP(/Qm{?j^1UC3BllY^1 J'*(VSK8!,A,W\5  ML#5T;2Sl9QvT5 $.[W'C3>gJ),NlAW'.%$ 7N7 =/733>"32>7654&P|T, X|c{   S $KUb@sbK"?Y6>dQ>^N2\Q2w?˂=h^;4% +7#".5467>32.#"8ZF6QoWga/ EUcim5Y^53J1EnW> gz!oZ(^-ouL+.TuG-J5(Zi0j&E'=@@vj%Ueu9,I,* *  */"RK"""""""/"o"""@$H""?;G@ H"/4P (PXYX+??9?3?3/+3/+q3/F>(""> +</+<+H++10]]]]]]]".5467>323>73#467#'2>7654.#"P|T, X|c{  R  $KTb@sbK"?Y6=eQ=^2\Q-|?˂=h^ .3. 'H<+ X4/D-&]xbOAbC"%[tyU{|E'N%3@t{11{++*% I @6 H F)0)O))))))53F@@ H P33.PP??9/9//+r23/]]qr3/+10]]]]]]32>7#".54>32'>54.#"8\K9Hkhdm9Uxnl5 $B\80jaP91A$?-YH-9mec:hW267#Ba?JbE @J H@ HRK@ HP QXYX+?3?32?99/+]33///+<++/+]9/10]+##737>32.#"3 &GpV C  &3!Iz;fL+*='aWaM:R@xJ9Z9j9%#j9BIBv5U'e''*" *F56R6K))))/pOT0TTI@P`;G0@ H560/F)KP$@ H >P PXYX+??9/+?9?39/+r3/]]q3/]qr3/FS()S +</+<+H++10]]]]]]]]]".'732>7>767##".5467323>7332>7>54.#"]_7 udHnO5 ?RlHO~X/ 29fQ;   Jzif6ocO$AX3>eP< W%B]8*LQ%LwS<(L:#7aP1m?5L0>7( +y.dp*Y CcB %Yq;l"#@   @W H R K   / O  %WRK@ H #  PXYX+??39?3/+3//+<++]93/]q3//+<++10+]]]>32#>54&#"#3"HWiC ~ T_@q\Av K /L5$Z&s'QOX3]Q~!B7(!  @U/2HO  / FRK`@ HSXYX      rrrrrr+??3?3/+qr3//+<++3/]q+q10733""NҴ :W@N  H/FRK@'-H@$H@ H@H PSXYX+???399/+/+++r3/F( +</+<+H++3/]10+]73"&'732673!!!"E 2;< 'Bc 7 T\@>jN-"V  &*H @ H WW  г&/H @ H  u  e u  & F V f   R  N  RK       /  ?O_RK@ H   XYX+?22/3?3?39/+3//+<++ć]3}/]q83/]899++ć++ć10]]]]++]]]]++!#373 H iP|kE/!p@KV`O/RK`_@ HXYX+?2?/+qqr2//+<++]qqr10]]33! 4"KMA_+ H#@ H9@ARAKB201R1K23233233 222i2y222CCiCTC&CFC CVCCCCCC C)CCCCCvCYC6CC$CCRK@ H;P*%@30 P"12A2XYXCCCCCCCvCbCTCDC2C$CCCCCCCCCCCvC@dCVCFC6C$CCCCCCCCCCCtCfCTCDC6C CCCCCCCCCCCvCdCVCDC6CCCCCCCCCrCdCVCDC4C&CCCCCCCCCfCVC6C&CCCCCCCvCbCPCDC$CCCCCCtCTCDC$C CjC@`CCCCCCtCdCDCCCCCCCDC+CCCCCCC{CDC0C CC:CCCrrr^]]_]]]]]]]]qqqqqqqqrrrrrrrrrrr^]]]]]]]]]]qqq_qqqqqqqrrrrrrrrrrr^]]]]]]]]]]]]]]qqqqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqqq+?2/3/3??93?/+3//+<++ć^]]]]]]]]qqrrrrr3/]]]q3//+<++9/3//+<++10_]++!>54&#"#>733>32>32#>54&#"| LV9gR<v  @L];y DSe@ | LV9gR<vz00+KO3]QS"KC0,9;/L5wq2T?#$Z&sz00+KO2\Q"M'"@X H &'R'K/O) R K@ H &P  'XYX+?2?3?9/+3//+<++ć3/]q3//+<++10]]+!>54&#"#>733>32~ T_@q\Av  "HWiC 'QOX3]QS"KC0,9;/L5$Z&sC2M3`@C/t**"{/  G0O5`5p5'G @ H P,P??/+q3/]]q10]]]]]]]]#".5>7>324.#"32>7>2 kd`o= fijm8"A\95kaP &C[66i^O 4i;t5;qh/d6~v88lcMlE Lt7c*RtH!Mu733>32"32>7654&*{  R $KUbdQ>^h^#4>Y'H;* $-2/D-2\Q2w?˂=&]xbO@cC"%[tyU{|EWeM'=ѵ%H@ HUeu@; H* *  */$RKoP/???-2H?@$H;G@ H"/4P (PXYX?r+??9?3?3/+++3/]]qq3/F>(> +</+<+H++10]]]+]++".5467>323>73#>767#'2>7654.#"P|T, X|c{  "U $KUb@sbK"?Y6=eQ=^2\Q-|?˂=h^=7,64/D-&]xbOAbC"%[tyU{|"N!s@JW !_!o!!@(+H!@H!@ H!!#  R K   @ H   P XYX+?3??9/+3//+<++ć3/+++qr10]].#"#>733>32/@fM2 n  =BK- Jr>>#FB;<>9>[;K;@.::d:49d8p6T5 !!+!+k5H2H@C H )I**`*****= Io / ? O  @H 2-Q$ ****$Q ?3/?3/]99/+]q3/]q99//+10]]]]]]]]]#".'732>54.'.54>32.#"D}o]eC/E_?@kM+&Ec=AuY5GyZRfB zg5]F)&Ea<9u^<=UT) =[;8(?+.H3(9+%2F_@RsH!=aEOF$:))7*!0Ge],@T H /O_ R  K    Q   PXYX+??3/3929/]q33/F(  +</+<+H++ć/]/]39/10+%#"&5467#73733#3267%X0Ua ~}ix/}*0- fT I{:*.VJ:'&@\l>N/?O@ H$4Dt"& v  &''$ RK  ?  ? O  @H )RK$'$$'$$''$$$/$$@#H$@H$$  P  'XYX+?22/3??999/++]r3/F(('$$( +</+<+H++3/+]qr3/F((  ( +</+<+H++310]]]]]]]]]]]]+]]]32>73#4>7##"&5467~ T_@q\Av  "HWiC :{'QOX3]Q^"KC0,9;/L5$Z&pb:@Af HR MR K   H ` @P@@),H0@H @ H ?3?339/3+/+q+8]3/]89=/+]++ć++10+]!#3>73նe !! :@?D??B?f5:(@ H(%H@HfvT@%H6 4 d t 9 %H0H;[)&+';'' H=(R!KR  OR'!'L(((RKW8!H!X!!!8HX!!(((V(f(6(v(((((***9*I*Y*y*****i*y**6*F**@ H***@ H *9*@@H('!&6 @ H' ****v*f*F*4*****v*f*T*F*6* ********i*V*4*******t*d*T*F*4*&** ********v*V*)********v*d*R*@*0*$******t*@d*T*$******@*4*$***i*****T*;*$****t*D*********{*d* ***9**rr^]]_]]]]]]]]]qqqqqqqrrrrrrrr^]]]]]]]]]]qqqqqqqqrrrr_rrrrrrrr^]]]]]]]]]]]]qqqqqqqqqqqqrrrrrrrrrrrr^]]]]]]]]]]qqqqqqqq?33/3?399+^]3/3/3/+8^]+]]+qqqqrrrr3/]q89=///]]]++ć++ć++ć++10_]]+]]]]++]]]]+]]++]]+!#.'&'#367>7367>73,%#\(  U, NN(/3-,&RJ:! 7=9 $#B6d$$#D<: @F&        R LR M  @,    P   /    @=-2HP@ H      9      rrrrrr^]]]?22/3?3393/3/+^]+^]3/^]]99//^]98888++ć++ć10^]]]!# 33 ^+D,[Wg:@6[*& RMRK;K[@'_o_P`P`! !@!O@H/@H@H P??3?339]+/3/+]+q]3/]q89/qr89=/]++ć++10]]]]]!#"&'7326?3>737fpU!E+_Fٷp  ')R_p>z/. TSG?GK#l: @*&6fRL @#/2HW 6 F %   ' G g  H @H8   @H@H@ HPP    w V G 7 '         w g W 7 (  ʸ  x h        g G     G '        s c S C 4 #           t c S C 4 #     @      r b R B 0    i        t ` R B 2 "           t b T D 2 "           t b T B 4 $   9      _rr_rrrr^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qq_qqqqqqqqqqqqqqrrrrrrrrrrrrrr^]]]]]]]qqqqqqqqrrrrr^]]]]]]]]]]]]qqqqqqqqqqq?2?2/++33//+^]]]++qrrrr+3/]++3/]10_]]]#7!7!!,8&ڋWA9@Vfv H H`p@] H_88888("#R#_, 4,48"#( 9(@>H889??9|/+999999999/]q3//3/]++/]33/]3/+]10++]".54>7654&'7>7>;#";n;[=8 ]U3VB. F?1E1 E .@P+EQ=GM0W&B\6   ,!SI8X>j4Q82T@, dN !! H89??9|/+999999999/+]]/]]33/]++/3/]3/+]]2/]310++]2+732>7>75.547>56&+74;[=8 ]U3VB. F?1E1 E .@P+EQ=GM0&B\6   +"SI8X>4Q8d2T@, dN?!! 323267jEIX&A<82Q)OMK%233E{4<=D),-  &.  2*@;^@BHx@$H@H@ H/]?]/+++]3/]q10]]+]]3##7(( D%?3/ Ͱ2%/3Ͱ2&/ְͰ#ܰ"Ͱ"'ְ6> . > % #9...@  %............@# 9" 9  9% "#$90167#7&'&54776?3&'em>WHs |"OJEq33|@ < qLv1rj/ 4>$,@u{#%@} H   o,,"## #R#q   o.@ H#(" u  / _ o  @ H (s(t,,,X+?3/]2?3/]9/+]q993299/+3/9/3/F-( - +</+<+H++9/99]10+]]]]]#!7>?#73>32.#"!!!2673%ȖDau7DngFz^@ pIr8h *=L-g6.|\f7;U82@Ds}7dTAU`s#7@*:JZH,:JZH,5 E U  @H # 5EU@!H#:"J"Z""H"-"5EU@H#5EU@H#:JZH-.$@ HF9V9f9F9f99999999999@ H9 )3 99999999t9f9V9F969&99999999t9d9R9B949"99999999999t9d9R9D929$99999999999v949$9@9999999999p9`9P9D909$99999999999p9`9P9D949$99999999999t9`9T9@949$99999999999t9d9T9D909 999i99999999t9d9@949 99999@T99999p9`9P9@909 99999999p9`9P9@9 9999999rrrr^]]]]]]]]]]]qqqqqqqqqqqqq_qqrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]_]]]]]]]]qqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]qqqqqqqqqqqqqqr/^]+]]qr/+]10_]+]]+]]+]]+]]+]]+]]+]]+]467'7>327'#"&''7.732>54.#")%dhc6IG~6ah`%+,&dfe6~GH4iff%)-Lf:9fM,,Mf9:fL-G6dge'+*&ai`6GG5die%)*&iif6I:fL,,Lf::fM,,Mf-+@pk+ &6{((8mK[ R^   RLRK  @:@ H u  uO _ o       X+?3?399//]]qqr33232/+]83/8339/3/339=/++ć++/+<++10]]]]_]]]_]]]]]]]!!!!#!7!7!7!33A;;} @}/}y9{*@ @?/+M9/321033զ v T=K_=@uDDjzcsl)|))NUNeNuNX\XlX|X   11*1BH/QLH,[//'V:I999HoVV@&7HV/V?VOVVVVVVaLH'I/?'O'_''@H'"QG,[[[[@/2HQQQQQ',HQ@+HQ[Q[B =Q4::4Q `p   /]3/]q?3/9999//++qr+q3333/+]3/]3/]]]+q2/]99//999910]]]]]]]]]]]#".'732>54.'.54>7.54>32.#">54.'&He?9KD~p[eC/E_?@kM+'Fb;AvY5)If<8_D&=^E/$kPUT) =[;8(?+.H3(;-%8NhC=^E/ &mNRsH!=aEOF&>.$7-%2Kl> >>@3 H33333@ H3>3>`p?Y$@ HR@ HRRM.C8O>_>o>>>8._.o...P8`88888 .8.8))YoY_YOY?Y/YYYYYYYYYYYYoY_YOY?Y/YYM^]]]]]]]]]]]]]]]qqqqqqqq??99//^]q]q3/]3/+/+3/]]]99//+q+qq3/10]]]]]]]]]]]]]]#".54>324.#"32>".54>32.#"32>74^dc^44^dq\c僂cc䂃ceb00abKpP7r &7H/Ec@!CdC1K8's:Rod^44^dd^4rcc䂃bb@r^bo;$;K'!2&.SvHHxV0-8#+Q?&Y.>O@m}UMeM+;K H/@' H?O  '((0>8     @;H/ ?  QE/?-o'''@H''"-;J  `/]]]332?3/+]q9//]3/]+]]q33/]9/10++]]]#".5467##".54>?654&#"'>323267'32>7%$4!9BN/6R9?gC D;!;0# 1NkG5  ȋ+TA( ).UC.'#9(7L-Na8<51 4&1P: k\  !<0%#;L(Lk@hgwhxgwh x   ;   @ H   _o@ H /o/]32/+]2/]/]_]+]q2/]10]]]]%73 !73 2 f  i m?s%m?s&dGC@/0H?3]]]]qq/]/]10%!5!?-;D@E{t {t:!J!!5"E""5'E''5&E&&5+E++:,J,,:J:J9@ H9 H6@ H/::A;A12<77.;;/22;2;`p?F$@ H;..2:/`0p00A@3A`A_AoA_2o233 2A33A2))FoF_FOF?F/FFFFFFFFFFFFoF_FOF?F/FFM^]]]]]]]]]]]]]]]qqqqqqqq??9///^]]]qqq223/3/+3/]]]99//]833/29310+++]]]]]]]]]]]]#".54>324.#"32>##!24&+3264^dc^44^dq\c僂cc䂃cRǡ3hUݟ_QPTd^44^dd^4rcc䂃bbP?~of{PEHU|T///10!5!|su\'V@ H  H H@& H 0 ? _ o  #@?]/]q]10++++#".54>324.#"32>-Ni;;hN..Nh;;iN-m0A&%A00A%&A0y;hM--Mh;7>54&#"'>32!HOS(3\G)DA ;1$} 3NkC?bB#8Zp9#D;/3g.K>48>I.3H$5"4V=!":N-BhUF!**-q5':չ H!@ H: 44@H   :44: )&9I 54&#"'>32#".'732>54.+L9F<(B9Da})%B1 0:= #<00?FA:R47J+,!.: @cD#,ER'6')>+#. .@u@/?O/?/]/]]1073WE:+@uDTds++E+U+e+@ H;%K%{%; K { 6Fv/OuW%5Eh%5!( H ##RK######h#x###@/2Hw#8###-v--e-6-F-V---'--------@F#H)---------x-g-H--*++R+K7@-%2H(x  'P*# +XYX---@H---p-a-P-@-0- ------------p-a-Q-A-0-!-----------r-c-R-A-2-!-----------s-b-S-C-3-"-----------r-b-S-C-3-$----------@-t-d-S-D-3-$-----------p-`-P-@-0- -----------p-b-R-B-4-"---i--------t-b-R-@-2-$-----------t-d-R-D-4-$-----------v-f-T-F-@"2-"---9------rr_rrrr_^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqqqq_qqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]]qqqqqqqqqqq+qq+?2?39/999323/3/^]+]q3/F,(, +</+<+H++ć]]]]]]]qqq+qqqqqrrrr3/]]+]q3/F,(##, +</+<+H++910_^]+]]]]]]]]]+]]]]332>733267#"&5##"&'%*<&9cO8v " 8&J>A\>Z^WR20C*2\Qb-%# a\_^*%5J@.ppP _  /3?3/2/]/]99//]10###".54>3!pqP`52_W3#-XXT]2f&@/@+H@H@H/+++]/1073++GWr@ScsScsس H H@1 H    @ H 0/]/]9/+/]/]9/810+++]]#"&'732654&#*73>QQ"IsQ60([K7@ek`H;-H1[,-)=3~ @Nx  R@H@ H&6F  & 6 F  d   @H Y i  9I          t f T D 6 &     f V &       t f V F 4 &          v F 6 &     V 6 &         y i [ K )      @     { o P @ 4 $           p ` P D 0    i        t d T D 4        p d T D $          d P D 0   9 r^]_]]]]]]]]]]]]qqqqqqqqqqqqqrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqqq_qrrrrrrrrrrrrrr^]]]]]]]qqqqqqqqqqqqrrrrrrrrrrrr^]]]]]]]qqqqqqqqqqqqqqqqr?3/^]]3?2^]+]qqrr/qr2/+/+++3]1073?33=v{3kake61b@zzu u @, H H//@/P///3" ' `/]]]?/3/]]10++]]]]".5467>32"32>7>54&LrK%HhOMqK%Hh*J?2 *;$+K@3 W+OnCC ^V(+OnCC ^V(6`M*D1E+8dO*F^M%@Og w h x gwhx   4 T ;  4d@H? /o/]32/]+]_]q2/]/]]q2/]10]]]]%#7 73#7 73  'ot?'ot?`0&y#'?^ ?55/q&y' r?50&sS'?^@ A?<<<]q5?55A;'+@ue JE U e  U e u  d t R % *H  ,(+{+++@$H+@HK[k++,# "["""@H""-@Ho_O/?*+@"P"`"""""oP/]]3/]?]9/]_]]]+]3/+]q99//]++]9910_]+]]]]]]]]]]]]".54>7>733267#7do<=ay<*O@- AYh30XD(&E`;&W''6`MaeK"3;H.NqU@9FZ>0Q9 z(Te9&$2@ &%+5+5&$&%+5+5&$Q& %+5+5&$^&6 0%+5+5&$g&2%+55+55&$P8%+55?55@ Ho    R^   R ^/_ _ O O    ` _lmX+?2?229/]qr3/]32/]3/]9/]3//+<++99++99//]]q10+!!#!!!!!#!_QXY_ + $!d<#2:3&3qW&&xx7/ %+5?i&(,@  &p %+5+5?i&(@  & %+5+5?i&(Z@  & %+5+5?i&(Z@  &%+55+55QT&,{@ &Z%+5+5QD&,a&%+5+5Q&,@ & %+5+5Q &,@ &%+55+55"#@8 y y Ueu *z[@<@H47H@R,/HO_% # #^    @ H _O#__ lmX+??9/]qr32/+3//+<+}3/]3/]+++]q9/10]]]]]]]]2#!#73!!!2>54.#!b=mn}vIj`0]IfO瘅ܰX+`Xxr7?&1@ &/%+5+5o&2M@ 4&.58%+5+5o&2%@ 4&47%+5+5o&2@ 5&m:4%+5+5o&2@ 4&?O%+5+5o&2@ 4&86%+55+55=s H@H H HH@HHH@HH H@H /q/]]q10++++++++++++ 7   bh^^i`fJb`g_iia!.<9@M-v y 1{191i1,t,6,f,YiVf*8%%$@] H +  +  H$ 1-2,*/!!!Z///////*Z@4?O_/@AFH@.2H@H2,1-5"_ 5_ ?3?399/+++]q3/83/]qr^]2/89910^]+]]+]]]]]]]]]]]]]]]]]]]]#"&'#%.5467>$3273"&4'32>7>34 J43 K̗b .fm.5[͖c Hg1i0^@54.54>54.#""/_c3.EPE.*>I>*4he*TND8-J;V8)>G>)-DOD-8S6CoU=.Oh;A]G624"$@@DPaDN2@U>/5D3 9+#MzX43&DCU@ T&^UX@%+5+543&Dtm@ T&TW@%+5+543&DK @ U&oZT@%+5+54F&DR@ T&]k@%+5+543{&Di @ T&XV@%+55+5543s&DP"@ Y&^T@%+55+55 NH[i@MzhhzaajNzNN@@|00:< + !: u;iI*F[[*2Fp**3*3*_ I @5 H CF0______kQG@ Hd-P8 PiiJQ%%8p2/22;@ H2;>8VP?332?3+/]]9/3/9/2/+3/]]q3/+99//]3/9910]]]]]]]]]]]32>7#"&'#".54>?>54&#"'>32>32%32>7%>54.#"{y3TD3Deb#'_vUPvN'0Sp~Amc4XF5Eopz/;phf3s)YVM:",?(Ye> !gJ)VHKS:hW267 6N7%?,?`t5#Ba?JbCWN&Fx;3%+5E'&HC*@ 4&058 %+5+5E'&Htf@ 4&47 %+5+5E'&HK@ 5&e:4 %+5+5E'{&Hi@ 4&l86 %+55+55Y&C@ &%+5+5Y&tW@ &%+5+5:&K@ &j %+5+5Y{&i@ &%+55+55C0J@{HHt::r@& H+"{""6#F#V#$#*%  ./@;//FG)F/F/F?FOFF@!$HF@HFFFL9F@ H1P$)$. /@ H//$$P$$$7>54.q0]6(P$0P9  ]nij6("JE= +5FoT:~u;fUB  A`0-K$5flC9{a@CAw7?pZD '6i`V"qxf&Q\ >EuW3;=$K='"G&QR@ (&1?#%+5+5I8&RC4@ 4&058 %+5+5I8&Rtf@ 4&47 %+5+5I8&RK @ 5&d:4 %+5+5I8&RR@ 4&j=K %+5+5I8{&Ri@ 4&m86 %+55+55R5u o@ @5H_/??O/?@ #H @O?]]/+]qr/]+]q9/3210535!53,\,:@ i7f) H @ H@ H H@c H0 H/ 66((t!!f!}//i//"0!- G/-?-O--@H-@H---<G @%H"/!0%3P  %P ???99?/+]r33/]++]299]]]]10]]]+]+++++]]7.5>7>3273#"'#.#"%4'32>7>%' fiiFJ kdhP  T35kaP |!U26i^O 5U/d6~v8CRg4i;s3G^I6sLt7cB3Ju32"32>7654&*{  RsS $KUbdQ>^h^ %09YuY4/D-2\Q2w?˂=&]xbO@cC"%[tyU{|Wg{&\i@  &$"%+55+55&$MN&%+5+5.-S&DM @ T&UW@%+5+5&$&J!%+5+5.-&DN@ T&Y`@%+5+5U&$Q %+5._-N&DQ) "]]99%+5q&&S,&),/ %+5+5C&Ftg@ 0&03%+5+5q&&@ -&2, %+5+5C&FK@ 1&g60%+5+5q&&O @ ,&,. %+5+5C&FO 02%+5q&&@ ,&.4 %+5+5C&FL@ 0&28%+5+5?&'5@ &$ %+5+5E&GK@ G;FF%+5?5"EE@w77jCT%d%t%9I*#!3!C!6 *..136<2<0-(@1@1@2<R7654.#"".5467>323>?!7!733##467#@sbK"?Y6=eQ=^2P|T, X|c{  ,  $KUbv&]xbOAbC"%[tyU{|2\Q-|?˂=h^ .3. )'H<+ X4/D-?i&(MN@  & %+5+5E'S&HM@ 4&{57 %+5+5?i&(@  &%+5+5E+&HN@ 4&9@ %+5+5?i&(O@  & %+5+5E'&HO 46 %+5?Ui&(Qc] %+5Ei'N&HQ9==== %+54@ W@H/?O R^   o   R^    @ H __  lmX+?22/3?399//32323/3/+r33/]//+<++3/qr3//+<++3/]+qr10]!!##7373!733# 7!~~ǚ,,,,))s-" +@VV%     @D H## R K   / O  -"%!!R ! K   @7 H @ H%Q" P    XYX+?33/3?9/]99/]q32/+33/+//+<++3/]q3//+<++9/10+]]]]]]>32#>54&#"##7373!!w"HWiC wv T_@q\An- Y/L5$Z&]'QOX3]Q!B7(Qx&,@ &%+5+5*'&R!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!@H!H!H!H!@H!H!H!H!@H!@H!H!@H!@H!@H!H!@H!@H!@H!H!@H!@H!@H!H!@H!@H!@H!H!H!@H!H!H!H!@H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!@H!H!H!H!@H!H!H!H!@H!@H!H!@H!@H!@H!H!@H!@~~H!@}}H!||H!@{{H!@zzH!@yyH!xxH!@wwH!@vvH!@uuH!ttH!ssH!@rrH!qqH!ppH!ooH!@nnH!mmH!llH!kkH!jjH!iiH!hhH!ggH!ffH!eeH!ddH!ccH!bbH!aaH!``H!__H!^^H!]]H!\\H![[H!ZZH!YYH!XXH!WWH!VVH!UUH!TTH!SSH!RRH!QQH!PPH!OOH!NNH!MMH!LLH!KKH!JJH!IIH!HHH!GGH!@FFH!EEH!DDH!CCH!@BBH!AAH!@@H!??H!@>>H!@==H!<>H @==H <>H@==H<jN-?9&.iX %+5"9V&Nt %+5"V:  &*H @ H    г&/H @ H   %     R  N  RK     o    d / ?  RK@ H   XYX+?22/3?33/39/+3//+<++ć3}/]]]q83/]899++ć++ć10]]]]]++]]]]++!#373 HҴeiP|:E/?&/@ & %+5+5! ?&O)O&%+5+5?9&/ִ %+59&Odƴ %+5?&/ %+5?5!&OK@  > %+5?5?&/OO %+5!&OO *%+5 @[ vp  @ H    R^    P` @ H     _lmX+??399//]9/+33/]//+<++3/+9/10]]]!!?3%_yiu2UU @W /  @=H   R K`_@ H @ XYX+?2?399//889/+qqr3//+<++3/]+]3/]]10]3?37 i~DDXHGz?&1&%+5+5&&Qt@ (&(+#%+5+5?9&1qM%+5&9M&Q,2#%+5?&1@ &%+5+5&*&QL@ (&*0#%+5+53&Qx s22%+5?6@H[9I%-5-E-e-(65 H/3R3^    k { _ / O  8&&R^@ H/3, _&,! _lmX+?2/?3?39?399999/+3//+<++ć3/]_]]q3/F7( 7 +</+<+H++9/10+]]]]]+"&'732>7>54&#"#>733>3 To,"_61ekzEmu>iMD%\ZL?EE>dF'7Q ѐL"WM5 1 H@ H  5RK`0@P9O_/o?O7)RK@ H)5/$#P/ PXYX+???3?39/+3//+<++ć3/]qrr^]qr3/F6(6 +</+<+H++9/10^]++]#"&'73267>54&#"#>733>32g 'BcG"E 2;< T_@q\Av  "HWiC >jN- T\'QOX3]QS"KC0,9;/L5$Z&o&2MN@ 4&57%+5+5C2S&RM@ 4&g57 %+5+5o&2 @ 4&9@%+5+5C2&RN@ 4&9@ %+5+5o&2+@ 4&4=%+55+55C&RSK@ 4&4= %+55+55e6@E Z j 6 9%44%-@HR^$%$$%$$%% $0$@$`$$$@DH$$/82Z?O_/@H_O*%_$_lmX+?22?3229/]qr/+]q3/]9/+]3/F7(%$$7 +</+<+H++ć99//+q10]]]]]]!#".547>$32!!!!!%2>7.#"}&i0O FKHi:Xv_ >8.;<9~˘e0(`($()&")  JJ====m *\G55R I @5 H /F0RORRRRRR^BG@ H P\\GW:P*'$GP?332?3329/9//+3/]]q3/+9/210]]]]]]]]]]]]]]]]]]]32>7#"&'#".5>7>32>32%4.#"32>7>%>54.#"8[J8Gjh3Oق`n< ei1Lynk4 O"A\95j`P %B[66i^O #@\80jaP?1A$?-YH-c^eW9oh/d6~v8c]]d:hW267MlE Lt7c*RrGJu&Ut@ "&"% !%+5+5?9&5# %+59N&UsԴ** %+5?&5B@ &! %+5+5"j&ULH@ "&$* !%+5+5:@-&6tI@ <&D$%+5+5&VL@ <&>D )%+5+5W\'x7W,&xW\&7@ &K %+5+5]&WK@ 'G&&%+5?5\@b /?O/?__ o O   R^   / _ _  lmX+?3?9/3222/]3//+<++3/]q3/]]]]qq9910!!#!7!!7!ZX}}X32.#"! %ClR?3$.;fL+*='e8#{@ !HY H @ H @ H ?O/?_@H@p0p   R q  0@ u   Q  Xp`@0 p`@0 p@ 9rr^]]]]]]]]qqqqqqqqqqqrrrrrrrrr+/3/^]9/]9932/]]q33/]]F( +</+<+H++]]qqqr/+]q310+]++]+.#"3###737>32>.!  (GmQ R#  (@-C;fL+ &$'P -$8¶=@%%+55+5?55.&D'P*@ |&Y&k@ |@%^T@%+55+5+55+5&&%+5+5 &t@ j&jmC%+5+5&K=&=@!%+5+5,&t@ ;&;>%+5+5:9@'69K&LV9\'7Q9,&WM @ xUe  +[ 4 d  D t  $ T @ H@$H@  +;{ { ` P D 4            p ` T D 0 $          p d P @ 4 $           d P D 4  @         t d D 0 $          t T D           d T $        p ` @ 0  n      p P @       ` P 0    p ` @ 0  >  rr^]]]]]]]qqqqqqqqqrrrrrrrrrr^]]]]]]]]]]]_]qqqqqqqqqqqrrrrrrrrrrrr^]]]]]]]]]]]]]]qqqqqqqqqqqqqqqrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqq/^]3+/+]]]qqr3/]]9=/3310_]]]#'##73\t" @MDTt k  D T     [  4 K[@$H +;{   t d T D 4 $        t d 4 $        t d T D 4 $        ` P        ` 0        p ` P @     P      @ 0   n  @+    p P @      9  rr^]]]]]qqqqrrrrr^]]]]]]]]qqqqqrrrrrrrrr^]]]]]]]]]]]qqqqqq_qqqrrrrrrrrrrrr^]]]]]]]]]]]]qqqqqqqqqq/^]+2/]^]]]qqqrr3/]9=/]3310_]]#73373 ̵apSC@@ HTd @HDt @$H/ ; @H@Htd@0$tdTD4 t`PD4 p`P@0/@@/`P0`0o? j`pP@ 9r^]]]]]qqqqqqqqrrrrrrrr^]]]]]]qqqqqqqqrrrrrrrr^]]]]]]qqqqqqqqqqq_qqqqrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqq/++^]q+qqq/^]]]+qqrrr3/+10!7!&>@({   @  /?/]2/]3/10]]".'33273JnJ%tgS@uA[v3Vo=UN=oV3V ,N@ &@,1HfFH@H SyYIiY9) YI9)yi9) iYI& I6iY9tdTD2"i@p`P@0$pdTD$dPD4$9_rrrr^]]]]]]]]]]]]]qqqqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]_]]]]]]]]]]]]]]qqqqqrrrrrrrrr^]]]]]]]]]qqqqqqqqqqqqrrrrrrrrrr^]]]]]]]]]]qqqq?/^]++]qr+rr1073V"" s'[@ H  H H@+ H@ @#/_/?O/]q/10++++#".54>324.#"32>&BX22XB&&BX22XB&l$12$$21$2XB&&BX22XA&&AX21$$12&&2GUt@( H)9I{@*.H@H +;[k+ ; k {     tdTD4dTD$T4${k_+{k[K;+ @kK;${k_+{k[K; jo_K;+ [K;/k[;+:rrrr_^]]]]]]]]]]]]]qqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]qqqqqqqqrrrrrrrrrr^]]]]]]]]]]]qqqqqqqqqqqqrrrrrrrrrr^]]]]]]]]]]]qqqqqqqqq/^]/^]//]3/^]]++]qr10]+"&54>733267XZ)=HD:((& 4FU^J4V@- -32326737*LE@7CZ&9S;,LE>6D\%9S%-%>9-_N2%-%?8,_N3@ @1  h@ H  w f U  @'+H   @"H     v g  ( 8 @H@ H (8x         v g W F 7 (      V G 7 '        x g 7        w F 7 &       w g W        @ 8 )        w f U E 6 &           w g W G 7 &   i        t c T C 3            r b R B 4 "           r b R D 4 $   9  @    _rrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqqqqrrr_rrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqrrrrrrrrrrr^]]]]]]]]qqqqqqqqqqqqrrrrrrrrr^]]]]]]]]]]]qqqqqqqqqqqqqr/^]32/+]q^]]]]]]q+qq+rrrrr/+]q_]]1073373<  //10]73~!$%A _@   @#*/H    O _ o    /32//]9/]+q]10]73%73!73!"B""!p%&$T{%+5?5&@/@+H@H@H/+++]/1073++Lb'(Tc{V%+5?5I'+T`{M%+5?5I',T`{V%+5?5!&2!T{6g44%+5?5g'<T{  %+5?5&vT{<B::55%+5?5.A&U2@& %+555+555$?%?Y@(@ HR^@ H_lmX+?3?/+3/F( +</+<+H++3/+10!#7@d Y i y  ) R \R^  Ht   +  Z?p_ ?33?2/]3/3/]9=/]]+++ć++10]]]'3!%.5 $: $, ^)PC1 2FR(?i(=?+e7@?fijdVkY9Ie 6 F  5j5 .(e(! @H@k H Z33/3333$"32>7>54.KޙO K ̗b 8kb͖c :lUԀ1i0^Wڃ.`1_Jʀ+W'kk5K}*Z&kk6Q",?.@LXhx8Hx H(xwR  \R^I@[Hv );K[{D+;@Hdt@ H/ ?22/3?33/_]+]q3/]+]qqrr9=/]]]+qqq++ć++]]10]+]]]%#.'&'#3 /P/Y#)%'*$X, ?0?1_ o@ P   @H`/@,H @ H _ O    __??9/]qr/+3/3/+3/]]+99//]]10!!!7!7&9`o2?~@LWWR^oO R^@ H_lmX+?22/3?32/+3//+<++3/]qr3//+<++]]10]!!#!} ?I3 @y L6)I  @/5H @H [@/5H@H[@/5H\ /  @ H  {4 _ _?2?29=/]]q33/+3/3/]3/99//]+q++q++q10]]+#7 7!!!!YcE7s\7<~c*7@!iVfX+h+:&J&53E3*%***  +7 R^   [?$?$_$$$$$$$91[/@H`77*+`  7 7  lmX+?3?399//3232/+]3/]]q9/3/F8( 8 +</+<+H++10]]]]]]]]]]]%".54>;7332+#?32>54.+";uIV݇#!1uIWއ.,|ck84ZwCE|cj84ZvBFAzm̎LAym̏L3ecXQ'3dcYR';+$@ V&f&:J@ H ''  *+++R+^ #%R%^ " " """`""""""/"?"""- R^   /_#"" % *`  +lmX+?2?39/9932993/33/3/]3/F,( , +</+<+H++3/]]]qq3/F,(" , +</+<+H++9/3//+<++10]]]+]]!#"&54>73;3>73+S3ZZ.RtF8On^6ZbVҐiS#! - !#"C];I3aYl|DU9@%vvo222o333euo  E J:J  ( H0 H)8p887) )9I| H0''( @ H((5Z ?O_;)"Z/55'@ H' +0'*_)_??32/+3/]33/]q299//+]3333+]]q]10]]]]]+]+]]]]]]]]]]]]]]267>;!7>54.#"!732.546$yݜUBז-(#H+v6;m_gX$EfA-P&-2F|\6r L΁~໒0*igk6FؒXt\&'pibQ&,@ &%+55+55&<@@  & %+55+55F&~Td@ H&sHK* %+5+5"&T@ >&>A#%+5+5"W&T-& -0(%+5+5?p&T4@ & %+5+5hA&Uj@%&n+1 %+555+555FM1G@wF4{=ooocsj>z>k66FV0%0. ((*(@ G H  @/@ HI9G*@ H*;P% 2P?2???3/+3/+]q3/310]]]]]]]]]]]]]23>73#.=##".5467>"32>7>54.SFmP2 "010+#  !J\qHQ}V, _a:bQ?4icX"7UM$@Y64;>Yfmi_%ewa/@B=8cK,6f].r6y5(_srT8nl%I|Z2W` >@w#euZjZZjzYiye u V G P`pA%$H// : 55H@::@H:::@%$$RK   @$H ) 9  %*P 4P$55!PXYX+??39/9992?3/]+]3/F?( ? +</+<+H++93/]+q9/99/10]]]]]]]]]]]]]]]6$32#"&'##"32>54.#7>54.-T`43Sl96\E'G}f7 :}!DOW+M\4&HkEHpM(4O.VwJS^: 8Rj@kF8&9\5褪 )S~T7^D' -JjF+G3oXa:@A+R  M  RK  H `   eu@/@H ?2/?39]]/+]83/3]3/]]89=/+]++ć++10]]>73#>7,r !"s630*Z*:]BD>;A@-o|A[/C4@,{..t  { dtk6r@Y H$#4#D#t##*$:$J$k00 0 11+33!G/?O@H6G+@ H+1P0 (H 2P&??9+332/+3/]+]q3/9/993]10]]]]+]]]]]]]]]%2>54.'".'#".54>77!YZ-&4/jh_I,&D\/ )-) ,I4R{go;asqBsZAn_R%+?.54>32.#"3"jFX+[h{LT[0/UvG'D49hZ>kYI)oK+N:#3XxE4h_S<#0CtPDi+B.+OnB?hN1 '9J,IoJ%(B/T?8*@+->% /I4$=+= 6c@>u [ k 5E %%-%]%I55'.?8G'@ H'/5Q ""6/?9322/+3/]399//210]]]]'>54.'.54>?#!7 LuF=[<9aH))3f ;W8?nS0FwP 061 IU+;, #2F3+MG>H#)+' -EbC]H"WM,¹, H H&@_ H+,R,K,/oP/?. R K@ H  + P%XYX+????39/+3//+<++ć3/]]qqr3/F-(- +</+<+H++10+++>54&#"#>54.'33>32z T_@q\Av"HWiC W.'QOX3]Q.*" %'& ,56/L5$Z&eE#1@7!"!>54.ع%orR^3I$>pdV# 3F&=pbT#0 3I@[U;xx:Pvo4ؤQ6SqD3~աR6PlA?:y@C  O/ RK    @ H XYX+??399/+q33/F(  +</+<+H++3]qq10]7#.54673&HA(9N2"V:  &*H @ H    г&/H @ H   %     R  N  RK     o    d / ?  RK@ H   XYX+?22/3?33/39/+3//+<++ć3}/]]]q83/]899++ć++ć10]]]]]++]]]]++!#373 HҴeiP|:E/z@b H3*)D 0    RKRM HC@/@ H@ H?P??33/39]]3/]+8/]+89=/]+++ć++ć9/]_]]]10_]]_]_]]]_]+_]'.#"'>32##,  0$*%)(6N;*δ|cJc=$Q_wA:-H@ U@ HrDTd" H0 H@ H&%/(?(O(((%5Euh%5%&&%&'(R(K&&&&@_o/RK@$H/?( '&& P XYX+???3?33/39/]]+3/F.(. +</+<+H++ć3/]qqr3/F.(&. +</+<+H++9}10]]]]]]+]++]]+]]!>7##".'##332>73 9DP2'H:*  I} 0L654&'3#3bj8bhpûm#;3D}o:7N@k{m}\k,Z,d t 6 F %E Z[1k11 H@@/@LLF>$I)8) ))>) )>3`NpNNN?NNNPG3@ H3CLQM.9 Q.) #M#/?9/99322/+3/]]9///]923/10]+]]]]]]]]]]]'>54.'.54>75.54>?"+7!6neXB%5Ys>A}mR/=[<9aH))3f ;W8?nS0L̀6dL.Cev3&295, JzO(8L2:K./BWlC+;, #2F3+MG>H#)+' /HhH\\ *BW6FaA& C2MR[{:4@ky HI /?O( HHO&&&&&224RK6++G/ 44&Q1P XYX+??3?22/399/]3/3/]]]3/F5(5 +</+<+H++3/9/]10]+]]+]3267#"&5467!#>7>767"7>3!#+1"M+^VnAGJ!"MLD'PG7-47% # 0"  gZ:HJL}  WVN2@!+f1j1z1h,x,uFVf@cHE<L, % !3!C!!GO00004$##RK/?@$H#)P PXYX+??9?3/+]3/F3(3 +</+<+H++ć3/]]10]]]]]]]+]]]]]]]]2#".'##>"32>7654&bp=bd;`O> SVdKoQ7>?KT,GsW=N?th$R*vH'4= WxI8gX5)6f\OGCN5@tdtdt@XHY[/k/5E6 F % 44+4[4I''!I,,y  p  7G@ H1,1&P0 p  ?3/]/93/+3/]]9/2]10]]]]]]+]]]]]4>32.#"'>54.'.C!Bdg>_K:"_?=kZG1<[<9aH))3f ;W8?nS0JJzI%3l-=6\zD.@."#2F3+MG>H#)+' 0MpD:1{@R t00+%u+ |***j* G#�`#/##?##@H##3/G@ H'Q P??22/+3/+]qq3/]3210]]]]]]]]".5467>3!#".''2>54&'#"hj6u( #*+/EՇiW&SR]~>pa$T(w4=agT}Q6(]n)I#Kg:#@B( H %RK # # ##@ Ho  O    PQ XYX+?2?99/]]]q+]3/F$(# $ +</+<+H++3/9/10+"7>3!!3267#"&5467N'PG7-47DЅ+1"M+^V  S# 0"  gZ9h:$@ yf" H H H@U H )$$G/ ? O  &RK!$!!$!!$$!!!@H!!P$XYX+?22/3?99/+qr3/F%($!!% +</+<+H++3/]q10]]]++++]]32>54&'3#".5467ycjIpR9" <]fPa6s:I8ep7_RW02Xgʶq@,X[#K*OGWR(9@z2j2c!s!! H@ H* %$ k{$./ -#-RM$$$$@PFO777777; G@ H-$/#P )PXYX+?2/2?3?3299/+3/]]9/]]q3/F:($: +</+<+H++10]]]]]]]]++]]]]2#.54>7>">7>54&ClM) qsOO^f5Hw uvp9W{K":/%qNcH @P0_\+j3΀;iBueq ZKD`h6@fJ.cpBp-ngkXyP@zz9y  JZj @ P ` RMRN O@@ H P/33/3?993?3/+83/]q89///++ć++]10]]]]]%#.#"'>323 #(ag$ !"#&&0@0'Uqi9W6R7 | >fKGvW<#@+  z { 4#+#Y"y"4"+"""*!d  H H H@ H H H@ HrTdEV) #!#RM""""FVfRK@H R KPo% #"!P XYX+?3?32?33/3/393/]]q3/F$($ +</+<+H++/]+3/F$($ +</+<+H++9/]3/F$("$ +</+<+H++10]]]]]]]+++]++++]]]]]]]]]]%>73#.546733\[9~}V͏OOoi3vz wIy[|zn5k/XR H(d#@q_COG@sy }k{DDjDk3{33* : " H44g4w44 22 --`pF77=GI$FF/GOI=G///@ H/$FFBP*7P6?32?329/9/+]3/]]9/39/9/]10]]]+]]]]]]]32>7654&'7#".'##".54>7326?3f)=(AbI2Y^2UzN$Z|[B_B&CWlDNzT,7Uw` # +D/g151R;!4cZUFt V}ROM~>%Ec=>cE$9i^OkJױ0W)7[A$?{&i@ & %+55+55h{&i@ %&d)' %+55+55C2&RT@ 4&47 %+5+5h&Tm@ %&%( %+5+5C&Tr@ H&HK/%+5+5?i&(Z@  &%+55+55Z5#@ y y-س H@I H)&   '' HO44444$0 R^$$$$0@P"FH@G H7.//R/^010110/222012_3$.)_  3/0_@lmX+?3/]?3?9/]q39929922/3/]/+<++ć3/++]q3/F6($6 +</+<+H++99//]q10+]]]]++]]]>32#"&'732>?>54&#"#!7!ZD"kz5%:]\j/%.7!*>. 'wy3zyj# 8]].K9x#4P7 RY  圜?&av@ & %+5+5e1@5$ fvjU+6*F*V**:J9 6 "\@]H,\-/-?--`-p----3"Z?O_/@H_O'_ O_ '_0,@,P,,,,,,?2/]?3/]9/]q/+]q23/]]q3/+9/10]]]]]]]]]]]".54>32.#"!!32>7ِG5cvS<_Usdw3ed^v\%0x\{|࿛l;;`|B7/WE)Fl$^s@1Ri7YIa9:@6Q",Q &,@ &%+55+55-&01@Rzj,z,Z#j#U"e"u"W'W H{Jj6V%5 H &HH@ H)Iiy* 15H "&H@`H H0''R'^&&&O&&O&& [/******2 @ H 0_O'_&_ _ lmX+?2?3?9/]qq/+3/]99//]]3//+<++ć++++10]]+++]+]]]]+]]]]]]]]]]!#"&'732>7!!2#!7! 4.#!3x8_XV_lC.  " 8:>HV41sEu{?Ĺvq+NnCljU%>k4aXhp;=Y9?_ @zZjUeu  R^   ?Oo@)H[/O/"R^@ H  _ O_lmX+??3?39/]qq33223/3/+3//+<++ć3/]qr9/+]3//+<++ć10]]]]]!!#3!3!2#%! 4.#! ~~s ssu{?ĹFq+NnCsT4aXhp;=Y9&!@   س H @ H`p$)H@THR^#!R^O !_p  _lmX+?2?229/]32?399/33//]/+<++ć3/3//+<++9/++]10++]]!#!7!!>32#>54&#"gD"^jr5½ijmy3mi]#圜 >#9OW ?&&  %+5+54&J@ &)%+5+5?h H @w H R KP R ^_oP`p R^@ H_  lmX+/2?32?33/3/+3//+<++3/]qqr3/F ( +</+<+H++9/]3/F ( +</+<+H++10++!3!3!PPhh$>@`Z U e u jz [/?/R^@ H_O__lmX+??9/]qq/+r3//+<++ć3/]3/]10]]]]!!!2#!7! 4.#!P!UDu{?Ĺvq+NnCH4aXhp;=Y9?%?aChh]@ HY i {-&Hس HH@! HRK 15H "&H@bH HpR^/`p RK@ H__lmX+/33/3?32?32/+3/F( +</+<+H++2/]3]/3/F( +</+<+H++9/]++++3/3/F( +</+<+H++10++++]]]]]+]%3#!#3>7!!voPPn3]YX.TKx,SQP*h83Aݲ3?i(+x@%5eu@"%H" 2 b r  @ "%H" 2  @A"%He u W*W6#F#R^$#R#^"!""!RL$!* @/ +)**+*R*^+++++""@-H""@ H-@9/@ H  !$)`/ *++"##lmX+?33/33/3?39/]3299333/33/399/+]83/]+83/+89/3//+<++9/89++ć++ć++10]]]]+q+]q+]q]"&'#.'3332>73###b"X G0’/CBN9xx&=99EV9Sl!e13/~Oo_c{Dk ,FbB1aag k<@6zyhxU#U:u:F2V2f250++3.[_o/?8[>%\&&&&\@#H@H@ H3`O )O%_%O%_%%@H%% _) _@P?2/]?3/+]q9/]q9/+++q3/]3/]]3/]]9/]910]]]]]]]]]".'732>54&+732>54.#"'6$32)uV:VzUXa3cG`h7"A_=T~`FPbvA5]L2_J.Q3[NF:aG'&ImGi}>gK-K6$B[6=2Y}KO}Z8 /LhBit=?@V f YiJ Z  0H  HEUгH@ H  R@   R@   O   p  R@:@ HEU%JZ *   lmX+?2/3?33/33]q]q/+2//+<++3/]qq3//+<++ć++]]10++q++q]]333#>767?  蝹 8d3b'.('Y&-+Z?4&J@ &% %+5+5?@3DR^ R L    @-H  @ H @? H  R^@ H  `/ lmX+?22/3?33/39/]9999/+3//+<++ć3/]++83/+89++ć++10]32>73###Px&=99EV9Sl!e13/| ,FbB1aag {@FjzFV99y%EUe%EU*jz( H  15H "&H@6H H R^ @ H __ lmX+??32?3/+3/3//+<++9/++++10]+]]]]]]]]]!#"&'732>7!# x8_XV_lC.  " 8:>HV4QljU%>k?0?+o2?n?I3q&\7@HHR@R^ H@ @ H@ H@ H _??39/+333/3/+3/+89/]89=/+33++ć++++10]#"&'732>?3 3@noxK?x+UL0+DCM4B})>XR(*#%9^EYz *5@u!!i:&J&51E1U1*t--X+h+"%Vf**i*  +5 R^   @[?$?$O$_$$$$$7/[/@H`55*+`  5 5  lmX+?3?399//3232/+]3/]]q9/]q3/F6( 6 +</+<+H++10]]]]]]]]]]]]]]]%".54>;7332+#?32>54.+";Wk}E\d$#$q~C[j,,Mbn:2Sm;7=1Rk:9?vmΒN>vmϒO6g_XQ'YR';?h H@i HRK R ^   ?O/o@$FH R^@ H  _lmX+/3?32?33/3/+3//+<++3/+]q3/F (  +</+<+H++3/3/F ( +</+<+H++10++%#!3!3SoPe@aH0 H*R^O! R^  @ H _  lmX+?33/3?39/9329/+3/F (  +</+<+H++3/q3//+<++10]]]]++#"&5467332>73##anu7jjy}4pk`# 8# RY ?] @h R^ R ^   Pp/?_ R^@ H _ lmX+?22?33/33/3/+3//+<++3/]]]q3/F (  +</+<+H++9/3/F ( +</+<+H++10]33!3!3??h(>H@ HRK R ^   d R^   ; K   @FH ; [ k /   R^@ H   _lmX+/3?2?3/3/33/+3//+<++3/]_]]]+]q3/F(   +</+<+H++9/q3/F(  +</+<+H++3/3/F( +</+<+H++10++%#!3!3!3oP-@wjzZ j WgU e u WgR^ [/O//?O_O__lmX+??9/]qq/]3/]qr9/]3//+<++ć10]]]]]]!7!!2#!7! 4.#!5s$u{?ĹVq+NnC4aXhp;=Y9>@jzWgZ j U e u  [R^?O_?O/oR^@ H_O_lmX+?33/3?3/29/]qq/+r3//+<++ć3/]qr3//+<++9/]10]]]]]]!3 !2#!3! 4.#!.Du{?Ĺvq+NnC-4aXhp;=Y9>@djzZ Ueu[/O/R^    @ H _O _ lmX+??39/]qq/+r3//+<++ć3/]qr10]]]]!2#!3! 4.#!9u{?Ĺkq+NnC-4aXhp;=Y9K+@UeuUJZJ<5 5 ""&!ZK';';'K'[''''-\\;K[@#H@H/"_O##### _0@P?O_@H_ ?3/+]q?3/]9/]q/]_]++]q3/3/]qr39/10]_]]]]]]]]]"'>32#".'732>7!7!>54. <(qvӒMjke*ƙmbc5cx"32>7>54.ԒK ֏G~s"z\ͷ{\6eUԀ1i0^Wڃ((sXJʀ+W'K}*Z&kk6v@mUe g Zjz R^[?O R ^   o O   @ H __  lmX+?22/3?9/322/+3/]qr3//+<++99//]++10]]]]#.54$)#! !"3![*-aO4)5Zqud2Tn;e9Z~UI}Ib;.-NDiF@Pzz<<u *#%!u!D?$?=+=$7 7777G0OHBH*@-H*BP 8R7 P%??9/3/+23/]]q3/]10]]]]]]]]]]]"32>7>54.'2#".5467>7>7>:qcP%D]7BpZA "?V dhal9%l;g^X,X_SkTD6OgOiHQsI"%Td,M"Hg@ɾ&P,w7:|8NW   -Ell8`H)'D*7@-%{4I4  @N H G&&.G..O....97*55RK@ H5*Q77#1P#PXYX+?32?99/99/+3/F8(8 +</+<+H++ć3/]]]9]9/10+]]]]]]#"&'>3232654&+72654&#".Lc5,Q>%Glpdt[}ZU_3=@>|ތ\\-WM>H@^B( $:Q4ZU)ji+ @^dlP^^bAL?r^),O7@#u,,u60F0V0++k+{+++' H @ HI!I    @( H  )H3339F)@ H)3 $ P$P ?3/?3/99/+3/]99//+]]10++]]]]]"'>3232>7#".54>7>54.C8V?,&ձdY)4f`RV,qr?_E/&۸y\#;ogey@1P$9(0v}+Jc7FeK:)2@/NK'<(8v}3Sg4MoS?//3/#C,)B@ t@@*(f! @f Hx..[-k-,{,,&i&:JZDT+ z 1#I/?@P`D>F@ H6Q?  *Q *P??9/q3/+3/]qr39/10]]]]]]]]+]]]".5467>32654.#"'>32'2>7654.#"fl9aW2`UE3Z{G%P*%c0 ba`{L( :bMFoS;=_?sbC"}t7'6"&#lc. {ё׉?FrH:;2`K-*Yb#CAhI'E'NH:)@""" vUe%'5'E'%5E!!!  RN R L  ( ) "!R!M  RL" ()  ( @( '(()(R(K))))))@H/?+@7@ H    "'Q/ ()) !!XYX+?3333/3?39/]3299333/3339/]+83/]+q89/]3//+<++9/89/89999++ć++9999++ć++10]]]]]]]]]]]]]"&'#.'3332>?3###a8 /e!/+-\\28U뺺 "! _ W ICKL]2&2]LCWN;@ 99*@G H1,G!I"7G""0@O=I@ H1P' !!!P' P?2/?3/]9/9/+3/]]q9///910+]]"&'732>54.#72>54&#"'>32 %:R7/VA&)NqHCc=dR$F<0 JgNQ\19Yj16U:;pz,%=+0M72G-*L=EF 8+Gb>&E_9EeD$,CT.L{W/VJ:XVJ&X@ (&n-9#%+5+5" : H H @ Htu U e RM  RN     p  /  RK@ H  Q/ XYX+?22/3?39/]993/399/+3//+<++ć3/]]89/89999++ć++10]]]]]+++32>?3###\!;GY>8U뺽K.\:&2]LCW #Y:@zZ;Kk@^ HRKP RK?O/ ? O  @H   QP XYX+?2??3299/]+]3/]3//+<++9/]q399++10+]]]]!!#"&'732>7!ҸDiWKOY8"= '047##!>7Uҭ    T E_:<@=G==9,:*gfYP5"?: @bRK/o?O  R K   @ H Q/  XYX+?22/3?339/]32/3/+3//+<++ć3/]qr3//+<++10]!3#!#YYҴ__:6:C2MR"@:@VWRK/?O RK@ HQXYX+?33/3?32/+3//+<++3/]qr3//+<++10]]]#!#@Ҵ:I:W1NSCNF"KMPWg:\EWn=ShP@#BjblA|AjGzGT\\D[K;[;CS7 H6ضHE6*@ H+)++++% 5 % WW!!$! H\/66\6E877E76R6K777777`7p77777777$GffOffffffjQG@ H76TJP8/ _>P,XYX+/22?392?3?3/+3/]]]q9/]]q3/Fi(77i +</+<+H++9910+]]]]]]]]]+]++]]]]]]]]".5467>323>733>32#"&'###72>7654.#""32>7654&sIpM( Qr\r Rn!DMY6HqL( Rr\r Rq!DNZ9gWC9P07ZH7T9gVC ua7YH7T2\Q-|?˂=h^ .3. /D-2\Q2w?˂=h^#4>YI/D-&]xbOAbC"%[tvX{|M&]x3X&%[twW{|<:[YhM:)X@ HdtEU<L\@ H5Euu#3C%5 $$  ))RL@RK   ?_O+RK&)&&)&&))&/&&@"H&@H& &P"Q )XYX+?22/3?3?2?999/++]3/F*()&&* +</+<+H++3/]q3/F*( * +</+<+H++2/]3/F*(* +</+<+H++10]]]]]]]]+]]]]+32>733##4>7##"&5467~ T_@q\Av iP "HWiC :{'QOX3]Q^3,9;/L5$Z&:!@rrl|г Hг Hг H@' H"2Bbr"2Br"2Br@V H&6FRK?O#RK!!!!@ H P!XYX+?22/3?39/399/+3/F"(!" +</+<+H++3/]3//+<++10]]+]]]++++]]]32>73##".54>7CMN#>?B'eҴYRR>dF&D: A<  *, @_?  PV:A@1d9t99dtM]mM(](m(2$v@ Ht@ H$t444@ H3$3 $$$ ,,A A1 1%?RK?A??A??AA??.RKC27R7K.1..1..11./..@H. ;P%7.? "*211AXYX+?22/32/3?3?392/+]3/FB(1..B +</+<+H++3/]]]3/FB(B +</+<+H++9/3/FB(A??B +</+<+H++310]]]]]]]+]]+]+]]]]]]]]]]32>73#4>7##"&'#"&5467332>7 | LV9gR<v  @L];yESe@ | LV9gR<v:00,KO3]Q\"KC0,9;/L5wq1U?#$Z&00,KO2\Q_Vh:C@M&]&m&0 HM ] m M]mB@ HdAtAAEAUAd2t22d"t""i9$99v<<$<47##"&'#"&5467332>7332>733# AN_;yESe@ | QV9gR<v| LV9hU=viP,9;/L5wq1U?#$Z&00,KO2\Q_00,KO3]Q\3B:!@ejzcs@R H ! RK    G_o@H@H@ H# @ H !Q  Q PXYX+?32?329//+3/]+++q9/3/F"( " +</+<+H++ć10+]]]]#"&'!7!3232654.+C~rpdYbs?2=@>>bEO[X*6 Endl)A-&:#@"eujz csU@\ HG RKo?O%#RK  @ H #QP  XYX+?2?33/3?329//+3/F$(  $ +</+<+H++ć3/]]q3//+<++9/10+]]]]]]]!3#"&'33232654.+4ҴC~rpdδYbs?2=@>>bE:O[X*%6 Endl)A-&:@eujz csU@K HG_o@H@H@ H!  RK   @ HQ PXYX+?32?39//+3/F (  +</+<+H++ć3/]+++q10+]]]]]]#"&'33232654.+C~rpdδYbs?2=@>>bEO[X*%6 Endl)A- M)@ty  H)+%&I'/'''F@ O   +I/?@ HQP `p &/&&&&@H&&#P?3/+]?3/]9//+q3/]]q399//]10]]]+]2#"&'732>7!7!>54&#"'>#Pn@4Tyh *=M,InQ4ruki#M+btLk>:S52_W/_e "M9@r0#v:5%  * -G  /  G0 O   ;RK@ H%PQ2PXYX+??3?39/32?/+3//+<++ć3/]]q9/]]310]]]]]]]#".547##33>324.#"32>7> e^Zh9_ҴY_bcg49R3/`VH ";R00^TF 4i;t5;qh#':6}t88lcMlE Lt7c*RtH!Mu3!##"3!C?.IdҴY`DlK(.D-6&EcCaL/P=!<-E'{&Hi@ 4&l86 %+55+55"W 9:V4V"0@z H77 22     26R6K   _ < 0 p   ? O   ;"(RK@; H@ H"Q6 P 2(.. ...PXYX+??3?9/]9999/]q32/+33/+//+<++3/]qqr^]3/F:(  : +</+<+H++9/10^]^]]]]+]]"&'73267>54&#"##7373!!3>32G"E 2;; T_@q\An- "HWiC  'BcW T\'QOX3]Q!B7(/L5$Z&>jN-! @EVu  @/?O@ H RK@ H p   @ +.H `  @H S QXYX+?3??/+qq+qrr/+3//+<++3/+/]]10]]!#?3е:I:wCN2@5E *++H I@; H  4*0F@ H-Q**%P  /  @H P HH ?3/++]?3/+]9//+23/]3/+]9/10]]%2>7#".5467>32.#"!!7VD5PmWfa. CUail4W]42H0AjS>sfz">T25KvR,>oZ(^-ouL+.TuG-J5%S`5KV!&Oڹ 88H 77H 66H 55H 44H 33H 22H 11H 00H //H &&H @)!!H @H @H @H @H @H @ H @ H//H@$&&H@""H@ H@H@H@H%+5+++++++55++++++++++++++++++++{&iZ &&H @8!!H @H @H @H @H @H @H @ H @ H&%+55+55++++++++++WM:&5@zk{ H @ HbrU%%@ H R K  !5' 'R'K   @G/@H/@H/@ H///7/?O@H5Q!! Q P',PXYX+?32??329//]+]3/]+++9/]q3/F6( 6 +</+<+H++ć9/]q99++10+]]]+]+]]]#"&'!#"&'732>7!3232654.+C~rpdPDiWKOY8"= '04>bEO[X*؊O  P.6 Endl)A-"':'@j z c s   U@j H'RKG!@H!@H!@ H!!!)RK@ H'QP XYX+?22/3?329/3322?3/+3//+<++ć3/]+++9/3/F((( +</+<+H++10+]]]]]32#"&'!#3!32654.+Ybs?C~rpd[J_ҴYY=@>>bE:6 EnN[X*:6Kdl)A-" +@VV%   @I H  ## R K   / O  -"%!!R ! K   @7 H @ H%Q" P    XYX+?33/3?9/]99/]q32/+33/+//+<++3/]q3//+<++9/10]+]]]]]>32#>54&#"##7373!!w"HWiC wv T_@q\An- Y/L5$Z&]'QOX3]Q!B7(" &tG@ & %+5+5Wg&\@  &%1%+5+5VtJ:+|@%L!\!l!/?O++( && H @ H0 $$Td @ H$4D RL(RKD_o-RK(+((+((++((/((@#H(@H(( P$+XYX+?2/3?33/3?3?9/++]r3/F,(+((, +</+<+H++3/]qqr^]3/F,(, +</+<+H++9/3/F,(, +</+<+H++10^]]+^]]^]]++]]]]]]#32>73#4>7##"&5467 GW&~ T_@q\Av  "HWiC DH~{'QOX3]Q^"KC0,9;/L5$Z&?@S H HJRK R^@ H__lmX+/]3?3?32/+3/F( +</+<+H++3/]3/F( +</+<+H++10]+]+3%#Pn"x@V HRL@+ H RK@ HQXYX+?2?32?3/+3//+<++3/+]3/F( +</+<+H++10+]3#!3!ִMg}:.&:1&250%+5+5f5&ZC)&ִ*-(%+5+5.&:@ 1&140%+5+5f5&Zt&@ )&t),(%+5+5.&:o@ 1&530%+55+55f5{&Zi@ )&)-+(%+55+55&<" & %+5+5Wg&\C@  &,!$%+5+5i|p/Ͱ/ְͰ017!iРi|p/Ͱ/ְͰ017!iРL9@*/?O@H?O/?o@&+H/+]q/+]/107! rÉ L9@*/?O@H?O/?o@&+H/+]q/+]/107! É L+@?O/?o@&+H/+]q//107! É`R'BB  @'7F@"(Hi&6F  f 9@ H tdVF6&vfVF6&tfVF6&VtfVF6&@tbRD4$tdTD4&tdVD4$itdTD6&p`TD4$@.t`P@0 9rrr^]]]]_]]]]]]]]]]]]qqqqqqqqqqq_qqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]qqqqqqqqqqqr?2/+^]]]9^]qq+r10]7>733 #+y:K Y&4VKB AA K@tVf@!H4&t@ H ) V  %*H @"HI   @ H   vfF6&vfVF6&tfVF4$dRD4$rbRB2"r@`P@0 rbRB2$tdVD2"itbRB4$p`TD4 dP@0 @9rrrrr^]]]]_]]]]]]]]]]qqqqqqqqqqq_qqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]qqqqqqr?2/+^]]++]9^]+]]qq+qqrrr10]#>7#73 "*{9K X&4WKB A? A@+      @ H     /3/]+_]]]910]%#>7#73 "*{9K X&45VKB A?$@ / ?2/]39/910##.546?&X{)3Y.'U+ G* h@F  { ; {   @ H  @ H  ?322/+]q9/+_]qr910]]7>733!7>733 "*z9K X& #+y:K Y&4VKB AAÒ4VKB AA @+;+;7WGW5&GwH@Hw(HX   I    g w   ( H    yiH9) wg8)@vfWF6'wgUE6&tdSD5#t`P@2$rbRB4&vdT@B2$ip`RB2$rdTD6&dR@0 9rrr^]]_]]]_]]]]]]]]qqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]_]]]]]]]]]]]]]]qqqqqqqqqqqqqqqqrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]qqqqqqqqqqqqq?32222/^]]]qqqqr9/]]+qq9^]]]qqqqrr10_]]#>7#73#>7#73 "+y9K X& "*{9K X&4WKB AAÑ4WKB AA& q@(++wF'77G@. %H%gw(@H(  @H    (    vgWGW6&ueUF5&wgUE4$tdTE5#@ucTD4%pbRB4$tdTB2"ip`RB2$pbRD6&ydP@B2"9rr_r^]]_]]]]]]]]]]]qqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqq_qqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]qqqqqqqqqqr/322/^]]]+9/]+9^]]]]]]qq+qqrrrr10_]]%#>7#73#>7#73 "+y9K X& "*{9K X&25VKB AAÑ5VKB AAvX @g )){{i{g" p /  o/_  /?22/]q3/]]9/3210]]]q]]]]]q]]]#73%s Z-eg rxDsZ@[  p/o/_   ?22/22/]q3/3/]]qr9/3/9/]r1073%% %%#7G b9Yo Z%m :Z dYxxGa@9 6fvvI&6fv @ H  @ H   @HfVF&y&yiYY))iVF})n;+ {m]K=-_@0>rrr^]]]]]]]]_qqqqqqqqqqqrrrrrrrrr^]]]]]]qqqqqrrrr^]]]]]]qqqqrrrrr^]]]]]]qqqq/+^]q+/^]+^]]]]qqqrrr10_]]]]#".54>32,Mf:9cK++Kc9:fM,:fL--Lf:9dJ++Jd H@2 ?_o/_ /2222/]q/9/10!73!73!73++++++3-G[u@gHueet@Hzrr9Hu77F@HzDD Hu @Hzyl H_@ H> H1@ H H@ HIY3@ O@@@@@@ H@@}n@zayɇ@&)H6@HyfI;& ُďiV9$ɏi[F)+@ 9 !6Ffv R;vH\.i;$  ۏ͏iV9+ ُˏi[)֏tfI6֏dV4& ُƏym[K;$ ˏk[D+@ˏt[@4ԏ[O0$iۏď{dK;$ ۏďkT; ˏk_+9Џrrr_r^]]]]]]]]]]]qqqqqqqqqqqrrrrrrrrrrr^]]]]]]]]]]]qqqqqqqqqqqqrrrrrrrrrrr^]]]]]_]]]]]]]qqqqqqqqqrrrrrrrrrrr^]]]]]]]]]]]qqqqqqqqqqqr??3222??/^]3/^]8^]]]]]]]]]]qqqqqqqqqqqrrrrrrrr3/+q+q9/+]q9/]]810++++++_]]]+]+]+]+]+]+]2#".5467>"32>7654&2#".5467>"32>7654&%2#".5467>"32>7654&#32XB' Vfi)3YB&Vei'!?8.;6<7/82XB' Vfi)3YB&Vei'!?8.;6<7/8c2XB' Vfi)3YB&Vei'!?8.;6<7/8Х;_EL&fI>bDJ%kFl2ZIN7IE3ZGP;H@;_EL&fI>bDJ%kFl2ZIN7IE3ZGP;H@l;_EL&fI>bDJ%kFl2ZIN7IE3ZGP;H@z5@# H6F )2B@/?/]]]10]]+3@Ğzz&UV]@Egwhx [@#H@H//o/]/]_]++]q2/]10]]%73 _  i m?s(R\@"fviy`P$+H@H//o/]/]++]q2/]10]]7#7 73 'ot?M&T///10!5!^3@{p/_o??/8/]]]810]]!#3l~\%J @VH_="M"]"9I#)#)$%R% @#H9Y'6'''V'f''%(H'@; #H'' ''I'' R      $ %@ HIYy+;  ''''''''v'f'V'D'2'$'''''''''''t'd'P'D'4''''''''''t'`'P'D'4' ''''''''''t'd'T'4'$''''''''''t'T'D'$''''@ƴ'''t'`'T'D'$'''''''t'd'D'4''''''4'''j'''''t'd'4'$'''''''''''t'd'T'D'4''''''t'`'P'D'4' '''9''rr^]]_]]]]]]]]]]qqqqqqqqqqqqqqrrrrrrrrrrr^]]]]]]]]qqqqqqqqqrrrrrrrrrr^]]]]]]]]]]]]]]qqqqqqqqqqqqqrrrrrrrrrrrrrrr^]]]]]]]]]]]]]_]]qqqqqqqqqqqqqqqq/^]]]]3/+299/99/]q3/]++ć^]]]++qr3/]]]+]qr3/++10]]]_]]+>54&#"#>533>32I/4HiGdw+4@*Q]Kv0/1d^.("# . Y\0@Q     R ^    @ H  ` _/?/ _ lmX+?3?9/]q9/32/+33//+<++ć/3/99//10!!!!##73!\Q)n66{$Ձ:c@6zzZ j %$%"2B"(B(R(b((   @ H(,,& '*+./&/ &/R/q    o:0:@: 0  : :o<@ H /4. u+*u'&_o@H_o 4#s4t:::X+?3/]2?3/99//]]qr+]qr99223299/+3/]99//]]3/F;( ; +</+<+H++939310+]]]]]]]]]]]#!7>?#737#737>32.#"!!!!!2>73NeyCFbvEmgFy^@$6D(rhh +=M-,O@06UwI!.y\f7:V820$s}8gWD+E2N )_n@ |Zj<@ H%5Eu%(u((] H@@ H( H %[# )$#)Rr#'##'##IoH`n>oQ4o[KH[HkHHHH@H?HH/H/[?[o[[[[[@H####@!H#0#_0#H[QQ[H#h-o.@H..pfggRgqhihiihiih@ HhfPQV94C1u*O._.o...*#$u'* '())`)'P'`''))'LPighLuCC@IPI`IIIICX+?3/]32?3?9///]]]]333299/3/]9/+3//+<++ć3/+9/////]]]+]+]]_]+]Fo('##o +</+<+H++93310+++_]]+]]4.+3263#3267#"&5467#73732.#"#".'732>54.'.54>%+#32g-RsF8l^LH*!"$Q^Ohodn鍞 QKJX.K62VA%5dZKqS6XX-K63P8+R@'5^3OԄjtFA\<Ԝ+v1R~bV8u`*:'/" $7M5CdB!0L54;8 +!$ "3I3B]<nyA6d;@zz{::Ueu6%6.%.5.% !%9o$8o9 90999=..%%n0'$@ H$$u''-u00_'o''_'o''''0/0?000/000'0'0399s3s`?3/]?3/99//]q]q3232/+222233]3/]9/]9310]]]]]]]]]]&!!!!3267#".'#73>7>7#73$72.94lg]$AR Al @`Bj*PnW]qA@p AqN'Wc> sKy'J#Vb5ia0BmO+@Ä#J' +OqE#[c,0J^@--// Hz<<<IH@HEUe HA H4 H0.@0.0.6RC6'\7\G\\\\@>!H\\\\`````{`L`\`l`-`=``````````@@ HH`9```H``g``(` ``(@)6H@&H@HK1U>/- ! `````x`i`X`````h`X`H`9`(```ʸ```y`j`Z`I`9`)````g`H````````y`j`Z`J`;`)`` ``````@``z`i`Y`I`8`)``````````y`j`X`I`:`)`` ``````y`i`Z`I`8`)`` `i```````````~`n`^`8`(``````@vW]H``````~`o`_`8`(`/`?`O`` `````````~`k`Y`J`;`+`` `9``````_r_rrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqq+qqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]]qqqqqqqqqqqqqqqrrrrrrrrrrrrrrr^]]]]]]]]]]]]]qqqqqqrrrrrrrrrr^]]]]]]]]]]]qqqqqqqq?3/^]3/???/+++]3/^]]]]]+qqq+qqqqqqrrrrrrrr3/]+qr99//8810+++_]++]+]]267#".5467>32.#"#32#".5467>"32>7654&Ij:ToFLlF!VmDDfE$#6%4R?.$805^G) Zjq/7_F( Xjq0%F>4B<#C>4?|PY6^F(2XyG"G&}b'*F^5 !9*#MwTUC-K6 IvU%]0~["$MxT%[.WlCxbjHb\Dx_oK`V*:@)1\l?1O1@\ H (((0 H!!%&"1"1 0 %0 R r&&@6666&&!! &"01%+!!++??9/9/9999/3/3/3/]]2/͇++10+]+]]]]]232673#"&546?7>7>">54.2P]DtV-0:V&E9EU6`mHH&G"r.HeE, aGtR.dlrϰ-A=6hmLuN(lnC!IKJpK&L#37=R=@>?>??>??>>/>>@13333@333K+?HG@G7?`=6IA>lmX+?3/?3/399//3/]]/]3//+<++99//]3/3/+3//+<++ć++10++]+]+]]+]+]]+]+]!7!".5467>32"32>7>54& #367>737{LrK%HhOMqK%Hh*J?2 *;$+K@3 WJ ++OnCC ^V(+OnCC ^V(6`M*D1E+8dO*F^M3.0)]'QA+0)e3z)1@ H @HYiy'H' HH@ H@,101@11+.?.O..+@,/,,)'/_o3o3*./'/  , ,P,, ,/33_3O33333O3333O33;33rr^]]]]qqqqrrrrrr?^]2/333/332r3/]33/]]]]]]9/]2210++++]+]+5#.'&'#367>53##5!l  (z $,6 3)"hoon9O@y7ucscsc%s%%c$s$$3Y3i32 HYi H:&1 $H1]1m1}1;1K1 $H ] m } ; K  +[k  + [ k 0\( \/O( (0(((((@c H((#)3)))))))"[/555JZrfT[@%H@H@ H;'@ H' 0'*_)_??32/+33/+++]3]]]q/]3]qq99//+]q]]10]]]]]+]]]+]+]]+]]]]]]]]267>;!5>54.#"!532.54>Z;mc*'!G`Y*=tlmt=*Y`G!'*cm;ZVj63~Ut|AA|tU~36jVX|H"/r@KZ@##[##T#d#t##+#;##1/;K@H///) ?2]]?9//]_]+]]2]]]qq210_]".54>32!32>7.#"kƆE,Lfv?qQ@NX.Kt]M"H$Sn;L]53WJ<"]ob}]<Oу-# N&s 'n R?555cN&'n >?555|:&>'Z >?555d^D@  //29910#.'5>73!;H:RR:H;)"bADp*$*pDAb"V@ @ /299/105>73.'#"bADp*$*pDAb"V;H:RR:H;#d^D@  //29910.'3#>7!5;H:RR:H;#"bADp*$*pDAb"V@ @ /299/10%>7#.'53+"bADp*$*pDAb"V;H:RR:H;d^D$@@ //29929910#.'5>73!.'3#>7;H:RR:H;;H:RR:H;)"bADp*$*pDAb""bADp*$*pDAb"&@@@ /299299/105>73.'>7#.'5"bADp*$*pDAb""bADp*$*pDAb";H:RR:H;;H:RR:H;H#(@#  /299299/3210!!5>73.'>7#.'5 "bADp*$*pDAb""bADp*$*pDAb"hPX;H:RR:H;;H:RR:H;8/E@y  HZ2j2DH@ H+C{CC@ H DDD@ H  * '@*''0F@OG323>54&#"7>32.#"32>  `a]N#/IfS*M@2;:6$*tCq^)$3@$5VC1 *A,BlS8.gkj0ΐM?kK32>32%"32>54..#"326o,RrGaFLTZ.EsS.,RtG^C JT^3ErQ-Fw83wM,F33G]3wN+F10G/FxNNj>?fH'7dXQh<>fI(7e~(F^66\E'(F^63]E)~` //103!!^j8^_@hxhx  yiI9+ iI)iI)  iV-k[K;/oK;/k[O;/o[@O;/ o[O;+ {o[O;+k[K ikTD4tdT4 {kK;/ 9r_rrrr^]]]]]]]]]]qqqqqqqrrrrrrrr^]]]]]]]]qqqqqqqqqrrrrrrrrr^]]]]]]]]]qqqqqqqqqqqqqrrrrrrrrrr^]]]]]]]]]]]]]qq_qqqqqqqqqqr^]]]]]]]]]qqqqqqqqrrrrrrrr/2//10]]4>32#4.#"Dzbc{Fg5_NN^4tLLtbl98ld9#8@#!!%! *F O   PP/?/]]3/2/10]]"&'532>54>32.#"$$K>#3B'2Z}K"K=$3B'2Y|9 %@T0^V( (AT,-^V)LP@!C@"H$X$$$HXA HB0 H=0 H*г H0@ H H 0 H0 H Hг HгH@ H?4Tt@3H[$- @ H $EDEdEEEE$EDEdEEE$EE;@-#@)(1$1411@ '323267"&'.#"5>323267T"  H  ///10+#47632#"'.'&#"TR?K3% !$ V{{?0(4 ''#i  H ///10+3#".54>3232765"Z(g>2%!%}86'"%)j%?33105! %iH??103#ؑHK"??310!!#(in"??3105!# (%%H"??3103!!Hn%H"??3105!3 %H' ???23103!!#iHnnH'???33105!3# %K( ?2?33105!!# i%n%H( ?3?33105!3! %nH 3  @  ?32??3223105!3!!# i%nnqj% ??3233105!5! AّH*A ?2?3103#3#ّhHK Kj 1  ???23310!!!!#(iijב" 3     ?3?2310!###בnn#j ? A    ??3?3310!!#!!#htjo"j 1    ???333105!5!5!# i(qב) 4A    ?2?33105!### ܑב%nj ? A    ??3?3310#!5#!5!ґttj)F)ޑqH 1   ???233103!!!!iH"ב%H 4 A    ?3?33103!!33A$Hn#nqH ?  A    ?2??33103!!3!!ّK$hH"qH 2    ???332105!5!5!3 iqב)%H 4A    ?3?3310!5!333$ב%nqH ?A      ??3?3310!5!3!3!5!$KqFH 6    ????2233103!!!!#iiH"ב"H 8     ??3?323103!!#3#AHnn KH I A     ?3?3??223310#3!!#3!!jt " "H 8  @   ????3322105!5!5!3# iqבKH ;A   @ ??3?332105!3#3# 㑑h%K#KH I  A     ?3??3?2233103#3!5!#!5!A㑑tHK )ޑj 9     ?2??3333105!!#5! iiq"h :   @  ?22?333105!!### ב%nnj J    ?3?32?333310#!5!3!!#!5jtttAޑ"בqH :@     ?3??3333105!3!5! Aّ"%H :  @  ?33?333105!333! ב%nnqH L@  A      ?3?32?3333103!!3!5!5!AH"oHL  @    ?32?32??33222233105!5!5!3!!!!# iiiqב"ב"HM  @     ?3?3322?3322223103!!###!5!33AבHnnnnH ]     ?3?32?3?3222332233103!!#!5!3!!#3!5!AבttH"ޑ" mH/?3310!!Umm?/3310!!UH??3310!!U H??/310!!* H??/310!!* *g #'+/37;?CGKOSW[_cgkosw{1mUE- y@ xlTD, xeM5@ dL4qYA)}@ |pX@(|aQ9 @ `P8u]=%@!t\<$x||xiI1!@hH0 gckhd`h_[WT\XTSOKHPLHC?GD@.)'.@D%T%K![!K[DT #//10]]]]4>32#".732>54.#"Fz^^{GG{^^zFV9bLLc::cLLb9d^{GG{^^zFFz^Lc99cLLc::c# /]/102#"'&5467>76jnk5RS4l9R46n9:m64R9) //103!32>54.#")Ex[[xEEx[[xE}A[xEEx[[xEEx)+"@" '//103!4>32#".'32>54.#")Q:cKKc::cKKc:MEx[[xEEx[[xE}AKc::cKKc::cK[xEEx[[xEExscu" //10#"'.5476324'&#"3276c%%%V3eK#%HJfgGJL33FF3331HH13}5V%#%H%V5fHJJGgF3333FE6116y!-9D@] $ t $t+{+{D"(?4.(.(.1%+7+>:h:Y:G:::b^0H[[׀ؙٙW .. -- .. --#_[)4`@7*/$'!04h4Y4K4=442-_oO-_--- /99//]^]3]]]]332/99//3310#"'&54676324&#"326%4&#"326327'#"'ZZZZ. -- ., // ,0^b>LLH[[ -- .. -- ..[_#Fs;3F/@ H4.4$w##@M H H;;  H;/4#4;B p ?   9+>0/43?3O33/^]]]]]/]]]]10]]]]+]]++]]]+373#'#5.''7.'#5367'7>7"327654'.B 965--,,(17:"B?n0+(. P(9p6Eu0bb0uE`cc1u;  -;q9>_1(,=20db2/aac02P&/b@>++++""""P'''@%(H /+^]2qr/]32/qr]qr9/3210.'&547>32!!#!5!"327654&'&7Z#GS,e>SW;=>B.*PlzS++VSzmQR FF;G,+G>>=T,G;QAQF@(1A;NN?  33FF;A1?J777B??/^]]]99/r]]r9910.'.'.547>323267632#"'.'#"'&547632"327654'&6%( ? .@$    TVWvvWTTUzGSZ>==@XY<>><      "O-@" '*R*Qm}VXTTuuWV+ >=X[===>ZW>>;/(@& 0 ` p  "@ H"O_/]//+3/]/10#"'!727>'#"'&547>7>76 (_E#%?BXc$&}V+B,-SZB?N9En&86_,+i?~BCF_?BWVc %%1E[wK`_B?[J;*U/;q9S<K/@9M?4=C /)//99//]923/]10)7>7>7654&5#"&'&547632.'.547>3267>32#"&'.'FTl)@4:Z+X-;a)OII]P3N(a2+C.=#!K2dmy;*&StsOP"4&sN&(PNmVb(%)LtvSP<3=-Q}.-L'fZy'&@) @ P p  ///]10^]].'.'.'.547632>32b*gL8E+%DFfbN/"X2U#F)N7>-qEEt/'xSEj( #&b<^Q2P;`N]]5(o]H: 9Pwc;kM;!0@! @O_o! //]9/9/]2103#>54&'&'#"&547632L3:0./9@%%Hl9:Q0*%#Jj9:;b&J5-L9<guE.&IL9E.&IO9TDE@+ H 0 @ P  ?O P`p/]/]/]/9/810+#"&'732654&#*73~j$JoJ#10$ZL7@1>VMG.M8`:.!`X9f ,5Eд H  @  /2/910+]#>7#73RC1u6D X Wu/0`.'3 @jVfxFVf@u H%U   @HR  _o  @*2H @!$H  /?@H ?3?339/+]32/]]qq3/++]/]q3+++]10]]+]]]]#7!733!>?##kl}   8岲o-q %'# !&&"N'&v  H H H @I H%&@ H&& /?O(/?&&"@P`??3/]9/]q32//]3/]39/+310+++]+]!!>32#".'732654&#"#rCV<8[A$(OvO@aG- '9'QSM>2M|q'"?Z8HuR,":M+1&b]QJ#4R@6{   Y i    @H @ H ?3?2/++]3/]9/10]]]#>7!7!RxUVwN*aaffXqK(%7E@X H# H H H ; A3!A!A!A?+O++++++G;p/?O 8&&>.??9/93/]]]3/]]99//9]910++++2#".54>75.54>2>54&#""32654.;`E%2G,7HqXB,;L14VD2gBd =[;=*D04G($2dO1 -5Eд H  @  ?2/910+]#>7#73C1u6D X Wu/0`.+ +@( H0 H   /2/910++>733#1C1u6D X %Wu/0`.X0@r@0@_@ H/+]]q/10]%73}ϭ 0@p@0@_@ H/+]]q/]107%3 \ @ f v x@_H `p/ 0 `  @ p   P @ H@$H@ 0@_@ H/+]]q3+/+]]]qqr3/]]9=/3310+]]#'##7%3\_q @Q@Pp o  @ P     _  0 O_@$H0@_@ H/+]]q+2/]^]]]qqqrr3/]9=/]3310]]]#'73373x̻]tG?@'00@_@ H/+]]q32/]q32/321073!73w####B@)% *! @ /23/3/]10]]]".#"#>3232>73*LE?) d&9S;,LD>) f%9S(1("/-_N2(1("/,_N3q| j @DH +K[k@Hp@ 0@_@ H/+]]q32/]]_]/+]+10_]?33?3q4@   0@_@ H/+]]q2/3/10".'33273JnJ%tgS@uA[v)EZ1;6r1[E)$Y $<V\_birxh$$7h$9$:$?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a bcdefghjikmlnoqprsutvwxzy{}|~     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~uni00A0uni00ADuni037Euni00B2uni00B3uni00B5uni2219uni00B9AmacronamacronAbreveabreveAogonekaogonek Ccircumflex ccircumflex Cdotaccent cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gcircumflex gcircumflex Gdotaccent gdotaccent Gcommaaccent gcommaaccent Hcircumflex hcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonekIJij Jcircumflex jcircumflex Kcommaaccent kcommaaccent kgreenlandicLacutelacute Lcommaaccent lcommaaccentLcaronlcaronLdotldotNacutenacute Ncommaaccent ncommaaccentNcaronncaron napostropheEngengOmacronomacronObreveobreve Ohungarumlaut ohungarumlautRacuteracute Rcommaaccent rcommaaccentRcaronrcaronSacutesacute Scircumflex scircumflex Tcommaaccent tcommaaccentTcarontcaronTbartbarUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentlongs Aringacute aringacuteAEacuteaeacute Oslashacute oslashacute Scommaaccent scommaaccentuni021Auni021Buni02C9tonos dieresistonos Alphatonos anoteleia EpsilontonosEtatonos Iotatonos Omicrontonos Upsilontonos OmegatonosiotadieresistonosAlphaBetaGammaEpsilonZetaEtaThetaIotaKappaLambdaMuNuXiOmicronPiRhoSigmaTauUpsilonPhiChiPsi IotadieresisUpsilondieresis alphatonos epsilontonosetatonos iotatonosupsilondieresistonosalphabetagammadeltaepsilonzetaetathetaiotakappalambdanuxiomicronrhosigma1sigmatauupsilonphichipsiomega iotadieresisupsilondieresis omicrontonos upsilontonos omegatonos afii10023 afii10051 afii10052 afii10053 afii10054 afii10055 afii10056 afii10057 afii10058 afii10059 afii10060 afii10061 afii10062 afii10145 afii10017 afii10018 afii10019 afii10020 afii10021 afii10022 afii10024 afii10025 afii10026 afii10027 afii10028 afii10029 afii10030 afii10031 afii10032 afii10033 afii10034 afii10035 afii10036 afii10037 afii10038 afii10039 afii10040 afii10041 afii10042 afii10043 afii10044 afii10045 afii10046 afii10047 afii10048 afii10049 afii10065 afii10066 afii10067 afii10068 afii10069 afii10070 afii10072 afii10073 afii10074 afii10075 afii10076 afii10077 afii10078 afii10079 afii10080 afii10081 afii10082 afii10083 afii10084 afii10085 afii10086 afii10087 afii10088 afii10089 afii10090 afii10091 afii10092 afii10093 afii10094 afii10095 afii10096 afii10097 afii10071 afii10099 afii10100 afii10101 afii10102 afii10103 afii10104 afii10105 afii10106 afii10107 afii10108 afii10109 afii10110 afii10193 afii10050 afii10098WgravewgraveWacutewacute Wdieresis wdieresisYgraveygraveuni2010uni2011 afii00208 underscoredbl quotereversedminutesecond exclamdbluni203Euni2215uni207FlirapesetaEuro afii61248 afii61289 afii61352uni2126 estimated oneeighth threeeighths fiveeighths seveneighths arrowleftarrowup arrowright arrowdown arrowboth arrowupdn arrowupdnbseuni2206 orthogonal intersection equivalencehouse revlogicalnot integraltp integralbtSF100000SF110000SF010000SF030000SF020000SF040000SF080000SF090000SF060000SF070000SF050000SF430000SF240000SF510000SF520000SF390000SF220000SF210000SF250000SF500000SF490000SF380000SF280000SF270000SF260000SF360000SF370000SF420000SF190000SF200000SF230000SF470000SF480000SF410000SF450000SF460000SF400000SF540000SF530000SF440000upblockdnblockblocklfblockrtblockltshadeshadedkshade filledboxH22073H18543H18551 filledrecttriaguptriagrttriagdntriaglfcircleH18533 invbullet invcircle openbullet smileface invsmilefacesunfemalemalespadeclubheartdiamond musicalnotemusicalnotedbluniFB01uniFB02uniF005middot commaaccent foursuperior fivesuperior sevensuperior eightsuperior cyrillicbrevecaroncommaaccentcommaaccentrotategrave.ucacute.uc circumflex.uccaron.uc dieresis.uctilde.uchungarumlaut.ucbreve.uc LNDFLTcyrl$grek.latn8 TbDFLTcyrl&grek2latn>kernk 2Dbt ^dvv6Xr@*l "(np 4 B   $ . h : ` f  4 Z p  ,>HZ`n $<V\_birxh 7h9:NC +T dRT~/Z]33Zf  Px1ASC!!Q3>`: D9OsAsp1JLX}989.9sUs!sssss_sss0Y|{|$d$V$$9d$9$s$$$$9dV$9d$VwVVV9oRUs!s #s?:s?J#9#9$s#9###?;#sVUsn9css=evsLssHs'=s>hsHK>k3dWG`sj9~Xbfs&bbnQV$V$V$V$9$9$9$9$$9d9d9d9d9d~9#wwwwVV$#s s s s s s *s?s?s?s?s?9#9#99#:#?????dE*UUUUsss s s ds?ds?ds?ds?$::V$s?V$s?V$s?V$s?V$s?9d9d9d9d$#$#9$99$9#9$9#999$9#B$s#s9$$s#s#$9#$9$+#$#9$#$#$#$#9d?9d?9d?g:$#$$#VsVsVsVsKVwUwUwUwUwUwU9cVsV9#ss *9#*VsVLJjD:?9q9$$$_V$$9d9$$V$$B9d$V$V`V?9$V9%9Cf9sl71%vl9C%ssi1?CBLO@E9f@L/b79Cf?f7V$$dV9$9$sV%$k7#$$$oV$k$$$$$$9d$V$dk7?NV$$$$$*V#s ]'E<s? UU$##?#s?#s?s+UjU{UM&&j#s?##?s9#9#9$?%#$sU$#9c9c9cVs88s,k9999ss2ZHI!OVT+\ss;s!$ +*%]b?+}d|Q1dDd;ddWdWd"g{mm+))s+kUFQ@;@<fBJJ]PFU]X@-o:B~~ O\_    " & 0 3 : < > D  !!!!"!&!.!^!!"""""""")"+"H"a"e###!%%% %%%%%$%,%4%<%l%%%%%%%%%%%%%%%&<&@&B&`&c&f&k ~Q^    & 0 2 9 < > D  !!!!"!&!.![!!"""""""")"+"H"`"d### %%% %%%%%$%,%4%<%P%%%%%%%%%%%%%%%&:&@&B&`&c&e&jG/vhzyws /,$#>1"DC:741.' ܸܿܳܰܨܜIFE(&%" bcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?w6   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`apcdhvnj#ti<7q>?fu143:kzvbm6@;2l{   }8w KRoNOPxSQL@EYXUTSRQPONMLKJIHGFEDCBA@?>=<;:9876510/.-,('&%$#"! ,E#F` &`&#HH-,E#F#a &a&#HH-,E#F` a F`&#HH-,E#F#a ` &a a&#HH-,E#F`@a f`&#HH-,E#F#a@` &a@a&#HH-, <<-, E# D# ZQX# D#Y QX# MD#Y &QX# D#Y!!-, EhD ` EFvhE`D-, C#Ce -, C#C -,(#p(>(#p(E: -, E%EadPQXED!!Y-,I#D-, EC`D-,CCe -, i@a ,b`+ d#da\XaY-,E+)#D)z-,Ee,#DE+#D-,KRXED!!Y-,KQXED!!Y-,%# `#-,%# a#-,%-,F#F`F# F`ab# # pE` PXaFY`h:-, E%FRKQ[X%F ha%%?#!8!Y-, E%FPX%F ha%%?#!8!Y-,CC -,!! d#d@b-,!QX d#d b@/+Y`-,!QX d#dUb/+Y`-, d#d@b`#!-,KSX%Id#Ei@ab aj#D#!# 9/Y-,KSX %Idi &%Id#ab aj#D&#D#D& 9# 9//Y-,E#E`#E`#E`#vhb -,H+-, ETX@D E@aD!!Y-,E0/E#Ea``iD-,KQX/#p#B!!Y-,KQX %EiSXD!!Y!!Y-,EC`c`iD-,/ED-,E# E`D-,E#E`D-,K#QX34 34YDD-,CX&EXdf`d `f X!@YaY#XeY)#D#)!!!!!Y-,CTXKS#KQZX8!!Y!!!!Y-,CX%Ed `f X!@Ya#XeY)#D%% XY%% F%#B<%%%% F%`#B< XY%%)) EeD%%)%% XY%%CH%%%%`CH!Y!!!!!!!-,% F%#B%%EH!!!!-,% %%CH!!!-,E# E P X#e#Y#h @PX!@Y#XeY`D-,KS#KQZX E`D!!Y-,KTX E`D!!Y-,KS#KQZX8!!Y-,!KTX8!!Y-,CTXF+!!!!Y-,CTXG+!!!Y-,CTXH+!!!!Y-,CTXI+!!!Y-, #KSKQZX#8!!Y-,%ISX @8!Y-,F#F`#Fa#  Fab@@pE`h:-, #Id#SX<!Y-,KRX}zY-,KKTB-,B#Q@SZX TXC`BY$QX @TXC`B$TX C`BKKRXC`BY@TXC`BY@cTXC`BY@cTXC`BY@cTX@C`BYYYYY-,Eh#KQX# E d@PX|Yh`YD-,%%#>#> #eB #B#?#? #eB#B-,zE#-P/@2o@@ ===U=Uݸ</A  @@F0GOd`@  @`p_<@2/?O@&)F/?@F5P&'%%`K&&&&_o@FG2mvP&uP&tP&sP&/y?yOyqopGoGU3U3Um)mlaP&`_2_P&cGbb bF)b9bIb^G][\[3[G2@AU2UU2Uo?Y_S@S(,F@S"F@SFRQ(QOPOO)OYOiOGu@=PNMMMMGLG2KG2JGIIGHG2G2UU2UU@=@ 0p?_/Oo?_o_TS++KRKP[%S@QZUZ[XYBK2SX`YKdSX@YKSXBYststust+++++++t++t++++tss+st++++++sssu++++++++s+t+++++ss+++++++s++++++s+s+tu++++ss+st++++++t+st+st+++sssss++++t+++su+++++++sssssssssss}y:wW' ,"-mB?]%u\1DsNpp`HjgaAohS}D,,,,`.T`(V  0 Z   ` 0 TVPbpT&>PHD>< !""#$&$%^%&H&'@'(t))v*2*+X,,-<-./D/0&012Z23&34b45\6D67788999:^:;0;;<<=@==>.>>>?????@@$@@@@@AA.AHA^AvAAB.BFB^BvBBBCCCCDD"D:DE2EHE`ExEEEFFFFG G$GPTPjPPPPPPQQHQjQQR0RHR`RRSS,SDS\SSST TdT|TTTTTUUVVVVVWW*WXXXXYY Y6YNYfY~YYYYYYZ Z"Z8Z[[6[N[f[~[[[[[\\,\@\X\p\\\\\]]]2]J]^^,^V^n^^^^^^^_ _._D___`&`t``aaaaHavaaab4bNbVb^bc ccc$cccddd&dddldde(e0e8eefgjgggggghhirijfjkdlllmfmnnoopRpqXqrVrstzu@vvv6vNvfv~vw(w@wwwwwxvyyv|L|d||}^}f}~J~R,(@Ɓ,4D4ҖjV"*d|0ЙؙЛ"f~ƛ(D`ZrRr|Ң`즒ΧDlv6ڬl&ޮtnZZ|³4N2JԷ@^8f &HjԺ FxȻ&`&V(\ֿ B8n2| 8PhD2NvȄȒȠȮȼDxɪR˂2̬Dͤ*~θzϠHjHx(Jj҄ҢBnӢDdU./<2<2/<2<23!%!!D $hUDO@) RR 0@P`@,HlmX       ]]]]]]]+??0//]q+]q/+<+++10#!!&4 4/@oo p ]]?32/]q]10#!#!`HHAps@*     R@ R  @L    @ H!       O   /3?399//]q]q33223322/]]33+2299//++ć++10]]3##!##53#533!33!!ERPPOFTR3TToH5F^}}LLh1:E@~00A H@ H$;%656E6%555E5+2!,-56 A@ r)9 2o'&/&&G;o @-56t,Au !?33/32?33/329/3]29/]3]]]]q+}]]]]++10]#7".'%3.54>372.#4&'2>"8L҆!p RoE`[IMf;-Nhu};nY_4 *1C\k:X_I2]G*r'9%C3R9op;-XR*XY?[xLLxZ?'~.Pm>9,=%>WtMQ-E+! K3Ep.H]a5@`^a^_`_`^_a_a_4QA4,"'4[['[[c% I/T<_`fc'ccccWc6cucWcGc6cccccc'ccc[cKc"32>7654&2#".5467>"32>7654&#3"?pU1 cw|5>lO. _ry4:3+ ,*:5-2`?pU1 cw|5>lO. _ry4:3+ ,*:5-2 > IvU%]0~["$MxT%[.W9gT5Y%IE9fPmMJA| IvU%]0~["$MxT%[.W9gT5Y%IE9fPmMJA%1B;O_ @6I*DfCB BA A; ;3 3<L  +   33/X?XOXKAJE4A''"*FFSSXPIP  XI!"-a aKJ/?OfSUS[AY'A44!97.54>32>73267#"&'#"&2>7.'>54&#"1@r\ 8lhK|Y0L] )3!Iq0>GO*(]39'!?+[@F[{T"B<4"<3((P>'1F ?lN,C:'E3bWpV 2;A!Rf9 A`@UeP&*RQS,NjS8okc+" <9." -cc`+.@V9+G1g,E .8H0363N@*6Fv&6FfvVfv@$'HoFVv @HF6&vfVF4$vfVF6&vfV&fVD6&tdTD4$@vdTD4$p`P@0$ip`TD4$tdTD4$dTD4$9rrrrr_^]]]]]]]]]]]]]]qqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]_]qqqqqqqqqqqqqqqqrrrrrrrrrrrrrrr^]]]]]]]]]]]]]qqqqqqqqqqqqqqrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqq?/+^]+]qqqr10#!IJWj=@'   H   ??/]]2]]9/3]10]]!&547jHKIKAÁlɳL- oLWn@ +@.1H/?   HT tdtdTDD4$td4$tdk$ jK4$@4d4+k;$ :_rr^]]]]]]]]qqqqqqqqqrrrrrrr^]]]]]]qqqqqqqqrrrrrrr^]]]]]]]]qqqqqqrrrrrrrr^]]]]]]]]]]q??/^]2_^]]9/3]q_q+r10$4.'!  &8$ KVAÂWdrOJrXm3@!   `    ?/]]q]10]]]7''7'73>DDoh=y{=h} a@< _  @ 0P ?32]q+9/_^]32^]+10#!5!3!q9hh1S@     @H   XYX]+/]10//]+/+<+}]2910%#>7#![ $.7 #@4$;!BCn]N##NRR(18o#@P/?O//]]107!8//.17@ @HXYX+?0//]+/+<+}103!.;!;14@??/+}10]3LK) U_58@#   o&&71o/s)s??/]]10]]]]2#".5467>2>7>54&#"Sj>L]jtz>^e4N_mty7[L>IO54.#"%>32! %0zsU2+<#'D9,R|nqj22Vq{j&,Std\W]e;(7!*G5;QZ11ZPNrd\Y\c8\;K@,))!::+!o6o= ,+:s;;1s&s??9//32]9/910]]2>54&#"%>32#".'%32>54&+7/iW9MP[x^cfo:0]V?fH'D~|x?#9O18S7lpk,=0WGHSZ^4^V)/YQL~]: /LhBWyG6aO&2C) 8M-]]P w@H Rq0/tX+?3?339/332/]33/]]q/+<++10]!!7!3>7!j66)r* !#Xo273 +10,t@ #o.+fvW@-HvUe,(sss??9//3]2]]]q+qq2]2/]10]]!!>32#".'%32>54.#"!<O+W1>N0Nd9N׉pqA 0H3CeC!3E(Ab' 6jewƎO5]K-*?*,Mf9:T6.-_~"4g@D   +oo*6'#o0tP`&s &s??9/]]q/]2]]2]]10]]]]]".54>32.#">3232>54.#"ko9_EpM JBs'5gO]3Mb[3V>#0A&-XE+EwYJ}_)IFHY1_[oȘZi|(MoG4L1"Cf2@ @ o @H s??/+2/]2]]10!!67!,TydM#f3 p'9Ma@< & "5-- oIo--O5o#?o@ H :u((Du0u??9/99/+]]99]]10]]]]2#".54>75.54>2>54&#""32>54.en;+QvJ3U<"FЋws8Ci<\_E<32#".'%32>4.#"32>7>1CLY6R[1Qx_uB &fUpJTN,[UI@/A(6ZA%/B'&K@0 %8&9gVqđS>yrDIL"M(S|T0KR'e*I7(OtK-G12P;,YB \@@ HXYX ]+??0//]+]/+<+}10!!7 7N7 7B j@$   @ H  XYX+?/]10//]+]/+<+}]2910! #>7#!7 7 $.8 #@4$7 RCn]N##NRR(|}h@8RR?_ /]]]3/]39=/33/3++++10 |AB{#~)L@7 ?O@H0p @`p/]q/+]q/]32105!5!{J|}h@8RR_ ?/]2/]]]39=/33/2++++1075 5|@}DEy%)f@8()R&'(')&'&')'&H&&!G+ + +' ! '&_XYX+??99/3/]q9//+<++10]2!>7>54&#"%>!hzCAiC"<. 3I`:E[6`en\4!4/ZVVhR%*0:'FgQD$+B=>'?S]d(Xc6jw_x@9 P72 2 l#' `"! p   T/HHT///zzzzzzz@H H;T T*oe" B4[BMzzzzoz_zOz?z/zzzF^]]]]]]]]qqq/?99//^]32/^]+]r3/]9/99//]333210^]]]]#".5467##".54>3237332>54.#"32>7#".54>$324.#"32>7>wLc*G2F[m;_L Dvf 'u/;oX5R욅൉]/"EinV=>54.#!!2>54&#!6H~=.UxIGlI%e?&W{M#!?];ӼH_[-,TyMIsU9 8Qe9}c)I0K4,;#52T@Z`d+G@-  ""!- -@-[`'__@-`-P--]qqr??/]qq2]2]1032>7#".54>32.#"*S{RNgO+xЄI4cNJR 1LjD~C=T^2*H]3uLe;\{|࿛l;@lNG,SA'[$y@S [ oP` \   0 @ P    __ lmX@]r+??/]q//+<+}q]]q]q10]]2#!32>54.+ޣ]=miAtƐR8i`Lᖅ߳[.cJӊb`0$ s@   @1H  \0@P_ _ _lmX+??9///]q/+<+}+]9/310]3!!!!!$T,E,HV-$ v@'\0@P@!H _/@1H_lmX P ]q+??9/+]10+//]q/+<+}ć10]!!!!0U,de,Ld-@-"-^)*))*)))H)H)@6 H ))@H/++*[`   )$*a--$_$_lmX+??9/99/]q/9/]+2]2_]+++F.(*)). +</+<+H+}10_]]]%#".546$32.#"32>?!7!xCmNv8Ȑ[ 1NnIņE)Xa>pbQ.'f.I1[݂8{@lNN.VB'\ނMi="$ @h   R \   0@ R\0@P` lmX@ P ]r+?2?39/32/]q3/+<++ćq2//+<++10]]!!!!!!vv'mrm\1$\@dt@@D&,H_@P`\`p0@P@9&-HP` lmXp@0<rr^]]]]]]]]]+??/^]]]+]qr//+<+}]]]qq+q_rr10_]3!$'y@@0\O 0@0 _ _lmX+??99/33/]q]/F( +</+<+H+}]10]]".'%32>7!7!inC !1E.2B, ,?Lx8g\:1S<"&?S-&mp9$C @h H   RR^    \0@P     @+H lmX  @    P ]]]qrqq+?3?29]+]2]/]q//+<+}ć9]+++10]]]]]+]!!!! e'q{$kX@6 \0@P_lmXP]+??//]q/+<+}q10]3!!$'-c$0@V-..#""6Ff#(%(."((((/00^0&f@H2^ ! !! F V f   !( ! "./!lmXi2)222;2222Y2I2;22t2V2F222222v2f2I22f2)22P2@222$222222222t2d2P2B242&22222222t2b2T2F262&222222222@22r2d2V2F2$2222222222v2f2V2B242&222222222v2T2F262"222222222d2V2F242&22222222t2f2V2D26222i222222v2V2"222222222i2V242&22@3222222y2R2@2022292222rrrr^]]]_]_]]]]]]]]qqqqqqqqqqqrrrrrrrrrrr^]]]]]]]]]]]]]qqqqqqqqqqqqrrrrrrrrrrrrr^]]]]]]]]]]]]]]]qqqqqqqqqqqqqqqrrrrrrrrrrrrrr^]]]]]]]]]]]]]qqqqqq^]]]]qqqqqqqqrrrr]]]]]]qqqrr+?3?29//]q/+<+}+]q//+<+}9]_]33]10]]]]]]]!>767#.'&'!!67>7!  $! d^X-t7q/74NIB?935>BJR=;640]-4773,[$@        R  R^{ 0@O^  0@P , #    lmX@P]rq+?3?29]]//]q/+<+}]]q_qq/F( +</+<+H+}++10_]]]]]!!!67>7!t^y k+*$S#'+%[.ud1J@2[o---- -P-`---3"[`%_ _@33`3qqq??/]q]q]q102#".5467>$"32>7>54.V Q k{Rl|Q0XQօ1i0^Wڃ.`1_@xo%K"Azl$R]].$Yh@@[  \   0 @ P     _ _lmX@/]]+??9/10//]q/+<+}ć]10]2#!!!2654.#!R|EQb!$B[7:nbrDRt7O3dp*Bj@C # [#[o>>>> >P>`>>>D3[`###6_ a+_@DD`Dqqq?/?310/]q]q]q9/]9910232>7#".'.5467>$"32>7>54.V sق[Y((&-[1of6 v{> k{Rl|Q0XQօ1i0ߩmbX 8gXes.`1_@xo%K"Azl$R]].$@O\ [` \0@P__lmX @ rq+??39/2910//]q/+<+}ć]9+}10!!!!2 2>54.#!gy8CoO0ClM*&BX2QBoP^j@ 8U:4I-`A=\@<66\9%%0$$$??-\/?O-(a _?r??99/]3]q]q2]10]]]".'%32>54.'.54>32.#"X̍Q! ,JjHL[3&KoJ^{HZwÊRvBcC"-OnB3kdXB&P0a`16P5/L8/B0&>_d_d31Y}LCZk.@&-=,"!-=UoIir<sL@-\ P_lmXp  qq+?2?10//]q]/+<+}10]]!!7!9,,cw!@_  \@O#\@#H _ lmXP#]+?333?9999//+]]/F"(" +</+<+H+}]qqF"(" +</+<+H+}10]]]%2>7!#".54>7!Oz[<'n㒁ΎL' (Ie"N~\dχB;rm785"_+6Q6@ #3#س#&H@]HR ^R ]{ +    /?O O ?_]]q]qq?3?3310]]/]9/]]q++ć++10++]q)!67>7!1r-4w-^'.*)-&_/.@&!$ $  R RR-'-^...'[k! Td@.R\0@/?O...0''- O0?0/0_0]]]]?33?29/39]]/]]]++29/]]33]2++++10]]]])4.5!!67>7!67>7! Y$  N< 0N#, GZ`$;831,0w6>?JF@>9 *\(/-9<3z9. @          & 6 )9)9&6R  b  R^ 0@ /  / ? O       _ ]]]q?2?3/]]]q]]++ć++10]]]]]]]]]]!! !!59o9)[$@eRbR^O_o  \0P`lmXp `  ]]]+?3?910/]//+<+}]]3/]2/++ć++10!! !Dpp$CBB?]# z@yHv@Hb @+ H /? O __?9?9/]]3]]]]+3+}10+]]+])7!7!!:(i-(^3WZ_@M0@P@ HlmX+??/]+q/F( +</+<+H+}10]!!!6r%%Wuo-@??/+}103!) RW@ i   9 I Y   @!$H  V f v  M lmXY 9 )          { i Y I ; +          y i Y )           { i Y I 9        i @Y 9 )           } m _ M = -           { k Y K ; +           { k [ O ? /   i        o [ K ? /         { k [ K ; +     @,     o _   9     rrrrr^]]_]]]]]]]]]qqqqqqqqqqqqqqrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]_]qqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]qqqqqqqqqqqqqqqrrrrrrrrrrrrr^]]]]]]]]]]]]]]]qqqqq+??/^]]/F( +</+<+H+}^]+]qqrr10_]]]7!!7!%)%WUB@& @p`]]]?329/q33q2q210 #!B!T/10/105!xNN!//10 7!T+ 7N@O@`  %555E5 AO455KOOOOOOOOOO OOQ/Q()EG/?O((/(_(o(((#Q.OJ AAA@ HA54.JO?>54&#"%>323267#32>7)*V-dl"FUjGNsL&-Nix?D;>7- HtjGu(5GE< TE!5T;2Sl9QvT5 $-B>90ClM*V(' P\T'9$6[C#&>@b77G< <<<P<<<<<@ @,$   K O,'4O$'OXYX@q+??999??/]//+<+}ćq]qrq10]]]]2#"&'#!>7!#3>"32>7>54&WQ~U- X}d}   T 84`P? 5J-3QA3 GN2\Q0p:˂=h^;4% +32.#"Sl S{otq8 M_ntw9ki7QQ8S@3Zig2O\2>q^(^-osI):cIZe%QY--)yq:'=@f 11  0"!"!K""!""""? ?p??;G / ? O   "0(3O(OXYXP?]+??999??/]]/]q]q/+<+}]10]]]%#".5467>323>7!!4>7'2>7>54&#"$LUd ^^/VH: L/D-8dQ-h?˂=6H)P>=t6 ,2 !Qh,M!xm Oe3S&js?:N#/o@N $/ G'''P'`'''''1/G/?OQ//*RQV f   $  ?3]]?9//]]2]q]2]10]]32>7#".54>32'>54&#"f][*B4'Lnkns;Wpl4 cP"LG9,jq->$J@iJ(>rd[32.#"3讞% 5]`-Q$  C< %||qDlJ' @AUWM:R@j @@  ***>066K///T TpTTT0KG/?O6/ >NC*$NPCO$0/$ QXYXPT]+???3/999992/]]2/]q]q/FS(/S +</+<+H+}]10]]".'%32>7>767##".5467323>7!>54.#"32>ij= ^P:V?+ ?SlHOW/ 39gR;   R 5I*3SA2 YT,\RAW%HiEB=AeE=(L:#6`P1p?5M2>9) ,=K(lm7#L9S8K_2b%g`'U#'@`''RK) )$%%R%K&'&''&'O&&&&&'& &$%%P XYX+??339939?3//]//+<++ćq]q/+<++10]]]3>32!>54&#"!YO IZoEv MK/^Q= vk10.*J8 .-)sS..) ?B(Ji@#\@TKPOSXYX   /      qqqqq]]]q+?2??3/]q//+<+}10]7!!)):$W\@QKOO@-H PSXYX /qq]]]q+?32??399/+]q/F( +</+<+H+}3/10]]7!"&'732>7!((2V$ ! "0"  5TuZ &>.vFAlP,# @|     R RK    KO    0 P ` p   XYX O / ]]]+??2?9]]83/]//+<+}ć9]+++10]]]]!!!! ؼU B'KZZl#\@Y ` KP` XYXCr^]^]]]]]]+??//^]q/+<+}^]]]q10^]3!# 4#M@@?  677K898998988+K#K P? 9+#67(78P0(XYXB`BBoBOB BBB0BBBB0BB?^]]^]]]qq^]]]]]qq+?32?3?399//^]q/+<+}ć3//q/+<+}ć3///+<+}10^]]]"!>54#"!>7!3>32>32!>=&*-QA/ w{~.PB/ v  AM_<| FTgA z|(KiA{%&! y)KkAS"KC0,9;/L5wq2T?#$Z&ss%%$y#M+@\''*+R*+K+- -RKO P"XYX+?2?9?9//]//+<++ćq]q/+<++10]]!>54&#"!>7!3>32v LL/^Q= v  IZoES..) ?B(Ji@S"KC0,9;*J8 .-)s?M-Z@@))GP/ //!G / ? O  O&OXYX/P/]q+??/]]]q]q10]]#".54>324.#"32>7>bk|C]vy>6M0,ZQC 8L--XPB a;qha8lxB^;Bzd0U$Hb>Ayf4WWN?@3  "GPA:?.21122\343343333@$H 3033@1H334.?* 439O O*93XYX AApAAPA]q]]q+????999910//]+]+]F@(433@ +</+<+H+}ć]q10]"32>7>54&%>32#"&'#!>7!4`P? 5J-3SB3 M#JVd7!!>7##".5467>322>7>54&#" U $LWeS[5[K9 '=71( <!N-/E.7aQ-m?̂<0L5%!Qh,L!pvNg4Y&1O8#zNi@ARKOP`!PXYX!/!_!]]]+???9910]/]//+<++ć10.#"!>7!3>32L4'{#e   "CIS2 U >#FB;<>9>[;-K9@8%%  G*(((O''''P'';;P; ;@;0G %  0V0f0Ue0+Q("Q @;0; ;;;P;]]qrrr?3?399]q]q/]3]]]r]]2]]10]]]]]]]]]#"&'732>54.'.54>32.#"Cx) $:S81Q;!7U9O`6Kf]lE bU+K7 &D^7FyZ3NYX,$$5#!4$ ) 2MmLZ}O$DnQE> .# + .IjV8@#   K  O   @# H  O OXYX!!]]+??32992//+]F (  +</+<+H+}10]]%#".5467#73733#32670%^5;`D% f%0#h/&1# 8U8-U9*)U:+@+ $$KOP?O -- -p----K+*+*+**+***O***** ***"+ P"XYX+???3999//]]qr/F,(+**, +</+<+H+}]qr]]]qqrF,(, +</+<+H+}10]]]32>7!!4>7##"&54>7v LL/_Q< v HZpE:..(?B(Ji@^"KC0,9;*J8 .-* n:@ 4DT@` HR MR L  $  /P` p`P]]]qqqrq?3?3310]q/]q9/]++ć++10+]q)!>7!n!G !"<.:HHDDHF`c:)+@+)(y((y'' @HJZ #  H@HuR 0@f R"@  R@D  R("(M))) RMd""F"i,<f"))@(H)+" ()@+++?+ +]]]]q?3?29+]/9]]]]]]]]++ć++ć++ć++10]]]]++]]]+]]]]]]).'&5!!67>7!67>7!+!E    &-*    P#)++)#Q n:CD""C|B"$$"B|: /@q      jt${+ %H$e{+t$@` %H)R MR N?Op  O O  `   P @ 0  `   0  ]qrrr]]qr?3?2]]q]/]Ƈ++ć++]+qr]qrq]+qr]qrq10]]]]!! !! Ժ$(4&2[W:%@fu1AQ%5E RL R$$M%%%$P%/%%'@'''P'P%$ P?/33?333/]]qr]]9/]++ć++]]qqq10]]#"&'732>?!>7!:8eoT4S&&1&A><#G",9W_2 .K70" 4CJC4 3AHB5 : @ZUZ4D ;KM P ` p `pOOPP?9?9/]q]3]3+}]]]q]]]q10]]#7!7!!#& ()'v7(\W:@F   #12"2 "22M218#") )8lmX+??9/999999999//]F;(; +</+<+H+}10]]]".5467654.'7>7>;#";;_B$=2G,&5ZF1 C%L-?+ < 1ET,$;,AB8P%W:S3:4#!*<%6U>R3M32S?*  "1@' -54W@;K[ T4TK;kDd $td dT4$t;+d4D [KktdTD @>{dTD$;r_rrrr^]]]]]]]]]]qqqqqqqqrrrrrrrrr^]]]]]qqqqrrrrrrr^]]]]]]]]qqqqrrrrrrr^]]]]]]]qqq^]]]qqqqrrrrr]]]qqr??9/qr10!WueW=@[  4 4&%M%5%%5%%%%%% %P%5%%&54+< =+=<=lmX?]+??9/999999999//]]F>(5%%> +</+<+H+}]10]]]]2+732>7>?.5467>54&+7;_B$=2G,&5ZF1 C7UvM%L-?+ < 1ET,$;,AB8P%:S3;"+;&6V>JnJ%3M362T?*  "2@' M-54vHf@?     0@ ~B^]q^]^]]]qq/9/9//^]]10]"&'.#"5>323267yKKBm.'C=:3TPJ6n0D4 =?F*  &.,2*L:@ RR@=H@#)HlmX@     0      ]]]qqq]]]qq+?/0//+]q+F( +</+<+H+++10]]!35 5,+Lb%?3&/ְͰ'ְ6> .  % #99999 9%99@  %..........@  %............@0167#7&'&54776?3&'ω;$@/c1e [U@TM GZ/Ps53%2rkiJd e[~+,@U ""!$% %  %%q   ,:J.%($ ! $ v! (t/ uXYX+?2]]?29/329999]2]2/3//F-( - +</+<+H+}9/10]]#!7>?#73>32.#"!!!267P*6'^r 3Clkcb5SG%:, 5!xY_wk&i{_e50Sm<0TI.K8~k"ZfHH"64@-#@` (2 /+/_^]]q10467'7>327'#"&''7.732>54.#"0p<+L9!!9L++L9!!9L'@o   RbR^q      w  w   lmX+?3?99//]33232//]/+<+}3/]2/++ć++10]!!!!!7!7!7!7!!! R..Q &쓢TW@ { T  4  d D   4       ` D  $      t d          d T 4 $    t ; +        d 4   D    [ K  k   T D      @/  4 $      D $   ;  r_r^]]]]]]]]qqqqqqqqqrrrrrr^]]]]]qqqqrrrrrrr^]]]]]]]]qqqqrrrrrrr^]]]]]]]qqq^]]]]qqqqqr^]]]]qqr??99//9/]qr3210!!w|I[o@BG G& & M@EW1o/WWo] oE MMo;(R6J@6,v# v?/993333/]]]9910]]]]]]2.#"#".'732>54.'.54>7.54>>54.WsF pSqs/IZ+Af?#A\9?EIgwG tj3cO10Sm/Y@& 77 33 J5?U5U5&@ 0`p@FH/O_ T@EO0E:00::0:0:+[o[O[?[/[_[]]]]]]??99//]]99+/_^]+]q99//10^]]#".54>324.#"32>".54>32.#"32>74^dc^44^dqp`TnP+`~ަ`hd00bdNtS9 />):T58T9)@0! 9Ttd^44^dd^4r~ݥ`,OoTަ``?q\`k:%?S.).%'He>>hK**3/+UD)h ;H@++  <3 @5H ,@% H %%% 8;C+=;==)C )??39/]]339]+/]]9/+9910]]]#"&5467##".54>?654&#"'>323267'32>7:BG-7F.2K2@e~>{ ,&($} /  bMX3&.-&  4.  "7&!6F&N_4$*($Xg]b8  963/#;,HRs@M * *   O   OP`? /]32/]]]]]]9/]]9/10]]%73!73CNCiGo)'iGo)'KN@@ H?/+10%!5!nt>/=F@ :: 1<9=0)00====@ H4=4=&@ 0`p@?H/O_ =4<2CB54C55C4+HoHOH?H/H_H]]]]]]??9///23+/_^]+]q99//+]3]29310^]#".54>324.#"32>##!24&+3264^dc^44^dqp`TnP+`~ަ`EuJ`NKEBCd^44^dd^4r~ݥ`,OoTަ``9/q^v;9']@@    @    #@)]?+/_^]q10^]]]]#".54>324.#"32>>3WuBBuW22WuBBuW3,;##<--<##;,VBsU11UsBCsU00UsC#=--=#"=..=WZ @  O_    @ Pp  ooO/ OoOoO/O/9rrr^]]]]qqqqqrrrr^]]]^]]]]]qq/32^]+?9/_^]32^]+3210#!5!3!5!oUT=G -@" ??/3]2107>54&#"'>32!G$_c`K.,#$?{?\>2M`\N]x9R?56?+'(9"c[3D'32#".'7326(D<>L)**;6L`9v.E,@N-RuGJe?22.A!~2-',*48I-YZ >1! M?3S; "8G$035//]107! +Ws:4@C& %'((K%&%%&%%o%%?%O%%%%%&%6K@$HH@: H  %(. P '&XYX@666`6O6/666]q]]]]]q+?3?3?3999//]+++]F5(5 +</+<+H+}ć/]]qF5(&%%5 +</+<+H+}10]]".5<7##"&'#!!32>7!3267k1@%*jQ;MI#v:C+I:) p   &c$5"  Wa1)!<MX-QsFB ) jR@\    `@ p p9r^]]]qqqqqrrrrrr^]]q?2/39/^]/^]9/]10###".54>3!ϜÛQ`52_Xu-XXT]2~Dg@8P`ppoXYX+/0//]qrqrF( +</+<+H+}10]!~; ;1XW7@! H0  P]//99/]9+10]"&'732654&#*737)QJ4: b0FWWu#* SABaqb c@1    XYX+?2?3/]/F ( +</+<+H+}10]]]73?33b[ʯtylzuyf<+?@"    -$??]]/]]10]]#".54>324.#"32>7><@pZFqP,=m["-72) ",30+viu?(KlDdr>+:$ 'I=6.>%$KC 7&0y@T % %Pp/   @    @ 0@`/?O  /]22/]q]9/]]9/]]10]]#77!#77IIG)na'G)na'b&y'4K?@ o_K@  % o @  %?55+]]5+55]]]5bD&y'rnI6@ o_@ & %o   %?5+]5+5]]]5n&s'4K/@55O5?555---:?55]]5]]]]]5:%)u@6H&()R)&'&&'''&&!G*' !+ '(&)_XYX +]+/?32992/9/F*(&''* +</+<+H++10]]".54>7>7!3267!hzCAiC#;. 3I`:E[6`en \=44/ZVVhR%)0:'FgQD$+B=>'?S]d(Xc63&$]&%+5+53&$@&`%+]]]5+53+&$}@&O%+]5+5C&$R[@&/  0%+]5+53&$iK&@&_5%+]]]55+553&$P@8O%+]]55?553@ARc   \ /?O@$H_ _   __lmX+?22?339/9/32+]/]]9/9///+<+}3++10]!!!!!!!!#!EF>-CE+I,=%+) \h 8C?oQW&&x]0///B!%+]]55$&(@  &6 %+5+5$&( & %+5+5$+&([@  & %+5+5$&(iK@  &%+55+55$t&,@ &S%+5+5$f&,1&%+5+5$N+&,@ & %+5+5$L&,iK@ &%+55+55#@k  # #\   0 @ P    [ oP`%_O/_ #_lmX+??9/]qr32]]q]q//]q/+<+}10]2#!#73!!32>54.+ޣ]=mis*te,GtƐR8i`Lᖅ߳[.RTJӊb`0$&1R[@ &/%+5+5d&2@ 2&O36%+5+5d&2D2&+25%+5+5d+&2@ 3&u82%+5+5d&2R[@ 2&=M%+5+5d&2iK@ 2&64%+55+55~~ y@!H#3C !H, < L @8!H#3C!H,<Lp @`p  H?+]q/]q10]+]+]+]+ 7   ~d```Ff``b#z!.;@ ,24"-1/*@H H  [o//// /P/`///=*[` -1/*,24"4_"_??2299/]q]q]q2+2910273#"&'#7.5467>$"&4'32>7>xN=? pIsEG k{R'WPO|l|Q53Ir1i0^.-|N{.`1_@xo%K"yQFdK4Azl$Rw&8B@ "&#&%+5+5w&8@ "&"%%+5+5w+&8@ #&c("%+5+5w&8iK@ "&~&$%+55+55&<@  & %+5+5$.k@> [\0@P__lmX+??99////]q/+<+}ć10])!32#!7!2654.#!K',|EQ,!$B[7:nbrDt7O3#?|@L32 H6(H//?H(((A>??K?O%Q>9PXYX+??99?/]//+<+}]99//10]]]]36$32#"&'732654.54>54&#"#2Yf7+?K?+%8B8%:kZq6D26=#PS$7?7$+BKB+IF6YE1'JkDEeJ834"$3/1D^ET_3  TH-=2.:O9:SB8>J35<>cG 7&DCh@ P&OQT@%+5+5 7&DtP&PS@%+5+5 7&DK@ Q&VP@%+5+5 T&DR@ P&[k@%+5+5 7&Di@ P&TR@%+55+55 7&DP)@ U&ZP@%+55+55*NET`@ ! ;; BGX;$``F& **XXXXXXPX`XXbb_b23JG/?O22/22@H22-%`FQ``O8[-Q=8OO  $  Q?33]?39/9/+]/]2]]]]]q9/3]33]2]9210]]]]]32>7#"&'#".54>;7>54&#"%>32632%#"32>7%>54&#"][*B4'Lnk..hpw=NsL&-Nix?D;>7- Htjr)pl4 (q$1GE<cP"LG9,jq->$J@iJ(shHV/2Sl9QwU6 $-B>90ClM*?2q32.'7"32>54&/kD%$I ' ,D.Rvu:OۍC>6B+!GqP*1M7CsT/j.](1m69xTlBt[}ИT  G9o3:iV)P?'Cu[U`#&QR'@ ,&7G%%+5+5?&RC@ .&&/2 %+5+5?&Rtl.&.1 %+5+5?&RK@ /&k4. %+5+5?&RR @ .&9I %+5+5?&Ri"@ .&20 %+55+55EH ]@B?o?Oo 0`0@`  ?9/]3]q2]q10535!53xq*\'6@[22',##,+G(P((((88@88P8p888G/?O+,/  /O O ??99/]]]qr]q910]]]]7.54>3273#"'.#"%4&'32>7>*68]R7<]bj:}F*,ZQC D>#-XPB &8aaEia1C2+Bzd0UAyf4WU&XC@ ,&-0%%+5+5U&Xt]@ ,&,/%%+5+5U&XK%@ -&Z2,%%+5+5U&Xi@ ,&t0.%%+55+55W&\t@ &&&)%%+5+5W;@>:$$&GP=28;;89:;:8\9:9:899999@$H 909P9`99@$H9:9 2.O! O.:9!XYX=P=]r+????999//]+]+]F<(:99< +</+<+H+}ć]q10]]"32>7>54&%3>32#"&'#!!4`P? 5J-3SB3 M #JVd323>?!7!7!3#!4>7'2>7654&#"$LUd^^-SH9 L/D-6`N,d=};4E'[EzP=t6 ,2 McU=sgK`1N%em$&(MN@  & %+5+5?:[&HM@ 0&x13 %+5+5$&(@  &%+5+5?C&HN@ 0&5D %+5+5$&(O@  & %+5+5?:&HO 02 %+5$W&(QE"%+55?l:N&HQO55F %+]55$+&(@  &%+5+5?R&HL@ 0&28 %+5+5d+&*@ /&4. %+5+5W&JK@ T&gYS0%+5+5d&*@ .&3= %+5+5W&JN@ S&Xg0%+5+5d&*O@ .&.0 %+5+5W&JO SU0%+5d9&*9'4: %+5+5WI&J@ \&]W0%+5+5$+&+@  &  %+5+5#z&K#O@ )&.(&%+5+5$?@  \   0@   \  0@P `a    lmXP]+?3?299//]3232//]q/+<+}q//+<+}10]]]!!!#737!!7!3# 7!vv{!{&'&r&&{!{w&&\ªP#/@x+ RK1 ()).+*)R)K*/*//*/O*****+@H+R...@H../(# )*#P 0@XYX 1q+?]?39999?39/+]3+2//]//+<++]q/+<++10]]!!3>32!>54&#"!#737Y9! IZoEwn MK/^Q= n!̋10.*J8 .-)+..) ?B(Ji@$&,@ &%+5+55&R@ &z%+5+5$&,MN@ &%+5+5#[&M@ &%+5+5$c&,@ & %+5+5#(&N@ & %+5+5W\&,Qg %+55W\&LQqY %+55$&,O @ &%+5+5#:c@AKPOXYX /0qqqqq]]]q+??10/]q//+<+}10]3!#:$f&,-'@ o  o_]]]]q5]]5#W&LM9>!@(&&H!@ H!@ H_?]]]]]]qq55++++&-w&8 %+5+5$W@U /? K  O   @-H   PXYX /qq]]]q+?39??399/+]q/F(   +</+<+H+}3/]q]10]]"&'732>7!#'##7362V$ ! "0"  5Tu@W &>.vFAlP,d>$9C&.'9 %+5+5#9&N'p %+5+5#: @f  + &)  RK    KO    0  @H  XYXO ]+??2?9+]]83/]//+<+}ć9]+}+10]]]]]]]]!!!! ؼUXB'KZ:@Zl$k&/@ & %+5+5#g_&O2O&%+5+5$9k&/>'ߴ %+5+59\&O'I %+5+5$r&//  %+]55#&OHK-@@ H? /  %+]]5?5+]5$k&/O)%+55#&OOɴ%+55]5k t@E     \0@P   _lmX+??99//9//]q/+<+}10]3?!%!$],'mP+M-@Aϕߕs y@J KPO   XYX /  q]]+??99//9//]q/+<+}10!?!7njl)l*31EEJ$&1&%+5+5#&Qtk,&,/%%+5+5$9&1'i %+5+5#9M&Q 7'28%%+5+5$+&1@ &%+5+5#&QL@ ,&.4%%+5+5U'Q K1:H: H728%%+5?5++]55$?@~==!!899\ 0OA'-\ ! !! 0 @ P    !982 !- 2'& _ _2lmX@AA`Aqqq+????399999//]q/+<+}ć/]]q_qF@(@ +</+<+H+}9/10_]]]".'732>7>54&#"!>7!3>32LJx^F!'1/@0$8 uxLsP " ,k|RC(6Ki#?U3u+!%Q] ,/.V`2Up>D%\ZL?EE>dF'0a Y}`A"#WM;@\91677K   =$(KO 76(.P.P$#.XYX =q+??3??9999999//]/+<+}ć]/F<(  < +</+<+H+}10]]]]"&'732>7>54&#"!>7!3>322V$ ! "/"  LL/^Q= v  IZoE 6TuW &>...) ?B(Ji@S"KC0,9;*J8 .-)AlP,d&2MN@ 2&35%+5+5?[&RM@ .&u/1 %+5+5d&2@ 2&7A%+5+5?&RN @ .&3B %+5+5d&2H2&2;%+55+55?&RS9@ .&.7 %+55+55g3 4@.$\$%$$%$$?$_$%$$0[P    @'H6_$!__%*__lmXO606]]+??2??29/+]/]]q9//qF5(%$$5 +</+<+H+}ć9/310!#".547>$323!!!!!%267.#"4::K'H6",eE^+I-4`')', 0W{T׃[d\ +W'WT):_N3R^@vII<<--( ($^^H44V 0GVVVVVVVVPV`VV``AG/?OQ^^F#YR+9R#FQ  $  ?33]?9//]]]]]]q29/2]99]]]10]]]32>7#"&'#".54>32>32%4.#"32>767>7>%>54&#"][*B4'Lnk~9%`nx>k|C]@jYL"Krpl4 /6M0,ZQC 7M--XOBcP"LG9,jq->$J@iJ(OI):$;qha#5$FHAyf#*kb;eO$&5&" %+5+5#&Ut@  & #%+5+5$9&5*'%+ %+5+59zN&U+'&,%+5+5$+&5[@ &v!' %+5+5#&ULe@  &"(%+5+5A&6>&,>A$%+5+51&Vt :&:='%+5+5A+&6+@ ?&D>$%+5+5-&VK@ ;&c@:'%+5+5WA&6xAT9%+55W-K&Vx=P%+55A+&6^@ >&@F$%+5+5E&VL@ :&@ &? /  %+]]5+5#&]L@  & %+5+5#.J@, /KOQXYX+??/99//]/+<+}]10]]>32.#"! 5]`-Q$  C< DlJ' @AqW9|@=  q` uv XYX+???3299//]]F( +</+<+H+}10]] !#737>32.#"3% 5]`-Q$  C< %|%qDlJ' @AUx=&$'PC-3@!===8=B%O%+]]55+5?55]]5 &D'Pz0@xxxxU&x}ZP%ZP@%+55+5+55]]]53&& %+5+5*&ta& adB%+5+5#z&@ <&z @   `/]29/]10#73373==[//10!7!!Nc'@ @ @/2/10]".5467332>73JtQ*-; $C9, ?_,Mh<  *>))>+IwU.JS?10/107!J))pl'4@"    #//10]]]]#".54>324.#"32>(E]44]E((E]44]E("/.""./"n5]E''E]54]E((E]4-""-/""/jW !@   ///10]]".54>7332672(I7 1A$ 6',#2%OW,C.,L@47<<&& D:@@p@  /23/]10]]]".#"#>3232>73p,QKD% $?bI-SJB% $?a&/& --fX:&/& .-fX:: %@  @ H/32/]+]107!!7!:     + +@ @//10]7!~!$%U 9@ @ H @ H @/9/23/++1073%73!73,,L,,!%v)3&$TӴ%+5?5D'({T9  @ %`O]]]]qqq5+]5?5b'+xTB@H@ H0  @  %P O]]qq5+]]5?5++',TE@ @ H@%Po_?]]]]]]qq5+]5?5+9'2T;42M@22% ]]]]]]]55+]5?5 '<T-:@     @ %o]]]]]q5+]]5?5G&v3TS<F@3:=)%:@.H/::::::::o:_:O:?:::]]]]]]]]]]]qq+5+5?5$+U&U^@& %+555+5553$${%$2f@4/?\0@P_lmX+??/]q/F( +</+<+H+}]10]!!2,*d@X&6F,<LR \R ^     `?/]]?3?29/]]]99]]]++ć++10]]'!%.5Y,# $-rb)QE12FR(H$(#=$+d5Q@31&[` [o1111 1P1`1117_)__??9/]q]q/]q99//10!!2#".5467>$"32>7>54.,K,V Q k{Rl|Q0X;?Qօ1i0^Wڃ.`1_@xo%K"Azl$R]].$\,$C.@V,<,(#&H(HR]R  ^ H/?O/]]??23310]]/]]9/+++ć++10++]q%!.'&'!!u -2+u,^'.+*.'^-$0$1e ?@&@P` /    _ __??9//]]]]10!!!7!7,9,--W,,GWd2$@TR\R\0@P 0@ `lmXP  ]]+??20q/]q3/+<++3//+<++10]]!!!!s$Y3 |@b b  @* H /?/? _ _?2?29/]2/]2]+9/33+}ć+}10#7 7!!!/2!),G+  -Bs7<`v *7@++[# #P## #0#P#`#######1[//?o )**+7 * *^  *   0 P  P  7a) +almXP9]+?22?22//]qqF8( 8 +</+<+H+}3/]q3/]q10]32>54.#7#".54>;7!32+#";/6R`5:V8&LgzC`ECux=ZQ&@.Pb77S8Bq4e]:aE'BziLH~cS'._f7aH);(<@&& )!) && "##^ ! !  0  0 P ` p  !  ^   / ? O    ^ @0P`*) ! _  !" lmX`*P**]]]+?3?9/329909/]qr//+<+}3//]qqF)(  ) +</+<+H+}3//]]qF)(! ) +</+<+H+}]]]]10]]!#".547!;!32>7!#SS~y;RT}&LvW:ZZXܝU:k_FNL   jg FpP1ƒC9t@J 87'"/ 5[P;"[555)))))0' *_)_??322222/]]]]]]9999]10]]]]]267>;!>54.#"!732.546$X7}˔-(#J,?_f52\RXM$7!!.=##".5467>"32>7>54.dJtT5 ""  NLD   "M_uKTX. ee-M?1)RMD*CM%D]8BE>/Beva0=>:5_G*6f].r6y5#Qc2U$0_] ?kN+W <@ 4444%H/H:P:`::@,H:>>%$$K   @$H 0 P `  @H  4O55$%!*O!OXYX+/??9999/9?3//+]+]F=( = +</+<+H+}ć]+]9/]910]]6$32#"&'#!"32>54.#7>54&-[m<1Qj96\E'Ezd6 ;-a5=D"=gK*%HiD(DjK'Q.VwJS^: 8Rj@kF8&9\5#GkH/Q:!%7!!>7l N  E1 :61._-:T]YIG?{7ou~FX74l@I--33!G0 11+O_oO6P66G++/+?+O++++14O 02O&??992/]]]]]]q9/993]10]%2>54.'".'#".54>77!-JoK&$2%TSL;# 8NX )-) )D1Zq{@\r$G;gP:aRH!#3F_}P=^A!]6gnwEΏKBu\Ŏ_8M9m@E   1/1?1O1117##;;7G,H/?O12R$'11'RO ??9/999/]]]9/]910]]]%267#".54>?.54>32.#"3"YE.brS\f60UwG'D4?sdEucQ#gB"A1.Ql?EmCOO=+B.0TrBCeG) '9J,IoJ%3Q:T?81$'6"!F?;K1n@6P@6% %H0.P`/?85H/'?'O''''''4/5Q6/?22/]]]2]10]]]'>54.'.54>?#!7@"JpC;W97gP0-;# 'F_8>nR0>kT !#! %̽@J'3&(:Q;1aYO a%)-)!,FeIZC%WM)@k  KP 0P`+"K0O"'P'XYX+?3?3?39?9999///]q/+<+}ć]qrqF*(* +</+<+H+}10]]!>54&#"!64'!3>32 LL/^Q= t IZoE1.-)..) ?B(Ji@SDy*01/*J8 lL#/v@T('   )*H--P-`-----1O1HP`O))Q $Q??9//]]]910]]]]]]]]]2#".54672>7!"!>54&߹%orR^3I$*MD; $2*LD9z M@[U;xx:Pvo-mA/CZ7p+k;{.~oC :@< 0/ K  O o    @$'H  @H  XYX+??99/+q+]q/F(   +</+<+H+}]]]q10%!.5467!`* V;E'>N0%: @n    RK    KO  O  P `    XYX/ ]+?3?29]]83/]//+<+}ć9]+}+10]]]]!!!! Ef.*q: 2!|@QK I! RK!!!F%O##   /?OP?2?0/]]3]]]9]]33++]]]]10]]).5!'.#"'>32/ +12 #. 2!f9QoK.KRLQXVSIE\7  +\bX:*@Y##$%"#$#%K"#""#""""O""P"""",,p,# K@$H 0P`@H" % #P XYX+?????3999/+]+]/F+(+ +</+<+H+}ć/]]]q]qF+(#""+ +</+<+H+}10]]!>7##"&'#!!32>7!9V9OI#vAM2YI6p  ,56ci0*!<LY-QsFB"IC6i_:{@: G_oP`P`p RK@ HO?3?33/]q3+]+}+]qr]q10%>54&'!!!N}W/ " -OlG_g#:8"TJ:1pF@V ;; 0, ,  ?93. $HP``HH90E@EEH/.?.O......4 O EQF /?29/9/]]]]9/9910]]]]]]]]'>54.'.54>75.54>?+7$QnA/Ne7%gN5U>2bM0-:-!;R29oY7Dӏ;fJ*6Zs< EQLL&̹ 5P:.:$ )JsU'7)"%:U?0^XP"`)D)!-" +FiLXd!8O2?"7>3!#32>7#".5467r;?C""GD>'K?1',56s%o.-  498>[;k||ںJL}  !2, #?X5A)WO+@9 GP'''''--K@$H 0P`@H"O OXYX+??9999?3/]+]+]/F,(, +</+<+H+}ć]]10]]2#"&'#!>"32>54.gyBK{j/SUs6V@-2&sBChH%2DO>wreGB7 WvK.W}O6>L[GgB Ln=O5P@6 4- -%H`7p7HP/`////?/O//* O?/99/]]]]10]]]]2.#"'>54.'.54>|2&0:":fTB-8^F8u_=-0('>ZD3^UJ a ")/(!6MgGE}L@:3J@3,,HP%%%/%?%%55051G/?O)O  O??/]]]]]10]]".5467>3!#".''2>54&'#"sv<  J% -67"LYyJ GFlOk>pa$T(w4DLT.~ߦaHlFs/#O_#?x9:(@_  +(K(((*'J'*J*JK'(''(''''' '@'P'`''(''(O(O XYX@* ***]]]]+?2?99//]]F)(('') +</+<+H+}]]]]]10]]]"7>3!!32>7#".54677'OE5'+25%m.-  498>[;k|  !2, #?X5A)fd:'r@9  H))?)K'&''&&&'O&&&&&&'P'XYX+?22?99/]]/F(('&&( +</+<+H+}]]10]]32>54&'!#".54>7tRV>\B) =`lcm:v:!RN^2WtCl-2Xgʶq@+X\))% U@WcR#3@,#))!!!P5?5/H)%H)  ! * ))+)F)V)<)!+!F!V!7>">54.R[1YONZo>MӆAiK(^[h&ɚ/& heT$ &P7fYeiBugkY^v̮8W? [l/Q;"LWP$!@>   t   @!H{ %H{ Ht@\%H[T  RM R N  &!?O  !  &  P@&&]]??3?399]/]]]9]++ć++]]+r+]rq+r+]rq10]]]]]]]]2>7!!!'.#"7>16RDLb8 bW <"@!!  K0@KP " "M!!! 0P`p $#  O"!XYX`$]+?32?3?2399999/]/F#(!# +</+<+H+}]]/F#(# +</+<+H+}]/F#(# +</+<+H+}10]]]%>7!!$467!!FMjI-vyWיOOC ep1P: GqQ`}t8ky*c/7-M8!7hOG@$88/ /GG*F*E&EGEFGF@HEFEFEEE E@E EEE=GPIF=G11/1?1O1111EFFBO!,7Q66XYX+?32?329/9/]]/]9]]FH(FEEH +</+<+H+}9]]]]10]]]32>7>54&'7#".'##".54>7326?! "2!5P:)Y^6hj6b^FgI. I]sEX]0S # #7&Sm1H%%B2.V|N$C fV}R'O&~>%Eb>>cE$9mew*M#0P9 C&i@ & %+55+55fd&i@ (&n,*!%+55+55?&RT@ .&.1 %+5+5fd&T@ (&(+!%+5+57h&T@ H&HK1%+5+5$&(iK@  &%+55+555~@K54/ [@&&&&7.///\0101/100 0P010.)_3_01_3lmX+?2??9/22//]q]/+<+}ć]]9/10]]]>32#".'732>7>54&#"!!7!A'g{K KwzIu\F"-:&.@.  s|6mf[#9,,$396n2-C*'!A`@@GI  k$5&q@ & %+5+5d/H@) **+1[`_%_ %_??9//]q22]9/2]10]".54>32.#"!!32>7ǝI4cNJR 1LjD^yW-*S{RNgO+x\{|࿛l;@lNG,SA'4`UT^2*H]3uLe;A6$\,$L&,iK@ &%+55+55-r&1@[ \#$##$$# &1'%%''\   -/?O[---3%$  #$'_ 1_&&$` `$lmX+??9/?9933]]/]q9///+<+}ć99+}10]2#!!#"&'732>7! !2>54&#!}nJT0t6ZUTaqH$>0$ *-2?N2mxEoN*|P2b^ou=O" 8bړ5O5Y[%!@g! \   O  @H  \0@P[#! `_  lmX+?3?339/3322]]//]q/+<+}ć9/+]//+<+}10]2#!!!!!! !2>54&#!nJTu-v'mm'mx8EoN*|P2b^ou=\15O5Y[Zp@C[!\ P_  _lmX+?2?39/22//]q]/+<+}ć]10]]]]>32!>54&#"!!7!!A(Ybl; QP hrUE9,,8^ V$_D!X^ _$`&!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!~~H!}}H!||H!{{H!zzH!yyH!xxH!wwH!uuH!ttH!ssH!rrH!qqH!ppH!ooH!mmH!llH!kkH!jjH!hhH!ggH!eeH!ddH!ccH!bbH!``H!__H!]]H![[H!ZZH!XXH!WWH!VVH!UUH!SSH!RRH!PPH!NNH!MMH!KKH!JJH!HHH!FFH!EEH!CCH!@@H!>>H!;;H!88H!66H!33H!..H!++H!))H!&&H!!!H!H!H!H!@ H!@ H& %+5+5++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++7G&J@ &y'%+5+5#h @r c  \ P \@P` lmXP  ]]+?3/?32//]q/+<+}]q/F ( +</+<+H+}9/]/F ( +</+<+H+}10]]!!!!!O&'i'Ohsh3$$Zm@D   [0\   0 @ P    __ _ lmX+??9//]q//+<+}ć]]]10]2#!!! !2>54&#!enJT0#,AxEoN*|P2b^ou=5O5Y[${%$5l@8P`/?\0@P_lmX+??/]q/F( +</+<+H+}3/]]10]!!5,'doh@|    ^\ 0P`p ``lmXO]+?32/3?2299/]3]/F( +</+<+H+}39]3+}]]]]qq10]]]]%3#!#3>7!!OxO.^\T$MHNT,th>ks^>$(-@ )9I%5E&6F'&&^%$%%$bc  b  $',/%%%-  ?O,----^0  $' ,a %&- lmX/]+?3?29/32999//]q]/+<+}3/]]93/]9]]+}ć+}ć+}ć+}]]]10]!"&'!.'!3!2>7!!#v@*X  "}!4//tt5DY>6>90/ %('v] 0?H$Vk<W?jODi$G=-  :c@:16[,[<!!!"!_'1 _' _??9/999/]3]]2]]]9/910".'%32>54&+732>54&#"%>32M~W 5MfD;gK+;-;J{Z2h_x0'ovqv=0[Q7_F(H8fW[:]A#3S;R`4U=IYwoKa[,3Z|IP}\<1Mg?bs@$@(   R R ^    P  @3H  ^0@P   lmX+?22?339//]q/+<+}/+]/+<+}++10]3!!!>767$  9L 2b'.*F?(X&,,$G&J@ &# %+5+5$`@lRb  R\  0@  ?\0@P  a lmX+?222?3339/99//]q/+<+}ć]]]]9++ć++10]!2>7!!#!5't9H^? 4"A9.> $('v?gNIW*H7&  n@?^\ 0@ @ H  `` lmX+??3299?//+q93/+<+}ć+}10!#"&'732>7!!Vit6ZUTaqH$>0$ *-2?N2O" 8bړ$0$+d2$~@L\\0@P 0@ `lmXP ]+?3?22q///]q/+<+}/+<+}10]]!!!!s$Y3d&s77@l 0R^RcO/?OP`  `??333999/]]]]]]9++ć++10]]]]]#"&'732>?! ! 9ipSJw-v"E'#??@$)5>UT*, .K7%XN8 *7@y++[ # #0#@#`#######1[/?O )**+7 * *^  *  @ P `    7a) +almX`9]+?22?22//]]F8( 8 +</+<+H+}3/]3/]q10]32>54.#7#".54>;7!32+#"; R`5:V8&6gzC`/-ux=Z;&@Pb77S8,q4e]:aE'BziLH~cS'._f7aH);$h @:   \\@% H 0@P `lmX+?3/?22//]q+]q//+<+}F ( +</+<+H+}310]]]!!!!3O'9hsst@R  \ 0\     _  lmX+?3?9/3299//]F(   +</+<+H+}qq//+<+}]]10]!#"&5467!3267!k*`kt? QPv}\K'#û N$bAba $ @I    \   \ 00p@;$H\0@P`  lmX0  ]]+?3?22//]q/+<+}/+]q]qF ( +</+<+H+}+/F (  +</+<+H+}10_^]]]3!!!!!$ss$h@      \    \P 0p\0@P ` lmX0]]+?3?/2//]q/+<+}/]qr]qF( +</+<+H+}+/F(   +</+<+H+}310_^]]]]!!!!!!30OhssstK@)[\   __  _lmX+??9////+<+}ć]102#!!7! !2>54&#!nJTX9,mx_EoN*|P2b^ou=5O5Y[$#@\[ \ 0\0@P__lmX+?3?339///]q/+<+}ć/qq/+<+}9/10]]!! 2#!! !2>54&#!'TnJT0'mxEoN*|P2b^ou=5O5Y[$Zh@A  [ \   0 @ P    _ _  lmX0]+?3?9///]q/+<+}ć]]10]2#!! !2>54&#!enJT0'mxEoN*|P2b^ou=5O5Y[*-|@S[o   0 P `  /p/(()/?O(#__ #_??9/99/]]3]]2]]]q]q39/102#".'%32>7!7!>54&#"'>NޕJo[:QlGbrM-"Q`A'tQ~=lW_"32>7>54.ۘP ڔLv'm${_mH`nH*OpQօ1i0^WڃτטS@xo%K"Azl$R]].}@Ic \ 0 [?O __  lmX+?222?9/29/]/qq/+<+}9+}10#.54>3!!! !"3!,'VH.Rhe}wCrR/7R4P=[{Ltp63XC(E3 7ND]!FV@8 88 +@GHHPHH6HP`6 O;;,+O??9/9/]9]q]q10]]%2>7>54.#"".547>7>7>32D5`O;5J.5bS=!8M%m~D$vBtjc1-ci[qWD3#UmXjo9oŬBrW$@?[;>mW :CdB CƃkU    '<^aCgE$9laJOq2'D(5@e   5 G$G,P,,,,,7p75(444K 0O4/5!(R55!/R!QXYX+??999/999/]q/F6(6 +</+<+H+}ć]]q910]]]]]]#"$'>3232654&+72654&#"0Ne50U?%Uׂxt^yku>/u0vсSU)SH8 A@]A( $9O2ZU)k{l1#B`: LU?GPI3232>7#".54>7>54.D3J7%Eotuh/5fbXR&ij;X@+Q|oi):plbt=+H 6(0BiI'/Pj$8(8BgH&7Zu>PrS<" $!<0GY@=H 999pPIPIIEG$/$?$O$$$?Q,,1OQ??9//]]]]]q2]10>54.#"'>32#".5>7>322>7>54.#"4Yt@00,:8?@ޙP"oxuz>dY7gWDQh@" 1TA<]F1 j}'Y}N$   O뜍؉>Awe@ v8'6 =c|?;+R?&$NyU@:n?:NH::'g@=+"$""""'  P  P  @  @ "!!@3  N  "%%&&''&&&@Y'''''' P)  "  %R/ '&!   XYX@)]+?3?39/]]329/]qq]/9/]/+<+}]]99+}ć+}ć+}ć+}]]]]q]]]]]q10]]]"&'!.'!3>7!!##c7%V,)%\\%0D5*B:W6;B6yKV+ & *UK|8<A N9u@L77((/5G 0*H 0@;@;`; R%/ R% Q??9/999]/]]q]9/910]]]"&'732>54H>54&#"'>321D,&C2}BsV2UG<4) SuX\h7:Xk12U>#A|,%=+%:*QD #?29: 8+PsI#&E_9EgG&&7!!#![  )2!%! W:0 -E1+A:@N&&MK?O OO XYX+???3299//]]]/+<+}99+}]]10]]]!!#".'732>7!=`SNUeA)*% $ $018JaB |ˆP!F~ #:"@V JEyKvE F  R*:ZH*:ZH@*P  R%5U@ H% 5 U  H @.O XYX  ]]+?3?399//]/+<+}+]+]+]q//+<+}+]+]+933]10]]]]]]]]]!>7##!>7!3b l=H*vCIGCGF@F: RUO?W2#: @_KO  _  K   O   O  XYX+?333?3339/]q32//]//+<+}ć]]q/+<+}10]!!!!!TTZ}Z:T1:?MR#:j@?K KOOXYX+?333?32//]//+<+}]/+<+}10]]!!!k:|:WNS?UNF#MPW:\?W@Vl@ZZ77  /\,\,#I ,K+++ 0P`p 9GjPjjjjnTG/?O_IAL#/ bAOWLO4,+XYXn nnPn]q]]+?3?3??999/]]]9/]]/Fm(+m +</+<+H+}910]]]]"&'!>7##".5467>323>733>32%2>7>54&#""32>7>54&usT "GQ\7JsN) \zR>]F2  V EP\8KuP) St/TG7LP/QB2 Cp/SF6 cP-J;- Dh^!Q*/E.7aQ-m?̂<0L5 =Tbe_K2A|1G/2\Q;s:˂=!Qh,L!pvNg4Y&bt!Ph,L!pt Nd3Y&jk:[Uh:0@0 ))  !K?Oo2K0/0/0//0///O///// //O!/'0 P'XYX`202]]+???39999///]]qr/F1(0//1 +</+<+H+}]q]F1(1 +</+<+H+}310]]]]]32>7!3##4>7##"&54>7v LL/_Q< v1$tOHZpE:..(?B(Ji@^+e,9;*J8 .-* j:@\  K  KO!@!`!@H  P XYX+?3?39/2399//+/]]qF ( +</+<+H+}/+<+}10]]]]32>7!!#".5467GAA!<<@%aQ!LWd97!32>7!!4>7##"&'#"&5467!-QA/ w{~.PB/ v  AM_<| FTgA z(KiA_%&! y)KkA\"KC0,9;/L5wq1U?#$Z&$&$yUh:?\@ 33   .123405:.0//K.-..----?-O--- -p-- -`-----..! K?O p `KO`p 30O5!-(:(P5 ./XYXAPA]]+?3??2299///]q]F@(@ +</+<+H+}3//]q]qF@(@ +</+<+H+}33//]q]qF@(.--@ +</+<+H+}310]]]]]]"&'#"&5467!32>7!32>7!3##4>7#| FTgA z{-QA/ w{~.PB/ vuP AM_wq1U?#$Z&$&$y(KiA_%&! y)KkA\,9;/L5M0:u@8 G!  K   R  O RXYX+??9/33//F (  +</+<+H+}ć]10]]]#"&'!7!3232654&+0MЃs'UhzC277zhuS\Y+gMHv^RHJ&:!@k     G 0K#/##!K 0O!RRXYX+?3??329////]qF"(" +</+<+H+}ć]]]/+<+}3/]10]]]!!32#"&'32654&+0UhzCMЃsh277zhu::MHvW\Y+%o^RHJ&H:@E  GOK 0ORR XYX+?2?239///]qF( +</+<+H+}ć]]10]]32#"&'32654&+UhzCMЃsh277zhu:MHvW\Y+%o^RHJ*M-t@JG"P"""""/0/$(()$/O( ((%OO %Q??9/9]9]]/]3]2]]]q39/10]]2#".'%32>7!7!>54&#"%>i\zH9[nkrC #3?"9T<& %6XUQoUM,csLk>7`L2H/&IhB#ffSUGxY2#P7@[3& +G/ ? O  GP9KO#OO0OXYX+???9/?/]//+<+}ć]q9/]910]]]]#".5<7#!!3>324.#"32>7>_gxAZTmnru<2G,)SK? 3F**RI> a;qh  1:Tit>8l|B^;Bzd/U$Hb>Ayf3W:@  eH HeH HNK @ ` G/?OR_oRXYX+?3?9/]22/]q/]]q/+<+}99]+}++qq++qq10]] !.54>3!!#";A@6#N{U^6X>")=*M -E[8eM$>/3%?:&Hi@ 0&42 %+55+55#W?@=5:;R;K    A#&-" "RK!!!!O &@HR#   @H 2"! ;:-2P 202@22PXYX+??]?39999?39/+]3+2//]//+<++]qF@(  @ +</+<+H++10]]]]]]"&'732>7>54&#"!#737!!!3>322V$ ! "0" z MK/^Q= n!8! IZoE 5TuW &>.g..) ?B(Ji@10.*J8 .-)AlP,# T@/ KO OOXYX+??//]]/+<+}9/10!!?!%O::e +?_N.|@R  '',**P`0&,G/?O%)O( !&&!OO ??9/9]]]9]]]/]]2]2]2]9/10]]%267#".5467>32.#"!!Sv Votq8 M_ntw9kl;[Q2P?06%[ig2O\2>q^(^-osI):cIZe@eF  xl-KV#V&OY ((H &&H ##H ""H H @ H @H @H @ H%+5+++++++++#&i@ &%+55+55$W\MI:(5@a  M(&((&(&5))KG1O117O&!(O(5R.(!O).R XYX+?32??39/299//]]]9/F6(6 +</+<+H+}ć99+}10]]]]32#"&'!#".'732>732654&+UhzCMЃs=`SNUeA)*% $ $018JaB277zhu:MHvW\Y+gˆP!F~ o^RHJ%:%@i  %KKOG!O!!'%OR XYX+?2?3?329/3322]]//]/+<+}ć9//F&(& +</+<+H+}ć10]]]32#"&'!!!!32654&+UhzCMЃsVZTbSh277zhu:MHvW\Y+1:To^RHJ#$a&t?& %+5+5W&\@ &&)5%%+5+5Uh:/@/ ((.!KOP?O 1K/././../...O..... ...!&/ P&XYX+???3999/]//]]qr/F0(/..0 +</+<+H+}]]]qqrF0(0 +</+<+H+}9/]10]]]#32>7!!4>7##"&54>7GRYv LL/_Q< v HZpE8`r..(?B(Ji@^"KC0,9;*J8 .-* $,v@; \0@P_lmX+??/]q/F( +</+<+H+}3/]33310]]3!!P|d#Z@4 KO_XYX+??/]//+<+}3/]33310]3!!OtD::&:A/&03.%+5+5c&ZCM*&д+.)%+5+5&:@ /&/2.%+5+5c&Zt&@ *&*-)%+5+5&:iK@ /&31.%+55+55c&Zi@ *&%.,)%+55+55&<" & %+5+5W&\C:@ &&'*%%+5+58o/Ͱ/ְͰ017!8//8o/Ͱ/ְͰ017!8//,Bo@MP/?O `@ p p9r^]]]qqqqqrrrrrr^]//^]qr]107!,  K@ +;K [K; ;+k[K o_O?/o_O?/o_O?/9rrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqqq_qrrrrrrrrrrrr^]]]]]]]]]]]]qqq^]]]]]qq//^]]107!&'/10/107!&'!T'BB%+55?Q@   XYXVvFFfV 9) VF vfVF$vfF6&@vdRB4$p`PD0 ipdTD4tdT4 td@0 9rrrr^]]]_]]]]]]]]]]]]qqqqqqqqqqqqqqrrrrrrrrrrrrrrr^]]]]]]]]]]]]_]]]]qqqqqqqqqqqqqqqqrrrrrrrrrrrr^]]]]]]]]]]]]]]]qqqqqqqrrrrrr^]]]]]^]]]]]]qqqqqqrr]]]]qqrrr+?_]910//]F( +</+<+H+}]29107>733& $.8 #?3$3?Cn\O##NRR(?Q j@4   @ P 0 @    XYX+?]10//]]qF (  +</+<+H+}]2910#>7#!+ $.8!Fk3Cm]N$HQQ@     @H O   XYX+/]10//]+/+<+}]2910%#>7#!] $.7 #@4%3 BCn]N##NRR(?U`@)    0  XYX+?910//]F(  +</+<+H+}2/]q3910##.54?U3*!&"B9/hBH^?@Y p 0    XYX+?]99332103//F( +</+<+H+}]293//]]qF( +</+<+H+}]29107>733!7>733i& %.9!#?3$33& $.8 #?3$3?Cn\O##NRR(Cn\O##NRR(?@] o      @P0@   XYX+?]33210//]]qF( +</+<+H+}]293]q//F(   +</+<+H+}]]2910#>7#!#>7#! $/7!$@3$3, $.8!Fk3Do]N$$NQS(Do]N$HQ7@1     @HO   XYX+/]33210//]+/+<+}]293///+<+}]2910%#>7#!#>7#! $.8 #@3%3, $-8!#?3$3BCn]N##NRR(Cn]N##NRR(v] q@ R@/ `  P ?/9/329/]qq3]]++10#7!%뛿(F-eS(Jx2sd@d   R    P  PXYX+?/99//32932999//]q]F( +</+<+H++10]]]73%% %%#7!(N5Uo(V"n(6V(OVdd3Z}@ @P `   /    y &VF&VvfVFҖ6&VFvftdTD6"vfVD4@$ldTF6&pdP@4$td$;rr_rr^]]]]]]]]]]qqqqqqqqqqqqqq_qrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqqqqqqrrrrr^]]]]]]]qqqqqrrrr^]]]]]]^]]]]]qq^]]qqqr/^]+/_^]q]10]]]]#".54>32/Pk=, ڏˏYK2$9_rrrr_^]]]]]]]]]_]]]]]qqqqqqqqqqqqqqqqrrrrrrrrrrrr+rr^]]]]]]+]]]]]]]]+qqqqqqqq+qqqqqqrrr+rrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqqrrrrrrrrrrrrr^]]]]]]]]]]]]qqqq^]]]]qqqqqqqrrrrrrr]]]]]]]qqqrr????3222/]]]]]+}102#".5467>"32>7654&2#".5467>"32>7654&%2#".5467>"32>7654&#32ZD' P_d*2W?$ L[a*.)#  E/*$ '/2ZD' P_d*2W?$ L[a*.)#  E/*$ 't2ZD' P_d*2W?$ L[a*.)#  E/*$ ''>:_DK&eI>_CI%iEy.SB+Hq.R@W>:5:_DK&eI>_CI%iEy.SB+Hq.R@W>:5y:_DK&eI>_CI%iEy.SB+Hq.R@W>:5z5(@[0@PP/?/]]]q10!@2zz& H H++IN@4*O`//]/]]]]]]]]9/10]%73 CiGo)'!a<@'%@`/?O/]/]q]9/10]#77IG)na'O&-4@#@ H   O]]]]]]55]]55+T//10!5!4TY2@??/+}10]+3>\ %\@4& &      %!P' /3]q22/]q3+}2]]]10>54&#"#>533>32J*+=^Dc.8C*ZVO{-'$`[.("# . [T.l@N    \    0 @ P     wa almX+??99//32//]q/+<+}]10]]!!!!!#73!+M}(%:32(tо4@u  ! #$$4$$q44444444/4440+,:J6$'#41 #w w/ 1't0/ u XYX+?2]]?299//]32]3299992]2/3//]qF5(445 +</+<+H+}9/10]]]#737#737>32.#"!!!!!267#!7>7޻Bmkcb5SG%:, yY_w*6']upt_e50Sm<0TI.K8|pk"Zf'&i;{,dq @bb GG 33'+k;kky$$NM`32E+*(y'7VpEEEE@ HEE;eqqy`p;; ;s*)(uee8eHeXexeeQxJx(J++(e(e(7x-xqulmXsFssfs6ssssswsgsswsgsWs4s%sssssWsGs&s@sssss Ds6s#sssssssssssusesTsFs6s&sssssssssssusesVsGs6s'sssssssssssusesVsFs6s'ssssssssusfsWs8s'sssssssssysisZsGs7ssss@sssssss{sjsYsHs9s)ss sssssssdsUsFs7ssjssssvsgsUsFs7s'ssssssssssWs'ssssssssssws7s&sss:sssss_r_r_rrr^]]]]]]]]]]]]qqqqqqqqqqqrrrrrrrrrrrr^]]]]]]]]]]]qqqqqqqqqqqqqqqqrrrrrrrrrrrrrr^]]]]]]]]]]]qqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqq^]]]]qqqqqqqrrrrrr]]]]]]qqqqrr+????99//32]q299^]//]/+<+}ć99//+]/]Fr(r +</+<+H+}223/_]9910]]]]]#3267#"&547#7+#!23733".'732>54.'.54>32.#"32>54.+F&! F*jh I^Jٕk:evA%E}/O}Z7 PO&A06O4*QA(3`X@@4'4H(*VF-9jYHvR-#?Z6F % hW(-W`X/^bJl:^D#<6" "7P9?]<y}04 !5N7JmG# BgF8N19{@Q,))(( 4/4?4O44;o!/!?!O!!"w# #(w))))/)#)#)s/s??99//]3232/]]10]]]]]]]"!!!!3267#".5#73>7#73>32.#"KH@( 6XLE`JkZZ|I ~ *{ddU(&2=uc:% }uC=(EpP,1y̚9x20SmXWVYXYVWXWXVWYWYW,I9,$,SS[ B'L4WY????99]/99//+}10267#".547>32.#"%2#".5467>"32>7654&#3AO=ZwKPuM%\wCKlF!1;Of 6 ?pU1 cw|5>lO. _ry4:3+ ,*:5-2>SC&@gH&2YzGDK^#*Je; ?K-M MO IvU%]0~["$MxT%[.W9gT5Y%IE9fPmMJA%$*5D@U 4400 ##%; oBF< ; 0)(; q(1((1((1(  ( );<610<06- )-u,,t 6vXYX+??9/99999999//FE(1((E +</+<+H+}]]10]]]]232>73#".546?7>7>">7>54&MxS,bw"90(?4-.9GZpFHmJ%#F#%#J!K 9hc.!Bt0%Db<##b|c,0<<5P53g_S=#)LlC5b   Dh@(6,x  2:* )C5@N$ 3CS  <L\/ / y Ry@ H"   R y   @H  7p"p* *0****@/H*E 73 #".54>324.#"32>7>!{!$& @pZFqP,=m[ *4/& *0.(=,,&X(*.'b23iu?(KlDdr>)7" &E;3,;$#G@5@*2{@M  @  -2,/-/,/-O--4 -%+/-0`404P4]]]?32/32/]+9/_^]2910^]]#367>73#46767#.'&'%##5!_     75-T8"''$=H=#')#7 ]9t@K 0(  ((0(@(`(p((?O((5[;;"[5**''*_)_??322/3/]]]99//]]q3310]]]]267>3!!>54.#"!5!2.54>]/dm; WvH 3a[[a3 JwX=oe/]Rߍf35+esJel99leJse+3fߛRbH"/J@,@##_#P#`#p##1///) ?2]]?9//]2]qq210".54>32!32>7.#"uƆE,Lfv?qQ@NX.Kt]M"H$Sn;L]53WJ<"]ob}]<Oу-# K@.OOZZZZ?555]]]5]]]]]555]]q5$'^'GLWS@4_O/OPPPPP?555]]]]5]]]]555]]]]]5d^D@  //29910#.'5>73!;H:RR:H;)"bADp*$*pDAb"V@ @ /299/105>73.'#"bADp*$*pDAb"V;H:RR:H;#d^D@  //29910.'3#>7!5;H:RR:H;#"bADp*$*pDAb"V@ @ /299/10%>7#.'53+"bADp*$*pDAb"V;H:RR:H;d^D$@@ //29929910#.'5>73!.'3#>7;H:RR:H;;H:RR:H;)"bADp*$*pDAb""bADp*$*pDAb"&@@@ /299299/105>73.'>7#.'5"bADp*$*pDAb""bADp*$*pDAb";H:RR:H;;H:RR:H;H#(@#  /299299/3210!!5>73.'>7#.'5 "bADp*$*pDAb""bADp*$*pDAb"hPX;H:RR:H;;H:RR:H;?-CY@8+  %%.P`E:/?O3R?)%% O)?O ??3/9/3/]]29/10]]]]#".54>3236454&#"7>32.#"32>  Z}e^Q#,D`}NLzjo974-'kBn^))2)C5( "2 3WC/1iji0uJ@mO;~a:VL, "\$>-+F\a`(.L6Q+C@(   _??9/3]]]2]]93]3]1035!.'!+p DV/aR9:Sa-OW$@H H/?O`/2?/]10!!!CW6*Wb _@6c  c    __?9/9]99]/]9/+}ć+}105 5!! !\qKW,Ƙ}9@ ?/]105!}9|T6@  //9//9]3310]]]]##5!37PQv#3E@""  4'/G>@K@ H$9*C/ ? O ? O   GGGGpG`G@G0GGGGGG]]]]q]]]]]]]]/]q332/332/+]9910]]]]#"&'#".54>32>32%"32>54..#"326v/VvHgAESa8FxV1/VxHgACP_7K|X0);`GJe;p1T>"4`UMc9o1T>#4aq`e^f5G))H5/J35H*'G6_` //103!!^j8^@ 0 ]]//3//104>32#4.#"Dzbc{Fg5_NN^4tLLtbl98ldW%3@"$$ !H P P??/]q10]]]".'532>54>32.#"+*%>$,<$4ec(W?$,<%3eW5H*aWc6  6G'Wc6DR7<&@ 7)   @ H >87)((#77,4#,  T>>>>t>d>D>$>>"$>>>>>>t>T>4>$>>>>>>>>>>>t>`>T>D>4>$>>>>>>>>>>>t>`>T>@>4>$>>>t>d>T>D>4>$>>>>@>>>>>p>d>P>D>0>$>>>o>>>>>>T>4>>>>>d>D>4>$>>>>>>>>>>>d>D>$>>?_^]]]]]]]]]]]]qqqqqqqqqrrrrrrrrr^]]]]]]]]]]]]]]qqqqqqqqqqrrrrrrrrrrrrrr^]]]]]]]]]]]]]]]]qqqqqqqqrr^]]^]]]]]]]^]q/9/9/9/9//+^]]3210_]]"&'&#"5>323267"&'.#"5>323267GKKY'C=:3TPJ6n0D4 =?F)HHBm.'C=:3TSL244D4 =?F)/ !'-,2*)  &..2*;%f+@    J Z EU +;  @ H D  +K[@HD 4 T t  k[;{[KoO//? `@_?_@ @b/joO0pPO/O/9rr^]]]]]]qqqqqqrrrrrr^]]]]]]]qqqqqrrrr^]]]]]]]qqqqqqrrrrrr^]]]qq^]]]qqq_qqqrrr]qqqqqr/]q/+]q]2323222/+399//]33_]]10#7#5!!5!33!!ՁGZӃ#JdGP +@  /]/9//33/33105!5!5!d8dWY o@< RR /0@/]/9=///]33/++++3/10 5!W@wAZWY s@?RR  /0@/2/]39=/33//]3/22/++++105 55!W?7 #@i y iy///10]]3 %! {RVdG////107!!d>T"  H  ///10+#47632#"'.'&#"TR?K3% !$ V{{?0(4 ''#i  H ///10+3#".54>3232765"Z(g>2%!%}86'"%)j%?33105! %iH??103#ؑHK"??310!!#(in"??3105!# (%%H"??3103!!Hn%H"??3105!3 %H' ???23103!!#iHnnH'???33105!3# %K( ?2?33105!!# i%n%H( ?3?33105!3! %nH 3  @  ?32??3223105!3!!# i%nnqj% ??3233105!5! AّH*A ?2?3103#3#ّhHK Kj 1  ???23310!!!!#(iijב" 3     ?3?2310!###בnn#j ? A    ??3?3310!!#!!#htjo"j 1    ???333105!5!5!# i(qב) 4A    ?2?33105!### ܑב%nj ? A    ??3?3310#!5#!5!ґttj)F)ޑqH 1   ???233103!!!!iH"ב%H 4 A    ?3?33103!!33A$Hn#nqH ?  A    ?2??33103!!3!!ّK$hH"qH 2    ???332105!5!5!3 iqב)%H 4A    ?3?3310!5!333$ב%nqH ?A      ??3?3310!5!3!3!5!$KqFH 6    ????2233103!!!!#iiH"ב"H 8     ??3?323103!!#3#AHnn KH I A     ?3?3??223310#3!!#3!!jt " "H 8  @   ????3322105!5!5!3# iqבKH ;A   @ ??3?332105!3#3# 㑑h%K#KH I  A     ?3??3?2233103#3!5!#!5!A㑑tHK )ޑj 9     ?2??3333105!!#5! iiq"h :   @  ?22?333105!!### ב%nnj J    ?3?32?333310#!5!3!!#!5jtttAޑ"בqH :@     ?3??3333105!3!5! Aّ"%H :  @  ?33?333105!333! ב%nnqH L@  A      ?3?32?3333103!!3!5!5!AH"oHL  @    ?32?32??33222233105!5!5!3!!!!# iiiqב"ב"HM  @     ?3?3322?3322223103!!###!5!33AבHnnnnH ]     ?3?32?3?3222332233103!!#!5!3!!#3!5!AבttH"ޑ" mH/?3310!!Umm?/3310!!UH??3310!!U H??/310!!* H??/310!!* *g #'+/37;?CGKOSW[_cgkosw{1mUE- y@ xlTD, xeM5@ dL4qYA)}@ |pX@(|aQ9 @ `P8u]=%@!t\<$x||xiI1!@hH0 gckhd`h_[WT\XTSOKHPLHC?GD@32#".732>54.#"Fz^^{GG{^^zFV9bLLc::cLLb9d^{GG{^^zFFz^Lc99cLLc::c#@  /O/]/102#"'&5467>76jnk5RS4l9R46n9:m64R9) //103!32>54.#")Ex[[xEEx[[xE}A[xEEx[[xEEx)+"@" '//103!4>32#".'32>54.#")Q:cKKc::cKKc:MEx[[xEEx[[xE}AKc::cKKc::cK[xEEx[[xEExscu"<@$   @  @//]10]]]]]#"'.5476324'&#"3276c%%%V3eK#%HJfgGJL33FF3331HH13}5V%#%H%V5fHJJGgF3333FE6116y!-9D@] $ t $t+{+{D"(?4.(.(.1%+7+>:h:Y:G:::b^0H[[׀ؙٙW .. -- .. --#_[)4`@7*/$'!04h4Y4K4=442-_oO-_--- /99//]^]3]]]]332/99//3310#"'&54676324&#"326%4&#"326327'#"'ZZZZ. -- ., // ,0^b>LLH[[ -- .. -- ..[_#Fs;3F/@ H4.4$w##@M H H;;  H;/4#4;B p ?   9+>0/43?3O33/^]]]]]/]]]]10]]]]+]]++]]]+373#'#5.''7.'#5367'7>7"327654'.B 965--,,(17:"B?n0+(. P(9p6Eu0bb0uE`cc1u;  -;q9>_1(,=20db2/aac02P&/b@>++++""""P'''@%(H /+^]2qr/]32/qr]qr9/3210.'&547>32!!#!5!"327654&'&7Z#GS,e>SW;=>B.*PlzS++VSzmQR FF;G,+G>>=T,G;QAQF@(1A;NN?  33FF;A1?J777B??/^]]]99/r]]r9910.'.'.547>323267632#"'.'#"'&547632"327654'&6%( ? .@$    TVWvvWTTUzGSZ>==@XY<>><      "O-@" '*R*Qm}VXTTuuWV+ >=X[===>ZW>>;/(@& 0 ` p  "@ H"O_/]//+3/]/10#"'!727>'#"'&547>7>76 (_E#%?BXc$&}V+B,-SZB?N9En&86_,+i?~BCF_?BWVc %%1E[wK`_B?[J;*U/;q9S<K/@9M?4=C /)//99//]923/]10)7>7>7654&5#"&'&547632.'.547>3267>32#"&'.'FTl)@4:Z+X-;a)OII]P3N(a2+C.=#!K2dmy;*&StsOP"4&sN&(PNmVb(%)LtvSP<3=-Q}.-L'fZy'&@) @ P p  ///]10^]].'.'.'.547632>32b*gL8E+%DFfbN/"X2U#F)N7>-qEEt/'xSEj( #&b<^Q2P;`N]]5(o]H: 9Pwc;kM;!0@! @O_o! //]9/9/]2103#>54&'&'#"&547632L3:0./9@%%Hl9:Q0*%#Jj9:;b&J5-L9<guJ&IL1%H%@H%@ H   ]]55]5+++J&IOW!@!!H!H!@ H!@H!H!H!@H!@ H]]5]5++++++++]W+@ H 0 ///]9+10]2#"'732654&#*7>rPX'S\.6*RF24 ;9:TB5Q7v'& mD<@XYX+/0//F( +</+<+H+}10!; ;1P9   /10#>7#73h %-6Al(,G=30T&F @H@ H܀X+?3?39/329/+]q/F( +</+<+H+}3/3310]#7!7333XTg >BK+U%o@3  $%@ H% 0@ '%% H@ H%"??9/99+q+q/]]+210]]!!>32#".'732>54&#"#$G61O9+RzN@aC(./, 5(<&7Q5?fJ(5F(*+#/82/&@ @  ?2?9/910#>7!7!OwU8B`|JpCOYSH]!1?U@1   - ;;;'A52""8*??9/99/99//99]10]]2#".54>75.54>2>54&#""32654.wWL4A(QyQEfC!"4A'8-Pn % (*)7 <<032E &^RE^ O>1U>#5I+.A-O82K1"#&,0}<2#087? //10"&'732>76*6B*7VC1pMhJ*F1#9J&1CnO,X   ?/10#>7#73p %-6D l(+H=30`.@tI   ?/10>733#\C16D l(NWu/0`.-@//10%73] +5@ @//]107%! ~++ @  /39/]10#'##737}+ @ /29/]10#73373Hki/Ko:@@p@  /23/]10]]]".#"#>3232>73,QKD% $?bI-SJB% $?a&/& --fX:&/& .-fX:: @ @ H@/32/+10?!!57!:    ++c'@ @@ /2/10]".5332673JtQ*.>#Nj?_,OpD)>)LXEoP+F4 8$<V_birxh$$7h$9h$:$?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a bcdefghjikmlnoqprsutvwxzy{}|~     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~uni00A0uni00ADuni037Euni00B2uni00B3uni00B5uni2219uni00B9AmacronamacronAbreveabreveAogonekaogonek Ccircumflex ccircumflex Cdotaccent cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gcircumflex gcircumflex Gdotaccent gdotaccent Gcommaaccent gcommaaccent Hcircumflex hcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonekIJij Jcircumflex jcircumflex Kcommaaccent kcommaaccent kgreenlandicLacutelacute Lcommaaccent lcommaaccentLcaronlcaronLdotldotNacutenacute Ncommaaccent ncommaaccentNcaronncaron napostropheEngengOmacronomacronObreveobreve Ohungarumlaut ohungarumlautRacuteracute Rcommaaccent rcommaaccentRcaronrcaronSacutesacute Scircumflex scircumflex Tcommaaccent tcommaaccentTcarontcaronTbartbarUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentlongs Aringacute aringacuteAEacuteaeacute Oslashacute oslashacute Scommaaccent scommaaccentuni021Auni021Buni02C9tonos dieresistonos Alphatonos anoteleia EpsilontonosEtatonos Iotatonos Omicrontonos Upsilontonos OmegatonosiotadieresistonosAlphaBetaGammaEpsilonZetaEtaThetaIotaKappaLambdaMuNuXiOmicronPiRhoSigmaTauUpsilonPhiChiPsi IotadieresisUpsilondieresis alphatonos epsilontonosetatonos iotatonosupsilondieresistonosalphabetagammadeltaepsilonzetaetathetaiotakappalambdanuxiomicronrhosigma1sigmatauupsilonphichipsiomega iotadieresisupsilondieresis omicrontonos upsilontonos omegatonos afii10023 afii10051 afii10052 afii10053 afii10054 afii10055 afii10056 afii10057 afii10058 afii10059 afii10060 afii10061 afii10062 afii10145 afii10017 afii10018 afii10019 afii10020 afii10021 afii10022 afii10024 afii10025 afii10026 afii10027 afii10028 afii10029 afii10030 afii10031 afii10032 afii10033 afii10034 afii10035 afii10036 afii10037 afii10038 afii10039 afii10040 afii10041 afii10042 afii10043 afii10044 afii10045 afii10046 afii10047 afii10048 afii10049 afii10065 afii10066 afii10067 afii10068 afii10069 afii10070 afii10072 afii10073 afii10074 afii10075 afii10076 afii10077 afii10078 afii10079 afii10080 afii10081 afii10082 afii10083 afii10084 afii10085 afii10086 afii10087 afii10088 afii10089 afii10090 afii10091 afii10092 afii10093 afii10094 afii10095 afii10096 afii10097 afii10071 afii10099 afii10100 afii10101 afii10102 afii10103 afii10104 afii10105 afii10106 afii10107 afii10108 afii10109 afii10110 afii10193 afii10050 afii10098WgravewgraveWacutewacute Wdieresis wdieresisYgraveygraveuni2010uni2011 afii00208 underscoredbl quotereversedminutesecond exclamdbluni203Euni2215uni207FlirapesetaEuro afii61248 afii61289 afii61352uni2126 estimated oneeighth threeeighths fiveeighths seveneighths arrowleftarrowup arrowright arrowdown arrowboth arrowupdn arrowupdnbseuni2206 orthogonal intersection equivalencehouse revlogicalnot integraltp integralbtSF100000SF110000SF010000SF030000SF020000SF040000SF080000SF090000SF060000SF070000SF050000SF430000SF240000SF510000SF520000SF390000SF220000SF210000SF250000SF500000SF490000SF380000SF280000SF270000SF260000SF360000SF370000SF420000SF190000SF200000SF230000SF470000SF480000SF410000SF450000SF460000SF400000SF540000SF530000SF440000upblockdnblockblocklfblockrtblockltshadeshadedkshade filledboxH22073H18543H18551 filledrecttriaguptriagrttriagdntriaglfcircleH18533 invbullet invcircle openbullet smileface invsmilefacesunfemalemalespadeclubheartdiamond musicalnotemusicalnotedbluniFB01uniFB02uniF005middot commaaccent foursuperior fivesuperior sevensuperior eightsuperior cyrillicbrevecaroncommaaccentcommaaccentrotategrave.ucacute.uc circumflex.uccaron.uc dieresis.uctilde.uchungarumlaut.ucbreve.uc  LNDFLTcyrl$grek.latn8 TbDFLTcyrl&grek2latn>kern h*DVdT^lvv,NhvNhVR0^hhn@<J\ d  6 < F P ( R X R   > \ 0 f x $<V_birxh7h9h:I?l@W՘P<'wASڽya|=*V 5{(!u  2dȸ ӺS AX VF3l.׷[|D# `}u&sS(0{_fFw|-K1(@ @R0tqG@F7zWDO'͵-*[^{2P@ z ٟH'^jAC>/p+@Cq_1/^u(?&_dߋ Տ}MlXne+K%i*d }_ز\o& ?ײAAlZ8Ue5Ldg12 *)uz?@ p<`"(Nၒ}m\׈,wl$_ڙ^#5Ŧ ̓o[wcæD_'yp՚q/d/3U>~8K"J/΢BKׇyS"&*T00Okv4Zrr.'n+]=d+[?d8BCn|ћ9)v`~,D`At!b/-3+K OO(!𭉳Ƭ/3I#GE.7u_@`@AWl ]+ިnSq ^~wjb4sTKDD@hy]Dwj 6 cm[;:Q:t=^ ַןZ>ݣ>i5q LnCH0uvD2H7?et~ \-|mUMvVsIݮ; <|G CB'_b dmwc^2w7lXmtÅ8 E/6_\rZ'W YӦ4J%0ڑf͍6%ф>aS-׎],u=ubPsQQsm_Ob Ù>A}WY)6(P to,xfo ё əfո ;3wזhW]-B$1ۛo6=Ȥ -Q2{Gk/ Ʃe}8)9`Q999ӻ{䗎Y&)i 5k~gRhG' qg=2q iON,k:d'Zw@-eg̿x%o|Τ3) &@D޽ Sx 7A`P>uFm[M{}EMeͿ I?T7kbŻ,P 0Pk<6c|Nh]Hmcѣu*HA2

]'iVxG ;n]@`{O,ePh6/yp/A<tEXtCommentCreated with GIMPW%tEXtdate:create2012-03-20T16:22:05+04:00jo%tEXtdate:modify2012-02-10T16:36:00+04:00\IENDB`instead-1.9.1/themes/default/bg.png000644 001751 001751 00004077550 12161555567 017521 0ustar00peterpeter000000 000000 PNG  IHDR XvpsRGBbKGD pHYs B(xtIME  *<.~IDATx켹ӬY9{===jIƐ O ,&6D`A`(Hn,gxo_Zyw*?֏cX?֏cX?֏cX?xk?@Hh Ekl!wx/pZ"{!f s$Ԉ sq|IL鯯@ uHK&kNTOԴE9C<Zt"#+sI@b3?8k-dpMC ]Puh5J;;Ӟ|?0?( 4j64qzvKATgk ?=aUCiTӑYD=z:@3d L3*0(vZD%#Bن-5%%ѫ ȉ*fQŴZjJ#Ѵ"3o E_^]Kh{;5FҸÞf~=!`:)M0ԜSIZ9 2׶m31[AYxĥ4,2~nr3" fiAXA lRs&ՙrܣki !dd. J)$H#H'lČ3B9/L% ]ҌZSN'DcIBDY`5]ADkZi,,UC~]LNv9VEFc-ϔ\@Ej)UDFO(:;19hMK:̬/P*1nj.ٓ'p8ѐSjEy( 侣jgHs¸ 9 (Q3t`}yMc{ppD* B`uGcq@ T] xqvsQ"1Wh$e C-*ù,,i:aDo.!2Gm޶ ]DкЖ{*m15!mÔNwhA*9ydϮG8kd6 s8`mG%&f/^0g$ Pt ͋_ d|[))R(B-0aDgӈ:} ,? ߲=[ѯ:aBKICO $Y!)9?cKr Zin~j/)!7=~xf׬^~:sn6?oxxw%R.{8 w;VMK0M3͆aqMp<(!+#u$ 4]ly{w fn%É2GLҴ+i*(*4R )Fer@ωOnhl7kq-ovP\8|nwO:E>tz$gKj5Mן0V? V۞݁ikBl5OGn7gWdQxys2>7ǵ='?G^~=0`ď"<2 gQ?gFG~_s)ÉO^\aixblHsb ?_rs~)w\]nv#V^w8kbsA|{^]Ьzvod/g'7ͯz5eg k_%6nB`:GDΙ;oox;0c`uyW?tB@TgZ2ҭPBbAE)Ev<| b>w~I"OHݼDRSDF%FlR~F:Kr<"mCHӄRB!AX,PoVP )RELEˊ(B )*H%FjL)VNtW/D&\ֈvj,BRK"@H$8#uCnBPBSGX)QPCЮRRZ6${p*u(@ӷ$ 0SݞcLC"@ԊlXjP Y4"B4=uՖRns0<H1Pb"B>fP5qdi5[U+B)-RIpdA5(Z*Y;YuZ(rFY3!9 ]֡ j~FhR9yƸe,"78(P!5RwLӶhcI9t=1+@=f5)R(9S4c9 c[CJidOHQ1Ì3`>|{d!%)ZƒrAY֎"%Z)j)QPǮ{tf@7 $? Ti}vZ 4 59̘%R* m4 v 9T"~ҚR@:MYţ@Q(BȔ-jQGRXp0B b'dU~/sڳ =|-C#zRm k4Ñ< NIȐX+a`۱6tIVG>3B@wT2$ȾG( J0w[!$rsZD,ï!:Zc*-BF GjU`&J4hcѭCdqF:HТRb$LgtusrA<}y,%f|Ç=׷신:%o~ݠR"W7ӯՋ7gaS1T!Ø[]p8_pZpG~t{z0x:g_>%3/_GܫKg|]B@DŽÑOK+jUd^] () 4jj`;(ww (Y$RB 2E#ն8#.MR FhӌuJTmPI0>}<8.J*%J^3{i7gPhE5(u~R3)iW4(eϞfuI'mhzA~Z@JB+IL@ɠbAl\G-0jZCxP V%fF %4H30K6Lc,Xrh)w xDKIH䪥qF`bB4'rE3Ip :C)iִ Z9468τF!^ !hb~|= @% 4dS(1!]WPѣtOȋۺF+jQaďK\Ѝc>hiL\eέ1Fw^bf?H5xJ,2J)(m~!"WJIc\OQ Rf0tnGk vM-JIt[^sIAqQ>RiޢIT Jk))b mϖ"}]v- {S(=B5Zi`H3@*>؆߿at>ryuV !>Xg[[u\^R8ybz:P4O H4 ɳڬh>!i,SFVH.^r%aORas:/KしG|׿euA\ m7o"L3uL48/~o93ƇP4L{6kSܣbCag _0Ļ\\\O~O_ݲç`?l9frܝֆ77GG[Ӂ0ό W/ko_ >'Wy8=>GyPNsxxu-qGLl^pz>|ć$ ~NB@5-9lCu$Q~[Ḋ#oQ"F̞8Th@8΂緔"B]G2#uKL mהM]mɶKFKGR<Z|M`45gL⚎y# ; Z/"5<:J t].JnHq~ܑS."NOB$=c?ӒOObeJ-yD= -DEfH̺%4HKG5 2Gg6T! {h;6{,FJNd.#RfzM>!g|K D?,LJe})fDݯ9cEyHcF/+P#+$1*"(HLb\K#%F4rEI"X# 5gH#BvZIiFHPmхR+ OZP!(gTa$dYZd٢DJAi5PJCbP P 'ja\b;G9izJr)\5SH(R"@MorD+ ) .Eh0HfCe֪ߢWk챫0"򄵚 r%FT5 pR'3(q֊тf(`<()"\txd<=_LqkMkY!RmI1'L%" {j{( 1F ڬHÁ7*T2k?<#2yu9&64 %VTQJҲER Tƀ-O(!SSD nUPsX \_?-eJY뙧MkpRH/}T= G14]4w4-Oj{l2u,ضք֒x@[D.g,~8Z]W<ӸDp@s_HӁP %dj{8 RHJSvXEPT%e3N/.Yk 9%1yo1JpPR0 JzӇG^gTvü; d85kNim٬~9w4pdL gg~nf/_;L®4? {w߾Y)ѷ-/>};- kqmǛ_iv;c}u΋W &)t8 -Y<>Ȁ<\Sb=9@ \m Aj>$[tO ~wO'T|-߽ciBB|p/50:Owox ^|݇;L)l/|?0$jЬٿŅq֟q +߽{GP2l*.z8P&zK*ޓBD9g]S`tvEGA0M}oOhe ?nIӸ II*4Мo% h#ILau7!@+M7iԒYa S#jBy:FBV[6)NGL'k;Lۡ" "O2X6H 9ΤѶ'a<*M%,v ])d D)jzI4[33{2RT:0 !qĀ[@%1`v@0fB !JEܙhouFBnz%$LǙgiV]Z[R ,b RĜZ"p^e;zEs1Z#$II '6(1n6d'qJSBhG ,XU8pDzIH,Ъx0RPЀh2S&L(3amKUQHH!=ʵrHF2(pUP%.@I?>I0HaaGO|rz=lɐ#hb G"IЮL)5#檼U%:gTD4BQ89T~G*Ӯ)9R'9xnz EDHtAjY b+aH@Re ֶ(] ZiRN,XDGJYm%!KU8R K3<{β;V'P q9>|0Α춴sS\{DnG/"\A~wHٚvG8-Wr-^I vo!4q{2MHx5,;%rO1Yg 8?(?˳^x Fl[G?M4oP:RA0Dm6q:b I!-ii.a@ۖ2yNTkp9eܓC9M3V79ܾcu~ΈnoiΟ0g ȸ}B )V뎶F$28崭ŏ]D*c4b (SPKfaItAZAiJwD38 B%z]0R%0Z$X2Nk!94{r 5(ۡba~D v%#T0]K*["R"B:tOV#aͼhEܰ:r!e=&fp=Y"uQPZW$k(Uń5󲠕ZrG J 29N=%KXfOD%j`ȋIttcTţǰ,-5D"$"W$Kp{.8[m0aqE \s&R#`3Fj:",%(T'(VC\H!C$wGƌ6 !R,m%T[#rDq `5Jʚ hpCw~KsvW$3"(Zbu1,oh/(#XDk`(`W+rH͆4AN mFa Jc9fl%qI=s}fgRa70nh6Oo@RRMK %62!̄y¬:ZIrI,HFe͠P$G+_!.w(|z ΡmǼ躞%Se.m,0wHQ9D7O:tEX=JBHQZsTYTL/;^W\~xTk21He(( gl!H%@_џΡf9뢪9C 8lЭb8{B@@LJBk IBQtֲ R1޽#- fB:MxEuKo:c{wJ/ f:MK>PP8e.RfޟXmV\qdiXu\Lw|7L9aw͟1Y/}pMC4W_~|IF>!w5uk֗>5IHw/ Dž ۇv'JI gh$gMϏߑO uzp|<pms \\\:~ ??K4Xz P躞i=g4#qsePH)R3krtg{wY|i%Ǒ?KxD9ڮ^Jw <3_r=_|)qys}C;._`0/lz?;t 0ϴOx?iׯ^͏L2oٜo8{ c oIKKRvqR{?%BkZ~Gyݤd! A0)%STCN@ !4b.dgQQCZPEd?3loX=o.@xx$Se%#I!RhMQ=QH1%P,Zu Q lqvlAT 2RIBUy$ -B<Pʱ@Bs&i2RThт< "5 9N-(8Q#)xH5-).5h;/1sqvضAd41Y&! 9b%#9ryL3ګ!cD Ai$RiDɥ3J|`<tu+l a!42'Zbu~iZ<$ H1'L(8()@02oRԇ])L%SGo毐T iAjZLӄxoQe9SWYրqΑ=;H52/Lw4k'8.4aBĈ:BM'\?ÈkOh4={MPr: "8M7c ӑsgk޽yKo.=eYZkI#$O?Ÿ'BXpMp~ƴ/MLbWؾwk6ORmFS~PY[zl,߱Csu489ma_]}aV_~AQ/?}kh+>yw/7?{f})ۏ,hu48qy9ՋOJ||W݁_WG?q7\sB loDqϹw?"mIzwW|&cl:w|>k>)=wMO3j`j8v5)D[X6=%L0C/=/>{A,Yڳ,7?aYsy~t~tw 5y:"P4 PS]-1A" ٴ$?⺞20m13>"CA8=WyE@ }!KVPl ۞L$Yl@ j0l){\w6!buD|v83.cCpV/˂ԉEKv+ 3i)1gtW=[#bo)"aM[ֱ0M[>B4%bt۔"!'1EKP/C Q ť{MFہ"d|J sJq5DBzD\~ kZL EgpcX23%lɣ[G ܀ Ed$ ېbT(ۑ(kxxnh4'Č$㍁J;e~JҜ_Nۀ,B;i-t-^HZ mOqHʀRrFY }D"lI. Q lE8k8s>K0.i"BZ\V̺`s "aɪό!:+~@w+;d!?'~oFO#-De1,t"5~$?/L[BZy8$3~T^,Ñx943vğg? 5gج1M{Za|s}򂇷r{sx˯4Μ?yB׵_}Ɂi9g_1kOxuuw\)lC83mO޲9wܿ4he>؎ øivy7g~N ϯxVv|'<}v[݆v/Q?'_m؜ ϋ_4߿p=1tMӴ̇-@_)p"bbYq"3_|7YɓgT83 oB 稶e~Ѱ9 .9CIK*TUuk4 e8Bo8G@;l((E@{lh/(Rs m}Oۭj`jI^cDږZr$N/j/+1¶ru+@?l1$P k(״O*9dʤXҖym4痈G,~0O䰠MS}9 rtB(Bd!jN \C&UDO5hW JUﮡ3Xe9h?lM[tG"%>jHRئ!@<ϔyƵ=QbU13 =%{>~`uaH50ÚsHQ2$n2uJ"@PV0CNeQ2Y1(|qn$NvH'/'Hi/ 4,צrЊR}yO|TqHj>BJ.0&yOQd-e 9gеcFw5UPlDTPqdJ_Cieh$iNh1]Om)EU$q&,Zy|$ HY0a^h@ãMT PZRXMty>b}oI,1v*T„$T/FWR3u!հ"dmt-fiRn@+Q<ɐℲ(a"3~(kQM9Bĵqr:"cTPAz6!!RjVPT#_ _X׭'[S'% BJJQ,y<3z2PHUj$JY~BjiH׮I)2зHPBK fk{BF 0(tchM\׳Փ4p_Ն0EQURӌ4{+%#f3Bd²cB7 T#iP0J67 <5ROGD5KZj4AQX) ڦTnC%^TK*D4b%P(u^q`Cw-zԋP\ Dž^",#ֺjŇ: MW簽E7=|G̊ql&4i3~tkк^@aB2zHp@~xV;BB:V=me <%~#B9TH0Ѥ$i2ʊM(wNvD%#y6OQ"p/US]ڞ%xR8kXpiaY3:5Tl.yxŗիW$#xϳ_2(S-䨸 xax0'V}1̌i |tw1  F?,f8Nd G>FQ,2O_w?Ю,ҵHs/ /_5|YYtyÚ@֒Ukٓ idڟX |ws=ՊfͲ=r:1Eg8y)n'vkd8}g?HT ~bxS\K}44%ҿxƸ#&Ӂq'?s^7LEr۷k;~B MW,͑vX=Ϲ'9T{ءCДy-ob؞vwٍ3Ϟ\>_3nx ۇ3jsҮqf)RK(e;1$- ϯy. O)̰{ 0JS(Z O-N3dmKIkȪ~ɦMH3pls0="3Xp JƇSSPR!Xp}AԇaFlhj-(A,HmYc-ysxn A'#R+Lc^ JJL5jS4 %DeկdRDhx -C& 8SI1Pb{_C]L ih4͌ӄU"ҴhL cfC.BE*ӣl-iTM \Si 16st@^Жois$n|uD (>bEHghnU1Z?Meb0}GV`爟OueTjA #Z:X\TAԀx:>xy w,~P,YWE@j) Yrk(HY#ZeR<ȘPWCͬHKVk"& m0Bbh&r<XTMWddcs/ F 0S,XB, /خ%H7 u0M62hJnJC=,+ mQJuK)ʶ*(DH_ P)HJ?fq,ӎ0/(>~ҖuL$rDQ8QA$8o7R(9d! ӂraݐŶ+G\3]iVdrEPcUGnӖ#% i;8oѮaF(YECنkTU]GKv$ L0 D mo M~>xO i5z[V5AHj,Áڲ?n#M;8npJacb&y躞l !+(c+>9ݞL~J$y=O?yq5x Vkaa88͋gܼ}2IlO,qdxWfǻb$j\\spODvh8-◿ ?pZs}/`1Fq<}{V=? Wgg/߿W=V?_۷ܼӟ}nJY=`ئ~ϻ? զg9?N&`|xf<)xkʬ~KZ.Z~g/EZ?+/zr UUZ.i..-j`{:2/xsw}H9wP"~پ;_so-X?HQ0B0X=i4tbz} 2Nl^;R?`<%LG ꟗ0>̀4RkiAPai cYj9&t6-[FL(H83`! L'RĘ1ʐ=1. ,AL?`!UT ZmEB!,#RZX| yCLHT er T;4D~ o43%D?"FOt3BH[M MW/q B2n$O) eʸ91‘RaP! 3)9lӐCeRYtriw&!fj Rc4]@LʲH,.4F l ÀI5O`8o,]85QsP8 H-?j'TLn-J+ !`ߟ/G~:n_\s9>n{ 6hUEvyY=g{82ffGzI,qIeyFז'WK jƢ|"qtfyp:ʰhbvg٭9E~h+O]`I9qeoPZc"g=+)E?bڊaw1'-?s~p-1%'SwK+|zu%_Ӗ;8w4|sJǙrŗ_|N{AN=g| 9ۗ 1Of=j`kl،#5$Cϗ_|^oP˚Sq|݈V8Ǒ{^#mհzqA6bG?y}?&LJ)DN)&(U!bDV9:@G}v`ipd>^^yVڐEUICOy@2b B"ԫR'l]П<49 qTFe\么BDUK6 밶D4HӖS/·\HV<Œ{L0JlTOP_A;"a-0Z d58S(2uOL8UȪjM$5K'kE :JB HU[tNm0yOG,=´Ȕa18RnB2ٶ,rp3IAqN`[>H[ \nFx̙;|*S^JHT-*'\&dBWi9Qkؼ}="8Ѷ 3B")&ڶCيx4P2V堂hFT'S+ ({EP{(u>R! D%Qޑs&$1!)6)p,Ii&k-R@VB[t<O$-hCJm,F(P/,>q֢Y'mӡh[<,D@0Ҋ]r!:GG~O%39"7#ʔ %.rGlbo9.8rş"dDH!eGFV\vLOt, !Kâު]MNZeAB0+TYd] y]9GYWX!HU7E 4YQ5Y&iJ kM{u-Ū7)1y5 =m :J* > iika@S~"Qێ4-M iƏzMEHIҖ0ϬJ[,S!TB+ "xgdm!԰._(viB 8M$h&a*虧uv ɘ8 !$,QИƖR̘FĄVeT3!+DqAH'[XKyR2#iFQ-~bTU7LH')xSw "RJ#rimLLˎiX|hI@cJ5]\aRdF㧉ԳxijRI!b^cI J)s[^Y.-*;yF?MiU 39 KP}%"'KK\ŒEVi]C [RI^tp> i '2S?q=nXcvebu|tbմGtW=۷\]4}"f% 5V|˫xK~_S5C9|ӵ<|z +޼U-_)RIiKؠ!pzzچW?E|ĸ_aeG.no=mY-47e W ۇD[3?!/>ZN2s$!J1VwզS Gm CY ~.^suE=r#RkzКtڪƻa a?.MNUb եcE'BF T]T QR(Q;KT%X)Hc9` 4b-HPRH F<jEbTd9@K+H%T69$HUE 7ʐBƇjj*kgü4NvAl݁.X/RL}_)BΙ/3SZR,Q(M̞3V{dtc7Q"./OۑƩlE\HAJ,q/=SmIi&[sbuFV?d&]yIFMWzv* QG-Hmḧ\$FlrN|ysÐ./ Zeh@|zmj?{_PAr ́7;5Zv,1͆QEX!D;|,/!-aaf>}|#V,ێ}wW rww7;_|AvGͧ'";%8susM׶Wgq~k+6_\/WN^1/9~r#<|Dfz#ixM۱:?>`MaGZ?[o7=x`4iZX\\4Ϯ.ٿd?ԋÑ^5n9=>`D"VafbF "g݉^aa<1sN % XbrXaH q6vAtYn=cG[K8pӑ< usCr0ajtTY0?HZb)by"EIu{E@3g?![I įDKy%ӆ[FB[[2C("-v3(QUGi<0^l, Bж Ua:q.fPmG^gкBII4q*Ls<ܰi[H -K3 oTdLv*+HtݒY QIDnȤr I)H:wNR*%i Uw,K\EB6 )L[6kƠc" u)$h{E3R`fOGYN-Zby Bʠr7 @$R $lزd3tmR'Ƅx̚ J#R2@v]H!c ٮLshYh8Brh:#ӸCS.Iib)6S(89G]G0 !e:~Һۆ]!!3J4pr=sUDBZgWbmḰ2 Prg#]b+p$KmV SB[T*8t*ER!y&T$l]?# ICUkM]#iul(pPbUirt˥*hTG!mȂ"nhԫk$"mî"s,1 їgN%”rIfԦZmg٨ZTW6AZhz@D2#lA,L0X\]|قe !D\3<}D̘%&KXlӀɦf0J&+]䂧BK֒=R%HXW."[dۡEBO+RIDgT=)t,F ח!aaF@´KΒ%+F9O([JJ"`e~!b1]1,i¥H25yRd8X_P)c6*ѭ1ezt)C-q.#Q"l""T[JEB(%IIxdՒBB(i||W`3)rkkip\a MB!HYPD?#6 R4=(*p$4{m+hM+-7e BY۟#lnZ mCtb &!BZٝhk,XMjRf@[Ud.nn9crfl2#B&aݫ\E3}/_<Z |z8W AK5)DqC߳{zn-OoƲX_px8ŗ/q%"%.oל#i칾^5ǙnϹ߿eusC3Wk>nX-ߑd8!rK~yvG!]]^Ԍ.k>m؟㛿kyv{͔=0)>7闯/V=i8|ڲ~l>nX\oksdaj%"^q^?x8j4OaüNrN#h,V09no%Ĺx ?iKR ? _s,jB$3*˲lJ8}jtHGʬQiiIBbhH[K-|j I RcO$дd"Ee%=fQ#1-n(`m )#|: rFaG5aKUB7?BHPdztuIJ}i4GcohYU#Hr$)ej#*sѳ2HI#r%Nڋ2Aw[i'8Cw,巜4<9=*tVCH%G"F6NOziPjG+-x[$M3f&DOY=^i]La5JFhԟCg-J 6o @u kLt_"Jau醤T$)P!/Tfa1Oخ!猰JrM'wAPJUb«FB&{|n-B)"Lk& ?6^D⧙Dm\H$QjIPiO\2y<Ѭ;ighHؼaho$Y3Um rߣ9s$&mH݄)1UBA?; c琦'vrmc y3Z<q&7'RY O;;[3Y(h,~7";,-]3#Ihg%Pin&7PeP1%~v@giJxg8x ZJn~<}zNiܬ Ñ?'FAZ\Sa@ϰ_EԋVq͞W8+/^xo|&K\]ݲlgTW+~_?‹qguu~o $dҜQ7Ϭ//x}qO|X,`k5;wG=g="Oxkc~N,mY_N'|`ǟf ?+ad;M>y;ny𑛋+}b ^\?0vt8pywOZ#摟Gɿ+_=;*GOR4H%sAJ9Te:b*9=~a4UC"d-dJ5(y\z9ge[#)2-O ABDOE%5~>ԌHKX~H$YdT] q.G%U@q:b+쉀,"69"Rp DW~(*R,ˁ=J )srTݪb __ޢ\)Js:AEFʁr.nP0>RD˄l\ZPXSIh+FTw :Ŋ`3~#27֒Tz֖P f,jj(S&H-:A@XCe R7]5)fdPHk|m$%R,8ЦR,UL0#$Nh[~ JYR-w:@ NeB3*09"?aeM`V+R䘑Bu:5h̑iv+DH"%_B ȔU] Y!$ Ͱ@H=u{[c[Pqd%M;Uݒ(Xa.2V(a8rn. ʒ@yO?ə)}0%: gj BHp:9!chaFTM0uֶ <#Bd",VùHʑpzD*M @X['z b&kI([)!BU ʲz ?(Q&%h}7*? # ]ߣo!~OSyx @ƑnO{x-Y'gk3}vOg7l普џw__AWp~u?q~reŕ~򚧏wܽӚdXmْUSݑ){RwɑB<˳5LJ /^x[133n?ܲXyk%N R?9()q#9s?=?3>ia3 {{K5{^ > Pf~ͫ3T<6Ap6BxO,/aÆEݲy{Dg[CgjW-Ր0?_p[6$8}vqO%!y>ٳb#/9~ 3B'_9#`=4i 4&fQLM]VϦFńDfT2#Fk9>zg1 m$S隨U)@w~YN|8DZ:"#ِ=[}BhR.2Ev"DF%1q>PBʠ9]nU]HHDV Fp!-[BOmMI)E6D!i~*ڮ=9%i]`sŷ=*p@̑KB?f}4ďo+xd8l őe1$KB!gmH.r,.zI%@$\ yFiҸ~ւ+0qT-*(e4TIڒA/ѢtTXhih.nqB IHEg+KR0 ~L°]^ƱlUJ%L YUH |B )s$ Jq_"ycmKH7EWM)ʒN9ԭȄ0e6x i n&/݀"Qd;DhۢMWv)"S*LSgZz*En9 ,KLüy,dU=^K|$m8r;C2xa"&A^ ]&4Ъd JҒyreNZ]$gs?kp{#vq+ȓ{܈-92Oc ǏD258|#B[ɟ`$ {Rrr4aHk= yސ-:z\NtEE@%I)Bf,HЊ9LbOئbR0*UkB(@PwO tTݒpĢ]Dd(U T718>ϥS(xmQtt $Vs{BtȘ\=Js.4n urH4;a1yil{fIL^ӑԏd-uV㎜2R,~ # F!SD!"8\p.?3yPB#M̮ $Dc(qvZ2sئ#elEb> Jv]٦fA$4 QJb Ҩ&1 d0/ Z&㲤 Q❪t+lqޣADi0J6%=jy^z!R&ŲZVz&q !u0 7NOeG3wU3bJ{.//Br\q^~\-/ϸ=qͷT+~'v \]_pv}f˷w益g<|Űx}8톳=M{kԢa.Qְz~ɼ?5mjÀׂ}c^vHk(,$hR*QJzΜsKw=mGR? y_~f(U+Cv 2(EypwֆpKI1R1)y'ELřAW #}j:!BD1*{EK$5WUKd跴mP.ѭ,YΡ;{FtE#R7TmU)UԒ eFg g1US.;s᛿b_P--=&H U5, 1w;ԋ^&t2[+aRZGBa< E'UqmA V(DWRZ;btEL" P,.3bf<`T4F\>eBq$,1ƥB,/ 3VJld U%Fn #"kdא253x,e529+rr],N'DE9nL){i9E87ʔz >Z U5(ISg Jc&We yv`K)y<߽/y4nLWL"<x@ۚ@' ]SC*Y]W"%)%(Cp ci'܈ɠ4J2Dv iÌZu]! ʌ\.! SW[bFJ?91]$r)˒vJg>tDq"S,Z#C)CH0@d%#(~.S7L]ö$J,S K! RنPtWB*>ih$) .\/"DX2򊒅`5 h*08/0T)H@.*~VǼ d7E\6~D4-G1%~>„wldM]D9/r~?1Reɰ="[ʲ  2XmñN8uelň!30a ˧G]sA)"%adD y!ƚGi*N cHZ[8V 1sYZ ]KbJ0=TŹn*.ѭ.K_MHmP2#tM}V.9%$Quˑꦣ^|`rSqPĞZIJwyأ8Uu Yz@F8L49uXPc H۔ BKq t$;@ MS6ֲDlP(i?=;jWH? ZnvIt31J\,%%1oSMMW>g稴& >&a^»2\nGW$i "v2&O";R%ȵ& u`cbѴ5Hn0h ?ŏ9xL_>v_}0"g ?́|Otgno-a%CJ ӎkpc~6Ŋ~H!E>Wd>~sRyd|/=[3#v{߽px;<[_? 25Þi??Wf{\w|W7UwggO!%\Y|݇Șx]^CypX%6l`$UJ~+?vqsLEu(2nƠӰChE8;dx"9L"%D,Il Oo3W?X].pm) r]&ꔈ#I a4jJP5Z*qs_Dh[2S\F@x5LRDeX\,eۂV2s)ǀR<{^:\tԪb3nbU!݌ǃH?gGXYY蔐U+oaEe]Ricy}ô1'Ou~^Jݲ<Q *yk1Jbb3*CZ% 灬ж %#%D Ң BDVvʂ@EU87H*Sbe4bApQBekit hx4geS8!Y4螔qr9sa-uToOT!8SFKMV1'Q (ۺʒSș?_Hk,D6Euq-Yf|NdU)2e鑐!zw51B:?8, 5߱|EjkDgL7A$,D a!GkR#Kʁ"'C_BY^\eXQRR79+)i2fߑ`uSN}Ovb"JU2~]^0bzF]P *ϐ+~¹uT҉G Ѳic$-ʦ g"G>$PD}FkHz*SO %܈J %CJqBLZR(ep] >c vqIT $QR e)ReRB1 [/L8O"B6tCl < ExXDz7tU)~n}ž}߳:9F1%1yf\X4yzwV wxYbGR~z]97CE|x|G2f`lh|﷼z0No ۑ ҏ3UUBb|aˋK2߿ZV,hawdy*03^dVnYV?=9yikC2fY"׆C{)El7+nn^2ݎW/H.;sJ eE[\Txwq#ժqgͯͳn/?h=k#$QGw||xt+4l{?3zwTTY~?f>&~˿D5 f+yP]fi`Xr<mzJ3nDF(c3LSo^rp;NJBggȦ#>=*rMShBT/Ƣ$Zw>RW #}Ew QnڕBV"ZDik!xk@ P t*FV(UE&3ݢ%;۴0=xM5a=?%  z͞T>'2RQ i#bQ9Sာ-1)v{l[bZU.V=ZdNOhcʺzPzG}v%$z,oU"'M$7Zd-}!F@m*zcbFFPքa$[LÀjd#h K~$2K'c{\fW%Ja&'09G%w6ʶh׏沝f2T3<1>|V%ᎪZr9Z*:Q)vB/:!! u]AΤPűҝejr T%BVX^ ,ʐV6EƱljR T"Hc]KGR=꼔T`R#'L47/K BfRe+ x(=yY-mD$ K0.B]3jD֖<5ȔZ>g DΓŧѴf,|/AѶخ~Ѷ|6*eQJ(QVR( ϥFUYÀc*Xo{ ](Z[* &8dh 9H[\=RHSR[K,0 Qii)dH,WK|wmH 2nFY{82M/H1r)ꊇ{)Ӷ %n &ђiY~+>ggd^~//~\_.x|s 4n矡O\FqK4 lw ٰ?0{>/9s̛Jeږ8LijW7#nѦlsʸ?n-jr!,јccmF\](U5逴7? s oiV(.جGUww3iBˆO,?sx0l}ī_FDXÄ/_pD=\sty`q~oa~%?O9Y}Z3|G5n?y{lW}G'֯1?GW. ȺZ]Ķ&(UDH}e+7%2PL(nIڋOY_%)"d!Ff4$?Eb0ҰɌ1R.Gii >X:SƍG4UYW*yB:t(AXAHĐ0%#FiɁ'FIø1ETHR$ 2Z$S-ѓ[s}"XpZQwKH$Rըjt'Ł#vqD"iњʶRbi cjV4F[ absfGHm>t!O{>2*)+Pꊠ$ ML_D $Owk;q`~d; 'C6+<)=x*A[6eS 2&dq#;/?!N lZL.01i.Mdʖ?z*"q&f<]N͐"mOv O (Q9ꂰL i˅OΩ縻.QHU:cK/,/R`FDHGY7f-v B!Blj Y%Dt0nnZLe!؏0DQuUcG)Ra@& ^j0g Fi5Ȭ1-QYȸ,;tre@m)XS#0a̚!, BjIDcL!Kp.RU-h;v*lFiKӕ6gBiE;V>%1 RUUEF=n:R-Ԍi+֖l 2uK70Q]|H3Ye,_eR.M!U 躃#RIi0֐c`mQMS.{ٓ#KARDd"EsxӑRa_Z2Q,FKLD¹처X$q nvnMNljdYJYB,eGbDf;L9DoBZM9<70 HjP2α?`UVckhd0a GTJ`jLkpӈ.ٓrt? VȺ)4XK8I2Zq@}2gJԦ*ǧ..p3FUbrScJ)ʒsNҒXUUrܦ\r 3$xp@ EIhTx!OyIgU'X."ldܒ."zDƀ#U]LLOX]L^2]\ӄPJ25X tKSԒ Mh(MQH)4nL=;|D~!:[₠) #΃adRHQ]}". ѤaFD" @טKԦY݌R=H]DD٦ɻRDS7hĘ 批ߡOd^ OC@_hFs(62+r~0"e ㄱuZZBՈV40c+AxzHH[|1ʔ,8gTU3{Ϛ@^UK!LĐL)0)3cn3Zc L4`2Ui4)b % YF#v3 ̮`c=v͇oJtq y$XRr1bP# LX n){TFcL&*R\Hm6[԰1[ .HBB?- TנFKS6x%0E˶BNfQB#,29Ivu%Ì@L %S% /Md]BDEVJEVE+J[lGmkB() CΑ<V\([$ U<X]>Cʒ=H] H物 ef'buoψa$P5/<: IKȎ( GjI9.UJL&TvlȴQ]SaU649ݲ|'QdvFwP,!zp=E}䌔 4LH yFq󀱖y8su~bt2( ,$F> .LDKYY0MYHܼe}@0JU(id"!e9n 5ZKzzߢ; @0+vW?F0 ;ŸcdH3m]!M3>K/.w7{j[36Þ8k~BԖx$?lgW\~v}ABKEJZ,R<_xgg<~xpIGa33-&"--oŒRjF6\\c#O^&bq,12z՜]_hV+l$ݢ~W,VEy|, ,q(1H] DI.+X+hMۏ,n3Lɸ)r6'~x7?sY}:`E'ӑ9O]/@y3'on(bs'/yz#7~۷4PKr18|?ewؐaU􇉋Us2=/_e|?3Sr~բ%5ϸqgq}֚ǻ'VgՂj=_g_ ~!Ҟ=+&` >ѕR1 Z>b(񘠪Ä(#id )x)#ȧN`KDpoGUX۔ye>P#澖fֳoÙ##2*k-AV !<$$L,vA B uͽ}oeUVfVDyߴFusߵy*M#7@z#e"Y[L1v4XT:NXgݞ8A0t )"DZùB3vhE`"Kxtt;Xm ˌ-i~źu=5[ɴP tg M#1'dۡ5fC TV8! !F()(WqmmbDjA)`tKi*O('z$3 d\->z䔑!eVF[7R\C7wXXײg,#CBeYy=b$٪4-No?OHYi7=GZ%o:JhNKty# a'Nh8JL0/ #*lu Y@WeU2?`gZ2w;kt}SfrtON5j^&հppZs-OgUD#p? jU]Z,?}fՆOox/ '~`^'z9L,7W4sL4 w<~GHE|y|a?{?(vm~z$\^͆u O3)dRƙEf^fWl"%%!->u/_B%!LwEfd\ǟ7辧4zFE(&߾ddm(~"l :}{NKlv(J [q֡%:OAxX@'[|. J\ZgX9Mj@ TӂO(ei+biKJWB.c~AVI\lj궊f{KNi'uӣQ9BCF7=># K7—5A٠}*eZ[3\{fEQ"R$#r;UYhB@P{RK'd* zP6{ɪ56R5onz/(#1D L$J BtCJKu֪N_RUb"(Bۆ8\ 8TTuA*?Pqˈ 4խ3Vk7Bn1Tr<2c56Q̹9{C- cHPjk-iO hK$~Y.n0L'ZQJBAצA)M~AGi~^1"*G-Ιu^px=Zˇ9ҹ9es:39fj~_w\va!ᑮҷחgJ,< y=MˏtOW'֧S%H5끦wdȻ;:C#mCQM|:s'_%JkMcwwЅ/?~ mm3eϷ~$g&3D)̷oCJwx\=Nu_saa1e>~+^'2\/6JR* q^iJJcJn)Zcu;X79R>pI# Re~2FV#fw?iZL"F<)@Z\q&- *'JE ۆeo-v)Y)1ΑS vO!C6 T dضAR+(3$L.S/i2#o|@x4\4}}sj|̱.AEWJ̛=qY/蒉E#vM&Ccc(RcY0gi"mH as%AFIg|m{۠RffkzP i+B74u/2ȅ 7^;t;0OvKRrO#~ĒںɥFmM'H"!XKaBD車<Â2A V\( 'eA=4h](¸qe Qz~mCJORG+K_$N:OBׅbl7'7c;:!\ a42~#xDXDžn#rajBJK7[ @ PJ'k6Gn ȢԲ0H8P>!Hh/~ jͤі)>,Zq,ӈPDĿ<.o5ל@5/ Pm9juPVVN(E]\VᲢmm=,Jv;͆Z -$rؐC6-:W!o,H2Ə 9*r-Erͦ.Kv(gaΠ7Ogxhgi6[rɬ~e{1`Ci8??-_ֈ!y:^\N'жϫ0LX+ѓ`TfzyDmqP@&aw[om{:hqY֕KDϧ3~4S= O躎W(gx|}A.g1PZ44Bst93:s~?hn/h Luqf#_<_#WR>p}y|mOo}ra:0}y]yOg kl 7{R\;~|d1W@&H`TEx&W{uE+YpÕj0 zq\?<@wM,%-=0 9йZF)yw'RFg}󑋛 y#nB3LG^ _s%w/?suuEh<u5/ixx|+ďYNF*|'RL Y>q8Ja  le1TVJHd)PƢ`;LۑH+ LOhbHu$QKqa]ZlQU%A5-aCd-xxL %5Ȅ e!&UMcRYa6E\o J 9?=(h`t-V5`~Ex0 /` Jݞ?tC-P$a+DnHsyiZ|ɬ!qyu:oZAJ+vU,~^%LJ 2UM,=G51z'E9O"Cj yif z<<"di ί/H I$(\I9q^FZg 'H5{5^RAkUv@Xt:!F2/6.D,b_NBDjYNk-GkdHIDYWOhj5G궐+S"jXjrIdi)Crd-2@J)E'lMюu>id92"&/DT=ҏ)2M(3w( bGfx6\?33nb~AI +*(!Fna$BɱОzAJTQ6[ڦsBE.cQC&<]9P_Έ\#(%vļVGO @-s>>`'tEQD,/ll`}qM P%J:Qm/3jPJIȔ˄U4,DRDe wb{RL_~H\RJ*#tp+QABո*me&>}mYbzD3RTa'~ :8ߜ˿J$VZbZP:KC.+kTJ3ضJhP?D B6H :E)D4c"G\<0BTu82cEzWBXe% ݶ840>b 4@jGN6i(E|:c6儤ܙ#dpC?XPV4iP!@ǜn '-FH+w۞_iF }s8)fvlڞůq1ieHBw }sb^fzҼ72"!+k"Sq \]cMu]xَနaqBbauO#%ƧW6J<1$Zq _ Narpt0q/ݰXm?2hCKŚ"y& >B#O/ C??yy:Gh$OBmA)i^W{1w={j"&޿~??D\vܼ'v ŷ|y|d욁-~wGT x4ʶ yF(MzZWB k16:r HZ\9%-v+L]C)P mj:|`Z刏#R=ց6aHm+4^_txuA0Gafca]@T,'S! (՞Weu!3$ Xi4mݢIJL(0=YZD {db=Zjw',󁡵!e|P"V_o-@IⲢL݂ŜЪtVᦔ̛N@\V8b_)~%H3l9O!):vLӠLCHu Xׂ8%QJV(rP11AԸ^!O'f?" %FtJʤ"1Fa%HP>]"a a"imSbye ).3}S QbBbJ}\#~2D'dbPmRhӡiIij~3=mv̧?#>yL?pcӏ$+ 9?$T{??cʁjjJg/'sizB|53_2=9%& a—#vI g9p:o>6?}vg0l;Ra-+k Ɏߢ/v~Y&/}?pwsyhѸ=g6%*_JSBBJE2Wx I@# <<>7Čjdr")A=B+Lb6 g~:1)*SuЋB`ێ|V5֤X*k M_KTgc݄nZrFb樒]R_DA2S d-eA[bQZ8DAYMT:k(~fx5~{PĐPJCFɊT]NO(עȌ(8{3`ArEwGF:yia>*Fb.B"zG\#IK@Hn{TDet hdLW5GiI1mrv PR$0$ʶĘ1ʢ#15axŸBou.-7;|],Q`I oH)E*'!&a RvNP1VkJJqEQriW,.! ]ʅb\G*Dq)R\;,RJŹB]zh1W*T-h'jHݖZ=ɕ,' shTGB>}RMCR0JDJż ~hT9$2+ R$b%W )-֘Ju3-Z|nv5F>3yǏRD3mլ9Oơu5$  1Ĉ*EF'ͺYچ21-)4QA]iCB %3?bb},SqݭYR͉_ŗϟ1gȅ(`:uM,ի 2\H~|~_-cUǟ8DQ8 X$XbDʜq83Ԋi Gnwf6$gǁiGϟlVd#9~j}"mEioogoُlZLa2'Xxۯ/e iŻw< Y(龪6 ૛e副~ ?~HyaWhO'~_0\ӧzkx@R9͎_WLi?~B]j DA0P"QHLk5}ҐmCNhS4!L@XG F4oZ/Z&'-b9Zr,ur* ~"(ɅJ8Pr*EJgHGᮒ|D~Il۳(&5mnc)2CTk(Ib!H6H!Lm]R%n)tlreHӯE!c'Ftd" 9j6Z6?#r$ PlZIm[L#Œm^<Ҹ5Cm %FʑP0$y9#B")c]Ga2>_R/V@ȉvEJWZ~-R*|)ѓ@J"S8cZC ^j`WT]n狌pA,#aBltgqHlrNuQrÀoN(ߡFXK}|5#%*lפ KDj.F!F(p+L"L#$\5$8ALF_\-PhVz@ӨD !2yHF':K.B)ą%KOÙճgdK!X72P$Qm15)4uS) !/e>SӬX@I TA +*w!bYU!Z)+#2gdcnUBi9x\ۣq0bEbrnYhbA*IɊ$zEbc|tmiʴVe03 z3(*} Q0h-*$+O2%$+`AH D>LeM5(s[ #EUK" r ?ѭBB"!ˌ6 !/B 1#N3p&4 OTo! "x bݣmG'h >gifD~ӣ MYS&>Z4P80=RWR=(X>JAK4M6B;)""5RJR 4HM׮XdD9Rd!GE!k/NmI2Q\;dƵ 1'00X>U߄kH*&."?ՎYiXOvGB\!$/'q_Ȼ[?, K |`9 mYD}Xo֨R5LRXgQdB Ē#2ږ0˄Aql) xsN ~pxYuY?fշhYgϼ~_xh\WTk8^X?fw}CM%!_+v×\_xå;r810"nn'Lif^&O"+HaU~M"̋՚@ӭh7+`6,ӄ+WhQl z}˪N~[Tgnޑt? 2eib)0=-ϞM3˅:f|ݽe{TRPB֢U837(iӑ29e)C4p=%I&PMIDz| N#Ն,u-%E.ף-0Ǯ:Ng8!ztt牀2a9CPB" kW $Y-֢tXQd*:2u )r[($I:v]l,caN\2ne"SD@ eF0Gи L Y*Lӱ iвCzeB (XkPzb۠&&irFkW Po ,u Bv !GTJ,]sp'JBND)Цp1bM24Q)idm;ګK !gu$6#l)Jc'_'F("R񄠐'_Qֲ#CEFJHAz^]a@5*[=$эFB#c!/#DB$Fi,Ks eQ;|4!kT@<ɣ GH U=t/wpca4M +͆ 5ۑʂgejE.[J(q@HhBH(m%ӮPHiAIJ(ER) n(iD,>`% %hM%2:- Lp^P Y8dNBa}<8*kr9<'HΊDg֫9!'aDAZo13Mni8q{uMΕ~Yoq?OÉi] >!Bċm!7]KEqMjxK5?|EGX"K5gs;n?cյ׿!NÙժ_ox8̗#ǻ{yb)Ӱg#ȑ% 4m8j=_"nM+>|C}/_x[L;V[—GӞ?'>kRHX;N?ī_gS:S慫5Q ir-<-?|iZR~GZq onqL3kiFk io1o1ytHW?L{r`l-Ig|w?/y^XV<grWoˉ/ħl7;"jx?ҿ{7P2>Z;2tZGZǏ$dU#a@ofu"*vÒ x~3~u`J;t J)#HHD{Na*%r5^! s̴ FOsE*v=*24+Jikn8,_JlnBBV!%B3RRB> kB ̄,(ZLg#R8[/By,Jp:0fs0#Y(S|^Wb#{~]saKPִJqkG 'j= J}X780dPZ.$-V<OPKrՒC3晸xkqΡbx b~BgA-ZyFDZ̋ U{tS߯Z]S3EKYy$ H-)B` H!P-EjEօӭ: I(B" %! qAL^m-gTCJXRBKͲTԝv->ETDja("eRB Mk>`f:|9~J@:H1k/T!Ifl%….y5(}l!eOTat}Z[G#V ~XulWĥ0]G:/~ƭL˙fBՍ3i+&vJ3"JDRȜOkҶә0iHaA -9fJ)Emz PZ ]TPxB=93= QMCG$-L .#_c!a9_\Έ\11Tk\-R/~@W~Dd]7Y/[-JJPG709=6.u(",R rҾ,uuVRAG:C١ێl;@ԭgIe5)Ŋͩ 8M8~ pM뙶F~>L3|~zJٺfug9?,l߾4IZr8x~_>!3BkN4a &N'J209Ɇgئα鸻7qz:kQ<|̉]g^u[^~+iY p)ba%<ը/L ۯyFwnd:EbP{?"%/ȬP}fs> "#BǏ4 p>6=ab1z~k߳{q~y~q$_#1I\)|˟ͷp8٭7 rٽy2>=8bn;@Wo`i_/ 7趢8VH%OTMPi`RfiҢV+,ّiZqGnjGYs,G${R# r՟0**Ԫ=}Qk1^]!YDΝ,á܄D\6V)TWqa8En (\|t=L -!dض'Z𵮭iE{r1Ն4<`v,1;` %e*P.LӐF Q#D!3YdjEHV9N6L*mRsV׳@R;\jȇ#5Rk$H-BRg[C["2&r UY JDj}[\C,T)nCeD:묫)@REȊPD!3vE:ϕrM2ą|F%P;ʠ02"$F*jP]K%$>ɊJ%FuW oI"Suf2( H mҸ@Y9h RT U'(%WqGvM_IwV(aj×'X%v ~DA-gkڶOٷ_i:83iWG, ͙߼0Ϝ><_oiv=#_<{qO91횧_X{TېT ]<,\]?í4 ?%rٱ]y/W9luܧ[w|y/^ +w{0'޼}ԒOO|? _ܒd>РPFspϛ[NG͚x8c;rbُu5ي˗_eO/b'"h7]e?ݻ8~Mw?}o%63Ś8(_ 0'_9b?oV-ϿW}~KѬ[ÁWow {P?Hx`}q!2|z9zVmzӗG\Q{wzTB+n3 \;3ڵ`%F4e B(E& ~>k#%خEHdE$aWImB%YtPHQϩ _LJM]. O78?~`yl{-xDgoA+tcY}64Z2?"+ 45| B١Ed>0X#!$\3? `Z5E 1N30Rda? <|'s-ҖfţY7-b:&lkK}`-O,5}a8Ѯ} ^3?cWdf>SEA ?' $Q @4Ta ĔYbx}ERpm]mIqhwϐp#%5u5KM4r'Ո=`B+j!$PsjC:):mPcpBIHԘڟ|BP,n:0 !NZ #:1G#Ŕa7dU1<"e%7+Tݼ݀_8?ŊI֋PH[m1yr 4 a[K_u+ u:h=**uPJ& BI2 MSCJÒvr }GZ(e\o6Ot#R^Z Vkaĭ{C*L9U14&]$utD-vˏKB0 tMV!-i:Эvd]?'/ykWe<p72V\b+E*nԤ\^Eԃ2- [F2.qAXjs"UrY8D(n/f5"WJuؠk;R$Z[[te+[HIVZV :z4/ЍpU$  \S_Ln8z1+-iRSq-,6u(,a۴BhPպ(iP]Haf<.ӊEH uH%I`l0~cdtkbΔ:lKgT(k9ݶi(0*~M31LCRfsh)0B'u m"1Z#̡JPD ed*"5PJj9jԮ] RaADdtLFA 2.U)a8mwHYcd)%i<ՁbHS#jvE4(>оxA\"4`r!L'RVq8>iqѶ-yYX_ɱn]8ovL>r}{g\5 i5i(g<}4QZ?p#41iHx<}a no1sx:y-/6cfׯ8>}~^1×x>7/VƏ{Պc8iۖaDw=w_y8NˑqD:G?H 3pÞYj7*wWĜya3횦8/<{~3~߰nYUq%kn_O]vç;n߼!K>zyt@? T\"΂%YmoUñ9дª*%)y6/HˑgjߢmHsz˹_&me`8d Ӷ )b=lzQ2͆\1̔01H!aۺbm;~t&_nK#lX#@uij0N= Q_zCd|DHޢ! Rq!3%WBP8 4]Oxz-~蚖T ƕR[h+3Hp3y=Q)Rjs4Q"BKiJHBT**Jib\?'`FD ̜ jTVArgIc5~/,~R?C3'jȈpiz )#á(cDJR8[{%;’(#EK2(Gw[3PR05V$>2# O^k)"jI1m5&OnG3R8`-{d^@i(X丠yk qdd[]]k BAe5*_).1+UK 񨂈e4UA @8/ ?4W}$. wR Jed۬~4~:@6Ъv‚S܊**!QF(t簍%m%cmuMM.A|:mjD:·j? :tҚ}, \*\~tA:xQ+ X{e uH Bf)&:4rnM D T=YHĆf򞫗H(1r{8߼")0mk3tf}k*(0jD%HpY%c3IK{9n9cU[[{/?US;Q fjqwZj6FaY1lN'Hdkko .1جVL)0nn:pj$Kɠ4TS+ws ؖxvl=/_pzrڞYLgӁ/~[r̜Ra_}-n7?l^wwO}jXa,x//#eq{wi'Ւn??{Zr8\Xx&guNK?5-yљi7RBQA^p)JvX+0.* FW?1ӯp=mt=U9cu-4tH4JKJ4GxF6dQarr3, Ӊ0<;ʜW+*>S 8m1] nDİB#1yn)qBiKĠ6kLȓޮXr m7W"ޑ3`Osĥ$ 6R"4V"*ݩDʩESEHm@ @5-ya)B]sA5~LPSr@HAt:$t +F6Xr_V1 pD+]efՀŒ6 n@^Fۺ4y"GЍUt$ =)`W |ʈ`v\95XӞOt2$JQd5%18EK<5FѶ *fEzIy,dLcta)]= T7Ct1jz&er‡ t87]d FJ`4#@ J-ra&Q3GUQ `,O~Xs!Qb8fәa@9&$jto".Viki(%FOwhQt4TbHHEö};0OfXVLxخG4Y#J1ԍT%rT\h;P΋x{6 k, D#clz^"rk>PuX +VΟkZ^ߠ%WaO̾<;"B j^z[%Ţ>!#mM5XUq1HhλGDNO]/ilVM!VD_ P2Ah$CPsI3M3ݢnX۠+O,u0jaѫ5Rl7;L?cFk9cBQ&>=}1YSeimL>]!ap qni.wd) JÎ[ۯx< r2ܶLjr 3'wKӉonsjjq);KzH,y):n69<?#JaM+#Q'ƉbLtf:jfyFf"H>?o^ JCFԒr ,4V3yɔ\WZiB\mk&3ETU h rLQ JH,i8?m(3 F$T!"H!PfсJh@e5aO'Rr˦GYC*Q1QJ"LyMfK'za0U=ϮQue}OJkRtkFbH]"u+[Bp0!3HL)Nۮ |E(I8(kpvyd/5'zLe1 nICHTwҊt~Q5x>SrḴG*ղ $0X%85**SiYQH ƺI01cVH~FOGt6(-rJh2jt+>TGIzNJPd-:-:d01ڡ`LS{7HEbY=3,)WX/ 22̧c%ÁRj\-mQ\'#ρOZt"R1)c,X mtf\(r"D˯ %F @!("F[D)c}5ȈJ!ҘGTTXuV!)ER\B MYJJ):6L{0SԸ9\2>|G#IY/)HkEcDIz)-%R"Ka:&O3My"VR$Y߾d:穖w"+%Y+d(mȴMOFBDɺJLӴ*6%?c ?D-,5$(?g~5LOOySеkJhQ n{OΙo|P Jb<`tF65a@iqH1s0d"I|xFgX7Zܹ \ 4{mkrڐ[;`~r;b7߱;],I~PÖׯ^٬m5z& o#x6D\L\͢^0J*U-_|-?}=n}NՋTNՑu\Njڶ#nOlkv~7 Y-t7y󳷜g5|__R-?ruurq[ %{_=cD"C=>OxYhW BAT6i f 0{8 WW,)Ii5yok1X׎ZmD 0' 4B4 hDGv#!JTGZnR@+uN #JBKRt)c54JЙ$ =MvER)?AOȘʒRTU>LQ!E֒'3HgJ*-M_#ZPrFy|s%Kjnڞh?D|%lZ]s#hIm5 hݒpx"3Ҷ$/1?HixO -9$އ8WԨTidnLiEX!]+9à^rP !2d>BJ(Эk;G[P`'6P6TGDh/HN%QR.ƴG 5n9oPz- Q9ھj0 p_i:05F'f$&J$JJbpZPeỉkhN9>~k~Яd~J[` kM6/ %)5 .k(v/\LRcDy>/H "DbRPJ, R+%-BB) Z(3!bԪzmOkri:A"Hi>`D +%~k '$G,FwX WDjzșw?z0LƚJ{,l4iDXRH^eL'L z^7 ){!U"R)(z`XlPE^TAjM\ T”@ s"hTL vDP;}BuuF BkҢDEEM[,#@AD(IXr>Oώ=(`"J .C 68;4L74Rdrռza[;pX-<'l;W @ww9}D5U຾Zw?X-x7<0͜#/xIȎg}*ó/^qoWՒ7ojo K ,y8yѽA4w^cF<:X|^0ώxBkWllKъGrbDyI5!'㉛/||>~ӖI_~O$hۖT/ ?5Rx:SzFHdh5,n[on(L h:24SL6RĘՒI #Rjunu{$ mhmO 'NqX(dLV;ĊS%W,i&fmiW8{_PD jIdt< -˞2{4ӬTDi|")A'讧HRfNJ5.zd)4Ґr Oeoٓs´̛b3ᑶ[ ZՎK=xi2Oɺz7#K1 _Fv7TQӉ9vAd-@Vr:Jak3Q h k jIa%9DJVdsVʊs45QL$ԺXv,AdDӓ JY\RfW F|,+M%baL S 9gd;ԋZOc Qێ,kr+o!ҿeجFLj8%` ??{,^x__JDk}~XCY/9Ocγ^' (ӑ4a ݵ|z7/_3O1Êx5bٳ`_^1f{;E/s>>( X{]J6Ӂ^[^xO8?l豤Í3?/xO?ހKF6%5!p.,珿lۢL! .PCdS]JIRz@eʻJ] @P]9@GG t!v,*܍Z;nMR42Gt7@pO\<#g4XJQRAR(nVb9 u-b4lGe,"hہ26LL{k~`v!B2 p@/$?WzS4M=ȧ\ }GIѶLGrI_Ղe7;C&c-_#]GG7\UX0B#K&,(U \2㙦QRb3vux:Үuv+k>'a__7X'ϞnDQLkᏁp)*K%!64Àd8"De& !TQEMA*?;е=J )ɇmIIt-!YZ4R qP?(mr]E #%F\1ned[7Qa)!܌BAj]iKa՘Fr+Զi1>1S+\y/Raѷ]]Zbth4aJ+tB}1FZ^YWXc]fl)*Eb DY7dS\3 x"H3M;l*՘w(O-'wm+.U mEFΑ0!;f_*/Z̷?iL^^&^rBB5|E /~$NJNB( DTRupQ2!eA"DtD]P2:DP +iQAHL+v\JҢMj怵}V@DRi{Bɺ>0ZĔJVU7$2@NphrqjC۴Ɛ|Bmxzі !%>̵(M&' ABexR G~Y}jOii7R`>i'~S;GOH([Y@cJ d)J PiPR3>>1ܼ D>'942\w7_ 1֋B aDD0 HBXY;һSD&# Y1 ]ӐsXN=/hW/n[u%ɺ9:PT?<|mİ>Waqd"A$dn#=\@hTQ9\_Pi6]zbOQ$B``:\ \!cu(n m4ǻ#hAtզHa;)>|˜*2vtRy)#8;L7^{aK^p|qo/^wh a\h_/_pڍgѮH#cu0T)տ-HBBdX? #5g^eYP0i;:_@8Gy/[a=_~7_?g3/X Zy,o]ǻw?[L#pQbz|FwT4;Trr 1e<MY$ij .Y91[DgXɣ#@WfAtt"@Jb}Z-;YBpʁ*qrz"/޼fe9ǑdݢE*~bXŃn{`Fl6?\XLL4v wc͗_"ƝN1|#egx "%m nw6-fySM9|1mHi4m$cMXb8̒ |ĴK)F ?׌'.3D~0O'4$c$gŒ,9g"QY[XJ< -y쟃<"]i(RUx&T-j:KYm- ]D]Jit$vlS4a;sY hhUw*4v3f(FӞ4;VSE=|==! A19T0*|4xBjCOb6I!B:̧-f3mnv#jlH;Y,wc5wY(%(J Ekᧉn|۽&ETC#Ԝz )S#BLRc鉥,0GS--k! 5Vt Nr"({%'JK!!GL`DžMwAׁKiRDA6BDi%1&He y< -$~=|>?P"O]_s| %;8́w?xrųn oޮpsMm1bK{^.rBF׷kNw;ܾm7c_p:Y/;޿o_~O Xׯy#|cy4\}pwtdD52aLp ٶFs~ܱ<۷ېN#{) MKNn 94=:oqY}w{VWWO؛5[?7ЮOuf4̧J~H/nnLP١Mn TWEN搳^Dlyqeu %^n9s5-Z7ӈ(BqcR8EYRuc"6+VkƧ"]c%Č^J9ixEk oPA_aDmicѭ6:a#Aq47CB8jgUV6_1cv[?vq֔}A.yŸJ K!qGqkyѮV&k!!Vf{)LUU0H$sfY1fOޑC (B"J)Y"%(OhQϞis vy8@1{rcO''KΌqhSH55ovW~bq} Y0J9>0 $(!G:2էªGGm'(YT_8ͤRc:buU (s)ɹ> s}$vcѦ!#%TN錈} Y;+kd"Oi$KVUHqL!TX$Ou{|hWR;HխK&i:TE!9 "D3)Z`W}qj0UI1D7)o?1S-5LJJG9К81h;R ' FYDQ*eR`eѶ#S} %uU/qj=~)c .hgZTacXF!2hƻ;li8۴T0h4 YWs 3j}6a!LdJ3SqN3H,PC@5 W[ @ZaPPAθ催%nA(|_ Z[2:wXb8g#{k+tdJ"C(%E-k!:h\THU:5eD~#~z}TB+$?cAB chI[\kOKԤ?F?HΊ%,*!MDH3"FBTed*ZG))dB(qnRk46X-@r!匿{_ԋ~G㮢gB3BHr PJ|| EObA&q]MUŜL31NR!iJWBk-y0-nϜpebMg$p+5( 6u5gP"4V&L^^?Ŕi-z[(%RL nqA0tCɵ,Y1(Ñf8ܽj[h#{|5ħpuuAߏV+-:鿀i@v-F؀ՠ`Ic5c4k1ѣ!HCՑ{lE'GbUe\nI ՀYRɓLn˲m P1{֠AeQ#"o8xKGl45 ǗRJ!!-.tnmL͖iH)1Od:P̾gـ2=Fh0!zrJA+λdc,i83,IR"7n0z{MŖ?aBkG)#sL3S6i\3Wt 6*v@.Y\.ؽ ! (w^<{ʷ_º߽ͪҮxt#>Kn~@HUw)<ӏsE{\\qϴsRl0gVWyxx89b\{.3 J^=Ŕ*)|񫯹b>3|)|ٯF@.j~PO%Ăl[hV+Qb[ginCc?[Xa튦i6uri54ХDΟ^WaZ)>5K?Ƒf'ag~a<ā8i4--%ئ!(I N:p0ґ$ZScb8h/nP"ey8S$(9I R"D(kKZq,K𢠬"я1(mFV ZE̔<y&uME+=.XD?]=QXUD`b,1(%43(mƪRht™%ui22dnꦀ{2-갨цvuMB`Tv `JG16-}^H`7rab #Uku+|Y7mm/*I)bl 51ZU!ږxէsϜk(4}:s"Epβp9󀿫2H1st1Ctw~pt:d$ zϞ_s}+sO\=ճ+xǿA~9I̾?|]".<3z#<J#p77 ~dG\k#Ϟ^󰻧m[-%_}9?@f7kTDXf=U3<ɰQM*9e,1~O#WOp>ɳX<\c3|?iQo~qϬKVW[TtP\Pgr6 ><EG=h0T2˯J&hWqUY04/">f4f1&.Zb;t2zE V.V8T] 3|z_%{[eX>ypx% OUK?H:N2c6l2dKgW ^\=̱P?D膦*}Bnɤ@;~w'=~:c\[15a!ViDUcX}фI2m2ȁ vj rA # OvAd<)] H3Fk? yȺeJHuHmE0' iG[reG=bIҭyĘ3fA)NhcѺf+})AmZr5 mh%FWan1GdalKIScF] 'ic-#1R璉墩ěǒ8T#Ś5X#qFU[n Ih)0B׮CQ,7Ĺq%RZU-մVQWIW몕ZBe[btvbƢK.p (#IIRm>J*!EjN"K.<׫])qCTOQqvkYaoegd t)Gv@)|ݲQ(% 3n5$̤ !W;ӭ(a&4 :t 5qA~B:"+,)MVi%#@ffrQf dR51U7@q Jp'kPHrA&8}YCI9-WdQi)\C~:V9DuLD80y_!B"4:BcTJE%?}-7n RpL j`zᄟFtcLf Di:(VBA!,[HaDZb&zg>vsAxGDޣ%~x} kխj8 RZGI LF\˘#a-Hy&xT!BDbϠ%ցLqħU8#̜,~`Qr"Y %Պ> $t)9/52'ҴH(H|,Z'p)y4QhQS&NJn*|\`;ԢMNJEiqƠ)0O=i:ѬZ0I F4MOGU:;gjK{p5>2jg4P+rVJ&LQc-qE3M2ys E]lx8<}r׊<⌡Ywt"W̱p#g,mɇwNe?]^~;bX.-F7gev C}zc{J.ܿwwLÙ|HӇ[Oa yiEm-C!{8KN3 O<|87/}^|}/^6?nsMl/onyBdb O3~5t|׬ W7?rss7|G͊Wܼ|J#zray䆟n?p' ,WKǁnfPgU1LV;"`\qz-_/ VUAL{\]\|bp%#k Þ`g\QR?~0pqd%yx/^6KwG?Rbz,IJYtӁc5@fAYDd?8P&.AL@] X'R!F6E1ǁh(kLkNPFaۖ0U ? =Gi@jA?yKbHcp:'b8?H4laMC84AB I$dE BhfS`<ܣ1\Nu Y!́=Our<~Zpf}s],>RPIXH^v4͒cȀ2g:Q/[bӑ * $2Ie1$p "XISԹbq[Z$?}]uX;U1b./>Z1ᤡG2L \ksDń+iD!$<jb#"ϔ< =.69#ER!zs`߿\A *%4YnIw$_ȝ~˻wog-˫-^%+8Ό3xqMul~x_So鏑O/9ܝx%n-7/o%rmW87_p:| s|ݯdlh?/?ch,b!q#N|`ww\0%zw`%q#e |7|Gr8y(Fxor8yVߡW绿[Y.XnW|o%|LOğ0`7/6-wxndzO)r<ğN,.ܽ^ҭ}H!3:/j@Z5btO-6Ĕ@i`L܈Vv"xBP s Yѣ^d21 UB7C5x]G<]Œ$qB)\Z8 n+*5?Q€}eYWRG'фP%ᚆZty>`z'ba)%DIKRGR+44XKx$YDfU*YL5Q^)p&gj%+/80HTugUhRHݒ(5QV+?"bK+sW1[bVaD38LV1ӀBHm(F1"*>F2D2gZT4ES_·Hq8!J¶ TEg8DJPZ8dFyaBvkRhgPi<1-~k.su>hYY< gQY$Q(q0gkFۖ*AHH<}1yOqbx8nT&N=Hb4FuhjQTHZئeJF~t\%@E,qu-a H %yb( PBV10wh#8<|v]c"2<|Z*?ݳ^b5GpBpvsQRæ=P;(JC S 9B8%1׳v#VgT궻Yb4|]LIe5~wOt?%i!Fdִ䩐ruHiMR/Mpj[Π]@"GJ FxO3]%E-QZE((kY+d(pJ2v,lcP\1+Y UP$E[8ڮChM谶7 ]`@ˆGV HdadBQ!jF4Z"FFT* C]];dj0"{ŢNEkZժ0F*D DDrqZPZ@v-jG =rI&0R0 s%̅T{L6a3,1H2&gbnIg\"]Vs}Nu"rՐ^YYzls|ړB&0%MCPd?Pe8lkЏd)g7x)%L;gC u}}Ad,. ^:D7kTݏnw~Ӟafb_߰tD7ڵc;1f-Y83+3>̼O[Ul6w.$4>r,HiBYx)JoGB0'Obɏ?ܡ%n;DVX!G;=Rl/\?q ?%d5H$#?}c<3'q$ݎtKؓ #RqW?Pew#vi8ӧ̮0~vgȮUq̼yo ?Fw=m4ܐLS߼AWd?~ J;?е ߽ga0q:r.;y=`0ML#M8?|$RRLӑ9̤1X(|<֒&#K~ͧhbb$R1!П ȿL-AfU5ڐb?h{ӶdQZ9$tc@ ˶LGeG)#Xm@+, "%iBkA֜wжCB̅9(g9>"]%mX%"PbFT}))ղըPrEƞ|D%vnE)ʂQ2NX(eue{(ض#S*vk2")ǩb!1*UTi=Y@JHגKA[Qj} 8Sq '!]# {T-)PRqrIyBEB}$!SJң![! %7sKӴտۧ8YLJ4UB5@+3$0FB ` L *+3"Ήcoۻ]-3ew<}]V/Rq%Ky 8T]ɘqMO *+ FhL”^" V<6eY$$˗ӸgCQ$H"5L!w E d('o;5@ \ΌÀg2@%X] 8Mk8~DH CkS%c}fR*j@'f E? rQu^hLǺ hztUdFSv]uֺxY/JX2 H [Hs:*KX/(k) 0J6P~ B.з0@.$iqHtoT0[!JV/iPOy`WJ#%$ Ҳ'k[H2}D*PrB XSBf*UΰJ[. c5{lAZb\=ε ve() KBarO#aĢF Lg8 1ZQcn~%<}CւJճ(!9=џ846AzCV /+vqxa?s_+o8g` ;pQw}m [[rdY-(Y zMʫ3|it . 342.+ׇn? 1G|x#I/՟ u^pDaHzx8=>cA-_~8=IQϏ? S#;pPČ>bAL|5D(>TtiKNg5gb|lº#ABHCXB'i0R$# 8A]4Z3Wcy_i`1[sAL3!KDW{D#1Ҳ`Tjж>uHmۢJ"Zױ,#Rk}B u i-8ո TG*V吮!"!(a1]W^r9LQ<:H*K!B֒(8cư\n1i(Jd$Eo%P{ՁDa^F:# 3rm1=y%J)hE\&rXѺ*53M2upG Ta4BY (uĸ I,ӌi% H\s֡{h9y ~ @jWʲu"Dv D69Ш1`$ɚ)dC-t&Rn8*6O)tat dZJ!g5qYqMWl2ae&"E<ŵbPLM>Qv#dRNd"% |pD1 )N#+mYSi6Qa=as{8>"S`+mhmĖ 'bXP(mmPJڣNjeHFҊ5f!@B lO"ާZc /RBsBJz\#)d`LjS/4}[{LGX逸vEV-DvO#jөI#YYe@WYF;6iZ(yݐ"cX?覩ѦA6=KNd]qtB ʂzҲcD^C|4 HX 8_MG.5욎#ljTKLaP˚͆Vrj7L_WOV0loH%ӄO kJƒCY=J@B US!%OJ!a<ϙuչҶ0bx|t=߰.+VYRZk49%]Gf%eMDAZ[cDrTcB Շ}Hvb"+Y!~}5xJ&e fM380Ap-BTZb9,ԡYR8b m(kN y蟿'O\Bnb]q>=2M#JNCbBa9/H^J\9/8EZKFˑ #:ߣ~>QI5U>+TXuojto& [ N,G(ez -BkdciZAWZ)C讞$̛+I )oC!uEJT yVIQ22-FBk*dyJ]K@ӵ.P-kI'w~D35іP}*2du4Gv a‚ȭELY#`Yf4mNZi%aM41R(%\CuHYWnf.nXSl)$RJǴ/$$+-\#YB!%I, )O5F nZ1.B6ԭuPȾDЂ"T% ARz@]S#J`_NKv_0W7.$FkZD\`#Ǻ( )* L;C HmЍkm n1C$O𱢤c[,PZ>gh@+,DFjj|(HT%SJ?ybm[H4Rd檂el-G6aGFH<]xvs2ixvse<Mx[6w _>;>?KRͦc>^8oNF#i4>̏3yqbfd|uib_$!hR!lI!7-qXxW|u xntnMgN_lmw@pCׇ>^NL/z{EF>~Qx3nωk-z.¸ i˙P XWD0o~Kgz.O㴰/޼ffx9w~ 5?-ƫ7-X~ǏC ğ x{GwuE'e+n>Sք2g mֵ>©rM8 _% Dee~g|_< 4߲m@8g-s<͋NK=n_V>>|!LS_s(i)Z BgJ#i[O݌r 儢fi$Z\QRXH Kb̺,X%I<=؋i(J!b&2-a`6;rʄ5Xtnkʵw_Lٱ3BR u%h*sR6ΆlƱ>|b~B1&mY\hO(jDB fC{#ºh_/ɮԿf)wk C׶i-I*q>X S=4Ŭ6 jWHJ~==B+ W"Xni*FQ62MX32gfsddFUsGY%F4}sG(u) T-c dn[t14 q])b$ Qj`eVuMƲP,\_e!+n_#JUPhgq"@t%*t9Q,}WivvGH >'tq?;+ y]%NGT"RK'yΗ;?|ϸM;^/?8Ke)GW+>՞ۏNY|gsq\G>8r^?%oX~CFfȲN|H' %?p޼a&pGv$%E]s']/%UXrD~j2#׮^vHg|w\<pxϳ)%L JZn?߂ ?)E\c[YHfr&'{Io ͎l$e}?1Vsf XV2\]&M3qXic ,~M#'[(!kAVe:cy1ƺ> tͪ+gEaL55gnG1!lvkd!1I6/Ij!@=x$12xruՊ,Y։e :CfyGsrM̞\Fg$,p${dG\QKI$-Ƹ{b\3 9D.HI}s&33Z[\ߡFJ'1v!)}Ň@oHaAUv E \jP2EZ?ԞK\c5HR]E ~٦ϒsH%t-i, Y%AIHA ?nwW% +P"'uMS8VJa-3]RJ$2̈́PͶJA-ԞXZUA-?p,\;p|8|p|~7LGrd\y||D^i}z>lx8Wċ]3߉.~/ <~apw~{fK1/;әNjW\*Fi$R\Z<5X06=Y9Nd +Jja^c/cŚ#y1%1/'lhS6U,nZREj‚)O۠ y!_gJtO($m"#Qn31Y/q1i5\$5A tkǚz-Dl73\m)miΤZM3{z2~e,\KpjC(+ِ)O (J҂µ-~Ēj$N:GG$nc>ТJR,xmK->I"~8rFZRh"͖WD $_7Ei5e BkbI4cU%u` EFDhBJuѦb4d$[P(d$VIm Ӓ\e/CxRiF" \]W 5[F!癐@o:DH8-9b )@P#g 20# $jT Q;!ˀ_&JVC J: B(E"Dq:u]Q2,WO&lJ݀K Z_Qƒ =hgȩ muD*\K # ]_!am˅֊}.l-AI '$ڐG* c@n:Pu˪Y!)RF:epmԾM&EHOxQkD8,8YK}'.Ld^@tHQqB)JĦ)8Ew8c)}!*iUΡ,iazAhKVx_u}8ʹtuB0N0{kYRdrj,83_FVLʺZ0li)CM %<݆^|w;}2B_|݋?-K_1d_ 7o7_V^~-e߼`90M;a9ȗlݽšq|-Ev|zxxn:hwH](ѐ避?DžwDu|G7N!HQǀ4E[ ⴐ %OF"JZ0`gH! r9P6kFsa>R#NkOE"D#J u E5 b$3J*2Og #2%IT̞9.(Ynks 4ߓzf=o^}j, f~DK=/û$ ܪc0V\h|ݬx͏yqoH+yӅxaua<4#DizbLtB. ·g8gWJص4!U˪K 2dpAHsL?.G0.MKc-(2l<~Ll:B5Y)O䴠j5MRõ^d8R&ODd?cW[!DvxD\Z&;%#Y4 Q*P4v00>buOI'LBkP;HWck/da4N7qB5=9{F2H밮!{^wu[q͊q>᚞l|C}(_Z3{ҋ/0F!]=5,$V/^2=?{%EbX[*N+-v\>y^8J(1R5^JЩw,Zvq J[TԢf՚h-ˌr\*WHeADAL8tχg8H񂑚b:4UTFۣɵt:ϛU~ 1m* }q)MCV)F :$RW|' "gL:fc5QЪAova-x@ZYJTס -(TTЍ#RƑIQa`W[L1T3Li b$'D#F׮ rРL{2/`8(VFbgڮGAeA , Ʈ8B Qrh 8RzMLMGg-Iߑy*qiY!26P.]" 2ֱ5NTipj0J̄8jxzUB`a<Y5HY1Mh[R\u,5އJ PbX0HdNiBoj(匐 Fr֖)ݚ# RȮ%EPAdJnM8r*y&XZ,(p ne0V5: ,8Y{R$JCNAX[/BGB fC* M"gȪGY K]%(u2#B*J/^RvLa)XECVXj 됢 CFLFE-M{ $ O׿$˂ 3k˾HR$ Izk⼐O4k4qJ4%DJvumפ(K"[s!.35,9moN1?=ǁlY#fgZkQm+9L̠bޱ Q+ ;VJkd2i 1|D[-\N=rĮ5Zw9D׭:3})FT0/cUS :3g?#t*| Vj,12$qlovKΗqeF z0G[ӉMׁy?W:`ݫ0:!Ӆg*V(SD?i0b}#a-g=ˑ|OqϗoW%HN<~| -yɟ?vaswom54 9rIӅWw0aB3xd wwlzEA iWﶌǑݛ;(_~7(סByycWtv{-/+q>#Ciqѹ0/+:k/1n<'?GZGzaHf?]ȥ_c>gY?QB?]COC0 $Lb+*E&*,s-3K-*bD!Z7W^!T d]BW[mqרR\IREI Y/2 8ƶ%(TcBQ2͊"kHM #a8Â0yӅzCa?L#HKinIC[/ 92 $pC$$Yb@:rE]›5ZQHjL@vuK)efh+RΠ4DazTZ*|X . de'ڐI~`Bą2%fn)si5K+e1 ÅyU'q|Rq&Hm Bie^ڰk[iܰ$RPt=Z*{Ckz(hۆ'rI("42uWȄyq 4t"gjfiTQ%=F iBkm+PU i9>>⫯H)&Xb!WESc+\ BkPU~(D 5U0JFU! QX:XJkpmu~C=VEh[S b U)k)Si8^ڢ@C#дz="G'\DS%kTWVF 9s>N6~B Vxj[TpF2 G0%9{8q%,%Ex [9bui{uc&RB2BnW$9]N*^#YQb7)tʥ@3]ƁREQ0ƀ,qm@j ڠ#H :y()PJFZ 2BdCI IStFcIԴI>^AV8(Jk4r52/J먈g?v6[q@*j[=:ҨP}(W臤HH\P]{2-iXT)ʴ5%-vU;9Fv~_Ũ=* ?ctg œJFPҲFJ#1 H)%-8La+qט`̘úJJddD S6O~*LvmW~&" g[aCH|8`0]Τy" "`-M%n{GeB 7-_}CBC}kn;΃Rw/̲E2^HٓSEO*,^R˂O=ؒ _~cN}Y'@߷ 3zm|_0nh/)R0~ Rxb yoݿ3GB^"M3<1xO͂^xxb9SdfۭLJ~ f÷$i_ >=7[|+3C <󫟾xtxf"튝Ud2υV/^/HXe٭꒘=>gp,n@44<zwU*wyYRr?śלN'67;LgӭY0 #︜N|u#idk=m0/.~81 ,crB(Ecq>@D3ضU&UȦ#ZQG7m]*wwNKH4e~7t7/DˁiR&!D3ZZ+$i pElR5oMq,x:Ո p|b Y&ϡD-}tfj[O)H4 ~i( u X^RS"oX"A؜|GOIÈn;MqHaCqd<4%4W#aCg n,&2y\)M$<3b!IKwHeI9ѷաt\bNqĹ95ߛ-]W~jK5{lh;TdOj?#+ LסE* .x_/'(EB)xBIMiYb!\cyz@ƿ.@," x0)(RcFHhYq`'R BNE Պ"Y(>fZ$ڑJҚ3E bzZEt!(q9c\9G'Q{24&GrP4eI?Dov!f" - *5Hm DDQ{ mC*JUO=s-Q7U]6 i1Y*8h+C7 e_i^Y֍]h<]ۑ.{iFڦ#Hg3=i^ȉzˁ"2J~o_A#(YjCfZ<&&Qݚtl?< gۗuKi͊aO1 W(֖e1ʐ> s! %gbN -V8"l4K267+F[PHTNFե}Vc,aH)aW i 9HE@TJbmJ4[T.(jh  !DX0ˌO+L\;+ռnd 4!,WxD2 xB9ShQ4+͖%sXe@ yhn>ti2 S"%$#$U AO߾`>)L{sC(#t@-Ro|@T))"QtCvTu!IquД rB5Wi@;v [H W!4,3J4v+rw53%yDYc.3pmO۸,nGg3Q4 n+zE4NJ;ϴURp_B8[#eYw,RI붖ߕ&$L7w/ZX֛ЭWWw2͆"'l@Պ?勗^{{nn޽'G^';vt'sb| {/sy՗<}~G#"Yz~zwϧS??E&'W)/k?r 6,,qy;я1r|v49z޽{m&0Sns^G91Gح=t֕Z<R'Ȋ w hb XSחRִw/2cEzBJT2UX??Th GdF+x.QYAuq\pHM'iE+.5ęu4hgV gYAPB.i|-2!,t6-)Z.Wd?ѵt JvC^LdaY{xs\1#J^qDLӢ#ƄR' BL*]I*OeaG6/_WW;D*޽4 jR")FrhBTȦ!#PZ#e/(ae-5m0w#iJbږd^{ 9D~d?c&>~b~Nޱ|c-Fqiگf,x[atsqv e<GY"eoj95u25f06->l^"yyIN gWG҈$iY,$Y|$RU2qzڅ&k`HhɸG 2NHi&# R7)8R*PID_Eݥp.X#!/Da!1KEJ ES H Hk>[ZbM~ƏCzW!WɄ\3 z[/Jɿ45^ g1M_aRc% ) 6W3BQ~OADY&1ՠEi jHWB n,m dt2OmFIMmRŎ\Qn/#9Tۑ>X"&m[2b6ĔIصA IrĭVd.g8'4H~uU|F(f) SB:tBT8]@)HDVhV+|! M-F^F֘$F (U,hp:v=)CGڦ'RBI>0_q8]B^s^@r)X|8 d!U4I"kٮ56TN%kT͙P߀i-mELaV2U[HkY3: utm3=9Rt77Ogtu 9G(n#\' B~JSv1yP|QB(MoHlP2BZX JWj{VRH'T"ev Dd kBZ] O:iR U6dƮnXD?Nۮ tC[e]5~X1.RZQ]<GԬ7zCӞJ 4%`wrxA,M==hfP4R@ɑp9@HIݐBq%Ot"M3W+Hi)ѣ-D_#{C"! ̟Qa[R9% /($BIO辁)d_TL0 ͖<|EHn\xvD810jCRC"?жw4;B:"%@8̔t ~$ ݠdS/0PDa˄)XHsyhv[DXҌ~h?o,Å%(d>!COs,D8^~VjL~4FB#=邾R$Wms~kR*LYHǁպqFJLxL8N3/i*&Y ,aJ9NgZb+N=Ri|Ibe T6k3o宿4?=S{t|Ɨ+v=ϟ.,Y '/9<=/c<%ȔHqf.c[V<G瑼noZ67τ_&OfױU~f8Prs~뿬`?rYu=eDJͫ,lpzm1ra<βWㄶgv5R+ΗmK4,S(]X"K %q⺎H)q+Oϴ21KbswZK89OG,=]S {#s: `5z9+/m+0 )UYm1pB8ӡfF4%焵O$QY€i{T?dDvw2 q"!Ѷ8Ñi8Ӵ+|0#bD[ Kbzܓ CB*ˁ8Jַӈd$3Ķ97yŊx-O&y. |DiGO0ۗ27&4l {ekWĐqBn jS7ҐGB<-;{BӭY|Eֶm#ͪ"4Uвԃr>y&-#]mˀ,״,׾V Rنa=77P!R!duPnePH*T&,=8!ԭ8bLs 5V1z9V ؐ+ʒ&J #6,:}O&(p)4ސ3|ZG d)HtT/Jc@ P$`c9<h h+t[}XEzOLDab Wr d0v?}ݐoa(ahG 3-b8K'wd%VxXma?'geADK8bdC6凜ItRXF ~`Þ=#Jsd6ۆ;[}@p0/ipC=_0Ȫ?܃ܿ! wPzMdv89tOBϟrzg8Oi EjE\ zv@p$HЂX)8sْEPa81L#/^dgڦ!?F--5[wX=سVnYB93\.|Wq&L[9O"$vW.BH'iݑ'8\uWYN3!J(mDNrԭB̆YKёC)HFS iI1@mMtEt BzO8tE2/uyUR lHc s\1H򒦵eq=MB¶X rQ-C!ls5ePMΙٍSm!严 DV%Jf|GF #]xW\K ,E3MUƾ[Q%T5L"euiLH6-9RoJGBkMH"uȩDR"D]:Ѣƴ-/Xm܀D0M?)GXѦLSfr=;;|(?Mqyp-ճOO'DlKSnj]M2.rk7uU$MSQ^8=C4U[!Bb{L(C]&RݔCODZ"҂2HAkB{P]D-)G)CT[A]&ӰpǁJZb]m$*m\!X9 T^!4nZȪCʄT #=Z5h$%4HcXa,-㻷h09ؗPb a5bvdP,q8Њ $mpB4,JPPwX)drȺ%nР!.nu( `Is5loTJx~*.C㈌e35^FL] xPяX"]]\_mdnnU|l !B`V<`V c?0\.ܾ| w]=7Ow?ī?O>WVtnnsOܽ}?|Ͽgݯ@HK?` 3ϟo9zoa/ŗK[2'2MS[o5www,y.=M]zɻxcLXc gJI\/^sw2/lvت"g~g<\q:3_`2kq4C*yF۲UEXF!'\'UC Sa+^}HL?guRUER7U@_LG-YXB? + UȨͺ`tWwz(׺FR%"$~^t~%IZ!{t9Q="?h3qFf-YHi@ ڕp]]3G0R!!`@HfiY5(> FW0`t~|e+<H'Wt@I2B\+;Rf 1ҹɹՓ#I~nZ xǷ,ӶO1V)K 3<m1uGJ-13yLe"36mџڰ}C{Ҭ7Wغ.Ԝa5h yPUCwbr)↔IL5̋/t#pB%52e~DZQcB+C?ygx3],ct& j3bus^s aȵD+yd$v˄;3DyJ{,Vih6/y ܈j7~\`or] fF͆3R i@&dUSXַ|e\ LeSV(Hޓ?_&U]"1=|@FkY_ĀJ&,THy $ Bd0q+A\?V,r#7kL1c"E-{R K:4<mMֈp~D b*4\Ä'SUU*4+t"HLn{W"&loiWd22D*RdeBmwBa;**RQ"" ḃ{YL6sDHO4  0rwxρ 62f_F>} NX"OYj% VLkXx-2Ir88rmr1mwUmX|M3&Kwif/nypGLb۶Y԰ݭYYj?#*]1N93+mOwg c1-/>U_A4Ox<.(g^K;k #xl˿7H? kdI~sdz apdM5w=DƇ9loe9?yqz8\n^ĴM),WkUGÁ[ۆt'Lˌ KvƑp RN4wGD*=VOgbK鷵mП?p8R jU˒_C) -駑w?G|GEd_~Oyt-]rxW"o~zəLw{; ;BzßZ 4TbD g𞪲nغjԸ;R!vCĈ"+M5yx- ɑ%-#hj*qٕSU#MT{T'PgAaoP" d,e$/ ΁ ]5<0 mױs꺥iV7Q @za:Yo?H1}"Ʉ*D}*DQW%R"s0dcB71gKQdps(HK(2kˌQX2dY @i,P^Ѕ!c$]rP?k4nl[1B^Y_&M3PIpV y!6+tZ 7VX)P!U֊2B TNH]CPb{jSQoJ_6! $ @S( BSW 1z)#RJ QNDQ2-ޕ"G1,~Z_a-{j0qM[\øG'[2q9TH^ӈ0M"DO,hV ԪXPRI5bF# &R( tBȪ];B8MK,a># rHtrF0#2iiPu[ӈ[*$J(5&YST)r&>vboV#n6FfHSd Qby A[ΑQHSSwkԶ@RytI hX"Zخ# h2|GpsEl6(GY2GjSXa `8/)r =B--4UӢtqB0mJI .QiCeB=sTMEv+INRndX$`/tOZ&d2X0] D[nyt+$1Lk`\:| GIZt'U]ÉǷ%'!rP2‚-VT!juTw,׏=V0ӻ=em[=߽ɺlbZV#9Fi* t!2ck_o1k1-5w>` c=a,ӄ02ﺎ4`h#I΂$=+[emFs/]!\g/=*^.eꙥB+ ~@fp=@`* ^\>|DnW<۴|'߾g#߽a19j*xӯحZN۷}@v~*>l5?q\X٬x w\>toirzJN3q,@H􊟾 6W<|6 bx:3tmKej\nSN!%zInv;d[3OlooV#A ɇY|OqFbO3n]q|TpgGadt\gVZDfyb:YLf:_x&ጕeJԚysb61߽҆a/’ ̪0/#hyT;XzH-jIݢwS _Ū[tAWJ$4,x>Mf7ehAʘ@/NKJ>,haoX>eGi@7!ۏ{8YDDٚtGun 3'$rfF֌+/C% rW&$1nY4bh4D#0Z@6HJv^5 RA]o RS*Lb.B djRb k53 {BΘn K( 2z=O?#G0F[Pu+pC D%J (F 'G*jQK` XI"#.#F5a;6er ?#mc_1#L c$~h*C Dj]}Rb@] 9Q&U"r$& EN TM<͆3C%@0䄌Cț+Yc R)rd&LgBԴW◉?4+< #O^|WLӞns[o!R`t|9.8۴d) [Lbᗿ~xi$8UeWo٬xv=>{0(Wn?xɫ2tG=ÞOW'?+6>t8{>5eDWZ),j^Jq>x3>{Lc nf0sVUh Wns>>dzUj aJ1XEI${MXRr7v+RrLfr ]ӱT0N'$ZWȬK DѸ VYe!2_6%^NaATn!)QVhi0Z@*ѦFLB"eMjs[&Bt+/t~wL~W\ 4?Ҋj' ]X<-prG *pe,~)> *Td,Sqmc a>ŧHcD5qpӄъ*E(8i-xٗ虦0(n54qPwA!E'|S!ȥxdCE Tlz/=?jpxq Bkte#D!z `Yg/-q}XVHJ*HES*"Ayɏ1"!I NH8n)z H$"Jbԃ(0HTFc<-#)L暤k@ȈTnKVc4/LnCJ(reÌ#R7In!\,qT>Q 4YvHGL4zU#E=\Tu|yKK@7y{TBmV,på4!:GRhې)l% YkLjIFSDČLHm̴횘 Ba2VHʁ(3Eۮ/+:]1bv+b\`J1s~j|?^=!2!Hm ;,91 aJ* yIcFKX>ù@#XUiH 15I ФC&@rl6ѭtesFW urfBۊ")?,@uM;GfwOJkNw%nP֠ǧ1V@"a@XhQB"|$qKj{KG -TV I8Ԑ|D֊#nCB/%mT !58D3,]Nh=O` ޗUۊVEMɅ+ n&Ou-!Nɕ: qT !EWi*DJİ0kR’<:O,Зe.Nr>*Z[Ŀ$rAL6r@fuGJїj F)HaƠD$-% wq&fy 5Z>|-JոXXjqҢ_m- Ç)(BrWO3'/-[~ L~JL4htcC. Bb4]i٬6,)1$ kxpg/^! uDix)1rt͚q ~{Owᛟ> kbeA&k04z~|RyBL="$rcp96+6?ͷЬ =|߱8ys{>w}K]#r٧/OxǑV,|yy7| wg_<3>/?|\^V<U2PGz[~r?J+~-nٽ÷o9OvE9μ{Ŏ$JzWco^Oûk9 W|ǁD^?ƱxΟ'_q^&aʁÞלp1xGrS3BH8-u;r>Rc! ֶR/2AJyyGKV-I9A*h$%1 82C|q^K! "Սk D*OupR$zHf*NoL숩 ?DKk,닫uKNx 5ON5a,h-(b"sE_HQݛ8jWY*M0bszvFBQ [c 9G(+JQH:m;Lrs-ŏPPUJ'RH+Jp=B$^Ȭݚ4ONYckZbmכ2BWR9,躦m{O:TBQ Jði,s漐_t[PRĹ#VK1I) <HݴtQ-nE` 20DF%BU:r 3Vi@{Oe{;Fb]k4 wXI'TK͎(Z 0Pr&5 1Ur*3ep n 1RbȂmyY'BoH-Km9zSAyDR8qJJtZOhiB#BNI߭?x8texRɯEQŊ[sޟܢDZs">VPWm}7~m[|aȯ~s>~d>/Ln{Zi/Xr;{Ǒ϶g^k0vQ8xV$yդ9|/x럼~B$ׯ_s?"ɣ??zVmr<9܎G}˟|IH0_|\^p8O"#϶!2=bŭZEDt:syqA(yXo7!ry5Ka1P}Dw8p^f||k}p3kÞp<#t8r K\A$zhg-#֏R V+ݷ۴q8^ "!D3hWAB4%Je23yİ$Z8׭'z]"9`ێ>yqHsq#1eJq{\k!X͑iOhR*NXr(kVYd,F#-AGD1r~ BdLN'LdL# X@Bğ?1RqFZod&i!:}6 _@ BU'B VP'ȖWտ'⼠Ew+VH?sy_@XQ"kVϮY{n] a2 ;'1h OY]ހX)dNkѲ"V%kZw-PK(I  mQ)!(N™\$߰ Qv9{cLE3cdЕ溞yj޾dԤ Z TX3FY~T>3ܽ />e2ґS4ؘ1DžDԗ_k'Dzk\T8V'BЮ%P;"EP2hY zS%:gJ)4 RE.*+R( :iϡz(!L8qAXܓ4ীv )˝AhJh%L80 PZ֗4KtoIh1ns\BAWYsblB'!XZүHpfZ+°#TLj)*Z>߿PmSmL Q,j=O4M}: U{(LTMHia3R+JI[xD,) EHCX[9pi]<"r2a0HB+ÏHcVdQI=Rgղ#F*i DՉsIV4nKӑ)q41ϜJh,Ga NJUJL{JQ(L" iEZj#B$4 B_SJ(R D0Qd{ aF mmuA<͘uOޑ0R:Δ+pDMӬj1F4qΰxaSR) f|>ҽ|E g}uY7KbI3}hW;ҶR|BLjrY255 EtB: E)1XkdP5n€V :Kٳ В)tfF1dSx<5 IB:?SzIf40unY5ReAQq:sqyo?pw[Ɖj{> P2 >r˟p>V9x12ߟح7g< \_^q8홇i@[c ILȜ'8=<nkDN+099ӯ_sP,>W Hw4[n7<{v~O>qxoޠn_o__'޽-W/Dͷ I~bSݴ4q H18l) Zqw49ٺ]k9Ϗ JÞ_2@X]@)(ې@@ƠeHbA t*/'tOL͖ZEF9*,vK.Y jlnO &Ό!~(u2ragʸ\RaOD(XBxZr6GKZH #Y%#"Rl/m%#B);~{HA F%2 % Jqϯ[JlvW\8{j]çwϮH5Y*DR( aiCeyA)Et'A5N)?ܲˋ'/e?<3~+Įg~w;}DhIk7H)a~X=Vܾg(=4ү-4 x"{(E?;ZN{)>ag;|]tdկlw|w4R:ċ PaiIJ"0Yc*a h!|zXfI\&֬\UA*3TIpm$YKGE>kW(ӢrBK SJqAJ~TNq1~%ep$i)~F&L%RʢDI(I&(fSj1n6k9>Cc{ܪ!@`Ud8>}~!f0V9'o}nw(KZjeAX[2*~+fV~tjP%ϒ&lZSЄL oGtS:d0Tk)ĩ 352#%P7uFG|` rF# s. k@[vREx7ӴbP"#kB5h\)L,u !dEu!#n!HX\׳g>(P#ORp/AP|[i` FKLȔ.V(!.'d͊2>4s$dlZPoTK6+T0)Q|Dj Y:* "F%IJDeqJrhuXx|[sHL f:~Į.mxxgY&n8D"j H?J A LB!pMs}#V5"T7BsS\YFHbXpq8w$yǩ|B >.H-Y )5KZXga.&|]8}<)FB Ge߮1R"b,3"iә2V,ێyQc\߱^w?~b{}An/6uabg~5w?Ә6\]sb&4S8]l8ͯmK̅Mx7?+g ә2-d9#mެ~r,x9?|FR*rlq'闼5D6kiO`W7t2=`v3Ͼ|~yEg^x޽o1yvݚOwOu?J۬){s>㑴}C 6H-:0aWۿ!wϟn )c+ۿa}cG^<=wM˻?o7\|W7%4}hS,, _9'u?%+GZRw-´?It!U< ɣF6fE6()j+zTPLN1(j9S%.uaLGJ'46,1dI!-AևO#B"hWLݮ2{1;Hx?($Nk {szTeļ b$KCex:Cc[BmrRVX'ʶB]W6FdXH{nCi1eE"B󓀓h,9'd@ 1{r?)#L9-Z˂.c~TAEҙ0Mcq]mQ"|O<~naFL81cկY&/Ȣ+I<+S(rRd]?lUh(Q_TBR*GkZi:AWB^6kde,Zݬ rnEr fk @c$j@!E;'Nל{T457zX 'eIV-vƘ39EROkڡlG3ZJ,Ю8HZc JORYHU(R(͊,%9P RMfddQ#%/,c-5yHctcϑ`,)#@3Ii&? `.oJ@Z@& uU,! eG+RD} B12͜*9bJ'駑%ƒ|A:9r1Gd<"?PGDV| _8}4/Ti"i3d4yLA5뚑K%~6Q(eY8 @(E Ƭ&Bɩޥfg|$)YL%rh!+X=M'Q *{HSMJO=tlH,&2!5DKi{#/)Jt!O+*fgm]xZU($0(~amQa(1}/ :lFږ8Oh#n \x9A y>Ӹ sHGKxPBB\&J*gEa 1޼vfr% J{pk3>#4w=.0Ot랔궹߮Yn%a6Og0]ϼ9@fy)rROp' N|fw8 tg?~"i[\x:bwEsyȵ|=\ڭxǿ=* |"i1p_7oq>g__o^\rzbGd)<>:˲8myb.܎)Wܤ$}>#03Ni Ñ(D)HYj%%V0RT5DJIIOh~|ijʍj!kY]5rh(Ev i됥OB R8ۑJB&v=8Mؠʠ JxSg)nV$UBʲ!zoYB q~E!hlrzx`kDWS2tX q=1콏odrI'rĸ`0t 3~vWIAMB IZ< Kn#FX!f-L.">Mm֐X{RAK~_5HiIE3i^m )z|)ͤb[Ih[?apY}Us!SE@ [^|mw82:+R8:ZhuMtZFm`fsA!#fI(l#@ %,%>u0mHTN#1=j` 9Bt+1U\q#!fn)%4L(ѺCMyB9|e~Aۆ ĹBЎpz$\rOiHH.5+nۖ/PdXבČԂTX[jPdAVD )DJ(cHr 9 Q NCTI#5R ѓRyʅq8 4,Gtͺ][ ~z"e.RS4.*F;iLY36k/8W R,s%9WaU6ȧ{kq-Qr(]Vi29 ݪqx!<)q\Ը|B-t |&iA.fHS(E?|Či)9TrPJ"PVo{yh0'yJUE}KI ebFdLmO͎p B@t0Ni )$_P« M}'@:ҶzifVE/y}@zڋnn8[pΘt>9%nS<||w}X謦=//lV Ͷ:TiЭ;ToytqÑ_Cf9ykuQBg /폨ۇ[v?%4f۱3Y[o~Y9~\^`a:yn=/|ɇibw}?-%$E"0;-W/_0O'ڔXӻ.:d?QocY=kәb̪[w}V7[$ Д' h0/Pɐ!W  @E]YSd g{Y:eSN #{{a;_apf>l}ǏoKuI_py{I^4[֗6k>tߐ"0sa}uŗpS+ Zh  NH>u'-Qf|ՄqDD 1e~Dg&tK&L#19%[,B%b(=)HiNn^n)#P% jRPZ۞==8(!Q]O̞R2B5H36gsF>d0__ѭEMߟX\K !R3ky%(ڮޝh--4J1e 87/ؾEIIRdc.$|X!K6s_7khNM)kG;Q9q3Z+Bb+3>ET""Dd.C-"ȷO)q(YR(0!EEJ]11C`\ t1!*h V04e }?@y]% xDR ʠ@^YABȜ ɓK!P{%*T%OZHb],vs[M&_B,R( nv"J/ Q~1TDʂT˕Dsa>JӴ  Eh~t8~0(o>W9pyML1%k6MdNc߽Gڟl,yfQXcK1O)5A KY=1EQO %[D)ybs8ttt%+P280AiB( =N8!B 8(Ja $R册~XŬ۷GD.Ų3aUh Z[ŒDұU3ں q)EyJYK6_ y Ḡn(h;9Úd& Aho?d->&z24UQ雖9z\lc=w!g(1PJƐU!>P&,.%fnBkGq\׼}Dݷ|xӞ冴;(Dd-Y_`͏3f 4PFԲp[<{;i=>d펛a˟:w/X_`1h?Ljj[^ku/^_Ֆ^-Y߼{OZP0v;TH #~??`|8py~'V=v=EKsdpb/mg'\K"?Z<>yvuXHQc9 Fny<xv`{ܑGYwlw?B`7+&Xoi,۞D=%KZuU}ijo&JcM7sqt?</_!}B0h%wHQ/E.uZ#F)DcVQ| q=VDN9Kf68mD!Jcl]mJnMOF ZJȶ'Iv $Rv`=XȅmP.z/5J},+qO设 ES'$ZR*(͚\AR(G)S\OI-ȧ#Q$8\,UZy1N#G H]p5ɟk;ѣ(RAfe@3憓 t@YA] EvXPB 2XkQj $7@N(ۓEQ  +dAJC>.Nc((FmW BD w^<[mf74=qYjiwQ#l`sV mtV^D!Kَ\_Wτ?4HQf2u)%k?BJ?opQ LSaR\2mא:lH )QaZuKR!B;H\pSXEr؂iVqYt-Mip1#5ӑV3+"R(EJOu%iY(ET*h)UcɦE@cusfDYnzٕ=G#I 2B FrJ=R )0홌]DTC, k;8\BQt%)%*ʕC vs53yRըj74T:]rJƸX!B`嬑B1{rѾbgp3EƦ-gUd+3(R44mxP)1=ޣM4)R^aA؟PEDn$L\܄7<}іx:"Ȋ Œ eX42U a bi6Z )@.` 09=#9]O>2Ho[Vw{0!%ZtmJAx4OX2@șn~1|`7MXks`/蚆jڮO3$"8WqϘwl=f׈ gJg{?ċ)たqbw:zpw>aD4΄qbs3p7wwx@Ux޽{Ţe8.-7vZ4^hMCł7yn^w_o*(qs.W+iD>~gO>a"n"CJ7,lwXc!p Gy5n=Xまl.pGZ\x?sa{Bȼ*\-qng? ޼4-w?'SCu-z>_Ś=i d`r3/l}d<tfn{_#Q~"$_ Մp,U-PWvD Aw Tsi_IYGD/("ySAʦNs?#ŒLu.9MBHN??ln^1 QzkRE+K.Nׄ$i6/3BrӶX`6~߿g%2nY'B%HP"Lujsr4 a>Uμ4heafYteUa4x7׋4Yd,.()Ud:w[nJm] )P+LkI7lX52%+θdBJHZk FI5I! D [ZB Uh]"kH ޶ >&r; $R*D3Bz #Q$H:mp;D 筟 L {yI\QE$5hKF&LʡRDw0W]"(Ou3HK'[z5 4Qr9cϫS sUXJ1ꡳiL0Td?uX8~ %)gdkhmCv EJR.c1E(MG=B/Sr!͎,%>,Ie1im DB05bHM3q0^˰k@IT)i4xG KxaCu E mrƅ*[1ZD5ฯSkܑ4ԋL*T[Moy/HDwͩNL\m)&E!%nBN4qpR尲/Qg6-vO[(- YD;$|Gӯ>0n۾¹-YnnI~ M*3 D  7H b܏h+l|q9Ѵ-EsԶ$\pBEtYJ3|#5;Bb^3r E-;`|&nKXNP#H4 =1 Lk<2İX|y|gW7_sqg|}?Y/o7Շw~Kr=3'՛O<~cVux!8ʌ]ui<2z-m7N' 4<{b+Ym:qj'bWV >0y^%;>Pr$Y ibqae:8.t]qiN="f* ?zr,ȹp|ܓB$7 #S<<=kˋ_}WlĒ_?ɧv@ay].i8u[ aJs_fGd!h%t42/kThJ#ѡLWl]NB.+e{.SM >rY]Q$gy&v5Jrz[r q<ۆ"$\t5"AGG|"ňm#|zÙVF26!BA) GO T=M$ǂb&ZJ[vxiL127ݒeHb:bNO@-aYBTOi$Q*TA4gkq=hILT-#'4B3S M)sTk )$b,H]#"j' 7θq]q%gU֒E*؊uV7D? MS7}xD{n &TgYݾ"%@DZ))Rǀ!$C@LiQ%t[nB/z;J)51VpB FnB+nvqi*1ܑrRHjI 2yBӴzZ,k/MBսBg$L,4{~C~A9sŷ6gPL3 !GtsD;@I`X9׭weZ0#M0 =ޣo^R$BNxrغ)L-Bʉ8w1̸IiG-M,RIW0MIJ1Q.ͧw$Jе grv7Ն?ӢnWlw;d,Ͼyճ ?mo37wDUH$O{6|_aBnw gwy8Q:}U-YgW|>XI[ X >nsCyڳx|8'滷5:xH#jfq4#U=ed*$R`߾Dy~t8br&L(rɋg7 fxﲝN)(\__tW;ӭ]O^c5Ԯ7wox:quq7q˗yƝ&ޯ͏ ߾;ѽj8UM)$Q; ZUcTĪPҔtµp[ $Ĝ>}5uU|\u$Sr,5jScI)"m9tL3m*?] #̎vQiqaM #YHLzrD?B.5V$XRO4CG 2B.Ӽgq=zK+t (ESG冔WsL%SJdd6 dKկBA5-E[ZYխQBb۶bKBLJ/QRDD t"@~,1u$UZBqD-Y#d,ϱZ"uU #7m")0W{A7k n2c:o7g[l⧉s[|Db ᦙk9N'Bb"YRi!1>WsHŢ^2F?3M^Di<%St<|WKzsMӷ;d 2c <'v؞#mе>?p0Y%{Zq3$O{k޽}h_\/Ypx.{/xzr؝PmGL_v5GTg9Z=G7=;b8̤8#8bdԉ6 ڲ~?\o}ft3ʼn=EZ.W=#~,=HNtׯ3ru?DOe}yŇ/wD'<"J&6|xCps\s>8Vۆ|`?h3?B#)rvu#)E%JD mJhu).JbhE 88,m%reU!ĉ9r vAإ!ɂՂGj %+Nzi@P%S GbwG<!ʦ4ônH\!BwLrzAD#M,ZsHDim[4c gQJR|F#~r <.J2Mw*_ ?{̢'Ntk\'L ba\_t QP\5vfy%EE*M))DHRtB㻿Fis:]}ئ~$OUkt Ze"gMT{sùW"e ":(zE_i$Bj]t#2ZЬoetHO4hU!"2?Ѭ7d!.aKز$T1+I#r^lDBZt"FJCy$h.yJ"ϗ'%Y Reu":lw;qG8X^]⬢H;l{U3g uAL.nQ7~BS d١9xK,CO !Q)XTT1٣bB"Ivٱ=VgiB O#qqt5i E)B4͈ёf`3J*tu\vXԈfikڟa'[3dQT94]dM=)q% #`+D"EhL?p&V+DlOH]] L03%͍|y~rJ)5Qxzm &hdBhS Lh[ {|МMO 3p $"iUV#n z;a?PFބm1 ?UJ M\dExZaef:ϛFY"L,aG$%8:mK,F"LjXuJ-m~#"Kboc%D4 bƚ CC~Ѐ :fIVZ&B-}dwDT]Oj:EH9MH-)2?}e8XQf&T/Eж~Cдkȍ!EA+.ׄ<5=9F⼧́"AFLILv[4AcA ۵ ~4Ls'HVMc݂ftFK A #1'2HE~]jH\XUQJ3łiayI?{w@Z֯}Id>yBrrCg3W5q~:ȹ'|ц䉡saprpPMc zeuB*]hX\l3n8 3~ˋK_o~S8lw,7%f| 1]/F+R[>'ܑoi:جIz9vqfaL;6׼[vw_h4gXBQ0֐UոB (RUDV s䔐b)uFB 'x~#&ILjY%`!DGu{QVRSɍXiYD5?O lCv%'.}ZmP(RۡuHpǩsƏ]P wᐥ"tvgo,9K@Ƅ4|jI9<2))q<ݖF g⺀\Bs:<{tw-*8tݦmHk7bEt[d*%tTp4c;%ň7$^~|<#HK=UDӌ:<I=eN8e1Ru%/f5!Mxiy9|6)2lۓ'RxӾ+RCK!!-(kYsEc[O"%利iK*mZ(+Ujݲs#: ;RƐ3y5 1NRDe5L9Nh"BJ/s =€~{}C{#ƣ伞ݶgh]u[W=/5oB]ޠu{IBA_*R 1N!K~d:ܡ/_JvjjjRa%H3G_z?xx#vC89R#Ow~;r {.aTw|xXT u t1+!&É/oy?@wsx@ruFn9?(^xI~ǻ ? c(58]^Qu$GDQbVZA:"Z)nG\t& I1ֱ=k쮯QtuI4E{(}P ׎,:wW(#JDM}УQL>ĸoPα--iYc޵쯲L=˺c4r>S"U"x30Z^@\H-WҦ-󂰚;dN<5YUꒉ@)Y„{)jǒ"^7?'x|,㉧opw8!Db93plЁփqĻ.7 {<_~aĺ| Doq11\\w|MR_1/ss)MVW^1 c|k4 O\F:4x95w{uEEM׀L~74n\ [B#7\i<_QEemJ6l7[bX0zCU7l! _{ʹ!/s{ -0X4JcIibMj8s^N8I{~6D.>oL{ъBJw:|瑵ِJ[6<Fኅ"Jp}<,m[若ɵ<5ELLJql_Tw\)aDqBy*XSUJsJ*;B0ڰiOA% Tdu\#Z!\Wh>d9tbyڷ V[߉\ڃr]YbŰryZy]p֢eC&%'q$sDIZuJ-&-Q+2'´jM{5#lI%#&vu]h4NP%N1ϑ!7P HEJL֤i$L'Q( %O6o[;ȩ]HmR(bL%0UP}Huu,U۳s]Pڐk](׃T'wmh"%+5-@+RefBhk)!QBDHJ{5hs$Vqo}낤6ʶK̺P8U' h-5<#ĉ|OJRKgjO %i6z:Q&W6 S !dN=s<3sA+.O dR(߳ƅa{MW;CMJK,DN!e5#GֆgM)=VdD)p{\Hbʠ6AO#V[LM,gVtQ P&6nK+L&}GWLߓP#H͆G[M5K! Ls ue^J ŀ;S*",#%:QƠJƺ n3?" M#jӆV U|U68 Dž~e +V[x>Sras#KHAf_wޓC-g-¸XA*N<#n9@ i>ikI8??tAJt?ptE/!Յ+w~y?/Y7EW"" /xX:t28޽} -$cZQ\zE I#M 4eu[mt;ѩRldcd-y8SEvdQ9<r{u,R ͪ.T;\оI=lzևXOY1{V )~g;N;Q8B4@ےR[djuG )^;fú.8#l@*D{XI\R+RnsI41BPLmeƪR$n;ƉVWހR,ڶKFL9WC;GW(?Py jF7"tڣg nK% i=S)1żXm(CZSc.`F(+ 1ڲN3PmQrQٞt>. `jjJ38SDs:T)%4tx.RPvZD6߈@!,O8%H\gVinfo4[PJ3DIC.jE#DA[ qn%eڠ#%JKb{@"DkCE7P,(ӡ"OtU4?g1wgrTyPRsnQm 1.;Ț"]ߓ׆n36 ^*#hvCNH/OG:!8/t^1sy*׷/9'#wwML<\=K3?~Onn8_W#8d9tJx-Rr'H 3/v/ /|+n7;<5/aÑnuǧ~g߰, ׯU=߾exuL*̔xz<_oG. ?t{xj|m!xbRs&}hmFVIHe# yiYPdƞTtg)qA(18Rft"Yd6tÆ0Xay]YNfh7;V 9 {pJEBH:d~ #BiQBY w%E(I{yDP Dr ÎX(P ƈsqC%W+MzW ݱ+BDi#FLuj Ҳ6NsH}ZEPi F-%-Ha7;7qhJ,qfODa~xÇO~#fEK e8Y~(`A<>RM+%i]amG.mkB(A:RF獉~kpݡ`!<=RD91rΈqQM.FF4EW ̬˾ i D] 91~C Zht- TcR!2tD d RBiߜR40=lYCm:3C&u<(Y`K~Pu]pmv8O?O醁#778kI)ᇞ, -v=~f5/,9B|li]Zc&L Cs%^?u8qbxx:/,tҹTJ8mC>UU~S>#5NXz#IB/(W;'_3gO_|~MTT-Ӹ"ׅr*G>Rbw3'Dxt/a_Ŏwן"$ )_㙿ǿY{6/0ve_[?>PSϾA{૟Nwe~<|_wXٟOHD͙7{Jʜ'O\WӑwnGz1t:#b<@집9r|kjBpu/ 'DeHko"戭?X+](7[{'ܼ|_%^p\g#WW]Ǽs?D]$R4m+J[v{1v"+}!475q~"]@m }k-tЌ",ӌ{d~Jj5HeYs鮰CrV7p"Q"!?Eun{ER&. {zm13e֑0|kX`(9uR)q:GXW5((Gm.(볘 }uI^&PRXJl"&BrmK3誡YUX뼠L/ JwJHi(5jiI~4j3dJ.RaFҠ*]pX (1Qc[L&0#k3WB}#XK[} mx˟}=%Gu{./^,4FQshh4QJ;iOO(Zt)d>%hg=J݆%Kr"JC Pc{9}n& FaM#9)Z$Ow5J 4s AfV߿9Ooe]YHN= QiI1`o %(IQTO޳.x(Q+1,*\m'B.t(ea ,0ݿc^V<ƴI*!qQKL6Nj--im9R0Z @脖yW/lOZJ=c &yvԒ)14īe h`%Mf9k8Pݺs\[onYEo0hϚ=r&ǵriH@{[ /nwiOmSE\ؗ < z͟%2ûdԊei d)>\"&J-onIօ T3;H!Hӄ&竹BKL^ySG DqDXOh-V6rhw#+sr% /.ɺ ;r5 P=I3dաtx+H(#Ea>荡7q=!LG]ף5 #-%$` R ڨSEV5e^8Oh)*a|sy{9.)5 V\EQe֔РOnF1ϼv[ J7?i^'~gW_ąÁzaM%\\oYi<3ZB]K-77[>|xlT/S~Ws6BBe ͯclw<~_Ŗ*?yoy+r~]yX" || nǙwoޱc56 <f`:μ[^b<^ܠ{>֒k`||\ 3BX? wz Ek.FY 48{O~'pC(0}?f~gޒS`~7Ļ#v=qt2֔xOL$gxƋy{矾px.=cxEU@;J7 &]R)ijL% BpM_0l/2&VMD!8-̤DxF9*u,d-BNOeuTr@h=FQ V]9e:>ú\M^^;OEB-֦݀*dlW lE)1FvRcB8]59fT~zKy&iXZzؐEEyx|v\D&+VI#-H)1jy4ӂ+jYN#˜&t]; RrZu ҸPDr$5)J,uD J!@)Ҕ(CGZ H(![vўG-BrqE]^ӌHZIL7l2Zq3H\ޠE)INoykXFx*X!ZZRI8D gtQS%ǀ*k@ bhҭ0shBkF2?bCl.VP (MY&&=fyswCFfUfWuQFXĎ ; ,H@H@ błE/( PIWeDFfvtFǀr7{{=B"J-x!̹NUR2)eD8c }ݞ4:%P xwG D"5vswx {wFyrR`kT-34l<ۏ( Ҽ?c삇_>bC"JH* _>N3VbpU]]x8 ~Yc1G͟B |ᄚ{#Ą-ݓK|ktǟȫ_W_4 ~%Gn~ qd ~#e_~Zixϴ2x^/ 77$! ayxˇ(m 3FOf|H3EI\(-YBuOw2vx>{^ywt_>r巿-۫ >}~ϋϙWORh[ˡa<>(Qˀ %erhen!b9$&Sℂ3$Aj&Ϙ~4iwwȾGJXt(}M@w2,#8\#Rtۢf>@*Gt5Ï0%MI9-*f,)-1Wk@Jxm~dT7A]!JBpN6d 6R0ҰQŪ$ԌjO@5EGC\Iԩ! ZE~l[ym7,@U#Uja8(eְΜ瑾s3Ԏ, ZV5ܮH)t]ѓ Eɴ8iaAHk[d=B =$дMO ǺRCYSVRnWD M8 b"@OyƮ/v$oR|%3Q]iiZ"ǵ)!$J]=A3,h RrkU)aD|&nzu=tT 0MSE’{n1OO'Lwȧ Qw7Xגe2 VȮǐbƶ #ϵ5G[0]H9 >N4hnңHF3 'FC`կSͦwbnMTs+BT;5<CUetQ4ZrHkPRR"+QHB_ ĜQPTa4q?nRPJB Z4%]Ʈ:Dc4kLI%@%O,u3G)!GW"?<`d4d%K`sk!!Mݪ:R)yA{yE*#Bie`gBʔ1_m 'D":4,%gŴȤDt\lI$L^UղjR"FG /3ǏkJQxʆb֜ohcÂJg'5%1gPlV5pOTLK6;j/3~l' ?ep%RHl01'O,'- / $57P~~aGV<}v͓rǺg_1 qu=sxUŷ9 ./yd]QR ɒ _?Si[o~O?œK)_h%rd#1 |-esEj/uF6<-_}Ӊ D'~~Ẻpg:|4δۖVКo~ ?0ƙ|wYxdl5nN{1I20qqqrYad"O^]2Ԉq~8j{2abscFlV<o[c[* |"~ۏ_䧟xɫ|-opwhC{rM]ZxxXrx:s}$KM3>%~=9g>~|q#VBAx%7wOzDQKc6xaiFmEg0?%A/ F6Bb Hղ3Z6(LI¹z+R#|&j+rW%8XDĠ!WI1Pٱ gLV@N YX;umG@Nbs]Ja<"JybJYDdtX#bncD3@-g?CR kLK$ ]ᮮ3tlʠIRM΀2 > RPAW )AzbhU.c,N+\iE]VfmKA(فPr}QFHyPM_;!$OUiяɔi/X[4PnJ:=l-5mmXBy!H!RHAJD&.,LJkѾ(I98F"oz)ԖĂL'HwAJ 4x@!g`FYTgLnIdmvW$pRRxЭW(QE-$P~4>L4@im%QVtVR%n1n"aDL Hܓ?(FSPQ&͚_P9T ٭Q){6, [P|m0Jkz~AM gfG%v"-iqydi&rc52" /J~%ҩ-AD  H Uq9bGRH0)vQ*JS2)2z#XVt%ZJ.Awqg 40 ZhcܶT()\lVdP9!HcMK=:/gDVpA׌;L:Ǒ  ;GIV=[d%I (8AZ0[-yfwuYmEAd4#I)PG@k|ۮ&e85 ( 9煒E*̉Y td  DhODs&,3}Fs!iV|J6פL3vՑs@!%r>#$c_ OÀE)׆$tZh]=2F (1C6kEi.1er8-ܢݖ%E|l-@_ r6 ba &S~>U^ &aSa:124I* =ES򉴻@IW~Y7 d:TkɱPJOX_3mG3a>*U0!fܺňZ0m5tw?lkK RP~Afjd-BcF<˲~"lnc-f"` Yd(88w""JZi ]03wwwb 39>~˫+ROgd뗗Re{.JN.^Ŀ3<^]/Ogx<3Oz1\m7_) vۢ6`-3z=~g ǻ{L#e.(x`G ]k-« sOѼշ8c).'^C=??]5ZEkmEyBׯ(JRsځ!e!;jl(ʒg8Pr~ j:SPzp1 e8D^^# ;ܪ%g,%.U$)eٞpfܺ% J䁄3} Г' #njH)Q W-pxL%'JWy!΁g6 9gb(Q\1Ntg!xPp,ӄ1,2q}twиb aH1LqE[vOf>(B!d}Xegt'_Y"rڎL$'DA:I r⋮})Vo0 >eئ'F"ef'ֶ% j$e)S"S vc Amw֒<'J|6=B4u bSX`n6NL "(ivm-kWc]3HB) BI 1B.X6Dŏ~Ĺe:u-21%T!Vm< %IwD2*'rf& .vtt]k X)c P ZU~HA #[H8Ta"Sfh2jZtpF& *Xj| 'rBDv'8%IXϸa--M[>W_?ogNS芾nW=Rcq]s_ 1F Q~X|"ęY$r:?~O.)޼|яH 2ͷ?_psK.駟 [iY2/u[w =DL03ݎeyxtJXZG?RzBdX!kqXJy553xRns 'dKyk\qtte(]'юqPơ͚,ÁHgg ˑfCFϒy5-bW_Y x?0 V+T2d[Q%d n%(r=VFyN>RIP a+UIK1] H(u](T&ֈXJ"lv%i=mIB!*]Kv:zM8g]Fy8osHᲮ{DCQrDHK̲>cbQbBw2e0~#[b$X71Ԍ~jMLPRS5 ] $\y)Âk{ƒc&?>DӺ'@e@71HPwU'ڦ$ - m5lM#"nCKؾ!K2[tޣ a:3|zG(q@ 3eHѴU-GL'*6x5J)Paˆ:1"rJY|[k':M04L`>|]=Xq-aU¹)N7H2g s!BޡNEIAHBJjR"u uK*B5趂 VLZ[TRb$ʾG"îZt˫g 5|@Ky53uB,/H۠1/+V9'U#zO:ݓW hCΨ\@եR$2RSQ\!EUyg{= 1Ѵ;Z PTA9.P2kbE CPJ8bf0S%ʠ+S:-! Ę*_պJA@ɱJDmSACNDL6ף=)JKRg(fXL4FJЙ;%gHgW5.AD!K΢Ju"M&Hd94\ZDᗙR VA2sǶY3 >b?-*J1`b2b?G3iV5 >ϵ"q;-A'Aӭ:d ia!,OW5À.u{Xbhd:"ȅpWR2Pe>pXdQk,/t )b^X"͖$Lvv]=q 0HzK҂#uB;>g4b"Q=S2\_..ܑbL ;W/ÑO/ <ņ?@C4Эޣd'kE' l5{IB~`ծ44ƅMl'J/%cYXp{L_0/uXxͯ_B3ZkbÙWSSf'n7|𑇷+oq3\~)J3w02y@oii v n֮c"WO8x%^ZY=F.W_rÉc5!G__㻷<{ >P/ ;dU(ՊB LxB3 Ƶ૷+m;k1SjKKCD#<"?S~$\ftҬ7S$#ʄidNdAJ~E$nG2=vW*ݹGotQŅB:,($;B\=&B\ %,$?aM%m’gHud Bnzt#?(NrD ]) @8-J#ئ=H*eՒ$ئRi'5H)"M"!vՑDm◅mY/hX~8kn@ݦis]EZ'LζR֔b<*+ FKea'=y'<{ωz[ȘψR#ۗ8psׯbF&y_S|ds} ZJ i OXeՋg4obچSxX uq\s@F}#Da8e)01.uhx2H@ČwwU,%!V0(L7^nX*D"O̳ŋafwuUKSr*P2焥vT0Gpś7hcn?8w\^_G\\x:o߾[\8\=tp×/b`<@8͜ӧ,9xNӣWi j]B+Ҍ=VYVW)>, vkdRP*pGG&D& EI02kpB$)hc^ahUC80zCsv'|B`*@feYZ#I(Y5Ȕ/0GGe78cƈ:J׃2y\)0-w9xuG m%qP +4Pf?̴[L@ #+o[\L&+G9˲BF{2!-@-VfӒ y#@ۯ:!MO# e>#iKv}I Z`\R `%u2' .HQH:ۡ]xWXRR]gQΒbB,K-ȅiTV#)kmA4趭=},1L? S1R1(q a;c/IZA`Bd_@=µ% c %e8ce^%A O-K~u62&G ^AQL-ZciYԇuRkh4a*5 ȹ:Lq<ޒ%BV"Fj3R֫`Q8/HUHE|":$r %9oߝFlʰinF4 ޓ 4RmGc/){_W%Wp!41& Rݪ0~TB4d) w7(`پZ,lQ(R%k_ɢQj[#㙶REZs^^EQ:KbN Hu+(,Ǐ{6?3iͣ'5!i e0I?2=[ *׋[oȢU@ IvG \( ~Zѣ92v,ӄgR)GE9nV,"#B5$2&kteX#M iziBc2v!Q/'.`4S'(ӈUy\/JdLS@lJq2!P`D%/+iCীR dq8X?J<?ͤc4Xۡ %T7!J4Lg5 ~O5,Z (8(B $QF4-1eRȈHV5(LiasuVV,#vuQЮ*($5UbI*d<݃84Yjm %]q[dBƉjBV2d a-Jc9iI@ CBEִS PYy`Hk% OyaFnhUQ*B)p 9&b >x0&gl$-XqpHfrHk7o˫K]_"Oڲ {uӭw["*4i~z& iHTKnQ m=9de?DIm[zkS2"nDdDf:1H haX=ѢCm91LosήV9Q;֚s{.H}x ,"&ϗWxpw_Biy<I/ y ͆[[7_+ͯ؟N6=ˁZdcYD? IHy鰧;nC4 ]ׂTx`QÏLM'5 s\߰ц7_}Vn^r>_h]p{MWhkǙy= 1ShQ=Y1xϺ J[hb79@Ș+=bbTix$PP!/#ɫ'fuBYb!Qnc|N(p*K%1N fVvQ: rmh8XM+Ot7 "+{ln01{/XBW4M'icOF'O4 (<~ .J)(tݖ0l H%aanY z:.t !^ԃ31,u,g,eƕ 1J:r"Z.[ЊDTE{y/%R;7Z^9]0khxdAA63xf$NB;tPS9g|WwS!W1miEꂏ5~cklӀՌaFx0@1ݏ4ʠrb5nxr"q][rc!KKF+b\dĴhX)/Ԉ}"a^Htc9= x@SFaK"A$I"lO~^THUk5GҘ$? =n;bx&mƟ?0EdicvPh;/f>D ຖe;bJv$#M+ź\__nĘ*̅qh\ m {/nՖ}L*PV遾0M3 `JT8{̦ qp\)kJLLi~{>3{^߾%.p ·~%ϟ~'Ka /S hN~uMIp"XĒ#ti$|ꉒZ}AЬ17xzolib~ϛb54y4ٽ~p =ۯ~`3yP2ZgJ-R[K5˅.%@+}q}q~a30 [᎛w{^2O<~-k<>=baxxG}@f8 _xrąe] ZڶTR0)g%]c3Za%YG # y(ؔRhs1ՃEV\s(ȉj[nR *ZJV4aF=_!i]AoIG;Y \X_Z^X]XV)t댌ϱ:,ӉFLug;$gPy%\fT!L UlxO*y mR2)g։$kIHPBJE*)i^"WLc͈[sM?Ƒpx$ٽDžb6=bS@:owuKTxʴP\.X)QY֡,aвr88 %(Xp-EfF%kYʆ nFUEjyJUڜRÉ_IU@阎'޼{[P~u-톐S%'"9b$D!|9C! 6ݖL׵9-YԸ:sa_\3].l[3Wd!8N2DT%ͳ vg77D@#g_Œ(ݶxuĸ?s 3WkyBI?c=@?͋IJ۠3_i4n[rwDgyW}sf_#J7l6#q 隁)gMײ6a_#Zvr$an3s"@;\f1[¸K'??Z_}maچG6%󅛛sX5,)ED5~ J <>=)~:#y?m{TeBچ˲p8\j kd&>-OO7JFQ#L ~鯮(vEnZEDX` \GY;!VjGeI(!LX) bIX)cF4, j4?RŠ~FTRG7HXy34-\!d"wHۡ+r#/jAWH~K9ƑO,#|{\O8טfT(5u"P%PF 5TK!7tf9M /Y%'u>nkD FؔmI J[4쥦k%?C6(Qd!tF+E̙F:Q XmQ7+=eDH(bێ2%mϯ]$!A}mshzP?X(ҷ׈(脑aLRM5^ur1Kڗ! !f~@J^^ߒHg*$zR0q5۫+rg>pϯq<_PhLP=a6:Nab=YgL,_|F5p}{:G_>aovmC)O/_p5W7u ~o/F Lwspt`>$ ݖpFJ w>Pք26oppGdkbs-I=q}8O4ʐ y%4/ضa}4Mۡ!07/n\S?!HO(E'd,X!븜tW( (]->J9<x۾$eAdؽ&*XgTƿָa0\lj>bkh-yD O* =*|! 5SxѶiz朑Zbں!ԘqCMZgL≲"ȹ"BXGt#ȑ$X&ONDd+ ixBH;KCL"v x:TuXeMC'/I:!)3ִ,a,(dӐ3xb4>Mh"D_ "uYӼ: s@)i:$(9bX,r귤")Ӵ/ybAP2q1ư,gTwdAE\WuFgOoF3F"R鬥MoYBxX>`5t`ł_&J5s&~6PB&]t6vȍìf !Ejko3yv3:>y%[ v~).//KLkQzD̗OVh|!=ctPì~ZD̀5VV*8§DّL^.4"3ɭhZ#'aC(BյHa!1N{=pVYQ)!,AH EխPl)R5aJ,UH^gSźjTL) mE`%PPFҌs2V, TOY2*:U+Fd$aB`c:?Hn"&.(gѻ7(q*7O~;7(b(IT$vsU%S,%m^o1d8(Uj(ӧ؛,aY($'lQŒ<\$ѐ -2qTEx!`U[ې58!9<'Ȗ~VYjtӡX筥-i+@!}uQjCђk䆢5!z 8hۣLG*H kq]*|\\_dFgf"QzÌm$45#"JX&ѵ4@lY É߼H0J Z ya;lGD)뗯8.3~Z=sllGw݆߲+\(Zxӷm-I qd7~pRp~:l743iZ"IiD9{a۶L=\N 0_[JaS'+s@PY;G.v0Bb#EqI%C 4jDBn<Ұ.']8OUςP!pulKB*(F i~%+q! YTdvSC `ځR)'ګJ9]c  z G|X1)qL$bEZ rbfCy؆.i1!-H`P1 sD5}h>b&. &ȺJ ՍֳZE!#Z'BovIJ( ڎi j3ƉQA5\gaK #t6ƀj\}QƅTK]Unz: /-+LYȴl_C+MFA>OÅAځft+u4J96(S9R.)D>tV$YWϲ8%y~vFK-a7@.RX@vrl̵g֘)WhAxP=k.Ukwu|9RJA@8iR&\KYdyXmQR " ZZºvM%kR sg)2WZWե؊BV|u]OJDdmX}$TGIQZrt@:kB ]cU~n9=COӢ*j/ۚF b$+E*J_kaC8>(hW R<]75K #r)E0nVӑᄂJm 䈠sz%/s8) Y8bLKђx9G!j9L)+~ H+"# "2|z|袱-9{RHeAJZ2eNlkԬ?-9!.dV5#Ƒǵ((5$VV3Bqd:_q9'bEKbZrr55˺"2 -qb f7p$޾eMu?ů Y*~FmI>13ʯ%xtXgk[¸Ee͆R$~~=r}uEVJ#WF8f7ˋ-Rj#:#Vn8l^? TOzvwKcO·#r;[^Ľp/z4TaWE̫7ya mO _y>Y_+G>}b7r>/#wn͟#d#޽׼3vcב);n8O_j?9vٻl2_&dư?y}uw?@Lixz|dZ'srJgYڦū8O~SA(޾zCv<><>҅H%i% n+YD6,#Zmu(ɳ --*&=ݫj^U^\&VТ.+z/%5::Z9J΋WmRօ%bQ"%lJ8% | 5k Z+dɈv@ReʑSPBX4_pi6(JBŏ~ E9pYOfò?a{٣ 68,aYuHk,G|Qݖ( a96iFDY[ ǹ=$pSBJA0G12lO4]Qju "xDΕcJ\ idIkk7f 4ddY~}cPRkhwCǺN?!nxAIqJ|QmJұo>z|$ dUN3(2فPbDwDH[Ś9GfwҒ( LD1tm48ݽЊ"4ZWFcr϶iEH"2F Z"m`c7LF7 nG.B(@4VU2=cD5[(LHQ@uQʡ`MƵϴ3S q7;a4aJ L)# ~&eĊG#!zuAH4]QG( "P- BYcQ(HȀ i0R#3vԃL5",QJ0v5H4xNHg3-hN :&;b̤i1%r)Y5"Z/&sS+TSK:UsekMlbZ? 鉰nK>$|+0  5H%.,}5KCZ_(k]Q}GZ EjHsͪs!!hx(լmt (4=u6XKϖmW9 Q!Xs {LHHR/Eƕ\Ӊ0MCSae3RC< _|ſ_vnӒL+2EDN>1x=ҺZ8 3K}Ā %~Qrc }-DYj_ XJIXEa|3V:NtM陒̞άe$鲰fSBx:y5!z#mW|4[Ɖ_k(?oB?GG^n_ləΒ3ٶ-/_]|#'-g2u4=C focDw[Ӆ׷\B@4=nG0+,R"_u5ꖇGo8?=W_#awOqY?= q??{rʜ -{~\}2 ӜgWe2 N8DGye%sӷ3>"a4|}\"+!7_3!h_4HOgWuEqZ&wx21=8%<>nkֳoc 9{ŭiEX@!!a`i j*u3ckXQdFk<'91ѿ&J1N2%cv?!s&,%,D)͹?4aBIS5woh?GCwm451q̪-SY$Q2v;,E@-+l/$LHzZ qnjCQ@҆ʘbtt#"x4neI'BR|i.琡cV,nf[SV#$LRfJqݮ 1s%IaU䙗 ڕ%cYfGau[ƐN4Xh+4r:J7-~CGƻ;i^oK! )D2=l)IAX|(Т`E#LL7]!ctEJp*0%qciC" 3U(qs Sp1c]yꕐfsĈ|)g) rH|{dʐ#.TP$mw JE6٥j4LT-Qy8ćf0-^#yDDejxmB0:8+QlJ|Rrj65)||oiY3;Oc[ByXDž^9޳L 1 >UͼxP >|>frc%y(6-uˇnYΞz\=}!(jAx |d߼zwy߼z??շ/x⒟5;-?|/>kʫ_,ğٟ ;p ,.p87| Ͼjs7x wUG]ՌՊntrguw?jWܝǁkq5-0?ִ5nr,)]]3 3_x%,m6%tkN}nK2{vחe$zJ*Hkv;P7݆4/ԫ)&L0՚zҏTu˦n )_|Am!a^PbjejHC P XJS)U/pI!&@lѦeIzOL׮1US(@>l:A,4X"n J.̳eLwE#82GjMħPH/&H0%╨[Pcƶ(f76ea:}\Uw3.*%.SWq"k*gIЮVMZd 9u1{?Bd niM\,.gYb4;Taz\*F"+M]ӌsG1+ h2U[#4QHU% Bz"s*PT,Âx!-iKr<[z%*Eٚūm+td{v2e:i*E B \&YC*LvWE2duALH(S8}`ɑZ -<wY7g[ X!жOVȘ2-cLPкޡR“B ? XJ NMV(&P&R 9G0mR|@Y"HΒaӰ^YR01ߟf!C 䌵UHPE&R.vۇ-Rc "ʠD,*eIYC Q-4 |.[7=ٕ;qTLdҼ0NaB(C U&- ?rO|t$,ue9ol05F L eQx*Y.xUUz\0,~.]dȶ$rT ^֨9c)&r@D)P!U+j]Ӏ5U(Dh!y,JekmSJVyV)(Q?%"HH\|q-e[r*Ԭ}]!q7LsS,ڐ}ڋ d[Q" u#.#.li (A2QHp8}5>NO3z/qUм|IӶfJL{I3yIRP?⭳(eFEkwH7]>! xBB8h– g(^A.QP$0'6EfPMȎBw@ 6(L<ԆbǷ6es# ui $jjKU[$;E:9VWW(E$d&e (c`ږe1Z/պt4P~sˣK#rfsg}-JQ5kP1uBL`FM9-3QKDcy8vkÉl4J J"_HpbȘ=bZY/D30zƉ-a9Pw}W2cf u\x5ɳT&JDNgӯ^ӭ /i+ K6݊,n~|W/`׭93ګQt+˯ŋo_=siϹݛ<}ffz89VjrP@۶TBəJ#qԍ~U͇yeYn0OX. 1(SRD.E ")ڰ^mn&,3>nq8 qNZMagcf]znV[D]iweY| 1  IcHOoPMwT C En\߰~ۮhFJ|mJO(ȂժT-n~a%UoHsк3UM7DC2 !;lU.`YbβdNSY=}Y}OS|p4-T|V G@0ڐPd%ƏTt"2hVӬJUHHIXqӑܳ0h]9Eb(]!$r&g]HcDLMc )Gƻ@ʂ w:d_" =+DuM8`#걳R~$hD A w˅J(maяQ,1 e&RpK~d<Ѭth]1bޑDYUcHR$ al$.J 9: RfGb@P&!A"MP,mɕߕnA Fڒ-y^c"3[_͟h)A m2"2͈Z4;q"A(;deFtӂݴHӔmLĺ?"UAjk6 {fE0 s9ɖx. ,ѕB&8"3q +g%ZbJT-c?ێ2ɗ"b6#$B[zJi@ʑ`:a,C$㧁3J2!#hW,nd9 ANYuŔ1tF@wq,.#bM`D%RHS RHm0MŒK(Yqf[%pgtӐԑ"`t}Zx2`5 ]/3S~{L]@Bam8D)ƋЛ-.fIe.-!SlJKZ1+aD +4Yͭi WDDLlBXD3Q.KW*Kt[DgfM&b!I8~/-$XLa@9ge^7,YikӖGBglUԖ2c98ϨڢuM6pI>]*}J47WXf!"_̳kB-4ІeH1"D1g'lhk8=#*3䘐Y pB@dKQTVrikim[0+7O'<}_Y$9KDž_?~/W7 19eS?pE%3XL32oxKl%1nm:>ݓ\_>H_yL!8ydϟ;]Ɲ KJl6oǙ/9@hgv|94&N R,q=‡!-]巯/sc˿k߱nBOi5G~r3a@jv;\ U0\_^sw{wLH0:z7ikktUC(7ODߟ1!#61T[&`s1~"K;B-BkrrPVhӑ3b>}f[4SS4 ޱ^q>ӮHI9T"S˂\DF90N2.(l ]G!Us!"uMX(etpDv Z5$OGr5=UqL"tgSnM {Vu?GdA Jǧ@L$I8<n68E*ۑhTnv8Œm;h n:) IiǢDY5"К3i!dmI!%fy-Hմ4R2N,iH ͖xwnW+s&% htՑs$댘=G`` #J)w UW "dԖgQ?/͹l+kB1Mu]Ѵ-<ӭE^:Z./LT:"5VTJ4-9'AW;^=8U<}L[Ky]l;ۊl-Ȋ?[ <߳j3 98gPKͦ8/=HalkՓ+nSo V߼76#@ZHόӧkY F={y:stږmy-'O햗^R;UǴ̄'߀Lv~ȫ}m?һi^y7~5L^qzMooFrsw͛//t;Hk,'B''Ź3TNLȦow>cO\@O$MG U70w+۬9"2x1Ul@U `H3^ĉL Fgn'HR1XSO\(Gi :8oi-BYU{E!mjƅ@֪e4~ G$B5rM}_[#`=veVĺAy®WvKFT )r- |Ⱥ!fAPābCLtgTe:a``QHCԚMh AK2 - RRBOz|O)y@(L# k,i>\_:mjB*=]x6jP-&c)#EbUUZP艑RU$ၪmHFFß>2IJkHQ6.ZIc9V4 %}Įv잼&Yf8b?` ofJab9J4J 0P5+jTF &I4rDQdYYtTkB_RcBhEDٌw8 ˚x*_2"D5'<%m_2ьfCV3b%˿k:"e+'2QoEږ8zN1ZdDD\!w׬-;U)ғCi,n!@(=mXih@ Q ZfT(*]7|{8>T ZjpS/]c+ը YtT\IS (BA/߲1 $IJnɋ"HNYh9p:X)!B"@n1 LLTyD6nibUKʅ("t{H -5*#}m-L%RsBjף6T"&$0u;K=>oBŷ$%3h~pfc3hK2rYcx#t'D"#ƍT׋Cv{IeXm& 6@[Q04Q lkRLcOݵļ,s8jmR4bbZ3 =ley?P13a֫Pw 0b*ֆ(!QWUqeMbM1ȼ|B jM3 CO o1A\6)7Ƒ竗8O<6-cLN7qr%/wOXoqO~-2kn޾c Q5o~݆OwaDר%B$htVrb>iږȋkr_b/w É 7ņcϫ |y}W/y Oij <= V=z7o?%u˻?|W$QPw-7?e?߱,]4<pdqIZ^w1hݡATk2!O7 2n2, 6$"P!R"*vUJC& pnWx)h-HY_쮟5Vف!`YyP/ښXwg['3yXPLVAq<(a)Ӗj;DRRCwv ҄iXP*"{8$q^^)0tv!dt!Y_8~j 9ArJ5+T2$t>0/sԕaAEiPТ|ۖŸ4 Q l#OdiŐ܂1H(*Du"SdHZPH!⌬RrpPʖ/la+OM]H9"%VLw_"ږ2jn#P5iikJFdAe"uj|T`W{#xgml)0j˲xj[qq BhM)34n,}|b+$e+75¶'%GP.bDX,񓨩9[3JKh'.erm7JH;btl..I"9i)TMׁ8K %Β[!F*Ev 2&rӰ\t2 s٪@]w4݊C9Gr>sF<k[n Q-.]B PJR#D`J&)LdM&DU6vк& b5msf<=`W-bdQm4DW+*Ī+ XYYI4ӲrrEHtj| h@Ԛ~t+LWZIe8Z#(,ꚔCO׏ldvPV=nrb<B#U(iVg9J3JBp8|ԟƍ;|*)dNy9.nb89zRdO0Ή|%›O7|۷xq{'Tl.=I{%u]Y5J5%}'tf5y@0H.z%~0-55|ĵy]2Nw\mO~'Z}IzrAoݻTo8wڧ.;͆)%y{Gj=TiaYHp&-SZ}I 9W{>}39e\{IC*I״NrOBL$;͆+oo ;w$x5Vi vwHc)pf+vRd15!,2 U"*é?4#.֒܌w=Xq:rq% h*rg{A ѭ! Vd'NCq]A2h*hkDGzϥ'1@VeoD ْ1͖%{fEΑyM]/ؾx@bQRsF] c&cv=f1j3**Y"*&l*%sb=U MxF-A'O#),xYԡm](`RSU"rhk"KE{?ޜɶ,Mzּ3~!#"3#+k2(ahZC @@Dh3000(jʬ̘ÙFu P">{{aAن, q9ܾD " >zu6R%i\?m: TsyPaE ,Pdymf# R $5%on0eZqƑG- %v1'T(E#Һ|J;ѦsɐRj$f?"r 4Mݖ*+:WJL^~0>~@:RUGH5w?vtMHr8>қu I 1% (c0a*l`mT0 !{ho-ZZ % ) F  n*\OT+$QB2)(d57rR#WB)IiF{p)t1^w`M& ѓLRd_-ֵQqEexz`.XA;CIF<!$~RSJg;kp±D3/g6U*4"uSB4mOL+Z*$y-vȚ^F_]73J;: ^(yF 2"]Cy:P%1 Hu#&h)IĶGBz՟d ;x:2 &(J= )kΡa8=gm!ò cXEbo8?9?_HBwܴ4Zl7D]qyywGP|9e]LJ ~_1] 1D ?/^)Y?~mZrW1f Z/‡51]7JU"J̐t= ! <"f< lHTii36d?##"HEb dQl)FGHӷ6Lj'D3l@gW_c!vP|D[13k4qOy/a*oj6ś1GOo̧uMu@Is4͎%Qv"|KR9GDkkkq23(i`N/WzODQV)ZOVRkdD 4H?3>|Amnȡr\B@LoCdº"- k` a0]Ԯ,mōSiE5]VGODP$"td}|# @-2q:c EH'O#ZUP. e !WsW/~(\ 9#ńH Hh%)BR!uR YF䕂2TzgL2lw~5ͶM@3VJsCF-t^p!% 浺H#][!1M)kR!Dێ-oIˊ3eHa$J[ö^-`M]QL+"= m5 kN5m]m{n-EdK Ljv 'v! -r1QG)4"-vw5V7Gf ;GiJln  qt :EZiv/T!F =J; Y(S=9Rv+ĄJD? ~ ^Y:-QFdJ5H-) hl5KA,Q Ax ݷ)Y(Ң]t$tyP\iBU&&BHE 4yRND%ܬP]SM5p~ Lj+!'e\Ir@gLtõTq^f!ѲL7E-Ne%QFmJQbAMpA:Î"LCTJ =( 3ci,p-&[RR$d)0f:䫤ZAs{G =a]Ή2Z3~}x`9_$]G H V} Yvn$baO~@jGLrM4ï+?k\L\c5 ۊ%DeAZxдY 4^GjZ[N'@V^ܽDL,RD{wa=g_0 )M:/dp!kl{[Kr#6za-d*U9<%K10c>=t=^*sfmjDփs)UnP75)JZccABXXB:Lߓz%H5 :]a5WUΒf'kR2p!buUg "g)"K)$\8Sk*[晼m!Rc)eFiY5R!R*db5}E_sE&ȪO?@Q hs-SXhZG\8 -*kp'RS h/f@g XѴM5AtN7B]R kƧ"kS}IQH %"Hq #+= xS;2c*DmZqz='yƶ:󊶕%_r, Y&\◄R;0v(JUEZ Q BXZ6dQA:hzϙyJciq$-!xsm͆e9_l G6 R*n7l'^~E߿z ~r"D? L3*6wAh!'k];^y<ҵeDG;kYS`>]brt:q%޿_۴[W.ZtOoO?Cǟޒ|q&P]+ּ{+7/rB!|p8>9[Ri=2S}K#5K0OͿ-]ׯ93?|_|mχG2 mݞ޼[ezaJ:>K{g(~ ~0G:װ3^>x>|`1QlWL < ȿmȔL/,?2a[1AHaAJ!@GLwn{,-2DvS'3Ȃ541B# dxA\_rjkYӄ0@Ut@}:kqD8ֆr"4 Rjじ/Բv c`T_Μ y5 =l8Bzi5k+*,!Du͂0M%eȾZi-PeG%]IGMAohtD[(IX S\Qa\3vCk-5i:+a͆,+f{ IdEyT_{%T- AtQ4DkN-%e9 Ha2KiJrmwtÆBơo` h KWY$\La*Ydt׳Ph @+Z\%epJbXHW(*(PPJ#BF#Ia۠|`+T)Wa)[Tc@'d Q1.@38"1ƺwb%t5]jr.B*XkFJgZf.E1ha*.UJ ,Ff5u!4.LF)&> : 8̾mX㈖CRLrD ~=֘gVp% Oi*HsB l77VcuSA\<1ySf*ǘMkDCAG֖3i(1b6{ j 2sDh[%jy'I>Vl(uzC B/է +iڝ(D_c|k65f:]؆f.#v_)_^(8sX. "H2DMI(>(]KHZ!BP/̈\[ǒIӶRBZۊ~GR1FWjׅFb(dgvKIKQ-N8mtSڥp~&k-k d +9%Y6()1T2֍t#,Viem%)KaE3DyQ#1Me9OVĸ@XQ, Vy`ہQri|uንnH ]zy$s XϜȀ4r|9k&r8a,vKD]a0)FFXY?A:LxSuMt0I`_q'> >'G$fWR0- w/0Ӈ^޽@E#q46X0ڲگ7={x:}iˈ_noo9X*Lv4M,9#Yö4Mtm[~xܶfg\x/i?ee=^8Ϝy%n(U$v*]A;<}~3Bj~2amf( [:,'m^1p'ܽb$7|9r~~bp:|_`qvw+ǯzoD+ǻ#g<>Zn9tIp~z >L=_/qqGq(OGRgi/kLmPB"LiY :7Zb\G0GhU cj~YtteM+q+iQ$N L La i#%Fw ٴ+4aiAP|[% hU%^Cْ2uY`h]˪tĈ2qJn p|ZVHPyx15*gZ,K2#DziYSRb2R<%| 䜪zA js Y$9͆DİȼNpeR/Pm̑u"5E7H~sцԂWQ4I%/9ZO- 9fu3>dR(9ڀ4(e%)ɂ6ئA,#Z4@%ֵ-)Py B$ZtጣmDjPMO+r=a RZ*PԊ=ZB Y)3XA^M!k>>MA0=O(4Xc]pyq iHRNjX$ -2i]Xs4YT?ek\KUx&LELR!Q$NA: P#R^ :binR:4J'%OH4W"Ppee <ܽ'R/RLS"}qfCO*r{K@* '!kI΅4_P%=ԼP z!(I4 -["ے R!?Ҵ=JbC)M)<"%l۠YTD)\q9(A}YrRJDhkiHәuT m$2|55#a= gLte9PJeBHm+ڵZtx5G"Thnl%2i_A1u5*[ t!-i(b.B2XtUN mzv1 [r}VЪ^%%VJ:zEJrˋe1A 1b$ *x1,k/Ĵk&gqĺ_i<c_|op>jd{^w]_ d^2 EDTף3nigہ;n1f>~xBK}|!o~DW+Һr-GzeFoZQ2NLJ~ ~|4ۻ-i]y><yg#dOcfwE`;a4/ne: Rr:v7CE_it=rsF^n{Cʉyٺ)J 094Ml_qy< (g9||%U1x8m3)F^x<ٟwxYdV3̦mSW|8Z=X6À=a4rLHc@HYbVi.hJ9b?S*8A *z%Gj~_\gvwHQMRTR3e-b#MkߢD2d2-@0?И~ .OaI3Zh|R Ȕ곸xRdjZƐLL*ekad1HiMø,֡lJC ĵM ̲.(!%UAAUкJb=|y k),H߱u(ۓKb4T}"Rba Ҋ'3QZ^ HIkj<ض-Bir~NEx))Yrk99 H3v{a,) Bn|!#F$Thm>]q-i=P(uVFOglu1?a[Jn{YHMBB*Li%ʡJWMt%C"U&1% r}>UZ خC*[WPJ# g9'=~oP˅/8K _^)!ZG';b6מߊ7kWGKi"D'~ 'G2ZL.#(li\tpM4OO"M4CH=WDXc(E_˨zP)iKe!DŽ/inv\gB\@ଣ(8<=bf8δMǧ il'Ȱy\%#Btds{SREusGRXg W SOG|Hg.#SZ?5ϧG6{P]70>8/y'yz5_DUx=ܑBT?)vY慶>H{cpO"$'˼yf ;O'>ܰG޾ӿ#> k9=k5 9zaAS~  ) X#n=8e<_(Fhp|x:f+:*3 .<-_U4"m4_x>yqsGS/__|x^;Kќ|Xt7=X??GX uR_@*4kd,N'O 7lf>>RJDٺp;%sq} eEEmJ &]&lh]qhEOGX7ImCWUؘQ jD+2u/]W9EHgnVLQGwn[ײk$ps 49JSBYhԄi&0 !VlO,A i%%MњD.U2ݑeIJRA45R9l*BR:{qP"ef֕xu(ͦAD.f>=ad Sv- 2-4bYF##>0{ri"HtH)RS$I3`7"LdeH)=%.Wco+/E*os4!]1c7LBRH4ZT3*Fx 6hIa!Dv(" (b8Qm\B@k|Ķ-thDr("Z$yXjϡ֙uhm,Q(:zzaH:٢PMG$GHȨQPJr|B,inK/,h"E_"x,?Unt]ZV,JՒù(PAB Նc5c+\[տM$́B"vp$)јFA0DQp/Qocki=k~=E9q̓YYwݗa`R $>HXH8 10hV6H}շneUgi6V;:F("vw~# j_V!i|NUNZbtƐ֤9QX= R|ŎBiv@k1¸)d>ϙn4Ao~oi<%p̿_yE/^~bJ5? T2 eѦg:gU^'֫-'e@6-&g3@yY3H}K4Mnf"1O,%?(2tmˋ0/OL*?#.=?그5Axb"FtN SIg*"RʴiF0R( 4*zTXZHӭ9>Q(ݒ:Uvۇlڰ G BV12gB 4oѲPij1T^ խHmʀ6IL(ْCmxHJ: )A`XY"7=u:|~` a-!U*$,FcV=}5AUErL#eWiFRcwuC :qh3"-d_)]Da8#M!KI rDX4%,˅d,9e (=?D-!DT/wXketb/3JdJZid×4@E )@^ $Yaa9кGh9a`<~x^W4z{ 2c Z ZE,LጩZ(B\hի2̤X Q(@xAyva Y-k$2Z.`C i~uկbn|:35T{FFm*B5t+T0βxk(!B.dӣN¹8dӮɷg e3*&\7MBQ,JȘI#(i5V*I,dN 6V '>ELjQ5VAbyD4 "~}BȜM).J 39Ddp՚DQkm\>jY<`ӧ;fXˀ,ҭ  R`# q[˄3 E;8W7DݐReZ#8-(G U  a*_ɓ$2fKɩNUE;c{ybwsV,@d(9uk8és8DDc"P%H:fE8?P"n}]?Yoe|$g׃$%9p2Ly!ЈUp2FZ1[u-IүVy$ H(TW[qиEi nF"DU R,n|7Y$q?mvضgyPʟI^&,D|_b(URvUέy!LVH33K B{mZ"Tu-s.$YY76ݻ@:LgˀnpHHF+r!tIEQUbJ \F)3qYUDm,)p3B ̄X?~鷈"PPb$gaR#ɒV<O<)H$qݗ_k{51 "9ϬbƳUͫ[N%4k{ㅫܼ'~eYmn9wk0{y֚ ;qϘO? ^zi!~ <,ܼ|Xcfp׌—h2\~#Ą)TxvcL)ZnV] HJ+]W֑rƖ%lpk톦>OgzJ1,1ղ=]PBUYjX(eu@8#RfR[WwrA6Xv' -sb*UMY5 _ٜ@\]AW?|$zC9n(|ausuw?1a@I+ ݒ/#nC ˼* +/ Qd+I*G²pڟ~IH@ k;lJSch0uTjwV0cYœqV3 gnC Z@ȡT% ݂E;^WzxL}͵4m*2R$nB8{rCk^[$\ X E-n:e&ZD0{DɌM0dEk.4W/Q9)yĘQ)Jϓh]QJ1>ݑ*J~`'{s s`::CgbP׷W @:\%Ll-Qfr#,qxF/>i Y|ɟg_}^rt䫟|uշ/ayx<ȟg$߿g-k׿ȟr/vo^ri^_`GvM zoO!m 4Պ)yZ(>BY![;O{x :^rOܼzIDua<\g֟ ] eձp>ɑ+3mi9}C ț5J׎'击p}Ok,z^@?v,LZ.tQ12<ӀZ]a+ӞnX[%Ƣsi8Wھ"R#%j 栭nYuy&m0Oʙqbؖh0Jr?T^<ՔAkmhAL)/u,d( Qy)VB0phE7(h8DYG,=4iOO\9DI/q@FfUR NWơF[J͗j)G&pvrBTs2>~2C:̞ $Rբx`7$%pn6݆P5HIvad3b2")TH1ޮ湾6x -rk[B*BW B6趡HBP|LHSB;I!+9KX%U҈SAlghבb H._%A3"JHPE8Hלr2@?;ft%0WcwpJu X f#ZsBBWR+V*Հ$PREJc,c%֐(Ĵ"P֖yB!4(YMBRTѥ_|>B99뛯in^VVՊ%jB*C^qvd㞧 LKuy`ۮ8sB[E/贩u%YYO1!8(TIȵ&sw qA XteYF35KuzgsV%bFF_k_XG !<ǽx<>c@*[ J;R4]7XVĜ/mӐ 1 ̋+>MϬŶ> GqJ^$#izs-O]۱ޮ1FPus옖4rO p<]n!JOWWc۟t>s{d?\2102x:p:y#pq9w?p-s^Wś {ųXB}ծo^3'[XonYL_gL\ݱ?δFWt;Ș׮_K|ߢf:^w3#Rhdd7 S<X[OUvZ͆3w?6e9qGiF(Wo?G$?,NxY+<<Of?ۆ;56H)H 3.{F Œ92%+jRH!hV8,#ZkdBͶ~¨28´PViÀA} U$x]&Ba c$k;aH]~!.XPXGբS& dL4>w:@ɑP}0|c;?/i][mI\(xU=N NMYm*1 ·Glg"ig j챶T}O"#R/BӶg%Ԇ%͞RcB+4t]ZUۛ+hlCYxgF W7/Yߢfws2(EkΧ3_dpdٲª븹r:Vln*HD.=g/Oo__HъK4Я{?O9zw4qFk}<'0,#}_}6n#Wu_!7t;~CפE/%:>/[8 ܟGs<|xb>N4w,>tAJEv5i05<eӜ y #n] "+R~SzN?x.@v,㑀"HJ"CH 8kQ4tp1$gҢd8ѩ`dE2hII&||9ӵRH8V-]Ba#k$to1q-zEVH nPEZK3ETTTwɬ-: h᰿ǹʬ*:mU$D5"281>/^B8o^%R"L%T۳Ԋdi$DHaP =*J\jA0m[R"aYLBA\9D' E:atnL ˞)nEU"ANڏS8\()bo^Px!iE'.#XB&vuPW|芿^FbWR2ڕYbi*!cAv-vضA3@nuU;%!SfZ.}#:\2˺c4 pDw}*2X:rEKW]#8"2l!AB^ PJ-]nR6R2)pT{z9Jc^[σvBt4~q[?۽$]9MshV-rH!XR1_p>izbG&TmK4-f]Jo^b xjjid۴p

@,q0 a:c-8{({>~c#A&Po~kvUw:./pwFw~#.ws|GoH~@Mr<0.H!9Maq|o[V!}b#͚ZiwK52e>~7$bN3pfEwyʇbXyXo7,xx}dЭe YQh;jۖ2K9ܨb@Tt^_ vWQZ}SʃM[L]&lUbDP$# 1# (I'T{w^HޕIvp)Q"ɖWdi\]$J?վ-/P|FȑЫLMz.2Y#Q3GR[mW%Ǒ|@[iPK`?X۔̶HRhD `%,*Y[<`(fBCĿܟ MJ|P(E /"W#){d># ?h/]3<tT%(A]Lc9#Pb !$ف,FTvn)=mOYP cU)?M!\-e2V99z..дZ`eFm.;9c %J&RDJ(VE*Pc\ݯhd{|ȴ+SwLm*>b2D[ʡ_i.Xi(kRϺݢSDžx0J3O/MbmE6ۮ!KQ?g@IȔćsFoeG4h_"@+ShJhfֆz@w廣@I̎$yF\ NݙqvTHD5ra@oWCmn6ծ Qu[ޡW*/?O2hk<#M%~587ڮGl΄y"j6 C)DE*!EسZp~ q1 EWiRت ǑroV d f{o߃2zGs3vUB C􏈶(!XZt]BF ky?oG;W cј5"% K{Ngm>OxK._ЄkH+I]G `-#2 HhlEOȪC՚4֠oImQT !ht[R,y&bh$t+QFd#z}Vk*[QH!` b*CR扪jdEt *)\`AS5 _MUO' vcQ2c0y J@ZfLEX!aOa)$J`9dF%1/+s pYT;b ju0Gm, ~eR, *%2Ck"xXVAxyJ"Kxqԛ=]?T+f73$Znkܹ7diZGlHNRhZ!#BKV#PW@ ) t0/3apf?ɇ#fӰEJ$@D; AJԫQogm"L#9+y&$zbUCTеbFw-ܣDGe,UB4c>S IZtfekcm7.IhODQɕd]SMxf]p)hQT vg@rjV2=6[<%O\@Uw(m 9zL@EB@΁m+e@َJE jG3j-f[i$X+UCGJѮ0Q77AEٶ%bTU$8'UZoYK,26&KV"݈'nMΊSh3>= Eƒkn0J ÓYEFzDPQrն^\ jX떰/K&Gl! &"Y ϐ#mBu 5Zd|B6\SD"iREՒsx(jbev@Y2MH%R*el0ڑDf Mж 2Rt< 2Ki"ѸHDQ/0 SB 8È I ں\󂰂-Y„L<ڲ|<\HO_aꊇwlw; MUR*bJ?x|fݮ&Oc5|[f$^qFM;E~6 @8l2Vf}<=x{|gGCLJ{TTnOgD$_W㈤ 9>>cۚvaxzZ7|'|[~W?=^xzz|֚/~CՊ(2:$޾´P75?{G@^#IY~kpy&f6M[nak*6 '$+~뿢 1pGد7h!9?HUIz- ȿo2O4K*?Ǟz}E m:T[!NRyQ<Z AP+B+˜CVMXu-YDyD]tht$eV 1ITNibɍb& f i`G-z2yW?mE5>Ht\H3 jt]*KkLD"uK a4bx"ꊺRH6Al7BٔkHy)I+2d~hBIdǑfa{V6mAbJM 1j1KB6(A+TQkET}A6FW_pwǛ|Ue.%ʴHkŒU+"m3Zw^*&25aA-# ?3u59F"Qm6!*% ]#T<MSDTΰiF#18洰\ DX=q tD$U,<"d! FIpFjO-#jPY@%3F5h& ^̼2[38=<ӭ/玄$3nXXbQu)k~?زRA r[$>:D,bbȵ]TM0˪\65iI.aX)S閔е"kT]?x-Hɣ"-){tQ9f482%UՐsb>^-hKv3=D.xVPB6*"\u7cTFJKP(%)GPJk6Ⱥ1$1#bm$4 h㑔 >uK07J*EFZL09hV[riVkD"h]:rU%oHF15LtZ VQWU"" Ep#󼐤*rtBe4,c+a&MH]:Th$n"\4@e_1HYY)e, uf3Fӥp8VaIH?zjՐ$jEHivoY9(!ȲB5d.PUT5Ifd]P0L]LYFDnJ ^EpF/'´b0F€ K"lj~US 0c XUF=LzٍE{iZ|GwJ lG {E۵(=g {H[_`%idIDg|\H$Bttk-|x^}M/.Y^ӿ(e I^ӟ{T*H4op|zk[t@- {zܼ31ؔfow  -mrjm)gۭb Aw[HqY -keTlfx|fsq^kQÀ0s=׫RKw| N2;Trm}C_^15TnfѱBHw n8 MRu[ƲDR^I2_! .,([JLO)ܟ_3hST VK>kw:wQw yQXY,㈴ndwf;a"mjl7Lj.n.85e`*B bdTOᙪ8{5bJp{fhR۰pt7~{7[;~׿-vu7w+C|rC ,RJx"8y Oii^]Ҫ|hnv Ol}]ys}SzM_ͫ+?y~7}d ޭ'a(n#&$̦|iجɳL !-^_ҭWNE吣{Hk6{̸ >Klae\4Bᆉj+,0u]GqruApa]",R2YBk#p f %+S6d&g1},n񤘐)Ēo[dW XvF m)3N[*@ ],|XP2z %5Y>r" R)3LJl/n~rqF5+fTbh]vM +?=aŬ)zt'8wcdToa9=]Y J'g<_W\g꫷\2ma6qY"(2>u.~&3ێz2@K_ȪA,#2/zKRh"[?K}vOݒ 0Mq}!hB)HĈ쪡g}AWH yLDdH>A(COvfC)5A&DdH.!u,pe/vw߰^Be@DPVlů~7Ęza8*;ʒ@'wIp$dMr$DŽ4uCnA2%0],e@KTh"< \hy[L[!JU@":rH2B*KNm)") #Z0|~&zbc e$!eG`R9&H1c=K0w3UUl'Sy4])'AJE{B:2FVU(i 4!'2tu,DH3ɀՖJ'!ĮۑdfrE|rtHƒ_w2g PZ},*$q^:HH0ux:b-ǜ$y ) :X9jvuC! DNt$ZP =vE+.B@!Z#O=1 +T!M#Lh#ɲAT%r&j/;LH)!`i,m,2{۟Lwc+lס`d]6T\N`š0<_%뷿GRǍ#H;oFHm[$9%dң*A]C:  1,Hmp(U??AL9R);T!$j}AĸPkdӔO0!*|ӌV&!"$nATH/v6PQCXPӏǮ7,>1>ޖȾDd- g̴ݚ? UWD0:V 'vMFuf#Ԓn Hȑn YH#9FdU\OvL'!L,0ᙹio^2zQ5eb!_-qy#??&*o~D7 햨2Lt/7ޯBl$'b$8=+QĄViDV°?fv݆T<U52>֖_X;af[7<Nl.ln([я#cs;F0=$9ťo߳ vScfg@|Yw<z ϧg>q{߀Ll$0p=X<计ٴ|_Q*l9<k|G_iV?~?y:^N'?[ׅ6%7,O~ʷ?0{n}On?rѧn˿J5s`3Wk8,t:Q5H]U<>?R yQ@-2<-o/ZT.o s-N[>tA?Ng.I%t?dٰYRp{1Μ ѳaYɻ?%H7;*ew?'"D,8i:F7"H$2YBZrp5HSЮ4bR82n8mqFٿfNC 2bl7akr xvs?"(Zf f8V-v<`hֺNJte 4UK.( QHRl]q:ܡ64%éQd*!ƙYuc뒴2TWJSUDvk,˂2N'j[c-Zi:c'Պp=RD_\Jʢi-o$7e&%+b#vkT D↞o:?&D,YU 5 8@( aIRmŖz TeBѡbbfAƈ\LUoS a1.h$UC\*][Wyd+jULĜ1@5z߱Oii{jG\|UבG lE|`ծ>//>{%3y15l`2|Ƭ.=xA+e*s2ń~hGfԤxRf]҈_QKv?]G$ B5؂qRBpD'U#iY&GM(`|T Ĥj (.R29U0FRvM3sJ;lm1Z,Z!Byd nEpOl/ߑ GL ೦Z:.1OpͫWd!3p.aX&@UY4,&;#jrOxۯ "͛A"*=rpjSb$)Gz xh!x M+Ɣh՗w3/oop7/>pxxb^s"3k>=W_3/^.,yDg*vX抏︼/>Z.wG?ל/Ы%wOO\\ӬW\cO<3QrHw?P75ViD!x{dXmܾ}V03=^/d{b'B9 j~ hsE'h sTT*1ٕ鹵-fv't f !P )KG+]n%g?$pƛ%)+Lc-Z0sF@4$0B#)DPU+5J<>~i:A !*RcXD#FDЕ%PY%&Tܢ#I&T@M3~JOdh6Wh+"b Ղ\A0 QbT!>8#~V&"2a/H$Lr 1 R)D܌i[e=h#J 2i*Ⴎh*ij1pd_HZy?3f*1g$2G0a "qfqjgf)y"DŽPltE-׷U|(8xݦRޜgTnYT1Mq";4(UdKXfB`e< PٕѤy$rIEޖxDyFh FC",HY2SlYJE,WWeQU *cl,`>Jj^e {. I!6Sf0 (0&Ā*U۔ZHD$잲kP٢ !!`t)mKRRkM b˭2 Dq"(%G)}q w>hţ$x) BB7Y߼4k 9QIU6!jL)Ρܔ E)fLsdjJ2@(-](v(UiB4\pHD9BP01#cM$!ږ~_YD!Y|*4_ȪtqO&] ZtO'^i+p1})kZ= $s!IrI0TFs0킪)> ۬Aga1OئcM(\B͒dk\&Q"Zu3D)u ^u]q9٬$}ll<>a-J&v|.#*A|<.\bꚟ )I׵O"OD\//eǟg~Wӏ?[=WW/^sۗ/_*b~3j55Xcxo!|1}'њ [+$>x7s}agO;y鉶Bpwwv{y`G~VL%%RJJN=/W<P!Y1F[77nf\ko-ZKmk.#>#4q5:.?ֆ9D]B 3(m 4s ]HjML!'ZfL#Cշ, 10P2RC {u~Oԛ+t.-Bg4PU+i4qn8T.*K12=iUy)]336<0^z-BeW6 "$hon1=cZh [M);iTװH~.hY+Ll(3pÿ;nC 9MD7#" rJ|@&]^!Dx8"%P! ru2 ۔\tpP,Tbi]a ;a[P91>=ZI4.yڪ%ʍ~dPoj9'% ~A IJ 7{D$*65v,VXD)#E*B0T+tUÌV%Z~Gj]\!yxA˚yOUKℌ$$nb=mJ |]!YEW 39Db TC_8"y4Fu-J+D*(^c4a 52(bND^d"@I4d5dC?L8gUU-qZbH[Qi˧?uƖhq Y*$l8 iZ`p>R4-ni؊UNÅi#uuWYJR!Tݢ^ݙyZ!${LDٖPý!4So_cD~`k˞$ϾwqwHeKt0gYaRy.S#[EWn9H-%4F nR+WfTI"}rj\fF/Ѝ$?c_c}B>GvғtruK^Q| g:ޣ$! 9\_4%B a͗f q,Bp-Y 8).=u˔N7/ל]#P"UiϜ5SͥȜ<_ܐc> yd| ,V<=QDX-y%M◟3 3 vHv݇3~r < vn;t |W<~|xcۡaZs}uFfgn_9Ֆsܰyqûi6+mGT5o{h~|#~v/pb>KbÅU3'ϋPW"DK:TLyn4Ů59<,QC ^oI La,h'InzHDTe|n$=X4`eE U dQq:ibZavlh7qrK5$zl<3FYb?|D-6 3v6Mt5FIkkx.@h\QrF'R,7x1U%j:nj22nԫ"Od%O!noa*q(QAvvRU@BF/>b $$MQEp9aH&3k,(GJpnB 8UE?N{o GkdTelD_P&_bLكsDe x']G!UE$2OyZP%@Lc WZJ@U6Mh"a+94a@Tnf=!K*UcHm4gER35J*t۠E@zv*VQ"%´-|jZ &B%.5S?PC"r@K#IsȊ2BdCOENj%$ Q k,yAeHew,V ,3OR$BC5˅ 1$Bm(e?VXip#B7;'m ?a, ݄k-4zLp)3 AZnH9QpT:w W ! Tr9*fA#T@?tuuwln6'6킇?:i" bO@s0=9V%F(.QC[/'p$o7K~~SKrI2?o Yn7|g'X]3a{QJ2k>~z< ~DJwY7TpٟmEr32$F3NWgdeȋM[Frxv|Azt8p{{f.#.=mӲN=͊qx"xO?2W ӁaZRgI8GrU\\1Sw-ċ[fسl#͚Պz-/onFq; ?% Y5]8}nEsTݒgUCty O`k- "2 M)5+ӇBiwz(Ϧ uW7ˉz"ilIGA=fbixKL[UCH#-iD(dhjbԫdc$GX! pxyNpֵ?ށK[4Y,8?}Z/nOGV#u1'B*!fT!8`{b8 EY05>#܄^4EPonpaB˄< LݢRj[޽FEF ij 1@|#uӒSsOPK&ȶ!jI Zm4m;vY07F0x+%1GDHD_0& dz#"BALS\UE? +݂8G\SOސcJMl5bN0R+.;^?U.^b L6wd)105S)Ŗ~ONHey|i }b8^iö594L˦.w"j10rquoKΟwQ5_~K|8h;Uxo?x.x:<a"qIYdt͋[~i6k^sN%z nyxtF&i!=lRȜ0L' ׿w~zagW!aZBe$j>Sw_ܑ0 hcf6#e#j|+􈎞y>ׯFᇹ %JiNC麐WBVmn]H5B%DA.GhE 焱$ʡXZ]P C.T]ShZuR^`kM;Gtniuɂ3Ac%;GN<Xi`Fv3<YWˀ m{jCUmtڡsDخlGJE݄ǟ~B[& EF%3)DB@)x9j )9˧Kb$f<"akH1 PEH6X!"yG&)˩W ڗCJm20xXѴh~"ҲD ΅vFJHƾZd] WdSӚ0E̴/`"]38xLsHsf3z:*۠%ג#^ҽ~h,$ "!KS6f`HV\cJֲx Id[NYITl],wD? .xlS&#:9TJ!BT\#"/Z2,pxe @s&D5"x#-j$Siԣ(;bhS3K v$NG2)~閌c{J|Obv4L|…6nETH"bJ6~Q:(N ]\r۶fGZc@: YhbdTzQ86 ms@I@Eيf(mjV,u"uv %"{@y4)U 9ج|([@U邐LFUj0PbU> j+d6IbRlGk2mTKber ]ܒpAii&F8$/bOېD& 1Z\AV$J sI GFRa-n}p1U]ނpviܡ!%] #G*&bh _vAPU &ykpkKBB.k~`m+ 9fʦYHIV0 -ł#+Iuq2ӟ/XmIc 5ؗkN݉np>895ә#1fsC'/k~D6|? @n ݉WaOJni2XX.:Z)[.se̝b}KӮm+D_૿ ???_pY_my /oEkTkn^nm=?==憮nyjEtanOurAJӎݎzayQ8X[qۑ瀲bCZU%/G+̲v{MwQU77yagݲ|qqR}BOe};WN'#+&sdy#L 4hs$XD^kiV >] ltרMttKCVF*1/LLHvsC<1Ѷ[Rh%K.Z D.-X| "B8,cXCiLl} -2Ponp>W8MRX^\U\y%I9qHFČ{WnZ=qmYWi*$.G91F|tgFJ-aO2m@H푴E3 U[Ue]Ǒ {Q?| ĜF~nkR[bRL$n !B(Em,ލ58/qf!\Ӏ%HpLn"P(Ӟ8\0tI!0sq$pn*ΩR5{ 3#u <Qt s %42Mno g5f q@ۂ @p1I#6%Ul['R/- w?|aԑȶe7"&U(%^ C2YgtZ灜2@UI -J,fM63k]#L菨lnZ@v$p/CL`qXe>=jVڐRbѶ$zGۖUfx 榁{OP!8DG=;К48Њp6]1].TaN +4TV!u.W+vO;~ *f~Wa {V ~l~f~oHa7\O@I[>#]/w36!|ٳH u7-[ӳQbU8'nTʛvfڲ2EeqI `хHHH1&7nĩvYv#Q}\s{Wo34 L[|@ׯx>C⋋/ov4+Mtί~pVXxhb&"ѿ$>ۛ7 3~y||+nnni r8ջk^ݖ>*p8 WT )'W[13#~ ,~aЩz1VNIX":{D,eH^dd58t-iI!} 4:q7YR#J Lj52yhQP@<iUPÄ[t[hZYN'mO̡꭪Ǯ78n"5!!xOc[@szzb|oRpMCR0^u^2Ðd5Q$I(#Hٵ<~BF[WÚu}xG1^39Gk, +# mB8S-MC."D* ţ=%eMG F"a=diW\aq()O{uEl=NKqIJ1clKTb ɣGJK)#P@SU˦"Jg]M߶2OX.MV9 ӑC"5)ZF/axFn![( e!N{qx:[7~C|L@ pTxiW|Re&gEH "3 gL'LN2du^,!#E31e6~])0KJN{tH,{nK}.?!:Nk#F(Jh8?ipD-Oeq+1!]_b:A2&bH]h3!c$}?q?Kq xx%6&>~#C_gƁ8?_=%pZ8}Dl'!p ?߾gy|&%TgRaǮpHz֝DH_|q+1'}|˛/5&Er}42쏴mKm@||Dw0y GmZĪe> \\]p8鲤ω IN58\~EəOIE\K`uy R'cJNBe'2S^CM i$հ^H2H4 #fEYMh$gu ![-ODOڡE +("]K<˼ 9aLGZF/PCjÂIaBl1Z}un +{E7XFP4 B %D[Lk4hmкAYB6 9DBk@p@I%hձ'=Du $?aD&Ą8LէRf>Lcg:h fK #B?UO2{tҡDH)b.@k0*}BNbE޲ΘdHƒ;0GBTkLvF@B Es_)jGV,tQ/#)Eȥ("8Vc]K"4 Y9,)~Ncl:-!+I=saGK/o|" [W՚ TZ5ׯzqI*m(̒eO\И"6)%oq],|wu鑶%+'%Ā0O#Mۡ% #HQ5 !U:NsC[Z %gR/Ј"*)2#S>qAs @3AYA`W̸xJQd!]GX:u">t}x*h ֓JUŁǙ<]e^n@0=n־MktҶJfTwIDaDA\T<}5mCnhLsԐ{OVaGIk;("Oa|g 9DXB@ZLӯYm/mC^Z_pͪt~|:r+b(YΐT?T7AX(di^[+GJ5#x+%>g2S fx>sXp>Z!py~{ٷ45?).z2JRxNzsuuӑv EVy߳֔(qN!(9ͶO#ooؼO3zb w?1^}m#_93[NS`>t`F_o_`5z֫? Y~nV/C[f71 #dHN"rO_nR⇙vKxgFysqq|dٰؑ;6oP\{KLxzx˯0·~#X۠mt]L E!{?|B f鮲r u,%˚HE՗Y`QJaێe-7w53%{r8-ʑcHM^ L:3{ahnͼ X[/1(k8@጖+D&lk$oZh.ˌi;RH#2ȑ%F0*Ϡ@J4 K/0Gi%Uc ' ~w<X ("TFII֒Gse9!6"8E# JYmݚhLC"ϵ 1EF#>#Uڶ|r=44C"*z8iYR/syXƑ%YQ3D0P_>JS2P{bZ}& #Wo H2( )yʲPd=|mb-nie^ i \9#‚Ye%ugDekGzxeYj AHZYSgrYGiQy:-vgBҶk)%ݏhFZ8Eۑĺ$_~y晰x~gA9l43\3hv]p I|4%!zQQ1H[yzz4s^f5~K |FJJRH6(!. -$_#ڞ:i\Ri" LE-yԤeF" פq8]+0 4J-\_\zV<2Gi4#B̐SD+C?r%LXciqliD`܆cнڢh"2yt-#c֐&THD{jhv"m2?_z2- e 0J"} ,:03HtHKd>5 &$h~8Q_3N+e1r8Lg jC"?x ݖ#ׯ)_~5[tb7+޿HWo|#W?7W$;Mq>qyyI)qpOL908U8_:;rWj?Ù8fik8Ѝdfm2ᄏf*<~DKWWyZZ3?H?q|rp:{wxG'iP1pUl8#Zux{u3L|77\ֈ'vWQ~svw[m|2 9Tt:~϶cx{bYI28=߯$dIQq,ˀ4a:1?ᗑ]l0eHc4Rd}yQp,O߽ϿG/8Wonݼx:?3?э#hO(ݠ'7[ͯ?'oX_r~x> 4=w=O3!Do^%X8-+4yՊ ^fwtIJXo6ȐP]ݨzQ$i;tD֜'BiėD 3׻?!ZL-Ym7ٚvB:4 /dDOd^]a`FvFwkTt56`^ѮWK Q]m _LQ Gj1LqGhA4=rYn#B:эAPa<0RaV;nH VyiF /a$?qժʰ"~E:rpyOCMXQ)brĪߠ^2dӞX,JI7;l6RW^H)^n(KJV٠qF\cm[v %SK,gՓ?ᴭU H 6-Jo?][KR!KR-E [B)5+YшZE-yS >,hTGXf]GJi@tmz^ ׈XW]oв?]JXR]IafMJs41 #jWclCY)UӶn{&$̲/ԾZ.>beemKٶAGZKJHRȤ)d6\Ut PêABaBi3aY}u(6 4nO,[Sٖ.eQ(jD72yJl/Z1<Ƒ]Ste4qoү^Qu!"v\K9!yq`N#_ '-77Xx?=rOyov#??2w!LW|ݚ8/nH!2݇H۷ 3mzg Gw_|R7^y+ܯ'tg)S%qLcz%a֒n{U"N#ZW)^RĒ-xF-OD<ׄ0z%$] Tĉ\ +R,\' z#BĚҔ"e"H\ʩ=M{סBUݠ%hE U1`VFHc1V)6yr&kZJ563Fr*8B,%`[YU[ZGȅBڷe:ZЋ@h] RT̹( TNm iMO= 9;rXAә~eWI@(9ѭ-ZerOh#bDk窰b)*`tКfsTBȈe_?=Z(rƋ@W@n4NkYGyh/ڙ#!F8</=Ahz9~0*Ԝ#:K2KH(!)/4Q~MFoH-5qV|bGHԨm-]8t#WqJMȅ%Fnnn(#Yʼ0N 0H~4|]uM=s쟞F}m/t˶鸺ytU]zb,l^]POWW7,әŊ+ͷo?PEׯ/ś~+w,$o^r}Χ#kݑpÏ₻w7|_G|t,ǁ~-9|Wկdg}iO\&ő4|5 o޼ϤE>#6Hg5E/~w9_nY8y~xLg4" Ȧ9t|F[Cvp~xt:E*H:R&N oϷ=4\@?FJ'(f?ݼ§i5PAOI! ?xd^W(‹P%D=\CR 0*W[qR@qd?PoEK[_(9\H)^^s~?OokYi=9ֹIF,P ( $$E!F 0H@ r1LpsknwݮʩĮ{^y4Bzbgdl&eωGY?\ohk1t j9`Q"dPc7p!Q8;?w/u /q [&+ R4KiEޢc&,*Y>}\"&3I$Sb- tvHYzAlKċ[UbAwBa^'ʲg{yM +vE(Cp.{T% Ӈ *cKDNgtՖ)YjZ j|9؏%KC!%~)~SU!b9DpST5PM$cX"ʋ$56-9RSc)Ԝe9h/,Þ=u#EJmr#QD+5]y\oK)91"cHHn*1O4HdWPLBT4 \PBBXFxe{,}/% *DŽue!fR` "EVʰi;|3)ٺs/B #<`Y5HUU44cmD9g~s{c$ ['MbrşҔ>DHĚfn)#% (~sAH2n7 JLiOGV-”sҢȦq#`=!+680A ym]Y#㌊Z0eu3gVx"IR%\@Ht(cP#He:v$鉼}C׸ab'xy8rH)Ή+Gn-n=r2l9#ۛWծc3@ūל?O>_\<}W}W C%Yl7\]nq W__7/oroo~3I£:Ev1,wOgc`^m γ4S)x$D[ \[ԦewζƢ5i鹾 qna?å_eIlqu||x fn_R]ozx4Ժa<B=S>bADhb<=zE'2͈,KzH m&zT)u 9*! Kd_p~*P4O+k)1 @yf"!\JW8d' Xy& )DU0bNْWl)ɯ+)>HPRi2H0=!5!J]VZ(e8)"ĸ"(;1Bsy['bm e5)5> k [wTi]ސb|:&Pb>Z#Fw+uߗIs e0%hӖȌӄ%⼧7R 2I!@O6[P[Bᗑ,ei-Xe]" ĂEJm14muY @C@UL;48wDΐj4(X3nf 6:VB bnZ(m|Ǖu]H)BH,!cĈ VKT"O<;d]$n!*F2̧jHR+5BAVi`W"g?emᧉ0N%6T0 qPLݖAJ\ ViA'E+kZM~<ebk.i༿/@L$`TJJDe m td"U`m)i*҂uX>ޕV: `]NQ|rLHqqh-H>uTR!έrZtcQuANyr⽠B.咮 2#.6^mːd4nA ^rȔ0cs;xG,Ù͆p1}7Z݄TmBҗ} I0۞u i$9!C>HLmϱ>3^fy¨զFBcd\F"Զa&qbIPe+ET5 3)Da*牮ʏC1a"@r&Fi-q(ŶbsAXVbLn꒛+?}n|B He 쇁]Cԥ+pF7fvVY4ţdۮ#%:cۖ tmKWRccy?`_^ 0OHxqP[狷Wĸ27/?gx-iۯ2,ç=ׯ_j{64Bi/.Bwxg<|D&=iamt~@~zG#O2Ln./5X!@]_3PM0%+KLM%QMSvYQ !G匐l6W#m,_He<&'QYt9&,|A+Mk"hE\&6(!Ty(̓ v"$V qpޑ7HUXD14ۯB[cF 4#Fg*1:ӉĶ:TJ )1V# "r{J#](+$#bFItd$eYůIjbl ) 7"TIِ|hV-hpG %9KB4 Rh6a5Av >eGKi%T wLJ wK8EtC/>.pmW*!C(V _u/J1NR u1U0 '~64s> eգWy!SEn k?%VY1MWW5C!`$X t=J+3bgT"|D@LD3=IS"RhU,jJOO,Ñk4&'DjFn/K$.؄%*3x Y2!8G A [XB#U!s*0Q u_30nKL9?H qh($-"RA"~%MnV (c1u=.H5.Rrs!/f"nRs9<`f^R,[+%MQn]ʦ{l`#,.#Yv(ݧ{ضn!3gctB5fhm 9gTOll6BS5,'ݐX\9VEPBDR\3 Hm{rmuȚd9xMA4'O{u[fA+քig6PUD0ʔU(4.zO#ͦAhlӢLM$,C \6!N%~??P;2͆'|?Qo{κ曷<~%)(~o7||ϰ$~?D遌_~GBpG0#2 nF-7pԜO'[W_| #_~û&eחlquX9Mg8#0ׯ0Frg P)ͷ:rGy%߿SR 2Ri,lHYd9M2$%r@:O Ɩ,Sm42FOPYl]@[[ Y2 i25U6(ekz>d&+3<9sxI+H=)&斬REg{tfm 1GpszsAg撦mBcZЦ-] u]ֈ5VyD*yČcle{ck˴,h!6.<=u,}y,K)D6-)el_"Dp̒7/Bt$"*S(%Am+ѴR n;²д!B I 2ZPmv1:c [դ"B)ʮGGT:,egds,A 08 B%:+oٔY N"r\uSnelXX'ˁ4X#ӂFi0G-60!܊Yb(gdž,2X )2Hx%]鸩 E^/t}aG[HBCE:@D`L4 #QsΤԅS<U5(%#1vA[e 1GKdU.9T:QPm[ 1.B H:Bʎ$*RNhLޭEHpkAn6D.Hvbt ɼ44DT;*ڶ6kDʾ\jt%H>[1UI%Rd R}hL!jE!5BDj;qd9i,2DL%u߳,4}E\q𮐧p 7WPT!-Rd)p!R ~)D{]b>\_jKΙ3) i `dgU[V*RHeJ=p4Zk*Y3rxCb6xP"#К|<$ƋLJ k Y.:ܽUX%3(Zrh~(uO)*(eb.ee U]|[eTEj9VL3Y灠&rN*.Fߐ 4yuh/RM¯* vqBńDb&S_ok!'V]զF:C!Rr 2 R0ϸan<$Qd*&b+` lE6%U 4»gX̆z+Iqlr6q"L}q\֔AUE @ZdY4րP-G[ {|B-?~87!Zsp!Kn#F)·J+|A+}Ssqc=I~ i]]$lm<↑o O6M˲\_^"sfph-MqJ\oy?W|ÇNUQfG6 ++Qhy\X<~x'u{m8 giBT?bFVļ8wBF+nc9}E# WW7mtZӈ[K~ fo9=Yo?'awuՆ/_r8H8 cuဏm4%J1>98a TU[H/$8gρ]Ӑb&ל1D mɈU27CXEY[-sTBnHBq;u!Wy:6LBKڋөP|)i"":Zr$-+yR[yn 'ڦDžp3yIuKM0%zALp*H<+e,FT wJ(D%YH"Ln,P 1{ڋ+xFR\B01L3R:+TKLݥ$DdG|z33k,u8Pxܓ(n&ܸd?B$Ȃu>a%DdYAݵeEĄddsFP.F~GgRIёC(&u$ιuE&ܵ)ѐ"s} ~L5YO'd$ ŝ`,$e2W &w]ti(jB0M_PҺRf8Ngx;rSh:8n) "Ԗ=Th%^܌45{! %K* Hem3 TkT֠E2DgbXZBS e+r S5ڰ2Z[ZS71Ȝ Ms(!X|`syQ\ t%25BIj󑦻 'O eYl uj/ٲ@#!#~h"x(R, H "R{4q:_b HqE !4+b ;xt!i2,:+ќR@ Ӟlo?_:0)%Bkb)iK*݇,%;G QRc=n$XHC)],VЙHDpG cAMڶbtKmZ>wnbٌ 9dݑZU$ u0tY"WBFr,ӕuL$%Df 3(3-X_!D- t(ڮQvH*IgjM:;RB(=Kpԛ+0´-R(l#4H2vW5l!>ׅ,qX%Tlu@䄩 ` $tb{ O7 7tyg'pVU! +M7 #URMyFGQއ/޼db "|O9i^_+iZ/a Grl4LJV=#a sޗё0B q/.> glx 1Uz^Ֆל~5f$OwnolUFێ߽oؼbC^4|n3y_ͬ8,3o4!Rp"zW|/O gz }۱_F,NV"e./.y: &./9}ӒH]xt v#mSs9Dmǔ#斏幄bqELT0ZP,#LX"n:ENMC\b5l[1-0T-F(Rv` )$hSC7R5hKe[TgX m n[1"3mVG$%4햴Aбl{bCh˺H0` MöVK,#xkꆰBv,+NQ.m4#""3]ݑeYM"+J4Y2%6-:P[>ei%=!:e!/k,i:)Q):I hH(ߜp~&XH(I"Ge: >alB1nVMGŔywՓLE*\ L$zO?RmZR6 1fLU#$n< 1(-@5RL6dmho߰[tBV 5~ɓbFwHZd!Ȁ[[PC(T|(5 XFq72. )b&?uL倜3'EŞ[52\BYm)R )%cDSqF!H[2Q|ZȘH!ۀw,;W#r Ӱ݊]wJ`&²2hkH\tAxϖ"¼$1e(J|6ۮ@uBeDw=1TՖ~JE̸?Tnә(4Iq! yMӣD$~lm$n.p[Uձ7oHSU-sx:VOyE+gR,DmjLUaΖ[ MKNuCYtF iDז) _:^FF9p\at+Xîp}yV,9jӑO?q,,|3rtI$5_w\ް #Wׯ?"2|gVK\|c9 wܼzIW²?@.=汸\i0%!-ro_Pi 3OLt.wO_}2aܼ?pfW=aBَU*_fvqYx%%_凟A&pw-N8Qscx67 ݁'xb\VXo/ۛ-n]xؽy?Ei9M7CIE$s[=W- >O(Cwǟ߳k{͎r 4s-ȋ/> VLߒ'_zN}!K 0]5pi;yF挪-ax: o5aYݰ,g[IѴuRdҐx|`$f"]Y"evEŌʹSƭJt: [i{ikuEdq6 auy"%#O*yLMċ̦2K !5ɭ$ >ed<CUBB'Yd}IXbضrLuDGPY7L n*RE&Th@&%2:&SrJ8<=R"!L'H穼ZSowEA5=D+Mm5$υy!u1u5ive!ą2wTgGKyzK4MY9qH2RBT&u!!\0`Œ#9B7P  D*+2#Ds52X5p%۶׷}PH<}w(݂ijI1%i¶mծ $R>U95D9L]ImU-+5|`Ç~^q-g J*!Vd0  ~0]#1{% +y!XeMŶ yaAH]g%^ R u9 JJg3B<}&B׭T:| ,3pMRH1((jUyg.I<%HIZjB~s2׃Ta8QdPΡ%Lh A_oeL48ײ {yaP\ IT$qY#"J-<ӵ[4u;)-$akF ](QIR1- u,ϮmURH#0%)R()irIhik?<@ڒ感θ+OgQ}KɅ,H@)xCP` )5DH Ӭ !5qmO 4ʵm~&M, l ̵&#Ye YYLY(RɞpzBn쾏m[|)YԨTHi8<>ЯvB\FR8c& MFB62v/и9m#Z)d.iAj c Bjd!/'lBB=\exiV2p>0Ρ!F !%[UbJL JDqzpfs cAxX_Kf yur~BK9,Gj s]21G51+D#K^H/5Prs )0<|`VkTAS`RF | dA}"H ){¾ d̄Dfe?niANlYm iOҒ5mHDtâ52=~)x?1uvUS]mѢ0/틗nKNX ]Co0N\ovb?MALiFZ_<~E B.ڎ`ٳ{q+r.,٣\\s ůhfWRLe}t R)Ҫ{?)~t%~z~Fg -j>}w f80Xoٗ_?! v^}~{R#ؾq,w7x?@#MgY;AnY{~0n޽a9_چԖiDnz,i^xÉoQK"/ xZx_/Yկ5ӧ;it>W/30{q4M|o9^8RaY<^NBѮzNO1ItHvW[~{ 4aW=&nGno9Lst:㯿0.yݷn%N3j-7l7[c@JrR pa/Z,:!%" 'ehWz u9"C$UCnf?Ws#]O=p]V$c)?)2ZZr3#ئXBsF(GwJ b(c=ò4kle6 jd K8HKOQоxAxt3Fiu=Bg-!0 Ȃ RR H) Hs@v$i%V VԛZsmO ՛ i `e^pF`٢hRd nw!BAB`v GN3*t՚mW|/p!c@+A ) ڵ'.g(Z:Q!`38-5PY+P71yqkSOIBZF"8>=q 3Z[8& |^ZTE\.\-7~r"5~zw] )jہP Xb#.3mP7S8a\t81UԦzkv'bhe[JyX:mRdg-H1ŋZhxD+P H>}ba&wP >xeA ARzqUH`4zoIHx_ Dѡsa3Mވ:H1.%F2XX ~$Y*X8Lh!@׬N͙ BeB*Xcj h 2Mo8~$ozxXHӭ %ThiwqBRPKêɳGԆ2qi:"-2+hF"rDkK.Xֲ@A_ZxF-,ȪoQ1smѶE O]uEc@8HiO1+髩;b×y)lwoHխiY ue Y&ݰi $T<%0R)hF%>#/*EҲP`GJ8gvcj:5( Jh*- K1`}~wD%1[5bO v}l:'kI"vT@b-n L $.>6W( lȗ"(DU)% ,=L,ikE&AN0b5^J,Ȯeysycf-duYt6G|FddX+wCHRqD*nE6ةj-R=fX='VT%+qHp>w\:D*(M1XEDOv^LhૻgfQk )ky[3#BL9PJf32V7;ׯgc,۫-2ݫ[ZiqmCݰ_k@0JyO L >|vi]9C Áyz_zEFpp &6}o<}Ƕ o[>z jr}>pugZ=_+x&Ljv-eDL {RO/#?pw:O9Ify ?6؛G62{d|4l8|Ck 0<1LӴ\ƑOt-J%.o޽e:O_^\a@kÇ\ˡ2Wf/ͻ#)A<ܾ}ôiږ%b{Չ58 $Yi~p ,3?wm0-8i 2(Ec`n1-*'~4-kr-R jVrldJخEB:_@dpni„ms[JYe:"b:XBt3,#!z BLSʎȬ:&rʘ%D<*QaQJ@)d-RzrEoG!RQ:k)3j7XFB8c-B:,I##%YfXoVrC'a]9TH%0qĬWX:ud:1kD [Ԯqǀ1ʈ#a8SB69d2s²)D@ -_.T"DFJYY|8yKDSiGA䌐"RCf٦baپ~Mkz4 jzd<^N7FDt ħ T"ZY{-\/V9rTF홆gkȪAvχH4qRL `9LF+ŀ,"$ (%)YuILWTn1M % ).BZ3MUiʼn 1A!F!³8@D PֆFui̙T2q!j/&2㇩v&J#l ]O%eW !0{q(xM.K ?Kİgޒ3^ڗ!fD,diɗAMހ t#$# 3E&jfwmG+^_* !HI#i,#F~R%zkGDD ZT^h[-ZY5ę5B%2C5] (RG֔p$Gok5#PljZT$)HCt*kiF7=qkϞ%Jh!!bb#E H9;G*ybj2Lxв3 ޾&*reX7~{֌~_qq:Φ 2?GsI"NW/x< |zJV^~qOLޢ5<Ĕ}Þ3?8גKŐAX %  atOYwo9#jBr:c@LHq+R4bZ&h,tyb Z^&vc5s_lBcLB3't1iLah7%}[9ct@!9 4x·z{5B[\8!vSP] Iax:B2LÀ-1/@eFJk\_1/v#RAZXF ?-Lg!%O\Fئ]I,Js {La!E+mI3_ Z7 1f \Rr؞y8( Ro}֒f}.1'T{Ĭ@ #zWLӈ|( rHr>WVЬ:y^0\#@9V5W4%,(1 J)D(pka ~Y 'rN~MIT zaZ<ӬmzV!hCICQ u(eq(m)FlӢU Ā E r 4MTϏkʵ-)ThM O^2)ՎB$ 9eOjZN!u*0eEt]3B?wJ`1MnF?)1no{,ِˌ1Ƭ?ǻR,#vv ^Jg%D2UDlM۳,]E8aHK¶]hC$sQ!fxz/s!]oa"%s)9(,gk QHe:TX2%W*Q:J)4qiVkL"njP 5K-S@:Lk)iDdC/X%t^EN@Rn;5׶q g-dm0 ? ɲEB}fFЀXNqJcĺs,(!p|vt0dtr/8mBVįk"M`l[7JtBRcB䂲b"DI  `%LÀ\a 9OmBBH3n}E*pDL\Mu[Za5#w`;-2Jʑ^?L3"׍1FRF肶[UhP#nUT4 ~4RPb-1C!HRL'ޡ5G(0 5fNvB?0?-Q*,3q ř[ a׻ 3`3i Kdw˼i("H#\UWf.HRjΧG[_+́f!AuйZ,Bo^rYd1-^]D3e_08imK9a"/m7nz@V644W+^|3og_~ȲxlV[GnQI0W[7 #w|a ,y{"%qYF\3݊0x>?ro[g%z?<W'ŅOwhcsͫ[%3onn?|:<03^ ƴf?/p%oInoo/? wx|zGX2B?}F"p8pç0\)RbնjB)gqD= xz/6W|>xՖpbYx>7K~뗷ZcAn9<=RD!¦9cUA]Hf%2m+_[JD)he-0%a4r§5cjC͠SH6H(q¶W(i #FZ-r xY=? qSUhKxO {U؁00BA ("3?~nMG(8UiֆVkn2A, ڭJÂq Dzm(uJP !V%`"J00.i#]#Fk IɒHAe8#P"$iT 2MT.8OkPa=:))YAobɘTNnsk$Z=wvDu$EFȉD2*7?"B>P~_~@iFHyjt|$\S]V31,ޓK&-zbY4mij{/"a#|@U)iSd^J9ϛiӯ76f4#8lmVv}2qFV}Lp r ]-!B |jI7?> wšqBD9l%{?ׯ_UR<x5%ekp7QQoy>#e"3\f_c߿gG}W-iwx!. ݑϴxڶf~It)RmY6=mfX_eW_୫b#ǻ^p|?k[3_&XiTu#ǭO4qW_ QPΒD!eE%$ 놀VgNJ%T-!EdHsun{q@Ʊ>"B r& G'ǀҡm:v5Yi{O.~C.@ &BoH1#kh ~A"()M5VHc"3 5Y#v"X*/T"-yZqyY)"!Pf2cU}/7-%Ծy"ѡ K A8e]_!L3%,*"T[V,-H1%+$fte1P5@! %^͊,ɳOR5T9BF7T4I aY*]YCukjgr 9"xY%(mA5dY7YG|1Dt*ȘPpz|!2Yc)`9]PD CDIM"%J&I!=[EiBZon^"X#8dӐ3EH >L*!Ĭ)sDۮ+[@!bm1Mu55[, /a Jei:B1{Tnڽ tzDdxE.(͊T@jL/=}b/ 9fqmq>W_2L#t[zR+Xbt칹aO4wl[1,)%z@mXơ"ħLL)!vO q&lWk`|>q 6/nKLe tL灟7E:jz$V7WAr}x}wciXϟ?ӵ=c+>~T{㚆vmPZ㧹w^z%EV4񓯿pxal^|֢oZ,'~۶#,1|"E;m*ș@9~WuX˔_H҃eu%xԎDIH)"{T ZF0az+i(V赬K׬lss3˪KAB&=$D? }=[-DHɛ6 wvMKcLӈcZsa5B9J0 #9K\PDKP$Yz90If:$?fGBXc&3zLԨZ0gJZ6,"׃7/%.Dz}S#ӡ^@!-5D?R HiEJ)JJFL֭(>XC &L-?`1'2֭\|,xJ^ΐjL/Ynuc ENEUx1Mk ]QJFh2Og㰛-)D@&,W,=uni;yur\Xk6ÑjEb%Xj.48Vϋ,hiэA[Ckz>ߒS߽@ic +h 0͸T} !%G2t%~Ĵa !fRk4 fE)<9okH*f-!-sGRKLOdepTٖ8rW B#Cf%DNa@"ʅF*=.(i\T_QҝmHeYK9?N.)=y0m^m)T߶''_{T8CYbN?3~8}ޗcŧ+KEv5<!5F'e1^M(a:1 us P=k2z~-q`81W+޾zx<1 #^cd<={V.JJ,O˄Ϯs`> U2HkCm9-G<E@mN3u-7Jw8,S\F~͛kib◅a黎qjO g;3}Ӳ]qF^\#ĵ|&'H4ᇅ/w3FJJڞN^u~&~ճkW;KfEw7/_?'f ӨF1j+b4{̺x{̅:Vt>3țzO?s:(={֕&{3mr<zcuM=nn'H*0b<‘D5 HMGvk.t"I[=yט26=N'}}0<'+Fmeɓ@6-Z;qO{A6+Yy1 gnMIhvAa2(n=)-kR<0R3>#M<2S=õ=FHG91]E7ʢ Z3cڅ)o,9x+C.PRaHU5-ˌ.u1 D$JwH ?%K4 D"jNkm1Fr#J=p8fnFU:H"XF]>JL&q$QRĐ2WkDӒe%4Mt|%"Z,qMKkz"c^0'46;vru+j4-B RB<:[; J/Ym0eYBkC OSGk~ 2p4V(vZlw 5dBzITƢA²U=meOY Ӵ-Z* %Pj]>`+j*9r%`^m@Տ㰀 hD-W\ g<)#D?TD_JKɒ9"<.eMRn BTD(B ʕV$uGυUgˀYB- Iu6]RFhYK#_D)i\.{Riby3>] x^N5 -+(g(9#@Z&<"A_&mmV*ix t(ʖfd!C!'U_#E\$>DQ`4e5rvCI"sF{1" PFӭ^T.P&{WFXF$)֘*F[5mIQUn椠^L}gg&HThH Zj 3̧' rX w'P9f#ȠvH#TQZ#*b\z9 %zJ+'mFڭab !$D\hV; i 9%sPΒN`:K8oX?}*6 (@ ׮ᄦ:yt_1bR qVq!-wEw(TJrpqR[jCP7qpRUf\ǙqB4zf|8Xc>+>޲8N':ޱ}7Wo~`S+~_s_1]6.K o%q`|<к~Ou8Cbz(@)B̸/{֮m9ƙ040M2jO~4Ϝ'V4}#՚W߾? 'eM){v4MToqF/e/3_ 7?p)0+R<>rس O{<Oӄ)ݴcAͫWRV2T[ǧ=Ϯ_`adT yYF$y/Fsn e~i=Η"6iL#EHdZ(lw=<n@(\gv4J U~Ĺv!x9,k,ӷ|2HڶQҡDfYfJQQI F6?=h+s"LZPl;)#!%Qd/7;-c43<>cq]%m†jgN!}`D?J%PEW lxQ#HFGp>0Vr8Ӵ}ͅ 3q$qy!@ӡF[7!^b: EIyٿ/448u=*鵤@AR LG~Ͳq$9T3RA`ڎ,*%V ZQq)Q1Mtx]\PRVYe/t)/ݒT0Q7BT/@B=HFz,#.|GRiCeC-9b΄qµ+L"g2i&TPREYAɠ#8]Lqtc8;lSoV[@inZ;nmɉHb<[#."$."fݶiF+4< zRW[׮\_ơEĄQ"tB j!řv$Iv ^F2TLd2BlS/ I %%;#F5g\"i@ ?\=Gj/un1bȅGj!KT.`j<3 Ye`jO#JWBʴ0WCH(V ˶粽:` UWa"xumdҮ:HLREΐc¬:T?Vh QJR!@&+A-4*XC(I+g_N?J"B$seEYM%CoM-ʷ6;$zi^%PGi0 zձϴu_յ#4\j?C@Y_!FdL=qLI`Ea GbϿy<X6YC4!xRlnO-DR%ɧP5 aL`^,g] Y0I`ZWE"2NHUŷ>Kt+UBy+\o6x9zz5~k75y?ל'>~וs ݖ?7~ BpP Ӊ9!p+-1sfٖx1'>֚541_niUskݎ#{޼yuϗ/작e'r}U's?@7ſnsXRKBja-V4=o. K k(RZzC.sݖ(K>-$ptDhp/v$Rth Uf8D ߽;z9-ª dF5j!D "Ȋ(=͎ c$2yy$%v4eq9cAPmy͊׬tֵuO8$Q(da4f 43u(b\* b@É0/jhL+U /&@IEB8Ɖ_SV$BmVOm E<('k/yAIn* ۼrfCjm:/IMC& SK" )#/tK,PR'r15Bc]k,OrF7rk: UQxrqE(EG_P9˴땔֠*L -\(*W C֪(m_4jWKR01<~EUB55fԴ=J+b\Pax> Xe9ԩPŃI1֞ 91Q&sېƑZ-#6b2ejGEzy>E~+HFdd(KHe|:ӵWhFeH*a}A* 8#iA74p}?ey:"Bێ@ZCH$!,8Dꕱa9CЩ&2Wg}L)Z Ex#"xȞ,$HS0S3"%it6hW攰J@,|~ឫcxaJ+!5s@wuCBA )W[|}gmHQxt[m@YHI"tLG,[DHA @Ph)h4Ҷ@@(o UH"6YBϠG Ŋ!Rj Dj !VQM #C>hMY*(b<{bQPm:RLH158qM& jÂ)39kdca˙xc]r c;-m%B a/g2%RĶkHH41}KnX w )?ΣǹGj㑯D*'>~}q洌H ՝K?( fsMnv<<=ͼqϯGDzW;x~y϶;>oaw1Yt}g4rxpw}OaxOZzYƙhpF޾z}'5Ӟq c,g+qoq?{yW^1O_!\~C=Ն,AI_>{nnnUOÉ/&]|S0QK# K5f7}+s w+WA Qn d`¨R'W)WjR <"=DHY.Pe%"X ^ج&Pew%#5U4"D-Qj*;.{" B%t`9=Ҭs5tQbEL-*ǟ֢}ͫWzjArZ*v> rmA jKN4gPE n#*UHUC(S®"*I?t튘#~:K¶WBDǵ=qqhEȂ""}A\*GˌLh jTPq QaWhۣ\Gz.mCe)gO&1N \-a.S34լ^uH!^Dc]jAÌny8EA#-|B˄ݸ?mMҔƐ,P7hIRt?>D ERxf$b)ȜÄH 2t q d( E?#vvJ+-i ] Y+|ȘGQD[q%)ԸvMSsJiDDhE{\!].1%|"(R bڎVgOZՍspH?1g<{xϰtWkڦyfw|8Twؼa8` yv,UQR6+Rq"po_]9~߱(gڛkWl+^;n|b}s5__X"Վ^sFn޾qb ; 1 H^ӯW|k-k}aug ~Y6kN3;LDcE|p@9V/_rP! 0nV|8<oGsbkaf6;R1O`KJ)tblK̉n}*2NJEy(!x4)uӐh)?ftIH-IUy8>_º'c4N 9=qϔqF7gD)J@c(>#uԵxN%a>Usq4A #k)RV3sn]Y)+38.*NUˆw~wKYq8Dry&#`) LK-X&YLXRL) TEOGo4E♧'%eĈk RуxԤa! w%0|kH55i>3뷵 @ Z5R{x"'ϋj<Us1mna:Qu0ܯ֦U0&lw۞jtB;TBס" YOQѣ]HQHmʢ:[o97~l;V".gp4Ԫg~@}IzЪd:QJ3sc~>RbFu䒰R"W=t!!!8O.yجԚzB&ឤ!eJA[0℡hÒ s(z[v3񌔊mhEDslCjCcjv]ja)Hq Ֆ<"GBŋa(%E!PhVM5Jhb,Ur: LaTNi󙇻l9~D(%XiUQ!!Nj]Gpm0 H)2P;\]ᇁtF |L,i H#XC#S A68g*QmYe5i()r>=^9ե"5k-Sk'h> ~Y#]BVksK))9GODEQN mAE8==nY rkD=|hTwdrJ4m1i )y~K0/SWK,B$.L..O]oX@&k5 ۗ5襛WRdཧ́ u n?iY=?-?1˄5 ?G?_ӁGꊫ7_o=gGv+4y|a:3fos~돌G^;0q89/7=㑭lywp<#Ȩ"g|:@ (1rf&}K\|Mh27+i0ڐbb]33oCQxs{_²?mlӄ3k- o4~ZhQR ,]Ӳڮcaji8fwx:䐈!2sTI-AZ8֛+e!kW +ሲѤtAl^KLHA4 t||KۯҰ"3ϑdd~_&/g\8߂<1 Tm5"U:X{> Qe44MOQ @c%Z+×[L\V /3ݶx4ՂxՆHB[AgZ$RvVZSG[3_gخEìa{~_1-OdТbT4mV3,3>7?1{BQC5S<:R%Pn%adD_A=x?}q3@ۮҁ4hP6XBZ]-+!%ȼ?zƫL #0Ϩ%3*1S/4a8%Lcu<<^]Un}*qA+UϔU(:C$ IQ5RRK4#h]IlFX(y:b]E1}E!Jm~MW)A/_dHܒºBB)2gZ2h֜\}Qt-AL'֛-4XQUg)52%¥4άmv.DAv-qZ~!&_kRc`9! GWB ɹ fΈ0-_tiΏRpeP@Hq$/jZ=g VޙPÂLm"4nG~eWwXW?$1Q.42i[KY(X4e^RBD.[j!S/4g:)z % 9-LOt}W{Rd ̇34to_bl(!Q~"@{EIL/~!B\FRJ*#R2iZYytXaJ :4<~S}jTD " HH$ !$Z"!h@5 EWu:{6N3k U7k9#eDYDzD,u VڹKY9ӹ›KL.0^ umPr|@y#*9x0EΡ@S)DF=!z?C>֠(]6>ֹi7Aru,q-Ț2CڶuQ^N䑮ݒqQ路 F#lvա$VڮRoԂGq8v˦ r(#&zC4 %",1!ӈ@ Rp4MW%%R;E_4d*!iYb@؞UT+=9R!ceO>ٽI X3)"bb{g+JI4MR2Ox* nø,fA 2/Q(\1Hx/׻+ NoR;xDߴdem:ⴐƕۗ>xBum귤U0' B͞\l S|`?aAXCZ/_p\&_!px抟;͞6݆O_ ,D}엿i w y_w,Ŗ7P:TpB0)k`&"i1ᗕktbyI֒<̏[GmIg &bZ\H)GJdja#%Vu," K 5<7-+-TדFbJ\0RUlv(k3Fd\g<H%XaIĒC J_K)Ѻ0Ra6bN`w,#M̂RDjͲ,; n{>лKrRLQB݋WĬtrPZOP `GDHi&F8O)l3'[E DX⇁uxUG Aδ-PB-eNިDPG8Mc65'cQE[dI8t[3rNvi5Z9Ohch>0VdlP֔@gVLd0gRlzKBcF753k*ld~7D0yHTx<4~mYFR1e5B yDRDfTT@9{(ZB"ʼn J5(Yk hm'HsP!"Z"%QUmlD d| MKQoDxkVG"ԗxDJşGnQvK(XDwu㔼[)eԁ힐LLyIlAozH+> OGbQX!X(@nJ5z$.4 'v-AUԐ ۃEn;kЪ%#EZXUe>lGW:t/k|m QHd0rEgnTi0/lO'D,4{b^eY|ٸֱY ^$8!aZkǑb$6 N*Uhچ4n޼(û0}qQYq?5e<8i諎)gg7?{qY֕-imwaZ̦QB1G^~LJ'ηH¾ѴnwI:^_|xgݳ_!wH%_R}N[qbk 6\7%W=gL%g~xw[$<>O'abfq_ilK#EI4R 0`|v5~#H*(O?`\f1Ѧmtw|-_|GQP_ppϫgOy5OyE % DXV޹FԔf/ k Ed( #4uy.JڮGϑmE|D[3Ś8[3ӑIiBbnѢ$:.~_),ݶ{7;|)5ZVKVSVU:Js]#%A໿3n{A w(:N 8NJI%R||AJ, oYӐs4]*/ 64s{bYcD+G:BX|\+4Fo$Wj(|ZJdiv[ʚlcK|<HtmroNaݾMu3MG Qn#2u)χk ݖX {R*n^VTaٓ2$X$kv!zA>_21sVlߣmum{U 9UXWc5>gRΑssAXM=ƙz3!VjJ -^B"Dc5-EiR 4$dMKm9.̇GR(1◙R Bz7D0'ZDqt=1flbpH)-Uߋ- mZu!)&4 r/DkrLJ#Q5h*4 $>7rBWg{HYWO5{g/E^WDI覣m"2{"zRu,(CꥵK EHȘ!ۺ0Bt}ZS :9DhE1@gX(͢(j(BH4IP5^,u"QpW9?nzX+U#wq]K -JZf?s:HㄬEe PՀ]RBAx&Āq0`\mn1 2A$@قi_"G 4}[cJO#%|w -T/?4L2i;; L Oɾ<'7-?|;6 ^~[xkJy<>r+'oyͷ 8,#Wo_s|:3(y:*Z$uXwF:c\;>GOR+O#I4l52} 4?=iq4M?l n.. ܼy9t黎cEsn./yCE[E< @,lS5|5yXXe! ؛z1 #/7$ &M+*ěW⧹RW/_t8?m44ݾ@@);rt]CB +mf/ (Zچ1NX4 kD TBRTGVd_ YF8-˄ɥq]]gk4D5 *gµH)YW##HL!-D_Rb݃TKC5gT:Z<=|Y*-j{E-OYTH㞧/FO't$hc\H" S`]:bE9GXa[4yrXx5?}b/ kZ{ѣdv-> ܶec3l9y[N +4o^rx'_}G0 \8yy-'._$pWL*bW]|[ʲy}ycb<Mr70Rq`wu|Ɛ![tr٢7 ӁniQ^~qغp꞉vU^ ?*0x*Ն+SW-XͼmPD B)#Pж%NoQZ Ԏlh_]Wa7l;_RX'1@H2>I$,O I)vipmex"H>#}sͺ}\]]˯X54=1J1<(>N %e;Ok*JיIi|β։0$ZP=&UC B_gሠA,QD^sl.9(=RP_!D< 4=RjXJw=˺ m.e͎i=Ƶ~#Oĵ1f$8da]*V.k#o/! K&x>4=R2 J/ i(m1FAd ~~YʺTTI%Ǥ!Q)Vo82eYP1H%Q)8P$~! qZɣP5L;#Jȁb55 ZͰs\FX]M##-P݆,%b9"(cZhv)#>S*vES7#2+kdɁu4C$~(QBagp&0x(ԢQ '2_8ZcsZŜMߣŏg(覭X8]͵QBqA=yv4"IQH9#Og\>a8M"qS~!6!bݨ}R'ګ7O=)WH, [\߃)!u#X3HQ >xҘEiSM> Kِ9a۶6E6_sEM*R+ETAY 9]oAbB(>"PɆE$)`-,H ,M69)%ZۑtOwdh9>[X5 9T~7Qn8b̕"30wQ9◅ր(̇{iPT<"4jUTa.P@ńcLgh E)wt@KH>yG_s+dz7#Yp8pgꚇ btZJ[a0Z1,3b}ቛ%0?]Ӊ2~Iؿ ւ(Sl;^sZ{b!ǧ'N#o޼خew}Ӈ[zmzT[dJexڱ\Gk {LXg*#g:ۓ?3kc#o?u^96-C|m[8 웞4`4}ǏDiچۧ6 ~ WVq~vy0/zN3j%~o;%xqfiaiz`' m4tf8=;Am B TRXD\2k&nHR5m_ўR/iBKMZdxGS i/.(*dɬahG!Y i)ݾ\QYd"gYo?/4x?QW$)BDx Y #+=hG fw_ SF KBkITɰ"-Mt-2` ,Zfr9E(n1͆( /OUDLX-I!GTH'kw$4<]G )xa/?bZ撜"Bd(ӡ D19Qt-") "FIpqL C5Gd Lבb"kMZ) X@ejе#)LiLSQJ 0k& j{A]hGHCgxT2yeQ+B$eQ< ĹU46)RadAeAN 9,*濑6F"EF:XV3e:r#q (ՒuA!9 ] ;\F!s5nb:TUmgY6;ȒTI`4q 9haAbP \|J;rwTErX3%a06캀0(ߢ-B:eŚ2qȘYnW=JYm(a@5g^"s!_1NQFB5PeZo"ZwU;T:ZN<)bv7KTi{,pbGL])5%Miz4Jh<~XӂC BkHUy0gi>\ Y, 툡7gOưN MSӎu]iPx2{&5$:2q8a{yӇ{:yŧ3#,/9oGX~˴T{rͼDL*>;mcG:8"n74EHH kP#23?_q˗=??<ٗZCE8#/o8uB@a=XM{NHh5LO>y7Wc\p㸜Q䔸xqMXVs,#/>yO4]]N3Zk3? "R+E* ]G3 'Ì0>4ٰ U@xDlHMƶ,ˑ'Pua0cfܐ E.(א$%mѺED(kU>WUE5z~`|$rݷd! g'r`?-[6L qXOl6=vaꝌ. tj %kT)GCRMhmQ"saWT@"JrUV+E%$@7RNs)U  *sqKaR x?R1q O#K($vg._ޱgI$ij3i{~mPR׸%Q }n4~z4m)JњZ^B:/R ʒ@*F׍P"3nҕ 2q1} )/hAfezP)#_MpGM-xK!R K4,0%ȫH&B )U}j5|Fn)a`:h)|JYvoLT-ꍂ,Ni"E20H yFJM#a8A-Nq²0ݣ, %{ =F &QpldheIE!3k!Ir" [4II~-qi+JeE0,X(h. -y5!G>btC 'JՑduA,\ܳSF0x;$T)HqFDndxn,y>[JH$I(XWDnOthY'Țǁ_Al023(4! i{~/ʾn TrHڢfY]-YU[I#>GyAY&w _vH"mm)#%sm^ ےjO5w$)YҌ*,|v-|!1"IlE"TE MAݏU[J^0NA6[%2ir8bcwu=~pYaTIM#v$mi6WM"Kw%($1[}u l RX(QBh#ՆG:PrpJcu >d z"eH9̔:<js*:{_Id+$BQs{_ BH%0޳ݾEY$YK!pF7Hy" MnA#BH'\hXytp Ìl7(%aO/y5W&Aa+ ZҴ3计 4A)upu?>m#eY K A:/|fv1c8 %<-#q/9g9EO8Xj _ .o^ls~0xaO^ycFhlOԛ,ۖgVc֫)o=<<ꔔR4+.mf';Xb+`x:@RPHQx\)vYјݶso~~]Rû7?|{";reljt9{$5)P/ 'Ϥ'k3ʸqxiFp89?|< ח|;Պvqsy/nx-JT^q`*㙰޿ciLF30}dDmU=iiچ͚< CBIs!lIBpسq ͳ+>>>p{y[]Ƕ]Sb{U}|=+WŧÁ}k.n9=`yfuup\oVq~|dwy{6H>0t]g9I.5+BSפˤ(Rm vѓ5i@usKA2X1$!Xmh;H$iX]T~K4s>L!9r|VeRxRaJ-ƀ %59 ͆5t­/I~&TL牸$ആ000u`dAq3*ct>ĸU^i[GIDH04Xq8_a&@H$tm!2=8@MR:D<|~`/1t g#SXf>?`,Jb5 @HUgDWP*BXR/)8RqfDnZd?# )kBObR'ImwfB1=sH:"+qi5]7R5-aai,_8OB`4YHƱćkgdDi"yu C)2ViB+ w+*m')3ǎy\pB3v7ѿvG ic5ϾÛ\ibb[?iDJnJٮօ vwTy}t82<?#ϥd:!eR_ӆX[<їKiLHooO+VϯG]G]7|xe J=ݹ6|&_&Od%qY964-HWxg޳^1:331E_x+aD%|/iuWCz?C+ݙKBӌv&H?L|ݖUN:4pH5UùXW=2=~b#IJeb{?`f{u|:=y@O4%zȥs$ƈ'qN-U?giw+vL~^P(|Br9|˯H2 MR0uJi Rtݙ| R f")]z脋fRbT,·j,Ն<Z4S7uC솔UAUVKD7` V(#Cl etQE*Z6 E"DL%+9,th>9XFH8V х26zR D5s*SEc-P,O",b.F9e;eP`bʴab5 JdbeȏGjtGf{AB1Nx5g!SlF-hH>RCP.1ِ󈈚Tg]!sR~]`D J2%J`xIl7 IKD2a.ϧЊ{B= 1JW+n˸CYIN:&D"DJA!BmRĥ`,$(\0 QL[ <(-QJb%#JNOc4sWxZ^XkL`iŜ3r)ӄ 'Y<(LGIv\McA*! *Wa;`U&g a4YfX'#De@;GS5eb>$KJL,ʻj01|͖4ђq(^>ba b(JgX$|(%yU(cJc{O,[ˤTdd4UU3V5a|%Ff+\ݯ~ߏR h Jئ"ͧr,267&'boGusNH]TiI*̓!wg҈QFsgjiR=OO3Ͽ]/5){?S]i"ǹ9N=<.%/d_6-V'0i*4SBȂUlMfH%Rbz&ZʂU Q@ R6x{ A B,YHS"ĉv5R:rBǙ'g{qh IP~bB/SV+k 9KUJ|DXZ]>O@{F$13'vRڔvǙ*b LB"4'lSP٪P(<v?KM/1,,iw JHbua>Eښ4tiVǞZ;?^?gK\q #_A9sy^13WܝȔmd%ٶ+b'͊ċt=?y%o~kv7WL`usɹ!&aF8jᑼP1#yb<*'>}ڬrw՟ )!*|!#Y$߾xdꑳ5R=ns[ba=RR(+/qURmXn28Ӻ"RU'=0"#QvCם"B$ VBSq]VuCeB#-3n"vg8a$ET 5U $ يqJ;rʜդh]#D"ע5ʔe8!c8H֚J91¢EdTC?DDHYZY"DI}D.*r5LJ;zMGcŗ,i\})dU!D?0-6 /B Rb"Pp\qTw"|TuTH'y;%5oiQ-kh>=Z m9K<1Ɂ!a;Bk,R[eFkƂ ƹd%ON? LD84^3eD jW1-`4dң?w)gUy"DA0k*0sDL#Ѓ 鞋/_!.E4 2c9lS![ l*1]a*O `F\Z:5,I瀟NKT-nsE'Ymo!.E+E=! ? QQ qjb\Ue d8B$hL{A8~Dc[ԛJ= "cWkGw'Ͽ"qM,2"üxFDjQp,92Oefċ#ͪa'DJ,ޓ}dݮXB\ʔ{f /RppO[7,iqo?mIJfqz}ͷp?r'v)ptKAߍ}jղf Z:<8ݵ1{W8ymKhݧ;2LjfLJ;Kp>D./xiZxlO{ǐ"wwX__r8Y#JI6ܽ}OeXn!s 5>~`׬P/.o|:7S&^zI^dSs2{,whc8=" 9Nb`-X?qqs}w}GۮӌHq|2DVi7f.za0PӶ$<^hkH#Jn %nXHigwC[mMC;ZU1+OmHӞWhY4E(m'O}yBtBUtfnYq%aS)b{OhN*2M4F!*K4%mu0F<͈T͋~,**2ư`*KDxLMʆiXoe.&ג-< 2)J;T(E9b*&2q T(&\q-Fj,BrH[|0$KNDS!3;j VEPVk| #>qi UFi%2r8'0ZJ7gLO2S3iAFXwuI|G#I= XfMtg\Ղ%>4煔%{+1E&XS=2bCT$Y&5<fB<PRn$ ݞ( ks)GP2aZYnqz3V|8<]+LMHEA`:0׻ydSag`KsN=qYB"hK OG2Fe8W.y>,$YK6=BKL]AH,CT>=Qݾ"-gdQp "b5#Aڋri/ DX֥'X~1M[Pm3DP2vJ..eAi27ŬsX*CP~n%Ѷ[^A,%r*˜jbDV-)B4_%.'N{l!1r> McvTnճ,pVzx>>QZPӇD`Ғ/V/ۿ qYpq>v,$I\9"$jfB)H瞟g37X%i`|y~E{fa݊l~'{ twbǑ0?=XA(!s8ҡ@gT x%Xk>ݱG.nf&]_b02?Ꮚ{f<LJ.9 6 {???3T,˖iٿ "S ;jW1Պ^3vAdrG#yu%g?t`/1W[\p-_|S~闑|\ǿK֮A8CK=1͟ߨ>ݡgw"{ S;{Out8'O!ޭ?<`{{~[&*cٶkN{D(25<^ryMF!jϯo\t ;x|xd{y5o~;$ 44iׄyfrY_m`#)YgjŲ?rB`4/qUMz 4R|H,dK[rLLGU5MՊew't[ljŖÁqB$cƺPx18`4#%41ޓD"3LŁf^~y|OkQJmjNjf=> Va;m|uoȶ 2s?s?9G/ jw<1fH{jdûԊޮyٱjܽ k4=~F5%pb]jODk >_L30x~qμůy qϋWT+>Es^:Rܱr5{'S%QISn{I=_YI|rݒzcG>{<@]4^_fV54n|$Y+ubҙ, ȶi&?s@+|F4>ψq"Vn ;<' k& {|(K4!\[oԍ1<VDRB?b4zL Xj]'0G?ӾETLy)" $_Ach*C #o]L(ˌNd-F[3҃2 cKH)bЫ5qZ~~$ՎHTT( f0| gc Y1td?OGU%@dN*9XN\yU~X@ L]9 U,Xhӝ>] "v1u(kq*I",~:Q_]&b\K nTZ[J'#kVź,a)QÀRcP F`%na+܋['RHH!iq\ eA=vd ЄsDcFZt82,vu);XHlPT*)İ`출>qBԵ#PVRa]i2$ِXE ں|wO}yI\',!d1r mI1JL "4$?ܓpIRۺ8oRD tɼKH#d?mfHlvHX؊ql"23GNGT+H‟&dL,˄Z4 MSÙΐݕ-5ih9(wk4HݡBfvElm*eb.K/hK ?eS R^9Gi`B;]K`cHy5{t"X !ERw,RڜDƾIR4\|f{%*PAdTժ b ~ *SKWmY3N^w&r?*tbZnU|%oLE#7_{T??QBp?o?pڋ_G_#߾84i[ Xtg?gfebej+޼^5>@ߍ<>+}Dey8?+\p>\9˲ϟpOSU엑g7)x#g.p{ aޭG#)Dut!؟>RZ(2)0C`/,h43^b'ӹ3fwyz^۶LZg9}p=A(&VSJ;^ϘRv7癘#k4 B;!֗op 3j]):OȢ0GCk;VeE'A6)s¯ B̕@v)s50 J12zz&3(*/4wHs?}$E8(FPT $8ٓЭ!zOZBjI֋ȜkBf4`,H aQ)k*I{qM?c\\BI,G4$P9"FTi[BȔLASETxDj1/[@|؅aבDaKPZ IA9szܳOftm-4䔉9xfa!IcΨ!<XUza5uu()imKVzW_(%bq2Q))2ҵsVε?Vl V:d|pmuet~?ӊ(tz<[R4Zq9nȮ^G#iZt >Tk K-: BZ¼z* &&OO$ P|48W!'dVyyZ#-hM %\J60c0$Iqv 5İ* H s8ٴhY:E A ˂8ɑ&N#NJ,NKg:3?<=ȫ1Js-a`4:CBaX d~(G:rd!"bMKZgR$(ZW^.>}C {8m)I2 :ĺVlжh$R@L֐~F` zc$",k!'s5R u$&fĶcyv{[rFQLW K,"(bDaѯٝ4g9·#qD¹mË &O5}#'dQ ^q:43L 4u,T}u3i<9l *Cb$:At\ݒu6C4!١noFе^c+ڋvA:#%EVfϔfsx1gꉫx>o{.npqrz:bUrw7<}{Gha|<`rկ\\3oi^]r ׻ )%z~{R"ydn!%R)G.|`kc}pBy~7o߂Q<ݛ$%*Oj{0+2*̶-á\sb _(aC hIAIS-Ѝr 'Ο?ݢ[xO۷g@("vؒIӑlU5!#IhUL)vEjSK4nWm L5zcZH{|04%x1=۠t3t4MKSl:ʴB#$5RDu~P"90.*a(S %AiȂ8uՒ}k[yd~puK!Jv@*&k@4 _G:K6-: t_b3u%nj2qiC[e_0WCI,l DKkzVb2B[v0Ck0ɬ!Q_`l-dzlZ(4>SrBJMV l@x y 1~j \-pΐs(nZVH}+1KJ,,~ /ȜX¹ش#i[|Z(>`K-13u&2EzP5(|>[m1K(tF jRbZPՐEH!RB 8a&™#[EJc-:0a!׮R >* jH }U7]J! DJhӓ3ֿ7eRٙo:H6 "Ze;v:eB)#WXpZԐ*:[J(_] dhj^iFdKR~P#'pQ&gMWZzxk "ψ#qE"&s% A*́"%hЉP ƈB6-IKZmXCAI*2VYi1)J:<6ok7bi6-^ |(HiM%zKN3?BQ($!_PfX%tB >w补پIc>pVU#b]ŝO3hp=:H;/$(\q81em牾Ϥ *PچF ղ'ᴒkNZ299)ȼ B! Z QtӓK@ŌQj{$(GOfWJl9~#ѬH崐D5v)"F6 HhA3%5(#iрE"[Gdx 2Dhka_HkDO'nI:, 8KTK9xbM#Z;Du@R#Y[??"^Wİ!PYҼ{EiyՒ"m5"4BϿ\ϱF5Y $k|Ǒ5`ttlzb%wJA}G 9m hCgT8Yc@߶gԚNb@rd9 ۖm2O|o |QR16Cϗ "8=qD|Gn<2'|??~ 7OзSd 兮0Ohc\]Wۯ2Iu+DBZV"S&Lkt~bf zPղ[/gR"FI1ƻCAHR(:a"CKAzN˚Fٖ(@D,%if@kd?ϴ:I$TX2x=ZV0%4/BXZm(XC@(AD!`=ƱNV$4Ϥf+7 E7l@&KQLeR7Iknޢef3\%ؖyd=P31%ѦEhv?FRE$52pu H a0QBN`:CLR$5c 6 \%B;X +VU(3 $n ru;I4t=S"blWxDVw?7<~s^"$#i9u;6[TW242!P\O $9Ft[Jtm;V\޼G;ATLX~YqAKE'( N(%ƙ"5rdb,/"e-~>aR[e z:k9?ӂj[R(J 9aZC^^nQN!Hx^_cn"k چ2{~ۿ'9 Jn?˸.%Y3^2ǕWg;̦elovխzՔs93jpqC,t0!Eb:I_[3LJ~u^o瑯e5'̮˧/W",+2KLC=0>>s'{=wiuCGӁÁw9gmON3Xe 7' % qyjw?| 2#·IW?}ͮ@XG~G?'+ui%ݦWe> -nnT5ӄ 8=1%t*G MY8a/| o)%slL3u{5әvzR;Zc0 %e:G+5~>gLm+tڡƟyQΑ;Tk#Mӣ#y/R oILa$Ҵ^X5X EFiO#-i]*UE%iR)HQL 4B΅0D9\VT똧Ȓ3RLp|~B)F$* x \'Zfn׿"Y$YA-v9:W/̀ϬDݰrqb#zֲCDP[XTu牒*Y C3> "MSQ Q3%f+'[)U_d'  @Sm)IO\P {s ȑ\"9&JHrd-EզRb|ՓKB3Zku25E3@ &E_[ƒC">%R䔐21/g<GBHUP Y(ӈ,\>HRHٓ(Q!@z(ce@aiӮ#N{.fd- y)J^lv,ʶ!u@mz.R7"e LS"Vu8ᅧo_qʄ3+kRS|BiGue~'p#ZW˸mp2>TxG,"PJR 8JcE- !Ȫ#joB0OLpe +yi3)%JmT*%*8 !e̯N _0zᎂd3=Y[<{iCC&) A0lW_q?cFSGI淏Iʦt:[uYiO6 h |?=Gya'_h;w\ [Dc c _Ŵ @ǙaH hDY޼q\(~i4?|3O _](23wimf@O{Z1v/_1GLFnnoW,{cyMCɀ sX)0;՜5(ܶ}xo(Qw7\5n >)K(#0?Sf\fy%q9|Hq~yfw55w̼NU g#1Jӻ/Or{u,3S?fЎWʲ͎g޾{?140N(]Ӱm{~xBLk~rL?s@Znnӳ?qh۶|>RaV4\@WhWIL"'btö"3:fm7(B`3/l ed-1!R(B#if#DAyM2/ĒMk*1Pyܦ^xZSDn {v~2X։Wɣ""* DӴ,'3QƐVf]U}{әugh]TH ! xxQֱJa*E$°|ϼhږG$hR# Ufa+q+_BHJBO{J(l^<̏#Am2S:#!T_pn!GZ Rj X'wK5 Vucϥ%H!#CY[K๠+9j2W+Y))dQH'ݑK_&IBZ8ւ6\) *4VId=F JH=@_\MiU?k1̬珨f@c֑r=vCmƗ8A%BdT[ scv0u]C) 9A:=;24KI9eiU}98=\$vc^L$9(vxT꯫pL=)4* & 2Wjh,aE6,ieMӡA){J H9'kuKIB8itltӡUJ #ĉ=Z t)vò1L^.I/rE.BA&81kߓ`"4B34#c45:(:/Y(>TUHD8sFJ|BPT%Q"9Zcוk%ɺv(AXcI4.g;fGORr&QZ#"d# mb}%ˑ9PTzYYWV ZH LvHGY$CyLCVp@kCDqX׀,ORCuE}B`;K(sD4ٟ ~ah{JuA6Ce(Po(C hk+傪FeHQ,+2G : e,iMaC^g>Ta$)m v;?oXBa6<4izF9]+0`#(m1d=%v|z$8U`O*9sRg̨f 3axƩ y鴮YDaiy<bBZs-Ͱ1A-!|O HqQڑo'Ue]2/3BHno58 XEK~M#~5^4nR|jl,}߳|b&zxFxx|:L=p|#J㾒 a>W2i:0>h wCCgnnn H.i]9&e!n,%-߼釁i~4 OG͆i:{Ғ~-_}O?ӑ/ O+C2g點{_h: k^g嫛 &|g o_ffGZ ?7Lcçx=E?)?K>}+r\'%mzQۮdIw~%`$8<egnv̲\[r 3?|1yF F޾8`ۡ2tHPR}Pa(1چ<4 W_g6-Oә8`x"vH#jAk|B!$v,j<RLS5EK!VӶӄ?\ܢ0dܦKɨ_ kz^gLCG!jrGhflӡ\G,KB(ڒŠZ)Z"/Rqv4F QE˚Wh޾nP$l|aж!0O$iPGH{DdcL#ʶ ;qF`L">!D5|]Vt%DcYc+(z3`d]g .-Y|!J#Z*R}9ztȶEeXO" T}o$R͜[Og!vdPB"lКL5lJ+D)˄\@HEJ3(R_~7lsyKI  s(X@%r2 X(j7 Y+5eUcspD4 d 5.膔 "/SDe/는T_I"4RU 2m %BLh"SĺYlF˂3e 15 :8bvUHWk0[B"s58iG\8S#S %cdb=IW]- ;<==b\Hu=L 1eAfif4X]']#%#i2h%2;T,j5ЍŠ0+PaP \%řuSny g:u=<gr=Q $ށ~͛? X?4Dh[7tJNgLӶBNuS$@xa\_SƢCĈ#R: aQJti1ƒjp<b ! ʺ"(,>h )$>z#@ ( 0vgtY ̈R9dҶn 9%r i+托V2A(O'3>œqp,Ta)3Eum:D }u/LN$_0MpIQm"%'5!P.*=٠J"R4-Y:y}qy:B 7oPRђh?!ą|ū7[MS&1q}s/p˦x` ,:s>qR$4YWP <}JS#4K\)`fNc'+IHS]#߲zIvFH9۟2θƲft8'+9f^]r ϗ' 4v7ޯ$2iN减5}l| ظi][,D~?|<>B42G~'<<=lj?x;*uO_ӿ RȘ.8WL^`.:|?)3r(yYÞ5fT*{=a1`Z<aɑӁaǧ=ooPȧX3R+n.xہ ovW3は߾#ۋ: RJLDo[,kl==J>i:TN?."f(İ2-J(=e#_JHWD + EHDגd]^H!aAZZ"b:hБ҄"%,qYS@L=Dº./ςmZTZ dYkPr@hG \ Ndk$|/y\m@ˋ[ Fl,B F;rAHݒAZPmՎgUx޳yOpس!j/W:nk3Mvsd$JU@eP\ T¢ $,Aa!@ p\ʮ^Mtb8i-g1c?7}q]C+2rtI H[P׿}D E+r#D4Д7~?RXmRPeM[ye ݶD%OWp݆ "! $nCNtĹ D)ΖZ"O).sVhW1p2^0 Bv;Z_TcU\I-TdMS9A(Z!XK!e>#+AI0| p5% lO+ƲdLLݢtr8y1(1/u)#RrVW {L RxJ1dDH)(ԡ5z>̦i"2,hQ0AH$!f !+d+05X]!8iK̩ )Eqz2YkR%ҵ9=?)9SDe:Sw%sbMM(?ֿj&|aߢO?_/BJcDKI>gfs10.3ۮ\$Hkm >KҺeA5=:l8_.l7d.3aw-_p=oJ7b/3OgVxe[~O,c,S^qAmILXȷ$ RA )wDHCJ8Π5mٖG w- - 77gIS4Àh|@yT KͰ a4R,7 f`<_pa&ڮrB,%`9J̫m7=?ʹmGp>uQC:MU#/ءgYeb#mh;^~ "zϾm9<}CV7g_G~߳3[^.oXq۞4C;t i8e9|yo?WӴו-|,5eR%酭iWϟ~f#+%eH_~e3HB qqہH^fRH{noqC|>Q)q9>?G,9(s_#_5}@-8 SrZ^M<^ش*(l}Ӓ%k_8JJ۞unRϘ,x}y׆^N1-3at 2w`aS%G>?#:rR1㻎xi;^3i6-ӍFoX#i) X($9zN#Nj&%Z7[d`GШ#*Tq~vDC jA&MQY`1rSFHn S%9q8]pC_S#9FŸ(ӢBnv+Y$ʲbXW(#R/'inyfrh`Z7d9"$Ai6HEm m }d+e[´ }0Lc+vG̑~z_(fW1a4-dwKDF?I~fZ.t!RCZ41\}TiBn:!Gr ӕ.dRD@#skIT-F6pB^*JlJ$!'d r!y_qJiQB`9a 5+XC!}kk}%v}﯈ v@BumeJdlC{2Ie]C.Rn{GR V tUZIK eH ]׏{g-$)K?Y%%!R8c )2.wU"뼰l>b!ZJ$i\vx:b˄ݶu?{6{iB\98gy~yWo~fKp}4-,IgO^gf<1$N#Nruw8. qZN4MJ\kgNz|*Vf//4;Éi6i1bx~eZi,nLXV6CzwXcȧ?3W6l|9y|4-loj\fOJ_l8Og#n姿#e%b:SE4 8N:^_0BR(k@O| ,hj?o0>[h~+\/6yPS %.ѳm 0 )rZ^>JΧ XCaz9Hjx?"N_)]i*Q!KuM Rt,s-@mM%Ŧۓ+AEhB!=6{(X7 yP# GÙnA+CP(.o w#DXhbqZ¸`lKZH+()udӊ" юia$Ai, PFB:/1 b#WzKiidw{/n7p k?\wؾg|>^9=I__)voRLvey& f|;s|OomtL+·7ڎ$ / Dkp|x|\;o4]'~l #vۡQt s\-GOODOռ;TfGʁ#F=/3>0@~;bPaX.3www<ipx}/+HHN'n(fsIN<\Ԏ8c۵8(Jt2r ns~'? i:!bWX0Aih%J6RyX DXZmiZie|Bg-ŪJ lQZ"mCJmfK! Cq"z B(gY[-Wu2䜘בn?q >pV.qj ,Rz DY(dc+2eR0meB6")V1ZUSV VVG K^q m)h4Y)D}eBYCF_^Ԇ 8o6 KuՌGRXhZ_Jf12O7~Gg4Fd'v?Rs-&{LI(XJ@ VuR!3͎u)P RE&lSIXZU`nB!Ui@۵4+dcd%%4Mv-dוůnKQEL#uu "o隚 D?C a 2^FLЮ:$fHD!\ B$%tB*'HhQ%bڊNyFv@f|Ls}+]Z2D֤[!Q,邵9D 5uLZ<];Thc]WK$B(()Isي̰#b#:3~zte򔰢aMD?3'Ҳ!BO:˙m9m~(qIE={JHb 7HQ]K0W((%5:+mHZ/~S+ˊi$8M>#ALk3G3NNJ.aH2q3i+nCv7px=.+[8hw=wwt-/_^*&v3Q+~>c|9oXƉ=83 TLyyzA+7ׯ_Pΰp{s>!·y1 鈳?9Gu]G;)!g5|u!$~`L 2_Bn^YBI|ea5!]r8">w o~d%UJ?#on[ B!4V LrOu >WH3Z ګydy㶸=>SqYk!cq4@ mQ0 ǧ'ݞl[D^Ѧݢ: @!:O50/d.h )܀$̗#꠵~}݌RFb]CsuUi$R)}@5 !V+YZTYWv}%(6x<0zk(9 r5-I*|bLT0GhmjVdR׹5qe~Sf#'3%4>"Vh0(Ec%-Fv!QAAu-q(MuM6!Z7:s" n Ғϸ̀,5%yJ0hU "(]\eMК\JHmIYaL(5V*HR#JK?IYI/H 0C(qgUZl49xHhkhF #$Y] ,h)+2XIkgCG%j!TWDMvR|9_Zs0 Jn}k k]gQ( `GfKX#7R])22V$*TZ*v%z{C9gZPfwM&#S,C, sW;qOpYQ"̅;?Y$p"GXWn#Bցk@[!`u-RǏ ]g(8,3>HT9a67 ̺lV^~EB̓NJm-2h!ꊼi3!%|Te&Ĉ ~uwI޼TjXWQ4*'V_+.Ӊn15 IB) M3j3ruwP,!֋e!1u]0ee]ωe8mU)\,L*,ض'fQ^F) _=2,Cݼ+Պ8) h-Ѯ4nKBj\}4xm8~)TfmO4]rh!lA\EB ˅l"%R7qRѦE$I값E22iDV]2T2)ddFJvXCMwMZ))"OfW_7U%r9=g=?aY?u=~] 늢w7J$~Y2,:ܦccZ.ɓ}A=󉻛[ׅh7- i5 ǷڙQk8~ya x~9`R0N$UlLi~ wlj]*Ӊ$a>r0) /Yqu-ޯ4m/MpYgR8m8glß.qZ8==a/?}?541F-մ:6 'ȷ1Mc48+Kd|y# HFAL ۇ;<.ta_o)k:}p:L}V<^߂^_\[%UWNgRJoվgyΨ\pv+r̻8!JgnyΈp8ŋUtȇ_~GIx{uloэExM? Z!fvMU8n{JXZ;*v(CɑxT WDH)Y36_Pƹڦ4;"_?(UUܮPDZI _{|ô٧Pe1]/hH3BT*Xk-4tGIBRV݈%&B+%Ըm?_Gd(uR B ˈs뼠al7Y*)srL3۷Eş1g:ۂGlN% A+qִL7]t!/>r7Ēb_}Wy?Û7|_=fgv=ә4.2p*iͰacmkQRXGE=wZ=@Hq F=᩾R&H\Nh$o8.v;Ou姿#>#D̹nv%Lk, 8g9 =ֈOi]I1JrxC x{`_2$ՠKf|4]QL׼2A6 ke1R#DOcqBs+QJdzfG/yAo:s$?au"!zj XS$>_9 ZUWZV1UNײ)$ѳ@`K]5PNmC,hW5q#H~*P*Huqm@d5(J>r8Hf'n#]r]z6b<˼P":ױ.+(-%NG7%%+bж]=Hhk1*ׄ ZW1WϺzq辇\*ƸʃrP$=rzan;ͦҭGZtPbF|=|n|!/WcZf۸BfK`fZ=kXySbY=qE"3i a(_WW$Q9ve].0B4*OL~g>NM!GE֕TN^]FamK99&+mб=؊L]ntAI0-F8fåH%a}Z1O(FIM=l*Z8zLߓDk i 1EӰD_eHrid.gOOt@R%3J0A$6 Z,+k%ȱ-%'F۴YKJ l9] ʢJ]her.ʑKf uzCFȴȑ2i XVi|E55&JJti[J\" 3I;(1jS`\pC+,0O %R_a&PUx+[qdUܿ/EL3)kK k!A Y ) FQKYU hq5B8@IJ 5uU4@d_/(@+}#@it}a͚HkDU- ~tR)TEVs5+\XcDHU)֫ u;k #El;kP'=YLbɐŸ&%BC!jz1䲰Ȃz $ON^\`Ent̄RFWwօ=ZK\ߐWĘ(Юr|ö7ږhE'@74fS MqEBw@ڻb]{2{jћ )U.l;hjGJ9M+lPs L8v t(El[4{P=>E,H-XƑrf%SCKM^VY:V)*ͪ:@Yu:Ra3˲ n6׾ata%N m9  wLہOQX*B 4e k#``zip"n+YN+ۯ3oWϗd% -wW y5u~[Xi .3Fky(c'Lo-Ft~;i)'yArrIi4`ω)u3l "I9&VeBUr݀OɒLEJ1̬ӄDgRn!Rr kZJRzZ֖if?2鶻aȂWJ+{ܦg><ݦR$yZ 5X׹J˴&mRJW$DvkXYE0.@R#Ca>ja&3Z`F{B%y&,.%~tfZhMeYGtf5l:J ڶb$I2Z.Ӎ{f@Xu1Vφt?ſ?1 <# Ƭm볹o] IX|!G@XkY\g̯|xe]@87J*<|>zy|< \M훞TXۅe](p<\PFp<XfOZyu麞"Y޿}ϴ,9xn7PץP_*r񫯘}Se;4rxqOO7~Ϗ~/_ aۻ='7vg|~|dg}xy2N38ȇobD!=dn+۶gB ۍ̴@|zz9i{THaٸntCO '%Y Χ#_ױ //>vanyR=ݎ aYq^ءzuRL Id&ɌSE"LwG.@ӐB"7n@(KbXM%qƀ(~dNki"m2/XȯЪA΁TheE;!D&>E8g@6uc$ogkɶH#By dHk)q%D)GrdYA1(GJ+JB+)DVyf"_0_m:ZqyyHAU{ 5PKqE%-Jk35.R%UQpM[A7[xg[BgPJ_mzLۓ+>tP%&'3qڒB$DYVB5>m0Rߥ6b6; =a]Uɂq$@Z\ېrZ(jXbpH Euo1Ѥ J)XeX7"*C!^δaz4ˍ1?%ֵvB4iDF#S5.nQ0K2i" lQU[X ח(V''I W FR\PI!{SA ʙg64m e*uƙe@+ǟr9|Ǜ_6*$-A%LC5f3`_L!,>3l,ZW+>Xs5:N5.L)vÚN t G$0Bp>?\90M`-%zЦodӠrTXRn4-?бE*?U`vXȥ0zR).L}xzEH UB"$k(BO+FuLs aL$gT 5[z'֬0O%ޓi%`ZFZv3BၗõRIxE"Y(Y6{igt ȸ\AUWI.vcz~f[15}#P7}! %gm%)j4%Lkh "Y1A"$dce)F #Ɗ*giE̤$O JYV%ˈ %Մ?b`-y] :6;i7fK #B}VIZ1Նu^e,C֪FeƉ/-eF=)E$-ɷ~_J.7Dl욎:vo1{G޿3w?04{.x|m 5x²yz~dgifY6#Ϗiod)le+Xg/8@=@_Sfl#B, B#r<ѹ~.R)rL4}Bi <}úܵ-'< Mۡ-Z˟|3|oCS 94hnm! 8cFJɊFToM[B'bIJ4ܦg~c|&|[< |[o4%O5vŏHsq-(rI?%@p8-̷9h+/ȦA@JH}} ݰ#g+f/%s,H".1U(Zr2Hmz9rH+:dI$I l NHH1v(E<}FHp0Q"){p#) )$IzK)#J%ted>@~F(i)H@OLKn@IY!J"->V)gVrEގ"q{OnHnL3B0@ӽo#(?Ta^i!+H>HQm vf0'\s!UQNki(Cj4i2cD[Z=rxH<{)T/1$h5,(J-=M]@M3A&3~>ʈӁf~_/m4H7ܶC%5J:J+e!05ۯi3˅g~7Xpga`5)(yfЖ㉦mX%f9'JӵLk|&i|a@ ,F/  D}GzkՖ1Vvϼ,5{gE$// <d_G~Ha ~ϲb ӑ~ uD'IlC6)`|OStB;w/w}G MݎiBx:߾aq{yF(w?Һ7|zy|T8=l<hk>Ik0_>aqq 1ïx_}5O\L/#B Z>e _%rh8=>Q"Kǯ9D ?|@8ix|WYוe7  ůF1!%@R)|9akp0!%ةnWbx5? j ˫;BWB[dSB $jZ 2n{AnX ι*@kZklӒjĔ0A6%H3d2 I0z5aTw~ǚ Ik)b`Zi7-_[lC*ȡGjEYH|-JAZBh6ȲTð)]C'J. Ӽb#e:\aLNպbYFBk:Jqh9cyY~Eɏ˴rj/.39(kPZ𨢐d]4m֦zzFhS!beFXm'b a3ip1ގ 1@XoPhM%.+OѓF9"'4?jbDB"BR$@ZVBYH41h^bTFȩ~1Sh0_δw!PZ#EPZfڡG4-x.1I6~QTq#tEDⲠ\#0*4s^v $4"R@@ZfG >Pn`eS!JoZCP뷤MC5,*V9c[+xT3+c!#^35" Fb7ە8ʚXcFm(q?xV2%DbE(vJ'nkFm^JM&z"QHUC@mE* 1v3ӽ! t dPr`YLہRLiA8]V2.>?"բ!]'Qb+"fa_'m3CijXhԅˊ>4T`L X#f%75c>%@7)jV_oI>!נb<]jϟAW"+_BJUOIm[(j:%V[rJ~q-BiDcAa R lۓ#A5[.' WخuX6"MBg]C"Llh 귿_rD1c/Ȫp:7{ OCCb JA;"ߴ"q4 3l.haU!W_ӭhrMsj^Wb5,*h%j8nXdWe]|%-8Pט՚R- Pm-v% fpT2QiiO:[?yB5 `4ւ͆Bo,ә|B%Q4tH0N\5L~`t-m J!)Z6X Z\BPtAȚ1ak_7p)pmeZ剔njt$RuƘW#.,BiliJJ$Jx9*Q UvB$Z% Y)k-0zO!#M/3]#5fU|l\b<מW^(JP q)9sUmIq%qHʙ~BtnMPڒsӭڐ⌑0^*ͪݓc1):zUD& E s1o6Ȧ!.c?2-I:`J yD JPL5BB2c- B)7hÕT$"HBLe_}Sfa\X9GToy~|$s߬y9/W],0#"FaIeFoZ[f~&4uh%8^غHbM[C3mxzx`ԄD캞4ɰknO1~:3_3(4f߳ ~ ?!"Gn֌ Dr>siX 9fzxf2S(Â,c ٳ! c l][r)|>͞gvk]a[#4tá #Mχ~/鉻v>n1H aX9 ڦaY<7]]w|<>㖊ڦtӆwo@@t?v;)l3IIy~|-% RJ}Uyr8``̉<1eFI ,O#7%{ӕ \F֜N?wY: H C"N%׼xc Q~YmnnkM90 lLhw}<[P#'oA|!'R(U9 {ڶA+q4'Fz#ĆrPxncFǐFSubU^ 2enzd-qAGmc0Lr y/3ueFHiT8:GRB*r0״,cu DjRԖcBiVn]S'U#q$0ӿ8ѣs&ɂpA'^ CYrCPPiY%BF@=@?8]NtM6F!Hp9\ͶfUl- ?M DU=zK՜@ɩTG(!H[!D2D3Z S%)QRjī/tV| בB||w<~:rxyfv<=r O_}'޿ӕhdxf0x&/3fC v '~_u:K| a?/Oqәw_|2Oݞˁݞq(I1ӮV<>|_Mj8Nn6tmÏ>`ajN<~~︹ۿww!кU?Ķ[OOw{8kx/ܭnnx~y::V >}bJiV 434mJjXoלOpss=q#ͫeʋݓsz=Mp:95 Q~qC)pl ̢>JQ񳧹CQ3VZLr㷬-r ɣ%@, T"T94P+ 1݊qxYb6y!R<Wÿ`{C3۷orB(7"1J ;2Cqk?_Ɋ$(5@IU%D((._S톤Zܦ-)̪Y-ʙ7 +3}ߐ"kjMH)H~f g5Beppq *I*D!EPPp͎vG1ڿ'/HI8b2^U\Z~ q6,>&#**8ۮHR2%MvCup$juV Ms@A ) m9,, %M ne Zhs5v/OlvՆbQԊe@4m$qQ' I'd^mG:lZl\9}IRֹڅv^J%-!JVR6y:)$J BXڢTc([ Jq\pkq=3v㺖/@5*Ƣ%@Z4T4#1̈́\S^Rr)%M͙Ϟ$$YdR RX&)$NW%T,YYB ,+4ZNGڛ;rlŀl&0m)PIJ̬{̺'XQຩ1RT!R_UK)4_ɮO][ܪ!I(r)5(6,uD:ᧉ{V '3LLfx8}0\ 2[GI'Trp`w2_/!RQRRbH a{s# f&/G{N#Op>غe['bܾ2>͘r<]q'LNW!._bWۭQJÙۍk~~G׭o~ݖ_K~?d[W<<Ro>|ZNGvww\^ T O/Y\gu a&O51_]۰oF#b٬Ws3:wݞ޽g\8N8cRng4I._~8U$Q Y>|dm[w7|e Z+H{<]Sxy|wZnY״G5nnBݽzr/=\#kda~8D)!QjM Y{@^|W=Fk}:怿\YWt* |>bŗxY eBUR&/g@:g=kPۮg=%r"9\\h*Ww-FڊW]ơ`N@oX4SV-R 9D g|IX^mְ<=abJj+DR@A#tHr9YL3{3("8]pq=6O:֯۟ံ i"f PKHhӉvW΂%=4-EP)rJ4횰 Ю " r 0Oib'I.K—ڟF23}dpx$!gY{-tc(s&.33;B0S@閸f ƀr O k}rR,[!P7!l-mvrUQZEa:qAc &))BƉ\9_!ZV {J4,!0e!$@I b iY@^1~@d6P%!9hڻpeB?8x?#@IU>^sΙj]#PQiX(NX1Z"u!H`v?ڮF,_Lנex9VHɄCSp9!%*,92(TTUкƸRSaVw)P ďc݆:FC, @O7<uX^I)!2vǗPí>B~=DעlnR1͢mQ)GR!0R7kr0`ԒR3I׈ 3YHP4Yf8NV.g,9kt"(OyٮQ~$%yLȺ)~A؆3~afae+H!mn-D{uunO,VѴ+q!d˙z8e(1w} )i,XE #aXPJ7BV(e./<R, ~?#g]Ґt]wn<=A]E)a/O-6055_3$lHU50Miȧ)gy:n;DMIHJRaN(qAtki"jFjB&R&Z\hep4sA; "ed GRaB6+jq"] Ei(C&1JP #zK[vˁHrZȯ@ kkh2t Q(*{X+Zhl0_<?%y@JE(E5-<#YwH)OܪGhE=mB)8iӵngEW m!|17\-v6<=|}ixx~zّgϰ̼|E7rXڶۛR<>=UJ)5jLӽ}a*dVcx|yvppsś077WVg/߿5CZ) H*t5[">,خ#L#mЪT4~4=XL5HSC)4 ttJA iրaKN8XUS$i3dd#mKGھCRsu-Z$ { $Z%Xm6LK8XmZs~HȒ[!VhT-9)F&,H@ע%#8L9QxDӠ[@CI@b+g:(#!Ąb"glr`إ=BX¥|dYV ~%gH,ڂ]21Djh$*%RӯqݾoBD҅ j z){,HӯjGk~eO0#ELMB\' LZ^VG,,4u9M5:Mu¨Vk%kEJЀ/sQ<"ӶPG&RPJ%Č2`khiK a"_L59B*!Fr۴xPR$!$Pm[BT9,PD.hQ4,"I1aZW'#4 2%")ubPZQǑGw~WKZB ffXB(KzTCX-=eRʸW45/c&R)T 5"8 _m-06+ԔѮI)f(DRΜPQa#qu%.ޑ,LQ-9 nA=. "/\ lQJGrDڷ!' 7o()}`I”c amY dV$%5(N/y#/DxmhUBh=az,A)z% !ӑ4Vb[ $i>3L ZJr-^ћGȰ,CLY&T㗙S}kֈTkYJҪ#Qj7L#~W5Dv=LWvjtL#K mC:]!E<~JX"JnѦ%%O % fFQaM_"#G $1k#n*2hX2vSF ker?tzlztde֤pưBo>W}J\/"٬>/L,‡ ޼)|biYWiYg-qYTƏ|Ovmf_7p\FZmBRf˰X{{zȔaxvF4+(UN;J 뙴,47o CHHJ 㨥TבEU(1\b/XQ9]!p-D:=ID!QRg,~<"YJE`@˄≡\ 9ef"È-{P\0,( y "LH۳LAub %U}ht D]!eF=q8 f) -KyMdl,p&vENOs{[7 bP֘x){rt͚LSgRTB"6AF戲0[8]sH4 J DšB-i@*I#|ҥT6HЪ0I4,4c6jzM [֢^a4=RDخ#pQ KQ9c$-#AE@N؆"E4$(QaAhK,j90LDuU~]cS>e(9cT~KI4!fm0|E;2ᗌeB­tpj VlYO JagY %DW-yHadVD)Q|9T-a ͞P$.:JʠeCLMqV`qaD?۽%f u蔱c)38gkdgLqANhU<(0eݔ!bDePm֖"$&\mKuӮ ˌՂx 2_8 i+L,Fk\bfi*hԲ{m1=?QR`i<eWp@iר|SA9.-7_ݿ zMG,ZMԮR=癘&3hUmVGPSm)rI - DLtmKUjJjx0N !¬i$ #lPj2 dJ'1 3XYeKt}20^IHj nAPeЙRD)9^Uz٣&&w8BL=bȒ=%[2 tA˞e 5䘫<ԭM}?_o6kim;r>[.KDXUOK`WDDwDӴ_'O"{edp8fr,=tb Q$H./'׌!s<)W!Ҭ5_V+_lV _ }oiWk˙zfiO1W:0 L[gd@ y_rFOcMz,4g9\7 *Y STӒ `!1@BHL5A L*323F\ޛivZD\cv^yR+>~Ciw]A7?՞t؆k[ھw#&3(3a ޿a'/Ϝpk P?u8/su+q5$ļxz~t 8s<nI13Ȧ9y"+3h%?2Mpawl7=o|rLq|rBuY}p k6fWEV(ھ4 \{2^}q } %HuN5qպ\?ԵlXL^"0LӢG4+n0a :αyt)Kj-C}=וRe;ܶ'!2zQMOeAEQـĒ(Q"g) i5}WWF٠P2 _bJ %Ri~ĈA_@6-sиOUЗXmG"J .(p9W vI!DB;*Mwl͖g ᆬs= /Qa^Ru&#bͦf?}s+WȾZyeRIJ1?s_KfLېq7oXHږQ Ənmq(rK 7T;xo8l3Lgˏ~r˫{~͛{_[#^ nn m W_ste8t=@fTW;r@o(8lzؚ5nз-H,8lw{viZ{i`g[V|y~5ጒOGLlzp:}lɯS͋,4}*`z;k6-QZBg 0|9cMJļJZ=]2]*fY@#wW74}G8/X8'\pϗhjNdT&Д,=T iM7Ӧ:r^uu=NubW2zLR gLϟ0bo^T7ACd!p=YQ){JWvR(-u7JҖGP@cJCj&Ջݳ, juAiA#]z>sL58Y9v[Pcj DSp֑ a-aYYHN3JW.!֜K"'HhK#9I,H'KM]Y'K#ITs>oo7?",#FJi60"`ɬS )Pm 1HS/eiێ5daY硺b)/1e^LcIG4kbQ"p8dEo}7 Hѯ8QEU"rv(HA-ad=p}Wwre \/#hвs X o-ij.tI 9oUc uZXZ㕬YyZU 2VeBvMuxs-IT1M*HD S2Nc-"G'8_1͞nHֵ-Q X@JXہV&OeYV[BRO ,zD ;ĺKN LHk49~ږ4Ʃګ:9 Θ_(\S#$Ly)p%~8)%DWU@Y!LψQ& Z,(:Xk+*x´UR Œ}mqBJT_Эg]VsU@Uc h ۙ TwE+5r^)ZST"Eb^}[5;ș|)h R+H/*"g:%U_2.t7%k,rQD;Һ0>}"h-qvC es tR|Q W@@zEX#c%U TI8Bܼy3>Ր^]3, "x<Jƚqx^ae0/QKV<s`,D %oC`:l1a'iի\Ng4s{+0&-\2f9Njgg:pX"/+eY9pvH(yC"d,xc@(R=F2X7+EBihڞe]Yplo_ò@8Rqh TI4+1O=jΘ:Eͽ *#2!GҁC JmGRmΤ4v䰂LX2hy#(mh݆, 1GeD59T~KF_Z&r-YhbHu3XәoqMO4#k4t&P̱"E]ǟ'"l]':צӄTWs=¼OxG?%4a('\yDRۆeD'd&M̓*.DO~lU $P7"s # 5#a4n_ɦ;uYn T봒v-وjDEl;`=I V l-%#עi6`:5֤]WK)u2aZU rnB=*kB [CH /9u]PR )gqHTU4 rn۶nL *u?3NmHs]&+Kټ,8c[ )WLRJ=X'Ch~B@!'¥OXC%I /~Cd_Wd_iA+Z %`B MZrpU2E"fY0!Bnh1Tb޼QtNӊu[V ) 5\2VQĜ !"I\HS`:ї_H>!4Fk*i! b&ZB \eoUU 52&ܶE7g[<g?cڡ S=[ )}Yx)ˆEJ6LH׶3/`4:S4Ye4&J#>.lnS&6 Roi|:m6(! KD2ϑ7ߐR$`" E+du!".(E\/ɨ 4DF+Χn6d, pq8wr JbBiCGZyzk6;ِb 5 k(wJhS!QY]K:ʇI%¢2Qb@*6vd_ XBhЍiLv]h-Fj0^_i~{CA:5kv^HC+^o葬52@D%a=)*Q42LȉٯVyn;:hR5bgT4PR-FǕ_j/8Ǻ5l !NOxC0XQD-;B<1XvdP:)"i`[ȕ։x1*Aa>=Sʊ( )C -mB{SjXWܯ`l[_!vx2\ 4 {(e("|yHP$ B*; \L>SA`vAJJ^?yb@D?{)-`r E*Ӂ0]HJVʌ"@%s5o MNUU)_23M&- "gą!@9RT)$ZR 9GJ5b49,z :D^h% T1k%^XToHZL.TH%+7%֔Es 4MWRUQ^i^di qMD kKXM}=Zٰ-%C t:bsD( r,Hgm!SĨJʢ k0Be,FJ|4c,Dr㊶i[>c4!{lrvi{d4HK1&cT@DZ Oچ2M s=0W1BI@nYcAt3bd(b@JiJxb6;5e!e))CfїH۵%e](qX1B R(uҽy2Ӓ H.m1ݦ2Iq@HA6U>Bu-;QW14[r#]2Rlе-1>ÝTk4#L.nKp! BdC-2h k R@#Jq5-$zخ;y})Z1/+ZJ6]i]ȧY2!u(۠{_/!DHeXt%C[#‡A:ZHk'Wg-~Am2JnZVt EhdQ0"eZ\_WqEC0}P==DaF+Z Qhs4-aeE^HRUoӢe]gPӌ{LLk%"1MPmz fOG 1B76i4 1g7R.>s~rmò]nR4m-}1,3vMloH)5GTW/9} fq--?ZS= Hk8r¶-kJVUz|yQm43a uMę7?o("?S}O~$fSop_^*að}?G2"pm@c Oɲp:qJea^:')|F!%c~05H 鉗|9>iCay ONGr blxn]^~5(Q%օhfWoeT3y@h#mXkIˊA0#3Xx||im)~׻=nӵ-i*yyx`bmիW10Mk{L<׵#RdwuE۲L3^{nny 'ݠLϺ-1i-~}Z#4 hHH #8 R/CVnKNHmhr!XYEC6mG #XP覊Q8N~A-1R4mT}+A2(`d8fY<(+bѮAl|ǵ=ቦ֊ї gG?h6=mH9LuDSdUȐt 4BiGRV'Ƅkix\0q)㑨5b*Rd%)qF ?~v: kfuq$OLD&V"Fi1m}# i޼BDhbI,QÁ)ئ 9b}8h R/xyD\2e]%ƑfOn-]SAY=۠&~3Jjx"EOqaUEPO.b$- 9vn.DD! %%Gi`EJW%z/uZB )%F[0 &D)kqtɲKI38#:<#EC@B-Mloi6=~PhmqM,x.)9(6sF2-TǁW a= YWqr<@ 6=)fܦx Vr uhCAA7/H˺>R{B(PmQWG=5E bXʢMiuA*MH|@zzL2~B:4RD[[|LJv1M8 mDZ)ap?i'$s\0}t83~W|zJu<'Zm#?Oql93]ӳee{}\"m.< DB!t]ϗ/_(!O2/zyZn?=q'Nk=aaW/8yFj-dɿ/ݎu8ܦA #/Zk3w[>=?pw-:ڶoް(!_ eZ'd.1@,e^vVT$%8Lgr)52, 햔#rNu/>?i[Pu~BJɰ4]G\xuВ?r!p(eHes;67{~躖%44 ,{]%5Ov{RrS!ݦ' HǶ <#7wwbĐfI1pox#ϤIeu ZdYy| \: EH,TyYB`$s?N8$"B k\jݵ4.2!jl|ųPR$YE ^c\iX]P4DVՈ-5mPݦ&}͜e[T!Fւi6zqtu#D A5W;JJ$庲Ki yӱ?ZK!t-'N1yd֡62m ) Z2 xMeq%ŀ$mlrGR us$44a B$ћֲ!YH ~NUʕ(q*aE5UJZ֢T%)ig 4HSŅ'Ln\jB/1J9B*,v\r'ԃLxQarޣJ$Ϙn:ZgItVj[B\WեP)CΈP9p~vW RSr6%~Gh#a=R,Pڠ4Ou)g 1b7꣗bf(mXϤ4b,41rNS` +vD&@Ҳ\[k! lBΛиEz,E vMR$ڴAv0#5JWduΞ\ 1Mtm[ڐ%,S5B Eb .VlE*Rneg4mChL&Ih6|tMӑT BA vpzf4Y3GT?;? k=PR&=1DRL|8Rxq{Zܼzt@mYE&._oڒmo~a LJׯI5/Ϥy3!#7Llj8ľAOrx|ď3}ͷ S+~?#7/inw扟G47 ki,C~'ϟ*:/aׂo~#WH֒)J̘P@J>>}7yJ]qF^ܡ㗏~? S1r}s#/OziݯË[Jk1=3<"#AAnv{VLȋM0Hp>Ѧ>&A2f^<5v=㑫5Ñ"W{a 7h]Ca T k\)349L kך 0\"om\Fm%&ya%HObB"z )Ur@D o*a;<1nC:_W!/RRj9HIKw@ʵIJ"~H A"{O @!-DӸʩ/n] j@T`]τuA\PYdYx1Za4+gu=J|4MGoі(qb d_ 8UHt{Dk)Ú͞HVPU5k^zK! p̬Y͏Yב~s_/nQea 3 лE!}Bdh6$P] E ThdQ F1"jUƕX-|ǿ3vKܡ1XOMz,4g95~}IdB%B JH0Pb^%SB*, $Ȉzovݭ:d\Wr]}l}<ϴ}WcT-AnL!eMQ4⌥+B֚:-6,a`RHXck_Ռ}+tf`Q/ J9uO4UzT!XF;2m9].XkRhGkQk0aWBBow;˗{vx2](Ur\/g6-7g?rW_`|)çӑ/~S>~di*c[_7YHlON'~1qYW6}OpqB" Z0\7p̌(n)/Oጓ,%0=qq^qne0@+Ya ~qbZLx'\Ӑsix~~?-Z.Vi~mrpz:UR|tMS70^hr L=bHN !,hӳ2hk- m!@ Du*f72ѲOl?)2ֈ2 Ӈ:H`Q0#m5-),gNW@BQJ7\2X+)Dr 4p}0%!C*[j7eF-x^*quR,Ij_:W) )!b=9#!@4u"zCΧ Byx2mG oFcBlv, %nK 1Zs9db(US0[~v<Y'a 5"d2!^jnݼL$Z:HnvRd0]ІT!Ktk(z"PM "۶G)Ce$9K4Z*bmG#G8Rx!Jl1%JЌ F s S_zF '2ԟ>< TPRL.M)ĸM") )!q]GQDL Ҥ|tHEq5n%9%7wZtwOϔjGiGAe9kgnЦD+Q)hXc=T4 (Қ"RfWQVάpPJr(h\UbDn)עi+IHBbm|N~e ET٦(Bǂ!'S5!U Z(LJF‱%9Uh%,9,`❁fA8yҿ|m$i]XLQB)yDB h;J3t EF6tĴRn%Ux b\H%׈S '("cQT.)"mK.EAkK)DV_5y41l ! ReN*0͆fIC El%hti5 A u`$ ʚ`tDd8BfW$Jvrd,mZJ,!bX)IBdma,'ܦG:ͬz|dm=Z"a0JaXN()p')HemY5eGQ(ˌU:8]-X˅[ھ^(Ya:0J ] D?ֱ{OGhe6w5P/I(m1#@7-$AVt\?u/>H)Eut݁Ⱥ}Bu[:b:[dX 2\_ }}1/ M'sM=H0J׀ЊL3}gDb,g_~Q1Ud~r=1nHoxx|@*ɇ(>{wlێ#)DZS%-kZW^i&dA*FG=]߱'?F:3cy@39{}-/W-?-3?nY\CΟ\qyo_?5?|૿Fty/_ċtlz+q$ ^K>|$)E2]!z~]dDWҝOڒ﷔0ezi/' 1_ӛơWt r?9?~| Z7-wO|:OxΐMuN@X#w_RD HV@ Xia\'XǙaOV\BGAmzrN$%Kq=_P K,k\n7ZIΗ}׶L)Վms:o fjXgWb%X]1:oZ׸T񛖈qh1& i:d)F͖$5Z:Qn|:㬫r"I%ym!nHJMC&!Z y% |53M3%+_ଣe \Q%FBfGIը[Ayp͎yѥOdRzy"vOg%8z84/ksRD@d1chYCBlTRYQRQUѠj1f TbN"t_怉v i"׏̭(%a5`|D{=ֵTaJjr!DߡׄU\ NXm^7-mv!)dtYNmn8/>_w}#L 9F6w,Tו>{VR8GgTJ/hmYxm6k`^g6MCt9mt:<|A1OtPN3s޾{\aܵHaWpRFww%^߱| Li;a{ǗzE(ͺ%_t`-۾t Wx=8pߓ:GLp$ G. ѓ;yƟ.;#bM[~:QdDg?2xxxx<+b +RPk%ͦ!À NJΘ鉰>q_CBWgP˳5@aC\˂%vseR`]: v$0z:alsCVv#D5 8]Gc6mՊH(J1ei)1W+S&/#R1趧4l,D^#rs>q8< sa&gP)bێeXT;kq#ZȂk1'olgOO8%+kL$*TaquZ%9F8X́#*'3H%DX*F*6#RmJ2,~q 4#Jas7 }K\#u}PmJ$yHQ PUkT6'$QRLq&XQ*8K֌g mqQT!9XǺ3}<-4uP{-LZgEڜ DI)2kahPFTQXetm\H"ĺ=Ou#qMURB+bdEΠ%L'ِU25et!VRO^F 8VׄlӁ=H6ڨRp$bf32#!&kWlA)18KA*A41ݡNYzy@Jr\Ѯ92_jٱLk59Τߌ%gF?!KFX4jGwm DN+:?KTJb \@ +q,QkGjpVRƴM)7Vqׯ?M(me4h)5e=Wv~AEupX!EZ_޾QoI>VOP RjP:QHBZK5j#M"o#JkXh, I#˲BEK$dogMX0` u2YI?ny"RseD Ĉ>.kh#$"%i 쑪 EB$ "?v(yJPslJe)Ҹ%31V$R50ā6&.X,)xd|H~ LQes9u[_$xT#UB/@$,3I)@V:[U@Wv% Vnɉ< ~ 2.1b)*ޞ-ǒXPDX/(ef+LUݢKka=7΢CH%y:THj%:?A;Śgbk>ź kYW8_]OwcѶA=| "FbyklWq%1#DEWce=̫֙Á}onQ?N861̗/_1 #8_t~ݞߓGii,Jq8#=shÕpةѾaT}q ?~@Q.#w;3^ |ۯڲ^otFoxGrH52&}8gXb\ ;?8ωy8t=EI˵ -`e3D$AP2-yh~f1ӿW;ЙW‡w_c +itӑ?5O~%!F5wixGa⋗/QRĖqn* 1>ئ%\B>Baj:3BB Xșe|ËG0KrL |Dn"Q)x_gJ@"c7i hwYk븊:D$[B(;y9R¸RUlnӴ57-o9BB8^Ț65TbW `i0a]tEKmJS~C':qf&VA^1u+H) 59ݢdH!i-% B+tNE-kkנ uH55H|9ӄ5y C UE Jpg[|s2BRވ:QmڒKd ][=;Y0 uX{5$1ʑʌ?.W5?N:3'[1DYܞa:63sGh%4%aI+vsN~&<\;lKNZ)%Iܺp 4"D#m;i ^O4F1R0km[%%J*Bb(le~T`Ab5vE7lGH( k$FjBdYcc@cD iMQ ?=i* M)'m( E65SR/&\"#vsGCFA*+Ă5%?LBBfx 󍈥BL)u "vc$ȗIH\E7}ţ/ y%')mfL2XnqqG|J9q\Ru+>;NXf% M*r܆g!xnW}?ekYQn>RQh8nm üvtO8>?,gktvI7[<֕5GRv3'K7\'ZmwkQB2N3rZa+_~g?'wOW4xd&~_߾!ebzr<á#Of1| .Õ= "Utx0]mx@'t|5*F~ig?)~ûr9ӟoCeY8?2^ W-┎6M_懯J-ϟ>|% >~:2>p{0mxZ˕cﷸ~8\P!0_$!1H/~f]cK=\.Vm8:ڒHt?zBM +n HçR =2 ͖P BBL_0RJJbc:DqP -ns@)ab'\%XJ| u%],K.is3KRĔM,ib}ňn-uP`\_#dah=PKY D0Nl]GpZ֊J;GU)a!LA匱=)'ҺTJ̘h|a`[M)uC4Ӵ;bEb&cT Y{Uk6[TkMt)ju=T'j]#Q0)!&l%F1PB(bIHhlC E$j)J! Ҫz_-l ~CEo`TL*h+=%D B+R-_4-Ev4 AUiZJ։N](3~IY?v:]*9.GR$"UFPSR# (D)RZPÇخ$vW1]!@ݞ29$kD+PR"`3D:Q5ic:<4hkPԞԭB_A`[WRi}-~i%Ps1uCu D:ȒQreE²&"!`D:TpFY,FiUy`<_,"F(hAUCX2y="DV9ۢ6Ս864խT5#nm1 n<-Rr,39 CQJ"m2BV/0RRH ADZMS ʐÌ#D"fQ1 XՠAƅyd!)EoJ+$A !ԋ} Mbw[ZJl}d$٣H~E7, iT4Kc]($96 (!V\A0mVHӵ׺*mݲ(V1l6.FY۶l9´x:Y.d{H!h/22 ˙4ݶ2ik$ϙ0\x8lyzz'5]^g|x=r|`/~ƹ54'%^7g :da|޼~ϟٟ(l;Np~e<5%V Ӳ,בyZ᧙~v|9Ɓ<>+Rr֟r|vC9~xoۊǽ\W. [נdGgZDca9].Hw3OBIV4c6:V_ߥjBW5L1z`6nE+stN0@Cgw yUX l_Jj3@ %%E4e\XkND0R,k#Ew̼ZjIHmpJRbeiJ5ئ#qh$H" ۑ4Hi$q|Fn;TUT iV6-!RDfWdI(mJJݿ?њ:m]u35`(Mw ~x3K{4§o[$(|̒"(㊔b9Z~}I@i F+dJ,j?HVvۢӍ~ZZiɢVj4 }a~wj F`ZIczr J yk7)$v˹T%`MWsZTfTE)z#%TٜkH#%L#!NIuʴChCUX*e:rٓD+M'tPEgXgK%Qd?!C/BX$T/C0 9JBFFlITdl1iYĶvFO "ZV_*P}SpRu2FrR!! R6=9Gԭ5 h_7tt!k] ȺxUV2_PdU@]"{r;si@ip,0^IS,i)Rvlvm͸-︼z!^ѮE-8c}=dJ+|CݔRpepEsĘ Uh=8 F7u-q< #d2C4Zn-̞"F!u Zk2+ l?2kXh-XRfۦ^RZZdjY ԗ?MlvSݎ-kX0i;_BSrEFQ|@=@ #(D߶| NR7,"UuD+M)Y 9FLɮٚ/fvq}2O&Iic#K|;N  D=YRf"sN{U9j4J \sσ{};ݷuY7*MD+gNÁ >f ،ٓRm%,ZJ)2#BhfkI n \>ShrI].?ci:l/qkm %RYrկHB@CuThbM=[DBme1͋\zFhM[9)SݥҾqAe<_Hj\ư]NXQև_'Wpj+B*_;"`3L zEpd{u} cgky ?xs3ݎj$y\^^(Rsu}ͺ^P;|T` yFb*!%jq^7Y~=l7nxu$6p owwXRKvH[hR[JL#u%p@ ϟͷH)y||lr<=>zoFrw0Upug;>:PBql #a;Or&0'|y@ɞ* dw}$lMG&4鏬Bt9nw@L&ia>Pte/iPcT3 M@3:?LT-5f0t ^ƴW eu[kM 7BHY0wG#J+m&[;If m+%2Ȓ!3F-ݞ،{RR*o"B6ҘP: %T:эQ7!P0;hXtt͊-Y@Y[6 A)K$׶)J^/߽g^Ѯø=:| pCp%`R#mcVRhú-XPg !Dl j ߶dOX@$hz"m %UiⲡeTv q#zCz#ïgR*v; t7 tF (nݲuFXGΞ$ߵmː2gu˶hmQ}+g?%B..$U.)Z}F}iY /O-[J5QM$;de]Vl 'St;d7B<W{+zkñzD?/~8dQ_Od*f7|:S*l1 s c-8MLTkKjkؖumïutڐ62ups;:4ѿEnW쯎%3|:c;Å~x\;?wWtZ/B7߰7jXrz<1H.[#o Ty^ϸ$o Vccw_=7?7?/~;s3{קGq Yݞ~DY5՞4///躎 R:_3&_ zx3NS%j>07G:![ik *+\_]+rIN*T)1ڎ5eiFŸ7x\?"lky߱N3뼰ߔw yYga|?g<-3T!X.SJo?8u@wYDMbBz+F6֔Qb ;X8|ğE: ڠ%Qj ;ȠZCQb&M+qiR @+&kh*!mD+$^UᄀjIn+iݐ>A-ȡGJ~I>4viKYU^. *)Ѐ`pJW8۲FktǿWnZ i:Á4=?#J k ʛk8*s-'`~[q$TױYˌ 1GRΨ"ƥ0Ë́$L7_Jmad;8)Mܚ[Bb /v=nڡEJn1mOub<4,ҰlS;yiIhE&WZ0<#J%7spu8o Y*e@# k jj[cCmVTEkNXAEO[*QKu\Pu(mчQƕuwפ1g\v0ƑA]RCZ=Rm)pDw3y׷yŸ_1RFUQ )>SBda3s,F|k!p}s"7 Ҿ{j^>pwz@q^gq@;ІN/ 4˲NǑ_o~LJQ@p s{v36N/)2M~KSg_i 77:Iϟx 7\x#WWǑǧGPT N*u}ۀHu8;A"#kBkJ nV7ChVD@ 5[>GB響_^)MI+*+YR֤i ɢ6m SVKtm:SdƧ3E!iOIaj`f[&8= 7U:p+ DX|f鯮'b3d &!RrFBZS+ٗqM.%hP\? &O۵~oZI"aR"V Ƒa5hI<ܴ4=v0~58U[9Ӳ퀭@8/(`(Ҷ0m%_ٟr vЭ(JAH1P3{q@ºhs=w*Ju851$JFAj, zص>h9qb$OJri~\4͜.ը#Ve MyLK:֬˄U\GMRBAu=5iIԜ%SƵXU#$Ąb;''Ų^ib#I͕*ڹ搙Q@jIX+)K2b##1f|Lt+. ۃ-ņѓ YT   U31T*vT%^%5Ąad FB4[|47bQuՑzJvʨCu[6>ڙ9%jˡ%:t7u_dfh䵺Mbb5JHDTUPjOU=̚2EK %vlк}z(5PnHaj 4 Dq@5'|83 7ҁ )QR"|"A-<}Kv~23OOY%?| Vi15 vOH4ZrzE޲]בbDvy:mI!X։rPm(V]G vwh]D(Z7'QoԱei)Rj[ ;>!bn5?cUqRHH Y*yaGvP-Hm)(azPӌwYgpO 9X EK(e&:NQ/O'.!Jȯ蛏gՈa"kmC6{˒FAP5ҼHU +R[nT:ʖ29/m >Sˆ<*1]~č>T IGL3!%?xZ|ܢ([n)#`܍Ln)!JFe,*LJO)^_:^϶CO [ I #xO_s=v=!xqƢ:MI* zN/Î#u|>|Kki'~>})ݾczƏ>~5Og/UIѳ<<|>!j0eCq($2b"^T-yFp5\vxyy0чDjc]$9vg)%cc6rspwfּ:p8-Ñvx*__Q2PdٓVdLyt.1mHx$LAC10(ئ ihqqy9!9tiCjn±.glghdd5=M&ݔQC Qځ6HH8" V;jh-5 $v#1UT()91{/kJքvԒY'dUz| `z=o0= ZܮE!r,]ζ߰{ĨBLt0 1쉗 i2-"%V:mt+6,djѣvGF @y 1Co8\P "'ʼ|F~'J-? [*TƮG~dcH#Bĝm3[${ON ׹w9t,8y)>2m]1J;RIL:׳,N vȏό°+7u>ʮ( H)wtons^&Η0t>֍T+4axZCN T ;FY)Ǵ–8;1RB =kb d9\G7g/0tOeDnuAtCԊ-OJ) |"H,[ ȒC=j #T(A-bh[95:2Ĝ(!6N}n@D]QvBb/nGZflc0Ip} !aiB)ePb+1 -vDI 5A 5;4B6y,k3Cƌpzd2aZ(k0 co J 4mb]gz7:G'ܸk6]  ,\ٶmZ#T!j*Xk9n?nR÷7QÀ4RVa}+JwR3)x_ٙT.TY(VZ } Dc}|!Wؖfmw9օ藶Eӊ\rې P0]#qHILv 駒S|kEk0<#kmJAx ;b:_N΢ޞ/>2KLZ18yB7N!KBJ2Yg8R&a߽G QJ!OhQÁ.5T>·h%7RkEYI a] mP2ԄRECi>c\>|˹`uޱ ˅ O7lk& I?=~+$~~<|G~&lg~gyw33[|%)ʰg<=[,#Fqrjѷ mc(GnneAôXߨ'b)(=_|ȷ3" ||_VoTes=ʶ($>u 㞇-y}|xôyVﹺjyCX0Ikb!W˅R25zʶN @ 2ҍ'wM)2#\GPD:Dn^jEBj= 5^v$VT3Fy{4tIrD(RL3X)CJI"TĺRKj#Π#BxM=vWȚp#5r9֍F; Jh:gIV^_PF K_ 5悫A1:{. !\e99WeOZ>d?cb]Ll"ez!F2-mAuu|xҔQNNk}{_HkĝKhiju,l/'WK/z쮎wwLa Ï;F ~1$?O̗ j葃㧏?76سyϺm VH9)Z9Or7o U=ewooifTӉ2h.wI69@x04F"3jE+O7 uf@vtH!/őClׅFISʀ`:=RD(XS wmczl׉*i:%hD.~D((mjJ RucPNTw42ՍaN (btd%(doG8C%\"U9c%DխU@R/Zb Pi5a=\mAY͚ m#cHc4Ti/][^%\@ j[%э;|rCl?0Ӷ]=xgik[P K9? V?՘`D7& RE} RKiL(Fߤ=9*jhdzh"ѲC"eYĒHDN3t:no4 "!D aѶ5$kr9tv@7 E!5  Xb-"T^T /\7nGKGVS۶@("0L%Q0! 4ZBu%$0Y2JDIDjLNe^p[DDk,74QvpCmrLE7w_݂DeveZ.SBJ^z+CEFH+Gh m"/B5CHn!ij1L󅮖)9J$~)ឞF֭SNi&%Ȫ_JP\\1n@ r(AGjLжEc֗G5$GQTVhGn[c`+43-Mҵ-R*I!w)%VUYmu<=CӇ=%o|=ӓ}f{p=w5/O9ֆy](-}s7_@LWm94C/~syG׶i_?!t͎gJ'~˿"˿}e:ssg?#~/`srޛv=_|$wCGN c~zuS1'oްg 2ln' ]xo_|-JJ )Uh ۙ?xis {QAk9bLHa/_DrKʰk˷̈G&!i%Ӗ i~Gc*}F)AӉ97aϴîNѵE?)]̖#ᚦՄqI"n)VsnEA}l`.+ JKjMo!4cRDh͏dY||g>%ኜ!'SE/URG*{b]$[ Nי.HݑuS>1#2VaN։< )P4~G DPe`hkW*K-c__RօJim/YBUnmP]t|& aDhENM RBBD3RcA"29J KOGڶCCGTu*$T+œe&f1=!& ^ DVX0ަiPFlrxEqFZ| $XmXRLu-*i(*V*jZrNDI9 ]`BQqGLe|JQH+4?Mk(-2Dܺ!\7EGG; uӹ:]O#x7nOH(LGV-zhj&>(\i]U4r3yBJ""PCp@ x߈J!4n:c%hdIViiT_e!HD7T\yfu%@ E4&kTm[ 9a BKnc//))zDE<+C@*!G*C֗m[Rв%"pmCtz(ղ>w D{wM-X%h=#DI\ tKHDkUȴ"fcB2Om,%9 1/abć6JÞ9<_rΈ\7z #XɌ"79bse1]Wt۲- t=Z(ٴc9?`͈2ؒ1>lᆪ}E3v&{7?p)uy=Ӵ ;:UԭsuuK k<(7,$P}0 X*w( vRr2QvV|&mЦ*Xub{8bv=RY6I2MȢx 21DZ=Pgw1'uY)Am^"'VLqc>O@9n\]GD\j^&H-y }OrF5a/̶n|\zn*C{m˟kbgꄼV7C1?k><BZ2c7sop#XGΏGN#i%T.w_iLѡ37t2Ϲ~{8=_8m| O//@p;i؜yZx:Ik@n簒3yz:zBV!_8:+KcVj뙾i黖DfMկhv3=Տ>GEsO~`KH!*ylkY=cSš% :sAQ7O],;r3bR`駰K1 -*T->Z]s!׉lc->lQ|AuF-\$\4rBi"%O;-uDRGq{!":OL~wT ! ;y]Jp+o_iCkX)jvޡeVvhjĀ0=Rh܇LUF.m[k6;Fvkb)Ii[P'ܶ`%V e ;n*hu)RºV!-Ї#ʠۆ\L+ҋ:i7M=`kCӴ% FBd]7Z}1[')c#W[. 5x(%RJem1V3TffrQs]͈.K%z)Rѥޣlwc օiA S~9#EʢF7hv{r_V+}ɐX2 Ў=q]Rt_эby(s{Tti %%$L (2J: "L䵦@~~/3ʌa%D;%BΕtU׏\*5MC QdY/)+6l#ƪ .X3tM.HS )CIMc]ڡǯ)Td5+]=I(K\!J$) D;"C 䅲V3nd]ۑ$Y@GdӁL5N']}"TG&nv]:G +@{2\"[Mܶj.ΠLm aКyYhcku[Q;wӐHlBc4U12أ_B IIV%t[}Bz ׉m**zd)d>SU@pQ"v܃ ?V؁uT@ߏ+{RtiPZA ,gh,gJ(]n;(=.dɥKX%s׬?twl_941^݀*N7D49ʼnA-hH 0MÿYO°u=U} ڎ~#޿f0 <_O)1qz:]\/g8qgȑ˱ZO//\_mJb}:L,AILcRqVZ"rۏtW(e1<=>r[1J?~Êjg݁_3z^>'gpߒ[C8-ܽe"}3c9zV~G.V7W<<>w[ٖ#19n^.XP~#>5jZ'>3(0VLp|O7-? 1 M4'ox#rIp^]&χ+I8o5Fj%OO,煸JH4\$4|lƺ{Rtm{O8>< Q/x-rl1Bevq7N3q\K˿$@mBBt;5t4, l WBF\^pˊzҍ!y ,tWaA-R03mP$d0vL\NVD6Px_EgJȺQH@ ![i#mߓmjbNT\iC. ίt>%ٍB}Et&hCѪʅ"mR;\% F X),Q))PXC3mů5wq|)Ac,t&:_W1 F*dPNb 1tŴ!jBl{H !QcqRJܺ Pf@ZOiL T JRe+ :TX((F#$2QKg"Rrv+%׷ PMʂ4հ@;ŕEVaRE&VBrA\`w,c}ݱ4$U\0H?r-Z[Kr#Lw"i1]K Ve=Ӣm3i]WaKv>nk O~?Cn Ȯ1֕JX E4uF)1Tj.eA FJeS^D} ) 9q.DPV=*S-Blr:"r"ei[/h[@ (|B(G ] %5Z7d"QMR'L̐KAѓDa=ot7hTRDE[b !zЬ3:7 2G A*CX*j~?"D6 2$6Ȉ/W6hc%Wk()(D)D֞VUΈRcDńb-BuSśv#xbSIIH%WJjR.@(nPZYrKTҡP]; # .DQ#lq5~j-n *F8p#J d ۂ5Jl:&K9JJ_1W*ARiHwRݚHRRyqi}}=E@_v^Qe \*dבJ!TLeEu%F ȅy 1md##|a P8I5 J d֞UBZնډm(ϔvE ))cg4>xnĴ=)%Mײ}T`ߘ W_ҵLd-G:04*W4RVb_#}%e@6*_`2㷍BJlFwLv:zΛiZ´C$laizZ_=Ӊm'].-t&U?t1();^Q B] 1%=w%+߿>sljyt^@*?޳=/gGpf7X3b8Ϟ`#/G_=׷{\P&4abȲn eVڦ CRx>R8"o9%YP }ˋ[Ep]Q3iھg7qh) VhbuWQ v{,) )./8_곸oL/'?/<>#~?Ϙ =zlp0 DpFk, W h4l>)6:c?KzҊ"W8g?_ԩ]I]'3pKaY'H!S֍!'a$ǂX66o"vȢ0fw"8Ob\˲QlKQ $\؈vLwDOA-R% % ߈ )!5)bIr(Y_AhD(#֩ B8G q1Gd.'a)%2O4Vy~iѐ׹LWnٓuO3ִ R" LQ<rx%QM(;L; ewz##;RbJ cUWt[ZC, ϡ%GGބ a-Zi)#YI=BH Ӷ|`[39gdȈ3I\-!]^JWHk."J=ʲTTcQe;+1 %vpD# ]kITwUWOW9zjmqCNC -Yiar5[.DQv5f/!4pKkveA;}%$S@]$"GL-F0k) QXMӚ{U"2%T1#ALEi{d#R{ač܏ERYJIDckXWL!_bm!s}>lO Lʚ][? 6 hE.Y;)hJAQO%%P{ڠj]e7m#m1#%J+r *,ɑRJH)tLnjU^ %J M9Lօws#D %%`'4BFyF&.~k@cGr@Jt~ATR";H8(HlCNgLߓejkj{`Fz5h!P"vĎzvH-Ȧ ^'ZJv)ӔHyE6 -r|4cz5u{.N)UCDaFw}= jVI}XSZM*{{G-j=)s$+mۙy 5 h+>5k݈̅mY(F5wHLyCRŶM%GM }<#,Ĕy~zt?cg#Û;q xs&'Èn OX+29P0Br"H0׍'#$/Lv5-/ïMHLa&ZnL#Z+n޼F /#.x~WU.0\3eOxP!5'1Afqχ{"`>Wp'w^Ejǧ8?Ee1e6:B x|| l.kzӲ8M1'Lcy#:|$Hdȸg/~@۞2 r5~ KѦE[5ފ8!B졕)KBImwȶc=;~ ȥ`LTân?bX!Q Z!l4\0-BXP@ʂAc1^Qm1"dFhHT*BւH(ӢwW] @QF!0u 5:`b&ώm~j[W=GDg㶙)b0RVdE`ei>ҵh ֎O<ƐR$v>ZOA9,v#܂eaYE/ $ZHqCc(F@+ڮcs3&iHi%hLײ}<ӆjQYGjTw@Kj![XԚ{pCnsizuri8~@ێLPULas&Շ]}{vH4q!#KIYHW:HH- KV!A#дK|w(G?Oܽ2ޟW>n7#nOaz«[ԤD-neYN4g)ik|*<=v [ MW|-mXȕlwxϕj8 Y[O4^ǞCסGl) `Ɩi_&PYs9OLjdNN6l\a~wj4x p }wM҅ Ikl9y>}YDHg!2ՁnV5Yٺ ݏ8:'M΅6/|z}˴u+/!IIu4tzoK ʐr@]y:#F tC2zfN!J m\pƑ'VR}39nHt2PSbmhۍDt=Xӡ]lM{u uP!;*ktF"%mz;Ǖ=.IJ|>PR3clgQ-W:0-{C)[(#DB-:]%&ؾK!\Z ݢA5Qb&BVTVH\7n ZFٶU%˙f(HBbc /1B dlVFrrH#P9[ߡLW/(JPn=Bݢ!Ȇ$)z:>RuA-E"iڦFbaD H5j"%Z@>h6ӌVvMϺjXg>=%cl Ar RKĎD$H =jw$x4N^*Uz*!`TK JƨmcE#JJ 9'\g-IZSLxu֎klU۰(㘖Z"Ɂ4Nma^1ub48Mi!]Gc<8|R+3/Q˼P]J͸NW V:Olw)xXtXv[8rkƹh#/#.(ӴO*8hڎ Z@:4]CUJ[R0kJ Np eQeo6XF)wrU"lZQeAJˡX03h-Vz/lnbUc{h:o9p-+Ɗ+{h,o{؈R۞ w(zw` j z2zsG 뜋b y&chD)P Vp_5io )CJN.JDxYBə첷ئz9Ÿ3FZ-,D3wh]gv,Ye7qvjMC4_uxn w\9]&ڻ-?ݟs}>:+_ops=o߱$~9vA5X.WLӂw?'}H.eB :Y \/llz)bV2y_abwU2W3a` 8폴}G(833qZq\x{wu.̦hĻwo@I;\ӲL8t81 a]xswGL[2bfk`DQn9. o޿#g-O۷9m/8EMOp?i;'^."ڭq[Ҳp8hx-Al(JFº& S^kw2n3L3ZfR0^…޵ ;P2r?QE6۞%+QdaDV46wy%)0%- 5)IV@Ft.DHM˪#m7,;j c.hUl 1k*u!)Űߐ5 ;"rUc 7oS)5saM^`*uG)X0_.#L3~mi߶H(KW2vúpwH 9XBb!q>Q @\KVˈi<#uR]5womO&R( s5Xsa-l?MA e{(m55YMGZBL` et;vHH` *~#%䘹^1# YzxĒp>4F[AT6(FYsT(|A 08Ӑ2QK_[p ,VR#ymqMs=0CZ)P!+C\^Q-`Nv@LĔ(9Ap־a3h(UB|#XYW)e̳lDCĐZ!iR9\#F9-Ra[J5,VL]kv=opָcvhבV̥J&-_ҩX3|u$+2YajdoӸpY^O4lh(1b*f:cnvؒ\K\=y"e VYJv'1+"(J+B^"hJU8rXa2*Ή-{aMIU=b#rz@VPVPη!8.Zju bvrݷ<`Mi~ QJBuzHe<3^qڑIN.I8O ;( x{Vq]Dp'ƱmotQ% ;%,10No2 /-5w~|y(H Q9,ypG۶<_Âl'<L]?e,L۠bN3X/z : Ũ7Ȃ&T4k4#)d I@5ƢQ ^ %Ǻ(X '0IT NUJ.RC@R&A+0y2]Y#ӑRB[)vÀ ~oTUهYD=T8cuYjkS B}d.8ƒn0une+:Jeubm01|o[|'G(,ao;4mʕ 9)#DQde<ˉvaGml(\CYuN6)R@e+T2ӿ}C_jn9ÑR' Q boPZyaєA*U0j8^ʂ0yT JvEM+[)*SϨ%&e2hJSAyy|w_˫KR[YD4,ϟtֶ^JTK^e=5e<0OD=hTm軁ue bLn˲`<@|:IeisLp:<͖\t22r{RUm06=Zq\'jrŸ"HC@8)`%r}+6+mp=yn[qĀv^%Q$‘woQ7"OAw;HȔF֚!6(tEB͆P} *PS i[jN5vT'HiQLm<(kf́~xrz1ޡra^pfAKp|UmyA݈BJqf@ 1Dk| ԉyz1B`WlvtThYk؞N]nwlGʜ T%Ҿ wG8ʠE%ǂИrH* )baqe$o}+e2)p6녜cb1 U ݈uIB2-ua!AZ)D)Ƅ`j-TBA7b7$|#I+*gT&b\lmQQkSmQe԰B8˗>rE6\(yLEdJ)85@gNh`O72ܷ~;G޾2^X6S R|d\sM+2 ,15qk9[C۴ u&::*pFwVf;`&˗'*ߐ~rǯ8ڇcI D3ŒLe}A".cK@)"Z]#ۘ !JF{wʒˊvL .nTMX#HN@n68H;JNHqxr8ic{?`6TnxKֆwbkn*ī54Z Q dE\"7mOJj8hA9w۠Ľ F;%7Xc Xy,}+(FUQ9D6,3*~ݖa{&L7bфLe5Jb+mk\.gJ{*UJ *y$UE X4۞0H1MktSS#Uȕ2E)Z2*c>=ӼGpG J83Mҙe|ĵ a-Pa]V9HG q&0lk"UE":!O#Bk<DIr΁f@M Nu 2Dn5ҚN f\S"XtXB T ËTe-r+Ϩ`GxRʨ8`;n֚e Ҟv''<6ԔHZ,o h#r~Lu5gq-Z S;jA`RIy`>| Js]1jM<0cmh`)iB!ae%i$2y]Ylja&NK6/XO,%л9JĸPBBtJd=f@HqAiSx8QVSN2woIJ8_y+n)o p9]珉Kg~_p ԘkeG>|si;·]?ᄃȘ#̑x% aZPqR׉yag^Q޶JQL ~m<=+ZyGU5f:bS/Z\1qQS!ȰݰL}aGN?<ȘXh ~O-x[[/zjYOWٿecF9uY#!'qf3l.tp`[+*WG6ʲq/ _Baeg5lw;^%a%nY֕^Y6w{H-FpJSs! HcW]b\ܦgY!wXݎer232ufgZO?w1Ntds`k&wHӶTnR7`/St"-+$P+M/].ض#fB6LmZԒ) OJpޑJ%ʙ' VR U6;Bs߰+Ji) +kmX+H2o(Cp:_e"xSvMYʬY;[ s ( 1(vˈz z=2]T ;ˉ(C~ď/;T,͞ T΋Kzyf{Ha˰鱮lIQkIJ~I3gQcDuz(UVrY|LY]KbNEf%Bur5e @lo(9C*xi󕡻u I[g4ߣ@bZȶCTՕtu[9x0t;0lJUu(UayO)߽]k@[M ZYֈ=;E5-LIд;e{|+/(2IipMZO8ӑA(8%\goԕrԴ "tFF+~dJ%$RX7wbv H\ȸW J?UUtۺFTy!EuL]([:oN#UI2_x?HG:e:e͋6͖pPJR*ݺRBuxEa$U@q*9PzR4mlwP800b^l %'/XgfN/pHV)E.]7ܤi@DJN; 4.xa{*b!Ji8 qMSҊ))`SxO, mIDL*%sJF W~A]UE@.eBkExo0NzbT9yZ%éMAF2CJz2RMNT0m S#eP"PFdkq⛆y4N;kHS$U*?EU&/i]J-Zf)K*5#aťPc؎8Y.\۠\ edEF{L-ˌ6de,j`vرWiH&?}wr,y^Xkt8q}=am/78ww73}=93f#!')RYzX+RV :K$sxz#?~΅? LYeÅE&\w&P$nKgv݆ӁV y-iFWMݲ^G;Jx"yy~RJmT$ei|T(feրZj,7aea Qoji=|9>eĉ8Q(Lқ*jOX"IlpAD7nƽqDqήך[Ƙ7l Y{:H2Sm+yYآGDSiD s鿋 ߗihlB0q=;́/+m.#HEx8Dĺ-تᖒ]FdTy&%l-nyqkj.ذ]m_DaANڔ/L%T)vW=@r[\IF([a"Zi}E+Z ~VaFh'lZ(x>?]fٷ"a)BP9B!8_'dNޓSFX#"ͅWLйnl[mAYh ~"AW-2fH-mWL3V uCsh, P7 COMSJ”H!2=v}fKmخcS XJk2FDs $D"BǀE쯨AM #U xE ʵD>v8_<=f8mUsi#DOrZDșuvC$G%VRXQ/bM5$lΠ[MXۢ$$npKiD0/mJ*Iߴq*]#U&'wP|V[L= BZ' SSѡtK&6bkS6{9cm5pWiV *S #H=m;V1bgxB6;)}@d/\ 4TVmb; eV@RC[&vEl[Dk Skhd%OZQ+~^}5RK %tpxоB*zDB^ Ô 4!W˯}p4OJӵd )n(BjC[#9(DeG~W.C='mDb+(p~eJJZ"ER4`R-!s*qQR }g/Au|BT)kp,ؼcqZ녡Rィ.ՆWl10GRdә}%#B~ֆw/˯hϾ Zzʻ{߼oZή( z=uB ź,\/bQk ݎ3q)yثXeM #DN:^=?1n`Vb < Ez9EjȆ-n蜙#KP7֥*P?GRyO YJeIc/dn;Bp98mٶ6tn!"3. AyI!bWg*\"V1ye~z(n&lU(?!Pu[z)=|ZDw`L-e1,ZܲR .V#S8U RrX4ZIY"r!WȤ2ߜ(]iP$R#JZwHM%Bh*0JPJ(f󁪪pa~E"+jV6u) 61fn ʿJB,NY?QȩlT*+.,%&81Rr AHRHH#wd%#9K}AIbP*R\pqEw;NIۈ5ΕK.%7H%ޓӄ "?CQH%f*evDcۻ9E"X7U!",6Rɏ3+uwe]zJ]21Jaڎ8^EDhwewImJ_ ҶDR Hr~$v}yW Rq\y.22~Ӑ"2BPХ_59T - 92V~֜yuhui/dOU!Pqh-Kdq9Jзjoe\h"Jɢt,>@@"O yP&./iD u}ϰ@hBh!cOwy j-[}Zq}kSAmx[g}|;iHٗ/J^Q"R/riVTڠNWh[8ojɳNS3T@uJ)X$ a[Q=Ĉ$mɓP&@ Jr6nU[aʂTT:}Σ\@WDc!%W H9BDKW l^B/d &t;g{tva Mx=?9!j-1Q8Η34F%%4\ƅݫGie&=Z(eHB݆1У+mj\ Mr9}|FI9t\~8b F~6a<~đx'ԄubL[(f09q}M]Ǐ~S~Wƴ)D$0Om?!dLp~#}O۟5|xh?~=//xUE~rbNW\W+\GB, j]xPi^Hiô5yMǘ<)zb{į~3wu5R4u|f8`ۚˉWOCNI^>>V=: ݭx3N_p,9TcyZm|l!@Pd M)ßltM,"ejCc x?pLiLзTJr\d#}2NL{8ŀ_~ɲ8$!H2 94̰?Pr>9am<"XOŒ`+d)Fqpm-L]u$)dlƉ*T,V,3kXHBb ܊AJz>Gv'_>0<&ADZQ2~=!mK 6~Aي~x""խW#x0uSY"uVtz ϧ:$ Hv=)z'fwS HLRf{)dHP~/yT u_>ݣd@ 2xDHR3- ZFd!iw"a]%.FZ[)~!m#,#~#DJBųA].6.ܥԃA ۴!uETH1Zn#nUd{#"ٕFJ!T]-)Dt*.R [ Lʑ,n$%pV(ߣkm Ie[gK)µ-[EJDme[=usy-Sy͕ȃJ*l@*j ֬-JUhӂp%:' M3Yd̥C%a+y+"e Y[4 eퟦB+PH ۺC0uw1]AJDӖ<|)caH!T1Z²Ho 0EkAFVPZˑ=ϸ % i Ӕ[uTz[O`t8$ZS@-B¯Ϙ௔.BM) jrTig Jkt5c+ $`;Z`2`rG\TMЄ 1'y)Ew@ihr˥ v9}H1%Bmh49(OR7dQ-TmߦII2*92*>D \f&ҼD iͺnt]Os8p>MȺF$Q0̗=?oHy_=_1G~ V_qu5ǰke|<#!ZgO_׍;Îm\{G,=Wcڊ|Ew-N~ӻt@IP4: =/G⣟f>kH6KU;.U]x4 ~xל+W_/g #py^FrJu#0H0t|?ˮ>Qr7uK)֍#u]33}עyYPYC4O- RU錊Bz_1lՑ獻{/rYUDXrn_1R 3/pmub]e#^*;4e96"6T'خEXgxT%ij4|kO>";2_ ko^m䊵B%ۦ?gL'yϙߢ?O)_t[qncG$з ʅpɲ"R%)QP"ܲ%1UԆ:aL?\>@+ bV91?(K7NR\O Yb^$ȔhV Y Zyn,JKi =hyv %2*2z4wڔLF2U)wwV`{tBV}*-:ǂv|G$O ckt!O#ܾTp?Pd!,Y;0]) LE6 $2ZAt!H}>~-:Kbm$y,uVid r\zu{q*S87[Mȉ n@*žYB@:zn`f1\_~9}z&`${PV/b>x =73ͮ%OhEU%-I[HI6 9<<1O#T|zy氿o8ؽzݛ?cY?0/˅P|p><5߽%ˉ9B^}L$/Ӆ .3~ "JR393]兜#BԆ,B[o-JwlYa_^o;T.9+H#l|9S5˺dyGavt|fJ)QYKV#Uw 2_IFREKR]D f >Qrppb͟(0;/Uu1",f蹜ܦ 7]?// SQZcmE+S[ڧ/b16-X>51dQY: U5y`iI>r {PXළnaeͬ5n 7h{__k3o听4۶aX/ĸkK sD&[G5e[ *X6n[K u&$JAeMlo˴UJtSʏZY,9rm#i>P o[%R._DA TUkF 4Rw]1S7C֊a.t9BRάD[[Q%2ndM@v͡+]^wؖUcK/M`(EEԢ)CRf }Dꚰ疪xDRDW\ *Z9(rRl~p@C@yt7tpXk\nDHUR"O2fׂDb{da6VuD&Xc"D_$F#+ֵD.RL%K\_H]m8y+E ef'%t97ú ~Zlˌ Vk9ݑebB Lecf) vrsƢd#aв*$9sI@Wr,Xܘ_E˲4AV-2 #(X"dL]e(-ۨ)A% ۆ ׈K!"sIlS =lӂٵ ٮW,Jl2Ȑ`rƢte3b:F[KBDaHJUw.]m9"ǝ'TU[Gm /DEXI X b 7,r.Cn`~)xڎ ֗K]*,L#%%Ks$H u.2#ٖϿ>~iDLX3ͮ:Вqy@+ŇO+~OZ`O \q>uݎ:NDU߾i{˪#`S;yVXWv;f2QY˺n\OgDe *Viּ-Qf֭аt[{,1MB۟wZe7O "ODƿ)r/|ȸ(ѷuݰ[[P|ھ=W$ ?$2Lvח3y#YJԖؖ2RhAyص=[mIcħ )&02jQ!_N)%Dfw QEτ(/|Cu+b)a 9"-d ݵ5 ŭ,D~8B5+}{Zj;h =BHPw@aLQGUL68Y6Zc 3IyiJ9:1qowuC2?Go **V.~B `E&edPmcg-oR}^4|Y1B`C-wxL>pvئ&ŒNR>%vYKr;rHl6ѥ˛VضG3n[/4ݞI䖂E=~g?3t(Sc^ wsE$)yֶ.Q[̨-&rR͂.9#D=rb'.qU_2\>Ana\툱Zn&۶RU]4MXc+X4)g­+~O- ¯(kˤ9BʖɹH]3;[i)Bت )40U"'I\3m0|nC7e-.T%O@@V(mL)*LgdX%uM\f*m ϸH.o=mU6Zd[6Cq{3F3ĄDT[X;d;bd~`Idv(P%Fj"~J=DVQ-YnPV+RZ)bԳ nX瑮m Rօt$Eusf\7"YBkI!QZrh+x4#m(]amz[d QU{l!,nP6ex%U!rQ-R*B{m e@SL늪?.[iC҂^VZ z&PJ ]5/R.)0MbU2~>e[3zwG""hk)K^F(Y>xA˱`\ C!έ+Η*ɚ3.3)iB۲m%|-nՑgay0\JL' e(Đ" %Sh 1ņ)kvƊg;L*'T2Dԇ}y/˛y8$rVUKY5W|A uh&Ta"D,R]cSP;uɶE.3Ҕqݖ_9ߔ,,c8"2m[c:_v-N%)TM[6aVT 2/ܽ~DdAe j>y_4]!]woMLO:1TxftO a)lHHgNe[٦PSշ_7"?)I\?>xd>^w;T~"0t-߿{ˮ1CCȔy9z?2 =QIZ4ί|D7|S5?캎/nQ֠x||724u# uv>2/ 9ej@jIudx%2M7F []7BFo^HH݁H(uU\>~~2O4݁$ Dum҄yƏW "-zftCf|y Ƿ?9T"AZdlDUIQ*A+j 3Q)JU 2a(aӄ=y$lZI" SwTwr{cjΕBiHQʄt3i"idA@pPWx~@ʊ/R4*K?]ΤT$9Fھ'Lܓl|ﰝ)یPnĭЛ2FwS(Ki \Df[3EJQǤ0hb)ێƹI2rr! D.(Kma-BRcPGDȀθZS}2"e<+1\IEq{tyL}pnh\!HShX) (<M/(աkrHeY#F*<mNZDe\О]p,QFƩ\lS "ݺ+ 3T9?vW?0hUÌn$P ѳ^TME U ١lW0u+Q\&)fde-xN䐐H/$U_f1*5Fي'mJDSf3{}HYW)%̰'bE6Iioއd8unBV+}|U@? R-)'R(4/G~@rԖ~϶qBjEOoc۶g=ժ"b>{{tfBBZ$ҡct$M@BHN6{ǎUr4Q͘k{QID_*?B\7Շ1UjmNeѥsBUkژnoMG3g  ZD̠`=wK"X@ Alۥ"M!PAKm:_cw$[4 9lDw_FX/oMC~c=n+1ouޣ["%% D|HIZnFa퀟.Hۡ$ ^11®B&EL S!.G2HKʁ|y)g$C#16!Tu{)R1W|9;iex=#clc> $ڶR!͞b eYi%LZbt3 w8` 1K k*]*_Wݍk$>IHI48bZ+5SSJ YZaDɡb i mFJԖ_p>U+iG Q"@9=mĈIbE)%5HY- h)J`mdtɶx!JeھEI"~^i3ED#1OXcyAuH!WIbLud?P2,eCĂah6EE3I㭲"7)c-5ExP^ζJ'Id߲\HQZ6Ik= }O\o_] iܑV$mųJeٓH6a VBXm]u a+U*n73Hc0l#@*ʔYA 5[S]CXdY+) 1J8PTZ*e@.d}&@Pژ@Rb^Iy& m[ϤBH"`U8T/[f@Z}{9^FטV eb Jtp*0N5 fBKENR ) wX*U =3 fLk5W V[MCJg[h BYu(~e (Ғ}&&24FbFh:| X3 grFYzn@z;H-R`ۮň4>1nvpRR`.ڶϽG!Zhf=zr}:8ȵsGU\sg@Κ H]@B R(y|L wzQ{(`xg[d`$*A-eLE "gK6@ RD}^_M4q DG84BMX/eH1Vlr-wN(r)XcڰhN(l{D+RXd>arvB %G")rg{)%XDF!IuEr\pm3[Hfײ]n䔘օn_!VBV0]Fp|8I6N9~7B<<}$i|_Ԇ#C%Y K}ozDR ]v;?9Hן? ;Ǯfg.nBR/MCX=7l~Y>}R;c33Ph %E,(e]D G:kɡƘ-maF)x^t "ѽu=uY֕O?&,M$F/,+5MߑiCJqێf/ئa>_:M*xFӴ dw@5(]c|RJRJ)u-Frf^ίXѕʩqOi2dN)$ !фjټ(Z" _lCP4ݣ3( q!Ki;V,~!;̺HX0qttqG=+p0b t,(2U|U@ 9%Qݞol&LdYh)pA๾XQkRx)iEKXF#iX:@sdۑDf}JY)F)WX n49:֒$9j!7H$Ah۲ kXtJ(\XR>r{{aYR0B7-+RBE[1VWEʹ#C>XKھ!%}5;H|ȒЧO8H#mtƶ=m:ZqÎ"2HBVH?@㝸k ]е;|{{EP bv89iiZhe`=vn$$LZ&Hɓ!2: hh0ڈk4؃,Y6"ZO~A a4mp< ?gD݀R`ԋ6J i"8o4ERdCH krT?zU# #Eh R|BQ`5-Bjރ ouRRX끦4!Js@ي,yVU/bBJ4aGʵp@M 2'{=fQ;,VSA&I z Ik'ݫU: Ev%kVòM1EiM=8&Ѷ MG^߈V3 4# >,ېeL Vߵ{BaFZNE(Y3Թ֣,0B*V;-#)GF Ijf* 62tM15=:d+0v8!]̂<۷@] hT\֢V~hvfQ7"T 6@R%Đ]OZ?nBln ",)Ole}? iq4zHG*A  pa*,@dX=|exVJ/T%<K7ݶu,pNA7 +e" |x@~Ba;3kKTNo&o#"gzٶmtmNn8C~̑u0Qhciicih! Z6a{@#"uﬡdJ@kG\߾ ie z~EÏWtӃBTu$(70smfU )BV =hi1Ar/_i ϟDC6o¼Mo/cX] X!C74Xn5^:8(ag%Tc$!,joΙqI>6=͡!hj\)sPδ)Dn[%,ooXvcKƸZUW1o8ɼpRc=@]2J*3ry JdSmiZȊLç;ٴ(U R+y֒ %WEXI8"~>kb^i\cldeЊ\>; ; "($ <8=BʕbS@JBKJ\9,3vwbSfGZnvqB SJ#lb]HB?@d4m%) `Vrh*ԍ jdʤ"\{TB"b.Ⱦs*=]ۢ!2HR7q%iwDm,eդO BUõΉ7Q4> ])T$4|/2S-@6CQ|zeF#@ĄSv'$\RB@Ebf2zV l#N*Jru{p򂒹>3[E*,3Av-_6HTӲdpR"LHMخT$X 5˖J{zDT!r,C;B R"%(=0*ZC`3m!\.֡m= Yxt -Ex;Q~ߛH]/?Vڎ-9X Ȅnk+KF"GrAcl+1dP߽an4dِ3^1MGZr#"}#ArJyfo*HĮtU2hrJi)B'XhDג3bStE mwR=x)o\2B+c) ĕ2EׅF A}}H_Z7#k]4q+Y+eƿU#Pʰ9OOXۗOrfapdn(2kQQ,i%|#fp}Cl"N'iSw @ SôtO\^QTօ%z?.ld"BͮrI>ay8vyl9cp8C`[=E)9 #3zo?W1O3?"D<ǾLJmjWv;WRdgׅq2O;򂴕f31gteEH5d o5$oˍG[_Iۅs7o_/ ?OʲL9Lh)yXX+ma|a;U5l,MP]Sp4 ۼ_?o ivT18}+_do%蚞Pv;Ge& D_O7l+%t\ER(LߵUtngB@e[R"J+]hu1=¡u=qR| ]fiEv F)"ÇZ!Ѣm~dn(1R@ZꎹEl@:P8Ӄ.gl`<% ,@Fum-i F`wiHXVy_ᥰNGT6Rs1(ۑEŸ+uxeYQ9nSd)d"V֌h:DN`Zrzi߾ӯLHF!|bq\-\RSי7C~TKBu=PQB"@jGQkzaulBjŲNtJب?nEQM] skhC5⺆|5 9$Aj #>bo"̷J[nkQ^H]٦3ֶDZ.d6N " Ja(Rչl4zm{ Hc*(RRj*zr\hG432D1V6ŵǺ u)X=2BYRHTû 㗥(H ֹ+*5eo!%DRv s")cFJIʲ%7A!*A6+3nwX@#R86Pm-+p̀̒ w"č QR{uFZюuRf8"dQj]-*%BיMF0L?"8$2qY!ӝ\߿~ÀuƒivϺ-YC]am+z~ ) ZE ǿ-_T1 MH˂v:U/sɜԋ|LveɱPF1"m0C|XUkGڎ4nZҺĒ*tCCf ]KtuC%ayj ?[ 45m5({03s1-#vwTHte~{X_%jlY(!* x'p +2$p$,grZ:~Q*N\-,Bk ()3<~IFہV[5&7"N&"z7@0%R=lĒͶBaQͮgXrkaגo-$cgbJLg>+??k)~ )N?oo%q^s,,VҺ"cFů,B˗otQ-H;y5b3ui_^ïy\~Œ C֌˿}~+44aCn GaRוTB_X]=RlF#y,ޓ d+QiyyӰg 63:x8T Zs[N=I^^ѻb$sX97Sg^__Z4 g~ov [BJZ]Pct yb9*L@"ɴ/39&aic6L,h(JrP1l=<`v۲##?5Oʩxnhyﹽ_|#rNhcuR`Y/(% EJ-apb3I6, 49au=LA 4"G?r_Q1@т,.Nۂ6=ԯ]"T"FJZ{/\i>~zeq]OwȘI`'4T%L( W!^e524Oϐ$)b)S@ C1 7dVa@V?#D*f5f!$d.t>D߾洲;.U.UR|IhڞuYC+#PP %G¶êt.gZ׳g+^#(R z`],Ɩ TR쏏Cz`9b:G0oJYXJ,XIY6Xg7Z42մBM"VH!Qd8>"0mUOY ""|ѕE 'ZLR'$pCV{hЧG_!u}iEKLr&炳 t=%SÁRF0 3 ~G _VagXdc+F7z@UND& BWd&)Vp( .$qhzE R=!USAgéFW0Ŷ֨UfGQŴNZn55 nikւnL; JUȝE|y(U7RI-\k \&Z# &15 VwH%X 'KA -ihXM)F?C rhwPcް_wXk) |y҂2li_K^^x8=0/KJR;"6/'X QF\nX)A _߰Bq\WkX+m։y?ve5ȯ>~_̧ϟӚcXZRHgxﹽyD#膞og2aXɌ+C׳ϷpȅmQp}y{i#l4ß@.;-ӯ>Sb l2Bg\˺$B6}ӱq'r:mn7GE:FDInN2k lY6>xeXx}#g 2RD@() :WAZW6W줩8a92nDed(PsE%YSa)b<浊|Lk}VYߐd/cw.Y_9yEZEJs+֖2O䘡SJgN÷!ˆ?Y0+M0E""[`@ ?Oĵc㑬6 HFc#zC:.Ww86HdH%AθGBZ|=I Zg[?S=8kIˈ6,f {ӱ 'X1=6 ,tT H)"ٯ!LkLD2)FʺV !DX QfsNlwiJ U S"g=) ]=fT|jZlHɕwˍ0DlC!z~y๞oXg݁jV@ uZ{X|B\WP1} JbmKuQD‡,7B(UO{R%ߟ()AզZȵ,Z:u*&)T6fŭÝ<.Vn:RAz޻2 \C$K2(:"EkD!5a S JikWV/ZKXgl aF,D1թbe}% %q!jGôM%8]"b= hA6Þ@ RN@ ǥێ(uBDZw]KX[ΔpPKV6&3\ru<O#5ށ%(:f~̼-]fvh&RНo-qw< Fk[EVib Gy8~Gi?ZKFl Ǐg2mYƕ9&mE!g٦+J8m-nt}Z pP =qHkY )%"&HENDI b)V"BɞoyC˂ u4C%Z6^P/j1`օ<ٶR bae,?S U \-xѠڌzTy$-aPO߁1HX7ElR{aca$~]P7 ]\Ŷb =qR׆ik+VǩbE1$ЎmQ^ m*NY(lUmD6 5<ˌlJ(,R9Dm,u{3a۶wXLitV"ݩRn oXAĺ?vb<"VJ7Ӓy0Bԡz}_Řϥ7@Xn|? HLca|u+>e/~͗/o|y{fV3F6Bpz|~O4o4q]&9e*鉰mx1/HFtb :GӁuy|_?v-//|x<-7m[Ӵ6tnVAU␥* $,T*$AABC <F8lA4X`ڡt\oz("(E ~5NfÛmpǏ 1Zaw`<!Î>Z[eCQJJ5z6k&?X(h-k:GqCu<~yPFbMA-kB}UT)x&zSWRۡ^J~Pm 3(n&l YWVh)q[Be"_/rn3t}̥۶ۋ֭IbD莜kWA5k~Dؖ9T@OZ / u]$0INR)2PRG։HP  R/J +/eͬBw|K!g|7cyF7;*O g2, +BQ(mR!kS#e7N-|\he'%U,,ELhJ/3o&RvdA6 EB #%/1F6+24Jm1 ohmSq J$P#BItF6k3?5_rD%`]?cD75HM7C%Jun~%6tF7b9,Ҁr x=oA6-niwHղ G̸״dp#jZZF+q\HۆWKXm*ۣDM6U#X1VcGPm17mK "s! ؒ2D[ߡ`^1g_2BZ3+bhLƧWDrTC![XDD@/ֵ:$i%$'DW%ԢlTU1PbČ:\0wPr[C".h])jB*Dp8Rc YJ}i;g,]Gt{( =CRζʛniQ 5,ndeY*0t~byzg?9H!э=qݰ}˹Fz w}L a Mx}%7m|ŗ(!`T-.77+}?]'ox}~tBu Ȱ۠#0#x];UlBЭf~|;._^PCl1qYf _"KmWX eB%8Nd=i8Ny! <{^|ϾM+;ھ%-oٜo%8tQ LcL~eaO"/Kn Y ޽-eUHVE~f:h w牰nxQ8B-[cIJ|͛7<_pḯx蛡]~`[<\"ndImwH*>qwB ٷ]G{i#m:]iƎ{RN+qvTʙf$0/+R n N+f7H!x6&PFB(xI)q\k7oHm۸iZpvYfN5O/=[l /3m{ rhhBXq ;QZmpF(u#+5J)Br<"sC><Qw1/3G1 e V42D-) tX K$@QReg5:Dvw  "(\AjwV|)$7P@) ZC,˼a) B9@8tĚ1bވE5 (-%%F $]cW_c=xu% gx@uCk zʰKAAΞtR@5 %dAjJjUWF2%\//4In%Fask-kšR$FbHI{G t¹?-Z\+]G|BQ, ҶG2dѐ#%v'4/C K QZ?8Ϻ:l7 JY$&t;"̈.yS}@(ɷ4MOJ͕•CƒT%*` iP%]^дܲ0@!ſBptHp)Zv Ms/әl-?-qڐRQZKn ~]GUD !|F$pHfRtİQ:m;A0s\zA* Z2xnnRI(*h:'/Ρo+nmJBpo"VYJ#yXJ-V6[;\%lڈp}Du;rm{ynT;<6MJ(o/(=T2$4\]2(lF #da^j/W.sBIw>ٵ2GR(f:t{DU* Ҵhp]ga ;)*LI( QD4_Wt`H+B E<#OIdSݔ7qDv=y0cbYEFj(#mB7Q`Ta1B\xw=t%r-(R"JhdOVq~->F!B "~B~»q9r<"?%Di@WT; "'F"EŷmAI$i"a:H%W$p2!l9W`ɦ[e%;j:h@QQ 9upC(}|SCv#0}rͮw\Gv#zF$JU]֭P@&$RKf8@WR2lA%%D %p~F5=1MyA31HJ*8׭cB*#1}~_{gZ4 P2?ェcZ7T]G!N?ؾz>;0 ˑyݴp<xo1)Ĕ7r]y|z~´l4\?3=Sl~<#mӒRJc;.xyE !/ 3oO>_? gR7޾{7__NW|o1KAڗ}7'~5~xx@s|a x̐,<< as8/]PRێmn6wya<Zʈ%9Ǎ7o1Fu]+pm42o+dHGIFapI"aJ*ՁXS;Z1Bܺ7T"?}byZ.J2]WTӥvvɿO+[EHÈ֍bI73H|uvǸ?c[6RBgǷ~ F}@n-46ц+))x]ۙWl߀uAϠs`W_S"gTX=@e#Hipߓ{ o("RV4Md?cۑ~f 5:)q!fbU%J s\BTc1 o0}a HA^x66Z3`4`-!K'(ER њQrq;( E -*nYu@DZVJ->).$Y<9xH¡D IZ>.a^)R 7 &خ|8\!DXz=쫻!FY $(79}V_Z1T=\VERȱc,'[SѲŃm ֌L˙ZwXItJZg=-oD9%7!Q)Ç@Y(eFu=莸NuÞ[Ze0!"l+j[*H).ONdJKN+u,[:. gpN@jۀ,cba[!REV_R) f[MX"JB$UDv+t@0]M-$*)3%M#'E!m { w#),u3thmBRf La12"PʄR)$UQq.E+%wm[{w۶l{m1][~OM>}H5}myww-'tXF֧ 8|yRXVźy9OguKÏtZQ3Gg낗 7|yW?7_y<ۿ;>G?_[QM0X}5?%뼐;K7k>;O Ϗ4lO/(͠,/yi =Y$~D Drɭi?ZKF#8ئٍ{z>h )Hoް&swp^ˆZׅ%qZƁ:3 P;i3-3#(Xwdn,a Qj)d^QJӵ;݁7Bʴm@a7'$ZRJ m-'uOtmG=m#Bp1,H ;mdjbⲤO5jޝHX!/ɸ0 %VUʆ(a0/Kl5}k6ռ vii;d `ں_6GIwL 9_pO4c=>mU-MhKbaYέ=R%{1X7T5l4HۡH(%ME$)Tk4]HXcg7p|iF b2JԛzmcJ։z6UKIN 3P4 e^\I%n[J9b$ȰPڲ\ Rs׉VXϏ7ξt C'TӒbZ[ֲ RԢtB+UMЉr ԸBY>cY2"uUL~J)k<+]2mkj$dEȅB%$i&ڵ q: t"~ +umQcF*d7}U-Rʚ|~)R"#ST XU$T֤uRuؖZH ѡXoD@zM['3~4fD.dTCltFB I)쵩m&V!Pl#IIFJwZ ymBIZThYݮTI|2/HKD]'02&1Z;=`mrTRY1=B5̗gڢѲaEG3faL]BǍPk4>67WRϤXHAJ "= 1k=O5e1JUtm!IDIQX2ߏ+Ѧ/%XT4]C$jįD x)Z`C3b" dm1-ĉp}kz6\ڴLi Zut"Z9p _7IkD ;t/%g-eiLJ kkGR7i !,".7<-xlk QchU1>OɅ4oHa6(Bn0r!Ai0m58# R*yxS(O1 )-ubfՋeiWPMGX|R VppϿG+n;Jh1Pd",a9CiI6T_@%8eFM#;ye]j. )O_ )q?1 } m4|E=!?%~Dzy^f,<]XLJ#Oan 31$+!xJša^<>Gx}|F%HB\@kC0EƲMg~/֟0~{ϧ?7?c|{w>.a||H^$0MWavLۂR(ml2A+7-q6 4s7_Rq]c?rxd/|\.4R#LWJ.km[r^''+ݮz^./4J\ <144aԊ@ȑmhH?4m=u"9ϻށy4cwwb]<1 =2э;LbږD.Jh[fx@+@AKI%&ѕM&h1_Q B-X21F@L+O0Ķ%W,dnZtalCL/2]RbFZƓF\Wƾ#4 xn4=tP)#FA׌[vY+W1#G1 518woH)"e=`z.&elԷs6:41c^h;2s}}W7k n/ Yf魭)9cUa]!KӈH0{P=" ML[D#y 9JxDAYBtf8R<~qSXPm5[\imKuq6jжC=Dj'L-C7&Ύ؇q ~o3)T7Tו>В"%?80gXk姫}fr3t8)cmDҍ,KPdB n(K_1c%=(یІmD6m%ji F:klz@ P%`KNm4m(qAɆfU"H=R*F*z-0kG%:0Rv0@2(ˌ4SB :%( Ҋybۡ1bdu_Vz3_Hrsx愈hio PsuGRlneЫH}X]QTT;"xi0Ra=:M0ZFmխخQT#vITW(H %IAJԱK|Ee@׵Xm@(JC5ֶ8}PhV .G/8ܿ[Yu)4-_NmFM%gOR7D|S.N(]z|dNt#]nk5AJk('bu =: gFT CFBe"nbn,Ȕ+c(_J"eQ"P%&w+YWhXgtHJ4〔u@D;qB)2w xlӵlC-2/Pu[ UB"v;kk_WRq+ٚGDg0ǘJYf_7BiH ZT%/Ϩ +R& rhMHRfG+c 23H}W[J)]:!6Okj|vl5GLcF6O %D@\Lיi[:-LX ia%t%ֲ򰻧z\HH'p|Gf,hSQ). 2JY^۳5I~!1G.БBێ, "Ix cKrTIJذ͈Rݍ5 *'nfr"Y(|%ur} Y \~xO7LیjѦҥw~1mDȹK#ic4.-0]IRH!Ѷ-Kp0Ϝ_^*q՜ (-Z+|dzuQQi:na#vayv<e XF'n)xYR[jAiԒu4G1~CLT̯6?1GldG$EȾr}jͶd1`=Bxzw^KS-!pר)˕a@8Fr)nhr(MMkX B= Q(e)~#D?(PJ׉R21Z1[)EX7@Zgh .[N0T}û "aݐ(ke{m{(2$D#e(Gv0akE!$b=S_HbH-B"AYK,MgH{Rd"FДEfMe`nlQaHi"n64U5 ivSw-7"ŚRXƄ*U TdT%"bwl 8Tn7v[@-2"0`\p-yo,qtȥbƙri"ShGWHa$H)-JPV,Nm Jk_ÜP.۽)$/ 1_vRrt{vW)esI1J߷dBJld F.5t@L ~]ٝ9zѤH1"]ǚ0NT)5D/obL#t@&Ȣb޾i!u"!\aݐځĔ0s:P={gs5RHqPΐBLu(e[dXgYOTWHE6}س3(tC^ Q.5ן CI7P _^}cQK6D_"CÁSdFĹЦj[dVg+,qxhV TGC+۴ލ-rWDjv=rb^s@Y+X Zsp&E9HZl!;6b Q W?&׊_TD%&rei 4[ӶaK9=Y4evօo>~֚¶rz3l*?ćo޳w6AJye b^qCGz_~'Da왗e]XCuqcW_gtT->3o?JFJzaĔٮ38z838N<=K8>~joY~'h iM˄lS*x</ak2=çHQ+/-ؾcӶ} 6roti(T(^R$1g֌>?!Q|3X0`:_4oDXۊHu\7{Xz o*j*zm)!2&?Q.MCv/Ohӑ.Wv:f~atOLG<75=PRdduEVp<)\^Z>p)P2Fi\rh>jSR!2JJP Noߢ`jOpw\o/5JȶԘɹrPBNnO3ӗtzlk"c< ;"Sۄd'AJJ( }43&(Ypx86F,(uC*~Y|!ڐc$0`?O'H"XRlwcMȅ"F#dZ:KU冮:2Vv( uoEJml Z*i<G%x )͔*uD"gASFdj%!%BI zUs{zd;6"NPH֗2<|MI /Ը6nڥD| Űt~ Rw Y bHXhBJTxCa)!a#RA]np9^[QS_VY)#`5(NtХ3t #%NamEmݡDiDݟ;S;IGQPBI4`L+\w)ZRn=r.yY}L7eEQ$Q[D榩u{(dȾu}0m[X3ڶy+ZEF7F *$|m%)FHa n7МϏ^#.WReBHFZ^ _V,LFҶ11^SHEnwlnFz ~#t-< dM\=Vjf" l*bj ͵ #P@Vɴ pgmnQ Tm^ d\HiG$P#ZY7hi0#԰9KNYl&U=JwAho`ĸ_ diJaΘI!mF*iڥaYB)90lۢQ q!Atmag 3rpm yC,M.L? *jDLQwHĦi;#d@o5np]Y%J冐ỏ?{a=uG {\B)(Q?׉o}y]w,vF` Ą{.ww+2cL?8^fb*\Ml˼-[+0#OOcƑ"̜W?ˏ }G'N'lV=&! w2ၨ=>~ 7i^>|g߳\_b_ A2?/39-cdGJ- |px8ua@Zy2w'>ysZƯ>0=PC7~[tȒ7iW|z mKr>(-o~4| ˶"/RX^L%4yl2v$rᲤ?k+‡w.m?y-$vU3ܦmn~{~?0=o=_/;~79ө=xCZ= r&/ K,)T\VTc0ʑr*؟^SX9؇HQDI*B,[`?d]^_.hBft;¼%1b#r7 @OZQ֕0?0]R`kC\[lYVRJ#ECnVRX-A'bwnGD :RM|]V6c܀ُqDWWhiCPGHQ" EzвmhQlˊ]o8G) g\Zk`Y# 1RRl>@F ڸf :Jݨ1 *Td(QQCFm%jBX"YhSCD 1w"TBkն=P CWR(Mۢ(Ȃp=B2MHii26й5yeBxdК\d#]?WHwduprvjQN8pɯmF GrfxךCL^ѣ`9e$TmƑVjET+-# lNɴF+#v % &2{6 jX_fD}Ȭ̓S CCdL6gԍ WD^!35Wx1# g-m7=3%g.~Grzx.?ڀ|R曏LۊwGP!)o"Fb*# k$./ޒcFIo*YqPE;Craj0QE u/{rhk/j[9i0 ͌Z3Rg[W]jڄRH~Ss@Z#R)A4QLJ%)H̱VDv$@{KRHځ1=xU9Qbř91C#Zv AF%DJ!fK)PsFKZy[m-Q3Mnn@}I)׍ r'yNRp#Flc"[alX(zRCE+[GM$#a\YRRQi5`]T z- qHĦwbhI+Ⱦs0=[dp*y+)_X繡-U߶9I\9 eo7=TKA(oI ݐ/Ocv;MG( NT攑Ҡ sE7m G`vqm姹.ˇityj=wZO@ ̩EbE $M]ܿ;n um-vaFq;̷4drF˄**5F+| 5 v]GAn; ;l%"dTeNoIuơ bWl˺PRn2Հг+#J(Fϟ>q8QL7_ny[^P݀;YWFg.%yL?◹uM o"|"vxNW& ^i9}B~ySB nμ9=Ͽᆬ"Ӂyy݇ 7h^>\[oc?-mܻ~D#8n9`w)gToE0rI9$iw_,+tX WG^߽޶KFp<# WgvCv o?z]@0/XI)3 ]דEq7Rr 5a:|qv+bX/ Pxt點-S pH8km {d5wtK7T,h[B7rv=;l~!J=Z $&9a%ƀ$#A'Ș:M u]6~7|A^8_㈨:p%L,og9QEuC9Cm*Jaijьͥ(DFJcRf>LԪ@+1vYFn@ V^n k¹7**%'eb75]Hұ߿;=PC U$jͫ !jKBnxBk6Tђ=T~P[I8) *qK N!JQFȞ2S!eՎ*a̺]&޽60v3 +t %&ӆX3J4\K% \X(  kD'Ctx)%Sr)c- E*1Vto["gbLݎP~^P(Hqm-FvP )RU~EɁ,%ҷ2S G"&5JP(% X!ml~uCcrg6эF *U. \@UXZU]D?CꎼzJ@77:ȞAiG+Չumgr*F[>|l!\Z K,U5푥No#%A7XLT"* #9"E| iYϏ-P3{K$1Һ_xx#)e(W4b9m( U6O CWrP,B冮d +ՎX ŷ{)^RhnG \3Yڞ93} !U#4:ж>ZI2 FLB@u=hڽۡkےP MG{DLĺ۵O΁,Re\TxX@8J1JuG(WҶ42ЄKbbTcG[A|(H}=e)91nq'$amԞ"4HHo0d\([F,Fr#vH0D$Z(^a}w+v-dj{J$2GJ7`^qʒjC~ZZjȔ!bJtnqaHvwQ HW}#Fc@[t?vq1; %HkBShmAv]_}p3 񶴵@w;4trkCQ45nE7\g7r56unRY #;j۝\@ny?ώ>-TՈH?4IJ!1V2#kCZQhˌUO*tΑjL+޾eRJmdy낔mj i_~~hٍ;2F~_?" ?O_B2/+;^>}fk?k>~Ϧ3O} 3ׯYd!\&DobhO_p\PXȗ1h0 y>͟ OT^0 Ǐ1pybXkJȷ߼es=wo)Sb$ʾ{χ7)q:9434_|bGۍZ+TOL®Z0\%SB~ǧDMmȾNԲ1w31xt-ѻW-lH+!mĊt{CH*2G2c dOY>UAw%+dY2!x]`x+Wo渧3>0t;;Ek{XށH5 !UZ;Rhbaئ3jI>ѽ:"K&EO m*o%a# K->Ĭ5SSfc:|hޘb~놦Fl XP8L!900\o4p\&THK UA:?Æ͊Yԥ9R(۶S]:-Ԙw< [d fyF3Q GJLԨ ԰fp $t`2Hae #O*b%=%6x<&" h0h0! ,%WδK};U(um/2!z0A Jى !*v!R&Er P֝zsnI*QTP 5\;r-dC>WS \7RTHHk)-H)xTlHвCyC 0H;6O+ѓr;Hy_aAHL-S z8AB t(gd 8;BMb$:QöyZ%dAN;8--1#)6=%n׷׮2hmFSJ)( >]܁[G$|F7$v*PĝZRAX${멢$UvXU* =K?rO ^AU 5m:E<"T:R!نd!~~&JQņB^h#iNR"zp ް9De] kTb*z\~C\V vo&aL a8}עi]E׳\ӌѮԋ5au򈰦Є2H1BYذH].Y]=I,1E!a2$OyAs&0mۆy!̀Y CNY pH<l*{%-{//8PsI͛&uӆ:}7L)p}|1nE?>" zۺF7_}ϑmn&9=˶mF o>oǫwoxZΤttpƁ-HۼB.,!n Zۍ%u<-3;qC~d^7| Xky}<5鷪T)8#iK\q }O rn 7 o^?ݱ),. ?wI F9Lw //8voʐ+0#7H;LB֌ n!+"H~5 (k!۽%Ů);lv}%OuZFt(&Js[G~J{JHm2Yr""~Zvzm1M-ֶÞgl1T4d ax8P&Dwt >S ]@Τ&&>,'R 4 @ H!4εBqTq/k=;j4!="9m?4D.Ilg)ukB Eqm❣G=QC+Oo JY\,/֕ ~,%n'\5~RM\&>FPR9rG\MB&}L"ߐg1@͒j3hIFL/ԜƢdh/q(ȥ00atBE5%T=*F` \v%- ma'BTSJ-`l:4ih4l2R*ֺ5ӊYH)<=RjE鎚*$r*T`gnXV,Z*(j-JR%Fj)zkہ!k9y# ;$~J"֛*ɷsP2Ji[P !D`(AҦ"B1RriN!ض (3P$HU[WEU*lhc1#׌)U R ֒LUX2 DrN i1[&63߰<.G?6ߍH()RmGPk-Iޝ8VasVE,/_ R$Uո[F7 ]G=sDEKAs]8>c 1?}۶״4R6ct`HR* +:'9Dq(@LN Н^au(\ڱL 5WLדKo9f8|Zbj9~!*䄨,yFcdw;5 vlD]%W) ]%b- 5 BrWJkPHעJUOb;E`nq414iFhB*ܾ8B=. Q%BwT)[wT8lTvzI4O97O1ݛT]Z F%  !Ab! [@6lP3+gdq,bn9=d1hU5s^'Hn?g9/, @N"sY7_}, 94߼>}Bݛ'ifn򼡋H.̶ݡ&+ƙz.+]M!2-֐>&̞uix= 瑻=?=qUO]$ݲ=1_9O/QHS#u:7s&\NAjR.4P- "E)S! QaVd׳# N\$R~ HBcDk4΀H,Sue}ЕHX7vk؊g=7-qY+F`5c홦%3D2za{@h%5~Z)"+| {rHض|$.m)B`% kNFQf&Z%ZbE+M+ɺ>D(#[bm5%ͤRƑbD++R*ď}mфm,+iDun%r!?%\\'.'i*z0Fn@uJ[qKҠ}iQOS_NT(\W.1ni!gv_?C´M*Q)VHAJlc-IJ|!*CUTd NKN ,!Ւ8_(yCہҴ0ھLJ*%$JC)5^$K"4* Za#@1XMJJ!D ! c#&)o;6۵*.GJWd)!r"2䠈[&^/zWHiHRPm[sԒ8OAXףN41#UDBJbZʢl[*)3 V YI5떰RPܴ5o ~+:șu iɶءGE9#:[c"O$)laA(w+s7V ndHL8t8i07@AB`}ym kC;JL'B$aנyTJH7`$%HT\RcjbJxҚ5l{G۳l^PUdи]%Xy( CgӈJ\:OJ"q3VvU-!T-0Z# DVg\״$s/@`L-1H.8daкA;<^0ݎL9EpA>< 2VR ΠmS#~#M3A64CO%ap(Ǘ I@֜ -`PTwkXEdCO,1`B>"m\!/]qYjKkYIQcˆwl 珐%n}>H7:됦AvFhB"V4^njjs#f o k<ʧI cePR̬{J!DL T)05밲H(9˟CuC5_X׍u<_G\2v\36ii^m:uػmyyy?Sxyz3}נ27ӌ҆-%Q_w=˕6t]Ǐ/_89JCӐ|_۷\??Kf +C7PZz划ǧ7Ngs<˚9%0 tCtk+|`|7s4;N#FjNX#݁q镥}cda3.ɣvecf'@IanHV6:r0"z=CLͰCh]zMG"t*ǔJPb'ަQbI.l+)$阾=ǵƶ$> B\PV6ȢwQKڐs8RFIVնH228M1J%j[[I4]G=!KQQ9xrQZBk2cr ϯH;#(5Юv,"I w2=’ Eܮ4w0LVj {H!5JɢwudVla}V34S1Ѱ&|[H˅)u[) z+1 tsaBH}zScTdp:<<'>=fu!Mc|x<iwдSB! ϶*l4Xv<a#YGf# F;l_UG-RM`lCk(mw?[mokmxvu#R iSi^,LX3әDDFx߲i8Ǐ/?\'u󌖺e v\dSx7_7O|w<{ ~ ~Gru^xx#$t7JZ=__~˅tHq:l}#DϺm8{}c=drz~;1]ӿG>RZ_10WǏ}an[ۮ\.tPHp^ƠagJB;}}|#oۼp}=34)%^.'~2^)123n5#FZ具Oo؂gJWt=țo)Ct2^PR=?o?>:ӂk,fױ-B*,*j=%ebXmY9 up;1N#i1 #B;RZHZ1~lƐ}G\V8Ct(tTՋo5TT<* 1 !.#XSئ mLX6)%R5,s-P9drJ_PBs݌mX9>0WJ8cFl-"rA+`)ߨ[>DLcR@θnG*Sc`FD`=aaL^rbH^VA*bD?iĔ%B_+8Jz౮EP'1P|B;?<_?|`[sRVo) ovR5`4nRL"`T_-Jԋ֤BkLӈk!S خYEev2].ϟyz9yr=9z*zېDep(ruiB.ղmiuJJȧj^)rCmKe)EPJDڝĶyu9ET5'KQ?T(iCZ[]-`&h%Fެ_B8a(mэM4b!K6FZZA Œ=בL./vM<]ÞfZ7v~mdF*% n@lvhnC T79c]@NHs#\DeC H G4]V^WnUjBRRdb|ciDJ(+" Xc9 E.g K]*(T#B:RLW{w7o:CX3?IwRT[r-(C k> .oD/y6tbXÆ_qldy? R:R32|x| xOuDQpp+_1gNO ]2b$k7 yb^g~oi/?#gJ?^Wꓴ^rr;X=Ӳ`?s;¸.q&7$Eb:_ض#)FbuzlSDJz-J usqx{_?l8O8/#޽/4mCT㛷d`'/xV Mד;tL¾I39À8u-q$TUfݶ-1/ 1AI7t,!Cxna^k]kݐ%g TeY(6, g-67mJ J_" 4)XL MI%3d\ GRx?MGHu+]VOkZڶCiMɩ~1E$ÆKuR x%3֍V5ĶM#a])ƖeRJA4?/״5FP$0@*Ú"?vґHZ=SWR)(ӂeR픴@+8ݎb ~EBAHDXU)#>#)Y D]m WϲHD"e$7y-Tտ*Ex)Ii{m.ʶ !sdb[]GY=as9PCOCZ/? ^~C) r">lq?|'])TwVuOp/ڿS?#nݤw]nCC@˕H!$She kx/]kqe4q^δ%\ Oÿ-!Pu/Ǜ\!1FbR |y9sz=?O?a'5o ʇ_nW"ieCGYկx=Rw|EH6K8][3[/캎7oO!vrˑ`S ȴLXmp\7Tx~~QD۷\o$) ӑu\+wÎ$ _xzxd | /h~|A}J.?_3ό+3V<=9򲱆n{-5X݁T2jlof)Xq^\t"gx9xzxk]ִ(pȺVϾT QQ~##xx ?k,ep@ ھ2me?װ\ilw+)-qp ;nӊ$JZ-?;<0-vH HU)&Rh!(a? mS3ƑC5Uc@AE1 첢߽Ň!F,R㳢ߨ¤HIDM_86RoovJˏuD)Ͷ҈YSCטIy JRVTJ,Ơluk˂H Q-:^ד }*i >FXGjYtHra)psDY[JqQnZsN'TunD4 g{6)/?Em5vH y\_Ra+p!G?/sg[q^i8<~mˈnvHH#~cыOk~0WǍi1]{MU*Jj6ŌҊ )~{O{WYݶ+0g^_H9cYM"K,Ҵ0;ș Y3wlgkI+aB;vxY~7^L]3 ;΢{ϟٟq|yÇ5X_h_?]D1^֕-+[*d`p1V$nPMϼv3t/HVp"]:-Q$Tp@J !sEaliø0.BY覥߱G0}u SR.H3n\s; ZN~`@FbºQ# aPЕURd[M^-srBa9,h T=P+gH)h=B rʸݎtX#kϾbAkú J'JXcD : 2QdV05(F MA[.Z72hH~؈o$FuB1Adt-aVk(7vP2~M!caGHD$B1iƨ¶ PBQJJ+kFh$ tD<*YT*)r-T "m Rf} |fF,uchlZnZĴQJa*#3#u{U)Z!E,(TT$oR~4ĭBb۞,&H׈/,$EE~7 ,nu݀n|XkpM[l4!2tJ8SR"tmFHv`G\Y,$fZl+ &u0}4m΂(iځo4nG Ͽwl)l+Zi@kN#JhX.iRl>2]+f7Hc73/׿S Iǵ-5L(~דS{_wi{iwodyz>TcY54>}A+ɇoF"m0^?=־E.q]y9q ss^iHVo4Nmg-#hLxvqaJ/GykGϲ-LӅ/FY#9eC1]Gt㘎gˑin*}7gc^F_珟\ 6m aZxP@ll,GJRWjY4uBnD$Q{'(O6WYR,e[*>ӆRGNhh:"+vĔ BüԞu(>Rݽl,dAzs^i5MZ;EĞ)d9uNBB%MK !,Hx ~¥N`a@Km 2;2ܹwDugS丢J!#vhg4li~$B#""hSY֑ZLd{=n"39SswF9*81ސ"TU{f:*bIH008ܽ#\ͽhJOO =PA&_c ,9?Lth j@Y {O4=Wda1ZEJq=^T%FҰt6GJخ:K'h*X糐^B'b~B &?YuMh+"jfɕLZI[3\w +3@[R(hilJBQ _0)E y!݄2^)o0hA_ R=5BY-RW+xFSw4 JYb^d~$ZEuT Zh:_ȭ2Nܳ*0 qy5EFzj%WGFmR]|>RQ `,ŀS*. oԢ)ߎlsWPeɰ,M|Hh]dRRUF;xr@n (E2-4KFL%;oIDc"#wP[%1ӓ1 q( yf XILR+CߑuyEC#Jl2'~Oz\Zby71l&vc-8=m-t9%+F&^h"%=8&C mawG[~D_/=WnE`Z7I~R0l=|'֗ n܃Өɖ$tEdD8ge^0Ȁ8.(Y;Q=9j~76jv E./ȗ*e{B= Ķ#vj ;` -.VDn~z7tcF+#XuR-l2r+*fNk8t[G~㇟Yρ˚J7#iwme=ό|:P-w4Is@k~5Ⲋ]\L 9qY˾0؞7o_8s=k Tn?<0XO 4W:Ο_կw!%AYߎQjaYP,!^Ƒ縲+*ΗmOZs<3[CM(d/~n"?rKzPMX]=n`:F?rLfZ^DbذEBa B Y/D6N;X|?ZI3qFMS$e='lp;j76R"=qy :Cxsw7IYJV+giϺ=%e$S]FW!d(:(rᎮq]O?N+%DH N3 ㄥq>7hh kwr=t^-4&'Tm3q1aT49&EnU)&,ewH!BNs~`S|0H5rCS37n꿰J!m3~. 'nGo:$k ]#4In:ZmT4H䣛&pPsr9ݢ@dӌFT() h,q3(rȠ-q9gv7a8_6|KF6v^/ M k4a(PˆV/(«i Aفq]rc0䲑 Y6Ц FSeY0)^^j.Zbl'ͦ@9jh'Z%*հ mZAZW1XKJI ;N,3(˚Sk0N,*m0͠(UH[*npp{t ԔeZy{Fh*Ό(]@Ӡ¶.cH?C#,$FvVvhV]OPjFLg\j#4YC1 (SwOaX{aT9ZkPТD N[U˲Raww'NYTtf\/mc\XnƍY8^_9 "E|H%%tme%߬ċ\vcl|]H)t\̴"O'JBSɅ:w ;М(#ǕV!˘@?\7r&V%JFMTbBWcAy{&P L D\\4*#U Zt.~nLMH tcD#ĀV&Q:ҏ'Wlе.T*nP'-,=RInj.:9J-'o8yz;cEX2\:Mב׈=yKLHઢMhnnnx~{-Y+cg=)pIqW>?bs{{3:0Q#~~ Tʼ<?ȇ'2T`+&&;gRJc>}@6jZp/ǑawO k"xX:8^.P w޳Nt}zTi]i)c;r:; G^mLynno'hqض먭b;û?'Q1(#)$eYȩկ)RZ+~x|y曇(x szQJci?qy;Tyf?L/w t%eJ3Y)uR&^)1t0{e[7yaqʴzmuȯcJ|m&+ _҆ex  ㏜#3NyB M޾@\W\S4ݲ춮P @UC;o(7ZV &H =a4aiΠAʴ;JƚH״iEk-i 5,3$R(m8=w#vARmpqM{r{oO_}-oeF9c=̎$m JJr,WAPءCz>_߽7(R*1lWr/f,ՠ녎$X^z9KvhS@mgecwqf tO 3&T2{e5(b4rtC'i(BtYj-"J\0ջe{ہF{/eף|GCmh]'H% CZaR@*$"%dkyCօNr0(@Ur ߏX۵-#\1BXN=%f9ԘΈI{7BٞZ H7l;Rcَl+ "J3@?#L5鞦Ե4I$Iq,箓zeICKKIY9DRt>> exBjH'`ŊJ&'m{rdLJG:cI$eIrڍPUF[h8?\3N h9bUs4mQ$3$U{`jbK A3%D5"f&ׄrH4&GBZ M7t4J\ZܳQJ?P[DoJVB]J$d'9 I[Yi?hVc I%V4/3ئVH9J"nHE)ZI)dJZ)Pʠmդ蝡 Bʴ9];|UXe{5oߡsl7%9zD*1nZO(0z $W4BZ(#}S 9$i"(7-*{K HlvG07wpiw#|T@wlRJ%j F[ܸķ(ˊ0r DUl7ΊfQ {Y6֣>^ ]F*uHoQ!vAA[.n4Q3nCwJfYf~y#,GQwK:nq^JStG/n%(Vк#Do*MIg A'Ʋnu?!ƚ,\蜥oooLEަfYW|1%γ$HRXRq~LoMk,ˌWn7p||bs_t1CG~|ۛn^VhIo0}|r~[Bp3??||?R?#~c>|O- 6s\xFI_YNTxccϗ/|n9˼<7xÁsa"N[^ɴ۝|:ljZ!lH#ݞm ә>~‚Z#7^gv }&R;r-mϱ 77 1sXtÍ//9d= w|x3)DQl;b)a#u Dz^a(sh/!BG8-8mEk-r<_L*"]y|ڈmōwۉV ;Enאj-#+w5*)heAwv ?uZiUwz$S-I"׈iOMJd4M4m09TIJ ˖E5rHAB%1nYB3ûO◿EiᔗBeX0MQic]6:?`Fw(;!Ѓn"Rb]g~1t)8Pኤn"Qu1SQД"يDiP)bw&%IPJk A0BDM=iRu~QZ%m F7:gH929IV8a]GԆԒQ ijA4e>Z58SN0FX (C(0yҖj!N ZeZ)<v=5䨥`A.5Q2lAJCuNJBlOe%Zq ӴȭQg9_CJAS V%OڲؓixvRh%)79pqHHgkx?@kן0բ;%>1[9\\/g\ =y:%ǀD|J{jΤ]q+N[5bhJ"Wme,Oa'VHqeܿ DlPY `ûyvS`fj7uBΓF3RJ# v5'J2`QWaW9 B+E> Vm4qt_7Z١JST`sTF4BMcx$bCD+J _?lޑ//b4)-ޓS"icΓ+ZQPcd98zz^7P(Սj#m+4R^)DQo0510VqO(ԿF"n\z &aGr[!-Մ ~{B  r`tɕvAJ49 w U.Eqb%o9!4~-X΋Z:ggwO0dQ9F sHLY6(Z u۠55c'WԂZ+)g?} l\Z7!L9]8O, ;.a}=޿'|0Ď>~U<9a˙2hq'l9vǁWM"J3 ]w<1Rf805/)MZ~#u_'Z).όÈG RQ[v~Ga8I$ϻNl! E`;E^#]kD05/g_`;ȪPn(1b8A"e< bvdv2`&U*newB)+/]',es G:8hp)$BXnؒ|7unZcu 5a]軁ar=U)kW1.!Ꮈ-(w;Ji"/)[n$Ԫ1 ίo}d^O7H5 81@>PSBQ.Bƪc0()$$!%Vrd5sv5ȤJ- =۲bٴ[sXp.JGbίXk׀n/c+1Ym4[rAJY"J f:e0a=yMP5~'>YD\em3z0 l@2H)bLa<{-."pt~GՕRWښɵ܈>XfKba &:o)TɤVZ wh0fQ;@MA:к-@'Tʠ+)(TSl3Y ϴH`C sPi#AA,vR<\0U(+EYNh3z[`c};O;fqC;:HRD"lR<7cg_]G\*ɖB!R ơKH {4MDgMPZVCX720;Qh;Z&ړ*d8tg]lnpHZezGSe s 2Ue5viFQbb90yO  ?hXTT$2'L 4zGԿ)km;&GQn`5qxOۆ6eݨFQc8ũb)!/nLMdb)[p=@[M OCh|ZqTՅ ڋ<_VP'm4)wj)Α\D~Tc'g*fHښ9Hz'JNe. L7doQ(B?`elT|w?Sqb FӰpN8tNRDra,~-3"%4Po s jD BE4R1;ðf@V2X7H"2]%M;N_=M6&I[v%ϬҮ[0Vq>Mk??"߀I+0 ˲w[ya7Xc6O'PFX6q x;rH,HRVDyG8C晼wfy= #1*~g= >g[/Eze0=AxB[?q.3sVGyy+wwwl2lzy= i/vt*-̇Nq%.ܽgm;|oaۑq7R$W_}~LD9 [^>?2t{~#,En7|O#foOOo91xW< FCFvd)=e }W޽Ou|r0у Xօ*y|fcQkXוqewsV氱;rM1uY)mW)9JiH,,=ZTu;bܘK$''vVirJsƉ6&?QZ &RIezn'LN^?|DkVI-c".+}u쮑(Gʆ|(Z5zK؃^[tg(5;ra}{גgRju=XҺ1(Wir>zвnc 5cJƗHE:1Z,8RU(a41er|}wlD³17^uZ~U1N;8P[KhCUVO԰SєeF w~$G|h%YąJqGASҌN Rhk}6,-IHY)Ъ*8^(Ѫ|in~v:?-+%+lQsB j(e UγxEMa=%u{,U}{%r t3ؖ7 k! x^MZ(Uj5pt|e:_.N]c 8R-"d,P*&'^ˊGQץAGbԴPa^O Èjc\G 7jӲe0b4F)Z [93׭Dk zgc%rkߢT2F{Z8ga ]jʘV) G`­Eͫ<&nǏ&~(E.]/5Ji_ 6WZ aK(T9(-0ɿfrI)QƢK0ZnWrX14 &0SreݯJS.Oj0nN"^)iF(.7J)AU0ଣfRbqbprΣ!lVi2w#(Bk [IxmF [Toru3}{c?Ng ۑ=1;^GOoe(^ߞ<>?ay򼱬+[.'=i8y09.FŹ؏| }͜WWr;y;9,ϛÞ%&YgsY1mlN fb F1_.XmJ=7w˙-2Nl^_Qzڊ\o?HTE)G3VȄXG;r)Pd;q-g6VVRV*~9+d-uOFSZF?Mݨ5㬁"[xߍԘ@M9ɷ 1-^ԝA#O  7! Yn34,E%n$cd: o*FJE&'Hj#$ΦR(%!0SߎxVnx'!g4u5ьA <-gyE΍ۆqV(PSuH-[e)ְaEVٹQ{G y*IbڢuC+#]+i9idME m(B ; } [BxGXbiC5EPBY67P[Bg01_=(,оh\iaV9I(pnp7g'T2VRVm#i>9w^ 쵲G+"gqa%c["^~rai NRJ8]›"yQEbjJF[BB3Σ'A6ٜR C 3)vDqNCw'cPU!$ӵ<;)10R/PJRjt24 mE9vU|󛟞qBoxut9c/aM^BJ8Oy?}bx2/\/ҐwOd8R9O?͇uE Z1VZ+?ӕR*<d߳3ÑeZH9z\$Dwrl5ޞOg6Logv[ XħWz{y_!4s?m۸Nn>xWuwyiKʙ'1m36Q:,s;Ls1v#۶| ZNS;?nȶ^NX'#GvgavK7_䒉)k P#5%xUgƑyR+~3ZcCUHBPBX%QVbGQZ=eZD 4;Rux}s,> Dc; i,>Lǁ1Eѽ%I"z9} CC0ٵU(%ggD-~f&tU%-900Kѓ1[?xdӍbeC+fᣢLoX3ål%/WT)- 35fj֍Tap=7\ίT1D Iu['+ROrET? JSb!UnM54MW-7HC "l:e@PB^'ݞ$PCI v{vj7ZPJf*#+Dm"MۺQX,Y3֌"hwLuBJ&\B5u A :u87ȸb#5_s@0UmDihp)d1] m㖧.3F6Y=HQ[AJJTA0V q+ 2"`oC\Qf^pAiZm2ޱݞ R(I [+pۚu#J溝qZa!fSV#e= C9m6s;<_qm)BYyg߰3#[1_W߰aG}F+q ZKdZi{وvܑ jwO\.EaB76Y$fbaoC-vTJA#"e4-m({R-tzc4h@JRq'1q95tv牜ݑ Gٲ-Fs8ӱrW/tx(y쩾B| f!U[oyy}E X7jxhE=;+L2a?Fv(+BmwSkB`!/9 JDfPInT2%:J<@-5t@in<@ji:7Њ& 17Oo9 Ki%.2sd0_Z|1{ЮeS"Rp]&vZ>!]>?F3bz2};)mc6+_0dl849]XCGDZ(Q4$+*):.R B!eKY𾡣&o3EoD?z]Xׅ{L瘯S; 5L+I*3ݎ붰=f>ubp Y:{\F1- %T~w|9mǜ~o>?zd&:3=?xhCp˲po?3?v|=W㮧&tk$l˕_Eǭ=I/Q"\ Ɓ7BOu;޶aϧԆZpy}؆>2 aM>7nh˲1M< ̻޸ٖ%9WxߑKo~x`"M3x9!s("׸1׶1,`(0'v&/T0J<11s۶dRz93])*):-HCs Q /~o[B솁1Jbz=~%>%.ӅFƶ\Z?J]I,Q= Je]PÞhq'%ZocVe( C3 !Ga.\Z0FSF(ў9lB HBC^t?RhVh%h(T#mRJD91 #a[T# M#RFԂۂGVt9S݄5 pze9~"OA`sqGI3)$ux=KjȡўRfYȅiRhmHY)k3f b,05%m:N7;w+1#X DY>R IKOXnH!DK>!kSuEI0Rdf2:̮S#HX0"˺Rv (zw WVdm0#B8А3v7JnXיyqQKBu@TvtzOgHJ J+@. "eRq=>,A,D "DmvqQ!G3YP"Š5YSJ[T#c\:!a+z&`v;!x)pz搠tfB %='D߃,ˉzFP 8Slż }wPL^݈{z¨]oDFaxLOrt9?=L(:Q4|Aj0pvXZ*IM 8cL#)C&-'C* \f_׊znzp;خTXb`N 8eeYVRXݲ//o_^1F3Ot#5Wuh6Sȼ |R oϯwV3^aOJD6_#)5ۣ'y:<깔2q-Ht<>)1!4<rz~减?g߳C3޽/s>g3]a 7ZHqcض呻/_q}@D(7~L*I9#ھF)kי˴nZR>23~<}|ǼL*43F_;Њ+c?0F^!|L,Ⱥ5(ۉmm{#at>nq4,  !o_4}-Xe!*?Mјn`=\/W3X+w9N+R"$FFnJ!!8{|Uw]BTӢC5#˶yҊhj`j%Ib&NJrգw=}5m*sv(~L5Q/QjƗ@Cw#ϾWN^J֑B܍d#$ϼ@mPGjH}дTu,Yޜ 6XL%m3IhxOg4PRle)c%o'D#fG'u#qm g,}C$~9Jm퐢Ӎ>U*L]  U#10Jl:>Bki *e 7rP 3<`k="6CVM~) /uR5Vkrh-?bmb$b]f_ 9l˯u$Ve[iEH{7'kmۚ_+ aiu|m1G[N\$+э;R c6Jyz% q=nGo͏@4= Ln{]G. ]+B- z=os3%끰yvcQ[GI4? %^ ەi Є5m:c;E<{r,i&x`UPnQʶhmXGF Bя{%}o^%Z {mQԭJLn@JH\mr.t]$hI˕I@ HۑvC* b tVVo2P`%hSs$Fr #74%PR!ebh~Ra[V6R7Tu^?ζ3qQQ+Ͽm5l?6" Yqh~0 z3)䜰u)Q'{t&\ JT1y0oܰTuˠ:QӄvPmsLE7N! B[dE\p;FG/Qb$znD714\՘F y:c~S+sEԆT7ө5Dx dn47ڐ-mV3x.>f6 )P}ĈU+SXIO֑/(U1fYNĸb@֫AkJa[fA6AYQ`  1riy߃V9%SA9"2|s2iPR2prwOQ:gx+'~'̻'ua\Qkјݞ·>K ZqcCO ֺOWT0zA2yf3BQj@ek-2z?%/7vR;8~zʯ>l,ķ?ݞ2=ϯϼx =/Џyf-8r^gR?RL ˕?p]zȢjޟĶv,sp=>'oy9PkI<{~Ƒw>Oy^FkSZ#bE<w,}`G^^s=aem8m٦iBW~xd&J)g}|f8Iv_@w?C6 ɿO o&-+ܿHon@x@{I5%Lpf䜧M6t-Se<|O'HK5nE{+qZZ v׿% 9#9LEJB`]T%JX4J5[H1Xm\D[ (1|i[~!H/ HBߑkjY)qmeO l0> {_(Ja|jҤr}BTR)Hp2 sHݼB Hs]Q,H75LL7`&J^釆-&]* 놱"+amH H B3;ݣ Lt{ܜ-5V|cRSADBzs%$9 mW+5;QBLHz~3{bڰa(6ށ-.YDgSC G4=TiG'Dm.$9m(b(~n[HUR 5Zo",uj%Qa^WJ=k,JJ.3}29^` "ChͲ ]g(u9_9k'Ԍ+/t 8#kH(iw-F~3uZg0o]=X֕#?2M̧ nۏW?s;/g8P²T3^zv }zVOOϤ"˶rwL׉\ FkBL8aJƇ'xy~ߣS 2pgwa6|q8|GN վ95uYx+ À3//T4 Ӆ0|zETȹfG'j)ȺzR"+8݄mx=|P1FƱRJ{HZ c /_Ƒ׷V[J5Jk)$,i0n1DGgHuC~GQ>#p'VAQߍ%Lqxgq y%'O oߓB`k|Lߵr:G]\)om]ƉZ6k:ְFb"0#JJ1# p~~c9_?|ΑF)+XЎ"Я.3ύU_3 uemژVT $Ѡui@eڤBo<%er[} 2 ׍gYg2B Ӊp Tp4!+'U aK BdjEhU猑=(ī[ >LjW") 9F(hY%gr(e[,IvQ;J8@fU,J| _<8?"j( m#)8}&~dRp_"#Цv%$܌9Fvߢ+iQ**C~F)x*yo?:K7JNPe||! E4ꆨ۹v 0I=MB`V &JhPѭ\78R 9hC-n`:o+(lT4%%Iq8QRhTŹ!Z_ %Sr@H 2v̟~dC nO l5JI6s=!xPC4\"1m- R#%5nܓRb]AֵxLGO٦kK?g^'^W_av?U{.V|7O5^__G7oޓzZ{,׹u7RdV޽{\!N|84hX\#jȒ.oQvG(eIaAXQ5*rMjh7Bi<[t=kA%*yno;QcF#H[b551v\-]zF7Y]t;wޙyJ9ew+,W7A%Tp2HT"J(rQj4-1W:%!^_cؿ#+H ޯ8gA5X*Yq 륢j7!hR)aHI.5۳Viu )9uHѼ1G=7|Ȕȉv/G)Rj{&7Z7uJMh׵N4ϔZnY&҈1A.=d("ANqX7(PZU)MyRr@t FnĨ1CEѱѐnjR*y tJ#`,U 357uQ4]yWE)LC e]~i[mbD_)R%) ܮZ⧉nr;"L;!1L-S& %&r"܀RCh*Z#V( UOje[&bɔV*MFm6m&25b-ޕbr#َeZv%5DPxA5ed(g9!EѢ`,:jiR!uPƲ.|>Pn{;׷6X%Ԋ#m$_7"c) a<3J¶EѬg!Q)3uY!Du;eT(P"FJJYa*ZvC$v_=⹪]*:%l$Hr(c1!ql\3kyԔv(y3KiZĪFo&# ڟ|:qlh3Ugзyл@CT0 TE#RNS/ w"=L\Hˆ9n`:QHlӥQDԚ?|$o+aъ)`*n8YFp?xۀV+c?ko~4\.wwHo2\ZY|o@ROA4|/9.^N܏07yi0436B4]_2dODқw!T;dg':_~O;{twupx= R{^~ap}ǴlיR+[I</_ u6*+JXѷaM u-L)1,%V(BTIbˆ1~b BcE")@ F ʶ!K%-uz@i.U7Us&톻H1g7Pڡ%\\61a jNmC oێA&j}k{:5,SdG )j8)R v 8/"$D Fv#;J ТM=Pi[ٺj2D {VI,=Ed6#tCs"@Wkϱ Ԕ %!%mY%fCӭ?66oзDh]k'7{>!O盽!U#BK:XJ ]#X-r.(7 w p q]59{kHQBo{lgGERi0]O 9abs)e߈NuT*T0N'j C- HUE $ Zl[!$6SsF[/)A9j;@:–8@Ym9lXgC6tDږvWF8m&LgWDUt!i;Xi !gRjBռ݈ȴRA[(0lE kܐ@{T&,]Ҥrp-&Bt=Ti"Vx+߰ a>_Ю-QBI:Eld&?SlB(N=e$i-ðG90yIƍg$[MB-ߞ 9r\Т/ӏI%u8)xs׵Kuo@")uj.-RJkΌ]+ ETJz/_1U ەP@<" eZdfo,qz=AiQ@u]#GDy#uosXYe9#q:F^_O}T/_tA;u![ap`[z>tGO/_B\Rr aD9O?Hg[j8>bx>rT~ EU2s^/40L<|_n+|eFshwm3]=9382WRw#RFJMvނ_ӿv/,/?StT1waga@(Z"er-ķgL>Ϙ##b^1!2U)bu2v-o_>bLB@N mER)~#gpnJZJ7\nqL"aQg[e1gⶐrwϿ& Vd`8X}1?l Z0 G3Rdj(vhC))PEw"WB lJgLg[TlkDiZɽ=5dpO/,ޣ#*RjYIIF`LeٞE(M+ _h.^6 "Hn_εNa+s\>{lYD H%;D5m%{=BV[4 "BQ$Bͅ*FXRkBU2޿Y()vHWRk{G.t΢ Шn׺Ia& ODn? U+USĸyi,y@lm Ƕv~"n;'JRD&-"Gv-6tJ#,9gzh,% H3ۼRח(3H:#fIXf$-VsNR!dhmPقK.T$2Ej QBbhjDt=%öΡƎ 3´ QT jj*tv8%oӬq95Ҕm#ot!~PT9=JtqȊ_v"#kfCGJ' {b7BYŖ(5B.9mtnעa%Bwg\"3X e"V )AtdOFKEcnWa@;ym9ȩ FC* + xC&ݷI{TiPR+,JQ,cu|:;BUs"[fLl(S1B 2*of#̶& :B]&|żpxBR#!d*dAJ˶qC+CVV!ur~k%+zl7CHi)[`RӴ 4Ad"/it1dU[8zO?c@;X54bCt$ڦJp=&{Tiin"Ö PJGLHdߣknaҺYx5_~&wz-X9BIJWv"Dԅ t {n8 a &1~]، MMֆ@"?eDU)ӊ4 /s97FkFs^Z^T4nxy{93}Q$OOOFuءƇYWʲ1޳]0ְLSIHΑ32q4cRLuj<eBn%Oh.=/'>cڍ\|/݁m[mǯ5?_Ck39%/>}KJ)G^^_yӏ||붐}]D*t]蟎mcݞQ w{ww~=wwIrJ<߳EG+o ;;c~K>=</t@u ơSwؿ Þ@X=#oa_}tf툉 ,y#>FhY?/|\FWv#H)ar-ƶm}y0x ujA"6 35Tpƴɵ:UҬL6HH|Jt]U+ݎ=J[metzdH!ry{ƍR6F„q7k,HlCSI3Vxtՙ"| \1+G\0VԋT:=Ifl$tm&s7 $ Y$y;?" kH+ypPnOYrt .QARZ$zdc%QDX~ 9L ʖ֒L-ӺQFD%Z|KlR)jJ3JHrNhZH̭)5bXsoeEUH)7 D 4}?B?kD9D7$8P )1Єufz+*Z4Լr o~w0֕*+ho3A󞼮l U-~H"&nIR*8@K0;CU|`me 4/xI :42ߨXmS?!ĀFXp*$/:\T_ l좀qʒd#N 9EU+F4QQJ 55OK8p,>Y)‡J̻(ecpyFJZ|Y=כzN +Fka`NR{gv|FV.'DXrCWdjd(Џ\יuYyz|d"ps̀2WBv˙#~+~鍏@.釯<|*5c?Yz,-ŚL |"pz4˄g>=#c"v )<Ȧ*[HX0VTv:1-3udZ۴:^׉. x.-oúns+VKxx| ě ;gmڜ?C}ƑC#4M=uzB-י;޾>V =7D׶Zϯ_9k5?|F&py.(21Fh{ 7#n xOΙ~0Ȳm7|]b:C~H1 d:kYוb7?!D ; (܎"ƶ)EA$8|jVUί'h5Fj8 Ӊ2v< ACEr|ETA{3\G_fQaL#ĂvPuC+iGQwPחPV3DIF6SBPu;9RJ5-?l#Ç]rMlf%oTGJhmzK6vyC$YiӍ>튭*ZDl4a hz2k!VN$<1NǛ8釁ڦ$p)gh%~CiA͞\orql3vvw!9#U(R8T+Vۤfr,>c\êB&64em\晾*k*xeÑiyE&RrF"X}C)aFپQx4ԜYLg4;<2C`jZpYvczQNkFvQ{΅GHRTycg-:R-uJMM* x?㺞~@9D!S(ȒpHaCiv:ȒoѢPB PĘpCOI@L-v;h?yB\P Ƈ&Q@+isXݔpZeE&E,EPB:_˭W98k|)a=J0qzŌGu)hh;4)Sڕ`ח/(]fѣ%(q(K*c$qGGwͼ[cq퐹GZ1u3n57l,l H(QsCJX Hu]f8? l.XZlF)v|_?/VTT.zדsAv&@ 훑(MiZ0әy6|UԶE3An]`=_93M:3M iM+CBc+BFbO5ށECN R[\rB,یq41QL JhRIhek;b2gQk 4Humݮ]L?P4~q1[T|Ъu1" o#BQO`*կ!tۘnͷiM{FV@,37mM(";ٟID4pdݑ^Wws.D S3~n3#>-W`< $lߨ?D:툴8eh²?rj[;uHNga$ѝïJ<56:mݱ3ZHޱNׅ1)E·_Wyaɳ'{ϸ;5tbƎirӿ%w+{\pGI rո5'oc#:ea}B+4|r鍇Go.ZHNqp/_>cv=-7RμzdG.^mO=7+Bh+:gfTΑoΌP u='鄱_>}Gr;DWݿ{#\}3ݻG~Cs 85w||<ܳu[װ.3}s\gb2uaVYV϶m0Rht,/gze)1#C70_&{:׾gc_u[f? d<넵ϟw#%#D)<.׆~^??A+9%g0PM 5--gvfx@Poۚqڀi] #}q`{J)[ZXPЪyJz9kH޳LW$%1JSW^ 0Rr`?xvLIΑ):q~ʇo~CVV0,@ n4E ]KImbiq3kQEad?^7Tjn-v$Q6 rhDD85Ch/kTܭCmZ Z5RLN2aV$+y(0hm*J' )3[ߠT-J6mWkw,D #5ou*Yk[O'moGc &XkSduR~O4ںFA6W j|؞2!LlSb{#r!\ڴK7"Q2rBpvp-*n:_P=)lh~^a (RRVö- smH)?6d(@9%| IHm$D@ȄyB*imb~Ƕ.HY v^N !Un g1n '|LʆBs> sI-(RSפIe[(J^4bٮX [L)W0-f Bj3>XJrtw><'. ("f 31+9WzJ7OI:_sͣd Jz~c? wgVs4??#̇G5Z4ZNF \ֆZ:]R%EN ]L [ L&,)3=_o#H+nߢb#_y<,~e?4nQ\+wO==`n|>s8q6苤z/Oy`t(-Ӊul.  nsF= TՐƴlF] 2eH+ݓkĨl9"t?2/3)(% GUIu_ؙ ݻZ)FFal82%ٖ&=cn@\7T4vc5T)j7J!NbGw{~w l(w;P+8aE7jjV{R$1gG¼^ZIVrh %$s%FITUTjHɪM([Yo+J6_90P!MصvH%ۺEO%[ւuy{ w ~fOY.`RYbQ\o ɳMze躆xWXw{X 6uc[Y&Ѵ"Y,L@ET\rDE! #JAo-"9[tPmʘB`#"ur+q]a#SCVUK%9}Kp3Dwh㐺m:#cDAPɩ4K50NBXWJ)Iy%f莔 >ްR&Bέ-Tî Zĸ!k1 m$|PʢtpVbEԄw}sLH8KY']N4mH+Wۖ.3:mE+G68I6P V&5 b(nGL,R{ƧQa8 5~az]Ob:j-" ڴϋk GEKP wQm55Ԏ*WMnh:BXj۪S+R(6%G/[e^ÈRe@ Q$ҹG [#{Jbv%\(GDh4ߤ6jj}#g9dȾ#Nb֕f]ro:Ħ' E-y nm:q%RH%%7꛵X-FWZGJIyV)a*#}CfF#7\}Tc[h eeԤ2%JN `!%xzHlTrS"2j_VdϑyEJD_QD5X_Vi⚈% . @'+᎜+;Dɔ~9~ xGʂ=)rÿ[%!!.[syEeHyO՛ʖiZwcNsϽׯGfDd&)dJDrC !~3$@ jĈTRTCFF9X2X.cf{{.(GZ7 ӂ5}"`]VcJ2:4MRXǙs> w>s`mg2|7|Vzd}vm<cg6 O<<>"p1R֊̝ƑVi8]Z^'Z=>p<7ò51&i2x#}_AK\ʷo1l\.:ux;M_[y%PR"|0Q޳.s%IιRo `&HPIBb6wK%6! ~9lAmg( m #B{@XLQ:Q˱cCFB^()M'BLUV1-x6p̼yH)#\mQDlu%Vrۿ!\w\e:H%J\W=)mU0ׅc4JT;Tkmżuvw tkIVG.b3';!.hV1su3"sYt=VM_*2-s6eF6PVD״oZhR5%*"W)U 93kOئeEzݡZ(4/4(PTJA[#) DA+B RӶm(Q;:KFN)cu9aC="+R h %˄ʲ^(YA).eDif :}F7sh]o~!gtױHIj3Mg|XARhmO\wOw4e>p=o{(~k" e=߿}Am7;/|{ǚoXCv77$))أ_6=Se\l7>=?.m86S۶c~<2dVY!1 qkZ֒+7? k ]aep8swWzWEuRta{+\")vx91Y\ƑV0,Ǒ+nS E6vu%YׅݞuZ8^v{J)pM%]{zwCoAli",+װ`_ si?{D gduVڦcYWm)ٴ\3VXL)0Zm낱ymx [+TQȉqB7m_iV)E"PQǠ\0 !.,%' fZn!f/l;֩5E̒`"[|%l6HYH/tz(c)"ct+XDjӌ2 fSWJu>alG. L5TG#BljnWz_J+VѣaEbHkѷn[TpOI k0/kiZH2"BpeZs& R 7j3"42"Dʞ[!-F;|UtyA(U9~oHQR:盔MTGcu$%mIqE"~D!M  59\_?/#؁19qr ʍYFʊ)+%b]Oʙ08Oo9|&JKDfI67g/vRIt#;WluJ, q۔mm(n8^RB:"&unsTPJAl*fv=i][D)ik( z"gX9NÞ2%pA*Y7eayt}(S69To[X07_0r=%#=#˼"dA7-~6R]*uu aABJMNdʍ޶bc<6 ) tĵZץ:4J!$ ,RdEp4nV^$VrnmF4MeQJ1 Z ]Cp/L\跆s+g(ckRۊvIa4b%j%귈 tw:`!^0] k\+ 471sha}HgXVa`)"݀]\vPc}ӻG V7$#2i-=+gs:MC4-pW8^hmH"#5=Lni{~r3 #qJqrc9 Mo<'sYm|Q$#k! R1hvǧ:O=9Z_W޽{uXǷO٣4Y^|G_K{]?zd#w=jyi^ ˙{ȫ+7op>]5 ;!%^^_0ZtJL>'lw;1&Ul,\#Jr'Y{_yqȪ54<>>rx}Ei2r8M<ϔ\pq^Epݟ 6tYr5D44MSR4;ÇJH3##Jklc\G ֥Qr򷵳$\u4Mb1$u1q;iXeI?a1#1ݖ5DQVIPu:5! 0OJ]'zim(C7BC2մ@ hEf K<%GD7#[$U$K&M#kq ҶZ!|`KEjmIBA3BkJHZzBB vҴz\f|()" BaMDzN8jtrZX%r~F+URy]3!D"eH`:hӠt +a}gn{ 9@ CVծ!Hې}TV"dzuX۰j'-k5V2)ybQʗRXR/r=ߒ "Ejºܺ"MyT*rktѶ|0J]gN-T)Zcʙ9mvH9ׅ+FHN+δTˌVH3\4J 4#{b?_XBɞu\TilF t3P yx}6@.^vJ'LIMVASH/g([g!$Q{֒3F*HDݲXB¡t;tTB={JBe4H FQ$ʐC B;J[Dj3DU](c u!%. (%23V;Jj1ݖ҂ ,B*G"Q:S-" ԭ8:иC ƻJqaNĢFL PW[;S1G\cXhU۱LniJ39FkI1] ~KJ /iLSckBUHA 3 hjW WP0^cjnZR7R@Q~ʑS!+.8I _A4-5~3Ӆr#O)nfuQ8wcLO3`>+ kiĴx4_Uk'glϐ;sE3rb D4i75js >jVM=b0M(J&6'y!wRJ65֔ɇ#{ GZimFrxyeօ BkR qDJ -u{ÇJF ՚ˑp7B\ʑ1Jt Y7 5R?C᫷h#s_zzf;TƼp ~ p{_W wûw,%4;qDGV||_ȇze9_V x~;p:10lw\Ƒ% i[ND\=~Z3<_~w<y!88cH\/W~?T3wheo8NXk|w4 8e0Y|8@ Ms^ ?=N3L^=w|9۷Қ+BO?&L Icߴ\űOTò.Xp:2H Z;rqf3pm+(- f3Mz> iÜhLm)(o(5lE;Qu Tq ˈYк%eE9e%ֱ]FS k-0 MS"L:y$"HV2*uNk"T;W44 tai!CӢxU);|i)vOZ˙ۣBߚ#9 XLmZT-,Mȁ&pR@JW\CN"mO#JFwL?J$)!"2cTY(uNhE[ T!!Dg [6>=VBF*( +%k6ՙ 2K̰FQ(,ӂĒPe:U2R*QRTyA?_P}S/]#Kn BJ"JZzDncN!`;h;(6wH%M<)׿b$_6B1M=oOwq?7:CCFṋ?2^PF7g S t[a<-$BKip- dAZ_Rۿг33"eoQTZ_=!޽zi0 RY֕][7Cog!k|'2 Ļs+a:.?ؿ{$#ח Iej,|~"Ix~>p8|[~LǏtJ3ia)2VA 3Z~_27_~J=>p:_櫯z8;tߒSoz]Ok }`g+E+yBx-˼p^k3.ia(PS}˼<=,{<̯'l'=A(/+ж-//i!bچ;i a.,Ӊ~0 )%7X/~kJ׌,uda_W8gqz>1.0Τ5ħ7os<8NW-1G|n%LL4|7Oxyyv +8]MOuYy4v 0PS͖)-/2y^Qj4iz hA[f||yF䚩6++u/UHAv=aw\/'fCNHˈPH]@VGDPi0q 4dReH!`va*քG(ePֲ d4KBˀO3aluGҚ=o24ƽ!h DC6+z)EEm#TG3"T'LJ+5/45"4Fp99LtOłv-K)N m:]Q%S!jP !,S͕ Iʑq'OMZbB +7Kb倱;'Y|1Č/$1UýƠ Ҋڙ,,mߐdGȹʷ@ؚ.Z|EPm Xǀε")4b kL7 53JAE 8H)+8H)\iw-RIpzs[)Œ֢^P,inW*ɣ oeGr*5jbhNXPѨ>dQ~sOiAN<@C8tjSJfKE4=t㯑#+!k[\k !Hk[Ibj6>PgdS m5A*DAw] q3r }-DžTd}=C i$qU$mYH!%[d7ଦ)El#)rDm_HaDqF<յ z!'n*zOX3X;u!KtSʒ,K%$%*aPw~XEk o$2WMH X+:/^meD,` N>fnGQUt nTvC y^ox#IޣB=6V0ׅ'JcbêoJglWI*e6nԒJYBBPւ_ꟷ$EJQ] HtY]JC~kʸuO~3{U4@c{C$s9GZe;R,~dhlţJYcBXkBIENπ@m,%GR X suzgBm9PH !ԉwİuAX]i0EQ̀n45po%4u+qưGaM6)V^3Fh@+Lp96-g P2B60Sr5 %tAu="jH"SjM,,PމS<|ELcu=)SJ"UDž4<5w_OtpBm#MKi3Y ˗O,!r9~pM_}d}}^5#B~/|gbL|?NJ>?*G>=r_{?vs}=oA:G#EIUt݆>}gOyϿ1?cJ??|q@"d 5۞HNxsP=lJk )n6ض<><@ۡ7d-!bL{`^fΗ#w{vOL Cr&t {cƕ)J. G$jzb a:HNp>^Qrd5u)M ea@׷;=vҖ'Nkxtg[.3Rp7-_&aVhkI7H2{t,,FhPW-\*c HC5- Y'*bp-1nKR5 Bs-WEv CdFT@/453ZJ3%fnKXGJnz%'O i nx`Y&2owZ$q?}շ7r!XӲzC2݆x&m-XŞsF9H l3o L J_?˄l*jq9IZJn*V Rfo (pnyV򋔸~ +dfiG3ZY( X%cǫ px$o!GA Jd̗3jؒ1n=6,WbLD ^rX~ABMZl=go1Xk瞓77E S?`o ڻ_B `SA =A&)v֊jV19 "bx<Ĵd0\[G*KΤ %+9*,3)g\;Kh {SX_1JPn=RfuyPm)b@;VHiPF1dr.M];Vf\e--٦7E.&$DZv/~ M.-uy7|`6\ߍHGrtL r P}!$sĐp(RBfHEnNVdaGBksM3TP e Uj ՍhRqů3R UV5C]0Rc=5L=~ݘ9DD7pn8QECK6tMƞRR r%Z̅%&2@% 1l $ 'a h Y), k]a~k"@HH+)icO [*uOD zDj.X ]$9?N'rX 1-ִuc&E^/˄FGa(%u@@M׊|oxmZ>F-4s(דJ%+FU.5=";’) ʑ2t" !e7DpG^wn`\J{Z1]GJ2󂏡&B=bPD#[!=dD{&sХkDݨ9ܶ4_1À*(LwAdCtYEzMbj7 KyZ"aRXWqD$Hˌsti1nzaazYugÎ,$eŌw{R--}sR3t3 K"aⱲo[2 T!*Ӆ XO)':6]eeN=>}&$eù;/KexẐb`VGP+j;SvP=>nwL9s}~/@ć/߲WmQE=4osHI ˅/k>r[K'˄ʕJW(>}>>}P'ЄZxX72EϺzĒ;|O~ ugB_k?4?eb{^>?#,1釟{@ 2+eRpvY˖d %%dH9|QiIC˷7hQ;+_Vs}|w}+9gNO7oyzzd:e|>jT*_>ej4,"$l!Z3+Oѽczq:0 {THdU1CD؎R qR+9ˈlZc"ĸ#X+ʺ!C 2-Hg1#lenjC {vDTGJNFІ\!Ԅɢ"eyoLƌ8RN#ITHOdжCX*woiT/\a1v )tEa!ƈP -e(b٠$:="uG-{j MB*Az}jOsg\S6!lF#%hER*4-I&Hۂ4+8mĞTL/u#q9Mg-q;wmR$ [Zaؾ'%mLsTȶFeX2lWu¹iZ@ڈ[Rs jJi9y]iorz+6o~[gZ)t!.\ *kdkB 3VtD"*REE&!r{}ĸێ+XDffص _(Q)dqVpt"MgԷ@׷/mKMPtO gPvs#Vf(g5*"@]QJ^X;*1Ơ?nhLSZXzP8סTPU4049ΐ)4健Պ7 FL**;@"eOh)VCbZ&mRvIL( JocEekerEh鱻;nI 6%7ڑo5!56߈6" 2_3GZK[\ JjmozL99efmmޯ8a%3޴ 1{pjn_G&ъ9aui:0џ\GQhqH6g_ɩm[1臁Zkb8TQ;jIMpJ6Li8j<9G-]ㅸЏ{{rNMB2DDd?tEwXkܺ'7uepv9je^XF^)Yo6ޛkI}@'5B+ שŹ Ar;bJԤqgz{)%*N'r~H>p RH_ӉimooG p"?+)xm?DU+PJO?פ~ H.]OFr]^GiOHm1C)HUBe麁n$k vAhRmnhek*ѪRC V83\n aUgHgH k1ZVh)`^qV[iXQ]h!Ϙ;f5"JA6TӁT[m]4?g2oF2Z ZY&n[@.R*CJ=BVD5Z*:K|nb?,%ɣRD} ÎaddܿEj6 R`Qn6T j\@8}r`p )( %R(JQB6Zɔ!&Q!]q5ӦMt#ѽk^݁>!R/3~qÑmTd-n EcӲm_Dk؆I pT}CiRVj hH`yZ&F9yXif;ޑ m `DtR*ibwzC[d/-Wr=4 e uD7RBBu8{|Τ+_fw#?#_>day=13mA0 ˊ0n1?B=!X} cA;^/ݍ_sGBu~zk5m0>~_72OHi ҙÑPRÉ6^/ga'v6 8227_ƑL7Kp\^<NܳLs$QBІЏ\.RJ@e̔Zp97~n7ίyzz%KCʡa+e]R`DZM3X>ﰇfL1wn{R$gB\u<(GʉywtA]#xKD=%eÛ\~R:'n<RZBs~~M7"r]PCby DG/Ol:)Vz E-"Qۄ4*j.,²sE9E|}&gw oݙwT$~ZJIpu1m,=Œ-W-5FԸt2Zb> 6 5GДYוbR`ԲV9m+ 4-?t}O6~@QlS}j]{EJ06:[o$rzxצ2Մuk U"e3C?;!1lt,>7BQyTbZ7B-y"ahk6l:OȺ1H-Dx)Ru"jPJn럲EжULRXۑBD0@I"'EWAr i1oۏH|pT9ji,AӢL1=|b+6]̹M~nQ%@е_=RJ712(ovrGRĔPE2m[J%!e ̭%1gϏh!1`i>cVپQSDVӊ.wnUAYӊRLE&Pd߶JjnZѝbw#aGEr\_umjo=v%ҹyAb]6^!L4!Pju EXT/Ԙï ژɠ4 R7Ȇ@\7PA*^F3u(ۆJ#`/tǻ6q׊ Y*s#J΅n31EQDUb.81()QrE.+lbP64xBׄZA@?oɈ YH)d'֗N&#ӏc{ۛ0/PRT] Lt@efR ^-S?Z,3}߼{DЬISSwP O/p]T!E[d- ؖRA76,0۟+)fpB&M) y"m[! k]j o/+;2No3@mLvpi"O)ZLfLg Ҋٟ 58pGu./ d N6<_QJ;ǒB9G)v< JAP +'Z%f c{y. ۺe-ic +5 l2hJJ캞|9wuBJ׿aٚAO o޼!t2t}*Me?54u3ww't5+ο/x~~cXL ˙F+uFF݈|Eho5%>ȟ}=Wy utBGa P)k_/?qz6 )D~{<}Eȕ<#D E,mF<9#Îg_cw=k>x~Y^ ޾G!F`vw86a5GbtƵҽwNOF h ic{ mT1u>j)w׉eYv#ko)Z5p߰Йs %e| __;awKɌ:ijWRT#!$mSuqa9Ѝ.mYEeIi>A=0_Zi6em+TȾ.J\.-qa1#m Ąƞ#`#v!I)c;RHMڦ/P+26;mv3PHQ-V3KX\>lD%qF]RZp >_0Af\9FٖL1n4p6;!)kCHvyX׍Z&HuoJ+6O#VLiS"{d{1Z!)ʒJvpN#F$O^/ J!Yql'SXMaTbkۥGrIӅ(*SV@SjAMrk2R*:_d*U׉#B[|k vt@\7!AKE M4gwiȚQFUHAxtYpb\++;B"S(ZBY!*k7ŶHj낵[iGN%BE"1z+%DjLzJI*]ͲuAV)-u&c BP.) 8r:Q,4uYB3%6t:_[Mho9nAC0C 6lka,)n!N3Ruα,TuHMjap#* xޣD~B+AQUAjw;lFJo.z@)A!̱mR`Vd7Sw 9`\϶8 h'hki.ڳIwd;)g>|)u[9D UF|q`="7RucٰOeƌ*멲xʹG琱lAD 'n:#JHd˕6uZ_P[h[2+{D.۠'B@-,1aLCל~uzҼ02oZJ޺WT 3Ӟ<ϭ n; mݎv@@t^m;maXn!{<{ K [jY&"ڶ*U޼"V1-@/14 w=vJ\+V9ha8U5 %PMG_۳|tP2`qb"l{ # )GCHG1,~@Waz~a.tqțoqg|AΙv¯~g`qʰU}7oYAʶmT)AQb%۲ g~>WJ?0u߿_>a /3{ۣwOL;_w<_gFi9㨤5rF~|񕯾ʼnX*/mU*RY ]s,KTy 6BuYyOOO<_/ ڲ+{[_|H^'if6krl#޿Gwгy*HM0㧏 cw:'߿,יr|zVlKX9 ;*JZ5V  9S"U0#e(AkԔ#d=%yP)}EaѮ#C#-kO H*LtyxaP)2ZG1+5+Β†'caCr¦m<V!KAL58+:T$qp P3?5Zb*J'Y麼;! 葶c7HABW\秿[d%QNIŃ&MO;JlCiĚR !Eص.Њ;JetLl.m.[؍{+~vmQe^(Dc>>݆"2}0G#1R\ϯGÎuG>#_~x{oGgl'~?k<_׍_?gzye>w\ Û#2l共J#rt:p\yA~|pw{ˌ,~~v陽q-:=X5e9E~_#JeVN;>?ҏ#a/c~zPJfV܏| / ۴q;Sd?]O;|y-X`u@GY{ "h`7PbB 0k~1]ILш)Djъvh U1z:?ΚM H:v2sBiv9Rrf;/EPsVܾQk +xϔu @ eB UWc:CǼ^0! JRܟjNd;b;lYX#g̸jGkLhۅ:þY?{-H)av-&t97NI31T\Qu{BK=7(X7OߏuFy+]^ucyH?tq29aw(E!ʶd){ĤP =f< 1A+W&0dk4Z"%u>X%:kmcS?@{3Dsװ!g jwdu97wm֢rfaJUU8kT'68*T9ҒqmH"(?o9ٺ  ezmm]ۦ(WJmR2Q5f@7)X V(L k.ZqƒDޢB %$:rJTF Bx}]ۮ IL+ ơis6Lw@cv葊P*Fjvfn[Ri4UxQ4`BAZoۓU` gD0:C,57 O( v)DdOa)ak/a,BHYW:͘7@¸h|sS[Qo`.HqTDi4m]sZI#dp!TA -r!r;3q]0)S Bf@1l7ieІ7Ha_buje֒/@{d9!J**Z"Heb:LBliθN~l+_ʡ]֕5PӔRr -Rl3:%Ot{dCU"rw"EyЪ&n@#۶jeK57i[)(-#u|@ve%@ G,3QɆαŨ>6•ssD.F#}&`m^b /mFQi'΁_!xh˒o\Á]|@GdXC*I-wTL|zB59z-zQDF@ȊH6iD>!x.?-Tqf 5?'t#B7t<ɮeٚf5f]ȈLB h!рn z(D M$:d+@(7uNU͒>sZsDjF3:4:Mř_Fd%I ~xga:D)'Ɵӧ[|L7o/e7$ƙ~9^Gb ̛=OEwH"mx&=/HR.g[>#}a{g; mVcچ<==G_fm:;1/} ^ aAuO_!SiC5e5}`^ChI gVxဵ=:k8gky1R>?~AWbN|>>>o &̵7 _=HuL)i:nS/nۡƚy/Hm3)b [T=1z&etfGBV$4kZqR8lQhBTfָ0lIQ L9A"$!I! EF 'TXc1JaGərfߣ :Jq$qȴBQe0'i$®O hT;P;'i]q֢RDjInG =wlyO (`/ Jd&=9춄5`Jcզ()9b> VJV2Z0umntլL",5 "gp a :+Rt>H+Q௴ l΅T3EԍQIX :~AL+bs=8j$j>d^ݶcEцH5SFhK# TUd8/EDk5WmI~bm_7ZL!D(k ~i;&OId`iК0h]<]EiBP9rL=( >A0MŪj%6MP#4%RĕnAYVDD!gDG C3Y( 3 aDА9-X-{"!j$eCQ{>hSP=Krߠd*n5 L}Āv8X6S⊳ FYb etDޯm$[TE BHJG߼,G]Z_~wv˙2myf'Eǂ(״yi-܀{1/XX&_{_BWr\*=@N=9Dua%#FPZMBftkY_i(I^NEa[)T#eDZWq7BseeYL4 Y#QR|q2:$y`t%zY*ȁLJ-Ɂ{ i]:Pt-TtƐɨL ]Š(:bD đdDmJNV1 Hk#F5V ϗ-02npڱgΔR#Fh[>~¸i Wo 4s{ss/>m :->/3~<<#i-OH=<ljpF Mwc~=px|&(.Ze{^DQba'fiۚ_O :·߿'#)3_⧙iYm×:sδ]Û;h,)F_qW|yzLci7~4o*i^N+zm6_#S鉬p>Qr!#FWVq||o'f: Gn>r9O ?ܳ?i:qv_>3 M#b1+B ̀4g 㲰. ?_JL4!f=f\6-?} KH jR9:Nt7_nx)솁Wئasxz;~HݰNk-˙nW.瑮u6Æt<Ĥ{Ώ/U> B0.hi͛B _0hfsQXv˺]UO +g> 7h9 MOLFTc)! UvDVb\3EY i-Ӓ.պ: Eհhڊ()3a<Ѻs-JjB5~9+Vt8TZNᚖ.خ'|:m*Q'E!)1Xrx~lAZX_gaKZD0 DnBntU{9\iYQuFY͓W.$8ղyF9zqEb"+2È24"D/\<$Z)s|D۵hCc i3uPTT"pzK%U)k 3a(<\ PmH%ל"%X]+ub'\JwGڶC12i#'eg,DIOSu(a xRnB< kEf_PJ]CJEI(c0YJse4۵hc1VVRZ\ȹ 6þb\KT3zVTb78ZKLb9ސEF7<)TH%kq^2'<ݢ'Uڒs[Rr!4=BI?VH2I@c!FOə39ƊHW4-Av"DWR([!ˑ4NMj-%*JWEeEwmQ`EZ5MG Wr E)QW;r@m**L)CӅk}3ε֒sȼLh!X,Z[J Ц#'(8XvHe2Sr u{O (I?PȋP$uAL{)կ{ƥnCZ'ږȧFk)zz"d* x\GRUZV9t, mSJ!ư5]!1Ņ4jCNL^frG$ Ouhl$aZ %m>=˼0ŸNFvXBWk8Lsİ" g֕țpH,+3~s|Ȧm1J+(k%#RfKʇOPpsB@.3Gz(J_ @5< _[޼xvt>[> {W0n{fo~?q>畦Lv [ˏ_?cn _6 i/ T$T%[<"lud[.nEq1$L*\eR2OHkw`:j/.JXaJ\h C^&VҊvCےb$QhEJLײuyʼz= $N犗E(rL }7дHXօ#B>dVOQN^O'n3L״5V/7bgLQB ?[m6()oI_a[{Tuj m, ߼2r/~۟膞0/u_O0n;vJa1 辥瀏? /̗3( h}c \cN8Qh]싯H@+-ryCZ4bGrF\H<!u}HQc.ZN }ӒlSUKUNE F[ц rK4lX*Փ/G9bێկLgڶngur6-]3/#Z)^?4X-AZlCZ>7x#Bx"L+y~e'\?֕[)ߡlC,`l4,p<@!\$cn#Y*cZȨTXm4J*4@%e!DUվx[ˊ;q t0nRb`\tֵ E\ɹillZ*%DmPkJJqP1 {)*iwC#R-EW5c Rp-y ~J)uY)qak׉v+PY!fz=b Z[IRX1$)K ߒߝW5(jTh%dH`W"WBd2ָz9ya4y֠ABS= SZ0dEPu7¨|&\]$RZaA Q1`]G.e[m%[BN%@PPZ^MΉR$Br1_XimHhiDɁ"Tz(*%de+.T\ufjSYɳ{D4X-y]W?ɕWWPzJ7!NcHEkf<.u[W g)4Į4-su )RTU☋;Jеr gɼ^ȳG TO8MtNvAa ~30=GGE\BJ-e]ץ$n_g?5!$e[h,T|͏t Q~Җ/Xw͖r! ӊʅq0o=M: ~:xxnxE_3ݖu\.O+omȻX/#It=YIL,Dt`h[a`<LaI34<+kX} [vϟ>7DIB{E斒a}a2ˈn33Q\20sV)߳+NڋpsFU9M |Gqxzes˗tƱ|<`O_7O'6ʱy㇏\7m?pb7)%yFWYxd1|B 1D4L|ଫF޼ 0x=#-2bWo)uSr^qA=V΁a]#ZT֗`*/IF x>J&eR}E :WAߑM[QlءG;uE_VIQ*T V;Rh['TȧuR!=5 ?MA=.3J[&URP:SH[$+׵eF傲HH۷~=Q*#[L ,_݆2هk$h$ jW'zZEDDRTVI?px붫pToI)@R=e^ƱRa\ׂVwR$3Ƹ+53_,:V3  Z U"#J yۓ3OLs.uE*gt\Ϳ`\Ū\{1h:DoXbQȰzN\G:a-8C^=2!AtHT!x#5$ǩFs"(\ HW=$0Cjgm,\֮JKhm!er[КvrR).?!@uoJUhmz].-hN lC9xƓ39V K4F@|I>"bAMy:'Pi 2$!nxHXt#@IXn1,_22Vq$Rzda~G趁uAA< u@Dzg]}OQHnѦt[W;HsȵEӐI%֞Mcx:(/aFa4ͦL5Tp-qzfE=L0NdmcH-o6! 6;'L;j.䄈5n~!O/tw{_پy4άg_*ہtOկ?z}k@4///_G_y|Hk'2E¼L3R*f`x<mo+4^/>~omGtLsf.~!zZ~>}k[23m!fܽ{˗ i9w ϗ3kq9shм\L~EˁrbzºVxh6S5mt|T5fGy|~w|~}f9sGd̴g<̻V)rnC@ YS9CXW6mT*d8~:<+/]||AjIGgl˗[B'qQ*ٶ=jo/i^D~5F#R?G;'ZkV+c&VC uO5Cm 9HHNZV~s (RaRMW!#"*r ȊEzO){s2R)JJ$k]ݧ4 3RS ƶFRiMuJ,%>Ui_ u~QЍeϸZB!DZ5,ir!:{\ί?#X-:u 5FbZd>qs]JyҸ%NMJc-FhL٢H!OGH3 {R-7lk 70>j6y.uxG0:*Y)R)(@Z&~Al_#Rk ,,%RA R*hf˙R 7wv(5)ZR=W.c>sd+M;TtyI DQ?fPUN 1 nG3l%mZJ7a/4ѴZR v ZWI/ 刱kR>,36mӪgtr.Fxv NU9_5rn{gյ 1 "5TJxLj1]EɆ lCZGue9Hc ) )3d@˄Su䨶%o-Ci ǫh:?OHHSL)+ Hfr<ڮ^2@W>>\1|~}Pcˌ0̈u++]Jz1iZ'uJuABs-]7ժ#AkT zH5}@(OTYBLkoHU_w>I id۲d>bЬݐ(E\}`'Ώ_k Bvt-cAuu,Vu_Xcd:^H>'lחW3,3B2_ڎ0p3ipz8H/#rϼk-?lvBHpv)&RJ]2Ϝ XbHfK34tEX_W? sv Ӳi{u<|>rsKI+w=:.KY:ﺎ8*1pϔ{@3O#J v %g&nW"N3g"" )Z$i Y GTYZBR@ak^ BR7Z5a,)TJfS_%AB}q+MLl/np]o~CFڻ{bI,knY%O5CS2h-J(2שȵ&bxwҤJ]WI+FTJxEn\W(O3M7b!+,Lψd {4޿iZ0Cdi^ XHۦ'PEªLSWY xE~ Vi55ĔHgx96-k8ۑcȟ,˙]ߓCf+(5{*Tm*ZRFJ*"6ݷLa+0<ⵕK36bq*S t~ϲmXӈ[! i##3yK2 9'FF0o+!39$c[B[=8 45B*Y!Fٔ\1M˼Np#(KiqcGLCFPNJ!4dRZ=iDPfҠ3+V~n ڴ(ۡ|7H7tq Ä(mэuky1F:,[TQ1qlnV.p[u"E{yC[,prz(|e#KjZ{q@VU"v;؂Djt׍hoˉ~k Cec-z *ШJZ%牮iJ\^bX*6T*&EkTc).mjچrmٔ6}G7<>x-y۸{ w{UUC/к%/{e_+Ӊ~F1]8N4JOyy~fؑ4 ?>??z:b-u7w|o`"Zi*wozBwӺG@ȉp0ƍZgsO3/'rY}ӳYl|T =^O'I \Xqdwsd?줎PaL wo^_^oz#z`BZM47GKxG3dq͎:{HU[ 9pR{@&ML"}-OFm3!WL/mϯ47*䰒H͉5S4(SI[3B7:L?H!Be]DVuZvlZWiQJSeFTMoa[Qe 8X,/טuA? t@RsE[V͎{ض < *^&X[F@Hm*|cb^uqe2hs\8wD)-Q 9#V|F}@dvYHL=zP aIX$(Y3 ۶E8RShYΠ ˋJlQֳHW FTwZb=*n,+MsK+gTw$*Mjl{rQś۵(k 9ҶxQ@T3 dzƴ{nqW{Gt0)&1^:mFJ>ϰ^$k+0VuAQ.6( * ,4X$ S5Mie]m-lیP'<eK$LJ|k JXZTQ J.8JwXm9'|õ;B -<J*DQQBў={tn+l'bQX0-#=0&1)N]K[y4=-e1G!$GqI\.i/hɰ,d_(m3ȖirrBZg@U`q;en;!hUEL bWFJag| ;bΘZˆ"R9ˁR7T'T!RX OKt;U' 4\lr"||TPNZ :eie–녊U5E3V:F~7N,ZYg%a`|ByjTQ]"q~ /O#4WA+AEGnw{V̗DS懏ɍbe\2 r ty#nGqrq[!ekLWu||:/(kQ|fh<޿q4mpjH|׌eik 0Y] k/ZwGuAwrk6l:߲-+Y푛LX$Sg@7qݎ\B((֐8eX7()׀R }=)lm&/a2#^d[1V|QpmxAE=1nbB-1Xe[ i(ߝ."0rMw`\aKpR na^\Qx_wx 9n*ĮiZ|C;r Z&Z4ʡ¥ĚV\6fu5%R ijA);M PkضP8mhZ%Vz(JV4#xg]LB_ʹq cL2EUMQcD^P9XџDŠ r:U>TyK31;RQ-!b["50>}5{\5W`u]k(ј iİ HHVy:9Z )g1FQJxXA.[n053(̜aÇD.1"|Ԝx~|T,˺bf3 Z i$5N&Pegp`[Frv ~G\VrZqr1[BQb!RfR^6xH2D?gEV iZG\r eږR % um'rCa BI+IiZSЄRb[ZQdDrRV\SJX=fr-8 9cJhtՐ*165lH +=fvfZoA;.?sD]GNA<oI.89'A5\n&hkp.r@u"vʒ(RO [zHc6互7<y Gה8iUچ' 1*nX[-SFxo,}q\c{cEƈn mP#njSz=FR6-I)1^ƵEHxGBaG3yF2(ߐHLe ˶$Hˌ Uė\ oCZ"!#[Dt& x++߳h' rjW^!4( :I$ jDoדB U9N端'J:JQǙfKњO#qL"3Dog8fzTE qK^N3/T1Lk ~[KM6N90O]4lkI\e^*V'eckĪz }߱"czJ[\y- w _y>q7[/ݑ6ۓ }G 3XGU%DYm̽nh\҉-*Jd, Ƒ|m~ǖN6|^d:MmQ*cCoہ\̱Tk $ac*ӐQ4N}opێւ鎸|H o:y *bmlZjxc(\2qJ-kq 覣irp/}(!PCDH#JN8|C4i#l|^c1Rs[UڲZw$.#B)ïZ2;( LNLJ eA)еAwEjpfҚ|YVнLKNhSQri{{F)rhZaXd_l ] h{RTjk#תBZq(FSfDgA_̠PEAyk!CMvGI el11ErV ]V26,%nM( Gp^Ji)D4]4^RQQKE&G~Xw(`J9,2_߂7LȻxtIϙM:uqcr[旙-nqt|'hw=/S3ed8m33aY{Һb Jw,&\gxG~<~yDQ9s 9{={敚 S(wq\hoX<uk˜v#r{+vuw[ ʱ۳ʊ;G(U)޿c9yobK{yb8T^_8=cp_|ԂyY9>?qFL Q. EDs{ϰ;^HuYI!bTB;Y攸{TXD ir%i\HKb}vCN4Αt@ *Y%m7lq1Ԣd[RO0t&L ́,@LipMj:Vϯ_hw7UY̤T"`,Y M':8<<|4^mہixŒnS(xzbv*ƈ2ii7Zt-9%z9k; G'b(^$ J޷(VK)C4;Cڨ1Jn8M$m HL+8R)7GjP\do,%(A@7Yr%WgYi[CNRnvVb2V2ΉTLJ.9iöiY( ¯*xі&R4-:v/0_QZ,zi1r4ZSjhC*+[4"yT(9sF@Hۯ *d\Giqhې"cerI洌dk@KE,.41{a+^rt@Օ#mZEQ 3Vؾ'+5ԸR\ W0B6ˉt))ݞ\3!Ÿᝡi:!mQ1J yKB"Xu:ȇJPIqUiځDLbD\5VY~rBN-TM{=uX+S#$"mS#]_-Ri#i[87M  uL2{:ٜi[(Rrc! k2ZjYQ5r݀]2:~fa rv8漢hi qLUeµ|_?7tmC hwR՟",? 4xZ>}ay\pڰu%~./G<*C۳'Ix:r>׍JM0ray>ϸ蔹,)gnB߾<^9Zmy;X3""=Ͱ'@I0PvX*9FBJ]Jx~~"DHo% 7cXL-l*u{//dU]*-5=L&g9FYE+1Kq9_N\˵=),y}-aa΄QQ us aWcvo^C))BDJd,F+|֒pK2Phrm.LRpQa0r }߉+HdfN$ H 3εi/Z+ f"hRwlFRhwbE9Qc;GUx"S*XB5m^xˈf'MTmi|#a8!Ӗr}PݕP:>/Hu:CcM;`JP<ܼEVߣB@59T2W [ %Gr uca6Ud"4UE˅~Cu ۶` a 5%eyw7$e䁬R$իv)bfiɹRs"&-U[V.NUX'm-ZY?P([4YpRC=fBΑF!^;EƐ0ҫRJrW XIcm6T44Yۅ0>`D +*m+*΁Czo$X@yCF9 /Eb:mw($BaOYOqB,#6`iHU y T #Y:tؖnQ^.JPXeA]iB(sQ`"l"3VJ)UC54aS+8'R@VU.XS:Guߐ^K5=&r(mTX3MBQS0ڣlVj;V8rn Veay' %-=6)bA):%bCw9H!kB\Bc\^1$|{u-&-HJaYJ=Yj)ew&)ߟlA@T={t(oI[yn@'4Ѹ2%/FQcRh@m'L&,y)|"H0FtL'~_2U#nwiN3~=T 77~o >}=4r&ewH,,kɴ6-Uk"Pf|ՑLEyMoz 'A%Z++%C;t"{lP謱yfj~"+yLӱN )K\q7ErPF*\RoH%MLJ S%&J"UEՒд M7P0kJt-5ݐCK%wk=i*LQrZ{ju!v YR WDiZXjC\pUQ֎y|nd#!,E,YAT"*m0x.R24y{t'l#hrhX!\T!A۰#$Ѡ™j 9f,~O":֑jsu;I8bmI {uܸ.{Źi(me :e&*kDE;9BqX]# =MUI&Zy9ɴZ$nXqE 0FS `yrg4XWp*X`k~Sr5~U,0FSR! B:]dcQi*kw]2y JDS]fh5tģJt$mDR|^Ñ|~b79 Sl{@yBWRNtoqFEYNԢ0dF6 СPEɨEV5@)`4I+ǷFv7jn͂oFڞracZ˗x*4Q7y_\ѿy"L'͋lPu\SZuVchs Z4f/r\)$65iZx:#mt^,Y\{!F!PR@u\HJTh\VH\/3yPF mȺc!B4lNt\gLÛJ,wm޽e?B U,cb-- OPM#%m?R Dc/HYߡe[ѩpݸa^izݎ<ۆ^I9f])%sGmi,7})lě8bzO ev#oor~}WL~ ~~j;OO4ڎ-?ۿ\6e3HB4 ,Y>=q{_szzs۶tMZɓ'f[]@B@W *  MXlG1Α⬈1so%Lg͎,!5?N߼{OV UijTO;s>BpT?"z'?D傽}OLQ!݁mגBO3IU5jA HClC;`][Eݰ#dw[jI|DH_}>UӑPơD kS̤_᚝v7$x9ނ'#H{tfLX F(m(sZXfEHmBVxN+ -ۺԍuTD3 <PSpejUB'PZԱݎeZ|<3#kYWkKS<9?Yȥ(l]mzl롦4fqW, :GREQ mZ30![Kӿa}G@p9H)d)ˊ33˅izyhravx J+\h{e_3&_=(޼Bix>s6ݎ/?=Bi._`O?L/,w5L,!d9kQ3yNu-a˂ ǿe-캁B^};Ā),/Wn;~?r{ہ&k\F0'n<+9&wOiAjɗ篼{`S1inw iY!`>u;RV|Ư7xQNgn7B I ~*Z]d?~AM΅,no1s>Ha,iPg:N4a/gڦZ }ѷ]EKK }鉡/}۳,e]s80F J23;=//gߐJk;7CtzPlB5~F z<%e; CGۼxO^_ fGj^FGLoIIV^vJHBmưx5gç@RuzJ_/UhAL%%yU J isDJAJBDFw-9r-*{ӆB"kqÀ5#a)9b9kSI߄Ru ں֒L|ZQ]C+ YR$+ ]IudYoV4@Bִ1g I RڰmOc: -bCh 10]ͦ"(mwk1FC"ʎOº.䔈ZjGhK7,W0;КVdBdWDLs7Jh)Y t5U ~越n[ݰmQRt}.T;RnH>Od&k|.%*ڮ!HU/BOBIi:iE S)feg7oA.taÿ}]-*Rv"uҵWKh@Jm[E6xFBf-$m!#$jMTE|/1"+csjC+xO^6֐^3hڛ;5v};<#/bň E;X, BnRuF(ղn#HIssv 2B!i]4UuAŘ~_)rNFrB̸ծ6@Bق\HݡmhFf ~IQ9D. `t%)* "437m{ӑJ7oPQ3_dtCʨVHg\S,H݀sӑ@}Hٶ ؐ.3:aZbR$a ,"i~b}=!Aa]^\fk[/Wiwo[Jm+Fr>"}=hO麑)Yl+iT(JB(QY%L pV^5ZD6%RYӂ_2J!suCt%e^⺾B!n%1m`LHuD-ihHk_1e1RŒvFDNⶀ2Rt\oJulCA=Lˉd(k(=! M^7 Mk.e0 y0@{رORP^PdyD/OO=\iVFHO讥_iciy=~y/O_!|晶k9Nf²mLӄL?i Gm(MH;~n )gi1e YTr2li;R "ZYZȗ TG$"kr(2q^ACN%-m4OTX8TUN_GQL +X]sFXqZ DN]q%@۱gjrFf1HLc[pm˶4A7R$ihq{ bA+C\ 9,驢n{T-%i@D%I2U `4+@QB 3:lh2kI!9"K6m-Y Yͦ5C%Ҭ,2TWD`|`lr>BH) $~Az@8^WaVaE=O Lɉ:A^+Zn0,$Lɢ -&Z#{#PlLId_1{ciA\WRuhkѻiY"rۓrBL ,z0\Qds nF ׸@J# PJb}~fX|.( .3иܲmC} 0-{p-(W pq=E*aDCDMB.0 MXn)[$]Hk2^PF#!'A*6 $( -x~9 H0%buxE̯sh;^GD@ F*%VX2ku^u[ h!ٷ=_x{-{Ců]lx9r:y7#߳m#2;Wb.|}zo' ^rXVJ'֍GN'5'>yhD6-%aO޷_oq}Kp;e>c:{aؾc&n"O1BP-e efo7o|x:>:/\'p:; jrh-~pޡ9nOKj |F̯|Ne;?׿5/gF<^Ҷ RKd?z:aLe)[i;̤uu=qI(*qKaNe[\p\pVz"%ϧ3owd-Y%~Ƿ~ǏQ =Ӊzd IH<-8IdmHۆ(6Br \bAޡ d &fH%TW:"JΕ+ʶa+xky~=sa[h@JO0O,aCj^v)v t1 5,T]#%$rH%VJYcU_iۃB7۲ⷅu5QF_eJ|E% ~nUdEQn F6o_1fT ;ms:J8ƗW5cMC1%Rmw,z zsg}_KR^3 4" yM #cAw]}##PׇE UW (ېB1ۮX !Pb&H̥8aL,"ݛ`ΨdC5qmi$I}B*U`%Zڟ!%&g6Qs1VCn*,yԕlQێԥ6 qNtMӐ2/g))k5c=] Aʑ-U࣠mz2ƵİRꆐYph\Z)-DH $1:ӺM$Ųzpfin[>gn@w^F~C(z_.'$Q E<>7oBr͘k(`\BFv5ӶT$-$ D_{R#<-ҵR0F'ŵgPIF ܰT3" ]\'pMGəTZZ]Tױwu# ".n&n i9|Bq К7UnhT I+HLöv:費z/t ou6k]9aڎkwO Hӌiv` ; 9D3uG.4j-6Xz( t׾H`+@9WXTa V{#VՄ+F_)\P'L\Va@DBې'>$PE\Qe *⺐Gg~wfhۣQ0\#(EIXp~x(*Z)ȫ@ {yi ZcWL|v;/c4qҲq-yD m.30kxY{sGH2m? G6B)lnǏ?XDZ%s&.'dkPWya,oy/2qZɋ;x;7ߡe:]xfx=/__*G[ny'm\*j7_{y$m՛u>(M"}7ppΰ|`'ڮG v*d蛁i\8t;\1~q\FTs8>0M??o軞85=/Gw<3#}_% N:4b͇w'yb 9xϼ MJ 0` %X'e*V~ z]>||!=p-yq]%s 8q~>-n8rszD u/ӈi hmCmx㑐#XT(SeDbqkJ[m0_i7e`DA DC _I V_ !+f^g`]G t-JDX#Bf~R^8בDf=>cv@\WΧ>MhPpĜSv̗W5m#[5#ai}4kaOZLcZ&ZjyL8hDچ *'9i$*qCmivu"l՗R.$Պi|R} [h4tfh R}C 5Eݞ0M<\!@jmJʵ#g!gMr*TPHrl3+R#n誸 EsK4)Edӣ#ZDvw@;GV;*52jA|ur0\j\ ׃Hˊq- QDEIe?+ YbLCD(W b f5ҧJb%eckF7Ogg="]odrL (S%j!FCJF٠b 0Rlͮ2.'Rfuk'bB*Yk 5PR]!5šQ+R*HJj2UUq0>WncJKlQRҢ@ڦtTH%)~Mڵt]느m"$3酢$R tczJ (]PFDAҹ=CúPJVOHe(BE*4FAʁݰt(A('+C* '-ɲTzXXUe>C ;R\1T kOIQnS<`mOhV[ my%ǀLg0M˴,'T3)UgCJ\فWOH>flĺKPls@+I)5t0M~dnbbMkOiݽ"uAuZ֒l4:@)"Ɖ0|Yz9Etu YM nGޱMܭcqOh<9n`?N 0 P 3 ް BB8GɾJs2} Be"Le44]=YmBsy#\YM(T6dϐ6[.D\l[/4w tD {R ͲH7 "$eYC:Qq/ضv-2SP覃"tzE`-L -ϯ3/3O3iJe R}Zm)2^AZRL$#)k YL4WѸc6[k`v7p;||;6 %HaDy?10ϝv|O?,+[/1@Bj-Ֆ_zI/?~/^NGÛ;>~޵|շգ:k#?7fYYÁuĎ͎O+FIN_q]WIQ>&"й= ,J"rwȜa]gl>Kn sر Gwc,89)nv{qb\ 3ș2cez9EwwB";͖"4R|~RE!p?`5r?>(,-Vl-nClkN8j;&"O'tp7*Ht} ]ÆRy6=%M4Y"[b3% g[V"۲жFir jhIi%͂uaC6He "#e"v=ۺ-Rmefn2ZڶG)ò ESEŚz7Hm<'DZFm91 RӴ-1RJ4I Jא2]'MS-饀 mՔ.[grLv+qR3~@i9HPER`Y/U(YxaPP^ Jda@HE2|ݼ%D 8qV4*6~[Xkw٦*oPaFa| ,jׂ šAH Hp!Q22ktj h!nkX"[ %:Gr9dYJIb\7VPb!GV*`|t9M\70-8B]AyC6"m_ W:h*V{H'ZHJ&Dq?Tlonأ6@º4j r:JȺD=,\xBɵsQRr:PoJ ]#l1ji׊\ j3WyFZ6 MP=(a'A"mאZYଦHY`eG "9J#5^)]U*G! it ]LƐJnȒ!wvuL +nǗc^MD\mF[ r\R%@2ȶ\zMTжeѳ3}^)*˵WfDR%gJ 0 yz@$B䗟RxqE+eXbNu=R+QXj//os_R3RiRRni w$BʴnQ)& iQ[u\;m׀Tg1f *y%&uZBD@MJ<u4hA] "wՃXx9k/fVP?ϰG+T7 #zh)KEHDaJaږ8ln+,+>AskngR v<4Ʋ{x1A29dzB48/q!źzǯcdn*4-lڞmxy~e7 t7:S#nky'mq t5m-Mr~=7eu9's,w,ae|Eq:|>F'@c1$i(q:>]W4iyۻ{3"$a A?01?7/Ϳ7 _%7kyO{K#r)\ ݎD4S%UJǻ{>~S{^>b{,`e1>__ 1DywWO o9t]/~Dz\b:>Mmh;~D׶L%G=___aE`K˲Тhm|L3km<>Wi.xw `1 ,( <>AUoƐ}/H1-<:^~8cmvi ngmt:{lsxwR(!E5| Xmnㄱ ejTζiU'Fcb͘²^d\r(AUdR\!4bPegM*2aHS2~}¶yš*J(52zm#L {mH9J]ӕfPiCJ\ӑDwƢtfzIȚJ\Pq02^8Pb RI|I ӛ+YiZϚaO>GrSIua(hHe*"M`f`ma}h4UEg٧=B8·{YG0O8mOݦFdNX3a65U5 s Ю!&(k5~r,>i4Qd@fwZ(h!q-8ϔc;mZ2RT8cFH'V* DIB]WyR˥BtŅk4CJc-jy2 k4qm@4u C9kQj}2%I}ˡAڞF$1J~N"z.~M+6u]8]]k}[!`4DRŔ c4c[H]7)纝MơXD0ɢƫ)4'JPbMW7OSr6uk-_J)rYr4>#T7u#R&k(Z dktZK?ΔYbiױ 03 {҆%D?9Ǘӹ>5llϑe(b& a PR0]kB6qAcòhTLTZ-<{uw bӲ5M%-j,?|G޾ {tn {^=;o?-}e,ܿGJ4ILO7w+e>Qۇ;>>}YBx9Ӷ-$H)|vĒgl۠Ֆ ㉻[w{@k-n@vjZ;l9, m߱ j]׏мmӄ5sy 7 gww_`$4 }fi$MR8Onvs5ߓb]Bݦ#|bm[1[. &Ԧe*&{EO k@^<eD(b -W9񸌔y{i): Z/ /L8RtzD΄qBm{R۴na{wn7Ñ752.gJYri 2WR`%G kITgAE Xa@Ys-kfۑ># $dj#G\338Lcqʻq1J5J31GR!XʦߐK-HTM8["Eփe] ENQNHL"t~$(O4`,5aTGCKiiK}JՆ H4=F7#r\y_S n;۠@q~~s'dٖ<5V}38`t-/ JBY_zQ膘g(H]1MSi,%Td,4SeQf)-%:b.X{ ).hWו12OCrhmbMRڢu{1y %3lFPij'q1ZZpXPD$Jr<5\zv!|IȔk<QaYvP i`8 )T<煶"Dv7PԆwi/@IS;DZ'ݠ`'i35z=yxu5 Rȫ0Ȧ?T **ɡiBA#5EׯmvK{dɤ"3JJDF!+R2)zY/-!!X#pn~rvjFhuDEM5r)HԞ^V1_RVU"ۆHY)-(M<1VaS`=]OѤк# UąxyAaYQEʵ1kI~a]֟E)3iV)+ԇ6ȦϵO% 5N5U VpAhZ վJ+6"bR9au0 {c pjaW +w6ǧ:jO'D.fG U"hJ@,vCY_9]7mILu*E݀R7FR1,4MT*Fׇ+1d;ʶuD\R4m2>?C8Gi+U Z >S\CYW21z͐9 6W "fĒH9ܓ,%ML@1 3rV$ LXQ} 4 YHOk0. 0L LÁӑ3~kѭcgnK#C\5I {RcXq:m{vOߞ{se g7L@Xj2x{{GS@ *z>}[^滿x+"W[W]O{{VNӑiXqӵJ*>}w;%(ʯ̇|I4]Û;.DV펏_>?dɑu{:}ơOy<"ē牻v|i~-7??R[a7ia)ͻ[ ZD.v{u,$Ns:KHuCC ϯJ OOi=ۖeCq r9g9c!s<__SDW}WDP.)%\ϴ!: 7.AfF|JP0M#|6[톢JR'vCDaU ]'#(Ea@HkbHe:$( D͆"Yw*4*cDd1YJDƵ q]* EyaVPU~LףdJg WB=)GL RP'ڈJ3qm:UMQm !() L4:rcKRKJ;Đe!{Ok GuRD ]au x'ߢqvC]isϗ+f{A'gYcuȫx0rњ|I\i=ayB+iv-"؛5.LER| l|CN=~ULQ„p nw8P4"|R$-)ZW}f2\\ͦz@R&Eh8׸TծUp 2*Ug Z!;:׎ ESƂ2Wlv:\} )]-rٵ\=!Xu#膸()Jr)XG:W|wobqYK tLPQR\!f10^\ſY`×77BX<#d>]ؿ{Pqip*Śe`rzĶ1_U1q:~E4 ,wy{ G޼Ϗ(Ix9üFTl7 g{8=!, 0G6}7<~Y>#kX畦q|d1 )&n7~E (LH⚖әnHk3_Sz ܶD/Jy{sG^O/ϴ]kN3]SP//x>_/h!Z_,!d2_XJl[#|bG)>gaW8rIw6Jn7lnPqၛ{ak7αnys{y]<~RgB`Pܾ}?sn?{nܽ}`Y64}t-!gi\Bϐ):NXZG ilvtc閜*Pm {yt|%+Y'B2tB[pKYQEՃbHs /=rȕK" 2=TDP´ /!(h6[dILEfsCI3Hp$3m%@[KR)Z1<}BJݒJ;2QH\kD#'_)!dMGt(׃*,gLJ(UqȥTyN+TV:,,Hr^넍B\vRW/]OL/Jzq rD"nw aYK$INɒB֋, FqWpw<)V2:D`]WU"JSr9ݿ$JY+* 8UjZ0ƾ2hs=Q! z_ZW;|He7l%EĴ"ɺ <_9cz>vU+0>L6H$]SЦ`umO2(ic4׾u`-Vwȥ%*WZI^΁ aYRDZ_ƁΘm,%Cxi!iTȠD* ˂3R2>x2@?nzpU$2'd,XV;YPe%*=˙ wGCuS Oh?#s7OX(12|Er2dl`DA*j# JLw(`M p#ڵǑeQFU[J$)H]n(->]4]k6?8YQBJRo]Z#ls"$l6 iZ ypzd<q>b{CD% *BIFϤШ~O+%u!]/ Ʊ^*%ߏL[SUSo r_5>bjS(Z}45 pK3&Kp]Ғh*Iԏm~G @[e~{[R6PQ ogZY<")\dH4m 2H'Hv,C yiv=4L~O@ZC3wo03*S> 9,4˴m1J3M#oY[|+F+]϶۠"J ~7|<~ae)'G3pzgmr#U o_XB"E)ȶP8LDMG?|`^*-ayP1/~xӖcno<_Qn>8efn]Xmo} }%GrH|x}Ƣ 3 _n'|j^3%J8~~lq0\F^NUm7PfS8N;P|efyưG| -ӄ2敇o9Bu_]o~_8𞻷okvLd"-Ifyn1[5ᗑ"Ȕ!D%+.ȶE%"mkEζ$`U"(A ;%4ss[Jh!E)~AGhY%"Z,#*EG:i)Z4VԬ@\dI=bۑ)״׉!88b9 #t4*jG8?nM+fe9RhUKǶg 4mOP h ?ic 1sXBY3Ihv\A ]mnX uĜkfXUdawxh%iy 0Rr3-9^g{˜c݈eȥbz24F1'g^rlݎϬVbě')49dMǷS%Qv;,DX<>~_Ӈl{J(fckPV?n!)tf. 0\^\=3y2N|=>s~~a]?S۷AV?V2Mһ-Zf?ɯy)Gd)%#$3EW|> T!$IVv[BLBJ\KkYSQcC7 G8c-H ۴P")y@j-Y6=BW !_PcCTr%s/ҘT@;ܰ^\h^1E%"\~]jA(ҕo(O,qW'FeI] ~QJb=D&LJ d%2 RIFjQ\t"JtJhe1!dtnW 1b`."bI-gb9"vYt0Ysd%( ĔZ.R5\KICbDOi0 mgA A\جiR VT.^OP۰-2NR.loP,auՑZǚJj4TmQGR#eR:Ķ]6'P,qB5-J&)!U jwk]JX:Q}HCh$RHh%"R2f_ k: U2-5 p0:-FHB Anv;QkHLq!# "B u8ψ*Pj4T7ňDC*CZ *ԠyYAZ/8fWb[y?>CV zZ6+ԺG5%D=RZuݰvSIxT9cXh*C}]Jk 3-gލ0 _&epYEdS4iDu2nrӌcF(nwۿ+"dOߐS&H)2)VJ\=k\qc\&l6ӈ,DAܚnefzcmKw9ssQ8=0QG':/3= 9*"E+_1{5\qex>CD; Ѱ#qi%*dpϯ?MߑB*r'=o߽~%L,$w;[Oޑ|`ZV~3il̤_ǯ_O??YJ\50NՉ\2A5$ _@35!)* 4n;JWNv J׈*S*r*C$`H6-t2E@/vJ RKrޡlHY&t1'n[%H&blYihlnRba# =\RRJ4!41f*7Ŵ8 B1FĈъ1iLr;?7y"g-?=aF ,5dX$"WbWHo'{L1!&+5կu21~ݻ_վEZ!xXgH)mS U9z"wh&GBc\"DZue!lf`zȑ8HiQ9Aѐ3eTqaH *9/C jrMG^a,~z*X"ZOWp 9/'nn]Th;xf 'iXb,ϛ}u8il ݓK@Lk:H+0=Ƶ(_5:/]QM4}8tg603ײ1^.4}<[ײ{_^ds{t %&77̶rDD9Naז!DTKԂP 2e.HwqrUe?}" ֕^v/MˀԒsl\.Z3MS/ cYI@ x8tadm@afǏ\^_N|am@f |9xwaԃn7|}nG׏_w[t5۷O'1t~ԲIOԛZYf}ڈ8uvvrACS 0A y #0˷nFf4۬ڔg)i޽Z<+*c]Wze|7gT<|X WҲpOEa?x9G+q77ӓ*2t&A#J? L/x}|Dx\Ϭ30JUt"Nn3&%b[3n×範ee،<"벐s7L3kXPmڔ8g~L~noX(==ɟ>m5י{ί OFt!H)'e+%ښ=GϺ#ФN)KaF~QFQb"ՄGdt敮h,1dr8\cm5y0eו/8g]@ >f} jLXʺhD* ~9LG35FbLP D?mB )`\Lr֕yOȁwĔۛ:MhxƟۊ* kǎ[4$MWȥ(Z,*W5b XX&dڥBNѢRnqJSBB(J!\Ֆb̊fVY~*Exfֶ7Mׄv䨨97!J(UL<&z;l7@w킳,QHIM٫l[Oh$sB]lӥ4dE(tFj5=?4@ "y\Wo4BQL Y9A9E ER8!4Bf-B>:G+5FN@KckE# umC&D;ث!~^CQb(vJк:צKԲ2 ZۿjZ:MCUc:D)uAiEVJW"vBPԚIq $u3LX"ն/="gtTцZE\]"Yu d0#/3Ob +vbk]2%b#Ҟ\PRjLc[Ҩav&c:IRɔn\ j_ϧ&ůFbKCBFR ji($4S<1bPILNHѨtHYEPb@نHRoJ⺑R\Hǹ?_9=|O +BZZ}R*t_RZ[h(5!\#amT94:ºPB#d.tfD[ .߻Hkږ~n3]{Rz7e~#$!ks̟}_kޠL"r=J#$@V?;̇7ox}y #p:1 uBw [eOOyB_VjS+Wy|~ 1Rk q=/=7O?~~R9ǧomv\]7aY<Jg%xx=V<>?%t5oygϜzo hX32t>QjnGliQt`ݖo؍|c=H>6SK=1z/X;"mv?6wڳwRڥlr<5pt<2ȷ_9s+Itt@g5xq E㊪tƺ b]!%xneu”NpYgj* 1ó0_(Cr#h5Bam MC5^!rM =~݈4Mwt7PLb# ϯlB 9afʞGO\.Ҋz@#:s.nMĒøE1k_?'*ug\b@Z_B?NK˔J-#%_k-R5D'BxmmMdk̑#RZ4RYchEpj)HE(I &DEXb77D!啛0(n? mdR ()ZK6ɔ5twĺw(grb3 c#;I_k 5UI~p3Yhj ,rF֕δ)ݺ,/Z5Ϳ=pu}v%Dp!=L΁*-)-(Q/K@Z13hb'R LCmb-t}Gc J53J+E'hB-~># ˄dM-r]z|?c\Pw[(chynBi!F4/\F9:bHZ/6Xڅk nLmKzRn=fD͘n4A8ђ2DQy/]rZ˜3 d-Ǝ~@۞"1%Jn#ghk۳!bLIɆ1 q詵rӺ ${Pڴ|k tnq]ϺF͆lF ,i0#DX˲`Ehݖ/g!Qb u ]O n(3o黎8W[ue7_]cfD@Knק'bFC=.,1ʗIZLyYUroX\9['H)f;햇7oօ4[p%r/6<-߿g<1Bџ"Je{ۄ}}jagp}]GoHˉgE'*ٶwb=-^?︻{_H >8c9s8k8_p WXd?܆׾zhp R JPja'hV-:ΐRCG]]QE0nPRXPU#(J%َu(_6!sf5gw{=U@#35! CXx*lI57tJU^J}ӄlC֡ޣCTzFT.KN?-/\m??b=y]w\0Z_-o/^]73SjE+r)U!t'H*yXaPRsAٶaRʐÂ( ؐ"ITqJR h-~E(6jOͱMZ)5B#D{nqti4a^a &4Tv8OfJΧW5aK-tlHY'dȶ!Hrlja%@Dj[$D R@Kqtj~ z<)6TZҏ;ܢ>Pֵ6qۢj *m.e* %gzl]9%Q]m mRDs )@Bf`iL!y&LoP(ܖ4)%zyeswOc[!bss ]eWwXN{FqsV* Þ/ /WHn8غ+Z*~! qI]n$HoNu'Lj桒tFwo!F3iÉ0Ӂﰝ?}~BʻwOgW\]]1 ͯ?@Ђ?fnӑ;ݖg>}k<x`=TŔx~|$!4H<=={9~L#w^L]@򏑹Ugza6(cY/loQQ֙\*{P)}Dr=Z)+f7 i!B8r,heHF"jL5ԴP 9(IHjԋiQX X2#iCi)0ǠqF 2/"N;m-D-(g@A"iX͢%y쟾pac>ۺX6WXV4&ϼa 6mRJW2~iRpxF-lnނv/s%FXE"Qkm1R6h\:P^ 7meek[/'R-b\N(*HDv ,GhI4-/3.ڡ]t~i߿uHRafCN0̀!t@ZHi C{ ],*б?lFq4Vx5w!/FB)ׅU9Z*H9!hw0ѺkN*ѮMjT +կ9!mY+!dak"I.R7Tpni=lY{ aͨ*mSwGM+ DI&Rj(z2HZ=CH! JV^V3U jvX:dZi;׵R\14lTDYզ ;0*l-PMj{Vea51 -q]ۡG=lnK8]O?lpfݿ@d9.BcLG+JIvR#o&31&t(+1͎d5# )gjI֍L3a>whZa g鐪u]UK =R5%kjT#` (70?t݇e%ybYCkM+%-Y;E#iP_鸶3G#}7$oH(9iRxws'#DUA̩Ŧ,ڨp"z;ݖ_L7w,~z^>[LׯlYB@B7tmG3߽E/?̯6't[WDljy?-k͜}4[%[~ooon"dہ?}fЖv|~ʔO|zoEHv-E F~_XSb m-Α:\q˔'*|{|Z˺g(q<YN ku%e>x&BA[^#%bjK,LJ3ITnYyۻ{f -%%Y 6;~?5Ml9Z/讶lw$?R%\rƛVFS-%|zFI r>BᮯXN'X0aqCgDpjdJk+u@THH1HE'$9F |BԖĶ5y' z!Ù9 ,|šFB< +`N]:O}qYWW| NkvH ;TnV#Z\jC o贡(EH v)sN!+HGo)"}M!q{O(0:I ޼ۏS$K5 _=M}6W8Ϗ@) DA)Hޔ)!E[!%'+% áf4RSQc?M3v"&j(6; nN]b QΡ)ʠVsA ⑚ ~0Ve#@B!]G\&E+[N ) JJM! 8Km[7 3Bdܦ#LEEKM #g"06wN6mȵ4b,WT" *(056պouE nDbXЭ"2Z[ju9KYK\pڵrrU@Y"RUT TF#"%Gcl4OT1Vc\#U4Dl˴znDm/E BJtW85',4nQL5-oYR5Z(XxP)#z<]zd3GhU4KIٲe՚Z !zbLļ4VF$熆5MyiR22EAL7 2Hk^ Z30zU-T0۴$W`{r7(" iX>2W!B(r?6N,U)Z va,)[GZto @[$"TjS~lo>( yB*E +nR4 Jši$GB shG)t-t#5DŽ$Cm>d,#RaK/t֢AF)QfJ݀.TPFH,J8H˙|<7h"?`'P-Fe.*j 2%yr_yjEoQ"FJZ  Tu뎄L ΘMŐTmI%co)\-ϗ(h]g8<~f܌=9%TȡCVBbIygRIE!sLƇwĨ RZQpnK?O8mt¡F0R_{K? `rix)) =5nooYrd=49v8/hNCs+E\VK|^W󙰬-)Df@+5 e]Yׅ{qEXC#$iί_DJo8gƻ+i{Oђ0Cx klϪ;ә V>A4-t]tb˞ Q5PDe&v?z\Je0Cy15Gz|Ƭwy!J\ci'B(T 7CL~'a:3{=>|/贡֊~?q=f} ߶urpiUHzh1c VDLEDbBt[)Vj5%jQqB2Xt U[J,\qK<"tx"D+j[!R<$HmНEJ))r숾W`ZBYjiVZwHaZ1RA(=d41Έ""c(ʠ / ۢQۖϯ:I-O(gqqxnGیF[bkFYKmj3`mGm bb5@%9RR3O%sH]q774jZ P/GޒrjŶ`$0mb|:]B"eK FHBF'&aTPtf- =J >QR@ Gpܿ!.H,$߬C>kb>mL Ut ,k:яd)H +)r#FGLV(M[/`pt!/p5׊&CsB̑Ҵ.Q]"Hcb{Dh1eFII9ev(&\Yί8#5KŚ'(dm:[T 8eDaS*$ZceH͗/@tW0: +fhiF-oۢtmOꦉBitri5e%[JeiXeOCA "t .kpBHT_VEv0"jw! R nG \d:~B+rSl6lF|nljd?Z|$<=#'0"GiO=~jF,"A䧿Br#D"'l(D8 ߴ;JiͶJ-~f($"\DiڶεH }k^52,EӄVF  ;DY2Jo8ߴ3E 9,a!w!&2Dye:1{x}0 !-T<#]Ԁ3[I@:X~/%OSC˺P,Sٺ=4-ssi|Pޣ{Gӳ0/?p<+oƞG͆?O~d7nd|]wu7hѱJW?ekʻm;-3޾#׊ٙ2Ӟvk$^"&ӑ^iRxod TR)Bds{q! pb9/͛hkZ,_kj<\,#͎rj\ ;n1"Kn7y_d-dZ#ۛk&6~:ޱkl%/ւ2^)R7B^8"~)%׀_;DKMNZ FR0jA | Q+vt@,ُQƐ煘#j7ciҲ);GM .ӑ/2 횟`υ+ ~ q{\? i1 H"+d1ܼhE@*њe]0ViPTl5 Z=D5HQHy,) c;MyP8=}B\UVuZ"{RZBL=I=b[,Bdy<1MTK"_ɂ]b|i{T#I󡒼!`e] RAVflİf>>N{S%+($mhuC=9c:%cnѺ#ҍ+n1Ld?_ȥ J&{OӭQR1NJ>Oƾ蜫ִ8hn8#SF˄nZ2(ec*nZD+Lyh xK?ِx}3zhj丩S#"kOx2]}.^Fw\q) Bn+Q;$YԄ#%YNGLߑ]Di'&iq9!b gЎ[sM)_ GPq@qvMqVP)(b8h6U^6|8&py C c{{rNtMs%==ҵo޼DHRuj]m!.#Q rLܬ|}c>&Dh(%- <-gjtb~Ebb I$vO ^q>Zq:) !~M_cɁ3 %4 tfݣ~Zi.0x0l;RtG 3m9MgZ޼թoVMC?dټ~,5nx\7|2a9m+>aKr,EC|i,ǧgr|?qv4r_>#K-Zy@ y4sM" k(O(G_=-/oO͸PӞFH~O1{mW4_``I3ۗb$?{p0_E9U%*:)'jĪ@̉h7PӭF4B_ab5ԕh.Y4!+f >UAUv'(Uc)`["Hӯ⇥%E %#Pdؾ8O)rt[\(Ȧ(q5yW ^&mjה1`GnH(J)/% J݅]^ !Z!29IHK`J.S$&m2uk"Y-JÌҘJ%7\9#DIbU%,IpԋsӎE i77` 9rQL3Jdr+18LWDLXMTC QA]Tb lpH_1e9t%Ec >zⱫuޤ1aE aӲ\5 <igbxWֶGRU'Y.&PW)` -BKbf!<ᦥn~b>?H)J>"UӉRtݟw4Y(Ysk,5zC+5R)dӠJv󩾿 Y dAC ^xl CZNѪG'-3IS8jv]Rkyk1:"ǟ$k'J4R*)DP7S$QFrA s /]O_.mGov;ܾ/E[H !E!cd9L v}QEj=]7P8C" v];ZoWHV1Aߢ] ~vu;pGfW%'r,!(Rav}Q8ť8My/{Ђl;tg^vn@ksX0n^`5%2<~3z mH5߼c>Љ:5WoWl>ΤyHO,Vrz>Ќ"@Z8sτ3f5!N37* >ikrI!7 >F IwyE3ru?=?|Nys:p6ur<[ЬGӅ4u t:Ү:(ĒsH}k4˅X2oitF#/V.9p<Aw ]Sˑ3,G=azn>}Uo9O=c=O#;~9NUG(to~`.ER4MGvk_ӉB`(°Z]$ZCj՘-Gj9D֒ȈdӡlZhǁ)J 0b%渠EK)[ ӪpqJXiGgo)"GbkknΝ(Y_cN\r!1}G~(92ro%"S{k0d{%: ڶEiEHpCAKE3dE, t$tcݐ( mT`5뇷$?$[ŚS γFDWx. pԕv9YA&lzeVe[J.F4~5`- _?i-H%3YdP,)Y,Nc}Ê(Zsԁm1\|~(|8#UU/y*y ED;֋t5=u◕lq˅aΕ#/uKH!i2~0̀4u[R ! B1C$#Y '$%R˟Ԋy* ];, VuAY0.RؖD":m 鈑9rt][#1`l[Uؘ#mB izOGNLD҆ r{nhS@w4 (#ִ5@7yxv_naVk-R5I[HfMp5*,P TiQ4@,ӧ OXm J^f*cH~>u4f ;鄔P~#Z)bXHQ!d͆blN'zS 1: tk|Hc.JnFЂZ毿!E;Y\)o.0->޾e;oH E=~>nPǘaj' QDr8[E)뇪lb0Gi vy"X7 ɑET61̀CtK̞(nZD?o7ϔ1B"S2_%{m?nI 9:Ӱ@^!- J+i+i!+$ƨKYL3OסAӌ,B34pyZʩo.  %붅u!}ju+7\ _~MT\3i*qQVRQ;]EhDVQxEK EMmHM~H-HHaqZfߐr96k^{E#w[1K޼{@`bۓR9_΄l֜no6yzn5##%h/=ж=?~:  B*.q@w9ַ4<>%I J)bf2My 4_wQm:2a??x>O?˟ ݮ^@Q"P*IۼOc"JF"Bb/ȐPC 9R ppX1zTwqQ-SDwdVU^m4/ZKFD~xO(kPt+/h*)HAgilG9a6/ )ajD"Hrmף[epa!R|FFxtCtøْ@ePm[Thk;g=hD#!}$< EEێ"d5Oc͜31e mHINB)!܂Ԋ,YR!a9{k(SbLkd&4ahIΙ8G}-8e5>E iD"Y}+ Fr: ,~h^ UT2iD-77pfEʅ JYR.(i0D\%)C(FAӮk L2VTj|' i5]5YHRfH"ŅΔUթ1Vz"9rDZFW1TL`vHIuۤ*VBInY@TUӶiƹi-6-RJ2iA G J#jYQuf$dX}uG4]Ewj-Z_{̨ì5C!-RBQG5 !* _%XȠmˑv}_rfXAɲu xY*ld"3BCcm5njҖ[A ar l_> Z{+vә1p:ᦙeod$:e<vXlH٬oXbɔ|apZ&goܿzQ?qgӎ"sm _~W/X_G8#PӇ|~z[ agLF/(ӌ6 뗄0Dlj$zkqرtCm[ggJ,4Jю}5@rQf Ӭ0=LnV`-JeeQJ4wL-C6x-/#*,HiLɕ-S"A41]=rI>Wq5NxٔYk!Q-KRЋ)%Io,9R(qU@ሔq{:|eR6w\ZCTk̦]ߐ|"IPr6,2%F\ZyDO@SU," \X W?FՄ+my~+C`7i"`BwPM%(U|GiY!bT E|فR@)3𧺆-Hz|9Lۯk ъ~GqQMG6H\"J6䫟D #,ᑲNsc[e,%L3~\ #rkT}_۬YFiΧBfᖜBHXbEs{~F[{b2r"ԅ\"Ȇ+mZk5\s3;jnZry#BB\,>\ZS8\) /S& V5CĶ#:e>)chwx&H6C?Q >#rJCpݵG, K 'Dg·>p.@.tmc]Û7oCǑ#V \`Fh Nn3͚þ_~ɗϟ(<׸B" <0nPFWi0OY'sێ=|ny1B rh+CgP/ ϰ"UT4,ѝd1L#UwkBJBЎɾ:4Vʓ39'ƛ{|\4 u ÍH$d$m5-bPB/ ~9PjEi.3"\V7L^+8l۲rpvE"⚁E"nvuigZM=)I>r9>}xMRH8"Jaqix^-JZ͑CJP{zZ |cfC[tJLoC]*rrL$FL 3z\P~K^z)>qIcz B`lPJ\IFϻgţۢ3vqә]!rH,!i,U2]S$4Y : _ޤ$9VH>|RQ)S't%$hHF5Y晱i)F*-IAJquC~K}`XL#yl*T"maPRB@O3RY^0V}d9BEĠMTXki"BKRt4J"u"&Ǐxw5Un,i mۑS iD GLb5*jXֶ%̞XJ+d kA%EњD!- R{Tlj:ٶ# ')Q}}xX2S _"L5%7|iV+\tÀBrgYlWGZ)G/=}e$R/'y~4$4Qj5L#c;дmMˇϵC "'H q۷.gӅ/)4Ji;|wܿ~njO_yUA~ 7߽Ӈ|#;y?e @pˉ*&>!%j|8r983dnn*J)8xY %2Z\?˶k9NgÉy;șO_.==/)}}w

-% \MeZΌ7+#XvԀN3 x=y>#4`Fd˂iVdF tK <GQ-m[qzqex>!ˌ6v~-Z(zD$HssCgⲐ:C a,RB1)d(p3F$,.gZ gdfo)١Q)IHv'ۛ=A&RfuB B}{S1l6P'D?QMCӵ{Õ$T6 H/!bq)BbdG yCm*2zc M0ό]RȨHIq0ƟDVGF B:O(%@ 3ۻ,9Oo9! 2kt sX Z l^Ĵ1V%k2TfۡJQz`FGDI9seBp)QQREC g֠4GcLtfNgB RӉص찪yv]%^bǞ9"ҼRa^tH 5]&>?Tm6Ƣr:w={ƦLJZnJ0/3Ͷ iTvkƎnME_/ %dnOXJJLR$R P0]vlo_!̚,Z \KCG"cLKZ*+|Y.qMU:w)J"m_R_{mϸ"hko q珐5j\fM3@k\`:@2g/5"ӵ H $À?2b&ЈǮ&++#2׼jaDvﻞu2Kl<_e`\FME ~{{_2-Vlxx}*$n_ 6\2/޾an6 ?{W~˩G~qȫ'xpwyXƉV,D?~5qSnJSr>#COb3iΕ:bEBr6j!D=61RʹD&脉%+?%hId]2#JWƒu4'fW _=Zj[(v#$%-ʺGDlE=){HK)'D$sp,Z٠l4=9DTp#i:lm ʞkX)pBwU|iJ,Յ"iB.#)UX-ٓ8;U͆yJJ. |-!ol|8RQ \5R\ωcnpkO .TMJPK9D)Ħu%JHR`[0w)aYȕ„ȊD a7ʚ n0FQf˺΄n(mPMhj+`e&tg摘ME%<\-HڠmG,qZ-s5r. !jSz.!LKb n gK?q% |D bYIFr EJy8^U MG B q0r)'BcB5)$dݠ!nijXa Ȍ#b Ҍ[Yl6Le0(RWt{-dJ'5 tmz!GRWQ U52E :=#5rMQmGr)^}Q$hB,n߱ 31BǤ a'CO%GA+/޾P"M[s^vM3͖axٷ>_Hvk9SO| cZ\@ x;=ԓBO =!< nA*M\H@]IM̋tM0m73!Ԋ.~o8??GIrp9#?7hoxyVL.F~zQ y2")5i@JƉv i;Ϥ_m ӰPmҴp{sG~%Jkӧ\g~_O#od/^`dGO,{0MgMrzS`:}!szd%5S?Pu8Ӛ|Dm*R@ˆ훯ȡP=n[o<~D%- _[_&nw.="aǧ? ;|2g?+pӄy}r^TdT+¶;R,jېS n LՑYDmI4i@T%>F8? HyDu;(,6e:1=uwX-sƉQ$ #+<3[Y&BLz:e+,HU #*&ElpCRX.hk*i7-!ΣX+aL|`wn>[Yhs-3mӱDw&1qMúL5zS#-vN2STET>!bWS=ЏGWCYiw;bJnt!W~retoBQZWG` E&ueTNH)&5>RVӅ4Cft6lv?G_Y]GT zݢSDZ8M[[6تnYBYkKpD(R Hd*/!2LںC He2ܔv8tբ a-$e9F#Bps<R5{t-$1/Hئc94MD^;GL[M H@ DJXQզ`vYɢw$ kR uGv,Du- gTNUID2Je[ћm ]čm|ubxjg&څRO!S"pLյ@@F͒dm*fK )z 53VQѬӑ۴Ht*U3C@J R㧁BJOdxGDž︜g*ɿy_ X.Fb,:&>?~ƴ 뺲l!#ʛo|-9n%%wanN=/=o^| `FO|%~i@ _| CF,~K9Slt%Ǖf>q|>%)%y%k9=U-*4>!3ܾ#{OИy]{2>?П{iԣ`I -gYy *ş6+ѕ2JenKrɐ\UFcpTm Y0#fjt:ceDlHB2=>VzӖ:LGHЛ=) \"%1YP!jZw(Ε1%ÞAK͗ ))glc$!k%"ꚛ-REn_6\%rK]k,:!-[1dR\\&ODmFwc,0J&:D"XL m/,@@%|;MMJĶ;e+톤jPk-V[찦!(B3UH)FRԨʖ3^Yn\&3VjT(9#z3@*E\9'Oն ?LAUI3\%Rc@i2@d U[2-8V[ -!l*VM:4)c%@ųN#ڂ6 ZAR_2,U t)Rp%vXSrBX+BZ/=^IJ/͎i0Y3Q ĵʠoD5 SD]zJ eLs)0m"sUlv{o/)y|Omk3- 45?4TM ^*ʹ=>Ϩ[yśW՚_mCī7/Y r'6͆q~S~|#9gvۖŶ .?~zZZPyLn"L~ͧ3vw>}Mx>bvLK_/8&Ȓ/7Ķx[ɗ,.ǩ"/?bg0LË28H!ؼln\8buw89=J ~'|Ymi?W_qO? 8+͋{>~DJIҲ14Q:>^][S1ԋJ#gQ;6 _}KXDZk[^ȲTu΂/->c*M+Hm {WVت%qF*W&DrehێnÊdlonh[DD"8$Z&T@-ޭ%.DcI [1bf[48P&9u#)1FE鏿ϑR1WU*KFL+EY&HݒcaooYiCBRov8ݶ,7c"-R)(epYWhn; qL)]sͲg-PfO@&YtÄ \9xHeE IJɃPnmGOy-9oc%^)L!S]=Zґ-X0 GD%B! RFH [i%Xց*7 ޒR`> >\Bp#$98tmDNȺ&3(Q2Ji_Po+Bml3=del4`d-n-B G_`U5>YtQ/pS\sߣDFhMbBH 3ua %~ -ͻ8 ’떸Τe-y!#wAi:~_;BTUiEZi8\"+A]Յ!'Ry,сU, .C@}{@]]h@mXAPKg"-j;Ha.?DcK4Ӕ^9#D*  Rfep -("H1M4<ӭFkSV`ɱy%B6-˰u6uj@wGZ~ pWs)ɶC \z 94ّ&}HV@e,p ˂LUTqYI"Yfd[63P}4>?a@fA }*a%Ѣږ*ajniwSE Ͷk33#\.gn{ULOa.+Ëyk,wBAIp>]usyt é/ExLΒس 3ֶ=JH6w>{S3LE0}OhdCs!D8N| x_(Rvͧx/?݋;J|51G8Mtۖ{㈭*.OG%O.7XZ1?[O'Ƨ#9r<yn.=7=u=yNGx%mrz*cii>?;e*8dѕ|"GW?GiM_W|zق .ûwuSz&0}0$Kb2" (hC1 dAL(fkȜ.Exjv7p(};h?~K!65ˇu!{}"4 nnʢ!FRϗR 쮬ְbgt%!2`tj,:gb$SJHͬYIZWvLmYgH!V1"Aj`>T0KdZ0ǏLɣm=ftA1޳=\yԻ[n4 2:Sf QTU_!.Vr%Tnj#ŜMZ|i݀E0}JbVSBZԶ瑰.TUlhwRfLۑ#IPf_,%T%PU,+iGKIRh9+>15篑"%C,!ơT0(!R⽣7ʠC*DAI[:!Dcm .Hhj"A֬t/]! Sw;(k"auX0@մ#TE_uאDp'vKp3~)Ҷ,1exĨ2tBą5Ia].PdG/mANȜt/D(Y6!:VVS5!*M %q9!"1r*]-Hn1F$1"FiTmIc"-CJ'gOl_d @k B!! .KRYlWݹXC| X2jcټSckV6&i5ר`u!摪2QXEV k\1s $1ɠ(~ҐR6kAmPn =mXhSVޔ<]JAO$dX FT5J_JGQ`2X2X܊PY Zt%жb(bC1B낲-DWmpRwñb*=-qPd2jBLDz!AڪEBH'55{6w_܅,eCclO'/c E B)ۘ #=nH>⒧8nX",4lF=ܲ?츽A?-1l7b۶+~{Tܾ}E 6 sI EpвhΏJw<=} >rW43LR \3۶}fwa˧'6 C\1r36lWirb᡿ IuCյym8^nw()86+/XsfGp{w|2 ⫷Đ.Iio]G6w6Tb&^zV[̦a>^8HbгpOfnH[s,Ô*%k?A/)4l9>QFsH O?]ߑc@(*Ph)VjGՖݜVS)HHEV~N-T%Cr.伮SL1%D*/պsX}9 3.b>Đad{=έU52QٕdHVx2M[FQ%כhYDqUEr=ZCt~  bTך&]nDf:-!k|6 !" #k?{F0OS<P|ZYGt+0yѶ" QI2+OWF)TN5-9eRH"!f*S ]zPtlTUXP?=_bƭkN~ϟy ?o #n~767Gu!!2rVRu{8{R#қ臂Qm7l4 |? Kf%*,VEcdn'3K vOza8?;OuC?OH!%OmgڦlE]F'k 6[\M)1m[9:? jPK(ҘBΙR$Jdx|GZYוmMUm+R%I. Qpӄ+t-$yP6haql}ֲ`q׀V-B9@jq}z2T-ÏQ07w>s~~f{6ڦtLC5-UQJѕ愭;_ץH^K>rVLDe*bu`UtNl{q*v*KQ`L0_z|KavTx!6[eg`Eŀu5̌Q PR2 Uݲa5^QJBQ 1-$eg"&ް.!ΏeJv Tmk68J&R!B,_3HWCq'#S#.=J2QҹJ&~2 -av$['ig @^_:ؓyw J;gG4;L]=b $,ۤ$)ir@o6([b2!F*\l*Ta"94f 3JZdJ_ PhY~ei*D0#OBD #%CT #9,X)#Mz-1X."##8y-|1KB6,ZD\:̌jYҘˇle#rg^ߜ-k=>]ޤH9b hjl<-H]04::%4 aNt}ESCL)\V1麮NU68PD=8iX 6s}_c\ hɺPXDZYJFٖOZ~A)qs[S! iEJ[9 AhjPy(y⟣eupp:gOu y(Um-TdjBz]qB $QP p2 +˲p{or=W1j,OI>Wu t~G7kScE!%"GQ#VҴTT n{KtseZ R Bm6[ */ -?мJݒۀPKN#6B{Ŷ"u5#nLN+v " c~HU/ޓalݎ4M퓤HO~s\\ zm[OBB][=!h0XMSDnZrwZ }@:&2Q^Bi&=T 8ϰ\)E:GT /g Rᙸiw2,vWܪ1/+0}x> ӄaawS`8]h7=4UţfYv;Jb}0."%j3y?j2_>}7ȇp6q<|#_>~+_MO'ov|38Oy)Y gpߡ6-y`s5$D,vLr}Phڎyy;{Oo`9yze#~[~1D)]]s bcx>(>;d-N8 QJ8W^ׁ:L,5-'uu*mp+\.}뉦q=}B4/?#oӏ?iZ޽a٢R~i^}xl['0@ݠ:U4W.gۖ2az A+.ߓb:\1U(~e6 ɲ+oc h-gR@?lF%ᕦJ5hmC6d"9M{7=eIM յ\Mߦ_9WXS$d온Dh{*K~B纪D-aZ _6;l?^`k;QƓH"QIǿUteŵ4|eZhNmaQRU_=~4bDtXJ/fuE7=1&ȁۘ=0O(e1!uGHpMm;RJ!M]ۦzis[BZUĜRCȱrѵ2,sݔyuaXfR ֑r Enpa)hP°#v[D.QA(jO2ߠDD)-,F6_5g-fgu 1Zc{(7ýAX{VjBF&)]K+Z1]_Bמ½Tb_ 9_@qn<^y0MW:dC+~~D{^6I|HU_!g+dDd?knƩrsy됛2C}+UXzXW 頱DⱆzsՖ~-nhZ ɓGشW+Bj@C!aѮi6]/M@#e9bDb`=Y90yR) ?JZ'_h#!{br:+4\;']2aW_cl 3͆eZXxI~;lWle"2/魫c)A uFOM ~Y%af]#mbDӧOt]Ϯ,krx klǷ`\&<_/<3Y˙}l5qMxĄO83<Y:~?vE`6-to_ӈʐM4=O"H]zA|Ƶ 4}| P~G i4M-o-N_^.Z i"f6\()4pϿ eaUTwə>22e2NƑ|[|qݷO Ƒp/e:GkLf!D}P!.pcp< X9W~4gZ/ 8 U 7LlHSE._>awTA,vlu/lھG[7J1c-MgYVڻ{rZ#PP\( $>=Hw}aJk/gD1.@BKEZ_G6نLP#fܡv;bL#j,D&3xyF-Shr}p r݆3J7Xe:0+FuRbY#(Z+E zGO`*!$-CvdvC  Z!j CLanw?bqq8UjSZ]u7ID!: Zb#d ጶ>jHƶ 1QDޓԍCT_Udg(Z6a[TQ쫝JXhIaEPvd5/&BJQLuH)Udt;\\O 'SʒE[ᑸ\a$8BC^kEéV*9DŽ=4M!c"޼[Y!]%PW)݆nPpZ^NH(DEk*gV~Bt{TY($j6xTBADA VnIi!RE1&Ii-"aɁmjPBM%9c+,:(mǤBoUkX׈^cE{O,~W_ a^V!b^IBHy!,0Z3~<~ k{D h3QB#lGZsWpªjҖ1Tm[TuFut%-3ߐrA6NhuAHi%R,du.r#!#0!s+~I ElT*(#Ʋ{ͣDdX}k7oJzkQʰSXc~e^PƐny<@Xo}{X[Ԫ⿗u3%xEΡFT_s3|@{8ݶ'7n" 3"y(3/9_N#lݲ9'd,x`V5:.Frp"J=H/v{_F&IIdES-Yt=@)f7(Wl$JGҒߟWO;y=IKݲ 丞i߽i6-r]۳ysH!E`] )&̂axrB'M23Bȅ>֕,ϧͷdxG^>}awק:z˯O|ϯeO?~"BhL\_ِDXg6}5fG.g{0X)ϯ[Uׁ7oݷm˯?i=޳ 3Y.ϴtߒsa0RẎqhz0O5'8c\'0ٯhjukBdzo\Cݺ2/u|::pzp^%'" WLt=~=Z̸r;3Y zY+֍y+\3M#GR _1rfGb5OWBp+_%V_/ (J0{#\C+Emh;%L (ݎv@)LDb3ٯ>$AgqgPjCӀ_%A$Z7hۢs` H\=Y h"̦ !rAێ.8mIIPqֈ ՚k*@+1xәk :mzk#9AJ(T,BA9XdĦ߲ Z:|(ut0ki\-uBH6;r0#nj* 1JaFDH=ZX' UU⚘QzZjY#5Rc{De+eÕuQMG)u^1!$ N-8dB-:<ԭM+Uc[rǜA8%Q6JFjŴ^F;|NW|۔Q5ع1x@C6۱okSdB A3Z<405vOjc6-tP(sc *fW Y mjmD(rJB=R=HLL"SdZWvsXB~] )"OE(,,-?戟 F"oM[ߏ8,g;bĴbTp#_&J.e~M(#6[nK<_X^O%%kٓc3Q/9̷_ 4uH)B홧+9{l K$kL%dT/4~o3V yF[ALJXh7 ~X TGu8\OOU05J9׸^ZRӕ|h*ɔHC 7ֱRfKt]ZR(B+-Z*HUtk*ILzԭn+m3nC 9ZDM/y+9JY*+2эC0XBV;R4Yr])DW2L2H1SAi:h EA`NIąiНc^)) n&##R lfR4`{0"U&wƏ 9 Ȃq8s| <|F;THw[.ב~ud+Rr:= X] Wog{80_8y0:ˇ|IG攘ms./g0 n:xJޱ>rkG}4B<|f˧<> Mh'_/#^v|D"B?)qz~¥Ħp=_hږz)~F 8ۮ;>~=nC SIe8 ̦#.^5#Zװ*Y~a %znQEsfm0!3yXm>'.'eZsWki?ɦ%q=Ȕ@W(fhZ(m5Bj BRi#ŅmgldHh]݇* X)3p@RFQJan{=a lޒf n0w:R%"V4E3 O5ï*uӷ '0 ,P΁|!}Ƅ0e 'nS1e9p^j^X18j~H9T-#S´}^QݸixBe)*QDAhR%ElS9)&ղ\bTME qeD&Y.' ?{pB3/ QJ sE*RAؼPrm*iiwwH"ǷaEXQ'P%qкg-! ÕHB@Â4 L|+BHkn$ϹUt!/ N9ukix.khE $]6FJyEG8G\:9B؞S\ ڴIG@ *T@B"NڢTK1 *qz Ÿ*TU7?2aa[-?|H^<1<}oo t:?cdswdw״woOW,a~tǎ3q  4.q\8ĜU!Xe%JI|=q7Ydt:2_%'P7u9s; irkaܽ}òx԰ Nzz1Nxni13.pALGbuiX}\ۦmZD(*i5Ji`]f2mu S@]}X QP*M4_QEThN7vek<뤲RyaEV0]AJE EfZX E1=~f[AJ!d%IxyXIP%G(%2{0ێ2]ko@ko2QrXk6'VG!Uay}~YˊN覩Փ=GF(趢𖸮*9TS5Vj&1,e$0ebBkt,/uCt,5m5V#%N-)LbqeAm$?ծ˺yUHa%ru+t|PY)P;T?ed Yz=Ň_s](&J#ssHrx@RE̺Zf5gG 2MvԂ4MR J"DrHێLaJsY$$B-JT̺p}L1'ATbV%FtLTKB*8bu[y~:ZrʳL#EHyozό=m3/\xww/O'cM3B?RNN'*"˼rNHk.#˕vLJ_´pra@iosN B?OxnC*0+o)La;< rp՟:~f 3n_7]ױ|n#Z6H) )%<uO\<b$:ۂS_GHtڰ,3|^h7R)9cwOGzærnc\æmѭw/>9<3. wG{ˏ?J#~iuU =~PR5-R&ĄQ!Cm[b-ӉPRb#kÎחZX_[?STX#MGR,$)P1H3"b"|RVAUJKuLhZXiHJu(C $P2DoXH8㰮e tJA)b|"7WQ?p#p4}WZ#($1B _HAAqHnEzm "ئ#~iD%XʠU=) #,KXFRF =هJִ֥AA<OC8ȅx_}8Ji|ЕYg'_\ӱ#1!q!% VaE*UGRI4# n: 2^" ʺ=^Ei)לƠ n6i1V6 dB#)~J#+9.CZe{rN_HD6niTrֆ2%_ʑEikm-!E:W/0B+" $YɃ,+>.QP HEHc4ӕݶ%SQ"I ZZBע%8Y ò<}{=o-xnrhj-,|9m2G(+q~E2P\t2+5+MEbyyےc% %ZOޣ@B֒6fv6WlA(t=Ӷ )R(/U>y9߳D_m}1j:<0=B56jiE4 +v(U0׋ 75|4!TJRqc5R|v;<`Eos˘91Hyۚ7m KP&JnIU{| k P$q)\QAH$)E"x_͆L<>Z9ӏvE7:f?? !=)F֙Lq%Ő xT22CxwǺ̀{vp^fegGt1]K g:$ϴ]Euػ$)`Z63͎)Fy *%븼\xܴ)y/{5/Dݓdy@㯤k>^z>oH\.4R8y`+;x:?U m3Ǥ9>>0~|bYW˅4kp-ԛښZϨb8̛imD)~[A[v6+^8dګ[Ƙ'a765ZcXXljoK><O#/)֤ŦaG͖kH.9=vnxO()3 fqi83rD"YS2ic8ilw=O㉴t/9ΨLKӉ:xc`8Ugo_s<Oyy=/߾QGT^1nqq9ebH!)V(N &2M#mO+._i6?_)Z}Gh-E*N uUjqPsiE(S1RҌr{ R5mʂXV3Oc7X_KRYJ^0OVWk D# H%ثjIu",c%V !pmG\fX5#1GL.c^gd XW p9WeafO:d x?[>p;kN3>.O {R,,EBH+hle!zHe \'%#E}Ay63s-YGcT~c Ir*cEJnWDA6=)DyBj^יJ܆eON$)XjE+TSz- UBRt $ƶѓÄ!hP %A)3Hx\XB&LHn6=2r|> Smj/FLs}@B +]g(K ͮb 6R`Y !Y1BQlww$UKBdh+k%pCJQEs8oBD$ci1a]ubB5zOR*I(@C%ImH)Į]^4r-ʒ1M rCۗXB(4t8N(5䢰 -T0$oŋu-9%e ۵Otݎ2nIX#9ĔRt{a,I@XWl"u7%-HcXc #dQѯ5.[{k("a%H rQғ̺$Y7*eD5B2R躱R, ##zX%3RL#f[F^>RIb"u*F?ѷW覒R(mYSHǺQII*u; R 0 [P*" 0HP#t 93Nlv)`|mqpȻb<_Ϗ0lڶ?͞OllB_Ï?/O8=|`F|o{3wy^FQFs>f&c|92XHBgyfnw:OX~ D25 ܾz7_}ϟiږvcpxxii ]ӲpO%:d^`iDlִ ySO3JE @,Įi|< @=GN'޿{GΙeYhGX=]WZH3"y̺.}ǟ7Ï7v2O 4RnT<QB!%QJx +oi%fKKQJ AH|ʺRJ{JE:ƀ_ɹ[2l_ N#Ed1\X׵zNB5;Xq`w}@Hv퐦Ez1="tG//J@ZL~BtKc!!`fd:3|\!by+r?*̲o0;NX7R Dݬ0ݠFj=ipBDP2/mOmjOnYѪaJ1-aFJag{qm~zwu,~%_:X2ǧGnon{\۰3ĄktÄͰu>L3RINHXrv, )v+>8{޽~#H͆aN1jǟ+>~8۞5&^}ݦ+⯘#Wx-Lv_ڶ%KL۶LzxƽfM 8kV`\Xea3Kt L1d +4GI!̰,tH9$J(g)1<PJwtmWQ1ӫ5vf3V~_᧟yP^W5_1FS D>363e ւ(nu?˵ynp@V8P r:!׵Waʶ-EXֲ25!|F$J<"%\I,!JYD߽$Z@4(HB 8Xmn҆j$&@ >2 Gr(#.ވ1-mS(i\m i:Rnw^f$ !JjUX%B9^[qRK[JB\l"4qW3L,+:ڶx|B+3i(J`$O+J4B5eE4]X9ZK1!m0bX0:ˊzk-Y'Qc9Y3>@i/bZc5 x?uT|+-%ʔY%utMG 4A΅fGΉ) XJZj%DuE]pƒC@UnR`LOE`T-:y1"H8DYRe1p>!QO ]RB+1(5 |(2YGDTT/z.*TuHÂ1X7JiКJ4hh7v |$!k9=,d󀒊rtTHcMt-i<ݴ0,+i1-2pkĔhSR;X~6smnʦjDh4méz?]` %ʺ`%T""R\䂵G"(ꅟql.BZ)Ӽ -BXWH#tBIV/|oYMVidFo~HpnOΙom~ஶ|_qp&kϬ'p>7<Tv˔"L? 4 WGR, ][Su`ks?!HRa<r ydx|fk-!Ug$u`zD^+Y0嚊k[Twv8ni" IVb!Z\ӴW$VWz08AQ Hv_ⳀZ:\62O햼SX,e0 z5ȦdQ/npD8i$550QC O\6Hጱ >\=fEmOнoFeR AJByHS{8Vwe%H"kSVZ6)X=@eYGRMFoA1~Rbh#ů4m!#Z2"%QrƇU m;t٣_2 =qj_u6 (s޾BZWFRpk$fy~mp(1#M!@ -N[HK]38`mZ|Δ9m[73'6WAu ))B't(813J;`:[Ff#O+h5Ĝet䜉%L^C\P\6M%D]%Ktۑ}@KC6m(LAlAD&k1ڠA ,F[LPUTrCaԫ\߱`LyFn(=4N_#\GrTGXj1=K*#UshZ&p|Uv5BRLiL|$ږ8zd>0con.)@|LtiŚu,3ߠ]G *2 6]w%"D)|u樈t"Mo)RV0)J|~otmZG㧈Pv|ç/o\pu[~#k^lW[\3͎3JJkH$ i |ypbws<\-4|Gp_} ]!畻e. ݋-݋[qb{n~ŗ{~O>f'~Kijs""O_F^yt`l<4_0JO, uiYK!=9sbg{^\ߒS"Hu;ÙOӑ~w/'$% i$y͋[|5l6 w߼Gg~~wSley >~t%q`I~znOgmϨçGڶ|>t:,=/+V2GL<|?~f44Mgu(Q)}pae'+ KiWg'p%۾'xU wx||?wA +k#O?)l%[ |)- @mV"J/3Zœ"0-e" W,PAX"Glez?`4 (2BU^G;|P4FYY=4MuuY틻Z̗%O]b:hP3j[CǂLs_, 󙶻EI)yx&=eYOt8#mK&eUiLJ)>3BJ"$%5=ʒKZPfL% P3uJ,s#DYE8W"9(X@5?GXq>⧊^i6ȦC8!qPLװ[橚 uVydNo^m-IFJNئc*DFDd,@w%Z 34A(INr&E`M-Kښ`Z̪eDLu IZ+kXhW8#)"R5 a^x>o}}HbpOD"(JPrf+Z!Kr( 2)6+))ڠT F 3!,ئ?IZ#8@4] BPD3T5ZJВ̧[ŧ*:#ˆu@v ^ L~4,\x hh7 B2gt2X8'\JuF \;3ÌUI*a@< _eV7O*Ē~ZMX={B0uD޸B ?RρkQZ_&u]k8 4h(n+nWe)-*KP!mZZ G5b+#Vk5)vKNJCYDDۢ!m~A @LG/HaFJ Dh"SՍCK!O Y/ñ>/Bh) EfD~;_dN+:TwT mtۢP(JڢB+RH.3(TOkQuӴQ2E$DQF/+Di_V<;v଀fW>2< Ve)kmšxVtL+z``{вgtӐ FvF$O~[=$Fײ:"iH,3 ۵y!aנ 2%pdOخ`eEZ[eu-XMOI9L%]_3W~ T_l ,~qļVRc f9I̗+4%T$8) |d<#eAFb|)1;&TxjCӵ3~׷\3'´2{w\7~gR|3ݖ(2?}B0Ҽu3qf^gg޿}?!5H]e_>߃VLX7ZRw)9+>FJ^{pL?˿ BW~[zϴLܾHt'ݖtqr}5K u/ D^EHSܽGڦ% 8<>q٦*3|;ΟR3Lj k8 #qXg |y|d+oqz>У r3)(Y&kɲ,|}Ìov^ ǟau͗)15$>?=7߰@mDi0Nk`O4 ?~黆鈕y])b$?.;bT C~W1J6[K'DF0€kSb,V^=)WIeF"k6ALB6nZ:@U[3`tO(BFdh7=9ՔjG R ~= - ݰ*3"vƵa(eWfR->&3':wKŒI"*vX,(*b5Q)K{81=x͟a5Ƙ* >s5RLŔB 5WB@*9SDPna(8L(%(%KEN4oeLEP)"@i_mA:ܸ ~RX7lH aδ.(PѤ"xBhk:,g֬>0MFiZWCZA:ziGn, %*XviE*4p9ɑK! 4!%B mO Zi\jwH!H9N }(^$B`m!HY a DT ~5d+U{Z/Ro}5y"qo_#r"1RV_kM4w-%B0O9`!78Dc qXsMKHcX,e?!zJҚ V+1KLX/e R\9{0"v&4)!@R365菬ed`9Mt:(ˌ4t/_Bu<DFMd~&Zn2c-{|ug*u,h(E :eb3œTA!\ i!? ~QRFgݎ͛kqG7(Uny-1iAÉOkb^|ǁjΧ3*KքDBdW;֧chOOǁ  /~h+ADտq(5qo3 hݻl[J׷4A)5Dg~>rspzLJO抧F-c^yKLi+-ɂ21t敇Om8 _!m7ܟ1ï+b\)V3<x5k,ǁ5>G6(br{Ŝ#9^7|ͮz;B7퇟iʛ5?>?#|!ӑ4ƙ۷ >t7<<y?[>!%2Hߧ\@rm1׷ > _ͦ>y kwUEAJv P9^C'kp":N5ՎZ<ڴGrΈRVKi7`Q,SO]@#86É\ JWbSLMDzzmӶW]rwok&3<"nIEGzPi(Zﱬ$3p}_%#bGئڱ*G_0]MH YT=Ȅ2uu PvH~H@9W-H{͋V0(۠?XYMjzg 6g/3X*,b5JUġim;.s(&Zw$͆{T%\&aFxyPZbZ¦5l9=?㚆vc|8CDIYumnwh2#*m<0-d@&Ko޵羯| ',3ҬRPR̕l%%ţu,~m](JkS|>0'Ÿ* nF(ɲDu՚^^_"3ȂT)ʡdٟA\*'٢"+zSM LTJR0O9,MR'pP~K Z*zC%| [2Srbg6v}?t!IAJ1OGٳB@u.!p9s4E0q[YxX}e:_Rb$ax9!I4R(.?︌Vȟ; Yr<23R*ΧWf_q8ɼ<>6%Gp>x~tiYy8lv;i8pvcws]SINT2aG/ EtJ?ÞMEk+B{{_eBdF=a]%N3xrF[Mp3mJ|<;¼Ю{ڦcGYe#.AɅyY\SLe)MH*>izNW!z5ۻ[^>}f}h47;Z+3%n/ϔMcFn8 rDȊqofaL4L2-l6>{?xK<LN\gɅ99blG֖rz~h5qZcRe1}%s-Sʉ,U䷽g>1{r3g{y1)f)cmO\.d?;Lkk,b BJ*1)[RHH MYDEJ%qm/,mux4-5"<~_uc5DS!S%R\K kzD@DQjK٠$a12LwӖiic<^7T]cAjҶ" 9LZrWdkN PN)cA"!T4]pMW-RYu-:BHXc@T81ix<$D [BZAY5$hW)1VYN.daM-+)չPD!  P4HPhb $Q//agL@N )R"#gA E(#Z& L[#%dӞABa.k RDYۢ$t0^~@7([c=P*WoH^e+-JY_P da"JT%pe^B! 5zVBӠ҈$)UҺPR m 斶[ m έ)~"L'ǬTB uCR<| wed<>uScA5+X%z;\!@')r~yW]%M:Ӟmqi4%\BcwHZaF#%]/aB(!hW["AcrEǦ0U1VWe4_1]1T V=)z2r9T2z]2-X鉱 0)unaG__ Gh)[)NڶFHmHWu_DiF:Ly _^u4 H([l*!:s)jZ/qaBFʲ EA,3Y*@JI,AD")3+%'u58tuaEdbO޼G EI31/hXoji?)Ά?d}su𵰮+ZQ^_WD\$0=VVm6dYF5DN~ y>aV7Uʷ$`5":\i60UHX(B@aDJ\H͵< ,Jf Y:ҲL K +Hm-N2-Qh'dE@-t~973XƳgxpٟRsz7oᎿ?pwE5 "e?ׁU䞧Yoqz|W'FgTQ_ [I㌰i^hL8^368Fڎy<#滟?]1rF~?#*q{ǒ<ț?Mlܪ'n7[Uw9 31¼PZK8U^3Ñix=w?pأC >. tmw WÙY&tDozX˜dЗ'yϰ?b!\;쟞ݒ|>b`qk~= waB*):^?( 2gOl? 2^ \㹶qȘW=C 8ir:g*nvZtFV,>xVabǑyNG+^^_Ym7mq`H)Di[mNGLc]Wi!p5H9⚎e^HJJ)8]Bo4k]z#FHq?䂘Zt训zam p}=剶ݰPpNUkUD\8ݚ#@N3B0!2UAr]cIB̩U Ak[,SuKNc$KʹѶ V2^'L Uq @Q%>ch3YZҶEiՎ,(R5͖a`i ja\L'm>ɹJ@ 2@FR/yFZRDXղic:׋"Lq@1KmP1a!:M]o^^8N>$9d\ߑUӲww D U{9qAHxY%1>w7|K~ݗk?,?gR 7k^>>#fǑ #|J"f=1vcXp@A"oo%q>x{eY7Ñ*ZfկVÏl7[ܦG v[uL/W b״Mx?C~WUcQw<6k:c]Aoѩ |dD!ck 0F/6LgD#8`4(&ߣJ1rf:һT2j).,]O1VӴ5px`w~ίW8X8g:?ݻLÌkyy~פyz\/Yok$bkLL4ĨXr~EZ @4K"SԵ@ C׬+Pn0MFڶ%ZR0MRw->/#exvG59cdZRynP!9LX(C[ߏjBzR24͚ynş5+T6J"yL5{%;J? ]{ )ck,qYw-+œHXԤ) ".R= a2ZGL4f0P:iֹڭ0Z`$, %,EB.U( Z81R3䈕urjV #q0_J!PPsmX))%m@߯QQJaGJP.%GȚj"d\\NV H9F;X[ir!՚<yt儾txnT >8c(t`@F+i3逻fS M#KOgH~Jt [c]%c^'r[BvC;_faB1MK~Eӯ+dR/S(֨d)Ɉꊉ~2-%yJAJoֲ$ 1,T[`$ HH9a^! eңVg`z}A؎1yT.ϵ˳*eYX((!׭ڠ <|BJt"xhzȡ䜭aVgP3Bʄm(x\;(bHqv[Dam~j+(ԭ:4 $q X]%:C)!u~G 9L &PchR,~I*uQ??9/p 1n|>0Ξ~ӒC[1w0t]0fKp]h%O/l2́_O H?}frYuyAGo|<1/u7~ݮR~t@ajhV}=Hrn5OWT||~}A IsJaFv-!%ppVhe_ 0|ӯx}~8y~~f0 hcԦ2 MD>?֜3p'65mN#>E>>q'khێ˞n"].?O4(BC/ַao툧)?0r8cٸzw3{4p9xݰrxs-jNϯڎ!,"X;S377,Lə"S)hmljT|&O4sKw|~}A(_P/ An(}W#3h"8qBX8ɳZݢTOrD'H/cy|Gq!l4tHaqDԎRt݊$hq,˂:RX¼0/a/h(ע|L #eRL JtDC[C 3V3 ׯ oz߮kHɪwPB 6MwP/^ȫ'1$Wm3o sB醸Tnkm.8ˢ(RHTK.з! RQh/hH_8~vXFH4" ^/; 0䘰’ZGAˮC]S]]<o#)%0WJj"m| ,^Vе;[>67W'J"ǀ!$]/-9I3ȴ@Fh2CA*eɝArM6N yi51+7%, !cRRJ%WluCZ2c[ɡK(Ь_)v+zk sω_'Z7{ldo=w7n|~vϟNoBy!&~^mo]S:@Si:-SLl ?>:-1G7e/("3_-.|<{O?|ϛ;x·Olsy9L~%/?|8*µmy=C;G]㺖a fT(K 6#M o޿2 Gae"Ξ7olv-woÇ/$]Oy7||\pmCPR䛟?oG-mr^&n߾a89ܾ]u G,#>( Q8g:~/~E)~/Agd>g^b$y\=\?F \7pؿ/>=u{ѶV[~8Oy=0ۿ-ՆfM)%1&b̬+ )$81\Fb r.9f|i,IbLQnab!H6;,ZUVr% %,cXMJ-4rj%/>HIp=n!-$Y# Jq/j:FTtx-J aJ$H :)#a|ZMCFt`[0rBu5xJ-?%Ha ~xBobϞ3anyڮBD*XU',v{sXj:/ִPJB ڐ0oj[RD2,woDxa ѮG(E3>Zˈ%Q1c\AjXF<|sdj+2iȹb"%{5Rb=XP]2}4"7s"HAI*p TiILimGg2ϐbgr(YRK)aCV KXh : ^_Z)x?7\@2-4,1` (%F:!!θLp YVjApYf]xDJݬ $J()I֡@ry?`0K#h')4ek):-TH^>aֹiV$~Y!gD(/0q'N-B2eHW㢥Dr\<9w,Zp'I%vo0ZWT8}KYIjOteI,3cpF!Rd-,DrvWQ0.fdc`ef0fZm)%ZMl2Nf5Du e <a8'8a$Z Ųnx%JF:J1!D3JF$:I\@̲0J֡<Dfl+J5]? ]#g.hg>q9_:#K>Kas]]M8Ux> "eM]DPDE-S\(L@H)F1ĘQP6[oo \T.$"J#TN,!e"j9/8+"ט:ҏ)^,HKp{n.=$lkr" Yo4p9@ [% 9Ȣ!EB&iQ0)H;Jy%9[uׂYj<t Ǐh:ג}5&WYCȹ;n<i+-Sd)F(yrTc}9LOxr#rz8f*8X)PeA~#&6X>}_&xGOH"?;t>r-)OAt?NUn/~S.i6Wb(lVre~tvW{5|G~wVMl‡3Js3[1P80yL%b(L۶\NgdhڶǗgR|\.'V~ 7{eDH1<]u,gFlw;_y8חqՖ<8}~;83_.<biʂ Q}O ծ;x1 3a*Tw.È`gJ,FJ/vCX.!+%4R+YE(-A92NۿlTdjn.< h-ѦE$|9)jn;2%~zujM)T+*%a*nPmPzJBpGIB^($|Q1q(>=2<gr F+*N+C)e)BHXuk/2!2-]35L1p7q1N)V̱КgR M*UH<"yHp)%ZU_oY蚷t5DLӭ6kX?TP$j7lnkwX2K@)tHc;BH%q",Kv)sxDۮPmCyu9$c=έ(20ϸ D6XCSm;R4Cb< lVBhՖ(#jMK#q8Xԕ,痀*ym)WCfSg;Jj(4MkX̗¸H n 1ͲD'0/<_޿î:TN'\*lXVR0ݮ|u$~X:D'dc,^.zJ]/Hc ^!t]Z,4#@>AE0ΘGWwCmݎU[(yTTlp+@ Dȹ oB̩Ɵ.giDY ChBL Ā3dףri5iTW5,b[dl32L3jSE@QDs;x^v=ie %޼e:S} !xZFYÛK}?Wlzָo:SDdp*nUui 6h,L<, [B ! &բQ{87aשtBP{sH]χ=?|>ŗ^߸}_o/<~~̰DǘyU?7y}yz7px=- xǷE\4c"JcqO3K|_O0GaŇ_,ݎ>}x'vm-?~42- .H _Ogә͎tAyip}GR`ypt 6w-㑷W)&/{f3-^ؾZx;>+NqbG^_sb7rg~_p:_8<> i>o>*qaI|5Á݇V8kX ]%|>]@ |iW?RvaGrm7 ]G;va Kg e\X+W)YO ݢUrY9d sTeqʢ&+ I2^_eҴ0]Ia(s )'bJx yɘkT5PF_(XЬ63@(3֮p44Xon2(cDASĨڦAI(h>Pa.t7Z9Q@u2IA8U !2ZG&GL әrrdee*b牗lR WV+$O7Q蘨9onqmKEv|%иж=mn@ HD$Eˈk5q"1J) }*3w_0U5J =uF&w5't Z6wd*¯6(e!eR Γvqn%7SZfWs TYkHK vUP[8_`-(C4,aXZ flJoMC'y5*gOZlƺN%ȗ 7 %&4QEE_3/gwT[\Qݐ(FtsJlwA!G&(R<9k|]h˶Aֈa<'Y&)F'FY[ס5ZL^;.?f`;r8GkcULLj(EdAab([NW :5B\=nZn\ ]3w:_k=)W.o\?pΔ3F_݊p/ OV-˜h]yz~fh8 UU鑛[Ӟ'z!uo~soT 9Ozn'Кzrcμ>>/8/Á/6 m /O8haɉ[~' "SHweY [Ϸ y;??ra]s~;PmMJa&m|1564]~»$ v:憷g6̗>23/=FkٟOnnyߢb~׎WV Պȕ|~>c<֐JM8kD5JeڎDo{u=A>]ݭ,)jo;KbYka<sQzɄ;'NZ @ te&-#O\T'a ԡLE)7B(JB^00TdJI(hƧcWw2P}")NJgԮ KաSv@k.t0m(ʣK%)mXp~ciB8Ị5 :RZ84~5ȔN2&]#].@4fi{r)WbjKPx9Ӭ:@s!fJ(F g=&Q×"^oѺ%J˕8k 27Rhz<Ӛ ocCIئ#H\- z IE{\)EʍU"2 !,Ut+J-e`|ɈHLFlMGM3Ֆڡ&LʑjΌtܤoAW#T13Z:\.`;)F5PD6;qb nGRJ8`|CZj t8G=0sFkKR%,u]4ksXb"-G-[쫍&Ƅs%/MmJfZfjDZѪb2TV!kZs(S)Xemp^P"Bi;̗fX-Jl&W`]KY5b\XƓ|^Ra:`cWBBM1!-MlTg5iAI2$.kB L1$fip]<5SԚ>j*9*4qYQO[l22U+,Ĕ2 ִ juŗ*PƂQsP"a[ߟIi<4W=ibGõ әj+}?m#1$ԪORK8G 랛{nc Xx:s|?tT8O?Ǵ |{#tnW9q' ~ElvK>oƲ[f+X~_[in8-y{zϧ3i?l_|^ 牡 2 7ly?0#h1v![*zy#v(ik9OnnG93REǰ0c|8HOO>VZ9ܽ{ g~ )Sk#4{ 0_r\Xk)S`Z3'ZBo iOc+UkV[A 2[Hmc9cu63Lɑ0/c(UdҘRZi82Dʁn!kbWn:p:cvk2Eok!ӭzq(,+VjpR0^ N;!鈶B%e2#x`*U[1iu2Z`|56.#*RUI7w"vYb!fFLFs<ҭVh)0cLk4%2DV58$홣Aw3%&Rʹuuk'-,G+va!L[:Lӑ *qTHJo{iVɃC1|SU(˂Hڎ0r>0 -!V\"D̅hspڡg\.B7ɉ$X9iR6rL-jH.0 jq -38.&tt!.a}GI /(3ڢA:  34=SHt֢AGl-X4 ɥb/ cvDrs>,RNy=qS g)7-%g4r87V 9c)"^,Y@U.7|TvimZ)ktxɍиT`.1W h,3eq 5,[h%]I=[œLak13mhu/(Mމ@W\a IlUIYiNUWD%`J)KcP5V+r(#%4]G۵"Ys ʴFޠA[jBƺf/p%i瑔`nH9O?:tDӬHXld.1DR+R(OL;ແ(uMVɘ$`SA[!H8eMT-)܆ ȯ+^gĺ7<>@={at3ۛ}۲>RHywCGZFq9ٮx}~%Fv;ZPǃlOoiVixNKbI~X;4}C)x%(V3ߠVB>όpx~^^0vkjJGtm8~o{J0a:ѱچk&"]i8_1Uc "m /y-*~~|:Kş)jn?~۬㌷_~ELMӲ, 7y=/"S_x|zf{L mWv7;n+_m3~I)tW_i$Qqmx8oᇗga#p e 㙶ip卐#T82t=z{fV-%В&Wu:t凧g}4N#z|hN/{U|X5=~ۧv->=gj ˅>?ݐbpYdOO⇎@vmrY<<<P1q!-X. Ļx@+feG+ڦa'RܠBUqG׿3q!i x'r/w?Y. jLwά__NXaĈ+l9h܂+L4gcY&aO[ e7Tq& G) Bw 4aCfEq Т4:^Q67QoXՊpT⛀Z [ wea*#5*pkVq]O&qўXf=YGShVjxcN\Uy㤔ko,9kec41W e8oQRe#" jQ) #FC $t4M/` JPMOQb?Һ-%Yje%cmXGBqBZ("ON T\Jɔ qdUpU-uVR,=%O]31n6c,(|˯!U7(!00M+sY/%]v"z|)"ˍs-ailKQ(C蒱\#BoN™\06]#6;e [)`1e>JLH5-']S3 "xqһ)!G)!(4J{9k MbKLh74 ޒ37ln& Kcu*+)Io:M0t9ft0c+^=*PLs tOk~PCxE lrX'2%JJ,vG W3mcF|ic?HO#."N1^u위g=uF {{qvߵ =,'r-F^rn]K8kl<7o!/֐RDF{Sͭ<H; j=$4-5T-_b*!it:S;Oz:6@n#]UYBh@biœ#ÄVЭz^^^rxF, YU5pYKZVe&캎R CwX^_FtVSJw_=|]ߊitw p'?)Oo֔/~;Ҝ0xsosؿ=722k(ϔ w|x.jCʰ8^ΨPxJ)8gپ&;> 3w?s17_<|t(9W-б蛆4ljd p8nyۿn}C@k4Uspv|1rY7c<۵%q+7Y#&Wv핾x#)DQa0Gwi[z%|vxJyr:, 8j"0N.V՗_r8(v@DF"iYmv)`ɺƛ̴Q2ζJ3t0ROG t8w lG)E ^ tis([_ ӭנ""'_{rIDJ*E- qQTlDfl$M)rdw (ϼD 7j*(ݢd>}5ޠM:$jq(N5|`ïV,D- wf*@ތH&k Z!0ٴi 0b a@ U~%R])/LzsIJ(o9wETG(+\(iDkẫ !N4Ko(Jv4P%@%VJtMfP5(:M2(37) 8GUO!rAJّRFWT,UEE9XY.ECE'wpFLZ hf"=+ )tM$>rJ#LWu&#LT32P0Vc7k%ZkDUepV'&z{/~2UMCR(4-v{o-i|BrפZb?ALr񩜥r_>Vй;M'!U18uMJE1RB$2c]H]^ȼL-M6$~B"(B'Z,A>klZVB@-1%N4)T#2;鄭/P (h f#~#&3X7ϟhF!}ONm4on/ؿbl' hQ5-||x~?@k7wmG54K"Uny~xFh/,Opb?Cx~xšF:Awq?q}w c\xz|m秧>ܽO3#vEu|~WgE)^_)AS23 #w7o(;͆ ,[ ͻ+ȅp?23l>4*,K#p[É\294}ncl/|m۳珴}YWLc_4q~3Y3<7=W0 4p8L%kzG7]WX_]\ .6[8RxAb>υw%JigZ7\o}?ȇ/o{xsp9f x{ ooy\+QUBδ53 7 o }ӱZhچ8ୣ84Nd]9tM\eKr@[pqK`I(/7<|ě;i_0O qnA=2G6-5EVkܾ} gV7تq2_0-GVCwy#4_P<$w +$0N]41-"&Ɖk"4XH\Z\,iT#F%eZ5c88RHghĮXizrYmޠyأipcZ^wV[|ĠqMʯ/Gb+8sҤ"wy)H.[i:TUZ% 94\XKALi4]|:4ýD 5tm#E\i );M۶0mO_bL~s!.TF)9,+ćT) %@mۓrVq&Z4RH9q|QU%kR+εRYR?RIJUq h-81kqDۯaZ(*RB !F%D"ESm;IewY G8G ac xߝrX|/P9C,wiȉjUIMSr&, YwQV\YF_*%D1! %ʜdBmVG)$tDmX9Bp]O)LiJNDРV E(YX^Ρ+ Ip5(s>@f50-3Va9>Ѵ KR&"lHX=vEl"*$X(/H^)Jd6sH>ҵhRgϽkjt8{" 1xӒbc<3@Y49WVdUUhMN 8R4VR~{*2ӀsΝ-eD⦝9$2L&!,V{+2& P+2⍑-[Ni[%SjdT yiTme֊(6Nhbqi9 [7c,K`t"s@ENP29j IDۮQU+iƽ+:ˑJ7iQFR$L)Zmh./ SM1hW3VPJ[rR$!L3Z~q2y AJ}Jf'OԚg Y iQ]#=Er\(9{L~%Qg1[F˄^UJ_v,d GF-EY)w{:eЫg.5 ?煻 1{x;v^ )͝<kv9p~GkQw|=k8fLD׿6oZ~ְn9Scª_QW uy8o.() e4~-S޼I{1kzuxsu<,5r77~ c8E ejdh< Uc1S7[¸C <@\0{s p\!-Nx:4JԔZ4<@YWӌ9$vtñ(ˌ^AѸ6] t-ַ`V2]K9bu-4J^Z|wl/Q6 vxyP8#{<Ю9CqZAbbQ)'Q( X+R"i^PU#JyYAWb5֒I6^]OR\q]kT-X#U L?YNe&# wBAS"晜3V;o,Dhp~r|hTbBlSrm*).bABȰ egLLkKgA]I? $d;&RV"̉tV Vrp=IѶ4G4mH%Q8)QF%º%jya "6VmPZSTm(,cĜŭք0bWLiGBP__zsͿc[ay?p6 _bhxo>{}Klcyzۆ/6()a憏\[RLO8ڎ(RER Li!0#8 {(,D]a8rlLZ[Kas+k׿f?/5?%W+h۷wpرxpϼ_|`gL]~s֚xv;J*hy=~pxzxdG!~i`9\l/f&, K\ږ_'~^%Ẇ՚5c8QC!TIL1t*,1[?Wl.oEn7<|;GybKLK?}0]ϙB۷Ħ_A<$eCl%E-^pze>{@ߡi:z<`K9 í9b6=:n.PKLD3@{Q 8v' !tB ÑL֑c"֢L-ׄΦsh*cZ|,pB+G!+1:ReVTYMF-#9t-8O>\8~ohV|SS"/k8gemwf[9{m'SԒ9M#_Ѯ6Z+m(%e B)Fj A;9۴1bF gD8A󞘢Ls, UI|:H&gniCupYLۭJ$Dp[SUQba7+W">m`ˈixgY>_'t|*6gT5dEFI&AEBʙZC,HXf~#qIhQo 5fe>p45eEF 9Kg\s\ZrA{ 8#e99()gr X`e}Zm-mJX&|'2;ZBUBӪ n%,qa:r^tll-԰Kh4A0ܾk):t(xXOqASpz ˌ35I[zӭa)FHaz*i^ފ/eANq (oR"Q& (Yj{.VyTD^{xRUhep}GVbbBUFQoxu:ˈ)4ئ0 k\׊V$i( ĹF,CiUvlrJaNxNVGTHr9K_PnoqX\"^i_UH`FE*JM u?YTgΈtSU !f)"2 ܉JiAhlcr:5j&"$bHQ8Q9b@$Lk .$bTjP:lMv09rl3ml2YkbO BY% Y*R2u*hZ3- ?ژ3bzG-ÞnO'wi`^xRSe~p+N?ҭ.5$ky'W q$N4OgmikC*%Jz`Fa߮N3)eZΉZ2vi?5_K&)h✙IFH߬|F7kbjaHZ5ŗ'jMN{3%0NcXfvϼb@!̬Wͺà R^,9?)Q4l7GMϐ" @'|3NZOT3g)p/?tYeibaOQ<-|Gt:nY]_ EeǪy}~/K~5Won/0K"ZMP{ε-n"2sI8 ĜXrx4ab e (kzK1W$}/= ,H/o^6#)ۆo.K荣x=v<ftDcܡdQAdc9 ^*_ XRheXQJu,E0cw UkRZiƒqZ-%L Vr) F([Pxcouӡ5LD{)XJAxxhkV d[A Z Vf#Qɹέq J4gZh]ħ3zzmZd/Y)h'F0Sen^*w(iB|F:pOʕ%, Z)|++rvL-4}ò?(-BJ :sXI Nmg@5n9;ho prI D]MO‹oD51Ia,$30a IlHFA4moW$8N"Z*)VkP 9VJuΟEZtP VkhSѶ}Itޞ-V5}C͕]c)jTKkJʌ3LvR9T*M%aW=2sqX DRU.ڢbNX%2Y%J au[ @vPU6CÀ yѶR#V8HWdYP:yhѝ߭ xݢ LCɅe|[P3iVk)r͊_?~~/03ia{¶9y}y{b\n7po~u-i\9I\i)Ì[gͻ__Qh!悧ſopw|o5sFO?zК'6gL0|q85/t^.aysu0M^M 7 É0/MK<~JD8~\f u!MӂV|j槧{[QoL@^ )UOǓ5 Jbjf7 0` rOlWw$zH* e7j118~%!T5,{p^y~%Eu<~xi}x|=ib_盷}@"{?p9\x_'3D:EʚGɿO;l{mI*Q^0iؾr~9ж ib>__yK\1)s13>|b?W ~s͆g]C5޾~Kx"$5'j=wX^D]EW_aG\pk[xax'͆h`>]xw<>=r>hn)k- 7ÏpY8d*-V;~l^ݳ Ͷ:Mg|n708DY.  ^x䡆;Zi 7ҿۈDУIdcg1,߾ +t)sP820%1OEz%x2hB(޷1'LZQ1\4ʄ"Dx]+ZOz|ۓH. e tCO6\ }80߃ӤI$mPXO5"UZ s9]4;eqTx> Z&p檼~apT/VNj8oLF[Dv`HOփ]WYnkk}g2e}6p,m12Wb֊6 ibTMAQ(X 7Z-*D1on@T%$ mըIe-ӑ( ZƠE !Tmu=U)RzZ%C$m %bS `X/c*s!c5t;\+Zg֓Z*ĕ5q,u+Kgl*E:=2_άs=xEۃj, q{sq-[fy7isulZ@) C™JJ g=m)q!\&"pu%j0U (~y>uϏ4p9ha{LL\BuऔEw9En]G g,gP؀aE =Ti BIO@.L>{Ilʂw]º B2-Lcw$ \U55] j,1l3GL1$v鮥R,&et#]14%"[铄ۮeQLEɠL$0)G{-X.pL<9. =;jմ'zA;{Lͫ%~gAY`-s h./ &.':Gj8f {7 3il|W54[Ͼw{lw?gnW103@i ӑ^ 21/*t.»w駟hgE.;b<~7vGX=%g^xo~v}=q\%u8_9?|}-!/1]'nqϾKIPݖHw|3eb]o^~zl ,>q{w(;4q9y{f?}B[K a)̜ }c۲/W{Ÿ^x9oz[ ;0RKmtZi:/}' b\iE¸g6-u(%Q? M%bn$b2qCYO\JYV$^%'qٌg18E&rxHB̆l:TX-1ϔ*6o,%) g\7(h9l_EVO_ݼRĉB)WLw[rvBIYt]Fϡe'ڦEYM.#"2*vR =#^.(1K;S$6-= 0i=Zm4)j.8HLmYU6d)5b HaD<4[r\o//xgj!ǂ70\+F%Go(EbzʐݼfrM,3*pDqb4V_!DBޱj X(:ɶ2׿ JVtM'ši\CHc dxjŖĬ%X,64L(k=9& N*!` L-X 7.p>agMII:&EY!FT*)GƵ Xtk ֌ JwuU(Ѝ[1#N#ˉ_sW\p7E5;qLxB\ F,l=a Z. il'A\]/?n\QWg) JWl7*,ʏ1եM#eF$UJ: K]HhsuFg*uњ3iy{ ά_o隖vçG~fY|aY#I/ѭ'N E[ӗgenZć>cچ0ϴMCk='0kq%jyo,gy;I~raǪj7n/[ׁqhgș3cײ2憪 HH)915z0S *# k-1DiA*giYM+}UtI)?ٜ)$-F{ѕZ qJrqh5-Rڸøp:`f^V n(XlDLےBҮ.TUP{%r5%Nη"$Q6 HiZ)˙ {%VB\V"5ڛL*8A9\{l6$+%0S=^ U\Ea\jD7r CĬQM/ k\+lÖ|>Vj(SڡHX#&ؾxyVEэeZ8pUE\h$l*"e[r*Wt?R_I+:oſE8:/aF9z|<㻎f;pR˙TQ˗giaON4&qd8|zd*e2|(v 6TX3ðۯZu;Ɨxxs#c}2 H6 |'_/集v-I+. ]Z8! 8vmOQae=%g }O? W(gv=\cvO7w߳ {H4LBW^?px~FB36;Pϟ?LLogZ1G͎:3ܾy刪ˈm=0W-UAZM;ȍi8Ԁ5v--S 98|b1~eӴ,*s8軁_Gnnn癡XDž{Dv??~jQElu^_cxZQ@W20;m{L}G*0LZ#+t%k"G§hv[ju %Uk|2RBN1Z)Zyքl9b3 D״5Tkh7[PňFh3WQ]NBiQok#R%DU*͝\c\hܾ{O]2M{j[*Lkۖa6[ZHXS f4cB{{Ǽ4c 1ǷF[4 ˉv3QT!gnn^A-ƓL^m(>WE3MnΑ g hXgnO X967T6Ka0YKAz:q} Vh5C ; JJ|n oXjnGQ ÷-mtuxWݎjz6}# mc}+2^p*!*r>x|o6~:emYNV602<6 ?}7j?7!ᇁy^-d=RAMX0I&ٲN1-eB YI B!Qi6ZYOTerzvW"SBDw=n {)!W5Yp#`K$=y@ZZcMV),W5)`7(4-h-k&e5J J+x)Sr7 x:GӶ8H(ʺxX-]D\ )FǵDEޡDݛt mo*blӊ"UM" V~]-SMf:V:s)N#rz'TT߱~ \e',CNl\OQ %KDQ]uZa3 :&\+H0ςmZN'?FyizuRyMVvrc^o%\f6wweN\AM;\/70V&Ep<m:2|'\E(GݠRg}ά#LΏ߳C4e*9z8XeYW=5LbIݻQA@L"+ j]]f]ZMCKd0(,.#y>A.5aE@B8`ۮ^]JMA:'@`ZWc uhTQ+;rIk!/R`)Tut L^VÁͫ7X#4O5Y!Z7ʇO`Gq%o[xif|8lYrbYVL+atmO߷<@g6S5iF[ɼoe]VjμϠ4__>DNtCGp>p'ka=G޿cPGw+~9xǑW^x_q8<lL+>~ T?[iFiʹH=/#7{6C'뷯G^>p<3q_i傿JZu Jg=CǏ(c%c˄o nHc:M|WgS m1]GXK+Z|`|gy]ezl$nP"*j*UUDyM iEBE6ءG*d0FM׋0SBx8!,E]5Fc'ӅvsR@8~@iwݐSX#<ۀra4-TJq[Gڠ˧NhZj ,Hۋ*V'6묮^mJ"(&֘ SXPX#0R(5]C>(r)P}&}1 q(ePᜡX-qk;X̰QK.2y]`8hC5 [r-8s~~$"_Xd˳\[*6&v\'!kg%Pkx;/OaoY{s誮T(*+U׉%SJz'XZn-hB8mڐQ4]OV-L(-#=e\%a+c* E"ߢ\d`p[\J.ZJ ҊWb&|fJYhvpuTits^(eZ(Y2\;|)hk1Fu)k{T(S)$rgCI`ӡEH_=@⑨)֊ 56(\gsƤ^%JT\#5ZIH*x"E!#8iGk224j:.nKZpAY^`qoR{@yac%+t]4f3t^<4[9k 90mudi$/ٜ'm9rmj,}j_ĸRXzִQ w#$h\òNB4}m*d#k!]?erD$"ڵr^*ַga<Γo[3!ZBnap Jn]K̉txBm+-8=(JIH,Ψ$J;""Հߒ!OgB ,eARMEӀkPXؽ m;* 0G\DPF h2 9ِ8 Jk 2]G߈|4h ,P=5 Pr<3#BJĢM+`uGZ3i<kXha2zP8 W޼ECoUSmWӌ(YMӢ?_x9̇Z!EFs3,$˶E]8sN㙷XeΣ2mb<}9b"ݩm3vq%OD49>.tzw+|VG- :sz99ϘVnva|>r_2ba+)~_z<}}2&,̟<<}Ox5<~ݵiۖ/_ȅ9te0 Ή_8Y 77{N3}cx<}UDOУUiv{>fؑLRPޡB6kY V9 Zq]֠u#qdm'Ƴ쇁q.P3c\*LH#Lw7,㙶qX 5 ݜ{-VX3Inw mKʅ鮮eZs x-/*ºV|j0vO(#6k3L rz/to^3󴠫 Vt2-tN5k-xALPD /(X/l79#(Q41Bg4ٴa]GT0ڑ֙DgZeĴ k(I<|>uzpրw#d@Usšk25!XڸGYBt^^Z^;N/?↝Lt;R\0t LBabtL3|r59ܼF$i(T05(ek ,#5:ntafR\q 뺊?Ø%QZb=?uWdk)`ɭ䲧HU|BvV4tR )oo%MDECX/i}'=E-yj \Qy V2i)MY=꫉/UŠ5ypƢT9˂ZBU)q H$K?iJjlt7b 8M+A1a醔Hh1ZGIg8gb (i#KdY'RLx+;FL-KbMg1,8%#VA BV!aUR4J, mZr"/8k)=VrĴⵑuV'\Ӷ=Fƶtݎ3vV${kG1 /3xy1tҴ=;ua =.2á(xoX?C3F]8R͆z7 !W G1ʦRJ=rQ\ՙ /^5GbF1v<'e & m&ggudHIڋL6̘%S s n?wQK=865Svc.f+eZ U5IWmBI(%~CᒽmpRK$k#TeĹ~BZ^)bPD|zǛ_ :.%JL-6<7.X ],tϼzl= k;r8zuTM%ɯgY(Y(|7$rOk\yiGvX+!4mO\Ψ v%D61H`Z%@Cs-s-}G]N<==:Z(򰐣,sty:뙒2(-6wۖ%D^$[?*rWZka'E'|݃k0^YNm(4PM%Y|q:szzBY8M\Q.'-ݎySƢ~qbw{l(Fc 'u!Ks=DSx3W׵|ncX%GTU Ӊ{Nׯ9;Ɨh}z[O#iYvxVڦfy||h}δmFv̛wooo\\ȗznݎ,I'N j2 4 l i:C ;4jIXP^S+taap &MB{ ,+mɡPBZvJ$3L [ʼbF'v鑶B^^нٓSb k`FՊ6,댭Pe7j =Qj]qkh:ja}İyOGKiQyV-{Հv79u-e\+2ς'\3(l3`%S-YkADTEl k8F7Ifa{Ke~ۿ"՚PԔqQԬYĀ*f>ž0ڑsfC5(b\1b^ mR"syAps5t90a%Qh+) m#-]T*Gei:1N')Vef^ 8325agTmlge "\785rxɖCvZX⊻ě}KXL]=1)*"8cA.5I1cILU @\h^6q93/M 5`O]Z$xCoz)E7tcBF2Β'~*1/ + E)RD8 4lEaZfzIӰZJ}/xfI(EgePfRG ZYR=R83\.i-OZ0F35'tסLOaI:mG\KtcJ [й, zVyZtqՖ)̧3T6}G /t=t6[\q4WKW^8Rczob=LIR+a+}TezPȇo =|ƄtBv?'޿{KE  a D* IUq=q^F]0<2Ǖk,i+hv[uLPikL%no7<< 3kOv{^'rZ6[F}?w=9g_iy^X ^^0O$ 3YUb\Npi7 Ek:먪}iR !S%r,P-X: A$M)1?ѸXDl|ɢWߢEZ,A+lu^i+fKNd**Xt'r%m!JpLӑ+ݑvs'S}urqO~O+ !t ~Ptq-늵 k6"xVz =1/$N+v2A-L/3Ꚓ~ 2EeDʉշ/OԵu[xӰfm45J6"L 1.tW7Tk4ӈo,bZG\Ft(%PiLe˴xt5!߾FDmbC`-T`g^$#_#K3_%(*U)TTTģtXǺL8./k4 v?ƲTR:Zu-'l4paWv iZ@XH9]{9US(#Vߴ'G c7~K;f>KUZ3Ll@)rLL]8tۭ\ו2f:։3^5KHZI/65a|Jm5-E *KQ3V9JvhI"? K&ȳFF+I@^odZ %NKymoP&RhV!f0綂JX\g9{C5ֈcӶJo09f;(-. 34Y`h[䰨+/O_B-r-i# EeWUƓa 4s/I%b D y]HE6-_~Vв9oh 8MV e{+F%/ہ ݑӑb~T_0 Q@uT m_>ݾK5Pkԋ8eWc%u)4ưN׷)ӄtV~_ 7- y%}z-*Up I+tԘPAI㈭DzZPH> :/t&gLvn] Je^< !e5o68|zp8o _WT(\]p'\]qOLU?l9+82\; Z <<::rݱՎ`v[6 ~GF#o^i grך:b|}ü,ՕWx4_YSk7|=>1Ġnǧتh.~:szy@"#7k"}|~qY黎22GێǟxwLLZWkXBbsEkRibϏb8䕐yo eVm2ϳĵO'Zl69v-2at8-!G3:-O$1tzd%d4JDZC VWT [5jYh\d1Z~.+ 1Do,f7e%L|J9>?AXc<><1'+z/nϧ_.&91B_(]'t1RKhMUûU3LJ8 9{+֔i6ט{jD"fLCFB\WL?Ft*CAcK0_~CSohȰ.!xK^iI)2=}YiH7\K"BUU('PR$C2.(E 9c+°m{jZWᄭ~s͢rD*S4ZJ?qU5yt2HL"Y/ȈZFJ-4o)1 I(DPkBmhK c hPLxm2 L3 ,0 %Cu KiiQ\;PNcXh"@J1"~tRt.38|Xi-5W5U]W -:"(6J2ڰĺbBrN\O 3WVa#7׬!Ѵ yJ~ π-kQ9nH42 *:M]kS9K5r>i{o(P * ]ΊHL:P^P+%Q#RDE`M#|-03ݢT!'~CWt \YbY* @BW8 2o6dm )rHT })Z*4!k Yp/Ǘ{Z8ǘ]S5wkk:!}%;5 C%.HY'19[WXsWCO H 1l pF=m64@-ڐJIӷ0puq5mk|ҥa ؾnߋQ10ϲu +:NS_ *2ExxiB{w(`ہΤ0fzNYuh6- 5df@nTIeow늫)IԲ@;|/& c,V)ݕ\7萨FAIZO.]Ą5e^) _Pc&y<i]cd:O(g)1s&Ls3b!-nx&N;R>UaK`gY&aLv?x )jZwg67<C,=>%w(j<4@_5˴|~a<￧ݧ"7Î|ݞk%Z _}H-aiT*=4SҢsto =gno^ m oW{xMOƉ?} ZLZ΁ )/ܾ٢LaWJiYz-w_>ZR1$?]J"Qh'XEeHK@ mJɹ]OQ)`{*PW0|Cc=(R#MD\dfі:ޱyBTKd'Ld]eJgXVJX@ˁLkL)b.!r& m7@Y׈j=O*GT#Z)Bh[k B1CWi%BUSеn-D n K<|WTgBT|ﰎGU@_6B:GX# 5ˁ$jIz#`DGR\kPAɴ&qA8)cGLV2R4xqESVH3BXg9Tprʂ³8UvR=RCb]OZ0S!m+J]ZDjES@SfAg@J\Rqhy:}KjͤE3*xO-U)=UH9)'Fځ#n`]\ "jkRω*|ƵmKaJ4a>Qkl7`H91\s郬(Pt́]T#s=3"%D%x>|$Dm-5nyYƸa%̏?3gYt)Ï?, 78iǧg]y9<>1w_w=/ՅΥKƠwDA|zyI<]x>RK&DHӑyZ3tBgyʅ4o^///8_jqMòLoi7qdsuD m+nnY7߼?w?z7Ē+̨jQZ-R3ei@e޾qLm5u\Q1TLM"E!v8RJOf@TQk4Zbb,|a,x'"JƵ=emn7 5w ,+2%$pxqhIʪJxh1rl96mK5l-RzNG(d%flB^Y5ÎDgp*5\Ϥ0-oi:c< 'Kt.c"u~C))ufN&LF RU+' o(r]ߓ0,n@E 8@{XE8% 0#n%S5@)"hS(UadaJhyzkpi+Rf(S fYurqc.D"|gjHMwٞHzN9g[ʴW! -F!J!, M\: DaLrrpNJ}NBj. QVh,Ĉ4 1 q]֠tްAnjj{ԄUc\ňNg-xp@Y*d0k<mjbh1F\=iZbhIʕf)r%hn=(EUfرJr*hΔrˑwF.S\6kʄHEѴb V2qHQNX H(UjZgRr$ UF>IĜX4}K5 cLg]gZե8[shE\ĔK,5jJ"*1Qk[i=NܶDžqMެ̪ʤ$(K_E!$DЀ%Z*̛D1{ﵗv8ߺ!͵σq%4\@Jn!n𿷆!J)8'Įq2 ܣ W[U5Ԩc{<}34͊a(Uоy8 z4GD1NR"_YjП Z'lV<^іy^;5 V-UڠƬʒ˜2QGC+QޑyVAnX^_p e\F|to.07dIʣj_O2xhhר1_AHKFۄj:{Og8*\KiJ'lFoSv /y\ 2Lex0 6yT4w~!)aγ" В1ĬU8|tB$`BG.Ƿf 0Уr*eXm7th$E"Z)Smq TU|8cW , ;'xr"~k 8qwwB4M0Iªmj27/{;nwC0MMBx¶5E<_yfxH͊tfvu ^?0 io= w>}8w }/-%Dvw|#̻obF<3ąuձ\8_yg-i /|#G6#w-sN]-Wlny~~35u03;[O 3=q͚Wl7| ;͚9R;Jo[ڭ_5˫=O_SIya~%j<?ۏ\^\@S֔0QW+8dJkۢ\k[R*af{B]UΒㄫc!?UVF9G"Roh/]8H^[Ӛ9XYEb\hj{mĜqba4ۯS:`_<ܳ,3ZtH=HQ>#KA"2P s 84bYVLqfa^џ^W8xG:MCZ"U8͌9gRn1\.<> OOOl8N)%bƉt)^bd!xG ċ b?2Ӹpy=%G.UU},6m~/~ɤv o i{\@ /)di~؉2υfuKլY.ȑ0.3qpW-S[()Aj*te E3o-23֢"3crTQDQ)65cV+W.=(Y") Iec`Y`SD1 [IY^*#%ma-B2-JN:CdfV\.xkjNFm |H,S X5bg(]LU{pꅏS$-\X.dfe=ipJdeMXW ozڻ[i֊9yY1`\6s* %DL)v'v}E@|c%ٮ#kGnIHFѴ-Ma.ŢLE(}YE.;2i!#USQU?fKBl=9\aDH;e5\ ѡIf|L%VpK8"Bd\7nb%?82^zEAXCAChT-LL#%Sַ텛k01H@ݴI1IbNקƶIX@J[2F is5\JJMb)EWraP93O3A.ʈg9GX&R1P:Oݴ0 yb⛚B!i˞"ͪc q^1OlVk4<ږ_tYRȋכ5=ŭQ;֫ ݎ.pwc>ڊos|ZSOfͱ?[yofydZ6o}C`2/n/g9[~are8ZC0 L|-]noQB^'Yu+XkƒKb]Dİmy/sg7<

rsw/<<ӟ}>33PK_K_''E:nRJY]#C%}.(W噪)@[mT1v8 LJ\D1I :aWH@ w\{[tiLy`2ഢ8%&މ8.9b}qY @gt`LADsPUs!$ĝsYui alKv4]H E͆JԲ9Hy]ŐdBSCuhU!dB"p9pAIt]4e2 d8k0R*MbIiJPN^RXㄭUײbdnGF"ACPhʒQA.,:PJy]J65EPyx+&z!goW ZJW ϱ/vi_c4%t[Kخ0̘XLߋy4Eh`dr B)YQTr2t׎ I̫ FAnr 08yRy\ AԾ˦CKk>EBZN%GBIymW(QXx:IU;RH0M!.QTE U)ŀQ$Trx)WW;ȖYbpI75a(zy2)rpBXN&In$_FEI qx`ЗʂrjKնR@A%|U)\N'rR0DӬ^yUa^fHG*u4]#82!/H)8`T2E}?, 7;r.٦?4br~)m\;^??7̧HYR cڽMkt\N.ZH?~2Ծb'yOǁ2ckp䛯o>0x>|Ǐ?xAưycFllo{oHF( 0O74]37|<Mm;R?=;~_ca:Q9J;dx0-at<ɀsHnNR4q@[qSm278gx!'4U?nZvox#Fk aBN-e$3ӄPo;N/'ơ'[g9cY.Sw誡Dk*Rq.52"; ӈ]dfIB^Sn VTdzO IEP2aj8d'mw RZ?ң5qpaqMŒ(EgZ)v ǧϐFdENEKJ38WA.c*ϴaFiEI&\3҉hӡT`:<@Qkt{7H9R 6ӭEFe[XFɵkGətCʄq.L{K[43yZHQ+M[,*FtF儷E[ꦑmî iHYk) "ZDYK2 ,=&epm1@rXeiw=]0uE31J;0(qMq"T,x"`.2T5J$ [޿ِK@4$=a]Qr LN(S/[SI|ԝlrJhSatY(JrEKZ+4EWΓH*gk4)}}ȅK)!ȗ3Vg +RCd8& 8[8O1MEZ"Y%TpuR| Xr6B;?sk:50m;0,3wlnoiHnv79=o#8}㷿>'tKx[uP`K`Yďr"ӧ!7[>Y8G+~GV oYp8*|{nv;qD9i=_߽aG^{ơBUS?pGO4 ̮ni7wXY2#[ۢ* {J <Ttsa۲}??7_3o_ۮ_b7_q9w Viq:\.<<>r8Kh|r9/qG!9cxc8O7 h.CO-!g!ȗ +&WVw<8koi5ap7MO{RXDM0|Rr 7IUagL 9$ E$Abu)9-9*(`Vgb<0?buC^&"Ӛ3JՎ\y~)'d$3*9Sw-w~u;)@\&:Dt^z%D6Bi)anY6ÉU݂2LL]U55BJZLq՚pF,KRm CVb)LWut "jRR2Ngںu;~a^EIQ,Jk!Q!(Y,U$vhg+5dE"ł ׮4VlD bT"!ev#q5W^.MNvXcb o5nd] |9c 0$ʌl.I> cST՚q jLVZ҅n!%kdn> gK3FtLS1]^xA;mRNqĹqVv0d L2 g1(cI lӒƳЀS8r;!,%ITb8uf?,60UYL[s&mkR2 NCcj{kَf?>dYo^4]k+h4aXu*:Y{A~s~3͊9'6݆9/4o>]݇_5mX. 9t.4_f>==cz8h` %̑i(ZYb^^g,VlV[:7r:sٿGpR|{^_?03盟8DSߗQ"Ԓ./U6N~EU5\HLUՄRIP`I()38j+!,4;r7-s %ΤYo(D K. %e(贒Hʲ̠͙(Rɗ4bs{K0~>v8XW%35WzPk!;yMMm:QOUH8J(*LJb?b 3D12Z_1#D2Y5`" TD3O3h0$"Z9sTC" V#RA.[QK]# d:[U Zyj[\„sPH躡j*Rm@kKə9H= &pU1ȟ9 _q+ ΣK!8''2U3R(E !SWӳ߮HI /Ⱥe*jA`<\u(_є8tE`+9ܚu\ )kЩ0^JG"FcE>Åfɲ#`Y0A;ͼHO[!(o@R[who ]CQ传 t`ľo[(F$4aAYKI Fq4(:R5kB?2@]ՔHE(!S+ݎxpUt(EJ _U,j^ݰ eZ]ΌܡlsBz22O*0Ք80xUK!%r*}C.94s YNk\92θn|9ѿ6deJ* 1mU\҂V iyErǕGqek ғ@Ud^>}aW4NLBcđt(u02#*Y(acHa&uD\&jHALJ┍m":,K3YUT!őTD2r"4ֱH)V|Pۊq w9V -JuDk0MM.yQ dgpQJR[()JLJ;Ʊ'gG^WTZQG*ș4J&,rмڂ[1xOPm6ؖ|at/JQqC_ kJ+gc+wxh(뭼Dx\ @Y%DIHQr?-r92q\:ܺA[$B1)e@S=0iB='y`Л)(^mJ1'j7-1/W*X c?$J[E onLc i*44-n6Jx?Շmք۷ئ_rd×W,a wk^mVD"p<5"0b|uLEif%M-5&[Ⱥ0@gk\zoYH<<L۬8wak.9*2;F{2,˂mvSi㞿ȼ~{onLӭm:>>ԫdSǘ0s|zVO?~naY u0g3-Uc=1l6[֜V݊3(I:Gw|HLl}+H"_}w?? ̨%anhe$kV { g,j%a*NgoaGLɤq_5%.p$6 Cb,[UwV8)\ZqL\`| 2.EB.pht̄뚒!Jl9Y횪Ya5g+8SuufF\2j#TXf7 uJ ̸^ u]BDkG*p."pArѴa *L4/2n!L*ty!E]sjJL2Ϩ% ݴqbUւǺ۠PRFV y^0kcyO̶%PFズcSw01 {XYԞ{0⭛V9ZHK Qȅ )D~I$aؔ2TU|F/6|A-ۚ8| ˌ"ae 3x91.NMt<_ڮ9j;=WߓWo^3$`o_97^z54_mJ]U Y{YmW҅gpa0!38Ioh"csGVmHbo;Ѽz U~2 w~7_t]0ׯÏ]ctp=g_qz>~=<>И ^||ҖnO٬9=5-C\8N @0n#c#zTeX ݝgج̅noj6\fKNysuC[@ y|>z\ =1#o޼8!ɟw-؏\ !|xA5OKY. ?a7$ ,7]uxeF!EH)QDZ"^p+5LL F~հA6v"dCF,cRbTEp`cOrt I+mkV`ȱ0_΄*L-0Pgt3r(ȺDg_3-WEڵ pBеH$ˡ7&n3j[ҷ" ζXqxk4N*CXf$cɋTO4uĆlEnc1B΁\ c.X)HZ{ۂ!8RXAZ @A_]zKHu58uŴ$6(X]*ʪ[coM_U( U2>y% -C&-*%r@D^zY(~?RUUC pX0^\K gBŀ" =V b(+vqdDYڿ&LW) Lz0PMQa"c4y0M-xՂ֊<03ZeJWAalA04mG!Ws yQAJ1@VI 7^E9t⬸B% )N˨[xB 3yD}P$8d#t.*ю%Gs ,= 0mՆid49/8 $=*3NLkKé k E+P\^s2(!B+re쩭'f|+eJX)|Dݮ)^vB{Jqt,ȓ\S$rsYRrA3ЦnR5]';&1'N ۷b3^;@1Lj2Lc4E.U#ϑ4aʳ䅿ڣAANEU5-;V0ק#`j\rϟ?w} |Ivrf{e\Ll~W+iFgEbbմ< Gj-% g.U5ʫx:lɕ6fW_Ѯ6^;.o~î:>Z"ekO/ϼ6+~GM' tWL$Ώϼg'UJ2H1b7|Dƙoǻw, o]?gzLk寿!fxtほGr)\`Z%UlN{T@9y9(ES4MdYueU^^ J./~d2ynG)堪MEԉSLrp׺ULRJKI E2Fb)KC 9T`|KI`,^gBi J$xТxH۬X‚z BV*?YLaa&jWL\Fꦢho(SJ5<83*K)l? 8npu*Bҕ!` RQm䄖,Vd{JNQn%ně(1a*$[Ie-T?FsxC_)?3]4Mo:B!U[(guȡ4en@\R# W$Rٚ9I8B9g3aqu]a*DⴠT!CcܕBkV0ߨTU~>5x2Nk1WJ.=Y2JNTtˇ1E:LZYb ,77%g4)7EV( Q+E^R ĈoZ#LӮm'BGnϣvK. 3|[#ht`K"L,XYy(nd 2)CS("NydfobNJ*#1%[72yr躣5S[4L\גS_"ϐDi]%rTp0bbЦz \D ƚoMX(UGΑ J9"9cc8y?氀 HX 1g5RK\v嶹tFcpRF)qg|+-kJF)dQ5+|9BRlN n 4(!\ *ԗ<G- nPgA5L[Y=ӏob1\bh_{=[nZfx̐&8 eĂM.cDl-`mڭ!,e剗iNϬ~?²V?D1C!Qukƒ+>~۷o=#Ӊպcᵣ>g a"_ l?84v~x|fz^?ܑIoLa^QO'1&p< Ӊ_c\2q.<|:˯O(!&>=0aLMT)N iɴqib&^9nWin]~ӬW,D^_{~7vxs\x9ݱt~/oB9i̬[ 2چ:0 v]|XI:m/-zlZ./B V['|UsLYuخ7?7~;}ߐCy@g P| ȃ6\q]w6[u$EZjz6,SOI ,(WQgyfd43~ 慐39ev ))LNЭe߱8'S0,7['4XlȄnHA, cdoV5!gϴU K͸Ę*3]Nd%EZj,L#a0j%XUPZ +.#i|w'<Ю_Bn)W@FW y+%]z3_jub!r<X5+Jr˅\g.IZ $.8O"Q&c@uf΄y Yh}fE*մyb,-@U\Ȅ~w)EI2^73`Ra)cïXBlQŒN.)vۓKqU+N"=-U(@k$&`,Zx=Pkh]C4yˡDkց0(TAfRQ4M}+Y[udN5tQb54`Q(UTam47xgvZҸMpy&/ ,'9i D !Ƅd KjVh@E'r1F-h'*T%~ J$ɢ#MsTظv{x e3FGw~9rA"FЯjON+qRO7ҍG)͔grޡw뇯45wxdÙ8|@]q￧jVՊ1LԛʻoxPMݚ fn mhG #QWSV~G^Jӂ (6+{p#J)FJQ 38u6^oJ-qˠg1%e0eoD8P5ւMVvªox2<GW77R0_ҴhkH1UM( HQށyqJV[L@” "ߺE&y Ja7 18xƑƙy,3= 3|C;Z__^ÙWqfŸL~zjpw_{v[xE.2NwH!%vw5S (%4 -YƁͪc-Ñe~GͫV\.tɟwhجפ%PlfՖUǑKF^fx~coSWoD+a>=ެK{~7|{8 Lθ7;4[y"3o߽<*q`bB&|/w?r'~;{o7r૖xݾ")C ~ϴ8YGYFl-u[jx+o1, HBچ9./ʣhjT&6502ZӕGE) Y1Gǐo)Õ\Fl+W#F*^{ڻ*M⌳­<iƀ2+zO Go?B Fʶhy?|f)cfNp_"\0(VzDf)a2e* /T6"729fB1Ns=F,B 51"Ӷk4QXN [1MW,f$:IV)%*Ta 1, 1⼁e!1#Ɖn (9%X28D9尐c7k 2IۛBDsb,֚y)9?4tTb  &՚ qְݬ9%n{v0z8ox=xk|xx\J+wONv5_ G?O#Ӆ=\dݒb[ .$^tk,O/Ē ̖̄rfxkx|92O &mӏ(q_{?ݞVN/=ͫW<>S59gغ'6:d2~ 8Rb/d1tw;N#v('T;Ӏӎq=oQ1C/ën1d! 3q LQW,2F6=8b*nrxf߱٭NM47ٵ4KӴϱ-##RP*DP+@*$q\n #T j # q 5Y-oG\ޘܴ}3k~$Hw6+^^xӰl_n#!&6XT4?Y=Þ2EVM0O4wN,a̷Č8브#$mi )py ZӀ1rE+o~3S%F~a%?S _'͋ݮlKِGlѴ%AM3~o7 j a8Z1: 0aUf'Wg533M@UPQhzKmUT(CXF LXa,Z+ȥbwC*,9`|RϏ *Cjoej-)^hrZ1M Kt+,+eQ9RgbyH^=g )V]Jc, PPK& tH9b# ]k$9[YbMAzD8Bә0{PPrxY+ klLfΠUkb;B F&EjBӅZ& :Ō$)4㜡R01(*XebB n a{K6%* a<`}V=!g.0M(`p8'.4B "]#ϫA}-&e^}+HWVk>1b94tx´=Mxm=m 3q_T]̮_rvv<BN -8ox6bmd^~0Ml\7?߲my||bt:b/7~5q/~r> JŒqס@2 ׁLJÍI^1st`ap?`au"i副;BNLPns8IBxy?}Ezzek[bμO|woWJ#8(9]oLt>sVp#ΑxaR"?|$Dn.ý/ O 8Gf G$doe 5YW͑thJB- _"7j~Ŕ8݁QX g h񉦱,eڑ6 W;R ӕv_!f\%Ɗ/BǪtH={7Mūa!ʕaܾA't&)aЩ ]1xv^m45W!vЖ0n˶yJrywVg4.{m_iC5ba!W^kH] j8Q!L 㤠L]PU.2Da"6gB#[clV+Fa[K:ԒciPU\Ÿ=7qvO'kJ֣Pۙf_rxoQh-sgC[AaB)iP-INr86(/Ne(v̷3]`x{6 yP6ې+1WAdsexqd ax]p\%+F+\:y?[ngjX+rHmgzc* oy7?<ZW~[b yqej~O;t4vWr|׹W|ພ@dh !(98=Ǘ=ZWN&U3qxp֐s!#Lߡa{*p8y5[Ne3麖By1~k[RLybtL(y}vI˽"v٠1eGNח=v%{i%\n7qvH)w.oF9Ja^K_ZKA,K k-f \ ! rY3{.aMAa 7VÄb O9Ud!U y{E(qf=^nx୐Fs"t7BZJFeSIb!|`hȪ6ަƸ#5 !o0v)Y.f1*va\t ||4 4bۊ&D]'Rk 6D|BY(9}bH,7=qvZbXfk 5J.޷hUC4k<Ή}^q(v"5@̓l\P(s1(+dH3"mer't> AH&~IIYbܾ W9Ah[oz8l3˶G)p^,K(%_|xt-__-3j~8nvA ͷy3UOW_q܏|y9޿fSoؽr8\X8x?X-98kI)q]hۆ/3R8N78aӌwi8,8 83vr&#o~%qDY4ѻ!΄rćnz1E/7Wo<(."/C\:Cs{qT]&-7ЮNOroZƜŪ 1F9qJ,RjY-15nh;blm&JɓoW+5 L7rklLǛP]9U eK)+Q+[тmK2}ӊ/#ehB-RN#R;ؘ0da$,⚁Q vAzhu2e7J cYu 0D ӶCoۍ ήHe[G_(݃t)i93|6-m0ň=NYiӌ[T혣y!CƠڡIxUZ:j$ uP̞ ]TDlIX@N9OV;[2\ۡ+"aJaܒ,ܪp Œiz6(DL^CKH,n0 xq)귴؟cĹR=F5-YR+yxf\"7aHWrB QzU%92ds2UIVEEu' S&qմ?$Yp1"jDЦ 3&VUftxLI"^U.`p˷=b+ r(*\$"nM mf_ЯVbn`okqohhJՔ.sMK'bN4ixݐE50A[Ҋl&ke{2cF`L{x60b"i5<6 |Jyݽ&dj)JwT@C˭|C#YWt!Zl"2J҈=ɯd**6Z e0io5O(bs%79D J/V%%rTIzPmKixXQ$ebZq?ATtLt(Y5\Oi]<)l2zMXxzxE!B h cswzY*$d;EMh)vx&W>#8mC'jʘrKunA_+L#"il#ah0V.I6E1Ѡ].y\^+ 5%^$pIv20+hIDD+T9=Zqo'iZr kqE4(TR[W 8'GZf._PCNedo8f\@ke&0'6R6_oaR!q>u8 4ˎy)/ UWJS`Z2Ϥ?: 8c<֯W{6ae:^6͎?}Ʋ{e4pMPc|8\>xX.lj_~f8qa˗'1?5u9|/\/Gv(pУP4|3A,V7_IJy6u /~z#kj4\I}Fo#z$jpv~//olƒ7OǣlM 4 92}9Pke, tbc^3^4s>iUO7?g\~̯oй}Vr B}-0M#|xOLy雞/?g fMHQRC͚Ӟnp>݇/$9EۍFtqgrԐXGFszgәR9}|[8ӛ!L-)2O#)GBufV idYU-X[_'` ?zūov =`HJ<}z_9Ƭj#4nZr8sURt5ݫ7}qwZ+y麖Z+K۟o^2'Jgֳ*snC 3yfpd>DSrծrZ68 5D,|T,5ZuԢQ% VJJKpD`Xk&],TBNTil0Y א/N]&rqpj`5"8_}9KE9veS)3:'j1ha;о LZ/bq۵C7)j n/2)a&, j6h-ЈZ j-*hi@Wix0 L5B)X):Bd2nejYO',[|bY`/^04N>7F%),q'LufY$'uVVƊ]BJ7RE8!Պ69J,*J1L,<*8Rrµ^:OsiVMKʉ9L./ 9BzMj d2qLQĸbcЮt:A \Oa4-ѭC[EU5%%lc*Z$i%s`>*ML6Zi)P&(~"Xጵ\teiZrE=oP7 %'rh-Q1i\'t2„yE55ӉVPS BAKrIC)gx޶XZ䐶maF-Αf xn{RX@Jҥ\ʘ|<єB'#B1.P*/GE29fP < "gUV!8kP:1=~i`}%EdAc* tB Vl-:ʅ0J~sB W"KpH"[m-U#*G]1G!Ozy&U#Cpm2xپ~f#(yۭ?g<8 6k1gwt8c4Ci"7yzk (CipVQL! M6g:}w?{_77dw'MH?w|r+8隷_^7|hؙg_&|D7n9HwӁf~*o޼bݚ#Nֻ-?~Dx5\])<=<+ht-әYBMGonE|߭h'sc8޼Td ٮ9FŪmYW\o8~-9%i$tʗ\{J(%O,P3 2t"zwC.0 goDZoF"-Ma^F0VVUi'Hk2),ͬ4jWp@SX@=0Q#VgWhՈ,%L|h&LWDlVӞŋ,DRaY*q-^i /S']cpM&keu'yEW !q[-/4([rtRqZ9'V+ጫz 1e%ʿw)'0_䈊Fmaq@^6##ˀQ4BP8\8O hP5PL\ߐb&#ƈyI5R⛆[\(q [V8IUoVa(tJ*LƉ@Vٗ|$]m%eX29f84+۴-%K[+NLRZhMRlJY*PJkĂ^KhMg|]nPH ɗE1yƻ쮝e)al%=GH֊]3Y{lHI5 rFkP]idI m5*1(ztX+z՛JNBfm;!e⣙T22bGiX M)T VikȡpVEַȉw!p2biXR cpp59Nʢа4Jfh.Xo*Tf{&<4$)gF:XBQ+[٬bLxTmsb!՚0n[6||vaϪixs$ 1kT5o<βxO^y³g̛y>RΘ0]i1fgqPNǏ\o6t<|!&/sge0gVkqͭc 8pbl ,®(Kb́@)EZ_&΂E ( )FR),BM_S$H r)ג)HRL]o躕QV,9`Ue9r,ܨ3Kw2/8+\D0LRz-) eGef4FSod3&,B蚦L^I9r6lB_\ʶ^HUJ y%5jA7+q324M RtGN ׭˜")Buo)-Tm j!Q%biDGaLuNY6B 9Ny&)IRTב~]/vs@iװyZh1N{1;Fiv+ m4qVT5eUdSzT 5%Y5hkm{j(kD{\'֒e,F P\b7,ryd/Sڠ1Q!G9Pfݭ(%ؚ@aH)`\2N^)ԸkFa1:1.= PAעԌVwTUPNkQޡv[FTBZj.FbXVZThk-c 5h#tJ*8ZdHr!,Q(2$R E,G28tۭbj0X4 (˂ݯdX*՘'gnE&QBZ;͗ ˌ2ti}KDŽEƉj FWEu2QT [v8rN=j{J˺#gkr8Y X rl#eB""f)0[w2.!^6Yhѯ1vyGv/v~cnÉsv~c΅i<1~˯yz:dy,u7=wwOg 3K|]˙>K1:%zT'8e:+RŽ=Ip%40FJiB)8vfuKV UFm;)9ZgiV JSXvCi/j)5aD^z)H,bCV큦^ }% z92pC~-;1KQKKHl(USbhuI(bn6ti]GIJ2ElKU kVTRdgR `L.J|E2WSs׷dˆ0EliTK*VJcX)Hu[1Ge_6=w&Ӏke/s1hYBW9)1 ijImeɤP K^/ӒfKLxߓ\jXYk4]FN6lPK ԷBXe)T$aOopF_AruiKZbyP H4J 5di2E.f&B:MrJI`wUEH\f6UȰp4Y慦ЍGka5Y%t14Ϙ {QZĂwШ|GY>Ss ^UrqQ$A urriBҘtx@Zm!rE6PS'J*i$PŒB5TyBL8= z_KDZ R[)b<ѴRhv! hw4]C-L%%B<̕yYx'KdUcBum5)w,!`#Gsss0M\i0 ]tw"/3q<ʆga2Nnb|{hw|5G|8G_櫗'@g[i8%T@8/߳ +la#o~͗2p ,#q䧿<ʰGkN=UK>aA;˰?ޮyNth͚GnVB;>> ҄Li^oy:y^8'mGP3qV!'~zH߭X8sn(5y1 ~-=f" j^^|*_Gi!rs4,Éw_H_4~& Ϟr'0sh`Wj]p&Q#QeYоEqJj ,0ЬzejyMhEKjEԆ֯8F+vԚHmKjǸj3͕'tE:;eF䀨JF摮T#IPb7OnQa#\Ehm#)-9D iqq8]B9&k%kLźV1(JXV GVGԗ6D*W;4\* ۾䄶R2m1&JT])Zak~52*jCvS36%)%jC,3Ṽdsd2M$e #aeFEYFJʴH1bY!$0`6]QB19p]$.3%mL3M+ 5%p*M6(A!.K9c=Z9`*1,L੍uTaF+U%P!Gְ%CQn*nC%3{UqV򲵱(Bz<6r8bwI~Tjʄ[ΜiԘHd :yYTAYz@˕qE}Gt Ċl-P4)C X{\P\Hwܮ $VdE6,32*Wf`}Ϻ RAwP "dDN A<(+)j;ʻ9eN)B)r)*"%$A[Oʕ|ْ=vKٽjLrAYLi[ t٘.JalohV=V.){V7XoVԬpmqݻƙ4G}ar[C`٠a> =w} GvW;9N\%/<{wK8,L1pq8 z8OLD߼33|߲?xw{yħ{^<Ŋ݈R0&t)џ?U*?{ <Px3>>^l^>cw~ymZh8O1\ Gj0O8N#MQzI"Z1Γțt>s9yʪIYN#ݎ)?~vM5UR[Iݳ+~g5\?rwmN3:ar)gF>g q0͔%pܓDjO@!Z|B֠s٬Ng]ǫ}#iZr׆w*<{۶ ӑo~ 7o^r9>~wiaշ5v/e\_r%4%>}q@ڢLtWsy)^X} 0ѶjÈm/V\kYR6 k5L*z5)G4Rݡ#Ƣ:/:YraVc&zy1V渐t´[1ZєqU/6\XB5b^%Rd"YZ(9Ok4if pwKM#&4b\#PNU"%GtS6<*F$j dX2T#" (mC QldM4d0XT{[bLӈn\[GUJ,%%k 5⽔4~EL {]IElƂLÄJ"*qF)tFdHtT)5ݫļJPMa]'6tU83 i3F+ھ' HrpmỎ.z{iu䴰(c֓3)Yf-,s 8®q_Q*BR)HQbMR)4m(\hJ(@eHK'Fb& Y%'r۲ZXR4Oax^X$iEiĵrý1Y. V21jHTqMDa9Ŵ& 0c|59eqKT' #)5 FkavJQ )иݭzLp@Qeh5䅔+%iR4^US"Qa hg/ߣ.3qJhU lpΓwIhZ/ha<[R4 <rqm<eb={JKW!83[a}+8wU0QIb@);j丐jK\ϲ,rkZ&RXY#|D{sK#}QBKyU*Ę2\ѕZ"CSr&ʉJC=Lʉe2XD\"/_0in07ھ'kHKi,j2Ӟ})ӃœTX'|䌑E_*rkEHyAwF|OǡKd#Y5f](9. t qN\P̟z:T*(u:Bi6 WR\ʠb [q|c>Rj\8O?|d=O3M1L31OOE'_=oй?$ [{KvѸ2yA5$U1=#@hm0ZJVib-<lӈY s+'h5L\)TuTk);I&r2jqmKV3q8#]C^"*l8BNtVkȩ(](0<>4!+C* у) в',gj((%1 GA#U9Hi r3΀,uj%̠\k7P)p]24r<>\Hw;m EO:%^5Ԫn"_>w<9y/xć7[lT?yzsG=?K1lO|5WR?^g?ǧn7*zEfJ<~抇 OIb{Zuܿ}Oߵvz}~Kjdklpꂔmv|̉O5 ̗?)~諚4sӟ7oHtũdb[_o~`~]8?pf%9%a/>'ϟωW?|]`y}~ĜNWKvp;\]KTkWO1QfJq:uMݬZ*xyiWSk4y8⧙nGӋ@HgRXkh5Rʁ0 k4a$%12Tp$l82DtL;w̴{r)+ a(ueẎqE39M' |GtWNgCȼ{$-~8R/kӴ=TSȷMoO Ca [Ҙ2̅uHͫo}޾#|)5>=/??oc\x“'O(>pPUzxd\QFǒ1sdq{~ßFB sՒD!]$%ٟ0Z!siG>V]1L#|oIzTʐHLW/?cЙon~x^/1/d)_e\_ 6~f))b<ipذ{sl?-ՊsHS;x왆LE-Lxd{wzq|f;utLt1կWklP?t{G+G dъؿK8Y?eߡAU$Ϗ&f1چ錫zm!ePE {)&jE39/DTRKq^p?=$#[?i:) arP(B[E)u-QgJ'iDgMշJ0ʏ sUݡkr(uLMH ʉ#C CL)_\l˂^4ڡZ*+IQqsTEWw`+\Ubb:+ӁP ko]}k5,u=)=i &cn(+$*x S{:-S0>a jbNZrJyİm+.JJ)(撵dcʴ++8TMKYak[af}o" M0IUB0m25ɟ%PKg-D>2$-\ "/J2讲RgV$Ruq1G*'-Ú*bD֔왇=؂ XHq#bKHOV`[ tA58 U )̨Fp)fl uKJXc$jc4KqL hO;G1B(e~fquPRFPkM*BM*$<2M#]ې1s@q8GݒrYg۸#d03L~8*gJVy5-9q] Z.YZ˿3j; A!dc-&#A}#[K]aJ<i^'vcq&rCUDdb~u'ySA-,jr4讍RZ1ԋ3Gr)8'%鄆-cfJB+D1E4snQMɓ Upg`]H%́OWl;t%N|_ %>7t*N&V~ORY,:^󚛛qq$MjU%}ø.qɲANӆ|5DImۖipjv#tc5?{#yyxU ~Ǐ{=UǙG7̧ ?n=&a<1̪Y\1~ȣǷyi^7趧q Fqp`hMAs#9te8wb ӈREZs7^=b8>pgswY-:xfqex#޾h ‹%36n}6'G _xx'|G/_)n^ul>N|'{{'/*T^LtgD#<n`>KKQ3n,neS-)}pDws#rqm#RЮuB^U-_rqI?KI#я-Y4+;x10#L*53+4P+ )Mj< (TyK];42Ł8lvjѢpAiݡ+c*P"uMȑգ R?rd:I)Pv7֐ )ˤiZT\ R&_dǦD)ZڦjA_n $Eɶ%$ 2CxOx,#%AK@?GME~qiaB1"_:U j1%P]՘bO :dnPQ9+r 1LQJA] FiÙhW8ZGcME.ĩ4%L1.M1ZbJok#$}H91zOSw"],Pl%E璤ZZ)*~rR9&x"RĵK4"ګ42OTTfRB5CKLR)t@7aj1SxiCյyP `r[>Ԇ#pivU 1+LUE5#Z #~Pb22kA"4L-7F<꺖KqZ}L9!e5(i#) G$FUciC #EErw*+%nEWUa2#DQzX-28c.r4 i!{"qӘ* aF2 񕸺"19eA[` ?/nW\cµK$ާ)FAΤJ.``lzR(P!ΌOSS_bcwU֑ P晢5N;T nB#RH3 @P)e@׶y&BۊhLVd']^8XSC&LLH35ZWVhc8wEQDٚq$ LC%1U0'e~O[UKtP` rzyϐiT \6ɓ.,)h|2k>0 '5j 4q:/h]MAo1O`ܣII 8uΗA JS-5$:GN#~8㽧jDS߿']בtߺE=sJeag3}`ffϬ7]4 ԵD۱oY=xNh8w(0v/+>}d0Qun ~~fs:sZƲ= 㛷w5߼ɚݛq>s(e7'2IGԲ*#~{O:VOxO>V-W c3}\ZۆfËg/*#*e!E\_3,&)J2߼e\RYǸ?˞2θb8.[y'|9<_pwړcA78KaaCfêjx 5UaGeiSJOz=X6K<33c^~M zM]6AjēO5iۊTkV ʊyל7g?%ۿ>Lnjv W߼f1&9Gƺop扇gl4>|!zX-_%o_g0Oo9j״m|:-n-ͦ%>]F0F3J+b$kw9xbiR0Y\=AejZwK4ZÎJ* KY'B )HqӑGCoW8q B,gtUS_]Ù<L2E*/ABgB39Gl#8t5a:c##9ۢlԔF2T7D,h-_6 JAխ968%QIʅ {uuaBW(3VrU0*5lG+vn B kLt0QCWOLB%k'g=_RpAaH tVʒT5qhQE|;%fΊY!["\ :GL1d1%6YY T%4] 8q@OL5Y r ^#1SqQ=jAN'+Jk3^0#j}!hYV1QsI"B(P.,Ň+_˧$*W(aKQ^0l;rHL:*0J9ִhৄ3 dG\ 0Og51)>'eTiE^ڡtM}%XcIIpZ:I K 81NW ?K&VuEIc|N:e%l+JR8NJ.`iZS-;M/ír54-rSc{1<|B9gO)lTE&nITBq5`fN0,XecPq8S{~wG5i&F6~ӗl A;gq0RY4[$I"!y%Ռ͞~uۿbWVihWc^X5<|gv@pYrBg؟4uM]L#]۱{U1#6,K|P9sFi9upb`g>3wÙϞJj8|O'>a fjO3p"ϑ~ݻ7UrJ$sI\ Ɣg}syggȓ< 5G>l3 xs3+O~55;'٣wOo;lbۆ%@JjuΘ%V59L}Lj5s tMM3i,czEi_b fa#&kіqYII9H3Ās-J˛>_HHiO[꺇L0GV>P-zp&AMɉT Jg^u0m|8Q9DK"M#̉ fu 1&Uq"1T#$11'׷L#9M4}9y,rp:Y^]1 #IM]ȮGYG LbL.|לHI)lI0P̮Sd>`aiЅlCv\jzLUVkna8Æ8䋫]8K.CW1:Chec:4S]i'iD Jq)E.6m,!A@XK53v*SLXʴGWI,ae0JS&h0 Di?TB\քyT9)Eτ H|ȶ-鲙J1J!չ co_˗}xډ0T̼C^/TT\"u?D*1ơH QaYY#'LҤ<IEGuXK D7ExiC$ůndd%9s?Ex=u"QWJSA[T}'/RBA $h$hMB*Rк`51PV Y":L%fUgJJѪ(F$(g1#yyٚײ. EρEO)Ȧd\%f\4US_"pD4%'N$r ^1S 8,"qby[I9aMFSحueӪ!jA9MGm*4  :[VI^.!JaH:HuW(6+KIhuGL˳"RS)@`l.6#Vzed pPS+Vݴ)8g G%vb<dkXUrPH'Ck6q(Y&)6}jSœtd0WW0(H,q,% nyǕy[5!P*I:I) Aɪ\$ If/"Y {=[$f9QN#g93N#Jitɲ+TїΖ#D k=UΠV\99ܟ/:!AT9 PtBW5I>0غP/L4m+4I'#?iG!BX]O?tgeѺPi"Ze+N._D̥g?k>-[ U֦͐QGy%#P/Q!fO`ٚ2'bijL z,yiVa§@AG^3]"Q*EC۵)2o m"] "zO4{#Þ&ɋ[?hkqxt{1*J:vqI0,OٓǼyH>f' 2 yRpGS<}R4V_>nڕl6Kt%Uۓ, t[3f{dO?e8%q%gJєȣ/?ev߿GN7lׯ9 '}ƶh1ew|㧜Mȇ׫/_;y{|h)\u,7l?{V/PnU$I!vdؐ!@xg <0xbj,D7EM_'dɗ6gQRD=oiH1`l5IXYzF(Mavh )JA.Ub}iY[|.Hs/jHd: e%["ϑ`@@z$1e@(EyX5Y? a D (A/U(Ɖb )ih,KTitU7X q層uӱ̑$"M8A|8Y֡'DYRr+39kJbV)ɖD)*~v\ ~֚0dcExvHDKɾ:KF5||zQ$ky ;e21`9LILIHukvk^wb;Ԑrf{i\(Ap층 FD\ɻyI)mݣ`L0]o/2\_]s:t:Zi~O U,1mD1Zu՚qXaNzeYmx^XN+۱? ~pdz-i'._[?N|#$w4Tێ_ wOϿos,O>H %Bߦ;Y4k՚ݎ+튻wdv< $r0 !Nm-a^^F[Gߏ\_p<x%%%裗|g|ۦj4+\lӂٴH?O% %,%hwSt:b 3݁ZLS?쨛4,w{֞idX&y2"KLEz]JaF; ht s(Hsqvu4Â:̷+buVbJEπJ+ad#v1E݁k{k礯2z)H׬dTݰp%A]Kߣ s!C[ɥ$FhZ~d[3rHQ.ZJĉ4Ѯf8X&9adChv2#iD]˜&2YA0=siKRIaRT+| xKgڋ+~`b 4`9gT tY-~u vRwGǁi(cO[(G\a{Eb!LXk\j_yw'.kM˗;pcUK|ݞ_DvK^Ҭ-qb} at)oJ:7kN3=:Y[9O_u0ۋK^>7/_f)ItxAHai6W5GqfI1<<> s<Z(LSt *xgg)iYBc,abf s$inU͡ikq\\]ӵ 6+~OП^U\u) >QkjDUh+iOka!r@rBM({1U*u錞5(SIUFAOruezj( (*:L)<Wd3ne1R P90S5iH*Sζg V5]SR` 7/s{5%g*<юSX,YU-C?O?ń"hm%^zuKbgG1H#ۺqXW-Ϯx|w˳O_5N[Au4ר)O45ǧtۆc^nO=i1m/ycn-iH qY;va〩]9qoOҩ~2PY?bLL37w??x|e$jPiV 4S6^inMrIGkt:Ky tyw5uӊh}nOGJ):Џ%&\+HM[oǑ mjV wR1q< q)]m,dJ<c z^#cJTX=]|Z&qb9#U>wNbZ(K`"k6BSgʄq (2X*1L^am)iځ0gDeWGPJ!/4ywϓhۆL^T+b['eaIغE{TITM#S 'ֵ\zYT]B4Jh9L6)ZiRq@ώSO{nE,96ӄU["%+{yoo.p`\0 ٗ ac9w[R˄w+bQbYz'8a*`"GNq`sA:Ҍwpszn{%!ϲeڢEĭ8QǷ;B,175N+XYcr))]\F-ZVi%`pbLg@-KNB(+M:N."E 'h[[ IeP;|JQڈ[F\:w5O(Ri9{vO yӭPaG2{DbhGe%KxBR7 ^\M1s*0|qNN֫C߳Zi_"{5VWY_e!80rl<{Ҵ@N=  Kڴah2ǯ^kأT4γhꚛ@W7y*>%0V5}b\ Dnt(~˟q,Oow9|oh/n?닎<[>|xG/y_յ|׌;‡oσ@~{|dxq}o5O*mq ~xf[-84nũ?S?Y*vÄ\aU!ZYbz\]cdwUYu+~/q"Yit'D_8{&9ܘ $)愩kdS)buQ$+4Y1,^\PoiV51+mGJR2ɲMXud$]jGLu%6rb uR91.kŴɬ6BIADY!CjŦ@C.)8`zd&LߟXo6JzU2l4OgPV(d Eʙtȩڶ80z qIVYF+Lcrhej*XlJ3}pmKFL83KYB@_•/ [U4ܣBYj ,`,iEa|#Yˈkjw8ae YYv{Io2dUDU=)F(Xi(1P5B0QVVk |yؕs8r{Rت(2~j;ȁu ED*Fk)ড়]BŢQ@Fx$1V"9El)U9cA9)$bDk+9!M+yh)~"PJf0OpV^L;Tq(-[P8#N{TxAжfp%wl׬l|ՊQA^:'yhHVQ _5\8T7oHqPfR6xOL,XRfGJAlgnP"0H]kRXe,r%fuh(e™>M"L V;ƒEwl/7PiE.x>̧qb zYZ[',3hT.%kChM'E)[߼O>G V{vćPu*f<Ǚ 4 ?YבM5TZ!G}s%Ι vM15K,@iNS8MU4#a09Q *bр`}-Џ:l%}A{Øg4b8Zd 6R&RRJ9SKʺ&"俗I\Q<pfYjsuMYz_?oTkj"4m0 8 B8@5 ZAU$R_R ;j) E+8\t-E[:wCŌ.x6Jf+ F r"X= Ľ |v!l./Mkn?:߱YXbٮƁy^(L(Qhפ9a8dI2=v;aǓ5cbKI!p;jSNO{hafT*:^]^*Ce,-kh0$Kl,?gkV/>SLWoXϳ{Z:ag7l.|?U0G'=IWĒ8& й0GJ<}Cάғ{ lVRtb'J"4KܝqYAB+Y2BnJ1 l!9g\IC-9%y\! )EN0h7roZnl#f "H8tR(X2i"*4Su5DRB ?sj癦ݠVgT!ǀQ($~pZR6E#˗|y&B 8IȶxƓj Zh@,PU-R% k8.*ξ ԇeag"{GHE x՚q"I00=@XQh yG'CT#)G6i28*92p^(Wg{BrB4J%'5B֤qZ=DgN2(aY.1ޣڵ&y҈k:`q*\0d6ʳG@33%2jq[c (p#)"} *WUktkI(r,5E'݆a(4JzPQi ,oD\E9'V![#ﹿ '"〷㌸,jO.W8L00N3irn;CwwfݑlRw<><|/y=rqyvf >k[?9z!ͫkV81ܽۡ&gklW P,߾y/Qib j홆O?bqWa/%o2/=\_6u?h|ǟx<>a/^}$2`6N=77W\^_qOy=*nnxhq`^c9^|O%~O׶2 >ص#K<=HZkvCk-1&ty~oa=de[6]߿W!&tS(^|#lV\/Dm8<ڊv; N{!TZ?a_J(:R(.=P5iHQbr,hgŊQܵҌBSƠÑv$"O+_=O]Ss2c) T750Pq )ZM3Dʓ&cJ^FyRZhFHfaipYN{2(u(e9*9WaAwJi/ [O丰 sh*9SFW$06RY"0#jnI)3 =MY#Ud< FNoʯ(=UB%NJ?˚_U(cbamje(4MT޳b<9ZEb:#u1zvx:vձCix`@۴{r 'FWl 8{AP%3LZTNIȋW<=rЪhڎ߽DYnWnu_Ӻ aG$T%UH"@BBU]dF8i׬n\eu֜c =kj3o7h>t<}?;fKؿjb?b+A>1͞?*88x-O.Q-f]]ѿ'jN>{hooyvw\]RӁݎOW_s1'|xk)ww\\_'-<{<&C6ui`'&@]9ASn캖d 1+G)=؜{wX]؇:R#<}rE3#K;?~OͶ\ /~]jv5ח<O?F 9Gmڜ4%czyX7υI]Jur0x ڎ0lc5ՊevP"Ꜫq q lV;?Bkrhc>4v 9!/ c(i=D6?E7nMP9w4Wݖi SE7]eQlӋ5: aꏄ(ZOb5-/g0SNت--kX^9)2M'ںՒ)9aEj30ɸaOrp.sqCXj]l[r 9HR;*H9rgL.x//P]2ZQTULqoJ!Q%0JQ9ʁZmLJ(kꖫk鎦 b⥮QQ"{{ j1\NP9.yB{T)p]cl%nKTx{"j}!OMLiiOݴ\]Phsj|@Zz%]@KZfIGGB`ΈVZɅ[ٞ-. -ݓ$O,RF,)4vj](w&RX[cgًVog\ס^1g`TjAuJ|y8KBU'̃\SX5E%BjQŧlB"f~1`N3'-6wqOQJaBHޣ%k()1fUJPq㩫4OB&+wMkW0 %-t z(SwlPX*BvEAZLEA3̐t0tDuqĮveaL\t+K@խlsmubӌ39]Ֆ^vn'neEљwg;v[TӁ){%iGN喙6p`}vjZ0qN;aϗ&eAՇe޽{O4M5uUst cߣj=v#ǬM0?a؉J)=0ͯ0cG'^|wpdmg/}t9>l/v\=ixx;)$>G{w`Nz)يW߾0_?0鈟5?~0 q.x%7oR[C6 ggg<~dqpwx⣗p<)s~y*cb%YПV-Cl[ydhӧϹ`Zm7 jrtgMۑb: qU{:iǛ[B<'MLJ1h麎8Nԕ㣏^[Jl[˟pϟ׼/19o~'Tr{w+wX;>s~$gjlso%o_@?O~ šO>w e^姟mVO&NonEV 77x⚛br˿[喝[bӴjWPE)zLRCtq'nE!,k/*ZYJY~YcԆRJ O6V)*Ii3"rEeBΤIp=uF $4UIAxYѮxӉiܣ܊zU 9I6)qt/>##OIYP *Q|K_jhU1o֒!v+y+6-yf=FWRH5(*efJQn0 rq;R."%x{4k(u𧁔vR8?^KF@{SJQ'nYnnNn09BBtr5"hEJX4auG,I&)eP` =Z<(^$9CGT*K\'{400(ѤjBD%'(A2)ORoTw4+P28b|l3ˉb-&EJB JQbخ!T(VJ" J6&FLjAmK8) I],|PҧE4b¬:jU7?B8ˆG+1+m)UPʏpAWRr9Uu'igjt-q I( 2@u ]YNZ.ˡ([5PhgCUu qۻlr U0uWSH$;4d U3F5_Y+HW)Q(q셝OrY*>*,YQ+z dVɥPBBW#gJ`+U-IU.exQh;zG#m :QMGi骆l PT"D'QZF )ӈ5ԭ\v$ü"KLgXjѶUG||Z$O0À y@+W\Pj%/ FyjHBl,I|0`L)9G#s()2'vEvh;tݠt:=?x&T֭(t㨚~8_AKyݭg=u1Me2xPJqJ4\_^sbG3qx)Gjky%f1kEW>_0gȋ^bϟ?gN[yn_}ٝ-/wwfc߳Z|Knny?NvÇwi϶X4^` ϟw=q0N#޾tIc"H~z,d>%wq_~9{q&['$cOѝn1@X: +f2qN`$2=&HO][E{YXZ0CؽU)t2!{4`%uVj(ZQr"k^Z>Hgn`st3q  (N2Kii(P\~2t;H=#SU5ms!̂KʡL4r2Y2'͆3S6si U"m-v̔ jj$p0spƒiB_JYL0Ϯ!XU/G,Dkb8 :FDvnH܈h9p6AJn.P)eZ!>$ER%[Uy23m]s$.TZɋK+<}ܼ*RpC^2RTfR-re!;k&ND-}DsJpU)dM n803uZr" Nf8|Su+ !Ii(]+ B$MBҒ[q\kpF̹Bi9"ۏ$Rcl%UJ g.QdU}c5 -Lg UDNwz|#ކXRT 1*"/;f 1I:e%Lծ1R}NIhfH\z$aϞ% ۴L b Y.DJ䎪hQKJcÇ l䢪D JM9$1II6%[a6 2yWM.׮PƒdcBޡMƆ\`*|O GYlUf1P9㬃y&DCgH Dz0u$&JL ]׍|ƣLiMr<&P[l<ח7>?cx8s@5v ˧|xjղݬx􌛷1RۚrՋsoYq:/@[ś?%?yv ,~<8Kcˋ19~BFaFj{*c+GشD^qNԶ×&.=gPp8|8zr%u7_⥔߾zMZQU0]S;qfu@i<%y3bzhk]~#vϟw92ŧ/Y-iL/?~~uGմ4ۖ?VO6|Ua_o8 =RTrxGec/6 ''׸^H*$tȸvpC+tᜐ Nk2#qi[q-ӔεL)ɨQoAKik2|́)\\W1TM2-aM#e=U'#$q0 0 QA]R,(zrG۞Q%~(CϺ='DӌkT(&*:=|Y#4l)y0fJ=e {A5짓ht˜oI0[L1R4N@dAGnjrO jSOe:qΠTk;aTM8M#fȪY痸߽o~30Aů| 02woxV;aBe8ܼ'kg(9?9qƲ>[s|!p1V-0@. S y9Ǿg "VYNq=_%0psKݶ9[mXּպn*x)~m޾mZl[s-gח\؏=/^oo7P݇w?p,#Ϯ]mn THJ;L.xvE!xxDU=%r&2 o%>G}O-}ѳ>?Ô y~ۻ[ů11M ]9|ѕNm?-v2kt(z3 ˡ䰩k8b+38kx8xNXUPG$ƑEhedVY5;#AyJ1DPڐ e2 ~b~PQefRl6gP% aꊡ?Wخ閨Զ&<J RL%஖BYCڑLl-bv\,$J.B~AiSȸz(RzR⾪"S7@m$[ l$>e Z3>G,dIFaTBHuȭrDE/3]3D~lȖ,%km $S )*:5fݑq1VV;ReD3yd#X fP(1,{?Om⺕D n $V݅|>/?~Ϟ?jjRȬW=oK1خVcOe-g;Ym6cx"xD;+xyk[ֻ--jb?ii4V-#/sE㏯9ag_l_`hcwoK~oΟ]#00N-O-ɷ=s?t+2V0UMt݊#e4SkɰWi(2!̌G*?{FTJ9sҕ0J!%TFU1¥BԥH\%ʁ)bB"c-Qy HjR,@dx3rHjT]dR*⣗m-=q?PdnDf˸?R|dNr)SAK1kj$ #E'4z!,4LQV1ckAN$mк&R)h(5@&,rG!I$4]nA*FgiL Jca8IJ?3~q#O;N'=..Od]S8>fśSc K+6j+O%g,kPuMP'vU-1."W&*SQTILLH%ä_84S㈲`IjE jh8G eF yd #:ZC ~cBU5j]Cq"cO9;~ΩWHfO[UCgJ3,pZ6 cØigJ3M2Hjy*Gʬ>piΞѶ Y)-Fg*cnwΆ"v4(Dk>3tΉx:aڎqne,:{Hze'TLpFK5#1`jGwm'Ρby"8̇#rlήQEq{L($R9L DxO4̫۠;ξnBRqHEs߱޵i$zՒc!Kcdʙ{PUcEDA!]Jjn*e7XAĵΐ$[01RvmZ6I7kB.)4FE1@Q7PUEz95ԵAXm9SL * sOJ1cUK(-$(f$:By@L:?頻4aZ+/S2gv04-)b]= fÁv-5p@c'i"Lj[ږ5ݮ  , X2lP[<2zf6F.Qr+uf! Y.B1V lkTP)b>2cm+B,N[QӌO^ "p­09ljL۴`fNw4u[3Mw\HUM "kLs ̳K!x)fqx|D-W7]rޤG,={x'3s)ȩ2*vl6DjF76h'mZBk`X+=m㙴W $ p{}b8_~2OLU9 ZmYi<۶=]fFaGyf]w=q{x-ޭx`{Xsnȓ0w3wo"vtVD{%sgh+uS^?9+3ͅmj\[OxS|g 8ryqILc1톜7󂵆aX+0" |)]AS9L)||ryefVmf\v;tHe4\3{e KNv{ZT58nnEtׯy߳]mx68LRDX8B\^]SfmSshV+OnF 1d? k='-֖-/_\/x}e?ro{o_^}GTi߾,3jT"jHNn-\Jl7WLa EN*Dlݢ448uC\FRY[TҒ-(v#eY!D =ɉcHW +E7<0JctJzVXRaOĸ D3iqE?'cb∩;f2DeqƁb ʬ1cBP͆_[ҒP?n6|pww+ mM=H1R*eFxS>S@ʙ1̔ :A^>W^cVJľIh\F'xiadݭ8|+aݑ^Sm~[lcn7||#ĉ ~d\&J,̧a8%l[ghnnUO9Éx.6+bzqqs Bwa{粩 zu7_pՆ Wϟx445D(*mZQGqyq{83ņ@XaXH l*tk0^J:RAnqUx/<~ TaXIEe?r|x_?2,>{I(Ќ~\ωvwaxX~oYOy0sv|;YDкR2GY1aQ|C,*i5 )I>890["U^ ]EjtBŅ4\{32>P_>gY: J kO!tE2kixoXr;YKԞAJfd!,3uaW-Cdw_9?ML.c5ɶgfɅZ7DPG 9'|L*MbGrXߊ 銠IDZTmwvo@7h-o|Cs9W[H:Q c 0ʠ غ(M֊txG1[՚P Zȅ0/"! jw1LtXp{Ȕ/RD@9?ejN?bxxjB]44b4@ ,J[!`e'e{+jr^ZɆ"S^ґ?A`;Y bQZsrAg2`ߘ)K͊+/K}$ V+LZ+ȁ4!L7! W(/D0mFEKfghȥE\f=}M֚aO>Oo3 o^AyZQ5w8NV+N#1FsnaG; SfaG*먬%z>ZSV Ww\_^1ݪgt\=ZSTy9e<{JZsf_4pq}N(ws{yg?~_ru}۷ox ޲V|x@wq|| sXx=zE. FڪG|(r"tKͺ?q g?_@ߢ)BY"Bl RHh8™;_Db]'*7 TĢYLB1UpءuT$*qc1%CF)MgP@U5Xp8B,q qt5laxp@ejK6vCKMK8ReL0eZ@CP2,@pBQY}%01Sy)+tm@ָ a>\8R: PB𾑜o\ 1*zbI z\iW[yΊbP?ΣlQtM );As!9W`5aSIFt!wU ppm/KFRQhP5ФM9#55C y RhkPqjMe8IUYlWStrLy$C;(Ouq 6TM% x@=lq+VHIPi'HJ&¤(^ QN$0|&W!M-}%.DDB&.PL3nP%cHUe@e g,Xӊ$u"ƈJLD% Ij8g@'P8UsFdkTIrI MLET?J81hSQkL]LhJJqcuNSDC|PrfzR8I!b@VyexR¹/ͺ3(V,AUEsB]?yyʲ̄9Gq}}E<я/^0 =}Olj>gx\_O,Eǻ{$ Mןszs߾m"mSxx-?AkGp4]bQAT,Ép:uAHV˪ZJ&yUpa ^򶦫[4J7+E4 (+ќCIyo34&m0p.r[ux+8E6 D)]DwЮ!Y$F%ExK<&WF+yB^poDKވa9YX0%ؕmu&Aq2QYP$]dU)B SbP.1|MN8cOޢC*T:gj%XԴ7xZhY__#El%dv'800gݐ0GꪃPJI0J9+ĭ .D0!lya\}iJa"'2@ g LUWdʢi45-q=B[U<<>0NDžϯ=|i.:%F޼^S`]x8g/?,Ų̑_>gsݰ{~z+whmEe=^\[yMVP |W|͟SoW<|V<>Ƒxxx`Y{Y/xw_{-IA,uÛ׼x /_%OT35tb:?a:{yū?=;*x8{7״P;,iw '߼훷h#5x4cU}L|).Ez篸p:_ӄ5DE^τ4cMb OYa^L2o7ef\k9qx@9CmŰgb||/)0nj*le4P* ޷( Y"M{Xɧ֤4HU_2D]-I("RJ!ݚpU)|1V,wqqsM]mO'=j{rF9C"xơ+6s wDm*cOVI~_le FgD7)(ZkE2K99'隸4ʆjkO{K )tB~%`R;¡r XӈV3.q4=Vʣ+gV^+NYn⪚ ,Oc(c sWP. U4#f]m_\Y2)s:2%FѓPGcN10XJa ; p{o߿c[L1JbfC'_Ŝ3Ñے灧Ϟc:\^.<0UgO_77+-Ӽxqw<]V-_~9a߾rEtdyw|ņn__Mv40٫SqԌL$5ГɌL[>qGԙ?/ !w|ŏپ5na'g/^0 O9 #c?ş}&y<e:nO{n@- {ox%߿D"XLV֐"@]w <4WDf>"U^HLA"_(J"ptԞ8(Lrv$"*%Zxv86/RdTQm2EDeU! Gl XW\H*"SnTYCe=!!+[Wd&&W(2)#=]A boVdh+LeU-I|U+R D)L߮PF6nBPA ba `BQHa"Ī[Qw+)gOdS@#/G6/竳HP P µ(iT0V!E R*aOxkQ\dM'S*7hS(K$0J3#(Y %,Q)(y()jߋBkT)ar.yF3R)˂6 ο۔t 0Ma੗qUlI 3T ,Fe Q)%ǑƭVr #uTfbBhCSy,Slw b&PPr!pACIzڀ?t`i7, $$Ӓwrx!0bM^>w?b|jWL#ixc S/@:O [rZ(a9MP*VkqFaT,q8-yw>n, gbrQ$a^2N! ". 8QUhkzr\DgSPcMOUI~ǔ*E^FQ)a⟪rx ~:Kdpd|dHII:ئ5,Ud [ᚖ;BTIP㑪 {*-NxmC5WPwum$h-KE6 "VKgy_*N蜡ʰPi(K O{qh+i!?>1kړ*S:*y'$+57JËDv%5dXN58o(enZj*0dR4#Cf : qePXugUAK' r_WPE]B峗 w֘gyzwc]s\lyxx ̑f%_|9wۖ`p@b>Nkn?ݐ4s{;Sm O{Hiӷvx߱G W=)/2H[2Ǩs]Q_e<%x<ҟ]r;CYs{ 2RFLDžtc3˰{O;uXe{w︸iy=eruN|_-qo^j ~Ҹ7,~Q# y7~w?F  k{!L<=^]rۡJ~ɇw٬W,7Ѭ:1i*Bҵmχ-uO 鍡]?|ū|sl=sXy=t7yxx0&q>>;>{o^ǧޟ"XCaBՂjMjCu<lTnG ;=LyAr1ShC+ z[m,eOC Q gڋkɧC[dv8VTIla*̘5ZX7 6jR2អ Ն9ά6<4 j5MYp֠|8GCIq1<Ӟ4ԘXGX25/Ʊڜ0iz*dXr8C)4 k+eę\$)t}/^#.U!PkXt)Iv|Bj4%'oAf5v@'FЛtY䛕д>U(-x8KyV% ~{M]ԇػ㴠P,cDzl(e&9GX=J*T H R?KZ\Hu-1,aDt"i)U鎪[/n:RD#n}F1|xf II+*żL(8i0QBHۈ*_d/c%GYw+-3~AC0j)K^VŖmG 9ķQ f$Lf쪧ZrRȅY)ΪL"UlE)E%MhP EF*h##RQt#8Kb=}5TM i9aXP!L؝K-EY0NN%/3Zx#89'q%5tO: Ѳɖ34uZ"9Gs"Y*%dkJ_㔢87'Ֆy1C'0v {bYS$QUST2CG7xkxyD * lJQ&QDyBVU'4* uJ(7t<*,a”BU :&4T)k7N6JaMS4mzH%h׈dT4|-6چDFj<(-D,2q#K8LTNK8 wB;q0sh}lY(2@е@+1U"q 4E!5%M-Z zZЍ U}EJ(kV0ŒfJԼRI-Ơ !%R;>~dsy.JƏXL vk² >xBH÷-u"74VsÇGܦGF(~ƶ3FI kƜO" Ԛyi8Iq@9'C\xg{'H6 O8z?\^<>ŋ+>Hf(C[np}۷oQJYq@[ d1<߳Zu,Xknw4AU8QZ3 5p`Ovhzt@[ӄ˫ki?ߓrb}*C̙|Xgy}-/^auU9?u_?s쒟vj> ?L9vtǷSIA6-ӸԊiĴHD1AlCG4B۬Q9I_kB{ex#%4sT(SOEqp d|5Fn\-\Ȥ; kjJ)85*鈶$tpFZJr@pXHX&;God:ɄoHÑ~{IuJE9ҕ< ֈ!) *:b.YgKBu2-XACNDX3Er*kq$ k+Tc"ʚo4!+Ꮨim+d吃ƝZ:?΂_jA[K,'~aa'?*1Y+*a +-ߜ2؅wtNYq1TJJ0AYRG3vb;t6sD*I0UD}(#cA([NH"ooT!%ae4zG"fj/2wki"*4#dU[Ƿk¸hӞpbI$Y.wJk7)`AWC l&\:B=5"-LhI)e~!#X#զ+͕Ftۑ(ՔqFي.@'|_]/@{uNY%ٶidz|Dh-yYXs Kt8bVi =-)lL,Ȗ=-q`s~{~rs *Kizq_r|8VM:gwt"[Gs%~ ç~/#a0}Ȣ4LRX_3,1>{q8ۮۏc%{ S|ky%U@g=!~ߑD̅ec8VCp?,tG20 Ϟ]ORR0xwx4ϘߑjYmT>r9a#[VT{Lч3^YUzTv,5:9iiʕ`I4Ey,5iMnaEkR\1ӑZ" E"eZj 8g^Yrtkm5E8Nİ4-9&J(qޣJ @ne Ui%-l_JAP Gq45H ]ᰗ`ףldE)RRu*k f 6+jdrSP\=cH'R]oIH,At/h܊,Yp…ƶѦRʂԂZmESKXM9l SDFqUM-5u Uq4c#9fXEdLyrM{YXYI"Z jVA,6e~z@)fϦ}biЦ|G*Ucl4´Оm)T+8i*[$"4gr@)g9c\P\̲Ĩ񈳖\B!1njkWB;E¬e{Xj]3 uAJ΂sX%frDE{ϟc4XXwNz-'i`1BXsj0k{RMq3){KU9-%ާ1N:%y+e8@հƤ_A6F,3ۮ~xO "B5@bEѤ@bҤqOg>޾򂫫ԂlQhmyٖOLqfխQk{@Pr M kz9n?qaqZ)&wҋJPkB{McI MJQ`rW-{˗_?[Fګ ^K5Ӟ/HPvf&V+冀7vTh8xzq{|8U2tI#D 19q7 Dk)6tޱdF^}98|:oWgg\ l|oGӝlGh]y 3ԪiO_ =[,jVxLC(Y2hO;tumɅn{!OSi|NDN! ]t|Q-$4iYڃ ,Sk<ƶ̟~K> vRuLZTzH,P2T0Jh*VnqF-x*+eatTPIIe9eV&{b 8#lK JUI>r*'GǟoѶb&P jDi;Lנ%ϳt:дM#mP-ۢ7gM{UT-_s R kMppXS,*H IW”15a]SdW-X3x5Z1XUI˂Vc%SBzh`1-9lMG2Nި2/,bbZ{E0&d8cʻpEm5`\^Y)lCwvC6-,BXIi_TC0(>Iy;yh!a~.FS"-sy65$T2կ!ҊSnS 8EPZk%N#Tk*L^Pz˫+TRơDw{;dy&Lm0 j˴IePTehtKHJ:QY]YjL R(ҡgOXNЍfQKbNfbL?oo9Xry%n4pqyNqZ]GRY>_O8FVtU64%&Z)|a y5s2LÞWwK6g%U;\ٖ_OLl> g_3w7wlVv;.[:o[']<ewC;Sq'B쟎\mh 8xgx?q슾_Ѷ S{O3'ii7_Lnf~3?9>~D~KRY8 vb|| sf84q:EJGa\ a鉯|p$3_yqYXbn/Xmy w0]çOBy7hi=}dZۖ~OE@&t۰x`/x} ˜,za<(no04%X~/Y:LJ7X9;[o߲{Cҫ~C?I4Hkm(X 1N2M7Eߧ?a;}hlcgzJ 4 h6[)`0˅BJ9)w7opbew YG.՚gWjCU)_kYVw\^]qwwpi˥ Ñ1r~uO)ƲZxڞC{~).H4U5#J%H2L7?O#s{v7\^_U~K~O oq8eueI!rfIK@i-W,<2Frq,=q]MaR1zn)'V52#˲ q⫯bӎgo^'>W۫k|ߝԞge ylei!3Mסb'Xqey2Ϥ BN i::PGM?ZC../0mKJ >ݑBȉ|/^kǙhڞg/x~ͅt_dZQKzITp u= Nkq-~s[mez:IQPݹLlF)EV趃d$Gl K]nXS=a 7l?)6h UG#1˼oo^vlqێg99Yi<Me9K4:nʹb5-*شeAGx#T,#D@ȁ;'΋ֵ%ih U+X1 ɔ\Dp45(_*)Vն! s!O؆j BUu$[Vg瘒Xjyli*]-8YE(%UίP'#!e#(xďО DD%.A.!J< و蒩E 1NtZbM"tN@2oyxDDHrT`Ɣ S(y! 3J#!klcڑEA%[O3^44^mXrlO1H'l%.)<Ƒ91@sդõ=)UZ 5%t{F#FLwF K\Fɥ$jĜhJ!7PlZKh5sr2< yUaD|+ю%tW`ؠh߃Jhcd]3HSD;qu|>y>ly4W$^Tɦf% !kŨFɩF#ko,8ہ5T8a=Z;R-XݝHeߍ9(xjPqJ ߬&󝐑JtqTyb}&-#V H7S5]q[g[jM qO55Ը0GFtg2ZOn O'¼$8R{Vy(brksW , R~o5I˄؎jf"1HVSd:pǓSJ$L7-ҝjq:8)p^߮Dܦ-{&ZL(-X%gA%3A[jFıJUS$8K\ԋҨb3SV]O*pcjaFZ:,z2}Á?Ziٖ+۷,lz9X]Ӟ0x Z ~~K ϞQvonV8pv`Q4T|2o/yLar=w޳YӬ[0p:o3d?cM_矽"cDw-?}N3f}B#'#?ϙqpޱ{|5w;y'sp` .eCD#u9)E=o* ~H9Re TJQt%Sp3xze=e1AiƹдXѮY{T=9qVQCFJ84aڂ e,ɵ(ߡTFENUۃ\tide)a|I>kSkZidb'".9W|ӑ%;REaH%O%F)!Ere?#eΡmC)urдԜ0 ߢ[@HK(qrЪPLXCfe3٬fDDfd]vTHUQ '_5WHHdc,¸Όt[Fŷ2}sk1}s@+m ļLZEZC s3>4tJP%mHˌEawGPޒ\'e:Ү9RpmOM%HԳg()~KMf&WUQsmZY٪)JˁLJ1u+QZg4RRQ ZɦA2P0WIkE\i!)#yjQv-2h~tpΒR%|W߁T8p# Y1 ٸtUTmZ ^FNb#Z&T-ђѭ#L߬'T䀝ArL7DI6XU >(.nJxHo)$qXڝzLB t-rX^L(6^PY ViF9;"([J9z, FH_L\P^cd1b{JɄifg0>-JUTHsFQе7|#4,8rd:J4K*Ժ0F,G5@X#mwAwt%YoY&5<ѴD;r\qaR FrI#,Yٿ2eqfBml(,q* VϙJ%}*0pͮ;>bi$1J6O"it=yTL]JҮ:B\xv!(ܮ;jE7/84g8L\<Ŗw߼f^)hӑK4u4qk|vt"Og1h~d>d~c6V{ƇG3~1#j#8B?R@]pq~<=yŻwQ/=e~1ϮUV+^y5k9>Yu+T*]Ӱ{|G=Wk{%{voPE"@8j|׏ߢ QxMIy;~\_<+~f s׿~~S>_}^77Ϟ#'>v4\kt; /)"W2e* i:qSr4 }7$0mKM U+_.N`e:HCjh9$1-)tVDxJ߿Ls=ǔ$\ R@GyKBYBZa7%)'&,XEMt$b:Hӑ'yµk{O|#[:XNGT`W7l8N{{| Pst^~A8Ec0ᛆ,䴐癶9 j:R0OXZMB(rR,g182ˈ;{DtӢFHuyP礄%j2(c)\P(Eha%cqrJ3 ROr˰C++u}+FdZK67ΥuE)0n}Oss1FG!Q΁v@>3fww\03W[%| /n^o{/^^T3O=^qFLJoN'^|1' Á5Xb;qĤLRp)M400L6&ǣt1.//?>ViXv'V][1SUq8T/Hs qrE[a)и xBEa\6 E)"4~084ZMӮϒ*Zxli:^S&\hFX";l+>xQy0㺎Z3ηTU(ow4˄-t.RIZr%᭠MsҵYnmW襰QSe{qZ-5sOHaR=.7r ZiHHYY:f0WL )W.xRTIȗr,B[j[G$/R 9QϠJ/`),NRZL+VZ69sH%WYk%FoJwʶI8Ja#KL(`M|Ѯ5l,$h2_`ՀQێNYtPgrMp^($TL"m߭yX#2qF+Y+q]O8+T{78r+t2 Z`YBª2M$ im%%<%+-%=kQLc,)!) BLq"iZB$5,%.T fƨ^'j_0HPƳ4R#vfuB=bk<_|:JۮؿyoƓܵj_?xG<Љi7ksQZ˛ ^iV<'\ ֫꒤#~'qb:Er\0s}݀r2i-Ю!OFBVӴa ,d߱|F 2SN݅pzz s+4NGTL#톬*0/տ//i}4̣__KO={̧p8;\\26=ogW-o}"3}-{"jb^s8Ҹc-ًa+xv{z_3k;]ɧxy_;JT0Vdu"L'rF-=@ (MM3HWb;SYsqi5<KRIIPm4)c=(M<1n{E5g*P}KRYod"t51j!gyP*r Z\Ƶ+`! #mEr\3X׶R0Z~oRB>vjXDhV 5*AX=9e%_mX`q/@iu RJM"5,af92#j>@ۈR8B %+$D"/RۆTpK %M4^U)]΁Z.5P*Sb,%dՖ%K"WCxȶ/dsF<tiI1AMb60NFӁHu& Hy;있)Э6PhrH!M 9vM3f jM՚ ĈFHid%M> (v9MR<+F.&%Yնe) 0[+ݒu㑔"]1Τg4:qYh9U(2Zqkv-^ePJb[ns7M"i9aqe*@%0`;M\&RBM\.IJ^)'ilZrT9c@=D_)陏JIխ jdKΘZ(Z a[Wz'nFQi Tsr2"pPo,1ø:`TԆX*!py'A#e'GMiVpBQձ,6d1mCQbEbWU ^X{X=0&.۬ZR)4 r0Y4^Y82R״c< 3Ym' $ *dyIW4 _9鮗 4<=AiydVk&^.-eܣt&W4 !B*(ݡUu8'u7pޒlԌԐXwlBB#^+{iY#`QJݞ__mQ֒j+c)2pQK{~_~<:f"oy-VΓǑ3?FҋvޢD:g6do9Ly0aq:RMÅrz}k vO{7t-?rݻ+K3r#Q%r/yZ)IiV,ݥQv"U?믿mW<<V-ϟ]shMvwʳ}yŪT͇~w_}ŋ>׌̇/_rf/8<6{jH",qw9#/oSa~ӮzNVS`4ʰ 4r}y y#{dV?K >zLH rVv*RY'5˹ ȶ_3-yd< \%⟣tO5h߉b{IE[65M+R mQ5u$:ض#N3f 5=Dp9$b6(]qUK߂D ېt%P9giѪZCUBwH5J氐+6!A7rP#~s=׬//pBm2QYje˂۷L '{'6 @ W/^1O 8T ZWLV, o6(Q%BJDvrR)l"TUXcF,!%֣pMF Sy#S8U>Xa!`G)GA .JwJjL 3|k< -*h VBL !,BҌÀuV6PU\j%42 .<f˸;t\"CxGAW\o.7Tqhm"Xk4KRBBeYUc L.Aq%QICy2/,]18֗y"6R^)jעɲ ijBIZ@JPi1/"tnt~tNe$0e|s޸ڂ8 P,Rc@9֍dK!\ FR `BcHˌ qǮ@MGlӣtOǚ,KB+sREԾ + ]HFQ)qUPɟMir#:ߓPGѤaf_^v[r=a^z-g԰HE咁F"UFɥ6'Mjg1e<0F9t|F)%[i N)gmW*kjx1w"SLqJGRM,!#M3Mnc^xRRHv lpM'omp&I L D:ocTm]\p.  @ *Q0l/Z߿zڦfJ칪43/A ڢnOVk=o@o8JE'0cFH_yJ8RsFBOҥ|'tc8Ѻ5![ 05K),~Tdc<mz6OA˶ L50Tgׯ8TX0MRUKizL=eX0Y(U kbZT1߿cIiJl׷8V+/=4 yZW=*~!e%-]Ni61鞵Xo<>px8@B)b& l3 IgR\xl8B&#ql]:ѧjqr<$~i-}rÛw\04{,\| o<כk֛[~Ň|;n//v\]\`z9Xmݻ;65<=vp aΉfQRQl8R2_~!'z*o4O~r໻7tQpVM{xahD>c>|X 7\\]DZi?cv<yZ^ w_syqApRfZ_^0Û4mi=qfZcچ7~AsO 8[־c(Qzl2MV:mٶoe?)?▿gMg5.O|I5zY] lW7<0~wՋ~-~2řLJ>C^~?F9\CZ{D A gw=gb* JM9L̻=[Lio6Toˌ9uVX*Rp{eh3xK nGjٹU{aTk<8Je1N&N7RBiXHȤ(eF MaaGq*o yqq Й݉%UIl(grͳb_qsn >S;~^fYcZq,mdRټ^QrT"]ӓoWU1jG<4Z3 BTZ(JAoeLv{<O3/y+R4CVR TPTw 8X\&idIcuR󘪉)bmvMIUϗIpגYpxPVzJ+Yz&Vr6hg &J75i1}^D2djuEKLs\ӑlj00 Zj~+hTHJCU1.$~!S5!FUl^aRv@-b3eQ(] ]w:9xjq"~kgK<$ oWQRڊfvB9,a$-1T)ԚT9-Vi· !LRq!+i]o1}/Ѫv0%JL4%x;Hy&u-2Z !( mCΉ8x#'c=]QJ"ݭUI^Ěq¨JQ[iX/+9aQѶ Z@JT6Ίh[MQ4q @۬Nӑے 5B|#0?jRִɑDPKF|+vk-E)68mf=yGBL \WYR%TfHIVZڂҨ#D-(xXTxV Tqe6e(dH=ITu]l*6b$Uˎ~@Q9[Jaex|$?m49^\2`:al8`oqYQ P3N{߱" l Z o4m)9F²MVbN~r>6 : . 5|A4 XVwBGnB! c4/?b~~sk7Ta9mG2/P3jbOcHjf$n-k{ԔHXEǝ8CP5R./2g/@Tbjeg1k2|.ڦnA\KqyٞmƣPe8ۓ:9 SmeBLZԪy2<^&bc*\0rԚ D@t0鲒Coޢ,uWGAk(qԸPSjw`%#m;-ypWMwbpI,p0l70u%[T42 F*cY(Im A6ce\hkdMf{K|FUE"fGM'/hA)Ú;r glbƺ ٠njf'BUIYKE>+b AJJ烘mKY/xx%TKܢT*-rHW]3}8:7&beU4y̛MÚG|yA%nonx^F <>Lw#/_#LCDkN\'7)o/ |!«aÑDz<=E Wo9<<c *5Ʊ_շ;1T۷oy|fnx^}R-)qx|_| ݆3Cq Ñg ֿslcQ1c^5ffp"JR9ߴTUkԂ7$7jE+M\L.4-QWRV\ko0P"+xd3 e DkEUYʒ㙒f*2 ,UaJlQu"u֗m)]KFd봢(J)<5: {xmT(a;J<6~@m{5'ָ̆0]TKi/4bS% fstw鼥$Mt]A6-$TDzVI6C8xzêkh 50-ۺu d+#]XXZrLJ[ly)QkL9p)CX'0Zw8eGvB t#V%LGu 5+ uE+Qeš%,ZȲ&ݽkYRk,8MSb$MLֻ+ТEm] s:᝔ˋZ%*\W,oZGNEV͚2%F* .,9+{.KK18'\*JLTnXc~#hkYtAɦ"TnzЦBKY][qtmO- >Qk>yWo:¸59Ҵ"֝2qc/X%D6@(rkL?lΐ1M"SGJݒKuܽ<.Ri<˴RcpϜO U(|؆˙w|54b8r{{G6|~-"Ůoy~z-߉;z.13E+%_f\2T=r/_?o;{~#oD@XhdU4%Q2gۣe^.{nw:/u"ȫoxzzt9Өo0OO,֦WTvxSjaa^4 d1UEV5R7jh Hn7 Xդy"P#mŷkCU2ATTT&qw((1a4-FytPB.G`[l͜2i[f6M+_v j{ e ؍'[BaLL\&݆`VMeL(ğ6LOO|E<䅹A傡cE^D;k$@iPR kFz$E`gRTUiV>*L5-8)2u (!b0O4"Қ<<=|f{-J3NՒ 7 F("ڜ@%tcAe8gEҕL"U:|ǰ!WK4+@kU1X'8bh'I}-Ֆ2OJd:(JD%:+0@4'ffC mbHJHq4VtX_ZPbSCyVҺr:ٽ~_dJDdkH]/Je?t}2\O=EÊ大b؆iDJQh3 7bF]E|B%hIiaX*{P3$tS*(PSt 4NT#8Ok FҚ:%%VDEYGoB,SNTXCѭXEF@G0Mi ݛ_V\'ՙ44]tš Hvf~իqS 4E!@d2o\Kg+;r/m=[&ee-w Kw0<-:HgL!\;|בG[bga^<Dd{X&L @KY8Z6rĶ-Xh-Tˌ12}̰mq*i,o9|m_1|OZ3 2]ń:ڮ#°E@Q]tKrehJaO7rIio xڊi`P]%N(I bC֋9@PL }OSR)ag0?-E#SX$6bXhӉk֌rY~`F2؆Vb{dYFt>aQ,$9xﶤe%g[G81<gW|98?YUd=Fݎe0samBt^ho%1ͻLFBvx9 Xsq _߽l{>~Y"f`fV]Ϻ,Rn釭t봡L6rջ<>?34sYib z۲Z>^23eBN7[*\N'n7T Z`@Hq4Ww|^z.m]´|a +@*tef:9Ss Ԓo\2q ^v=Fk/mHV|I4֕O)?=~RwA޿uYcx_>G)'9+_ Dvlg qYV]ҊT*B.WPfǍiAjŰۑc$  PXZV6[uXIAfC(-pJ,X縤@$1DEUa`Qb:?יn'DҊ 5cIAb(p] hs@m jF;qܼ~Kt҅7%jhO̔Ti{TEPR'0)I_m/"ڐm|9ФdJ:bgBHFeMUVnK,[otݎx:c-fC7 N;JbP$Li YYDɑl4kkf0x㸹xZ[͎w-X25O`LKt yhoy5Oϴm ZK&Dj)Ma0uxi004_i[K _c}owܾzE\eFnv{͖/p '1̿<YVv4XgY8ҸV{|kYbX| Br\RACآ_exOT[ 5,B̳^tZ.WZӕVM hj8^Hie{sKy%`3N\3C߲N9ܰ,t dF.ƠKԊw=q9Vj VyV!n5*khliJ5&[bLEQ#HKB :Wyvn=zL71#(ح'L PZ55(֒-i!Idо!g:SLD,}ksj˃Zq}?{/EW54STTIx7a~Y@%F;ϟ>s,5c[xxohxs_vwg6jYo!w %U5y_ ;~~O8NL1Rk!Lu0@Z4LH4,!]g~84e\x=6Zozǘ:ew>f<]|/3q8r`77NGn ʴ̄u"h,s8y;>fǜq` Oتswg32TTa 03Y_;bIGM4tC=|2_ ӺHp{}G<1r]eP *6]tb߱l#k9ۆm7x|)fE)faYrN{O>q8vCp>}BNY. 7fmZPb"&dp,N4!UJYoo%RS"Ub"ư\FM<_0UKYە+y[vV3dy0M4)sYq kHn!bM-UERKR,ui[tFlZVA!aunrj;:KY.-nm1ZR z=<]lyL2 U~`}zA w 5r˕c{:Ш*(/R[zJ$qe~b}K-8M|dx 1$J8gc> )ѹgsV"-8J@E\ JXa2uOy1b %'S1ɶ*ttsFiKzi{1DJrii֖te0N]yR!Ѥ);VVqWL 7m/'c +y 9[bJi <}ǼF4˳YYf?loQ^?o/}ע]{k‡o9jmyێ-gL!zxy~"Gv-%Wqv8)ׯEPkZO4l߽r q'5b'_VoYӉM3ρw߼<HiQ1`]òZߐf /nwZ.nJ-x=>ƷFhfa@ӵdrآ9@߶|9PH t)v.̗ |-<=>^=|7#O̟ٟnɵpwsKwp{wtdq oz~U*Г,e<''| yItoǏRx OOOl6-k|Oh1kǟe4-x̻G_ѭ'FX!$tvc>RG޿-9WR^USakR(Y8(JzBˑZTd&HI"0'pҐ֐7k|LV$NGe:RqVz( (<+1h )7Y;g5 jn#pV<ϽPF%dz[ӑ}B+/x$Z!k>)\R T`8p{Gərb^fy`Zq^fi\r8 Ey l`xXHR ukykTfr2`;it"&҆Qc\F#Ь IUtN$]m,B,I[ണVİ*Yij,Ru-4a,uj)[82Ұ 1li:rq4떜`G2,Vj۹'bRA YY0H4yw=tFd1ԐHJ6h =RD(hBc5yNTmm/6eƿ$kˌFEmӋp/q! ~Bk"1ּ,)\xqRPdj )Fa]'$ $n)V\ ZNbU) ]+M BgD(ћ; g*:38DgW+iM|93/Rҙ*!49 k\HH&Ktlx]` %Ѭ2jDJw2Iuե?ƬR 1 C{;i// iby2Ԁ1MX##fFgO%77F,K#6OݾAu6iPVX5 {Woq:^?`¯7ra {LM[)a$E or>ges#Ćjڷ\Q.Fs9 ~%Sei&\FFJ[|>raݐr"\fU ͎y||՟yzK.+ɩ«o9.0O)mw_y>??{c1#iͺg9Olj!-2r ||f+ s/'^37/^qΜOgno{qOEJz͆d +ݿXǏk 3/|˴+lґxkR&snA54'v a tm2ޒsa ϟP(R: 3 hQ:_9N"%jP tRXHBInՒL QC~EGtX2 c{R贐&iҴV>gR|<ݓc?yRFb]/) I,K.@ۭJ2BIkGKhk1e5¸HiSZ(m1> λ+QKKIzPusLRȋ$F,VuYk %bi~ pszy*Q!f2/_Z20f1Z0A-D9-27xbW#KiZi%8 EnT]e^ VTOz\ě@K8ƁyPMCw*|'JgSU2.r7 RjXo˄b B8Ӓ[OY5%R\hUg|ݖ9L-!deFU-1*$&ڶE5-(32a!#T_1@h}GiI QƙRDBF!5N~%R K xQ)a {C­7F(1kM#Zs.IDzwr'F.}9#&dTQ :q8*WA5WkkG<1:VhvZrXgTѸg>}x`V1(+! GA 73ӼP'{Ȓ?؟O LZ뎧3 m4OgB$ﰩ'lRl۞qo~IVK}ͧ3?w9QS嫯f:+Qf0-h3z͔T@Պ4-X8\.W=É!a`YI9G:+N SXp98߈P;rLtw%8ҬPN 9$1NR&)$Z51-{wSƢD.3)zi)ʠlKNX3]#˚T`LZD>&vsK&JP^Qr ftB簖˴p>9wM#4IZcf)$6VDJ t8A\ hZ%O Ig2 w 3خ(' ]Qz!FQmN$<׵R1\Jh-YwJ4)hg,oB9EbîTz+ڔe+Z% ݊!EL%_"#]5!EjUW9cL4mReѦZӂTc*ɡYYbˈjޭ9\Z9>~$/nC-4OϏL +p/[Z//߾:Nx8nonXBZO\Y<'[7%q8!J^q>iproZdKfČΕ(oY ><,v4\XnoF`#S?}Rp{{˼LXYlYBͻw, ,"(P9Ri!Ybp>_PT zE|a9r-qv0Μ_yyXr[߮O#/߼:¼pM\.Њ8%jO)-h0}gVJs}Jjŗ_3U)_%OOlooP`}=uyaQ)nxx|/9^ΤEEyP޷o6<|HTexNÙ;n_1RaA_ϐ #S!"/| É'xo2p></on8ygnVk֯_q%a鉶iXrf/҆lx>zBOGRhtx$/:̪niV= )KBʃ F2V [^W+#)q])qU]zjI:u%J!$f2oh[ My~Hmh5=1eUȣڶę@|<]+鰍cZ&zIU)Hp5hKd\ F˴\9w{J.Hya"ij ؖHmV{Ҕc80שxtUD YF]}Z\Ob)r4-7/^_ ?^bB+s k=|T1g6,3J{͖t*:OU1cRdESUN oWbO'NﺒRݦp:f2cZPKX+vc@ĴTa MAUR j+#^ 5٢tDc=Rv32͚肹nŠr>agfFI]̰ZFcHiͰ [Z%QJe930V̼FJ[K8A(ˈw.Xӊ Z qGҍh5 i^пVdmB˳ƸWΒHr'Gn_ӌ:SDL1 V>ATtdS(d'ˉ֊zjJ2-xg &JRGEՂqP1%wc hU1l8mE♥QJBSCSJ:&<"Jt(B42KMYtmD~v^j0}vl)$j;j (I_b 弔і 8jEӊ\iR4@JEFSmpF&iY <ێ8a ἘF~,"1 T2BytAq$ (`q'Q'@ZAY ^@G[M K)5+~kHSrNF;GẺ2Q~i<ӈ1=9F\XV+܅t#O8+炔%gF,t-ZTfϴҰ۵&(U A^H$9Q.77QF(ULy %Ir /PELXC:? 0N1n_̏P,#?a-Ӂ~{KZx؞R+ >q8`DsbF18x+g}ӧZĴV|?>:X눓w#o߼ȫ󯾤NOio(9s}}͇>{vÇ3w7wL%V=V)^w3G!,nnx}w4QF㍥#럠6i N]\onoyyڡk%)[cx>g^LŔʗ>ǗG>; |jBy7LWܯ=(kg>g>Mg~_9#OZN k+wʦ?<$8>櫯 ZpCGu0p|ٓ5e@Y򼣔zӏ:t GP ?~|oՖ[-}x=77q!jl9Nl  L:~GZ#WĒ+VVk>=?0N\4t, Uȫ7oͷbp:1\oX!7a/H܋DTpx|j uIt kxT"=t78ޒbE1Or՘)8. 2F֒*j:rѭhYʶ)5`R3Z ӒjxjdQt 5u)U:>FxQ4Rb 6eHdJchĔfqjL "NױÑ7x&W <k-enW[1(4K\^X&8ekR %Ͳ-P"_ ӂ),X#\cX.p'7ۯpxy|׌jL"3g axI$Rpv776+n7W32w_?{6W#_{=M)0eowv/?0a{a'ZOl8g1|sOM /k/9yϼ̴`x~V*=w\_{$j}E7 |_4 ?0\bB_~ (癰]3g7w5;ooи{(I jnUlR#=E5VXqbY"aK L~Þ3y^8/o_t<onɵrH >ZBI>SOm G6 3͆EZ9 GY"+ 2SbwbK'Oj-b(%'c%:V&ׅ"z5l |K]'դOa$}w+P խ uPR6_QN/dtE2CϾ$JDHW).ԇ\n^QFkq4btЦnL9^@)V` "ita*P٬R,SD{'8tƶ=T2knڱ;9 KLy|旿Ѽʫo866oz9f`^"_<||\pݞ7ݳpi@zN.$e!1'8[PU3Ng {WW8x:Xv#׼pu~+\YL^?QbCigoi~hG%UcNUy SYh9٬yf9}}e'= ^,4q:3հAv逭ϿGImlWL-O//=+߁5tw_}~xTKȻ/:ǣMg,/cۛ;beۮ )5:09LxZrJjw5Я7~EXȧDmv4)N M`IQnd1 %QH]58 U+a@,Fh)Eҹ Ri`lĴdUR58'z:Z)F;Z=z|6 i'IK5ҢD}WGѻgt[N$Mkv+ L$7񏔌ZL7Ezvg+jʨ.B^lJmXA4B-I jKrO0l0 izbl᫆Rc-b=QU\";l1@Y V)Azu9tBʛgZ4:( | ſu?ńe+jeKБ5'WU#%suf*{^ݒt,fN|/S!"^$Ն?:G3W5:zk1.7-}#_|iIZ/JhW_s>1o-S\7E7>{M3=v =|vKL'>-{x9?ӧ8w߲MUJVQQGЋV%~QYt1_Zս8R;xD@cicdLB2U l+şvc mkXBxcvfc5Oߊ;p J)+'s{Bsus?~n'x:snۙ;JJ|z|rp.2/ 92u ^G:gçt_}ˎyp'L/~ s<}H̉T2}9Fk޿g0Z~FSȒ/b5dUIZ8]DW%eKxH%2?c"wXm80O0|s4b2VIm<дZ.Q2G0ȴ qG9ne"B#_~ט(-ZŴ* Yy)uU.3i.kV-ER'Q<:6b\T! JUgȽ#;W۟Z+)uNPM؀5BR4X8c^i"tVн:Th]PMbF\ҸV %ѭP]12\ǓYlgdY*g;T9s~ڰ,#]?\ L]ִVYVVAzRwn?iB{x:JSs*M"ð7|=TVD&&"?o~|f-ez:KDw)&"C9N=Ǵxkꫯ8Mqn^{-V^Q >vl:3_}=s۷8M/x<=O?D̟?<0WdwVK2vD1 ɹGo_y ̓)i\Ua<8 |WTvC3W;uN#wB>)%vB6QmilӯĶ"JSkqbMU٠䚶|1XU5X]ki|:E6ƊΤ`\#r~05 i! K]P! \-h3kŃ٭m@km{JOt-UiWaJbr (iU +@Q@ (y<M[""&pçOin@h-Xftۓ#!+nIZIN$LM<3|zOs!jRW(6#WTc*r:WBSBQEZ U RLXNr@-t݊+V_PJ$rJOB+Yw5-DJ%Ԍ7UUv}|6 )894e}/U\Ӱ39ʩo\1|&H["0G'\xu8C|-Y&C8A乢₲%5^"9fNA:!/qFz6kB~?)bV$sbjr 3fwA\dk=e$na$Nlq$4|M/~mdÕ2rƶUiJa\f-e9c4XyJ`8ZJSk"4`lm+*|PP0>Q Xb@Ʒk{BUb%:WkjKJ0Nr"Q]!}yi=ε-ʀB+a7sT7RXyAiڛOԜS53sYE9foK_)MV`0P9D4'gӕQF˦9JQ#]V-z SPB Edqyi77 $&m.ZszX\%F54@5;X0=(" ۊ)& I9FIt}'u QbfiôhnVK;] ݳd$O#0O4F3J)MKe5 %S(XBŨ5P'*ey^V2k=2H^Yrc59=TdV iZ֠V,I[,~ʉN[208SƵ2IJۍ|»6O8+e-}lŋDN2.9Ų@T%!F2'Uu-[σ\NFp*q+E(Pʈs-u ԰n9FDRвFyOp~KU0kLNYhq (ReV3vZ pq.y409p~Dc (+HZZ<2O3_ckyx|g~_9 qC ',1r@۶tgf7_}Vә1D9Vq _<@c=8?|Nj81f9;ywg ȴ?boH0<]ÃxGR#tf?Sf&LP*Ñ~/x|Ǡ󂷎[ZnGg?'-T^xEi݀W?VyX*V|»F&n'ShP+1rj _rědB͠,!PU%#Z#qZ hmQ8#Ke9t΄ bd<O+a-͆{bi||µ؄a5ybt/N*di8YenkicѦEKX!k*x,oUPJ_ g޼f8}тR,(:༦hs %-Ii1.o4`7[*yUFY ł,ˈZPZt@5z%\ c ZRL˄D c]B)q!ՂmZj^PS Z)٬TU*)F$p4ĒQ|qxz@)f|bzB)H"b\ȵ⬆(*REdXYHWlߢ~sy8cƷXߣ5H3%*Jr-hJɔ0S+qVj8ڏ4%Z+v Rp]`\673τP8+hJ&U 1ȤYEU%⪮PRh#)1DO d aFMR(=&]оC37e)KDkH1޶ @Crpkú(H%SDB!RE,n*4!,sD2j40O Ñy^\nu-I̵-@Z&|ӡLo{1f#b*y~·;X($h-j[5 e t0N6o(AD_z]0/F jcg]-dTRFz1BZθVXSq8!5$rT *,YoӰZqDͣy y:QeOTybt[|n]CO2h0WMG,)bQԼWm3J)^ bm@\I:5SB`%ϗ<k$vJ(#ybzIr@ "tTCSGIK"XF{n4%f5Xg Z{tk)EqH QYu2sa&V hs rj74vLk x| V~?~df6-;0ګE,-{k)o]+k Hn{y̳g˿;-Oi}Gam)r|Xr% )8[iE|@ g kk~,aQ\a9m(Qľmq[Ox??aR"7+jMn64Yhzx>sws|Zi#JUp@T/_t/i?%o]ױ&E!-5ENÀi>nÉm@灒*8Skf2va~l &E ߾jx{ rۻ[mNeI<<WHӃČEH-G)KM8vXi9TTNRVC x%2" Db5/ڢ ?[= ݮKL)JhoRk-hȳBm$SK8^P@eo Jk1!7;3j(!=B$C,{b,d2J̒k6<-t)-0g.mף U s]p~Gu 3GHM%۠O]$Z 2L#Mג,C9 c,ެϮ\PV.:EYq!LqY`V!L NL 3߭ËB:)uFٮjt ?#րנ @g$z\g(8yb ~m3*ǐK+,pyzyƢ;·#8qVcf3_\3<>5.v;/!/^<<0p>q>MC%T0n%i _;>AS\l6|GPhZ#i>|Ki"ev\i%s<;wxc0V ˝|h0x]wW4]׷KN? jVLO'W_a۷||ܼ~ Kګ {=Wa8^߇mĦaӞ6Up>q pHbb)<Ϩ=(5 y"~w;kfGt!L6AZAz)ʂ6?]t0gA2t[ee"9ϲts `O~{gs}AN"QdնYM'O3%DvGwBEYKT`Ѥ*Sv4hc@9J$E &jIT6"l*bħt]&x4N()kX]YGREuj0P7d dX 8 fi{~[lQ%3X¹k  TӋirQE2$rZ¸֒[UfXZ0~ߺّjif#Ң4!L}xߢ}+Gײ9H|Sn7eژ&L+L.7y"R4)|!Frr #5GqM}Bt=XЅ0(R ͙kB`9A.$xAtPJriqش=HyCh+&aFkZ [$sRh!Yƣ kNf9i67wXݡWvJAU@CR\h8!W\R "8qB$nU+9eE)ݬY;6X@YEHZoݎ&JZ"~9DzR:? a)q5~ns qgϔjHRkXE23,kcׇX5gi/^Rdedgcr4MK3RnsE}v =5 5i'.a0%`2^P.2NK9v9|Hn02<V'xW^cGf1D0,*XʂBz6dqZRjM\TNVpTTeM+CО2~sz VkR ".H8GcA 33J" [%g@pVrub&A.>PDI69 c iJDh0ڂo׵" 89bF)-(ƈk0c4e%kwERkiRH[jL35QBhۢsOVʞQrbϑJYbؙnѥpb\6'`M; mK9-P$$4Z9Ը&1k ,BiSF(DZڊYr2p]R@y*5hMa&q ٵؔ(JJ2F)&T鼣,"uF Zܽxe!ׂm[RY- .([Q[Z jZt@ mŤJ6`G8ޣv;tJ($rlǔZt3Y eIPCu6[ƘQ25VC P#JQ^:a+:-`y\+5|B3dg9( [3Xo҉tH.5*%Ղ^ejc\dw{u͢* .8\\=w^_y)su}Lr}{p>W/y?pux abxأv$gjW|q+~`u 1P1*l{5,"M3l5yS4 )X4IS=UU(ZV_֚%g,|9./`l,yYPYȆnCL }S6ݖ\FyS8 Yh!5 QHwW0]JrWݵԒpR,hUյ,DMJ|"!"bTڢ&, Ɖ5M#ވo ARݫoQu!#Fbk[YLBLzѐܾ8,3kL#&S3T%iHa"btJXpőcbsqIBh_ ,"TtXEw *ˁf3P5K"bص, yP3({eK[S\FskIk%/}t>B1c:?#ROԞy m=DI ZSCNSΏ,_3^h7xac$7] W6 qin'yTF6D pMGZ`kϘpX8N?o_G۴IBqsuqOQ) ;tm[²xG0N aI'z݋|gFw8.vtwf_xpyv'+Oep?Ty'83ڦxpcO<>>nI>Lo4w?CU+z-k 㞶x%)?[޽OX~0/ ÞaU^̳[x:s{uÜ#av<\-OOԘǘ3w7O{7R8{㞇ϟBHk/noA+w]5ÙM̮ ޿OuF]pYD[a`۴(0믾o_1<{e^p1|Lc>7Qos[i]︆=}c 0$R\>.^K0i KTU]9ߴYBgkumXR ng3m33#Hp).!:r.RL0k ݟ4N8WXɵsb_%)CV RJ2ia\pFaڞA`bM'H\eeE"|z1PnsEZ$bEb6QU$(BkaΊ(fnV!-),Ԙ^cJӂk,y 2ʲRB5g,ʊ.Nz j$b\0 /G3+ LVZH_ Ͳq&QU+B^"@[Tʄe` 3$ݐ*=dM2\Fa}G=sFoZ0jі ϧgbg)14H(J0x 4L*0R_3[2mp ݎW7|\\ WW{?k i^h;p%~x֚aB asuU )Se}DIZjU8ų4y9ehxMiߴ,t1a;\rdI${` -c !-uh<˼qJzYJ,"ۥh-u%qJ$;ܐ(SKtTVLQȡTXnWh45%[PL+?\Ѵ V)5Y+-m' |ߢp"-W,A֢*=o1FXS8+Y(,;ܼě扺\pRJRsWմRyA92 BBa1:IyrߒО\ =*햚JYVTiF7vh)9m_RAJcJ\HEN%{^c\HlA̸S@-Z#)':r9aEp5LndUs #IJL"3Ԭ˨ ikJʣViXŅ(y,*tkXr]* ߴhgu,B4"[D)ڐK@i2TRFd2eY &z Uy&ą\D-$`24cAB DN4V1+Dk2*@ s+h-ƣ(iov(oVo>P EhkqYR %xcS{/QD ֋BNP|FPgʺ΁ v#ai\nׄ^7ݪ]vZf E 39FR.GY R}Cцݠmwue8IPgR%F<¦w%KQKbu SqNnoyss`)g_}FՊX_o R>#/<̗? ,p%as`=XסuŖqx7t[r$ۏ<t)'<==areg7iysë[@u<|'|3 >k]_3ϔZexZm?PKWN4k?~́#Z2Og6^t&=pi'37TDXJ4=ql¼5鉟|%/noy- }WRR|=V9B 'JpA4KZ8OXg0Ue8rŤ)Չu{9p֋8xݒ2̄ ®2cgJB0jLJPĸia)djRX-1#5C@8rI@mZ3x-Uq-匷Z{Vl$4ה2 F+B/jO4XAW$Ɠ^xԈo:21㈵گi`k8-[LYY5B 4p!fJ(V:k˦p0^8Π)q؄(}' hh-n,Pt+OL,># |*uvث[4h(lWLc$"ݚ0ΠV;vq& a hb GBA[W+V)b8%55<4to➢/ot+Q!7/oy~ *wl?37=a>n39dyTā-B O0Fb4M8yϿvGpwO״|Ng6q/ 8S2^`F3Þ~5D _s3xojzoͫ\pT\~~;v!-ev[\{i)9c oxs\x>>uq ݆߿wq蚎yZx-Þ~i/ w\x?(ip[>q{{Z.~ jʼS>KdR47{iՆq9OMǏ逸5?GLc]V߿w-W=9%xpu/ssWo=~KlS /Yq]0\]]VO' 6-0iDz,10qm0͖4\2t!L7a`#Oj"9΄%U%@L|dz* |r=4:H<﯉$B(\9.X#b&f-Y!Xt䴠kej0Ѹ?o8FwAzg,QT-daq2^TU-()8 ؆$6740/qNXL'4?|SKӉ|i[Αv|>X6N'v/9].Px?q9=vzy#d6*y^x5K \^_qߡcr~:K^}7| j.O\ON>vL1w.-#SL ye%a}K a*R<FqxOo^w׿?~w(kphmxoHu5\mw Hu\~4<蚖<=>nz$HDZ>~] <\(Zk{a6fIj5<')ִ cJTQ—mz%IHεTIqin6m!̈́nE.#3{I|d.&K4VPł*T`z@ƨߋ3ݑÀ^׬Z3:%jY$vKZ2ڷM ) n$d)UJ #:ÍL֪D%i QonTZoQVEfzYƌizCR2o] 8FE7tp*XA[)2fŤD NY] U8r!a'Tp$M/e.34(kLIDʕQD?]:ˋ.D_p֐3(T%RHurQ 7=TFD)kV6{~[' UWUQUeCnՄ,/Ҕ"F ,G)mPhb-keRYd-qט#މK(/8F(Fys0΀V3aR8]&v8-N부ABaOqDMY. EZYBA9c$^!Hk'kеc(CU %OeL1AI,ą\f#-|Ӄj֋^b g\e]LơREg[;EpT|Z5(E=: JMGʁ\:qi* :MY.ykuRlltO1ޡ|CLg`.IS!/ 6lV0{'̟b2Oe𮓋|۬ Bw-Ӆ"^5qeM+0LWYG'dT&PV(iFW -2HQ[a ICՊVUIQY7JR)67BGV ':Ӓ MHt TA;|9B_"zӓEi#2 MۡP%Sp[t?@rɧ,6:d&,YgeHN{\T?ܢMG IiaRkH'/, HL c m gi8_ >SB Ovt͇g̅uOvb{axTvO~{`/$8S ʴC[ǛOnÏ| loyݝ t&eVxלẖn?ݏϾ #}ݛ|}u#NOOl u\blc͌35gJ\)LOnnn8G޾yM أWi7=wxqK{8`?ݑ-~ˋW/Y陷FcD[c=w?O3.{Pogҿ{.3fN%0/Ziay]2l72Npd:8Q52A7=]A+ 5j18|7OZJ00BSDU[O`%To0Fs6+!´O_}P^n12e1e fGK@mTmQ9jLUE09%4?$ɵ0fK vB1Nxmk@Gr  #<, 1L x|4 &:޽ǩ*;]Ka+\0r9_ХC`d<G޾y _-!Yx!N|ao#@ +b\? OXΉpŇ?m6yfxz9Av~Og^xڛe4֓&̧tВ-4̑_ әv*H?0= Dyi[>p}sR>拟iQҽ~+/?y|~?W%8y#۾'L /ooLBQ:Gє8 8#=2:=]q:V 0=EG\r+/:Ӛ*TB'FJ}9NRN1LLpPLOdJE.7MGJ ()QXJԾJDru(WyF%`"/4ض%y0ݎ[*f`zbΠ65tQpę*aԦTDGbhe ״,m2KE.QJ.U6`j-1ȿɦe~Cm@/>>a7-uI"P*hwF1-g1:r')抢 2x<>8_v]ᑛpoc^ܰ?x4.4tDmow|Hw|K8/|y2qDe&j!Jqj XJ%]y)L*Rʵ|?m/>w|Io4e<yxgw{80,lnfyzdY4=Y߸n>]t eJUP@\a1̄3LwC3F øUhO;f\|9ow}yYˏ#xſy4ω+޿ɕz{<>ʯ7'5s{iZ w|x8˸s| ii9!7)M*1RbE8oEH )-vz\e^h!Adr.'P]H5'C^Iеd) Fぬ5~Y;jkń^(%lVb>aiR4\+;J*2">9u§:)-B\~[:bDt.9;cdZ/D㽔M?ğhʥ.XӁq$RVpME)3ZbD v_d C 'RZ Who X *. Az: J+bLm Em S"1&".1Fb?1UD[' .8r11Y(ήlQowX$>C4 0h yL *i]hkִ&"hkhkFU8Ӈ,K\1A΋P!-0jC\3BlM+hӰ%MG35Χ{qi"vN{x Cq:iy*.\Ŭ+MYi;r\/u %YGG;L!,/*@ӤԯA -(񌲁JgTEbNWP4s;X9VcrLU,PKjɂTtHaVIL։B]xӬ9ERk% e[J2+ljfX1E Jt]e2-_Ȕ4IwKq^iM>NS+rm,r+Fcȭa}vXq^0Aa ʅ 5'gѫlUr+Eڏh2Ϙ :+!p~zą6҅\3@,[dxb~;us||r磀B2^VϏnj|w~fX ~7r:sR9Mv#4i5836[>ܿF8G;e'HИ煯iY59&n-㙵V/yo1e=y*uzG-2M4ͰNuZIt_~I2Bzl6F_}).{˗l-?̶x<칻p:s|5޿g9K'u:Ybu3XRJNg3~GR'f[kkb:Ol6Jn,y>|x`gK_.Uaw2VƠ4'!-2eAkYK B@ g{g;ݎb(Ft&hCPv/UPZeiEJÀB w=(tbI8b 4MpyB9˒kNٽ3> -qaӂ"KĻR#E)bckU46JZ _EHɂ؝Zd?!t&%BLH<B u9Xj󄱞<=(Fht`COHʆV1hj\7l VbNSbFT)Уl)Ngېׅ'jI>Y_Du 38c`#57*D d[P YC?`2"I`ÀS:ĥb r¡[QR0Jw`kriweq ߖyz.UnU#/%?mplFQ"\,r54LRI5HWKA=hJ)ZFt헎"UJĆ ہJ(%8xA,=#[@a:|]j,5mX#6p(JZqTPA$~2я[4k U8ߑ ;ό?JoeZnxJ!l0QKGkѭbl D̙. 2i 9FJz\zBsqVJi8UKD*e M.NWc\+mYZQtX B,m{ըQ^d­Ŭh\]` hףMaCaj U i|7IpSJ~`'T{6Wא ఖF +Sh;҂3-E#%K*X+*W5T\;E]˵:oc!W1ӍuI PN96c/IcxV\ =GL eN{\?b'OԦ H]N kz؎FTȲ0 *psƴ4B*h u%-xF@m h)1DشHuJtKmr?JyȐ**tX4hbm/ћq'Z/tɔ{L'1#mMD2. n9ZR̎#;<v/@)H[3y;VRmнR8YDsF0R ]V![WW4t ?~TtL)1={s]=ٟ@[̯}ٽ`aOw&5n?}K w-?}||8c2!^3o><9vQ#M^ gg_|Ӟx8cwib;ht;֔HG~K;|,#)~OXCZzy|4jy/'54Ckyx~"w|xz#T-m-wwXmw[NY^y͇H\_]q<Y/_q80VyeMaԌ|9(j2A9I!"r3q]h,LS X%UPjag:8lcu^G_[/^{~|f3N3ǧKhYbx'N5xu5nF^?@ W|wc6au{Iy˔m8޿g_~^Iw)\{jiA_13O#gsnGܟPx?!:OOlnKdԚ4O{6Àr~>0l7ndm]8ȓG~9?g=waǀ5gB|yE3Mՙr>O7o1z)J0lGEH+QJJ)Y%V٦-T VɪBB(ec m4yrBiRtREql]',1ae>Tz4m q yZX'l7(VtV RDY.gu'-eƍP傛75ń{*e/6">l(Ԍ~D2ẞZuڍD mieۨ\O)%GtKb]ϸv\Ru l-|`I1ӅD\Y޿j8L3Q@5w;j R*N؊pĖӄjn{Ry&. iDK+J[R* DwUn]'嚈˞~F1+pA&ZJZ9<=c#tKiM$ Y( U*FU֬Rx_D5A-B*`h(-> $RK27HW"Q$r*F'EQV y͍T.&^׭]_5g"̅yjh8==HʥMkI(1V3,a|:9Re\aYgZI9OE@ BF1Xā_CIJv$,& XcZ^VɅv]dHe!LUPU*&JZH *-kLHMc\ &Dɉ~؉e!/rO[*e^CR~)KPKM֌nϨRMб`<%"Q^rBPôt|F;UPD:dy]1Zi2yWsd'k9n$qq9a(gJe9>K$(G̑jTS5>xV.`MG)b 9E_ᔡ F .xB.L 8?H C+ tx4Q!Hf}X4e:{J9E䬵]V.r6kER`K : 3q׏a@W#^['Q(F3<wP:C]Ia GVz‡Zoo[\?S2{tJ~Ŀ߱, W/nXUW]2\[Jkqeّ)RO} 9||,wxo7QJħoG 7/n9_+3޼(G1%q'NGLNiPLO_2NxQ]ZLܽzIqgF'oyg^b ,i5|f51g ynG_ܰB/ = k0;jɼ-KdBW8??Sj˯QKw9URȧ#ZNryyx|dbfvdO{n Xrb>?S6 oOVÏso[A)M-ƿ-7Js7ӽ7c?y=zǏPF_:-2y鉛[v7L#+~z@^3nCҵ.ZċkՔHQlw/_RJa8:yu{.pN3>yL_IJʺFkXca5e]iKAy9ajmҚBwJhYSl[v T)XQ*08gQ6Ӟ*~s%똨֐q`~ ( tUڈ!*UeV8r.jL˗ˮ*If$BXGZQ]EB 8r"ʂҞtNXcI:BwT*Fr8(eLMJ&Jy^A-P gv蠰JX顴a(q=8'eF/d+膶=ZYcyz(R *LJYQص*ÐFdsPgpn?Vqܐ"y:<'nxn#s$z \xͫW36%ߏ~'jY 񞛻;vvdpx>ΙvkϾ`#/nn|tㆿe/޼-gyqwMUJB:񊟿|2<j?g%4l.?KO vr uZ p`_ï y8<點?lqCǟ)v%sH&> ? ,Elo9|wSd]2V#g=p|fY#W~K0߿g+|o=yzz/s=90n9Mgl1 W??1N6Fh62Or՚ )gr0O'1'⟃uRY-U)uF;n V7$9\e,fuخ5/n> \G+DJlo_`\`NT u"*fY7ѹ.gtl#Vc[he傢d"ibM+U XtNk5Dua"`*@-0QL(q!/\Jz˂dIGZ:|PyJNi9J-I,(T L?ʺJsVSP݆RZF֕ R⽧2c0]'rcqCG-RZa^8+*B)3h%b|!ۏPR$[tdmjr[E*/]&|6xτ,QwZm(ΒG3/+hmu0`BEM;=T;ۂO{XؚJF.@%JAojT$(It|M56+Z-x)Y ~7Ѩ䘀BI}>uFZjOΣ'7)ZdС+9F*xЫ$h5v<8RdG_:\cưN'X'q[t+^ibqRPc Ql18n(P qMhRmA1΁^Ļr^.z SbL-GJ4Y֙GmvxcTa9 K¢nYy`pYzRn"C&&J:w/>H oGaTō=*|zټŬ+) ~J*ә5%v-?Qo[g=ceĎdF0nEK0  _`C;Q̌Ȉ*rLC+ks}s%[^޼bυ/ 9s#5dVUw lf{駏b<hmCk ah}ty7aXmVO}0ͼyA c4Pn_\[Xs4 쟞c0+x>6 zfGWŚ'n?{ß>kaϿ7{<}uC3>|_њOOO|_q>q%=?;p(B9hnZU ]%f6 2UG!v(g?)˗/@su~xxۛ[>A!?oFvFJZbF5gWhy <@--5g(֔Rm/4iv!3O'tb^34YSEU pډq8v JThMTJLifsqAT4XPUD@"ƯPxG_H8loɌwA9?3H]DZrոv)uZM8TcFql1,Z)&908/= ,tbL:|LxV,SvqR t]'hHa^S摬{)pSDJ5j[!ie㴈$Kɤ BӶ(HjG5l/~OgV59puu;|+As:h:0 K#XgPN1Gd)F\("3VYЭ5D Ӯhm=ɊyA;(MDbPA9NX8N4U*RIy[LnI5d[)IP[2x_\U#0IZ+_ɤ9021{ș@r XXJJ,fmj&f)~k(TROB9GmqXiw(~+[[K ##DA\6,ϩyb5Utqw8_B偮4C˵Pb$Ą}Ja%đ\"xSkf<_n)KJ! Tj0ƢT&倲 (/k᪰|xy\^z 2! k+5D^1+Z"řRdhe0-߆i$f zf)״k\Kσ24u.xBw ]-{y8KY{jm'vT9WXoP1fƓt0b*9wrM#XRIb^J81RPO{1p:Si曓> ,C%^BF5Mߓ5WP-%KXq{(%U?UK[\"|BJWBAPZ1 W! ďTyqYA4-eFWeգ D;HՉKz/F\*u2igJqN(RTM*r5ZChkZe9(#'@zw3<=0wt&יT#$c %j)RS a=໖p>S`cXB4VGI[NI[+C߂դ*8؊HC(J =%v'~/Cs&5s;>8=c˯~/31Dc<Q.{Z89KyjΣȶ]itkC W׷N{0"$}iP3?~=-'7x //ņ_|s=I:V5WWC4Kk;-/}>0 mדTC7}\2sY_lB8?n_ĭ:A@0?}ޢ᧏xzzfyo9Ĝ]Ӻ,O9gr<=>ryy)y"@f*DIY(ҁ4 4y|x\. p$o((/D菥N%4Z hbɥ`KRZ^Fk~EɅ%E:/4_ei'ĒQjmu+rY\Z 26גQ)tp8Ru4>[''rT@dI[SXpŠ۞4U-HNXDPŠIRt2B%!eۖ9L* %n'q ,_8O5S`:,ȿqUEB9x8`Ks3ZZq>jHU5iA}GYʧ9ʃMGT`NV,%fA+,*,c7 9T;jTcpL\3 NWa*-> `T+Z^ʊJ UĒ1eJJP@刷Dl9=i6b"o,iHjFۖ'軋EX b:+'#d- g:T['ѷynPŐK`>aEyMM8qs}Xw :gVM 3xVaŻט\ϟ\10V|${54r>x{p$$󈫊9"3q5JzCj;J)ǁwҮW잟/߾z=-+-6~Jo5V`$1nzY+U.É/nnw3O?T*0J^3eyy79qÙmb0s1Q^QcQ54S EY¹8ӶrT.qMӴh"8ul}OOyỲ!/(NxJp+"㙒FjeQ0*"4Ӵa$NhI.߶VHyvBwy[7Pd#e<wD9ת K֊S"SJ㛖51Nܮ!/ 8-SV9r)FHZ[P?a&EB`%N*grLX療+Z[l`T& ',T9'AԒ !.tƴ=ʁe!)%j4ӯеPL;٨LoI9)[DEBIre'bÇXKTw>0#rC_BJ\։w"NͥJҌhfOYJ84\@xAc8UF*$dH͌3B*D4ouD AI.JD L3 ei}sCK9"rA(E< 4v1U;UUHI_q1.3ׅnVd *BE! ρX!38% i#Q'UY:? %A5J+8%YTcIU.(19r$xAL8GbMXitÔlJҲ1 g-9B[/VY]ޢ~-"Ɖ4D*HޠCt2u ٖ2u]T!{RqFL9NDeh P ]1Ǚ+xDU9qTeQW䢅t癘 "9 :lq?kLے`;'>RƑ2N5fbhorG^RPkauuC<(qFBnkI#m^rNBGceJ"P=jVSB[j!%Xdp~EEYDdlTc if'_cELhg鴥t 78߼{n?qQ'dx7fNg\Fq:MI$߶-x|8Q=E+rW7|z?|8ϋ-__m=7]a}|Fʫ=_k>>Oeo/o;~T+}a9>?ẖz'Z/F<~~54r_z͏~!|NӈWwwzI2a5{\\l=<x?|=i~_{> %W7?<`W9:ȆĵLR Ī_q.|put-Agm}a<{Ŗa1jk;޼}^Y\N?:oyq~{^y~zO 1ج4]&A@?P9K>ݱS kʤaFyn8㭣|fr<q~/J$]o08-8t ,iFW0K-t  D"4@3:R1Qc@w=Fi*Adgi q<Q\/ܔ[bVZFInn iխXY_areGin1H Rh!WrՊ0(+d4ۮf#(GFvb;?wGauX6h/!ct!'ھ'm<6tKl׈Yk9#V#HwvMG\Ӓc5lBLcN]'j4aF N$m$t"B%rxx?f%/TZxPF*@:!D2Hr^$|M#V۾#Wa|,\r!0e5<.?-v< e\i;4Mi"{qq|#DJ q"='ɷk{Һwg~w/(xlSL̑ƶ52%r"[LqMYBUm@0J;ѲUP=?fkASZӸVd.{)c%ϵG!{Bq"i#a#CՊH۵hoň(-O.y)K<@HXLEV8 4h"1ғi|'Y%B%RF4UKXR3!gRXeD2mp<=ӯ誅§hKQ*h\ŇbB8[QlЫWZ󈻼A/VvsHİQ<Q.$,8ji9Um[ⴇ(QB!噮i ZQ364-n$T@,5E|m:LQ VIǁZT+YbJX%/Hj@iU SiWP&YxC)j4MKuŔ%Z M1es Z06-E(:%rH!$´khm`:!heA(M+ixR>7N:O>(E$Akgr!tfӃb%=AIQ,!g1qˆ2˳xG3GLOG^\_6+>ѯci'~w>~[@Þ_cΉ_ΔRx3%zE"_tUbۆrv0Ca4a B/? Ow/3O\|A8\\1^\13~y|{V~Wzfuui_O?SbݰBaOlIZ?[9?9 Yo7w{NQa<3v#T0Ns^2r6j0s}qI5'^t-'޾}+ZExf%y!K ? iTZdjCa۬HӀ[%frWdYLOPP%UI4$rѐtH81egJ[w]3iVޠah SxBYGb^-HBWD/uFNݳLFdwƀ5TP˪y|$"-d28㺎:B񾥦ŷ]ˋoi/q"t`I)@,D-ݜ9ps c49*oDDk0KI9ׄ1DzpFAߴdU Xdnюv^.\u!5aVYj4J.ε򇭄'´mQ˦jt9Z\ q}Op:͆~%xab3t.n8~-޴̳#bӚG^Rbp:sp8n/o~JEIs%[N=4EJ4煮 㑠 y`3kQ788/y=)t8L^d<7_g{U߃фyf̪eH9γ~yv7K HլdkmQr8 3YWvY6X9Eλ|ӢtNA>[%ΉlqwGIsWg՞*fAIz!eOkOi}^}FuPH)baSk q\膁'qq{)wwt]J,Mɋ|zN}ϩFP-/_bG#Z. z ~|{T*pS3Y /^wo诮8 . <՟}9O#G~a'yB(a|؏g?{qf<9<~3=S\.vܽyoExY2;2kp{K:nekt z?SfN O<δ_!R ˲s{x>Hߋ yUD_s)*M#񞡗UN\q"+"$M I"GX]H)[Cӎ2iڐK̜P(6X?ʔȪᴼĔsU&ҔBYON :K1%uU8%e Zw29%-JĵUMF63&AVQm.1n3I)i#"2QUc݂t,F)xGI3uLm8<*Ն2r:eUR)$Қ\)ӈ7\H)%"*1%NB@)+c3\X6r>  g1ϙ%F< ӠTZ5e"8FkDkCk H%ZY} z wL#]l{y:J͔RUJ;TI4_AL+qYP]I+&@+nG( -ejTa+p 'UeJYڝHUvƬP9.N1'Mi% mС*BUuFzXm8ۋK*14%V߿!ts]7t  5Xag\^lxFhAH)s[~E5E>}ƛ_~it_>TqKNQpV+a,wHх} &RN8e!tg:,kwILq<MDNW~︿Ջ O a)glw|Ս_7l$/%o޽g?{ͣ _~EN +{͆뙦JECl/vr?^@ 5)!/xDTӄ C3h)>HŠ|O)UN7t)ǘI2Q&(IYrV R+HL<`אt:c尣$@?->xL/DCqτ톻9D#njJ6*+Pvd:V[^cFkc( o1ZVO΂3LjI'܊YxҲ7Z$]9VV=}Ip|eIt}GPJ]~6JK9!(Jg;s@g4zVkLĭe k^Dp;Pٵ?Q Eeqzό :DWF#IAd12JⅩE#e*LkH `<98"l}SKZ PMLơVm{2bC ֭[c*8n ,;0]qƓRąNJehQ -B֨'׌^0YʕF2$;L]Mpi,HNWu+61*<*JYN$FP*KtѴ,kB#v*f:'Е.hi|< X|°,G\Et֒r!3(yc6 2ر: 0aÆ9 ךStЉ'M .- (KnS2?B8Cmڀm;|8_ɴ%ҌckjMI9G|pc\JKJtVR]Pvu\( M9Vq:i\KeEadj0g׿DՆqJ#OXX>E.R3.fyw5bX0>_=hx))~ZˣOo _O~9W3{ßyCO~ç[gŻ;8{>n;.Æ-Yٟ޿ndP;Nqyw[Ԓ)qo/_F\p׏]qf~#/_<_+jϾzK8#>W0<Cga^1x>r1)uY$Npe'X|w?9Gu<~[',˂i i^yHĀӂ<5kf/orGv9BLg%|ϹǼ8pmYZb<O ?0E1Uv~GAbsM҉M맏>m ƳG #+pݖ~sIՍPVcvO~`;lӪ4؛5HKbXiy!3)C]j!k'R-t#S+Ɂz6;acRz-ݔ#eܣ2RVr-ӪA? `a^>h1^K@M+-2K&Cλ5k=癥ovO qPk3$Hɉf<@Π[*#/'zb1ɞV\SR(RU$,t&8+2B\S4jlvWʋYã)CP"a(Vs"Q4VPes뱻-5EFd#t:>GkiSj#wć4c͏?mV6VSGہtJ .unu#e/L+- e>کS(yf0ց qIgF[Z9auE$Fє+2SI8/* ҟӅZ wPHXGSIzp%Q $ք=yPf?@b3J{3vD[fTIQ]Gk N +0.i5:tDQ #uR( 3_b$Nvz8 zʻx[#xagaBޔhD2ؚ8eioX~Uô̸0n@f4R)ilQUfs^6y#rMk4<͐&k+(bwWPZT]^@kА>t,.SBvFxHg/-n4%tRq݆,&pAS.yc~_i!Jȓ>3>{_shk? G7G?ʻ7hJ >suy!D#LT>q4|{Q,si<-5o︻~n8(m3>~͛nx~gnP/{Z'jmo?K|?RGƟ x˄҅8q0AߡFuꗿ:fTZ3Ϟ>y:xBM9W<}?/oB#oy5Ǐ8}G͉xbr0^^r'_~>nqBG6>H*1=ل*WwZx59%8QZt:s8'݈{ R:x[./}ONM/?/6GR+Sk,=N*04/krTFk`\aw#,)9&:hY%au lj>xRT!iyv)4a1i^Q'/vK<ɄՓ!# g,jzRfݚ^/FYewAХ(xN|3,㈶Vj qbKsLg!,1iLT2eA<'THq $|4qe id>pwh[^;Zn΋3A>,?OP& nw֬mQ ,jmPrYKg >}uZB2Rx)˶)-XQj#'PU?<dՖbHa{2'|p+-I"IQpVɡ17BCqC)ik!U5Ekn9ܧ/.QtZĈR rRV k ֈܬr5(J8f8*SSc&llaQ7j%J1rA_^LJas)ۆR)E mh?mkPQY>KUg:VD\*8l5>2JUbS"2K(.%EX*%QV4+Y)+޺b"3]GS5Vh4i $UʗR+6Z rԊ] [F*9a)Zf1, \g|VrWFK3&?b/~NN'̰CTC]S|K͂^&Gy'ek5q\%$%_ k`6Ҙ{B@Y4^6J1/:ZETjON&ń Q-\s8N60:vkeWϘ(EIEJ3% scY0^A$N58gAhU2]DzÀ9Ǐ Pp8! XXLׯ}Ϟ>CǣW'\`LR+-_K*4;pl]_0NG_u3ljL Oɋ& =vypϯ%߾&Ml[ΧQ~'H pt: -}dǏIy_g=hq?qzE5^_q<7ȇ |{...񎇇>54ظOwl\7|'7g.O߼eQӲp۳"*pWءF3%=MU.K}߳ `,a%o߿#‹Q+:>tKG{yиb<}T7w+8|CWhtbt w2M7Wyݰew})x\x8i}ͅ +L.Q~.Zb'FwȚzx)UO5#UwteO&j"w>(  &zθ,V{Lvr8kR!tCPM^NV5L]m<)m<$f9)5p4mGeO)`,^i];8|'EɵdsmtC DٱHyZ* ݆1(.on~*te}El4(#^;h@);70%r()&Om6˱Ռ;r0 1qASd1G[/+*v4~kcKVDVr e[UP8?`ݰM k)H% =i6j LCx:ⵓ]PJVJV"5g (90kUQ+X'n]>L@ 1A4MVu;q.c:ۼVM.DQjКD\SW, )%B_80ɦ'gpgĴ֗nF}fƕ)+Z&[qNMG;!5)2ȭa!ɒZD:O_jp?Ç;4 spwq٪7~|C-oxvG^~?k)ә_1\=|D>[=aNBE+oW3w]yC3\?ûw{~/yV*U\lN{n<'.ݐwS~27n0;GdU6Ʊqh& KnO'◿B;>ç#r}uųjcBsʰx:81tbk…HqxSsÑ/ 5rnp Ju“%$3>i S9o-xߢD\ c3Z. M7RQ)J{Ueԯx$c=y&3T+xyJwAg<#ZZQu󄰥x#lKIB,+hԜ08h S/ @Ŵ$)iqY*%tأ>Y4#2n ؎ EA#HEJ*}B7VJ\ XpQt :i8h`Z%,t8]E&X y!n%Ji)qe\k29h9lo , &E9( >m/p'ϓ/-tϓOwl6׳V.@޽l ?|@SHsg>D`{#'2[$DLc zo9O*RK#\/i;J|̵͖/=U|_Û7cy1W|o+P20/_In4nSf&ifGsE5B4̍8iquuI\Ԋģ>R寿yk$?{‡8㝡vQp-p:v=_>-/_m$=*8>߿7~Cg0!ʋOgrt}8M\_]QP)7 -f?~wg_}ż׿'Ĕ{Σŭt趂=3l7lOwwijcRI. IhɹК[`@ 6$jEjΆ~Cn  #{zpO :F1J)䙪4;.U- cJ32Mw }m4nbR伐H]\'9V#vm:F [ZHKKEiw88%" N.yӲՄv,P (]nrp'!Ԓ-[C[Rmg螿ֈw4"qS˝^9 ̆#Z {,}>U#.xl q1J@+Y@6Tq?9q a) TZxg1`솚Τ0C2B8\8tĴZ/+ & h%T(MLx& R@3,[2;72(2ETk`5  lUZ-ʉFRqny jq"8'_)haC[C*|љ4&!g(r:)gzbkK4XQ3)ßSJcGB?@Zu$(Çy$ ]esUD=le$Ɣ#iUU,z|@fb8TMϒ-_ {z][,j/vqιV[[{K  zh 4D %tR(2=Ȱ0_I$ӽk}c@+-?|sX_i;o8|՗|X}xdgs#(#_\|dXg^]=g5WBRZs{{ՖŚ`\7Oa(KaѴaǟ߱n>4L)||iz})?#y[Ӊ^[pw[^~=Yik{j,+!ͳKf֛ >~ XGQ:,5ɒ ebJ,T6vtΓR",E@@K^, Z㉮kxYw=״M.FO|$?>чD^\_bf?xru@cxI2 yA5ruhZ4cy@u+,H莬"(l̙͘-DJZfkiTii`S$#wvQr"ω[cZO;xH^XۓT PBM^33hǰ?aڀ[5!ێbEG{O4h18dgnqFKT~&/ |Վb< |h{)7A-if%4R gtBxUk1EoEL8qM:FJm5zM#Ï( :r-%E2VW(5ލA }pFcj1.xugDzg\ *A6tfB=y|dy!4-nufZ 5Iˁ~ΐ&Uj]΀F`x_ oZn%/TM!Tdo#F;Jx,L@Ê HaO{V ({:iӚePMWR=}mۓkzsT`=:G(Qn')4݈Z iQ6@P2lVKHIE6i |\Ֆktv{|hd;2X)gAcpAJMuA|}yJ:QSk;CL}Zxgi$Nv_%Oӑ#piQjJvӴ`nw撔"' =#Di&źg҆>+.cǻUS_p8 Lq3T-^9=hC׶|~x8v-UCp=v8۫|5wo o;\J5pbċkuD>΅De9 ڱ.[9I/Wi50t/buٓLhoҮ.Qa2,M'R(R\pFPB:Mce<-.q8B+*MI R&)#ƌ ǽĴ"(&EjZbs1ZsqV6zjդ^ў0blFpX_mY%\hq͊8ΓhEϭX嘆~bYFv8#p-.tM (C3yqaX)CѲy[|0Kg FR*x@pв|@>U\y&LjVb5FZ(#Kj7DJgW  ;!WrP9&%W'L q8/Q E(1{R,ye"ʶCOIOH a9_. /- JsK21 z&TRW\fir #qk2 rts| * k)U(O]YE;;p*u/Δu uّ g*=qtp`ªB*}F$"R+Z ]Q1FC5Vg +iO㉶ֽI'DmZF VpҭܹʅR<)| ؆bȥR%4kJ(4i^Α9h\@!_r(B&c摼$Bq,O#MǪ Fx8V KY20}O nbUO[rbY i>¸G5yNh#]1Rخ!.@#jTe=[K1 mQ)òE{cݫ-+Dǡ,9wHN7?]+xo1w;쥀e̳\j>o|AG{M>)9%k5˶Psexj+q_t,kQzxF5-?Ev1B=\] 17.6k<==pO?aXasGk@*Ŧ?jˋ/xw.A6pϳK;d.jy6C\=p߱߈C+|*nv<=PfF֝ O=t}~"-\` 'BEutr>~@/opswilhNxQƐbeX-ZkVW(9 )SF (^9(J)9QT e m `Z8Mtsy/FGb:[R 5KXl {MZ:|X1D^߃Jߴ T ֚F4O?|GwqE,3݁4f#&w2TtQ%l4#stbF+{n(J-X) )[(VZM)|@hN7=Ǒ{x /-a㤔D.a~Nvhנ0k,e\F,ZJ)CeF- ˴h'Sn s&` 2i8f0e+R#X84NȳG9Co/#Yg`L 1&w>]`'J\ƈW#泸tm\6fMnِke9p&1R(2Q*3"IM8S 9jEhJq2VaF/'qV[EYL ]9 #1~-*I2{bkޒR\A|%N#i0Ca\#@ZTg,m+ q8n2gVޓPLFDkʉ)DnZf(t$M'YlT#z2RB+֞\ Ԉ6JR;qk5r)qFmZL4+Xm0Ϧ\D kcNyƇBa)T)(kߵ4K ŬRT"D|Qc6 ȶbgJ\Dn=?O/߼df$W_~DmBh}ׯi M_1<<=ݮhWqIcui뷯O;N5$Ajya esJ Wi8BHҊ}{t='o۟'_)~|-%E68k15S*@~e+;0JզeI]4(N5nO'6Rmq׷q@ulC@#kXNX^\3= 7<~t<'qO'.kWW ֊aݮHf4pѮ'`Fk" (BKTt=?=p˷zZ8'~7,vKh%2ZbZFD)%.T;Ot.LÁv 5Ѹ5hLǽ9.-6rYDj)G)qn=V9%Gobxׄ:8׳V+L!Ȧ}ƬLb*(kS iI$b(NVYWE1 ǑJY z/nMEYҌzbQE$iiˈVXyKL kPŐƅ+Vy9TԂZ>J%յ=DZFTibmNd[2DZSU4 eZ[+UIW"#9 Vq:` O40MCKQ0\O#q%#>/k<0jX(UK%ʆIiJ 1E )glgL-UL+#QY{[pvM;:Chdw+JjbLOU6FE.s<1 8]$RY*D%P"4Zpm9s2b+^m9/D&4oLY"Tuh+&bBY&w\@x (8~ja_%rw JA3L`TB혳F;C1 k(œ8_)hcQYhs~s6cXtv(e;#f`)l{G9E%e*~f=Քʂj4Tͨ*t-zz"Z\}KՈ3HZ% >%eug)48ԢX[+:qxtq8iifz|m,i|@uY c0t º1*=;,o1Cd8@&Vg1U:tR>ҍ*YyT*8Qe޿G5~"%HIr;ۮ)QyiA{CM2zUUMY&L*H2%J¸;0w5c|YL`W=C~#6k]qw?|_^8w?R})&}#g=1:{֛- Pޱ]mеa^tmvF'_d2%#-Ӽ 1'vOkh/֌פZxvq~ *4V 9&޼}CZ>ʅ\+B:#gw{ʒ~QLÐ#q\]\ hQǁmX#ɛ_3yTq1U6؜k)uk{!:xR%$8߶Sk<Э7JLL$Hs3=@0 ya%ô uhqXyav"3zLqZ&@=qhz!fГ@闂rA ئ#OGЖETҘ*t@@UrxBԌ-6(!R(Z᭕mh)UkQ†e:HyQ[2J!4h†\ M_N{ FWxrHwy($eAW2UPj-s0DbP{\Xe3SLnxW<||O.L憾wؚ^G<ן&x͚#7W׼w'2?G7?,|jlg fWYz4-E+1m`IKf7M$ ;U`gu'\T y#gA_l]˰;8<<}vI]3>Zѫ@]?c $Bpx4pxQkeN4l.>>j{1<rޒ_x:p˗g6Mx:˳K8 y\2E60Ƒ͖en6,VMys3x{agOh./.9MxgwNíP*S'Lqkp p\UPq{g #B2ORq>2gc&/3М/1}2I$g*3x| L>cўFa gT2Ek {y"B&eQL)8jnn׿5@U;.-[RƙO޲{xוh>3S>|ÀiV߼Uo=M,?G{jYð0 Ӳ qzyxiY^nP;毸py wxvMl /}i5)e*K݁r˲pʅ~Ϫ_q<Hz"Kqi=k0so;4%b˯qw7TnR8z?p%s\x~\+QTfiūg K{N ~OZ"2s< !CF1- W-{=:@ZVhS*c+>|cZr2EyM2}'rĹҮ$/qh|xXt ʔ/4*PXR{0uWa!{P 8Ӡf<WՆy8#'Y]!/XοSq^,Dq˜J\F!@J q]u -"o-FҌBLEVtpbږ7^^ZCT>oRM0sUŪLIkdj(exrC] єR0U%!Cg h#Z TN2Ĝ[|%֊ JP M"U5<2b-qyU g D;V+YTے5kmz\.PDRXt^ =:tD%&EZ.%XG %[r*XQ!x~5v}!$^Vm)J:C Dv;PiA)Xɗ\`p?0҅$b4ٚajy l] eȣaՓ̹;8/8eL'4o Y"<{- r8f#Tv<pFCÁ瑙K|ƈ9'ލ UkLQxPd.1.\iz޳/疙LފdwWImI- 7<al$]*y;"ՃoA c{1D*/ޓa}#@& 2H3Kj }`77(4qJ:;ZihvV/ @SxAUcXNhm. +8QDD6.EȞe֚' 87eGy􂳕8N0m/۷ŠTfp|dz0J2DJ-s"ħZ-Q =tL`zӶa(8O]1mTӂ6bVJa|V(La`K1dS(zT djmn2Jz9*1Wrf\6Z/TuJ'셎U[E(Y^N)Jb[-֎2Ȫbfl1^sE%/_A{/,b?Dnpn:Xj˰L$R{v-h#:BD#1.L|ɥR~EkdO仦#1h/0 HTolh@U"zUR^MϘr F[{KQȠ)BF,&Ѷ ,Z>њw6KV zM36'Jh9q\2œgVaCtqdx3ҧ2ȨpTMeZ<J.)2fIZɖ jI3m16m!c\@; .EʶuHӑ2z x HRPmHZS }G{l.QÊ:G-ET~֨-*7˪'O44L7qr V,1Og; *1K,TxtH"I9:Fs-̄ Kh[m0G8-XmWWOǿ7p:ihuG˙ mZxbl(1-8M|H;޿}Ȗi5ȦLcdZ&<\aagTXu x~xbfw-ݖ=ݽׇ1\8w\p\%n9YDAwO9,iDx/=M5q&xO qwجW6g|XJ߉\yx_|aG>ylWOO||\ כ-+>}9ϛwXoW2JE_o}- &i"ʍ͆ 78tkgV8b;4OV+兜2w]-ݎ#u===i<3l7ǑFc{~{xKf^Da[:79,%Afg5MAg2o[6\GO apNLd#oh hc.S|>`'K@E%[gdA%jvdpKA$JNy6Ϗ,M'WyafO;W^(gJʼs?</rO-;v/ Gx fHK﭅eׯyXw=?nOZe<Lsb 55%6ct,DYźLrNo@&%&jVLITߨv!iTZ5JXzjĮ,1E6(?Q;J&gK'k\ ա3rT [b˪\(#s~JB82vfT 0*uZYjZ(K &ІKLZTc-1MPX\ .1z J2KT&ڔZ-ayK3uI4eC<>`1)բfS2[ 3jCbNh2/skUZR%cb<=DHJ39)D+֗͆U;Gc/ J(X)\!V(Z&ь#.V$KB׊N#.82h J7 -%ONFUɾGzPXmŠxh+D45{TK"A' J|16KJnfI "yt{,,Y.˂6-d0% I9J:Z%%M/D: Hg̸'쫢ƅśJ()Q$x\k#[o,'62mh-fz2s~yYm9HyEYm`1Z,)EyP`9nL"NN90Nf k {H`L{)q yYV4 {(ě`仨B-tA$:GÅN6StD#^ȧ_®7TE kIiUb޲{zdX_QJ1V˲I_i-QRsV˓|^j+2A+JH+s.F'CE`a}wEϴV0g͖gP7^^xsrf9}u-\a۷3==c =yϸuW7{{^y ?rˁUQ0W/w0P: Aì6/Zj %Gr-%YӨ|&XK3b7Q'Rp U|F nO0#d(i5rҤ*, yhǹ#y/ϴIbW=8\(MKf,󙮓-G^"%wOx7[Whb")ۿa9@yqVDӉ.xI  ]2ӤL6nX3H!zղ( '@j]ip kЦO'Z)!IY2X?`\ָ`Z.H?UV3f, ^mi |Q\次6)2k Nn 6L xRDFWhQe&k0T%C!Lݢj Ek &LE,ˆDVǓd2t 4qDTlXIYI.xHR8ס|HXW RJ{ @s>=OicDW<~?on>]1YqO/ >PgٟZ8<J;w$ 77TJ饀VY9_x3޾EM~t*Kj ׿ʗTz˞?/(qxyF+3^O{yuw;O,8̉~w/A<=xQZ?gXa:qauea&M:7&77t]Ǽ,fw x` ]_~-qZ]wMxo9HnVQ WT2yOig2i'pr'zG[l7'OG=ؽ/?vyA:M/_^bB@WsJXւJ9Ѥ_K^4+FpEYݗjWBVCH' QЗ?DZՔ 'Loů|4'4Ivօ4M7()|&8]}/Z1 4b'tLY q v(ڜ0[x5rFQk߭l7 [N˞vŗ6+KS_޿ zaw\?iGL >47,1\uƪ8ol6_vqs{x8s"ve|8ZeZ1g#ݪcya,Ӹ@,s~zGȅO8>M#Ox:rwstB$ޤ ݑX ݎ;I$̇YbBW4|̳h RXk\_L 1qpND-T{jm"kwhiE2]$Js465x 2M>čl7Gk%Θ1+r8ANhӡEF^ڄd,pq/J_h4q~g=F;_Fy9&aۭes'7i~qD\.S iyB\At!^+[Ss+h~e>7P"5gBu\krl⃩NJọ|~g^4 :IBlԀJ1p o$TE$L4 CQ4,-OP*N/f|C)i"Re⫅hbtO覄\\"0BGV< &0[kAf A.x;rpSmR.Vb7RjAG/YT=[ PBM9%U9( i_%"w5o4٫s\K2i;&"h܉j\X_D£{QN+YLws-09+{XwW, ] =iҚ ,^SwKT'X '44dAIkYZKu,Z{TSX(\ZA+Ē֑e>ɥ,B>׭8<}H.QJ"H%/򜲝 DcPF႓瀖FY2U2] :{. 9e[ΰZm/~JKI:ˠ eM%'y*dYm59D7PUq>Did2u&%hka2 K* Nij EY"9/`iųTj_Q#&>>=2>~vf)=O{=q޳#͚sZBQ.la50A\>É%Ҝg-KMfU°|w/+v/{Պ3˼/bΙ:%rL9wp^fv/B1Nҡq^JjD)?a6}tÚn_bPް k~ցǿkV[w5n%Fsqu{yۯ?'/ AЯ:< }Gjˎ-IU)-?'_h5Ҋ BJ&woܦ |"ͳȩ4hѾu[b,t#'lKV:ɨ V>#i+34TcΆZ VՖy4XRX..ѥ]"劔CzRZ#s\$d4$ "΂+%S[]]lȵI9R.t8̪yG-*, s\vtE^W`iTPTChhxX|ߣNn[(\Pb.Xoravh5[x-ɵa0BİH5zJ<-,(^ił\ieAiERx#RоLglQR3zXӬE~̓жd[D ۵WKJ|~d4+V C;WPhtUʴvnz'l3Y#kOR9DR<45ѰƱYS]əv0@˳ך'O^NGAMGJe T#.V40wrѼDZw3EP䐦Q4%xcIf"Vl8_.ȶ!Mm4IwƋ7%P)El*cS +jVĜd\=T[ |̒VJ`Gr~jUԈrm{ hF)yЗ(ݲV:R>b_]QZqj|9 EܸB_ku(kO2M36\3= CC_yU Zȭ=&0<,4qՖa"/j#>8shXyqLb\ 2MKeCceYȭuehra@U4k(PRn" D˒Kb>eK %&"&z| UbBQDjfG8LR'(ѶG;_qy%qKDo:ZZ8<>AVҖ-2Ϩ1bYys"^D`^p~C}yؠt 6-dIV:z} ZӉO#}1Rbf^c} 3[iͅnXn̫woO#n~npkv?/xo5OtސU{o:rxz_4?tYIQ=/?axsnû/_KO^'>s>|H<<{Sɗ;4aaH  ZkOhty[P 9#5s9{NʅOޣUabiT4Jf8t8+잞جW`Kw Lk-{wO4,mӰV3)xС0[y9 9^b~iR_lUu2>}b$"®W蔩iF-sh[h4gĜ0VAzL}k~CJ3BhZulL>nEoHai"낥&O{V$ tx˄Yk #Y0\r>wJ| g)9g0 81tеA!$$42YQ|X:ŖG(oLs)!oEy22Z)RRݬ1Fcr8gϨX4KBeLG|ÇbN'~ F ^U0ʅyfHqZV djPP}V2-P"78㰾'Xh㸼l!3l E>Z:? gYUЬi:h8pt<),/YZ ߾q@I3 EHWӌ5LˇZWeƳMCgP@ ]W#mEi"2]Aaj\1`SV0X#,V`(cm{8WRWY3J9 b}G-%.h-ވL)t~q95,`# *'lZKE;MZ.6N 9flո݀B23 .$ RJ|?q<;Ꚍ;)#岮8;HjHO;<6h߂qBGyglT߀ʨiĶYYJqzn{!XТYDZLa󸶗HeJ䘨aړ24j5)yfOܾ(1&ej9ȶ|iD `KfxFdH'0Y.#V )CiCr@{hVif N6W`52J LM.};42NW7TGb1cg6礔IyYQ}/6HW|5ơKd>ѶvifO#1Dk$J+Kf4Q< }"ӐH 8ޡ`ޑr<\hl#A4Ӂp^ TLrNz%oX3 ۊsx9bј5bԐwFQPX44pLc<<Q8`5Go B5s2`a>Ɂu%C_OGh癛;7 t-YWb:4d2t tZrLDV30ό ll:.D׭$-\b8jo~ po~{rί笮7{nճnh#Xk??}:~;Ն WLӄgr>|?bt"#o޼%ex?}".a/y]s{{*ONĘ\n9lVWquVKGV;^z?~GQ/3<'gΟv<ouQsxqdխpNixxq-ڧӞq\ m߳.8c/~eqV+n︿ ė?e8\_٬;Ϯ/gzxG^+%KV]@w1V+v1a e@k<Ϥٮ7ibv'T%SB$L0,Ѿ{#;ג2U*1RljF4Sa)Uv J#5Wk ~o7()ƙzKy&0%$.*ʼCt9`i(h@3a~Esv+!RƁ0WW+ac 4p{0L!0h=u^V%'t傮FT*~rؒ9ts]J^BihWWBPUUj8k.'mc4TjT%6q\#q*eqd&Vkrme "*Uv9tߡ0 yUq=hg!1NZI5cLC: cd˜|zkzv#e-Vɟ/#[`#LrJ"'DDʘq8SvՖ1dT\!:Њh+_<7"x3Z2<4"-V->TkbI#=q F5PPhlijB1ߒ.F )Z*J7%]IqF$C1]. ƴ2umG 'LXeHLywRfZx5'ZN%Ssms]cJxJd#gP18D֗3CEhlbWF;B[iKN ұ@A#,fT]/PBLV4ﱹ`[%D8gy?4J %(^"x\kII.]Mף"ʨƢ#j%n=f>s#8K>Gb*xߓ4Q;Ж,(t,`##ewobGVep l#{yw|* j9L9@t[0 @W+ǃD4Piw͚D!ȱ ]]ZTp>>%c`خz~di?>?9u8c7kWؐi ӅK \v'|9ֳqk->/1mt5)̼} [o!3Dnnny)'Zifssp?p|7+MQnOYR{o?c9gZ?g8QPb<xv)bxhP3s0nWawIopIܽew#jyzgw\]]s.4J\1O8YC&':r9O !v㑜%Vs}u#BTvS@y w7?^r:.893V~W*톾鸹-?/}|ЭV?>7x9#o^jCӶteIu U2Mۃu4M/ jA giб2_ 5ENj ] -*%Q4`'_$ v`=% }(6 mP)G1VWhqMGPADS"k-s&Q^&5hzrѨи5˴֒je{}G:}Dw=MKz*YYf1g:f-B^oim4!Ʉ@cƱ^oi'H 2yU9c29 f*X&FT9mڒ *gA64wT9JqIl%^|z¨Bm[TTqBY)gHLX=F ̓\vkXQh3M&?XK*#X~lNJtcѶ-8bە.?ի%8>X?8amC&DcjB T]ޣ"$d–kVE7RldJb@h bPƃդo'TQdTIR2LL)J` )Ȼ,)5JIIPAWtK*|Ц'L98֩JZwR$"R4m(GB Ь0ZctEb4<}O b]Qĺ\\KEi;jLLB] 9M = bj54$o힖C4 ޸0:`RACEsbw%,4X?Fj,tY` e8`h؏A^be0XI mЉ|E+< Rf W%Һxy+k Ӊ+ʯIDmfJXےDɕH$%fc[Ƨ~ӠŶ-aأB NfMGȎBk4Y *Y_+ABL-dz&9QjMg;MyBRNk||wL"n(Q S < K)γ2uU+Q iМSxVBxs`d[0S2.,ތR;fՖw4MЕ %TE"nxqS]j|DYr _7(4w^f<^j 3ř?i~y໿?.W_϶Wxxݷ۬98o#׮E-㞛PL#}2M3MQTgwX9Ğ~ճV|xǡYoWq-%^}?W欘'gr0|x+*<-ab?j{#)N@#=`1@a!1O =̣Vhoд󔤸 $L[Qր1|Tt JFv\BE;ab}&rr(i|[]Q@1~Af1Vyy2Ĩ (-|vc'$ d&,klc'՚b#@k<}q9>`LtCHEfe6l 9$r)J˥&/уۮE8N]HOlۆŢ08$V]ć[sf9#)U>ӁÞ %~7 ozͿYP_xyL2i. }|}wtTěo8Os[͆8L vgeLzKko1HRbZYo#qi\ oqϟ2y˗9nauOG)?>a '(t:Qƙvsv=J{8x-:Ls~w S'j|O1-ݎ1{Ib/s2Ot޲R͖Rhw'pg^zI &|=(g8H3( #sz>Rjd3jaS}XLr9OO;OG`կZVbBgUc,x^"3-ZA|(S27L!}G 4WW('Af(R' rBp7ʺNLq"f 'ZV mĀ|Lg6RL{u7~$,(lj"9nEUŋq:+ @ B o[3q$딅Ӯ49PW֊]xxµח,t2)=6b7*%YRV-pa| ^Q<,[UefQ$2q~.L\zBԘiAQG\<]_AӒ.k1M"/r)Sʈ*IPTQI('t&P%3BY"G 8b~J5'n#%+H9zSPPPѤRrQ Ǹn5s %djVU 1%,/Ŷ+ohߢ8UHL& SZA^ˑv}K&QjE-5:qaZŘ1r^"IKQ6b"D0;rlP%Γ$ #4 l.rsi[3)49 r!,op.(*8Qu&βMA+!`]e8>uAGr #[=Ǵ0 B^R݅Ҭ{r4xjh:i3@R#^I VMuˁԹuZJ Yp 5-I<%!.fu*YW)^YHSj$_s4P-5 %E| r wM{WW2V6L˲i9u",j"dY:JRP㴈"+itdf\Ko@%(Y,(WcnTk9:l%(IY(a*W- S2Y]Éx5dJƣ!(@K6Ĥ,AL.8>{S(vZdӲL?UQȡȿ72y."4["Y(T-4jH>XfYyG"E)۪:H]Yr|dFTv/qɾ[ 9\#׊81[DfMo*ʐPGr- B6R6ݠLfi{1T%ʦ)$R(-LZ(C̀x/1LE/D-f|4aDlhT27ރoh5G^P!$3+dnVU\?FazPUJJhm*9L5Pث~ZpºcD,lP%`\GJ,r;zeSI9^Bb9]C u ]aNM%HI2EoBUI(i`b@3iqL3B*Wm[60Ԑ 4%g0JoTLhrM %e!鶅"V*zkV\|'F<Ɇ5GeBˆG+T9.HߙvM*#9l㞢-:a=&UVp4l 8iO (q&r)L=௄e6"9L XUrh+RIӅy Wy•}ͼ{`ց2Hsu}_Ùj4Mhl7v;4KkqLݲjqnV7W`+w#Pj !Ta&6[)9z7oOÛϹeu4a4w;~Ͼo?ж?޽XoWt>ӷ 'aD[C1?|pүVqʲ[׼{R+oZ&yϫg/g/+J!?|>szM}E~f[gϞx+kN3?|p 'z2O:fY7YՆ޳]oyz%c3}s_ue5a tyƑf>|5o߼%]F~_?c^zw_jygo63TiMn c ^cgK_.~ӯEY9> 67OzK׶<|p9Q^Lrh6 xHSt XO K^6@ ({ҊK ZShFĂKCkMhIJY9G M\5f11̔haRT-sd}Fd2 [8\؞yPk M3ZyuiY_Ѭ:bHYa]zRgxZ)A++Bde !FBMGNRn%1joe"ghBZ纂gWLt4i֘a4SJt=JӸE(Y]+2cچ2M",#MKJme:;͓SzkZEi(aZM UEAF1MG"ꚆZCvA6bm8leh]kI_XKo[4y8JL"t6RJO씢8|#Q֢ sB1Ⱦĵ·]+89"'T1v0]@I-o=8gň8j i#E3Z0aF EA"fwyxScmƉT\5Љƺp:a1F ܊SY0\@,޷UC-;Ҕ|trg[,8U)7(vЯnM1\2"v(XAק)VOa@8xW0!VӵrH3]jvk5l+Jk8hj(hҭ:٬H%:&NNJ=zKU͢@o<4RJ1qH-}kVtͧ/Ϳ;`NdUS]c ܾ|xl{Ӊ?+6[~a}g_2'7-Mӳ]oӟȾ2+SUƶp !L3O,Lh$,\v5reFvu{[$'9{}0WtӇ{iGuxr>L[^xL gɫ7 G޽yzg?Z>]m#M#=-Vgӑc2p^+QcGDf *o Vv77T˅_MZ.HG/7emɜowL92ܾx < y\<2u\; r> yZ0\rX晾Q~{p=#́:pssCaC_R o޾fv{NoyW‹[NÕvˮo|؃RlێLaHV pe-Ui\4 jWA :/92"ea3{JV<31[weEbay X*ObIy&vw ]n5KʘTFh[7ER᧲LSS 4h[<@f+N[ņnlo{5H3z7"3N,Ƭ ˷v,a! 9Z,Ų"S[m"M+XJ׈9, 98RCmC8B17Y*+DtLul|QYVNh%)zGRWU`ߴ WlII&@ FAQZl1qu18Y'߉zRʴ|;R#ʁ_aȀrfŔ D!'l8;thL [ JKWb:i^ès.SU%f^-ݑlKbuLM-vXMeY jR]оxI@\}n}s+Ϙ˄jp(rQv1 {g2C+ws@NnCp0Nm*r`=hTӐeL_*^ . y%|pm0ya{㻿-ϗy×GLyd:>qu!CR ׁfôAȉnϗO)ĐNBI _frs=EkHɅ/~cb|5O5d2 w߼bLXӉ ;>m:0Oo^,+raG* Ao{eWXlce&l-n e$ w]*Åt i`0?ׁ{-8e>|6<Ƒ"q,py<>SCbG{ҼJeLi雖|P0#Á9n#ZMa鑻 ޾ቾ.)||#_} %&^i?pa/,s` 7IWT(9n\/+'y60N}JI"Q)q9qr>)1ny<>vqgj`r"Bw pbVPbkZ xHhiT᫪(PJrO1zK50a],:W2;|\%DUV1MsZXJs{Joq&,#F)jtDkMkmX1 g\;DtQ)l`u<*mbY KB`|8:t%,Li}<}9kxdgcho[wpSJf{ +߼3:0?yRp^dVsv'C1îk87?>p{sO'ڶȲ !2o޼afT̼+|QCon7<}Zjs?XF!L(h @rc9F큲dkFF9rL2oZTV H ! O I}ސ+:A1Ef4~'X2yfG7 baʅ~G7:.דdZa߳i;3 -`q#\$5-`$;-/M֒k7V@ZO#Ӣ-BZPxjԵٲ#17#(pr ˀ׆ )9 Ncйp>ڍad[iZhղ |V%m0!m0ډ&jK-3 ;ÅTwrY+UVJKOH.J u@Qe0`j$AT5:;-q!d0z1[&T!H#$h]E"[AE. Aι/9L؆5.gA[tPÝάŨx=)7+[iݢm^6 9ewZKL,DXڎZѿD Fi)Ii含@+/]df^@oÄAkqKs.*1Kwppĸ&*1rNɣ#UyG)qbdBHXQkeDL˲L",c/9C)BmCQU/ey-@I*LEy'ծmЄUdvK\g9jҚ\LE ewͺHbvbgڦ!LjvN.1PsoJ F;b@oѪC /MQPk,*";qu XKX%"&j*r6J0Ib_ʢUE F[)z3}Ӑ"` Ui"DNOr΄y{,P-ib@YV.&K JYVSr17WU ]cYx*Fr U ;"׉)k-CQS+1Mbǀ-*k[DG:Fτ 7).H\2궄eZZUj)9J3YjX'l,\4^gi-i[/cqVi"GXUX9-<јxs^QO .4ls|ݐk4-ߣEeX+F޹W->?RbBi39߰ mP]CZկ#ږ?J&X.O7#5\.#u`̂.1s9(' iZyb⺖4xeZopewrO<_`R8Nu?Co~ͷ?pww_K>9r|6t!L]x>=@z?OÅ2{E24MLJOB>7 DWݎ[t-e xgyxW|:]1kNÅ|嗿%_-ox [t yy/}i|W7?~aO~#۶Kxy55+H%(=]a|ibX/_sw4]~vH`fFn_,x7x~\EG'+߯vԆp]H9]i)'J,()HsRk6b_$(,B mVrshRqT%ϓ#${RHRM /rVUEӈԚ-yz"'GN xLNVxvEo+J7!ﶤ4 :SƮ4PJ&/8TQyq!U)D.Y 4tpgϴ/^R偨:^ 0䠛nKSqbv%-&L%e:(VJ6:J+o)uF]1Mh $tRm'%jj#cVK2ZԚ~pqmKc.QҒLf]cZ*)GP 6mW8 ~CBU q`jNPE~OuN;YUa ЗP Ji7Rq`0Zo;r͔IusVTnxޗ֚0O`~Zd VkuyT"+=$Tu]0Ƹ2UB.ߓlT߀.[9CNF4, 9yeIqtQ^ۓ 20E i[1ۂیߠ%ۑj*OziX$6,(kgHfjXLP8HJ,nRҌ^ָ"*>)ErBRx4uP[eQRF ,sP0$,ר(JSmwhBBA>Kd{rcKY]+ɟ*͒vRu-=e ̲6h)LkIϏNN zr,h[SXOm6$ո-}a}C2Zᤏ&K1+#J$J IڎbfQBqĚB%Ss%;(@B[HvP2R8 ,_K S$Ņ@Gw9z_ e_+JyNheq)C^0JI.k~v#%+2}C9^xnG"<]G)um`΄BfA!J]MףrELL gZj\p~J /Goc0JVZ6(З[ӡ_U4-4U!# RE\QnzHp%Q8NB:?O'fn˼  *,|q׼~S,%(^O7L۵ho_3^ݑ8iOi^f)R$^N'|$KZu,QZGRECulz}`:{zrRN~̇OaOS<~y7_0O#~xr߽z<ҽ'? 9 pcb5),sm{Zp#M _xk4 v{?=wG?g-W/qs|xd7^$=GKg\[Һt[=KēP.@8]H-pR)jex.)VYjL /{~K' Q'yns#";\Fno9no;{18H%`i%_/x>]Kytf_CA0ۃ ,۱,TEpkQZNFǧ{ɐVH 1y'(/Edwz疔mqSH)t$mezS'ijL-~l*)[HQ /&*%P2R!%qVa9mKm[j\RVx W͎b4q(khÊbԪ2,DhK/ɶhʅy0,}j|%k:Q\HȔ==)/ī`rXׂtmtJA W"20ƬyIŵ#}sgaDAV&\:ׁm髡$^4*e7NbR%5ɐgy\`2Uݞ UĨ~G mRƔN1JCPR2՞jQh_SG0Z@ֵc[ĴPZXi24D1r"k]c+BYli*$Ű|wA;r@-X9mѶRhӀ1PyA*Me݀6<\6ebU'AR*+x%Ƃ+lЌ%@4TcseZa AڮctaJ@fyV&B=Z+c+Y‚im))T1]0놤OMXi˥О4=9f(P2FL֬8!B (bѵ=FWce2K|?xMg޼`Lln3޿[ ݼf&<'_ٯY息߼/Ӹnq:GȊx%E$#yq'-R^J߲.8g 8O'oxk>}z~O~cOϰp?2,6d(y~v㺎phqxq0Tu h{r3L+ sd9/2RZZ#b$eᴌpq=͏!3}V<^Ϩ7<(\ )G²oR`s8/Mӵn<=p&z點_>(x~|[Gs%L38>\(Sw fG %g^8㉺$jI(0!OðRH8w$vxm)aNW/޲).BZ!L3b @PyĜ1UIz 8Q;A'.%Sed"&Іb-yx:OBh i9bBض#.{HJYvT(!͎4xf! ъXiq:I%SM#Jkǜe^zB~R^|ۑ$npe7;3yJ&_b+4\W9O۠K?e9 c0-) Լ`l"5Z"9e~Jt-*L^*Ԛס4)gr)mCHhFbfkX%Ҵ-&@hPdevC׊od*XP*yR3 U g]B UW#̊1$/)UBVo3s/N Ʈ(# h=-1'RX e\gQ427j|B|\hx21U4nĸ\fGE zLMX]MO^qq*A[KZ;jXzH[3O )Zگbq(P:@Y]I?TQBmK&= jӜF{5TiBzIqƣ\C2T**AUrZ=?8b XYۢ ȥ0>=6[ɡZOv)qV;PF(V%%J0J:u,zYunHݜ!KPZڎXӢ$n'4 iz(gJ$ V;BXc^:!Q)-"Pj%Dݠ[!WյB62`47Xi[ʼD{/aA**ΗRǐ3}v#2_h\/Tk\;M2 MNvT]u5/֓JY1R*톘UB,\ҊO6nRR԰*ARi8.rA]i&ݽeӑͻw nwڐ@& a 9NI"M9-74%,d^JYQ43EP9 (&X3۰\@CU%⧭Bv>gR X7-H=:ۉ}^!RagۢuzjV_TTO+P4ZxLOJM;Hq[xiov+9$’a3ő'޽{ <8]y5w^o>l<3ax| {\{Zײ2]Μ93h0HDMD@@H' !E Ѐ]U}ݶY]{~^XzT)w?z03'Za푚WWh83ob"d&cf>w<5qo-7o=<9Kbt)$6W͇w\]sE5O=Jkj9w4\|X3O/2{BM64p8%ǭlOrYMw?Pbbّsk-Z~ Sqzs o,jɛ7ohofs"AkgDg,U+OoZ߼4e4b#f?0P&L 7l{u8۰;yy})L rNa^I40#_/aǫO>EobZM(E޲r90q:iv'?i p^e$@" x)s3d ғ0 ZyZ͌xp: qAit@'Y4eٹ0Hdд+pD9(Ds$i)%@/PgqҭYI傔GaBrJQ11/'X~ĔsFKrxlo{tkzi5'B*X\h#M R`/c724+ǰ9tMCIΊ+Hח\lzO;.77b:޾@ ~`:M4Z)~:?"<{vw]m%o>lYݬYwk4MKM!inu<>Ű;Yxxcsa{\ ׷芢{̔6\9=?}BQs,Q 8Y)1_7"XՊtⓗ/Kw|qir"D˛VCBg,s8z<x8.7Xpl{" #)g$־c[>ssy%0)G_:#k=zwd[>3aƇB}˗% #9y:<ǭlr1Ȣ_q;w<Bˏ?YmnrٟCy./IȜFBM`J䜤.U6^ޤK$1'm9N9 12T՘9w*PbڥPoղ՟= :q{sMw/_fPBby;Drawcx~{/^=KsƲZ޾{7Ӟp*8H< 4xF uZ2#]/{jC0aT|_}BEm%&^.s"37/^">y' _}|,6kaϸ{Uisȥ+-m=vO^=Ik8T 6h/+bnZŒ˕%ݖ~bng[XVݞ`zsst?S<>>Qs3Rl./e ׷.[@۵,2<&|@Ʌ[I,M!2 'V )*%ݳ;ji<4%!RA!ZP`bYB.f:EHILDئic@e(*zנTf naLcbDt Kg 9 O_UJ>#XWEz\; TcpQЉhՆY]Ӟ-ni\KJ2ݰVpZސCs,LXӐJBLeƒX咢)M\\_ԜKXUmD(  U4=q0Z}K Sxw~m䌲^>#ĄtmLmIΒ?e%4g)I~ևB ߶UBEZa\w>KL%ިʸaB[#FZE`V0tNq~)(2A45䘨DFWa,Btdm~:\sO4ɊYk3^E1vy]C Qɑ\e" D1ɟDi:Rbt %l6g{u "PY/vlϴ"e;TĔis¶=%C,tDi tUTV~6`"034APbc3Ɗo$bPvM.ˡ"0R*Dj!S;5ؾ/X Q0(۝QsؒN3̳BK8Ogj&AKDEOeX/{xr=c\hp]Km<[b @Kh< qL)LZKƘDUh(8m75!dh?G rwg٥.2$Ҕjgn{LO;1G[AaWggy+[~?StPSZMzz"M\_(גAM rQ|䌲(H =] @ҫҋ%F {T(y@(۴yM҅Rp9&!Ǒ_uH=* y}=%nI8P)QlҤd ĜmIJI5HZ+K2>8\B\+1'VTqҚ5?EYtD n%qs55M Ͽ|o~9%u|sNS@-\z~4M4̈́yf?cz&Ye//6Á4o;qwa >pu \/ۿ;ڶaޝ8편cL([]/n|ӉzI02#_8vWKO\{yoZ:2FH48#1\,V 9Si<N#/oX^_=.؞Ņņxjjô?pqy#g9|7si!~߰z~K;A#ƉM^[h8U)O̪p~vaiC<|Sr-gixK/n}qZ=?z_/a~OTJS4NXJ#t3˶c8xv}M "rg\B/Mf\ D>.הXdN&q j5oSB+jQYC(S(JQtB%'4Xof"*/FǓdV`)i(: Z(|$Li,ZݨJ6<:֌{TNjՆU*!'- #[PB M/Pa 3:L,?뗌Ab4ZIZ)k8HG)bҟTIUC{LDIl!0ř/:JD'K HQоc>Ny+%UU ftbgڶ(59HGidSYtT% )™,2=4kj.̓YRG'|Vr OB`!#/{cm*^dJ[ɵ`d}#= iQh?k[[(%T&9pqVDz`&DMg**RdP!L3TvRTd%􎌡i9x"5{y2&vVՊyeK` 3m@a.45Eŗ-45rɑ/ec5ix(@bW/v v@q2gE( \Qg%uP1n@QPU]J74rapL\w2I0ƞOIGkXDWK "t[4үJ 9e64Q"duqmr #u1JKNMjڞqK [|#CI2mVT8JA;G4Og1 QRWJ؎fV? -kCYQFa|#$Pslhr` O,,{SJD m([OG8=x@k'q"Bu9U4%Ls'Ġ SŻUR%^ o }Y9Q ie"q|~q ) ,ڞi%EUHa06^L*c{DZ-`mh#smK($;,-^q${j#lUϿ:UQqBcuخƌ.isϸKjKU-=m Cd3)//?|iaϻ-IWVӬ~# vvOI ~Çja>_<˫%+޿{`3~7?sCg<{}G^dY9?ݿb̕ןbյl0G\]]r}~*$n>X.~T#v )e<Hݑ5Ñ([>{)zɻŋ[Y)Orڈ:fe͂#]eۡo{RrFд B*ݞ˫Knn=t<󳗯|Cw,W+V5e g}-X\1>gjj_V8~|`ss~Kf~!O7<טa?DkM|WyfF6%O,n.IxйjIX~_,$3 Jכ5ӑx<%kHǑj;7RxÏܾx/g9V!iBOJJRLYYla嵘f'͊8lEY0JEx[RxkABSVb5䢘byRrUy˜FLL`]i 4G"h` _KMA-iw y".\r)H̦*3iآj@mWՠ(%QhB^+Zn:mimPP_lo[2ZK*"3PZ]|I3sš\DK&_dds.J R0PhCEH%!"uLQd(={iS{.8N0g{+q2ڝ\b4jt(ڎZPLί7H9^q%9O 41@-(kPQE M 'EцmQ}/'J.htalCDӹ2'Y%]cѦ#%MH!CF3ł[~qM< hΎX\3(QZ)9 4 ( g#qܑco:H3E[Q& D r!y~l=O彩jC8pn{先h NsJAqBKQ;c<|70ڞOQ]/]PNr`6Ųh4N0̤z.|WjR(c;K-Tj8'aVfrrI[Gӎ-eA yd#cPƉ\NaB2iDxx=Yfq< Yگ^1G]{Zh#˿{xÏ7mqÛ{p t^KL_f;wދL0oy Ŋņܲ{ LÉ_}[W||z_ǧ;W|h*ͧ;9MGNWMcGlQljtGWGtN\5=O#vcP3VlK9p:n8>nY/\+RH ݖŊǧGI.La/voȥD>AObSΛ߼e8h39eq$΁޷X^]p8A+^\͚~&yW?4Rzvˋ%|^BY₏X.l6~ V?~Oa@*Ye(Fow%ߥ"+Ƣ㑼?-ZR)@)"d;+3Lڎf}!_k rMXC[Ӑ"6p"O %R;`wBtpeYVyDf;bkq&n"Nx㉵0O(r YLjZYdҒ4 iC 3ETɟZo S)U[;@r;vd(3UlJ$imz )c;zμyodRcEiVryR9MGقi/D%LΕ~'gdݨ!,#7[*5YiH&[< z.3kT}9%/CB4`nJ,υF;BrpF2% !>f >M Yb)}#hHVgaGn)E^b1%%Jnq><%Ɛ&HEbV9/frQv!!O8V'B[PE4KRWMB[)=-8l>+&)ã-꒜\"ޟ;Q4瀲8@TRD)MG$6ac,L#!Xl^iMC.3(+9%2?CHjV[+.՟DP,ep1O#V J[+dY8#*2PRA&Up+eS% Pr #]RDM?M, !rh=j1Mg5)L( YiW9ҴDT\Nӌ=_5h#G}k_\n,<4~R061nIIYصbUXYE 1i倭z{ǜI{5%'Z;@"+R„4XyTz\G'?4$5ISV; y8R8>tbuq͜M%灐 &VWqx'OX(ӄrݬZ‭܁JĔQb %I.)&6wAuKȃZJ?~7v!OQՂ[f~d<>8| ݢ{֋%4q:h[\"rh)IQIo-??x~`YZ,y4OYvx>TE͑ϿFr"LJaduy[=D=W,WB&FhgCa6^1Ҭz-#jI(~zCqx<O 8iP]Kf1 7:<, aUsF,΢#e(LiZr 4 q"gp:Hj |GI㑦HZ-h "c;Rt^V"Xz*0$RZ$m%}LOt<8[e̊B!iE Ibޠ+4 (hV4f gMT՚B*NJͬ/o1MʁQTIsU2AJ99莧=y +*{+d2UqZ.NNN0jFeQsb)Nw-DVRF]2#SvZH ͐LT<ɪځx'y0kSI"B4u()SgJY PkX RVcAiwU{:_xJ2Ziyƚ|6 YIOO*I#PR ] FQ~8 <6$gH ڀuq"*&/̜SچnqqKRlq#EU%#{i"LPZ*}P@& eZm}.Ǧ83MDbPZ0D\b!Dume(MnPJ1iAsgP< pXB穢\~5VarҡD :E[C MKV(J(k[T4kÉDAgj&dkBřaDDrXoƊZ}믩5%f8SBi-iaRm<ȃ@bZbeT+q,iMyJ9?X "00zorѠ2BBh%MJ|ѡMFBYjsZ٦ *w]bB{7э y)"I eś ZƑk)`aG𕔒Dǹfc:iLAWJ1%:҄,f!X 8.q'nn/xa˟? >|MmGR۟s:0ߓK=Ppb\:Q K<mZŔadzgN,Ӊ= %>DIiu׬nwϓUN0`bKLyR`A 30@B(pU'NZ_ QZ{ua:=2mx:\ 6/ve`|~ K/[:v<<>WoK>ìyfW%|]|#R__q=_~- >b%v8'nykK }ZȺp÷_>S5] ff'^x^"Q~Wl/L)ū/)8?Tx\+W-o;.v>s˟}1F~/9q kqigș-vsN<>>7WD0|0ŋg\{m- D: Mϫ/֡8\6U?ETjEu>>_Uˊ#O~%|6?,GG`Gp4AEZQSn!"qBDt: JWi\#BUxۂhed"v|o0(~PmGD؆A7挽SY`ڎ24ke.XߒUJJPBM K1`}G^S(}/yQkpkq%Ԝ)J%+92S.gI!.b5eN uI&D%CoXO%6/!ݤ\\]ဩgpz[9OfTTpދ=̂RE.?ƫJQDXsaYDh|#1 xLs{yі+)LT*g "Zy$S@.^RtΒ%Nb׬T y:]6KJQb_&nCPơ֌6Z@Vnw$=Rڢ!PPnU ~м"_Il2\Λd-z.N[(BR&ږ".A&V/UkAka#h#. c iQU5I|Јafɡi-Z)`lU$yb~zOwZJA{|syGW8H+QJD Yx9wgjʠTZ;ꏎ :m(Ӵ<=aZ0:1IAWO@JJ:JIJ3/|R-hEjJ/kzb<Д'. QBߊq˽7ayX2<J[tmUOV[ƣ"3 qےD_Te^.a(t*oY\ԳtTlG IQ.VB htdc[!a5(XY5ubG+ĭu-Je[4Pˑ}\|@1`h+"haN=JUm{eN5Ԙ(N1Kn4]йկ_:ӮΗb^FށiBaTn:nW믨 N)LU,(et(ˉj[t$Ug{=ra57d$nnwRe>bt%{pd).!2 GQ0Ѯ"3JZ`Zf7-T5+;j0 yyƬ:4-mרEԘ#4k:tq uu]odfJ^;o,bJ K F iYpݳgD-R"9)r.'5԰VIEw+wQZrm'`R TmU%[r$Ln f֚dt)hf-:tϾ޼ w(A5I  ӿ{k/FPxb[4}Oe ,%$^|1(7a_ W\>9qRbFVo^qvMuW;jq~TiqL_pww4r<Xu,'Upawܿĸl7É~fgN(*_?roN3-k]Y{%cח Ko~Q; "^0?DQF˟6G^xE_93h>1`6~sZvAZ#y3qN'6᧿?$44p*ÛoJS/f8<>pŸJCA Ұ~4ЬhV=V)q5+\ZdЍZfb*BmPsrfޑU9,IW=N+jxO4m 9%Tk ߃.xON4ay:$"oۆ9` u7CVxEzb8ڶe dv7Wyxt9_i@ v\|<%|{jMJECZW il_ad9\h a,\"T!Ynu4$%O>&{qۮxGY/nnG e\3N΃՚^p X-f/^v%.v|_gFD}ϟ\=?rL˂6 z wG@"/g oo鬧:C0Scg_<U˒3?'-\_]jYx<'A)>|i=ohw[Պ:E^KVq$%4ī/߼iݷex:ƶ !Pa04|>ZӑNYnIef{I5L%*!)DYF[jR tݚ2Q y<pTBJB$,z̈ƴ;b & MQiq^&;֑u[p>0icӹDlC X_09R&{|bDVX|X@RޢJJs="DZȪ$"c*(+ gژFg>GLRUY$nA!",K+ WԚLb+tlMD,6x(! \9wFA- W+J@k9s 8S6 8ͳalC=ysQxO<Ԧq(5lC5B.o4 JUq$G5k6 5] l7$,c:2fJTT qALɉ57ӄrIP}Q#k ,5UL(Y5a5 YѮJm{RUyB.V0M7-`\KDI>z~Q қU3'Z)mi\۔[QP7SˮքZ!&hrJRv4 ݉ŷڴ`OUNZo== ȆѮb 4C T'%-g& WPsd[AqZ!ztʤFK%Qd32$+3Gk9V^S&%!tUU b`TeO8I7|-ǁjR#F7Ui:heZJ!$|˄]Vb :#bdL>#|C9( x1N$Rל;+?NdX+ԅZotkA'&)D6;RIi,b'L TF%ebBA&|[ߞr٨gdPJ/p+-q<┢4 J\Ur f6 zAY(I~MOz l͇{ F)0Vsm<2)b)mCƯ Ks[#R%u-5Re. e?"\]~/;N3Kb.3;rIE.g;QF ȴچ喇b7vP*!,4|HG#XmeӖ qL!`D[/ivt:Ҵ5RdO3Eɦr|z8 ilEe|~Hq(GH- i b",Ҙ% f-19 #f|wEIq) &JߒkYZ(JoPf93ݕweBI zH~1 [Sa%Ssji T]q<$ʊFR(9ʄ4Bq<to]"VYrM&fZkI% &j\Hnr MӢk%9 BIN$"{3;jYN/8,Z PV 8 a8z-6DbNP9QK@e"j\ftBmҥ JyxY6)1OGLے(b#>v,+iH䈪Z5s Z;@T(?'\ F: (0Q!_R=nnpZÁkT\o[~?|]oxw~v Z߱]_‹~\fZs1 WOaOѯ9>I˒x-43xN6˗ #f\(\vV< g/ϧ=ůk2t\faGÑ_O xtvj=W9?lx8˳'H]$w|*U2KV|{..zqO9FQ|RCãHyB{\\]^T%Ky||dݐRbZK>q:lq3ÑnճZv#yX.Ĕ!'r)mK]F!>誘 _hĒ(ˉ`,ή?u+Ngm  YݮIjPmіeʤYbmpMCQv%P@;)'4THQrڣez|w)00N4B۲ '՚lXbiO =96=0N!1L~bQ^ *w0\ ^ ye[,[و-MRuB 瑬`{E3Z[ƻw\ N3GTheW"er7hA?I޵(AL59T539C G2R@klRJ$Č2g ;<ʅ*u,Hk8/1+kSFU !̔gyp^Nɘ,$I-(-nㄈC( \,YU ƯN<}  DR(-4OS`{B{Ih4vCLg TLilJBMt#'=8OQghLjе+ʡW>ӘH*OT~*jhJ\3mQH œãsPJf^3}F^wk5(\LD)!"9/8Y}nCଣefCЬZjZH0?Rr!1B154JKihSE7-Eiܙ0GTm1M]]8B)RKnZm*8>?AXףDRs<@U4V3޷{ Ed{Vc4XklДVaR8IO[2 ]%0N㭗c,+LxP^޵ҴXŌ)7JlH*cR`iop'B)e,5h:QtxMNm­0!G'J>~iW,FEI q ү${IH۷FL7U+$R0Ký^E.!@@ ggTIiFqf֐K oh'>$Y.&dH afZYT^s{4@ ۞ Ra/q1gWɸƑ.I)S;p!\-q1E+TA4]O:,׮[q,W9RGS LhKV(;t|?{/I\GSPQ"L*Ai_c G./\\B_O#Oڰ̙_XL~zIؐ@vgV|/ݻ;Lܼᇏl7ܾD\o_p'oIݫ 1TFv2f/aZ-/y=mпp$&B4hgyw\5›+xb?ر q\\?gI\+ ^pֲ /=4à27 Ҽ0Wwߓ3#g9-3W/^x?ໞi]G׶#KD }苢٬߱юH'XY깹Q4)B՛7<=KdL<^={~N<YeW|?pX+gB̕gϟN&ߦiv8PLB+M8SJԭ0' {[n=tkXGR55乒&ET@;l)8fR ƊkySY @(/Zd4h#dTEP zA[i<4ӭTmiA{Cǵ-<\sLR#~uZvke;ƐC8Ǹ[a <;'n+cmܬħ,um OglѮfe0b\#vz1ˈ6gpxh7꼠h-#SV VJ^"ܺ1RChE&TM0}C.yN#8tTZogS$krϚ 9$ș"%Lf:'1ځj qO1"B4?Qo+[i=ݍ5_pȨ$32KI9b' j5C RVBdf1mY-{ 0/ӷn1}=~~w̺?1N ca֤<~ےÔi3jiMt|HljqJ,2޶|?|(ݼ͚Gz`f~f'}0 l6vQί󌧁,Nǁ,%q<w4c8i0ϲ8M77ڎ1Mwq#՚> >9Dr_oC'_3i9/ݗ_q L !5hCX9W )@*jEvrtZ8Oֱ ?O L{.I;:LԼacd mr J)y­qMߒRf 2wh84BդD&Y5e,\0y},M5a&hJt4 bW%[P?;IJLR@io” v H%,giG-aP MIXmGZyΟga>k8?b݊D fb8I*VSDYٙ)Q(#V$Q rȏӐ%("_ZiPrmheZY!YDyb;C`Ӷ-*4Ä-sN_} ?|$5")mږi)ȧiz~5ۗ7oy5O %~W_p{s{ھ4piKJ-){LJOT9~`;M3m۲UɰHXl#iXk8N'\l<߁Vuӈ0q̻WBg,»wx|xF⚩PTN֣J&Lo(RZI&B\(ˌ]dxO36`!Fz(- AZ`YdcoÈ6 @%QжR6GASvc4:H/ö0d0oX4AC) q?`+L([eZb))ڕ'4e =mySq& RZ_Z^W:UeZ&xP J$3*e.tǪJLNyD}a0Ki59j)xew; )1(lÈo: #V 8Gw\Tج6L91155xg?޲_f< a\n !pq{ ./}8n؟״gp牶B˙v˰GSs)vwGBW8<X[Yozڞe1"4bOt^^r}~0@_uTg_a7k~KtIڗ#6=w/#Îo{3a|=Ui?bd1>/ )<ky!pdZ ]pȻWq移u#iŋ<>>ba{}i|/c?23͖LJe^ 4C7B ZE YM'I`tMNսƵ jlRi%uV+JJ`4ftXcq*5BU(qm1䮬âQl5޵{"^Q 4xGHjk:RJx1֑r}Δy!}&Lλ3tc\G$BL3ua-mrmf]Suۑ S4זvisI1/WHyⒶkz~^K0E ]cI 92g̫8 x *E^ܶLǃ>{K[k{\4TyzJNxΚi, c,2cƽedüDrͨyf<>gt7/ {!.j JU uέ@*vEL9KZ")K6+V8φ݉/=/߰!ޟy[E^{ J?}c³i.y:P5c-),s%H{}IJoB8D㌢s9 kb< ̫w?|,7KZcy=pۮXB~2ܼz?K^xA%@X"*K,9Qm5R\6{N#KIKn3psG6hRȬ7kQY?|_cZ3Ն ~`,7ߒ3n"}i8qq>vճly5 vl7rb{n/ږ{|ț[귿Ïuvjb&Ȳ,t.엑M͙8aH.??K?E0h,t4,%UR3Ⱥ_Q=i/_/[2`|T:Gb=4[Ji7vYŢkrʲϜl2JBȉ~s\PCbfN"@p "Ta<[ 9'"8(JU0V.j)42%)m(Y,ayM6%Wf"5_TwLjE\2jމ-4 }Njp]kVF{FwWl\JϥVd T ""g{F]-EfOa[Mae oY\4R Pœx^rZD 4@  䚑T-E:X).Er9,g;)"¶G5)z14LGRa8^QRv˫6)q o 2PN^S`:Zh=ei[S)˦,(M.!'[)mqF Άs y{v$lYFgT):C pB,En8Pk<أa:0X!=Մ# PᴦhH=yȈVi *њ9x^T vdE0닗>Af@C6+VXJk;r؋8%¸,Xr<4+oE8Ye{W[ rmˤ|F+ߠL9S"c4%Guᴧ9A|FkQmq%')Q2Igh24LE5K(o橅8ΐa k6!Ft<7gJQinj3VIZv3BFj[PQK Mϐ-pkhy (e FJ:(]jFɶmHeꆦ߰Pe"I\A{BD2q|V)Hgw5[a`Y, Xo.QUa{)ۼo0N0i6+O߳;M{V_Ow\n7$Uyxz73{6}G,s}a~vCM~O@yqbf\jW=aXؼ72ag0<<=9,Ye8JU7,-ܼǿwWl/6hپ|+g~$ԑon%8 DPg:q?W- LJ4j÷ߣhOy=0/7y4,d+i ~ !uK#׿xǰq˗/l/Dk+MD|<[Y+4 @ya=?5Az2tmņ8/o{d9n7<tʰ%CX450 6knnndݲx5WWWoyXYRx<_=Skݻw=H4'>MeOo!& qt"J }\LRCL%E2;g%+J+&gV@`>nn~AV9QKaWT1MǼ0EBT` 2jMN6ZXQt"%rGi52JIՈ(UDQT1FҌ tXeDQRuRд0/,$`bG1o%e3%L?LѬ4,ndY;q+)"33rBX/.*[cpݖ5JHhMNJsҮߡ4 8O'P5: aD9)^mFHfo/`(<1ksʁ")Z6gVHj(dJcr¶+r;ڐi-fUT*I^X|qbuZGId(3,5V4,7TP1$!(E* e8=34T1s[cJyLx Hwa& |c>%1OmxlNY6-'V]7oo -7Rμ~k5,W_}t?w$5%+;^޼ OT\oQp)Gl6v;ea ϕ9p8O\"Z|W[bNhDTA;K 2ˊ&W Xmhvc[)7 Y2iG8ns-\VSsƷ;!&)χryЊRJ9hQH4<TcP9CQmS$Z[N+HVɋ\:3Y,cIQrho`R )%CL0 4m4cpiW(L. -`EB))*2m 5-'oYdr(& ibߡ-5J5KA6Y׵b6mhԂ-*,lCNKDξz2c"@$QHcg`o 眺͹YT@Z bDr$s=t"H`Xg=˼Jq BdZ*WU T):'԰U~X-[KD jߡM".Gjejk5 h`S8^ A.g'3zi@Wx影D2m'(12kHhSdd 4 qPIJK8N#sjpa3mfĖm-qYh BE*$TWґ8opӸLRdJ߯0MGPt;ORfè /\ӢRͅ$hrYhqA)aB/й@p=Fo'bJWZAeDEr|o|c}Wf-҇VmG-4o_޿qF%)ß7?K]ߴ[BU;ͯKX&i`72HÙx|:_}2Mo~-W89?1Okz>7,%P(Tj=՚iQ_ݐKM O~/I6.MkؼЯ{1?n^Z1\neauyw)v|b{u<Պ~yd&N@Eڏk~&NVx5OU+I^!W+6 y eok.6LWlVkw ۗלN'p\2/Y."W1Ço/8N_~ÁyQ|l) iV=d19N ii:HP~9Rt+a`YJuooD9Gn^PiږvGV.VOOO#O1tq3{% fe>ދ9BGJT 7W2!ZCJ&L(tI OeLN:2' lw=ۘK/Ŷ4ZU)ޭ5H XB;'Tk@6IzM L:%Yue0|!Qdg9Vt|$z}#q^~uSfQvTC‚u )f8LCk if&~+}3?|I-N(T%s;5r:4گ5Q>GJ)J(#LД*[ 5*{{kpFRh8e;ϥo): y|fWdD~2qH ;ǩٚފIDo$#ܮѮ'LR% c3M*+thp ЮH\A)+t9WIEKE1ajE^4SSZPK¸YZ T0ޟ#eG|a$n\p(K) > |$%|C3Vi2B'T6d6!,qVca71ZqCvGPJ\wt"*JIbLYr( U G4+LypFC:R\dT:L*!]ˀqkEj-q^謃ư,iB"t4qZ.:ڶu|ݎg ÁW]swf:Gް\?/4~ oK5:nٟ1-v}bEș+KzsŇox+-]qr ;>~=-4q6&>SnZ3g6%ZÎ5%&<}ʩDR7ᆪEM/>psrp_}>~xfb^n| g7O=瑋n8ڢۆn 9g=]Œ/"5^a/(eiCXV<"<9!DXD&Rn 2'IDPbDLTRLZLst!)c)d"UwT|ty6 {ߒ)%uCqR3A/]#K*)ҤܐvͥSƙYi5S hx !$PHy 53'9DXA*eIp:Ȕ.<)MrФwkr8I!4B Q$Jh(9K|@C9#%$nZ9\ǜh%bWJ,$'\v(w8cU20CB̑`)Efs'W9\H!|"V1f%`?S!D,(DH#9 Z)V0]l XQ$QONEf 'DxB7 Q7aBA~oq$+G/Ypgt+W#u&qd}y#<&!9+St,m.PGWM.DD猱DJ%䀞U3(])8AF_h+(c~TD{1J] !IkyBΕ  M4H (履D?$yX',.2*3Gt{I=~DYO ;Nz)#@I'uYyMr::! ޶D* zt"S7<|jrHd-A:9R捣Ѳ2NK"9:VgL8RRPF>/)1O0G̔~uAɆ:=@rv[\o] 4f} x[D%Ex 3̟O4`\m_Iu2f\cOk+{RP()IQ.H)F궕x̨qfPRjA^kM$=8=ါ'5"w~)e 9h u($>WDM4-ˉ25(JK>'N2i/E")rz⻖1*Z%DѾ8)1-:T*r{"k2>~P1TFrѮe15 ;6=*wh`|a}і*D\F\m(V :el8EPb 82:VI0ES[Al7=~ّiz.vioZⰗO Ei͟')'E ÈWƁ"YqFSbdeϐG6yvN:/1s&~G}+1VM_/!Y^T :~. P#]}Oar!E^<{·wi۞]׳ܬ9v;+;{!9aGeŪ]]a_ =9Œq{zP>ac:|͆~b?/M9ӎ5^. oc4ωb/6o.V (eX@Yt8BR:)w!7+t0ɺbqE1/)iȥD@LK{ᜧvB B(肎⚞rd]QKжKkI5 ɧ*Vq74k'+\"Q3q}+ꐄd;a=[t.Lǁ0XlbA HI T3xD r⽰8NL ]329'r k}O'41N#޵,*c4։\{§8g=_Bxj֑#vTbLԢ'i1`KQKA$ޓ簿x4\jQx!yh(=EWl׊#DukH9e D)f6 gD4жŵ=geİZx. r9>W,lԌ^o0@N81kV͖6V^y9R6Ê|tkXD mtQF]n" ShIC!GT!Ѷ 1+7V pXS[t J80ɪꚌćLຎ8L"sk;)Wk4`XEIuE2ӵ:̨aC7q1_ StQ`8* uT3Ñn:dzjbPI!^r-U>OB3m6K8i%H]x:}j;+)ѹI%afpD.uR/]/"1[Yl0حC8bԌ) aU"=5(-6tܓO'΃tp OF9RPXk$bW&!ʝUkry7FJ!nBYJIU5B=q<qQxUI'M M}VTJ * <03.:`<],߾' 'ͥLkEkO4FbQ.vS]QMFNXP+t2Pc['(@ֵp㗐'_.OV>s@9 R-(gɺH@8ѵĘS"[s@Ht Bv )ynG9$1xr"F{O&Y-I"RlK\/uU3q)1K sP1QEeP-H8gQ.]^POLU5,7Y?oqY\;y{eٗ_B߾)Ϟ=qKzb ,~x4e(Prsø=0,nV4 :/ GYB e9q|r)} _})qG6'ݑƳg|Vp>Qќ;N#˞iQb{-6Rg9#M1L)VkRLL@9qnyS6wl^FrΤ)j)rZr]Vd1u=S 9OJQ.?9&ʷƐJi{p:kWb5SJXU 8"9i[v+I9w8ݣT%)ǹCts@&ͪ i4bݒF[a0CrN-"KӑX301ݒ5%582 G2EUjM\qmK**R8ϥcE)xE phKaI[rtF$9y:{8iv$Z~P9.S=s YJlbM-reYpyj$1mSˆIo(!,L1,/!ЏͳO/m2]T/_.\70nhyMm;LGQNtNt "p诟ͤ9由FS"ozhF1S;H74}MGޑr1? BeTKORYxnTH/'i:KBӈZ;!qY$1jwKJhx\" -1d-XkGrKG'arsGKZqYy8IP[HMaLR5q( f!lʉ|.irxcն0Zrrx/bRR*VPΦqD҄2ҒXT#EpepBJ|Whn:I$YtѾ`FDՠr 65745:EkI}Ky@QV Q1:Ek=Jp JID $&m nt:BȅǚVĚYa!d̋AihFaTEE@/tm׌|>;&UiV-aiJ:cYϙ0U.)q:p "*iB Op1ZG͢[JBp׷O{z軎1J8~1n(qܝjgoh-MsՙwG͂W_]%WhP,rp(#7O_pysnbEəe[޽4W\\\g_}?@,ƉzNGutvǧOs89x IqGc0i>NXQ&#ŊW/_n3,%;=ToX`JqΑ'OQP4sN~O #x%whxx/>gx BN<><٫4mvKF/ݿX_]r~ܡ ~G?S~o!ućQM Ml3ϴM%}-}v͘Pb %r?!ĉ|1LSDs-9dx OgmO5 (S%P:'YA ]U%RR䀤ŒX,VW-jƑm5+J΂Pr~(ƠUKTVXd);@bM¸ kUlnETxw }/e UTZwLI/| kRed1PLN%Qp~3U\D{RlZb6Ɖf Oq\$,pyLܣ|嗯ymj淤-։he?{{zsxy ?A͆a_Lby %00 Ŋ8}|~slqKyVY/xx|ןGӈMBtsb=X =Fi%淬%ICm?R!D!,ueSX19rhkX4JR${ j2=niVy,k>fny|xO?vX_|~+s[=>kEχ\@"[/)]ݚvqɴ#3-1JJCA95:b ŚT[r^y0(qMGrddj2 #W"1ݚwd]$5-J4Z(B9Ӯ.]K8t[ַTSHӈ*a(Z&$Ŋi  kV1m{LZC)tDĜpc ,/`'O֖JTy|gsu)ѯ(qR'݂Tblz8cċIYf¶w3pCa('9ۆ_lM+r[LjbYDW s!_ڈX]g*Z1@׀^zy7[Jc" pΌH,5'0 Ԍ *5%JyKH_KMOVhRpg~FM)<`fAIA6Q89{|3*n-mjPhi81gf.ZfovH.ȵJV9%xvhc9H|K.j8ҷ CIZ$I@GRח8])q+bTBdpg#k54y8HܐA^@$B*([8=|`91gTa}U\۱G% w+BxhP i:v;?{X`5φ@5Y1 #$ UYmP50Mgkк HE6T! lef|x˥|FKi%zcyVB;18YJS<%[5Zb3TK: "dH9JN92T3b%pRJ4wMG\ a55'ij;&?Cc\β<ʐ@k\jFgo8?9pk Q!l Yc@__3uh)FLNJBB1tZ e+~f*1`Q2A{5v0EX-5UJ̪#t]yPӎFHJGȖZRN=$l&m6'6tl k_$kǻ5͟,?)Jm.0X%T&m!Fw&ËGk\ْ۠8{Cc+]ĺ""H_RĀ/d0k+'18אri#N QmOE6d܂xLo<S?_p7/?a:X=TC8v/9ͯ<|x]1]}naT\0#M۲ǏR6<} r)nO~5pq]7zvMYۿyiw6'ϟpya97gK^97ͻ|է\^||/]edzKh]Xoiڞi 1:$`OTfM8Χ#/8iᰣgO=g?FWEUN77ً߽(gd}IeәO,7ki"ȓ'WGuD8x !ۆoc @4[v<\Zy ZW**7W{!z4ˋ>ٳ<,ێ*ψ<4ۿ[n.ojzxx/0ODn=v㇏l\~8=rʁ&V|{v CoX<}%p4{44{q8aliL_@)L9s&F^&gFUY%j к0!ob 'KH+eTd|أ"k1vKN_R f!lj*)O3t8&OO 6Cm * zkTa[*9\:Ijil2l S4 Jqh*QZ :'2tpS*k6x_mbaP''lRj_L 1bjAi3KU$.31=1T%9UrN٠=ʟF1=+-Zޑc(T"SHxm`~Sλ3DNbPKVnx~Oo+޾j N3_>ez8m MW+qǗ/`u-k|ÎpZ|~+t铧<><ㄵZk,zpQiqN4h,ڎ\lXi2t( m:͚lJ)4a8.J>gWa:yyF|8[Ϊvixyt_52m)Rxqޓ!H!?|mϧgz?a~kN5jW1O]bF.y홦W=DiZ|'! <=0}e=ѷ a7tzfw8=Y]￧_mxH~Z[Zgz۟돼y{W?wθ|Cc,9ߐˉ-/oW'~_sfj֬ڞO7-#}-7o2 84q)bdGmG'rAGo_R_n{VQqg[Tx˟|+dos>HDѴ= 4Tim#CF[Z02RAa$QzÑ쪧Ֆ_1϶Kq}uEP{֭P|QB`4_N 4O|G5j{^{15L5#]rʑa!v-=a?W_p/3(b.QJJ",+V5/%1Z(Pr)5h}$S%/q<p`ke2M&51h#!MCQ45rdkеƑjt0τ-tT6dPƄk*)0+)'nE=Fb:[Em)&Jf;rL5-ݜC=: }y´_J:6ئ2)T (*ވe[Q&V֠qaC6-UJdҴ'yՊŔB,oJUv+wk,* d[jRnF1Gbҡ)CL2k%$m 1+RiuNc%2 ATxJ䮡b1hWI!*j].a떪@8rVXE|7!W(۞a)̧Gr ̓BјN6t&nMLq8Js$(nҐĜRHԴt$J|[ZntV0NcrI*IRFL1 {k`"f"S0H46O}03rsR]$Jg!LM 8TeZr`Q%/5QdJDb]CTk Z\P3Ɓ{! YV%^V RF+u"@ֆZ zlb` s=؆pip(Ñp|`/pabT+}jQiTy3o[ ח/x|%Le>\o؟YH?ޓsC l'p7B\ֿ\-Ʀa8}r;5w̥2YYo MKuZ->VBe2FJkrCI$EV8Yi!(i)I.r 7Ԝ DK1rUŭ4hG4 1"eBiN"&ى)Hzj0V粅yzM\8%%x|鼔hqT?"_[ &6bƢLLӡt!QκA{<'PE%. ߯q^" JtmvF`JǒR=s8Ԙp*M1n5T%8V(XoSߍglkz"JIP zQH߫(i߯SyaQ.:Q oTW4%tD ]-Y'QHx:QI*š\ra.e %)F2h;ԜbMPAhvZb :P3AJ,D#f2geԮPj~KU^p՞9X`)ͨRLG&PR"P~9ٚ+j8%4}Ln4JND*'LUST&֊a=.xj2%!-"Jb>-5 ^݊Bq1fwI'L0k2T`r AE^ChSX gT ( ʼDt xG6U+GR3xTfDHL1F[Ԕ{mistې ߮ vƒvV%-vEӴ!Hif5Á0mi^=jTiۆ8Lfօ(y8Ä=;VCY] s747M+Dxw) Yiu`LUcy<#V»w޾}3+mN'͊_gLW+/.n8-96WO;Yq{<!e!l J9t đw_4i|UNjל'8\8=W__٬z}󆏟x?v?|xzGc"9{O&D14%ݞՖϟam[Á*| !3[=߾aSSw-ݞ7/#q˗ض!F޼sxuv[>wT3ʛѵ-<3#c4mhXU|:ҹek8 ۾-:g[޼ m+w~qF=cN0Uaʙo<|b9px5[uI^\m go^f|lKLine ÿgiR9ʹ n%SYẹ[Kxo0gxZOZtK*RҪhG{tmdͪ:-NҤTPUj5ʻ/o_ɛ-՚%O\Ӟ\z=70n}o:6kn;-2rjӎYC WWTyxiZ5iNW|ͧOQxů8q~C4-=^fS`.3_a7EBi%$^N;3 a&9t]x\bV^s\{ϧOf,鉶i~48R|l\ÁD~+y>XebgGțxvO\2kZxuHg=xacq3F1N~wCpLdy]aZteaFi\__#O0%UwRq&D ,tCoQRYbn. i$FDu)mZq=VWYHOqL=j!Lc|n^MvHKL# y@؆ ;\&YD-ɤVID4M:rʌ1JU_e,](鄸F&+[*zHDAk<ڮU,Tv8ia[:'c|~,Nk~M5 )Zba]G r&,bZ0 _Di(< glҚtIM%=Eg\ZU /Z^9h 8MGj.c5d\T˜^zTL,B8%01Us\+ȶ$S]Jҿ %RRL݋s,B;J)1.V+w4[B1(r8lf$6d'cg仵F,LJ3FlN/Q&T٦E)pVZ&2I^~#w;trʤ AI fuڮDL3F7v҄ɚu=) NDBQ2)xLaA)iiGe4+$eU(_XS芪 Y^9|2Zix5⦰21cPRFk=(*q$ U5eQ=\)f(*9&AM^@ %'|$O30QF4M}JXeˈq*?k2hj#F!iGx F8'~-i*PbJ!ę+`ߋ -AxDLee6vLqQbA+ 2."H4v`c"WJ)J2dȲ0Z R2qHuaN!3=媇)ỆDJYhu h=SSW1OvLZ*Xl13*2xwtϙkeН特6z%gRYoV_{ipÛ__8>yyupĦ?~4ÑwoswOw'9l[41N_xwKI0:ou7٭*0~CEq-o|qu7/[qog/-n-\3< 6QO~ݧ{(l˛޳xS֌ͅ=x @ {LHMay3"ċ|]*v>37ֲl|_r3;_AH{VkN#Rs$%RĜprH1Qj]zԖ0jZ<><ȳTj*lkLW cDkV[!_uZ1G-J8]Ԙd#H0Gx@%˪ B 2I7bֵADU'k)F#s4%tJMjQYX͆Je#*l(Eiй7ɣt6o:thO&z/]0*qOJnhNJe>ʃܯYȠ"ElD͉R#zoVA9erG1^Ab]KNU>jyO+r\ 9kK9<‰p`{ynɧ J$}Kڥ-7(-q5VK$+{X(cBhPJ&f(E ;(8/y9 *gЎZWS*tK]"j:CPМ8'XB4ڐrAk0Q) 1ge HIo *?E%kp;M@ H!HTuE點\47Vٜx|RU0:w y>]C*H7HIh|ӓhiv_s8aH$#u1xi7=OOrWxk〿蘆8$Sf2:SuFc]%e˛/_2nUn޳M<c`ƛO=\qq&'>=yy}b]4OQ8>NnxF;iizf}eyqiw gC 3~sFjML%?O-o|i^~~Ƕ9/W|{08˿wo1r!VkF~Zxs%y4ltXce6??r֯y #7n?aW[^|㑒3WgT/|OhۖW/9<>3뵔ۦ4qfݐc[y ?~iXV#Z\@柒XF}\o,!M)gLJk4NT-y_Pxc: 4̉9ɇ]\Ҭ{R ;\؜RZĻeΔi6[)-kZoi5V)֊DB1=')Y1fCҙ[Z?lh߂.UcG8hg%k[ Tt_BxJ.W"S}O4iZ.:)*yk,VCӮd騵D/ib3EKɖB24MK,Q`%V%:)Z_%#0e%j="Yz Va! V,lZUlٴ[nGw3*8c1 ɨ;ʈ6W#욲Los8Jʡ9bVU5H@ -C)Ƶm 4N"ozJPJEҭYNY>ԌY`r&Bs(.y H8J (ډ'& R0 i!Ei@W؏kL08+iZJ <[jJ&DӮIv)X5A{, a>H P߉qkYBTS yC'jRE,RI^f:Hi<'jX_c/Q)ih;J$~ Uq$`k! {l4eTl,GDC)zjMKڈ-C h=p(#5OqƛLخ%yFa'.X&xj[0!#E%@مvf(X׉BA eDJK PD%g4 s=wKL' 9[TV TmF%SC+^>Cb\^K h^;-~DYM53 {K$/T=1ȈF{@Wb8\#1ZTEEŷJ^jHѩdc?N7rZV[*_o?xĨ` y.<r-\]]O]]ߣo f.\{bopYQZ˪L>k~o%ʭyNH-7y|>b8G{gq`6WT9ޟ0ˆ)0LW? -n~5sv<>+_}-W/:G/~ox{k톱?>b!!L}xZ3i\ÜÞTUO M߱?γZg-1b^]_Dߴ2Кmw?O1F_2OS]۲{nx}qi=78ps=cȁ՚*9eZD^]^qpOPa &F7%~օ$z~qxxJ!HgvFq>cwūxHL19}zmPcLf\U{noo9;;\@BJiũP3D$MkIJZBሎ#kt ۴Rq 5u"zwn6bNְV9l23:"(r"ibCNoFBM(5'|-EB(V*# Gnΐ((嗩gO!,)* 5jmt{29ZfLq'_0Fngq]OM3anFJ*q++(Rv^S׎di*TgP]KքP̬BFAjG-rIΘ].c:Ȗ[rMO)O8 ǂNT 24O'j%7x'ʲrtنI\q-֜ЧaYH45<t=SaZ.3 kZѨ2ќݚGp Pz_+, dj̬_]3 ]Ӓ,ephljN|OژcE: g3PA?So[g=_j]F>yΑtIYJ!lY @B[Mp4-r[$$&mcY7#L3B^y F=G 9`vkD5-5 _+C#`18PxEqNnCį֚:Ohc *bi8W=i0)1ق1 [)WTQU"1%RX ʈ'׊1N~hSHnAʻL7gq$#~"EFHCLj-L \)gǿ3|@ˋ+vOr]mx㉗_|Ƨwg|3~rrs#^@cBSl_^[p:4͜ϯfgbLx9H (KvLӄ=s{l (8OȋH/eL):#19<'&24ןiS]L0 Z-/.q9gW|w4rvu/^Gj>-sG0rqSkeċ(/CJ.}Q8kHz*K4|G*CZrFAsh[j1f#:+pss+7o$ R4:lEh#%tQXҽgzڑ4k 2i$]LE2%M|z";9Ӱ6=~a.g,%Oh4)tzd6xDMe:V4݊X3YL 1h+dЬblB D^/H92E 0Lc[Uy\,ՃӄzmeƘEK5\3K =爮0Yy+9DŽ)`ythDR 2.ӑ#X<{Y%HƂ3۵Ҩ8/[ p37ĐYm/Q%nJpXT`84L( SrJh8aLȪ WHWV%䪪hJl-/e+1.aˠmFRt+M"$z{.Q1%~-cµkB9c])v8]HHJ̮m D cJ<BIYKmdM8o+S+#fՠ^5WF5K%cZ.uжCk>d2jK}9yVdF2=ǽě,kEKL8۠ikݞq`՝q|İN#Q \ *b1Sˌ^Y]/8ߜ(Jc:iJ~~4VT! @MJ@T8N'z<n%J'}'# i6%ExZc2P|#RAew] h|C 9%9(gIaf<Gi/ߐ \\`|z,D=+w#ENtY9g+ًsD^tصtsK- 9~?cw|?fONg-ac?E?srcZl^Olċs^}b:c+Z~xvzHi<}rxx8Kfw@/f}C{Fċ 햇4ͼ|#k8_p<b<7-g-w\]\Qkqk:hkq|z"JUb8x491΅g;{P0iqbh13-yƁ5|WMb}OfЁFPL E -*ďb>&Q{|ٵfEIZb)Hcv4f@I:ӷkn?/3??K#_|O߼C:N8<7_S;ʘx݁_\~8p]fivۓV+{~<_~DYk”8?a{owy`{sN;͚ӎg_Z v_~ Éw|0wv{gxwR\^\1&̪5眆h"q8nx|| 38MR3xDjpO[6-GL%n>Һl|8n'V]j3a q-Z)WgOlքܣȜ_kF)o7| W5*c̔(]s!QRew:ˋsibg8_ }7eƘUe|ہr i1]mV%"ےn&mΉyJXmk@hD"E-ۚZ%ń]k 5[ ,Ue/S+0u9$xvw12l4N jDkWi&́j '4S.w߅J2 o0VKF쪇0'L30M#%<*Wr*;III sYѮډP-e坳FTP㚎F~u)GtcѩPLw45PB[lZI -$_CB2I/C 5Đ c@5Zos"'A;\ E :bF+G c9  ߿)+ xtOtQ-i+Rw?זYw>>A |W'lgi8=ypbolo *lѯVo[1ќQ~W^o;-a&q֭?fw*W(So@ S8q<t& LqޮְYoy 3%L|g]t{Ç%n7/x"Dw7()'3߽g?;?xÞqƯ2)GÁنǻG3nw{i[48oV(@FsLL)s]\n̻#SxUW6g@^yFig'.W^'F;8oVƑnϺy<ƉKbNQO 1' 4qwj\r~qA*N|zxo4~͸Ҝ/Ǒ2Bi?(^zq'h56V657I޼xEB8e؏ipF*X#m,)#X|ӐL{Q`ֶ䪱@=%ئkw;\Ӣt$ʼnj5m2넷J%V "x8H|OVԙV2he^0JQ(L((^'TNK81`41hVmR·-%gy%[yj Eu`;JF[ $^g7xHQ|E91KPˬW`~hAwkB8\ӈ]8$ Fִ 4Py)t<;K_3O|Ӂ(iɴ(k"aBHTZqGz){,:b]!u)Z%ބҲDNtcP mzRtރӔ\1r ֯0*!5np8:#qX_ fÛ7o1rq~A<<ElY9g| (]0 |fr\]]q8igp8_:'@G)|⤜U+ZA6o9ӯĔnJ,^!)y` J;jh|KT29C۬VB _׊N&q`81]s1tkNkMFL㱋h$EMU1O'JFdnEfne-rA7 Ut1Eh<"f+ԪLq¬eb&F9tU4i:b{o E)B)ӄRd3(9t.'q4.goOYj@N(ߢTB %Z N)t- 5[qFy9|9+FJ?q4hﱍt 6%1j9*ƭP=Qm;jɄ0д+P 5GɈ;CwhM/yjd+CNqJ^LsbG"TJ2/W$ p5(uC*z@ĝXQ&;fq! h 65O' >WkI5^5nAAYIz𞜗.,-Q}c\l0PG795k(^2 2iF$,4$Ask+@0ݚD5߭PGBE6Ơ(*ӢW+mA`ilYx qB: 2l|ZXJTM/`C{#㞪5 9(i)RdU)0}A<7Uokmg]}ݝϬl*U(lFx_ ,%!FFXTg*Vy#S rʈsgk=}_NHLgbw${uCwB7PH-H瞐dkPAW}3|:&%Ѵ~kF8R5ađbxf, Zi?il|RƂLpIX[̮%I$}B[ F[IPYߗG-1ZO*4%+"1OHsYp42bj&i{9y ML!bqS)\hH 'AZ)-EtJk~-R9Ɂ5ڷAR^ #ȥd!L4چigC5˞肫<&J8+~Gbl[ 9C#;v+P}׳Zޓ,{rwg_qZ5)DwOAhSxwwG5 w#9zνD,6{20Ϭ7k 0NSb{g)d7 ^>}ۇ{r|x!h>(x!]L' QTs_!VzB)A2Fdki Vv )Jdn%\|t2 RgEgC{JP-Vb(; 1gӁa\7d48yTq̜n6L x-FɡS*p@Ls mQT1ixW)ߐK3Bm258Ʉ 9a2À<^0ؐc%,,S9jh.o(D4v}EFǤ"B)֐3&3ڑ3!:ӲRT1ߢWOn$UDb2$1Q Q0jL*b6Gyٲه cj֨JR K9 U-cc+'σI))N8gu(N(Y1߼D,%2*'@j)EaVH9c8X9k!+1WZ@󙦶w0>(2a%εh  w+cR|YZj[N#D8=y%sGByAʫuhe )[JLP[y؏85>[ڷ%R'zD͢WltHL-cƈS%jrhC.!'<Kt*rvd祥k,\ ,뤓FX4t7ML=Ƶz=NkS iDXcGm7 (C4u+ٯI3]3=Y82)}z}54j/nqjWbAΚԱZG677G>z!erEQ0 =8a3?~ۯP֍+^?ps>nsZ-%3_kY]_B\]lt瑧/lEȅ!ҍ>}vݎMyz~Oe~-+ƒ9xʷ<32\ݎ'Y,LiRan[Zx vQKMiKƔw{#(H- RJ ݀u k͢7ka;a+)luO4c~?%L\&R g:tBY'Fe362HZ( )9̱GQ 3@^q.YYͶG%!'JNgFKDkH"Ӕ2zBVV ;OPU74$q2hluH;aZmMKaX@ REdmqu*?B0JlcS).0 \pޣAI~ߏc$s.a W/PxCϜ'璞3*yON"Vr펤Y,VP{b(3_T$SE!彈#%m2%rw=3jN[t} jg8'yz%fZ/VD9o7MgO˿sNH݊_|NS ;X[v߾t:P]N#M8Hα*7[K=t{x=aٞ,ox駼ECsĉ?zܿgdoSnؽOYs{mWy~q mp<93SJ!ƈmvd ~1)gS _ł%cA/wy9p`.dpi 77Cv)E^^[jj[NGV9Ϩi/=~ o[J]?t4N΀ #(';NO<咐"7KÖ')p\ ݁bb!o: SR9:F$evLpRBNIνD1 R8bY'%$a<E $%J%*)[CW\ĪL: c@E Y9yFQ//N3oZ*9w'AL)!%S$OT hqMN(6-Yj52Ѯ;TU3 3(QȊX/:9N Hz:O% Lid 'әqQ DӴh_1 0HLI95Jg$)JBd5##j-%'lvGh3[LUs>I6pʊfQƑLAXtQb^Դp ={EDQr-U,뽔>F:V|=*^u֒&^'kl5O=jк*Lq0Qb#%eejsv)Vcmq"L'B-èüPh<ƀ[4twb/70J5FҐ-,A@baBͰ 64[#i4nN=e ,7+1A{?_O$h* c*HҸa<`<(qЄ8 洓fna.:,٪TT(kN3X¡mE䡣f hj u Q3g٠Z,!3y@ebqqҖ nWD#9lN@e=8bYxGL[5ʓ'ۖZa*G =9J X QBdPHFYITrT! 4cW-uېr`,QO}8.4@6iDy)M GoQa"{)·$"ԧlwwP K%$Sc.֨T(c+GW{=)iŧe<:'ΧTռULlP;6f֖xL췾ǻoX.\xrCH:2<O/gR/~ȴA{^y*ziKfp܏8 //0~Xn6Jx؍i)rd{Mc=1?yJZBT7-7O>~~@+~~9~@v9h? _S-! & R)j㹿ݷw\'0qKǞ71`"\ܐPCG(?T5{>%% U9;sAqusͲ]p>pmM"5h=7ҵ]2TX/?_}+aٸftgOnwap}s9\9\^]R/߾X,y|cu'!x/"Tq*Ji"LĢ$ 8JH)0=^j1$K00;=0532Y)L0 #L,(/2@{! ?cSgjt` r0IAY,m+,+(^e -y!|KUɡ0Dɡ*k;Dߴ5bb}08H9FJN躢]݀^F)i}v z0sյu{'b68b&bǵSӹG3Yt)-#YJ"cĔy"syEJ.IN;+y#ecg X=C"' %e*&#vq4Xb8u6IEtRd뉺c=R_r6i. 8IaI<䌲ΌB 3>A&tC/(׹x^B35[4BIϽ'J#v~ A5m~p5b"Vó|",]$WClw؊Ut"OVRXgƉ#H`-)Lvw0EH$(g-ɌL} z:Kؔ"1Du#)U/5[;%cƸVLSu&Ă5F֢ KȈ [2cݵC0hV % $='_r(FL@歷+1*MDPȄ$f  4bUDZJM-vJ#h]c Y 0L6mwJOk9[e\{tw%eHl41jE1;tt@__3y/BGztQhg%aRuK!TuB J3 jFg=j&Ab1 5.U[ad<4͂7v u:=Y9I}\❧?҄ S?桕[I`"o3Zg(TYr]/F#LUiaPB{#d84 $2`WW v~$ -31k40#{hzRxz9i_4KBiV-E>ZJe773php zBcpȖ=!rnG2Ŋn8ͶB5S(up:puY-8;|n?#^Tk'xpOǼ}{S,|vG||͎~;q*O.6h4y k[0!|:ɦ;ڶeg^2<}ɹ9N~)c8uLfA7lO{>yB1aK,&8n, e]zY7=zƷob ^5D}¦n)=^"^*f0R-[8ecw$znoo9 k ooo麎.//8 0V :ơۊ0 c4#b 䘱M-$ qlc\ fxPLc*+6('{MK׉;De,Ssj#hMʺp̨J!Y6_ۚ7Ua 쵑hCR\M1L5~ThqfLLC~,Ny2RjbQ#)%3q&+)i4@4LS,[m*Jv`' E^0ثx G)L玒rHͬ׵T]bg$!ѩr k)5LX2(~hRD[i/%2dS& j[2H:|U8TI\PE(PDjuJJJ68vf]bllJkRe2%//G?S׭efpԌh a4ըt:E2#~esZDEIN^Y|q\+Lj6j0`u+Եݬ =Y %MB(QV}ELc c!EY'˵\Ҵ,;T ^Y"i8nAΒbA)uFxZ%e(%Rj4Ql1R7XcQ_wvSE@(QBA}[+e3:*k8O;fk43zf| #ZQq:0"켧Z,1c|%TP1|Cv՞q'|*53P!ϖE@N4zj[LO>yqzՎYW_yePqw'?dwL nGS{>r<Τ!q_|œx-)(J3%vI4;~|ˇQ[lNgwZO)ɒy݁id#Pj_ (g{)k3P.M8(LqFȩX*_cMWդ)PTUMLf,*BhrBp&i3JpOPaYL[TNzI#M-%bѮeRӀuCL8Ơ,WHb;o%)e抩fD%g*p"8hkl< g/G\YW+a: >՚aq&]Yz޳|L2*UR*$K6eɞx`CCc ÚXOC0`ق!Jd&&Ɉ`N;!5" 7n|z9cꚱDN{wwǓDͻ#ݎ]y&@TU ZqjqU0Dcvtigxzq-1ݡc(0Foog{/.yX]SŻ/%6[tu'[ ǎomf-u4 0J̀hkyxqnΰpEQW @ӧv;OI~4v yk'"Y0( ˿c< _ `lyJ3T'H ̬PZ 6Х9`r枪ۖM. n'T,vo$ m+JXz)۶uT"aqtqY'NLb ^&(IF`BRFy[uM̙4ETm )Ɯ!Ry-%#dLk)SYUmTs \9qib£SOiXc ) SDTP-*g'*J\y,IWƎBgHc BWD5!DZS佋՘OY_>g<rMC%1%uXn41![E,%gY"1UKhE=gguҧ)Br!Vb?E>N2r(PFħN=5SPZȺ@Sފڑ[,UPU Ee|Ӓ!#y<#fpŬ=s_ţ?@GI,g!-pJYh;K?%tBYQRG3UsОKBk-q'ek,0b)DDriC .Rs`鿕ٕhY\YQo06tu=)lgʝĊ ҋh k2,:' '){/&nUP Vbl;=r8{^z}'c/3֫Bf6缽~p8Ҭ=a<2v;|r<?Ŋy˗}0n<<<0wXc93sdzƮ%iL=c -!EN+W3S=&?QGO%777 (X?3*ʌVErR0ZD4J$f!4i"LPՎkȁj %^G69L~P^fqR(NYΨ8/I$?i|C>xӟaAJzTFKD[. VH1F:5ѩO䂕ĪBňn7ô έePX-a| O@#G\0|#i$_3ͤIP1M5Yè\B Bv5c6+jYop(b_e Q~E{50OqB![yUvUIj4EF|2 WA $1I-^ۈ|ívFxw'[r뙭"TJuZ(Vu%o!S?Ҷ[L%Q\~Ceܟ+kf")R,&w_ACUk( ."!8R_Uى`18vKؒf8Aԭ#+֚oY]G?(ax)(8{U;%H䵿ǔ[I_(Y3HCiC@ LG7dUQ+BܣS՚xܑӌZJ85a2h8DuJ&v1D7.ӌ*oxvGqw?d:B/w>#non8ζ<$ȳ/x4el\q۱n[|gW[N=y&ŖtT1;Din7 8+G~x梡רxzœO6 Mp8 ~|a'>%O|W4 7wBNl6y5o^]Rm2i` [s8 !xt}OppϦi^]r5W"0 upb]tFGb\s%x:/ԩqb]7Ogv#/iF~59EV-=Ï>՛[6Mir~y=G?10T5}!!(Zr!S?0 YVPsqZT)BѴޢR$-[,dAz ߊLY4*(Y\LĔWkZd\88z3F X0J'06k5ÀU E k`):c]r0J uZܲ:'4ƑvuARǑb4Ya1Dy8'8AU%PKJ͋oADjdj^ؑUmEzCL[K:R2M#"2VY{<EAfYXt[`ѲiP hDT]d`Zbr=Lys+^ʡe F*gdR.7 g:pUފ3;C( GIZaM!lNww:?׿lݞf򧱲1=g,)¶rq?xy@ qg}Ǐx8]ss>ڦ?׿ 4!?p4V)W|K| q>[#'7WoXm6ɍx2G;qONk5wy~%{?N.pѳg?ܳ8%_3.>!̴?N.xc-;_Li+w\(yd;P]lh}4Og$^zKÚ--8l^߼e+̺n馑=cX]q<XWxp}sCU C/#3ofaLXW3Me ߶h'DV(0R⫲4rQPHǣdv)[( ~/QѪ+s*b(_{WXNbVǡ@)$L-9 (BCWU$kEyYM4 dFR^7@}&kyaZWFPjUx(1i*Y)-j|(Vu9 ([\bN8sc;`/AOfg˙RFR8֕|Mi{C)knsF~%^„-E[ҴB++S 9}E #!L8b-wF6!bJц)wL[~jPoDJ$nL-]J(=JT0S$68׆ViT娶pq^5Z9a^PD-!f|@U0MQ%r5%MVqXZ:u:SSJp EBZa8YmdAJ0S"|/R5\={_WmC*Ο{ q&GMQe=FKDIJs_A^Y(1Nb 1U $*P: ڷo"82$te@ #4n0.ʼn];ic1֡\+vi59JpM#I{DtD)'hժDόn)y-jteNz8n*C\RtB"edt0 )'*MP(bCFFɺ%G_S<hdo,!d)Q,fyVFfT&GfKU;ܱ^@BgM*Ohk[v?O]Oc:T0? Di\);+Y6Nqgw(BW5*ϳ8o^z;BP\âs[-dy}UcVEa!=$U% ki!gt_OiƠĝt)LXsqd6(n¨P(H13fr+t!j-Cy\b|+!Si! hB:8aBŽ`7h+pGB*X0maꠟ9{\s$ٮeW8z|S ,Ȓ -c1aƠmu%NS2lBhgΐQDL r9'Ŀ"okN~T-ۧ2VW-ߟ o|<\sŰJs:v ?!uQ5 ȳϠ(]pcӬ[La ޲1~G?w'֭%dH%O=b0v|МmGլ?9=I\UӴϺ/{qY_x; S"-GOLW aF9˶iخϹu<=!%|ͯ,O}GBObuG?o~͛W\\wɯbZ^<{<'W_">ׯ#UO{ha{BHAb?'U@eG_}mN dkPw(xNxJ{bu-_a.0 u2Gp'\ܪjDF|> :)4TUmą0:!9 VD W˜R!wcS!+WLVc4QyRw} *9>BJtJZ-En8_t wSyxx8u;3Nȏ~x+u`'a`{~7o0d Cyn{/P&3vdeX1x8Y_]`n"6ȻSN'\]1ǙW5O 9r:l:-gl6+981"ټ?S<3u=+_so)Xp|Ke@ٌn*RQ H+<.SeFR |#a(KIw߬YIIRk1)LDT&p1]8 h%e,ժ%ܾJVQ+)Ѷ()J|W5JEMiG) yX%8ɬ~Tb )V0%zWXQ=HEFSyn{OU[NU5J[QNcR6R7^1!LE3$8仁V aIP^) y)zSI͂BKwCiE\M,Z0I4-Z[ yЪgd3Z+ cLN(2YZi!2 Jj q@J"2t2p9EAjq:RB{UvÄkn*1sm#F8c ER5!h1&HQJ3G6X+LDYy:":%GJ)(LcuR% AB)t(q}to=ْ8J. s'ʜ﹗IoZe)efEZ%JQ"U_ǣp"0";0uݒZK''1)m#'0R,=ZW_@ 4WOH`s!0M'b 2b|fmMa9$B)X[ޣU!P;CfCr4QH@xc@r9QaGr_5i&# w..G͚fU,e*vk<"ЋYٕ?Ĕe;mMf003@^jb䳞j rZ1J* QˆJ3 6r BDMK&  8,VJR$ƕ2KS(LzM_ (#7M3ZjV D@X#iMֲk1 O Ӯq(#,%1t$Ss-$0tψݷii$v"Fp]uP#p&c\;D(,hQ;>g`jӌ8y|{-_7jE=%̔q$+u\!a ^6J hE ?3؂6+r (a"Ny-^7T)cpag6 ͪzM2$*#]ۻ9kM͛[~w~n o_xc?pDZ?yzg(4?Soҳii MŜsVemC[ޱDĊ=-7 $ZhaC Y9EdtO,'"x:(J;'-q1\1ŁrvvΡY45]4 ,k@љԏ!%ڶf?PU/xENw{>ǜWv˯x~_Q/^%a?l6wOg|8Ta_\>i+#W;hxϞ^7g4??_F:>{%B%61 -_P&q5cTLC`suUp8ae&..=^?9[ $㑳Sw[ {NVkb8ciaz#=cףk^>ݻ+rL<͆a~iGR'0q<,W+1܊v$ƓSfҚIe>c#cGԌcx`xlߏ386 g'cQIb-Yq#XjB2SyhUK?0$ՆmH֡qıV-=%c:CUzѐU"4Bt۠+1~g^Yۆ@[8kމYYi3bp=ZW0ፑ'vŌ ϳ"0!lָF^S8)v`*(N%KA{r*)7JGL1JbIyGÎT-ƔBUFAr 8r6F} ^H*Cmbc"6iǭ|K0PlJJ3x@U5*&bnѠLS@-釔!Φtf:&,%pF+Jc1P`1fFh_<`TVFb ŀ=S `,jZ-*qq*C"m)]-;ۇOZ"*Ң+-Q:1҈@ #i<`|Cz~4vx籫|'HQ0tv&etv{GEC=nF.NyN_ԮΠRFc*t%bq Xh*DK WIyjaŭΨ{+cE/-Cmۚnc<@wo,+ _gr츻?p쒿_X?^7h/=۫ 9jTm6l-q@ljJqgyGh%WW;7|3>g|哧#?G?A''O=~ / ߿]^o7|/|c0Uwq"zgqx߽˿%SɬN11sYW~wĴp%$jyw珟pX7Kxr' 55a`677-7q,g{سjZiaɣK /ا Mܼc,&NW H%_={믿e ^eVSYkT/^0qs@exCNϰ`Ek8<} VsnuŊw7X;?sYj*r4E(8LW3 q iDY`[+ tbjIW $( {"kפI)bEi#Y *eHQDI]-9"v't#2Mk0Z@2G;4Z ?i,ђ.#x0QR4TVوh"SƑq섦[`4F)q*,j(UDhL4fjIc8lwTUE.Fq8BY2jy P 0 B2]XT^6[VC)X!؊CrevD+=47 7{Rn!iG,a'1E1YA]oo œ=axx p|sE*ܟg#Lc5h$/]72nRC&L[S9z}B< $%f㙍ςB'i͊|.LMzaLps-e_WAI-ۢJ"1 h窚1 `u2Eyy. L5TʠH 5A9v{[đ"E)_}-! wPPVǀyNa%&T m|>[ci)T1" {>h-pnQ }dG$1~r)7KQ  Ȩ$4ňN|>1mjC*["*mC =SZC똺.d3͒54'~$SU8-=e Tu1caV.+9À"JZ* ]kh<3nEV'ShE qX rmgf*QU35d 0 D05Xo0V7EZ@4$yڳ b,./8vt#ho~[դXL1gϟ~duq!1kƁ~8s l9CG֤8Lj4^U Œ_s -kʌeŊͻ-ָJ"9#'糟 9c:Iy-?ُj C_?{b dh_/Y9yWFqoؼݐ7#o%7\5O<]^7:=}DY0|.R- a?۷G|ūs>oXהq?q)a;'y/WOys>y_KwNY3{S $) hd M,Y9E7yƁ!ǞeޛZ=F[кPU-:Gb hq"*ؤ8EN[A!vʀmjJu-?l&L׆eکUl!Aڑk+yNb$1Df'pV()vV Bx'n lUWҎd!B^т ҟЊ:ؿ,L 6'BqzERֈU^6'#eCRRHYp9IhCLUZb'o֣%MxrDw4 T IĞGjB4YJ̳Y]#u/wT2rRVOZ]{"iO)Zy.9|4X_1Gl}B&TPyBGlI.ߠ̙{w,/XT/qnׯ_3SRs~s~Gܿ}Ǫ0O?'›7xqoxK~g7ߣι}wExoӧO9v{Bho!i~wM c{Bw^w~SK7|;6׷[B(~q{{_~ 5][.I ^<6o,'|w{?]Ɯ8v%[-[b`Ys{{:NNNxu<~_.[r{9ݘh>:K™kSa&v7kRJM8NVk=9E?~~|O/.1Zs1os\@?mI)LT:Ȑ'R(ZhB!D|R/skbB2J?T1]7xcHiD;E"fv1C*@,#([ hɅid(ZC7[|d߀UX)y\Y臎#M`*2(U47߳{{mk` =aѳb)F>*wJLQrʠJbP^'e1;G1N%)B)=`a'q%H5RR$"uJ`#1d)eäHPZY")'6w-1ta$D@SR4駞U c.77ضKɤҴ8ԋ0"C8!HDFG($"1Q"3Ut(Ke$VC)h4q/X!R/ W7ŭa0FdWJ"#,41a\Pn/^3[걨*JkO IAhRxUjAF5%Q!K@L*j#׸ v-h\UርWhP%QWK~w?{B&T)hX erXrJm~E Q4Adtj5voȶO\FBթ !$c %i$$)-1EJȋ\2#ʶ<JU-(#.m?s4Gpԏ.AKLbR6ڠSɻ3GUc+)b%vw ZP&;*l 6˅V> b*o!Y`["%$a؆d2qЫ< Jy4aUղgKxCҨ fBFHΉ\ic4qam \BG )QMM$a 2zFDGQA'1?RЬ|νJ$C|mq o^Y%Џ( tĢQdf `x%L }o9P МKO"Q&Wai.ǎ-RmK;p{exr]9l{^]>B[{Z裏GK:t|ꔯ >aQ5 t) Hvaz9E.h"YJ) d,`ȳpS.6EBwD+-19Qr;' rcO9j1f&^S-LӀ. [/%PL1cz@8g)&M]S2-֘ʣg<S ֋n#&R<-Zy<@Ey~b<j e 0PohN>xx-,nzbR #X8k1N]S_@zo 8K`pnj6F?TD{iY 1ZCJ5FSK-0Ai-ԙ%킫=yq@”T(H̥fW/`虦(-4 Z"KZS21GYmFkǘLq5i\Æ< LYr1*O<ӄU ƭK]cHJQR&vGt"UzD!%qטL{:x*jN<3e: W0[5&69\Ѯ0'GWS#Pm5ny"ݬEZ:)$< =iU_RJ*fU5nD{!R<"͔zM2zJ Z8 yDp60@-lPWEBvhWsdAsZ@ @U7R'KAGlSPq"[ *t$`d%LlH0e嬢 $/ ߽cw㕥8C,c^}!7|5?y}I滷|W{Ep: 6W}qwä4_~fk8S&f &whm͏~'ܽ^{^=yA.pzNV+̢&ɚ7w׼x_\3G9"H斓%BZ稫kV-a\=^+ٚi7rQ5쇞[łfC8Dw} oVí aij;4wDw-1e> l7[bNĒ~̯ 8V<:;!HaڣuijhSaqh/qLjݢ(ih H43p0e=-%ci*$o8q͒#o8lnacb ?o_'4q<(V}OvúFI, J j !(In[V'+)h;Vg0Ղ>̷g[9LOSU8!U9fζB}_D&%rP޳C['Vw|bp=S8UšJ&S$DHAS 炭LGSgٱZ*Rԋ%Mۊy;N)gg/T7i[*(ӒT$#J9҄^4Ti9j;?(պEKi$%*=~QvPR`?X: $-D%ѻT`j 9~ #INHe(?[^J9K9CKʙB01m=H7H+ɼg&/%J+9LDuUrGAVHV g۶8Dj5s3+]"CmX'ݓp3BfpljMGwdRfzBpΒS AfQ"kYI~~i= {(i*j |H zEsǎGs_=P;x肷_hCJ>߿)V-0g`wiˣ.tt]B>Z7i.Z~ʻ_=|ůKv|ŏܢH}Gۯ߲~rI#9=;.42a-4kCֆz{AO?_cI'9˖O>~cxEÇ}ț^cwcj[;T݊v(rN;;-Zk}5 ;'Kc/]T#h=![_1ÞϞs4!^>̶;K^w7<| WWQi{>ܱ6z[ș#0lW~K az 3/RԾ!D8F0foN&eu蜰PĻxAc C'^FUdd4EA;YqR&MѾ6 n בF?C ͨ`Sm]@~Xs8*d:*TU-7YQLΌ-KFLR PD6=YBQ53:ftUa ,5FC qg)۞bO2>+V0=j+hv@8tFEHF(ef)K69`Kʂβm(|%?|bL4%i0Џ#7چ2vĔ횒9eUe8޽kЕA6غ%[U{YSg\BYS@c>8Pݞ͟)UNN?W+R:2EČ)BA$>fhU(I=a88\+xL;ݑ%%Sד[>]:gH\` C&h-m<8 բ!iM{$k[Ț 0^0Y+kKHdbס*^}w@iu}!D_Ͽ~%ֳJiV\]=sssO-ۡcQ,)7ݱlFuU=S?p~rBJ">ǭP .O]]3=wߣȜ=d: ?nOngxB {.^=~lŗN\R҆yW.3ٱ$[3;vo"WUUҟ{^߾c{޿&5ooްB-gW: H|x !G~dU7OgLff('_5iGxyVb}uA']?fN|˪=칼YtOLf67׼y=WP2cjJ޲Y9p: 1fN3\kJ7 uj1gFt*T&9'/9<<}u|wVu6r2Ģy!1y @@ 80BB"W RL//PC _}s󹣽\^]On7onVdy Yevw8=5C w=dCo~[a,M) ci '\|xwϋ/_?o0Wd3v?|˿N>st:qqy/_ohV7o~qd3Y5n c4kN0N '56FWmK?|`<ܮ9ws/ *מ|/qbj9\m/tül/w}o Ǿ'#Z*ypXp=/_"#u⇷o#=e$Hf֮njnٵA77ϸ?R\>&j?7}Kf?CC<)x8'pk^ ̻[V"W m+x?MتzX+e< 91 R%#ስ,N9 R5 *lSV #uےYlV`{U ,X-TM"mQ$Ge*˔Qޑ*bjOVN #Q8t݉'IY8b % (UƘJ hq 12LA2E+!3߲^aH3$ ]߈1[9إVSr1?U)DJMMQ݁Q̫5sqrCfE?ԕ߳5&< KVn"r}/ZTnEʖTC NPRɨzGV]1Ml9h_Õ Gjҏ0cU"K䤋"=uݐR d+) 9,t+!D!,Z9B8_ =*IdI{ak61MM i!()pΊPM Ws[dd0g6VC[@i# 5yP1弔#F'ae VlRxE"fD<:1v )R40OaVR08>a`gJFZ|1x2LDb Nr ePUy+N%놤k ;1}x>0tD9A$rU׬)A0G;*ϯDdr.q+t)YΪeSRaݕ}*%3Q3wHDI}Cʲ,j: \(=WLj8 iÁa6('x343#hTk#Ɖ@8Zd68J #Sf:I[1 e[%"mIsF[Sy[d8HWQu+'E %ndFWoK8㌲LH,Y<V"DJu#_,[ Bʳ%D{B*GR/쟳uXtk nKkrStASʋGj(+$8g\b^d)2M1ev-w#;J!=%̤i aH$inZS7( t\zj j΄\Utjs&$N 4Tr WTUF 4zEd-Τ0dŧ_K).OF %nF~O?{E74n*ByR9'ʑ?X]d2sLݑU]33ÑD$s8Aě TZd.KfTCڝ hՓ5_3~]Ѵ;>|54mCQ_տ7yx{n^+-_u| kH4˖-SB"D( 58?wP<토ҹrϙyqVc4,;e^y5$q |ݒ*4'|%K㑁\[_ 4x Žc$E%{I=L8 OQp@ լP^9&!nSφ1Cov/DTrt:`aZ!ƥ ƙ#J;j!j_QPA::I+Ҝ*db&u!e)Fp6įL)k-1$Qy8pNJd&&H vʀ u+V3f4H!SUFQ1sXq|LhoÄ\d.$SL&u"4MUCU4BI$jad#غEg!)^#)bM;r T`Hqg<βnJ1Cخ8v=Zl9u~h6kTbծO9TM/~%57[oW\ᑟsnxK8O|?P£L|4Wqwܳ{͌:ag莼?y= J Ӏiۖnjwy8cl_\տ QƲ~4u^` )3}7r`r_s:cWy?ٮhV:e'; ݙ&+n?ᰇ1,ݎniSq5ܾ}'~#?|ϋgwG=?_J| il4nfY>||?<oWB}aIENDB`instead-1.9.1/themes/bluesteel/cursor.png000644 001751 001751 00000001556 12161555565 020771 0ustar00peterpeter000000 000000 PNG  IHDRͭ'sRGBbKGD pHYs B(xtIME atEXtCommentCreated with GIMPWIDAT8ˍOUyϹ~zk\^s#JoľLiQmrLZcTBmQmFB #%]H4cYj!3)43͟>}<I<_trgN-"F+8S|q78YCT-ҍ;%Fߎ13=523=3'ĹǷon6-^v Q1o8)`@eIr˵պ5ڶήm4w}{e3=Ek \UǾ<?=Y\۷ ,_d oD"7$WV{PɑoI%ХBX 4/@GCIENDB`instead-1.9.1/themes/bluesteel/theme.ini000644 001751 001751 00000001722 12161555565 020544 0ustar00peterpeter000000 000000 ; $Name: Blue Steel$ ; $Name(ru): Голубая cталь$ ; $Name(ua): Блакитна сталь$ ; $Name(es): Acero azul$ ; $Name(it): Acciaio Blu$ scr.w = 800 scr.h = 600 scr.gfx.bg = bg.png scr.col.bg = white scr.gfx.cursor.x = 1 scr.gfx.cursor.y = 1 scr.gfx.cursor.normal = cursor.png scr.gfx.cursor.use = cursor-use.png scr.gfx.pad = 7 scr.gfx.mode = embedded win.gfx.h = -1 ;unlim win.x = 34 win.y = 54 win.w = 480 win.h = 500 win.gfx.up = uparrow.png win.gfx.down = downarrow.png win.col.fg = #cfcfdf win.col.link = #ffffff win.col.alink = gold inv.x = 576 inv.y = 54 inv.w = 170 inv.h = 500 inv.gfx.up = uparrow.png inv.gfx.down = downarrow.png inv.col.fg = #cfcfdf inv.col.link = #ffffff inv.col.alink = gold inv.mode = vertical menu.col.bg = #29282e menu.col.fg = #bdbdbf menu.col.link = #ffffff; #dcdbe0 menu.col.alink = #00ff00 menu.col.alpha = 245 menu.col.border = #bdbdbf menu.bw = 2 menu.gfx.button = menu.png menu.button.x = 742 menu.button.y = 581 instead-1.9.1/themes/bluesteel/uparrow.png000644 001751 001751 00000000332 12161555565 021142 0ustar00peterpeter000000 000000 PNG  IHDR 2ϽsRGBbKGD pHYs  ~tIME ( '>ZIDATc`9\󟁁?8"M] # tŌXps'v0$Flě3)s'v@5 N /iIENDB`instead-1.9.1/themes/bluesteel/downarrow.png000644 001751 001751 00000000355 12161555565 021472 0ustar00peterpeter000000 000000 PNG  IHDR 2ϽsRGBbKGD pHYs  ~tIME &HmIDATc\xS{kS! 02000Twk 0~@$`1ME6hQ@uK=od񟍍?AQ3k~lIENDB`instead-1.9.1/themes/bluesteel/menu.png000644 001751 001751 00000002371 12161555565 020414 0ustar00peterpeter000000 000000 PNG  IHDR:sRGB pHYs  tIME'$tLtEXtCommentCreated with GIMPWPLTE))0     !!""#$#$$% % &!!&##)$$+&&,**2+*2++3-2?..500700821:66?99B=}Uo9Uv~'>`vqN8 "aӝ"iFMtPSԒb򠄔_M~IENDB`instead-1.9.1/themes/bluesteel/cursor-use.png000644 001751 001751 00000005552 12161555565 021563 0ustar00peterpeter000000 000000 PNG  IHDR&, sRGB pHYs B(xtIME ,FtEXtCommentCreated with GIMPWbKGD IDATX͘PgǕ""g(ԀQb(ذbAMl렧Ɔr8Ω bAP9eAzYRwXT?f\fDͼS`=ƖaA`~?\E 6nx@Ze2YSQQ R*--^wtt|^$=\Pi ^Ts}0d;>=@3[jVV]UVm<~xyAf /uuuTJ͜9 ! q#ymB̦<|pRrun÷we545Ç'w,>٪U{ \J*6 AACFv1Z۷ҥK ?zYVVBٳgSHEj@֯_|AB Q W<<<(((H%%%xeXXXa~~3Qp N+=P\Llٲsjܴi Ç#G66wޔq㥶Pت۷oB[nILAPl=?׷zo ,zkcdhǏ]pANl=zOus_}b"J+Q+Zٳ/nbγӈ'O^֠.j(Ԫ:@Ԯ]6܉'RPSRR*g脭[FbϞ=ix=XXЌxAq[( cRCBBmBWM~Zzu N&9s&mL)GYI8pAoJܷoU/`;;c fYXXC!'Ot=lْ%K"`Yw^h_=7666ѡVpg[tt2/""BaddI2K^"+C)G H% 7>P.NFEEɠD:|U ¡ +gJ̃+NK&OAċIwE-#BS>xo &(29 k2J!Ɏ=*sҚofF({ک0-]P@ܹ#P*OQ0qDAF'(4 7 3y^z/][;.6jʋ/Q)RB'$h?H4L/:`0w\A|0FOcPxõܼyIB {I 2Ν;sƍһw KPbtΜ9q =z p-P8T{<44[nӡP0BjYŧO$ ZhO%(/SNc`PcPnhrCh3449y5Q b@daWLJLL,ČW!^ƻp7CMyF6C`ľ> 0iddt[hEߌ^\uonQM8(Fs2qZ<k׮PQ{a6`V˅1]궁$%uuu7o0J+ ?gQc @ {|"~'?Ԅ$@~f5"fS℄1MM>JG8:1^{Aw|&ٳgmױ܉}>>i ~_hnpty1&9"`y6lRŕgm `i"+c|ʢY{ζ̡LIuO'e Z˔kڡu/DDIENDB`instead-1.9.1/themes/bluesteel/bg.png000644 001751 001751 00000726236 12161555565 020055 0ustar00peterpeter000000 000000 PNG  IHDR X'sRGB pHYs  ~tIME *X1HbKGDIDATx콇]u/z\1s}#h!$↍{wכ78ɻ\k\k w7u^m=o1uYu-JYg5/nNO5vmzxq =3Y:hZ h=YnޫڠJKVmШgg5fs`5cWJ.mVQ0o#EXk?ۣV;n'5ܷ[7G䚣f!oF[ lԍI.žpt;"zk|#mΙLشuHKL]&=߷v:hoӝ-? pw̷+cw9S|khvSї~%o:?̾!b>@,Nk~d9P~QG 6zcM{B҅'$ 쎼tBҒ@i/%O.{ӫuvx݀GG1(tǞNFD1ܶ>6(Ż;ogOUvf;q!nڌ{-Y'}F5!z1+E?oOz7̿1vb1p6ԗl&=_#y:ID2O-^-XrJl%M9Nazݧ_)>둮d%_ah J,JH 1D&M,`?&l bA4?bRw?ktRпZw@0V1FoVmN U#c f5F4ݶGN_FV#vOKH1X) 2} =Ӏ8C\ 5a<^>`W:90V) DȣS@K vb[]{罗f4?fO [5`?CjYd=έNJ~4:!6Oiy'+v}:[Zp,*#AbnOͰT-C'^օKe&W)㤫C' ٝf >6;R1H9*ƌE&J!?N'eJ<T hO r5Lp,:)J$@!#n@^XަtL@1=!|纩|TdcC jF} qӫjO rZJb,K5K9@ TSd`+Z-)f08ZBXuٍЕ_to6uhmj#48&;*dڂAōԾh|+D(8Asר't4\˭ ͹+nIӽA=|ďEWP_5o P_W;g-Vk :묤)涺tSO~3Cr(eih}hE>F= Nhͱ;Z2ɖP8a0mD#ڊU H@FȹQg+]!tYn'<`LQCϻx9Ƅ B2B)LoӔ-|W1ʡ"}<Ủ' ?ɖ9H&G91+FYz3/tU؅EEa `VDWa&J[]#)ypeˎd(+3`JxL6xWǎ4xdٛn6xE,.S c7'5Fb"Tluk0paXff '-b!0ln!!2Oב 36$W;&VƒeSs$ա4hu6Ic)FH)EOќg!%u$Ȕ`HG^@rͦ՚jwvJLFɝ GFK7d*3sҙJYtl9<)KM 5k/(̽a<$# +-nz\#-b:3&beP t%X{+{ xKȐ8+$Jh߂w DUD(הt%S1ΖYlڿfwuSf_vWoA DuEh3GiS W奖Gf!]xK?Du4,**>;E[;hg+9geVƊ^ǃ p!Bjq~`<zJP{rdIv[aJVX}>l%A*UW!Ab#]wG5U9gƒ#r,x VF͘ekG *mjd䅜X/<`Q+D[?Ҕx_3z3RopE%4)z63L0do0j6'ri<XщŽ_y&y|UlLRev&_ C:bS8"!Bߓ}pٌPZ ` xa4AmAPҟ^EzTs`b,雔9f0.|RSLnu=6-b"r&w+>K1 H+1Z۠Yh3ubxGBk[ p*UeU0|EWwXX4ߴϖz:wfVDO*ʆVaj+r7e>hɋ+޽O丙&iM21 S7$@.SdL`#Q {ZY)s#@ѨSX}Ib/<%eN 2B&ʇyѨe$|IQoS ob?)lkG,.2e/-:HjXwD\e $9ԢwN OS3͛"4 CF 3R/h^"ICx4/u!u t -^TXOkԹByXM[ ]ٟ -0aSCKYt?44IP)Pto*&!kLXTiLږ1Z!,"`O_yRM*Af鶩RYTѝUܳ3ƸVblR16}gXfG(R.=+Hò"*Pɯق1Ǖ..ը ,c)?z5s IH6ZCAÊ#*3!ʬ el`D@-Ӥ~s~m_ȇvHy$^;yfڊφR vWOA( ^=1Fë\ܰG n8sV$R *VYV݅&JԛMv+imUy8TxXvtY a^tbJpU 'r?%}HziVe@·9'fV- }Q.C&جcz*, b #RXˆr+ ` Xl #q߄yM'̵̂S+ G> u DOB.ԪE ^/O+񦈷+h~kc 5\6u.ɐ5ߵTaY#-ejU`i\E$fE fEe 3!j@_La>2=M?`B-Flu] HJe5[8*&rzt%OU|ۚBP3#= Y3mO &^j|W.K=ؖX!ϭX ӸĬXٻ!SVb޻ 0<1 M%r L4n]#RY'32͖v4 6F1P1ҌoBks0֑r3&122TOFEmR"P)J+ +x! |`_ˬV:BVf$1?hp!ӠD]@Txz|°N*$)ac2ojn7ɈjW͡fca~5%JՀS%4T#2l5¬&R4 <=m?SꈪHs{uUHnCԌ0Six3~pf3fժQP),O`5bJ9:bZBD9 |aXQnc\8 ҄vL1!3q%d]Q+}6CU+;Vi#e]abr 2^p5pZHi*yTv [%0ķR9}^7,^ ]29 Zu5:V%"ڇ4aV{T'Z9c%i:'id?Ji6l*Yrͮb e*ElJ'ٵ",@{ `t  `¡7 -ef_;V`Ϭ(7KsnWMQ'5G2,]ֆP ak(&}kDu^0W ) N0g|KJ{`Td)BXo'絴yyXVJiӱZQD0=wP &*"ݵ;_8p):Z~@5NġEi7iFRVMSvy*X2"6DJzċIW e[0+͒44iJy}fq,J⢣eC1B{Q!Ztɐ*.b@!=^:XJrM.:qgyc`.m\=;egf}.uBk6z Eq ci V:˃4VX7=X6u9r 3l$HEl:å1lN3㈳Jl`zVCfPdžR*GT K$ŪӑabqКlc s)k'9S;ѥL{Dʨ YhI,O)9$F4-lŘ%r&΋ڦڨ]T'fӝr_ =ø* [тRa,r?LH~Y<ݵHВ-,=6N;aWmҒ1T$\3Zk:FVIK&objI.\YvD5u+{f ;yc\+a$beOy:.b;:A"~!`,_ڬo&vtEag-DE<3 T68*f{ g&/M(UeIFJ"5^Jc ޮ0zȽP!Ў9)0CDž锆EڱUt.>Ei-T6KcjJsH8ni-`H%hvejh*dٹi,Pu7q 9[a yZ?l!=*jtG #8mY뀧ܠ&7Xf{UX liYvhwU?(|hiZپ:b, 7È[=V;)Q^^O+W\W]qZ,Q,Ս(U^e#SE8j1Qu톦LBZW (ýHۓ=\%X8y(18>D9+!u۫K/]f K&0^,GA"RM87ָ*аȀ ڻ)gIHeSa[A3sPE?2¬(tajEITf,-KZ L-b,\*[|,VyЖcwN:ZDʃ}k,0_eJ BW5Tʽ{d8~Q y8yeݽ o]ϹJP7 :V>JՕfTQ;TV'L .U[7Pȉ ޑoGUa$7 \"լѫ}r3|EXtz)-B?j:-#/a? ^u@,pA0&(Vm4}De^fq"la4eш *GO &7K`%kNr͜@(5$V ^pLk⺫c, lSnXkƉ<".c=X{/"uarbC1G zB{gķtIf mW}nENG:CњV6= sEfݨŞKt'(0Tt-j"=P[TZic늘"Hɼgc,B ?<01/vKFJk"D+QyfCԉ"B1ZQMݐ}2*e5ɞBL>mĨ)^9FB+ԃtun`lP4^4h Ͼc,M+|WD˜1)B0Zde*U ˻FWn)p%)gUR?M6M!, p66(&LqQq9Vvzg](]){cD]) S4}wYNG 9VFCd*fIacIŐjFEVlF|7LU3dǗ%T-+VLa&kF4v,tr.#5#}}s/OQoHV(daQKjZH꣣v͠vH~,QȅikBuh 0 guAO˳e8jUr㆝)2ޞtC/{%m[>Yg'`pn{әߺ[|̵-h>f>9&MxB۸˵bdQ"`hλB2e jKkdfꁨBz^a5:XIUOhi@OTD~eJX\ Gj$ŪlHVҕ["YBҷSւ҅HՆF}V^#M7D:!GWN,n4Uc5Iڍ1MLgHr j /rD1&aiTKrI|cEƕB *V)r7J -n$-3rt ]k6~8U`&9e1u%XWܰ@\0Xtk ۙ*XWc\<@:e}IO5@W`e*a{ZO뀠hI)t1ρ͖*ldg Sc-a!&Xj o2VBҪB|i>!Z`u*sNQRSc$, NI b/+F\ ,+ߦ*MCMYŧ2mMqD>cR 'ծ&;,tra, P ]-]@W)[(*VuPVt@*HS/TJ=TNkrxDՍV*YF XdXT3:I%Y4]F\^=,*X]W7`=]W+rRt A| U.zu/XWqX >tXX:ʉ9U\xZRCibp#\eɥV҄vs(3cwADIȃUi)c@~Dw0J$֦14 +6 EXfQ<Ȩ<*}WCRJHcB2V ^CIi#8=k5*,aaZ$ڂ F%aAYZ@ KjGWX ip0k$J4]'Rt"ĉժ["Dl 0E©(X UىXA/`:=^,TQZ^50"еc,ttdUCҢցXr~˵]}ʽ¡,mD|0ˈ2osmt_4>8)JW:7Ko^_`gt_Av '<mgb̅V:裏}[=wxxw<Xħas/zpϓ>/=WmxbWܺDwl[G>>?/O~xϿ/UY\ /O|e=xq;>q\]pF 7ZkF8S v`w"NǑR_r mx}B+,[x]쎇?u}>{7x?`^;G>> f'}hhx ߭/?p⦅z/=;ם~G[Gu σS~tTv? uOtg>u/};_7w^z8>? \[wq=Y\|DXn2Y9rJ4IZ19+XfܲUU'`[y߼q Xp_XN?W+s_-?C9N\nϼG?鮇^HXy|k{phgϾ_?ow}~w3_kfgkv˟o_W_~_o??~?bo~o8h~a; Wװo)hx]pF 7ZkFNqW\5XD`qt"]Ɨ}]a[?O̴^vsޗ| xT<64<<tǶ6sőcܟ|xc~\{6cq}?ηw_ʷo|O#?ao_W=>.EaU6 ePP T]R X7nG0 Ï<Ʒ_uێ8)'ǚ5;W5|C|?ϰ&x]5ϧDΠ@WSSSg Ճm7y1N87#8;n޺kV"ϑ'|^r&<<X/+6߶rW܂(px-É+Wnіݲv hfp0l^XlݝwmėsN+WlĶkWeahqE6. ۮݶr;X6nسq[c;ٴiںuUvmݲO#Dm>O~c/_W}ߣ?` I#S| 8&kk ,8ȩ=V__  W8mGs%օ9۝_z;{laٲuw߽,<ơo}[dŭ7߳~[߸?֭7 ] (W tV{=Y$v5&n?5c0OY8޹ w_Ws0Hn7znp&n^j{{k.5x?2R)$# w =N>ю?N:3f``wg)AjI %DNeN#X!gy#`],iKF2պR_ i]{3CWwSN=ko|2AW:nqW_uv8k3i5\ZX1zeO %1:8Yh>fg7,5p}4=ey.7;CyF 7Z9պ@T$yPoxT7=}qV$+jhjD qǝǟy \z[:mGqQ؃mؐ8O;ۉyvb?SE;8qw t< =3p$N~̚ rS\hcq}lx . xHp}-rđ8+őcvY8}"^O#@m+ĜH"{]GǟprV Q#ޛcʀKaGkbr8crf>7'_b~hY.&enp7J .W[6KqnDU֯ߍ_G94T+STֻ-X): p]P3قI$ S}h dJw̋=^PHYUu EcM]EF:ZW_Zs{JwiYabbв@`W^qKq &ʞt(%Qo_D{@GZ(UjIw BBvT{2ѕ`;'%`8XU:ց xynI X8k~BP#\OoE"A &O?37lݵb. \?/:ѥpLӮ9g)N7cun`x`m{ĽPґRnp7ak>XrLkڝ^0]à  `"*0UepX`7GELܠRns X \cXU90ҺRB7IRTȳ =VkUHuQ*+y&~P)U~`٪~D$AU^|b4}9pPy V*;bhʲT^QsE]8,XA)(h8 bLv=n >f aJbb]n"`@I+a_m뎻\׭꫖c 0Y,v8\Q4АipY]Kw݇[`np7Zp@-okEaCCvrEx*Dhf@#)o37#U@#*9251V~E,۞ k6+pLwǟ M&,^\V}5tUU ?MUj9zH4aK6 Z` ґV ` WV!*ʛz̉eQe|ς\/m.!u7<#sȃ'm* TrN"TSixssV0HWy`V\e X,>Cy+TCߵ噸XȕݵO~嫮 O89ˑni;эЁ0uBk;sļdnbu:ZĺeC; Ub.d#R}Mٸ]nQb}m̘iHeoA!~ړ^وlj_^^%!Xo¾g~GM/nO+Xū2p@hvPiW`ec,Y9FlVeD HgØ*VpeYDbљ c0 b'աYdK;*\(N<iQăXwVXvBW:`s@Yq8K^}_bF X8@$Χ>gӂcļ;qEɼ}`M o#+9n (Ȃ#y[I<ygC-!iM݊ 'mX#p-5q#堘CBL)8},\iX؞/}ʶ C}s#y,`ٸʷ06l5]X|4PF `(Uv_%9E 'X-s&+`/ 7o}eR}Ѩ:uĊE1{:a={ɥA8rB< U&"Xm0,+(JvANu:56~kMrw&١#y졇-)W@Je-6:tFϯE.z8%:lP3$-ވD!4?om=1P1PT|WlNe)Ow\Lڙ^+s~װ]޺ BZ%30\{.hF 7zMiV )mn{t@G t#XGX ,,XURQBq[$XV]K):*b#A)5Xu:mV`ɀE*)cK YNێm?.E8FU4]wk0 Ijo~[?3ϜAͳ͢-D؏3Θ"kg>=aɻɉic %>tgMW&;=9Hw;Yd&o _tlE tui8}Ω,J.rbӤ'}Mw A2w7O]=CgFK^g \wץ>ᝂJCkG&y"w-?$CO:4p nA6ۂ61&IUo[ܝr9Gk.fj'doي;Ba璈æN:ec#N5S=RpL.p-5u#v=u=03e ܷ; LU'd5eoPt;S85bٮペ۞yq%vGslrق6;&cU[-ѠV.&HDZ` 3,PaHAu\[&P~Vqb鐟WXRzHGԹv?(B`93R=9x*j\F \ ,NA-<7R@sl{6 ~H\߽ |Sq<:u@8۸t`'0v\l$;;'vMqv?eë#v cI]0!'39rԟ$2-.0dmQǠw;K=ϖ>v+{Z{sjH6Ԋ09o u{s/D;dj!MdE]z؟>F[`D'y^Dv%q"{y;]{ &v:T׉xBwE.qPdžMq"gAmF 7ZkFNcicLAuw0,`W}".EW <4'rhe k?=`Yq[6Hx4[;qWhې/=X(7zJ躎\i} )}kb>Hu˄VG ^!VuC$ Z c#US=Z-:أ:oE(T:8:Vw)ҋW7AD"ǜplz ő81= 8^qp1':y_'&W;DcY'WweAؐ+v-q }qq#!8+9N,-ũTBNr>ɅpkqMGb{őNq'c㬳;wt{p6x {~.Ɖ&)N ^ q's넀_6'wq 7Z^C7B[>.ĉ'x:ʕ$5WlB|Zq7~+m1/nE V.05G^"K*%(*dhjU-D* 8t(!fV}ׄ=M7q0 a0|6vL%kA]k{)-_lhuQٟng+a";6:\Z\HIzA:ʭL!~f7Lލe$aߺZժ5 sPP+PCw-kßS7ܷStu`*z"VE"12=*rVL-K+wMYlO9*/oK\V`"R/Iԛe0i#,,$bÊd2 n]|E3MA/<bŸz'KXw%F'tW7 t0˧:cf;!kTV9ܑ~ˆ_T(J2+7z͙p09RoTcuچAx  H -XӴXV%3ש+dWK:*!Aa.@ث) ̦'84kgLB移=9f}7+ob̅8$KRoX]2MC<χ‰ZAˍ+  sy랁ϲ HՊQ֥i?pm0?}k]AG:`pjN,hȻg_yTbXEi]iOªɍn_jc&YB$a,$,㎃|/Z.s!B'qK/}-*b%RWNj$|xj^Jp |9.Q=C] cX+W` fj70"JfiM) oᆱ> ɔ'M6"Sur -K}k;;&ځb[sӏ{~SKPEjX9)3t\YfN>°v- Ĩ7Moe(Ce%Ŭi7"e81W|pNb)ojʍIC<kU[oW-d|k]vE}.''r&VhaP6imp!cIr\iYc!XӴ,&c6R2+!6']Xd/J6La-@Z녃bXNN  zKud,'dG fxbZM V[TNri;`=s8B[ڤoAn*U>> .զ"5\3}Hٺ)R$e y1̖‚wwGS8^!l?Q1e SΈp:J}N5 dDa,RHwu<5+.C*ɛ~ 1X0B;6Ex%9cb8iWfΑݷCW;T 7&Nc5Th;+Q` 㭞zxgof mtXo(,ty~>^7x]w ݗ_-+Z3N0뾇? f}hC90(N+H0HRf2B|V\,Pve =VL\ _ 5GT~1xDˆF{?_US o(-jS =X "L$ CC҆6mޕZ]`A /&+t3|ӛ .#Ff^ixoXXiONҁBxP/0++dJ0VkO QJV̷U$zD^W\Rjk?wZFH_\<]4tYi6ƫ*{9Xdg}L|a 2U^NyB&N.H #/ﴕV(VcH6&Ck΢ml ćBH<ܲe/w?o9Z>PEXIaS5#̨= K0ʷ󤧌2WȜ$_2PEb"u+S0eH'mB颡1).JVq-i2AQU;zwxbQK@2*q/YXFb_)"3O7S'R+k"ER jaxIJʽU]?r`UH(|[#8B[vz>& #[[?g>  zVcz?zm[Q aR*MBCKWl7VP{1 )Z.epX+C~b;֢pgLVc1L(~T= w.BPq.$v|Us:pSկ~9X\TArĂS4V$X)zP1jfyۯ@ x")3U$8ߕߣvb9P1XR:֫ Y Āш7D!`qT$s IR@,9w@DkL/^!hnD_7mM{~_A7^eXÏfͷ޺qn|iP!Mm6hRVe1 l!ܨ#^%Do60jZ0 ţ5X *3Zz/>!Yx[TD@v](WrvH n^|Y^!c7"ie&B5v; XbV0KGp<+Rb2bPG  wkU3BzFdBM;Rj+HL9Xeʤ)Xxxq ߠ"vD P13kByb+]YjLؾ14H Kpb j9Y>tbZNUWjD U*TS7)l2`{QD}R`-ȱjӔZaQЛ҆X,YTpkMͽ2m!t1HN-D dBWRkV"(*τz[GO}+1 [3/r ɩg~o|O>L Ug/ET7#6&a dfS:W"qD`; u+-x*[1*5PT\й 6e8+S *(^>/\=Qw%Rԝ,Fj{&ArPƘK8vb@Yz$*MLe(5.F鼡b 2Q%ҋNy5~'喫fIYE? /?0 ed* T uy|Ua6_bop>ڕd=X<#<(Ғ3-sbUeǘfTPGږfpDqbJ%n%+_d'#舻SjG Mg2!TX/(5 -'QD$XkFE6}DAuD%qz s7$OJِ!X6͜jInw%05#q9 ukrU([zԫT.&hT7Y(Ql,UqL^ J"4`H )'G~ &%J٩*o% Deo RJBڂû?Ye5Px-|(:I4xSWXB.H0a)h1%9 f$4tu"=?? GN3chWN|*%*\/&腤+̩K^+*|JblaA,΁2zp0W(6* *PJ>/Mt+B"SZٱ5eEۨԙq#&*>o\sU>:2jXaݑBQWbΛ#3Z`g׿tH7iHL@%J 4;#<!nr'}ο}n?#4b;"fUs6hL&3%,1[m$s:L"cwc,A+KPVz*pŅ+/(2MkQXr N {\pЩ6'Ha*rW.ޢ*Jhs{s#a9@NY/h,C**?ē?R됯La8"'ռX$LvP8r+?=;Dz#qeaRwL+0ά ư212C+@TNF[Y.;T f)鎍vv< Q43#Tw]I(\!P{kHЪ($l6mf&qkM*s;$EM8> 5ګ[JC/~; 6zOY1oJ TPf'qmjQD6ƖO8OX"3w@PxQ]GK)2SS(5 0& 0,ϠjkB^Qڱ8# `լs]}ji&V:LXwvEWrj|So}Lv/0#RMke W]$-XQt5T,T "x&c)BYD]UpY|,(OTYAzBCB> r{O )ZfˍA937=l==|YbB<8<e8mYɼG@2C6+"1`ꎚZ\鴵 tqjİ2Sڇ!E3t5VD_wUoիE{~ 8E5&H!n]d s_ީM-OCԾyl +ɾvh`s{ ՝{Ye^&,Wp_!@FIHy;o7ں/v88CBZ<]f~!"le%]TJdc0ZphkTX;Вs%rѸaI(f1Cq٥7xr +-"tn 9`Svb 6ӹ暛ֹٙ^c %T@@-FFU``_ErPGHfڶN5 $d ʳXdΊ!/2iՑC-]:U`ܨ %-ZJѲ3*]kFO39eG,Q8(4M|Z8"׶*9Ґ+|Vv_.]vЮNP9&NHXNr,`+\鹤zbAL#\ĺ'F yX`Jf'<`%`͍ϽK 1z+!yq #k@E xIefe8$LʠUP>4e" !e8u1;\(Qzlr 9P?cRVOv9Iס^(q\X!M'JL|;}fpQE% Ja'VKFRc%4ux`(h|A.c+b.y6!^jl):f{:pa^ªhbcQTdL^_!O/\] 8u0j@B&E4^`uDr:,JiID]x.[e%*F #BUՍ*18wƗ2,(+G"_@A,RyJӪ~4pk_wm+WlW2Xo1m!147W=%=fffЃT0U+ZSOCM "FB$=Q#Z R50HyR`[;ZX ,"tßW/|3]QuԫZytxq֬9`}_~qO?s K;BR!C+k#`qqjԡB@!(FoV m>Gcol)Ci^܉#?ؓD*cSe] "{0UҞ"[zS$HmB#pY\_ʒ^4ZQN(GȨ}ՊtPu%FDt.\( - hAI,a~I.u3^ [!8XAeWh8:dkb;DK‰5F&S|+PjQ:e '  u e,[1^&I&譻,B,&iLFvD~"V""mpYx{P]OP AWV I Z_U2:sEv>zW3̥$L`̉UD$q ([kW+) T;VG**V V(3 d|B`cAbA ax /׿m *| !b:34=KL T,?ZUX.DBOsAr@ WCH*X,bX*C‚UŌhjgB1 я|F ׋% Xw9-v5oy,Uo qJU=ЊRui@\*ǼΛm0ut_%eb/9B;2wK) U^aʆ "= 0㳧;]o`?Y UAso =z0SΧ>bcj4zG:BRQuNj y%L1nu}MqXx,E-?늼\BCt@UR?*F+.¿efϪDN:mcXY&wCGB# w+ɧmBhh?VG tA=sU&G.JFĔG2rtq"0TWY@ S+ AJoBX?? 4tܱ'WnX`5aBUN}vJ 7Dϥ( 6XwfW/"e!]h>N Bg Eǫ!= ESxx^s~9>7{ξk|?ǒciT?X$vn@ե4v\Kŀx9+l*wsP'zP##PAxuxky57{m qMJC`XHT@U+bC~'X7n|ϟ-mgDxga&9j͸viyaZcIbƅNLXO2ytk=oJe<.^UT T|pOrW*7R( 2(WWH+p]j+Zo"q3hJvk4X%Dy0Uep͍ǩX6*vSrvMDTEm|20ù`kaUW9X`(ZGXy7têR扺 &d}e.Co&ΐ*Ul*yE`&ͻU3XϹFNv='`Q~L \E2LjkkBQ'Ѻ_]Bϻ1?6t˳NPK ~>ZeQ)K}p镾yj/JVǁNO ,{Ad6Xf6Q>.Ax4ڒʖܻǹ#S { `CLrMEtEt'N'zF5Hwu. VHr<'*݋l-H60y&$v+$^XڒF9OY97CmC'eleRlFYV#") U(0Z`<+ti؋|u~5J o“0_ E 6Nv 'SiX ry;X,h+EyKhyy5Smx5yGɰM*03Bǒ@20꘲>L%ypUx>+c;TArAW6ŕYVDVeZ;<[,fͭǿ8ۇwE+'efW5C2:\hͣ;i6=3"Vbhje>? +$X+POf wCHW "UϦHab%zy* 'KY[,uf ږq. ?x_AM&|_rLQ*8HW @W`‡tt=Uv|_92B x`\nSЋ%&]WUzJb/n(\)Z;)Jk[El^H)&`wZ` Pjl֛H*y}Bc~+Sw5#4cQb5.ŢWL0K7MݕTL b ^FqÌJOAukSݕ>ŘG9ܟDT_Ms$'C#9A`e#y+iy~ aB`!)fuBf`uBb ̥РE :<Dz/r̓H\\na JjBMu.;+\ *~[h1:X`X^1%L7AuuE +  iEԊ턄PL v eX.Luŗ7˟ ~zLpHk.LNVuoTQdD̑@ٯccatTÞCWY)LXˋ(9/% oc:zȬwSzvT5)/fhƋ޶{%W,Ҽ?$V v߲7BXU"J*g`V|fڻh$&Œ=K C)^HrGэkE.Ր#T["b}XZrӉU8 cYteX` ZN׎I7w<>Ma\  }SDkGHcl蜋-9|'$`]`]sB(>`x#NRYL,JU9jDVl?~胿= +.ԌqS6kaj5eE\A c/צ[ [ :ILDP7>8ޤBă{yW)OM hT5TT&uW, vuͭȞHl ,>w-R2+zϜ:HШBfS!x&.J6^<sx4X?J<0+1hp2϶4htjl2Y"v扁"S{m(B9WɟOsȀ-kvO~ #r `"ܓZoZsw]7”0Lpb5X1XzW1KsQny cOS_~_;qSaլ<=5Dx^L V3B0~e)$e$cu\U@Jx v s@oLAVpR6^#9S8<6%/F-P^`aJFFZ랬aڪًщ1~bd#55Fh3|<5Wt3X5{G %ҕpE'$YZ[Ӣ%SG>굯y{#d+@.|tDLCddաfMNx9Yg#O7pYil`G@:(ò)ϾrIOc"k- J'<Gc5Q`bw5휎Jʪ;3 @ MFTjlDЊ%F6%ogD_"KoBv䭛>=kJ.t;.Xf]wl ӽgԩpH*尧D &fb>',#] ˯ G`mhؒVfX1 k^O ?.]73X$[8G@$bFj%qwdc2ab%`AqwXWވw$4Xz2y2ܻl^~9QI1 aև>/M׿{.8u1ه f0YQ`>'`i*rTks,k^'a, o'-5󃯦*wlIRhEv*˞VWIoMF4Sh YmYVEͲ9[zJnkj6;ҠdﰎuMR-nESNu X3>fjJbr7zGa%@2a=g`H bBIto |[EuB*Zeкu4$Y~9Th #nܙԶcKY}?%D4 ~63tεF"c֙PZL+0.ć@W!]XS*kqsiX$ul}ۭ> Yp?HrYژ.CVeB5^ܝg=Πu;jQJVd B䠪(ӀdX5A[˴&/ij{pePDo4!br($͌*M5p ~#K -5SXʡ.&JQy.T&S5Š=c.ʭM`1֩e+X9J-fGkA#R`֋_ mj%+`U9<Ɠ#usOֺX} cbpfflfI3PDK޸5q;dfw4]Ļj*ZC>[[0Ux 5! +6"}EURQ ܄8B?߇ @<} ֍7/uNDE_UTQXvy髚`gʖ7xXbQnU_2k1jZ9`RCL/q{[߳)Ŋ__ɾ%knX2M_)N֨"k g撬๻:BG}Dp/zD K[9>  *nv|vvKGо`Aݵw[F=H] t `wtD'1! EQCT3Ї<戡aG,XTSeRKxIvzN B:SHwjx]ހoCʈ d!{.j<>{ yA;duF=ZLzi8]7jVH/No^`gmN91:Cফy3Һ?)UNE 2+9g`qئTfrfKoߵ % %B,L_7%pRn~>:l}CEQzceb{xkMWYq4h#ܵVTxF`}CҢ+kJ.htW/|("u{ g50Vjι>WfUZ[QȎ0g,賸W3jK%]͎W: ۊ@vt], b,-D-[f_+$WKll*Nì#Ǡ@5fIpJ#S}h1/ʲY#Q4ݩ⯼2}gUC·2XpuB{ [tngEWzI)Sy/?*,y5/Z_+LMkV+ѿ$P:WaX?J,2#:B,{`UN/]/"F0#,9325%oYp>mE-c_:.̨M`cA9N[k)rƆ7/'cZ(` 4X!!"kމB-bXDWTwIU<$cw>[n>k`*f ؎4Z#bƑMQGb%W!d,Gu3&Vvn\&0EUc6=HS=s d`YBYX,)BmƊ"]`GAYAX ;!K$ua64Qf77ovIVFlYj g8|Y0֥L"rvD[n0QܵzkJ` "/*|mEN85p.ZvE M[zAf$ia,TthLd"!plC۬+`u[U1 {U6g=+fP~J+>:N: &hXi_;,hV.[){W_}sZ$J(m e5Q9!3ˢخJD/)/9]n<+#j osH}H2Uū}7 k4?bD8  ! *ChZ.؍sG͐V^*6r&"m$.u1(>2Ct8p`K@"n;XFkd)9eat Ɗ fAHZ;/%leU)_ 2D]/r"B^6 -=Vk9Vv6[lMG==WLh%c+{hE& 1( Lw߃`eׁ #6{a}S q1xTz%Bݣ Hϝ@R :#τĺpri| ׽O}o@%NT^>4e)E/GhU/[oS2]&n-&8Qe[`QֺcJITY4J%1zL:v@\eCMU,³]QR\k"J|&}Q \@4?󮢣t~#1q 9oٷ-u$1dZ I]E 0l;%33,E1G! A,\1p]HU3J3E+u εOxiMKY@.j"֊2d|xNb{0WF97b2p]j X!z5sYh]=Xw5zB ,2yamTԉ>fe[FJ:撟0p B7嗿>9=?Z.ts,8Pntass ZˇC@,%#U<*Muő8檜J8S\I@p$+6a%QS]b#8 R cP>U4,*Nu<_ {d]MN rC@vz yCᆎD81pG=K=R0AhҘYmNs(W4-K!:&5᝘Њܸ)yâG. ǟNk'E\jc)`3cЕV̔ -`r HϘsG`L_Ic+<Oz< Nʭ)urp&'*,kᮄܙ|k #y{PAK>n`mӂ7 Ǘ<:&"<K?*A3rAzY .䮔zePbfLf,Kk:ҩ'#0d~صdʍ&Xg~IJE t.,gٹ&ܮ3Rg;1A:[k|{_9g o0gfѕ\wr(l+JZBʇV#w Fh33‰xMpl.x,xN9!1~O]b\հJL,Lp"oѫ*1WAmYgF=eҰnҋ]NMY"#@? ;Th |UxKrY261=$ӀONl>,&p |ӭй#Rb`mȑb'[dc瀺ֳj-F$L^5N=uƂ,=t6jIDCm ;D 1!N&ww#*Uȃ )#yl}teY?-GMͶ~\–}re=0Bpj6U÷^"w+XYQxogk iՇF7=)tEj:u)Fd+8t4";vjߍD+Xx&$cGtO'Bϟ#Srlb] @WW]&h%dcSJa0Ei0i^s5(ޛZ'D:*L\).#&7TlgsDsNu ˀ(^mMn;!B]$}ZmAM&2=q\ڟ, h0#:.*;OdHbFC eQY*&* p÷ыUjXzC?a)eTLfcD3%Y2XR"sCa|A$@+pTx@boE;*D%Uld[NzfC<0 ϡW=4lD=Q!j62+rmqT֢Qa˸CJNXQ`u8,`P7_ǤE D½M VؖpWZ6 рX,ti61O%դN4YZ&dyLG \9֚3(&ffӲgcg^9.gqrrJ7^UPe\۶0c$Nm\I[U ;;*wWs\##w;Mv[g/ pjީշU#(UN>Dk3 :'R]A 1%skҖsK2.˭Bg[U yED9_, 5+h_ ]+Vf_yWl#g%[q:MPHFMV^\3R)j-c265%ꜩE]~8VyڑQkXhLطnoSirl:F& L2Ukl#5?ٽx5EWZBiʭO7 "x @\Bo 'CYp_¯\:rs~I+<)ToM9 *yKS:e{^i|q#B%cW,uН̇X-03+ݖf ;r5"4:}w#쾓<ݒ> 6"@{'kMr^r =f ܷqx[c- t.0nF!hw1np܃g9W/z!! P B Up0%:SZ4ߜqṆ`P=u9`~?AuucRgۏ۵1x"Fv5m/mh\әB}`Z#ܐ!&D_5|O_P8v_O07W kRjBk O G*~":|bvſ{oVacZ * 얅%:ePbQ+&W#uQe! Xw*d;CU!׽uEE)8jjuचڭbfGo2:C<:/"&tYGl Њ;[$E'Y55zL1 +Az8V X  IаpNv+AGfk h)R`c]>.G dԝgJDva[xok~)(ӥ YUxt˯XjOOf8֔iDcĂ0?H+$rk7!B\<{RGz}߱\%g6M45+RD%7#谯c#\~\ǎ4Ik32SΚ?z0`,\ݺyݒ`ܓ@`WV12^0KS_z3Zih he(j;%j9{r_uel G㔉u<쓃X#{jvr zuaVd+ "NyO@Z4X1Pxn#5$;js6ֿ΄Т$޻) =@ ɹhc՝tT۷`we37GWǖ%A.`Lf8?WGtc8<{]4!;y2yׅti׌s#B[1璯erX?/f ^l6JqVW RJ^>Dч,(`m`VhHDU;A& 06 e[ƇOs8gwIUF;"Ѩ-W}/ }7ncG{Ir$Jbհ Xf/o_w;&g նG[Fh& WC/Xvo$yKE9A[糚Qk.ٻx˕fYh谝~PRC}2YQ~QpUJ#ŷ`:Sɭ'tSb,uKHb5$ \c5;sȓ_,gtp_A:0DX׀BIUR&j-M;Uix4zgjibaۑХ(#7kE-8dSH3vc۞>a Oxf` *4=65FMNtOm`] 'Ob=eJ7F;jLe];f B4SG) XJ5;STWjR _.&_oT`ۀؘł%2g4|UI,^秉oZn-X}M U D9W݇֘mlO $jŒA3fh#_[Hz J#NcHt⌍ $d(t =l5?q"fQvM 6߲b,Zs 9ݔ Ē1{266<ݠ;HrP.U)8 pW\WUW߄'1.B2PE\E;K5aV]{?o{ Èmo>ԧ{:j-c'DZ)fb+N)w&g6bK3觾Ͻ$g:b')cej29zƳı*zG&L"Kil49N*,v^6.a9gmZ'USiW3թOFBksz5tY{9Ol5LٯUqr0NMяQeM1)i*A;FvsnVl>H7=:)3ٙSOLQa S(lؽCZ@b벲99;فTreSK(%NòKa.EK$e3VS AbGsG!-u}dd(.8 n ƺrdSr1pt= {\*zmo4"Do|-ox-0^ 爎5:BYCvѡ4U>h~- Ͷ2# [I՝(/6נL1)a?z%hRyj$Vbe*#ɘ9hx@5ԕu@r }L]eJm Z4TheY V3X ׼ (F]2F3:b#k>}y>r1»z6+SέQ:h)ͯqlb%Vyw=gkTi :9l_s*Nj&./9cnXv0pCrD]>N~ K<$"pѢy; iXw~'^{h1Ϫ֜V6E M1޷DzNjQsu[ yom%g^,(5+s@Sm4p0sysAh bqkJHUVxͩmshf[fu~XEQ/~$JjmF)t)M]9B릒ǖE4=zPky׿=k^ F30sOm͈8<˃ER}2O-o&WWp¢6C\rV<׶ #zk[Ƿ%eřrux?UX@T{ !*,z;?@+ G:9T1!Z:N(qȀ 7=- bwG9E~6Z_msdSmZPƥPlZRʋ|P=,c,U$\ B{s!+%=KejjW\*GO>N%Tlk>V,]~VJ.;AqG U67ȩF.Cc>Gx :꯹/# [ s*.ޑN !++mݣR79i`yP*# UbQV~]/(bSg*)15MC;>a #81 c `VPu!*.BȪTyZ w|\_CD(rp|lE xm5K\w̸M[r9uf Eʪ{j'Q\1ގ6*Lu`[~uKqNsV{Cܣt3^(ʕ< dRiL]Zg C2skgjL3\Y>/2[)KմeOk۹hFɓVêO9Xs!%Y(fAFwfiݼíz ½;2y\M/?},JI' &zo2%?S>W>/ÆE&|iY_+T<9W`i[DzG gőz9ƢwW㡎ba"I?5Yl}q#f徫@;\S0wԨ;hp>شc zoK(0"3p`Ϡdg.=]+*2qn(rm?͝;ޣkf`ylYuSsgR3;JWPӞi; kp:w.YӍL)w"uizfGWc˧+Z8U injh,ޫӱ? yjh/_h?V"%Vq+sP-2@J+[ ʏlt(;-s&!({~s^`١rT[,h>??+ug)Z,<&Nܵhh &oly͹i4Xڪ+=h[c5ͪlHn  USVQd3PF_]Xb󢻊X b)Cxם?@;FOyoV'ZZ"NkdoGMv Mv~kCDGb,tס{_>җZb8y*8|J!㷾`=yW>}NW57C4 &۪郪67d_3/Ӭ~[,1ͶOޖQSיy*2u^YBϭt y0m`=kJdS՟ q ӄyW AWKvAn"8q%@v350fC OKjM6.嚹|h4ּ}R>In1s슌X,T㢉b(&#?֐Up z90*$I5˼Zk+!|3a+vB,8;b{/RhUN2Q 7ڣl1:OsFi=OSH=e驺Iz+-^ē+$͒ZX?h`k/v 2r);LUǂ1 (m1X&M_5fdmW5yG1QKaf,荒Ia,]];GT#`_c|u++I,婜T۝Ε-aFS\, 23i5OKO㵪z$ `{lX{Uɟux hW?//'>9bk~0$wlx??(OeΪ<͒ŪNP.B)lhJ@(-XIPbJa*fwɦ\:9Zi׽.B@VAv` ,+֡fP_Xlx靧G0XXi#‡=2~ǧ=U.urS |8]~&,M5}e+ %u{rpmR ]423UdȾ \\!/H+F&AX AHS(6BQ@7%qLMb0ը"ޥN]XWH@b`{ؑ(}()\B̾[1jl%ȣBu`oٓX>caWH4X1)&@o})|GQ,QkS{\tg*$sX걿T,0Y5}c[m6/> C]:ȵ k5V_PK$ˣw|xUݬ6.`|c^6y()G+4+zp?PVMQ=B#HzAXn Y!`9~2@Rb&qi㶝.S$AL3H+ڙaZd+/H/ 2Uj2z]0.”e$Y)q/GG,q',xKe7}Qk$A2sQ!ֈպI0 +/ &a)B6FR^[ 0+d,Ex uⱬˌ`,_ʷ0DL@Қ\\c3LN}mUBh_#O-;)snpqq}U !dt/n߉'ƳTz~f5b:wlGBcJC V8c,I$pl|R+j8$Q=Mgwg2(/wMr *tI11$a{4|, 4=]VdR@׊S}7`}?؜z+XE¤ǟij+cǡԳ;[/QseLWs;B Ϫv" _0+F1dwޟד2-9B}Dԣ~)'UxX!r%SMeh`]i.,? ^+l0O:.kYvGEQ[_>8ءu=S9nW=ш@)MnlEWA}UP * %96qɭ}e!xe6Ʀq' N T!ؖV#1keh&?5Z-oQFcY^:g[޺sCL%ķEkebl~g#VO[wAEHWO>}QjB]Nx-0Xn=!3p`Wt'fj]9˭VB&+ü]N{<49*aro9Joד Gl  aEt|gp06|kwjGJR='K,։.P!ȳ~ſ^ #B83tM-O7{9u",0k".FVz%:%RI2OO ,5 n8[^V$fЕ Fe&N`>IVJ-<뱣7N$Ij,ȥaw1Q3K|U*T|Bn _ɴ7NuAz-l,qJ9k_}(.%VU֧Z23fz#Xjf̍p=Hzիn|_3~j'Y7ɾB i|4XKp2ňNJM/#p.I(I-;EAGbh.[gȲ+Jg^n v4пc< |o+&cPh #b넌z\x} _ՈEoxt,m.*ܖ="'OҨ#atEENRNߧ>.m 13=J)5lE١-cd_E^nD\\&f4m,n*" UBՊI[4!?w")(uܨw %,)@y@+H݃ #0 f F 4p(+"ZY [iJ*^rD )X!`B) Ǻj3IKT@ni 5l "=q6H#ҚewZG%|Q  8] uNXhJaN"Gp2o-x' Z6@H[6CE}BS+6fXaOnͲN`- +o0&f/-̅`WM#>B>f+zc)3de _i8!bB5hy~媫v? UXe:! cxu,v 5K]F8 פvV){KHoژ&U Er˽(tD .of?"tK4T 8 r;/kB,p<'`-pJX+=ĸ§"a-@ZyBq&QT)YG eE`Sh#8rU\]/dB]x=L4!GU5^؝;\(4WidTSq.R֘F!Kydo/^2@m2 u(%qƘrtHQ6TǶ1T=0FD4eLN!HXJ0XvlD]i%|4IrğE(Z6(:U9K4m/]OԶg 3 +Xԃ^]Z P"KWSA|-=P?5wIˑ(g><9 רXULxT,А6_9XBv,V!AGVgGY_>,mee|wr<5eDñ[cMHUMQ jET'PDuѝ6ӱߪ#"ˤk /U잢sq֊-6);:MRwsAٰܵʼ˰wZStŜe![DܟҨ-zTYGrQXhdK4FT|*R*Τ*EnKn'\720g ;rC 8+_q=:qW AJaxthg36JJh(mX"Uv΅ݼJ^`AM$p`DlԶΈb37toxHoq"r$Qcuy# 䨩XQ\wjߍDH,<B!VぬHQւέT3WmFZ!]i`Q8䆬?+iY.k}1>T$|bD-V{.MVPӫ) ]I窗eQYn" ^'ws!%*%,p`L[` .A\!Xr+e8>4Uc9 E >movfGE%z5&Њ%ݡ.9Q.6V ^e~ X\T-uui˘^WꛠzD;3j:XI?n<'˥Q$6.79fLF;b"!Y۝?m6qDP%Qg >"Ya|YC K~agM V7g0Zm`xʓ+1 |U@W ,~DxJU\.3HSPF}^0dbt* #B8yP[╲>èB $rb%AF{J+8_ĔmY.O*>ٽ2*ZU-wr˖1,pK\P&jqIw˗19ׇ:a#ʹy >0HH F'|Trؤ|L g2,y{̙qkfxmF%K٫`h ၠQp_x93l{=l.`†n,0XIl|y&(I;tHHtdLr[l.exZkw맭Ek~L:(ؘ:- "ܡ*t9 *WyQ)[*+2X =01;!7V2$'=I;M~cN`ۅ[^}4q ,ufpp^։҂Aɡ'ʠ,ʂ'7׉$݄~7wRo51sg9|mtSڶ\SYeS1m!Dp'=T-Wď&r}GI $dLp,Occ/JvK?&6:)5ćPsL*iiTѐktRF.ÊvA&D+0"Wsm@(}Mz~ֳ|Ϳ~![1U\½rrjd{4nDmcM}S.GKWoDÞc*"|jZëAPlI,*9gu`o/.K`BFabWGn,uR(vncX^Ԁ19E1_.`W*A۳td?f{QXNӮ몳LI^ڂA>.&!BZazB-1eB4f[T>-귒=J.;6^auyӉX!VL2r4:YqZ o<l3lP(^mLp*[y[l;-(a!x&lWبH,4[M"#a{{s_62k{Y5JWCfVgFpOy[}WAa B=Yhf6N>"9Az&\zZb2NE惡2pZ;륯 k9NVtw9Fo{`HhJmc76aY"ֆdR&3>;pGZr n -B ~YL J-Э/Fj& ObEedlNau֘<ƢXcIG!1R"$'z,vf`ZR[/*˞ 劌/䔊z*|<5M=Vu6$`,ȝ Z]V`ٟ v;`8Ew)ҹ׊([~ؔN=V\_HgtVdP+> j5F{T۠ x̽;~5nD Lm.<C^F0XQn0x+6((qUz4EXtϻK+X*cxRFF:O=k$rN|u]9:7c{2]S&9w_NE=Z$:`륨./FRuϗBli+\m5gVm/w,] ^8;ު`ϱZeui^<[^ŮbDR̅Ϙ2ssn%/ MдU Z5%!)=S.ds0XO~ҿ LS`C}(6<|IJ32F/bs4g6G]xG+`1k-mvODc]Hc]ێՋ B>?N XJY)'X2߇0w2EU6c+զEWm#R0*)td֙)c/%̃Ohb$ SԉKVk-KIg/V`lmV`&C*ez&{,R(e3QsUJj%y+dž<ʊeI?eT]WzkEY:k,ĠeR_ɂ1 aCٛ6 H_~Mq>JM7ޘ33q+[@t<ɧ.J%h]``|H`0h!FW1ЕG,~vIbePWT\&4"Uxf;ֈcw-Qw=${V6;<$6\Tk1]M} ^mCliE OXvÄ.$(\X BRg߭1)"a& Və(<1MMlCf.C&"ʔRXiA  W:}ݵ0+VU6 #o><Ǽ!sϏl0йH5XxڣYH89ɣ&q'\HJD&r_f[*L'~fo/C4j,bSrL <#CL^t8W-h#bf!j&"BO Ekt+oDpbiiO &:#[SX+=q>"&DkUx%br*]+:j-E ]k'kZ'fO_PHb#QF1tgwHhJNT֫C} `UOq+F /-除LT2^?mHZ,SB%R>tfXC(j8rzWQghv}'dP{Dt"=\wk-YZ ;`wv!mI~\p*H0%\w:<ɲuZdIz1zX=_u cXWQS"a=!/F : ή}Wͷ[q4Xf"cAd&3 LdZncXYX>yO\U=gc0NЀ0k keIWmtorFy49RMltѥA+ݷ;{QTFoO|ƙ!^ݚfn͜-Hfq]*@b d/%<$.o_΢+^ N!C0腿 `݈6mJpaG0j nyILub¨c*y'#HډQLl)eUuzvs6'l }rr7 jx8!Q33.ٕ<ȂaE󮼓Fj̃WHqpKXWB;a:DT]8G%ƒ:=jEp~(cRI\_7[`3?njѐ"E{̗)Yy7h9ʍNr>y⋨+ʹ̔BV>y2̳ѱZu9P?AWFMǥXQp` bsq ī$} ><Î[z|~4ljs PDtW?b}~Rv$iq(/z/JsH3pQKRp%!FQ%IA;RL$($3F%ΔF۹!Vfg4Ԥ0lT-K>¶4F I= 1 +84Z&yǏXW8eQ  8d[&zeւKoKT)jT̫ ̳+"93 IS8 ̇?|`]{ǀw0YAԅ"rN;=1s@McC0XP,KG٦Y#ua Nv,ĥ(iX^مpolb,<KE^<"SzyC$S@`5[+0L1 \wf:J -`(+ӛ-0ʻ VC3!z||2g%A]Z>(-@Dh{=1,vk{nkc5YIC g% %**, `$f%35U'jeo`ETso_;o5XQA fᠱ#uw lr\M Dh.Ɠ9Mh4ܱP P5v5o Apu}pm+}QDhuJĀ/nUrnxE> O0dOs,RB"^6X3"H򌮮L'ՙDF5˧=}EetUykSx(OE"TURiFla,L"[ir %N{3ԎrlaTnN_ހ,%L{3K~2EK[9f^frbMS|JH}S;P5>[FU١yU |ZRkYɆ wowc .B,l ̣ &;li`Q@3ߍJ̝RwŸjdaϭHkaqޠ_h2XSq9 BJB#.d?N z= `Q-< 1~/IOyo ĭ5,M|g6dv^h1vRIyy!6HxI{"2?>7EyM }Bx,-n\i[ WGp,rѨ&w_œ3Ȇ: 5Of![1j/d[ݚ6Mun$kvlvIwxk?ÞQ4],quܮVSjn¬k955%?LZlRVA%O;ghpyEnxY؎׼“{y)(C3|lHf  %m1O W)=c`r8[32ї\vjzVw'ZdS ,A%+c_  ZEm{Μ}Qo2WD{$}n&+3awkW:UUZ>CpKWY y;UFJuFQcA[+r}=d|%24x˯:=Ɇ$*eI"vL|B̤ݎ6 j\㠼1mYQ>_@3 fcED fD+ՐAM>kM 59m!2:Qehפ] 3)vn;&̗=8 ԩ[0"җltbBF,{ۭw8goxozfaW_'%D=jf"{kqc&yhcW4@Y UVfH%XQW;Xr]KEL,xK_ 63+*= m~ L.ԬLSf=;ي:~ Ui7*P8ׅgzrM)·n^$sTVzr+|=%m\4o C~+R05(7^M KfS+VTw5:0XxtaIڅp^l QQcvU誑p_JQ= Glݿ=u'L#es=0XZ %`GBtwtl _Sbu-ҏ"ۥޛ8S*dz̦w%a" 6LK z])*7yFFp0DItw2+_!CLRv׾#(]>֕7< ֭ޑ_,KFvTEu>/|C۟Bh+)IUPI-; Oi,-]H֓iKS>*j,yݩj[‚JZ'-IVh*v-HL[Z'lQJ#kf?6RSbA͆ F*uҰ4BoZ}lBDzx4Nӊxq1kr:ƨc gzl@599_r?$,X`$Or/X@+4:r̵@gygHդ+1puH&;[A^2?< :>Mf`{ h0 * !UsG!Vy1V&k>1XĿQ9Vz}s/79VAD`OoXIiۆ/ 9u zZTL:ڃ¬b# {t# -zI_ udhT11DOԨ^i+oc8 ]V$(nDkVW$TSYp1HkX7(r*UZm ɪc,aV=PߑlqmO6Nne8 ;Q0V"TdCSZcq쥰߈hDOsGW^9qnPݲ5Y-c<3+ige8ՠ_'e4I: u)_gq8 rMfQ#F! on@!koC(Zq7I`y rO>75 XIi2TAw4kҊUxDf3e4n-4=t ySUhZ]iaVJlpM/k#m|X?(봽4Řg` ɾJj3FUW}oX.YXlI "Xi,|T /)`&1[ḻuaLd=~j}K*vTc)khcd@ E*P#B$" K3<#nM:A sU7!;BYL ={X${5635Ly~6Ǜwh0 +X痽G;ޒgJߞ!=\q8,js9?~۷~|ǭpbDx\1s.sm8z] ESwM&B4Y;o_kƎ}g j4iR'\aTbrvXū涴v?'HwvoF>ɆA(Dxi p]D 쁎-RLH-Z c/~=ԓ#72+@w\^ $JY)Q%.\ \"p0'.;>pn%qU $ZLffJ HdI*(;U-G9PO>>Yaf;O+ \wr|^tHK1}6]ӽiz &O4VW i Rλ <:|i0J]^%p,nлN}p7Bglu*/P O|xpHZ& Z\u cən.$9 $;`n~1zlItdcWho3D( Yjo[TI-H*u^9=odnw m[ţ^Bj;|Uu:XfTMټ/Ktqn/]p:rNI[wHZDTE:1K{<-pwy=T#`\s{@(A0`戍p?R"|nGom$#*(QU8b{>zY79:YpB#{&c2ӀnmkEt|Wp06|+\hZe7@_baPڲPɟzoHr{| b@7Ùcشj%*宪 S.?AM2ܨ)<3=s˹mA&a-欬m<]TS:=.P}`$=׳Z"IQ+߮č \-*ޒ~1Gs5 .%HX=hmny=D*a<]Z@([1weEԮHz(Q7B7j^$1P ɜ>|xW-E -MN3WB]t% zJbbasx/7v8ySe~Y>8r+m`̓bxy%BgVn;0*q$)GNKv4п@ňnֽiCmѼd]5>;sg5Bnn(< k+߇~O}H JwAu71~wg'?D[.D9_=״[Kp/WVS69mZJٕ._ezfB !CՍpek&} Ϳ[6_7QQL3} TP +-TOr(n&hG+ Ԝ%3I5b @H,t⏍ )4}, 'GE+V*f[M άz X[0(7[]Z?3C!t hfVH;'p_% LU%pGd`C=?pb JcK|2bK?w~[ys #qcC:Odm.]-j Crw%-I.a#нSR>1⽑dِŅ̫`-1dQ1{'3q_CfifX<255怠SfmW+ c9ĕ ҡzX:n$r; W.ϡ#o0Ţ#.qA]jm{0:wGyww`1@b+J'3 &fU?OP$>_ "Q,bLeD0.6T*zo^VPV+;Hٮt̏!;@_ ĜqXƫֵZ#qh~G5_ KdnT?2(2 HeExatؽ2? ϝv`@B=EEve_G |nԐ6ࣀYC֒Q.Ik{LW{ۭw5)+~s4-axE:"MWyįOzzڂ GeKšXMUEt*uXjk7~BF `w'I&V 1H޹gŤ_#j""hđ`kM>r,/6[ts7 5~]o*qVVr>>[!U QmE0[K/}Jk\dqIձ1nXR=ſ,S(eB' }䐡± 5\Eq\(E =s(MzQ\Eh%,{`жG5͙iuZT2~lTBAvXpm%~+!*Yf 4ڌU Vfg*t6EzfYT(D1wŪTkh+n1ϓ&WHCk8^Y`BX,#F ``ʞ ש,yW]tGbfɃ9`VܺFI$uy9$t|n(͙!Çk,axwow; S^ɨqJ@EV3.@\-X{b.H}P+.,|9ek _oJYpTu;<84k1}T>+)O'^%q,60Vw圶Z/aAM8g3xדlpeMOoNXأ(ϘREQ1RYC AW*g hrGa xqVY;7PS_Av9< l8 /S\@*`(hꫩ}e͆3,r\\Ά Dw{jO=%⪭X@9:4}>;Lt[T?FnL򸅸v[D56zhK 2ANJo;;bl_ڛvK`Bn41|'i%e5duhx7"j0x,`=c`k4{%jX(גٳm VDeb,eUch13hP8/;g :+ӱLԡ1+/=*Q%gcxu 2S\ sâ_ƨ wYdwoo8`>ms(/6/۬PRG>r#07 Nb4x>+4 !X`0kׄa"BRzVZV?&3k5XY0{>UtkE c[>BqNy&BCv)dHh a1%ydN |sb)\@Wi>\v kVESɁpz':O_13qtĒf ϗeN[m2|6*Յmis䧥s㊨-U2'M,24j[i 1AgS ;G>ir&S17pé_?bԟJlVdU+g”X\40'&#),Fx"Ab,3Af* Yj#['kbÓyjvBRt  d亪[}K B!Q;&X J ]?*(z5E`#~hq{*3K8[",/Vݒhٍ7)}͍i*a,\xWY'nFIl2m]7;,8&W$^\z{-f"b8)d)n GY~E]:=Ga*K4-y] ƬRH' Rwlwx74{O|cbcpUp3{K¢~5kˣ9$U:&i {x ph0R3~Kh"jbE&vd!Z₅^W¯ЏM`٧&%ࠂ%XHr$YOcv7#Kd7Mw@DbJUz>g|SկCwD8mB7s gspt 1 f%ӟKnK QgZ`”@+k&a <1RMI Cvx-`ac.%Zg|;m[Cn􆻰?:s./xӧgq'е{;P5"ǚV~5L ~H7 7F3kMQ4_$Z fu^7Dg2 tVQ,rC{>m756~DSɘQR3WJw9%qGW"|+ބ U)h2O@(ox?^T%N׭~%J, Nm.Ƣ逤qBlhqL8^ć0"V͜,唬 yt}`[z iA>bXKD\Ԕu^tU*#Qs:̭ BnI%-iȣGJ[*5< m)Mļ-CFN |OA 1Z-`1Z`ĀQ+)S 2@jnT6DS#,G=;xԸ8["5 aTجnw{N f_N*p3a.V)ZAsA=ܫVLh6ZyS,QGq nJ>ZnbuҔRMa&V?~1 ::]-'R&ļ\Rxv+EA*S։%C޺gdIpRk3TNJ(eK+ttsAg `BE'g4+N]Ȩm*5%i|fÉ{GbƏΖ"7j'2yVφ(!HXTxDFlHn:!*D~ & Ҡm៤/( 춠,`nsxm!Cmaξ!LxnVP--,@Q>"\)aJI(玃|hg=P\S$_d9x+n?|D?=+9/LءE׿/Yva oKb ,tn?BH٘n~{`~E\K? 0Qӏ7:qj WJ @W`!4xNG*˰䝻 5?8?]q@Lí|}>$ʲ*8A]+%JeNDH_rr:CF,7gCM.y?jEEcAK8Y&E ?Ȟ0+?WIn5%xϮRO `|*NbD>? Yۀ_|+@G0n+7k4DyS#tR+Fz۩bw[ d]=ssAō`ztb#H$<ʘHbi=~ [SUXx y>Y Z+}#d ֈP˜vW#u^aԇ巚yi2 (V9lK$XUwVl1\AsYn%_5wݹz}Wv?s_qm#6n|"KEIHhHYݰ0<@8uZ*m1`omAk8C]->?6Ug1!QhDX`4&b irʼnxF1pyϾ ``k?pid~ |QpX>5XeOV*%(ۍ+rsG" fT Vb +c]ylDP(onD3!qM؜]iXVPu@ՂT`ǀw0OApȁ1M7O/.So!.BNL j"Vqqd{h'(s0Kn;U*5KFQI唹y P0'[DG󕖜%d3Qlp;ƌF^@sA_!`9_ 4}ZzE 9ǭ9IvT)$b}<`35vҮ ջ3 z׃Yt;`)]~aKYoB8@.wQq㱒 3p᪓>]O]IY뒊#Z38s1"z׻>|GoD D,*LR|ef.m$6!à PDdxNtPG(lcByJc?-ǟ#c$MEfOE ]-<7☞s&R53n%ӿXB֪NGh79޺Pn(Ss7.T&+y>GTh9m1bFU8/yQ:BNNA~&Đ[o~Ze2O~?1 XUz|+Swn +=?h*3JWc2^,ih`:<< }+UMYaZԳQpʗU-2(BH@#Bxnm,h)aTy_Cթ6Q  hYIf?\{C~ PPƉҥ. CICeI_NF˦uq*ǔRfAή8؝0mGl,gRK E!Gq:a2q&XK;9T!f,c;dJjpsL C-P}i5oά}㜴 FRgr.o?.PKE$К<^V{l{,4HX$qaZ@f l"[ , =c'[C]$gEIO ͥWmlAc9N/2sd{D{xъ/ c\1L57̎pA5]S h${O9J 5XLWzD8=3$b0|vYp8d"nL-SΌ6ZHYSk@NOFrX*I`G+\x1 S…`j\.)yI }课X`UG|65֍_<.4"UPg]Xq5sخd/'&t+VoWg"HI-x@ U[T}oyI:QyIqGM<~ X ")XXû78giŎԍZss0wlV (P\+ө:Jhe+A9$`,y&t<,C?.hRu.N_70L$kgc7珦rhbl.걗DUD)XlDi^Pb@T%JB:,G1kXR USLT(WXyumx/OYjAK,K34f$ h.S`AsrίSU%fuZ} kkG_-C| 0;UKTDQo<)g2gՐX{؎ lgw+eSA٭j5 tf,T\_ ,lI&Fګ$UБoc[@YYCԜȇXɪre +W$$bNMT,yNdš:b0p #2"Y9'/G.PQKrۻ4t8%WpZph̪wຨ:DAvlSy/ $iv!pϱITgsvpyJB*~&('&KXaE%*!(`qW|Pw%ԠIi@=M5n8dH`Cs$6 -g%ҳ8w][k@4?|EbI#aLӅnq',9B*ז`\ȏTJljDŽl-S}8YZ4 +uo]JaYzR) *!FY!Vysuibmj2I(ħ]/6O;UvP(䠐;pzjZŲBI?F6Ea @'AX9<8I"aW]|XlzgX=a%1WTwRVsY;H݈zh!Jݞ3 }dDX id%L3tPʜ nP(~ Jax^5²m f:WyhSNqaUKo$+}~PW4o.;8`U_Ќl0!4l36t >Fӆ,I-%[a3ˆ+_f#K Z}e^X\T}U ES=G_S0sA:b|h+urPo 'E@fĨ%6I}kW~ּm.{gRёmic-! _PetZ7݈YSq4"MNtn*0k}zA*h5*NDɛD693#8O-||.tG14 v=FW7JJ$qvRwnj1]kiiFFwuB%[d5v>/w1gW|,YJtPviK "u-$x)Iܴ@W!]W'UK)#=M72E#&"]Dbgqe;oFߋŔ^m={P[BcG ],e6e91[=sOy?A4.UR Bt;BE\`W;\7b},jJ1&o"#}OּUWf zf8S'VtEmJcŒzdRC>.{\1X&we^v]ФW,P|d01ik6H;ܯN$JllH8Y/""8[j{ p[r  aSKs {e@I?/G /Jpo@gP$-W)b:TV/E oߕR{ q`AH)U+X¦X}e1 9h3D,BGze6H)R5X uR!bY-C-f&U0w/xѸXIJ.B\]|IDvkuLBt_=x +%鐿21!~ydD)6^:lRܚYK^hK"<+勌ݵng)lPFA32%,1T ϼN7gnRYgNY:+!o 灕tOA@D ÊHg[}#kt դ/5"prM`n?Fn"s: 58*!+NsSrag?j eebY fxVj B8.dx^7s;\v 1 HrGU\WܠՄSÙ+QX\[֢Wn]nC$(dƬ,o5rJh0 ]7!2u@VVRVT ^GҘmQ}񜴱}o̘&mJ8"TB(fS&5`JhҢ jnR*G]~ݺ2`AYR4,h$#¶1FrV>"9hV^8TbFr;cti |?`[5׸N&ua T!(Z~eJ9XtxA:㐃%2_.G FHk)G#ƒ1QFu\BÉ`JbdwƎ5kg^`~4#NtE8unOU+,[c"Ls@ΐJԆ|TuVtsK6>da{~"gџS ( * s>|FNKzCP5 0>sK1ao|fP C:XDҬ*zmynn#{jfEjM X,Ī2 YK_')kHCYvc@neBWsΘ>V-:kjʇe}Sİ4sUCssì^:GUF`=oƇ?Mgm+~{П,Ȱ#BeYb(c2>6lE#5ۦnG=FTU=4}]g)qM2@+(g fpkDŕbDCr!chx'iޡGdFh&.O/CKѺjLYpi?볞9 N,XR8cM|Y, Ū[tܒXII4^Hw@y+k;$yMţSyqJGaqk+*p`鄞-wrXFҒ,L _.\y^p-p!æo'N}O {;!.^;WcwGODo.lU'4f#pE`X?D&h 7&[>\'=ٟ5S4_oG2qw:z>!WA/UBQwUE(ZeAcR'h1mԫ2]=pdI%Z&'e),YgWXf.<č7[><~bJ岜.Tf2lCR܊s_-H=TX_xV` GU h-rmFtԗ+q}57\oSOUo>/mL,T5(XcƝER VĔ|PbK]֭;W~&+HOyecAYYk mvNZ_9G܂M!?OzxB^"hPf-\怃8M tYf3 lFofo2JmtY"ɪ:<އpGDx:•sR<|+x˴f,s|W:RF # Ȍ y߾i|6VJ vm:xzF}bp=z^s tF7Ux6fcL.[D\3 G(:]4{HN\ޢL&'G(2YԪ@膨m⠥= `mibZ{"PḈ aE2Xxµ$5VṷqâʞR{J/Vm.b̺ .g;!F~hj]l7jEm[~%.j[qu괵rWeU֠eX jUdm&{ p*5$*%9(`Vkz]r[&y4`݃> bf(a/TRfa(]0:! q&A1h{OSֹu: `yww/QzPX3+NNQϘ-#Wb,rk3LՍ` "}Ҽz,hDjxyK_~PuqBJZcH9N?a*V撬MtbѣZޘSlwWM*ecd SxD`. 0ӱQBUdIzbK ryb8@T`WR2VA&F8 LŒ.Bs,d;/`8#BoRwPN40N͹-^xƉiXGxGZ`~b2l+8em0`VzhtMҶl5aBX"f !;듸8sw/eM-X{іCI6+t +O\y$ iVʕO1xZ}eve RHc)2N𧦝mOZ5ؿo}K_'_>[15XT)¸ @5BF{dhcUhǶyVo['0 dQM-]՝ObV [ )_Vlhܱ &*+X[YW~DHGAuVqfB7tꢰrUcwHǍivܕXa=WYpg4S1_՗`L0&{8=<-O$//5/ENG\ oNG)4: >9-G0]᤹X z7ͳk%*DF7BY\|f72S&6,vc2Cc9XG̭UJm1ؽjx@x[Sq /&:Xu›Cζ _^Em=|OF,f&!D +y$W&㌵9c& `kiudc㏘ z~\4r FQ>6`H@EWnW.qEGg;\_?K o?/{,Y羈](ہ  UW=}DWU8%\TD*Z0RX0H\hƯ!?@]>7Rٍ HEN~^,vI&,q+wNF59޴cX 0"LÇ~b;2$:"zK~tw1,`8)X1mh~2cm<(G)dM H!V$xWhI}_$,UK!؁@r!gF95:!Ҵe84s!0pYfpsά<+\rU&vtXpL!L*04R/_Nӿ}A.klO:ڱBL >W_+$bVӈ$UU\1D -kԗR0),cH$S*TZ0oyrZpCgPh\8<9/tXEj`aѪo |Zt ۥ]BP}iz?ʹ }0d5X >Y1K)>s3&Q@|v-u޷R^4)[5+jvb]pu 5 Jqq`<эʉk*;W'H!ؽїJ/R:Sվ E\U򗨼US,; ǂa0:63XtzV&~1ASvFͷ`}?g?c,`=7`ca#܏uL <}ck+?OV,,u #~dKO3RNj4raE]C}Yc_`eUX > ߥH,"Z睹`z'oXFdX*56ZBZteF^0OaӶ}iFK# ͼ3A![iHeжl0S;?25"xԴh%We(M{#Yz@{)!{S|"ptt :?}!q,F_eM~uZ@":Mm!y @0,b X3\KگnUS(^(ͧF9,šT nmTn!XvI Z5ޞ1r>2]YY*s%XjKق!/ۑaGiT5XUEImM~Pjy P  ,#fA/G`sޟFk_lSװ.S [^QٚB (BDuJ*x3LSoDxM'^Ӟ zrRn;bA">apT<9%g:4"D[V"!4جuZLV X5]D4 V)ausFl(e|PmW*'pyfx';VN|DZ&cQɋBlBy+t:Nb!'F搐^h:ŐrbXf*>8He@W RuĿ}T53A&i_VEu{mmi|":1he,sPG77 Q>h4ZX SƿppA73Fbl@P[k<S;K8gsT|=gV󩜉vpH5, B}o$> ׿=4*р ^KvHgb)HrH+x-øХ.ylЁ6̪X|p^#MVq)cQ_*Ux.!ea Y`y?*j܁at|; w܅ne  =PݾUԱA"烁0_I֮%2]@֒vMij{KҾ1: 5SRtꏈq vb;1UnfeWG3b7g6B"XnO}3HoGܨr2-˳kB6R!Vx37Y[ٕ>G3R7R4D|n\ࡧ`Mlp5׈;+-IՎPAY% _w^;4T = +StqׅrTX$TqE5?>4f4zPd"\55ӫ]k̿U_x+6'lHHAe@Z;?* KT7D\51͆C;ZqX7MbQ1Z*MocV|eIo<ƼشS s |p#G7քp`0ֵw̦wj}vb")'YxrwdꙮBFpB5` 6(K̊")(R#ږd YQOm]5}%:2{[礊Y:T3ќ)GS++(LS*bdbQjLg0&-bk(tr'd,I"wJa#TGh5_V*}ƴZycIPgj"kV1)wy>Weru3F[_>sgB~޸;5|v^f|}"wDX#wX .BKpn"*eqUɶ5#X41IPncZ(-@ d\4*ߒiJ(%aV*:Z˫Q(***O !c .xc ۰4nJuRU65<[cDuUz9PwƩH- >#B$Lg0dR=]3t#eT9lVI*Pouf ߌ?mjnC%h $~(ڔ>85IYXŔF56fdz/x2M|#BlWhvTUYjN a>YB/DKcG;VuvnܚԎ0;U1K5sKgwEzx麵hOBGqa»唧XUc5F)H': GᗀJ j5e_%g=oW7QOjXzvb1kEй.*3Xf"hY(yE8J^[>plt ĂW.sChVL TwZџ&qn;*6xE1L%#R1}:O#r`FJFH''#UuNl$3KM[ToEEt+;WbN6E\k%0s3mazY:P[/YI'20X|wYr  W:l0N5. Z+nuli)ѓ%GInR+%ĎqB@FA[+2(3XcIZٝ;@{nrBpMX^i`|]c;JAp7'q_LILf],\G!_vFWPB^a5hKĿq_oX;$:&5!ݽSBji(USzM`rl6J5.,- ?H6)C^з^nu':[}T[ >oGo]H9*,fY^^)i\ME-(H>3VNz+eQjȼvA'X\`^Jsc&&UB4~qpXٲ$Z}UWA xCX/B>ERfZ_̩sM([z/MρBwh sV` IXU`])h`xog5K]ߗ;JNYw;"w`!՟nOmdJ6N)}ṴfsKlUrV+1ctikUNfC2~au9*NCևt+В!j*K_aR BuqҪfX.!i8kD$ 9t2T|iLh5pK+U8 ,zzM0x#BqM­ h)aT#k\c3$~񳞞x.|oA'=E?MHSJ"!PWI[IFZ8>Y=B](Z`e>?tmX×պ`Et³-F)Cސ46OA ۴-H혷:0\\* zK{9CqVy[ZmZiUJwnH#a|GӀ!r`0WEsB8S7_} e$8"Tr~UMCNv\ˡ>%i9:AX@ 16*I=WcnHht}24WNZem{H堨uuKǀj\`Yq=lk5( w+`4d6m2ZZG' )Bt2* cZg-w.e*Y}:ĝ>qh ~= EjK;~*mV)7^0I;+aIKf nhy%0t@mɡn=Nӎleȵ$ rDV;+#%xUصfoP"uTCw/~wQ- Uzǁsۡ&@,kHjkF2Թk:AF^ ]#FJVYY&y70-5(+K.Cي8Cv5h$>c\$rGm0V\Ņ0eΓy` Z Ēr#?,\E'R5-`1-P0ӹkI!T돍[VT!K;f=& >dײ_R8iQMu-/Oo¯b)NںtI2[ [{>(Dtyz^k(x,y UΦuvk2.).Xn.kU B`$NJf^*W 6$=ńC|BLH,d!rO9:? yhO9'v[AWp̥BNK\圎j]+7:rNع1j{Nw'V~c]{80A;R<:1&'S cr t%#:B$u8, ԴBn65}HGsSqa,:L::rek%5Ucd⬐`|,)١fj`/*cLy*t`#ᴴ wN+ŮCF|>)-9NCWpSr\1+1:Ȧ:noTVɰכG_Ӱ' !_ ;#Z7Đ$T:*|CJQ;`[!`R:JgN_^3q#n7F:,KpЈ֜s(̇$R5^@du7fHuHݪM9f[Si sV?j%Ilbz U*̩4J3Xz72>?QՖf8h&nmHI컗$ Nji=2#CE3aYIK~aZ5kKCv˶j?;W]Z!nz~|Z=6e&UJ #odv.=k9@  }3amVHQYP'Ю1Ukm|\5D`gXP&B㎟lNt|?!}NݜqDH/@v< Lj4JwGv:졫vdh!y W]G}~Oϡ-aXLsFXЙ*8Dt{,rUF'i:|qJ8M;P^5^#p}L,h0$r6+FB4c}kױWCnS@F5# yhxpkA0a;Dq{TU%$!@[H3K~ 5qئVQy(D,YnaGqG7<#cAn7L1vx1&7E.¶.1cMV;8mQ+'s;,PprkB`6xq?"TuyN eHWِ)}4e,+h9X4q4KDd vvg>'_CwwW}/m-|V'j-!+!*q0fmSࣃ~X G!j;ߍTwC>"HZĕֲort[BɥR`Bn1ߠmJZ-Ͳ5&?gcxF:I3,/60VL+0aЭg'R8/C{;=hpדUYYi)]9zm>vw b;k>.v%ƪN\Y'oWՕ+BTϧVS:fCpE #,h7k,=$wdn$ i7T Gdp̭׸@P%ń_v|,ZL$,U: "]ՕPzA2T `Et|Wp06|+`y)iwHl%njK_OEFɩ5ǔ\!td r֜7Q)aS{gTNW Qm=k0ic44dB.(θm+ y=~VodjO5˧I!ZBR U%mޛAc$d3d,f{lBľI׎644c}Wڰi X~%F*`<詬ty"rԵ(buź44ni㻴 N hP-,*mGb !,-l|vjz(TX#1:0;g~Ppd+q%{G+u?)<;7/,X`5^W0XX_}Iq w~? CWfISH%*ۃQ12a;˺q9<7VN+j 8$b`8}1_cL <^BԹp਒s=.*\<'`ҫAnՈJjEpy]4{>>w\.mp j?y'tbX-ban6Os@]KoEm r'v҉Iŗom)V̡yPS:'P*KzRj y,W6Vggߝ% حMשf`*geL(1IxBڅb679rF"[3&}%/k qؗm0ǚ^iZLM-)l>}\X0㑻 7?OҸj5٬TJ3XSn4e n\h&(? te[d[:5Ws kA(RCN\f,j * w+gS%C4C.\wq}U9`yJ v cYF~$RCmA-m(,9%OZlsDA۠U˪rw(j/J9`qx`]SpuFgg5BnnPBAόC%L%l!rXC8wI\ܬ'Du*3r)>/T{\R ?;04RBh%Z!H÷ŐUI_#PAiCc5x- )7d v( pPYQ%xhztX>1<1Xx|fbM ,fF jXS"' .U -5?֯Z &N.*R;!rhyuiZ, laD~f,A]{z$ޙ8L4,Yyn>a0XL2l?14YzEhd+l=4n=kWyq+J0ʬ4Xm~.dDhs^{ =  Ab%۰ЋwW:,*rv+xCk(PMFc5~^ 2;URLQ@I݃~hz˯;X ʠd7%9XtIo"gnA;lV|ú0dיAQ KoCtlz 9bP.Ź$g4jܬ2$8.tnE3wN,_E mX~H"eKٹ"޽+[Ϝ6 gw95)޼2 z$Vi/1+ ^ZQD\_Fca+ߒ\:hœ݇`'`dޟyW k$&<5dXNk&,k"*wU -,jl&wml[R`D&~f mЕ7%<!KӞ zrRn;*">*vy'.v}*vK`0"FLl>Ҵ{ [N 5Ȃj$ " jyO(PGuƯ-Y`:s@ ɯN-˩-b+)|ʾԇ5 Q#qusS;NUee]S2XuX̮h^eiMܒt*JXӏ W, .Az g4V(0 p^ I_`!DCzݝ:/C#am[~~neRY IΩT}T ((E} $ 2 "n~]K! Vu{SZgպus3?3?aTcV ^F]:56$%Ē? ܖdנ{S#NB0Vгo Bɯ `rQnB홪DY<W7A3}5X3ӻF9{H1x"&2I2k~9ՄxFdM=9+"q cԮ3GIc5붮08Ri&n3PRgtҲPмˉ(ǭQ^f\,M+<;eF-KrѕBZ:Q'=J`yR~(\b+ @vU0i͔Ў>.Kv,K`|~O[ܹ%û_Upo09QPqeX`~l9'i(7XkcU"70vuP=ٝYaO_] OyjY#BPVބǷ#8=Pf*U;VnΡ#B{ RɠjJ晱1;iEMB{42"blō~c؟;ɷSiNbVb=(w]M_M*6#3 ȒSs-٬BوԬ@s {JHUϭ9eM1, T*|w2q:)AĈ=<XxRP -Ť9V6Rk!rW_ U9P&ӦY䎏W{ ^cmVvuy\cƘ.k<&CUT:#,;ZG6+|!)ɳA=i#w hB]N^`p>UItRhշ.GuQ/w~ YpO}Յ-g".xsWqR﷜vLRw|j9N)\jn(-,ǚ%tJv=37%`; "S/ȬLi5qrj6., gCksFQa4d CWy"XE[)jQPCS[47%olپvJ7Ne2`|씐 Cku:2J9rjw?]6lgO*9cQĶN d(25B{\ȼKрEU52H,!=3#O|sƷ0""#lH Y íÞ@\(߇*WǔVCMKL#+,8;Zf=5@Zg: \t! ھk%`,X;u.9;>!6 $w`X!_Ԕ,(k~;4XdD(V"LREZ.XmS]ûbh")q*g 2龔(|МvX+zU`k!7Fu 30@pYٙC۲K.QJ^.TX|p$(r(slz؉ܿo_ "Ɍu5"ƕg.TĎΤo3 /R%UrމT ؒEaa̩hpUhg +"R`w"1 #h;ȝt\v٤IS{, ZG@b}[ KɝU` "w,2R "-#Lz=+R-wO `M̭Ѻ+!Q*mWGM<[ϛiX8o8#lҧ NU1 c `VPup %iXT侓XњgQ^hf+]`|>I9\)#}`S*C9XLm0%%"qg*d'._Bh{X=N| VX4K<ciq8r!#ƢVJ`c3)D;%WW(ʒ['g\7w>Y_?I8BZ$_oѺ[C.}%9qbqAWXfTVeمʔ8@OҪ^oŽΧ={{o RA-a]Y)K+ O!iN@u,X+=JHg8]벿zo3XBlY|጗yCmiYjHVT4wQXA5dH(^Ҡp3̓Ry { `, C8cMӍľtn,BFB3%440U JEQ|:q;Ptx4ShZZP٧Bկ:tS^z=r RX6%1"\J Xֿ5"p}eQi#9*Ic/i&5rLXzXPHi`:)9ުZwy]xBVcFfg*eʇ{"|Օ"_wbj=MbI*,`js7bKf'¢]K>΁hNkSfPH6^o}$)<Q^'w*)ʾ; ˆ77\z;+`)@+L Èτg窪| YUK%fOBZ DU_ZX$ ɌWFXC`uՅ5eC*Oi_+nl3m'kŠ4n vtsZˬlPԝO p+ɽ<ґVT|ݠW w52aY,-Qt]5 UzB]rZIU[H;|!zft؇ƃM'S\eSg vXE!{}rx*}X\IɆ|PMER՟X܈JQ:ׂX_x^wf)8=7%Dxzrb"oP){^Idh {99xRG3Djq ,A@BF띟~?bnتݨ0LKi[5+Lѡن Ջ5SnlRq&I)םԄ܊`]IR-s 誢K[.x MNL,O07JWQ)72B5˨l>!kޢ=ؽf͊0ƻsVI+" |!%,}!ʙ}%SycQ^7gX\KqTKK^ L}OLqo (aLGm'UGT#D6EӔ .6b 4XY_ sP6OBmmN׺SyAw8!7¸tkV5"o1!G|diJK!kH9wsV$zYj!Q;֛WXyu; #oOE9L])&/~};6,q2F=`[[#-!jԤR_R?5CtPOdj{rERoRY͌mo븂tX95GNs ^rȹdɰgξѨҨr,X*p)Rp )YDN Ykb3,R;!RܪZ1.TuюgxR `tƅx*ôo_؛o*V fU6`ʻBobtZ8e&2XSFu rJc60kF6|9°u2A,Vn}BsdAg rϔ26ɰ{ j'18E-"Lяd4t$w#@kUmjV⯎ Vn.=;. AY2,q3ÄA/Ь`׽XK}EtM'RO`B64^.[KS2;>1&*44  d>Hw$K"%ouYʴPEr8I>XLSazgl#*P`c# \2a"$-|ivG_|A/D{rUTōb!rr m4 =&)k *ЊhsU'2 ЍEo涪 `PHLCƋ☛Ɉao Vs1ID2tMJG3[wo$YŚX:e7[16Gd ċc|JfWAE|SK*uIvB|nkQ WN7m Uz)E(҂V^Z&si %#16Vf^11w_Be`eIiLq%f괔 H Ygkx]U7yc({ň|77]ϩhC&//_Q#,b*I],Ɲqe=AuWʤٚ 1VkBkG% d>-4gvg]:r @W [ A 5_ZBGg"m%;+7`Qy{{tz% Ύ7s)gW8am=Ou`X9t3nZqtS *I,s"sQe!ₒ^uOΤ>.?(Z r_xT! g1{ F9gQߊkkN,xMl,ת/ 357 QJ(V^P#,& Z~Tv\CqB#H0@WK x Anx` ,|,a[`D6|݁,PWab1MrJϡ2wXI3c#VvQGRjK<Ğ kh$鮤Ic^IJ콎dzSggx OĆ@Q%tkLYE7S ߳%Ys單?YJ:5D^d=uԈp@Ve񳩵 .O01L`!_`-ՔP鸸/ V ,s+gJ[CV"} _k4X*0urGlvWK7sMJ!nUp:":J6_vuyV`׿ `IJ3sVFK/ ՄK_e>_]X}m3ΌN":f.ۅ^`t|I:F@b͘2' ooXC>躲pUTt1Ydr"#F~T9.̶BjCT\Tum,"lBKPAV{aZ{zk*.ICc{ qirVxtPzu*+;WC`C} z /Ͼ t͒|ՠ?*,XQţKb:HJL\vO1v<|2U.A=q2܇4xma/XPx.gn:C WS4%3(0zvByǻX86(86ՐX,#~|W0XPq&1cQ;Ȼ[#*Bjis[%mD`I^+W$7ak:ZCVq : k0XI9/;"ӱ'_HqZ̀FD v2MB&]3q:vEzϽQCOsvz:H5s@p`ˢp28lz kHB| +XJhBRDXC.+S }O?OVkC` cIx)G3T]'7bc{xLrX/b5+S?к!X]b%s^|`+iˆp~feWVpTQ1`Vs$24*Y4Xt,.FQ~x/r^nYh#++-TW\Ne8M^8Mmھ0Ȇ 1NH^n9\$TuTeie5XKQJؠ8SI % sQ\ tM8;4 < gx'im&5I&jExZϮ7ٝ(|.bqt6+ƲJAe.D_5rG}" zÿiUi®{E( $E TZ#˾DLgcdZؐDdnygHi6(>Oy54*<ƒ|0`MeՙNtgE)k >ԈpVCEf>o|V|ҵnN$YT{scwےa;_ YSY#Ct8+P&߈BW+OT"ۖ@(FVRvȫ4v`6l, [1Y%TM?ٞ Ʉ@a7,C Bw[v!F;x&BRycUU5pyڸ,$! P-C,3+aMJBn,2PWe*(")s&27z Qq` τdП C?"̴zs]6AQt:Xu珄ah7Q6cC߲MVq%T <Ƌ(1aXζXt.%ɘit2̐+(! "a ?FTEKk$eeKЊSur_#y;ᓊۤv)kDw3 Vpn`:VxMtE!z*Gc4ɍ&3xq #\$Ctmy`,sX}X]%E8{C P;\&2S© Z5 ⭍%ָ3[5^U5y"cp\%U+Pbyhτp+pTx |U@W #)?3υyXMxTSˆXd##_˝~VJJmTk|Fnxs"݇BfT;,Q#-*UTg]t%M1m 9w0+Ɏ0VJ񞔑Z5 ˚y=c0RsްEs.j)0)Jr3VS*fʛQֶ]qiΏ#L'^t_;.8 ۑrO~p_ugåWQ7*7{cA'Fݥf@X ZA90VL3.ވp2ڜݖ)8)!8Qp;[>P x`,eJbf"rG]zdJrxq4J#,,4>Χ?m$S;x*ߟîJ*Mʱ`TSQ/͋&IPYq1ьoL>SR'êTJx;}r3Y?2[ |44$8BwD7 ?uE7i 9[WhԼ=zS*c!cOUyD5K+#< '?bZXRYP [`!q!yxNKmɖVFӹ鉦s=KQEV鱳l#SW:Z(eyǙ7uIr[>o I{jvK`BFabxӬ\aBh8z8%GWAx} v{|C!9Ue6x:-жw&;׶৩$ )y)Jz{uf;z{x9pO} M$XQ"<f˛u۝xF`l`qB啗\+ġh]6`X3{2Qq < nG,6vDW` N.j2r63Z)22D*Ah pU+(XS]\ϷqtH;/`စd?"}Ԋ?6NǓsHZHi/Dbm6r0S/Ъl?d3x doggjBGQeq`ӟcC_W~TɁ*x֙+ab*J/x"tA8`aJɡ!pX\25Ӭ(aAfFָP>KR SU$6;~",nɗ7og9 ODW]>t4r\ML =ۃ,y}\$QG]EmgwRxm㺢61qJ:C9 L2=5d۰pw#^w590XW_}^uo~Çd'1`.n; 6^J !&z@ݦ>n0@22l*wԫUdpN^:椝 Ts7һ"j{& {Ǧ'@W`/K&~ΈR-穚ilՔ͹cwuw~lJ@D/Z%hlwyqlh 1 v}?"pp;o| 0% #B<*xK4Xf<7^sfFգ. }EBS1\I2`TK 3{юǥ~[v7m%"n#_@Y XIn<9rqr3Nj"cqg(Y̖)KU=/xda) K.Mj^&CEWZiF~$E, kV,nOo+өUgRr"lZ:/x׾knQr(]ax,lW5+j3iOkZء `1rD$SFgdj1uuS[EC>^i4ppֿd>2+>0 USVQd3LL ZC4X!K8#`KDa|7aؾҹ Ryg1DbVE}e3;@"w:N2Z\tLsWǺTc^A3@W:7@НQC~t }(+T$\V1 Hկ~v^"t <,.xĀ+Z[X[ƣ?O˚\\8N3R@jP;BUm=]%qp LѣӀ(ѝ +ǺxOBuwUs`]:q^e!Ԛрs ˡsGJ̘*i&N$r$SLs.*TR>Arnmd37Ms1#$|X^(#B߼ ^YR!5T7',5k: ݈VދtCH+?au&1M0nlN*51Ͱ#d|\ bH{kHIg]O'x;/jg܁8VCR}Ӭ`m½z }]UlBeeW!+wЦLHpoPY`=nacJ/k QQ~2Яuxnf&jҝQuϦ cO>7WH\q EM1'<2˰"{QXf6*蓼 oTa>FC*[6qfWQXIuۭw@kF a(֊R2M{ӊB`1:cMjt֎_u3V^6.³Y;~ũ΢bDqcyB {8VCbEWdi& Zz̐S-gE*.̢8EH6 &e:tXrz ׮)c/-rY޻NqBط;Ǝ#cc;m AZ_Kf7`߂ncq-y!ˬx1.M|QH]ݙgH :fg/<'  <֮vԼ1=kyCzRia,4Y٬Óu_}yno"}ꗶ#lyaۉ>?Yfe~uȈvãf6xQ>@.buU;1(uNoJ Yϳa!}ڶ6dL$ͺ.3Jl$<գEeZ=t Cʁ ]#)3%,Ѽ%2nN]4 )#?VSuAJKaK] .]/K+^:oB=Rg~800XX{竨)>hY-˥7=:l` ז yF ۊDqZbN:s+H %ͬ< Z ކd]@WK x PlAbL,IN;p.7ص}mʗ|u{븺Ub*r[H /Ҡ,'=#WpfGS4nfUZ/EV3Ոڑ), chaRtL%QJ>d[E421j⨆a̷%Â"k P\oc)F]KiI͙`k9B~ +1f`y\ԀakG8]u#lXlqfۀ 3ԧ^.v.B613Ce3 J6vlϧHգkWLN{Ayb^b2RV[5'J:My#nͳ+4\8}t:~1*Ki02{@\=Xf\nK׶USEaq!iĕdG>fzQoacsR"f"rG'FھO\e,* 3'H /^5-G%?k`trF1LJu0R=LH&c;aqfs:4u]CCeb v,<(beב; 0p!, ,Sڵ`c7`ADM"b7}:ۣlL$?Rڍ١|pZ*h8kHu{EpڱGSBwӕݻ&wy<|4TqQ4x}Y3-̕8 fYULG}=x>Q%x1N&֪95&;uM Om֧Rja1 =eX,x'NUЊ۩taukT]EroI)ۊk>f$L~s5pBڟX=}jt+Vbbv)en͢ $=5"N"nZLؠ(A$Z3COed.LKw4,:F @_!g,JQZ;,.x"xˡ(MM7 EÓIMY%N@Y) I.mT$AlDeVǬd:]|CbdNWh9U'p~feWVo}@TAFCVbf}屦)TfP?{`p> Q%DwCYR+E=œV,"4U4(֔VZ`-EnfMҖo~fIqf7WWҾ$@~was"h C|rÂVi铸VV{k1Uu|"|])[l6$6$,{ug:4e;SByFM2Wy=1\ \ F*Y0 Z`.) R#9U![UƼ|誶eg?ĕB{AwUՐ 2| B܃O0 X!Bv]}!5h<|=:T!?pł{߹.B$UXT54ဨj+ r,^;l7L0Ϲ(P\MiPh_ _=)֒vV߭:5Sɳ>@<@4I,61 ud7 k7ObIwasHGa^s\xd A[/Kotla "GpGԫL㙎2N*Qx~X*("20*hT?a/²Bc2#@Q!!_0 _X~.1X$4F'ͻewX?so@>1&4ceH1G|e&Z)4VA&{jtйB/'1Z`jN<[I":MtRyg]JSȀ1?H=C! y"AI" cvOVm<GBW `™,%S gtW n?\sT-r+*ffx*]Wi[j7r3T_M `tdRO{oEhn v4п܃7Xa]%MeH6It#'EKN[:m_Z"% $ü#t<; 3>A A.};)VŢjVR5`5s+ k~pD8X% >}4va7v5+>#dE23*E gO)n^l|!.)MX},, ^sk.g( U9pPA|VZqy΂WI`[qԴl_8*CtJ2`UҬr [ݵ9]{5ml.&Og"pW U =|\#,Rn>0XڮeX$O>z'oc?ޢsqVA?z hەAPU3 y>Zyk9_opSfy+5j_1) nrtF00Ky rIyoTzХ+x+;狛ə1xh`('2XXpք0o-A"0m6P.,dNUs*ay2,0`2nW0p y_؛;G+sc N]È+X8BCNc,Gi#4vLze//+_ycxF4_VbXkpv;cڛMw3N}vbF^ 3Ƒ OjVԕ0PޔtXjg$IVT$_tTgMz+I`E `mvШ:L'a}CQ3 %ҫ0#oϣ+aוIG,~e тzC~ Uz30=?iߑ-7 ߎԱj}>y*M39Zc-v2rN?(<;שPcҸ<lCN jcKCTn *0X3!+Fc#/+e7#cA.0K&/Kw|?vۇ/PA { wDduvMt,i) NpЈlPq RRY*seo%KX ]E ߝDBC/DWt>g\x#7Uzv2"ߝk2uc*uxu DZMs{c5/Xt9RۻLEZbvHC.hXTXT$VX`QtwfJHb9%{lܧY3Gk+^;8aCñ B7,iS56Sq0+ ~6gtWpoE{h&J*RՓ3 D+jøCˡdU}л *GQ:D(SYJw+U C>:nΣkJ[zlT iy▚ZOW*Ehq#I[0hHB%H@{+ ]1Wƻnɠ+.S[|EPt] fFXiԈG\ gN+"n0;ei^W 0kwc|;+,QXR= Cw aqa! V7|6 Ao`IП`N;U72=vk70d4&O.wzY6!| p'8{Վz[qU9)ݐMy:Մqwa4k4#~w&ρ} +ygb,5"q:SV3QVss,9,BG }Em@X8ͳʜߧtYS0ICe$9edgꯡ="ŌwQ`'}ݭnPL'247#b[Ϥ<8PXNK?Jֱgh-7۪bS~\X7f@>,Bb)^jwb<,.(m[[:V46BBMxtEsg+ a%*H.U:hj ~Uy(  `?T51O>1wi|bؒ4\wCʁj, U{O-H^_L,U>A[GY|uꖤħiӒ8*7əܭ`3fIWroʝʵ! )}o<守+UVwU>ӊunT7QD4GфUϕX%#ψ 4wZt+<-΅$ڝu, ab:Aej[ u:[yOD#iJbA7c)J`ʰSdcL&fq. \ Oyej\B&-u]aJ7`J^ds  ݔw.wC='pȒt#4gaLrlw:)j7$ / lfHX*Lh` :}25Q[q a]Y1! =o4. `M*!WhH[qc*it=FfPn@@W :CVT.?!D gʲNCza)u<"!?(Id&(#E<,oXP\~W J=YODfƜD4ӎ|xOF>]s8Wv:`L X].RГr oI|k?"\-6uSSAvO ?ӿ_}Ϳ$wqtMd!gRKjהU:1NXˋ}%R.qkf\KZͯ@\^XrPX#I"9&'$UDaJpp"x=qv@jNSqWr 5/vɭ )U7\8\(+A+)RQ"+L Wd({F|',e$>X.~_'a]i:W<5bbpngJhLj`g&xD' XZΧoSg=B0Vгo Bx `A2Ѩ,і3A/!0p`&Za e."ڕIU/Kb( \9ғi/_N9WY*cU&D 5*BV6CUfp4 2;NKIhf\"-bcyGfv˭V:œʏ>u3?eȭF}!aU3\~Z[K?ħ |i*] U9x]jvML_x:e+;gx ;q*u&;QWB~M~Weڬ Ib'\۠jG(Fu o}7\+rp6FH;St!]e;>۟Ghn|`,n yH6O`j%D}93)}Z7=9!d_-槐4f0;u^qk)55<~!˦b߫kwE+{9*>T8.VhpEJ?%iTwU1gm]P}ВDu2+Iӹ?i#݂ 4U@Wy̮?'/0XpfxR{AF礋0 ?}=??kG^휃Vn%AU#)ky{^7tJN:jw@.h1YQjui֣[ TY&L$lQΰ"]ɈFxdHd!Hc2$VGYy:&qzD8<³o [6h b'jˡC7s=Zq M-̩ʌ+KXBgC(|H,}_%$,4X}K~˚ܯlFlIDqRX|SM:()u8pٵ0mZ1V.iHYWy |r*]z( VSnT[— ri؋~M]7Vmx{R *SK ZS;ĚW[%5ml\%gN7Fݱ4r15*!+PQH5ၩvô\J#b+v϶L X#A  `#lCXVGR gu*2x>-Y^Jg3 )g2+eSS@CQ[ՖXGIw<ԣ#鑝902~"$ӨNGӚ eɑZ>@?R0'rgjvR`kH2&EȷҼs&Q<MIʧkz^'!!X!K9]5sV,iо`1"$7C$htgc{0s\ a׽H3ċC46|qg&ǽj9\gcm^! ^ɾXs?,g=hKW"NZ]2*Kqd:h+ѱ<ԄܯQ'eie&3AgYzX,0Dc ApBTqvfSBajЕ`&w~ !(O}p0Ԛ.:1gMtd A2egpOLѭ]kئᩋKNMCQ`;:nGWm&,w'cztTKϦi,!ɊjXnۜ}dtWx5”ذ9c2,xU+7wUpI2Yft!cTx 0lqJ9o)3tV1rq^F9+ pvHI J2XT>Oۄ0+ '݋G| r5k.`oFz7)RTrGx&$f"g7} ׿;}֎ ,,('FV"b0$o f[ۗZ)Fb8=.?Wv^'J1=_$IOv\[;X">GŁ:\d:h31,S-,+~l-4Njiul5$V˳92ٶzsqRj]$z0XPܫ\p]eAM㟻B4X[ u<HF=4,T:Ĺxb2.:5mڨTI2XxƱaRC妲zYXйX7Ig!TehwA\KZ4 #B<rxwv|>aJ%3+e,\E]]squ`}UgP7rIa{%uIŢ\?*Fd 'c:_YR]fYg,'sG [u͔ O$BRs#.k & 5w(;*;ΜP.W+@b`qᚊu*&P|[+!n dgΜiNOs$*Z)!ye"˙intom _nlB8?X0F}O*)@mЙo/=;^kإz諄f1"迠zo#A\$a;_D;Hz?zj&ʞy7NV7«`}2,+E%Ԗ&oݘbtz#;/ d4Rmfq}[u´!ź?XRN'9Bk`N}#wF)[DtE-pіBkSc(bW;%LfCYK* }(֚j&de4Rlpzǧ\^Hrg`A˅EkF9X\2%И ց:&3GᠾΨ]A [V% 㶘囯QݖG +W(Eh WxS7pӇQ<(>v$?wV)b}S̠p$+ `aDFbX <`LZ6 .Sr1pQ3x>3CҠ}n\)UrFDٚJtTz5t`!LԨ}p,Ɖ&3ȅBT;yeGW'[a'1.9 s"kh\Kz-{7,s!&'/ɮ: P *`殇-)1Yfcޯ,dh;㬰XZ5ueeZIo)*f2/4=qs[ UD&HBA\U8#b6LtU'(+{mj'z)aSIh UYY8+4\8}S 5-`3Xj~80py)ĎKF,i)T8eW(o3ջ>ex~-{L=9n\N+?0v 9$  *UuN-`opP̦g9 ey$&w-11DWn|54SĎ$n |'x1v([ٖ.yK.f4@/|ꏠT=eq;P6n7kO zU7 ; 7Ι0"#he9 ~ KݫLǐyZ" ]/hl:ǪbЖ9^.mEbǾ]7k:"]ȮG>`F(0݃0+h.`-do0NE:/,uhd "wdv`5gѯ:Y _P=v 7-yxW/7e17jv$Ͼ[I6KR*|5+!EݎNmqE^EX,Tw Oi_O۵;qDӪb .Xl ? 4+ w&`lsr!@))ulx+39)I$H%I6sk{M@Z[;`q6TbTj2t#T_9*鵏is6&uӇ(ĈBPS Eu #!!^Z-Q1`V 9X$t"QsD~8cEIւb, &+9 \'j9X*+mq3snK=Ф+kb\t|0tURtu:[Pf=2JfwZ\]ƕ5LTe5e8OvZ'+Z8E'#Txx~QX_Nk3  ]m[sO5/P%,mպ=j2S"6k.W]y-"7( 4XpP`1wc9!K]_&0*+-Fɇ8MG-YU?=gs엥q39MMpCYś>;aK|a8\( y ]=,<0Wd;a{BpXw[?ȍ@_ e/ecRvܨy[_,2|B֘ΫiGT$&[eU3+_q@WǷU%MT&AeNn9+̔?l1g',7aSY-x g g V]Y&ifҶKV,)&`ec7(- 2xm֔N$+İ\a+%͈H_5;4Yko`+l ٳ1:T;ͭH2ƺ8t]pP׆w()saM[)r׋Pbps@LԆ}~,V#6.J3\Wј)EH]Ln]`G23ǖ ۋTaL3IKx{z7FXDOI.J%Wc a,/=Oÿ%I1 uTߟT!E=sQ8k,*Yaלg(ޅ?%)a'\_T5dF*4ʒl S|P8^+HPyo d9tǐ]`aA:]MNX?qomU^KԇsJW䞽B߃ - DЅ$(҉ؠzUOQJ}{Ͻsε18sZk :g$SV]^[y:}cv94S4+8# 3 n"my7tuX犠h$x%hޡx#~v {IH2fk}*bQuTϾgNo-# 1 X7\+ O=Axpq/30VEB-ɡ .Xvu% !+ϵX0} 5:8iUP fProx_VI# c%,.g3N I$4T;&Q scU$V+YM}7%˴5JrB?:~3(IiQheG%Wt¶ ` .~ f ^#10d?[,2ZÅ{-Ht ӸI (+2v\W+z"2SLdٽX.:#%i:_`aD*@+H݃ CP|=Cnnt<^ޅS']I oԯ\CT6XUCH\Ѩ7+)'25Rk2g~zpYOP&AroRyJjjDNnPClՋLLsѝiKG=,vF6id\nm]%͊u*ƓyeU+w&Qf0eS(Eh,Cg P]3cAH噢R츈 \  V^_5e"\>%Wi#! IJŵ`ƤږSirxlU/ !18ڴci^H'9f o eGDxo2TW9!+~)&ʊutR5?M^p܎kW#qվ`JJF+]gvͬuDW)(69UW:>y!I:}U'+I,AR~+"0{Jg;#-f? E= 54*%9x/`V Y*pT}(cإ(i7jt0QTڊܹS>ڪUqi5*PRF3n1پkhZy)]L+>I$ѝH+^ﵜ>[9K wBh%Vo3cϚODNDj5$6@npb1;emT"aдQ5SrkqNc> 讐T+g4n B./T4lW "5Snje`_.GfH=:0t!#¥(b7T8oa,b#״ƅ bL%[n7 sws~# oծ ǃpB[B2VA\Hθkem34ST]SE5E$ - AT  KsɐXfKl :A>?"#B=::~j[΋l"_0 QJO-|UBW㓺M}-R*{HmgZN/} c<8]̈́QAoU@QU| {f.2Oѷ&z>X_Ȍmuښ$wa>w,T!ۏqGw~3QvBu^W0XGI ,@4hŵ3p2Y2&;)'FB~NI dagmLֿZtw PlM30 %ujы<)qv!:TXjiZ,laD&O%|\f*<\,CeQ~>VHr6H> 47ɟY}efAX/;׺U\Aܹ|{)V,~8X+~)o}i0,$*/uM62/8rUBɆb#Ԙۉn*i̓" lglE_EZA7T uR~iQƓie<ȾH̎69&,oܯ\WHj0 !x2 "wXԃD"!R*uwӊcy(PS9IEx럠70ּbo1?RNvNY`╕q[)I,$t"8<8 k,Ֆz5aB3kWbNZ0oroU×f5KڥHl[i|=F C*gqsj#Q2RwU#u aG+wn0VnֺO$jK%d8bOwtln6ך+ï끗(xVX՜ʰak׽crw.ql(2'׬U[8u2QzٱN!X9cne.yb0='6WsnfXs%R͢zG*`c_8BNjc+ :0XQn0.WY!v #x"XjOƛ?_gW˰&iׅ-)͡ {+_v;nP謩!ePDMI΀p!)/Nl*qّCDaBu, `!z" ;#0g*ػ SiT69rU\u^ X ){ʨWāiN侠'%zq  M6 GS-'۞;%ikJffsyV X i \* xnDhNF[y SB訯M"wV3?yxgc~W}1?Y TVU#9jtYnl^tU3 rk2g A !Ƌ(>ɉAx0KzHk_L*MSwG,{%꜅<û5U:=n+Xh,==T s ԍ N- <0ӗBNy hY݆!f-rKkRow`A1C]\:2Abqu ;p.i>膩:YS19F [(&;3[>u4wܶ[c=Hxu"풷].hT6L/+x;6%e;+b`$Ĉ;w0,閣Jڭ񖝀%t9u- L'DUoN}{NFJ-V&,E<ɒUKEWfY6(` 쑟ΎX[1Tg2S^*H2Io ζ!5 N~8hv KN“=.%JbQ5^Բ~xp͗aت>.rU6D!-8Ă[3YD]ʓ@baSn^i>tU{/ҝRWmٜR9 ƫթRY(34g?WLiAkS[U_Ѩl3CɃ  ./W]y F"MDJVnAdXN2.n!{wݵtae2wW4&![PM LE傞Q!1愊D".ZGP+E"2||X5lI{:ŋ>4R1dD'FhZp"AcGgܐ*Q0O!hcjw}0V̱`֢Z,SeZtH<J )@*pٚB54Nzm;8THvdm^>5 cv+K/w܂7b\tE`kU> G[4I1o|ۘ" G 5eOHIfP54}"bTܹΙ:_m1Y=I˘Xh 8VNhȷBf32hTtz<"*2FȕK=" L0? [|[ XFa\(Jy 5-5}-Hrʓ t Ҷ9~d?qy+`=ꑏ̫p[¬<@f!5z̝h!;`<@B{_`ӒW<7٘3+:CG^\YjCwe7 k.c0Uite.`Ѣbg>G_… #”2ʟ/b*h5rpPCWIG+M)LB05D]]>$sbrVfS4;j4U CRӔ*0 i*P>-bbhXY<o-п8i.iMup:@ }y'T9%V|8.ګk/ d?{'r T\XPwcAPwYBzg\Q+m:':J!EpH- x2.%g=>SI妑^H8P`ѩH\M O=-Kx[ P!`Eqk{Ln _s̭@lK5z'G6ƚ, VHmu95?mU?Os58T2t8-{#SC^(QԊKb,8DQb{lU]>: ҋn]v)3:rp*ʄ,&QBsw: Bu,=DkU9:芿7-8!')qru^8lltS_} 93.?7KyŠin W`%O1k :> jdA.,#e Ǘ,=GkYpܲK֙;Ie4MtAfI;2 썽0!CW_p@}x Y8L="VHe~^:愤W*̄d#Ё<\wupLVQ+5sZ[˚=|`l#\KtrIs,i˯ c͠E}\?H( :h6fF׼_u{Ƚ `tx <4 gl\ bɟ6?(Jhʄ"}oDKEAa)gd"1p>8/5&@Xܵ4!_A p0+(܁%^!#Ho92m%%tqȂC(t3weK3˪d$AEH?=c,;pgYNͲL<'7 kUgF^L~rfd+ei]8T_c^n LrA &yKyjCs6+Qq~5<[WxXp O þ:.uU2#_1T de NErUcG_ rJpt;0P 䰹 ɝڳ $ECZ{#' >Ph;PDQ2LZs 25_G[wg<~*Sw~l$`pG̮4ra9[sGz%C)IkHOuR!Y{)}x9 Jv(9IK? +]ةL;*^/k(:=TvɦaRGD_` @}ʞ1R<2F$Rv:9߾"h"?w@ (OPœ8Ra,CH&Q7l7h@aF5y[]gxU< ZM%ڣ}mMki+ C̘!~+}AqXތWFC}%A}8Srlt2HBRC3Qd&EVNE"R⸨]7x]vRQڦU qƻyuq[5 uÐU|A9m:2桒}BUHS>Gk"&۫[Eh&Wr2 e5`Neso`Js$8>q2κUpj"|r$!]oyի.O},tw "Umbo3EUHSY|/Ha&U@W!:=#+ ֔(U{u*/Q+X7a> ǎ~Fez`ɀX#ooe:vwS#OsvI$U%;bbHz_uBi@zR8Tq_{뭏&ɶP\gs[ 3`}SA"\"d|!12cnU"chga@(o|'SŬVa,5LAkTNGAq16ZA&|t2 S)?PtKZdO{A=EoS4[it8(Nw\bJL'P;_%*P`5F8ΐ3hLJjt_g _`"$>~babt;[Vie%mؙ3=aknMc/Dfgbo<,Y2| xB{c/oz%]{]Nݩ?Jw6Oۆ4VSlPkk?^oPgw=:]͍'&ՍGE{2OS2a v‚*Uu' bkBJX9w!O)lν2ALX\&خ_zӛ~[וwZ0| h& ]F\&g?5nw1Q "7np=аc,ʇvi6:cP֒Qқ5)ڙ4lhB!UR!t x ;Yx/BD\NHHRr+jL׹[t :3L~߸ lێ]cѱ2)~jE.A$FeOTd.^Z!:jOþy?Ns!?Quv'{E >Bz^ozE„}oŦVLNWfЋaU5 tB7 ǬYd+#}篁wFWS\L|B 1S6r W`oK_;d+XԱρWxa󮺫[ y5f^E*1E28"A$uѲ("H:xc0`4nsn>>0FV`וWB\)퉪V Nj)+}a'|~,Q{蘑Gˣq)ș:[錥Nr#h+Y'D }㬼6˸h_8(w}`Ӵ4~v+ZxVsבB]+h0|RĻx..M9=&J7NGxuz^cHqoKY&ѹ/1"D;q֗_Ifax??`BwmdO9#Ped o' Dj,v]phY9h>fֲT23;=GAYA`!.+@+Zw{nLUNQt=:\f@,";[+ B5$wl*;+)fUƨiuՔ8,:Ib=w!WTRPHJZnjaI͹\3fsG II2 HږbiuO1.DY&2_4T|:*41Vq'2zc:QK!)F <돾\9DŽ.`G#t-J}yS>8Z2w]䶉݊` \h?i J~JI+^6Jᱢ:|jR@TAFCQ䍜xX&0|w`D,ه'DE ]dBkܠ5GԙIɜն`)vp:?u4I`kӓg`B=]U3="5sM kj i'D\{L /P ^}:Mn&ݹcYY8OF?R{ZŒԼ0pw|| oOŅ- CL6#:ee ?Y>))Zo-2 Vq ^&KUݓH?<4}V'UxX!`9N'#>KVX{B\ᕈ X\0Xq=MǼgX+2Mż+si [[hag/ANL*`Fd$٭΁BL^9fNq5)eʊMT{*|]BWk *5# °D'szZO pVNb,NX/g%*+27&n8A/W]MZw}conַay^  P Ra4f90"L<{@)ÙuЦ]LROI`SWT6}b@NKB%C0W_&8Wk,3+% Cj7yV0XD%B-ku-ƽz'>DߧqW ԶS Ңvn<݉msP%qIM-bNRr eEL-6RF֜kgxzmu@5̞y׵ &bAZ[;L5-V}D]zKcָw ^y|1fޙj`HdPhi)Yy ޼IȶzlN?we[?o[k"e%." Ѫ-.ܖAëi Ȑ5wNmneJ}JĐX&*#ڃ- v]!n3yʚtQM.1|5v, i+A;"0"ĨzdyK_zߤb$V|׿ꯅ,m +~~.Iǜw&A"QNE"Ju -1:V~,ƵP.#BF`gTy r$+^#8N$nL|fk #lH8)ՒˊFV:Fg3ý yZ#x)4*s=:ԯ.yX_!}PVJvG%B3umȵ>yE  >TqպJ9d3[Tjᅞr_dǫ;W.byT: 0(<c̃e68fci7N"C:YL[G-`Лt套 *Å]+QT^su~y9` YB2Kec&ljJkzΚe:GzXם۹CmUcۜ\y{FjqDcW{GY2]l&2 ;Q;^E%.*\<'`Ոb";"Xp|IOJ"-_~> ?+ [JJeH,ͤ1%|z1k}[[fǹEbYyn5y 6dGE4LsBqӿwiz>1 |kZ c5|wy7&jGq&<ɎyʛPgBYܡ ْU"lGz/;nA52%HR"-6;?V?Y]5R:wX4!di݂Vɱ!owf%Ԑj⣠L#g jd8(W~ziP˻q:QMn"fmW,@ Th |UxKr^eۙ*vSw`销SAJh3?p4-t&sz|`<1˽Ah~ `ngC( 5nM/"[ż o,nM!5 LyԼӍ$D5'#%T2iC5ETn *0X[B2V:܎c"4_F1ֈΜ:i;!!~xӍC!,$z.eFI^a6EU$ 5F²HdO5Wn$wX"؂u.neʀjRjpz[c&~:ŬT9ф!FR\>Z9D'ӠfBLGl7sn)Էp#Ϯ! xӲ1Q:rj0haD] vJ+PR۸` <ƶ"^ؔk 4>3`9WS;7EHJ^")W xǨzd6r |#>냡+pTx@boE;dDx,@N(k``-;kO\+1"zށ$wÛj`?ez﹕e4Bٷ jh9Iҏw&;[dT k;Ǡh9BPIb}@qevB4+`VMЊPQQ.S^fVfOhxnT IlDW"Yĸ`Y"ƻ\[#f>h?1p7^=)lH|;00j`JG>mh:Xx+MC)=cI>fE&esnԏ`5|,Jig1&Fqݑ]$dT MjvÓEV3TKc=\RhrF縞y`mCƯ}Ց*ǵX׸HKwEuBGڔ%'k.M|%`(Ak0anq`!-k r8XL+U /ɝ?cb>'5klU,(]c0\.jZ7RVz~yՇ W_bSqFJkQ8eNK,Ԕhm  G:١Mrkm&yٜ{03Jj ,ƲH)^*ғ3>>75h֜f+_`Ecλ9 X''c*PYxoĻBpnDW k T^uN#!v_w'߹O}wEFftӰj-6S3D㫥#E!Q="/^o /pD2h,Eӹ:nlL>A3FRqHaka+ tpx+a)<,!5 >SQ7"Uh|ʅ 4+ƂR"9 ;ABod5@u*IN!&X;DFlΪ5vsRq5wU{`#ڨ !XXAϾ3^f8*\B*[h\{|(n.B~|cJ\Q=t~}7?OrxSj%>']ci' ʔ,EhK3 řiPq}jUSU5llU v3_~u@MBhTlte~XGPk,hL\tjtѹUUcgç3}e3`p6 #g OҪ'wˆX3f 3wJ+@PSxfO˩b4e5yb^˖Hc]={ؗ "{ ;Y`Cq1;wXdԴID"N*iEpo? 4U;@)ڍ Ν$\Gv ׽ $.٪, 0,r^VXTIXfU`Vfg(m&]{?bC/|VA”jp3y%O=ocH2~<nXW p EO_i]f!B͐"FB}A$"X]6Gw;pzG}GP&-!|gROH >QiV:  ׋,`ƮR ~D,St 8Dؾ,TBUi$e:LᥜdsfnGN,8([}r= FTՁ0 „zZciUcH÷lS+o:_]W5c$7Fڈ5IO2XZ]gT!Y׷UVwYrbLm6JڍlKNv}LH E¨A,@7 a*=M1ֶ2P8$-U}m7PˇUcaDdfȠi'/enc,ԥWVDU+q` `+0XUoܥ"%9ƵN Sǯ!7xݿFSa^ Z*ČeNFLpݙ";Wec|DLf,<4ug%FA<>RfI aN'=".˳ni*զ"ҰCT(2%[Ë6ak# 8R/*+g0=bjȑ6fX?K9T r揩ο5//`Q~D8 5N~߅+0X#RO{"mfn=K1 zu.\g: QT3~0 IYK1L4 -<66#0x]7|+Q#ͲG3bW`Q4X7,6U:xe 1BOpxϭw|Ћ6Z5 QjSUvv Aay];y&.\*=+e9 V]>JTܻ+z6Y ,hZl{7Ch;ɍakO& $!&=5.XUZNRUJPn\ӂD,t!`?I/1vΊx /\ь虅fǀ.BPy+D8gD} o![橬izqpi? 33#5]+"SٺՕ6؍RzD[iN'u}l $wGIm`X? H Tw?۝y ڛ8,[5bbr84E=YtE5A2Ec)iy#H,0X:=‹DU9a1y#wDRPbgm b6D^"s b^vľq< 8e, X~pXß  t oDL`un81 ޻F__B#/lk3H: $r7KZ)u5#vW4 +J| 4^1 #pE߾) Kl{(4|7jrq$hF+'dյ$l,q !|;Ң%a~ѻr,*sٟ,tEEu&!Uy{"ZfG:紕:>,U&+ζGn \3 E萅ވ-4X,$c`/ՓW_K33录*&Xٴ*LP^VծNwENJF=:eH&H=aGӀ(ѭV~c]z3^k1aAi2\PU[,,2`$Qs{%+)եZbjL(L; {cpwwrlivגȝW,+BSBtGO_ ;?߭֙Rx_S}oO$_%/D(m%|+d#,ߑùPfږytԥcB>w[J]AD]ABz+Ab!јͩO^ÞȂXȰpzLjP6Ћʕ>gRB\ױ %:PtB&.|N,Fk[}g++c0 * OF&#.{g":Z}w[}'>"icǙD'J(+UR&Վ4hԗLהgٔȠrg{n $O"Vhg5Mb):dDž Q+Scu2!;mB;V~PAD9c[V&VMIyV"+Y݆qN3:kFBtw|u# NuHH2r`'Ԥq Й@żU.4`5&/U1;U9X`pz1 Dduʌ!)Vٷ:@#*m# )edfN>]D-޿KC»3Z( [l7kmF,BI4լ@\9JQTVn:}WXE^bJ2R̮St11"C؅Q"܂!fɃ* 'Rz[“zrv5.-* 6< 4,nY|7zv&>'m:W 1to'9Ƃ96fh:f]ҵ-ݒ6.B@VAv߮+އb=GK<0,G~Ld0,S" ֻyӟ'W)Сj-tp;TŐF Y/iʠOwb^Vx-XΧX2`G^g/,Ӑ.,Rauw]O~Xc~̚1FJqӦ~mQ*J,9tV)V#t%I{`5kQM4j.tA>!X!2m9,1/=;:{UJf"-xݲjjV)a-w%"<^M63B֝%\k.}Yg*XEqK`?+hB@CYE+IWɆT|X,^{ɸ+hv ɪm)֮C?6l; ڭj!21c5E6g8^:om RDy<BϔCr듧 *k:嘒)|Xe(OVu^aIpbe ;2FXqگcAJ;x=!m+)6,% -ǯJ5WЬdv7ix { wȰ0"LI36swjdgLc[!Ŏܵ23'<ס};K7%zCՇGAYA`-Eb舫t@Ӽb+,g3ZBF|O<*Y[&s$N_Je&][zՍSU:V#6t6.jk+DkVIҔ @B+ ) ppn32}8@J6ipլ{" jiGɢuJ X]ހ1ښ:ĸpWV |q>=aBf^&zD=mLtt ܡ U9ۑJcoCb對B(,(" (4ğM R)@W+4*-sP(w1TM m6jPc CjH94^Baګrcv Uh=O YbC{m0gfč+țƶ د{;\ٝeVWžNKQ8Wv/mҦ#dːkV&y+["ZJ3J9*2G+ 'GtF:H| d|פFb5X?H  htV%EmL`9)!cDkV9{ `?WE;)"spcYS8m=r6{=Ga-J3X#[_fm۠ s@0 }`EvyW_,TRw r=vi}M@n$N02Ȥs]$eZTSEnR/)XSBSP[$u!&WUq9W `e+vZ6uJ|̬6W*6z1IHse8\Ә2a77v9#0xƗ59Q$VX<y'>/ NPP2 ?ԧ>?&G:OWtU"{k]FIֻ;a:/N=G !]1(wx-g&'V` -b++dՆ;ct;U㕠y ~;XT}Αw2*-~ǚPpKAm3@T %l%2.Gy Þ>AAM%*D44)" V[3k`3rRm1ĉa XMJ$)q"tLR'vӜ JNVeRY2[N>lKg_M$U7Uf2i`a8R Uk-ϪZ*ccrVBv\ ]Y` 7r`,T@=wԻ7 ]{!f+*QIK TXe~L0:}֖Y)?UNgw_v ZCwIK "UfdaXS` u,*{D~,p^O%Oqn^ĂחP~!S1 7g?{douHCYO,t5JٔVz} @K UKU|C96#y0REC-{]9`$ŲQA|軪ۥyΩ@l+:Q1܂n H `%eƄ.DCd¡m:uF6r BW|,[{RE<`$b{ >OAuw.<#]4 )6OSk4R.bnh$cR!!NȂ-),e9 / &uir^ W1pn'πLCk~?#Foy Ua>+\[Ʒ.ѹGl8XN﮸H~I "wD+}S61T)id UkE'!nf:,qKe@#BuδY<|L6rD&y@#xg/V)"bf'(jynt(5GD\Φ$)24QңSZ*K9BiTR2ŭfўN총q'1LDN~8AJkvLJaXw~ m7#I>O`mG;cNA+{\q5Kx'׺= ?YZٽ;YFYL,JkG;̻uؑt =\n(z#[v++2pQL Ƌ/~Gnx5ן>ZR<b2>n`qȀjd mӶug_.kW),l/+.qft {eXu3p|V;'BU2P7*Xq6Ju]jqW B1"dQ]ˌh<}KG]|$ tE{Pj^Ts+bc,洈kfq =FX 9RTĐ d K)l>g+&M* .`]Kve]z%;Oaj{gy˨tv iwfs2AGkYkA cƂ^Cb n#aL)TB{&XBR/v\kPKpoɋ_sf/ <glE;t#? kh_XC!})wMcy;79B7*VI V.K(:PQd$k:*.B#5qinH& Os|z'ڷ,`_׿_E/zk^`EEVX?>xS!"| փې3 җ/["!N55.bN9^)IG} [[Nf) o_'F.R/:*lE N^QFǩʳ'r$vIW2B=n8g"cR\.kBV;Iwj+7ƐʡU ~N=_G<x(YHӎv0{K/0Xrz#ur-d4`c;RM5e^oY }i~)TzgIrjI@F@*117[@C k ْ[,!{ԷZ^W_~^  \ky<_ra>7t;`##]ל2X͌ѠHJ4`p6z!a9AE(6Ag#ڱuDN6m@5^1EV7`Kw\TUH=븱i!`jx2!̘u@Ǚx>V#-]o%*:.*L( )"S^y=7'˾ )JL3ӁY9~sV[Yvrv*dV/A̖yQ |F1֌ $ *}ٟ}U9X"x斑^]ѽ{E.ެۼح[\XptrW'UỹPNיZzUՕY5o%>WA\d~_Ӱ^7K.xW\_򾋮d?NoLPԱy" w`h%ɋtR' -#{nO+zħMS>X +XAJ 7Xv5[]9~),,LP`8'eg#[cĊ؃^ g\︷V]B+C:`q{GM9sf65|-BCfuIk<&S18,Մu=W| ڋ#JJ2e%j>̼ה'WCd2Oak4En3^ՐI]ik0 hvrJ(F6Bmn99X`FwS7_EuweoVJ Q-X鿟z H`"=gl+`*qoUXiY6V `Xosi !F/:NEDn?imÐM{J޹jd&,u\W|BJ<ϊic ?anjjִRmv< I^HjM޸NU>b|XK<EP["Vh&z8g ?*="]jFqymli! _?;Zb%7*X`)gPhw}A =σ -3oV$Z|uLPvBܸY MWB !PYpeh^}°GuɻbM ` _7vJZp`ֻ{/;Sd)ZBJfGZkz;Բ%ꝞH w\b,0E3|,!pQs3V Ƙ)fof:rg(]sIgV1U6'G[9f(=^NphJFh*ʾЊ`{;at " v<;LWn 9[UUB=b>:c!=.o 6=:J>[~0uTRcѱy\O-dhN&uᢽە.X.R*^7nՎ2nxSE+2GW`[XsJw jӰϧEʜ2XKӨ1>9/b`ӵA( `1n Qdo 蕭2Hf?=I)5!:t3I_Y Vc0[5Ʉ`XnA.c_:C -K2Fu< W8whh,X ~Dy=m6<űBA2=); <ԕδsĈ+bM#Z*{;̍|dUvCVt%Zv^Bj4',o= l?)*xޕ`76U)C5K| i@w@*Q@>5!|D)1jfxgUt:4#ЫΏA]uڙ <;vn]W9Vy *T>_q:z]}zͫ/}O?!#Zn#=WBt2n`eb#t޻_WCHCe4VƚG`e1 0CxC#':F Y̢:hobzڸr_XK SPD U`"cXZ{ :=$Cv nCBpcVeJxEXCNj١5Xy^ڽcHP+eϤ\|={gKoz˶:H._uы^ts2$s؏"V>v.򬱋3)c>0&zFqJȐFA.ZKqs`z[T-ٳ.ojUrQӪ9#Ĭ-@T"(lv z2 Fˊb8iD?ں Tv !oS3Sfd'X$LTs#X\RB7IZ& ]yW[}8*=% v5÷8T22Q[]* y@E{_v@)@~~t|ʑG>Xin /LXJkyOwQҨ<[CGSVu@B3Iy'go3)mn1`z˛Qy+^fȟ@;WzQ7\,OraF3kj1"ܕ=FP}׸g5YZɛxP9qW.("oM7sMϭa$ KKųsuP~(9+~XN*9ߒe91bDFMo5,T;*ڜ%sNp:8Ҿ,R4ǣih:$,oVa BLwmnY7>i]FfRtH1y<Y7um ]&jv8_Yuk9]$]#ꍇ _˝7ݒLuk~yȾf,}u*[(n AS^ʷ՗pH4ZC?R`> O)G%puMV%JnlNL,U_H@X+⍑|'׽5X;R3=5UZ+.I‘? #~xſqU?#?U9}xjUzzU $8%dAXUs1АXi#?ܪT!mn l֒)LD&8@bz `D)_VoW Z%!EJ7t4Wz#*o;5(r]2r+uƭ@cUdf%&8/8Z?0A'Acu"ېfh3(4 k kcVG&n248t_rlٮ[`(@dBR6Yaq睟C$2w!a !P(^zDϔVMzNBJZвy(AdJ:pE6zvPզQIctÈ9y'~ >J3OYsܽ1_Iy} ҃uJwܫݩ욧 8#[)Y3E?rKR(q2ņE_-zRCy$𰦶 y ־V!v>'w$M7J~0k,!Dh3` 0A-:i /x_ߠ? ]m3;#U)%f`j~0+kwuHZ*T ae2`d}E! ,3y$|7䦘=#qUk\%^y7 X5cIn3pVFͰJm۴la%'u">j+Z{JZDuC諾(s*ʰod\hlюՂfo CsKr>}ae'ܾ A>UB~"{Ȋ ԍCzpsHe"=ZRDEZT.TQZ-QZ9GOdQi8%+DxW4 !0X-*]ja(׿}N/]VecCIA?=AZ3j/GIp4&6ol뢢i1UN42LuaaHt>~ =YYdUU\>Uky;<N$\B)ڃ6D<[Ai_ԕRLѱД= 46G1#nrf{ ^ 0pbGCuM"vMz#ѳ"6W\ԫ 5O3R3SNٽg1j~,wIȩƌ)aң!<"?b >' ݽn7Pxb)-t9+h3Y@+0X0];t :,9(=ቓUjC#!V/4Z2y\#45lltf#1%Q1h=#(:r{ Z`!\`|Z`ȞEXUf=S&xm]v,T;SXitG9$a'w "9$3ݗcua8]s?^hۏU|-RY e!ʢʹVvR ԏ{wLΫۺ?ke`s Ê( 1X2Zy'k'b(7eoұEy<f F_j뭉d"w@6 ݰ]n׷eFΩ5 +7JmvUz{rW5!Lt2A*N[Qa 0XrYg6U]yכrg;cO{Z &9rJAaƈ.aSúm`ՆM 5Ek= ƞ> C"0Dq"fjeP/CFN۰ͤ Ħ }:z?s!]H__T+Sw.h ,.eRY~vU+*+Z",. w1?QVh7G6f^u?K/} ˮ~%oKcw o~]akMbP`U+@l`=O a%fdcW;%:㸚WNJb@z-̷j⣅Fb訢eO[3n#sA1]!6;򫮺裏Spn kgkQ mrp `=e8閪K3QSja-F)5EK mN  5&LRJʉZ&_6{Kw eD)CPPP7n| Uo7&6s.9#gU ƚ!ta i1b1M%p;DÞ7rpf#JBUd}Sr*^a4f߰ "ts UzA/#?P`Ux["#3O" AYIc8jv'Ɖhr 5m;cmYb` fcHXF(}D&Zf%vh@P M;s+߂m#41]žS|fېfT^s`,H9D=DlfCYU3ښ#IS:/2pfLhllAZhp27C  4Aw [nxeYlH|𡛨5bs}&d%r"vBpCvm NXS{ xX~mݩLL|8Xdcܗ $K-¥,+ `%<Ɩ pgԔ%U!i&lJWuy-$V9KȠcK{廼TTVGǫU|JcI_YtTmDF `|-H@E  2X1㌽K?H}c,3ΫLOlH5R^ž9MiP9dLa4 7磌 B^u~68zN8.<{S'?T.NME~'><~[@WZ+xy$%'gږax|drH}2ncE5ne1VdzVRxp-\ZtGJL07+mT4#e@:.왝#2#ڿSԶ!-(bc~aInCPXO64 yZ1s%r7F@^jhD2FDsp4Ks:ə4SI05ݛЙ=* _ ̥aELhoy1J-nc,l; O|8sW)*OB"?c9$)nC:ënx[!H`vc-i#20frgmU_ը:b.!J< $[ufd%" `?4;D@ ꑒ^ Νj!(a,OdAHeK,($(ࢧ a^&iahѱK2=EUykZǞ82Za,8yEU*Vk/S ЕD*ƇS`A\F++:FƎ8*mlp1{93oF sIMGWȨa'rkWX\@j{krv %u赎)KuE+R~? &(VqyGقzG}؁*WUݺX*(+$Z)`7fD {/uK)8첰1)bRC-RĞiB*-x[mb$urrHii2)T^ry.4T r*}W +oW\!65İ gxu:p^eQ,[5%ǦȻ<†g`ppF?['w_`8<Z`T+38.'5`] Aᱬ@: " JaŒ#zLThb<΂h =$h&AU\g]t; b tjJҫ ԉvP}{NWOk˼T-JUzդvhMNV ynP(9֟ G }5BBQ2?F$$t+I# 1Ns31-?PF! !} -?'?ޏ-:&ݯiQ63ǏuzU`AKo)!FcFׄQ/& 1wɸ`V uryqjrw_2Bc|2jX|"uJ8 `qlP^r2^/C2E薋r. 蘭'fEU|FȐ2xrΦ% j괳.+,,:rz@w:wH3@"r -# ^:*i Esiw%:TQUWR%KNen:UMI4\k\`!çn0 L?Fluj* }C:^,,iB-@Ua[0?D{BXDkRw9E,-H9߫39Z=|hz(AS|k]_?] 0X !+E2RFrع&Ԥ,[/ME5? xh7&|_X񤖔4G>p .>찣mȸ<'zyW[}T<탫S2 z :wh; Ub2. ;6FCgs&m$ocRŒ^X4e-Bve ט}ֲ nvZ>{>[yI(Iժb*aI< ֺ>zʊ$VW6Ol1VӧK(g\I"~SdO2o*- y~'n7Kh h/xݕ.[`F!ۑG+LKaGM_"Dא'93o, h XK<!Y~ޞ ;y ,-**po\ vyCj9D{$ I+*c͑4-um` iZF~륚%Q tI<N'ĬLru1/A#>g̲AgooP15TW8UN]W v`>CE 'ElQ w*թřS&"Nk뮖̹ddt͹!8jF*L-W8,в^px=K |o:ݹe0AqKY֋^($t]i] y!{7ʫeFAZ\2R:qTza:9ØAM-UkSUGz3f`#5_/")8%~g_ҟEsum~F1%Zѓ%2>챑Wc@2µdPkb̩eggn<%oVlFeC CTiB" T{x /dx&WMZ- Z5 z~S+ҞnE@g1m#Rzʵ{D썈DQ4",꾱?/:QQn;f^kAfTԶ#f=S;ھ TJ-W:9/4SC[˙IXR})k+k"8ߵW"]S_a=iky,.YXS(|^{E ƷfJVOI 0_jA7˃VLf~m"LgtrQإe0z5iQ\Kl`EJ LꇩxnנVqLnFjCԷpܱUy;~]{|근W_wG kC,;n|HŤ)UѻzT8j,OFLRЉCV(4#0+ڸTjptcuz!eXcq(p9pXV+mkFFL5?ڳȌH_T"|#c(="=93%WPu/m{74sf0" 0XPU3?*t )DŽ`r-W7`g.Ԩe!6-# **iԞ54 ΠzչW?ygz-ԧ>̱C=q4Yy.]zݻ>I X-wi R,DwCi`~`KWg ff< :fEŭ-ݓc㞅1R;99I=c*eR0a ;}=%LǷcnC4fP| ̲6S retHzxmnļGRWx0w^*su)r沟|+ݒܛOUT=C9!We``bD@r]N;Dϟw0 X\,[ xR5chdv6,)>gҧo%z_7EH'K9x6O#4:W1Gݐk|ztf3%ye5O8h[ 55A .ujY5n]-UocY6i%0Y ~XXnT|DugXDm_Lc̳\z-DPnu׮֯ btp8S~>`50d z]X85L9O˰(JؽH-K弸s8;>CU 3Fhg:W%6FOzx`P׆AuDž&@mGqLQx~zXߩU'H&]@>쒖 hc|͑bN-ZuZ7 d+Y__,fyEth/ 7QaX@\^ g+?N4Mg.T| xy6v|k&Nb Uj%T8N- zf&mCzxNC!,h+oʦA7İ|A8TmkP,j_^Fpn(t];k1BShzbX޳ Tq.Ih 3),UEX*Y tTˮV,Zpڨ>@N*NTtG$WBbgq%$Vxp135y`,ݹS#0BI,R^4*9enIy|}?Wf8!%kF:YrnEYIjGSGSOYR߶Hk:R-d"I](XI,CHtbX34K^H2jsMV~ k _Ʒ_sm!?q(b cɫ?! {` 8EL3TտEX-QE25#] S N +SSZPV59[:A1Gxx^a]Xd Y\{AB;/~O_A*'_|xJ! }~}1͒(2OTұ? ~?Jޓa4!L +7o:dYgl@h04 3sȰ誰zU*6+-P Yթ_߶+/IЅ`>.Ci:dM Jl׫"w,`P#BAw?h`.7\op5  *w3pa*!&XxO_2Lt5["˂VUI%j/~ ql3$6=VftOh P4X&AU\| 8MO^Ωa#C?euVG̴uŌ LI{:$ފ]FHP;/@77G tQcm3܁!Y=e-q<eCIX5bJtyf (!ujͪeN3 ](̕6 X0G",:r&٬NlX5HсM7b9&&5i[`i9 5TLhn_K My~V?;&d3=l1h˒ lCyyB}Ӟ _qǝ -B 7ܰXZM=:& Fgb.Li{w~t"C@:4ZT[Nv|{ 8 cw+K̠dX= cfH*x_wq}i_)yL^}&dw0 b=--rcJ%ϚocT`yZ[#TTJR#ƚZ-j}fHvKvóյeXA^so?g>U'd^-B.gTê?`GJ">ۈqFuAҴ(NU$f,m- RUV0c1DW%S"hk$6=zC\gk:hŤqp`@mѴ}Wsm&=1*g\-,%꼩Ld8wөh&HYi_d:-*a.Y29[F\V2`κ$MTj& :/لiu3H=ھX4oy~*kzj=8G^+L),[!.jFlnwCoUؖLA2}/h4م_}X5e{l:*tT860ߩ!h3x[u#)o'iR@'HW Y+x!x,\kQ9* xP?ه vƭѨEVP8lH "}P60Ex]{!*fm¸BPp(*{{W/G١cI+9 <5ypIJc.Tŵܽp@C'LeMVz%J=8,K :B[3oe= } *5ν[VW#Ji~WK3]jCR-i˶nO+Զ:E;ɀpZ~Lg{e_+"F5c' _o3x59 -HRf5),6QG[\ʲѕָ _ 6|i'X'0ڏF7r?lw1`SExO*y[/ncS 6k_?qߗ`uF; +-z1 *$WeE-T,@㉅AL7K2;Ld$HXIR C9Z:a.K\'IkMF̓]@ ߸#́Y8hUQ( ^]5rd٣kJ2ONNfjnfzҴ 7c?~VjI8;O?+X`>Cz(P52rmRG>|;_r\|:5>8ͫLE#ϐbg'#w OpDFe~ +Yڌ:6g>g/*]3U>5W=g4zS'=yN7kFOhEuΚO=o@? ,Zfsx}8F g뷿`osǧgk( Խ䕣I~HfN"sJ bɕ Z@Wgp5I3S 縸!2{)Q E*K6oTj^ иkr8?VStBCWe$aR28u[D5S%NqݲMEwykYg ~ x?찣<)O;=ޡǟFJ4;a(¼Atcxt !'luvPHr,wqk_2M酁f*D׀k[T5yvc5#иV}tEhKe*#Юk`IhcOzOU>:en;&Qu{@@) <"o_k'wbB29G} |5rlj$Vr2}Wkd"כW[1EP35C,Q\b~4x˓uSwmY)Pe\gSfy1gUq(R[jeQ]R$bVU%.h+;7E~peAċivNch|R.߈K?v`WeFf)!QJ&`,g(\:ϱk͓CBƭpo&Ÿ*,Gbo,:fi?-xA N}Ȟb6 2!F=cw99&!tkMa{I%GA3S@)v>/;mp^n4,T[v5Vİ&*t :هMw '=)|TכEYu"\[. /ƖO|]`E 7=ٛ(f; 1mrvB'e,rFR6!Y "ZWǁ!L/l_+N |?ǥtdt V .նNt Kuƒw'rxUlMzcg헼6~;!WWn-%"9*u!pQ`>S >} xA"y,Rt;`AEɏ | {^bo &6u",%m+ @YFYT+> A;', Ɛ9KRvc @T*BOpNIU"lFX6t ?iK%֏$)=cJ E32>SU%7xjY[}"g*N0Ί(WJ>@ x w/.Kb8XnNE)B,L'%חJ۲'mX1@,4ydM"7 X`Aq%đDwo7\Bu^8.ϦP1:t@2 0"ug(d00M0 w[.O}Ӟ)EEzKi_Wet egyOƑ"vbX]ųd t& & U UV`*zD9cpc ;|mTEVU?5RE?QYcG#? p&NOy\ ' *hFUW47y U 6 x;ZyxԠ"1aR!QhkyQQ`!.6Z)֪ɘWIE;Vǫ ’O~XRQ:L;<MS]<6kZK6pb\):n |`)ӊ{6XP%pXu+c d?Kuۯz,.`3PXb,X* o +IgAٯM:{z6O;O=߉*b/a5F kt`'A$Ym$(Vq6mbMеt^b,:04goC]ѕI-kn+b:$yiφ 9U #;`Gn4Cj1^N ւZw ?-0VsevLYi ۏUtKfW*dx"Q _OzVFmHOu#̈!\ aBKuءGA 47~vj[@~”b/bg5le3pi09Hcg("d8WT&S)Ht ʆP&YxsgYIPծz `#f.*E-1f7vGg?5`Z i87ףa>?i^K[V2־6⟑IcEhUl5YW-t7{]` XbQ/GrWphUd7jB<4[ ݱemKy$N$əABϱ, 3k&C{tHIhʹ%gyQSȉv©6Eku1cD9+$|;w̩[g =П*!v,˷ZY^?9a%C7GVm/qcg6iH47#t)OM o:使2,K%,J76>IFvI.Y#y⑻;9Am6y^DI WpS*Jn]XzB`ik\f*ɁU?YaAbq l="%!+ԶABL-PJP9=Ý(DZ"Pbk1rHI3G+<XU R4b8h=7&qZ@t%oF_16K7R,eHǎÐz'1]GrFv#gzѨ53'ltLXg_0^  gH m?Ľ:-:IXaS9Ka(^  {`V2>v< \gj!#X r(T`85aV&ƪdGeͥD?G愦M.U$Lr Y23E^ O{3ɪz`w2wEAap礓Na Ccl/,`0Q DQ38mdxMZ2Qbo,paPR1DAU'v yf=" $CWÎKbف a=7޹ vh96ìpKb@͑X:w[˘&z)~X*i@X-,S+;巾0V`J3c%˄$%S<.ud; f h!1yWf` z|ˆp`G;6:"HVp$vaH+1G0#w4F۳◈?:A~Jsw MBan661!VlEIP^XYaa;G ָn|U nS_/C\Xũ[, jZ?³qF08/R]HI"!)Vs<ѕaU2іÎ0C]%m<{Ah *W_UL5q,kj=Dt߫+rOlc.\Enh7G K3X+7 Є5Lv0Og> ڞ&!*?"Þ<|Hoa؏.ZJ>8[7P;jhUV;X@RkcZp _詟CQMa Z:k'}\ /Z+in`pXonwgjlU/~k"Wh~iCؐXVba9"l,gxrS*!V颩y͗â3m:%8e]n5 cb}'MSg z,9N;t=~ ,sZU+U0!?A,%RɞcUTCsex6iq&G1󐶦>U#-SSVȅG=؉`G} ZhA;YO&>Tn/xX"ua)k!,VRH8(H-Ϫ0i\ޚA,ZŎnʓ*$!AMCQGfd- ;nv0 8kkj[Z>4__gKVbf^2Pʯ|R!꾟ێƩX jNQM{ȰAPhMVU׫>]#B>SxáĘȣc"0uf}UY)XO1CdpR5mvagui57X15cuu ]J,hyq߇M5b>aMJ b^ڽ݄{v1Y*0k0 d]zC;E6%ùöJ' V ,uTΤ7w9&&b&4)4 z*YaQQ(UT9DV`LV*sS)ʶ} VTu^ od=L}Cp?ןH20X}'_s`PxW2)d?p".V=`eF?51@R\Wv 'ҙ\ҟmt=HJ,\.IY*e} b:U5[ won\u\DFRY&*a&PYU?!0$!<jsI/z+\HdCAPDvw$\.0e^xzۇo+6Q[6{6+͕r6?1S)BQrUo)|Z-jy,v͠ZTRpɴiwFԯ*\BMwe4oN0dQ|cMh`c; Y<X>LS wdhgPt [].fw4azd{^#蚦 =h+m)ʲ96pnH»p.0D倂))I_`DhE+B)tҷQKu ٜAs~`q-^H&2MnM7Z8]RWmڤX4v(so3F(fmr$x# ;VQwP,M6W٬|Da){,e{c/ S8EcB X8ʌ5A=\ʎ:ؠ.(qLtc^WM&6ŏ+TՊx`}· ~UHݸig@W`M ] E]BǬh¬uѹXqZWqD{w"?8 ;P v` | ⅀lP+nPMO9ijY"kM;[Rv ?Ͽf _M/"U5R(Xp!>RLCqve=Z P_>.0<.Kmȱ,uB̢C[ku{wZ^ %^y($_5m:\a{qV~Cdw~(l8S6- Z'`n옹gut6 uMnsPPR4>a >qw)3j=.`r9 V.at:d\ GhZp4 ?ӦWSAȔ6x{ bq^t%zח>q?b }k\s]wvzxp[0g2X`MĆ䏦KX74B$J<5-," |0;v?2E}t lIbv=+qN;*s n!*&ط4MY9FX֐a+l آ ʏt:+a&X\| ,{+$'Ϳj^lmӑ$Oe$0?Y@;cY6ZjWivIJJ8>8Ls2! vtNUT-_pNUxQEw ,&C`4 Q9n{ip0/)rfg ):s +$ANZ xQņl55@5G y)CrZXF{e.<_A2'iS͒}LOCq6n=m~U IIAP(ACSHe5 5%.Ry[tDkhj  }:AFFP+xQ2}אa}Z u;#~ke7PRwڻ hXѨX<Ӥ,fcauN+&;ĠV V"S97 tVY)mMzMO2@4[Μ"\Q p0ZjwI˛YMTSlK~ :>MbQ0={%IQv d~ JNXNjsX!4B䚹SUdLN!AoyXW믻 :z`AO!Q B@Wzg1:L[LHXNsp >Fd:i I5cH':Z&y ִ2d"ĵӘ7jFڽ`?UݺvWu]~ח'h6hb \`Oٯ#!Im=1H ÉT 607WS+2t]-/GY+tR2A|l.+AU93 [*uM5,b{U3|J3Mc,ý ˂% JPYq;f>y"j|l4yIiKDW==:mm.**P]u՛o?5Gt1~Dkp.c?%a4dJ,r髬.!)7՜JDqi,cq&պ" ?bMŦYÚpӠx398$ZW{_fֺ7X%%` ̜?MOwh2g4Z,?Yu&Dk[(1<oNJ/|[Ƕc܃5"ѝT9x1:G'$!mMCF+dQ~nN`__ǬT=n e(XeS؊F|Ɔ҄Y6#;5MW͑"T2j_q7)^v̵S@l{?jѡu+ou-#{jarGg4d1X=/%4mJTi)`+nt 3XIMp 50Jڕ')XSc3X#`kw+Uu}j'^ cI,B`apy)=|m ur% Kpfbi.>H@I"OgYIiY"9j+hQaң"ЪWFfNAY}\T@20}U蚡"*MJURa D߂a1s!u. d (Q#mvy]$BWLy"렣;`ys!{B@  0XzܵU?˰)тkJ)x&j}FmR|1Geg0.< &O53a6>~au9fUxKO8,7 "7N&baC|z{?W^qTyNE{RC^YQЕ0e{;)wbKV3W:U]wC9e1$*X!u롞Un`_Fzkr.҅ϥRblLclib{OxR /gDXM  9l om@+3Xyk&[}mܓg!8*-x):]`zP-B] MG_kJ%Vv " Ǒ>XpS9OŽ<@aTZX7r~WYQ'w| \􉐇vp;Q>]¼ 15%rmEO o-j$TyLu_q`,wcxTfշ|n''"=:{Qlʐª_74ۑv//\L*kCEk V-7?E{x"\i 4n;:>grӭ9ӞҴ,Ȉ'z-2T݌WTVA>Aj: -uOV4XS.EuH /_&'h+-C=j`1ez+_Z`I{ݞ_}pω'V]ZN įC^z>0a,UT\){l/Nsn9L00oAal;FEJ͵vI wC ]1`%lg2ƲScQ HX|ETH1B13p.<ǁ91YBte Z+?ܺ b-%Zשg>P|`s,`!6тtу"®Ejw) JA\H'9Q¥(JsV3-ؤFXp)fxU&؂YF|&_[&AUYw'io$#E,b%,``M BOڰgVק7?h!pw Y!Ef:brOJ; iDl\zX%ސEȠA~x갯adfV1t4lD 'tFOnr:E]*H(c M,⸜8}7$g{A݅z}9R2,O1S3 q*![nVlB,V @u6 p)D|X! VX=ZVJAhaV &ղA_񝵩_U{nUPM,Fa\VrWg!GJ]+TG WI*Kf`?ٻw{E@ulGg@W &/6HCStdKuq4sF&[\<*h:1Xʲ#m,T_&RIzDRM^(B?"qǯA6 # cE q DS)?&4f 7,v4\jDvI3#`fj]6ޔ"AX a_<L,]ŞP6B|j5XXO:^s 6XfA4K 5Ga}xg [.JCP r5;=J+rgf+T9$LBOK3al95Js.*e ֹ{\C8?/e)=:AWnMhP5{wnV8$3N]rSm𙣨V"تEm 'd# V^!fp\;'!ѢF6H"ENCN2IJ0Q*l Pca!S.\ OmҞUj9K(Ռ[ܦDbвTQ ëk-kEOkҦ a,}^y-†DPZ٦ =>e,6wص ksD^pՏ~sh'td ~|@-H9H >5"mz`|-5ޖS$ʘD&4I6́i^e?EQ_Y k2ٷX)P ֮52# nrV, T*Aih )4A~W,wd4ݧM(C+FIEl8 dCj_\ \*uhiqFWEhX{sE1`S̈́iS!;Ǭh4r@6_ Ϣr ;Kan TأXF*mw񺁮EĚY1&И[uQ=jS95ㄦzȘ%2xKv wzQk4 -BX`UwHUXmTW@7|CK=Q_V?[Vpj\wl}!P<*˘ne"ndsK_FcGq\!Xg)vؖV]Zmt oC6ú脹ar.Й;D3/iZ-'wstfֽ"'5֨n,b1Νɧ_.t+OXRw VN;}$"x>^{E] 8RXch`&0|;kgpfZ80ΕmhBLy22D-KȊgUIy|[ٱyFF2GrZv0󝬝Y+c:{ Q9FIP^7KXNǞ JZַ[?z>Z0rL(N@lvsP+L=H8^ 34y7(9ц녅jRYѠa/[234($mSD-Q2E6!`&Ffh"29L!0cyչ?8Q i)"A:7~s9ޙFeI[FY1(2d1-/"1\wKUb js/5L7FJ*s]:O3')5ԛV@O1.}N r7VšB  uO744vʀ,8O2Eji `y"X0Dj髍T/G=%5D ː̜uHZ$zZ7hi+@+z䑟} ,TrB2769Rwz1OQH\ 2.ܡKDtʒeI%ƚ>Z-6E5W8~馢BsLEaXsK<)qM*m%tB Mqʪ{KV}] `^< `Mzcܟ.4Ƃ^$Z@ 4X`V]VUE)JvtP%xR/eJ^7,_ ;Hr"3'BVe59}3 'Uuu{sW]{:զ?@ * |~QXpb.PnP㭙nǟc]eFݖ[CmLN`KIjZED,XAWJT×igYܲȚU PLhxF!S_ -vHaNP>yXΩ) a;Lz/7'$?춑<8 󍽾ld8-\׿("JOXÑ%cu1VA-L5f -h6 0H `MeL6Do6XpPiXy 9^JmX:c:U-e|Kf:VZP0T 'q1"$M*)[hJ^DzfPA82 :wp[=ӑjBQgIFJ1l7ApWnsFȲi):HT+zY3`úpɜf+Ѝ'w-.I$+߯3StY^qK;vhO~P%Tfp-YY걃ZZNyBk V[, 7m5f:0eXiV_[8Ft #< qq3w!*m7suw~kQ4"Y8BJ481%˛L]BtoP14f0 Y]*|U$T-4cQ9+ X*eKajo?~0zvos m Zz"A27@STypUmA/'F{UV0'~){GpOa%U+DQz#PNPH*~Lh` dkw`񢠷H6 h[PT.Hw6y*R >Ѝ BX$sA牅MWRG{e-K7'?`%Hf0MO~K\oډV#a[JEEN{";5-BBdvHhՕik~]y9QTh抯Vg|JK]² nϵM Pu1YF$(FVwD!~jucw:<9s|px9%Eye>y%s)m}#ж'$Tn] {XͻK%np0⿀rEmb-J5j<#ȒXsW7a{tu"2epd:`[_Mj T;YJ&/*-W-tkAvQ[AI">_ԛSC'I7,gԹƃC"7GkTqhVīXx# ݚ5s|% mo )*ow)Er γ}_|,`^alѦ2  h -Cr8UXC$!Zz|/Ŵz $ٲi6 :s!C\5>4"|Sxvgs5MͺdnZpc6NTuFX 9(8$-XDVjzs nT88T ye5O& 12ڈVlDAڸk&5QT^jy2Xd)? eA =1QM\&bsfMYU-ʹ6C+G"Wjt+r/.VZIMDY;c+<)L@_(TݺhNh=Pv_PnTbu]өt*!qKM#֞)l7A*dg)5quD$ ũyX)Pխ[`ݲX%:[J}o @fc#-ވM"ToY$;A=ɍW#A<c,)j=}bbukDG[*ԢrP.ʝi1 J+5sRƩۙ8f Ң("aN+Z -‰{RвUT4v RȞqkD")X`dTu]Z[t NZ>ظÚMOY`MR3›u6ˑ3RUpx=sEh(窭rp(NH)vvH`۱ 9tfT5X v(kzzϡXO NxFE`X6',ᳪ7\<)5 C[m䕽맵?]62b9ڋcйeΡ,@Ha>ݦ{BOJA.ž7Ky;'6kM_/=.y)iQ"q\,UK'ΗK2@9KRj/кcs= ,]eYCK8AD5 PU "h u 'Y VsoA=KQS@\Jј+($`,-CQ l#3M F^XMNXa?H8ed$VMUO{3a˝xVTvV&̊cb0k4EXhA XmT[%z#8`aK8_ȴ-ar1 1v3HbEoUA;m0yDFѨ " *(8EјL&t$t b8d쯯Vծ={s빪N:Uug}^KEd#aNJ,x]R+]͉`Wۻ DOkzVۙ\09(j-2O(iӭm;ik%b2;o15 "7.&I X: : *'B àd@WRq1Vwώa+Ydb<,aiQA"h!uջnB}@'.ދFwoD]D2LŌE*֋B7vjvs;1,Vܨ ’CU 'EAl`D4=B2UÏcx:FREfdO0Evi ?mxLxЪ좣JYTԫ r` t_;ϴڮX=j%F.&T'evd7JdH*A`i£Le): E`!eC"rn0R5KC=׭ LjQXyC-g*-Z.6-qZF<$![m 0JAi9Qձ{TZ_8X=싐N_8g 2R@Wc8#g{+9$2Vg*XSctpz:Bg_ Q{4mbfln# )^Յ8қ*$"A8eQ^B=d`e񃲗c=fS–ݾ}Z0XFfДIN{%3V餶~j .s. V 0FLta/DIHIfIbzJ F}ξҋ@B526Ӿ2EA#쮃XM%l*>{"T&-ִIFP%[XRIN&}7ڗ"&w_ MBh0nѐf8I|mQ*^F᫅W-Ѳ E[Kɑ kxi2pUe<0") NERA+՝ʴqbB"%uhdY,VѬ]YW;UV&?Ī oka7z i&jc͹Pܶo]?U,aMy2)R˹S$cB`VZlj;jtֈRrY'XݎRlW ҁ:bkxBEUp$*` Z_t \ʺBxxs(nӲP_а+.- Y᧎`֫GWTc&2T\ɱAGFB + $ ̉u)Z1-%%j8wW4,zdbO`E'əNsptpjX& )B}/qk&:$#Rh@aݶKU9N(3VE(͈&iFRS[r7 ;(f&&Ն2صq)a Wq{Kk;ujUoBxb7r:G5Nؤ sP"ۯe nHḩ5WeE,*+%Բ־4+-[T)|-4:2Z!. o_ ⳱[ VVpADFݐsn]qKtއ#FJ%#XIH*KXZ">V;7hKj))=ôB{E eof?i5Ѱxi:} ,}?QoM`_/$7LvgG"Xhu0o:6 ф'(Lt z ݻ up`Btb<ߩֆo`yEIgg܂hǷu,-[vXr(Uy˟,Iu3 tAr I c7sSUcDGx/Ķ&t'1C/ dc 'g\0gPbPnk=@bhV&5m4i֕CͦtefÂls:㝀n3/5(Xs؎c D!M*qݙ(r.IIc\J8 yr<#Zpm38X]M FTIAC9"9u0{Z{F+ Z+'ߖUB70!3p *eF2)"d0w1)JJnoJtt~"jPY |' zYO* KUkTʈ5hΣLlL`vB*٠Ti_Jb?[eU+ȸV"X ԱX)RpT>pMTɻu8U$Jr222'N$kLn&KȋYF7syOi M*i9uw%`r9XBkc]ȪD{EQ֯%}+:M0eyF[X,aFTK"lOܵEQ;][kBEJW=ljH:W UU%E$.k"XV\8@{5G>tа|(S=)[`\{T*s!]S0Mi%[5bF PzA,FzHE#(x5Cƪg~1[tu 2rԙLRRг(WkS%BƠ*Oji4'{R/>>/b ڄ|<*\/2T[5s#XM_\WfYV l5 W=egubq]w}33dgoӟ-O^Js^EIx98֚.:Ŵ,ΛYj&>O `9la:v;4wfcf_s`͞7Bjv9oi Ib>I#XIky&1cO\ݽhk:%W2.<>z* .ĜtXj=5eJ=UFy^ 4knciK=TTe"ָ {+bdIv˖uxgYޛ]2yDi OHtR.N  FvXTkQ tEz `uO"QXVjb f/N^9Dwiw\&b#<)Nz+N'ZLр5LTtZ+oFCl#5hcVe T1`FVԅ րSGfy Њ'qQ!աjFc61Bl{r謽LE鸜(\AOHFP%u$k4/sK5 hY)O&"X`OyPHR*Ea `QwFu:ZVP/FGtqI(4y:[0kls&M<*pէ+\B.Ci VPQ`U~lEbCN hzU~ ĽZyZxJ^%r GfLyiLd3+Z`9X%!%u%,ZQ@yv Хq5ܶQBzWuέןXtu_MT _q8/wbXXb81MGx uK=U ]ecmU8֬uY~~ݠhuF"`4FTTUf>QH޷e w4%jVZCtӍUcyhs{rՕYd$zBe!M o8J nD`4:Xw/Jx rh$L鍏DeC(KG\uƍ4dh,Kd+{BZV 8+,dH`M, ZZIklԊeՆu3.b95r?8*8O-r zmq?]t ~ "XvpV$5uG![L;vX,k% :ykK8eIW}6R1l=!wETõAwPlQ'[ ,gV:v9*%hɫINω&uk!EJ~>Jana+*EvLgWO\tǖt\jP! X2+f`dE섀;10r#K=IThk}9`8XNLVސZD%N{]~WC f zu;dMX  ({ԅ6?VvUcƤ\=$wfR݉s9Y@Kg&iVG<5*IM% iѫ '@_ ;Ǝ|3_z ;Xj]A`Vc97b <g>CD̍Q#⪮0lhR hTW҃FfzBZ,,W)? w-|VJ=b5D>+!*T$=WY$Pq_5j$R%kH%Nk!)dII}}KNk>\⹻]vgl$˲`Z9̓X*$ qN( xb 6#BxA*VMۦT;6C)|E#>R>y %Y4d2p1CR5HkLBm<7pvo-̚)J{0m" >Jal Jj.YvJrb6Wa&+Ӏx*'~:È]jIJkX*0`j`ނ3F8%;0iXwB"1VVP'j`e$w TIXUïɳCpdt>.10t0$jD鶟uCܖFAyvuj^ѩT?K+M`}_ăя>מBjX ] N(/VP E%H lQFPN؄VÛ?jͅaDQcU i"l3̍C(T"bmW!1T3PjbPE0[Lú0*lz >9(j&-I<[KF/AF Bޭ%Zi.<2Hȗ ?U y&VU~H䁀"O/bL[3 w"Ù Ƥ9%1J-.;\2&chuKj J v33Hee9 j'Mw<5S>+yn9XEPui5*36UG Ғ`~go /C 4XpWɈ(+~bib6bTQ\XY"` (t.~$`2eOZ(Pۚm B4,ƫڷH^+")yHt3=,?XXXz-bE*q'rV/jX=*Doe0OC#ZB\ʣɉoeCZ0ALfϰ#D`MRth7&B`^g5rݥ*& V rqKEڧ EYBuoo,$>9ں2l&+qEǰǁ LmUvij]`6lًXҮS;_g?wm7 YMXVXqd.(bR=,u8S5Z$] }*fn%`V&%c`2#YCr aNlɑ KS(HPj&3>ZE,5 Z*E$*N&VԀ-Q߿v,Ae*M(ΖѼкTOZYfS&A T-* QWۚ`7"ib~LLǮJJ&0AksyF\;sΤ)SM:X(!ts,ZmiB0d;ېeZ B1VwmL vuiQNP2UBPƇ `5*v}"2QgqU5}{?*MPN6jߘ8VM}!v@7m-WʑdwŃ-j2h;Rq,k>XJ;[[z՚ V9y@x6H6t@A#i)"Mp8pd2xϐh;8fHWl՟UG nT>]h696_$[b3T(u+4upDZ )Bai~*^UIl1Gz [:;=,>vU~!Fo|__+VF: 7]r`g@^QˊT=$oe/>K3%_Rͥ6rT1]#XޕeS)eT:ӕzY鹿)E@mT_W <,]-c~{>W ,J:YZD 9v7ikVU$+J 6'lR*pl@WVa!CTU<TѲeR_1_#Qת(V*2,U?- :ÜqnL[/d5R݇L5;21!)+t8ڟY3Y;+:"+(j'S=&E51AȇMUW_O̍ys1m4yDl9MqDK * CtMo9X?n= A *1Ae%FNN0FC,S;n]Dpq:=z ;rDHߨX{_ $<⒇5DuǜLߥmB5" ebB +ıM~ c<̐NxR6 =j:99)7 v`lX.#>*iŐAl]a3o?p'DP9pmt~(˨&I#X|©(ˍpUѪV[ ѪJ m::X9SI,HfiA6UZ7"@EHjb,uD-# YdoZ{**gy"`]zɵiWH B, `Өg>Q(h'`yaDb~h_-8dhӯ9w" >vӓp?+^ % ?8+`YA`=O=UH6-*~ewntvTwU{!+: կSصLl]uɲ!Tu'gkj+mX`MTvCYþjTMZbx˧?vMx=PrUl)Ex]t6JȩW|znʒWceY6=iXΰ& ֢r`oXHXS 8㨴$kNr 5m2ZA`sνA2BA[ә|ϵqfi횥ZDv 9B3Vh]XF#-k xqǝpox[wW ~~ ?xC(50 Hq,=@n;l^ c&+% DQ[]6|;*m7hVKUy`ͨ^Pr)@ 5uY:݆z@:z;jU3n25mKNbPRk#5`W?+`r`! _J%Vod]I]H957vCf 20o-ksZ U2L5Üe8OKFg? Ě4-)׌Fc:[% Qe\g zȈ bp,}6Ec5 Ԓ q(QXP߫n)y)ʙ%y#[\q˲ͳ]*LRtRsx/j+o  vj#_zct*GZx+.[ k6t'$"@ {^̺YHrc26f/xcEU0w\)VTMV$ P2ICį}??~7qmRQjDi.EeB2 e#=W]%4 [Av̪>T87˲A//ݒw}ǂaWڻʰi&rf~5 4-6>5#N:ʅkjDPm8qhQ+˽d K6ֶiX 7߰ `(UU\r(KXuPӚdJfm۔I|*ƾRz*%z4wfYJۏpES.2 0rʙ{[><h&3 z6>or_|1;i,Kحyń p䚮Z-rv( 9$(^J?Ye&,JEqNv(=B,x?鍠j.G`E ETڧD,kHW5:c=q݇>v ` ^MJ1v++je"fg[Ao;iȼ+1]Kr!.]]i+.gGpʆ$O8y66¼i41ί<ıBGP6ρ8܈j43ąs VVZ,^X:|]w{YɽCBe)GTZ ctr6t@n.ۦXƥP$ZWeVtES %k mJFXz?Mh ujZ?(8/>V#D8a$ldiO;5V]+XԟAUΰ1rmCw7(Z/ ¹pYPEDmŃ dˇhTz=QDҰ,9 <6724taCB9Q艀J] 3XeBǸh UFT2K u?sX>vjnKIyYs0WY]eyzA䝤7zȑKQ; 0͞)hTG?yt `3蝿ʝQg\rn$ s-jkY؟V3X;o#.Q,uSpǽE;Rh>8XP¡}꓿o]K8XEs3IvaN`{Ҝmt.KuK)LBf+T;. ڴ~6^06)Hլ;mBW\%-OC㷗IK:/HbTJjXGTũVdm'T˚AF{])%?"dC-8XpRǤr~f)-hvN+~ cWU~j^pO{+^?J>'ԛt}խfp=x͵هL&˼kS$+J>XDJ:.9pV Re``ms4f, 4 n;D!mRroU]Q?{n҅P7+6-ƛr?z_ D"LBNjBPƔeN^Ki&r|,1hpUR\fAs벁9ev4^>( 'T(6&X*tU g]{U] jOz1TPyȔ+ڮbC+2z4)"mnڕ.Vu5ųQzVjrs\`(Ym iv˲5H^xфqr'r7p:c~g]׿#-/ 2 aּ]t%*'Z5p|TFm1oC /b=H /pjUZ>|Қl$j1]a@VUKRe|}p TvwXn\[,QKkZ"?o7\{ҁW\zP["n̵fҊXq#c6S[/s!t5R*(϶pD ](Krpդ4wmAU6!VM9x"qwN3-ܦ X=ТO&v5rOpg>uRRRp~]n>{YNs; kzٳlIMџ5္w:rZ|ߥVH[# naqIܫflPiDwQt-љdUUhv.P'$d?+!T},,Dq%VP&ix~ւkb* eo^X]/V24z%s4U \ gPBL6BZp5Zk#dRiЗ8 ̣LhV!ܸ0f1h5- , CLԐhN[zP/dV \qʴO ~P,bXZnVyB|5~$Ge),O&F`)9Rk%չXASX6pXHw";; XSVe\;#oM/ŮB"G)Hڨ5ZetI]ڣ*C.Qet|ojU}X `ePef㨤Yw_ϭ| HG(&,l%Uo. M}- G'!r ˭'e.qǽxVn:[nk2)L6O|`GxCS')׍TƼ4ݲ걣&ET""=U2Tu~x?ŹK81{rVQPDH1ώ>PrOUhJc7~),W7N׉xljEXj3tHiAr7NW Q`PbjvS{hZO[: HWt"~lK4DZf&fqnUEat U,R7P6)i; yh[]1EJ\UDvZ۠Bȝ&92"jL[WtʐDU}US.^L!<2ܑ^$:[okFbPLh-ˇ"H,=oVɮY]BK(dCYj(SbcM,ƊD~`Ѳf^|`(<#{# ®F/)e d_. d(. zշvz ۣ`uڦ-ՊLސXቅ[ǐ&v8+kc .;Ch$H W"B!I N ۋ\QmBviJ1\;1Jg;Kh\E)܍[c Y"I:Z.4 PKVQXˠX]7 e3 #m&t*) ^4Z;>|5-;sү="v=+v}7:& ,9{`!3%,'kBAhts/k9k TZ'aKP__)=/\{<tC+}b`AXTm(nU/6Xp?B+q^ҳCbFF~.s*սZk4z?*D" ,_~gjjMuK)J*Zx|buY95.>Lu\!HkڃhϕX*0RFFJ  +C5B67\_\X\#Wa Vغ mG/PWD{="+ek ܄Ik^𤽳aS2ȮXtv=ޛ]%W߷X)*e :XrUXx j<>z EEs%5I+H5E`,O_(` m1vFO7\fsm ]qw!~ 't`S'߮Z*nuS(PZ;ZWvz4׿W_*<3 1Na/HX!a324wḳjR&p*I, i +.2߈&|p1p*eL7śܫkHKr-"ScN;9r. .oVH-1d@ O"t0;xqCE'X6|w=plȪ*oeng`Eq8Sر0[}Ai$=-neu1SXgHjM+!'ī{i>o;*u[[p̉ZG1>tifȘX"¾\S`%F%`/. .h!#/$6 όDhXg dVZԊg; kՒ΋K/F25*8u0HTfij,{6Z%],R|/XqTb +oV`9eJk i򱄢im)§NiFq^Z(S D-Cqkw-Z/BkBڑq$xZge3&8|.-v$SKip?CS|G>cGA|y%/e%j"L^Xc~y^ߕ~Z'UW [^wNLWv7:]i%O= ӱZl,^F..ޕ`?8ri^8x/ u':x:m9 z$q />CD+t']tt)Jo\ÏNwt[{4ݻN7trތ4Lp4s"r$n!|C}1CYW؂8T>9O&"D,p-ezr۷oQILK s2-,<=3!B3qX a<yN}ނ#8&NNOӞx/?ގC>sp(C۾ބ*vF-83`O|gN#Z:db鼥_ᔦ 44%쉷Ӟ >[R_Z._7>յZOuK8͑IsKO9s:=i]>~,z B&؎CvF'h~-|@rTՙJ[nM7>? Ԫ_ᇤs߈S3󏍸z᪥n:^┾,=]M>83ޒz~:.\8雤ޘgiH:?^MC>4`Oo;F6,?Mz{6ǥaIC) S7[Aiყiئz`/WӐS 0j=T3) 3R?! {O='B~=i-/EO^Sz-@Eg@9}Y) S N8w1yHj]{"XkO%1mvPeY/|~F-D0 @CDl][;`E+.]WތIA.=x[ ο/ν[K7‘wp;>8v%׾mGlǫxvnAlA;+r7d'_sWA )O>50ǹ}暏 y !V؂%A\{0\}{z;b;=#` 㦃k>7ni7;#`ci1ؿKfah@h-q8%lƫus%sH=K?p l1]ϻMo$Tzk=յ ] _[p|p9W?Wu=񠨿ԳK?J]Z(0H@1q'GK'^~l !ܿi@rRp3* 1`_<It }SA&|p [JpqoĕuIW?]  Cz/ވ%;[8`8N2^]xb)</?$8+wu;/8xOOY!Wq!^u%/,-F]$qP>vk?_/ ,5p2-i Nމ·+KyfEB[Z[)P#Vwe}Z_'ut Þhݤx 7«7o8ԍ7܏(~'CxzFv7\-w}q>iRG4m^]O~8&IO󔆳ou{qp49fy7 49OI-6_ ӄn1yesWJW m%uKvCI-uӞZOuVc:uoAA׽ .q89o~I' nڀ)^x5>Yz6(Uab?Ot$1W۷O+8QVn!&#H`҅(Zħs+>鲦 r+>pRhW= -.7ZVZ1^M]7ArO&Ƅo`IX &̔L:ltii,Vbxæn!bc:Ud雴blWnA鰸//L[ݛnk {;^: /ݟ?mWwv~D_u~;_ʳ8(@Rw/=" ӞNڦcOO/eX{A;UX, łaTXI Xd`H{X =nwG}_Ϗxw i'11^cpp {؂P؎;1 vHGƃoU U$L-hW0}ILGÃ{o_/7owO+^qW/\so`Sg{Oy+=>gן͇>ҷw^򦋮77l]'X8G01(V@WonŠ9l=YH✠"I4v\4tMuyīxM1_|3>?-5M'#:}7$7&,|t逩OKGq9': ;b짛@>mX{w'o?O^KGNo]>cUť^>E_+}7؞N^WzwW'R<~};豃7\n.knW} \ D+`uq}1vK?^ƒt|O wPx5 ۱|_qs#-x ԰g?;Gxh1}mw_rɻGu,V/}]aҺL_VDWkOu'ȯ{'WW;Mg7ut3Cа?E:Q錥 uz@3zNc:Nx_5<.{ wŴ1SJH_(=Nnёޛ~]zo<0*F4zty-ї^'} QhxnwvҫQ{};leW_o~ҫ2z{ /<I09VV$7%WCjr:\jfjVV]HJ kt2b1Fkܲ 4RmK-iRk8_u(Q釥.ꯂ|BLjc_gmxuЛ%[_Yz#*)jI!fѤ>Xo׳P{"ֳlHM8bZSK.h\n8vG'8i3T뿩ۮs=+ɸ;ATa1X] Bz."%1U0}b-V.V{6#ʚOum3KkxUq sWPuvi"E"ifr WaBY-\zn*b]NtxXpr𴝖誛rit ϭD*GW_r뵷 j0aBbnZ )R,4gZsl/k9.X|ȫCϝ<ײJB pY8ll{ -Z7 wKc pRBTTmRoڥgПmZ綯QI|1cM ңn"2 Pu->(揄T4$85"1̈fc~,=>J<<]=ԴU`m;@\Lԍ Sp2; βsG&dyεZy#VkbҦʈt2{ `m- o9U:uMkoۨW#b;730v\E_6N$MH% Z?,7\>5 [C &saа.ȥ~ oJ]+ eRڙ {xO07m#{Pئ I pvV\^/P(MbsV[J^q#nߘHcu&1@jUO9H' tZ3іۀ_hWC\mfnU ښ$5q(g 9R) ?{4Y]ySBԡXsc=T8)35Ѫ)Q";Zx>E+e_IZLuzĢ,&Cnlm2v2VuTq=&UdpL.z AjV#>vYg[66:2$!6ë@WI[,lc=hpӽp_Cxona5x]A]DTv_f*֤ 팷"h̛,V܍BeiR*g#'j#UTi%Ɩ$V=fXۆW.ޑzڦ虨ش?5 ]]>3rzV-Qd(TD}0ytYݪ[ Դ3(tL,}0|-EWj!ˆU'XŮwI1 덫5.ӰVwX_6ꑓJ9=0H!1щʣ7gG 4L[F,Cͻh-گ"UcgmCn^$̮7wyKUN ,L2/ӯ%r${G,a7m%$,2   Q c nd"c@LVlMTLkӅꐲH3MS|y@hX6맼؄%>:.Sh`^;Y4t91dwjBΎ.|EVQӰ&.K_SaT>k*^Vcv:bt7k5O16it%EfYsh<$!m;I|f0Vna)#Ozn]a]h5"^Dbf}ګٝ34(+%UҚ3 Ri#% ĘJ?&< ǝl|>idg_Dh;z[P5Thv]UQj^Ʊ\dV(ͅQ-V* hQ V2/&KU[LAW6L#QVOGzIPw9IK;cePѕtSNl5DrXnF'0XiHŸT3J𨮟wEPVx0 i2ՊW`9^!K]{dI._C83q`Vב y +UHfTjCyqѶ`~ssBWxFqTCc$*Cka+Fok%XvA"^ֽatS̶T(i FdYC%C6CQ>Ȍ.%2WsZ&2j~f;`P#f@.1-[JubٮQLlYu4%Xt'z1m2 3fzq58OQZ![,H̛teɈ< U]UGj(kqi]R^@*<5a1c EJԕ%fBHY Z ݒC\:q\#y@'؇`):GEQP*^gYo^r4b,X4׏aDQ"etu*~K.Uz(Pp/2Px1YJjJTGf &בDvyvmF6ˌI."f{Ѣu.()tbҸ$8hu`MYMqƧ0@=+ v]P[87Cj!dP$N aaV)|'ɤ `T|ȫ: #^OcQ5$*URuM0'T5D؀ʫk"߳_k-Խ|bt؈p̒ZFm3Pq+b ȩ'޺׷ױZupk4,4սJqI6Zt%W궖ƍ[mo D1X5﬽\Үߔq&ǀ"d2ảKyh5aIC,6˼PH $^xBQ.v%V\ ΢XPO͌#MД*S?R,^سjRpT;cxƇ6\Bڱ!]o*ә6JЫgtER+1BWUC+):EV*sQFhIVKMPXC36'ތ{2N΀u3t&0Zˣ͞g]S~61? Cfc@|iVbsѦIA=' S'dj4P`/Rq38kK&ƌ+*舱ѪTQ #1WWz,9h ע+ ljƽfnѬiaܴn9_ T Xo7*)p`ZdϗoPƽ̴" źӒa}hOn1 _xJ#IwV,&q "0Gg-rt@`e2ʲi| *U3 ~*y,K]c5}弼pPUpJLoDDEHǪ`M*k9Wђ< K*67:CX&Ur&^Fe!dP撰Uw1RQepۄiF0b >o-M j+o,Q!ܠ W-ҁ"Rqe9x Ja*X]=%C|6(0F]$"jdN#"L2`r%}MOV7L'W FB:,,{@ sLSÁtsTѩJ)Gtu`LGQ()5 #WYo(H$ dDY$Kϝ Jk :@; =zbf$ޤˠ0hj4sNƀj**ʌuVq|m]HT`Ֆ<4 74q]-DPh&l(TJsRjx2ZO(&gL6eV*kyMn7M.ju<-ãfͶ6Q"XDF:^Q^1V0kx-!Q։2y |lڸ$9$iMyK {Que<=ZETieЊ[T6^Wwv&c; M} a@t^`e%ς>hfZǨQH}aLf"Wp)rحUgf%4aS0P":兇+sjr2j4ZIKLr(}r|[8I ,9;6,z6]IS-bwYr\U2A*׊c]b_M~62f%L(p 𵨭koGB )X5#*DѿYwwLA kEߑе$K&Ѳ!.?w5>[E󜶌#-9"_*_S$Ue)Sy}fy۞3.;ۨqsZ9\2.:,(t$Q nS!]Q0R832|UnP !ih5aЊEՂ>eUe6ޖ.֬,&}P5dvR0"Un2[Xh۾`ʁt2^yUüV@jW$$XVq3m,ʲB}JtS5a,>!V!p52W8J<0T P!(%NgDJ]X;p44x Y d֨da =e:B7K)F ဨ̭3)j.sV$dQĂ-Zhh]`2 M+ *&'+4DHK(zZºBb԰fznJ.1R)HgA>c`CĊtկ IܜD"[f`)zHlvZVtlKTႽc:Q||^̣g+v@y@K'ړo1l)>ĸFh nR}KI]Vym,`M+~c]mڋyCnIqj4;RtH Z`Ud{T)E[8j(pT:S@A > "چQVCHiWiѤeN0 96lQJ'gWqլ2cu@515&.RG4JY$Y=[\ֵY1j{9WDuBW* e8*8Jr.k.fwfJ: Di55V<$O2GL$&-d9HuI}7`VXUƣKtC2AY}%tGQзHŽ}lK?EQFIQUEW8e]wm V%c v"^1݈FtEoJ"`/I#Wj̢BItM2ZJ2 ֬#~l1*.kG msViqi+ϥ1[l$n"U&`EfqpH"vĮ_>G>XQ6peqA˥I6_ 3כSjиT9* c#jtK1J vIIWvTKԎRA1+IRrd^`ѳj{ I4̡ةtUha#ݰ>&E8K*r\t!).k2zۓspIrrd3MA%0^rHیK Uϣ͕u\]UP1hs]{2C-yJcㄠ@u]0+Y'䭗&ꕎ 0r,QU920ϒZ> *p+P=hNI=D YrŌ 6J]4ߎ-R0FD}\GCqQ??IJb>3))>ڞs=BÖ.Q b-[*ax.oDc* ֙%RroG[GvW*#Yԍu[p+զɨUKeXtȍ>ED5pi-T)`YNC`(E`)WBx?.W:J5fIؒzY2J-ڪV9rBO+rbscgϼ4@@JYC8vf/Pc2V2Ͳ)^e㩽|^mz#72`ʏQDrMXi`j/RXCMRۢZVvY8'KOHuf\94=]5{&5vh52UM^PTqҞ*Z6,ᮧaU,%јel.CȚ)qa)VH{ilEG7Ss=jϕFĀbrPmhkOMMJ DsȒI2Z`X5+а|z*7l jyZ`tٔt)A׷I1aBЋ NX3* ]PY#73jk}Lf95Kఅep_ZzZ9ڈw9ܬkfL>kvYJ(ϙm Xr ɒXCtB9g$.ܧ:˷ kZTE6D } RLHGV6ߤXAVWyLU&_II7(v(](ƶjM a/C2E[OǑp)EH4X+r&ENvpK*G@g UJD5à_K ,J|S{";mHh% '7 %?e H4]JH$5JhjZJ+,lD=tyd{{tйElmH8bH8"f//]O 5MMR'Ƥve\ZO,U.߆a2XDAnцW!Ae VC^yeNDZ()Ov ;lxJ SkХӆDJߒ`虗U&#`Qz,' 2>8E^TqoJS$+Ҫ܄ȖҐծVJCKH+q3>3Ƽu}CDQ9e<4Ap9N9B8̘pTMJW|@D8 2-rP3t*"V_ՎEzlώu&)7*QjJK FL@^>PCڜkRYþhr+c˸BΡUJ6Մ`B!EXF)ZɒABtټ VX|=߉5ȟނtsˀ,00el8hVj'pUj6n%2 &R%trѓ_`9[vy%Є)[aNa|}OsϞ؈ Ʃm{jfT}=DnccB> BvM