From f8cf5ac7b2f53510f80a0eaf286a25298be17bfe Mon Sep 17 00:00:00 2001 From: Zygo Blaxell Date: Fri, 22 Jun 2012 22:19:08 -0400 Subject: [PATCH] From http://www.jwz.org/xscreensaver/xscreensaver-5.16.tar.gz -rw-r--r-- 1 zblaxell zblaxell 6921664 Jun 19 17:46 xscreensaver-5.16.tar.gz 71a9055fc50fef031b1e6937fd5a3e6569397de1 xscreensaver-5.16.tar.gz --- OSX/InvertedSlider.h | 17 +- OSX/InvertedSlider.m | 66 +- OSX/Makefile | 9 +- OSX/PrefsReader.h | 15 +- OSX/PrefsReader.m | 117 +- OSX/SaverListController.h | 38 + OSX/SaverListController.m | 272 + OSX/SaverRunner.h | 66 +- OSX/SaverRunner.m | 711 +- OSX/SaverRunner.plist | 11 +- OSX/XScreenSaver.icns | Bin 103291 -> 187557 bytes OSX/XScreenSaver.plist | 4 +- OSX/XScreenSaverConfigSheet.h | 47 +- OSX/XScreenSaverConfigSheet.m | 2741 ++-- OSX/XScreenSaverGLView.h | 17 +- OSX/XScreenSaverGLView.m | 239 +- OSX/XScreenSaverView.h | 68 +- OSX/XScreenSaverView.m | 828 +- OSX/bindist.rtf | 4 +- OSX/iSaverRunner.ai | 3593 ++++++ OSX/iSaverRunner.plist | 67 + OSX/iSaverRunner.xib | 176 + OSX/iSaverRunner114.png | Bin 0 -> 3809 bytes OSX/iSaverRunner29.png | Bin 0 -> 845 bytes OSX/iSaverRunner50.png | Bin 0 -> 1506 bytes OSX/iSaverRunner57.png | Bin 0 -> 1688 bytes OSX/iSaverRunner72.png | Bin 0 -> 2224 bytes OSX/iostextclient.m | 556 + OSX/jwxyz-timers.h | 2 +- OSX/jwxyz-timers.m | 32 +- OSX/jwxyz.h | 44 +- OSX/jwxyz.m | 466 +- OSX/main.m | 20 +- OSX/osxgrabscreen.m | 104 +- OSX/update-info-plist.pl | 99 +- OSX/xscreensaver_Prefix.pch | 22 +- README | 4 + config.h.in | 10 + configure | 142 +- configure.in | 69 + driver/Makefile.in | 6 +- driver/XScreenSaver.ad.in | 5 +- driver/XScreenSaver_ad.h | 2 +- driver/demo-Gtk.c | 32 +- driver/passwd-pam.c | 29 +- driver/prefs.c | 2 +- driver/screens.c | 4 +- driver/stderr.c | 22 +- driver/timers.c | 158 +- driver/types.h | 29 +- driver/windows.c | 4 +- driver/xscreensaver-getimage-file | 145 +- driver/xscreensaver-getimage-file.man | 27 +- driver/xscreensaver-text | 229 +- driver/xscreensaver.c | 4 + .../{xscreensaver.pam => xscreensaver.pam.in} | 9 +- driver/xset.c | 6 - hacks/Makefile.in | 33 +- hacks/analogtv.c | 6 + hacks/analogtv.h | 20 +- hacks/apple2-main.c | 275 +- hacks/asm6502.c | 3 +- hacks/boxfit.c | 15 +- hacks/bsod.c | 39 +- hacks/config/README | 4 +- hacks/config/anemotaxis.xml | 8 +- hacks/config/antinspect.xml | 2 +- hacks/config/antmaze.xml | 2 +- hacks/config/antspotlight.xml | 2 +- hacks/config/apple2.xml | 25 +- hacks/config/atlantis.xml | 2 +- hacks/config/attraction.xml | 9 +- hacks/config/atunnel.xml | 4 +- hacks/config/blinkbox.xml | 6 +- hacks/config/blocktube.xml | 2 +- hacks/config/boing.xml | 2 +- hacks/config/bouncingcow.xml | 2 +- hacks/config/boxed.xml | 2 +- hacks/config/bsod.xml | 27 + hacks/config/bubble3d.xml | 2 +- hacks/config/cage.xml | 2 +- hacks/config/carousel.xml | 2 +- hacks/config/celtic.xml | 1 + hacks/config/circuit.xml | 2 +- hacks/config/companioncube.xml | 2 +- hacks/config/crackberg.xml | 2 +- hacks/config/cube21.xml | 2 +- hacks/config/cubenetic.xml | 2 +- hacks/config/cubestorm.xml | 2 +- hacks/config/cubicgrid.xml | 2 +- hacks/config/dangerball.xml | 2 +- hacks/config/decayscreen.xml | 7 +- hacks/config/deco.xml | 3 +- hacks/config/discrete.xml | 5 +- hacks/config/distort.xml | 3 +- hacks/config/endgame.xml | 2 +- hacks/config/engine.xml | 2 +- hacks/config/extrusion.xml | 2 +- hacks/config/flipflop.xml | 2 +- hacks/config/flipscreen3d.xml | 5 +- hacks/config/fliptext.xml | 2 +- hacks/config/flurry.xml | 2 +- hacks/config/flyingtoasters.xml | 2 +- hacks/config/gears.xml | 2 +- hacks/config/gflux.xml | 4 +- hacks/config/glblur.xml | 6 +- hacks/config/glcells.xml | 4 +- hacks/config/gleidescope.xml | 5 +- hacks/config/glforestfire.xml | 2 +- hacks/config/glhanoi.xml | 2 +- hacks/config/glknots.xml | 2 +- hacks/config/glmatrix.xml | 2 +- hacks/config/glplanet.xml | 10 +- hacks/config/glschool.xml | 4 +- hacks/config/glslideshow.xml | 2 +- hacks/config/glsnake.xml | 2 +- hacks/config/gltext.xml | 2 +- hacks/config/halo.xml | 2 +- hacks/config/hilbert.xml | 4 +- hacks/config/hypercube.xml | 1 + hacks/config/hypertorus.xml | 2 +- hacks/config/hypnowheel.xml | 2 +- hacks/config/ifs.xml | 2 +- hacks/config/interaggregate.xml | 2 + hacks/config/intermomentary.xml | 2 + hacks/config/jigglypuff.xml | 2 +- hacks/config/jigsaw.xml | 2 +- hacks/config/juggle.xml | 2 - hacks/config/juggler3d.xml | 5 +- hacks/config/kaleidescope.xml | 3 +- hacks/config/klein.xml | 12 +- hacks/config/lament.xml | 2 +- hacks/config/lavalite.xml | 3 +- hacks/config/lockward.xml | 2 +- hacks/config/loop.xml | 3 +- hacks/config/m6502.xml | 29 +- hacks/config/maze.xml | 7 +- hacks/config/menger.xml | 7 +- hacks/config/mirrorblob.xml | 3 +- hacks/config/moebius.xml | 2 +- hacks/config/moebiusgears.xml | 2 +- hacks/config/molecule.xml | 2 +- hacks/config/morph3d.xml | 2 +- hacks/config/noof.xml | 4 +- hacks/config/pedal.xml | 4 +- hacks/config/penrose.xml | 1 + hacks/config/phosphor.xml | 10 +- hacks/config/photopile.xml | 4 +- hacks/config/pinion.xml | 2 +- hacks/config/pipes.xml | 2 +- hacks/config/polyhedra.xml | 8 +- hacks/config/polytopes.xml | 4 +- hacks/config/pong.xml | 7 + hacks/config/providence.xml | 2 +- hacks/config/pulsar.xml | 2 +- hacks/config/queens.xml | 9 +- hacks/config/rd-bomb.xml | 5 +- hacks/config/rdbomb.xml | 5 +- hacks/config/rubik.xml | 2 +- hacks/config/rubikblocks.xml | 4 +- hacks/config/sballs.xml | 2 +- hacks/config/sierpinski3d.xml | 5 +- hacks/config/skytentacles.xml | 2 +- hacks/config/slidescreen.xml | 5 +- hacks/config/sonar.xml | 2 +- hacks/config/spheremonics.xml | 2 +- hacks/config/sproingies.xml | 2 +- hacks/config/stairs.xml | 2 +- hacks/config/starfish.xml | 7 +- hacks/config/starwars.xml | 2 +- hacks/config/stonerview.xml | 2 +- hacks/config/superquadrics.xml | 2 +- hacks/config/surfaces.xml | 2 +- hacks/config/tangram.xml | 2 +- hacks/config/timetunnel.xml | 2 +- hacks/config/topblock.xml | 2 +- hacks/config/tronbit.xml | 2 +- hacks/config/voronoi.xml | 3 +- hacks/config/webcollage.xml | 9 +- hacks/config/whirlwindwarp.xml | 2 +- hacks/config/xanalogtv.xml | 28 +- hacks/config/xlyap.xml | 2 +- hacks/config/xrayswarm.xml | 3 +- hacks/config/xss.dtd | 8 +- hacks/config/zoom.xml | 6 +- hacks/deluxe.c | 4 +- hacks/fontglide.c | 156 +- hacks/fps.c | 5 +- hacks/fps.h | 7 + hacks/fpsI.h | 10 +- hacks/glx/Makefile.in | 191 +- hacks/glx/antinspect.c | 31 +- hacks/glx/antmaze.c | 68 +- hacks/glx/antspotlight.c | 34 +- hacks/glx/atlantis.c | 42 +- hacks/glx/atlantis.h | 12 +- hacks/glx/b_lockglue.c | 3 + hacks/glx/blocktube.c | 2 + hacks/glx/boing.c | 3 +- hacks/glx/bouncingcow.c | 69 +- hacks/glx/boxed.c | 9 + hacks/glx/bubble3d.c | 1 + hacks/glx/bubble3d.h | 13 +- hacks/glx/buildlwo.h | 12 +- hacks/glx/cage.c | 27 +- hacks/glx/carousel.c | 6 +- hacks/glx/chessmodels.c | 26 +- hacks/glx/circuit.c | 25 +- hacks/glx/companion.c | 1 + hacks/glx/crackberg.c | 17 +- hacks/glx/cubenetic.c | 2 - hacks/glx/cubestorm.c | 4 + hacks/glx/dangerball.c | 1 + hacks/glx/dnalogo.c | 2 + hacks/glx/dropshadow.c | 25 +- hacks/glx/dropshadow.h | 15 +- hacks/glx/endgame.c | 6 + hacks/glx/engine.c | 16 +- hacks/glx/extrusion.h | 6 +- hacks/glx/flipflop.c | 4 + hacks/glx/flipscreen3d.c | 11 + hacks/glx/fliptext.c | 154 +- hacks/glx/flurry.c | 4 +- hacks/glx/flurry.h | 17 +- hacks/glx/flyingtoasters.c | 19 +- hacks/glx/font-ximage.c | 5 +- hacks/glx/fps-gl.c | 25 +- hacks/glx/glblur.c | 15 +- hacks/glx/glcells.c | 11 +- hacks/glx/glforestfire.c | 38 +- hacks/glx/glhanoi.c | 2 +- hacks/glx/gllist.h | 12 +- hacks/glx/glmatrix.c | 30 +- hacks/glx/glplanet.c | 155 +- hacks/glx/glschool.c | 12 +- hacks/glx/glschool_gl.c | 82 +- hacks/glx/glschool_gl.h | 22 +- hacks/glx/glslideshow.c | 38 +- hacks/glx/glsnake.c | 73 +- hacks/glx/gltext.c | 73 +- hacks/glx/gltrackball.c | 10 +- hacks/glx/glut_roman.h | 1 + hacks/glx/glut_stroke.c | 7 +- hacks/glx/glut_swidth.c | 9 +- hacks/glx/glxfonts.c | 252 +- hacks/glx/glxfonts.h | 12 +- hacks/glx/grab-ximage.c | 23 +- hacks/glx/hypertorus.c | 14 +- hacks/glx/involute.c | 9 +- hacks/glx/jigglypuff.c | 11 + hacks/glx/jigsaw.c | 13 + hacks/glx/juggler3d.c | 26 +- hacks/glx/jwzgles.c | 3510 ++++++ hacks/glx/jwzgles.h | 519 + hacks/glx/jwzglesI.h | 311 + hacks/glx/klein.c | 13 +- hacks/glx/lament.c | 116 +- hacks/glx/lavalite.c | 2 +- hacks/glx/lockward.c | 4 +- hacks/glx/marching.c | 8 +- hacks/glx/mirrorblob.c | 58 +- hacks/glx/moebius.c | 68 +- hacks/glx/molecule.c | 75 +- hacks/glx/noof.c | 4 + hacks/glx/normals.h | 14 +- hacks/glx/photopile.c | 54 +- hacks/glx/photopile.man | 2 +- hacks/glx/pinion.c | 90 +- hacks/glx/pipes.c | 35 +- hacks/glx/polyhedra-gl.c | 69 +- hacks/glx/polytopes.c | 138 +- hacks/glx/providence.c | 58 +- hacks/glx/queens.c | 77 +- hacks/glx/rubikblocks.c | 2 +- hacks/glx/sballs.c | 9 + hacks/glx/skytentacles.c | 1 + hacks/glx/sonar-icmp.c | 38 +- hacks/glx/sonar.c | 66 +- hacks/glx/sphere.c | 15 +- hacks/glx/spheremonics.c | 56 +- hacks/glx/sproingies.c | 11 +- hacks/glx/sproingiewrap.c | 3 + hacks/glx/stairs.c | 30 +- hacks/glx/starwars.c | 202 +- hacks/glx/starwars.h | 312 + hacks/glx/stonerview-move.c | 8 +- hacks/glx/stonerview.h | 12 +- hacks/glx/superquadrics.c | 1 + hacks/glx/tangram.c | 36 +- hacks/glx/tangram_shapes.c | 12 +- hacks/glx/teapot.c | 15 +- hacks/glx/texfont.c | 100 +- hacks/glx/timetunnel.c | 13 +- hacks/glx/topblock.c | 66 +- hacks/glx/tronbit.c | 69 +- hacks/glx/tube.c | 14 +- hacks/glx/tunnel_draw.c | 7 +- hacks/glx/wfront2gl.pl | 6 +- hacks/glx/xlock-gl-utils.c | 5 - hacks/halftone.c | 2 +- hacks/images/wood.xpm | 70 + hacks/intermomentary.c | 4 +- hacks/link_decc.com | 4 +- hacks/m6502.c | 1 - hacks/maze.c | 2 +- hacks/maze.man | 12 +- hacks/memscroller.c | 4 +- hacks/metaballs.c | 2 +- hacks/noseguy.c | 121 +- hacks/pacman.c | 2 +- hacks/phosphor.c | 401 +- hacks/pong.c | 1 - hacks/screenhack.c | 4 +- hacks/t3d.c | 5 +- hacks/triangle.c | 8 +- hacks/vidwhacker | 3 +- hacks/webcollage | 71 +- hacks/whirlygig.c | 2 + hacks/xjack.c | 12 +- hacks/xlockmore.h | 17 +- hacks/xlockmoreI.h | 14 +- hacks/xmatrix.c | 102 +- po/POTFILES.in | 2 +- utils/Makefile.in | 10 +- utils/compile_axp.com | 1 + utils/compile_decc.com | 1 + utils/grabclient.c | 19 +- utils/grabscreen.h | 5 +- utils/textclient.c | 502 + utils/textclient.h | 31 + utils/version.h | 2 +- xscreensaver.spec | 2 +- xscreensaver.xcodeproj/project.pbxproj | 10450 +++++++++++----- 333 files changed, 25262 insertions(+), 7277 deletions(-) create mode 100644 OSX/SaverListController.h create mode 100644 OSX/SaverListController.m create mode 100644 OSX/iSaverRunner.ai create mode 100644 OSX/iSaverRunner.plist create mode 100644 OSX/iSaverRunner.xib create mode 100644 OSX/iSaverRunner114.png create mode 100644 OSX/iSaverRunner29.png create mode 100644 OSX/iSaverRunner50.png create mode 100644 OSX/iSaverRunner57.png create mode 100644 OSX/iSaverRunner72.png create mode 100644 OSX/iostextclient.m rename driver/{xscreensaver.pam => xscreensaver.pam.in} (62%) create mode 100644 hacks/glx/jwzgles.c create mode 100644 hacks/glx/jwzgles.h create mode 100644 hacks/glx/jwzglesI.h create mode 100644 hacks/glx/starwars.h create mode 100644 hacks/images/wood.xpm create mode 100644 utils/textclient.c create mode 100644 utils/textclient.h diff --git a/OSX/InvertedSlider.h b/OSX/InvertedSlider.h index 71efb161..6e9dece8 100644 --- a/OSX/InvertedSlider.h +++ b/OSX/InvertedSlider.h @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2006 Jamie Zawinski +/* xscreensaver, Copyright (c) 2006-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -12,9 +12,22 @@ * the high value is on the left and the low value is on the right. */ -#import +#ifdef USE_IPHONE +# import +# define NSSlider UISlider +# define NSRect CGRect +# define minValue minimumValue +# define maxValue maximumValue +#else +# import +#endif @interface InvertedSlider : NSSlider { + BOOL inverted; + BOOL integers; } + +- (id) initWithFrame:(NSRect)r inverted:(BOOL)_inv integers:(BOOL)_int; + @end diff --git a/OSX/InvertedSlider.m b/OSX/InvertedSlider.m index 327162a3..c4fd5e37 100644 --- a/OSX/InvertedSlider.m +++ b/OSX/InvertedSlider.m @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2006-2010 Jamie Zawinski +/* xscreensaver, Copyright (c) 2006-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -16,29 +16,85 @@ @implementation InvertedSlider +- (id) initWithFrame:(NSRect)r +{ + self = [super initWithFrame:r]; + if (! self) return 0; + inverted = YES; + integers = NO; + return self; +} + +- (id) initWithFrame:(NSRect)r inverted:(BOOL)_inv integers:(BOOL)_int +{ + self = [self initWithFrame:r]; + inverted = _inv; + integers = _int; + return self; +} + + -(double) transformValue:(double) value { + double v2 = (integers + ? (int) (value + (value < 0 ? -0.5 : 0.5)) + : value); double low = [self minValue]; double high = [self maxValue]; double range = high - low; - double off = value - low; - double trans = low + (range - off); - // NSLog (@" ... %.1f -> %.1f [%.1f - %.1f]", value, trans, low, high); - return trans; + double off = v2 - low; + if (inverted) + v2 = low + (range - off); + // NSLog (@" ... %.1f -> %.1f [%.1f - %.1f]", value, v2, low, high); + return v2; } -(double) doubleValue; { +# ifdef USE_IPHONE + return [self transformValue:[self value]]; +# else return [self transformValue:[super doubleValue]]; +# endif } -(void) setDoubleValue:(double)v { +# ifdef USE_IPHONE + return [super setValue:[self transformValue:v]]; +# else return [super setDoubleValue:[self transformValue:v]]; +# endif } +#ifdef USE_IPHONE + +- (void)setValue:(float)v animated:(BOOL)a +{ + return [super setValue:[self transformValue:v] animated:a]; +} + + +/* Draw the thumb in the right place by also inverting its position + relative to the track. + */ +- (CGRect)thumbRectForBounds:(CGRect)bounds + trackRect:(CGRect)rect + value:(float)value +{ + CGRect thumb = [super thumbRectForBounds:bounds trackRect:rect value:value]; + if (inverted) + thumb.origin.x = rect.size.width - thumb.origin.x - thumb.size.width; + return thumb; +} + +#endif // !USE_IPHONE + + + /* Implement all accessor methods in terms of "doubleValue" above. + (Note that these normally exist only on MacOS, not on iOS.) */ -(float) floatValue; diff --git a/OSX/Makefile b/OSX/Makefile index 3f7886b6..584ed755 100644 --- a/OSX/Makefile +++ b/OSX/Makefile @@ -2,6 +2,7 @@ XCODE_TARGET = "All Savers" XCODEBUILD=/Developer/usr/bin/xcodebuild +XCODE_ARCH=-arch i386 -arch x86_64 default: release all: debug release @@ -19,10 +20,10 @@ distclean: distdepend:: update_plist_version debug: distdepend - cd ..; $(XCODEBUILD) -target $(XCODE_TARGET) -configuration Debug build + cd ..; $(XCODEBUILD) $(XCODE_ARCH) -target $(XCODE_TARGET) -configuration Debug build release:: distdepend - cd ..; $(XCODEBUILD) -target $(XCODE_TARGET) -configuration Release build + cd ..; $(XCODEBUILD) $(XCODE_ARCH) -target $(XCODE_TARGET) -configuration Release build release:: check_versions @@ -68,7 +69,7 @@ update_plist_version: SRC=../utils/version.h ; \ V=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' $$SRC` ; \ T=/tmp/xs.$$$$ ; \ - for S in XScreenSaver.plist SaverRunner.plist ; do \ + for S in XScreenSaver.plist SaverRunner.plist iSaverRunner.plist ; do \ /bin/echo -n "Updating version number in $$S to \"$$V\"... " ; \ KEYS="CFBundleVersion|CFBundleShortVersionString" ; \ perl -0777 -pne \ @@ -109,7 +110,7 @@ dmg:: distdepend check_versions perl -0 -ne \ 's/\\\\\\n//g; m/^RETIRED_GL_EXES\s*=\s*(.*)$$/m && print "$$1\n"' \ ../hacks/glx/Makefile.in ; \ - echo savertester` ; \ + echo xscreensaver` ; \ \ for f in $$SRC/*.{saver,app} $$EXTRAS ; do \ ok=yes ; \ diff --git a/OSX/PrefsReader.h b/OSX/PrefsReader.h index 9905aeb0..06963740 100644 --- a/OSX/PrefsReader.h +++ b/OSX/PrefsReader.h @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2006 Jamie Zawinski +/* xscreensaver, Copyright (c) 2006-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -16,13 +16,23 @@ the UI (XScreenSaverConfigSheet). */ -#import +#ifdef USE_IPHONE +# import +# import +# define NSUserDefaultsController NSUserDefaults +#else +# import +#endif + + #import "jwxyz.h" @interface PrefsReader : NSObject { + NSString *saver_name; NSUserDefaultsController *userDefaultsController; NSUserDefaults *userDefaults; // this is actually a 'ScreenSaverDefaults' + NSDictionary *defaultOptions; // Hardcoded defaults before any changes. } - (id) initWithName: (NSString *) name @@ -30,6 +40,7 @@ defaults: (const char * const *) defs; - (NSUserDefaultsController *) userDefaultsController; +- (NSDictionary *) defaultOptions; - (char *) getStringResource: (const char *) name; - (double) getFloatResource: (const char *) name; diff --git a/OSX/PrefsReader.m b/OSX/PrefsReader.m index bf4af3ea..5ed844d0 100644 --- a/OSX/PrefsReader.m +++ b/OSX/PrefsReader.m @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2006-2011 Jamie Zawinski +/* xscreensaver, Copyright (c) 2006-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -16,12 +16,39 @@ the UI (XScreenSaverConfigSheet). */ -#import +#ifndef USE_IPHONE +# import +#endif + #import "PrefsReader.h" #import "screenhackI.h" @implementation PrefsReader +/* Normally we read resources by looking up "KEY" in the database + "org.jwz.xscreensaver.SAVERNAME". But in the all-in-one iPhone + app, everything is stored in the database "org.jwz.xscreensaver" + instead, so transform keys to "SAVERNAME.KEY". + + NOTE: This is duplicated in XScreenSaverConfigSheet.m, cause I suck. +*/ +- (NSString *) makeKey:(NSString *)key +{ +# ifdef USE_IPHONE + NSString *prefix = [saver_name stringByAppendingString:@"."]; + if (! [key hasPrefix:prefix]) // Don't double up! + key = [prefix stringByAppendingString:key]; +# endif + return key; +} + +- (NSString *) makeCKey:(const char *)key +{ + return [self makeKey:[NSString stringWithCString:key + encoding:NSUTF8StringEncoding]]; +} + + /* Converts an array of "key:value" strings to an NSDictionary. */ - (NSDictionary *) defaultsToDict: (const char * const *) defs @@ -49,8 +76,7 @@ // decide whether it's a boolean, int, float, or string, and store // an object of the appropriate type in the prefs. // - NSString *nskey = [NSString stringWithCString:key - encoding:NSUTF8StringEncoding]; + NSString *nskey = [self makeCKey:key]; NSObject *nsval; int dd; double ff; @@ -88,9 +114,24 @@ NSDictionary *defsdict = [self defaultsToDict:defs]; [userDefaults registerDefaults:defsdict]; + // Save a copy of the default options, since iOS doesn't have + // [userDefaultsController initialValues]. + // + if (defaultOptions) + [defaultOptions release]; + defaultOptions = [[NSMutableDictionary dictionaryWithCapacity:20] + retain]; + for (NSString *key in defsdict) { + [defaultOptions setValue:[defsdict objectForKey:key] forKey:key]; + } + +# ifndef USE_IPHONE userDefaultsController = [[NSUserDefaultsController alloc] initWithDefaults:userDefaults initialValues:defsdict]; +# else // USE_IPHONE + userDefaultsController = userDefaults; +# endif // USE_IPHONE NSDictionary *optsdict = [NSMutableDictionary dictionaryWithCapacity:20]; @@ -100,8 +141,7 @@ while (*resource == '.' || *resource == '*') resource++; - NSString *nsresource = [NSString stringWithCString:resource - encoding:NSUTF8StringEncoding]; + NSString *nsresource = [self makeCKey:resource]; // make sure there's no resource mentioned in options and not defaults. if (![defsdict objectForKey:nsresource]) { @@ -120,9 +160,7 @@ #if 0 // make sure there's no resource mentioned in defaults and not options. - NSEnumerator *enumerator = [defsdict keyEnumerator]; - NSString *key; - while ((key = [enumerator nextObject])) { + for (NSString *key in defsdict) { if (! [optsdict objectForKey:key]) if (! ([key isEqualToString:@"foreground"] || // don't warn about these [key isEqualToString:@"background"] || @@ -146,6 +184,15 @@ } #endif /* 0 */ +#if 0 + // Dump the entire resource database. + NSDictionary *d = [userDefaults dictionaryRepresentation]; + for (NSObject *key in d) { + NSObject *val = [d objectForKey:key]; + NSLog (@"%@ = %@", key, val); + } +#endif + } - (NSUserDefaultsController *) userDefaultsController @@ -154,12 +201,17 @@ return userDefaultsController; } +- (NSDictionary *) defaultOptions +{ + NSAssert(defaultOptions, @"userDefaultsController uninitialized"); + return defaultOptions; +} + - (NSObject *) getObjectResource: (const char *) name { while (1) { - NSString *key = [NSString stringWithCString:name - encoding:NSUTF8StringEncoding]; + NSString *key = [self makeCKey:name]; NSObject *obj = [userDefaults objectForKey:key]; if (obj) return obj; @@ -191,7 +243,8 @@ !strcmp(name, "titleFont") || !strcmp(name, "fpsFont") || // fps.c !strcmp(name, "foreground") || // fps.c - !strcmp(name, "background") + !strcmp(name, "background") || + !strcmp(name, "textLiteral") )) NSLog(@"warning: no preference \"%s\" [string]", name); return NULL; @@ -269,11 +322,30 @@ - (BOOL) getBooleanResource: (const char *) name { - int n = [self getIntegerResource:name]; - if (n == 0) return NO; - else if (n == 1) return YES; - else { - NSAssert2(0, @"%s = %d but should have been 0 or 1", name, n); + NSObject *o = [self getObjectResource:name]; + if (! o) { + return NO; + } else if ([o isKindOfClass:[NSNumber class]]) { + double n = [(NSNumber *) o doubleValue]; + if (n == 0) return NO; + else if (n == 1) return YES; + else goto FAIL; + } else if ([o isKindOfClass:[NSString class]]) { + NSString *s = (NSString *) o; + if ([s isEqualToString:@"true"] || + [s isEqualToString:@"yes"] || + [s isEqualToString:@"1"]) + return YES; + else if ([s isEqualToString:@"false"] || + [s isEqualToString:@"no"] || + [s isEqualToString:@"0"] || + [s isEqualToString:@""]) + return NO; + else + goto FAIL; + } else { + FAIL: + NSAssert2(0, @"%s = \"%@\" but should have been a boolean", name, o); abort(); } } @@ -286,7 +358,17 @@ self = [self init]; if (!self) return nil; +# ifndef USE_IPHONE userDefaults = [ScreenSaverDefaults defaultsForModuleWithName:name]; +# else // USE_IPHONE + userDefaults = [NSUserDefaults standardUserDefaults]; +# endif // USE_IPHONE + + // Convert "org.jwz.xscreensaver.NAME" to just "NAME". + NSRange r = [name rangeOfString:@"." options:NSBackwardsSearch]; + if (r.length) + name = [name substringFromIndex:r.location+1]; + saver_name = [name retain]; [self registerXrmKeys:opts defaults:defs]; return self; @@ -294,6 +376,7 @@ - (void) dealloc { + [saver_name release]; [userDefaultsController release]; [super dealloc]; } diff --git a/OSX/SaverListController.h b/OSX/SaverListController.h new file mode 100644 index 00000000..dd665201 --- /dev/null +++ b/OSX/SaverListController.h @@ -0,0 +1,38 @@ +/* xscreensaver, Copyright (c) 2012 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + * + * This implements the top-level screen-saver selection list in the iOS app. + */ + +#ifdef USE_IPHONE + +#import + +@interface SaverListController : UITableViewController { + + int active_section_count; + NSMutableArray *list_by_letter[26]; // 27 to get "#" after "Z". + NSMutableArray *letter_sections; + NSMutableArray *section_titles; + NSString *selected; + NSDictionary *descriptions; + + int tap_count; + NSTimer *tap_timer; + NSIndexPath *last_tap; +} + +- (id)initWithNames:(NSArray *)names descriptions:(NSDictionary *)descs; +- (void) reload:(NSArray *)names descriptions:(NSDictionary *)descs; +- (NSString *) selected; +- (void) scrollTo:(NSString *)name; +@end + +#endif // USE_IPHONE diff --git a/OSX/SaverListController.m b/OSX/SaverListController.m new file mode 100644 index 00000000..7eadc95e --- /dev/null +++ b/OSX/SaverListController.m @@ -0,0 +1,272 @@ +/* xscreensaver, Copyright (c) 2012 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + * + * This implements the top-level screen-saver selection list in the iOS app. + */ + +#ifdef USE_IPHONE // whole file + + +#import "SaverListController.h" + +#undef countof +#define countof(x) (sizeof((x))/sizeof((*x))) + + +@implementation SaverListController + +- (id)initWithNames:(NSArray *)names descriptions:(NSDictionary *)descs; +{ + self = [self init]; + if (! self) return 0; + [self reload:names descriptions:descs]; + return self; +} + + +- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tv +{ + int n = countof(list_by_letter); + NSMutableArray *a = [NSMutableArray arrayWithCapacity: n]; + for (int i = 0; i < n; i++) { + char s[2]; + s[0] = (i == 'Z'-'A'+1 ? '#' : i+'A'); + s[1] = 0; + [a addObject: [NSString stringWithCString:s + encoding:NSASCIIStringEncoding]]; + } + return a; +} + + +- (void) reload:(NSArray *)names descriptions:(NSDictionary *)descs +{ + if (descriptions) + [descriptions release]; + descriptions = [descs retain]; + + int n = countof(list_by_letter); + for (int i = 0; i < n; i++) { + list_by_letter[i] = [[NSMutableArray alloc] init]; + } + + for (NSString *name in names) { + int index = ([name cStringUsingEncoding: NSASCIIStringEncoding])[0]; + if (index >= 'a' && index <= 'z') + index -= 'a'-'A'; + if (index >= 'A' && index <= 'Z') + index -= 'A'; + else + index = n-1; + [list_by_letter[index] addObject: name]; + } + + active_section_count = 0; + letter_sections = [[[NSMutableArray alloc] init] retain]; + section_titles = [[[NSMutableArray alloc] init] retain]; + for (int i = 0; i < n; i++) { + if ([list_by_letter[i] count] > 0) { + active_section_count++; + [letter_sections addObject: list_by_letter[i]]; + if (i <= 'Z'-'A') + [section_titles addObject: [NSString stringWithFormat: @"%c", i+'A']]; + else + [section_titles addObject: @"#"]; + } + } + [self.tableView reloadData]; +} + + +- (NSString *)tableView:(UITableView *)tv + titleForHeaderInSection:(NSInteger)section +{ + return [section_titles objectAtIndex: section]; +} + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tv +{ + return active_section_count; +} + + +- (NSInteger)tableView:(UITableView *)tv + numberOfRowsInSection:(NSInteger)section +{ + return [[letter_sections objectAtIndex: section] count]; +} + +- (NSInteger)tableView:(UITableView *)tv + sectionForSectionIndexTitle:(NSString *)title + atIndex:(NSInteger) index +{ + int i = 0; + for (NSString *sectionTitle in section_titles) { + if ([sectionTitle isEqualToString: title]) + return i; + i++; + } + return -1; +} + + +- (UITableViewCell *)tableView:(UITableView *)tv + cellForRowAtIndexPath:(NSIndexPath *)ip +{ + NSString *id = + [[letter_sections objectAtIndex: [ip indexAtPosition: 0]] + objectAtIndex: [ip indexAtPosition: 1]]; + NSString *desc = [descriptions objectForKey:id]; + + UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier: id]; + if (!cell) { + cell = [[[UITableViewCell alloc] + initWithStyle: (desc + ? UITableViewCellStyleSubtitle + : UITableViewCellStyleDefault) + reuseIdentifier: id] + autorelease]; + cell.textLabel.text = id; + if (desc) + cell.detailTextLabel.text = desc; + } + return cell; +} + + +- (void)tapTimer:(NSTimer *)t +{ + [last_tap release]; + last_tap = 0; + tap_count = 0; + tap_timer = 0; +} + + +- (void)tableView:(UITableView *)tv + didSelectRowAtIndexPath:(NSIndexPath *)ip +{ + UITableViewCell *cell = [tv cellForRowAtIndexPath: ip]; + selected = cell.textLabel.text; + [self.navigationItem.leftBarButtonItem setEnabled: !!selected]; + [self.navigationItem.rightBarButtonItem setEnabled: !!selected]; + + if (tap_count == 0) { // First tap + tap_count = 1; + last_tap = [[ip copy] retain]; + tap_timer = [NSTimer scheduledTimerWithTimeInterval: 0.3 + target:self + selector:@selector(tapTimer:) + userInfo:nil + repeats:NO]; + + } else if (tap_count == 1 && tap_timer && // Second tap + [ip isEqual:last_tap]) { + [tap_timer invalidate]; + [last_tap release]; + last_tap = 0; + tap_timer = 0; + tap_count = 0; + + // Press the leftmost button in the button-bar. + UIBarButtonItem *b = self.navigationItem.leftBarButtonItem; + [[b target] performSelector: [b action] withObject: cell]; + + } else if (! [ip isEqual:last_tap]) { // Tap on a new row + if (tap_timer) [tap_timer invalidate]; + tap_timer = 0; + tap_count = 0; + } +} + + +/* We can't select a row immediately after creation, but selecting it + a little while later works (presumably after redisplay has happened) + so do it on a timer. + */ +- (void) scrollToCB: (NSTimer *) timer +{ + NSString *name = [timer userInfo]; + + int i = 0; + int j = 0; + Bool ok = NO; + for (NSArray *a in letter_sections) { + j = 0; + for (NSString *n in a) { + ok = [n isEqualToString: name]; + if (ok) goto DONE; + j++; + } + i++; + } + DONE: + if (ok) { + NSIndexPath *ip = [NSIndexPath indexPathForRow: j inSection: i]; + [self.tableView selectRowAtIndexPath:ip + animated:NO + scrollPosition: UITableViewScrollPositionMiddle]; + [self tableView:self.tableView didSelectRowAtIndexPath:ip]; + } +} + + +- (void) scrollTo: (NSString *) name +{ + [NSTimer scheduledTimerWithTimeInterval: 0 + target:self + selector:@selector(scrollToCB:) + userInfo:name + repeats:NO]; +} + + +- (void)viewWillAppear:(BOOL)animated +{ + /* Hitting the back button and returing to this view deselects, + and we can't re-select it from here, so again, do it once + we return to the event loop. + */ + if (selected) + [NSTimer scheduledTimerWithTimeInterval: 0 + target:self + selector:@selector(scrollToCB:) + userInfo:selected + repeats:NO]; + [super viewWillAppear:animated]; +} + + +- (NSString *) selected +{ + return selected; +} + + +- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)o +{ + return YES; +} + + +- (void)dealloc +{ + for (int i = 0; i < countof(list_by_letter); i++) + [list_by_letter[i] release]; + [letter_sections release]; + [section_titles release]; + [descriptions release]; + [super dealloc]; +} + +@end + + +#endif // USE_IPHONE -- whole file diff --git a/OSX/SaverRunner.h b/OSX/SaverRunner.h index 3ddc6b87..541bb2cf 100644 --- a/OSX/SaverRunner.h +++ b/OSX/SaverRunner.h @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2006-2011 Jamie Zawinski +/* xscreensaver, Copyright (c) 2006-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -9,19 +9,69 @@ * implied warranty. */ -#import -#import +#ifdef USE_IPHONE +# import +# import +# import +# import +# import +# import +# define NSView UIView +# define NSRect CGRect +# define NSSize CGSize +# define NSColor UIColor +# define NSImage UIImage +# define NSEvent UIEvent +# define NSWindow UIWindow +# define NSButton UIButton +# define NSApplication UIApplication +# define NSScreen UIScreen +#else +# import +# import +#endif + +@class ScreenSaverView; + +#ifdef USE_IPHONE +# import "SaverListController.h" +#endif @interface SaverRunner : NSObject { - NSString *saverDir; - NSArray *saverNames; - NSArray *windows; + NSString *saverName; // the one currently loaded + NSArray *saverNames; // Names of available savers + NSString *saverDir; // Where we find saver bundles + +# ifndef USE_IPHONE + NSBundle *saverBundle; + NSArray *windows; IBOutlet NSMenu *menubar; + +# else // USE_IPHONE + + ScreenSaverView *saverView; + UINavigationController *rootViewController; + IBOutlet UIWindow *window; + EAGLContext *eagl_ctx; + GLuint gl_framebuffer, gl_renderbuffer; + IBOutlet UIView *view; + SaverListController *listController; + UIImage *saved_screenshot; + +# endif // USE_IPHONE } -- (IBAction) openPreferences: (id)sender; -- (IBAction) aboutPanel: (id)sender; +- (void) aboutPanel: (id)sender; +- (void) openPreferences: (id)sender; +- (void)loadSaver:(NSString *)name launch:(BOOL)launch; +- (void) loadSaver: (NSString *)name; +- (void)selectedSaverDidChange:(NSDictionary *)change; + +#ifdef USE_IPHONE +- (void) loadSaverMenu: (id)sender; +- (UIImage *) screenshot; +#endif @end diff --git a/OSX/SaverRunner.m b/OSX/SaverRunner.m index 797cd2ce..a5eb429d 100644 --- a/OSX/SaverRunner.m +++ b/OSX/SaverRunner.m @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2006-2011 Jamie Zawinski +/* xscreensaver, Copyright (c) 2006-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -9,7 +9,7 @@ * implied warranty. */ -/* This program serves two purposes: +/* This program serves three purposes: First, It is a test harness for screen savers. When it launches, it looks around for .saver bundles (in the current directory, and then in @@ -22,43 +22,121 @@ bundle's Contents/PlugIns/ directory, and it will load and run that saver at start-up (without the saver-selection menu or other chrome). This is how the "Phosphor.app" and "Apple2.app" programs work. + + Third, it is the scaffolding which turns a set of screen savers into + a single iPhone / iPad program. In that case, all of the savers are + linked in to this executable, since iOS does not allow dynamic loading + of bundles that have executable code in them. Bleh. */ #import "SaverRunner.h" +#import "SaverListController.h" #import "XScreenSaverGLView.h" +#import + +#ifdef USE_IPHONE + +@interface RotateyViewController : UINavigationController +@end + +@implementation RotateyViewController +- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)o +{ + return YES; +} +@end + +#endif // USE_IPHONE + @implementation SaverRunner + - (ScreenSaverView *) makeSaverView: (NSString *) module + withSize: (NSSize) size { + Class new_class = 0; + +# ifndef USE_IPHONE + + // Load the XScreenSaverView subclass and code from a ".saver" bundle. + NSString *name = [module stringByAppendingPathExtension:@"saver"]; NSString *path = [saverDir stringByAppendingPathComponent:name]; + + if (! [[NSFileManager defaultManager] fileExistsAtPath:path]) { + NSLog(@"bundle \"%@\" does not exist", path); + return 0; + } + + NSLog(@"Loading %@", path); + + // NSBundle *obundle = saverBundle; + saverBundle = [NSBundle bundleWithPath:path]; - Class new_class = [saverBundle principalClass]; - NSAssert1 (new_class, @"unable to load \"%@\"", path); + if (saverBundle) + new_class = [saverBundle principalClass]; + + // Not entirely unsurprisingly, this tends to break the world. + // if (obundle && obundle != saverBundle) + // [obundle unload]; + +# else // USE_IPHONE + + // Determine whether to create an X11 view or an OpenGL view by + // looking for the "gl" tag in the xml file. This is kind of awful. + + NSString *path = [saverDir + stringByAppendingPathComponent: + [[[module lowercaseString] + stringByReplacingOccurrencesOfString:@" " + withString:@""] + stringByAppendingPathExtension:@"xml"]]; + NSString *xml = [NSString stringWithContentsOfFile:path + encoding:NSISOLatin1StringEncoding + error:nil]; + NSAssert (xml, @"no XML: %@", path); + Bool gl_p = (xml && [xml rangeOfString:@"gl=\"yes\""].length > 0); + new_class = (gl_p + ? [XScreenSaverGLView class] + : [XScreenSaverView class]); + +# endif // USE_IPHONE + + if (! new_class) + return 0; NSRect rect; rect.origin.x = rect.origin.y = 0; - rect.size.width = 320; - rect.size.height = 240; + rect.size.width = size.width; + rect.size.height = size.height; - id instance = [[new_class alloc] initWithFrame:rect isPreview:YES]; - NSAssert1 (instance, @"unable to instantiate %@", new_class); + XScreenSaverView *instance = + [(XScreenSaverView *) [new_class alloc] + initWithFrame:rect + saverName:module + isPreview:YES]; + if (! instance) return 0; /* KLUGE: Inform the underlying program that we're in "standalone" - mode. This is kind of horrible but I haven't thought of a more - sensible way to make this work. + mode, e.g. running as "Phosphor.app" rather than "Phosphor.saver". + This is kind of horrible but I haven't thought of a more sensible + way to make this work. */ +# ifndef USE_IPHONE if ([saverNames count] == 1) { putenv (strdup ("XSCREENSAVER_STANDALONE=1")); } +# endif return (ScreenSaverView *) instance; } +#ifndef USE_IPHONE + static ScreenSaverView * find_saverView_child (NSView *v) { @@ -90,6 +168,9 @@ find_saverView (NSView *v) } +/* Changes the contents of the menubar menus to correspond to + the running saver. Desktop only. + */ static void relabel_menus (NSObject *v, NSString *old_str, NSString *new_str) { @@ -116,7 +197,6 @@ relabel_menus (NSObject *v, NSString *old_str, NSString *new_str) - (void) openPreferences: (id) sender { ScreenSaverView *sv; - if ([sender isKindOfClass:[NSView class]]) { // Sent from button sv = find_saverView ((NSView *) sender); } else { @@ -144,11 +224,13 @@ relabel_menus (NSObject *v, NSString *old_str, NSString *new_str) ones will blow up if one re-inits but the other doesn't. */ if (code != NSCancelButton) { - [sv stopAnimation]; + if ([sv isAnimating]) + [sv stopAnimation]; [sv startAnimation]; } } + - (void) preferencesClosed: (NSWindow *) sheet returnCode: (int) returnCode contextInfo: (void *) contextInfo @@ -156,40 +238,245 @@ relabel_menus (NSObject *v, NSString *old_str, NSString *new_str) [NSApp stopModalWithCode:returnCode]; } +#else // USE_IPHONE -- (void)loadSaver:(NSString *)name + +- (UIImage *) screenshot { - int i; - for (i = 0; i < [windows count]; i++) { - NSWindow *window = [windows objectAtIndex:i]; - NSView *cv = [window contentView]; - ScreenSaverView *old_view = find_saverView (cv); - NSView *sup = [old_view superview]; + return saved_screenshot; +} + +- (void) saveScreenshot +{ + // Most of this is from: + // http://developer.apple.com/library/ios/#qa/qa1703/_index.html + // The rotation stuff is by me. + + CGSize size = [[UIScreen mainScreen] bounds].size; + + UIInterfaceOrientation orient = + [[window rootViewController] interfaceOrientation]; + if (orient == UIInterfaceOrientationLandscapeLeft || + orient == UIInterfaceOrientationLandscapeRight) { + // Rotate the shape of the canvas 90 degrees. + double s = size.width; + size.width = size.height; + size.height = s; + } + + + // Create a graphics context with the target size + // On iOS 4 and later, use UIGraphicsBeginImageContextWithOptions to + // take the scale into consideration + // On iOS prior to 4, fall back to use UIGraphicsBeginImageContext + + if (UIGraphicsBeginImageContextWithOptions) + UIGraphicsBeginImageContextWithOptions (size, NO, 0); + else + UIGraphicsBeginImageContext (size); + + CGContextRef ctx = UIGraphicsGetCurrentContext(); + + + // Rotate the graphics context to match current hardware rotation. + // + switch (orient) { + case UIInterfaceOrientationPortraitUpsideDown: + CGContextTranslateCTM (ctx, [window center].x, [window center].y); + CGContextRotateCTM (ctx, M_PI); + CGContextTranslateCTM (ctx, -[window center].x, -[window center].y); + break; + case UIInterfaceOrientationLandscapeLeft: + case UIInterfaceOrientationLandscapeRight: + CGContextTranslateCTM (ctx, + ([window frame].size.height - + [window frame].size.width) / 2, + ([window frame].size.width - + [window frame].size.height) / 2); + CGContextTranslateCTM (ctx, [window center].x, [window center].y); + CGContextRotateCTM (ctx, + (orient == UIInterfaceOrientationLandscapeLeft + ? M_PI/2 + : -M_PI/2)); + CGContextTranslateCTM (ctx, -[window center].x, -[window center].y); + break; + default: + break; + } - NSString *old_title = [window title]; + // Iterate over every window from back to front + // + for (UIWindow *win in [[UIApplication sharedApplication] windows]) { + if (![win respondsToSelector:@selector(screen)] || + [win screen] == [UIScreen mainScreen]) { + + // -renderInContext: renders in the coordinate space of the layer, + // so we must first apply the layer's geometry to the graphics context + CGContextSaveGState (ctx); + + // Center the context around the window's anchor point + CGContextTranslateCTM (ctx, [win center].x, [win center].y); + + // Apply the window's transform about the anchor point + CGContextConcatCTM (ctx, [win transform]); + + // Offset by the portion of the bounds left of and above anchor point + CGContextTranslateCTM (ctx, + -[win bounds].size.width * [[win layer] anchorPoint].x, + -[win bounds].size.height * [[win layer] anchorPoint].y); + + // Render the layer hierarchy to the current context + [[win layer] renderInContext:ctx]; + + // Restore the context + CGContextRestoreGState (ctx); + } + } + + if (saved_screenshot) + [saved_screenshot release]; + saved_screenshot = [UIGraphicsGetImageFromCurrentImageContext() retain]; + + UIGraphicsEndImageContext(); +} + + +- (void) openPreferences: (id) sender +{ + NSString *saver = [listController selected]; + if (! saver) return; + + [self loadSaver:saver launch:NO]; + if (! saverView) return; + + [rootViewController pushViewController: [saverView configureView] + animated:YES]; +} + + +- (void) loadSaverMenu: (id) sender +{ + NSString *saver = [listController selected]; + NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; + if (saver) { + [prefs setObject:saver forKey:@"selectedSaverName"]; + } else { + [prefs removeObjectForKey:@"selectedSaverName"]; + } + [self saveScreenshot]; + [self selectedSaverDidChange:nil]; +} + +#endif // USE_IPHONE + + + +- (void)loadSaver:(NSString *)name launch:(BOOL)launch +{ + // NSLog (@"selecting saver \"%@\"", name); + +# ifndef USE_IPHONE + + if (saverName && [saverName isEqualToString: name]) { + if (launch) + for (NSWindow *win in windows) { + ScreenSaverView *sv = find_saverView ([win contentView]); + if (![sv isAnimating]) + [sv startAnimation]; + } + return; + } + + saverName = name; + + for (NSWindow *win in windows) { + NSView *cv = [win contentView]; + NSString *old_title = [win title]; if (!old_title) old_title = @"XScreenSaver"; - [window setTitle: name]; + [win setTitle: name]; relabel_menus (menubar, old_title, name); - [old_view stopAnimation]; - [old_view removeFromSuperview]; + ScreenSaverView *old_view = find_saverView (cv); + NSView *sup = old_view ? [old_view superview] : cv; + + if (old_view) { + if ([old_view isAnimating]) + [old_view stopAnimation]; + [old_view removeFromSuperview]; + } + + NSSize size = [cv frame].size; + ScreenSaverView *new_view = [self makeSaverView:name withSize: size]; + NSAssert (new_view, @"unable to make a saver view"); - ScreenSaverView *new_view = [self makeSaverView:name]; - [new_view setFrame: [old_view frame]]; + [new_view setFrame: (old_view ? [old_view frame] : [cv frame])]; [sup addSubview: new_view]; - [window makeFirstResponder:new_view]; + [win makeFirstResponder:new_view]; [new_view setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable]; - [new_view startAnimation]; + [new_view retain]; + if (launch) + [new_view startAnimation]; } NSUserDefaultsController *ctl = [NSUserDefaultsController sharedUserDefaultsController]; [ctl save:self]; + +# else // USE_IPHONE + + if (saverName && [saverName isEqualToString: name]) { + if (launch && ![saverView isAnimating]) { + [window addSubview: saverView]; + [saverView startAnimation]; + } + return; + } + + saverName = name; + + if (saverView) { + if ([saverView isAnimating]) + [saverView stopAnimation]; + [saverView removeFromSuperview]; + } + + NSSize size = [window frame].size; + saverView = [self makeSaverView:name withSize: size]; + + if (! saverView) { + [[[UIAlertView alloc] initWithTitle: name + message: @"Unable to load!" + delegate: nil + cancelButtonTitle: @"Bummer" + otherButtonTitles: nil] + show]; + return; + } + + [saverView setFrame: [window frame]]; + [saverView retain]; + [[NSNotificationCenter defaultCenter] + addObserver:saverView + selector:@selector(didRotate:) + name:UIDeviceOrientationDidChangeNotification object:nil]; + + if (launch) { + [window addSubview: saverView]; + [saverView startAnimation]; + } +# endif // USE_IPHONE +} + + +- (void)loadSaver:(NSString *)name +{ + [self loadSaver:name launch:YES]; } - (void)aboutPanel:(id)sender { +# ifndef USE_IPHONE NSDictionary *bd = [saverBundle infoDictionary]; NSMutableDictionary *d = [NSMutableDictionary dictionaryWithCapacity:20]; @@ -205,6 +492,27 @@ relabel_menus (NSObject *v, NSString *old_str, NSString *new_str) [[NSApplication sharedApplication] orderFrontStandardAboutPanelWithOptions:d]; + +# else // USE_IPHONE + + NSDictionary *bd = [[NSBundle mainBundle] infoDictionary]; + NSString *body = [bd objectForKey:@"CFBundleGetInfoString"]; + + body = [body stringByReplacingOccurrencesOfString:@", " withString:@",\n"]; + body = [body stringByAppendingString: + @"\n\n" + "Double-tap to run.\n\n" + "Double-tap again to\n" + "return to this list."]; + + [[[UIAlertView alloc] initWithTitle: @"" + message: body + delegate: nil + cancelButtonTitle: @"OK" + otherButtonTitles: nil] + show]; + +# endif // USE_IPHONE } @@ -214,77 +522,90 @@ relabel_menus (NSObject *v, NSString *old_str, NSString *new_str) NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; NSString *name = [prefs stringForKey:@"selectedSaverName"]; + if (! name) return; + if (! [saverNames containsObject:name]) { - NSLog (@"Saver \"%@\" does not exist", name); + NSLog (@"saver \"%@\" does not exist", name); return; } - if (name) [self loadSaver: name]; + [self loadSaver: name]; } - (NSArray *) listSaverBundleNamesInDir:(NSString *)dir { +# ifndef USE_IPHONE + NSString *ext = @"saver"; +# else + NSString *ext = @"xml"; +# endif + NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:dir error:nil]; if (! files) return 0; + NSMutableArray *result = [NSMutableArray arrayWithCapacity: [files count]+1]; - int n = [files count]; - NSMutableArray *result = [NSMutableArray arrayWithCapacity: n+1]; - - int i; - for (i = 0; i < n; i++) { - NSString *p = [files objectAtIndex:i]; - if ([[p pathExtension] caseInsensitiveCompare:@"saver"]) + for (NSString *p in files) { + if ([[p pathExtension] caseInsensitiveCompare: ext]) continue; - [result addObject: [[p lastPathComponent] stringByDeletingPathExtension]]; + +# ifndef USE_IPHONE + NSString *name = [[p lastPathComponent] stringByDeletingPathExtension]; +# else // !USE_IPHONE + + // Get the saver name's capitalization right by reading the XML file. + + p = [dir stringByAppendingPathComponent: p]; + NSString *name = [NSString stringWithContentsOfFile:p + encoding:NSISOLatin1StringEncoding + error:nil]; + NSRange r = [name rangeOfString:@"_label=\"" options:0]; + name = [name substringFromIndex: r.location + r.length]; + r = [name rangeOfString:@"\"" options:0]; + name = [name substringToIndex: r.location]; + + NSAssert1 (name, @"no name in %@", p); + +# endif // !USE_IPHONE + + [result addObject: name]; } return result; } + - (NSArray *) listSaverBundleNames { NSMutableArray *dirs = [NSMutableArray arrayWithCapacity: 10]; - // First look in the bundle itself. +# ifndef USE_IPHONE + // On MacOS, look in the "Contents/PlugIns/" directory in the bundle. [dirs addObject: [[NSBundle mainBundle] builtInPlugInsPath]]; - // Then look in the same directory as the executable. + // Also look in the same directory as the executable. [dirs addObject: [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]]; - // Then look in standard screensaver directories. + // Finally, look in standard MacOS screensaver directories. [dirs addObject: @"~/Library/Screen Savers"]; [dirs addObject: @"/Library/Screen Savers"]; [dirs addObject: @"/System/Library/Screen Savers"]; +# else + // On iOS, just look in the bundle's root directory. + [dirs addObject: [[NSBundle mainBundle] bundlePath]]; +# endif + int i; for (i = 0; i < [dirs count]; i++) { NSString *dir = [dirs objectAtIndex:i]; NSArray *names = [self listSaverBundleNamesInDir:dir]; if (! names) continue; - - // Make sure this directory is on $PATH. - - const char *cdir = [dir cStringUsingEncoding:NSUTF8StringEncoding]; - const char *opath = getenv ("PATH"); - if (!opath) opath = "/bin"; // $PATH is unset when running under Shark! - char *npath = (char *) malloc (strlen (opath) + strlen (cdir) + 30); - strcpy (npath, "PATH="); - strcat (npath, cdir); - strcat (npath, ":"); - strcat (npath, opath); - if (putenv (npath)) { - perror ("putenv"); - abort(); - } - /* Don't free (npath) -- MacOS's putenv() does not copy it. */ - saverDir = [dir retain]; saverNames = [names retain]; - return names; } @@ -296,10 +617,14 @@ relabel_menus (NSObject *v, NSString *old_str, NSString *new_str) err = [err stringByAppendingString:@"/"]; } NSLog (@"%@", err); - exit (1); + return [NSArray array]; } +/* Create the popup menu of available saver names. + */ +#ifndef USE_IPHONE + - (NSPopUpButton *) makeMenu { NSRect rect; @@ -341,6 +666,124 @@ relabel_menus (NSObject *v, NSString *old_str, NSString *new_str) return popup; } +#else // USE_IPHONE + +/* Create a dictionary of one-line descriptions of every saver, + for display on the UITableView. + */ +- (NSDictionary *)makeDescTable +{ + NSMutableDictionary *dict = + [NSMutableDictionary dictionaryWithCapacity:[saverNames count]]; + + for (NSString *saver in saverNames) { + NSString *desc = 0; + NSString *path = [saverDir stringByAppendingPathComponent: + [[saver lowercaseString] + stringByReplacingOccurrencesOfString:@" " + withString:@""]]; + NSRange r; + + path = [path stringByAppendingPathExtension:@"xml"]; + desc = [NSString stringWithContentsOfFile:path + encoding:NSISOLatin1StringEncoding + error:nil]; + if (! desc) goto FAIL; + + r = [desc rangeOfString:@"<_description>" + options:NSCaseInsensitiveSearch]; + if (r.length == 0) { + desc = 0; + goto FAIL; + } + desc = [desc substringFromIndex: r.location + r.length]; + r = [desc rangeOfString:@"" + options:NSCaseInsensitiveSearch]; + if (r.length > 0) + desc = [desc substringToIndex: r.location]; + + // Leading and trailing whitespace. + desc = [desc stringByTrimmingCharactersInSet: + [NSCharacterSet whitespaceAndNewlineCharacterSet]]; + + // Let's see if we can find a year on the last line. + r = [desc rangeOfString:@"\n" options:NSBackwardsSearch]; + NSString *year = 0; + for (NSString *word in + [[desc substringFromIndex:r.location + r.length] + componentsSeparatedByCharactersInSet: + [NSCharacterSet characterSetWithCharactersInString: + @" \t\n-."]]) { + int n = [word doubleValue]; + if (n > 1970 && n < 2100) + year = word; + } + + // Delete everything after the first blank line. + r = [desc rangeOfString:@"\n\n" options:0]; + if (r.length > 0) + desc = [desc substringToIndex: r.location]; + + // Truncate really long ones. + int max = 140; + if ([desc length] > max) + desc = [desc substringToIndex: max]; + + if (year) + desc = [year stringByAppendingString: + [@": " stringByAppendingString: desc]]; + + FAIL: + if (! desc) { + desc = @"Oops, this module appears to be incomplete."; + // NSLog(@"broken saver: %@", path); + } + + [dict setObject:desc forKey:saver]; + } + + return dict; +} + + +- (UIViewController *) makeMenu +{ + listController = [[[SaverListController alloc] + initWithNames:saverNames + descriptions:[self makeDescTable]] + retain]; + UIBarButtonItem *run = [[[UIBarButtonItem alloc] + initWithTitle:@"Run" + style: UIBarButtonItemStylePlain + target: self + action: @selector(loadSaverMenu:)] + autorelease]; + UIBarButtonItem *about = [[[UIBarButtonItem alloc] + initWithTitle: @"About" + style: UIBarButtonItemStylePlain + target: self + action: @selector(aboutPanel:)] + autorelease]; + UIBarButtonItem *pref = [[[UIBarButtonItem alloc] + initWithTitle:@"Settings" + style: UIBarButtonItemStylePlain + target: self + action: @selector(openPreferences:)] + autorelease]; + NSArray *a = [NSArray arrayWithObjects: pref, about, nil]; + + [run setEnabled:NO]; + [about setEnabled:YES]; + [pref setEnabled:NO]; + listController.navigationItem.leftBarButtonItem = run; + listController.navigationItem.rightBarButtonItems = a; + + return listController; +} + +#endif // USE_IPHONE + + /* This is called when the "selectedSaverName" pref changes, e.g., when a menu selection is made. @@ -362,6 +805,10 @@ relabel_menus (NSObject *v, NSString *old_str, NSString *new_str) } +# ifndef USE_IPHONE + +/* Create the desktop window shell, possibly including a preferences button. + */ - (NSWindow *) makeWindow { NSRect rect; @@ -450,7 +897,7 @@ relabel_menus (NSObject *v, NSString *old_str, NSString *new_str) rect.origin.x += rect.size.width * (count ? 0.55 : -0.55); - NSWindow *window = [[NSWindow alloc] + NSWindow *win = [[NSWindow alloc] initWithContentRect:rect styleMask:(NSTitledWindowMask | NSClosableWindowMask | @@ -459,61 +906,123 @@ relabel_menus (NSObject *v, NSString *old_str, NSString *new_str) backing:NSBackingStoreBuffered defer:YES screen:screen]; - [window setMinSize:[window frameRectForContentRect:rect].size]; - - [[window contentView] addSubview: (pbox ? (NSView *) pbox : (NSView *) sv)]; + [win setMinSize:[win frameRectForContentRect:rect].size]; + [[win contentView] addSubview: (pbox ? (NSView *) pbox : (NSView *) sv)]; - [window makeKeyAndOrderFront:window]; + [win makeKeyAndOrderFront:win]; [sv startAnimation]; // this is the dummy saver count++; - return window; + return win; } +# endif // !USE_IPHONE + -- (void)applicationDidFinishLaunching: (NSNotification *) notif +- (void)applicationDidFinishLaunching: +# ifndef USE_IPHONE + (NSNotification *) notif +# else // USE_IPHONE + (UIApplication *) application +# endif // USE_IPHONE { [self listSaverBundleNames]; - int n = ([saverNames count] == 1 ? 1 : 2); - NSMutableArray *a = [[NSMutableArray arrayWithCapacity: n+1] retain]; +# ifndef USE_IPHONE + int window_count = ([saverNames count] <= 1 ? 1 : 2); + NSMutableArray *a = [[NSMutableArray arrayWithCapacity: window_count+1] + retain]; windows = a; + int i; - for (i = 0; i < n; i++) { - NSWindow *window = [self makeWindow]; + // Create either one window (for standalone, e.g. Phosphor.app) + // or two windows for SaverTester.app. + for (i = 0; i < window_count; i++) { + NSWindow *win = [self makeWindow]; // Get the last-saved window position out of preferences. - [window setFrameAutosaveName: + [win setFrameAutosaveName: [NSString stringWithFormat:@"XScreenSaverWindow%d", i]]; - [window setFrameUsingName:[window frameAutosaveName]]; - [a addObject: window]; + [win setFrameUsingName:[win frameAutosaveName]]; + [a addObject: win]; } +# else // USE_IPHONE - if (n == 1) { - [self loadSaver:[saverNames objectAtIndex:0]]; - } else { +# undef ya_rand_init + ya_rand_init (0); // Now's a good time. - /* In the XCode project, each .saver scheme sets this env var when - launching SaverTester.app so that it knows which one we are - currently debugging. If this is set, it overrides the default - selection in the popup menu. If unset, that menu persists to - whatever it was last time. - */ - const char *forced = getenv ("SELECTED_SAVER"); - if (forced && *forced) { - NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; - NSString *s = [NSString stringWithCString:(char *)forced - encoding:NSUTF8StringEncoding]; - NSLog (@"selecting saver %@", s); - [prefs setObject:s forKey:@"selectedSaverName"]; - } + rootViewController = [[[RotateyViewController alloc] init] retain]; + [window setRootViewController: rootViewController]; + [rootViewController pushViewController:[self makeMenu] + animated:YES]; - [self selectedSaverDidChange:nil]; + [window makeKeyAndVisible]; + [window setAutoresizesSubviews:YES]; + [window setAutoresizingMask: + (UIViewAutoresizingFlexibleWidth | + UIViewAutoresizingFlexibleHeight)]; + + // Has to be after the list window is up, or we get black. + [self saveScreenshot]; + +# endif // USE_IPHONE + + NSString *forced = 0; + /* In the XCode project, each .saver scheme sets this env var when + launching SaverTester.app so that it knows which one we are + currently debugging. If this is set, it overrides the default + selection in the popup menu. If unset, that menu persists to + whatever it was last time. + */ + const char *f = getenv ("SELECTED_SAVER"); + if (f && *f) + forced = [NSString stringWithCString:(char *)f + encoding:NSUTF8StringEncoding]; + + if (forced && ![saverNames containsObject:forced]) { + NSLog(@"forced saver \"%@\" does not exist", forced); + forced = 0; } + + // If there's only one saver, run that. + if (!forced && [saverNames count] == 1) + forced = [saverNames objectAtIndex:0]; + + NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; + +# ifdef USE_IPHONE + NSString *prev = [prefs stringForKey:@"selectedSaverName"]; + if (forced) + prev = forced; + + // If nothing was selected (e.g., this is the first launch) + // then scroll randomly instead of starting up at "A". + // + if (!prev) + prev = [saverNames objectAtIndex: (random() % [saverNames count])]; + + if (prev) + [listController scrollTo: prev]; +# endif // USE_IPHONE + + if (forced) + [prefs setObject:forced forKey:@"selectedSaverName"]; + +# ifdef USE_IPHONE + /* Don't auto-launch the saver unless it was running last time. + XScreenSaverView manages this, on crash_timer. + */ + if (! [prefs boolForKey:@"wasRunning"]) + return; +# endif + + [self selectedSaverDidChange:nil]; } +#ifndef USE_IPHONE + /* When the window closes, exit (even if prefs still open.) */ - (BOOL) applicationShouldTerminateAfterLastWindowClosed: (NSApplication *) n @@ -521,4 +1030,24 @@ relabel_menus (NSObject *v, NSString *old_str, NSString *new_str) return YES; } +# else // USE_IPHONE + +- (void)applicationWillResignActive:(UIApplication *)app +{ + [(XScreenSaverView *)view setScreenLocked:YES]; +} + +- (void)applicationDidBecomeActive:(UIApplication *)app +{ + [(XScreenSaverView *)view setScreenLocked:NO]; +} + +- (void)applicationDidEnterBackground:(UIApplication *)application +{ + [(XScreenSaverView *)view setScreenLocked:YES]; +} + +#endif // USE_IPHONE + + @end diff --git a/OSX/SaverRunner.plist b/OSX/SaverRunner.plist index 50dd918c..62966356 100644 --- a/OSX/SaverRunner.plist +++ b/OSX/SaverRunner.plist @@ -6,24 +6,31 @@ English CFBundleExecutable ${EXECUTABLE_NAME} + CFBundleGetInfoString + XScreenSaver 5.15, © 2001-2012 Jamie Zawinski. +http://www.jwz.org/xscreensaver/ CFBundleIconFile SaverRunner CFBundleIdentifier org.jwz.xscreensaver.${EXECUTABLE_NAME} CFBundleInfoDictionaryVersion 6.0 + CFBundleLongVersionString + XScreenSaver 5.15, © 2001-2012 Jamie Zawinski. CFBundleName ${PRODUCT_NAME} CFBundlePackageType APPL CFBundleShortVersionString - 5.15 + 5.16 CFBundleSignature ???? CFBundleVersion - 5.15 + 5.16 LSMinimumSystemVersion 10.4 + NSHumanReadableCopyright + XScreenSaver 5.15, © 2001-2012 Jamie Zawinski. NSMainNibFile SaverRunner NSPrincipalClass diff --git a/OSX/XScreenSaver.icns b/OSX/XScreenSaver.icns index 95068d11ce8a94b37f9d208a3c3375bb467d85b1..c82eb94a8be3d6ad72425a693fc0dc6dcc34edac 100644 GIT binary patch delta 84753 zcmd>HbwHHK`+v6Rt}RNI61zPMJHC2?0d}2z)|uy7@9q*RAtEXUc6W<~g)JtENGRPU zO2_=3cb5*q^VC0ndvfgV%zU2D%seyiyz`morRcE2p{uIY?5Xn?12f{#?8WWc0x&~^-)z^bC4SsX;u1sCa-NY?I{|*&MT*GX!2F#1 zFAp2w$0Io}qu=b=ni3=pT7w@iBzd}RKCyejt^?Tt`0+I9V*7T-g<&nml5_a+9Qhx$ zKk1o2S=pML#m{F+*He!Z6Un?DWgoRBmXweX+s?9&XUME(t1fwW?XDBKX4R6Zmoe;|G2xA9&nyy>@K}e%uj#=kDug&mP(92O_(rt;+Q|iQsX-iQeT~m^QzQ2uHe)2iaHmQEvLz+2jz7R%HP!D(3hu@vN~_s zH`t`-cHjMFb?(K{;=|as@;aX-mimL(aAs#KS*576q$k+0VYEk2`ZMb+>0~Viw(aEK z%IZ9`e>Z^soma~1oOV0Pt5vtH31^b&I-g0q_2%~bkf*Ose>z3id8gkp@xF zjjr>Plg9$CT|amB>AkI3=MEFb|MAD9X_ID6{G&>hsha& zt!1s%Z$f#UXZ7x(qSUu@SwE-Vit=dj+m^)BNfmVteHZlVjJ(eK4y<%NG;RC19ouF7 z{OruhTQ>qOUU>G9?&l5@#!dNS;?#*VCr-gSFYY{V4gf<5VD*CleBIll3>3&-*NFV} zLPh@haM@?_QvOB7XYx{;&QbZ9_}2J*zQ*T6U;RuG^7RajOg~djn2^(QgQaCJa+vLmZ1vNn;E5F7ZWw2zejqBlvEB&j8279=DkCntpjkiy;)`S)p(WaZ4a&q@-KQ&YkM z!~_P3V)Y@JY2s9^l+u7TIccx6;-9XcwQ%#@ zPIRe0B*U4g?|!iUI3d|Du3y`_b-%s~;r1c$ zQt{H=(QjY-9XR`9-`=?Q?;|7U?jod@EGf?~YS-3v?_c!)6g+z?wZ+%-<*l8B^mQTX zeMsTe4WQCAI2{gI&qAUKC)6pmwaH+@egFC3%NP=qMuUVLlsFS7dJxSrQ1aX zOCJ#YQm^yjiX?JrEo9$xE+7}zk~8OsPPfBY2RR_Q*gMLvg2jVXzT38)KYH@$<7bz4 z?A^Y9(OX%|!$=9ac` ze!$_KW9HsjGVOP_+q=6EJ4_ly?%lrO@Ap3N)xC4?U!A@G{A&Kopxb0LI;|}t_jDl) zwzfn|TU!%F7J7c6)8;pyA$z3eb`eosN}$UV3pefaO|M&=mq)AzEE3lh9!q0FM0uH~`Brsm#rl z(TgtmP;6Xu7)wFvf5f0XMUi%89~jZh8I(E`v(9C1tR(;X@0%PaQ1VXG>R$Feo&AO@ zfPoZLn4kyHrrf#F!odLhem!Q5=cwxn77n%TS=G1Kqi-uv=?;MOR-<=c+Fs$^E3ZX_ zM>vmIyky=?`@P|j@16I^lll=7xMIuJt>^b0+;i{g8Q)#LduIm`g1!e6&Q1okg9fv%>~=^W0=YreM-A()++P$IIsZcDPWMy?69(Z8r5F<*Y;;Fl`d? z-L`Y}O$p}@d(p+9CnDp_MSHi7ww{izp1y&$rmnW8j;5Zzt`6&K z-rcZsQw`4IZ{FAE-F>6;>+^2=HZt$7<=p-d;(4^Hb5rHh__oW-V615E-fcC#JNkXZ zKJfSluFJg}=b5r;9KCy^r@hJ?N6jUBYI^quTtg`}1J#z&8qVzvntj>}ns;rYI_8R> zVxL1)#Z+B#(FYW#PT|;Co9Z^N>D`;4iTV6yO$?1};5_ZZ6{X0fO(4?fKSIyk%mTzj zyWEGdTC@*q3Psi;3k!4hSi-GHlKb(H{+gy1BFfxc{kKXVSCOYJzNTR&5}PZltWVYI zQDuUs-CP5dY^-cVpaamhhNIg~oy;@l8P2n_?N!y$Ws`WuaGb<(NnXv(uSQVe;ZDOB zFP%Tr4*fi|s-Lgiveoze-h+GZKRvr`x9`3`%lv#idLz!c+~3KVRn)pigL)kBbZOet z`O>IieZ03=kja>2PX-?ObK(`7|Lt~nYBp%^pw3pakF3>_x%ou0YuDZ#i_Y&kcX(64 z6|W=ylyB1I6IK^mkQXQ!5ul^t*!IRTJ^Oqdc9G|Dyk2BZos}O4+;W8EU6jN2nvcS_XMKRl`aZ z8+8E?(y5{zb*Ja(mS?Ctoj6oWuW29YjH;HQ20#2b;=fF+%_;uN@mZ6UF z|7Cie_Ww%*b@8u)U$^}#8R{%wnLeiO^a>v;8)h|gRX8D~-Kj(STCWbBWOrHRj#l6A z*-Pl#m~sE3(>+Nf>>{|DU})nI!jU9y2#5NBl+cQ`VP!lKG_5Zh0xS4+U{Y;~8;r;uz(q50POZZ{Fo( z4%t8yge#A^d%4@XMg#~% z6sAWfpHG^(K z0-A`XExdghbpPg&t6$RXw^imimZ*yv;-aHIqKQ|}9^AZeEFAsxaYLq8^Kw-4cVL4hn6THH{XYiBYeDai}7CMLwiM25Y2cIWVALW;|>rrCK`X5Ep@iZ3AX z8>nO+Z9Vn_<_J)0yq>0lPtaLwiH!7vLV2Dd);T@^U$z;!Q z;t01%k~Ec_lA4yACQdO%xM5xpKwde=nLlZTzTFf4ZN|Bm)&))=ydn5>L{0rgzHB@(#}+68tVDJ%y~FWZJUmQ)(KOlA4%^jrscN zy&LBb@7m_Ob?avDjT^l-dU<)eyRDt+`AC;8LeHQGisWyB<|gD3|oj zY1*Z`9%d9jbLZ|MQ5)`vg!@Q}I86_Mk`mA}L*Kr7_T=HcyLax~zI{u4NB#D#TLIUv zUb%QS;H)B)@kt=*&KZo9!p%g(D=anlMBjmg_}mFx+V`mk;oykQ{*)<6*UpN2{N(AA z#}6Oe3%qmV;WaHRP05-Ti#uhoQ%U~bb*^5FjTT!=tzJ;!6PX1k zNSb?wLHd`%g{Miug^Po5NwMWZQPRh=-EdrEtEZ=n)0j9KBuU~##mwTi@QNfPiW3xZ z>d*a9ftN%wrCCbZhAY`JNOoF2;=iTc ziIYwes)Osu!PChHTP0n6eFFp4_UkAy=wBkyvE<0*LCQv|x)J$t@rmgtyMW<3eTIR7 zL|;|Iz>R#Cqh^Y;lrpoBTw--#RXK1$K?~5-5UU$%!&clC??h7K;|fpTZ;!XEEeg`G zJIGxJP;*fS4HtD)Ee;$c`Glg`W=TFNW@TlPr0TFLa#->RbPXj!BXxdK4;JhtQSq^* zCoZ;AG=_l$uQzeo@0~4G3^xc>OkgA_Caq{dr%#+Ll3WGulQdi9i>z(QUACT3EYLRw zDut;`X@(ZX#m5$(J7NdMFq9;T;}v3yuMPrZp{GE_5GImRL<}LHoU%EeY9cC^AwE#l zl?asdA>j-#I~Amh!J^2%02+dA8hFo3PM3d1jFGGURMHlSAi0>p23&Bt-U>d>{F<~Pv z$#(k8$tEckO(28iR>BGe0wbI;sg>QK3rR{q;Kbbhy_HnpO-U@>26>@t+p#s)0>c>j zmf_M3Q75iJC9Xgq)M3BLyEfL=CoWYIuNV9I%L?f3v7N-kRiB9oKQ6$O&rsZbEVFM>b zlcz^ojKuwC#U66lKd|RoL2cMn@uN)bh!4OdM$-Q=E_@tsW#mEw{Srrq> zNmIzmiIc{&(-U_KsY+nl*J#Fd0q5|`aj_u`VJ3-7$T;GyNVZ)mij~AG<+#F%eya;NN17`rz?MLz9ZtXq9rr_f=92=h!f6#?Rd~OuR zI>jr-eG1*LH%CSoZNhFjY*mk_fUSm_kAs&+#jY~|e?*NTM~*aIoi8RaVoKJ=TCt^< z2Ma!BVqfAkS@IsHHWJ&2Zj3T)eZ~!$H{|YchN3+;aUxHUAnDx5dDvXo=In$N(o|3b zn8NO>$vTbXO7n~g%bHn%W_^W5jwyJ(z1P5GHxiSOAdOduE_^ldwyc#CV#z#6mDX^$ zP?GDE$H^sW6%Ho@)+`6c=HLT$02?7*If~qHQ9ga@zisbCT=KcpstaCgwAwIz+o*h^45u7XW&=**( z==!_lv&%@9!)X;^m!Xe6LXL*Yf{Yv-3rewRdAnG%Zp0;RjAx~m>JF%Zge&2%1EKqE zCsEiX(YZN8blt-~d104O@uVlWCel|aDd-9XM$9%OT^g?%MeaeXV7!3g9N-quNr*$* z`I3r$z!qb*s*{&?c?BsN4*TIWiNY>TA+~Ut;M58U?sWTm!Am(BnxwBRb)cmarvjbg ziq@wuD{Py*EF63a(FN~1+%1T6if5r$(;W~?F2eCjdUOX+GJXYYk}mTSx&vrL<>Imq zP|y(zIRYKnOAk9vbZ$X%OoA)Ylf*00(_Soj3exI`wE#5{uu!=K0Z}PM2N4Su48eZw z<5HaH*;HJ5Vmww>h89=)LNKN#+I!+si1ak+Ssv+CqM?60R=~@%q9F`(!LM2*gjvkYk8@)~j#Kx03 z;DgTE7mVmxuPRO@Oa^f((kzvC-(v+Gp+G2vwqnA0^jA@OEY^#Y5QX=$|KL2-39oxp zRh%L=$*5>&8b`SjM7q*&SLK@W(|z>Uq$&BSJGb2Bi&)k#&v;u_@Si1N0g z5e0@kMFjH#MHIbU> zHlY(mW+IWHNz<)uqKO7QI) zbp>N50aIuwln6M+8gQKu_YyIkNoKp0O)@KnOqJ4}IB&3ytAmLP-f%bxSSCu~BPJfT z%2Bd8tx7?UQoKFCVGk-z))|74)KI}p3;LZ!qqT}wEjb6TmhPoY@<3-BFja07w?^bv zC3iaXr-s|x+1cCM**n>Ry^9^ke)zyn0beW5rU$_J8-&%Ko(XGJACo7*X-sa8_bRoM zv2GsFWbzo7(X3IUM~@PZrlg~kN7HXdkHY^ujY4g6l-p>9QBwwi!RIOfEC8)cSHdV9 z8vqPm;5x#}q_=N~?E7_u@$8(dKkLdB|0@#w<&XPK{){VEocx{ehmBwRUs;RaU-bX9 zzFNVzgsO^zXKkY5@KD0NRP6VS$D{;Oq=XUnK|;9KU41sEk}N+@&vT{GFA4c{{R<(H zTlPx{CjnhKJOeKipGwGEHy_Ve2=gXgTFsD{C`tK*oWsSyVKG=pa6_j*%*-bR)HD#f z5^^3#iQo|#0J{3a$QEWgt}7mr8)ASt5@OK8gOH|!2|2D`l&uJSJx`L-A1wFcX~imS zASUK-Ab|8%B81J4{s%}LfITkzPs6S^oI_*_MAAOb>n$#6N_N2x@(>Lesl2CrAd!$S z^cAZm9>bgoBpP;?loXSda3=s>q7zrKAt6S>2}FAqA@Dbe>`GqXFaHa~1ADd0RI-Pi zBOwf{u@Yju6YMbYHc@vZx$PndUT>NZ;tKhsT_?oHV}zXHW`vk+5m#@23DI1tcNL!C ziO|`2;+5Qjs}iET36e>h{}De<2EvQRNr>7eP|1scGej^1_v^((V;8`E@&Nap7|Tfr z;4x0lIDJC+E;ZS+;#3(n*gG&04^Kc`jIV4*wg%(XwC!RLIRv6s@=2t?$u0z!n6>c~>U91L@?kK4j(JY8{B89m0-7fu~Q2lZpDIf%oz z8UK*qd*a1_$-#JnVG#ViABppf=Tkj95Mr?WEi0P5VhlgBCx=W|z2*f$wG6C*i)bKr zm>T>^0#(B#1onxcU9TeCUI)e^Liz!iKOk#tR&WCtr%CDO|Jp{b173O2i*Uip{u@;Fu=lI`qULku#k#SCT!|#X zD#>r)8iH@pOIDqNTfeN&2ris}uDHSwXB^gDawC|e>faz;^+%4wy&v2_!-@PQT*C9O z?6Dm_!p@rLMzeH?`Wj?1i^S-q1;GpQXcXD5PbO**96z`$XP91R2fgDmMm+*qN1Bwvd z$PVEra|yA5Kw_aw(im^vfCq{0fH?*L&OV`lUBMY^io3;llB#Okh)L($IQmZG#_r$H z3ls`7@vI71;v`U%19Qn97&G^OSBa&AaBP*?he-eqe>Ez5kg>78192ZfNN4xzCR_=W-oqcKYL$Ci z?1w{x;%Mq>;d!%NGPN2NYYN|#i{mcjUy9h@ zp(}0LwQ^UUA38pnt!=}nbY&*ai`CCNnBocsUPSa@-yI~D`N2*dTF=s$u z@};_jO*N!pW65N)9F%b#P_Kynbq)Ilp7h7rxNZ%bYLtkbp#vPYenzoO#Qs!E#BPj+ zolUP0bZ}iJ)3A%ro;8ta*wiGITL!aJ0&N@w6v-sN>ua?A7aI1?bPCz*mVo)-4qb4E7*FOq z{RCEX{DnL;*5Ky{eWWmAbH9ojms&iGj1sY{aHrJ@82IBt~1Cb2`C8GDB$hjXvFN;bV6OibxU~t z72%p9Gi0C{`RfTILqh^ghY_8yfBV4siqHcu}xLl&9YG~9bCDXN}HEKmX z@6O?=fdcTQpvZA*tI6YOG4O5AZot#g(bW~}=H;MCmeeOx>&vkV z@|%I0s)~xLvL+}~JU&|r3I>#gf|8mldKuRq#3~F`Rf!5)RaHe*Rji_>tj?h zRIMzB#u2O~<}2}d0zOkuV5o}7>MP7Oc|tvBU=3-e!58y@?V&}J}OAm&PVVy>8{!R2vze3*dyS~Oyvagnt_$J8ltAR7FZ+Os;aKVO$#xPRS8x%Rs}U})3*uaQ(_&wfiiJFKrrkL8L^PM z)o1;3ELj&D;z{{tQ$%Daf@v6caOAiGa}E#B+ADSk>?;}z_y1bry<$x%Tc$bd=gEoD z{=(z)aPm`FrWXBt9kBG<@zs!+<`~UXRBgLgCswB#tX>6+E7Zg3YJtrhVziC|mZhyS z3yJmTu9ahNH!499<8LK^@itQ`e?5)h2~{uX+KY zWN!A5c3yh8vL!0Jhz8csV2lP6Ni{W#MWF&KNRukZs;QUCv}437hvM>t$_UkGvJ%;Y zq(;~xDWU4#I)Ny;3@x8fg#}MHBAvYDZ$)2p}vNM9VnoYn$7`o zU_CJVwP)by>ET2udGFOP2|i3bnU~IGlMxO&q?4y_zNRd}xS` za)`2F!fIKkxT{ePK#viM&ttd%tA(cbnk@j+W#t78mY*pjARl9@I1o&Fu4Q8YT+cG| zJlQC%-+YzgIR9dKb>qQ0n}N|J4@Ek9Xnqv{wQe~8-2hy!krMiZwxKdM08{ma44{0T zsDlA5u4)#S0bm6vL@>cBFxdtiM9^TLmLt$pH2OOtpsZa>p4BRr_rW82X5jL*+Ue{D zCXeObKv|h~s#Q`}Rz{!V!>sLC*vMdN8Fl$UlN+u}c$IZN8pg{MANr7%yMWou?zb|_ zUoEU%ZkeNnmp?x4lfBtR0dvd%ZevR8l$VxuI}f#5vT7&JfxYNWV(hglUV}|mi@9cr zywQ=l?E2Rg7g^nQ0LA3N7Id3FbonYxUafqYq$=xmS$QPi8uyWltx;`J05MJn9dQn> z@EWvVQ~xYdDU~<-W27(UD(bN}pq3gTq_%=8gE@j$QFHUW*?M9wv)p;>Kq*EkP}cr( z6eXb^n3$P%wNc&z+PeIKm*0 zfU2gEK#j@f;1~J=N!gVcy`e4~UOA4;4bhW%d_G>N_(rPUz|l718Sn&RTyC)|TecPo zMVyMu>D*&zF6gmM-o9iee6v&E|;NDjW{}Muk*a zgY5ze+D2TVp(azp*1+%S6#D;)0H^DtSAq%)-F+yU4%Ra^HIbS!DHBsuu?fDnY$M-BT&ZNcU0*)%mZ!9@BWW>n#sZ^30Ck#$5}lBo=rmP|9<>9dzpK_Czts_{(w z{-&jk&M<&{&T>Q9v`8kKR-)kZ7v#q((8p=HlZK&nQ`QrP7Ei)e;TtHb^3b*Q;8?kA zT3NWfY?*v1D_f?Ts&Q~>$lzjED$|`OR0E9JC=*U)0AUFuiS~MEvRc`e^X&|O@_Fg+BdDh+FNJuZ$Yk0C2RK3!fR&X5?i}|PJ}!Y zpQ)}mp-N_ka-cn|B<;nZrA-q1vO()Sxq>586iNn3fH5^r3d%wDu$e5SKtcv%HdZ`J zzR;G$1LTq4;l^dW|5hQp#lUEnhQqmv2r4GSr1)?MHAs2^YAd_K+kJSi1q|$~;m$Ce zjD%U&Z>PKlog)E3xx?@Tj~8rC0rubjLu+IwFf#KM;5jja=u=>O`4--PS;4{uP(x4@ z6XUng_70e!9@Lch!K+Qs?BV!nWGHTSfHe;8bJ%LHz!()GTTsgJ1LqH5fcv3aX>lH< z%C2y^gu@}nX;D(4)DTK?z`lAdP-<-o7VsB^7Mhcc-KEQ6GU{go;SvEpnF2@9z%wvI z16=^lpMpgZz#|2_QV8h*xVcNg?ibJ+g|Jy@pu`knKSGb125=3|!sC|5Kv;-ib72MI z4~ClrfyToj{OUd!NhqSy9-oJ@1(t+@atyNi#O2__4Gw|iD9j+<^cqN^#0<>$;TaZbYqtKlw^cLu}F zdkEVBvm~VJ5HMu85mflVDV5x1F`M2fCLP%WbTrWbNxj-1pNujY+!x`|al9edPQZX7 znEZ~ES~Ga`5wog}iYnVhP*D7UM-*J(`YxcwZ9C+>jF7>w2Dt<>G*T&S-!|;SMtU#} z<=6dqp0_#N-iHVAXVC!!WIYT(J+RmYH%9l=L^oQB-@1{w@t$NmT-*Z-NZ~DPc?UM? zn!m#d?BGXWiVoBc9`|O#^5Q8g$O-VwQBXB7SJb0rYpjq5ggU@ZxpiOi8t)cVgzq{!tt6mMlZo*7!J6xtV27^ z-P8EM4S>fpA8E#H;w zSHw-xmptJE^ekFG1J^&CcdUVAkrFP44@yD(UT?^M4dyrzSHovSMq?x1#G@QZcTm0+ z1l>)*2$>W4bX>%QOVyS=zgP~i~4gN zQOVyS=zgP~OVt^b{2hYsH|n`mol(i(A?P-&=Pp&RqUTa|MkUu0bUQX$&@I<e7-eOYlE`%yTPLIOf^Jb;P27O^#+YQ8p1TZ0xbCC%T#Uc1BP#jpg6>6Vs#~w1 z+bBIZ$xPpdrI&?zE`?FapGeK9j3H36kV#GxMW(=Wuc@CVslk}jLslEfls$mV>I15C0z}=p-lh}r(Fg! zO^7O!bg8UHX}Wo+>3Zq-_%t`L5^+`L`)zKkX`!RJ%6Eg<3sBZo@o-07*A+!oiC9AE ztorBjm#>8+qo|7^$--uq#ykpl?+sd-2~4WQB-bhJE&pWfcoHp!iBCrr~nNz)Y z*lJse^wbx7yGUJGE-ub4VkZ`cL{p7YbjQ;H$qJh&r6yL!EFmr~nrm8`>%kk8bXzqb z>6Qf~XAvhbvl0pMMh|a9tVHNIJ1PQ_8>{J3cn@ARAUOk1%^6x+ny7Q|0N)rywKRqK z-!AKxq0*|ZQlgqBK7+~-2ICQ73r!1iOA(aCBBQQL)i3OpNwIQaR}!ul6EfLpL81dR z6ShSCgpfD(V|+>#K@nkOl%RB}FYO3$ci8 z*@Ua1yg^m9x|mDV6?iODb5YZL2-;GYxDCs=OdTmt&A=G9)_5W;kBundu?#4o1-2neWNECwk*6Yn@%3n}$pj;qWsB~`5Msm8RW&o<@(lPEB7ARdZe^^G`=3rc7QLk<<;nMmG4`{bcwhvs#8uHZwiXHi znj;iG(+q2h+s1}ABK*Lype%R>M#`um8RFLHx508nRzl?^vvAmAXDC<-IsZGs7f8(& zMV3wUl$M{{Cf&}a#3fIVdZrVMAIP!R2RQEn}=?VWFcH>yCae zG3Q`MaXJ;tVvH406qN0iV>{FWmInhX=T@|X7(2+=(!vC$#cCMQElj(BwGyRvszB1=m}eSD%FdIkPxWu~Bp4`)UBqZ)K= zwG~5{G0?coDQM9M{a$2l2zdW*sctDT*OPmh7S{qjPG-l#2)0&7riJSIkY(DdOsF<6 zLWi(4X7k8?u$G9_WN4NGT@!i$<8&pmG>85bz*L2*TN@b_;8s!CG1I4k!Jnsl9lv9SyqV*M53lOo4SSI*D;ifb$ zdK=q9sApm+5h>s&D`Pk!Ll%_#Mgz$7sHPhl!`!evko7KNpd)KsvAGsDkS?EY8H%oh zg$2xMB(`aJgK#Ra&8jG(HZa9*#JXFE zbm1L!NXFYqq+wx+-_hS=ig8sjS}yxnM=lqmO{!?gJOe{Z8Gy)21TEt%==P;K<9D)u z*q`_)NbsuUJcW)wsavGR0NpCB!K25U*j!13s{vmLSc;s?6=YQDMiGmcmN2CnYCWLJ zm7q8&>YL(~mQqG!3oDi8>$F8{&DF{p0GV4smr6*v5?ohUay3Z$dLe5>ynKih2eoKI zS6tTCG)ubvR?0%T#$7&LP`KJ^02j3~eN!vC{t6!D05h>IqeWKSei2ZBXa^X@Gi%t>H#hfGnUh(FH0(XnBj#}gS^tJGGN&U znl+e9L>!#yMet`ivOpHFEz|F-iOFTr&}G0BeSnD%{fb*FHN{G!SIICX=9;puqd(#s zbi1D4giFiwO0>fM6pSpe(yBBn&7A&`nlteYcAJGMP?q0}tHGzW_rLM#EC-c{Tx5V! z5!=F21#W&5AVo7pNf+gKb|+{iLat1#GCjZ0HK+Yn0hwDHfFBMARO#ut2FERqu$n4= zS-^6+gUMjq;P!o$wo(#G%IaWsc zLUooHb8rmsoE?jg{x5IMuc_$>?97w$Rk%10AV=Dh#AO$Ddh#;VqlI=SdYRWS7K;3C zcp^aG$kLJ~MIkGCWa2u>(p-RReRmpWf~f+ha5v@kQ~>kG75E*wyB;;>LgpaY;~ zo>8;aOE3COIS1;}aV<{rOxc1Hf~oYymCZ(*e&lmHTq>y|!?#&0o)B>cPkP+yPoO+NspJi^(~gU2#btfI|-rA&EnvyzFYK#`BJ^?mX0ZkDU=Yw*qL)Zj7j)dMy7(Hl{JcXH%7pz`kE zun9$YM~BG+K|i~SY+tUh7mleGz>MclP^-#ZN7zB<0|GEw8N-%c{MB#ZAJMq#f92-Q z8#nx~ToqqYx=yR>0RePiGn*FOF(>QF<(s(;NbN^95)wA|HYso!IW`zonaG`}W-}AF z92FD(hsgs*4WX`(V?*tRO({9HsF*zXBM9{}M~4R}wJ&%{N<2;y61zXESUkXC$a>Vr zJ+IV~+FQaiRKC}fo~WT4lN38e5Co8W7=zdH1HmU=Gv;KV)c(!^BSxes-;Kdss;D7{ zqb`myiG{?Gg20<7PZ^LyD7D*S6m?Yv6ZJU{d@hs@WQKr-cVCD+iRZmQiTnW*w!j!N z7FIlXoE`}R|3|@jqoF^_kh?zt!)+Ac5rLzi_@!6_*ETkgbQy-;eH4Mp=9*RDR^0^N z{}_LSjv*Kwc?;T;gAlq0+P#}K2X*{c1e)Q)Ag*JBMF3tVjR%5e{$bddjKR!-wCcAE zP|fZGw}`R|25>LKU`%r$g)pYN1=O_LFuUR=)lJ0DI$r7mb5V#LiqTF?Q!<@`^N1e` zO%cBjZkbiug?-IRX0C#789**n#+L7b^^FUIFV6 zei#N(bBxI(xQys8X!a_o+b=u>D-uB$!?ZQ?%vgwe1}N9dDBSwNUx;o4BpdqFMAwYc z0Mk5FL7~&cXDIw1L79CxI7|Wud{T9%S<~~v*eYYD>?8d_rR6mECyxVd#@)ccU8a_z zZgCvgt-`*?XSB~4|B|$3{9#AmaaQSLDidY)F7$On$z2skLLojo7iIS0VqkG@ks%V$ z&Wuq&P1BJK1g^Fj?#1oZ6@x)2!Q&IOT56BJu-DEo#BL1xo?4rx>-x?|6_m+hP&!mXLeKWH2SPTO?XSD zJ37Ks;G%qdYac!#iGt+W@VFap_>G3`$Uhjgk-u>#$ilxq;Z=$f`%5?;ObgVi5T3-6 zA8Q$b?qjC^R!t2bzF5@)K9%4Ro?sC{b}FbwtpooZur$0iTw4jx)}XjP9;kyD=O2mT zF2ouKYCPb%1{Da~1BZ4&r< zsXqYT9=@Fo&+b6`;)!6{Mt51fGN-M%)!i;QEKKo^wj=E?XGdWjDU7@Bi?|;N-uD}} z=l4u(2kFkT6Nc3UaKouandClRiyz=0*qB5L2jXqBD~_*c1pxU{oWZP;tx;g#>#Q6~ zyfycb*CK%5iT5Hr-0(r&o-ETvS^N}+qr4sjMWN8Vq6+f(dpt`TorF&ED29-%C($Ud zzj>NL$j8h1N5#>{QA{<@;L#K@XP}<_vuFz*pn~>I}`=>{HH;|FA~YC z077oXSD?$TEnn5w@%r*vk{%OX<#H=yeOP1Q>J5`J-2YuOo*`oSBMLeK9Fzi^tW^L4fveM;rK zUM%QYCv>$hscN69e#reFFu$)GSd9Kv0qcBE)%k7Nm!rRv0gExqTP2>aj1paBAnvj1HSzD}T#_P>Y0R|z!Q{&z6=8i8-H z|L+-mg}^u2|JMxaC-9B-|1E=h34F8tf61Ue0{_DPzhh7jfq!NHUoohgz`wNrZy3}` z;9uMS7Yynm@E!KQok1N0zRUhMGpJ4AJMDifgIWZ>+x|B)s7c^Iu>WlgY7qEO?0*x3 z>ID8H``^N#8iD`JK7CpXZ+9E>s!HHLv`_CR;l@KFUR4PEr}hc4Z5)G20{^jnk|$~u zg9-xwwS9bGvT|eYT+0dk_x1_d+n6ROBk&{a(=l2N4+S}aA7h{3Mty_hKt|vP*(V9S z2JPc^YyXDszsbLU{noG>B7q-Of7}*qgcGnBRKr^&|F#KAZ5a(Z0gGzH9?icd(39C9 z0ZKj${;i3xmn&_U06u@^m$m@zzy4AJ^#1R!Bp};={)GhO``^EgfZYDC>w+@-zl=b+ z{a;0(!u~HJP-*|y5U67Rmk_9G|5p&GX8#uusBZt~6R2VTrxU1Y|7R1ZW&bA=sBQn} z5~#!ePbE;7{hvvoPWwNRK;8C#9)Wu7|1<*i+5cGt>b3uq2-I)?=Meac{hvbMYxaKz zfv?*C2?V}w|Hl((!2S;>(2)HfO@KcC_4U_}y*H#9-Xi&-1gM6$NPcJ+P>tB5`H=)D z@@olDxKa2ky8!L~QUbL7Ur9h_{}&RF+y8Y0%IyC#0_FC96@d!-zlcDk{a-_%iv3?g zpsM{}L7uhW(#Tpr-wwO`w+jpG=^({hv#q4*NfqKwb8KCV@Kb|3m_H z+y8k4>aqXR2-Ii)XA!8^{!b!Mzx|&>;4Aij3W2ZL{}}|nYX2t?_`3ZcPoM$&Kb$~A z_J1^i2JQb~0u9^$u>=}n|A!K2jQt-;pi%aJAc4l&|8WEwY5#{2XsrDoMWE648%F>J zl5cx8-aa9{8*!eG(Yu(G)QV}X|BKr3ul40EA%)!<6czbvdMD^xH>A0IN{E~ zKOfZC7uDE|W%=0O6OCGj(9)p(Q%9Nq@~i*v_VLd?|0l26Q(Je&CnELp)@sY4hX})a z!2k4RZ>qq{6Aq80z;87E#TK6zcX)c59S6PZlksrOt*fqK=N3ot4VoVNL*Z_>S;Fq` zGLLW1{$qvP(Ufr85Vhe&wthjqN=Fjp zSn%lXwsFxaGo#z&U8Cv;;s23$DDujp;^SdYyGzcw)({CR61hd+NG!V zM|9O4N%<-Gj(e){%==Efgb4a@1}Y z1obRj3!+wvNA49*@$aES~@`q$qIMdBM&8S=4rjJG^FAe(Zyz83%6H=*lJ6qj2I`iZGjV^J9uOpg8 zqz#&4kbZ?9Bvor-^t`82*QqTgI6;p3!|3@BqbK&sItd0&@kdJxO^&V(RinhcpI^#f zYWHQ%&{xtP!Bb4`A9>+_;Jj4ocDz};fkMhRX4}Sa;clJi5N4Z&oPSum6^(c4EWRq4 z6?*S~iD!7i8;e%Q3>GV$w|h0QsCDW1_3e%OZ7I;)e6ug*e63mYg<-eOba&)yUYnt> zu}){mMdyUJpHI$hcJ4Kq-&xw;!Dil3Np{m~To4p7*Hh*V>zfjTGH&aW#G9%->CHGkrf@ZtLp(d;eR> zdv6T?(zC^+yEEMV`aI=^?wmf;djs2d=gs5ieqVlc<-jlZVyNjkOT#b!@$BRAwkwhc ztjYFS*3R)lzX$#YcdmceYwy^PQ+DTbJ6#^!C-lVf`D;vsXF09+4g8R*r#mQAY}hrA z@6kJCP17+R=O%KVo;$H9`ycD&W2ep@7ypj4dRhOI6DKZHS8vW7E^>k6`yM6mRIU#z zb<#TLzQ8Qt*tkL4#-HG}Urjl__WpayZ&#mZXB;gyB0HyDA4g&o1sVeuSp`q}l7NZh40|9BAHkO&$5MI*%0mdi?C zCQO{vca9{l8NcQBu-DJ-v06L-_V&$8_6fsX{)Z1e06Q*!faB9Wu`=btPCsF$j ztsF4re}(IJkL$&|%h1o?EONZnL2W8q+I}6QbI64=|MS`8d)A~4_vqR@exhkcvjGz~ zg)8~Y_u+Uvu7mN^yHB6LB4aH4zJo_ldSVeLN)96#U$S6 zcg|^Fmow@n;m7{>eCbiMm!r7>3msSYGn?D1IdwsQ#k@ruy3QQu*|x1<(A(cfBqpma zUu8Le>0xjC#}`_5A7|ldTh!sGUqat?FP`1BRR~?9A(pn^{w&S<{+6q85i>3Z{bBcX zT#wgBOsN+NVfW?^4V~jCS@Gz#=Kgl~1*)vheZ0+10Q;MP;-K2aUkG5Ax|`{aHh)0MYHY+vPZ#5np&Ob|8V^2{*{^Y-wh zW0#z4AA8<9eVyd*hab1MaP8Ug{N}Z%6tY$sF5yP!u1(8zonc~Qt@>fmIi;nepLw+N zSe)3d^q-9VFL$yAgxnKNWvUHPUw>$YQSZyEM@w()4$5ERuy$ydL!QCew+}>ib2Zrc z-nX}v<`ZUoPZ@OtaF`b|tXPhWO%{2*$`O|1hr;uzD1?Cmp;b?3;rUYf?8 z|C}^(yV)GSzXq?k(q?Y?@&*nsI`^8jb71?a z?)#2<1btzz*t%WC&+ERe%9nTcmsWDm+&dez@uaxtt^joxmDj6#9N3j|k=h-+@1=qp zcUDM?KYzPpH_>)Xp+eq??)I||&*;4SCZlcO?cnqsasGk+f3G{@@WN){J<$T7XOG`VI zZfpM8WQN&+jNbSMfnOcixOozFn7Jou6#O3G_R4 z>Qr0L--_oNZeQM(w`vF24Bzy$(|pf@0*?#@jqyIO_V+)k^*+M#uL)}-CQRHi#@Hbx z=wz$7f!C?gOXJ%=aAx}}W5eC&QN9N*bDACQe)hy)Sy`zR~4sUIJ_2RH|TZ_~VwC_Hzl~bBOnSD68 z#jOytz~xPr1!YG|IrFAaXIthLba=PY=Hq#3R)-^2V-7u7{7iXsX52)pOx;&^S{K?} zE&fn^`RUN53tQ`V?xvM_qIXm%<5*zYrXInEc~SX#`;MrW4hZ~xpyIY6T>q!76i3Xx zKKtFGVOx(F{1ZR$(WCel`xKq0vW9f*Jx{Co{bN^dEjRpgs((;nrv3f4Lma5x)VMq1VtcJ|g?o9)}|)^hoG-#Cz7qp;yNn|33HF?CF0q^&Do6+tfXc zde`cTlJ@YS`AZM2CEW+@?KFzXY}$0rrB|oUuX|KD{m>tGQpX9}ue)u0o4u#q`s;SS z7Xn4ShP6{0(AIhIBq?cGw0d?z&tZ{+I~oM^qSjs4r&jmc^l`xXLhoZAZfdSAIfl=q6m5e*|UkzrzPh!J1SKJEtf?YOU0A2G%t&WCoaY_Gl@H<@1Z%gX%f&@d-c-DQlGZeg7E` z^Vs^rP)Ft+T^zu6G+_Z~uTX+A?YEI5D@B=8w`lp30~v`lLEaK&%w>?q7zUE`0Pi zoI0tMR}X&}y}62u0uz z%6O(?%fL0Ojj9z&5ov`0mY$~eNIie7478#y=SD60N+z})-gGJ2cD*Bg!TK6}yViU$ zek%j(%6=vfp%t1bcw*&3I5P_kM0QupSIfigx?uXOSU%g(ypY%~8>`pu_|j20&g9y* zY%YHmDzjJlBafOojD*lkYiqZ{`b50_BC0^GU5=oDQcn0VM4-7;<`ta`N<~o$Pq&os zauES=K>R~)ge`EYlEQ3Xwb!sjJj{{(F`!8}(X&-v@_;{uy+VPOoLu2cXDTow#hpEh z7zyPe>Ru$Y z?`9>Hy>1K_!2)W?bnD{E8!AhRQI^gA*6oSf|seb)p8bjzGZ!CMKK3> z5$2)f)y95Sh@!3x&3X|Z^;{n%PMPN9j~g7tLjI$%=Z=1QL* zev-!}7Kbgk1Ldf4ktGn0^DwptJ~s)<;vD+^7_>pW>QRJ8<`q<<2q z3ihSY-}6D0>Ua?7xv0Lkd2P;_lt9EWyFzEXcV&AzA;?|!2*Lr4GSCYXPvn0VOq$_{ zmZ)3&itgE6_xk{N)ij5vSnQd3uRQ-N3k*Xl=k3AblyFB|gSOb5L4rrH=e;L=7$f`) zp8Hg17ntKlDUP8NoLawpT8L6>2wMLi3dF6_XGr!l+-%CNH7h(~%($&(Brk@X~1f^%%zc z5S`(&cU`_j#fZSkmm)GP^_`J2IyqhJ?%AByOK;`EDrhrJA&qgs9@#4j+lvL+{4*aj zAs`y+z9|skh$2?~pbp-~`PAeXOqidQ`Eo*O|7u3u+4EO9HScEhHUIYiS=l5 zXVBQMU3I%da0lR{$j*PRbI9?wM`KrvQOTLmrx|iB->sqrex< z5+TRZiW($6PpBH{nGho0`wi$Dm>3snwE&bKq&!G2o@h=X;z{j_HzR zcQ=cmIb^p~1o1wbyaFYAjKm+EImmC=Uv`f4hB9;5*AV`Jxm16i8eU|3uS4!!YnEmK zd_Gf0BuYFe!vTak4p!-Y?|#Em20GhNq^R#R061ZOsDNGs^jb|^QJ3zJ2S$nWj!=-F zQH^`E2Bj4nlL8?|@ZdtdUR`vkX}LXw95h@ke;qh_ zrUcMrC`qS;HH1l>1QhJeY>>UVPV`n`S1nqWS-8i+FR6d7fdwow;Q4H=vqfHtS(-&@ zdBhPIV#Bd7ZXRStS>+y(*k;68PU*i8nB-Se81yTzHw%}_mx=(V^&85UR%>9<19oC? z+r&b$O``H66^{X=q7F_4_&T2CPDnZyNs(rN$J|1ioapQzC(dA*FveUkX78 z>>es$9x)fwb4o=&bN+R8aw7|(dyi3G zuPRa@T&?O3!o8R*9?q%C$UDjkH->(gn!G|1?vCLtjcr=ct|0wd+>SmHlBS7LPSa#l z^M98ZLtqe5WG0Say|Q9}O;8gcYPgk6F8g6nnTFc6$KgcB;LQ)f@WQtHburYJMJ)kx zK1zQ~BJ=0=Ls2F2B!ABgva2hTi0}B2s{p9IircR=@H8t2muJSCHaKbuo_TY)P4j%; zHz4)o3=d9NV;P~wKVmE~G_}^6jBJ8m(J&ITQX17Bde&U-X z9vlB-xQay^n=Av^jDm;&w~0D00_6kY@_$-HnO#E#xqE-) z3(ysAd96u^7z|UB`2FdmxBvhE08V#cv~TE93KapuA8T%RG!LEC5Rhxw!M1395Kn*h z*wZEt4K*0icVol>wTkUZz%$$Gt_pEV7)s9~A@>*0&)OnC4^*l7`bvQDrE@T=8fB_% zAKz6iqnJ(qY2DN(e5Gf8ktIk8d+gJT8wVhuIaD9E3#YeUFR#m2AOTfsoJ{mTU+#VC zxB{Blha3k&6-?>qeLI_G?%fF+43vLsjpNVtY?QLO(?h7LnqDEU;eJkL?8#A@?`&rD zEXAOxO=7S|tDO#h#b7|8K$Q}U-Y6N2s(|A(p{R-aSx|89QH(fO1i8Lvqngv6Vr)5Y z69XM=W5xveYN2xCyu7sWufXt9a-z?=w+5-6PDbkZS4#=J9G|FLfS2=7)pt`i)-?tliW4uO=-QN+}LkUen zNp}BRnkko%J^YimT5(jR8{&x~kUK<@Ek*Hs7ykbL6I|XWzax;&Njd9Q=xD((5BUEg z9p$O*!AxuVMmWj`Ym?I(rMiEBY5#_lDhe15I3OgRIybg?5DRAG)V;7(c}lrduvbTnW@3aJ57AM3jT)Fvgc?eaxHhgIsv|=x$WdS=iPCO76_g1(=0AE z$nh!>gib3Ah>LAka_Jtd<}xwswEj`93I7yz26?nK54)29y%2sd(N}+#@__~gP8370 z9idO4&DNYU-hDiVmt+v`787xrAfj;!XQt-RH%d^&bHk8Brv29 z^UL&_s)qV;`5_w}>+z#sVyFyS+G+-yGC^xHD?ja3iCu38ZlarA!v0kq^F0GzG zsw-+lR#e1dLIf)W{AKGH6A0({n>S0ZyoqO~9!B(?k3zX5_0E5RM26|hibX6kEs&sG z)CyjDBzVk;_%(W9Uo*=yBq#VOl)b`{qxs?Wbu0j3S(=@nprWM*Gz#AVsWls)6wVk5 zzwMk-0bwHMOq=#y^&Z_#<5m|1RRgvxjoSB5B8HQPdI+p?1V9d^TidO@l~^H$WR*xz z`I_{~mjX!iL(qSzzEqRgaIjP42-~ffBxrUE_Qw4O(KC|x+MlB~e|ONAy-ZzAE1TPx zqmBhkanKnbq|M8uj4|(fLIgh5upox_+ zF{K1-e0t6(aF^t59qRn+2K(vHIR}yRl*{~T1fIT+JZ*o+p1A8HdEe~;&VkZ6@0{eL z#f5<@d*@y&M`4U?jvE?i4qi4MW6!E0Ca!#IxK@1qU~v-TN6Zmzpf+-3_Z<9a$dCtL zLjw^X>e&ROL$_tRJ8~eJ$@t5tUZF@SJWfbu$`}wcgv~hUoB2Ir88M=sjpI-i<~W5| z>574!P?Uf1;np71BAh)`>tC%m)XmD5SoZN>kcetZ9iNnsDjaPXC^`Jg4G)6^fIy6Y zY&#yUd(nSjm4ac^$=pX~VaPn78r1T>rbOV??TLX@*!p`VUbZckYSN0y6&mNI&8b7R zgZl=xPr+J)Vb=ntNw)PR4Tr{G9f9S6VDm5t1WSJc*&9c)xjoeLddYLXx!3gY z<(e4D%PuBR+d!KowA3?MEx#-xo1Mjya(Wlp$;5XvePs~l&h_+mB(8ml20d>Yq_>0y z(vaKSF(Z@?$p)0&s8)Yt!7JGV!^bKZJIsDd$xKY#4D`R8rvZJ4}RrQ(k+$(4GtWc)~*Wt_hnDx*55I5hCq6ZVJXBwKKaycFz*m1)|kG(L* zw}5l}tuo&Z*Kb)NvenHq{><;?q_Ks zMg$GpRd&DmImSk?STD;Pg)MjM^s~1!MVsyhO|BU~u%jELf6?dfaNusu-w~UX)2syH zVi$;sEG)QJ=i$%I7+8_Q%oDeyp1$a-tANKr6ly6Ae7!FjKSsFj7^Dg~Bgn6^4vK%c zaO)QMF<(|al45Ers;U(EG4)oSmuRypQz~ObS-3F~4pk1o9|73Ej)MXgG7W=PgD9Gy zScJK&roF7b>3xhjMTG8NWnT0tcFSFmnC*<0&6nmDj%pbbk&r@YXNQY5mI6Xy2i!`# zTzO%k1bT!MM&|2ce`l|-d9;5l;?#dO1(*h7sq5>IScA4^&hkz;D2fs8Y~ zSWrsng3@>j&I5SReh@OsI!|({QhXzE>IeJbBXfR7^BPJw7+mcF2ZXo?$hK-|9);Oh zh>dMR#HEMthEz@=HAbIxXLp*O8}nN2@L~;k+6(RN;9`;#ImRbth`TWb0=|D!=21*! zWFgtu$O6T9fB-OvHGJX95p=H)V=ZYtGq>@ckf*Ar-k4GN=*3DZ6;9Q5Qy0QX040H+ z)D#Gfv}G;57L3429@KJJ3#v`db*q)K9G#|6G5Hp2oX*0(`xRUSiA9SIIF*ifkIA?* zkMvi(#k76n{4x;} z{fgzH!2f^$c|>vmVHcppxG9<<6J$r_+H(M6bk z|14L8?3bmDG!wj}i>s@Ji6(+1&h{N-&483#Iw^9kz^;4L_^ut30bv9wyK?==!zDlk+Vg+XyqN!e4HxC6B^m7V z?#VBs5?5Eml+L39u0TS31`@B5T`~Z+43N0aR8qU>lwSk2nH}peK&FaC5P_IWHJIN> z=n|J49BrQAoEwUo(PEWhFmvq7%wr+Dtha2Il&n1KM;W9jHsq2?B$7!al1U_zNxK)c zmL@t?Ni-^{KTUr!Gtcn;57^Ct0=SCqz;lwHXlE}AKpLw+)xw$eY^Y6Tr5na0oKvAa zTjDh-HdY+8BNeBvdc)6{^*~W~$i2pZMcr-!Y*oBA>FfXi00GLf-$>vAtADJkYfTgl z>7Xh*#U1|TAPrd;7IHZVwiV~X!+utPRZ>G%8iZrpzzBbTMg_zAEF8@gF8gs!2nSUu zTo6@~QZqY%gu?rF2HC4I1ZjZnd7#>+SJ=MZbn#<#m9)bpNGznZtgCQ1p(bLe!1~L! zz>^`rKL>k=oQJt zGIe1G9YTMe^mMktPY2JmfrwcKve$RCtV&nf>xSqY2FSxDK=B#kS)y7RbfRzc zDDR~zWmr)+wbPulV=!>8odZ7I3Rkt7y!fc_^cH`Dl`tdyZLM;Cjqod3Gl>gG zE@?EGG^gG@S}P2fskjor^b1LN;;9OJfrS2!9q{2KFEh(VTuMQrnfR3!Rk7xhw$c&w zr2~INmJv~i60`LHME`7{Z#NqLkn=Ui1=FaS-#iZ2^=R2nEshyGUJV|6reWJTZtXZ+bpB zo_u-{_GetJAb&V?K-Fbq0UEvRP2ozI9ie|zXBcXST}(u%E;A0%zEh5fyj$gFe1@7K zk9O{pH;1QXxPcaK_V5}FUgKc#@N-b=d32c|wSn@}GAb^qX{AwZBL~Lb*4111a1#xvaxKst#C(REja58 z_L@s2`%$!wBmmH?b}1-v#D#5?1Mq+L6e|9cA|_Y1+hVPDp*>?vxUkTfizv6L|897W ze#6J-c6Q69EAw*?`}&}i2;1D&>s|)H&P|xxtRJV4sM`qZ;6Or_Q#Ua8uG*}m22`9T zxOaS(lbCY#-*{cGVva>fkT_}M<$ArvX{=ycS`dy_|A0T%Z7bV}i@`p6ZuWm9B-frL ze3oDJcndK^Im-xXPz7cvno)_1o)taTgJL#xf!I!=UI?66z#!7NdeiR*UDn_-7!cn| zuAAzB?i@F9W5)Sxe%<4ra_msFi?bZd>IZ1b;o4njU6GtAgdgM-ySDWK7rxtFqkKy` zSCK60?HfuP(I?8yJcO;thJb&tusAUGK867M%rcyprTpT3CaQmFL(3(@J4B>G}SPj^v% z!46dG-+YeU#?vaTp{~Ryp zLHSgLwtwyThWwNEMJ322#p;F`l!3W#$ICa&OlD<}XlT&(#4$KqxZF(b%Zc1%()DrU zr$ZmvDwewqy1GBgdx?YMK-9MTX49li6)pwdzy>T+$%bE`g{}y5FY<4zLFVWGL?vgm z>F8YqR%NFOv5m$?MHGLwXe~{=@L3+JH3+84C@8%EyoQqwy37Jd11y2pVIHVY9K~pY z7oDP=pxIet{EQQtJXPEewUC4)T%%nnh#Xgq0MV`|!oI+lqlU3cqn`_fPUny-*yUvi-Tz0@ zC0D6)PvjIV2qrmn+t^F;f~qMNu8PPYV&|MK@HZ+N;`@KKXP|E3lP~BOSJb+`a3Z)nJYB;2PxyEWy=yy$YNVRS=x9DEl&d5+B$ArSaqw&K@3+$bmaEq3*=jby`$ zr(_v0zkh!kEkuh7U%UfyN;5MM(@K9`ko-MNVQ3hofs?HU|47+yN29H{#U7^UC#(ED z2UXUyST{(VH|)U%nzk3VlN9TzkVdW4MdY}kzTA|zp;OmX4+-YR=Ii#><3xxI?|JXd z^0$|Tk0k4l8Y`y)qi=xh53=1~M#VlTG?mPn{{DYwRbRftahqP9u5I7i#2eiTmqw}} z#TU{&Y)sltKRe1%>|YB>n1IpF7Fqi@lVHU39~}(4GjE*%;CF&0eb%StQ)g3{=>aDy z?OKlm-oMKuK%^{=Nic`d;=N*9`7OGO(Xl;)MDuTVgN8spUlKUKA|(qHj`^N$bbX^P zkVAjO5n6dta9!i+3*@sZp-`l@-DWGB1^*{>fh_xwsdk`r5vycj824{)2V|`tQWq$K zjeBQK22*KC3xW+d(d!wCz6q)G5s6;P+kQHgGQVQwwMX9rd`ev z36hCNL^A_Lz3Lu>t44J1@h`MMakn=^UgmG8)48YiIF1V_EMCi)g${_NUNS^3{^MzS zxIaxu9NiVei@V)}8a8)JS|Ha-%AEK;+VFeogfxc{?~8>AJftseCKzR#3kpGT%XNPw z%NJQ_)2}O`&~-n-{MPtI?BMTz{dRys%A2qFUzKC@4Zn0!>JzoY`QwlNY}`fVTQM*P zq{Z@2`lZNxPH#U=Z5knA+)9@Z#5kOh9`GSacsSj3Mg=C_h3Bv)jBlc`=I7kuHL)qm z8=2(G?gB-e`cZP>*97#`Vuvj=Yv_Nky!@RB*7(suiWLux#-D<^YUlNnIHQtBm&lzWzO`zmh0%O&qvOp-3bkq(d* zLy{5$MdJ~o+;A$AzqI7~);stP9{Wh*$*uKCq@byC%(j#Bw%c*@PVtm5*NcCFqc_Jy z#x>5B#n7&u^@l~uhyY|OR6BNHFEjaq)cy=j=gMn>FF)vqf6im}wTZ(n#ZDY8Fq00p zX$;chaxNF+3D6uE8sPy4Sy{N%iazJ(gTn@r8)}_a4CY+v+M?cHtNFD`SaDQFX6=yAVVwYuK)}wX`;;gHI72@=?(gV;4Atop9n0=)PyG@>LR8$7Vt|A#D`jiItyVJP)l{U#rU!rBu{eg_uHs23 zUGrON?mLC+543|bmRy;cGEgMz+T4{RUOS^icyu7zrhWTAZhiFx+y< zwqC@o^3vj_jucg!0r82uPUhCWELl!0B*%J5tXQ#RMEkp+J9@_lr)U@#p_qOvw{@jU*BJwe5SPtQzYD-c-O{5VXJq?l~Y^ zS!gKQ>RIeyCjDe~PvUPfj}!CBsjdQVB*p(*T>2ul$qO|ds9O?6QUHC$DzCM^88lKO zl{qo{j})tzFh^>@d?yv@c>F?317EQ;prKCU?PC~vWvcWlLBD^*-jU+pkZSI*x#AQ_ z!ZDAb=(X-q3cI@A*q<&&l|$%M7U)vc+5#gO1!FI0-y=V^Kf7u^=R|GgP*L%_WF1UF zOv1_uVXONc_E&#1 zjHAhUiXCD+%~dH3iUG5&Ur~lJALkPjl`Aq}q}yXL$5**HB>ou=Nb84h(Lg=+wra;f z6e?lTotxPpjy=W1LUdyWrQWO{$N)teU7{du`T#8-Noju}3uJm|zfUctR9aoD&*(SC z(0-2?)$?^s5d5*Wis-{SuAG-w*>SaK{#Ydg5{_0B-1l!Js`q-<+boyYy!y!l&KMSt zlm+k0zv)>M$M*EKwxWNxM*;*WZJ2s40pXgMcvSYZ=AZPtI4T-yKgL!P!epz@GIAb} z{lI7}_}G8`zV|2troaP*v6vOk4x+hC!;mfb^>V7RDi4fYi|^7Nb)tL^YF1N1o%rSU;qlOnkGzOu7_er|n5xo} zP(0n?vju7;1C{JtkyA=sOxIajeA5*NjA-2FZ|i?ql#6IGeYxb9*P=%*Cl@51{A3%@ zYWwNzg4@@^%X^mRG>uEt=HNnzkQC8?i_FMV{t|X;Oe1p%x8b*t{~zB-oXl6t|A3_F6NpUzVe*CQk{JJ1 z6j*<#C3}SSVJ7S{JajNa=&czAyU)+P==?iukHfr><+%rM=mz()6Szj`a`bO-Mm%zU zS78$RtwcR56o+N^n5i_%fG3W3f_dl`m7f!(+DXwF-5GjeZWrnDs=7DoIqn|>#kQmn zH##Fl#=^|Tm`9O9P7-Jz>1~n=+Pbj0ZlecSj^~aVLtx~`vj1*@#fN$DLnj8A z8IO2=>XfH$y60|gmV@L@6bbeVj2m*6Q9Q*W!qykMpSTFaGT$>tTpX^Fwb%6yU08p4 z4?ZK~+U~+uiH(ODjKB%_denUN#`?U|-P(-LcHc0bJX!f6_v@L})Ur&j%V1X;+j!0& zfuTj(mU4v%aw%i@V_%XEnuigPjhfuXT2=lDh(b@L5PtGkKvqOvVefNiTG7fKe`RZY z!2Cqqeil6h^D_uBP!BYVEgG>acwK*dHc1-21MG1-HE!YJ2k4hU6-GmtCl~Df)*F>h zoZR^C=_`O*%MAgDaIYk2emgK~{*9h8-4sY%!YR@EjR+6iPgH{TAzjp1R{vSdTN3`W zRm%ZrnU(oqT_3S0W;Bf=EcyQdSKaXVRJqADvdOoslTmt0M);|!T*;_E7fgQ?{9RI# zfBkwLjTV9p=o&AVfI_48k*+)a1>i)M=R$KLFzSHez91!1a z_NUHpgCQ3%b3u&E%lJdF8>HzbQ~kkcoB$LLRT>G}IzU+!G7_+fZ&2NJMFQ-A<`n0m z-W4c_fC0)2w67`uexsS)?f~8wr)qFxV}oJ6y7x;IPC|Mj3Ywd)5eR>3{1ZfP;5Sw7 zq9(Zrx46bcMT|3op8GG<%mKis!us5nrgCq+`*cUk31Fz47>wCkB!nD#wcW(@3G&wd zj~<7KQ;7VYGO;Y5GQ^XbGD2)dtqH@fYv>P3^43j=N7LDifH85M>GYO6cmkPd)etdg}Qtyks#`V0KtG;1Psb%3}`*4habA;1fU zCtcnIBVM0;UXFK~7Q<|g!-sJ&-|v1mdUo()6owsD@R7F-f69Lix~TK`Hp@U3Az98w zPUfDm+*oc+EZATV-8LsDb|X8Kn&)i9sX?O$R2haks-3T^COBHSo`E;Yh`Q8+fnPDQpoj+S4Py^;oo*c+Umh z>YT{eR_T+$Qy=hkRMowi@zr<}zW%=xMn+Ac5fIa+(vIXdFxp$fT`gK~Fn*H+*-XIpzVLC_N=M3uSWTFVTZ9Hx&xb z_j98MFz?E6QN`ep-UaYG&&d7@V4-8#c#0w1nOo%t#S!%=3zNN( z`)Z9Vs$BdJTN?xv750~5_iqyPYDPEBo?B@Js7auk&X$K#VO_cx9nBcggSgF2`Tm=` zH&vO^wL>>vLz-L*iJ1I3a{DJdd}C`9gz!+ws^x!E8oIG*d1cf>rbzt(p$Bp#rZU;I zD<=h=j`~!Ct2%&ehXh$SQjF-wGl{Kw9^EQkd9tXYt^&vAQt$@vXv8s+NuHVL3%Jo~ z_z4+PQMOoltR@8`6LBl%iIT^M(|39Y5q7Hqgn@{n8p}IWx=h78L*iig7*06neso{g zs5yT@fsUJc8m4WeZ^ziABZv4jGYxtt%-DZQ;fV4tNA}VQM)f0ss!(j86YORUvl%fx zvG+<4{nYk(osvMw_Z{{G(56DjYSzaq20HLoy9&Gx z12AU5cR%lrc#2`u#~)o4-6bgmpLH7Pk{5q+NI;AG0lrLFT2=9YQex2qo!v1?wm>)_ zz#kaY=m~y2r|)-t`Z88`*%?M1XW89UDOzwEzo#!ij8Aa0^wbfzFoSmPYZn9hDx>X| z<&SPkc2;CP-|g5b1)qe#M7_@m;)zlCEm zin&hhAG76$6*yGx_%)wKS*U)duT_jmqJT(@oog7=zE`=pKd7-o{wMF=IN1{}6`I(U z4E2Wy+33Fbg5w+Oo)tn=8t#o&K>l=M9=v{e6BS%&b@?eX}OmRqwDOp{*5 z*bX=OFduLr_wTVv=(f+eCB{(vRBs;;W}y#UOu=~#xZ|ryQ+=!Rs+{-+#f&)@zTa7+qa}Nj`-4@C*22M3fF2_M#~CAB1tr$Ox!!uDq@ljKglL;BSV`|>bOp2G|83h zE0;f&A7+x#@uQK43bZ)AQCfdjUm+7wqbqIuhu@B7leuvwG}DfpI*tuTw6=6y5paNdYmbT2nFINg2~GylPug*m;}As z;-Yl_cFVCxC7MzW5@dfhQwf0Bh1L!?!@B$Ln;It4G9zajKg_K;s+o{C%^rH!+3yeUGGb@*?XV%N zo_r97Nvn)?C)%8Z^UuV`OiUf3-vrm_6&C%jmN-*Is{5X~vSodlCE8R(oJc zFekO_1gx%IPeeJz<0uSdjL-oig-o>&wT*u*d$KhSa;Lzs^yQo}=#M+85|9vUJ zg8x2c9FeUNDyfRkFbAb2Y5Wk$d&Xz1`quMJjtAu z!FdYXubbxizHgi6_yZl=J^MMDkn-JGoAgfPJ20UqsYm{riYhOV!%?-8mPkxp>Zzo9 zhPP?N27`~$@3*xvkl-dRHxIi#|7Qomfk<>VJZO4mS*$ZlMniJL7gPP4{CWe}9{~8w zpnQekeT099yiB_y%hOAc>TB2X6(8Y{335D|4YM*%R-7X?r=3h#{+q7e)6AlJ7?Y@l zw&Tt=J?=o>5$qO%*mTsZ6-Az-UGf$_w#8yv;V;V#J;Zk#OtCy##Dmz+S5;==-C@UU z^PD5sTWO?A7a%e@GWu=f;UOM6y%@@{0(SF^Hkst#g z>CgR&a`ub^X?zDm3(w_Qxu}ju!^o%r007Xs@e(l!&l2LQdbdrNvy&L={Dxyq!8Rx8zCTYQ0Ii&^a}Jh?&}s*wu;nY7&*?KvNc z1`sHx?@Af!axE<3VN#0^1ar<7S=h*9rqWPJJ%_HcD7jtBXRd7#Y6R+RFXFucE`jIp z?2Gtz>HIw)zlWn%e-4o^x3BNv-VgBZs~>;EdVhyb*W1^P_Vt8crnR?cdq>NDhXnsv zP`@T?8F4&*TYEToou+_QKe3ZbLz6M>%f0{=IDsah;msLgy(Ri#L$TyUB@hAo6h8`~ z2R{E>VE}$TGUM+3YAfEIVPJ8gqSUkK5#I#Rg&VsV7lC0Y?cl$Xyt*mMMQq ztqwITTgr%t=Je2cu^r2Z*qs>E`$9V$I64u&Nj$}hi*Dk~+oK53Cf-R=U5^yLL2~jb zb43tt3B?p^mLm5=DNJ#jFl1MA;^A1k-Q?I$V=QO*_|OJ+p~!JSr(+HOLJ z%SRj(Dv$DF@m{rBPcAg0ym9=km2nBaKfr|1BSw1rsL*tQOv+?7s@Bsl0;WuzaXla0 zOz)XHBpGA&$I3;{r|%aS4(Rbe#xNK&^H-pmD&fy|-KCIHwe#}9&o{h^un~WqZfx|l z++A5{P5YjB%-`$CZ?Aq4hW-ltM`IxE0x*_v+kfX3mt(eGOI{z_ngatScpzFX_J_4X zmOTa7Ab+Rf4RUzy*%ejT(7?Y7@V^e~Xnjt5+zSF@>$mO48f<$sysWvdrV}{9AT)Nj zf}nXgE4dH&;n%0ql+gj%2)TbMOHb>NA2g}FQb%p=8N7ikXbZvpxP|CJH@kpraqz^L z#zwoT*SQUomz5`A&~-+EIIAY(`C1F+F}^35GYWSS1j=Ef@V^W2zY1aKV?-7zz%?ku zJI74K3YO0MP}3Fv4(?{S=0NRHBsML=k1%YbGN8~XRpHte-fL`2u(IAiK&eSz)pl@}#A)9YJp1V4X0m$XoA9-K7NH^qY(!u#qIzuD7W@Nw zOhj9B$9bjc8OJgwT^Z%}%q~gZKuQj2Y@;-`dF`7;=Wq7SWGB3Q<2Dri?p_F5aP?3v zkimrbkDf2cTUh z`8EE~ErJhDZNL*VDFQC>I)Js%s)rL$t-bI6eR?&7Ob7s55{m5J%W$F2UsDVPB!fM; zU@}hxYMv&D5|e3Jd|^n~xrD#|QFbel46tlo9Q?^_<%`bLRSbV#0M&~88jUKcpyAe} z-9%SpNiOE0oTjuWc)x52Aw2@pk*&Ii2K5$2&EOS&5GqJ@*d4f3j24sE-NhQqhxE1a z{wTYyKP2WNFDFCMR6IV%;FN@cx@COipiWrQry|hl(|JMoC<~eN#1CzvzU>iznc>(q z+LrhHnYOx6&h~#|=P->Sf9Uje1~4As3#7K7QhC4+fpYMP706Qv`E9sP+#ed=tz)%V zXZ;_(GxCjr9Tv;=!mDqwDRMekfo}iks7?#RWOe+ z%?P1tU=xTP)`^VolmZk@91ru&VSl>$vIx$kvJ#;N;K=&$@l2Y6JDfR|804>B!Hi|n z9iBbco;QD2i)rUdqE`Zvz4q2e>{?t{bRXK{;JV-|_4%#XMAt!l&}PuV@})5v9bhJJ7Pu!#Q%_4IU}T0lrERA;s( z#_mH+{rnps3=%6#6qF|p7JnNQ*w3Ys6#sp0-iGKrFjBTZwNDUVk`kp|M)42%fEILa zfct+=%)B%o=+GA${zL1GYN00GoO49I*_HwAP(^-*cBDnXZfIZ08I%>v;m2bs)J3gGp5r zL$yEcWit_IISo#s9=m07Yh#qw=j*F^ zLGqh>f!V~gbK#7F3qn zZ$k&CCZ->(y!6!w$bE)T&z|^eO)t@~K36Xsv~F#- zS_(HhDLlQ#(bBF0BI)P-LHw$xGd@&=CgH|rC4IsqhnL&_5)l-7$LfW;pv@#GAUU9_ z*}*FV5MN(~Fj)@=CIf?q=!Vz{^w>;EM7x7I(R@_ zc~CA#(K&CJJ`1c?@OM)fXh@KC{)Rqh5v4i)wD{*W@=Wlo+4RDOwi02PH`Vgk0nyOax(Y9L}7fM(FDeaKMl{w90EK)T>3v)@(X_gQqoH~ zAWERidU0f~vWRJV@P^5-g)lH*RJ*~SpPy9lKBOlRfFZvka>%w004M?3v03`JrW@2JF{4jrgB2^*{fYkKC zOBV>~-&Zyt!zdJ1Aw_IIzq}q*Mu9xrA;^DVfbkz3uqIn)%>9B9 z32P;}5@%yjoaADUv@2&e)#UzzmQ#~2kk_zo>11o*Qq#wCgTUzModnJFE_wCeXSSw;MC>!25+c{#;@{NsC`xB zndj+y4zmq1-lQy*riAy}ZaD6Ws2?GTr>jHSGap_uy`AxzY$iPQKBKyv21XNW|Ap>a z6JExH6Z12R#&PFJPaK*Cj@K>!A{0V=MrpELDqr>mqQE^$i&|q*xHYl9m281 zB>i&qYW5ihS-)feu1EkRx86x@B|F?ZSHV}CF@OO746vf$;vZMI2=)D4D6qU8@}@uR zcw-N33UW(lDi)fPEIm%`$tXJ2MvP8t*MjJLZOYTuLZ_~j?)Uv11-3CKY!{T6i#}DXUgfg`)#kAn?y;-j-s1lR@5$1VzI@q}_nP_y z*JOfL!gr!hjk{IENWuCqZ!u)D)Eaha^o$XD7#fpun>TRWy=Pn`#)Je6nH7eCC=}ko=`)g8)wx zR_t+DPDVl*M8moDNM(g~QB`ma&WrCr^dX1N(ldMu%`nb8@K-8!@OAXu&+D6<9>&4N z?N$)Zw;Gw8d)%D-Cu*)`7kalk-)5aZqiqO}b77!4>DU6AuWpr0b3nA3EKm2^!XAIM zpil9jW5J+L`ld`vni%QI6Xqj`)w!1U`S@W*E|tHnmZb^BUlf%f)^t}n{{jG6a~N@|!aEkV!n;{DCdr>1r3(X(lVL>X&Lb%E(F15Zv(Z^)~cH3%7qtL1UNQ zu=#P=cfc>CR4#tbe&BYZ`8l0a7t)E6`}{z$ro74?)lt{WNpYbfs4#ou?h2XUke5o@ zABDULqh@i&Ot~=2TKMI^x&H2{s|dax3kvpUl@Cm;!&=}el*T(SwB6U&KMAnFqo%35 z-w1J)XM7#+*Fz6t0MPcbwdQ~PFS4W)TI6sPk`HRzv1ImttO_2yml985|0iaUunydg zgUFTNAA(21m*80mK=9BADh;C4E5;7^)G_UieE^ ze$qUK$Hp)bjim`i-9CYNGeJ>8z~-XsD#{C#D?CN1k7yS4cRo(nuZ2?#fadsscJBqsj|_xH}tS-n>q9r_#Q*z029 zVFGm)VL3i@`FUFl-U_xmt0=sa)55R zj}wYo9csgNpG1Et(6azyK%KvTSW8cCN?NLVN+=PQRJ7Ul4(`6dqQc*!Vng3>dkKKZ z2#F4o+sv);eHBRw8x@u9#M}>dzyU31?ZKaISIyb8`2_(g42FtyPjU1vs(&)c2(Eif zC~lx2w|RlBt5a+P|14{)RkAX%3~u8vj-zjL974)zcI8{guaufye^D5Jw?;Xby5)fA zN)r90^kVsPa<@xqs3A9cfah5-!^Zz;*+dp0hI~o3BWi#E000000000A2J8=a3QMDh z+PpWT(2Jzky7sHW93Zcl^KnU@91g5sf~(Fb8K!E$?IX0l_UIwm0p=4PvL8F|86 zz-diu^$5D=Hsag~Kr3>8$Q;J`ev$8Uuw{4ZNLqjZ00000000CfQ;yF<`@>h`aDT#E z#n?V;in&Ml6|SfbK%|nTvTbnQYY0cNT6Cvx19BU;bK?I&9sP=mwGaSOn8On?NyV;y zu95>?gHe)#3iXDqMnwU8C=h#8@&^9LxIovhWnZVUDjvk*v-WX+fI1h2Lq-RRcfk*Ga5g4JJhJ8Cn$RkLx|QL3E8KToePaE zHqvxT+s$HPqY6zNjiFbO|9!!<0R+BB*01rYm|(z{Q}NZr`IAUIfZ$J@{I1t##3Om{ z6byJm6DK}#eUV&$$1OIpJ>`z@12;nj^&a0O%@!x4L*yzesamD=e@UBx6J%7B~a0KXHoH_PSw8t|#Q#bhVYjGH$6zFCUvE_eyWT206Cd8`(wJ=I{oH zCEhPWE~o6R-f4M%k#q21ftJ=XhSs%c7r8U4N;HUB6zebLyNTW&|F)Tw;%?q^_WByN>ittKYU@MJ_rgDZL z@cy+_sWK2x9k>K1H zzZri|2es-VR7U}yIH{%+EotAClu{*s8#EuHSk0N5lEQmLeRshgR~nK=?X2w&pN5` ze;JD=2nf#>AON(610+oGlNK1e-E;!aAL(Sao8OH+_CaNlLQ&V?pq?gpTba)>cm=ba zM2rr9)(8nBDT@5(oQw>KvcnZ9(p7-EWE4BGTdN(^SCX~?G4|gowX$fp>cCY0MlHPA zZzZV>q~mfbKfbUC5X0WrU=b%y6c@ZNJFZFamu#91<9g!*vZxruSn^*TKas-oQx;S_ zfDRC1(h$gqX){DJ`=#cd*}_Jypi#hcbmaAa@81!HB`6uDD^>qp;X9Oe5yC>cM=-q% zci3jtkTBv8DA0$Zq=z3|eAG({5Q}#fW91E=cFAANGe?(h0g%n+X#|;Q5q) zZ`4hmag6X=;TAimut57pamxC1#)mfU53oMYO1n~qKWSD&eF$3=kWn zfZu|2-FazsMhnKHR?q)j>uIuBie3wKjh$z=LowWH=vmYoUzyvN0In|D*NSCh3t=8O z|4EoV8go_@0GMC32|b~k@Du<5!a?kRTV=j|BZWu+!7Igcy_UaGHU|Goq>A%^vg5EziY!vH|RqA*99t?vs3Jd-4bJpVxSw3Z27J<@5Fmq1w(w z&8sCsl1Uq(SHem!3F%8-ZsuZ#DB)kA;9&I&wtSfS=xQ9ny}#MC*#a-eELnnd0II@Nl1U_z zMoB5aqIt)?xtZC7a&a4~)z;*H6R79^K1avVRcaj5#$P@XaR4xom(HKFrQkJrskPf} zS=a)>GRZ7wyhG1|R4JJ0rVkGg5~mGHsox02!4g-}Y3CtAf->76rDv8CWlw%-U>$FO zNdDUHv2*U13cGAPx4NzWctF^;PwTMih0ab+frV&63c{JWq>vU%$lGmyw%cs~LG6*G zE6LmIS%t>=7OZ{UpP|}AuXX=K0+x&cT?<=g0>1k+5)!}QDx^9mxJX6`(%*685HGeC zC|effiQCk29e!{6)(rNUs@oR)`8 zW>J|k-@B@$%N}I1(Sp@~aZFmfe=!qtt)dSHY0Jfg0IM!<_yr7Yt*eTP1Q&zm2h^QI z3==o|*tibjPi?df&VF2um1-`ZJ2A-)37Clu`SJty9)EL>g4Yp_fHHV~pWO~3P!01p z$H3rQUlOr1ht@s(jn?Z5@q~_Icr&-izQ=A!f!-wK^)_{^CD~4Y(C7@5$(#pVhdf2? z7u2jNbTVn$b_yjt(xq$cN0wZagJTxa$}|5WVsRRm<}R!J0%V~_Wr~`RtP#+_+4bK# zb$JId$8XH%i}c6zoR*P$GqYS!ZmZ&=Uzm6l8qOy}x$#9yFz+v%X4Of*D<~wqQr0VI z@U;3u={9^Wb*({vpv8wBdN3}#;GlAW>jO&mmo6=d5Wo@_jFFT}E`q~O&sqBrf2Iq|kN^O}LSBd281Q*# zFeXFHwJjT7ZBW-SW`dQ1IZlz>`n)vDnKLl3n~pkvd{s*@&nZ3Uy_p=OE4EX+Q#)NSXT0{}<|> z8Wa-GQns(~lSZGR{G7VRayS^P>Fld8JWyK{mQTnjx;R0up}NoY9MvySOhMekayv+g zE@Vm7KXBx!O>gAKP`!aLyy~$3E9IyeEAdqf`x8}vV^!dMBmYNQX732|mRM6r8Uwanz_OEy<%fFEE^dk%WY(Wk!pz2v7eO63(n5YuNq^QiZEw zQn0D}bf1yWYxE%P%jiBxAQ-ITOXQyQ_RrS(5U7z8a-SnUic!41IH0q%^Gy%k@wp;Y^IZ0U+c&~MYY@OVE zK^oh>*oiQi#fFo)eB`<&2m_l7xNwi3BrN8CrClSYQg*o%wNF2MqjH%?ATl8O87RiVMWZ;5y0P993^XxCCu zef}ZpycOIng&6VA-J(PqsTPd^x;a5b$L~D0c>-2)s~AV6ThrA45Nx4oXB3G>B;GO4 zg;=a4AHnOn_)BSQdEu8HLC@)OEd(%sh~&bBrd3x%j)U1@uropT0RMlxRYO~Kf}xtg zxl-8?zV)pTiiBNUMDf@JqOSr*mIKbNjnN`^o$H67h*2oU92T$wflM!|VZI692w<;G zDA4_n=ex8}2}3YGWRR_m3h&;}<|MSc$+ePY;$T_#{$j(_PQ?Co_0jl$rWhp> zB&BBCzl-=g!LE_q%{DthL7-jY-yH;DP}4a;yDD-<=r_^~cKq!vX(GI$Q2>gcgxCeO zyMbQVR2N>|yS<<0a_H|k-qdk-K|3HbF)m@nRCbO>MQ~6p-3HinP{V*D+^~CKf>L-; zSi)qf>&*nEZRQ&52&U>$7-$xM;LI#BmMZPay7|}A4Q=5rymU$ri-YGTo-$*4>G$gM z!g)JaNR!?C?et3ofw}){Dv~sUNutKBlYA8xYY-}LK~`PKCo2xW@UfyywX44p35COg ztjkl|ad;(4tC?}S25|mNc^`CAm*e9+KnO9TCMTTNVa{%ClZlI=)L^kNhPjKyKMLoj zg$!GMX>1x#m$0^*Q>`sJeg^1ZA_rZJoWr8{Xg0pZtbW`~QHOrlFP8fq){c$hT$nBy5Y$eDN7%=V9uTK_w&W zBLeds9O@o1sS$)N)Z6j}E@H+a+`q1GMC$^DKP`1oVzn=RR#az#rb&;xc$=brqyyQc z`bR_r@Z~QkzGPn0P4o=d(}`K`Xj(yH@%N2v%T#5D`9)EZwg>}%p_@>KOFTq&D_TWo zHb3xh`UHH8^XQZ+cH4+q`1RO0>&E1deVJRuf;V66nWlb~M}9X#nY1VsU~H#p zI~@)MpDYR;)2zpTO9e^$PxDXE$Zv6vlemeoEW<1P2zXk16a+Ow!&5yy?dJ3%m6{hU ztGSqvEx(tq&xl>&Kj>VxOY=vngfli}%G-9!pKn#2f$#BJPg%~X1f<#FJ~5V*DRRV5 zx@?Y!mj;F?{-CMzpsEp9qQrVsN6rO!IjIBkkX7ii^JVIPlMoygpysE&P>BMgZ%C6? zX&IC(Jhg||0ISMza1Mq7q5}gB+MMCgf?z93OG>-UCL&v5@AchRK&7)pruSx*+!oSp zvOZLlxs%Avx%()8Ee6n=mAA|F+d4Ej?z#KOVo(`6=aqXdTRMHkNZwDgh+gNJS!o~%rAsW5@P6#o2Z@^<4pf*}UCv;#QGr?xAf88pn z(jnZJ&9e8}3|RFv7i_lAlJ3`VW7ZhMh$0@xruYS;)7HUn41-KnNjyuCS3etSHa~nw zlDENJyN=ptZ*)jm{sF{nQ>_-nesViO4E7530Z9&NG3okF~PuJ zE2L}Nce2Hg6u!E|IzGm~;96InI=GZaqj8i|zv9kkGwZcX(Z@Ky+$B`JzfhnIvZfz2yP zJ`)yw&2x_T?BkWckCveh5e6hAh%W_T5!-JHI^}0UGJfO5B%C)PhE4Ru`}P86eS&C<4WQ{FU;cTMMA!dFkvY&xdo8Okd>=7}MlJJ%;AOBDN#E zm=JJs{<+)I7$eRi^fXp25-xwO9Rh_PDHPhrO9a1I`?>!Z#Ap^w=}?SLf8?F{z9Qg2 zg2y1=O*`DW+x`|*FRQ~>HDmNhbmZK|g8>`X4A5TE1aG`hT9i=zfP`m%X_B+f8#osV zb1eX{_ZTUSDN)|8)}%oHaE}tJ`|w_a9aEFunIA;L_E~)?7dlrJnF8#NUJXdj1SW;> zsr1kL_8h#LgYX|AkqF|!+7zTicGnRI@h@9fgygwjFj`!r3~ zaX4lRZ67QZGP^neBi{T5dq(WzMj3H zcRld4FtYhMW~-2WR*egPi*?0(X;#Rmi&++BfWj{oo^CAl++ey3y?GY%n{MTvVK;o_ zdJqa)Lmiktn88wioYT_{vHGOTlc=CVRxusdP{fXgDRn`qoo@)N1!69kDFEcXi%qdl zc+7QwohVCT9$9XqbtzT0kW^RV=IstvH^aFF*QW+w0L)8W0NQBoxHj+RHG!<{J=Gmq z@pIc-K{8ol03#jPTR{V;@3*e%hYJ5mGvdkUve^kjH`4rn$?<6d&Ld4wr;sDk*>JV^ zyY-{Eqdkj?;*LAarn-ul)rvxX@>r#J(UbS~vC%5H&&7MiV8Y6;L8<6tq{X*0SekO~ ztvT3FvbIfd*0(pk;5-bm!kP%JB6vtTdFBtbcNI1uO_l zuRnq%5w?(}ve97@`n&dod1C-3S|el3?FM2e*jnkbAQsXi@8b&n7O!($@$f!jBI%xk z{YRdE&iXV5R4_tg=0Z8O6cdk5R1j6(!-$f!B5SX!6Zh`L)Y}xBS=jkj(?Vv8AJcwP z1CJqQt^^Lyke(9x*G(b->BDn}BF`@0%630XlPsP&b7*T=QGKTMYc1h|q!bjPPAUlV zk;R=-nro>G19k(tK&`F_N5)P4uz8Z>ut4g6TVj0_p@)vV91MfB7sgLSmkI1If`d4f z&aeeatluiEWm`O-6^Pxwx-@ZKAWIObDzX5y|1c;ZVm;j2yX*L8kWzaCRwVD(1_~GH zDYqo9B7cJ_03&r`BDyiItV(8OT7nJ|m4{b@Jz@HM^bQ1%EO$}r*bCe8UR6xl18cW` z+){1}T%^ibhfjYomn-narmInw^0k{^3%7dDkmrE4Ln)`Pq_ZqEht)7*cu?#`-D7c4 zqXTy>VXk$FS=Vc5n4iNed4}RURnEvt7Jdq+S>l;$qYg#Vowg+oHEQ=p#3=(j3_*jD z#v}KT%C3yIAZ@ZOxeZ35?p~KOYt1fy@iUFIdm&D~tIKVtyxg;68sx}d?mg$S6Nr}rN+gU>%X{897mT&B4m+b3kFhMzbHu0Qjq_>!5gK<*) z&A1KmGaoAO11xF}42J)9tHO|fg!R|Rwo0rks*lLZBjdaDtuBDDw@o%)m5D0;$Q}B% zX1K>jR*n@9hr4nmrc=VWUAitE!$z`g^bge{TQQ{0C#D5KZ;;f$J}Lzjg(T92VT9c> zxH$g2lTAcZfPLsDMUNK?dqto1FTq}r_C#Ryutupmo9EEkGq=44 z5Gw$G^;w3s4O;K*-Q;tB)!LN8W8jC>u|ZZlrPs<;Jd#zT{4)*3?U3^W)<*>Wl{6r7 zh1TE_auWJZ+JtojFKFyMc!qL+BU3GCzD=aB>tsHS zn1v#cgT>i9B?;P@d`v16I=u=jKbLaEX<=}_js@6|_*#IHj82JPqh{xDpX^t=y-fAI zj#<4{>&F~FpD>a5uCHVRsYOd{75lG>Yv#U4Rg+5~C#I$N`FI%e{KiRsbQjX(uhS;* z=~kDugsR%tNXGKLPgK z12f+Q2)@}?`yq5%!3BP`n$J7TEK)2D^EUwpj#J)!5#_McKS${nJYxi$`n&PS5GYgH z30nd+4%vYX^?hnc3>n}|bsPBLM7z2gpz!U}4yiN+2k)(a2jmLX8FMf8)N5wRe3rRu zM(bUy>Um&L#u+S~#(qw&Vf1FRf&og%WvarzPqZt=zWFU4N=JG(RYMJep7<4jyN28O zlY_y_9ZO`|w(=(X+QDq6h7uwRnqO9dtN|)uZO`r7gur*HvLzXrlAwb0A_&|G>2>_G^H_OKK{bIUHqi)|{7LLB z>&uZ-sb9#H2sFHI7_?kBeDqi5b=W7i%DdedLP%$SzpA^r*UB%eDv`EHU9f$=AS;*i zTgU#iC9q%#sdn8fFXYf=8me}n^tC#yTOju7JwkIPX=+r{odHh`({}hcZ2^_$a5DwE z#cpl$!w9c<0BpdPeX#sMeb-H``syXd!t4-D;0a_3E|G9$Q&F#2=AEHxekH%zOHo}e znW9gBR6D#;rl^4Hy}*t}bb|-nrZYM#EgDG7v?kHQkw|3hCT*Voc*ABrZHma_iZVk? z3Btf7tSU1tXyxjSY5ZeKW~@2TBDb_V@ zlviL0%z{mlxi6(tgv|x=MKF3K#sv!Q$O{F3Dzvv$tOptlzsEVXzJZ+dAtH`>bCNoB z8X*8eO~E`eD+=}|uy7c1cvz(;ZzfG`!FXp)udvpA8MUJuIE^kfqvRObs?^>j>ZT2$jIc8p( zmJ>@|t9eQ0QmQ9XGKedh@A+25`)Lo+5>mA<@68bL(AEcnh;`$^B3;6s3OP+#iw@lS z-xpbwCCh~f7-zC=zP$V!Kf{e;dksQ=^i#1E9F%XFlwVUs)oRkL0iXSV%IPBkWc6nl zOwQ=gj;m6>v$jM=18%h3RAyb(zazC2$bVV|Lw+W;Yg`zM!1M03-rQC)6UfuOaP*># zp=l9O1&Ozk?KBwY;*AyJ#~f(IerR-Ga&qwUNx3?$*jQ^Pl;UB|h2`z5LLVuAS|(g@ zCJ}i{Qc3scgK3deaatN7hkjGP($P($NpKZ4$Ay7X`MJIr;}4V1r(jTuU=pUG;K$VF zO2qCOrbTlI{4zAD7%nUfkbnPaXcP{RTpT%?pzoE0tmsby^@(nOA?m^N&&?TWg|-MK z>GWa2(k6iwwG%&I96lq0j#NE8e1Yg;&aQNH&l7)hS`?~PA^hU$mBkOLawlw^OChpH ziSI-ZC8F9F&TJhm6t+s)jAPJSvD=!D;)a8% zJ8VivA>69+=pZbl29h<8w#AY$u<^hw;ngz1USW*!?V2kn-c`mx@}M$cv4Y#J+Ez7E zVZ-8^d2r|iw3Ov`Y7iGgk^HaH+L3GY^lJS*Y~%JkQLf5=J%*Sd^Zg*SL?3ht5YSX? z%99`0@k%O~;!JcVmke2mc{Svb5mdZfPqrQvf-p0L9$HEmo;omjOgf1T88kXVb(R6d4)s}!*H#s9T6&=?5&t5)AE8Rr=%JF8wRR-W`bt|;G#$$VwfzH zUgE6!qlKJ*zC!SYX@d?v+Y1^8t2BVnsy_f^Z$-2-E&P2^8gP@UWedB9e$3xBC{rDf zNPe=Jw+=A&rgyW&!NC%E0^CTVJ;{(9M=k&xfY`@_Ud&6V6$1)_vqFzj;TlSW`r&UK zC}df0zJpcl$B%W}BZs5VNe1W3BiS%=qh3&E+MI2F@F(Tme8}9P7cHqISk~kwd=&?C zinzogx_9)$%5>GzDXZYwaV8yIZr*atRt9tB3MTg6=6KckpNKsH=29rZRYL4;s0w)0 zNT&Z(T*fwEUD%AC9nn}r_Khr&ds{>Q9TPcwlB`&f8^kI8^Qw(DbCoX{dh0saY>8_M zaWw^hu7bb7m`eE(z2bv--(XY`i_wH#4&?b*N)SFk+BUCD(53* zJO!~?MAaf`&l=>7>nFwf8BIcRFY91`lh;iXw+Z87 zO451UzCb!vvSxH!et7xVVG4~*g~ph9u2Airv#G9NGx>QfZuO zau^lw?$??j=7i||7Z}hq%z<(bk{l-L$dl+0vuIx-jkH{EJoJHHQ=12Wi+mNv0hwjl z6QPdUWMG7XlJm97$>IjVwGr;-FIX4&vdTt;kBGaayAA^mg0yv++!@Xy$>L?c#uQi; zKRo?YCb(;pFJi`$pLB(r99`_B?crd`eQo-0GnGi^VuJSs*e@$}^^nnV?9l~-Uxz%c zEAnJ@A1PFABLne9ea4qK+?)KXe5zl`vQ^TpzMwIrL=POHI!%w4|>pTN zL*S!Cxvoz>B|Z_Hsftg`ZR_T0-HvV>*4{+6tne)3R%+bJgg=jeXHAy;50Zw<&+W}d zFm8a*d%y*obkgk=!g#wq4$?Bei-?QTwu%#5O2_6EVNywIUybt{!KWkc-V35?VkawJ zih?39{f5#Qe*v9TL~SSLzdf?$>+A9qd^MhU!B~B}&`JFWWW`dDd5z%)+rcct8=5FQ z`ebi%W(KG=N&p6b{k~HU72Ci!lg=QnUz%i?_}cKeWW_@k0T&rlCqCI$>_7ev`_Cpm zae-T?E(PUmFY2jLalKY&Plny5g!5> zZrr%`5%fTbme_Xc>p^`yJHJQ4k~05Ax_@f02Wqi@;P&Ka4#su0kdfUem=0>GW^Rqn z%{!|Xn9nqHtarWcAFdhGLWj7!;GEbhWB6yzqL@%<#tnV)&x%5yg=dpK)4R2G^_Z4( zcvmMnEsNhTy5{VUZ)Z!^LF?KP#ol5AfCI{2m@SkBHr%%O8E-TLgua1^76MnWXU?P_ z5p{Eax|pkOeaxLn0pOcs&BTP&z@I`hWf#N0iCKg2>sOc#L19(8LVnK9;k4vgqAM)c z5C+_$2OhXt#jTbixT*c2lH>97%bS8a3J3s$aR}16rmp54A=#_M@>1B6r1UJF#%POl9{1KtNtg*CJNeo5uhB?8 zvMC)nMZ7w3+F2DEVzH+von(u~@s3R!bU1^z<-KKKGd6%iyee=5)k4N^vCHJcHo-YYh%2+Ii-$#xQU&yVYYsD_V90U>w+R`cfP#dRnATsB)$1n z;q)@rSGJ(xXwkz=^()RUkq@lu9@?^W~dijSg z=eQFSK%SV%a*$tX_c7j>12)(H1m4~*E?LTpNFeG)QX#N=mVw(2-D~MWpDil#V;$}Q zB)i03ecYJj^*SntT3VN+c3=bw5 z^KPj|xe#F~0RBMJq*b>7*&6TV1OtkeHLx`1E|B^cCwdJff|zFo)a-PFM%r?(hUfb> zh+03~Ju*mMtF50kXjwdrsdXb9HqLr_BRTR7sQR}8rDT?sZk)`D=kVx%-}q@S@bm}% z9pYv7?d1BjPxyBO{5wL&@ZT@tqhG_hui@G_^IODjf^|YW9q}B#lp?dG;WPGR1x360 z756-QAhCuLvY}yh(QQNAz{7qUvXQdDgv<2m)K1reIxyUYuJfB}sj^r>6f} zN=oL2X%-9px_CJh^S`ryhimKiso|HUHPMSqXr3<`t+MV5(re%S@#2e{mPkpjqvy+k zVjdR%U7~jlw#709CT-z?vMe@Oifn>);-YWFOU~n(_MDa&V)h1C?zr(wkT~>wRlpXO z@W7MvEXp}$#U}avobhB)Tkav{hWq81OQ11aLwu<62Sk5B2e)^BM-bDfPPF>Q+2$na zMjcZ4M)eE5pq@%Vh>4>`JtfZis)<0&)0%ZdDslzi3~}hfw;zT7U{$Cn`_VCT?(|84 z7{yoiBTjaxw4`85tBPX=Okh&TnE@6Wi)CJdUz)yxX$d zGTBNYbB>mxVJM-~Va=F_xxu!{(v-E&#HM0=mki-0w%+6K%aHpK_G(IHZOz-cSkw0pd4Rfx5k@bzx00H#0dx z2k@5#LsAxhjEe|}MJ&?TmJp@xf^_43n1!`Am)pizNgj_Iv+ zH0*2=N#JJ2S;n#+7>%>MdJB#}f+uQ2$2sQsiwCBE%34QR`({9rl`j^~MkC}Ghh43( zx25y`mAdz<137w==5X=`M|U2{!il`KK1~pnxygAbr&)1@FW?q$d|?lrvE8Kc*FjO; zc9s7SBHFtfzpZ5ia2Mw8h`JGjUNJmi>j_&iSV##Zh=Ra zERK&~g2uvK!Wf&$*%<+*_xBed0CowDd;zA(*6O0%r+gswHQ%hSdQPY4@moyQc}1nm z4ShiD2_6fk+PWD+Y3V}si=Q5ZW-y1I`btzbspX-ZhSpi9inu1?m_U%V3cGTC3nt)y zJ1l)yZR@o_^#3ry(U+r#Bc-H)zamW)jY}iZ9fL;pKOq-n5@SR3YgRKQeScxu%XJ2j zPoZ03;$ZyGrcI9-`JFiy99C`$L3+GR1n}IzQPU(db2x~d%|XBbANEYY-J}ug^mZAj zgQGS8_%Cjk`LkS;4Kb69Xna_Vr=|Nd&?C;vP$3`~QAo z`Mr1+<4(l#M69&qlF1I8zHpdj4t;Hc6l{QXNl%X1W86c9-Wby3^Sk1sLmkbcR3f2vXf z?aE!#tnxc0;*@}}ljJu0wa+v{+*k!irtWQTVd8MgKt;)2dYb9?#7`21Wpvq#Rl%l+ zMoh2q`C~$2tA7Y;shw+ofq^$)$0;iL^SL?FY+hB}j!7hf9;-LNZtuIwJ+Y4x@rC1$xRlaWmwB1ie5cYM6tSHz4?-fgg)qDKco&L zvDAWfp@ahp4YRWTvGsPJxpQsFw71$;M_AbjFdj_f2^@L7vXs1i@~FjshF}0;LIh|Z zu^Qlt*6=I&obQy+-zU#%3ZCXMl|8Po2V&=5K{lNHdXSu^rA}v=;+bBV9nRSJ%5quK zlUNvVw(wd-sIXEM^{dgY%k4k8?ETZ#e3>S+{RM22|19w*;`}A37B{4LAcAcacJM*~SL)P_k zc1ZL`J5zK(DtGc>Ag}fmVuC(Hx&MG%bumNGmLg`*lNg~H0t@18oc~El0;G^hm`p8R zPi7l`pEgb4PhW9+?aTHc%)g?9p*`+HE966|yyLb@F;D6+<~2Y|BD^ZZ zZ@q!fJpA&YsLQ*5nJSDfBW(KD_bsTKrX|}j3F@oFv)pg><{&rW+o$1asdzgxK?ZgY zqZC^tvtzwrO8zBrZ;C9KLgX*g*Hb2TCdR=^QefgdezPJ%dXR808p}{Y0?_5ouCxgk zOOVC!4(7siZ{)VQ|3bi_eQF3qZ~b;T1HAxZvF@r>tRu^RE{W2li22lXYScX|hPjP@ zaGv*>w!gi`zQ|yPH}Du3V0Q;is)IqiMO}sBFA0*qbwzZ*8hsg_Uc|0nx3&FF)2Pf< zWtU4jvuO{w0Ci~_h3b+~gI$4dr3_4aAJ=8GT~B;{Bv9WiHguf-W#a;Jr)(hObjcJ3 zqNFGiX}Mc}E3jROs*9g<^nd`P9}ewWXk`pqZVN%kG^ZgKVLm7Dl@#0`aGRM{4~JCN z$QMZvb)htsw<6L4sb(4zktM(4334h+xCsK;9~&TEBKX%VU~s)=EiIYsD?NPwbIzRX zS`$sWAP~8Oux=Hasv>7+!`!Xe(AWy23fiwat~v>SS!Q;h%YY4Z!gz*ws&F!rjz1|v z{|4VwxZIa^MDmV*>0ymSWs_S_&^&snkbOYgzRCcmKdy#s5k}7{AsOh0Ar>zKzN5;IwVr_7V+-eYDD{xCyr4LGyDWy0>Y z*9cF4K4(peu5bqoGK2w#Hfz@Rh#3L?ot+e$;V4=#(s8ebN(vs`u8-RmlGW>?FO2K{ z-|4OjO;g7-!nSra;|GP^17F+%u2xc-7bHhzlHWORs%h_25i1t{1XpZ6Vt~(j%5)-L zku23FG_7hFZ*s`hDqBuJh8_cdIx85O98QdXB+3KDvd%uhQ(am&tZC^+MT*rLWx41n zH6JDj%v5RRv^F0Ibz`AnuJak>d)M~e#t2GGdLXlTcM!d9gRCRThjLdnNV%K}5DZURhZ-crzA% z5$D&Pqg?!k`$LhYIoDUYQ~kd3!ODRYkw`MG^RMTL6{ueR`B@Gbe~zNYSyvi9(4SdQ zj^QyjUShoSgO=2(M(!ohW#`e>s+yvlF!47dGzH}Dw5pMb`)8sw^{~|N!SrR+(tk># zy9JY|+kbW8Ca7A?J!Dz$yhIjx0kFP*_6>Wz90R2^c_J8TZfQ+=v}C{XTpFEWH!d#1 z4|y`oU6BcXT#5BZJMfE6w*C2&$=_8V2599xI9YHY>j>RHK;gzWM}ki}$@)9z-`=$w ztYJ^zRnG6eH}5vhQ?MB;m2Gv%_ZZ6W1!-joMg;8D^Jze~cgo3Z1=x_eD>>1BVgS-b zGpImLhTC?o9{D8sX>y{wp>&j;)8`kCqEWXknGLKh1NHwyw-ud?1 zjBBEH>b9H74(H^dtT_|^f6LP`SK>^&iTofQRp8MoY|O9D$;a8=#JPt}p&gxFiLLPJ z&pMdBylB%BeM(agidhRbX#Y)U}mTXWIbQ-#UH4D{mwBgZlR;fx=Q#jvcsQEr}5;$Hn-w( zP0U7jgGnaN%~8`k<|isMjdDzndmuvQLe=m~REoI)%G4f1UG~o%#mH6v zHTm*v59A^pILre6N4&lcpnQ9d&o*2Z`Rxe(Od$d8zdy?6zVL9hjrLUGi7GB_#7C`H z)~KUjbRv*di-76fYf_OG%O^XIm_fXxm1`0W+_)hY~*3bf5`@d4c z3hZJtPg|z0rcK_YtayV(*>+ft40Qdxd}qtiek*Z~#)UsR_e zv|XXbu%tIYPFN7VZry)?RDhkjqF6sr5SqI-({;JCKe|OGH8JUe%EUx~bBdZEq6-Rn zou$ye^j;I8PDczEf-=R)9n9E9JE&can!%>*O0(+MAT$;4AdPVQ$cjw?!T4ju#?3Cc$4`qtnmz{L(sG|-QOW`l!78Vy13S5D6e z!;Is90^*?@(OYIG%3P=4kV+LeQ^=AY#$%Yj37!hj4qGV?EQRhji~_P zGk8d~=z)#1Y*%WvqT2ZIkZG|BsF;r6V{~cl)3@76PH}0GpS@AT zY4fzXuD$sK^h=8wv(naqYuM9R|0(G=W*AnafGMOO+^6G>zUQ*~@7HEcVN^SGPr;UM z4B)*_%fraJ1D#h9Ih!vadS3EBL{Op^;Kg?aNHkm5stCPD{*!_+f;*Q42OpEY# zU<*~z8!LUf9b@ua=Fixg^Tr)fQYd~>V&HSe<~|;(hJU?>(QW>f=?$t0zUvk%D;iwX zyP*xWGFX%aP~e#|`K@n3w>9>(E%i!&bxjDE-|Nm?{ouMS%0!-e(Vew~fd6t0adq|h zGPpquv3vq44~JyG2LByt6Uzwb*Pr?kq(BoSGs}iV8e$CktPq&h8{i1M?$QfNyl_ti zU8AA%u`OlkM+eVNo-LC?*8wyT%kQwN)h2KphZd`VMas@3!S#C+MU&Fm zf0QLID~mD=uyRxOV~Ly%Lk{n($&)LLEE&*nxUgM~o^VvIV@OqGPEzQN%BEKwv!Rp13UO)l- zq^dUwMln~obLLYpUN`)u%7hAX)Fxt2e|8cLu@^sCBaDNCC`D31)lm{+{ zef*wl@NV^SU`pTyg%PaD|3I`KXWPu(K*!#%m_~K;I>u?)I{pAM0!6~eHl+~je|;1M zV{HmnI5+AIpQyjMB0DtIKK+JRY&?2~=@46(dQ`V_IX)fZ@Tt6h__bpt+ug9|@>X%o z=P!=j3m>d}N)xg>x9PBsgSb0@T!CND?rbRv9GOa!8eO*(ayn{F*|@ri--u!v5wCO_V z^2JOC8#2x5<9M#<6-DLD6UGRnFU1Rssx$qiA)nfP|7Z|5q5300d#%-Qx%)5zkzS`1Sgm_zYG2^mU*=Cup^3}G$RG!mD^mUszv^gdDZ#&<?#ITWN< zB(e^mx2o#dFOld9%|eA-`5+R?_nQP?t|W2=qYxX|Kjui30-J`QPT>~vR)E#$V=v&n z+?6$f6iQr1GEJ==L^$Efsm}#--_!v1u$y0ef1=?3AU)&iFAC5(EHJ_fLIH5-qa8)h zI9sEB5Cbd#U4=g+nKD#Ae*gy8P5d5$?^p_VA;D%7bC@@FgwHkZKCvl?5f zM$Yo~8g`L(yqJzNh`5*`Js==fYU?*AMDUNBJFSra4&P&ShBQeH4)zACbUR#=@p@1+2n5ZK(6#eKX{oW`e}^iQ#RsGJqX5ed zhvhHbo|>h@FVc>?(I~*;^!5X&bvBhS6E|~&)#sVfVL6+2w!4g!%}ty>Bd6l1jv8RZ zXtVzI0~V@KsK`G>Q1zbqk!LkUgBQpV!5#^1&hn^XKw{}k)yX}CPOR@Osw?^j(XGqM z_Dssv5b#-49|zO8fBfD%CmYis41aYf3u=hA_wK7oeL>0;XfEXvgyObLJGZ=YWgO`ZZ=6ep1e>QZuwq{8i&F6m#-jC0Th}iVPP%(*eO8{MF#AoQ8FcB2&k7akh`tIJVN@DVNWAaqO`e;?sB#55oW%aQ#KCzvvR zqM%+x$^!9a)j3Uf z7xzPW!+idmkAZ?OIF`HNVbNi1@5^Z4$Fr~8O7RVg83^NvD#Ci0hO(k>qxp@#*NRM1K=^gf7Fsti()BNXeWZCt}rr+-;YH} zB$6+3)eq6F;NBw<2S7-JwVx=5^vQ;pdXf9WmW3`(Lqf>jcMHq$$BpQF0sDvcdZqn}h)La-< z3I^o|e@fU5)#{PFlL>prYpx@r5$2Hw7@s3ITHNyXb(#i#X;u!HH?LA{0NFs|^uxJ7 z=7f6v)E+(aQRFI5c=(JK5;YvO;*FoLOlnhBrQB5qN8#B;zxw{?FI(6s`)%Il-GjJw zu*kF5!uoRcW250mJ>lp<)9e9GF(2Xz+oVEue}2^EAZnpqzNN*!+o*3)c=Fu5jArKO zlLX05n#y<;oSdLTp$B{9j$SQjIyO%y|9i1)E}j-7<(yAav#SMw2Wf*#cws7|5EJ^jF8MXTkF>qzlZW_Ya!eB7{Dp1e<9gLJPR_5P&*h(zY+`da^=hzLd z%}^70{H)V<@(qF{B?l&pA9tjTYF#rVMZdu>@Es~s`Aw9DgK*$5;JC6s7pAFM#;~*S zg|#z3gctGG;Q~j2sd;>4Lyx8Ie`pP(WZWniS^5qQrZ_sz`Qp=zWV2br@Jy=ahcxv2 zC{VKw+OXq%RRK=ba^dM|2cO*G2|-2Q?4eNcprP2|U5oZKG)bOywANM588CoT4kF?& zWG3f|5{e&zbO0T6B9{w(0m)!7G2=>PH0{MeB333g0&(t+VOOm*yQg0)f4eL4h=5GT zyD$B;mO|CCz70jC_gGs7HgT1H9-UV80Zdkq$Tm=EaWDz0Pf$u~=nB6#-QLgasAzWWA-$k*5uIkH!>`Wc zx>xg;f*DxNT3Q$aP|8!~dOIZ5uZO?#dqs|4SM?DW0j-Bounvm^1A{*2_=cXV8vREa zTrDjq{zFus#Lhvv;x0~*14^oWfMQ8ozEZCS&C#q^mjxR#kJ-26f7mf6blmI5ZD&f8zCHCnKEW3Zd(wP9p0l30y_jYkS`~g=-!!@p>&ThBvi@KO|Ew z*zVP$CA6lv_#lYLZTM=FWAi;KGH2Hgi)%2E*tY^s86J2HiicN_5?4G}3;l8Gw0A$ZEoyzzA$%CWAj@311ju@8`+1qE% z{*ixbCX=qXV94} zI0Jg4VWBLh+z8wej{A&i_W~Gd)s@8GGA_gAAFK!O-)dgZ%9v#8O<A^$^3P!|2I)T--7;k6qPU+L~NM;-pUQ%Y5 zz&y{-G5m}cl8U^V1^3RPVrei%W;CFd=5;h^xQvXVnyN#X*gCL7PNo-81Lzixj|6kB zbK#gTf46b9GDU3Z9Ai~E9~F^<4825Rg1Zi0V4TJK90T(`XuM=c23d?4MQ{hv1!|z2 z?c%NgRq1hKzT*Dj+$cK_(4^L(>M$8mSBnd4r1c3q5Ad@b1U!8-v^m5Nm)&?a_w+CkkO0UDma}q#=Zag^1%r z9jrN*{vw?&fdC6LKR^FK@%0#*O?J93*Z@|@M-~{>sbLFKpjrESxV`+gb#rm3)JGt| zf3E-r&~AEJ<<=qgUqCRBZ)i#8;cA+m=prQL0DyQ%Jl2aCHCHb4yXuzzR`ut*`THew zU!oApY_q!gzHgi5t2=Mu5#hV&wPWcBVR{Fbj+eglZ!+YBh=+ZQD7E(N1EGN(&+{?- z0)RQgvPO1$VE{5QONYUs1c3lURaE|*e|qjccOJWsU8yKVB*6;%MNd+WTUm*2U9-3R zuViEgUmr2M;d!w5KmZ~z`2YY6Bp|R?A*OH7eFHfxwJ`8)Gfcq1000;mJAeEplP5x% zH?hz8x*DUG@JBj|Q3wD40000AH~7lG@rgRi4`R0K=J~#Fo96kxZ=2@#Cd7$Ve=*nV ztBjcKSmJ z1;8Xig=*mVsStN{a9Q|o|9&r^#zC7mFlhGZ0IBi22;mGn(L=>w1N2O6pa5YYikbrn z2l(>ALjV{^DO~LgI%W*?0_g?mVce??J16j~qU`|DVXxr>=8X5D)S1;vHBAG1Dt5t3jsKCOFG z7q?r>%c7Lz-0n4=ap`WB>28(%b8TOyaouE%yytR{`2R=zfeWO=9DeoTZSgK(>Q=Dd zY3|9K`u1fxVxufF7_?!$_c`AnzSEkRg>wHT&llNUxE^1+zLwjoR NH2>Lw2(<_SbCb2?adH3v delta 25 hcmZ3wll%8FHjd2XykZ8%$<^&fo{Za#Jei6o0|0;32@(JR diff --git a/OSX/XScreenSaver.plist b/OSX/XScreenSaver.plist index 134a6f81..3318ee44 100644 --- a/OSX/XScreenSaver.plist +++ b/OSX/XScreenSaver.plist @@ -15,11 +15,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 5.15 + 5.16 CFBundleSignature ???? CFBundleVersion - 5.15 + 5.16 LSMinimumSystemVersion 10.4 NSMainNibFile diff --git a/OSX/XScreenSaverConfigSheet.h b/OSX/XScreenSaverConfigSheet.h index 0df9d591..452c2672 100644 --- a/OSX/XScreenSaverConfigSheet.h +++ b/OSX/XScreenSaverConfigSheet.h @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2006 Jamie Zawinski +/* xscreensaver, Copyright (c) 2006-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -23,16 +23,55 @@ specified in the XML to the resource names to use). */ -#import +#ifdef USE_IPHONE +# import +# import +# define NSView UIView +# define NSUserDefaultsController NSUserDefaults +#else +# import +#endif + #import "jwxyz.h" -@interface XScreenSaverConfigSheet : NSWindow +#import + +#undef USE_PICKER_VIEW + +@interface XScreenSaverConfigSheet : +# ifdef USE_IPHONE + UITableViewController +# else + NSWindow +# endif { + NSString *saver_name; NSUserDefaultsController *userDefaultsController; + NSDictionary *defaultOptions; + const XrmOptionDescRec *opts; + id xml_root, xml_parsing; + +# ifdef USE_IPHONE + UITextField *active_text_field; + NSMutableArray *controls; + NSMutableArray *pref_ctls; // UIControl objects, with index = c.tag + NSMutableArray *pref_keys; // ...and their corresponding resources +# ifdef USE_PICKER_VIEW + NSMutableArray *picker_values; +# endif +# endif + } - (id)initWithXMLFile: (NSString *) xml_file options: (const XrmOptionDescRec *) opts - controller: (NSUserDefaultsController *) prefs; + controller: (NSUserDefaultsController *) prefs + defaults: (NSDictionary *) defs; @end diff --git a/OSX/XScreenSaverConfigSheet.m b/OSX/XScreenSaverConfigSheet.m index 2b0cb916..12980fa7 100644 --- a/OSX/XScreenSaverConfigSheet.m +++ b/OSX/XScreenSaverConfigSheet.m @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2006-2011 Jamie Zawinski +/* xscreensaver, Copyright (c) 2006-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -27,32 +27,233 @@ #import "jwxyz.h" #import "InvertedSlider.h" -#import + +#ifdef USE_IPHONE +# define NSView UIView +# define NSRect CGRect +# define NSSize CGSize +# define NSTextField UITextField +# define NSButton UIButton +# define NSFont UIFont +# define NSStepper UIStepper +# define NSMenuItem UIMenuItem +# define NSText UILabel +# define minValue minimumValue +# define maxValue maximumValue +# define setMinValue setMinimumValue +# define setMaxValue setMaximumValue +# define LABEL UILabel +#else +# define LABEL NSTextField +#endif // USE_IPHONE + +#undef LABEL_ABOVE_SLIDER + + +#pragma mark XML Parser + +/* I used to use the "NSXMLDocument" XML parser, but that doesn't exist + on iOS. The "NSXMLParser" parser exists on both OSX and iOS, so I + converted to use that. However, to avoid having to re-write all of + the old code, I faked out a halfassed implementation of the + "NSXMLNode" class that "NSXMLDocument" used to return. + */ + +#define NSXMLNode SimpleXMLNode +#define NSXMLElement SimpleXMLNode +#define NSXMLCommentKind SimpleXMLCommentKind +#define NSXMLElementKind SimpleXMLElementKind +#define NSXMLAttributeKind SimpleXMLAttributeKind +#define NSXMLTextKind SimpleXMLTextKind + +typedef enum { SimpleXMLCommentKind, + SimpleXMLElementKind, + SimpleXMLAttributeKind, + SimpleXMLTextKind, +} SimpleXMLKind; + +@interface SimpleXMLNode : NSObject +{ + SimpleXMLKind kind; + NSString *name; + SimpleXMLNode *parent; + NSMutableArray *children; + NSMutableArray *attributes; + id object; +} + +@property(nonatomic) SimpleXMLKind kind; +@property(nonatomic, retain) NSString *name; +@property(nonatomic, retain) SimpleXMLNode *parent; +@property(nonatomic, retain) NSMutableArray *children; +@property(nonatomic, retain) NSMutableArray *attributes; +@property(nonatomic, retain, getter=objectValue, setter=setObjectValue:) + id object; + +@end + +@implementation SimpleXMLNode + +@synthesize kind; +@synthesize name; +//@synthesize parent; +@synthesize children; +@synthesize attributes; +@synthesize object; + +- (id) init +{ + self = [super init]; + attributes = [NSMutableArray arrayWithCapacity:10]; + return self; +} + + +- (id) initWithName:(NSString *)n +{ + self = [self init]; + [self setKind:NSXMLElementKind]; + [self setName:n]; + return self; +} + + +- (void) setAttributesAsDictionary:(NSDictionary *)dict +{ + for (NSString *key in dict) { + NSObject *val = [dict objectForKey:key]; + SimpleXMLNode *n = [[SimpleXMLNode alloc] init]; + [n setKind:SimpleXMLAttributeKind]; + [n setName:key]; + [n setObjectValue:val]; + [attributes addObject:n]; + } +} + +- (SimpleXMLNode *) parent { return parent; } + +- (void) setParent:(SimpleXMLNode *)p +{ + NSAssert (!parent, @"parent already set"); + if (!p) return; + parent = p; + NSMutableArray *kids = [p children]; + if (!kids) { + kids = [NSMutableArray arrayWithCapacity:10]; + [p setChildren:kids]; + } + [kids addObject:self]; +} +@end + + +#pragma mark Implementing radio buttons + +/* The UIPickerView is a hideous and uncustomizable piece of shit. + I can't believe Apple actually released that thing on the world. + Let's fake up some radio buttons instead. + */ + +#if defined(USE_IPHONE) && !defined(USE_PICKER_VIEW) + +@interface RadioButton : UILabel +{ + int index; + NSArray *items; +} + +@property(nonatomic) int index; +@property(nonatomic, retain) NSArray *items; + +@end + +@implementation RadioButton + +@synthesize index; +@synthesize items; + +- (id) initWithIndex:(int)_index items:_items +{ + self = [super initWithFrame:CGRectZero]; + index = _index; + items = [_items retain]; + + [self setText: [[items objectAtIndex:index] objectAtIndex:0]]; + [self setBackgroundColor:[UIColor clearColor]]; + [self sizeToFit]; + + return self; +} + +@end + + +# endif // !USE_PICKER_VIEW + + + +@interface XScreenSaverConfigSheet (Private) + +- (void)traverseChildren:(NSXMLNode *)node on:(NSView *)parent; + +# ifndef USE_IPHONE +- (void) placeChild: (NSView *)c on:(NSView *)p right:(BOOL)r; +- (void) placeChild: (NSView *)c on:(NSView *)p; +static NSView *last_child (NSView *parent); +static void layout_group (NSView *group, BOOL horiz_p); +# else // USE_IPHONE +- (void) placeChild: (NSObject *)c on:(NSView *)p right:(BOOL)r; +- (void) placeChild: (NSObject *)c on:(NSView *)p; +- (void) placeSeparator; +- (void) bindResource:(NSObject *)ctl key:(NSString *)k reload:(BOOL)r; +- (void) refreshTableView; +# endif // USE_IPHONE + +@end + @implementation XScreenSaverConfigSheet -#define LEFT_MARGIN 20 // left edge of window -#define COLUMN_SPACING 10 // gap between e.g. labels and text fields -#define LEFT_LABEL_WIDTH 70 // width of all left labels -#define LINE_SPACING 10 // leading between each line +# define LEFT_MARGIN 20 // left edge of window +# define COLUMN_SPACING 10 // gap between e.g. labels and text fields +# define LEFT_LABEL_WIDTH 70 // width of all left labels +# define LINE_SPACING 10 // leading between each line + -// redefine these since they don't work when not inside an ObjC method -#undef NSAssert -#undef NSAssert1 -#undef NSAssert2 -#undef NSAssert3 -#define NSAssert(CC,S) do { if (!(CC)) { NSLog(S); }} while(0) -#define NSAssert1(CC,S,A) do { if (!(CC)) { NSLog(S,A); }} while(0) -#define NSAssert2(CC,S,A,B) do { if (!(CC)) { NSLog(S,A,B); }} while(0) -#define NSAssert3(CC,S,A,B,C) do { if (!(CC)) { NSLog(S,A,B,C); }} while(0) +#pragma mark Talking to the resource database + + +/* Normally we read resources by looking up "KEY" in the database + "org.jwz.xscreensaver.SAVERNAME". But in the all-in-one iPhone + app, everything is stored in the database "org.jwz.xscreensaver" + instead, so transform keys to "SAVERNAME.KEY". + + NOTE: This is duplicated in PrefsReader.m, cause I suck. +*/ +- (NSString *) makeKey:(NSString *)key +{ +# ifdef USE_IPHONE + NSString *prefix = [saver_name stringByAppendingString:@"."]; + if (! [key hasPrefix:prefix]) // Don't double up! + key = [prefix stringByAppendingString:key]; +# endif + return key; +} + + +- (NSString *) makeCKey:(const char *)key +{ + return [self makeKey:[NSString stringWithCString:key + encoding:NSUTF8StringEncoding]]; +} /* Given a command-line option, returns the corresponding resource name. Any arguments in the switch string are ignored (e.g., "-foo x"). */ -static NSString * -switch_to_resource (NSString *cmdline_switch, const XrmOptionDescRec *opts, - NSString **val_ret) +- (NSString *) switchToResource:(NSString *)cmdline_switch + opts:(const XrmOptionDescRec *)opts_array + valRet:(NSString **)val_ret { char buf[255]; char *tail = 0; @@ -60,7 +261,7 @@ switch_to_resource (NSString *cmdline_switch, const XrmOptionDescRec *opts, if (! [cmdline_switch getCString:buf maxLength:sizeof(buf) encoding:NSUTF8StringEncoding]) { NSAssert1(0, @"unable to convert %@", cmdline_switch); - abort(); + return 0; } char *s = strpbrk(buf, " \t\r\n"); if (s && *s) { @@ -70,15 +271,15 @@ switch_to_resource (NSString *cmdline_switch, const XrmOptionDescRec *opts, tail++; } - while (opts[0].option) { - if (!strcmp (opts[0].option, buf)) { + while (opts_array[0].option) { + if (!strcmp (opts_array[0].option, buf)) { const char *ret = 0; - if (opts[0].argKind == XrmoptionNoArg) { + if (opts_array[0].argKind == XrmoptionNoArg) { if (tail && *tail) NSAssert1 (0, @"expected no args to switch: \"%@\"", cmdline_switch); - ret = opts[0].value; + ret = opts_array[0].value; } else { if (!tail || !*tail) NSAssert1 (0, @"expected args to switch: \"%@\"", @@ -92,40 +293,226 @@ switch_to_resource (NSString *cmdline_switch, const XrmOptionDescRec *opts, encoding:NSUTF8StringEncoding] : 0); - const char *res = opts[0].specifier; + const char *res = opts_array[0].specifier; while (*res && (*res == '.' || *res == '*')) res++; - return [NSString stringWithCString:res - encoding:NSUTF8StringEncoding]; + return [self makeCKey:res]; } - opts++; + opts_array++; } NSAssert1 (0, @"\"%@\" not present in options", cmdline_switch); - abort(); + return 0; +} + + +#ifdef USE_IPHONE + +// Called when a slider is bonked. +// +- (void)sliderAction:(UISlider*)sender +{ + if ([active_text_field canResignFirstResponder]) + [active_text_field resignFirstResponder]; + NSString *pref_key = [pref_keys objectAtIndex: [sender tag]]; + double v = [sender value]; + if (v == (int) v) + [userDefaultsController setInteger:v forKey:pref_key]; + else + [userDefaultsController setDouble:v forKey:pref_key]; +} + +// Called when a checkbox/switch is bonked. +// +- (void)switchAction:(UISwitch*)sender +{ + if ([active_text_field canResignFirstResponder]) + [active_text_field resignFirstResponder]; + NSString *pref_key = [pref_keys objectAtIndex: [sender tag]]; + NSString *v = ([sender isOn] ? @"true" : @"false"); + [userDefaultsController setObject:v forKey:pref_key]; +} + +# ifdef USE_PICKER_VIEW +// Called when a picker is bonked. +// +- (void)pickerView:(UIPickerView *)pv + didSelectRow:(NSInteger)row + inComponent:(NSInteger)column +{ + if ([active_text_field canResignFirstResponder]) + [active_text_field resignFirstResponder]; + + NSAssert (column == 0, @"internal error"); + NSArray *a = [picker_values objectAtIndex: [pv tag]]; + if (! a) return; // Too early? + a = [a objectAtIndex:row]; + NSAssert (a, @"missing row"); + +//NSString *label = [a objectAtIndex:0]; + NSString *pref_key = [a objectAtIndex:1]; + NSObject *pref_val = [a objectAtIndex:2]; + [userDefaultsController setObject:pref_val forKey:pref_key]; +} +# else // !USE_PICKER_VIEW + +// Called when a RadioButton is bonked. +// +- (void)radioAction:(RadioButton*)sender +{ + if ([active_text_field canResignFirstResponder]) + [active_text_field resignFirstResponder]; + + NSArray *item = [[sender items] objectAtIndex: [sender index]]; + NSString *pref_key = [item objectAtIndex:1]; + NSObject *pref_val = [item objectAtIndex:2]; + [userDefaultsController setObject:pref_val forKey:pref_key]; +} + +- (BOOL)textFieldShouldBeginEditing:(UITextField *)tf +{ + active_text_field = tf; + return YES; +} + +- (void)textFieldDidEndEditing:(UITextField *)tf +{ + NSString *pref_key = [pref_keys objectAtIndex: [tf tag]]; + NSString *txt = [tf text]; + [userDefaultsController setObject:txt forKey:pref_key]; +} + +- (BOOL)textFieldShouldReturn:(UITextField *)tf +{ + active_text_field = nil; + [tf resignFirstResponder]; + return YES; +} + +# endif // !USE_PICKER_VIEW + +#endif // USE_IPHONE + + +# ifndef USE_IPHONE + +- (void) okAction:(NSObject *)arg +{ + [userDefaultsController commitEditing]; + [userDefaultsController save:self]; + [NSApp endSheet:self returnCode:NSOKButton]; + [self close]; +} + +- (void) cancelAction:(NSObject *)arg +{ + [userDefaultsController revert:self]; + [NSApp endSheet:self returnCode:NSCancelButton]; + [self close]; +} +# endif // !USE_IPHONE + + +- (void) resetAction:(NSObject *)arg +{ +# ifndef USE_IPHONE + [userDefaultsController revertToInitialValues:self]; +# else // USE_IPHONE + + for (NSString *key in defaultOptions) { + NSObject *val = [defaultOptions objectForKey:key]; + [userDefaultsController setObject:val forKey:key]; + } + + for (UIControl *ctl in pref_ctls) { + NSString *pref_key = [pref_keys objectAtIndex: ctl.tag]; + [self bindResource:ctl key:pref_key reload:YES]; + } + + [self refreshTableView]; +# endif // USE_IPHONE } /* Connects a control (checkbox, etc) to the corresponding preferences key. */ -static void -bind_resource_to_preferences (NSUserDefaultsController *prefs, - NSObject *control, - NSString *pref_key, - const XrmOptionDescRec *opts) +- (void) bindResource:(NSObject *)control key:(NSString *)pref_key + reload:(BOOL)reload_p { +# ifndef USE_IPHONE NSString *bindto = ([control isKindOfClass:[NSPopUpButton class]] ? @"selectedObject" : ([control isKindOfClass:[NSMatrix class]] ? @"selectedIndex" : @"value")); [control bind:bindto - toObject:prefs + toObject:userDefaultsController withKeyPath:[@"values." stringByAppendingString: pref_key] options:nil]; +# else // USE_IPHONE + SEL sel; + NSObject *val = [userDefaultsController objectForKey:pref_key]; + NSString *sval = 0; + double dval = 0; + + if ([val isKindOfClass:[NSString class]]) { + sval = (NSString *) val; + if (NSOrderedSame == [sval caseInsensitiveCompare:@"true"] || + NSOrderedSame == [sval caseInsensitiveCompare:@"yes"] || + NSOrderedSame == [sval caseInsensitiveCompare:@"1"]) + dval = 1; + else + dval = [sval doubleValue]; + } else if ([val isKindOfClass:[NSNumber class]]) { + // NSBoolean (__NSCFBoolean) is really NSNumber. + dval = [(NSNumber *) val doubleValue]; + sval = [(NSNumber *) val stringValue]; + } + + if ([control isKindOfClass:[UISlider class]]) { + sel = @selector(sliderAction:); + [(UISlider *) control setValue: dval]; + } else if ([control isKindOfClass:[UISwitch class]]) { + sel = @selector(switchAction:); + [(UISwitch *) control setOn: ((int) dval != 0)]; +# ifdef USE_PICKER_VIEW + } else if ([control isKindOfClass:[UIPickerView class]]) { + sel = 0; + [(UIPickerView *) control selectRow:((int)dval) inComponent:0 + animated:NO]; +# else // !USE_PICKER_VIEW + } else if ([control isKindOfClass:[RadioButton class]]) { + sel = 0; // radioAction: sent from didSelectRowAtIndexPath. + } else if ([control isKindOfClass:[UITextField class]]) { + sel = 0; // #### + [(UITextField *) control setText: sval]; +# endif // !USE_PICKER_VIEW + } else { + NSAssert (0, @"unknown class"); + } + + // NSLog(@"\"%@\" = \"%@\" [%@, %.1f]", pref_key, val, [val class], dval); + + if (!reload_p) { + if (! pref_keys) { + pref_keys = [[NSMutableArray arrayWithCapacity:10] retain]; + pref_ctls = [[NSMutableArray arrayWithCapacity:10] retain]; + } + + [pref_keys addObject: [self makeKey:pref_key]]; + [pref_ctls addObject: control]; + ((UIControl *) control).tag = [pref_keys count] - 1; + + if (sel) { + [(UIControl *) control addTarget:self action:sel + forControlEvents:UIControlEventValueChanged]; + } + } -# if 0 // #### - NSObject *def = [[prefs defaults] objectForKey:pref_key]; +# endif // USE_IPHONE + +# if 0 + NSObject *def = [[userDefaultsController defaults] objectForKey:pref_key]; NSString *s = [NSString stringWithFormat:@"bind: \"%@\"", pref_key]; s = [s stringByPaddingToLength:18 withString:@" " startingAtIndex:0]; s = [NSString stringWithFormat:@"%@ = \"%@\"", s, def]; @@ -134,17 +521,254 @@ bind_resource_to_preferences (NSUserDefaultsController *prefs, # endif } + +- (void) bindResource:(NSObject *)control key:(NSString *)pref_key +{ + [self bindResource:(NSObject *)control key:(NSString *)pref_key reload:NO]; +} + + + +- (void) bindSwitch:(NSObject *)control + cmdline:(NSString *)cmd +{ + [self bindResource:control + key:[self switchToResource:cmd opts:opts valRet:0]]; +} + + +#pragma mark Text-manipulating utilities + + +static NSString * +unwrap (NSString *text) +{ + // Unwrap lines: delete \n but do not delete \n\n. + // + NSArray *lines = [text componentsSeparatedByString:@"\n"]; + int nlines = [lines count]; + BOOL eolp = YES; + int i; + + text = @"\n"; // start with one blank line + + // skip trailing blank lines in file + for (i = nlines-1; i > 0; i--) { + NSString *s = (NSString *) [lines objectAtIndex:i]; + if ([s length] > 0) + break; + nlines--; + } + + // skip leading blank lines in file + for (i = 0; i < nlines; i++) { + NSString *s = (NSString *) [lines objectAtIndex:i]; + if ([s length] > 0) + break; + } + + // unwrap + Bool any = NO; + for (; i < nlines; i++) { + NSString *s = (NSString *) [lines objectAtIndex:i]; + if ([s length] == 0) { + text = [text stringByAppendingString:@"\n\n"]; + eolp = YES; + } else if ([s characterAtIndex:0] == ' ' || + [s hasPrefix:@"Copyright "] || + [s hasPrefix:@"http://"]) { + // don't unwrap if the following line begins with whitespace, + // or with the word "Copyright", or if it begins with a URL. + if (any && !eolp) + text = [text stringByAppendingString:@"\n"]; + text = [text stringByAppendingString:s]; + any = YES; + eolp = NO; + } else { + if (!eolp) + text = [text stringByAppendingString:@" "]; + text = [text stringByAppendingString:s]; + eolp = NO; + any = YES; + } + } + + return text; +} + + +# ifndef USE_IPHONE +/* Makes the text up to the first comma be bold. + */ static void -bind_switch_to_preferences (NSUserDefaultsController *prefs, - NSObject *control, - NSString *cmdline_switch, - const XrmOptionDescRec *opts) +boldify (NSText *nstext) +{ + NSString *text = [nstext string]; + NSRange r = [text rangeOfString:@"," options:0]; + r.length = r.location+1; + + r.location = 0; + + NSFont *font = [nstext font]; + font = [NSFont boldSystemFontOfSize:[font pointSize]]; + [nstext setFont:font range:r]; +} +# endif // !USE_IPHONE + + +/* Creates a human-readable anchor to put on a URL. + */ +static char * +anchorize (const char *url) { - NSString *pref_key = switch_to_resource (cmdline_switch, opts, 0); - bind_resource_to_preferences (prefs, control, pref_key, opts); + const char *wiki = "http://en.wikipedia.org/wiki/"; + const char *math = "http://mathworld.wolfram.com/"; + if (!strncmp (wiki, url, strlen(wiki))) { + char *anchor = (char *) malloc (strlen(url) * 3 + 10); + strcpy (anchor, "Wikipedia: \""); + const char *in = url + strlen(wiki); + char *out = anchor + strlen(anchor); + while (*in) { + if (*in == '_') { + *out++ = ' '; + } else if (*in == '#') { + *out++ = ':'; + *out++ = ' '; + } else if (*in == '%') { + char hex[3]; + hex[0] = in[1]; + hex[1] = in[2]; + hex[2] = 0; + int n = 0; + sscanf (hex, "%x", &n); + *out++ = (char) n; + in += 2; + } else { + *out++ = *in; + } + in++; + } + *out++ = '"'; + *out = 0; + return anchor; + + } else if (!strncmp (math, url, strlen(math))) { + char *anchor = (char *) malloc (strlen(url) * 3 + 10); + strcpy (anchor, "MathWorld: \""); + const char *start = url + strlen(wiki); + const char *in = start; + char *out = anchor + strlen(anchor); + while (*in) { + if (*in == '_') { + *out++ = ' '; + } else if (in != start && *in >= 'A' && *in <= 'Z') { + *out++ = ' '; + *out++ = *in; + } else if (!strncmp (in, ".htm", 4)) { + break; + } else { + *out++ = *in; + } + in++; + } + *out++ = '"'; + *out = 0; + return anchor; + + } else { + return strdup (url); + } +} + + +/* Converts any http: URLs in the given text field to clickable links. + */ +static void +hreffify (NSText *nstext) +{ +# ifndef USE_IPHONE + NSString *text = [nstext string]; + [nstext setRichText:YES]; +# else + NSString *text = [nstext text]; +# endif + + int L = [text length]; + NSRange start; // range is start-of-search to end-of-string + start.location = 0; + start.length = L; + while (start.location < L) { + + // Find the beginning of a URL... + // + NSRange r2 = [text rangeOfString:@"http://" options:0 range:start]; + if (r2.location == NSNotFound) + break; + + // Next time around, start searching after this. + start.location = r2.location + r2.length; + start.length = L - start.location; + + // Find the end of a URL (whitespace or EOF)... + // + NSRange r3 = [text rangeOfCharacterFromSet: + [NSCharacterSet whitespaceAndNewlineCharacterSet] + options:0 range:start]; + if (r3.location == NSNotFound) // EOF + r3.location = L, r3.length = 0; + + // Next time around, start searching after this. + start.location = r3.location; + start.length = L - start.location; + + // Set r2 to the start/length of this URL. + r2.length = start.location - r2.location; + + // Extract the URL. + NSString *nsurl = [text substringWithRange:r2]; + const char *url = [nsurl UTF8String]; + + // If this is a Wikipedia URL, make the linked text be prettier. + // + char *anchor = anchorize(url); + +# ifndef USE_IPHONE + + // Construct the RTF corresponding to anchor + // + const char *fmt = "{\\field{\\*\\fldinst{HYPERLINK \"%s\"}}%s}"; + char *rtf = malloc (strlen (fmt) + strlen(url) + strlen(anchor) + 10); + sprintf (rtf, fmt, url, anchor); + + NSData *rtfdata = [NSData dataWithBytesNoCopy:rtf length:strlen(rtf)]; + [nstext replaceCharactersInRange:r2 withRTF:rtfdata]; + +# else // !USE_IPHONE + // *anchor = 0; // Omit Wikipedia anchor + text = [text stringByReplacingCharactersInRange:r2 + withString:[NSString stringWithCString:anchor + encoding:NSUTF8StringEncoding]]; + // text = [text stringByReplacingOccurrencesOfString:@"\n\n\n" + // withString:@"\n\n"]; +# endif // !USE_IPHONE + + free (anchor); + + int L2 = [text length]; // might have changed + start.location -= (L - L2); + L = L2; + } + +# ifdef USE_IPHONE + [nstext setText:text]; + [nstext sizeToFit]; +# endif } +#pragma mark Creating controls from XML + + /* Parse the attributes of an XML tag into a dictionary. For input, the dictionary should have as attributes the keys, each with @"" as their value. @@ -152,8 +776,7 @@ bind_switch_to_preferences (NSUserDefaultsController *prefs, and keys that were not specified will not be present in the dictionary. Warnings are printed if there are duplicate or unknown attributes. */ -static void -parse_attrs (NSMutableDictionary *dict, NSXMLNode *node) +- (void) parseAttrs:(NSMutableDictionary *)dict node:(NSXMLNode *)node { NSArray *attrs = [(NSXMLElement *) node attributes]; int n = [attrs count]; @@ -191,73 +814,59 @@ parse_attrs (NSMutableDictionary *dict, NSXMLNode *node) } } - -/* Creates a label: an un-editable NSTextField displaying the given text. - */ -static NSTextField * -make_label (NSString *text) -{ - NSRect rect; - rect.origin.x = rect.origin.y = 0; - rect.size.width = rect.size.height = 10; - NSTextField *lab = [[NSTextField alloc] initWithFrame:rect]; - [lab setSelectable:NO]; - [lab setEditable:NO]; - [lab setBezeled:NO]; - [lab setDrawsBackground:NO]; - [lab setStringValue:text]; - [lab sizeToFit]; - return lab; -} - - -static NSView * -last_child (NSView *parent) -{ - NSArray *kids = [parent subviews]; - int nkids = [kids count]; - if (nkids == 0) - return 0; - else - return [kids objectAtIndex:nkids-1]; -} - - -/* Add the child as a subview of the parent, positioning it immediately - below or to the right of the previously-added child of that view. - */ -static void -place_child (NSView *parent, NSView *child, BOOL right_p) -{ - NSRect rect = [child frame]; - NSView *last = last_child (parent); - if (!last) { - rect.origin.x = LEFT_MARGIN; - rect.origin.y = [parent frame].size.height - rect.size.height - - LINE_SPACING; - } else if (right_p) { - rect = [last frame]; - rect.origin.x += rect.size.width + COLUMN_SPACING; - } else { - rect = [last frame]; - rect.origin.x = LEFT_MARGIN; - rect.origin.y -= [child frame].size.height + LINE_SPACING; - } - [child setFrameOrigin:rect.origin]; - [parent addSubview:child]; + +/* Handle the options on the top level tag. + */ +- (NSString *) parseXScreenSaverTag:(NSXMLNode *)node +{ + NSMutableDictionary *dict = + [NSMutableDictionary dictionaryWithObjectsAndKeys: + @"", @"name", + @"", @"_label", + @"", @"gl", + nil]; + [self parseAttrs:dict node:node]; + NSString *name = [dict objectForKey:@"name"]; + NSString *label = [dict objectForKey:@"_label"]; + + NSAssert1 (label, @"no _label in %@", [node name]); + NSAssert1 (name, @"no name in \"%@\"", label); + return label; } -static void traverse_children (NSUserDefaultsController *, - const XrmOptionDescRec *, - NSView *, NSXMLNode *); +/* Creates a label: an un-editable NSTextField displaying the given text. + */ +- (LABEL *) makeLabel:(NSString *)text +{ + NSRect rect; + rect.origin.x = rect.origin.y = 0; + rect.size.width = rect.size.height = 10; +# ifndef USE_IPHONE + NSTextField *lab = [[NSTextField alloc] initWithFrame:rect]; + [lab setSelectable:NO]; + [lab setEditable:NO]; + [lab setBezeled:NO]; + [lab setDrawsBackground:NO]; + [lab setStringValue:text]; + [lab sizeToFit]; +# else // USE_IPHONE + UILabel *lab = [[UILabel alloc] initWithFrame:rect]; + [lab setText: [text stringByTrimmingCharactersInSet: + [NSCharacterSet whitespaceAndNewlineCharacterSet]]]; + [lab setBackgroundColor:[UIColor clearColor]]; + [lab setNumberOfLines:0]; // unlimited + [lab setLineBreakMode:UILineBreakModeWordWrap]; + [lab setAutoresizingMask: (UIViewAutoresizingFlexibleWidth | + UIViewAutoresizingFlexibleHeight)]; +# endif // USE_IPHONE + return lab; +} /* Creates the checkbox (NSButton) described by the given XML node. */ -static void -make_checkbox (NSUserDefaultsController *prefs, - const XrmOptionDescRec *opts, NSView *parent, NSXMLNode *node) +- (void) makeCheckbox:(NSXMLNode *)node on:(NSView *)parent { NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys: @@ -266,7 +875,7 @@ make_checkbox (NSUserDefaultsController *prefs, @"", @"arg-set", @"", @"arg-unset", nil]; - parse_attrs (dict, node); + [self parseAttrs:dict node:node]; NSString *label = [dict objectForKey:@"_label"]; NSString *arg_set = [dict objectForKey:@"arg-set"]; NSString *arg_unset = [dict objectForKey:@"arg-unset"]; @@ -299,260 +908,26 @@ make_checkbox (NSUserDefaultsController *prefs, rect.origin.x = rect.origin.y = 0; rect.size.width = rect.size.height = 10; +# ifndef USE_IPHONE + NSButton *button = [[NSButton alloc] initWithFrame:rect]; - [button setButtonType:([[node name] isEqualToString:@"radio"] - ? NSRadioButton - : NSSwitchButton)]; + [button setButtonType:NSSwitchButton]; [button setTitle:label]; [button sizeToFit]; - place_child (parent, button, NO); - - bind_switch_to_preferences (prefs, button, - (arg_set ? arg_set : arg_unset), - opts); - [button release]; -} - - -/* Creates the NSTextField described by the given XML node. -*/ -static void -make_text_field (NSUserDefaultsController *prefs, - const XrmOptionDescRec *opts, NSView *parent, NSXMLNode *node, - BOOL no_label_p) -{ - NSMutableDictionary *dict = - [NSMutableDictionary dictionaryWithObjectsAndKeys: - @"", @"id", - @"", @"_label", - @"", @"arg", - nil]; - parse_attrs (dict, node); - NSString *label = [dict objectForKey:@"_label"]; - NSString *arg = [dict objectForKey:@"arg"]; - - if (!label && !no_label_p) { - NSAssert1 (0, @"no _label in %@", [node name]); - return; - } - - NSAssert1 (arg, @"no arg in %@", label); - - NSRect rect; - rect.origin.x = rect.origin.y = 0; - rect.size.width = rect.size.height = 10; - - NSTextField *txt = [[NSTextField alloc] initWithFrame:rect]; - - // make the default size be around 30 columns; a typical value for - // these text fields is "xscreensaver-text --cols 40". - // - [txt setStringValue:@"123456789 123456789 123456789 "]; - [txt sizeToFit]; - [[txt cell] setWraps:NO]; - [[txt cell] setScrollable:YES]; - [txt setStringValue:@""]; - - if (label) { - NSTextField *lab = make_label (label); - place_child (parent, lab, NO); - [lab release]; - } - - place_child (parent, txt, (label ? YES : NO)); - - bind_switch_to_preferences (prefs, txt, arg, opts); - [txt release]; -} - - -/* Creates the NSTextField described by the given XML node, - and hooks it up to a Choose button and a file selector widget. -*/ -static void -make_file_selector (NSUserDefaultsController *prefs, - const XrmOptionDescRec *opts, - NSView *parent, NSXMLNode *node, - BOOL dirs_only_p, - BOOL no_label_p, - BOOL editable_text_p) -{ - NSMutableDictionary *dict = - [NSMutableDictionary dictionaryWithObjectsAndKeys: - @"", @"id", - @"", @"_label", - @"", @"arg", - nil]; - parse_attrs (dict, node); - NSString *label = [dict objectForKey:@"_label"]; - NSString *arg = [dict objectForKey:@"arg"]; + [self placeChild:button on:parent]; - if (!label && !no_label_p) { - NSAssert1 (0, @"no _label in %@", [node name]); - return; - } +# else // USE_IPHONE - NSAssert1 (arg, @"no arg in %@", label); + LABEL *lab = [self makeLabel:label]; + [self placeChild:lab on:parent]; + UISwitch *button = [[UISwitch alloc] initWithFrame:rect]; + [self placeChild:button on:parent right:YES]; + [lab release]; - NSRect rect; - rect.origin.x = rect.origin.y = 0; - rect.size.width = rect.size.height = 10; +# endif // USE_IPHONE - NSTextField *txt = [[NSTextField alloc] initWithFrame:rect]; - - // make the default size be around 20 columns. - // - [txt setStringValue:@"123456789 123456789 "]; - [txt sizeToFit]; - [txt setSelectable:YES]; - [txt setEditable:editable_text_p]; - [txt setBezeled:editable_text_p]; - [txt setDrawsBackground:editable_text_p]; - [[txt cell] setWraps:NO]; - [[txt cell] setScrollable:YES]; - [[txt cell] setLineBreakMode:NSLineBreakByTruncatingHead]; - [txt setStringValue:@""]; - - NSTextField *lab = 0; - if (label) { - lab = make_label (label); - place_child (parent, lab, NO); - [lab release]; - } - - place_child (parent, txt, (label ? YES : NO)); - - bind_switch_to_preferences (prefs, txt, arg, opts); - [txt release]; - - // Make the text field and label be the same height, whichever is taller. - if (lab) { - rect = [txt frame]; - rect.size.height = ([lab frame].size.height > [txt frame].size.height - ? [lab frame].size.height - : [txt frame].size.height); - [txt setFrame:rect]; - } - - // Now put a "Choose" button next to it. - // - rect.origin.x = rect.origin.y = 0; - rect.size.width = rect.size.height = 10; - NSButton *choose = [[NSButton alloc] initWithFrame:rect]; - [choose setTitle:@"Choose..."]; - [choose setBezelStyle:NSRoundedBezelStyle]; - [choose sizeToFit]; - - place_child (parent, choose, YES); - - // center the Choose button around the midpoint of the text field. - rect = [choose frame]; - rect.origin.y = ([txt frame].origin.y + - (([txt frame].size.height - rect.size.height) / 2)); - [choose setFrameOrigin:rect.origin]; - - [choose setTarget:[parent window]]; - if (dirs_only_p) - [choose setAction:@selector(chooseClickedDirs:)]; - else - [choose setAction:@selector(chooseClicked:)]; - - [choose release]; -} - - -/* Runs a modal file selector and sets the text field's value to the - selected file or directory. - */ -static void -do_file_selector (NSTextField *txt, BOOL dirs_p) -{ - NSOpenPanel *panel = [NSOpenPanel openPanel]; - [panel setAllowsMultipleSelection:NO]; - [panel setCanChooseFiles:!dirs_p]; - [panel setCanChooseDirectories:dirs_p]; - - NSString *file = [txt stringValue]; - if ([file length] <= 0) { - file = NSHomeDirectory(); - if (dirs_p) - file = [file stringByAppendingPathComponent:@"Pictures"]; - } - -// NSString *dir = [file stringByDeletingLastPathComponent]; - - int result = [panel runModalForDirectory:file //dir - file:nil //[file lastPathComponent] - types:nil]; - if (result == NSOKButton) { - NSArray *files = [panel filenames]; - file = ([files count] > 0 ? [files objectAtIndex:0] : @""); - file = [file stringByAbbreviatingWithTildeInPath]; - [txt setStringValue:file]; - - // Fuck me! Just setting the value of the NSTextField does not cause - // that to end up in the preferences! - // - NSDictionary *dict = [txt infoForBinding:@"value"]; - NSUserDefaultsController *prefs = [dict objectForKey:@"NSObservedObject"]; - NSString *path = [dict objectForKey:@"NSObservedKeyPath"]; - if ([path hasPrefix:@"values."]) // WTF. - path = [path substringFromIndex:7]; - [[prefs values] setValue:file forKey:path]; - -#if 0 - // make sure the end of the string is visible. - NSText *fe = [[txt window] fieldEditor:YES forObject:txt]; - NSRange range; - range.location = [file length]-3; - range.length = 1; - if (! [[txt window] makeFirstResponder:[txt window]]) - [[txt window] endEditingFor:nil]; -// [[txt window] makeFirstResponder:nil]; - [fe setSelectedRange:range]; -// [tv scrollRangeToVisible:range]; -// [txt setNeedsDisplay:YES]; -// [[txt cell] setNeedsDisplay:YES]; -// [txt selectAll:txt]; -#endif - } -} - -/* Returns the NSTextField that is to the left of or above the NSButton. - */ -static NSTextField * -find_text_field_of_button (NSButton *button) -{ - NSView *parent = [button superview]; - NSArray *kids = [parent subviews]; - int nkids = [kids count]; - int i; - NSTextField *f = 0; - for (i = 0; i < nkids; i++) { - NSObject *kid = [kids objectAtIndex:i]; - if ([kid isKindOfClass:[NSTextField class]]) { - f = (NSTextField *) kid; - } else if (kid == button) { - if (! f) abort(); - return f; - } - } - abort(); -} - - -- (void) chooseClicked:(NSObject *)arg -{ - NSButton *choose = (NSButton *) arg; - NSTextField *txt = find_text_field_of_button (choose); - do_file_selector (txt, NO); -} - -- (void) chooseClickedDirs:(NSObject *)arg -{ - NSButton *choose = (NSButton *) arg; - NSTextField *txt = find_text_field_of_button (choose); - do_file_selector (txt, YES); + [self bindSwitch:button cmdline:(arg_set ? arg_set : arg_unset)]; + [button release]; } @@ -560,10 +935,7 @@ find_text_field_of_button (NSButton *button) If "type=slider", it's an NSSlider. If "type=spinbutton", it's a text field with up/down arrows next to it. */ -static void -make_number_selector (NSUserDefaultsController *prefs, - const XrmOptionDescRec *opts, - NSView *parent, NSXMLNode *node) +- (void) makeNumberSelector:(NSXMLNode *)node on:(NSView *)parent { NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys: @@ -578,7 +950,7 @@ make_number_selector (NSUserDefaultsController *prefs, @"", @"default", @"", @"convert", nil]; - parse_attrs (dict, node); + [self parseAttrs:dict node:node]; NSString *label = [dict objectForKey:@"_label"]; NSString *low_label = [dict objectForKey:@"_low-label"]; NSString *high_label = [dict objectForKey:@"_high-label"]; @@ -618,18 +990,20 @@ make_number_selector (NSUserDefaultsController *prefs, BOOL float_p = ([low rangeOfCharacterFromSet:dot].location != NSNotFound || [high rangeOfCharacterFromSet:dot].location != NSNotFound); - if ([type isEqualToString:@"slider"]) { + if ([type isEqualToString:@"slider"] +# ifdef USE_IPHONE // On iPhone, we use sliders for all numeric values. + || [type isEqualToString:@"spinbutton"] +# endif + ) { NSRect rect; rect.origin.x = rect.origin.y = 0; rect.size.width = 150; rect.size.height = 23; // apparent min height for slider with ticks... NSSlider *slider; - if (cvt) - slider = [[InvertedSlider alloc] initWithFrame:rect]; - else - slider = [[NSSlider alloc] initWithFrame:rect]; - + slider = [[InvertedSlider alloc] initWithFrame:rect + inverted: !!cvt + integers: !float_p]; [slider setMaxValue:[high doubleValue]]; [slider setMinValue:[low doubleValue]]; @@ -647,38 +1021,64 @@ make_number_selector (NSUserDefaultsController *prefs, if (float_p && range2 < max_ticks) range2 = max_ticks; +# ifndef USE_IPHONE [slider setNumberOfTickMarks:range2]; [slider setAllowsTickMarkValuesOnly: (range == range2 && // we are showing the actual number of ticks !float_p)]; // and we want integer results +# endif // !USE_IPHONE // #### Note: when the slider's range is large enough that we aren't // showing all possible ticks, the slider's value is not constrained // to be an integer, even though it should be... // Maybe we need to use a value converter or something? + LABEL *lab; if (label) { - NSTextField *lab = make_label (label); - place_child (parent, lab, NO); + lab = [self makeLabel:label]; + [self placeChild:lab on:parent]; +# ifdef USE_IPHONE + if (low_label) { + CGFloat s = [NSFont systemFontSize] + 4; + [lab setFont:[NSFont boldSystemFontOfSize:s]]; + } +# endif [lab release]; } if (low_label) { - NSTextField *lab = make_label (low_label); + lab = [self makeLabel:low_label]; [lab setFont:[NSFont systemFontOfSize:[NSFont smallSystemFontSize]]]; +# ifndef USE_IPHONE [lab setAlignment:1]; // right aligned rect = [lab frame]; if (rect.size.width < LEFT_LABEL_WIDTH) rect.size.width = LEFT_LABEL_WIDTH; // make all left labels same size rect.size.height = [slider frame].size.height; [lab setFrame:rect]; - place_child (parent, lab, NO); + [self placeChild:lab on:parent]; +# else // USE_IPHONE + [lab setTextAlignment: UITextAlignmentRight]; + [self placeChild:lab on:parent right:(label ? YES : NO)]; +# endif // USE_IPHONE + [lab release]; } - place_child (parent, slider, (low_label ? YES : NO)); +# ifndef USE_IPHONE + [self placeChild:slider on:parent right:(low_label ? YES : NO)]; +# else // USE_IPHONE + [self placeChild:slider on:parent right:(label || low_label ? YES : NO)]; +# endif // USE_IPHONE + if (low_label) { + // Make left label be same height as slider. + rect = [lab frame]; + rect.size.height = [slider frame].size.height; + [lab setFrame:rect]; + } + if (! low_label) { rect = [slider frame]; if (rect.origin.x < LEFT_LABEL_WIDTH) @@ -687,18 +1087,22 @@ make_number_selector (NSUserDefaultsController *prefs, } if (high_label) { - NSTextField *lab = make_label (high_label); - [lab setFont:[NSFont systemFontOfSize:[NSFont smallSystemFontSize]]]; + lab = [self makeLabel:high_label]; + [lab setFont:[NSFont systemFontOfSize:[NSFont smallSystemFontSize]]]; rect = [lab frame]; + + // Make right label be same height as slider. rect.size.height = [slider frame].size.height; [lab setFrame:rect]; - place_child (parent, lab, YES); + [self placeChild:lab on:parent right:YES]; [lab release]; } - bind_switch_to_preferences (prefs, slider, arg, opts); + [self bindSwitch:slider cmdline:arg]; [slider release]; +#ifndef USE_IPHONE // On iPhone, we use sliders for all numeric values. + } else if ([type isEqualToString:@"spinbutton"]) { if (! label) { @@ -722,19 +1126,19 @@ make_number_selector (NSUserDefaultsController *prefs, [txt setStringValue:@""]; if (label) { - NSTextField *lab = make_label (label); - //[lab setFont:[NSFont systemFontOfSize:[NSFont smallSystemFontSize]]]; + LABEL *lab = [self makeLabel:label]; + //[lab setFont:[NSFont systemFontOfSize:[NSFont smallSystemFontSize]]]; [lab setAlignment:1]; // right aligned rect = [lab frame]; if (rect.size.width < LEFT_LABEL_WIDTH) rect.size.width = LEFT_LABEL_WIDTH; // make all left labels same size rect.size.height = [txt frame].size.height; [lab setFrame:rect]; - place_child (parent, lab, NO); + [self placeChild:lab on:parent]; [lab release]; } - place_child (parent, txt, (label ? YES : NO)); + [self placeChild:txt on:parent right:(label ? YES : NO)]; if (! label) { rect = [txt frame]; @@ -746,7 +1150,7 @@ make_number_selector (NSUserDefaultsController *prefs, rect.size.width = rect.size.height = 10; NSStepper *step = [[NSStepper alloc] initWithFrame:rect]; [step sizeToFit]; - place_child (parent, step, YES); + [self placeChild:step on:parent right:YES]; rect = [step frame]; rect.origin.x -= COLUMN_SPACING; // this one goes close rect.origin.y += ([txt frame].size.height - rect.size.height) / 2; @@ -776,19 +1180,21 @@ make_number_selector (NSUserDefaultsController *prefs, [fmt setGeneratesDecimalNumbers:float_p]; [[txt cell] setFormatter:fmt]; - - bind_switch_to_preferences (prefs, step, arg, opts); - bind_switch_to_preferences (prefs, txt, arg, opts); + [self bindSwitch:step cmdline:arg]; + [self bindSwitch:txt cmdline:arg]; [step release]; [txt release]; - + +# endif // USE_IPHONE + } else { NSAssert2 (0, @"unknown type \"%@\" in \"%@\"", type, label); } } +# ifndef USE_IPHONE static void set_menu_item_object (NSMenuItem *item, NSObject *obj) { @@ -811,14 +1217,12 @@ set_menu_item_object (NSMenuItem *item, NSObject *obj) [item setRepresentedObject:obj]; //NSLog (@"menu item \"%@\" = \"%@\" %@", [item title], obj, [obj class]); } +# endif // !USE_IPHONE /* Creates the popup menu described by the given XML node (and its children). */ -static void -make_option_menu (NSUserDefaultsController *prefs, - const XrmOptionDescRec *opts, - NSView *parent, NSXMLNode *node) +- (void) makeOptionMenu:(NSXMLNode *)node on:(NSView *)parent { NSArray *children = [node children]; int i, count = [children count]; @@ -834,24 +1238,39 @@ make_option_menu (NSUserDefaultsController *prefs, [NSMutableDictionary dictionaryWithObjectsAndKeys: @"", @"id", nil]; - parse_attrs (dict, node); + [self parseAttrs:dict node:node]; NSRect rect; rect.origin.x = rect.origin.y = 0; rect.size.width = 10; rect.size.height = 10; + NSString *menu_key = nil; // the resource key used by items in this menu + +# ifndef USE_IPHONE // #### "Build and Analyze" says that all of our widgets leak, because it - // seems to not realize that place_child -> addSubview retains them. + // seems to not realize that placeChild -> addSubview retains them. // Not sure what to do to make these warnings go away. NSPopUpButton *popup = [[NSPopUpButton alloc] initWithFrame:rect pullsDown:NO]; - NSMenuItem *def_item = nil; float max_width = 0; - - NSString *menu_key = nil; // the resource key used by items in this menu + +# else // USE_IPHONE + + NSString *def_item = nil; + + rect.size.width = 0; + rect.size.height = 0; +# ifdef USE_PICKER_VIEW + UIPickerView *popup = [[[UIPickerView alloc] initWithFrame:rect] retain]; + popup.delegate = self; + popup.dataSource = self; +# endif // !USE_PICKER_VIEW + NSMutableArray *items = [NSMutableArray arrayWithCapacity:10]; + +# endif // USE_IPHONE for (i = 0; i < count; i++) { NSXMLNode *child = [children objectAtIndex:i]; @@ -859,7 +1278,7 @@ make_option_menu (NSUserDefaultsController *prefs, if ([child kind] == NSXMLCommentKind) continue; if ([child kind] != NSXMLElementKind) { - NSAssert2 (0, @"weird XML node kind: %d: %@", (int)[child kind], node); +// NSAssert2 (0, @"weird XML node kind: %d: %@", (int)[child kind], node); continue; } @@ -871,22 +1290,26 @@ make_option_menu (NSUserDefaultsController *prefs, @"", @"_label", @"", @"arg-set", nil]; - parse_attrs (dict2, child); + [self parseAttrs:dict2 node:child]; NSString *label = [dict2 objectForKey:@"_label"]; NSString *arg_set = [dict2 objectForKey:@"arg-set"]; if (!label) { NSAssert1 (0, @"no _label in %@", [child name]); - return; + continue; } +# ifndef USE_IPHONE // create the menu item (and then get a pointer to it) [popup addItemWithTitle:label]; NSMenuItem *item = [popup itemWithTitle:label]; +# endif // USE_IPHONE if (arg_set) { NSString *this_val = NULL; - NSString *this_key = switch_to_resource (arg_set, opts, &this_val); + NSString *this_key = [self switchToResource: arg_set + opts: opts + valRet: &this_val]; NSAssert1 (this_val, @"this_val null for %@", arg_set); if (menu_key && ![menu_key isEqualToString:this_key]) NSAssert3 (0, @@ -898,26 +1321,41 @@ make_option_menu (NSUserDefaultsController *prefs, /* If this menu has the cmd line "-mode foo" then set this item's value to "foo" (the menu itself will be bound to e.g. "modeString") */ +# ifndef USE_IPHONE set_menu_item_object (item, this_val); +# else + // Array holds ["Label", "resource-key", "resource-val"]. + [items addObject:[NSMutableArray arrayWithObjects: + label, @"", this_val, nil]]; +# endif } else { // no arg-set -- only one menu item can be missing that. NSAssert1 (!def_item, @"no arg-set in \"%@\"", label); +# ifndef USE_IPHONE def_item = item; +# else + def_item = label; + // Array holds ["Label", "resource-key", "resource-val"]. + [items addObject:[NSMutableArray arrayWithObjects: + label, @"", @"", nil]]; +# endif } /* make sure the menu button has room for the text of this item, and remember the greatest width it has reached. */ +# ifndef USE_IPHONE [popup setTitle:label]; [popup sizeToFit]; NSRect r = [popup frame]; if (r.size.width > max_width) max_width = r.size.width; +# endif // USE_IPHONE } if (!menu_key) { NSAssert1 (0, @"no switches in menu \"%@\"", [dict objectForKey:@"id"]); - abort(); + return; } /* We've added all of the menu items. If there was an item with no @@ -927,16 +1365,33 @@ make_option_menu (NSUserDefaultsController *prefs, yet know what resource was associated with this menu.) */ if (def_item) { - NSDictionary *defs = [prefs initialValues]; - NSObject *def_obj = [defs objectForKey:menu_key]; - + NSObject *def_obj = [defaultOptions objectForKey:menu_key]; NSAssert2 (def_obj, @"no default value for resource \"%@\" in menu item \"%@\"", - menu_key, [def_item title]); + menu_key, +# ifndef USE_IPHONE + [def_item title] +# else + def_item +# endif + ); +# ifndef USE_IPHONE set_menu_item_object (def_item, def_obj); +# else // !USE_IPHONE + for (NSMutableArray *a in items) { + // Make sure each array contains the resource key. + [a replaceObjectAtIndex:1 withObject:menu_key]; + // Make sure the default item contains the default resource value. + if (def_obj && def_item && + [def_item isEqualToString:[a objectAtIndex:0]]) + [a replaceObjectAtIndex:2 withObject:def_obj]; + } +# endif // !USE_IPHONE } +# ifndef USE_IPHONE +# ifdef USE_PICKER_VIEW /* Finish tweaking the menu button itself. */ if (def_item) @@ -944,22 +1399,56 @@ make_option_menu (NSUserDefaultsController *prefs, NSRect r = [popup frame]; r.size.width = max_width; [popup setFrame:r]; - place_child (parent, popup, NO); +# endif // USE_PICKER_VIEW +# endif - bind_resource_to_preferences (prefs, popup, menu_key, opts); +# if !defined(USE_IPHONE) || defined(USE_PICKER_VIEW) + [self placeChild:popup on:parent]; + [self bindResource:popup key:menu_key]; [popup release]; -} +# endif + +# ifdef USE_IPHONE +# ifdef USE_PICKER_VIEW + // Store the items for this picker in the picker_values array. + // This is so fucking stupid. + + int menu_number = [pref_keys count] - 1; + if (! picker_values) + picker_values = [[NSMutableArray arrayWithCapacity:menu_number] retain]; + while ([picker_values count] <= menu_number) + [picker_values addObject:[NSArray arrayWithObjects: nil]]; + [picker_values replaceObjectAtIndex:menu_number withObject:items]; + [popup reloadAllComponents]; + +# else // !USE_PICKER_VIEW + + [self placeSeparator]; + + i = 0; + for (NSArray *item in items) { + RadioButton *b = [[RadioButton alloc] initWithIndex:i + items:items]; + [b setFont:[NSFont boldSystemFontOfSize: + // #### Fucking hardcoded UITableView font size BS! + 17 // [NSFont systemFontSize] + ]]; + [self placeChild:b on:parent]; + i++; + } + + [self placeSeparator]; +# endif // !USE_PICKER_VIEW +# endif // !USE_IPHONE + +} -static NSString *unwrap (NSString *); -static void hreffify (NSText *); -static void boldify (NSText *); /* Creates an uneditable, wrapping NSTextField to display the given text enclosed by ... in the XML. */ -static void -make_desc_label (NSView *parent, NSXMLNode *node) +- (void) makeDescLabel:(NSXMLNode *)node on:(NSView *)parent { NSString *text = nil; NSArray *children = [node children]; @@ -980,6 +1469,7 @@ make_desc_label (NSView *parent, NSXMLNode *node) rect.origin.x = rect.origin.y = 0; rect.size.width = 200; rect.size.height = 50; // sized later +# ifndef USE_IPHONE NSText *lab = [[NSText alloc] initWithFrame:rect]; [lab setEditable:NO]; [lab setDrawsBackground:NO]; @@ -989,290 +1479,293 @@ make_desc_label (NSView *parent, NSXMLNode *node) hreffify (lab); boldify (lab); [lab sizeToFit]; +# else // USE_IPHONE + UILabel *lab = [self makeLabel:text]; + [lab setFont:[NSFont systemFontOfSize: [NSFont systemFontSize]]]; + hreffify (lab); + [self placeSeparator]; +# endif // USE_IPHONE - place_child (parent, lab, NO); + [self placeChild:lab on:parent]; [lab release]; } -static NSString * -unwrap (NSString *text) -{ - // Unwrap lines: delete \n but do not delete \n\n. - // - NSArray *lines = [text componentsSeparatedByString:@"\n"]; - int nlines = [lines count]; - BOOL eolp = YES; - int i; - text = @"\n"; // start with one blank line +/* Creates the NSTextField described by the given XML node. +*/ +- (void) makeTextField: (NSXMLNode *)node + on: (NSView *)parent + withLabel: (BOOL) label_p + horizontal: (BOOL) horiz_p +{ + NSMutableDictionary *dict = + [NSMutableDictionary dictionaryWithObjectsAndKeys: + @"", @"id", + @"", @"_label", + @"", @"arg", + nil]; + [self parseAttrs:dict node:node]; + NSString *label = [dict objectForKey:@"_label"]; + NSString *arg = [dict objectForKey:@"arg"]; - // skip trailing blank lines in file - for (i = nlines-1; i > 0; i--) { - NSString *s = (NSString *) [lines objectAtIndex:i]; - if ([s length] > 0) - break; - nlines--; + if (!label && label_p) { + NSAssert1 (0, @"no _label in %@", [node name]); + return; } - // skip leading blank lines in file - for (i = 0; i < nlines; i++) { - NSString *s = (NSString *) [lines objectAtIndex:i]; - if ([s length] > 0) - break; - } + NSAssert1 (arg, @"no arg in %@", label); - // unwrap - Bool any = NO; - for (; i < nlines; i++) { - NSString *s = (NSString *) [lines objectAtIndex:i]; - if ([s length] == 0) { - text = [text stringByAppendingString:@"\n\n"]; - eolp = YES; - } else if ([s characterAtIndex:0] == ' ' || - [s hasPrefix:@"Copyright "] || - [s hasPrefix:@"http://"]) { - // don't unwrap if the following line begins with whitespace, - // or with the word "Copyright", or if it begins with a URL. - if (any && !eolp) - text = [text stringByAppendingString:@"\n"]; - text = [text stringByAppendingString:s]; - any = YES; - eolp = NO; - } else { - if (!eolp) - text = [text stringByAppendingString:@" "]; - text = [text stringByAppendingString:s]; - eolp = NO; - any = YES; - } - } + NSRect rect; + rect.origin.x = rect.origin.y = 0; + rect.size.width = rect.size.height = 10; + + NSTextField *txt = [[NSTextField alloc] initWithFrame:rect]; - return text; -} +# ifndef USE_IPHONE + // make the default size be around 30 columns; a typical value for + // these text fields is "xscreensaver-text --cols 40". + // + [txt setStringValue:@"123456789 123456789 123456789 "]; + [txt sizeToFit]; + [[txt cell] setWraps:NO]; + [[txt cell] setScrollable:YES]; + [txt setStringValue:@""]; + +# else // USE_IPHONE + + txt.adjustsFontSizeToFitWidth = YES; + txt.textColor = [UIColor blackColor]; + // #### Fucking hardcoded UITableView font size BS! + txt.font = [UIFont systemFontOfSize: 17]; + txt.placeholder = @""; + txt.borderStyle = UITextBorderStyleRoundedRect; + txt.textAlignment = UITextAlignmentRight; + txt.keyboardType = UIKeyboardTypeDefault; // Full kbd + txt.autocorrectionType = UITextAutocorrectionTypeNo; + txt.autocapitalizationType = UITextAutocapitalizationTypeNone; + txt.clearButtonMode = UITextFieldViewModeAlways; + txt.returnKeyType = UIReturnKeyDone; + txt.delegate = self; + txt.text = @""; + [txt setEnabled: YES]; + + rect.size.height = [txt.font lineHeight] * 1.2; + [txt setFrame:rect]; + +# endif // USE_IPHONE -static char * -anchorize (const char *url) -{ - const char *wiki = "http://en.wikipedia.org/wiki/"; - const char *math = "http://mathworld.wolfram.com/"; - if (!strncmp (wiki, url, strlen(wiki))) { - char *anchor = (char *) malloc (strlen(url) * 3 + 10); - strcpy (anchor, "Wikipedia: \""); - const char *in = url + strlen(wiki); - char *out = anchor + strlen(anchor); - while (*in) { - if (*in == '_') { - *out++ = ' '; - } else if (*in == '#') { - *out++ = ':'; - *out++ = ' '; - } else if (*in == '%') { - char hex[3]; - hex[0] = in[1]; - hex[1] = in[2]; - hex[2] = 0; - int n = 0; - sscanf (hex, "%x", &n); - *out++ = (char) n; - in += 2; - } else { - *out++ = *in; - } - in++; - } - *out++ = '"'; - *out = 0; - return anchor; + if (label) { + LABEL *lab = [self makeLabel:label]; + [self placeChild:lab on:parent]; + [lab release]; + } - } else if (!strncmp (math, url, strlen(math))) { - char *anchor = (char *) malloc (strlen(url) * 3 + 10); - strcpy (anchor, "MathWorld: \""); - const char *start = url + strlen(wiki); - const char *in = start; - char *out = anchor + strlen(anchor); - while (*in) { - if (*in == '_') { - *out++ = ' '; - } else if (in != start && *in >= 'A' && *in <= 'Z') { - *out++ = ' '; - *out++ = *in; - } else if (!strncmp (in, ".htm", 4)) { - break; - } else { - *out++ = *in; - } - in++; - } - *out++ = '"'; - *out = 0; - return anchor; + [self placeChild:txt on:parent right:(label ? YES : NO)]; - } else { - return strdup (url); - } + [self bindSwitch:txt cmdline:arg]; + [txt release]; } -/* Converts any http: URLs in the given text field to clickable links. - */ -static void -hreffify (NSText *nstext) +/* Creates the NSTextField described by the given XML node, + and hooks it up to a Choose button and a file selector widget. +*/ +- (void) makeFileSelector: (NSXMLNode *)node + on: (NSView *)parent + dirsOnly: (BOOL) dirsOnly + withLabel: (BOOL) label_p + editable: (BOOL) editable_p { - NSString *text = [nstext string]; - [nstext setRichText:YES]; +# ifndef USE_IPHONE // No files. No selectors. + NSMutableDictionary *dict = + [NSMutableDictionary dictionaryWithObjectsAndKeys: + @"", @"id", + @"", @"_label", + @"", @"arg", + nil]; + [self parseAttrs:dict node:node]; + NSString *label = [dict objectForKey:@"_label"]; + NSString *arg = [dict objectForKey:@"arg"]; - int L = [text length]; - NSRange start; // range is start-of-search to end-of-string - start.location = 0; - start.length = L; - while (start.location < L) { + if (!label && label_p) { + NSAssert1 (0, @"no _label in %@", [node name]); + return; + } - // Find the beginning of a URL... - // - NSRange r2 = [text rangeOfString:@"http://" options:0 range:start]; - if (r2.location == NSNotFound) - break; + NSAssert1 (arg, @"no arg in %@", label); - // Next time around, start searching after this. - start.location = r2.location + r2.length; - start.length = L - start.location; + NSRect rect; + rect.origin.x = rect.origin.y = 0; + rect.size.width = rect.size.height = 10; + + NSTextField *txt = [[NSTextField alloc] initWithFrame:rect]; - // Find the end of a URL (whitespace or EOF)... - // - NSRange r3 = [text rangeOfCharacterFromSet: - [NSCharacterSet whitespaceAndNewlineCharacterSet] - options:0 range:start]; - if (r3.location == NSNotFound) // EOF - r3.location = L, r3.length = 0; + // make the default size be around 20 columns. + // + [txt setStringValue:@"123456789 123456789 "]; + [txt sizeToFit]; + [txt setSelectable:YES]; + [txt setEditable:editable_p]; + [txt setBezeled:editable_p]; + [txt setDrawsBackground:editable_p]; + [[txt cell] setWraps:NO]; + [[txt cell] setScrollable:YES]; + [[txt cell] setLineBreakMode:NSLineBreakByTruncatingHead]; + [txt setStringValue:@""]; - // Next time around, start searching after this. - start.location = r3.location; - start.length = L - start.location; + LABEL *lab = 0; + if (label) { + lab = [self makeLabel:label]; + [self placeChild:lab on:parent]; + [lab release]; + } - // Set r2 to the start/length of this URL. - r2.length = start.location - r2.location; + [self placeChild:txt on:parent right:(label ? YES : NO)]; - // Extract the URL. - NSString *nsurl = [text substringWithRange:r2]; - const char *url = [nsurl UTF8String]; + [self bindSwitch:txt cmdline:arg]; + [txt release]; - // If this is a Wikipedia URL, make the linked text be prettier. - // - char *anchor = anchorize(url); + // Make the text field and label be the same height, whichever is taller. + if (lab) { + rect = [txt frame]; + rect.size.height = ([lab frame].size.height > [txt frame].size.height + ? [lab frame].size.height + : [txt frame].size.height); + [txt setFrame:rect]; + } - // Construct the RTF corresponding to anchor - // - const char *fmt = "{\\field{\\*\\fldinst{HYPERLINK \"%s\"}}%s}"; - char *rtf = malloc (strlen (fmt) + strlen(url) + strlen(anchor) + 10); - sprintf (rtf, fmt, url, anchor); - free (anchor); - NSData *rtfdata = [NSData dataWithBytesNoCopy:rtf length:strlen(rtf)]; + // Now put a "Choose" button next to it. + // + rect.origin.x = rect.origin.y = 0; + rect.size.width = rect.size.height = 10; + NSButton *choose = [[NSButton alloc] initWithFrame:rect]; + [choose setTitle:@"Choose..."]; + [choose setBezelStyle:NSRoundedBezelStyle]; + [choose sizeToFit]; - // Insert the RTF into the NSText. - [nstext replaceCharactersInRange:r2 withRTF:rtfdata]; + [self placeChild:choose on:parent right:YES]; - int L2 = [text length]; // might have changed - start.location -= (L - L2); - L = L2; - } -} + // center the Choose button around the midpoint of the text field. + rect = [choose frame]; + rect.origin.y = ([txt frame].origin.y + + (([txt frame].size.height - rect.size.height) / 2)); + [choose setFrameOrigin:rect.origin]; -/* Makes the text up to the first comma be bold. - */ -static void -boldify (NSText *nstext) -{ - NSString *text = [nstext string]; - NSRange r = [text rangeOfString:@"," options:0]; - r.length = r.location+1; - r.location = 0; + [choose setTarget:[parent window]]; + if (dirsOnly) + [choose setAction:@selector(fileSelectorChooseDirsAction:)]; + else + [choose setAction:@selector(fileSelectorChooseAction:)]; - NSFont *font = [nstext font]; - font = [NSFont boldSystemFontOfSize:[font pointSize]]; - [nstext setFont:font range:r]; + [choose release]; +# endif // !USE_IPHONE } -static void layout_group (NSView *group, BOOL horiz_p); - +# ifndef USE_IPHONE -/* Creates an invisible NSBox (for layout purposes) to enclose the widgets - wrapped in
or in the XML. +/* Runs a modal file selector and sets the text field's value to the + selected file or directory. */ static void -make_group (NSUserDefaultsController *prefs, - const XrmOptionDescRec *opts, NSView *parent, NSXMLNode *node, - BOOL horiz_p) +do_file_selector (NSTextField *txt, BOOL dirs_p) { - NSRect rect; - rect.size.width = rect.size.height = 1; - rect.origin.x = rect.origin.y = 0; - NSView *group = [[NSView alloc] initWithFrame:rect]; - traverse_children (prefs, opts, group, node); + NSOpenPanel *panel = [NSOpenPanel openPanel]; + [panel setAllowsMultipleSelection:NO]; + [panel setCanChooseFiles:!dirs_p]; + [panel setCanChooseDirectories:dirs_p]; - layout_group (group, horiz_p); + NSString *file = [txt stringValue]; + if ([file length] <= 0) { + file = NSHomeDirectory(); + if (dirs_p) + file = [file stringByAppendingPathComponent:@"Pictures"]; + } - rect.size.width = rect.size.height = 0; - NSBox *box = [[NSBox alloc] initWithFrame:rect]; - [box setTitlePosition:NSNoTitle]; - [box setBorderType:NSNoBorder]; - [box setContentViewMargins:rect.size]; - [box setContentView:group]; - [box sizeToFit]; +// NSString *dir = [file stringByDeletingLastPathComponent]; - place_child (parent, box, NO); + int result = [panel runModalForDirectory:file //dir + file:nil //[file lastPathComponent] + types:nil]; + if (result == NSOKButton) { + NSArray *files = [panel filenames]; + file = ([files count] > 0 ? [files objectAtIndex:0] : @""); + file = [file stringByAbbreviatingWithTildeInPath]; + [txt setStringValue:file]; + + // Fuck me! Just setting the value of the NSTextField does not cause + // that to end up in the preferences! + // + NSDictionary *dict = [txt infoForBinding:@"value"]; + NSUserDefaultsController *prefs = [dict objectForKey:@"NSObservedObject"]; + NSString *path = [dict objectForKey:@"NSObservedKeyPath"]; + if ([path hasPrefix:@"values."]) // WTF. + path = [path substringFromIndex:7]; + [[prefs values] setValue:file forKey:path]; + +#if 0 + // make sure the end of the string is visible. + NSText *fe = [[txt window] fieldEditor:YES forObject:txt]; + NSRange range; + range.location = [file length]-3; + range.length = 1; + if (! [[txt window] makeFirstResponder:[txt window]]) + [[txt window] endEditingFor:nil]; +// [[txt window] makeFirstResponder:nil]; + [fe setSelectedRange:range]; +// [tv scrollRangeToVisible:range]; +// [txt setNeedsDisplay:YES]; +// [[txt cell] setNeedsDisplay:YES]; +// [txt selectAll:txt]; +#endif + } } -static void -layout_group (NSView *group, BOOL horiz_p) +/* Returns the NSTextField that is to the left of or above the NSButton. + */ +static NSTextField * +find_text_field_of_button (NSButton *button) { - NSArray *kids = [group subviews]; + NSView *parent = [button superview]; + NSArray *kids = [parent subviews]; int nkids = [kids count]; int i; - double maxx = 0, miny = 0; + NSTextField *f = 0; for (i = 0; i < nkids; i++) { - NSView *kid = [kids objectAtIndex:i]; - NSRect r = [kid frame]; - - if (horiz_p) { - maxx += r.size.width + COLUMN_SPACING; - if (r.size.height > -miny) miny = -r.size.height; - } else { - if (r.size.width > maxx) maxx = r.size.width; - miny = r.origin.y - r.size.height; + NSObject *kid = [kids objectAtIndex:i]; + if ([kid isKindOfClass:[NSTextField class]]) { + f = (NSTextField *) kid; + } else if (kid == button) { + if (! f) abort(); + return f; } } - - NSRect rect; - rect.origin.x = 0; - rect.origin.y = 0; - rect.size.width = maxx; - rect.size.height = -miny; - [group setFrame:rect]; + abort(); +} - double x = 0; - for (i = 0; i < nkids; i++) { - NSView *kid = [kids objectAtIndex:i]; - NSRect r = [kid frame]; - if (horiz_p) { - r.origin.y = rect.size.height - r.size.height; - r.origin.x = x; - x += r.size.width + COLUMN_SPACING; - } else { - r.origin.y -= miny; - } - [kid setFrame:r]; - } + +- (void) fileSelectorChooseAction:(NSObject *)arg +{ + NSButton *choose = (NSButton *) arg; + NSTextField *txt = find_text_field_of_button (choose); + do_file_selector (txt, NO); } +- (void) fileSelectorChooseDirsAction:(NSObject *)arg +{ + NSButton *choose = (NSButton *) arg; + NSTextField *txt = find_text_field_of_button (choose); + do_file_selector (txt, YES); +} -static void -make_text_controls (NSUserDefaultsController *prefs, - const XrmOptionDescRec *opts, - NSView *parent, NSXMLNode *node) +#endif // !USE_IPHONE + + +- (void) makeTextLoaderControlBox:(NSXMLNode *)node on:(NSView *)parent { +# ifndef USE_IPHONE /* Display Text: (x) Computer name and time @@ -1296,7 +1789,6 @@ make_text_controls (NSUserDefaultsController *prefs, Bool program_p = TRUE; - NSXMLElement *node2; NSView *control; // This is how you link radio buttons together. @@ -1326,10 +1818,63 @@ make_text_controls (NSUserDefaultsController *prefs, options:nil]; [cnames release]; - bind_switch_to_preferences (prefs, matrix, @"-text-mode %", opts); + [self bindSwitch:matrix cmdline:@"-text-mode %"]; + + [self placeChild:matrix on:group]; + [self placeChild:rgroup on:group right:YES]; + + NSXMLNode *node2; + +# else // USE_IPHONE + + NSView *rgroup = parent; + NSXMLNode *node2; + + // + + node2 = [[NSXMLElement alloc] initWithName:@"select"]; + [node2 setAttributesAsDictionary: + [NSDictionary dictionaryWithObjectsAndKeys: + @"textMode", @"id", + nil]]; + + NSXMLNode *node3 = [[NSXMLElement alloc] initWithName:@"option"]; + [node3 setAttributesAsDictionary: + [NSDictionary dictionaryWithObjectsAndKeys: + @"date", @"id", + @"-text-mode date", @"arg-set", + @"Display the date and time", @"_label", + nil]]; + [node3 setParent: node2]; + //[node3 release]; + + node3 = [[NSXMLElement alloc] initWithName:@"option"]; + [node3 setAttributesAsDictionary: + [NSDictionary dictionaryWithObjectsAndKeys: + @"text", @"id", + @"-text-mode literal", @"arg-set", + @"Display static text", @"_label", + nil]]; + [node3 setParent: node2]; + //[node3 release]; + + node3 = [[NSXMLElement alloc] initWithName:@"option"]; + [node3 setAttributesAsDictionary: + [NSDictionary dictionaryWithObjectsAndKeys: + @"url", @"id", + @"Display the contents of a URL", @"_label", + nil]]; + [node3 setParent: node2]; + //[node3 release]; + + [self makeOptionMenu:node2 on:rgroup]; + +# endif // USE_IPHONE - place_child (group, matrix, NO); - place_child (group, rgroup, YES); // node2 = [[NSXMLElement alloc] initWithName:@"string"]; @@ -1337,9 +1882,17 @@ make_text_controls (NSUserDefaultsController *prefs, [NSDictionary dictionaryWithObjectsAndKeys: @"textLiteral", @"id", @"-text-literal %", @"arg", +# ifdef USE_IPHONE + @"Text to display", @"_label", +# endif nil]]; - make_text_field (prefs, opts, rgroup, node2, YES); - [node2 release]; + [self makeTextField:node2 on:rgroup +# ifndef USE_IPHONE + withLabel:NO +# else + withLabel:YES +# endif + horizontal:NO]; // rect = [last_child(rgroup) frame]; @@ -1352,6 +1905,7 @@ make_text_controls (NSUserDefaultsController *prefs, */ +# ifndef USE_IPHONE // node2 = [[NSXMLElement alloc] initWithName:@"string"]; [node2 setAttributesAsDictionary: @@ -1359,8 +1913,9 @@ make_text_controls (NSUserDefaultsController *prefs, @"textFile", @"id", @"-text-file %", @"arg", nil]]; - make_file_selector (prefs, opts, rgroup, node2, NO, YES, NO); - [node2 release]; + [self makeFileSelector:node2 on:rgroup + dirsOnly:NO withLabel:NO editable:NO]; +# endif // !USE_IPHONE // rect = [last_child(rgroup) frame]; @@ -1370,12 +1925,21 @@ make_text_controls (NSUserDefaultsController *prefs, [NSDictionary dictionaryWithObjectsAndKeys: @"textURL", @"id", @"-text-url %", @"arg", +# ifdef USE_IPHONE + @"URL to display", @"_label", +# endif nil]]; - make_text_field (prefs, opts, rgroup, node2, YES); - [node2 release]; + [self makeTextField:node2 on:rgroup +# ifndef USE_IPHONE + withLabel:NO +# else + withLabel:YES +# endif + horizontal:NO]; // rect = [last_child(rgroup) frame]; +# ifndef USE_IPHONE if (program_p) { // node2 = [[NSXMLElement alloc] initWithName:@"string"]; @@ -1384,8 +1948,7 @@ make_text_controls (NSUserDefaultsController *prefs, @"textProgram", @"id", @"-text-program %", @"arg", nil]]; - make_text_field (prefs, opts, rgroup, node2, YES); - [node2 release]; + [self makeTextField:node2 on:rgroup withLabel:NO horizontal:NO]; } // rect = [last_child(rgroup) frame]; @@ -1440,15 +2003,15 @@ make_text_controls (NSUserDefaultsController *prefs, [box setContentView:group]; [box sizeToFit]; - place_child (parent, box, NO); + [self placeChild:box on:parent]; + +# endif // !USE_IPHONE } -static void -make_image_controls (NSUserDefaultsController *prefs, - const XrmOptionDescRec *opts, - NSView *parent, NSXMLNode *node) +- (void) makeImageLoaderControlBox:(NSXMLNode *)node on:(NSView *)parent { +# ifndef USE_IPHONE /* [x] Grab desktop images [ ] Choose random image: @@ -1470,8 +2033,7 @@ make_image_controls (NSUserDefaultsController *prefs, @"Grab desktop images", @"_label", @"-no-grab-desktop", @"arg-unset", nil]]; - make_checkbox (prefs, opts, parent, node2); - [node2 release]; + [self makeCheckbox:node2 on:parent]; node2 = [[NSXMLElement alloc] initWithName:@"boolean"]; [node2 setAttributesAsDictionary: @@ -1480,45 +2042,231 @@ make_image_controls (NSUserDefaultsController *prefs, @"Choose random images", @"_label", @"-choose-random-images", @"arg-set", nil]]; - make_checkbox (prefs, opts, parent, node2); - [node2 release]; + [self makeCheckbox:node2 on:parent]; + + node2 = [[NSXMLElement alloc] initWithName:@"string"]; + [node2 setAttributesAsDictionary: + [NSDictionary dictionaryWithObjectsAndKeys: + @"imageDirectory", @"id", + @"Images from:", @"_label", + @"-image-directory %", @"arg", + nil]]; + [self makeFileSelector:node2 on:parent + dirsOnly:YES withLabel:YES editable:YES]; + + // Add a second, explanatory label below the file/URL selector. + + LABEL *lab2 = 0; + lab2 = [self makeLabel:@"(Local folder, or URL of RSS or Atom feed)"]; + [self placeChild:lab2 on:parent]; + + // Pack it in a little tighter vertically. + NSRect r2 = [lab2 frame]; + r2.origin.x += 20; + r2.origin.y += 14; + [lab2 setFrameOrigin:r2.origin]; + [lab2 release]; +# endif // !USE_IPHONE +} + + +#pragma mark Layout for controls + + +# ifndef USE_IPHONE +static NSView * +last_child (NSView *parent) +{ + NSArray *kids = [parent subviews]; + int nkids = [kids count]; + if (nkids == 0) + return 0; + else + return [kids objectAtIndex:nkids-1]; +} +#endif // USE_IPHONE + + +/* Add the child as a subview of the parent, positioning it immediately + below or to the right of the previously-added child of that view. + */ +- (void) placeChild: +# ifdef USE_IPHONE + (NSObject *)child +# else + (NSView *)child +# endif + on:(NSView *)parent right:(BOOL)right_p +{ +# ifndef USE_IPHONE + NSRect rect = [child frame]; + NSView *last = last_child (parent); + if (!last) { + rect.origin.x = LEFT_MARGIN; + rect.origin.y = ([parent frame].size.height - rect.size.height + - LINE_SPACING); + } else if (right_p) { + rect = [last frame]; + rect.origin.x += rect.size.width + COLUMN_SPACING; + } else { + rect = [last frame]; + rect.origin.x = LEFT_MARGIN; + rect.origin.y -= [child frame].size.height + LINE_SPACING; + } + NSRect r = [child frame]; + r.origin = rect.origin; + [child setFrame:r]; + [parent addSubview:child]; + +# else // USE_IPHONE + + // Controls is an array of arrays of the controls, divided into sections. + if (! controls) + controls = [[NSMutableArray arrayWithCapacity:10] retain]; + if ([controls count] == 0) + [controls addObject: [NSMutableArray arrayWithCapacity:10]]; + NSMutableArray *current = [controls objectAtIndex:[controls count]-1]; + + if (!right_p || [current count] == 0) { + // Nothing on the current line. Add this object. + [current addObject: child]; + } else { + // Something's on the current line already. + NSObject *old = [current objectAtIndex:[current count]-1]; + if ([old isKindOfClass:[NSMutableArray class]]) { + // Already an array in this cell. Append. + NSAssert ([(NSArray *) old count] < 4, @"internal error"); + [(NSMutableArray *) old addObject: child]; + } else { + // Replace the control in this cell with an array, then app + NSMutableArray *a = [NSMutableArray arrayWithObjects: old, child, nil]; + [current replaceObjectAtIndex:[current count]-1 withObject:a]; + } + } +# endif // USE_IPHONE +} + + +- (void) placeChild:(NSView *)child on:(NSView *)parent +{ + [self placeChild:child on:parent right:NO]; +} + + +#ifdef USE_IPHONE + +// Start putting subsequent children in a new group, to create a new +// section on the UITableView. +// +- (void) placeSeparator +{ + if (! controls) return; + if ([controls count] == 0) return; + if ([[controls objectAtIndex:[controls count]-1] + count] > 0) + [controls addObject: [NSMutableArray arrayWithCapacity:10]]; +} +#endif // USE_IPHONE - node2 = [[NSXMLElement alloc] initWithName:@"string"]; - [node2 setAttributesAsDictionary: - [NSDictionary dictionaryWithObjectsAndKeys: - @"imageDirectory", @"id", - @"Images from:", @"_label", - @"-image-directory %", @"arg", - nil]]; - make_file_selector (prefs, opts, parent, node2, YES, NO, YES); - [node2 release]; - // Add a second, explanatory label below the file/URL selector. - NSTextField *lab2 = 0; - lab2 = make_label (@"(Local folder, or URL of RSS or Atom feed)"); - place_child (parent, lab2, NO); +/* Creates an invisible NSBox (for layout purposes) to enclose the widgets + wrapped in
or in the XML. + */ +- (void) makeGroup:(NSXMLNode *)node + on:(NSView *)parent + horizontal:(BOOL) horiz_p +{ +# ifdef USE_IPHONE + if (!horiz_p) [self placeSeparator]; + [self traverseChildren:node on:parent]; + if (!horiz_p) [self placeSeparator]; +# else // !USE_IPHONE + NSRect rect; + rect.size.width = rect.size.height = 1; + rect.origin.x = rect.origin.y = 0; + NSView *group = [[NSView alloc] initWithFrame:rect]; + [self traverseChildren:node on:group]; + + layout_group (group, horiz_p); - // Pack it in a little tighter vertically. - NSRect r2 = [lab2 frame]; - r2.origin.x += 20; - r2.origin.y += 14; - [lab2 setFrameOrigin:r2.origin]; - [lab2 release]; + rect.size.width = rect.size.height = 0; + NSBox *box = [[NSBox alloc] initWithFrame:rect]; + [box setTitlePosition:NSNoTitle]; + [box setBorderType:NSNoBorder]; + [box setContentViewMargins:rect.size]; + [box setContentView:group]; + [box sizeToFit]; + + [self placeChild:box on:parent]; +# endif // !USE_IPHONE } +#ifndef USE_IPHONE +static void +layout_group (NSView *group, BOOL horiz_p) +{ + NSArray *kids = [group subviews]; + int nkids = [kids count]; + int i; + double maxx = 0, miny = 0; + for (i = 0; i < nkids; i++) { + NSView *kid = [kids objectAtIndex:i]; + NSRect r = [kid frame]; + + if (horiz_p) { + maxx += r.size.width + COLUMN_SPACING; + if (r.size.height > -miny) miny = -r.size.height; + } else { + if (r.size.width > maxx) maxx = r.size.width; + miny = r.origin.y - r.size.height; + } + } + + NSRect rect; + rect.origin.x = 0; + rect.origin.y = 0; + rect.size.width = maxx; + rect.size.height = -miny; + [group setFrame:rect]; + + double x = 0; + for (i = 0; i < nkids; i++) { + NSView *kid = [kids objectAtIndex:i]; + NSRect r = [kid frame]; + if (horiz_p) { + r.origin.y = rect.size.height - r.size.height; + r.origin.x = x; + x += r.size.width + COLUMN_SPACING; + } else { + r.origin.y -= miny; + } + [kid setFrame:r]; + } +} +#endif // !USE_IPHONE + /* Create some kind of control corresponding to the given XML node. */ -static void -make_control (NSUserDefaultsController *prefs, - const XrmOptionDescRec *opts, NSView *parent, NSXMLNode *node) +-(void)makeControl:(NSXMLNode *)node on:(NSView *)parent { NSString *name = [node name]; if ([node kind] == NSXMLCommentKind) return; + + if ([node kind] == NSXMLTextKind) { + NSString *s = [(NSString *) [node objectValue] + stringByTrimmingCharactersInSet: + [NSCharacterSet whitespaceAndNewlineCharacterSet]]; + if (! [s isEqualToString:@""]) { + NSAssert1 (0, @"unexpected text: %@", s); + } + return; + } + if ([node kind] != NSXMLElementKind) { NSAssert2 (0, @"weird XML node kind: %d: %@", (int)[node kind], node); return; @@ -1527,35 +2275,36 @@ make_control (NSUserDefaultsController *prefs, if ([name isEqualToString:@"hgroup"] || [name isEqualToString:@"vgroup"]) { - BOOL horiz_p = [name isEqualToString:@"hgroup"]; - make_group (prefs, opts, parent, node, horiz_p); + [self makeGroup:node on:parent + horizontal:[name isEqualToString:@"hgroup"]]; } else if ([name isEqualToString:@"command"]) { // do nothing: this is the "-root" business } else if ([name isEqualToString:@"boolean"]) { - make_checkbox (prefs, opts, parent, node); + [self makeCheckbox:node on:parent]; } else if ([name isEqualToString:@"string"]) { - make_text_field (prefs, opts, parent, node, NO); + [self makeTextField:node on:parent withLabel:NO horizontal:NO]; } else if ([name isEqualToString:@"file"]) { - make_file_selector (prefs, opts, parent, node, NO, NO, NO); + [self makeFileSelector:node on:parent + dirsOnly:NO withLabel:YES editable:NO]; } else if ([name isEqualToString:@"number"]) { - make_number_selector (prefs, opts, parent, node); + [self makeNumberSelector:node on:parent]; } else if ([name isEqualToString:@"select"]) { - make_option_menu (prefs, opts, parent, node); + [self makeOptionMenu:node on:parent]; } else if ([name isEqualToString:@"_description"]) { - make_desc_label (parent, node); + [self makeDescLabel:node on:parent]; } else if ([name isEqualToString:@"xscreensaver-text"]) { - make_text_controls (prefs, opts, parent, node); + [self makeTextLoaderControlBox:node on:parent]; } else if ([name isEqualToString:@"xscreensaver-image"]) { - make_image_controls (prefs, opts, parent, node); + [self makeImageLoaderControlBox:node on:parent]; } else { NSAssert1 (0, @"unknown tag: %@", name); @@ -1565,45 +2314,18 @@ make_control (NSUserDefaultsController *prefs, /* Iterate over and process the children of this XML node. */ -static void -traverse_children (NSUserDefaultsController *prefs, - const XrmOptionDescRec *opts, - NSView *parent, NSXMLNode *node) +- (void)traverseChildren:(NSXMLNode *)node on:(NSView *)parent { NSArray *children = [node children]; int i, count = [children count]; for (i = 0; i < count; i++) { NSXMLNode *child = [children objectAtIndex:i]; - make_control (prefs, opts, parent, child); + [self makeControl:child on:parent]; } } -/* Handle the options on the top level tag. - */ -static void -parse_xscreensaver_tag (NSXMLNode *node) -{ - NSMutableDictionary *dict = - [NSMutableDictionary dictionaryWithObjectsAndKeys: - @"", @"name", - @"", @"_label", - nil]; - parse_attrs (dict, node); - NSString *name = [dict objectForKey:@"name"]; - NSString *label = [dict objectForKey:@"_label"]; - - if (!label) { - NSAssert1 (0, @"no _label in %@", [node name]); - return; - } - if (!name) { - NSAssert1 (0, @"no name in \"%@\"", label); - return; - } - - // #### do any callers need the "name" field for anything? -} +# ifndef USE_IPHONE /* Kludgey magic to make the window enclose the controls we created. */ @@ -1744,29 +2466,11 @@ Good: [kid setAutoresizingMask:mask]; } } +# endif // !USE_IPHONE -- (void) okClicked:(NSObject *)arg -{ - [userDefaultsController commitEditing]; - [userDefaultsController save:self]; - [NSApp endSheet:self returnCode:NSOKButton]; - [self close]; -} - -- (void) cancelClicked:(NSObject *)arg -{ - [userDefaultsController revert:self]; - [NSApp endSheet:self returnCode:NSCancelButton]; - [self close]; -} - -- (void) resetClicked:(NSObject *)arg -{ - [userDefaultsController revertToInitialValues:self]; -} - +#ifndef USE_IPHONE static NSView * wrap_with_buttons (NSWindow *window, NSView *panel) { @@ -1870,46 +2574,519 @@ wrap_with_buttons (NSWindow *window, NSView *panel) [ok setTarget:window]; [cancel setTarget:window]; [reset setTarget:window]; - [ok setAction:@selector(okClicked:)]; - [cancel setAction:@selector(cancelClicked:)]; - [reset setAction:@selector(resetClicked:)]; + [ok setAction:@selector(okAction:)]; + [cancel setAction:@selector(cancelAction:)]; + [reset setAction:@selector(resetAction:)]; return pbox; } +#endif // !USE_IPHONE /* Iterate over and process the children of the root node of the XML document. */ -static void -traverse_tree (NSUserDefaultsController *prefs, - NSWindow *window, const XrmOptionDescRec *opts, NSXMLNode *node) +- (void)traverseTree { +# ifdef USE_IPHONE + NSView *parent = [self view]; +# else + NSWindow *parent = self; +#endif + NSXMLNode *node = xml_root; + if (![[node name] isEqualToString:@"screensaver"]) { NSAssert (0, @"top level node is not "); } - parse_xscreensaver_tag (node); + saver_name = [self parseXScreenSaverTag: node]; + [saver_name retain]; +# ifndef USE_IPHONE + NSRect rect; rect.origin.x = rect.origin.y = 0; rect.size.width = rect.size.height = 1; NSView *panel = [[NSView alloc] initWithFrame:rect]; - - traverse_children (prefs, opts, panel, node); + [self traverseChildren:node on:panel]; fix_contentview_size (panel); - NSView *root = wrap_with_buttons (window, panel); - [prefs setAppliesImmediately:NO]; + NSView *root = wrap_with_buttons (parent, panel); + [userDefaultsController setAppliesImmediately:NO]; [panel setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable]; - rect = [window frameRectForContentRect:[root frame]]; - [window setFrame:rect display:NO]; - [window setMinSize:rect.size]; + rect = [parent frameRectForContentRect:[root frame]]; + [parent setFrame:rect display:NO]; + [parent setMinSize:rect.size]; - [window setContentView:root]; + [parent setContentView:root]; + +# else // USE_IPHONE + + CGRect r = [parent frame]; + r.size = [[UIScreen mainScreen] bounds].size; + [parent setFrame:r]; + [self traverseChildren:node on:parent]; + +# endif // USE_IPHONE +} + + +- (void)parser:(NSXMLParser *)parser + didStartElement:(NSString *)elt + namespaceURI:(NSString *)ns + qualifiedName:(NSString *)qn + attributes:(NSDictionary *)attrs +{ + NSXMLElement *e = [[NSXMLElement alloc] initWithName:elt]; + [e setKind:SimpleXMLElementKind]; + [e setAttributesAsDictionary:attrs]; + NSXMLElement *p = xml_parsing; + [e setParent:p]; + xml_parsing = e; + if (! xml_root) + xml_root = xml_parsing; +} + +- (void)parser:(NSXMLParser *)parser + didEndElement:(NSString *)elt + namespaceURI:(NSString *)ns + qualifiedName:(NSString *)qn +{ + NSXMLElement *p = xml_parsing; + if (! p) { + NSLog(@"extra close: %@", elt); + } else if (![[p name] isEqualToString:elt]) { + NSLog(@"%@ closed by %@", [p name], elt); + } else { + NSXMLElement *n = xml_parsing; + xml_parsing = [n parent]; + } +} + + +- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string +{ + NSXMLElement *e = [[NSXMLElement alloc] initWithName:@"text"]; + [e setKind:SimpleXMLTextKind]; + NSXMLElement *p = xml_parsing; + [e setParent:p]; + [e setObjectValue: string]; +} + + +# ifdef USE_IPHONE +# ifdef USE_PICKER_VIEW + +#pragma mark UIPickerView delegate methods + +- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pv +{ + return 1; // Columns +} + +- (NSInteger)pickerView:(UIPickerView *)pv + numberOfRowsInComponent:(NSInteger)column +{ + NSAssert (column == 0, @"weird column"); + NSArray *a = [picker_values objectAtIndex: [pv tag]]; + if (! a) return 0; // Too early? + return [a count]; +} + +- (CGFloat)pickerView:(UIPickerView *)pv + rowHeightForComponent:(NSInteger)column +{ + return [NSFont systemFontSize] * 1.5; // #### WHAT +} + +- (CGFloat)pickerView:(UIPickerView *)pv + widthForComponent:(NSInteger)column +{ + NSAssert (column == 0, @"weird column"); + NSArray *a = [picker_values objectAtIndex: [pv tag]]; + if (! a) return 0; // Too early? + + UIFont *f = [UIFont systemFontOfSize:[NSFont systemFontSize]]; + CGFloat max = 0; + for (NSArray *a2 in a) { + NSString *s = [a2 objectAtIndex:0]; + CGSize r = [s sizeWithFont:f]; + if (r.width > max) max = r.width; + } + + max *= 1.7; // WTF!! + + if (max > 320) + max = 320; + else if (max < 120) + max = 120; + + return max; + +} + + +- (NSString *)pickerView:(UIPickerView *)pv + titleForRow:(NSInteger)row + forComponent:(NSInteger)column +{ + NSAssert (column == 0, @"weird column"); + NSArray *a = [picker_values objectAtIndex: [pv tag]]; + if (! a) return 0; // Too early? + a = [a objectAtIndex:row]; + NSAssert (a, @"internal error"); + return [a objectAtIndex:0]; +} + +# endif // USE_PICKER_VIEW + + +#pragma mark UITableView delegate methods + +- (void) addResetButton +{ + [[self navigationItem] + setRightBarButtonItem: [[UIBarButtonItem alloc] + initWithTitle: @"Reset to Defaults" + style: UIBarButtonItemStyleBordered + target:self + action:@selector(resetAction:)]]; +} + + +- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)o +{ + return YES; +} + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tv { + // Number of vertically-stacked white boxes. + return [controls count]; +} + +- (NSInteger)tableView:(UITableView *)tableView + numberOfRowsInSection:(NSInteger)section +{ + // Number of lines in each vertically-stacked white box. + NSAssert (controls, @"internal error"); + return [[controls objectAtIndex:section] count]; +} + +- (NSString *)tableView:(UITableView *)tv + titleForHeaderInSection:(NSInteger)section +{ + // Titles above each vertically-stacked white box. + if (section == 0) + return [saver_name stringByAppendingString:@" Settings"]; + return nil; +} + + +- (CGFloat)tableView:(UITableView *)tv + heightForRowAtIndexPath:(NSIndexPath *)ip +{ + CGFloat h = [tv rowHeight]; + + NSView *ctl = [[controls objectAtIndex:[ip indexAtPosition:0]] + objectAtIndex:[ip indexAtPosition:1]]; + + if ([ctl isKindOfClass:[NSArray class]]) { + NSArray *set = (NSArray *) ctl; + switch ([set count]) { + case 4: +# ifdef LABEL_ABOVE_SLIDER + h *= 1.7; break; // label + left/slider/right: 2 1/2 lines +# endif + case 3: h *= 1.2; break; // left/slider/right: 1 1/2 lines + case 2: + if ([[set objectAtIndex:1] isKindOfClass:[UITextField class]]) + h *= 1.2; + break; + } + } else if ([ctl isKindOfClass:[UILabel class]]) { + UILabel *t = (UILabel *) ctl; + CGRect r = t.frame; + r.size.width = 250; // WTF! Black magic! + r.size.width -= LEFT_MARGIN; + [t setFrame:r]; + [t sizeToFit]; + r = t.frame; + h = r.size.height + LINE_SPACING * 3; + + } else { + CGFloat h2 = [ctl frame].size.height; + h2 += LINE_SPACING * 2; + if (h2 > h) h = h2; + } + + return h; +} + + +- (void)refreshTableView +{ + UITableView *tv = (UITableView *) [self view]; + NSMutableArray *a = [NSMutableArray arrayWithCapacity:20]; + int rows = [self numberOfSectionsInTableView:tv]; + for (int i = 0; i < rows; i++) { + int cols = [self tableView:tv numberOfRowsInSection:i]; + for (int j = 0; j < cols; j++) { + NSUInteger ip[2]; + ip[0] = i; + ip[1] = j; + [a addObject: [NSIndexPath indexPathWithIndexes:ip length:2]]; + } + } + + [tv beginUpdates]; + [tv reloadRowsAtIndexPaths:a withRowAnimation:UITableViewRowAnimationNone]; + [tv endUpdates]; +} + + +- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)o +{ + [NSTimer scheduledTimerWithTimeInterval: 0 + target:self + selector:@selector(refreshTableView) + userInfo:nil + repeats:NO]; +} + + +#ifndef USE_PICKER_VIEW + +- (void)updateRadioGroupCell:(UITableViewCell *)cell + button:(RadioButton *)b +{ + NSArray *item = [[b items] objectAtIndex: [b index]]; + NSString *pref_key = [item objectAtIndex:1]; + NSObject *pref_val = [item objectAtIndex:2]; + NSObject *current = [userDefaultsController objectForKey:pref_key]; + + // Convert them both to strings and compare those, so that + // we don't get screwed by int 1 versus string "1". + // Will boolean true/1 screw us here too? + // + NSString *pref_str = ([pref_val isKindOfClass:[NSString class]] + ? (NSString *) pref_val + : [(NSNumber *) pref_val stringValue]); + NSString *current_str = ([current isKindOfClass:[NSString class]] + ? (NSString *) current + : [(NSNumber *) current stringValue]); + BOOL match_p = [current_str isEqualToString:pref_str]; + + // NSLog(@"\"%@\" = \"%@\" | \"%@\" ", pref_key, pref_val, current_str); + + if (match_p) + [cell setAccessoryType:UITableViewCellAccessoryCheckmark]; + else + [cell setAccessoryType:UITableViewCellAccessoryNone]; +} + + +- (void)tableView:(UITableView *)tv + didSelectRowAtIndexPath:(NSIndexPath *)ip +{ + RadioButton *ctl = [[controls objectAtIndex:[ip indexAtPosition:0]] + objectAtIndex:[ip indexAtPosition:1]]; + if (! [ctl isKindOfClass:[RadioButton class]]) + return; + + [self radioAction:ctl]; + [self refreshTableView]; +} + + +#endif // !USE_PICKER_VIEW + + + +- (UITableViewCell *)tableView:(UITableView *)tv + cellForRowAtIndexPath:(NSIndexPath *)ip +{ +#if 0 + /* #### If we re-use cells, then clicking on a checkbox RadioButton + (in non-USE_PICKER_VIEW mode) makes all the cells disappear. + This doesn't happen if we don't re-use any cells. Oh well. + */ + NSString *id = [NSString stringWithFormat: @"%d:%d", + [ip indexAtPosition:0], + [ip indexAtPosition:1]]; + UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier: id]; + + if (cell) return cell; +#else + NSString *id = nil; + UITableViewCell *cell; +#endif + + cell = [[[UITableViewCell alloc] initWithStyle: UITableViewCellStyleDefault + reuseIdentifier: id] + autorelease]; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + + CGRect p = [cell frame]; + CGRect r; + + p.size.height = [self tableView:tv heightForRowAtIndexPath:ip]; + [cell setFrame:p]; + + // Allocate more space to the controls on iPad screens, + // and on landscape-mode iPhones. + CGFloat ww = [tv frame].size.width; + CGFloat left_edge = (ww > 700 + ? p.size.width * 0.9 + : ww > 320 + ? p.size.width * 0.5 + : p.size.width * 0.3); + CGFloat right_edge = p.origin.x + p.size.width - LEFT_MARGIN; + + + NSView *ctl = [[controls objectAtIndex:[ip indexAtPosition:0]] + objectAtIndex:[ip indexAtPosition:1]]; + + if ([ctl isKindOfClass:[NSArray class]]) { + // This cell has a set of objects in it. + NSArray *set = (NSArray *) ctl; + switch ([set count]) { + case 2: + { + // With 2 elements, the first of the pair must be a label. + ctl = [set objectAtIndex: 0]; + NSAssert ([ctl isKindOfClass:[UILabel class]], @"unhandled type"); + cell.textLabel.text = [(UILabel *) ctl text]; + ctl = [set objectAtIndex: 1]; + + r = [ctl frame]; + if ([ctl isKindOfClass:[UISwitch class]]) { + // Flush right checkboxes. + ctl.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin; + r.size.width = 80; // Magic. + r.origin.x = right_edge - r.size.width; + } else { + // Expandable sliders. + ctl.autoresizingMask = UIViewAutoresizingFlexibleWidth; + r.origin.x = left_edge; + r.size.width = right_edge - r.origin.x; + } + r.origin.y = (p.size.height - r.size.height) / 2; + [ctl setFrame:r]; + } + break; + case 3: + case 4: + { + // With 3 elements, the first and last must be labels. + // With 4 elements, the first, second and last must be labels. + int i = 0; + UILabel *top = ([set count] == 4 + ? [set objectAtIndex: i++] + : 0); + UILabel *left = [set objectAtIndex: i++]; + NSView *mid = [set objectAtIndex: i++]; + UILabel *right = [set objectAtIndex: i++]; + NSAssert (!top || [top isKindOfClass:[UILabel class]], @"WTF"); + NSAssert ( [left isKindOfClass:[UILabel class]], @"WTF"); + NSAssert ( ![mid isKindOfClass:[UILabel class]], @"WTF"); + NSAssert ( [right isKindOfClass:[UILabel class]], @"WTF"); + + // 3 elements: control at top of cell. + // 4 elements: center the control vertically. + r = [mid frame]; +# ifdef LABEL_ABOVE_SLIDER + left_edge = LEFT_MARGIN; +# endif + r.origin.x = left_edge; + r.size.width = right_edge - r.origin.x; + r.origin.y = ([set count] == 3 + ? 8 + : (p.size.height - r.size.height) / 2); + [mid setFrame:r]; + + // Top label goes above, flush center/top. + if (top) { + // [top setFont:[[cell textLabel] font]]; // 0 point? + r.size = [[top text] sizeWithFont:[top font] + constrainedToSize: + CGSizeMake (p.size.width - LEFT_MARGIN*2, + 100000) + lineBreakMode:[top lineBreakMode]]; + r.origin.x = (p.size.width - r.size.width) / 2; + r.origin.y = 4; + [top setFrame:r]; + } + + // Left label goes under control, flush left/bottom. + r.size = [[left text] sizeWithFont:[left font] + constrainedToSize: + CGSizeMake(p.size.width - LEFT_MARGIN*2, + 100000) + lineBreakMode:[left lineBreakMode]]; + r.origin.x = [mid frame].origin.x; + r.origin.y = p.size.height - r.size.height - 4; + [left setFrame:r]; + + // Right label goes under control, flush right/bottom. + r = [right frame]; + r.size = [[right text] sizeWithFont:[right font] + constrainedToSize: + CGSizeMake(p.size.width - LEFT_MARGIN*2, + 1000000) + lineBreakMode:[right lineBreakMode]]; + r.origin.x = ([mid frame].origin.x + [mid frame].size.width - + r.size.width); + r.origin.y = [left frame].origin.y; + [right setFrame:r]; + + // Then make a box. + ctl = [[UIView alloc] initWithFrame:p]; + if (top) { +# ifdef LABEL_ABOVE_SLIDER + [ctl addSubview: top]; + top.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin| + UIViewAutoresizingFlexibleRightMargin); +# else + cell.textLabel.text = [top text]; +# endif + } + [ctl addSubview: left]; + [ctl addSubview: mid]; + [ctl addSubview: right]; + + left. autoresizingMask = UIViewAutoresizingFlexibleRightMargin; + mid. autoresizingMask = UIViewAutoresizingFlexibleWidth; + right.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin; + ctl. autoresizingMask = UIViewAutoresizingFlexibleWidth; + } + break; + default: + NSAssert (0, @"unhandled size"); + } + } else { + // A single view, not a pair. + + r = [ctl frame]; + r.origin.x = LEFT_MARGIN; + r.origin.y = LINE_SPACING; + r.size.width = right_edge - r.origin.x; + [ctl setFrame:r]; + + ctl.autoresizingMask = UIViewAutoresizingFlexibleWidth; + +# ifndef USE_PICKER_VIEW + if ([ctl isKindOfClass:[RadioButton class]]) + [self updateRadioGroupCell:cell button:(RadioButton *)ctl]; +# endif // USE_PICKER_VIEW + } + + [cell.contentView addSubview: ctl]; + + return cell; } +# endif // USE_IPHONE /* When this object is instantiated, it parses the XML file and creates @@ -1917,15 +3094,23 @@ traverse_tree (NSUserDefaultsController *prefs, The default size of the view is just big enough to hold them all. */ - (id)initWithXMLFile: (NSString *) xml_file - options: (const XrmOptionDescRec *) opts - controller: (NSUserDefaultsController *) prefs + options: (const XrmOptionDescRec *) _opts + controller: (NSUserDefaultsController *) _prefs + defaults: (NSDictionary *) _defs { - if (! (self = [super init])) - return 0; - - // instance variable - userDefaultsController = prefs; - [prefs retain]; +# ifndef USE_IPHONE + self = [super init]; +# else // !USE_IPHONE + self = [super initWithStyle:UITableViewStyleGrouped]; + self.title = [saver_name stringByAppendingString:@" Settings"]; +# endif // !USE_IPHONE + if (! self) return 0; + + // instance variables + opts = _opts; + defaultOptions = _defs; + userDefaultsController = _prefs; + [userDefaultsController retain]; NSURL *furl = [NSURL fileURLWithPath:xml_file]; @@ -1934,6 +3119,7 @@ traverse_tree (NSUserDefaultsController *prefs, return nil; } +#if 0 // -- the old way NSError *err = nil; NSXMLDocument *xmlDoc = [[NSXMLDocument alloc] initWithContentsOfURL:furl @@ -1948,7 +3134,27 @@ traverse_tree (NSUserDefaultsController *prefs, } traverse_tree (prefs, self, opts, [xmlDoc rootElement]); - [xmlDoc release]; +#endif /* 0 */ + + + NSXMLParser *xmlDoc = [[NSXMLParser alloc] initWithContentsOfURL:furl]; + if (!xmlDoc) { + NSAssert1 (0, @"XML Error: %@", xml_file); + return nil; + } + [xmlDoc setDelegate:self]; + if (! [xmlDoc parse]) { + NSError *err = [xmlDoc parserError]; + NSAssert2 (0, @"XML Error: %@: %@", xml_file, err); + return nil; + } + + [self traverseTree]; + xml_root = 0; + +# ifdef USE_IPHONE + [self addResetButton]; +# endif return self; } @@ -1956,7 +3162,16 @@ traverse_tree (NSUserDefaultsController *prefs, - (void) dealloc { + [saver_name release]; [userDefaultsController release]; +# ifdef USE_IPHONE + [controls release]; + [pref_keys release]; + [pref_ctls release]; +# ifdef USE_PICKER_VIEW + [picker_values release]; +# endif +# endif [super dealloc]; } diff --git a/OSX/XScreenSaverGLView.h b/OSX/XScreenSaverGLView.h index 1b9f270e..365cfba4 100644 --- a/OSX/XScreenSaverGLView.h +++ b/OSX/XScreenSaverGLView.h @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2006-2009 Jamie Zawinski +/* xscreensaver, Copyright (c) 2006-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -16,11 +16,24 @@ */ #import "XScreenSaverView.h" -#import + +#ifdef USE_IPHONE +# import +# import +# import +# import +# define NSOpenGLContext EAGLContext +#else +# import +#endif @interface XScreenSaverGLView : XScreenSaverView { NSOpenGLContext *ogl_ctx; // OpenGL rendering context + +# ifdef USE_IPHONE + GLuint gl_framebuffer, gl_renderbuffer, gl_depthbuffer; +# endif /* USE_IPHONE */ } @end diff --git a/OSX/XScreenSaverGLView.m b/OSX/XScreenSaverGLView.m index f0632bc9..f7a58c48 100644 --- a/OSX/XScreenSaverGLView.m +++ b/OSX/XScreenSaverGLView.m @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2006-2011 Jamie Zawinski +/* xscreensaver, Copyright (c) 2006-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -20,7 +20,11 @@ #import "screenhackI.h" #import "xlockmoreI.h" -#import +#ifdef USE_IPHONE +# include "jwzgles.h" +#else +# import +#endif /* used by the OpenGL screen savers */ @@ -33,15 +37,6 @@ extern void check_gl_error (const char *type); @implementation XScreenSaverGLView -#if 0 -- (void) dealloc -{ - /* #### Do we have to destroy ogl_ctx? */ - [super dealloc]; -} -#endif - - - (void)stopAnimation { [super stopAnimation]; @@ -49,7 +44,9 @@ extern void check_gl_error (const char *type); // Without this, the GL frame stays on screen when switching tabs // in System Preferences. // +# ifndef USE_IPHONE [NSOpenGLContext clearCurrentContext]; +# endif // !USE_IPHONE } @@ -57,24 +54,23 @@ extern void check_gl_error (const char *type); - (void) prepareContext { if (ogl_ctx) { +#ifdef USE_IPHONE + [EAGLContext setCurrentContext:ogl_ctx]; +#else // !USE_IPHONE [ogl_ctx makeCurrentContext]; // check_gl_error ("makeCurrentContext"); [ogl_ctx update]; +#endif // !USE_IPHONE } } - (void) resizeContext { +# ifndef USE_IPHONE if (ogl_ctx) [ogl_ctx setView:self]; -} - - -- (void)drawRect:(NSRect)rect -{ - if (! ogl_ctx) - [super drawRect:rect]; +# endif // !USE_IPHONE } @@ -87,9 +83,156 @@ extern void check_gl_error (const char *type); - (void) setOglContext: (NSOpenGLContext *) ctx { ogl_ctx = ctx; + +# ifdef USE_IPHONE + [EAGLContext setCurrentContext: ogl_ctx]; + + double s = self.contentScaleFactor; + int w = s * [self frame].size.width; + int h = s * [self frame].size.height; + + if (gl_framebuffer) glDeleteFramebuffersOES (1, &gl_framebuffer); + if (gl_renderbuffer) glDeleteRenderbuffersOES (1, &gl_renderbuffer); + if (gl_depthbuffer) glDeleteRenderbuffersOES (1, &gl_depthbuffer); + + glGenFramebuffersOES (1, &gl_framebuffer); + glBindFramebufferOES (GL_FRAMEBUFFER_OES, gl_framebuffer); + + glGenRenderbuffersOES (1, &gl_renderbuffer); + glBindRenderbufferOES (GL_RENDERBUFFER_OES, gl_renderbuffer); + +// redundant? +// glRenderbufferStorageOES (GL_RENDERBUFFER_OES, GL_RGBA8_OES, w, h); + [ogl_ctx renderbufferStorage:GL_RENDERBUFFER_OES + fromDrawable:(CAEAGLLayer*)self.layer]; + + glFramebufferRenderbufferOES (GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, + GL_RENDERBUFFER_OES, gl_renderbuffer); + + glGenRenderbuffersOES (1, &gl_depthbuffer); + // renderbufferStorage: must be called before this. + glBindRenderbufferOES (GL_RENDERBUFFER_OES, gl_depthbuffer); + glRenderbufferStorageOES (GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, + w, h); + glFramebufferRenderbufferOES (GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, + GL_RENDERBUFFER_OES, gl_depthbuffer); + + int err = glCheckFramebufferStatusOES (GL_FRAMEBUFFER_OES); + switch (err) { + case GL_FRAMEBUFFER_COMPLETE_OES: + break; + case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES: + NSAssert (0, @"framebuffer incomplete attachment"); + break; + case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES: + NSAssert (0, @"framebuffer incomplete missing attachment"); + break; + case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES: + NSAssert (0, @"framebuffer incomplete dimensions"); + break; + case GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES: + NSAssert (0, @"framebuffer incomplete formats"); + break; + case GL_FRAMEBUFFER_UNSUPPORTED_OES: + NSAssert (0, @"framebuffer unsupported"); + break; +/* + case GL_FRAMEBUFFER_UNDEFINED: + NSAssert (0, @"framebuffer undefined"); + break; + case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER: + NSAssert (0, @"framebuffer incomplete draw buffer"); + break; + case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER: + NSAssert (0, @"framebuffer incomplete read buffer"); + break; + case GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: + NSAssert (0, @"framebuffer incomplete multisample"); + break; + case GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS: + NSAssert (0, @"framebuffer incomplete layer targets"); + break; + */ + default: + NSAssert (0, @"framebuffer incomplete, unknown error 0x%04X", err); + break; + } + + check_gl_error ("setOglContext"); + +# endif // USE_IPHONE + [self resizeContext]; } +#ifdef USE_IPHONE ++ (Class) layerClass +{ + return [CAEAGLLayer class]; +} + + +/* On MacOS: drawRect does nothing, and animateOneFrame renders. + On iOS GL: drawRect does nothing, and animateOneFrame renders. + On iOS X11: drawRect renders, and animateOneFrame marks the view dirty. + */ +- (void)drawRect:(NSRect)rect +{ +} + + +- (void) animateOneFrame +{ + UIGraphicsPushContext (backbuffer); + [self render_x11]; + UIGraphicsPopContext(); +} + + +/* The backbuffer isn't actually used for GL programs, but it needs to + be there for X11 calls to not error out. However, nothing done with + X11 calls will ever show up! It all gets written into the backbuffer + and discarded. That's ok, though, because mostly it's just calls to + XClearWindow and housekeeping stuff like that. So we make a tiny one. + */ +- (void) createBackbuffer +{ + // Don't resize the X11 window to match rotation. + // Rotation and scaling are handled in GL. + // + NSRect f = [self frame]; + double s = self.contentScaleFactor; + backbuffer_size.width = (int) (s * f.size.width); + backbuffer_size.height = (int) (s * f.size.height); + + if (! backbuffer) { + CGColorSpaceRef cs = CGColorSpaceCreateDeviceRGB(); + int w = 8; + int h = 8; + backbuffer = CGBitmapContextCreate (NULL, w, h, + 8, w*4, cs, + kCGImageAlphaPremultipliedLast); + CGColorSpaceRelease (cs); + } +} + + +- (void) swapBuffers +{ + glBindRenderbufferOES (GL_RENDERBUFFER_OES, gl_renderbuffer); + [ogl_ctx presentRenderbuffer:GL_RENDERBUFFER_OES]; +} +# endif // USE_IPHONE + + +- (void)dealloc { + // ogl_ctx + // gl_framebuffer + // gl_renderbuffer + // gl_depthbuffer + [super dealloc]; +} + @end @@ -97,6 +240,16 @@ extern void check_gl_error (const char *type); */ +// redefine these now since they don't work when not inside an ObjC method. + +#undef NSAssert +#undef NSAssert1 +#undef NSAssert2 +#define NSAssert(CC,S) do { if (!(CC)) { NSLog(S); abort();}} while(0) +#define NSAssert1(CC,S,A) do { if (!(CC)) { NSLog(S,A); abort();}} while(0) +#define NSAssert2(CC,S,A,B) do { if (!(CC)) { NSLog(S,A,B);abort();}} while(0) + + /* Called by OpenGL savers using the XLockmore API. */ GLXContext * @@ -104,8 +257,12 @@ init_GL (ModeInfo *mi) { Window win = mi->window; XScreenSaverGLView *view = (XScreenSaverGLView *) jwxyz_window_view (win); + NSAssert1 ([view isKindOfClass:[XScreenSaverGLView class]], + @"wrong view class: %@", view); NSOpenGLContext *ctx = [view oglContext]; +# ifndef USE_IPHONE + if (!ctx) { NSOpenGLPixelFormatAttribute attrs[40]; @@ -149,10 +306,7 @@ init_GL (ModeInfo *mi) pixfmt = [[NSOpenGLPixelFormat alloc] initWithAttributes:attrs]; } - if (! pixfmt) { - NSLog (@"unable to create NSOpenGLPixelFormat"); - exit (1); - } + NSAssert (pixfmt, @"unable to create NSOpenGLPixelFormat"); ctx = [[NSOpenGLContext alloc] initWithFormat:pixfmt @@ -196,6 +350,38 @@ init_GL (ModeInfo *mi) check_gl_error ("init_GL"); +# else // USE_IPHONE + + EAGLContext *ogl_ctx = ctx; + if (!ogl_ctx) { + + Bool dbuf_p = + get_boolean_resource (mi->dpy, "doubleBuffer", "DoubleBuffer"); + + /* There seems to be no way to actually turn off double-buffering in + EAGLContext (e.g., no way to draw to the front buffer directly) + but if we turn on "retained backing" for non-buffering apps like + "pipes", at least the back buffer isn't auto-cleared on them. + */ + CAEAGLLayer *eagl_layer = (CAEAGLLayer *) view.layer; + eagl_layer.opaque = TRUE; + eagl_layer.drawableProperties = + [NSDictionary dictionaryWithObjectsAndKeys: + kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, + [NSNumber numberWithBool:!dbuf_p], kEAGLDrawablePropertyRetainedBacking, + nil]; + + ogl_ctx = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1]; + } + + if (!ogl_ctx) + return 0; + [view setOglContext:ogl_ctx]; + + check_gl_error ("OES_init"); + +# endif // USE_IPHONE + // Caller expects a pointer to an opaque struct... which it dereferences. // Don't ask me, it's historical... static int blort = -1; @@ -209,8 +395,14 @@ void glXSwapBuffers (Display *dpy, Window window) { XScreenSaverGLView *view = (XScreenSaverGLView *) jwxyz_window_view (window); + NSAssert1 ([view isKindOfClass:[XScreenSaverGLView class]], + @"wrong view class: %@", view); +#ifndef USE_IPHONE NSOpenGLContext *ctx = [view oglContext]; if (ctx) [ctx flushBuffer]; // despite name, this actually swaps +#else /* USE_IPHONE */ + [view swapBuffers]; +#endif /* USE_IPHONE */ } /* Does nothing - prepareContext already did the work. @@ -254,6 +446,5 @@ check_gl_error (const char *type) default: e = buf; sprintf (buf, "unknown GL error %d", (int) i); break; } - NSLog (@"%s GL error: %s", type, e); - exit (1); + NSAssert2 (0, @"%s GL error: %s", type, e); } diff --git a/OSX/XScreenSaverView.h b/OSX/XScreenSaverView.h index 1c384ffa..eb241b39 100644 --- a/OSX/XScreenSaverView.h +++ b/OSX/XScreenSaverView.h @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2006-2011 Jamie Zawinski +/* xscreensaver, Copyright (c) 2006-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -15,11 +15,43 @@ the "screenhack.c" module. */ -#import -#import +#ifdef USE_IPHONE +# import +# import +# define NSView UIView +# define NSRect CGRect +# define NSSize CGSize +# define NSColor UIColor +# define NSImage UIImage +# define NSEvent UIEvent +# define NSWindow UIWindow +#else +# import +# import +#endif + + #import "screenhackI.h" #import "PrefsReader.h" +#ifdef USE_IPHONE +@interface ScreenSaverView : NSView +- (id)initWithFrame:(NSRect)frame isPreview:(BOOL)isPreview; +- (NSTimeInterval)animationTimeInterval; +- (void)setAnimationTimeInterval:(NSTimeInterval)timeInterval; +- (void)startAnimation; +- (void)stopAnimation; +- (BOOL)isAnimating; +- (void)animateOneFrame; +- (BOOL)hasConfigureSheet; +//- (NSWindow*)configureSheet; +- (UIViewController*)configureView; +- (BOOL)isPreview; +@end + +#endif // USE_IPHONE + + @interface XScreenSaverView : ScreenSaverView { struct xscreensaver_function_table *xsft; @@ -35,10 +67,40 @@ Window xwindow; void *xdata; fps_state *fpst; + +# ifdef USE_IPHONE + UIDeviceOrientation orientation, new_orientation; + NSTimer *orientation_Timer; + BOOL screenLocked; + + GLfloat rotation_ratio; // ratio thru rotation anim, or -1 + NSSize rot_from, rot_to; // start size rect, end size rect + GLfloat angle_from, angle_to; // start angle, end angle + double rot_start_time; + + NSSize rot_current_size; + GLfloat rot_current_angle; + + CGContextRef backbuffer; + NSSize backbuffer_size; + + NSTimer *crash_timer; + +# endif // USE_IPHONE + } +- (id)initWithFrame:(NSRect)frame saverName:(NSString*)n isPreview:(BOOL)p; + +- (void) render_x11; - (void) prepareContext; - (void) resizeContext; - (NSUserDefaultsController *) userDefaultsController; +#ifdef USE_IPHONE +- (void)didRotate:(NSNotification *)notification; +- (void)setScreenLocked:(BOOL)locked; +- (void)createBackbuffer; +#endif // USE_IPHONE + @end diff --git a/OSX/XScreenSaverView.m b/OSX/XScreenSaverView.m index 404cfc1c..8c6b5ea4 100644 --- a/OSX/XScreenSaverView.m +++ b/OSX/XScreenSaverView.m @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2006-2011 Jamie Zawinski +/* xscreensaver, Copyright (c) 2006-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -15,6 +15,7 @@ the "screenhack.c" module. */ +#import #import "XScreenSaverView.h" #import "XScreenSaverConfigSheet.h" #import "screenhackI.h" @@ -41,19 +42,66 @@ const char *progclass; int mono_p = 0; +# ifdef USE_IPHONE + +/* Stub definition of the superclass, for iPhone. + */ +@implementation ScreenSaverView +{ + NSTimeInterval anim_interval; + Bool animating_p; + NSTimer *anim_timer; +} + +- (id)initWithFrame:(NSRect)frame isPreview:(BOOL)isPreview { + self = [super initWithFrame:frame]; + if (! self) return 0; + anim_interval = 1.0/30; + return self; +} +- (NSTimeInterval)animationTimeInterval { return anim_interval; } +- (void)setAnimationTimeInterval:(NSTimeInterval)i { anim_interval = i; } +- (BOOL)hasConfigureSheet { return NO; } +- (NSWindow *)configureSheet { return nil; } +- (NSView *)configureView { return nil; } +- (BOOL)isPreview { return NO; } +- (BOOL)isAnimating { return animating_p; } +- (void)animateOneFrame { } + +- (void)startAnimation { + if (animating_p) return; + animating_p = YES; + anim_timer = [NSTimer scheduledTimerWithTimeInterval: anim_interval + target:self + selector:@selector(animateOneFrame) + userInfo:nil + repeats:YES]; +} + +- (void)stopAnimation { + if (anim_timer) { + [anim_timer invalidate]; + anim_timer = 0; + } + animating_p = NO; +} +@end + +# endif // !USE_IPHONE + + + @implementation XScreenSaverView -- (struct xscreensaver_function_table *) findFunctionTable +// Given a lower-cased saver name, returns the function table for it. +// If no name, guess the name from the class's bundle name. +// +- (struct xscreensaver_function_table *) findFunctionTable:(NSString *)name { NSBundle *nsb = [NSBundle bundleForClass:[self class]]; NSAssert1 (nsb, @"no bundle for class %@", [self class]); - + NSString *path = [nsb bundlePath]; - NSString *name = [[[path lastPathComponent] stringByDeletingPathExtension] - lowercaseString]; - NSString *suffix = @"_xscreensaver_function_table"; - NSString *table_name = [name stringByAppendingString:suffix]; - CFURLRef url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, (CFStringRef) path, kCFURLPOSIXPathStyle, @@ -62,11 +110,18 @@ int mono_p = 0; CFRelease (url); NSAssert1 (cfb, @"no CFBundle for \"%@\"", path); + if (! name) + name = [[path lastPathComponent] stringByDeletingPathExtension]; + + NSString *table_name = [[name lowercaseString] + stringByAppendingString: + @"_xscreensaver_function_table"]; void *addr = CFBundleGetDataPointerForName (cfb, (CFStringRef) table_name); - NSAssert2 (addr, @"no symbol \"%@\" in bundle %@", table_name, path); CFRelease (cfb); -// NSLog (@"%@ = 0x%08X", table_name, (unsigned long) addr); + if (! addr) + NSLog (@"no symbol \"%@\" for \"%@\"", table_name, path); + return (struct xscreensaver_function_table *) addr; } @@ -127,7 +182,7 @@ add_default_options (const XrmOptionDescRec *opts, /* These aren't "real" command-line options (there are no actual command-line options in the Cocoa version); but this is the somewhat kludgey way that the and tags in the - ../hacks/config/*.xml files communicate with the preferences database. + ../hacks/config/\*.xml files communicate with the preferences database. */ static const XrmOptionDescRec default_options [] = { { "-text-mode", ".textMode", XrmoptionSepArg, 0 }, @@ -148,7 +203,11 @@ add_default_options (const XrmOptionDescRec *opts, ".doFPS: False", ".doubleBuffer: True", ".multiSample: False", +# ifndef USE_IPHONE ".textMode: date", +# else + ".textMode: url", +# endif // ".textLiteral: ", // ".textFile: ", ".textURL: http://twitter.com/statuses/public_timeline.atom", @@ -156,6 +215,7 @@ add_default_options (const XrmOptionDescRec *opts, ".grabDesktopImages: yes", ".chooseRandomImages: no", ".imageDirectory: ~/Pictures", + ".relaunchDelay: 2", 0 }; @@ -209,14 +269,53 @@ add_default_options (const XrmOptionDescRec *opts, } -- (id) initWithFrame:(NSRect)frame isPreview:(BOOL)isPreview +#ifdef USE_IPHONE +/* Returns the current time in seconds as a double. + */ +static double +double_time (void) +{ + struct timeval now; +# ifdef GETTIMEOFDAY_TWO_ARGS + struct timezone tzp; + gettimeofday(&now, &tzp); +# else + gettimeofday(&now); +# endif + + return (now.tv_sec + ((double) now.tv_usec * 0.000001)); +} +#endif // USE_IPHONE + + +- (id) initWithFrame:(NSRect)frame + saverName:(NSString *)saverName + isPreview:(BOOL)isPreview { +# ifdef USE_IPHONE + rot_current_size = frame.size; // needs to be early, because + rot_from = rot_current_size; // [self setFrame] is called by + rot_to = rot_current_size; // [super initWithFrame]. + rotation_ratio = -1; +# endif + if (! (self = [super initWithFrame:frame isPreview:isPreview])) return 0; - xsft = [self findFunctionTable]; + xsft = [self findFunctionTable: saverName]; + if (! xsft) { + [self release]; + return 0; + } + [self setShellPath]; +# ifdef USE_IPHONE + [self setMultipleTouchEnabled:YES]; + orientation = UIDeviceOrientationUnknown; + [self didRotate:nil]; +# endif // USE_IPHONE + setup_p = YES; if (xsft->setup_cb) xsft->setup_cb (xsft, xsft->setup_arg); @@ -244,16 +343,40 @@ add_default_options (const XrmOptionDescRec *opts, next_frame_time = 0; +# ifdef USE_IPHONE + [self createBackbuffer]; + + // So we can tell when we're docked. + [UIDevice currentDevice].batteryMonitoringEnabled = YES; +# endif // USE_IPHONE + return self; } +- (id) initWithFrame:(NSRect)frame isPreview:(BOOL)p +{ + return [self initWithFrame:frame saverName:0 isPreview:p]; +} + + - (void) dealloc { NSAssert(![self isAnimating], @"still animating"); NSAssert(!xdata, @"xdata not yet freed"); if (xdpy) jwxyz_free_display (xdpy); + +# ifdef USE_IPHONE + if (backbuffer) + CGContextRelease (backbuffer); +# endif + [prefsReader release]; + + // xsft + // fpst + // orientation_timer + [super dealloc]; } @@ -263,6 +386,28 @@ add_default_options (const XrmOptionDescRec *opts, } +#ifdef USE_IPHONE +- (void) lockFocus { } +- (void) unlockFocus { } +#endif // USE_IPHONE + + + +# ifdef USE_IPHONE +/* A few seconds after the saver launches, we store the "wasRunning" + preference. This is so that if the saver is crashing at startup, + we don't launch it again next time, getting stuck in a crash loop. + */ +- (void) allSystemsGo: (NSTimer *) timer +{ + NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; + [prefs setBool:YES forKey:@"wasRunning"]; + NSAssert (timer == crash_timer, @"crash timer screwed up"); + crash_timer = 0; +} +#endif // USE_IPHONE + + - (void) startAnimation { NSAssert(![self isAnimating], @"already animating"); @@ -272,8 +417,27 @@ add_default_options (const XrmOptionDescRec *opts, initialization of the screen saver (xsft->init_cb) in the first call to animateOneFrame() instead. */ + +# ifdef USE_IPHONE + if (crash_timer) + [crash_timer invalidate]; + crash_timer = [NSTimer scheduledTimerWithTimeInterval: 5 + target:self + selector:@selector(allSystemsGo:) + userInfo:nil + repeats:NO]; +# endif // USE_IPHONE + + // Never automatically turn the screen off if we are docked, + // and an animation is running. + // +# ifdef USE_IPHONE + [UIApplication sharedApplication].idleTimerDisabled = + ([UIDevice currentDevice].batteryState != UIDeviceBatteryStateUnplugged); +# endif } + - (void)stopAnimation { NSAssert([self isAnimating], @"not animating"); @@ -297,7 +461,22 @@ add_default_options (const XrmOptionDescRec *opts, xdata = 0; } +# ifdef USE_IPHONE + if (crash_timer) + [crash_timer invalidate]; + crash_timer = 0; + NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; + [prefs removeObjectForKey:@"wasRunning"]; +# endif // USE_IPHONE + [super stopAnimation]; + + // When an animation is no longer running (e.g., looking at the list) + // then it's ok to power off the screen when docked. + // +# ifdef USE_IPHONE + [UIApplication sharedApplication].idleTimerDisabled = NO; +# endif } @@ -321,14 +500,143 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure) fps_draw (fpst); } +#ifdef USE_IPHONE -- (void) animateOneFrame +/* Create a bitmap context into which we render everything. + */ +- (void) createBackbuffer { + CGContextRef ob = backbuffer; + NSSize osize = backbuffer_size; + + CGColorSpaceRef cs = CGColorSpaceCreateDeviceRGB(); + double s = self.contentScaleFactor; + backbuffer_size.width = (int) (s * rot_current_size.width); + backbuffer_size.height = (int) (s * rot_current_size.height); + backbuffer = CGBitmapContextCreate (NULL, + backbuffer_size.width, + backbuffer_size.height, + 8, + backbuffer_size.width * 4, + cs, + kCGImageAlphaPremultipliedLast); + NSAssert (backbuffer, @"unable to allocate back buffer"); + CGColorSpaceRelease (cs); + + // Clear it. + CGContextSetGrayFillColor (backbuffer, 0, 1); + CGRect r = CGRectZero; + r.size = backbuffer_size; + CGContextFillRect (backbuffer, r); + + if (ob) { + // Restore old bits, as much as possible, to the X11 upper left origin. + NSRect rect; + rect.origin.x = 0; + rect.origin.y = (backbuffer_size.height - osize.height); + rect.size = osize; + CGImageRef img = CGBitmapContextCreateImage (ob); + CGContextDrawImage (backbuffer, rect, img); + CGImageRelease (img); + CGContextRelease (ob); + } +} + +static GLfloat _global_rot_current_angle_kludge; + +double current_device_rotation (void) +{ + return -_global_rot_current_angle_kludge; +} + + +- (void) hackRotation +{ + if (rotation_ratio >= 0) { // in the midst of a rotation animation + +# define CLAMP180(N) while (N < 0) N += 360; while (N > 180) N -= 360 + GLfloat f = angle_from; + GLfloat t = angle_to; + CLAMP180(f); + CLAMP180(t); + GLfloat dist = -(t-f); + CLAMP180(dist); + + // Intermediate angle. + rot_current_angle = f - rotation_ratio * dist; + + // Intermediate frame size. + rot_current_size.width = rot_from.width + + rotation_ratio * (rot_to.width - rot_from.width); + rot_current_size.height = rot_from.height + + rotation_ratio * (rot_to.height - rot_from.height); + + // Tick animation. Complete rotation in 1/6th sec. + double now = double_time(); + double duration = 1/6.0; + rotation_ratio = 1 - ((rot_start_time + duration - now) / duration); + + if (rotation_ratio > 1) { // Done animating. + orientation = new_orientation; + rot_current_angle = angle_to; + rot_current_size = rot_to; + rotation_ratio = -1; + + // Check orientation again in case we rotated again while rotating: + // this is a no-op if nothing has changed. + [self didRotate:nil]; + } + } else { // Not animating a rotation. + rot_current_angle = angle_to; + rot_current_size = rot_to; + } + + CLAMP180(rot_current_angle); + _global_rot_current_angle_kludge = rot_current_angle; + +# undef CLAMP180 + + double s = self.contentScaleFactor; + if (((int) backbuffer_size.width != (int) (s * rot_current_size.width) || + (int) backbuffer_size.height != (int) (s * rot_current_size.height)) +/* && rotation_ratio == -1*/) + [self setFrame:[self frame]]; +} + +#endif // USE_IPHONE + + +- (void) render_x11 +{ +# ifdef USE_IPHONE + if (orientation == UIDeviceOrientationUnknown) + [self didRotate:nil]; + [self hackRotation]; +# endif + if (!initted_p) { if (! xdpy) { - xdpy = jwxyz_make_display (self); +# ifdef USE_IPHONE + NSAssert (backbuffer, @"no back buffer"); + xdpy = jwxyz_make_display (self, backbuffer); +# else + xdpy = jwxyz_make_display (self, 0); +# endif xwindow = XRootWindow (xdpy, 0); + +# ifdef USE_IPHONE + jwxyz_window_resized (xdpy, xwindow, + 0, 0, + backbuffer_size.width, backbuffer_size.height, + backbuffer); +# else + NSRect r = [self frame]; + jwxyz_window_resized (xdpy, xwindow, + r.origin.x, r.origin.y, + r.size.width, r.size.height, + 0); +# endif } if (!setup_p) { @@ -348,7 +656,9 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure) "background", "Background")); XClearWindow (xdpy, xwindow); +# ifndef USE_IPHONE [[self window] setAcceptsMouseMovedEvents:YES]; +# endif /* In MacOS 10.5, this enables "QuartzGL", meaning that the Quartz drawing primitives will run on the GPU instead of the CPU. @@ -376,11 +686,14 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure) } } + /* I don't understand why we have to do this *every frame*, but we do, or else the cursor comes back on. */ +# ifndef USE_IPHONE if (![self isPreview]) [NSCursor setHiddenUntilMouseMoves:YES]; +# endif if (fpst) @@ -388,8 +701,9 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure) /* This is just a guess, but the -fps code wants to know how long we were sleeping between frames. */ - unsigned long usecs = 1000000 * [self animationTimeInterval]; + long usecs = 1000000 * [self animationTimeInterval]; usecs -= 200; // caller apparently sleeps for slightly less sometimes... + if (usecs < 0) usecs = 0; fps_slept (fpst, usecs); } @@ -421,32 +735,50 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure) [self prepareContext]; if (resized_p) { - // We do this here instead of in setFrameSize so that all the + // We do this here instead of in setFrame so that all the // Xlib drawing takes place under the animation timer. [self resizeContext]; - NSRect r = [self frame]; + NSRect r; +# ifndef USE_IPHONE + r = [self frame]; +# else // USE_IPHONE + r.origin.x = 0; + r.origin.y = 0; + r.size.width = backbuffer_size.width; + r.size.height = backbuffer_size.height; +# endif // USE_IPHONE + xsft->reshape_cb (xdpy, xwindow, xdata, r.size.width, r.size.height); resized_p = NO; } + // Run any XtAppAddInput callbacks now. // (Note that XtAppAddTimeOut callbacks have already been run by // the Cocoa event loop.) // jwxyz_sources_run (display_sources_data (xdpy)); + // And finally: // +# ifndef USE_IPHONE NSDisableScreenUpdates(); +# endif unsigned long delay = xsft->draw_cb (xdpy, xwindow, xdata); if (fpst) xsft->fps_cb (xdpy, xwindow, fpst, xdata); - XSync (xdpy, 0); +# ifndef USE_IPHONE NSEnableScreenUpdates(); +# endif gettimeofday (&tv, 0); now = tv.tv_sec + (tv.tv_usec / 1000000.0); next_frame_time = now + (delay / 1000000.0); +# ifdef USE_IPHONE // Allow savers on the iPhone to run full-tilt. + if (delay < [self animationTimeInterval]) + [self setAnimationTimeInterval:(delay / 1000000.0)]; +# endif # ifdef DO_GC_HACKERY /* Current theory is that the 10.6 garbage collector sucks in the @@ -480,6 +812,12 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure) } +/* On MacOS: drawRect does nothing, and animateOneFrame renders. + On iOS GL: drawRect does nothing, and animateOneFrame renders. + On iOS X11: drawRect renders, and animateOneFrame marks the view dirty. + */ +#ifndef USE_IPHONE + - (void)drawRect:(NSRect)rect { if (xwindow) // clear to the X window's bg color, not necessarily black. @@ -488,21 +826,121 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure) [super drawRect:rect]; // early: black. } +- (void) animateOneFrame +{ + [self render_x11]; +} -- (void) setFrameSize:(NSSize) newSize +#else // USE_IPHONE + +- (void)drawRect:(NSRect)rect { - [super setFrameSize:newSize]; - if ([self isAnimating]) { - resized_p = YES; + // Render X11 into the backing store bitmap... + + NSAssert (backbuffer, @"no back buffer"); + UIGraphicsPushContext (backbuffer); + [self render_x11]; + UIGraphicsPopContext(); + + // Then copy that bitmap to the screen. + + CGContextRef cgc = UIGraphicsGetCurrentContext(); + + // Mask it to only update the parts that are exposed. +// CGContextClipToRect (cgc, rect); + + double s = self.contentScaleFactor; + CGRect frame = [self frame]; + + NSRect target; + target.size.width = backbuffer_size.width; + target.size.height = backbuffer_size.height; + target.origin.x = (s * frame.size.width - target.size.width) / 2; + target.origin.y = (s * frame.size.height - target.size.height) / 2; + + target.origin.x /= s; + target.origin.y /= s; + target.size.width /= s; + target.size.height /= s; + + CGAffineTransform t = CGAffineTransformIdentity; + + // Rotate around center + float cx = frame.size.width / 2; + float cy = frame.size.height / 2; + t = CGAffineTransformTranslate (t, cx, cy); + t = CGAffineTransformRotate (t, -rot_current_angle / (180.0 / M_PI)); + t = CGAffineTransformTranslate (t, -cx, -cy); + + // Flip Y axis + t = CGAffineTransformConcat (t, + CGAffineTransformMake ( 1, 0, 0, + -1, 0, frame.size.height)); + + // Clear background (visible in corners of screen during rotation) + if (rotation_ratio != -1) { + CGContextSetGrayFillColor (cgc, 0, 1); + CGContextFillRect (cgc, frame); } + + CGContextConcatCTM (cgc, t); + + // Copy the backbuffer to the screen. + // Note that CGContextDrawImage measures in "points", not "pixels". + CGImageRef img = CGBitmapContextCreateImage (backbuffer); + CGContextDrawImage (cgc, target, img); + CGImageRelease (img); +} + +- (void) animateOneFrame +{ + [self setNeedsDisplay]; } +#endif // !USE_IPHONE + + + - (void) setFrame:(NSRect) newRect { [super setFrame:newRect]; - if (xwindow) // inform Xlib that the window has changed. - jwxyz_window_resized (xdpy, xwindow); + +# ifdef USE_IPHONE + [self createBackbuffer]; +# endif + + resized_p = YES; // The reshape_cb runs in render_x11 + if (xwindow) { // inform Xlib that the window has changed now. +# ifdef USE_IPHONE + NSAssert (backbuffer, @"no back buffer"); + // The backbuffer is the rotated size, and so is the xwindow. + jwxyz_window_resized (xdpy, xwindow, + 0, 0, + backbuffer_size.width, backbuffer_size.height, + backbuffer); +# else + jwxyz_window_resized (xdpy, xwindow, + newRect.origin.x, newRect.origin.y, + newRect.size.width, newRect.size.height, + 0); +# endif + } +} + + +# ifndef USE_IPHONE // Doesn't exist on iOS +- (void) setFrameSize:(NSSize) newSize +{ + [super setFrameSize:newSize]; + resized_p = YES; + if (xwindow) + jwxyz_window_resized (xdpy, xwindow, + [self frame].origin.x, + [self frame].origin.y, + newSize.width, newSize.height, + 0); // backbuffer only on iPhone } +# endif // !USE_IPHONE +(BOOL) performGammaFade @@ -515,7 +953,11 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure) return YES; } +#ifndef USE_IPHONE - (NSWindow *) configureSheet +#else +- (UIViewController *) configureView +#endif { NSBundle *bundle = [NSBundle bundleForClass:[self class]]; NSString *file = [NSString stringWithCString:xsft->progclass @@ -528,11 +970,18 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure) return nil; } - NSWindow *sheet = [[XScreenSaverConfigSheet alloc] - initWithXMLFile:path - options:xsft->options - controller:[prefsReader userDefaultsController]]; - +# ifdef USE_IPHONE + UIViewController *sheet; +# else // !USE_IPHONE + NSWindow *sheet; +# endif // !USE_IPHONE + + sheet = [[XScreenSaverConfigSheet alloc] + initWithXMLFile:path + options:xsft->options + controller:[prefsReader userDefaultsController] + defaults:[prefsReader defaultOptions]]; + // #### am I expected to retain this, or not? wtf. // I thought not, but if I don't do this, we (sometimes) crash. [sheet retain]; @@ -555,6 +1004,8 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure) } +#ifndef USE_IPHONE + /* Convert an NSEvent into an XEvent, and pass it along. Returns YES if it was handled. */ @@ -565,7 +1016,7 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure) ![self isAnimating] || !initted_p) return NO; - + XEvent xe; memset (&xe, 0, sizeof(xe)); @@ -580,9 +1031,14 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure) NSPoint p = [[[e window] contentView] convertPoint:[e locationInWindow] toView:self]; - int x = p.x; - int y = [self frame].size.height - p.y; - +# ifdef USE_IPHONE + double s = self.contentScaleFactor; +# else + int s = 1; +# endif + int x = s * p.x; + int y = s * ([self frame].size.height - p.y); + xe.xany.type = type; switch (type) { case ButtonPress: @@ -607,9 +1063,47 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure) case KeyPress: case KeyRelease: { - NSString *nss = [e characters]; - const char *s = [nss cStringUsingEncoding:NSISOLatin1StringEncoding]; - xe.xkey.keycode = (s && *s ? *s : 0); + NSString *ns = (([e type] == NSFlagsChanged) ? 0 : + [e charactersIgnoringModifiers]); + KeySym k = 0; + + if (!ns || [ns length] == 0) // dead key + { + // Cocoa hides the difference between left and right keys. + // Also we only get KeyPress events for these, no KeyRelease + // (unless we hack the mod state manually. Bleh.) + // + if (flags & NSAlphaShiftKeyMask) k = XK_Caps_Lock; + else if (flags & NSShiftKeyMask) k = XK_Shift_L; + else if (flags & NSControlKeyMask) k = XK_Control_L; + else if (flags & NSAlternateKeyMask) k = XK_Alt_L; + else if (flags & NSCommandKeyMask) k = XK_Meta_L; + } + else if ([ns length] == 1) // real key + { + switch ([ns characterAtIndex:0]) { + case NSLeftArrowFunctionKey: k = XK_Left; break; + case NSRightArrowFunctionKey: k = XK_Right; break; + case NSUpArrowFunctionKey: k = XK_Up; break; + case NSDownArrowFunctionKey: k = XK_Down; break; + case NSPageUpFunctionKey: k = XK_Page_Up; break; + case NSPageDownFunctionKey: k = XK_Page_Down; break; + case NSHomeFunctionKey: k = XK_Home; break; + case NSPrevFunctionKey: k = XK_Prior; break; + case NSNextFunctionKey: k = XK_Next; break; + case NSBeginFunctionKey: k = XK_Begin; break; + case NSEndFunctionKey: k = XK_End; break; + default: + { + const char *s = + [ns cStringUsingEncoding:NSISOLatin1StringEncoding]; + k = (s && *s ? *s : 0); + } + break; + } + } + + xe.xkey.keycode = k; xe.xkey.state = state; break; } @@ -685,6 +1179,266 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure) [super keyUp:e]; } +- (void) flagsChanged: (NSEvent *) e +{ + if (! [self doEvent:e type:KeyPress]) + [super flagsChanged:e]; +} + +#else // USE_IPHONE + + +/* Called after the device's orientation has changed. + + Note: we could include a subclass of UIViewController which + contains a shouldAutorotateToInterfaceOrientation method that + returns YES, in which case Core Animation would auto-rotate our + View for us in response to rotation events... but, that interacts + badly with the EAGLContext -- if you introduce Core Animation into + the path, the OpenGL pipeline probably falls back on software + rendering and performance goes to hell. Also, the scaling and + rotation that Core Animation does interacts incorrectly with the GL + context anyway. + + So, we have to hack the rotation animation manually, in the GL world. + + Possibly XScreenSaverView should use Core Animation, and + XScreenSaverGLView should override that. +*/ +- (void)didRotate:(NSNotification *)notification +{ + UIDeviceOrientation current = [[UIDevice currentDevice] orientation]; + + /* If the simulator starts up in the rotated position, sometimes + the UIDevice says we're in Portrait when we're not -- but it + turns out that the UINavigationController knows what's up! + So get it from there. + */ + if (current == UIDeviceOrientationUnknown) { + switch ([[[self window] rootViewController] interfaceOrientation]) { + case UIInterfaceOrientationPortrait: + current = UIDeviceOrientationPortrait; + break; + case UIInterfaceOrientationPortraitUpsideDown: + current = UIDeviceOrientationPortraitUpsideDown; + break; + case UIInterfaceOrientationLandscapeLeft: // It's opposite day + current = UIDeviceOrientationLandscapeRight; + break; + case UIInterfaceOrientationLandscapeRight: + current = UIDeviceOrientationLandscapeLeft; + break; + default: + break; + } + } + + /* On the iPad (but not iPhone 3GS, or the simulator) sometimes we get + an orientation change event with an unknown orientation. Those seem + to always be immediately followed by another orientation change with + a *real* orientation change, so let's try just ignoring those bogus + ones and hoping that the real one comes in shortly... + */ + if (current == UIDeviceOrientationUnknown) + return; + + if (rotation_ratio >= 0) return; // in the midst of rotation animation + if (orientation == current) return; // no change + + new_orientation = current; // current animation target + rotation_ratio = 0; // start animating + rot_start_time = double_time(); + + switch (orientation) { + case UIInterfaceOrientationLandscapeRight: angle_from = 90; break; + case UIInterfaceOrientationLandscapeLeft: angle_from = 270; break; + case UIInterfaceOrientationPortraitUpsideDown: angle_from = 180; break; + default: angle_from = 0; break; + } + + switch (new_orientation) { + case UIInterfaceOrientationLandscapeRight: angle_to = 90; break; + case UIInterfaceOrientationLandscapeLeft: angle_to = 270; break; + case UIInterfaceOrientationPortraitUpsideDown: angle_to = 180; break; + default: angle_to = 0; break; + } + + NSRect ff = [self frame]; + + switch (orientation) { + case UIInterfaceOrientationLandscapeLeft: // from landscape + case UIInterfaceOrientationLandscapeRight: + rot_from.width = ff.size.height; + rot_from.height = ff.size.width; + break; + default: // from portrait + rot_from.width = ff.size.width; + rot_from.height = ff.size.height; + break; + } + + switch (new_orientation) { + case UIInterfaceOrientationLandscapeLeft: // to landscape + case UIInterfaceOrientationLandscapeRight: + rot_to.width = ff.size.height; + rot_to.height = ff.size.width; + break; + default: // to portrait + rot_to.width = ff.size.width; + rot_to.height = ff.size.height; + break; + } + + if (! initted_p) { + // If we've done a rotation but the saver hasn't been initialized yet, + // don't bother going through an X11 resize, but just do it now. + rot_start_time = 0; // dawn of time + [self hackRotation]; + } +} + + +/* In the simulator, multi-touch sequences look like this: + + touchesBegan [touchA, touchB] + touchesEnd [touchA, touchB] + + But on real devices, sometimes you get that, but sometimes you get: + + touchesBegan [touchA, touchB] + touchesEnd [touchB] + touchesEnd [touchA] + + Or even + + touchesBegan [touchA] + touchesBegan [touchB] + touchesEnd [touchA] + touchesEnd [touchB] + + So the only way to properly detect a "pinch" gesture is to remember + the start-point of each touch as it comes in; and the end-point of + each touch as those come in; and only process the gesture once the + number of touchEnds matches the number of touchBegins. + */ + +static void +rotate_mouse (int *x, int *y, int w, int h, int rot) +{ + int ox = *x, oy = *y; + if (rot > 45 && rot < 135) { *x = oy; *y = w-ox; } + else if (rot < -45 && rot > -135) { *x = h-oy; *y = ox; } + else if (rot > 135 || rot < -135) { *x = w-ox; *y = h-oy; } +} + + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event +{ + if (xsft->event_cb && xwindow) { + double s = self.contentScaleFactor; + XEvent xe; + memset (&xe, 0, sizeof(xe)); + int i = 0; + int w = s * [self frame].size.width; + int h = s * [self frame].size.height; + for (UITouch *touch in touches) { + CGPoint p = [touch locationInView:self]; + xe.xany.type = ButtonPress; + xe.xbutton.button = i + 1; + xe.xbutton.button = i + 1; + xe.xbutton.x = s * p.x; + xe.xbutton.y = s * p.y; + rotate_mouse (&xe.xbutton.x, &xe.xbutton.y, w, h, rot_current_angle); + jwxyz_mouse_moved (xdpy, xwindow, xe.xbutton.x, xe.xbutton.y); + xsft->event_cb (xdpy, xwindow, xdata, &xe); + i++; + } + } +} + + +- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event +{ + + // Double-tap means "exit" and return to selection menu. + // + for (UITouch *touch in touches) { + if ([touch tapCount] >= 2) { + if ([self isAnimating]) + [self stopAnimation]; + [self removeFromSuperview]; + return; + } + } + + if (xsft->event_cb && xwindow) { + double s = self.contentScaleFactor; + XEvent xe; + memset (&xe, 0, sizeof(xe)); + int i = 0; + int w = s * [self frame].size.width; + int h = s * [self frame].size.height; + for (UITouch *touch in touches) { + CGPoint p = [touch locationInView:self]; + xe.xany.type = ButtonRelease; + xe.xbutton.button = i + 1; + xe.xbutton.x = s * p.x; + xe.xbutton.y = s * p.y; + rotate_mouse (&xe.xbutton.x, &xe.xbutton.y, w, h, rot_current_angle); + jwxyz_mouse_moved (xdpy, xwindow, xe.xbutton.x, xe.xbutton.y); + xsft->event_cb (xdpy, xwindow, xdata, &xe); + i++; + } + } +} + + +- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event +{ + if (xsft->event_cb && xwindow) { + double s = self.contentScaleFactor; + XEvent xe; + memset (&xe, 0, sizeof(xe)); + int i = 0; + int w = s * [self frame].size.width; + int h = s * [self frame].size.height; + for (UITouch *touch in touches) { + CGPoint p = [touch locationInView:self]; + xe.xany.type = MotionNotify; + xe.xmotion.x = s * p.x; + xe.xmotion.y = s * p.y; + rotate_mouse (&xe.xbutton.x, &xe.xbutton.y, w, h, rot_current_angle); + jwxyz_mouse_moved (xdpy, xwindow, xe.xmotion.x, xe.xmotion.y); + xsft->event_cb (xdpy, xwindow, xdata, &xe); + i++; + } + } +} + + +/* We need this to respond to "shake" gestures + */ +- (BOOL)canBecomeFirstResponder { + return YES; +} + + +- (void)setScreenLocked:(BOOL)locked +{ + if (screenLocked == locked) return; + screenLocked = locked; + if (locked) { + if ([self isAnimating]) + [self stopAnimation]; + } else { + if (! [self isAnimating]) + [self startAnimation]; + } +} + + +#endif // USE_IPHONE + @end diff --git a/OSX/bindist.rtf b/OSX/bindist.rtf index 4027d7ba..64421ef7 100644 --- a/OSX/bindist.rtf +++ b/OSX/bindist.rtf @@ -16,8 +16,8 @@ XScreenSaver\ by Jamie Zawinski\ and many others\ \ -version 5.15\ -28-Sep-2011\ +version 5.16\ +19-Jun-2012\ \ {\field{\*\fldinst{HYPERLINK "http://www.jwz.org/xscreensaver/"}}{\fldrslt \cf2 \ul \ulc2 http://www.jwz.org/xscreensaver/}} \ diff --git a/OSX/iSaverRunner.ai b/OSX/iSaverRunner.ai new file mode 100644 index 00000000..a91e23c9 --- /dev/null +++ b/OSX/iSaverRunner.ai @@ -0,0 +1,3593 @@ +%PDF-1.5 %âãÏÓ +1 0 obj <>/OCGs[18 0 R 93 0 R]>>/Type/Catalog>> endobj 108 0 obj <>stream + + + + + application/pdf + + + iSaverRunner + + + + + Adobe Illustrator CS3 + 2012-06-04T14:04:08-07:00 + 2012-06-04T14:30:53-07:00 + 2012-06-04T14:30:53-07:00 + + + + 244 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAD0AwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8AG56I+cOxV2KuxV2KuxV2 KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvRfyZ/46eo/8YE/4nmh7 d+iPvd/2B9cvc9XzmXqHzHnoj5w7FXYq7FXYq7FXYq7FXYq7FUNd6jZ2s1vDcSiKS7cxW3IHi0gU tw5UoCQNgTv2yueSMSATz5NkMUpAkC+Hmlfk7zE+uaSZblUh1K1lkttQtkrSOWNiNgSTQjfKNHqP FhZ2kDRHm363TeFOhvEiwfJPcy3EdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVei/kz/x0 9R/4wJ/xPND279Efe7/sD65e56vnMvUPmPPRHzh2KuxV2KuxV2KuxV2KuxV2KpN5w0Ma15eurJV5 XAAmtd6Umi+JN+1SOJPgcxNbp/FxGPXp73N7P1Pg5ozP03v7uryfQ9d1bQfNX6XIa50zUYRNekfa kiUDnLxHWWIfG/8AsjsDtyWj7VOPLxS6mpfr/HX3vedt+zvDjAx74yOLGfL+afd1+b263uIbiCO4 gcSQzKHikU1DKwqCD7jO2jISFjkXziUTE0eYX5Ji7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7 FXov5M/8dPUf+MCf8TzQ9u/RH3u/7A+uXuer5zL1D5jz0R84dirsVdirsVdirsVdirsVdirsVeZ6 ppixapqOngmIwzi7spQASguP3gYA7UEhkXidiBTpnnfben8PUSFemW/zfevYvLHtDsvwZ/VjNeY/ mn7/AIbLvI3mFtIvxol7+60+4lKWe5K21y3xegCd/Sl3aEn3Xcg023YPadHwZn+qfx+L94fPPars KWGZmBRH1frHl3eXmC9KzrniHYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq9F/Jn/AI6eo/8A GBP+J5oe3foj73f9gfXL3PV85l6h8x56I+cOxV2KuxV2KuxV2KuxV2KuxV2KsM85QiLX7C5HS6t5 YJPnCyyR/hJJnJe0+L6J/B9U/wCBfqzHPkxdJRv4/wBjG9ZsYZoWlkjaSMIUuY0+20NeVU/4siYc 4/cU6Mc5ME9NiOXv/UeRfS/aDswajFxAXKI+ceo945j5dWY+TNenuo5NI1GVZdVsFRvrC/ZuraQA w3UfiHUjl4HPQOxe0xqsW/1x5/j73557a7MOly7fRLl+PuZNm5dM7FUgk876HGurysz/AFXReKXN zQem0rVrFGa/E6kAH3OYZ12McZ6Q5nz7g5o0GT0DrPkPLvKbaXfG/wBOtr0wvb/WI1kEMtA6hhUB qE5kYp8cRKqtxssOCRjd0icsa3Yq7FXYq7FXYq7FXYq7FXYq7FXov5M/8dPUf+MCf8TzQ9u/RH3u /wCwPrl7nq+cy9Q+Y89EfOHYq7FXYq7FXYq7FXYq7FXYq7FWL+fVpBpMg6rfcfoe3mBH30OaD2jF 6f8Azh+l7j/geT4e1I/1ZfckWcG/Q6jHHPb6TJq9kK3/AJRn9QoOsuk3dXkhPj6b+oUr9kDLNFrj pNZGX8OTn7xt9or4vlntR2PGccmMfw+qP9WW/wBkr+D0i3niuII54W5xSqrxuOhVhUH7s9VjIEWH xSUSDR5hjfnzzC+maY1tbOUvblHYuv2ooIxWWUe9PhT/ACiPDNX2vrvAx0PrlsP1vQeznZH5zPcv 7rGOKfuG7z3TrEanrmieU4UppNhI1zqrDdJruNQ86nxWMsIRmrwxE8kNOPphvLzPX9Tm6nIYwnqT tKe0PKPSv909pzqnkXYq7FXYq7FXYq7FXYq7FXYq7FXYq9F/Jn/jp6j/AMYE/wCJ5oe3foj73f8A YH1y9z1fOZeofMeeiPnDsVdirsVdirsVdirsVdirsVdirFvPkgKaTAPtPeGQj/Jjt5an/gmXOf8A aSYGnA75Pdf8DvEZdpxPQRl9yR5wj9CrFe7TQJobZuN/52lTT7BSK8NPtw/rXJHgyyvT2IODTaU6 vWQxjlj3P9Y/qr7C+Y+0na0YwyZukhwx/qxvf/OJNe8PQYIrXT7COJSIrW0iCAsdljiWm59lGesx AhGugH3PiJMpyvnKR+95Zrj6hrMN1ewr/puqywW1hG+3CF51jgQ16V58292Oed9odoeLnOQ/TG69 wfdezOwzoexpCv3uXhv/ADpAAfayjy7oFppXnW6sLYlk0XS7W0aQ9XluZHuJJG/ynYVzP9jpHKJ5 pc5H8f7l8+9sAMXBiHID8fezLO4eIdirsVdirsVdirsVdirsVdirsVdir0X8mf8Ajp6j/wAYE/4n mh7d+iPvd/2B9cvc9XzmXqHzHnoj5w7FXYq7FXYq7FXYq7FXYq7FXYqwHXr9dR8xyNGeVtpiG1Rh uGnkIaen+rxRfnyzh/aLVieQQHKH3vtX/Az7Jljxz1Mh9fpj7lCDTZtY1G20aElfrhJupF2MdrHQ zMCOhIIRT/Mwzl8+cYoGZ6cvf0/W9521qTHGMcT6sm3uj/Ef0e8p3oHpaz5m1DXo1VdMsB+idCjU URYYNppEA2o77KfAUzr/AGQ7OOLD4svrn+Px8Xwr2u7R8XL4Ufpj+P2/Jd58vSbO30dD8epMfrFO 1rFQy/8ABkrH8mObXt7V+Fg4R9U9vh1R7E9j/nddHiF48fqkx8sqXOnudljv7F2/1Uu4mP4DPPco uEv6svuL7z20P8GP9aH+7iyiwr/ysXzdy3JXTSp8F+rsAP8AggxzqPYevyx/HWT4X7bX+Yj+OkWQ Z2zxTsVdirsVdirsVdirsVdirsVdirsVei/kz/x09R/4wJ/xPND279Efe7/sD65e56vnMvUPmPPR Hzh2KuxV2KuxV2KuxV2KuxV2KsY81+YponOkaY/G/dQ1zcjcW0TdD4GRx9gdvtHtXR9sdqjTx4Y/ 3h+x7D2S9l59pZrlthjzPf5BjtvbxW8CQRLxjQUUdT8yT1J7nOClIk2X6J0+CGGAxwFRiKCNtrif SvJmp6/BX9K69Iul6GBUEKzGJGXwLN6kte4C5gSxnU6uGEco7n3/AIofN4LtntEAZM97fTH3Dr8d 5e6mXaHpMGkaRaabB/d2sSx16ciB8TH3Zqk57HgxDHARHQPhGfMckzM9SwrUbo33mLUbvrHAwsbf /Vgr6h+mZmH0DOF7f1PiagjpHZ92/wCBx2Z4OiOYj1ZT9g/H2IPVVlbTbn0v75Y2eL/XQcl/4YZp Y1e723aWMz0+SI58Jr39GVw3UbfmNdSxH9xrOj2l/ER0Ijdox8zRxm69h51CeM8wT9n9r4X7bY7l CY6/p/sZJnfvBOxV2KuxV2KuxV2KuxV2KuxV2KuxV6L+TP8Ax09R/wCMCf8AE80Pbv0R97v+wPrl 7nq+cy9Q+Y89EfOHYq7FXYq7FXYq7FXYqkUfnPRGu9Thd2ih0pOdxdsP3RoSrhCCWPBhxO252Fcw o6/EZTjf93zLsMnZmaOPHMjbL9KprPmS3s9BTU7Wk73ioNNQ1HqvMOUfWhA4/E3goOOr1scWHxel bed8mfZvZeXVamOniPUTR8u9htrA0SMZHMtxKxluZ2+1JI27Mf4DsNs83z5pZZmUuZfpvsrs3Fos EcOMbR+0962+E7W5htzS5uWS2tz4STuIkP0M4yniA3PIb/Jl2pnOLTykPqqh75ekfeyrXLW3k86e XtAt142Hl+xa99LtyNLa3B90ClhmX7FaY5c0s0uf4/X9j477Z6nw8McUfx+K+1PNQvI7KwubyT+7 tonmf/VjUsf1Z6bkmIRMj0FvmmLGZyER1NPONMikisIFlNZioeZvGR/ic/SxOeV5ZmUjI9S/VvZe lGDTY8YFcMR8+v2onK3PX2d4YE8o6gx2066ufLt5/qSqGswfYIEP05nez2bwdfKPTJR+ex/2T4v7 X6E/lzHrikR8BvH/AGL0LPTXyh2KuxV2KuxV2KuxV2KuxV2KuxV2KvRfyZ/46eo/8YE/4nmh7d+i Pvd/2B9cvc9XzmXqHzHnoj5w7FXYq7FUi86+YW0Dy7c6kih5UosSnpyc8R+JzXdp6o4cVx+omnY9 l6UZstS+kC3gF351803U7TS6lMHbsjcB9wpnHyyykbJJL2UcUYigAAo/4r8y/wDVzuP+RjYOI97L hHcidN1zzVf30NnFqVxzmYLX1G2Hc9ew3yMshAu3K0WjOfLHHEbyP4+S/wA33jR6jJp1tIy2kEUd uyBtn9P4/i8SHY9e+VYL4b73a+0RgNT4cPpxREB8Of2ksg8hDUL1Hvb24knitv3NmjsSqGg5FQel FoMq1WQ7Rd57G6AEyzkcvSP0/jzLMcwnv19nw/Tejc/sfX7evhXl8P8Aw1Mp1P8AdTr+aXTdt/3I /rxYl+cmr6nZfmNfm0uZID6NulYzxPH0g1NvdjmR2JtpxXefvfMu2N85vuH3MRtNe169uobOfUJ5 Ibh1jkRnJDKxoQR75tZzNFxNHhjPNCNc5Afa9YzUPuLsVUfqLX8Oq6EhIk1i2E2nkbEahYfvYwD2 MsYpXwXKM8vDlDL/ADDR/qy/V+l432j0XFIkf5SP+yjuPmP9y8oPmrzKCQdSuQR1HqNm/wCI975v wDud/ivzL/1c7j/kY2HiPevCO53+K/Mv/VzuP+RjY8R714R3O/xX5l/6udx/yMbHiPevCO53+K/M v/VzuP8AkY2PEe9eEdzv8V+Zf+rncf8AIxseI968I7nf4r8y/wDVzuP+RjY8R714R3Mp8gfmLrlr rVtZX1w91ZXUgiKvuys5oCD7nbfMvR66eGYN+nqHD1mhhmgRQ4uhe8527wzsVdirsVei/kz/AMdP Uf8AjAn/ABPND279Efe7/sD65e56vnMvUPmPPRHzh2KuxV2KsH/OT/lCp/8AjLF/xMZpO3P7of1n edg/3p/q/pfP+cs9W7FWa/lzpy87nU5R8EQ9KM+5FXP0LT78xdTLkHt/Y/Ri555co7D7z8h96Qa9 YzwraX1xtPqySXoQ9o2meNf+CMbH5UyeHIJEgco7fZf6Xk9YTKfiS55Ll8yXonk+2Fv5ds1/adTI x8ebEj8KZiZjci+p+z2Hw9FjHeL+Z/UnOVO6UbyOd4OVuwW5iZJrZz0E0LCSMn/ZqMaB2PI7OH2h pvHwygOfT3jcfaGN/nRFFqF5pXmu0Ui01e2EcoPWO5tyVkjfwZQQv+xOR7HJgJYZc4H7C+V9rwuQ yfzhR8iOYYHorhNYsXPRJ42/4Fwc20/pLidmy4dTjPdOJ+17Nmrfa3YqpXIuVVJ7Rgl7ayLcWjHo JYzyUH/Jb7LexOJiJAxPI7OD2jpTnwmI+rnH+sOXz5HyLAvzK0aGHVYddsIymk6+pu4Af91T1pcw N/lRyV2y7s7KTE45fXj2+HQ/EPkvaODhnxAVGe/uPUfAsOzYuvdirsVdirsVdiqY+XP+Uh0v/mLg /wCTq4q+p89EfOHYq7FXYq9F/Jn/AI6eo/8AGBP+J5oe3foj73f9gfXL3PV85l6h8x56I+cOxV2K uxVg/wCcn/KFT/8AGWL/AImM0nbn90P6zvOwf70/1f0vn/OWerbAqaYq9V06xOneUTDTjKLaSR69 eboW3+XTNdKXFP4vrOk0p03Zpj/F4cifeQT9nJEfmN5C8xa95o0bSPK+my6jLaaDAwt4aFxDDM8Z c1I2BkQfTmP2LPihMnmZk/c+edrw4ZwA5cA/Sr6LDPb6XBbXMbQ3NsDBPEwoySRMY3UjxDKRl2Ue ovpvYmQS0eMj+b92yOyt2rsVQGoW1pJY3enX546NqBEksoFTZ3aikd2o/kP2ZgP2d+xyEokSGSH1 x/2Q/m/q83kfaDsoGJyD6JfV/RP8/wDRL597BtJ/LDz5qmrXmm6RpMt/facVNzFblGZVb7Ei1ILI 3VWGxzbYssckRKPIvnU4Sxzo8w9DtJZJbaN5EMUxFJomBVkkXZ0YHoVYEHNdKNGn2nRakZ8Mcg/i F/r+1VyLlOxVCy6dZ6jbXHl2/cRWWqyCXTrtulrqVKKT4R3A+Fv8r3bKcplCQzR5x+od8f1j8cni /aDswWZfwZD/AKWff7pff72AaT+V3n7WNRvtO0vRpry+01gl7bxFC8dfssVLA8W/Zboc3OLLHJES ibBfPsmOUJGMhRCbf8qB/OT/AKlO+/4Ff+assYO/5UD+cn/Up33/AAK/81Yq035B/nIqlj5Tv6AV NEUnbwAauKsEuLe4triW2uYnhuIXaOaGRSjo6GjKymhBBFCDiqniqY+XP+Uh0v8A5i4P+Tq4q+p8 9EfOHYq7FXYq9F/Jn/jp6j/xgT/ieaHt36I+93/YH1y9z1fOZeofMeeiPnDsVdirsVYP+cn/AChU /wDxli/4mM0nbn90P6zvOwf70/1f0vn/ADlnq0w0Cx+vazaWxAZXkBdT3Rfib/hQchklUSXYdlaX x9TDH0Mt/cNz9j166h9a2mh/34jJ/wAEKZrAaL7Hnx8eOUf5wI+b0f8ALzWFt/zB/LnWnNItZ0+f S7qQnpJLbpPEu/czRFcxuxzw5cuPul+v9j5R2sOLHjn5fj9KT/mz5fbQPzK1q2C8bbU3Gr2Z8Vuy TP8ASLlZD8iM2OpjRt6z2P1nHgliPOBse4/t+9iuYz2DsVcQCKHcHqMUKOlajrHl3WbDUdHuRaah Ytw0i7f+6Cufi0+83HK1m6ISf3beAoVMZnGTMcv4h/vh59/f73ge3+wxD1Q+jp/RPcf6J6fzTtyT fzNqGmapqbeZNNgayg1mZ11jSn+3p+tKOVzbtsKpOAZo2/aPPpSgycwEgJx3BZeyfaJhI6We3WPv 6j9Pz70uzFe9diqyeCGeF4ZkDxSAq6HoQcINNeXFHJExkLieaY6FqGurfLe6VePb+eNFhMul3tdt SskIL2d2vSUrsu++6t1qcxRlOlmJD+5kdx/NPePL8dz572x2SYyMDvKrgf5w/mnzH6j3vrXyH5w0 /wA4+UdM8yWAKQahFzaI/ajlUlJYj7pIrL9GdA8an2KuxV+en/ORyIn52eagqhQbiI0Apu1vESfp JxV5tiqY+XP+Uh0v/mLg/wCTq4q+p89EfOHYq7FXYq9F/Jn/AI6eo/8AGBP+J5oe3foj73f9gfXL 3PV85l6h8x56I+cOxV2KuxVg/wCcn/KFT/8AGWL/AImM0nbn90P6zvOwf70/1f0vn/OWerZZ+XNr 6msSzkVWCI0PgzED9VcxtSfTT1vsfg4tTKf82P2nb7rej5gvpaP0+a9k8lXcWnmms+UL+PV9MG5N I5DdRmny9WMD2zAlLwdXGf8ADkFH7v1F887X0m2TH/NlxR9x3/XH4PZfzqsLLzj+WmkfmDo49Q6b Ct/RfiZtOu1X60hp3hosp8ODDvnRZYcUadB2Jr/yupjM/Sdpe4/q5/B4WCCAQag9DmsfYQbdil2K rZYo5onilUPG4Kuh3BB6g4QaYZMcZxMZC4nmgLyG6ksbySJ2fUbCBTej7TXenRMDFcUqOVxYyBd6 jkmzEhiDHFkGKfCf7vJ/sZfql975x2t2fPTZeKB9UPVE98R+mPI94oq+mX8d9ZR3KEfEKOF3AYbG nt4HuMsnHhNPe9na2Opwxyx68/I9UVkHNdiqlM91BJDf2VPr9jIJ7WuwZlBDRn/JkUlG9jgnATiY y5Sdd2ppDmxHh+uPqj7+748ntf8Azjr5jtoPMuveW4GP6M1iGPzPoanbitxSK8jp24y8TwHTfMjs 3ITi4ZfVA8J+H7HybtHGI5bH0z9Q+P7XvebBwXYq/Pb/AJyR/wDJ2+af+M8P/UNFirzTFUx8uf8A KQ6X/wAxcH/J1cVfU+eiPnDsVdirsVei/kz/AMdPUf8AjAn/ABPND279Efe7/sD65e56vnMvUPmP PRHzh2KuxV2KsH/OT/lCp/8AjLF/xMZpO3P7of1nedg/3p/q/pfP+cs9Wz78s4aW99L3do1HyUN/ XMPVHcPoHsVjqGSXeY/ZbNcxHuFbSdWXRNct9Uk2s3H1TUvAQSMCspH/ABU+5/yS2Y2s0/i4zEfU Nx+r4/fToO29PQGYfw7S/qnr/mn7CXs/5D6xFpWo61+WGp8Xsh6mo+W0kAKSWFyx+sWwB2PoyMdu 4Ynpmx7N1XjYgf4hsff+18z1+m8HKR0O4eS+a/LEvlPzVqXlpw3o2Lh9OkfcyWM1Wt2qftcQDEx7 shwZ4cMve+j+zHaP5jTCJ+vHt8Oh/R8Esyh6R2KuxVTe8bTrm21dByOnyepKgFeduw43EdO/KMmg 8QMhlxeJAw7/AL+n2un7a0/Hh4x9WP1fD+IfL7QEsOnxeXPN99okTV0+7pd6W1RxaGVS6cN6tQK6 E/5AyeDN42ETP1DaXv8Ax97z3s7n8DUy0/8ABP1R/Hu/3Kb4vcuxV2Kpj+XmuN5f8+eWrwtwisdV FlJ2X6jritGeX+TFdIX9qjLNOeHN/Xj9sf2H7HzH2l0nhZDXK+Ie6fP5SB+YfaGbN5V2Kvz2/wCc kf8Aydvmn/jPD/1DRYq80xVMfLn/ACkOl/8AMXB/ydXFX1Pnoj5w7FXYq7FXov5M/wDHT1H/AIwJ /wATzQ9u/RH3u/7A+uXuer5zL1D5jz0R84dirsVdirB/zk/5Qqf/AIyxf8TGaTtz+6H9Z3nYP96f 6v6Xz/nLPVvQ/wAtpFOm3UY+0soJ/wBkv9mYWq5h9G9jJDwJjul+j9jMMxXsmnRXUo4DKwIZTuCD 1BwsZRBFHkUdo+o6t6VlHp0nHzb5Vf695anav+lWqbS2b/zfu/3bD9peJ/mzE4vy2bxB/dz2l5Hv /Hn5PnvbHZZjeLu3ge8fzfeP1HvepfmqdM8//lvo/wCZ+gpWbTUI1ODrIlpIwW6ikA/atZgJN+ih yPtZvMsOKLpewu0PyupEj9B9Mvcf1c3kGa19edirsVcQCCCKg9Rigi0n1O01a4fSIQFki0uQLbXn LjKtmWBa2kB+2q8f3bA1HQjvhxQjEyI/j5jz7/1vIZOws0NTjnjo44SB8xG94+fl9venGB7B2Kux VKPMMcn1eR4m4PJBLEHGxDxgXcJH+V61sqj/AFskDRB7iP1H7C8n7V6bixCfdY/3w+2NfF9x+VNb j17yvpGtx04anZW92AO3rxLJT6OWbV8zTXFX57f85I/+Tt80/wDGeH/qGixV5piqY+XP+Uh0v/mL g/5Orir6nz0R84dirsVdir0X8mf+OnqP/GBP+J5oe3foj73f9gfXL3PV85l6h8x56I+cOxV2KuxV g/5yf8oVP/xli/4mM0nbn90P6zvOwf70/wBX9L5/zlnq2W/l1qKwanLZuaC6Sqf68dSB/wACTmNq Y2L7nr/Y/WCGeWI/5QfbH9lvRswX0l2KqU0UrGOWCU293buJbW5X7Uci9G9x2YdxtiQCCCLBcPXa OOox8J2PMHuPf+vvDOPyk89WekeZ5bLUYkj8secZPqGvacx/c2eryoVWUBj/AHF6m1fHqfhpluhm YfupG6+k98f1jkXyvtbRyx5CSKN1Idx7x5S5hieo6NNoOsaloEzMz6PdS2au/wBp4kNYHPu8DI30 45o1J9F9ntZ4+kiT9UfSfh+ylDKnduxV2KuxV2KuxV2KoPViEsJJynP6sVueH83oMJafTwphAvbv 2+brO2MXHpZ+Q4v9L6v0Pp7/AJxt1Frn8pNMs5X53GjzXemTH/mGuHEY/wCRRTNnjlxRB7w+OTjw yI7np+TYvz2/5yR/8nb5p/4zw/8AUNFirzTFUx8uf8pDpf8AzFwf8nVxV9T56I+cOxV2KuxV6L+T P/HT1H/jAn/E80Pbv0R97v8AsD65e56vnMvUPmPPRHzh2KuxV2KsH/OT/lCp/wDjLF/xMZpO3P7o f1nedg/3p/q/pfP+cs9WrWl1La3UVzEaSQsHU+6muCQsU3afPLFkjOP1RNvZdPvYb6yhu4T+7mUM B4HuD7g7Zq5Ro0+06TUxz4o5I8pC/wBnw5IjIuS7FUv1WCH0pXm2tbmI218f5Y2PKKf5283GT5ch 3xIOxH1RNj9I+I2ea9o9AMmLxAPpFS/q9/8Amnf3WmmpeZ4/MmrrqUhb9MSadYr5gRwQ66jbiS0l 5e7paxvtXZhmTqCDUh1dd7GTkI5YH+Ex+2/1KeYz2zsVdirsVdirsVdiqyaNZYnjb7LqVPyIphBY ZICUTE9RT2b/AJxG1B/0N5k0lz8UNxZamwoPtalZIXp/s4GzP08rj7iR8iQ+I6mJE9/I/MPfsvaH 57f85I/+Tt80/wDGeH/qGixV5piqY+XP+Uh0v/mLg/5Orir6nz0R84dirsVdir0X8mf+OnqP/GBP +J5oe3foj73f9gfXL3PV85l6h8x56I+cOxV2KuxVg/5yf8oVP/xli/4mM0nbn90P6zvOwf70/wBX 9L5/zlnq3Yqzr8utUmCTWMoJt+Y9GTssjhjwr/lLGxHyOYmpx/xPceyHafDI6eR57x9/Ufp+fezn MN9AdirTKrKVYAqRQg7gg4UEAiihbLTLazklkiLFpQiEueVEiBEaA9aKDQV7bdAMJLgaLs3FpjI4 79dfZyHwtF5F2DsVdirsVdirsVdirsVejf8AOM1x9T89NaV4x6v5cjuR4NJZXrQgD3EcwzI0M7Mx 3T/QHxrtSFZAR1H6S+m8z3WPz2/5yR/8nb5p/wCM8P8A1DRYq80xVMfLn/KQ6X/zFwf8nVxV9T56 I+cOxV2KuxV6L+TP/HT1H/jAn/E80Pbv0R97v+wPrl7nq+cy9Q+Y89EfOHYq7FXYqwf85P8AlCp/ +MsX/Exmk7c/uh/Wd52D/en+r+l8/wCcs9W7FXvP/OK/lHTfN0nnPQb+qRXWnQ+jcKKvBMk3KKZP 8qNwG9+h2OAi2ePJKEhKJojdq907U9K1K80bVohBqunSGC7jFeJNKpLHXcxyoQ6HwPjmtyQ4TT7B 2P2lHWYBMfUNpDz/AFHopZW7V2KuxV2KuxV2KuxV2KuxV2KqF7cG3tJZgpd0UlEG5ZzsqgeLNQYQ N3G1eoGHFLIf4R/YPiXpn5XWc1t+bfk/S9ORrqXQtIubfzHPGKxwRy26+h6jdmknTZPA16ZV2OZS OTIR6Zy2+18o7W4RwQv1RG/2PpzN26d+e3/OSP8A5O3zT/xnh/6hosVeaYqmPlz/AJSHS/8AmLg/ 5Orir6nz0R84dirsVdir0X8mf+OnqP8AxgT/AInmh7d+iPvd/wBgfXL3PV85l6h8x56I+cOxV2Ku xVg/5yf8oVP/AMZYv+JjNJ25/dD+s7zsH+9P9X9L5/zlnq3Yq+kP+cJLq2Tzl5htnkVZ5tPRoYia MwjmHMqO/HkK4q9w/PH8rZfM1gnmDQ4gfM2lxlfQFB9dtQSzWxP+/FJLQk/tVU7MSK8mPiFO17I7 Uno8wmN4n6h3j9fc+b4ZkmjDpUA1BVgVZWBoysp3DKRQg9M1xBBovrun1EM0BOBuMl+RbnYq7FXY q7FXYq7FXYq7FUHbNqep+aNP0XQ7f69rDSqbO2/YNyByjeU9orcfvnPsvicn4ByDh6Hn7uvz5fN4 r2n7WECMUeY3Pv8A4R8Pq/0r6/8Ayy/LvTvI3lxdOhf61qdy31nWNUcfvbq6fd5GPXiOiL2HvU5s oxEQAOQfPpSMjZ5ll2SYvzx/5yJube4/OnzVJBIssYukjLoQRzjgjR1qO6upB98Vec4qmPlz/lId L/5i4P8Ak6uKvqfPRHzh2KuxV2KvRfyZ/wCOnqP/ABgT/ieaHt36I+93/YH1y9z1fOZeofMeeiPn DsVdirsVYP8AnJ/yhU//ABli/wCJjNJ25/dD+s7zsH+9P9X9L5/zlnq3Yqr2V9e2N1Hd2NxJa3UR rFcQu0ciGlKq6kMNj2xVOf8AlYXn7/qZdV/6Trn/AJrxVU0Dzlf2eoyzahPLeRXb87p5WMkhc9ZO TEkt4165TlxcQ83oOwu25aOdS3xS5ju8x+N3pdvcQ3EKTwOJIpByR16EZryKfVMOaOSInA3E8iqY Gx2KuxV2KuxV2KuxVJvMvmKDR7StQ13KCII+tP8AKYeA/HLcWMyLpO2+2I6PH35JfSP0ny+95tae Yddsr176x1C5s7uQFXuLeZ4pCrHkVLIVNC25HjmxEQHybLllkkZSNko//lYXn7/qZdV/6Trn/mvC 1tH8wfPrAg+ZdVIOxBvbihH/AAeKpCSSSSak7knrXFWsVTHy5/ykOl/8xcH/ACdXFX1Pnoj5w7FX Yq7FXov5M/8AHT1H/jAn/E80Pbv0R97v+wPrl7nq+cy9Q+Y89EfOHYq7FXYqwf8AOME+SbggbCWK p/56DNJ25/dD+s7zsH+9P9X9L5/zlnq3Yq7FXYq7FU98tearrR5PTYGayc1eGu4/yk8D+vKcuES9 7vuxu3cmjPCfViPMfpH43el6bqthqUAms5RIv7S9GU+DDtmDKBjzfTtFr8OphxY5X9494ReQcx2K uxV2KuxVjvmHzjZ6dG0dsRcXfQU3RT03PcjwH00y/HhMubzPa/tJi0wMcfryfYPf+ofGnm17e3N7 cvcXLmSVzVmOZ0YgCg+aanUzzTM5m5FD5JodirsVdirsVTLy2CfMWl0/5a4P+Ti4q+ps9EfOHYq7 FXYq9F/Jn/jp6j/xgT/ieaHt36I+93/YH1y9z1fOZeofMeeiPnDsVdirsVQGu6NZ6zpc+nXYrDOt CR1B7Ee4zF1emGbGYFytHqjgyCY/AeR3P5G6yszC3vY5If2WYUNPffObl2NnB2o/F6aPbWAjex8F L/lR/mH/AJaYf8/pyP8AI+fuHzZfyzp+8/J3/Kj/ADD/AMtMP+f04/yPn7h81/lnT95+Tv8AlR/m H/lph/z+nH+R8/cPmv8ALOn7z8nf8qP8w/8ALTD/AJ/Tj/I+fuHzX+WdP3n5O/5Uf5h/5aYf8/px /kfP3D5r/LOn7z8lW2/JvzXaSia3v0hkX9tCVNPobBLsbORuB827B7Q48UuLHKUZeVpTN531TSr+ ewuvS1AWzGNplBiZmH2htUbHb7OaSWmHR73Se2GogKyRE/8AYn7NvsR0X5k6UVBmtp0bwTi/6ymU nSy73c4/bPTkeqEx7qP6Qj7DznpV/MIbZW9Q9BNJb24/4OeWJPxyvJiMBZ+wE/cC5Mfa3Sy2An/s R98gySbStbhsfr94LLS7E7i6vruPie/wCATBz7BswPzuMy4Y8U5dwH66ZZvaAiNiAA75SH6Lv5vP /MvnCxo1tp9zJqLdGuGQ21sP9SGrSyfOV+P+RmxwYZneQ4fLmfny+XzeR7S9oc2a4iW3l6Y/rPxN eSQ+XdDufMmq/UluViuWTlGZOjcSBxHSmx2zZ4cRlIRjzLzGbMIRM5cgy7/lR/mH/lph/wA/pzY/ yPn7h83W/wAs6fvPyd/yo/zD/wAtMP8An9OP8j5+4fNf5Z0/efk7/lR/mH/lph/z+nH+R8/cPmv8 s6fvPyd/yo/zD/y0w/5/Tj/I+fuHzX+WdP3n5O/5Uf5h/wCWmH/P6cf5Hz9w+a/yzp+8/J3/ACo/ zD/y0w/5/Tj/ACPn7h81/lnT95+TI/Jf5QnStSj1HVLhZ5ITWGBR8IPSpNTX/P6MvSdjTExLJVDo 4es7agYGOO7PXuem50rzLsVdirsVei/kz/x09R/4wJ/xPND279Efe7/sD65e56vnMvUPmPPRHzh2 KuxV2KuxV2KuxV2KuxV2KuxVhX5k+ebfQdMe1t3DancqViTY8Qdizew/z9tH2trxGJxx+o8/J3vZ HZ5lIZJfSOXmXz8zM7F2JZmJLMdySe+cu9UtxV2Kt8jQCuw3A+eKtYqidN1C506/gvbZuM8Dh0Py 6g07EbHCDW4QQCKL6S8oebNP8x6XHc27gTqAJ4SfiVgN87Ls/XDPGj9Y5/reL7R0BwSsfQeX6k9z YutdirsVdirsVdirsVdirsVdir0X8mf+OnqP/GBP+J5oe3foj73f9gfXL3PV85l6h8x56I+cOxV2 KuxV2KuxV2KuxV2KoLV9a03SLQ3eoTCGEftHufAZi6nV48AuZ5uVpdHkzmoDk8x80fnZGUe30CEl jUfW5QQB7quzffTNBqu2Zz2gOEd/X9j0Ok7EhDfIeI93T9rym9vbu9uXuruVpp5DV5G6n/PwzSEu 8AUMVdirsVdirsVdiqYaLrup6LereafMYpR9ofssPBh3yUJmJsGixnASFSFgvXPLn51aVcosWsxm 0nAoZVBaMn6Nx9Ob7TduEbZBfmP1PP6nsIHfEa8j+t6PbXMF1Ak8DiSKQVRx0Izf4c0ckRKJsF5/ NhlikYyFEKuWtTsVdirsVdirsVdirsVei/kz/wAdPUf+MCf8TzQ9u/RH3u/7A+uXuer5zL1D5jz0 R84dirsVdirsVdirsVdirsVQWq6NpmrQCDUbdLmFTyCOKivjmNqNJjzVxi6cnTavJhJ4DVpV/wAq 78l/9WmD/gRmL/JGn7vtLl/yxqP532B3/Ku/Jf8A1aYP+BGP8kafu+0r/LGo/nfYHf8AKu/Jf/Vp g/4EY/yRp+77Sv8ALGo/nfYHf8q78l/9WmD/AIEY/wAkafu+0r/LGo/nfYHf8q78l/8AVpg/4EY/ yRp+77Sv8saj+d9gd/yrvyX/ANWmD/gRj/JGn7vtK/yxqP532B3/ACrvyX/1aYP+BGP8kafu+0r/ ACxqP532B3/Ku/Jf/Vpg/wCBGP8AJGn7vtK/yxqP532B3/Ku/Jf/AFaYP+BGP8kafu+0r/LGo/nf YHf8q78l/wDVpg/4EY/yRp+77Sv8saj+d9gT21tLe0t0t7aMRQxjiiLsAB2GZ2HDHHHhiKDgZs0s suKRsquWtTsVdirsVdirsVdirsVei/kz/wAdPUf+MCf8TzQ9u/RH3u/7A+uXuer5zL1D5jz0R84d irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVei/kz/x 09R/4wJ/xPND279Efe7/ALA+uXuer5zL1Dyj/lTOp/8AVxg/4B86b+XYfzS8v/IE/wCcHf8AKmdT /wCrjB/wD4/y7D+aV/kCf84O/wCVM6n/ANXGD/gHx/l2H80r/IE/5wd/ypnU/wDq4wf8A+P8uw/m lf5An/ODv+VM6n/1cYP+AfH+XYfzSv8AIE/5wd/ypnU/+rjB/wAA+P8ALsP5pX+QJ/zg7/lTOp/9 XGD/AIB8f5dh/NK/yBP+cHf8qZ1P/q4wf8A+P8uw/mlf5An/ADg7/lTOp/8AVxg/4B8f5dh/NK/y BP8AnB3/ACpnU/8Aq4wf8A+P8uw/mlf5An/ODv8AlTOp/wDVxg/4B8f5dh/NK/yBP+cHf8qZ1P8A 6uMH/APj/LsP5pX+QJ/zg7/lTOp/9XGD/gHx/l2H80r/ACBP+cHf8qZ1P/q4wf8AAPj/AC7D+aV/ kCf84O/5Uzqf/Vxg/wCAfH+XYfzSv8gT/nB3/KmdT/6uMH/APj/LsP5pX+QJ/wA4O/5Uzqf/AFcY P+AfH+XYfzSv8gT/AJwd/wAqZ1P/AKuMH/APj/LsP5pX+QJ/zg7/AJUzqf8A1cYP+AfH+XYfzSv8 gT/nB3/KmdT/AOrjB/wD4/y7D+aV/kCf84O/5Uzqf/Vxg/4B8f5dh/NK/wAgT/nB3/KmdT/6uMH/ AAD4/wAuw/mlf5An/ODv+VM6n/1cYP8AgHx/l2H80r/IE/5wd/ypnU/+rjB/wD4/y7D+aV/kCf8A ODv+VM6n/wBXGD/gHx/l2H80r/IE/wCcHf8AKmdT/wCrjB/wD4/y7D+aV/kCf84O/wCVM6n/ANXG D/gHx/l2H80r/IE/5wd/ypnU/wDq4wf8A+P8uw/mlf5An/ODv+VM6n/1cYP+AfH+XYfzSv8AIE/5 wZN5G8jXflu7up57qOcTxqgCKRShr3zXdo9oxzxAAqnZdndnS08iSbtmOap2zsVdirsVdirsVdir sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir/9k= + + + + + + uuid:82D8E573DAAFE111BF0B8F740ADF4EE3 + uuid:8ccac4a0-f819-bd4b-9966-e33d3f17e366 + + uuid:b1ac9fe8-11a3-4422-b8f3-ae4b8085b7a8 + uuid:5D20892493BFDB11914A8590D31508C8 + + + + Document + Print + + + 1 + False + False + + 114.000000 + 114.000000 + Pixels + + + + Cyan + Magenta + Yellow + Black + PANTONE 485 CVC + PANTONE 152 CVC + + + + + + Default Swatch Group + 0 + + + + White + RGB + PROCESS + 255 + 255 + 255 + + + Black + RGB + PROCESS + 35 + 31 + 32 + + + CMYK Red + RGB + PROCESS + 236 + 28 + 36 + + + CMYK Yellow + RGB + PROCESS + 255 + 241 + 0 + + + CMYK Green + RGB + PROCESS + 0 + 165 + 81 + + + CMYK Cyan + RGB + PROCESS + 0 + 173 + 238 + + + CMYK Blue + RGB + PROCESS + 46 + 49 + 145 + + + CMYK Magenta + RGB + PROCESS + 235 + 0 + 139 + + + C=15 M=100 Y=90 K=10 + RGB + PROCESS + 190 + 30 + 45 + + + C=0 M=90 Y=85 K=0 + RGB + PROCESS + 238 + 64 + 54 + + + C=0 M=80 Y=95 K=0 + RGB + PROCESS + 240 + 90 + 40 + + + C=0 M=50 Y=100 K=0 + RGB + PROCESS + 246 + 146 + 30 + + + C=0 M=35 Y=85 K=0 + RGB + PROCESS + 250 + 175 + 64 + + + C=5 M=0 Y=90 K=0 + RGB + PROCESS + 249 + 236 + 49 + + + C=20 M=0 Y=100 K=0 + RGB + PROCESS + 214 + 222 + 35 + + + C=50 M=0 Y=100 K=0 + RGB + PROCESS + 139 + 197 + 63 + + + C=75 M=0 Y=100 K=0 + RGB + PROCESS + 55 + 179 + 74 + + + C=85 M=10 Y=100 K=10 + RGB + PROCESS + 0 + 147 + 69 + + + C=90 M=30 Y=95 K=30 + RGB + PROCESS + 0 + 104 + 56 + + + C=75 M=0 Y=75 K=0 + RGB + PROCESS + 41 + 180 + 115 + + + C=80 M=10 Y=45 K=0 + RGB + PROCESS + 0 + 166 + 156 + + + C=70 M=15 Y=0 K=0 + RGB + PROCESS + 38 + 169 + 224 + + + C=85 M=50 Y=0 K=0 + RGB + PROCESS + 27 + 117 + 187 + + + C=100 M=95 Y=5 K=0 + RGB + PROCESS + 43 + 56 + 143 + + + C=100 M=100 Y=25 K=25 + RGB + PROCESS + 38 + 34 + 97 + + + C=75 M=100 Y=0 K=0 + RGB + PROCESS + 101 + 45 + 144 + + + C=50 M=100 Y=0 K=0 + RGB + PROCESS + 144 + 39 + 142 + + + C=35 M=100 Y=35 K=10 + RGB + PROCESS + 158 + 31 + 99 + + + C=10 M=100 Y=50 K=0 + RGB + PROCESS + 217 + 28 + 92 + + + C=0 M=95 Y=20 K=0 + RGB + PROCESS + 236 + 41 + 123 + + + C=25 M=25 Y=40 K=0 + RGB + PROCESS + 193 + 180 + 154 + + + C=40 M=45 Y=50 K=5 + RGB + PROCESS + 154 + 132 + 121 + + + C=50 M=50 Y=60 K=25 + RGB + PROCESS + 113 + 101 + 88 + + + C=55 M=60 Y=65 K=40 + RGB + PROCESS + 90 + 74 + 66 + + + C=25 M=40 Y=65 K=0 + RGB + PROCESS + 195 + 153 + 107 + + + C=30 M=50 Y=75 K=10 + RGB + PROCESS + 168 + 124 + 79 + + + C=35 M=60 Y=80 K=25 + RGB + PROCESS + 138 + 93 + 59 + + + C=40 M=65 Y=90 K=35 + RGB + PROCESS + 117 + 76 + 40 + + + C=40 M=70 Y=100 K=50 + RGB + PROCESS + 96 + 56 + 19 + + + C=50 M=70 Y=80 K=70 + RGB + PROCESS + 59 + 35 + 20 + + + PANTONE 485 CVC + SPOT + 100.000000 + CMYK + 0.000000 + 100.000000 + 91.000000 + 0.000000 + + + PANTONE 152 CVC + SPOT + 100.000000 + CMYK + 0.000000 + 51.000000 + 100.000000 + 0.000000 + + + + + + Print Color Group + 1 + + + + C=0 M=30 Y=70 K=0 + RGB + PROCESS + 252 + 186 + 99 + + + C=5 M=70 Y=90 K=0 + RGB + PROCESS + 231 + 110 + 52 + + + C=5 M=90 Y=75 K=0 + RGB + PROCESS + 228 + 64 + 68 + + + C=30 M=0 Y=95 K=0 + RGB + PROCESS + 190 + 214 + 58 + + + C=60 M=5 Y=95 K=0 + RGB + PROCESS + 116 + 182 + 74 + + + C=30 M=0 Y=10 K=0 + RGB + PROCESS + 174 + 222 + 228 + + + C=60 M=10 Y=5 K=0 + RGB + PROCESS + 87 + 182 + 221 + + + C=80 M=5 Y=10 K=0 + RGB + PROCESS + 0 + 176 + 216 + + + + + + Grayscale + 1 + + + + K=100 + GRAY + PROCESS + 255 + + + K=90 + GRAY + PROCESS + 229 + + + K=80 + GRAY + PROCESS + 203 + + + K=70 + GRAY + PROCESS + 178 + + + K=60 + GRAY + PROCESS + 152 + + + K=50 + GRAY + PROCESS + 127 + + + K=40 + GRAY + PROCESS + 101 + + + K=30 + GRAY + PROCESS + 76 + + + K=20 + GRAY + PROCESS + 50 + + + K=10 + GRAY + PROCESS + 25 + + + K=5 + GRAY + PROCESS + 12 + + + + + + + + + Adobe PDF library 8.00 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 2 0 obj <> endobj 18 0 obj <> endobj 93 0 obj <> endobj 94 0 obj [/View/Design] endobj 95 0 obj <>>> endobj 19 0 obj [/View/Design] endobj 20 0 obj <>>> endobj 92 0 obj [93 0 R] endobj 5 0 obj <>/ArtBox[0.0 0.0 114.0 114.0]/Group 73 0 R/MediaBox[0.0 0.0 114.0 114.0]/Thumb 107 0 R/TrimBox[0.0 0.0 114.0 114.0]/Resources<>/Properties<>/ExtGState<>>>/Type/Page/LastModified(D:20120604143053-07'00')>> endobj 103 0 obj <>stream +H‰ì—KŽ$5†÷y +_ Ü¿½¥@#!5õ‚”xõŒ4´šÛóývVV °F jѕi§Ï/Âî§oÏîéùÜ_žÝöt~ îò悷lü֘ù՜{»|؞Þñù§·-¸àÌòüûõ‡íÇíãv›8í³ß»saX{?:›s#ù̵âCÉ]ÞÏeï·S3ßSáý•÷äKk¼ŸZö£Äúlv&o%ºËvL”è;â^ïf²¯ ƒvY§R}ÈÅ]õ\ÇÈȼõzÌ #7f´fx |É÷ŠŒ}ÊR|-‰aö9V‰`&Õ~̼Ιn嘑p“Œ[·»qñqzr7QKw7X¥ç¡bÙaÅ·t[ñ:g¢|¿î1b!åW™wã¥ô˜Ø­:ìV*OµbŒ{O£yS°öàÄä{­·ØÅÌø>Þá.Òæ[¶c¬¬¦#s×ÑÊìeÛÇ+õ¯×ácÉYÀ]@ò»-øìÞñ[Üï.»g÷@ðà?ˆàÏÛ 2ëìÏ°7SAxð©Ýá$iÚ"‡šùÈw¼ai¶v³âT:o‘òº4;„íÃ0·®÷y,Dö‰ì“)`KR"äq¸«¦}ÈþeÊ>V²§¡û8\ń«…Aµ8–óË÷rþfK”åÿ4&a6˜‘1¹$u, ÍÅêkÅä#"°ŸTðÙ\÷]]£úÎQƒï¢}xú¬âk•¯>w—Úì 5™Yسk¤ÖÑXBQæ±°ã^~‡”fmÊæe‹4%™ñ1)£¹Â–ž¦¥©»ÚÑ'7IeÆqzaˆÉ˜ÖA³4œuä ZJZËކa”q©8¢òu1‚BÖ£S]<†¬E§>bâؐp"vq +=…ˆ× 4Obrò±WÑä2 ˆš:®VŽÙ‚ øc"`8G01»ã)öÒÄ3ўþö͐Ì.lîѱOÔ ÛêjèF! Õf‡°ŒaDõ‚°“|Y<ðQ‘N³áE2 D”Fd—­#¸U<¤Z`#ëצ…(Âõ´2DJ†65ˆ8H&™UÌЁ•}Âg$2?¨å“¤LsëÓ eŸ0“§Ò&å•(FGöˆÞHÎäÏÜAMwŽZs¿ð÷µ{àüÀù?‰óћãß÷f® +bŒ<•Â=ã€9ûG§Ìt–p]E +ޓڀ™ÐÜCNx9'ÝPºŽ G$‹ ÇDp&˯¡ØPó˜›4§Å3|鄉’ÉlÀ #…hlhçœëÂÙE/y•SA?8&lì•ô"ä {±´¾ª¤RLW +€»TÃbåh&ÇI0«TE[Dü“u“ëdy(¥#O0â<©`¾á\äÁ™JU“ʲJ7CB%pc,ž;i¯Â\5ß¹%ÂlÆâOÔV4“w] ÑQ¨`tÑo¶©¾¡¹Ï&3™{d"Ì& šHp@s+oºvâ®+cS™…~õ\ÔbºÐª‚v`U, óC³¸ m³)´É¬Ú–Rj A€qz„©UŽ¶–æE7¨ èÊ%EÞ×¼˜ÕZ¿‹ÓO{ÛÕ8õóÿp„>ýWº:éWÏgÇã‹„ endstream endobj 73 0 obj <> endobj 107 0 obj <>stream +8;T`p_%?Z%#Qh!kGhIauV3no3/gB endstream endobj 96 0 obj <> endobj 97 0 obj [/ICCBased 98 0 R] endobj 99 0 obj [/Separation/PANTONE#20152#20CVC 100 0 R<>] endobj 102 0 obj [/Separation/PANTONE#20485#20CVC 100 0 R<>] endobj 100 0 obj [/ICCBased 101 0 R] endobj 101 0 obj <>stream +H‰””uTÔKÇtKˆ”ˆKJI,‚t(݋»4ìKÇÒÝ%Ò¹´H—4J#‚Ò’‚(H +w¹÷þqÏyïyßó~Ï3çù̙gÎ<3ó̄Y9El +@¸ ]äÕ!OÔÌ-@ãÀà\€ˆ¹¥+BVKK Àè:øOX×~òþ¿ÿWCa®–iHKL€…À0qÍY¦–Ë `ø5àcü€Âæk–Ë +XŠ]¶x=†äß ðš8¯ÙÚÜ üX€„Ŀ׽ƒ>Ÿ.Èf’‡›#aP§®¡¦Èünæ óD^{y8ÂËÅÖÚ  €d¡p H×Ë stå©:Yò€Äô׬cxc IŽVÈ?SÂÅ!þ:óè_úÃÆî¼9[ÂYbQ’PÒ~²+rA +SÊhª¦›«·HhÀ´†t^ôé ·'0±ß…€Â™kYæX¯ØY9îYq†q•p÷ólÝ'äãäW°Œ£…z„EÎÅèÄE$´%D>,–ê‘^|t*K)Ç%/§`¢è¦¯\¦Ò«úùñ‰•:¯†¼&D ®¦“¥[«7¨¿dplDa5–|ªmbõÌÓ4Ê,óy•y‡Å{Ëe辶5• «­œ½Žƒ©£µ“3Üìã’âš…,t+w¯ñhòl÷êõðõóõA  ö½ î é m k +¯‹xYU“›H„&%«¥È¤ +¥q¼ O'M¿zù3ãKæTÖ@v[NUnn^\¾o]¡a‘b±Tr£ä¢t»lºümE]e~Uü+¿jûאåZÑ:¶zª a·q®i ¹¡¥°5¡Íÿ};¤C¹S¤‹¥›¢û²ç[ï\_ÿۆw…ý‰þƒCa…¾Qº1¬±÷ŸÆ;>”L$Lz}4ÿ¤:%8M7Ìl̎ÎÕΧ/ø}¶XT^â]¦X>\™Ym[Ëùâ³n¸!´ycsk«ûkƶóŽÊ·;ßöv{¿§ýpßÓßúIþsû ÷0ëÈõXõ„éäàôݯÔ3ós®ó‹’ß&—$—õWÆWW˜*ØÂ)ÁãÅ!è$Ü$Æ%¡!e$cºÁHNOAKIMEq“„—úâÖÍí ÝýÃâíƕ;KLów§@˜‡YúX;ؚÙë8^Ý+çDspçñäðfßÏàKåOˆÅTC˜P°p J%†’D=ðè+å+íûÈO%$*©«˜¤”®œ¡’©šý8÷I¡Z½\£Z³^«U»K§_wLï“þ´Á¬á¼Ñ"dÙxíé¦Éö³]Ó}³£ç§æ–†»²º°>³9µ=²;°ßsøî¸ã´_G¬8/ºÌ¹N!GÝzÝ[<ª=‹½2½|B}½ýàþP”Q€z lH0Wc(EèeØnø|ÄPds::5&8Ö9îy¼F‚T"oÒídâ䳔¯©³iƒ/ZÓK^&gd:fg«äˆæ²çQçãælÎ ·£kJÐ¥™e‰åá¨J*ø+ëê篍kôj5ëÔêU”›š[”ZUÚ¿Ñh×é0ì|ÖeÙm×ãÒëÓò6ê]BÚ@ö`ñPÕpãHçèÀØÄû…ñûçñ?QM1MsψÍ*Ìiϛ.ØöZ [JYÎZ)X-]«úR»Þ¸ÑºÙ¾ÕõµwûãÎú·£ï¸?¨ö@û¼?Åä5Ž ǖ'v§N¿àgçÐ ƒß +—üW´×÷‡3ƒgƒÿŽŸL¬C#u!ó¼áMîMáMéEåvAms˔F‡V‘NŒž‹Aø¶£ÌGL’w…A¼Ì¬,ô¬äl¸l¿Ø¿s¬Ý›ááêænä©àͽŸÌÎï+€„‚!Bê²"¢¢ 'R&k?¾ÿ´3?Ã4+:§6o¾€ü¾˜¾T²\·Ò±Ú¿6úåÃúÄÆøæÈVß×ÖíʝÌoá»ðïF?LöžîüT;:ä>¢::>ž:©;ýeqÆvx^saõ›òwÝ¥úåʕóŸï'_E˜F”O\D’KšLtAnF¡F)FÅ|“èæõÔ­6š\Ú`º@z?äm+Fý;²L¼wiAh›y’¥͖Àîͽ§Á)ÁÅÎMÁý›g›wú~_ Ž@Œ ØZH_XA,Ê"F)Ž%¾/±*9ù ïaƒZ:ýQ”ŒŸ,\ÎB^_AUñ¡’€2« +­*‰êÕãƒ'[j êão5[´ª´óuR1uà­ïh`f¨m$1æxJgBdrölÇtÁläy»y¥E¦e$Ôfe¥g-g#`ËdGbwj¿î0áØáTOC9;¸¸Ê ¹Ü¨ÜÎÝ¿xŒz6zåx‡ù8ùøIû³£ÈP‡ó=A¥Á±!.¡†aÂAxۑü÷ϊ³‹˜Œ}bŽG-ø‘Þ’Ä“ª”‘•x–`—G˜/™ššê›Ôœ¿ªž–Ÿƒ q¡_¢O£?¤0¥"¦§§ý¨ó©êªâ«Û¬Õ­Ð®Ë¯Ç°Ä±Â²Á³Á´ÂµÅ¶È·Í¸Ó¹Ûºã»í¼ø¾¿À Á0Â@ÃRÄfÅzƏǦȾÉÖÊñÌ Í*ÎGÏcЀџҿÓàÕÖ'×LØsٛÚÄÛïÝÞFßsà¡áÏãäMå™æçè6é†êØì+í€î×ð1ñòïôMõª÷øZù«úöü:ý{þ»ÿÿÿ€€å´ÍTÌ?¥~òŒ”~i˜ž~L}ãÁ~cbAþ~’Da€dþ€ü¸~t‹yä~W‰²ÊÛ~Oˆ±>~\†´—/~‚…›|“~¾„º`éƒôC–ƒx¢€äƒßú£}%—âH}”1ÉX}%‘z¯Î}K•Ö}† {N}׋<_´~7‰‰AË~Àˆ-ψø¿|¢°à‚|žÉDz|+›®E|[—£”s|«”¦z} ‘æ^•}wO@¶}ÿ-Œ~ċÉ÷ {G®uÞÚ{D©zÆ{]¤Ä¬Ò{– f“{êœZxÚ|[˜»]ˆ|ϕM?¹}R’‹<}Ǝðõ…zªº]ÝYzŸ´Hħz³®‹«|zð©=‘â{L¤Nw²{ÀŸº\‹|=›>Ó|¼˜v|ېIô8z/ÆrÜ z¿;Ãbz'¸sªMzd²6ßzɬqvÒ{D§[®{À¢0> |;Ÿ| óyÑÒÈÚñy´ÊaÂIy¸Â©?yð»açzY´ÎvzÝ®Æ[{^©‡=c{ФÓI{Rò*yŒß„ÙýyfÕÓÁUy`Ìî¨Vy”Äâyþ½’uKz†·Zi{ ±Ü<Ú{z©%žzȎíí‰~+Ö~ˆ}±¾Í‡}W¦µ†0}3Ž…„}HtЄü}ŒZk„›}è=Ž„Ÿ~‹‹†z€ëɇ®‰Ն£‡}½…¹†!¥~„ø…ŒÐ„d„*s}ƒôƒˆYƒ¨ƒ<9ƒ¸‚àù…w„éû†p“øÓS…w‘u¼„œ¤ƒõ‹‰ƒu‹VrUƒ‰ÕWÿ‚؈|;,‚뇔ˆ„{‡¨èR…sžøѲ„ƒ›ºƒ²˜;¢¡ƒ•:Š8‚ ’¡q)‚PCV÷‚Ž:4‚.Œ–8ƒ‰ŠÉæȄªªÐ2ƒ»¥­¹‚ñ¡‚¡?‚U¤ˆîãšp £–çVu“ÿ9S†’ ‚šŒçåc„ µbÎփ°·µ‚Rªê ¹¦.‡ÕN¡Æný ¼U€ãš38‰€ó˜8¼ŒAä/ƒ‹ÀÚͬ‚œº‚¶’Î´zžô6®ß†è€Ó©°n1€“¤íT\€e Ø7݀tžXT‹·ã)ƒ$̯̕‚6Å;µ˜e¾Cž€Ê·Ë† €i±Ýmw€3¬Sƀ¨V7M€ +£\®€l‹GâN‚ÐØ»ËځæÐN´ÄÈa5€tÁ…N€ºzlÕß´ÍS<º°H6Ѽ¥*ôŠîÝ<’a|˜Çkz|C±VŽ²|šÇ|ƒ—‹·|IkžŠ‚|±Ru‰ˆ}26Ž‰'~2‹ÖÞÛF‘-†ËƏB…„°*ƒ„o™²‹üƒ‚ƒŠ­‚òjŒ‰‚ˆQ^ˆ£‚@5zˆI‚`Š˜ƒ†Ù³‘$ĝŽ"Ží®ýŒcŒß˜€Šñ‹&U‰³‰²ijˆ¦ˆ|PJ‡Ë‡v4v‡y‡ú‰V†»ØG›’Ã.2˜{­‹†•——Š’ý€ˆè¾hS‡æŽ¼O[‡Œÿ3†ÂŒˆ(‰„ÖéŽJ¦Áьx¢&¬$ŠÔžs•Ò‰h› +~æˆ2—êgK‡>•-N}†o’Ì2ن‘Á N‡%ˆÿÕ§±°ÇÀ›‹â¬ªöŠ>§w”´ˆÖ£A}⇤Ÿ\fX†§›ÚMµ…ݘù2,…Š—ò ¨†KˆÔ3»¥¿’‹g¶©ò‰Â°¦“¾ˆ[«¤} +‡0§ež†6¢çM …_Ÿ¯1… ? …—ˆ1Ó£ŒËÆǾ³‹ÀI©‰^º’ç‡ô´I|B†Ì¯dö…ܪwL‡…§e1$„¢¡: ®…‡æÒàŒrÒW½ûŠ°Êñ¨]‰ Ãá’1‡£½S{†z·|di…‹²ÇL „½®g0·„\ ð U„Ž‡©Ìû›ò{[¸“™G{!£ö–¸{ ŽÞ”`{&y’E{xbie{ùJrŽÚ|“/cŽ5}~ +~ÀË:šâ„ý·f˜#ƒç£•™‚üú“M‚Kx+‘CØa|ušI~÷.yWã ώ›ƒÉәߎ­¶—%ŒÂ¡å”˜ŠøŒá’[‰‰w!^ˆT`ƒŽž‡^H˜*† -§ŒŒ† 5G…èȨ˜ç˜Ž´ã–=•Î §“½“4‹»‘rív†Žÿ_ÒRG±Œf‹û,ދ̋ͯŒ…ßÇ|˜,¢†³Æ•„žúŸ{“ ›¬Š„Ò˜ªtìŽÙ•ô^1“ Fî‹Å‘Ä,;‹'‘¾<‹!…‘Æ_—›¬¥²²”õ¨Yžl’~¤J‰„J tŽS#]¸Œš'FA‹4—÷+®Š”—;ۊL…PÅf—&¶ì±É”€±Þ‰’­ˆªÕ¨šs@å¤]Œ0¡E±Š´žÓ+:Š›ÈևSS 𧠨ŒêjVPp,<XQ)‚XVl€(Js•&ÂJ!ÒûK{é½@B€ÐEŠ. œe°íÙWqQ䆓³â½ý~3ßÌ7ßÌçF£HI^ý\¨¯§¬ÁïÓ¡ƒåœ+j&YÅöÉbƒdMLÅÑÅ{#©©úè÷)Fø£ÛAŠ;q²ïT0Œ±_à ^¿£9IݤšxÖº¶Æ¢YFh“9ՅÆhX;Jõ²Æl¬ äÀín+jÅÄ¡®(Ým,Ö¼Jƒî(Va÷V/ÀÈÄaؑ”@ÈQ~.æ8_]±Èš7]ñÕÕÌÃãõÚgÕ|ÓFÕ) -—/ªºMH—|­Š¼øP´œ8™%èoFxàCÿ­<÷ªR×l® AÒ^«™ ÷QÊlÚÁzÙrJAUžUÿá™ÿd*ÿùüîNî$iÜÉ #Ÿv b7FÚ*4ނ÷ú¯ + Ëû§pv€iâx֖¼÷ŒÁIªão¥‡ìžËÝJÛ±á#ç +í¾ËW—àh…Ô‰Šlý"ùkx wVjGá“Dzˆ–ç*¸ÇߜxŸWÁŠ:Æ©d¿ÙPÀîæ$¹üЍjÀ4W·Mž¨[ÎÝ,]¢Ê«$ˆ–ÈWæî$I×&®åNˆ¬‘}ì7¨ sØþ»‹1@À9‡TɎ.íEÙÓzN¾Dfº*uwr þ„úØ ˆ *ª#Øùòë­,¥h؅Ãð"ä8=”³NÍ ¡%ƒ=(‰p¤â…QuÃ9søLӓ(î&Ãâˆwì¥Ú¾õ?±‚ER AHi.RÚ~ ԄË6õ ØÑâ¿:Ò*tД3*»–¿Û±ôx#ç‰m?r~3×û2ÿ+Êwù‰¾šp¸ÞÇ6‹yXaœTOÃ#Œã +U‹Â¼<·_)ÂIø(»Œ}¹ÓW2SÎX U€àwü õ¦ M¨–f›_T‰)•úà“Ÿ?k–YYF…ôK8ãÁu;J$óÀþ*1T…>,ë#h›%TÓ,…QÛ¥{[ëõsˆ:˜ü9󅼓¼&^!Փ˜a£â@Ò!ßÍ" yð +µ´.—÷Jl6mçHj†uÁ,béU6£+s©ì ýhܸdœ-Ê¥ª}…wiÀ-s´un=0ŠÄ½äi-_ˆ*)UÞâ_ˈ“âÚãb$ôöna+;ϧTø;pçpA7Û¨¾¨CÈ4åÏ.*·Iߥ›a‡8õ°MÌæm.‚þôACiü“€7»\j|fi³¹Õœ¹•Ô«)Ö÷]Þ­°jö¤À¡Ê„ÃÑâUò]¡3(íž ðwhöJÐÛcÉh-®4x7–“öh׿*P0¿H됎L‡žŠ®ëž‡Ú¡uê‰Õ¾°…Å×Ú,Ë{ÏBz}§…8¦v¶gÊgŸÒ²¤d[û!XTZçZ.ø·vlµA°¿g­Ñ +{;SÂm¶`vâîØ¿`~È?g¥a.œ +3žÃŒì{§­Çæ†L¨^–»¡¦ÔÅåW€ƒ¹¾ÍY¥eÆ4õ‚]¸Lû7oÞðýák˜õ¦ö!w·™™ð«Iý~»Ir»a^=¥Cë#ZÀ»hçÓ`Wï‡u}p¨Ãçê)¸À"®zœ7ff&²3© ’ß$ß©ôF’ø‘ÓÒJ8Ò¶5ãùÞmµ +u´®Râ_,^V¹àS&åaR´~PfÄÜLL_Dw¸ž*Ž‹`\Í-¦9]qîõ®¯¡ ¦Ý Â–Çô¹T¸Ií6)ÿ>u6 DÝ`eÍ¢/»–¢xq¶Y%¤9ÖÛʜ¼;«Ã¥Oêd\˾ÊP…&eRËzïç;¡]¥¹‹é.íRµ<oªÊΡù]öP{?¯:¦ r̨\˜µÝÊ»b õÒ¤â3|ª×íâm ¨s¢ØŸîÛÖW°9¢¨ñµæoZt]Rn“ÏÅ\½c…Wö#+…n•I&õgϽØÝy¸œAjsÑN‹06”HiD­±¸È'@ÿ¥ðõJ+¦ša5V~€cRˆIµõÌ«ïvwtUÓc[3+?F|l(ÑÑiÆÚU—žøô¥^+O—?Rí°Þs©šÿÿ—1ûHqilÑè$Wþhü›û™=¨ƒÀ(ÎRE +ØÁ1¯B›¹vџ¡®nÛ˜F/±ã BsßG³åÄÄÃMœYø«ëç9>£Ü–3……È—qIôƒ Ú£±¿5ƒµ¨ÕV‡Ü_À1È£¿Î²œåiÃñ¬JiXû0ÛWV–ÁîH[8g„«_î/ü¡£ +n3¥ `€ ¤Ðþ38A.|«f|ј0Iõ½6Öbå v«%Ó&ý ;Y®ý㿜Õ҄#ç‘dÿ–D.)Âì.p‚'ãï3ËJî›12K[DÌuÉ¥$s8·I<ÁR¨i©mì£J·¨8Ž}†ÿf€Ó ²åDJ¼Æ€àºƒws€!ÃÊ«®ŒÄr—æ¢RXÔÊ-\y^Í*Ó̏Ld'¨é›²9?) "Øqé×^…¦5µ/<4þ§i +¨ýQ<ŸÁÑÇ +›˜;/¹¥Ô±ìJB"¬‘ü7þØt͚ù©,mºóXdÚ¾^ë;촞Žñ&sà`«YÑ"à놠ÑYŸüŠ™¯{>ƊÕ.õßÀz^48¯‰e!¹ôR‘6}ØõvcûöìÆMiŸozî²Úoñ0¢'“=˜~µ¯Âi,3Ã:?-‹©Ý?oS,Ùõô9áÎüwß¼„µ¹þ#îÎRçOaƒìÙü£˜˜—ô;Æ ?àþäïŒåpïÍBäÒ­À +±ÖžI̝¼üO´ ݟ÷e#}Ô¯èN$í\êŠl?¼],÷ý Å·y,ÜÑ>&РôŠîä©øq]Âyhâ0AqñâK)ĝBÍF¶“ҍcH:ñì—-h-ñǟcȵêf)¯K9T£ã127]çÑä÷q·EjLˆâí•<>hÁ‹;ù|ãU +Ÿþ¼øםà”dÜp‚G +Æ«½`¹&!…Ïä8aðÉlû³›`83>Ì.‘òq„ŸÉ‚æn睅ŽÚÀ¤Aß9 +;èœ ï ¡‹­ê`¨¦H†ÚBÕyåg¼ Þ KBý ¯*kï㰗2fF„=#Ÿ OMã· éeT? +m­òTmê_¡å“ãOBۊV¡¸<ɆF('—n3u£G~†È®#Æ7Њö9•Á[ÃÙ¡`NísÞ.°P..콤 'Knpƒ–FÙ‚\„? ÇB>ƒöÆ-àî±Êõ`’ñ†½¯NÂèWßOŸOW«BƒªÊl¯f°¡xßìW ^ÐÔbžÚú-_Œx&*/¹ê(Œj´•‚µ_…=߆󑊢æŸzF–“´`éLd¯ßE:»¬—SN¸±ʔ@S 0Óþ¢3•|TÖO¹Ko³kÈÄtëßo}bF†Ùz$4á«â-ÕÐç,¨.mŒä'j*J¨œ|)JË6²Bµü¤‘°P ^Ã3ewÜ«pXúÁò.þ”*íù,0ÓÅ7xP­Ú³Å:2¿XOTç21|"7ùÄ=Ç0ãžß´©ãŽy}ĸB)Hä[èöžÝðFs´ ²òV¡+Ÿ±ò̯+Y(IŠ•™(º³‘Àx&Úá9JAIìÏã'tXmyœGÄ=œX[8éTK³)¦2œí©“<ÇTSRüv¥x£ã€lȓGO¤|Òg‚/÷{Ø>ãºÑ4Öù/’gËRçáŠF–ȶíà&æAÓ5”š2Ü uЯ*B<óiò뾘0Ògµr+OÍåA¸¾,0Ÿíî™-ŸbÅu¤g[ï\~¨-ôÛÙÐ4:I>幃A¾ÕuF‡ÇžÑ§©™ué¼DÅùº)B©,©*í?nÀ` 'qQIzÁ—K֗ö4Ž{ áB_g‡6Ÿ8­#ªÊ‰2.Aî$69¤!Ä̒Ñub1&Dð3Qxƒ"Þ >ɏnÞïνxüVG¿&•±TÛ¨ü†ö’Ó)©sx·d-5ºÄKx‹¢ÊÊàߣD&®1ä§ÁŸÂ±”¾œjðdû€GjJ•Ü|¨JÚ¹{ÅÛZ¢‹— Þ²Þf6ó½˜/vTñp̄ubšÙ ¼…P ½mBU#g«ëåB©gË·’)‘×-*ÔE +ar†Žæ>Ý>Ƶrn®[É­äFÓ-I ÊõByѸPå”=ÕþĶKâUC w…òG ùDéÁ}óØâ¤íñœ"¿µvN¯à.p•]ò]QÊÿ8uÊYµí{Ö#q¯éCÃáv}saü·¦x_o±òyÂiN™rÞÚœâ›À(« d8aÅw™2CöQç}Vš8ÓUWO\²g®……æ éÓ\«Ãôyk—@°¸d‚ óc…ê”Zñ‹t¨¿š9$ÜÙu +p†-œàú1ÏÝÛz(þ=Ôf) +‚vŠë¦ě9øØ¡Ö2ƒ w uûþ煼çïתÑõ#è…­Á{P6„+DÉËq3HIiŽû·Ù%„ûBóC‚’b¨!ÔÖÔkc5‡&U ):X®$܎–ºˆ[®Èb‰2¤*@ÀPkcӘ‚dÓoT©B_L1Uwi"É)ÉÌ=2#ù‹˜pI9, RêO>‡T@>è;¬bn¿Ðø¢€DÈþPuCý«ë›ŠfkÚéã^´^ü°\ÀŒG~•  »o—LÃRc¬HqÜ®=-8^5Ońµy*9‹û:-\òg8:T<á?*ÞýŽ´C;¢¶[‚µ·y¿XªÍïµ+±•ÙÊI©;÷lRLß­“$Dõ‹vYþTQ6üDyƒ€VmÖÛfy%/sIsƒ†mXP1ªLռȭ’¥«òvow)„QBµb™†ÐÀ_L¢V˜wuÅp§õ¦¶eėšõŽO*Ò“|Î+é]£(uH¼×°4ÊW¸U‹õ.ã{ Ê4Ó\ÿm.Q¿¿w‘ª¾ÒÕR~MAiÃçÀRz+%µBô‡ýóÈK‚ëzçª?'à{Àèñó kÏ҉ßaãêa§{ºèÛH]ÅþsX}dŠÁ°°a~ø3훧_•auƒ¹«Qz‚ ô ö‘¦žú˜VM\ĵv5I0ïL¾M£)ñºÇ„€pžæÂ1¿ý:5¡Ùð,ˆ&ºý©á4¨í %¦®Ã!$}o±“®cªÞ¤ã¨Aí]R^x„º‡T◬M&/BÔ:D¥wAêŒë2û4öÝÄÊ?šcîd&g]5¬b”¢’4³ôëa?«úèßû…iÐǐ»„ ìïĈÔý.OA 6Çvfv™sïd¡õ(5yTéÃHʐÍ/Põ”=…(¤a…›;zUs” ÎbÅWµã¶xéDa„)Eìʼ¤ $«sgÂPJár¿eÊYè3 wƒ€`¨cƒ™FÉo0|U[j5kÑçŒ.•5³Jç¡à&ª†åø°eŠT™Èo‘r …¨ÃˆÂ´´}I l­pàjC­á–û8cñ‡Ì5ÚJ=gç%U’®oó¤|L5çç­8E" +ِÿ®ß[Ak]Ùíûí„åJÛó‚͆áVBÆMí"{íNrÜòãæùQÕ¿òihЦ@€Y?ü 6³ñ^ß«ZWÙ¯î]Ø°¼c؋h¶KSLj:>®O ɲ…Õ÷.þÚáÝ°™µQŸ{5mm<Ù·?^Öv"ïÌ}Ùъw£÷9«ðOãØ&šv…ÄXÎ7‘km[ È,70nΒ7|÷éeÙážPÒÖ\I;<±çuë^`u‚!ËÍ$P´øŽ…B +ET9¢¤Ù²FÞW¬Àc»ƒã¹ám$úµ="G +}KÜe‹š6±~֔G_å³ÒìMËDÔ¿µs`± gî]£v¥p-9§\Nôžd{:´:Žgv¶HÖ_3fC;}ÐƓ PŸƒýNƒËp—H¯‹ídŠU9uÎ;ÂÁ´9$8wÈô ÿÜú3†rþ#¬AÄFÔiD1únŽà˜Ô-}õÉtþeÂÜÚ“D´í‡HÒ!5$Éš,IŠQ:¤È–RÂÜÏ1Ï3ÏÌ<Ï7ÇÇ ãj†1Œ[ÎЊTªÝmõ¾¨WwzU»xßù|öøþøÕ¾+ք{×úÈâöõW¿–>öò®p•ªœ:ʤùJRqY®ø¡^Éôê`ǯª<à~ó‰jûØ!mœr.ÜB­+‹Ù'«Ž”OyY+«äfN*żt ©WÑ$þ¨W\½2ï°Ôù½M_ê½c[ëgÕøñÿªjjö%WuU{{­,_¨°pêWœ–n%}P¬I^©WÑ|nˆ;c!¾p°…éu¼cʨÌN!k#¥´å)k„ì¯sdŸµ5nøŽû6Q{H10À×ëUì +œ¯è‡-£"{⠇TZG ôˆRØ,†ÍɇjࣶZw8j ICFöêÕ:½b [ Æ\+å?ˆ +èþ™oA n'a + +ÚôO¦j0ÀÕä`ê%µ|¶^é/si×_¦XÇ£ýLqiÔw]–Iç©Î­÷D"J¤î‘!y½!ñÔ¶®nˆ0²Rá zå WC¯³câcúh™üÈÅ«KÒ_R [úÓ*)! OSo‘©u©µ¶OÕ·Ó܌WÖãíze¯WÞCΓña½²¼ìÈϝ’Lê·Í÷/ÏQB´o³_“£kÇ/cg£ªÊ&MV?ÇÿÖ«5zõÝ !gÇôÌë"?wœ–P͚—IÏQ"´Î§ÈP­AdtE)q4þ±jŒðúGÁsƒÆÕnñ»{"” ‘óí}e®ÔUMÑrkÊùzvi89C}´ø®XóLB1W¾".ꕝ^M ”ÔûÄût?WK¢LÛwÕDP]t£U‘揊1r»J«ð·ÓÕ¸KÎÿV¹—ÈÿGM;phÌÕ·m æ‡v>èÀ-wgØõ©ë¡FNý ŒÊcIÜPþ#q‡òW• ŽÐËI –˜;ÇNáÙ¶þÅAÐ)ŃÞH~¡7iÛ tòhlƒ~ýÁ~dz²YË CûþåÎxŸ2>*c&Ÿm‰b›‰­ä{9f¢1X*²L˜ ß#>àíú + V@÷…¤g蒼]7n249=MÅÌÞìK% ¬;™’,ÙÓéœøFÎ\j˜ ð1ÅÑkl·Zå‚i¢×Ó؊’áíôœ²Î¡.|Q¼…9˜ŸÐ°¦$_.!“Ë;¤Ì¿¼l€ÎôEË,€ž²ûÉ¥Di­ùõ‡´¦êŽ}D‰É3^Êa`Y5Åg{J=mãìɳØéËyž3¸¢‰C¤M'¼jMê£-iŒÐ¦ÑmêÜ »n5? ÌSJÙE+U~ ô;·ˆí™Åq.t¶Xd÷¤Þ~œ˜Í~p*QÐeS¯¤%·.‘ŽÐ‹œ"Æ°ºöBs¡ª…ZÏ6-çîøÄ•6[\d;¤^z4’`;64藸ùú¤æͱw¶àô;ùŒÝ|ì+&®A©f¬LUàŽ3¬å¦åŸXòT»ßm°åô–¾)lãFí'l óVæɺÃgcGÙObßbɜ9ª;v \ºCƇL,Ž >B?ÝKGC¬·e"°z -@¼E´É£³Hûù»ILp<÷5¥À‘­ƒÄ'ðÐ҉¤èôàÞ$>ÜÖ8#ê„gäLÑ2®mš Áæc«ð¯Ü꨼1 èÀc‘ ®ðF¤w)™P¡ì+ÑrâkC q’p/Âu8#å!î*g‰…°ÈPaœ`vïu¡Ÿ@¾åo¡H`"Ž¤þ:üz–‹Ö_•‘Q<,DÒ>'Ӆ©ÓWP“²ó”§ .ÙÊÿ¾`¿xåW˜Ä3±|!6õ… » +£5„æù Elœ["Þ,0Ê eØòµÙ[Ozò‰Ì0~lúUO¤›+ùÓÚë&x£ì®kPù²c|uÉÙ$kþ.™?Ý{Qp""kÉí÷óÃÊrš6ÿisVûa‹ÄÏ=~‚@Wí_® +.<Ë7ª +­Å2Ë#h?c~¥m'r°ÕEÂ_ªxs…ë6‡ò¾øÍa»‰¥ÝÙü±¶Gµ+øš¶K 1¢þ4Œªä‰L^kUpø^^ù•_–ñmÓS^d‘Ш…§Ä'º­ùàµ>µ»Û}¦à5¶¾­—ð$:τ!EîÏ[«búJx&Õn› tº(ÒçmÀ;ZÿÏsF5u¦qX´.¡Õ‚£BqKPÁ € *£‚¢¸ l‚†„%{¸Ù“{³'÷æf';›,TT,¢bÁŠâhë¾Uqµ2Z”¹çŒ3çýü;ç}þžóüóT9Ävw´ÂRñR;GDž + Kû*ÃË/@hUvŽ„«…‰¯$÷jœ!@ጠÃvyבmŠû´,W²|-Í¢ –^¥ Õ~€Dô„²_Áô†­’"Æüĉâºàø#cØ禘Ï*íX/‡¸Ïœ“e>Ü|õXHÍù;û:˜Å)Ý÷‹d9gƖâ4àaBŒÈŸÿQ4óEÓ»w‘,C +Û¯B UÊ#à>ÉSV§$Lì-íÏ5gˆV ϯ*¢BüüÂ#‚ß}¶ npÃ¾Òtd½­¼ U˜$Dõb&$^¡\^Ò&Z"/˺+Ü-}¼Ò%è‚Z眅:}ðû9•‡ÆA‚ºYu§À æírTÜlP0Ô"šî·â~! Î͚*@5Kâ?óß«Zæ-â¿PÍó÷˜³µ=jô³>—Üˆ¬[üO?)¼a5û +®™›÷ñ?é¯ÆWóÓÐUs»ù‘°yÌ5^(ge›${C­‰âÏm>² "¤éÝG¸Õ£+Ú$Ø踿©—Ï«&¼æ XwÎÝÍÓêÆãÊ8?´Ígž‚,'ō=Ò"‚·—–/xÕúÏÂNþƒ¦îM)üïê'Ôòöº–ÌåÍEFÆÔq§rfÔ CįQ9ZY‘$r!ñ¤Òê6m†)–4¼ Ö÷V®9 k­Jˆ$#…Õ Fьê…X†³Ù¥úCŽ”pÐ[ç¤èģ)C¥ŒS¨;rFP#õIÊm„K£G<ƒÃh/ÜÈUÚ-,C€ÓO² kOKžYYµ;èMH-¾t–þ%û^NªŽÎ¾œB€‹Ø7" +´ãÙO²ají×X†_84ÍV(N“à-{D)´éF¡0«$½!àoJþÃdv/_øõ(ÿǀñÚUØH8ÞB§c×1•·ÅÉf¦b5u­Á&ë*®Ò½—nÛ2s ™«G4 0:¼\=Y2è߯ ”$bi”8亵Mß$ҙ:utŠNÎ)êÓEh²¶Dhªd«j£21|²*Téç¯VûË°îÀÀTª5È®M7-´^¢èSÌø¢84Te›µhRÒ¨jé[ìUîGþ»U±²Ÿ1•ààK{“Nh6vÕgÖ¨Ñ+Î…G?Ûõì` lݔ$Rq-ß.Þ¦2ÞóSòeÍ8pSՖïk!ÁXÖþCÍ\”z0µ0 nlhÉòjÂ<~Iª©®‹ý,K¿r²L„)ÀIM­ËàØ9M â_ˆùõc+"vҜݤôL©í¹$>ɺ¼’zÑü¾j>>¢îXå9,ZL-j‰«Ibk¤×ȉ8÷˚?vÎtÀ”òÌëx”žš‡©ÒP¾IO}„_ay@Äæ:à ãñì|VeÃ6Ö覫‡ubd/eÙ3<Ö­¬zÍtžÕeÌaÝÁ'˜cØLaM +Šlz&,f^ª_! ì?ãlâÛóŸÛ2x2¦X’yÎèåńÜ3Dó㌼)Ø\?ÈyÌež ~°ã4äÍOª+9$æ É +™á´øEˆV¿D<ŠO0ä‰Vbj&¦¾mLBÎ2Z܈öb9êðU¿È;nµ©â6L0 ƒ+–êoˇCrÑE.~µ>TüSؓÔ7X¬³‰®?MMå!ö½†Ô¼u–Oèôt›ñ’÷P Cbt;´·ðièñÈ•Þ°Ìãaøº@gWÙÛ#Û@ë¼ô4cœ9.Dõ¦æo‘ z2>M÷5¶þi—~Òu0¬ ¶qºsæwî®´QÃ9çǸLt–ý삟‘Mz)>©ûßkɝ£ûËI÷;º”îioï"’²›U)úÆ]$Yԏ†L >á$Ÿöíò$Tîÿ¢¢:gUo$÷öUK÷¨Ú,ÕCÙ`sCMAJMĚ×KŸ»C(ÕÁg]‘õ¸Ù®9ÔsÿUìGß0?“ˆ‡­Lóž5­ÅÌÙQM%Ìì”0O³léç5&Üéè`ÚƑ1,ÇÕxä'¾šä{ˆÄk+èmYÉ}“ÕßË-Jîs#\ÿ¥d‡“ó:Øi/àNûKõþÏäÂ\8©H½£›ŽstQ#Åá-­ND¥)….s*ŠZÆØõyžmÏnÏf›³Í\†1lØÅÂä’{¥Ž(Eé=õVGW¥Û9êsÞ:ïç“?àûów¶½’ÇŸœQûZºsCÈÕ6ªôAò1óöìƃ‡ë6KÌ@8ëõOUYå^ŠÊ`‰ßì7Ÿ„¶¯Šóºù³j6ù@£9?,yŽ‰¢Ðt4&Ë}"ÖT×ç- +ü\Y&kñâëVÉî»x—ë…£3ª¢9µô1ÙµqQ±=ébÃeMq\—Áª¨¯Žêî©`/nņ|ƒËþ2†ð͌Jkz¦DºmÍ«ŒIR4ü\~5NlðÔօ›ôÇKɁZ]TÉC¯3ål•Ì…©…Dî3jSS©)’tÍêWw$IXß[›wºV Ÿ +WT™«úUòŠw^PÙeU±‹®ô‚hÝWEµ^ؓ~WÓcÊhŽÿ¾s ±s£õI›g‘ù¨ƒ¶`Šÿw…¶gäs (€5£ªè×ßmrâÑÎÀæ] †¡ ÏB`7JfåAÞÖ°ÃaAÝ3Ɠ¥ïG³Îáê»þ?{¼O[ ü?ÌxËjø/´ÄæÄZ„*7¿e…xÍ÷XÎzà Ά¥î})¸ƒCÎûð?`ŸœKã‡cŒM£ÈúŒÕŒ¢´&)¢ð°š¡YÞ5õŒJ]q':]$ƒØžÖ]Yv xÖ(¾ƒŽµÐı¨ò†H1Æãe½U¬˜¥¬>Ì_0£b»?*ñ¸¨Žä¿bÏÚ÷ç¤،²•èæôÜD”±Þ;W´xm]|Næ¬7UÏù13* ;¦è.´=¹ð>ÖÒÂSÏÜj)¡CMŠü>”½.¤ÀeñI£¿ÜÛ1²²™/QßvÝНÄýÜ6T¾kk+Æœn\\‚F£F‹í¨V#§ˆ¹Xdˆ–£eº&~ûWEùÜ7á"Úbjª°Íúu‚•^I@ïj@ébQ× W´»kåò8ÇöŠwüÛ_ÕD …Ÿ^Áz‹¸ÙÚ x’Z‹KA Å_`‚T}Ú] +xÆ}ÃЁ‚M0Sõ,r„™ùV+ K¿×O&ÿƈ´`¨;­E{irf0F™]©— w86fŠ ÿÏðfm_8ÌèƒÍc3„™ß÷V“<)¦r1¿¯pˆêÀÇ +h‰Ès|pј!QÁéP'ïՂúÞʛËÏó¢ºÇ2òrõÓ¤eÒ×j4Y“ r©î’À, ÊrÞ?4‹! Uø÷qð]fÀ(œ¦*&umM+ª;”1® +-°•cœ8òC¹êÌj¢L=L«Î1þTDJ—º»7ÅÆë>©Òê²Î)BHå*£cúHY}~ñxI,{é©Æ7‚W…îûjWÖÞ§…ʇçãh¿g»_óÀ·YovÜMKiÖN>ü”˜ QÕÖRÒÒòǧ}È¥Aû–Qžj^¢©G ¿s› yJG"ñ?txt,LýÕ>«Öp°±_‘˜>ÞPo$¦Õ^<…%}¨ÊØK¦D”ÔS4¥ +·*S’<ܖÒyñd;’šÔéIJ»Ó~J®Mn>ÉÌȸcI6ðu¯¢†É–Ú˜€å䩊i77Ê_’5WŽ2' 9­øtÆ^}/ü˜8%wdáÉó0kšò)¹…ͦñ¢F9ÀôÆœk—ëÞihóà3úSh›ËPB“UÕLz¦ìs€±’'0®$Yá/L3Áª‚—oø“ól¼„ƒ|‘Éf ôɪ\AW#ësiŒÞSè-ãO^ÛIÓÌ+Ú3åÑ6¸Àxasíì îø…@MÜä +¤A h­ämŽ4™5VÑ-âî' ѵÈ1¦¿ð•S+ ž» ~* £%~kÓ¾ï˝×ʉl Ø*¿ +à lكÄ=ô3¹þ»_2~”–­OgP³¥s +˜C¢‚þÕÔcº¾ÆdÚú²[ÚaÚے{<Ð¥ùƒjÔA {! ߲ۓ¬Èñ;O'Èá9+wEHŸEÞÀµž¡&†J¯ÒVé?fáiÓº j0¢5瀶bhW”ZxÝo=”¥Æº 0–ˆÂz‰äöhK5å’m¢ä•oçÑv (Y€Ouô±óà¿t¹;‡ÁËe=¾ðRÉ*ÍïyMVõn²,¡$v:•ÄQçÚ³EãÔ.›yŒVlò;æsvn·Ö,ôõWi.[¡÷ÂÉ¢@•¦­„¤34SüD_!“ÔMú›ßF‰>J柣ND ü»@$ÊYÀ~³-³’µïCÎMu (+lBpБÌÈ^úâ#$œ~÷2è /@Ì£ë6 3nðhÛ +ž;÷ª¡û‘Ûª.âþ—«¬æÞæŠ3F¸¿q3ã™Ü\َvÞZnþZ"/ËvNF”ÜüÖNŽJ2V{œ#ΚV¹sØâÏÈe_쑮àTˆöa“8C¢°!ΗÌ÷>FîÎL¡ó\ÞþM{û—ü5®ìeH~7;FÎã Ù ²AäúÁ³»¤—B?³ÿÈV¬ùÂYš=Û©‹»Q i9ÌJ.sÓ¿c%–è•FVb‘dÕ¥iL–º`Ûa)kD麛=W®Á³Èœ¸œ‚ãÍ \nÀèçÃeÕ>ŠN¸X7Ƒ†2Iª¾Yf-Òto7±¶«/®~ÁòUýè„as[š†`W›®*v3_”`~©û‡æ:kêÌâÑjêR(" E +*Š€‚ +è´¢e)DDIØÙss³Ü,÷f_n6Â"¸€Š:hm±h+Ô]Aqñ•ÑQq¡âSaž¤Àç9ï{~8ç|³~bÌh6âG«îíZĠםN\Èh´ü+„Ë(E3§0ï~Ýùô–ÞÀ†kô–T‘MGºÎ²¼èüÎ1ü:zk›a'LáøG‚±¨‘2‡>ˆºýÅ,gt ÉÎîX&¥@Ù?e%œ +ýœ¸ˆ=@€ÆIhÆs¨ˆ²á)H…ÞU§OeX^mÈÁ7R7Ê~Ë,ñûê,é ñ\jí´±»¿J„ÔŒfÌͬíÝð¥ð8!*¥]˜JR:æ‚öWâRÖ]ÓMˆÉš” ‹PöœZ«ð;¨¸JÃNÞ.8ɦ®ÏÙÆÀ,Á[¶r*ýΑ¶]MˆòŒM"waX)Lbjd‘`ç>:ÿ?ü¾íù|:?uƒ>^ÒÏGÁ©û$˜ÖfaŸâ.Š +Ê¥_àƒS‹ø%²EDð–´8½ ¤J¶Æ=£Ä•K¢Àâ©{ƒ·À´Ü6r zþGÄãGêò«‰  ‰Þ óÆU‘ií<‘‚—ÄK’gçå"÷¦¶^ €qŒ +ü£ôùI6±°¬±vP¦¶‘éWÜy^,š†u¯c/5ÚÓ@¹:ǹ+[ùŠN¬þ+ðlÛiÁ{ÞŽPò#^¨Æy†úìïvë,ñ±Üæãþï¹-ÚÍNÕü˜ѳH×⺣<Ö¡gäx ­ÝVÈ</·Ýænb¬äæ6Ðýë¸ó´³œªÎ¡ ¤+nhB˾â¾PÑËoT(§W–æ#ò#ĉTwÄZU} ñ w-„ävòÄTç½½Öç-9Oá­ºHIãz)¿®Ž®ø ï zí9äR'·dÁI5ÃÑa²ÎZ©ïGS˟êag‰ÕW=Ÿ™.÷P1ٜ y?³¥ƒä2‡òÂóX¾)rÙ4VaGº¥òåÈX¬ò©æËBe`9üQ1‡ß͚@8ü5åŸÃàÉݤ·ÀÜäß$×ÁÏW?‘Dò}¿”zò†ÿ2‡*È +ƒŒÂÌ÷pt¬ +ü°;Br\ܕì'> ¬Þ-övø÷C¹NeʔÛô²ÈL-ʌ•qÔçK×H½”¯r Ä7ÉIÐ d<òŽ¤ù¤BðgNelB^փRγF2èÒAÓqCR€&ätŠƒô³7߄ü´{" D9š·Þÿu)—òCð­’w²¡æ1úˆt³}?"þ¥¾'Ç[Ý7oÉÌ©«~ž1…{Ÿ>Rìu*ô ‚íʖdÌCãôlÉÈÁuøtqf‹2[ÍlÒ~{S4Ã>±J$Œ«÷÷.nQ¸nlåPÝ#üxÛò])By`r+ÙwÞð²âçLH?‡˜ºñ¹VD:º|«æiU·G¹þ~Õªÿ+öå&+RµÜbö gPâÑ>Êú}¡úÆêàŒWÚÔ¹÷k–Qǖ]WSkqÚwÔ×ÎZ +ÔDæQ§žd¶¡‚‘V„Óídè24¥Œ±ÄKªGÌMËv«ü˜U35«˜KJ~Ù4&j´’w·J àÑ÷*µóy¡;˜êXà߉˔ÝÀOá÷£@›û5•hw)Œñ˜´•ÛoØ-9E:¦ó_ÀÓ̂îo¿¥òƒæ&˜6#¼Vþ£(ѽSé-te$ íפp}ô4Õ%Ò4m¼rn¶z‰üôöhe4‚KX*¯‡KÑð÷î2ù9‰Ê©à~Ô×ü'Ǥ»l|O5ÍB† +§;•^§ jÆ㛑Qõ`ØexHý³;±JË\*Ë`lú¬Ë´KÄh¦×k +&”ƒ–ñtùˆéF|(²Ý8VÇ¡‹Ü·ÁR×€§:ϳû´oÛG*UjSKk¨ÌnR¥“ï±gl¸ ÷Ûޅ-‘6¹ûÉ&¥±Nŗ´ÍÇÇÖÄ7Oâ4”ÑrGm´òO[du_T’×vYÖ{‚ ̏IyØ\ëaR Ky¶¼&•Pï7ݪJ)éløƒ¼"—Wÿ5Å{K¤å åÓÚS_õ¥àå¦j0WSW;¨wèixêÆF1Í^lÓО伴^£'¤1ï¢ÛÖbŒ%ôOAÏÐƬÕXÂhq)Ló7ÀŽj¥}=€9PXŸÎ=‘“n¹`ŠŸÉ—KX#Cù…A *7{È ãjœŠWÜ´TœByÕÑö¯‹ufכéÂñd=úA˜¿f±Á]蔧ÿFè…íÕ=à_u*`¨q›²‚·¥+î_i݋\Ê^`BaEò|ÔS&Ž¹¨Ÿ%Z® ‘a´8á—ª°+Qˆüg½Qÿ[ñIK«Î-Ëj¼£IKr2T¯cjuñª=A ´ʧØQÍ"7—ò²{Ù®“ûêם*æX|,YƦ¸¤zêˆñÑÊѽý¢Ž‹}ªÆˆf:÷jCo[>™]×ãx^¼ÒìhŠÚõílhNrÓϳEDkþªcÕCúÙØǪ ת9Öýc —ðîH›t<)…Ó}ÛzËÝ!ÇhE~DBÓ³Ê2ßS͆Êòi{;éo•×u…˜IøõpÉ??砃4™6Ùº«ê^"©¹€Ü±¾1•Rêû¸±…’<í“-–êš65s²jžpCµ‹óÝÚSjqi6dzھİÆ紈† 4ï‹†1Ú.·ë$Ã5E©Gü9ßãÇ:Øï=µ­oØ÷Òbšµì¾„ v#»Å[éÿx¬ï¯¦ÀAFë+T㳌€¢Œ³€Ô(C@RQFöº7¹7ã2€°I$Á^a$ÌEqƒ >µ.ôAEõµbŠëõiÿ€ï÷O0‚ž®Œœ]Т™K5ΫPیG„´æ˜ ãÖ ÃéÒðžZªdÖ¨J’ºË*¼$dôýò·’ó ^ª}E¾*Ö¤Á>?‡°©‰ÄëçƄŸ¨áæÄø¯­$d«ÝO”£³ è_t¦l‰%¦Ô$^7¯Š[“KüñSú‹ECq´zŒ"$]Ý*óûµB]øÊ}›ÎWö zT[Rk­"‰ƒç®å®n¾]¿EãçU—Yv¯ÚFUãW\þBÙí6£-RBè^M¿ì´e¶2Bœ4¯èÇ/wÕͺÍhú4EèõkÙ5˖’<1òU‘¼Î[¦táþÝD°Å>îQ!˜.kR¿Ï涧ä7˜uÆJµ­cû>òcªÂ +lûªˆ/ûüi^¸á3;i÷°š‚éڐÝ0ƒæsÜèÁôĀ­˜ZÛnÃSÆ +¥»ÀqW7ÏN³“p:ó([ˆ½Ý5Ì6‡8·½„Vùi•AFޜì~h¹9£PÚldüjì2îdO +²+íÄñŸ¿6Âü1Ÿ--üß1Eú×üwvø¦ þ=JCH«šW¼3ž’4܏&ŒxÝñ½8,¸Ëà&ºëãÐÔ#RcŠ3Dåvzý6‘…RS„¨yuè´_N/nm÷كØÐvTÖÃàòÖ¥Y˼?êåRF×°KzÁnª¡9ó¯ã•ÉþQ®æ4ùgœC×^Ù5l`ºP\ܲº€âýG£&ÿ¦¡Þ«`÷² õ±9ÏP¨ÒñÔҞٲXÜÊÎrÕ6Ô«Œ +V4,ùÖ{²a Ø„ÑÖý\tcY`]lÎÇ¿Ô¾¿a®§°r‡é´¯Ø=bèÖ!ÁÊ&ÖÉûYÃb Ó^[\ºaYt­$w +¥êø[ÝÄR¨)¡§§iÛìº[ô{$™ì7f"¥˜o ŒÓò“¢X‡‚p +»Àz¶BzðÎÒŽ'hºO|Ō4ǐ§|-•já +:ž•É}Ì´a«%Tvœƒ5ÛÚY9QK¦ üd0 ?ˆ$˜äćH|õ#òuäD3µ päôh¤éÔrÆdì@,@XmíÝVKY¯É@oò„Ûu‰°([µš´8#!OM~.…7SoJn%< çI¶îdZ‹ó=ž1ËD3‹!P#4÷£“ö(|:]SYd…„_škG’äõ²ïRh¹+OtÐB²«÷%Ð/eý䱖á&]·hऽr5¥slÿor šQ¾¥êÎ"F”,bՓ÷*2~®£:ʼ÷Šiõ®[ˆ´©¼«‹ÌtéÂ˦“ŸíÛ~M +ªUé6§DUÎeõ"udPO:ª¶Ç]£x+¿ì ¶GºÿB½®˜]´€q:óÊ¥—'ý:¶-ML3\ÑF$ç7…Kà3êCÄô*sü2µÜzÏFÊsõ'÷Ôû¥ñ  ‡Ì¼K¤„ÞsŸ§æÌӚŽ¤wER§” Ã!`%aTÆãH—êvçR¶W¸õSPÚƅTÆòÌ}FVArB«[ŒïSS &ñ™}pù`Ç ¦~ˆãºÓ_íŽàÙ1{Ý,yãàªo„‚ àÜÀŸþ{ó30…é[ÇbŒ K™¶È:wœ3Ùã¡MnÞÁµ†e6òsz/0OGò°" +Ü3NÝÃ|›ó/Ð'ëèO¬-R_—1Vh&׺ N’Pz8de™ºî 勊ZTH;X‚†ÐåŠQÊ6Æ}™ñ˜+°¢ 'h´Ï_î|ȋ¶ÆCc’“˜¤©u¨ýHù¶j£BA,·NÛOS«§È{é3ª÷Ñ L’è `]Ñç³Ì1ÆÚ> Aº¯Ç ªÚrxÓ´ü*E^ÿ.¢×ؐ`ú†Š“Q5 šv{`=W6뼟ñ\9aõ®’ÄvGOÞXc& võÈ1äÏÆw‚~êÖæâ0Wÿ:ʎ~µˆfª–: 0¾/˵‚§%þm äKRKåAÁüšÂï‘ÄcˆR %㠟P“#CS£éߥÞfÚmD¥5ÎoEx–…1‚7B«¬ðæ»0ìóÇù<&ÏæßôøYdø8"1²üwÜ¡5˜Á TaaJ3p˜†5œÛ¹î7îA>®‰+ç…ñœy¨”Iž–Má¯ã½ôcðuüð Zd?ÒBê†k1ÃËÄx-—Šr·sVˆ†9s¥H6p]DÎGâ¸g…O| y»„5ŽS¼$a´E˜`$íLs +[•¤YmÎ Ê~uå8Áíp`6*I ߕÎ`S8‚Ì»8s™nŽû9O3nX¬OE /7f•^ê…lËbNÖ[®PBµF¦O¬‚.Ü9¬€ó·ïZç¾_.Í5¡>¥F ›õ S¹µÌ‰µR×'}ΪѬ`_dÿXš|ê{´dâÐHXÔ¾3šQlZe7Pã©R¡ªq¸Ø´³O5¬ºOkZþÏrx5u`aǂ:‚£*`ØT–)›¨,¬ +DPQÊ®²²°dߓ——¼ìûJÈŠ ƒ£Rk=H+ +*­#u)£èèh§Õ) …Á)B§6ü¿sï9߹瞏øïHªZGòµzçG’†ÍTø"9ªÕ3hŠD×ͺ ³Ïs¡îr|ÆÅbã4þÅy ¤$”õTK ºá•"ù$×IÚÖ~Î$v(ˆBìÖ#].²ïqiÁ?­C°¹N ù–ú¯ñ~úÞ±Ë|ìíÜ·àLcOÀnÎö¯T~ø³ÜýäþvxjºÀ̦5<.ïÇf\K<ÏÞ2pô:CpËõá•Sây,66‘ê>|zŸC +Œ“¨ëE +T)ÔÈf/À•:X1È}J+Üç>¢½Œ_Éý…~–˜éQ;Ù^Çõㆪvs&¸Û¸>œ.®k“7‡ÆyZþ˜SÃù:‡Ë©ãœ£rØݖۜçœåÆaKaŸ³”!l–è.g5û ð7ÜKv¤0 ì!;ڗ­fï´îîe§ þ¼%‰]"XëTÖ –J3©aÕªõlwV²j=v†å§ ”αÖÉÞe=bùI/ìög…H&ü†™ ’:§²°˜g,(y 27°>a™b°aÌ8ýËÒ8fŒöVV®qßÕɌT‡ùµ0†ãNÕöŠ±Ðù‹ìãɉB¦‚ÑåÀ`( š_"f´˜o!• Ðt}WgüŸ_0}Hµ¸¬X Î9»,‰QÕÓÈxÏØÚ=Ž~JÙ¹§x‰>Ö€ô£ÿÓ±eç9úM«Ý÷2mFõ¥Séî)×Vk ¹µö-eZF«FÙ¥btøg0Éì¦O?‘DàžÇ%7eyÈښ6þ‘WªÎS¥C‘ÒyÜeäUS}Ýñló`a‰8i ˆèg"1лJÂ"ô|P¬KڝÒc¤,¿$¼Žì+Î&ÕÞÕPš°„vꖴGBoj_t4I òvq¨f熚(ñeÖßCÔË!οbÇ×¼†^°SŸ†bØYi1‚Óì¨;2ûˆWä`/7u¬h?4 +®†Šï!Œàzõœ@#(˜ãóT ¿œ¿6ªŒ ^ó¢ð!§R S”¼#Ð>E/áSÁq9¥z_ /G%ӈ0Câ9Æ[Û¼‚@”(Ù©”ÝP•é À, }ð¾XŸT…Ok‘‡p¼µQÈ«U¥G6 ª€ ¯x2¿e,¸Ú>¬áÛ -?Ï­°ÊQÞ¬Yzð/ÑTº·è5ÌFLÉä†^`ƒtÞ©‚Ì3ó\#¿¶»¨¥¬ê̬Dðª:¶,ŒvÓÞÏw[mDWÑ¿¡…›)½ãTB¦ÉZ½‰Þ`0Ֆ`3tÿBQ˟kkðûs4ë1yÉ ê`ì\è¸Þ¸ÂcV#þ‘z`XÄHhwõA¸0­Ú†FTy¦úqӵܫ*F˪¤%€¥*Éøµ/>Ó9 +ÖgS'µ"b'zL=Nª)c¨‘s×*æÈ÷“bä¿Rˆ¡ëä÷)W<ü#–S ²µç™›)Kê÷Ìý £ª +&¡ô”âLã¾\¹Œ9WËtÌW!Y1󏲫¬å«ä7i*ø%”ÕþêúwJ_°½ä¦Ü îÌ閥ñnÁWJñ„!pÉåþ³ä-0éT`¿:K6BÆ+»¥SõÅzÉl‰¯L,~“³J#ZL´HBEeÛ߈E÷q1 +Ú¸¬ÂTD}é­bB;º*OÑTCÒnՍlŒ$OYŸ¸Qœ®0m·‰z7ÝoŠ„9NÅ» |hý–DV¤[V¢’eÆÖ©b7ɍ£Y¯ÅZÖ¥H¦Çlþ¤Ûä~Iè)Ü»¬J•5§ø¤ÍòoO–Õݑù´©%(ûŽ,¾hÞZ°GøÊÒ¼mR˜d´¹ë!¤ð/NEWutV57z;ÂjôÇÿj¬s·ý»^’^lDçǾ0-a®û­_a®ÏLí؁ŠówÚûö44簍b^³ppi‡ú̍úô&nÓXì ã¾æûþuÆ»-«Ý‚ ž-cÎY4Œ½_Œ´¦¶³šg ?ÚjºGìIãfHõ±ú ¤%ÿÃJ҂[ö%Ï©¨C6OzvWÛzåÑoZ©tËA¦±˜þ$õ?z€°ã;ÝÆؼÅØéFT2÷/+˜å0…™ñ@ßÑ@S<@>0bð¢SëuqÜw;j4SÜ'°/4sÜïÝÊE®Õ©(P[¿øú×V‚^¡5ƊH’õk„g/´Û„«wø©û  0¥Ú*ÜìÖ­ ƒaËjƒyBýÍ5ÙTC› ÅJ(¿_©ÈFà4©òü˜!ÕmÙ, RÕÊNº Ë?SœŠü¹9³õ :×´Ê–Oèÿf¸“OÐVê×"յڇ1ÕÊí,V)Sâö@æ._ +Óú°#ý‘Qî`”Kõá¶ò|ͨ%cï˜j¨Í/&\™Û: [­øFƒtû^Z"ªqÕÙ¤Jm•ë™ŠjMarחµ`VCg +ªžw" ~><¡Ã óŠ8Éièú½µ}×XåT8°Ç³QÙ†VY<…Ä<ÏJ=áÀEÀۏ7G8v6Á¼Z:¢%¿·¶hBòò94^™Ô¥m!1¼ˆOD>íp%¬HüÙÞGè‡ÙðÄ/Ã›`rqÑ;¨±N…mï~MýÓñs§\©‡/žˆ¢Zh:•(¶í¦¥…MXžÐ°^FÛ.꜋‹.–Y½¬þÏs}5™`aŽ Òö(ƒ(X0ˆTˆ+JS°‚ Š4©&¡¤~ù’|iB!! !)$ô)Ê°Ž‹ ºØWFÆY]EÁ±ë¸Ž3x,Àó˽ç}ï¹›å|d´ðcâ +õ“|ï°i-‚¿0ÐWs…÷ +Q_Gå½pRjŠyÓ0˜òÑ׿’t¶©¤øj²ÑT̎óԍŠî‡‰D1·ëڅ”ڍ›NÊ:ka? ¦øç7•eê“棆k–Ø_µ%]a;ëזו¯F«=Ë9™Ô-b= &¿óMm0-­vDÅ'^Çj´Û+µ¡/5(erÀ^õ+E·çL F1ä$¨1KŠæ•×WE|fÔ×O£õFMK¬º¡¦ömèí:ƒ:1`»Ú¥fÂóƒŠXýЩMÕ*i€9ÈÊ +l?+Lw?-NxÕÃ͈Ôwɳ\C0–óÙ瑃f ÎsÒŠë·M;iđ`°Ê$èöµµO»“0zúÁ*RÙ¹œB9é@Â"´k¬5ÏÚíÛçvÀü~•.lð³B?îugØ]Ãedº¢†…è8J³AÞjý­Ù͹umÌ.­ÕD›O–ü^^ÁÕv:‹y;Á³skeÄæ+,LȶvÖ²­ÅíàæÒ¼½Ø®¥™Ã‚ÁdÃü_¾ë5÷ZüŒ¥ƒ;q®#k>ÓêÇÕ ¥MU\ƒÛJ“”«¶{l*͟¿’Ò‘¯3Doéü¹èyüèÉÂ"UDcû†¢ÍÁuÍÏ#HŠ)BPäæitèì½/ vÀ`Ó_êSʝã{Ìeù5mpñPpyÓ=±-2Ýè[Úëæm¸+v·Ï6*.WÛ¿©ÉSǔáñ]ã +^DMk„œ,2ý.#£÷ɲÝ\õ³Ò!{®^âƒI4ßԈåµ.~°Ã§ælDc‹BU\bò«"c äj¤Ûvý‚ÊÃöJGÉ|ÏH`_ÕÈ2ÜrÔÜÉ넧ëæH»³Ñ¥ä ¸§tøŽHH®†BaGŸ :‚ú‹ýBÖfšó°{–'ñª9 +[ˆj¥øaЧøñe +&hè´°z6FdÄy?¢>g¦Û‘x&él$¦ŠÙÜ^œåÎ:¬¶Áæ³^Šèøn¶‰úŽx-'-µ¸’û]èO 5×⽜äØÛÎ@Sä UÞڏy]°Tu à_,zŠáWPT„|BJ,ɕ}`8Çß´y?pŸ7gË¢uóŠÏ\JO(_ØâŽvOUue4•öÙ+Q±¸Œbi²?A.jÞÿ´Cxy“˜´R¸ÊÖJì駥þPÕÝt㸲rðƒTôúfd½d$ÖºâFR>Pâ¶aºL·ñ'ˆv÷¥¥äê2M—Òë*‰¨×µ¾TÕ]`WÖÝ*ßcDÜ*åûhøA¹e#ï"ûɆKO9öJ“ùíKL‹Ò2š¹JÍñçø( KgK3jԉf¬Z¶÷nLåå5‹ýo•‡M(½_ø¸×>éFO‡‘—ÚÓ¹Gi}<´ÃÄ@w¶¬#Ndº­áÙhoo4öYÜ Ì¾¨FÙ¸2¬…—ºÁYÔAƒšz$ÃW±„Öœ5ÃÃCoplâiÆÂ\ ³ˆÞ3Ä2‚l„;…òaá¶<;šSç?B»>‰zü“pr§j–Ðs m»ß1tôZÏcÌ¥Œë{¹sì”/¡‡þJ{™Äcü*Í#»3ûóހf–Ï¡ne£ãæhúœ-»>Bc9SJ ÿå"¬Õ¹O8á'•8ހ `yHÉϤu¼-œ*`”· x[c')OyÁ»ÖÐ\x!ë¯Qïñ­S9q*;ÿ$;Éd'=–NYÝÌ ,|ܶ3Û4§¾”ù±q¦T˜=©ka%â´õ™h±s¤€ä¬ººÖU¯X7Fl«”[õå oµš1apuxf¼9µäQ¶Gk4³;e +˸€7荇ß5ôîxB:¤y¿î¡¬Zd¥Í«,¼`2²—?_Ía[0Å~9iY Fs®3öÿ˜g¹× ¸Ã‹9u¤¾ ò<,yxí87¼þ© ´1‡‘‹¯¨JaÆ¥¢,O€@/g½½ÐOÙ㔛Ñ94 ð|.]»1÷6ýè'Å^Ô¹@1'¬èp:XtŸ±„Á€ðŒwL,j–ùVÜ÷á¬Qv@àwl{ݞ­Ì±ù¤ò\õ?R^ç½UVÐ\¸GIœ+¡­¤¯åž9ÞÏðäÎD…0×æ»ø3oæ¬yÉdç[R<ƒ""ˆ’" +.´¥2…}”´"!<ý4t¢H~(®-rñç2¢æ5DºH@ùÜlÚÀ"K”»““îæ¿£,“¼/S}ÊëÓÎÒÂÊ"+ ïÅ~w ¥™«£—F}V dRz™,¸¨:Èw&?­ÚC~Fq¨ôJ}JÝ¢ð‹˜¢ÊJý’i¤´ÕrjzEÒgUÿ#±Úp]ZFšÖã%‘Õ+Èþ [íPjewÄVjlõÊíW©7ªà«wRüœ/*žð¼C%µ%íj…òG€xÓ @EFH)&0_ýËõáՕÇ|Xuˆ +D¥¸àRNXAÐ\0JSŠ¤£H‡é30ý½7å͛7½3 C•Wc+–ÅU#Ær# aQOL4E³Ñ™?às~¿{ïïÞs¿I§èªÖyô?›y>ßҒLŽÔÖ¸Kd-Þ£J1Êvñ*fH ¢6§àh¸æÞöñz²+~BÜOó:IÝøQqöZ³¡UՍÊP±[àU’åD#ÔBMË Ó>$Î ãz|”ð?Ìë^‘¢Ìó• º!J0ÌèW8µN¼  ¼WÃzX›òfÁÏØщ@'hƒá<ð¼ +%sdŸR۔eï[þ$z,¨åZù2ÁH5ŸÿˆÊ[&Ht LÁÑ ‹UàOà ì·¯Ë<Äu–ºÉŽrEðᾀ{i¼,8+ןwM2ßÀO–œ\ŸÏ7I8Ïùi’l»2Ýewkv"9kÔr6±ªŒU\¬RšÍ*¤q¹oäGCxxy¨‡„;€:j™œY°E)a»Ô²Î°!Xidÿj¸” q(ú ¸8ÎSí“Ð=œ÷Úl(ŽPíø9Iueé&¾åk)«­‰W1Éþ¬Ñ=k˜Z¦b;8˜zBÈCŽ³ùƒû4›«ڕa¾vþÀ?àsuú¯UuPݝæŠ\Vf»>+›5Ð2ÁŽj&…PØ6»šuR»É®Ô! +aÑ+árù‘Òkô!¹o©4 í«É`¡ÌܗëP)fíô%ù¬VñœôQñ‡T™èFÂ(ZÖ]sŠö‹,”ÔTR‡|O)O?‡¨hŸoÑ# ]¿6yÄл£)ôéOçU ,FœéÙ ¯´›ÑE})gŽsá©ÚÙ´GðyÖҘp/kw~˖»¶I'Y¿Ù;TdÀÜg‚YÉUž•Ò'áñƒ‹I8ÿ@Fâ*ð‹ ”8 $¸I¸à+A2((²+yª8O¬æϋW‰»È—EÄ {Õ¢ýbÚWÕ"@œ}@‰C׌Štâe®Y¢¢gv…Öˆœ•üHáÅùoÂfE`áea±±gbN›_¥ÁÇÌ4Ê!/¼e%¥³ÁÐO;m¯ÅÈht§ÄWv6¨º·ú›´[©ÛÌiô¹˜¦åÌÅÁyF˜yÃËÓ4ʔaêt V„]ÑÍ auãƒõ ¬#ùëÌÎ쪭QÏYm3rMè/q{Ž~äÁtjÈüD»¢ ×7†Š•fàiÓƒ¾É· ‹Á„èºÀê ¶. =[ôn`4æŠêÈqSháæBéžrÐx_º5wԐ Ï%ÇènÀQˆ…ó‚ðš~x“'G[ ×`+qb«]Q›2Ô¸²iÃ=UGnŽ~»òç¤ڋJÏ(¬†£à¬ýAݪÈôd«Ç È‰E7ªÍKÊz +MÿÊ]¡ã’ˆš!}ïæ j–nh-CÕ¦_èé­º¦Ùç䃊ûíŠò›a¦Ù­¬DÙfrÎjï6–$-Ó4ôn®UõZ×F)¯Zpï•×ux'º@ü]U•ïÏ/ìÙ³¢Û¿Ø3íUg`iUì¡}…åÚ°ßÛUÖL¶»W©–Îuœ¯òù+ëÕSïØUå‰î[¸Ýû;u•¯ÓÌû¨„žXJP“v§åOâŀ©–{$•KFÛ,qƒQÏÕÞr¨uÏHìÝ.ûúÈ}iÞmõ”×ÛfZšh~a¢æåtŸ€ÛM—訅BÇb0*€ÛiW­ÎÌC䶧µ‚¯jZ®×mÙÆn¬›[nKfi c¬+.º&oV.£ô&Ê­Æ{•ÿ¤5›_°s¬9†dë¸mÿüIëA. Í*sÑ5: ‚1ù ¨Å®Ê m!â¼|f‹—¸l'Û6#NÞ +Z§Ä>øÿó\ßoMŸkÀCZ8à)* µ€bEE@¥§(2ÂÌÎ7{“IÈ" $!¬„0a…=+vU©ZŁ`-x´E½ ŠJUǺ +êðùå~®ë~ï7¹TÕSîs¦‚V6·÷¸ÉÏØØiŒ1=2J眆Jhê@ UÍ•æu¤;·¶7!³0 +ß½Ù\Ó醮õý¢ý¬—«±ƒ%-;Øþ=.ÒÜeÏ/©TÖ7DŒ$v°{·.Ê«“‚–µÂ|ÃZÑ®³mcDÖ²+-C¤Åu_Ïï{¯>ë1H±1]ÿ"—D^n×R¾ ÞÙº“:êëÖÜE3ƒ[²h9¶»¬ÏèÂÅ ‰Ù7–TJOW+3 v«œLimc @ï6'³é[Öcì`Ǧ8v§­ª!“ó÷b‘RÝ{•Ð1Ï_Óµåòu‘¶Íoù³PµE°2Øð\@;4"›mOÕÙ §Óÿüm{·Ä ߺE1Ñd‘ÄA‘¡’}C=W²¼®¾B¶}[3']\PJäG5ØV¯ò‡mnY¡G XyÊahdÃ'J„[U~ v¯óWæۅWoÌ]¼Wn÷G¥n½R°¶²9H7ÑѨÔ¡Au Ú1¢v£ö‚ëÛZmˆ]lU§rñÏTØV¨A +sjÊ6lŠhm,M†Ôy•4Aˆ–À’*0¤æ¯ÂÛv”J–²RÈ?¨ï ˜Ä´>ëîÄ2C!*Ë#±q0êMJ!:ŏÖCö‰ÜÂÀRÇ|ÿdüF¿a?Àµ2Î݂ÅcÙh3¡«dBš‘z¨ŸSIÎt?¸%‚Lý›mïëF[ÁAÚãxÁY‘Gâҏ0mê;GY1űh%[Ÿsጒ@×9é q·_8ùG>r˜ íWó¾nêå¦Ü)jod€E“…z¤Cö.qúJviN&¶IfÅÔð8b›øgŸ + ñŸv|ïs÷‰d¡ò©%:uTÉÓÛfü‘û—è&òL®ˆ0Ñç~–pï¢èÝË.(R½ŸâU +; _)§w%$ò‹Õ/à÷ Ýt#é« +~ö#œu`u[ëwø.–¥qÜsÆ‹ååYìü_•-þ‡Ç*'̳ɩåßk/§––)2* iø9¤¼$é°7fU‘zÏfl¡“×cô9}£]´¬,툏WYCÌIëê÷kSÒ-¡§t¼y7>‘T!¢ž˜ÆÌ Àä×26ŠÔ¶‰ÓKݲáç mÄ&c‡•Ó£h’¸£Œ' Ù..+œupCë6Ì&@j“5Üt«¡™døëÌåêP–0«Ÿô–=ŽÙI™Ë‚Ä–Óú¹ä +úC¨{Þ¶$tR:(Ï­uO¹ÖR4›ÞÜâ$=ðjl¥÷¡Äuq—1?פþç9î”ùSèi|cåõqÎF!¨_z^žSÂêK}¡Ÿ`d¢%DÎT íwVŸ>Å;à¿<É'’V=(è5HÁ%jú»à¸WMÑó±…VÆ#àß9ÛY‘D2ÕÊ֓Òîp~¡žˆžá~J ÚÉ}ÎD»]ážgN¾Süs•jJmƒn-‚>,v¡g&SÔLëlê#–’ãíÆ>ŸÅÝ^Åiææ¸á8®ñÊž®°%Ùñª4'ÉùR‘’JD“Ãh¯RN0hBëA0ó”(rÛ0K+úaõæ‘þ’²MõÀYÙò|"±E¶G¸ƒŒ”E_R^ÉvÁÏÒ4²/ì¢?”ùm[˨•y¬N`ØK/5[™7«1äÁ€[G„Ø’'¼ 'æ铯RªGöËhqꭁÚ]Õø>£úiI‹±Xà +5€'”\ãGBŠ „Ä‡…ÓÉÎdƒ^u•ò¿x +•¢ë[¨^Úá%e¸‰ ¨Öªúp»«xEÀò +À œ6…%!ItãÞ¨@ò•Ò¾#% Ô §¸¾ß:¶é™*‹h$rßà7שðׁ«55‰×ˆÙæՑ'I×+6‘Ý*ЮwÈ°¢Ñ%U”#¼›zDá+JÈtàü šBùa²Uؕ 6âíøñ}ñ¹uOÎrÆç7¥ñdôÿïåP˜À›Â þCu}FEuæa7£RVÍ"KS‘ª‚‚T‘¢Ò20 E†éåNŸ{§÷^˜Älkìëƕ$vWš(¨,¢F7–b ˢÞ¿ÜOÏï¼ïyÿ÷¾÷<"_–³)“ÖÉ.kîh˜àÀ[n ‚9Wñ?gÜçڈ7¢ºyș¾*¾œôöÓ¼‚uA@ ¾OpšáIäRùŒrPý(ó$e[i<ËH›—±¦££¼Ø/€\ßt®/ýâGõinQ­Àaˆ@ûšq–Iïaî¯{èYʒ]Že–°?D˜§98ߙ¬çìéy©­dx,¥8¡?“½¨½Peí1ÚNˆWŒ¦wAíi‚N,» Bçà=Ì%P—K©ÔÄò~þ҈œGò!OʽÑßR=e’"!Í]:™:BûIê\†¢MJ1ðj Gò›K)b 'xL"W?D\GêԝCÃÈ{µæÂAÊA ?u#U Þñ•ªÆÁãèUJê´òÆÃǹ— H{ÁF[Å5h’ÚÒ[N6˜á){((ãÛ%Âø>ƒVªYâR +nñÖ#ܼ°ë(a¡«ºFìqì&mqü3%—\g?ñ%ÙӆñÙM5«Ÿ¸”ø¶X‹D3‘b$ʁW×ö Ÿ‹¡öÆ¿‹5&͔D4Ó®Kƒ°ãc²ØᏊ ˆ. +úë1Zëšo +^`ú~¿`Ç6z ëq¯©Â „ãaX‘Œø½Ç°ø)±ýӼ܄'À¹84 n"Db.ƒâÊð¹yC<K¹³ú d§Í},ð§õ{œ*h® +Ú¸»hè>¼¹ôwMv^ cö¦8ÞIÆ»õ(~óÆj?¾’¥ +eðo²®y†¨l/—‚Dl5¯€úžãŻרãpùy1œùÎܣܵü‡«´Ü^004€{ ñØÃïí.™·%CÔA2¼ù2ë¡dÿWuìõ’šœQö>‰oÂkL<ÒÍßòò‚Å5.Å¿È iñ”f¦¯fh³7S­ñ-ßÉ|¥^–³Š…T¡jX[•wCòY©*¸sG^1­Ve֗ä+À˃€˜…åó·L³²·3“ —â/2y†èà{Œ†¹ì+ò½.Å;Cçt‚äJ ¢}¢þ Ðáô-³¯>Ù«y6q<ƒÁ³Í ý–£W±·åx¬Añ_P¢Z? ‹Q ŸÞy¡ÀËÍØ1ì>yîÊKö”Ð\.ë!¾O—qÈM±î² +0Cî¤l…ËçÓ];¤S¥k)ÃÍ=RZ@Õ[É·ô5…ù‘¾JBe„ǐ$ÆÿNi"ã0 -ÃºìR4HœÅ~€9.☫|DϸahÑ·-Í)²r~"êåeùoMòæÃÈâþôÝKÝ%4 _7ý"ŠÂ‘e +QD~Ÿ0Täæ.¾Œ>"x*õO¼>é…§…ã.Ey+HVy55R”ƒ•Ws•éùÑÐEk*êPxEGBü¦ß;(J³ Xâéµ(8h©iqãmh¹‘^™ Í0`óö€}ú´”_APWµDèÒüLü£Z¬‹]Š<–·4âÁzGÖ¦`Œíoy©üZÃR|½u^ŠŸg™ôCð˜F#ÌnŸr)ÜÌVaåô5ëƪwˆ–Ššó9³­nój®yIÃÁÅtó¶Æ +xI«®1bªIyâ>}•‚›-A–ðÚ¯ÑÁæõOShãšìKF¦xµŸá6xq†qQ +Ž3“°SóU„‘›\kaÆþ椚̩ÌDi©~ ·?{‘>¾J¯3mátߐÈðZƒ„øtªÝÔ»]ªY §‘N¡ju]äɒÍÚï©QYílZZÂsˆNÑ´Ñ·À“´Wé>Sã§Ý¥0ÕBÌÂj»æëËâõ+Ö7ëºÔqì҄fU7û»ð™ªmì ¸·ºœÝ:Õ8ŠÁé¿^Ó;õ#ðeÕ¿Õ+ ‚â*,Ä_ç©ì†ôñCÊY3ì®â´õMåÿßSšªU*™¶ªLùXÆ.jQ†È–g²_I¯ÅWËJ5a"9Rª†'ÈC¥\y׳qH)ÒåVÍUü¢-Z®Ö.Î\+Ñ¤Æ/—aÕÃenš/|F¥[•¯?S âPkr¿"Ô +^”YÊ×>”•˜ÝVŽH9 &yaŠòùI‚ÖxýQÕ<èzU1\–µ¥ +Ù½þl§*7ù}ûô±hu;Twfa^Çåúcn²Îü†YS q;)oZ¹uÞG!öuTÕU¬Orþ§›lk;ÛHF´-Àx/,uþ sÔm¸í>fdêä}é+] +U×.oÊ.ýÕˆù=·Ûq»-y¶]†[õÌv¿iáR»ßçîgëÄÿk*ï`/p©êþ¶LBuéû±+çºÍAº²ßÚ@‰Â[»)‡î·&P®¸ÇYQÃ?æù˜iåm/¤‹K,¶Y*g…u€±(iÐ2¢`æ½Ì؀VË"f¨ûJSsèÓ=çRU@ë÷»7+ÄËÎ>d‰ãْ¦§¼s‘m¦Y¼áš)–wÉ=U?οþÇ3D¾´Äó‹í– qjv¡é™8<ñ…Ñ!zgØ)ºbèýì^ª[$zð™RYjTõÅËÍ)ªÔ¬1ãcå?M…2qÙ=½@éæ? ”Ü£5Ûew?SIfƒq´ØÓD7þÊú kò\ãL24A<D1` (T@@+½“7{½Ùd°I؁ 3*8ŠåœÕ:@-ím©âq´*îÊå8ràýþü><÷uÝÿÿݹã\•‡id‹ÈXmümÍÝJ´ñ¬×ÛJÇÊö’²¬"§ÏUúžjb'm_êz$bï"ì¶uOì÷ðßbûM¬q_'Ñis¤äͼ?M#mp_=~müù=ÃÄ°­§í+È¡ëŠ:¢Lùâ;48lÈþmbå3ï埒-mÛ$õY|H—™nÚú]ÇcÀkk{>3Ç×½} »Ö1Ár†@vÿÁy:{­EÍ©Ô¡.öÞ¸Î,珈®¶~žCH{kâsÆvš_l‹æ¯@š”"ølûORÉ."0ÞƧFl´]]Càְ˧²Å¾±ÞMÍfˆü‹i n´q”Ø˶QÅóð{Ö5ÊìàÇÍ6ef÷ e l¬¹[I‚€u·ÔY_(i«»&;¶Àª×t„ïo¾¢é ئ±ù¬¶5•°k–ûÿßýÞZ§ü‘/”¿ jÀÆîj‘Àpíî~Ch°Å⨿íãÜ䦿ëiRês!Gª-…¹Ÿ«”Ö ŠªØ5ÍõÅá ËÕ +Çàâ¦Åå&wó«òïa7W”ÆAÆ«X…æÏU÷î²Ûr8„Î+}E)ÆoV¦ÓƒIÌ}ÀqZlúÛhˆ<Ëgw® +àˆ¹Aæ°ø?ï=‹ê$ù6-ÁÞ¡|,)!<¥*‘ǘ*z!­•³8í߀ϸu”ùPpÕÆD|èŜeÿ=s˜m4' ²¹Ò¢÷ؽüYaPøOZ(ù„èvj?VGÜgxI=V¦–-ƒ̹¬ u¾MCJÆëÕH_é-Cª]ö‹ÔûB~‘2A\¢8°¯*÷E8PóTª•Î”¯To¡ 9/Õw„¦Äh¾©½“ž¨‰Óýˆü aƒß£šbòy\Ÿ¦'ÅF,Ռ…o%¯ÌwðU/åÕª—äßnëMê*ÁÖT Ƌ{µ5NJ¦ÅÖìÔ¢TÒ9L·¡;y _fXÖD\¤ïóuÀ¿Ö·AÅêõ:x«"¬)¯V%V/*´¥]1•ˆÎ# ŒÎÄ)ԋŠžä@ìX¹"ÌSVåӅ“—™¡4u¢.Éfˆ?ÐÜUÕ¹k%¥àNj´ù¹È;cº~?]Pۺ˄áWßÞҌ=VÕ듍1ý +E© ºÖ»qd{qÕ׉Ï;’ +²N­Âæô‘–¥„ÇYH‹d×fttcâ– Çì»â#&®vŠPótQÖÚjd¡©‹ 1ùo˜ øù­ìR)Ê½@}”Áï<7õ ç³&—ßè8³w¯àyóyÒb¢ÌH¢¦04·èô͂@>ðo` °•‰µœ~î½Mž<¨Àa9‹‹úÎ(ÉènŽ…­°c9̼4òß<o˜–/ˆÂE1”Ì÷â“áìÉ:ïã¬ɕ¥Ô7e¢þ ®.{Šó“Õ‡ˆPi WEî—Y±Ž´xùޝr¨è +¥EJ…7ˆTöÏæ¶Ù|4ëê'¥r41—œ“„ãæžâ¬ nÏsÆÌ#?ÊCśhkòº6¤/Ï»¿¬——7›n Œ áHIT¶ƒ¡‚c6èß±=ðzz!ñ?z·¸_)þºc¼)¯uÚe‰T»®}nSê3ÒØ&iq4r¾‘¬ŒE¥UÂYÑX\ùKÔ¼ì—88IXú`}7yIi¦× +¢ôSëÕiG›¼‹r3æ8Eiօú$f ú·ÚÌl+n º.¶’ð®*d}0QeÊó:FŽ¨œœSµ¯S”퍆Éô°Ö¯äSȺ–8æÔ~‹%;[ژŒl0~{‰à^ÿÞ KbV+æT †sIÓÛx)èoe¯øÏqÃÀra5),k±xUõÝ°‰Q"—ØYNîפƒ¬¡ÙܾWu8GøQ‡d!Hû9í´2”'Ë¬31cÂC\ïà!Q-ž;UüŸ9£ ¦dÚZ¦oá8CÂN’T1+¹hڟl-?63ˆ‹zÆ,å=]ŽàÛAw7!üz6·û*HŠ„H*[|Cü‘¾_@m¥˜ô¬s2Uôr]^9ñnµüÅÂÙû0¡"ž°PuTó’t$‡#:HõÍù@¡Ð±jyúb€¯~°=å™›±ö*‹kuÛÄUçŠæ¦QîŠmÓ9æ]'pu „¤—ÚÛd€ºSۖHgiÛ¬€‹6r-ð×»>`Oi#çTÙ2´¥"-÷!NSn\ z•$™É¥SÔC%“QïèÉ%;‚þ¢O»ö±z‹cçT)!ûM½.wf².PàŠo¨1ŸæU=Bœ¦l1åFá©#F0HD“\u̞rڜ*¹™uÜjQ÷ O5·òu8–E$®7:"âÉІ¥‘ï(Uu£ANägulWàYEãœ*ZÖ"cT\‰õŠk—öáTx»lŒx)™$Ÿ¢<ŒhTÂè',Ê·À —ãêóÌy³={V?$¸N€)ÃDëÉPŽVl Žàìà¿Ò]:é|ædø„̏ãà"»Èíw1*§¸=3*gB'æãòë|–'#ÐsB±FáS^PR“8†?¾ +$ mþ:ð¤è@®•Ïöl¡ÆÚ(蕉9 Ea,·_܎iàǀ/O IýÂ4ÂaÜßS8!ûÙ%UJ’õÍý«à8C¢(”&2¥J:ð;{»ÊMጫ~J¸ÂÃådméâ«rFW øjg°Yý?ªë;®©s8Ҁ€Ò´Š€Z6\Fq€D,²ÃH Y'{“ÍÉ$a@QÜÞkÕ^½÷ºÐ¶ŠÕrõªh¥Ò"jÅ}+ˆmÁjÂôßóy¾ŸsÎû¾Ÿçù½Ó™Mµƒ°D]Å_CJQw’)Áê/ʹÀ5õ®¬×´2µsµ7§v†½¡}§Þå7Ä TëVÊÓøS¯†€6~Gú„”oLF¢ø YHÀ©²ŠKmÖkÂv»õ¿~öUÝô.+ýjpâo8Ɖ$Â5û)Ô\R‹‘¹²´¾(ùàgÝ–H¾m}ìw”5jœN) ++¶¢£‰›„ÛïüŒp·vO[n™ŽHj©ÍŒ%=hº• ’Ï4‡^"‹ýl’q:iƒ“Òç%S,˜ŒPîÀûË=ªÆ‹äG°±›²Tü²åï” ‡B†ULR8LW÷˜äêÒÏ$GÅxLcLSƒÀ},ù?þEÑ;ð8Q¿±Eª$?\.”e£!&¹õ¬KKûç¥øJ¬øÛéG„‹È7°ˆ|_ ÿÒžl8!>Ë8Žè“(Y«BæIúY·`[å}ì®.úB”Áõb ѼT–²ú$¿=U8OÉŧ yˆPá¿-x¯ð$¶]ú¥0Æý_Âù¬ +ájûˆ(³“sO¼¤À‹ûH|/=wKRŸØÁ—ƒÁ•¼ç`ì p±túl>f*ºÓ¡œþuU‰þ<‰=¬T­§s®(·&zpK”½A?sLÊo`N0M¥q+~*m¥î-¥‡~F7‚^ÈôÓ5惬H]ò${žö|›-Ò¶9Y&í=X'¸V£u+^°Ï–Eñ m®ÿ² +¤·Y/ç0ŽX® c˜ÍïøAæùdPcÜü_X˜ª ™VŸRx­6²ŽÔb¯|Cã6‡å‘éÚÆî´^FeC]¼…¡oÀ-¾F?f7Á˜ Q3éVÌ>͝y­Fsõ•£y]ŸÝ¯M©F®½¥íÁ͊¾£kã^NÕ¶¾¿I¥’¹öë#F›Z‡.À7¨¿Æ†–Qêfã®eÏ«CJ×n®;AjˆB JFÀ€æw +îýmԗîê6êÕt¢”Žã(úI5¥beE‘•¨l ²×X•ôè¨Q•…´¨ÍŒôõ™û i,)…6QS ƒ1zJŠezVBfžì Û¹ú¬œÊ¹•/¿Ëí HQ8¸9ê…SnE%Šoòþ‡-“4ðNJ±`¤`,£Ü)ü~u¸tŽÈyQŠ“Nˆº]çvØ­p‡´¯š+e„"“x©ìææNñ6yä*µøœ©”,“7Á$'äx×\˜Îç”Cü‹ÐQL¿ º[8.d@}›çïCõɏE)1⍑àD?@晹—ÀÛbîÄ$ó?7£ + ‚Y¦ÞMÐä• N­|ÙØÏÒ _ÏTd'wa£}†Ó0Zð„÷“ãî¦ùü<ûÑä9|•Ý3Áµ¯†Ã閗3~o=§ØY>Ûú¬l0Wb=P1‰ÜjmE ‚¬XòR[lÍo¾uv:.öC=æú;.Îa.©œBřá˜S[þnºWƒJ3ÇŸNì1='\XrÉü–8á»Û²Ÿè:KìX÷»j¶6â‰e †g΀aép£´%z"¨±K†1ê¤ï.c1õɇzÉ­°G´TàRi’VB“eßÔòþë-)K@iͬ­!÷uì@_ƒ`»&2ˆq«ê u¿p%P——õ +áéS­Ð§|NüWP´ !€ì¢o-t_àš Šƒn…y­úV|¾Ø¤ö“賐êe`HʏêE =>\½‰Tǀ¯|ÑêcҎ™kˆIS¼T!‹”…ª¦Ì%Gu,%[IRý'®ëý““Áß+#Tç}mÊëê•3ú \ªï/Êßê¯df)‚õ`Š·ü•n2Ž#ÿ·î\°MŽÖû–(ªµCQëd¹6f‘—lÀ—qGö®žµvŸì²µ).Z&²æ¤w¬I¾ùò¿¶ÌTe{Ú‹¹õ­¯JQéæÖÂòܕQ­ž•¿E\m•`¼p–`öÏÒ´ìÁÚ\éz[•v7OV¤o9ݜQõÓú¾¦}ÕØ$SSFMWÐdÂÜny„ï˜u£Ñà:¼ ·*éoœ[“ž3Ø ÅëýO ¬·FRJøˆã0ÙÐÕ¸›l÷ô¶õ€+­L+û&ò†oÛEÊ+dŒ- +­@Ô?¦ý^f›E¿ko¦oó\fyÉÜíJ×Óó«8Åz‘‰ÊΰÒXmi Ëö¿– -NwØ}‹…‹„OYÏpz&˜@>ÚÕg¼ÝªHcþ‡ .«Ã «×]7MŠü£¦z‘#Œf¢ŠàÃæe"“g¦æÎ\ÃÂaã°ì@Ö\ãqyºJc™\„¨3ܔ·‡Á Íò½ðý†r«'W§QVüEá Dè|¦ÉP½L½­‡sõ\h_h—í…#ôÐ9ÏZ-ÍTúdóÊL´>˼!õ„îWS/bžn­iAè3­ÖÑ.1Fx@Ç §3UNåN^nýPOZñ¦dÚ t<¦jGLyÁâs=‚Š³>»vW¾O&-8ךs§»hvöö‡eSȉ•`wPU_´cÛaÌéřÝ=Õ·}öm`«<<ìƒ$•+­»UV×6Ì6dòÖìÁ¤oº88{ÔÝ絁çºzkG}Ú»®Š<<ê7Ó\õÒÓjvg!5M×Á!®wž&—GmpfS¬ÙÎg€·O3x?Ì÷Ø +wZs«LRûqê/ë~lŸK]QÓVÉع¿õ:ÓoÑïmùÌ<Që'ÌÃÆ R]çAMXyÀu¢¨ º^¨ƒÈ©¢€œá ä$÷}ß!ä 9LHÈÁaH8«µh¥¥Ê¡rTtD-Å*ÐífY]]wu¤®Š¢²®u[bgÚÿßg޼ߛ÷û¾Ÿ"î÷ÕȹÚÔ I7ù•ŒØH”R·7ŒH§B—Hðu»£d¿të ÷*µá²²=e¢ JŽ¯t­jŽ|먾 á¹#T­¾•ÎIõ/¨¥W?þ{úΝ¥¯O»^ëŸÆ'º`ú·‘£õv½'$»^®óEÖ=7¨IÉÜßÖTF×2˵”­õ7-¯â^Ô'Zú"[x ;ìü“Åæ[U‹7ã–,©”þQyWrrÛ9†õE†—6cày'I§ ÀgIR“mŠ 2›¹¯Z½Q¸¾ý´ +ç{0K”,è^ÊH©/>€>G’@l`á—Tîë=FZ‹àÓðnZ¢H ¨Ñ³$mžÂ¯鵩K¬AÝ3D;w³¨Å×7⾎ԫŏw·‘^J<á«È`i$ M_¤xÐò8w¿ˆU-,ì/h!Ó»pbPê÷ 1²ª|*¾k _U¾;ìÁ£Nè“45‡ü²’”jûõÍX£šç_€:Õ]¸‘$ %¯Í«X³+éè óÃMiwzô‘z{7í”Ñ`fOEêÃù5Fo´hÆX„}»fLÏ}ƒ¼k%ºJŽq¡_b£Œ_†ôAÆ5ú¥4WK­àÌÕ»ª'h?É:lÓØTHƒmm. ÞmÕ&Æ"öX7…rÑãV7à²Þ×ïžßl̨b§]r+• ÙOë¯pKó[œ{0ƒEÃuwrf ÓµçFaëjCCP§k®ÆtïM»Ý»’Vwô[FRçû(¥YÙ-Vî²¼åÍE8£‘™Ó Á»ÿ™à€PÜð?¿)™p>ÜÐ͛ö5˜ #ÿTÈtäF%‘ú“ÌÑ3ª qhkü”Æ ¡;ã`¼LVOp¿œƒZìۓ. ºÛj¾&ü\CÊ¡ <¿*Ùgü!½°r)JÌü‹¼;ȁ³–&x§K0äNÁ\“úB¼&æ­£Ô³¶‡ùï$¥bԍ7fùp¹è¤t(Å0ú±HÉ2Š€—ª3¤Ó²G1d?źµûè +ùbßVֆ|­°®ÿ­\[æ†w+™tj§j?b7–¤öÏhÄ«§wJñCmÐmê#Íb.^V÷äBõ–ÂDR¹bÑ8¥¡E]4œJ… 7LGÏc.Xd£°à¼/ÅaÏ&ڎè ù@›é¡¢«˜zQuֈ4TÒq¨i˽èèb˕ 4ù3˽Ê~,ãyýmoθ³[ü 0þ ˜ +€l«} ûÞTóCÚuäLõBt 2¿úZÐò¬ã°WÙ>¤´EhÃ@+[‚Řüê¦yŠµÈÝ0= +ósç¦U"r]á;îû]÷(üºÌ{…Ó‚®¬eù ÃE=œm˜òa^2þ'FKv¥~.ôОmŸµ0O­j(›eñs¶ßº´€ ÕPk*!“þ3ùIËBЦŠñs4å{^§|{6ÏÆk\* à}XÌYž¥Ç å©ú‰DÆ=A %ŒÍ$’hǹW‹øŒÇ‚ORV°Ž‰ü· ²ÜâÖUB›øꯪ¢¦rÏç+C°a6¯‰ ¯ ‘ãK‡ÀÔ£eàä :ZÚ¿u6&»à?ÀWË&ïk‹).”Ù]%¯ä]Ü,l”b7MX]Þ[H"}ªìØWL)RI·rÉfõr?Aâ­ÆYÈ&íI¹~_ÂIBåë$Ø{XŒîlÿZ·°·—X¯E¾&|¯wø#ùºßþ؆û`ˆ¥_vºß¢fã–õØu¨·æ3ù—°füÞõømæ¨È8—9Ç?ÿ˜9ð£ +̟¯ë”NûՎ²º`çjz1*äÛêöüíè.Ç@’ë爎܋¹ì`øoåÙ’¼J_™·±™+-—4α6@’Ð/DWEÞjE}HRæDl¹‡†;Y+ï öÛÏz•®‰/‡–…þˆÿ1†Dçѓ(z)oι&ù;éÝ.§4š¸aZú#Ùg—êsÍbÎZ+úX½Wi;ç<~†næ"¯(Á ô´µ ¢MŒ'‰“b6›·!G ãúùlP<á^\ÌÙnM8-—-aœ G+dyXPä^Ž‡s:û¯•÷0q \p3bˆ¾ññW¬u.æ,Rå&År§„m„òž#<„HeÊĸìvQél‚˜Ã.ˍÀ±ïJ>«Ò›Þs)·àlej…(‘^ Ÿ¥,—=…/¥¡€¬FVù’ø6fjùðÆ;eð‘­²x•â%ºD³‰Ÿãk¾%!FW@aäæŠo2QT‡vs¼ §5‡Ãhí0ðŽB¦{âUò÷H—iGCO˜®ïãzL' pb¢Ižq”¼Í‹+'_1…¯¤Lvà +‰‰ÿQ¥ÁAÕÉÜÓ%ǃÄ$Ìû[H~‡}{†1Øf½KÔÙ²Â:HmWS +µ¥Ã«d}Ð2w7ñÔõá j¾¾‡­<ø ½O¯›Œ­Æ7ÖiÂ2‰GêÖ;SW•Ý’Ê!Ø@YâsœZ~ß*âî¦ÞPƐ6îx¤QþÜ¡Ž§/9iø7cñGªöHV‹fÑ3ÌáR>K•ÌüŸí2jêZãxH"Z‚"²)ûvH€Dö} ‚@ز} YÈJ64ˆT(P_Ý(*¨C]žŽ¢mi­öéSžJq·OZÑg­Aåé(nœy8}wν3÷Îÿ7÷œï;ó?߇‹*x"Dü’Ö6²Hae¢Z +Ä5Kü e +tE=H÷º·—±ÿš\ƒ·W¢8 Žù7¹¡2ƒy÷èm¡ü]L´ËŠyô‹ÚÄ ªß1N<å8͍¸@û±û±“ù:ï> Å>›Ë6p·„ü›ãÈÓ¹à¹<ÞAМš*ìµ®‹5M +àåN5Ðøƒåg¨Á³Ü¿ÑÝ]7ïcðDþ!\Æ÷¢ÖO¢Û6Nê(©·•bž¯‡H´õ‰éÖ²r¯t1gž‚“u¡ÿNÝ'w„ߢËeÎGrºÍuŒbÞJ1îÖaÔ#øgøiõ|™ÑGcŸƒ"½ÐÀÐ á'xù¾&ÚYH;£¡Ùª4›T1}‹Ï®;cÚV*¯‡™Ü²w¦f”™´Æ|œH2;ÛR±Æl›Õ{í‡ÝKÿ²*²óGÜùZPgìÖ׸z *Û¿ù©?ʗÖÁ +¦×“:ÌN£”Íæ9u¼ö”•¢L7Ûo©­¹Û|jëBñjEV—QRªî!Ū¢Ú;~;ÔZüZûËÚÝxÙ²ž +ì(Åñ†œ¦qìƒê’ïªÁE蠟ëV¥‡Éñ7å:b¹Ÿg3ìh\yˆœ²¬gå.:OšîÇé«ðÜ0ˆ7ºÒ¢›¦bÞ4=¢Nø¶Hdto{¥<ƒî¾¬çWZgHåNR•üRZ\á¨às†W*Zxˆù Æ»QÍ®ñ™l<ÆI³‘Ts|—õâX)‚…c?®€p \BÁ —ÉK‰àuðç¢eüÁ|0|/aì½hBÈ|樕ª—ÐsEG±¶ÌMâÁüs¬Mâdû‚Ä?ê*G,õ°ïHÞÁæ…ýRÀg®[)|å3…¬CëQÌå{0b•‰Iט%9*–ùXÙáÝÌôR‚MñÇU)+ë^Ü ¹P,¤põy*šŸ~uR½Hw,r„~L×îõ;í_º“°vN§øˆ"¹í¿—“‡Û¿Ê]¤ðÌ//S{̑‘êͶË^¨Áæ0X 7Õ4¼’ªžÓ㊈Å#úޒ{Y´<mg¨$…Œµ5`·ÊVs-*l¬Û»¬gÆùr¯’iŠË•[ šÉÊöL¹–X#DEhgq!N-_׸Îêc YP‹a ˆ!wÖú¯Ê|Emí±"¬ÒŸž¡PþDŽOUHSðr5¸a»+[ý– m×þ• +äWh¥*Â¥{I/1YwûôJyõ׸jùkú@p[³†ñÈåzó3*RÝeñŸñµRXwq3¯0´©Œu%­BÍAŒ%\NÐC)šWí’'5ð꡵ +&ð™F+U,ŒŒd5ò…gR "JãrØVDB‹SDO]V‰[EסdyVӃ•1,+åIevù"þŒì`Ê‚WrwÄKa¯œ¸Gø…|—óÞÆ`¹Ú%+TˆVR¥C¸Fœ÷œ{Ys*¥š÷Zó5â߬±Rùe³s¦ Q3 +ÅÉöjáQA¬4Ӌ<>ÇÆô$ù.7Ã$C$p¯ç¹ãçõ¼Aã)h©ì„îéJªè¹ewáTÑÂ*Fmž´èK™g-‹ØlïŠm„Ê*{íö{•¯–ºÑv\ܲžsØJa>3_*ݑ¹Ùüہ>ÑîVµ5ü|»¦æœWG_Ç>ÁâR÷óR_YL¢!ì´R…Fã›jz†§ Sû5fځO›2Í’<ï¶Þ `¿¶}I\:ÁõXêi Zk³R–—H*‰Ñ4„‡Ùè[(ßxúÔX›á$u|I9̺TkV—ÿ…z––œ×l£_‰×¼g¢C½µ%¬*íw¬XR ‘õnY)N.õ9+•wZñ[”ºE9ÊľW¡øŒ¡J%ðw«p`Nj“ ˜[ÅÊæ.Èb|JOsd“W,®ùRÓ~ø#Å* Ľ±yFâdwC‰’pÌûˆ*‘L(8ÉOeÅò¬lL±Ç˞)A›ÞÈ Š·vÜf¾ˆ¶F¶’ʹ.¾£Kn•dë~Aò¥¾º]ðDi‚ã(iÔÕÙ]YʯíJ½õ™Þߟ“?‚>Úwó[ä¾¾Å7ü†ûKK“6Èw"ËÊ!eýç°DÈp”ô5‚µV* Ý3VEa{:KoEDôôcɾ˜ÞôJš#¯oOU4ä“—š4¨å¨ä›l¬TjF·k…,>±{SÕ?ý»SkÁ>‰ÝSu»×ïÞñ=Î|­ëj}à€‹Š­T +¿SU÷.nkç.ü«°“„ƒÞômâc‡Å®)RxØbÛTÈ<ÀTÕV*y Ã™<+î`R‚C³;SÅ^ýŸúÓ0û-ëitp¿ù<ȗº2I—Z_0ñÈ¡¶VVKHWÛol¶—­9“=ëfdÿ j…ðb€¹%}D¹C¡ˆyã{Ásø‚I*”{ZLߏ¯›1šÀ½†óâr`n}+©D¥îŒÔ×_•*áUzÄ3Êð¹ôÀº}†i7˜§7‡ÿ9_‰kµÃjxÌLË+u ¦;¤FxLë.«mÖm×áÔQ`sK›zñÏ´¸ø¿›K#—> ¥&ÁôñõޗxiB½VÝ^Í\sË3Ú_X»è€X_ïرá¤ÓC˜+Ò­j£|SŸû kžÏ½ƒ|j|[ýŽúßX +ΆÓBL¡ûÃ.„?Ž\ÃD˜‘C±ãq÷ãߢ7nŽO(Mä&™“¿JO½Ÿ¶á˜š•™ËiÊݖw0ÿ¿ë÷ÃIÝJ÷LM,NCOYPoQ†RœS²TÉUßVöX Y#Z:[Q\f]x^Š_›`­a¾bÏcàdñfgh#i3jBkRl^mgnqozpƒqŒr”sœt£uªv±w·x½yÃzÈ{Í|Î}Í~ÌˀɁǂф¿…»†·‡³ˆ®‰©Š¤‹žŒ˜‘Ž†{p‘d’X“L”@•3–&—˜ ˜ÿ™òšä›ÖœÈ»ž­ŸŸ Ž¡|¢j£W¤E¥3¦ §§ü¨ê©×ªÅ«³¬¡­®}¯k°Y±G²6³$´µµí¶Ú·È¸µ¹£º»~¼k½Y¾G¿5À"ÁÁþÂìÃÚÄÇŵƣǑÈ~ÉlÊYËDÌ.ÍÎÎëÏÕоѧҐÓyÔaÕIÖ1×ØØæÙÍڲۘÜ}ÝbÞGß,ààôáØâ»ãžä{åWæ3ççèèÁéšêqëHììðíÃî–ïvðUñ3òòêóÃôœõsöI÷÷óøÆù•úaû)ûëü§ý\þ þ´ÿZÿÿè§,„¿ç +    üóæØÌÖÞááßÛÖ Ñ!Ë"Ä#¾$¸%³&®'ª(¦)¢* +ž,-š.•/‘01‰2†3ƒ45678€9‚:;~<|=|>|?}@A‚B…C‰DE’F˜GšH›IJŸK£L¦MªN¯O´PºQÀRÇSÎTÕU×VÙWÛXÞYàZã[ç\ê]í^ñ_õ`øaücdeeÿfügúhøiõjókðlîmënèoåpáqÞrÚsÖtÍuÃv¹w¯x¥y›z{…|z}o~dX€MA‚5ƒ)„……þ†í‡ÛˆÊ‰¸Š¦‹•ŒƒqŽ`N=‘,’“ +“ú”é•Ù–É—º˜§™“š€›mœZHž6Ÿ% ¡¡õ¢æ£Ø¤Ê¥½¦±§¦¨›©‘ª‡«¬w­o®g¯`°Z±T²O³L´IµF¶E·D¸E¹FºH»J¼N½R¾W¿]ÀcÁjÂrÃ{ĄŊƐǖȝɥʭ˶̿ÍÈÎÒÏÜÐæÑñÒûÔÕÖ×*Ø7ÙDÚQÛ^ÜkÝyކߔàœá¢â¨ã­ä²å¶æºç½èÀéÃêÔëåìõîïð ñ,ò8óCôNõYöc÷jønùoúlûdüVýDþ/ÿÿÿØhÆ 2 +R e r xzzzyuph^RE7)4=@?:4 ,!#"#$$ù%î&ã'Ø(Ì)Á*¶+«,Ÿ-“.‡/|0p1d2Y3M4A566+7!89 ::ö;í<ã=Û>Ó?Ë@ÄA½B·C²D¬E¦F¡GœH—I”JKŽL‹MŠN‰OˆPˆQ‰RˆSˆTˆUˆV‰WŠX‹YZ[‘\“]–^˜_›`aŸb c¡d£e¤f¦g§h¨i©jªkªl«m«n«o«p©q¨r¥s£t uv™w•x‘yŒz‡{‚||}v~oi€aZ‚QƒH„>…5†+‡!ˆ‰ ŠŠ÷‹íŒâØŽÍÃ¹‘¯’¥“œ”’•‰–€—x˜p™jšc›^œYUžRŸP O¡O¢P£R¤U¥Y¦_§f¨n©xª‚«Ž¬œ­«®»¯Ì°ß±ó³ ´ µ8¶Q·l¸‡¹¤ºÂ»á½¾!¿CÀeÁ‡ÂªÃÎÄñÆÇ9È^ɂʦËÊÌíÎÏ2ÐTÑtҔӲÔÏÕë×ØÙ6ÚLÛaÜt݇ޘߧà³á¾âÇãÍäÑåÒæÐçÌèÄéºê¬ë›ì‡íoîXï\ð[ñVòLó=ô*õõööÖ÷³øùbú/úôû±üfýý³þMþáÿqÿÿٍ T– ¡ +¤ Ÿ “ ‚p_L7! ðÖ»Ÿƒ}tfUA, ê!Ó"½#¦$%z&d'N(9)%**ý+ê,×-Ä.±/ž0Œ1y2g3U4D526"788ñ9â:Ó;Ä<µ=¦>˜?Š@}AoBbCUDIE~% ô€ÛÂ‚¨ƒ„r…W†;‡ ˆˆê‰ÏŠ³‹˜Œ}bŽG-ø‘Þ’Ä“ª”‘•x–`—G˜/™ššê›Ôœ¿ªž–Ÿƒ q¡_¢O£?¤0¥"¦§§ý¨ó©êªâ«Û¬Õ­Ð®Ë¯Ç°Ä±Â²Á³Á´ÂµÅ¶È·Í¸Ó¹Ûºã»í¼ø¾¿À Á0Â@ÃRÄfÅzƏǦȾÉÖÊñÌ Í*ÎGÏcЀџҿÓàÕÖ'×LØsٛÚÄÛïÝÞFßsà¡áÏãäMå™æçè6é†êØì+í€î×ð1ñòïôMõª÷øZù«úöü:ý{þ»ÿÿÿ€€æOÎX͙¨~Í´Ú™~yœ£~eƒLÆ~…j…þ~ÀQ¿€c=9€üÅ~|‹4äµ~c‰lÌ@~]‡Ì³š~n†fšØ~˜…C‚~لOiZ/ƒgP®¯‚¡8€væú¼}6–qâû}0“’ÊË}>Ï²:}iŽ^™“}¬Œ,€ï~Š ׉_L‰p‹´²‡K­-~~,*éü„~ŠÄ&E()D9ÒvüªyoŽw¿yóæÍ=ÓTS3ÝwI÷!¦D)ŠJ²ª%»­„ßOBvÿ‹ïwýN6ìÏ4àø;ç>ý¿FVWíñÑm¬Ž +Sý^ÖD±iéÀ*÷¬bPk‡ÙÙà†ÔÀpØ©È?³%"È1ˆ#!ϼK`ùµŽL±<ín-eª2*þÀÊ+Ý) X䥂C@µv2l Q?ñþ‹í(=ì0Éqåç½ Mzï«ÇƒIãz·¶¹¤7MEïY;ª¦ä Yµ¥@K (×-ì¸\ó»÷Uðù¸Ÿýžºõ&>©røäðŸIª^»¶ï“2ôò¢ÕIãMe;Ya•àÛ"·ÐVà®Né½,SÙ;¸²oª_%sœáD;»õfÞƎ. ±çìãR?l ;0Dq¶>´™á8z‹DÎKG)ò3oÁ”+Á&ï<4ý§@n͗0ÏEÐÉO¨9ò4©‘#ÖçҐµ°ð nƒW9 Âb¨å¾_Þ‡7}B¯2±yːvú„è/ąJH삻Ȧ³Õp$±È«ވy;ØÆÈÕÉǘ¯fþþo虔¸F¨LsŠà²I¦Ž‘,Kh€W2î!¡A˜×jHE^°Ï„ØâÁ¨ _ÛwÑd¯lX÷gÔgÁΩr!jU)þ[%ÊB¾†\D¿ÄCf‚pû <_€Ì\?ØkŽ,.©¯ë†wäŸÈ²ƒ²²¬irJ·Œïä½R›žñâݐ=>0Á+cvØÕñZˆ{HlÓlÏLÔø×VAåc™Û …ù‚ ^{6oÌCҏŸÎãSõˆäمðbȏã‘ï:sz à 7ÇjôP@ÝQ¯ùÚÕË;[Øw‰g“|z3Ï0Uq`!ÏP¶Óîž-~|ÜôàX·3ô°+°z2lIђ¼¨:ê_<ãòÌØaîXþ’S5\}úçýEÜ^…ÿöîGêÑè +ÉXÞùJ4†^¿Æ¬w¤ï¤/€ûI!5 +Šbnñ#ÙF§Œ‰Oìüý®æÈìŽ`.ܙ‘-âJ\Õ!gZ0¿ +)ýÝ¥q A߀«½O’°kðVÂô¬Ã^B™Ûf8KĈza>p-Fð„þOÚJ*€ŠÆÉYr(º—¨".À°Ož˜'š±ýºqÚ䦨ÚéfÕårC¡üRJ'–dc~¤‹híÕ!€Î?‰`ƒÔÆ}WÑzBd;…hѲG¯„ϲåm½T •ÖSAi©j9š<î „ +ߨ×ø%É@`æÅ8xL¢®T­qė=¬,Mk $hJÔü®ìöd˜ôÓþ€x_§r¢Ì°gʱÀ­ht­G,ÒK±ÝytomVK0õ¥¢¼XÇ?R<¬J%žämqþ–=Џ ¥]ٛ¿“aÛò`sÊ Ç7ÕàÕg&Gr§ŀç?>ÝÄr&Åz`øb>&ø“ôz¶Ë%¿•sxÛbwì®&å{ô~¤Ú…ÜÈ]"WÁR©%¼c"z•D “¡ÐãzA ´Ýýßr¶™Æs!֝=jcf]­‡rm“ýA¦¡NJl$Îäے™#ؑ é>ÜëøwTfáGF£F69¸9<×µ.ù'S³Z*¯Ëº#½-ýJl.ÑàZÆZxä‚%m*Ø|ìÿùÁí ño± Ç2Ðӝ_TÚÿWÊK4™eRsu33'jRF–B¾ÌþüWl|ôÿ +ÝíF§øgml0L×1¥, ©œ—¯Ïy¤+•HuÑÌ2‘‹f;Ë[¸T½0BEÍÊ{Ž:‘¯Åqn¶ø´àõtoÑT†]o®´”•–úkI, + „îLgV_R:­Kϋ0¢dêP?= ËÆv¿ÀE̷փ(M4èm”‹šÖ\—ùT·k׉o–ƒ´”‰,ôHœ§=³Ãù”‡¦Þïé¤Zµ»w/³®E½Iñ-LQ¦ÿµ¢[ú©ùÇ ¾8¦F/˜g֖'$‚?‡[òçu~fÄgõÔîhÜXÒjšñݚ-³ VIñmíK˜ÂՀ,%išbÁŒQŽþç*e9à7‡·ˆƒÀ—®ÏèWK«‹üÜM™YiHtÑXÆT÷¤ÅBUD”ÚúwÜ-Å4ïþ9#i¯Ô—/ñr]£hGވÕ/¤ + +lD2 h§Â‘Œ%TTòT*FÞÃédw">ö­âGüðY?é"ì°Ï[f r5ˆÌʊ4€Û`ÝùTAoº‡4H5”rWôS¨8ÂÖXy˜ ;$YrŒÿÜ'‚q ævUPñåV&Š×çèÌ4mù/5LJ¸òEÊ:•ªSË7Æì’HvŸy..ø› økâP¬X¬¸Al…¢â`Èå¥ +Ȩ,eª‘: EÁ$@B’KrÉå².!{A$AÂ,ÈCåY[EA;|Š TJkU>°ý¸4í1aÕƜdžcT.Ð×ÿéîUs Rã&ùBc±h»R¢)¿‰’¥Ä +† Pd;‘ÆÝʟH«b¯‡ŸÄl?1;_Ñ:i»^«½mùMh9Ӝ+,—xê+(‘‡j3ö=P6uü>§¯a}Ú&¨‰¿bß (ƒúÒ0ô€®=ªá.À<ø’2&îmÎ%ë…u9¶’_ª~z¼Œƒ•­L½å!îS`(ð6͟>Õ©Váú”l¼ûW䨸¤m5y‡pgó!ì2¾·<îÉ PêR%wCý>èÅuþb€v…Õï«bšFñ.0¬¯ÃUKÒ$áK¾;¤Ø‚ÿPà,ž!ôrAÔ5­Ñ%\×ÚvüÈò"Ú +[2Ég”wãõdx©ŽJú±æ“:”_Ú'ßEښ_+^CژÌÜ íŽÞÂI! vüÎ,­¶V7—2UJ§¦÷Œ÷ìL­‚N¨ITUÒK×ɎIy/R+“=+(Ö¨§°Œ²vÇð6™×â°Èø·!Mܨ²ñ ¼‹@P¶B‘%…R-›—-â3’ì|4Ý-ÊÆþ”ï˜)#Í¯Í Òwòƒ¨á.ËܘŒ<Ç;”ü b»ä#‡’;*œ…>$eó†˜G£Èì +º>à3ÆêïÍñæ"íو~A•ÉZ¡±Ë$xOU¼¬x›ä äf𜓜x;Ù¥QùÐ h XÅ(îZ”¦·–ã²x=É`dšàÆ 8…b‘†i¿•dç, ϐÉÄ!îenZ +b°èî /šÞ²ÔÔІ‘þ ßÜ2ÁôPß0~‡ “+µ›1ÙbâaŽŠkÜþtTÉö ð ? g›)¦Ô˧¤9ºÇ С¾`.ޓ§`>'4ºä\DRdí‰åÜPaxԗИ°‰®¥?i|Ü9,¾t §¥Ä´˜q]•Œ"¼ë·m-¾9«O™D Ä'ˆ«¡ExÕ>÷#BãÄÍÓÎàz6¿ºõÉNkî%­¬tmҍß6BDzV®âQ÷GÃq,2ˆO:â× yÔ{i¾îHcy[]èvòaËZÚ÷TÃ5 ºÈ¨±R 3§ä4Š5Nß@qü‚G!ýfYXr‘º³ý{î3^¼ëëM7HX1­Ÿey«ŸƒÁ™õ²ëôÖ8´¨‚¶7ҙ;NðßÂü•ÂP9†Åtn§/Dê=ÌÅüñŠ}*÷ðIƒ:œý2s›Ì‹%‹óþÜñG{êŸÄ¢7©ÿaìbÍ“œæTÓB•m…6ÛºÒ4JZmüIçÀ׶ªFÑהzé\F…D*ríE²yΓðք¿ Ì£ÝV¦µ-ï8ˉi±Ú#ˆ7•æXmŽîZ®LW:2 +$Iâ·±d­`UÄ+¸ƒíæßzÓ3„Ó 8"}×åY\úE^û\Qñ¼íܵ‚³¦)<&uZ«!FM)V×…"çڟ}ÎÃçˆ&à/éíÎå ﶻ ‹­¶5ÄÏ Öÿ¬›O546ƒPWä눤0ð ÒfŸGlEýbd¼c ­´'œÆªžrûŠÓ¬[©ò{K(ÔÔ"M/y%•“Á0=²Ÿœâ»zFŽBx}霚{w6{Y5¹í0Ëóº%,ËÇ4ù0œR}ԓ´vTôp>¬K@¥fùR¡$Ê7HìU( ¸ÞÅàªÃ/1¹¯0’f<,È÷1äB§S>¨ý˜Ù¨RI3#&ì&ÿÿ´pßaÖ5j¬àé•Å1€Ð9#yTõ®õ±H†9cùIÀÏû[ßÎÕ§Œ©jÙ¨’U̟Ã~á¡?óýÄÊÖ À+Ý7ÀÞNŒzMÕ`k†|-ækËqJÞ}(Ҙ2¨œçþÊSØÁaÓ¼Gài¿ æ;ຠíÊbË:`uǤayU“}T“€ 2÷ÉûòFtmâ̔%OpuDìÁ‰›ãU0m~L-_°¨·±µ:ÛqÞÒW¥²gÜ0~æhuwÞ-] NVº‰rPå =<×]x;Y×ýÎ1Ëiw@á­í8,áÝÐnœù™«\(zºÆq²¸ö‹ø˜„b“ !$zB³§&5d©øníÈ6ç1Q&ß &ô «ÊC¯Àu÷Ўy#«À†­c%$7ý]w'z\½‘×0Lük{8 ú;ªËfºG‘Sè —Fx¬P‹~ž®Kƒ’÷†Êm %t3ÒM÷ö€êcúúcM(¡ª¹bCÙB·§$ _Ú œÈJ±,âÿË@ø՜ †¬%Ó¸Zš;ó‘˜.6„’B˜š)éPé˜é Tï~¿û~÷Ùù:_÷«tH·NI¥TØS„‘c„ÖΤ5Ùýþ_Ø3¡ðšÂb¿Oö6É-[o­ Ã7ÿ$ý–Œc†nú•ú“:¸zN‚q–³n¨E2~Œ7\NíöTº¨ö'ë ²"[–fTT°Ë^2Fþ›©í©²&µ¿+¥Ì—ô®ác5r~ԕ¿Í(ôìÑ÷jæ÷é¼ûl 4´8mWDC]X¸#Œä×<˜¶ñÇn”_ ÖT™¸ 45 øC0 V€‹~ mñ€&AGçAø¾­ã7w¦¬Žø@Ïw‚«ØóŠ;˜½ÖQ8‚à îQ³  òä´?d‚ä9¯€÷#1ó·yÊ•q¼_eS]y|ždÌ*Ø&6Q¿ô3 0J(¡WG>ÂHêãËN§ vøµ×Ag÷¯+Ü[éo:y1ډ²GümªUVá'p´J{"„¥âíÞM@3íåX­Çÿ|Ëñ*ñ¿oƙÑޞÌ%sfJ¹<·Ìߔ§ù[ÓþÎß-0R'G äiÞ++q¢ãNPFæ¼\ÅÖÔ&ÞíàXT~yýkÎPÉxÉ>®¢àŽÂ–—ýŒ·ƒ›þç ~u2LX'»äP î MŸO±W· ÇrØ© Z?qöU·ïäü·\+wå>-”q}y/sRÂQQúú÷„ÞJ‡Ó@737ÇÊîK­a[tÌ·š°»›„Eû8X­¥,œ›T¾ÈÑñpý•°¾!ëã‰PÁïêVûK$³`ù¹üΚì×µœbÇu~*LàìlB¤z-ì÷<ËR&,Žœ+?þAP«]²oœÅèãLâKžÙ 'y¼¦¯ð ¼Yý?± +~”t-"XÏnÃv&Ãô­°ç„?úøÍÀVAìG³˜+¿‚™¢Ï7¢WÑûÑh¤KüµDâYùèZÄ%4YF¶g£[öÐ äÄC_ÔMæ6ЅLJ®¥!˜¨)¯9ÍÕ!6ÔÛ-²‡l?¯@œ±W …Ÿ³?‹t`k¦;Ýé½ýæpŸö}ý +P»ç†À>Šf†{Ë’i8DbÒÃ̯Mp/Ų›FñÊ_<`w½[ßUèq®°. ÊÏËY!é'i7ÓL'‰ ƒRüz$û‡§v]²cÁ-äÞ©%HYÙ~“ٕ­ªç Ï鞀ws{)WðaÖñ˹Ðúԑ`è¬ÊùØ{¨[zÀÎ ö¥ä“Ï¡•ö½Á¢Z¨& ­èËz +-ù† ƒòU‰Ï@uÖBP.8›jz …Bä£{G tϤ1˜Þ•q# Üßò¸^×oÍ2†ªN*`®D—èZçm錞cß@QYîÕ@ÕÌðÄOàÉÁùžy`þ†Å•^ £Í)ÓH¬?€?˜Ês %Àý¢ðÀJð@öf»à-ëÞHˆ%ª{#}řìPKn@Åu±5w:=ŒYæX9ýŒôÒ(5#p ü9#ôô½AÄv(~”-Ñ"]íQb'ä ¡y¦Ñ÷a +­¦Æàè‹ÏÉ'ðÏ玣· +¸ÅvO@¾Ù%ö7_ß*Z-r*Çé~z Ցê 4ˆŽ!ñøwÄBp‰°ÂõG-q.Öa+Ãî¡cÃÃ"wmqk=½¨ÞWfB +k^ƒ²«0‡ø¤>n‰puŸ5àÝ㞃= «m]0oüüÊÄæ-1ô·:ǒ~ê³ô%ui¤„¢;ÕpÜVœ”Où/a3’î;0†oó½KܼL·—Å6Ÿ¢EÎÅõd@þZU%¡{ òñÔô‡±^Ø Í°ÿyÌO‘íV‡NHLm®¢©uƒ?ÑuM¡äB•EQ1\úIُOéu¸iÎ@L–’‘ï7‰Nk\ÝÐddƒ [i‹|ª¯í‹ÆlRÜ°¢è3"²ú¾rW^ üˆ +¹1ë°Í9ö~±(Vì¶ýZQjsf¶ü•b÷5~Nlï, $LAE ¾±Æ\ù–ÝûY†vÄø¡‡3kŽô"³*ÆÆIežö´¦.²gj4uœä¼D•’k"Õ*TÜ~~ˆ¬œgˆ^– ò›~½¼<|ƒ1â­c©Px7 í‚kFÔ84‘K(/AIƒ\%óH©âG;‰'¡â6‹¾€æ ½à`kK’…¬ï +Ôè¸Z¯J¤äAÔFqµŒKšqÓ$5„GT´è#.öa<±ñC]”s¶zOŒ£9ÇÔÕÄ@yQђí-–D¥RPÒÇÉßGªD{˜Ÿnš¦ªùoˆ«^Â7é°PµëvU±vºƒ²ôT_F"éT‹Øe⠊ñˆ^‘9ùì¡^‹9®¯É(Zi•í*³¢”JŽ|1¿"Ë]º˜ýœ.˜g:±ÆE¼TIÄFzNõË÷%T„|ƒk&ñJ´lÅÇãIùõ3ʌª+År^¹qfŠ”SNM‰‹òX»™eÝÆ $’vî{ò…ꢫ?I¬Bð-”º-Oi×0iX’oª È葚T\£¬Å.%kR&-?(ümš¥=ó€Ôþ?~3ÂJncu ¦/·mS<ìøÐ,»ÙLeØH:ëi¢_+MSVüaù kò@\Ѓ*ÕÃ+w¸­qDS!h”²e +ô4€–9"(hÂd}+ɗ½7Œ°)T« Þ b¹ÇªÔªhmõê`Y­Õ»÷ÿ ís<ª†-´,@˜­Í‹ÀŸ‘þ¸ÏSCg—ZwÓñN² CUëcªÜWš’š¤Ê-JGm\Q²ìA]Q†]Æh&D‹¶0±íÐZvnw %’õÎá0†°zºÊMT“XÈI¶ÂÉò:¤Ól¿ŒÅ<›7åaÍ` çù™5æP` ±Ý°Dh“k?Ø(ªbþø Ÿü?²`Fº‚gÝÏ—ñÖűàîy¬¸À=î‹4EJ‹í­ú0 GvQ³O4À©W²‘Šd SAšnMÿCäÄí€ +Ò±|`ïŠ7ø_·ÎvY—£¦Io©«ÙRÅyYqE¨,Dò;É&Q‰\éBÑxWì¡rÀ‡­v tÑ Û[€¶Ë\"]£º©ËU¬ÐØˋ¥ ʤÅâwÒ髐±<¶ |Mc+…éÂåç ÛZê¬9Ú(WZ¦Ê³Í°Âäf“ïø¨t‘Ž~X)†Uái—á?¤m±ð;1 pš't.t-SSUn;Qñ›à¹Y(sўè§Ð*ÊMº8=÷œâ +BHZ# ƒ–GcDáSŒ¬ä{d'Ù,UÚt†£‚lÓ=í´,}¼*–¯vËcrÓ+Ð]‰(_ý1rœÃ˜@?A[ã˜ã±K£Dl¡v'”oî>=¦ëԏ’‡ÕÔÓ•[‹µ¨?úQÔ ¤ôn!ܘå€ÚÊeÖÞæoø…ÆiÇÜéB]²u3ùˆªßPzP'ߧ–%•4É4Qw‘ Ñ L7@ì?;ˆgSVjgoÞhoùpê7í´sy‘ªÄüRö\7”ø¹äˆâVÔ%xL| 3¬nëÛ|å´2Q|ûí-ÓÜGo¯tž©uÙV֘³Gkî}¯©fdã'å‰Ì°yQ/;^¿Ò+bÆ#Û&™~Ìôæ„úي2‡—¹¼(ßÊ<•c 3ß;¤n`9ðã2[Lqztö.˜ÿ)ô<äÍ×ßlJàaËnìæš X>ãîɚÑ×pöòTֆ‡ø)Òð$œDrƒu:5¢zøjë,|·~›û0T\~È>®*,6Y +]è·7E9!À¡7ùëÂ;aˆ—¢ÕuŒ*Àñ­8Y?ÃäÒ¢Úã#ö±¦àWñfÅiAö~ª\âûÐmB\ø$ôžOÒwDh°E©•16:_«ºçÙJä³ qBšùR%–Ÿ*Xð÷ø3 á!‚ýO»Ëþ:Ü`Iª»è¤š©o¬ßk×ì2¦+õ™}šYñºü'1ß%Y õG¬‡°ÂPMJ{rK ´²Ùæüwà˜³¢žµæ_‘æ µúL¶&N¹‹è‘óÑ øNñyA'…Õ³mﺾo4gz"ëv;L® j•eΐ† %ƜÌÃê{š¢N¾S6òÿU'*ÈÍ@†dÙÀÚjNcÏÍvêo^=‡Bi ­ŽÉ7¹95¹©Ïlµ€AÇÀⶫ62ý7ùIÒØÛÅCçkëyV_}BÕË.I=ëYR2¿ÂU^ÿcê°ÕÌ~÷oîß\Ƙa3Ƹ2Œ«è@e»ÔæU*Tl©çm«cÕÓ±½ý¾Ÿïå~í x˜¬¨„–ÿn’ÂN¾îú«ÈÚïûU¨Ÿ)o`Iχa]é¯ÚþÀæP£³ÐFÊŚVTC&ÊÏ£Ö࿋Yè=ßd]/æ§Ã.ãó.FÈBX´s+$íé=­}buMÃ>‹RWm6“Å–6ᢐÅFX ÷5ç½x{v*ñÇØÇîýj;‹zv­²<½¡¥_~‹ú•ýA¢”VUJϐ‰²^IjˆQ…x‰ï½¼uÂQ¯oÁ=l°K§_ÎÚՑ¬EÒkZ\4³¨sêqU7¥ÔvOa ëJ?èÂQ)›4C«ƒ^ŠÅÂì\ç¤ñk[{»Á3½¦y¿~ÕõÔMí|JµÍ'g¹¢4Ay,$µ0œ( j§H†¼lò:Q"V҉”1X¡í&eº½©»°ƒúí© ùs)M•Zœì(éW ×|ÒϹÙ\¯‡ò8Ñ8&ít³ícýp¦ÓҔÞÞaö ’ê…Í”«•‹ô ò­’C¹›CŠ GU®$^îfb¦·³|8u´ÓÈ̸ÇÍûÇ&áÑØA֍ü9kÕe€7”;Î㥦ì…æñk¢oÁ›ÁÕAv¤úò´…Տ0o5±‡Ÿöyœ'ð‡ò—Üø¹ŠÆ€ÿâ<ä!îÉûÁ¹HôÎ÷P’4þˆ|yÆÜCÈ{_³2eî§ÅlTrÉsôâ*¥·Idg_à¯'V +Fvz|"ïƞ¯¦Ò©n2=µ3[ï°"s¬¥ŸÙtÕ ù}Nâ8«”ûž`†ùñÒÌ1`X¼iý]àx¬£½(®U2\o[v1·d%JOO&rؗ´ß0ܵ9³YxÅݨ \–´€¼D‡m§¹ÖÄ]=Hßjíovfd—¥˜)Ì:ÓtíbèdH9\”Øϛ®YÉ?«8°Þ <%þ}ÈçdV‹Û•hšÁnuŒÓ»kV˜¶3+ª¥(+µ$ŠÞÁ-¼›¸Š‹ë¼#¯ð£Õ‹®‚QÒ°ÁØì·ÚåЖžÙãX@ßâh-NdðëÜ$Ìa«š>•M3¿¡q—œ"yÿÕè$À[YÚ@S¶õšgÏÓ=ݎÆÚP‡³±˜1·)L<Æd×"´döìrՕsÎÈÝñžW¬í ˆìDJÿ +tÃýbêÆ µcèj¥è*º!®Aq +hGÐ|î3j zŸO‰ôÀ¶öú|·Nƒ +»°*ªÏ€› òÂÓðÔ%2#ÐǓ™H¼7!¹ ;v¤¡‡'ì;äéOð­ôëÎ~hµÄ¥î%”,v6ÄBÕ¢ÕÂTxŠðDv"Lt¤Ã¯K"N#œ¶.ecÍ}fÀ‘˺ŒçdÖ&ƒTÙù R¡øASˆ;Yq!óþ¹ö–¤E,ƒŸ‹ëü‘AAúm?~•±çÜÌÐ[ý7ªÒ[“ö> \¦!ýB;U¬ø!ˆ)/×À»¥¸ÿC$NøþÖ$ïAå³uüe–uU}ü,3Y'äß/JÀœcùð .8_[O¨Íá®ÐùN-<"N¹ù™·¡awG¨…mý¼_+•yj~P™]Å¿^\y¼ XÀÚ,r-¯|à㒒›¡Ü³ííã<§æÛL^T}½ö,Ï^eDRø»,êãn€kqց%Àë|r,ø!gÿJx´±×Î=~ép{"·î\ee÷E«N;“·ÃžŸá=©òÊ$øöÒ{q@Qá¦í_À†\?¿/иLe–´>­u£ä#²¼M²œÉÑpÄ'Y¶Æn²_e<…q㼅¼±íRa8pÖLB“=ƒ’(àYK—[l¢«`BK´´‚½B#4;cŠð;HñS’ ^±íOA<è·J°¹~¹I4,ºÖì$"‰œË,B\HV'&fಀ/pO_*ø¯Û_‚_Ã#¶¥à&l”ôWcÂK B«Zí(ü¥|Zú½à b“ê+|°ñKpTœ¶ +ÿAr3vŸ*>¼õö§ð>Ʉ½x\œ+¨0lk¤àïôçÍOðÔ¼`ÅöFÓÀÓcfupê.Œ®øwlCÄnÍÂöKJIi]¨ïšÀÊ&Âðõf£©³½äXPA·ýnÍ1Ú©©©FÛTK·ÎBoI!èÑÓ®…øæZ£ý f°)~‰¹XÞ“h™ÎyŽÆ¾9ú ݨOñC5§¶´¡‡&Ò|´T2«óÖÓ²¶¾ón˜SLB5eD0ºØ:‹³yPÂ;…Ü(ìßwéÓ9m¡¡ÎªnßWhŒÔåÂKŒu¾¬Þ½{Ú`”£wØk“ØùÈÉ +û‘kH¦éÍ>*çÚ²éÈ1ùö£ ¥wÏp5õ´Èê…êQº¶àªÝŒß$Š;¬ÌÛòLvvJ1ƒóf¯›ÔÊ3nž*ÙäøTŠg@oO#9|}•¯ª˜?V0Mù5.‘Û€zÆ{" NÖK?C”_$ PÑ&B̆e>ˆ(q´ªIÁu›‹ò¨`«þ£|oùb|ã_²0l2©WꂝßsCü¦Ü´LT÷Iæa?µf(/+¬ŠP¹Iw‘¸B WÊhÿg°ÌšH ¼»EiÝÅ®´ ®(G6 +¢€®‹¢" À +"(®H2™Ì™™dfrß $ˆxàZEP>ŠÅ£ŠºµúéÖóC¬ÔÇÿáû~ì׋EÎF½:}< ï\{ +š„‚ƒ¢%“àø± rHÐ6N$(ß«Nᷘ_%ó1š¢«ƒÑ]²2Î:$ŸÈÜØoƯ-†8È¥ I-qt;ù'kŠã¾TjJW^Â}ôkÀôŽfQUr\ùuî¦lôƒNkHn᫂æH¾‚÷õ*‰W¶ã¯ø¦˜Æd6™¸M2 *{¶®¼`ÌV%¥…VR£oJJ‰²À÷`+"èyO|s8ÙÎÃñ®6ÅVÌËy8‡ µ:+¿‡˜;ÄÐ9Ýî´ɨÒ=Ú.q“qŸ‚›Ñ=¸ôàÉ¥­ñ¨^ӏöw÷ld¯‹ÞGÁ­å;<¡bShÚ ¨ˆ®(÷ÀÛàŸ±%]Û çªN™}uAܹ² õ`MV󨬵—?gê=ò&¨o:R¼ÉãüÒ(£tWS-{66Cð¢S¥ø ‰«ýšÿ”¤U®ÆÜfoEIã½òhzEœ'ûܜ–¬&úÁQÉ8,Œgÿ]-2tœ×%€ÁF@}S|†èQJĜ¦h&S콧†bor 2wàqò|éoÀÃÈÏØ/À$Û Ĭý7´AÒ£±êŽIÛMXIc>Œf–¹äH^Î2®Ø`•zBÂÈ³Ø ÅžO€*×{M2MoRŽ0øi†¦¸ü:ªTï~%Ë$œ9ED~cÃj<}‰£ð${.œ-ù—+P]cœÐ=VzëÃpwz\SÍ;!?¬ìØC:èGÛF¤ÝòÅI×±¿q‘YÈŞ ݇>;ÕÇ]„‚¶ý†m§SÌ)¼yr½¥ÔEz©_n˕²aI"lµ|säGºŽíð‡öªº®vm§Âßµ¤îØ_7e]Ö­¥>„ÓГýÿUý)i:ÊøD΂ÿGº}±V WÚ5*ßÞ{Úfüà?Ñ +ë(¯ÿ$Ëp\)9D$ZYÙr|§¾öçç(¨4D܁OÊH¶»äʳ ;Ü«òévÛ±j‡xÒLr_rû µµ©;Wi·Ô nV¨|ªRé›üu«ÊdܦÂ;þ@ðÈÑú–ç YÖNþÁl-ÌQôÈïnJ¦úȲ¸cä/øÓðËø14™µÑC:Ã'K£&‡ŒÛ̕BOÝJ{ß´z‘fŒsWñƒÊ|F-§Ùq2˜ì ?Š¯Á}Y[pXdY<\‰ävÃ+ǁM{Á¶i©rš¼8µÌ~í£LJÞ¯´ÇŨ ávlL:ÀÚ ?@Ö¢ÌoÓ[gŒ`¶²}ý>?Ur‹ǛI2¾ËL•k.Æ}GpI8‰QäRV%܂L0/PU³ ûEÕñ ?´É¹TÙÂcÍÛ¼Ûf¢HÓësÖÄ^QMò½C!º¤)Ã$ ‚; Òej¸ íuIy õWïêîË6„ÏÏ#LÜÆMi9ºÄ¦Í±å«æšPœ*ŒøHˆÊ˜…¢FÉgˆ]Ÿm¯¾ßnÝ+|“·ÄX$Z6K'Ú»OñQÔJÊq Üþømì(B~—ljçÀSu‡Z áÅ¥–bhW®ÓP"¹žz@³U’»V±¼JÈ΂\ÿ,<\H»¿Až ö·5’çë¶ÄO¥af΍ÔC75O ¡þ±ó˜UÝ®¸xà7€óÌõªF›õÜ>QöóL‹ª~:Ê¥ÿ#ï]ð[eTSì2»Œ%…Ác• žüÔÆ~EWמgØ9ÌÌiíå÷%¾3W4ފ: }Þ¼0Ä_ÁX|¡¢-ðƣ鵼‡„‚ÿV”u×8H{»àßYêF¸"qĔ-´F95E!L¸èŽ/ŸÈÁ3z„—óLw@éå“"‰œÒF‚Ÿ²Rm¨O´·éQ&õ[Ð#¤ŠÎ¿ö–ZÅO¡î/©xðºË¤Öró~9žT0ä0b³³Ü¬ ò4±ÁPߋbÔ>_nMFY%÷ý<ñip +Ê;R¯xÑðá@ý¤|‹ëŠüqj#ßlºjù?Ape¢Ü[Çۊíx¶{ý +ÑsäHýt-bM—#¢²¥t8fÆÜß5ó}sßcÌÁ0†f0 CcB¤KèRê•mc³EÑíµÕÖk÷ýÿ×¥ÿJH×[ÅۢŚéžãýMOÔa±î†N¥$ʡ˖~ &(Ÿ‹$~çÅ>ø°žü–tÕBM%^i¦Õï3®¢Ï§Ef8UB ô¸ƒà™ß'`-èicIaͨ“ô+°¬ ¹Ø¯Rž€î†§´= Z¨¥Ÿ‡¢È¾ÌèŁÀ=¸5ÑU#ÚÈ5H«îþâRžûå¤>njky/§¥¦Œs6öÑH؃âE oLº†y‹ÙþìCßGØà/¨ñ?QE%Šá‹Fâv¹—MMz)=ZáB.ßçϡƋèÄ/ô¹Â•ûç3¦ùÎíûO¼èˆ8•Ý5&éY¾ÕõŸžKìÕ¬(—STî e‹ÒðŠ¶ZV•Ëð‘x'ôxaVø4ÔËÉ*H®]z~¸h~ £i0d,ÛKëý8ÍäCZyÑ{j¦êCF')’b™|x´…ñNJ>ÇVÞ{½0Ùêeí#|S—¥ÛEì¯1b狛*_…RÚË"÷Ñ–ÆÇ37ÊÝ€ÃBßÛâ“oξìõ(p¶3_<Ý¥%-ãèt±·É« B÷eÐòtßƓ·”px H¥ÿuRuɵ)H?§mü©ð£ãŠæÁf@£IzË͂qrgM_æõ«þDü|Ceû +†ˆÓ¯_–ùw•CՄYK/¼–Ô¨ ä½¨/²“êY0ƒ¼£ý–yŸÕ̸7Í.]Â*ѳ°þÚa Œ!ëd™[ëm ˜9­„Â#{-ô;˜Wà[¡¸Ìï ·›UŽ$‡mb?ciŸ3¸Ø˜s’™Œqê6ÿĂTÀ tùÖ }ù® µdl†¨êÇv¤å­{ÂF©yt/Ù¼Žtú„¤ÇÜÌ°‹‹KŠ™Q8Ü°„ Nº"þ‡½4ÈÊ»ûcü'׸NÏâs6ôÿI½« <ó–fWϚvЕ*§Ò‡ÁT² –ï9á ÔI#Ò{Á ÑÇmVx—@µ. ™åŽ\¹EyT³©}€ÚWå*€fÒ¿S¸Ñµ:'ØÀhP³ofŽ•Ä§/7ÈÞnÛ u‹3Ö­FèüÄËc”åÖȶT—úÍ5멦yòŴѪàý“žLÂÄiÃӔ€¹¤%vÂI‡¾Gæ —ɒ3îm?PH-k« ©;?ÉvÒbkk€ôãՉy“Œ^ýÃ4o B[Ž*‚BoÁ¡åR 9¨§Þ^Fñtþb¼Iyd¯’š¨W›™$ګږ¼ÆNãêT3óVYzl ((ñmƒ‰"Uïa.\˜vzŒëCˆ5H8Hó$?sZŠ6Žœ¢=:ÈhhêB…!É8 +`,ä g6ô$cNúŠæ!LÄp©<Šb<ïÀ™Nz;¶0y%€ )°è"Î «DÜB@Ž ;€.aÿÒ$G=ØW+²ØïØvÑFöv-­‹ý…Ý|d%ºŠÝ¿ÇîgOŨÐÔ;$KF“»î²lbšu#«^$(ŸbÕ ¥‚,‡ ”jdMð[sÃÙkx÷vÿ͆¹ïc–³?sÝB–¡fl¶S ¥ÿkø€ ªMe͈Ly˜i’Ã3òTZuøgÖvñàî#¬áøV'{ÿFð,ºË8+„5Žå%\©ŸÑY`kY o¾­ÙC¾ˆ,VQÕ"˜B½k”5WjؚÃê aëx·­ÐhÝkË"è© ÕA³Æ›Ü/ðŠŠd˜XöÃ!xJ±ë(}¶~ÏÚ&¹|–ÊÿËé íh‰®?í·¾Ò.„òê¸ñøÿÁXSàªçÕýqX×}|Ö#CiÁchÙK™ÈVF @ d’·w^ÞËNH L +jkÅuÖjµ­³ˆV´JE)ž­£Çý¿swmºü^ ´«VQe¢’^*ð…¡7”cô¸·Su›5Ô.›:’Õ5!{3°A/—ýu@vÉ?êaD§åUNCþkùŒH2)ú 1¡z%­9ì­U鱛ý»éÐÊçvò¹°—Ë!ÆkšÕ0>][#À?¬wÏsb‚÷Ä,4U²á¤_ fà)…ýEêďÛ* uä6Go7°6ɵêèù¦{¹¿ Èæ'C¶É‚Ga‡â+Á¯ðRUõA=±@ù¾5_ªrgs1OU¸ŠGÿ£*ŠƒÊšëO¨&øÂQÍ¡Á4ÒÜ%¸¥©×€°nl¡c=ú%Z¨ ÷v¥Y ÿZe‚ëਝ4í‹? eC‹ƒÁ—`…àØ Þ_‚ªÙwvĦ10áKÌB/§ê*BrâvÎ4όwMèñ  0ù›à¸rë“ ó³–`ø¤ñ$½Ðï’÷C‘ܝŠGàa6;g-N_&É° .` ¸`ß0üØùM/s\¢Pœ’MƒfóªŠ`p‰¾3ÛìåÖÆå $‚ˆA7° iÚç —î¬c±û(y <ÓNÉâÀù·ò6¶ôe/ü ëcÿPOj± mê+”YЪCËzÏÂXa-…¶T‘Ñ`ao¦t°tÜ._ ,qgõªO˜ïÄöªI]@«f"µ ´?4|T¹]ÿT7[úr¾5+í¬D4UffNÕ]Ϭ¦ç‹'¢Md’dõæù¸YÚã%A'-í:›x–>œj˜‡”±Ó Æ5!’U¥iMSDÆ-rBŠFL„É&¿ÁÚÍ^:O•ãò…F¯-TüÆ4Šw ³è÷ÊèÒõT©²3c q]µ2ªRÙôdó/3²µùU›\;?åãØUp=ÔÀÔ@Óbê +TYRJ¦€3éÝøO )*+sWÀu¯.˜ê[ìL6—Ǽ§ÝAš. Ç귒ßhñ‘‚oN_…=Cÿˆ|€òHW  Gz}ýžw\ÒÜ2Œh{?ÝUàÅr_סä,[<§™¼4ÛDmˆD‘ø〷ðòú’C/ÍFÇlö MÙr_ò‘¹¾ög"ÇP\T‹MñIiÿD­¬wä$™ú=` öÆI¯Ó ü§}ÓßíÆ6Ò.íÃjYîx^›†ÿh}]ø¶Ûø"µ]Ëßÿl +¾«8"ӽ΃ǐ«öLúÁ¥ì"êHï”ڝü°k›è:^֖T¢Ïm©©éÈÆøÏ·.À‰©^—@1Š~qxT¼ÅÇlùUä¾æóÕ#U7‘¢Öü5º:ÓöLÎE|4â™&W2Ëÿ5e•¶xzãß*̖̆;õŸâÙÖMâ0™ÕdoØ^•lpm¬ÍëâaIòSö7©kD#Óùß'͊$Ï"lL­?båA˜ÑüDI§¹ò«•NÝmEhž —«8‘¬ÔŒ*ó"vÒ±ªEþßýª»ž¶ ù݌5Zž5‡¤‹ ¾`zÅ~xŸ[«MN&Ïaî|Äbª(÷Âǁ$Ïch¤ ±øãè|cq«)Mï‹_¨ðá¾Æ†w>bSО$ ýé ¿Dòp«¾ÒzŽ!G@o3ÇñƒÈÃÜÉa]PnÑN2);K4 U•´ö"¨p+q ëð7bÒáùùÒóËLíÖø…a“y¡$‚04”»iCøc9“Ì(û6ñ>E3aá{ˆ R䏡ï0`Ý?às0Âí7y9'`LÔq·ñ`SîécLr&MŸˆP.Ú½áü,ýÒ_†rÄÚu°ÙÁå/÷FÀõ»º°Æ=܏ÎÄ=1ltËŜ ô¸9>1Šlם +›ÁKX_ÿt+ ¬ €=‘çÐ#¬Ø«Líø³ +u¶uWçKìñ¢Ø̹– u)±F£@Œ†´ó»ïû…jÔRÎý_$ Ð®ÝYuBśöGõbQl+$Ö»·,o8“qÜl¸Åègš!) ÷ÛÁˆnî2QùãήÒßUÎ>YtÍwŽ(Ùþ¢^ëù'Y¦ÝòÑغŸ!…Ú %à—GËU¸û9¼·ù¾¼ã, ¿Ô&>¨YcwU­± ¨Mé÷Éj"æÿ“Zòo6VÝéWF9Õ=æa“Àl mÄyù–Ö¬¿šnqA/2æAäIºÌŠ¬Žiâþï +qÑÔAN?!9NxlÅbÀO°¹Î{ìeÙi‡Y“Q½Ì¶>S¸Òô€ZŸîª‡ .&ŒsÃÞ¿búÑj?1_ñ¡Ç¡P´Ãékœåٟè¿°x²`дY»!í¸n”ù6f®VJ•?ffãoýš‰n”ð0¡‰°šÒ6l¿)ó±7ØB¹u‰yMAƒÑ¢˜&×mæ>>ÃNjÔÁ#4J%ûÄ&|žÇòE]ۊ:íÒiû2g¢0ÀÒio*ð6zXŠÓÂø†¬h +æ҂÷Ò3;üšñ1"Æã2ҍÔ+Oô?©ˆ¨Kܳja½÷´ðÿú÷èY|£‚nßMHŸpüA/šLsI5§•cu¿*ΐDx„!W‹ {|m¯pq%ªØqeh¦rÁYb¢Bt M7»uA-™ +w%5»”,xë+ zî!Ί}|%­¿w¬pÈ©™xe¥Xx|Y üy$Mœ}yòA—Üzè5À“{ù+=Ž}5"6‰~‹{άq~„p^¨Q~Md¨¤~*XŸÄ~,L¹›U~S@é–Æ~“5½’ ~å+f2T"ˆPÒ{p«U…Ip§<„ŠdG£ƒÓX]ž¶ƒ'LzšJ‚˜@À•Ï‚5·‘)¬+‡ŒgI"ۇ¥€ó{ª~Œo³¦eŠ¾cþ¢,‰dXØˆ L;™o†»@¡”ò…}5³^„E+£‹¶ƒ#‡ízЩג–oy¥»ÃcÆ¡zŽÁWܝŒ­L˜»Š£@ƒ”Eˆ¢5·¬†¥+½‹„¦#N†¡‚ÁzŸ©O˜ïoK¥/–Šc“ è“ÝW©œˆ‘ K՘$ŽB@W“¼‹|5¨%ˆÀ+׊œ†#x†Aƒqzt¨ùŸ&oM¤Éœ9c l˜ÇWŽ›ò•Kׂ‘‚@V“Ž5³Ž¨Š‘+éŠ@‡)#š…õ„q¹£hÜf«µj’[Å°1lmPʪÿnpEÐ¥ip¢; Ÿs 0ò™Xuœ'£’éxzŒr{‡qD¸äo×f«´pÈ[Ô¯qñP䩪sNEñ¤tã;=ž%v¬15˜x™( +‘®zÄ W‹W} q(·¢vsf€²ÊvÉ[º­°wLP̨OxE뢳y +;NœÞz11c–Ò{v(_•|è ׊b~mq¶C|ÏfL±o|¢[y¬[|™P£§|ÃEÒ¡t};O›²}›1…•¼~/(¦~ä!E‰§pÞµƒf&°B‚p[Q«/àPt¥ÛgEÁ S;Pš¦€è1£”Æ€Ã(ãŽÄ€·!£ˆÞ€ºp¸´,‰Rf¯Oˆ6[Bª5‡Pc¤á…õE°Ÿ`„ð;U™·„1¾“ëƒ*)Ž‚^!ðˆH§p—³y`f ®‹È[>©fŒ P[¤ŠAE©ž—ˆŒ;Z˜ø†é1ٓ0…U)FjƒÒ"0‡Î‚op~²õ•7f ­ð“![B¨¼ÀPY£_ŽEEŸé‹Ü;T˜\‰…1撠‡C)kŒç…"d‡jƒpm²–šÙf­r˜=[M¨,•1P\¢Ç‘üE£SŽÜ;`—ЋÔ1ð’'ˆå)}Œ„†"‡ƒ›Î¡mfú»ènìi=¨µp­kq”êr^mœ€µtoÎlVuÚrX w¿tDyßw'0É|Yz>̾j´qźjlÁrä§`n­t“¾p‹u0¤rnvgkbtgw³WIv~yCtxÏz›0b{x|bÊùh§|~¸´jÒ|¥èlä|’^næ|¶~ppò|ój\s}AVtu[}–B×wÚ}û0z¬~lÉ;fׇ ¶øi† +¤9kD…ëmh„5})oœƒviNqꂿU¥tX‚BEvÿ=/·y÷€VǧeP‘{µqg¦‹¢¶i卞|l‹»{õno‰èhLpãˆ(Tâsu†SAÁv@„Z/ryX‚Æ_d›Ö´2f}™¡}hƖŽMk“/zámtLgdoþjT3r²ŠxAKuœ‡I/8xσ´Å[c&¦³5e¢[ }gܞrQj.šxyýl¥–†f¥oD’ˆSŸr Žd@êu‰þ/x\…ębp° ²vdÜ«Ÿ²g%¦”Œ€iw¡„y3køœyeøn¬—bSq‰’@—t Œo.àwý†UÄa÷¹ë±ôd`´RŸfŸ®W‹Øhè¨-x‘kk¢emn)›ÐR§q•\@?t@ŽŒ.Àw°‡ZÀ‚tÿf4¯uþh¦åvÿjõ‹xxm0xŠyosekz.qÐR|{itP?Ä|Öw-Ó~zK¿'rÈp{®sÿqԜãu#sŠ„vFtgw£wtu½dx¾w*QÏz%x®?E{Äzb-Ž}¯|X½¯pÑzŸ¬êr'zò›ssj{@‰(t¯{™vxv|c£wy|Qy +}>ºzÓ}œ-R|ä~H¼(o„™«Yp‚ƒþ™éq݃^‡Ûs=‚ÁuPtº‚;b°vS¼PPx <>Ayû€¶-|0€º»mŸŽ{©øo˜p‹‹z†r‰èt?s“ˆ^aÌuQ†âO¦w+…T=Ôy>ƒ¨,ï{“Â¹’lu˜S¨Ômü–—oou“†…{púùsGr Žlatq‹ÝOvk‰?=tx†j,É{ ƒ@¸¦kˆ¢ §èmžÜ–‚n’›l„–p—ÝrxqؔM`Ws¼¯N“uȌï=&xˆñ,©z„·÷j׫˜§4lg§ˆ•ÁmᣃÔomž‚q¿q0™å_¹s*•9N uI_<âw¥‹6,z@…¯·†ja´è¦³kí¯í•)m\ª|ƒ2nà¤Ïq)p¥Ÿ _|2s§o„|­u]Ê}@v¬LO}êxT;"~Âz-*æÕ|L°œy(xá¡*y«yr‘ z$yù ÖgWT€aË¢¨Ä®kTd@D\dPPp-HGÀ„&]¤30Àô¹½ß;s§Cg(†  1DE²*nº6ܵaïzê*«&šå<ŸÞ//6è± ¤O?ƒýQ}Ð0$ 8 _„·{¡Žˆ[w¨ ¢/«¾!f›UmxrIŒWBø”´5À(Öµ¼Š)2 ØÏ.$½Ý5U±o¶}Zƒ!O¹O“·ªæq‹‹mªÇÌõÔ õº>’>P‰3 ­Ä¸g| ú,ûXñ¦“ÿ`£ÏS$š>BG”‹ çDǕu†”#êiÚï#§þ܌-ý`­óœxJâò!wÙûÊúم:‘Î(‡«‹ÁŠ`[HÑW¥¿eQÊ2U‚áFDƒº‚‡¶`à|ö™§:CÍèd¥õŽ2Á~Tv­±Êkêè¢dEeUb2¯Ì½…èp ʠÿ†¶£½~íè[ô‡Ë@›šQd€³F!•œ7•ŒHÙÙ$‰ÌùŒäÐÑ Žˆ…Ú#—Èd¿Ltæ!BOáKš*áŸÌG-i°ÙäC–ÃrƒBú.ÒUålmO¼>Æ †,Bæ2Wü<+Õ3¡6¹7¡›µß›íÐ@µÑ ´)¤Û &KO¶ 0ޏûÏÔOþ igmúŠ82=DÈ É4FB[†ÌÓ!AãIb4½~—¤ü£Z—í *†â¤fz\½ÕOÚt®æF&”ˆíÏÁӝN&3xôàFÜê[®H–jûŠýz°¹&3n14µÂ¼böMá ­zB¹Ð!Õ Ÿœ|‡®+¿å +/—hw{ìûV³\lÞs—ýT¾jçgæ?қ¾ú¼â©ÛŸÔu «ê¹®¨D­}û”.ƒ5ïʺÄ(wM’ °ýÒ±=ÉL·üÄÎjúe³o(u\ý›» yÚPµXû³üžæƒÆ¢8ùp2¥¶¤©23Î2"uhì0 Á;ý(3˜àû-ybÝ·‘3àÑÊÕWd÷‰sFÂ@wÖ É,¾É8#åóè¿!ÆØH*9¾ã)iF^ +¿P7÷½DšgÛÄ3Iœ33D_Âè«ôºâ)ÔJœQNdOÌm2‘tØa':‰=ÂûÄJÜê.ÆÛ±¡ +sÞ`d³é+úuu—-Š ǵ‰i—ȵ\L +±kw„á/iƒð®&GÜ1|91É:Hÿ^ÙÈ£gWü¢ú@-µEí¤¯ifš?Q®·F?Â/óKvüßř„MØkzÔ݈uNÖ0:ӎ3BJ]÷PU@âÕ׊VV’z±¸D‹ñPCÿöãØ9>R¨ÅTl‡{=EŽY^ScíôyjNËå9Ûþ¿Â6b~mwj[™íŠ Zl'±d}¯°[¡YïގM¢:tU9‡±—óWI“-#…dî=ÓsÑ£½S ¯ÄI‘KuÊÆ·6i/JO{×sýŠ{®˜c@6o°©ŠP³U,Þ'9cV–~ÉM6²åíI½Qš1ÀWÉwoÍ×T+ã¼ml³ºF0‡î…\´O­·d­È?Ío䉳iº¢4çÁM™•4M·C%ŠHÑf©M[×r0pÑ[Ï€„‚pê|R»Â’¥Ã/Ld/_c8]Ï׍Àó ùYpFøKM(ÜøŒEwoŒ@Újjê£I0/¢¦Àkad[™H’>Ùþ|/ѓðLóŽð §¹|0ð0S‡ïõVRŸ±×‚V2C¸Ã¦¹üaˆÑv”é4x«ö,'LÈÓ82Ã'ú7âô¿&n­„Š&CÄ¿ñÎÍf]9é-f]i{Ÿè‹ÌT÷¾¤¦à×aéÎ4EeNٟ±¯¬¨äή"“VöÐ_ªÇ”3½Úµtõf6š‡ú5¥ÙÒ·µ¤,®  jP“úÑ6E‘«±x)ͻ֣UüSu©@Œ×6M6ødµŽ‘Àõˆ½®¨“FÔÌþ›ÏV€»SˬGÀÞØŦwÐÆ û†uÐyÿ@>.õŠåTȆÕ×éVäOdj­?#驺syc¶¿ãA)w,zl<æ¨ñÿþ÷ـ»B–*€7Ši€j,\‡©€P#„õ€;}}™~ˆÝr4–ñˆfx”O‡"Zh‘ †NMŽð…BeŒ@„(7‰—ƒ8,i†õ‚A#F„aN}˜®Îqǖ*Žlf “‰ŒÍZÛ‹ MõŽ2‰HB-‹Œ‡†7ˆß…Ç,y†Yƒý#pƒç‚9|½˜–•q—•ž”¨eےï’NYƐ*µMº}"AîŠíŠ˜6؈Uˆ,€…Û…#’ƒ„‚ý||—´(qW•,š¦e•’s—ŒY¦”!MŒö¾ANJje6ÇâŠ,…}†Ã#®ƒ5ƒtë©PcèjO¥ãf=_`¢rh¡TžÐkH¹šîm¾=o–Ùp2¾’ŸsŒ(ÀŽHvÙ "‰øzbtu¨5k#j¤¸lº_-¡$nnSÿjpDH©™ƒrB=t•ytn2ݑOv½)yL žˆÛ|t¦¼riŸ£Is ^ٟµtS±›ýuSHt˜#v­=_”.x02ëyÎ)B‹ö{›! +‡â}~s¬¥Ùt(‚o.wþº]^”«©©`c’—˜CcHl†Vf+Ž;t)i0Œaèld‰çOþȯµ>tsw…[-òwn‚¿¹w\-ž¦¨®_A›®—Mb0˜‰…ke#•SsShA’!a7k‘ŽçO|o‹’>#rሠ-Ðvö„0¸±[D¨n§ð^a¤Œ–‹aS h„ªdLœ%r›g{—ç`˜j哟On‚-=ÜrfŠv-µv’…m¸3Z¤±ê§p]­ •û`®§Ü„c¤¢r f؝C` jR—ëNŸn’b=‘qþŒŽ-ŸvB†wµ~o®`^¥£q&cc•rfBƒÇti qõu£kÚ_ôwInÅN1yqØ<¸{u8,-}py´mjy¤”nÎlp”ptnR‚Þrp/qsÏr_;u¨tMžw§v2€ãû>ƒŸ@?ÈnÀíòC)…HKс#èEu·ä$þ%à펭û¡`^>[» +ø(?`~¤^xúÍ0¬¬ÈÏ_©+“OË´§v&"YÀ˜DŠ>sÝ5x'²±]¢¹£«~¨Ð-ç€iÀfð¡~…>NF" P²ØžÙñ^O—ÌGî# » ëǖ´ªî ëª0Í<”7íӆ 7 :sÊÓÃXL’‡!kݱrÂÄçá×x{6ÜR¦tå"+·¨@ö‰q£ú*§7k—1Ç÷U誘Y‰}(­Ù~\HÝë`J䞂æ“à·\áµâ¼ +±ÒÓþ5ç£2[{Fõ;‹On·–çÛúÝ¦Ûà *Cæª{2H<¡è¬N-ßS´º2ÍUråÓu÷UKm¹³5ųBuœ• +}£·ñÏÄ3À!ãJ÷H$‡œ#h^Qv¾0ªqÓUô·ºY:‘Ê«ªa¯Z=V.ˆ¿ }VÒZ¦Ÿfsôy îå½ÝÃÖ§¹MîßÑP¬8Û:Æx-kîÕ¶(+’rÞ©ãªGãSµIå²Ð­€¥øºO ø¹ùw÷ðiιþ9јy»¸—€³Ÿ’—&÷†z8,kÊ.$†äxì=rmRMêï¼ÎRŽ€Øíu×Mb;d—íw0yÁ â2Ö¤˜Tý{¢œ¾§—¨WƊñ6m|ˆ+±8êEC`ð òGd]íÄMm²µ"ˆæWürS禜D¿ò²~AêÿSƒ‹‚»° ¨Ä+ïG6W#èÿjnA>p€ÕuÂw0ì‚D(ÃMHOÖB$õ™ŽüŽvKÑ»X¬—{Š½®'VáíÕ' 5ôc + +èshø]T4ÚIÏÌ ƒÿDµG§Ã£TDÐ(2BNlz9“eB_ Ý«.ë#­J³UÿÒbGŽ³ºÐôà¿É°€Œ¯¢ú¡ îPÌc36õ ûè߅!Ø3Š¬ü•?ào/Ë¼á ½¥4Ta1l-vKWZ§¢’¡õæAÁpšÉ¾©éã<„˜‚>\©Ð©æðހkía8¸Z5$¯GÊï§çd¥W#‡À{{à¨ß¢ßÄ! ¦eÂ8l&ÓVé¨lu4õèʚ‡ @Ô¸Q®žÔú¥½×÷WJ"­àçû׆Ò쎛’àÿò…)è9(©6gf ¦yÙ'ô¼1?·Jöî¡L)­ábåÉ¡ì­¢ü­©l’º]4ÂLþkۘëPpñuîï²¹ô)nCA ÐŶ+2d‹ØõEHÊ'æœêHøm&Y3¹uó õÑ·ÁÕkïѽˆ‹ýÓ­Š¡Ž1‰ênÝ]ú_Z—<Ú®£Rvӛ‰ðpjÊm9G݂–Š¾§®À#j}d£ÆAù-uÚ í¡¢¡û +¨0”\C"‚°ÉdhK>م¶‹ÈŒ©Ù¸Æ:IF“qž\BVhFˆ'$—[Iœ&3’—äæ°B¢™tÙâK\ DåÄ'â`;™I [¿"–ð%„#þÖôNã‡÷š\÷¾ÀëI +|?·a×ü8+ñş3"-AûöשÕ_ZZ„K±O%u6`·îÄÎX{cçͯw1Ø ÞÙÿ$¾Ñè+ÊÁO±M{›'±øšEØ],¸j¹z6¶¸¼+§ý°~¢ ›Qœ½k a=â_ˆµò/E ¸—q¦ÀŒ¿bVškÐÞ&S ß7füg\"Å&]ÐÇKOÑ:´ %ije¿B>ä%¼à™j†:l=®ºT1e~ ª/ðߪg¸ ‹”ƒI0^YÕV) <õ^Åϑë% +·Õ¦ÕQS-WõÓGpaθDû8¥ß 9•D֑ՃðXM'Ð +ÕóUÊÈJ•]Iå"­—mtª¿euuE²)ÓÌ-3`ŒÒŒù SoOŠÓÕýŸ£™«™‚6Ju@$¨Z­ZÏùǚ᧌š;œþåoŒÃö–üúaëõm>݄92)@m¯{«Öêþ†¶¡š‘»”>Õ-ÆV³|¥°³— À•´WUæ>rß$Ó²]ªqّ¸ÿÆz–EYuɔÅÛ>üGT@蚩©\Þ'ßÇ}њGÊý¡9¤mp.d.@L4c&,·”r;b ӂãá îdýlúÚÎÍt3Ñݦ©]Q<äbžÌ-w °ô©ŸNÂkÃð” kÍ búKâ%áï´ÃíH»„“@ j™à"ŠW4ñ²sfœ‘|Aêa{¨à8Âc%ŠJ@bœ W’Õ\“þEÛÔæ':EhsÓřØ=®}âó9fǹú¼T¾ÍWÿ !3ߔô% פԘÝ]YzĀ&XIkWdPÍيØb§]±9g‹ý bIêëiù ¢Æä“Ï$ õOþ1wu_)¾‰xª®S$Pî)m/þUI Ã.mÔpsf5œUwl}oyøhÓ 4á;=DUóIKSž€DSÊjŒj:?è2ž*w¼0P²Ï4‚¿oýŧ+G„Ë4O6‚jµeu˜æ ÙH”W)ϛ=öƒøݮȆŒ¢sœ51û  oº½ÕkæܨaÈIÈӽ֒WoÐ0Õ%>­ª#}?Vþ5NÚÏÁ_ÏÛØû r}¹ë%é7¥­ +ßÔ¼‚Ñ{Ä!`åD}°üÂK_á4ˆ +‰!ƒ¶ªQ\üîHÒ½¼ÏzȔôHçNÚ>«uA-^á²°²bg¦¹%+kÌ5‚ž°8ýWâ #ýwi+‹¯öqéÇ0ÞîŸk…hcûuTT™[ÀÖÁÎ`î5ØZ[›`ËJ¯ &º¶œ-áêvÍ**–öcs0”®Î:¿-Š7•Øôo‡3G„(ÖZ!žd ©¡ ‘z Q}v°x“'EÁ¬éð}èà–aQ#*ÚÕ'–Áévi½Æ·|'iÞnˆ’Ž…˵Y²çø;½eR{ñ‚îEÒ1ÌÜv–ôiúk·Y¶èTË2Ἂ¬æ4o—/Šõ;äªðKšù |O cÿê +Rr_´ñT—Ó'›Uät£Kyγ•zØa“L™= z”s#k–)Æð|O¿ŠèĀŠÜ‡­ý:aúxÓim&ò™ã¼&^c½®†ÂŽoIѓ` +‘¦îWÊñ8Ï2K/ÖױϬ˽ßòŸñ^º¯i©ÁùÊáp‘u£€óÔO£ßè:JD­:WtG±Š<Ü8YJ] + ՄÑy¬iZPí-|xm«4×Är¦Qe¼`þdZ´H ;4°SÉìí¹X1̚å`¯±wªŠªŸp¼u>Ê7¢ Hô²2ìã%¡C‚d>«zES³?«É+éæ&ÓÎeð{™\ÄQ>‡Ý+)ú ”^T9ZîPàäåF­ê†ëü«‰ðV+ú@Á£¸Š®l@ A ˆŠB„ +r‡3„„“L2÷$“™$ €x ¸¨ë‚Õ*,^-àÚ·[]ëù<**è–R®ÚíßðýôIˆnpdkŸ ŻΫ ‘:ÈÃà„£©‰Cö‚û­ÆÐâ>ÛKXi­õ<¼_ŒTTŠ‡¤Õ–¼¬qùcsØ.žJmZ¹E›ÂŒ¨„Æ:ó^΄¢œúhsVIbm8tS”äX&^ a*Ɋ‘ÍÚnð^Ým‘îšãæ=A2äs§ó^»mICca|k‘é°`‡K±…{©"YÙ¡:nf¿,Ú±šW xØ_n~  ª¨ +!fÓ睥üÜ#ƒ ÞäA¶É§oÖ(u´ +gį›Vg攷ÔÏçE)Õ?nî/Ø  bd£éSûu3ßQ·¼Q¸–ùI»B`×\áC!ž’ÄdÑ +ÙPÜ,ÎÀˆ2QC³—ë[PŸ¶å‘Ò»µnª`±žRŸ”ºƒ£šXYUé^í”Ò'ý,|Y5G 4-}Ä<¸Ÿí«kÀC÷ûÈfގoÊۆ3¨²«¯«7‚á%ÍRÍëôå/4ç…ä!=öa¯'‘mý»´fUgÉLˆ•¬(CfU]@::& Ô +¬wo²¦ß¿“ÙD[D$ú”<ÏÞHÜ×½k”¨ÕUÞÒ*Iï#;He6Åi*µø80C¥¤ÕTÎN/h%ø u£hvLµ5'‹Æ­s*=%s+Ä:V9˲OÙ%ç›û‹ž(LWӖ¨sÏwœÐn0~~ I`¼ÙÛñFÚÛ嵃v®¸¿&“äK^U÷*^Ê6U>,ŠVœµ{¦:T5zG‰Fd„Ÿ„šìx|“×4ZšÙ²ÅÖ êuÍ'úʦœ¤"¥œWw±°[þ°f^ª'0X·cxÕ…×Àþšˆ2ª›rKìJÛJáD»Œà”·¾“Jm®äB®|CÁ=ç€55oc/ƒ¼ªàðhÐÏNÁŠL9õ'0ßjIÁî.ÆÖᔑÑÂëùÿ =$!_û3²sÛ^è>pX0µ]SÐc¸„†Ô¹`giœ9ˆ¦Q?”+©,OÄ|ekòÞákC)6b«ŠÞf!),ÌM÷î§úð¯jQ­›ì‰ÉZ¬FÖÀ_û¤Y[-Éۈfiv&¿ÃþmÞHø!‰¡ÏÈÿ`5oõ—I¯šxu¿d€“P#ôF» +î”P&ÒÍÇàÓh_2ˆnÁnm½‡MsC¯?’™¬…ºÿê¾wøƒäÏôOêºtí[P¢k+Ój®ènæöA ú»Ç¹ú”­úHßځÏê§Yº*£zÒל`˜L﵋TL˜ø0ïäü®ý³1|w:4Å4oý™¡¥ð(ºÅ%úªøò±jҨ̨5YÀJ_ÑÿÔ|ÛÑ©f¥•ôò´y†l0û‡Ê0—±š•DúÓO+/Ê.5ÂT­"»á$8¨¼[g)T`MHö³?ŒÆ“”Ú\»fިÕyL/Ø\ZÌüŸáúðjò@Ν(­WÚ¢u”Ó‚d>ÂP"Y’d'$„$ßʗïËì©V¬J+W·>pG‹ž[„ç^ˆºGÚ»ßñãªß2|M 5òòkÚci{‘ÝZJb«»ILF<†fB>òP­óCº­R7<]'äwÂçõ‹KÖÍúÜQXb¦Ãã*Š +Öÿ$f»‡~ ^¬Í„:¡)É]È•}‚pèæA(žŸ+…R ©´X¨zE©‚ÌÐ;b1tš!‚óá9ÚÝ ÈB”jü`™ dã>› Àµ!×L7g¥Þåh%³ÆëÒ7n·ׅ¬§á ô_Qg1ÃR2Ǽĸ:@“nè\ÖKžXù¦å°Ÿ)Â'€WIØC0hݤù!XL}†¾»É4œ‰l5É Vh2–°,ú–?ƒžbLb#(sÀyÌtk]:ibP _"ÏÈ2S&‚FþŒ ߆*:Ü/~‰·Ù5ülÒ6ÄÄþfÝ»¡ ²¯Ó óð¯©vÍô(l1‘Êïu’™;8ãíŸqžµ·ŒóÒi¿7mœL[Ú@¨ÅWxlâäg™ÑñË íY<€#nMDý«yYùZOÃEÑXê;/C<_í•IfG‰ªuÛúR›äÄOè…M­++cØ7šS«ò +4ƊaZ²÷é­ÔƒîŠœøÍÎuª¤í¶ Mߊ]–>]o°¶ÓÐ/ôm^&=ÂNh̕.®g*>d_ò$«¥ +]ókÜñßÙoj-¤½Ö]ºŽwðzýí`ùg`¹@ÝXRËê¯ïÖÐèžSZ^6Ãu¸VŸîø^×ïo«×ÿÔg±„~X—ñQðô Èæ¿®¡ïa%{s Tú·Æp4{®³ÖHLydWû)YUÀ&R?îçFDš/€'ƒgÑHÅ7yOÃÌG +âS0᪄ïg :¤poÊ›)·-.XF:€eÙæ¸*diÌåG{.㯙nwn.ètº±ÓY€½Í<’"³þ`ö¡ôâ7ÑdÒìsSC„»!¦x$¼ì©g‰ó:SîÚíøX9ÛÍY¶»Öá•å‰%r_‚']4KÌÊ ‡. q cÈYvã.㏢‚MrÎÓm½ÜúŒìÎ*ADbW냊ä•M1âDq½by¡Ô9 ¾þm­T'bu÷q…7¶Oñƒr€®÷Âé ßö}¢y‰XKˆ8‹œÜ`”ŠÚå¾®â.;²´ÔÀ«¿~1Kü}wù¡ÂÒ­³•ÏrB;ªҏ¶Þ’ &–6 åRrº÷*?jÄÅÒ䆑luµgðICkþ¶ñMú»|¥Úþv²œ®hùZY˜Hn8£V’×zšƒQ3N?Ý?ÃôÖ«zGPöÖø‘ÙÓ5¬|Noî(RGÐJ[Ý5ªô°&Hs)qq}^í&2Õý•n:z¹ý®þÇ°–kFmPÆ03;7ÕNÑsÛÞèi+ZêŒiӍ±úµ Ó^Ãòzçsã7ÑTÛm ,ì þŒzb–@Æûp…¾°õ2¸2{¦9¤§6„‚Ê„ûž/À=ä Ç4ø)šcýñ x +t&8…3µ¯Bõã-ã(;û^S‚éeÚÙúdSyÂ7yG^íH@¶Es­¹7<ëA–³Q|•áh“[ß\j‰²–eÿÚZŠÒŽy1|iÂ-—ÞM»']£ý‚š¦|§k!¾¨õ3h{ß&«Õm¹›5&[K¨iªƒK%Ú}UEüÞÚk̀Êåu hTñô[Ÿ*îF‰÷´kkOÆÆZ £e¸è ³œe€v]G ‰Ø¼;ÀG­¼LÉÞWݺ[ä“àñº…d;oä‡àošô3xòÿ‚°¦ÀêY{OEk[@Œ|lÄ‚2„€ì„ý²^ò’¼—÷òF6a ò¹9«uUQ[¨EÎmË'*u€WA¨»ä³wÿï:^WfA×w:¨Ržcºè $DZ9-Ná±7¬É×~c +» +?µí;”A¯34VfO× –ý–ßæ 5âœÄ*DvƒÿUe_ÑRqr…_ê°ü¨«pMv–‡]€ö½{ûқ[;¶õfÕ4¯( Ìc5ڑGìùõ÷d›xþµ±…»EÒjOª˜®ü-n +|⚠ë†g8žî KƒöٶŲˆ]ï{r3ÚJ¨(°ù?Ò±’µq…lá÷u;S7¢êÇqWA}ÅÇ°³†ÃÎé=·Åo +¢nÉœxgº|ŒGCT˜pŽT§aHžìÓ͗O¥0áU`llÚ¤»Cçltîî0Ájþhý~±¯pÚ±Yú_é,xü'ù,ÉIU·jnÁ\Í[Møæ z©ÎóÆÈDBéb<Ô¾Ó]ò«ÜT7S0CùoÛ}ñ2õ%ýsÙF͘¸MQ«óÏ ś¡!¤7füSѕ&.!m›àôéFk´¼õ†(+OÐ ãºóâOȏ¢í@ ê•Wª1ù¦f­ÙôG Û0J¸èZ¬’âî-#¢=¾ÅýÄqËb>@@Ñg¤IxFzŸ|˜û½âÅÞ´\“E=ˆY®g6ÒatÀÒº*ÿ¡SYõŒÝçô5û—T9vh÷ øŽ Æ%2{}n€ü´}Iò90Ýv zRf‹¢›Ð8kOËʼ™¨jV‘oõ:*¡xÚýH3Ê_ 6ˆWWxç4Ç\;“5juÙêèK:«ã:iì²7‹rʶ‡»YAd§«~XÃâõ×:J1<Œœ¥²;îäeªî +(ú;èMÙsºÅÈrlÚªÜU[y5ÿ»¶ýävw‹(k +-Í×Olí—ÖHº«¢WeG㐣ü݆L9s›¸ªè‚ŠFp6§ i&xëÁÙИp0üC2}ÉTxmÌCûÀôH#îѽZy—Ú‡†m{ìç+ËEŠAaî­ö‘ìWÏÓd¼V¨Sy%Ûې®™8bôש"SLL„¶òé1å4Ø$BsùÈ&±¿Bµ—j±ê±&©d@ãÜYˆÒ?O¬€+82}­£ù-D^½—†„ÎݒDÝÚ(ûËP¤˜Rœ„{¹ÔÑ¬.íús¢!Ê$Š˜4Žá´PüêÛÚ£ü§¦o\á„iÒ(“ÜÆëä#Àu"„»Dùž8Ï +Ф:¡]ïC­Œ¸€¼¥>Ð6àÞæášÚ’‹¶ÇöÜÒ׶û*ö±‘ûÈÂm@1GQm ÊlìOrus¬g#ö tk-Û¤²ò<‡Šÿv+lŸUÙw +]õ@‘äV9È9'ç¹Ò3Õ«Êè ¡Pç?#Ü0eDãaã¶ÃÕSœº†#Ö[%ëÀó™µLYŸø”‡Æ‰U‡U•_n¸¢¥ÊFÀ†η4FÙ/V[ØäŽ&+‡;Õk¨+å4e[D7\ì~YCm[†D¹¯úÄ·æÏÊó»ë4MÑn/ýé«9Ó0ÌÑéÆ:/[Òo¬¥`ŸK½Ó˜Ž(Öá +™ƒT™Þo…Ír M­8«ÍæFECw…LhT¯–l¿…ç¢ÂíÈ ¥;=í×ÑL×t¹Ì^r%´¢Ë|ÊTXN©£dñR3O>¢Ö«Ä^º°¹àž¡Gû)­ y®·¯ýۂ„2ãbþ+žPgˆDWŒB¤Á;TäÑ+ô4Q”v—¡§€¡{ˆ§…À9è¼µ;Œ¯°!f»é6~/ė|@Ír~’½EÃMíŠ$,<ª²`ÿ2Á‹¦+ù´oM­Ò¿$ȵkë¤†éÄÆ)<$‚\nnu|”LXìÀ·´«¯+z-]‰:Ör"ï‚æ®åXꗺ.KWü;øªå–YFC² Ê:ÃAǔ+ÐIéU× u€œåŠ+íU>.+͋;ËSN@]Ž“ñ— ÏìãLUÛ†Èñ÷¶X»Kx»6 ͑8=Ó*ðUµ±4^qÃݗۥ>S韒¢+—Å» ‰eÝL®ñsf»í v?Á¥ímÆ!±»ñ'Õ粈€Yþ¢v0—«zæْ2GãîÏÒwTÄ1×µe{BªðHÇóMœ,Ø Ï&fr(yÑÁË)©% ­ßPÉÒùÉÍ Ehl§% +$EVDĶ¡¥Ôt o§Á \~6-s‡ð/€/²›‰EÊÔä 2<뤪tñ ‘Åù:¨ÝÚmb“Õp®´V÷±ÊçÈn(Q®7: ÏziZ¢“îàN½l*é3ÄÔmôiИ¥‹`® ß sµ‘ÒnX +ýUœ‚\ПÈb¡i0™¤Ä^Kcà=Ÿ!!{pwp y€ÄK´™H´ö&ôȘ/ùU¯DµáÆgõ#M@’êÁ1“¦¢“¡&®ÓÁyf_s‘IrÈÚùÚŔ\ ýBcŸ×¨7¬H˜eßxÔXl¶Åtbuæ!†ÿhI +&)¥å Ö©êršbp›s³˜Ô;î²Cu GFæqÝ~~c6RbOŒñ 'l—"<͖¼‹üÃz [ª”TÿÏ0}°5y Vá|E­W¹rŒ„Ñ„\˜2”aAA‚¬0 „¬/É·W&aã€A +¨åÅAK]מ ñq\k‹P­µžU´"ÎJÑ»÷?¼Wåù¶{¥¯j#¬'rG”^–‚ô$U¤Ù)~VÓHDäÎTup©áéæ7©ðe’ÖÊ⚊–˜R³"«I˜›^Çw0Ó^Ô+m¯âO©ïX¾‹ÖiM£Ái†-T‡ß5ȝ°©'ˆ†œNÙ]¢~{e‘œ ÃÄr¢©Ä5Ճè-wŽ»Aœ•…„ºÏ-œäV•˜YF~¨UgÐÖBOÙJt¼8yÇ0¶´¬.{KªèOÁ(Ùë¸vlJ¡ uÁSëœ0ü¾ÖƒyØkØ^?‘6W­…c+Ý +ÂC²½ÙlÄ]œÂEškoÆ% ¾õݼ§è„¦™“‰õg}“h0š[[¡ÑãˆtVۃw,ÑíÇU™£À^|}²X?†½Šõ4:a<X… sšá%˜Ã×هU)¦Õ<‹@Z§Q›/ç[µ6ÓóÌ Ý.ú ÿ0A=¹fˆ œxãIҗ³’Q¾lä3\¨P©BoJ]Ô´ã\>[3Ô²õ­ö‚­Œ?,·ôÆЛMOyIÆOi>§ œ'»|“àÄ2ÓökŽ¤x¥Ío»ç6‡–oy*—¸Zo×9‰—XYÊýi£¾ŠŸ”fNP?ž1…kÏð¾ £€Á *ÙÐã_BàïûÄuøpÖ²B[’ š”¶Å4XŸÑ×õÑÔφ“¼}äã렐‘P¼¿•Ø73‚d"ÎdÙ®&Ä<¥ÕÐîăTô>º–üx4ñY´…"ƒþGðÑXF%N£góÍt2®õS 8.h¢ªpq¢„܏¯#~Âð2‰Hlò’eÒ¢ü€(j =äû™‰~ðn$¢± Y9P²KàÚÐC‰/íq䢘Ö¢&lÁŒâr³èSøÁ1åË|ˆ8Óû+üìûýáÛºþǝp5q ¶Z­«‚ô‰(õQÓ¸©AX‚‚!\Ž$$$CîsrL2É$™LîÂ%,‡ –*OQ–uÁ«OłúŠBuUX뵊]‹x®¶V‘î~á£nš,ÿŠ[™|ÏnCÖ +-ÀbY@ªX?(Ûe±92í"Õ¯)fÃmˆ€6@>íÄ_æ|ÓXȼ ½ÿæL N§+VJ2¥v&¿Áœ’Ç‚•ÙgÕa:yÊ*=>ˆC¦,꽅…zq¨¡©øwΣa™çáVîbP$©àßԆ3H¦ ‰ìµ* +|™tšc^Œ7½Cûv›ó¼fÝC¦›ïºUʆNì\ƒAœ X)ŒM¢×Ȋ¬ÅQËr’K{¥ãÄFۏeÍ"jùó%§§h·¥C¿ŠùÀªi¸24¿Ô.$ÛÒ²–ɹ™DÑüÓ®Â?2ª»ðÏ]HMtî—Ôa¡¥»PZé¸+CØÍ9èJ*™á_r%QNÊH®4Òrõ{W)þ |Õem}˜^…e «ÎÙ» +¶.év–¬ö_.e'TÞ)ñV4û¦(FéïoÉÿUgzfðÓ0Õ=ÛrûºÆ£Õ[(hÃØGjKÝÝÒ¢žÚy‚}¬÷¡%ë€]Áʟ%ö€(yì­¬À¿0Üóæ·àÒL1Á½™sÚR1w^N³JÛO÷7ö „ÌنyÅoxõ™”OÅãÕ`òi0) Â¿6Tù„­@JŸ­ŽJL#†Ù×´©²C‰¿[!ì)º«9!ËÊêw+“Ž™î@,Ü&TŽ›Qö0GU5ÌËãýaãò¯ +ê5\1(ù¢â¡-è9]³‚¶¶¸†¨›s4ú±Æ1y3¿Æyʍ©ý©À/Ì ÉÈG䇫~IÄ´41î¬ñ_Þ35g%@‘ØÉ.1N§” N¸Ì¡þP°ïi'„7ó×ëŸÈ4Û˜@rÂzË8äZ?ˆ ìêiþ;Îfç +ÑcÞEÃNéO‚ri@ñDüœ¡Ž“ï¤úu{Aî6.ѱ>1óáë_Ù:,¡ ƒûJf?È/•Lèí¢CòNÉNÙç*E]Ù­!ç½×ø ämqú=pñ)²¹¿ݍî +œc«F±M¼Hõ´Œ?¨£b;t•%› 7órÁ~ãû´£ÎL&ž3>µÅﰞÁ~6slD'9ã?´ÿ6š‰T­æϙ‡¥^ 5÷;Õ +k[ }€Î»ágX0^h™q$WâKJm3ÖqV/fÔ̔¿Æ&„í|ª}3ãø¶½1—ªèsÌO[­9ï¨"6Á‘εñ6 Ç9àK¦ÿæ+´|dÔøæjÒ8aÞ&Ák ËɐˆŒž=9wåUžÍ©ÏÔ?º¯ƒ®Û¿Ó|ÍáµÒÔ0,Œ’«¡lug™³z®äeU,}*Ì ”åe-þˆÔ^u„ïG¢SÁëßoyˆž7ž¦7æñbC#Q½•Ýşánª½[Ú,( õçl•^ 6¤¢ !ùúâʌø>ó"ï:Ïj°®èbiq¼‡„¹Æå2š$V1¦\$›åÝǕwŠökGÔ£þ£îQÊ“Ž%´[ÿ„ôÅÎ`çѐ½J¦ Ή `·¼]–ªæ…+Yº)úu—!*ó5´Ñ(HáId„Ða¾oEâlw1¶•7£ïÓÈáhY³xЈr—ÈãM·èyªA39S¢ÝcLYgèBل*d‹ŽlQö·¶ å¥ÖÓP/ð…¤Ç…m¶ðòl)ÅÖIëRÆ`i™ÿ?Ğ‘¦ôAû‚Y訌ó :§Íe‡»ët¹/Ý Òyüsn琸ÛM ­‘º>dìSG¹&HÃP³ëÁe*p‹ûÖ:éê´v°¾FëòÊÓ«´}9àà|%*öC…‡d•ÚŒíàŸ•T¯»ám ؍ýžÎ¸SVØÝký‚q¬ª½Å~V÷Q< „×f±Ï +ÓC‚B¦´'ÌøL†HÉ?— 6¦û¶ÇZWzªÍjxAñ|õ+cs£hi„#aÝ43¾ü ËKÑZr?Ú'H:‚µmø2ÇèAŒÄ½ ÙešÐ­d€cÐM^ðkÃ^þCÖj#,®¤ž@DòL2Ëâ‰I~tHGÇ«íøJ̀ó¶eñ Ô W`_qÕZ•bµ¬ +„"pÄp߄CH„æ I&Çd2÷LÂ)x‚ʪ­°*j±XEtJ×J]«EZ_=@±XžºY¥¨íî÷#>§(§Uûª÷TªÊ#tgåÛE Àíª¬ÌU¦O4E±Á]cD®•ix`FfÁ¬åøw0b(½”ÑU +Õ•Yâ®ù]sAˆêvjßfh€w@A,búÆx#‚iù”ðu+•ÝE¹†Ì_÷X™¯x˼U-ÆEŸW'šÒ_ë½@ÿØc˜e2b1(·ž h±^EN±Ø +¬`V´[@-k…¤b½’°nÎ_PëáÅéeÚ:øÿ60ŽŒ„š³Ðñ€èl–u-'\õåj|Dþme;±®tHÞGDæ˪&ˆø´‡Õ¡D!ߪ¿@Ðá—M…Ä?Bâ=ër›äéΕt<‘GHß8šJd öÿlûM¹×žiÜlv>Swžo2ŽYê©!Ö;DL…é¢Å¾]²¡ò®†’±ŸÖ˶íRÔÖþœ¬f;Ë·¾Ò-rü®0Ìۏ첸ÛR}Ö"‹¨?5#ðÍmk+3§(¸¸­(.ÏõÇRÄÝÉxP{K$ ‘™ê~?uXÅ m‹ÁµÒÂ(U$C[Kží·–Il9v˜®ŒLæ"çF¿À«]C2qƒ.ÍOI®6Ž1žQÐçªxã É1i™QÑZxlµe_³Ì)O&uZõê±èCÈj7$6ôøÕã} âA~««8zXþ°ÜÓÀ¯âm¿b|®nÍ^i>¢]œäfQêë¢ùÖBchÈJDj^ðû k‚æ½]èr¥ou‡ö#I¸î”îšh +8ЂTc£1)±Ã¼ßüWÞ+Ë-Ë*îkxƒuße´I÷~€ßÁPEŒ:À¼±LR] &‹‚t-¬^à*$MŒ4-µb¼› îãÎB è¿Ÿc˜œéŽ³ñA9ZµuÿKíDۄ§«§Ñù¬T}–•pËp;dz›…x0w +ú Þï7 ? r™©ØâŽlJÁ§ûÄÑU/è3B®¥K3hÿ f@ jçm1©¨RîזD*Øï¿pù–©Á֓ƒ2ÃÿOö(VvÔÚ +n¨‹œd¦³úmMAOßëˆá¹;í1ÜS`§Mà÷Òú-a6 —)²ÂN߲,ž£_ +ßl[có.Hûі%¶Å–Ø´+#]l‡åcÙ¶ŸÕã¾ö$ ÒsÔ~’&ªÂÞbâ~In^™Yö6-Šìª¸ÊŸ£–É/FŒRˆêa` ýŽçÛEi|à•o Îò$Ô³¬¥h:)=’kÇZvö¥6ãÁŠg|V'E´Úë;ÈRèûˆÊ¥^ýt\"ZWÉÊ +Y°»ânN'⢒¤ü†LiøKÑ[ºž!6bؘƒÿjnf¯$= + *™.Ӄ¹ÆöK›vIöchP÷*%Õz˜Ùډ,1-ŠpGsÀ¨ÀDì8D±C7x†¡&µXš¸Ó8e¸!j5kLÌì4ð–Y›ü Ä·&Xqˆ¾ÏY¿LA)$•]€sÐ_g‰^.®[“…³Æfx™ ×́{’sÀÓHqÌ ‰® ¶Ž£¿Šöo¶“à݌ǃ KåúˆFa­a)1$PoגיDO̐Ѹþwèq?0$×°›ÑñÞ®xYZòNÛâ8$ôÕ8‚ _ُ$ý`‚l·cZÁ­6Ÿðݐ?ÝȇY´+û0šH5z‡á‰”kQ}Ö!•±¾~QQüýº2ñ&P{BúcH˜ó…|ó7g¢zŠ9^sy”×lïÎ÷Ûïä­u^ÚA¥ œ;ÊRâckUó>®)’§‡¬vÜQá 8ä:oV¤cƒñ‘ÇsûKèÄö6û¨8#7Æ>^nNk·_ª<wÒ*>ÙÜmç¨Ú¹3¶§Ú"Ψ­ÏÅ¢lÝ`ª§ÂÖ D#ÔýÊîö”¤Þ£7W-ó¡#Ôã›óhŽöî<ãLÐqf6«Ÿ6@”ç0}¹þª•ÙƒÄiÍÆÔhâ­ ¶• Õӛ—“RÃ$÷0Ùa–pž’s–¬—T9¼Û˟ú sJЫú’lO¬˜Iùw7±A8j^Տßork‰lèç17øx&Ôäe¤Üñ˜‚oáó U°¹d!SQ2ñïb+¬Ú(k…m\5†ôø/ÃÇÐ>ÉDÎô:G"DxA4 >…¹èXò(² â× 6b³Ü-X>ù»à®Ä*þ'qÀk’xOºäOXÚ+ë{è5íž| fP|~NE‰ãÔz®EÉy?¬’|êSãä-Æ2¢<“3¾÷}îñôÌ=ö‚‘`·[‘ç~³£´#l²é®Üt¥ÑG¾—P«§ûj_º ëœ_ÓÙß·,ˆúÒò›Ÿcñä®n±$kŠ“aš†³²ÁMê=U¹lMíQ‹÷"g¾ñɆ 5iЉì5Mó%7R›%q£þvÞLýS¹G˜[]]ÕãMÖÚÐê vKÍsàw‰ã>Èõˆq|Ç + 7épÊL=º³#.´®[ÑÌCjϨŽ†^wÖUOl’Õè€Tv·CeúÚû¤½Êöè¶Íÿ]òŠj2Íã0–uuFfÆÕ±®ŒÊªè:„AƆ"E©*‚±S¤¤'_ +!„ôZ:„¢ˆQpt±Œ4»â7Ÿrv÷윽Ys›ÿ9ÏÅ{÷<¿óžFràù׃dË+G1 F†~ /b¶m1¡&ªÂ&x“¼Æ,Š ^ù LtZn‰·D<ót"Œ„7º4Æ"¨Ž»×£.9Ô¯¢m£-±‘6§ñIq¬5£¸±£•5.1gù)œj†‡ßé⬌¹»ã!0ýÊOD<%në…{?ns žˆ³þû±Èê8¶Y°œ…£F<¼p ›œárÆwPq’DºÃ!\ üˆíFìÌÆKA®´^‚…¡ZØŨ·ËØ èR÷÷ŠíœƒõEÝÙᏥ¡†l±a¨·¶«±óÑ?ÛøaZÐ뵘lt—U¦³tÅW˜zŒŸ…þ‡ðs1¶Ð͘iea1Íâ¿ï½§MŸ1ó«¯g͞ó—¹ó¾ùv¾åwßÿ°à¯ ý¸xÉÒeËWüm¥ÕO«V¯±þûÚuëm6lüǦŸmav¿ØovøuËÖmÛw8îÜå´ÛÙÅÕmÏ^wO/oŸ}ûøôó?tøÈÑcÇNž :|úÌÙsç/\ ¿u9:&öJ\|B"D¡1X Iä¤dJÊÕÔ´ôk™YÔìœÜëyù´Bz£˜Ébs¸<¾ D(K¤2¹¢T©*+¯¨¬RWkjjë´ºz}CcSsKk[{‡¡³«»çÆÍÞ[}·wîöÜûíþƒ>z4üøÉÓg¿?ŸxñòÕë7oß½ÿ0ù´˜6múô3fB|=kÖìÙs æΛ÷ 4Å|KËï 5~Xí±p´Èâ%Ð&Ð(Ð*Ð,Ð.Ð0Ÿ–ù<ÍÔ6çó6Ð4^Þûöûô?|äX@`Pð™sBÂ#¢b®$ PX<1‰’šžA͹žO£3˜l.O I¤rù¹ñO‰SŸ#?UB™P' +•B©PëàT;üê}ú *~>22 +EOL¼€º_½~ýæÍ[¨ýý‡““Íý g ,vó˜,òcy]âzFÞþlç(§‘}FVύPÕq㫪¹ØÚJ6©AÅ$µ*ŠH¹·$ÒÏΡ™ŠÙÁì`v0;˜Ìf³Ã—9¸zL2¼‚ÆٞQC|¼QàM5ð±›x§¤zA¨R+Œ­Ô” k*x½ŠGj‘sH%Ť^VaÒݼ¼´û¦r~…LÈ¡Ø3hœã5$؋»#òÈìú2›…'$ ’ó +,ª¼F‘P].ÁÖˤV!‡ØÉfoÒèDc&2`* ÷_'ǹ{# Ý°w%{2º¥>ŒÙaQ“*Xª¯ SV*â5r1V/‚¸\‚¡ˆôä2·Òèd£©L9¸x~dºŸœà»E ‹]0ý +çôÕ^z[ÙAKm€°º<¬L!¯‰± |±¥˜t䳁®,&p#…Aºe* ×aʁ½'pBàré±Ì }¯Ü1µ·zw¾AçÁÒj$ª²° +±,¾Ž9°Kͅ| -—‹7\cÝÉLâ Sy r฾íRꈼ_½bl؞ÝÒ°—U¡KTáU|YB[ŒÓ3„@S¾ßJåãÛÓ¸€!‰Cì2•)gOç|â¥dgسò­‰u¤þûôºzw®¬2PÉW^R³d‰µÅ\=M4æ +æ Ðz•Oh'óˆ¦ò7Ã@önOPàðJ¾-äyõæ¸áV;Lg·]f¹Î“'¨R±”‘j†^[(ÅëòĀž +y¤C”B I@l3o?å ÜqìM™Ãù±zÛ¨{·6ÀõöT©Ö‡Ï*?]FW^VÓˆš|¾.Gè2 T¡!YHl" Iͦ +~œ]ž tˑ·Õ¶Á:6^ìüm5ºÂàÃÕúò +Ï)ó”ÑU¹ +¤&GŽ¯Í’êÒ¥ÝU ¡>ILÔŤSKì` `›;¨‚m\¬oÀêœöÞjœ¨c{.]wˆ{]}Až][žUŠ¬ÎTà5×䄚T9±–"#֑¥$-QJ֙ +(²…R;×7µë¼îõ®òn^¢°§ìœ†£¬ÌÚaº:VžVT¥•áËST@e²’ &—«‰ +’PkL”l‚ëvw¬ØÙ6´Ô·ì¹U8{`>§Û5#½õ8-EʦhcÉ5Iƒ–jŒ ¯ÆɱUxº(EU•¦Ê×ÃÆ–Ùu=X°U=±ôï¹uxî}{tjŸG +¹ó•Øš4Çaã™(=œ¨Gràõ(n‚Ë×âøqZ¼ÀTÞi–­ííÿvUí肝Âɇ F7†¤ :&|ðؾ“ôÐôĮȬ8CLNlG\nt{BÞåvx~T2?²]ъ¡™Êíî¹?Öÿþí:éäB':¸ÚÿÚ û³¤§n‘èA¿øýSè+ý€Ëw.‘"nG%…÷ÅPBûâRBz®^ìML½p‘zþ&*ÍT@æ–õ ÝmHÛïÿ®hÿÙæØ‡¬ƒDcññì΢³¬&Z¤T_Wj ð5yI5•¢­LOї§¤5«Èm + Ç ÇÒ»Eèâž/Åì`v0;˜Ìf‡ÿË¡pŸß;†Ï™Ö¾ØA΂‘}„ÚUÌl¦‡Kôô8¥¶SQC#kÔדtY”FUÚÕVErºAF̾!ÆÝâb7¿”ÏEŸ|üÞ{ŸeûÄ òöw¸þYÝ쓌æE‘¾8¦TË@VÔ4U4²®<7©I™Ii—¥¦öˆ“²û¸š‘A(êýRþí@÷öûƒý: j:¿ã8þ¸öÑÎvÚ®ug–±«Ö*t´âE@EQ‹€*—r ëŸ„B’î;ä !„rI†C@V@Å]îºŠÝ_³¶µÓ‡äQøàýü5ßù<ùnˆÒ.>—¥UßWÃ/)³aÅYØ/-Ry%•F·¤Þ2"Æ  InK/iÜÈ"‡tôY£{¦p—8dþ|´Q\ĐxÀi'6Ä©/ä©U÷Uiø¯5ÇÛgÔ§ye¾bLYª÷(kÍe“Í&‡\1qÜ(h©¹-³¢®ÎEv;w©‹Î›6 þ!5kC‚(x¡H¹ö@ƒÀÞÖm›ÕäNêþ&וôy UF·eÖaœf5n\+#„$Ê,—Û¾Èìá.µwò¢íƒA€Èڐ&ç¿T%_}ؗŒY6"ès¦ ö”9G°ª&†¯jƒ æÆ¡ü½R9a²WLšé„éót~Ï-‡·mï ‚ˆA˜’õNv$ï¥&©ò‘! ½2p„¶0t¬{z$›?5Z uTj¬–º]Ä ÐÆ`9ì–Âtù& f,Üùhâ؈!á%g¾S$æ½Ò&T<6n¼cK /¹ó'z&¼ùbÛp¹Î`F*õ§8bà( @‡š¢ˆH3x!}'ìŠ: yo8ÄI™ÿP&\ø»þPùËÁ†{ÎCÄå@RËt(³Ûéɓ‡ÊŒ*rH1𵐗¥‚&ÚäÐd³”x'¦McȨû`$fü >”ûm|éSÛ~䃱ؕ¹$Òx0ƒmq]Pª­e&‰ iƒ#ŽeF6AWB~’œ8‰“QChiëT´ɞ <|ÈÚøó¯ö]zîÚ[u*¾nz!žb÷gôö9òԒÁr3lª³q X«r3"· © >’’4SPh=m@ú£áÐA 8 {ϾŽ+\÷Ǖ--íFŽÍí§Ç3a™£@ì4³Mõ6–;Ò©'¸Zûª–8JԐÆpjŠ­j6 ÛDƒzßQ0°'ûåè®ÜÕ¹=Á»;QÖéøv…ï„€ï(ÔôX¯™ºÌ ÖN#ÎÎ0-z¢“¬#¹‰}Íœ–2ŠÑÒ¢Èÿ¤ûã>ñƾ#óAhûÉw¶•8Vw 5áC°/[Àr«:mU†5ÐfÆYéýÕH´7H‚žìÄë)N¬ŽæŠ6 øS PÅýX¶'>ó}™<·¼5Ó½þe©~y'NNdtOäðÛݗdô‘jM‹ ¥§Z±ý̓x3ÁYðÄA¬™dE›ÈCM&ª-ڀjG ÐoûÎõž¥Åßíõ>ْm\©-ïÆuÍ ÚZƒçÙTßÙS#%º”xG“;‚Ñ¢í8]ã0^ß`#ê‡Hƺ¡æ¨š¯b~Úºãnø×øÙAóë-9’õ¯*ºV÷¡ióéTR8· +–ö`'ªyM>¤ a¬ATçm#GђZVZãÆ˪ݐ¼ÊETDèÿÃÖõ‰_l ®}²mð»Ï’do¿8Ëz¶»”¶–PÝÎÂcò)¨ÙÒVdøjGÍT ³*„ì¾:YϪ ¢z*‚Mìò†SÀqKýPÔ}ëüôW7–öKÛ«Ov*Áo°ßm;C¹¯zœz­qít}ÝJ¦úöe¨òV©l±Š|e¡–ryI½t³žV2‡j)žk¢Íb腳ØÖh ‡ú“‘‡?ÿ|º«lIl»N^Îmz‘Qr}ý\Eå£üê+Š¯—¬•ÕÝ«l(¼[ÕXp§¶1ٔ¿Z‡Î[m@_XiÄä® ±Ñà¿üp“övôfžyÍ?qé)œ¼Ë?GZä3Ã=•‚@WƒÊÛ =T³«µÕê 2lvsdÏrÚ°÷Pì±¢¤Þzµ×E    ÿ÷†Þ Ç€—qæ5œYòTp +yOC¼Å»Øæ”ÃRéeb &Ùìl§[GhmÃÃÍÔí¶b9£ƒMð˜%ó”>]8îóˆ!pÒ€Ÿ~æ{áñ’g¢¬ëkâl’ðBÇ4ï2?È©VŒ±õžn¢ÙÙI³Ž´Òí6 +Ãe%2G-8¶o ûûQ²€¥˜P6n¾c÷ÀÇN/J/þF’Q»&= }-9ß>#,ê ò+å>n½ÎÃƙ,ŠÕЍ µ´z,Í>3¾'Џ„ԍ’´I£åþÍÿ6ôM‚´Óo$G‹¾‘¥×ÜWdáoËsÚf¥ùܐ¨T:×jGyh““K²Ú»)k[‹×Leøû›Ù“¢ø†#¾ceA>VØlï ¼ˆ—–„©Ùo¤iEÏǪ¨2p˪lúMe.{J~Iì—T©½"”ÑCƒvn³c°‹æ5µ3ü}-¬’"ÐhšI'ِ,¸ÙþkHM"Dö[YjásUZÕCM:f¥ïD˂ö+¬)U• +Ÿ²Nç–aìÈa␽Zfk@ÞÎ é¼0›,œî"IBL’tr³AlĐ øˆ N9õVžrñ…:õÚ#ÝQôª1ƒºhÌaÎ x!c¹ÄoDªÜjԀE‚éã½òš_ÀdLqœi&]8ÓN“LµS¥“›íƒNI’äSÊä‹/µ)WÒï˜ÓÉK–lƜ5==\[jTv]½Ù¨@(…WØKñsØm!fwO¸)œii“LÑÚ¤¡Íö?鑓ª#¯tɕOLÔ=ë?Ù¯“¨¦ï€ã‡9Íë,oÚ9̳³´tž‡Ú2ÏâÀ¨UAÙÅPÙ×@C6²‡¬„-!d!ûž@ BB6²BØĂQDÁŽˆk«§ãop¦Ï9ÿç4Ÿû÷úM§Üre²—½9ó¾*¡ßӍš›†ûŒ—RMð‹dÔ0WÜ:ËrçBÙ5*G1GëRÎBd; âib"P'dþh8^øý`Bõ–5yϕJ\ ž¡¯L¶Î„*nWÎ2Ò bÞß­¦L¶)˜3tç*E&' ”sd¾r* ‹Þiˆ²„@sìì?ûâ/=:Vùh,~ߗ‚½;{–´ôu15®àÛÆkµ}6¸EnA;øýxo‡bhéS$uÇ,N%œÃɕ³8©jª· òã'€îè™×q/¬qåO=Ç`›S)ˆÛËçг ù,÷T™Àì­×¨ísïÖÞ=@o5’-zê$^˚Fk¸3(l¥UAä?5(ã€!ö4°ÎÛv¹ò(_uw1­fáf:Þw-»}hâŠXë©ÓKvz†q¶®A²›ÙOñQŒÔ NϜ@ë:&‘zá$B/† Èÿ$Gc€*î8è?”ñÚz0û;ߗ—î]/ZZ‡…V’É#sY]°X&q×zlK×NC»™ìd P¶ÂGÚF¡ê½ÀµŒî‰ÞœÚ=¿¶;Îóø³ÓèjéÚ!,çz“5—Ï¥…+D”`ƒŒèCª°^ŒíÁé‘n‚á"áNJ£“f‚9˜0 2 ü˜?ÝóÌñÙâ­ßî}øɉÁí=y²­èΝ£Æòi*ùë‹m„¹JnóL€š„÷6M $_…še Aœ (êü$e­¯EUí£««½ Ȁáӏ^9þ±²ôþ‡þ»¢,¯>I–oGæs}YEßHBWÏš—‹hÈÅÊÖ¯®ÕµÃæ»ê朚YTwÕL3¯r×S1Mà—O“eS-ÂÒ)*d`ø¿[ŸûÕ¡û¿ùhhûÃ%؝ÒýjßÆÓ£¥„Í“õè\$|­[«œX½RK©¼Ñ@-_‚ÓJ—Œ’oЌ+כ™Å‹8VÑ"¡õò™]ø?¸üå/&—ßûõÈË÷ÿ¬ØÏ{’˜¯d_$]B?É,kÜʯ©¾¹¡üÛ2xÉF5¢x½uùn#ºðsé¢ùâ +[°†ÁÜÆâòoðy«DÈÂs?ÿ™íÎ{hÀowóÁÇ1,°÷8 Äf L?ßðCVAÕ÷yE%Ï +K.?)-¿ô¨²²àamUÞÃúš [5¹[ðڜˆºœȺìMtýùMì0¨€ðo»?ásÐ}*ðϜ|-ÌÌ.Ì©Ü ×{JZV¸u (álIneêCô6“¿¥Ëâ%ñFÆñ‚Q¶×æÁÈìn”j̍Ð;\Mƒ{“’w ïÞ5üŸ6ˆÞ4Ýq@pê$Í{Þ{¾bK”‡XQVxÕ œ&á\^fÓôA{ÀOëò’»­ã¾m§ÁîÆÈ.”ÚéBö¦ç0b’· ¼“±@”‘ħ/¼d–?”ä4mˆ/’o +ËÛy0Á£wõA6kÀÇloáŒzˆ=vVätbd.RãCô{,“Ç„4¹¡¢˜]@°ÓГ zÓӁ4#÷¥ìLÙ#yüž,xK|…}]XÿÊCÈÂ>ØA𵲇Çi6‰çpàDî1Œ|܎Òù,H£ÏˆêóêPý(@c‘€Ÿ Äii@–žûRqªô±2³ñ[eaU^ÈúFRÁ›6J§zšµ!Åäë` {˜ív'…ëà ½¶f…­Qú€mô)0}^(Þ6Rc$5 (Òr~P,y¢9ÓðwMî¶:Ÿ¹¬(å^“Ö‰gDHõD±ßÏ¡yØl»ƒÆñØÈ"ß0A4át!5F’5üblŸŠ· ”#@šœ +”)Ùۚô+Ou§`÷õ™Ø;ú\ú mqׂªZ4+‡+'Å8ƒ¿‡bqu2Ǭ¬NÏ ­ÇßG‘†t$턧â ÞèƒôFïÂ7 ÉG€,)¨’³·µ©ÅO 'ë6ûÎbîögSoö¶/+øWu²°£÷ˆˆ–Q.ml°½Íc`rjš($oQM +ˆš0¨rIF?ÿiˆ¢¤#@ž˜ÔIç_éSŠžõ¥×>8Z7g‘W-[—ÌåÜ«½ J?&Á[Ìü–1Ck\Õ֐°B†"Ìmф;[ô¡Žƒ + þ©¡7q§áD +Ð$fýØtù;Sj͖%qÏzŽ¸fÏg,ÛË;¦-°^¡Q`-}"ҘŠG÷HºÚüvÞ—- ·35Slº.ÔJ7 øoÉÃ@‘ þŝ5pŸNgÚmwº³ÓÙ±•Ù™mu»£ë±*ꊸ‚€Š¹/#7H äNH  Ž@HB€„\ä$77!áP¡ˆŠx¢EÐ.øo´vŸÉ[öáóþßOⶩ8—¸¦¹¹bD>±†æÏ÷ÄßîΠÙõ°«)Q‹ðÚ6AYÀ-ía×WÚj™LGU-o¸¼F7k1FjÒ@3äééÆ\=ۉï <ä„'¾Š#Gޙ¾?±Øùu×êߎ·oí à¿q¥¯xeP I÷Éøh1ênzY=‘Wu MÏÇÕ¦ÝÌg¦ŽÔ¥ŒÕ'Ý(e]-gCGi.Š];^÷üå‹É¹Ï>ï~ñ×o”[?)û µoOÄP^žM!=†aÇ à øì¹tRæl69m^œrUš4¥\û O…Þ%–%Þ-,O¸]T›B‹›*sÉ;ãŽ?MÞúôw½+ŸíPmîÜÓv{ւC)›§#H뉘ÕðÔÜ¥¸ëO¡¹)‹iˆ¤…ëhè£\LâC.á!ÿKˆ›'bç‰ù1÷ ‰Ñ÷‹HQs¥.™´ÿá·ýwþø{õϟï‚/÷2À·Tpü øc6ƒ#s6"âÓ×b¡I¯ )‰«©iñ+™±Ë°ÌèexVÔâzä:;â9þ –ŸsåYAnØS²KúG?ùvö“O›ÁŸÝêÀW{ÊÀþ£$àé…þça øR*½º÷óÕ¨è·É1‘oÒãÂ7²â¯lÀÂÖá ¡ëˆÄ˯‘WC^£¯†¬á ÁkhÐñš+óð€qf7¨ :êB|ëJÈ+*þu}Bæ2#½P“Cž«ÄѦˋ˜S%eÜñÂ*Á‘Ñ:Šg· c¥ChÜli·çµ)á +Õ`®FmË5©{òÌÛökï ÿ· ôÿ5„ÿ·!>s™™Œ^ ÃÈsUXÚt™9UJ厓«šÞ7ŒàYΆ™-PØß7 $*gƒz0W«î‡›Ô]yÛ÷¡él`\:XA>€s9ø7<î5'&c™E=ffÎÑӕDædyiÃx M8ZHë¥6°.¼à"4F½m IzÙžó¬9ÿ°)©d¶1»ú źŠF+)mjuû@a½¶7Ÿg°âDfFiUcԝR¬ÚڊÓX„x­i»>6|XþGÏß/@@+$âßâ k¯ÄaÙÏÅÑØQbќ0ƒö/¯n‚MàÒ‹Åí]%µ:c!רËZTxY§ §êjq4ÖF‚Ö¼]XÎöywÀ?çþÝ=5a'ïÎv:î´u»]»»ãŒµº¶u=©¢«,‚"È@n9 „$$!„+äàÊEä€@ÈAHGBB€p„„EA.±"( hAÅ P×뷙±Ó—}ÉЇÏûw¾ +oPùE¼i„­·„ ×ԑ9Ôq‹Í©¬[ üq)Q<\UØh.gêºY}‰°WS(35Qû•EJÖYj)zS µÝh/PókƒÈë¨ó<”^~ É'ü­Ú?aS„|¢‹ ¬´AÉ :8}F/¿RŸ+¶ˆ¨Ý|š®­Œcha +Œ 4±Y^¬´H‹´ÖjªÖZU 7 +Ûûìõ[C­ç1 ?w¨<}A‹wØ{­_ÜKýyēŽðŒû]Pâm¢p\‹+¿Ø-¶ T酟ˠäðŒRVYĐ[…tõ¯X;À-ië¯(iï³×Ç7[Ã9GPïq4zøgè‡6ŸØÍÎ@ø£ž0Ì=4kֈ \ÕcÊ-M±ANTij ´Ê*†AÂ+7V— Í|¶ÌZQÚ4Àf¶°mýl†Þd/ ²5ÔØÄŽ@áî +šÝ½Ö#ø]‡w̋ž€¤Usri07mN¥ w¢ËŒ|­®!W¥’Q´RQI§°Šcä fWlerUôòÖ:Gg¡³õ&{ýÖ q? +”n. ÅÍ ´¹½éòŠ|fò0–rg$u͚B¶ö 8†6œ¨¥9»A®$µVˊ:¹bVoi ÏLŠ,EUŠ‚Jí@!Og)ªÐ›íõ±áÌ@êv4œ>4§=A‡[À+£gøÚ $fy4"nv,9r1™ÔgJcë:±5J-AYÛLÔð +:J匞Y¹‰*©îϗȭy­5¿Zg!WêÍöµ¿6È΍®Î@çâºÎ@6,ÁGüÃîÎD†OMBӆF`ù+¢´Ù˜^-íÄ+*u¹j¶š¢/i¢u‘UcnC¥9K)ëÇ7hú³êÚúsÅz³½€ØÖ ²5È]ÍÎN ÝÙí­ÑÅûÙ°;äÁTd~>T©J”4& *íêo‡w‚Î}»Ÿ ïÙuóö?¿»¼zðXï‹cÞêçΑ’ggS¹+~™ô¥P2u.ž–÷3‚M˜ÆVà&³éãÄ*ä¥1Z,‚_eˆ“¯°%I#\iâˆP–pYRg/Pphý×ö×ýßm¿sãYÙý}ïÆ~'õkGˆä•s4÷ù¹Túj`ùޅ¼ÜX~>­3‹e¢n؈™¼2ø4¹"yª ›¤ñ'™‚ø‰²Ê¸q~t¼Zh/ Úû5èÚùõƒkùòêƒoþfÜصOýa¿‹8ús߸FÓ_ø$“‡¦ç¬@3qË°<ôR ±€¡Âïd%Íç'ÎåÓnQéq·Š±³4fÌM+úçòÒ¨|¶½€îÛÏ׆·n›û|‹qý›íj°ëpå‚ChïÝ#È/ⳟ_€c×bQˆG0lÊ +û%=+á>>'n9;7ö^^^Ì=1ú.5?j©ˆ¹D'_X,¥D,–QíµnúòÓÑñ?ýÁtÿ‹/ÔàïßJÀžÃ\pø œò&ï ìw!‘˜×‘±©±0؋¤”øgˆTèStZô*j€Ž|œ“ñ˜ˆ D„=¢bCáBÒ3‚WYx{oùÄt}Ë5›[ÿ,ÛwòÀéÀñ$ ¸Í4LBÞA# oaQQÿ…Ç\x„†¿Âą½Êˆ}IHÙÌNÞÌK Úȇß À× “ÖK’íeºúÙ'­sŸ}*_}Å;vÐÁ¾½$pâ¸;¡€ï™$pþ\,÷Ž1~ Á?$Äù € + +˜à€ ñ™! +9¡~òÂ|?Â}ÞSíØ·‚R—€éwpƒÿøá^@òž—·YH{ÊÆVDòrqQÉ"…Åž'VpoåTUÞ$ÔVÏdÈD×±Jñtz“t +Ý*›Bµ×M"{ä“i–ú1äÅúËèa¹=~oø½áÿض†R[ßÖ ó•Q!ïñq/¹ð´§e˜ÌUV.y™VH[(`²çIåÜÙÜʪY¢š¼L<SJ§0Mu“èVùª£~Ù«˜@(® ‡Céö[ÇÖÀñ=着0Ä#‚?¡±/0ÄS.2s•C -3)´…bgŽÂáß$ò…395µÓ©t2C!ŸÀ6+ÆÓµÊkhCÃ5”Iuý?Fç;ªé;ø»×?úz½Ñ{w½ö]-¯ï¼³UÔ§U‹ ""{*(CF˜ +DF$L„@ Ù;½Ç/‰d:!á¢Zu]õ{©øwþøüÿT •*Üïʇƒ FfflÀ9xɉï¹éY¯Ø9EÌÂÊG4vµ£ž¸ØŠï˜?ÛƸÞ@çÎÖ±…ÓÕBÉÕJ¹|©î/7)ǘª±²Õb@Ջ<¯†*¼óá@ñèž;Îð€ é¤f¼æe>å 1KêWiÕÄE2®c¾¹•9‡£rg0]¢«µÙD•¬g©Q])·¨ÇÊܚd¿Æ]ѯµWöiMU}:oªç@õ:£vN¬?ćѱ£@”œþF˜qê?±Î.ª[cTà—(˜öy‘1‡oçM70œh~÷8J¦«Ðh.#lºQDŸ®¯Ò­·W¹õF”[¯­öÎÇ3j;àEïÂØ#@’¤ÇO¾•¤<ÃÊ~œª½Ç.;»ÔYKžïhêœk&ñ¦qtÉd=·çrT}¡J£ª°ú+zPU¯ÑX}Ψ®9gTÔözÐ<šçйð#ý€8:Èââ€<1õÝ)y/ä™%O$yÕ„ðÆevUëm:–>Cnæ^!R$£,Å@½Pë®í18Q„r™ Õ.³ºÖeîF»ÌÒºs&o|<°#¶A„DÝ1±@q4ù7剜_•éðNJœÊ5yvATÑ<ËÆPÇhxî0‰,íÃw*\µ^j4¢5]­ÍªD;­ò:§UŒqZ—WÝs ÿ~÷ÂðŸ€,â0PDÅuü‰·š¤¬gڴ‡ÚlIJª}³»âì8Maâ¸îŽ)ÔBU™ð,½¶QdRbÖnŒÉ&Á8ì¬ÃÆmpZ9.‹7>8a¾@ºȁ*2 +hc“^ë3~1¦Ü3ÁJŒE¨i¢é¢¸†ÒÏÆr!:Aj$“Uê†^Nà›ÅMr›§·s!ˆ…ƒìÌ&§•Ñä´xtþ~8踡ۀøÈ>Ð4á‘@sìWóÑ´Ÿm)9«PVÑ-kQŸ¶¬iPŽ¢8ùõS×Y©šFRÉÈ4½°•cæ4Kl] ÔI°C4<Q •à´zãáÓsàÙ¤!{2ä Ѕ…ÿfŠNxfKH~èJμëÎΟuœF^4”à܊Ê«ÍÑp¥rf³J@ëг:ºÌô6‘BRBd’ÅÑÖ +Am-[[‹Óꍏþám@¼¨ChØ[kdì†+>é~rÚÂ`vöä¹Sˆ!ËœCƒìÐËkØÝB¬DÈÅ+Y]d=­“a&Óø¶JD ˜„;Dlw؛É›7cû_Ãsoò æÐ` + y툈zÜŸ°6š’tk4 6֗è³7Z åí*Š-–ÕKØ¢&%×ª#qèfB׆cÊ¡¦Â2 GƒìMT‡ÍÂC?€žƒ».ÈX¿è [Ž‹ZžH™¹œ‘5:˜Wît6è­¥d™¾’ÅU¡EôîFIҬŋ(¦ËZǗØkxZ¨šÙÑ,‡­žé´z0=¦ç >ø=PØŒ~„?‹Y˜9=1žžy~4§ÔÚ«t–V$“a¨¶i°Ýx%Aé!jäLs¥LdEÈÔ¶r™ÃV!tZQ<§Å Ës`úiÀ öß ,{߸÷?¹xÄåÚQ¿ë·#/N§e¸Æ`%º‘‚zÉyx+ËUÞÙnGññ–z)ÆxVY­'i‘ºNC©V`‚k•æ"Ý|FyÎT&ó`yÜ߹߁î'_ùíz>°ûÞÕ#»n/Fï›\LŒ¸‘zÒ2•ïËCs/)ƒ¥Tb%Ӌ¡\8y¹£U ‡èšBˆ¯+€ú|Ȫ/°¸õ…:ï¶ç ðß{7ӞÞ¸ÜöhÌoëí;A[¯®„Œ,ÇÅ8NœÔÞÌ(ÎäVÓ'O7µŒ•±—*¨ µÜòœ¨x¸UzjˆÞ;ÄWdõ(aCV%l`P™ãPyp<ñ¾õîï€}ç捑ÿ^¼±gÓՕ€ÃB‚kQG5wãa…gèóÕÍ7òpØkÅ­¨Y¥lª–ŸhdŸ¾ÒÂË¿Lä^b‹²/IÄ°K§(ãâÔ€ç9Èw} Û¿yÝ÷ý7«S[¾šZÞñÝðºßh=(Lý0ì¸ð~l.}-±”¸’ZƒYÊn@Ý."–ß@´Á¯ÕP +gèSDFîd{Wöƒ5ÁãdŽË¸ã:nú8ä ð”¾ÿо\¿¼éo3K>^÷Ý=Ý»_½%ø%4…ö$&ø8±ó ½ªj%·¾| ŽƒßA +oÕ´äßĶå^Ƿî‘:²f©ÔŒ&íä Ÿž6-ïLÖzH|ÿ ›ÿúbð«?ÍÝùâӑuŸ¯¡—[}U¯ö +^ÆÐ^…¦_Æåb6’‹QëYˆÒûù¨âU8úÔ2“¿Tݘ³ˆi‚-4á3ï4Òo“‰'çiÍ©·ºZRn +Z“oÊHÞÊ͟½sþóÓ¹©Ï?}ôÅçöW>ߪÞmÝÉ¿7ˆ +‚bˆï#’1¯e¡ž§”nÀŠ ”æ?‚#s"*a÷Q¨Ì{u5ék µi«xtêJK}Ê +“¼LÿËjHºË÷ +0}ùÉì…Ïþ0:÷Çÿ³[gAM vÇít»v§3ítÛљvZuÕ®]ïÕu‘Cî;r†CDD @ !`BBHHBî„r;€ \BñÀêZP´X‹Šnŋuåß Ý÷ø؇}ø¾f~/¿Ÿ÷¾ùô76Ø°Q Û÷ˆá@BbhŸ\ñ™Y²œu¬èun^þR!êø lQöwLÖs6ó—±H-M{ÊÀ#ŸÖRŸpËRžʒKʓÄéÖ7k׌MürMßô'¿°Áï?ÕÂg›Ä°kúS!"œ q8@&¡ ™ûþxæ±w¨¬¬ï‹³3–KsÒޖG¾!禼®:‘üš–—ôŠ‘Ÿø²® á%§àð’…X~Hç<¯é½¾vmñWkaýïÄ°uö~A…ÀýDˆ +(Dh>¤FåÀ‘Ø,ÈA¤C~ÐI)€óžo|J"”§&‰€ª´x ¦Å­Ô¤Ç®03bÞ×gF¿ç}P½ã­±M}ô3-üz­þð[6|þǓ°oKî@Cø—' î룐éA©’¹¡ PŽtD`#c¡Ô{xÊ¢¢ä˜H¨Š‰jl80bÀ÷!sÛ'À<¸jc¶/q/Ӄ@” Â|ä +¯8ç-» ý‚QMxFeU>¦ðiHRæ|™Šý¯ãÞ/1òç°ÖÆ{—ð.ºK<[Ô'™-<+™AIgPW¤7 ¯K¯¡ÿ ÿg–×ÀŠÞ +‚„½ N ÉÑŸH]iDç¼åâÑ/XÂ"IY¨æÑÿE–°æ‰Mœo®Ô(¸‡µ +g‹]âYt·d¦¨_6]8ìí‚|ªpR~ =)›ÀLÊ}¬UÃz¨ÚÂÃ{@† yf4HsRAŒ:öVPRô¢¾‚°X[CY qè«Du*ܹr­à.Þ šÅY%3X—lsZ~= œ*UN^išÄ\U^,¾Út{ÅgPç5Ôy ÜÈ- AìEr(Ó£A‘²¼ìeQqᯜ°È>IY`ÔÕ<<)`?¨”ñî5ÂY‚^2]b‘ßÁ¶+§0gšn£Ïªn]T_Ç\Vc/«=¸Ëš³%>¶×Àöx[@¿šýA…Œ‚¦#I Ì=º,-B- ñøg ”ÊVmÍ<Ç¾_%áß­P‰fÊZewJ-ÊÛ¸Õ?Š{5·Ð#Ú˜ í%ì„ÖSr©y°ô’®ï»UC½× ˆØ Š¸Ý >ìšäФ'‚úXÖ÷ʂ‚—Rlé³FyC§Ï×rØsT¶²I†¸0%Å­˜Ò¯ÙǞëóŠþ݌!ÜW’ªîˆiÌë õüKÌFÙM¡vWéZ†ÈfC?±½­§¼ßÜ]>jq‘F-Vò¨ÅTyÎl ø¸?d^ƒ6bè#¿Sl0˜bÞY‘ÉK–¬£O̹ÿ4¢KftDòuE5s¼‘É÷px²!¦DÓGS·vWL•v‹“|Új'»mm•›¡ÊcÕUZµÕ£_­¼EÈ&ЅmcÄ~0ǁ õ֑’øܙ™ñÈyüãW퇿kž:nv}Üþv ásv$4¢ðy4A֏‹K磻°ž2ùŒn¶˜ÔÅÏÂuJ¨ÎüüÈUaDG¥2¬óª2´ëž2ôqwQ؃®º€RÛpaÿWPgòõ’ú‡M/ú ×uL˜nmÖXíiœµ³¬™vu:3éí_0%yN䍡I/ˆÉ´Q:‡8šÌnj¤ £‡%bäPž,|ðTvè@™¢ûÖɈÎ^@qñ†«;$¸¹ËÝ8ΐîáBOGhO©ÜÛòtºòP_¯¼__ïäò—úrøÛ:!͆Ûi`ù=lŒ£Ài_(x1÷¤¥Ärìa q²µ#Ьó¨$ÚØÛƸ¶Ç ý˜ ˆ´$vº@²±°m¶³dx™‚8Ð$ö F{€€¼8ä +;»œ("½Ëa¼¡)^STÉó±çSæ• ¾–7‹½’ö +Ә>ƒ¾ÉŸAµdL£ ¦búcè!Á3쨠÷bUÿoø³¥m`kRŒ´S2i€ÈÂí@Šò1Òȏ©lìr²ü>>›ñ†^˜¸@=͚#KÕ+¸³øÚ´W¸+ülcÆ4æ–`}_8…ꎣž‰†1C¢§¸Q~uÀÖ6¤hxŽF ö0…l? È µy´;Hñ ¤!?ò’°Ë)|ò»$YÜ"3?ižVœ¢¡œå¾Š­HŸ!ÖfLãë„SØë¢I̝ÌIt«xÝ#ÁŠ{ðÃâv¤MHù³!ý¸!ÈÜM@0‡¼cér¬?HÈ+ñØe.—üŽ%f¾NÈMžcœH¥–¦Í/dLk„“„ºÌ Ü ñV-Ç<–¾ÀöIûðÏ¥„AÙÃØÁ¬û±«‚Ô=jµ2 !ÛÍò}ÿ…A¶P€t…<´dÇF¬d20Ëé)ä·©Bæë$9KÃTr_ÑKøӔrádlMæ¡N2ŽÿYöےõ۝=€Èî$d·Æ>“«Iý9wÈ«û_GÛ ²7…ë^Pú„6Pæ…ÑÈ%„¯È¨˜eaù-Ï\`ËXšÄÞLÜéŒ)jYæ©Fú’XŸõþ¦| ך3ŒëÍé"ö紒újroî/”ÞÜ&êꀣmàjÄv;!ÏÅNz™A1ŠƒàÒ +1¡+¹dÔ)“ôVÀaÎsÅìYV.o*¾X0N?'£TgÄÖå<'ÞTôZsŸ{óZI=yw)=ù?SŸ4О\¥¯¸ÚžÕÛ …ÎÆpÊã¨|Ž€*ÐN‡{­£‚?(‰Ñ‹ +Q#eÇMeX¿qåiÃÉJѳøRéSF…¼‹z9·ÜXÐFR¶’º”w©O”M´nåUzwÑOqÝÊKqOVgüþKx}E5åqcuÇî(ƒ:ãŠÊ¢2à‚ R¥‡^Œ´P)R @JHƒôC¨"BE0 A\а ¸êèg–ñnև}ŒŸ÷ï9÷üï9? ÷^Çÿ!HŒyY“‘ô”ŽÉz@-ÄüF*#ÜÂ1KÇóøcH9}¡b_ÉR×h2/s/gÜàõfÝ䩼 97y¹7¹ HóþßPå´ðÝö‰ça ÷±ŠçÅÚ0Ï÷Šè€WRXä3aìA *ýv=A)%Þ(¢‘¯âj*5ybf?ª¾¦7÷¯ Ñ+è@\´åMHƒ@‰2è ¾ü ÑÔPôã7€á¸]÷™ÇAPëeêýB<Þ*#ýæëÂËáq¿ +ràì|ôh%‰x…\Né/bÒzð|VVÎièø-¨¡ +5(n@éÅ +Œ^$͉°¡k˜ +÷­$»€ub»î +wk ¶ÔßdÎ߁z×ý ÉÝf¡ÍËîú¬ãóî0×û]1>“­ç£F•é)Ò\d7KheR«¨UŠr:[Dáòx%2Q5I%euÊè¤aYI+£‘tÒJ’^ü%Ÿ(G-÷¸i÷þl \~NúSíyäU¿ý“þ0Çß.FyëÛa‘ÃM𔋵d»CPq d»”&¢Ó؜ʳL,¢Q¤ådµœJÖÈ)­ŒBÖJ)d„B֋Í$SCÙ ÀwØN»Êyߧ6×Æ®Ó6/úýŽ> +q˜êôëJˆhMIîlÈÊm–£ðµ"YÄ+¦qªËÙ &‹WQ%‘+ë¤Å•mò¢ÊËòÂʲ¢ +­”T®“Êõbs@±©¡ÂÖ¶‚º»@³ÓžEµËoûÜ­Ÿùº-Ð~b0üÌÕÞøð‹ê䤶挥2'‘ç—rą• >•UÎepKªyÂB–B‚c^å3ûäX–VVÀÐIqUz1þ >7Ðþ±ˆí·åO;Aë‰ïºö¾tûþé¨Ï÷¿Žùÿ¨†zöÇB;»›~ICț¼†¼F-¡¢LZÊ,Ó8G€åKÅ(^“4—×#ËáJ‘]­cØz‘9 ÄÔ@·Y¤ö›A£ýÐî°ë}ßO»_\;¹û‘ÁÓê–ÞÏnäz˜GßPLhÛ%¬®ž%lÏƲ. Iå*\Y±²˜Ž¯«¨Æ(ؼ™X˜%m§K»$i²k’ ‰^œ-!øãBs@©i뱯 +Ó?Õl·u©ëØö·ûíÏô?ovµÔßô9ªÑ†¸wŽD«†Î%HúS2ª{31ÈÂâö| +®µˆ†n)c!š˜5é*!/µQ)Hjì&ª†…I AªÂ €Ë |sÙÔPsp¨3ÝF›í¦…>›M/Gl|tûĺκì¾>ímÛw3È­U¨¸ÇN‚Óӑ¥ý98üżbt±,»‹Bƒw2˜I‚j˜ºž¯Vsã:†L&9çZ&9°&óÕÔÀ·^ MïÑa½áݕ¿ÿíɤõêé‡vë´Oî¼ëeÓq'ÐEy+Ü_hˆbhÏ'“GáÙøDzCȺB(kÈÔÄAzE¿*f Ž5ÐΌÔ0"4ӌ¨Þ)ft÷ËPnjø´Xû±o]+o?سBû쨅手e÷ã36Mœ$³Poö(u +vŽ0™š†žÈÎÉ2`òRõüy=¹0^G/‰Öñɺz*T×N Ók¨¡ã·©a#3åÐᙠ+sÝr%¨Û¿ +¨­V¾»ºeùÌÝ Ë´Ï÷¬œ?²¥sÎiŸê™Ç1ñߓ¬ÇA¾Ô‡a„ñqèûÉI™w3ÓSY*v†œ5Ã(€Îð¡³õ„àY51讆toŠ4ý¨0xòQ‘9€ûírÐlµ|±ÓWӆuís‹¯^ïY§~m»³á•ãÑKwæ¿|NQ^ùáç#B‘óqÑés‰ç’æғæi1s¸Ìˆ¹’ìÐ9ZnÐ0/GûÏ·`üæ{ò|ç®åùÎßÏó{úcn[:6-›º¶2vk-äò»oV´÷ZÔm-…FÇC £ûq²Ñ÷Þâƒ4F¥c͉ÑqÆ´ø(c jÄ&†‹Rߕ¥ž}ËLó{#Èð}£Èôù½9Ëû÷®,¯×W²Ï¼3 ¨, Sý«!×ÇVCúfi´}ؼªîþMüG¬è‹N‡K?z8à–üOæ.{—Âý`Ÿbc?ø[BD/b¢>býÿSç»P™àýoö9¯¿„°3)Î{þ©J<ý¾#Éã}Yw:W@F4« ÇWAZï­Y¦Û¾æ‚ý[hÀΪ8,žvàë˜ +]Ô#ÄxAÌ7¤ú‚Ì€³èòƒ}@aˆ ‡zZ˜`CÝ? ÂO-É"ܖ#Ý>6›5Ú·Ò;²Ò2µ"{·þ+øvM%°Þ\ ì-±Àyp·I^vqàìñˆÿ2_gQM¦gÇ9Ž=Ç¥=Ggè¨ã>â(*(¨ÈŽ¬²;²H„„„ìd%| ä ,심²‰ê@EEœRµVOU–‚ ‚0Ž‚l*Žöéw¼o®{ñ»ÿ_¼ïó¾„;‡CŒÛi zC¢g нýíã|_Hõóù)OÈô÷m€;˜Ý 0Èʃ]¡Ê¬Ž›_Y4õ®²(ùÊ"6¬ÒÀö5p`ƒì63Àq' Ü­ðàc‡~„3‡ƒ!Ê>Gý þ¸P¼€~Â؎Àwr±³+ ..€º:ÊÍrÜN@¾»šuᎅEùc ãô*‹lظ +­àÕzÜHûMQà´õ xì¿Ýþ²ÇÂözAÔ¾“€ßïDkW p†¤ƒNÀ8t8‡@`s$¶Ç@fkèa;P±­Ylµèöë€én "¿b HäQÆºˆêù¡…±Œoc.᮳cºÙ‹Ñ÷9 Ñýܹè1î¯1“ܸ—ÜÑسþ?ö` v뀍5ˆ}w²äG!¸Bj¢/ðY¡À‘DÅ}¦éˆ¿S +È+¤³Ô÷ñ5ôwqŒåØ桍½ˆ»ÁYˆéæ.Äôð棇x¯cÆy/q“¼1Â4o(v†7÷¿kHÆx®– õÞAûAn8ìx‘|Aœ +‘õ“Æe=ä1ùíıô.êóŒŽ$ó€³{5p°¹Ã× qÝ +&+ȶü0ȋ9 †ø€55l eãæÔ„ßÄJÚtJ{’UÈK®?Mj>¡´"ƒäkò>ÒíŒG¤>EOâsE7åڙôý+í©ò2Ý<àb )‡×ƒâØאãòä{ÅA¡øÌ1(Šrû˜ë·hH<=«fDÏ ÂøH:í™XÃNÉô±KS2jd¿Ðš2îSBïQº”w)½™ÝÔÑÌ봑¬6úHV+c$«‰ið°í:ÈÄþÕFç-Pä½Ê¬¡,ÔþSY„Ër Þg¶€2m¤GŽkøq#(BíC²8Äzáý”Bé]NEz7³½•Ü’ÕI¿¦ºN¿£î ©/3†ÕÍÌau#kX]Ëy¢2x»VƒèÐ:ȶßyΛ¡Ôk”ŸÚ•Á‡?T†9¾­ˆ>ùk1`¢0)쉑Kx¤’P{ +Î]D#ú›Ø„t +J2:xՙíœ&ÕV›¦•ù³ö"ó_ºóìëê8CÚj‚7¬1R°ÉÁuØÓ² +œ6ÁYÏPå»÷sM ÍÒ¹½>÷×Éj‚ïèYÊéÇù,BOŽz;[ÆéRd‰:½¬MR h–g7óë5¼V]=÷†¾–{__ÍЗósʃºbÁÖàc ÒkA‡í½ENßBv?k¼÷|¬ó?0ßj7Óá8ÞH89PE +í-aàoç¦Poꤜ«Y¨ø²B#k–å¢ ©¥ÙçÄ5Ú*a³¾\pÕP&¸k,ö +Eú|ñ€>O<¨3çKb½ôXC‰ãŸ¡Êm+Ôyî~Þoߛæ`›©–°££b<Ö&„ü£œŽ»UÈ¥\5Š9—´é¢¦¬lYÂ€VɋTgÓ*uÅ©ç ’6cž¤ÛdJí3¥ýFƒt@Ÿ“6˜cv®ùþµ`°Åö^GK¨qݍ;—š}¬^] +´žh;c;ØåÞÛH é®NÂ]/eS®ä Ù ˆ¨V«”UfëÐRe¾ª ã¬Î$¯7èe—MZYW®Fþ0W-ï3ªåý•|@oΗ† lÇ1a ؜ªuÞü©ÉmÛü%¯]ÓíþVÏ;B=ºévïB\pW-%¦½‚™Ø\Ìg×åKE•R¢S£y*“ʐUªÓ(ϲѓíÌEÑ_0}&í7¢Š½9 ÄÐÖ@žÍŸ  +›SõŽß®\tùn¶ÍcûÔu¿O:ƒ>hpý{+!èZ#9úRM2¹¡œÇª* KòåHž)ÍÑT*m‘N©®6¤«šM2ÕµÜ4Õý\DÕgB²û²¬½9_2÷®›?Bõñ pÞÁòÝ%ÇM¿u¸mžøÙwËÀ­€ÿ¼îÒuØÖLŠºÐ@#ÕÔp˜¥åBA^ ’–S¨Tü—Ï:§:ßã8þ³·iQªi£mŠŠlY"ŽÝYÇYœÅ9Ž}Ï^ãPd9(RÒ6¡Å ê–D©)L¥í†I3ƒ %Í8‡îÜ)Ûûž¿îüñüûóúãóø|¿'r2$E9)yçó¥W âro•¶?(}S—Ó‘ŸÕ) âÖ© CO§¶ÏÇ¥]‹ðãî%c7M–5Y,íi±Yñê!iËãF²yÃ-_RM-Ï»¢RÌ?{9,¤èRlŒô|RRF©$5õtÖÑäâYqE¥ÒèÂËù…7  )¼É<ޑ×) â Y4P¢¸SFš“5;Êî/x´W³û©åòg-ŽÍÍ^f7ï2œ®ÝâÒ.Ԋ¸ÅU!AyW££2*R/}8éBfzì¹üc¥%9¡gÊ¥AgjóÄ¥:ó‚NwJC‹ºrgƒECîzuœÛ6W·ÏûzsëüáæmsûÚw©¿~a®ÝòäÀ¦†Ç¦5ÍôeJÉmNÁ qæõȈԪ¸¸Äk‡Rb®‘„WH•Ÿ:&*»”í_V“Ë/»ŸË+ÿwŽÿÅ_rDgßfÏIkU¯«†‹[4Pe 1vGO}°MOµ»Ó@íٛ½K›_Øo¼ùÔmϕÚþ³Yž'î ˜Yw…’úðÐÄÅFÇÜHN«M?x=Gâ_sò·úb§º:“Uݔɬy•É®|—É­˜¯RA‘b/+ôÕ¦êtUÿ|¸J¥÷Í +¥W¿mR}Üm²øN§ÝúªW®ÆÛ)6'Ÿøºå´ð|Òð’„ŠcîDŽ…6%ňÓâw³“ýŠ3ï\HeÜ©’Ð%Þw_Jè·{Òµ¿§1®Ï GV(£d2*uTþnÐVîy¾€xÕ«E´ôé«5öš.¬ýÝvmy·³áéN²¥ô5ƒ”þҏ’Ü.bÆ< á‡>‰üœÊo“DrZ³c}[‹âè-¨­U‰”ÖÆ$rÛËDòãþ$jÓû”Ù {™.¬TBí2¥·æ/^Ï#.SjПS3°giù{ݒ>'ÃüOó£¿Ñ’ßqÜbº…´Ð_B˜]Ñ\~g¢Ý‘&ftä{wœ £t\ ÷ꨎðèlŠtïzáÞ9éÑþ)z68±D W–oæÏZç?uÎ#ꇗ«T ,¸ôiÏÊÓCÖzҏNFé<,’iöQL— ¾—°?ЛÛéËìO`ÓûS¹Ôþ,W¡Ð}àœÈuàšØeð¶Øy°ULúÐ+véûSìÒ;3œÕ$~­S'žÞÓ šŸj·ÞÍ#*eß©]”o^T,7Y+·ÑO“;'Ê=Ì#e4Û@ӑ/ã¹rdbO†,œB“ô&ËùxȏúºÊóY¤Ñ¶ãh™ŸÃØu®ýX#wÿ—vžÝ— +C3ê¹¢L<»­FÜ{¨FÜx©A\ÖT:÷ύ¢¯Û´²¿š®‘|³ÕO'íŒw7S­xã [Öׁ>!r¢L„:{NF»ºN&º“&%ž¦²ÉöS…»é³T›éË´}P<4ÓMt«éç +/fô¢V™¸wW•¨kS%*º4ˆÒ©ÅÊÇ¡;÷ µRa¾:6Ãp`«®F~ ›0àcFÇÒþÖn´uF¸#ÚÛ#ÅÁG÷!×É +E$Kœs¶@…‹9ª]ÍÐ0«û·”‰ÚÊDù âT‘eÊØ8çv,ŽÉÊ`X­`¿ ¤ÍÞðØîÚN70Iàî>¡É~›Ú rï>ę["ÅÂé–fȱ2Eá>œ±Þƒ¬w£Òf6uw•ˆ²Ÿ ¢¸‹ rþ3W)˕¡«Í Ä0Òâbï +¬WSà ã— $xé9À[ßLkp·XB¸ÕAÛ̾ݱ†{´c7$;ŸC#äí@±±!ÎïšMùOŠù/ âX/A¤bÒAh)c¥Šë5˜Ø2Ÿ +ãEî0Ó"ÁZÛ+làò xÿÈ­Žj=”ûœir›ß$ù5w«ûÕë÷ ù/îU΢rèc3úƒÀ\¡¶Ë嬃hòD1w!Ì߁av%8Ÿî?)¬b|ÏùÀ§ÜôJ¼ëØ Õs¦©Í~S”6î$ù oÜë=ï¿äO¼QÊï3MƤòþð›øŠ¶¢Ad¦‰pmÄ:éà ×fÄ2ŒÉ·@H°Äq$øKÜÁË¡€Sä æYeLøT²§éµ~S´zîµ™7I}§t ¾’_(¿h#‚t™ !üÊõŸ ŠÎNuˆM5e­xÇuHð،xº1b¹´Cp ‡= È¢‚{‚v)ÌKìiÆ5¿)ŸZÞ¤w=‚ö@0A}êÿúNø7åƒPFû,¢ÿ`ȄݾrѦ<`&è©ÂOÑl¢‰X+m$9¬CŠ›’iFˆg›#Zd‡Ð“= Ì ‚WÀ§„5ÍúÁoÊ÷*o’Q+˜ ßñ÷~(üF{.ú‡Ú0Fû0LÿðÞw$àsDüš% lgËgEw‡:Âv/@¼Å2Ú¿©.úøžb„Öÿø®Ï°¦î=€ãl.R«¨-Õ:¨{R¥U¬¸p#V†$BBÈÞ Y$9Y’$Œ0BŒaod‚ˆ¢ (PW+^!,EŠ^íµÖëÕûïyú>÷Åç9/Ï÷yþçwÎù}øq“zPù!€ q©ˆO±Æè( úCTö=¢÷gd þóW o#ˆoŸ_F¼ M"æˆ#Q/IÃѯȷP¯(7bì¸5.³Í 0w~áýB~`9PXT?ú9â; Æ<ÒqÀä„ü— +…¿'jïp1ÿƘ0oÐE¸×¨*ü«¨Fⲓ<‹è£Ì ~¥L!f(#Q¿Q‡P/iý1sôkè9ú•Ø9†= nÀmqœíŸ©ÿbø5Ð_ 4!ۀú¼?PÄìÿ(Æ}ÏcžyËJ MKB¾$¥¡gãsâf°ü³Ø2ÒdLeÕNµE÷ÒF£ïÓ£žÑc~cÜDϲº1³¬ì vKœ}76¹¾¯'Pì^4û—Ôc«Aê™-àB¸ßǔè} 7bjðŸ6Ö#§èÚØqr&î)ÞDÁQa«é÷c›™ÃènÖ ú.{=ÁéÅÌpº°3ÜVÜsnCüsnÞ>@XíÈ\þ¯Vïò©?,† ¼ñ“!tÇ»4äÞ×Ì¡Y%éÔ´”jH#uìz:~˜’C¾C´ÐoáËX}¸:No\{Â5ìMÞUì¿÷Œß?ͯÅOó+‰Óürâ3»þn ­w’Íó€f×B`Øç ²áÙÈ9µþ½ñœï›¬HÿY}Là”–pü©Šuö¡Dˆ(0·9ZÂMFõ5ŸÙM.ät+yí„&A þª° ?,ª'LŠªˆ“¢2ò¤¨ˆ2%´þ€ø `¬u²Mà‚ߐð%È;¼ü“éĚ·¦Ísyá~ÓÆè€QC|Ð íì%Ù'‘bzjb7ÖÆ2²›éæ„zj© –R—XMþI\Iº-)'KŠ¨b mB\@ŸḨOÚHß8ÖW ØèÒw~r–€‚CËþsñ¨ÏkËé 3–s¾63ÒÿQ6æÈÝ4rÈÍ6¢[!¶KÄ&¡–~™—Á©æäó˙…¢F•¤Þ"½D»]¤?L ›4—9.5²Æ%Y¬ ±=7páóHÚø`Ø1äï],ÞY1W|rÍTñÙMO¬çwå£÷eCº/0mÉ|Lƒ"ÖHÕô +Q§˜o\J¸˜hæ”Kóٍ²ÖU¹‘}_žÉ“¸6HϵIÓ¹ã{nàù¸€ä î žOó¯O…?|ñ{ÉÁe/ʏ­²U¯{P¶ë¶u¨''þL‡Ù KÀT«ÅÄ2…’^é¸fq¦ OhgóK  ^\ÏëR¤ñ©üQ¹Ž?&Ó +lLjüÉwxÇѬwÆížÀò݂Å{ÿ«"ÐûYMв֞\;TêwÓ}°Ë„ nʦDÖ¤³cËtB¢5YN7)S¸92½ Cš'NÃE¢EŠ¨C™,PªGI‰£ò¤Ä1YR¢ ²PàÑJ [ïr¿¬»çÿYöý¹š}‹'}ùKý±5Uçvö” ´Y°§/ç‘Ηg1c­é|‚I'¥SÔCRšà‚Â(N‘Yd*¨R!‡Z•2¨_ɞ*!hTAc2™ÔÙ¨pƒx¹3H]çò}=@‘ŸçÛÊ]ó_ÔïY0Ö¸è^ÓÑÕ}µgwt•# cOU™ E¹ttAVÁ¨Óô©JŽN«¨S²ÄrµY&U•+UÍJ¡ê†Jô¾ŽÊEÊ1™Haƒì´UÎ@ú5¼÷ÂóiÞêþ¿Òí¯kwxN·ìö|Ò¹Çk°5ÈçzCÈö¶êóûëÊÐ'K­ñáÍԘœ<^Ÿ-¢j3äì$½†/K5ˆu&ˆ¯-Qp5 J¶æš’­Qr4£rnò˜,AmƒìŒ•Î@7dÀïìK[Ü>TluÙ°Õ}¢s‡ûëþ oýtxՕ–`ߦËû*«P'¬¥¸°¼B2Êp‘¯5 (ª\ˆÕåR' ÏGÑ&×w5\gZ×»Œ^ßì<|}÷ç½ÝW´wœÞVÛPr9꘩{.³œ¥+aÄ%òÈR‹˜!(Pq9ù„Œ<£˜’c…ˆ952|N§<>÷gÞ83mR²aÜ.°Ì $åráç¢tóï >ÎSWV:ýrkµÓí>¿ùW®XÞØ}rKEGèK 2È؀9›ZG@$UÓb¥\‚ TDc+Ø´B-hÍâ.YÄK•}©6(E[Æ%XÓ¸$.wBlÀ÷×y;ó +§OU+æÚ¼Gû½†î®r꽳ݳ­ÿҚÇ7õüèŸÛy(½¬n‰€)(A=Ç®’¨52:¡ZÃÆVf$ +̂èŠJ²¢]„¨¼#Š¬˜EO‰PÖ)¡=@ò…Ð/qÖ¯ßÕ/qxÜãépoÈÓ¡ÿÞrÇΟ}=ê¼KŽ®+èñ3ôF¦ô NȺãÎ :ÉVMiçãð­ ӒLC5˜ˆævDS7¬©Ú<›â†]~žQmP.rF/Pîåð¸mžÃ`¯‡Cß½yݏ—:6ýºÅ½âў%–ûGVg «½ ¿uDЏ fõ‘B)7ˆø^^Lìu)6úZ2>²ÇðÝuÕ䝆üc Ъh](VED$ +È*›¬²dý’/ûFI¡ +¢ ÖâŒb­Ö#ngT-.uGÜ·ºÎ0µn€ +£BŠ€„ê39½˜+rñ»þ?ïù¿ï“%ºRC]9œË»R·„¼zÇêU.y¡;w®;ßl˜`ýWâñqâþyâú-g¢á?cˆS­_Ùiç¼ïyÄÄíÏ=*³|Ë BKZä±ÿJO6>Ìbë›ó)MS‘XÑT*—4V¨Uj^cu:·ñZvc½–ÕtWËnêÈ`>èÓ³~íË´[ÇÏ9N;W/9çî¹'ž%j:f8ìéð³­#Âmã«ϲ—Lßâ¼àüviTv›:^ۖ™œÖšÇ”·.çŠ[Wó©Öïdë1§u—„ÕV#e´‘¥¶ß´j•¥´¾“%?PØbªv$šk‰«õ4¢î¨mv!˜&Øí2yÒ¶šü]7tGº۝8«¨›é›×Í Ìì/Ôt)£]º8IWN¢ «0™×µ’Áé^ËbvWrR»·s“Lûy‰¦cü„?øñ=÷¨øž*ÎÔË·åß âú/ÄÙâèm±ï‘ ±ãý$»ÍÞ΁ãKÍQîËÌ ž¹æTºÞLú¥ ŠeƒŠPÑ`F80+ŠcÉ_Ä´ŦXJãU$& U%Å ïJŽ>”=r25jä"#òC##âÃK›nÕD]=qäš=±§É‘øáågDåGwûï>ѝW!p|!Âݲ7=É^Jp|ÄøRùq¡^À„>(9!‹Q’…±( ÆÆÈHüŽÝÑa¨YŠ“1!¸Œ;±¶ÔÿBG.Äî;QõȞX?2În ¦ÚÁÛ)~c3:Qè/¥Hœ&à r"ïd(|¡¡Ç!ó/1ÈñBá¼”ø…¡Ì?­ÇÈTúã`ŽÏGMGë bÏ ‚Øò Ö¶ÄjŒ·+„›}<ÓAw‘#`¬ 'p3‰ÅnI`ºÇƒœÑ´(ȦG@=# :dÏ ÂRÏÏòïy¨˜=[¼éØ9Çû}æ Æ¦½—­óß·¾ÿ„ V˜í‰|Œ³Óa¢½S„ðtä‚—D„}‹è±ÑHp GÊøP°'ƒÿň'úC>i>ԓ}¡Ÿ<9S|Pà6%_z¡ÌÝÜ=P5uvØ1Ýü Ä¡ÎP/r….É ™Ü™ÐIéHÏ@Z^(ä%Q| áæDðJ¹/Ü&8ÇX`ŸaƒÕÀó:Œ$ÏI¤¾á!µ÷aæ ²†x½ìa²‹;Â{KŽîÿ¤!ÎȈr…a±²93aÓ¡Õ@“ +eq¤åqýu1ÛSÀÛËyˆn-œÓ\°H°nðÀläƒÑfÕÅÿÄ裆XƒT?gˆo"‡ù¼aªÃHè i9Cé +c‚rY3aÒaH @FVҖECþm<$›’ ü1Ôn&xÙ k¹àž&Áiàƒ}ƒV3æ ëêš#¬~Á{Pði¼æ Ú©aa5, ¤>. Aè C¸+–Ĺ!Ÿá<Š£2úÌ0¤DCµ:²õÉoe@XÍu€ ÞQÈS|pÏSà\€Ó(üÄn°»Dö{Ñ;rPô†o½ ,â'Â!Éï6@fÍ ñ§Aà cØ8ÄLÁש(äû _î£6 ú¼h¤¯L€j] +䛙üāhÂÃÔ'ê¸à#¿NôwYŸŸ3ò‚Çaù¢)X‘<Åä,“úa©&Fc42‹Q–ò)mkD±’í¦,’B³øgñ€ð´¤_Ð íܒ½£ZäÝT§ü OÖ.Pü&6+%ƒª_eÕ- Ÿã•/ _'E‰µë}“4ßp¼±R4ËÓBoˆþ`,LÊ\jÖV°ûÕ[x½ª‚Å~±IvXÚ%=!+9§x-¾¦ì7+_Š_)[ÅïT-’õ=™YsSnÖ\V˜Ó/*G…5ƒf. 9sPlí8¥‘“P–øÊY^X#ðÅ*EðP‘.r`i^|onIª)k-ç­®’ÿßôEêÝҗªƒòvE­ò¹ülÚSÙeõcÙM‹ì…¦Y֓~Gþ>ãªò½¶Aõ^W—Ö¯;«”ÞÐú8"߇†UcPñ¾wGÃëøs-å²}«5á¦bcÜëÂå)¯òÖpÚ³×SÏ2«$¿kwÊ[4ûUՇ5ª“÷•çµw•·t·•Oô7T]úKª¾Ìzu¯á”¦×p<½×p,ctPY3dz;¢ÐÚ/Jý?GÅ Øë†Ê”C›È9}ëÅ~ÝkUa¥†˜¶ÉO¾^ÅiÉ[+h2VJﶩnë«57µ×^KÿYEsÆpI}%낺)ûŸšÎì3é=Æã=Æ£Úc®'ûþݨ6ÛÙ^Ž(²ö‹òùŸaS˜+6ÇLþX•4í}ÛËô7oçFyPë:}Ôo¥K’šVqî.[#¼¹´B~5wsÚ¥ìç {õõúš¬³ºÆSÚÿÑ]_QM¦iÇßPŽÊXPÇÆ2*:Š‚ +‚Ô қR éɗ’ ÐIh’¡%t!€Q"ʂh„ãx”wÇ#IY –fçÛoö:^ü®Ÿç¼åâßOèŽ×»âçˆí˜ERSâ"±»H¬ÃýN¨ý +8ÙáïæLAöȲ5ƒ…Ç,á2§õ_*\7ÿ»Â{û|ùŽ³%a?<ˏ=õˆ?ÿ òJI ¾ÃäEÞ¢Ĩȥ˜¢ۅoÄwà:ˆ­Øäfì0E¦4à(²¤7”*ü²„°HÅÿw #­•jcç\ —Ø[À•§¾Y’ºX-Tylý­Ê×fº"Øn¢(êäƒ<¬Û=Å·?|#åjd7+'æT”ÐJ­À5‘k‰Är¡‡ZC¸K«&<¦K‰:Z%IO‘¨¥ä7Ù8é+ê6¤9‘³(8°.?b¾\å°ú­ì̺ù:·M/ê¼·ý, °Õ”]r`\ûsH¾×3A]iœÈ¶+üØ&vAB£,IF¯"I©rj%¥‹^N€Ê(ãP)õ5TLÕх4=M@[ ~Ì¦#½™¾Ãî3…+™}‘·Xlp\óJá¼~ZîþÝ#™ÿÁ‘ʈ꒸sªB<º+‡Ԛ™)¿šSËÉM¨J)ÆW²Å¤2f=µê€P£zÈÌg¼dä1´P.SGÏaêiª!p2›ôo;Ò:È•Ú­Xª?f®k:a1Ûvz͓f7ë‡õ~îV…ï+9§,Æù´PsX2^ZŒ$=+AÄà‹S+ȅ)µ´¼äV(›­bòÙ#,^ò &/YËÈLÖA™ÉzÚ×ÀXäØHóf}g—!ÿ´ÆÖôüðŠ×mG͞wž°œhsÝ:¢¸° 6ôÇ^I´K»(Ñ[^L +”0"Ĺ©1eY¼af>?½ŒœVMËä63®rz™\Î?Yî BËàr´—££s9zš!p2;iÎk#¸|·ñrÝ“ß[þaò[×!Óg=Ç,Æ®¹l¹×‚Þw³1øXWÍeçf Æ«VDÓÃË)ÑÂütL^Nn?«„”ΓÒ8™rFJF7‹q—ÅÊxŠ˜g°3´PrºŽž|UO3& ³S¿5‚ó·¢`±Ñ—ƽÆúŽ}Æ/®0~¬²_5ªtÞ<Ðá³··9ðh[C䙆šxO©$É_TN –²£r‹Ò0µ¡ó–»\åg'í9YÚåšßŽAóZð-œÕ˜M«¿O¬ÍÁád%LM59¦º…U}ƒv¹ú!â5Jº@©X Ä–¿1f¯GÁyëP°døвpÄ.O8öûó0vï9˜´ßf< smOÁÙvÿc»ÎÃbÞ÷8€fZˆpµ(%-Ú$TÔ,ÍÚ,5ÓìK3Í4íëHDuQ¤P"KٗdéZN<¸9–ÇÅå\—ãv²updi“ä}Ïý{žïóú>¿ç÷Ïçýûþþù¾Q㊆€ œ– `´á>á7«ZN‘HM‰ùí$RåC©¸Ã†´ãGdaªî”øÙ+2Z‚ˆ±BÐ'pÁ™Ä‚p2ñS£ š¾úáHr]ŒŒ™¡°Ì +Áj· ¬›€yhðôCÓ_œšãƒK^Þh³êàybþ5bþ=©è‰´lО”†±# p¶QÁ•,Á[üí8XàG*èc–‚íÁ¸E_ùOó¡ãD¢NòC®³VNöš)ž¨šêúi³Ñ8ÍG§»á„U;ۈù·‰ùÿ&‘²_’HfPHZŒ!IñÓ!qÌ"ÓáE‰„¿mBì"Ì~>"íÁpðg¤#½!åù(OhgÃèè†ôÑ3aã‚ÕNÓQî4›ÇNÁBÃ8kãC{¾-„!v,t€’ê5×J‰ d ¤ù@T~Ù|p7‡‚µc1˜?‡#úHÍKAoí*áV¨© ¾"tÓ@í' Ó@ìƒ P{™ }dY¾7Ü` +bƒí u€:Ò ZŽ34b(µ¥ø@¼,¢¿…€¿i!¸ÛÃÀÞÖ¡%`žŒDô¹(0~¡‚ÑNýáô¿}„ïôï â‰úG6ï9Öý?CL ’ [(B [â=Ë q.Ш= 4ûBšqq„‹ÀßÞî%àˆûxØg¨`]¢yæ=¢;£{¢‡ˆ5Àã‡xÃó5,k 2ý)ùÛBlÄp'˜˜Î0‰\ Wx@cô…2;ÒU ._ QM;#ÁßÞ¸Ítp[à\û6s˜ýŒùÝÅúÊþÂêcc~æ€õŽöËpþË×ç’çGÒÏú{˜ÃœÊ˜„TÁ ˜e0è}¡Í‚ª ²5alZ‚¸º(ˆöÐ~›ß'¢‡øgYßb.³cn²ûy8=¼×œO¼Oœ1ƒì·1àv +À{*DÌ¿Dà[‘!އ·-Ló쑾h ²h‘Å›ôøÙHÖú 1%:Kè°º8|H±!rPº…6 ÙÉèïcöÆa‰=Íù,ºÀý(¼Îëþ“÷^ø‚×%ìæ½~åwÇBx/¢[bëëE†Ü‹=!ÕÏ9¡£a‰š grãܑ©òN6š²Cûõ…á=ÚµQŸTUônEó/Ùö»øƒÜ?%'bºÄçø¯ÅW/ÅwâÁsñᓸØâá¸Û’âRˆ¯È¬C‘AåI†Éƒ‚L;ä‡8bå’ñXɜ‚á¬!‹|n–>àsZzès~ÄÛĒ¨7 ѯ4[؝ªÜÅ>þsùQáSY‹è‰ôrìãø_ãÆ?ߓ¾ߑöÇ·K‡¥WäÃҋŠaÙy¥uÏ!CçNF +Ñ;óæÚ¢0xŠÃÇ¡„á™Ø|Ѹ#ùŽi{òKcmJqkjobMZŸ¡:­Oo tÄ÷gw%Ñ;×yª¼È}µþ¶ïw,pèÜ>ú·zºóÝ­B÷›äþ¿”ë/M¡6小­\!8´¼D¼ß²^¾7§ZՐU¯«ÏüÙP›q̸%½5©:½=iszGRUÆgÓÆÌcefobEf¯Áâ +bƒ,g¬":ïz×ÄÕÃæË_Jמ Û獡#ì¢Nº¹ïv¥F:¯u£náérsÔ±ÒLvSQ¾ ±pµxWÁZy}þ&õ6K­®&w¡*ç°©2û¬yCöõäòìgæu9ÝIër¿˜ÖæöËr{­A"ñrˆ¾YLtފ#¾os³éÞåeórŸùɁ`‡»{£&^ßɛu±6ÞïLµfáñJSdSy:«qM¿¡¤P\·ºT¶ee…ºª`KBE~Cbù²¦¤2Ëis©åjr‰åqòÿؤϷ&Ó,ãç%!Tª€€ ; (]@Š”Ð{ï:!PŠRƒB( R'ÒDD H‘*" ˆ °ŠºŽîêŽqwöšPagë™÷ȇßçû9ç9¼œß’‹s×ÙÅ9I$–(˜¤BÞãVK” ¬S%>žÐ ~íÒ"^õéˆ=ê7‘¸yÆ^a¡ÃsÇÔÉ`ýÑ&¦Eÿ÷‰Œ®šT·S•Y¾ÍåùAü’âðÚâʨcGùqå…'yÜ3좂sœÂ‚ùnÁÔî/.wÍ-XOâl°DÁde1Ì%ßP®D _™øý”*ñs:ñbhqИv£ÏN~Và¡qþt Þ`ë~óî¦xûv>ǵ¥6Ç_•TSq4¼¢üïÌÒÒºØ"މDn±€W4ÌÉ9z)åpÑ}Òÿ8ÙEïÙÙGדrŽl°DÁ²¯@`åVÀFExß¡³JðdT¸=bH»2`#7Õë¦>"ØÝÛaÖÑk{¢‰íÂ?~л¦>;°¢¶0¬¤ªŒy¤²&6¿¢)!»¼3)«l09£l:å`ÙÒ9éeëìŒÒõ¤Ì’ –(˜Fî Pž¼yÀyX햅—#Òð`\ÇôÅ/X˜pQèõÓí„™ž<cÓÐÆr®9‘æUÑt(€×PZø=/2¯®*æPmC|zu;+­êlrJÕ'¹ê&I˜Ì©Zg§Tn$¥Vl°DÁt²_$ X' Ú¤áE¿¬Œm‚Û“Jper7ujÜRzdÔYµgÐg穾P“Æ3QÖµ]‰Ž§SÀÝN€…A&&Èþ¼t.‹CË#I¨.Ç^h‹ñž›Òó´—Ízæ±-õ;XO#vÆ>‰Õc>N6œn¼’k°Rlí³rÌÆk¥ÉÞ}¥‹áúxÔÁåñ‚£ó“g.+¿98=úÃÉñá7Q’;¸Þ pa`` ãº4Ý£AõRP.ÜF}£CÉycJOÚÊ$ ]ㅾjQÂPÍpa´vˆ¥ð:MÏ÷õaC/áa…©«oî,lßëøfÀÂáÍ´%ã?wHo, »×Ÿ­DY\œ$û—o‰Á±Ç4(^“†‚U5"kU—’ºfJg­Ùl‰YsVˆXóV^ R x»_Ãçmœ¦çÛd-÷·;]Þåé:¾ãíf¼«Ö³{ßl`ó^`h½>jdµ~ÙØrãégc‹÷"Íô t^hX¨x@@á¿Ä!ûƒü°`ÿ©C‰ýӘùÑJ*䣃tÀ'w9ŸO~[=>‡*¹~fnsúœ êð…³ÝîK¦ú¾¯ù;¬¾–jZ|­ûÎü[«–é·í=8¾ÓtŒñ#Š42Bö/’ýkdÿ@Ás€Ìu:pPâQ•ˆD-JêSýьæ…6t7tÚ䌞[Ð_ÚCe÷!SÎ +ãö"g«f(š`¾’–*`ŠžTݍ=ª»ðœš.În×Áe‘ä4.ýÛùO¼Hü"Q(¡¨Dø£†˜'êP\Јê€æâ¶hC³FG t£›¡}Ja¸”FKé!kÓ.<°y'ælÑÂbé¿aµŒ&6Ëj`鬜:Ž‹Ô:7¢Óictì5A‡á=Ș0EƬÙ_l×WXÓið?M±1Š2¶qäс€‘J$¤Þˆ„:&$ôé*eQyPÔEY+:긺ë ì¢(«¢#ŠŠ Î~×ÊÅïúœ÷|ßÍ „G ÜE†ÀíòÁ 3N:8ͺƒã´;8OzîýÀí@¶5š­!8ÇÕøÞ&Àc˜G´Ấ®´ªÚ +|5;ÀGk ¤:{ðnq¯ã»Áó´#xö9Çgð¸í Äã€8†ÓßãfˆÓ¸/à<…æ ù.o½ÀuÜû[@²1?´s‡!píŒ@ˆ3‰§ ˆif ào^ˆ9°â-€‘j þy;Rf¾5@nrŸv' tR/ÊÒï2ï}ÃeÎû¡ë_^£®SÞï\?zqý€fLxÞ7$À¿ð½Ï>hš•p¬ A¸Ã¤N‹AF\2ʐr6€hújіÀI²†€,[ íš÷¯tœ£Ö;ÍRZq3~.Ó¾g\¿ø^Ø3EÀ&ÿŠŸ$àߑßâßøNá_“Áí%Ï|Áý +Ÿ,ÈÖèÛ @`iRkCÙ½ÂÝV@8y5„l€ ±9Hä–:¡Òf†§¶›fìž +(wúĬÁMқ\?ÐÚñþ'÷¾ó?ëö–zÙí uðš:Lów¥~v¡Î{ SÀó‘?xýJ¯;ôoe;ºêºÔ5C¶B„ý"ˆÁ/ƒoSˆ¢¯ŸlþKlñYk3)N¶Ÿd;¾åáÆ9•®¯Øuøÿ´ºtž3{ܟ1þN|ʸIü/ã‰ÇïŒWŸ¼ÐçI÷èàs‹ >@þe@³Ð>ê™AængkJ—¥ ôX©ÛO]û%–³i2Búӟ¡‘Ö¯eìǤ鎣â—§Â2üøՄ!nñ §Ýó1»Ûë!«Ïûk€tõÀçkÌçkÒ÷:Kç7ÀJ?(}\ œ[0·êƒøG}EbÑ=l Aåd<ŸL0™R‘×¼?ÀÜ8/Úò":Ìê©<Þn($Åé_AÙ{w…µ^ƒ‚fÒ-þqò ^ß5^?e€{›z…;Bíç½ó¿À›¡õñ€Ö#Z·h] ¶¹>HQçŒ@[ô!½MÚ®ÅÓé{–½W{­zê¿n4‰¿yX)Ûþ(6Úî~äç;ajüÍà<âµ ¯«Ò*Ÿ+õ¾ýâ6êEÑIÿóÂ>ú9á?½Ânj3¢qf·è ³KÌ10Û$H 0¾<”_†ú^ ꝉhŸ4 ]–­ÑÇ\ܒñ\w“Ñ,_³!5{ÓoªÀmw”rûqûqQÉ{/Ë3=.†iH}!å¾½²jϾ&Ú)iãd`OÀ‰Àˬã÷Øícì6é'v‹ØMû€U¬º€åE]sÿz=HÙ¤™[õ§ó­ þ<ä°èE!~鰆dú[6ó‡AµÈòZrˆÝå„܅øngcÒ<{¢r}ºåŔa´ŽÐ:Æ߂ÛX­²nN³ì·Iv‹× {Æ« þÀ=¬ãV‡§*8•¡ÀþˆP~¹™$ =ÔQï4×ûXh©ÿªÔÖp¤Üyñ£bUw +h¯eó-/©ƒìú’#{(ܺɞq™äö ¥5ªŒ~4¢& A~”]ÞÉ­ ;˯ +»&¨ hÃ'ø‡Ãçøeòy^©|ž[ñ-¬ÓƒHÔ7“PïÌ\¯§Ólқ(Ý¢÷¢ÂJÿÊ]‹î•»w£ˆºár>×¢/Kj{Fîܕ·÷XR¢gk‚šÜ´?—ZWL¯‰©dUE7p´QÇøå‘=’È_DőE…Qo……Q3‚CÑ:~A´ŽW=ÿ ¢ü1¨ï%£Þ™³û«höF»IïiÍV½ÖØ Vº™\-ó[¡ýSO¾xgWV¨S{zôÞæT¥gƒ*•|$1‹Z•pˆqXq˜U_Ë-ŠkhbO‰òc/‰scˆsâ^‹r⦅Ùñs‚ìx!„Þ!n꽫QßZƒM•}½üy6Tÿv¿n§áõjüŠþ +òºÞҀ­' …;ŽåË›³#ñõû=ªÓT>)éÔ2U>£(±”¥I¨ææ*›ي.Q†â¢$]qW¢V¾«•S¢4åœá§)u߀`”_vP¯Â@cŠMjM±çµ¦Øã¦õØ`£áÕ:×åç«IkOk[Ž— +lZ +÷í®Ï—ï©Î‰#j3I%éi”Ci¹ô¼ÔbVvr/]Õ$8˜Ô)NIC5ŽÞCǝ¼†/: ‡;Ã/‰î1êÈìn&ýK¤ `ŏ‹ÌéX4jFt¢è‘M@-ýè + aÈPÁ” ÆBŒzVÆYúa²åLÌçƒYㅘkÅÇ|kOÜbÃÁ¶X3ÁÙ±±Í~Þ&çÀ6r6ÜÈ»OúO’žG˜…6 ÅÉ DWŠ9Ôô¢¡Íƒi"”Ó½QE ŽÁÃh˜î˜Æœ ,Ü0Ûb*®e9ã·,'ÜaéˆÕ–S°ÎÒ›ˆ3c”’3°ñùÿ{¤ÿÀDúQï4H…0´)ځ§PüqE„! +¨<Q=0€ÊƪÊi®¨¢¹`Í 4L OÂtº=.¦Ûa.ÃÿÊ°Á"¢œaÕDíìCE©ˆ†Š™4TùÓQÂDU8 Ãc¬P™f‡Š¬É([åˆÒ .RìŠÁn(®žŽA‡ØÔÀÆÀSîxÖÛÉX·9ðøxG r09£Äçÿã¢ç—þ˜AæCú„Ú—ŽZ1µJj Ö¨I±Gբɖç„ò‚©8«hJ¿›Ž’*²µî\ïÁ'8(>M\ä¢øñ£'ŠŸotŒ b`”‚…‘‘Ö8ÛdÚLTíŒÊõ®¨ø;YúR6Ê*ÝqÖ~œu˜ƒÒF.J›=QrŽ‡’ˆNÞ¨äþ°¤›?(éãõKGy½Rä” àƒ…ï$èõ%”zQQÅ£¢ŽGC½Ž1þ Œ•±0VgÑñö•á€º¯œQ»f†Î@e‰;†íä b/CxbèQÞ¨ü$DÞ*ø,¿,’ß È ûä]Âß彂wòá9zõÈЧ[†¢—ò±0”OE-‡Šz cÉ ¾ L”Z`¢Æ +ãcì16Í£³\0j…ê +Ø#Ú­œaM™çzo0|?@uDЧjö*[¼>*/x}PÞô~¯|èÝ£|éÝ¥úèõBùYôß0œù< }Ÿ…¡ßc%ú •\*ÎfS1–¼wM\¦’ýH ¶Àt¥¦èíÐdrÏtŠÍqˆþƽ7j÷Cd ï½n§à]į7¼{´G}^kNútiÚD/5×D/4D¿j=Õ|ðýfØÿ‘~Rcà5ÝýÛuÕԙÇqüIDÅQ‹¸âŠˆȾCHrsH Ä’„„}‹ì;‚ + +#x Z¤Ê´êiëÒZëÔ±u´ÕZÛ>sûxñ9ç¾|Îïß|ƒ–ƒûñŠµnø.<ŒÙoã±{°`‚÷ZÈ$™ýÎÛúkT¬åÿ"¹»:-´~*?ô"Xuô9µâØ"Zü{J«ÝS¤çÄ·ÈûÇ䱓É3_“î:Þ'/:._;}Núèæ5YöM–AJŠ"KA¶ €Â5à©î© Áí*#p£ÑL6¯#-»pͶ†z7Ó¦úóÚÔJWn]Rc£Ô&ØËÕÜSÙ¥î"•Ä;£HáÏ+,%p jHœüVJ¢be)®Q™Ša^bß(,Dò y)˜¼|ÌZ)qà®n˜­3כ ÁX›)¸Øa zÚmVµ´º¬­oöÛR¡G,KëÃö)k£È«™vٕɎÂò³®|­Ø3­LV&–V™%ÍäXU?…¡š@£UwÐÕ(1Å¿!1ŐÌ(Z¦‚eÜW0Wi¦ Àx«ê6}=ÛA{ÏaƒÆ.'ãÊŸMê6ÒeKȞÜ&ú!‰>Î6³!é$¯.ݙ[+tOªÎñfUùÅU”FWœ#ÒËûȑåW‘ˆòyÌäÝ{R„’"µ¸äãÀwyÜÕp£þьÝôõ‚ös 8€¯>ï°ZÓﵡ°7È"·›f•Õi-hgMoK´KiIuHl¸Ä7IÝz¥7½QëÑÐÖÐCi +n˜ +®\÷+‚k—{'à«B>«àº®´p¾€6¬?‡7‚êË{qeÃv†…C·d]@?Éߓv>ú §e“Лb×Ãwˆî–8Gv廝îÔxwÔ{S;º|)WüŽ[˜E?rÛ/~äV迒g9Øjfjk`°€Ž¿ûs€òñõ@=a…SN3Èw1_õ3ã"ܑНìÿ³]§QM^iÀïû†@Aö’…H ,!! „  aÈ¢ˆµŠ ÇÑÓѶÚN­£ŽÓjkkGfܵ"¨hE . ˆâq´­ŠÊj«²ŠÊâ3·Ç/sпÏÿç½ÿ{Ï{ž“¹ü¢sfW/Î=¾4Ìrl•4óØ:¹ùè&eÊÑ¢ŒUûԉU'bª±µ¡r(ÆPñV_ÚÉî}‰P#>ëN„ŽâöWüùý8ÿ,Ö×9¢uõ ´º>üK½Ü~i]ìԅ“Ü‹/¤ÓçœÏa坟Ýy®DU»D˜^»R”jý<ÔhÝžhÝ.·î•é­Õ2µA®·>‘éÎ ÉãNODÆÖÀ{Zñ\ø¡êÝü¡¸ƒoO#´þ"‰V7ÑЊw´ìŸXÔN)iQÓæ¶ÄOÍ¿jr˹jñʺZà“Þ\Ì25/æ$7¯à'6}&ˆoÚ Ô7}×´G¤m:¬i¾Œ=iƒc®Œ‡ª l²ËÛ:…;øwP^…ÐÖœ¡Õ´ì Ϳ㌊Û|Q¡MDäÛ”[œ}–Íè”fËpNµåºۊ<ÚzÇ·•1tmk|cm_³blÛüԶݜ¨»Ç¸ª»—°v®ª­«üõ ?ò6øOvwP;øÏ„¶á;ðõyœ¡e­ôÑ*èpA¹LdéRÒÔ©¶3vΰOèJuˆïÊvÒuåOí*vÑt/vî^é®ê^ëÙ³ÙKÞ³Ã[Ösˆ.í=͐ö^cHz»’îa†¤kü=Uøì>ŒðýGhùwùK[šw‡@9©(ë…+Jïc¢Ô¾"©_LÆ÷+)qZ;Í@U=h²̦Eæ;ȇŠ#†J$릊‡¿pþ§KðËòi¢‘ +× ‘Z×À‘V7á«n7áˁ÷ìÅïp;¾ƒ¬8¿á]~QB–‡™úiÈ8êŠ c>H7Æ'´ã""zBJ*'T¤ü­–"}k „CŠ]dRƒ!—EöBXd/€•4øß8p¡Ü‘Ž~p֑ ͎,xðžñÜx¡5—qþuœoC(ç'u"4cŒŠ´à‚¢Á )…d $L„‚„‚ÄË.9t¤?$’\0Qü ›Â‚ŠÌ·£C™|nç ›©ðÕPÝ «}Ïfü>­Çù×Þågµ#”Ð…f!8w + +WÞ(Ï|Ä!Á‚…gñÁ5áq„žÅ ̤+Ì$a.9“Nð éë)°•BƒrŠ=ìH$$(ÂHˆ“-¥@´Ê¢õTP™i ÌwÅg­péZwlò„ðï¼!ü_tïÁ1 쨄ý‚Õb ¾v{„ý cã¾ãbðƒïh01Öd³U!$Ą’  §€VaÚ8*ĤÒ@=Ë ¢>re™(>õù/}K‡ˆ ˆØåÒØ_œÀÎ2AR]Ã`O™’!æ¨tŒùZ +ÌWR`H€ýR~“ç«E$ÄbºP +èev0CK‘q'й@Ì7ˆþ«'¨þæ Ê- ˆÜîŠr\Ã>&ȳ@~ «aƒüÖÌ—ÛØ£òö+ù{X>Ê”ƒß€8ýràöɀ7(q¶VH‚ ’pIj*$&ÐÀ9f̙ºÝ!v¥hÖâê7ú€z+¢bMDíbGd©*ýFU'9oTµœ×ª+œÕ-Πª“Ó§êç<‹åü®ÞSø÷ª@ÐóÎôÿê?óýIH䓐‚ç0‹)¦¢‚IOƒó0æMƒÄˆ_î=®_ã3ª[Ï|·…5»Ý略œ3¤ÝËÔæhŽóú5gx/4—xÏ57x¿kžðºµ}¼ÍÿÇ10½=„c ðþ€ÖŸ€.)~¤ HÈ¡€EnÙZ{È4:½M³L5yŒ$—Ò‡’Vùö'¬c½0lô{¿•ûnj¼§ú]ü^ýAÿn}•—î” SwQðDMЮ$øMÿ|úÝëÀ[:ÝÔAð8nƒÉ@ó,ҘÌäHB>î#/Ú~|–ÁqĒî2Uàñ<}ý©¹Ì·;u »3ù+îãÞ£¤ïý&îÜOØp/¡Bh3œüÕPxËÐtÓp_t=ᙨÙð*¤Ñ€ÿK_Â걺IÀÀ&ÀÄ À‚åã³(œNBQ(e¼(’:\çð¢ Ź77ǽ#g½={ ó·ŒU[ÚZþmóß7S¿ÞHù!ðzÊ¿E-É‚›•!ÆšÐ+Æú°Ëƛâºäñ9ã°Äjéi¬&"N}} ÈÀ{o®7sñY”ðˆ· ‚ÈáRʳùjû®âÄ)ís³\ïΞMÿoÞBVkN·Å²ZДõ¥°!c“èRú֐º´aÌ»Åç̇$VÓqéSmDéªìÓcYµi@~Ô<¡¨4ƒâVñJ' ïœs<”0,b¯KÄó%!dW©ÂîÁ"½Ãíùf×ëŹô¦Âböå‚R~]Þʀs³> ²Îü*ä´åâSÙßINf패ÎÜ';–Q©¨Ì¨‰<’Ñ <œqOy0ã¹jæ¨jo&¨ö`»³@9˜= ˜…÷Ýyî>Æs,õAƒeÔ½"€x°BBÞZ®uh)MžÖ°ÐB¿XRȶÎ[ȯ)\.<9û“ÿq]§QMÝiÀß$ì((H•* ‚"›ì@V,¸Êf„5@ !LK„@Ø÷°Ëæ(¢´¨Œöh5x˜9Óöˆ2Î§™NGǶsçöØȇ߹ç~zî}ÿï¹÷<‡gS*}.1UGfÎ5L%w]H҇Œ%MFçÆo‡ëŸû_{“Þ{’bw2ÞõNØfÈt)hßc£ÏQho…;à;±<—ì…5‰7öˆh~·8Úf™Öq‘›òÑ|^ŽÛåœB™¬ÒÓRßq–Â$M4”Ú2ÒKècŽ†w3.Gt2–";ImŒoI-Ì#uL$²9‰@›¶@ìa¡}/} ü(þþrÞ¾”9Á#™'vå<ÁlYes½$Îa¶èœóÅÂL· N¾ÇXžÀkˆ]æ;]ЛYܕÑڑÞÞÊŠÐ¥M“šÒɍi÷)ê´ Jër= !Õ§#‘ªw"6C’lÉÄR€‡7%xxQŽ‡õ +<<©r€ûU˜Ûò`³E)Õz®ì¤ÃLiâî Å,·a>Ûc €çÕË)õë̓´å*‚u9‚6»¨Éˆ¬Ïœ ×e^£*3W¨ŠÌuZMÖ?©ÕY¿Pª³2Š´r}ÿìm€ð¬àob øZfkÕVðPaå~ÌRM é|%Qz|Ǹ$~÷(ŵO˜íÞ%ànãûê +%ZnU°šSOP嵕¹½¤jö8¥’=G«`ß¡ËØ_Ò¥¹¯hÒܟ)Ò<„üÒfA®%¼˜Ãz¹)¬UšÃ#¥%Ü«³ƒe•f¡îˆÉeE䶉ª˜íò3»úÊ.â ÷ÖÒ¼ÃMB¾¯Z Pñ+‚•¼Ú°ê¦9·›$åŽP%œ+´2Î-ºˆ³%âþ&âþDqŠ¨ýól¤Z¡»`ߗàà+© kÌàs•9lá¦Ú3×àk2­"Z*?¶ï¯Šû°«"yo«”u@+a{6ˆ }jKKü«K¤ÁòbA*hŒuEü!j x÷iTo5ªˆÿ½ˆÿ–&à#YPô>„e~L`C°&ÇÁƒZSXQ›Ár£5\kÚ—´Þ¸qM˜¥¾>Ê®»ö”SkMâmeêþúŠìCJ)×»ª¼Ø_V& *WÄ"5QXÚN”è©<á ½@¸Å>B½ s…oh\!B-"y3$ÃÞò0ðT`¬Æ½z¸­5:<̶ì†É–øáæP‹ÞFšm[ɝZUüGõJæ>EMæÁʪ|o©¼èHY…8¨T*œWyå-$®¤Ÿ’W6Ec—-ÒsÊFå”ý½¾Fï*Š‚"o†dãà¥í½R€J,48XÒá`¾Íf:œ`¬ã ¶¿-ؼ£…bÓÜtÌ¡¡ñŒ³BÍp“ק{œ¯Ëõ+y~šÒ@~µ,¤ ª6<_ÞÉ®è¥dULÐ2d ôtÙçt–ì[Zºì?ÔtBɐ!䭐\€oJžÈÑÞ©ÂÀrÚ1p©Ë Æ{@ßãŽíê0Óu’ðêöèÊÖ¸]r]²Ky뀨1dzX]àÃkúsTçƒÙu +BV­–˜®ì&¥*Æ)LÅU*CqÆP|CeÔü›Â¬AÈ¿!m†pÖ˾¨øLpí~WÐþy¡ ƒz{èÖïô1Õô·){ÚË»O9•w&î)íHÝWԖu° …㕧øå4K3´Õ!iš0†¦3"Y3JJTϑãÕ+¨ r|䄆ÿ‘ê‘È­^ñþ€žÃý:€OuWÑü)´ÿ ¢ý«{ôhsÁhF}pÊ‚¥|˜f+<áX¢?»›ßÏpáôe`÷äÊêæ{³ºÄ~ÌÎÊÀ䎆„öv™öáð¸¶+±mÔ3bl뿈±-¿ b¬î}FÏáqÕ»,v\DóG†ºÐþÕi˜íèÐÍÔÍZ@՜#HçÝ1¢¹Á\„%wöcö•Ø홗Ò.¥:3.f»$Íp÷ÅÏÝ㦥‡NNÕz›jñžÔû¼è5y˟>õ•?}â•?íÂO´q$€6†nfDgpG p =ƒI=ÀÀ@+š¯B;¨ôD7í xÉxK>ؼ¥0³ì›4+ÖÍ6Ìgí“Žñ‹ž¾žï|êº`ïñ…r·èŁ¨…fÚµþC”k3žä…eOÒÂ=IW_zFοõŠ˜C¼#fßw¯ÝÃv€™~€¡Q€Ži´¢ùr´ +oá€s¹+» kå †µ„c®L“V¢-ãïÆáãî&۞¼Ë²?f`;Dx;£ e»¨†jg²A»'Òз—h˜v 7|âfø½køg/] ·ÿëz Ù¿Õ¯{x¥`ÝÁ®)Í,@å €Ò[œß™@ÚC 8÷Ø’Œ®`ôÁœ6°§Œ4“ãÆf1ƳGÌm4c–5Åȵ4–ÚW+·‡­jv„®ö8¯Nî Z]ÚøäÉÎ ã÷Ž_;{  zàÙ ¤ à†LpA8"—4`ƒö`…Î`"à’½pÐÌP, ÔRFC` +ÅÀlŠÂ¥àzb'±¨&jÆA©'…^R +½¥4TxÑP®¤£—†ŽžQ ôHÕGÉ</c¢h­ºm6F·Ý&èVjŠÂrâ +µlž&š‰âñœèe +‡Ù#nÈ#DÎÐÿ™ +e¤¯SèëNC¥áCCß@:*"è=S½æ ,ߥkŒPºÉ%;LQRÌB÷ýlt¯$jÌÐý„Šˆs_%nsFÅœ÷ΐûÙ€ÍÞ»£9ÁísG^Ÿx<”“¾RH¡?1YLÃ)ބšŽþÓõÐ/A}u¨øܽW™ ×W¦èµ…žElôÜk†²”UGɷԛÊΘ”]2‘ÝàÉþkÞ/ë6ë9hÞã‰Ü72´è–!¿K†–¡ÏXߙB51UHC'áOÇÀªcõqJ:ý¡ß2ST®e¡o¡ÙGŸœ?}ŠÍ?(ös‡•Ü!E oPq’7 hä½W4óú­¼^Å#^·â5ï•Ï€Å Z>W ÕSoÛ-¸Tj}'¨Ü润Êö–æ¸Ý M£ýuÍyûVÍM‡– g—ƒú/hF›5èÒDœÓ ëDdEa0–˜$L!g‘*¢S½i=ÉjÆËÄ0ƒŽøD£G3t¬Ñ9æ¿G.çߌøÒêzØF›ÖéßØþZd-t¯Ãm…ã%mÓ…Zçó!?9ÿÒârNÛîú£¶GØ q;¥EQ=QGÔN€Z À(òîM4LãfÚÀ°Î™êÑI©ç™Jz{z°Þý”X£[3ÓØ­ Ù¼kqyV—cWÙ\ŒYg×ýµCSÔǟ"÷8Ÿ‰(s9~PØ~ÔíTxƒ¨>좸6ì®øxx§û‘ð!IM8JE ¤úo`iǒ7gŠ`YÏáûl;x‘í +æÊ©ßgêý[at5#‰}!Ugє¼Pp6i‰íé„Õ ñëêã6»ÔÆ-‹)‰>$©‰®“VG7yTE_—UF?—UÄôËÊcPö=±LìxIÚ ¦€dsØ0<Ÿ¯Z@{Ž-ÜΑR¿.˜Â¸œjøóì8ö]ºECF¶ .-×îDÊ +Ç£É_:NÚ ¬NÜ&ú!¡È½2~Ÿ´"¾RVwÌs܏^ûâZä¥qOä%ñïäÅñ(ߓ€òoÐk"Œ!ídc@1ŒÌ3ÞE¦ð4—wóøкXD]Êõcœ[lظ †]—lq|ö,ëú…öՙùŽ3 +\+ÒÖ¹•§º—¥ìîM.‘}7ó€×ž¤ÃÞEIÿRìNºì³+©ÍgÇÌ^Ÿí3?*¾IÆ1ބüS8Ä́!9&¼Î1€¶<&Ü_b7–ráÊ2Wªi©½1_ì͍dÍIäUÏÏTfgÛ˜“ëT6k¹ë^ÝQIæÉ·Û<þ™^äµ3­Ì{{j•Ï¶Ô:ß-©ç•…©w•_§u+7¥ønJGŸé¨˜ãÈ=èCÿ<´çÒáÎR}¸¹ÂZVr y•œ^)§×.ŸjpdI«*/ŽWñyš`ÿÂÙv¥ósœŠç-q-š[ Ú5gdû¬BÙVÝ.¯ÍY¥ŠMY•¾2O(×g6©þ‘yKµ.«ÓomÖåZú>a"“Ü^.ø#ŸNúzðK\ü‚ g×8@ýž´£U+´¦Ëb¹eùÉV%y:»¢Eówåä¹n_°B´uþÿÈ.Ϩ¨Î<ÿîÌPDš ½H)#LQA£, "  t¤ÃІFpFš ‚RDŠŠ *‚1XÝQp]÷¸fƒ%'nìf‹‰=Gß}ýæÃsîÇçþÛ=÷WâR™¤à*êxåñ-^òønAIܐ°8î¼·4î†wQüSQQü;aQPø_B6ª€Ä1xüCÂÂTßÉT0^ª…¯Ë,p¢Ì•Õ_â­Ú-]©ÙQ¬×šnܔm^Ÿ`U“™fW™žë¤H+v)O­à–m«áÉRš½Š’»I¢¼¤³Þ’¤)ŸÜ¤ÇÞ¹ÉoE¹ÉD˜›BþLH$ oA÷€æ­26.Ê98»]æ¨pfõnªt–.ŸÛ*[;¯©h½Q]Á&³ê¼8+eî6»òœlDz¬BY¦œ[”QÅ+Hoò’¤u²SûE™©g|2R¯ù¤§>ôÉH{-ÊH#BŠàKÈ&àE20\—ߖ±p¾‚QÅ )qXéÄt)ø*û+ü4öÈWë֕†VË"ÍÒ­ ¶&ۖäg:Jóò $¥\IîN^vNƒWFv» -ëˆh[ÖiŸ”¬ Ÿä¬Q^‰R²ˆ"øKž³0½T꺭¤bQ’¬Ö#¾¸•¿UÚ+Œ‘‹¢¥ñÞ,½ï-})Š.ú$Œ)" +&¯€{ÙÀd1pqð5õ¯£¹k7ÐÙ¨‹Ö&+46rÙ5 ÞjŠúšò:±^qí:£üê(³œªX«Ì)¶©Ê,ÇdE¡Kü9wkE5/º¼ÙsÓönA¤ü„p£ü¢h£ü}þOQöQQFø_ò,…ޝÕ2ڃJàõ÷Óüw ™fÏm4¶š£¶Õ…¥lªÈ›ý5¤{Vëæ5…d7D˜¤ïÞb‘RŸd¸+Ã>¶6Ï)¦¦ÔuSu墈ª&ކÊ.Ïu•Cü°Êq~hå÷üНÿá‡)÷ +S’ÏxÎägz“7è.^ú܃Zàõ÷ìZiÜÝ>5ÆPt:2e^iûRuIÛ*­¬ýÒKÝn”Ôm¿7ÞrKsªÍæ=¹ö‘M2§ J—°ÆnHC§{pà OÜpÁCÜpËC¼ûßâúâ:ÂïšÍ=zW?÷  +¦þÃ-4ûµ ]@e*Ê{磤ϖ)ìsgçö.VÍèY97¥[¬“pp½þÖ®(£è±f‘)–áÙÖë:¤v!í;ƒÚê®ikwýªí¨ÛªýçÜÛnºî{áØúžØBþÀßé.^RÐÔÓ=¤õlöRMPz”æ¿A]H-‘u̕IrýÕbVύ>ªu4BcÿÃuG’LBŽdš.X°æP¹õW‡vÙÚï°¢¯ßqyß7Nþ}7ý{Ÿ;úõ¼sòë& ýÎæíÁ9:ƒtþ½´þ}ºC@ŐHÑĶQc$Ž:2±£ž¬˜Ñ%œ¨Ñ@µð‘`u#´BF6띊×_s*ÍpÕpžqÀp™éò“5~'[-—žÇˆíL.Ø¡óï õ7Çhþ2h½ ‚è1=D[!b܍Y?.b…Ž/珯Q‡©¯Ôߪ¹r#áØicÁؤ±ðÂ#þù7&üsÄÔë,1›É7ôö]Ô¿‡ú+©_6dâǁˆË„\ÕDÐU#ˆ¯ÙcÍ$«&3“+Y+&ÅlÿÉõœ¥“›U}'Ô|¦2爦Š4SJM¯©&-©mÞÔ)÷ë:îS´]{­Ã½úqw‚èÍäx+Ð}€îíõP2 +dŸ.‘W€à)6nªcémm,¹m +ßï°øŸiÀšèb1„91‡ ±q‚áBŸð¡G|¡KV@›ˆ¡EÂ1—Äaɂ:‘3j¤Q!9N¹À°ÉÄ,vP>õ'SÔߨŸÖ¾ŒÖîùXø°þ°ü˜êÔ¤N]ê›O}&ÔgI}¶ÔçD]\¨Òwa“% ¤„R¢)i…~=>BOŽÍ‚8º2Äٙ!.g.C¼XÄ~‹Ø®eë6±JàËl±Q”*Äâÿ\×iTS×ð“@H.!y`bÈ ´FdA@A™ 4 aJ˜"cD'(Š‚ +Š(‚
P눕¢Ï±´Úê+•ê‡§€â¸ß±ë}`ñá·Îþ¶ï:{¯uî¿«ÁêµÀ²I ,cÇé`ñ#ց]ÅîÐÁ²{I·|OÿdùEëƒÐ?XcÔˆ©€{“< +8b¯µ3þ7*ðý5€®3â5Á.ClU4°-¥§B 8Û°::pöaÍØQpÚ±³X'v“1Îée|â 2F9ï#¶ôa[ †lA{ˆÌ·SÉ¥À,œsì0\;‹ð¹€ +"_ †h€@ª |9 fæрW¬¼2:p·b5 àîa|áî'&¸Gˆqî bŒ{šø̽D|ä^'F¹‰aîñ†7B¼æMh¿äóXƒØt'î=çÜo¬) Æõ<<›yb*Ìõ¢Âœ p–h¬$8*µ¾ éãÂuŒÏä&â#¹ø@îÒìÓ~'8¨="he N2‡Ì7‚næÉ{Ìäsæsr˜ù79ÎzJ´'$°c}$èM³¿ö6§À3 +¸áoqŸ‰áy¸-¤‚ žÇüpÍ1q¼Ö‡oÒéïçä3†go7j¿qÞÂ|í\Ã|åT¯ó©IgÐéˆÎ€Së¹Ó9Ö3§«¬~çVŸó3^ç¡iœÆõî;þ¯N0½Ç ~™âŸþ.Æ܍,²À+çâ‹wÓ{>uÜË[cÔ}™æ[ŒÖk×ú —•ÄÀµö³ùk™ýó*tžÎ«f=ïbõ‰tÿÔýS|lÚù§ÙÌídߟ{‡Ý#î×»-š~C§Ü;çÞP‘,ôIÂF/£ PŸÄݓÐ-‰ µ;j1­3"”¸Ã:’¤wjY†ÁÉà<㶠U¦Ç—®3k]RaÑXmu8 Îú`À~ÎÿVÛýþgíý»íÙï xk¿;`bÆ®@°ÿjç°÷ƹ7‚ÞGhPªþ–²ÐýXCt3Ž‡ºbçR/IÑÎF?®ˆÒm‹Œ×o —¶„)M…ªÌšCŠ-š–o°Ú·¬Òfopm}Pƒ]]Ðá;ƒNrkƒ~âíú·-è¯*xŒ·5x[—wË@à; ¡Mô4Vý;A ݓè¶Lu%Ù¡ IÎÔÓ2Z{| Ñ* Ó=ó­~st’QãŠt“†¨óúµU]x©Íΰïmw„UÛo ÝÍ­ +iæm ião¹ä°)ä‡ïCÊC?ñË€¿1 fNKhø(h?/½2*êI¡¡[©tԝÊF6è´\DiKuÕlIò#šeËYñý=±ñFuR¹imŒÒbGtUµd5gëŠ v›£*gTDÖòÊ#ù"Ž ÖGœ'×FÜ"K#Ÿ“k"?J¢Àáÿø“A0M¬@èiB÷SpîUh îtº’®‹ÎdX¢¶L’Ò’>_³YáÍؗÄڝ©W›(5ܞdZ—nQ›cU!-ä”[j¿!¦‚».zûÌ5Ñ{Š%-d‘äŒp•ä_ŽjI¿£:ú½Päw1 À§Ãd_ŸØáh„áÌwWÐµL*º¢ÔDç•:臕fèèJ>¥Y)ÖhÈô¢×¥êÔ(ÂôªSc +“e&Iró2™Òj}‚ŠS_l_WÆ-Š­âÆÖ TÒCÂ|é)Ç3I¹] Ü'ŒË:&ŠÍº(’fÝÃ^ãzL›dÜ/ñ.<Às¸–ý?¶ë=Ê|ø÷¹ ƸŽËĽË3bf0F‘QœPI…’.Š“­])’ˆ)¤èB[(%]ä²Û•êìn‰v·­Dm¯¶vŽT[ÑUJ—ßù:ûê¼´¯óÇû5ó×|žßç÷{žy¾ÿLÅ2°ƒ,œ9Ðîl#(ÒJ¡@«¢r³=Ùì,½u™!©SM’Ó£ÌW¬/I[`°æ²…©Iö RÒbWç8Î[µ]9'y¯ó¬äj×è¤sê™É­ê™IO\g& ¸D'g¤êþ|€ÖÁ³ˆœIDz±œÿÊPQ®ä ƒ¼<'*;o$³.gŒnêÆ A҆0ãeÚéf‰YsD‹ÖÇYÅg.–Æe¬°·n 7'];äXBV¡œJ/ÔÐ)£y+·ò—nžd˜°)Âô˼h‹¿çÎÏÏYh=wã2Ù¬ )vQÚ,y¤vËðiÙ%Š)Y‡•aYõªÉYWÐCÕäõo”a™db¨»ƒÏ„d€³¸ß`þ¡ÍØΠ…Û6îàAf‘Ҋí`u± µ¢Ø‹M,§»hÇÁ‚íSb·E çn±˜U/Ž*H´Ž,X%›¶%Ó.ls>š¿ËabþAǐüSNÁù—‚7=p Éëw +É%Ž!9ŸkųxÏá)-v€ùû¶bE8{⺮`u©¬,“ÀÒ= +*¡ÌƒŽ/óãŖéŔ„ f—L7ŽÚ=[¹+Î"|W‚hÊW+­Bw¦K'çÙÛý­¸’ ,:Áýˆº¹€í}ò€mD°õs—±ƒsë±ì¾×^RŒà(’shRÀ’X\)‚øƒwPCÅTŽffUò¢*'êEL;mV1ß$´b¡Ù„ýË-‚ö¥‰÷m´W¾Câ_^!S~\æ[~ uI}÷¼’ù–ŸÒÿ²ý¤q-v P…ëß»`G)@N9@ΡKÄÕ°Sk +³km ºN3ê<©ˆ:fjm0orm˜îÄÚüÚ¹‚ñ5ñ†5KŒÇÖ¤˜úUkÍ|ª·YxWï³ü¢ú‘WõE‘×ÑNѨª—âQ‡?óJw0ï%»™w’rf@Rɼ•eú%ǘג3LŸ´‘y)½Æ<“v2O¤½Ì²·ìCáݗî?éET6@\$Ȉ+^‡ZFRÄُ"ʉ4qšA“á±ô‡Df@¾šyÃe2¯¹\¦+d^rÅì ®”}ÎígŸrGØ^®ŽíáN³¹ïÙGÜö×ÁvÉ{Øù[v9ÑýMNôîÊ ÿÎ_WÌֈð(YñÀkñt@¸#q?4ã©wêit¿Ëú¥óBæ™jÓ«LcŸ(µì#e>ûP¹÷@±‹w_±—wOq×¥¨áu*Nò:”ßòڕ—yw•í¼[ÊÝ6å~‹Šè_UÁ%1øù/ˆ;æ{x¡Ñb ¾Ø…>Žö ú¿K=÷ ¥ŸŒŒ¢ŽˆcºÝÙ.÷Ul‡&ƒ×®ÉáýæV sÇ­Xç¶[©î-u…îMu•^›ú˜ÞuõY~‹Û%þU·ÛüŸ4ôÿÃu¥yæqÿx"ˆŠ*Ê¡™ív²“lC5Þ¨x €€ˆ‚ŠxŃ¼ˆJs`Vm\Ícl®ÑT“ÉÕf3iwšN»Ùl¦×¶™Ý´M»›nûîc·™µùã3ïûßwæ÷<Ïû>ß›¾÷]ل‘¯mÂü–‘¥ÿ¡¼„qÛîØN +`ÉTÀRi€¥°àyòFxºsî³.îq|þãr·‡Ûµ„÷¶ÕyÜßÖêyo«Õ띭}Þw8Ã>·9û|nrŽol™ö½¾å„ïʖÒµ-ˤeÎ=òUΧ䋜o)‹Ìƒœç`ó¯À¶£ì"Ê&¡#Þ3©ð<#¾äÆ“´ÍðQZ2î½Ô\ü½äb$•ÇÍD½×õÞ+ mÄk ݾKñvÒÕxùrü~¿Kq”·âf(âÎø/Ä]˜»p6§âŸQÇÿ4ÿñ3ë` (;Å eû–í /rüà«*<æEŸy¯Ã»Ùq¸[¼Lüjfa9£Ôó +Wã})­†¸˜j&-¤ZÈó)=”³Éýþg’GN% <‘4IK:4›t!x&i5äXÒЩ䧡G“HÆÂ\ȑ5)XèKX’7`\wÀrÜáß>xÃ> ÞçÁ]á¸.äà–©øKü<÷ ¹Å^ó9e>gx:ÒÉ,£ßñÌfÿٌŽ€™ õMî`Ð×ü‡tWèDúL˜+ýípúí`úýðé_„ïãþ+ÂÉÅÂǐÑ5ÿ‡¥ |¾ ¾Uˆƒ‡"wxPä w‹`EĄ+â͸EQ"þ\!ÏýdA¡×œ°”8#P“§ó ”É܆€‰œVê‘kð¡ì=!ã¼½aûyã4gÖTøh֩ȑ¬ËtGÖ]úïú ï;z6¶&Òþ +,}²sQçDŸö‡%¨óIÝà¶ÔV%~pYJ‡ÙFÜii~NÂu?V,ðš•'Š”äÃZÿñüÚÀýBsS` ô„9øƒ´¡¼}yt{Þ\T_ÞbôŒÞ¼¿1zøßDwó±5Q]‚ŸÑ_Zûµ|#x„~s÷Kn)ñ°¢$ÀU9 ”48UöÌ*·â§å©„‰Ò\¯CÒ"⁒R²³Xí?"֋ꃋZBû ­´¾‚=¶‚zOþᨮüFgþyfGþ*˒ÿV{Á3f{ÁOŒ¶BlMôzà 4ƒe¨ë Îµ¢FO‡ å>pZ³`JýÞUžD/ãy:ùĽr y¨´Ì¿_ª Ü#© ¶•˜C{Š-4k±-¢CFûàêË(±õ^Ô½fjpp´–Q0f|7\»ÍÍ^âa3d{wUåûîҕøµi•M Õ¤© ©¯0ьê]‘Õå}Qúò¦NåbWªŽÇT¨.ŪU÷¿ÇV¨^°+Ê1Â\ïË"€”hÐü¯ üù:Ôùеg=ՓÁÙŽÆ×pö¾·>ÉÝjÌô²Ô +ˆ-Õb²Ù ÷oЫ©Æ*CHµ®¦×µGhµ¶(M¥ƒ¡®<ÌRifc”š‹± +Í;Èç±JÍ¿ÙJ ÆZS¦Á˜/}ŽÎÃtÝZE3¸ˆrÏ î7ƒ®€.ôÜg&£) ú›7€­é÷x«9Ðnâz67äMõEäº:™±œª¯­ +ÖÕԅijZ#Ê«»ée†!†BUªŸ‰‘êc%úÛÈgèý{¶´ +cɪ0æzO¤ï¢«ç2šÁ…F´Z¦Ú §£•ö¶`èmgƒµ}®½-ŽÐԚæÑВãcl. š$¹,°Ò¤ V7ֆ–54‡Ë뭑²ºhIÝf±ñ[d\ˆ)2ÞD>A¾c‹j1¯ó‡Û:´õçšQï´LtŒì°wxBOg tZÐf݈kêÜîVߙâ^ÓÁóÒïµ–b²º]á¯jÓP­Õ!²SXIsG„¸ÙN/lÚÇÈ7O3…æy–À|ƒ-0?a LÏYBÆ6bŒõ>@ëp½à-3ê(ÿÍ.Ôûº‘ž7°ôR ÅFÓîßâêvsðÕ¶D‚®7ó¢‡ï£ê‘Ý2?YWy€Äªw6„vXhŽ¾þ®±¨Ü]“Ñٖ³ že•É³Ñ˜úJ‘gý‘g]§È³fPìQÍ%Ãí§üLÊÿË^`}Åa`a­ÁQ íPDþ0÷Q ã)¼›Fal“7¼šLs:ž§ãàq&†3sàޜ·æ0ªe \[¶À¥%ú³%ÌùìI8·´Ã¹ù s>ý‚páÙ´ï¾úðiíû¢ +à]ʞQKù @Ä Ê?›ÜÏI¡oUÂ鲎Wôp¼ê‡«ã »6DC{=ö7fÁþf:47—BsëÏPßÞ uÛ~¨Úª`ÛvÊÛ?ÁöÖ lo>månV•¿¥±¿GãžAÙ 'ð&À¿ð:Œnœ®1ØߒBÓ¡‚ºC U§¶(»| è„¼Û YO"$=3!î™QÏ2°ž @÷ׄBzèæ=HÐÛ÷Úfº´ºXò0¿˜IÙñ”FÙã)Ûó_€Ëu@wPßlP ( PC2 …hÀèM¼ˆ? âÈtBô" ‡Ï¸A +¤ §äÜkSþRÚsïӚ¿Esž@Ùa”=î2`¸8·öí”ÝȨlñ3€q}ÛðJCè÷Hb >$˜L$)„^Šœ>Š8ͧÍÇéÐqZt^ñwKÆÐ-¨×uô·÷×D‚«'3®šÅ¸2qŲ’¬'›Év’A²—ç‘BpùaRNªH^ɛñB~ CòôËðXÎñHÁñPÁÙCåÿãnžànðÑDOµŒð£ZÂÀu TÏ Æ5ï2®^H–“ÉF²•ì"™$—°Wê셺„=WÅ3užª›Ð¯¾ŽGênj6{é’ΆF.fƒ#W°'úµì‘~#{¨ßÊúô;ÙýÖ«Ïe=úÖ¥?Ä:õå¬CœÝןd÷ô­ìöÈNvÃ¥_¸â…VW.ºD.ºrñ…a¸åûêh+iÁýœ ­‰ß8ú†—ÞñôJc=ßa} X¯aë2¬b†õì¾ak7lcwÝ¿fwܳØm÷ЗH=_2p5Y‚‹Ir4'jqb²j“Q•<‰ULž*”%Í'¾'9”°@f‰ÿȦ0n…¢ n2?öÛ¼Ø/T{cvØåÄdj²bòí3cŠµ{bª´1§t¹£ÛûØaG,wøŠlãºáx0”´O¥~‹ñgÓ4¥JñCŠªSGáèôñ(É§& –iiâý)s¥ùSß·Ù;e¡<'y™2kòJUfÒZõî¤ÏþCu™5}¦qüûK¸o„\¨µõ Z­ŠŠ€€ÜH!„ @‘„+€îû–Ã9¼T]Ä«µžuÜ{»ÝÙît§Û§ÛîÑm×µûÛÇÙ±Ò?>3oòÏ7Ïó>ÏäýxŽDöxGŽð#ûôGžó퍼â×yßù1¿3êK~{Ô·Ëo‹fý–ÆÒ_Õÿ»$òÞTà¹ßíT.n¤¸á²TˆwR7à\êvæ¤4œ3•g7‘œæp$Iå4–˜ë2’ wŠ7y ÄY<ûâ¬Þ=±¼®ØAߎ˜£~m1§ý[b~(hŽ¹-hŠýHhý\Ð÷œ`ýëÿÿ%lði<ðå?"ﻝAïìtWäΰ)ø8“¾3éAÌqÅ^Îaù»QYŠÃpZºÓ€4Û¥WªsëN)ñèL®ðjKªãµ$µú4%öùYÇýëgu 煵‰·D–ÄŸ‹ªŸŠª“ž «’Øÿ—|ü1ø™‚œSÜP“kÐ_îy¥Îdú`ZµÇT[0žÂVFr2zÒeN +•K»<×­E¦÷hJ3y5¤YxS}k¥]|‹tDP%VHçEféu±Iúc‰Qú™Ø˜úo‘1•}¼ä‹ºêÁc%õ€¼ïª–ÞÙ9ôÎUs0“í…cšÓlƐfÓ§çveÅÙ·©¤ŽÍ™.J[}FG]z©—%½’W¥¨÷­PtðÍò!A™|BT*Ÿ˗$ùã½üS‰^ñµX¯`E„аŒ§t¿–Pý7)ÿr>0Oœ¤ó„Öc¹ åm@oî6¦SÊmÍ9`ߨIv¬ÏV8ת³\«³òÜ+U¯r•™g̬ó-Ílõ/VôÊ£¢BåY‰N¹¯ü€xBüK’¯dńˆ¾ä3šÅ_Ò Ü£Ú¯é€‹…ÀÙ"`’~ǸÎCBô®GGAÓ¢ÛñæGÙÕå%8XrӜ+µ™®æœwcN‘g‰ÆÈ3d×øe7ó Ô}Â|õaQ®ú´$G}%@£~Hü‰øJ¢Q³bB”³Œ'RÚšƒÛyÀ"eÛèÉs’8Bça½+zõ|tÖ Ù°•iÐïâÔEØUÆ9”HŒ.%:»!_çY˜Wê­Ë«òÍËmäks{í¸H­=%Qi/djï þ)ÉÔ²b•–-ç÷´‹in—({ÖHÎWFÎGçÞ'´—ú ¹ì5ԗ25e;8•¥a\sIŒ}iq²£Á p)2¨Ýtú|¼¢b +ŸìÂ~VA— ³`T”¡;!Vè.J亻rÝ'Ä?$ +Kß±¢åü–îá!Ýýu=Í"åŸ!ÿ¤{¸Ks°HÏ_[p¢«"çª$ï¬bP[í‰*‹æšõ(« b –ÝœBË~»üêxmuªSv•Ò%«2ÇMYYè™^aô–•×ø¤–·òS̃‚$ó¤0ÁôŽ(Þôž8Îôq¼éKQ¼ñ[Q‚‘&”½â'à]êÁ%3í£…¼³¬Z‰Z:WtCYƒ?Š֠Ⱥ…ÑYwr´ÖpnvCŒ}V}²£²^á¬8¨v•Ìw—Ö•z&×Vók›}ãjúù15þ,ó‚(Ë-a”åW¨ê/ÑUÏ V]Éú¿äÍÿuºÿóTÿ©zò>+ÐC4å¤Å-Î(lõA~Û*hÛ7#»};£jåd´Eqm‰öim2Gi«Ê9©%×5¡Åà×\áy ÙêÕÔ볿é¨_xã,?¬ñ:_ã/øaÖÏùa ÿá‡Õ³ßãõ`ú>GùSÍ´ -ä]­ä=mä]]@^7š^/dõ‰‘Ù¿éýAõ‡0©ýœäþXnbŸÔ>¾/Ã!¦WãÝ[èÙcv ï©÷Ø×Ýå¹·û°÷îî³¼î%Þ®îŸòB:ŸòB:žù„´³ß㦉f‘z~š²tÐ.tVÊ.ïòÉ=ŠQ7¤ñ![äñ@$ŒoGÜx(3͉OäFŽÉì"ƲìÃÆòöŽ–9í­uÞ5ÚáºctÔmûÈi÷m#‹Á#?r>ô÷àáo<‚YÏå,Ð ÌQý“”}¨hï§Pv e猲c@¤b¦¼=%FÔô:ìŸÞŠˆ™]› gBgb˜=3)œ™ ÎΙîÛÓ»mÓUö?˜nqxkzØqëô §7§/œÞœú³Sàñ¯'X—Àc¯¸@ +v’ê§ì>ʵ’šº sH:D’&îuÃî9_ìš[‰s°c>oχ`Û|‚mq²¥2oÙTÌ›Žh3q6٬܍¶~î¶I»õ¶‹vël÷íÖÍ?ᮝýÊní9Ö~íÙWœ¥ücÀÐíÂÀ2 NÙg€Ô9à©áž‹@ðe.¶,x pÍ «°iq6.aÃÕ]xãjÖ_Çº%Ö,eãõ%V/Y˜UKÌÊ¥#LÀµyFrí6#Yú„‘,þ/<爯°ß1Eù#T{'õ¼Žt´”²µó€œrcIICm׀Í75ï9`åwÜñ…äÎ +ˆï®ƒèîïí€à^üïł_¿û9ð}PŸVð Áûá)x=¼χÂëÁ_áuï¼î²ß1>F»H}o ÚM³´€ô+@Ü°ïå¿ lzxý> þ×õÕ¹Åüﶰlˆe£ DË‚((`¤W%ÑÄØ 1`A,H @DņŠ(Š< âàC‰-ŠO1D!âŒODQDʝÑïgã0¿¹³;Ë=ç;{÷ûÎ9ÍÁ¢F Õ9ÌêÔPÔY“Þ0­s C ¯Y½Ò¿#ÉDHþN„øb:Dó ¼X +AC¸†FrŸ<û(g3Jßù,Zû”=ÀXŠ=æOZÕÿ8àðÐû `] hêÅ%Ò+"ˆ6ª!¸j°€&;àÚ@à:5¨Í£©1Šnþ@hóm¡¾… +}k7¡Ýj æíöGK(þœ]À4ªû8Zw }Äë0ø`Wè.–Õe@~5ƒîGn™Ðÿ+€Ûj M Üé ´÷î:÷‡¾kÔRsôˆäG´ù?Î:©àô€=¡@ON}”DoÍØGû­=˜b{¦øç}Ðó`ј]$7®•b·“ïu)ŽŒb˜Ñ½5t?+àÕä…ðʼ¦fõ 5ŒêÁ(F?¶‘ÐCÇÊ?bÚ>`ÝhÎUŗ`RšwÅ®`0„’oÉ4’H%$‹¬"ëH>)Äk£ »ðxŽCxŠjt¢©hè¯¯(möÖýÏ0k0«ž”QéÀÌìÁL‡€É¼ÁLÁDcÁ„“ÈO”WI%KÉr¼æW£‹ß€—|žóExÊÿŽN®¸ýèàþƒûÜyÜån¢ë@߅ÛB†VÿëѬ»5˜¥Õ»<ÌûRMœ)OÊÇHùD‚É¿#3ðZ> ]ò…x)[‚ç²,<•­ÄÙ:tÊ6ᑬÒá¾t7îJ+Ñ&­B«ôZ¤7pCö×ä]h2ehT¼sEÁ¸˜Î¬—9å¡¡|(—î¶T—þ”åãƒ7š¼TÇâ©j +:U3ñP•„ªÅ¸§Ê@»ê7ÜQå¢M•‡Ven)wà¦rš•{q]yMÊüWՌõCÔkºp^øZsƝ{¯æ=fK±m•`½‰­éf£ë9/ºÇcë<°ŠB»åw¸­m"nhçãº6 MÚehÔ®ÀíZ\ÖnÂ%í6\Ԗ ^»,¡Öò4j¬špÊúWýEwü ÆëÎøªÏ°~f`}å`v¦`ö*ºjñ¦Ÿ ž|ùîõvC«šu!¸ª‹Åå^“ÑÐ+õº9¸ [„ZÝÔ貸³º•ÜiÝz€;©ÛÁU۔qÇmþàŽÙœàªz_âÛ¶ól_*m™`_&Øۇ +>Áì)¾ƒÌQæDy P¡ó+K´ÙÙâz?'\îç‰z½?Îé#qÆnþ²›ÆUÛÍäŽë“¸cúî¨>;¢ÏæësùCú üýVþ}‰ Ò®B°×ÂܾUXfÿLXêÀD%L¼ó3lÅw¦Ÿé`φˆÑ1H†6Gû[¡ÎÑg\qÒÙǜƒqÄy,wÈy"·ßy_é”ÀïsšÇW8-ìqÊ”;-ìv\#,sÌ–:‰Jœv‹v:;9ß:wšlqf’‚L²™äâm|ÚN:Üh{u® â’AŠÚ!æ8éb‹£nqÐm*Ýü¹ +·®Üõ[¾Ìu_êò£ Äe–p§K²°Ø**2,m7¬֛l1l5)0ü.É7TJ6ª¥ W¥ë\:dk\^ËV»2YîgØ`ÚÚ(vËšùFµ#9œ.Æ % ï‰}#úcÏw”ðåJFsÅÃcøíž…žS…[†Å‹6›-Î÷X Þè‘f’ç‘%Yç±ZºÖ=_¶Ú½X¾Êýßò•U¦9 ¦¿ »§ÈÖ¥ÈÆþÏtÙ'˜+m¿¿‘¶÷Z#PMŽúñ88Ê>Ö(óÕc§ŸE¾ÞÜVß~³O8¿qT¬ oÔDѺ‘ÓÅk¼6Éõž+Yé•"Íñʐ-÷ʑg{å™fzmS,õÚmö«×aeº×yeš÷å/Þ/•©ÞL™:’™}ê•?>4sЬD}>͟ûÇP¯o”¢ÔØ ;ú`kÀ@äxryþ£ùµÆ`A®1Z¸òëñ¢œÑ“ÅÙ£ãL2ý¥Ëü’e¾iòtß,Ešï³TŸ-ÊŸRÕBßê¾gÕó}[ÕÉ~ÏÕóü˜ê=å©×híç(ö1:æöӑ»‡Ž™Ò Š‚Ô(¶Á†X2”Ë Ååd† 3lj2Æ|/N˜&I øIšê?WžâŸbºÐ¸Ôl¾q•rž1_5׸S3ÛX©™e°ÂâÇÀj‹¸ fòÄ<.ˆiÞSÐæGßCp" +80(§Ù¯˜®[èu^”¹ÑÖȉé‡Ì˜AȈñäÒ¢}ùÅQ‚…‘¢äˆXqRÄ÷’9áÓ¤³Â–'„ÍSÌ ûE–­Š ]¯™ºÝ|jè‹)¡Ç»Mk"-&‡1s¢ùT‹?pžjPEq÷§Ð췍®ÇÒ¼3NŽå±Z,û¦Ò¿qBj¬;·(vŸ<.@0wl˜pvLŒ8!f‚ÉÌè)Òøèxy\ÔÅô¨åÔ¨Lõäȵš" ÿÇuyGEu¦qøwgfd`€™ÁÅ.誈Ši*e60ƒ U‚RUZbì2ÇXYKˆ(nŒQ@M\)GOÔ-–h²®kÁ²nŒQ¹û“ã9ùã9÷Þ9s¿ç{ßû}÷¾¯ÖÙìbˆ<Õ31òŸ=uO\u]ÚD¨1èDõ[~:s[<ס='ˍyÜÄëµú¨ÖkPž0e £P”0I(ÐûHòôҜøy2sœÎ&3.Nž›Ô#56CiŠÉuXSìhŒ©vNŒÞ ÖGïÔÆGp‰>Ñ36úoäÏ_kã¢E Q¿åŸÃYÆ|Œñ7³ìjdÿYÏc¯?4Øb¥Ñ¥IýQ˜4ùI„\ãtÁlœ-É4„ÈÒ 6)‰1òäDƒ")!ÍΐcŸ /TÅë+bõëÔÑñÛµ ã›\¢âÛzêâ/“Nž¿ÒFŋ¢~Ë>‡Ó\Ÿ3þ¦T`'ٔ¬âuy²%&G,5õE^ŠrRÆ!+ešaò—¤š‚¤ÉÉa6IÉѶ†E +ý¢»¸$³}LÒRÕ¤r'±Vaܦ 7îw 3wY`¼ä²ÀðÐ%ÌðRf5áQý–‹|'€Ã&`_°Ô¥³ïå;€I 2ŒÛ­‚çî^Û8cGbtã8Œ²Nş¬þi ÂkÜ­z ·¦a˜5_b­[7 ÿ¼W`=.¸Z¯ +®׆—×]âï4T[è]MoÉ:À¼‘ë`+×ÀÇ@È.Àß +LÞ Œýp? ÇÐf' iî…A̓0ðà 8è ׃SÑÿú +Æ{‡tè{Ȁ>-fôn)Eϖ:¸´4@Ûrš–o¡9tšæÐ…·XÖr0ߌy ÛÑTÆ»˜Oï¬&`ÛRÏÀí3`àQ ÷19´­*hZ] nu…sÛp2Nm“àÔî U{0‰‚C{2ìOäAy¢ +víõP´7AÞþ%¹ÉóÇP´ýJ^u³qW×ó}@w&cNÜ„7sÞGè§×í80 èu +p>-ÀþœŠó*ÈÏka{¾lÎ…ìÂ(H/xArÁ‡A$üupÓupÃ}ÍDwPÐÁA;Îñú6yDžt³Š±3çæ=€ñSîþ-€ÞiôŽ¥w8½ýO.¼Õ±°û]’°è°#ŽÀ÷Zàr_àÊ`àêHD€¼)PY^ãKø:_À×KôõFà»ÁÁnÜ ·»)kàûp°ˆ9×}Î5ØÊøOô= ¼G¯æ;Àá ¿ÿ„·ã¦ø¡pKŦ@ ü؋…©+pÇ ¸ëÉBy:ð€óxÀy<äK°“¾“Iïd²;ÿB¾$gºÉcîM|Þ ¿‚èžþWúÏÓÿ Ðç"sO¯’^éï-ò/r—ü‡Ü#÷méP²AaNk€§Ìɳ!Àó1À Ì/Y$½Š^óãóšóèâ†ëbà]LzWs7¢Óˆªþíˆ0"ÜÉDâKBI I&Y¤€”¡ Ux…5x‰õx-øÛð ø{ð?|Šÿâ3¹÷DM?ˆÎ} :[žK‡ñWO2ƒ1 ¼F.~EG+§ë#þɗáK¾Ÿó q_Š¿ò«p›oÂ-~#nðÛð™ª×T]¸¢:†Ëª^ô©nâbÿ§èðç +8Kœ!N˜×>ÞC”ÇðøÙ¾<O}'ãá iøÇ dÜ”Ž[ƒ¸á[„k¾å¸â;—ü¡Ï¯Ÿø­ÆE¿f\¼ ½ƒwâüàNœrg†œÅ©!×pò/Ñ3ô¿Ì94L`º½ô"Œ"}*/¿–â§@%žSüßÂçþãpkØû¸6\‹K͸8†ÞNœQ‚³³p:  +§jp2`9N¬Å±€õè ØÂÙÎy€éy’9ØÇt>`:G}ËvŒúƒm›Þ(/»½cH?ˆ®5•¸'ã©ôIp?P;¾¸2z4.Ž™„óc§á´: 'Õi8¦¶ã¨ÚÃêèVW0Õó™.õbf¿z³WÝÈtª[Ùõ¶=h/ÛÔÃî +ºÀî ºÇn{ç¹h˸_E›Æ â¼´zy¥ÿ’ÊɓÉTb5À­É ®OàÐ7®?ÎO‚ßEOH…hq`âtì ÉDgˆƒé)`ÚCʘÝ!³Ù]ÁÕìŽàZv{ð*vkp³hsðѦàÅ­!‡ÄCΉׇÜ7OüZÒ4ñgIÃ{ÂÿYûÂ*w¤}? ¸Aåµ/‚zýPg&óè™2ÝSÕØ:¡Qh MÂÎP3³}ªÙ:5Ù<µˆý@SÎnÔTŠ6hŠZ4uâušq“¦UÒ Ù%Y£éâVkNq+5W¥õSŸH—OýQZ*H—yYêå‡ITꩤމ&ý8šùbiÞ¡'çH¸ûÃ}Ñ1 +»"'b{d86GjÑi`6D¤3-vv]„‹m /­ Ÿ%^^%^¶DR¶’[ÖÂ- Û&­ Û+[v\^Þ'_þH¾ â{BWG²7ù&”ž3Ò¿|œœ º)Þ-F{ôlM±ã±16ͱÑhŒIbÖƤ2«¢­l}´C´<º@´,ªL\5G²$jW3­NºpZ£¬zÚfyÕ´ŸyQG}*£.*æD=P̎þNQ-øx‘¿æyO |JOÜiÍ:D'Åm”ÇÖxZüѬS£Q7«u‘¨Oˆgê ÌÒx »$>[T£uŠj‹ÅÕZ¤*®Š›W+›·F^×êã‰kS”ÇRΌëU–i¿àgh¿U–jÿP”Æ ¯ðyÍj9nÒÚ/LŽ§]ÄnŠ·Òs·!I‰¦ä!X“2õ)!¨K CmJ,S“œÌ,HNeç'eŠæ%9ĕ‰’Ù‰eܬÄJiyb¬L·R^ª[¯(ÑíTéò…‰çø‚Ä»ªüÄ|~ÒïÊü$Añ&é \ÓÓ9 í£4{î±ÐÌIñFò£Ñ Ǫé¾Xn‰Z㻨1†b1Š©2ê˜ÊéÓÙÙ‹h–![\npIÊô%\©¾BZ¬_ +Ô/÷É×7+Ü)ەN}Ÿ§?£ÊÕß&ž¿ñ¹zAI(^s?¸dN‘~7µ_m™ÔçS¼Î¬Jå°Ì<‹Íñ íT¥MAeZ$SaÖ2s +[–jfKS­¢âÔ\q¡©Ë7•K]¦*™Ó´Ì'×Ô¤È1nåíÆ}ª,Ó)âF?›é?ôý•Ï2 J/ŠWü<¿h¦³Hú]ÙÔçSÛ³žâ5iÔ禋P“ÞÕþ˜›1³3߃'# e1LIF"[”nd Ò3Dîô±Ó’/ɵ”Is,sevK­O–¥AaMÛÂg¦uªÒ-õK·\'žQü ŸnøŒ4AùšÛ´½´îÒï̶؁&ŠW‹)—ù6s²†`VÖۘ™ŒÒ¬PeE1ùY ŒËf`ól‘Ö-¶Û\’l[)g³Î‘eZû¤[×(Ò¬›xsæUªõ„Êd½ÚÏdý·Ê”ù3Ÿš)¼BùšÏÈó³¤uØ´çÑ̙KP\Kí×|ÊgvŽå9~(uŒD‘c< +r5påF2y-ãp¤°v‡Y”å°‰­9y’ŒœbΒS!3ç,’›ì«F{«Ò`ÿ×ۏ©R엉§*½ý'^Ÿ-(_aðr…袙“h!êÔkS.s(§™N9Š]Qà—;yîIÈq‡#ÛËØÜIl¦ÛĦ»3Ein‡8ÕU(1º}‹ +$pöGn‘?ìÅcUkÉûÈ(‰b,% Œ¹ÄÀšJ,¢éÅv±¾Ø-I..㋪¤ Euòø¢Ÿ¸Â݊ØÂ#ʘÂO‰Çʘ‚—ÊØA›ÿ'“GHo­ÅtˆEÄ,¢þ9g0°—ñ°ÎŒŒò@X<ãaöh`òDÂèÑ2O +“â1³I›HçqŠãËK%qå•\LùRiÔÿÈ.ó°(¯+ÿ¾Ù„afØÔÔaQA¢â׺<ØTµ5Ú¨E£A¶ ¢ÀŒEE†qA&.TD0j]S4‰VmšX×Zc4DMòõ'á±>éï3ÌÂ}ï9÷ÞóݓTà84ɬŒOÚOZ”qIÿPÆ/yªŒ_,*ã‰Ê·º8Âì¥o{PÄë÷z’NóýÜØ÷-gߑ¢ÄÔn˜’Ú“Òô˜ñé1—>cÓÇ £Ó§#Ó% iïJ‡¥-”¾•–,‹KÍRĦæw‹I­pˆ^±—4;D­¸éòÄ!:ùg‡èåâk˜{ëRž‡e܋$“$Ó»0˜• +Lg«6)CŽ·×8cl¦7FgaTV?ŒÈ„„ìx Ï…¡Ù„øìéB\ö,IlÖ|ÉଥҨ¬Õ²Ye‘YÛ䙵ŠðÌ&rM¾æ±"<ã'"*ÂWýB[ +X—IYIoRðºÙ¢M^ËÞs=£ÂÐ\wÄçõD\žCŒáˆ5Æ`ã0DÇ"Ê83…ƹB„q±fL—ô7æJú·HCóvKCòŽviHÎ#iȆe!ëÅ×Ô¦°.e°.¯²I +ÿ^˜ ̦{êö~F`8[֘B99c@±"‹uˆ(AxI$ %±è_2ýJÞF_ÓT„šf!Ø´zS²ÐÛ´Nèe*Kv +º»PrQÐ? +_H +Ä×ì\ la –›dð5i÷!݉tOÜÌø‹ØR r+ZáˆàJWô©ìŽÞ•èeE9æXèÌ 0‡¿eü,sÐò¾–Õð±äÃÛb—å ´–3КïB[Ñm¹(xuQù!ëbÏ#IÉåYØÄ}XLa[8º ˆ«lú5Nð±ºÂÛê /«ÚÚxÖFÀ£6îµ#àn›7ÛL¸ÚæÃŖ-‡l…Ú¶*Û ¨joAe}u͏Dì¤t#Ï#s½*Ÿg¡˜ó1÷á6®Jï Ýô×Ò¿ð­< pnPBÝèU£NþP6êá؇Æt³€Â>2ûï µ¿‰‹kgBíæC©žü•ÜfQú–ttR@ïZ°| 0Ÿ1ÏäO'0Þá6 z?Ðï ý €Ï'€ûQ@Ó86Ë!=¡æ¥Ã•x-~¤ ã0h兠•ãV>€ÚxèÚ¸¹Ú\[ 9ÆÏ/“‘Gä0ß+ÍÀ"Æ<ÛÊ5`¼#ÑßHÿa ÿÒý8àÚ¨ÚÅiðÂAÎu#œÇyÎ㼖➼ õâŜ—äÏíœG;/"WXð¯ð _åB_-'{Ï9àȍN2¸ÖIŒ{¿šF÷(Æ;˜Þ¾ü™Ž^¯S€Ë@y\¢»|N¾ ×äÀu'^Ê5ÀMw6'݁¯t¼$¿jV¢€;¼ ßáÅà. ñ=ø{\ôû\äû ôþr²“˜žyÌù Æ=†î˜fÆß +0^-½z»½ò~I8m|E¾&ߦwŽÍœŸ³>çáÁ½ñ‚‰ɤ¿¬ëDtò…Ø­;D¼¢éM"ÉP2ž$’ydIÆOÈÀK¬Ã äáä£Åøex†JVғ…;؀ÛØDW!-¥tUÐUÅñ­¸†Ü2Gq§ñ?¹Œãžã"G½@οèêÌ\¨!ªˆ“Û/ë"éÅo™ã8Æ9ŽÎiôͦë=z–ГÂQ3pk¹Mrpq«ÓUF™ŽjF¿g¹§ÑŠSÜÄmå$3Ù‘O"š%ÿCôpb.đh8®‰ÒÏ!x ‹Â×ÒܒNÂuY"®Êæào²…¸$[Š òTœ“¯ÆYù:œ‘çáSùfœ’›Ð*/G‹|š6üEр&E Ž:´ãˆã=؝~@ƒJDý¯½dœ j¥|å<\5x¢ñÄ]•7•\u‚Kª18§ú ΨÞÁ)õ<´ªßG‹zšÕi8®^ƒ&͇8¦Ùˆ#š"֔Á®ÙŽFõÎõ8è|\Ú±Ïõln/`uQã.b÷ˆ>ôûòؐ<Þ·=¸Í||©ñÂE×>8í6­îÃpÜc<ŽyLÇaÏÙ°{þ ž‹Pï¹ =Óq@›‰ýÚ Ø§ý{´&ؼ*`õªÆnï:T{7a§÷ETù܁ŧ•¾¢PÑEy"rËÊ]–¸½Y‚t.ú:ଗ+Z|p¬GØ{Æâß(ÔùMÆ^¿DØüޅÕÿ=Ôø/Fµ2vù¯ÄÿlTùçb{@,e¨ ¨ByÀa›î°P¦;+”~#˜‚ž ÅA¢PD +ß@ dü!ôXjYî?e©=¡—¢)PÆ Ôõƞ>QÓgvéÇ¡J?ÛõïÀ¬Ÿ‹ +ý”ë—`«>eú ¡T¿NøX¿I(ћ„¢`³Pl67HòCNI6…Ü’CŸHrCEIίx̲\fimc™?Æ×Æpöž}aëçêþ¨2„ÁlˆE¹a$ÊÂ&¢4lL†Y(6ÌC¡áOBa©oø/ÓåÕ}†ñç\öì)A55ŠJ ²Â.à®{]8ÀËîÂ.Ë.·]n r[‘ÛŠ(—­Â%Œ¦*X“èèÔ±mSÓ¦i3¶Î´vò!m¦Ó´“t2M3Mš¶il¶/2füð›ÿ9çËó¼ïùߞ>f&m˜™J›`O¥fO¦-±'ö_æŽï¿É…÷¿É¥¿Ë¤ ©¿"¢Ü±Çø˜jÿ}6p/¸{ˆòVp¼\ÉàqéÀzœÏ܊5)˜Óhð¼FÓ+" ӚjLjÜÌIMs"³•ÏìfÙ!v43ÌgNsC™óÜ æ"Ò\ç4wýY¿Sôe}¬èÉ~@DùÇùPCÇéÿÔܦ£î+äå;t/åÄám"Îh“ÉUc*7'sMÏέdFµNfXëa†´Íì ¶ƒ i{Ù~í0ק=Å÷hgùníKŠ.íUEgî…ŽÜ_ í¹ íyÿÚò¢ŠÇyŸ´î“îÝBÊàrpžŽ™e®CëÑmÀ¤nNèSÖgcD¯ÇÞ‚A}Òۘ~‹éÕùØ#ºÛ¥ë悺£\‡nœoӝQ´êÎ ~Ý+B‹î¶²Y_Ù¤ÿ+ñ…Ш>B±Ê¨æ·I÷N1õ@¤œQDúäç,ù˜6ª0aL@Ø´ æ½4g"dÎGŸÙŒ“Èt›*™ ÉÁt˜UVG•–5„U~BµÞ$íåZʜ5”·ˆ!òÓM^Zé{£“ƒ§&®ÚMpÖî€Ýµ6W&dw*Ý&”»‹É]Á”º¬è®g‹]Îêêá ]£ +³+"˜\ç”F×5¥ÁuWep½«2ÔþCi¨ýJi¬‰ +øÕzÃE{Rp†âÀqb€ÞÛÉS#uôÝé‰EuýS¨ònC…wÊ}j”ù¢Ôw¢Ï‚b_cõ٘BŸ›5ûšY“¯‹3ø†x½wZ¡ó. ‡¼¯ +ùÞוyÞw”ùõŸùõÿy¢_s‡j½J`‰˜&FˆÂOÔy]Ë妔7¯Giófˆ-»PìO…ÕŸ‹ÿ +f˜"Œ™1j½¿‘=äïdóüƒ\®’?è_Tä´¼¬Ènù"Ûÿ[ÿ®Èn~ ÈiŠ~Í-ªûJ#0GLÞQ;‰ºŠ;Z€ŠPÒÆÃڇŽ0wn‡)¸†àj¡ï2@×eE~W9òºŒ¶ËËätµ±YÁVœà2‚s܁àwyuð6Ÿü5¯îü¯îø’W·GyuÛ7H÷¢ŸÖ鍽ôÜJxZ)st~P@1Éлº¾ä÷oA^ÿnhRqp@ƒœP>²Cfd…J  U!#ä†:Ô¤‡z˜´Ðq65ô<»o`™Mø>qŸMéÿˆMéû‚Kér)=k¼Ju.µÓžÐFë‘Æ ÑDÚ5¤-õ–ʞ[µÃ +dÄ!st#2ƶãÀؤ¥c8ia=RÃ|+,a_؉”pö„ƒH0»Ã§™]á ÌÎðM&)|IûIù7“4e“†Ö¸LZ³Äq¢h릐¶´Åc€qÈ=dL©“O ej=öN'â¹é$$O§`÷Œ»fbçŒI‘"ìˆÈØqãÙH+¶FBØ™Â3‘sHŒ\ÇÓ3oFâÔçHœŒ2‰§Ö8O1p¦Ö#ÑMύ!Z¤-‘vÁ87 dRLL=ìžeñì\,¶Î'`Ëüf<³„Í )H\8€§µØ´hÄÆÅlX´ã©Å|sñÖ/Ž#~qžxq‹o ná=<9ÿ)âç þ…èCæ†h_$Í¢u˜Ö­ª¹h +П²fIH^¶6]àp)ñË D"ž\ށ¸•½„ßXÑ"vŌu+žX©EÌJʕAËß¿|ìò-p—~I|îâgė‰PŸGÂ@ÕÜp°SÍ%giÎ9¤»Ÿâiò%Ò¿Lú/믱וPþŸë²«1Mãøÿ}ßSÑÇQQB_CŠRJ…SNéÛ铏hª©¤¦¢”HER !„|ÖdB¾2Ñ9>¢¢eȲZfǚ±ƒ5š5Ë0ŒÏżó¯mwí\]¿ÎÛõžžÿÿ¾Ÿç¹Ÿûњ@ҚCÔ€ eS¬eSªE؈éxèêxè¸Áuœ`E´ Dû994|Cݬ`®óóìµ@cž\ „0^_êºïœøo¶ €å!Àô(`ô ×$' ‰’ôNòRp’>šÙœ6³9m¡V†­<Z¹Ñ[9É­ ®u;ßáçyr“Ï÷»)ÚÀ½°˜É˜§ñ+Æ«f¬£´À0jÚRÓ¢ P6½‚ø€×76À +à}œ£óæ@»›R;àNlÌØ_¦ËlL:X;¸ù:8Ñ ²ƒu'íäF7yۀ´Ü‹û€ou½ŽQÿ`Óô= ˜PSŸÖyä¸äÏä +¹*_õ¾6®™ßX°A¶æE—•Ûl–ïÐÇ÷<˜ï²ðßÍâŠsÒÉDwî' ®óL7Œ;áçà0Ìx½ï0êZSלV/Rõ¾"×ÉßÈ­þN¾'w97?ÐË=àG3àsò—Ǽ´üBOٌ<ãÁóœÅî݋*à%…_꺑¥þaуBF’qd‰$ñ$o‘…×ÈÅ+â%–â9VâÖâ)6â *ñ5ø»ñõø Gp-ø'.âÍþƒoàéîï úò·Y]>ìˆ C‚ñ+"ð/Äà’¨•N­yÔYˆG(¢Î2ꬢÎ:êl¢Î§ÔØÁq÷á´¸&ÜÄ9¦î[þ<`_áGíâ¯äz²¡)s¡ä“ 1'‰#Þ`uý©Î¦Q/žZ)ÔʤN§`uŠ©SJÕÔYØÂ1·ákìâÔÕsÉ4rù´áŸ.Òáf­£ÿÙز~/È¢!ÿêӝ‹7°§î:WáG„P3‚ÙŒ¦V"uÒCþ‚¸Š.Ïbê,§Îêl N%Î3_¢gpˆšqŠoZ躙Y<Éù8I•ï +õ ÷᧾dÁ”¹À¹JÝQŒÏŸ¹Ó0’©ÔŠåhIô>›žK\êP§§±­\͜““ÌE×Å140M\íts :á´Âk4ˆ2JÿC斒¹Åe.éçFžâŽ`†¢ ®J.¸$A»"gѦ˜ŽV½84ë%ã„^:Žëeã˜^.õãˆþRÖ/ƒN¿Zƒ*4؉zƒzìïu u½Ïa¯áwØcô3v¿E­‰Œ=ì 2·Ò–˜,wwȍ>®õ6Âå^ýX‚ã´±;šMÆá¸I(M"pX2 ʏqP™Žze6>Wæ£N¹ûú”bOŸrìî³µ¦Û±Ãt?¶›6â3³/QmvU揱µ¯Œ-ýxNõ°‰È,+? bIa‰»J.ðùl?=´™*qÂ|Žö]?o°ý쵘‚ݖѨµœ–)Øn™ËyØf¹Õý‹QÕ%*ûW`‹U56YíÅƇQ1  ë^Gù ‡Xmý«¬ånÊzxjÃ3”%ˆGÎyg–{GöúöÀÑFhh:ë!Øm3;m}PcŒjÛ÷Qe‰­v±Øl—ˆMv©Ø`7v9Xg¿kí—a}9VÙoEÙ{µXñ^–nAéà+Â'Cî %¯…bY(z‡Ô¿áÊø=þ}Übi«§Ÿ}zØ5Ä 56øt¨3¶8zc££?*ðÎ1åŽÓ±Úé#”9ÍÄJ§YXR§<,u*B‰S™Pۓ÷ C¬ñ臣ì±ÌÓ%žÞ(òôC¡g( +<'b¡g$òµÒLŸCR¢Ïi†ïmE‚ï/R‚¯üÄ.®ø§©¯ a‚õÇóÎǜ|â+¢ÐW‰…㬰@=óÕ®˜«Lµ?2Ô¡HWOÄ,õT¤ªc¢N’ÕiB’:[Hô+ü–‹ñ~¥üvH±þZEŒùNíÿ„ÈÒ»\bÜÍ¡\‡l{¶±«àóJza»ŽÅ|—7ÞóÇ[ +ÀΘà‰´_¤!90I“…ñB|àÇB\`¦˜/Æ.“> \/EÖ(¦TL :¥ˆ ú–<&¿J‘AòigŽ³ÝÙÇV£2œ9àóRz)d>rIv°!æ›cvˆ RCœ⎙!c1#Ä !aˆ ™ˆØHÄ„Æ +Ñ¡IBTh†0=4WŒ -‘¦†®•¦„mSL +«'-Šˆ°kzaøù–ÈR“ÈYÎA#[Œ]dóû¼ëÐK½ä3Ùô’f€´ ¦Hž0‰$h\§ñF¬FhM0¢4ᘮ™ŒiáÑBdx¢0%|–09_#Müë2‹ºÌãøç73Š¢(à‘Bj‚+Š7&‚‚Š +"ǃ0#2L*Œ8©‰£­°©yð2×T¼2E¬Ìõ$³\³CtÝ2_Û®í¦f©­«™F»•m³o^R¯Ýýã=Ìïù|¯çy¾ß”-–´Ô}–ÔÔ–”Ô‹ÍRR¿âó¿-©)>óϜ"3¥ä*¬’{ž$³±efªEim4%íå§wW^z¤éQÊM¦ é ʶ&ËfÍP¦ÕndX§VëL#Íê1¥Z—šÆ[W™“­›,ã2öZ’2ŽÃ¸cI²þ>ó¸&ÞÄ÷ý6j!‹<@<…MsùûLì)À.gf€ò2Û˞ÕU9YÊΨ,[Œ2m#eµ%)ݖ®´ì¥d;ñÙӍäìbSR¶×”˜½Â<&{£ytv%!»>€Û–Ûóh›ï!Y>óq4öM `,e,xŠ°¥Ûòùì˜à¯ 9Á²å„*#·‡¬¹ý”f¢T{œRìc•lOÕ8‡MIŽïEà,‘²Ñö¨%ÒÐeÒÆÄF´î+¥ÕÍÕam€Ú­k§àu!¦ u‘ +¬Š‚áj[5Vm8ìªòպʭVU‹å_µZ-Öm—ߺCò[[7ä·¦A-Vÿôsèy¡\ÄÛ¾HJÇç1eRl¥4Ý^kЯBƒÔn£Ôfs µªn£–ÕíÔ¢:D~Õaj^)Kõ`™«ãeÚÊổÃf+]M"«Ë·ìƒ“4(…Ûð-ÒwZ^ÊÝ…Ä;ÿiöâr) Ÿãž“¢ÐínwFÔÎ[¥àèï’Zîi&sMk.:ƒšâ½B8ô‘jiÊj¹pk¹xjÙäµu-‹×âHíN~sÎñÜp¾ÑRb]ŒÏÓ05g9à§#ž§э܆þ‹èïA¿V +xEò{M\0pÈ°ãvƎÃ4äGÂhˆ±ã á1.ÿ:û:6zI®Ã¹:bQG,Ž½Á ¸¥…Ïr/¬’òÖ±Ë>¨¦Ðí[#…½Œ>šA‡¤VG%ËëhŸ€·š8ٜ¨Íh[ém†“ӝiÊhÊßml҉GccPÏ¡_ONêIt=‰­ß.ýœâ󸤹ë9_ ñ9é%Îtz²ÎuR šþ¤Ðà½gàl€óf1Ñ3¨] &;Jw•>é%}Š—iB®PWf2ÄPäWIðU„®Ì«8rõ´f`ÖDböª4ò05€nt;¡xZjñ~“ÞyÀlý þ—€ÒÒ§p>³HŸûK×o“[Ôȝékòrfä>Ï7vߐü’Ý@a5쇃L½í ¨‰Ð úB,$B&äé'fÝš¥ïåÑ¿´Hßêi5¨\÷µB÷˜u¿Öz}¥Mº£íº­=ºÅ¼û¥êtCïê:Æ~ή±Â5Vûìÿð)Ú@C(ô‚ÇÑMà©44sћ‚Ö ÝÕ4棱XׯuSè¬Dg-:Xs‹®êE]Ö>”®ßëc}¨‹Xô+]`åF>ü/j·h Ñ ã×ÐŽãð ½M@'_\h¸Ñ(Ac«{)ÓezO•è<‡ÆzÖ߬“ÄâM½¬7tT¯£~ kâÍaý¾ÿÁG)ùô3͉sþvÄÏ0ý™X\ 穋³²¢cgµÉh<†¶ê<õ¢S†Îot„Ú8DN‹ª¡*ê~½•ö’½D¸¥Fö4ác‹ûšQºl±/Ë[~øˆn(1ŒÀ¯Á¬0­dt²ðŁíSXy:n¢]¢Wµ%è,W-5ZCNv‹]zI;±bÑØfœ×VÓ U[´ÅâÓæfÙ>¶Ó=¶ÓlíK5äÈ9cnEžÚ鄩›Žý‡ézjò>ãþý¥^¨TPnB„Hȅ’@B.@!BÂ- !"ŠBAQDTëýRu¶ÎºÖÖεgë™Ýéz¶³Óý³ûé™Ývvºn«Ý¥]öˆžýñ9oòþó|óæ=Ïïyžâîª2|kµ¯®1áæ;n¬mÆõµm¸¶¶W׆p%f.ŌâbÌ^œ™ÁÙçpæùeœ^w§ÖÝÂÉõ÷qbýpü…GXŒ}Œ£qQ,M¦¶B­ö!µ¹ïRÛ}›òÜ[‹;ë“q+67âD¸§Ä•8.n0ãüÎnpã̆vœŽïÂr|'ã‡p"~ŽÇïÇbü!MX‘„‹8œp‡ßÂÁÄ1»ñSÌlúӛ£+¦žù,øeµ¡àj÷w¸´÷ѽW6­ÁµÄ\ڔs›xi³§’ÔXJªÆñ$+“±Ü‚ùd'wc.¹“#˜Ý2™-³˜Þºˆý[Ïb_Ê7°7å ìI}ˆ‰´O0žþv¥G1öQݟP{WH{¯€Ž1jm—脶÷ ¸}=ÛÇÑ]8ƒÎÂc,PxuÝb¾¢Ì'úký…µ‰¾&Ñÿùˆj~GIÿ¿‚F²(£}‹²LÓs™1ì.ŠÃ¨( Qvˆ 0 .EŸ¸!q‚bzŠëÐ]ìBg±âNt÷ÁW2Š¶’)ÖZ²À¼¥çXKéM於C~ʚ%Ÿ‘¯X“$º¢™|@5敏—É)p¸œêS–=eÀ勔®Ç d#ú$éJrÑ#¡K*C@Z¿ÔŸÔ‚v©­enxË:à) Â-‹°fÙ$sÉæ™Sþk”ßà4Èßæ8?&"ÿfE”9äO½O5_×Ð{HcÏq2KcØ^Ê2F9†)_¿<Ayºå)(²Ñ¡¢]QŠVE9¼Ê*´(Mp+ëФtÁ¥lƒ³¼ å;˜£|‚ÙUs¬^µÌlªë«úùˆü‘cQÿ‹®QfU=õÕ|ÆŒsdLÑè3NY†)GåëQ­F@Ÿ:­ê,xÔùp«ÅhRËáRW¢±Â€† + °WzPWÙ [å³jƙEs€ÕjN1“æǨ}ƒ|Hþ@þÉ1j¢O°'Pݛzà49D&ÉNº7@9zˆ_ÃЦ‰…G³ ÍÚt¸´|4j áÐJQ¯UÁ¦­‚­ªÖ*;,:7Ì:?Lº>fԏ±ý «Ö/1½þ*Goø6Ggø!ù=G§ÿ‰rôO±û4â\§Q|‰Ì’ÝÕ´oѽ =?eiÕѬ©_§> †TÔx° +`5”À\­@mµ¦j#Œ5u¨©iBuc:ãNVeœfZãq¦1^áTïr*LÉ#N…ñKúåTÖ¬`o+&à™&£¤ŸîuÒóh¥<͔«ÑƒzSyÃ(ôŽCèC÷ x¿IÞeùÞ_3ç¯LÐòVÐeî(»Ú%“dˆtSÍVÒ@uÍ´ªé[hæ§UIѶ +ÒöX”ú6¢¸# âD(ò£Ð¯Àv¿B¿ ‚€ù/ò½È ì?0‹œÀ2²¯€x€mŸƒçÿ¼Ž¯Y¶/ºâýsdœêõ?q»éð5­€¦êûi÷ë¢Ý§g„½ñô&#?ÈE^Ü`!ø! rB*d‡ à…lØnFf¸Üð2ÂSH/!-|©¡ûH }ŒÔàŸ‘ÖûÒz¢+NR­i2Bzé÷¶'Õ6û€ª@m’ ÕïòW7‹¬¡Dd§€;œ…Œá<¤GDH‹È©DJĄ­‘$´#i¤›GöbÓÈ"6F®à¿\—yTd‡¢"\¶ \ÙT.j:Z™S:*抢¢‚ ²ª ‹+\Ü—Ä\REG'·r­IsLçè˜:Ž§ÒFs§±´qî<z:ýñçpï÷{·ïýÞ×-{¿\³ÏÉ-ë®Ü2ŸÊ=Ãú3Ëð³ÒÑLVáh÷Gû5֢]2¤PÖŀY’O~+y8«u»< +¼e* {a˜Ü +#åZØ~/cÑ`¹Å˹h²œŠfɱ¨L…52î–}Á'2|#ÜïåÿLyV-J¡! ’‰wìdb€ö›éR,)r¦–'¢?WòXÀXb''‹³-&ð–ƒ%PKGÙ[̲³ô–­¥¿ZZF¨…%Y6– 5³Ì'áÕRévv̒+4Ä»ðxªB✓ÐM˜J̐ÞÎ&øl.@ÝÀ…è—¢¿ýå’c…­l+eSÉ0º’w¥/qÁƪxø«hòU4–jŠ«:•¿q¢jŸÙû>灼€ÍÍi06“»@¼ÿ0›{€Ï]1½ºK%ï’‰5Õe•dX+µ¨aXo/m` ßàÆ£ËP¼;61”Ö2üÔòð×Ñèë†@Ì:X»vò¹ãp ¾ã{”•KO"Þ£ó¥˜br€Ï¯.–ÂË¥ *ôÑ4­—œqÁ~³d³%dÔ³Õ³|à$í$;‰Gƒñ؍=€‡g~Iރs{ˆEc¿ÿÄïÓpnk*>'͓†•|þ]%5ˆ¹!èúðqw4ê¥V èîBÉB%}lÀN:èÈPÎBpØ$aIø˜¡øvg9Îãs‚Ë~‚DŸDè$Á<Ɂ'ø¢ =óâóëïQµÜÁ÷%_BfjD¿d{=¾ÂÂÅYpNÁ'ð)|FLN“›3Ää,19ç%]`a¸ˆ—B.ó(}IN®PäWʤ«8x§®d±8¡DÊuè:ú1>¿JŒ;¡ëŸ‡Ð§„[oÒû ÎÂp¡‰‹p ¾„«p¥ñùùŠ…í&¹ù§¿t;î1(Þãá¹Ïå{@}> °nâñp/§œ›p_…®Ðbô?Åê'vÌ5Q5Mß+[4[ÿR‘jî³cÞÓr}Ç®{Gï±·ÖêEsS{õµŽ²Ã^Ð þó=Ñß9ñכ°Ê `.àAèF¢ÛÝþhC+qè¤ê¶Òõ­rÐÈC£H_i!eœW®kªÖÕè2[ïEíBý ¡;­¿ðɳœt†Ó‹UvÐZ‚£þ+“~~vÔuGóMôéDç]쟀F3ÐÈA#bÃŽ³Z̙¤m e²‰î |öé??æ[±#(Fé×XI㠞¨ñ5µ¶h»HÒÜKS?´†àË(4ÑH¡ÓИÁé9häñb4qæR<_©ZÇõق»ÉÈ5bå.²Ô@dPÛù+^è?ƒûjFıؤóÄâsbñguCë ×|†Æh4’¸š)ڏ$/{±£;vk.ç—rîrÕkµ¶‹müµ…O×qR-YÛ¤k#™Þˆê žë?†;@ÇÐ_e‹Ÿ.hza}þD Õ­¾è Bc¸>ÀŽر¼lέر;ꔏÆ<Î-ÓzU‰­å«ùv5«¢ZV’áJ*­åçTÀ®Ó®)Wû ×êxËç­À€®+š>hv@ÏÌI½Ñy _bÐŽÆh4’¸ÐICg†V)BÎ^¤ŠfËUÞl–ÙlÖ›F-n~T––—Tj{O¥­žªÄŽ÷²‰\åë´·ÓhÓú÷Òîh{õ¶NÚÖÜCµ-ýµ¡U'­³ë¦5v¯k•}?UÙV¥ý­0īܐ¤e†-5LÑbC¦Êf«ÔažJ–h¡ã*Íw¬Õ\§Ý*v:ª"§Ë*p~ 9.ϔïbU¾ñnñܜoG‹åÉÙE»ßچ§{Ö[¨ÆÉE«Ûh¥s°V¸Dh¹±‡–û¨ÌØ_¥ÆwTb©…Æ-pMÖ<×I*v®"׸jŽ[©òÜVj–ÛFÍtoPŽûGÊ6]T–Ç}e´~֟™×üh¹¶¤DÙ(9ÊI‰Q&1·S¼9DqæpŚ»jdt/ î«aÑ44zˆ†tÓà®cÓ-Mƒºåh`÷yн\ÿgºÌ£¢:Ï0þŒ+*"àŽEP”E†a†eXT7Æ( +.ǚb´¥š&Zš¤q_cÆŒ5Ö¥1Ñx¬ñXÍÒ¨ÑZMÒäD§? æøÇï\†{ï÷¼ßû¾÷Þ÷É0¾¬tã^ƒÍø>|߂ûšñ3ÖÁs°æ1þTG9y™%ÑÝ41ÆW…1~¨ü˜PåŌV®1VÙÆ$ٍ6es”[ ŒØ2¥Ç͔-îWJ3-Wª©AÖøMJ‰Ý`‰?f°˜¯r¼îŸ1¹ 6Ó Œk`TÃþ7ƒ8¦“bŽEqgò–ÃÔO9¦Á²›†+Ë®ŒøhÙâÍ`Uš9K©æq²&”(%a†,‰ó•Ìpœ”¸F‰IÍJHÚc0'…+ð ¸ ‰?ó:cx#Ô%S˜3ù=•|K!1å'tTN¢—쉽•‘è/[ÒP¥%”5)J)Iq²$[”œœ¡¤d‡-“”`™.sÊ\ŧ<+SJ½â¬MŠµî2ÄZŒÖËïbS‚»•žIÆð•°ªÀ ¥ÄQÎg[Ú)#ÅSi)¾²Zýd±Q²5D‰©‘JH5ʜš¨ø4›Li¹ŠK+R¬mªŒ¶9Š±-QtzÆ¦oԘôÐ¢¨ôKïjŒí0­¥¹µÕÊ;1Uªe ¯† +˜Êï‰üßv~§Û˜7m]•œî­ÄŒ~2g V|F°â2Û-c¦Y1YVEgÙ56«@cì“e¯Ðh»K‘ö•Š°oPxöv…e† +³ÿGáö +Ïr+^eý†ti)̇Œâ¥ ÀÎ߶LUvyWMP*§¼ªªÕ½j4ʳrºUS·9×ä9û¾ºÏ~ înÕ¢µf@ ¶p¿‘¼WKžXÕN/`^‚õ¥ ¿Šÿ@‰£‘8šˆ£)‚¡a3/™fš«‘fl^˹-ð×~ä¢ñž**Éuvï4Ï{Ž¬•‚W¡nŸuè£Ù•-thF›t2àK¯ Æ` ùØÊP¾y;ÃèNâØŲ‹ÍnþÝ{7‰ÝM.v7ñÿ7€\ìºÄµ7TN‹(WÖRjÀžÇü–g€p­GŸË½_–º¼&h'Œƒ?ìmãMØ×^Úï!½…A9€18ÈP~ˆ!ý0q¼ËÒÂG°…¾…BAè‹·l†ƒp.ª„|çžµžç‘ì7ݾ\æ½ýGšûà‚x¯£ð`K:Ž9:Aœ$'§©Íß1 +ÇG fó:GMÎÑhçIòù Àâçކã* ß¿ç]ÐÈ{€Ý.ù¡ëCûvy¬ùHç8œZZgÚ8 ”Uçàø|J}®Ð'×|¤/ü¤¯‚¥ëFé„›ÔäkŠ~‹»E’o#v{n¯;tkÃü`Œ3¤ãóõ?M—NñÎÒ=üå]üå|îm-Ó-­ÐM<æ ­ÕW8Ë/ñ™Ÿãt?ÓºªÃºBà—9sIߦ»•‹m|Òêy= Câ魇 +ЏÉFý¯{ùoèk•ê:þòKüåçøËkÄñOâ¸B—õ<õº u:¯ú˜æ=KÑ[Dp\§¹êџDáÄœlAOЕýúpå@öÌÞF½=+ä¡1É¤ÞI *ô!q|@#ŽÓÄq’8þªÕ´Ç‹”¯™–ÙB)÷’‰½Ão“±ƒdõJOòXÿÜWGt½Èaö€Þ(öƒV2:™hä³£‰:FG‰ãq¼K]k!íº„õ—³æ*íWm¼õWxŒvjgv‘…úBÛõ­¶¡ø˜­m1<„{ð/¸H.ΐ‹“äâ}ñž"Ñ1±++ÙYëO䱜LµËY–vÇNâØAÛTúuÚLMþ¤&¢Ø¢MÜñG2Ó¤OÕøžË<¦íóŒãŸJ‚‰pßW0`6Ø`À`6`ƒÁÜÀ +$¡&!Is±MÒ4I›&kÔf]zd=Uu«¢®«¶µÓŽvÕ6µÕ¤ýQ©ÒºNÝ:mk·UíŽvÞ·d­¬Þ÷÷Úz¿ß÷ðó{>ÔI}ÎRþ’/Öÿ‘xW¼%^Õ½ø¡îŋº7ÈÓZÊ¥c×:š´ŸæïÖü\—Gåãù¸&ßdQû¤qXóžÔÍ<¯pz…ËúÕ}šá^íÖݐóÚés:ñóÒþ’DÁïv)^‰VˆY =·HÓ¨5¥K¯H:Ò©Õ »¥Ñ. fÆ¨4&¹$åã^íÇöKcEÿ’»ô¹Äi¹;¥:©Ûp\'zL»}Lçñ5iÉÞÞTx{Y<¯ðò”ž¯+ì='Í$éeK«D³Y¥ãäž5ίéàî¨ g£85Êé¨0w®½•“k8¾vÇ¢±}'G×ÝÃáuW9¸þIîXÿûc~ξ[Þc_ìÇ,oˆ°÷ÿ¼£ÐúS…ùçÅã)z­(Ä]Qxùº!šË·¸'&™s±yÜ[Æ© ՜ÜØÀñ-ÛØÉÊÆŽÆ p8nŒCqSÜ7ρ¸Eöö³l8ÆÃyn7<ÈRü슁Ûâ_gaÓûì4~Êcä+ÞTh)çæ«æê_ÊÔë43 1œŠ7r|S+Æ"-4:8àbBË ~ö&ô²;aˆÛÆYLœfWâN÷²#é(ۓÎ2—t…ÙÍיI¾Átò«L§¼Ç¶”O˜J|ÅkzýÂÃJA.©=«çyJ-ä爼J6p 9™å”\v§˜XJ­b1µŽÛR›YHõ²#-Àö´si#̦M2“>ÇtúSé gœb"ó㙏²5ë;Œeý„Ñìß2’ó±ˆ|Å+ +çO›ôúçÄ =.VÊ%?{åewV,‹Y ,de°#»ùl3³ÙÕÌäÔ3ãa*§pN7“9Œçnekî4£y Œäíg(ÿƒù(¸FÁsôþˆPá;„Šþ."7)ŒðR¹î .‹ÓJŎ¨].ƒ%ùY—ë˜Ëg¦ …m¹„ K˜(¬d¼ÐÁX¡‹Ñ¢V†‹ü õ2X4Lq˜¾â턶ì¥GIP°äݦ‡è2=K ôeñ6þÒ¿‰ˆú7¹Q×¾H¿”úÔ_ÒØNy›•—™’5„Kâ/Ib¬$“SC¦rM6úMNúJÝô–úè)í&X:@wÙ8]e³øËo§³üæs´[®â³<ƒ·ââ7âCñ_Ák‰ðœÒ«6Ý¥Gı ±Yy™Ò¾Lh_Fͱ ™ ˜Óè3çÑk6´TÒmqÐeiÄoi¥Ó⧣"D{Å(¾Ê¼U»h­:D‹õ,ëxlOá¶}ŸfÛ¯Å_Õÿ\DVyFšW”fœ•/ªÛäk\û2,ªÖªŠ'X•L—5¿µ˜«™v« ŸÕI›ÕM«­[žêaÜÕS4×,Ðd¿—ý Ž+48ž/QïxKüEýÏDd•'¤{©VwQiÆ>± fô<¡ñaùë¯QÍS³–@M5‰øìxí´ÚKñØ+qÛ4;\49ÚpÕvÑX;HCÝ$õu;p:÷SçÑ©ñ6µn5z¢q¶¨mIÄޚNuk>¶VÖ¶JªÚT¶¹¨ðz±xƒ˜½#”ûf(ó-Qê[Á仗’öGÙÒ~C¼Îß(ñý“7²Êý_”eJ¿÷¶À¼˜ƒ"(¼¢YåRƒÒâZŸòþö X;ŒTv¤Pљƒ¹³˜òN3eÕ”úë1ù[(ñؤ80EQ`…#.ßõ°xž¼®×È ¼O~àS +ü‘U.¶ê.HgIÜ*­1Ñ'üÒô´ký*•j;Á€Šîʃñ”“(éÉ`KO>Å=&Šzª(ì­¥ ·™üÞòzûÈ MÚIvè Y¡»É =DFèÛ¤‡~&~OFï'döDÈwKë ´Ĕô†DP´K·IºN•®ÕAé÷‚©?Š¢ ÉL!w(‡œ¡"²‡Ìd U“9Ü@ÆpéÃA҆GI™#yd›GΈ«$ ?KâðÅ»$ }ÌæÁÈ*wJkY©ÿœôÆE¿H·M%ZcØU¶V¨ö‚¢QÕ[cȘ06‘HêD:)“y$O–°y²‚¤ÉZ'Ý$„ýbcxšMáÝćOb_O7ù²xÃÄGÆ?#~<Š´µÎi1"ÍÑ¡5»UžÕI»JåQ٘ôUžä†!}z I³±$ÌmÂ8·™Ms™ÄÏ`˜/6âæØ8ïeÃ|/±óÄÌßÆúù£¬›¿HôÜu¢æ^díìDÏ~@ô­ÿcºL ¢<¯0ü"‹"2  +*ƒ ²ˆ5®"(Ȧ((ˆ² (8* +Ž+¢ŽË©â‚©1n&ÑDŒQc“Ô%§iŒ[5±Ç¦­MjÔ¨IÛ4©Ñ4>99=žÇ™ÿgþûÞïÞû}ÿ½ßÁTÇ:+Ñ+„Hϖs©ÃÍ'ì'- ŏ;øq?>Ə›øqƒ)öSè&ÅÕªtÞÓûüâ"Þ_Ðu•~ïuú Ÿy®®ú§zè±üYWzÑú+±øTXG¾OÃ~>á/Â~ö«°¿ûµØ·b-v7RÛ(“=z›B>C,Nóÿ)V|«íú^ÑÃÁ‰ÿóá)¶P+[©]GñðÙ9DF¡xÐÁ!‡úáNg‰uÓ%y³Öab QhŒ@#ûÉØÎ`›ä°5óõ2yi£>ZUýƏƒøq@ëÈÄVŽf*ã%Ž”cDåÇËu²ôX;õØ;Ùúà–£äM,Þ$Ç©‹WˆŽ™5Ä 1 +û㱟ŒýLV˜ý<½HîÁfü؅;ñ£I+µÚøÿoå—[°²‰ˆm${•»ž +_v£ƒ'ý l©SŽ#§º8ÈiaìÓtÂÑŠÆüNÀr +ö3¨¾l4ò´?6ᇍ¼l >UG$Öòo‹Vãá*V°‚Ì[Éèrª¹žª«cÇÕ£ßÁ_ºKïs¬œ4 Íg [{/Ç^³º£g¤ºÐ A' +áhŒEc)hd²²ÑÈcå³Ñ)E£ +»‹µŒ«ZV¾„È,""[Ã.¨vº­ê._iós°wr#í ÇkGý>>wp½•ãe³‡³l®­wòUƒS Vw ÕJçhYG¨Þ%Vu.‰ZꚢZ×L-qÍÑ"×|Y܊TãV®j·ÍïZ¯ª®ªèÖ¤yî-*s?¦R÷wTÒýc•xJ1›”l×Dó%™G(1,V a‰–¦øAي /иðrÅF,Ö؈‰lÒèÈCuR#£~÷ùþ=Ø;iAo mÆ +Úá…1Ä +ùžÇ½lü˜Šé09ÂC“"ŒJŠè­ ý•ªøˆ(ÅEÓ¸Èъ¯±Q)5U£çkTt©FF[4bȽ0d»†Ç¼¤a1íó|Á÷§`×ð!víòS\7”yŠa&äpo +K#.Éø“ÝM Ñÿ£ºÌ£¢>¯0üdQv•MvD}†}GEepcÄ `Ԉ\“Ƹ ¨‰5q‰¦iFk¢¤U“ظ/MjzbNsšÖ5MÚSÓÖTk7ãôIOûÇsf`fî{¿{ï÷ý¾×K9‰YƒeIŒPfR¬ÌIIÊHJWzr¶Ò’‹•–R%SJ½Œ©MJM]¢ãj%7)ÉôŠMG”`ºŸóþ¾’ŒŽA¶£õ,Wà}ÀžÌzÞ×@¹óy>¯9©ÎÊJõT¦q”ÌÆ¥Ãd2Ž—ј T“I)&‹’Ó +`²’Ò§)1Ý®„ŒEŠÏX©‰gÞ­Xóš`>·xÿ7Åe8نV7ºm\›3¤™0*ù»òùÌÊë¤ôǔ‘á.S†R3Æ(Å;[Ñ9%ŠÊ©VdîLEä¶(}t Íè·à±j®Kœ4l)w)·‹W—že 7Úv2ílí {Emgíó¡6Ãk|÷m~snãžæ²Öé0Š(…z§²æ8»E B×°Hò~Rr_&¹,çÒK8­p.£+©Å*.]«¹ðtqáèæÒæ‡Ã­‡Aïaa=°§ èGϾÓÏw1«]_ð»¯5 Í©PFŸs([Ú\ö!kŽ\ˆ>ºZéõiÄJÉ©mì*si-ñµä±Ž<ÖS Qòè zt!êãaØGOú¸>jÑÇbúº`;Ÿ’6úÑ{[ èV‘fõ6S²DÖEÊÁèV¡¿Fr{Íõ° ¶À6xh¯¾ç$íà2þóÞÒ.æc}ÙËÅc³±žìcÈöÑÔ}ü¿¾ǹÀ}7TG½KH1‹±IaÍ1Ôyë5 ë¹‘ÚoÒz vÃ^xƒùá2 +ûá†à 3ò#jr˜Kú‘ yô3ý6ý Y+0›ý;Š“ég6~¨ÉK8“ÑN[Á °æÐuÌ?£ãEÉ\vih2@oÂÑ!ނŸÀ18ïÀIúó59͌œ# ì• </²W/RôK Õ¥ Òe_&Øå“*F;íDjÁšÇ’¢7»¬ïàæ€ÖñøpjÀ”ÁY`›ë\‚Ÿ šUé +ü‚þ\eN>aF®Ñ—ß2£×éÉglø ÛM†ëæVéżu§õØ ïuÈ <ÀÆÁ=”wš'-Õ]UëŽêõ'üÔmüÔðu¿Ç×}›úœr Çuvxaù”Æ}‚kü˜‚}¤Ó¸Ý_ëC<ÞωüÁá <Òÿ74}t÷WEé/JD3½|t*ШÅ-6¿‘ø¿•øKˆßAüNâwë}üÝeâE|æy\ëY"ƒ·qyW(ãõ®Ð2Ç9ö?9<„{Î=õ;ô™Bõ¼î¯¨ÅDz¢QDüJÊ^GùtŽ<ΐÇ)òø)y¼‹³|‡XËû5î<Ò\‡iÕ0w´|ÑòG'X4’ÑHG# |4Jô’Ë=¶Í« ãOÓÜ»¶[;iì$Nb'Ž'±sqb×±sq“ØiRçÒÄMš‹Ó6½¥Zï:íÒum·U¥]K+T(L\¤Mh  B€6þá&B Ć m0ډ3?Ú?~:ßwü}~Î{ÎùÎû¼˜ýŒcûc/ßËÔVˆ0³î¬–Ö]ÔbÎ -ä|Qóë_‡75—ûŽæòþ©¹üO «op”}ãý©æœãú$Çì1Æs´4WG + :œkÑ¡\»öçÕi5Ï«½ù~íÎj%?¢LÁ€– F´X0¦…Âií*œ×\ъv­i¶ø´fŠ/hGɋš*¹§É’×5Qú&¼£”á>dò +éö³e¤E¬ÐãïÇi׸?€-Ye,«Æí-5j¥ÔªåÒJ-–ºµËЬyC»æ =ÚiˆjÖ׌!©Ɣ¦iM—5a<¨íNjÌÄ®1]ר鞒¦×”0¿¥ó»ð‘F,YÚ¬^F÷ºƒz¯’ø«Ð§ÝË}†c~‘±,lZ§s±æLf¥Íåš1;5mnД¹E“æ¥Ìam·ôiÜ2¤1˘F-ÓJn\ÐÈÆU c>¶nzRqëU ZïjÀöuõÛ~¤þ²?ÂÈ>ä.š/8™lجÇ>Xæz{˜f,3Œqږ¯)«Q)ë&Û³ÕiÔæUÒÖ¦„-¨‘²ˆ†Ê´µ,¡xù„Êwªónõm~LъÇÕk¿¢ˆýsÚâxUaÇà +WÞ§ÍÒÇy…ÞEÒüi—tÈ-­À<×3ôM2¶s3îÈÑ6{©’f ÛË5dw*n¯× Ý§G»ú=Š9bŠV©·r\‘ªYm©Ê(T½¦žêO©Ûù¼‚5wÔUóŠ:k¾oÇÜgòZçIñǘìè"Ìr=Iß8ce^Fː³HƒÕÔ_mUÌéPÔY§^g£¶8[®éR¨&¢žšAu׎*X;­®ºEuÔT»ëŒîËò»o«Í͉[ÿ=µÖÿ–ö¥?«kh=îRü˜‡io¤Þ¡˜yd,}®èTckDžÖ¸ÚÆTߖ–Û¿G.Ljÿ¼j7Tø2|[ÎÀ/ißW­ÿ?Õ³èœ@sµuÀ~NBâ£/ ]Ðmþ|ùü5ùÍj ”ɨRCÀ%w{äj©®c@µ£ªéœ‘³sE՝GTÕõ”*»^”£ëeٻހ_pý7úþ­Êάžæ¿øÚY‡jN~î#?÷„©¦ÎyºJäšä +ZU´«¦»VÎnª»ÛTÕTeOLŽžÙCSª-isè°ÊCO¨,| ¾$[ø[²†&[è=•…>Vy¹ý54–ИÁVˆA: …RÅÛ#Շ¨}…rn1ª*bQe¤\ŽHµì½nUôú´¹·Ce½Ù¢C²FSÚ]€CÚ;'KìªÌ±{ðM™b?‘9úWY¢ÿ’¥7«3hïÇzÏ£3N Að£Û„%nˆà»£RU_®*úKT>`RـUÖA»6 Öjã`#øe ɐ)>s2Æ÷Ãâ/À]•Æ_SIüÇ´ïÊ0ø²:ŽÎtfÃ|0„^ BÐ-½’'Fü”)ՃR¥›u¸P–„Aæ„E¦D¹6$«dLºeHú K¥É˜J’ 'w¨(¹[…Éã*H^T^ò¶r“¯*7ñCå%~(äcFg‰§ÐJ D HÌ~´½h»âè¡O™b¥l3åɘ*QIʤâÔ&¥ì*LÕª Õ¨¼T@¹a­ŸØªuL.…ä…ëELê%ø*P¤l§Ö܎‹Üþ‘ö¡3×Ç% C„Ñe{ˇvý°äLJöm’Åϳ‡Ë?åÝ¿À}í"Î ô´JH†ï%æ:bvÌ ®™RÑ°$®Hë÷®ã@ÁøíÃpíÇìÀhĈ²ó‘‘`Ö¼>¶5&ym xyõX{†g(b᜾âÝ5‹Þ s/w¦¤æ)ö1Wӏ®‰0JW©AJëc6ƒ£Ô”G1¡ÇÇ ã#óuÊÆ¡KÂ?C"<˚œeße.Îî o-ëqæ3<ƒ{>MÑzêmx_ShŽB?óÝÍ´µ¦Ù |ƒôÑ5¡[ByÇÐ=g¿Â®’ìr¤'™§¨oϳ.Ï0Žg™KŒã2{ã9ÀçØà— ò2{ó2r‰õ¸„{¿øüœçÿ¬ †8Ä|oa¾<æ!æj¶ ]Óq©øŒ”ó8zlk =ï?4ݸWáӘñ녘r ò öÇÍÿDöèöÆÖä›î6B·Ðÿ4-ëq‹õ¸EUsówJ2ß1æ»sgÔ‘ÊþÇt¹@5yžqü_!1&@€p 7ä"   ¼Vê}Z«V[;«S×nÖUë¥u®¶^ê”Z§­½¸YÙº^Ö9»ºº¶®gëtk×é¶sºZ§5ûa³çwø¾/Éóÿ¿Ïû¼ï÷>Œ×„nøZr¿1¨÷xvÀ·šщfK´0ß4&{C¥ýääYææÇÔi>ú¨>椏ÅÕÇ û~˜õqè°>ýJµ³%?ùÎAÛ¹B²>ˆþzôƸ%¨9 µöÝjÂø]çà…cÁFéõú2ur’¹9ÅA½ŸCa?/á~곟B;Øi÷ƒ8Ý'U¹„9@ÛõmÖcŽÂâ°íAÝg‚š|•FW´(ćWá$ü ^ƒ~øE°a{3ظž!'ïâã}òqžý=/…X€RlÝ $÷I¼pˆ.G·&°ê&ýÝ åҝúõ…jèK›t™>æoê¢Kšª‹š¥OèlþH·ó1ÝϺ¡éÆÎӝ£S{—Îô7$ïÖۘ~S¿Åâèõ §à¸ÝÃMúÌ«2ґZøv’>§×ýŒóϪ@§VÐOS;ñ»tF=ğIü»õ–è |¼ŽŸÓݞ¦pOÑ©þ”¢y•ïe× \¼¨¿0]×¹ Üâ¶i"±'kº£ãÝL>ÕR¶ŽXÒÈÆfæ)®Ž°½ôÃ'Z‡ê:´ÿÇ%t,óe¶v+Œ-ÀHü|';í!›ø…Ä.'v5±ë‰ÝLìqTa'±&3òiÌB/±mt9.Öh¿XI´dn9³·LïÁ?à¦îE€³Á¥v(¸Ý ,ËÍäâr±‘5²^qÄOÖCr1—Ê/$v9Ûuñë˜ý&â·q'“éÌÆ-æï[|c!.©yds.3:— +ž£Oán1°¼Ã.¶þ̓¾ÙŠ×¼ +¨‹U2 E|ñÄÏ$¾—èEÄ/×"|,ÀÇ||ÌÃÇ\òq7õÑ˺½‹§³øÕLÜOgTÓáT2ÝCe÷èOð…ºÑà8[ÚS6óú[÷³Õ.çÙR^‹Ù/i8:4ðìD# <4ŠÐ(G£J3ð1y™J}ôP§Ý\M曓´„»ÕTÌ÷p÷$™:¤ª½ƒ¤ùè`vàá [Ù6¶÷ ¼jV˜Ïý^?½á!š=8-:qèØÑHCÃÍhóÐ(f…–£S­‰wÔ«óŽMÔ¡öAS4>ä. Y¤ÖÁ«Ô2øa Ý©æЃj +=©Æ!çÔv®A@{ÐÜÄql5[ê=0f±ÍOã5Ü3\ê6„ª;Ü IC¢tg˜UaɚæR{X¶ÆõiÜе ­Tkøhµ„7ª9|œš†u©qØ 5D,P}ÄJÕEnÔèȪ‰<¨jÃIø\ëÐhn8zŒ`üÇfB7×]<ëÄK^:ŒCÕn0jœ!F­†x58ÔlÈP“!G†1”ªÞX¥:c½j­mœ¨êáÓUeš¯‘¦ûTiÚ¨ +ó•™ÂI•šß‡ª4êkîÙ#Ð[c#;zyÕöÀ\·s,kã³¼4G‡¨Ù¡F“I æ8ՙíª5§j´9KÕf¯ªÌÅU¡‘Q£UÕ¬òè•E÷È3G%1ËTlùŽŠ,ÛT{^‘/ö=¸Âõ hZ÷£»WìLŽ¤“ Zìœ1yހ¿:¼ÔƆ©ÆbT•%Z#-6UZ’Uaq©Ì’­ÒXŸü±¥*‰­RqÜƍSÁˆÉòYg+ßÊJ²­U®m«râ÷);þ%8 çþ:ô0Z+МËQt*¯ØNhåº1mž×ðy>GÚBTa‹T™Õ,¿5VŶDٜ*´eªÀæ•/¾Hyñ•ò&Ô)7¡U9‰]ÊNœ%}±ÜIk”•ô˜2“ö*#ù„\Égàs®ÿó€Ö£³ÝÞTú=Ž€íÐ õÜWó|$^h)UŠ—b{¸ +íFùìÑʳÛäµ'+מ®œ¤le'ùäI.“;¹FY)ÍÊLéT†c†Ò‹”æ|P©ÎÍr:Ÿ–#õx>“3õÏzÅhÎL§9þµeHcø_#yV†—òRùŽ!ò: Êq˜åqÄ)ˑ¨L‡SÎ,¹œyJO-QZZ•RÓåLï#}šR\ ”ìz@I®GeÏØǕ˜ñ6|ÊõW<h5ú ћ–É<ÀXŽuPÅu9~Šù¬/^ÈN‘Û¡ —I.WŒÒ\6¥ºRäÌpɑ‘£”Ì"%gV*)«Aö¬ñJt÷(Á=OñîU²y¾/«çGáù ¼•Õ}U6w@+ј‹f·›yðPP•Üû¡€Ï¼à†LîÓÝCåôåðD)Ù3BI»ìÙiJÌö(!Û§øœrÙrjeÍmӈÜ)ŠË£Xï}²xQŒw7U´÷ ¸Äõ—²ä´ŒØ½hN¢%iãèÙUPE<˸ré{ Ū¤¼H%䙟o‘-?AÖ|‡Fäg*Η§XŸ__b +Æ*º KQ½2.‡ïÊT¸ ž—±ð—^pQ¦‚C@KП‰ÞDڑ±P •P>ȅLÚÇÔ|ô}ô^…ƒd+ +W\±Q–âhŔX]’¤¨’tȑÙ_$“4ÉèŸ(cé,J—*²t=ìT„ÿ°†ùOÃÇ\ÿK‘%7´±ME£F4ª¡ Š gžÿR]æAQßg¸Ø]w‘EЪ(* +È-,»¸‡«» ˆ +BÁŒmªÄƒÄD3iÔFƒ¹¦Ui;1&ͤšÄNk’NÇcšÌ´éL56iµÓÖ£­c³ý,îdÒ?žY–ýýÞç½¾ï÷}øÌF¦L+ƒ¿‚Ý©`«ŠWJµQ‡Ødv|dÉäȕÑQ ìJvú”ä\*ƒ³C Î~Å;·+ιO±ÎcŠq¼§XÇïç¸þ¥^8V±„ÕÛœ`>(ù §Ý÷”*i¢ýådÿ_+³;IFYIžñJôdÈàÉT‚'[ñžÅy*ãu)ڋ€õ®ˆ'/ыpð| <è<Ï_h¾Ûê&¾åðáq;(ó@1τ;³~$Jš ~d›Ù«äʼnJð›°**À@0àô ¨:3ˆž"$ƒ© ú*€¦ –ˆ!ÿyð¸­U•ÒRxP Jí­lÌL_€öqÿ~Lš‘lÉu1JXbPt|ïR.·Fz#ì‘CÜH  Ñ –‚N€˜jÜų#aÖðKðgpK-ðÔ/p€ +PHÌ9ĜE̓}èO?üµð/¿QŠ_ƵœEgKO ËF+—k+:w%—KƒµÃÖF.Ú(\/¶Q¶u`;Ï°-®D¸µþ°M·ÜT\~àvPBÌsˆy&1O Â_?¼æf4`‹‡9†‹V§AZM.ºð£?ÖP“Ãpxøs {ÈEÆz–êÑ3ÈïÏñr [d÷§àïªç¨!måÄ\@̳p}jƒ”Ϋ)ðšÚ$C‡Ý7¦XÓlàaüX‡ëñ£?X†6N`àÂÝLM6s°6“‹Íôæ¦U|RM»y†žØðSp‰w®+§TQç"Í¡|™ÄÌÕ«^3uK a·A?À ¹XWY<Á£Ôe0þþ":„ÛÈÇò1Ì%7ÌÀ¦é‡ p£;q|'õØq¥…žØöøL~xÔ¹”|çÑÂӉ9c5ü=’‘Æmˆp> +¶‚í‘Åûqð„î/âO=äärò, êwéÓ}øq€KùCðM~€Âî'™ûq~gôù£<÷>¸,ùžO¾ ڙ…äzb/üÄk„—u?#|ažgåD:a/€Caq0&ŽXÒÉÉkôêðãu¥7F‚£4Ú(¹8¶!Åù8ÊÃGÞâ¹ä ¿ŠàÎ&M“¤ñÀÿ˜æÝá s½A¯Æ ";`4"hu©ô&x›ú¼ƒ`x?NsfOÓ§8§)øûœÓ÷èÍw â/Ÿ:©r¸óà΄;˜Mä6îÙïH„óhD…9pù¦ÒɈH#¥ú88rúpüužÚ\ÀË,b—©É%ý% +~±O +y‰À.þ…¡¯!˜M÷ÐwÿAÏÜQ‰þ¡jÝ@Ç|Î½†:¹Šª+¥OQ8¿ç|‚¢»Œ»HÓü–❧I~E?"ˆsp‡Ïè×hºë¸Bå„p;ÄC¤-ô>ÜU”n¢3o ï>×$}†ž¹ª|ýQúX5º€Î=¯:ì7j öÀ~ö{°¿û›°=Hj¶“¢=¤k? +óUxŽ“Â3z]WÀ]R¢tè+päk>ü\P\fýFi¤3®Ò[G¥P'Ø^„ÿuz›|¼…Â:êzö:~üùCüE©Õ0-³¥{/ŽÑJ'iÙ : ÓŒ‡Aøó ¸ïßƸE¶¤Ÿ+Z§d$†üŸˆý,¢˜ƒß%ض㷋–\D›ÔêôåK¨ÉèË”à!ØAüøž6“­Ÿ]Täyï«xs‚cuåù9ú/Ÿ¡¯pޏ#­ôN¤õŽÈÀ[f|·a +Gböó±]Šm;V]Øöa;ˆíl/Ãn«vãÇSø±‹º<Φ7vÀ²·#‚­dr ´E·Aè+|2»ðòþ‘;ú1Ø7bۊítìf‚ÙØ.Àv#ʎíØ^ˆí¶ë±ÕDZéÊ=B]¾¥FÛ •yBðz€ÌõÓ}d»Èûô%á,œÇã%2vžŽŒ¿íäbˆ\lQ*¶'a{:¶sυØ.#ÛUŒíì{±ïÇ~=Ñ7Q‰•ŒõÕêåByˆ§ÄÓ5d«‹Œ®¦¢ôf'Þ©ƒÐ~á.Â=Ëß$8#ý²`; ۓ±=äb¿ûeدÂ~ºñ£ ?:ñ£CÍZEŸ¶óKo·’‹Îê +êrz³™SÓLõ›9ñÍð‡q,ŠøãǬƒ`#£v£¿—ÿ÷pFØH±oÅ~:ö§b&'2ŽB".ƒ£ +Ž8¼p°Ù@w¬àÔtÒ±kµ„ªÔÓuÔ£–jéö §.¨¿‚»€3ÂHÝÃxßÂU32Ý_ Vq ¶ÇG©-*3VÇÑG&³àȃcŒeðTÁ³<µx²Œ¬´k1Qø舅ÔÃK‡yèt7§Í͉w3 Üô¦öùsW;#µ—k·#¼ñw3×p¿5&Ū1>Y 1ÕGÙT5IÁ¨i +DeË=G‹£‹´(º\¾˜jycÜòÄøåŽm+¶U5qÝrÆ È?¤êø½²'¼¬ª„ªL8®€›ª4ÜÓ^ø¶°zô¥¿íþJÖÄßKXkñ'€/S¼üIF-6Xå3¤Ék˜,!K.Ãl-HÌWMb±œ‰óåHªQu’Oö¤zU&¯Ðüä.UûUfR©q¯JL/«ØtBE¦Àp |©'áú6¼½\³pÅ-õÀÏõïãÿ^~w[¢å6ä2™UcJ‘Ó”®jÓTÙM3TeÊÕ|S¡*Ìå*7W«ÌìU©¹VÅ㖫hÜjͳô©À²Uù–½šk}Es¬o*Ïú!¸îð=¤pmÌ`­cmázk°ï.|q⛃¼ØSbUeMR¥Å¢ +‹Må–I*µNS‰5[ÅÖ¹*²«ÐZ©‚—òSš;¾IyãW)7urR¿£Ù©O+Ûö’fÙÞÐLÛ9pÜá{HCð÷ÁÙÁ +ØÌúU |ÀÅwä“*ñ¥_ÊñµÔ– ’T“ŠRST˜:A©“575Ksl¹Ê³*×V®DÐì´Eʞ°T³ÒÛ5#}­²2˜.»5-cD™Ç55ã,øß! ¿Îö°4`õò$“|ÿÓeÔä}Çño…Jx  b I€ðä5AI*‘ˆˆà;–ùœ¢ÎVÛYKífµn¾”Vúb»›UQ«óÚy­UÛÎÎÛº›uÕ¶»]ﶹ—ž]·›×énÝÖ9ö d½÷½'yÂóûþ^ÿÏïÛÀýz|©Á—*|­ÌW…%Ye–ty-Y*±ä©ÈR O®GîÜr¹òjU˜×(§µEk‡ +&-V¾­_vÛÙl»4É~PVû÷•g¿~«<ÛmYm£ÚÇj8! :œh0 LõÜ«æ·Jü)çÿJA±Í Í(·Í¤B[Ž6p©ÀîU¾½JöüÙò§kRA»¬Ž…Ês¬R®ã~Yœ;•ã|Vfç)e;ßוí¸%³ã?ÚÇ +øzXûÚ]ô ›p €îUò[(Áp9&ÊéHQ#]vG¶lN«¬N(V^¡O¹ˆS‹kšr\m2»{”í^¡,Ï&ezvÈäyFž“à¢Ò=¿V†û¯2¹ïhö‹•oh*¢ÿ¸ÖÉøSJøÝœ|ÎwÇÉæI’ÕcTn‘I–"‹rŠòe.r+»¸\YŵÊ, ÊTÒªŒ’ùÊðö)Ý»QiÞoÊè'”ê}üܔ±ä ­ÅöRøæSp’ Àµø@)>”ß¬È8Ki‚Ì¥©Ê*ËPf™Y¦²IÊ(/Tz¹T) ±j¬hQjE'èUŠo@ɾA%ù†”è;ªÄŠs2T\åú©’*>W?öa;‚íæR©ԃÉ|ǤJ€ pϊ|³THÙ¾x™&')½Ê¨´ªLiØÔªP¤”*Ÿ’«ýJªnRbuD†êŚX³Fw×lU|õ^ÅU¿¨ Õ¯+|þDñU·µûݬ¼mØo  ø¸W +<ÀÉw›íƒLÈF¾™jâ”V—¨ª’üJô›eð۔àwi¢¿LñþÅùƒš@ÀØ£+¢,€Xð#ü,ç~o?Ûcý-õb¿“Øfªä6WBQ9(.îåÝW -üõRZ N)S 24¦êî`ºâ¢‡Xƒ$HÓ)ZBh«B6„€ ¡)B›Ú&ȖD$4¾>·´Ž±…ÁTP *1Q +<|.¨¡HF3ńٴF4P(N†iÅOç;J˜N3‡X3ÃÛ.kᡖ&€˜lAĵ )š³0‚(Ìö4ýà–æÃ1‹ø¦¨æ{ ½å$f[ƒ”3þüÓàK†–»7“E£•ü,^®m¼øf“‹v²Ã)¬‡#Ô#²€ÏˆÈvël¶µÙ/ñ dÛïxþ–:ˆ¯4‚z0^o€³¤Q&R1´&·J ȵ „¦¹è¨N–yÑ=/Ùù¼äº­ã‡MÔƒÁœîéä>‚²›žèÞËÿ!»góØæç}¦6blSà¬å|ös>iÌm†¦d„7yp.Ü]€6Ó­E,`‹ñc 5YŠ½Ñ„šôQ“>¾‚ö9€fêq/¢r9br9Ûc/[ü²yî¦fgÎ0™Ï%Äì æÜ.mÃùmÔã¡ýÒÖã,°ùÿëšo€:ûH—»Cš„»YÄk„7±f-Åÿ×æØÒýPl,ƒ`Ø'í&'ß¡O÷Q—!ztˆ~ˆÁ"È'(â~ØÇ¿—sbÏ«üï5’ï*ò]ÜMsvü¤,!Ê{_Œ3Ê÷hlù<&Bh-ÖTlDŽÉ0 ň2é»ää=r?FèÑâì(¹8 +Á‘­Òa:tüPu¸V·ƒŸrŸ4ò›°%Æû-°ì‹ñ|Éé4.ÎF©&‘1B¤Jg蓳øqº\à偃èE?OÏAr–3óì!pF•p»áÎãvúRâ#<¿+Æ;ã<ãa¬u:ƇQôx\Œ›(±.ŽA]¦6ïáÇÌìûÔä}fõ‰¿J‘ß#È+¼{‚í^ÿ‡8¬£iþ‰¾û=syS~}ŠŽ¹¡™ú=*â:ú+”ÍG É/P]Wiԟ£%.£«~Já~BÁ.éi\:¬·Ðop÷¼þ¤s0¼^/càü_€¿ƒ¿ ­>Q\f¸ +ô4æGªÖ5tÌ»jÂÒLý?~„ʹˆòy -óJòCá†ÑxЙOEµØö‚ÛðÞ㱍—öh­4¼7ÓjvP„}¶ëhÅ©ø߄ÿ3ô,jñiÔÞ0Úî)á“(Ò'´ +ÛØÞL5¶ÓÒ{ðä #uŠÌ¼M›ß`”ïpEW€íàãhë€óàT¬ÕŸW<~§`;Û¹Øv0‚Å´i%ëômüx}¹ %ùêrǘªí¢ as9ÇÆjÆj=ÇÈ7ø{L`e º¬RÒ5ã:ú%.ÇZ;ÚöÏÅÆ}÷ØQ`ÀO#6³€ÕZˆm/®¤Úu؞‚í{°ÝŒíVlE°Ý¥ø±º è«TeÇê Ÿöе/àÙi²ôŽVқ«àŽbõXŽø÷öØ1¸™\ÜG.¾®t욱k.l{±]‰íZŽÐ쇰ÆV+¶#é]LÊb¼ø +YÇä:†ã1~6➏Íktv Ø5bׄE ÈgÜØ÷ª?–áÇRüX¢ aì¶2)sèÒnþ–áM?Ó³‰ŽÙ®:e•Ž05&9¢ÏÀ(÷F©ýøñ»•ãdè}¼{¹·”\,æ¼XH. &=ôFóڍóñc~tªŽ!셱ۦvî¶á,¼n¥/fÙ:´™z43UaêïKý‹ï£âH}$AÚÈ+oX&²fp¯‹ß:9/:¨ÉjQ6ö­LC8Já¨dRÿËr¹À¶u–aøÄ‰c;ǗÄNì8NìÄvlDZs¿:MÛ$m×´ ½ÐKÖ­ô¶¶bíºBJ©ÖA·VëS·¡©ÝVº1D¥ëm0Æ؀A h*hš6&.ZQÉÐPG‚'e=:Ççüç¿ÿþ½íèô 3HÃ¬Þ1VÎ*fížì —¦ÔÏ îc%õ±šûX½z>†ÿéA4§lsGÿX 㰔gKH —˜´¨°;µ;Ѩ$þ:uè4¢“ 2èt ÓÇo>õ.&¢ zg=;ì6Þì%ʯÒcÂ³ìx/ÁUø|ªû8fw—“´Ÿcn–ÀÿËïç•iž¥L¹"‡Ì.õ™|ê5Õ¨Ç\¯nsL]æ”:ÍYuv«½0§¶¢µ-W¦x­ZŠ·(mÙ£fËA¥,ǔ´œVÂr ¦áÜдv¢¹ÁMß{æRÓaâÿG^ï{걫ÇjSW©¡ŽÚKªÔVZ«liD™Ò¸ZJÓJ[;ÔlíWʺPɲ1%ÊÖ(nÛ¬˜m¢¶ƒj´Sƒý´"öË +Û§áÜÐ:ÛÐ\G8N +6 +CÜ÷C7Ç]'±´c«aV«£DY»]-v§ÒöJ¥ì~%íuJØ£j²§w´)æèUÔ±@ Ž1EÊ×(llV±G!ã~Տ*h<§ãG +W¹^‡kú›Ð[í›KÍBzøßNUyŽÉç9-¯ç²¼îßÃuùÜ7µ ;Ð\MZLÊ3 ÿ¹v@–giÞ%‰§‰r1OÝ5¸m +» Õ»+rW«Ö]§ 'ªO³òWäT]¹HU•+äóÞ©Jï.UøØq}Èíû¶\¾Kry§áïr{oj'“荓Ž@.Èpmƒ4ñ$x#–FÊEˆ¥Þ[¨×ª ×¡€×¥j¯WU¾ Dä«JÊ[Õ¦Êê~UTÈ㟐ۿA®Àçå |EFàpJ偋r®ÈáÿPåþOtkÑ#ÝZý!ú€kRÄç]„‰'Dفü~‹ªvy†*ªøå©©—»&.W0#g°GÎڅ2j—«<4)Gh§ì¡/Ãò…žRYè¼–­öcm¦þÕè݆]‚hƒ44O#ïÂ"ž¨âYe¨PžP™\u9ëÜrÖWɨ¯Uy}£á4tÊž'[d©Ê"kdlUidJ%‘#²DNÀ *Žü\Åád ¤Ô¿½EسAè‚,$!†=ˆð®‚P •ˀ91B†4B¶6LÖºð"üog4ŠÆt@ mM@÷µm̆Ôݍ>º¶œTÂ𚱮âÔib‹8d‰ã6âcL–ͼlìl&ôō˜àãqÆc|-0'–3/—§<~wé4\×|tz¡ÓèF¹Öaɪ{Y´× 6t-#’‰ªHb¨Æá3ı‚8VÇjâXCëˆc’1™dÑOÒ“T¾ž +Ö3ë¶oíc”e}~–Œzõ‡ÊÑÎ.hE7Á5LØÚ\=5Ð-C·h,¯I5$sÔëo%{sIߌËF¯Mı…8¶17v0&;XÔÛØíTºàï¢ð¶½ÒVæÄæåfÖç¦ÔßÏô¤H3׆Aæ!sÜÈà+º…+óš³z ))"ßö[‰/:@ënúdw±t/óô ıƒv?›û~ޗèÜ}ìS¬) +ñk”yRÚ{žòÓ꣯³ŒsŒ"!Úì¥ÍíµRÜt{^sk^ën¸h +ƂzóÉ8K!LŽt?Iñ!ÒÃÄq”8fe‘ep¢ò#Tx÷p˜lþöªC¯©ƒþN.a0ÆU´ÙX‡þRÁÖ|ûîÉëíÏë¼e€ø>oHº–Ô]Ø)aþ0K$æÇ›“¬—S¬•gX'Ï0ٟ¦“Ÿ¢qßÚ%=y„2¬ãçÕ²œ1@ۏ¶k#ãÏVR°+¯{ ¯ù@^ëëy3òxޔͺT'áé¼Y{.o¿?$Ž ôÇ%ýKŒÉE&Üúâ<{ŋÌÍsì™gŸWí Ú´mlé¦}y³õ`¾}ò{ސ͚¢çó:Lmý`VKs†‘%OÊ,ý~¿€·ˆcš½cšú·l:Wè‹ß ú{ś4썓d÷ºÅ§pþƒ·úOó/yÉþCú/s ü/dì"oGñGçÛ,’ßá~®à§~ͤy“IúKÚëL–WéÀW°ã^/ë¡}_%Ô¿é,jgàœ€'à¿èހ üUf½§yw?ó6sZ)ý +—ð:â§Äñ2q¼„¹„Óº€{‘Esx–ÉûqœÁ­~—Éó&̳ÿg¹ÌcÛ¼Ë8þõmÇ~í×v|Åñ;Ž׉8i§¹ê´Mš£é‘¶ëµµ¬´)ëF‡=¦±C¨¨Ý Ó$@ •c“ÇL †´ILHC‰Cô©ˆCêÚÁ„Ð$PøäPõéë÷}ó~Ÿç÷{žßï÷<$ÈËé%<ù¦þÈt~´nû+ký|>Äî¸ ¿Ýœ¾7å¡3 0†(_fôѯ¢=„öÚM´gP^ <ûÐ?ˆþQRã$úgH“GH—‹X†ô¹¡xú< rõ/0Òç°{ >OÃß°y ކ×áûë!·ã»Ý$ð=‡~7óVÃÿ!Rd ÝíŒcºsŒe Ýe:Ê#hŸ$…Ïêª>‰+xñyÒëKÌÊ+Dègtž·á°Š—«ÌØ*s½‘B?ØLm* ô×Òу®_×éu¯ÑÛ]Sµ2º5t·âÿ¨ž¤›ü,Ýßôv“#WȑËøq?>­2ãSü{Rý#Œâaø¼ÞÕCdÚCØþ¬À/6Óük›Ëà*< 3—™‹‹ô˜ÉϋJ³\;Ñ-£[Cw‘6Н@wÍY4Ù:0 G‰ÈÇtš7òå)T 2÷ÅdÔ ýV×9ßÝûµÍ-hm[¸°¹=c¬0g‰ÉÅ!´ËX¨¢=ÀˆGÐG¿‰æ š‹x°Ìl'[Ïp¼<ÊÝSxö<üÙó:Gϟá#~¯®Ã)Ê|¯{Ã6Û¾o 'äàhò¢€VtaEÐ.“‰UôÐF ½&™1KT–ðä0{Šl9O¤.óô:¾H½¿æøÿ€ëê:7°ÅŽ¥µ­ñãëv9Vá ì—]7Šº&DÐnƒ,úÍãÇnõ¢_G½q´§É9þߏGÇ5Å,NÁ 2iœxŒù1öŠ1vœ1v¥q|X‹ÿc3g9òŽ³¥-s]‚yŽãÝlû³äÅ.µ íG;Qô“ègYl”±QÅÆz t'ÉÖ]üÚC”îóYIÈâ§È ø«oÃp þͳU=½óspôôQÞÀÌZyÖ²QªM:,š°¸Ð÷¢ï×6rc”e­4ԁ6Êب¡7ˆî6f¥©~f©HՈj•xô²2{ÈúŠ¾?†ßÀ]ø¯>ƒ­3Ø=ÂѲ³Ð„qŽ¼QžàϰǦ!‡[[­†-&vÂ؉c'…vŠØ©`§;ÃüšÔf°L$»‰G‰S´\V—åY<þ:üށ¿Ãô(¶Naó ÇÊí¦|íayÛjiÏȓ*ʝªÊ•‘3ݔ=½$[愬™‡eÉpf(HӝiúÍÔàŽcc{S”àÃPƒ2(ÿ:xž†$¾Ä!š´(œ´*Øn—?í’/ãUKÖ/w6$gGLŽŽ”읲æ*²äè)r“ „F%Oƒ’§9Ès*ä© r¯…gÇïá}-ck†¶lÍÑë@%·!“ƒ4ï’øçÚ +AÞhߌ‚M-]N9K-²u³Éma©°À*$MG+],ljèjùž@ÓÔÃiÜCeP¡–®P où)àCù®Нê$PƒnèÄNÏS€÷!ž6Jô@e«œ‡¬½4U6ó]?MÅS'hu>ªÓ[Õéwë4quš˜:Õ@z¾ŸJ¥Ÿ†¤Ê±†µ{š-´hAz Äï<Ï2ØLrr®YÆ~û´°ÎšEÖ~ÖÚAœ!–aüh„66˜“×@¬A<ã0ǀfq„&mø&А ýŽឦ ]ú` ta/Çç)®qîà ÇÄ®Q“óa×E{HY´a“¥Na·V䡇6 ¿ÿ3]®ÁQÕg6{ËîžÝì9»›½d7›l²’˜²„[ˆ Pb F +*Ãe(P*ˆS­S +J‘Ò/PÊ¥j-2È Ê´:ÓÚ±jõ 3öú¥H«m-Óéø¡Ûßɞét˜‡äœÍ¾Ïûoÿ÷¡ýµ’el?VáÇ~¬å‚YÇpYKb×r 5ã c̉ջø»c,NÔÑÕÏY{àÄÏ&ΜâÌ&¡38¯Ïæ]ìp~ÙᣴX¢±á,¿kÀ:gÞHL6³˜}?¶Ñ¯Ò'ÒÔÛ ðv ?€±m÷I[ÉÇýÌË-¨š¯¿¥~x;g’rœ!Öq68¯w©sΕΒmó­QQ]·Ú˨#r–s[ ì 7»é—Çðc?}²&{Œ€ï‡€¹‡Ïî—v±ÍïdVí¸¬ÉÄ»H˜²Œ³Ø"òÏ8ñÜíœs­ÃIKiø&xÄA;Á.GÙâd¿#’#¶h¡^Ÿe~œ WN0?H“ç°ÇHæ3î(ýqe3~VípçáNÀÁEïj'®[œóٜ;ÀnGˆØ<¶$”¬êضH9®ªX< žWU¸Ò~ºH<^£W^ef\¢.‹ ÷euîqDæIàNÁ…Û¿Á‰ïÃï^pÐá³¹ŽýϏU‰6×Kà<`ìˆ,®D$ô+ð5ò>õñµñ>ïÉ¿JŸ¾Kbß&¿>Âf-ý | +þþ‰¶º…Îü”ÝùïìïOl¿ÝúÛûïØð¯£.> I®Q¬¿Aa½M¡¾…2zõ÷ øüó2zâ’àÖQÜ{uõºÎ¢k~Šž8Ž‚Ãà p Þ¿‚àÏà÷àºz]uq-óÛù›lð¯£$.ãÇ%ü¸Èî~Åuž¦9Gñže‡m÷~~|?žDë~—bz‚":À©÷é'¤ö—ð~BiUhŸ +^VˆXe‚û]ðš“ÚSNڟ&ãhÝq4æ8Zæj%vØ¢Ç‰Ç~†ö>ö^çôån†×.×NÝC)­¦u¾†Ž}€vÝ×!¸~D‰_Òvý·<¬ÐâmvÙ\p¸Ç²ß;Ñvâd`ÁIЈÝ"v;±;»eZu&v‡°;»#”óbl/£"VÒÎc(¼Íp<¤ 4ïz"µŽŒ­%³kЙcp¯_/;muÐi÷Gœ–Ü:ўµØŠ ¤@»ENØA´{°;»Ó±;ˆÝaªrX„íeŒÒQþ­Ã›­‘¹‹ì¬ “ËÉörݲW¡ª+b› ¶Õñf¼Î8›Sü a¯Ä@䩾"¶;°=Û}ØÀællÃ>B•~ ¥¹‚*YÅo›ðêa®šýTÎ1²v®ú|*8äŒ=¦çÄØ·¯{LÚcz™\ØócÏQlç‰z+¶Û±Ýí>l`o6 ;¨’¥š‡§s±:Ìé>GÅÜNU QuCtôº~»œ1lóEÕëо¦ìkÙ¾² Tc× Á~û­ØoÇ~öû°;@Vñd»ˆjY®dg:Yà¤ÓÈG™®-Óåe:²¬ÿ€ÊÄ5c_ £Œ÷;¹~‚σaWuM™C,‰Ålr2›Ú˜…³T2ØÏc¿ûíØïÆ^Ÿúy;u£õÅ)TE “ÉG7Y»èþ.ýü›wm…kŒUh9WÿÂÚêJ4fò<ÀûiøS&ýÔçTr2•Ú˜JöáG¯àh‚£ŽvìMÆnY·ám'±è ¢ídvQn£ÒKt\‰iUdò™~E&q 6qݏr½-e¤/`53ø½ z¹nzð§ÛW£n·ûAì‡AŽI8²p4ÁQÄ^'ÿ÷âÑtµ¡UR ÍTxý‘'óy&@#5ÑÈThÔG<¦õðßïBVÒa֟Y  ¦ðÜ:ølþ´<*ùjUò„TtGÔꊂ¸ +®”š]9x +ðLÂf·]eå\s”u¨Áu§2®U`‹Ò®tøðyãƒò$î;±B5‰ur%X|Ü –±øE€ÎŠ}¤¥ṗs&ëo/èEÐÌ»,HãK}Ü¥xÌ#+æ“iÕªDbñ ‚‰°jë£òÕÇä­O˓Ì˝lSMªG®;lq’fú¦¹Ò܆i–ßÔ €I|HÞÔbx†SÈGdQh- Ï»|Iñy"Q£XÂ+3îSD~õµ +&ƒò§ y2Õ4Xr5ðÇ 9œg—Ï¢)²ˆ¥K{¡caÍq+æX³ÜÔY–φ«$ú/ú"\C¬Þedj(fžsø‘I>'ݲê=Š&=Š#íU0ã—?;ÇðÈÓ¼MvÅ«_nFã5#\›O&~¨ÀmXàflÞؒšð! |¬|e6’¬÷;A+hâ9‹/)>«O»&ˆd\2²5 +æÜòç½r73D ÓV£:HJW §ÛØãÛÐxmˆÇ¶A€ÖlcŸoC•¸%Kˆ"›K+>´|¢¹pNç+=`hi¤y׀)üˆóÓޅÿË~™F5}faüX5 àZÜëZ«"ˆ +nUƱ®3hÝ:£ÕŠ­Z+neœ¶J;š=ˆ²HYB6BIH€@€°„PÙ !Ѻ/ÓÅNíT;Õ¶ÏK2çÌx:Ûɇù0pÎ=!üïóüÞû¾ï½ø?}fÀé^”÷LÌR³pÐφŽ¹`@Vr¸¡€ñ…@¬GæÝ ôòAÞw"0<¢ŸŸ‡A!ÃÇ\¬ÅœÔª©X<71 1 ï'#×hñGŒÂïÃñw_à¥ã±C0" š 5m ṫŽ`ø Á",BÁ",Bñ P¬Gèb†ÈP ­!ÜBpS/ ¶³æt²Á¨3ðϞ‹˜‰ß§"×$䋍÷Øî”/°Ò0ªá¦¼` %¾„Á¥»:–BÇrèXa`F6;X„Ap؆ٕæVb€\½ñr>i:ù¥_PKðüùˆÙøø ä›-ãñ:ïGÀ¯/òҐ÷9’c+.q|Äh"ð|èX… ~5.û5¨uбßFlª 0²a|x=†ÊuèÖÃç04¾‚.zõE4)÷¨àš‡x ù¦CË$¼úãýHl-¹ y½×±;'åjn€ i´\ W8tl-бk²Û°ØŽ‡nAà ÛpNlEMla¢Yã²6â{ר`ä +€ÔYð;¯ãày8ûÂï0ä´Ï_õw97º= Ec‰g»@Ҁî“=Ð Ñбõ¹¿QøR$Ή ´{P»1¨îj§æÃëÜù`€× ðBà΃í…Vݕ‹ ‰Y”k`Ոö¢°õ(,7U +UØ+Ø'F|`—€… + ^›EMBîÑðÍ@n/âù›+iúQ¾ýÃ'B/ p¼aT‚/DŽ;—¡C!ÈàXŽ¨BÔ"È0‹cˆr¢>ºQ8ô8/l0݊ûÃMÄÐ?þxy~nÈ0áë7|ä¨Ñcüǎ›0qÒä)S§MŸùâ¬ÙsæÍ^¸(dñ’¥Ë^^±2lÕ/W¯Y»nýÆ_ýzÓæW·lÛ¾ãµßîܵ{Ïï"¢ÞˆÞûÖ¾ýo|çÐá#G½ûû?¼÷þ§â>üãé3L6‡Ëğ=w>1)åBêÇé™Y"±D–-ÏÉUæ©5ùڂ¢âCi¹±¢²ÚTSûÉź†Æ¦f‹µµÝfïpvv]êé½|åê§×nܼuçî½ûŸ}þŗ_ýùëoþòí£ïþúý“~üOüÿŸû÷D%–}ày1ý<\'¶_ ¾gÀøKÄù"0X„8d$ D„‰”0QŠŠPÑ‹žp)#`ª@ÆLÐÔ6-€ÓFè8žnðé#€®ƒÐm‚èO„Ñ@zH(=&˜žþðc̾Ødݽã¬ôz¶~æýßxý °Fì‹ìßû—ÀžáEyy äí= † %€áãã ÃGŒ £Ç‡ÿXé'$`( ,„K?W-=C¦ ¸„o"[ ;éõ=QÑoî;p0æȱØïŸúð4“Ï?—˜œš–!Idr¶ Ù-úbXìwøŒAWMô1 —° Ÿ0 +§°zûÌÞ»»Ÿ}Ã_>xðŠä뇿ïo=züø;xÿþɓ§Oðßk¡M¼×ê·ü¾uDT_“_²¥ba~CٖsñªJÝÉ:CÏR¬àÚ ³¹Z ¯G#â÷©³â¯æe&\Wfœ¿©HK¾ãi hÐ0 a@À† 4ü·Ñ wÛ|—Ýk…†fßdKe°¦¡üUhØ_ݯAųès¹ö94H¡AÌïSe ®*…g¯) A–žxËӀ† · án›_To‹O²¥*HSoÜTb.ÙW]¡û Þ âZŠ A ùР†%4(„ñײ3nˆ¡ÃÓ膆ëí>Ën·ûEõ´ø$YLó !Ü`*Ù_mԝ¬/Qs­…Р… 4ä‰y—"þy–àSIfüuaƹžÑÐgc,»ióê¶0’,5šºŠpCuñ~S9Ñ riȇ•”۝+á]–‹xW¤Yü«"¡àZ:êÂÓ¸d¥Mèµ3–^µûDv æ9ùŸ7•V0•éN6CC4¨åœN¥ŒÛ#áöÊÄÜ>1tdBG*êÂÓè²ÒÆ÷@C¯Ã'Òie$5›çhÍÆÍ¥Åo×t§ôРÍåØUrŽS!ã\ʖrz$N¯:Ò #{ÄÓ脆îƒn#¢ÃÊHi¬ Кʷ”õkJ´§ +¡A“˱)sØNy6»K"cwgIÙ=éÐq:E‚+ž†³•6¾ ºœŒ›…žZg +ÔU•o-/Ó4CƒTРÈa;¤rV§(›Õ•©Ð‘„u9'æ_ö4­ôqÆb§“Ùf¡¥Õš‚ *ʶ—ô‡Ì…Ú¸Æ|5Ç¢T²Û³,»8‡åȄŽ¡#Eƾt^Ê鎗ò{<Ž6úX‡“jwУ-VZ†©zQQYÙkF}QL­V× ††œöϋÄIšÀh4ÐX¢ñ$›&’}4Éô¸9ß»µÄöwí?ÿ÷Èc‡Wƒ{YEË«¶¬ñ}£?‰éºãQ – +˱lpËûð’WDLÒ|rÊÍáV\„`Ɖ‰çÈмVÖêmÓ°iØ4l6 ÿ†m†Î{†Pdžºg0|ǐûÖ0þ­aÚÍåV]ց‰ç¡F!ʺ[KnÛ¹–lï¼{ž`¬¿¥²¦?Ã)`èŠo”èh@†½l‚îǧÜ"¢êäsf\Þ¼-R¸tɌ)êíN²¹m-¹³ónü‘ëá=Àð +•5¿çeŒ'#1=0h±tH…ŽùhÉ#EËîA¬âìÇg"²F ¸‹V®hÅ•­èIÅb½mî0;;×6 ‘ŸÃËö¬ùÀð7`ø2>¬ÇÒA :æS¢ã´vI±‡¯QÄ¢UÌ]1‹„W Bé% O±Xo·™æ¶ÛL[çÄn`ø «`ËQ/c×ñˆÍµhÞ«F'ÜJ´â”cs”_´‘+æ!Þ£DtU3(½¤˗êí³µívjÃððáÕáÇYyÛ`xN+1™€-xµè¤[VJ¬fûÌ ¶ªAÆ»¢âÿC)º,•È—êífjkÛ­Tkçíä®Ã«Ñ³òÔKŽ¬õ/cþk$f¼˜ LÀˆÖGùz›(6lœjÜ;^i<”)7²m©}UðÜÿÉ°Ìw>&õtÇ%4”»a†ï‚Sœ&œHs¢ĉe!–e;ˆl¯ƒÌÕ[±Ô°¥0ݸ/Wi<ê™kêQ•ž– %ߤCüç£ý¾®X¿Ž o¾Ñü¶üÆ®O„W÷}Ž/€áê>{âcI_ᜲkôsíÅ,Ëp!Ýmú,Õg9Ï@ÖOØv.‰Rg“u6AØÏ$Ⱥ[µ5¯‡éX÷=õښëWǖͯðsòé´ül€‘w‡rl$&ÅÑ"’Ù—;$øù&,úaqÉÇœðöJ'½=ʲ§[_vwî»MæaÓ°iøß7ìîX÷?ùښû¹c˖—9Å_è´â 0t…ãJddD†'‡%x:,&rA>'ïçðŠ>\0îEE“h`Šî“NÓ½ªŠ³GW±÷è§î·õpkózøáŽõÀ^`xöø’å€ §üà¿+WÁ±¨c"R,ÀÇB¢èãq&<$¯LcÂi7Ò_uAÒ[=këÓVÍ}ºéûí;ú—Ç—¬/ Œêb$®fÇ¢*Œ ˱\P‚åýýø¸W@–i.wÚEfœ˜x΁Hçm°jÞi«HW¹ßÖ#-Íë‘]ëÁ`ø0¼(Ì©þ §Iõ…HLÓÖ`© H±¢w›¤EÄ´‹Ï™qrxsvB¼@áÒEª¬é͌Ñý‡ý:ynò¾ã8~ ^°‡¤I3„¶¦mÂÒfځ„6MmҔKÛ IJÙ q°CŒwIÖ£çy¤Gû¾ï»­åѾoÖbK¶l˖%[^ p(t™4u†U}\Ú?àÉ©ïûk¾¿ßå3·ÿöÕýûŽ¯»µ¯Xb†?<1¨{B1 )ÖÀ通ðÊ )—žu +¨e;©Ž²5+ƒ»j¦K×´4Œ’ª^S5óx{z¶µ~q_=°a8ˆÞ £ie‡/©éÅ´„xX§ýj(ïQ@Ó¨š³‹áʨ€V³ò«f÷ =[rSÉPÔ¤tuE‚hÊx{~¶õñ {¯»¶/¼ÉÍ©0ƒêª/©½Šé‡â!=”ñk¡¼[Í8åPÙ&…­ÚªYÌü âÝV $7¥yMÄRU„LMoþgn`†#˜á#4­n÷%uŸ…b†DÈ@ÉøtPÁ­f*haTI­™åȚ^ʸ¥’°þ,—Šo‰„òe>OUåqÕ xà -"ßÝ÷8¸çøºgÿƒ3h.ù’†ÎPÌԗ™€ŒÏMºôЬ] U,*¸¦WPWÕ2ÚM©”~K(ãÝÈd+\‘²Ê¨+x{ÙòÄڍ^o_=ŒN£iÝoÒØŠYz!ËpÆg†'Ø¦³b£ +ZÒ(¡e™^Êik{£¬°dÊE–DUÁۆáaä…}B»Ž­{_k_¶ý”—ÓœB3†sޔåJ(6úy +¿à%‹¦<$iÑCPM»‡ôÓöAcqdÐ<‰§ºk[cݍœûÔGÞÄ ¿ê«ÈÛ¤Yѧ®´¤Û—’‚ 9J©‰°6ä"Y?“1ᣱ&=·è„3.’tÖET•ì]ÉJ0L ¦)<Õ݆˜áuÌp¤í®á—} ñ'®´ôº/% Æ”hT'Ãbj&À§ûØHÁCgÝ0g¥æœdé¼sX]¶’´sF’aFG2Má©îÞÚP÷`3Œn»c8Þ¿ ?)ËJ®¸Òò._JÑŒ«È±ˆN…¤pÖ/¤æ½\ڔ›IŸAi¬9Ä_°S¤Õ²ªb$kçµdýŒŠlœÂSݳax3¼öÄ`<Ö_Vœ”夗]iÅ5_JÕûovç+¸éÀãøµ 5R!¬äڃBÒ¦nñu\¹#ô.Ò@33lpŒ1–%Y²þKÛÖ´¬½÷´öÖ_Ë[¶lË6˜$„Ù4é¥ Žö_1®}Eo}ÈÃ÷å÷ð»O(®ìˆE”"9_72èáÓò®NƘƒÉž°Ñx%+,™ÑCò’Tå ¶ õ#•„yž{hXûÈ`{ë‰a¿4'ùĝ–7øPeK(®"ÇÂ*$Ã}ÞxØ-B +N½hã°J&.¹ªFä%9¢*J`mA ëG*é‘ÁûâZÌýó‡Ü]ýŽÇi­;­8ëEUÍ¡˜škàt@ ÷{dðˆKŒŒÙ…´) 9kìä~¦a÷Ìəò醪(¢k Bš~¤’þgx¥l؂»kØN(Ê?åd'Üiåi/ªi +Å´„xX ¦ýjx W:epÑÚC›1u3¯éD¼r~Ϝ¸K6-ä('ø,ÍeS—¯$̻챡·l°o~lPì•åäÇÜu՝ÅôøxXOÍøuð`¯.8”ð¤YN›ÕJ×dbö=ñ5P:Ãã)'»º4c]¾’|kˆ—ŒÛEåû²œâˆ+£ý؋êƒ1SKµ³"mnfˆâ¥:üp€~0HõA¡\^‘0ÙK “¼ôÑÌ<¬h%§«ž™\°|l|á†èç‹Þ5ýõ¹Zñõ—س52¾»ÊCõRj³²=wIM̶iñ¢¾5M6´¤(Ƌ(ÕԌæ IÈҔ„-Ÿ&hÖÆ8ÃVIùlÕ÷G‡,M”üÂú%;%÷_<Äùúµ3ÐÍmɟï!‘®ÛJ§è-Å΅±&nc¡…~/lÈEõ#íâ³Ãñ™ajÏé!Prj–Ö ÒdŸ 0+j oþ÷ÐËUËì7¼*ÖoíÂ6îï×¢|»ó$á«?6´Ü:ÒÜx½_ÿÙÒé¹ó”º«ÍÀÉÙK`íL|bš„Ÿ¦Ð>*QéÇJ ýØÌ82Eg™`±*)=Põ×ô3Ë؏6r±µ[hØ/·w`¿}ð¯ßïoùç¾£ç¾=\[÷ÍñÓuªá£»çÞnj:|«¥ùÐͶ‹oZp7ȗ|ImýðKÿáu¿ÿ:£mßlB%aæ5ó0ó†˜as5¦Þ±ë¾ìµwDGI³¼^ž{I—åvxÒ\š/ÕÅ$ٝ¡‰Ãüh ÆcâD”,IFIòd„¨B#mZ4‚7¦"­¶T Õ>mß¾3üÿV?1¼YiÞ¯½-:Bšá×óóÜ}†Kñ¤yˆ/Åe’N(ÁèŠÄ^, +ãюîd„,A#$9Z6¤ÂmÚtoJ‡Zmio«=õ´a–²Áò³˜qS5¦Ý¾ëž|OííîÃíӂS‚aþc†Oò¤0ƒÉ.v8ÎêŒÆhÜxâ'#TQ*LéI‡H²Lˆ¨Ê†Út٠ޜõâ­Yޖ~Ú0˪²aý +Ìôаm×=ÅćÈÓ“Â!A£)# xÒBª1B 3ã°ãQFg2óR!@˜ RÄÙ`», ªú}¿oîw¶YrÖ6[æiì+çaÖuÏc¦7ª1ÝÖ'†ƒ”R÷ áðœ9#lõ¤D²›úãõÕä}Çq¼N¤Ýܱó‚­ëqZÛӝNÅU»zœuu«k«@ÕzW¼¡ÈEAAP ÷äIž\ÈBx $„ÜóäFî$@Bȅ„„pAEV×Ôº9;¢mý-ʶ¿óÇûÿ×ùœï?ß««»Žíõ°¹½ôú€‹*9ÉMý‚8bÇÉ¢v¬:jÂh"(VVãÐ@ªýß ÝøõTòeÁ´ði¢ù4EJtäªÕßLpø„°»avwñk}n§ÏÅ䅜4~¿ÜµÄ1+¾=nÆ*ã(NUã´ý +<Lµ—ý;såö¬YINÁ´èiBx‰6£æ +«_ˆsøZ¨îîfFGÀìíäÕœµÜ°®Z)HÜB':ò!¯TãUr‚¦_JDƒ©ôoÎt$ ŸÌÄH¢\$Ò\ˆ„åV¿¨ÆéQÜÝ"Faø]|VÈÁaG­ ^¼j2“Ä#(Q6¢"*r¢*&!i"­$]0Õæ kæ ª¤Aš]0ݺ4!>‚DZòрè¢Õ/®rz[Iž®Vº×-¤÷9Œ~ë`q‡L4Á5Ôz]E–Ž¶“åCmdULDÑD„](ՀþÀðÂðû¤áOICVátÛ^ÒDÛA$"ÊCâ V[¥Ó+Á{º$°¯SL:šèQ Ÿ1hâ°GõŒ† 5M|CF•^k¥Ê‡Z¨Êx3UA¨ºPªÃi/ è ²¬Âén҄di=‰ۊ¬~i¹Ó+ÃzºdÏ%C6ë@èÃ>k\ËáOÉX¢["†d¬™Þ>ŒÐ•q]i ëB©6gx;iØ°¨·% » +gd9Ä Ù$*ÉMM¾Å//uxU‚Üë”Ãa«Ž›Äôkºfæ¤á×R×2Ùȕ\o`·Ô×*ëXê(© §0,OƤAÿÂðqÖÙÎÂù.â„<§1*;¬ ÊO[úTů¦ÂãÑà{j8lQƒ¨ ¾.3&…Bö×aËí:AÛ8—/áð W=ÀæhûS ÿgÈÜ4ICû΢優/Š}ڐ:·£=k÷JÝ]Æ*¯…ú *8¡l§]Khü¤ƒ-nHÖ6Îj–Ž²å &_cÖiúS 3Ҁiõr`xaؚõDþyÑ]õüMݧ 1M¶&¬ßo +Zr-½Žs.‡éj¯)ùkjT´A©AdÐGOÐÛ¸7`©p–HGáùܤŒÃM$Հé¥!ÖoÚ?fÍ*wÞÓmÇÝ2~\?hü‹2bÛ©z¾2»ln“©Ê¯Kî ×@1‘’’à'¬äTYíYÖ0F‘‹G)2ù¥U‡„êhªÓ²4`^•Œë2nKÖ¬f{Á}ãVÌmû&îpç‡ÒÞ-Zwç›ÉZÜ¥5UûUz(Ô¦…¢MjJŒ§‚ m’3GˆrÞA ”’A¡Œ%êhªóÒ4Ðñ› `Z› ÐÍÙÏЭùlVÝéyŸ1>°º©»g›Áä<âÔX.t+L5½2hA)á-áh ºš§¨ƒD{¯âbÕÂ8V#‹aUêhªŽ%iÀ²2˜ßÏú²4ÿ!ï_]¿+ÿ.¶Šx»Åìùk‡ÚqÂÕn¹Ø-1c|­Fȏ ` +…juÔ~X G(ZF”¨­ÀixX­ Z£Eªuò”–ÅiÀúÖ2`y/7eÿäZ{ü~dUÑðÔb‚kà·"UW¶YâÈs‰­e]-Ø¡ò5˜ ?×H 0 ´ M‡((#DDYa<Ê cÑú0EÂÕúÖPªÛ¯æûŠeÀöîz`]·óQ`Õþ±É%y¾©¥$4–)lóîÖ ùÄVîn´b»”ž:3ÕÇ6Óz&ØO3Òý#£ddõ ìÎÀ ` cs_ªÇ¢ùÀ¹|)p¬^ÿ´g՟oM,ÞÑwÉ9óԛ$Ib“ îiç{ÏèëÜe–:'Æɳ“Ý+µ‹e¡õÐ;`/­ƒá…ÌLÙÌòÍlÞÌíŚë{1f/Õw.œÿ“{ɒçî·Ö}›x}cøî뻬2 +dwÖàÇ6³¹ñÝMµáÓf_©’é«ÒÂ=8=ÔM4‘Û~ |ùy؟“Ž~uâùéƒGð¦? ß÷ÏÓ·mÿýHÓëè¾ozŽíýº÷øÞ¯'ö|%:ùÁWÒS»Ÿ¨Úë 8þ#à^½87Ѐí÷ñ`óSÍÉӏTç”]·=Ær‘{L&‡Êu”ë…~C*ßgNç{­i‚ë%8® Áòdp¦?ƒ3 §£ø¥x¥×׆ Ï\”aheøeh¤ šŸjOœy¤é`~¦î”ÜR²M×OU!ƒKrUœ”h“¡>•˜ÒD¯u”àÚ38ljâ,J0œÆpzÃè—ÑTÍ~¹¸Þ¡{ã&`jm™Óë˜Õµ³îkÎ˦Õt˸Šï«("¤R™(HÕɼX—&ÆQœoAq®ËqœÙ˓Í2¹,Îaôh6EeãŒËX=7eð¼NÞ¦ ;63e0´uÌêO°îëÎɧ4]¶«jn ¬ÅHµ"Q«RĀvÐߌ帶l–ãÌa,/Ž1 £Gð#‚ÇÑŒaõ†žܔÁñ>ehi3~Ø1k<ʞ1tȧ´±iØPQÓ'5²D^©LRMé±lŸ)‡ñl8Æq(˛G¡|šä㠄ˆ0#x˜ËÖeX¼+)Ãz¤ –æÖ9ó¡ŽYs{ÆxJ1©?o¯é¡¢–'u’d^­Hã2šk³˜Àˆ£Ãq2,9ʄ‹qæ0‰0‘|˜Áìh®ž€ç™aheØ>o°옵fϘ+&;júîpQNjôâ$¡•â +%–Ðàh¿>ŸéµiŽ³”fÊqf¨Œ°àbˆ5\ð³ÂÉæêéߊyƒsÛ&`Ý`ÎÖÚ1kû{ÆÚ¦˜4ŸvTá¢/û“„AšÉ©åYLª"2B™î5—“=Î+ v°:̂*;\òq`r¨!œ=Ñ\=ï ËÏÚyƒ­éÀœ£¹cÖÑʚq’OZO:ªæóᢉ/˜ù)Â,Édu²ªPÒbM9É7ÕFz\W¶ÿj¬z{Be7&¹HÞ΋æê ø(ƒÿÿ†­ À¾¯un°é̬³™ußyP>é8â¨Z?­]ñ‚µ'…[E(f”à£jY1)QUããµoh"Àõ^âjN^¨lÖ^$oæGsõ4o -ÞßҀ‹28ö´>uí9óȽyh¿lÊuØ^s´‡KöOâ3…;(jçÓzIyD. “A¾sÚÅ÷\·ó5KT1÷ÁE£É¼žž7¼×w·>uï>ýÈûã3ßé”ç€mÌu *¹Î].¸»“¸›‡¡NQ!iWcZÉDXª»ë Þ²=7ŒBÿ˜^Ut¢pQ+.hD¼ž€Ÿ2–-¾·hÀMœ;[¾õìlÿ§'ýAp—d:Ðd¹ê;,{OÅHÿ…îg¢¨¯¯p‹jˆ]<í5êÿjT:îhåCj©ÿªJ +]QIÂ%¥d¸@­•¨§ç [€»±å[ߎöA;.}ï߆w™®…[|•pRBÎ\ÎG;ÓُA¢š×-œÒÙ¤÷”û¹Þ}S¦ñKUÁªT*Kå0)“!D=eRÿoh`ˆ2xÞoþ.¸íäcxk×Ãè{ýwãÛt#;]µds¨š=cÉ?§bv> k6¯`BîÝ:·E÷M‘É{M¤ÔDZ¨"VÃE± +É×Ó¼áµg†w€oëþ‡¶œø2º¹óoÉMü{Ù Êir³e¬¸Ó‡¢Å¢#ç3P„S + ®ü}ãðfïjª×;8Áwy¯ñm±>3tE`—úuÅzAÊQ†Àðlnw›¾G6{’xç¹õœÏ«kE“7Öë³ù]ÁHúèH ~Šôäí° ¬5±_8Îóɯsü¦ëœ€g¼Ç¨q¡+®¬>~ïöŠ?Õ>].LŒm´ˆ–Ð`º=a¹ˆšcܜ>"Èˑ~R‹J½ai…VUXaS…–/Áþò%(\bxa²ž@è§ @øՅ ô«e ´nH¼Ñø„\Ùtzù±‡K?ÉÜY)†Æ¶X ƒf´#fHv§uq¦ŽõãÒ¨Fą^DJö +‹¬a]‘‰XH:â$»?y.Ôÿd€_Y«–Èë¿ËѶ<¼ñêöñ‡/Æþ±ô"|gõÀàøv³±tÈ£ÅÏÂêL÷eUŠ›”'™¸돉sü¨”àF;ªÉ3£‚µô˜ ¿õõ†ü@^~ ¯\RËÖ|Q{iíõK¶æ¾|¹ ù;­ËywÈp£Q§ª~èÏz¥D74å ý(/Æí‹÷¤… vj ÉHÊR—’ÊtwB;ڕ0Ž^LØG;“žt=Èâ@ô¥A”öÚrɊəūˆÇKÿÃ~5ŸÇ­l;ëÎζëЙŽíÎtwfeíìvu¦V@D@9…°\"¹IH"$! ¹þä" I„r‘‘TÄ£ Ò]Ô­.¨ã®€þúÇ:}^öE_|ß^<ó<ó˜~ú$¯ýñgÕÂåoX7ãXMsÙÂËS¥Rê8JIÁj‚ç'éÐC”îšÁË=Õ r€Õ[ák1^ò Œ}bc™O¹£€å7»€õ£_my~{`aaßGÃOÞ?dÞú8Võê9Гך¿;Ž£-%PÈ·rÄ¥Ü|%¿öjMkõ VŒœ"H+&ImåTyÙx£¢dœ¡,c·òT…£ +1*Sï¤öÐ]ÀñÁ¾S¡ûwB?6oí?¬¿†¶>Oo~~´ú¯˜ŠúÕÔZÜJ^]ÍrùrjùªÆÒ[µôâEóۛbÌ.¸Aå\¸ÞԒwÉͽÆáåÌ xYóbþNºëÞ²8¼ww`î—{-CÃÔàÃpŒlI¤nFœ'¼LÈǬŸ/F>Í-/û,zT‚B¬^ªÍÿ¾“÷›ûO>{¥¾.뙐ù€Vþ~1ã“”v¯…tnYHÞI×½{Bc{C¬·ö„ªßü: >g‚ÏŽPÀ‘¨:}¦$%_z–^´‘UðS~nÞË¢üìeˆÌç…Ϫ‹ÒÖÑÅçÖq%©k„Ò”IeÉ?R˒ž6^L|Ê,OxÒri' î ±ÎîÞ¥^y/ïÿŽ >9Ø}Ǿ®Ñ+ñ‘2â2AnB:@$¥‚’”dPžšô™–ø•ž°…Ɉßğ?³Ǐ۠d~u9;æ3'úç–ܝd}/Ds;d~±—>ÜO`Áá?T‚£.á@ìWYàìÑ4v,dG$‚ü¨xPt2\ŒŽ•11 ЧO|Ü @<(ñ‘ 1>0ŽnâN\x??Ý„GÃÿô€“ š)›ÍeÏUÈÇMu„•ËÔÆ¥ç6‘-Òk8‘b#SÍ¢š™•v¥íš®Ò馐†î©J³~²Ò®Ÿ¬ðèÇ*õä`w°þoø2ð`ôi(€`ƒàô!Ð8)ìÄ:«²êWÿ€Þ@¿K£óØâëD¾|ŽÐªºŠ—j§±ò®)´ª{²¶£g¥3ŒWzÇ«ÌÆqd¿q é1ú«½½>”×,À‡ ­°A„°›¸y©-ß"Ö8åÕYhÒýfóNS£à%›oà¶_%BÚ)‚X7‰oëǶ÷Ž¡;L£µº¾‘ƒye¶ŒT;-þ—Åç¨ ìßD°A  ØÀƒ ¼œÔ ¢p[ŠZåT“ï± Í·˜4èzS>KkÑL7tD‘aŒ 3â•fø„Y¯`ºlÚ^{ Æjªí·{Ðýö~8 &x@Äï ­±‡?= +²R7 +×øE¨UneÃ2Ç^dQDóL†r¦‘Ó9Iå÷Œ‘[M#D©%@P؆ñš~?Vçô£N­ÍéÁØ8 ÆÞoÂö @°A$o á@ ŒÔ (§pMˆ@­ò/6,qkً¢xŽÕ¤šf°u㍼Þ*d %v½ÂéÇk\CØn׺ÏåÅØ\ý›Ó‚µ9X»£gïh… Ò?…)lń(9 +ˆÒR7D™…k­P«PqÿŠ³ÀÅKf9Tõ$«Y?Êàö. íñcˆ(w á5îA¬Þ3€¶x‹ÛŒµº{±6—gsváíŽ`ý× ;òƒèl¤¤lHÓk’lÔª¨ a *ç,ðђY.I3Á¡÷Œ°8–aº ßO¹‰rϾÃ7€íõ91fŸköpouiñ6§¦ÎîÁÙ¶á›0 Žâ„( KJÙlK-Xo;_½*Í%/‰K8 P•ä*¿®c‚K3\iaY‡™<Ç rÚ|^|ǐk2ãLƒ=ø>_Þâí¨³ºU›SI°;‚Ä°¡ 6´mN…é™H OHÞT$¬+ÏU=Td’–Û웒rÉl+Z3! ®ð6?»Å9Ð(ôzI²!7¾3`Áz¼Ñ¯­ëPÌ^e½Õ-'ڜ2¢Ý¬·ù¶á¯a@d§#€òLҖ*1ÿ™:ùHF¼×žÓ¼(/ÍJ‘ê ÞpEH³úy,—Áp‘¥Wúëtãú:ý¨†Ð;¬¬7 ¶Í^)Éâ“m.Ù3È· '¿ò˜ Š=ûZs&ï¹6±âqg +á¾6q[“Í·—µO¶ÕèG$$‹_ÄpyØ¿"žì!hgTÄîñ6’! !›E f_+ÅâRl.ÅîÖ[ƒbÛðuÂÅ©ã@ø¦36÷….®ü}"~¥'¥ñ®>‹]WØ6£­èSãLà +ªÃ 1¦fñŒ’¢™Su<*šqˆOëóñh—fuqi6g°€ôA±m8ñ%h?ñw =™ºOe¿4Ĕ=1Åa¾·$P–­©ì[¶ÜÖk¶匭¶sH_g7)hv!oFÀVÏ·0»&9Œž6ÃègÓûØt³—Ýdu³›lÎ`½5(· _…YT8PG]‘ñÀ•ùs߉â5{4ê‘;®~eðlãòH&{a¬L0âEjmŒ­£‹<,P°¦é2Õ|£ sª‰«¥sz‡élÓ eö1š-Óê +Á?Nû¿Ù­ó·¤<€ãø´ÛèöT3ÍîÎT¶ÏTNóÔÔؔŽfšWZi[¢y噡r‰x Š((¨x¡à‰J¹š ¨¥!x$š)¦™æef5­•5M§Ÿýî>ósüûÃû÷׏oÄP‰ʝ~™Ã¨w8 Jÿ÷W1¯4G£—u'¨‹CžôÙñ0ÆàVЮ#ÕÔ«š%JFWV]ÖãRÙ-fEí`º¸¾%lèa*º2 +”œ¼& 7·Ym((C Uÿ5XšB¥ý~¸dgr[7h±õ~¯± }Ñëùhč87w*A?åËÕ‡‰ä:’Lڞ¤6³4œ^or]ÑÍÄúÚþäªú¾Ô҆¦Xѝ&jìL/RiY‚¦vCAù©…)TÙþu6‡Ae}ì£Ú +½¢³ñ{4â8=ç„Ó?p¥kï¢ùòÁéõ¨ÚbÄPÐÂVg(3»éò]¢¼BGi¸¬K”É{h•ŠnzicgªX©eˆTCýÏPý½ T!Ù¡} ·´†ÖƒN¯¯t[¶>59wèìÀ#;’vމ)¿ã‘/)+F š$ev+«•ÕÌÓ¤(󻒔’.ŠRÖ«PtSj]ÔêÆΤ +eGr©Jc(¨D 5f&P}Àj-~„&s‹wûlŸèÍ&çÌÝn.Y„hžÚÄ)æYÒQtÁ…Ð²üÒE~­£Nkb´r[iWrÔÔa;¥¥¢=¶¹VCjRic.«´ñ—Tڄj•ÆP E ²&Pó³)4üô´í6_¾±ëàÔÌ.«›K{OkVœW<>D‘Î:±Ew¼òóôa’¬>rç:­–ÙÁlHÖd(ÔÙÍqm‚–˜6Ér[uKT[ý|ks+Au¥•tÙpP.í0™ùVhúaÇëîí»f'¶™ ,í´Õ¬ìñR¼:!]:œ œseåŒûäp‡1"ö@L)ãF¢”¦K•%t³þەYݑ×@ìÉ Ú29¾ã¢Û!—‡kZÃÛÔb¨ýÎ.ïúæ£zۖ…‘¯7.nÞ­YÙá¨ø´Ç[úÊ"BôÄ>žߝ‘1íÏcŽEäÑG¢‹¨C â¸z)¹?­"êWŠïãWc{5:± £«Dª•ïUՄö¨/ +j¿DAÝ?Œ¡iÛWÏú7lZØð7íÊ·û«;œ¥°Ï[ôú†ÿÌ%š½ˆNJd&ÍDrâ'IYäñø\âhRî6£0r˜-ÄÜʺ6”WªŠCô¥’`}UI¾¾$Pß,1ÔoDAÖ/V:׍þe­öņ-ŠÕÍû¥`æ,„žÙoíƒY/ݱ)Ï|ÈÔÇ! 1ÃiÄûÄTܽشˆÙDöù™ιét^È73h’Ÿ0!àûß-Îñ/Ïñ—åúŒ]6(Ö£àê†5ú~c#턉‰üӗ¦R05Ânûl°:™¾êâCçLyí!½ Áa—1Q˜_ñäsOÉq!)” %5à#Ñ‘ä÷03Ùg!—îý 0å̃âTÏûå©èû2†¡^6£†:×¢4C_Éç¿XW ›L‹à»³ÀÜ: ìœipÂ=<ÑÄU_ßðAçޝþð[T˜ßëXŒÏ+j„÷Jr¤×K&ý‚óx‘‰?ý<—pj¹xrYåþï +’¡FÚÖ ÚuF5Œ¯1ªx»n]!üýÛL03c‚…y8Z‘áø,œvïcApÖÝBÿéá^€G£äubϜ‚É>'>±ýŽäùûsÖõCa€Ëûâ@Ci4kP z#Tù=”‘Ösaó¦Tؽ•–;‰`»ÎæÁàfáVgÀÇ ¶§ ôˆ;`ÜëxˆN®@vvø£G!ÑÅ R\!í˜pŽÛÿ„¸J®C¡Êï¢Py¿¡Œ8°ñOtغ.̾Š„½ß„€¥©?Øm?.»Nƒûî“à¹÷8øš»BÐþ£pî€Dt¼¥=~±ƒ8+[ Zú!H³±Žðÿ[Cëk#`ïX ––«0¼- -Ø Ò"<€A +|G§F¼¢1£—©<êSJ^ÊR¬0ý!Y’±@*çÝ'VeÏ.åÜÃÕçÎaù³‘Í³× +f»3áý‚éðaÁíÈÛCØÏ÷Ã6bÈ@ ÄÀF LÄÀr†Œp`E½eR°+)©1Ïhœ¤ÇÔÆ"¥0ãAlqæ<¹ŒT•;K¼˜?C¨LãESØáT¤Z8q]41(ÅÞ ân oào‰>dl2.bà"† ÄÀ>c ¼@gàaЫ\Bðï¬XÜK&=îהŒä%?}*àÎÇ_àÏŖæ͐¥‚iÒÅ¢IbhßX<»"¾‹Õ õJF±ƒ’Aü ¸—0(é&~>à ÞöµÀC ×ïëe ÙÎÀC¯fáƒßpcð/Ø´ø§LVÊbJû-?k.A”7_"˜Š©NDˊǣê%c„Æ’1üÕÒ;¸Ž²;¸þ²AÂͲ^bYgT™†ôù€‹2Cbà!†,OKÈ=ë yçЫ¹Øà7ÙÑøçÜDÊvZêC&3OÏãÏ&L%H„qâ1²¬ä©®|4JYq›ÐZy›Ð-Õû¤½¤>i'’:ºOÚJþ|ÀCÞ> 1d#†LЃ¶Ÿ3‚Ñ«ùáÁor‰„çٔ„ÇÜTæ›Ã›cääM'M$ŠÅc”òÒÑؚŠr]Õ0IU=u­fˆØ#ëî©é ÷È®ÅôÈZTÿ!¼Î¢š<Ð0ŽãŒZO¶sj­Óžq©kuÜQj-Š‚¸€"eA‚‚€` @XB$d%!@VI ûö%$lj@A¨˜A‹ VªÖGíè;ߙéuzñ¿ÿݼç‹Ù¦$ˆDbR«žf©äÖw9Wi­ÁQ^c²UT›-U3…f5URmÆJ*¢÷0P 5p¶Ì‡ÆK@¾ý Þ± »üCö?ï +ê ;61|âøµþ„Œ®î3$½-ƒ!ÓášxÊUF1‰xöÜ&µó‚Àà(â‘b¦ÙJfX,¥t«©´Úf(«FôނÚOg5p}çƒÈo1(¶­­ßf°îØùºÓÏãþý÷|Sv/¹%½³V}Æ)Ö$;͚ÓF».Meם“ÛuçEmvC‡'èh÷°QCÝ¢Yаésh]÷×,šî^½trxÝ77nû®í›úÎß9µ7Lwÿ@¢ìî‘,ÞDdu,BºžÆÌ ²Ü%â³kä§{êÉ=ê–Äîe’Õ¥:­u©S•.uºÜ¥Êt*½ôß ÉÚ¿BÛ·ó³/ûÛÔÀ’7&V,tOmÜäxº}Ÿöñîéà o*ä<í^DAñxbyލôì0“>P,8ÓOkĸ¹¢D·Tœà6ˆã.÷HO:{å‰æ9FÛ#OV{x¨AˆšW~Æ%Ÿ=½´à3Ï­/?uÿ²l©ýåúmšWۂ%/¾æ=J¦=:’U|?šHœÀ”deP2<øê”ëELÌ…“pY?ØÀhœ´ñ¸1û…±} ñÖ¾Foà/>дp¨Ïyãœ7gÔ3w¦{jþ<äÕÒUíïÖm—¼ÛvûÎ?š6œTòäXq*6;‰ÉϸAJ¹•S†+¤$Œ–Óâ<ôê˜uôè #j¤½6rÄÁˆ`D 3£ÜÃ,op®HÎÓçéûøOî±¹³m¯¾\ †ekÄ°~'üÐ ¢äÍá“Ä‘g²ŸÄg¤=Ä`O?H'œšÄOÞ½P{‡\3A+‰ú‰EŽ¸%,ûa\^~l\ƒf/¿ZvllÌk úØÚæÍéœãsipŽíÞÜ9*XðU,_ƍ۩°#°‚Ž߇EcßDǧMÇ'%¿HNIxšž÷+ö\Ì£¼¬¨‡$lÄ/¸ptl…ýÌ%ý¹17ô~K^È} 1dÒN<d8⇃ȀXˆ ‰<&(G¾‡dl±Â1À?’È ʨÀ÷¹1òù¿3?ðÎë÷Ö÷ÝÛ3vë¼à€jjqBÙn8 J¦–:j`ÙG'`Ý21|»š ;7Ð`ß&øo‹ƒPÏhß1ÞG a}C )ȁeðž¿dD#O«/¨‚ö6ØŠƒ½Áâ ÖP{]¸äˆªéF¡ Ã(”þ䠀åKù°öc¸.#»Kq¤ÀgK±°æ£hpuþÜ?ŀ׊@Ø¿òtACèê}¶Æ"×îc_zAÂW;°Þ(v@ò×ہõ;ð\·B†ÛPnÜ ¹ß :»w…#°×-ÖöyÀ˜a®~ÌÒ ¾À¦C'’Øz6þ UC™§Ñ_‘ŒŒ¹Ä +æ B û9þtú ®‘;“ÐÄ{–p™?ß*˜ŽëNÅÞNÄߎ&Œ nã +nÙéÿÇðåàlw–Ÿ pŽ¸?Æ8_àQC€Í< +LqÜ;FVâkú)ê+ª>eŽRƜ%Y8ωÕÜg„zþ4¾Q0…kMa?M¸–ñ4¾7ãqüŒ1콌!Ü}ñ ÂXÆu;1pC:b`û­Þ!7Ey‚‹!%x©‘Ø„·Liž¡¦¿¤¤ÍRKØ33ošT-˜"֋ž2žà›$“¸+ÒIl›l2¡_þ;$»‹¿'»I•õ$ŽÊ»‰‹ü厐Ž¸ˆƒ„7Fz‚, „Œ¨\ö GNþ-M•ò"Eǚ¡¸ÓT“`ŠR%~Bª“L&6È.dNà¯(&pÊGØå~H98¢ø…8¬l' +Ûì‚åÀ]ë¼mÎÀE ’P7ȌðE2‰&G½rp¿ó¤I/Ù9©³iγ”"ÁSz¹x2É*}L®Ë|DjPŽ'^81NhÎ~ˆïʾ¿•}‹8”ÝKÊé ßÉi¡ÜÉi¶1ÿ»U vƒ¬pÈ9Ž†lÔè ÿZ$¢ÎñN0gØy¼©4½x2¥L6A«TŒ'Õf=$7ä< þ¨KlÉ#ôåÞ&æö’sÛ)ƒê' ª/S՗ì¢Ï@°Æ „ˆAì» +N¹‚*ÌÔ1hÈÅb ‡½ dàç¥|Ú Q&ëO%xÂΗL¤–(Ɠ+²ÐjU÷) êQÒÅS÷ˆ×4w‰75}”M{Ҁ¶™6 ½DÐ6%hÏ'h ĈAˆDˆAºœ pÍá ‹òm|(œ"F-œ¤ãç•lú¬Tže '¹Zù8«8kŒaVÒm§F’µÃäËùwIÝýI7 +Úiýú«ô~ýÅä~ý¹”~}ãFÁY;AÆ2ýÍ ÄîΠðq¼ƒß@Á¡íP±ôÇB ù^“„›W¥Ñf•ΔT!žªÒ sF™¦¼‘›î.õýJsѯ”¾âz¯áJr¯á£×ИÚk8“ÖW\Çì+ªe^_4 1b †,oÐøŠB·!Ì ‘APwô}A"öµ†NUqØSJ©xBrR9ÆÏÏaµCŒšÂÛ´s%ƒIme]ôž²+ŒnãùÔnãYf·±žÕSVÃî)µ²)©äô ¤ˆ!cµHÃɽ_€Þo”ºCÆŒáP%Øøß ÉI/´ ֔J z¤P*ï‹5êaniÁíԚ’›ô¦ò>Z§ù*£Ó|ŽÙa9Ãê°Ø8fkz—ÉÂí.7q{Êʹ=¥‹²O@‚dˆA½û (F¯£ÿ0ïËa°DY0ÅÿÍH ÍÓR'uÁ˜Jª¸£P©¯‹ + ;Ó-ÆÖ´³WS›­çXmÖzN›µŠÛfµðÚ+Êù–2~§©DÐ]ntëƒ1ȃÆk%”ú~f¿o¡2À ª0~PŽy]ý܊Å?¶é÷K™é· +ÄòՉ¼ÖLMÑeQ©©‰k«jä\´Õr¶Uð[kÊתK…mVƒ¨½²HÔaыºLzqWùb1ÈCæÖO@·ës0ú¬ƒ +ô&¨ö÷„Úß·uaÁsõQáOëããԑÉÿ©Leõ”ðå-ZyÞÅUqƒ¼ÐR+®¬± +ÿYg¶Ô•ˆ[j‹2Zkô’kUù’6«NÒQ¡•tšµ’.ÓbA&b#åVgÐïüL{×BÕþPë·ÎzÏ7òöÃÑCÎÅF7’ð}µÉÌV3Gv±HœwV“e¨ÎÑU”+ÊmŲœ.5ŸÖÉ[ê4òŸm§ä­Õyò6kž¼½R-ï4Ûë†UNµÅŠ#rH½¹äŽñü€¶ñ|jÓx>­A2࣠9Û1PÞRíÊë¦îoÆ<œÝ‚x­.ßñNWóÖ@øÆƲè5΅ÿʃ˜ü‘vz!0$lŜŠ œKHð›ÉH"N¥â_Ô¤y=ïH÷zñgþá—04™Aìy’éÛñŸ,¿›’ÁEyŠÐÝÙ¬,õ´G} ‹ô¿Þ"}ó³ºbãg}ÊOX£Âe«¬eœKò²'!v™D _¦0YïÙÇ©o£"ȋñÑąôÓø¿sã¼^–Ÿõ˜kJ86׍zšà99“àõ`æ¼÷Ðt2~@2ȓC ByvK¹ß¿靐EÚ?)ÈÔ¯ìÞ&XÕ׺¼Š5Î\µµL^sv:³æå±F"±¾ÐþeùŠd?œ Æ¿K õ\⇻¿)Št{]uÂe±5Úyñn4nq2Úuîe´ûäüI÷Ç 1’@á&dº ƒŒt®Gº‡e¶ÉRµðÓÆRÐ؞Z`n˜væ±àbžÎ, ºS!OþÁ"ú¬†“½¿Ÿ +ðøšHuû rùœKÇ}*e:.×°Ž~¼Ávøx—cÿñOÎÑ¥Žãë$Z"ÈØoäöi¤eLMoºʲ—@[™ F{áˆ^ ؙ„ΜîÖð±÷Š˜.žzìD{¸@œ—ú…,‚ýËDÛµr’ÍZ¯õê ?«Õ²ÕÊ8Ùrå™DÍÒ݁A® bÊǤðËfL6¨lLÅ0V;fšÁ`¥Kƒ£†dp3%ë d 7 ýê l+G·q@Ÿ#[8ko ©G-ïx +œ, =‚j]Ìຠî¸b¡O¢žrí‚TŒ!HÞ4‚d€¼T2¨­-¹pÐSb‚±j˜©û€¦'àtÜÀC>Àÿ ZÇØÂMŽÀISsˆ?„…”Ç k +—ÍL ÔÜDFÐrÄÚ$jí@ç#Hî$‚¤½C´!×±AU&46Aw«'˜(¹‚ÅvG°UµÜNkpßõ+àÕÍÁo5SÓB´Œ!JÛb÷„D}àîӃœýºP¤»*ôöC•D•}èüqI™E3€ a°QŠòÚá*ëq°GÆt7Zƒñ¦#`&gV[ÃVpV0wEÀÿ¤¾Jz@Ù¦ å}²}/DîІØš¨¢.£Ý£¶r%‚`U 0µ¤j(6 +ÀpUa/S Í1f´-ÐÏá€ÆuÊ%oð/&¹Ü|Eþ@j ü ¶R×|Úi«„ÛA«„ú +~ŒñÍû9ã_ïyÆü"ã á-cžøŽ>CzϐBT0ÀBh2@EØÎjp¿BŒ „eœ(;`žuzºP/€Rè þeþ@®¢¬ùÖSWI-A+ÄvúwŸÛÌï>¬o„¬/øìeü<{Ég‘½@|˚õ]b=ó{ǖŽ£ lMi2Ø4kÁí„p/ˆð7‚0¦„DØ'Θ©^Ä'µ€ ”Rʚ¿¶B®§÷ka~ómg}#Ýæ|%ñù#ø3a&ä½Ïüÿè®Ï°&ï5Žãñˆ==-œ:+ZÇQÔ£uTD+Ôʅ¨uáBf!„ì„ ²HŒ,’'$!ÈÒ ("e¨«(U(‚L©x@eˆ¢(λO}Ÿß÷ŸÏsý7ùiÈ ©/l˜Ô>B¶G/`‡¡ŸXŒ/Ш[ÌÛ DÙˆÕ„.3ò#6'ú=¦0æ]Ä ÂÛð3ĉ°jқÐ:òëk”ñÃ÷¨cÁiÃ!iÿ{J펢¶FӚ0#Nê¬I@Zè +øï݀èçñžÀÝ뼐µÀö…xr Ð9{€"=qéáŸðHÔ{\vÌ[laSBzYF¯¢½ +»Hz1ÒÊ|ÒÇ`öD>eØ1ƒÌ¦¨¡øëXç 5Q5P7y7À„»½@¼„?Hˆ „øø½@O< ””ÈqzÜ»Ø,Â\>é5ÖF}…)£¿Œ¬bŽ…_d½»Á íä< Äy€`Û£žpnaŸp¯E?áÖãœtôݦ,p…8ÔÀÜèÿ9 Ù¹’¬i„$⷏,~È'º<ê=E‹Ÿˆ3“Æcóh/qǘcØÓ¬ç˜*Îh䥄g·xƒ=ü?1xöè~þM\¿ !¦_ð;¾_ð[¬ó€¨¨´Ò 8> ùyÈ·/å¾5  õYt ˆÉAÀc‡|bI°oéé„×#åe\ó¾˜=Š;•0‚­ cê…Ñ͢G˜ÞÄV\_â͘>ñ•Ø‡’:ÂCɹ¸>q%Ñy?Ãhó]ŒøÞî óûÒƒzÏjPo‚4L È A f„~ä ¢'ØJâ8=ƒþ‚leÆò†ñ§„CÑ5â§Q ÒÇQíIí¸^éM|or=áìñ¬Šô@v–Ü›|šÜ›ä,`¡:j ®pƒÄÜ!uÓlÐ,ý®ïAp#èÂ@³䐏bvô/‰øŠ¥f<§™¹#¤|á`l©ä î\ò¶QރëR܎íV^ŽëN9OêJ© t¥”Q»•'i= +­Gî,`Ow&ºã˜ËÝ iÍ× Þ8 ÿ…`Ú¹Ìû} 3Ô Ñ»ÞkˆÁãJ&ö¹DDâ§0³ ¼Gôñ’MÖI¨T:ð ©wc;Óê‰éçÈíªrj»ª”Þ‘nct¦3:S ˜])ÎúlˆG ìen GïÞ Ÿ™`Þ2²w,‡ì o°o~g‰üå•1öàˆ–ŠAg[ÜÃ$³K åÛÙi½PyƒR¦úƒT«©'5kk¨ÝºCWÂlÓÇ·iòYíêÅäjl|©¬(9U˜¯Ñ±r³´œ“frÎ% 5»ÙÄ0Ý3²„£oÕ'è:ž¦Mã,þÇs&ö[W8ŠnºR¯)UK¦]^6õaÓ·Ö– Ó›—Ö6ýX~%dgñEl¨õ|AWIg)ÊE§¤ +Ö •šb³è ÇKŒ1¶‹F|q B̳(ÖV=ÝìÐ1ŒmÚxC»ÚYˆÄè†0 ¡;â̂Écµó&÷ßüε³k±ëíŽõß\¶,®º³Ççčàí¹ ˜`ärlLj•žxžÃcW‹¥”Ê´|…Yuö¸6¢¢NQîÐaK:|a›6.÷¾†”Ý®¦X:ҝbMŸfôí*™7éCõÌIC×<\:»ÜÿÑôç’ÉW{}ÜÏwù/<íص®àÞÁSSø~ՍŒô™øÝuÕä•ÇqüƒuDPÊQTŒ(»¤böåIžl$$,DÀ*0Š:ŒZ;NµZµŽ:n•±ÇµZP*®ã¸á2í)¸UdKˆŠüæ9}m^|^ßïýŸûâþK.å7V¬Èú©z•¡aëZúÂÁõª†újêBK5}ª¹F_Û\c<Ô\“¹¯¥ÚòmËzG°Ši¨af±Ó›àØÒÜ0†Ü»=†Ü|îÅj|4ú쳨ñǞ$MýW?l{‹œ»ñ ê¡I]voqfÁÝ"köíò¢Œ[Õ¥ô­m+•·UÈnŸ¯”ÞzZ©h|¼š:Û^EŸh[£­m[£?ÔQÈè¡ITÁ”"Åbžŋx¨¦ Fœ„­R.öÉp\‡ËTÜÈ*þm?•Ôÿ;•Ò1¤t¤e!Wr¦Î‰¹îD¾ýyùjx,k#ü]×!Ô³Q>ňXŒ…Á&ðgk ™§€*ŠY>cùȎc–„d”%rQ•‡)ó±#5Ò¢q’…+éQhåG¢Ÿ3bwèF-!?œ&äH#!»î²¹EjàÍZÿQ¥q_‚°qYˆ™¤×_…ÔiR‚ÏHš #‡‹Ü°8΋Ŋˆh¬ŒÀÑóðMÌ\Œ ÃÉsp1nÄqÐïÈ9fGβó!›~%dÍ 3Y /ÖRLtÎF€kÓ¡Æ\ObÆ ÀõICªo2„“ ÷Ÿ: Æ©‘ÌÂ:K§‡ayUÁ¡Ø4c&¶Ïœý³Bp,4?ÎÆ Ž#GÏ2ç_%dãBþü”R¸+>aáí¤†³.|þ sÜ퇏¤xF€ï=’qs@Ÿ ݄Y0ÿ)։AX戊ISQí€-~Ÿb÷äOqpŠ?Žû;²û"sÿ;„T¶R4HH6Ñ•%ƒ‹Ït¤0 ‹`—Hp\ç"b4óGÏ—‚vøn»M…Ò-Ú1þÈ3Vw_,ûÄ•Qí1_Ž€žŽ@?Å ê`gÈÂ]!ŽgCêØzzt–Ph +á.…r=3þ¿'CúM*${yæCô½ÂÓBêEXtY þm ø­R¤w2¤ïù6©MðVÚ/z/钼—vH†?ꏚi3 ²lhS¼`ù¨DFf(ôЬ\õ_¡Üœùv¤ÿäCrHñ1D§%Ö3Oõ² ‚;r,j—ƒß¥ø°h@aدEvy·äü7é;ÅSÙÇÁ0Ù ¦A1ÏÊùlzÁ,ðƒ™ +„É8ÆüHè—ÇA³6 ªM©PnK‡|²ƒbHÿ-ä” âz9DWÞUB𘂠›z' ~Ù¨©]ùBf§ÚåoU‡ ¦Aä %Ó@Ç°‘™äl¾rÈ2p`^cI<ô«B³ÕW(w‹¡8 …¬Vé)%$uÄWT5©!zJ _Ñ6ñÝ+¤_(lt»rHó e×ý&ó¦fÐ|U7h¾ì2}`t†–ã‚ì06 +c½P’ì‹2A J•¢±$7‹?OCÖj!Lä0lSA»Gú°~DuÜøAYgV\7¿•?²¼Q¼´tR½–6º?«Iû:û?úœK†œ 9õÀÌ4d0 ³\`å°Qå‰rî$T¦OC…l6Vh£ñ¹%o eÏÙÄLp»ñqŸ¥__›Ó«ýÁÚ£¹’×I7ç?ÑþŸíúŒkòÚã~‚"Ô-­ÖÚj¹W‹u”ºDd‰ !’Iž 2 hˆìÈ‚•QP­(TëhI Š Ç­{{îóâ¾Ì‹ïçyy~ÏÿyÎùÿÏ$éAø¥'b*¡3êµ7EmŠžJ¨ÇO%\ÂOŚx4Cšðí ¢ b'iݑ/éí¸Œfü F}ÌKF-á%½:v2±2v’fŒAçi:OÇ¡s=½_Hœì`úž0ãÈZ¨:±*¶J?³÷,Úm:™ìý‚Ë 20%áà Êè§qùqC„²„hmâݨ6foT?«'jœÝ†Ÿà4Æ9uÄ NUÜ»<ÞÄ*‰ÁА^š _b`4šâ0ò6YAù÷¶PõÓ2˜í²æß4—ã·í]fˆó”2Òe\w|DÌ xŒÃ˜Š˜~j&¹‡T˜x‹XÍú…p%©=æ6òsŒŽ×@4ðjâ ¼r’ѐǓ +)㜠[`b™cí1ï` ië,¡p£<»Õf;/êÃ_ý·à˜Ã +|§ÔA;ÇsÃ÷ëT!5஘‹íáI 7XçÚó˜- eI$-¿>¾CX?˜\Ij(c‚ªžŸO3 ¹4#7›6ÎÉNœ0 ÿŸ±ÆŠÑZdü{Ìß½\ù±ÄmÍl©×·¦ÿm#Å¡ÎC¹Ñîýä€.9 Û!ƶðÔ˜LV£©¢]–Q[Åj¿¤6,ÎKeÓDŽ™ =ÿ<Àd0ŒÜ Æx’9hËÇ@ZöjK˜²Þf¡{£p—Ý?¥û–½«pùj²ú˜ƒ¾Æw˓òS?Þ+ˆ<ڕçß¡¤c›S‘X­8…Z-P²K¹j~!»B”Ïl’æ0{R2Y:©Š=,V²G“ÏrÆé=/mDP\s`z¿Š[k “ÐsBŽfÉýÎjv,œ«t^<{ñÀŠ ­Ûj]½×7ªwÿZ‚uë¼@ð¿šE מãÄVÊET$£æ²x¥b%RŸ’ν)S ¦È$¥"£B¢ç˸DÆ5ŕñhÚ·xèþHGû¸z³,߾ோ;í^5ìY¢ovYñ¸ÉcSÿ%ÿ]7+δjð~õjrXU“P¬Pó©l•,S.)’ÈDu2qrgªHô\&餢äa±H8š,Œ DOÄ7"æ@š‚Ö@¸Ò*Ñ,…ßXþSµÕúÖi©y—­®}ï’-îz.ûíh¯ um¬ÀùÖǟѨé1yÙH‚J%e+Îfð%Š b~jŒ›Ú–Ê‘ÿ!K’餈tXŒHF“yâ1_dàñ“ ˆ9´iè9%FŸçWa`ÉF‹¹ÚÍ󦛭ôíN֏oü¸¸¿ÝÍáÆUß®6œ>\w1Ò§¬"6T­¡âUŠ"OÄeå!ª<3£2%QÙ*£f<”%žÕIi#b–|TȖ 8)GjD́dtm†½”-ÇÀôÿ,_‡ù«ÞÁÂtmƒ…®k³Åƒ®]_t_w]×ÖæíÔÐ|ê`eöDAmLpf—VÆ"‰Š…tn‚KÏÏRòÊ%q¹Í)±y¿I㲇%dՈˆznLHK×óé +B—¹æ@ +º6¥X†êåÖ¬ÂÌ6Ûcô7W‚Gýë0}wvØ]ï:¼¦ùº×֋íû5-až9ÑAéZR„¸–NäVñ¨ô +›TšÉ#””$ãJšÄ‘%ý"\ÑhrLþ˜˜­çǟ7ðÈJ#—rn<ɘ€®Ï[ŠÊ%/sÚ¥àY‡-xÔg ~»ÿ5æö=§…?÷X¥íñt,»éÿS~g¨»òZ”Ÿ´…x¹BÃÓ/sI$­4IŎ¨Õ gj/óCêúø¡5z¶ÔÀ‹*4 ÑùF.!gœCȚ0 ÒÐ÷-ÂÀ¬Eàm…-xÚl®Û€»÷l@÷З }pëüƁ}öU÷Ü7ôžÜ­ê>í"»áÍ¿{ŠÑIŒÚ81øk¶5ƒÒRÌji`¶ö²šMìàKìÐÊ vX©‰QdbF¼0 ÒÑ ©và³Ú<­µ÷[æƒ_oÍ7l@ûóå é™£UÍçeE¿»mÈzè½]~?h¿àn¸³/æ$ù%8¦‡Åv‹£Cº2ˆ]Å$¿®²ow/Åçö4åäµWԀÆW´ K“´ÓÕ¯h!æAÎbô;,Ã¥` Á +t·YŽkÐ2´4ŒÙcªÇ­‹G—f»®Mûó„cò³Àݬ?ÂQáÅ ‘}#ف!ƒâÀ‡á'Gz6⼆úpǧq^½o Þ7Þ}¯½Žó»ò:Îÿò¬Y0y!˜Î`°º¯X‚¶NKÐØg jŸ,e¦ULÿ²9or^!Ÿp]/?îÈ4úí$BöâõQ.X=É㴞å0&òõÕ+¼ô…Ažm°‡±;ØÝð2Ø]÷>ÄãÁ‡0ÏÞØã·ÞGzýbLà©€;Z hkµ ·,AÕ}kPd´¹³k-•³[me³{Vòg]Ö1f=·ÄϜtÂÍØ{j†xÈ&ÑÕ{–ïî9›æéþ:ÏëÈëjïÃoÚ|½}î{ðõ׉ϾGtŸýÜ~ÿ;àèÀ߁æŒåp·€ŽF:0 ¼×¨YócÒ>:̓|üޖûÉy9íÓ¡¯‰ŸÜ7FÎy:¸-p.ìßÿÑ]gQMžyÀ? qµ +.,* ‹l!!!{ I „7Šk¬KGw©KUªŒ#-êX+:–uŽíA=zÎL[·ê8¸ ‚ +B|潚«ô|çwñ]=Ïû¿““ÿhi²l´*5{¬.]0ÖÀáºwp3ÜG²ØN RqU˜‚ç"֘[”>aæs¢bOn¡¨ï¾"ùç)ªùŠÚ{ƒ¢>»G£6bÚ¸Õ¢-GÔx}íHŸYÁœ|HC4ЄÊaX(AQ”åÑ<ÔÆf`u|¶$$c_R"Ž³âñmJn¦Æ¢/-H‹'Ç<ë> ÚñóaœÛÄ@TNš•“ý±qÊ ìòýGý¦ãë©Óq‰¸2͓ý$¿›äß¡(çŠ2»)*%`Ò8¦z¥ d±¥E!Ê; qÞó‘L›.}6DŒÈ3¡e|“Ï4Ø|üàòñEs262'aqˆhöê/È¢h²èÈf3 å2¡Ìñ…*Ϫ¢ (\¡ÖGAòi,Ä; <As +ø§R‘u– ÞÅtð:3À½ÆAæÝLd>Íç 1Êy™ïà +‘ùJ ®'ÿï J¦CšÊ€‚ÄFâ ­ÖKTaPÔ-‚´!’ÆDˆ›XK…à/lðÏd€ßÎAV'ɺÆï.ÜgÄ Ivg‘|ž›Þ[xýbd=“xM°ä‘4d'Ñ¡`1 IgB'öƒ^9Úòp¨—GCñI<¤Û’!ٟ +ñÑtˆNf@x&‚v.Yàwg!ë>Y½ð†·äƒß/ày„ÿ‘Bä ´¤ƒ‚t&xCÈ€. £À&EŒ†èí ‘[õÚD(¶¦@¶‡œ/8ÈnáBܖÑ>„B»E<ÿ’¤¾Càˆ!îρø™ ُäÜQx†Ü /(#hPÆy#o1&žŠ¤°èBPPCUòꓠù4 ʝÈò =ÎGÎ×BH¾#»3â눒Óö‘“ KG³ÝÒ×Rä9ßË é&'}HNõJ1&QÈÆO”nÕ=µ[}KûAݝ ÍÕ<Ï #4¤ƒ>Ò–(:ìqLT°}áùÃ¥ +A¹1ö’Å(ªIy †-|èv‹‘{8šTgP^R¹WÕï¿hÞʟkï4OÔïµw´£yÿÌÓý¨wë:ó?è.Ù)´á4˜Â½a#*¢}P›2Ëø3±LŒ}*‹ÃQ™Š’ºÌÖáhA£dÄÐ$§?¦ÒµjÞäžÏ}­íÌëÓÜÔõjžèz´oõ¿æºõïW £¦Ë¦QӅ‚Qã9³g0"7ŒËÊx£&ŠºäÉXśUÒ@|œŽe渱jGÊ°s)w°tèuñVé+Ëne¯ù°ö©±E×c8“ÿ8ÿ²á‘¾Ûx_ÿØø³~° Ëð®ðï¦aK»yØr®pØÒf.lµŽ˜=‘tГ|Ù{]Ċ:Ö&NÄ'œéؐ=ëÕ¡#«1ƒ+m¬WµU™Ï]õ¢žò²GöFÍýâ&ÝK³ñ_æ¯ +n´[nš®Z¯›ýd(î0ÙÎ[mmEC¶SÅCÅ-¶·Å_–¼³zÓl/çyÁA¾‹²o®"÷ñ‡øñؔî‡-ÂY#›óô‹z×Y’þ[ïäü¶|¹è×%ëå·+¶æÞpì2\+9TøcqKÑ?¬gK:-ßÛ;,·J/Y_8þZ4àhµ 8NØJ•¾±),9ä²y‚ÒÁL~#œd+È·±.”†Í±LlK2Úȟ9Ð( êý£váãÍ‹ïmp°o¯ª]_±JùSMƒîŠk{A‡s_Ñ%ÇQû{kÙ7%í㶮Š¶’žŠ“ö¾ŠfGŸópYùò×eMÎÇ>ç»'( »¦•d»È¾WOz4Ì£a[4;Y‡öp§½Ø›=ëñnÕü»†˜[›mì® .ѕÕ+”+×ëۗn)ü¦z§ítåAG«³¥âdÙ9׉²+ÕÍe¿Uá|YõyÅ+׾ʾŠÝ®~ç.×ë²®‡'0“ÓFfQCö½5¤Ï&2“‘Þï÷%Žï?1åÉAáŒd·÷袻¶[Ó~ØìýmC­êüšÕù§?Þh9µ|{ɉÚýåǪ›]‡]mK¸:jš\¿Ôî­ê]²³úEõŸ–¼tm_ÒW±íl—y8ÕyƟ³8–¥H%C¥E¡S‰²f_˖¥‡ã88‹­9v!Œ5d¡l!‘Ò´ÕôÖeFišìK4ÓLóÌï÷ýóüñùû¾¯ûþ^ßë¹ÃXYá‹A¢@ƒÐæ»3A…„™êÄîü‚²Z¾—6]M—ú©ÖDî»j+µ§¥.;øìÍfšw¥‡9´&G»7Æ%úÖƞgTF².ò«8¸MÜ<îm^÷?›7ÅÍäO‡gðg9éü9v:>$·, +ô%tƒ”IIl¾bó樒þ¾¨I^¬Ö¥NÔï{å ô‹:‹+vô—xÑo˜·f‡:4¤ ÜkR„¾e iŒ"anH^lYXVt/#ê¦à\Ԉ 5ú=/%z*"9z&,9j649j>$)j%Š=°Ö“0æ¿{‹È"_…ô©Bƒ4{Y›üS“.u´EÍp£™ê@­Ãöî +Ãk%§ÍóYö5_qO–fÄúžKf|•”’‘Pžw™— ¼.ˆF +ã&ùBáWøåLxÜÙYN\ì;.v% +ô#<°ÿ¿{Ï+­‡•UÒäÕͤ·íÛHß´ï“zÔrL¥¯ÁNûú¥“M~ÇjK‚ìÊ +ÂOæDûdg%2Ò22YIçŠÂ„)—xÑÉí‚È䇑‚” ~dÒ7*a:<:~–7ǎ.°DþDaDñr€Ùò€¥ò°xY~nS‚Ñ›j¤á®½í&Ê·šmµZÜö_¾äs´¢2ÐæÂÅP×ì"wZ~ܙ„œôàØìŽ ³Š‘Ñ*àd 8çᇧOq#RgÂy)³~Ò[¸Àž&ý„ÕÞø `À㞣A  OžË_Bý¨'=¸Áöà®q/n&¸Êyàd,@؆%`mYŠ ºå`îY…€ƒn`u£Ûþg=áw¿»4Ð{½@ð‚ï¸7|I:¼H¾á5 ï?BHÃI ‚t`{RÁñ¥"‚n>Ó|¶¢bf/s/m!Âó?Û삐OV"x·‚¬F`‡'˜ÿ¤!à,ɹê Æ0z}áßOX ҂AÁg,ô7¡ð{Ɇ_g"D.³ǃ +žQÞvˆñ·Glˆ„üYˆMtBtÊ"ðsÁ+]ð*W„5¬Fh+ !‡½À:æÖi__¤#è;?=öGÐ+b„ÀŸ¬¡ðà à¿á`>ã‚ù˜7ø¤ÃҁO=íà3â@$ñfAœà„õb³–"ºh%ø[WƒWG·Ùámtp:ýÀéf€}6aיû™è DØ @+Ìþ5zÎëq$X?ñr'j"D‘­Éu§"֕ +±›¤žS g8@> J¡dòÅHJ[Q¾+âÊ<³Í‚:ø­ D¶3q,¼ÓÁà]bûkœû,d„;2È{Çêç!´—ö8?Dƒs3œë“€ÀÙüU¶HXA…ŒP»ÛAKŸ +}Ø,èNÐ&-†*ÅòunH2Ñ ²Ð_Çx+l´Æ´Ew„ŒºÃ†ç؃Q7ÙýQ9/¯9}‚ñð§pïŀw3Wâq>ç&Ò!†ü?“È{¨ÉÖÔ¯²ÃZ{d±>@V¤#֊A¯rAr†»UUà=,7ûJ¶$6°^‹ZÂ^%´s^Ä[Ó÷%÷¹ð*·7î!ïqÜ+ÞC¡•;Q× 8/†àËDN&AÐ-™±d_Ɠ|ҶЙä-֑{äÎ@w. …ÖlÙ²Át½[¿ÞàýR[Âøª"¸WQöT¶;ü±¤ûKRgÄñIþO¢‹‚»¢{‚[âÑ7Åc±—!ì‘ î„qÇe•#¶C1„$WLhÙb-‘»Œ +#¹G‘ÿ4³g æ_4®¿egy?Y»ñH_κŸ¼s[½+▲%êßòö˜²ãÂkҞø+’o.J{ÎI‡E§eW@Ü©‚è°¢ƒj$´©ÿ>đ|)É֑‘³Àä6¦UT”ùN-gÍì7G8õ•Æ/yZ¤\ùИN»³n}À÷™%¡7Ò,Ü«ºíQ—´ÿˆ=¯ÙVÝ!þJy2é´ò²ä„òɪ7Ò£ê·ÒvÍ[Éí»¤V-÷¥@¼gˆ_Bî°Àidg¬'=Š—ØÀ¼Üö­…6åM%sz_eøœ_-Ñ ~6K]n™t^7 +r˜— …ìó9戞ŒªèÓé;âOè÷Š?O9$éÒ—w&­8’|[Ù®ý]ٖ2¦hÑ[åͩ㲦ԷÒÆ´wI “ø³ƒšdg’Q@zlZhËR›ájwêËZ¿©OkCf>¨áÿýVE¢Ëu³†v¡$ƒÙ³!}*¯$ò‹\KlWv­¨#£Ir8}¿ü`Z§jêMk귚½©}šÝé#ꆵ£ªVE}Ƹ|{Æ[)!yD‹mìHî@6oñ<l&}ª–Ø Ô­°ým——Ý£Fæ´ëyNßÔ$,»P¡¤}UžÆì.Íå+*âw˜…‡ÖW‰ädïS6gÖ4ežÐ6d\Kٙ٫­ËN®ÍQ×dªªs¬ŠªœqYUöDH$¿[G² dë”Î¥ Â‘2V»€òr×G6Oš]mï5Ón6†;^ª.í©‘{vWèº6g³?Ûh䷙6 +[ ++›Ûey»U; Ÿjks?×Õ¬»¨¯Î}¢ûØ0”RiN®0Œª-†1åVƒU¾Õ0.{$ómJÞ ŸlÞ²ÙTÍ¡ îp¤<ß½€ò°ÕÙæV«ÏÔ«{ØóÎ5Æ8Ÿ¬—xtÕhWf°lYÏßWf6•nIÜY\#¯-lTWìO©0vé·äZn|”Z^0¨3 iÍÆM™qTU–?¦(Ë·Êßyûµ³ÿ¿{)ØL|2‹Òß8›òkËÊ݃‹(7xÙ_h {¦Yðáñ†ÄÕGêՌ¶šô°½çF6Z +…õåæĚ²*yeéNõfSkʦâÎԒâž4Sñý´bÓ:SñÖT4¢1ŽªLƦ Ö   ßa&É.&»×òå÷ú”‡{¦Sî·Í |ß>ŸråÇ”³m¬ÙÝ­ü%Í"·ƒJ¿};ô¡µÙuÕÆØêʍb‹¥BfÞ\¯.1ïM),û,Õ¸éLZ^ُĀ>ӐÖX:¬)(U˜Æ”LVÅû &ßBٜ¥3(CUÓÈ沧Üi™F¹uh:å›'Ê¿Ž¸Ûjú[W[Ä¢öÖx×Ö=rzSS +«nW&·º./fk­I´iÛViqU­ÊXÙ¬5XÚõ9–S©Y–ïˆ×ºœ-CÚuåÃyTeØ4¦\¿ÑªøÛuÕä™ÅüæMBXEA«„aIXÖE@0€qWëz”ŽZ´D¥ +RŠEAPAܵEܗ#n=3Óv +cÇNUԞ‹,òŸg¦g¾À|øó~zþ÷yî}?ÜѐÃf¡À”Í‚1=ÛŧoéA­ˆî4ÓµV+ºØâÁok2?ÖmW{$QRYkð+;”£.þb‘î“Š‚¸Â}ëõë˶¤­ÞSœ±¢´"{qIÝüü’Óyy%÷˜×óówöç,Úñ>{IÑ@ÖÒmƒ˶\6‡«Eô~Ÿ¾ÛÃу*!Ý®3¢®ãFt¹mu´M原T™Õµh'lšéöy}ªOqÝÜàOjó# «—Ǭ;¸&aÕ…)Ë*>K_X¾?+wÿ᜜}móæî»Íôådï}Ÿ=×@V^ñ`æ‚O‡2òw Í YÖóéÙ§D÷ñèN€®6èâ uœ1§Ö³.ÜÑ3þ&Õí“öŸŒsÞՒ"/jÊT6慮;ºT·ªnuÜÒÛfå×î˜=¯¦,=³úËÌôê“sÓªo2/³ Uƒ™åƒYeCs²w§ç”FÃRևÍDßï"º_IÔUǧ Mµ·óèø%Sª¿,æÕ\RU\µ,=ã°½CïQØ>ÇwÝ©yÁ'G,iY5-¯yc\vSѬŒc{“SkR“N’oô / ú£Ã†”/?R«>¤*FÒÒËGRGC€žo#zTFt£šèb=ÚØî×t–G_]Ò¡k¶TÞ%”^ 1ßþM´má•D—µ—Òd+/dû/>¿08÷ìÊð¹g6èÒ;¶ÅÌ>½'^º:1¡½Uúº>¾ý…>î’f6#9ñ(’õ‡‘œTƒ¤Ñ°Žè‡Dw]ùŠ¨½‰èÛ½j/qTyÈÊîM¤’{î\Ñ]¥Éæۑ×ފ³_q3ÅmÑõ,Ùük |³ºV®®S§\Ý1«s·6¾³zڌÎÖé1×™Ó£¯ vÚyÄÅ´#>¶3ãšÇúåÏD÷]­!êh`÷?ÁòÏUtr´ë®ˆŠžšÓ–§Ž¼O}„«Ÿ„Ž[þ8Æ:ÿ‘Þ>çá—Œ‡¹©Ý˼’º×ú&<تŒ}°;húƒêèîV¶û†F×ýByÿCxø]DFvAu:íyDöÃgD7Ùœ«#jnfù§‰Ê¯•ÜâӖ‡"ÚÐkNkzż•½rþ➠ãù=Z‹¬žkCOš]JOŽxVÏ×øžÜcz>–F÷”ȵ=U޽͊ðt2ÿT„þ8èòw(CþŠ@u7‚5÷2Úýω.Õµ4>Åò/í¼NôñŽÖü͈V¾´¤Å/y¹/eü¹¯TF†WfɯfŒOx•dחa3½/ÏN×·Â!²oƒcØëí.ê×û܂ßÔM |{F¢úõ‘Dùæ7‰ò$þ/!õÿò€Ÿà5Zç!¢“õDul+XvvÞ'úÓ_ˆ=7¢Üß-)«_Ì3ô{pÉý~‚„÷j£Z“èx³¨ÁÙáƒY4Cùƒ‡ +¬UC›lü‡wÚú~¨´óùÐdï5òµƒÏIJáA±lbY?ñhí¬GXœaùD›î|K”÷#Qæ;#JÅÒÎ7n:¼øZ(᪡3 +B¼H‰c?dšø`©ã¤Øl.A‰ÅTšàŠVK\ŸèŒ_¬œ0låü_õLj*ÙPü5Ë¿C´ò)Ñ<–?ûg¢D(¤ƒ5E@ÌSÝ „現j¾Q)fÜ1Kè +ƒÐóŒÄX.š‚"[Ûà ñ$´˜X£ËÄ +Ϙ÷ LG«b3Pr™hó-¢Oˆrzˆ’žż#ŠQ(L(ˆ½…?&ñ|X2¸ñ$ðä¹BÁ9AÅ9@ÃÙAË·A,ß +I|KdðÇc¡ÀkfØ.0E…ЍBcœŠÐÍ<£ôëÿM–ÿø|=»¿¶HÍòUŒÉ`JŒ'WöŽ˜Â›'ž «Å +RÞxó,À‡ÎQœ±[9B6³œÙÌ'”2ÕÌq¦c „°=/ÀŸƒJÉGp £ P'D@¢~™&P,6‡÷:Kȋ¬áYf󶐱ƒ´e +¤öð¸â[Ì1<~bÞ8Âc€Áÿˆ!eäìÛNʱ f5(ý8ûñ¡auhBPG /‚*Ýùðûh"['Á{÷dxWÚÁë°=¼š ocg_t„üšäÝNõ:CÖÇô3pf¹ÿá/F—a?¸öŒ„½/‚C8«#"P€ð0!Bgˆ I5CHîxXAU8Åvð/·‡_¾ Žð=áß³ÎP|ãÅ]6"ß3/Ü xnj0ì|ßÿr +€û;ÜßA2BY !Þ"¼8è¼ùˆö@"„nšÚd3DæL@ø²IÐl°EÈv{íuDP•3ë\ jv…ªÝ ÊKS¡¼áåæ¹Ê_™! Xæˆ +’Á@H †ç+5<Ÿ‡B6ÂÜ9„ÉX¾”CŒ'±ÞÄ +ÅÆ+ab2,1m‘ ´k¦ r‹ỜVîŠÐš©ÐÔK iõ€ú¬êNæ¾'Ô½ž#êמCêÏ~ <WCþVï…Á§7>ßE…pVCÔ¿É.ó ¦Ï4Ž¿áY¨EjE­Ö­( Š"Aäø%¿œœ ®„#@¸#rÈ A(Ð"HêM׫­X­³VG+VW—ÑZë]Ýgߝý/ûÇgæýïûÌó|gÞùà]Ðךß$žƒïi ¼VÀcØjDœ0•Ë!D³ +hzG¬[»ÚÖC€q nü@=âüžú­Ë_þ\ßøßr}As}F}íú„ +nsþàþ[xÜ +Ï«Aày9øÿ*Φ9â|ìºüÕfú…9D¸Y@„DÛB(Ï„ÑK€—´âßÕê÷Dñº·Ì*§×ŒFç—!.†ômz<âöŒvlóï´i÷'´k¹?~å1Kƒ­wƒÀëZl»Dïi&xŸbÁ6S À‘Œ•àaç [nb<ÄÅ$^ó@`1셢—¼ —®x!JsüC¿þ)Wï?2aÇ4;N°aÇ1vŒ“àk +ìZC狰o‰—R ï#ÑÉä– ÷³~—H·{/px*Ù½â_Ñ +LJ‘j§Ù°b×»¢ªÍ·û=oò:½~æöy_#¿ò™!§|ä\Üq™¼çwž|¾ó ÔÓ$|ÀQ>P‡@‚¿)ŒwÀÅÙØuâ°sÉW`ßÀ÷Qn2«ô¶ú#5hÁœ‚óéyÔò»R™ã/’ô×£5n3Qº-߇¼/†5ûžuûM üÏ +ÆN Îî:!¸x\ð$hBð6&ÚP(õ‡APo8ö„Ã.S€Ž3‹)mOÄEHÁód¬¦ü¥Ú`ö\íiùX½Óf6“iK¶ì'Eœã²dç Rµût¬vÛ阽¾'Äõ;'£Ú¾‰è :>|$l*äë°èÃáèƒáïý@ï‰zg„´‹!¸U 4S€µ ÷»V,ö …=vÅØû–S^jÖRæ +\Íg ·[ÝÔÛͨË.¦Ç¬=—"w9™”î9)ÓxOHKýŽÄU|%i¤ Åt… D0ûĬ^ñyÂ(žewE¿&:b€hÙ ÌF 0$@¯“@ˆ)ÀÁ=ˆÄ®%ÅΩÄs¨?Aï ÐïşS~+[ov«l‹åLqàÇòÉ¥gr"§2¥.GÓRÃIZÿYEࡄºc|;³+î»#v”l•œá6Knscÿ$â€S„A +¬j)0«¤@7¸øbœ-Ç®“çȳC¯ŠíÑc½ºS¹ŠòSåf‹‹zê‚3%쥓aŽã¹±.#ª¤->½J µ;¹,¨3©†Þ*o&e=d}â0¯6áߐp]PøŒW%n… 8år ôr`édÀ0ø¸»q¶ÂÊ½-ü=Ó-@÷«ìЍ}ËÐ÷†Mçªü>š*g./­.Œqî×È<ÙJŸÎ¬jkF­Q¹—Q—ÒÀ®I>À­L”'꒮ËO¥ÉÀ+I²Xì"¦) Ä]ŒµEú7ô!Ç=*™nïµFÿØgƒfÐßœÍOÖúÚNTÓF*ø«ûËÄÎ=ERώüŸæ\µ>»€fP陕µ}z;¯DÙ/Ô*'DÊË¡ùÊ9a~ð5iÀÕ(ƒakRe +„-D}/Í +=Ë·D·u–èzõ|œo.5-Bgš7˜ß¿Ýf´6xñ@ w•qoäÆ]œGSIÒö:m†u~­<¯”YšSÃѪ[xU¯0'k,Tu!T•õH¤R}¨²€§ÊRlu:¦@îB¢‚L tOKA7*,ЕÚy8>šn³G߶a6Þ²Íz¨1hQoge§!Ì©©Râ^[.÷®*Kóחäk‹UìM/+Ï(LÏ Uæ~šš÷P”š÷^ Ì^Z6éj`§«€0¢pöX WÙØù°wÎT™£‹ –hºu:yÀMt­5éÜ2¿¯-à“®&bEKƒh}]mŒ[UMÂ6]eŠ_Q…*P£+¤«K+ˆŒ’njQ·@¡ɵgCeÚû"yÑ;ÁžBüÛä©Ð;9S w!™‚æ!tCÐå}fhºÙì´@nj ÐèÁՔ£‡UO—ÿÂÖægõ­‚uUMbW]CüVmÂ7ϐ ªÎN«Ô±u¤¬¼“/Õ ãô§D±ú{ÂXý[~|pŠLÔ[V„)‹» Dè×B¼ƒ½w‚Nµ›£c=fh´Ï þœr°ßͲýßÇûô¥Õ]¼5ºŽgm[¬Gn˞íYéþʆܠ¤úRzB­ˆÝ×NÆùQ†üHÃ~TÍ®¸ +Ș +àHt@ĖːZ¢—Yý‚ïpـp±{  ÑC |i…/CC._úØÖ¦-Ö÷‘+µ½aN¹ÆÝn™Ý‰[S¤úÊ;²©ñmŴݭՌ¨–V"¬ù0GÔö)js23ñ²Ö½Ë^;B|–3$tÌoL>,u—õ'{ÅRùF÷j©+EÆæ^O?ƒì™drŒ7œî— N0¸­Àà7]X!¦@*Bw´]ªAèd BcÝ öãü‘ÿù_ݤªžt¤èŽ{Ì+<¶sAöÃ!ý(ÿsÅX亄#qΒѤÍQÿa»N£š:Ó8€?÷&l +‘°C ³DÂaI°)Te´Z=z¬Smµ:í±g\jíÇj­=Ž¶.ŶÐZ7w‹‚ÖÁ:V2Ö±. ”©VD¨ úŸ×±ý ·߹÷Óý?ïó>÷ÃóÕkÆÊ/—¦–7¼›áªÿÐZT_ksÔ7å6¸mŸæäïDna-r[;~Óóúc³x|ÑþÍD_|J´íó§ûßÚŽÞ>êKˎEћÇԂEG->¯±‹çv…Í8T)ýÃÁ©ŠÌN˜Ð²@]Úò¦n|ó;)ŽææüæÚT{s£%·¹35§q0Ͷ¶ÝÈÌm@¦½îyW–µ³´Ô5°;ØþdÿdûßÚ&¢•GyúS»-<Dó¿çæž6zÌÊvcŠ_֍YcÒo,°ô¼dîYbìÙjèm×ÿt"\ßÛžÜý8\ۅHM¤êkˆ©™ÝÁÎíD›Ù ¬ÛÃò²üDs;ˆ¦^ ª¸,¤ÒÛþ4þ¶„·ã¹¼~o»cdÞɦ 8=Æ Tx™îV{îÎöÑ .­\æ;vh½H5´mL¯ûý•÷.ˆ•CwÅñÇ÷C׏À‘ê·ma3ð>›Á•ˆ^gùsX~µ›¨ôG¢Â[BÊ‘íQ(e>Ž¡´Ç*Î Ÿ ¯ƒM †C„ra¦xÄa–‡¯yFc…— xGa‡w$xKpÍ'÷ø„ÿÛØ l`3øvËoùg‰&_$*¾B”ÓM”ù# |Ʉ@ÒCBZ(( *.É\,Ì\ ²xòøHóᨄ`† óX&cƒÐŸ ÇࠇW˜!ÏÙÈfpU3ë+Ñl–?颢«DÖ"ó±\" ¼Hų:ˆ ¢I‚x +C =€qœ?¬œœ/Ê8Tóž˜Ë ±”籎簝'ìcÎ??g5û—|óÛùÿMä¼ÎÎþ˾Eì¼Är‰b˜(xSü(b +Dù³ZDÑhĒTä ñ¬/Äj!8˜‰ÌKÌ"f5SÃìdZžm‡$=m2] +{¦ +”-€²HE•bfy"z¡¤Ë} ];ҏ|!ÝêiÒ¯Æ ª‘9ꏨÓÌbDõ2w˜a1¤xÂÿdì]†Ä òžÔ ÑñÐkyXz“ÚLVG¡'zB9à q ¼ûÖh(þâ ÅF䏁|‡?äõbÈ÷2 ?ɜgßìfn3ž~_ÁrŸ +B,‚Ç#dXù,èT’Õ<ŒI¬•ìiÒ b@o÷€¶Ìêi^;oToø"q• ëý‘P#F¶(wB¹+Ê&æx0”ÌUæ&s/ ø]”NDØPÂïŽ}’9¤0© <ÒT<Ò5<,¬©6˜]ž0Nñ†aÎh$¿.‚n¹?´ €æà h>†zGÔõÌÞP¨…A}Š¹Äô1ƒa4{ÀÜW#‚‰Ð"òf2¢úôςå‹çËÁÇ#;‘‡Í @v¦²žÈ¨ôAÚK¾H?æ¥0­‚q}Œ5¡HÙŽ”ºpvEÀÐ,¡UòÈðOÉà ɯ)’ãcI +¢n »e@t 1W͈¹<îY0*Y¾œƒ-šCSÀêph(´‘Ÿç {™r¦ú!{®Y‹ƒ±<ôqúšðáôÓ6GÞO«ºg©—YöI-Gd–Èn[®Ëþ“Ö/ëµ<Š¹a¢Ë‚¸«Œ;ñg3&óYHeçϖrȗpp2.VO)›R“®lO÷s’h¸pVÀ½üWCíKÃrޑôÛÖGýbû›ìföÖ蟳ëbú¬_Ë{­ä=ÖSŠ®ìW²‰½dVº­H<ŸU‡ª“6¨Žå@ud¤³³ÛÙÞë eÙÌD‡*%ªd*Ó=†'ø •Uˆî”¼x«x^h_ÑIc¹´»pMôµ‚ò+ù›c/ç×Æ]Êkˆ¿hoRºí'ÎÛ/%väÝR¶?T·Ù¡iµC{$Úæh÷B³gX£8²³$å¦°^LUp˜6–0Õ,¨¶yߜäò멚xmâì°Ëå¯F^,]}Áµ*ö\ñ{ʳã?JÃ1úҴʀ﫧‡Ÿ4OömåbEۄ?+[+ÞM:Vö¾æHiîPÉv}‹«>¥ÉÕdÜïj3íq]3írÝ57”`ÜÌg¥0o/ƒiK9ŒŸŒ€<Öÿ’ÿr]žQMgyþ%DŠ +*2¢Ž2XP¤H€„TA¤D ‰@(¡„J¨¡†Þ”¢ AÇBÇ6™=»ãŠíìì–³sfçìκ»Þ½¿€žÏïÿÜ÷½÷üì{¦€b— OòøMbCx-µ'¾”I?&sÖ>›ßÄXߎMÜ9#ÛsãdÞþkQ¥Ž“5ÎáÍn—B»ÝÇN y\8¡ó ™£ …<¡œ;ñ µ?QûB¥+ yµ‡#ÏÖpä!¯ùãóÁ®u»NþñxŸ²ÞʶÀ« [ŸÒ] ÒX&w¤ÇÌg“£¬¿²™<%Ý«‹Ï:0Æ/<8Sî6|²ž¬nó:9@틼H뉸AïŠxÌh|K×D~ ·F!ZS4¢ª£¥.y} + +Àç¶|&€×âüõðt3øI¾ žäl}Ž#ñŽœfr+ãȦéÔ0k4Öf,9ÉnD$sÐ&äº JÜ{ãj<»b›©í1=ôVÞ³™7Åjä=`×ó~f×Åü—YËGŒj>¢Uñ‘wQ1”• Àå°k Œà½Äþ–n‹ÙÆð$o<.°„»öÄÅx:‡»érVȖQÏF›"´žvìI–»v$’5 +Js‚š¦t0kãµìš¸ NeÜNEüOUü{¶J€X¥Ä( Z±¿0D] +Ú(ÚïÀÞ¦ái–ü 0‚ÇE&p¿ØæJìˆ×”žFºߍ£yÇ· Ê£lú2v2±£&%ݵIª «Å¥”3ɵôªD K%ð)^òU +çý +…/ý +E¿s +ÃÌ!ºB„h`¼žü/ ॠ{o. +×Àýc¸­2‡ëå{WTî†KØ´EV}Šˆ9±{[äI ©®µ²rUª’ª:]M/‘6³ %}…ø¢_®ø7[¼È͖üÓ7[‚|äĒ‹CžŒ_ÛdD[ :·ÈøU°˜…½7Ÿ÷JHðu¹!ܪÚ“5¶„ñ*·5ÃL³þ²ËNe莖˜=j…С&ç´K…<‹\šYH)ʨ +d ìì´nßÌÔQnzÊ ÿ´Ô1¿ù¥¥!Y*bÉRSvÑ1´• 0¼…x€¿¦ü{ç·JÜ.7€[Õ$˜®5ƒËõ; çëœ×œ­¡›vUþ¼¥<ä uéÉÝÕÊST…bçâüt÷‚<%7GEϒ׳dYœ”Ìa®$óš¿8ó̯~âLđd"¶41¥2Dÿ‰·ð +÷ðXp§;O¦ëˆ kX£MÛa°Ñ‰Ô­¦®ÓÔq-Ô5Ç·UWFíR•ÇïW–%T§ÊVæze–ÐRókYE;')Oë'̝âžÊ{„ùÅ/!ùs[”˜‰Yˆþ)(šÿJúØÃÃ"ìØûj& p¡Õ´kèÕ0hkñZÛÐÄ1¯i8f­ª ÿ²è ß.¯Zä˜U™â*+—{H˔ԤÒj†°¸•¯<竼ê£|ˆù»/_‰|b +.1ãó]»°$Å[Ä=ÜÅgp³{W#vÏV€ÁôvYB{×>bc'Ù¸¦½Q¥9jUÔº#·‰·'³!á@j½ÄYR›é.:Sà%¨®¤ñ«š™'+|¢*'8•8ï|"*;R…˜Ñ%ˆÁS"¯h5Ë[øK€¾àãL«Æq¾¶ ûf`34ì&œéw3Tõ1L‹z–Ó²-£#Ê6¥-Þ.Y“ì(l‘¹Ä5+ȼ&•WdC#-¬¡¢¾Ì n¸Ç +V¿a×#Fp¢‡V#ZXþ+*_Í¿E{¸Wp㠀®`ç÷ö´`ÿ©ÞÕ#6„²áƒ¤Â!êÚl­Ÿyú¹ +é@ĉý±»Nõ‰öñ{S£»s\»JÝC:՞A=”ÀŽqï€Î;Þ¯©mˆ Aԣ͈zL(Au«yƒ{øoq¾`w0Šý³¿ í@-vвñu ¼´—ì‰òq£´1¶©øâQ á…Ð-q£¼/xçl#GNï –Û*v:ª­s9¬í>ÄՎ¹ûi¿q÷\rçœý@æ ²o/"s;Ù¿}5¯2¿G×ëp€sÝgê—ó±æN‘ kÚdÓ» ÒiWRâÝX0åo3¼9êj”UØÕømÁWÄ;'2w™(ÚËÕÕîç躰t˜ºÛŽLݒcüƒ} 9Ó. Æra®æø 檮´ ut 4Œ”ã|Å$@êMHœ3áüvÌ;bæ=IQó>ÆasëƒçÂ7›å[™M²äΦ[sf +¶³fjvÒg:¾ôž¹`Kýږ:³dëuóÏëȎüÚç1…ö{\Eö+¹W†w¸ÜA'Þ@?@ίXΟH» ¼mÑŒ!üáf[°…BÐÍਞ»Æ_l쫏^ÇÖ'˜1ô)iú¼Í}ågžú6K²þ¼•û£y+wýÏVnÿ³ÕåÚî|í8xÙ8Ý]ÍMÜÁØòðh¨È_ο…ó¿Áú-‚¾3¿'ëÁ÷©pžîŸÅCæ"ƒHvÄÀûY(Éë9ßÐãy’Ñ¡çY&®/J×9¿hZïôrÐÔñåu3‡W/Ìžý¾Á~™ïŠ,ö=AŸÛ}‚nyø´á;Pó –ógîD.~àógЗLÁ{É(¯mÁóµ#¸¿ñ ¸½aœß!:½ 5pxÇ7ø?ÙõՙÆü¹Sa†20À ÌÐf`Fª°P¤ˆ"JQ,X"q%±žUc jtíE±¬=¢Á.Y{ÔuíƏƵG"%( +þ÷!çäØýð;ïOÿç}î}ï'´~¬$¸~²ÔØ0Ofh¨¼Ú#×ÿv^®õRîÿ+äþu°ó«ƒBW e{;ø ¬ÝF´è;¢mù§ˆ†_ x(ã6QÒ}¢Ø§D›Èú֍"Þj)ü]…5GPps¬`|Ÿ(|Hü?ô´-"ŸÖÑ"ïÖ)bϏ߈5X/vÇ~‰nHÜ>6JÔ-«ß³æŽ*ù .ÞC4“ó'œæü‹D¹¼÷´»DÝÙ8?¼‘( + +†Š А:ÒÁH>0Z¤ArCOÁY‚ +y‚JL”X R`ƒÈEv¸%’£‘áÿ,ÝM4‹óËÚò/qþ-¢TÞ{Âc¢ˆçDAõD òƒ„38Ӆ<àAjt"ø“‚Èá¤@4Éэ$H%þ“ΊB+g•l»Àjٛæðùû‚û?¢-ÿQ +ï=–³9ߧ•È“kpg.\‡3”œéDö\‹ î$†7çù1# g1,‰e²|Æ/AÌb|ø±ƒ}Ï~è̂"F‹à×Mï414¹b¸C=A×l[Á*¥pݪdpÝϾg?È ¾"‡ú«cM mdpãk7ØñµÜa߁!\@ˆY@˜‰µ][ELA—,†o1: •À«TÍ4V.…f)«A³‰í”CSÍÛAsÒžØ=ö‚5²V;xáOöLO(áý?Œœo +,À*Àl!$F„ bf‹¡/ÀoŒÚIl¶ ÚErhW±õvÐnµ‡¶ŠígGОc7Ø3ö›ºÅG­:([tphÑ‘W§·þ!”s-FQ¬^ùw¤MË'b˜3Ä͓ x¤Æ 2¦Ëa˜oÃ2î_…†MJv(Xí€À#0œbWaxäØbhpl6¾wh2Âñw#œ P1—×F¸¾ êáœoÓ ˆñç/ –ëˆã^Äòýèœ"†u€‘Ce°Œ“#|Š=Ìs0/r€i•#L•l«S«©Ê¹ÅtÀùƒé˜s³é_ª&Ó}Õó¯Î æwÎ/Íp­3Á­Ö÷ÿ˜àñÌ ‡á!*€s}té$ Käz’Âxåg³[w1ñ¥ˆË—!v”]kt™òCçéï:Ïszk[êü»mêm£Ëkë×WÖj×kºÞzV]gûIýÜVëúÄöÖí‘ š[áõ³Þ÷ØM¼¯tîÑ:Î÷â\BO–¢$ 5J„ä®bôL“¾ïž+oJ,¶ýI©CC×)Î/»ÌVÕvYèú"a…úyÂ:·g [ܟÄïvÈãaÂi ?zÜMx¡¹ßä}->—㡽È.ÄCw&º“] mqm{w'ô♯·šåEÈæ^d›„Ö¬QSzÉ«´ly]jâyòhÇ'½¾P=ì9]}¿G¹û½îK4w’V{ÞJÜèu#qg§ë‰û|®&ó½œxÉ÷BÒSí¹ÄF¿Ó‰ÐŸHDÀ1öv( û»Cߺjxÿmù#ºTFtf’ˆNL‘PÍÉ®ó¨¨î+à÷ÍÀ( †}߆}fö‘ÊDTDDY‡aVePY”M* X´&F«Œ¶±M0.59îÑ´1iÐh’“ÛKsÚíŸóæøÎïÞûÞ¼[ą3r •{°ªõî ×îʏ2hËÝnڒ½Ûª1Sb_›‘ǯ–ÈÝ*Òª=ËR›Dò”nïÂäa_YÒ9¿¼¤ýs“¿öËMFïÜô""ú,ÈMBÏÅ0Rå߯iç›ËPÒÞ÷QÀt &ËVÀX¹) —»²úÊü—w•¬Ñj+Š\Ù¼w›I½l—å¾¼T»Êœl~Yv‘›<³Òs¯´Q”ŸqØ;GrÜ/+}Ò_š~Ý?#ý¹_†äŸ Š¥IÓQ(MCÏÅ0 +`~'Àý4€Tƒ?PþL)í<åã•j0RmÕ|Vw•ï²¶ŠnsÙzýº’­Æ5Å;-Ê “mK +2Šd®²<…gnn½(3§Ý[’=蛚uÆ?%kÖ?9ë™_röÏ>)Ù(NÉBQj& +S¥(Xla¾¦ûᮔö^ªÁÅÚ;éÕë4í>#û80Pk=uŽL{­˜Ó¼/xE}õZÝêŠhžBg./Ûc³·$Ã1¯8ß%«¨Ô#£p¿0µ Uœ$ë÷M”öK]ñO=¡ëO>»d(NÌGQb. +wç `1ÜJ³D}ȸºP:ÿ™}'iÿh`AÏ=èh²cZUë‚4ªëÂuû£ ‹kbMeՉV9•iöҊ~š¢Ø-¹¬FXÚâ_rÔ'N>î+¿ä+D×½·£8®E; +Q¸³‹ýB³ð`¡ù4ԃs5ԃzÚ{ÐÞÑÐvHš[­˜úCìêƒje-¡ZEM‘+ócŒ³â-$u)¶)µYŽ»÷º$ÔTzÄU7 ·Uõxm©õŽ®¼è]ùÀ;ºâ­xsŠ6—£pk +bJÐs±—ñŸS” 5¨¤PþH3@/í ­ô*ÜØɅÚ.3¨êre•vú.+ìÑÌk_§›Ù¶Ù0íÐÓ¤ƒ{,wµdØíh’9Å(wÙÒØ辩¡KÙpB´¾ár_´¾þáú:l¨EÏÈôØXµÔ z.ÍÑ,^.£ì¥üV€Ã´6ôTõªƒ¢ò~G¦ ÏK5§÷=õŒ£Z)G¢ôv÷Äòâ»M·w¥[ní̳>\êÙQç¼®ý°kDûˆ{xû°ö¿¹‡µ¾v;„îaÑ=¼Ý"—z˜NϤB€ 4ƒMC”ßÝ Ðr f hˆ ²a]ȱéˆ';m$€³gxFÂЭ¸ã[õbŽÅF¦˜lÌ6_7 ·ŽèßoÚßîÒ7ä´ºšÜÏ)¸÷Õä¯êAçUÝ輺ù‹ÝÉ¡ûQA5h8Aù½”ßz v ”V’,ÚÓNs!eÂöL83 Þì¸ÓÁœ˜Óï«GŸÚÄÝx*NgÝøýˆñLÃбB㐱³U£m +›²»kpò•µÿoÑÖoíü†È±¥>^˜êÁøAêåwP~Ã1Ú?OäŸHØ1ŁØi=ˆ™±Í3LÔL{ÃÌÕµ3–…OǨ¯™Þ¥¹zZ¢ýÞtnàT•¾ÿÔ!Ÿ©ACï©ßóÄÓ·yâóóF¢sh"œD3ÁïÐ\p-»Ds8Ió?Dýï¦ü¦ã´žM¤ŸØy`Ó%6¼U"®ò lÖBgE¢ b‚•áì e”J 2Žã§L^î£ÌU++„ÊfMOe?×ãÚY-÷k7µÜgçµ]¯ ®ËeÔw¾„+ù¡Ábç©G)¿…ò«Föž¡ü)€ø‹”O+aø5ÝX¾s\ð™3ï› ¾)¯Ï‚@x+‚܊fÅ֟ æbãtÿõÑüµRýk(¿j/™¡ü˔? ú'€ÀOD·TÀå up~  ü‡æàøÈ ‹Àþñ»`÷$lžFƒõÓÆò™”±xVÊ2ûª™eúüËøù–Ñ‹‡,£§?³xOÍ{Œ*†Pu±AÊo§üý”_t–ò? ú_ˆú#Àš?øßð¼àô%€í7j`ý­X~Çóï¬ÀôŸ|0þ^¼ù@0˜ýWA÷õNx絔ÑùAÁh¿ie´Þž`¸ogÉ?Í×ÈhΓï—ê¤ù¯§|9åg|Hùtö7Bæ|î¸Ý°{`þÀä'𐠨 zhï %h£pÑ4Ñ40Ôppè‡X%ÀB0H…Æ1B‡Âo þŸFš¿ʗRïã¯Q>Õ=ø€ø  šX=àQ¾þ[ L Ìå”É…¨Cy+)ÏØhEÿˉH #[½!ý`¡ƒ¢’|E~\BAùY”Ÿpò©îÁŸSï8R¶ÙBö7”û(èœË‰ +rèoÕ —è}bL¬ Ÿx‘`B/Hb¤Ò͇Cä<ùËhâÆ …3ƒ–Ä̕A#ƒzþ jý†AÍM,ÔH`¡Z&)&5¤™t’>2LÆÈ$¹À ÚUò)}~D^’· ªã°þKÙK˜»0híÈ  ±¢]×̝ACoúÁ êl`¡örÓI©$¤!ÇÈ 2A¦È%rƒ|IþNÞü•eýJµÿ‡µƒvv :Ø2hO»®õÂ÷ Z1È[Ë•ÛX¨—ÌBÝ\RJjÙ¨ÛB: ÕBw˜®ãä,ù\'÷þÅu}GEugq¿SF…A†"3Àu +DÊPAd¨2”¡30€ ½Š€"Š, ÅBKÀ5êZWc‹îšM¢=–hbY-ñæb'œýãsÞûýuß»÷÷Îû}9(zÀy'úóV„œ×&ïq_™ ðÿßûúN”q%]e´v ^Hi¶óØh­d£e-r8hQÂAó:²Š¬'›¹hÞÃE‹Ýä"§¹¿[|Ë}mqûBüœûLŒ¼§bä?ã¸Ç–( zÅ¨÷ëïëË-Ý,ˆ˜ØÚrwýÕØ( e£}¥”è¨o•Üw’Ü?$kxo%¼7’­¼W’ü—’½ü’Cüç’ügҋü_¥wø?Û=ãß·{'¸+Eá;ÛõoKQ˜Ü’¢Á(”[Ñ'e8s21œEÏ3‹fâNóPx³pz]£8oåÉÜW.Zî ¦„÷?¦–ÿ”YÉ̬÷ ³YðˆéüÌô 0÷˜/õî2çõ†]†7\ž +¿gÞéÿÛ'\eÐð +ƒ/“‹ä‚Ëßpú@w Ç$@/#@oZûP/æÐ^õšÍzãáÏ~>+ŒóÄ]Å}ôA&ïÁÌþݙ‚;ŠÁ°¢Uï'E‡ð†b‹ð‡;ÆÿwÆ>ýë3ë_›qÖàŠâ¦ÁÅÃ)þ0úJÆ§(:©@““3Ðä8]Ñz~@ïîI¹wŽ}҆€ô<4“{øí£é¬Ç~Þ¬>Áœ;ÞÑܛs’ùߨ\÷Z&¼êU£Ù³Ùà¢g›á7'žóødÒY>£¯=ŒÏxüÓø”Ç5Ñqχ&G<ޚ~áf‡²ËÅ#z}Ñbûø!Õô©Ï\ ¯C áaˆ ÜZd×C¦ÁÅ_öÙE y§ÆèN68”=qh~¡ñ¡y&sL®ž²?°Ý¢?`«xOÀn«>ÿAë]þg¬wüd³-à¹MwN݈6]±ÞˆVÇ@êAå½`€Wal¸¯äÂ-¥†•pM9ÎG2p:ҋ},b>H©.ŽŸp ,ݨ?$ÏäÓEËÌv/¬6ß¹ Ér{ðZëžàÍ6ÝA½¶[‚öK:ƒŽK7]·ÛôÄîã`”®'ë‚QÒŒ¶kàÔ±ÐOø×/&”²ýf~ŒeÁµ%<¸«疈à¤JGT³Øƒqüý±¡Â=ѱ†»¢’{#4¦=Êó­áå–]‹ë­7…µØnm—¶‡tÛ¯Ùã°6äˆlMÈ%YKÈ#ÙªÐwÍ¡hOìšÂPÚ†’c ÿ8ÚO”7c¾¥¼q>‘_'òádâ$8œ,…d»_íÇ۝¸P¸=>Ò°;.AÔµ$ÝlSl®EGt±Õú¨ê©m‘MÒֈ6ûe—¬Y¹Ë©1üsCø9çzåç:åïNµ(#5hWÒ±0¸àe¾ï¨þ7ÉgRYp"• ‡S'Àg6°7c{gº7¯'u¾pKJ¸áFuœ¨=1Ŭ-![ܪÒY·Ä•Û6/Yn·"¶UV³Ñ©6º—©ŠþÌ¥2ú+yyô]—²˜7Li :•Æ¢Œ8н}I ڍ™ÃÛ0€Û”ù®¨)o¥Sæ£Ì1”ņ,؛m ;s䬞l/^gÖ\á†ÌPÃué1¢ÖÔ$³U)™â&u¾MCR‰¤.±Ö¾:a¥cE|»s©ªÇe™j¿kQÜ)Wj˜¼vÑÅ£3q$2 +íǝÍxêAe õµ¹ýZ!ìÌ3‡ž|gVgþlnG®¿^[΢ «³£DÍY f iâºt­MuZ‘¤<µÊ¾$¹É±H½ŽÑ©»åùIý®¹I'Ü´I7ÝrÔ/åZ52ĉȴIè0.x82êÁÙL€cTûe¿}» +ÆAO¡)tÉX…îÜ6Ÿ eið„Æ<¥q}nœYuNŠ¸"[c]ª)g–Ûd48楯erҺ䚴OÝ2Ó¾œ–‘öƒ[FÚ yF2Ä)3 3SQFFa텑½˜ +p:‡z@õôQþÛV́Ît”Ú±ÚJœ–ŸqÅó ê +UébM˖&YçgZëòòmóµ¥öڜzGMv+“¡Ù,OÕìvKÖ™¦Ö|ç¦ÖʟŸÔPýjÊ=µ†°ªÞVÔËÙµuž¼ŠZaIõBC]U„(¯Re–Sž*Î,˶I+-”¨Kª–5;Åw01E½ò¨¢Ï]#‹.“§ò¨BdˆS´c +PFFý ðŸ‘9P¾ £g?Õï­è\Nõšõay“Ô4;³Ê›fq‹ý+‚ ´ áFšúØÉéujóäÚ,«Äš‚©qÕåҘªFYdåÇNʊmLXÅ KhÅ—ÐòÇLX9:‡•¡ãâR”…— ÃX÷U—è[<^H¹“Žá}õݍí͍”kW  ¢ÕJ×8° +×(8ù­ÞüìÕóÆg´„¦¬Š6NZ™`ªjN·ˆmú“ðzŠ²NÃþü?f`˜afnÃMP¹ÄEES“²¼”¬k¹ÙºÖÉn–]6e”¦y¿¡‰Z(¸*ÈX® +Æ)J¶«Y†ŠY®šµÒØ»µÛÎž³‡ó;0Ïÿ}ßï›ùÞ'úMZðBäø׋£Ç½¶2î®â-ñc‹÷$Œ)nJójGüó%þÎW¤?ō'±…=´vß¼pU¬ëB`ý›ìÅç¯àîµJÃì56<¹ÖYki3×dé^S`˜¶ºÐgꪉ~E+§øß·bzß + ·|NXá²ùc–.‹µtsôÈ¥Õ±KÄ,i)X,1‹$fÄ=bao§y-~À¼ËÙÿ…ù¥K€UÌ^Èõè¥îÜ)5cFi(ޔ ¦mJצ–æë‹JGîÛxiüÆÉæqoM³nx$p̆Ùö;ÖÏ .X¿$lhIix^IUDnIcDðܵ‘³Z"sVIdîÊގ±5¼þ«^ç½Èüu+7×rÌ~vð'î¢l3`JyŠ*¢qE²šX‘­Ý[Q »»¼Ðslù$ïÑåS}Fn›a¾í)kþÖ¹9[÷ÉÞúVßÌ­•öŒ­Ú3ʮ؇¼-Áé›%$}“„¦—öÖ0‡=à5PÁü·¸’-gíÅ¥œ÷ÐÇʁi\Ñ&TwW›QX‚±®þãJÃ(W®á¥ wÝ£Ëwyæº2d»f3]/ø¤»šÓªKüR\;-ƒ]³ ®¾lI®úÉ6h— Ü)wHŸžp»8ÿÍÌ_Íü¬ýÏ\ɞà:½¸P¸—;`yµVäÖöCÎûNd¿²êò‘Q7F¥××Òê§j)õ3uÉõÏêÖ{&Õ¯ñrÖo7$1÷T½(cÿ×1ñf`î6àɝÀÃ.`2Wûùf6hô‘ŽX‘t$ ‰Gãá<šgSŽFÿcwüAÄŸ¥¢ÏUQÍË´Èæ2-âãZ-¢ù¢~¬Ë£ßQÑõ;"ú°Ä³§ræo`þRæ¿ÌÞ?ÍÚÿøPTÃúëYÿ@ƇÀÀ& îcÂOò¹!g‚|&Á_$#¨%ö–;`?;}ÏMCŸóO"ðü«h-ÿ…Ý°}Ù Ûùï`;+ÊÚBgDëi#ó—3~ðÌn`k/b݅ ÀÐF ÙIÑ'Ð3@à9=.›a»k[,m±03æöLøvŒ€©ã^¯Nƒ÷·OÃй^×6Am?t¡uނvUàÑÞÛ*æ3N5ïýÌ?Œev³SO §€Hfl¿o|oaêòƒ÷ðú1:w4”;p§ÓPâ¡ûAàßüݶ›7—û µ‘ð÷½-`þs̟ɹÿŽµ2;—Ùƒ?eï[€°VÖþ`þ'`ì ·½x@‰7BÍd£¾Nq”L9ćᇡðÂ7\á….,P.‘›äW/òÚ{”³Ÿr˜ùÍÌgÝÉ̎¹ X¯>̽þýoéÉØã,vŠ$'eÐhšB| öCØÙGÿ ³¿{"$(žúCË ˆiˆáJ0Ž~OÒz™ÑJÚÀcl¡rª¤÷è}j¤Oé]§[ô¾B˜ á9â þ<“9•çÈSb(T¢/âyf(ў¦¹ô:-£µTªD•AÔª¦ýÔ@'øŸ/R'¹áæ‰ÝyN”[ߛ„3?’;nD$¤_ûÒ}öš­Ä-&ö¸ž¶P9UÒ^ªçxšè<~4^ÅÆ.Ü0‰ºá#ê;ߟi¿%æG‡÷\¿÷ãëÐîù ô)Pâça™I³‰½°°–¥´†6R™ºeÙ¡Ü—ê²Ôª›ÖÔ k‹ê´¶«ëMõM´6Ñ®ø‹ÇåÿAb™ÛßN} ±Ýø:–×Fç‘Ç9Ur¿’ éꧠǕÛþ¼ºiEý`_¤¾·¯PßÙKÔuûfÕT®¾ ªÒ:‚ökíA‡µ+ÁŸi_·© !7µó!âq6Tt-¡¢ÿâ?Îô A$²þb@÷kö"q$>“空¢Ç«ï£P׏¨«ŽÙZ»ã%­ÍñšvÙ±D»äX­}åب]t”i;µÖ¨½Ú¹¨´–¨SÚéè+ŸDßÔ7Ljç±ñ:#†#Ý¢{“¼¥-Á¾T3$¯Ó8—”8t%§âúÀ|t$ªË‰“ÕW‰Óµ ‰kçœÏi-Η=>w¾áqÚ¹\wÒY¢û»s‹î„s»¾ÙéÒsÖy6%6{6&]òjHúÁû`’ë’ÄT›$>5ÝÅç@’ÌÚÓ| ·qïÌ4A²yž¬@ü+#Wӝ¸t[ZÓF⋴ñêdÚډ´™ÇSŸÒ5¥¾¨?’úªgcêb¯Ã)+ )¼¥”yLÙe¬KÙgªMi4Hm5íM½î»'UüvSUªX*iîIÒXûægk{³Öø¾›YjveVøíÎÜc©ÌÃÛ5ì SÕ°ç|w ç·cèËöüe¶òüÿmyï”åU¾WóoªË5¨é+ ão"á äJb­ZµŠµÅEŒ(á ˜„K€!@¸„k¸‚á¢@E‚(¥µÞ¸ÔjëÝuÛnk·n»³Ž³Û±Ýévv»îtÝíöì;Óad?üæü¿=sž÷9ÿsæô¾™§¤ß°NJbMH kì˜) ^ ك{x ð »ç“±s%¹Á' ð0!n%½ï&ï¦,%¤^JRÐ/È5Œ…Ä|Ϲ„RŸÙø¿3ñÍÓqS²£Á“²։ةñØùPGì2{4ö!çxìWœ!Ùs΀Œ°ûe$ ±ÿk²gƒõŸ¤|¢Â¾£¢À½Ct¸™+J\V卵WI©ó*9}V™Æ8šë=¥0úM¦TL$[‚Æ’Û˜£I=!ÇåC¡CòœÄYž=ñ2¿/ñ.ÿHâŸùÝòù]rÂ³É ×–Dظ†®…ìÃëT†àuûYêcç¹¥ÁΕAƒåt_¸˜É—fåMMõtf<ýT†ÒãDz–·#­ÀDmZLU< lbÙu²ûRíܞT¿K1#èT¼Ö¡¸)´*ž[SkI%„‡pÂ^…àuÿ^oOqÿ¡öì<ï╻ˆëÅl/Xвá¬n38u‘Ô“¹é­Âc8;Ã{0Kço×öeš™=–[º•s8íϚ6,hUO ›ÔçD ªëâzõïÅõ÷¢º4†ÂE8«Ìᷘ?d`×AÝ÷°{. >vŸ…<œÉgÁTÁF˜0즎ÄЇò“ýyjï^]Žw®!°S[ÊlÏ© mÍná6guñ4Caͤ¨&s>¼*óIeæ#‰Yó¸BCDH˜YCøá®Bâ¾>„9ÌÂΉú×°{^.p!g é0e ‚‰b ŒGP‹ö¹5&0z +•Þ†,ÿö}`k~ ³I_ZŸ×È­Óuò«sû…f털\;')ÍY–”h?ÚP¬ý[x±–ˆJ´$  |„·ÊsœÃ—j€ß¢ÿ7 èA öÞR€7‘© +Œ›`¸Lƒå¯RúʢܺKeî‡M +¯¶’ ¿æ"]`½ÑȬ3V„VÖs͆v~YÁQaIþ˜¸H?+)Ô/n(Ѐ|+)Ð1"4è‰á#¼U¾—cpуëØû.—ã °{FÆñû¸ÙªÐ[µ•ÒUµ‡ÖQyнŜìÕXžæ[W¦]_]j6›ÊBÊJj9%Åm|cq¯ÐP4*ÖÏHtÆ+r¿Þ 5~#Ñç‰0·t…„¿–¿§`²î¡ï”aç«Bð 8Y0ŒO0{©ã‚Ͳ™ÒnyÖ\³®¾VîQS£ò©¬Î +(¯Ê2UšXEæj¶¡¢™§/ïË-唞ה^’d–Þ—d”þ×ÿŠ3MD¨1A–‰ð³J^ðW%fA‡ç=X¬ÄÔÌ4 ˆÝÐÝà‡›B ­y#45ï¢ZšöÑ«ã ©Þ¥õ™~E–¼@C]S_kÍ­iäf×Øšê!az•S¬®z;\Yuù:\Yù“HUIÂTf"P› _]Ax«k¹Š˜Cý“¨?4 +`Cíz'fà,@î€Òw +;ékW½ âj0ì\ŽÅ-ðêÒnؾ$…mˉ°uY [–u”MËe”—Wš¨/­Ø©’•)ZøÊšxåM¼ôƒ›è*¡ ¯uÂËÄ]xéçpþNÔAß{&q38ÔÎ; ¾p;è@Ä5€Í7h~ËD·‚@t[Âۛ ìNîDÿnðî¥÷^>pîWû¾ BïCȃóÀzð`Ýû…u‡P˜· •y“ÐÖ2ƒúcc}8óÜ»y3€Úi‹¨õtïuÔ`ÓÑ€ÐÜ ðcOxþØàÿ©ü>ݾ¿û>øñùÌޏë;x}~l‰Fຕ@¥öéCqÝ šè \íÙÖ¥)û§ÛÀö„±bðJî‡çr:žÉ£P-gã±< å<ܗçáž\„;òJܖ×ᦼU¶ûpÝö8®Ø^ÃE»'¨Ð 霽Î:é'¡8óáÅø^vMm ó-öø,Uîò)QîôÙ¬Úîó½j›ïiÕfßÛêM~/¬÷šµ´æ-ß¿-4ŒË©ÂŸS§Ù۟*p£µ•-lQá犓­|PÞ:‡Ma(ó‘öú÷UìöOUìðÏ°ØfÊRn1MPm6MW—šf«7™ +l0­Ô¬7m°\kÚeYbúÑêþ×­Vø×h—ù ë%µ´‹? Z+jãs¹¹Þ¸À©íl gÚXâØgzjûö~Ší:J[ÛEJ›ã,6PnLW­ ¡. «)˜l¹ÚœkµÒ\ ]n^b½Ô¼Æf‰y«\dþ·\h¾,Ï7WÛÛ9µäüaSßÛøâsæ\ NqÙ+çõH +eíuØìŽ-?Á?;µ—Öw +W”tŠ±XÝ1Qµ¢cJƒe†j–tÈ´* +ÎÖO³Y4KžTh;7hµ.?¨Ô~vP™}^P…}nÐ#ûÁÂ~z°Ð‘]N-Û:â3.mµKîžûŽvʺ{:+°=TFiXC¬÷Eq„YZªX¥, +Sv–fU6ÌzΣåY_L²ý.4W—:Ï~FÈrǜ ú©!{œ¦„œvšzßiB¨ÐŽdOºú„¸Ï%îãâ¹·Ï´•Ÿ7uÑbM7g¬ŠjŽ¥ÝÛH‹ºwP,ˆêª,ˆê©ÎL´Ì떢ÙuˆÍŒ®£lsºdë¦vÉq˜‘¯Ÿ±Ø);|­a\øNãØðÆÑwŒYo _G=9’Ù×7YƒŸ#Y.ù{{3~,°‘ŸK¢`E=÷ôÂÂ^&© W{Åì^•ßõŒVo™Óc€vJ4yRôp» ÝÇØÓ}²ãب<§¬ÈBcfd±óÈÈm.#"Ë]†EÞtɈzëғã°HáPç)Ç`e8p’¹ˆv$pŸÈøñÀŠÞ(ŠµÇüxÌéÓJÊë¨ø¶O¨2'>R=9®·åÄØ$ëìØAòØÞ_ٍîõµCfÏ ú‘=s Ãcæ;³ÊeH¹~ÙãˆkZL½tN‹r"}zŒp¬ó˜ýp©pŒùïcü-µï4CJb¾ó€Äe®ý6¹%%pë›p…j\ú&#’„éëÜéÌù€}ˆõßÎø¸åYI ¹%Åû)֘šêŒ‰ƒ›!;Í_3øÃT#R£4ƒb­† J²IOd—úÝeÕô•†á7 1P’°„,,.¸V°:,õˆU±‚HÁA@ÙÙ*›‚`-‹k1X«b]Q´êQD˜Îè´#UëѱêèØrԊÖÝ:õÎk+ڙsüãá—@¸Ïw¿ïÞÜûŤÚÆ,ÈÕF/(ÖGFWÙύÚä8;j—SxT‹ÓQWÈc‡ð(a>_è#æ ÑöÐÅ}xŠk°…ùßÏ+èö$ö|dmýŒ¥8Á…IZä%BNò(If²—4-y’YrR€"!1Ôbaâ\eLBŒUt|’Mä¢,»9‹–ê"VÂâ6:„Æíp ‰kv +Žûž Aˆ>0^舶‡K¼úgÝųô×f²ï]̐¼ Þ¹ù>-Û)9½‘˜;‹r=$±¹ãeѹ~òȜŠ9Ùaّʰ¬…êÌ4› ÌÙ$Khzè˜Ç:°ö œw=}ÕlIVæ…|¦²ï(fïYbŽ¹¥Ì.sFx™ ÂÊ<%!e¥3˦Ê˂äÓKÃþ¥Q~Ë-'-ÏVy—[M(Ycó^I­­WÉÍؒSš±Ëîڎ]*l½ŠH!)6=g°;ؖm^¬!ËI.ÝI¥À¼•ì}*$®´BP•#«† `Õh¼¿ÊKâ¿ÊWê·jºlÒªP3Ÿªyò‰U ïUeXxUYŽ©¬RzVnQyTîW»W¶«Ý+î¨Ý>j·„•Û +aå^öšcÜ{™s½Æ2 |s@Ò鎭ÂWëÙÿU[`ò |7ôƒq8¼î˜P3ãk¦HÆÕ̐Ž­ —Ž©Y ó¨I‘»ó{6–+Þ1n2w5î5w1¶™»l¸mîò‰xkÄ:²VXŽXóšƒ\s;Ø}FïZ:K+œ* ­ê<ºƒÙùmÆoÆÔªàY§‡G]¸×€[½þ\?£MþxÇ,iš+q1ÅKÞ6åH‡™VȆšjdCL»Í›NÈ×ß2T+䃶ˆ^7“Ï„¢‡=¬{ýÕtW¬ +èMÝDofm¦Õ·žÛ×]2 kPãO  Ý3CöŒÀུwîõǀÆPôoŒ†scú6.CŸ}ë$Nû¶K÷ýEâØØ%qÜó\ê°[Hv ™ÃÎ×l£#ç½z÷ÛÒ,zÒaèõÙ ¼ËžÔu?0ø Ðç°†&5ôM:èöƒîè0h›Ý`×<šcþ°=Fâ`Ӓë–rX·ÖBÝz„\…Uó3X°>"$d3ýë8÷2Î;÷sÖà `î. ¨ðý’ù§×õ00è(лв]µ:!‡e› +mv0oë EÛ2 +½NŽƒü¤?ÌÚÃ!k‡´½’vN®}'Ðñ5Ÿ·‰à) i{Mõ'܋Ÿòû¨HÞDrÎAôúÒû.½.ô ×ñ iT€ù·€ä¬5/Zà\àüà/Ç_\Jy¸ÄCð2¿h/—ð`æ¯pB—/ðù˜ˆÿ¡‚뭐yOåÜç3ß3ÐO¯çWÀÛô:赦×ò;ÀìŸàXä_à*ã¸Æ8®kx!vº7\[cÛŒ£›‡@77þ€»,ð]Nêî¿ùþ)ŸâKéOgÍ£p4“þx0mÃځ¾Ì=½jz/¼×ȏä¹I~"ÝrŽ©~¶æÅT<ì<<ãEùWÊÏy ~ +n:ÁÅ-ZÉUòð‹€˜C@(ÿ4™nOÎyØiÖþ×/ÇqCù¹.× (Ï+ŽŸ÷Ý+»ì»7&‰·FÁ‹¨,(,ȲܖEvvå²ìrY–Ë‚+  "²ˆ.!xCƒEƒ—h¢&Fmc›Æ6ÓIf:i:MS§M[§vÚ´}zâ˜é‡ß<ï¼_þç9çÌyÎ>|e >X6·—ÍÂÍeà½å7àÆòpmÅï©Å•O©K«½€\@Îÿ$” dê‡âXÁqû·u,x¼FVÊà‹e«àÓ +øÙ*üøU-Ü]ï¯)ƒ[kkàݵMp=Øï{©«ÁýÔåàaj1d‚ºrŒºr–¾r…ž_w~kÝoè7CŸ°fC ë$r"”°ãùCÈkKãä©GmŽoµŸ‡³áWkðqðKp/4 n¯RàZ¸.G˜áR„•ZˆpPçÍÔ9E;}VÑCÏ)öÓg~Ö¬â(ë”b–}Bq‘}Lq›=£øŒ=ùWΑHØH¸ãÈ둄óCHƉ£W‰Ï Ž×‡ÈG1÷7rá}…®G­Å͛`!:Î)3aNi¤Î(-Ô)¥>¡¬§)w²f”ìiå^öQåg2z‚{8ú8w}Hca klœ!Mw0¹…7¼›ßŸ¼WЧ>(ìU ìQϊ¼ê·™.õ=¦CýӞüOQ[2 ô$á÷<ê%žbÞ¿Æ{?Ì@ω¾ïlÔÇsc9•Ê…™49Lføv3ø3©áÌ ú@fk¿ÖÌîזsú´5¼ÞŒF~OF«À›Þ-ìLß/jOñ¤ïJ[¸Ó>´¤})iNÿ‡Ø•ND„"BWÚO°þ_¦àz“p}ßbè·0–éL +&tRݱ†õ‘p@Gùô©tŸ>›Õ«/`wg[¸]Ù6^Çg@ێÂÖ¬Î@wV?Ӓå»t3ÒFݼ¬^wKæÔýZV—õw©#‹ˆÆ¡#"$ð9põÁÜ7\Gß·`Â=¿` +c™Ðãži`à@îJ0†CŸ1ö“)¯QÇê0æ±Û󊸞<+ߝ[ВëºrÚE 9{ÅNÈÄa˜’ÕޒWÞ•Û ŸÉm†'2›H1ÂØõD„>ãìÃO1wŒWÌè9KŽ¡ÿ›(D}ü7˜û +—A¯) ºÍÑÐiÞNµ›3X­&{§ÉÄm.,ã5VÔ4ë +ZE5ù=âªü!©Í8)³çäåÆëAeÆ_•¿•—‰´ÌHÄS–GDÏùÖá瘃[xÿ·qõz½ßž~\ñ__‘zŠ_‚Î’h·l‚V‹ŠÚiI£]–lvcI>ÇYbá9Jl5ÅN¡½È-ª,òŠ+̃ÒRóaY‰éLP±éZÙüIÙôXn6i‘‰H¦¨ˆžó;¬ÃÌû Ô\¨À>´bð<ˆ±ôaN¼¥<Ø]&OÅp[#¡Ùºj´jhg…Žå¨ÈãTWñìåրÊr‡°¼¬ETZÚ)..š-ã²Bˬ<ßr%Èhùù‹Üh!Òü"A˜übÂÑ3¾À:ÜÇú_CÍyÖÁŽ~ ρJÔÇXÚ¬,pÛ¤Ðlÿ4V…ƒ³:–rT'ÑÕUZ–½*‡mµ›¸åör¾ÅV-(¶5š+w3•û$Fë˜,×zRn°.Êõ֟"–é+ˆ‘Ê ó=¢g|Ž}w뿈šsµèwj†«Ñï mO žµ 8+ ¶n=T;£ÁæL ¬Î4º¬.›m©+à9,<“ÃPPÛ Ì«õˆrjöŠ³kü’¬êã2]õ%™¶ú'ȟdÚ*"ɬ"âL;atv"Òٖxˆ}wW΋¨uºëàD¿Q‡9@ZzüWÓö¦—Áê +rW”ºâ¨—†6»t¬BW;¿©ˆ›Ûdåšê²ÝB]㑶aXœÞ0#ImX¦4ܗjêÿ(IqqJaRëˆ(Õñ‚Øw×1ó¨}­€¿ û  iÀo{ ú7,»dPÜú*˜=áP艁|Ïv*ϓAçxô,}k!;«µŒ“ÙZÃËØՐºË+Ô¸‡Õîif»û<“è¾Ë$¸1‰-ÿ%6Q¢‹nFÓw1—±s¨?åFߋV q#µ¸Ž—¶˜:(0v2Ûµr¼¡ ÷n‚ÝñÕ­¡2»ut†×H§yKد£ö6q·wuðU]ûâº&ۺΠc»îc;¿Æîþ·0¶cۈ`«ç7±ÿðγ€qÔëGv#Mí¶Ôï0ôèú±/ÒûWCª/R|JÐøA=N% è©DŸ‰Vù*Xq>';Öçá(}ýÜ-¾Ã¼ÍýgyQ¾Û¼¨þ¯xQ}ßñ£z ?jÒó‚«Xó³xßc^€‘.€=È.üv v)jçõd¨Ґ0Â@üÈ+w(¶RÀV,Äú“ Ư…èÑ\Ø2ZBm­¦6Žî¤þ^V¸ŒµÁ†µÞÿ{½ÿ·¬°‘±ÃNØrà1糨{¤{íi'҈ߕ>Ìjï@k¤ˆ›Ø<ɃȣP]S!> ¦·ÂkÓjX?­ƒ°7þÇvy@E}eaüûOpè}P,ˆ ƒ…±€ +(¢q]×äèÑՠƂ»¸ADET,ŠNPXªÔh{,G$1®qu]{ÖXëۏâîêÙÃùñ¨ï{·¼ûî‰@óx˜g £y±ägΑڛ‹%_ó>É`þQ2lú]f(2C¾¾ü/•)€™šë©·4‹yÀõ³ÕÀ赌A.çÏ| b3õ‹8~¥Zø–9ÀPæ Ÿrx—ë¼;<+"áQ1îír\é\—Êp®4骎Up,§2!9ýµ’VŠ3y³™‹ÔLYÇ»HÝ?çÜÄR·O VFý* gSÝ€cµíjõ°¯u#`WDÂak‰„Î26–1ÐZ¦CcI…Ú²*K%”–£\ï@]+ ©!ÕÚ=­¬bÐ×ԝC݉ÔEݸr ß6À¸‹úÕÔ¯Ü÷_¶ßÈ ª×AVï©Áhð6#GØüádeáµò²Y™PV:ÒÊ ¬—ÉSþ^¼Åú ¼ ÀjO-ÆPwmä¿ë€.û߃€k= ?Øä§À†CIl3ÀYwÒ8ߕÍÓF6eل\dáiâ…kbR5љß&·É+"þCV!ïâV`zïmþÈDQ7Œº+à|°; ¨ÎRûùžü@.óWtl†õlÈ]€ë>À 7Ù þLÜb¾Å|›I›I}g'á&w!¯‰h!…y6ƒ±·Ní(ÚF{;Q׋ºŽç]# »DÍÉuòOr“üLhûvÀ/ôÉCÆæ±?ð[7à›“çlŒžOåð ÷‚1yI#_ҐW÷Éã’èûñôûh÷Úv<xòÏôÔÕ¼ÑmÖ¼EîšÁxDžßÈ3‰àµ=‡—桍°i<‡àÃ,øðæ†`ÐÏ!Pq±¡k¡6@À‡ðkA‘?‘ $‘Ì#©dYM6RDJÉvRK¾!§Éuò/¼Æ+~ˆ·xIžµ!쨭ó„PpÎWø’®¤;H†“±ä32‹$“t²‚䐍du¶rß +¼À.ãž2ižà.ó'øW¿’Gÿ¡§¶½ „Æ™ß5ãÑæ‹H?2„|B>¥N"uæâ9R¸kC°’:k©ñ%÷2S£„VoÃÔà>ê©~ŽéòCø„ŸÓG´¬7ßA8RW¯‡°m!ç +—¶˜¼Gz‘jŽ ÞXjMf|ÎtX@Tjdⲩ±žûçs¿"Ü@#° Ç~¦ðIü ×p‰'ûž4q7Fï \¨ëhK_h®ZGž¥9&ŒÛ‡ÔíGÍxê}L­ñԙŠ0&ד«HÃæÆeæÆ%ärÿM¼ºÅ8O_œ…ߊSŒÇ žø8£t”»Z%#Rëúá®ã9”ôST¯‚hgGŸ8ã¥ÚåA´¯'5£qUŽË²Ñh’%à‚|:ÎÉçàŒbN+ÒqJ±'”98¦ÌƒUY„ê +4¨jpHՀƒš&|­½‡½ºW°Ø2cíjÞAxQŸeN¸W^/'žëíñÀÖ7´~¸¬}6}pV7§lGâ¸ÝXµ›ŒÃö3Ñ`?‡ìã`»¥8Ðnöës±W¿uú2Ô:ìAµC=ö84a‡ÓT9¿F…‹@Y¥ÎBzƒð¥¶7ˈ¥†Üðn.yJ\µ·C£½;N;tÆQ§î¨w€®Ã°ÏíÔ¹GûT{$a·ÇìôLÃÏåØ敃*¯|Tx£Ì{J½ Äç¶îHfÃKi“¯ +IA3!å·!üZËÉ=–Øk,÷»ð `™;孁ÕýýPgè†êö}°³Ã l÷ÊŽcPRÿé(ñŸbÿdl H—ŠVJæ€ Òæ³TX)åÖIy'e¹~’­ëôL–ÓYÈ֐՝ÞF¿R÷Kë…0à©Ÿ3Oöv´Çî@olë„ò®=P4[ÞŠ¯‚Gasð8O–òƒgHy!s¥!)² !™²õ!9²µ!ò5!¥òU!Õò쐣ò¬ÐëŠe¡OKC…"#TțYò?¼ þ]êÿÐ8iâÌG,=Ùc~ÀÙ3X‡²P7líó‡a(ë‡<ã`äG`½q´´Ö8AZcœ"[eL’eʳŒéòåƕŠLãFE†q«2ݸSù…±^•~E•þXµ(\(›IŠŒ­< æԝÏn_>ÿ|rë8nï”õŠÃUØÜÝ ù=ýÛ+ëLXcŠF¶i˜”e%-7•eš&Ê2L‰òtÓ\Eš)E‘jZ¦L1­S-Š0«FlSϏ8 ™gjÒÌ1=ÔÌ6 õ,“Pe ­<¤½W{ÓÔ>ÀÙs× Î:ÑÀW|j +{KÈí­ÇÚ¾>X„¬¨XÖ? +ýã¤ôþ#¤´þ£e‹£&Èÿ5E‘•¤\•¬š™¡ž¹F3+²Póyd…vfä>›ÄÈó6Ó#h§E ÍÔ(¡ž)Tm(›¹O|ǧÞJíºx Š òbØcòç«ûÛaÅ@OdFwƒ˜0¤ÅöÅâØXiQìG²…±£dócÇÉçÆNR̎™¡LŠ™§š“¦NŒÎÖN‹Î³™]ª›mÑMŠþV71úž.!Fh¢…†¨‰*a`+·"Ú}ˆÚÕÃÙc“‚¡œ·âØcòËbuX2Ø©qþHÒ Éñ&̏(͍—ÍŽ)KŠ#Ÿÿ©"qÈ4å´!³ÕSâR4“âVhâþÍu™GEyaüùfav .D‹&¢è‘¨(Ú((Š"¢¬Ã0Ì ÌŒÀ° (‹Åq¡âh]\Q0.cMðhš›4rZ=&©Ic\kmŽmš¸&úõAÆäœþñ;ßý8Ã}îû¾÷Þï}ÚÔyI¯ir“ŽjIŸjíI·4ö¤Çj{’¨²'ŠJ¢xÊUîƒ?3ÝÔ~ƒíF[Ÿ6¶aëØþ>ð¤(Ñ ˆº´Ô¦‡£Ú…*C¬PnH ’Òt‹´$=WV”^PV©ÈO«Wæ¦5©úMß¡ÍÖÑYôgÈM­YÿHc֋*‹^TZREÅS.qžaŽQû ؑläZVóÝÃuÔd¨ÍDµñ9TfŽC¹i*ÊL³—iPlJ“š²¤N“]–—Y(_˜Y®°eº•Ùƕj‹q£&˸K›™ñ†Î˜qZ—‘qC›‘ñ³&#CT ¢Ò¢—‹ñ}mðÛf`6½Ž•9àx%×RÏuԘTfõÇbK0ʬcQb‚¢ì™BAö>dÝßbüûJxŠyhêI%)à{Ûrs™ãâ~0”AZy(R+‘R‰¤Ê9H¬LT¦ ñ•I\Ež4¶¢L6»Â-ŸUÑ]Þª˜^¾WYþ>ùJ¹ø®"r‘¨ˆ,¢J‰«ÌÁáB “­÷Æ2`y)PKÊ8Î]LßWAß³H^ªFBÍ@̯}ñµa˜çž‚¹îhĺã0ǝ"ĸ3…™n»d†»X宖Ns/—½èn‘O©}M>¹ö¸<Âý…<¢æŽ<¢Z”G,!U¢|²Ÿw™óÔ•ÖÐK½REŠøžCíôZ ±ŽÞ§AŠ˜ßõÃÌÆ!ˆn…Ë&`ú²©ˆòÄ Ò³Sy_ôX…)§á©&z%<ë¥ã=Ò<ïHÃ<ç¤a?HÃDiØˤþWÞd®÷Tó<Ôp/.¥ï$‹H.µ³¨L›6×ÌXEÿ¹Z…É́ˆhƤæј¸f"Â×Db‚wÆ{ñ‚׈0¯c½¥ã­B½^a”·]é}KYÛ#„¬ù^±Z”Œh"«DIˆŸ®*ލ/ë빩¹„ò=»‘5XÄ7Ñkè¿Öã7҃µhºy Fm†‘­cÒ:#Z#ñ|[,žkKÆð63†µ9ñ›-Õº¥ C¶ló[|¼åµÞFP‹(m"Ɇ>öP{Û +Þ Œµ~÷u´†ÆÕ@‚ˆÙÀø7hYGo†· ڥŠŽ$;Fc@G8;#É\<Ó©GÿÎôÛ] +Ýî² ÚÝû î<Mç hw=†n§];ÙÑG;õ65+¨¹„P×üÖ`0‡ºÓ^ÂہÐN`Ø`ð~ — jŸŠCp(òC¡ùÂ!ñEAðÍãeÃïãaóqCùè1}ôº¾£ä›úÜC"? ¤«6j®e¬õ¤”º¶6րñÆí¢v÷1þ.êû€Aoý8•ê]@8¦âÅB{|a#üÞhBû>›Ÿn~p»és»yÀ»™èn±ûuòù󘈿°º+¶2Œ7Ÿº™ÔÏXg&Qs45ƒ©9à=@{Ÿ?0ä# pZM¸Ž¹Ž3ÁlF{›ápà3®ã,?Ægyٟå!ïa±{(pöm>/’»‹¿Ð´÷Á. d/`=Èf½CýãÌ70”šÔ§É'ÔþŒü…ü•œ€óJà‚ø"¸H£ò5›ôKãË\Ç~Œ®ò¿ƍ ¿Îb^?EnûD|B]kÀ4åR¨CÝIÔÅXŸ=ÃÚ +(züšŸ“¯É%ò-¹B®‘Rà&kóOæä»ÁÀm•ïÇ?rwØÜåÞ¸÷p¿…0Á>&üÇ?6ê”2«j4âhÇGìÇØLü¿AÜãšÜÅI¼Ã¾x×qï1’Gx“•»É¾ñPý¨ÜR*Ǎê+°GÇsMµÔÎ†PSÇÎ20›l<@ÿ±?F-5š©ÑAÕ¸Í½Å½ÉÞ¸Á5¹ÆZ¼Á¾xWXwq‰+0"<Á°¨â¢¤â‚üMTŽ8UK¾<á¨yÌX>–Ʊ¦þÌsî ‹qW\†·¥ ¼%åá¦ìÀu¥W7®hZpYӉQŸ\òéňïv ûâ¸C8?î ΍¿Œ3n§&<ĉIŸãØdGÈáo¡N¡~·:Gܧ¿ äøӊx0nîúâöøù¸11W&%atrF&Û0¬-Á­ 絜õóâŒ_Nù­ÇI¿~÷GýàHÀ) +øü^ø†?Ç` Š½STì!»Ç|†:ãlGæ˹0§§¦áä´›V„#ӝ84£ߛш3Û±æj웹 C³v`pÖöÌ>†Ý³‡10ûvÍù%¶¿ô™°å%Uè'›ŸÓ÷œ¯8V? â¨_LýHjóȹÂ{ß<µ3&â̬)8>'‡çÆàà¼$¼ör&†æçcp¾{T`÷‚: 5cgP'v­Ã¶ ~akð¡?øÐ|^è ¾.l +ù©°>ä/ÂڅªÐCք|“/˜÷¨û@܎Fcy¤GÑßñØ9¤Á¡ ¼2ƒ¡á؏]‹Ò±cq6¶-.À–ðRlw¡/Ü#ô†· û… ½Âºˆ]bOÄ~quÄi±;âŠØñ¾ØùX\ù/±=R}FÄÿø4”ÇõßåX¿–Lk¡§6c9ì£ ×b r&¶G/Ėú–$£W—…º|¬×Ù±VW.ôèj…Õ±ÍÂ*]§Ø¥[/vê¶Iº!©-ö„Ô;*·Äޕ›bÿ$7ÆþSjˆUÇ=cèžñ˜õÿ·;Þ3Ҙ?Ÿ’¨Ío¬ÉvÝ$ô/ŠÞ¸Ø°, +ëôX“n}ºô…Â+úRa¥Þ%´ë=¢Wß.¶ê×HÍ ›¥Æ„½²'á¨ìNQêô?Rjô”jýWrµ^•\ ÿEãkpŸùß4rýiӊ 2–)ô˜¬I¯~<Ö'¾€ž¤yèNGWJVRÑn0¡Í/´B³¡Bl4ԉC«ä6¬’ê ½ráUÅe8¬T.j* w4e†ß“(Nƒ*;STéë<Œ§ý¡æUڍ³fրög€±ô§Ó_±&k t§ú¡3m6:2BáÍС،&ãr4s±Hpb­±F¬66IUÆN¹Â¸Q.3îTJ3jJ2¾¯qoù؍5vãߕâ U~Jº*ٟóëDÚ2j^¶'í9¶1–MŒ¥‡5é2ŠèX®Ekæ 4g£Á Y·9µæl¡ÚlªÌ+Ä +s•XnöHNs‡\bZ§8LەbÓ~M¡éœOé¦Íô[«éKÕ¤*Ö,U&’5S•lä#æú5/åGòè±i763–µŒ¥+“w.Ö§Ù< 9Sá¶ÌG­%Õ¹ñ¨ÊMEe^–Pž—/8óìbIn…èÈuKŹmranbËݪX-û4y–3>ËuŸ˯Èš‹ªää¨ò–lUã'¬ù j^,à^°±hË71žnÆÓFÖȘÜyP“ÿ"\Ö¹¨´-B¹-΂d”,NJ‹`/(Š +œbAA­dµµHy¶Õ²ÅÖ¯dۆ4fÛiŸ,Û5ŸLÛÏ}2­ÓdZU%3_•³ÆÈS¥1î1׫Ô=W̽H;¾µXÇx:O#c©ã³ªÀåEþpÏFIñB8ì1°Ûõ(r¤£Ð‘-Ø6!ßQ"æÚ«Å{“d¶wÉYö>eyñ &£ø¤&½ø MšýCMZñMZ‘ª¤ªrúª4Æ;¬ùejŸ\ì¥ï³ó®A¼Œ©–ß+ùÛéáX¡EqÉ –Á挄Տü2r˲S–/d—ÙSY¥˜élŒÎN)ݹINuîVRœÇ5ÉÎ×5IÎ4‰¥Ÿ)I%ªœ´â)R’C•’ÉmÖ|„úGiÁJ%¬i"•¤„ß‹ÊkÅ$äUN¥jrª!Û¥ƒÉ•„,—Ë]]EBº«LHu¹ÅW»”äÚ é]ò²ª£r|Õ¨纯ÄUýUŽ«Tå¸ +UŠ+W¥ø²gÜ`í/”³*¸øì!mÄMœüVXEÏ] ˜kÇ#«ÎËݳáFz}Òêã‘êIEŠÇ„d‰žAï©–yZÅ8ÏZ1¶~‡´¤þ°SIŠªOŠrÿYŠªS¥¨ZUŠ®!ÕϸÂ\ÏR㻤ÏŽ@šH5ß5¼÷¹¬ ­IFJód$µLEbË<è[ð¬u ⽉ˆóf`©×‚X.ào¥ím¢¼ÝB„w«¸Ø{P ó‹¡Þ»bhë'bh‹*†6‘FU {ί'ê¹ÔZÏëa©'å|/¤¶¹™ú^@ß,í%¯ø#¦k&¢» jU8"W-EĪd„¯ÊÄ¢n+ºKÿÍu™G×|¦qüû»‰X²YĖ•,–$–›&ni‡©žÃTUk_Šp’ +"‚ˆ$ÉDäԒPJ‹ ÌÔ2‡ŒUcÌLU«ÆÑÚjj‰:Jû›Ï•˜:óÇGr#y¾Ïò¾Ïû<꒕¬È¬ …g³*°¬]FhÖI#tÞM#4Ó4B3`Ži M7-a° ­*tŠfpY Sa*ŒágCÑ~mŽÔw®·@Š^dQÔbOEäú*<7Ps#Ô)7Fayñ +Í믐¼Á +Ρ üÉ +̟¥ù¹jŸ_®vù;\yß)`ñÏj›cmAvÕ3yfó.°f ™øüN5`={e!ñ/–bò¥ˆ¥Rpqµ/ñR»?µ- T@i„Ú”ÆÊ¿4A~¥äkS>ö±jmŸ¦Vöùò¶ÛÕÒ¾U^ö#ò´_‘WÉOjYÌQËx?‹¾„Vv&g¦ó¨ùìžÙRÿ\)¡ý"ôKÑ/“Ê¥Ök›ÈËá%O‡¯<åî‡XµpØÔÜ1PÍoËmÝ$5q¤ÉÕQ ‹cäøXFåç²Tޕe­)× +SMÖ4PIŒ…¬Yh¦Àx>]B –I¶öϕRä)ˆ51 JjµIòØb‘Û¶2¶1 oc­†¯êžR P ¾†ÆRC¡k(b ÎWovÌm7á)˜ÄÊ +é ̉äzørjÀŸôE·§ý èo–ÚTKÞ;$÷]’++«>vöÛ½ Æûðc~ìǏZ†Z}-Í¥–b×b¼–jÀWüÎ#0ÿG±çièŽ%Ïo ûêFɺUê‚ëÁhú$µÜ/5?(Ÿ ÿGøÔ ~ŏcäã¸Ã0ü§é$~œb9E³¯ã¢×Qà:ꢮ¾‡_À|F^}ÝIÄ;l 5à×âwKÝö¡¦ÿaÉ M·ch’JV±ä0ÃøÌE:Û\:Ç¢tž%áB{é ôKøñuàñ¹Ìå¿L‘/¯—¾©…‹ðÌgds2yý¡4]Û!©ûòTò=AíOI.§õÎÁ?úH+‹˜X£¤«MXPÜ¥ëääËʆå»øq‡ù>gãA*K‡»ž×c¼þÀúzM#ßc©ï/ñv?Ž>º>Äé~Ûçá_zN­oá:p´tîÀp0©›JÉÉSjc² ˜ Ç&C’ÉÙ0¹ð&51I¶I1Í/àgÀ³ה_ã÷q0ބ10fÀXùP+` ¬‡-°öë6ПÙPŸàðOl°ùésÂà&\wî¼ò…V´†6=  ‚0’a&ÌÅ~¶žj ö‹±[†ÊZ=ÒìW«^»u_Ÿš:Rt½ûúž¿zÎmø®Àe§.Þü랍ø4æ¢+ÄÃkÄ4”xÆ “ˆF +)OÃþ<ì/Â~v—ë–VW%qmÒwÚ¡kÚ§ë:Gç6¥|"gÖ¿lä"\€óNš:u›ƒ[ãזÏjòDÑì‰æ+D1ˆ²¿ƒÎx4¦bº®j6ö³°Ÿƒýì–plVcwv·R…õ¹ø+—è4ñgý¨SX> ίu/`¶@Ûàhȉ+¸“ËÖÄ„f7rÞ}­!ø>wõ7%é,gãŒÒ¹¢YØÏÁn!öK¹¾ktœšÕvÚÈ>Ö <¹¤ƒº«Z¬€ÚÿäŘ® >üâ<ÖrÑ jr…sqQÐëAöKP_à ٤÷ùŸ4Ö*—3ZïzC·Çªljjm3S/`ÒRÁ _Z€-ö +¿N¸º§¯!Úë­ÝMúh§Ûoµ½Ùªn6\[›Óæ‰ÚÔbš6ºÏR•û\­wϑÃc™*=V©ÂcƒÊ=?ÐjÏCZéyF+¼n©Ôû©–{ó>¼@<¡½ÞiGK ¦†ÐþiùOó)r÷ÔN϶ªñ +ז–½´Ñ»ŸªZ½.G«¡ZÛz¤Ö´ž rŸ©Zå3]+}fk…ïÙ}—¨ÄÏ®b?‡Šüj´Ô¿Vþ§•ßæºrž(§­©EÏ hà!úפϣxzº ήA{ÛցgÕ¯™6ùúhˆ*ºkuÛx•µë/{ûÁ*é0LÅFkYljZÚ1I©Z˜©¼ å+'¨BÙÁ[´0x¯æŸÔ¼kÊ }¬ŒPº¤‡üÊÄ~©+OQéìˆfç×uø²6ÄPy ·V·WIH¤–…õRa§¾ZÒi ò:ÑâðáZ>NÙá‰Z‘¢ù³5/bæF*#r•Ò#7i‘{ŒYQǍԨ+ƌ¨GÆô(ÓHyNd7xòÏñ´‹gß{‰=Ê6ŸWvg¾"7Å*Œl£¼.aÊé£ìn ZЭ¿²ºÒÜ跔=Js¢'jvL’ÒbR53fž‘“g̈Ya¤ÄTïÅì2’c?5’b/ScSbM#ÑI̯\%î¿ ˜ñgûˌ\}¤2|)â©)ˆe÷Œn®E1>š¤¹=»*£—Ué½ú)­÷@Íì=D©Öáša§éÖ)šfn$[çIÖcªu¹‘huX&Åí°LŒ;by7ñqÀ´Œ‹3qÖFz›ÆWhD{ÿo¤ÍŒåýˆÏù ìqÌÚ½]•iõVúK4+>B© =5#Á¦”>4­Ï`%ۆ)É6ZSm“ŒDÛ{Æd[š1ѶИ`+²Œ³UXÆÚj,£m‡\FÙλŒ´Ý³Œ°™ ô1g$˜Æb>†þžùªÿå¹ÌãªÎ0þÞ{ KHe‰ KÃ"˜I&ËL2IfÂLB&Û$$C!² “"IT¤BR, ø@¥!µ(}¤Âc©ÐVª«V­Ëc] +B­ûÒÛ_Hê¿gî½3sÞïûÎ9÷|/>ƒ¶£Xî$–æEø êҐ®ºÅcU›8E5IsT¼@UÉ-wdªÒ‘« +G@åŽ2#èXa”:ÖŎ;ÌBG§YàØnæ;ö[yŽc–ßqÎò9.YK¶¹$¹_’môqgœìŽø.jÀõ]ÄÓL,k‰c ­a­c¸ªS®UUê +¥ÍTEÚ<•§'©,Ý© Ó£g¾Šœ¥F¡s¹Qà¬3òëL¿³Ýô¥w[¹éû,óq+Çù'+ÛyÑÊN·Í+¤ÙfNj?gÑ8žIËK+¼ÝMÍuñÜJ,«‰£†ÚT¥‡©ÒyÊ]̈QifœŠ3©È¦€;Kn¿òÝEFž»Âð¹k\÷m¦Ç½ÑÌvo³²Ü[™î£V†û¬år_°\™¶ÙGF¸ú9Æ±ÖlƒMÙԀxꉧ†º,'žr÷`•fE¨8;J…9SU3GK= ”çqÈïɔϛ«\o@^o¹‘ã­1²¼Mf¦gƒéò<`9={¬4ÏcVªçy+Å󱕒c›}¤fCV?§Ð8š+õÀ/žn¥-¿…xBÄRÆg±ÇT7\ù¹cå_-Ÿo–r}óäõ'Êãw*ÇïQ–?_nÐÈð¯0œþ#ͧ™âßb&ûw[Iþ^+ÑÚZìÿÈ\ìû¯¹x‰m&æàµÍä}$=é—î¥o…†%ô¹PF<…Üçó/o¸¼ù£•³t¢² ¦Ë]§Ì‚eRå +d)=àWZ X)å†#°ÚH +´˜‹›Í„À.sAà°x>0ã ¾7ã—Úf|>äÙæxŠü°–²hÃ×A,‡BðóeVVQ˜2Š#å*ŽRzÉT¥•ÌVjé|¥”&)¹Ô¥¤`®ƒ- +V(!x‹± ØlÌÞcÌ î4o2cƒ§ÌØÒ÷ÍؒïÌØbی-²Í¸"ۈ+´cèì/bOÒ~o€&ôj`×ù<÷–H™´ÄiåƒäX®¤Š1J¬˜¤E•Ó•P§…• ZJU|([óCùš +êæÐJņn3æ„ڍ١Y¡ƒÆÌÐ÷Œ•ß3–ÙÆÌòÊlã1tzJٓЂÞ¨‚Rî}eø¾eèWJ‹«ð>ÕC5oå(Í]¥›k¦(®æFÅÖÌӜU‰š½Ê¥WåjÖª"ͬ­ÒôÚFÅÔnÔ´ÚnM©= ÉµÏ(zÕۚ\óµ1¹Ú6&¯ègJ•m<ŠÆh‡ÛÊñ|PÁu<Ø´ôø¬ëüZé¦Õƒ4«>\3®Õô† Ši˜¦7ÎÑ´ÆxMmthJc–¢óuCÓ2MjªÓ„¦6ý¨i«¢šöi|ÓqkzCã¾Ôøz[Qk`µmDÕÙÆ#hl#ÇõËY‹°‚àçy&-ù)‹tS“4‹Ýsó!&áÍñEš²‹:ŸTK—Xܗ’.SÄË p™8.¦j–káaÖáãRº3нþ”AŽWŸeÜ4ûôހ·Rbc¥‡ð/¸L³>e~>g|…Aùƒ`Ïš›ÉfNìû€„mÄìáÜÞh5@ßõ8˜ +q ÙPË`%ÔÃ:Xí°¶ÁèÁ³>¢ïqßáB¿¡x_ë]}¥Ïô%ß~1À%øޅ·úü&¾ÒVø#â˜7B¸À%B£–ñ›¿™ñ70vãÞ¯ÏÕ¥ÿh§>Åg^Æ}~¢£”æ$%zEs÷ÿü`@û}xÎËWbCa„ADA ÌzÙè,E£LÿÖ +F¬Ó­eü;{ãv0-[˜žnrÛÅtí#¿ÃLÝq½®³úßþ•j¼Ähÿç8§¯ÄЧm>Gçuäælꖀž“iÏE£Pï0'o©šeX§×ˆã?Lýéåí…á¸0?gÊpj‘ÇÃJðê‹U˜^lÂÔb‡·àPx;†wã@xû#F°7b;&"öawÄQì\r㑗±#ò¶G~-QÅX´„MÿÇ7ÔÿšÏÌg«Ø÷¦Q;…O-ý¼ÆñSQóp2"G#q$*‡¢óq`i9ö-­ÆÄ2 v/kÂΘVŒÇø°#¶Ûc×akì6ÇíÆXÜŒ.#Ë/a8þ6Äÿë¾Ã`¢„þÇCj~Éòãc>1ï1½ŸÍŽÓÏÇ_¦—Cq‹±y,ö$È°31;VcÛÊJlYiÄæ$+6%90šìÁH²ÃÉA¬OÁPÊKL=ˆPêISßAŸì&ze?ÅZÙ#t§IÌ ›%UÂoWó9R2yÀ¹ÔWP›~Xža½ìJy;R¢±U–„±496®*Àpz9Ö§ë1´ÚŒÁÕv d¸Ìð¡?£}™ëѓ¹ݙûC—üMøä7Ð!ÿíY†'K‚Gþ=2%|Å'å>KŸËäL!×Ïrl/ýŒç°ç¢—Í™s1š‰ ò e¥c [‰àšô¯©DoŽ=9 èV8PxáWt£S9ˆåڕ{àQN£Uy^¸•ˆ–Ü g#÷?¡”ðÅ3¾¤Þm>óK,;&Y±ÆÍgßɸl`\á*cї›ŠµyÙäŸ_Î‚jø +Ìè(´Ã[Ø +OaZ ƒp«6Â¥Ú‡jJ4«Î »êš°©>ª‡ÂªzB$a-œ¥@ŸSïf÷Ïü4™(c¯CO#ô²Ž± 1.½…aèV-EWQ|řh/΃·D¶’*´–á.m„«Ô§ºÍê^4©‡aS¿$¬ê—EƒúŒ°¨¯³ú¾0©ÿ êÔÿu¥Ò3J$a"?¤ÞõJžE>ñ‡ÉN–Å›èiˆ^ú—µ¤«t!:ÔQð”%¢µ,îr\ÅpVhЬ©E“¦v6VíZÔk‡`Ñn&íAaÔ¾& Ú÷EöQ­ý½¨Öü‹H¢ºâ5咸OÍ«zà4KáI²½Š='=駛qñfܚ%pi—ÃQ)CSU6ìU…hԕêӣAgF½Þ³¾&}Fý ú­¢F@èõ§„Nÿž¨ÔßZýòO¡ÕIB[%‰Ê*%q—š—X'{Éæjîé¡}´ñ»‹¿›õá°UÇÀZ“Œ†šLXjó`®-…ÉP…:ƒFC#j -¨1tBo Ag•Æ}Bcr:#Ýƒ¬®•w¥#³K Vû5H÷æ·Að 5ЇäÀf$&±"p‰ëˆ|ÿwHìdÅꓰb† çÝ|—¨³• .â&7P[Ó³MÊó³÷`븪oRû#‘Ò‡äþ$3±2˜‹ÁR$uHYjA\¨±¡, íÅÒÐiD‡®"*ôcD¿AtŸ„¥½³ôH8ÅõMžEÒNÄLm]'{ϐÏé¿L—wXÕçÇ¿ *óÊpʐ%DqE¢ˆ×¸¨ /Bˆ«ÆE‰yj¢MlœµÆ`֓&­¶‰Ñ8ÒÖª16Mn?HõÏÃ}~ü~ï÷œóž÷=çô~ý¹’_¡¼ŠäY⦎%Þò( »)Dn¦(è/WS¢:˜ÆË`ʖ‹©@Φ%r2m”£é ìKÎʡ䶋–Ó|‹œ­2L—ÌhÂL˜cxöò,ö WŠžƒþ<ô‹$ßRÉk3`…\ÌÎr2»ËÑì#s ìÍ¡jgŽQ[ó ٙ“ekž,3ƛùÀ¼vsðZ+Ô*ŸPébË[¨åµ…OœÊï¤ÇΗú˜Ðgß +©S3`ä¼ÌVíjeSˌ[ۑCÕh€ê(Âuš:.–:».X¤n0g®<Êû̙+úË[¨F«_sa +¿SðyH1g`^.õ@×÷UÉsú«$§µ’Ýzß 4݁fp“'E—†g Ç +m=E¸ž‹­ž¤®'˜õ•°ÿ½Å{—xÿ€þÆÊK¸›Ñ4ÂbXÆ94sÐ퉮ïj©#š†M’C½dƒ;Œs¢‘ærÎ]ر;ö½Ø±;hŠ(|F‰u€l¨…]pšw¾år¦›ß‡ {é)ñ5Ò“‡Õœƒåä º½Ðõ݌>š4ÛïA³p…&ŸB‡á‚£4çÇhΏ{H¿c_N`G#I#ů‘KæÉuŠX4²`ã;ð1°'-ÍÌc³Ù®quÜë¸x-t»äÉžû%—CR[«Ö1Y~ւ÷à}8€³6Ò9‚ó4ã.ûHbÇUš(€Mö¦ém™&>ºv ~‹f³¿“ت¤×ÙâŽnÀÛäéc8!µ;ݪu.4@¬W¡ ®Á§ð9|ÉÐöé¹ú ù-ì¸M“ôÅçùyw¡t±{ñÞé>SÝý”½ƒûӆã˜#äÀIÉ? {çY÷r«¦Uë ø +nGL_ÃMÀ%݁{ց 0´=&&OVþۃA’ý…ÂcáÐYØp ¶²ÜdÒrƒ­Xw‚@ˆ€þ0ÆC̄9P ePË`•~ašûYõ̍;õ¦ÁÙ¼'ú€ óK=Ö=⭇­Ü¿Áð‰uޔœÀ±õ¯Õ_…8 £ l4rô”9÷ sîcìx„ÿƎiµþ© úž)ð>sæ]÷Žu› ~˯›|ù «| ×á\KÍ68€Ø´þµÚä Ýñ+’/û£—ˆýcÑHgýi¬?›µ ؂Ö.cÝ*üZÎÚk˜l7âùÒ£49ŠÖY}Äæ]ÅZ«æŸZ9ïÃéflAÿ‡›M¢ç‡O¡èÅ¢÷:#õWöäϚ¢ÏdÔÇØÑD<®²/W°ã2v\Ž Z«sÚÂ.ì$•ßæB§‰ˆ|¯“Dò*Vޅ£p¸Ù†gúO›Sª-±3à“7û„V8~$`ûP]dOÎ)•ã˜F֞Â\Ö.fÍ2ײ VG´žµ·r…ì×!ž¼…eˆØ~²dJVö¶²ç9Ã]¸Þ|äñÉ_|ñ#ht¢‘Èú£Y"f°¾Q±£;öcÇ^ìØ£jí"GßÔ&½A,¶“[Y¥6ÝM¨YÙü¿ê߶i9æl¾숗Xu—üèƒNöÒnÎÉNaý‰¬ŸÁúF½Ž[ȏÍ2‘ •dæ2"ñ­Ó62äP¹YËá]Án¯@õyžråßáÊÿ”«ö,ßåŠ9lk½’ÐtŧÎdX´"ÑIÀ‡Áh$¡14429ÓÑÈÓJ²æB²b‰–¢ü*_T*öc1‘­´¹­ +Û§*oC²{Æ´¯SöÎÃ1Êήڝ<ÛA ØÚÆß<8ù~Zg¢Õ¶ÑZÙf€VØ Õ²¶ÉZÚnœjÚMRuû©ªj?Sfû9ª´/Q…ýb•9Ôj¡Ã&-pÜ-“ãQ;]T‘ó-ºüԈçøŽ«¬ÉÒá‹>eo{gÊ)ÏÖQ~ÖÚh£AµN^Z椗0U¹Äi±áEUUn­E&h¡ë•ºerÍU±ë|Íw+W¡Ûr¸mз]Êw?¢<÷‹Êõ¸­Ÿ5«£¥n ký0¼I²!€vߙ‹òWÕ_ín/³›»*Ü}µ¨c°J;öU‰ç *ê4Xó;Ð<¯1*ðJÓ¯,å{ÏTž÷\åú,PŽOfú¬ÓŒÎoÈØù·šÖùœ¦v¹©¬®?)³«E™]žñ×ùïC)Ë!´°*mžU2÷aËÂ.mTêÓAE½5¯kæú†)ß7Vy~•ë7L9þɚå?^3º¥kz7£ŒÝò”P¬¬³2VkJà6¥Ò¤À3J ú»&=UjE©Ïø°7%ŸÖg¬‡¥a´z<+Ŗ¢žô7Äfn€³^ ôÔì Íê¢ÝûjzMë9XÙ=G(«çeöJSF¯,¥÷ÊÑäàB¥W(5x¥&„Ôk\ÈA yOcB®+%ä‰F‡XZ¶(.E²QÒ6XU´¥<+Ė|lÉ%69Ášì¦i!]55´‡2{‡+£wœÒû Ôä>Ã4)l”&†MPjX†&„Íиð /SJø +ŠØ¬äˆ%EœÒˆˆ¯à  †C˜E#à\ ç0–6–C9ñ,{rhÉa”ÖV™á®šá­É‘J‹ì­‰}£5¡ï 5D㢒46j¬R¢'kt´QÉÑù½@#b–jxÌF½³OCcNjHÌçð, Q-œ‰§½ƒ× À\ZãZ#mP¶¤GÙjR´‹Rc<5>Ö_ãbƒ5&.R)qñÕo’û%jd¿%ŧix|¶ãó4,Þ¤¡ñ5œðš^JØ£Nh`Â'ðPâ-ø?ªË<*ÊóŠÃ?we1 $€’n "Ê"ë° Ã2£,Š0QˆNHAAÔ(Š±ÖŒMªqµZ5qÁ4Õ¦‰M¢¡‰6mzš¦õĸÖ&©žÆš˜X§Ãüaç9óßÜß}ï½ïûÞï"ΡÓÉÔl‚åÐó’X?m‡ _fàK1ŸSÜU˜è£üÄ@Y’Æ(/i‚r’'+;Ù ³Á¤,ƒE&C‘2 2¦ÌUZJ£RSÚdHéPRÊ>%¦œRBÊNJOù·â %$»HrèíïÎTö#,…g¡–¿= 3ð§ +ùœb¬Üoe§Ȝ6R¦´pe¦E+#=IÆt£ÒÓs•jœªãLŒÕJ26(Á¸\ñÆMšœ±G±'qAÑÆ;ŠNw(¦‡4‡bS:Fë» Ö@‹QšU<—Cqóäñl6)c¨22ŸPzfÒL¡J5M”Á¯ä¬T%e™•˜U ó ř«4ÙlWŒy©¢Ì4ɼK‘æš`þnkB–C‘&Èìå0#ÑOa4Âé`…0eIFs¥f{Ȑ㣤œ@%æŽVBn„ârc59/Y±y™ŠÉ›¢è¼M²ÌÒDK½&XZaY§pË…YŽ)ÔÒ _+4Ï¡°\Èqh\¶CÌR,‡¨r(†)ŒJ¦æ¾5IVc’wU^56=VS¯¡5ËäYÓ!šýr«>—å>ç¾<ªò¬ìeëk…z˜¥P¦éÄíØ +)‚ilúŒu’Oýy-ðÔPû0yڇËÃ>ÆËÝ+7{ªÛó4È>]í5êo_¤¾öŸpðí‚S$œlþ7êSO7=Ï¡~°z&ûj¡Í"Èá9ÍFf3ûÍAŸñ(hú ÐŽ¬©ŸÜšÝ4 ÙK}ši~ši<š¹ü[¸dZ8ÐZØL-P kyÚág¼Ãຈ¡má ‹lêåyÖh‡*^/ƒ|ž3Xs"kžÄšCç£ß ù7IÚ%Ï%m’ú®,µ1ϵÑx­¤ÑXE#²Š‹¶ ¯C­ ÕN0Û1Ò¾¶ðÿC¼ËÙÆPØö"p8iFë™jòÀz§ñ™Íš õÔ î‡5JÁèúcÂ{¹ä±J¸†¦—Ðj}? ùÜ@ã·?6áÇfüè¥ à’éäp뤰;YT'†:×ñ¿½p†÷®óþ¾çpòzµÄyŸbF¬cIá¬7x…ä·ZòZ+¹oúw ½^B«mø±x¼BP\ûžáwŒíÝF³z‚w>…{¼ïpbGsÖØ ©ÃŜCÄ9‚ô…°V¿Mè¿(¹¡×gš»áU8¿€ƒ@xu˜æüˆ»ôšÍõq?NÒxœäâ;ÉAÓEqu‹®ÀO¾/øš÷Nj[9——±W’â<‘×F¡ëË^”òW]ZG€’¢Mg€_Á›p¯Þb x›˜œ%7ïÒ ŸÃó ,\~ÝÔgw-ÐîíÀ—»/“M·CO¿À½HªŒÄ9†‡¢;b?ùÿ%ú=š].­ßÀ;Àz‡¡ßÇpÁ9œ‰ÁAe€ôW•Kä/ðã +MÐÕ éõy"»±ˆÅujóúMžï©”5çàZåÁzƒÐõa»Ÿqi¾çÒûÈ¥ÁöÖgð7×`x®Àµža naÖ”»ÔÈw4Æ÷©ÑïÙ'?PŸü_‚×à\cÒ +žàázö§ â òa:̂¹`‡&h…6¦·5zÀ´õ=Ø}æ»o™­þÔx—$}£‹L™_éŽê6o÷pþ Û9oºÁ@èƒÁ ` DA +dcaª~P•º§:ì۱߄ýVì¶é_øñ“ß?™ÿÁ4zƒ"ºJ"¯¼Ë<}®ït K=|ÀYxËéC?çÜÛKWL|Y[0ëϚâÐ2¢cA£ûåدÂj¾ÀÏñãïøñ~|Ê´ù SèÙ¼™T?ÒQJæ zÒ9"ñ>–ßuqNÁ §ú?¾%wˆÅ—̺7‰Å5fÝ/”ŒN–þLN>V 1,Çv¶çb{%Ó¨ßáÇ;øñ[­¥|;Ñx…R>ÀêâçprWJU}ÑóÄs_ÖD¾ÂщÅ÷T½MNΨ@¿Æ7𣋼œÀãøñ:~ŏÃZ‰íu[±¿›Ê8¢}D|E¼› îBm'ô|î€í.85Égo‰ÿÁ¹ó-/Ö€Î(t"шÇZ:ös°_ˆíl—ñÙØ®Åæ|l6bs‰¶©ll¤2¶9=قÇlâÍdsŠ¡ç÷ýÛ®­öëè"GÙ'Ù#ûõ$:¡èD¡‘„Õ ìçb¿]P‚ýrìÏÆþ\l.`w,$ +ϓ‘µTÇV½À·W“UD²Ì® ª—£»âîr¼]æê9Ç÷Æ Ž]®€Ÿ;åA¬é1ôü°B†Ãñ9 ™(䲬h”°êr4*ѨÃf,ÖRþºÏãy ZDd²+ÉG#ºr‹ëæ"Çü›pvrÔ¾ÄÑ¿…+`³Üµ^Þè Gk4:‘èıŽT-“éT—iL\ç…ƒ±YÌn0Ë°/ÌÃ2,ÃÀ3,3˜±1ŒÙ ãÝÁ$¶Çv°c¥ëxKÒÊ­k7é’Vê´ª*«R¥¶R¤U~µ•ªV­¢.Q*µJ—Ûc;RۏîÌÝÎ{¿ûÝ÷;G:½šƒÒ r‚qéÌè+YâȦc¬n:ÃJÄFÜd)ò‹‘ï±°ùÌG}ÄüVu™ÿáWj폴ì~U¼®eï³Zr6Ôf_T=/ÄFð|Tg"S8½%›S[K8]ͱèŽlsrx[‡¶÷±²}ˆå˜½,ÅLr f…ØÄcŸe.vƒ™¸LÅÝg2î=&â> ÿ1ãñÆÿñ¾,Ðwvi9Tk¿¦í%ý?k‚5Õt2Y$Dq"nGâÓ9oæàŽr–j8à`!ÁE8ÑÃ\¢™ÄÓIãL&Í1‘´B(i±ä‹ìK¾ÎÞä{SHù9#©3œjü—õJ³–Cq'_vDœÕïSyʝªi%SKµ,'Çr %…pj6³iÅL§U1¹³ž‰­„Ò݌§÷2–±›ÑŒQöfL4-0`ØtžÝ™¯2˜y_æ» dþŒþ¬èË2žÐÿ˜LƒG²_d}>'.Èz¬i{Xû–dçU˜j™ÉŒf*3‘ýY&Æwå³/»œÑìöä4Ìi'ÛÃp®¡Ü ƒyûñç-0w”þ¼sôš_Ácþ=æoÑmþ)]ùƝoà6t=&Ïà»ezå²X✖ûãÚ.kߜ,ȔjÙ¯ZÆ͛ٗÏsü† J*¨fwa=þÂV|EnŠúè+¦·x Oñ=Å«t?‡»ä*%oÒ^òΒÓVòGa<ÁYü”we…ßй +ÖŪ˜×ÿIíW=£› Æf¸8–Ý%ÉøK³(-¤¿¬‚Þ²Z¼å<å.z*Öº•ýº"±tÇQޓDY‰Ò3%žRŠ=V +=xÚÉ÷z1{GÈõN’ã]a—÷92½ŸÁäýéÞï±ÓûkÒ=ŸÑc`ê~Ê5Ùî3ât¦ÅááRLrH»®[ú(þm $`H#Ï·‹\_!9¾ +²}uìÒàeù»1ùÉð³Ó¿Hšÿ4)þ«$ûï’è(~I¢ïï$ È=÷Ë5Š«ÒXë‚E±_Z#¢_t ½^ꓬ}ÒWt,RTÉŠ$k$S ‘Œ@:;¹¤ŠI T“h$9è")ØObp/ ÁyvO¼L\ðMb‚ß&&ð¾ø+±#r®ÃròCõ|Ç¥ûÄ ÐpÒ!Ò®‘¶Zjä”öBêØVCq$„’…‰øY”ª!6ÔBL¨‡í¡a¢CSl a‹‚Tdè¡o1þñ'"Çää÷lg¥qHL‰ Ý¢Õ§9(íJi+"åJ_±1uBp:’ع¢Ã D…SÙÎbs¸€ˆ°…Ma}Ôa½Ü°nËBywîšx f•kf?T#”ƒ›‘“œVJÙ­ïaH=AÛaÑ+\úß8¢9°JöI_ñÈ4)³ÒŸ‡ØÅMD”ùZ‘áY‘ÙXI׃(ORS_US[ÕǶª\µª[UÎ\=%®êø=«ð¶¢@vP5,O8"Y=ç¨Ô%]Ú6ë™mzæ²I0ÏH_º)K¯¸¸ý0l>.³wR¹ò¤ ×)ÕñŒŒÆZ†šL®-vëj°ëú¨Ö5ë!¡‹Ö/êøçÅC«pøÌ'ºV5œ4X–Ö„†,(zõÛ©g®›Ö Cþ¢ô¥›|Dú' z "ž•þ9ñü&5x¾óªãÅZpTÇ%Õñ’ü -vz'—5Ñ7ô` BïcㆎSç} óÿ&TÃyéiê0(:5Ö :½ò H×tRúëw¢ÎK÷’¸Âc£©ÿ)¯j<®)ß^×x¼¦÷rSïå–긭…÷ŽšßMìÛz°Û¼[¯ˆ¯è9ø›ªá5ƒYi…Gcݲª9 S OkþI7é‚Þýe½.•¹Ö5âÎӍB ²í2â‹“{2å÷ceˆù×eõyÆñ¯(”K–kÁ]XXXv]`9DPEEE-â}Ö3±ÑªÕ68ƨÑǚ&5UcըʹMššúG϶&iLšLâ9šl?“qòÇg~¿eÙçû}Ÿ÷yG¯ã£ YµÑÆ&×Fa·‘ÔVÒÊ[Oó?Ÿr‰§&û4ݑ ©CÊƹšäߢÑíÏû½Ô©Õ~á?­pÞÒª·à¼ 'ºK§ÈÉi.Äg¹¾Ëè]¼ól穋 Lè…hƒ¿óÝ·àS cÊüº)+¥·úC7`?ú¯vj¾ Çá$üÎur.Â{ðgxþ—hV.37Ÿ«¬•kz×ÙànPÜ7ÖI7ÉÅMº©›Ôæ;*ßD2f;y6ñUÄ+Ô6ýŽ¶«Só|§Î€}ý.¥¥ÂU¸„¤•’XzºM|;Ôé]jôsrŸEø€5ò‚zH]< ðƒ›t9} ô†¾Ð"Á vð@ Œ‚Z˜3a,ÒtSé|ÑÙ=¤»¯t—‚ùŽ‰û–ä}Mù•>¥Ó|¤Ûü¢«ð\„sOzÞîOúÞü BÁVȆB}¯24F£QG·Ö@ü™úÿÃǗøø‚û9 ç3ºÏÿЕþ‹b½Aá\ÕRu…”Ý!u>}³pŽ?ñ Ÿà^0zÝ£×½C.¾¡ÇüRCÐ('~nâã>®Ð_~¬fb/Ô%||ˆ÷µ¦î%Æù +Óx½¿âä6§Oïtò´Âk?ñÀÎÅøüS n)ŒqGŠ>¡ÇüH^òWBéÔŸðqçèsϨ‘سuŠîõÝçÛø8¦Mhl§”÷‘‰6´Îêu¢½F¡ô*üöÁÞ§<°k1N161´‚){:&Ê2lâÖQ|¼‰#ª&öxÆÇ!MgÄM:ˆäc¿Ö ñw’ƒÚÅ/wõEªcj/ÀvØÏwz¸×YΗ:—ÛIrq”\¡.+ vâ»Ù* +¨¸aڃÝøØIîÐ$bNgkbw%[éz\´h3n6i#‘7P›ë©ÍçP]ßIûû4ou.íw:·ö­h?¹ØK.viþðnEÃAü\âñG{4•XK¼IěNšõ¬–°RÖj5û*"¬ â/Èärfu)«f)ºOóUû’ïÊØáp—Ž-ql'¿eüZ!Œ#š1˜Ñ°¡‘ÉŒçi >Vác%>VåÌË2æe ëe‘摍šÏ¯æil¦JfSQM¬¤Ÿ£û4×9öαͷÂháóf¶þ xú%{ÆZ1žp"Æ¡“„ï4-¦6²o,P¥š« +4jИ€ÆTÍâmnq<ÌMe>¨¢Éì“ô_x ¾ù­ýÇÌËy-°÷5Å+8Þ{wÑÒn}W0z‘h%¨¹KŠšºdhVW—fvËWc·!šÞ½LÓºRƒß8Mñ›¬I~³Tßc¡&ôX«ºž[UÛs¯Æõ<¢1=/ª¦÷gªñ¤jßjàb(GÇˋlía5ï‹Ã¸öphÆßì?Íî Y½CÔè­iþf5ô±iJ_§&õÍU}ßM (Q]ÀH¨Ñ¸€‰8C5 T¸FU[U¸Wo¨<ð=ú¾ߏœ2pôFqˆæZ#-á9‡Ï3#¹þágjõҔŸ©>(B‚ŒlQmpºÆöË֘~Õô+Öè~eªê_¥ÊþãUÑšÊCæª,d¥†‡lÖ°ÝÚª!¡Tú¹ŠÃ~ï帧ýêÃq¿æÁ >Oáïõø©ÃËø𮪠И°U‡Ekt¸I£"©2¡‘9*P J4<²B¥‘cUÂåshäl–«Ðð+v*ßpX^Ã9y¢n)/ê1ON"Cm \e8æŸ3‘³Ô ¼OàoãðSƒ—Ñx©Šê£Ê¨~*ŽÔˆèx ±¨4&]Ãb³44Ö£!qÅ*Ž¡Â¸jÄÕ+ß8K^ãå×+ǸC.ã!eǟQVü¿áp;8„æ6Žøµ\E@#ÔÃØ$´ù®#ñRßS¥ñA*‰×ЄX4«h MlÊQ¾©P^S©òÌUÊ5×Émn”˼HY‰ëäLÜ.G"»\âi¥'ބ‡²›}OÈ0ùt½­É\{­ÔLå8žg5G~/ÃK)^†&vWQb€ +’B48)J^K‚<–åYìÊMv)'9_®äe§T(3¥VΔiÊH™¯ô”g”fÝ&›õ ¬ÖSJ±^ãù@ÖŸ%w°½Mè.³Ñï¥rdž±PÉç2(áûbü ¯µò¬ÁÊ4@n›Q.[’²l©ÊL͔3Õ#Gj±2R˕Nc’–Ö [Ú\YÓÖ(9íyYÒ(1í„ÌiWà¾S}JjÇæÓntÖsõ\œN-Ú©¨†r>—@ßåã)—§;½·²Òƒ”i“Ó£Œ “ìV¥gd(͑£TG¡9ÊduÔ(Ù9Yg³«drþF ÎýŠwþAFçÇ2:î)ÞáSBØ}ځγ´$óô:PË´†ó^ ùàæû,žgÙ3•–Õ_©YÙ²â5(Û¢”ìt%ggËâÊW’k˜Ì®*™\õJp5Éèf‡uoQŒûeE¹Ëຬ(×]Egûž“åS ±Wg²ђL†1P%P¹àÌæ¾é’RÝ]eÍé£äÜ`Yr#””+sžY¦<›æ9•àÉS¼gˆâ<ŠõÔ)Ú;Sï2Ez7+Âû;…y*ÔsIažïžçSDn[ÐXŽÆ,4&rý­‚áP ^pVÅæ‘,´oæÁ½4° Pñ!2W˜ ØÂdÅÚU薡¨P‘E#Q4NáE +-Z¢þEÿ'»Ìƒ¢>Ï8þdY–]p9d¡j F¼¸äÞEv À‚Ç®" «!ˆfRÏzD§1j5Œ6É$ñHӚ£‰1‰ZsØLµ5‡GÚ´4u¬Svœ´Ù~·íLúLJ=øíó}žç}Þ÷}ž­J,}Z¶Ò—e-=/kÉMيé\!iZP[O»ÑhÍgÀ€J(†<ÈE{,Ú#‹é»K¥!å‘ʨ4+ÝiSš3E©ÎL¥8³”ì#»+W]EJr¹dsÕËêZ W—,®ÍŠwýXf×Q™\gç¼.s%kÅ=~€FG!ç":õP eP“idzÑUFüè3ª8ª¤dwŒ’ ‹$ٌ4Y!J0FÈbŒW¼1Uñ5劫©‘©Æ§ØšvÅëe<¡HãyEgé¹ +_+ÊTtuP«ÐX\Â~ ÆZpA ŸóxÍA{ ÚÃ]è36:º~û°Ô0h.CM& l–XÑo‹–¶Óˆî`]~„»ñ£‡‹®‡5顸{ô Ù½ ¨‰]¿à¹k4NÁ>æ ébrK $ÏßéB]Ë)f:[`ììk¸i8`o¸g‰¤gÉÉ~rr€µ9H}¦;Â¥{„ÃïEv‘Ã$ðÐø9ÏP™,zé)YªJ\œBÌcÈóÐUì?t-ij=¬¹7¬³†çáø¼L0­cQÒqÖæ-öË)ü8Å¥|Šú<ÉBŸ$À$ïÄ!`=Þº!½ùÜÄ\DÌÙÄ|ÿf)x­»ÑR÷†æOàhXãux3<Òª_Â;ðœ L çY›ðãcöÊ'¬ÉE¸K÷e +é2A]ÁؕKpSåë9 Èõ(bΠljÏP!ݟÂ+aÍp:¬ñ+ø5œ ‡ÂÇpH¯>¶?ctÍ$Ý`]¾¤9¼ÉÅs‹Mx›B»à@w~DŽ ‘q`… +£a2”B5ÔÁXX¦±Q¾f“ÜeÂû…z‡¢¹E¡|©^&ª—õW½ÍTó¹þÂ_ð‹?ÃxNÂá™÷D„ýH„ x&@“Q³©G·Õ ¯ðãoLNיë®1É]e +ú?>Ǐ?±Y>c2ý”ºDÑ|„ÊoIÖ9Ýd¦ ê8Çá8ú>¨//w•@<)Ä3½Ñ̤‰£ûNìL® ú?>ďß0՝ãÐú?ÎâÇ{Ìwg˜RO³yNé9Êæ%¼x‡%½ªcdí5^…à ìÿ–œ\ä®ñ˜õ{%‡ƒ¼e¡3)Ø/&³.lØ®ÇöllÏÃn应Ìw±E¾ÏVوÆv¶Ï“:Äß^ž<@ÁìG!¤¹ž†½Ðöá¸.§óð®b(÷Ê?ÁhŒDcy›Ší2ìĶÛuDڄ]?Sm+Ù_Êqхò*ì?J&v±µ÷ñ÷%ªä}í Â(nóCØ +ÿDó:\êÓfk÷m÷tÌä*tìÓ3zßs¨¶Þ7ò]ÿ›/µøRk3É°Z嶥jºm°\‰ÃåL£Ê¤ïª"iªÊ’ŠUšäTÉÀZM8K…[T`ïTž}¦Øwj’ý9M´¿®ûEå$ßQnr°‰vÎJôˤþ“®ÙùÐ3i“ ¾¯Æ—éøR•-g²E)v•¥8Tš:LÅ©#5-u¼ŠÒ&©0­PùiåÊäєA^MÔ¬‰éíÊI_­ éە¾OãÒ_ÓØô ë¸ÅkÏ÷x +­G‡Ò‚ÒŠ.¢ œ õ`ð¹Šï+ñ­œÜ”9"Tâ0kš#Q…i*È¢¼Ìáú7Ûeõy†ñG (—‚A–uY`wÙ]`e…]•]6ˆ¬xâM0žxD£†â ‰Æh´ä›hÔ¦:±­©M“š4¦‰=Ò$ÅΤÓvÚI›ÔÛ´¶;³ýÿ^3æ7{ðß÷y¿÷{¿ã©Íwi¬©J>S¼¦ªMMª,˜)OÁ"•tÊ]Ð-§ù)•šËn~]6óÇp¢²Då€o ³ã}=׿%؃¹Ð +M|žÌ÷!ò©§.ãÀoNP­9M¾1#U3&_Õ«ª,UVÈSèSEᕆ嶶Êi] ‡u¥ìÖ.•Xw«ÈzH…ÖÈb=·x•µpgÐيælA»S¡‘Ï!®ƒãùŸŸ|Æòœ·(^UEÃUYœ©Šâ\•—ŒQY‰Mî’29m^•ÚÆÉa›,›-¢û<ٗ«Ð¾Yû.™íe²¿ª|û9¸)“-ª0—pv Óæ*½ˆ-˜M0 &ð]Ôðÿ*¨pĪ̑,Wiºœ¥Ù*-5Éî,’ÍéT‰³RÅ®:¹&ªÐ5UW›Ìî¥2¹7j´{§òÜ/h”û¤²Ý*Ûu]9®¨rƒìFc3×Îe.æKFB€ï|P eàä;GY¢låi*.ÏRQyž¬VØe©(—ÙãS§^&O“F{f)×Ó¡Q•”]ù¸FV>¯LÏ+áy®ñ>ª¬Š¨F–GµƒØˆ½¤¯ÍÔÆ󾪡©„«©µ*^–ꙫ3Tà͑É[ |o±F׸”[S­Q5ã”SÓ¨û|3”åkW¦o2|ەîÛ¯4ß ¯ù\UZ ·FoTéÕQ=Füµh.&þ ¸Bà‡ð€³ +}/Þ«P06F£k“”[—¦–²ýyºÏoÑH¿CY2uÊLRz`šÒ •X£ámJ<«¤Àq%Î(ÑYIþ{J®‹*¥6ª-h¬¬–棁˜µPe`GÛZ‹>Ö-oþcB¼2ƒ)Êf(=˜ &¥…Š•rkxȧ”PPÉ¡f%…æ*!´BCC݊íS\ð¨b‚o+6ø¸«¸znŽ¢ÚŒ5]ŠÆ®ÞÍ0Pp¢]Œ¶›’W>ÖmĤX¥6&*%œªäp¦’¹J[4,ìÐÐp¥¾(.ܨ˜0/¼6Þ&|„fÃ,4b¹96Dx¨Ž5‰ÆŒ@=ïë Ü|¶¡mA{ôDô'£–R›b”45AC[Rá@‰pÀDØT#EƒMaP’†Ÿ˜†¯‰<¨Æ0‚·iáÖÔBS£¬Bcþþ“a<Ÿ}PÁ{{˜$å7 eÌhÆ6©uˆâgrјÅÁ?›v6ʜœÁM¾¥ncÒښ  0“mÛx¯9c8ûü™ßGXÂøfØHê¨â½“1[sþ)»ýVô)mâ)nœql( Ò".‹É£=‹ƒžÃ¥ƒM¾ƒÅÞÁ$w¨c:<_åÿO&µý¿¹ä°(ª…è´Ó§ ãõñê&ý⩒iúXÕ tSæKÃ(kÌèRˆpÀp [Áeg%yt2'«9d×r¸¬cNÖõ/8&s-Å[»Ö³ïŒäjÌi'7ùUÑÚÐjá±ÆëçÕC­m¤^0}ƛŽnr‡¿ ]¬"W4yØÃ&걙zt‘G7õØB=ôÆV6à­,ê­Ô¢‡öðãží\¹1oÁÀvÁaM]QÍD¯™:×óêåÑR¦o ig3Þtt“:¥Ø~͍Ð[`+<„äªÆ(fð"ú$ý±‡<ö‘G/r/~/ «—~½°—[óÞ׸¸q›Þ}p±Ô¹ÝZjí^LRçZ(ÝD–TL¿æ£†ˋkòàś©åò?x§Õ0ÒAjrˆ¹ùfªô-ò8FcNŽÑÜGgñÝZ.Ïxé;\ qS‡Y‡¸S¢;žZ{–Ó«¥\ê›ÞÍøûÇù„¡Ù¯·¿_XâbS«ã@H Ø Ax^ç‚þ—ÑÓäqš÷4Ý[4ُz“õq +qê]øüC“˜&é9³©‡õÏx“Ðò¬1¶~Íc†ÎIÝ2è7e§á8c•~³ö!|D¿^ K¬ÙKŒ—Xð}4YÔ×+]$ØÅ>¸£À#œI̯e'{5N¡®±‡1¾bh¾ofì=Cc@~ áW†ad 0®ŸÁÉã*órÞ¸ÎžqƒMæ&µ¸ÉäÞ:$Ýfϼýɀç$`8dA>Ø ÆA´Îd,Á-­Ô=œÏßqBÃÝÅ~‰#¼M“ÜÀµ]Å[}®wuŸùO|ʯ~gá ¼ ¯Árøýy¤AXÀ…–zýEaÝÁ±Ü «äñNí +në2.ïSÎïY4¿£y­½”åy] ˜çõC4ÏëÝbš¢ú9¼ehŸ€ãÿ'‡{øÌ»Ja,#tZ\S ZŒ£–ø!}‚ŸêÃ5}Lá°Îâº>ÀU¾ÇÆñ3òø õxG;h“^Úåms·{†V½¬ï3šï¡ò]8 +‡áÀåÀJe|âIé·†NSÆ4hTÉO[„ˆ}?±#ĞIìy´êbZg)±Wã*7êeõÐÆ»ôïj‡¨ÅAªr€™zÁÐ}ž†}FwûÛúŒ–ㄧ ShÇäžGîV4\Ô­šØ~b‡ˆ&öTbÏ n•_Äò}Ø«õ ýÑ«mÄŠ¿ÚM-vé§,õϵÅ'`| …/>g,³“Æ’8B-^T*ñG²™ˆ_L|7¹{Ù¢üÄ»‘m«™˜Ó‰9‡˜‹Ø:—w [i³ò¸ºÉ¨‹ åFµ™™Ü¤¿ò`< WÐ;k,÷—áExö²NžT2yg?‡øfâۈ_F¥½tŸŸøAâ7 +ñZ™…9#‹9N–³Z֓I:Y'«¨Ö +ª¹\ïÓ9×yþåÔØv÷Û2»È?œø™ÄÏ#¾…Èâ—ßKÕýIJBÐh&þtª0—Uûjg´‹ÁBF5ŸÎ׏éžËp¢ÿ¦Ûù6ÇðþX¶f¶ûŽŸÍƱ¸–ZtR‹•ú'ÓeÛæ]Æñoâæ¶;v.çpì8qœÄNlçpšØ9쎛&MÓôN¶v-m³vëJWšrT+[§v êh5­´¬[‘@ÝQZXA\š¦1& + þà‚ +!:Ì'©‘øã£×ïë÷ý}Ÿßù<_+ñ–£Qˌ7 ÑŠFQ4âìÔ$íMÁ,«cŽ]³O›‰x½™aö¦YEVWòÏá^e¾Nº{‰Ô{®ˆ´JÚ;ÂõQÒÎ>žï!®ÝÊctMèØè‡:^FݏNÅtúÑf6R´;ÍI¶ha†Ó:fmœÑM²‚ÇØE£¬¼QÝÓÚ£^C÷"Çú)RîQX€Ý¯s<ÛÎÛ +²µuM!}*F«jTêÑò¡ÓÆ tj"«Wë²5ž=¦dö¤Æ²7kÄ𰆠7,jÈpV†Ëê7ÜPÌðE×,+šs_ÑÜ´bð%4—J˜{JÂCvJ.ØÁïYžm\)W‰eʘ£©£&ó¬šÈ+W*ß©d~ƒÆ +Z4ZÔHAD‰Â˜â…Ã*œÐ@#S4¯hтúŠŽk­ñŒ"ÆËê6ÞP§ñø“:MAZ]Æ´® wšRðIJãýôfaŠû žó’X’æ<™Ì1ٔ097»4dnҀ9 ~s§bÅ}ŠÇÕkIi­eF˜º, ê°WÈrFAËeµY¾*¿å]ù­²´YÒzÿéõðJ9ZMÙ `÷£<ñĉeȖ­Á’" X-Š•”«¯¤V½¶­µµ(b ©ÛÖ£.û€:ìc +Û7(hß¡öÒ} +”Ské³j.½¤¦Ò7ä-}G¥Ë\Óܓá<:ŸBó %àC¤ØYXcÜÇ)Oø/Æ;Qbé-ÏSO™Y‘r»ºÊ«ÔYáV¸¢I¡Š6+»Ô^U rD~ǤZ[ÕìØ«&ÇÇÕèxFNjr;^—Ëñ¶êäúîɊpãhî§ìÚáƒÀ8$¸ï‡¾:jâ‰0.ÕkÔQmR¨ºDí5j«q*PÓ m«ZjÃj®í•Ï—×9¡FçfyœÈí|BuÎÏÊé|A5ÎWUå| þqO…PËٍÆQ4÷` ¶z°=”^£0Èï>žE “ÿü×^—¥€«P­.‹Z\¥jvW«É]/¯Û§Æúv5ÔGT_?(·g\.Ï&9=«Æó¸ªÃA6Á2Þ¡3|43 »#7ó96ÕÚ4Uëô_ø.½Ê4&ab1æðÛ¸zésV•£W6t‹Ñ-š”ri’bAÚL±³…"c+Ƕ•DObÛIò™cNæ9TæYPs46LJs;á0ÿc`w^ã@Æn¿ËwéUf 5…Vœ1!®¾aÉ5&9°f6¦ÔŒná&<àV´·Ã<»ˆcw.‡,㱗8öÇî‡ÿ‡Éº@c ³Ëلnîތæc+Zð$_-xI¸ð™L|Š1y†¹y–uz–8–ˆc‰}²Äæ:Ç`?G£giäÌs®×yïǼÿOéé´&èï ºôÙ·=0Ïþۃ>º9g4Od´NÁi8“)À—à<|.[O—“+Äq•8®‘ô¯±O^a¿ÌX\¥á«üÅ«¼ÃšøÎîRZ#Œu}öÓgã\Æøš¢"Ó¿Ó½ç3Æã0¥”¨+FHØa¾˜“Wá øÅðMÖê›Äq›Ä›Ã÷MÝ7èä-:uqóïýSu_ýÌqp?ûaª`ûÓßÜә>^Èh^͐ëÿӎ; çsô͌Iû.¼•1ŒïÂÖêûœï³_Ê^ý “}‡þùC~wõÞ=u³e|Šš“’•­“>£ûrÆô½,!݆ïÀŠ!yûÿtVLâX1KÀ/áWð[ø–»ì•eÓ2c±Ì¦Z^äً@'î~°êyyð_¦Ë=¶Í« ãOÒ8Çv?;NDZãØñ%‰Än;7çžzI›¤m’vݺ6[E‹Öª]ÛÑ ½±B«ªÒ(° Ê À*•kÇT.ÓØT`ã@“Æ`—¢mŒ–2¶™ŸsQôS>þü¼ïwÎ{Îy+8À!h…n† Xëõ‹ó_8žwp@7)Ö8£¿ã2ßÂ}¾ÁÄ]cÂ^eàþ̽¤?èøÌ«üò +<߅oÃ7á9ü‡â|N¨ƒFb-C¡OoãcÞÀ¹\#Wp9/ã|^Âu½È¹Š|Ž<~K¿¡hM‘^Ñ#8Ìï0lO1|ÕeÔ.åc¾_ú¿ރwà&¼©2â؉ãÖ_ð3/ã©^P'ú=‹Cú%îéiœÎ/pZOà¾~†»Œ|œÍâ1òø!Åü} +ù"“zARBéLÎy½»û,|>ŸÎçðOø°séyxŸù4cñ$cñsyy‡0åÖÊ;¤ÐîG{í ´W¡=‡öíhϳ<¶â*wònûY6e6N“ÅY–ìâ]adÞZˆyNÀÇá8°Kð΋eôT¾¼/·df©¼… }?åedÛÐNëaÆãóA{í)tgÙ"Ö£=¯Säq’y9Á¦ò ¢Ü¯3ú +Ç¥èOÌTnƒðaدïwð“ü’ûj~ùŸ‘ m+ÕåÐ'ñº§`¹6¡@;vía´³hO²…Íè0y$ÌË>íf{;¢{ùÕn2¿‡ÅµSÏ°ÝހÜÛa<—_֜êúB~Ëc7EÿE]ÁëÆëÂëTúÍÚK÷2/{¨Ó]B?‹æJŽ5h®g¥ÜIÛ8Zö±rŽs̜áÎy²û)«éuþçþË&x"¿<”ߏ参½ ǃ‰Ü-hÛQtýú1ôè§Ðï£"‡ˆ‘Eo’•2K•n B>@6»X=Gµ–‘œ£Rf©Öf}†•6CìÙ<ßËo»'óGÛôÂqÈ։JúeäkC¿}7ǶŸaŽð1’¬Œ1úˆ1ŒÞ-ŒÄ4+fÕ:O¥l#«¬¢¨à‡©ž <ñ+xr ŒÃù¶dŽ™û8òö”rD–.¶w-¶ +·2k‹9ês†9YÃÞµšÚXEN³f'Ù;VR+¨ ÖË8WYž\N¦cÔço5ÌÌRÁTù#ß¯× Çõ"g‰ùÛé~Žþm0ëa–{«i ¦Égª°”XVÔÄqÇÇ;‰ÓHœV"·«›ä/‹î4­gt6«—ù覲º¨ð4«+ÅúèdgëdGè$~ +>K¼c´@» ZûbK¶†ëIç~–ï—›—hy‰Y£E6Vh¨°Fƒ…~ , )³¤Y}E õ¥ÔS”Q·iT]¦I¥LkÕiºSíÅ;•,>ªDñƒj+>§VÓ%µ˜®ª¥øºâ%9µÀib"î6Ž·NÞ&!Ëç½ßË€µXf‹2e†z˪Ôc®U—9 ´9ªTy‹:Ë;ÔQÞ£eåÃJZV¨Í2§V˼â–j¶Q“åAE-ç±\RÈrU!ëu…­9Eàqös íèmo«hnáÿ0ôÓ*÷ò]7ÏtÙ Ôµ´Ti›U)›C¶jµÛꔴ…”XSÛÒ¤ZnÅiþcƄšŒYEy…j0Ž*h|JõÆ×TgüX>ãEùìÿà:'?'Ænâ݅=XKÛ³’ö|”ÿÐý49u_;Ï-s)é(WÂa¨ÕQ©¸£V±Š€š+ÕTѦhEJg¿Âάœkpn”¿r»ê*Ë[yZžÊsrW^Ruå pSngN5pñwoc-u@[>CÐ )¶V­äÓB.1W©š«ljtU(êr+RíW¨:¬†ê¸‚Õí +¸ûäÇøÜ«äuo§æn¹kÊUsJ•5_–Óý#9ÜÏ«Â}ƒëœ*«s:„þÝÄ»v|ÚOýA?tñ¹´bq¾o&ŸFò‰xL +y,j¨µ+P[¥úZ¯üÞ ê¼Mòy“ªõuËã‘Û7)—ï6Uù>(gÝ9|'e÷="Ã÷Ù|¿×Rßuޜìpý-ĺ•V|e€:„^è„$÷Z ‰œ"ÐÀs¡ü~³|õKå­wª¶¾Fž@½Üˆª­rÒª Êd%×ÉÜ"#¸O¶à Yƒ_”%xQåÁgTxS–J}NBw3ñæhù&hÅ¡Ú¡•{Í…ðƒ—ûžP‰Üa«\a»ªÂ.UF|rFBªˆÄäˆtÈí——-:'kt³,Ñ=2GïWYô!•D.ȹ¢âÈ5•„ßWi8§{ˆ¿ Ý5سl„y€× ˆCcˆ~àå;7­zUS‘œÍårÄ ÙcN1d‹5ÊOÊïQy|Læøj•Æ7©8¾SEñc*ŒÓüÇhŠct ±×UÐü® +›9?Ñހöڣس^è€V>7C„ï‚Pǵ§Irag+Z +e´•Ê–°ÊšpȒp©œÂ1“xi²E%ɔL˜Æ%ÉI$1ILY’Ó(‰ IpB'žÄP½ø¬¶œ¶oÚ+h{Ñï‚$×qhä~ü\×r߅uc ÊHÊÖ^"sÊ¢’”!SÊ©%) +S jŠ¤ñVé `Óø«ôVà4NaRRRlœÖäÐIّÓ]hÏ Å†d “ë6hŽ3/÷«ø/¤LH/ÝS/9ôätï5þH’ÐÎu ÷‘i࿏{îvâw¿ Ø#™±±¦ÛA<ÌÊ0úˆsqsc,Ƹ1’|Írl7ßãmF1f#—ùÍ+ð>¿Ïiú<>]äsœ÷ óßÏçš4ñy%ƒ¸Ö©lH*åP_ŽŸËràsÀN0+8t&ÙܧØH¦(²)^bª˜)<Þäv ;[‰i[A×:A=Aã8Þm9d E¼–¬êùìA¢²Ÿøĵ·$+"ùo¦Ë<8ÊúŒãߐ;ÙݼÙl’Ýdw³»Ù쒓¡!¹ SAn +Š Gñ@e" +ÅJG‡CÀ)ãØ)R¨ÖZ§ÌСPflÇik©RA Te¬jÙ~ÞìÛNÿøξ×>ßç÷¿ßóe`À.˜ÉÑ†³ñ£?:ñ£›œô˜…ÖMðº'òх˜í¢.;qÄö+ü\̎©•õ ð 'Îü†)'/aÌåï¼™S‰}«É 0ÇPc7ñ!gÎ †Œyø±?QK9d–’“%Ö .ÁéÅó5±ˆ‰u!Óóüù}ñ0ókl‚¯žõVë’ÐO)å²^ތ6)±®“`Š{`©5ô=Â0¶‚úXI}¬ÆuæaÌÆÞK}ö’Ðu\‹ÓkWr@nãzcÕy¾GY<ÓD^%ÎÃù-ćiô ë5àM‡7áa‹ó»&X90ìÆOsðÝ6‚§Á&jä³>괟d+ÁV곟Xl!y}K؟“6Sϟ’žû’!ˆs=¼U|R<‹¤¹ð/²Öhr®뭁H(!0° XBŒÎqaðCð*5²?Ò+8pÐlûIì>’··—÷|ôê ¾ýLÚ}_cˆuM;9`ͅÄ9›ø¦¯°x7Zœ}—Éóò€ÂØk å-Ǹ(dD\,£FNàÇÛø?#'')ò3qË¥·ú¥£|xäßþCul¥åó©b³Šú3×»ÉZ§¹>¶W„]œËäyÃD&ÏQp°$½ ÞU\0±!V¥sÔÈ%êãµq‘ú¼@ÒϓÜsÏ ,QTg~)¾®!Ä»î<òjgÍ Û¬˜š¢çÅÉ13 BMž÷[ ’IéŒÉ>—ÀïÁÁeðWð9ñ¸IÏÞàнÁFsÆºFA}ÉpåC&ký’@&0@>‚r0Œ€Öuô-ys%ô ÊñkTåm’÷År‹Þ YWIδÕeý·þ‰{1܏é-S׀Cà¿üìXØ5‘ȵéG6(пјwUÇH}‰røúá:~\e£ø”†½ŒúúúMó! s?ΣiÎjéØOZŽÀ{šðÝ$U1Ò#¥1J ]v[>Ü_ƒ¯Àmpmu }÷)ºêôÌ'hªÐ—Q*çðã ñ8Ífy +Õõ>ºî=à»è™wðã$ñø) tŒ¦9Ïa|ƒ$ÆÓ×љ¯Y¼;Á6ÐîÂù¸f¥ð‚•â_)ûÙú…ÜØb¿ Û5خǶ©Ú&b{¶gb»ƒÖxû µOË)¥5dâÚt;m´G/QÀß'*;ˆä÷àì›ÀÓà)p ¾¿Xåô¾Uæf{&‡ÐwѺИ¯¡íöP¯àÇnâñã.ÞN”ߏíÔÈVjd ~ôÍêEá=×Kxó:\?דDtœO€Õ`X >¶Êú¤ÕÞû¬-`‡ˆU±2°›K«ú@ ¶+°\£g©§Q”Q´¨‘õÔH/5²?ÖàÇãz ûOR­ýz”æ^Nô–é·l·ß°ÅǨ Ùc~g­¶;hµ$»ñíi=±è• »ÙlYnlá þWÀPƒí:l7`{¶'Ñ!­ØnÇî-àn_Ï%sˆÅƒtAz·›Šî†×D—…w¬mÀÜ_P|û¬ت°”Ž]>ç`ÛtdûØJÔa¿ûã°7‰#u:ÕÑIDæQ±R-4ƒ,M§GZYm‹þþbÿÛVì͵›Çy,™GÛöÀ1ÙC,ºˆE'9é 'ÔF;5:KQµáÇLü˜Ž­ä¥…¼L£>¦ðf2ž™‘™HôšÉà6øñl°ãôðˆqÇ~+þë9ò–3’Ì=\·ss”°†AØOǾûٚÊÞ5E^8BpDéÒJ8jà‰½ÑØnV_ÁÛÑD¬‘¬¢*ë©àïPé#©ü‘úĸc7|›8æV¦3‚püw1ŠÌäwGðä”øÈ6Q)pd‘Gnà‡§žRxªà©…§›M؟LdÚ4‚HÖR1èÍ:g(UWÍ^1DwAŒû˜¶Ã½ÞÆxÀ÷ÇK›#>6sßÄó1ø3:m“ÒԐ`‡Ë€)®¸𔰓—ÃU W\£ášˆýxÖC”–òö v—~¼ÝÇnwœè]·Al}¶øè³Ð`ÌãhiÍ`,÷ Y̹¼«ÃŸ™I‘–¡á)Õ&;U“”¯¡É^U'‡4$y°ªRªT™R«ò”•¥LPij«¢©ÝŠ¤.V8uŠS_T(u)GÁ9%ßRQÊ}¥²_Á±ιŒ_mŒ>“@êxVË»ü©ÎJPµ=Eՙ™’a¨2Ã¥ŠLÊ2‹TšY¢Á¶rEm5ŠØ궍W±­EA{—öÅòÛ×Ékߢû^yìÇ䶝U¾í¦òíßrÓF8–Á×ÃXÞÊ¸Ñ ÁHjF¡JޗãO™‘¨²¬4•:ììÈVđ§’,ŸÂYÅ*Î*UЪ"ÄÏ î3¦©Ðè’ÇX¢|£W¹F¿\Æ~9ãÊ6>çú>`ßÄþb¸:ɧ2ó0ہZ®«yVJñ)Ê7W‚JœI*vf*äÌRÐéRÀY N@¾œ¨¼9U*È!k¬ò]S”çêËµHN×Ze»^”áÚ+‡ë˜ì®³à¦9÷ALk°=¾YH¤IŒ;cÒQ5ÜW‚Rü‰ð> BøÈK?/M¾<» +ó*Èϗ'ß'·;¬ÀÈÙ¦A׃A˜çAà‡·à?L— p”å†ßÍewÉ^òg³¹’;¹ï†ìn² ¹,$„$Ð\ TÄ ‘’ +„‹­ãD¡8Vª^¬µ”BqÅ2¥…Z†N¥ö6¥#Œ2ÚÒ¢±í ØÙ>òÛq˜—Í;ïùÎ9ßùÎËo÷Òyn”'È[鐫Ú%gÀ+{ ]Il% +e VPÈ!ÀüdŽ"Z‚ˆ¤ º"ø8Œá<À<]ÕLpUq-Ãî@™Ô‰håܛ_!˜ +²¸öc> )ë $ÈUc—£Ö¥¤ &ÄSÜa +(ŒÁH w#Éâ)Â<a–s2…9¥C§>ÔÞq-ÁîüJò€íFP ª¸.ã~1¾äñ›Íµ¿~L{‘ ®MŽH²ëiô 4Ú©“ -JG l”¢šl+@È5¡¯¢c`œ÷*oð >40E70¥c»Û­ Ô +¹WŠ/üæpí¯¿ýdK©—,1!ÊÛÌa7“¥•fÞF3ÑÐbl¢‹ál m› ¨‰B&†xjG¸´ä›؄øÐ׶;@ˆ€ |øRÄo.×ð¦ÕÁ”<“å)Æá> ?:ðc‡m9é&'½4´^6O/±èÅáòÑ3˜Jº™ÎºŠs™Üº˜bçàCg\½Øo3@¾jÊi¿y\g6À¯^g›”8 9¶@/˜}øÑoúø1DNÑØQÄCÄb¨…wDì&¶A„ÛÀù†zè‹kN#á ¬³·Ëá-à:‹²Nc½nx_âüÊÄ`ƒ=°Ü'Ðd6–âÇ2üá!'#ÓFW°?–óâr&ÄeÔåR¦çá‹Rô‡;㚅›Í¬³žÔUÃ[Ìuv ~Öë&•v–À°6ÉIZFùPêŒIú`%XEnîE㮥>Öã‡yl¤>7’Ô ,f=FÖñâ5±–º\ý3KTÕh\íð5çéíÔ!©Ë%Î>Öë擤!sÖ`¹ÂⵆÎ1kø½ÏD°†ñ- ^[ñcœ½²æêsœX|ÃÛ0´•>ñÐÞCMlFY} ˆs¡ª$ÖùóéA ‘n–¸ÔZã¨5d›||ÎXÆ÷`«5ˆ?b ¤ß%bŒ—ž&&Ï°o_`¯¼Àa°ŸMö<~ãûÖH{xy7ÓôÎß1ÐßR”XûØÄ:ƒ8{¨WYëü†ÅIøÅˆþ%@‰#_&…ÑAð’%”Ž€WLႧðã$ûäuŠý8±x‚WXÄQ>8B>¬0uUJ É&Ö^¶pòKd˜ë|GÃ|Fw³UVÂ3¦]ö“ÚÎ6ÚKD“_PâŸLpo÷ƒûÀFpÕ*%“û„U~/N”£ ›)ڇ®ÚGNö¢ívSOáÇøñ8õñjïQôåvšø85òmjd+~Ɵ9 D¹®!žMǧš)‰ª±;Lr+ªj›OU¶,UÚòà*†«‚.V_½¦ÙZUbëR±mP…¶¥*°­Qží!ªy7^ÿœ'’q~ãú&÷À¹ˆ±§—£>š@¨å^gU ÂcS…;Y))*wzTæ0Tj÷«Äž£b{¡Š¥*tTàˆ(ßѬÏjž-Jõì”×sH÷OÁUð/×ZlÃÓÇ(ÜÁ¨Ñ " Tr¯ ”àOï¤%*ÏHV^ªSSSÝÊõÊIõ++5W™©ÅÊ0*å7BòMJ3:eòKå1VËml–ËxRSŒ—å4NËa\ŸÉ‘JßÆöbøæ1ǐ' ªA9÷J@!Ïóñ%7=A9¾$eùìÊô¥(Ãç•ßç“Ï—­´ôP&#}º¼éòøcrûçÉõ?¦Ë8Ê« +Ão6»Ù$›,›Ífw“ýI6›l~vIHBHè&@˜J$ +†$•AkJJÁJ¥´RZ•j¬Å¢¢ÌXµÕZdZQ¨µ t:0ÕVªv¤Ú–aèV;èúÜìçè0/ûåÛ½ç=÷œsÏ}o +|ŸÓ·Cy¾d÷}K¹¥Çe+½ ï{²y¹3°½¾ë‘À݌‹sÁlP⼫¾¯À—`™Mþ2»|eyýù*ñËðÈ(!ªUh+ت‚`—œÁ>9‚ò7ÊœRN-àF Æ¢®‚Œ6`|K‘ZiÐ +’ Ä—¢|A|ñlòrå :ä)wÊr©(4K®P© +ùQ~¸RÎpBŽp³ìáNÙˆö/B׏܆hD †Ñ²!|½ÊÆPNc%|½aÎ#hŽpøŒƒJF¥0ߕãK Å¼›bxLq㤸Sˆ÷Ôn~ǐÐÈ Ð€ (ÙúŒ†ª¥%„¯“‘¬Ôóç]%\a8 ”gïÝ|ïJHùlÓÞH“Oq¹4d›i ­X´‹6´5òÑÆàÚÆ|ՆžoexhE©´0WÌ!ÍøДÑ./Än{y೎¿«áŠÂY|<—ðÞ ¯ ³Îsc‚ZlØŏvüè0— ý:r’楉EšEéÀ0›¦&ÒÔåuÓüŽÙ¦ó0kþ@3¼ÆúŒúÓØnIžkñ%ÆòŸeð–ðÞ o!¼y˜Ìa|å²ÄHs©vãÇBüèÁÅæÂ!'KÍA#KY¸d>`˜]‚*YÌ ÕËՃr\tŽu¨úL-³1Gêšùl œkàŒ€ËKx_ o¼ö8I/9kAàè!Šh.\òËðcÀ•½øÉÉ <ÈFV²x%ùXÉP¹b“´œ³1ÀÀ¸ì4"sq}F (ßvxšØgœU œ¿½mìÞxm”7‚%ËÙg‰#rVZ‚Ç®5ÄdÂc?ÆÌ%DNÆ)¦q63†ã£äc= +qÅ´õ¼öyÖ¼# 3Á×6\/5ð†ø»”ð¹áÍï™Qÿã´øŒÐûˆ%úÆ,áiD e§ ÄÆ$~l¡6¶“[)°Íl&`“,Ø4Åoö!š˜$>öë2ꄯ•ýÖóMSÄÙÍ~†w9XeqrđìÿÇ&Áf°ÕâÛÁíàNjänüø µq/õ¹‡Xì¦6ï,ºƒéaç“Òôo¤©©“ý¦øºš=puV?ü&¾kÁ¨Åy“ÅG«C&gð–åÈ3Üd…¹L(9!éQjägöÔÆêóky?ۇÁG>-}‘žýà)éþwÕžk)Û +öì!Îù#–¸°„î6ko,c\ɊðÿòAü(øª²f¥ï‚Cà~åÌå²y†Cv„Í&¨‡ړäã{OKß¹¨Fê*Jˆ¼¤ªÐìy“W³Ï=烀%¢ÅÍ †çqe‡#3 pÜHáÇå†\“΀³äåjô<9y™¢{‰@Ÿ&°/|N:‰gT ·î"bcö|'àkÖìðuÐâ4Ãà•Jg-®_€-¾__ƒßƒ?×Á[àmÎËrr™³z‰‚{Ò¿î”þr€ßGQ +•-¦@¡t¥÷˜%þ®"}€vĮ̂N£|S tÏLF×8$P¬ï3\¥PßE¿¿M/3y^b}ƒ¹ê"Éú3ɹ #LV¿Ô9¬ž˜™ë2l+C +3l3ÃԑÁ–Ä)e­X›Å%üx?þÁ<ó>jø*Šù + +þ-tûëL4¯áÇ&¹ßqXÏsh^¦x_¢xOãNjøqJ»tR{õLÇ(Ž£ú™žÖßPõÊ&˽Üvƒ+p^¯Z!¤‹3ûNe–8ËqŽYæ ÚýÓÄóøñSâqŒ†u”Æñ êsÝašÅ(æCº™2ù”ž ˆ¿Mñ~“]äô +¥{mfß{ÌL¶ƒmà5øÎ:'“`6Í?š)³=Å|wˆœ|_APŎê±ÛL„籟.ìöÎL²ûi$_¦y=Bãz?"÷kŠ£zûÝDZ}‚§“p_!B%•‹}'ö]À Jà)ƒ§ž(<5ükÄn öçÅt”ª¤b£ä#BŅ9!:Nˆ®¢w‡àƒ­pÜç’ôCȎnÐæ€$ïê‘îµ|_ã´)nÏSÜV êœ"xfÁã…ÇOž*xØlâ¯yœâ…x·ŒH­%k7ñ«xüxœSþspdø;£I쯇o9r£·8+Ñ[@ +ԁ8ïc Ò•£h¡C‘ü|Eò\ +;Š¶{²ûTn‚¨‚ö¸ö¤üö6•Ù»ä³÷©4wXÞ܍*ɝ’ÇöyyrÃûgÁEðo²šÑØ/óè(Ë3Š?³döoæ›%3“™¬$$`BH@¢¤ˆ ‹€U°d“­ì(Q¡"‹¨EED +TP‘M(ˆÈ–º€- âZµ"¢‚"K¦¿wæ;=§žþÑþ4œs3_æýîsï»Ýgü}àêÂߖ6¥(M@ÏrAˆk&ÉЬõØ%êvJÄé^ ;’î KÈ— gœM@™ø ú³Z|ÎâuÍ9I<Ž9âv,—}“¸l‰+팸¬ O8:ê¬Câ_ ªmkÌ÷<bÔõ™$ìµJº×.!Í)AÍ-A&.~OHtOÈŸ§H¼ZsÑ´ÖâѪŭÝ$N­VÚ±i³%M["VϱxˆÙsRÌî„Ü¢Úx:À{u€>4ù ›gqéºYBzšt»ø}NÑ}.ѽñz½âõDóEÄ£gqé%âÔ+Ä¡·›~ƒ¤éÅ¢“NÔéy}d8/aÇKbñrgÀß¾*bNEˆ} +Aß3A ƒß"¿Mü~‡èºK¼º[4¿[<~MÜ¿¸éâ ÄÄÈ[°©¤[Š%ØVÌA²[ärÈNjð?‚„ôåý]༆–¤e˜y|Î1žG@(h’`À*þ€]ô€S¼@î Kœ!Mìé>±…ƒb GÅÎs˜Ì)4 N¼§_„(| §SCú¼ø,u%¤7á­$ú–Ñ’4øœÅ³ ¦–`‚6уvñ-dwºCœa§Ø¢±Ä¼bŠ1a1Äéñâ€æ1NS§aȤϋ„Õ8!5FÎ -EÏSw'Ã:À{Uû!Æ<€\>Çy¥–ô0¤§‰?Ý*> …­âŽ¤‰3Ã&¶˜C̙"Ù,ì\&57˜œK?‘GÓš× +´4J¹C96g! -dSCI23!Ýrmœ3™ò‹AÈæ{ŒZ"ÔŠ˜%ô¨I´ “¸cfqdZ$-Ë*æÒ<˜|6xcw!^"ª0›Ã…ù("ËqëÒkÖNåƤ”‚5Œ!96"Mç%¤3±¿ CÊs˜þo²¨#ƒ:ÂÔÁ2ÏÏÜüÖÁï¬È4ås¡4æ/¢Ž¦¦%žÔÁRLZšJk¢”¸M[³‰üŽf¥˜è +öESjh’ërٓ¼³‚\¾gRG¾Ðùì…×Íßì¼ÖB Ë%ÁxPÂEWjI],-™“VÌI^T0‰ ªàG š¿‘FZќ^IRkA#VNŠ,c.š'äZ–Ï• À‘Wœ:ÂÀÏg/Ï\ðÚhÕÌL1—$ã’iêRU—kkuÑRG[ê¨bNÚ±ÙÚáE«ÊAΚh˺¼†ýنäTI‚n}RÉ»Ë@S´å3$Î(õøìå¹ Þ4Å[f\âÈ"˜À h /\4 š¹éD×SGwêèΆê†݊¹+yލC€F¶3‰­gDõv6gTû„T” Ÿa[>uÄá Áë…ׯµ¥¡µÒ4UFÀéh„®Fèºô4¥B@?ÖhöI| búaX_ôá¬êMbêõˆHŒù†Ð”–ð”°tŠ¨%Þ0>ëøìB¯¥ÒSí Î. ›¶z$Ãf*|Õ¨j@8‚:F³FÇ0'£YP£yùHŒ`ÐpΪ¡¬‰Á4°·ÐM LH9:K˜²Fðf°ý­áççæöÉ ™âT{|´«„j¡…HÀÛÀh#OSÀ4puÌdÎd¯ÞÃäÎàåÓq'óqém*i~R½Èø³RŽÞBæ7“ù ೛%lîjۛ ÎZƒo¤ÁÅ£‰Iq©@>CRMÉ}’jPØ~D&š%êx’µ±˜õù8þ(“ššD˜ç¬šÇ|Ì9*Ŭ«Üvœ‡h֘Ws/ƒw°¡QqN2ø×, ‚ðàAI5F¼Ž¨(´SBƒ)RV‰$›—M„ÂÍì׍l²ux±’Uˆy–—¬d.ß/ù¬«(ǘn+Çí‘Д¥<npÎ5øK:ٔ­+Ás’jU³†¬dÓ¨š·Ý’jb€Ù+ï1'Xøo#øMˆöðò½c[ò:ñóÈ>ÌЬBî݆Ö’j>—Ú׍l[ ® Þà{Tœà3ð8؂rš99Åú<Áäc¢Bv‚OUñÿùÏd±¦ÙN—[óúü`(‰Æâ™Y9¹y +6izEq³Òæe-Z^YqÕÕ­Õ暶UíÚ_WݱS—ë»v¿á×7öèÙ«wŸ¾ýú8¨vð­C† 1rÔè1¿7~¤ÉSn¿cÚo§ß5ãž{gκoöýs~?ïù.xè‘?.|ôñEO<¹ä©¥Ë–¯xzå3Ï®Zýü k^Z»~ÃƗ7ÿyËÖm¯nß±s×îú¿¼þÆ[{÷ýõoû¼óî{‡>øð£Oþþégÿøâ𑯎~ýí±ãß}òÔéϜ=ÿϟ.\Jü¯ÿôÿÂõ›ÌJ±]Iö YW¢ÓQ¡dg+Ýù/RÊK”ôr´·Râ+•úk‘ßAéïŒݔ7) nƃeÂ-ʅ¡Øp›òa¬2b"NLUV܉w+3~§Ü˜‹P~<¬ y G+Kþ¤<©Ã”ç”+/bË:åË&eÌ+8óš²fòæMÌy[¹sPÙó>þ|¬ ú‡¾T}£<:I?(—Î)›.^JŒ>¹\Í»%À~¾þË÷_¸_b2™Í‹lv»ÃáÄ·Ç£a…O×ý¸ áG8‚#1<Á\Á|ÁåLҚ”7?3'é Öt뮶;©fÀ Ú[‡¿mÔØq&O6}ƽ³fϝ7Áà [´xÉÒe+êØ.j·¬[È¤ÆŸILiLŠT*‘‰N„¢©hýòj~Þo¡ø»'¾Gô©~8î3gϞ;wí?]¸pñâ¥ý‰ºÆ¶ÄÓeÞÄÊÊhbm‡üÄÖ®-;zW_Ú5¨æÔîaãï3ûЖñ‹ö®›¼j×꩛¶­œ¶sÓ²»ÞZ»dæÁÕOÌý¸î±…G. 54ÔÐPCC 54ÔÐPCC ÿw +ž¡†u%^¡†]½ª/Ô¬9ùúÐ _ԏºÿ½×Æ-~kóÄçw®¼eë ·ïÞðܝûV¯¸ûåOÝ÷Ñ¢'æ~¹HÖPG ÏVFë©áÕ®å‰=½ªÏ¿1 ÿ‰}C&|±wäœwëÇ>ùÆöñ/n{y■/MÙµzÕo.¯›¾Ѳ{ß_°dî'—‹×°Š6RÃk]Ë/¾Þ³ú̾þýïÿ{t–tžp|g¦™v§zf¦šfgÚi;f§ûiçéØîÌNÔìд2/AñoF)TLP.Áðå EÅ["-¯µ´ÌÌ)'-û߶gÞ/¼õÅ÷ýçy¾Þ˜áŽ€¤N"_£ +)“U£k„aê"a¸>WÑ~›ՓĢ™¬ ð?J!ƒìÔ& vøeÞàzz¶ÓÃcòÁ-Ì£>ÿ$CkS®F–ŠkCe\ ¦)Æj3Jñ-)|’‘ʉ鱶d(;¼ÔØnZÔÚÿs®ÝõôË>w'C71}f¿DmäßäÄX4 >J´6 ÝüÙ3ÃæO;F·.×Ìþ^²h»ƒÎÊÎÜWã}®FÍ]ÇÏ…Þ +{óEÍü‘¯"‚f(/cƒ`Ó4„µ½Ñ¬ÿ¤çñ7Ÿh¦^!}wø>8¾5œÞKÇhàʙHàí€AΡ Ô5à.-F\ |é{Gq÷{ëá»ïim=Æ/ÿ¤Zý©táçUpàûpdK*8¹+Øï#€K‡ÑÀëD0€Ÿ +¨3þ{ÎàÏû’7ˆ²÷1ö7ÕÁÚ@ÁæÏAþî•àÞÁoàäPa·È.57œd0ß~DˆK2qH9íyžþµBCO¬mHLUÖÅ1tՔlƒ„Ì2Š"8–¶dX2,– K†%Ãÿe(€ %6@d¨u= +äםçëüý¦j„áò°”^A³µ€\¢ËŽ‘*´†ºÔ$,!­µ2.«KÃêãGv[ÚÃ=ÈÀú×ZP +$Aê=]æüüž+‚#†¤zwþ^ ‡X¦aFÕ*²b«ÓZ*SR»D ™&^\¾™Ëîµ4Àúh`C¡Í@v~'¨¿x¨<\æÕ¾þÏÕAÄGµ¡i]8¶^@(W±IŠÚ<Ê}IÕXžAï-ed›YÍÜDV¿¥ýa(„ e¡úü „ —·Zÿg:8éQCHz§,¬¨I^ÕÀPÕQš%ìx£Iï-ÊÊ0ç2˜™¿˜,탡2Ad¨ j—£‹ºk.sú[°g-‘ƒH†Qæê$Xi}y„J&¤èE|š‘ËNîe2æÌæ@ZFÉÒû£ÊOü ÔA†F—# zw—×/؄9Ќ¸Ýވâ©ë0RYe¸J($é9J;“CëÉ`ÑMô‚œ‡ÉÌ“¥}0° ïÀPäç·/69ùÝàæòªã&ìIÙl„ßÑ됼:y¨¤¬*LYT~?W@l»Í¥t%Æ÷SYŒÔBf¿¥ýaàC†*ÈPnû;½Ó‘×íW_ôހ™}ÈÝ]·ÕMÁœ*ª‚'Å(˜b¬öN)¾%…O2Æqbzȅ)}¤¢Ì^K…›þgX $'Öå¹mo N‡_u_qžð„ y“[»r=¢PØ"fU‡ÖdV†©è¢p­„Ø=!ð:qÜ´.Kû``ïZJ ƒìøú÷šsÛ^·9zñà²Óøè5ÓÈ-’®–&i *ઑ¥9u(Iº#O¬À©bDQHnƖP èâ”VKE¡2÷jÿðVwnëËÎ '†\G&ÜüÚǼˆõý°Ô²Ö ¼m0ÿNJœ\‹–ÆÉ°u‘Uø†ðŠH Z« %4Yà@†"È Þÿ5PÿëoÍgÿ1iºp`䉳ãÀôߦq/‚ÄìŸÄí€gÝÕ³é(M‰Eɱ•„Z¼,¬šT"V $´KÜMË2TíÿjA}ü»)ãÙÍÏö™ž9;g/û(žÞĖ>ò£æ÷ÀÓíȜ„f+Z‡á5Øb¬Š m ‰ŠèÊ@9µÊÒ2v~ jö­š½lí˜é̆¾q»ý†'GíÜ%¯Šç7BÙ#~ä̇ð„äސ´Øt&© ›nÀ磛#XÈûäB¸.† ÓÒx–—ю?¿Sî]1a<úuÿ°í†–)»ýÊß/ØW/¸zòfnÀïNøcSG‚Èqƒ(j¤9, ߏO ë%¦¡ºÉŒàÎèŒÀj–¿1!ÛÒ@ÉÆπtû/õ¿,7î]iøûuÕ䁇a\ŎUÇq\¦3:Z§¶:.gÆ +8g܁: +ElA–,DBHHB@¾„- @„%1, { „E¬¥Š" +ZDÐÖÿ|§íñ>^õ‹çþwõžó>±ýL³pæP8:HÁå"ÿ•—Oêl@Hü4†@D E> E…ߧÐñ÷h Ìx 3ø{ =–p—Ã~ß@¾ÃbI»ËbüÆΆ)Ëõšy›µ`o%†³6…àâ”öÖË5~)ð +}çOztõGr(î ‹yÊÀ‡ÌĆ¡ŸÄ_ x ÷{œL|ß@¹mÅTÿæåÆÉí+5s7*àÄNØȁ3GRà¼]xž£څøçŠÿ)Üó†|9x‰æ…^d\ \dyû¿bûø.pP¨…dß÷m®ký²Ûk—µÎm_¥ËÍ"8²ƒ'÷qÀÁ*œáò)Úc{&ÂÏB¤£?P|ñ5 +b} þüà¸\¤÷ÎhX½L3ùÇå5ðéj1|¹‰‡¶%À±/h`·?œbàÒ!4øöƒÐ£( ÷†ˆ^@9é ´S—aã±6îÀ¶½‰ïäïørö¯²Õ%'¶‚ä«ÝPíb 5—íAà¶(Å=‘)|FÌøìëIÉS|F¹!†'ÓÑòÝAcI¤n#V¶´ê4j¼Bkn    ¿{C.bÈE ¥ˆ¡ÒaԞ·…‡=Ôú»½’aƒg*"©÷tî­VîP*GhHL­ÒÅf)º¢sUíQ…ÍšH¡¶%¢²£‘PÝYµ¦ÝÜ~5ì[y‡6‚èøV!†zgkhpw€¿K +Lèy}\DMå3 û3Ù]WÑŸ¦ÖÆdkšijJ©®‘$ÕË#d=U$y—¹AÁŽ•‡ +¬7BÙñ-P¿¶Õ%P¡Ü_6†`ׅ3Æ$äô‘âè}N¬¬+5A¥ILÖ6±2ºUŒîóê`ì#%yWFÊSE½ E[V\Ks2§[•˜nh`çÔ±ÅCbšx¨˜.Õ è•½æ|Џ +Cű- °ÿÔNÖÐâæðVãí>ߊÆ=jÂÇÞVy& ¥¼»˜Þ Ée¶©³¹=™†š”Àή0šÛ¯†½k@ˆäGÿ +*ÄÐîh¹Ô÷ý\¿‡ÇÌ°O؃ì^LA›– m¸Ù(UÐ4Å2fw®„­O'p…¼¡xaé0³°|€YPa47(üt%ðƒ1Ô µÝΟ;Ï\0^°›vwŸºívgԟÝg ÉoBþ®¼™Ø l ´æÕÐ;Óe¬^Ž”cdUd˜¢Ë éâò~šPb07(úÍPf¹G?»Ï^÷œ;87ärzú¶›ûĸ~äŽ_|‡)8Wх­·„Õå5›S䶜ÞS«’rûI’ì’TdŒ¬’èÍíC!b¨@ õˆAsú/õç<»qÞvòž«ÛÝ—q†ïýXMCAÙRFÄ×àªÓ¯Tìbkt-¹#²šÖsUÆêÃV%ë±Uù}8Y±ÎÜ@€Šö®©åŸ@ydóëŽÓ;fÎþûјó©û/¸ Oy`ÛðQ\Gg”êCٝ8 §•P£&*)ÊÈ&bµWÇl ©Mì@×fvÖæ˜#b\MG6Íël·OžÝ?þÀñäw3.®}ÏÜCU(šä&:©Àš›Ò‡+au*¨mDYD+¹6¬™ZQÇ(ƒ®±¯ù«ÒÔ~ʌ&sƒÄPºçcP|¹öMÛá 3¶[ÆÇ¿Ú3òØñ”þ¹ËE͋KAòIT¤` —9ŠIK0ás¢ á…ä^RéÕŠ×E«î`JÛØ2_mŠ¥M«67n·€ò®ՁÕ/tÿ]wï¦ÍæáI‡}ºYÇSšÅóßÔ½tóN£Âxh*w ǼIHŠº‘N¦d… Òr0Œü #‹ïoH,BéSŠ}úÒÌĈA¾û£7šýarÐúã‘ûÇ>Ñ=sØß¼töDí[gçò×nžyÏQAÉÓAÖ$ŽL½N'3 cÔ8ìFBÈm}‹Íõÿ.)u#=Õg4Ãì b›4~nñ¬o·ÅèøÞUº™c[šíöËáÌQ8ý¯Ü¾MYByÅ͇ÐfÃBHOI8Âtû8š:K +šŒ |˜Hñ{…šÈ ùLdšTý}Å«¶íËoÝݸ\7½gMÓ«£[e`³·þÃG›p=ÇÔêÏ¡nÄ×Oü"ɳ@E¿dø¡çYþsì@¿\4êyj÷lf°÷lVˆ¹ê/Ëo˜Ö.Ó=Ù´Býjï:Þ*€»ÿÏn½Æ%}¨¯ã¶êl­ÎNmg[­µ¶ÖÉS›e—é²ÖJKÉÊnÞ/T^ð†¯ ‚ˆP@QQQ@@PA/]ì,«Yiåén­›múìÿéôÙûÿ»ó¢¿÷ßÏóâyžRؽ‘ +û·eƒ[ +„ìÁCä>ÄyE@²÷)H;ˆ…¬Ãaã”#Ás´£sEÇfKûϖ¡î?æ…ó,£‹æµ?_öV3|ó~lú¶¯ÎEfAx8䌃ÀíáX·HÜ©?BÆîÈþÉròê_(Ø{Jîh3[ÌÓ^^0_¾S ë3`ãòp^A€¾ˆ½kO÷úðÝØoýçtâ7‡$磐Š”¾ådmñòÖзíА +P¥+ß²£Š6/… +äfÕì^ GŸpÖ„1~Ïù)‘Ø$ÂT1|RB¿’Í.»˜Î玦ÔTMª¯Iˆ†â千±š¦è.Yo„AŽ¦7†7†7†ÿSCÙkCɦ¥ÀC µ»?‰—#4wÆPO¨Çù?­NÆÝãfo0©”qZãbNYÅùLnõ¢ ~(¹VbOKmñ²k¬ZeÄu¨õ8MÀB ̵‹€‰üՕÛ?„ú?©§#Ȏº‚,ØkNøD”s§:#ã:'‡>V\À9OeÔ “ØâtžÌšR­2'‰ÚLø掞8µN£éhmנ镡1”!?mb#ù~GPqEfVô¸ 7UO$ó²K.”R+‡é… ¶\f‹9³\cL­Ôu%×uë›MêXy¯ߪoNhkG°WüÏÀF 5ˆA²k(ö9‚ÚÇԁ˜ÙÖÓÁZâð·$)9—«3ËΕçíÅ4©™R¬éÉfôi¼ÞNb]Ÿ6µÙ*MZÄIÊnAӉ¦W†2ÄÀùv ·-‡&Ä Ú·Ú»€6ó[ÛɐiuLâ Ye¬>3ÂÏYKó”ƺÎ@eõèòæ6r½U‘ÙÔ/"4õ SÆjb«MÊCb"5bè@ þ˜ØÐ‡í¸¤IUBþEI*w¨:SÒW‘«î.+Ô·•[iÜ>9EØߔ+±U§Kør7Se@p^*6¾õˆA¶ó3Ðx¬Ý!—Yƒæ™!,ô!*y¢-žvANàÛEéM&AŽºƒCÓ«˜ £´cÓýuԆnv£C’›Ù$eš^X_/.bm[rÄ õøºüÞí‹yb ½gŒ \×ÅÑÏ)ÖÆ´&} I­æQõRV‘©Á²Ôñm•ôz;›ÒhgæÉúyÊn4½6,bhغ ;WB;bè>èòÒtóØv»/œðKWtá:A`jNmÒÖgªå‚\}CE±†Å´ð˜6N‰ÐΠ7Ò¤}…4Eš 1°1ˆƒ1t"“÷÷/,Ç1ÓýAa·úO¥\4FÙ´ñC A¢§·J„d°2ßÈ«(±°8ƒUm§3©ÅR µHaD”êðÊ Ø°$[ÿ­n+Aï¾î÷¾ß?³ÃÜ + ›°cSΙ# ͺØÊvU’D֜ÖZא­ã )F– ¨¯˜Ïê/à +(ÜF;¹Lj!—¶Ñô§¡ +14!Û +èrÿf¦³ýס£^wÎû‡Ž„¦ YÃéÝ]1|•6¡Q¬HUU5gv²Å¹=Åuts¾°ÔšSͳe׈2xRKFE‹MP8ˆ¡1H·|Z·OgîkŸÙ1Ûž÷ñ¼5æzq4„`µŸ.èèÅñdz¼XØFPV(3ÚKdä®ü&Z/¹‘aÉsû‰b‘P+íK©VÑôÊPþÕB¨ÝðÈCǎOfÌ{¿~4ìµõÎåÃû¯]=|æRP²ñÌIZ«-ŠÛ`Šñ I-Ìö´¶|M¶ž¤¢ô¤)Šz“圾¹Ð‚—ÉÌx‰¢MÀE ˆ¡þßï‚Òùos†?éß»æóÍIo±ÉcA¶«‰?c)ґŽÀ]Ç쉗RtI­™ZbAeÀ«òº£•EÆHE¹)B)2âÔ*š€‡¸ˆAìøWÐ8/™1îøèÁðž/o\ñü#ÿ=Øs#¯ǒëF#˜l{t%­/N”Õ“ %è ʸŽtM”–Ô~ºÚ¦aèB4|}˜¶¡MÀG ü5  Ùqtl^üØúÃò›ö¬º4éá4rãa¹ï ½ãÓ8–Á‹((>ÍÊŒç§õ' Ì) 1¦tIDIz²‹*5+‚ åÊ@}ª ò¨ùç; X¿p¦gÓ»·G\—^ººkåðm'ó#Œ»îñ!_Ù´_DÕTXréµõR,-s4A8K`ǧqqƒY•á9UX[~Mˆµ¸6Ю÷·ðQUˆAôåÛ ]÷ötÿw ®\ÞüÞðÔ®U¦Gî›Úg<÷´6º`**9{".#u<‰œp™HË,ˆú™\xú¥;Jg„œg”žå°üÏòÙháÇÙj‡Ý_9LŒ®q¾é´Ä4½kuÛ˽NÍsûwÕÎy(ÿÍϗþôdyI¼‡K¼’;•NÀÝ$Ã'sÓOMäg„]/Ì +¾Æ$^åýÇy9h‚:ÄжrþíÁæL~æ`švú@óÒí ìÞ(W6x»ÓÁϛ<{òq&: ñYBHì“TlÔãÌÓáÈ§¦)‘؇¸ÐÅÑÁ÷Kcî•ÇùßåÇ£ ¤ËçÿÚ»tÞÙK°_gaMßYǙñq­ZGÛuœ©ÖºUjQ°µâV n ˆ¬²‚,Â!„²Bd! K „,dåD©ÛPZ´–qð©:ZÛZ¥´g~Õyæ:ÞÍE/¾÷Ÿ»óž7\ìß™§ûÙ}E;ìY+/Wþ¨ +ü÷CøA"ÄûfÞ?²Oâ /8áעг¿”…ÅÎVž:ósMxô #âôL]dä‹Æ¨ˆç‚Ó¯ÓŒy©ËÈå….ýÿZòíìÚrp_Á‡OþF‡ýËàà6ߙ a»ñ·©^ñå ¹c àP4”Ž‚Š#‘@94ßp`ù…çX(ð^«û<ëØ|ͳ¥”º…<ضœ«JÀsmxoƒŸk¹ÅBŒûiÀ팄ôÃ°ëä}…»C¡Ä3ȞÁPµ'¨{µ÷$°÷½N}ƒs]Ôÿ˜ëÒ +Ëæðà݅TØòf¸½ »VãàÀ;±pd}l …ðÍÁûþIÀm €tאý?än;$Tá‡Ç äC? »ùE}­€Šöeó {,æî· Ñk ˆ|7(Ô„±^ÀÃû›ùœ^–ø”BÍ|XÆλ_À+ù'QTy—ÐZs'³1™Þ]û%¾§~"ÕÜ0žâàÞÄ]á_‰¿,p¶ß ¿þ/ ÕÈPá¾Xè¿àþ× ñÑ/àãO'7ê'fiÒwÕÔ¬åuùӅܲ)¢ò5¡•6™ÕÎú2]ɞHëiOíåÞJq>Ç 7 '8ÐÖ́j´');–m{Á§k åè&h ò€–ho'üÂ'DÿX_”úˆA!NW1K¿)áÔLæóY¹’†[ÿFf—èZº¶y on½š: Lõ㆚ èÈPƒ 5ۗ@ÃÇ+@t௠=² ä ò†¶¤ÀYIVìS~AÆ·õ…ST*e’\W;^Äå^'‰ÄcçÚÚF²:Û/§«—ð¦n΢¶¤ôwñç¥Ît´£¨È@s[\d ƒüðFPœôE¤t$ÍH3Î>çeOsËJï0)ô/(ÌÆk¥Éh¾@>œÓ¬Ên× f¨ôv¼ÑhN1é{ÒúºÕövgÆo´'ÈÀÿh9´ì_ ÈÐàÝ>Ðu6øEgZücinÎ=aqÅWõu7h4á(¹N~ =ç‰"½ãœÜl'h0SF¦I7˜º21MG¶Mál/ 4d`¡ÿB€ mÈ 8´4'<@sÊgVü¬;5ñQç9âTså nyÃç¬êÖá*¦r°¬Qç(–˜¬íFR÷iÚ¾Ž,&#˜{Zs¬JgæKÃ|¨Ý¶„È Û·”‡6@¿èÂ|ftgB¾×&'=Te“îÊHÔ[ÂþH}¥ü®²UÕë{˚Ìúâ6‹¶°ËªÈÓØZs´}¢I/ÊëS9ÛKØÈ Úù'hß· +T7€á¸û¯ÆPŸŸŒ1!O I¸û=ù·;sécâáPc¹ÜƪQ™¨µm%·WY.éë(í°I‹ÔýMÈÁÏ7¹…˜Úـµú•¡þƒÅ A†dÐ|LÇÜg±Ÿ±èGX"nJŸVx«+›9ÜJÚ%rS}•ZÃd5LV%´¶THûÅd•½¡Hm¯/6˜Ø%˜ÖÙ^ÈÀA†fdPì] =ÈÐ{Ì}Æìó½-*ä[[|òSJј*“9(#6aâ"¹–[¡R°©)ƒ‰©|« ºÅÎ¥t9Xe*³\of’{{œí•ý8 ®o@ËÎeЅ úÏփÅoÇs{÷“Èé¸ä WtE›ÁìïÌi2´ȕMe*icµAÄfa<&×ZO—Øki*¥ÛQCÑõÖPÌ:gƒZd`"Ú<–A72‘Áæ·ãÙ` ÷¿/F„L]8“|ÖT4dHc`JB“FF’É%%*± RÏmd`lÇʨÚkêäŽJF·ƒL×a4³ÎÙþgà!ƒÌãMPïù ˜}ޝµûnÿáÒI¯#§‚ï\ŠI¾êH(t˜SéM–@¡ ÊZ¤EÝ< Y_'¤öÒølkWÐOn”:JTŽâºKI­IïlP‡ ,d¸.92h÷ü0Ÿu/}ݾ øtúZXÐÄèiÜð…ø‚¾¾šÚÁ—ªs¤MJ¶¬LGk­6WJX}¥"ž­PÔbÏ©ìy¼ ©Ñ¤w6¨[õÊ Üº:ÑíÔïy{Öæ³ö‡‹G·=º~bÿÔxHàõkQIƒÃqùFŽÚ‰¥sÅB+GCê¢+K´UÆb9#É­¹2‰ SÚ²›uAdÒ;°‘¡ö½ù ÞººÜ—€Éó­çÞè¶/znß½ìÁ¨×ʯ'm¸yÏ×óòtÀ‰¾©SqªÛф–ñøò†ëÉ̚Ñt^ñÅìæsç‰ò4{¡g%wÇ÷Q5g,lm´EˆêÒÄÚ¬Jgƒd୛ ›çÙmÁ“‹»–Ü?°âÆÔg‡øzÚúû÷܍‘Ý‹Nç“PÀø*µ’|3“I;ÇÉ! R‡‹Å‰C䖸 5mÑçke‘çyòðÿ°_goMžiÇ#֊NǺ_¶Öъ bÝZ…ÔŠ"ˆ(² Dö KØ! ـ˜!!Á@BB Š€‚"ua¨Â(nXQ•–¢HU¼û^½æòhÞ? ßóÏÑóܿʪ€ê@ºÂÊ×þ¬-gº¶Î{òŸó~¿´oÜÙ¦ów7¬iòÈaݯ¾'Ê^â EãQ‰ÜG¤Ììû ÌäáTå¿Yü˜›Ì‚ÈŸ¹Ea|1¾¿Hx]&õ¿®’ù]«-E”"͚¹`^?÷eŸõÜ¡û¶óúžaWtL´mšqu¨~ãöñ)~?™;I Ð_)©O©Ô„Çéi¤_hYÄ=âA.3ôž€…¿+âݑq†+rýnW£äË- nµÅôù/çÜ^2§ï©í§ç¦°«gl´}'Ÿ=ì$šõqϛÅû2þ ¥½¦„&þž÷[ftôƒõ‚Cž2.LÀ?+N +z*£Œ)SüžhSѪesÀ¼ s«ß +óÓØ‹ö)[+ã,vU%8ZËÀy‡pßsÁû ð¸T zÄÅ;v6ُø.3 ò-#0l†ò&Ÿ. ž‡¾. x¥ ÷›ÒD  êþ…ꞏ¹|cæì«es`Ó"5ì^Y{×åƒÓ¸íJO‡DÞ'"EÕ5 2p!À8Œö‘ È;Bó©çq(÷òµ7ÚnŸ±Ä\ìýÓv{>F+,U°y‘v.Ïû5Ùก +.›Ià±- +v…AÄî“@²†Dl ¤î €¬ü€¹ï8p}!ßÑ„û½¡ø€”:ê.uXbÌ×,15£óç(`Õ¼b°Yȅ­K2àÛUñ°w œ×‡‚»õ ðµõü_ ØyCÜ7^¸ÍR·ƒÌí@ßqX;o§;ðw†¢]8|‹6sÏ\Œî¦Fþ‡•…V[²aý‚4°ý,¶/û•A°õqp[ãžk=À;œ\ƒÈ¯Ý fƒ+7¸@¢õ!H±þ26:C6Óæ pmœ ßmƒlúÆO ù+8{ƒÀqˆ\ׁØÇD!öP@r†üÔ£Àaù¿g +BÞdI¯RËâ&“Ô‰ñº”qõéã±MYÏ¢Ûhc„.Ɠ¨ÞœGýì{a·87NsÑô·áoÃÿ5díX¼Ý‹¡`ßJ#†o;àíA㠂”cÀcžxË⇿¦ÇL¦ŸN˜HV¥vL™žù „™7(àI¯±…½ô’ª åús©U g’ F3õLcåL£.¾S¯Iê©TSûÊÑ<ÄÀF |dãHwü*°Ë@çô4 £7vÆ„›lˆ ¯%Ç=T'ÓeY«…,ÙÅ<¾ªƒ%ªn£•Ö5gª †ôÚ¦º´–fmR[³Šz®A‘Ò­-KëU¢é£A°i”"µÃ2¨=°Œn›gM^ØiS n¢)<èq},ùŽ&‘q½,]xQ̐ux*3¯@gd•Ôëé +cuvu³&«Ñ¤Hom9vÖ(Ë8_-ͼ¤Bä"ΆyP€äہÆa)Ô!†f·ÍïZ=¦Úpã­¡ÁÑ”: +ã²2EØ)˖™‹Ø*Ÿ¯«á×kXòF%³ÒTƨo‘ÑÌæâ¬3M"ZWMí¢M‹ì,Î×ó ÐöS(C UöK¡áÀ—Ðâºi¦ÝÃá·sþ¸±öà»¦¨øëz2£»’*h“gʌ¦ª¦0O§æ֗çÊeœ +“„]k±[ÌF[³ §³öTNM¸ˆA„ˆAg¿Œû¿€6WÛ鮣ö//wíÄ µERú $zGu¢ Y™.«-¥«*Å\]Y¡ ¾D i,ÊW˜„y:3?¯¹•Çi5ñ¸z·[‹&ÈûŸ¡1T oe­ýçмÿ‹÷g]l^uÙó¼××m¤;8h =‚ÜÓCo«?ÕP™"ՖgW”—²ªK$üúBQq#¿Pnâ µf¶ÐØÊä›[˜üŽº~·MxˆAb3Ԉ¡nÏçÐâ¸úm‡ËÆÉÞ#»Ç®ú¸Üí ¼ÚFî4iÍ +_§£–(ÕJ©‚ù'ûuÕäÆq<,2ˆ´ZµVP”\Q JUd—}‘=„5@ !a ;D‚HD‚ÈŽ¬¢ìЂ VŠX«ˆ EtÄ>󞞹'—s1ŸûïÅ{Þçÿ«Î.bŠX…Ü›Œ|þmz^y3-¯¾9ÛÜDÍ^鮒d L¤‡4T ÿëä~·îþÔm®¾8d{ê嘳Ùø‡Ç@_h[;žV'Í(«‹Ìç×PJ¸I•¬kiµ)%œFš€'¦\½ÖWTÛÍonŠåuÔÅåwWIØÈæe©É¹U'à–®Òz‡Á÷+ýfjoÆl´§Ç/ŒŽºcº}IâÎÀÄê6K ŽÈËmˆ+Ψ¥U\®f\§V²ëãÊónF••ˆÉe×o‡•·ŠÃ…wE‚î*IüÝÀ> ¤áºæfh:­¸Ö¥¿óÝ°™ê˧֚Ï.šþünñ&Öõã(¥ÁéíáÜÌæ袔[‰¥ÔÆËÕ1õ¬Z²(§>D$h ÕÜ$ˆšƒkîÕ+{*%™ßKGuÕå î¸ü×öS[—ÎoŸ{dª<5mq|셽q÷¤««ø‘¾jÄ?Ž?ˆgpzB9ŒÎ(µƒRÓF/oeV[¸×ƒš¯ÖâZªEþ-M¢€Û]5¸†¾rI@Ö.iÈÙ' å7Á­crk]:›_ß×SzöÜp÷؜…æÀœ­q봋sí¤®dÅ ¤§2h¿DäÄ Æ†õӋƒû˜¥¸>n¹_¯ Ò§·ªÊ«W\åÝÓ[îÓ1(”\Ax*²P£& ­‡eµä¦~ûQaì¥Ñžþ·æšwÞØ5¼rr,›Å` ¦±¡ì)||òdh2e"š1žÈ!>LÎÁ¦øŽpøžÃW1CBzè†Àm¨Mà><\( àî”ò¦¬W•þØyPzæÑ¿dÆfµ·ö-ª´-›ŸhxomPñÎÁŽÿƒá¼ñÃ1^‡Rç#¢£gã¦iI„©””€IVšïD6Óë)/óD˜‰~Rå:.Îrï’äòÝÒЬ,õÇÐN©/T¤û´ÛV ÷Ö­]Ð,[µÒãÿyÑâÊ +Æ)uÅ߃öä»‰'/RBHo“ƒþHôŸgÇø¾âÆy½äQ0³Å èÙ +ªëL=ÍùE‹D€·] +DßI­ô(¡>݂ê]Ø+ÛòQë[ÑWý½¥_MŽ¬[èf­Û1ÖÝ-©ëþc×C\ÿDaˆŸ)Þø5:6`5Í»’‰óùäµ\ˆÇ,Ðï+ˆ®ïE$çEqˆ$ ìÔrëVÔýŸ7£z߂jZÛ'W ÚۄpN%Œ4X`®E»3@D‚ß…P Y Ò&(öþäà ©NÞÀvö® æ/ž›ûWÚm½ÜÝåË Œó—FI,ÕË£FîýÕ9"/*J×À~ùÐú– º?¤þ*\8 ¶'CÁå|Ïà X d}ˆ5ôš1RL܁iêœ ®kæ|s'Z8B•¥ˆ¬$1Ú"‹ºÛ³ uó±ªò¯od®‚šü8®”:;ãáœr8˜ €•†8ñÏãÀDCˆ–+Dê8CüN@;å)§/Sײ~²ƒœŸl¡ðŒ ÏZC¥DîݑA5ü"ƒ*{&#UÛd8p@>ý3Nl Ý]80Øã æ{Ñ`·ßÜÔÀç àÔm¤a äCVsØŽX@Òs`5æQd˜3…Üc&À?.‰Æn)TÙC*בֿ¶Ë$²\¨)àˆ¢/ò]¸ÃÙN`¼Ë,w[ƒÃ€V6/SðW1 ½F@Úgáû JUâTÏC¢ªÐ÷Ÿƒ4û€$€¢"1‡ä Bg $ê*AŠÁH·P ' `újAjÈ9HŽ7Zª $d;A, Q¥^ëäjì¿Cë>ÅAk„6Â*¾‹¸8òÞ$lû(|ÞgŠ<ã59åñjCÿoø_j@nE¬†DioK§• õüÈ0W, `{k“¨ŒX3 _¶*ÇâyžëÑBìçˆJÜZ˜ˆ°JºEZ n û€ï$/F.ŒD¿Æ>Ž™õy;é5?î5³HøoCìIH>¥,½À1S®½d{jCþ<°¢, 5Éè˜ujöSœ h5ª<äù:y)´!j‘Ø»@¸Ky4@ÇÝ¿4ã÷$iÂgŠ>æ3MöMØ$" qÈû…‚¼ã:Šyî;àš*C¾äa´‹Ó‡,²°¨.1Ò½?'qƒþLà‡.Å\‹|Q÷&¬Žúš$NzE¸sùePê äOøýÊÅN¤úM%÷úO_ÚP÷È@<Ґ¨©éÈÖ»‚ì¬<eàÛh@!Zòý €jY·u&Ão5…C\¢D.ÄS^GU$ͅß`̐n1§ƒÛÙÏñýœßpïû=àŒ³»p“©SÉù»‚4\:¦ÈÆÉ9»xÆÊ °V«a ¡€dû…ƒYˤ~Hg‡/$çÆÏ'Ñg£KÓ'×d= iäNÛó%  õáît=ÌnÃ?e5&S74¤!i Ý ™HC²³ŠŒ÷€ÐJ®9ë@‰Ñ—«û‘^Ë\Zð;=zž‘4Cã1§â„ÙO#ª +†Ô FI­%ÃÄ>aOЀð~¨¨9x,÷&i<³ž4ÁÜА͛€lÞËG6Ù8`Û…HÙ7KÝùŸ +¤Aï±êNmüÝta×Ls ç¤)û¤öJŒMŒï’ +îòòè¦ + +§¶„.ÒQY2%Y¨®")u"bŸßbää¶Øù] +q@À$Ù8ö@ášÿ50áöE Ú¿ª¬úØpÒõùü®—­þžæ0Ì¿b¢ûõ‰øv9¾ Y˜C¯ã°uå7DŠ’r™˜V©®,’é8d½I6…÷ªRr¿¨”<ĵÈH i(ß´ÄÛ‚™×µG>ÿÃtrÛVï/,Ø£O[C0LÑÑ]5×Òî¨SI ÒÌ=ŸÈV°¯ Eå ¯”«fKt šÖXBk¨¦ÑîUS©jµOL£~WiÏ_ €‰¼ 鶅 Û÷ Ô^9k>ñåÌ=ï퓝˜#Ûƒý͑Q–›q©Mz±ZA(VIòXb>YÈå”Èʙ,uIr- µ‘Rz³ºÑV]@·j +齒Bú ß  dW'`#g!Ûæ ƽŸÀ­ÃŸ½o=¾îUǹ­½˜C;‚|{Z#"[o]M©¯IÊ×jñÅRE6‹')” oTWV¨(¾ŽÄVòX5Æ֝ê¦U“[Ñ+Í+äÛ”Õh(Úà\¤A±Õjöº|l>´ümû±/^ôžýêé ï7¶îK>Ööðˆfs,Îؐ'¯N¥ñµYJdXÊ®KɆ2_ÄÓf dz‚ÀhÀ ÌF<ߪ!ðz¥ÜA=P„4ÐÖ;A%rê¯@ýžEsw¾]úºÓkÍäЙM? _pïï8·#,¼¾-:Ym¾–+jÀQYµåņ<YKçªèò G*—h“ez}¢¼IŸ$·jp’^iŠxo\GJÖ9‚ÐÕt[æƒi—ó»v÷O§ú=Wþ{ìÔúŽyè´ù{7÷†„­Q‰UmqYœ–d +݄/¥4ä°së +„šb)ÎÈR$Ī8ƒV}ÅpKsÅØ©ŠÓô‰ãUƒ•öu_8‚tƒ#TovúóöÎùÓÝý4â±tìÇã_öŸÛ×6Š=sӬꋈçw]É`X ŠÚҊsïdU¤·¸ÉÍ4a|S…$Ö$’EÝÒÈ#LòËM²ÈúaTí× ! LdN)Öσ†Mó~kßêøóÐîùcãîKž_o}vvoÓ8æ”~,è’x8<¶â»˜4jÿµ¼¼ž”¢ô®Ì’äbyœ•Æ‰¾_QyÙ"„Z4û¢`k§0¤mˆz{˜iŽÞ4èþ†þhހþµ×ýèÉ&ǁç—ÝqܵyòÌÞê ß²§9OÂ"n|@½F Œ¤ä'gR®> ݈²Ñèá6fY°M\dÓ2m&VÀp73pp¤,°g”nÐW¢A²ÊêÖ8¼µ¬vx2¶ 5ðÜÍÉòêàŠ¦éc/Oï‘O÷äýp>Dþ962{"1>m"—øS^úÕgEYQϹáϸĐ§Ò‚ µä€ñzÊÅñ6 +v|˜‚yô˜l”¯@ƒj…ÃGórÔè€ j`b™Cû´ÛÓoî+ o=]«ÞœÚÅý÷áÒ×þ§È3a¾93WÓg’C“§3"㧉1±ÓÔ¸Èé²ká¯xI!/¥¸ )uJàTmªÿ söE7óËC»€¿Ôj?EX¢z‡¢Úf–£?l^¤Ÿs_)óØÀž;±­xöÜþÂًÙ³a'Óf¯œKšÅùÄÍf`cf‰‘³ÔK—çʂCgy!Á$a—~W‡¼¯Ž¸øÞ‰}g‰ô{×e(]P£æù¨®Ž¨;# Q7ÿølž¶¸ˆaÿÊ +8´Ž +ÇÜòáì`öá äÛxˆõˆ…d¯( œ¸ y§Br&ègƒ€í¢ó ¸pô>¨÷õƒ;~¾`ÅØó}ÕÕê„jéuBÕüàŒRÂ*G!lu)ƒÝË)à¾6<קÀi·xðÝ A;/CԞPHØ i‚ Ë=Hßøõ‡1À=â bPz\ÃQohô<-^öô˜Ð(³Åe´ÍCUM-tàÁZ':¸-"Áö%ä,áÈÚX8±.λÿ¦ی…Ø-~øµà·^€ìm灴ý\ßqJwžÖ®Ó Øud»O€~Ïq¨µË|2ô P’G( £‹a­c>lpNƒ¯Çý—ýòêj2[°Ke쎻8vGEłH "Š„BH)$$Ò{$!H‘*(( ŒX°À€¢.lˆ"(Ê3öÁÃ{¾å¹9W™?p.žëïY{ío¿ï›fFûœ0ðœþ Á¡Å dI_ê±Ë}³ÜRœ¼€¼b/ÐWx"xðWîéÊ] ^µ «<À²úŸ¨¸„|¿sÜ8ųqãø0}<æNÀÃbû8øÁ!œ§—‡ÀcVx}ï s¼àÐwª¢ƒ[‹1ñ,b]•Y¥Êä•HùÒ¡Leäéôúl‹QuÒ¬`ÕZdY-IV›Q¾£gu‹DYø¶@Æé< ␋üŸ…›¾ƒ +÷™_Îx:Ÿ÷[9pá Ë£ó!Þí5QÁ-eè¸ó'ð©Õ& +㤞É-Pq$F™D¥kô +É(á›…Üš|·9ŸÇ»eâñnkx¼n1—ûP`  #•±|"ȜìÀ„̍âŸà”ÛôçöÌjò]Ñwéà¦{MÁû®×E»P™[[’L(Ï'1¬F:רgK´j¡J®PêERƒ‘+.4³Å§ò3ÅM7óXâN-Kt_Â>Úâ›kéDP"ga^c¥'qö®q÷ÜÁK>˞^=ðSgs×•úãGÏ×ÄŜ*OJ)*J¥çåS9ZS¦XžËW +tr]¶:ǐ¡,È£+*,4EC>UuӜ®ìÐ¥ËïKÓeÝ"[q`/™jä, +·ªâÇI£g·M¹¸kö@«÷â‡76Þº|tïŦðÀÚ³1Ñ¥Õ|~y +M_LaË­L‘ÀÂQ°M-àͥæXL$}™9UÎBȹn&ê;t$í=)YÓ-²0Ç™ºe pÕD¨Þ`ÿ©ÑÅaèŠÇŒç¿{9výî¿áZk gÃoaGª£Q…uèdC Žª¬ g Kév1[F?!RS +Ôz‚ÅdH¶œ4%Yêò0ùÿa¾Nÿ©Îû8ŽÿŽý¢˜²u‰©)¦H ‘­dß9„sç8gáœ[ölIƒJÅ´\u]I㚚¢G£1´h™h’êjs´P²„+]Õ¼¯ß\À¹}ÝxÞþ¾nü~ÇçÝsDrü^½ôûG{¥«TAÙPIþ ä=uzµ:Ú¬5>tÛk¿½ã¢7øØͤ﾿Mw/ukÛ zDs7›u´#)yÿÏ)òª6YAÉO9e;Ï푷TÖ¦þP{@Üüý!AsS¿¹µ‘wæZCRsÿÁ?U O>©R…¦j¨&;Žš«áŸß¨}ºü­úäM[¡‡öZ +W£}×^îwÿ±76ôÄMãàU¾°ºK,ÛՑ–»³=«8ãRA…ôbyµ¨­¦–ßÚ°Ÿsáԁ„Ö õÌÖ«õ ­uìŸTqZžV¨‚"²¡ÎD 'Í(¸`A™í^IyÝ¿’20d«uû•»Q琯Uë“P—¦è Æßãi5w¸ü²["I^OjfƵÌ<ɕüawY9¯«¦*¡³¡šÑyê;zç…Z×Õïè]ÿªŽk^wi°T”ï4¢ Ù„ò¥Ý”xwg 10dB¹õÖV»ó»IÛ°¯Õ™—!NG£|÷=‰‹ªxÈaåò~iªäw¹\p7?—ÛW^Àì­)Žëm,ím*‹îm+ßÞw4XºýƋÂèk/ TA¥!G—Rpn ñôª.qï¾.qstå× [ÝÖqÓ3c>VÇF÷¿¡nÛ=RøŠõRÄL{‘Æ e‹øŠ"I‚bw:C±/ƒ¦8’­hΎº˜CºžñB‘ñh$3bà­\ÔPpJŸxÖ®Côõü…èy¨Kü2c¦~þß띞q_vdÚËrßT€]åûp·Â÷tŸìInpú¤˜šF¼"äSÜpè},t–66û!l"F©ÒÿMlàÛë ÅIéÈð3Ff„9²X«‘!±AúN{H+‘RïñßƍQgèS‘“´ÙÈw´yª*’wŸlHÚ¨ƒTG=ÈÝ ícŒÜpsìdX"[´ò,GÈÊ\‘Zç É$7@t6ÂK¡Hê ¿‡ +/ìûÑó¬Á˜ÙøáØiÆmœ>MKÿH{·­ +D6XkB´A2]d» ÏÛ¡æ(¤["O@~bN{@¶×i‡ 9‚ä–ˆZ£ ìˆFÒõØ?x¿Ñç9ýŒ ϙÓÌaÖc<áMÜ ûãcüóøyš*“·K"ِ²^rò¦ÎÛ¬"/c”›cWŒŠø—ü­È¬òƒ¬>iÇ©œŽFò9úÑÏñŸݬ…ÄۜÜ{¼é„çü1æHÒHü„@Á˜æ?ŽŸåô³”ñªü¯!i­&R×i#gƒ.ŠœõQêi„ò@sTn·BÇÅäçz!§<èyõ“¬1v>õï eJ û?¢VÞ¬ #éCbhšw/eŒ=(}Íz›ú,~L:Àœõ%|H¼Åžc«‚d²A@6ÈÈ}“GnÞR§Å¨Üj„=˱—j…*–ÊÅn_J2}ò‹Ãærªcf32gҎñ¦$MÂIñٔqÁ¥´Q~÷Ž7ÜÞÌל¡ìGÌ᜻ ïvÜfOJ¯s¦E]¼Y¾*H±P‡¼éåk´P´N•äæÝëaˆZ¿åØn…ZÆÆÏÕwe…ÌÿCI~äT~%c"«Ž7*kHN¤¿ÉT$žßùŒ÷KácîÍ¢ܧEwØ/ ¯sG²»xïvtð'¥—g„ª@B6$“7ýù®Ï°&Ï5àoÂTÜÚ#¢G­¢Û:«âi)E¦ ‘ed“ÁY„„$oH I؄¡ld)C@+R´­´§Ç>}/¿Ã‡ßçç½Ï}¿×ó§Ö0Ò7…Hç•^Ú’0iöƟRÝO~ù™¾O$Ø,òi®³,ŽÏKš0ô)QN|BÈ¢`•ŒÁ¬Á zÎ@`·/àA\—ÿ$·%à%£!è5åvð›Èê_±kä]7Öt¹ Ò7S.l»€ÂÖø£Âõäût³9ÖnFåñ füÂà…=¤ˆÉ÷‰©ôÞ°œØ|܁Uǵ‡6ó[Bú!ã‚ڐgœªÐiznŽTŒ[$ãß®ês†°ƒÚ€‰ôÍx¤oʐÝÈ8¿dgøWžÍÁ¥—os0f3iAö“’p¯ÇZà‡Ö“@é¢ÊbÚ¢2ÙMq?…• nêÔø.a~DXŠÊ+"¼ˆU†ÍPóÂ"֐ ‘´ é›"d&R¾©0Ù òÍw~T]ùò·ÇãsJ/³)…¿Ãh +Þk0‘x—Ï ¿ÃæQšbF-•£&çð*ˆE ¥‘jQQDkbaÄ 8?RŸ9ÅQ_Ñ3£æ‰kỵ@Òó`„™‰ôãú ïܦOªË_,•Zí_¬t86]âaªÉ¿e?œõ¼'#¶‹èa <˜RÃN`V0epIt&¿ªæ‘+ÄÙ¤FI©7)ƒüD”F™ä¦P^2’)³$9enUH4 ïÓqé!uL(Ïnø_©ÙŽß+Ü;WcÿõT…û¥•]vˆgGjx@c5¬FÈ¢”óøLGçŦ 1¹¢ôèRI +­.INë–Ê迈“è< ýE¬˜þš²d  ÿþ^mŒdÈùF1øPaºí]í{fê펎«¯_.õ¶íÎòhÎ"Ô&“ÃÊ% J¡ËÌå‹àL8YÂVˆ¤±E1³F*dޑ Y“bÇñ±S,Aì u-Ÿ3АýŒGr¤kƒü¯uAééõKê‹[~²0zÑd{d´îڅþ +ŒÍU€{}.ο2ƒHP%G“s%F†(– ¤1/S”ÀUJøpµŒ ·É`î—«‰‡á) ¿ŠFÐV"Ð€ŽÌ¥ɑŽì‡ò¨Îÿ+O­û½îÂ湖ïvN¶YzØàr¾G}ú¹ÔÏM­Äú•dGàóÒ©äŒäX†\ʇŁ@˜.âÆçKX‚ +CÐ,‹ Êñc LÁ3˜ÉEGD¯æs†‘#9²h¢ÿhÿ©>¡÷®ÉdëócVÆ÷[œL:ê<¯ÔWÞº^^r«  —™M&É31‰©\_.âs¤)"†$WB—I)‰ 2’¸_F‘Œ ©‰“0U8M_ "X»Ð ¹“ä=SvXk¥î˜Î›ö³ëž÷šn¹kyð^»ãٖF+u­kQEov1›¢ŒŠJÌ¥Óù +›‘À£§ÉÈ) +11¹8)<¹^JH¹'HFÈ'¹‘Ò阵€(ä|x'ȑ,ùûРÊý¾é+í×=§t'†Înê·ø²³ÛáL}››eYƒ·K^m€wZ%.DRÉ/¢ÑXJVlt¾€KÊIŠÏÎá*qˆâ¶$XÑ- Íb3'a\ÚtÌZ ÉÀû Ò ‘Þ¹õ×íý¨·‡Ð/†¾Ò}tzcßÐ÷ûZúìOUw¹Z¶aœ2ý0ҺРAMx»ŠBŽ.gÆD•Æ± Åb^HQz| ªP觪ùªºD~Śxå3N`î4}-€bˆ ÛQ ë_(PfˆZiڍší3BMhö †Ÿœ4è1ÿwý°í‰Ò~óœ/yÇ-„Ö`?vÝ@Š$ÖÅPñµ\FpM"ÛOÆõ®.àcªÕ/u‡àFÍxÜÍÊç,ï’ÚZù’m(·5Û¡_;·@šÑ Ѓ©=¨»“'Ö5ǩª[SðÐéRꠇ¨ÏǾèݍ"vñ¸;tbP;L¹Õ*¢cZS™ž-,÷5ûzkûz›†åÖ4M÷¸=KFVØÈù)[ P¼šn2€Fz×CCÿ5€z¦÷¢›_žZ¯~nf¨š´:’©¹j"u³ä>ºéHàAÆúà‰÷£±¾pøѽ?ìÚ¯¤ºô«iΝ4§ûTçÞ¹(—Î…p—ŽÅUÁ&Pl„¦ªõ ŸÛô¡¾}¨kÂjœÛ¯U5{j£êµÙ®ÌW–‡%/í¿{îz9ææJÔ¤¿#î)Ö-pœˆñ§ûÞÐpÜ5‰Á×4éX'M!þª¦–à0ÞM°ŸxŠw[Ä^}ø[ðZ@’4¯Ò†ÕëB÷:t¡¶a}¨~~ªüÝå»o7¥¿½´K¼haÌ]°9óæÚ¹¨yÌeü|€eð<ÞÆoŽäà=Çpöšã¹ºÍIÜ®Ígx:Ïz]¯Á8¼¹ƒ±_¹i÷fþ¦íô˜µü™©V¢¡{ÚPsT3¢•¬lEå.ë¦.ŸÞ$\¾¸“³üý~Ú²õ‘ˆe§ãØ%¯3Kþç}—p¦7—IæžË ÷å8K×e±•óJºµãJ­ÃJ¥Ý‡f{Ûý6Ÿ;Xø±´ªñBê«ECM­ZPՀ6T¨Ñƒ²>í@Ë?Ñü}b#óo“$`¾®ìWù÷£à{Ì„žtC +É5@;ã ØçA‚‰_°Ùm@ñ%kPkjÚÍ~Cf–àõeK0»ªÁJjn@A•Ý((ÿg4”:£I€á?|—kXÌyÇI*§xè ‡¢$%ÏçRtšæÔšfš™f¦fjjš¦3Q*jS$¬b…°Ž­ÇéZ\«ua÷bí®­'¤„q˜(Õ÷ùïîëñâóúþ\×}ÿîßý¶Ë Tp0ÊÄzS¼çs¼ˆŽ( 2â­ãA·Ù îòh¤¯ŒB–mT«Â‰c4Û탱Û!û× ÝÑ]Ž~è^닧¯q¹‹D:ÞM"µÞ!‘ê#‘¶M)†ùÔXë‹ag˜ +'ãd¸›&Án,ÂD#fa$ȋÂÀøO0¸K!´ðG¦¥”–>(¶òB¥µ'j—º£ÙÆ ‡m6 s™+.\ÔIç9¢þM©î‰´¥D*€ñ9æN`± Ë (°7Œ…‹ÑFx‡!À$áfþˆ™ãƒ„¹^ Íókžxó]‘¾Àòë 2_K,GT-t@ýB{´,Zö¯Òö_¢þ]¢þ$’ò‰$ÅÌ)\˜N¥aþ´8XèE= …ÃŒ¸zÃs¦ü\2Ë‘ÆNØl숄Ù Î^ ¦‰RMVBd²2ÓePšÚ ØÌ•fV¨ý*`ÿuÒ}P\¦ƒµÁ\cðB瀿Ù<æ¤JmÀQۂµÝÌG0Úց~Ì´Ó® ^ÚÊ 7Pz<ôØä^O$¾ðB°7âßyÇi}>Ǎúhc'|>ÄB'ÿ:8èƒæ<WC𼍑2‚Mæ0,À—Ø€›oN¥X»×‚ÙêŒä£® w¹vÑ´kž þäʯÞHúËä¾H|å;‘ ñ×úÄúˆ›ð×ÄÁWH^: á4©.†x#=hÄ1æÓ, -GšrR·:"¥Öœ– `qó„'’ÏyƒqÅôÛ~ =õÏ@$=š &j‚µ ڐw c!o&ƒ‡¨ 0 *áÀr4ßÙb÷YÈ0CÆFsȒ,!M[t…=¥NàU»"µÉ)‡¼Áþά3`^DòÍ`0~폰Iê³ð±¤¡-Y©I‰|89Hž  #Dÿ:Øë#eDN3±aäþfȎ\E¢%ä©+‘!_q‘ „Uîà7xƒwÀ܎ pN…‚}!Ìk‘Hþ) +Œ'Ñc´þ-uh“&éÝæWä‘؁¤/1Ï(ˆê£"B`÷pà÷´„È7Y®³ëke¸9ò⬐˶E¶Ô™ù®TxAT€´æðGLroœàœùÂîŽcþ?šüK¢–ÞO~K¢ RÞSŸS?‘{i_â§cÓ#:¢u6ᐼJ‚UÙO‡ÒÅjoS„š£p³ +’í'r‚"DzR¿qÉΐ1QcÔç´ÖM#¼öø)'ÉبïXךäækF/û%m˜ÓG{Ï~B¡?dŒ%ÝKžˆ¿ËD¬.À±š¶­±võ¡X5êu3QâiŠ²`sl‰¶BÕE|çq•Üë³¢0H+«Œz/©‹}+ÜK~Í?Hâc½dŸæ¾`vóŸ1n ûèOÒÿ¤ ¥?dhø=L-ç6k”q“=N¹Æ™LÔRî +=d,×GžJœfb«‡ *`[”%¶‘íƶ¦¸h‹¥>U^Ø°¢ló`æÊóô=Ì>þ¾Ô§ÜÃÂßٝ’G¬ó¿0odÞg>õ$Èn±Þ¤_ç¼ç_Iá\âŽ2ÎsÇ)º—pàÙFn£‡[lu4Äv·ÙØé?5–c5ñvw°Ö¿)ù eGõ+ ŸÊ˙%5¼‡¢oD÷ÒHîò:2ïp»²~Léξɹ£¸ÆéÍéæÉΧ¾å}àâ°O¤2t.‘ñKõ °ÖC ‘7·™·†˜Ë:ßyã»Ã,´ ›ìÞÔÒ×Tñz·dÄüVG¹Ÿ[ʾ›µ=íVF½ø¦¸9óªðPÖiÇs.ñÏ)/ð®çãýšwšÿ"ç„`8ã˜P#ì~ä}bé©„C:1—J"ón!ú±“ȼõëÐè=çsSÈbMs´íËFêú¾])¶‰c~.SPnrn(ËW²«%3äç¤û§Åíʓ¢®üNáêcž‚Q¿ê[ñ ü øµø€ä=¿T›¢ ð,¦BBxäy³‚èÉ®Õhtž9Ñâeú±5hÑp[Ԋþ²Ë“vÀ½jaÌ­J9åj©Šs© Tð}Þvi—¢.ë¸|oîÑÌCª#Òã‡$ +Û$·ŠZ¥½…-™Š½™¯2šdA£ìCª.þqÈ êþ{‰™¨'Þió:ÃÑ&šC ŽD,{ږ°îÁ^¦ÿíú´è«;2(+r9gJ‹' +*¤GUÕY‡s”²[ó÷eu-þFv½¤Aþ¸dOöse}ö¬Nñ6½Vñž¯ ð Ùâi(&ØAìÌ;}ì_;c䰛ñp‡ßüþï­‰sº»Ÿá£‘}¹V’t¦*›ÓY®´—–IVeï˯W6嵨÷ä~[T—sªd—âJiuÎýÒje¿j§òeÖåkq•ò@H[2YDÖ,%¨!æ¢i¥ÞäAGƒ®Fƒ>sÿ:jùàhìÚ[i~Wš¹¿ß#J:Q#g·Wå Ú*J¤-e•ÙÅ»”uMêjõÁâ*Ugi¥êrY…ª§¬Bý?u…z@Q®––«5B]üã ø;sÔýŸîúŠk:Ëâ~“#-‚€  £4)ÒA)¢Ô¡¦Zˆ ¡I -¤¡ +ˆ *HDPŠ¢]@?«®ŽÀ8*£ ~ÆYѳÿÝ}ÎÃ÷sÏïžsîÁvÞ:Â× {ˆ:,¥—{íþÙç²ý~'ÍøöÅ ×B½zj£Z«øÜƲԨ3ÅY Õù‚ò¼i%9ՙÙç²ÅÂö‘p0W(œ‹D/‹DË)¢ì·‰ÙÙïy’@4–!M?a{g6—-—KRï.›‘~°‘4à¤q·‡j4Úh¥™ëÙ^åß\“À­«:Y]ž_^š+(.*NË/¨Êå×g·ædˆûÅéâ)ñ±üŒ¼åԌ¼·ü ñŸ±’@Œ:ŽmÁC–ã–§yþSçnÂë~câó+™‡×Ôǯxï¹Þ`×Ýìq±é°_ýÙ8ΩZAdùÉô¸¢ +ё¼òÂTaiEfFñajÑŜä¾Ü#Eã¹É%/„ÉÅKiG ß$¥¬ÄI±Ø;8®Œ‡Ò-88½ wà>\ÖÂ/é~½e*=3rpëÍAOƒþ^?Û¶¶[cK8£¶™Çþ¹!)¢èLj¬¸F˜”UŸ’^Y–‘\Q›Å/?/Š/¿œ[>–_ñL˜ðóRZbٛ$þ‰•8I ›Á÷Þrԫ⾶oý؁{q{nvÒhã䘽Úõa½î†õ…^–k]g¨Oå¥hVñ…Ä0qÓј¬†ÌÄ´³âdÁ™Òô„ÚêL^M“0êTWöᚢõO„Ñ5Ki1Õo’xU+q’@6‡\ET)á I}îQFË£Êè×{*èÞ´!éæ¤Ý–þ17ݶaŸ½ ƒLçê¾jiO$3¯#>$«M•Úr,îȅœ#qÍÅ)ÑMUéç2CÎuç6Žd7Ím\N ;û–~æÏ8I «ý“jÐ÷ôû€TDôˆ×fl”»¦\µšoÓ,jo:” {åFøeõDzS{““zÒbb»²ã#; „¶Wå´×§jëHjNgv̦³Ú_ Ø-ï8çßó$t¬%dõòèi×F4;$îݑFSÉh䑎Tïì^Ŗ8í¬›ö6©˜òÛ_p›í& £§ŽÆò‡ùÁ¼¡ÔðÃׄÑ!ƒq쁊DæÕú$ÿ«í߁!c`Và7ð61 ÷=/°{5J’qP)‹^^ ¢Ù>º;JB·f6¢ágdt噡mÁB¾á±ƒF՜§AÑCƾìû,Ç´™POþÝhޝÄÀˆÉ6wBš(ˆ¯ˆò¯¡wðhãñԉ9mb%š~óc„ÏÈçPI _}8-…æۤН«Ðè <F=¯Që+©†ß¬äO¾8°µø¹»Žè)Ý4miËÂuŠyåþ(<Ÿâ4' ôŸ+d1æ*9´¹s\Ê\gˆ×ühˆç£'عìýË_lï{³$2ZhBhº›€F®I¡+“DÔ>/Î¿QÆÕý¡·¡òKrák{5áï.š©ËTƒÄå@ó˜%®uøR”=w1щµ˜ê°˜íá»XäE_¬¢Rè^K>KC ÷å˜× ÷Å/>î/×i’¼¬Eèþ%„Fûð¨o”€Zgˆ¨aAÕ¬©áË× HùkäÌU»-É«ÎÛãV½´"WýôCW9FœÕH³ Õ«€Õ”}¾«B[úZÁ~ÊZůµ³/9º}¼êôã§)g×OÿrvùôÁÙeíßN’ü‚õàfB½ƒ8Ô2ŽGu³R¨bE•|Õ ä|Õ#¥5“ã¯ÛlŽYwT [÷Ð`¯Ów®iù} ÓõùÆÓ£}xÏØãù=×Øý{©ÉPcæMæÎÐeáC–0cy^aÞ[I2ކP_B-7:=ƒPÙåÃ&\hŽ‚Ά80’‰€½dØÌWPÔhà¿ÍØØ'Ì bpÁN'ÈÔt„<­ƒP¦m§uì༮-tëÚÀõÝÖ0yª'I7Vÿ:V¡Òy„DË8t p|PÃGÁ."ôIL0“a€<7y€»¢+ДœÀ_ÙØ*ö¶ÅbTm€¯¶Ò·ZAÎV (Ùf§ÔM¡QÝÚ4L _ÃnHt©« ¡’ Ÿ#”Dd\(ãY Nðm" In`!í ¶2ÁQÖÜ䬁"o¾d `n2ƒàM&¡`±Š† PԇÌÍ»!³”+iC­’4+kB»Du£Øý±d- Ä_F( +†ÎëTðn°àÚRûÁ¸Ì7X‚5Éì7óFp—ÖŠ´.0d´!PF8²;!\vÄÊj€@ndÊ©XNNÈ«ÀI‰€¡CŠ‰ø˜o€@+°öËÀ!W2°hJÄQf¼:düþ…šà{RçvƒO«>Ð/}Ðhc{€6mÔÇÆ@]Ĭ˜õ£ P¾˜eݼÁtó·7˜|‘|µÿŸÁϔA–$àØÊי ÁT%à°ÔàOX黀™¯ »Áÿ¬>ø]4ß.#`\5ƨ øL™‚ϬÐ_šý­9ÐÖ,€ö—P×-¿RÁò ,?SÁü“ÿË@5–‚"°ÍIb-aŽdóV‚¦p£·'EåêBP™>0OïÿÐ]¦QM^[“T«§zYuQЪâÀ  Š ¢ Æ9! IÈ@¾ @ æ‘A@£‚(rUZëP´º¬½ºœE¯ +*È°ïwû;ýñüÞï9û]笇ظmÞ@èXø  ªo#Dõûî‰/àÞúÁþa‹ÿ$vÒløî¿a,ø|ÂÂFk~¹`WÛeµ0½ã;xۜ€·{!p .ÀáºB ²i+nü hkrx[6é¤Ïûá²?nnüÃ̀QŸ'q–-–ý“[Fö֏8āÿûhœ—=н€³Æøç€0È Dá Aåq1ßOö#pR=•³%€~ÈhÍþ@mß ä3@ê Òµ­@¼¦ez$‰|†eÐ[IZ؀ wÏsîü“˜*ÊCfýèVæ=zGÌÚ%v?íç&õçWú0ëæêeÖ ¡'öw³aO"¬ñw6êx’ïí ½ Ú Ã†9è<“³cÉXÎ^÷Oš×;-Ï÷U¢,øiBrÄâ3p÷Fòm^ýVì!æuv3û։ثÌó¼ËŒ>~/ãϸ‹Ì÷¼nÎólì$¥ƒ;C8ɬ™ û¬T7[àºÚ|©úõفa•䮛 ÆÍN…!ßFº½Ë#{½4°ýiÅ!÷U‘¿!º¨_¥Ù”>‘‰ñoA%»‡WÏíæ‹;Ç9-<þ$ê`÷‹O²DfÞhl<º%nŠ|TQG€³ÐÐ ÿwNê::ô>rÐ~®uœ.ö›;ZºmÑ`Ù.×W&‚ç£<¦ßïAȍԄȾD ¾W‘Aí–ç3ÏJJb;DÕ|³ IØÎo·òÎKŽñ®I›yO¥ÍÂḑ%¦^×H>ˆJÿŠ­’Ž3*dSä +Ù4ÉÀpµ1:?õ­,Ôy‹Ð7«ÜËásõ†Ùïëœ_ÔïpyP]y«”êÛWÀÙ~1GyF¯ÀŸÔ¦ÐŽ'XGÔùÜE‰ 6¡&¾ZÖ,«”žL(“ô %Ò;HiÂ{I 2Â+F,,ò…jB&)Ö&:W‚ún*J.º“âe¶ÓWÙ×{;¾iÚ4ïIsȒßëö®¸VIö¹T|Ö(ˆ0gËñ-ú$Z“.U—’íN2 +TUñ%ʹ iC +nE>rSiT½‘՟âò՟Ùyê zžú Õóíß¾§C7uÞ27ۉZ»¡¦5/[|çüÙ²íÛ[‘Wjˆ»Ê™ÛN™ø»[ó¥QMÙ*jm†–U•–É-M-š4åcR<7±U‘¥>«4¨¯©2“_%di> +35£±™šñèLÍÝÀA»€,²tÔy ]l ÊÕÆrx¹í»OûgæõŽwۂ_;ñCO=aCçAÆÖ¶2îîfS<®Ö¨ TæhX%™ÜB}¾0/­D’¥=$קUèR:U©)?«RµÏîƒH§û‹«ÓŽ1tÚñhkíuNšãÀ¨ùÎf¤ÙÍæõ ÛGkfõ›·,ºÚºkyWSÔ:s-=èhUì®úRÑþ*S¥¤ ‰Y˜—››#0d¤e”§è›Ié§Uêô+*•þ±"É0$NÊá%ëǘÉúq†5€ö@:g6š£t1f¦î_˜­Km^t¸ÛÜ?çép½#`á¥áË:á¼7R·4Ô²wVW °¥e2ra±š‘S¤Í(Èhó‹â“r+åªìF$!ˬ”eõª¤Ù”HîP<’3ÂSd[XŠì1¦5@€î ÙÙòæc bf¢qæ݉ŘÇ]K0·»WÚ÷Û4¿ët˜›¹ »öÈQrÀ¡FVXY_aµ„˜S©ŒÖ—¥pRK q‰Œb¤¨\&-¬O´+„=JAÁ]¥Ø4_8̗-,‰qŒi £çOýÆ +œ1PíŒ=ö fàÌ<Ìý^g̍Kv½üœ;φº¶žÚ»úp;iSe #ÔÔÌÝ“Û &èëZJMrŒú`:/¡2O_^*”ÕÊy¥ÇNi7Â.»ð*Åü²a^\‰…W<Æ´HÑ=¤;aà€f¤~.æaûl̽ós0ýW0}W–Ûuõú8™/l_Út.Ò³ºƒàWl¦ÿî:jòÊÃ~IH  ²("›ì ;ÃBBB’@aG(‹¢âVÔ©#.­u¨Sw +µ,ƒ0Et«¢VEq=žc= ¨£•bÁʎϼÇOýùð;ç~¹çýŸûÜóžû|}&G°³±P¶µn­jãéÍé¥'ÿ’Stbo~~́¢œêêÕՍ¥šêÎҴ껥? eUåeÏÌ>6‘® ÖS9ìšG¦‘g?2ɃVéù™Env“KÝ´³7üŒ®r­k. Ü^H +Ø÷/uÄÎsYq[[ 7üsbMóFuaÓ¶Œ¼ÆÝ9Y ßækê« +Uõ EÉõÅÊúÞ┆¡uý9©§&ÓÓNMitÁæùû ÉÀ÷tò°‘InŸ3 ×.3ÉÅ^9w©^SÇ°öV¸Õ‘|§ýפœŠ®”Э3¢7\X%XÓQ"ù¼½L‘{~«:ãÜ®ôԶʬä¶ã¹ò³õy²³í«¤m½«dmC9ò³Š–éTeóŒZl7$chäI-Üif+í ÒqAÎÞ3$M‘SØÌc÷CVöÅÚïê{n»­ ØЭ _}#/¦àzq|εõâô«åIª«JŕJ•¬«*-±«A#êêHO¸r—ò{š¸kJ•xñ£BrA7좑þ£„Ü­£‘«­tÒ~NZn2Iý##r¢ß’ëw×ÿöY°Éî§QÖ۞7<–{—7óú…”›{c··ôD¥­ÜÑfå†k”nNS¦2ØÓKÈ¿R2LH.$ &zrX艨³àÃY? +^Œø3C±Â \–?bY>.‡Ôˆd#hŒÝkìŒâyË°q¾¾œo‡oLlqÄd)jMlpÆÔ-:¡2Ø{›-O)zIHÆ8!J"†‰Ã½HXÑ>ƒ--Ît?xÒ9ðÑg#ˆá†0† ¸Œeˆe:@À´ƒ„i¥5Ò !—e‰–96±Ì°Ãpõ\€C†¦8ªâÝhˆñՇ" `Bʂ,ÚR±)ÓÌ!*²BÂk÷Ø þ;[ð«íÁ¯s@\‹#âÎ/ï’x7)÷Á¤üîÞ{Ê4æ<ǃ“.Ÿfàqèqô!ócB±‚E”1ä"SÈTæ,Bâ¦%WØ"á€=„UŽœ^Ájo›3âv¡›+øw)ýnà¿¡ü×ü) +>ùH™áÃmŠW]  fà{Ó!ñև‡‰” T\c¤M¡PšC¾j1de6î°Câß!>êQ­ D®Hhuƒ°Ã«Þñ„à)å5‚Qʤðš£L ÀžÀãƒîº@èJƒM‡Œ­”å ¤° ‰0†&Þj¹Tً‘¼ÖŠíHúÚ ²C®Ö¸CRç‰Ä6Äç½ ¾ä Q÷rˆqðÒ ZŸÙ„qß鄏¾ ðý gLïQغ|šAìA‡ÒCil2} fŒlž)2¥HÏ ®Y‰Ô_8!e·+”< 8“Ë!û‡¤­¾vúCòKÀÇľÀ™Ä Iñpðñ‡1ñ\Èh"G$ð–ÂwH +Ž.Hp¡AêF‡Ú•ŽLwò8(Xa„‚hSä‹-‘§^‚ìdltf‡'Ôß,ÿ˜rØw6¹&`FQ4%o™L::!»öAz;ü½ô׈Qɛ•o%ï¹CÒ¹ˆ7I{-GÈKŸ+௠DÎ4ȝéÐPý*êy…ÞL”a5×%B )mPëø1o­ûLö6ïɌ=~ãi‚Þ«…Ž¥Ô†&7rG­Qoå1ÃI×yC²‡üWÒWñ/dcüùlL¿Üg)¢BèCBt˜š!őŽ,ªï:飔Êc}€!Ê"LPÆ·À:™Í̚ §ñ¢bϱüM¾ïrþü6s_øæ`äkõ÷ÿc»Nƒš¼Ö8€Ÿ„MEqk­K©ëXܪêŠ {HÈ’„ì @ bØ ›ÙB-@"D@ÙD– +A°^µ£VP¯ÖöÖ¶ö^µuãÜ×ïùð›9ߞ3çù¿ïÌßç)­1à ŌyDêÆ>$ …< Ýù‘ø‹ô{“ú>pš}n0¡—• 1á[ n32Þ+øÔù»$lw€Ê}  êðb¨:¹ò»î•‚±ùX‘Û¯QòƒÏÄ)Gó²¼rŠüï…U`î0kq·è&üL¨…xƒÖOš¤“­Ôû”1ê ò÷Œ·¸Q f#ôêç@O[ a#²ù’O}k½Tmµ‡ê=Ž0ÍÃù}ډÿÓ­}‘BÝüs"o×£X©Ç}i¢ç¿$߁6h’WŒ»ÆÑÆØõäÑ°Vê0³+ô +sˆ~™1Íèe9•X”E«T2KãËØÅò^Qì9A~ÌE‘6fL”óH˜ÿŠ•¯ø@ËS@‚V±¶@ö((Cú^ò +dŸ!o5ê•Þõ¼n3úaÓNû™úÃKǪý]/—wtë˜ÍùüãÍ9Q~uqÁŠXžšN-Qå1‹’J8yŠj^NB³03¾Sœ?*ÖÄ?g$ý—“©zš©„$ÎŽä é{êåæ­°ôsðòìð羚P?¶l³›lúÎe¤Öw]O~{Gý€IÇ=VŸákȉŔe&ti§¨§r˜¹©:Nf²ž§Q…©J‹8Y9$Q)ïJRR^†«ÕïèêÔy²:âm<$ò¥H–X¸|¨\^Ô¯s­«Àæ­v-îK.O®íªÁ}ݪ§í7–rŽVëÄ>åѝVAÈÏN¥fgf1ÒӋØjMOuª^˜¨>/NPJâÔ·$Š´?¸IéïIéóeÄÛH\Ì@è\Àkƒ ø¥ÙÜëX +¦:¶ GÛ.î5y¯ioÀnm>KÙW£g®(žÔKƒò‹âñÙɔ4m#%'Ÿ”]ƍϬÄf´‰eýiÆ´$:û7ž<ç-3.û#%. lb$ ŸzoöðæÌb0[·Ü=·Üê\&:7¡;ö/êj;ñE« ³¥¾¼W_v¨¤Šï•_U*є(ÉɧÓèŠB-K^P•åDjωÄÚ^±H;)–äÿʋ*|˔|¤Jó Á‰d!ÙÉÂ"ð¤ÒÜ5.7Í ÁäEg0ri=ª·{ßÂvËñUæÀMÕ-ÄÝ¥ ‚:®gvÄ_cˆÁªô‰Ä„r5-¦4‡uFÇ—xüb“€«»$ä[…Ü’ç\Aé?LQÉGª¨l2d§‚¿ŠÀ=ƒ˜ivÖ'pµoèÿÕٻǩåâѕµü7”·ãwµ†Ì6qŽišD>ªYP|]>º&…Q*4…q«ô–¾™ËÔwóèú £ê‡mø›Á©š§„WB‚-PŽ¼A†˜;ƒ?ÔÚk«#étƒö {h5h»âæÐ0ph¹¾×ÇUw·-§“ú¦ƒuHy^à×å/;,1©ðüæ +»±0”i¬dҌ,Š±‹M6Ž³ÉOÃhoht#$1êaˆ-0Ñ ¼Ôp·€ÉF;0rÞô]²Ãö mì3`Ûfouw)ö^£ÄlÑô“w+{™ßÊ/ñŽJ»#¼E]±þÜ J ˒BïÈ'Q:*(Äv#-¤½3×>ŽxJ÷¿!ÛaÉ ƒm©Ì`ú,ß· AŸ ,ýhÐrÕÔO-†©Íè’ëûi¯ÿ~%æs0ɇv9-€t9ƒ(ÇaŒxÌ@!p`ñ9¿Á÷à l °åÏ,n—0a ßŒ¤û™†ì@Õ”Ývº;®(ííݎš[G–%Ýô];ƒÛ1MÛοÁÞÞ Oʾ£\O%ö¾(wà¡Æ‹¥¼°fÂdlà‰fGì§ÚmÚršÞŸ~‹nÐü^BL Ѿ"4› I\‰ðdLC÷pfb˜ˆcù!™Åƒ5R–lOhÙî0²ÝP¡E‘ój9Nhà8b#¶ØMÀN› ŠdBËB¥ˆgC™b…ÔrÍDd9CVéI½;Äö„hód¤ïðFúoÛ¸¶Oðõí®ú@p‹ê£žSc>âÿÑÿk“˜Î ᳐E©¦³¡N²C¶Øªì‰P¸@^ᆌE­œ égސlçBòÕˆ÷ù@|Ø¢<ˆ:©ËS!ê¦RƒÔ¨/Doé/þG Þ[1|lùï ²h””fº;èÓ U:A=Ó*Ë$(j=‘õ'oÈ×s‘Ù背f2öN…ì /d~~C]ô‡ô'ê^¤O©aêMÀ)^ÉàÿR¿q|m$‚ y$ êr¢Ùȋ³ƒAàC–rr] 3»CSãõ2.TkyPþÅŠ~ÈÚ€¬¶@ȏA~Šú6˜¶ÛdþJõ‡¾Î +Ï|:’‰Ða9‚‡äz‘…[ gBƄ>”c8¦i¦8 0à ù:W‹=7ß9õ>Эòƒvc4ۂ nAöÞP¨†Au,â­òläååȗŠ›Q£Š¾è!ÅïÑ¿)^E*ùT…ð'*„ d#d@ýGÑ4ÁL‚X( aaV4æD{˜%1K튢|OÌå"¿ÖƏßæ­ y³%ü¥~Gä¸nwô¨v?DsdڐúTì õ…¸ß³Š–ý`F¿êùŒ¾ì—ñ5ˆ} EÌ=¢zõˆ°òºƒ&L´ã•°`‰dcn¼=æ +'¢\áŠÙyž0—ù¼.©ö+\2lZñb憘ç†ÆØg¹MñOs¾NÐÿ=ɪíHéӞK{¤¹*¸¯¾+¼£y&¸­O¹™ƒ„î\Äýœ‡ØÄÜ0þTAt¾LÓÞiñ£½/Œ±v¨NuĂ —7óužcżsæšëÂJ>æ?.\ÿ0sÒ}ãöÔ»y»ÒÍmßÎ9,¹©?-íÖwÉnèog\Ó?‘]Í}oDÚå|$u™0ãRâ.`ú» ¡ïÏ÷aÂÌ¥ùS™¨¡÷¨á .Éá͇瑲=ž/4ñúç[‚–/Œº[¶$þö¬•É¿¯Ü(Ü*ºnÚ)ý1wÆ÷ÆòËƎ¬K†Nåw†ëÊæ=RvÎÎ<[ñ7Eœ)FÊé$œ²zºƒ".Ú5«é,uL,¦÷Xo?²Tè4¸8˽o‘Á§÷ýҐžªù17*êfühiH½Rö‰èRéF酒ÆÌóEMŠs…-ª3‡Ô§L§4'L]Úc¦;Ú£ϳۋßd)…øˆ‚”!…J~r}˜Eóçý§oÑY–Ð{|Æ_Ëy¾"űo¹Ìíî2ý”îú¢àkµsù—«k.Ì_œÖY±B|Ʋ.ãäì͊cæíªöÒ/5‡KöëÍ9P|>wñϹ­%úVóKeëd´Z n)‡€J{Œ4·Œæ/ ÷#/x ¬ +b}Íî_›`ß»FìܽRÍý¡Á|±~vLç‡U §kêÇ,“´W®–ªøTy |«zߜº–Ù_çì);”÷•ùŒq—ùc“ù‘¡É2ªi®@Vs%dM•}Q ỐOsçÐüÚ·–ÐYVp¯Öø3? c>ØËéÙ tº¶Få}i¥1è\CiÌÉÅóÚëÞú`±´márùÞkU{*7iwÍû<狹_æí(o3~n9‘ßhé2mµôšþ:oHßXÕ¶ÿf»>£šLÓ0?Iè‚‚Ž8X€UA)ғ`B(@¡(ˆ =j¨ÁjèAš@PÔ((²2눸zÖQÇ 3{fËŠ{vV|÷ýçÇõû>_îçûNnü…MF˜»*Ä1& 8¼µxxóæot~ |ªÚNøµÎŒð¦ÑŠ´Xç´áQuëTYÙ­üÓö9É.}|¾gWF>UžVJoO©ò“&51›/×'ô…Ö&ÜàÔÄßçTÅ¿ +«NZ ’¤ ßÚ4D•¤#/ÌC +ÇÏ¿+2T¾Vk·Âró·ðRº‡¸ÐtLg¦–¼åveàî뢰%1Gz ;ry³r)R~1½)£Ü¿>½ŽY“ÚƪLéa‹“¯…‰’&ÃK“—ÂE©¿±Ä¼u¿òsèæ->‡¼T¡ÜC"Þ{٘p#¬WÀ¿7ÁÛ Æ°ØnAœ“:hO6zIüw V°­zE'í:JâÛ Ó9Uù¾ç*Τ‰%ÁIeÒÐQ'Nt=ü´hû‰/þÄL¬@Œ¤ +ä“TŽ¨ªPî![ –˞ד`¡]tkÀô ¸5°®]µRëíwҗ]&okîô7—ÈBŠÛ£ìK¤qÎù-IÙM”Œ†­7Þ9±'ÕýLW–÷©ÎBŸÈŽrß0y£¨L, +’M1e?0Y²~¡rDãÈ…#CdUˆðVð—€&z 0Œ·_ÿ@Ç]=h»»‹ÐxÇV³r⸁pÜÇD0`Æ¿Îޟ:esöZœÃé¡dçè¾÷jûJ•¥h *d¾þŠAC1…½bø)VO(¾P˜ýÈ óTµŠ{økÀœànÀÞ~ýx{Éo¡eFêg·CåÌ5á='ݼioãs“~¦)wC,âïD쏹k5‘t$ìÖ9ǐ›— ñ27ÿñzOß1™7ml€â36Eñÿ|blՋ6Š<è£È•~WõN°P0-¸Ñ  Âù7š§HP5¯ ¢#(^ØCÌ}l¯•ñgIó´­q‚LO΅›sž²d?8{ øÏ&`V`ǘ9Ðfê©32gòÌ ‹÷촋×ìï™ÎÞ÷‘#ù:JžþÚR%Àì€ñn€+Wqþ œ÷gåC5(~¢Ù/õÿr!õ…µZ í˜çƒÈçƜ%¶ ëYôÎÀgñf~ÏÒ÷Ðóöù,ž·"/Öò|&³öx6dã¶tÏÖméG·ÅU·§ëÖnߣCnO¾6ßp»`  sçãýY9P´@þ -HUÂYå.B¬ò )RyL“£ôØÀRÒ7*ƒ71”[hÊÓßP•)ÛÉÊ,SOeÉNweÍn×å6s—e……óÏw,œ~^´p\þ·…ãO¿›;¾CdòÀÐe€.|‡-¸ƒŠ{2ž!aYb3‚¨÷»œ÷V¤à÷öêþï]5é+ꊟ®÷J¨¾çJ”Ûê™MÇWӌœVóŒ}(Ûâð¡ñûÛì>o;¼6kb»öÎÄöãÊ6ە/úÊî ßa+~*§pþ<@úÀéבk:Àù¼‚>ï ø}ÞK¤­ÛÈëŽêëî®_|4¿økC¡:(rƒ:£k‹Òô!þT¾Ñ +5ìCÝ–è†á^ôûÑpZÅ>}¥w ½Žóñ <H[ˆÅùì_˜HȨhÁ ™\Ñ~¢:L:ŠIvÈMÍQÔ"†º +Ö°Dáš{PŒ¦9JÖڍr´w¢2í¨IÇué|‹†u¶£© &è9öæ+møªïàü‡8ÿ)@ Îg)èk¤îHœ‘EÛ vȜ`ö­ Ñòÿd×YTÓgðþˆŠì;Av‘5&@ $$$6!²)6Ù7Ù, à€ŠˆE*n8R†A[EQÇ}k=Å¥ã©ÓŠÖ­®Uq‘Ê3_ۙ›xñ;¹ÈÅóæ}¿srpig0 b’òÉ´A$Ó +ñZHÕ2E¶¶1Ê´ ±JÛYèeéc€¥‡ƒÄÈ'6ŒPTÝ9’•¢ÒI~Ü’ý”¢‚¦(ʵ€ì“ÌáFæpÃö [83ؘǰ„'à hðiCӐÑzˆ¤u±ˆžŽ%ÌiÈcj¡’ÉÄ&v&½ÄÎO€çNÃ߃†Ðƒ‰`ÂO B Jðπ_¶.xzà®Öǂ6p¶‚³“0‚Ï~b˜8A\4†Ïuâñœxg΁ÿ3üƒOü>CÀ|Áó™x\-ˆ…,‡é@˜0êYà—êï޾ë á»Ù¼íÆàõ{MÀ;H3÷œ)¸Wˆ;¦à=%ÞÉwøÔ/Œ§x0þȃ‘&ø’|á<BæÎD¨d,Hå:Äτ(}‚Š XiˆÀctš `«)ø»ÍÀ$˜ƒÄþ§‰ËÄ- ø?&^[€?iñæˆ >ÌÞÿÉTüÝhˆ\H>æÊD¸§”þ,„Ku ™ YªBò !®2†¨ÉÁmæî¶@Т߽V"þi áEkn°§ٓÂWì÷Âì·B°_ a5ËW²ÐÁ\R'’ïH#’ôݘùZXÈc!F¤ƒ¨](ë#,Ëò2S„Ö›C¶ÎÒMÖÙʆd·Í”dpöGñÛßÄ#vÄgí&ÄWì߉îڏ‹ux!žpx.†ÝS lŸH`ó8ìG!°Ö„`gr{Qv4bÉgمŠ£D¡)t±0Þ1&ˆ*4ŸŠ¨±š _c3ÖfûE·ý;ùv‡7¡{œ^‡îu~%;4ç¥ì„Ë é·sŸIÇ\IŸ¹>½Ÿ{7s~–Ãé¶c +ØÝRÀV$4”³ˆeÓPͦ‘2‡‰4/-¤ñ§!E:‹£ >&¦š¾Ïµ|3Soÿ"j­ÓóˆÎ9O•=®Ãw¹ý60ÿâ÷åG=ïÊ/xߑßôþIþÄûÅ;ïÃávM ×+˜3 çï"ᨠ¡¶ D[1`Á@*é»ä&™ä™äËD3>¤+õߤ©L_$«­ŸªŠì~YTã|?®Ñõç˜V÷±è.¯Ÿ¢z}nFþ•s#bˆ{=b˜wUyÚwTyÕï²ò¡ß¥ˆ7Ü Qð>³ áv&®§cᢠa$7ŽôÞdÒ;3,È!7É#÷È÷ўÈLÏ Õ{šgú c ûNÚr‡“ËçÞPÕ¹_Khößȹ×Íû&v‡ß……ýüs1ûÎD <}Ip"ú¶àXÌˀ‘Øß|Äƒs8žÃ‰p'Ü4!â÷Î¹„t¾l2K %Îôd©s¼ÔoÚãbɬ»Ñ&?æ$³¯«3¾K/šw)­Úó|ò*Ι¤µ¼“ªÿã‰=GíŽ :PôuÜiñ¸ïÅû㟈ö&LîUÁw( œ¡dx ¥ÀC¢Iîb’¿Ì€B¾ …R2Ó +{ƛ*WúI5GûneЌ›eJãÑ¢Dö¥åéNg³óÜN¨Ë½Ž¦¯ä^Òäw0µ5ð@r—p_R¯hhñÉ j_Ȁ꘴?ñ²lwâÙî¤wÁ}©èKƒoßpú–Â[bÉ RH~6é[EFV˜Q“µlƯuNŒûõîÌ×èŒV+Œ.”ÇYŸ*Ns:šŸív(·Èû@VoŸºž?˜Ñ,øréÆà=Kº%}©;¥;RC·¥ Ë·¦œWô$ßVô¤‡ô¤Cؓÿ/ÔàMˆ7&wУ°œ(#³ÔQoÌ©G³©±¿¸0®6úN»X'3åZõñˆõÕȖ¬gaks&%ë–C¸>üõä_GTä·«Iß+&ªgR¯VéRZfQ·6èQ£mvŒó­>¬ã-"ýƒ–{ë9ôצÍÛU™åÕ[^ÈÛRZÁï*^ÔQØ$ސ¿A¶.o³¢9wGxSîß#VçŒD5ä\ŽjÈ}¤\?!m,DPSÖÃO’È;ÈÒ!oQ‡z½R‡[3º¹~:õ¯ö™Ô7³©S½´·éío³hŒ³ßUŸâÚ»RíÕ]Çí\QÊo+¯®/]%n.Y'k*Ú¤XU¸MYW0Y›?U“)ººàaDmñ{Ùg¥ՕAP_¾&¤ýç²(T°¨ûõLêf ‹ºÖ¦CnšAÛlMÛä¡õU»`Ö`«Ü|wóB»mMIs»2<;?Ëån¨-ö_[])XSY/^]Ñ,­+oWԖ~¡¬*鏬(9]Vrž¸UQþ.´rÄՕÖT¯ iääiQo«hjl5M]_§M:Ï4êÒç:ÔÉ-–Ôp÷|æ¾®ÝþöP³í­Ñ¶[ZT.k–zlX½ ¥¡Ð¿©®Bаò¿l×iT“Wðç}" a‰Q‹(”B @ؑm( ‘‚¢€"Š‚"PYdYŠ¨ˆ(.PÅjg: eÚñLm 8§§ËÈ¢õTEg®Ç™3=a>üÎýð~øßsïÿžó>9 +½f–ûí?pfÃތ¶ Ý=!)÷B’3&‚wüÝ7- •éÙèºï:«Ã­ÀT~!3ß·…Œ”1áó ײ ¿~\­·btžqÒj©ñZVWdx¢,Ò¬¬d‹°èX‚]~a²ãáüt—¬¼,÷ŒÃù^é¹Ç}w:œ}.()»;x{öÄìB’ržû%FeÊT¤A¹:Œ']Hxœ ðuE:À€áÓL8˄ëM|èj2§Û$ì†Z%ÿä©ÀÕåÕá&E•›­óËâŹ¥;¥™ÅiÎûtK+ÌóL)(ñI:Z㟘ןח7¼5ïQp|þo~ ¨Ü^ˆŠ¤B”«ÃD&¼Øð}€ê8™ûjh¸]πÍ4\nåAG« ÝÔb¯yºÑWYïoP|&lmþ©M–95q¢ƒU;öUì–í.ÏpÝu<×c{i‘÷GÅÕ~[‹bŠ.n.Š.zSüÔ7¶dAW‚Šm¥(W‡I?eü½àϕ@:@ÁÍF +ºÛ:Îë@Ëycª¶C̪nsÕ-9竟ßj”s6Êü@}¬pomâúÔÓ)Ò¤“ûä 5‡q'>Vn©ªôÞTÕàUyÁ?²²? ¢òë€ÈªŸ«æ=¢«Ñus5:«Ã€‰r%÷jú®œ8OfŸæ.-¨»lHè²a–^tætz/ÏéZ} =b]Zëf«ä–xÛÍ;íã÷:ƞ͒G7(¢êË=Âëê½Âê:}Bëú|BêFÉ:íV7ç^‡òˆ:”©{–Nºxàó +€ÛµW›:?y›OæÏ^T]ׇÒ^+FÁ5);§Çƒ—ѽAO×ïﺴÉ4ñBœU\çۘó{ì>ìȔF|rTÖ^æÒ^çØvÞ= ­Ï# }Ô# mJØ6'jE§àV”ªû‘ÜÃHÀ]r×.’;h¹HæO2ÿ•õÓpl`)0¥²?µcíïWh§öù-Kºjðэ¨÷c¯ÇšD÷&Zn¼–*øàêQèÕ<»ÀžãÿžZGß+2ïž[2¯žQ™÷•)'Ÿî9‰O7Úû^F;uߑ.> gÐ_ÐEî µ“ÌŸdþ+¿?Ā¬ûÚpàþØ{߆‘ü™L3ñž—NÜpóp„~ÔÝÃð; Æ¡wRL‚†2,†ŽXû– +½km•ƒb÷Á>±ûÐßÄî·§Eîó¶îŸ¢ !T§*քðñ!ô‰>±¦üž8Ð^“®LI Åd𗩍lÙT,Çq*‰+™N׶›>¬³~ºLW4Ó g3s‰'|:DŒñÓÏx‚Éžà ê©»ÔÐDÞa5é`áÉ¿°‹äÇþ | è9ü_òÁû•!(_™SŠW"Úy֑vœuc8¼öaÚ½Ö½‰Ô°y³…e=·c‰å\º¦ù\Ût¾‚m2ßÄY·ÐÍY»pOË'´ŒçãÍÍ-ÒBÞa éàÇýÿËßò-ÀŸÆ|P¢&(Pœq%HÑìђ¡ˆ¢”¶BWÚ=iS `¬Å0†F3 1¹ +Ә+ñ°Æ{X®±YËñ2kY|üu‘S—Žõ‘þ}ö.?æ@È€çOò߁ä2ÁµÁù``AöaŠæ”1 +©5¸žZ…ŽÔJTP+Л^†4#h=Œ¥upÍÅ,†–08XKt0ØØËÐÄ»‹“75LòU$ÿ;€àxü ™#€€0Ç%°uÀ—ÂjÔ}4„åd/KÑ ôP@領ÒF)ÅAWJ½) ¦(Œ¢ˆt"¬ ê‰öEÐƖF;R!Ž"²Jh¯`¢8€…¶—  A­ÒÙhy„ƒǵÐâÑH´sÑüqè'î*.ZŒ‘o¿ω7rÐò,þɖXÑèD8ÛÐ(³g £œ‰?ÚE,Añ66Úîá 0G …Å\œ êµQÐJ\ ®·´ÑúY¿ ?ψ×r„ȝÿ/j©ÃõÖ:YÐèB(È>\E t‘1QîÍB§0M”ƲÑ!Y í2¹¸¾PÅäèÏͺ(îÐEQÑK è¡èñ ñ£ŠgôijºoĨ;K¼£ÎËÿx¡,(”›RèfB£Òœ0ÐSÊD% ݂5Ñ%šƒÎ;¸è´_ótÉ߸Jkx(i Z—¢äÑÃG‡>b˜áÏ9<æÏJ¦ø/$/ùÏ%È&Á¥Oߒ"oæ½?B§·ùÆzQèóo®Ë3ªÉ4 Ãoh""£‰ Ušt %„„ÞB 5@B ‘¦TYëX8¸VÔ;zгë¨cûXÈè¨<ûÎ?—×ù~ÞÏyïûûqY«Aè:5[¯¡tMÞ¨ ¬D`f/†ðð¯^ 4…>ÐÚ üz¾ù }¥Ž­ú‹zÈø3uÒøõŒñ<õ +qŽz—øŽú’øš:O|Iãç~`üÌV=¥Ñ.hÖ`™ t "ð7ÊN ¢qQTMˆ ֆ›—AH†ç¯ü$2øĪ3šl5žcî ~è[ý>`Äô-cŸéÆÑ5¯éSfÐÿeþ‚~Ëü ý¹Å#Ɯù}Ƃٽ0½Ã“ÛL þ— Ƌ†B°çF cJ€øµjˆûHÀ}Ä1—@LIJÏQÉz#rô߇¯zVMü#¤ÁôÅ•Ù³àn‹'A–¿³F­²­}xÜæ·ÀiÛ»×íþøÄn–õÁæzЂõL0X^ÛæW6ÀšË!`º`áÜðU8ߐ‰øŽ4|ï3¤þ-¦5Ÿªó.!qƒ§1ÄGQkîGÊ,î†7[ßÞ¸ÝæVØN»ÙÐa‡¡{×ýrÔq&ä¤ÓՐËΗBî;_ yë4öÕáìF°=Ö§#ÀòTX`Ì¿6àÜMØ{ãW"H7BÀÁdÛ²]Ôæ²¼5_g.}ʎÖ{šføk"Ïäf|±ùõØ*ëk1õvW¢Z~Þ´Ãñbä.çó‘#®ç"¸ Ÿt?>í1>Kúgø ÉÈO.Qàx,ìÅ€ÍÑ°^ „`3ÎÿÛù8úxÆØ»,ó|Â+>Iýq®ÿ’»Üð峜DÃöÓK©–’ËmÎ%Ö8œŽopšŠks=±¹Ë}2f€43J>}ØópôIÊ¡¨«^¢~÷Ú3GÞ ®ãñà4žÛÅ@„‚xì{ìåØ;W`ç2@_ŠV£·BkÂc¡³Ú"_Íù!º—y±†ç³Ù¦§9<«ŸØB»É4±ã±™Ëáä&÷C‰íäý ½ž{ㇽÆâ÷{ô‰»HŽ»GŒç5˜¸@LׁpH‡Å@~ƒ$ì{[0||GÑ +ô±Ô=/7A÷*l 7Ê)—ŠYºçQ†SüÓɜ,«#Ùö9eNû2$ncìzÒ?ÒZ×ïNÝá5˜Òïӟzw, –;XýȒpÖð>úIóÀ«–dY>¸-’–á-Ð\!B÷Eݔj oÕBWÚhº‘ˆN(œÔŽÈ}µ÷ɂWŽÔDû+“,z*2m;ÊxŽª’B·a¹±°†"4øÖå«hR~/C’·‡)Î;ªțf•çÝc‰ò?ø‹à]Y뫊À]²HÑÆ[@èY1B¿Vaß©SG—šèB³:Ùj„&ZÔ4y/Ù#g­¨‹$öHÌ;$l›61×±¹¢Àµ¡¬”TW*¡H‹ë}$B%M\ÔÍ(/ÜÍ,üÈ +Î n½§—ƒOY x–—‚Çb íï- ô;ßÍj„®ÊÕp¾:£ÔDÇUè°ÊŽ0®ô\2ÔÌÔÛÙ¾ªckœY›,ͦ©&k\Âw‘U“ªEbÏʊ:Ÿòò¿’²NFQé³ ä ‹_r*(¯äVP~é[† |Á·°(B0ßl5ôg>B¿U t]†«‘€Î*Õщvut´c%Úß±–0ÒNÖêkc,ïl 3R5n^ÓԐb]¿•ãP+Ëu‘H‹ûd÷¥³³|&3ùeæûþÞ#3ï¾0ÞÊÊx«’=©öKvçH–å»ÏÛUì=kç¿i;m_’ë0õptò¡n.ðÈ>¸Ä'³n…_Zmé}íWŠÄÚ +¥®¶>H[Û4î@o¶Æ¤ÐÕ`€®ýGºLspf=À1Zƒýe_ïØLýRsŸî`6ó`aË(˜ßâËÌnQ±§5Çñ ›õ¢üSÙ≧òí²›Š3›æJÓ¾ýÐUÿí_Ü×zŽküÒ;¾qolc½oLcéó9aò‰9ŽÞ1 è5Rk)íC:Ì{ ÀPðõWžXÒÂÀÜó\(n·†¢vW(hdòÚDzsÛµÜñíé‚ ãDQª±Ð:Ù8[¢3.²O0–8ĵ}êݶYÙ¶G¦1Ö»Œ5]ƶõ¹D´š\"ΡKø÷Ô¼‰ÎÁ€Ê +€­Õ§þ*ê/= 0· ð"&\BÖ¿l!£ÃÒ:‚!¥#š•Ô‘ÄÖufq:'óâ:§ ¢;#;?²ŒèüØ:¬k£XݵÛ&´ë°$äF«$¤«WÜ1h|í‚~ú£zó =¸}?ÀúÃÔo¤þê¦þ çô? ±Û´ÝnÐ3b{˜¨ÞXFӛ̊èÏV÷åsBû¦sƒû>à)ûKøýk÷ þ÷«„~÷…òׅòþÇByï ߎôyVüãÀÇæ÷?Kýv€‚Ë@ïx ö¡D?•€æ™ Ÿù€ú¹BžG0ÊqLà‹dÆ0‹%Ìcù Mc{ ½ÏöxùgŽûËu7Óv®‹©†+{uš+}u‹+5=åJ‡Þpñ_›ÏÀA€ÕÔ_Fý9¦\Èèw`l7@Ø0èÊJt€tôT€ªa4F1n¨ed˜Æ8ãÆ Yö8Ÿe‹bI°”eƒÛI Û›É52@¿csÀ'´ÿ?2÷ þ5€ôŸâîP»@ñ` ²ÀEԔPÓ\ÑœÑ Ðì1l1 l0¬1‘±ÄLFˆ“>Îb¸¸”a㧠ƒûÀcäú/ç£ßjÊ׃Êw‘JRCŽ“ä,¹Hn‘¯åƒ“ßï‚!? ’ÿ†šÛž Fz0åEüY¥f¡&žƒá\TOáaÈl>/ r¥*× Qù…ÛD¨('U¤Ž³DE³åï +£å°¢Óò¥¢Oô\ù\ôDù»è‘EÉùM‰Â‘0ŒúQn ƹ2ïÎà8_BëÍÆX=£&òP3]€ …^"°O,ߨ×[½VeõJ½ÓÚ¤ª°RU‹UGÄ/Tâgªs⧪+⇪nñ}õSq¯ú¸[â{j´¾öVwF@¹/ePëÄ`}¦Ð\¤Ðzèi=u\Ԏçc|¡Åpì<Ñ˘¥VtS°~U*~µÑæQäVÉ@d™íoš}v÷5uvýšû^ÍûÍ¥Qw5¿Žº¥y2êFäkûŽH´»…¶Wɕ(”›·aŒŒú€z{ÀtG³h.ÆÓÉR±0#Ž3œšÊ{‘œgñ$i¦å€n‘u¿¶DÒ;nµÝ½„ÏíïÆovø%n‡ãí¸=N7c«oÄÖK;bOI¯Ç¶Ë®Äޖ]Š}$»7,5Æ£Sk<:žOÀQçÐþû0Á‘Ž³-õmèHÓ8&É󼜤d½ÌÕ°Ÿd'òdåXôdYÞI›gs3e©]§~…õ¤5NW7HL4¸\ÒírýA·×­][ëÞ¦m}^ûÇ9íU3Ú~fݐ{S"º6&¡ìd2:ŸHF'âø6ÔQ7úÙtï̓Мº©ÐyT bõæÇq~ÉËtåæ[]͙i{iüB‡öÌåέé«\Î¥•ºMÝ8útêæ”2¯&}•w£þÏ }“ïqýùÑä_åGRžùJEϺ4t¯KG×Út”Õf ôm˜LÝ,+zºwN¥qÛ›éNðx†ôLdnG²*Òó/äZµN~Ïî»Ió[rËþMu¹G5}žqüI•K„@H &á8L¼  Ã5! !!!!BÂ-DÈý~A§uØm·γžÓMízº®ívqw—HEêÈӒÛÕÔ«|­9×Â0ñú‚¸“¡µÜ;áFîzx5÷OÕ¼×ðQQ€ŒBägÌC$kPÊû¾|½sKM„gZ;ø¸Üé>€™°  ·›.=·w¬$Ñe@Éqï‘ó<;ebï6©‚tU¢!›Å•ÔFQ=­.¯•Q#ì©Œ…U"t‚G¬rÁ V¹ðMˆNô¿“ú|D­#2ÆÏ”fƒoà+)À ì;Ÿi ðDok•vpßà‹a¶2Ôv\wzÏ`Y¼s·:íP{qŽG«2Ïˬù6“ëd:jÔH343ôâë!ZñHXiþ\„:ÿ!«$;²Dü0uÁÏt–Ê𯟠ù[ƒ8?^á¿Ûì|ØûWáAµ ,Õ€9£a²†i;d8åУ;Ð^žrðjiÖÑ&µÀ«¾¸À·F¥ô7•QõŠ*šVnbh +ÛCJdCáJé,K!½)—þ.R.û>¼Hþ_†R‚T +DQ!²5(à{îA‰½W °iÀÎe$ÀJæë÷Á/©§Ûô£wwT_ÜßZÉþ IŸq¤®<÷xu™Ø§B£ð/Wk(¥%•´’â†RÕ"W„K‹¦Y’¢{‘â¢O#ÅÊoà T?1eÅ(¨°Q0dkP6¾ î¡;Î`͈½»ß"vŸ™&'3{Â@x½1ÊþZ}ì¾&ãe·ºjÎá*÷˜¾BtB«/ôS——PTZ}¢¬Ž.+m –húÂDê©¡z™ÅW?ä«¿‰–þ›)*E´ü2D—¡kß~[¥OªpõKfì]-ã­{`°õt·R‰m-»Ì泎uñ.UõilÏR£Ð»¤ZJ*ªRÊ%•Æ“¢Š¦@ßÊÓM„çèîFdë>aeë¾çêÿÅäé-·Qù(Àšw€—ø=|¦ÃÔÜkXhÅރýk°}twK™ÐÜfWßvzoUkœ³®%ù ÆœyTeâ—7J|¤ EþùueTam5-×hfäÔt…d֌‡¥Wß ¿RýóUXz͏ŒŒ”eDL€5Ïø÷ðÉû;h¸‹çÏ´Œ`íê!@[¯+˜{} õ=LÛª®_9”w^ܧîHr+²pËÚ¸ž’V‘wÞU9)·ECÎi6P3Í&§©“‘Ú4œlºÂ6m„&™þ’lúžbB©&fBdkþ*Ã=à[\ŸÎÿž?ޅÝ;`ë@ãð¨öÃðI¢v0ʾd ÖQџà\ЛvPԓ}„ß-<Æí’zg]/&q:+È© Tv{;-±}„ß¾À¸Ô¾Îˆ³¼fÄ[Þ%X%± ‘1~Ö¼Äïái%ÎwpϿэ;èèh˜0L9‚nê(h¦(åT¸máäiñxœ“p,م7šq0k”8}Dâ™:¬ôbé|ëü. Z. QÎÌÆ<Ƽ¢Æö¿ 8߇ü/ô!Æך?”á êV®ÜÄûà°ƒ6OTÍbÿœ·ƒ¢7(\ðÉ“˜7mÇ»uÞ!kî²SúÜçԛ\7ölþ¡ÄYőK3Zϋ3µ^±Ó×Nœô==}‹3½F:5ýŠtjê­OÌ$:ñŽ™@^Ö<Ãwð ß!îïß;Š;ÀjœÃþµ ]®îþª'pW ™«DÎê»”ÕK»“î¥ìM¸—µ/nExàŠÌõܲæà™å÷SË­G¢—<¢–ç<"—×ÍbðnV€¾Å>hÕÃÄÖÉ0¾-<Ûâm[ãñ8—u{\Àºrˆ#?’óZ_#É3úM/âeÈȐñîo ewbp‚š8S-Ô]ƒYÔÄr¨NçÐaU‹y¨,"_“M|Tn'U¤šÔZú¾Ž\&M¼aåSހ²›×¯àúTÈë%=ÿÓýOÙz{½U z9ÐgªIOë1!€EÝ4ª1…C×¹z. 銌ÞéÖý¥ÝhÔ¯-öiw {µû…=Úákí a—öœð¥öº°CÛ,üC÷RøD÷NئCãò +Gõgû§„s¯ùY‚g.¶û/1nó_nÚâ÷•è‘ﳇ¾ß˜ß7ìwÏ°_Üd8"i4œ’Ü6Ô[4îX\3<³¸ìÛoqÉ%ýP|Áǝ÷CósïÁɔ;eàT3À(ª#–jšnC±îLo´7ÓÌ> åµ„¥ †Î3¾7%_Ôü…ù­ â›A_K®n”^ ,·¼PiõsÀëú€c² ?ÉÎ\—×´ÉÏtËN¢õ‰ ´¬ Béñ`”ñhD¹SE”oOu̐&Ê¡'Q Ï<™Ö8æÁôH®1&ÉèFT–é•È…æ?G|&¹^(=7µØª.¬Dv6l³ütèv›S!{lO„VԆœ´û!ä’òûûªšÊÃaƒ¶ÃP~`*Z«êp”Ž†¡æ€Ó„€qtîL¢:RÍ ¦þL•CsŠšR|˜I¡¼_ã„ÒEuq¹âÓ±KOÆ,±®^&?µÊöè´uŠšÈ-ÊѪƒûª#¾wü6¢N½/►*♺2ò­jw*vE¡ME4ʈõhn +ÃÒµ³ÐŸÆƒŽL#ø#ÓZ3Äp'S×2'2õ¼º´há©ÔÑñä,ÉÑď,¿›Q ;ÿ¹mu\‘ݾé«U{¦¯w¨ŒÝæ¸+¦ÊigÌaÍö˜Ë£¯¸lnsÙÛ§.›ŽöeqhW¶D>FŽô`  }À£lîåAÓ¸–mstÌÙl®6+Bx4s†èPz†dÚ\«½©yòʔŊŠ¤BåŽÄb‡òÄõÖ›5e Λâ«]7Äw+¯w_ÿÈcmB·KI"ªK’PU’ŒvÄv4ŒæÑ tÒ6×L睦y 4,àÃõùB¸8ßÎ,pcŽÏ7p5¹aFrâD{ç̔ìž=ÇjGæù¶Œ|Ŗ´ª6Ï\î¸!uµSiÊzçµ)å®k’÷º¯N>ê±*éœveò]]qÊ+÷âÔaMñLtX™†*b7Æ2€)Ô:óýF[\ÃB:ïäqP¿ˆ?åY@íÇÎP“çÃU/œbT5?F´37Y²-g–UYv®|cVž¢töbÕÚY…Žk2‹5ÿÊXë²2}‹Û—i•ËÓ¾Ó-K;ë¹4íÖøÂôNíҌA—¥™¨^6 í‰r´‘uè› ÐšÐHùW?¡wý|êò98™/†#j8¯g«> ì̛fúÍÂâM Ò-KçeËKr?R|•“¯Z•ý¹ãŠ9Eš¢¬5.Ëfoú/ÛuÕä™Åüÿ†²$‚FÙ!‚@èn”ª u lJA@ö5@Xö­YE#¨ ¢à.`ǕxZÇjUl«ÝFë2©ŽZ;s¦nÔg.õœ8g>ü>åäüŸçÞû&ïu)ß1»$~¿»*þ¤‡2~DVÿÐ]™ðÊY•È$ÅILLl'báoûpk¼9Àù@[D;W‡"!ö+í°»HÆÛ^à««Q¶ç†Mm•G‹š²Ìê3Ó­>Êȵ­NSÚW¦V:–¥¬u.NÞà¢LÞæVÔï¡H:.ËKº$ËMºï‘—òr–"•9æ§1{b7‹P¾Ï.ÓÎõ‰8E¯Cä`‰{JmÐ]âÎiŠênT¶„«¦×åśÕä¤XVʳmʲ ÅÅY咢LµSAF«K^z§›:kÍÐQ;‹k«ñÖi¬Z2E]±\PUnZV=CUœ`Q¨J·VåÚåª$YÕNéùM.)ù›g')v¹'(dñŠs²8Å]ٚü»&ä3§Ä&I*`â‰FÇga¼4g˨”}˜öÏ=õ@W½:êEh[+åšêæè¨ÕïéWÕ•V‡š(«¢Dù•ñæ¹å©VÙerیÒ"‡Ô’JiRqì5ªM®±ª·åhå'*o{D«þåºZŜb‹™„ˆ'z”|K}øŒjpšvÏAÊß×H{WÐA¯¡­ëLÑØlõ:O^U“niC€aÑÚ¡¢nå4¹:vfæGɖiµY6I5â5Õå’تz§èÊv—¨ŠîÙ++¹ETœu¯¸éQñO—•Lºª‚9DU0ñD÷R€/i?¥WS (»·èl£üõÀÚ BÔ¶Û rƒW²~>¿°ÍoJnë +㬖“ôu1¢ä¦D³„Æ «¸…mÌÚRûUõjÇÈúõNauÛg}PwÀ5¸n˜|ï¬þÅù5s U3b7ÑêÃ%z†©Ctÿ}­ÀŽvÚ=7õ[€*J5Pjfqùoù–Ez›ƒ S:B‰›¢Lã6ÆψiO3Úk¹¾Ø6¬­VÒÖ*YÑÚ%]Öºß)¨õŒs`ë7΁-σZ˜Ã²f&^ÞÌl'ú–~“þLÏÁ êÿ!Êß½ÐPvK'í^Ûe·.=ӑÓ#Af'—ÚíÃOìЏÛl³=Rµ-Ö4²+Y֕mÒYd±bkµuÐÖfÛM§Ø_³ÏÞOsÚa‰æk‡%[FÅ~›ßØúmf6þÌz¢‘ñÔÒPýû(›h§U¤¾(¥Õ(«Hí"yŸ5öÍæâöÍåE÷/æ¯ê_¦ÑfÚm¼7A¸|o¦iàžÑÒ=•3ýz›Ìõj,}{û­Þí=eíÓ{ÝÊg÷¨•ÏÎ7–>=ÌâÝf>ÑyzÓ  üÊßLwoÚTöÑþy€ö¯#@ÌàD Š°rH‚ˆ!O.tȇ<´TgÅ`°nÐàJý€Á8ÿÁT£Åy‚÷ʦú 4˜.8ºeú¼£}¢¹GOŠ¼®‰¼ŒŠ¼¿yb"¯ƒ“¡¥u°—ò·î ÐÝkh+: d ±´‹†žæ°lX€ a ¼¯uF€vüµ¾Üm ·HÊóÕ~¨³P›¨;_›­7W[<ÅK[gðí&COí#™ö„±ÇÙ¯Œ<†Ÿ»Ÿ~#p;Ån'™p¢c4û}”¿ò×S¾šî® Ð?K;è9¾õ0ÿ’ æ]²ÂÜËÎð¾<^W|1çJ Þ¹Æy^YÍyŒ¤òÜFòy®#Õ:.#øÎ#»øNW?æK¯~Á—^yÊw¼4¦'ùœéK.N¶Ÿæ¯›ò7R~ýA „îž}XCÙáç(ÿà{ðú’ÙßÀéÆTHoX@zS +ǛžüàCàp+ö·WC|;¶wT°¹ÓÀYßíä,ïâ,îžçÌïüƒ3¿õ‚3ÿñÌnN¶“úßAù ”_z ÓÝ×|Jù”ý>eû|¼ó5àr°¿£ ÛBØ<˜«‡¶°xè óGž˜ùhfüìÑãL{Ó'é0yZLÖA8Ú á³c<» +ãÑÇ0~2ãŸÙ$Êo¢üòœaÊ?Où”@Ù ([ö@z°ù0ÌÃÌçF=7…é 3˜¼°…𥂗î0zå ƒ×‹ ÿz9øcQÐù- ¼7ÅÀö́²1jîØ5ò„Œ‘ßþ«™ò+)?W $ÐÝïK¯ó(ۍ²(Ûâ0ý`ò +2=˜1 ™ ô™|f Ž‰æL<ÉB€ß_ý!3zøýè3:£B³‹äÞ$Ք¯ üDú(â+Àÿ;`.e»þ °»ª3eÓэ)߀z„Çøô]" &DD,‰=q!^d1 !ô¢Ìè‘5.BCÏNMÂÄ´[:8¿eçÊ1 OŽM[À1“Ž "8fœÀ1Ã3(%u¤c[ÈÒKö“ŽM9AΒÏÉwä>ù…¼mµo0îÿ’8qLJûå8 ÃƍcæÞ›áGg ¥³Äñ˜0‹¨H YG6’.²“ôÑY“cä ùŒ\#'£ÜÁ+q/…ÿóâ?d×yTSWðûÞK¾„!/@Ô Zª* ,²Ê¾…H€HXHØÔ¸ ˆ¢êТH݊Š8µmµÚ©£ãîà^ENµw~ÌŽžÎŸóNþúÝ÷ýÝûr€ÝÅOqþw¢)Ð^/  “(sÓHl—CbŽÔh&±M+è_€°Ãà<ñÞæŸÄ8ç ñšó–xÅÁÄKð‚ƒÉç¶ÿK„O>ÂŽÐNÈcÊtÈfô' ú“HbG‰ùÐZdACô6ò=½“|Gw“¿Ñ½ä8}˜|KŸ ßÐߑ¯èŸÉgôcr”?F>âcò!S˜ºîMà€§Aí\„=íàiOÈc†áOgØ#ˆÀSbH¸ýØ5—|'.¡ÆÅ5ԘhõZ´Žz%ÚB½µSÏE]Ô3QõDt€£‹NSEW¨»âGÔ-ñÆM1füìŠ×ÁOà¸úì u?³AxáÙ„}aM>nðۓÀÞóˆ÷žÄÛO“É_§)©çS ¨'zê±ÇRÆCÉ*Æ}I ãžd+ãŽdó¶äÏÌ[’}̛’~æ?$'™7$—XW<°.z¼6º0€sà;pv*f} τú¾–p¬-ö·†#k +€,æIÐøœÙÄKŸ`btVù`¦ŒºóY.uË»„ñ‹w5ó†×2ÖU¯&Öß½6]òÜn|ѳÓøÏ“óžMF<MÏy~ozÆë¶ÙI¯fCÞ¿›ðƦÇÁ€76ù#ì uç™Am„ƒa¡G‹ÑÓùÓÑý€¹Ä-ÿâƼòò\%ãÇ9ZÖy¿%FçüjMÎú®0=í»Öì”ÏfóaŸv‹o}¾°ø‹O¯å O¿Õ€Ï)«c>׬¿ñµ>èû›Õ~?lùµ¶èóÃæûü°ÙÇð\¨Ȃº „Ãa‘h<‚ž„ÓèN¨;º: ý-4„ ‰£Î˘'¨Œ‡™Îכ Ö[ 0Xö4[ößÂ>èßa³ß¿›óµÿ~Û}þ'l÷ú_°ëñ¿o×0ÆÙ'([wb+`Ù5ÿ0ñþð¹Š@hl‰FcYèqŒºe®F9¡ Ñ3ЙèâÛ¨(ÆñÈ֑p…Éá°<ó u–}¡•Ö½¡KÙ{BVq¾ +n±ín³ßÔÉí +Úë°+èogÐY^GÐ-º=øw[¶k ÅÀÖ[?‚0^õcºŸø_’t-‰…®Ä›¡‘:•èçýñaŒqñFûbe¦=‹²-º£µV»£Ê؝‘Õœvk¸íᛶ…No ëæo ;(Ø6ì¸1ì'ǖðgüõ¿;¬Äö͑ض9 +Û|ì¿/‘=‚ú7SºœŽÐ…tú>՝LµCÒOÐ!él¢/5˜Ñ“c´;)Õ´31ÓbG‚Úº=®ˆÓ[n×[ÇÝcàm\ÔL¯_Ô&XÝåØÝ'\=è¼*ú¢óÊè 1ïø†Xì쁭! ÞBwaî¼²¡ó0óœÎ$Ñ°œ‰³Ñ¡ 1êÍð&ºåT§,Ò¨Cšhº-MfٚšÍޔ¬á´$•Ø7'V94%6Ò«ÖVÆovZ¿C¸,nKCÜQQ}܈¨.þK]¸c]"¦ë’0Ø»Iûàiq'ú AýþR„úàúÕ :J™¨µÔm(sEM¥^¤¡ÄŸÑP¼Ð¸¶(Ƭ² Ų\+g—j²m‹óµÜ‚üRZ“W#P« BUîQVîW…ª×-SuÂ=#÷*x!ÊTc'… ”jLÞ¤Q8×'ú •ë\C÷T"Ô ¶ê ÔRÁFM.ÈP1hÐÏaÔ, 1ª(‹6-+I²ÔédìÂâ,[MQ¾½ºPÇSV ² +–;ej׻ȵŸ‹eš=nRÍq÷4íew©ö™8]‹…²,X\€iÀ›ôPŠÐ%ô28Zû 2¨ƒ À˜×ÔX¡µN¨¡vQSãK髂X¥•‘&Å æZ½Ô:¯\ÁQ-QÛg•9(J+øò’F§ô’uÎiºí¢ÝW®Iºcn‰º‹à©(Y÷»SŠ ªÃ¼IwàÊyÎÁôàpB{ëa4ÂÜ· ¡¦„–7X úFU7þ‰(o˜E–42 ëÍóëbÍrkS,³kälEµÊV^UÀM¯*ç¥U.$W4 *Ú\âôÝ¢XýqŒþ0ê«ÿ¾ë4ª©k ð»3€!ˆ„A4¨(ADqž—óp—U«Ö©½Z‡«­ +X+ +8"8Kl‰Uk+“âÕ.DéÕÚ:¬ÖZÀ«uÀ}_»Z¥þ¸?ž•äÏy÷÷í}rÎç?hžôL1+¦'Ǫ¦$Å;LZÞ_3~ùPí¸ecŒ^:A?òÓižÃ–Ìñ²8Ágàâ~ý³üû&îhÚ;±ÀØ+ñœ±Wƒ&½^úõI>äÝ7AþR9™ûÀ°ï{™¿u{À±dÕ*`}œªÂ¬4=f¤15½˜”©x/µ‹j\jÇÑ«;ø|¤vØÊñ †¬œ¢øÙG û­XèÕ{E²wϔLßø”m»¥nÜ5ålã®É÷ýº%½ðé–$ ݓ¤W÷åoçÁ×óy?²ÿ»8ŠlJeҁ¤5œý29ûeïg»aÂ:_Œ_„qëڋQÙqÊáÙ=ÔC³8֐9NÛwíûn½×ÎÒõX³À£Ûšåž]2ÖxuÊØjˆË8ä›Qæ»úgClús¯¸4و<ë+al܃½¬?/ ÈböÊ, q=0›³èDŽGcr5™ÛÃó04/ƒó"ÅÀ¼®Š~¹}T½s‡¨{æŽrì¾e‚¦ë–é.ræºÅå,ÕEç¬vÜœ«ï°ù GDΏˆÍ÷ôáŸëÃ7H}øzéQÏIÞ¸ï;˜¿q-¾Žç€ÙóriÛ9îâüÇѨŸÕ }¬>èmm‰žV â­±¢›5^t±öWt²SÆYÿ¡Ž¶NqˆÌŸí‘¿X–ŸæbÎߢm—¿_Û6ÿ´¶íž*mè®ç®¡;¥k莿+àÈgÿs˜¿–µ'ç ·³vöÃ÷}8 ®À±þˆ.B”- ‘¶8DØz Ü6P„ÙF ³m¢¢­m–²m‘ªµm¥ÚdÛ¤²}éÐêh‰º•Í®nyä™cà!éxP:Õ·çn+ó³9 +®dí ;¬À¤ýÀH΢ýl@—ã@‡“¡…„éѺÈÁEA0[T‹V%=вdKÆ Eé4++J“DÓÒu¢I©UøŸ>%üKïˆÆÅ¿+ü +¥ÒïÔTÙÁü ÌOÍ–°ï³¿&3{ÇÑþ_3ÿ[桧À«à_î ß îð©ðwE .†R¼.uC£Káɗ†•Óàñý"èÿ“÷ËÛ¡»rœ®AWY ÝE ]…º ombþjæ/eï?fíSX÷hf÷?Åü â rh^øUž?¨¡»åÝmw¸Ýñ¡fp½íݸػÀÙ>šª±pªšûb¨í™PÙ­P؋!ìv êIÀþÖæ/ßÃ3x˜ÊÚG³îþ¥Üÿ³@ûïS`üð¾ +诮·—j'hjÝàXëU5@‰Â¨#ñ¥¤†ãÞø5¼ékxÐk¿ ^øñ]zB/ÞHfþž¹Žñ,d~Љٖ‹@«Ë€ÿO¬ý&Ðàà|P×Ê:¼t^¸’;5âo +¤¶@] ðªñaôŠë\‡ä:$¹d‘’–wÞXÈü鮹€NR]åÕïã%žü±Š§ +RJŽ:çR¼p¾„§ÎU¨u~Œßœ%¹Hüª•x¨•â]²…/d ²…×ÁϦ¯{̽‰Ÿj  ©ç~¸O¥9Ä^è’D.U¼ÔeŠçºâ™.O<ÕíOtûÄc µºBTëÊñPw÷Ük`w%î襸M·þt³ÔÒ䤇lÉÏVìGKž‹f®§#dã¾<3#ÄKï‰âwï™â‰a¾¨5,Նâ‘!]üjÈ¿rÄ}Ãvñ³a¯¨2vÃ7âŽá¼¸á}[üèS-.û¼R\ò•Š +º@åï!ÌnӀ\!CuÄ~´a/ZólEâY`<7"Œ¦Š{ÆÙÂn\$n—‰›ÆÏÅ ãq͸AühÌ?÷ˆËÆŠJã Åŀ2EyÀuŹf¿)Ï4«S–6—Êb*¢B:UlË|³ ¤Å 2œëçšÚû Î܏ۚñ0¤#ªZ÷Å­àâ§à âŠi†¨4ÍUT˜å¦$Åw¦Tå9S¦ò¬i“²Ì´MuÚ´WUb*P™ŠÔ…¦JõÉàêcÁÏŽ¶–­¥ú~‡ Ó2W ©„Œá:b\Qíêq¯}n„EàŠ%‹󖱢Ì2YQjùPYlž¯:e^¬úƜ¬>iNs8aÎr8Ö.Çñh»Ž¶vûŽ˜O82ŸÓ0ßÕ|aù¯Æj‘š|‹tÚm‘Ž¯íªGF8BFñ¯"xÞY º³ª;ºÂ£ÇÕ¨&(n‡³1PÓO|3Bq"z¼ò«èÔQÿt8õ/ǃ‘KœöG¦höE¦ÿé2 jë¼Âð‘Ī}Eb±'{¼Åc\jl!ƒB¬!„$K€@$6±Ib·Ø±@Œ… Æ8ÂÄX$vl'®×Y&‰ÓvÆíL“Ž=iÓ&“I:MÓÔmšôö43ûÇ3÷þ{ïyÏ9÷û^ê+b?uU¼L»$¾L¿(¾Î8/~›?b.ü†±”JÐϤ´ÅT‚ºJÄ> ‘FþIÿ‰ l€Ç +|,‚ßKið #ޖí‚_ÈÒà¦LAº–YB e"®dÔD­±G_’¶Åž—vQƒéÚËéãŒeÉ sI²ÀZ”¬°OKBœ€äÇ/yȝKÿš3›þkFJ0§¥}únö3‡ÑƒL̽ø{T€¹óçƒ +¼Ÿ÷røð†r\Ëý9¬çf’W•” 9e‘AEEôr¶5öŒ¼‰º ï ²z˜þ¬!֜l’=+;ŝÎ\æù2×øS™·ÞÌ‚ Ù‚ñ¬ï¹cr‚0GåãY)kXÿŸPû!æ¾Jî«îEÀÍBl½kªd¸ J'Ÿ+RRΖDž.0ÄøóÍԓyõô™ÜÆ ¥‹5©ìçÏãŽçLóG ‚aÅŸ!Å5¡Gñ®h@ñ™h@ùDЯ$¸ý¹a!Ì0ÿ÷à«\̜¨ÿ/÷ñ¨»Ü(#AḦ́˚Ͱ¢y –4i¤Ó¥rÊ)uQäL‰6ÆWl¢zUúDQs´°=\ØÍ,â+˜ôçÏ {óƒ¢îüxwþ/\ùœÿ: >Âul„æG<Ú>G~‡¹ó=<òï˜ðž„ðýr9‚º8£ß óz1iV—Iñ•çEזƌ•¨Ã3ÝSZÏP·°ûJ\ܞ’¾»x"ÎY|RÔ¡ZŽoS­'¶ªî&¶¨>Ij)þ{|K !hQ<‡šà ì0ß*°èÁ¯õèAÀ-3æ^d­ hŒ…E“ü¦í0cJ!M¥”ñ£ÊÈaCq´G_Ní×UÐ{Ê­Ì.m#Û©mçv”õòÛ4£B‡fFÔ¤YJh,]K´—ÞN²i~»É¦ù[‚­ŒÚ´ß®%¸'Ì7؇Ç€1wÞ­F0w]©Å¼cXªŠ¿™ÓÕ[ÁkN&U&VfG TF÷˜4±nãQZçÑjF»ÁÆn5´r›õ]üFýÐ®óÅ×ëkË/'Yt·6Õè~ƒü5±Fÿ_¡EO,‚g5Ü0_ã.|\Ž}ÀºßDýWë1÷Úñ®Ïy+¦­ðZ·À¨u/iВFEtUçG9ÍêØö*=ÍQYÉh®¬c5T4sm&¿ÎäZŒ“ñÕÆ@b•ñbR¥ñÆ&“ñ#ä«Ä +ӏ¢J!@xU&‚æKîöþ>zpu¯6¢͘7ð9‹×o=Fl›ÁcÛ ½61Ù]ŸAé¨SFµÖÇ4[Ë© – +†­Æʪ­näXª;ùÕ恸Jóq‘©ÊŸp´ê|’¾êú&]ՇȗIzó"ƒ™ˆCøGÍ/Ì_p…3øúu×8mxßÇ 8ل™§‰ǚ¡§y¸šRHíéGƒ"²Ñ^m³—QëlFº¥¾†Y]gçTÖµóLµ}q†Úq‘Î:— µ“4Ö×6•ZßG¾HÔXÿ#*³qeµ_k%xa>Å}ügð6Ö¼ú—:Î:1wvŒâw ´Ò »MζmÐ֖Ljn=Lnh•GÔ; +¢­-¥±ÕÍZe³™ijªg[¹ºÆnAYè°Ô>_b9Qe5©Èþ^R¡ýs|ÿ^¤²‚b;ÁGxaþ€}xçà&Ö¼Žú+˜?º1s Çð[Ü®hhwñÁá~Ý{I6W*¹Ö•I©væFVvǘ:Ë©†Ž +zy{-«¬­™£nsóŠ[‡ã +[gDùŽåøÒ­ŽÄÁ­dZ–$¡EÉ,¸”,…siœJ÷Á±ôg˜ÔÃ|XHæCBr<(dÍò–s r€Å뀯ó‰Àhf'07Š¹!™_ÌüRÀãÐâ¤å:ØW˜ÈƊ¶°«ôƒ¡2ˆúB_}Õ(ØVM‚®* 6U« ­Ú MÕ º Me´åâä0?ƒù©›É;Ï‹€ÄÌgns­e@‡@›Ó€s%`°½¤„æ²-T—MP^q…âŠ7äW;AºT÷á†(ŽÃÑĉ¶ff>X×xãkU@íc^_“ø “c?‡ãž\È÷p/0„ÙQÿz:ŸÚU­ÎŽÃe@û+ ¿n:Ô¤n™€ßZpCìÉ͐7¦Ý€›3¶ã!Ûñˆ/þão)¨caë؉ºÀïÏ?˜Ç±ŸÊڏã×CK€þìswöُMö>´ü0U³ïµ€ò&³ïЃ÷)yoïcêÍÀ“ÖÀÓöܤû¯¸Q}ÍE¹‹Ñ.>o9á¼Ý¼ÛG윸öÁ´ÝÀxÖ~ØQ`³»Ÿ:±ÏžWXûÀxƒ}¿Í¼{ô~§çï½ —ôš5i`MÞÚ󞬉ð"¿¦C‹àFQ°‚íl‡`á‹.~ œ¼ Ì<_šÈà ¡²@€ç]„Q }Fãi +ͦ…”IÙ´†6Ò6*¤½TL'éÝÁ;<¡wxËßÞPß-ÝÙôÖl ùÙ¦-„â/ü¦õ§!ô9M¢J£%´œrhåSíaÖÞ· ¯q–%ºÉRÕ³doð”ß6zò'D+7·l9º²¬‡­/„6BÙBÏÿIhêûZ, ¥´’=ÌeB3·2³ÏX‹'(ar9‡íóç!^ññ¸ßH¸÷„»3DG¶ÃÂÙÌz´‚pèÀštÐs1ãE;w<öêˆ;A¸Þ&WÛ ÆE÷‘8ç>Uî“Qá1§=æH?y,’NxdJÇ<²¥2uÒQÏ-R‰ç.©Øóì°×iÙ¯›²½ÞOeEÞB¾‡v½Wøá§jz•­ä/Ã+«/ü xàã„ëí=ñK{+Î~†rK NX†¢Ì2Z*µLŠ-ÉÒ!KŠì€e®l¿%]¶Ï’%ûÁ’#/²äÉ÷X +ä»|ö* +}Ž)vú\Uló­Slñ}§Ì÷ŠM…bc#ß?4esZ à4ÄéþÕtU£¦“çü\qª³/ÊüƒQì]â¥}þŸIEþcd»ý¿”úO‘ï´Î”ï°¦)¶[+¶ZW(7[sUùÖͪÖÝê Ö#êõÖsê5þ÷ÕÿôoPçtêU]„*»‰²™èÊ60ÿ>§´k½€‹t&TŽÊ Ž˜QÔ?wÃ÷ÝÃQØ=F*N”m %ß4N¾)h¢"/èÊõ_«ÖÎWçf¨Wdkr6h³vج Øo³"ð´nYàoºÌ 6ABûm°ÐúcùõÌ¿ÉåîB$ÏQÀñ~<ó„)p0ÔEaøW¯ÎØ‚üðHiC¯xÙÚ°áòܰъœž_(³{NV­ ®^šªÉ +]d“²L—’k»$d‹>=¤H¿(ä˜aAh­a^èS}ZO¡#›¹=…vn˜Ð4ݛ–¹jfWpj/Äs'Ï ?FJØÓ׀‚7äGúbCdr#ûH91²•ýåËûPfö£Ê蛤^Ò'Y›Þg¦ÍÂÞiºù½3lÓz¯2Ì ßh—¾Ë8;¼Ô8«÷û™½ëíRú}J_¡#Ò6{Æ܎~fþÉÁÜçó췏×ÝlËö:lŒvÁژȉ醕1aRVtYFt¼bñ€aʅýÿªšß¼&-j¢ö›¨iºÙ‘©¶³"Ó )+ì¦G¬7N‹ØišqØ4%ò¼Cräcû¿G ;ғî=›FÿáøתâYžûöcþPæ'p¯§FnœÙñÞXoEF|ˆ”×O¶ v"-6QùÍ ªÙÇhfLÒΈIÖM‹™©Ÿ=ߐeœ½Æ41z»ÃWÑ“¢«èCRÌ[cÒ@a [Ò5{Ì砚}>•ÈðÜ÷Ãî³)8÷ú +|—`BV¢– ñÃÂÄ`)-¡·,5!Z>ëÓÁʔÁÃUӏÖL¯MŽŸ¤›7]?1n®Ý—±öbW›þ»Åq\ì>óØØró˜¸{ŽcâìÇÆ ;ғm³û|/²ÇÙÿƒ#Y.õÛh=?góo™ÃŒX<¼5æÿ/ÛeÔä™Æñ®‡Ö ©GAkµÐ¢ˆÊ!¢†#@‰ AåðâÐz@TªBt]O »®°µÖZa»Ý]ÇÚ-3Ýum«µèn­­Õ~û×êL§“ùÍ _¾|ÿ÷ù?ïû~ψµi¯ŠªÓ扫t‹$å©ñ¥))2kŠÁ±89ǹ0¹ÐՒ´J‘—T«2k7¹gk[=LڃžYÚSšLí^í &3iH™$¨²’%QùS™‡èû{Œý Kž·rèÙ»œµ>¯5é•Ø`‰:Ãd¬1ÌUæŠKõ‘kÆR‡âô$iAzºc~šÉ97Í⚣[©X®«Vuî†ÔúÔžé©'4i©ý^ºÔ›š4Ý#ušNpK× J¢æ×â?˜ÿsYÀIjËöç³çËe¿C?Öå¨1ù Ê4«LÓ±Òôº¨Ø¸P\µØ!?k™Ôœ©sÌÎÌr2ò\² V¹A¿Z™¡¯w×émꔌýžÉÇ5Iú‹^Zý ŽÔIzÁ-Y/(‰b˜kÌÃÀیû8µ²ß(b¿Áq£¨1;£Â¬A©y<¬¹/£È,²˜ÃŹ9‹$Ù9 RSvŠ,3Ûà¤_nvI_^,י*•)¦ nZc³:ѸÏ#ÁøM¼ñ‚&ÎøÇûêx£à–`”D1̧ÌÃÅLžŒ»‹Ú¿·²çbI¾c­¨°HQbQ£¨` ,È-˜-Ê)›,Q’LËR}~’,=?Ã15/Û99¯ÐU›W®HÌ]§ŠËÝæ¾ÄÜîkîòŒÉ=O®yƘT/6 *¢Œ5 Ša®pݝ§' ˜‡恥ø.–Ÿ›8VrVb±ªk}9%“`* BfI¨H_²Pœf•¤Z—I“W¤É–­09%[\âŠKå±Euʘ¢-nÑE{Ý# ;ÕEç<]UGþàQ(¨" ed æï\ÿg¹ŽSëµÛVÍk€zŽeÔçµìr9²*¼a¨ðGFå4è*CD)•á⤊EâĊx‡øòéÒòLÇÅ«r­*q‰*«–/,Û¤œ_¶[^vÌ-¬ì,ùÔ-¬ôž*¬TPÎ[É +m¥ ¦Ÿt3Œûµ[k7Ö²ï!%uÔçÿµNH­õ@rÝXh됸vâë或ÖEˆc떈cjµ’èÚ iDmŽlAÍ +§ðšÕÎsk]C«[å¯WQ„TÿYR3 YsW²Zאªçœ§'J#Ôo§nË ¡XÝ‘L¢m!®Q‰%#Û41MÓÝ‚¨¦pQDÓ"т¦qx“NÖhrm,”¾ÖX! n¨wšÝ°ÓyfÃa— †^— »Ì¨¿ã¦Â¤c>˜Øᇠx±c&ü;æb|Gü:1®S±ùÝY‰Q›1²³#:ÿßÎáÛñµÈ÷è‘ÏAìsø9‡š€Ýô|Ûž‰Œ¹ÌÎÒ©w Xг=|™}鄓ÀèÓ2øv«àÓí ïîqðê~ šî xö́GO4Ô=Ë î5Â½× +·ÞõPõ¶BÙÛEïE(z¡<ó”§(O=§Þ·Ð÷zú]ɸ-ÔÖw "N!§©ß ¼ÈötÔ;€æ<àö¾ ®ýJ¸ôiàÜ7N}“àØ7²þPHû£I2$ý9÷—CÔ¿èçƒûÎp¼Âñ;ò˜¿°“Þ7µqÐóBƝIíÄSÔï¡þÛôÿàÿ0ò"àñ@ù!àtIÑeà²ñâKo4pe" ¡WX²0û„/ã#ÜtÜpLòÀò.ùœÜ#?áo0ï5Ìw1cÏbÜËz©Ïxƒ©;…º~Ôõýà~ 3 é'þM®J€ÿp×T,†=/^`Qî|9•…Y0ÈyÜâËðüÛ\t·ß$o‘>r|O~|FÝ!žÇüÊDϵg¹/P¿d¼c©ëE]Õcªû¹An’ArKĂܑ©øÆlÈX î÷Y,?`‘ø/ƒG|ñàb‡hôE†þE>{F)×[6S•DÏ£¨̘.cþ xò6o“>ÕýŠÜ&ߦw -CÁ}1µœù<%ðăÍ=&‘Y„EºÀy<Œ…„›N é Î>Cp Ám49qÉ42‡,&©$›¬ Ud=ÙLZțÄN’rœô 乎ŸqOð?Â/ ý +Á“ý­z%qâßx:)$„D-É"d©% d+ÙAöPg?uã1º¨q +ðâ¯x€«´ékÚõøžÜ%w~…àíAãE?4ô‚t¯N"³È|G҉™XŸyñë8ÿ&>y;uvQ§ ?àuŽRã8ŸÛƒoñ>Õ?ƹpnóŽAþò+ró7Fx@ðq§nT¾\ü9æCô41$™±©[À§•1žjêl Îfê4ãh¥Ž:©Ó…/éÅu¼‹Ïñ®Ë<¨É;ãß÷HòæTê}Pem:–X5 $p 1$Œ$"B<Šâx-ÞJ=pQ¼ê¹žÕjkkÕ¶êV«cÕÚÚuWÇíÚÑm;Ý뻏«Î:ýã3¿¼ï̛çúý~Ïó½€Û´‰oÑ7(S×韮W™°Ï_'Û}Ք%åCC¾P>"úQmCTŽÆoB +~•ZðïÂC¾ øjü«Ã]¾ßóóñ¿·ùøFҊ›’6\—lÇUÉ~\–Ç_¤çqQö¾á¼BÄY¥ˆOU"Îü1J±¿”üà F* ö!ŸzR}ºÀ/Ãñ£&4ø›ºwÔ|£öãkuWÕa\QÏƗ긤þ#.hVãsÍ|¦ÙŠsš=ø´Ó1|ÒùNwþ'#ãøk"Žuq¤‹Èþb Ù€ç $?¢ø-2z÷Áýîƒp§ëÛ¸Ñ%Wºæàb7;>ïæŹîU8Ó½÷˜Žz4âÞÍ8Ù³'z®Åñ^m8ÖkŽô:ˆC½Oã`ïkØ×çŸÌî¾O˜]‘"³ãÛ_áǘ®Ù§ƒéØ÷1¸-ÇÝÈÎøºO$.EÅù×Çà“þ&œêŸQ…8åÑèEOÁŸ£g`ôf_ôBfOôræ½ï2»lav ØËlp‚éx‘ixŸm‹ù7»1Fd7ë‰w_AB> ¥«'–®ÚÀ ]ûÃ8\ŽQà|L|4hŽ¿9‡'ã€6{µ6¼§õ`§¶œÙ®­f:´S™-ڙL»v.»Y»„ݤ]ÅnÔnb×kwr­ÚÃܺ!g¹5C¾çVý™_>Tä–-È¡ÿG<&»w銿6ø‚ZÎY=ðñ[|0,‡†Ga_ìpìҍÅ6 [tyجs0›t%ÌzŸmÕÙuº:vMl·*¶‰[ÛÂ/må[b·J–Æî—,ѝ–.Òݒ6x,m!Jæ?‡Ÿ÷ +OÈþ?Èþ­$Ò[F²M|@¿Æ380Jƒ]£ûb«^‹Íq£±!ވÖø,fM\³2®]WʶÄUqKõ“¹ÅúiüB}£¤Y¿HÒ¤_%§o“ÍÑï–5êO³õW„†¸‡Â̸§²ñ¢”¼ÊO£¨%Rë¥kýLÍù™À!jy{“Io$(ñ'ClHüÖ&ÀÊ$–%™˜¥IfQ¢mNôpM‰åܦ$Š2BZó +â©¦P ÌÀ)Ҟ‡s=´n#ڌ2´¦tŪÔh´¤Çâ´1hNMaæ§f3sR­ìì÷NŠ—Ÿa¬ä§C’°1,­36 +µÉKä5Éë¡äe0ùj’ñ¼*`¼§ +¤üG11EÙ«ü`®SÜgÉöññÀ~+ÅOëfz^—Áb¹)K2ú¡9sæ™G£1sӐ™ÁÌÈÈcøº 7_k*“Ô˜Ґiª¬:½A¤/”OL_­¬LoWU¤P—§ŸQ—™î¿*ËL¢¼,Ch•½ä>åürp:Ÿ´>»iìØBëzòeE6él šrú 1çM4侍鹦>'™š“ÃÖd[¹P¶‹¯ÎòJY•Òª¬É2Ö ¡Üܤð™W(½æ6u‰y¯¦8ë´Æ“u‡øEåÉ„œ^òWÚ(æ“6ҜN`g!å€XK- ù5?O…Yù=1#?áño¡vüÔä™`¾™ äå³UyvΟçáË-RŸ%(óZÂB±e®Â“»LU”»QíÊÝ­qZ>Ô8,·;9,?«y¢Â™'ʝQxÉ·T÷ódë8ÙÜGÚ³£˜ô±²X@~Í*P`š­¦Ú¢Q3a‚6=¶$¦Òfb+ +rÙ²WZPėX}5 +²Ö .k£Âa]ª²[׫mÖ]šëÉNVëMâ_j«UTXEù „gܤ:œ![GÉæî Ý´-^šõ]4ë:¥¨u¾†³&¹´¨rD…ÓÀøœiŒ×™Í;¬œÛáâ ^‰ÓQ%µÛk›}–Âj_¬ooUçÙwj,öš\ûuâ±Úb•„‚Â3¾²Ð^ ¤Øw–ÑY¨ ÍGãðâr`¦‡ô†›Cµ»3ªÜ}Qáye¼ž1L±ÇȸÝfÖåÎçœnowKlE~©µ¨FÈ/zGn)\¨Ì)\§Ê*Ü®6½¯É,úŠx¤2‰Js¡¨ ä„ðŒKtNRöSìÛ*©4~®$š'õô®ºð—jà+텒Òx|ÃQ䋃Ë7Žqø2Ø ¥¶ t7¾ÔÍ畖Kr½!Y¶wºÜì] Èð®Q¦{;TiÞ£êTï—ďªÔQ‘V"Ê_ <ã3:ïS öPìí4v¶†¨“¹´N¡±ÜOï½~%ÜþnpUFÁQ9ªF¢ ÊÀX«Ò˜üÊlÖRiår* ù¬JŸ$Ã?IšîËRýóåFÿ*ErÅVe’ÿˆ*ÑI•XñP™T!*’ÊE9!Œ{Á:‡©;)ö¶`õTҝu´i ’/>òÅ”aB0ÁHŒ½¼¹¡1șld²B™Lf(Ÿ5…\Z¨„O N”$ë¤IÁ¹2Cp…0¶º]<¤ˆ^PÄUÿ ŸôTˆŸ$ +ñQö’S”ƒýoÙß&Ý7h"i4L#ÝUOsƒÜ: ²ë{Â\?™áa0…G!=œˆÔp:c ç0ãÂ66)ìa õ~nLý>®¾ñ¿\—yT”×Ɵ°Œ3,² +ʦ0 ‡'Æ-DkÕ$F­5O465"¸eE© 8€¸ÂHÝpjÜ%Š±©§‰&*.ÚTÓ¨(1Þ> +&©üÎÇ÷÷y—{ßû¾ª¾™EêÔÌ +9³^“œÙ¬Iθ­Ižÿ³&9]hÌéBmž×Á^îÁ]ôu õKY²+Ç¢ùVæÏwÈÛdX¶'†äø!-'¯Yã0ØÚƒ¬ý0Àš†þÖèg#Y¬¤Tëû²Ù:Ga²f)’r +”/çlV&æ¸TƜä¦Ò˜õXe\*TÆ%¿RÏ=PC_7f1³&¬àyÈeVr¬âì•Œ ƒódô³ia±¢¯=©ö¤ØÍH¶÷‡É>}òßBRþ8ôΟ,í³$ƒ}‘o·É½ìäX{­c?&Çؾ“cò~RĬäv°‹ywÒ÷RŽ@ùÔ´ÚƒÆ`5÷GÕQk×‹WÖI%0–ê‘PCi4âKˆ+MA/Ç@ôt C¬c4b嘆HGº;ráX/us씇¥°ÒëRغv)´XH¡k…üœ­ô}/²q ©;“z“8¢Žåxøû@ÿM€i3_ôpz"©G¸3Ý*£ViDhe +B*"¸r8‚*Ç¢kÕ$T͆UüªŠá[U}•ºÊVè·<„¾B@_.¤ç”S}·YԞÃqp +5ÇQod%0¨0o¥þ6 r'ÌùÔ·î%è\:­+’àã2“Aðv€—k<]SááʄÆeƒÊUe]#9Kî@UûêÝâŒ{!ãm¥ßéôyê`<5ßäX:xõkƒ‹þ7AŸzŽª>Ðô†¢ÉRS0‹\$1θل¹yáºYèÝ<ðn&ú ;¸|Æ&íy@Ä/¬a®—Ó÷Ìr`:}ž@í·ê€×ê©OÍø=@÷ý@àA@wð:(ƒ†ø_àíh¦Í´ã´8C;Îð2na±oa‘iá&o¡ƒ-\´å ¹Íß?$Ož±’9_HßgÔéó¨FêÓWó Î „Óô€c€ö$àñ9µÏ’¿“ój6@ÞÀWzàBW6¥À·.³Ao¥­¼Œ®òò»Ê¢w¿Æä^ÛÇæñKr‹üøŒÅN`Ãôî'¬ÔN£¿fêö¢nuýNÞ_Ð÷§š_“oÉÒJV\Wp(y ¸©es̘|ÂA%šÍzpvÜccpŸ…ø>‹Þ&ý7Vlc<Ú.=c6÷Ù$æz ã=ä0Â8÷¤¿¡ôWO]Ï Ô¹Ô©yÜ$ÿ&ߓ»äBwp_Éõ<vð˜1=H"aÃ,h‡`1Ü¢„0肉îgŸ0ÏPð¤B œD“Dò*Nþ@Þ#3IÉ"¹¤€“2RNªÉNÒ@šÈI<Á7ø™Æ>F;~â—vò¨óù[„.˜vB¨»ò-¨ÓŽx’J†Ñd"ù€Ì%‹ˆ•¬"«©SB Ô© N 5jñ{ð‡qç¢á¿|»Ë¿¾Cž?ŸòŸN„¯?D_/‚§„b"ƒÈäOd +µfRg>u–  Ëp6êQ§”)ÙÈõ\s;SU[ŒÅwh¦W˜Âp•ÿ}•«´’+\îDøë ôZÆÂBӅ9 à×îÄH^!¿£æêM¤?Ó¨3›ÑÍÄmæä&–SǎXC56síjnŸÝ¸ÈX|£8¯ð%­:ÇU¾àj-äÌ ˆ@oÚáÁX¨ ´^ÞzÚÂXH±Œo2ýLÍ7¨7ŽZ“©3¶ÏåñX€ Ȧ +êä󸮥F5*pš±hf,Nc<ÌGiéaæãõþ& ¸ÿUÓnOâG;ôŒ‡Ö<#pW€ + .+†â¢âmœW¾ƒsÊ)hQÍÀ窏pJµ'T98¦ÊÅQu«KpH½nu5šÔuد9€½§±Çó:½ÚPï#à"uOÑ +Ôv"©ÚA;öý®*< ·µhõŠÄ?½’pÖ{š}†ã¸ÏXÑNÄ!íûpkg¢I;û»,ÂÞ.VüU—‡OuEhЕáuú]¨ÕïÃ.ý)l÷½Ž­þm¨ +p’-/ XbEwõ(àKËeë‹Á*\Ðyã¬>'üâðY@*šº¾Ž½o¢1ð¨zuAS±;hv§cGðbl ^†š;ªCŠQ² ÎÐT„6`sØQl +»„²n?JŽp!•’’!­û "–¥¬'õ,ƒ½YÊù<Å÷ã8æ‡}á‘hˆHBm÷þØÑcj"G£:r<œQ“QõÊ£>Ħ¨ lˆZŠ¿D­ÀúèB©4z½T픊£ë¤51n©(æ¼T{G²÷²ä‘UHOicÙ{ø†WÞé¾À‘T^o}Økd4Æh±»g7ÔÄPßåñiØh‰2ÃX8 PbxņéÒÃiuB¦T˜#å'äI¶„b9/a³¼2a‡¼"aŸ¼ÜxFñqâ-ENâcEv¢³:YÚÉ=–ÓkÔ=ןóÖ@Î|¤áU –×߶Þ^pöĦ¤X¬ïcBIŸXc†Õ¦QÈ7ƒÍ4QZeú³”kš!­0}$-3-–­¦år¶©P‘e*S,1mU,65*šN*$ßPf˜)盅"ýîšêŸJ£ÿC€Æ¡ìqùs5¿•§¨±>ÅÅ}{`µ%v‹«,iȵŒÄ2ËÉj/e[&IK-ÓäŖ兖 y%[‘a±)Ó-%Êy§j®Å¥úÑeÕy†ñçޙ{D ŠK] ¢qÁD–pFf`¹âf–Ù•ÀD +5.ŒKãq-5zŒX›˜TkÔÚĜ4§mz‚5m<96ij4Iۓdú1ùãwî=÷<ßû¼ßýîûÔ/¸*×&~,×$~#Õ$…´Õýhªû¹¿€Ÿá…쁸heý¤3xÙÄ9[/ ˜‰­)ã°I?-†8¬7°Ö`Ás†l¡Ù' ý|Âzßeí—mìA6³G#¼îËäŒÉulI„–…£ð¼1kLsÐlJF£É„U&›à3-ꌡÖX,V—‹UÆZM¥±I[aÜ(•wÈc»Îm<©+1¾Vlú y¨+6…ä"SH"Úâø?ñ7©w‰Úgø‰íÌ:xÝÃu¼H?6š#°Æ<Mæ‰Xm‰Eƒ%õ–4ÔX2„EðZò„ +‹S,7{Ä2ó +Û¼Z[b~^*6o“]æýºBó‰°e–Ka–?’º‚ŒL¤KÚ^þÊZ¯eÝÔ}%Ÿs¾ƒ™“4¨Ž…k¬ah´EƒíIÔÙ¦¡Ú‡*›¶t”Û²m©Pj+Kl¥b‘Í«qÙ´…ÖµRu‹l·îÕåÛ:ÃòlÃsm¶/ÂÔ¬œkëCzÌÜ¿åÈužú]˸9Š¾D¶q-ë¹®Æl-ê³#Q£Œ…W™‚ +eʔ$¸#J”L¡HY"8»X¨‰Êr]©×æ+~)WÙ$/U~®ËQŽ‡)ʅpEy'<[ùœ÷!‘‰ô˜Û܃—YóÙöÁżÅ1t7Ùìžãº|üۊ¥ƒQ¡ŽB™Ru&ŠÕ¸ÔTª¡@Íjž¯:Å\µL£ª5ÚµIRԀ¼XÝ­ËR…YÕóäVx¦úO^¿×YՐL¤Çܢߗ¨ušúÇJÙû@¼o¤/ÕìK¹} Jí#PdŸ§c:–9âápè‘ïHGž#KPªãX&.q¸5َš,G£Öjo‘2ì;uûÙq.,Ýq3l‘ã>¯ßÉéöP/’ùÞÎá^ ÖÉà0GOÆ4l¯ä^\NèG×Vâ G¡3 +ÎñÈw>ƒ<×\¨®$丌Xâʲ]9Âb—C´¹JÄL—Wcq­Ò¦»6H&g›ltÒ¥¹^Õ¥º®“Ou©Îoå4gH꣰Ÿ+y|'‹˜{©ßáåûÀX²…¬[Ôrz²¬TB^i$ÔÒ1ÈqO‚➉ŞdyRaõXéÉ,ž|!ÝS$.òTˆFOƒ&ͽNkpo—RÜr²ûŒœä¹FîÉIîÿII¥¡>’KBÚ^Þ gŽSÿ@-ûÀH þz¸Š¹“¾dW BVåHX+' Ã; ï<˜½)XTe‚©Ê†…UªVU(¼ebŠ·NLò®Ñ,ðnÕÎ÷ÔÆ{OKqÞ«ä)®ò¿Ú¸Ê6®â'.ÒïSÔ8\Ç>¬âûÀ8²4’Ê•Ì] Ì\¥nÕ …±~ÖOFªo ¾è}©HñYäSès >·ï«çùšÅ¹¾ÍšÙ¾ýš™¾SšXß[äïšØúÿhbëBšØڟ8Çt²þöÕÀ®f`£ÈÚ5Ü ÄÃû|?`ãï ›4HnŒÄæ‘XÐ< ÍS1ß?ñþ$Ìó›0×oÃ.fù‹0Óïfø…iþ„©þ½â—8ÙYŒñßcš¿cž õ1¹±ŸÓìûQêï£Þöu@ËfύìC PD–3I&s[Â1«ef¶ŒÆŒ–hLoi­q˜ÚªÇ3­fL (˜(@L с<؈ =x*Ð)Œü†ô`|ËWÂø ¡~Ö÷óKúÝÁšwQ{s+=ØÔoÊ^ì[éÁ6 •Q1žLßLjˆ§Û¢0±m,&´MÂSÁX<ŒÇø`*Æ30–ìè`1Fkð³àZŒØنá;aXð"¢‚FԎG¶=„aÛÈ֐ÐËQêïeÝÛ©ÝBÍFêT'£¡²‡ùï%`Á^ võ÷ãˆÑ>ÃÛ£0¬} ¢Ú£1´}†tÌ'iˆì°á‰;w,Ç ŽF ì؂ˆö h?‹ðö[?øøûCˆØ×ÏAzdݛX§'Ï$ÆÁb꩹_f³1G©Þ Džqrº¢ ë¹+RW,´] »Lz?¾] „Ÿ ¾Æ|ûÚd8pa™D8vs éæ0ÐÍC¾›‡K77[7E.°˜ ̹Þç3_oI¨¬}ý^ÙÎ3™ÚvÖi=èEýW©ËG£ºA—ù €a…:-‰®Drâ:®Žå0ÈÁü‡Ãë‰À 3áGà_üløÝü]¿BèÅõGä»>Zé{#=¯`ݬ7‹º†óÔ§æ¤_£_†¼ DðQÍÛÔ¾Iþ@Þ!ïj€ÛáÀ{ƒ÷‡r ü‰aáCçя =üÞaOîpÃßaƒïÐȞߓ{¼ÔG{]EÏ Y÷bj§²ÖÙ¬5šµŽú{ÞßêÕ#´‘ᎄ|Däc‰ƒ1=¹GO>Üg`ù|C ýxÀóî/yØ=dOÒì‡4öá r·jÚãbíÊE í20ç*õ©;’ºƒoÓû¨ñ!ééÕ"\>Ã'uÈgä_äßäKòH¾üŸì2ŠêÊÂðÿÞkDTÅ} ** ¨‘EZ nèÆnh蚥YDQA@ ¸×B"2¸¡b¹M0š1ŽÆrRV&NÍRV¥œ8ff\*5qÜ¢o~T¨™êúêÝ÷ªúþçž{î=缤O~âÞÈldÚ!³H’™ˆåu„Á'3Àen²üù²ãDö·ãٍöÃ^ӉYD¢‰…d’åd©"õd3ÙAv“ý¤ƒt“Sä"ùoq?ÑØ×xWüò’¼ä?äßä" ÙÁƒ£~Æ Ú1‡ 1‘t’KŠÉ²žl¤F3Þ`'5Ú¨qsÆsçügñ#>£Æmjü O9zÂ<&È¿Ÿ?eg7ÈN®&ýÏqd™OTÄ@’¨•EꬤF5j8s#5¶P£…{8g;çìâVõà!}ñ×iÁ_2:¯¹2Ãèÿ‘G;C5²äÄ·QĝL%ïó_AԌÂ3Äs»Ó¨“CBj¬¢F%5j©ÑH-Ôø˜óíÅ_¹'ÆQîB/¾¦/îð}Å ºMËoqÖ~¾$7‡ » §/DÆÃÁc¸ øâ9}ñr]*|=¾c\| ur©QDUÔ¨¤F-5>¢ÆVÎßÊ9÷ãwèd4œÄo鋫¸Ë´°û”»wi0Z†"¡6¯;ٙ0¤eG'¼\©;‰kô¦æBü‰qñ5ŒÔJ¡N&gÍ£—‹p «y]Uâ +ê¨ÓDíÔhÃîÉ9ÆçYþÎВSœ¡G|ŒÒkwql˜Œ£Cyœe¥ç䑏¯›ÆãžäŽo$Oü^17Á¸æ Ã‡xô ³âÒ°,\pÌÇ9Çbœu,ǙáU85|zœ6ã„S Ž9íG÷ˆ#èqGF^ÁáQß Ãù1Ú]Þâ  sÔhž¤!ȓ¨ÏëíŸÓx吻|¿ã!â+Æȍ‘ãpÕy~ãâ‡ó.áè­Ç)×DœpMÃ1×lt»-C—[ :ÝÖà·jt¸mD»û6toÃ÷O°Ïã$öxô¡mÌ´Ž}„–qo°c<óÙ6„WL7OfRߛÚ7æ0L.OtÀ%wWôŽ†“ã|Ñ=^‰Î ‘蘋ö‰˜”}“–`老M.Å®ÉkÑ:¹-Sš°cJ ¶O9ˆ­S¢yêlžv Mï=D£ç+4xÊBý yÆ4óÀ—×𦠏Ïó¼îO3 ž˜: +]Ó& Ãs6L÷ÃÞ*욍gš°sf2¶Ï´a«×R4{b“Wš¼*ÑèU†Y[Q?kP7«S¨Ý+¬Ÿ}]¨žs_¨šó\¨ð–…uÿÃS^ë÷¨}‹)æ³Öù¼ZO.º˜†;¼±Žv{{bçûs±í%š}4hò1 Ñ' >VlðÍD­oj|‹Pí[Ž*ßõB¥o“°Î·UX3÷P>·G\=÷ªX6rޏbé|Y,y‡P<È÷\÷¨{-œ©]Í~‹t…±¾S²ï\ `ç*‚a­RƒÕJ=ʔñX©LA‰ÒŽ"e®°BY$,W– ˔µb¾r‹˜«Ü+-]Ô--YtIʾ#e?!²”,‹C¹Gÿ߈.1Õ÷0ÍvƲ×1-ZÖ¸´£.Ø UÁc°6Ä«C}PˆUŠT:ªŒ(P™±L•†y!E˜å_H”¥«Ü÷^ú¿‹šXòµäò<’jŽ‹éú#5Y‚%Ù É`JžcŠ/bS`H …Þ…ÅÖD[ÍÐZӅ(ëRAc-"¬Ub¸u“¨²î•B­Ç¤Ô+Rpê·R°õ9‘¥”_èã¾÷PëpûÞ|Þ l6’ +Ž iG}’dc͝> +1éc ÏxÑÞÐÙ@k[„H›Ûb¨íñˆ°[fÏBí+„û:q‘ý#1ÈÞ&.´•헥€Ì{R€ý™h“Å2Þq‘ë<–Í3IÍÝ+Øs±¨#kþËv™Ç×x¦aø>ÇY›=–Dö…lvBP&-~˜¶ª´Ú,È"d“’åˆ%‘ÄžåXƒÄVjI ¥5bÔ´Æc´1ÓZÚi«CƒªvZ3ß\‘Ìoü1\rç{ïçyÞ÷{Þçæólb™>Kz »4&ÞVqñ.ß]#‚4"!RÃhXâ0Å&>§¡‰“øŠ'ÎÔÀÄdӀĦ~‰ËM}’ªÌ½“ö˜£“Þ5G%]3G%>4G%æèVâÛhdö ³e®T‘Á>` + 3“³8ßE<ˆgTJÅ&;iHŠ§bRü48%LSûh@jŒú§ŽT¿´±ê›6Q}Ò¦+:m–¢Ò²‘¶ÄÔ+­ÂÔ3m—),í„)tîUShêShŠñ„°dÃÜÊAr¬Cc#º«±†Ë° Jsùùz®ô2“ƒ÷ãÿûgÚ©O–‹zguStV ¢²Â™Ý_Ù± +ώSÏì +˙¢ÐœçÌSPŽE9kåŸS+¿œcò͹,ßìûòÍ2L¾™†É/£·R¹ŸX¿ݲ|އB¼§…}€©0ß ƒ±ŒÑf…8*¤À]AÞ +, V@a¤ü ÂùZƨ‡e¢|,3ämIU7Ë"uµ¬”—e›<-ò°\”Ga‹<ó™XóÚð‚Ô|Ó"i z˗З–QƒbjP"M‚1+¤Xè aà·ÂFÝJÔµÔC]J}äU"ϲ(y” ’{ÙH¹•—kù«r)O’syŽž)/‘SÙf9–’CÙy9”~#ǒÇr*az.nc[5(¢XÒÅhda “Vñ>®‘ÆcËF®g øWàA+%×êŽr²:ÉÑê!«„ÈÞ-;kŒl­qêl}Q­3dcMW‡êÅ2UóP¦¶ +#[yðº†LëÛØ@î«Ñ^¾RÊE7­_Wá?7Hq›ØƒÍRÄ)`+ú5èo—kÍêTg/S·Î |!°Žadg,ŒÉ@£©ãPՑXÖâuw\ êöŸÁxº2îèÕìÚs­ìš/£õü)k¹S +܍>i¸ì“ޖlâoaHa1Œî~R=Ci}_šCP ¸æÛÀo Ðõ,^ÏÇÏÁ×<÷OXI½-äAÎ ÛèGhŽFoz‘<€^—Ã’s£dwT2GÿÝvNÇIâ8EïaÞg0?Ý:Ǚg +šhrMÙ@-šH¬‰Î| -ðßý·Š/‹:'‘ó´Ç†Ö£¦?¥ó†¿<ŕÖlíd˜løÔlÛëÑÍj֟œž%§ñhMFg&³õ…Ò9ÙäG–Eúq\#Ž«ªdÍÍú“êôGÐç(À+tƒŠ|Ç+e¨éÿ`؛ØŽ†Ô‡=ßvEÓÍHr‚Þsh½@¯¢ñ:sØét4²ÑÈC£ÕjQµN«Fïi-¤9­cä֋]DN£Èg:“Й¦CŠGaoA:»ŸƒN:KÑ(gÝJm§5¦½Úb>ªÍÎi£Í-mèøP՝ UÙª|ŠÇ´”û´ÚÊU¸Àçˆël';êà®c¿ðWCÇ(ìÅÊï±N‹zÔèMßýÊõ=©~W”íO™þ†2Àÿ|Íu{¹7WØéØ é?w1Ԅã¹ÍZßÃY«üº«Ô?TÅ}µ40VEq* §ü ‰Ê zM ƒf*7h–§+;8WYÁEÊY¥y!•²GsC+-ô¢)%ì®)¹§ašó_ÂÚ¸ŵ7+x(×û0flØ#Yiók¨ÍŠP- õ”%,@ù=#µ°× åö¡œ^£•þ+e„OÒüðiJWZxŠR#2•Qð¢Ë>ªéëŒãß_ê +h- ZåE%¼Hy!„@$ ’$µBТm«”´µõ… õ•«N»!´ÎZµ­Ò­Ç͵{œ¶ÛéÖÍ3ÏÚnÖu;í֞vNûZØñÏ!ü~Éý>÷¹Ï½÷û`͊àO= šS‰&ùÂ'¿,V¥Ý iw‰ô¹$þ àuLësŽ×쯸£ä0¯þ^5õù®K>[R£Ñ)G{Z +6¤g¡-=­é…X—aÁڌ +¬ÎpŸQ¦ ?|™mX•¹ ™Ï +oæ^áÉ:"ÜY§Dâ’X©ø\Ôfß!’¨U<ຒ¶ƒš§‹X´`ƒd?¯¹|ÖÍÜlΈö¬H´) E±k³Ó°:;Í9:ørLhÌ)GCN¼9uðäúàÎ]‡ºÜQ›Û-\Ê°¨QŠjåIY•ê¢Ì¡úTæP/*ITÇ80Œ´TfÚ?Ú¯>²§ØÎ8žb팣E5ªyhV-†O½ jêÕùð¨ Q§¶`ež®<œy ¨É[ƒêüváÈß&*ów »¦_Ø4#2«ö]Y¹ö&ùŽHâ4c¼O79÷‘rZM;렂—ìƱ™¹ ð½_3š9ðjâáÖ&c¥6.­N­Õ:ªtåpèªQ©÷À®÷æ_/¬ú'EYÁQZÐ'³ Ë̆wd%†ä["ÝG”Œñ+æà õ†¨?XÅu ;i¿ºøÿ& }6ó±Ê0î‚(ԁӰÕ9†lT4° +a+,…µ°åƕ(5ú`1„¹h‹(.z^˜ŠɊLC2£iTVhú#ù†H÷…Ec¼[LÛËy¿Bí~'°×ÅZ$[«ésùÜÏ8ܦIpšf¡Êƒ +ÓbØLËa5e¡¬XÒâXŠÍ0—ØQRâBqÉ*™[`4…Áüœ(0zËOd:Ëy™¶ôc™Öò/"É´fIèÆ¥ÆÉJžGÔ=L+ÞëžsÓë×Òë3ŒÃY&Pa‰€Õò0ÊJÂRš si:ŠK•0•éPTf‚±ÌŠÂòʽЗ?]y‡ÐXŸùÖ}"Ïz\¨loÉT¶È×Be•Æ(—„š¼me-Ðr¡þA/°{"Áz`-ãòò]c,³M‡Ùb{,ŠìKQhO…Áž‚Š|è+ŒÐU”A[Y…üJò*WC]Ù¥£[ä:öŠlÇ1¡pœYU×D–ã+~–„¢òg9þíæ ۀ}M¬Úð.¶G}\ÆáfN*KqõC0TGB_]Í"hj–!¿&y5*¨P9ÍP:+ëZ‰lW3® Ètu‰ W¯H«=*äµgDjíUòO!wIBî§F¯³Žsþ/QwÏZîÉǀ'Ɇ5ìyøÌÕ0½(ôȐ_µ{”î8云í‘CáÉA–G‹L õV¤×;‘V߈ÔúVxŸÂ2oR¼/#Ù{Z$y¯ Éû¥Hª—D’GÉ÷qKâUÎó(爺=®C÷$ ðs[‚*Æe^ èO¶o*2}QH÷ÍGZÓ"țRÚ”M*,o6`Y³ÉÍUHjö"Ñ¿Kü[ð¨'ûà?……þ÷Ém$4ßCB“„Ÿ$‘!Îsúû×;Ú¹›¸'ÉZ¶gîÇ[#cR3¦ôÖ Hi‰@RË$¶Äbië,i]G[XܪÁ¢€ ;âuˆ ¬Fl  Û1¿­1m¯anÛ%Ì Ü¼Öÿ"¦EB̺1Žqž}Ôéíà~ØÌux‚ë@šˆs `á3]9 Ë;Ùv<„¸ŽYˆíœ‹G:ã± 3ó;åˆéÌż -˜¬Áì ÑÁÇ !2x³‚ؼˆ™ŸcfÇ0kÝó}6Jøõ÷sül»·Oó\ê<ÄNŒDIäd ‰%sº§"*‰ÈÐ\™¡$’ŽˆŠ1#dÇôSC-˜ڊɡ=˜Ô}ºÏcâӟ¯1©KÂämcôqž½[™ƒï‡g¶í<؎Uï`ì4»€ ’Hâv³íf…'`Zï LîÂÄp &„ Â4Baö—½¼ü{yù„¹©Ã,¢0æ`=ìïzÞàæ¿ +ìbc¸ë'.ýÀ¾.þ¡v7u7RÇj÷ð#%L-[Jଓ¯¦ßpm¾c£r‡ù¸«î±6îñ0”¸%&^ââJïËìö¢I$‰"³É|’Hÿ£ºLÀš¾Ï8þxË¥^È©œI @’„@ ‚\*""^ ¦bÅ2T@©W=j­ó>gm©­t´³]í3ë6»v[Ÿéö´«N»ÖvݦsýïËñTûø|ž?Dò~¿ïû;þïK ÄNŠH©#«H3i#ϑm¤—ì%‡È1|ÏIð1çÌG,ÜCšý¾å¤ÉyŠ|G»ä3ò—Áy~Äg_2•„)ѐ,’OÊÈ"ƯgüFü—óåCldüÆïbüçñOì£ÚajœÄWœL¿Äîá#–è>îð[_0Âçäoä6ù¹9äaOƒ #5 &±$…dP/—:jTàι_¡ñ›¹•ñ72~ãw1þN.Ï~æv·p–Ëö:þˆkø˜ߤËß0ڍ>$÷†®É%œ¦‹×q®Î±Rg¹r§©rŠœaðgaô°ö¿·ôÈ¿oj²^ԓ2Ÿ4j™˜‹…ŒZŠ×èã}\¤ ôqŽ>ÎÐÇ)tâvpgîÇÏp/ó/^â·_ğYop€jûGØ7‚0Žú¼êîò8ÝâÕû=]ÇæèO͙xÑԓ3’ç‘I<î87+]J…j®übfÜ@Fê´Rcãnã)Ù͇¹CÎòÔ\ÁvîV¸›{³kð4‰žðWÊßy”? äõC~9èç•wyÔDîì)ŒBÍ8ê%3¢Ž§/ DìåÆÞQ¥ØíU^µèõjÀöÑMè½]c:°uÌtŽ=ˆŽ±'±yÜe´ÿ›&ÞÃÆIÑæ-`ÃS< îm^i¿æõ:À«¾?_˜Æ× ¯Ýã|px\LˆÄމR윤B¯·=ÞVtù8°ÕǃNŸ2tøTã9Ÿ%h÷]g}›±Ñw6øvcß>´úG‹šý¯cíäûhš" ‘¬x^Q¼Žy­ö‘³1À±H௸}^ØåçÿYØ:9?"Çæ56±qj66LubÝTZ§ÎGKàB<¸kW£)hVubå´]X1í¦¿‚eÓßGýŒ;¨›ùKf ?â6õ¯Iø:’çÔçóE1g ~ÞÊsš7Ú§¡mFÖÍ£eV +ž™•Ž5Áf4ç`Up>VÌ.ÆòÙX6»õ!ËQҌ%!íXº5¡‡°0ì<„_Euøg¨Šx„ÊáG|L½w’ø +æ«öd*g>÷° éIàÌǚl–°)X>«#¢±"B††ÈTÔGP™…ÚÈ\,žSˆEsæaáœjTÏ­CÕÜFTÎmCyTæG@Yô̋ ·QûoÇ +Oˆá}Åö«ŸÚ؂Õ±Õ!½|Õu² iKdŸ煕Q~X=u1‘¨cQl2ÆjPkDeœ qN̏ó ,®¥ñ‹Q¿Å⟠H¼nÉ (”œDô +ò¥ŸÂ•ðà’>áµ.SÿLç ¶>{H·h§%°’kS'öF$ $¡¨”Æ \*C™4¥ z”$d¢(ÁOB܉¥(L\€|Ù2¸dÍpÊ:àïF®ü8ìŠ7`Oú9IßaÅ0ï²Íx•ú'29g°ÝI¶°ýiãgk譞>È' B>eò`”Èç¢H![‘ŒB…ùIF¸’lp&9áH*F^r%ìÉK‘“²Ù)í°)w"KyUŸÈ¢ú(Sõ€ƒ`¥€¾Únæ:ظv`é`볎>VÑG-}”+Ç¢$Ååt(#àRÆÁ¡”#O• +»J•Ùª\ØRÝ°¦–#+­–´F˜ÕϤî…QsD”¡yUdÐÞ _AdÐüú©sŽ¹¿Ì6x¯ƒëàä:ðْÃ>Ÿµá‡í(¨}áT"O +»:ÙêX5)°h´Ä„Lm6ÌÚ˜ÒKaL¯A†nôº6ètۑ®? ­þ’Hc¸NþA‘F?ŒV'ˆ.³§©÷µw°ý/äÌÉçZþ¾”õ¨d=Üô‘§÷FŽ.V}0,ú9ÈԋaÒ+`Ô§!ЃÁ +}†ºŒ¤Bk\µq=ÒLÝH5‚Ê|Q¤4@îA¤4 "Õ F¯±'˜÷Aj?ÏxK1Ï#ŸMQóó2úËÏâÌgž€LÓd˜L3aŠ€Á Y†t³ +Z³šL ԙyH³!ÕRUÖ2¤dµ"9k’¬¡°^€Üú>dÖ{|~y–0„‚¼BcÌ{?µwp$é(ã^ «J¸ô5Ïřë”i½ÕéÖ h­!PÛ¢f“"Ֆ U¶ÊlR²íHÊqC‘SyÎRÈìÍH´oÔ¾’Üsç¾GîBlÿ$v’œaÎ3×#Ì{/u»+9ïTq/𹼜ýþ<ö»ü¿\z1:EPçyC•€”¼YH΋D’# +‡rGdŽ $:m:ó!q•AìªE¼k-b]ˆÉÑùg••|A#Ú% Ú9ÌiÆ?ÄüwQ{Û"î…î>ë9*VÐK!G½èè%Ù=²B$º§Aê…Ä ±;ñžÄyÒë± Æã@TQ æÕ`NQ#"‹7#¼xŠO!´ømò9B‹!¬H@˜‡+9Κ ~/µ;9­_ +4’ÿs]æQQXWþe‘ueߑEã=Ä-—º¢ˆfQ¶(̸ â`T 0q×8Q£U bÕ¦­AÁlVMM“`L›6{bÝCRc4ÖhÜú±äÄöoö¹¿wï»ï¾{ xmÌcîb-£×fJ½M”`ôP¼ÑW±Æ`Ř¢ÕՔ hSE™(Ò4\ãž‘¦°Œl…dZœ¹R™[¹_þ™Çå—yEþ`¢ƒoÁجloCk£i…Y²Î§6BŽ…}à3¶UÃXOÿ|)‘uFç¸(<ÇK¡9]’ªàœå$*0·Ÿr‡È?w´ürSÕ%/C¾y…òÉ{IÞy›dÈ«•WÞ{òÌ»$Cî2ä0MÌicvíEÒF±•ÅìC û™Œ©©¼µð]oÖǺÂÀÏì*_³üåc—·%NËӐ$OËó,ËL¹[òåf)•«e­\,{äd©—“ù39›oÉ¥ˆ.¾°×Ñ߸Hª\Ây`[¸ŒÀt˜CËÈHà»HokG¹[ÝåjõV'k \¬‘r¶v““µ:Z«ƒu´¬$š•M´â„µ’Dß °¥\„ßÀC “-i–×`·|91†Í]%™^&*¤‘üõYH„hð¨r“ÍU6/É֙ 4>6— ¢V•ÜvЫæÁ +œdά<Ȇ3D¾Ü$­ºÍ­lÀ×J´—aÛb“²WS×2®—m”zAWڄþfô_•œ0'»Ðxn¡é³ÓÚií]¡'Ð Ø)ôvba'©ílî–uPC!d Ý|îRš[Y¿å¯pÐÍÝÀ 1þ5Îâ6©Ïv)–ñ4˜0úì”ÜwIw£ÿ¨všòjÖQÍ:jXG àÞ.@ Z.ÿZŠ}-»–äÞK€÷b¬¦Žßÿnaç14«íü,À·tt“цN_tb«ÑßËþï“\÷K„’æžKþø3Ž4@ o²/uìËaöåñh j !j 6pøˆENÖc¨þ$\bqä'-%¾ó¶r?£= Ýçk¥gøY,zAèÐëô&Z‡¡ÞÂÉÈ@ÖÎq†µ.ÒI†…¥XÇÇ4iÃ=9]lúi‚Úx„ç3ðo¸'3áÉÚ#MF{ºýñ-Í ~FK.çwÚuNéЇv>QË@$M1p2 uÎ1(}ÁÞ\®°Ž«4§×¸ô¾¤7qț|Ám‘¦¿3Ø}¥lÒdêêÚIèÆ¿…>_{—[4ÿÒ®÷)üÎÁyøWëP(]†«ð%| ×á[òõ6ÃÓ]?é>ùñ€FùÍÑCÎê#ác6þ1¢qðÇF¦./ðlÇ~ ½`0Œ)`‚(„b°ÂJ°ÁzØ¢Ÿ˜ò~dÂ|ÄÔùiôsæú‚Yö;}Ï/îÀà\óp¶eÞd¾¥Z ¸‚„AwH‚0¦£‘Å´˜}³îk1öË°_Ž}¶×ë¶ìºÅÄù-Óî ÷:‰ó5ÖÄã5þuµ]û|g ±u Nà‚Žíñ„|êƒOCЃ©x“®›Ì¹7T€} –c¿ ûåضa{ƒ.0éž×.ýSûññ0“îŸI— èÝÑév͏áC8 ÇZ× ÿá‘ÜðÍŸ"ð§ZIúJÃña/`߈ýÙøñ"ihÁ~1ö­Ø/Ƕ Ûõ¶¡\M¿¡?éŽÐ§<~£·ˆb*-ÔÃa8ôk¸7刦©ÈNÆ Õ­AèŒBc")š†}ögc¿ûfìcߪ£¬£^¯¨N›±½ƒÝØÇ*êȎSDå2ï½Pó-ÚT+ünKëK­éï†_¾è…¯´ú±³Ï¡1šL›„Õ4ʓI¿g¿#?ªEhX±¿Š¬Ñrc;YÅvþ½O^ÃÖÌ}µ5ƒá1%÷;JÝUÊîç<Ÿf §È‹cäÅQù£?=ÑIBg~ŒE#ëihÑÈæ4ä£S„N1ÊehTh¹±oÖ±²5­ÑùHUD¸’ÓR‰nÅ|O¹¿FIùåí”7åc]OÉ;Ä99(o4ƒÑ‹Õ¯Ù“í€ÎpÖ>–h§°óiœ#:Ùèä£cFg1v—Õœ\;¯ªµ keìàÒ§.«´Ã]•:6k ”8µqÝW:DyåÚ{›+çeöŸÕPvw9º“]Ñ ×Ƨºim‡¾ZÝqªG¨ÂiœV9¥h¥sšV8õ’s¶Ê\ +´Ôe¾J]¬*éT¡âN›´Ðu·¸þA·2»_T‘Ç=z6kÞ\F·‘«ÿÝXôᷔ×Ýaôw”Ú͆§´ÎÍSUnþZå¥=´Ì£Ÿ¬žƒUê9R%žã´Ø3E‹¼¦i—IÙ …*4,Ö\ÃJ½hX¯|ïÊó~C9>Ç5Çç¢fûÞSvçæVfµsÍ÷¸¾¸öpåîN”¶ÆÓ_Fъp®ôuQ™·–ø„¨Ø7N :÷’¥s’Šº<§y]Fin—ñ*ðKUžßtåúeiŽ_¾fûÏ×,ÿeÊ +X­Œ€m2îWzà»J:§Áw4#„Š÷Ÿ ÿ^o®c®–Z ×Ÿ¡­à½­»´‚R¿$´ƒxª(0@sƒ¢”Ü]¹Á}5'd f‡ Ó¬ÐÑÊ MVFèTCӕ6[3à +5=|‰¦…Wê…»¦FÔjJäQ¥F~¦ÉQ·59º¹¨6>Ä÷£h@ h;ì™3¸bʹvK‰É|ö§ Â]9¾ÊŽ UVd¬2¢ž–1ª¿fF ֌èš=ViÑ)š=MSºf)µkRbŠ5)¦\c7+9®ZããŽh|ü‹¿©qݚyþ…÷ñ»Ý}´;†ƒ¡Ä`síØ¢¾ô—¬#;ÎE¦Xo¥Çjz\”Òâºkj|M‰V“ã‡*%~”&u› änS5¡›Qãr5.aÆt_®ÑÝ7èW=öhTbF&6jdÏѳ¹•‘‰mû/×åu™Æñ¯—T@T@Så¢Èý2à 0 È]`H°ä²¨1¨ `yä ^ÖK$ëZf*h¹YÞ)=æZֶɶ—vÝ:¶µk%Ö´Ü“›®Š¥³Ÿ€ÝãÙ?>ç÷ƒ™yžç}žç}ßç˚á£ÆŽLô¬ã}%q4Çbb\9\ö0Í ó‘-Ü_EáÓU¥‚ˆåG$+7ªœˆ\eGڔY®ÙQ5ʌª—5ºEéÑíJ‹éTjl·,±ïÉ÷5ÜãÝù?N“ÿÃøܛEr˜±a #NJ æ+âø q”‡-z´ +£Ç)?z²r£ƒ”¦¬˜X͎1*#&UÖØ,¥Ç*-ήԸjYâ—Ê¿R)†ÍJNØ¥¤„£2%öȘx~àÝ)SÂ'ÉýFàNÆÏmŒ›É[ó©q8ˆ­’8æGÁE9ñ^Ê2LT¦aª¬†J3D)Ր KBŠÌ ™JI,Prâ\%ͪ”iVŒÆ'4˸Q‰¦2˜ːô®â“.Á÷¼;ùßÇñ³?—^À÷Öb¤€9Ÿ1ô1âA¶éaòa£VÙ¦Ê0ŽQšÑG£ŸÌÆ%#”dŠ—É”$cRºf%å*1¹D ɏȐR«ø”fř¦óE[*Êò| wø›)É<@75؇¿øÞÂè¹~²ˆgא2jSHd¦“Åì®dó8™Ì“d4*Ñ£Àì‹åyS~ùNùC@žSûKèüoÅ÷Æޖt/ÏÚ*zXlȤ,bI&–XÛPÍ,­é…cR4QÁE +*š¡À¢(M+NÔÔâTçÈÏV¢)¶ +M¶-Ճ%«4±¤CJöɧ䔼K>áyC¾6§&35‹äÿ¹JzY¸îQ΅Zz-¦ˆ§€X҉oyaë+Ø>J¥ò+¯)¥“5Ù¨Iö0=hÓD{²&Ø3åSV$ï²ù_V«qåOjly»¼Ê÷ʳü¤<ÊÏ˳ì:8åe  ûÏ,â\¨ã~Zʹ€4\öS©š÷¹H£lâ2óy1†’Ÿ€ª!šPé&ïJO¯ôÕ¸J?­ HyU%ʳ*UcªòäQe—{Õ"®n’[õF¹Ví–KÕ«UõøF.•wåZá”ìÄþVümh È ÆF΅ǩï…ËéÅzr@LÄ´ýI¬ãê†ËÃ1Zí˜(7ÇT¹:BåâˆÕ(G²FÖe遺 ¯«ÒÐ: ;л¥ñXÛ_ÁméQg?Ûñߎ¿µÍÔáI©~%g#Ìã=Ržb«Óù|J“ä cš†Ê¥ÉUÛйMÞÀÒÄÐ\€\<l¨F +ØHà-4Âöñ—9xp!̖ßbhpj+ëވ¯V¾ÖÔJx«¥ùmÒH25”§?ÿ÷F¹ÂÐ5  m [m €m¾ÀàÓÆ%ÛÆEÜÆ%ØÆfn£‘WSÄÕ,b5:³õ.Ã_B±å†´ÊÙO;òo-¶W’®eë9›7°6q&m–ŒOIá0|Á3.Oã ƒoúv‹ 0€naí`ðêð‡ .þ×6tÇ#|NA·¬“žÞ¯‘øs4à5ƒ{àÔ|·âw9>kð1¯ƒ>$mIÈÒÈg¥iໝüSÎQ;ð½vÿâØM»ÉG'ùè$]ÄÑÊ0ÂP´‡‹`ÏC@ÓuQàN wäûôÄî+ +}àÔ|7²¶Å[ًøËÃO +áFwJ]øß#yÂ‘ûðùPR¸ƒˆƒƒÔåúaô#> eÔ¥›8º º¹tºÙÔÝ4v7‹íÆà1êq”zýîjÅÏiW|?ü-/҃ø +܏ÿWðOØÁ×1xNÀÉA^‡S€I½ANÞ$'g¨ÍÛãR‰ã,áY†ƒú³§h¼žmÀþèyÏþ×µ„u/`ͅ¬35Æb¥ÿº%÷ãÒ°“ƒ>ÞZ™ÀïÁ ҅Á\âèOpn„ô!µùp8>cûœá"5éec÷Ò½,¶ý†KªÜK²f+¡Å³Î`ÖéËÚÜߐ†¼…ÍßÀoá÷ÀOô!|…¿Áøz-§Kp…ú\uCÀÑ«×é É7Rn±Wosøܦ©ûHv‰¼ý;”–;¸ âãÀÂÁ™PeP h€fhµ(ÈMº‹²ûEyEև¾»…¶º‰bü7:󺮢gïéßþ‘Kp>€÷û5ïHCaxÂ$˜q`\,<¤ïÑu}èÜ[ªÃörl¯ÐwÄq8¾%Ž¢þ®¢Ì¾F^F)^Bg~I¿ AùÕgXú>?ÂYøu º!ƒyñaMÓðÉZŒøÊÄÇì—êŠ`{!¶—`{9¶›)E ¶×êïh̏Q»çÙÀh¥;Ê:ÏÐ.çi›o‰fÀï»p^‡ÿ'Ѻ7/}£ÉúJ3ðG©ÍøÈÆ~1í`×9UÐ~ YKmÒ@k6Ó¢?ªÚµzGOѺÛðÑ©ÓläSäâ$ß8Aä¯Q©n<ä¼r_ wà_pYÃX›;þ|ôrñ¾"𓈏4ìçê-ÙØ"el• +Ö±ûì×c¿ û«Xù:V;•ØŽý½tÆý’ˆ^Àâ*ׅ·ÎûØ5·ëhíú·š 9óÂß$Ö‚Ÿ— V,æa߆};öplՐõZ|Ô㣠»-Ø]¯çéÑç¨É³|k¹øÓÕÓæyF„;lÌݘ؀±m°°¹Ù@°an_€L áb ’…Ê-÷¤Mš&kš¶k«^¢5´SWU•v‘¶6Ò¤jšTišViÓ¤®Ý´n«¶UßNCÔíÇÑû}ï>ç}žç}.Wy’Ëôä%zù"Y/ç¯_{•ÂO™b> +Û»þï3>wi‹·J>EOOUE79¼ä𓣛}¸Ž!\£Ž+Ôq‰~¹€FÆ6¶øeƒÿõ­³Êè;K ¯0š—Éûÿø"ŽWœ©íÒ½÷€×úMêy…÷åޑÛÈ`¤ç‘ËHžRžÅÅsxx/YÚ±É8]§Ž§¨c•~9ËøXÆze TtšŠç™ÔOÒ¢³ø„QüB|„éÇøŒ¥æc–š29w¯²xzž£¶°8ž-™çRðLò˜ÉSγ¸hqy¼äi'Ooi=ÄlØfÂf1¾ŒÉðsß÷ Æö½„cï`4ò!F¢?Çјop4VÄðcü:‹öW»y,=Äó|¾¡`oŔ>1 ëѬD¤`1*§£u˜‹±`6Ǝ™ØjLÅzŠóa"Ώñ¸nÀhüFâ§0œpC L¸ŽÃ’{ì¢_ò‡ÿŒCI"éÿð±šå†%ÿM–—{ÄM–»«l‰¶˜bŸdK° ‹ÄII¦%é˜LTc,QcI%‘:0,­APڀ!i ŽH;0 ëE¿l‡dcdsèI^EwòUtÊïâ ümä¿DGÊçð§Šð§‰{+ñ3òïšè¶wˆëLíçYfV €3Ô7C;Éã1"—#˜’#) ¤¡/ՆC©•ÒêГքî´6t¦wâ`z?:ÒGàϘÁ÷2–Ñ–y­YwàËz ^Åω?¡9ûBü’ï¾ x±œ6`¹¿ÌuƒïKlÉfi“qú'˜þL)„¬ ô(ÔèRâ Â‚@v9üÙN´g»Ñ¦ô¢UéG‹²ޜ!4çLâÀþE4î?‡Õ-xÔoÀ­þ êsÿ@ü‡¿Ãyö×Éý<ËüŽ‹m–“6¨à¼Ç6(dᜡgmÏG—J‚€*í*%ÚÔ´ªð©­ðæVà@n šrјۊ†¼.¸ó£> uù§Q«ÙDµö\Ú×à,øø NÝ¿‘Ï{x—mð«ä½Íÿt°M¬°œc[:ÎoƒÔÑCíšx´hdðj2q@£F£VÖ ·¶ õZ'ê +ܨ-ð¢Z€K×gá1TΡR¿‡avÃ+(7~@üŽøšÁN<à™_&ÿ-7p…%~ƒXâó îRÇudŒø Ñh,L‚GŸ†z}jõTëp¬p¨2Ô¢Ò؄ +c;E즣(3@©y6óuX-/£Äò>Š‹Kü%Å"ßY™‰û´ÿ=rÞ`Ûw©™ó±p€s†¦:üÔÑT:“Õ&9œ&*M¹p˜ a7›Qn.C™Å…RKlÅm°÷ ¤$ˆâ’iX¬ga¶]ƒÉöŒ¥ïŸGQ©ˆ"›È}op¹Kþcmß*qš-ù$µ RG7u´2V<ŒU§5« åÖ ”Y÷ÃfÕÂj-B‰Í†b[,¥n˜K}0•u¢¨lÆò åËÐÛ¯@g¿‡Ǐ uü†ëWÐ9Dî‰($^#Ï/c¡­¾Ÿ£H0Ïuœï´G'}ãcŒÔ1fìöØìI(±§¢Ø®„Ùž“Ý€"G Œ µÐW4£°2]å +ª& ©ZB¾óòœw‘ë|j×'Äßø,r¨ñò‹P֊ü&âEÚý&ù.wëã‘mç ×¾ l…Ûi“&úÇIßX9¾éëã¡­—BSŸ†üúä¹5Èu¡vÛ òT!ÇãÒӆì†^(F‘Ùp +ÛHo¼´Æ"¥é!R¿ä³ˆô†=Ü%Çù.p$[;ÌÜx„ñÈu¸Ÿw’£I¿¹©Åј©E덂ª99Ír(›³Ý¬†Â«C–ׂL¯éÞ:¤ù|Hõu!Å7 yËI$·lBÖr ҖûHlýI-_ðY„Ì·‡Û´ýÓä?7¸7žÎs,› †‚Œêi¦–jÚ¥”Z ôQn Yþ8¤ù¥Hõ§!ů„ÜŸd¿2¿pAÚф¤Ž;! Ì !°†øÀ3ˆ ¼Ž˜ÀO¹þqÿF¼_|„gÉ…|›£ÀAfÇYˆã¼“#¼üVA}ÚFK=Jþ}ª io{eD$‚ + Bâ ℠+Ä +D íˆú!L`Ÿ°‚0ó•À!Jà Ôû{âëe7ß#b‡ɽ6ɼ0ÅX˜a,LÓ|öq¯†zJù] PSSm$;†„á8D'!b8û‚ +„¿-,F‚I>È d0éÌ ÿ1Èy7ȹfˆÃÜÐ{¼ôœ5¿"ØIq[ä\9 œš§N‡¹úç€î98™ˆÐ|¸§á_%~ ‡/ .Ë) ._ì»ï‘\Zá!„,8 ]àu'0ÅòÃB(5w•N““ æ§FO3˜žæœœ¡>ÏÐdÎPØgôÙÝ<ÏòY Å]ÕÏqpÀÇ8­ð…Ãç{þÃNž‡Ç!dù†çÔ¹‘^Z±Ø>\Ò¤‹Ää}jäCtü‰Áôrºt…œ\åŒ\¥È¯èk¿Æ®µ©¿KàÎÝÇ8DÄ??8{=ä<éä<çäé°Þwâçrx\Ÿ€OÁ êõ&5òy¹Í v‡áìîh©} øÚqºàµÿŠ-Ç t=€ð!À’À P Fƒj0ÌìؔþÍfó/¶ìTÿd»»ÏVù [Ù=¶ÏvÐ]Ð׿­¿éK¾u‹_}®ƒKà7à펝ץcïí„+ð XA¦¾S¥Ø‹íZÝQvgê+tÜBÇèøœ-ìïl€7Ø?c¿kÓn¸Žèc’ögþ®òËËXû¼ëä>NthÐàŽo¾ð…ò+|Éø‹ýáú+{n›* ÷Â^§k踂Ž?¢ãt\BÇ{l†Ùu¯mø¹29®wttÞÔ"w†7Á1pü†ûày¹©ÞðâG\VxÒõå¡¿ۏa» +Û°]‡íx:Û ðk %´ß^ÖÏi opÂtDoq¤>!;ßp¼(cv;Áöïiø¸ ®w”™|¾ú-±8¯8,ØáÈÆ~>^À‡rlWa»†©Ø¯Çþ°¿@­Zª=ZAÛXÇf8Zµ•_m&:-D´¶`ƒkÁwp~ >s–÷…ŽãÖŸzãK?¸"à‰'f)XËÁ~v¡cñØN^¶©F[4E›ÐтŽ&tlÐ2­£™¯!'«ùæ*,4±2ù"Ñ^ï÷qÎ6çQ{œr¶›×¨‹½ê_\1øa…#b¹€P Gcᨆc2¬õpÌÁîӜ”çõŸ.EÝÔÿ˜(>£©œ;ÀÒÿáFø¹vÎÑfó|ö¤únüÚ Ÿüá3a#<àH‡#Ž8Šñ¸ ž +-FÇ"tðÃ)¶Ír±k†K†¦wÉÕ´®ªëZ¬)®ešìZ©‰®TÛmºjºÍÕøîKUÕ}•*{lVEσÓó¬F»]W¹û=àx„óð‹æú2²÷‚u¼ndy>˜ÑƒøÌóêªÙnžšÞÓOuný5¥W´&õ²h‚{’jÜ3T힫qCUå1Bc=ÊUá9^£=§¨Üó •y.R©×J•xµh¤×÷~KÅÞm*ò¾*òqt¥éS¡â>TÔg††õY¨Bß*ðݨ|¿V ñ{Syþ+¯ï·Àñ¿0w^óÛ¿ÖsÍ6ò|–ÿš;ÇÃ:rTè¢ +?O•ûùj”_°Jü#5Òߤbÿ*ꛪa}sTØwˆ†+? \Cª•×ošõ›§ÜÀç50h²ƒv++ø¤2ƒ¯*3䞲Bð#èÞêëu £èŠ j€ýv®}˜Läê­$7£‚ÝTè­áA* 2¨ (FùÁåÛ588CƒB)7¤P9!¥Êî_©¬Ð)Ê £tÃ2¥1Œ¥†íRJØq%‡ڕáàéP +x¿wÁۜC¸^_‹²•§¡£åÔIqD7¼”gðÓ C°"”§ì°De†¥(#<[éáùJ‹¡Ôˆ +¥DNRRälÙ£–ȵZ¢wÈ}L֘Kàp(щCpí€Ã`é¥<é9°ñk6£àd>«²FÃB£‹r£<”é£Ì¨~J2(-*F)QñJŽ¶+):Cö˜Á²Å ׀Ør%ÆÖÊjœ©ã"ÅÇ­’Ù´]&ÓÏgzWqæÛ2™üïà}‡àó6ø×1¯däZžÊ§yo":*Ð1CБç¦T£·’þ²Cd3F*Ñ'k\¢¬¦T%˜Êb.T¼¹Læøj™âëe´<­XK£b¶*:ᨢ¬À—Š¶::“àP+±ßç«Ã½‹¨Ö£yé´Ô £EÔÊ r–fí.›ÅS‰_%Xe±„Él‰•)!Aq Ɋ³fËh-Plb‰¢Ç)jÀ㊰@¶…Û¶È`?¢PûïÀ-^;Âmí&ö-ð¿Â¸·¼„õ¤”zäù8ZÆ›2>†ÎÔkJJ%ؾý¾ÿóÿïó¾ïÿQ·ÑC”|¼`jK0­ó~Ïa||ø}ÚXÉz¨fžäŒXŽd/“,`0èÉo—JfJ€jü_5µ¨¦«¦ «¦é¨î ØT«¨E‹© +ÁWQÌ%+@3‚ÃT.¤Vބð;@_Küڕ|VKš«ÙH× Ò˜ƒF©7×D`aÀÐLr¸µ_hvÈ£<È£<iÄ™“F¼F6·w‚¯§Àõ›h Ðes-ô*Í*Ÿêë¨1Ë×2eXÑI˜ä3b3IÀüsøm2þƒÀQð"@òz­cn^‘N°VN “èó$‡À)ÀI&ñOœâþ/\¿T Üyp‡×²Ÿ½° ~ †é„éàhÿ +x ð©Nwà 8 ^oÜ7hð:9Ϛ¹ˆQ¸L3xm\á¼Ê|pZ¼÷+À×>VÁ4÷XÆ9Înpšá 9ö癎·Ë +ãûÀ%p¼˜b]7ÀÇàïäñ9õ¸Eƒ|›Fäkõ.›ß=tq‚ߣp_¼‰Ë ~ @èz! 8Àd +ñ¨%8¥b&qOêœÖ×,”¯´ ï¸7·G÷˜¼;¸Õ[çs}„»úF7Û}ø#8Þ¿>ÒýoD€XÐô׏xÌo•Çb绀ØEÄ.!î}FŸ’Ç'äñW\àG¸Â8Ä?#Öëˆç} +y 7{•//ñx§ƒû8xéÿäðƒBõ/üÝ?”¨»xÝÛxÌÏd!¾]Ê¥?ÉÃ8 +ôò¸J—q‘q`ïâ2ϓÇ9­cʚô¦v鷈ùuXÎðßi²<©ï˜^Ÿ^GÁó õ¡~_[ÌÍ'22–8}@-®á1/iñ­äï š›zˆ]@ì"bÏ#v9±1®¥:¦:fà)dÜ̲ù%•8 ×)=‡`ÚÙAØ€}`7x¦#vL*%¸Èêºx[f¸áéE„Aä>š¥‘Nìlb»‰=•èӉïeæç2žùįÔ~òxV«aßÈv²];aÜA-¶±…Š63Ú§am›ÁFÀn‰fÄü±”:–ÖiôyŒZ¥G”ÌúÂ1”øc´W6—ÍÜÄÏ!~>ñg¡Äbâ—»E,C ÚÀÆú™¬%ÛF¢Ö3“«QV¼µXnÁù8×±wl=‡¨Å>tñ ÖÈ3ê¡mÌI³†Á‘Bþ6òwh=úX§)päÁ1Žb8æ{±Vò·œ –òe5µ¨¢Š‹YЕ(¬އq#ˆ%ÆØYÊ/²Õ>ø`ëݍ.¶²F¶(†ñ$ÁÕ žp< +G + 68¬§jÈ£ZÓ´„<‘Gëå ž”“UJ©\ #›‹J‹õ7Ía¥Í{6h¿^b{?Ëvö[É!®{8v¶‘϶ºõ +!J$õŠ£ºÉDí Ï@Æ2Ž-DåÊ‚Ç ÏxòP¨žâW²“¬`–Ök•,@9ùÌGó‘§Y?À[ñԟöã0GÌ^ŽÝméí8rÖК¬¢.5~aŒÍ_\Ýô¸ú0žAð ‡ÇO:¬YTÀ W*NüÙÄ.gõÔðd ÙmÕ$¿VMô{Mnÿ+rޓ+È÷ÎÂ}´GXo|/ØÂýž­ìDëA]ýU¡9fyý;kfÀÏTØWùƒ5-h„rƒ,šlSN°C“ƒÝšâ‘;d–\¡%šºXã «•mh–#ì€ìaǕ~I™wõ˜Ñw™à[ùá~É8êÁŽÛ:ZÚ²…´Eó¨‰7*HùáFyÂb”ž¤Éá=41¢Ÿ\ƒåŒ© ÆT3f(Û8NYÆɲGNWfd±2"+”Y«´¨&YMû•j:.‹é²,æ/€ï>RÁ+ð·Ñ†îâhkk‡â÷Ònт”Ò–Q“|æk²9TÎ(“Æ›â•mêª,S/ÙMýõ˜y¨2Ì£d3[•n¶ËíÒØè\¥F)%fÆĬШØÍ»W#â^Öð¸wõhü ÷ý„8Þ÷ӂî%mâh«§õYÊÿ y>—šÌ NSiœ•kTFì¿Ù.¨¨Ï+Š_£‚Šl#Û 0 3Àΰƒl +(0.£D4DÃwq©;hc¬¨9©&Ù¬i’&VLlkšXS£i›&=iÏñ´Zcܲµ‰UÓtúœÛÓÎ=ÌÿÏðÞ}ï»ß÷½kPqˆQE! µ«0Ô©‚Ð,å…å+7l´F„SNx¥²Ãë”1WÆUJ3nUª©K)¦ƒrFž7äŒr+%ò.^¦önrïÆÓn-dÀòìóŒÿä߂Y?=N‘¸Ð#£_<&0Š–Ò§z’ÎÚØsú+&ÃOQAŠÌ•1#RV…g&),3]¡Yù +É*Õ°¬I2dÏPpö<å´(0§C9ûå?â(8/ÿœ›<39‚§ÈÓAþMØÓÖª»ÖlîTi&ÏSy?žžŒæ;¹pM¡gqô$*ÂrškPHn„†åÅȐ— à¼åP`~‰òÇË¿ ̖¦qHA»>+ßÂ#àC *üBƒ ܼgŽ¡ÞíŒþ«9›¦£G0»ÏÅs%\*èË(¾“E¯’Y³XÖ'btŠýT¤€¢P%ÿb›†—_q–†Òà’qò-©’OI£”,Wÿ’­êWҍ¸1 %¿åógàŸº¯Ø­Nò·Õ Ç:iV¨4‡xž Ÿû±iù|‡åU<}‰¢/!㤀òAò+ Р2ƒ|ˌò)³h`y¢ú—§ë¾r„\áršYþX +0“嘵rŒCÆ ìSÀWæÖ.jÞBÎõõ܍豉óÔ4°¼/ƖdÃ%žø„Ó› BûMñÕÀÉþêç +æã0wEß=Ì\°.ìBD.„å¢×"°c'1!MdbšÈô6ÜÚ1‹;‚œ-s8›æKópG`O+y‹ɇK*üâøžéaÉ@È¡3$Ÿxºé µ\òµ µ\ú5\t5\@5™×дŠ¬!`u+Ø-MÃ_M;…à¯"88Lu«m6{’¼«›ÑÂÎ&P»˜ð\´ýÈß U á»þðòjbÈibÀhÄ[6ҋ†PÀÒÀÓ@/ØDõ¬G=«§ÈúÕl¶ˆ¡›y‚Cø2¸ƒðÜÚD›Ö-ã\XÁ:¬äÏ` +Ÿï¹XÃáÀÂßÃXÒà G}‡Å ‚‹3Œ5ã9pÁ5Û½XÄᲈõXÄ¢.$ÈÂml|Œå|Ìê<ÌàÜ[\ +nm ×Ú5ÒÒÊ¡]ÓÖ±@!H]/YùÎû@à &ïÁóÜ +Vx´ÒVx´Â£ŸÛÊ%ÓÂå×RÓZºöq.|æj&çULÒ+q4+ÜZO¬XÐ9HfúF$‚|‹6K[ЈÀw+ù(ƒ¡ƒÝ‹¶ïÀº´ â<Úáяí dÛ¹x·£‹vzю°Ú(¶­“8èrë96ÃçÀ­5ä]@Î:r¸ˆ;zgA‡”°K2>Aÿ‘‘ÿ†‰àb{û†îÿ婋žt¡Ó} ÆÝðèA=ð=¶=ô¢‘u“hß à$ß½ÂÿÝV3uÌ"o%9Kɓ³‡ó˜˜FbvI9Vú†ýçÿŠá#ò=ü u̐ôŠÇœôc@E«?e¿b(íE½¬Éa.¢^zÑË¢CœU‡>_¨Z§>ÉQAÞ\ò%!ÓóÔ¿_pÀßû5Ðë5AG¼øøyŸ1“~ ÞÇÁ[à”/Æ gÚßåâ?‹>Ïq¼Ç&8Ç¢ž%øYzqö¢ªÉ]ÑÃ9@êŠ"g Ë5à 7çÞ<Ǽ±=fð/΀wÁ9¯Q|Pšþè5X›Ëðø„½r…Ëÿ*ú¼Æ¹Ž.®Sø Ý8ÙçyïÁøƒP  Œãq«êÜÊüÃ-œÆM\Ç׸ž¯p@ÃE~‰û_õ).ô: x•~Bƒ>ÖG¸«¿ë"QþâñUàmp¼þ›ƒƒA0ˆÒ·ø™Ûx̯5’øc‰=‰ØUº‚›¹ Kðø+<.à$ÿŒë;?á1?R‡>@¨ïk?íéÅeþšŸ«´Î­Óàx¼ +^ú?ni 5è3|Õ5¼îezqA#ˆ_Lì +ý^.ê¨Ò{ð8 3øºw𗿂ÇÛð8‰#=ŽC=†·:ªn$ó2µƒÉyÒ?t,¯àY°ï?8ÜìVrŠšüôÈEžr¤?ŸØ£éì8ýGàñ:ërX³ˆÝDìùÄ^‚³]MÖÇØ2mú›ù~žƒAÂ馲.²= ö€Ý ÃËá&¸æ•‘GZ§ÑÅq’+œžYȑLüLV·€­8†ØDžDì©ÔRKü‡©§‘øóX%Ä_ƒ"6’c§vñv'¬¶³iÚPÄ6Ô´…¬ül_‘óøÀ+uÏö:¬~ÔãG-rE¢.9ÄÏ¢²BŽ«1į þDâW¿†c³Žø Ї2— …ø›Y™NŽõçy: ³ß°Z_j%yWxñ=ð19çÝvž-ÿª÷ê¡{ÑE'{¤Cfò$ÃIÔløêqÖå1•¡Â ä˜BŽjrԑãßd—kLÛçÆî7ÛØÆ6Æ`0`n&&`CbH'@B(ÈHB¸Œ„[Fi.K›¤¹@š%Yše (m×fiÔ6AZ·N]5mÓº}˜¦mŸ6MÓ¦MÛª}ؤjÒÚ¥Õ4ïG.S¥ =zí?¿ÏyÏ9ï9σ『ðw fùå ¾8À©¦‰è$7e‚l‡{àW”ú('ß¡Ü¿$xýqéýê֐§™ó8áÉ× îÉ1Uaû#ÜÊf<ߦg¸·3Øq;¦ˆËù±Ÿ§cX5Ê#DfˆÝ=úÙü ˆ‘MðSÚÌw)ï÷h5¯±Þàû졅pÎ$v1ÂiåL.x +8K)gYÃBðDài†§žmðô`ÁÓð ³÷$Ÿ«Ÿ]vàÉ>N×K<¶n²¿î'ø2LYÿ%u )tY¶€='±e¿Ì*•³™à³í\v/ä÷q~Jüþ¶¢íŒ êM5¨+É¢mIÙښìQ{r‘ڒ˵9%¨M)aES՜USj‡6¤õª1m"éãZŸ~Dõ ªËXR(ãžj ?Rá/ª1~ +bª÷áü:mí:rã"8…œ+GS ‘¿ˆðIñږ™¬VƒQQƒUͧ6¼Ú`(Vƒ±BãZ­7Ö«Þ¸Qu¦6…Mݪ5íRiŸª3)˜yNUæ› +˜ßV¥ùUX>T¥å3S¼ÿËÕÒKH…²‹õß'‘bCØ·©ÜE¼Úȓ&Kš"æL­3ÛTgÎUØ\ Z³_5–€ÖZjUm‰(h‰ªÊÚ©€µ_•ÖQ•gͪ,ëùm×Ub{SÅöªÈþg;>S‰#¦{LoÀ·&‘çÂÇYgù¾Ÿç{ø ¯(ãC$;I!›Qk³,ª¶ekÍ­*[‘*m媰W«Ü^¯2G“J[åÏîSIöŠœ3ò9O©Q–ŸsWޜïËãú£¼®ÊwÅâ6ç¾ ÷%æÈ3š¬3ŒIcuèKZ~vlÁF9Õ{âÌIW¥3SåN›Êœ.ùù*Éñ«8' "WH>×涩 ·Gùyƒòº§åv?¯<÷U¹™åʬª‘©ªQÆ5í`‡ ÁQ¥)-¸¨Ôê[J®þ&øø›R‚ÿVj0¦œÿ²ûÌvƟ^îDw¢‡;ÁX҃][ðK> ‘'ø¤Ÿ¸êâd­MSfI¦š,kr@¾ µ¥Ê¨­Vz(¢ÔP«RB=J +)1<«øðÙGƒC˜ÎF%„™-Ÿ*.„–ÿE8O#»çwr'EÆXw3ªnçy~iÀ–jlõãñq0:™R”±Þ¨´õ¥F²•ñ()R¢ÄH•â#õŠkˆòÃÕ‚/Ó-ÝÀ ù ø+`ތ ¥àY„óä€tdw‚ŸŒ²îâûSN’¬Ýû0›çuØRÉ;ØãäHfb•ŽM ýˆŸ~fº/Ðäwà‹ø¢_ôዾÕKÁíãÂõaxõÎÚ†¸í eÝØÐÓ"Ü'qÕ!›a$ý|Þ:xĞâqb€M¶ÊÀG‰#œæÊaƾÂ{i°{™s÷ÒpñÅ Åmx â´A±çY€2`¨Û͐¸ëÁѐb: ß þ}ø0q8Âk¬]‡ÙAî(ånìÊbL4ðn"ÐLÇ„àvLaÇvL"„&i0“øb’K4A<&è‡?Ã¥C)î{—Ãþ†Æü1ˆéœÇŽJÏ®Ðw‚Ú ցJàå™í9>£«Àóøc;æ±cžÜ˜§áÏÓüçɋ9.Ò‰?7FÒ³ááëBîçÁ_HÏþƒˆéùçx| +ó¸:;_ ˜ÚÀU®:G;0‚€ ¦ ê‘Ø\|üùHäÇv,bÇb É,RØ(2 $Ôy{žœ8G^žå~žù;¢õ?š‡o’½سóEi㗩—¹‡W¨ÀH*Ç_…ã%p p ŒÿǍ' 67ÉÓ%ìXæž,“e +Ê2¾X&±–8äÒ«¼ó>_{ ðîÅ´n¸šá¨a¿"ör܄Ÿ²·*ô_üŒañ î|n]ÅàîãÁäMð>¹gV°c´B~®PøWðÅ +I·Ñʊtÿç¼÷‘†9c/gÛgè–TW6\Æۏ÷_ݛ²Â¸†ï€oƒo=^I/ÂGéÎ!†R6òä¿\—{tÓåƟÒ6½%inmzK›¦÷¦4I¡IKK EZ.¥ÊE ‡¥\„1AA‚È Û‡ŒÊ ásˆ²)Ê`âe2Ïq2&‡s“ÉӝéYöiOÎæöÇs~é/éû<ï÷ò¾ßçÔÈYzö,µÑG¯ž£G΋>ۇ“é;®h +{mfŸ5¼*c?™ìÅô,küòôs¼5‚§Á™¨1#¥ê‹šÄ àbÔ°þ¼>«œ_×8?ÿ@}^§GnÐx7Øüu6vý̀çý/b@2°(CAw6·Ú¦Ïq-gÒ¿ƒ³¹£º…óùÇu7ôg¼ÝÇ8Î?R<7´{—{B¿GÜeýEï³R?.€ŸƒÁÁÿj臤êKüÝ?ðwðv·TÃú¬=:‘uïч踂ŽË8®÷9,ÞCÇ%t¼ƒ¯z gz‘â½@ý{–཮kz _ó«¿å>üŸ†/À߈ÅMá³ó_¹p•ê·ªÒ»øÜ·t—ÞÀɜGGñ8ƒŽ×qy§qa¯â6†ŽWÐqR›Øý6ÒØKùü'HíÛz–ȁé0Øvƒ]_Ñp|ܟ>ðüݛøªóÄâ,Þî´¼:…Ÿ:©áú)îìtGÇs¸®c8¾£8À#øÜÃè8ˆŽZ‹»Ü¬}äd/ µ‡_õR@»ôm!B¾‰à#ê_Ây \—¢åõªbá3Áe‡'Ž"Ö¯¤M‚z†ÚØG<ö’—ïS»q™½šÁú¬?_;µ„õWh‡Ö‰²²‹ +9È1ö’%c›ôيP9œ`-¸ çïÀђïo±c-™Ä^,p9õ=å±R ëûô˜BÚN<¾£Q¬?–õ[92ÛÙõtÖïdýn=L<ÖéAÖßȑ¾]«Xe»¹¿»\Ÿh¼÷E±ô󟧢­x8zõ‹'¨‹môH2ÙG>eè÷k=:BÇêt5ý²J´R“ÈÂ=pt±€n¹ˆ¬Ñ½(\ÈæSÝ°té*ôO²ù.r”œŠ—ž?àä˜b¿Ì˜×C"œföã€'›½ÀQÆê~ôÙm½«m†§žIšG<º4›µ¡æªv³ƒ·û©âŸPAo“½Û ¢É ÿyš#äy®™ƒ©Ònžs´mE×»o +œö” ž8ÊáðÃÔ,ÕÁÓOUÑB$Úá™ÉúóP´”Ê]£»‰ä*§…,§£ÆéOdñ_ 2€“\ùGð³{?vòìáˆßÀX´-Ë•s^tSŸsd…+ž\x +á)‡Çcž:ª³Êh†«ž©¬ÝÉ_‹P¶’ +~”êÙÅ/k$?‚f§OþàyFŽŒ>OqÅm›¸r¿ÁѺ¼!.s¹Sc‰£>;\™°ä±§"öã¥üp᪇«®±pMdíptóv¹†‘Zª«f ³^Ðéw@dGÝ\‰øȝÅä¬çó +Þ-a4œÇuÓAL&cÔjHÖ¸A©ð9àʂÍ͞Šàò*P}LHuƒÂª4Z5±Œªê¸9Âàˆ_'üùâŸÑ`ÃKª0\REÂ-U$Fpˆ+mw¹´£‚äª_ÃÕ²¼„±‹q¬ÓÅlIŽî&&cÌqjHNQ8Á¢:Cšj²U“¯`b±ª+4$±JUIµ +$5ȗ4V•ÉíªHž%oÊ•¥¬U©q»ŠO«ÈxB…ÆwU`º¥BSDEàüOùèÆ®GÀê³m%ã#P1iï×É×(ê¤ÞbPµÉ¨!F«ÆtùŒ9ª4y4ØT*¯©Rå¦j•™†«Äܤbs› +Í*H½WžÔ5r[¶)Ïò´\–ʱ\’ËzD” öÃÿ$#Fžöá#ϯñw泥¯8!7#kȍߚ¨ +‹Yå›J-*±äªÈR¨BK¹ +¬UòX‡)ß:Jn[«rm3ä²/T¶}•²ìßR†cŸœŽ•îxGéi•3-»ˆöÂ÷Ü[×Õ1n‚ÅŒ€sð¶ÓÐÑJnFS'džR¯ƒñ*¶U`·ÈcO“Ûž¥<{¾r%r9|ÊI );­AYé㕙>MNg·Ò+åÈØ*{Æ^Ù2^5óMð©l™ÙÁöý¼›ñ³kûî‹°HŒ=S°l-~ò@­ £Fª¨‘òÜy2“”ë4+ÇiS–Ó©ÌŒ\P¨ŒÌ +93‡*=+¬4L¡={ŠlÙ]²æ< KÎ7•êÚ#³ë¸L®_Oø̔zÙÿvx75RxÚeXՅ|ž…¦v¾‡Æꤖz P#¥äÆí6(Ëe”3Ç¢´œ49\ÙÀ#»«L¶Ü*YóêeÉk’ÅÝ.³{ŽLùËddHOñô*ÙsLIžsà#>¡”|îo¸¾ ï#øØÕcð`Ÿ;Ð3 mc‰ÑHrSCn|Ĥ„˜ä–Ä*½ Y¶|³¬ùvY<™À­TO‰Ì>™ +ke,¼K)EmJ.š¥¤â¯+¡x£ ÅßU\ñQÅŸáy|Î;îröÜÃÈ» °ª…žÝã±chiCG3#àt†Ð2˜˜Ò7ÙÄÄ^ž ÔR“L%V™JÓe,u)… %— VRYH å2”·*ÎÛ¡XïÅx×K^n"/·¢—ÚË´àýŒä2K°ç-p®gä]9‘ž]mØÁ œ èjF_-CF2ó֓bâ$&Ö@¼Œ>£’*-J¨L“Á—­x_b}^ òSH~‚ègCéÓÀc˜c ê~†cÿU€×óE´þÍp>4™óq*=æNÁsµÓ¼–aXFßh©ˆ˜å11×Æ+)”¢¸`ªb‚A‘ M¤h‚PˆÂñ¡i`À†0MA Cá?ÈÄV†jæ)x6Á»–‘{ùLzÌӐßÂû‘Ø£êVB†V7ùq7 õ“Ò§¸‘É$ŠK%l\xaÖ0¦©Ãt˜‡Ù\xÀÛ ÇÄ Ç¸ÔcBê¯Huh¨cžCæÆ걓zœCO€N0yy@Ë0¾÷—"´d£×F\Œè1ŒãR‹¿ƒ¯kæRivHMdM4p…ÛġӄØ&’Û4›€â5GoÅLíLk£.KhhŒh öký\éÁni)![€ š9ŸÚ<ÚÒºh#;’?é;: “û6ÎçÖëá¶æ·+X¯¹ÌyŒ#ƒtóöp÷Ò ¨30hs¼1 ¾×;áÿü 9éâ¼tG7Úè¦&Ý4¶nrх¨ºèU]Gyî,¿A—ûÿ¡U»‘œEpܳŸÖÅ:^Jæ<ÿaÖ<2h6¶’ƺ £õÿð’gG£‡I'¨M/uéE½è³FÛG.úYë¥'ßṿª†½•À; ¾1p¥a0œpÖö¯{ðLߐ {%€W@æCa„!WŒ®Ò›ÄÑOý c *ôÍr1@áØÔö_RûœÉÛqpfÂËL´tL¬ôR€ãl`íóþuÁ€ü¦tÈ^o$6hVßӐqü ø-ø„8.sf¯pé†>¯rF®qØ®Rà+Ü_W.0Yë€ āt0R·™Î¿gj¿‰sø;Îå®éÄ×ø˜¿pH¿ÂÙ}ÁA¹Ž#ûGøGÄs"^¡@Ÿà ¯·õ‘¾ÄaùÍGÈ>|­Túp¾ˆ!X·ð4ÿT |ÉpåàŠÆ²~kÏÒg8‹Ë8K8ßÇG¸®‰ã<ÕûÄñNô]<ÍEüÝD4ËÏ(Ìy}¬×YÕÏýZ€ûYðã;bà6×ßÎÔ®OñÀÛ}¨<ý +Ÿûnâ-ÜÌÏqSýäãMâ8ûz{Ž†õSâx8Nk{ÜM)»(é3Hé4’z¹~=ÈëÇ1pÄp;ÀÍTÁþ¤_+Œ}Xኁ' Ž,ý?u§ô +Îæq¼@>zñS'ñuÏã/ŸÃ >£zŽÍ:=E;¦§N*Ò£nž<¨7ÈÌUí#Ëû`Ý :À.ðœ_ORòËìܠԍpÙùµ/±ç°öh=‰kë!G¨Ë!Ü^7îï ÊY¿ŠöñJ¨gýõz\›áhçßÚ×ÓDt†*½bn¨ÞÐ 6ëù^ Èþ489x,Ã؋®h2šG»ÊÕâØM>:p“í¸¾6üåNèv4²­¶Ç#Ô¥Y ¬¿E‰fƒŽUŸÖRÁÕ0®‚weõÀÏÿ ÀmªíàX åu’‹Ç8#» ‡ŽtâÏe‡£ÉöD®ŠítØŽ2­!ŽUÔeÿ/ç‰Z"\B.jÈäƒ(f§¤mVÃ]ÀÛþ£O{í jþÖÈ­7­\´ÈÌ~ìð¸©tûÈ þ\âχc“9Óà)„§ž2xªY»Å®C-­Z@öæ³³R\ Ú,F}óàö£œçŠ9Å(ô48ĵ×É5¼‹xèêƒWã:EÀiU5YJϨá¼.&Žjâ¨$Ž +‡çn1 öBxæÁSÎÿ¢Ú(fYjç›C(¨—êõÓi>'{·ogžçÊïáºÝG;kç}+ñl$n9¸Cà5Á¥…r²§xx’ÙK<¹ðŒ¢sG“ášÎ‰¹®x*‰jê]r¶ñí~"}ŽnwUL%oß NqÅOà*c}œëe;WÝ&âYC›¯%/‹×P8¼fòfc_1ì)žö” k.\ùp‡«®™ṕg•ªáÓÕt¸ÔÉSOñY:ïຎo'ÿž`ôúQ:9-xÛâ©w3Ӑ—…þQ‘zݯ>;\±p%°'/\™p ‡k4\5†hò‰r¹È#{#PN. +ÆiÊædgqeê—dñÏʺèYŒ‡³¥½Ã1@3¯åz©MaL$?óÉÉr2ìC¤&…X5>È¡1A.å%jTPªFgiDð «a!w+'t†²C‹”V¡Œ°:¥…7)5¼C)áO(Ù𲒠å1|!OÄwòDútÎ.®÷ÝX‚m )‘1—‘›PANŠ©O!õºÇç´†*ßdT^„U¹‡r .eGx”‘¦Œˆ¥GŽRZäyS•bœ­dS¹<¦¥J07*Þü¨Üæ¹Ì/)Ö|Q1–ëà{ÅZ|zþýxÈÆÏ- ‘k~ïkˁ撧™Ôf2µKmFØ•i1)Ý¥Ts´¼æ8%›“•dɐÇ2\ –±Š·(ÎZ(—µL±Ö%rF5(ÚÖ.‡í¨ì¶—e³]_‚[¼÷©¾}ØÃvÆ­–IŒœ¼Öãm3–ßlò4Lb ÉÇ ‹ RšÝ Í¢„(›â¢bä¶%Èeó*֖£[¾œö»mŸ%‡£TvGlŽõ²F·Ã²D¿(Sô™œ’Ùù/ÞûtþN¸Û𳛱ˆëA¶ ›4Ÿ8î§6SÑÉ42’ÚdS›wˆâœFÅ8¬r:ŠŽv˝,»3äÉ木¨˜é²ÆË»Hf×™\ÛéîR„»Wáî~Ü×ÀM>ãþdß{àÝÁ¸×< =‚ZìQ1•ð]!µ™2ŠYäQ›,j“LN\ñr¸,²¹ìŠrÅÊêNi²Ä —9~œLñSeL˜«È„*W*,q‹B=ì9¡ Ï +N¼¾UH¢O]pí†wûLúÂ,úXÆߕ|VLl÷’£)Ôf9É#'äÄCNœÞPEyL²xl2{œ2yâeLJUDÒ0’Ç(-U3å¤Ui0Ÿôv½|:É®Lô1v™ +Í¥B+×tʵr‚)—ØD]᥊yÐÙ +ݸü~0)\ü*°á¢Ö¸É½¯Ã»{‰œXfm…Õ°Èÿ³Ù2É÷V¤á|ÒßµÈ=růËĔèT£±MÐTÆÛ©ª±jE¤Z­WíÁj©^v›q–¹q˜*ËBÕ˄ΆKZã[µo¹5Öc[­¥_ƒU°`¥8,õŠïGñÑ ¶ôbK‚^2ٓ:£±hhÓ5“i|1•/jöZ­VXA>üÒך–Ï_Ùìé,Nš7Ѧ _\Êõš[=_Ôi¼uš`xÔÑD@Öyyö°_Í2%Í´¤ÍxÁ>r‡Ö؏{Ô¹r“œ`jãf>Øè+¶T±e$9 `cöäðU:› I ~Š%‰‡‹Ù±ˆ/袁/“ñh¼… _è°òs)q¾©qž…lî‡îÑ×â¾Úêµý´K·3[èj¶’ ›ù¾M¹ìL_ß>Ôüì7\;Ö²c­˜4²£Q“kTT×((kˆx¤[í«w +ôሕ¦æ¦Èå¸Kk4‘ëU»ø@ú®ò{.ÔJ£1P╢4à™ öŗqEÛÚ`ÜƎ­ü±U®nÕ\¶ÒÅɼE±ÙÌi›]lÓÁˆ'$à“Ó{.þyìÙˆǵ°ð1€Ja}ü€ ˆ ð¹!»ã÷…Ïš¿:mfG3m4‹I3]4óE35q^“÷'€Ç$ã;‚ði츎[Éuñ är@ +1³T÷ƒ<ȸѹm¸ µüa‘éÀ-ÿí߉MKvǀz«˜´(j-|ÑBL‡9÷ðÏ~×àô¢3ÿp.ÇQ3 xÔ­ê€GònÃ߶dÜÇàN¸;¹|ܛü}áï6Ü÷'Ѷ$œ3'ÙqRý<%&§4ãS|qJ~œDzRÍ>ù”çދ•x/Ã9×ÅÒf ž|®Ê¸'y®Òj= kÍâٱ ]øý0¸’Õ!,£‹Ú£p~ †œ¥Ó³´qÎ0rNÝ<ÇçˆïüQððٗcž;ÖÞ¥¸Ë`|øº<˜\ø¾“äø^ò\e>´›ö¥Pë³ÆF<?WŠÃO£cq|”€x™¯ª£¯iøoÐç›räM‰ö_¼a«{ý “u| ©= Ø&RÿŠKâïæ忚—Û6¤¿˜ÛßW$þdvÿƒ}ê÷öºßÙ*ß1?ÿšX߶¥½i¿{…#_â¬ú\ü–YŸÅ3Nmc}¾ §àË6ü>±Ó|d†ÿÀüþ¾)ü]“ú;¦ø_šì_³Ãü‚/±ã…ê9ûÔ³ +Å3¶±§%êOl»OIœ' ø•3d,‹ÓmB¹ñ²=âE;ÕÏbW8{¼;Ô +Ã,g_æì…Î^êìUÎþ*IltþB¸›t®‡l®î ¾xÀÛ÷Åý×Çá(´À¡¤ Ÿ$¹/¶‡³“gáÊÃÓÇ ç—:{¬³'Äivœ—6½l`÷ÛÄîµégÇÝvÌ;Åå˜Ýêö8hûCºžŒ›ãûÒûQú§Oõ)ØÍ s‰'éÀÓI©=Ò.ù \¹xºãèëü¡ÎÅþ±Îïì)îñç×9žó)#+œ¿ÖùyáJ×ø¹9š¼½Û‰»xs'5íÀ󠒡 Tªx>)í3ÉtSI½•‚/ WBé)t~ÿø¦-ívì·Ñí£kè´É~¹ÇÆ»›FvÑÈNZÝÁÛí™ÛâªØâM¬ÞÀsëEp]ü†z>óDk;áùdŠµ¥ßédI8š,yùb¿iŽ|ENàü­b”¨WÄVûåf{Šc–ÍrŽVրco¬“5Û(¥É‡¨÷žX‚e1/âýÜ sÐSG j+ƒG’¥Yùv¿œ™øºáꎣ7Žb%8ÊpTȊ*J¨Á3ÏL¸JYß–ËÙ²œ_h9õæ +ukŠ<©¡q쨔+cåìv”Ç0•´ ×jk*®zç/jWÎPY2„ÂÑÄ@º8~ïRø¿¡5î3~Þ¦µnÌ0^iÛè³5Ə%Fõ9F€|2™fÆ¥eàÍƙÀW€µ®~î5ˆÃñÆUƒùbµSåÚì'ƒúRYo9Z¤öRm U…ÂNÿˆÂuo‹Ýí€Öº¶û{={V 1ŽòI=ŸL3¦N ›±9)1ªkב–%©‰Ò© ¥ÅÀ”þQœ2$ú§²(µ"út½Ó¦GQÚÜ(L_=Ó7E÷Œæ(È8ù§#/ã|$2ގD—#ÑUÏÀy‹Õl¿uàjãÎ6¿×EWØmçóÉlqšb}'6åt2"·s ÎîºæD¿ŒDôÉèE]zG¯.ÅQØuXôì::zdVEAfmäg]yYË#‘µ1r³›àHädŸŽìœó‘•ó|äïÖ8†ÿÐZ¨”•#èåþ_æóyì›)N“è¤RlF‹Í0±)N¤EQnfôÈ΍îÙyQÝ3ò³ûF^ÎàHä”F·œ±‘›;9rrë"»ÛÒÈêöõÈLì‰.‰Ã‘‘8é‰Ç#-ñ*|èïÖ¸ߍVÃkZ;'}ý^kŸ\ʖ9[CŒ¤Åëkä(±)›þ=;EaAzä%²påFn·‚ÈIAqü—ý2®ñÚâø¹Id"‘¸‘AB’(‰7Q\³ „! bŠ ©)D1‰éQ5 mQ㫚Õؾš§˜ªUZ´EÍJI'÷Ïûn¼÷Ö[Ëëzß^k¯{“½ï9{ÿÏŸ³w)‡Ê¢¤c aë¨ÖeZ«2ÑÂRÛ[Xh‡ sí¡q’ý¬ö$z}&fûDöUŸY‹™¶šÀˆÈÔ[SÎFÏÙè8›0ñ…¯*á\ÎL8”µ¥´öÂV[FØ8¹k'OaUÖOX– Îu„¹s3¡qahuaq¥—u¥1v¥Ùteæu92_¸<ÓÉ;“}G2 ¦ÝKB»ñ½#ÿ‹ ¶&`T—q©&˜€I%ÆYwøªõ4vî6ÂÆÍNXº9 + 7gaæV^hÊa,¹ÝÓ½)C"ƒ¡Gú`C³îÁ‹äÁÌëA—àN îyb*ùcß4ZïÌ²IhW¾GóóV ‰LêgMb©g½Xޅ8|ÍDIQÂËNh<)OŠÇòz”DòDïF(½´73–Ï@tßi–½iN½i6½ˆÁ3OLfÿ1ì;¼ïCuIËمïQáÌ|ÄÒ{b _âð€?Zøj`&¬Þ±.v?._ŠÆ ×û¤Žþ€éςþñ(3–ÿ8”—яWҗÛ>Tz.²Ø?ƒ½‡µ¥.­7ãi<Ÿ¿%ÿoD,!`R•8¼—\à‰)ÚÖÐó`.Ð .¯jÄÈ¥HB–@H‘1°%Ú폎á@TèªXb¨’/&f:û¦.c¨K4®#1ðwsb©‹=˜8|ÁÄL´¤fÇҖœ§µxxC¹ÐCxìtœ‡ŽóÐÁ $2Nºæ(‹ê˜mt †5&j0T?ŒCpmG2Žaôè×EˆhË9K(ñU/0q&{–´ž@âAkõÁ¢XÔ =—ˆžóÐà =‡§ÇYÏ&zfͺ ·uÞêЭÕ>Hð¡VË^iPfPwމžÄЋº¤”ÂùŸž¸‚ˆ¯˜¸±Œ¸ØlxH9,4œÙ²…5 Á‹f`Ñ ,ÂxÃ808Æ!†qÐMÙ )]I†ÉÆ l„Þ"‡1Ó0BTIýà##P$CcbÑa«Ü’—2ÄS’c5#&šƒF¡Ä&ÚG;Τ-gҖ‰‹Hê#’óˆ„D‘¼ ‹´¡>[3ØFÐ5¶b( ¿Aüb${¦¼išz¡Ñз9×&žl^}„p"F;b2!µ{asÃE‚‚­ +D&Žxâˆ#Ž8j$,byüb!p,dêLðY¼õÃ]ّ!1š‰¢C¾H£l‡p…õÊÏøŒÂñ¢Á„\q .»÷…°àçâU%NšLH„ö-Rø‘dch€’Ê +Ñ^ô¡û@äDˆ•À½3Hvägxíq™|òDêp–„*Ýжhc´æHêuå»}û§6¸ñŠ7jê«ÊŒ› +?R‰#•3Iõ3<†Ã ôP€ŠSÊ,§>Ÿ†ˆÅ ؞„Eé†q…„Ž‡™\·¨=ß-øR'6û†¦;Ûø9IA³Š”zɆٜI6—|XdAî,@œÄW°æÖ¾+Y?†µ[ð»Ú“©C ÷iB”F-¦›ý™(¡ÓŠ †-A[(Äã÷¹¯üožq@jÆ †âÈ¡^s8“j$,A¨E$½hú~?‰Xhڊ½ôìÈ>Øǁõ-æוaÏ0|É!äStÅ+ŸR)5ÚDÁ@*zm«ah’CãFø±nl¢V7q¹m‹Íp›nÂyÓQњ+£{±ŸOš#Ok ¹ßRã>«ŒëÊ5yî]…€Nb‹ñs›0 ©;P¨^84~…îEš±JˆcÜÇi¡¶Âlª)ûÁŒ%dátÍU¶Ÿ[ÛPYúÕÊ‹#Œ¥Wq†¢ý€rF‡tÅGz]‹¢âî(9dj_8ôºª`¿Õî…]Äü¨à°­ìK‡J7HŠÓK‡wsÿÙþä“Ø—1TTÖ..Œ(r°Û®”ÅÝõéѵ}­4fŽ>¦z±‹{–ÏŸ·à£µ»LÝAª¨òïÊÏ»sƌzfÊzkfL°½(¿Ö„ýÔäCõ ~ h?›j¤}«CJö§3ëÕEÐ%‡/c_TV¹ÙJÓ*½p°ÎT°_ëú²xEêì×y\Íùð_’^HÙÚ¨;WiˆÙÉÅ Y¡A›"ÝÒ­[öˆl£!¤I²vå–^يRª9­$ÊV¦d2öåþnqÕy>ÏÏ=/÷™—ë<öy÷;ßsÎóýžç+N˜Èw $— ӟ°ümWy0¦’ù\°*c »†<0gלˆuNä@§Bö„‡É!“ˆÉ ‰·ñ¯+‘‹G[Yš›uï?Rê|÷^î—Èrr¯ÝýH®¬/¯坑žíëªüŸÝí,´~$¾åÒKý]×Kn±`ÅÀÿôlëï¥ò‡Á=ê»Zò5ö[7ì‹q|g‰Unr§¯Ä"~²F§8ð—ß›-cYþ¸ÙÞ đ\ೖ-K1¿EsÁÁ÷Ø)–`[ƒ©‘ŠË>©ºzy·H–•™‘™]PúF(볫Êܤ;ËdqÁóF™µV –Lk-²ÒzßPߔJäùK{×wÜWÇy~Ç×P®'C8Ød,ß´.ü†“®õ Á:ÚöÝJô£@7 òdØzqFÙ@ˆˆ` €Và"°¤ 6X˜ €#‚Ÿð¥#Î ¤Ž Z¼ÈÃÍÅÙe¾WŔõùÕíԃáþN~ÒaÉ~¿qfuÝÐ#E".Ýlßйy.ó’?XÏŠÕ µä;®ïmÛ HK¶=‡`(tu4äG!g‡ÔnÞð×_˜à:‚±^!ˆïB@——zhCÌLZ8ÄlÐ$@®ò +®²+è @ ‚eŠ°!¦OÜ¶ €Ax âCŒ8ÎÊÖ~ⷎNs]=¼/‘˜I•õûÖ£ü3Ñ¡¶M*{q6lî°jï¾K~!}9Y¯áËÖÅm!ÞóÐ!í€Û_œ7òHlêÞ°ˆ(­®Qpp†‚j¢`Ö0G°ÀXs,Dà`+‚¡ØÔÀ/xŠGÐF°@ó§ÒšSШ +sÐ=ét¢®##URuMÝTÄü„¤ó—³ò‹Ëî?|òšÇÊúôzq+[:¨º³ÖsâÀê‚åMžnþÖ´áÛÚËòú›ä‚¹3´‹å3šoƒ\P…¡7.‚B ¬<¤L 0 +wzB¨ýFÁ1¶Ê2 +òȆ×èˆ ÀDG­r€ <ƒ6§Xà`3 +üˆž83ð|6 Ô~!Æ]{=i¶»ï’5á»$€²>¡*²OE®t³OˆªŽ¯œ1À°Ñûoâï,Nõ4•ÿªðGO\ٞ~Ùêpc݌)ì àGàRÂÀ0X»èÏQAÁl²(fà4ˆ¦ ƒM<ÒAoc0n¦`—¹¿á"ú§0E°€>‚§“)hŒ@<×¹L"]ÉNÒÚJY¨·ùs·Á®«r ,¨'ùé’%‹ßìçhݹv +ÍÓÔ ݆/¢UÄ)ã öÐ|›íáJËæn¡×P‡¡W›‰ +Øx ì£À—•°k’àFÁEà‚Q®…`0|”=t€[“ 1x}Ôf«pÓÁc3Ü°A&€ŠÑ਎pJñù  ~ ˆò7%µ1ˆû¦¸ú,Û°ëPRN¹Dª,^ïHýU0u€©±Žf>Š‡èÏ7웻ñ]zQàÏZV «¸ÊÁqúˆ6 S𠎬d`Ç0  XA#ø º°G¼V´Jè[ò(ØÉÀ9 +RÔ¡àWvHýoÃ^0¢x¸3À bx +p`+gQ€£(^±£‚1£ö¦¤¡×±ÇûÙ>¡±—9¨½Ú–ã騬ÿ¡*ó®^¾œxú§ø#qb ,Y2aHwcýVMëOüb’/f=-Đȁ/} Öô‚-ö ´£`=·œç€¾}’ék஄)˜ÏÀ +Âð§à4ÎÜì€`"þ¶ Cø!À)çp3:ÊmðÄuŠ@ÁXoQÄv£ ¸£þÀn¢gn3»”ñÀŸåw:sõö+*ë÷ªòŒÓq‘ÛÂBV- ü›—‡ë¼M$Nre®O{®}v“ ¨R`ÍÅ Â8 3J°yM˜OÁ4ì)X͌ZGøyºšQðj{âDM {ÙÏ_πÑøøY ‚ÂöžÌ¸ÇÓºª|)ýweýŸUefÂᨈðÐÕËë.Aó]]éãdci¬§I~\w°„í<Á—€‹8ðº/–t•î èP°¿gÛ+÷ùe >*7E`S# Á Œñ3\ƒG„ëHpχHâŽn aKS[çÕK 5Úuîk;Åmɶc™Õ×Vùރ iEÞHDÊúòêíÓ_+ïß¾U\”'û9GVXJ¬Ýë¹9MŸ<~̨áƒô±´èփ™I+Õÿ¾qøÖ¤ij‹L9%ý¸Añ©„0pŒ‚cF"((…`¢77QØÈÅ#¦'q»Üù h[:à-H,õn#*Z_YXOõ +=V…yí!´pÁ’°Ýñ‹ñLYÊú´zY*K;—x2þð˜}{"wîü7ûeÔrÇñ„"Iwž:G”Sy¼\šV[´<¬6'RÜÜÕ¹n%Ü:溬'5Ém¥¤ÖDtbè¸Z·¦òºL\·&$ +³–ܾŸï~v珿ן{¿¶}ß»Ïç÷ùœ<%E…„&Ýg™§‡›ËÔIN£†¡DHÁJÓê"ÔNƄdDè]ƒ Qè!öcØ@ +°d *¨°>7 º8P°W% \ò² h¢`3‚^l:®9º3â Ðc<…ÍxWo67µü!ÌõúÊʺî¡Ìó·[ñЈZÙÒI‘ü4Ÿz{z?cŸvTäg‹„‚C |Þ®ø¸˜Xî.þqDh\â1ÓyâXǶC>¨M|;…“egA¸ ¨ð:܂ 8XJæ[7XôIÐ|0|ÿ—ú›¤N‹7€¿ áõw[{çEkvËàŠcàJȬÅþìÈýi%J-žöQ–#¿u¯Ý|FBòËéѵµ<~ÐÔ V©Tõwž|“„ä_¥JvV’—{J,Î͓ɯ)›ál/`¯ ¤ûùR|Vx¯ð¡®fmß „œ96 þpL1c½ÐÆ3Y0†Ïߜ,‡§/ÿ–™N‹ÎPà[@õ¶Q†t´+eK¢TÙeæ9ۏ-pó +âÈ®|BpWãù©×$ˆ ¨ï¿%IHþOÞ¿y­Óé:ß~0?_(g¦‰D¢ô,ñ™¢rE}K¾cШ+)ÊJ_*=ˆÍI,€?!ñ4Ðl=ŗ[ P½Õ®¿=¸м [˜Í÷þö ©}gö˜… OZO$oê!xLõá=é¥5ØdbBCö) ÉO¡Õ´¶>ñRÛIðrþ\šš’r"#;¯@V©2[ƒÙk©þ«‚˜›cç›Ìlz½Œi5a#*¹XÝmþ?”;¼6ñ2.Þ#œ:ĉ֙Li­Ã’¿«ßÌðü_8L+ endstream endobj 98 0 obj <>stream +H‰œ–yTSwÇoɞ•°Ãc [€°5la‘QIBHØADED„ª•2ÖmtFOE.®c­Ö}êÒõ0êè8´׎8GNg¦Óïï÷9÷wïïÝß½÷ó '¥ªµÕ0 Ö ÏJŒÅb¤  + 2y­.-;!à’ÆK°ZÜ ü‹ž^i½"LÊÀ0ðÿ‰-×é @8(”µrœ;q®ª7èLöœy¥•&†Qëñq¶4±jž½ç|æ9ÚÄ +V³)gB£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚óÈtÕ;\ú” Ó¥$ÕºF½ZUnÀÜå˜(4TŒ%)뫔ƒ0C&¯”阤Z£“i˜¿óœ8¦Úbx‘ƒE¡ÁÁBÑ;…ú¯›¿P¦ÞÎӓ̹žAü om?çW= +€x¯Íú·¶Ò-Œ¯Àòæ[›Ëû0ñ¾¾øÎ}ø¦y)7ta¾¾õõõ>j¥ÜÇTÐ7úŸ¿@ï¼ÏÇtܛò`qÊ2™±Ê€™ê&¯®ª6ê±ZL®Ä„?â_øóyxg)˔z¥ÈçL­UáíÖ*ÔuµSkÿSeØO4?׸¸c¯¯Ø°.òò· åÒR´ ߁Þô-•’2ð5ßáÞüÜÏ ú÷Sá>Ó£V­š‹“då`r£¾n~ÏôY &à+`œ;ÂA4ˆÉ 䀰ÈA9Ð=¨- t°lÃ`;»Á~pŒƒÁ ðGp| ®[`Lƒ‡`<¯ "A ˆ YA+äùCb(Š‡R¡,¨*T2B-Ð +¨ꇆ¡Ðnè÷ÐQètº}MA ï —0Óal»Á¾°ŽSàx ¬‚kà&¸^Á£ð>ø0|>_ƒ'á‡ð,ÂG!"F$H:Rˆ”!z¤éF‘Qd?r 9‹\A&‘GÈ ”ˆrQ ¢áhš‹ÊÑ´íE‡Ñ]èaô4zBgÐ×Á–àE#H ‹*B=¡‹0HØIøˆp†p0MxJ$ùD1„˜D, V›‰½Ä­ÄÄãÄKÄ»ÄY‰dEò"EÒI2’ÔEÚBÚGúŒt™4MzN¦‘Èþär!YKî ’÷?%_&ß#¿¢°(®”0J:EAi¤ôQÆ(Ç()ӔWT6U@ æP+¨íÔ!ê~êêmêæD ¥eÒÔ´å´!ÚïhŸÓ¦h/èº']B/¢éëèҏӿ¢?a0nŒhF!ÃÀXÇØÍ8Åøšñ܌kæc&5S˜µ™˜6»lö˜Iaº2c˜K™MÌAæ!æEæ#…僰d¬VÖë(ëk–Íe‹Øél »—½‡}Ž}ŸCâ¸qâ9 +N'çÎ)Î].ÂuæJ¸rî +î÷ wšGä xR^¯‡÷[ÞoƜchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â­*­6X[ݱF­=­3­ë­·YŸ±~dó ·‘ÛtÛ´¹i ÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö +n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=GTB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%—®K7YV³©fFŸ¢ßY Õ.©=bàá?SŒîƕƩºÈº‘ºçõyõ‡Ø Ú† žkï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹­³mzyâò]íÔöÊö?uøuôw|¿"űN»ÎåwW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝ­èþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_p߶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMśΠnßLÝlÜ<9”úO¤[þ˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ +¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûۀÜ܊ÝݖÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäüå„æ æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ ÷„óû endstream endobj 105 0 obj [/Indexed/DeviceRGB 255 106 0 R] endobj 106 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 74 0 obj [/ICCBased 98 0 R] endobj 81 0 obj <> endobj 82 0 obj <> endobj 83 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 13.0 %%AI8_CreatorVersion: 13.0.0 %%For: (Jamie Zawinski) () %%Title: (iSaverRunner.ai) %%CreationDate: 6/4/12 2:30 PM %%BoundingBox: 0 -10 117 114 %%HiResBoundingBox: 0 -9.4248 116.3867 114 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 9.0 %AI12_BuildNumber: 406 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%DocumentCustomColors: (PANTONE 152 CVC) %%+ (PANTONE 485 CVC) %%CMYKCustomColor: 0 0.51 1 0 (PANTONE 152 CVC) %%+ 0 1 0.91 0 (PANTONE 485 CVC) %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_TemplateBox: 57.5 56.5 57.5 56.5 %AI3_TileBox: -231 -299 345 435 %AI3_DocumentPreview: None %AI5_ArtSize: 114 114 %AI5_RulerUnits: 6 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI9_OpenToView: -12 117 8 1190 1089 18 1 0 339 90 1 0 1 1 1 0 1 %AI5_OpenViewLayers: 7 %%PageOrigin:0 0 %AI7_GridSettings: 100 10 100 10 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 84 0 obj <>stream +%%BoundingBox: 0 -10 117 114 %%HiResBoundingBox: 0 -9.4248 116.3867 114 %AI7_Thumbnail: 124 128 8 %%BeginData: 28588 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C453D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373737FD04FF363736373637363736373637363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %363736373637A9FFFFFF37373D3737373D3737373D3737373D3737373D37 %37373D3737373D3737373D3737373D3737373D3737373D3737373D373737 %3D3737373D3737373D3737373D3737373D3737373D3737373D3737373D37 %37373D3737373D3737373D3737373D3737373D3737373D3737373D373737 %3D3737373D3737373D37AFFFFFFF36373637363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %3637363736373637363736371437A9FFFFFF3D373D373D373D373D373D37 %3D373D373D373D373D373D373D373D373D373D373D373D373D373D373D37 %3D373D373D373D373D373D373D373D373D373D373D373D373D373D373D37 %3D373D373D373D373D373D373D373D373D373D373D373D373D373D373D37 %3D373D373D373D373D373D373D373D373D37AFFFFFFF3637363736373637 %363736373637363736373637363736373637363736373637363736373637 %36373637363D2F3037373637363736373637363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %36373637363736373637363736373637363736373637A9FFFFFF3D373737 %3D3737373D3737373D3737373D3737373D3737373D3737373D3737373D37 %37373D3737373D3737372F003D373D3737373D3737373D3737373D373737 %3D3737373D3737373D3737373D3737373D3737373D3737373D3737373D37 %37373D3737373D3737373D3737373D3737373D3737373D373737AFFFFFFF %363736373637363736373637363736373637363736373637363736373637 %36373637363736373637363730280E050D37363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %A8FFFFFF3D373D373D373D373D373D373D373D373D373D373D373D373D37 %3D373D373D373D373D373D373D373D373D05280600363D373D373D373D37 %3D373D373D373D373D373D373D373D373D373D373D373D373D373D373D37 %3D373D373D373D373D373D373D373D373D373D373D373D373D373D373D37 %3D373737FD04FF3637363736373637363736373637363736373637363736 %3736373637363736373637363736373637363737362027F8063737363736 %373637363736373637363736373637363736373637363736373637363736 %373637363736373637363736373637363736373637363736373637363736 %37363736373637A9FFFFFF37373D3737373D3737373D3737373D3737373D %3737373D3737373D3737373D3737373D3737373D3737373D374C6820F82F %373D3737373D3737373D3737373D3737373D3737373D3737373D3737373D %3737373D3737373D3737373D3737373D3737373D3737373D3737373D3737 %373D3737373D3737373D37AFFFFFFF363736373637363736373637363736 %373637363736373637363736373637363736373637363736373637363D0D %8C6826F83637373637363736373637363736373637363736373637363736 %373637363736373637363736373637363736373637363736373637363736 %373637363736373637363736371437A9FFFFFF3D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373745B5694A053D373D373D373D373D373D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D37AFFFFFFF36373637363736 %373637363736373637363736373637363736373637363736373637363736 %3736373637363737288CB04426053D373736373637363736373637363736 %373637363736373637363736373637363736373637363736373637363736 %3736373637363736373637363736373637363736373637A9FFFFFF3D3737 %373D3737373D3737373D3737373D3737373D3737373D3737373D3737373D %3737373D3737373D3737373D0D69B0B54A26073D3737373D3737373D3737 %373D3737373D3737373D3737373D3737373D3737373D3737373D3737373D %3737373D3737373D3737373D3737373D3737373D3737373D373737AFFFFF %FF3637363736373637363736373637363736373637363736373637363736 %373637363736373637363736373637363721B08D8D26200D3D3637363736 %373637363736373637363736373637363736373637363736373637363736 %373637363736373637363736373637363736373637363736373637363736 %37A8FFFFFF3D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D373D374C8CB5B06F4A27373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373737FD04FF36373637363736373637363736373637363736373637 %36373637363736373637363736373637363736373637363D0C8D8DB58D4B %26063737363736373637363736FD04373D36373637363736373637363736 %373637363736373637363736373637363736373637363736373637363736 %37363736373637A9FFFFFF37373D3737373D3737373D3737373D3737373D %3737373D3737373D3737373D3737373D3737373D3737373D3737373668B5 %8DB58D6F202F3737373D3737373D3737372F3636063D3737373D3737373D %3737373D3737373D3737373D3737373D3737373D3737373D3737373D3737 %373D3737373D3737373D37AFFFFFFF363736373637363736373637363736 %373637363736373637363736373637363736373637363736373637363736 %370E6F8DB08DB04474F8363737363736373637372FF837F8063737363736 %373637363736373637363736373637363736373637363736373637363736 %373637363736373637363736371437A9FFFFFF3D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373D4BB58DB5B0B04A75053D373D373D373D3736F8360CF8373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D37AFFFFFFF36373637363736 %373637363736373637363736373637363736373637363736373637363736 %373637363736373637154C8CB08DB5B069744A0D3736373637363721270E %F8063D363736373637363736373637363736373637363736373637363736 %3736373637363736373637363736373637363736373637A9FFFFFF3D3737 %373D3737373D3737373D3737373D3737373D3737373D3737373D3737373D %3737373D3737373D3737373D373D27B5B0B58DB58D7598273737373D373D %28682F06F8363737373D3737373D3737373D3737373D3737373D3737373D %3737373D3737373D3737373D3737373D3737373D3737373D373737AFFFFF %FF3637363736373637363736373637363736373637363736373637363736 %373637363736373637363736373637363715288CB58DB08DB044C1203037 %3736370E454406F827143736373637363736373637363736373637363736 %373637363736373637363736373637363736373637363736373637363736 %37A8FFFFFF3D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D373D373D28B5B0B58DB5B04B %C14A0D3D373D372E8C4B044A0661373D373D373D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373737FD04FF36373637363736373637363736373637363736373637 %36373637363736373637363736373637363736373637363737288CB58DB0 %8D8D4A9FF8FD04373644B0F8754A0D373736373637363736373637363736 %373637363736373637363736373637363736373637363736373637363736 %37363736373637A9FFFFFF37373D3737373D3737373D3737373D3737373D %3737373D3737373D3737373D3737373D3737373D3737373D3737373D27B0 %8DB58DB5449F4A0D373D373D27B08D269F4B0E3D373D3737373D3737373D %3737373D3737373D3737373D3737373D3737373D3737373D3737373D3737 %373D3737373D3737373D37AFFFFFFF363736373637363736373637363736 %373637363736373637363736373637363736373637363736373637363736 %370E4B8DB08DB5684A98F80E37363D0D68B08D4AC1203637373637363736 %373637363736373637363736373637363736373637363736373637363736 %373637363736373637363736371437A9FFFFFF3D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373668B58DB5B04B9F75063D373D37288CB68D75C127363D373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D37AFFFFFFF36373637363736 %373637363736373637363736373637363736373637363736373637363736 %373637363736373637068D8DB08D8D4AC1F8FD04373644B08D8D4AC1F837 %373736373637363736373637363736373637363736373637363736373637 %36373637363736373637363736373637363736373637A9FFFFFF3D373737 %3D3737373D3737373D3737373D3737373D3737373D3737373D3737373D37 %37373D3737373D3737373D144BB0B5B0B544C16E06373D373D27B0B0B58D %75C127143D3737373D3737373D3737373D3737373D3737373D3737373D37 %37373D3737373D3737373D3737373D3737373D3737373D373737AFFFFFFF %363736373637363736373637363736373637363736373637363736373637 %3637363736373637363736373637152868B08DB56875BA260E3736370E45 %8DB58D8D4AC1203636373637363736373637363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %A8FFFFFF3D373D373D373D373D373D373D373D373D373D373D373D373D37 %3D373D373D373D373D373D373D373D373D372F68B58DB5B04B9F99063D37 %3D372F8CB6B0B58D6FC14B0E3D373D373D373D373D373D373D373D373D37 %3D373D373D373D373D373D373D373D373D373D373D373D373D373D373D37 %3D373737FD04FF3637363736373637363736373637363736373637363736 %37363736373637363736373637363736373637370E44B58DB08D8D4AC120 %303737363721B08DB58DB044C14A0D373736373637363736373637363736 %373637363736373637363736373637363736373637363736373637363736 %37363736373637A9FFFFFF37373D3737373D3737373D3737373D3737373D %3737373D3737373D3737373D3737373D3737373D3737373644B08DB58DB5 %44C19805373D373D0D6FB0B58DB5B06F9875073D373D3737373D3737373D %3737373D3737373D3737373D3737373D3737373D3737373D3737373D3737 %373D3737373D3737373D37AFFFFFFF363736373637363736373637363736 %37363736373637363736373637363736373637363736373637373620B08D %B08DB5694AC14A06373637372E68B58DB08DB568756E0637373637363736 %373637363736373637363736373637363736373637363736373637363736 %373637363736373637363736371437A9FFFFFF3D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %27B5B0B58DB5B06974C12036373D373D27B5B0B58DB5B08D6EC1053D373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D37AFFFFFFF36373637363736 %3736373637363736373637363736373637363736373637363736FD053736 %3D068CB0B58DB08DB044C174063737363D1469B0B58DB08DB58D4B982714 %373637363736373637363736373637363736373637363736373637363736 %373637363736373637363736373637363736373637A9FFFFFF3D3737373D %3737373D3737373D3737373D3737373D3737373D3737373D3737373D2F2F %3737373D0E69B0B58DB58DB56975C16E073D3737373668B58DB58DB58DB5 %689F26303737373D3737373D3737373D3737373D3737373D3737373D3737 %373D3737373D3737373D3737373D3737373D3737373D373737AFFFFFFF36 %373637363736373637363736373637363736371537363736373637363736 %3714212736F83737278CB58DB08DB5B0696EC120303737363D068D8DB08D %B58DB08D8D6E74053D373736373637363736373637363736373637363736 %3736373637363737373637363736373637363736373637363736373637A8 %FFFFFF3D373D373D373D373D373D373D373D373D373D375A2E2E272E272E %272E272E2727684BF820272768B6B0B58DB5B0B5689FC1272752272E274B %B0B58DB5B0B58DB58D6F9827272E272E272E272E272E272E272E272E272E %272E272E272E272E272E272E2F61373D373D373D373D373D373D373D373D %373737FD04FF3637363736373637363736373637363736373759FD0CF844 %93FD04F820B08DB58DB08DB58D69989FFD06F820B58DB08DB58DB08DB544 %9926FD1FF82E37373736373637363736373637363736373637A9FFFFFF37 %373D3737373D3737373D3737373D3737376127FD0CF8B568FD04F86FB0B5 %8DB58DB58DB5689F9926FD05F845B0B58DB58DB58DB5B08D6E99FD1FF826 %2F3D3737373D3737373D3737373D3737373D37AFFFFFFF36373637363736 %37363736373637363736373027FD0BF845B044FD04F88CB58DB08DB58DB0 %8D69989FFD06F844B08DB58DB08DB58DB08D4B9820FD1FF82F3737363736 %37363736373637363736371437A9FFFFFF3D373D373D373D373D373D373D %373D373D375AFD0CF88DB5FD04F820B5B0B58DB5B0B58DB669999F27FD05 %F86FB0B5B0B58DB5B0B58DB669756EFD1FF82F3D373D373D373D373D373D %373D373D373D37AFFFFFFF3637363736373637363736373637363736372F %27FD0AF820B568FD04F845B0B58DB08DB58DB08D8D4AC120FD05F844B08D %B58DB08DB58DB08DB0449FFD1FF82F373736373637363736373637363736 %373637A9FFFFFF3D3737373D3737373D3737373D3737373D375AFD0BF869 %B0692626F8F869B58DB58DB58DB58DB5B06F9975FD05F86FB0B58DB58DB5 %8DB58DB5B0697475FD1EF82F3D373D3737373D3737373D3737373D373737 %AFFFFFFF3637363736373637363736373637363736373020FD0AF88DB020 %7520F8F88D8DB08DB58DB08DB58DB08C4B98FD05F820B58DB08DB58DB08D %B58DB08D4B9820FD1DF82F373736373637363736373637363736373637A8 %FFFFFF3D373D373D373D373D373D373D373D373D375AFD0AF844B58D4B99 %26F8218DB58DB5B0B58DB5B0B58DB669756EFD04F827B0B58DB5B0B58DB5 %B0B58DB6697574FD1CF8202F3D373D373D373D373D373D373D373D373737 %FD04FF3637363736373637363736373637363736373626FD09F869B08D4A %C1F8F8F893B0B08DB58DB08DB58DB08DB5449920FD04F8938DB08DB58DB0 %8DB58DB08DB5449F4AFD1CF8533737363736373637363736373637363736 %37A9FFFFFF37373D3737373D3737373D3737373D3737375AFD09F8208DB5 %8D75C126F8F868B58DB58DB58DB58DB58DB5B0B54A99FD04F868B58DB58D %B58DB58DB58DB5B0B54AC1FD1CF82F3D3737373D3737373D3737373D3737 %373D37AFFFFFFF3637363736373637363736373637363736372F27FD08F8 %20B08D8D4AC1207E7D698DB58DB08DB58DB08DB58DB08D8D4A74F87E7D4B %8CB58DB08DB58DB08DB58DB08D694A9FF87DA8A87DA87DA87DA87DA87DA8 %7D52FD0BF82F373736373637363736373637363736371437A9FFFFFF3D37 %3D373D373D373D373D373D373D373D375AFD09F86FB0B58D6FC14BA8FF4B %B5B0B58DB5B0B58DB5B0B58DB5B08D4A7527FF7D8DB0B58DB5B0B58DB5B0 %B58DB5B069749F27AFFD0DFF52FD0AF82F3D373D373D373D373D373D373D %373D373D37AFFFFFFF3637363736373637363736373637363736372F27FD %07F8208DB08DB044C14A7DFF7668B58DB08DB58DB08DB58DB08DB5B0694A %4A27FF4BB08DB08DB58DB08DB58DB08DB5B0457499F8A8FD0CFF27FD0AF8 %2F373736373637363736373637363736373637A9FFFFFF3D3737373D3737 %373D3737373D3737373D375AFD08F820B5B0B5B06FC17452FF8469B0B58D %B58DB58DB58DB58DB58DB5B0694A4A52A868B58DB58DB58DB58DB58DB58D %B5B04B9F7527FD0CFF52FD0AF82F3D373D3737373D3737373D3737373D37 %3737AFFFFFFF3637363736373637363736373637363736373020FD07F845 %8DB58DB0449F7427FFFF4B8D8DB58DB08DB58DB08DB58DB08DB5B0694A4A %2E528CB58DB08DB58DB08DB58DB08DB58D4A98207DFD0BFF27FD0AF82F37 %3736373637363736373637363736373637A8FFFFFF3D373D373D373D373D %373D373D373D373D375AFD08F869B6B0B5B09374C120FFFF7D68B6B0B58D %B5B0B58DB5B0B58DB5B0B5B06F744B2E6FB0B58DB5B0B58DB5B0B58DB5B0 %B5689F7452FD0BFF52FD09F8202F3D373D373D373D373D373D373D373D37 %3737FD04FF3637363736373637363736373637363736373626FD07F88D8D %B58DB08D6FC14A52FFA84B8CB58DB08DB58DB08DB58DB08DB58DB08D4B74 %27278DB0B08DB58DB08DB58DB08DB58DB0449F20A8FD0AFF27FD0AF85337 %3736373637363736373637363736373637A9FFFFFF37373D3737373D3737 %373D3737373D3737375AFD07F821B0B58DB5B0B544C19827FFFF7D8DB0B5 %8DB58DB58DB58DB58DB58DB58DB58D75740545B5B0B58DB58DB58DB58DB5 %8DB5B069747452FD0AFF52FD0AF82F3D3737373D3737373D3737373D3737 %373D37AFFFFFFF3637363736373637363736373637363736372F27FD06F8 %20B58DB08DB58D694AC120A8FFAF44B08DB58DB08DB58DB08DB58DB08DB5 %8DB044994AF868B58DB08DB58DB08DB58DB08DB58D4B6E27FD0AFF27FD0A %F82F373736373637363736373637363736371437A9FFFFFF3D373D373D37 %3D373D373D373D373D373D375AFD07F86FB0B58DB5B0B58D4BC17527FFFF %7D68B6B0B58DB5B0B58DB5B0B58DB5B0B5B0B54A9FF84BB0B58DB5B0B58D %B5B0B58DB5B0B5687526A9FD09FF52FD0AF82F3D373D373D373D373D373D %373D373D373D37AFFFFFFF3637363736373637363736373637363736372F %27FD06F868B58DB08DB58DB06875C12084FFA84B8DB58DB08DB58DB08DB5 %8DB08DB58DB0B0697475F893B0B08DB58DB08DB58DB08DB58D8D4A4A59FD %09FF27FD0AF82F373736373637363736373637363736373637A9FFFFFF3D %3737373D3737373D3737373D3737373D375AFD07F893B0B58DB58DB5B0B0 %44C14A52FFFF528DB0B58DB58DB58DB58DB58DB58DB58DB58D6F9F0444B5 %B0B58DB58DB58DB58DB58DB5B06F4A52FD09FF52FD0AF82F3D373D373737 %3D3737373D3737373D373737AFFFFFFF3637363736373637363736373637 %363736373020FD06F868B08DB58DB08DB5B0694AC1F884FFAF44B08DB58D %B08DB58DB08DB58DB08DB58DB0449F4AF88CB58DB08DB58DB08DB58DB08D %B5684A26FD09FF27FD0AF82F373736373637363736373637363736373637 %A8FFFFFF3D373D373D373D373D373D373D373D373D375AFD07F893B0B5B0 %B58DB5B0B5B06F9F9927FFFF7D68B6B0B58DB5B0B58DB5B0B58DB5B0B5B0 %934A9FF893B0B58DB5B0B58DB5B0B58DB5B0B54A4B84FD08FF52FD09F820 %2F3D373D373D373D373D373D373D373D373737FD04FF3637363736373637 %363736373637363736373626FD05F8208DB08DB58DB08DB58DB08C4BC126 %52FFA8458DB58DB08DB58DB08DB58DB08DB58DB08D694A2620B58DB08DB5 %8DB08DB58DB08DB58D6F207DFD08FF27FD0AF85337373637363736373637 %3637363736373637A9FFFFFF37373D3737373D3737373D3737373D373737 %5AFD07F893B0B58DB58DB58DB58DB568759F27A8FF528DB0B58DB58DB58D %B58DB58DB58DB58DB5B06F206FB0B58DB58DB58DB58DB58DB58DB5694A52 %FD08FF52FD0AF82F3D3737373D3737373D3737373D3737373D37AFFFFFFF %3637363736373637363736373637363736372F27FD06F868B58DB08DB58D %B08DB58DB0449F4A27FFAF44B08DB58DB08DB58DB08DB58DB08DB58DB08D %B08DB08DB58DB08DB58DB08DB58DB08D8D2027FD08FF27FD0AF82F373736 %373637363736373637363736371437A9FFFFFF3D373D373D373D373D373D %373D373D373D375AFD07F86FB0B58DB5B0B58DB5B0B5B0B544C1207EFF7D %68B6B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5 %B0B58DB5B04B26FD08FF52FD0AF82F3D373D373D373D373D373D373D373D %373D37AFFFFFFF3637363736373637363736373637363736372F27FD06F8 %20B58DB08DB58DB08DB58DB08D8D4A99F8FFA8458DB58DB08DB58DB08DB5 %8DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB568207DFD07FF %27FD0AF82F373736373637363736373637363736373637A9FFFFFF3D3737 %373D3737373D3737373D3737373D375AFD07F8208DB58DB58DB58DB58DB5 %8DB5B0696E7427FF4BB08DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB5B093F87DFD07FF52FD0AF82F3D373D373737 %3D3737373D3737373D373737AFFFFFFF3637363736373637363736373637 %363736373020FD07F8698DB58DB08DB58DB08DB58DB08D696E267E7D68B0 %8DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB5 %8DB0682652FD07FF27FD0AF82F3737363736373637363736373637363736 %37A8FFFFFF3D373D373D373D373D373D373D373D373D375AFD08F820B5B0 %B58DB5B0B58DB5B0B58DB5B06F4A52A869B0B5B0B58DB5B0B58DB5B0B58D %B5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B5B0B5442DFD07FF52FD09F8 %202F3D373D373D373D373D373D373D373D373737FD04FF36373637363736 %37363736373637363736373626FD08F868B58DB08DB58DB08DB58DB08DB5 %694A26846FB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB0 %8DB58DB08DB58DB08D4A26FD07FF27FD0AF8533737363736373637363736 %37363736373637A9FFFFFF37373D3737373D3737373D3737373D3737375A %FD09F845B0B58DB58DB58DB58DB58DB58DB5684A52768DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB54427A8FD %06FF52FD0AF82F3D3737373D3737373D3737373D3737373D37AFFFFFFF36 %37363736373637363736373637363736372F27FD09F8698DB58DB08DB58D %B08DB58DB08D8D202620B08DB08DB58DB08DB58DB08DB58DB08DB58DB08D %B58DB08DB58DB08DB58DB08DB58D6FF87DFD06FF27FD0AF82F3737363736 %37363736373637363736371437A9FFFFFF3D373D373D373D373D373D373D %373D373D375AFD0AF820B5B0B58DB5B0B58DB5B0B58DB5B06F264BB0B58D %B5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0 %B5684A7DFD06FF52FD0AF82F3D373D373D373D373D373D373D373D373D37 %AFFFFFFF3637363736373637363736373637363736372F27FD0AF868B58D %B08DB58DB08DB58DB08DB58D6968B58DB08DB58DB08DB58DB08DB58DB08D %B58DB08DB58DB08DB58DB08DB58DB08DB58D6F4A52FD06FF27FD0AF82F37 %3736373637363736373637363736373637A9FFFFFF3D3737373D3737373D %3737373D3737373D375AFD0BF8208DB58DB58DB58DB58DB58DB58DB5B0B5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB5697427FD06FF52FD0AF82F3D373D3737373D3737373D3737373D %373737AFFFFFFF3637363736373637363736373637363736373020FD0BF8 %698DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08D %B58DB08DB58DB08DB58DB08DB58DB08DB58DB08D6F7427A8FD05FF27FD0A %F82F373736373637363736373637363736373637A8FFFFFF3D373D373D37 %3D373D373D373D373D373D375AFD0BF852528DB0B58DB5B0B58DB5B0B58D %B5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0 %B58DB5B0B58DB56E9F26FD06FF52FD09F8202F3D373D373D373D373D373D %373D373D373737FD04FF3637363736373637363736373637363736373626 %FD0AF827FF45B08DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08D %B58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08D4BC14A7DFD05 %FF27FD0AF853373736373637363736373637363736373637A9FFFFFF3737 %3D3737373D3737373D3737373D3737375AFD0BF852FFA844B5B0B58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB5B08D4AC7207DFD05FF52FD0AF82F3D3737373D3737 %373D3737373D3737373D37AFFFFFFF363736373637363736373637363736 %3736372F27FD0AF827FFFF5268B58DB08DB58DB08DB58DB08DB58DB08DB5 %8DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB0449F %4A27A8FD05FF27FD0AF82F373736373637363736373637363736371437A9 %FFFFFF3D373D373D373D373D373D373D373D373D375AFD0BF852FFFFFF4C %8DB58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B5 %8DB5B0B58DB5B0B58DB5B0B58DB58D757427FD07FF52FD0AF82F3D373D37 %3D373D373D373D373D373D373D37AFFFFFFF363736373637363736373637 %3637363736372F27FD0AF827FFFFFFA84B8DB08DB58DB08DB58DB08DB58D %B08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB0B0 %6F4A26A8FD07FF27FD0AF82F373736373637363736373637363736373637 %A9FFFFFF3D3737373D3737373D3737373D3737373D375AFD0BF852FD04FF %7D69B0B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB5B09320267DFD08FF52FD0AF82F3D373D3737 %373D3737373D3737373D373737AFFFFFFF36373637363736373637363736 %37363736373020FD0BF8FD05FF7D69B0B08DB58DB08DB58DB08DB58DB08D %B58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB044F87DFD09 %FFFD0BF82F373736373637363736373637363736373637A8FFFFFF3D373D %373D373D373D373D373D373D373D375AFD0CF8277D52525259F869B0B5B0 %B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58D %B5B0B58DB669F8F87DFD07527D27FD0AF8202F3D373D373D373D373D373D %373D373D373737FD04FF3637363736373637363736373637363736373626 %FD13F88DB0B58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB5 %8DB08DB58DB08DB58DB06820FD17F8533737363736373637363736373637 %36373637A9FFFFFF37373D3737373D3737373D3737373D3737375AFD15F8 %93B0B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58D20FD18F82F3D3737373D3737373D3737373D3737373D37AF %FFFFFF3637363736373637363736373637363736372F27FD15F869B0B58D %B08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08C %20FD19F82F373736373637363736373637363736371437A9FFFFFF3D373D %373D373D373D373D373D373D373D375AFD17F893B0B58DB5B0B58DB5B0B5 %8DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58D27FD1AF82F3D373D37 %3D373D373D373D373D373D373D37AFFFFFFF363736373637363736373637 %3637363736372F27FD17F869B0B08DB58DB08DB58DB08DB58DB08DB58DB0 %8DB58DB08DB58DB08DB56820FD1BF82F3737363736373637363736373637 %36373637A9FFFFFF3D3737373D3737373D3737373D3737373D375AFD19F8 %4B8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B0B544FD1D %F82F3D373D3737373D3737373D3737373D373737AFFFFFFF363736373637 %3637363736373637363736373620FD19F82068B08DB58DB08DB58DB08DB5 %8DB08DB58DB08DB58DB08D8D20FD1EF85337373637363736373637363736 %3736373637A8FFFFFF3D373D373D373D373D373D373D373D373D375B27FD %1BF820938DB5B0B5B0B58DB5B0B58DB5B0B5B0B6B0B5696F20FD1EF82736 %3D373D373D373D373D373D373D373D373737FD04FF363736373637363736 %3736373637363736373736FD1DF82044698DB5B0B0B0B5B0B0B0B58D8D68 %6F4A4AFD1FF8202E3D373736373637363736373637363736373637A9FFFF %FF37373D3737373D3737373D3737373D3737373D375A2E2E282E282E282E %282E282E282E282E282E282E282E282E282E282E27F8F820204B4469446F %696F446F6E997451FD04F82752282E282E282E282E282E282E282E282E28 %2E282E282E282E28522F37373D3737373D3737373D3737373D3737373D37 %AFFFFFFF3637363736373637363736373637363736373637373736373737 %3637373736373737363737373637373736373737363D3627FD09F8262675 %989F4AFD06F8262F37363737373637373736373737363737373637373736 %37373736373637363736373637363736373637363736371437A9FFFFFF3D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373D373D373D373D373D373D3753FD0DF827FD09F852373D373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373D373D373D373D37AFFFFFFF36373637363736373637363736 %373637363736373637363736373637363736373637363736373637363736 %373637375AFD19F853373736373637363736373637363736373637363736 %37363736373637363736373637363736373637363736373637A9FFFFFF3D %3737373D3737373D3737373D3737373D3737373D3737373D3737373D3737 %373D3737373D3737373D3737373D375B27FD19F8265A373D3737373D3737 %373D3737373D3737373D3737373D3737373D3737373D3737373D3737373D %3737373D373737AFFFFFFF36373637363736373637363736373637363736 %37363736373637363736373637363736373637363736373637155A27FD1C %F85A37373637363736373637363736373637363736373637363736373637 %36373637363736373637363736373637A8FFFFFF3D373D373D373D373D37 %3D373D373D373D373D373D373D373D373D373D373D373D373D373D373D37 %3D373D375A27FD1DF82059373D373D373D373D373D373D373D373D373D37 %3D373D373D373D373D373D373D373D373D373D373D373737FD04FF363736 %373637363736373637363736373637363736373637363736373637363736 %37363736373637373D362EFD21F82E2F3737373637363736373637363736 %373637363736373637363736373637363736373637363736373637A9FFFF %FF37373D3737373D3737373D3737373D3737373D3737373D3737373D3737 %373D3737373D3737373D365A2827FD23F8272859363D3737373D3737373D %3737373D3737373D3737373D3737373D3737373D3737373D3737373D37AF %FFFFFF363736373637363736373637363736373637363736373637363736 %37363736373637363736373027FD29F8272F373637363736373637363736 %37363736373637363736373637363736373637363736371437A9FFFFFF3D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373D375AFD2B275A373D373D373D373D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D37AFFFFFFF36373637363736 %373637363736373637363736373637363736373637363736373637363736 %373637363736373637363736373637363736373637363736373637363736 %373637363736373637363736373637363736373637363736373637363736 %3736373637363736373637363736373637363736373637A9FFFFFF3D3737 %373D3737373D3737373D3737373D3737373D3737373D3737373D3737373D %3737373D3737373D3737373D3737373D3737373D3737373D3737373D3737 %373D3737373D3737373D3737373D3737373D3737373D3737373D3737373D %3737373D3737373D3737373D3737373D3737373D3737373D373737AFFFFF %FF3637363736373637363736373637363736373637363736373637363736 %373637363736373637363736373637363736373637363736373637363736 %373637363736373637363736373637363736373637363736373637363736 %373637363736373637363736373637363736373637363736373637363736 %37A8FFFFFF3D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373D373D373D373D373D373D373D373D373D373D373D373D373D373D %373D373737FD04FF36373637363736373637363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %3637363736373637A9FFFFFF37373D3737373D3737373D3737373D373737 %3D3737373D3737373D3737373D3737373D3737373D3737373D3737373D37 %37373D3737373D3737373D3737373D3737373D3737373D3737373D373737 %3D3737373D3737373D3737373D3737373D3737373D3737373D3737373D37 %37373D3737373D3737373D37AFFFFFFF3637363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %36373637363736373637363736371437A9FFFFFF37373D3737373D373737 %3D3737373D3737373D3737373D3737373D3737373D3737373D3737373D37 %37373D3737373D3737373D3737373D3737373D3737373D3737373D373737 %3D3737373D3737373D3737373D3737373D3737373D3737373D3737373D37 %37373D3737373D3737373D3737373D3737373D37AFFFFFFF363736373637 %363736373637363736373637363736373637363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %363736373637363736373637363736373637363736373637363736373637 %363736373637363736373637363736373637363736371437A9FFFFFFAFA9 %AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9 %AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9 %AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9 %AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9FDFC %FFFDFCFFFDFCFFFDFCFFFD6FFFFF %%EndData endstream endobj 85 0 obj <>stream +%AI12_CompressedDataxœì½û²Éq§ùõgÿ Ûv åýÂ]³sÕrF¼›ÒhV6ÖuCFh  ––ûôîñû<<ꠛM‘\‘;DlDœª¬S‘_º{ÆWùƒÿåŸþèö‹wÿøêGó‹áæòƒÜ¿õòû÷?¾ñޛŸ¼yóÍ×Þ[×ùÉÍXžUžtû“ã3=ñï^½ÿúõ»·?öùŸìÕ?üÏ/¿|ýêæÿzùo¯ß~ý/¯?¹ùá'åG¿zýáÍ«òÃן¾ü×WïùÍÛ·¯Þ¿xùúÞ·lèáå‡òŒí¯–¿§›éÇóp󋟖ß½ûæí¯ßþúîÝÿýã›áæGãp3Ž{ù»”þŸ¯ùêëëgœ/–i9Ê3¶ó±ñԇwŸóå«·~ñþÝ篾þúþݛwï¿þñÍýo^¾½ùéË_—Ÿ¼¼ùo¯Þ¼y÷o7wo^~þ/—òY×Ϟ^¿yU>֗/?ܜöo2NŸÝ}óúÍ?ûæË|U>ï2lÖ=æ[üۯ˦ÊVíßÖ½ö“/Kϧ¯>|(¿ay¿!ý*÷e¿û’ß䇿¸ýÙ¯~þ³Ç›qnîÿîÞöÍÿÚz—c¥÷þ§ÿí¿¤×ڇ^¬ãÍXþññ­ ö³g÷„´Á_þõ]Þ-¾A{ê?üòÕ¯_û$(ãóß?©ŸóW¯¾üêM+ßÝëþb½Y7û?þ¥g•çÏøÑ4åÿÎóf^֛eÖÏÛp¼ú×ׯþíÇ7?{÷öUÝç·ï?|úúÿ){± \<ëýå7o^½ÿÛ·¯?”]å{ü¬{ü§ï¾xõ¦<7^ûôæ¥ïhŒíÿë~õòý¯_}(³æݛo>øô=ý¨Œèß¼üÍ+‹±¾ÁÏ¿zõöWïþο•YiÏ&ÖY69çÍxø¦çù¼9뻌7uôëØìålw/;ûe>üüýë_¿~ûcýVûgýþõmŽŒƒm?þãÃ{¤¿'ëoY>ð‡¯Þê·.óóþ§i¾ /~úiy×Ç·_Ü¿ûÒöø×vP•q}[†üÍ»_ןſý'ååß|U?·?+ƒó‹÷¯ßÚ6/?óŸŸýâÍ7åGýþÝ7_ýäí?½»ü°rã/?üs9‚^½ýâërì×¾Ú¼©¯(½óú__վ€¯>ùÎíýêýËÏËÛÞüüÿÇ«Ï?”«£ýëÓo^xõÛ7ôé綛Þßܽÿæë¾ùÕ»woâ÷뿦º½×žÿ§ñ¿ð¼ýùÛº§Ÿ¿“žpýNåÐø“{—òìo‡òÃ?å­ß¿|óæõ¯ß¿üêŸ_þ±7øÈÏãêÏ~‡7+ÇøûWíõÞä¿ßcZþæË|÷æõ×_¶Ù˜z~ñòý‡×Ÿ¿yõéo¾þðêËß¾µ‡WÿTΈi·yïãÛ}õæÝW闌ž—o¿¸ù¯/ßõ]›¶aú§×o¿(GˆÏm7¾ûò+;Áß|úÏ/¿zå¿î‡~òg~ú=¦ñ›—o_¾¿ñþؤá§Ìß³Iµ/6º~VÀ˜Ñ÷£}כ»·éÇýþå¯ ml›~ûʇÚs3~rùH_¡üts÷Åå.ÿÇe¨ÆaæaÖò؆}8†³mÃ6nÓ6o˶mûvlçv»Ým÷ÛÃö¸=mOû°û´Ïû²¯û¶ïû±Ÿûí~wÙï÷‡ýqڟŽ¡|Žé(¿ÎQB”c;ÊsŽã8Ûãî¸÷¿Çcy<ÙÞ8Çs:çs)õ,ïvîgyêy^ÎÛò¸;ïËã¡<Ëãé|º-»ï¶ì"Û ·åóÞ.þXË£ü¢·åW¹-ïc/½­îÊÃÿ{ñÞÝÞëñ Ç£?žìq7øcôGÙɗÿÔƲŽ¦§èâ#ʘÞƘ> >®ß1²—2°ãc nÞ2º6¶‡îÝtï£[Çw¼ác>¯Fy¼Ä0oe˜Ï²;æaÓ8ï>ζ«êX?v£½”‰ ¿hȯý#Ã^F]ã^Fý[Çý¢¡×°§>ôö§ŽüÇÇÞÇýCŸ¾ }|ø÷Ë;åc¡Œ$cYGRcYGRj§ýX>Éýc#¹L—îýíci#™Ç²>êˆÚ¡½]t×ØùQcʡ̨Öq½YÑۋ® ïæÃˁ]Ç÷z„cF™qÖAnc}IƒÝ†Û<îò~Ð÷cùúóÿáÇô˜â1§ùXg¤ÍÉD˜ Óò£§Ž:)Yê\¬3Ñæa;_ÔxÎw—2ù}âÍ>çêIâÁNe®-~f¸-óËf×XæÔZ&ÓY&ÑC™>c™8k™0·eš<– 2•9±_ʨޏeè§2Ü{Þ»óÁÚ¥£G9 +eÇ»ùn½ÛË ßÝ=øX>===>=<Ý?Ý +Ÿeúì…:ëÓò4?MOãÓðøôøøøðxÿxWX}–)¶—9¼>–ãq.¤‡‡§‡Ç‡‡‡û‡»ÂôóRfâþ°=¬ËÃü0à÷O÷÷÷÷÷wçýQ¦÷VŽå~¾ŸÊÙv¸{º{¼{¸»/¿Ómù͎òûmå·\Êï:ݍ—»¡œ ˯o0±3ÊY>Î^>ÔZ>Ú\>àx;” ûX¦ï}ùзå£eleÆ/eöOåHÊqñXŽ;Þڞ:Ê´•Ý¶”ãj*Ç×PŽµÇrÌݗ£ï¶#GÙ½e—ݼ”=•]>?–Ý_ᶠÅQ~¼•aY¶ùRŽúqÖ§2ZeÌîÊȝeüö2Šk˹Œè¸ËSÙi…*we¬Ï2â{÷µ0g.ḠóSÑcAÒý¥°é¶Ì’£Ì•­Ì™¥Ìœ©Pl˜žÊ\z(3ꮎg™_{!ÞZfÛüûåGGòá¸üaGòn¸ÄHþÆцñò½Æñ{bÄËdË2„—ï?†å,6NÃøô?ÉX^æå{•ß{4/ c2Fóò»‘u4ËX.7?øìî}IN¬œ¶ÖÚTéùôòƒÏRÏÝח±¶â§Ñ.?+´&­"ñù~Óô‘Œi²Œi‰ŒÉÎsäGÄ`÷ådÇéÎNx³ŸðˆÄì´Gd}z„p¯Ì©L½Ëøq™ ílhçC‹Î,>#B»õ}vïqš¢nÿûägK‹Ú,n+g͋oKÙñ›Ÿ@ â,Œ³@îփ9 çî}¬ìÿœ¥Oö°Q\üänÀ~—‹çgî-úÿ5=6Ûãð‡GQžñÔÿ¿õögvw—øgyøáë“éðmm>¥V½Ûìïí“ËþkÖǽ·ñ8ô(ùR>ùª‰WÿØî)»I»Í÷ñ¸ÇáÛå›?êԜ-¯}|ô°1+2|>ŒõáŸ5ˆu}B,>5æq¼ŒñÇæM<âq?Üu[Ÿs<öëÇŃ1=|§:„V‡ÐbIâÝ ‚@ð§Ñç6è{Œ;N‹ Ž˜SˆoZ `´©¬©¤©¬©¤™|WTÐÜ_ę³pÊ4Î܋3‡O«Ê;6FŸ§>wø½Žö…Ž!¾ Ò>œ èhGœwe-Ëmãgcf‡«ºË¥ü_=–Ë+ÊNìTc';µ,~¼L~‚mìÊIÆN3õDc§š;OÙO?áØ)ÇN:vÚ! ´“Ït±Ydø(ç ; ÙyÈÎDv.ºóÌßrÃE;)ÙiÉNLvj²“Óä'¨Ñ§Ì“¦.~¦²sÕ½Ÿ¯î<­<ý¬eç­ÝÏ]vöZïë18ûYlÒDülöäg4;§=\üÄf§¶;?½Ù îô“ÜásÌNu›Ÿî˜mvڛýÔçóN:Ë úR«µ¢Qçjýs¯Çƒñ¨¿ÐÓýŽ»v Äò‘.údk<6=öxñ8ãE~íÅûKùûñxâÑ]S<æôX.>„õ±¦Ç–{÷8ºÇyý¸<ܶ‡ïÔT4Y?V$û–YÍ©©•ÔlÚë$—T£Jò” +c¹6R+bQ=!^¢båÛ‹×÷΢óxÄãç n/%2Ø 7“Ÿý`Ô/‘]-$è-쨇–Y[ˆQC‹;)žü5uYµ×a'Ìì Y<`{ÒÊ:õloTŸó÷Œ¹š?6Û,­p²é>\EÍ·v¬]Ê`ÙáhokŸüɏsûãDcÓ(×1®#|ëÃëƒëC[vÕ žÌ:£áâ#·_Ê/–qW>ÎCô“…j9ˆ¯O›Òg }òÃûã$ý,½t0}¦´Æ=`EtÕ¢©CEµÛ”¬¸öh'/°~ªœUf«Åñr_¼ÚFí´VO|þÚÇò>óŸÃ»ÿÝýöJœ×ÁxԘnÖcò‡Ï:'Àpñ@áɓ”GOTj²rï°ð‚g}/Åí^–Û¼@·*‡™=¦˜5÷©ÙϜ⒚=è´qç»òô_r÷½¼*ð-ûþâÑJWjfô xÖbý¯S÷ú‡'ÏƒÁ‹ÿçNÙFý{ë%©)Ýc¯µº‹ +v[‡ +y”óÖTÜk‘eÿïÖÚ.ßñDk-{‘þÝÞ6ýûҕõ¯ŠÁÇ´åY-Ë® }–U=FeéÓ©„É +Š†½ZL¬Ì{P5±Ðîâǜ +Ø~tÍe”wóZ¸~ô3i½ÔtD}úQÅÅÅˋ‡Ê9s¼”I̅;[–3¥#õiGÙ­Ÿëyqö’ãî—8֓¡í4x\tô3`GÆÊÅJŏî¾…ŠÇâ!*V.ދ½™'¾2NŠãD…üɏ …B¾[‡bÛzØÝ{<Ã%šv‘¦î¼VÒÏȽG=}YßC‘‹vn.ë÷…ý'…%c”ô×þš]wÉîñbQŠ +ø“┩ºLs§Ëq +WrÀRC-ÆëVm ckJ‘ó©'äGÿçþêñÐ=".¾äàøYˆœÃäë`¹…Ë4ŒNô¥‹¦SD­?ªSX}Z—E×õ NúDêtFÒ´FºÔjy×Õ¼gõ¼Ë·–ôTÔûHMï;«z•õ¾³HûU½gu½Ë÷+Ó~ÿºÞåc…½®*÷b:a¶EaÃxnƒ­³³Åqøâ±í˜Ê‰ÑV­Ë9L¶t̞6ÞL×µ¼ßw;w_—ße˜öeµ‡Ó±•–ìÓ¸n§oã,X6ëó +PùǼ—.ÛÆ2¿æãf_Ìe?·ßé´=ÿÝÚçc£çT>Œojׇ²O9Ùs¦ú1ýÓÍ¥¿L”í©ç–ü÷±ß|`·–“ëY÷ô̇Ùë6_þåõÓ 1oҐýû7ñ»ÔdYþõòM¿ŠåyßÍø—U,YÅò—U,YÅò—U,YÅòüË*–¿¬bùË*–?ەYÅòÿŸ±üŸnËw­Rùm+\þÝÓô‘Œiê3¦»g*Éw©¶Ü·?þ3\Rɉ2unìgwßÒÒ¯§ëÍÞ+è[¹§k]¢–þŸXÅsv™!'÷CÒâÄn!&f½Œ6zÆ»Føpér@ÂIË &k(YIR¿–øÕxñAqb‰/ +ûkhøè!áÜהUä´Xoó“­*?ªŽY+˜ {UùrûX –þùý9dvsävk„ø{ª|æêgª€ªJ]S·(‚Ö+·›³ãˆBç3%UC£69¥êãÚ®ç^¢¦x§ò¡—uu}¾º¢»ëŠnw=7]Ë]× o–qèjÕÓÞ=¶«ÇÚ=–î1çÇåiºzŒÝ£[åã+EÚ£ÿóPþñØÕEïºÇm÷8¯G~\|JyÔ »ßë òýO —ïwÑ ä{œ>.ß'ø]NÎþùýy\Yäª"×ÛŹ]QŒë‰õäӖ6ùåÄK\O¬g¢þŠâ£®(ÞŒ§Ã¯¯´+Š³NO£e#vŠºpEÑ/ßê\ÕVC±DÎ×Dé¼ѤŸ½j4rzc·Eq›–IuõÜa)8ÛsuqÓ?¬ÐHIï­ÖYþQ~‹qïÞü˲‡wø~Œq<ﻙ^Œeï/Žs[üµ5w».¼­å#~ã%‰Û¯¼ö0ê«lþþ7ÞüÏåŸÿ£tþÛÍróӛøïÃÍÞÿ÷¿,ÿіØ𗥫«¿‰½›÷ô¿@îʯ{ëïóóßã’üß¿ücÿŽÿ¤½7°÷ø {øÛoã‹Ý¦nyñVBë;­g=ÆñƟqú°¬Ó¶x{Ù6k/ÛtÞ|^_±Z[°M³=g+ñç ƒ¿¦lËßežW^²–yk]“ý¥½Óbírmþ’ÁÚ>‡÷›ûú«hxßX_r–í¶Â`ë&Ê!·Û0ó.Æ6ëZ÷yò§,Ûáír@Ôv}—²…ø0˛_”Óçæ}ç¸ØSösõ϶”ýmísÝ|k‰ëk–¶2Ò?ïl¿Âò¢œf&ÎnbÑÄ(?ç™×”×{W 6í)û0zûØk³œÌ|/ÛÈéû:ûhŽëê[ÝÌiÜoÚgµv9 ò’2ñ|€g;P¬m|¶_m?”ö¶{»Ìºöš’Zû<*³ç&m£œ’¼9hÚíó¿Y Büx,Á{}ÎâÏ)¡}›¡| +;FÇ!^s ƒeÜë¯6Öm)“È?NI¶ýÐ܆Øó²–픹²Øû”á,ŸÇÚå´sڔØËùÚÚ>Vš4ë>øs–ÑgMI NßÄdCTþ;”®´Kl0µ©yø۔>ÛsÆíô× ûæ‡Ñi x¬=‡€]ã³_÷´ó‹ÐG™ûµ½z{/Á¯©#V>b9ûsŽºKÊK+{Ž½î‚2EÄ˂¼Ë¾ÔÍÛkmÏÃéíu;*ÐÊìµ×<•¿ëR€µõMsÎšãÔHWÚCIÛ:ÒYßTcŸÐk9¶½‘ÎÚã²eҕ®c[é¬=®t֞מt«–[Îž2­tÞ:ÒùV÷FºÒ®Øé¼½ö¤³>ßw"µÏ©‘ζ¹Ì=éì.C#ï´±‘®´'‘/HWú +téJ»ìFºÕÊ­#ݺ ,®´¦}h¤+íe:{ҕ¾m8éJû˜öFºµD_Ãؑ®tMÓ´éJ»Œ#ýü8{ҕ¾Ù /ÒÙwüí[#]ioçړ®ôç¤[÷CÙߐΚûؓÎúŽ­‘ÎÛeŠ‚ºÒíÃfÔYŸá +ԕ¶]é ÔY{zÔÙkΡ¡.mÃPgÍyíQg}ãÜPçÏÙê¼½õ¨ó¾¹¡ÎÚëÔPg¯‚êlGîGCçØPg3ä˜{ԕ‰túNJºÒ´²K ÎçÝØ£Îææ>6ԕv‰;êJÛ_›QgsÜ^êœ-{C·uÞw6Ôùq37Ô9‹†uƚól¨óöÑPgíã|Žº’g,óّκÖm ÔY»œuÖç±C]雷a ÔY{Ž@]iO5\‡t¥g<÷#Hgí2¾A:koÇّnـœýt=§€œ·ëDrÞ5.9kP9kõ r–uç³çÔèÎgͽF„Á8ûdû|ã|o-G0®´7Ë¡2ãJß1Ô>g\iŸåDŒ[ìh,S;1®tͧÅor¥¹U°:ãJsßjŒ+}gÉ݃qËQvè°ãJ{¶ï͐+}«â,‡\iû¾r¥½MÓÖA®ôíb§C®´Ë¹}È-ö;G¹Ò7MG£\i——îP®4Ëiãè(g}S¥SÎÚcN9kÛÇ͔³¾&åJ{]k¤å”³ö<ïå¬oªq£S.mÃ(gÍMÊù[×\Â)gí½ÂÔ)W_³w”ó¾z8åümêA攳=rŽ[G9ۓö=ªPÎFÔv”+#¾Ôäl&YeA[Œ­¶9Ÿx6&Èùä\ö€œµçm Èل^·½ƒÜb'¶uÈùA0œ9og9€\Å̐s Í[†œÃª’Ç!çíi ÈY{ªœì 7ÏWëk‰«?#%®Ö¾N\K_—¸Z;'®¥}¸ZWN\K»K\íç׉ë|t‰«½$'®¾‰>qõ®”¸Z;'®Þ¾J\­/'®ÖΉ«ýf׉«}àœ¸úNK‰ki?K\ç³O\K»K\çóYâZºRâZZ]⺠Ï×Ò×%®ËÐ'®¥}¸.CŸ¸–v—¸–ö³Äuûĵ´»ÄuŸ'®¥/'®¥™Wk^'®Ö—Wk§ÄuŸ'®¥¯K\­Wk_'®Ö—×´ çÜøqõç¤ÄÕÛW‰«÷¥ÄÕß&%®¶ÍëÄÕöcN\m8sâjä:qµy”×ùìW›v׉«O͔¸Z;'®6¯×ùèW?Râêí«ÄÕûRâj휸z»O\­+'®ÞN‰«µ?–¸ÎãóÄÕúRâj͜¸–ö³ÄÕúrâ:}âjí«ÄÕ̜œ¸Z;'®Ö¾N\ç¡K\í)9qõvŸ¸úVSâ:}âêí«ÄÕúrâj휸Ú6¯Wû€9qõ–×y|ž¸ÎcŸ¸–v—¸Îã³ÄužrâZZ]âZÚÏ×Ò×%®¥Ý%®óü,q-]]âZÚ]âj?¿N\K_—¸–v—¸–ö³ÄµôåÄu^ºÄ՚׉«õåÄÕÛ)q—牫õåĵ´»ÄÕÚ׉«½&'®i†:k^'®óÒ'®þœ”¸zû*qõ¾”¸Z;'®öñ®Wۑ9qõñL‰«ÍëÄu»ÄuûÄÕçÝUâjs3'®óØ'®¥ý,qµ9žWgKJ\½}•¸z_J\ý¸I‰«³¨O\59qõvJ\­ý±ÄušŸ%®Ö•WkçÄÕÚ׉kéëWkçĵ´¯×ÒÓ%®ÖΉ«µ¯×iröӜ¸z»O\½+%®ÖΉ«µ¯×iîW{NJ\­y¸Ú'ˉ«ï­”¸–ö³Äµôu‰kiw‰ë´9Sâj휸ڄ¾N\§¹O\ý H‰«·¯WïK‰kÅLK\C}âê°J‰«·Sâjí%®ãú£wK\§3P·[âºv¨Û-q¶@ÝîÓiÔힸ®êö.qÝ-o­ØrÒힷŽ™t¶Q# ¤ÛÚJdtÖÖ±¤Û}×ÍA:;Чz@9évË[+ ƒt»ç­sî𼵑îð¼uêHg5þ£ÆFNºÃòÖaÒž·vA]ÁS™¤¨;=quVª?+Öu§%®Ç¨;=q]ê†g™kéê2×Òî2Wûùuæ:}æ:}æ:Ï3×qè2×qì2Wk^g®Ö—3Wo§ÌuŸg®Ö—3×Òî2Wk_g®öšœ¹¦m8ëÆç™ë8ö™«?'e®Þ¾Ê\½/e®ÖΙë8>Ï\mGæÌÕÆÓ>:¬;Ÿ'®‡ç­#¨³üVéè¨;žç­‡Å£ã¤órù9éåґÎÎmS ٜt‡§­Sîxž¶Z9§ÎŽšyjÝáYë”AwxÖÚ"ºÃ³Ö9@wxÖº<­õôUx™tƒç­K+Ò íû¬,sŽ>®,u=Zî:Xêê»G´,w*VÁÁcŸ¶Æ»ÁÓ× +@Þàùëñ`g3¾LÏ1h7x;œwÖ7ÚáGÇÞ`£pT"ñ†ºòì€_Ï:{yƒå±ûÚg²ƒ'²•`N½Á3Ùi ì žÊŽ[ǽÁrYÛ೏ëčϳٱ‹ñ,›]‚|c—ÍÚò¢¹¦Ç-ijdvnܛ<™]Z6kÉì²÷Ù¬%³•5›õ]4¶l֒Ùõ*›µd6Åx“ï·–ÍΞ̎}ÉΓYyVæ,óH{Ékv–Ì֓T«Ùy2;¶š%³ëÚjv–Í[_³³D´Î§Z³³d¶Ò³Öì,™­íV³ódvn5;Ï?¦¨Ùy2»ô5;Kf÷µÕì€5;Ofç¾f×'³³ç²-™Ÿç²³§²{F¦uÚ[ŒWvˆ‚±ãu¹¬Áv˜÷àžM;_$žÉg“s}ƒ'³Óì<›­uÀ€Ÿn%Y‚~v(ŒË°þ¼ÃNw€ÖiBD0È8xN[3B8xR[#4‡ààYm ·œ‚ƒ§µ‚Ÿ‹‚uûþÃÃëÏí.¢/ßÿææǥ뇷ŸÜüÕ§ÞÛ +è7¬óÛ\Ú-ë~òðÉÍÿfOù/ßú”_ýÆnpçOr0”¹˜ž{wwûùçß|ùËwüv¬õ‰ÿ{ù[þ÷·VŠm¥xù‡- ßn~øÉÍßÿ× £~ùèºè«…æv”^U&­+W&ý@ÞÒ:éóyeÒ¨´ i´]ÂÒ:éóº2é¸ØÓ2鳯LZûº2Y»S°Y´Bú|V™ô®T™tf¥Ê¤3îª2iœós++¤Ï®2iÍëʤ}²\™ô½•*“Ž°«Ê¤=7W&˻ʤñèª2é8j•Iûœ‰å¶®+“¶§reÒH’+“>W•Iâ\™ô!N•I?ž®*“vÐåÊä>ö•I;â¯+“¨LΎ‰óˆb=וIë˕IçSªL:®*“ÖwŒ-Š5ìåʤµ¯+“Ö—+“¾)¢Xk^W&ý­÷ÅZ;W&ëkúʤ÷%˜ûۤʤí‘kš;;SeÒ¶—+“ö±®*“¶7ÍmçåʤO¼«Ê¤OÎT™´v®Lژ]W&}¬SeÒ碖HŸÏ+“Þ77Š'ÌÔ%Òç³Ê¤Ã*U&½*“ÖΕÉï"øݟ2Á¿/½méÈêS¢ Ð×­³| iñy™ÂuקøÜC)èë¶,k +ÐËÔë³ O뼌í“YaëP¯8)@/ÑßP/{·½üÌG0âôÉRÅ%Åé“R–§OÃ^_C˜¾:ä Ó·u¸*L.ÊÁ¹æ0ý¨çýÓË¡Ps„¥Ïåüµ)J_‡á¬OˆÒ·]uƒ¥¯{}k¶$çÎÆ£N÷uØ«¤}jT«(ýÏJñ¥Ÿg­`(JŸÆZx%H?­Z¾õ´¬}5-;Çè^»ŠÑU|!DßÖ#]U/9ãRK»9D?–Æ+D_(Ý*D߆s¹ÑYð@ˆî˜mºÔ>B_ç}KúVsä ×d¶Џ¡ÖT —`AµÐM=¯t›Jc +ÐKà\'›ôòšã¸ +Ð×iªž"ôuQØ£]A¢û|j!ú4ŽËœCô}—ë½Ì‰-ÅèǦJ®—aˬs‡®ÑkúÝ"ôsZëySz9eYªÐ-E¬&B/ymל¬ƒ¬=Eèk +Î>ŠÍ ö­ãº-™*¿Í‘có㘎FöÒa[Ÿþ”Ñþþ*¤6sl»ˆÚ³éàT7[ûØ[@mM›6- ®ŽÚ¨pÚ¥¶½Æ–6­Lq³` §kߤҤ…ÓæQƒ­¶g[§¤pÚ,ºMU˵*pƒ]}#ž6ώP[ßT϶µ\;½ðéG@míáŒ_Ë/õ—¾í¬«Ôfn-5hö€ÚÔ­ùŒO^j›½ãÔj‹#kúQj›ëÚb–Ú·/uՀš¥"ÔåÈٖˆkD=ÖÂ-!µþT1Ú$V{DS5¤6hS ©Çº©©í¼ÚÔ&…žc ¨YC@]Ž¯‘0€ºôõªG ¨í9ºrâuižöuùÙ<ÔðÑ/õ[ÿÜ"êÍ£è[Dmƒ¡õ5Q[{[—ˆ¨mì¬ÖÙ"êªã-Š -¢ö1×R ‹¨Ýà\â5Q[ŸŸÒÙF™këÒBê͖”p¥…Ô~„L³~ ©mú.ñšª ®GQÛ°ÖZ¯Gԛ_Y?#¢öãr×xD]ú¼ÐND]Ú夿QoÒmrDm}[6RÛ&özTxHm¨-Ê!õæ +NDÔ¥¹Lõ`óˆÚ]Ò-¢p¨­o>z gõO#Âöö¸4Ô3•oŸ#¢¶öYÓM¨ Cû܇ÔÖg¡ !µ?§fhR[»Ì=*ÃD슦!'ŒÚA³ž £¶ÄwÝ£¶yZzŒš¿]çI=¢¶e£ïKÏQ;P÷±qÔNÝÇÜ8j‹Ñj»qÔûsi05}ûl,µfõQK­oØK(Œ•¥¦oSÏRÓ·ë1^Yj,YçSÓ··±‡éX£³€©í²ej0- Ykƒi ùñSÓ·×3`êúö¹u0u{;¦ö¹DJ§©ۃdxhj»ëÐîòâ„KRÛÿ»v^ßþ+‚Ò͗ẃRŸÁ­R··õ1 ¥~ôœAR?àŽ©#©ËÛû$u{»ÔÍìeì@êööyH±¹©;Ôu§H͉žÆ9@jíªÊ×Yiîs‡QºëP:Fc ¨[×ÇÖaÔßyÛ£nbk`Ô_S÷%õ®m +ŒúÛ¬{`Ôõõ±£¨íÆuƒ¢UÅ߂¢înos‡Qw·+ó£@£6閵ǨMÌ%(ZZ~AŠŽ±_EÇZ-¢²°¢Ö碣 ˆZ»n¶BÔ¦ÛÜ3T_5 µvýڂÊÐQŸ±g¨‹’uC¸U«{!œ»“ë +áܓœæŽpÖçW·p&1G˜hiŸ:¾™ù\õzǛûÖÇxs1º¶o¦lïõüìxs­ûh|óöÜáÍ»†-ð† Þ¬í×wÞÜã>æÀ›mcX§À›µë—GÝì®ótóݵÜÌf=ǎm&Å mæÍ®ëh3_Û ² m¦ãúLÚLÙ>j`èh[µî+£m]#¬s´™â« èt3eÛ¾Ú¦Ñ͌l?BE73¶°3fg+ º­[œ“œnflûw%o¥m‹u2ÝJW9íìA7ó“íêxs{éèf]¶æºy»¦N7Sž§zê +ºYß6ŽA73´çù ¼YÛJ0™onq×Áôã8¶!¾apg¾ù{×ÄÊ÷žë×5kr¾Õל™oÞµÞü]t„ÞÜYŽŽon¾×ØËùæ£YÙä|³rnSÇ7¶Çúµ~ì¯KéðÍgÞ2w|óÉY3GŸ4å?ãºàL؞׳œMqû$‡l á¼]Ñ„ó¾ú½$N8oo8gÐtt„«_ 1áâ»D8wÀEÀD8·"÷5κ<<ᬽÕ\Öç’ä¸u„3={¯ƒ¸»i9ÀÆ83š·z† ÆYßX#‡œÛÙ5¦ðãÅÚGmäL¦ëÙÓ!çöôÑboW¶å-eƒrÖö+ꢜ ÙûÒQÎÅîz:åÜ$_Ö œ›æ5¨ ÌÙç=s¾ÏæÆ9“\çèL„µÏéLžõš¡Hç®mM"ƒt®än:Ó¶1yÛǸw 3o[A—ƒÎ,_?Wtæm¯sâœIÛû²çLÚ>†58·øš±ãœIÛ˺çLڞ¶çL5^j 3i[Á«ƒÎåc›t yM"ݢ@· tnA×Ü7@gö0¬:kïó s‰{š:ÐYßR‡ÓAÛèÜ®®¥œ¿÷zèü95¯qÐy[iŠ@ç]ë¤ó·YÎ ;éÃԑÎö¤‚^'ç|él†ÌëڑÎfÒZ±ä¤[`®Hç3oÞ;Òùìœ'HgͺUÍç};Й´}.S€ÎÑr®:?&j ó¾š#;è¼]·ë¤sMSG:ßî¸é¼=ìA:äð+Ò¹ ½/™t³­Á]Z¶:k¯Hç¢e ƒtÖ7‡Hg³jrF:š·>[ù +‘Îí½e«Öžö>[5e{=Z¶êòt ùœtޞútÕ·[3'ÝìkÝö µ·š¯é\ÒÞ[ºZÅï%Hçºyï‚tn©O-]µÖҙѺ}ºê&lísҙ=;¯:wm>[u'·f´N:Ó¶·©e«‹-åª$l¤"«¤³‹Ng-Õ¬±?‡¹¼Ó ÝЈì¤+??®@g+3ז®š³½ñ]y³cïóUs¶­å«î(×*@ݨ:f×VZÂêí©%¬îA×Y#]é[†–°.ö;Íc# É4ö¤3‹tj)klҍ¶®¶OYý½k +TIgÏ©ùM%ÝØ2Hg]kKYým––²º¤Þs®ìÈ}h«fe”sÎ&È®ÌÎÙD:ז±Îg]/ç|ÞÍ}Æês³fË6g¬y.-eí;2Ö>eµ)>ׂ€ƒÎÉr¶œuÖRÿ :ï«U·×)@ç(ê9ç›[Îêí¡å¬îyÏrÖÙäîçF­€scÍ҅9¿œíòFiŽãÒ_ß°‰4W&UÌÁ[0g¯9æô•¦`ΦBÕ*æÊäYk¾Ü0gK!굊Š9˱7ÌY»æË s£† ̍ʝÀܨ ”™s¾€õlœ3©»ç+çF%È=ç&_—°eÎM|Á¨8gmÏÖ+è\¤¬b€Îülg*è¬5×ÀË@gJ³®^è&괝©ÐÇÖ2Wûù°õ™«ÙÔóÞ2ת|Ï:o}æêÛm‰«Kܵèê sK¼ntÖçäèÜŸÛ¥\ûÕÆÞèìcK\§º0:@g’ërö‰«‹°ç ›ÊŒË 3×ÖÖ-dҙ’;×äÖI7éëð Ýä_Hzt¤3qûh 3Ë÷ tfmërŽƒÎ¬mˆlYۊCtfmoKË\ÍÚ^ö9@g®1×'Ý䍖¹º¦]+:÷ §¾Fg}k‹ç¼9µÌµÚÕæLÀϖ¸ZûœæÀœµ÷±¿a}ÛØ×؆0gíaëWëšùÌöçÔÇAçí½K\½ki‰+®8 sGýìWۑËÙWÎJ)'Íµ^’ÒÙLڗ–¸NÎàO¼©Ï[mr.õ[}Òè£8gÓù\ú¼Õ¿˜`žƒs–£å­Þ®„ÎùaÒ0çÍzÝÃ1ç º +ç&­›sÓ×ÇsÓ¬s}¹q5°[«b]Æ +sÖöT½~Ö*tgÈYÏ\GpwÍҗâ rÖ¬uÁ`œ9ÏûÒ.AX{ZÛJk/k¿RÅlíºQGœ ßµèçˆóöЯVñÍÖË Î87¼ëe#gœëÜõ˜ ÆYß¾µÕ*U?ƒqÖ^kpŒ³O(v:ãF}›'Œ3—õ8úå*£÷`œy³kÊYM³=÷~¹Šé¸æÀÂ83¶+¿q£U]t½ĕ>B/g\iûÊ9g6ö8.‰qæc{ÉKŒ3{>Úrû¹˜ŒMHk9«éڇb7C\i|õW!F+e¬mµŠË×uå‰#n$ùHˆ©°ˆq# ŒgÊóTóӀœÛ×G[­2Zn5n9kºLä¬oÚj•Ø† gíeëW«ø{/S@Ο£«hK¼¦[­â]s[­âòøÜV«ØÇ378CΌíãh«U|<§) gSä¬×r£}£çҖ«ŒðV”ó©7õËUlzu¥ŒO+§Ï s¥=Ìs¿\ÅfùZ/"8æ,{[®âíš,æüH©™¬s®’fÎ9‰†~¹ŠoghËU¬­ ØÎ9oϖ«øwOî]8ç•Íy ÎÙŽ*P4ΙEy}Þj·Jv»y–ò*鬮ËS:nPgööZ/È:êìÛ”“êì˜ÜZÚºÛÊÙ¥¡ÎÚCET Î6{Œíj«´ÃЮC |gÔ¹8~N:󳧽孻-{^û¼Õ~c ¨³]6n­:g‚ë±õ\½¸¸¶¼Õ¿–rn+óìˆÜ+·u¶®p™Ú…ˆÓöNË[í KϳæN–M u¶àX´¬¨³çc¾a>ö>µ¼Õ|m˜ì¨´¨'£®ªgu¶8}[ë†v¡"X7èë:`ÕøjA ²nT­1³Î5薷z{lyë8ªä™YgöõÑòV3´÷qm¬+íuX{ÖÙ·f -omÀ:_YÜ£ÎÞºfAuö”ÎÕWty«wÍ-ouu|ny먯æêHg÷9ZÞjÃ9 ­>g_†8ï=éÊLÒ}tÆ×}l JlâGŸ·Zu|¬õ8›4VLOte>ïZ5 ;ìR\}‰ƒÎȲïí‚ëQãtþ]Æc»àê¨Yè Eƒ2K@Wú´†Ì9wø5•vÁõð³ýr͹ðAèBt¾"{Qå`O:Hfë k,@väœ#y $ãÎe³Ûy2À $/d˜gkÿ×yn_ÃÉÔCz¡ƒ€½ÐA2÷†jÀ¶e&¡ƒ@>tL¾¦ƒ}Mûš’à:q:q:HŽóðAˆóÙj ‡’=„’Y !ä²!-—•B*‹B*‹’SYé d²è ”ìÐArÉ„’V-“ÅéJvòA¢d§¼†Š|®b÷¢*ýQ±“; !]ÅNBHTìØ;!]ÉΌåa„DÍNFH®ÙI‰š„¨ÙIéjvB"••Qž„.ʓQžŒˆòd„døa„~!„@¿B2þB.„ ­n>HàPGm +"…@ÀB2à +‚a…@Á°B®0øG4¶ÿØ"¶­ó2 (k#¶6lç[³6¿Ç4ÉÞ²Kp¶VlÝcݸ{#¶Âlݶ0G¬}Öon° hM½ÄՑµÄð|×RïCQøz†:b‹Ú¶±ë]I–0G|œ 3GJ{÷%ÞÁ +³¶tn“zmEkãæÈj_µ·Åoåæˆ-®š«Òa«”|…^µ˜ÝY—º|±\ý +17GlÌåY»9âË+ÇxWþl.ù—Jµmxôƒ9bí­)nŽ¬ö=Sˆ#6]ÏxI½éŠaŠ—ØÄ÷é,g˜#v\a§›9bǦ]ÇÐkÜñ”Sˆ#¶ˆñ¨ÂÑ2jýᾑ‹#õ7Kˆ#¶}‹#¶DÓ8Ósñ{ñKýR7Gle'ߟ²Ö{õìcû*7GlÕ¢‡â2Gbu¨Ì[=z4Ô³¥vKˆ#ö”Yˆ‰#öã&ÕÕQ¾0µz .ŽøsäfÛ+Úºÿ˜#J¥ŽJ¥ŽJåŽt(•;(•=(•>Ò±TúH°TúH°TúHf©ì‘jµG‚§²G:žÊ žÊ žÊéx*{$x*{$€*{¤ªì‘ªì€*y¤ªä‘ªä€ºIÉ@Ý$Ômj´ëù¿Þø*u“<Q7“GÀé&y$ãt“>N7é#àt“>’qºI§[ÕG é&}$Ót“>"šnÕ¦Û÷D +˜n²G€é&{˜n²G2L7¹Àt«ö,ݪ=’QºÉ¥i 5‘”=’QºÉJ7É# t“<’QºÉ¥›ìPºU{$“t“="’n’G é&y$£t“<J7 J%t(­òHTöHTöHGÒjHe¤eönt •=H%H«<ÒqTòHpTòHpTòÈ5G±G2åÐG ú”ÃɔÁrÕ q($™qRH@ + ˆC!IˆÃ q$0NIF ˆÃ q$q$ ƒÄÉ É„Ã p2H8 $™oHÀ xC ÉxC o$à $㠁¼!@8’L8‡BáPH2áPH sÄI!ɄC!á0H@œ ’L8 ‡Aá0H2á°?  ˆÃ Ɍà qiÎ8 ’Ì8 1Æ!dÆÉ q$ ƒ$3ƒDŒC q$™q$0Æ!dÆ!9  ‡A’!‡Aå0HÒLð +H¦‰('È!dÊ!@9(‡@rM9 ’L9(‡BåpH2åpH  œC#ɜC#th$€$‹Ða‘:,’L:,H‡Eé°H2é°H  ¤Ã"ɨÃ"uX$bI† ´C"vH$™v’H€ °C"É°C"vH$ÀNIf ¬C#uh$™uh$°Ö¡‘dØ¡‘vX$À‹$ÓN °Ã"vX$v À‹Øa‘dØa‘»´ ‡I†‰`‡DìH2ì°H  ´Ã"É´Ã"íH I¦ ´C"vH$™vH$ÐN °Ã"É°Ã"vX$À‹$ËD°C"vH$™vH$ЉÚ!‘\Ó‹$Ӎڡ‘@;<’L;<h‡IíPI2íPI * ´C%I´Ã$v˜$Г$Ó“Úa’@;L’L;Lh‡Ií0I2í0I &‰h‡H’i‡Hí$’;D’ ;Dh‡H´“HÒÑN"IЮŠ$;‰$í¤’í†àr¥]UI:ØI% ØI% ØI%é`'•ØÉ$ ØÉ$é`'“$h'“$h7F}µÑNHÐN&IÐN&IG;™$A»¶J;™$íd’@;‰$A»1ò–F;™$A;™$A;7I:ÖÉ$uI`"If" ¬C$uˆ$™uˆ$°“Øa’dØa’;L`‡I’a‡I"Ø!’;‰$™uˆ$°‘Ö!’É%‘ØV¹$òZÉ%]^[õ’Hk¥—DZ+½¤Kk«^Y­ô’(áI/éJxÒK(áÉ.‰žì’®„'»$JxJr¨àÉ.é*x2C¢‚'»$*x²Kº +žì’¨àµmÔ +žì’®„'»„žä’¨áI.éjx²K¢†'»$jx²KºžìÒZÉ%íI.é¢=É%íI.‰hOrI r »†]’v Ä.a—d†]" +"—@ÁK2C.„!—@K®Qøgl—ز[’íë›æKleÅv´›’X{h·ìr¹ÄV[èÆÍZ{™â.¶^co÷ ±ë&Ö5.í.¶&`Ú]þ‹ynI`—ÿý«Öä–ø¢‘£ÝåÏ•´ò^¦µ.ÝÌՒҮ_R/µÄÚÃÃՒÒç÷‘”ZRW³´»üÙ„yîïògë\‹–ZRÚ»TwKlAw×}Í¤Ý ·Ä íí.‹e9á‰Ôo\ýþP2KìÛÜîòg«{nÈ!³„@˜%öšslwù³ŸÛ¥5Ì[¤^ú +ûEϱÝåÏVP ø2K|UÅÑîò·(Ä,±¶‰þ™%¾“–-Ôۉõ^!n–Ø~¶¡ÓKÜ,±¾sowùóõ!g»ËŸ ÝÌN“âëJŽv—?kë~#n–øR¤£¿ËŸõÃr“¶±ËÙêijû«ÇÛX¡Õææt¶»üÙԝÏv—?›Úë{ÀÍ_Á4µ»üÙAea7f‰-M²{÷ê5n–øZ£s µd9뭐¤–ØÂ,MWK¬om·$±-èÆãÐG`úHfúŒCqè#™qè#0}ÆádÆáÀ8ü‡?’‡>"ÆÉqØ#qØ#0{ÆadÆaÀ8ì‡=’'{Äa€8쑌8ì‡>"ÄadÄaÀ8ì‡=’!‡ùä°G€öH†öKÛØey˜<’!‡<ä°G€öH†öÃrØ#rØ#@}È¡dȍ­DjÃrØ#™rØ#P{ÌadÌa€9ì0‡=’1‡=çÐGàúHâöœÃsØ#לÃɜÃçGàòH&ò¤CtÈ# u¸# wÔáŽdÔIêpG@îHBê¨Cu¨#u¨# uÔ¡ŽdÔ¡Ž€:ÔP‡;’Q‡;êpG@îHBêˆP'sÔaŽdÔaŽ€:̑@Ì‘u2GuCc²£NæH‡:™#Á:™#Áº¡]¨ÖÉ ÖIu2G:ÖÉ ÖÉ ÖÉéX'ë#X's$X's¤cÌ‘`]ÛÆ^ñjE âH ®š#Aº±%+A:™#A:™#A:™#édŽ@:ÔH‡:’I'uD Ãt˜#t˜#€sÐaŽdÐaŽ:Ì@‡9’A‡9èPGêHÌ8‡9ç0G®9æH]˜#"]ˆ# .đ̺G€]ˆ#Ð.đ„»ðFà]x#/¼‘L¼GļðF€^x#‰zh#P/´°ÚHæ^h#€/´ȇ6’ÉÚè mö…7’á‡7qž¼‘ˆóää8OÚq^#[ ôdtž¬‘Hf«5¹¬¬‘.—­ÖH¤²²F"••5Ò¥²Õ‰LVÖH”ìdt%;Y#Q²“6BÉNÖHW²“5%;%6Tìdt;Q±“5;Y#]ÅNÖHTìÚ6öjwLZÁ×Jv’F¢f'k$jv²Fºš¬‘¨Ùɉš¬‘®f'k$RYi#åIé¢l8u +mĆ\7qmdv{"^SË~ƒÜv´‘Á.kíͱÓ|ó9ª7b±½~—½^jŸx©£…W¼Äµ»XxNM±ëvûÙ´;0¸ïIÕFF[õ>7m¤ìqÃ9ÚÈXKs j#v}{NÞÈhE˜³y#c¥|LÏÅ·³.I뒹ÐFÒÝÉB±…ÃÙ´‘Qßð6¢ \¯©ÚHù„Øh®Œu!`h#cöÆ´6ªôùmßðFì9çÚ¼ÛkÿÖHÂ(ÒÅF‘F2F‘F„Qœ0Š3’9Š4G‘Fà(ÒHæ(Ò0•5K±F2K¥K¥K¥t,•6,•6Let0•50•50•5ÒÁTÖHÀTÖ0ÅÉ0E¦x#Ðo$Óošº7JñFJÑF@)Ú(EÉ(E¥ÒF )ÚH")Ö$•5HÑF2HÑF)Ú EÉ Eú¤ÒF਴‘ŒÑÐF„ÑÐF„ÑðFFÃFÃFÃi mD mDEI mD mD m$a4´a4¼0Š7’1*oDE¢h#™¢ÒF€(ÚEÉE¢h#@TÚÈØ9cՁ¡x#0o¤chX#p!ˆpaT…4’ÒH%œœñ-œ‘Ä7¤á-¤á-¤‘„·F„·°FÄ7¬‘„7´ð†6ÞÐF2ÞÐFÀڈð&k$Ó kºÉn²F2Ûd€6¬І5’ц6ÚðF@ÞHFÞhÁnx#‰nh#Ð mº¡dº¡@·øæNáMÚH¢ÖtÃoÒF2ÝÐF ÚtCÉtCù€nh#à m$ó-´ñ-´ñ-¼‘Ä·ðFÄ·ðFÄ·ðFßÐF„·ÐF„·ÐFßBßBßBI| mD| oD| o$ñ-¼‘ +¸ÐF¸ÐFàBáBáBI„ mD„CàBI„ oD„ oD„ o¤#܂5Ò· ˆp ÖH%܂4’· TÂ-8#b܂3’· r ҈ · $È-H#‚Ü‚5"È-X#‰r‹´(·Hr‹´‘L¹EÚ”‹z•r‹¬‘Œ¹EÖ˜[dÀ¹EÖHÝ"kÒ-²F Ý"k$“n©Ú [ö±qP ·.J Ð-{Ä\,epoÐ-ÕIœ[¤À¹EÚœ[¤dÎ-ÒFàÜ"mэ$Ða:¬@‡6’I'mС:´‘ :”@‡6èÐF2èBèBèÂI  oD  oD  o¤.´‘.´‘.´‘DºÐFDºmD¤ m$‘.´‘.¼‘nÁI¤[ðF*éi#݂6’@· t ÚÈgÕF贁nAé´‘±sǪ7"Ò-x#"ݲEÞ=|Äi¤ iD¤ k¤’.¤‘DºF*éÂéÂI¤ iD¤ iD¤ i$‘.¤‘.¬‘.¬‘D:´H‡6éÐF2éÐF ڈH‡5’I‡5é°F ÖH&Ö¤“5è°F2èÐF ÞHNÞHGº!â/¤U;ÂA'o$“NÚHn$WÒUm¤´‘´‘´‘ :Y#:Y#:i#褍餍餍t¤“ò¤“6¤“6ґmÒ¡@:¼‘L:¼H‡7éƖ°œñqª6éÐF ]ÕF2çÐFàڈ8ÚHâ\h#â\x#â\x#‰sáT΅6"Ѕ6’@ڈ@ÚÈiG]“@ڈ@ڈ@‡6’8ވ8ވ8ÞHÏ9¬‘Ä9¤8'kD˜CɘCæpFÀÎHÆÒ˜CsH#sH#`kÌadÌI ÌUm$('m¤£œ´‘ œ´('k¤£œ¬‘ œ¬‘ Üw…É7xð5ÊA9Y#¹jt”“6”›ÁŒrx#™rx#PoÌá$Ì¡€9´0‡6’9‡6çÐFàÚHâ֜Ásh#™sh#pmэdΡ|À9´8‡6’9ڈ8ڈ8‡7’0‡7"ʅ7"ʅ7Ò(ڈ(ڈ(ÚHâ\h#âÚ˜CɘCsðÌádÌásh#`m$cmÌ¡€9´‘Œ9´0‡6æÐF2çðFàÞœ#A>b4΅4"΅5RAÒH]H#táŒtáŒ$Ѕ4"Ѕ4"Ѕ4’@҈@ֈ@ÖH´8‡6èÐF2èÐFڈ@‡5’A‡5è°FÖHÖ ÃtX#™th#oÒádÒÉtx#€o$mС:´‘ :´@‡6èÐFè°FÖ CÉ “6çÐFàœ´‘Œ9”0‡6æÐF2æBæBæÂIœ oD  oD  o¤.´.´.´‘ºÐFºÐFDºÐFéBéðFºðFè© CçBIœ mDœ mDœ m$qmD˜ mD˜ m$a.¼a.¼a.¼‘sa4̅4"̅5R1'i$A.¤‘ +¹pF9œ‘ĸFĸFĸFãF„¸°F„¸°FâÐF`ÚŒCɌCqh#bÖHf֌ÁqX#™qX#0kÆadÆ¡À8y# o$#oÆáÀ8¼‘Ä8´‡6ãÐF2㤍€8´‡6’‡5â°F@ÚHFÚŒCqh#r(@mÈ¡dȅ6"ȅ6"ȅ7’ ވ ވ ÞHƒ\h#‚\h#‚\h# r¡r¡r¡$ȍí 'rፈrá$ʅ7R)ڈ0ÚHÂ\h#Â\h#Â\h# s¡ˆs¡ˆs¡$΅7"΅7"΅7Òq.¬‘ƹFĹ°F*çBI¤ i¤’.œ‘.œ‘„ºF„ºF„ºFêF„º°F„º°FêÐF@Ú¨CɨCuh#BÖHFÖ¨ÃuX#uX# kÔadÔ¡€:y# o$£oÔáêädÔI Ô åŠ:i#ꤍ뤍ë†v¡bˆ—¸5¬“5¬“6Ò±NÚH°NÚH°NÚHÇ:)Á:i#Á:i#ëÐF`Ú¬“7’Q‡7êä@º±å+gû0ÇÜòÖÐF ÚH&ڈHڈHÚH"ڈ@ވ@ÞH]x#t¡t¡$Ѕ6"Ѕ6"Ѕ6’@ڈ@ڈ@ÚHވ8ވ8ÞHǹf4Ð5iD¤kÖHE]“Fëš4RaלÑ®9# wMïš4"à5i$¯I#b^³F½f$ꡍ@½ÐFÀ^h#™{¡¾ÐFD>¬‘L¾°F@_X#°/¬‘ ?¬‘ˆódDœ'k¤‹ó¤Dœ—È恞¼‘.Г7ÉlõF"—•7’sÙªD*+m$RYi#]*[µ‘Èd¥DÉNÚH.Ùɉ’¬‘(ÙIéJvÒF¢dWóš¨ØIé*vR>¢b'm$*vÒFºŠÚ;´*vx#¹d‡7BÍo„šÞHªÙ¡P³C¡f‡6’kvh#¤²h#Dyh#9ÊC!ÊÃ!ÊÃIð o¤Â¯i#¢_ÓFþš6"þ…6"þ5m$°i#"`h#"`ÓF›7"6oDlÞÈo]ügbX±Ü\¡¬X߸/¡XÁݖâXÁÝ&×ç—æXþ<¶Gfï$ŽØwÝwqÄú¬2ƒ82—þ\ÎG¬]üÞ_b­m•ÏáaäTK{x#v±a=—x÷F¦z]#¼‘©^9odª58½¦z#SùM«ñâވU§§­‰#ªNë%U1¥â<›8RæoÕlª72^ÝСöùÂËðF†z܄7Ræ}9!Õ(od¨·ˆÂ±eٍ፠uµº^ROLCͦÃêÚÒðF†zã âÈ`k8÷&ŽØqµ®M±cqdô;`…7bדŽ­y#¥m¨ö— ŽØN:Î&ŽŒõ âÈXׯé5U±K¾ãÖđ±†`!ŽLu5 ¯qqdªG|ˆ#6æõ^"U)ïoõ&½Æ Öçf{ۆoq¤´=¦à}¼ÀZæçÔ¼›¼s¼ÄßÆOM¼ÄÄ;l-$âˆg%m +qĎÃQ_âˆ_tYÂ)M¿ ’¼¿D³®Ì÷F¬Ï¼ۂî¹ãވ]ç²aLÏÅ¿UÍ8bmÃ9âˆ]æYÛí†\ñKhÇâˆ]b›IFo»¹¨×Ô›}ވ5-±`Þñ=¼ªð™W½Æ¼Žî?âë« hûwßêcŽt(•:(•:(•;Ò¡TîH TòH TòHÇRÉ#ÁRÉ#ÁRÉ#™¥rG¨Õ žÊéxŠ;OqGà)îHæ)î<ŨÈ#¨È#yD@ÅÉ@Ũ¸#C,ëç ¨áŽ¨áŽˆ¨áŽ$¢†;"¢VwD8 w$á4äá4äá4䑄ӐG*NqGDÓpGMCM‘GӐGLCLCLCI0 yD0EK‘GJ‘G@iڂùÈ#¥È#B)î(ÅÉ(E¥È# TòH&)òˆHŠ;IqG2JqG@)îH TîH‡ÒêŽI%I%t$­òH€TòH€TòHRÉ#€TîH€´º#GåŽGåŽGåŽ\s{$S}Ê¡@9ü‘L9ü(W‡@’'Ä!€8’„8ü‡?ãädą?"ą?"ą?’þˆþˆ‡@’‰‡@R‡?’ø†?"¼…?2Īþê$¼…?"¼…?"¼…?’ðþˆðþˆþH"\$"\$"\$‰p!T…?"Äá$…@"…@"Ä!$…@"…@2¶{Oõô„ D„ Dˆ $1Æ¥m8ãH2ãHÄ8ü‡?’'Ä!€8’Ì81ÆádÆáÀ8ü‡?’‡?äH€I† ”C r$™r$¢œü ‡?’)‡?åðG þÈ5å0H2åPH  + ”Ã!ɔÃ!rH$p‰$s‰Ð!‘:$’:@‡CèpH2éÂ!™â«¢«C2Å·1W‡$‘.‘.‘.$’„ºH„ºH*ëÂ!I° ‡D´ ‡D´ ‡$чD° ‡D° ‡$Á.Á.’!nØåIb]H$b]H$b]H$‰u!‘TօC"օC’`‰`‰`I¢‰`ÉؾÕj«9lÀ.$Á.$Á.$’;$`—¶Q¿@I†‰`‡CìpH2ìH  ´C"É´C"ípH I¦ ´Ã!v8$™v8$ÐN °C"É°C"vH$À‰$ÉD°Ã!v8$™v8$ЇÚá\Ó‹$Ӎڡ‘@;<’L;<h‡HíI2íI " ´C$I´Ã#vx$Џ$Ó.<’)–8WdŠEÄÕ#I´ D´ D´ ‘$Ñ.DÑ.D’J»ðHíÂ#íðH†XÞ_=’»ðHD»ðH I¦ ´“GìðH2íI Ýи|H?®`‡H"Øá‘;<’ ;D`‡HìI2ìI "ɘ.Æ֓Y£" ´C$vˆ$™vI‚vm|㉋$í$’@;y$A»1ò–F;‰$A;‰$A;I:ÖI$uòH`If ¬Ã#ux$™ux$°‘Ø!’dØ!’;D`‡H’a‡H"Øá‘;y$™ux$°Öᑠ°Ã'vø$vø$b]ø$‚]ø$ vá“vá“v!”$؅P"؅PRa>I‚]ø$‚]ø$C,ó¯>I¢]ø$¢]ø$¢]ø$‰vø$‚]ø$‚]ø$ v!”v!”v!”$؅PRa>‰`>I‚]%‚]%‚]% v%b]%bBIB]%B]%B]% u% .mÃQ‡P’Y‡P"Øá“;|’ ;„`‡PìJ2ìJ;|h‡O’i‡Oíä“;|’ ;|`'¡Ö!”dÖ!”À:„X‡P’Y'¡D¨Ã'uø$uø$ ŸÔá“\££$£¥Ô¡”€ºê”dÐá”:¤@'©$s©Î!•À9¤’Ä99%`§Ìá”d̅S"΅S"΅S’8N‰8N‰8RIâ\H%â\H%•sá”$΅S"΅S2ÄBÿê”$΅S"Îá”sá”$̅S"΅S"΅S’8R‰8R‰8RIâRIÅ\8%Â\8% s!•s!•s!•$̅T"΅T"΅T’@R‰@R‰@RIR  KÛpÐ!•dÐ!•t8%€§$ƒ©Ð!•:¤’ :¤§Ðá”dÐá”:œH‡S’I‡SéJ@RIFR ¨C*uH%uH%bN ¬Ã)ɬÃ)u8%°§äšuX%™uh%°­Öá•dÚá•@;Äh‡X’q‡XîKÀbI¼p‡WîðJ2îÂ+îÂ+îÂ+I¸ ¯D¸ ¯D¸ ±$á.Äá.ĒŠ»ðJîÂ+îÂ+Xî/¯$á.¼á¯D¸ ¯$á.¼á.¼p‡W’q‡Xî†FfÇbIÆb‰x‡Wï†ví"x‡XïKàbIæb ¼C,wˆ%™wˆ%ð±Þ!–dÞI, ÞµmTÞU±¤ÃÄpW½’ ÝiK£Ví$–í$–t´“X"Úá•@;¼’L»£¥÷«ßö¦z%À¯$ïØ!–;Ē ;Ä`‡XìK2ìK;¼`‡W’a'¯Öá•À:¼’kօY’aj ´ µ܅[’yn À ¹â…\’‘r Ì ¹è…\’¨n Ü ·ð…[’Én‰È×Ü¡¯¹%‰}Í-üš["ú…\’è×äá¯É%•Í-I ·„x·„x·$Ç{¸%Ä{n5àÃ-Én ‰­ÜòZܒœ×ªˆFZ‹\BZ‹\’ÓZÉ%ÊjqK(áá–är %<äJxÈ%¹„‡\B OI<ä’\ÁC.¡‚‡\B¹$Wð$—D¯m£Vð$—t%<É%Ôðä–D OnIWÓ\5<É%QÓ\ÒÕð$—ÖÊ-‰hOnIíÉ-‰hOnID{rK2qK`È%0䒌ÀK` r ¹$C0äQ· +†[’1n ·†[rÂ?c»ÄŠG¦e»Ä‹LËv‰µí¸Á.™”8~iv‰ª,ôÀ.±ö1/Ø%Ö^ár‰•¿Öu ¹Äê)ZjîµêÒ.¹ÛŽ]bÅ´ó¹Äêm“$“K&[V»…õAµe[u«X{¨kæ].)íuikä].±*ŽMÉ%^À9çK¬€³/ñA\.™æjˆ —”vIî÷°K¦ù궵7Æ_kÖÕ| Ù%S/–LëWbeQ»s^‰—R¹‡¼¯¾V'Ľ/­šd!¯Ä+¶º•^‰•W-’Å+™æšøá•x-wA^‰}Ø2œ!–ØsL{@,ñzÕÂǤú”3±Ävàz†Wbûxm/q¯ÄÆÁï\(¯¤´}šá•X{oîÆQ«¸^õB+±ÑÖ½F\+±Ù°µ…xùoZd¾·mÔۄ¸Tbsnݖxÿö¥å…ó«Äf­ßÔE ½J8·×˜Ub3ÿœ·°JìxÚ«XãV‰“K^Ü*±‚ä<졕L¶–¥êHKý±•¦€k%ö’ó«dÒÂN¬’ÒvÀÇ´\|3þR¬’i«GVɔîL†UbeQ‹‹°J¬þì_ñ/«¤´]lÔkêp­u 3Z‰=ÇfZ‰ý<IJºZÊ dAV‰=eÔÝIlÁ•ƒlù¸I‡PY%PY%PY%Be•Be•Be•d†J* †J* †J*é*«V©$8*©¤ã¨¤’ਤ’ਤ’Ž£’J‚£’J¤’J:J* J* Ê*é@*«$@*«b•L½P"â“@R|’LR|Hê> Å'ÉÅ'£ø$`Ÿ$cŸŒJ(¢%™¢%PTB‰ ŠO’!ŠODñI€(>I‚(2•NC¥“d„¢“€Ð´…z‹—I2B‘I@(6 Å&ÉÅ&¡Ø$ T6I&(6 E' è$¡è$B(6I T6I‡Ðj“Ae“Ae“t­6IT6IT6IPÙ$Ð1®%V€V$óS6IðS6IðS6É5?±I2Ý°I 6 tÃ&ÉtÃ&nÕ&mØ$‰m’I@2 hC&ÉhÃ&ڐI`›d’Œ6dІLڐI2ڐI@2 h“L’ɆLÙ$“6Ù$™k²IÀ6 XÃ&™z‘DXÃ#kx$kx$` ²á‘d²á‘@6<ȆG’ɆGÙI@›D’L6DȆH"´É#ÉdÃ#lx$ $‘ ²¡‘€64’Ì64ؖ¶QïâIf lÃ"mX$™m²H@ hÃ"ÉlÃ"mh$° $³ DlÃ"mX$™mX$À ‹¸a‘d¸a‘@7,è†E’é†Eݤ‘74’D7,è†EÝ°H®é†E’é†EÝ°H I¦ tÃ"oX$‰oH$‰À!‘dÀa‘pH$‰$‰Â!‘@8$’L8$7áH2âH@ ŒÃ"ɐÃ"rX$P‹dêAÈádÈá9ü '$3ÆáÀ8ü‘Ì8ü‡@ãH2äH€‰ ‡?’)'Èá9ü‘9Ô ‡>äÐG2äÐG€\چn rhCrØ#@{$C{Êa@9ì‘L9ì(‡>åÐG2åÐGD9ì(‡=’)‡=åd9ì‘ 9ì ‡=ä°G2ä°G€ú”CI”ÁrØ#P{äšrØ#™rØ#P{ÊadÊa@9ì(‡=’(‡<åG òH¦öˆ(‡<åG2åG ò”CɔCrÈ#Py$SyÊ!@9ì‘L9ì‘ô׶æ Èap;q‰#¢ÞHPNÞHG¹!Â.¤UÐsÈÉé('o$(7‰+åª7ÒANÞH@NâH@NâH9‰#9‰#@NÞH9y#A9y#A9y#™rR>‚rÒF‚rÒF:ÊI ʵmèËMé('i$('k$(7¶%('k$('k$(çÖHÇ8Y#Á8i#0m$3mDŒÃqX#™qX#0kÈadÈa9¬ ‡5’!‡5äÐF€œ´‘Ä8¬‡5ã°Fž1NÖHÇ8Y#Á¸jâdtˆ“5ˆ“5ˆ“5’'i$'i$'i¤Cœ¬'i$'i¤Cœ¤‘@\•F‚p’F:ÂI ÂI ÂIé'i$'i$7Æ:î|“_œÖ\»5ˆ«Ö„“0á¦F¯¡ª +¾~4_Âዀ8|‘Œ8|‡/âðE2ãðE`ÂŒCɌCq#b¾Hf¾ŒÃqø"‰q¨0]Æ¡‹dÆ¡‹À¸´ -dÙöq’E ¶„ÃɄÁpØ"[$3[ÆI ÄIé']ÄÁÚö%n‹tˆ“-ˆ“-ˆ“-Ò!N¶H N¶H N¶H‡8Ù"8é"8é"™q²E‚q²E‚qcäÄã&Ù"™q“l7ÉrÓ1b@n’-ä&Ù"@n’-’ 7Ir“d 7Iɐ›d‹r“d 7Iɐ›ª,ã&É"@n’,’!7¡¸r“d 7Iɐ›$‹9Àä&Ù"r“l‘x®l 7É™zQD”›ä‰@¹IžH¦Ü´táxøò! 7Éɐ›ä‰¹i û±3Éɐ›ä‰¹I¢CɐCrˆ"‚žH†œ<‡'ãä‰$Ä¡x€84‡&’‡&âÒ6êí@\ɌCrX"@K$CKÈa‰9,‘ 9, 7Ir“4‘L¹Išˆ(7UKÈM²D2ä&Y"@nª–Œ›d‰dÆM²D`Ü$KÆM²D2ã¦j‰€¸Išˆ›æ¸SN2Å|ˆ›æ¸d‰\#K$#KÄa‰€¸j‰dÀa‰8,'K$ñ I¾!‰À7$‘Ì7Y"Â’xCÉxCoH"ð I$ó I¾!‰À7$‘Ì7$ø†$ß°D2ß°Dà–|ÙzAD|“ÞðC2ÞðCà~|ÃÉ|Áoø!ð ?$óM~xCo"o"à ADxÃÉxÁoø!ð ?$µÀ¡‡8ô 8ô—¶ñÿR÷v;»äÌyÞÌ9ÌNÛÀ4ûdö¤eo$Xq–ý! c,ç˜ÏmɧŸ®ªû*V?k"ç“cX†`­š~øv³Ù7Éb]UQ +Äá*pÀ!tR:ƒAà CªÀA‡ pà!xH8ð t +R:…ƒAâ CªÄA‡ qÐ!HtH•8è4<)‚ÆA‡ qÐ!ŸR5:ƒAã CªÊA‡ rÐ!¨tH‘9àd8™©2':D2‚̇T™Aæ€C9à*sÀ!Èp2Re8™Aæ CªÌA‡ sÐ!ÈtÈþC$sâB9¸*sp!È\Hʜ¸—̉ I™ÛR‹Cæą¼dN\HêœÀÔ¹-%–Î I‚Ή y霸Ô9q!©sâBªÎ éH’:',ä¥sÂBRçV*ò5’2THª\[û“T9Q!©r¢BRåD…¼TNT*‚ʁ…T•‹„ž#©D*¤ŠT"‚ÈA…T‘ƒ +Aä B9¨*rP!ˆX"RDNT‚ÆA…|j\R!Uä’ +Aå’ +Aæ’ +©:—TB—TJ—TH‘º„Bк„B»„BªÚ%"½K(ÁK(¤*PŠ—P’—PHÕ¼„B½„BP= ªz … { … {I…Tრ+Éõ¨\߉ +a}' „õ]Q5_à‰y-ðăä6xÜ¿Šyí_•g€í«xÜ¾Šym_ƒÉÝ«€tÑ y¹è„¤‹N@.:ñ /xtÑi;ƒ‡N:Ñ ¹}’«;á ¯ÕpVw¢Aru'¤ +4—4ʗ4H•¾¤AÐ>h´/i*~Iƒ ~à ¨_â Eþ’A“A“ù”Àÿ†igmoo¥Â fj­' b;¯kUi¾>ˈpgAlC7 +â{·Ö@Aì¿ÞWþÂY³ÙŒ òüÛgXû÷³Ú‡±å7{t0ÈóïͶÆü g”zTŒ±ëñäƒ<ÿ~^xޖà ¾× ˆÅâlAëþ×lóL$üÂYÛÉØ& Äv1Bgœ±Ê«”C£¨aKÄ6þ^¢O,ˆ¹Nà!f³CI!öÛ@A„à_ÐO|Fr¿Ä±'â>‡íJ"Ä=o ÄÝ%{K ÄîôY÷&bO3„ؾ̪_„Ø¿Ímbÿ¶¡æ¿b½dï ÄzÑδ B|¿¸~ãDˆÙ†¨;Ѷ—c›ˆ{wû¹ª“ŒØšúbÿVGBlŒ<¯–߸¯Ïl­ÓF·uqO(¤YlàÙòïx¹Úg|¶±JØðÝó7±e.?1&ľ€ó¹&Ä>3[ØÀ„Øg8·,h⟤íÎ- &¤Í¨$&Ä6óÀELˆoøcÜ8bM¨ÞŽC!æ± IŽÏÓÛ¹¢jˆ3!öÏ->6gB̯r®ZC΄˜í™z’ 1ŸÁ#ÒüßÎ#ê7$¼h濁 ±ÛÒ&Äzàºïb6[-…Ø¿ï(ìãQT®gû&¤ +©R!!©ˆ—ŠAH„¤ +y)©ˆTR!©¤"B^J*"$å4TS!!/5’j*$$ÕTHÈKM…„¤š + ANE„¼äTDHÊ©ˆ”S!/9’r*"9…©r +‚œÂ… §p!UOáBÐSçBS¸"¦`!ˆ)Xb +RÅ,1‚–‚…T- AK…… ¥p!UJáBR¸¤.¤J)XR*0%R…0!Í$¤ !UHACRЄ4¤)dB +‚Š ©: +‚ŽB† £!UH!CRАR¡!/! 4’:*2䥣A†¤ŒŠ Iò’Q‘!)£"CRFƒ y©¨ÐTQ¡!©¢BC>T2¤h`"ƒ ©" ,… © +'.ƒ AààBªÀÁ… p€!(œÀ*p€!`R0 ‘À‰ ©ú‚¾‰ AÞąTu‚¸Á… np!U܀C7èÄ :¤Št₾A‡}A߀CÐ7àªo×rü»¾‡ p‚Cª¾‡ oÀ!œèªoÐ!ètúRõ ´}AàÀCªÂ‡ pن@¤*€ + ‚ˆ…‚ÀÁ‡ pð!UáàCP8ø>¤*| + ‚ˆT…‘ÄÁ‡ qð!UâàCÐ8ø4>¤j|'>‰ƒ© ‚ƈ q"R4<‘ÆA‡Tƒ‘Ƈ rÀ!Uå C9èd:¤Êt2‚́‡TAçÀCÐ9ðªsà!èxˆt:¤ +tB‚ÒA‡T©ƒAë CÐ:萪uBD:¤F¤JŒR#‚Ô‰)J"‚ҁˆ t "Ué@DP:”D¤JˆR"‚ÔÁˆT­#‚ÔÁˆ u0"Uê<: ¤H¤JR—mHêÀDªÔ‰ u`"H˜H‘:(´J­ƒ©Z%‚ÖA‰ uP"Uë DÐ:0´L¤j˜ˆ´N”R%R¥J©ƒAê DªÔA‰ uP"h”HÕ:0´L­ùÐ:(‘¢u@"hˆ´F¤jŒˆ´D­©Z#‚ÖÁˆ u0"Uë`DÐ: ´H¤jZ$‚Ö‰T­Aë€D¤u0"Uë`DÐ:´F¤jŒZ'F©ƒ©R(‚ÖAŠ¤Ö‰yiݖk°Ðº ERêDŠT­(’Z·-Qv­ Pä%uERêŠ¤Ô yI@‘”:")u"E^R'R$µN¤HjH‘—Ö óH­*’Z'Tä¥uBERëh­,òÒ:Á"©u‚ERëZîZ®òO´…Ö‰I­sVä¥tbERéĊ t°"Ué`EP:`”X¤*°ˆ”V©ƒ©R+‚ÔÁŠ u°"Uê`E:X¤N¬HU:`”X¥ùT:±"U鄊¤Ò*‚Љy H„N H +@‘—ЉI¡)’B'Rä%t"ER脊¤Ð y P‘º@ER焊¼tN¨HêœPtN¤ÈKçDŠ¤Î‰Ik™ »–pðøäÔ9‘")tAŠ¼tN¸Hêܞ‰çŋTƒAçàE:x‘"tà"¸B.R•\¥AéÀEªÒ‹ tà"(¼HU:x”^¥ƒ©JìÒŒ t#UéFPºlCJ'd¤ +td):1‚ÎAŒ s#Ué FP:#)t"F^B'b$…ÅE脌¼„NÈB'b$…NÄÈKèDŒ¤Ð‰I¡1ò:#)t"FRèDŒ¼”NÈH*‘Tº–Ûäªt#EéFP:€I¼H•:xI¸R.R¥^©ƒAêàEªÔÁ‹ u#HÀH•:#(ÀR0R¥`©‘ÔÁ‹T©ƒAêJŒtۈ˛ïí+¼R/‚ÔÁ‹T­Aë FÐ:¨‘ªu¢F:¨¤j¤HÐR4‚ԍT©Aê€F: ‘*u@#HÐR5R¥NÔJ5‚Ò‰©BòÐ t`#UèÀFºlCB8R•p©AêGŠÔÁ up#HÜH•:¸¤n­ƒ©Z7‚Ö AêGªÔŽHêč tp#UéàFP:¸”n¤*¸„n¡ƒ©B8‚ÐŽ t€#B7R„l¡‘Ð5RejD24‚Ì ©*5‚ÊA rP#UåD r`#ˆØH9°TŽÏ•©*6‚ʁHå FªÊA rP#¨ÔHU¹&j•k¢FP¹&j¤ª\:‚ʵ‹o]ìH¹Ösõå*×Ď rMìHQ¹&t•kBGP¹&t¤ª\ t‘kBG¹&t¤Š\:‚È5¡#ˆ\c RD®ái‘Ê5¶1R¹&v¤Ê\øÌ5Á#È\Re® AæÚXçi{þæ»ÒD smäI¯Ë\=Re®‰Aæšèd®‰©2×D s Åy^íøHÕ¹&|D:×D tMôHº&z¡k¢Gº&z¤ +]=‚Ò5Ñ#(]=R•® Aéšð”®]¹G®J=R”x¥‘ÒÁŽT­ƒ‘ցŽ u #Uì`G;ØÄv¤ŠØÄx±©b<‚؏ vÀ#Uì€G;à‰ìH;ØÄv±ƒ©b;‚ØÁŽ v°#UìH;$ˆI;Ä‚$ÅNI;$)vےe;$/±@’j'€$Õn[G©vHR퐤ډ y©’T;$©v"H^j'ü#ÕNIª’—Ú !Iµ£ Ô. ’—Ø "I± ˆ$µ®å¦å*¿°ÈãÔº–g¾¡ubH^Z'†­ƒ!Aë`HªÖUeêôO8 ¤ˆ¤J‰¤†©ƒ!©RC‚ÔÁ u0$Uê`H:¤†¤J ”ˆ¥"ùPºdHŠÔ%B‚Ö%B"±K‚¤ª]$’»HлHªà%A‚â%A‚ä%AR5/ T/d/’ª{ $è^"$_"$Uù!Aú!‘öATíK‚ñK‚õK‚¤ÊI®õDäZOÉk­'Œ$×zKÛb±'ŽäµØG’[ÚàHrG+Ž¤îhU׈ ­0’ÜÐ +#ymh#Éý¬0’tÝ #y¹î„‘¤ëNIºîđ¼\wâHÒu§Ý ž;q$/ϝ ôÜ $Iϝ@’—çN IzîhϝP’—ëN(Iú¤ïN(Iõ݉$IߝH’ô݉$yùîD’ä†V$I®ôD’¼Vz"Ir¥'”$WzBIªü’Hþ’$Aÿ’$©˜$ +I‚&IR%0I4’ L’¤Š`¢$È`¢$è`¢$Bøß2I²?ôBI¶8»M”ÄÔ÷(,ÉfyF’K²…5a[àôž0Éqý$`’Í<)#a‹[¿‚ÁpµŸB’Ì_bҀ$™æ¨9Ï$Iž;Û2\V$És'Ïd‘$ϝø˃$yþ}|’$Ӄ›vH; >îUVÄ6NæáÔO%±!¾Í$Iì<úÞ®$IÆGõ†3ðÝïIºE–Ï’ô_bbñe°@’ÇfO HbÓ¤Åb’Ø4ùÜ?ñŸÛâݶ€$Ýåj$¶ ¸$‰í+,l ’Ä>*/"’dØ2uœü¦”z>˃;I’á•žZ’$CóÿF$‰õ’…üA’ ¯tµ'Ibáíz“$ÃëpíI’Œ_â#‡$™Vpl_¿ÿvÕ#q’dú¡Ê•$‰Þ,É"’Ä¢vL˜V§oŸ!I,ÜÆ&gþŽ¹YmK`ëH’é”U^äyó£Ô=q’äþCUKF|ee–$‰}™ýâ7á"³åûµ@’çMÞÖ#Iš½­¬/ ‰-²÷s$¶þÝî’´PùŸ§“êîºH’ÄǵH’Rc,IˆóZ$ɦ¬ý$[°ŒúM$Û/¢Ã$Ùl|-d«0™â¤ìsØï’Ø5ª6â¡VÏ¿÷ñ·W|ú/D’T!%AHAIRX’*¤°$)0 B +LR•˜%L’J*˜d)©H’”Ó IRME’¼ÔT$Iª©H’TS‘$/5I’j*’$åT(ÉKN…’ §"IRNE’T9H’r*9$©r +H‚œ’ §€$UOIÐSIS@’*¦$ˆ)$ b +IRÅ’1I‚–B’T-…$AKE’ ¥$UJ!IRH¤’¤J)R*’%IR…’!]-„B’T!…$AH!IRH’"¤I’HH“$‘B’M’$t4Aéh‚$EH$‘&H‚’T!H‚ŽB’ £$UGE’ £$È($I•QHÉ( 2*d{d’ ¢€$¨( ɇŠ&IR4.Qi\¢$Ò¸dIŠÆ%K"L"…K˜¤(0‰˜&Iƒ$Aà IP8‘$Uà I8H’¤ +$ I‚À %©úJ"}I‚¼‰$)ê&q$AÜIª¸’ n€$ˆ I7@Ä }$©úI‚¾A’ o$U̮߮úI‚À‰$©úI‚¾A’ p"Iª¾A’ o$è$IÕ7(ô ’ƒ$© +I‚­6Bá IªÂA’ p$($IQ8H \’$¸$IŠÂ%I +— ‰.A’¢p ’Há$‘Â%HR.AI\’$’¸$IŠÄ%I"K’D—$IѸ$IBãI$q ’KD— ‰4.A’K’¤h\¢$Ò¸DI¤qɒK–D—0‰T.a’¢r “Hæ€I9`’”9Hd’™ƒ$©:I‚ÎA’ s$Uç IÐ9Ht”¤ +(‰„’¥ƒ$)RH‚Ö’ u€$Uë’ u€$H I•:@¤©HR•’¥ƒ$Aé IªÒA’ t$($I•:H¤’©ƒ$©Z'’©ƒ$Aê IªÔA u$H$I•:H¤nµRIR¥’©ƒ$Aê IŠÔ%I"­K’DZ—$IѺ$IBë$‘Ö%HR´.Ai]‚$ÒºIŠÖ%H"­ƒ$‘Ô%IR¤.II]’$’º$IŠÔ%IR— ‰´.A’í”H"­KDZ— ɇÖ%IR´.Qi]¢$ÒºdIŠÖ%K"­K˜DZ—0IѺ„I¤uÀ$h0Ij$ ZI‚ÖA’T­ƒ$Aë IÐ:H’ªu$h$ ZJRµ”DZI‚ÖA’­$Aë’ u€$UêIÐ:@’Ô:$/­H’Z IJ@’—Ö‰$I­ÛPei]$/©I’R'’$¥N$ÉKêD’¤Ô‰$I©Iò’:‘$©u"IRëD’¼´NHjH’Ô:‘$/­I’Z—mHëD’¼´N$IjH’Ôº–[–Ô:H´’­ ’¤*$‰”DJ— IQºI¤t ’Hé$)J— ‰”.II]’$Eê’$‘Ô%I"©K’¤H]’$!u ’HêI¶NÖµ?ö6A)]‚$ŸJIR•”¥kìÖCè`IªÐÁ’ tÀ$0I:`„N0I +`’%t"IRèD’¤Ð‰$y H’º IRçD’¼tN$IêœH’Ô9¡$/J‚Ή$IIRuN Iêœ@’ºI^:'$unGÃBçIªÎ’ s€$ I:H„’¡ƒ$©JI‚ÒA’ t$Ué IP:H”’¤*$ JI‚ÒA’T¥ƒAé IP:H’ªt$(Ýj#”N$I:‘$è$ :IRt.Ié\’$Ò¹$IŠÒ%IJH‚Ð’T¡$AèI:@’*t€$$ BIR…’¡ƒ$Aè IªÐA’HèI:@’ªt€$( J×r—üRº$IŠÒ%J"¥K”DR—,I‘ºdI$u “Hê&)R—0‰¤˜©&I©ƒ$Aê I:H’*u"IP:H¤’¤J$ RI‚ԁ’T©%‘Ô­4Ô!u$EêI:@¤¤j ZH‚Ö’T­H‚Ô’ u€$Uê I:H¤’¤J$ RI‚ÔA’T©ƒ$Aê I:H’*u"IP:H”N$I:(„’¡ƒ$©BI‚Э6Bè IªÒA’ u$H$I‘º$I$uI’Hê’$)R—$IH]‚$ÒºIŠÖ%H"­$‘Ô%HR¤.AI$‰”.I’¢tI’Hé’$‘Ò%IR”’$„.A ]‚$ۋ&‹P+ ]‚$ºI>„.I’"t‰’Hè%‘Љ%)2—,‰d.aÉ0IQ¹„I¤rÀ$¨0IªœHD’‘ƒ$©"I‚Êv‡ÊA’T•ƒ$Aå IP9P’ªr $R9HT’¤¨ *H‚Ê’T•$Aå’ r€$UäIP9@T¤ª$ *I‚ÊA’T•I‚ÈA’ r$Uä I9HD’¤Š$ *I‚ÊA’T™ƒAæ I9H’*s$ÈÜj#d’¤Ê$ 2I‚ÌA’™K’D2—$‰d.I’"sI’„Ì%H"™K¤È\‚$’¹I¤s ’KdKî&H ]’$Eè’$‘Ð%I"¡K’¤]’$¡t ’Hé$)J— ‰”.A)]‚$J—$IQºDI¤t‰’Hé’%)Z—,‰´.ai]Â$Eì&‘Ø“ vÀ$)v"I;HÄ’¤Š$ bI‚ØA’T±ƒ$Aì I;P’*v $;HÄ’¤ˆ bH‚Ø’T±$Aì’ v€$UìI;@’;$/±I’b·¡Ë;‘$/±I’j'’$ÕnãÈ¢¨H’T;‘$©v"I^j'’$ÕN$IªH’—Ú‰IµI’j'’ä¥v"IRí² ©]$/±I’b$Ij]ËKj$ ZI‚ÖA’T­ƒ$ ­KDZ— IÑ:@I]‚$’ºIŠÔ%H"©K’DR—$I‘º$I$uI’Hê’$)R—$IH]‚$’ºIŠÔ’Hé$‘Ò%Hò¡t‹$)R·PiÝBI$v‹%)j·XÉ݂I¤w &)‚·`)^Â$H^Â$©yI’ zI’ {I’T݃$A÷’$Aø’$©Ê—$ җ$ ÚJRµ/Q‰_’$¨_’$EþIr­'$×zI^k=$¹ÖKmÓbO Ék±'$·´’äŽVrôÚÑI’Z‘$¹¡IòÚÐI’ûY‘$éºIòr݉$IםH’t݉$y¹îD’¤ë.¶7é¹Iòò܉IϝH’ô܉$yyîD’¤ç.ېçN$ÉËu'’$}w"IÒw'’¤úî IðÝA’ໃ$©¾;HmhIXé’Ô• +=@Vz€$Eþ$‘ü-’Dú·H’"€‹$‘&I"\$I‘ÀE’„&H" \ IÁ’HH"\ Éß!^ù¿IbWÍ?…+Ù=@nq%»ÕcÚ® ø~>V?Ƃ+Ù-Âyd\ùq[å‹. F‰ÁI1º…•ìú>õ‹(_lþËóN¬d·i\ˆWËþ%ÞØWÿýóQf‘$6x-jÁsD’gid!ü ÷×z©™sÕ(ùåöòPY£Ä8¿yæ Éç- ÆC˜µmQy!ÒJ„ôéQ£Äb|®+É;Ë9zhq´Äî³ÚxÃ%60ŸoúLºd³/É +H—ØüöÌ~YuÄù’ ²d37ªèZbӌ }]í‚o-yà0lÉæ\U©RøÁö¦Kž¿õ,ÂñXûÒν­J%Ï=Œž?êQõÇjfÅ5Ηø1Ù¤„&χ^þ3&Ö[Ãw*»’ðÿ²m6{g±wŸžü(Š•<º¿í}+yæ +‚8±`ÕËf2ÏnÙl±Ëb%¿\ªCµJÌ_1óÞÂ+è(hÐ"Qêk„ÓƒZ%¿˜ì¯[;Íq®=“Ýââ¶Uªd7ü±îìöïëŒ"’"LlîôŠ›¯–ðKäÕ³(“ûNÄĪxÙ)‡“Ã_X(ÜþL ö˜œ‰˜†ø´w­’#ʧA˜Øù€Š9ab¾üãʏΠ“ÃBђ(±ßl{a²;â˜CÔ^´¿vÏ¢8±21±xo_.W¡þ,%DLìû|@LLÙn1Áÿ…“ð|ªóÙeõríŸÿùŸýúë_ÿöÿî?þkû“?dQ^â+%ÅW,JŠ¯X”—øŠEA|…¢¤ø +Ey©¯P”T_¡(©¾BQ^ê+%%ØΌm÷„SؤJ0…M` +› Á6©La$˜Â&h0•MŠSØ Ž²4X<Ê[ƒE¤, ’’ “òÒ` ”-q”ax”*Âð()¤¤C¤¼$%&%(¥(0LJ*° ”`¨”—ƒ¥XWyµC*œH³ÂIÑ߬p"ýÍ +'Ò߬pRô7ë“H©pòK“¢¾YàDê»õÍ'E}ÁR¤¾P)¨/TJU_°Ô,õ–RÅ,ñ…KA|áRªúÂ¥ ¾p)©¾âR^ê\ +â+,%ÅWXÊK|KIí–’Ú+,好ÂRR{Å¥¤ö—ò’^q))½âRRzÅ¥ ½¬–áRªÞÁ¥ wp)è\JÕ;¸é]`)¨XJU;a)ˆX +b–RÅ2± 2åL±£ÆIѺ¬q"­Ë'Òº¬qR´.kœHë²Æ‰´Ž"'Kê²Æ‰¤NdJ*Ð”—Ð NIƒNIOyé|ʖdJêhJÕ9ДÔ9ؔ”:à”—ÔA§¤Ô§¤ÔÁ§©OI©ƒOI­ ò’:•”º,v"­£ØI‘º,v"©Ëb'’º,vR¤. •Hê²ØIh]Ö:)b—µN$v«‰»¬uRÄBEb ‚بT±¡‚ÖA¨ u*Uì T;ÄD¥Šˆ +b¢‚؁¨T±Q‘ÚA¨ v*Uí T;äB¥Ê„ +r'DµQ©r¢‚܁¨ w *Ÿr¢RåD¹QAî@TªÜ¨Hî T<•*x*(„ +Š¡RHÅs(¥¯v–;)’—åN$yYîD’—åNŠäe¹I^–;‘äe½“¥yYîDš¤’¢¥òR=8•”=@•”=H•—ì UÙRIՃR©ª¥’ª¦’ª'Nå%z€*)z*)z *Eô URô@URô`U^ª¬’ª—uO¤zY÷¤ÈuO¤zY÷Dª—uOŠêeÍ©^Ö= Õ˲'Eõ²ì‰To5ª—eOŠê«Hõ`UP=X•ªzÀ*È° +²¬ReXكVAö UªìA« {Ð*È´J•=hɞ`TX¥ª° +ª¬‚ê«TÕVAõ U=h•*{Ð*È´ +²­ò){Ð*Uö U=hdZ¥Ê´ŠdXÙV©²¬‚ì« {À*UöàU=çSü%d/+ŸÙËÊ'’½¬|"ÙËÊ'Eö²ò‰d/+ŸHö²ôɒ½¬|"كWIÙXyÉÈJʞ˜•T= •—êA­lÉ«,Ù°ò’½5²ÄÊR=!+oÙ³²doK‰–ìµRUOÐÊR=Q+Kõ„­¼UOÜÊR=J  z”@©ªG d(È%PªìQ¾Ù£Šd +(Uö¨€‚ìe’=* TÙ·‚ì [IÙkliŠì‰[IÙ·’²çÜÊKôÄ­¤è \AôWªè® z€+ˆàJ=À‰Ü +ª·RUnՃ[AõàVªêÁ­ z€+¨žÀ•*z€+ˆà +¢¸òè \y‰žÀ•½WRó®¼4Oà +š'n%5OÜÊKóÄ­¤æ‰[IÍ·òÒ<¡+©yvçû iEPªæQÍS$"(Uò(‚‚äQÉ£ +J‘<Š  yBW–ä‰]yKžè•%yÂW–æ¿ò–<,[¢+)y°+Uò`WRò€WRó W^š¾’š¿’šÀRD~%E€%E‚å%z ,)zY E¢—ÕPŠèe5‰^VC‘èe5”"zYÉD¢—ÕPBô²J½,†"Ñ[M„èQ ¥hžI ’ÁR%„ÉaAò@Xªè° zbXRóÄ°¼4O KjžÔ75O ËKóÄ° yBXR󄰼4OKjž–Ô1.Kø(—‚ðQ.¥ +åR>Ê¥ |”K©ÂG©„r)>ª¥Tá£Z +—MHøT-¥êžt/—”½ÆŽ¦Èž—”=1.){b\^²'ÆÙrAö€\ªì rAõ€\P= —ªz@.R=TÆ¥ªŒ ªã‚êÁ¸TՃqAõ€\P= —ªz‚\= DÈåSôr©ª— ²G„9²—ŒKÕ=g\¦¯À]øq‰]ù…s(—*}Ž¸œî¿ íKÄñKÄ¥ª_R.èŸQ.:j\õRŠf½)ગ" \õRŠå°¹DpÕK‘ +fÁ”¥‚«^Šd0)—ÔÁÄ\^Bè²€"]ÖP¨Ë{(Öeû¹¥È±æòZ +sY[Þ¸õµãzòÞñé²6¼B]ֆW¬KÝðê²ö»b]–—O°ËÛË'Ú%C¦ÝYx¬Ý,œR½|NÁË'š'…Sª“O5óËVÝùø(›R}|”MÁÇg°ËU||ìoª“Ï‹»¤ +º¤—O¬ËËË'Ø%½|‚]ÒË'Øåååì’û]Ñ.¹úíòZý‰vÉ՟h—\ý‰v©:í"LØ!LØ¥*aÂ.H¡Ã.q”Z˜´KÃgh¥. +!LÒ¥*a’.ha’.ˆa’.—°é¿'Òå?7lúïŠÄü“Ÿþ»?ûŽõOüïýÇ¿ú÷Œÿù_ýïÿçeùïþÿâ_ÿÍ_ý‡ŸõïøÓÇ¿£Î“%Zgáícx¼¦E±ümó‚j¶ŸÿÇçÿü¿ãúùüùúùý߶ŸÿÛÿå_ÄáÕæoŦvþöS„Ò—¿õ²ñÛo?hÏlü) gþ¿< x{–T¡•O{Ü°©}”ÇÇ´µ“CBÿÜá¿õ;ü‹Ÿ¾£”þ,>½ëçÿd­Y­AÓôý[ØîùÏÇmñ§Ïê"ÊÉûyS6òoà wè6ÖmÛÔÛ‚‰ŸÓÈàQ՗Öê‡Ïˆñ—/'D¦êß[7%sZVcß¾*ÖÛ?=ñ¶ˆ]+ÒÕ<`Ì–ëˆHÛÎ5Ž˜­ÿÙOq„ÚûýzF;t?ûÌg<[ìéyÈóQ†ËÆcyHΕõç3OõHùïyž/XÒLî#ÒãÏî|ÆózôÇÂË3>ÍNóàó”»‘¹ß”ÄCþª‡l‡Ui:_ÙlN¹{>ä³ÿܯȅïéÃÆb’ËCšSëÚi[Öó8ò!mWo‡zõ!÷Í^yÆ6Ÿ—ou ôæd±¤àåŸ?ü̃W>cÛcuÏC…u½öù”ÃÚ¼<ɧ§ØCvÛÓYäwÍw·Ÿ<ÿ¼žuÕåqßv&ýôô1Z`çáqJ·.\{ö?ÿžëtmÑ¢E‘ö›ÇÃrxöð韾׾­Ý~ö0Û-ÉBõ¯L}ìñH§¨…ËvaÏ^úy×½ªË®}Ø?lí÷¶æuá »ZPjÏßñ×úÜë4àéù÷³XͤõùåúTžûÍ#%üÏyŒóE—ù‚9½ËÌ?aeãD}öü݈;úÌç÷ÍÖ#gö™ +˜¿‹>Û-û¸^}¶Û¢Â"JÔg»}ÑÏ-Ðg»­Sž7Vûl·“aëGõ™9½-ü•>³ÓÛÞUé3ó“›o>³sKòª.3÷ü1ç«Ëö—Òg»¹øƕ}¶›—rµÓž¿¼[@ ãl×æXfQ€û=^f#ÖÈ1¶ú†GèëeßN¤–´@Á[§évi1éÓ·?ï3–¯¿Æ}–œÓîsŒæ8÷¨Q?GdÜ÷3;љWfå÷ú§;|›sM¡<Ýæ¸ýëšúúŸkžÒ³©Ù­Üþø~ó¾\2!iwT‚?¯,UrܶE´?}:ÐÑvÛ{íñ|AO™èœ‚"6Uó™qJryü5{-wNû"îÇjtÚÓí24:Í£쭔N³hûFé´Ãù㖝fñÇ9_vHé´Ã¤8¼ôN³cvü-fq gœÔù­:Òi‡}guš "‹ò¦ÓŽA‡tÚqk ”Nóà V§=:÷¨"ìæUøúI§¹Î>w¿µ™fží'Îþz}îwšÙb^;‹Öv™ÛÓö˜åúy§› ÍÛ¼w$!Ú)/d§~JŽhÜ·@F"ªnh–E*{FÓçãæ'·E<ß®íôµ‡{xZµ}Š->ìT•N.>lâ}îdØ"DŽsóz†TÛíú¿ïqm÷Z}ÌËÿ¶#ttU]â«?äá\…º†¯ôv j±y&—/¶ó¿|ýqGÊ|ﶯ1<•‘Ýæuì¶³E›µÛ,Bp\çÞm‡%@ðr{Ño¶žízõ›­g,@~óõŒJQ¿Ùzæ~w›/gL~Ôm¾žñd±Ñm¶ž9<ÝÎê6[Ï ¯ÉÝv¢­ê6_ÐøYÃê6_Є{%ºÍW4χ¡n³ÏñPnë6ÛSÝfE>}$ŸJUUº­Y˜C¤” îCº²Û|…ä…¿W·Ù +ÉVåt›¯ljV·}.¬s…ôÈýæK$OõýæK¤Ù^ý¶k¹I¿ùÉ"Õo¶F¯^ûg¿¿ÇºìßÿêŸþ»?þ/Ïfî?>û¹/_Âì[¯ú~ú§ÿ·ý—ÿåÏÿý_ÿ‡ÿƒvþÁ?ÿãÿõoõo~ÞÿáOÛÏöüï¿üO?ýõóÿ^{­ï´|Ÿõå™îZÄ!YʋG.SŠ/Ϛ}Pâeþöa>ì kwsmäwÌÙÈýöþçŸÊ®ê֞ëŽÝ•Mi­ÅiâÑw÷}=ƒáò|ó}Ú³ûîfl¹À­Œñº3GÆógÁÿËfaÄ?x"käÛOÿÖÿÃÑG~½û~ÃlÔ¯›wóF˸[D¯/™x “¹C¿êÏ͑=õ,uðÂ=»#Œæъ&ì9~xW¿æíÞ¾Dôÿ`À ·³±›-ÿH§ÑôqoÇó=™ÑBµ¼›î«pg4`Ԇþ˜¯ ýÎÌmõÃ;ø·Öm¦j{ùs¿aÞvzȒńÑ˾Èø,ëdÔ;2㦾4óÜtk^)W­ª'uíï€[³°ƒ[M˜“N·fr@/[Dú[zþagSa¾ã=Û`²xy]z{ÿO=Äe Y­ pçjàÑiµjþÏ_ÕÀ9xÇ¡ÆãYÀÉ(‹£@a±áÏïtŠMÙz¶hñ=j1»ÅóÑÄï=4D½b‹-³l«ºÙVna>ïÎmÙ>[ƍqôì…/Œùœî Ø$cu |4OF÷0y،±n;Ž™ßþ­0³­ÐÂlžÑ0úÌƉmDš[6~ß­§Õìf‡Èfôð—ÁwwóZ2.Füy«Àq­míÂU!ÂØîl`tþÔ\ HŽâ¶Éû÷ÈÕ0zœŠädªuM±ó¼LßdöR÷ÑîÐ3Ó¾p.Úµ,Fܦ‘m­ö~òǭγa|&‰lÀ)^=ïìYˆl©Á#„ç2g@ +«9˜y·ž†-°½Û“®ijÔå $[~×tÔ8¬=>ßÄñiæû6Î랫M†æfkŽ¸ô‘ß}çíœjÑÂøý³ô¾™ô.ÃÕÌ8ñ£mý©¥»^¬ä"±û±#±÷Ö¹öÈÙ°a^s³ 9ßËx÷ˆÞ0Z¬.<¯”L߉닝Xýٖµ+?ŽÝkl¶ê“íÞ×㈸¿5Š]ñF÷Tiïæ4UŒ‹3lšº“V=˜™/¬GȋÙRüÂ…ŒÜhÇJñûËSh6¦—¯/nv£aù}ØnÎ÷e³µwÌ´]_¾nÏûK·£ Úì³X‰ˆÛ¥ÚÖ쾍øú$›.ÆÏ:< «ÂïͶ÷s¡yë¼3ÛÙΚ¢|%hQd Ýy6‡·71˼u\®PÏ ,ŸüiùH¼Ý=&\õâˆKí%r Ã×G»m¨s¹rÛÂn¡ä×öZJíÆ ¬ÁeÆaÛjõêð¯Àl~<ü1\® £Âlköo2÷‹whY ½‰È`¹kÂfé!ÕY¨–™ýWz±Ï‡ôMæ»ó}ŒÕìÑg®àÎSÆûÈáf‹VڍÙ·K«cµ:fË¢8¡w®e¹³]Î#¹Ž¡;nÜùlÝê <æ‹I按ÖvIžòAcû¢Ñ{k =ßzþ‰ÊÕ¸o³rúžà½÷zZí|fîh”OåaôÀsõ¡«¡›E‘ÅcÙ¹2 lƒÜ£d¾éÆfê™_­kÊ~®¯ /þÖ³BZæi íçÛåoÜKû}– ãçWÙÎÚgç ñÝ=i åµE\g!ï!x¿ê÷î-Õӎè¾2IÍ/ÁJ¼—£×äOKÆgZR_ûè–ñ¼1Ú(ŒŒ=jêÖP ½6¤ä¼·1õþ÷9ŽüµŸÎIbcF|4öYYéþÞC3šÇÝDžC H·¶w}n·.í<*b×íºÎ÷­ñsÛÛ7fßi?ÿ‹‡=şßcDœ¶~la²iXۙÔqçX‹ïÊÀú¹«KžE]í8a㶎¡ËôN¿l1˝ÏÌ1°wŒÛÞxç¼ÖèóÌõy¦B_l½Ÿÿš{.{nzf³Éí{ëÑèGªñ÷7õÀ‹Áø¹Ö)ñ¹çüzº¥¥$ÿ”E<̓Ÿûd>U«2‡nLæÓsÞêJû6ÃįßiÏ̌ÛÁ-ÝÌOÇmiQ|}½‡6pKÛ®;Ø-7îàAY%0·ñ¨>ï~Ó*ÅsÀ¬/ ŒN]h™§áf÷d’ÎÑâ$_† F–z–vXÆÜ´»-~o4j•ü°yX}AaÜgØÅ*͖Ÿ Ì-¶Ò?6[l?ÕÝۑ D‰]سùcôœl!7vÚ7Sí,*/P–½ò[K‡}äö¹:×?f“†ž2Ξ:¤{eÌx8\ü¹«ªN8/ž}гc3;cƒd+`Ë4ÍkÜY/÷HP¬Îáû²õrºÁ¼‰4l9V +ÍR%±~ñ†e<™e§ÅSÆ_»sżæ cSÒU¢¥å³Œ¿Ò«5ñ”¸Y_ãZ2ے??ñãbwp巐o·1ÖôÝÄ&`ùIM·ï)cÃ?éñáüœÙüŒT…2¶¾—”q »›m¢±ûë©ãf™Np´x\—Íñ¿ÑQ9¾·»¸Oü3žk×æád_|ϵ|O‘›=ô!VD»Þö¶SemŽ_ÒGÛglòç]œžã’Íä?ÁS¥…ÍóT…q ïñ<‹òž8°Ìœ›Ao 6“{¤]Ôj5\ݳÀ­/)œc–¢ï̽Ýa‡\éؼµy¬G:WoËÈjFËåsÕea‹~™;ÍZê>¥{ààæÖ¹ÙÏpë1–¥rã+²ýÄïӉõ˜vh¾gˆVÏ8hsø|›G]Ç}†qýÜ|p_õógñ}ó°á3ãu𺯉ÌxøÐn[>F +’Ðð +ÌØc}×ê´œ¾Õhü¾EhwôÀ–/a+k(ßçš[E³sáŠí£lHsff–ËZÜ“ÙýkØ¥ùÀVêvÌ6¹QܹsÔMáõòàïTþ-Í×\Ú-7?Ÿ³a¿n,f¾è æ•ñȏ«ùní«-ÉÖn¤Í–^¿aΩÏ÷ 2N”ÙóŽýí[ý(ÍÒ葛XfvXôÏ" zý¿üˆñŸüñß¼ÿßÎÝj ¯óÇ¿óéã0èkØó°¼Oï<[Ó*¾Ìß^fÿz{w‰Šßo)?]Ǎ›‡ø–cÇ駋à9íi‰å‡žÞ²5‹4ŽÖÌ+þ4kÉ†Ì ó›-ìÃÃI6…Û·™º­‡/ðoüRóB[}3ûõØönG¬<éóK--B2_–(ŸÉä§çU~d>vOÙc€§Eó0[©j[ˆ»Þ¯µ5ƒá#í¶{v4NñHóðՉíp"ŽA†dý7³•v˜-þN¸¯ŸÍßq»q‹åĺÈ>ƒV;‘2Þß#l­³í”÷ù؂°p-?å}Æø³4‹NßÎÈÝêãÎ'ïögfö «ß҈¾´µ•åßõ;Š%òc¼U Å:}s¿ïcÔÚÞ_š§™qßp7áýˆí~ŠçŒŠá=ìþ*6cÀ, Á~øà÷ÔmºÑAè= •¹nÝVSÏ÷Xé]õ§ Ïgž¾ýñw zO5›Õw=Öa»°0ú”Á×ÏxŠ{ú쪯ú¹-½ãç}‘ø<©¯Ê‡mwÜæcl³<=>N,UØ30¿È<|À +ôÙQ££•tŸ;©Ýìë®õ%Ê#ƒûµëñϨg¢æÎ9»¶E”–k¢ÝTܼ'pò …¦ÅƒFÕ{{Ða»ë9¹1ü|ÏîzíÀ0ljŸÆz÷ù‰²U]5'Á¹Í®>\'lÑ4㓰€!¯·ÛTxÅê_¯83s@?ÿ°gLUÿúOªVÌċFšT;eêÝ=ΈQö9Ì·.6‚¦êÚ¦Õãfã&äË2-t/fõ˜Ífnˆøü†¯78‹Â÷áê•Áãó¬$ۋ1ò#°Òݗª6aûñdz60·(‘GåÙÔf«”‹/½ÑÀ‘íÞG¦3¥±6;/¿ÃvVËÀ+¾¢HÒ e˜å®Ööd§¯NÚ¾EoÕ3ÛþåOa惱zw±>´ï̒#øçþ—?haí99¼ïæKÁ­±ôyÜÿBtÍnræFïúvÞ¾ÂÚGÜùcÜ´g{Zµ÷ïãÛÊÒÌKãÐýC!¸Gø1ü³1šT߇田\1áúrÁµó‰ýÖë{ŒVˆg;ã l ó—šÝœHõ;h7_èhñÙÎ(±ð ¤Þã3¼Œ7v}1]³Êr6ýäñ‡ãÓã}éç‡Ì–¼#¸ [|mçv7›Kx%å χ¹¦Â“ý °an™ËŒwd/ñν¬Ë~Ihü<ÐÃòv6cÏýåx¾ÛǙÇmX¹D_QY$²5³g?ð}è´N¾N*3wãæa>(wJÿí¿<ù侪w=ÎÍ~º/Âׇުç†ûK½4sók½ïvìd¾®Ïû· ï†Ë_êZφë÷ênîØƅü›OÝ˦j¢ÐæЎʦü û¦þ<†®õ8e_…iºüÁôû“Õ÷Šï&ÁN—¿7µþpþá„ý;“û?\2üpyñÃ¥Èï,Z~4üÞdóÃiéû)ìëïÎv?ž¨{á­z^‡0z0“^kI»¦=†¼•Wô +¬av¿ áåð<¾ÈG×3˜¯Ï_ÿ 9n?Бÿl×­|%7¸ùJ9Ž*«eßsþÔ¯¾·œ†ü£dCžM¨'FÙÙô,.ÏBÛÇ?û8¡í¶<öTé±8–ãÐÂùHÙM‡¶™·èNj±=¡v—Ó=w»vêï[¿#YÐ׏':Bßxоù0Ïn¶gˆyF¡õ¬ñ½^Ý÷#CßZ¤ö~_ëù?Ô}—Å3‡óK#о×!YnvªÕÍq¬NÍpE›Ñ†P¯~íÅø«x„ñûkÇݎïZõSŸ¸û4‘hmàö=„U.¥ãÒµž§I~â-vܗ8ƒÂy_Û#Gg(‘Ue{#ä¯?}ZûDÎÔ—§Ã’Ñ}ËHÛ¶^k©ívy »Ÿ´¸q7¬-öú +iq³ã3n¶àpœ­Sà®,=ª^âb0ܬ}éûÚHW="ì.m¼:{]¹G ‘7éâÆ­‡ûà §+ƒðÑá=Ì^9ŒÛŒ¹u}Ò9æ\¶_uPàŒ]½òù0BÆÌxÒ¶ó²]ׅ6^© éáT+Œeð±YÆ3– Üæ#­l‰Ó®|¶ÐžýC½µýC‹Ñ^åœFËÂ~ß5pF\wcIëðˆÓsD^g5F{„ˆ¿¯Ýsç¾úàeô¬à4€Yþá0óTqˆ`ªwbܵJâfΖ\|98æ<¿3:KËìi®Þìˆ#—0>ïQŒÑ@‹UÜûZŸ¶Ô³Î”½×/ùk·ÄPz—ΖóÃÓvã&Þ{°;a慏|_cíGXÃ"ɦíŒØ/¶ð­y½Ý«sòÉå¸XÑÚên‰´—ñW¬êÔkŸ7§;ÇÅáL5že"y™}íÆmÆùؑ£Àþ”nKFîÀ‹K~^{Gù–|k2^Ñ[ü©¯jÀÑ7‡×8wºý8™ì9DG¶øû[$—~]¹Eµ·mñqÛþ‹¯½ÍM/nìmè€4¹qŸg¼Bé@yïkÏ÷+=ôÔçòk.#;ŽՌ?Z#]uâh{1~>p¹v‹:oÓÎ1bƒêȎ¹cÐÍXr¸9BEܨà 3î1¡˜q?¯b¤w+~^/w¤2~›<·gþ˜Ð‚‡ñI'§–R€]h5v ´æç˜mܜ÷ǵ]ÆÞ}¬ñeä}=ÉÏk÷¨˜;vÏ6pÞF‹æaòz™›Ðö®Âõ~ž:åpãѼŸÎ#êôð{¸G-ãÌ +SŒvнµØ3¿Ì^V0ŒãôƒÅ «]WF[ óuM£MÝ|±?‚‡ç¸Q.µjlqfÄã.3«p‘<=IO~Ÿ‡ïìôÒèóqOŸgÎ-_ރx*ÊÿÃèˆë瀟å W£VYh¤À´pF`L‰Ûâd«\{„6GHʧÉ~‘¾šoN‡±"¬ãÿ_]ÇìµNÜA¸æ}8oþ”/ÜxôþÍ3­æïÓì>¤ÏF}déÏO†›|U×ðcušù¤!ev¤ÜÎOã§Óùø2k%F/Hç³¼IX¬ôOe˜¸žGÝf[dÁ¡/ýYÆÉtêØdd3³ç–Ôj4n¹ðšAO¿>_?nÜu­Ÿv…±…|bL‰Y¨^kYjÐ +OF]F&}÷i½¯­ÆCáUÅxÿ¢œŸf?×ñŠ·t- ¬Æ­õro´›¿9Œš‡y¶;eãç×á[ª×•gÄÙX“’ [õ¡aâaß¿*<Ì#ý®ä†³’G zø™è_ºn3´–Ã-ÛøöQF„ç[¿õ><èòKDœ§ºÈ¥÷K¸§„wîAŒÄV茗Gš‚/±oo‡ng†>=ÛC$Ëö«¼’Ó½ËõJ?r`êðë¥ÚrŽ0…ÆÍ¢++i*å7ßKÛÔE»î©Ï”d/‰yÏP–͐ÂM‘l—…šÄm9²¤èŽôæHŠëë덧MOrJª·±BV˜pìŸn"Ë)ežoÜD#^‹ÉºN2,3x,BmeàÙ9¼[wmðGYXyðzWàåÖµrÛâ<Æ÷ÆÆwö2·?•'®u›§•Š[õõÁ2Ò¯òX¿¯ÕhÛ{xx?wn^f6éÖêá˾Žsûô¨4 xþ~7³4Ü,w<–"?. 4€9= +ö´q`jÛì¹ã»øð!ÚOûù«#uÄzžþÞÃzÈv룱d&'ÆkòzŸ5J+F>¼_»EQñ˜W®t#b¼"t›–Ùà`Œ±lÁˆ=[½ÙOŽ¬®ä¥ðY‡Þ4ê"ÜÅâ®ösÿ0ž^`ÐeŽƒA7î]âH¨êw=øU‡ÁT>¤¯-»öeæÐbSGjù™_¹¥«Œ»íÎ/ÚóœE¬Npš'/׊ÃóëÆâHczÇö”ríìc,†–ñŒsüSËÌ&æmé´óòYn< %õK›ºöêáK3ãœÌ1:{݁›7 ó¥DþXwîº{¿ø9FÈò­.l›SáCa”×ÊÊøÎXöÚ¬pm{1¦ƒ2¾¨zíéïbB×$]ŒW$ð£e–|¹ÎŠXÀpûM&ióáxхς‹¿åY;b1x¼C/-+Ìyä+8¯“ðêôÒϳ¢b=5âϐË }ÌՃ}Ó²7]Üö͝»\´[Üö2âcÇq¿¯-Ÿ†çhÜ?ŒúŒlá…nmÎýÄð7ëù¥Á)¬h1^öé¾µ¼pûÎcðå?ãL‹òfñ1—¦Ü[ÌCÓ³æ\·ÍüýÕ¿7F^ÏO³²†±÷ØVÛ¤=ñɏÙUžcE;kÔ[Ña­£m´µ¬_þ{Œyáÿ¯×î„9é+¶;‚:ø@1_JR½ú¶?âûxk~#7þª“c-fêµ6¿wFÍÃÏx‘„¯rÞÝñ-X¬ç™þKE&Z ®vKËhþ…HBö6¯9ãÀç<֛™ 8Œ<‚þõÚNd´åWÿ0Êk¾˜7E1÷È«¼ãælÈ;ٍ®ÓyŠ3n¶¬Ä|ŸÿwÀkÌŒœ#œÝßØûZyºÌh[zãÀÀû¾Vß÷©iÍÃFãnÊú=ëIS–‘·pŸÇýq­1¹EºÆýa4J’G(æ3 ×/áIÏ)ÔÏÃxÜû(F\ñžxñ}íÁ Ÿ©²9"ìæˆ^Zæ0.©fYü2ž„ ¼Í^ïò‹P˜[®ƒ½+Œïâ„#ëEÅß×ޑX)Œž  ‚F±jé0ƒÝ㝮*ó9îÚé9uÛ \‚ÕxD)O³ÏaÜ:n9¯•iƁ +Fn oýú¸Ö\l'ÌS»¸QžŒùŽýóÚ»—¸Ì2šëçÚ×KÀl¡C1›ñDY:zMÁpÌÊHÚ ¾¯rdƒØ8Òir>Éøñïk¶éڞÇËæçDü¾˜éÃ3ÒÛ»"úÚøÓ8F},óíu”Ã6"Lª:qí[ÃÙëƆq‚ö¾Öcé¢Q+>ò6*Âõe&a‚CŒ’Œ÷䱎C ¤58¬ Z;>î¶ôë2Îup°¬Õë|¥2‚À8nm+F>„gºm׎Ȟ7ÀØ\Æ^v¨Å|v­êØ8$¹VmºmÚ¤;Æ×ĈÛq#zÕ)bÊ z[ׅ±éT –›†7k9úo¤óùØöXrÙq[~#ÖL¶ÃwÄÊÎϺî6[ƍÌ]I­Ü¼/éáP˜ÊöâÓÄ‘W»;\òÐ1·j‡n1mÛà¬Ngóvàû62k¿Y¯µ‰ 'îõbœáfÒì"v®teÏÊ*Ùvëñ +· %¾£^›ñÇ'¶,˜.݁úªEˆb=—˜V‚BÎè3È6‚=YFÎÂ[|GõÚÉI´ÝÁˆ±ý2–G¨æɶÌq:áxyÄoy‘ÇUŒ¹܏ëãZËçç>´¢aÎó:Š1×Q3¸r-=ÛrBx='ìç[°BG;ñ<}úºðÔ¼Œ{ėÇGÔ®aÓ1™î䗸ŽÔl!ï¦^ë¹¼ôu¥ƒb·8âg!·Ì‘ùЍ3úÐÜæ[;¿3zjX捗pF> 8˾ry©¸°ñsÑLåÊ=òÄ»P1Ëèás)\Í^ªîKݛ۞îêìWïð—bLwᶏk-’yc`liüØU²Ýœ‘\(¦Ê;=e3îSSðÉP=v̌5²S_á3BøBï šÍlx2Þ×"2#—‘̳ˆ¿¯„­žþ$ɶX\ê¨í«~/=²‰jd˜DÓº{áí3Nb0U–k=¹ÝYý2ÚöÈHe‘•"túnš)‘ùï_\mM¹Y}gè>¼ßôÝx:•˜BñcfțOóåW£L|x˜{ƘQ+‡£ô‡Æ¡ë|Ƭ+,ãŽÄ5HWLËw†¥¸N_ÚÅ:ÛÆàð€ôx®3·€·þؙÇ{ÍsÏbd:Ïm~\{åòðŠÍǧñ:ûšÂ–™£/½Ëqân¹¾^Ž¹&è?«û ó5´šÃÙÓ|ÁÜ¿3î¹î»s‡Þò¤©^{âî·/o…Éy²þð³47<—~cی#tD"ôhà–¬~÷ölÿèŸÿéËçGÄò?þϊZ¶D±êqà¸Ñ©<»ËüíÃ|D8Ç·F~ǜüñï'Ù½Ècql'`×C"Ó]pŽÇ‡Î1Îʍ]¹ÌAö8¼ð(²0ú|nÖ*òýj@»»®ör“ѝJ4ëî†=võIçâÚXTlçáLnô`Ù¯Þ@øµ0;ø׸FbM`·äî’-2==æQü:Ü®-–ß#ÎY4ÓÕæEßè\Õ!§ãÔÍú²ä›ÌÏÝöWï<«Ô_¶}¨{• ã¡=ΩQ£Ý=B²Ô Á^>Fø™Q̆#ì¼â´$¸z¾àk×µž"J Œx J>õû#ƒJ.ÜCn\àåÜØ"ՂW]j{6À”&)ü&³œ­Ö㿼ñ ÿü‰1ÌxÅrȍžð=ÚµD[·nÌ=ÃÑÀŒõ©ÏóÂ8¹±õ`WTVˆ!ãyÐcO'†yM·htD­çp†EŠß€4õë~7ܔfÿ}úÍî{äï=¥»†lã÷÷ŒßßJ +èFOˆFs{GrÇþ–§Ku£§fõk!:–ö ÷–fQ-_A›1ËÔNyvQ>àٜ‘ÝiŒ9ÙÌW@Mv¿ïC»ÚVžÊ¹F¥Œ°oì&ÉSÉ6è·FÒ]ϔ1³ç ñ·½­ ¨šðin¼ƒ¯|?²Ùûý×¢Ù=Òz®N ã‘è’-c¬™ìHRbæg.Ðín3Ú›/¸Å ]é}ô&/ž×)x­Å§{Ûáå5y°-žVd¼yw8vân# ßŒýÚèñX »qt¾1ÎÀ̬vm$qrsèR…é›ñ¼ÐŽ9AïÕb_›Fá˜íø®gp˜L~‹ñéÄq‚g;ã Äþ6ÿö—ÞŽ<./L“ˆO>Ý+g]©;ðóp D©„.^½Ó±it¼6î »`Äb÷%QŽ>ŸÅ¸)¯º¨ÈQ4c¨G«S£hŒn”‡Çõ¼³kžkcpw/æŒÖ.dWúYuôkø4íÊL‹?•N'½þT,šÝÉ ìzږvϾ~}Lbvt¶jƹ¾iŸeI‰øjî)hQ@Ÿ†Xz à{q¼àº¶7b™”ÃÉPƶŸ9`‡lrÒمç©1Ø÷8,W³ù{ù\ÊìÓë ê·40·ƒoÞο8ø¯t>bÉÓ=QêÐ!“YûÁ øٓ½JÈgZæ¤q)ŒìÜeòÁ„Cpó|{ùmGˆÏí5ÑG¶s™C£èŒ¶X„«Óÿ؜ôLl+½Ýž+èUo·1d™ï=m,ËòÈÚÍÎò(»ö²:äŒ/ϗìF?’>¨kï8£Œ®ÉÏ»_𘤊kfå] ¿~ã$ó?54{tßL2«©â„›=`/Ì÷M¬•obýÍ8sžñÀ=Úuc …KÝح䶮U†=˜MóêNßöÈ ¸n,Œd>»})6#~éŽfî=!$f\S»B§½Ñ#'Ðõnˆœ›¯¸vîï l÷ÑÓx_ÙÀâžLý›ÌrLj96fЉa¼w^¹‡²Ñ¬øy¿š'ÐÑ@ ú_ƒÐÛ³lànèÄ¥µ…å·<šŒ~.òÅsšyE;¯Æ<¾ÛI¡éfÜÛÍmŜғwöQÐÏlày£ê–¹}aéÆ®GÆ%ÐßC%„Â|5EâlqìlF¢Eo"AÝxìü©ƒïæ1 ³ƒÒoe®`I=Zø:Æ+lÓÌgg²‘K˯Õ6îÎÕ _Âh¬ß‡å|¢|®­8ïL‘ò=›ž¡÷l¯ÜZZ¦Ô£—¢ £ç‡Uϲ8±dƒoº[!ò…(ÄÇ[|!÷)Ǥ™½~l´Ñv›%pM±\kƵäñÛhàÈÅÅ­œ’Ïpɐ´ùÃxtÚNœeÂtBý›Ì–”Ûj´à™’â¶B‡{¢eó0žhöÊ-c×Í÷ƒî#ÇÍ8A€í·¹\‰[Ú Ü&ç +ÊFëÃ}œéZº#Ė–ÆæÍ_Q¨4ÐR|(mY<½r­»Yƒ™µë·.žþÔâÆÈÁ–K£a碼”ƒWFY/y°+sNòÕ- ŒAö"­ß0SÒò”n–&å쵸é‹ék%:ɱ¾£0záÚÚcŒ›—Ö¨ùúhàÌî™N¯qãu7s„ú™±çr<_Ã]Tš,òa>ó;ºÕ7w^_oGÆ~æÓö±˜S!ì‘áö1v |pn]F¾8¤h çžèŽ|—_<爐.»V;-Ë%_\'ÈÌk)¬Â“–ôqòÇÔá3CsîÌëæ Ýñ=W·\ÎñÍYºFâØÙÄÚï'SJd#tãž^$›p£;mõRÐÍ‹“c´“ì‘ý:ªv‡Ñ=lš¨øðæ–£7qWn<£Ð1®ô¼4@BDûn]ŠË±GA…/ž¼Ò«¨¬Y"~ß"¼ž6Æ¡Õ躘Qn%/š[²×_jù{˜–}Â4Ð +£âÕÍ(äÒÅ#4[äH_*óMfOø¢‰*žËX°ƒ{(ÿ¦Íøü'ѬB4!Äà´\빶ñÕh/mv{䌋ŽŒ^7` ÅÝ娲ä!vM”žS$wv蹆QŒ‹aù†²+qÇhÔꍚèà=î€õ©ÅG”;h9蕙ôL æÎM¸÷ê‰gh oŒYœÓÎkR¥;öU«ÓÑÀ•~¶ÔÝZ1¸©¨òåF<J0I÷vägwѱww:"¦vÊ}`k`ͪ¡ßd>(+÷j„q¸Äz×ðºËr:Qx¹Ñ¸4¹N½h­Pc%7m6ڎ2梛cr=½ëtîfº*_^/ž=Å¥›1j]çP¢Ýk¿aÎѬ£53*a‘/]/Ú½6Nœá¡Ýµòdb°{¸ÙTt¹ºìO¥ÃѧdP°‚ku¿¸ƒœ¯„wä¹~ï$ékå:mÆ:›¥ïc\.¥‘ËÙÔp(ô@žÜxœ9µé[îÁÂçb¶q3syÚ#ë]u2ݨÓÂ÷`´È©Q¿Sµ:q+æߍ¹:pÍ"6£ŽPk`ä 0ó¶vÄzùåæˆ*µútÈeł¼GdEI?Þ#=¿¿sQ®7æ,ìs£þÒÁ‚<—Þs¹ë{ø†5—yƒœ?n^snÞìÈu~éÂå6ðaÈ›IB¦€Î¨I®W[•¹<ƒÊ1 Ìç :,´oŸ³8f°ÍfŒÌ€1¸Y“šù^Ã{NQjˏ˜#ьŽÜō‰š²4LSëLê­ÊÌôêC†f9d» fÙ¶ºFSÒ!«„"'Eÿ…éÂӋï&ÂËðl&†=²Œyñ=w,ÍÌç)ÿ“™p×åÖ֌lA´xæç3ê×gZM½èaœ_A®„ܬõIWÎÙ0î|ßMéÍ·#×ô*õ ‘µm-¾x&yñ|§¢¸ÂÈ)XÏÂ5nfO¶+oœ!~H!cOïÀb•çDC3R$lªžÂ^fÜž >.·¦/ßõº´G°V·µéZŒšù܇Æû®ä,۝Ëé—qm—sÍdfß;«c•¥ëŽ¢·Ñ€Þ띴@K±Ks®$.Ų¢÷–ǤÑ>ÓƒD›ÙW÷ù·¾ÉZF†Íöaö J® Xs#»f•]Øz„%E«ª2æÁ¥N3[ª©âPÍx¶:ËЀxWkWñï[O)Ydá®Ù±~0 Œ(—3%¬Â ë‡0<Ý=süâ³øh–µ·­&’úctvüñN¶Þée¯a’(ߞø¢–gp}Å7µú´÷€Äk$2ôÛUvÄÒjM^o ?“‡Û¥F8ßWz5îh·'`·“9òì‹RٓRéäٌ,p7+Č{ÚÃɨ¥E&ûŠL©‘g!e)ô4À2µg +§¶ç‰@WiÑ@•Ž»#<ÉÎì¹Ò.½xäyÝ" Žò×XØÞ2!VG¼å÷én•GŒ֗ëÖ7™9ž\©=lúŠîÞhwk¸þÓsïnr끴{Üy<·’æqêªÓäµÌ8œ¼¶…#þàçe LRÜÚÈ»û‰ß“žà&Ð5õ,6‘ÎHNÖG?ÜvmË SPe Ù\Æh`/ÎT´DFy™ý$MçÞp‹Í5 +,sZ®ÞŽFÏãNwJ#M½ÇEjëùû³åïçIþÑɨã1çƏ\7pZ L'£`ÏⅤ¸è +; 2›gyÞlc¢u§ü7™¯¥öj§˜ íááR:CŽ®:òlMqöñ—Ž ˵i‰-E=û*kq²íä4k5HŠãåÜÞ3¸ýù}–U‹þö`úsŸeÞÒÎj}Ï?»å$µs¶™1×3íéL@¶ýáT$Ŧ'le)¶o^j×Òxò1¿¿€£|+šâ j=-oàR¶hËeÛéÔ;½gfnkæ¹àg½~yy<É7ïoÏU²çÍŸ–òmسê³èQ–›¶‰Ëû–ëÇòÌ+¨Ë˜ y â=smyÀ0®ì.Ψé©úÖn+*¤ô@aŽø"¿«O“­ŠÁíovç€ÁÍZœeè—7°BäþÛ³Ø[…N’l+Cª»È°å†Ú¯²‚ò „hÀòõæéý8IQ×;k¶»&g_HˆTó¬ä3‚Nèô™§ƒ9•˜:¦¨œÍî2MO¥1Ž|ùìûq¾fåµä -OCf'¡ÂÞrŠS¦ý..±+]bÖÀ`êHʯUŒVI¿zSŒÍŒY‡Ê3v//Ӆ¿Çü”ò»xÁ]´ó.|Wíæ÷x3$Àc~?êßë{T§‡'H§ +㎥³iàÙä8ìðõwÎ+ùü­­uö«–ò`W&µõoõ½¨2“H‰å‡Þg9Î”¸_A[¿î'ñ.[N¥æúËxdR4L{Åüpcœù¹¹6ßë +Ò*°¯­¬©¢È›IµÜ;FyÏ<‹Æsg—öN˜6؆_œ‘@Û Õº¬j7Þ<—ûhvN‘Ñß2ÝfÌ©%™ç~%ú{a¶ŸgŒ/õWƒ1ÆÅ¥dGË#g…G-Y'Ýí7™WäÙ±Rlo;ß·²{VK"—Щ†f>àÈܟôMæ5Ýq’æ IdÆqf ý ½§R÷ØS0h-“ÃA—Õyß 2‰D?ΚÃa)•ÝnÚ#S¹î¹Ïp\O.œN5…ØzžðMâÑË4€R_™Ú£tc²~«ŠJ¸‚V¡âc®¨3¦;ЩЕe(ì. »UúX—®šc债¹,ãÝòÂ9×ï“&ñà Ž‹d¨;é}[ž»_Åä…5‰n'¯Ÿ×à&„ܽŒP8ŤñÜ|a.l1cÂQücØxÝ匁â)®ÂŒðeW’ÿ¦)zJv!Ùç2ÞÞ3OÆÙ>L#,FF¬úµÉR!…|qíž÷ŚøãÔDeÜºÖ l{ßÄÎ%”Üàž3×ßs/¯–´Ä*ÐjMH_FF·çô¿è¬µf9 _©t– æäɊQ¨³גÇsí26l«ý9P±¬çÚ~ÞQ\M/w²i)~4ÇB¦ôùçÒUËÿ36Œ×¤o=Š‘Õà5Á¥à㻏– ̵×î™U:O l§y¡^qâ[nUù³Ý£%^ÏQöºa›~m~yœ­YíËì]ÍBæYÐ,| ƒÃ7ù•ÇpæÑYÍ%ß¾ŒH«ïñŒu[ºx2¦—¦Æãp²›O¥°³‚——?R~P¦“>Ä£¶çË".ÅžæÇ3_©x¡“‰-„kô ]%õ‰¼ËGƒ‚;î_ä¹|r—¯¼>çr]ÝÉ¡Ù§ã/&—öß`ž4háqÆ>óKœËœY§ûÌ¿NÂXlÍÃÁAF6_©G϶Œ893-Ž*lè̔–QRç/ÄÀy +֞¹]NܨFOQrráÞÒZZF³é;³3å‹~SÖ.Y÷ ‚]æC5K,Ü qÇ +‚x.Ô³z ñ +p5gœ[~“Y¹#ýyu†©p£ß¬ö›àì0晓ÅLhQwÆ*è‹m¬ï†$¦Û™Ú¹8¶3¶àñ{qéÆ=VƒõèäÌÍ3wê2pÎ½í™ ñÌâ=ñ¾É€îɸh€*gzà Yñém-7gAD-÷&g$púò +üy7°9ºÐ91bÔûyîï¶jÑʼEz³,v +(ý@í͸&ŽˆŠã»Û3Ôì.™åµ>°(Qå.ó>Œ€.ó'ð$ß<$rFlÆ7™O‘×AŒ¿øŒôa<Ï[ ¬(Æ=·²™׌„Øœ¾“RXó6Û2oAÔ'Ÿ‡Šy wgù F„k_ç‘c<Ì̓£@¼eXß³»Œ½w¾Úìׇ®Ð¨ˆnǃ›cӃîÖpÆFÔ° û‹oF™P<èþ¢ t$ìÆ|…áoÞîE»ªÝcØ Óqža¼&üÌa0 e[y±Ÿ?H*çÃX70òèö\ÕI |8=«bX’lœ«Yw•Aºã(Ÿý™X ²Õrš@@œÀq@Âïááí|}L®Uŏ3¹Ò‚@ËIaæ[ÞU{°ÀƑˆ ù§b£¼ƒÅ¶o¥ÃˆsÑIGFþž ×±8„×Oº£,o×îclΌö{&)93S¶[OŠIør!¨šuhpÆ©Û§îfV‰ÐZߌҗ¯¾û Û@4"æԘßIšR®0>šÀ£XžJœô8 ðDŠ!<’ͽÊ|¬üÀ–Õ`^d•©4ãFzV¯0÷žAXÓÀ¾¥ÄE ºÙÖ0T «_x£Ð¬œ½Y9Å¡z²‡ÉÐ"dߌŠ(; +xay,¢,¬Ísq6kI3ˆ92dÿIQ%Pü¹Â=00ã ú‡QÞÀH1eîò!ÚÊáŒø†ù$½¼Ÿ`V3+GÇcÜ.îWeê¢vòÔ+ Ý÷w ”^–ZôÎÈhÑß0_IŒŒ Ÿ,+ ‘Á"o ŒÙÖ!«Z ó‘釷u¢Û³ÄúvL¸eˆÆ¾xõžŽ¨ÝÃQˆŸì’?ž€G»rawö ¸ß0wŽcò&®Au;؉9ðê_Üî7ýÁ£t…{&“¹g8ïJ;Ý/B‡œ`ú¢ƒ¢ýÆHðº™3:U Vœép|EœÛ÷7ð5ïŒM™âR¸3V1«.¢ë£K(KœÁzÉâé`Šc1ÌñÒ¹òìãïsc–¨€^¿anÜXÏ|¯ûɉiîmÅè'¦ìø×If&MÞõÛ³J¾ÿüÊt·ÂU®Ls7÷Î!ð–;þ¹¥qå?åd®—ƒód°ÊE„Ò¨"n–-ÿ¢ü{Tôûúƒ»Šaì f׸ßd¾f¢¶à\©ÜCðíǍ¨õ>3±— +·ÿ&3Ò¾8NËC1h¤L˜é¶¬(¬5{s°¬bmÞè½ð¹ E¾¿%yë{áê|aþ晹#ŒUø†yà¹sÏ·7òÍKšÿ‰É¯¿¯òå„Ö¯òå²x\ÅÕßåË?,«|yót„%ÌPöw;ÞË +æÊóƒò,øTZ ŸYÀü¼v,ðCÁ_õ{*»ì iQ+„Ùù7θUÚÆsùÓÀ}s-ѱ^BýP O9«ÛºêRÀ±ÃA@ñ4¬kï_t÷i[õ›¶Î±?Ê`w•¾Uy% X••:òDÁ]ckƒ1ãœ9al„‹/­¤Ó´0¾­Cn‰w;Q½Må,´|#hɍÑÀQ©”u-)z”t +ãž1^«Øƒ™S«ïU@çÌéTó …v­Øø9î¯u¥­ÎÐTß|UUh™ï¬í[»Ï_z–íiêïu-¹Ví<ó8Ví¼¦¬¡6ªç9¡‰Í¤vž%ým½ŽsЫ‚Õ=s tȵ³ðòÔûþYÛڎ"ÈsWRØόCÛqþ¢âXq¯Â=G­´Šü¼+‰rí‘'u«ÈO1ªúï¯?}šI4ëg¬_‡Ê+x}^Ž´F–b žòûZKÈ 1KÅXˀ½Ìy[žÜŸYHûe2ºª]Ç÷F\GÉÀn§Zcö÷µ^ÿ’ÝçéßÆU-«˜/$ɲƒ_d–R:ž(S›¹êhÛÞb€‘×fÒΈ&ÅC¾*†¥­ƒD _ì2rĜu«eË>W|~^iÁ×öѤ¥(× ·µÑ«E<µû¢£¹¬XE–ÅÉÊ=6¨@ÿ¾ö’OT0Õ§±Ô¿¨æ,4”ù-dzE\Ä·£åX¬Q@ƒkÛ$&Ͳ_ím{U/*æR½¨‘¿T$²HG…ÁÔêE«Gâ¼Ö¼h±ê\ՋŠ±V/*æ­Æ¤{Sre¾¦Ý3ÐUc4°[ ªþݵ[¸³¼2°øZzïjbsëCQÁ[„ð}Ñâ®dåÔõ3Ä9Š‘—pJ@˵–¬œ$è„ؤÍn•œùÅÚc¹ÿ~؞…/m£ô,Æ_sË•ʵaªÞ¢žÂ2šRg5ëb¾r=e!ˆ±•YR©•e™‘U´ÊµÆalø|ÉðiôåE4P͌kõ]=éÓ軟¼ƒ4òég›89ôhŠ_ƜSö–kOÅ/Øp:÷—©V3*Fj%#õ‰Œ]ÒÚ©Ö2j +0y_kùûbT­úDÍ£G1Ò}›VåÚ±Óq[÷Aq*yoe5þ ü!njêaTÞ«OÔŒ"¼p|»V%Ù=orŒlEöxZz…ÎåTk™âí¶ØVS…Féc9àWaÖ'ô'¦D÷Hb%oŽ¶âPUbô8—™Ñs +g֔xŸ)櫆9¨¤Åq/¯‰mý⛕ñWùš”ï©^ëEjwuvŠñøe•ÊZÖgXñÉnáÖµ)ZU=ö‹g[}%n5ŽŠØNJy=Ù@àL“È÷—‘—;·(³®µ¥åìªàq©îP1Î÷èùØȉá­(l +ù&ì}ÇÒã¯9 ~p­¢]Ž¬ŸèTÆTŘÌja¼ëFGDþÂsx.£Ï ¦»ÇEÀ§}A»Jù7’"ŽGϚƒŒÖÇ ¹WàX‡Œ«ª—©–è…-K›@”¡3ÌÂ/ëP¶c‡Àï—Uy]¼øùäŒg)ÌVÌ-ƒ7£†v‹‰/ k0¿’#¾­z­÷ňÙÐCYßÆ=J³®]fv“FüƱ¡M\Y®HI6”T¡åJU°X ¥O£GæÊ4͛j6ßY¦ø´¡¿ƒV7eÅÞ1݃¦¥èR®h_sA5:®““Išs¼fÂkó à*cë&¾K%)[×íQš4Úë[û0õí-ó™Aû&ÃjÐl-­¨Q`\óí©Y¹vfí¢ƒ”WÕháôYâ9ÍF—ŸlUöNÞû¨]tÞŘÎÊÛ{ª^{üB¹ÂcfÑeLNSÐ}³vøIæN‚ŠeŒ µ]™Ø¾âçÜü$Þb™O2[P±ÿŠÑ†iË{_V?x7ª i}dJÂÈÄ"€¼\kÓUˆå¾g!µbT´PNm2g°¿Uøž> [°ô™Io”ô #bÛ{Ü@¹6SÙìWbe/£s ŒÀb¦·ª‘¬ )ª²ñ÷•äûu%·jQê;÷¿Í³é@¹ëµy9 {£ÕjôwE˜íÃÒº¹Q +ÏÞÀ}0ˆ†ÆÈÔz¾^{pÚfgÒ:E.Æ3€¡ôöË|ÿ²­Œ37ã5J©HM¨7V¢Û$jϜ…wËzðª¾)>°9u‘ °–¹Ç –)¡b +ñãŠhõ@¼Á$–G:C› ¹qrfŒéî‡è|׆;•òw§jV¦Ðê‡}ñM¤âLÜw{ð̹ø´¯ýºÑü3IÂÎ?ŒlxŸ©~|wí{H+¶BàˆÔ©¿tœ‹›ÄopÄò:ŒJ§w(®-Œ’0âS>‡kƒ vcÖ +ÆQxD™>î@KR“ã‘w “/‡xfÆvÌ[ΖýM¢Œ£å¼_úµ%ðý;PIsµõ¤#reüö¹ï¹ëUHÝ>j±Û~ՈÃUì^kހ˜Rærߜñw£¦ë\x÷£Œ~-Ì ¬º„[¦33à\ÚNG®×ë¤Ë]éïì‘ËIžÖ¿3z+_™íÈB•—öõeŸ‘;틜֛®ÜÉíŽà¦k³8qíX’Ý}ÿ~ÍÐ<æ&èW¾XzùÐ3ý֝:¼$È2RÉGy9].×µJ¥îF¼é®†²­Ã=µNN^ƒ²¿º“ã}ÿ_… +ûÿÇØ L¥JD(‹Oßýþ GxYtœùnG +rp‚§¨Ÿ`g¿É,×»Å!¥§˜?vmH"þ6Ú.ùן>Í +µòQhÁ¿ÐŠ +}ß÷büUO{Þ?¸–jÎ=κ?7Çooó¹ïÄ.ëÊփg£*?+§ }c3,s>h€*L/£cö4€yÕH§«M&3¢ð¯l¾’¾³yxî=̹s­Òj—ñtGXÄ׏avDH#ãH”£éXL@¾±t¡j×ÈèyµšÜêµé Þ³D³° ±EN#?ñPÚ07 +;´fã¼( >ã¯j oýûku¾únUIö=2^GhcÙST~Ǫhpì녛KmžÅ Ló@ïk-Ã{,Óä…KËåÎÿå2õëËPþ [7«€å ,sã× Í­×¶ˆì‹V‚;“í¶ÆJ(¾qšî+ª ݀²ëé #®#.²å}­’û—FM7BX®t@Ö>^WæJa/LF'“o\î5öF$\ÛsßîHÄ}³׋¿8~•-~~R¬\¹>…‡¿Šûç“Æ|EJÔhT'Gå;_CÜâAÛ¸r—WQ`ü{¯ Š°L®¤ûÏ旁k\N$hØ3†QðRѹ6â³!êQÇ|ÙN<’²Å¯ Àëß]yk×öc[VÊþ0‡ßˍÝwR}@«LÏ’¹áÏÿ‡½w]Žã¸ÒEŸ€ï€?Š°#6à¼UfÖè—DÙ>>A_Žå™ñŽ‰ %lƒ-kžþäº|+««A±»š"»Á¶C6´ª*;¯+×ýCîhzIì;ÚQzì'Ä ô”Å,ʹZQJÃNØ٘'Z[g}Th[êBMßíÄØë’wb’óÌAÇeÁ ´Q66J¶YX!JE¬(«ï±¬­ÎÁ”èawš’5Uˆ±8Ø)¼ÎlAÒ ™®h J! +¹ŠÖ < n»U"g:¢NvRZvúc¸Ä¿n %JTÇCD†É»ŒÚ­3 Ø® ‘òÜõóNDü¶V/,#J)h>Nˆ¢;;TáZ}W³Øˆ¨õÕ(å°f ¬Dˆ‹H]¥ÊKªå; Š P£œÉLkB¡¯žŸ±[„j>ùYb˜Í",É!ów&Žvk…ü ¦*q;†`†6Þapºì©Dõɂ™T1'óê3Œê“ OžÄÉ®¬›*‹_}—BcÒ¨|Œ‹±¯§ò+dÞÅB¼&vipÀ‹Ô`q0í&Z½`8k^%~;«D.§ci'›Çg$¬míVBÆ@ÿ)6›“8ډDö';…H„Ÿ‡‰#k…Œìšàdúœjn’/Úˆpºæ>v{×àé}žÓªÛähÅTû¢j °ôGP‰Ðª³žâÉ»d)+`ÇèDD(òdôAîDëÑYYJJ’p†l=J͓ëL‰ÊÈs/æ°B¬CB'+ + ÿ˜ÃMn¦œ€d‰éÅ+Eæ†2{×<lëÕ¦RÎ⅚Β”Ó™¼-IùaâÀÍùû Õ²¤¹šøÓiŠ""5 Riò¹ÚäMò1U½ã-BϪ„‰·ˆ¬!)¨mފ_RÒ­›ُIe­Äµ²ún¬f™ÎQ-0árôT⚢›_ë¤Ä^÷ۈÕ.Øs­…Š§ïêºÉá@De;“Ì59³a§l›CÈjRGÍê.60VafÄ ·ò®§Ñj« ¦iÌn'ÇúWÎìÈbìiÍâ…N¡阾kØj]gã•ÓåT¿ãâ4º‹M$b,¦ ªwNJŽ•  ¨Áiõ]l®•V5»hªãòîT¢jËíê ÉŐÄq?4¹ TW;ñnDõή¹ë½  +þÓnG"h@y«(°wLFØÙ°øuPjŒ°aNMÓ㫙ڝÈVr¶—kM²)q$S3Î?È®êU4Ϟ k´Üc©;YÝðÚf­aF È·ó©)Ów½ÙR¨ÚŒF†{d€x¡ëÉúúê»hbÔªªX!¦i }'3‡¶ª¼¢ö\€.5ªI<° %L­~.g¨5½kþ¯lăõ-)9ڎФ"r¿«™6ˆO›‚{PæÎ[µIŠ‘µ +È·4?æq•8e•¨å§ÐÈÙ*t`8`ÚÉB>Ô)ÓY#]í]oÙн–ï„8¬M§‘á&§Ft¨“¬ÐߘQÝ¡˜•z  «ï¦då…ÔEDÙV—fâNêåºú»+D+L9%öøÉ)Õk¾g¿9uÛَҮ*S³•ŠÁ»rP!–2#˜S²Õ°ì ò°FtÊ[¾Òˆp<:õVãXߍl˜,֜È¿øäÉTõF£‚ +q,N·+§3á¦F–z;,!¢Ú%² Bw†M‰5…É.62jɳš!é9Áj †bØeJœ]õÓwƒ!òz)‰¸B¤ˆÂÞ@'çîߢ4i¯Á1| ¨´'‡ ÄÙU;}Wƒµ8¼ƒñÙV‰Y +.c‚ÜQ Ø?’(ø°2šÏI;&rØôÝ<ZÆ°F䄝 “âQƒ“qcuÁ(’ä4ör´ˆæê×c¸(ĥזëD.mŽ!t²Æᱸ4X˜zèqK+[Ù¢O¦ïF°ÃØ+ÄNi¬C¾yâ9´ß¢à¿q@|vvÚW‘Nm–Êý]º$¤lUkUkmvÒ 5JL¼$…«1þŒø&TÒ5%! + Úí(òñô]gñXÞ´–"†EÌiäz½ŠxI9s$büï's2b@©r–ÙÅiÕ“0ñc!vwh“ÐåPDºýD)ž©ßÆåƒTS ASãxÉg+×/Ýú–YA>r):z`%ñ>©B8°RŒŠ¬=֒Ý\)ÍÞSX ³5"q…èû‰Ÿ’-DŸŒø£úmMmš'êE'{5˜óÒº™f̵NÄiQcÝô]5Qó¡Wˆ\¬ t2Š¾«×†iÈUY!rùi뀒ûº‡Û÷d)6dä ß+*Ïô݈€ŠÂÀ´ªE¹ÁöՄ:}× QæD—âh €Lº +ãæƲ1"{D…Bã:ú껥 ®Á6AÄ&br—¾dpcoÌ'–{{:ÕFW‡Ð('ïfH«āêìF¤#f™Qrí従è‹(”2'÷ Â2蓙!õ]_ÌØ3JTøœØ¶n¯L¡µ¸PiFˆUÓ£DÓ ûBkqÅ4¾ÑÔԘ ُ’R4@Z‰°"*êâä]Æ; ži©"QB¹A„‘Gæïrô–D:i¶Ì„˜Í €\ þ‚æ !?Ø òªÄ,‰*‘-j”6«Ób¸”V2¢^aÔ<¦"džÀ–ØÉy´ô3°½ +‹ÙŠÌNù.ÕîLf7 1%5ŒyN RÍwfM¦ðï­°«ÄZ‘XÍ+ÅãûN¶ +AA–øö¶T.³:‚83NßíE#ƒE¤®å t2°±&­†^ò¶£Tvš÷ öBÿq2±ˆ©%&SP¬ë= çDCa»ŠÊ¡jå +±]—èÀ0“Fð1ÌJv å0”ˆ DæäÝ.¶†×ljg.Oˆ`¿^î…é»”T´*M¬Ÿ@Á3G©CgÚ»Nª.ÔiíŒ"o4 ¿;ÈÚ¤Hü +q2„)1ÈÔی’‡€`ÇDô ×Àû\¥ ´Äå„{¢¯p ©Ã()rä)¬sÜéT©ôõ3U?)2vŒ¾ÉÕG1íÍ š*yp˜ì%(@ˆÀbq–ÒHñ¯ñ¯¡`¦é8À0£÷»ËÕ¼¢J1"q-86VÈoæä¤ —4É«qJDZYcò.w #ÚϏ‰ãšÏäÄü³Ä0%vg¤è݉vk­SUp¦ã*(¤>Œ:T+³åTœ¿«ÖŽÉ¬ûzMÈ}m¹[È{Â.pf¯XÝ1]w›ì®j•bWö!ˆ³= rßÞ&MŽAœ€¿ÚqÞJÕö7ÍVÙÏ ã™»aÊ[fýl“/_© ‘«?®r "ˆdò®ÅTw>´J4žµJVþF­¦¦Üe•8ᚫdå°D v(/æ¾®óíIìÁôÝW. ’86‰•QHVtrå]Ô.͂ØpÊ%„;  W”¢²XÑ€»¯ˆù¢‚¡Dùž4ÀÙLÞåÊ½Ó q•È{ t²••{f‹U‚9S€òQËÅsqe‡ÊY©hmc­W*†4d}ï= 8ÞI«Èâu^’++‹Ì@gïN‰UÓIpJ6q‘Â}r@y+ølúÁT%2*NÞ5©¿‹¶«DƒWÉqZó:k«Ó2ý)ĉ _Ú'§¶‹÷SâD˜’Mmà¸Uv{ )Õ×Nf¬ ¶ +‚[§ï¸ú£âK_]À½ÁD A㫦ïvÕÉ D•õÈEŽüm51-:« ÛY§Ð8¿J„ö‡:Y5Å ‹ê:% 5oªò¡‘í9}×Ě®ÕN‰ xBîÚ2GˆJy)2‰ E"U‰Ö;–½kᄰû˼õÀ4`"G)±Ed1ÅHñs™uq(ßÊȃ`"³ÓØ×É»v˜©Ղ +;q2„)yô 1‰Ê"؝!¥œ‰Kªþ«D0T.f°únH-&jtƒO¢M¢ð¾Õw1³^ÐbæDFæ«à¬AˆE4º=k•Èð-h “±a7ÓfŠæêa¤ÃRÒê»u´L³QM‰Np²fÉq”9ìvÆU¢Ù$WÉj¿ä¸æ\»ñSH.Ÿnåðeg2ò‰eÌ®Ê:‘³0{+ä•ê³å¡˜‰˜ˆ¨=5's²E½ÅÞí¹bmW8#6¹0OˆÒÀèß黫L­j¹ç qb¿Ÿ’Ù°<êE+X¦>ë6µÇü´ ±õwGÃьc¿f:qâę’³`](ӐúyQT䧠1T؈i).×ôMÎBG9â׉lùDÌEr´U¨DNÀ+Ъ€p =ÅQ$ÇáF³ ü˜¥š×œÈCÅ‚¬öqeƺ * 1'¡ù Ê"V*^gïˆkÑ c§D…ÄÃFÙBŸ&û”ÿ^".…HÑQÊMLßM¨7ÔàœWdÃ4­Má ßAÓº“t?u¨rؼ¤Mß­(ÈÓÝ´«Ds鮒QV¾ç7tG1ÿ”G)s*¥ïÌÍlgDEuUO‰_à*Y]àÓV¡{1‹±ºÕÐÒ&I;“7yZQ‚¼ÊæžU’ï;Yln§Ód +*d"U´èçƒ$nfV¬pž½[Ä&W¥Ê|Ï2L®üˆ]ØÉà+D)‰Ä¿$é’JÃïçAº¿‰®&©Þ$D@‚¥^҉Yì€jŽöî@hT3-uB$) €œûî=°p•É1 m¡-Øá‡í݊RU=`fJœ×LɈÃÀ# +Èb!;ÔWTÛµàN’‘Û¼‡qÖX´ÂƒÊK{†™Æ=}²JÕ$äiÍתē¥ÙÔô@N"%§zÉí¦Ú'åoØ.þjFîu\ è¤+R )[8Ÿq@j,QG ÌÁª)LˆQN™|>%£ê²·´–nÓ÷½Fm8ëU¡,Û¥3="¢(¸ W1dJ/Ì•|nÒrrðGŌƒ(2£ÙÈ'D½å1úNvê ô&˜÷ûx2¦éÍŵ¢¤ôòô]‹ÑïÑ F]õ¹“9.;Õ]±b®¯â +-ˆ¹ê¸êTÍed©Uô T˜0³Ç¯'=X!£tÈ´U˜Û|7à(C€í~ò.%º`\f 6"UC°Bp²±h®}SPô YÓT“QÕ+?É°¦m ‰}“wû©àRG%­»géåŠÝT7^=Dœ¥›Ä‡ÒMæÄ0%v o|è݇‰ã„87=¯tl´ú“tA–KíTØÄ•±CÜà)ØÏ(qH¶ (»P”B9ºÒäsÛgòfD~_—ΧD7 Ýîdf­x*(жÌrƒò¤ä딈J“n€«ˆ7$c“,¼ÁO5þ¤ÓVº4!÷î»qŽ}œn@”átFÜ`YúýÍòÕ'ÙiÊÄlAœ%$Lè6“ò%+;UÆ•‚pà^­’'‡Óqàfaa'µ>OùÌáôµú®ìš0’U¢12ÔJ«`eÎ#8f…í9/pg+,²g§M˜é„8e¼L‚†€w“~ÌIå‚d±v¢4PÒqún¯XEÿ +DىUŒžÒÀ”l=0/UB«Ù|²g¨È±Eιi1:ƒK R§›/O”ŒwdÚð°‡}ªCè!˜8¤Úlº³'D ·Ç€l vŒ—8u1[ɚdèTJÄ É mïrzï ¯{BœÆtò”Ë“J€8» 6aåîpö:±`LÎMWÖÓÅûêk D|þ§Û›¿Ü]ÝÜ_Ý|z*d.»1}ðäO¯é‰wòèÛÿøýï®®[3O~cžüۓßüýÏþtûâ’þüæêâþêöæü{ðåɯþõêú¦=:mݺ»úîíýå›_Ÿü¯'¿ùêîî|öÆÅW×/î.oèy8ùÍnîû3úŸûŸ^_Ò³_¹/~}ò›¿¹ºhÄo[«7߯¾øÏóë·òæ¿~þEª4BïQ'¸Wû:ŽŸ6ÇOŸ`mo<’¯^Üÿ°ñhôí½Ñ—Wßÿp¿ñðúGÓíwÿ÷òâþëÛ·7/Zÿ¾¾}ÏÙè|É翽zÿfãQ®|óчúÕžuýú‡óç~Ó1^½ho¾gLôÎÿÚ ÇûÂ&ïßÞ}÷öúòæârÓYO7\büÎGÕÍí·÷W÷ïá!}Loøí¿]]_n¾{W¾ùè# ›íæí«?_ܟÿs‹‘M?ùø÷]Ó6Ûwço.wwùßoÛþÝüö›}õÑGHGnÓÞ]¾y{½ù½×7á@ïèºÿ™®?Ìý&—Àåߦìäç;û3óþ‘äêfÓå¸}}yw~{·ñ‚ô>ú6ûööíÝÅåïïÎ_ÿpu±ñ÷ž©˜Þt7{~v®nÞÃ$W>á©yzûêõ훫ûMÍ/Ñ–ÃÞûÛ¿ùæòåɗGmo?ÆqÔööwDGmïQ—>gmïåÝyì¯ÿt{õæ¨ï”¾·ñ¶=<}ocûËQݛ í¨îÕ½£ºwT÷>;uï4<…o›‘ì¹Ê—Ê·ÅˆEåkzÐחÿ¼¼þö‡ó·?~Þ¾¯eê7÷/¾¹üçÕ9uh }aúÑ'’Xç},ÒÀw×oß#Š®$ýûó·oÞ\ß|-c<Yzã#ôbóËëŧ¸½6ÈæòċO!PlsHöýÀß¾|ùæòþëG|ìÿÌ#< ¿±ÀðæõåÅÛë󻧷7oîÏo6_“õ?ú¾Û8áÍÛ»—ç—ß^œ_on#]ýè82¶]ÂßþëõíÍå‚%ìÙàc¡éüóÛ÷LÿàyXפQÀñÅíõíÝ¿ýøƒXD6”ÈÚæÄÉۇ¤›œÎm|P÷ÜÄáÝcÙo#ÇiØf,ÿ³ñXþçÊ ¹½º¹¦æ‹Oa¼üVï‹gÊHzœÎ„-oœ}¿@ÙB¶ö&ì÷šf´“d_˜ÁùÝÕý¯.ï7wÀSØXõûGÜx8ôêÇ9Øx ï± +M’özE6gfÿø¼lóyϐ§ñŸì¦yd^ø­¥}¿:¯¯îÿr~õ>ƒÆg~wŽ®¼½™xë÷‰ò—wß_ÒL´íázŒkñËuà2´Ø öÅ#1§m•²ßÆ4ïCû1ôy%‰<½½½þúîòò6vE<ÆȨW×ç›;cʈq¶qæüÝù‹«·›o]¼~ÖÍýÖ87ȋÍòbŸrh*æoï^ÿp{}ûýO¤šÙÚ±µGÃÌ6Ï`ÙsföhÓØ’™>šØÛ-R¼öü¤o—N±ÏG}ã‘ÚY?¸ˆÛcξz¡.gã0âÃËÙßXÚ<̜ý-ù¾_I¯ÔÞ_I›k8v%d…¯6öA<ýáüææòúÛËëˋmÔéõ?úžûëÆ.£¥ƒ\ÿð£ò=ÑZ“x»4—O”ßòYòî½¹ùnã]¶÷÷ÐÆ#9´{蛫7¯¯Ï/._]ÞÜÿñüõ]F¯Î[S;&A;r'øïÉڟ~åÏMGÍm®`àõ=>_{Ï¿·«5¸Ï¼þÁ'°§ßl¼'Ï/.Þ¾zûþ`ˆéÂM>ùèc»»dÅdãá½xquõÏ-g쯓àþvsåöSh,ïÑ-&>‚ÛÜ oïorÝË»ÛW›3x~ùãÓ\ÿxþÓÆ Ô.åûó»­.qyÿ㟞Çôâ}ÙAÓ(ˆ·wŸL%9¿¹zuþÉJÃjºÓz †Ù3åçâÑÃl>’C³~ƒaöÄÜûøƒa6/;wxÑ0±p V¾ï—Ò£ ‡Ù|$‡v)Ãa\—c8ÌÇäƚÄa„Ã|–¼{ïÃa.M8Ìæ#9´{èóÀªìK8Œÿ\Âa¶àûοM8Ìæ#94žw ‡yÈnòIÃa¶86ûÎM8Ìæ#94ð¡ü?‡ͳŮÜö|}¢5<Ī[„ÊWᗠøœá—ëÀ'úñÃ/ÚøÕžÃ5{žog/ÙHf8œ+êñÖ-ÚÜxt U‹>NðOÅM·©“säh?ÏÑò‘£=FŽ¶ñ²9ڑ£=ŽöÛ»Fø¼E´Kš‚ÇÈώڑŸ}žüì³Ð-?;ÊgG~ö¹ñ³©Sçùv^øGÆÖ6üñ†ïxl696ås>6þxl>ócó¡ îdØ8ÜPºú×-"'_|ô¡5æ÷—«]^ÿåúü§çÛåq>2Îwwùêö}…$«ÖËÕ͋˗W7W››ßï.__žß³Eý䋏>¾ OÚ¡²yóšJÙl:Æc!›c!›cý—­ÆãOü—Áø¡ý¯;iÿ|Ùþnÿÿe{pòز k}¿ù®||böE†ú¸Úã'1¿>*ôÅï¶ARßóHýmÆò¹Æêtä1ú•¶:4{κ”ö>éúöÕëÛ7MñýóÛ÷œòÃå O1ÆbçwW÷?¼º¼ß|¯cØØ|ö÷„ÚL†C¯~|oぼÇË6HÚëٜ£ýãS0´ÍWä=CžÄg>ŒKtKÅà®ÐG[ñƒÜ¡‡ãâX´¦@tL<º“îä=r'oWñèN>º“îä#.Êѝü0;9º“ĝÌ×;9”ƒûr««þèB>º?°bpt!¯®Åхü¡‡tt!†©ë@]È?]^_ßþ¸é¢\_}ÿÃ}{~zAÕ-7^œùgûë§xqõòåÛ7—OooÚ%y³ùö[ûn‡('åÛ­J®¯|óñ¾¯¬·w/›¿ÝØV?Úkž¸ïw•ž‚Çr endstream endobj 86 0 obj <>stream +]m9œÏ¯÷ht;4£Û67öÑòv´¼}ü±-ocyeáËïï./o¾l‚Ë嗍}^}ûå?¯n¯/»|ñåíÝùÍ÷¯æÑ$÷‰MrŸ3ìï¾HU¾nlÂ>ÿŸ«Woïßn9e~xÿ£ï¬¼ñ˜.¯Û¿leeœ|ñÉì=ß\±¦ÿŒä«Oó((ÏTÆ; -ßnŠGosÚø¼y}yѤ¯»­­Në~‚ ä1g¶.ÅoÿõºÉê Ö°x4Aí”Ì/Ó¹‰)ûÃnv›£Ýæh·9ÚmŽv›ÏÐn£V±Û¨‡Í7G»Í\8ÚmŽv›£ÝæcØm>…@õ‹y¦?c#Ô·ªq êqÖÏX ï»Vÿ(3€÷ËTñ‹ð†c }c›:8ÖÐØ·ìy Í‹ìy ƒ²ßÁŒû}^_Ýÿåüê}ž–ãÝy¼;õ§ëÝy¬?µowç¶\y߯ÍEÊô¡\ÇºS»Íý¾\»[¯ç±æÔ6øD?~¬9u@5§¾úÃóo8qûãç ò³qIªcu½oŽù{§Co ¬ùâ§Íýú?}‚½µù@Þs/Lò¯=?$û~ào_¾|syOGâîòÅV¬ìЎÿŸy¤Ÿ‡°|U£&°/«ò¸ñďªÙ!«f§~øbÓ-¹ùõü)nçmF²¹Äô)&ŸÜÆ#ùñêÅá„úöÇQÜ|D?\¾?Bo2$¼þñ%¨ÏѨñY—šÎG£Æn"Êëk‡¦Õ¨Q£>£Ææ95@ý=´ã4j|®:ô¾¬ÊѨq4jì«Qã3SÍîÏ·´|ŒŠÙË»ó‹ûóë?Ý^mØ,o¸Æø¥^6àÛû«û‹÷Øw¦z'½ý·«ë-R²W¾ùø†¡oÞ¾ús[än1´é'?’ólãšAߝ¿¹üÝÝ忽¼¹Ø\í™}õÑxñËE™}ì‘lgÕÚ&xoGr,v´~õ‹}ùi‹mÁµŽ~vxÇZG¿Ky¼µŽÎ6F„º¿Ý\p¾ÝoÑëåÝí«Í¹>¿üчóXk}Î¥‹~£ÑßÞÞ}÷öºÝ‡dG|œµW¶P)ö\9ú8%W>‘w›ü°£©õÁ»ö‹Ç=¶ù8ö‡ç£pÜIAGnLâGuïq«{Ûl³£ÂwTøŽ +ßQá;*|G…ïñ+|˗Qá;Æ¥ªÊ·q͊ÃSù6ÚQ㛠í¨ñ5¾£ÆwÔø¶êÀák|§þ±è|یdϵ¾áÑi}[Œè¨õ=0ÊO®õýçíí‹ïïÎ7¿ï£Ê·±t}¸5" ÆV ð{žÿq¬x±wêϱŒçÏ äXñbG u û:ÖïØ[6¶üü¾ï³­³xk}lgÃu“¿OyhÿöÝõùÅ?¾<Òíëó‹«ûŸþm Óï›ûŸ®7÷Bè۟ì0ýŽ†y@géqZD·ãq¯.«9´ï¨?o¸”ãÓÇÄÐ?ÁáÑüa‹Œõk…?݀ŸLfþÙÇ·_n¬ çÓÛÆlß\Wš·¿C”SòíÅùBÄÊ7?ucÉèíÝËó‹ËíƶúÑQáÝa,ÛÂ×îùŵåp>ƒª->n|ÏÿçêÕÛ-\[öþG_æ¼q™«Ëëö/[ù&_|ôqñ­ûËUOúD2Ö7W|Ã>S'㧈h}`ÆðLŚ£´w Òpc·÷Ö?< +EŸ¦ò Vâ·ÿz}{s¹` û‡GÑo»ÅöÌGyé(/흼t—>|¾UÞp€òÒãô,`Öû~ÿ|œ0éý_§£Éü#Ôü»»ºÿáÕåu݉9l|»ÿã=õb&áW÷x ïq½O’öz ›3´| +~¶±bþ÷¼9ˆÿd·Í#‹µÝÖz¿÷×çõÕý_ίÞg8ޝǻóã3¸ãݹo+²çwçæ+²çwç¶\y߯ÍEÊôñê|WçáØ¡(û( ýâœðÖâ—ëÀm„c)"½J®Ñã…È{ôÕgy ö[ýÛÖ5¬Mn;È"K¯Î[S——8ÆîOœþ÷¡¿Œ²éù¯Íù"^?€óµïã÷íÓ7ï ;\†Á™TÄ<Žñ*yTïçÜv %>N7c÷½ÆÇé£)òñQ QyLþl²\®<Æã âÛZt{¼'hÿý)äo ‘ýí@>Äp¿9ñ!ŠÚK¶Ý¾³‰é˜6În<´³t Âö£»“h³ýýååÝï®îöÁD²/ë|þÝæk|Íp²±#‡ÇþÛY,W¾ùt¥¸ÞÞ\üõ€¸É£Ûegåĝ|ûì÷Ç}ö ÷™ÿ\ØÙן*Ą•ÊÿÛÝù͛— HìÏ~œö%¢Ú¾‹Ÿ óLÁ"CÛ¹úhѕáȹ¯®¯÷`MöeJ–mÖc¬æ6øD?¾üÓ_ýÁ»ç¿½ya0PDˆòüO·7iMpÕ£S!}ùýÕÍôÁ“?½Ö6øÑ·?½úîöš}a—'__ݽøõwòUûçï?>y;ù¯;ù¦ýóç'!'î̕44ïÌ»¡Ö ±6gy¬.ÒÓÇàóÉßϟôœ¿ÿÔþåÿmüßFúñ$üñä¿þ;yA¿ö×'§Õ§pò8œÔÊYÊ­¡WLŽí_jmäa8‹ÕדFŒõ,Ä!5bgÉÏDߺç +óY ¿.¨PÎâ0P»¹ž•6z××3?¦Øˆ¥µŸJdb<ráVdzÜþUð錿.gC-#¿˜Ïr*JôÖbMƒþúèÇQ?.gcD§ÆÑý>Ú»~¨ †ø×ÓY +nÒ@.4þÏb)üêxǪäÍàÛ< ō¡êØýY­µÙ»¶&Dtgmñ=-UUbû)CÀØdzâyö9Œ^½¦Ê¿Õ6D‚Ã(¤èƬ?߶B‰4OC›ï(kڄ·e%bi[&&&Ò<„(ÄR‹·þ—6GDn/”¡ê»µdn•šÊ¼v¡¶á¼MB›çzòôá=õìÉ˶vªócv•74ídÙƵí­HÛ¸íõ6¹îl¤×<ígjs8kßzú%š¾û´žåwTë€Ë²)wÆ»t  Y…”Î\ÛtB†¬SÕ&(;™ªÌýo´6—)Å$MÖÁñêµCû1RÛuÐ]ÞGë+5ÛúWd¡R>+‘¿£Ì£LI{‡º¢Û.æïcn¿Å«ÒþŠ4*™Ôâ" 5g9ÈD‡öØ{ù>D§ßû¡-Š#r¢E/zžÊ8Œ2û9Ë>ucÛ c–A…Ò¦‡¿wí ¥Àät֎:ÿ¾K2C<)Ķ“Ã8ÊVáù—âYͲƒÚV,r¢]•œ¾6m¥ý6[¿Ÿ•Ö@k¾÷@·:½;fy·mÏ?Öö?υ !备¢£ñí„8§G¨Då)¾1ƒ2 U9@¡ý%¿D¿YªM!¶@›‚1 «iÇ?ðoÑf/¡èYo[R7F½Ž [h;3ÐX„UÐ"4•#÷ªí‘:2OÄ~úäwÑñœþq'¥ÿ=+ٕÖ\ã C¦cÖþíÏì>µ3C‡¨MV{ñäï_µ¯¤ñ<ŽA"1çWú õÏËyˆmÈ&lÖÚdD‹’Æóå1Ó s´¶YÖ®Ò%Ä[ªMwÛ*ÊÆ0='àíef§ÒD;v™§¹š 7Ñ6h¹ Ú¾N8]=5éùÚqB±mVèíHû#ñªÒìçäa«bF1HÑUk¢qû!òƒÔsóÒøþ0xYªkÔÍVÓ ÐøҀÚÖ¬4]r1ê‰uC[ø\q8’˜2ʌÞ:@g+0s –=”¤Ûݍ¾Ê!b6,ç¥Ö¤#·Zµ]Hr['KÅér•ç¦]9EÏ¡§­3€8[Œv4»™ÌÎÇeçòóQÙù ì|LþdÊ+[Þ-"zµçŠu êÙ Ù J¥{÷™’‡4$c'¯¶A¡<'Wb™üÈ1ª\Ùvy°Vâè´ßDP›È§ðè½jË0j1ÈÁ[ÿ±§Ö‹¼Ž¥É¤ÑzáõP{‘TMAqAönJM]uæÝà!·w«ô¢5PTl?=¦‚D¹{ ]k›"«„ÖNUә¤kÜD  di^[ç¹ 4mÓé.äW^¤/mÂHffÚ+EÜÎt…®ƒîÙƪ ÕÄP¼#À§ª‚4q¬™¥ié^¤•u‡ëÁ M*J"B¶ÇzE £NrceÒh;ØÑé ±©ϔÜzãõݳ60ºª ¢Œ»q=—«nÍ8´¿žªüÖÎn]{U˜µ©Tk²bóÏs ª4¿og¶ OÛtm>USnK€SõûFt…E¯kĶ´*Êô¦Ï º!jQ´f&!ñ†l|ÝÕ¨[7¸ìU(ME{/,T Y5hméðnkU·®/~„T[Fm m}Áv e/ì°imÂáIáñNõµÐT[=&ÕA‰cÖ) Ó£‹Eš³Ü1˜„eâ#ú}*úb!-ß_tiÀu˜&kÐ{«]Úfƒn¬FnWš~ÏjÖ3UcsÁ¯56Yu\ãè”ظ;¤’Ð@MŽz§·ìÕ¦úB[<> ´è1¬ö%ëOµ[O8MÓmõòs6Wí6ÈƨúÎj +Sá£-‹^ý´®;Ë¥‚uMSÖFé–ÄÆpځÖíx(jtXl +‰º[š@¢ɤ2èÄNövSº‚sSˆøpµVC.¸Šö 4†?€á^m. J3]„‚¬Æ¡A 6OßÅ…̶&C„z¹®1§¬6"U‘¬fg®ñÂQÏg:ó£KÆ7‹>HV@ú¥®Í@GbPÊç¢âbjʨ6Û6LQDˆåª÷Ä,Ä>F‡&d•V¢‡I.äš Æ&g'¶ ÔrD¼fLJǬæ¤0:ᎄ'Ù²#Qä§Ú¦*~®m6ÁLŵPb²Ï/*ïòĉ¼Ö…Á(B†‹^Mc‹wm9‘F1&Š½{4 ʵåÈòb±"™1’ŠtÅ?S²+A»Ð©VQígΉÖ^m¼@‡ÐNz1{øühÃ¥Ý0 +»æZ‡]4ô×È,(Ĥ‰jjC“ƒÑ¯vp¥µj«ÃoÄvJ”XGDéMÆöfçpl×Sñš%™ò¤³d­XǦЌ*V\ DΣ’M‚ìïvڌÉi`)Eöç˜r†³šUICH¬!µ'éÈȄ™!4ž¢œ}²«¦QX¥êÁ‹Â Yi]Ïs£¦! 5ú¨òJcmPÔl$ÉEä•v1ŽÏ(±,pÊ&7ùA߬Ñ8]¦‹ÆKO)©ä:(ë ÅiÀ› ÅË?_Ðx²Ù™YNb ñŒC±ŒßOh—N £]Ϲˆ·GÂ¡m™A×À{3¿;uù2ĸڽ…I¹k±ˆº;ɑu²Ù~`RnäÆ]lÇ•&«¯„Ügm‚½RºcF¯ú+ŽXð£’éJG³¥$¥šø\I©ÚÙþnL éb87l°brÓ¯ªž]¯ºŠ¹+ rò!0]$H'ýìå +bµ%«‹ +Š¾YM«G¯+•}iEõ,ߕóøÑî5—!EŸ܁A÷øqÔÌUB¢Ù0žÆ„ÇF;:/¤Ð#,r`Ší(9IiŠ¥e»Cù‚{ª¹v(q7«¶IÄÒÔ="– R€ËÆë«1?ºò•©vBûªŠ¹¢Ç +,ÛZ„×;ñ2KÕë’|‚ºŠ$þf¥5 jÀQ®Óïe’)<ŽíXb~k€@ cP›¤+Q9 Ka"‰ý(¨ºDÂ]äv“ÞÍD¤Åƒ$Çbëæ(Ķ#´YÚ'p+ОƒU¡•I^ilÀÊ8±~ ,םٓ ñyÙ~ä5lÄ&Sae91ç$»MѾFˆ`exPò8oä¦y译å\¨dag¿,wEӜÕÐAf€¬ÎZ3gk>Åî€ä±ön‹u~-ˆ¡½Y<ˆ¤_¢Æ¡T‚jzoJvö|±“A-klŒÑíÅ6viÀ‹š¢dÊIK¯²”mßgÕ½½‰mK&ÐÒYÆ ¼È»MGOr1µTT–ò$^TÕKHq—ïbd'Ãsm¥mû‘÷-1¯ +hÐ6ÇÉFäÈ rŠº¿Øca†®Ã}¼d½Æq…4=n +l&â‘zçp[€!4U°1/UÝX :³þ)—Mð:1ìV ¸ˆÉÓ zk›ÆàáCEx%½uôê‚áX éAŽNUòlæ–Fnû6 ¹òLÉ¥V՞[ ðñ—aŒ šãúc$RuêÅaÁã™Z;Úu¦ò/ª¾;ðfÊ®·[ÅÒÄ&¡æ²iÉ´ÅŸ)U/22¸ÔÞ-Xa‚8τØD7Dµ•íV˜1ªfTÓÖý®ïªNÞޔP"êÁiZvq<‹¹é&êôj{IÅ<Ai] +Z!û±{ªèðÝðLÉ¥D\6Èvf=\LNÕü{NUƒÆìì†&«•+i"R=Sr +BC°™Ä ñ¬?=Ó3Õ¸ ÊO®VDv¹ê5 ‡CÌNrYÀ%²fˆ²°!&§lî6] +Y•`z8Õ¾þÿ¥ +ãÊXY³yÀfŠÂ³‡ß&Ì¿?›úçÿúÕW/n¿»<ùêîþÏ79¿ÿáäë»·o~8ùÛííõ¯ÙŸÝðïyò…K.ºà|cÝ®ºø;·ú/O_oœ&ÿ¶1‰1? .|ܐž|‘›Ÿëܓ/žÿ¦ýÔJ,íÏ{X$wæ9wáòÅsêF~ñüËöϤóìcñ$›#~IТ^ß±ª„DŠWJU['™iT.‹‰”[&:3q±™¿o‘WõBFêî ƒÅ3ùˆXFr¥©Mg43[ "m^èylW%­s ãꃽ& JT«¦· 5r ‘òPF“™ì«è tE:oÚ¯VîF b‘DÅäɝ3+-1šcÝ[@^3¸|oÎñFEh+Ÿ‚²,ví_ظ–‡ºôŽ½£;³øíÏtkÔ'ð_Û{µNNpæ¹d˜•ÈÙðìáFÔ¯M].I-S|—£õÐ:£dâÖL ÍäIë5šÑJvçjËAü6ë?÷´÷£fm"{Ä1°o¥j?²j¹»ÌUhPb„Õn°"ûaœ4«Dçt»Ð¬g«@Ï)»°ŽØ,yêpÖ¬µ—ŸY#=أ߀>ƒî Ó ßÓ0訫ìÌwDFb²¸‰nk#rE4D`²Æ‚Hê¨fÍ ‘U„tŽÅ~a"Ìä¼q…<@Ž$‰JìüsŨÅ!!“îg/ÛfQµˆ¥G‡íé*hÁ–Þûn©O#oú[A HÁ¢³³7¾v@֙ÃÀä{Š¡ÂFý&°ƒÝ¾C¿Ô-@b±Ch ”@ÚSiÀžãdÿ7g LŽ„L°L)Ä4¸‚&FØ `Lf‹ZMÖ%õÙƀ½ a]"×b×›Þö:[c°fC_rê§ó`#Ï 8]«0¢iÔ +íF¨Dï³;°¬Ñélëàtqèx_œåCFÄ[–òìÄ\ÜûŠMãKÕÕÑ0oÚHlʖ7ë$¹Æ¡0Ò ¶iT¾¦”“S¡q2@àJûc°9ç zpC]oŠSGtLýD¬pîdM³S>@á1’<í–/Qÿ‰!µ f²Ù5½R0¥Y +ª,êàH+"Rxûh.ñê6b I™ ;k¤ɌnG +fx¦äáH‚;­ÇÑ®¦zäaâr2‹8QÅÀ¯ÂÒßÈM“VÇDÒH¾lBÒ!ªŽW-˜Ú0Z»Èìˆ@(DàFÉÊ“Ä5Š¾b."×Q‹Åc w°î MÓ¨wW4Qš&¼À+̝Å:4F¥?ǎ!jä(í“ruU‰¦€;s?’;¯b/½Q“ð1½[D9'H‚9‚/9§>–Àõ,¸ ­Fõ£g3K‘Gr(ýÜ݋d²Ø·ÈÄQ…aâ'5i"ócIáqãîV›$AE±h&kãvÂ^œÔùzŽþîòí`—¢°†Ái«Ý~Ääßž©°ÈVEiuKtÙÔvTÒd~1CªûeáÜ ža—§Í–ˆ·Õ#Ɉ\фºaqˆ:,6¼Àß0¦W&ñ*O¦—‘ ˜å”DÌY­ >ŠŒBDgCÎUk Ä2æ $„ú°uK‰Õ¼ÝA)Ãh÷J’[T‰.a¶‘¦4 +{Ö®“xÌ,»õ0³UAòj… 9Bè÷1bnª†x ’ª¦Ä RŸð6ù~BÖÉ 0DŽb"x` N´+1Ït…\À•çü¨6ÎvŒ¶í<ˆ>m;,;?o—ÈcÒvX½;blÎ.Ýþf(è/I.U ¸v1'¹!bÎìœq~šžk7Ej9ÑÌÚµƒâ5‹xBµ#U2ZÍÞ¶cN]RÊýõñ¹$‘xœž8dÈ_ªzC׃ì‚HÞ¦+w¾R‚ €cÑ2ép›ži¬"„9^ÐDšê¦|r¬¯X̾Q‰8®Çjâ-܈ƒDv(q40Ø ÖªaIF$š™äÜ`[£žkbIq´¸i2±m?Š?ƒH a¨‡Ïœ‹%y}7t •Ö]ãØ [ʄì3„ßQ–ú/ÇhºML:3ޜqDÎ=X‘TDÖð‰~•àÝfsÐhÄX´?/M’$ ?7ôs2û©•a€h’Že±ŽMöy#W¯“îHA»_ƒ\3TŽ\¡¢yg?kG”azHE⺠cgZm½¡”kd +©'ÑTÒQÍŠåw¨.RL'7˜¡vcè®/önꬷZJŸµª³ZŸÇ)‹U½œu,#çlv9[‹5sìxk6­W Ã*V|7t­Ù¿^šžàUŠd¹xeÒ݊,øìá·?7w؇õ2ÔÍÊEœ^†$±o•“PÈrÝýðE¶ðìdx¨GïèÏýÙÙÇ@m¯)%œ"ñÊÈéFCW ciŽg·Ñ·{©Hzbe×djКIEÉ£I¬â0Á–!ޝ +Uã×í©u£º€Ü'ªUnh&%ÓcC»ƒi×5 gݺ9Qn-ϊ:!þFî˜Å(Î:ðԘJÓ%ê¤áWFÆBsÛ³‡ßî¼ —yÛÎ\(DF_bgˆþ k˜r†Å= ȂBl()uÐ^³l +Á=Ú4s8°uÎy¼ ÁÛ[’…ïÙ‘œ5„±k|u@†Y"¾…V^ßîš³\*/…©wµ¢scŠÙt>¤ùÑÔÆ:êäLL‚N|gLž˜›æ±7D樊쿉; Ä‹4L,T,Ns·ÌåbIb@«l»’ÌcŸn” ¡D³²¹Aˆ¥ Ö*üÏÃÊ*\þu* Š¹Ñ-°†¿>¶š0`xÁɶ¢jڌ'D¨Tœr/þŒ*ú²Ù?KB–‹¡Û`‹J8ÿÉö­¦³¿ÏY»9™•£‚‹ƒ'‘1¡tQDŽÚu}ãÂpMÉaÎ6n1í:ÌBûw¸§-i!s9„˜—ŒÝæhBå®þ‡Ýh¾ø0©!QÂԕ®… ¨ÙÔyIÍZõ£Å aê‹Ǧ…ÛfåQ:éÑZ¨‹ô¦C=™jEVœù%c‹#ö’ý‰˜pvV‚vâhÁ~èó•6³ Nvë,³Íš€-M»#oº±_Ôe´¨^.âÙ›4kh=GULb[¸xâ`|éÁK£E%t¯µ Xi“„{º© +¨;â»åÜ»¸öy¯02)ãà SƒwÅÑcµÅLÐçÈ$š˜`V)ÍGa6ª!¶nö;³[µÌ '±A¨†É—.xxèr?‘Q+X™’3² èÁˆlò;kŒ…U)ðÙÃo~î€åvn*89À¯OUU^)y@=ùwf¿Uò ø'¿–ÅU¥úšæ2g»¢äÙ ±zT±(dvºÐX¦ªD)ü†sÓõsŠ‹ùéÉ©fÙýÍ"‰«Æ¸'9½è´®dE¨À€*£I´˜‡ÑöÎîΕ&›·‰,ŽæÞ;Ë(u»Ã<£‰MfZÞÝt®­åå³ýÅó709帛çó{³³'¬ýRF5Ž¤Áœ¢Ð{’ÚÜÏ@.èW²ÍõFà ++“€Z6jX모6òˆtÙ–¡“­$PµEvÑÚúë¿ö´wCM:I*>Z7ª… Y~üúÛ •„A¢„Fz˜Äòȳ‡^í-Ĉ`›a{1¢¤ø`ŠQB°˜ÆŠ5_ÉLËÈ@Ąp¨ÁR؆^š'‰ ÍN⺐sMT™¿œŒ\ÂämÕ±g=îA®0¶Òq² YnDÄTqáEt¹ÉÎh×l•”ú«á1ÓÀ."[4—06²ÖTJf3æ$÷d›C4<^j„ ¦ +›>‘#Î/Ϭµ«V­gld«Í»²mµTÃÊÆ(Z£/ÇI—Cµý2ÙF¬ ÙâŠVÉ9MÞvˆ„Q˜fT+}%ɕÇb[¹Õ:©Uƒ<¬$Jôˆ¦N8jÙJô¥‰r}Ûë6´˜v 1ò€ÓÇÂlÓœ§8ŽèGuv$Ķ­PÈ:!±Ù„:FQ-vDtO4ˆ‡aÂy™³¢q‚­ý`æÐ^õŸ*®%ƒ(ÍáúÁRrˆ\íÝÁfaÔ%TrCdnŸ-9+LF³¼Ý`°ê2yЭ1L6l +Ä Ä ‡™Âç0¹ÈˉRu¨³„å!RŽV݃–¥¨¶Ð¬0‘3îÛ:ûjç%±ª5Z¥ˆ 'Ÿ¤ÎÓP㈬;àûΪr!ù…«Y’ iþ8Úa@Á¶qp³¦`uà*íÌ7gÄ÷à¨AS묃 +V6)Y5ø!‰²ŽÏcÀæˆ=–„z…]áb.dž´ˆ·jL¬×˜"²Ý ªRHËø`¬Õqzì´µÐ&)_dí–Ø/ÙÑڝ\W+ä á`0{=õ"c&8Â-#!eÈ]pË8ú̪lɜ]ëÓkQŒiRݙ{Va^^žwÄê=Մ³ö1’2ö6RFµÖÁ"!‰< *}Èã„lUÖ`ì%bB.’ / v•ÆÔ'E–gãÀ>™´Õ.M\ÛDÅT0;¬f÷} +«'€ó!MÓbII*1¢ÿXL&¢Y„n%©kÅQÇ~Õ¡°`/I·Òƒ€¸ ªwh,³—ˆ,m­ä„Y2.w÷0 ­\`e¡w=’¬XB}Ög\5ö Ù!ptÔ°"Fð&x_x!ò´®noõøË0ÙdÞÒèríW~èÙujCâ# Ý¥x;M&ʓì\xÄ Û,–x%ÕÕ]dN§Çé´G‰±3YDµz;b?8Ëä  Qd1ç^WCjäUDܳÅGKbcE Gˆ`!¬Uõ1M榓GŒÂRŽE–±ÎqBÎ6mÁu‘Š &":9#‚Š‹âbä˜(“| +*næ^ãŽà8°ÈÙbñùm‡²¡oE·«G'ÒévÎÈ«„ŸïñqªÌ¢Œw‡Ô§ÈFㄊpíÉvÈr !ó#²¾kNb"f«ŠÚëÐN +_j W"FÔ¨V—Ȇ›Ô˪’¬3"æœk9¹ŒÊëœ×;q^,ïjõ%&‚%qq+ÂÜE®öfAR£ô)1,ZÞiÂtöÙE;äútÃ<÷ç…Ù LŽCÈ ¬Ké’d[Zð{«nÇÈ ÈëáL^´[ªÝ³(}H‚¯éS§ºâòfÈ}-ª·Ä•a²ÆÕ®ê¨J"Ž‡'ý‡h‚¾±™A ´¿ð·OöيNGdô&òlWõPk‘ËûàêĹèÖïËä\˜é$•~.‚Û¨ÎîóaÂ~BxàžÎV%{EVXÓô» `¦9¿2r­ò;õl˜4&×>m3˜4Þ%¹¬¾ý¹ÑÞٚ˜§ÿn{sò¹"®=€©)vBÕä&vÃÕè®ÅȚòùNؚÖÄ2tM™ƒð5¥Ë6¥ ;albËQ6߱Ϟµ/ŧ±k`‚kh›ò`¼Mñ?삸 ÇrÌMžÛuS¶Ï.¸›ÀÜySšØ {½Ø}X‚Ëñ71™; pÊYÚ ƒó‹ç¿[aýGν¬Ž8œGέq8é}õZþÿ÷ï?Úњ8‡é_ró=¦ãaúӟޥˆlÜ)çd»ô5ôN»¶ãJÐʧ!).FûDËñ>…Eì„ø)Mì„ù)Mì„ú)GaÜOiaäO´°ûF™5ôO¨×;ࢉŠÒÀ. ²Î;¡€b«ì€*Mì„*o,Пᠧ»âÂ ´† +>»TZØ TÄ«pA!¡-FE˱A¥…ÐAa3YÃŃ9B¨ÐwÂEÓk(¡›—ã„J ;!…bRwÀ +ÅÊ®¡…ÊÎÝ /"ùrÄP#k˜¡`(; †Â’¸n(.°¥È¡¢ƒî„Š’B; ‡J/v•&@Ń0Da.XC…={9Ž¨´ð’(ì€%ڛXŒ&Š&vÀ…N¶Q ,ÆíjäbTQ4±†+ŠÎí€,j:órlQ4±†.ŠõÛ_MÌF¾cçj1ʨœípFÁ—#‚y­aÊƒÐFá­ZŽ7 +#㈣pºí€9*wÄ.¨£½…Ÿ£0Ù®!b€Ë±G¥…]ÐG±N;àb¿-G ÅyÚƒœr …vÀ!…°³)ÔõåX¤ha1)´úðH¡×¯!’âÁ&©=XŽJ +iu9.©ˆÌ “vå|†MŠstR¡ï„O +­}„R4–c”J;¡”Âv°§TZØ©F†5¬R¸Uv@+5s9^iw1ÍKåÁN˜¥èÞj)ì€[*M<€\ +‹L]Ž] +µ{Ž^ +úø¥f/ZŠ` +Í SۑsS<ØÇTšxÉæX¦ ¯¡™âäí€gÚÝA`šÚƒ9ª©=XŽkÚ]e`›vd†núŽ/à‡Z Øüß6 H}¾cHêó”:ˆ“~ñ¼‡“žCŽ¡ õ3 ]ðíìÜÜޜ4íÄbv‰¤^}9$0¬ÂËAqÅí l×Ðr``4±XZØ{ox`tb€`HÑ;@?¼Ýp³Pð ¼ûP]|g8Ónð”ðRyNøMM‚i¶sXakn,Ü,†^éÑ^Ø,F ;@ ÷®Ã }4üðÏV[ƒ¶sÀa<ØrM¬ãÁ°Ãð°­ãÁzØ>˜ƒ¯ØKá‡ÑÀ€ô ˆ±•æ Ä ïCl»tDl–B£9±Ñ—ã‰5@b{°’MìJܗk1,16Ír`b´°4ñ»9‰žÛ¥ðÄÆfŝ -†(–&v)–&€)ƃå@Ÿä× Šñ`°b4±®Ø>,ƃ ‹±.;€cwì[Ü/ÍÅÀÅÆΗC—Z ^lÒɾØÄ¢¥Æh` ‚ërckzclM/2¶&C£…ÀŒ­‰ÅpƦ,4¶NÌ!íÁÔØ,‡5¶&–÷M0ƒ6^°5¸±í¼9¼±=XplâÌâ¸?X rÜE¥Å0Ç&"΁ŽMÎYulM,;6QiwlÐðØøïrÈc“Ôƒ›²0‡=îZÄbàc4±úØn¹9øqè–›䶒À²=˜ƒ ۃ9 ²=X„Œ&Ö íÁb0d´°‡læ€Èö`9$2šXŠlÂÞÙ́‘ûƒ42,G6‘{ úÉ&‹Ï ’A_’Œv€IFk@É&å/‡J61–læpɶÀK“ÑÀd²=XšŒ&Ö`“M\œl§il–ƒ'›F4‡O¶‹”;ç™A(S[ ¢ŒÖ`”'LzŠn5y0‡R~‡1rj©|PÙ¬B*ÿŒ]ïåDw™+wÙr­üŽ/Ž¾ø|ñқÑ=œyV;j¯ñ? oèõðƒº†B€îV1 >G~GK«'t º?˜¡Aۃ9tס—"BO;´† +ÝõëŸÐs;ÁöÈÐS¹†ÝÌð¡ßñÅ*Ã]C‰îf8Ѷ]u·FŠFkXÑÖÑåhѦXÎñ¢íA˜!Fۃ9©¹ËQ£M ŸãF›)p9r´qÔ9v´Ù£GÛFãGOŒe¨ÛAÚnØ9†´=XŒ"Ý[˜áH›¹g1’´Íéb,i[®š´Ùz–ãI£‰¥†Eèƒå¨Òfv™áJw›ÉRdiH’;`K›\;G—6‘y1¾´Iãs„i<ØcÚT¶9Êô&¹Ñ»!M›Ò¶kÚô§åhÓ¶b‹ñ¦mÛ,Fœ6ƒÚrÌi3÷ÍQ§M£YŽ;Ýu¥Uäi;q˱§{Ó+èÓÖòrüikb1µ &Ë1¨»l³…º[™ãP[/æHÔö`ŽE݅µÅhÔ}s,Æ£¶Í1G¤î»f1&µ—9*µ=XŽKã¼†LmcS§XŽNmMÌð©Aß¡M„åÕ֋9J5¬áT÷‹‘ªÍ„´«M¬¡Uۃ¥xÕÝT¶±Ú9fµÉ‹Q«Ñ¸Õf\#WãÁvµ=˜£WۃåøՐHÖ¬íÁb k3/ÏQ¬»Ý¹ãXmŽd‹±¬Í4C³6úÏÚÌ­!®aZã‹P­MêœãZ÷3dk{°ÛM¬¡[ãÁb|kÛ=‹®moÏ1®ñ`”ëÎ_f8×ýÁ*Òµq´åX×Æpçh×ö`9ÞµÝsÄk“Ó—b^ÛÝ4G½¶Ëq¯ûí;C¾¶;u9öµ‰sôkÈ:;à_wqi†€mæØ]SYEÁ~‡åpjV| »?˜¡aÿŒnâšcbw‘s†ŠýŽ/Žžœ<9Ð÷ð°#g7/Ä;úç°£Xݟ«ûCæ‡gþçfþæɇôm>€émæ¨Þö`ŽëýŽ¦¦ÎÍнíÁßû¡”aú`1Æ÷J‡æ8ß½§3¤ïw|1ßÞw'¯"~?øújKk¸ßýÁ ùÛ,ÆþF kèßx0Çÿ6úÜÌ1À{K3t²þÅbp4±†Ž%[÷s4p{°ÜöÉÜڞc‚Ûƒ9*x°Š nô92¸=˜cƒGœ£ƒ?𠧕/–#„§[Žþ΃¢vŽnæHávHc…ƒË&æxáF_ŽŽ&Ö0ÃíÁrÔpÌÝnx0CǃåØá%-E·Ý·?¼Ž¥â8Ë1ÄÑÂbq§Â G¼÷m!’xÔfXâÖòr4qk{Ž'næˆâö`Ž)n½YŽ*nMÌqÅíÁY¼÷f[¼¯Æ ]¼x†/n`ŽÓiæãö`)ʸ50Ç7 |)ÒxßÍ«Xã},‹ÑÆ»v0÷8Xã8½DwÀï£YŒ:n›ãŽOÖ`yÜ,Ç·½6Gïføã¶Ï—#[Ë1ÈM¼™£÷KqÈM†\ŽDÞÅй‰¸s4òþ`†G>‘œ,[{\y0Ç$·ËQÉM֚ã’Ûƒ92yÿb†Mn·÷rtò.BÌðÉMè˜!”wú £ÐJy ïOvC*·&æXå&éÍÑÊíÁr¼r“ôfˆåF_ŒYޅËj¹=˜ã–Ûp–#—£‰5ìr{°½Üdù9~¹=XŽ`nk?Ç0ŸïÙ6úŽ¹mé…Hæý Í°Ìñ`Žfnô9ž¹=˜#š÷3LówØ1VkÈæýÁ Ûügìݘ³†pþ~ÙiŽr~t‰¬'·M±ï3ÅvWOùùéܖÜ®Š,ÿàz¯`ÙñÕ¼{þۛßþôê»Ûký÷¯/¿¿ºQʯ¾¾~{yò»ëÛ/ï~ý„ŒõlªÛþK†ä)¸wPCòÈZ"Y‘‹"zS‰½@ïÁøþûùò»,ü˜º0qÀA@Õ@ʊ“€]§“(ˆEމÑ呃‡}Ê{)qãÁ×j[r˜ ÿ wcQÜÇ&hJjÿƒíþï'ß=<ë¿:%T¾±Ñ_÷÷õ×_]\¼}õ×ÛûszwrÚþÝV¨MóY¦ Lºãˊ&(òNº%¿ò¶Éõ'?¶N»’µTôI*'¾b²—д ?PÀ`Ú ÑîÚó‘*Ž¼µ›L UctlÎ}JßW*3L<7F/@D„iŒˆE¬O®oDŠüã2yW"ScÒÔH"Žh•ŠÀrf[Q™FšÃ­… +WNT§Rªkׇ'Ógdœ;Ô8IdÐ$þq®oJaü5à1ý ›# ¾Z/$e0qÐìþù´ôd¤êäƒà;DÍGmDo•„¢F(R$ÏDR—3Æéƒêù4¨‚½¦G›L2}TKU-"4==R¹H-(ÀÂtÁ¤P\$w€"l’,ëؤ0*#Rõ’~ °l„ƒÄ ð‘Š~ +Ĝ0HÙjʟt;ew8W¯n P´ÆT¾à ™ë܃­Š~,)DSÂ3&]‘ú˜E­y5º*ÞîAªªRǸ¼Â)ŸX©ÿ©ºm ^¥úöĞ#cÔ']„F)°‘‰qˆm°fd¥Œ]h/UðÝj¨U*.qZo½cͪRh—ìÂ6®<°ÄZÙ`K ¸É ”»îte-.Z…ÀášÊ§P+|& nÀgYN^’ÒåȪŒ~Lâ])/ÕÆåÚSVÁâ +ܱvÐøð w(ƒLLøÈœä铗s:wò›?ÜÜ·»¨Ý$'·¯^ß¾½yqòæ‡óח'¯n_\N¸ÜÛ'¿úËíõ?ÎO¾¹½?iòÆýå]c‚ÄÖ½1xúïy“K×b ÿçäõ½•GvŒ£â +« I¦—6Ž"³.l\æœ6nÔ£KùI¤;·:Yž [¨mÑ U։ËùÉQ¡ô#ÙÆKý ¤± }Ì06ï)WU¹²Œbº‘:[ûqÊUŠØqÊ6żÅ&±JYn€„á¼½«)qlLk⤨e*9Yo²)´£xñäwï¸Ä¨0Ni|x£;쿟lïc>å¢ÝrpØ'qw^NFÐ€Ï i’ŒÛ…âJlªV¦'D.*è¼ÎÈH¦7XÖs…©º°›¬I ò +)J:£… z¸_5 +G64V¸F’[% ½]ÓH€t)ëJøbdH!ùQˆ^j‰1 ¨Ü8ÀA¦+%·!­TNõ¢ íÅ^~ª@»¬dÑN¤ô0\<ŠK0½ºbO¶q‘ÄO¹Tñ0²u¨©6Á=Šc%^®I‰¤q1w’ ãbt(½¹3eiÒQsc~h7®ìS ;º¢YÛ£”Æe±a¬’VÂ£Ò n"2ˆ +Æ¡>«WÆvI%±X‹üü (\ì ¿Sq%µ èÞ¤‘Ø)èFMV‹o‹§›+®½Ò›WÌi¼²º « 7fé,¾¾8¹ÖÚ*äÉ͛‚ŽïKÛÎ̌4 6)´OüŠ×ëé“o?kz°mÜ,óŽ@ &8«ˆ+¥8Þ7<ºTµˆŒŒ•&…ëI{o –cå02¿oÓPQ¨ðC ®dÀێ£Øqdé² ‰O*’±Æ ¨0|)èM1R¥œ"àN#xè !”$)qþTrW ©Aª²± Ä'働ŽN7›šøfæ#Ïj ý$¿HÚWø:݃H¤N*oÑ®|ÚH¾QÏʇšw¶älTI |¥dI&£ƒ€èbל³Ý$pݘ¤d9šùN%C Bãª܌kúój’j%"±Cö;_|¸#3ˆÎ¢;2äÈTˆâ.šTAɤÅ3-){Vn@*·v¡’´fmŽ£ +–Ax«q…]=ˆ‚×J[9À±¥ +û¦Hñ•Ãc£Z‚“J ÅY­"5ÄUEÀ‹\…¹‰Ž‘á®]ÕÞ­IPRø¾µähÒFX@¯YduݑŽ)ÎrsI‹Rõ—T)4V¼ Lñ…¬°i&Ár_E«¦Ïçò0«næUuáÃR+PÑUÀjÚDQL`BiÓO9 |àõ £J ¨B°¶´I‘BCªz‘oƒ”š#5°÷Î:}L¶_\€5°Í Vd>eL– ùÝ,•Ý8€xKJ¥“£Â1uŠ¹ò#XÁ¡RuŠMz<U.+:ŽZªµÝœ¸£ Ĭ*EâäÆ×Ädàwë[ðâɛ´½Ie))t ››0ْYgÔ᪖9 ãBÑÐ"Gö'±X¨Ž.jŽ“:rL.£ZqTˆ¤AG‘œTËd>Ì[þ,w3íñƒŸÅ5¾Ö‘§EæaËdQ!"snÛV/IÄéA¼Äl]É£ð¸˜a²!üÈãY9'™;|†!)K<ÛF¡¿Óå%o YᗘÀnÜÉä«reRày6áD¶W¸]$[@OÕxC…1ä7Aé¢BˆQ€!&reÐBÀÙä®ü*kÙÌj AT8g¨pÛ$J‘ÈìÊ®Q +B1`{Ç`™ä nIv/ɳfË£ªbU´~B?O¢ÉÇB•"©²!4wNL£6 Eâ¯[k­D30¤QâeÀ®Sò'ýŠ†¨<ìì ¥^&k Å,å‚µÃ¥Ê u”V‰…ia‘¤ÕPÛÍ¢õa›T¥!»è Äh¿"j_Œ0qp9â4šŽŠÂ:ýҍ–¦•¹»~z"Mˆ’ñ ‚ÊÚz:eõ’FýO´k³`rq8š~jhÊd´‰‰ +y´9h‡YW¡tUˆ¤9¹]«3£3™bTI ©cž¤W5> b'"'6¢ \ÀU!î³\-öÈ÷¹¦hC¹Z‚³2»£ °¢8ÂOD<˜áŒx«ÌjpP†¾Ü~@°~ÖbûÿTc:‹!}¹UK°-ÏW_…ÄݬûÅ9½Ši`IϧLIö‹ê)„$©•öûB{0ŠPJ¹jcº©F6€aóȚjÉ0X<²6$´+zÜ +öç`å7èªvz¾œG\)±òc$M(V¶(72 +(†T.]!²b=f”;w£¡@s}6q§°Ý&*+&HÊANt)K;›‘ÔÊñ–¢s¨©†ëLƒó^€Û…‰Õ›p&#œ«å ð¼™vœ|_QĀ‡Õ²I¦R ‹N= >p!nÕKQوò3á])“%¢BQCN€W™³(è@H(k)×RѹÌbFz“šÑZ·´øn O,†%ß«CJæ` ÷&€Xµ{8º‚SX• •™£qèŒ"aŽÔhæý$Ÿ«¤L‚ðc§U*§]0*¹ž©âU³!Æʟÿ¤&~.±ÙԆ"¨ÚW6b{–¶"Îâ(ëÌjºq#:$Îù¶£<Î}„ZáH1³J]°ãl„\¯QåÞ6 Äñ'½šÊ´ƒGêõGé*²7£b0—y €­EsðþX±â÷D‹‰Õ‰c@mê8J°£¹æ”¡iIuž¤XY¢òò­ª.›KdOõúÏ(mzØBÖ啾Ë÷±Xk]†¨Ô.Ò í8yD¬â9þ˜À°Ø†Nnð³AD*Ò²DÿL 'å~sf™%àÀv:v¥¾ù fÚ-©–TCçċKœˆuDí\L4WìkŠsÞeWG û¤ AV Ý 'ášä*ÂíJOu㐤˜*¿ªª!1 ú•‹Ö C:'òU­ÙÑNrbõ¦Ç5%Œµj÷~Š,A ^ž EÖTˆÁ EU¡›Zc0õ]X1÷Eë-À¬¼C²ÀjP=é3uR¨ +"Át¬îF N€P3@¥å{þ%$ÞTÀKµ.gû*Œ‡í‘ˆj’ÿP;Œ°"¥4_ +r%Àe4JäwÒ²•rÄ5ښdP V²€hÄ)ª»#%}£ Wæ¢fč"IY´§ª ªI€¤e-Ì«ÝäõE¥-"z¤âÄ ÐI*ꡛ)F)C-Wx1Ž:Jd9õJ +¶©Ô+(âbš:Â0ª'ÕÒ;ä÷¡8¨$ýTݐðî-ÆöÜ÷jÜ¢GjibªW±Y÷G6cÑ%s(´2<…’xgq•iÀ›žâÍRœä)šªû®–úYXBçhvéü¾‚‹XQ +OÑt0Fí–릘,ãíÍA±Eœ«jW™–ñqƒsH¦–°ÁTd¼Œºa*¼f¸'o(æHtVÄÔ’pÅ«6؝ï͖—Š@1 +LŽS0¨^#aÄià-þ§·Ê>æßãÀWzqˆœÅ—<ºaÑ„ëTT´¼Š0Ý·‰*Æ{H(qO8¯ª\PÄÊÀZºrR/Tmßxp£”K•UW;­àäMHpžÁ”0»ì £úƒvÖ]PÀlò>»!B=’]#8hjrÿ}â+ì=ذ¨±½üþêÍý7ú·Ÿ^«íȝüæëÛÛë•7{sþÝõåïß^½¸|#o…õæ~û¯×·w÷½¡m#Ÿ^ß¾}±ƒ(æ(WH"B´!œ¾D<¢ÉS$1µ]DQÍuø@à (hì¹‚ÍéÙ¬vljþÎ ¥µ¬ù÷Ø]Öì3ª´GÂ{»ø¤ûLµð­óQk‰’ÛƒKô4¢óZ¸iFgEÒnþ"L…²G$9¬kBÖY¼¹bM{“üÆÌQ}툠@ 9÷Nñ˜Ñ£&]”èG­Fq’Z'XÈDQä R\éÇò–Nk‘Êò11«E¨1&5˜Bԃ¢vOÒù9ª’ˆêÇBCVûƒ4@Þ ’ +Ô/s ¾!Ž ú}ÇøcD.™2P 6)~4"éÞ£=ÿ>€’*CRoH>'ßVõêðw +ß~Þ!]nT¼^YŠô:aÿ ¤ÿ¶3rí‘MBgE94†™¨‰ÌÁ dìa;m NÚãP 9 P8ÆÀäwEìr´Æ¬4AÊ¥r„Έ’ ¢ÐíÎS•¦A](AŠ$;bg².mçqð¼ô` ) ;Ñ቏“À—ªÛ˜b¬½NŒ¹ÁèÇÄ©I> 傎µU遁a;²ˆðp0‡)²ôÀ\Kf…®(ÎÎçɶÏߗ$yÙây*!¢R»e …~ÊaZ•¢*î7P$…щ¤pÊm!5I¤ñ©}ñºpµµ@Ó"ìrÃèåfgK +2¨ƋmBF€àvψNÌÁÒR—œÑ²Gý^ƒ'½e4圢ÍÓÂfRZáQ +®PD'2$Gñ:ÉÈ0GqeDֹȇÅütÇ,€âqµ<@RJ¿“kÛ£N®¨S‰ªk"Ý%Âiä6%D­cüêú#ׇ¨Ôkñ}Òo²QÔm!°[,>F b¤í&Þ +6â 煋Hv +ëÖt³¬'²DՉB ÜÁÊò++U#x E°3qÐâæ…W£¥lf&Z¤D-G½ªÁ Š¦<ÖV³…%~“L°âfeÉ<©¬^»0;¬ÆFV.^Â1f8Däå̜NEŒ!ZsÓ¨[• `_$<Ò 9ÊÍ©¡šn­&f1àkÄ&Îk¥§.4¹ôšZ^¤Õh—)Őq!FΪQHªŠDÌee)WF‚uˆ£s ô@↉û³€+¡¬óT}í"ѺBáÙb8Þ¶f‘›ðóãÉ‘Q¾mý?Ö{$†ƒ…9€ï/VyHrf ڍ½°¤”ÏâG͟e':H`‡£3“¬W”S‚GÑð½,.a‹´IŒ•’©=Kԑeczƒ“{èZâR ¢‡R¥Dª…-AÕO7 Å(³v$ǖLjœUÈbx’¼d÷Ï{ßڍÚ,:A¬$1<©Q—o ù}µB±Ê^«}®åSŠ†ˆã¥lq "Á6Ueƒ +GĊ¨ØÈV؅x4É4¯Qg|JÃèÆP¡ô °šPú4;¢È 0Êa“P#R<8o‘˹l^u:Ÿ,c´ß`ÿmÃf¤AÕ⠵ƪâùʙè6ßè5[«dÐJK–%çÈÚ´/Gú,iÍÁ‰@TlDÊ_—˜5’"±E&-ÕW4늈Á!co¤hL9Œ;Ï-iÀI~6ß½’^EåëZ…âZôûAîX>Ï × r7‡¯s!$ÒW ™£ê¬¬ÃˆÇŽ*!£¹HçœÓÛ\@úªãh‰QÃÐÔèJg0Ž¿òÁN@#S…#2¼I©¬Ù$¯3¨È΀‡9}%j`’ã遣¥2¤zâdŽ‹:P SPæD0ˆ¬y…’˜·€pg1³pÕ8T úãèdыøŒ«œ\gï”È*ÔÓ»¿V––ç§ø^ -¡ÐZ®8" 8¤6=Sq´IµjlH…/‰k F“Ò"@Ý5‚¸³ZM›|ò#KÜus·¦Æ$ Åùh‘…÷&¥ýhaa +‰“€øö×ÅK@E|/úÐ@‰ó‚'u*µ¨£äÒuoÅÔrÊ— 5ë¡Qµ5 RÈ7°˜3F‰#8åێŒE(rLžá ä"˜Q§lr +˜9<@®nâ,Q¡%‰®DY2^ƒ,!'Pà°$’ #H-z“½XÜWÜbJ«8ÞZ‡ž,5êl1Ó¢KÐ~3µŸo ®ÝÅÛX´­&e‘ô¡Z»—ª2¬ÖdnՑ† ú"Ý+QL'd¿ˆv ŠÎšÊNٔ6É< IÕ„¬ð†“)/¶A;äבb#8_j¢^a0/–ëYì?V_$7HÔ®S6¹Õ +†ÃÆm‘tG½ÒxmvøË»¢­ðP%ö–ˆêJ¥(å#ì–ìÀÖsNq-ÆîSy±rx¤Ó;ù|TK=Í „rFï šPªº*‡T‰²DoYEÕvýH~6›TԯΒý):%P·q¥@k%#…PkMŒ ù ¬y –2ÉϝY×¸·(J$5@ Xî"ÒA¢ŒÑ%+Fe‘ ˲Óت+ˆR˄ïb…é" FK0 „, mvqĒýTU Ÿ±3]*N;eÍ6(OãOR†Ñ64h>Cašຬ€ÅA}êÿà„BA7J +ö+=€+G9.2Ò ótHay2Žªt@2—†fÑè%Ž˜‰”r >1˜Ú¶Ýb ¤#k±FRõ$f‘‡Ç*EFl\"­D«*R$¬Éù,ÅËùs{²³Ú{ˆ r,-ýRµ¨‡(KYu-䥈ýÅՅN9@r|IøG«¨à$&‡ /9À"Jd¯—"†‹<>r,†*AÂ!òäXd< ªÝ)GvÕÄZјä–:å@y#v†ä-¢Óøžg/õs(øgˆ¢ü.=读F+Å +Ö “$%ŸdÕ¤ªªNÅ9I,§¾›GW ™ŽØFfæQÊ*HzDÔN­iä;XOÕïïÎß¼™UËxû!jflê½bo‰¥ÈGÀ$¯øFám¢v +Á#—©“\O2%ížÂè* b•“1i âÃ/BöC­³KâÒ"â(õ8¹ŒXí¹‘yZSÄê(¹ÄÉ%ü¯©$ƒÉf ˜eßï)e5]<6'b,U7-år‚àEZˆØ}é,™Nï •`C0ÌÈRT’ÈÁ§ùØþA÷OŽ4Eˆ£©Xܵ*E>)ÞXkU4 :GŽtD.e%¨hÆiƒ"Mü#K¡\ +Ú-lH§Pâ‰Ë~К½ÄvÅâÈ­À(”:>Hé̔4D|ÚQjvÈ‹µÔø +!הO(äˆTar-ˆŠÏº´ +Ì^Eª)¢¡µ$’{^ŽcŒb-R)™ç¥jȯ–`”﫬«SÃ!Û·8I¸Z¹íM ³§Ä9š")?›z"æz2úå®HnQ v©÷£¡š߀T‘Bf€ZMR–‚ª¼†TüA +‡ Á$V†2™œæk` #é¥ so)fR@UI=áë˜%§$óâ²s³ÅšÔŸ•(&W6Æu”êºHdC›.¸xè¼d‰Ð˜IqE ïõœ@-Ö.Î%G`Žâ\ºÖ‚Ä‹Ta‚ON*Bƒ FuŽÓÖV,ÒRՉLAÐÒc†)Ÿ=âRã˜@¶óP¨0r£³Æ¯kèˆ~ÀÌ°×Cn'ªã"e3)Tâ¹%D zÊÄÐP5Y“œj1$•^kÀ“Ñ*«¡J”d"5I)˜ÂKEkTGüˆ:ä·#{vµ¸ªF-¢ò‹~öäåzN÷´Ð*dÅâ¸Ñ/žÓ^õ€® ®+Ö[ +sáÄy©ÚÅѤâY`]'@בàU°Ð(Å±È ÄÞa–LÅFÅÛ^ƒ,«Õ#&~¤v#v]YýdúyÏ:#‰¹êK .aR–EQMt4½ŠA^Š¯Õ!$r_̸!”’×0Å4ªÛ*šßCk”XE€Hž•(j_FP#ÅÕQLì㙬`P\sœV1MVTJæNHÔg£ ï¼&eNu"nªV%òH@#ɨ’)@¢+Ùô˜YâÅÕS£!Ö²_²u±KOgó<[Éð"Î>n¢’m¹ú•%%[·srV‰ƒ¬‚‘kiQÓЛh'‚©§ã À©AŽ~:RZŽmd#ó +÷9²„¾JA-¶â ©lª0b"Aݔ,nðSÎÔ¥LeÉrå£Ü!…JbÜ*ÓQT$„®ðsŠRŒZS„=¨5W´B–TKW‡¬“èõéJ“¶á½œ¥,eâ´ rHÉÕIF4¯¾“„À&JÚ݂•—£1òê@¢e¹’z¬åS{ôwÕôBdärECk¶·%áëQç™RÆAÓ%iƒÁúõåhîE3$€.y±N$Íby!(8jZæ «F9F ¢>8Ù +ä^ ·pa­4¼J¡²ZÁD°!*»f«°Î™A"¯·³oRÑ+‡”2>ºä5¸“²q„—–„¦dß{E¤e1Äñ†ÍYt]'ºåŠDáÚ=âx?hõ" (IO±ùõ ˆx¡N¨ù…B‰48—"âÅK=ãNòêÅ16‡kÎ[yJꅓ#²Â8Š©–’•ÑÁŠÌ-PŽŸ¸¶¹]„3¢2=§f:*\(oÓÝùÉEÙß\õ'+kPp’ʤÄKu¡oOJ.Ò Ã"©9"—©%Ž„ùAr™ +@½nw¸s¶ë(°R#'´qaP?¢~¹åâ\6ûâ9…ÎN‹­2ÒÔJØèæzô¢Ñ‚ÑÎbÑÎBÑÎ"Ñ®ÑÎâЮÂÐ΢Ð΂Ð6bÐÆBÐÎ"ÐÎÐÎâÏÎÂÏ6¢Ï6‚ÏbÏ®BÏÎ"Ï6ÏâήÂή¢Î®‚ÎÎbÎ6BÎ6"ÎÎήâÍÎÂÍ΢ͮ‚Í6bÍÎBÍÎ"ÍÎ͟V| ­>çܘª9H 蕒ÕQìGÔʗ¾ø‘wÕ+ +8Ύ‰^ŠGSfÀ?ÓEFçç©6Ð¬UgˆØþ¿ßz¿¨¼,=Pˆ –A(Mû•Ruóc˜DÌR"•†•(8ç´7¢r\"ë± +p,‹¤ÖÁÊ(P܏Â/½^žj”šb³“U5ýÿì}‰bŵíûÿƒäL@¸º«G¸ Á`°±!„BdY¶Œ$'7|ýë5ìê>’ &!ä7\©Ô§Nu »ö¸VêâËÄ@˜#é<ë æ7s*)8äçW£„GC—¢0c:0|¶hhtÍ7öŸˆPÔÁ:;âÉ á”|Ą œÓ#ðÐ *¿ ·=Êâ8´®Ô%VÇ·üt%.:‚Ûétu]Ä +²¼é§ûõ"Nz‡¤¹é÷ÜlÝõÙnÔEI£B߽੅|ã”Nd§Êx<¬•ºêéuµ¢€5žm#CÎÂFEãtEĽA˜5‘¨´)ž3ž•êÉ›{íÐ՘³¡÷‚2ÚSÙén®}Éè͔I=[I hTͷ勏*‘š—³¡*wËÃWKÖrꢹN’€¹,z V…)бÜm#AP‹Ö(¾mZZ«HNd@cÕE¯*çh+…¨ÅêÓu°W](nwL:@ã÷Ê9nƮҴ´Tô¯úlD²‘ž¢ËfOã"W'| ªQ'åsŽÊÓÔ瑗ÕæÆôRl¬Ä•3s `PPtêÆfƒ),5ê\F–¢ž6Œ‚û¼ï}TÔ …VTF¤¡g ^BhÖ `PV3¤ñ0wUsÆ8X º×ÙñQ?‘ۙŒNJ!{kêSƽnvÏ®5ÚÚ¦¾jéTgôqêÎ%Ž›^J–·j4 pŠªÖ ˜©j¹âÏD®Ìs4Ñ$r/{·9CÞË4Ä&ÒÎb±s‚h%1£²"ʗ2€L±…þš¬ÌG‡ý¯$FR"¨ÑõäØþJ܀©8ŸÐZ L:¸¾r˜Áy.æë¦åÏLK ‹P*EøÕ­ÏR%öOŠ91eÖCÀ*s¬raá" ØŒ`´À¯J56¦£-k¸6:ÓǁҁX\Q °-•[Šà«•˜¢5=W{ÃJ Wck‰žT\À—ªk+ÉtäDµ[p”àŽ +éÏò.݉šhuöÍĤšÒœ“óÀ*qóFsãN*¥µøUZá¶DY“½8•ó}ª:„½Ymr/å#äºé=Ñ< ђ½Q·ýòÛHa䫗PËR@úžISÐ9²îÇLzZÜ4”VÒDöaÝEЅ0,a©ùµu¸Ø"»Èœð¡XM·u»æPH†À´Æ¾³’=M½Èœ×¨Á1­†?°É¢¯”°Êu°N,‡Y9í¾ê†ø¼ïr‚)OONç1:-·Ÿ8–S‚1­nÒ¡ ÝrR^-rSX`ÝßGÓÂB%©×áyl¨0ü#M±ðRŽ²E “8«–}í~Cê}Ì©âåú}§Íße¦½ªmz°N¹q™(ѓu¸á¾æÙæj'žŠ[Ѭë½ëTƒ^še‘| ÅFÌQ†ÏN†!l ëdp[ ž.ˆCç›Í:Né»Ý-¾ƒZZ¡gÝò¦3gçªöhÆô ²zË ”»Úïݖd=V©b~¼´Â\þJܮ؇½Ì´1ràSÒtd]¡Cxe¨ ÀB86uЗHw'£\!»rxƒµhÕp5ô¹ñótÈ÷֑Fq´£œ­Õ?HÑ5Ä9ªgN'@ÍïCc“RøOlN=ËmµA§F%6šàºÙPÄ@%¥(3³]7†R]™#¼8kÆÆ.ðºQþ!åk¨Lä¬Ò(·´‘;¯†§â-TùXߊ)‰Xæ}.[ëpˤH e…mqN q­ƒsuËÍó ˜Åß6ö26³¢¨ÑlôWpv¡–¹ŒMÐ Ðcʙ¼7áöq$•nº¦µþÑ)™èªè-—ɳW [©Þ¡úl–K¢zH!ˆQ_ëDpPQôœsÀA UÐn0}4W­ÇŒƒ¤z%PÍY ëî9‡¢1!ê›\>äØ ƒÂ£#ÀÁÒ>E•/îÆØ%@Ñ?§ï A{ÑÔÅÍ ç}(%ÈVÏÁyØ ñkT ëLÛT«hʐåfa°Åý`ó¾‚ +Q±ÛÁ±r#/¨zVB5h­­ïÂmY3!™e®VC  0Ý`¨Ýó,Ô>Ö»’rª±© ~ªÝvVv8²‰c‚æTŸ5J1[(‹—¿J#H¾ºxdÕA¤å•ý½·¢¹íŒ—u¸(‹‚MŒWG¶=­fÎÓDz›áA ‹¯©ÈR¦Kðµh¶> \ð³¸!‡ÁƙpÓùñ®³¯©”n“b­‰T™ ¥K«¬œ!p‹PHקÞþ_êåÚ!¼‚ !ÓK†à:€r›Â/›œýâˆF‚°5.“Š„ ™lڃ¤i-|ƒ,|='Œ m^Cǃá‚øÜ,ÿîÚÊ!¢@Ò–…³Ú1à*W`¤‰ä*ÔZG£æ<à»h±fιeW– aYƒ¤+ÜÜޛÄ“½ +¡þ$ÔùË;Ì7˜j*îW–ã)ËÞ9¬ž®L0˜œ 6*¹Á„Ö +¢÷uÌ˨€Œâ„CUm´c•ò:Ro³’›s$sج•nmàM-By–¨‘5| +8]+úƒ8Çï'?<¥Ó(WßO‰Tó>"C9ø‚èÖ»p,×:²»ã‘îkn$nÁj£TÑ"ÔtšÔ³*~8ØÒöä`±ä n ·D l;’û°xäšëãÚŒµOñÑe‡jM‘ÊL£4Xsø•à‹­K+é™àç/P衶R Ûv^©£Íb,šãóµò5Õ©hç9V£™02‘ìåµ¥z1šË¬'Ò1˺—ëÄ©å©sL¹ËÞÁõÌOB_¯ÓБå`j‡^1OΔïÝJº¤&Ð Mܬöî 龟+i;uš +'roüy­`/¤YËo‡gk…„úù`¶Hõ0_ë2‚*ÂGHûÏV¦Ñœ•èD¬FÉè±Y´óyΏϑW…|ðà €¥1kÁøÅëڕxEå·Ï62[mR`ESKϼ.ò^ðj#8¡eÍœµ“9ˆ0eÒJ*«–,D®‚ý…™ýʖW` ‘woº¦°v×fÍd¿¤TK­B”žý"UxjŒ+›¦ñ€d©ªšb¼¶jJ$hu;åL@«°[ Ý¥¨7U I +ºÑÞã½Ð+Ù[c%ƒ»•¸Ú¢ٝfêkh̵} (ÿµµÆJ}_ë05:J-ÐT”wnqÃ~nÚÖÀÝ,¢¨:É« +Ø*ôz8û*é +Ød¶ ›Ædsè²E¡x™ Ç¥Jr¦3*«`$áµ+ÿ:ŠQƒ¡ï<ê4„'nrÂ[‹"Ô-捹_¢–äl—_”ȹåÍ Û€g$!ñˆ«Åº™qž×ë$‘n(mk4:z›µµAÐ]-\'…PÍÎ"·<Ú¼Ýø`öƒäÒçå^ðkUQ'‚ß1P6›&Î@ÓàR9÷ÚsÆn¦¼Ñ(ºBÒ£!°Å僳2±•7g0°I-søpÇÞØêi÷äŒcT"qFbu¦ËUtF™v0ÇðÕb/~ÎÑÞ šyºäÍ©E-¤; ®—¾jwÁÿ‚Sê«&X¸£Ú€ c< kÊ1w­ßtwUv¶¢µ 7«q¦~áâk-Aâ–ëi(FZ—O¹N ݜÊÀÚI)¬ÒìSãXt7J§ª¤*`>£ˆ¯¼ùÙhÕƇœ¦YädU[(ё°3Œnd˜WsÛ+׈Ͷ Áa’›€€S &u!\€Y¶ý´ƒ£†$¦êb֗+Ə@Ø2CÐ<ݏÑ싗z j¾zr«3ª­&u<‘ú®XPBTمšG]h¬²ðB@²ÜFܕÌ#­šc'5]¸ì–{Á®)Ò¦Æ 4E3„ÿVÉೝ$âl.€BL÷}òI\·¸eª‚Žh0QôŽGt †n²†Ê5˜*µDn• +1ô–›ëšyK‡v}WšSOã*Rkƒ½Å¥Ù67ÄG$_àï#€[^¯2io4bÒsLo QB=¸ þV4+î„f˜³Ñ܌ñ"w™Ù“.5óXÅdbÆ)=’ZjÙU øR$µ i¤Ê˜< "cEä¸lŽª €UÈ2%ÕØ(u& |§ÖŤúxe,oDFޖI…)itÛ`þŽOI“#ñ }ƒØ’¢…(të|v+ÒäºÖý\;¬Y9“̨bsÖ}I¿©u¾PPV—t®Þx¸u VVË^*$ËÕ)mÕô†XDSRU¶©ô¤Q¡+Žy^Ù¹²P’'G;Di¯‚øŠ4±çØ0é$#ÒHYE¦‹’*c®lçwHŽ-†ÿ Y}“áSëj*Ó!õª6Tl´ª‚pÐÙ38¾Uš0âšK)o@ Y…úÀ&q'€z +O$yƒ”…|{̘Jݜ¬Ø¤ÆþºlYHûÉá26Óͤ9?©¸`ò‚˜ªç 0«ô¼oB 刪v‘É;ª‚‘1_!D²2L]10Öü*uÈ8ä`*Iu(5 CZT^U(áŒÉ+#vúP¦¹~hHÞB:´B’¢äñ{å$E zæK*—ÕñúÔϘz‰_5g¾ö²ÇÀR[G΄›Gbp),Ÿ¾sCѨiíf hNFcïïÕæ¨j§¯$,썳¥;•vSG “±T飬ä`È×í\ÝNJífšGå³1Sˆ®ÅD½«û° «½çp0£9§GéYj«ÖžTÆR‰S™PӍ<ˆTn[€eŒ‹¦q +Aý“Å«ûÔAÚ6Îr@ m1¶Ã*µpÐF97\6*,ƒ§{Œ×Â>®¢FŠJ» üµ.°Êd©mU¡®Hu§qC (r/a/š‡Ê*dïÅAm +C’N£ÆZ³6Á³Pðu„íR¤ r-A‘-¥°'¸`k1õ¡ji]]‘œññ¼¨cÇ±¹Í­Ÿ5=zUÍ3Fp•XÒÏbÿ>ýÓÅËîo¯]><¾½góøñڕçG×>=8Ø}…P‰ÓbüáΙ ©™öÆ$ÅÒôϐò´úO¥¿¤I;™ñõnLÝÕ:Õצ;­9s¡ZÃõ”žMê0³™s0_sÛ¾ÆxžAÂp +&û7 ëµß€¬²þ Èú7 ë߀¬²þ Èú¿Èúã3Õ¤í쯵]ól½ç ÿ¡¤Yw·¬ÝØ=øÛöá æ¬÷òÅѾ+zE°}Qüĸ÷ž›Í™Mn º/s„+2Ø+hU›Ó›%E¤^Û¢ï YI¤C~^¯K°6×:ý퓱¡ZohÜÔLÙ +-=ê¸dë^Ñ!ˆ·Þ<àb}ÇPTÀN»d"JܷΪ\g¦Æ¶Ô4g¬Ê¥Ž(’å¢ˋ>3?pƒìÜ}Õ8Ÿ+ÊÜàFTüe„lNAc‡,¡>˜0k»Jk•ïL¢%GB:oäšd’t¥X,È®gs.ö¦uY-{Ä=°$HÇwE ©!wj§qñ¤mÙ-k´BäōòªÂ"tn_Ö§FG¢×ÇÊBhÂ)H¸ŸÐ*’#CuvX/ÝEµ ðam9T!FTD6iBHûà å6‡ã_A¨ªu5ä–*o¯`NÒJj;Ç4õ¨ÆØX¥Â¯:?ò±C/U 1©ÇÓ­”v»[žÝŠPctÓÝP,‹F¤Q2˜'÷%תd;:–5X­©z#SJ1í{±ÂroÙñÞg¬¢«¬‹«‡iϬ±Á-JÜÑÚ\KGeo®yD–:“½XJe._ï±n¡ +Za ŒSŽ6™%›/!¤HÖµ˜ÈŽ|ʵ©!ãLvNzuZMÔ©žž±[+&ûSGze¢Tıç_;4”'$ +T0yØ䪇ì©úÖÚ°Ü1Ãå±móàÜ©Šø":#¸Ñ˜ÏT1B uÙgdYG"%Ð@™.’tp+“ý¶ÕÓ]ç[¤"è (?¥}Y#•Ÿ õæÅ7(e욌—8dÞâm§D,י¶slüČ­Në(]¥Œ +`蝜Ôq¤œú(‚âé„OCšÀ}+ùPõÒ¢·ÎÈóenDø`ŒpN¹j«‚YÍe[“êÏD›­é9Ä ‘œZUŠhdCøR;Öµ¡Š¦.ők¤\ãd?'䟒1c¯c½Áêgg‚ÛÜ¥¡}ÈQG¨4r­Ýpì"«ƒ Ì îà·Ž95׎Å1JѶW¢„nêÚá2±±®]±`ŠdÜ·¬KPGÙz5'm3ŸÈœ!0¤R£ÒXóôæa,﹘¹e@O yÏ[\f'|Æ[¨HVGn{±?ÓåKç´ªIÂ1%wwÀzc:“«È¸aD¿ÚJ׺¾uY“ç´l8”˜ÔÈÍé)— –¸œA Š ø±s NÍ»Åkš0¢cS²“*z¨cnÚ1(taþ!r]×)½6I²ü伺‘ÐÃòÔ ]`Á·—ëÂû °È»] ˆ¼ƒ.ëÕ&-A‰ð¶ˆBƇ§Y÷´‘DÉÛT$hú^F–Þ@U_LðHm«W€y|qóâ$[kûôØI­eg}“u “b‰•¼pît34Š+åÒAt¸}kÍc.Üíàò¤À÷àíؘ4˜3ß÷áóLÒPqû£R$Ö¬U"´,èœ{Þ¥ž^Z(NtÅ wk]ÉZj\vƟˆÑÛIE +hî)<kfŠM‰N÷,V^B"—· ›Æwf&4Ê#ˆÆŒúÑHöÛÑ4¼aeNŠÜ-ƒ¹ž9šLèË}ƑošìVŒÃ xJèÞbŠ'¾EÒ¾i”¤[֗v‹¤òÈ@£[¬>ÚL°]\èI³“>eôʜ˜ íA$˂-vsv}¨Ì$+° e7£€MeZZUî1è˜}?ONÌ :Æåäv³×vç— ÍôHy˜'¢ô,w^w$vH8 c(9ó¦لrØx_@‡µþ&*ݱ%G}±r(Qõ»çæA.p*ÓÙR֎٘R­„KcÙñBÀ5"ó$¡ÅPŵ34)÷¾ÀîP„yÜò‘ WƸm}%(ÿ –e‚Ç~~®NÈ¡6Ê5²sî÷l2՜ ¢™Ž’eÀ¶k£¨›‘‚ 1g+ÜÌZÜ-¸¿G§‰ÐÞà5à2g4Z¡êlRihÁ¼Ý†žFn Ë3ð¡t%|—½í^Ø½mY4„û‚l +_­o¢TÍ +æùCN“® +*Z¬B뜴•ºŒ¡ìº¥ñÁ\‹ØB)Ñv‘ÐOˆ a§!ç©Nðú + ÃläŽhŒ¡Õv† TªÂÒ&¨¼ºQN†¬tª±¡œÒä"—E®æF5HÒÈrT|ÁH“Ðì­Osߝ·Ûòã£/v”‹ˆ¬2Õ:;;hï iÓZÆüÝ[^‡4š¯Áµ`yýŒôâФŒ²­âÇU)$TúJ߅~<8Tј4›LÕüMÁX܀S‡Î“`mƒÍ‹ØX|Û¹Àw-¥R¾9³² kDt/‘Mʉ‹Ÿ$Ž³Ê`‘Ï¥ $¤kKaù•\ßÌ¢–eö­pä¨ã¦.Í0H£¦ç–Ýh†$b¦ ׃ÓÕn3pڜ6ÂHXàQˆÜTFù¬K }/•eY3GA[‡è®Š&ìsÉk´ñ‰ïR¤’4u8rŒÂ'ØéEÎ(º8†ùŒýð / ÂéÞ¥i +áf»÷i‚†äð](´°söß(QL¡HӬàgój Sû`Ȏ¶˜åŒ†áo" z5päð°b¨·7 Ürqq+úG¥bù€(î4DꨈB,ƒÉ&hæñ¹åæðõõR¸£9ü\¾£Yµ² U‚À.¨â A øÒpY«¼w98à²R¯Q9׸›Olæ0ƒ]Š‹+ øú%÷Á^e¿A©€BUMS,ëHAƒëh,x)ˆH3%‰9—E‚ ޙÂ((Rê9Üß)î#20 ÆE0¼S“ü7€k‘']º†¦E±Bª¢ø–Ù­ÉIß;å@6ˆ\ry7Ž²pŸ¹s·ž“7Ä@ Ò2qAt`ŠfÜ5ˆÁŒŠ¸$à#w +6dÆ­Gî1¨æ-¦y²¹’ûž J[ÌÍPrýûڈ㹝xGhI4v51âÞÕHfÕÞ>[]ßÓfQaÃIØè´-õy,¢¨ù]}‘ ÄÇãwµ%ï…t76jà ÉLb~e¿ä‘²ô3.ü&,ág”‰·qñMßU#¥njníȃX¯ ɍ·rŽ**Vd c¤[¶ &»Ÿï:]j˜ë¤’[Z €}sg³?,É®t3#’è“Mˆ€Mk« y_Yö˜Y +¹ñ@mz}•èxÛè];§[žÔݨIrø¡‹¼óbLqaçAxMƒŸô­+J•[õêh¸$|LM­h•0ˆgi‰pY\þ_î¨ñkÑز‘ B-쁸¿ˆ*^5Ú/x’P aì3lÕr±N‘ƒL#¶FÌZùƍ aµ©Ñ/{Õ#€(ûÑ²î}Ô³%e¿vJp†åQ‡LøèљüAڅuÄ33êÛZ[5sY€ŠY£ü¬üþŸ"X©)–—֏[qŒ±ãBÁEŸaß{ú诗ÇV´ÉD—wZdí`l R€ 9£èܐkb·bÈpæJ„ñÍ,£‘Ñ„ïÕúÑú¬¢¾£Ñ h k\685·EcjRà +µpJÇ®˜ñ}'*µ­&á꣭QúŒ&9¡‘Ù0Qr%ÞµŒL …£Z¤ìP +"#×!Ú¼¤yÝv0½Þ«ØVEäfc7äã©y\iS‡«ž¤ŽÒÎ§C­$óR)œCÿjÌ؂ƅ +|ҁ30 +/Ø£e^>­ß¶¶ÔqP6CùNkwq½ÄÍ1)nýt^àýoQ£Ãûe²Í§»Ž/eLý‰ÿ—½‰,ÝpÚr˜Ó™±ûAːÐpL¨(G›TTÚDІàq ñê×¥ùXE’™àÙèÔA¬7«—Ø™:2˹Ü;ºu,tÛvyCu„n­œÆpe‚EbãËðDÇK¼qo:Фð÷,¡±ç¢Ÿ¡ïÆ´ ‘5ó½BD´Pn;¯átеW ÉÙFԖ gq167~¯¸a²½†Z/«æðT3¶»ï©Äß~ûß!›^ˆDlÇÌ¢ðJÌ­y¾¾—ãD¶¹£-ÚecÜß*‚\yÎ7ÉþE¯s£ŸŸ[]m¹è³¨úê÷»1öWŒuåÙù]›¢¿¬¾ÿÓ×éÐd9VN„½SÍ©ÍáóßN/-ÔØ:"nŒX®˜‚–Ï2JÍÛgÑëJ#Go67œqÑiUr"¨ÂU¿:ؕgçך;=1159ë8eC[¼ÆњÁÑ!#Á'MšGj5T‹Æ¸nR%ývñ,*+ÚöD¯s£ŸŸ[#yaî³Ài-¿¿™ùˆ—c]<»|×èôäûǼôq6¦ŒÙ ±EÉÇäÕØ5–)‘‡Ü„Š‚&.¡†h’åó]̋€â(éBz pwIËyQa•ëÐðUåÑn(åÌ̆`#Ç\\ÞÒeÙA+›Y Ìïꋆ~b05ÏL½»¸AÍ«Wæ*‡+W.om=Ý»{pÌü»EÊÜ?6}E8xô텡0ö¾ŒiØoØ5¬ÕçÂT$åSÅ]_`¹GRçæ¢fõ¡ÔãËÊäˆ÷B‡;¿WéõÔ„™Ãñƒ¨3òöN5/NT4•+Ž,°Õ¢1Žs˜Æ‹g[¯ô¹lä÷G=šû¥D˜ n䃞C$h¬‹'çwZôyêý11I殤íd=8×GØxÈt›;o'|M;îÓö̐¶Ó9^û›moÕúÃkÎã^Äpt¸‘F%:æ쎼ÆTwÄüЉ«O:´@óÏäDìÔoÌ'8]*:Ng¾t&FáËM*2õ°È¢H§­s. :YۗÍ$µð¹ŠáÏ2J­^[+8³¯_5JÁ2T™:@~„dòøºj‚éômõ3ôP®ÂÛs¯ÄËÉõ¶HsßP[°&ÛÞà‚™ }`~ù‡‘œ+¸\H´ÇëÌKƒœ@¹cQÁ)Às|¯!Þ< O\€™ñžêK®aNÔZIƒÀ$®/Éð!è2&»¼"ɕmêF´Žšø²öteåÜó$Ô)\N´5ö<´^w=çFv¡ê"í¦/Õ«ŽÀàWm‰qÊ å]®Œ ¸Û£={`ú0šJð×ñn“ÚÉ#g>JõÊ)a¯¡IKžÚF‡3üœ5É ôe¹¼‚%w-ן×|¹”侏Wpp  x.¸þx¡NG¦e–m½VD¬l½7uÄvÚ¢î4sò ÁÈ)Ís Ý •¥¡IŒ±&òÌô‘نܿES¾ zä³RnŸºêêQӐJnS9‹½«±Š³6"˜¦ +jÄÅSi©" äø|‘ˆJ­ÔêÎéöÌzd H](2‚>ƒœà сã;Huýd˜pÀ­ÅSQ½€BôB^»¦*óÇZ}ÑP†„åpÊ&BõÊñBKgG㠑™r­]î4j-ªÆpv˜U!§¦w4uæ~ÉcÃæB­ï{·E=¾~ K‡kuÕß?)þþÈ#Êä"¶©Ò:e)Óud¥`Ftcê`"Ò_u«Â—ù3H T|$#>æðD[8Ø«Bp0Ú.CÂÑ¥vÖeɪd 0%RÑh5|²»–pS•#Ó¦rµ–¶øH»<òfhfçÅ¢, f|âÂñÔ¾®Œ«aѨ«%Ä2&YÆ.ç®x¼&%¹óWe÷.G³;5}Xٝ¹x6¥éFœš–aD®ŠÛU ‘Ér·ˆš w››£ëEĹùìL5iÿ`UêO®=8Ú>>Þ>U J])j@끹*Lèm§i”–Þô ŠTŸñÏAÖP]éÅ D‘Cª„‹ÆÉ{VIÄ&&Á¡d™BkÍDá;¡P?û³èÒY€€Ó­Ã•UՁ(ez FÛP×Ջ ­•8ºÌ¿b)Ã[‰9­5´(`ïT—4Ay¨ ú qÐú¦HTѰȃTUÔº¤Þ(4v0j]Ìë×vÁ¦Šdœ¶ä/ò¦SüºQ†Ssc…´.@iŽ c +E¶× ,GŒ}x¶q%QŠò7r应É6«ÍK7ÈMÚB-\•*ßÀŠï”$»Á|§UR^F%dŒÈǐFLw¹ÐWåbÇ*°Ð…œ5eÈêÍÜ¡Æx%:¶a:!ð[GÌAݹnUŸ3][s(£‚HÊcI$a|Ahiõ""Nha¨‡hb ÕN|œõNDéRw zùž5òZyVá”÷¬g;K AKßT5¹M ѕ,ÜÎirZ™^ébj3z*2™µãP3h²Æ!RC‡HŽÈ)’'éùîM“3"3?ñÉÀ½Îa$W‡PÉfIË<‚`X6låì¤ÁO4E±2NcS*×LHÉü+¬ŽÞ +Q%uy(uvM”õa¢p7÷ÁC •K*~% ¥¼ú °ÐAxg­À²}{ ‚¬³‡(Œjj4¦[ aBFE.l´uAúɸÍ"¬,ʱ@ç‚úL¯@uR>‚™õÞbìAøƒBöalõÓÇQå‹ +)2b.âNš‰K¹gqydQ¸gÕ¨5HòÅQ ]Øúdì"ƒJU¯Hérׯž†¾º[$Õ$!€Czc>ç B®–y‘üKmœ)á҅9´ +ÄźT¸Á÷,¦œ0O*UÓÓæÀ+ÃÑu|ªaÎg‹Ô>ò".3ØÝ…ŸŒÁ³ÑD]Ì?Õ +1j,=q@»A⫍ƒÈ4•äœ„☵Z‚ýU:#¸]N×·­3*–5ÄR;[9yœkÁ!á†ãªƒR³óx\õ̇8È;¨JÎB ø Nf#ô©Êð)—È#x`,ˆô² zVÕø¦S¨šâ<¨ãÂrOë0 “ŒaC'7QΊïr­ÒªÄÊY»Þ%6i%ræG“‰"6©jKTûÃ›KœCaRõEY”_ÓF+r‘¦5˛ÍÛ­º~#ÇÏÇ'sÕ#kû(#ãJ óm©õ0ÁچN…wKG‘& Õrª"AL6…Ìïé€7‘T䰂ORpMDqw=CR¨Wàïc[ŽìdÝÇ,ȪÁԘ  `&pôä(J°€î M¬ë¬òL€KŠ‡xFM`Å^»-P?,a4±r–NsjÒBE.ì(v£~‘­îÂs¡ÆÅ¥> +ðØJMTþÀÅ#ž-0ˆ8Ò¦.dhê–0Ã%jbÅðX¬e$nˆP‚èÏ(÷RÐTÒ{UÅ(šºÔO ®ã¼ƒgÝ ¤‘|Бo `”Z >cUJ«!`ûW2ÿ÷\'†…ÇüÙ"C]Ž˜ÙVWŠ¤«ÅäV•†Ü‹Ä©„뮐?^W. +­3OÈ«dୖpÒ.½ $;(è ÂBB%®¨èëÑfÛ×ñ.V„¢m¬æl,S-Ž]±ør$…c-¡mõِ®]°ƒKœt†Ábï:Ò7ŒN6úCeAR¨x Œ‹†q©f™òÌ,EYyPêC„0"pW8W^#R‡ù*¥U{€Õ! ¥Ñ\@âßÉF<ëu1‹´!õg»`qB¢c@övQ/¡‡}¡ +FÒ¾?íìG^8VtP5ÐhkÔe@)ˆEÅA]՟~/€ã¦Ø +©-¨ïFÝ \ƒw73€tŠÁSº¼ó[a\ï^Ù·º‹›¸´êQ|D*Nh‚¬Ä)>$z¬muìæ!#ÉH·!ª?¼À/èENÛ [N}(—WŽ³½Çà’ bJ‡òьÙà%6194q ½Ñû1Uœ¦@0;b®xð˜–Í2–ywڛÐæd˜¸çÅ4wEüAfHm6›™¨³aþԑ…‘¾Øڂ%,+GÖQu…ËD§oAPOn±Ü(‰|^²Õ]‚¡Ø­5içž7o”ü ò)’WiU0ÙGem§¡k9µ“gÐìj.ºõšÚšY-=¯œDüª!@Þë~ÈåøøÀ]” Ѝ  qmT#ó/,Õ.<$! GÞñ`õsúå(7›­ ?ª€µû.QB)V'ÏG/KWŠbEœâê=;ˆG„wªÜ…(‘…yØ CÃCC¨GHoqiI‡©åÉ ä +Žô>êÖ Ì9êÂé‹1KbŒð£•}ǯÁ<ÕÄ‚ûå.™gªY\šÅ´Ø3´Õ0¨%ì'™'#Ñ +)ßn’ ¥ÚŒ„o A¤jQ0Á#ÉS8ªƒV#u^]!ƒ®‚.‰¬Z´ÍchÙ¸h‘F]µÐ’Ðs@«¸r£#)ºå­ìCTRܳ²1J‡¬Õè‚âPàSkZ8wˆšÙà¢áâˆN3³$75*äÓüÚA$ ¨(wKÛÓªðbºpý¡ÐG˜kW‰4E‘C½W„,r8¨ªBÅub*á0+¨?¹€Â¾»H5é¦$nîUIˊ˰†…' ÚNÜRl*ù|ü£ò2ìEIå\ê˧/Ç¥]Þ±*@©ºQÉ72“Lß÷ÁËëÄ$p0G)æ`Z•4q@ɈC)ÏÈ6ýàQÌt 34•+o¼‰€¬mºÕUå»c+3\Š5O¨d+‡”rs»¸ Ku„ááaʶFøö8vM å…=ä¡õ&½sgà(¡¬CÆv°-@BBþ(Pˆæ± +ÏNq̌mh~ˆb_¡¹j¥œ´mL¥ù'Zƒ ÇÐú8ŸlA}ߋ•m¢IëÝsfþuÍú^¥.“[°¶ïµ‘‘% [¬UC!~šìÐZ7TøU`Š(=²yð}t½pdcñQáVq¢.Oqâu®eÜ XŽÉ‰åþ´1‰Z…Zbk .Ï>,-6ÕWt¾ôn  élçD¦s?ˆÞŽ½F©¬¶A”8ü«~7€âWBž5ÿÚ£còTôìÑ¡>òB´nQ̈́ ƒÞ.¤S";ÏÇ«_À3'ĵQ:8ÎhçŒA$Í ¼tÂR‹]da4Õ?¡l¢,ÊîL|_\_t5JÚ à"§$³~ƒ°F*$T•‰ö¨›­ôÆÙ¼& )bµí‘Þ8µBà8=®^Pz'®¹ª‰xÍ´Ýo#/ÒÒD¡³ÎQ+@äÐôÚ Ší ‹MMo0Ø·ìoUü½Áž*  +Ž]o;Å´ 2ƒ¿&ì@(é^õÑßóŽ¢ák›^¤ªù¡ K#‘-™rϝ½XÀvNQ5ÁÁ +Ì»zm•8NÝэð¨Æi˜ªIQ¢…›l`3W!•+:Ï!_ ²•Ê¶G.7”OçöCåÐ9)"€u$ø Ô®-åæB§‹CºâgК6BÖ×Ñ7³!¨b‡“b(ü®‹ 4_–`dD6n¤l°nhkQìÁØ«:Nß8#çà€(0Xb­@4a+ ;ä4£(§Zx:j4UèhZ¿SzÖòÈAŸ!¯pN‚%43ô M°"äí +½tV9ý—ÁuY…€¨Y´ÈNgò8 üQ˜àm#µ +ô ¼nÝ53žÓŸ€;aÔ.² +3ƒ!±dq© +c¤?Ü GUæ))—[Çx4*¥Ÿµñ4ֆø±Mh‰!›®¶ŸeU7&fè`$;õ2Yi³aGÉÆÄýo ½]`]ãÈ ‹ÁüNÝoŠó¤ ãэ®²òXuϺ¼gGt°d– …Êë¯81[x~Zݳ½èÓÀ[!ýj¬ç`8$C¬)œõØ|DøÐ*¸ÜÅÂ<4j\ 󖬣À¯j¤”*}Ù¿Š5ehÓ~cð„1O‚·zgY0:t‚ˏô•zãl¸Ö\™åDo,ÿnÏF¼¼³ *{ÎÅÆ,ñ{(,¬Wêkyy1d£ÝQœ”Ú™„ ÙŸˆ)Tf¤Si+•qþô¬l>4¸gEˆ)›C«Ê¢€ÁÕ*5¾žoÅÞêž Á•e̅U~_ª!ãLƒHa~ì!l¾§LOÅtðz­Í0Øëʦ}Hjhí-âµ9:{ +ëÓ9Á¢ø;ñdWà8é&å*oÊ ºaÅP€˜¢NñH)XL-öeq¢1I·–ˆ( Uv\¨ò° %ÁÄÚA¨8†” ü’e+H„CÃ~ +2Žá tÁ¥š×_èLƒOÀÒòÅMQ-EÆ-¤Úddâêk{¢ûˆþC‘ðaGŸ"ÙP#˜ö@)m\phC®„¬s£b%ÝUáï×°ê`ºP‡B4„×kÓ"ptʾx›ù}A§.?|•²Zš×õn˜ÆA3†›©—²“KQóFájUBç/ëÐU•¦›:Œ¬:ZK=l©×SE¨gîìjZŒ‹ÒÂåilÈ!.!Õ%î{&gilÙ쬷T•Œ+rçIõÍܞÀ®¬†9†JI1ZÙ »g˜ +X¡ÖèvÄ&›®ý¤¦EònÛZ+§YŒôµ 79iuqÀ‰K–d 9/‘E^mXº™]#i0Üp5öF3{@OýMyH•|YvÝõaè‰ ‹ÝŽ³è-§…ËœÂLÍÁZx>¶†v–ãÕ²3ÊŅÕ&X´ÕÐyÁß³"_·|Uåõ‚vã\§Õp)v%®°×ÑÐñPMë?"–ÜVÆòî\}˜øºˆÌ)ì“Tµ¯h]8’T¤Ãx›¸Üž„Ó.Ç>ðöęÅF:xñ/GÏ]äýÁ­=Ðj~‰»¡okµëC¯O¨]d…*ž‰„ ”Ú|BS… S­©Ðžœ!r7zûAeÆ*˹&IéLãÌ3Ô k“$Z1°ÊɘÅBÑÀœ7/ײœ{ø:#Aß.Œ7Ӏ:fðÛUìŽA»I¼¯‡~jK* ¼ðƒI Ðà•…b—–™¼¸d[ú O\‹žWâ#ðY˃ +¼ÞAÌçˆa•L˜ª©Â "ڏ’J=w‹Ø|P ÄqBì0•€âРͬ#Qî2ž,eøW +d?Ri]䐂äS@èb°o‡x¾¼]à †añ¢i`͂ÒØ>ãÔºj„>)•,^lŽ¾çåè¬oŒ²Ù3ë2ûvѼA¶ÈTñê%Ž ¨á‘oRE ˜Â‚¯ üÀ6 ǝ(ŒééäedññšÉ¨ ³VÙî2êaEÑTVc(!­$…&’Bö¤iEõF5+(vJ±µ±­ +Á·;©·«´Pèî©DñG›œŸÎ–³-¹Ã¥ti9ŠTzmÍiÁÜ*ÚÛ§nåe.-LO‚Š­zà óZfÊi™‚ÕÌÅ×i¼¼–ëÊq$ÄK}äõ¨<5òT5Å ×ýD¾´\•s.åÃs¢!­T;]Ÿ áOi~5¸ ©mYáЭÃ8œ@¨ 6®$1 +‘®³Ú5Ž4É©VÏúB±ß#^ªëÓ®†Üê`Ά÷R”~¢©èM*SÑ]¡ a¼ +L ¥Cˆ:†6Œc:ûW ˜Õ{îa¦ ã6¨B_Ó¦ÔÌïŒ œ „‘³?§`@ä¡@ÇÂÒmÒوÈKv\C‡&zM0^÷ç` .F-#¸e"' ߙ—-üìmFx¯bèÚS9ø“>ÛÉWŒ×JÏÓF B¡Ïˋþd~ÎvÄÉç×Æ}¿@iƒÔCqp§¤ˆe* í\³ažDp& +ƒÌª»*cäPϬCk 4oÅ©DisURpûÓËvÒ,aMÈÔ(:ͧ¤VŸz爪böXtﬢÿŠ°¿Ò§0¹ÀhZ)83/‚â¼Ë³£2’öáäÂ÷#W&ƒ‘ÙÊ &„ԫ䋨Zœ‹@äa€“¢ÞC‰ùôꙣ±]DFÃLšLNGB”8¢ºšl• Ê]4†¿ Ë½êΆ†MÖÀ‚Ÿoª&s:º÷…xÒgƒ4Z…lLm=°Ä€7Ý`éœAW¹ìuV4¦³bKu:Èé e)»š¿ü4ŒmèÙð¬+¬³®cƒ¬—§ü •Edg«¨‰ g© ýMÔ­¸{֖^ú½Â­`Æd»„Ú†(ŠZæùvTßAW¡ã¯‰ÕÀñô;§«âæw3:í•a‰{Ё®ÔéWBÕ»T¹UsŽ‘·Nj\Ó±êÅGֆ%šHÕÄuÀ×õöV79ÉÚ=7äL¥ßN”סÂ0ä¤ÇårNØÏòxÐÎDRÕå~¨y–ùÆ Ûe‡æÀ€¹¡¬É<ßü¹x¼!ç‚LšÈf#Æ®q™T›­FÄFÖHÑؙˆ»3¿^q(ÕJ×X=ÌV‚›EiY$5ªB©©‡Á1Ë:@a©Ü)ã•!~ÁñÁÀ½¨nF·¹fÍú¬XU*D¢)VµCµ¢Wá gš¤²ˆr©¹ ú«"‹bAš+’®M’ a*硦ĪžÃ.Ջ1²¢…u®²Û³.pJ&ßÙ̂AÙE­V„ŠQcÛ3NqB™Dµ¨ærD”kLa«1DåÁµ³°/DV¦×FOª«…¢L³¤µV㔠øÉå?#ë©gÈF€Øéj‰–³³œ"™N/bÙ² +žlÀ{õæS…®D¬‚Žœ)BôV«è›žV¥ÚÂe˜Oó³#N1´$V”ùQh­JgŒDÕº¾—XIA曋†ŒÎcx÷Ú°pÀéèÂM&HŠñ ¶tÃÖ>ՑÍy±Ò +þ.è[ò…*Ø~C˜˜Ýh0[ã›H“ ¬BºYµO:¿B¦V0§E\r&D¼¤Ù%Wʾ hìlúb)˜6z Еé’h\Ř{%×\^F¯ÐU˜Æ×F'£<—ä&늚«d àQà?%È¢>”ԁ§ðû¼[I·'ڀJ㔖Iƒv^GŠÂr +Q eP\0˜«að½gªÕÙ=©éDŽ%%ÄLÒTtL@’g·ÐÀÌñ³âî{'™ÎvşŽf…!n‡>\<ò4äH•\uN+˜©‹@aª!AöqF\©Ú„JŠgc§‘RÈ:¼Ò*ßqLŽPpDZ^TP€‹N.¯Àd6hUh7\‘DŒ”ÑÙIæ»_èñ«i¼³‰ኴ羪£¶ ï«à2¿Ø8uŸ/(&P‹UçÆüdáôÑߧrLp¥Ç™âÈ×eµRèە’×W+—ѳ††«zðd¢Ì$€¡Ž¸@"> +•UÉ/ngg2=^£À)qÎü\¬ +h‹ž7øÌz8¢#njuÔ~`X.z§¯©sAè\±#kûE`¿%$І’“šYì ¦E/ƒ òe¤'6•§P¹•ÚÃtö°%„]ç î²&(ÖézŒý ²’A1^IMUŠN„ RQÙÕА™.ú]xÕú²×G“VÂAg_(æGD¹pæ5MÎ>4?òϗüëYg/i¡³wÊaA u%›„Ü›4Ý»V0;’zMqÖêÍޖ¾Œ·Öè¿0h–­•G"–-dW¨ °ýén +-O±{:x”=š™Ä ÷éîLÏ1mΡØ£(‹‘͆ǜ¸Ó†:‡Ê.]ŒyÚåƒ/”RŽŠDÒU«(£M0‹ 4Q…"…²ëž®f¨YU„© ¬¨üe,póI±kçiõƒn!lâ礊!;ÁGÒò¨Å ÜÙø”ºBÈ …Viðý&\˜‚Ý•+Îi¡ãc,)ª]çg™û£il‰ÎF<RúÒîg”‹j:u%¥s¤ÖLدtD5yŽ WÎòÝX•#?}ù:›X7ÆåXÒÉ4»|¢ƒcÐ<·ƒuCjȃ€Lƾ•Ê½ÈJI”È5#ºù•P6Þp8ÌÒ¾dž´DO©n˜[_ÈGº^§ò^"zææŽý }¬Ìd”ÿ ˜u„·a>SòÚò‚æ¡hfga©k%ÊÌnåQC^UùÑ«Q¾MzX˜íÔÙtŠŒOÖ¿Õ]¤-)ƒÙe%ÿÊFdšk¯J’)d ©ÅfTQœaìP-~z² š=2€•è‹焺¢0“Nª‰š[”âÏ!@+ÿ¥xë,t$’Jd !橨I:òdKž¡uqÁ?dLÌ1`˜i±g(Ç:#Ò:Ô/¬ÍQ´Á¿Ç {ÊW„Õî)qs,Ü0{zæÔîµ:¸»ÉQ{æœÉC8sՉÆn'»Á»å£Ü qp“õ¡_€N¬­jÚǚx¦ÜBú\®_L¦·Zkðt?¸PjvæsÛυRs²^g5zÏoÜÑzÁFc’ŽÆR&¥në|f”SıŸ1„ F‚‰@ €ô¨Ì™Þt&ÓkE%¡pˆSG K‡5 ê$S¨} ªH«ÖN·0„YŽ².!û÷/üZ•]õ­ÓÜ p­Ó„!ÃÚð’o.Qñ£¶4Ér$ŽFËÃNŸŽ›¢Fµ²ä~ë¥S'顚•: ™V¤ Òh‡©±y¼É'däŸÑ.8ñuÍ?kq6ç—n”T¦”ë Iq+ñK «h”ZÑrŒ¿P§¨Žbx@—³–ic¶þéñìcHKmCy«îh®©Ù"p&è=¢wTnf—=䂉:­ÑN¤•¢ìRÂý˜¨»ñº´Ðž¬Èÿ¿tˆ¢(§nSZ•œš‰…ùáͪÆQ«Âø®/Û`.§lû¤mo$çzL¡eÏy¥°£Ú— /¡È&C˜­&¤¼(y’ÍBb±#‹•+Ö ++C§n#Ðç´3ÍU…L&=Óm›´—ȑ²< æJlÏd)7=`°‘Rüg+dœ¦F&"kB#’€fcYUɞáÔÄØÊÓsÓøàETYu]f¬Œõ\£%,†ßp`ðšÉàAª™Áð®™Îšãf"« Ufêû`\Šª™yôƒ@–SÉB¨B° «`}V4mlF豆Oz©ÔñÇÔ:SÙ¡0‹«!Š?)í¼ï +°M‘ÃÕ¼.¨0˜¨S:êuéõó¸«N¥9s6$Gø¤, ®QwˆPÝ4‘ARÀ Û)°l{9™4²:"âmtt„¶´élðŠrè1lÜךŽØfµ;çäÔØÿl ·Óá?æYçì˜L–J¥\wÊÅ8™0ª¯:êJ!K[p! ]X˜…“táGu¦ }û­‰)-cT „˜MáNÐ4'è6# +w܉"·1‚wp!nb}}™C© Køa$;1`%œ¯£h#P 7ZãDm¼É;àURVo¸DÆH‚ ¡ïAÃ`J +RTF"v£Ön` ΑÙ,\;cR qÎ¥¼S–Ó0ǕäXOG.˜8XËQ™º _£”ŸA:Ì}èùÙ|[Ðà2yQ2³‚…†t-žô=¿uÕ3ŒqÔÒú.6ek´Ã ê6º„ÁiSÏ$ʝr„j¥«É* ‰g€©Üß ²ZO%Ê×®Ñ $ 7ÉEǠǃϒMÛx²UÙ&t9¬±’Ëæ®TÖɨÎD7XOh³Ü{‹jà‚çIF˜±€cáY™4ƒ(¶NÅ#Ñä‘ìÊQV$;µtÂ?õoÁv¸¿oŠ¤ø9Ù¿)ô«†.†ÆtTºu¼2hr¡Ãb­—˜“ÌTìYF+‡ÂXÝ/8‡yïlÈ b,Ó`ÜJó.“â¶ÈáHõܳ·Ì$¤o£ºwu6äŸ=TD Ô×E¿Ämã]†€„KŠ/s<PË!nãò„Œ"*Ѭn˜Ñ3â{¾–]ׇU£0`K¡·­«9ZSÞò·מêÆà1˜§²{\5M*z-BÙ«KI¯BÉ=_ÊÌ1â]bXܚœ†Ø2ìqb=»ˆ|R§'aEVRCæF….Á“‰ ¬ÒÕ g4¤=ë ½ð#Z¡ûó%\=Üq M«Ñ·?|õAþNÒ%ûѶ +Eªn”A’äÃ[®Ø 8C¾F®"Ÿ¬vJf¢¿×‚Gd´c\“—^xÕ£€Ž84xžÆÎٕ’sUÀ"7Äi…V€ZOd×®ìYB%ž–„—•Á¼­ÆÊTR]@ýú3h¨hUg(lBqùL(Ö:ŸE'ÜIØ7([’_"ÔÔtòÐ:‡a躱Æ金6Ùý5ñZV0$£ç&¢w¡®ªg;0—Š5zZR䵩\¯äãÅj"ïwF‘ÆŒÀ@`e™ÁœºÈ~ÀFèxŒ k}\p…õ‘½IŒl®T«cڈ HSl[n”,–+fQX—ª `ße ¿®iŒ&#rOöÑ ¶Ê’Àn\ÓV¥èøç"øiñë×ìߙtƒãI=ØØP3i–8óñüeÐ_îì>þ{ûþ7Û[Çg.^~pp{íÊáÓ£Çkmîo>Ú>\»}ø`ûð•þۚþxuswwçÑáæ“Ç;[~òӃƒÝKkõړã××nÿusúùô£¯¬mL],Ÿoðù•G3e7v7ôyuýŒGÙÅóú¿{ðtÿÁöÍ.úÓ˜–óöþÍãÇ+OßÙÞßÚÙ]ÛXûôñÎ~<Ê.žýüÕǛ‡[ó”<û©+›ìbû0œž9Þ>ÜÆ÷÷7÷¶÷7w×®`-/½²öºvÇ´VöÆϼǞ3‡Ó^š÷ÊôK5méßnmÒë&­hú?“LýÐ8ÿ¡¯Íe_ðkóôï8ý_šþ…_ʽR¾µJ‰ÿ[üû³o»ú²íš^qäÿýk¿´,,¾´ânLúWÖÊVÿ‚ïíOLr?ýû'ùçÜùÏ:¶Ó¸®lâÈrÿ_ZûlçòŸ¸Yÿ¶ aå3¬è‚¼nGA<"ñ¿|)Ÿ3ҐCÏëZ3C¸´Æ…ÚՈV$é‰aÕÏ̋ åç\÷çIái¼§Äðs§¶Vc{º‘Ûà8^{¦ Vmíøž§MÓiB^x·üä õ—iáîÿ}wûèÌ¥÷þ¶Ï_&Åæâå}8..}<~íµ3—.OJÏ_·ã¯—®ì=Á¹½±³;ÍžŸ6ßÎþšPë+õ%?òÚ³>tïxsëÛþЕͣ­å'¾ÝþÁÔüy÷ö¡Ÿ:YêlÓ;ßÝÞÂz>Àõ˜_míE¹­^º¶ýpí͵3kÝÀáóæ¿uíÍ3k—îl?ã]®ì?xºsüœ×øâõ~xÖ~腧¯LÛ{íâgGÛ×ÿº½ûÁ ˜“öOÏBéä9sðo¥ÓxíðàÉڽǛþö +1¿ÕEüMz}sçÉ´;u +¦¶½O/®|üÒ§;Ç»?º&ÙssÿxíâÖÑáF×.ÝݞNüÅ¿n£¹enº¿ûôpå™Ç‡ß£aº-Ýò`óðÛW–Óüds‡Ÿ‰ï¹¿»Ï Ÿ®‹øÌÁ“Í­g¬Áí3¸Iঀi²ä+þ ~t@ +#íÙË´ùÂ,Ÿxne͎¶v_pË^ÙÝÞðo½Küüê&«tÀóHç?w{¹tý··žbü?û,á¶6™ã¿B÷÷éÉã0=Ä¿âÏ=ÓCêcq~¢„,[ûÞ´M§sâj_»ôÙþÎÖÁƒíp_Û9z²»ùwýúʳÄ,m»¸ûRÓÃ#I°=ø«/FÓÝöºG6íüú¹Œ¶pVÃéýSýˆ¨®ÊûmmîÆpߛîÖ»ÓÞX;ùª?¸D—–óôm=÷œEÿ«Ó™pk÷`ëÛ¿ím/ÿöٓ£Ûצ­ºWvw¾/±„"YîLÂîàë¶»üÀåß<=:†âòÛMôÜDÿ)÷ã/ð/“ríoRrÈC@×]µJ0ÀD¼Ý¸ÐCöõ#ü)„Ý¿I¶ß$ÛÿaÉÖý&Ù~aÉf—E²¦VIA³\Q³†ðîXWÝsåˆÐm¿‰¶ßDÛB´õ¿‰¶ÿ +ÑVpÖü&Ýþ»¤Û퟼Aþ ÷Üo2Ñ2qø5ÈÄè›þ‹ƒ¿~ðÏ b~ŽEÿÖºþƒ×ü¿_8^ÛÖ8ºq†k<„€þ”ê_ÊLøÕf^üxÞÅp*ï¢úñ¼‹îò.Šœí,…;ÉÛEnÂÒm»çœsZâÿÜ\Œ_Bh¾·û«”–ÿ&AáIWêã¿òøÿ,6ŒÅ퇏¶‘áøø” Ðßð§ç +Š•¿˜ ¨›rb)'ˇú›ýã'ø½<°·»³÷‚èßµÄ?iE¯Ü/›âÊãé5/Fé£ÃÍ;ÛÓ;Ý+‹]“Êѽòhúä•+ÿ„~«å½ñôûïÿ¾öÑæÑ·§V—ºþðáöÖñs—÷Æö´°˜Ë[Ú¦ð»Óû==úé·×ÿI½æ¿ÿ^¸·u¸sÿþî¯Ñ¤ý?¹ãþcœ`ÐÞ²scÉÀP#vt8å† Ú*yÿÒû÷™²669fãt-þú\Y»8#/&lŸ.+ò÷òþ£Ý핖ëmߞtñÝÍ'¿ß<ܙ£=¯§qPi«œøžçüQÝÙß>:òî?p¾óàXaª9ÿz1¢Ÿ~Qü»6mƒ²Ý…ôÕ0JBëÐMÿô¿E‡þ¹‹âñÎáÁç[w~»*~Þ«â?Iâÿj±Ïô¬r\»zp¸¿}xtJÐó¯Ï•ò'>û¾‰ÌÃU«ÿ£ D`b 'ÄtÂH¬~½F"Xq´ES”=ŒÅ_5@C”Kü›Ý…ÿÉ;£™•‡ÿÄm‘¬ª 6ÒëÈm1ZĽÞ7²´Ý¿xû÷ûŽÓ ßñ¢Ho®Û†“äÅc?Á…œN¹sûéCþÍõð"埦Öͧ»Ç_-Ê{;{Ov‹BùßíÝrÑJå‡ýÎ$‡oÂÊîëûæºî-¿³¹»}|¼Í÷¹sÿÅKN/þéîôñ£ãCZv_½Â©øÃ÷gN¶Ÿ¹³uz®.~þxçx[û'ÏÉ´ì“Vî®8Ø@ŽS-psÜÍ7* ƆĂuN®~ôŇkw·D?>å¯^«–õ‰å3_lï"‚¡ ,Þ§S5?á‰XVüdK_ïno”ª”Dêñ*cÆ?ó‡¯þ}3>;¿<¾ +óï3;D*tÏâaŒ´^ŒæÊîÓX!p wírZ£…ÓÕL@ìÄXKm>|‚{©ÁÁǤxâ•©"bêÇÙÙ[U»öÑ[@ùâ­1­}8ý«ìJð\»vÔsMIÖ®úJSW#zÚ©§¹#®—6? + Iéjª¹~kîdàpÌÓÛÆå<PÛÔc¬FÖJµØì±ExÍgtYÆ1Ì>…1V‘kז7ž{œ¾{õE'Â|vŽci†0)‡E+®±e ¢¿Õ®æ×-îµ!ƒO±úª“;[}Ý2qs—Þsóþš£é~Ã\xxÏ‰³t °äÞìýSs'¹¯¾}f_˜æ†‚H#`·\ 0¦¯Ö;«¯A›·t›wÞº96l™ÿÓ N›jõôtŠNG®nفy~Û':¥ˆ}ÑÛ¥¼r¿Ü.}ù"6›6:ÄÆ uy†/ܬtßZo,œï›˜ÚA2ÁƒbWØÄ+ËàomŠÙ4‹×j~7M!µŠ¨Ôbðœ-;U|¹Iι¥È”€,ë‘É÷°ˆJ,êüÒw9†T>/]Å×eäeWw5:«Û“{9Ià‡ўã]ªØL­$Ïb™Õ÷ÊÁ³e1OEò`ç ýýíR¶é™]fMOµ^I‡ &¦"®ô¬WR—yen—g&S(ÆÙàc+;>¶GÙ²yu¡J×íª¤ åÁ‹S¯ª qxü}‹Ëk^¯Èбq5óþ,´‡®Øm‹xñ=6+sYÞ6´‡†²ˆ;Õ§+·OÜ¡M6¦Ž µiã­Û²î~¶l€.nû’ŸÔD:SE^ +Ž¶\]]ZnÖ"®ËÀfÕ§t£ŽaÉç®1»Æ.hÊ[æÎu1Ær úØ´ø_³”œã¦ôZæ¸H\þÃr­Ê®ëB¨4qãfm2oÛ2ýʮͱyÊT EªÇÀÛ¢qÄÀ½‹Á©Vf9‡€.30Äðs ¿ˆÂâgZQf¸5º6nö]71•³ÿ!d`˕ˍ:Ütý|õµéä¶+×o¹hºSùqEýOË«¡-}sBzu}å>Ò&níìooNµ³&ªNšxÆóîk5I +“ÕÿÂݞ~þùC¬âëâu{úyt{ñóÍ¿n8Ú++èß?-zûjíÉÉO°“;»ßn®];8þIþ”4t^{xìâËzûãëk øܽþï™S­¡×·ú¾òw€ ŸþT´êÖ¾H[y…nÓÜ<}Ç֝G+ +yìÜØ°Ëk¹‡X«OÞjEgëW.žÐËg¼?¥’Ïx:åp°‡b•(¤ûOé€ÿp<=$â)C‰ +K\’‹ÎB·œƒ¤+ZyGñz²³zžÿ4ÿ؅ZPì¿ú‰qUéĸ~jð6ÆE…wEߍ TÈÊä!i|Ñ:,m˜!Þp1¬i;NÇóïG[›pmi®=:s÷K|×ô˜ÂØ:–‰™Ú¦MÈÆa^Ì韬Æ>4Žj슌ÖïEfw‹ïhf¥~þŽb„ ‹ï¨gkgþŽÙjçëÚ¹s¥8­Â7õS  oí/}x‹4 g›ž,šYu@¯D”O9ÔØû?¸X%ýIÐÐèæÿÁuõt{íÊÎ!P¯î<Åÿ¿; ìÆ4L¢MòòÛ´ ŽŽðÈÁ¦å•“€Óêõù£óL];ØzŠRÜk›Ç›@µŽß h½â¡ÅïøèÖǶŸùÇ7×.þïÞîþôçIRO³üôx›±FbeO[ößÒÅÏÐÿâ©iÙwn›¶#Mã¯øÏñߟlë¯_Ú?úú¯›‡Go.è?–þuN4=‹ö£ç<‡O=æ‘­üö:;÷wöL¯Z½ÀäL“xoûøcNÏÏÐòé×~ÙwÜ?Øސ—ï‡Úúí/ònñäÏ´üÿäÛW?øö/´®;›“ì}‘ÿ£+ùŸtÐßøë u<ú ïb¼ÞÖӣヽ_V’ýëöáG›ˆàáΛDNjnÇù¹˜Æò+ÊÃ)=zø·_ñmü ƒ£Ý­ÿtY\ò5ž»´/´¬¿´ÌÝAÓTÿØËüýE^æï¿ôËT v&søGÞæoJêþñ7ú[dÿ¢oðX£ÇÛ;¿ˆ/OþÂï NÏ{¡ûǓ*pkûáñíÝGDÑúÑW;ý™_ÁµOywïàéáÖö¤0þâ÷þt;ýÒCØÛ>Þ|0©Aÿì8ÆrçØïð"»kñ0?ü§¶ì<Ý[»»}t°ûÔH'¡Þ.߬ªµâݘô›§OH®s¼½¿}¸vçpÙ¤ +òÄÌ¥PüÉæƒåòÑÑÙcäÊi:zrp|â©ÍÝïöœ"‹ðÁ“×ÕÖDã2öø¦—o®]~z|°vwóèxûpçûí]^¾9®=Ù|2½ÀÑÎÞÓÝÅh[›žØ<<¾°yø`m ìg¿ßê¼·½ûþæñ4[·¶6w1+Güû³kyö&€ãn^[>¹üó§Ð+ñ­«üöòÍ;›‡Ó7L>º¾wûÁÃƒ‡;»ÛnÿýĜ®<ŠDäiюÊ×ÏêðóÇ;[Ou˜ŠÚ°òð½§÷§Mpã`ÿøè.¦òGFpçÚ bzòþÎîαŸ-É ïíÜßܽ»ýäéî<Ⱦ-ëR¥µ‡eÿr7þº½u|p¸6}ns뤀>ñ¼ýöá_·×þº}ø¾½£S»cåOQ`µv¼ý¿'·&Gœªµémo¯ÝG¥Kæq´syØ´©>Ú>z\ö%7Þâüý`÷ßîl}; fí‘B)åD̝ß~züdzà‡»ïZ°~>o›¯UÓøC¾Ô‹ÇŽ7÷žlN¢këïÓvLg'֏vùˆYyZ躩‡ç?[/¾þGý)݆CèG[ž¬VâNlœO§°výÁÎñær§y‡ž˜·6÷=Ý|´½vçàI,]³‚*î'O7ÑçÚ­í¿nïþðNÞÚÝy2 &ùÿNƒ~4­ðÑ"¶òöÅ"»´H >!âNæŸÜ×ïÜîc¯Ÿ–R-炏œ8kËÖk“¸Ž>î-Göã#á·\šµ¢KßÜ}ZGœÃ“wèÉǞ€æqZ˜íÕ1Ÿ|ìè۝'÷'¹òí+?ø¥‡Ózm‹âj¾‡¸oýààþÍý‡k³$OϛƒgӞ8=eØrO6÷cÿäªi–•'-à×|éÊNÌöå{WoÞÚkÛÐðÇõõõëOÇ;\ùzý‹·ßÎ×.Ý~|óÆæ…÷®Ü{øѹ[ù͏××?Oë/5ïß}÷Ûï;7>úòûáöOßxé½[O¾ÿþûõõWþrm}ýw/Ÿ]_¿øÁÙ3†öÖõÛßÏÿLß²^¿{øÉÍjúáü!~ýôrÿÕ£Ýé‡ ŸLÿ9;¼wåÝí÷8ž—ãïí»¿ÿê»W¦^~™¿^ÿËÖÍðë›üõJÞ|¿ÞÖßþqë üºÅ_/Ÿä'ÓÏ¢ïÿ¹<ÜùæáôÓ+oá×OÏ\xïå×/¿6ýü;}ýêÎѧ—ð+Ú^{ýîÆÑôÃFÅ¿Þ¸º}ø~ý ¿n\ÿËÛß]Ä›ÓÆöJýøþ!廌ÓȺvoþû«¿zëûîÝ“Ç×ïšÎÞøŸkO/¿žo½ó»|åÒƝ˟~wtáÆõ+¿«§¹¾øÕõûçßøÓµ‡/¿áڇOóŸ9eœÌ|æ'ÿÕËçÖ××næêkçÿôFúËï«»ßÿғó‡ïvÝ;ºO7¾øc}}}ãÊ¥Ç{o¿ëqæþË%Æâ}öЋ÷»oÿ¨ÆÅ_ÏNSsî,æùÕ¯Ù8}zjþ`z͗?üóÔüíN<{ö ¬Îí¯§¿Ü¼;¶çn¹òɽw†üåǯWï]ùâw/ß}ðÎKW®_:×`<_ôݟ_½öö·o]éà¿{ïʗÝ_®|ûƃ×Þý+‹­4÷z{Úgèwñú^úö»Ë{žÞøŸ7ow݇[¿¿ºóÖûo¼zý£[ջ߽³Õ¿zý֍»|þéÖ÷ß_úöƒ×_}ûø°÷ íðÆå{¯½»uçуã3ú½/ß~ýÚöÑ;ýõ?>¼qåÝ7>þæÛK>|µé÷þT}vb4½yóèýÛ×ï§×ž^þð‹s§•üæÕ+ã'ºvóÁ͗Ï\¸²ûîn¾²Û^¸ß÷—Žæˇ[7«W¿¿Âñ8ûÉÓ7ß:¸|ïéúãW¯\¯¾w¹:ÜxõÝ«/ß¿xÿ›õõkŸ7Ӟ=¼º¾þÎÇçY¯Õ+¿ûêìú+ÿá»õß½1þŽ{œë:=á{ñ+üvîÆŃ!}ß}¾±ûê»G¯<ð§ ìíõ—ÖϾôÕëç^»öñúùúÕûëúéè¾ôÖívÚû/¿‘Þ[¿øÎîŸÖ_¹~ï`ýw¾ùúú«Ÿœ½²þÚïÿüûõ/¯³þúýWÖ/=Úyk=íÝùd½:ê·×ó¹ãóëùégÝzûÒÿ|°Þ½vîÏë}õõáúðîGy}¼Ñ¼¿þÆgë^s ü~ëo½ôy¿þöÛÜ^ç÷o=Zw¿zuýÊ¿»¶~õOç¾^¿þÒáùõw¾{wýý O¾\¿yûɹõ7ž^^¿µyáëõßyõ•õ;/u7×?¹ygýÞ͏šõÏÒ>[ÿýÓoήÿáàµëëüú­ÇÓ·|ù‡Ïúõ?²ûåú_>m_[¿ÿû»÷ÖüáÉùõ‡Þ¾µþø`óxýۗÒûë{o|ñÝúÁí×ß[ÿnëóï֏_«ß?»~sóéÙsO®|tö¥+ç^:{ññ>;ûêÕwÒٍ£ 9›>Ú|ól®>Ú;sálûÍœ>~ùâÙ7ßØÿòìÛ/oþÏÙw¿øîìÕÇwñ盳7¿º¹{ö֗ïß>{ûÁGÍÙ»»ŸìŸýìø÷Ÿžý"Mý|yy÷ìÙ¯ï­}öþÞôÍß¼YŸÝùlê`ïܓ¯Î>¹3ܜ¾åøåϺsgïž?÷RóÎãs¯ìÜÿüÜƽîýsUþb8×¾”_=7L&ܹÿù˛Ͻ{÷›?ž»öñ·Ï½/Ý8wëóoß:wçËOšsŸ~óÖƹ/νòò¹¯Æ'gÏmN†À¹íG÷öÎ}Sø͙ çöï^}|îè¥ËÎŸ½ýÎÃó/¿võÑùWÿüÞãóéÍ¿9ß®¶w~üòëïοýá“õóW¯U/Ÿ?_Þ8ÿÑ«Ÿ·çï¾vôÖùÏ_ã½ó_^úýó›oœûÓù‡}øøü·9zzþÉñ{¯_Xóé[g.\xéߺðêӗ¿¼P}¼¹¡;¾üÿÙûÿDŽd$@aw±Ï>§s:! ‘$˜!£€$¢ÊePBÈw¾÷~÷ÞûÏÕ=y˜DØ[ÙÛåk3t¬®þvuU·×1¿9•p$©Û=Gî~çÞ±±¾àvìE}KŽÂxëØqñTyqÜ<>D—Wێúíõó”ý¦šrVnv¦|SÏõ©Pt|njv›>ZzXvÙS¹ÈáúÔÆq¥:µ?5½0u²“+M©‡ÐÔ]9|:UMù¦^gÜGΩæьs¦ì?v†Ï}ι¹3gr½r®níÝ8·Ï‹Î£WÝyñz¿á¼¼ÎçüꥳUYZýçL,Ø]¾Ûø±+Ìºc-W&;wìÚ­èÚ¯îM¹ÎΊ׮›µzÞõ”¤"®Vr}ÜíL–¯Ýþ”wÛÍçîŋ¦Ï{I7Ý۾ʍûx-u侪Ù×݉}ÈÅýò {é¯Ç7u:ቜ§_<‹+¡Šg%8YöìLՊžB­|áltæ©<œŸzZµËS¯Û}wî Äj—Þ¹•ñ’7}EÝz7§ÓOÞ£ã†·8Þtx7b>ok|7jsL».'’ӁìêæôüLít:ÓÌ>Lo]7'¦ çÛÁéë«`fú¹T9š¯îWff ïLtvfyfyóåhfýé¶6s> Î\mÌT|»÷3¯w'”Ï›<ÝðE¦JO¾¥û:äâ[?tùóó“¾âúÁŠïi­úä_ ÎûgvwKþØÍD؟z]¹ðoͶ‚þ“ƒµ ?bØÿ²}Q¢\®åy*x0Q¡ÃÅ,µÖڞ ïÒGTi'¦ª/íXuåmšÞtûé…=÷=½Z¤6èƒZ4@—èT®®l/ˁÀ‚ÓHÔ2OõÔE!pìñå7å½hà%?á ºÓ{Õ`$ä¾ +¦ÂWÁíhr-xŸ\ +>æïb¡ñ£-Êæù[)oha>:Z+xÇCǞÉV¨\˜l†šÁÉfØ[ñ´Âñ£èx8—J9Âþ-wøzæŽ +¿L{¢'¹‰ÑW+‘lÒ¿ÙßÝ»Œ”ž\O‘—xa*ê9 E¢q÷Mæ³ÜÅúqô0¨Do5O´yƒæ–­£ØüÊJ=¶žJ†b'‰¹ÍØÃúÒc|bk)”×·ãÉ©Ãz|'s?¿*OÂxÍOÏz +;³³Ùq;è¬ÅÜl¡|_Ÿ}Ø_HÛs“ëOµ¹P*—K§Í¹ýôy~îæhÍ9×*RGó”k"<¿”z|˜ß¾¿^/ÆÎÜó/·'W 3‹…ÔBÂsã^Ø,Þ_/\N®/Ô×ÂÁÄtn½‘XH—ΛëžÕÄåÉô~¢þPŸZœ™IU›óÅ­z~{±˜N/6êÅø’+ç_ZŽK{.‡}éæ¹R_¶_œW–ƒÅӇåÌMánùèîèvùÑY¼O:ç+ÉøÎësr½N5’ÉÜD²Þ¸öÚ)ߦ'˜Z䩽Vk-u[ʦ'_oÒÑ­ÍfzmËçKŸÝ/§ëW{ÿTâ!“Œyܙƒ3ûræÁó\È:›Ù9ÿ}<»Y®dK[­fÎ>ë^ȅgb¹U÷&ä’;w\oä^¼îÆ +_O­¤·••ãûLbåÙót·:½¿žX]v»WN¯S«ñ\cÍýØ\K”'¼k{û÷çk÷‡åĺkë´¹¾prq¸¾[.ÆA_>´ò®X£_¸ $mŽüžsٓ¿?<}ÜpÓöÍÄC2µ±ðØxLÎÙ7½Ñ»ûÍåHætó(<±¹ù<–Þòmdç¶ÒT`ëtüuzë%Sqnî‹Û«‹g¯Û—­‹ÖŽýüöu'–­ïlÅ]›cçÖqïºüÛÔîbð1º{ó/î>o¬íùËS{9ÿniïbË]ß·Ÿy÷cû‹óûÛ³®­ý»ÖméÀs}8q<]Ÿ=8Ù[Ú9hìÏUà ôáÆ}bãðv*óxäNî…lŽ£å»Ûƒ£“˜cü¨q›ÈGVΏ·¼®¹ã»ÊÆuÁ{5-¤ÏJ…óÓ@ìÄ^|¸=™½Ï/žìOÏÖNž3îü)}Ûôœ®ï.No.J‰3÷µý,åx89;+ÕçösߔÍq>·9[:?ØÙ˟×öŸ¢¡bdâbË~r{ñõ\ú2—«.:zy}|ï½r‡V_¯RUºruqÚº.N®–Ί‹K‡Gœ¥í½âëêöNinw{»txs¸]jxJ»×±ÍÖ¡Íq½×¤O¯kë«Å›ÈôÝãÍÎ5Õ¸y>ÍgvbO…Wºü<~üœx^šß{~¾dתNWÜYÍ8é³êµŸZ¨MG}­ÚÚJð¨v_JÌ×ÔÖD}{ïòª^óÚ×lŽ—ØU"ür´Zo؃¾rcÉw~ظôDsM·ã6þï¿€VX¯¦±å݀…@iMÖäÛéì%vKYCYËÜÒ¬ôӍZµv}ߨ=ãK=§¹•M+k䈪–³«Ý/K"€’`,}Èt\m±Í"ၰ^Ņ‚¯>ïÊË¥Úoœ-3(*ý–9=" U_n´þQkT’xÇJdé4šm›U²£lÑY7¿Û¯É¬oÚÝ+ê¤õ‡êfÏ´Ì Ö`éï Y†Cš-ŒÊ­Þ¯Zə6—¯µR±•/þŽÉї%$ÉêYFU~j܂¯ôëSb,ó«Õë§WÔ=Ûµ§‡ëßõ§2nÄ?7¶/¦Ô‚—ÙF¤öА¶b'šDI ’Ú‘.A‡W< \Wo mn8;¦Vs²J´ŠlŸ²^ˆt {…"‹64äãÃØæFGê`Wð$00ª­ç°VEQÏ VÝ)I©#UڄùUò©\¾ÕDW '‹¦ÑtE«UpÞ.-Ú(T}YØ.Ä»…š…Ö݇SÍe¿ñð¼QlTؚºöïaDŽðûûòØ Ù0†b`\4Çþq_®Ž5‹¿¡AR¬Ž­>ZAÇo€N£ØD_3'õ@òü®œo젉“.Mì÷ÚëX´ÙHi,HeÍ$w‡zd4=™ñ?­B㏵j(‰ëòØC ½\{*þŽv‹õ: 4f4_¯ïQñV«éróá®*$ÃäV…þ}…ÒÕn…ìšc¯Õ +:°ÅgLE@Ò׍‡ºdRµéY5¸/Ú0ÔÿÑnùNÔ]ú‚)õ{¦Êï"µ¬¡Ú ÊÐg¸ª5®__ ¬U#NXÊƆ1ÞR*7ÐOöÅIãž)ÕrÃÀh–NGB-´UV-R]g°_D-m¬köZÅêM±ÁM:õ–9è‹Uº—†=î¨1¿Õ¯ÙeÐ áÜQ¹tøPþG/Ó¸~FjµØ*ïß¿>—ªÅ‡§¦~µaP×ëem$,š=ªýW9ô)҅Fa¦Šufý›n]§bÕ,:dJ£Ð~pùZ*^°¶„¬˜–âŸZT¢ ¯a,ñ'ó(o1C՟š-üCû7¬¢¿[äÎVUá]ÊW|j]?5¬fÒy=è»m”_^uPèqI ‘ë¢ýl½¢:(:͝6ôv@ZQƒo‡:jDZ}]Ⱦ|®øT!â$Qˉ\ê9aNÙÒ— H\ô2ºÆл%ˇ=OK/£€áŒ‚>ºÓ/?râ»}­^«}yc‰ÄŒ¯>ŒK/3JT½@É€AA2&¤AéÛz…¡;Ÿ’[¨ZÒÒ08‚U3hL@Er£'bÒA£ßñm•ÔLý¡yýü;çÃã£׉âæ†Ep“Ç Ú"L‹úF ŒH*É¿©' iÕLZ¢ t5”}Q½—´…Þ4Oê”ïsÑØ78kŒ‰H #¡;i@Z&­±)‰–½í‹êH+-í!ƒjÍдµŠU2ֆ’1©S ñ»Úƒ,  Uš¯ÖQ´ñWrñEh½¶“w¢æ–µé ÀT8.È£jìò¸Z­Œ¡ƒÆ$~ë‚ï}µ&x_#Ã2•×šœÏ¦ŠV’€½!5ÂÚüKSÈ"Ÿb-ò»b‹¼Øµ¿Êý‡ŒE:)±H‹}¹™·ù3`Iʚðe&IýÚ0>²Ց¸y3ù¢“ŒÐmõ8_쑬`7–9êª7Bû»Š¹â¶b^3ÜXÌëú­%­*ó+ýºvá)\¯7|L¸¶úÞaM…ì¤M”zOm«¾%^sÁòjv3Vú},Ýxø ßø¥±ŽE¿— öö,®e%Qé^ÇԄ_Â>ÿ†ŒÈZ{5ZÂ÷ ¿Ö*XãÆWkÜù4 Ͼó›ÈÔ¬ü>ê‡KK÷½ß4JŽ_ª?ií/1ï\W›ZM +ï´tÌEõ»çŠ¯É¿­ñN ÙWtÞ¹np–,¥"ßV[¾›'I—(¾Ó|-qµRšxëMߓ« X–¦¯„ÝÊ5_©–ïŠèÂ͗Œ´ða!ï<Ñ×ØêצOdï5ï‹ʂT| í?p·+©ìhþ³îÓÝ·„wЦ°zÁá…ZýZÃ<ˆ_hjT¿póª9éhŒ`ø¹önÜ4 9x4­£ðÛÅjµ¦i5Àoéiáëg‘âpøö|cGåLdÅ(Ï3×ÞÑÖö™{췀ŽðàÞñU_pÃ;Ȳþ ÄHvobTªJ³õÄM(uƆo¨1ÑÏØ÷…>2ò›ú j¹§ªáBՍm£Ÿ0ÝÆÿ‚Ž©ÍyÈ-”¿“¨óf‹ÓZáxHû͆0‡Eês.ónI´a¤1wÖð±îì){M1$èïǵ7Íp$êÚ[­û¢H„5ß+6K­ç¢†ÎA¯2ï4ÚC'pv1ˆÖÕEEoòø¾Ä=µ&ÅZaB†B/ނ +åîÁ!£Šo᥄8-Á\‚§6Ø÷4žmËU©klü0Ó3@Boù tY Ýí­*•÷ñ«0¤‚—¢A墣P¸ÍÍ)üZCt)…ô@»%mGÇÀhé/·D[tzï6$@Wïm±šP4»àןÑVµ´Ô^æKmà]Q© ¼-Sn*X¯Þ¸­Uµ.FX²øp•÷@ûI¡‘²Ë$ Š†\¹(;CÁ›wFÔBRŒjµÅI*¿ÇøëèÉèUƒ þaéͦzÎh0[šÚö-ы5æÂg±…‰]æ^—FŽ +«p¡Æsí+bášéI–(Iæ„K´ÎæžÙð^­øÅQo"|õ.–ü”ß»áñ.Þ·‚è¯@h~g6È?ØáÿÂ悋û­dú6ž«¬Lì.Ó·T!Á? xv#÷vwpeÁ>ãwîÚvo¢2owožÄíÓ÷ðèêÖg÷¾ÎîÙ§7ŽÓöj#@ù +.œ}؞ræ.] -n]%‚ÉX09‰<ŸÌÏ\ekÑ£ u#<¥V.Ë)›£ÑH,”–§ë›kKëñf"¶2äËÖNB‡™ÆÙ •>Éö³ Ë ×´g9Zes NîxS3ž]È/Q«.S!_0Ÿ„k{)ßl4æšûÉô*åí1ÕJ֌e[‡‹ZeŠº™¢qÎ[B²sª9iÇ^½‰œ} +W÷Kºâó7c¹Pìeî>æžàׅ´4Ó³ÆùÆَr¦¹èExvõ§˜éÅäfÞæe+dyXÏ9”3·»MÚÑPÎt›> f=B¦6‡mÓ9½1£’iøÞUt2ʙ†ÜgÞùÀrMdz!›câ þ”Wª+•M®/©d™˜¬6Ü *™.¨ìí析)ÔE”mÎ>?E¯]î+fš[ ì«6oà$±…3Y,e¤}z’|öšÈ£lÝí½ê*OŸh7dªµ‰RžJ²™n;²LÃáç˺© ÉL¶—óûê¾J¦KÅH4;I+fz±xµ«–éŠÍ1t͝)×uÞ~ޜ¸/ï*gº“r'^&ŸóJ™zçžfB¦Ð/RQò,ž,m)g*¨lœÚTÌt<{Ü}l)ejsPÙóó¬J]#ŽJu#¥–i‘ÊM_*gš£–eW´€3µ9ä ܚ˜^d3-̸d ¼¸Z`›7sVÉJ2=™§òÑeê‘ejs4ÇWʵÈnq&ÙFërù͟žU2LD+7Ù µLÓԆç<Ž3E2&«ëêËìÒccsW1Ó½9gP5Óõò^RÊiþÐé µwéWªks|}¥¼yzâv)fzè¬Þ©fºw¿sU™Úíu=ÍQ‡ëõyåLóAÇAvi~A9ÓúÚ¸R¦ “Q¶‡—¹ñ–JŸnQG‹ëiåL7™Ë‹ósÅLÏ·*«8S4¿´×õ±¾Éªdz£Î›O3ʙn>֟·â± ,SÈg{¹:SUmà†cÏkWÉ´p@ež×3mΌۗÎg@A¶³/òAóz½d3-ݲAã>É=8Ӏ3áZ‘Ö4O]yf—Q¦ÓB¦ Ê’}|á”þBCži³6µÀfÚZôÊjj?+žº™L“zUª§̓„rl}íZiu×2MµÚTáÊx„Ét‘^Ÿ‘)Âézh“™i‚“³©uœ)ʅÍv²Ñ(–ª(SJ–i£±\®qò»f—eÚ ?β3ÍâìŽOÖ¼ãµòÕ¾ÅåâeDZ¨•ƒ©‹Ú¬êÓÂý|¨öôžZ¹r¼ +OÛ4?¨Þô”ʯ¡¦¼)®\å¨ìi$F_î³O›•XÛ¨ŒTïǏ•ž3Jq{uöLõi,àÙ½Rz_¼pò-Öþ|90ur­ú4ï­.ԟ–¶n焧²‹Ll_—VT~[™Z™?h2Oo/qÙo¼8½¥ÇgÛZì ´¶WUzÎh¹´·ÒP}zä(ùíêOÏÒ³ \‹)<¿r\D'UŸ>¶¶ë+ªO+‡äŽð´­Åž+Ùąگ¡H;saÕ§kPâX½Å×ÕÒ^^í×Sö©Õ3êÓÌòF©¬út-°8N«·Ø²=0éžUy^¡2 ®Î³®9ÙSïþNs‘}šòÍËGåÊþUγ,<5CÓ»ÒXŠºqž¦XýsåxBOëìr4{fTO²ÖÜdþ’è±@k­0Sö™µxV˜ûˆùÐwYûtz7…Ø^¿ñ«7FG°ùw“œækŒœ Û3¬>‡uŽ%&‚NøáÚ3h¥#þXÕ ëØãWP­ãSßí<Ÿß„ÿa¡äí4ži¼^ùf$ê¶1nsÙ╎J¦‘ ´Î9UÎ4T8QÍ&‘GZ†ÇÄuÅ+ÕLєw­–é8ÓЬ‘EÙÆ6“{¢Lo¦¦&„L1úç3 ʚ¡¾¦¹'I¦î^½Š³•4ðB@5SŒþU2…õ  ÿ !S¨‹¤®çª™B7Cê™"ô¯š©Íðÿ½r]çí>­LóNÕL1¦2Ec_’-Âû’^-ǹìñ_lG¸S'7ÏFÞ»x}®ŠÇ¾Ê›‘‰—‹Ìñ–î{á{VîXm‘„:Ÿ-³Ú²mè^¹žQëìŠ 4‰ìkƒU.S{K²ï˜˜X¢îºÙgëH'1ëýDÝ=_çStá$ñ•ÉG\ŠDÚKúïËiÏvň™µ™mñ/§Q.9qu¯ÖY›ù`¾˜B€öÕõƒÛYu,ªÁö”´y‹˜Z ;˜!<’®’” +U‰¯Ê +%.Òå«Dwc:à\¤Dv4™979hËó×äº^£#ÆžYÌ+ÔÏiW­ŸÍ!Ô3Õäúoo\¿ÿ&øúyXSª!¯e¼ÿjX>™•…ÁÆÒHŒö$³ªIٌˆ;×Xs3I– W’™‘¬ÜÙKç-¯ØînNXIî¹åɓøšv»ÛÔKªzÜíªç"#U=AUÕcÓÝÌÙjC܀|‘% 8Ũå¶»È Ã6°Jy¦3Ó cێ®*·]aÆ®ª¶ÕF%¶Ç)V­0ÞyÕij®\pñpC¯©sëSìn‚bAÒ^Y­Ä³˜¨VåmßÛûmj4¹Ö:ª’†فåܱ¨mùa(–ó+÷î8­ÒMÓuº8é\Áe`ìü]6 ¥>Kß×¼ œäˆ$u”£&¦”nwÑ.§}ܳFǝö¨ƒ¹²8~üªÙ—ôô=Ø©W´IÑ& ]™u¥î„w(bС‚!º]6 ~¼l—­¾H¢rẴrŠ%KäJMµJ.Qåց¿ …µw‰°âÛð¶wÉMN…U=•XÓæP˜ `Fáe@3§-ÕiÉæè¤s¨MV:GOJcÿ&'ÕÓ +µQ&^"µ×TçÊ­]¶xl)oD“Ÿ–uÍÊÀpE¦Nj~7%šÚKïñë}…Ä$;„M¢ÒýA'FÓ.)âLa7Õ¾ì0¤°ó©Í¡? L7(±€¯ã=>|9=†šR?g_$³˜\£5+î6Ö¬È7ð h4E I +fé¥Wv h4nõÚ ‚—'¦¯ÑlwPbÝk4~Tæk}ÐhÐkJ­ã±ét®ÑÚlL:½k4”Jï{¯8Ý é¤‹ßÅñÛJh@2 Ö´VÐâ­CeŒšÞ•ú[š§Í6Ž¾ëu–›_n/êjÈ 2KÁ8ßj) fÆߙš…Äí)Y›CUÍvéý ̇x--Y‰wP ×dNMjF?cÐ^5l‡tzwÀ©¨,¨e;ïúéH7Ý š—vpbý°U3s!ÔϋЅt6„ogzÁ÷"!-Žï6{^ñµf‰lª³áQGø^Û‹ëߟ½(ͅÎb¨×:7iµÏb(^ð½(~.ì~Ãé(à{¥TøÕ«J:FgCí¹k˜³—žgCÉ\x)ß'ƹÀ·}qGBúGÑ‹+%ÎS‚†*¸lht‰¸)§ ì¾÷b«–Ùù!±^G·¨\ +c[Û×Z£Å Á]®'Q.j+"èKŸ¡q®±{š‚ö<ôkX® ¸ÓɊ¤*Ø·GwxÉ'¦”o¦mZJùü†Ö•&¦@òøFÕ=OÝsMe½% kJƒ«Ô쟷-$¦ºwÃ[{Œ:ÔCbÁɹõ|?,$ÐbÑÎ †Š"êÉKŸ!,“˜Ê`/h:ß2aãì÷† +eP"Ú;#3CW˜Ï፪âʂí-×¼³ÏTw.Ñ]ÝûÌrðÅÍe”"蘓[z¡Ïbít²ˆ¡®cè´#è°NîC j¦8‚N5Z°Ã:í:q´`/1tÚtÔ×C v$Z°‡:í:hÁŽbè´#èp´`bè´ßcc«{Ž¡k¸’:~eÑc vÆcú1t‡d³mgV m«ûÀ«Gɜ] IÑқÖwÜö‹—ÊÊÖÈ];æåèWÁ8`ÔÒ{š–Îöuh/-wØ躝æ<q•ÆŠòs¼ËH0Xù±|¨gD‘îñi%¦í‡e¬~ØÖ§9g¸~2ËUûx1Þèþ΋¤ù¨c¹Ò*’RȪKGAs†tMFæ +"øöt@ÕêÈ„ñStéÜl¬f4Æ'ƒõl¯*ÌLhWÍf0ØMê Ù©aK2ôy¯c&ØMmÛFºJÒ vS_Ÿjo8ˆ´eFÓD²4Õ[†ddÑ ’Hac‰I]°èö›RàE/òјÎ*f;ZôâQ©¶ì-Õ](; +1űo£õ×öÐXJ{Ù<k7é+±ºÌL¿=PtšíbÇ*§ +»T£ÀDHI¦ » Çñ½êùÀwÇWҋ™­ÔCÓԃ`´¡t»¼sá~B­PKJ!šêý§ëo؋à&'µ`*öŸÑ8¾XC/&FK¤Þé(±¾Eˆ6„µÈ”Nӗxã-&5°öØbºa¢Æ+)h´®ZLjø $ 3RG§™c½B$—1,Ûfóm_fñC}WÙn©/'KB%Ê¸tFVHâ*pA#v¥9ºW ,öøŸÎbïnÅðbO-¹bIèý̟ªa,T®«º¤ôçÒ( â¦od°iš¤QTšÊ"®Mìµbäl:aζDrµy2høÀëk4\§nk÷wÝe£âñì|ñ´y<;_t:B6U­=LJ½ C!øHdUèuBbšÇÊ(é1ÕaX¨†hµwgëEEAëÏiÀ8Î†J<2¤Ó—@È´ßØ,¦›Žú‘À*§i©¹Y· ¬{šÔ*-;­Ñ=ÝnÃBÁgÚ;é.¨ùˆTz¼[QÕî*"µ8~i ˆÔ`Djq¼dÄd êחˆÔ³—þD¤¢tú‘ŠâÅzHE©ô#"¥cìhْXɯõCS;v2rÏ°½/†Ç=CY(œ²ëw(öç×ôèéG(œb¿ô=®{»¥´Å´×î¬+{…ŸA„ƒá>J(œ‚Uá#„Â)ÛÇ ®Ï +ZÀP¬ +Äç'k>Ý«úª9^ŠÇR>e‘QG/”TؐEр%¦~²]‡¦íáN7DÑèƒ[8Z§ó‚*Wšò„\ôƒ›åqugªÇáÈ'Î:ª0=ãÝ7­”ÛøŠËÄÖ}îé°x™ž¸yÍdã“KÙýÄvfÉßr‚æÏî/F øÚðôI¦±´¼Ù_K%}שTÒ¿Ž.!Ø«sӑãIZdÖâ$ÅRŠ:C«$6FéT=î,¶3»-/i°ÛÜõֆØø,Ê4|ïqÌÛkjv¡Â±V°Û_5S*»ŸÔŠ°sl=lÕ2½ÒÈ47e*Åšõ6EV8y°[èø>ÏßL( wi»Ñ>Y¦ÒûøæžÕ"ì"/‘×3µ`·S­¨³gí»Úþ¾j¦SùòýZ¦eíûøvŽÕ3ÍlžæT›w²œ»TËtGa‡{,[kü+ç³ߛSz±*HÞ å ¥ro3ï±Sg>¢D7¹UR"ûú$ŸPµlÇ\n¥Ö[eê"Ù#ڞªõ'´GßCUn5Q¿ÇêÅ@‘Dûb…ÒsNÕóó`V¯ý¼INéÚ…3U X—´n’ëÈ +wš6ì"© ‰Ï„ìÀ¯Oï9M¿>ãò¤s‰œjý”î}Ó»lÄhýôï0Üèz÷ŒÈÎRëáþ8ãã%WV¿ˆHÕÝÕètږÞn¢éº³ÃtM§´àîâì_4ÁóazŒ¦S² ÊÇKïÑtJ±tÝF>ªGÓ)Ùâ•=í{‰¦“4 ;fÏë)šN))Bºˆ¦ërFî0šNiŸ†Ÿ+ûM§K'^ï÷'šN)–ΠoOÑtJ¶vîöþEÓ)õ.¶ôö5šN ܈}GûM§K§rÚ|ÑtíEºŸPGJÝFÓ)S›£ßÑtJý§à Õc4<)Ý;…»Š¦SÖý¦3Þb½DÓɒ’ï‰÷)š®«ë8šN3ƪoÑtʱÕýŽ¦SJrés4Òn‰Ì¾ÑtJêAºzíG4ÎÎHŸ¢éôç—~DÓ)5†€ÆûM§É՟h:¥X:Õûøz_Î @Éýbݤ~‹Wû%•ò»9 >½è vIã‡jjwÙt_][‘Zh—§ß÷Õ©£ cíÔò:;j'¡•$ž(&SXI€‚JÔ³Z¡dE2ª + Ü.'ݘêªH¨Å P]»¬U$eG +U £ÑN×.«¨L4‹IWD‹ôZS¶" +NÆë:›k[æøÛ²´.ºëùš;Ñ9W!y7×Ü©Þ.·n(VÉà5wj‘\Æé 9Hhû' ÝõÖW¹BÝÈ-3šV*C×ÜéZQÃô|Í‹a´/ºëùš;&öMç¢;c›Gõõ>œs\< µ;ÑxœÅzß\”êëäî:–ª¶à6*Ÿª»<è‚:]ßC=ùDathñ¬i7HgÄ£Ù¦a¨îÄa8¾rÑp;ìÀ‰ µŽªéO*ÉÆn؂œ'œòx"thªj•Î†RÛïÉm?wØ%ñ†¡Òñ7ì Iéúö†‚ÄŒytk;6cÝחÈÇÞ·BЍ‚ǁ³½o0Cw»*¥"òìÚëÇÄ©´E²+F +ëDzãÄ ÖªÝ!¬Ý«¶ÖîUûw* J¬/cƒÒQfâ¹Kµ)÷•šR÷¾W-jOû–.ŠÄk÷ Ö\‰«ùP—›•¾D¦ð'wŽ$ړʿöëCx°­¾ElxìttQµÚîºx­g8Á¤¢åÕÙA:}8%€I§×Ûª™T¸A¨tÂag¾ª:Úáu{†á¡@Cøžo¸ãâ+Õî¸ëb*8Wt{oug7ÜiE>ö0 9Aco¸ëËMyºñDÆnÊë5žˆ¿)¯÷a¨qÝ4.ÉH|H77ÜiÝ÷Šî¸ëü†;£§š£è§ÞkÏ^˜£¶z5X ‰éÛ ÃÜM×]`­<ò1Ü«ýÅn(†CwvÎN§ ½ÙvFJ§/ñœ”±µ˜n:ê±°² &›Þ1øº¼Nâە‚˜Ä»¢HAL· ÃY—NG°kq÷¾ c2Ää\¸¯DE³˜‘0&i%ul§BR|¿¨†1ͺ E¨k.ÛùQ9ë22*19ªrðÝíºò¸£ &5"tw¢ÆLÛ0ŸT¦êԚ]÷¨sSž¿ËWÑøäÝ0 D=ëǸB‘ G=kŸ² Ôù¨r~ôCo+ ûé +Jú׎Òåµ=›#½èÝÛ_¨]y#ðWnG÷eÏ²7gb<ÍL<Ø´+²³I‚ð6wřJâálŽæÄaa[lª’ÞÃ6›:-¨ÄùՃð¯W³´T'ËÂð(Zì_db2ºë>W Â;SÍê2ž­UëJå&NT3u®–|wj÷°¹…LùH.¡·ÃQ¦Òд¦3:%Ü#”E9º]‹§OJ™Ú¨åwÎIÂðŠòØ?qó®Ïo«d™p„6ÓW‚ Vw©‘in2¢žingâD)S|ï[lEZ)ÏtWëÁõCõL3™ƒ¬Ä³ ²Dϧù¿Ø ÌWς_Úû*ïS”ê{âøJêÊ3»l Eïl­•¦I¨s!$üf kí‘Nž) ;1?Ñt›„F »ñnä3}ÇIs3¤½ lÒµ¨‡$µ»V© I²z¡RFB›ô›šýº™tunf1jIJk»V©v]ÛÍ,Á^'.hZQw²“'{ˆJÓñÐdZÉfLžd›^Ö·Z£¸»ŽoYT)R›—–|¼nôŽ¼´l­B©Û‰;+hKu?-¶&uQØb-f;ºï@]Ãdû¶F.få¦Û]o&àNmã+ýëë$%“ÛùõMvø>>U«Jè¥Í ktŽGTî~r.«ovHÖvŸEײiG2ucïèœQ‘dñ/79-Û±.—IäªÏîV‹Fm‡¡€•I¡œâs®4Bõ®4Öé?açý&§¨cXd÷+Þ2ÓAbz·è8åѵ‰Éf•ÞZL7–Çx%¥;—=¶˜î}:µX>t¦’X[¸°:d[¬Ë(@£1€†Ï!Q 3¨án +Ðh `»=¹“(@£1€â;4ˆ­Ö]GJDEc…)÷ƒí, +Ðh j±î£…öÔÖÒ«N£Æòk䮢UŠÔ(Þ¯dÊÓ^«Þ/å3~#[/—ò‰êò/åk³*|”KùôndëÏ¥|L̈6@éýR>›CöýR¾öû‘?Æ¥|ê÷#÷óR>C÷Wör)ŸØª€ +Q-ÛDz¡Áê·úõ~6ÔZ?Ά2x¯Ÿ¡³¡z¾×OTµ>œ ¥v¯_g~JÝÞë§}«_WgC)Üë§mR^‰w~¯Ÿ²ðiž ÕŽ~ú’܏{ý´=CxËU÷úéErõÉ «y«ŸÍёAWõ^?íªÉl]ßë')HÛ­~]Ü¢x¯Ÿv…”ù‹ßïñ^?͉.…g±>Üë§mîè*{ý´—ºŠ^Ð]Üë§&) ½ÞîãëCÌ{G÷úi§‚ìüý¸×O{CÅf8^ßå©ÝÞë§5E·ú‰og z¸×O6 )é­~’3»:O¡ø{ýtã^ûr¯Ÿö­~¼$÷x¯Ÿ¶Ãµ("µ§{ý„ø-%Y”sÕõ½~Ú ˆlîõÓkÍJ°O÷ñy´S1|ŸÎur†ïãëé^?>ÅáÓi4GÛ½~qºÞ¶åNïõÓFòèă~Üë§6‡¶ï$v¿eÎs;‰zÃPï^?íýf©A÷÷úI[[¾Zìö>¾Îœ4ÔïãëÃðáoõëý>>#ALz§7´ûjtvŸ<"µ·{ý$†í¶[ý˜ˆ¡ÞïõãC¥´îíù^?m˜£"cßë§}«_ϧ6±÷úõhë3x¯Ÿ¸×>Üë§}«_Ç÷ñu…+Ӗí÷úu /ºÕO”KO÷úµ›’Å·ú©rÖé½~Úî]²Y¬ë{ý´d6¥®ïõSèÑ­~Úç¿ׯ{»¥´Å:yRYWöp¯Ÿ ¸”nõëÚ{Pv¯Ÿ¦Dˆnéí^?m`Ȭ^{¿×O; –‘{¾×OZIù­~mxÌðIVÒ{ýÔAƒatN²2x¯Ÿ! Óó½~âžlßÀш®UŸÊ÷úiOšQœ} ˆeæ}¿Âôp¢…Ѷ”=>äçJÝ3'*ÊæJøVÝ´«íx/ [”H'cÂîMb¡.ŽƒglSlV.É é« Cù·Ê¾=7%+Ñ|žš÷v˜VÖìÞÓÍIÊ\‰2/¡x*ûäFbÕG¹ªvÿõi=lܯeOçñkæÙíL¾$©•»Í剗×dÄ~V¼ Â_WKŽplnejcëe7üR)œÚÑ°/tÛÈûÖ} {8Ÿ ]%w+‹7{‘£ûýòføåÐU¾ŽíLìïÚ}ދ%{àîåÐ;t.QÙäz’ÊÞ^¯Q¹ÈÔn£qw5š±£ÕæÄE¤Ô —N·ùHË}ï‚æÈÌÇǹ°·G£yVC—ÍÅ'˜Øêv"‰/;É_Ɨ¯wêhAÍ_‰î“|½¢žå¥üšRcáƀ궦P¿'íªuō®¢³¼=qx²Ÿ˜¬6üÙ©@èîuâéÆ~ƒ"I׸àPûët=´‰üÕ6ª8&ѾœÝßwP“å¼Þß®I!{]6| jÛ)QМ`oU ԚR;$"ŽÔ«Í‘>ɖñš©óÜîqd3u3¾äoͯ-ù›7sÙøDe;s´¼€f«&rO‡ÇgË+{ Ò9|á’e®ÏtÑÞJ…2.–æòö®Õòs IòòúÑÑ¥7sx¼‚þ‚ +o?ùPÐî4³¬O„ ¼r¢ü-òF¸l1šØö9¹¿h¶C‹D«ð1êÁQ¿ pVëðqak˜ 'Ìb§ ø"åã~˜õg3$»ByÓӎ׬keu•žvÞ_r]w‹Ä[EþWü カ9øG3âGÑ2ÿÀ/~POÝñhу\òElzÄ߸JøeÜû›ÓâGw¡.M¾ß^™\¢Ð”0I¯Ìdƒè š¨V¡WwÑÇqÚ¥;/jٝiæ•ëÉè,¿/ª‰W’¾žY ÑK~·ôL_/®¢fÛa“½Þ9ÀÉ¢ Öù ÔÚ^[Œ§¥É€{&„Ðÿ¾¨YîÅ¥9&—9´á½›|òÝy–·¯oóéõUûž ’ü¶@JºpuHœÉ€{%;¯”Hr·)îäø“áÖöd9w~»[Þ{|ȜÜlS¨V4–^F’¯ç¯K©‡¢Ÿ¦ü…‹ '^û!QÕӋÑk®ÃŽfpÒ;)4ù9±?‚´Kçèn¶#š…»á#]ÔÐßAæ/éÌ'Ýܒ {~Tj {<è¡Åøa?{¾UseŽ’kI÷SÅØGV’Ê·ß>ìå·æ: ô,Çð «n®Û5ΦӖ—‘äñE“òWÆ}þ‡ñí©àdü¹EQ._3s]y‰ãÁŽý˜±¹>†Ü8J—Îœ-¡³^øÇÇÓ¼.9ƒ_Rx¼¬ø0,Až#>¼¦s>´P^ñ«˜DV(^@¦Dæ ©.äºùBOSÕ+~ôâÛÐ8˜N9Jü·ìxL…†×ºO<öïüéµùEùyŠ +—Ö´Bw[Œ*Hj>F¡ªŸ-‹;žÅ&)ñzú@€XœÛŒimみ#•™‹0tãn É¡ù&ún¾‹½2/O]ÇÖE° go¹š|Û²pü¾'ç ­,?S7ŽjºÑX¨yÄs3¾Èy~fƒŸ:W®x!(€)f^t$'Ó\×S²P.I¿( :{œ£y ‡ÚÄ÷Œ&&ž“ü‰ƒ –PÿÃôlË4÷Ýá ÷]¡áتzƒ“óóWÙK÷éºÍkßÍu‰ô£Z‡Üè,†¸]¸l]^mçN†ˆO°×qb€jçÅë³â´ߊӐ+.õJ$¿$é@½Ë¢¥ G\üñÎ+.H©N‹ pX\ÀÁ’£¯#©‹½`!HèUÜF—@@ìî[/K  è—^—@@Ò\ºZXA¿ôº2°Â’ÜÛÈÀïðö¶2°²õ¾2°²9z^)-€Ðlæìm5¦ÅüS¨\Ü endstream endobj 87 0 obj <>stream +7ª¬Ìo•=L—8ö<ì@‰Aá38Q8‰àâQ¦ˆÁÒ H6V\¸ãєŽv”W8̏w€é™S/hüxšÁ²ƒG²V³µÊ­»Yw@|Ê;6áU +Y?wðJE¼+ +‹… á'uãrͲ­œ˜ÅÕpљ‹Ùyî»%<âÑ®Äî |Ìúx]s5-U’OãÕ,ž¯ð2!¥ÄÍ¿tÁ Ó¶¹·¼Úôbx&¬;þ°Åè`h,ÅÆü»¯OåÆVãáî¡:6m›³ù—Wiú zSË6Êåýò?[éÚõës¹Ú›ó/ï¥VWcátùºvSÃ[s᫨è€&wv×Ql •lG2’™¾ç*+» Åô-UHˆ6+ñRÄ\Y°Ïø»6²šÎÛezÝ>}ÿ¸‡>fpȘj-„WÐ¥ÏDºÜH¾f¼ù#وÂk‹ðS)ó è02¬„gÑùt÷§É«ÍÀ^t}iq>^ÏแµÎIlá"®‚É–P­)»{~3„ªqˆJ Ç>™ŽùíÓî¥%ôíšÝ»3¾i÷^û6уEûÌrðÆ>½q¼b÷¼L€â/¾Ä„A‚½ì +=Eϱ‚“½äÕþv ˲±†Ât~—ÀË v.Bkuôk~­îÇÑpq±=–‘_q³ãÄù‚D_ñ²g]3ì8a†,`6 €z-ná¿J ’ ƒ ç$<êˆkXðŠ'S ܃,;Dà yr°È=Zõ ‚“swËÜ٘@“9 á;qιԴȨy!Î;·êCJ׃÷̋ñ0 +_áÁ.?ìðq{IHû’5vlgñXö~,'±´¡Í‰8ùLñ[еÛ[~¤¼¦!ƒ—Iøx€“õ0ãß> ú7ö*h~Ú÷Šæ'fõ[ÈÏð™^q¹`‰?Kû‹óS³wUçAv>zٔ‹3£¨x Æ©1~‹$%¬¦„•Òc\> §ÈïˆSt¯Åvâ±\vÉYÞO¯Þ,ØÙÑT8¦ùÉ' ™|ÜO—¬xŠ!¾êE±x•¶fðÜÀªÒŸûÒ1E—ò«nøë”f§”ÒE _ @_•Šh ýmÔ4#•‡=ÛóŒ[Cl‘ûÓ/õ-åaÏëvØŸÑØïjnìhf´9ºœ;šmŽ.çƎfFéÄØúª´(ÞC ËÝkä#ŒÛÓÁ“Œwa/sƒŽŠÅ«Ñ˜_?ò +&³Ô~)$1™…W&^"¯\Wy¯¥ílÙ㠁S'µ6ÛÞBᙷí´C…m±q0\ËÊ®ž2 0›™{L¬“´ ÆÔÌàË^:îçdI¨ ։w’i7û]ñÅÃ~W÷¢þ ó`ôFbÔd¤¿#FÍíf« a×rA6$TÐqθ$²h¹” níæ6_3[N³•pd)¿9S•cÀà†OÜÔ5·M‹ÌmÈ&K(…ƒj¹“º7o2—Šöb +b$5;BÖ 6‡´®NÁBŠ­˜|çâ$®·6ÔzÒɜº'-s$­z)äIÇsÞÎË rdpŠ»¶«j0‡Ã(4%n1CՈQñ+$q.“}q“K[ìLþ¦BÛ*¥(Ô^ÓÌí²9´Êh¤’.A䨕ô^‰Ïª*=öØ»áƆ¶PûI¾K +缂K!`ìggþ¤[ƒ0 ;~LHÎ/m?*$NjÎÔÌG†ä"Ìÿ!9sJì#CrÔ/*º\¬a>$?$G2 œ‡äI¡Ë˜‘Ê‚`X“3?\ˌÀâøÌ^îf />SÑD~ÖDOý¢Íÿ3ø"ÚÀÆXfwö,1Æî…ØÑ4ëzáFÓÒ >ʍµƇ¬»Ky;Êj z§ÒO>xæöbéŒÇÎS| L +™oý +–[¯‚Ñv†±×2[ÕѲȍ’ˆ®¤®*Ë7Hƒ>1Àxfrõž7·ºy{PYø},ÜÏ-y\Øàppóß Û´Ò*M_fª7bSÍá€oöÊ­×:z!|™,ß=TóÅßË =ÆüGÁˆGãct 6‡áC}›/Ù\øÝ1Ú=–¯Ú—þåF+ýpÝz¨U‹ßÇfÑWÇùƒÕôØìóî%¼;7æ‚ÒP—ð6¬ÁðÕ?ÆBcc§çÔØ Êh×FÓ!xôlÃõA¿‚Ïyü­ðzr«\;¾Ô¯ˆCq}ÑPœ +Œ‰Š‰RáX Ž¢ã¾T¨ˆ»ð~ˆŠåàÏðØ?lñ ¢è±hØGâA(X€öÑhsî(RÜ +cü7tÌGACŒEƒ¾ Ÿi_,KÙ¸/ŒDQÜ7”/‡Ä¹$áûx,ã2å>§l¡ˆ/N _äm¡0ú¾Ðø¡ /„'tÀ¤¡TÁ¨/ŠA PÁ0$ßD‚Á ÿM}CÇPì7Áˆú7Š>#“&÷1î‹QñptìÚ&|ŒÒÐj\q¨N(ã²à>§lѨ/ Gøoòè›(MÇùo¢ÐÑp€OSøÌåÊ}ËK€+5—…PSô E5E}AG„։ġ+ -®õ"1ø ™ Î +‚ÐàñÈV Àøèp(È÷!ÿ™íeH‚ý†„¼ð+)\’œ$Ʉ/e+iH=͎ÓN„~Ù) DAÐi +†ŠŽE|T$ ¤sß@¡â¡8jî€Z/0ôEa\CãQ0Fb ‡¸/@´ƒ¾pDx$jOCC +¿ñÅCH<ùD™Ï\¶ûM,à SñJƒû‰…c\š±t"¨6Sî#J‚-÷Jƒ-<ÿ#¶v|¢Üg6ÛT[‹ämMM¥͏µ#Û¸Œ¶½„֍Lá± G©î‹@ F‹…a$@Zà{\ŒŠÑ4ÿ†+‡:qßäm2Q,îø7 Ñ|šÜg6Ӕû"ðáÆÏ ß„|‘X<<Æ%ɤèÈ—)÷9eã +Æ}“·qEç¾áªÆ¥ÉfsMÉ[#¯)ל&á 3óŸk{ysk3£R;L¹á»‚è¯ÁÓG$ã0­ÄÆ6lÁ Ô.¦’Ï6PŠñh$“&Œ(È9Õéu BŸ‡ã¾p(š”k~š2…‘„ôo,‹Fàc4! ͇‘‡ßƒš  aMó… WB4“"úAæÄ0)hŠEMŒ ÂÛ"aA¤o¡DQ“@+ã’Àã`4Ê1 š‚B²4U8ă/‹†ÇB (©8Ö1¨ÔX”] <˜äCaH,Œ2ŽPTýˆ +Âl¡¡| *ð9B‡Œ„c¾XÔp8àÕÉÀ¼N: ‡@3‚†„‘`ý2¥ÃÌTˆQ1¤Cã4”f"*JQ] ã# âG OÐTº!Nû¢QÔZh#mLZÀ< +ø¢ahgš‚rGBHîÚށÂL ⯄PƒX«ÆÐ8ÐÌüFÇ!(G4Å3`8ǒ‚©Mgq謱HÚ x—X :!}…#I‡òƒ¬@)¡æ!T¸(ôîmø‹™iA¡DÐ÷¡X´!ôYŒÆ¿Æ`rYˆGB(ø+Œã‚¨¬ ÿÐÉQ$”cR‚ÁüˆÅq⨮4„¢!ø7ò… Í¡‹ƒT,‚; +µx Dý„^‹Å‚¨ Ñ´$2ãÄê,hJÁÐ ºN<²B +üÈÂHh,‚Ft\e b½F€A\2Š +àΧѠGˆ&ŠŠ +=†>œswMó0  Á”$Åz&ŠÍÝ¡j„f`ÆƓ=¤F­¦!Kó`†´Y<m Fi˜Ú@²c1heÈ"ÓC©X0†‹£ b¦ˆðf”Fsm&ô>(:ÊÌo l²ÅâÐÑaÈ2Œ†D0„‚¦3$ +¢(I˜rchˆ1H‚¨ Ãaáü—ª BÃXQF£Á IcЃ„ã¤7‚ðƒš–Pƒ@ÊÌ aDŠ  Ó¾PrŒ!uF¿1õE !„ !ø •i¥¡ý~·Aᢡ0þ `´0JfDÐ× •Hú~³!=ˆ`äŠqHá4;DÙÙi#˜Ä¡úñ ¤pÍ 4ÖXÞ@QBa ”x c ‰¸†‚Š…˜^'q4H@Y ‘FYÅ@!¡R#4…à+h ”´eµ-l<ÿєMF:tq$Ž$ Z$Ž1…ŠƒöD ?ö¦  D@U"í áMèçP€B… +ę¿‚è úW&ç¿Ã09И£âc.÷Øñ‘Ú;¢5Wö©ØÒXpq a0÷ʀŠW~ñD+,ž˜uböá©<+Z2î›-X3Bbð›œÍŸ.ÿöp]ÞÍ%ǎ7m§¢Ï>ImÖF¿¯\/6Š¨.çì/ùYXñ—üŒÜöK´X ± Eø”u -Kx Ð0nÏÇÐ|¦QÒÇ÷FÞGϸßpÿÂÈCŽKR„^‚E5n“t±Uœ…@Xâ1Ûñê;!B„"ôÉh``@ÌYf6›M&‹Åb2Y­V“ihhÈd6™FGGM¦wï`þúðáƒÉôÅ_˜L_}õ•Éô׿þÕdúî»ïL¦¿ýío&ÓÏ?ÿl2ýýï7™ÆÇÇM¦©©)“Éãñ˜L333&MÓ&à@“)›Lóóó&ÓÒҒɔN§M¦\.g2­­­™L&Óöö¶É´··g2˜LÇÇÇ&ÓÉɉÉtvvf2ŸŸ›L———&ÓÕՕÉT,M¦R©d2]__›L777,+—Ëbv{{K؁"Dˆ!BŸŽP"ì3B„"DèÓJ„½qFˆ!B„}:"@‰°7Î"Dˆ¡OG(öÆ!B„"ôéˆ%ÂÞ8#Dˆ!B„> DØg„"DˆÐ§#”{ãŒ!B„útD€aoœ"Dˆ!BŸŽP"ì3B„"DèÓJ„½qFˆ!B„}:"@‰°7Î"Dˆ¡OG(öÆ!B„"ôéˆ%ÂÞ8#Dˆ!B„> DØg„"DˆÐ§#”{ãŒ!B„útD€aoœ"Dˆ!BŸŽP"ì3B„"DèÓJ„½qFˆ!B„}:"@‰°7Î"Dˆ¡OG(öÆ!B„"ôéˆ%ÂÞ8#Dˆ!B„> DØg„"DˆÐ§#”{ãŒ!B„útD€aoœ"Dˆ!BŸŽP"ì3B„} ±¤ÿ&{JˆÐçM(öÆ!B„z¥6(Ô33Eè³!”{ãŒ!BSÿ‘ÁM„>["@‰°7Î"dzF<ƒ<#¸‰!ŽP"ì3B„iR‡ fiø^X§‰¡?8 DØg„R$£F¢ž‘QÀ!BT"@‰°7Î"$§þÀ#3Ró0™}žD€aoœ"DHD½ì«ÀC ôYÖ3x҅LŸº) 2F(öÆ!B„êʄ¤Š‡,=0åD»‚LŸºQ Ò%”{ãŒ!Bc$ãÈȊ4¼1ÖnR*10úCJ„½qFˆÐgOÆ1’x¤„‚††×e†ÀSéS75!BíD€aoœ"ôyS0’6(FÊ]‹ 1LGêҘ¤„‘dð[Š8dôža Ì1û °›ÍÆ2ü‘cï&On’A&U“Y™Z"ôv‰%ÂÞ8#Dèó£¾b$™õH†ŒB̆”¹m€c_H™MÎ$0ª 7qiX +™¬3êÀ˜¤ì$ÃH؄Äm¤ ðˆAFˆ}aúòË/¿öåÀ_þò ¿ü…7qö& ™FåIâÆÔ%Z2´DèJ„½qFˆÐgFF=“Œa$ÖÙ›°õH¾4ìù˨p̾øúë¯ 0á_"Ü4ˆpÓ Jyå1ˆrDùrsؘÚВ°'EK-zD€aoœ"ôY‘!c’Ò†›à³Ù;‡‘äðȄÁÆ> ½¿fØ7ß|óW†}ûí·˜}ÃÿÅ<öõ z±¯nä ӗRÈôA¦w2"È42(30´Dè@(öƙLD ë#ô6I(i{&)“$v$1FàŠ¾a¨ðo¾ÿþ{̾Ø Ç¾D¯ öÍ ORÜ$@&le²!ÈôA™|Ãhi¡¥A‰óAK„Þ( DØgŸQFæ£ÿ Jºnm ™0FBêۇdôÝÀ?üð=Ã@…ÿ€Ùà?þØÆàÁ÷ˆ}7/ àIÀM2+†L L=˜ Œà¦ÿ©%£»nœ÷¶là c¤¯Mœ‰ÅH؄„ìC ìùepllì×A»Ýþw†ö˜™c7£§ˆýj†_`ðÄB&HO€Lß"È$30‰Ð’Y-!ۏ–Ì +hi€ %Bÿ1"@‰°7ΰ$ö1Ù AÒ£^€’–1ékòG2á½6 Fú Á£Ÿ@Sÿ: £‰‰ ûàäääø Ãá˜ÀÌ,a㠃WìfxyÌ?ûՂ “A& ‚L´1gŒ¾³@–ßð&-áí8-™UÑGСOF(öÆBÂzcÿ1,E SoÔ%P’„¹‰=“8cÒ_‘1IðGc$dBBI€Gƒ ®'N§cÐår9ÌÀ¦Ìn·[`ø;‡^™´ÀËÀMv üV€L?[ÐÆ‚LCé{„–¾µ ´dÁh +õ%DŒ–x¿%‚–}R"@‰°7ΰüÖ ûÈøª?¸‰˜tR›wûyԌIß1>ÛØ ïµqv¤±ÀHØzÄÂ#„‡A];Í^¯×…˜Û<==-b`. Ÿ×ì÷û§FQÔ´3øèµÀSb n²ÂϦ¬2Yd²"Èd…äµBF?[ýõ×-9»‡œ—´dQEKRoZRpð f%BƒP"ì3,u„õ‹õ ­Œâ¦.!ÓgN%¥C”vÝ8Ï$Á˜ô Úpû;ÂHölGâ0’kgƒG3fÐÔ>s ð›ƒÁ ß"cðÀg…Wf¬ž¼Vø…Ç + +^€L“VÐüv+20!´ô‹¦„­-YÛÑҗjhI§†–Z"ôQˆ%ÂÞ8ÃG˜CÓe·¬#TÕ9n"É8Jz~Ü(áóð®> +@ðLÂÆ$ä³=€ü‘ð^›#M‹àQ(¢Í ©–H$‚YЍF1 Xá#m…§”Þó[á37aÈä¶BzN+¤Œ LãÈÀ4fEÛq-ýd¸Æ¢%äê-EK6)ZQCKê.K-ê# DØgXÖëëni#(mÜd2´$&@I5àMÉ=  ÚuÞIœ1i|m¸ ¸Ýn§€‘1F +ƒ†GfÀC!s, [@S‡-³³³̬ [áAÈ +¯1n‚Ÿù‡ ™!de‚D]CÈÀ4är¹&† Ë1f;9/ hÉ +hé¯"´„N°@]ދВÂQKÑÒç,R„ú@(öÆ3ÂúÀÁA@UªàÉn"É} ô­ Ÿ€wÝÐIIŒggLš­ì­ì`ãˆC›‘áÃ#3FFsss1ËÂÂBœa‰D"n|³‚ + !Ü4=8øŠ +…B¾¡@ 0=„ LCƦ†–a´dÒFKèZ‚ªÊÑïà=È9x·¹,)¡%B„:&”{ã Ka}`hSF‘i£*U𤄛>2dúÓSïždâܓ„]7Æ3 “°1 ù# ¦¡A+ )jՌ‘Ñœôó¼eyyyÁšL&6o…ïæ‡àéìÐââb|pSt UxR æ¢x“gÔ¿s&‚I- IÐÒ·VgåÐÒ-}¡%äàÐ’ÜeI-‰€AK„z!”{ã ab†¦Ánò^Qdª¨J<ÀM6æZbɨ3·6PÂwß +@  + ¸'q»ndLr `c(dÿ`( + F£Q#â™5öaà‘%•J-Z@?/Y3™Ì’5›Í2 [‚‰!xea^žÃiY™†!©à0$J Cò3Б-9NZ’¡¥o¾ùæ/R´ôŽGKà +hÉ<¨¹ 7ð ¡¾Ò[J›››(}Þ ËaÝ0´÷¢Î´Ñ—‚’'UÜ$ƒLJV&£¦Ï -i%-u”¾3q~Üb÷$¼ë†Nðù|¬1 m¸ ‚BŽ`;ÆHæd2™ÀðÈÈ(iYYYIYWWWÓ–‚É!PÜËÃ7 #È4 iv8‘HD‡çææBñXŒ¥ïChÉ; ù:‡%hé„–~Dhé{-}-BKÈÁÛ"uð6+¸,´D¨ßôŸJ0ô€¬]P"L‘a‘"Lƒ!7à EAə*¾’!(xÒÆM½@¦ÏÚÀdüd’àǍݓ\.³ë6à÷ûÏ$lLDþHf´×fœ“0ƒB^¶€BNYe,ëëëYk>ŸÏY766V†8–‚ï²Cð43 Š;5 ¸ C¦Ä0 ­¹aÀ\1d` +ƒ¾0h °™- Z¡%˜?¾‚rc…`´Ä„Ã!´ôÞ"uðVCKƒ ¸‰L# ÇÓ#ÈÀ4éa´4;yDF ·ÀBK#Jhi||ügZBáp %ýuÊÌ¢%äà=„¼‡@ê¾DhÉfå7á,hÎÂ9x[Z² ´dÖGK&‚–i“ª1I (a•&%¬ú „•eG@ ††2PZYY!@‰0†a[$aÆÌ.ÊlrrRÌð¸ÄL U JOp“*dêÙÀô9/u”ðþ›ì®7á>\îx  Äùq3îIƒ †³Ùlʼ¶¶–3ƒ^·ÎÙDiÇhß +PèÐz~~~<z·0z÷³a`…aøîx´òáèçýøÅÎüvsTøÚèÖÖVnt{ +¡¥E-"´4 +kç„–Ü-9Z²@qAhéÇa7 ¢÷ BK_ !o첄ђ•CKÃÞeI-©¹, üa…†ÐG"í]·.֘X‹bÍ*J^¯· (Áø0”ö÷÷ PúFׄµ1˜DŒ3—Ë%fx4 +L†¯%€'mÜ$ƒLJV&U“vˆÜg¹× ô¥èdntŽJ& À~Ü †ç“ÉäÒ ·ë¶bFÆ$3(ßm èÝ= ÆH r Vж§VP´gC hχ@ǞcÏFàÁɼr</ŒÂÏvG!­QHj}͍æóù”Ô¶Fh‰ÆhiВkdzzzr$vldò—a¿!´ôÝ0Ôè¯Cÿ2„\–†`ú`E›pV¼ 'CKhÎ,%- ªl´DH îIPšK(aM¨ +”°Þ€’ßï×J™L†%ÂD 'AX7 æ™6†Ç Àd˜K£…±nR…L²¹. LoÇý)ђÞaJ(aG%É¥¸b „ÎQBý¦ +”¢R ”1’Y5ƒòÝ4ìZÐ^›åüüœÅH ^/¬ J/‡`˜^ ÝÝ݇ïïï‹Ãð×Õ|w1z—L£ð‹£QP×{£…Ba{ÒˏBʹw-½}Ÿxh)þ£¥x +ú¹ðÔõƒ–@£ËÐÒBK±wڂï T¾wP>Ï;IÇ(¡}Dï—Q¸¿ÀóÝHØ_‡A¸þ2 5ý¡¥C RïZ±ò›p +hI¾ Ç£%bV"dĘÔÑÉ(ᅢP +ëS(a…,¥¹¹¹6 ÃT ”`QÃ%XÙ ô™1ìíO˜ƒéDá¡&0lËÅL²%OnìM‚©I 2 ¾LJ{r‚©Ëí¸ž]½ß:u”ðþ›pF€”¾G(]Š‹p, ” óØãځR¥JØ=iÇ *÷Ð ŠöÄêõÂ㲄1’ Ðý £‡¡———Êp£Ñ¨ 7›ÍÊüõ8ß=ŒÔëõ»Qxïf SñÝÝÝÝù;PÍ Zzz|û= ¥õ÷€–²ïAé/¿´4ÿ~yy9ú~~~>ð$væȤëáä;@xc£ p?Â2ü‡Q°oZúz„CK¶a¨ø{„–F‡8´4dE›p-Y,¼Yɬà²4H6á!RÅH]º'½æ /F±¢ÅÊke¬Â1PZ\\dR6›5”ðJ()¹' ô§`ø@ºfx€ [p1“!-Œ’'n’™šd oÌak²ÒžœÌÀ¤´×%Zú³˜ºö薝ýJ?¢þøuτ ŸÌ͝£D3@‰Ûzc(ߍAл»æ“““#3›3 ¨Ò+ËýýýåéééÎ +éÑ + èi¨ÕjU‡^__kÿýöfÕøø<*£ðÊÃ(¼|û~Vz \¼‡¤Nރ□¥Ì‡õõõ¥0Ì!´Ah‰z29ýJê|ežx¥ÿû;|?(ÿ~„뛘{¾YèËa¨ó‡a¨ý»!ä²4„6á¬hŽAKȬģ¥A³”ˆË!D½“”Ü“”Þ:ºæ ëg¬Ì1P‚*Jb „¯y#@éócøRŒ3<˜”¶Û + GPȕ€ ð$ÃM‚½I2áoÀÀd`;î3w^R2+i{t·Ÿ œ:ù#ê ”Æ¬ÅW˜°@ €Ò€ (ÞÝ3ƒ¶=6ƒŽ=7ƒî,Zo-ÕjõÁúòòòd(TúÇ?þñ2ôûï¿7†ÿõ¯1l>¾ŒüóŸÿ¬nz…÷ßÁ/îÞ=??_¿xx¸xé>@Êû ­€–Ö>loo§ZZüÉdâ@¨C@:ý@=ïAô¦ÞC¹íï¡¿¼ƒÊüíL6ߍ‚\ýuPø_F@¤¾A›p#ôqIUØp3jLvÝ´ý¸ œ Ê-Jø¬I ”„€7(©ž @€ÒŸ‚a‰ Ì8ÃFY%†ýÿ&ƒ[‚À“ 7 ö&%Ȅ7æðZȨI¶'(`ÀyIÛÕûς–zñèn?#€Jv¤›§P¯€VÆ@‰€¾Œ @'Ï! ´<Д +(]šïîînÌOOO÷–———gËëëkÝ +©e<ôÛпÿýïýïÿþïïÃÿ÷ÿ÷ûfðñ£ÿó?ÿóúpSóÝ¿þõ¯ú{€VOïdÝ}¸uý¡%håcèñ=(ø Ûþþ~Î%X¶AYæmPªˆ đ¶dŸ¶ƒA琵ñ f¿~<þã{¨Õ÷ï ~ß¼‘ú +¡¥/F-}Az‡ÐÒÈ02+!´dEhÉbå]–,¼Y©3´Ô¼´¦ºd&‚ úIa$í 7mc’Òy܂{^Pâõ¥’·Ñ“È5oŸ3虰nÞ–1<À0S‚V‚’'7 ¦&2a±àÞ¥I¶׳óҟ-õ1ô=#:‰ºÂºÇƒ´²¥0” ÏۀhÛ hÖKóýý}ÙüüüühiüöÎÃ-ªk}ۙÞ{e``úÐÁ%1ÑhŒ£1‰é‰ PE¤(" ‚¨ HEìÝôœœœs~ß¿õ=ïf6l÷Œƒ€³¹.ŸË™Ù³ÛzÙëæmëÀ29ˆç€¢¦¦æ‚1ȨFÙØØX«:qâD­:$5¼W­Å§UZ S¥Tµ_wøðá}ee%£¥o  ¥DKیx¢o2nß¾}´ô®Á +#,v‰§6ÏnÏ7ÂêØZšf–¬{õ@ñ8(Ü©ÃEZµ°&³3“ACÒ©aCሖ”J„c´v+…iI"›„‹œàMf‹Œbã&ñgÚ?3a¤ˆenI\­›P?n¡ô¤ˆyÜBob¯É¼0Ï¢(Ï-엉'ì/&< âŠÇM<S ÈÄ~Ù£;˜b %.yiú—b-Œ{ÕiiÊÜ8­ŒnáÒ7= ©ë$ Jam¾ã6_‚±œ%ØÁ{’(m!Pú”@é« (•••í•WTTì—v*åuuu‡ǎcŒT§lnn>ªjii9¦>yò$“£¼¬Ó655Õh±Éa6>¨Ç×ÊõÕÕÕ%¢%hék#hés#žÙ[x¶o4–Þ7áïäwL0å·L0ÌE&a± 'škÜeaf©XX’(¯Ç´ãÒäì:\©E‹™É¤…!é5°!-ђZMA8á”ᔥ˜i)šoéŐÑ3¹Iü‰úp§ÏH¼2·XI\ԍk +À[¸$bzÒ´ +ÞDPú§‹¾ŠòÜÂ~x¼µLx@Ń'7q®&!dâr™x19!Ó´Âq3Iõ~ h‰7>gF÷Ó=Ri((åÑSyÒ †vE”` œG)JÒÝ»wÿ £ô$è¦\Î9(¯¯¯¯V?~¼N:ª5¨N:Õ¨jkkkTCŽk Z¼wT‹OkuØ®ZßÐÐpPï–ˆ–ŒØßFìù+Žñ© î-&<à7˜ñ×ñ3þb^e†u.5Þ˜az&\¶ 'žn*((ða\^ìÊc€I9õ°&›†dÖá ZؐNóѨ)G´¤$ZR(CA8Y–(E¢¥©«Ãži¤“¼ƒÑå¹h镰ÛWígúx+#q·çt&EºÅžC7¯…’J¯™°À«(Óö‹#$ÌGËDˆ¥8x⦈ÈÄÜÂì×9¢ƒ‰—ÁÄ ÇÅJKϙêkW“–„@é™Ý1”¾±™4(¹„µÅ<•A #ý.%IP*‘èc¥èÝ ”XF7%?±)5S"__. O1îb †qy”0ðë%0–Ì́ÒNÙþýûKe‡ªÕÖÖ–744ÔʛššŽ)@'”à¡f%ðè¤êܹs­êÎÎÎV ä¤/[´gϞmҁ›ŽëÛÚÚê @«#ÆÆÆƃFÐÒ>hi´ô´´Ã²k×®mw£gð¾VüŽ†¹Ì +#\h¨Y€ç9@y†¹¨¨ÈoƵ$špY#f!§ìm3ÀÌz\¸QóÑ-i4,ËQRʒ‚hI® »•žƒ–BP4—xôœÈôÏý‰ˆGsÂHn\™[tgoq7öç&ûë3zÔ-zz’XðöO6ð¢Ä.Ì÷QØ/'<Œây£Øï` ÈÄþЉî`ŠŽã%/M+ÕûCK›Ø2º…Kß(Q3%zHçРÑ@-’`ðÞ’à¼š%ÉTP’N¥jùñãÇëåäLR€}‚Œ¤µ©ÎŸ?ß®îîînׄ¤M‹÷Nêði³Û7´··×Ož3.(ÁŒKs›`M# Éj€ ™ô˜² :Ì`Z-îˆFˆTqA8¹•Â´$œ²D"JÏbZYnRÈt2ñÝ"Ó˲ݗò3“0¯®mƌÄÜxen¼Ì$¡n®Ö-zԍ—ž4ýÝ¢8wî\›8¥ïêêj6œ={ö¸‘hɄ6cWÐR©åðáÃ?X8𕭤¤d» îÍ6<ï×Ùa¶«í°É·ì8¿E6œi‘ p—k[²dI†óLŠžh€{̘œ&\©Í20eõ˜Át:r+iq[Ôr+©™[ 7LN´$ ÒR”›ºH8an¦)<aÂ-…$"Ég  J¤%úya6®®M(‰ÇHBIIn\™[¬Î$^­[Ĩ›Pz’˜Çý: +nQfA¢Sž„üM[mmí.û¡C‡¾vìÛ·ïSþ‘OùõNXì»N`ür'h}±W쀙å:Àã™v\FŠ&•hƒ5y¬0$§s”Í ó1›põîƒN£Ñè`4j-ìE©Á­R¨yn¥è´D" ‰Œ'|ØÁw9Q<[&ã™È$“DB¦—Ÿs7«?±âQtFŠf‹ÎHìé‘‘¸¤¤è7^™[tg¯÷ô›ˆ ôš iQ¦)ì—$¢D$(7ñüMB^&^LŽ—Á1'”¼kª÷ܵxµi)֌náÅLx¥oO÷ȧ?iç“ëo)=ŸWÑ0N€LàJ’© $e ÔÔÔÔ kkkk‘Ÿ={¶]ì9«u)ÁC=*Ñõå˗{5###½ZÈ^vëñA§›t˜úûûO™{zzš, ¥cÖööö#¶––– +{CCC‰£¦¦æ{geeåβ²²m®;wntáɿօ³Zå‚.uÁê¸`kNXXÀ‰É&Í“òÙqU 6’Û +²[`>³×ë5šÈ­dÀÍÐêq[Ô:؋JKn% ¹•„h)ÜÁ›­¥ Le$¹„èF"EØKd‘ }-,{fÇàÉò§"8˜¢ÐÒkðó"Âl¼þH\í?/iZŒ1àÆ­}˕¹ 9“"¦pO?ê&‚Òk!lE™‰¨„¸IÈËÄ!St“P8.bòÒôS½§ÕFà5 ¥çÌè敾EèG0öMzH¯¢Á[+Áyc”`C_JvíÚ5”Ž=ZK t\º9)çœV€xÎ)º•@¡^ ¨_}åʕÍÕ«W´~Ýèèh¯ïõñi§éâŋfÐR«ß=aÅ^êíØ_•£¹¹¹Üyìر=Îêêêo\Ÿ¹KJJ¶¸ñ0ÿÀ ‹}× s\î†é-vc&)rÃÂr]øƒ<ùhÑ"¿֔h‡!yl¸H§\h³ÀrÌfXŽÁ£Ñ‡F{£Ò™Íf%ђ‚hI®¦ œ-ÉBkéʤ!‘K9ˆ x”áÈhP$± +}M€›¢#“TòÚÓҜ„Ù¢§"Ed$.g;:# %%E¸ñÊÜ¢;“b¨uӓ^[aƒ,ÊlIt‚r:ŀL</ƒ‰ Çñ’—x½¢§zG/ŒûgÐRČîJßp#„Kß(±ÔL‰†b ÏJz>¯¡§òF †{[”~ð@ 8ÓH Ô*ïììì÷ööv){”—.]êW‡Õ×®]Ҍ iÇÇLJt=^öÁM=¦‘‘‘N3hé´´tÒZ:n?{öl£­­í V檯¯ÿÁC~‡ƒ·gϞqxè¯õÀ:WÅaÂXƒ›(ÏwãänL;©.X“Ï CŠwÀ†\v˜ÝŠk¶X0—Í0½Ñåri °µžÜJ:^Ž¥,ñzRBäDKA‘†…GFS‰G%ÁžGžæ&ž¿‰C&AZ +‹-ý=ƒp/+ÌÆë!9FJJ +¸q=“„Êܞә$FÝ^Gá@X”Yà‰ÇMё)ºƒIˆ–¸p¯—@¬©ÞÓZe&-*_¹î”A)DK1”¾9‚¥o¼\3%ê:I#³‚F‹Ò‡ ò6 ,â ÉΝ;ìÛ·o(I(>}ºUÞÕÕuFÞ××w^ìéU€T@¡‹jÑ°æƍ—´7oÞ¼¤ƒ\Ôãå ô™€QÝfl|Î:<<Ün-5Û»»»:Ϝ9Síjmm-w766­­ýÖsðàÁϕB…qÛ¼"´4gsÆ앾 õ`͔у{9 Ï»ôÞ@ºU‚ßA ô=R©d +(˜Jýýý= +Šº)GGG/*AA—Uà¡+àÑUí½{÷®ê £zȈñîÝ»—L@¦A Xª× +Z겏ŒŒœv µ¸z{{¹;;;«ãÚÛÛË=MMM{âëëë¿IÀÁ?óîß¿ÿ#ïîÝ»×ya¬ïxa„˼0¸…^Ì. @ñìx\Fš†ä‹›7o^‚æãvÁrì\³ÅNn%+ìEOn%­)äVz*Ç£%9n®’‰Œãæ +ÍSP„½0Ñ1‘bÏQ„6ÊnšŒL  В4- -W÷òû©Fù™FŠfãº"qa¶R‘ØӇc$ölŠÈH|xM¹jÄË>¶`“6î±ãkgØÁ)×àà`c\OOO­çìÙ³ã[[[KðÖÔÔ|‘XYY¹5±´´tCžòï%áüV$Âô'bb)ö¸r½0©Œ„¥K—úãqUÞ8\_œ–ãtÂh¬Ž””³-))É`%·’ó Ö+QBn%U¸o벤TÂJ‚B´¤’“È]˜LbŽs8ö­é' öl˜*ú Ð§2ˆ.(ø®VF»"ÑÈ°{uø*¢´ˆ´ÄUåIÿ–´4cFší0[DFbOöâú#±¿é„r¶ce$¡¤¤è7љôO¡%vyNnŠŽL3˜xá8!ZŠ˜¼1՛W'ÔF bӥ礥èÝ)_*-ÅJ¼Œîzp͔8PZMò=¯1‚[h'ƒÒ¡C‡X{€ (I§‚’œÒØØØeå͛7GUwïÞSŠÆµ=º®{üøñu=d̹j2Xîß¿ÑvçΝ>;hé¼óêÕ«îK—.µÄõ÷÷‹?þüá£ÜÛÒÒ²;ñرc_'>|x{Ryyù&ßîÝ»ß÷ÁNWù€ìo&aN™Ÿ„óÎOêeyÁÞ© ˜ž’âa>ñq˜Á\nLh6's+%''mäV²0·¬D35ÇÚQ²¥NT*%LE¥€¨å!ÑÈB"LFaÆ Àþ‚"ã >5…¸)(2A4S‘)HK,Nš’ ÑR¸?¦ (I^%PzÎT¤iUüÏ8Ì&”ŠÄõdO)®öŸ—³#ELJšVÀ-Vg’Jwyù¨ñšÊô‘Iˆ–":˜bH^Š˜ê-qmfLKB5qƒpÓ§¥9˜Dž§ôM¨G€P3¥P×ÉeJïÐð¬§qc ô¹–óR %ÉÓ Ô)앏ŒŒ )ÆÇÇG”·nݺ¦ºwïÞ¸ŒtCóäɓ›ºüñ¦þ§Ÿ~ºaÄÿÆÍx犯^¶–·oß¾à¼~ýú9÷èèè)Ïŋã{{{k¼•‰mmm%I'NœøÎW[[ûyòÁƒ·$—––®OÆÓbu2,ñ­dÜB,¬Ð‡¹'; Ö”æ… ùpi ñ˜ÁÜq0»‹ÜJNLw&ûT·’‰ZB –ÔÁæݸ}j¬D­Ä «V°0‘3~á<@!׃"CŠLRÜz&föQLrڎÄ('n"1ȱ½;ÕÉq ­œ—hIN´$ŸBK +FK²Piž,LK“ZŠ ¸•Þxhéïfã¥"qéÚì)ÅõGâÕµMŸ‘„’’"ÜDgÒ?O^>Qü3dúÈk8î9i‰W±¯éҋ ¥—š²4cP•?ÕLi +(Í·çf ´Ž†ì#ÕÏß` .a TI T; ”zzz(õɯ\¹rQع¢¼sçΘêÁƒ7ԏ?¾¥ÝÖýüóÏ·õ¿üòË-#ä†ïY€LWl ¥a¨ªß¾:766vÚæjNÀNë½à°ª$hŸ¯¥¥egò±cǾð>|x«¿¼¼üCÿîÝ»ßóÃ:Wøau‹ý˜bŠ’qö9>_FlÈïŔåMÀ_ùqž¼¼!_Єkˆˆ' @&á Áž­LäSijۙ“ß5*°+ƒ;Õ+°{]ð¸0VFijŽ–‚™S!ZâzL¦¥ÐÚ+ÁüîÈ´ôb^,#E³Eg$^˜k±-”®Íõdñqµÿ¼œíX‰—”4ý€›J¢ˆ"(³L±†ã¢'/q´$”¼4'´knå“i%x¿0·RDPzºG€:˜Ñj¦d ƒÒD3%¡®“SÚs¿M㱎žÙ ”>#c˜¥ƒò@©@©K644Ä@i˜@i”@i\õðáÛê'OžÜր‘îè~ýõ×»úß~ûíŽrˌ—×­øàš ´tف]wïÞ퉻qãÆÙø«W¯¶z‡‡‡ûúúª“:;;˓ÛÚÚvû¿N©­­ÝžRYY¹)gµ6¼*Føf +Ìlžv•— kÊôáOø”$üYŸèÅõyâ1«¹<˜älîôôt‹VbœäV¢ µ ` –4Á5ápç4jX‰V…V«dÀBŽsù0çOˆŒ&ðˆƒ"ìÊXMŽ™ØÎÄlb%±(𠋂¸)ŒLB&vÈ -)ˆ–ÌÅEA¢%%GKáŽOÝħ¸•$|ZzYn¥—ŠÄ ³=gÅ?—ŠÄ…Ùx©H#±gØ c$љ$Š(3—AKLb ¥R½…ÚÌ-E_'.Ör¸ëVz&(=µ<.J¬G@Ä®“!PšGø7ù ô#ìàۈ $ R¿|tttXÎU‚x®«=ztKýÓO?ÝÑüòË/÷tÀ£{ú?þøãžrÇüûï¿ß²â½q;hiÔ  v=xð /îöí۝ñãããmޑ‘‘Iƒƒƒµ¾îîîJ?Ž¶7¥¥¥åÛÔ£G~–ZUUõQÚþýû×¥íÚµë4XâÒTØڂ x¾WH† ¥ú0eù1Å{a/îx˜Š=ÎÜJ&r+&¹•Xßn¶Ê D«¦è4$jb‰’9z˜Ë‡ÍÈ ô +ákVù(rÈqÃrìÙÉD#ä‰C‰˜Ø•ØئÄ׬JB&%ögVbÏ&%ŽaT²ƒ-)´q´‹U)B´ÄzȧÒÒÄJuÜJ|ۚëŸ9f¤ˆÿÃlìÉ=ÌÆëŠÄ-Õ1‰×g›×‰«k‹ÎH±&n‹Œ$Š(³.ÓG¦Âq“—bHõžcZŠÞ˛£%¡æ¯ˆ[I”ð/ +(ñš)E%n“ð‚o4<›'RIIÉÞgƒÒ%9@éªâÞ½{7T?¾­ÝӀ‡îë€Gôÿú׿îÿüóÏ{füï¶ïÝ°ÿúë¯×œªËn|cÀƒïžO¸yóæéÄ«W¯6' ×'÷ööòŸ;w®,õÔ©Sߧ?~|Gڑ#G>N¯¨¨ø }ïÞ½«Óa˜o¥Áà¦Å SaMÙ~ÌQiÉ+V¬HN‚Ñ$$â"Ý 0‡Vb%·’y’[)!!µ `}»uzˆN‡›¦×ÀJôjˆAŀ…=Jæò!ç82Âüë’c§.n¸;(˜ŽÝÊ)âRá&N6v¨ð5» +;°©°+‹ +{6«p “Šf{½ŠhI¢%–>¥ +WåÛ>…iI&@K<·߶æ²ÍŬ0’PW¤R‘bh¬k˜[ΖKEâÂl\*RtFb¾u¡œíXýHbÀMQ^ˆÌ¢ƒ)†ä¥AK¼,o^wJ¡u⢗ý:n¥™×uR¨=7oÁ7J›éAŽqû”†ûÛ7¦‚’„J/^ì—l.Ɂ8×÷ïß¿¡|òäÉõ/¿ür_óûï¿?ЁŒêÿýï?4Bî›!w­@¦[v|:î-]qÿøãCžô$ܾ}ûLâøøøIßå˗ù§œ?~_j{{û䦦¦/Óëêê¶eà„>Ì(--}/ö¼<V·(3NQ¬)'sT†äO^ºt©7 þÇy ñ°[®ÞÂÜJÔ[ÉH½• f`Š!¸x.n•AL1ha%F ±Šš|¼1sÿþýk2wíÚµ2¦·$<^œkÊMÃed¦ÀrR’1—%ú-ZäI„•¸Xü¥ucn4;@&ê­d´àÞM˜HL©F=‰7ͤa¬±¨X€Œ…Ê(r¦à|FSÈ(^&(1ÿ2ñª`„AQãLÔx¯a‚M<|íÅȸ´Ø‹S‹ýٵؽMK´¤ÁqM¢% ós±€ ђ:Tš§R…Ú>)¸µWÂëúJÃn¥àºpaZzC–fËfߘղÿiuEŠ5iúa6^W$¡T$æBJEâõ|aŒ$‚’(¢Ì¦Ì˜–bMõŽµ0.VZê À­|­ª+T7“ Ü s+=”žjÏ}“h ´v*(}3 ”êêê&@ ÔÒ.½p᥁0()™©ï¾ûnŠö’”¼xñâø$.þÆҺɭDÝÌÔ[ÉD œ˜Ì˜HMFˆIB1ë¦@¬j#<¢(™SIxDá³8eÈg„"%¦ÞD%P(IÓKRáIjLÂ>’$MX´D->õj±]‚ßðèðÝ8É¥Ãþœ:ÌçvdÕá¸-ђ–ù¹B´¤Õ`x5Œ–¨í“2ÜM|b¥º0(É_(½ˆ’¶è]‘fÜX[(Ì&Tñk*‘¸T¤çd¤’’DFE”¹‘™$/½|Zâ­ÇþPäh‰—àÍKY +ÂŚÛ=ÇÙJ/ ”ÖÒÝÆ(l%ΣÄ%0 J·”î©ûí·‡Juýõ×ðè‰ñÿûßc3ä/ï:ðÁM6‹ÃƗãúé§þćž÷ݹs§Ý?66v"õòå˵iýýý•]]]{3ÛÚÚ¾Íjllü4«¦¦fs ²²òýÎïí,Øä›Y°°ù™°¦üt˜OVŒ&5ôû’1É%$͟?ßíÅ<ÈâoÁ´î`J¶lÃlÆlj6Â@,Ü*«Ž9u v Þs¨YbøÅ­Â#˜™È(Y…©7Yüj¡_ÇôkC’¬Ã{>’$=¶KÔã\ôøn¼'§ÇN]zœ•C£ÙôDKzX¬YG~.Š +êµT+Í 625ɜ %%%,VF´$ Ӓd-…ãoB´4›x4Û%m3îŠkcíç ³ELEJמFn¢ˆò2dÃq±ÆE¤¥è‘8®;%oå-ELðŽ„›·Òß”V>( 3P‘ß¾}{Lι¥ñL€ÒŸþùX÷Ÿÿüç‰xôÄôÿ÷-‡6¼¼çÀ·\ÿþ÷¿Çâ~ÿý÷‘„Ÿþy ñÑ£Gç}wïÞ=í¿~ýzSêÈÈH]úÀÀ@eÆùóçK²NŸ>ýmVSSÓgººº8«uÒÒÒ·0Ì¥Y°°ù™˜ò3>üðÃ@:þÊOKÅeùü°’&¾8£ú7GÅæÝXà‹¶a1c6µš` V&W›Ž…À(¦aID,§ÛÅ«XH &•¨bx ’‘ +—¢Æԛª†ý¥iòóóÓ´L0 §é ©z&x/ŀM’ 8ŸßH4b^#æîx#F'Έ³r‰–Œ8®ÍÀð9»XË8gõy %Öö‰µWWª ¹•dJr+)Ân%y”d³íVš;FŠ5]{¶kÇf‹Xñ1)zº¶ÈH¢ˆò·”¹K^š1-ñú-ñVÕeòÊḔ%^.b%œ[)b¶Òܹ•^1Pj"P:”T ”À>(ýH ô#Ò¥G6È}ÇÿûßÛn€Ò¸ç?þIøå—_“?~ܝ|ïÞ½Ó)7nÜhJ»råJ]úÐÐÐÁÌîîŽŽŽï8ƒÏ²q.e:th]vYYÙ;Ù0ÖeX؂,RA&,'ŽkIKÅԖìÇtç &*ár],þ¦±»0iÚhÉ\› ©Í.±™pƒìˆCÏB`7%y((>˜gÄâj!r&%mÓµg'ée…ÙDFE”×FfÒtI(q哈 Þƒp1¸•xEpB œÄ›»D¥è ÄғB ¤X×: ”é2S§€Ò|ºWKéOé· >×Ñ}f ô¹cù¤¬¬¬T$9(9vìX}”Ν;7J—/_T()§‚’6J”;3‰@é¾/ï¸ñÁxlrՋ‡“~ùå—^ÿãǏϥ”N¥”Žg^¹råHÖàààìîîîÝ9§OŸþ:·¹¹y{n}}ý¦\àÛÚ\œß*¥7s`Có”Ì=)ôF]' ”|ÁÅL` JñX„Ç ñ8pâm,’HÕg>#>ðX%?¶Ë ¢µ€vŠ ©H3›§ƒÁ-ÐÃô0Ã.1‚‚Þ4á&.5Ã:—ZôKm˜fß´C–8 ‹]xo¡ŸÎÃvEqøFßÍõ`ñ+W®ÌˆÇžâ-ù<À2o;Sœ•ËÈ·;YKŒ¢)¼RÎ³Õ˜0Ð*#ø^©j(È­$×(‘[IŽ¿M%ù³A)2-Et!M‹‘fRöCºö´R‘„Âl#Í]5Û´\H"#‰"ÊßWbH^Šµß’Ð:qÓÂEw+ñ²•bHëæÅß^X¢RDPâò¸(©éŒ´tn ”LDwV:}L6Nò–y&R]>…$P bݬwèÞ­§û¹…¦ŒÂç í÷’}ûö1P:$e ÔÚÚÚ,¥»wïŽ1PҀxîjÙR¸JÁ~ÜÿûßÿYG(›KO'Pº’øûï¿ùÀWüØÁÙTìêdúõë×2GFFögŸ?~WN{{ûW¹MMMÛrëêê6æ\%mhh8*=uêT‹¬³³óŒ¼¿¿¿G’™JêǏAIPº\ +—­ð2z임ÿÝqžnӓþüóÏˉ¿ýöÛ`òO?ýԝòðáδ۷o7gŒÍ‡Up ²ò‡œ¶¶¶/r·æÖÔÔlÈ­¬¬|/·¤¤dEÌlI6Îy^V’Ïú(ñ@É%o®9!ŽEµ@K^Ì"ÑƊóYS#jodd-°]@Ï ÓlËBÒbè0Ã.ÖÃàÞÔão`„+Œ`³•fL©«,¸}o[qoÛa¶o;1¥®rAVÆA–{ðÞ²xL¸KÀM ½0åy‰`þÂDLѹ‰Øi »OOÄ9§$✓¼ ý„Ê«ŠÈ9Y§L7 ßì. _ ¡µ+Ôfð½’ÜJ +Š¿Éu™–‹¿E%”¦ÒÒó–ýÇÐ>2ÖUÚb-iã1R ]‘¦¿~­fEQf(³MKƒpÝJBÙJ\×[ivâos +JÏ*xã:p d ³4Óäc£ÓwєO×Å@).˜R!M* Éßö%k¼KÓÆOÜ⭌’]»vý Ù¿ÿ>iuuu•ôøñã ÔÕÕuF>00У PR^¿~}D¥›Z€ÒJ€Ò@édtŸõã6À{×=\Ô-œž”JyÜé·nÝ:‘qíÚµÚ¬áááÊìÞÞޒœsçÎ}—ÛÚÚúy.NcKî‘#G>È=pàÀ»¹{÷î]žkZœy«8€“Ï 6œ¤>J©Jþ(%%2 hQ²´‹êËì #Ÿ â§~F©&0u†‘ɀsõ#a†]¨Ãþ˜ i™V·Üû[e½cÂqW[`¢ïZöïÙq.ï9`Àïº`Ê«ã ïxðrU>Xá…Q/K„Q/IÂ×ú°ƒbv•ïÃN³}°âL¬85 ¸ïK‚{qB¬¯[€ÅF °˜Ý`^£ô ·'$$h­À +µ…âo&%,@®ƒ’&”¨$ J¼øÛTáãÑÜ1×)†²¡’¶èéÚ±¦" …Ùb]¿V ³‰"Š(±ÉìÐÏ­$„‹îVâŠà¸ÞJBñ·èõo1$*ÍIG¥oÏj¡”|4Û0PʦTJ‹È߶œÜoïÑ܁¹âC nñ6 FáKÉîÝ»wJÊËË÷KÁ%‡¥Çdmmm''Ò•+W&’†ÒÏ?ÿ|Gÿûï¿ß3þùçŸ÷̀¢û´¸Û=;äŽ3ìLŠÇ§W¼\Ô-”žÔLO=:Íò¸Ïœ9óM.Ëã>vìØæ<ê ‹S{''¹,æ³03XQl#7—‘ìÌýÎ;ï0PJNbÞJ0†D7x(É ‹ðÙ!~+$•º?fP3È,#1’ûãÞL0…ÙtŒ‘0¯®0`J}ۈÙtµ ÷ë=3Lt­û¾ ¶û¾¦ü¾ gõ¾6¾Öy//W{ñÁª$l²Â‡—&ãk‹“±ƒù~Øs¡'žë‡)gùq´´ä•+W&û€û‰I\_ñ¼¼<{< Á‡¡4ºùz‡×ëÕÚÀj ÌVeƸ+Œ ”ŒF£L7%þÆ%ÁD¥è 4wŒCÙô’6¡tm¡®HÑS‘æ$Ì&ºDE”§eú5qÓª„r+ñŠàx½•"Æß"Ö¿ 5 +ˆµQ÷œ€Ò´ +ބzM¦æÐßá˜u‹è¾,¦™d1æâ΍Ì ŸH0_IöìÙ³KràÀriMMMµôĉ ²ööö“òóçϟU ö( ”T›5çÒ °ç¶t׺kݵ–îw ;“X­[°)u»sçNKÆøøøÑ,^zÒéÓ§YzÒ'”ǽ1˜Ç½oß¾U¹\Á ¤0 3]Nf¿Ì4Zë-…@)vÀ@ÉGI?I*¿w/X°Àç¤&vjŽmem²‰‘LØ$‡)Ÿ1’~ +#½EŒ´R«{ǀÙô=#îÕZfÎuXìVXñ;,{ƒ¿Ü8µ<õ ÷½5Iø5XíƒÉ¯JÆ-^¿™‚_˜ +Z*Nݼys~*Î>Š£¥ÓÙûýSÚeºAúö®ÅÛ5¹ùz'ˆBk «­0[ÅßFX€Ü JSãooLJT +ÓRdPz±Œq•6# -bËKמq*ҋh)2’(¢ü3%VZŠ„r+ ÁñÒº…âoÜÚ&\ýo¸X•^(M+=)zg€§[(MZ½DB«—HpŸ·K0_KöîÝ»[ZYYy@Z[[{DL9.°´Ê»»»Ï*†††.(GGG‡(i”´¥ëz€Ò-#@éÒ+ èŽ´tË ¹A‹»qΤ‹ÁZ·'OžtRÔ­EÝ2¯]»VGQ·ƒÙ}}}¥”žô}î©S§vðӓX7KO +¼e†:d¦ÁÒR0K¦ø”C ä‹[´hQ25+òSÇTþ—nÁ{™fXI¶‘‰õ‹Ô‡JÚX¬c¤ÕL¤kŒ¸MëL˜9?0Ãb?´Â”7ـB›»wïÞì­ÛWRR²)ò¡òAÞ[ç|®ñïÚµku +N|e*îó²4Øøâ4ìo^:ö\Žcä¤á2Rq )©˜í“h]ßødœ©; ìðb­ñ°]SlWïJJJÒ:”l0[Åß&Jà’ (i(]ž”„Jڞ“‘bm)Ô)zÙ¿#Ś®-”Š$6DEQ^¤L+C¶’PœPü×„’WÿC¢ר{úÝ3¥X£n±æq ¼qÂ-”$ÔkRBM¹%¡¦Ü{¥¬Ö×××Ț››Ë;::N)zzzÎ) ”TJê›7o^f ¤#P2”n(Ý2ÿë_ÿºM t˹á¢pãÀHWþø㏠3É÷ÓO?õP­Û™4ªuË`µnÔ€u;yòäguû(¯ººz=¥'­ÎtL¤'Á@XzËãÎNǵd¤RðÊØ ‚’WšÙ4™@ÉØ!iVb$ZO$ÛÄV!F2„i±>k 2’ÇXkÀºÞÃüЋÝdd}lÇ Ûê,++ÛêÞ·oßǞòòò- !›|û÷ïßàǧëR°Ý{iøÆÛéøîò ìåÍ \‚ ˜wQ¦í\rŠ±èa*-WçK…'øyn ؑ˜——gMÀPš<°]ƒÛçói  X¬²(™ar#R8QIª‰”H$SåÅ1RÄö‘)I¸J(Èïa½Á)Jiv¶ÒÞ Ðl¹&lWhÀ7æ#¸'3v¿VûûÀ€Is£Æú‘yçΝ[ÀkÛl¸WÛ@¡í®ŠŠŠOã*++·Çƒ1?I„lõA¶øñÞ¦ÞiØîýôÒÒÒÕ ¥•™ø]Xš…ëX”EùèY˜±óh]ß@&¦÷´t˜rrڊ+¼)°â8?øÀéÃZA¦xØ®!l¡sy½Þ P‚Ù*(QIN‰JOÒ”D¥ PšJK‚ 4wŒ±}d ­‘"–´M?]{NR‘Ä0›(¢ˆ2 ™±[)bo%Þº¹ÌÁÎëÖ-Ô(@¨QwtPzÎÒ·é‚RìΤçJOʦ /û] îßÊãž(x|/Å|^*=|øðAYCCC¼µµõ„âܹsmÊÞÞÞNÕðððõµk׆4·nݺ¬((J×Í@¡V€ÒuÈhܹ‡—Wâÿý÷á°3©;Ü8‰Ká® Á*&Õº:uŠÕº}œÇ‹ºÁ®Þ Fݨw&KO‚ dQzRºóeª@)‘¦T["x”FK«eØð2‹V¨Í1c“#6žgÀ×#-¥º¶º7®Ö1FÂ1#m2ÀN·˜p‡¶™÷îÝû©Ðö™´Ã ÚáYîðTWWïH8räÈgIíÉx¹-wrK0oc:.a}&îîš,\ÇÛß[ü,àbæÑÅäp1ÙY6lHÏĹøÓAÞ4œi\ +י ¶%a,Í  _çNLLÔ8@*ÌVi!P2(•Â Ì赞|CN" Ó”8<š#źT[¬Œ½5ÇH±–´EO׎¾6›fEQæTb %¡l¥âo1$*qÝ\£îˆݼ֓/¬GÀìDÝ¢§'Ӕ³„@ƒ•Ì)k$,³Æ6ÊãþRJoRLþûd˜è«dÀ”z9€¥IÑÙÙÙ®ìëëëT]ºt©W3666¤%PÒ(J×L¥q PhÜ(w®¹!£¼¼ìÅCIؤ7w×uc“B)ÜUٔÓÝݽ+·££ãkªu۞ǫuÛ³gÏ[\Ô-‹uOÂ<˜NéI”Û“îgöԎȋÑO‰Ç¼šâÆ5§:!évH¦ä‘mƧù&lWddː໬?Òr&×wt[¶lY£#FÒã@› 0̏`¤OL%%%ŸY;_X=_ځG_»p¯¾Ž«­­ý:¾®®î«Äúúú/}ÏýOSñÁÖtlòQ&6ސ…¯½ÀVg³VP¬¹8îý‚üEP˜Y<'€1ÉȂ=û3`ʉé 9O* Áé‡ے0”foff¦!¶«sƒ74Îøøx• f«´Àl唨$ gtK)£[ÂetÓÒoO‰dªðÛG¾TFŠµì?â"¶BŒ4“T$1Ì&Š(¢ÌÌvü-b¢’P£n¡Œîˆ­'甄h):#áŸ7q¾´v¾±ß¾uà6}ï}ïÒ}Ÿ²ü.±±±ñ›dÈW)x¹# lÏÀ&gÕÔÔl +€–Öçà¿—ê÷€¦Ksñk°0ótQÌ;7gÀ”Ÿ’ HÊÀ™zÒ@ +®”yóæÙ|às"ՏáÕŅAÉN d%mDP +Ó”„ZlÏ1#ÅÐ>Rˆ‘b-i›Åtm1Ì&Š(¢Ì•ÄZ½þM(Q)zF·PëI¡Ò·X{Ì”ž–i:“pOÕºñ¢nBݓÂm&%O§'}&Å |+---Ý+;tèÐfö#òæææEGGÇIewww‡jpp°K322Ò«Ò3PzðàÁӓ'OF-?ýôÓU@éªd4ꆌx Ã^0Ò@>½Ìz&±æ’”™”=ïÏéééٝK)Üy'Ožü4¯¡¡á£¼#GŽ¬Ïc)ܬÃ$׊;T떓NQ·ÔPÔ-¢n©uK‰¥Æ#¹ ¼Ì²‘r, ܌p3„n+u°¦wu0®u:L¤u0Â-zØîv¾ÃFúÊ hûÖR]]ýƒ ·Ó +Úåíö455íòâ†íLjiiùÞù6/¿Lð}ž‰‹ÙÀ=ý(‡Å)á*¯¼¼üí¼’’’·òpŒEy8Zq.l|¸R¨QXŽ+.­ª .œQ ×ŒŽŽöé®_¿>d¸sçÎ%#@iÄ Pºb +:EW\ ¥‘8Èp^&RÀÍDz·YÏ$VæFΤ¬°3)‡úävuu}Ÿ×ÞÞþE­ë–G)ÜyUUUkó(…›ßa’ZqgP­[93…¢nÉ\Ô Ÿê!PrCҝL;ܬø ÏütÀmÜVSÀí} +¸}¨Ã-Ù¢ƒa~¢ß³gÏÎàkceeåwf0ÒN+iì³× +*qŠJâ[[[K¼§NÚãkkkە‚ÿý†÷¾ÉÀ§_dáŠ>ͦ„+–™N%|ïçc«óËÊʖçãږäãÚæåÁÐór1½gåà„R(_L9>gïJ=ØýJ^%l7JJ¡Ò7Y¸ôMJÝ JT¥ -Ñ’9f¤ˆËÄÀH±–ýÏ8][LEEQ^ŽL+Q)zF7×Q)†Ò·çì0§ ôÔzí±9“&§p‡¢nv~­[„¨Û›L6«$¡îI©{Ò'RÜñ¯¤‚²PzÒ!9&õ:fûÊsçΝRõööžÕ€iºµ ›>=8gÈâ6}.[@A#v€ÒˆPtÙ <Ž‡ yñ²/‰ÜXöv¨gs&ÕXfçL:{öì7y`‹Oópð(…ûƒ¼ŠŠŠwÉë²"æ³$'œÂM&ƒÅôisVë–æ EÝR)ê–‡ëMsAžr&a»yÆPÖ)‰ÜÖhaWh1‡nÖâ–|¢Ûµk×çzÌלÆ÷Fä.3i¯çWfonnÞçÄéîí?}úô¾ÄŽŽŽ²deI +þ·;ï}Ÿ‰O¿9?ÏaüGYWùµµµë :ônAyyùʂ½{÷¾Y€_ƒùù°öü<œF ó~Z6ʗ…!KÈÀÙ»Ó`Åv?ˆÂâËÎÎ6zÓÓÓõ ”Ü •”¬´ÅJ“ÜJ$Ò°A‰Ã£ËHÑ[ló)†²!FŠØ9RLEEQ^ ™~¢RôŒîi×#€=¤Ùã:VPŠÞu2ÖuLbe¤3é©27n]·ˆÎ$^­[h͒§¢n˜S>’bêøTŠøFÙ-;xð`¹œÒ“”ž¤loooRuuuµ©ûûûÏj/]ºÔ­»víZŸáæ͛ƒ&% @é’  tÙPºì { C þD0҅`ööƒNp²˜3)[À™”O0‘O^—|æLÚ¿ÿÛyäLʅm, +¯ëöT +7Õº%Qԍ9“âi“œIx9áLÂ&Ep[v&­¤ +·wµ°¦uZXØ&-¬n«Æú™·ä+=Øñ{Îe·ŒTjnhhØg#°ƒ"+\@¡Ê8Qex²"©³³³<²/R’ôەdú6´ôe0=½±±qK.pCAuuõšB تÂÒÒÒ¥…8ä‚ÌÝù°ñìÔÂÖ¶haŽŸj÷ìÙó¥”öþСC» 8¡R#©Ü Fª°‚‘:psª\À£*0¯*·éPROOO¥r /Ë2Ο?¿' ›üÍêøðµÏò±ƒ­ØÕÆBìtmÐôí¢²²²e…»víZX»/,ÀUæäá¬ÒsaÔÉÙ@[o&Lٝ+v¤Y’§€’–z¨°€§@ –"ÕÂl'@‰ÜJJ2¦ (‘ÈH¤aaŒ$!F’¼,FŠØb;†ÖHÑW ™mFzùÏSQDå5”9%^¡Uß"vŒJÛs??(ñ)öžIÑ3“x“B)Ü&—áG‚igR­›4u“…¢neò#GŽT€Uj• –ã*ðËI5H¦C{ñâÅNݕ+Wz àœ~ÓíÛ·-÷ïß¿h{ôèÑExè¢d4ä!FJÀÿú’ð^w2>=ÇZ¤ß¹s§9óƍÇW¯^=’}éÒ¥ŠÜþþþ’<ÀÄ÷ù§OŸþ‚b[(mcþáÇ×æ³\gœÚ2* +[”úpS?€¬ðr%©S'¥z)ꊺEw&qÙÛïi1î×À¸6k`uŸh€_h.ßjj»ô¸%¥œU¹±©©©Ò Ø©²{ª5.ðPw¨ÆÛ××W©òC¦õöö–gàƒÒ[³´ôm®rGÁɓ'·666n*ª««[W4}§DöVÑîÝ»b<Š +p.9ù˜ü3raÔþlس7 ×—˜p¤[“aÀ¦DÀ°žzh㞥`3%J:JäVšJ$r‰4,#I^FzÎÖH"#‰"Š(g¢¥XA‰=£7SŠJ\×ÉJ11¯wÄ%ÝX™/3iŠ3iR +·„¥p³“6lø@‚‰e‹76Xë&+--Ý#gQ7Ì݇‚zŠºPwuuÒ`Þ?£îÒq.;ýf`Ï 4d + ¹ECqÀ£xb¤D¼ìñ±€ËÞ¾wï^kÆ­[·³ÆÆÆê²GFF‘3i_8bW>âë|àǧ ‡ +jkk?(À¹¼KiÎ+ò@-Kra ósș .ܙäLJ'g[®„ŸÂŠºqΤ§2“ðÝåagÒûL®5˜H·jp7>×ìÝ»÷ (m§¼V¢«¯¯/7àÔÁŽ‡Í`¤©ÎÑÓÓSïÂÍ9ê¨÷ÖùpY5~Èá4¼W™ ÜÀUîÍa±Å3gÎ|Y€KÝ^ˆ[üQèk}1Žñn1 uy1Ž»¸¿ Ņ˜ãsóq©y8IÆ-1 —±œ%Œ¯)‰@)_M=”Ô#@1©™èFªçL€¹•”„B +’I D/¥SI2­5m_FKÚDE”×C¦J\3%”؃1z×I¡öÜB Ä[Çdv|{š–žÅH1do‡œIægd&1g[®dÕ–JB“‚)ÜRÌ)Û¤ÔaR¶{÷îd ‚R9Õº)Ž;vDIQ7&õfuӂÎê._¾|ÞÎé5ݼy³ßr÷îÝAۃ¥A7ÈhÀé÷B.$‘&n,{TÕDΤ£äLªÎ¹téÒæLÊ;“ +pÈm8øFJÜY[px;à°,œIÔa¨8c>áLÂHg².Ü)\îP㤠3‰¢n™¼ pÎ$ÓTg’–œIL³h0¯~¤ÕmWïÚµë+;}û¾×ÕöjkjjöëŽ?~Ѐó«6âLkÍຣ60RƒŒt܅›sÜsñâÅ/.ë˜RŸ9’†÷ª2ñéKÂÂ7v2&,~V„ým)nhhØP|äȑ÷Š+**V—””,)Â/ļBX{^N-3h’ƒKM à<JÎTX±ÕÏ@ ¬O’ÄJäV +‚p”HdŒ‘è=éTF’Ì1#E_ÎVd$QDå-Ï J¼fJÓ%Þ:&/”¦È³‰—½Í5àŽèL +•¹q™I\?€å“œIÔ8Ijœ4‘Â]YY¹ŸR¸)딧NjTcR?©éíí=­£¨›þʕ+ÝÆñññ^ó­[·ú­÷îÝp…]¥8b¤Ho"i"àFÙÛéÔ + ß8dÕ挌Œ̝êL"˧…'Nœø¨°®®n}!+«¬Èµ,ÉcÎ$L…ÙäLÊÂHgepkߒ3Ér&¥°¨[8…;Ë.s3O-sã9“Ô°°mj܍j܍oÕ ´ÝðÚ>íÑ£G+uMMMՆ¶¶¶:ãÙ³g™ÁŽ6°O“×Ñì5{pYM^Ü¡F¤!R—²¬Îd}4AKûrq'w~[ØÑѱ£¨µµuk1ìÃbÜö5ó€e+‹KKKß,ÆïǼBœP^Á¶mÛ²òp½)98ç¤.Á“ñæ›o:Ó`ÅV?ȃ’!J>Ÿo”`» + lWn¢Ò7lWª£ø%5¹•‚ D"'‘1F"<’rŒDÖ.yNFâõGšFšIk¤é—ý¿ü'¦(¢ˆò“(IA ›DIJ +¸ 5àNLLœè™Ä+s e&- g&Mô9“¾D¾—íß¿¿„œI +PAµ²¹¹ù¨êôéÓMjL꧴ýýýgô`.ÃÕ«W{L7nÜè³Ü¹s§ß~ÿþý'@iÀ 2ꏇôz!Á€›ŸÜ°É©ŒÛ·oŸÈ"gR6vp8—œIyØé^b†ï +ˆ +[ZZ¶;vìÃBr&’3©À²,¶±0œIÔ®:­‚–IΤtL¤i©ÜÚ·agÒ¤nr&…S¸‹LážI:*sÓÂ^‚Î$5Lj‹÷)9“¾VÐvªj¥ðK…ØxX¦©ÓŸ9s¦Áˆs>a#µXÁH'@¡V7 ¨Õƒk;é½víZ³r"/¥ŽŽÖfb“ªl€fy.»èžžžï [_·ƒ7ޝ‡C®*.++[Z¼sçÎùE0ùü\tVø 5 J¬™%›?ÔuÒ@]'ƒ î:) JäVR-)‰‡$rc$²2)¹8F’Dg$¶4â´zHÎN¬mvIt!‰"Š(¯¶L¿ëäŒA‰[ð-VPâVÆ}~PŠ‰‘b ¸MÎÞ~ºw*­^Çz&M*s{#Tæ693éigÒ>yMM s&Ւ3éxЙtá…v€àœ~ddä¼qllì‚ùæ͛}Ö»wïö;îéÎÂÎÎߊÚÛÛ·755mžW__¿netϳ.+¯-(‚Ý€hù€„´\j¦ÀõÆgR×É´ بë$J¬ëä(ÅÅÅ)¬°]¹‰Jß ‹Eª£ø›,Q-)Ɋ$r²2éTF’¼Œ$†ÙDE”¿©¼PâVƝ(±9`& ¢%IP¢1Ò³*Üp4Ã3n¡ìmր;‡³+"çÙ"jC³Œz&½3iI7VæZû6VgRgЙèµÜ¾}»Ï~ïÞ½~r&õÇŠú˜3‰Ü|x9){;“œI7nÔç3)»*ÏØSÐÝÝý]á™3gvPcšÝ¢"g’ŠœI*Ú.PmŸ +ÐvP |«Ñé€t'ô==='€v3®£Ã +:ãÿuáÏz^0a»Қ‚—Mi¸a ™ ¥Z–¼ž{ñâÅ}ù}}}» Á\ßá>Z ûhˆlý<ŒÂêyåååocd…zdçoÞ¼9-'î£fJñ™¸¬É ”m ®“í¹©ëä$P‚¹L€¹•&A‘‚DN"#Ëf"eŒD¦ÆI‘‘XكÈH¢ˆ"Š(s'¯(áò9%É$P +ILŒZŸ„p³ðn¡EJ„²·ƒ ¸©ßæJ & 5ážIS™Ûçá27¡Ì¤g8“l̙tÿþý~’'p#gRõÞ>CΤ¶ lלŜIããã5¹W®\©Ì)”3‰çR)®¯¯__\UUµšŠä—’3©vÀVó(È%gR6&ͬÌõëק§“3)ìãOÆÐúəäOÀõ¦—t£¨­TÂ¥p³ÕÜôkÖ¬YFΤ·5 µj˜ÏF5îƄ3iï޽߫8P¢¯PÜªÕ€˜zMGGÇ -°ñ¤ØØn>c#uZqKº`¤.p°ËsçΝN/.úŒÿk÷㽓i¸aÁ–Qø :rœøm8ñóbp"Ëèþ`^uuõDé۞={á7`”X3%®ëä”öÜ ”ŒAP¢®“.ð‹ÊN=¬ é PñL€(H¢&ZR’(ȶ䌑ddãÒ©Œ$‰ÎH„蓉­žø‰=DFEQ^7ù›ëóü +#M$%ñZJbÞ²ñÛ%q+Þ²EJ¦ô•œÈÞÆ,Ä5àÞ,Áì²}ÒJ%O—¹S +&9“t\f9“¬œI&eoãƒÓéÀ¨ÖLàBc68¢.÷ÚµkUù—/_./ÜSØÓÓ3 \6sMM͚b@Ûª¢Pê…ø¢¼Ðú°9“21´©iäLJ!g’œI‰?EÝRÜJá¨×`¾ßXBýVh1 ¿«ÁþÖ«±çT°° 3IIÎ$%9“”uuu‡T'Nœ¨U·µµ×éZ´€»v=°ñ¬ØØe#u[AA=v\ånIݝéL‚œñ™ÚÒpÃ&úFá¡4öŠ<܃’JT*:{öìŽð=˜\úÆzà×`¢™R¸ëd×1ў{Ñ¢Eë˜P×IoFFÆdP¢Œn+ Xn†ÍÈ 0`©ŽÜJ“DM´¤$QÉÉÀ#ÉÈÆ¥SI2Fâ­×6یŐDFEQ^KyÕA‰ˆä9@ " ‚ÒZš¥)ŒÄÖ¹Ü))†¤$¡vIlÅÛPÀ-R²ì ®¯$¦Ü«mRÜÉ/‚ ¸ËÊÊöÊ@=“@õJPÁä27æLºråÊSΤô»C™I\övЙ”ÆœI‡æÀ­[·ŽåŒÉ­,.-ìëëÛYÔÕÕõUñéÓ§·ÏknnÞ<ïèÑ£ëXØ©䶼 ·¸v0¯Ã]@+žeçà2³@ +ikÖ¬IIŵùýÕä$\j²Cë÷€‘R]IQ·ð²·Á~:ì`õX«ÆN?Ta÷[U8ÐJr&)ə¤¬®®®P6ªNž<É°±YÓÝÝݦ˜èŽâ¹ÀÚ­¡„væZë#lìM€t'áå9?[­…-ýËêýp#jƒ)ZœW 7ûË`FwccãÆ0,® ö fJ¬™uÌ¡®“ê:Ií¹ã”~jÏíÃàO€ Bã‚iL%°Ì@n%¹•4°b‰šDIȤ <’“eËÈÊddèÒ©Œ$á1Ñù$Fb+%ò‰-¦qMÛÙf¤Ùiùò‡¢ˆ"Š(OËëJ¬ëd”$|P‚HÃ2áLšÂHQ·yII¡ +·Ä`…[u©ázo³vIá€Û,à†¹geo,aÙÛ´š›”eoWTTì£܇ µJPë™\©$L]D=<*:“Xö6µKJd½·ñò\* !èLÊbÎ$ U]. «*dd¤¼œIE.\ø¶øìÙ³ŸÏ|<|ðá¼Pi|°â«(´†GQ>¦ÅÜ\Œo בžEΤtÌ°þT\`r2p!™œIÉ À#uKuBXԍuáÎG݂ý´6lX­©¬Soß¾}³ +võ©ØøµÇÝ¥Àì'gR•ØXGØxBÕÙÙyJM­6µÔjSà»`¸~ý:ד<ØjӉˤî¬;µ#ŸHhgEÔA*+”§U•‡]í§D¥]”¨ôu0üˆCn¢k‹éFWíÍBj¦D°˜—‡{I ”B ”%jϝB]' ”L^ê:é¡.*}sÀ€•VJT2Ãpdr+éÈ­¤IÔ$*á‘<ÌH225éTF’1ëÏ*2’(¢ˆ"ÊËß”ØÊS@I”) …‘BÅmOuJâÚnsII8Ϥ–’,à 3ϧ5¸¢‰ +7ê½ýk—^ñvRÀm÷îÝ;){»TF·àjnÍÍÍÇÂËÞNnÀ *èáz&ÙB=“‚Î$°@Ÿ—õކt¥€ΦáÓ¶L Asѐ ¢¨ÉT^ºt©¬¨¿¿gñùó翚×Ñѱ}~KKËæùǎ[7¿ººzõ<–š†[l¶ˆÉ0?㛝»yóæÌl\LZ&9“Ò0 É)˜u}¾3)9ž@)uƒdÚxQ7– ‹öPÃ^6¨`C+af;”{öìùNQ^^^¢` íáV›l;°ñ´„×¥ë]Ёú ¸M¸ÃܶðÄw´p .k%€¼õU¸½ÁnŒM¬]’$pû^Ên˜‰°€›¼±±±ž²·O¨Î;×\Ímhh¨S*èæpS+€{¨÷D_IZì6 Ò€RG6iÍœÈLÔç²\¹r¥¼èâŋ{Š{{{¿×ÙÙ¹c~[[ÛÖù'Nœøp~}}ýšùUUU«¨*~){-æ0SÄ)ÈÕô®(%êO{ûí·}~\ª/ <ä#gR2EÝR¸¨›ujԍ¥pkׯ_ÏR¸ß§îM*L¸Û•°º¯¥¥¥»ÔAQ[[[E íõ +œ_“gÚ¦6žS{4¾îÆE=îÆe#芗?j:ýõ×7äRX Yâ€,t⻹ÉX:3 451> D12{œ‡ýõi*薿xñâW +p´ç +§OŸÞ¥p„ Ž9²S0¥ªÀR" +R³|PËed㮦Б’”†«JL&$љ”#ìˆÃ uЙ” fТn遌ºù³pS¸K¬Ø¶ŠQ·ûL]»vílDÏéj@¿zQß½{÷×õ´^z Ú@·Î$=ÐešM2ǀ_dë-7qV[Ðël¸Ê ~¸èÚ0Ò¦à£Gn +=vìØƈãǏ¯ÆkcñÝJhi‰-4ÏíiC»LJß¼yóh­–”Èè%Xoó)Îú֙ÓãŠ2R•y`[Q!Ï J¸«®t\Œ#•U']¸ÞðDVt°F@,kD¡[ÂÑIL¡LT +B/Ö{T?ô#Å’-¤%D2RôøNR#±·+d$¹)#Im`$ñD‰b®>Fò‰O|â“ßQþt $B ­ƒ’˜ÏAÌ~Åi š%ˆìÁHøOu Viœ”Dj>qÛ«RR[“’`Šî×ó“Hh¦$´ä«áÖ]îß¿_Ü+0Ç#Õ)S¦Œ×Ϛ5k +n3™†3×¼f͚…-§á4Ìx»2æСCËãEt $aÁœ¬2#+OÎÄfcs°ƒay7nÐ;핏ݿQ€½TˆC>]„ƒ?V„Óx 'Ô±§V^€“,l»Ÿ×79KÌܑCšœñÈ#8Sq/’éLrâ^Æ;èLòDÝ#J®Ð¦Q7?4I¡­¡pRG3úÆLá~œ)ÜÏp —õ½zõê¦;öÉZ*ÈmŒ:cƌÉúyóæÍÔ/]ºt¾g¿Ôà[eÞ¶mÛ: .p£mÿþýu~`¤Íà¡-AÀ£-¡'Nœ¨ ?yòdmþ[‹ïVÇcé²D¬·Ð…-f¹óېcE¢’»¢KOæΝ;÷å<0ë3îÂäh’ûóX"! Wœ#Fþ1ɄöätVLACĸXu2= ÄÁ±™™™ö(ft‡'%%™C8Æ ØØX}ºêRl %ÙB1ŒøOÒSTÁHìj +û½Ìþ&{IŒ$&mób$rz³Œ$ž7/Fä?öÿëùÄ'>ñÉ]ÈÿfP’Ü ÄÙEDö€’â/F26e¤æ§oÓ·µyn[LJº‰IIlˆ'YRò9 M÷Š[ÛMîÛ·ïÛòСC)cƌ¡Nžñ‰&-2Ò¿”Ä{Ü ”Äh6€’(NÜJ’7(5¸•d7(AÔ3–z1’ÅÃH"qûŽ¤$¯Äí;“’J˜”TE{ԉ!‡u IIÏ2)ée©!)©·Ì¤$eÔ¨QՉ'Žu;MæΝ;Ã~™Ó4Uy9S•W¹S•Á>kCš¤*¯ŽÝ_/2pðqQÌMÁ*ï¤cå)Y€‰q9[·nžؾ¦¦¦wÁŠ+Þ,yü¥hΜ9ÏO›6íñbÁƒÅ#FŒèX4pàÀòÂÞ½{ äµÇMÎÊÃ%¤±rË= ¶ÖA4ˆgÔ-ŽQ·xFÝâéLJ`ÔÍɨ[rpsQ7N2³p’;…Fø)úÕKúž={¾©Š2Rà’Á"©‚U&«h—™*Øq~͚5Ë ¸Ž5F4É8§ÎrðàÁmÖ#GŽì°?~|§? hWàéÓ§w†œ9sfGdk$>ÖřÖÇ£V'¨–& žñ7ŽLs¹ qºç»®¾– p}>·§K.Úå¡ÜtÌÅI–eãtó³ÐÛ³X˜\”H1ÈX.52‘Cß聱è~QLTŠ@W6‡¢+ƒA<†°ÞI±¡S+@‘l‚HFŠßIzv5•ý^ñ0’Ü”‘¤æI›ØVc$À쌄sþ%FÂ=÷1’O|âŸ4–֝I((‰ÜÕ;AI"ÎH@‰‹z@Ivƒ¤yFÂ*‚‘LnFº3q;ÈSM2Â;qûÎJIÅZ¥$^êC¼òÇu II/1)é øыIIýe˜Þ¡ +X`Œ +L™¤°LgÎl# f {‰@°ÂÄYåØY£^ª …¯ ­¬Ž…¬p@–:ñÝÂd,“¶ÿþàˆIÙÀ€Ñ¹[¶lÚ~ãƍýò= +—-[öZт ž/ž9sæ“ÅS¦Ly¤xìر÷6¬ª¬RZ ÈÏÇ=Ïiû›‘ ó™"¦eÔ-! ·1žQ·8FÝâu‹‹9˜ÂÀ¨[£n)Œºeˆ¨§+±qî[¦pw4³p’‘Q7çY=S¸U4Nwµ¡&ù0eÒ¤Iãœß4uá…sT´Ëb=Øq•~óæÍë h’M&\åV3èp§Œ´ÛFÚã2ÚxöìÙ=ÁçΝÛف[¢AKµqX¥ÆqìرNcí&*Mv'*a÷ƒ³p ÞÙhœ7rpðr9ß].Nèá\Ü·{rzõêUžvSÝådtíÚ5-5RX#À…ÖˆLÄå‡:˜ÑˌŒ [èÆŠŽc +ñЏô~ %ÕFZ²@d3D2R X éÉH*™\á IŒD:Œ$ Fò*¶­1’($©1’xò4FzôÑGëN°¼N‡ëøO3’”|âŸü¯’æÞa¿#(‰·r@Iü0Ö@Iä`4€’DV‘H-ã`’”XwÆ JœüÁ JÀ™$…7(ATJsŒdv'nc"qû—ªIŠ¤¤LZª<)˜'‘”TN£ÔQTJâ/õÇt •’^”X)I‚…í! 0 Ÿ<|øð!ò¸qãF+S§N(Kz°ÀlÃòåË×®]»Ä=œ t³Ú+¾ÖŒ´.Œ´žÃ¹Ö‹á\‘G] YYA/ɒ$€Òü€Ò¬t Ä´¬Ý»wÏÙ¾}ûÈvÀ€Aùëׯ»põêÕo-Y²äåâyóæ=S2cƌÇK&Nœø` XàžâÁƒWõéÓ§¨°[·níòq§³Úᮦ吺uKÌ`BNª \n£nqŒºÅ1êæ`á¤DFÝ\Œº¥²pRIí쌺Y +'ÝkQ7Váf +÷ "…[íÛ·o/•)ÜÌØÅƙ¤ ßQpº Tœørí²V¿mÛ¶Z p«ñàÁƒ;͸ò=֓'O‘öûŒž?~0do(dWÄûï¿¿= +´T ZZï8qâĪD4âb—Hå…ÐØc3ÐBC9GnŸl0ë[9¸3/åLž<ù©œÑ£GwÎAãtÊyûí·+²ñ|f±òf Jqª»$ÿ‹wqè[".?ÌQXX‹þá š¶E€n,¡S0º!¤÷C§VmèVŠ"›)Fˆd`oד‘Tö7ÅÃH²ÆH|H¤æI+¶-Iêøñã5"A™’åNàÂâd€Ò¼4€ÒÌÌ}ûöMÉ(ÍV k¿iÓ¦þëÖ­ëY x½xñâÅ/–€Aº–L›6­sÉøñãï/1bD‡â–õîÝ;¿] '÷7£nh +£nάΝ;'ˆ±ðŒºÅ1ê˨[,£nqŒº9X8©>ê†[›ÎîlNjÏÂIõQ7Q8 †ùQ:ÍÓzô«¿¨ È·TPdExÚ&L˜0VÃMUæϟ?G@.VkjjV©uuuëõ`Ç͐à#®wسß:h#ò +¸xñ⡠ȁPÈÞð .ìŒ-mKmŒï½÷Ö¸ãoÿ–ÌD¥Ô­[·ŽOGÛÏ‘õËB u˞={öË9S¦Ly:·ìќ!C†Ü— Š¬ÊƒSœ zÈË`‰ò4¤‹s‹Œ­èDft;€.Á±èÏÑèÏöôK(ú³)Øc D§Öû£G©vðb…ÈfŠ"°@Ò'%%I*Iñ0’Ü”‘¤6LH¢1’ÜÖ"#‰ÄmÁHâ!n+#ýg’–|âŸü¹¥õ7W‹éI^ $Þ¢â}*~‚¶JâM­’x™ÃšJ|ËK|ßKwJ¡¡¡(ÉnP²Û킖RBRÝ" ÿ F2zÉÂÍꓒ)˜»SÜ6NJ"5®&Ù0}›HÜ®bâv'þ\‰Û]ØÏé<‰Û·%˜ÙAòèÑ£Gʓ&M¯¼óÎ;SU`À,÷H.Xç%Æ 6¬0oÞ¼yMÓ!ïÁHµÁ`¤Ú01䝃¸¢!5î”ÐÒò$,X”p˜›ã?#  4)w×®]£Û†ä×ÖÖö-\»vm·b@Ç+% .|®dÖ¬YO”*;vì½%Æ «(îß¿QQϞ=ÛàžgåãÖ¦åÁ†ºržxâ‰ÄL\ŸƒQ·8FÝbu‹e…ÉXŽu‹cÔÍAg’“…“RèLÊ` +·ˆº0…Ûu3qî[# '`ŸÕ£;¾ªŠ™€Ü_A pS$Îo†²hÑ¢ùʪU«–)hœµ*.¦VvÙfî6â¢÷›N:uÈröìÙÃ60Òû¥K—Ž\¾|ùpäPd8¾Û ZÚ–ª‹Ã5l5[àNTÚ¾}ûDNý62¸: kɒ%=²’¯fO:õÙl´Ðã٠ܲq/;duëÖ­$gß.ב™Æ¡o)€ÀVތIä¬otêXt’€h µ=ˆc 옃ѩ ½?PHµ£{+Vˆl¦˜ˆG,•ôèp’ʯÂN§‘d‘˜'µX$©ÅB’^Œ¤ nÓI<ÉÍ1Rë·ßJ>Zò‰O|òÇÈ]½¥îʙôAIâ{\â]j”ð ¼”h:š%™ $3“Hf¢’LØ ¤x@Iu Ȩž‘ðQ0’É›‘Dâ¶`¤°°°POâv ILqÛ|5ÉJš¦{i•XM’Y±OðòŸ¥uù‹„»ð¦è-Ê£F!Oœ8q]%S‘  s<_ X‘\+LuuukÌ°Øë¬`v0Ò&˜òº £GÖ…À²×v‡lˆÙ6øo•´´,Ì°0  4; 4-Æ|ÞΝ;G¶ß²eËÀPFï"À؛ÅÀ²—JhO—Õ+´=P +8©.ȕ +Šw¹¸ÉíqWSòp/Ù=ö˜ƒQ·8FÝbé9‰á¼n1ŒºÅÆ0›Q·„pü—ĹoSéLÊdÔ-)Ü"êVaQ7˜è‡™Âý¤žQ7µG¯«ýúõë- +“+"$9mÚ´É2Zh–‚Ó]¤€ðV*›6mZ¯ 7ë÷ïß¿SKÝgÄå29s戌tÌ +:n¿råÊqÿ«W¯ „  +Ãwû".^¼¸3úý÷ß߇-6ˆø“º‰D%÷Œ&8ÆètmPæ²eËze͛7ïµìéÓ§?Ÿ=~üø.ÙÇ0(Ù1‹Cß2qöù錬4}KaF7'Že»D8˜¨‹NN큎c C§6£ѳ þ@!ՎΥX)fˆl"Øïõ`$Iõ0’ž'Ӎ){IbbœÔz€_Y$é®n-FÝ|òg0>ñÉÿ~ù7?¦Í9“ZŒºy’øY*^¾w‚’Äw¶Ô,(Á¦4¥œœ ”d‚’L`‘“ “™:Ô()d…´¤…„èIFþg¤˜¸T0’•[ع­¿;q»‘Dâv4Ù,ž÷ª&™×\5I-q›Mò[ҝ¸- 8p€4bĈá2líX0…y73•Å‹ÏSW®\¹„ Ê+Œ`¤µ&0Òz ©ÖFjT(F}K(ÈhsÄ©S§6EC6¸Ý"ønU–.M(-H‡ÝŸ•Pš’‹½Œmã?¬`óæÍý‹Àa=ŠAd¯•à¸Ï—‚Až,¦p?jàÜ·zÎ}Ëî·Ä,w +Nc¨@I™!Iyá…så+V,Upök_­º{÷îí*.p×{Ѐ68lû3ƒ‚NXÁC'í|ðÁIÿk×®„ †-ˆ¸|ùòž¨ .l‹={öl­ˆ¿%ŠÌ.Qœ“‰J©h«±é¸C2–/_þv&xò,`í‹Yh¦'³pÎ0`À=™={ö,ÏÀQŽ~ŸôKMaF·‹î¶DôìH"4=%(`ã ı…¡YBгM %ƒ?º•ÞŽ>®Z!Š…½Ý„ïd#–JzúTU#)F’ïu3šÒlpÛ]9“|´ä*Ÿøä?$ÿ‰ç­Å—›#ý*P’ˆÒ¶”d‚ˆLP’ J2 ¥PâTYt) š)Œ¿)d•¤’‡ô”zF‚‘ÌÍ0R w†“‘¢˜¸ǐŸ¨&™ÌÄí«IŠÄíGy½OÑμÈ{]Cړ‰Ûý¥áǕƍ7Fž:uêdyöìÙï0œ4Ï=ˆ«¦¦f…aÓ¦MkÅhw30`“f{³ ijÕ,°-´-F}kØéÓ§·Dž9sfm6ÄãcM"Ha¥ëäɓKÒ°ò¼LlöN6v0) 4:à5¤»ïS ãß­‡|¹¦ §ñxNèÁ2œZÇ2œdy)N·°¸W¯^¹E¸ûù¸µ)LOrævéÒÅÁô¤8¦'ňzALOŠv”b JQ%:“Cñ19 Ò9÷m 'pîÛ2Nªf +÷ƒ,œô8 '=ËÂI¯¨}úôé¡°p’((%O™2e¢Ìn™)ÜòêÕ«Wȵµµë\Ìfeß¾};U\å~=.ú]ˆç˜ìsÒ +:e#¶}øᇧý>úè£S“Aøx,´ôn8hi_Ô¥K—vÄ­êâhŠô.€×|g4IŒO– KÂöͪ½• hûKÖ¤I“žÊ5jTç,ðd§LÀ]Eš©0Ý©€Žô֗ráRãA‡Q I†Å•””Elü#ѳíaèٖВ)ÝÛàÒÛEª ¢X ² ßÉFþJ0`=IOïªJFR<Œ$“Ó5F’~eâv’’î +”Ú@K>–òÁ“O|ò{È€Ú -2Rs $Þ±M@I"8H¿ J2AI&(ÉnP‚5¨%ÀI=(1"ÁTj™ü¢dú}ÆßêA °£{TҒJ +ғ‡ #ÅD1s…«Ø¸²Ÿ›‘BCCƒÉHaD°HÂX,VŸ”“•ÎÄíúj’eee¥H¡3)øËîB¦pW°pÒ=,œô0S¸ŸÔã/¨ÀÉ×Î}«ÕÑç6Zž>}úyþüù³e6“ ”\-oÞ¼y£²k×®m +I*.õW~Ôâ9iûœ6‘ÎXEgmüñY¿O>ùäLäT>ž2 Ã*"T»£ÏŸ?/âobüÛJw¡nåÌ4ØÄԍ7ŽH_µjUÿ @e÷LÜ·W2ÑVÏdŽ=ú±ÌÁƒߟùöÛoWeà-NgFw*3ºSÐL.ú¸ÃÙ©S§hÚ <ý%8`™ŸŸol[CнÍA  cú¸Þ=LµA »¼‰b$#èXÕc I%#)F’#1q[0’ô;ÎnÛzfR@é7ӒO|ÜäŸÜ)µNFwÅH^ÞJR#PÂoØÆ {)0d¾Öe7(Á®Öƒl€%… ¤”æ)%…è¢4%N•EPRÉ9ª”‚‚‚ô =QÈ@(2RL”ÆŒ„õ#pÛ 2R()‚ŒÔ8) ¿íSy.YLܾcŠ[€ƒ¨&مý,Ûåe]7üéúöíۇ‰Ûƒ%ØÕQÒ¤I“&2’4Æ®²lÙ²E‚‘TÁH[·nÝ`$#‰Š@pÎ0`§«&œ>}zW0 h§»GmE g>nHõ.¬²< ´0›ÍΆɟš‡]ËV +ÄîûÃî÷(]³fÍ«eK—.}®|Þ¼y]Êg̘ñpùĉï-5jTEŒQiŸ>}òŠq™…¸Ó©ù0ŸILOrdãÆeÀôÆpΒhN€ÍèRt¼%ÜA7(…ῤ`|—ˆ¥Yt&µc +w1S¸«8÷í}LáîÌÂIOéы_rGÝ ԇ•7‡2É}yrºLŸ›ÌnyÆ 52ø¥NÞ»wïN¸_ÝVqù'ô.\8e¼råÊYé}  è¼õÓO?=o¿~ýú9ș@||/ Ž…a•w#®^½º7úâŋÛÝñ74Ýjw¡î}ûöÍNÞ¾}ûäTܙQih°éK–,é™1gΜ×2§Nú\& ÷‰Lftgà&WgtïÞ½$7¾}*kt§D’]èD3Å8:vìÁ¸dH zN`$~ø…£{[CÀ>æ ô+c@vv¶ÁP¤Ú Š3D6’‘ d$=¶T2’"‰‰Û2“’$&%I ¸IÍUÜ֜I‚‘Zw&ýJPj2ùêÏÅR¼¹ó‰OîFþPÔÖ×W‹xÔ#µuÃ+Wâ¯T‰ïb‰oe/P’[%… ¤”7(åææ6%¦¼2¦2kHeŽµê% ŽÊ ™žn%=ÙÇ@ +2–Œ„"ÅL±ð;ÁHv®ìïa¤î*œ;&#œ‘œ%ëׯ« ÐñrùâŋŸ)Ÿ;wîcÓ§O b„ Õå#FŒ(+8p`A)Î>§ב^ˆ+JfzR"«'ųzR,ç,‰fMŨ$–Jq¥h‚R$!]A°ÝiX%Û+··a³R vЁ)Ü°pÒcLá~Fe¼ÂÂIݐG™sß289‘)Üï°­ÊLá–7mÚ´AÆÅl•ÑL{”£GRN:uLE¼§¿|ùòYõk×Λ€B̀¢‹ÖÏ>ûì¢rÁò~ i) N†Ò­ñÁìgüm§;þ†Æ^+ +8±û¹.hjJ]]ݘT|p:N£wnÞh°2˜Ñ1|øð‡2˜ÑÞ£G²4ÖèNe¢R2 2ÕÅJSN¦r9ÐU"ÙB¡¬/‰>äⱅ¢KY‚@A¦ttƒ Hoƒ¨ö{3D62m #鱅¤’‘2’BF’p“#1à&‘‘¤Ö«4çLj13©uPj‘–~%<ùä÷âI2ùäÿ’üŽdôû Psâõbl‘‘¢n’Û™t'(ÉôýË̀’BPRš‚’JߍJPR™;­Ò©£6%=ý>zz€ôŒ¿ééV2{  #iÉH2QÌ ÅÆõŒ´ +lÊHQÜs“¡íKæÁ듒pV’’`Šîw'%±š$ÛàEފ×u½zõê©cⶎ‰Ûdœã:U‚ÝŸÍl›…ã¾Ü=Æ}˖-=ŀ¶›@7»Ì`¤=V˜í}vVM €ß2ÚÇ:@{8`ký Ûâ u  ¥õI¥Õ©Xyi@i^6¬ýŒ¼C‡MÌß»wïÈÂ;v *†Éï]ºnݺ7ÊV®\ùbù¢E‹ºV̞=»sä¾ŠqãÆU•Ãî— 0 } .!‹éI©¸¿Iíq/˜ÇÇ<îJÉ%§ÈÀ!(Å”¢8Í[8$1¶;9͔îû›cà +¬<òHS¸;²pÒCLáîÂÂIϳpÒk +ŽÛ‹…“Éh°Ñ2GJŒºI˗/_"áÄ×Hh«MòîÝ»wȸ¶} +šé°‚‹>¡¢qÎè¯^½ú¾tѺl]¶|þùç—m_|ñÅ%?ȅ|<Z:òÉ'Ÿ ÿðÃF^¹rewŒˆ¿‰ú“,ԝÈD¥$€ëôdàåøT|XN£o:Nè­ œÚK ß®#GŽ|$wúÞt\BE¬0—•“̃]¬]î«Ä'°­âÐLa Nqú;ÿpô&[(ØÇ +2€‡ ~½}Mµâ?ÅÌà³ l #鱅¤²$…7E0n2nnnR‹Ó·5çLj1êÖbŽR‹ÈÔVnòÉïE‘¿#7ýñÆÐ'>i*¿~3û´ŽB-’‘†G-2’p&yEÝðj–ù¦ö%… ¤x@I%(©ÌüQ¬†ž¬¢'(é™O­'Äèéò d`üÍ@Î1xŒd#iÉD2ŠÌ ÅÆïì\ª1R0· ##E’‘bÈaÈEOVQ-›ISíyj%<Ó*žx'þR¿#)©gϞ=týû÷ï§ó$nK‘)d&ƒH d`Ê2ÝZ£ÀoPÉHú}ûöm7‚‘v›`ü÷ZÀHûmgϞ=èF:Ȃ‰‚/]º´?ìòåË{™Y³+²-ßÕ%Ö'c½Ui`†%™¥¹9¥ií`íÇìÙ³gxÑöíÛû—lÚ´©GYMMÍ«å0ùÏU,X° Kå̙3ªœiÒ¤§3pº¦ãÄïKg¢R.¦(—•—Œ Ìpq6<'̑t‰ŽCk„³™‚™îQRRbEG·ƒ‚́èíFˆÞ&wìØ15·6ːÐγ]lyüñÇ«˜Â} '=Êî§Y8éel֍…“úq.—á,›0Þ·w$FÝ$FÝ$6˜¨Ü&8p`¯Œ¶zW>}úô …Î$Mr^ö\Ö€®B×L £Í7oÞ¼f…|`‡\ñ2] - þì³ÏÞ ýø㏏F€¯êãoçΝÛÄD¥5 ‡^âd¢R•’Ai£RW¯^=0mñâÅ=Ó½¯¦ãÖ>—ÎғéLTJgéÉ4&*¥¢3´KÆfºp©ÉNtù„ôö˜x4XD Ú%$ +=eËýÂ@KÖ`P9(nô‡ì #½ÿ)Š‰ùzF2’Œ¤#I*IŒÄ€›Üԙ$µ8‡›W=¯Ð[ën¥æ© ðä“ß•,ïž|Èä“ÿ5ò;âQ[¡¨ is/¼¡È ¼üHš3Ic$¼‹e·3IDÝðºVøâ®%ØZÕJz‚’ž ¤'(J-3°F€Àb$º JFÆߌdéÆD·’‰n%±ÇLZ2“‚,ä!+ÉÈÆÿì.à*AD«zFnE¼â¸çDº®’ÉfLJÊå¹òÔÊx¦Ixúã¥>Ífz‰7ùM]Ÿ>}zëXMR7jÔ¨‘:àÇ 2CZ°`Á<?b¢Í*&Ú¸‡·«{÷îÝ®?tèЃ(* F:dfQi«§¨´?xèHÐ|p8rF}_4þÛ4ؖPÚäKÕ¤”Vd”æœ8qbf;€Òä|Åè¢]»v .Ùºukï² 6¼Qkÿbå’%KºVD:WNŸ>½Så„ *+FŽY\>hРveo¿ývVI·nÝR™ÇÄùäªô¡Œô‘ dô±ùÖ­[Yoß¾ý¡ ÿ}à‡ï.€–„[ét(¨ê8ão‡Üñ74âfQ‘ÊqôèÑe‰LTJÌNsᖍMÁÍ’ÊD¥44Ýi ¹ҙ¨”ÎD¥´tLÃŔ¥à²ò“ñ|d»ð¤:YÅ<­ˆ‰ŒE»„Fq‚"***ü9¿‹-´d D73ùŠ vˆÞFŸªß)&,•â`Àʒž54T »¤0à&œIrSg’¤9“~%(5ç[j‘›Ú€Q>i“üJ´j+7ýJdúãͧOþ wÏHmͧnCl¬ ØÓ: +yA‘& ïÓƱ6/FҜIxI+PR J*AIOPÒ{@É@1x@ÉHP2”Œ%ã`&fV›ˆ3&Æß̌¿™É9f…´d!-Y‰B6B‘;şßp©ÆHá$­(2R,wšÀÝ»èKçqsÌgтRV“ìÀs¾N±Î¼À®l—xË^ÓõîÝ[$%õ×ÁÚ×1)IÇÄm‰‰Ût‹,–Ö¬Y³Ò]ˆ£¶˜üúZ‰°ÉŒ`¤wM°ûG,.\8f÷c=éQ&¦üH˜°çý1ønwº¢^¿~ýšþ‹/¾øØúÄ<úÔüÕW_}b|lƒ|è‡ï®`éÅ º•B°ÅÉFñ7‘ FÜÏD¥ܞN€æ •’kjj†¥0Q)•‰JiLTJ×=•ÆD¥40潩œ#7MW˜Œç-Dž§"͉‹NJ@§‰bGÅ¢Õ¢ÑLÁ€ÿ0t.{º¼%(d +ý zDµ@3ɈUdI‡DRAZ’Bg’â%¹)(I-‚’6]I‹´Ô"2µO>iEÚúÞm+rÞ=<µ™|´ä“?#ýf^y jʔ)ÕUcǎ-­6lX~ù€²K{õê•VŒ~êb=îx‹ã€·èLÜÁÈ4€RA)"‘ ›c-@)> ÿ%ã»ä,ÍðÃMγážYÐ*Lè ŒèW0…»+£n/±pқŒºõaÔm(£nãu›A¼œÏ¨Û +FÝÖK–­Zm¯Äné̙3'e\ù9muIùä“O>P?ÿüóô_~ù姆[·n]7‚Œ>3}ýõ××-ß|óͧVü÷±ß]óÇÒˁt+c‹S¡ØV‹¿íˆa¡1kžãÝwß]”ÈD¥$&*¹š#R˜¨”ÊD¥T´ßËi¬¨”ÆD¥4°Þý©}ûö­JéÞ½{q2úFž —šáÄáJÀàˆGÓEÇ¢é£ÑB!‘èWL|·s’kPyy¹9Îè22Ø ª3ń¥²Œ¤§3Ie}V7(1ê&3êö  ä•Ì­Rs´ä…L^ÜÔ¢´á…â“_ÝmÀ¨¹éwD¦?Þ¤úäÿ˜üJFjÚ@Fm  ßp^ïD/Ñޝ ROF xÔ<#áçk=#áM­zœIz¯ ,ób ( JF҈‰ dâ¨23AÉLV±”,% ƒaVÆ߬Œ¿Yé²Ò­d#ì؈=v´äGò§P)Á\àÅH1d¤xîÏI‡U +”IOV“’ +9D9O²#OüڙÇxùOóVü…IIo2)ém&% bRÒ(“’t")‰¸JLÜfèh-Ë$ÖÊ¢Lâv«GŽ9Àz҇ õ¤O°žô{VØýSv Ð)Ñ{A°â'˜x|,ÿŽ†ì-íN (¹®^½º1æ}u@iI@iN;pÄÔØø±E{÷îZº}ûö>å›6mz«²¦¦æ¥ªå˗?Uµ`Á‚ÎfΜy_ }UN¼¸—Ю¼_¿~Y¥@¿ÔbtG'¼9X;6÷2J€R*Œp„‹ Ä‘\‘q¥h‚R$>AX€U2íX¹›әTeBÓÝÇîGY8éiNz™Q·îŒºõgÔm£nu›É¨Û"6Ý*FÝjµ¨›„V;*;w;/£­®(h¡Õ/¾øâõæ͛×õà¡ÏÀ£ÏMß~ûíçfÈgVȧvÐÒG~Xêv+c‹3žøÛA‘%/jSqê¼µÐæÒÐæ'qŠkãƍ£“W¯^=(øÛ+••RYQ)„÷D*XïÁTP_u +Ú¯4v{Ú/ˉöKIàÄ/ñxbcÑù#¢ÑB¡‘h°@Æ*ýXJÁ Z2¢ó›ü!;Do…¨fˆbb-V#ëŒèLÒ”T:“Z%-GI$s7çVjη¤!“&w¾Z*ŸÜ¥Üw¶HPm঑ÉGK>ùó2R‹.¤Öñ¨Å\¡æP艧^¼^Œ^¢½@¤~Ø¿1®­d7i~$ÁHxSëéLғ7 P2’ALŒj™Jf‚’™ d!(Yø²2•ÚJñ7qÆF·’n%;9ÇN·’ƒp~ ú–ÈCB‚(Áü.”Æõ"¹E4·##%r§Éd¤t-‡Ï織’á:ðtïãÅtæ•weÛ¿À;ý:+%õd¥¤LJÁ¤¤ñ:úé:ú¹LJZ*NÖÐ#²QÞ±cÇVØÚ­pÎ Q&Qæ̙c†óçϟ4qÎ 3ëI[AAg좔4 øie/r<r8ßíAíJ„eߒ PڐPZ• ó¾(÷Ô©S³Ú;vlrá¡C‡Fƒ-•mÛ¶­wEmmíë•kÖ¬y¡jéÒ¥Ov˜?þÃp¦÷vœTTáì +‡ ’[êË(íÑ£G2ó¸óѹâòpÑ1Ù¥ ÜÆJIPŠíÔ©STš)6âÁǤ@XìTXìl;îy{+š®ÔŒ®RÍî èُ3êö,£n¯2êÖSª dÔm£n“釛ͨÛŽu[˨[£n»u;(1ê&‰¨.ÿ¢ŒÖø@ùì³Ï>V¾üòËëêíÛ·?׃‡n@F7Œß}÷Ý 3ä ä3¾ûÄK¯`½ËA7nÜ8‚mÇß°ç­±8Æúø£G.OØ¿ÿ¼Ä;wNKb¢’‹‰JÉhÄ·SXQ)uúôé/¦rê·T°Þé ¾{RÐ-ʓÑA +\xt³xòÒ9•°ƒµ:ã˜ãƒö ‹D[…£óû3ûÝÆ✖@þTðì½¢Z Š‰ŒdÄ*^ $5 JLæ ÔÈ­¤Ñ’æ[j™¼\M^՜´þòðÉ/I[ ´EŒj›ZG¦ÖL>Zòɟƒ‘šs!µš#£æxè‰çŽw¢—hïÎÑFük¢¥"ÉÍ2ÞÔõŒ3kdÔÍÈX–‰%„Í%3AÉÂQeV‚’•þAÉF÷Ž Cv‚’cc~t+ùqüéVò'ñø“}è$ +$ +™‚(!”P~Î¥‘ôAEs3ÁH ܕ‹{N£ë*›¹Q화TÌJI•¤¹{y ó¢Ÿ`‹?Çûö ++%u× 0 /+% ÕqŠ[+%é`>gë’’V1½f= ý–’Þ%Ó#"ªÿ¨§OŸ>®‡M~ÏFsnœµÀXŸ³…Îù±”t ø +ƒÄÇÃ1X°ßŒÚå$(¥À²¯O¿xñâʬsçÎ-̃yŸ™PšTtðàÁ‘%»wïX¾uë֞àW«@ÏuX²dÉæΝû`œnÇ°ñeU°ñ•¾œr Kó¸]Eè‰ ðKPŠÎÆ]LÇmŒHÁ w”  M“IÆw®@,MóÃz96lQ`Aß(cÔ­£}÷!Ú¯‹¾gϞϫýû÷Q·ÞŒº fÔm £nSu›Ë¨Û22æ:ŽuÛ¨ÛFÝÞQ7‰Q7éÚµk—e´Æ‡ò_|ñ©róæÍÏÕ¯¾úê†<ô¥dtÓøý÷ßß4ýðÃ_Zðß6|wÝþÍ7ß|äO·R ¶hõ'Y¨›óçmŒÃÑV9p܅‰»vízǹyóæ ®uëÖ O^±bE¿Ðp·Ný–ÊB©£Gîœêë”Ú¬LîÞ½{‘ Ït®žˆËw98M^š$:$…' 8œÀÌ.{0Ȉ'ÀìÏ´6Ø8 ÔÂêbfJ‹ ¤xr”d1êÍË­Ô"-y!“75GP>i»´þfm‹¶T­ç‘µ™Úê`òђOþŒäåBj+y‘Qs<Ôñ4ÿNÔޘwJý|m¢ÄvƒÔû"Òµ…ˆ|$GšI0,„‘øa¢3ÉLP²”¬%+AÉFP²”ì¤?‚’!Ɵ.Æßè + [)€°Hì $-‘–„ŠB(a”p~×#%‘‘RÉa™Ä²<¼çRNëȳ€ýÛùiÞ£—Ü·~ýúÕÜƎ;J7uêÔI:VJÒ-^¼xŽII҆ Ö1jT'¢Fî +‰Ô®‘D)iéŒÖùKIŸ·pº xè<Ëý¼ÏQìgC §Â!'¢`ÏÇ”`Ôw&”6§”ÖeÀ²¯È(-h÷Þ{ïÍ(8zôè„â /…yï_¾e˖î•ëׯ¹ +gõLœßcÕsæ̹¿\Ò¡¯¤ +¬×¾bàÀYe½{÷N-Av2ÛÑÝ,6Ý'* ÷7‚ žL/@‰£Ý#c@). ‚ÑjÉ°Óé~¸ç¹6t†B úU£n÷Ñ©aÔ­+£n/2êö&£n}Xar(˖c…ÉtÆ-`…É:œýÚo›Œ¹Q·#"ê&1ê&¡ ®Êh’ä7n\Wnß¾ý… + +º©Ý2nüñÇ[&ÈM3>Þ°‚–>·cé'þt+Þºuëb0¶=Û(þvéÒ¥]Ñ8F], Äã¸Kp³¸—““pWGºÐ’’-ZÔ#……Rp÷ŸMa¡€Pß)à¿É éžøvN\tf".?ف†HˆC“ÄÄ0Ñ+ +́V df—Ç +ZYÊÜ€ÇÀè1”ô%ՌŠ©”d7(a I$s»AIs+i´$ +ˆApÍ!“ÆMÍÁS‹ÒÚ;Â'¿,ͽw[ÒæXÊ ž¼¸©­ÈÔºƒÉGK>ùOÒ¯d¤æðÈËqÔyAQ‹ìãõÖÓގ͉ö“4Ù-¢†¤¨$Æþ‹T$Gw2’‰Î$ÄLP²0´e¥ïÆÆl ;Aɏ¬âGPò'(0Q)€ Èø[ Á&n¥ rN3°ƒ‰=Á ÒRy(”F‰àw‘\Í`]·pp['™+…Œ”Ácäðù<Râ[ž³¸=Â&~’wFÜ^sÜ<@7zôèáoÓ-\¸pžŽ•’hã×JLJb +òvYþÓm°B¢ +#üžæø¬Œô¾ñ£>ªŸn(tÉ(ºèÛ}!èË/¿<9Ž'¢±àp0jVÞéÂfu¥šL€Ò²ìt^{ì~zá‘#GÆïß¿hÙΝ;ûVà4ު ½Ô§öT5N²sõ¬Y³:UO™2¥²Ì{QÌ{^ŀ2Ë`ÞSJÐw9qI<¼ÅpÀ[d&A) 74ÜEPJ$(Å”˜mMk +I ‚䬒aG?ÈcÔ­ˆQ·Júî}ŒºufÔíiFÝþ +“Ý8Ö­£nÃu›ÈÌ®™Ì~_¤Û¸qãjݶmÛjuûöíÛ¡cR—ŽÓ•ˆ¨›Ä¨›Ä¨›ŒVûD¦3Iùꫯ¾T¾ýöÛ[*xè+=ðè+Ã_ÿúׯLÛfÈM+¾û†¥×ýTºãohâ÷=ñ·w#®\¹²' +»%͹.Ç]æÀÌMܾ}ûTgmm혤5kÖ v±P@òܹs_O™>}úó)`½.)@·’ Ô1½¤Ì…KÍw⢳qù©4„3]\,'2͉g!ˆÎ8Ž´ѱ€Nh d‡è­MAÉHP2”ђˆ¿yhIjJKîÝÍ!“ÆM^ðä%MÞ>¹iýõÚ"š¶ˆV-&á·^å¡Å9i~3-ýñ¦×'ÿKä·0’W˜­…:EwàQ‹däÅC-ÏoBíeقHDÌi+ªk7ˆâ1ì_ˆ×1¸]Hðâ6“‘,d$+iÄFP²”ì$?æù3ðÀáf¥@BLS‡‚È4Át+qBèV +!ñ„’}BIKaD¡0BQ8EàQ¿‹áÒ8ú ÜL0R2÷—N‡U6©=^̪ä銀ÛClÝ'x+žåm|™·nž€ÛVÀÛwÀmÙ²e‹u¬”$qJ2‰IIb<»»Š4S•³gϾ§lÎrºóbº “˜nÖþŠ<¶ 4¤gðve]]ÝU555/vX¾|ù“Õ ,x¸\wo5ढØ1c +«†š[ѯ_¿ô²ž={ºŠq© …è‰qíÐá¢sЯ"3ÑiÂS= ”à¥(HL8$>·Ö„¦KñǍϴ£ýÚYÑKÌè¬u»ŸQ·Çô=zôxFÅÑ^á¼n=8¯ÛÎë6’Ã'KK–,™Í¨åq­—P§hîÒ;v쐎ӕ¸£n`ÌËS¸u».ߺuë …Î$…Œ¤‚‡¾ÖƒŒ¾1üíoûÆùÊ ¹mÁw_Ú~øá‡ÏèVú˜n%»,Ê*1þŽ=páÂö +ˆÅqWÆã $€;g8ќã“X(ÀÅBÉ,üÎ;4 `~*Ô÷H2ãoÉ}ûö­páR ¸èÜDÆßðè&Ås¼X4Nt4ž”ðH4X0Û/€yðv–é´Ò­ä1” VOü Ô8þFÑÆ¿¹+*yIjŠLî9r›ã& ž¼Dc)Ÿ´]~ñUz‡´N¥­ÇH[¼Ø†‰iZ ÇùhÉ'ÿQPº{FjµNF^(¤=’ÚãìõNÔޘ-ˆÔTd·ˆùÚD‰mˆê1ößàNEa¶ÉΨ›#]þ¥²J A)ˆ ̤ê`FÄBˆ3!t+…Ò­J·Ra'ŒØNZ +'E™" EQ”h~Œ¡Äq•zF¶ÉÜKwšÅcäñ…äµržiµ;à†Ö}”7à)Þ­p{ƒ·^ ¸ dÀm$np{Çp[½zõ +úAÖIÛ¶mÛ̀ÛNÓ:ÀâˆGdfÖhU¤õàœKú+&˜è«fPÐ, }Õ&ÿ +=—‚!çÃðñL$œŒ „•÷9= ”Ž]­ÉÆN—äa÷³óq )E¥Ñ¥´AåÛ·oïU Þx­ðíùj€\—jXö‡:²w¬†e/ë˞_˞]˞V˞ÄoN\ËoQð‘!@‰–=ÉJ¬å%G¾sbiª?ÖËbÔ­=£n¥ftàj#º÷ƒ<OèA›Ï© ÍהáÇ÷’Ǐ?HmŽfÍ©)Nr.Sà—é6oÞ\£Ûµk×Krê˜ý®#hêXa’Q·+Òõë×?–@‘ŸÉt&Éß~ûímôµ +úV2úÖðÓO?}k„|c‚Zº%ÜJvÕ§þ@+‘Ö})H‹¿]»vMÄßvFãh›bY( g°Ø:+qëÖ­“œëׯ™´råÊ.Æߒg͚õJò”)SžIF·x,yØ°a÷»s1þ–„÷A»DÆßЛ’ãñè&IJÆy4ºYD$,$F AÉÏ JØ @É;þ&•ÄÐ7Ғ»P€¨¨¤Ñ’™ÜS¿ d¢ðÉÓéÄl¹B4xÒÊK4 òɯ‘_|©6©­ûúšKÇoku¬æLwOK>PòÉïÌH(ý>Œä…G͑Qs<¤=’ÚCìõNôzm6©©ÈMEq‹(±-ÊGB ”útm‘Š$Âlx]ßÁHx­” JA¥`RKA)„J·RÝJat+…Ó NΉ ñD–" @‘D¡(J4‘)†ˏñ\šÀ`]=#a‚‘2¹ç\ú +x¥<É*6S'6¬¸uáíyŽwúUܺ3à֏#܆1à6Ž·ib„›¸é8m+“j6‰€³÷Iǎ;,fÚÅ•+W®œWaã/5ši†þš<ô¡ ûš»¹ ¹†ïÎFbéÉX¬wØAPJ¶ÛSJµØßj‚Òâv¥Y0꓊Áf£ÊöîÝ;°¼Ö³ª¶¶öÕkÖ¬y¶zéÒ¥w<Ð\R]=a„Ò#GŽl_…ËʪèÓ§Oj)pÐYŒ~_€žÃ<î¨lJè\á)èMaNô—pn­”"!±aøèF?H"(¥ù¡ëeÛÐ1 ,è±e&tåŽFôö‡8¯[Îëö‚2hР7˜žô6‹ aó±, +0Eæë"+t@’õZz’ŽéI:Îë¦c…Iu“u“@‘_È_ýõMù»ï¾ûJ}«€‡¾SAFßëþùçï oMoÌøî¶ÕãVòZ}€v¾â»|ùònÆß63þVÇBñ,Àø["Útt ¸–,YÒËÅø[ò´iӞOf¡îdÆß\Œ¿¹Kbü-‘ñ·´ij<ÚÔÇé…cXm! +.4M×rüM€’;þ&Æ¿±P+*ÉîғBD¡n1£‰1G®r“DnÒ !<¹EÀ“&£Z¯|òÛ¤¹wl‹|êÅR^Õú0Fa+~GZò¹•|òïe$ ”ZÌGjŽ‘šs!µ42ÒxH{$ųêõôzcj‚÷©ä-X {DñˆJÑS 1º‡´‰tm‘Š$Âlx] Fò÷f$¼êCJ¡¥0‚R#báęº•"I7‘t+Ev¢„‹&ûD“–bˆB1„¢XJÅÁï¸Ôɕ#¥·#åð")IÜ*Ø`÷°9d‹?Îûñ oÞ_XRòMÜÞfIÉÁá6š·É ¸Íâ·E"àÆXѝ¸íß¿( -ÁÌ—apO+0½gÚ #a?2‚>fíèl°ö2wæƒ@ȕ|¼Žg£< ”à¥TàÖF‚Òª Ø¢v€±™ǏŸX|èСeŒþ@îU7n|¹Fý™jõÇ:2»#ŒzU5®£¸Œz»Êf–觔¢g'rÀ[<'.‰á o‘ðîÎãF¿rƒRoõB‚ò ¨Ú sùä×Hë¤êEUAµ˜˜ß25ç`j-yå-ù‚p>ù·Rë·©u’µNF5`O½hï:¯÷¤öm©©È[(Õ#zŠb¤˜ÜÃþŐ6‘®-R‘ #Q‚É*!¥P‚R8A)‚ŽžH‚R$ÝJQ¥hº•¢É91¤¥bO,(–´G‰' IàÇDJR#FiepW‚‘ÚóEö‡\ „\ ÁwÃaÅÏFݾ}ûdœ% Á^@iAiC&@i%Aia{Øów +;6¡äàÁƒÃËvïÞݯr˖-ݪ֯_ÿ—ê•+W>ݧ۹#N¼SÇ©S§VV7®¨Ð/¯˜QÞ»wïäRæq¡wÆå£ ¢E7¼…3;ŒÞ˜Ç-@©q7A‰éIÉ%‘ǝKP*bzR%Kqw2à èÌô¤§T4ç_˜žÔÕ“úÉhÎáÎj"«'Ídõ¤EºÚÚÚÕDÎM: çN¦'ÔÑ-§cKêX€éIIhÄÏ$FÝ$4ØW2I2(è{<ô£ +2úQÿüãGä#ä{¾ÓÜJ7ì?üðÃuº•>Ôâo¬îy< Ç8£íŒ:sæLm tut‘ ;3 ;1‘…º,ԝÄBÝ.Æß\Œ¿¹s1þ–Äø[ãoNÆßs0þÇø[Œãø7Æ/ëão,«ä)`rƒëOZÐmU u»g4¡è9ÿ›JQD'ce·Hض‘ðk,ĨfEP•O~W¹óõz³¶èúó‚§¹É ™Zw0µ–|A8ŸüÛ©õ€ÛÝ3’æBÒ¼GµNF‰GR{jµw¢×»³A¤fDöˆâì@¥è)Š‘»7QÌ k£ØÝ©Hœ¶ÁÍHX*)”›…Q¹ÓH‚RA)š8CPŠ¡(–ˆGZŠ#-œ–â @Fâä¡J"ÅÉï\\šÌõÒ<Œ$·Ûñ@")©>à†æìÄ&~˜mÿoϳ¼«/s··8‡[Îá6D7qâÄ1œÃmŠnþüù³u˗/_¬«©©YÍ|šZæÓl׉I6p“`ÙOr„ÖYQ‘³‘]U®_¿þ¡JFâ$Ÿr’ëfðÐuwÙhá߀|¹‚ïÜ -@éæ͛‡@ikZ(­ÈÅ1´?uêԌ£GŽ/9pàÀ°rœKßJxëÀoÕ+V¬èÚöü‘Ž°ç÷v„=¯¨†=/ì{ž[ {ž^Î<<îXN\ʼnK"D·%—”¼¼¡ë% +Pòäqç1»ØŒþ\Å<îû˜Çý(«'=ÃêI¯°zRVOÀêI#Y=i«'Ífõ¤%ººººµº;wÖ±9wëX=‰éI'Ez’ŽéI:V˜dzÒçZ薄ûZ¦3Iý €‡þª‚ŒþªþóŸÿü«žb€ü`ÂwßyÜJ7éVú܏iݍâoœÿ-”ñ·pÆß"ϝ;·9úäɓ5±"þ¶wïÞ9 ñ”Dêv2þ–Äø[ u»s1þæbü- =§cãoNÆßsxâo±ÿÍñoLT +c¢RAÉßJ–ž4ùáY0Úð,è-œÖÄÌùßÄD¹Š"©Q :Ù#¶h,Ä(—¨|òûŠ ÒÖ¥EfõB+ Zç& ™4/SsÓÖüfZò¹•|ò»€Rs·»Šµy…Ù¼\Hš÷HÃ#/2Ò È …Ī=ÎÚ˒oѦ"5Ù-ü5ë•¢ç® #wo¢ˆÛŠg †ýûS("Ììv! <‚D¸ ÍÄp±Ü}OZŠ'-9;bOi)”HqŠ„$yð(…«x1’HÜII%lµJOÀí6û£¼Oñ¾½¨ëÑ£ÇëîìmõÆÙÛ°ˆïè`ë³·kkk×éXR’a¢Ý:Q;š7‰7©É$×N²¡ç$ND&&Ù`ÙèÏYßç3w~1ä£ È¡Xp)«œ‹Æʍ@)¹”Öga÷+rq ùù¥éE¥q¥¥¡å Œ>ðöfx«æ€·ŽðÖqæ̙÷tœùÝÄëmÛ³z±”FPâÝîÅM2i^&/“W8îî#q>·’O~+(ýJgR[©9’yùŒ¼ HC!íYÕ^‚Ú»S_´Þ²GŠÊm…è¹?ÅÈc˜x4 ÅꮉÓðsøÇYÕ§k‹T$fƒFŠr3$–+ÇqÛxŠƒ»JàžyŒDÒÉ3pòԒHAIä!%™"ðH„ÙÒ¹ŠÈGÒIKJÒn÷±Åá,-{ûfowãü$}™½=”ÙÛc9?ÉTfoÏaöö滳·iÔwШï§÷ãkG¿ÇQìïsÆVQ;úšûû±6™æý ÷ü?üðÃVÈçöüñº?þû8rÍ Jß~û­”â±í»¥=MAiy@i^>ØlZ(ml©V¦ü x{A xëØ0àížj˜ò²j\V󸳙ǝVÖ½{÷¤ôXG!ëq·cw:aDӓ8qI'. çÄ%¬Ç]J ”RýĀ7¼ŸÝÞLžo,3ùAéy–™|M1bD/–™Ì2“cXfr*ËLÎcFür¶©ÈãÞêÎãƵ‰<îÓ:úæt€˜k:–â–nß¾}CDÝ$4Ø·Òßþö·d:“d2’2úYý¯ÿú¯ŸõŸ ¿IKn·Öûʊ-¾´7¤u·%þ{ðàÁEñŒ¿9´ø:C'ãoIŒ¿%1þ–4f̘ǒs2þæìÙ³gI"ëO:Йñ¬?ÉD¥ftÇ”"J¡¥@‚’_fpê7‹?+;z±ÁŠ~¯· S«ftoÅ‘ èí²"©øm ) ¢“="ai#ѵ.Ø©OþmBzm$^/_/*Õ0Ê ž¼üM^ÈԜƒ©­´ôû¸•þxí“?#ýg’6®­¹X›#i.$-¸¦y4ÇQsd¤ñx8Å«½ù*m*RS‘=¢p !*÷¢§¸S#wo¢˜y4+kãøñ\DU¤ žšÒ&ÒµÃ=.$ÁH1”8J<—:( Ü"‘Û:)IÜ_÷ìâ1’y´d<Å#©”4Šp!5f$ì*ߓ”TÆŠáv/½Óy²·ŸæÍ{‰ÙÛoè`ßêIãƍ©›6mÚDÝܹsëIkÖ¬YÁìíõ"{›©4{tG}—9Ç'DÀMºråÊE™ÞÙk"20Ò Î¯ñ¥‘Sk˜G_2cæ ;ä³|üÄ Jßÿýå–@iK:¬ø:7(±Ö¤”Æ°2À`‚Ro‚ÒëîÊK—.íÂou—t䀷2x˯ fW€ Óʺuë–TÌzÜÌãnÇzÜ9,3™ÁêI) %љä@׋ˆåT¸‘ŽÕrpâ’$ÏÄ%Ù¥|‚RA©#ëq?DPêÂzÜ/”ސïð6Ý=àmÆ bÀÛÝÞ½{›ÍãÖqÎӓthΛ¥¯%´ÚwÒO?ýô£LgAégdôwõ¿ÿû¿…ü¬‡Zú«Is+a‹[ZüÓš\ dü-XÄßÀ¢ÍÆßâ<ñ·Æßs.^¼¸7ão¯'1þ–Äø[ãoNÆߜ¸ò²D¼A +8ÿ[<žýT&*9™ÑNJJQ‘œÿæsê7ÿ`< ö@þàðçÑ~èÏF: ?3ŸFS»víDÖçååIªÜÜ\IèdHÍCÓ>ùO îQó¢½w½HUÃ( ž¼¸Is5i^&-0§9˜š£%¯Hœ6&ÎçVòÉ¿”îޙÔ\R’—ÐVFÒ\Hš÷HÃ#Œ¼ H<âáԞ_ñÆÔ$''GjFd.¢PTn+DÏý¸gaæÑ,<®˜¥MÌ@âÏ +ä#Ìó ¥„»3µBõa¶FrP(‰\Dqqe7K¦¤pW)Üi*w/$GK§hx$ê#åxI$nkIIõ74±(—$²·Ÿäzž7Y+Ðؙ4sæÌ©¬½]_ +`ýúõkiÏ7‰ìm:>0Bt”©4§¤K—.çDdWdæ»'"»uëÖçê×_ý%ç׸Éù5nAF·XÚç&]7ìÏðݧA°Ý†b7(Å`³“ñØÁ»N/P–”ææ³Ö$K(ՃÒöíÛ{WÖÖÖ¾ÆÊÏsÀÛ՜á­ZT€/倷ü*Xñì +N\Âþøã£aŒ¿E0þ剿Å2þÏø›,:>,:,qÙ²e}`Ñ·Dü- øãoŒ¿9ûôéS™Èùߘ¨”ËD¥Œ8<ö.VTr”bJᥐP<؁!tÅ¡[ПÍ~ü9bÃSf°â¡Ó›ù šøHù„(úììlI¥(YYYBt²G¤¦¢óÉ¿]p+ZܲzÑÞÀ^h¥”O7y!“°šƒ©­´$lOs)K>·’Oþ ÔVgRë7-g»uF?$„+Vóyá‘5 Pýcª=Ι™™šHMEöˆÂ•…¨ÜžbàþŒÜ³‰Ç°ðhV×Î3ðç¹]‚yj¡|ºÃÝÙpÎÑî,$\B½ IàÄIqQ’¹ …’Ê•Ó܂mÓ¹!Ü©LŠÀ#áBãÚD¬­ž‘DR’¨ Üð¶¨ÏÞƝy¦©3©7Kx9“f²ÀB:“Vj¥9“˜½M{~Žók\b¥Ÿk^ók¨œ_CÏ9ÈÜSk°X4Ç`ݲB¾´C¾ÀwŸai=(Þ÷€Òá_%ðژҽ{÷*jôªÜ¸qãk8®”æ̙ó gx«æ€·RxkÏoYå½zõJ-E/v¡ŸÆç㍓‡î•ž‘ΚZq'~¯†Ç P#i ”Œ.‚Rº+çZ±Y¡Ù3ÛAÌð†§§+Aé%‚Ò[¥¾%1qÉVx§ÑÄ%À¼úohX¯oWt,3©c·Näqq¾%(ý@Pr;“d2’ (ú§Fú'AézÒAég£æVúûßÿþ5Û^¤uחUӚ0þÌø[(ëO†3þyæ̙MÑ ñ·Åq»víšåؼyó¤„uë֍L?`ü­‡è÷ŠsòäÉÏ2þö¸sèС8ûõë×!±G% èf홨”ÅŒîft'rè[lÚ/’s䆆Áæ”ü J¶ù÷ îQcÑÞÀ_iåÅM^Ȥy™„5v¡uZÒ²¼K® n¥?ÞXûäÏÀHwJ^ΤIËÙöb$-̦1’øq!|´y‘‘ÆCâ¹ÔX홚š*5#²[°ŠBQ¹™ž{ÑsFŠ‰»7ó@VÒƃ‹IlÜ󎈚Ú8¿0wA$œn4Ÿn‘©-²x1‚‘’ÜxI¡¤RÒ(é\%Cˆ„-29xGH%›z„äð£¨!ÙΝÔ„‘Ä<·Ü7Q.©¡övW·3©[·n¯êðË_«+éåLšÓ²3 ˜rŒéƧu—/_¾ &ke£9Yëg2SiÍA£þ5§ÖøšÅ¢¿6 ¯ä–r#ß]'(}DPºâ¥÷Z%Î^¢Ü”F—⬁§Â}ŽSá>Q={ö쫧NZÍÞJ9Ã[{xË‷Tæq;‹ðvŒÏGnjɃÊÂOЈt–âNfÔ͉F EÆà]‰ ÅDŽ €RrVÉð€RA©ÒˆŽÞ‰ Ô™ ôAÉk†·îÞX€¹ñ‹™¿¦™‰K´oW9àíËL”nëғ~”€=?I ¿”þ)ƒŒþ¥ü¿ÿ÷ÿþ¥BþIÑhI¸•~`üí[OZ·VVé*ãoçƒq ÷Dü- wuOîï–(ÆßbÐÎËb¤sãÑÎShç1 hçÁ‰Œ¿9¤o8ÑÎ/8¤O:¤;¤÷$HËðÞ(`¢R3ºÓXz2)íÏ9r£Î ç€ÐPôâ€`<.ö@˜E«?ž(³ž-£ šÁ‚‡NoÆ㧚ð4*F<—²O¨¬ç£«¦¤¤HJƒèäääd·HMEç“ÿ ðVx îV½x‘ªFPâííÅM2‰7¿æ`ÒhIØ +/ZòÊònŽ–ÚêVòÅß|ÒFPj1ꦕëj13©õ€›–³Ý¢É˅$ܳâW‡x˜4Ÿ‘FF ÓþîùkqB!<µ0>Ó¢hd”{œ¿È&’´a œî[#¥ò*ÓX(/ƒ’)á;!Y”l–ƒ’Cd’KÉ£´ã‚ö\/ŸÛ²8q±$’’D´©¸Ý﮽ÝęT_WR8“¼2“´an-f&yœI:1³hX ñS1™(홃ìN­ñ»X´¨ê#¼J_”> Â*…beJçï +”J(äzUnØ°¡”-ZôD‚R‡)S¦Ts†·RÎðöÿ±wÞñQU[ûÏ9Óg23ém’If’„:¡( +Š zTTz•Þ{S:Ò;‚Ò;ÒA¤WQP@¯z½zïõö÷}üžgŸÌœ™ÃLn°Ü{}ßüó|Ó÷>{¯ïYkíµª²Ã[6.Éew&ó¸Ó«âÂL­„]4¥‹üä±ÂdFݼɤt\‰É. ¬+ âŽÇŸÞ\¢eœ”@U•mâ v`JJÍJm J] J=J J£XBi2Ai6A©¨Ãێ;6”ÔÊ'H EÞÀ/7JŸDÜ¿ÿs‚’HOúZö|+€g’”þ ûóŸÿ¬Ð’´dĪ[é «˜_Z·è–{% +ƒ}.8þ¶ñ·mɌ¿¹0ç+[àÆu0Óá]²dÉï¼yóºgΜ9³KæĉÛfŽ5ªYæàÁƒyñóë3Q©&•ª0Q©<3ºË”<.Œs*A)‰ GPŠŽƒ tÄ`õDFa1YtÞÚé˵a½¬X~z3V£Î„u)±Beׯž¢ËÊÊ!gff*"…¯×[*?³ˆ +œ”ñíÀ@¥'±«þ&±Ë‹ý^ìüSXߒšå]|.l¶R¨J”¥ñ·R)!(ýŒÎ$5ঞk ËH’ê=RñHCFb5ŠÅùð)Ex<ž"ÁŸ²_t|²žbàk|ßÏÌw¶p9ÛøivҒ“ß šß%Viˆï—ÈåœÂå, +"¹yäQ’´E#l¤Ge<‚T äS*ú¥Ÿ'¤²"xm Aªóyd¤Z‚‘Øéªû‚>!±\’„íáYŽ}s¿3©ç·(3I=æ6iÒ¤bŽ¹e&8“èó¸LgÒG¢È{Ýa²Ïك쾞íǔ®°Î_°â‘Ulƒ|fÇÿ}…G?&(]'(]J_qÁv¿/@) <€¥sçÎ-Uúá”j8p`¬¥:¥ºøº/Õ[±bE‡ú”f͚ÕøqÀÉõ Jõ†Z•Þ*ðÀ[n-\¶Y5p‰f( „aJ)KÊcÔ-›Q7/®Ä$76ÙSžšIgâ±7ãœãÄ^\ž T… T“ TŸ ô4A©9A©Aé‚RO‚Ò Ð6š 4… 4‡º„ ´– ´™%”v”D‡·÷•ÑõU¸Ñø4‚yܦ/@‰Q7  ô{™Œ$ƒ‘þHPúƒž´d€Zú‰n%³Ï­˜ÖÍø›“ñ·èO>ùä4ãoÇýñ·"þ–‚oµ:Õ›¾iÓ¦)ëÖ­íÁUòš×K/Æß^ʜ_X lÏíø¿;Qxôã<ï£x¼â2A鬔ƒÒúò°ÝËJóTPª¹k×®!u@s}ü Ô±þ… ëÃv7®/@ ¶[€RµÇúõë—_»{÷î¹5 JÌãΨ‚3­"vєòµä<¶+ɦ§C% qŠ ƒ­‚R¦JìòvÜ´V±áR®EPz܄q Ô‚ Ô^Pz‘ Ô‹ ôAi Aiª´xñbJK Jë”V¸,ÝI =L ފ*”nj@)‚éI"êFPú^úá‡þ@Pú£JùË_„ÑR[é+‹šÖí+«¤´5‰bü-†ñ·8Ú!Æßö0þ¶…ñ·u®C‡-cümž{ëÖ­ÓÇøÛPÆßúyñ³^aü­s&®¦Ö™Ã‡oê8p`Co¯^½ê2Q©€ݕұ”MНŠÁÎ%’1°‰‰XqñXìѱX=‚Rd–•ÅSiŽ¤W×Cj°` êÍXÝ:ïlŒX¦²ËYOÑqMëÒÒÒ"d¿HBRSS$¢Tþ5±LO‘hXJ…'•›4È$ö{±ó‡¢%5'ì‡z&N„+©[©”Jå‘)(iκŸÂ-.ÇPÎ$µH’š”$Î4¨ùHÂÏZ<#‰;±ÀB‘‘X—b™úÖ¯¤ˆËå"óO!:ŠžOÖóe¾‰oeæ›ZI_6.b;?Òɏæ׈åJPºÖâKºøuÓ¸ˆE½H¯Ä#þL'Ê!(i©ðË+SªPª²Ëg5¿TgçO!5üRÀj²wz-Y0·FbÀMbö¶ÄÚ۝I¦¢ÄÌ$ óû¢Ô§OŸî,ÀÝ_)À=qâÄb +p«5“|ÇÜN2Fq&EøœI·%áL£EŸVÑ~ŒÇ”®°Î_)y2/l{vüß]'žr› t#”Nº} ´W´0QA©"A©Ê±cǦWÇ·'@©6Aé1€R·ºË—/ïX Ô’ ôlýɓ'7¨L©SÀ¢‚R^F£”°c +Pr•ÇÝgr. 'e3êæ¡3ɍ‰R@)’‡±ÏŒÁ°ç”*ر WU@ ›ï¥g(é1ÎJ/”z”ûAiAi®Jï¼óŽ¥-â½Ê ”®²„’R€ t?‚yÜÁ ô{”E?ÈÀ£t>ù£ž´$ÜJÆ ·RQZ·¨Ö-Ê*aį2þv>Xv*Ÿ{4žñ·Ä3gÎlgümC +0ye*€y!ãoo¤ƒð&e¬Y³f¤gɒ%ëá1cÆ Œ¿µË9rds/®°g¼¸Ög¢R-&*Ue¢R7.Ì‚’—ÕÎӒ9Î¥øؼ˜8€’3†ùQ*T°:±ÀÌvM“ +Ï`¥»×‚Õ¨3a]ꌼÇ1`ÁÊz®i=×´Ž"§¤¤D‘„$''HD©ük„c ˜™"Ñ°”ؤC!“Øۋ§%a!Ô¼%a?Ԕ%µÔR(·’”B¥uþ­4Qéÿ²£ef´cW ¥¡¬ó׊Cò%Aé>Aé3'žòI ž|#p%opN% Á”rJo•(-'(Í'(Í (/( ­Pê[ ôòc¥Nu,XЪA©@éɺ£G~ì1Kõ:@—Šµp—%(eóÀ›‡ÞÜù¸&]åJ)¥ä,f&y0=”\)¬ šÈŠqø3‹]\sØ†óPÂ\ÛJX…!@iAi,Ai:Ai; /#(­'(mU@é½÷Þ;ÂZ“§JçƒAén+øAIäq+Q7‰Î$ÉJ’ÿú׿þIùAï£%Õ­ô[³˜5­Û×-·¨¬Ò'Ÿ|ò!ãoïÅaÄ$`Äw%:ujãok\ï¾ûî’4Œø7F|júºuëÆd`ćx0â}¼ñn^Œx'/~o+/~y/ÐôIÐô1&*UgÜŠÌèÎK^f¹`ÆÒSD–}"A)6+>*ëȍÅnsbY°—¦HÂmXƒ n`ôf¬K‰÷8FÞí°t%=×´.))IH„œ˜˜¨ˆ$$!!!@"Jå{€pRQ1Jå¦PÈ$övÕÁ$v~ - !l…°Â~h‚pª[IÍVú)ñ·ÒD¥R)”~rÔM=æ¦f&…r&©7‘Ã'âÓª)# G>2*Z—¾µ*qýª"+‚tŠàÉz¾ÌÀ70q›ù~V®_ׯw;NÞíÄðn'Žw; ¥dFÒS Jn ßÙCPÊ"(å”ò”“k"5›ŒD¯P?#U'ñÔ ø¥¦_jù¥¶_êÈ<×ÀHLJ’1¦OÉlv+ә$ûœI­%LOG sù‚Ô»wïîÒ AƒúJ#FŒ"?~4S¸'Ô€_ɐÐæÎle’ñ^žÆ:ÌÓXïóØú[¿$œI>g’Ò~LBdû±¯Dû1vÕø†u¢¿QêDèmüƆ?ØAKŸ”>†Å¾¾ºJP:ŸòàÁƒSi@ƒ£˜í}Y0ÛÛrð‘ʝ?~E>@iAåãǏϬ¶˜Pf{A©_m€Ò+¥Î¥Öua¶›Ô…Ù~Š T— T£6Ð¥’¥’2%¯”RË4SrX…ÛJ)n–POÁ¼ PòøA)O%\ÀÕJu,ñ&l¹ +(±àdGæ(u#(õ Ä~¸ãü 4Ÿã¼œ ô–”ö)Ç (±ä›×J¢„’¥¥¯"xà-‚yÜ¥?”~üŒä%•–T·Ò·bDµ«Z­›e•÷îÝ»Ŷ&Œ¿düípü… ö&â mMÆW{‹ñ·å©@猿ÍLß°aÄ €õpÏ¢E‹ú3þÖÝ;mÚ´.ÞqãƵõ6¬™wÀ€X( ¾[FM&*UIÇ~P> #^&—­'ƒ–Œ!NNd] ‚R AÉÃ#QX`V»ÙŽÅn²1$nÅjԛé6a…ꌼÑ1`éÊz.q=W·Ž"ÇÇÇG‘âââ%666"¢T~Iá8gA Fi¸IE&±£‡¢%Õ·$산š \(·’°8ê!¸Òø[©üëA©¤Q7µ®¤zÌMÍL7š€›8ñ ²ùÔX›ÊHª IõiðH,I±B±`¥`‘ý¢ãSô|²/3ò L|+ ßÔÊ·ä9ø‘ÑüðX~x~¡$~5¿¤›e€3J™¥2¥<žä/Ϩ[¾ÌÔl?#US|F‚Œ°œkRjé`§kKEð¨ø×c”º:’ԱⶎŒ¤cIIÛH¦3I¦3I¦3IƲo'c¢:K¸­ï&ῧ4xðàèa¸Än)(…{ »j¬a +÷;þîwiÀ1$ôâé€ UœI<%œI]5XQçëªñ[½¯òáoM?üðÃ7füë++ä‹HÆßxޝhXì[¥k ,¦DPú€ t, ´? ´ ´±,@ie€ÒÂJ¥×«‚-&V(¨‰¯Û¿@éÕ:ø Ï?†Óæ1€Òs”>†ŸZ¯~tA©rM\ãåJ9l…›Éoéù,íS–'Ö J)Y˜ž£ni¬JPr'²zz«^Å`󜘷Š!@éY‚RË 4ÔJ3(IA ´-”>ðg€©µ&5 ô-Aéû ôgùoû›":ȟôø¿?èV"(}gn%MZ·¯­É5çÝ»w/DƒÍ>ˆÅ‡cüí݄³gÏîH:yòäی¿­v¥¢g¹ÓSÒñ;Fg±_ớ7¯ão/y'NœØÁ;räÈB/ ¼1 4ð`©ÃŠJՙ¨”ïÆuš—†Ïta$ӓY´>‰µÇJ±qXGQ%{4˜Í‰¥f±3Y0æÓh…!5X°.õfúMd$#oy XĒž«['„[Ž‰‰QD ¥ò‹ ‡] F©ð¤A&Õˤ:˜TZR#qÂ. ¡  K¢f+©‡àÔJ”%¿•‚R©ü8P*AzRب[¨î°Î$5à&Î>¨ùHªIe$Յô0‰Å)q­ª"ûE§ž¢ç“ |™‘o`æÒµòMm\ºvÞè8y£C·RWm"ïqR¸jSY8 ä•°j³ J¹~L9™Åd˜ÙJ2³²•´#ÁHÄ#bOa9ס<Bêê)~<Ò2’Ž'ÜtÌÞÖљ¤£3IÆ,´–13dL^W™õdÜà÷‘˜Â-;v£AYÚg&k ÎgÔmk ªmow3ꦦpÈzY,úºbÀbWû’ÿ4–(-:©]5 "—X˜hÈ×¥/#ñè}‚Ò]‚ÒDZxíõÖH幁ÇÓñ2oÞ¼¹³ÌÕ«WßÎ(­.PZT ôF0ܤj ¹‘¥5J=j”ºÖY¸paÛ:¥fuJê”ê×°Ô¬t©R€k¼Bu\¶¹l…›U ·–¬ à.‹áLÍÁ¤¸J® FÝPb+>‚’×JePÂ|T·áz ô¤JX”:±…ÉË¥¾~P J+Jü ´_Ò Pºî¥Ï"Xk2<ùu(a8•¨Aéϒ”þJHKEn%µmZ7Ë*9ðA—”´n û Æß%`Øw'bØ7'cØ×¹ðM—¥‚Oç1þ6=Ã>Žñ·a {?Æß^aüíy/†½ ãoϱP@C†½žÃ^a¯ÌD¥riº2©¸ø=)LKÆ-ER"N|<ÖQt,•Æ`ÙGFeeeYXñf;ÓmXñ+Ãäf¬P kUgĪ• ¼ïÑs±ë¹Îu°Ó’¡Šät:$B‡ÃQ*?U4cª +Ç^‘Pð$6iÕˤq0‰]^õ-©yKÂ.¨A¸°n¥°iÝaão?%QéßoÀKå?”JšžT‚¨›zÌMĘÃ:“„ÛUdø©±6•‘TR­Fî˜\¦ªÈ~ÑñQ=ÅÀ'ù2ßÅÂ¥kå;Gò3ü´h~n,A)ß%‰ßÊÅ2Àn‚’‡ ”EPʑð;ÊʬŸ-³øIUEV¶ŽG:Õ{$ð£ñ˜RWå,¤^©ï—Çõ¸?zB‘l ç 7=Ë%éX +@Gg’Ž5“t˜Š¶:֐1«/Ê0Û=dÜà÷“GŒ1Tš0aÂiúôéS¤¹sçΒ–,Yò¦$¢nÂvïرcb‰¶·¡R¸o0êö‰¨ªX´`$Cï”#êŒü˜!ßXñ¿!(=pÀÚ´º+Ž¾‰¬:)¾¹ñ½ø´]ÙøÜM¹.\XSîôéӋóA³+”¦T(®±eË–× +`±{ÖZ±bŋµa±Û׆ÅnQû™Ú°ØOԂŮ]»Z ŒF~5\¶yUØ՞­p=¥t‚RA)5S€›ò”ÒPb+>.ÃN÷e˜F”³`ìŸ4áÞ´ A©•Ë¥”,@ië(© ´ ”¶ J·ý ô…”"| ô'ÁH’‘þ"ÿýïÿ‹Ê­X- (­[”Uºê¼sçNQZ÷µk׎Æ_¼xq_¾Õö¤'NlL:¯t¢ßLN¿áXOJ_µjÕȌE‹ ò̙3§'ão/0þ֞ñ·Œ¿5öôèÑã  +¨÷jé¸NóÝàûÜT b&+0¸“aßR’`î`øbãJQ%{4–šÍ‰eo±Ãhš"qÛb´2BnÁŠ×›±Vu&2’‘7?.v=×¹&ZH„L+.Db·Û$"”DFF–ʏ“PÊ¥ endstream endobj 88 0 obj <>stream +4ܤz™T“JKj$NØ5Ê­¤– Ö¥ñ·Ÿ’¨T +JÿG姀R¨ô¤PgÝÔ¨›šÂ-¼¦šÌ$ՙ$Ü®â<„pŊ8¶kS)"2⎩Öª™¢ãÿ Ñóy¾ÂÈך¹j-|?ßÙÎë䂍ႍã‚Mä‚M‘°`ÓJîl2%lðeØ´¼¬\PPPAƂ­DgR:“4ŒTG/ðH†¤¥¾äñpò„‹]H†ó)=O¸é1ºÏèÙ¤DOg’+¾•»½ŽJt°QÝä~ýúõ’ ÙPc8[´ŽgÔm:[´Îe/û%£n’/ê¶3 ê&l7ì¥Há¾Æ¨Û-žX±î1ꦖöQ:±âwJC Qù¦ü;#äw¥ßZðÀW6ÆßD¢R”?£[9úP:KPzŸ tÈsëÖ­ÝY°Ø›sJëÊ”–VÀ·š[éСCÓªìÙ³gl5€Òào½õVnµÞ|ó͎µf͚ղàäÙZÀ”5ñËë` ª”*”ÊVfWûŠ°Ø™å1ˆ,¡ä.ƒéI#(¥”ÒJn‚RA)ÓJåJ•J5l˜ +”ÌA ÔÙJý‚Ai¦J¢7LP:ýÏAéw<ð”€Gõ‹BK¡ÜJiݘ¼¢´nLèu–Uºuûöícð ދ»|ùòAÆßv%ž±Z­ÿ û…4¥á&LªƒI¥%5'ö{±ó  ᄅÐd+©ñ7a]BÅßÔóoa•JA©T~fP +›Ç­IO +uÖMuS¹…u&©·°Œ$VžÏ£^„GÜ1)²_t=5ðÉF¾ÌDZ2ó­¬|ÓH¾½ƒ͏Œå‡'ðk$KX«©Öjº„µê%(e3=)OÆZ-/ãÇTdÔ­ŠŽe!u0½:feë}ŒTä8‚™}Ü ƒó„FŒAÒÀ/O +F2À¼74`Å?mÀ?k`Ç[=Izܵѳ€3ØUǨ›ŽQ7™Q7yìر#š(û£nì<¶LbÔMÚºuëf)(êvÂu»äºÙn¦Í¨Î$CïX'ú{¥¡†¿ò!Aé;ä[ øš ô¥O¾çÄË>Ýâè€à\ʽ{÷N¦Ý¹sçH@io&@ik ÚúU0tèк5JÕ»wï^¹*§Ïè% ßÅÆejç2ur™Æp™Æq™&²uT +Ûkº™žäaÔ-[Æ×͕±BËәTQ‡[™ªt&Õ`À­–ž%‚©â +"žFæpbÂçY|ÿ÷´ûŒK¼1­sž·jf½P¡ SÑƈééhĄv5ÐXØ[?lØ°Aú±cǎÐÑbëÞxãéò… çÊ+V¬X"¯_¿~­´e˖MҞ={vJ‡: ±Â¤ä«0Yd¶EU_ùâÃêÁ嚎‰Ñ¢–°ÎáVúŽ ô­Õ LTbFwèërâƒΤàƒN¤á#eàÃw{/_¾¼9ûìÙ³ksOž<¹´ìÑ£GçVØ¿ÿ´Š;vì[Ð1¤Êš5kúT]²dÉËÕæ͛שúŒ3ZUŸ0aB“j#FŒxª*¢^•^½zTÆ¥\¥"˜¦B…¶mÛæ•Åè–ÉÅÌdfãêôfâêôdàêô”<¥L‚R™xöèã©· +¥*‚RdP2” PšP*¢%k…–hÀ5òÀ4ÿ2â1 ¿¤„…§°´¤Fâ4A8±ßk²•4ñ7Íù·°…4 $lT)(•Ê¿”JÇ6=I­ ‰º©™Iš€›zfEe$n‘™¢SD€ÄÀç™ø +3—©•oÉ7u”¢øA±üÈ~x²„:U +MgÔ-“Q·¹R¥J™”OgR~Qu:“jêY’û#¸üx¤Ï3–‡åikyÆÒºuëÆ ñ³ vS3†½¹&º¥©k×®mM˜¨NÆ=z¼`ìÛ·ï«ë¾ÂkúñãǏҳ¯›Ž1  Ú|¦m™Ìô$™EDz’täȑChä„.)ª0yãƍügÝ>לÁ’‚ªúüQôÒ(­} Š[É;ý vº(QI”ž(Ý$(]I‡KœL)qãÃ÷zð5¶f;wî­2§NZžwìرåÞ}÷ݙ€*nÚ´ixåµk×ö¯²lÙ²W«ÎŸ?¿Kՙ3g¶­:qâÄfUGŽùt•Aƒ=^üR».êjù¸l+–Çø•+‹©ÈÍÅôdgƒh3½°ØÞ 6ÀMÃ4f²2w N‚¦V¥z"ôf J£F +%Y€†] v>J"s¾d9J¡@éïŠü×ý×ßeH‘[‰A8}[©¨¥Z-€iÝ6_Z÷Gê%Å­„ 8 R= ؝ˆ ØÌ´îu)˜€e©˜€ùi ÕnLÀøô¥K—ÏÀôgZww&  ÓºÛ2­»û¿=Í´îÇY²V.åªé°[Ò0ö¹©ì㽆;æ.…ñ·„܎ÄÆa+ˆŠñz½öh–uÂhZ,wÉz6˜Tƒ…çWÍ< a"(ƒAI/@ &ZR@‰[JÒ¿ÁÿòËÉOá½^ÿÓ$,7…¥%5oIu+©ÙJê!8µ¶’°a•JÑ] +J¥ò˂Rñ%”4•4 ¤ö,9wj»Mz’zÖM­ ¼°¡2“Ä ËHX—B(é)>Åè%K0(9¹B£y+Ç[™D ûs +£nn¦'yu˖±8óèLª@gR%:“ª1{»@X‡7 # Rù`G!kÛ¶m…4bã”gBHc›x2ƹ‰#þœcß‚©heÆÌ´7cò:›`^2ᾇqȐ!ý 0ÖC 0Y£õ3f̘¬g)nKqëxN]†Å~Kfz’Ìô$‰¥¸%¦'ILO’®^½z%âÖ­[J…I%êƳnŒºEø¢n¿W«úôÒð×ò1@þHPú=Aé;‹ˆ¿%*ݍúöÛo?Žýú믯Å”.$>H›K»yóæ»ø;¼.\x;ûôéÓ«r€‹ÊZŠPié?Þ­ôËáÑO¡ NZJÀMaiIãVÒd+©ñ7a ÔóošD%µ­‰°.jG“° ªF@ØbJ¥ ô^~$(iJ(_ ԁ·PyܡғÂFÝ4Τ F’üŒTJ (™ý d#(ÙùÎQ¥X~Z{Ž'KXœ©Œºe0ê–)ã67GÆ o9:“*êpS•Î¤z×Ú ¸Õ5°ä‘8¥¦0’p!ùâeÏÒ®6Q`ƺ© ÒDH¤Ož¥4ŽdgŒ`yVy +»© ÃÞ̆5]hÅ}Ok 樃¥{÷îϛûôéÓÍ4pàÀž¦aÆõ7²è¡Æz¬áõ×_Ÿ¢Çýþ,àêÖ­[·Jf\™ pe–ˆfzÒQ Æð”Äô$I“ž$º³~õÕWJÓ±MÓ±àÑ¥?+n -ýÁD·’ÏÓÄß>SzäÂN;})vúÃdØé©°ÓÝø»<@ˆM™~øáÚ2'NœXš ;=·,ìô´ò°Ócó7lØ0´"ìtßJ°Ó/W‚î\yêÔ©­+ÃN?W vºQE°ããù¡ÚØ~¬\ǎ+屫F‹EgÁXçx™ZœN‹(ÊNÁ„–IÂn›•#(UŒÆüVu>ýôÓ5íÁ D¿^k“”^ ¤góá`PšOPZNPzK€’$ŠVqØC‚RP°³”0`ŃÒ?„È*-ù‚pn¥ "”Õün¥ëŽàjt+Œ?{öìnV (r+®—±ZÀ<Å­ön¥aóæÍëê™0aBïˆ#ÝJØK÷»•Üû@·ÖVJ’p+±ÿ´p+ÅÂ@:·RJJŠÅ‘˜˜hVÜJ°«+Ö¯êVÒùÝJ²Æ­ôk£¥ÉM?…‘¢Ð#IIiIãVÒÄßÔ´naB%*…Êèuô­øa‹)•‚R©””Âå.¾„R¨Êa¼iò¸5ETPRëh2“|uDÂ2’”L +(áµV.ÎH.Nß9š‹3Žw1‰RZZZ +ӓ܌º:“*W®\AW£FÊt&U×ãÕbÀí1l¨†‘„ ©HFÂdè=‰u©ˆÒÔ/MxTȳ<¹Hø§ØÅËÀHÍ#1-m˜™6V6Ï°öìÙ³‹7î/›a§{™`žšÆ7ÜÈ6ëiú… ÎѯX±b±nýúõ«u[¶ly[fÏäñ® 9&1$1YFR›Ž=œžª—ÆŸý ôZˇÖYu+™5ñ7v4Qão±¿ùÍo®Äß¿ÿ\Øìd +>üH¾ÆÞt|¡­Þ3gμ•õþûï¯È9räȂ¼}ûöÍ,»}ûö‰åA#*¬^½z@þâŋ{Tœ3gÎ §OŸÞ¾âøñã[T>|xã|°ã“0BuËcÀ +ÊâÚ­š‹I©X†Å¢³°æyqæ¤ã:Í¡#‡m[s’Øá-R>–µ& J՜x^-;^Qφ×6´ú@©•%#AÉJã”Ô0‚’,@iãƍo)ç }Õ=(©MqC»¯àdI@IúïÿþïëVz¨Z&U­ ÜJWœŸ~úé9µáVÚàV:xðà*.Ÿ7Sq!¹•pq=äV­wdµ€–¬Ö-ÜJOy°ƒº•`ÆÊ ·R*›Æ·Rr[)&.Ø­äd§!áVŠn%ҒEВp+……ÊV +Ÿàýž‰–J@²,#Å#SX·’&[Iìí¡•4…4Ýa¾…­P‚bJ¥å¹Kå‘Aé‘jM–”BxÓTO*>=)lÔM%,É"F‚ø¨ÑJ‚’ d'(EÑÝÊçG&1ê–ʨ[:Ϻeʸ¹-r&aI9“°­èñ³êðÅÙ‘³ÈHL'RðH¸0jÍçØ1ˆŠ8 ͜çœx ©"x^­ðñdf¡…‹¸U$&ªmd÷îÝ;Ú`¢»Z ðŠ…ÍëͰӃL¸£a3Œ7‚¦-Z4Wc½D¿aÆ5ºmÛ¶½#ïÝ»w§|øðá2{–0=éC‰=K$VO’½D4É_ôP¸1þl€ü`ô¹•¾3kâo¥»Q¥c¾úê«kq<¸Hø ~,_ã]÷•+Wvdœ;wîíÌS§N­Î[,ÎeÌÎÛ¹s甲ï¼óΘòk×®\aéÒ¥}òçϟß-æ̙ó'NœØ:äȑÏUº4*ߧOŸÇËá¯]ƒX#—]5Ê°Xtk z0yyé̘a~qn +Ìv^ð¨l¤B,þ¬I®æ„Q T?R€’Hc%+sûA©AiAi¬”æ‰Ô0‚Òz „§dÔ2è‘s¥«¥[á@é{¥PŠPA‰Œ¤€Òô¤¸• Án¥à"”wm¾j×Y- °%pU¸•v)n%àêºàêRV ˜—\®¸•–,YÚ­\mìVªíw+廕Òýn¥DáVŠr+EF±#³•Ìvl +&‘­¤áŠÏí֜„ U2àß_„H•ÉR%@¦G¥âñ¨È––BÅßÂ&*…Êèuôíg%aóJA©TJJ^”;l %Mãqy«ÍÝBxSA©øô$#IŒ”DÔÍJPŠä[9ø¦ÑÁQ7áLJSœI¸wɖ˗//œIùt&Ua)€úúõë×6à·ÕcÀM$%‰|¤@F üD +¾Æ¡Ô«W¯îNGlñœ>}z}æñãǗe P*Šxþ8PòÓÒ#¹•>WÜJ¾j·Ò‘¸óçÏïKÀ×ݖ„Yn¥•!ÝJ˜Õ­ÔÍïVjåÏVzʟ­T@·Ref+ ·RÅ­„;‘4º•’…[)!//¯È­„[({4v%'Áis»C• [`)D%Jé©Yý“߯¤,U<7L?(ih©x·R¨ø›¦P@ñ $쇔„ [L©´üT2˜á¨ëúõëûÓ.^¼¸=ýÃ?Üè=qâĪ¬Ã‡¿™½wïÞY9Û¶m›’ ü]vÕªUƒË.^¼¸w¹9sæt+7mÚ´ÎåƏߺÜðáß+;pàÀ§ó•OäbœËÁÌdãÚ­šÉˆ\±ùé˜FQߧ¼ ´T> xT!R1V‰Á5¢ð”Ú<¹~$^֐ fM•”z6Å51IÌPêÍDúÁ¥1¥©:€Ò‚Ò6\KPÚLPÚÍúCǞ t6”îÞ½û©”ŠRÂ@éO¥¿¨ á¥ÿREu+éT·sí A½MDµ€¢"”˜…‡ÜJ¾"”En¥3gÎìJ|ÿý÷7Ñ­´6Ø­4ÃïVîw+u§[©+ÝJ혭$ÜJÏЭô„ß­TMq+a1å1I,˅;‘ô”êÕ«»’*Uª”˜ˆû”¸xlѱØJ.¸d€ %+]Xb%J#‘I­Û­ïVœt9 –Ÿ³ÚOy«ô, KPa¹©¤´ô#A)-Ó$*…%a!45BS*”–ç.¥Rù׃’ZkRJj‡·° ªÌäÃy܏u3GÝþ¨[,?#Ar¹\"…;)ܦp‡v&=þøãjÀM$%5u Íd$‹`$ Sa$F­•#ÙځÑmãĈ·‰êÞ½{›hHëH+JËXHam‡ç5§4‹Ã,<§J,¤Y hƒçµŒîÑ£G›¨Þ½{·wâ&½³èEû°aúGŽ=º¯ –i°¤0Ê<{öìI&Øé׍¸Õ_`\¿~ýrÃæ͛×ëwíÚµUwðàÁ=º÷Þ{ï°|úôé÷eÐÈY ñŠDc-ÑXKlî¦ÉãVA)ÂJEÅét¿ÃJ2ªiݾøÛW66ʵ3þædü-t=y1þ³Ï>û0ñöíÛï%ôÑGS/_¾¼Ë}öìÙÍ'Ož\ç`,ÍjÌËÞ±cnjœwÞyg|. pxÞÒ¥K”?~²3gÎ|¡ìĉۗµæ"›ä²«}Ư~ÌL,LTA&k zpÙV¦±®˜† Íw5nÜ8?×nÅH¥8l´Ucð@¨¦M›Öq‰·Ã¼7´1¹ÞŠU!@©#Aé%#>H€Òk¥Ñz€ÒÝ… g””Ö°*Ã& €±‹ t‡ Oð°á‚Òe‚Ò ?()%>ý ôAé%¥à \ñn%¥¥ß­ôÉ£¸•4ÙJSüÙJƒƒÝJxN¸•šzqÉ7¤[©ž;HA†˜låûÌI­W¯ž×…"A¸dmnwp%JAK¢Á‰Z·ÛÂNplp¢3²œƒh'ú択pþ¾¹ÚºÁ¡µÇë/"¡>RÍÇ ^¡ªxn*™JJK’$É#¹•J +Jš£oђZLIJ +•‚R©ü@IS”;(iJ(…ª P2P +Láö’©Ø¨[Q +7>ÒŨ›âLb +w‹K8“˜™$²·ë*7_RRc¶³h*Ɋji赶c$Û80Îm›vQ={ölûé¶1@œ¶±6qø³U<¤e<-LÀóZPš'À’4KÀk›Å ÁŸÍãøh,ž×’oÐ&§CÔÀŸw2ä%îÙ{ØǎÛ/rÒ¤IC¬¸™m™;wîdóâŋß0­Zµj¡vz…aëÖ­oé÷ìÙ³UèС½º'N‘?üðÓò¥K—Î1ûªÄ<‰á ö²È«ñ»ßý.¤WC%µè¡šѸ•Óºýýß"a¢?wÀD…ºƒ¼}6&údLô‘˜è}©0ÑÛÜ0Ñ2`¢Wza¢ß̂‰ž• =¥ Lôè˜èÁ¹0Ñ}ra¢_Λ:uêó¹’¶¹ Èæ9ìj_ã÷d6.ïzYÏ?ÿ|m/k zD² c@i˜ÐJ.\»•’AF•LUâñ¯j±ø¿‚h\Ùuœ˜îÇíà«F‘˜î¦<{Øʂ9êh‡½d(õ2W_ã‰ÃQ¥É¥Y:€Ò"‚Òj‚Ò;¥¥¥÷J²iÌ%Veøˆ ô ½yŸûA)ЛWPúŸÿùEd.”[I[„ÒïV +îmÖ­T”­ôð!¸ Jm¥yóæ n%¶ÌíÊÚJíéVjÁ–¹Y[©{I–ì®Î’ÝÝXVeÓ4h•ê/ ävc!ƳÁI iÉ) +,‰'δ´4‹´¤´ƒ³á–Ç`ÁšV›çÊF¬sّôØAÑù$Bö‹N"B‰poÿŒöƒD®*aÑJCPxÒpSXdz$ZRA©xZ ++”Ô£oššbJaAISž»”Jå_ +JÔ·xPÒåVA)l % (åq?T@0ÒÃQ7›uÎ$5ꆍ6™)ÜiLá.r&•+W.Å%óeŸ3©@q&5jÔHTÜ~ÊȤ$ëZXҊÁQ)ÃÙÖºi﵏êÓ§O‡Ò± ›öqvñ¶ 6 x U"žÒ2ö£¥y"^Ö,F]‘üٜÒ"ÏkÅ7h »ß!æµ×^{> +ð’sÔ¨Q=ãǏï >bƒ‰m?þd LÖ¦Õ«W/4nܸq¥aûöí °ÓÛô‡Þ§ƒ¹;"Ÿ={ö”|ùòåóò7®2û–V¹«€,g¨<™"P +®å#kjù–‚ão0ùªuÿ–ñ·ßØð¦÷íxû»N|ÐÇÑ0Ñ×ba¢/Äݹsçt"Lôñd˜è®‹/îJƒ‰Þ”Žï¼6ß~©¿c^&~ьlü¶ eð+G”Y²dÉÀ bϘès&L˜Ð1&ºUŒÕse0ØOgãâoÉd^þg°pWKÄVuá®’Ü´iÓ*‰ªñê± ¨šÑxô1'ž÷„—|#ž[lÊénÉú ”^4Y{”ùAiO¾APz“ ´Š ô¶Œ/¾ƒu>ß%(—Ν;wšaϋ¥ë,_u› ôAé †=¿&(ýŽ ô{Žýû?”þª‚RD0#)ò˹•Ä!¸ ·Ò¢·~ïÅ­4{öì>,Ùý2k+ufÉîÖ,Ùýœà߈àê{°—ÔÌÀÀVIÇ`‹’9©O<ñD&ƒpî68IÂn‘˜P¡B…X¥n7ÛÁ±ËIdîl¬ВYiž‹•l´™ô “ތխ3›d#ŀmDÒûEç“Ù/RQv‘_ü¯õ#Uà v× •£4>(•›J€LÅ;˜~²[),(‰/ù#AISžû§€RigÜRù€’¦î/ +JRI@)(êVäLQ7áLŠã»bSMäÔFÝD=oHg’¯€()ـ·§pkbÆ4³1R;;l@'ˆ§cÌg§؅N›Nq쏛ê øW»DHÛ$<Ð:OiE)LµHÆ˚'ŠI¢$âÿ +‰V­âñŠ¶q°ûb‡ú|ôˆ#^Š‚êáœ4iRûôéӇDÂ<±ÂDO±,_¾|–yíÚµošp¿¿Òˆ;ÿ †ýû÷oÓ=ztŸîäɓGu°Ó§ä+W®œ—a ¯2û–tïÞ½»Ò—_~ù@¥ï¾ûî[æq’8¢Îô$mÑC5ØïÆÐC„[éOn%Ñ-oõµoúE$Þþs€à'ÐàFôƒ.Ç~öÙggãm'oG’ñýö¹ðM·¥-6¦;vlUƻᄏȻsçÎٙ›6mš’µnݺ1Ùø½C²,Xз 0åÕ2ìj_ƒÓ>&º0›ÍZ³€œ2q¡?¡dãR®íÆU\† ­îÂU\-¹yóæÕ1ÉÕã!±ø¿Ú1-[¶¬Õºuë'˜óFvEd‘†–VN7ë3Ò˜1c”F˜$FPz ´PPZIPÚ@PÚ.”ö³ ú1‚ÒL¤¿ÀDúk¥ Jw™öÀJß* $ž%¥Gw+ùz›„r+}àVRk+¹•DÉî™,Ù=!}Ù²e#X²{ Kv÷ðâê|à:x\ÈNpÏz±\ždɀÇ®2W‰A¸ri 6,“Z¿~}OÂ¥±nw2i)ž´‡EZ²GcË°9=Åõk¶™Œ6,gƒȤ·`љ)&¬sÙH1€ $½_t™ñ}U$L׈rX]ìH¿°¨Ÿ&D¤;¡ U…"¨PÜTdú‘´ô#•B}û…AImøV +J¥ò/%M?\q9ßW¥PÝKBÒõ&%Ñ©¤ø¨bd¸îT¦pg°@–äs&UñMUgÒczáLâ 7#n&,5Q&[©þhÃÐ)ŒÄëNQÀžÎьÅÒïãÐ9†´s"¤c¤C2þ¯] +¤M +žÒÚ‚jéÂ+ +]°ç-(ÍSð.BZ$ãÏÂ$<Ú*OnÏ7ˆ>|x—ØÑ£Gw‹?~|(PAŒÒPûܹsÇØ-Z4źbŊY–õë׿iÚ¼yóJã®]»68°]ÔدÿàƒŽêΟ?J¾zõêyùÖ­[טÇý±D;-ùì´ +J¿WӓJEµ||…¡O§ à )Æ­„·ú­E¸•€÷íß~ûíÇ×_}+ +€v-¨v!Ðv:ßêxâµk×&_¸pa—ëôéӛÓÞ{ï½uîC‡-ËسgÏ|ðc¦ 21sÕªU#³/^<( cÐ;›]í³'L˜Ð9‹]5²0ØÍ3œÏÒ¡ÑPdgࢮëîСCí4LhMP¨ PTˆI.H€ÔŠÃŸubð@½(<¥ÿÓ,ðÐ4+¥% Yu°`Ž^0\{˜JŒ˜Š¬a5Aÿæ›oÎÔ””–³4Ã[,Í°• ´ t„ tŠ tNò“*OÞ!(Ýž€ï9 ˜†=UPŠðáÑû%–v+…l™ûÏÝJš’ÝEà0‹Y²[t‚›ÊNpcÙ nˆgΜ9}=Ó¦M{ŋëôy/.Û6, T¢ô²Á ƒpµ„«Æ \> ,å1e)‹)Ké) %i)‰Ísãâ±oDÇaßpÆäääDFggg[Ø<,,bS$v£Íív¬XØz ö‰bAÉB IOÑù$BGˆ¤ +s‰…D„Qäç§H¨7ûŸ*¢š‘ܬ*£BÁS˜Æ˜!“†–ŠÇý‡€’ÚǤxPöHJÂn•‚R©ü§R¨~¸?(ÉÁ ºp’&êæOáö;“D +·—õÊ°¸d9v*©(e& gғìnûŒ F³©cЂqQ)¦·£8‡æ„Ñì ìéœéóÙ5L“y>iĈSð¯Ž.H{×°aÃÚ¦â)­Óxˆ:wÛi@¡©BxTˆՂ,UH´j•„'·å[uˆÇýy—¸qãÆu‹Áízh˜¢þNXç¡vÜǏ‰\²dÉ+¬Õ, ì֛fX°•¦Ý»wo4¨?Ai¸S1ÞPšAPšGPZ¦Ã,¬'(ma «=¬au˜5¬Þg «³¬au… t“ ô)kXÝ£Kï7¥ß”¾ãüð'ť祿”þñO@鑳•ÔCpŽàÚJÁ%»·$a*Ö³Ürv‚[†©xݍ©˜˜Ž©™©äÁTôòª•(EƒöÍ%³>Å \]á +x®r:¶‘òLYU@½lžë&-¥$aóHHÄ⌍ÏÏϏŠ-_¾¼#&///2 +Èdu™Ìv¬dS¤×ë5ÚÀMKFF†Þ љ°Îe#ő„è):<*$BV…õÜ$UØACH„FĦõS$ԛŠbrBDʦ±1jÐJÅ(APa¹é§ ÓO¡¥Ÿ”ÄàJjgÜRP*•ÿ\PšQP’Pò%s‚’Ú×­ø¨›HáQ7M +7¾K.ëT`§’*,À] ó9“ž 3©‘±e˖Ϛð˛‹jƒV S;³Tìd$ìe×(0Í 10/Òåóbüȑ#_LÓ¼4zôè®)ç]Î©ø¿Živn<¥ÕʍW´t3LäÆ´’F!K’ªZ¥°†_c‰°É]â'L˜Ð-¨GÌ̙3ûGáî}¨cá…cì˖-›b[³fÍ,ëÛo¿ý¦yÛ¶m+M0э¸ýßn8qâÄ~ý‡~xTwñâÅtׯ_¿ üñÇ×dJ<¸+}õÕW¤o¿ý6tŠŒ”Ô\⨹Ä2D¡%Ï:º•hÜJ Å­és+}ìüâ‹/®EþùçcéVŠ»yóæ{ W¯^=˜®ÛÂÛâë­OÏYáÞ³gÏÂt0È ‘Évµ÷,^¼xˆwîܹ}½,¨$cØ;x¤æÉdq§ãâoè&-¥bBë»pe×MÆü>–dz,©Û¡C‡Ç£;uêô‹[=ã`V³jicšôÕՂÉën¸ö3M:uAiAiAi.‹}.%(­Õa6”v”2IìAé Aé“Ä>b’Ø'¥Ï J_2Iì”ÄÑ7¶!VcŸPŠ¥¸•Be+ij+Ý v+ +p+áڑ„«I¸•Ö¸ðۖ¤âZ›“¶qãÆié«W¯—ÁJ”Ée*xÝ{y3À Ü3^Œd†Bëx0Îՙ²T‘G˲fCv*hÉCZJMƒLNªQ£F|BÕªUcâ+Uª‹mÄ]®\9[ÉâÀݎَ ʼn5m°Bô–¬¬,™b‚ÈFŠ"éý¢Ãó„DÈB¸# a΢V”êСD4"+„z­xgUĞ(šv5„T´R1J%¨°Ü +™4¹_„–þ“@IX¦RP*•_?(…퇔Ø։KM§%µ]IØÂILáŽNá–pƒZ–õ*ÊÎ$=I:“Œø½Ï™a/[Z0.m­É‘½{÷îì€éíêÄÎÿb4Ó«cÁ>ÝâKÎtK‚ù|)eüøñ/º ]Ó‚pãÿ:¥3&÷Øm3ðäÖ°-3ðÚ ðP‹t¿£ +S™–LÈj›‚—uHbíã„É“'w‹›>}zXܳ÷†=ê$Œ±¯X±bJ$nëgYqƒÿ¦eǎ+MûöíÛhº ß¾}ûšüÙgŸ•”‚Sd¤)2~ZR‚paÝJfZgáV²·’ÃçVº r; †;š;š€¯»? l±#ùäɓ︎=º&uÿþýKÓvîÜ9ύŸ:#?zB}ã åœ:Š=ö.Øö˜¨–éýúõ{ÎݳgÏÆi¤¥T\í \  Ç“q×OÂ$×KÀ…^?òx,þlƒАµ?³ÖsŒ´¶ŒìÛ·o{Þ¯«ïüªJÓ¦Mbœ={öX#@iª 4‡ ´XPZMPzGPÚIP: cŽ³}Ìi;¼HPºNPºÍlúÏxìð ‚Ò×̦ÿAé¡Y Jÿïÿý¿Z +˜0n¥ïMAµ•´%»éVºD·Òº•NЭt(þܹs{O:µ5éرco¥8p`…k×®] Ó6oÞü†¶Á †¤·ƒÓA¸Î^Ÿ‡ï9ž„käŘÖgÊR­ –¹JÇ=I76”\ÒR&i)=‹]ÉuêÔIJ¬Y³f\ö’è¸*Uª8cLöèüü|›‹Øâ7™ìØZŒ6ˆÁ +8Ñ[ :3Å‘DÒã)Šèð2!²v“„p« +‘£Q'ú‘Dób;TE´3…Å)D…,£A©ð¤á&5X +™Ô\¦ ât?-ýÈòÜ¥ T*ÿiò률dn”ä`P +ì}[\»’€¨[Dp +7÷¿òLá®,ã›ÖÐaW®£oØ°¡êLjBgR 36óÖŒU{Ìlg; nWLåK<‚ör pæ•8°Ï« °¯g^Iž4iÒË.ÈKiݐ.éÎ¸½îȲ|íh:ÚðlP+Æ&ZR +=€¢$¨éB7þ¯U*,q[^сoú|"ÌÎKñ¯¿þz¸9sæô‹ ‰Zºténæ§DÂPͲmÙ²åM Œ×Jó»ï¾»Á¶Øneì׃7ŽêaîNénܸq^†‰¾&ÃDL}W‚‰~ ùLô·!Mt˜\bÕ0+Ö9”[I ú˜i…[ÉÊ ÖÙJû؁¯q=Šn¥|µcoÞ¼y"þêÕ«‡Ο?¿7éôéÓےß{ï½ .vµOeWû´mÛ¶Ívû}þò‡20B=3•<~•Ý.}РA…npÎsi¤¥T,ƒF.\÷O&ã’o„I~"—üñqøóÉ<Ð(ëãYÆjæ`;¹½mðàÁ]­œx ¦±¯“2Ø*md¦Ai–P‚Ò*¾éFýzì³·Ÿ t”õN”γ>ÃUÖg¸åŸ…û¬ð•¾ç,ü‘³ð'ÿ,h•"TPòÑÒ#¹•Bv‚³ß»wï*ÝJç£oݺõA̵k׎Å]¼xñ]º•vj+QúK¤3·;cÙ²eÃ=Œ‡2׃A¸xµwàI¸Bõ²zS–êzX” ޕIKåIK9¤%/ §»Ù¸8% w1‰‰µk׎ÇMMtvG –nd4¸Éê7Y S$ÄhÃÂ6X!z Dg¦˜ð€l¤ ’¯PDǽIÇSç²_$vS„Ýê…(}ëÅnJD ÄPêÉêû ýËĹw±O +`_i0JÀ“êƒR¹Iø›4Ȥ6Wh†é4þÓh©”Jå‰üú@I +J=¥”‚œI¡ +'%‰¨[„HáÆ}™’Â-ùêT•ñuké4hPOýY8“әÔÌÔ©S§VfŒK;k÷îÝ;Ù`f»Úap_r:ôåèQ£F½‹í¿;#b=™:” “ÐÝ5uêÔWSa>_vl2 /ÐÉñ< FÇLðö™xrÛ,pS«,¼¶e& na& ¨…—BgHa:¤•Oi›ŠWtHá$͘1ã¥ÄY³fõˆô‹eölôòåËG;až&ÛÁ oØ`ZwïÞ½Ò|ðàÁ ¦ãǏo3~ðÁû à£ú+W®œÒAÎË0E ³¨‚ÒWÿ”„/ÃJÚ ì³Î¹Ý¢œp+Ñ:›h…[ɂúÒJ·Rä7ß|ó©ÖÙyÿþý«QwïÞ=óñÇ{ýúõãñÀŠ l?–äëj¯¤È¸vîܹ0•¾Œ´õë×Ov¯X±bŒC24Ù?Ž·tŒß‹nÆ>âl›FZJ%-¹`§ŸMÁÒx:Ë aVÀS‰˜é'ã!OÅáφ±XÏDc¹4‰êÑ£G3¦¤µ²8°}$f¿‹ ³ÿŠoßǂz͌e‡O2”^'(-$(­`!«·J[YÈj/ YaÅϓ2~ÛY‚Ò‚ÒMúõ>¥_ïýz_Ò¯÷ ýzE‰J”Â%*iAÉOK!ÝJ!:Á™‚:Á}fÃ׸mÇúȁ¯v) +àz&tý~,.ŸÃñW%Ê )¢d€W5·à:†A¸! ÂõõΜ9óž„ëÂxh[v9iΔ¥g˜²ôÓì됖ª“–*’–ʺ›5k–Ú¸qc«§§¥`q&'áV&!ÈdŠŠ­Y³¦#Ü…Elub§1;@¦HˆÑ1X!z Dg£²Qž,(z¼VvàíR‘°=†$„=êUQö5ˆ„ââEó +ñVªˆfb³ä×PZ¾ª¥b”ž4Ü$üMjq: 2©& -©¢J@K%h¨[ +J¥ò«–_-(±¸nxPÂÿEÝTV +wȨ[„/êVFò¥pWb +wuÖ¨££3IߤI“F:“Œø½…& D[ ‹1[{÷îÝ%wÂ/9°Ë¿5räÈî1`¤žq0•½@½’ÀC½R@2=SyBÚýú믿šy™¦_¤­è’‰G;eÁ®vÈƓÛfãe­³AA-³aD +³ -HP-hS +=x U:žÒ†¸Õ!¯}>÷ç/%͝;·{Â… ûÅ.]ºtp4 óh'IÁ;ú7"·o߾кwïÞXç ¦÷Þ{o›ñôéÓû .\8¢¿zõª +JWå{÷îÝR@ ¬RJ0šE äˎ)QЇ"?l…[IµÎ¹Ä´Ît+= [é³HZgº•>rß.Ó:Ÿñô‰÷¼Ú‘ˆ_ôŽH‘IÁ¯\êbWÔ·ß~{f*`qbÚ²eËF¥-X°`°<ٗC×= ,ú"óÃ:1¬mª8qد_¿f)˜Õ&É0ÖÏ$™éeJÀªhĚéOÇâÿÇàѦ,Þœ¥Ñ[ѕØ>’Éú¶1cƼlÅDõ¶`f™1)#M‹/žh\µjÕLVüœÏŠŸËJëXñs³_|· tˆ t‚ t†™b—˜RÿSêo”>gJý¥¯9¿#(N]C¡¦"âaPúï¹ÝÿÌ­„KàžÔ|‡n¥[t+]sÞ¹s炿åq– 8Ð7àº. ·àúº—㤠€ëHáñ$\//%z1XŽ²uæàÁƒ›²xw#ÒR}ÒR-ÒRUFâ*°ÖU®w,Y©X’é.ÜÀ¸’±B“ØÂ8>›LL¢¿víÚIÝ­[·Îé`ý®Ê°Î·äßüæ7wJ÷%PËW’”¾§uþã?%u¦%mÉZg£ß:Ó­ôß­tφop‡}n94}ÔXç= §NÚ–xìر IX•¼{÷îÅ)[¶l™ãÂLO¦LH]²dÉÈÔùóç¿ÆQë“&<|ãǏ)õÄÙCQŸAd`ùª¦I½zõz–?³\zãx +K£7aiôçX½K£·&&w°ãè9nܸ—m€Ù^VLÏ@˼yóF°4úx–FŸNPšKPZb(­ÑæÙû¥b*"ž +û §âoªsO¥ŸÅ­dÆç~áw+©%.; ®!Jåv>|xµkß¾}KØn®È>A¸ñ  cöX/¡^LÅ Œ;·Ïd^&¸óYoß¾}Ÿ$-Õ%-–*gtèС|:bNZaa¡7;Û…&%Ȕ˜Ô¨Q£8ö1ŽŽt8cÁ‘ÑXĶ(ì>Äd‡#!+Ð[ :3ž§3Ჯ•ÙèZbƒ"‰Ç7$n’ŽíÂd!7Ž¹¹IBXžG•ˆ¦M›>$b;T%ÔSÄk…ˆmS?HiS&vQ|—@ª%JÀ“ðA‰Up“ˆÝ‰íU¸š2 /“˜¹LÂÁ$h韶@(™’áJA©Tþ7ɯ +”¤bAIO)%< :“Š¢nXyÑ|«¢¨ 'Eø +'e3êVVò§pËØ}jë°#=®Ãïh¤Ç®ÜÄ œI]ºti+Z Z`*_°ÁJ¾,š¬9GÝ+7Æ}yú¬_<`§"3«SÀCýSyòÊ £Ù‡Õ÷zz!ݳðçËِËàÑçs;Ùx£].^Ö&ÜÔ*¶¶0Ò¢ Þ¯E6¤0 ¶ôâÑ6xr{7^֙Æÿ…ܤ¿š¸téÒ>ñ+W®|-vݺu#£ß~ûí‰Næ™v€Ãb¹…1*3t›Îœ9³ÇpéÒ¥ÃúëׯŸÔ?Îé"WJ7P‚m ô‚ÒoéÆ¥êÆøŸbÝJ v+ýџKü­p+YXÐÇ*N^Ñ:ۃ +úœ‚u)2ÇcÁzâ@}»ØU#$¸>‰L˜¼cǎ7S6mÚ4+eýúõS]—q®E‹ ç| JÅ öNÅl½Âäú\¤¥Ì¥¨kÕ*SÛ" ÈԌu>›&›X½iCt,°Þœ%² +£Xˉ—up°Rƒoõ² v¿—o?€ 4Ì @g(M5”f1‹J« ¥úãǏo'(í#(Ձ7N²ìç9:÷®Ð¹w“νOɬ÷èÜûRE~CPúŽQPûA¥pñ·çVúÁõ;Å­T‰òŽ¶¥¯dÀC¹Ýømo1·’A¸7„›Åì±)Jë®Ý¾^\ò¯0ý<ÍmIKÍIKϐ–ž -Õa¿“ê؂*¥cã)ën×®]–õ¤bÏIKÁ­L2‹©'$bÁÆ&€2¢Ø£Ï‹-(2b‚X“bŒÄ£+DoÁ“uf¼Lg«ÈF¼‹lÀ& áM’¤kÞ¼y„Ž››ÌºÎr˖-#$!Üõa?z!Jgz±'–@ÔWˆ TßY) -öS~¸r²]P•ŠQ*< ”ÊMÂߤA&áe9‘.L*-•¬¦¥RP*•_µüǁRq•¹%z…$bO(aý +ZҀ’)”°Î#•¨Þ †AùÀ¨›¯pR£nå%_ +wŒ=ç1ö¡zü˜g ØȄ3©µ CÒÁŒ»‹6´›mȐ!Ýí#GŽìådþn4Ë=Æg&`瘈èb]b}ú§ƒdúz ½3!=²!¯äà¦ú¥\<Ú%Ïë”»Ú¾,¬x›²xm«<@Vax¨ ªE¤0Ò2´öàyíÒù²4¼Õ .˜ãW’V¬XÑ;a͚5ƒâÞz뭑р„ Nvø°ïÝ»w~$LÖ2+Œ×:3ÌØf Ún#M›Fî}=ÌÝY‚ÒeùÁƒ7eÀɧ¥{á@éOłÒÿHAÊ­Û`EÖY['š'¯nÓ:$N^9ùu£nܸq2æʕ+Gcϟ?¿?îƒ>؏¸)áСCkñ£—%áç/H1¾‘²víÚ))˗/K¨æÂø t;{»HK<ø 7tJf–w2¦¶u+W±zz‹ÖþdAôf¬­Þ<–u­bTÑ Û9q tt°Rƒ}âĉÝ"§M›Öӆ‰êÏ2CÙCfŒ™yõ¥7J ×¥·J[YösË~Òáǜ (!(]bºØG2ñ6ÓÅ>c¢ÒãoF¨(þFÆ|´ø[[é¿B¹•ô­„ùøž´$ÜJšJ”š’åvƒÂw2·É„[–ºk×®ù ÂÍLÇÕ91ƒ•AYÂaS–z‘þ»1U¯ ^µ&-=GZjÄH\}fy×ò`—ªšÍ(?ûPk„f¥™2R±BSSÉÉ؂âÁ1 `‹¨8¬_G Ä ±:!f0Ù!Fžg°âz ¸DgÆȬ¶/ñ~}Ȓ¾mÛ¶’Ÿ!é¸×éð‘2·>ûA„$„Û¡"bwԈ覑PÏ›*ßO±½òÓ"ðáEU¤P ŒR Ö xR¹Iø›Ôò¾™Dj“̉„&ÕÁ¤†ãJVº®ˆ–)Á[ÃH¥ T*¿BùՃ’N%ˆÞïL2ñ Ÿb㓋¢nñññ±þÂIJÔ-"(ê–/á[U•ëÔ©SKÆZ}vŸ†zü¢&lU…FìpíL¦ÎæÞ½{¿h…©|•i)½h ûFMš4i@ÌôéÓŁ‘^K„Ì`Ø`D»a 2‹µ¿F³o¤[’½š 閇G»–]´hQçrà¦åð²¶å`a[•ƒýhInj‘GÉ¥ÐýTHoTk–SlÇdŽn¼K×TÀËÉ°=½×­[70h0<6y|ÔΝ;§;öïß?7’íѬï½÷ÞZËéÓ§7™`˜wa˜À'ôLÎÕ}öÙg”n”>Q@‰Y*4ÌßÐ0GPúƒ”ã=Â0Ó Pú'´$ +,… +ú¨)2>묜¼)26ŠŒãΝ;°ÎF]¿~ýD =c±gϞÝë¼=þرcoÿöÎ;Ί2ËûUusηsNäœÄGTD$ƒ‚$A@ÉÐäÐäÔäÐä&ç$猈*æFGg6Ìλ»³»ïï÷ÜÛ·n_n7³û¾2Ûüq>ô­\OÕ9ß:ç<çø=º>H²27¢ vëÖ­sâ@‘Óâ + Ǔ–FÆHsãAKýâIKq“'Oî7~üø.±làËÒ1ìyϊêm},Êëm<üÓÍ®elÓÁ ¾êDV~ÙÎIu6¦¤±‡Ì` Æh„Ã=ÎPšjäx.¥B=Îo£gºC p= ¸%(áʀø&+5ÜæxÜc¢Ò'nI\åˆñ(ûKÄü·’ÝJųÇ4*¸Þ_‰2¢d@ôÜî¢ì±`;¸sçÎm/ +Â-çL¸,ᐟ²iÓ¦‰LY•†‡?—¯ú0i¯;i©#i©-i©ó–žÉÀ‡É¬ Ð ­wïÞµR¡ ª¦@-U`¡ÐŒ$(£”D(£„x¼«±¬ꋁpûÀV µ±¬ºÅar`‘Ýúô6[hÍØV˦ÖÖýP ÐpŠ{–uxíe-TŸ¬ÅÑd Õ¡BŨPE*T–²T ¡cqºÑE4]\¢ò-½y4½«"“л"¡Iu0 ½AKj$Nä-©YÞj‰ÊÒS–T(Š&ÊA©\<ªâQ%¹8()ÅAIK¡£P£n¦3©ä¨›T,êVC®_¿~]…)Ü +鑦Y³fM´ø~k©Ã‡Ý z܈Ž†>}útc¯Š^f6õ²æåå ´Ã¸æ:óóó‡¹ñM<Â}?2rd<§Z%2¾ÀžWÃÒ@2C2`eÑïÃN÷}*’n*ai÷ÊX¯kOÇ*ج}Xñª€›ÚVÁ®ZW¢¨HQ¿µÉÆÒv™\/ [tbí㗓֬YӓN“¾±[¶lÉõÁòìÝ»w¢ 69ߎ/ú֓'O®°œ?~½éʕ+Û °eûõ°jGu¬åHPº¢ùì³ÏÞ¢ãn”è?ø[@)-E ÂE+èH‘¡u)2&XçÏÌ<+ =^6Xçwì8ç᜸Ž3.\Ñ1®íu/“°|¸Þ-~ âZÿ–ÇìÚµk!oάXR ii\nçÈ8ÒRi)nƌ¯ÆqN«^ueyÐN1@¦~Xì}¬ù#„—²NV{7VyÉÅrXNQ´c=mLÛ·²Rƒ»nf&¹ €6ÅPšÅúè Y}AiAi› ´—•Ž°RÃ)–´º ùàƒ®+E¡Ðw +ñ·Ïèá ÄßdÜ¡eÜ«ŸCñ·¿Å­V2@[Bƒ“ˆ’á¹Ý8Ó`n7ëv{EÝnú,c.]º´+®(·:ñСCK’ð`ÎcÊÒôT¶çcÁ«t¶$-½š!¦8€–:0×*÷¹iÞ·§2† ò†ãê¥õíÛ·F*tX娪lV MO‚‚JN€‚Š‡‚Ša,o „ËáðBXÝf–šXÏ`~è­ØLg†Óš± ûÓ¡~)zCÖᵗµ8¤¬éׯŸ¤¯Iʀ$çò Aƒ‚ê! ¤ÜÜÜR„XEÜVâ®$îYâ1$MÂqƒh%”´PÍ*< ÷“ª†EÄNÕÀÂË$s"<šòUi)"oỈSë-=¼[©”ÊÅ߉øû%üfäÒ²DݤbQ·Z2N­'¸<¡àğѴlÙòy-®­µ×Û^ûÒÅõÕÃ4tèÐÞØËþLÝlŸ>}ú0tûlã(pftìòåËÇijlL¿˜ÙójD:¬ó°Lˆ\6¹X¢o%,xµ2ç•*X¯kUŒNÕ°Y‡j ªb/m)ZžZÑéԊî§Ö9XÚ6 hõb¶è˜ŠtM†%ô>±Û¶mìŒôîß¿‚ –i†6j¾ 6y™å… ëLW¯^Ýf¼yóæ>ýíÛ·ß (Ö²ü5AéM k)°ƒ”>%(}EPúŽ ô#Aég‚Ò?¥¿D¥ÿøÿøwYˆh´TdÿRÜ:«3¯A8}(ÆüñKƒpfXç, ÂÙ)´“(°Îo¿ýöi׍7Žº/_¾|ÀsöìÙ]Þ'Nlö>|xß¾}Ëbvîܹ fóæÍ3IKSbqóbYxŠ³scºb¢âk±°Ó=bXÎ3†ä?~|G?¡ˆD;°DVրxɍ¥\`¤.ì³×Ý1sæÌ^vV ²q¼C6̂1cÆðL"(å”æJË ¥5úS§NmaI«Ý:æŒißzë­ãÌ;§t\erý[LTº£ð¢ãà |ËAùn¥ŸäÒºÿ¥‡r+E‚ks»ƒu»ßÿý‹žhA8<pх‰¸ü¦,ÍNa]*ø~,?$†¥34Ž÷¨'i© [ϼÈ*-3ðMÒ$cÔ¨QO2אe꤁(ª§‚#*¥€#²’¡ÃҒðš&%@}ÅÅC}ùYàÁÃNþgg«KÍN¬gt` k«ëÙ}HNJhZ3àDcĞ5P‹¢ÇÀFցÒd-Þ}Y3|øpIø&)#GŽ”dœš$C)„ 8ý !Ö‚;¸«€àî%\ª$á¸A´,%JÀ“PáBS Õ,´²PÈ"D't±Ì©&‘Ƥ†ã"hIÍòsâDˆ ÜC̈́+¥rñw" PbwïHPi ¡¥ÐQBΤhQ7Dԍê¡b(êVGÆù5dÔíIFݞÕà㬅ØN‡+輻.îf„ªzÕí؏s1#e(mãH×¼yóF{ + + +ÆúaóbéD`òp^ÌñX‚Ñøv‘1483¨"þׯ2¼V…ˆS ë½\ ÜÔ©:6ëPÜôBuì¥-¹©uUØóVU(è~j]6¥m6WÉÄ/¥a]8÷ú•DXâÞq;vì³gϞ^Ø£qî#GŽLsæÚK-/^\c¾víÚ#lòlòaLÛ)-lòE lò ‚ÒmÚä{ +@éÚä/i“¿¥Mþ¡8(ýmòŸK%Š¿§¥€‰~@Š ]%´Î"÷½Ž#}&ú2Ì8É{"„0aÇ%\u0)݉Ë:å¢wƍKÝïaʒ÷øñã›|¬Žàc‚·wh¾ ¥N‡‹´¤%–ñŽaӓú‡b€LÝüé®~Îb÷ÁlwòRxðg'¶Øëâ†=™}öº;aÞ{98µÑÎ,e3p¬¨ÑŒôD3™Mì³bdájgϳöçF=³ÐuÌGç,Ä£œ…xFKG™†é?¤×wèæ{Ÿn¾9(ŸÜJ¼/t+ýn¥?Ê¿Ü­ôoÑÜJQJDËíþ$Ûýå—_ÞQƒpî¢ Ü‰@׶7W¹5þäɓëpå˓p&ãnÌLÁ}™”Š§x4i)—´Ô7CñJç‚r¶§(,Ö<|ژá¸ße&cû“Úi@ˆj©x/+¦€n2“Á9©,š˜ö‰‹‡ðÅB¸9yÑ郰y°Š…óÍNladK†ê­@-cêZ0EcÄ{®À/Š$#ëƎ+kñÚËZ°²¬Á¹H°²¤€•%O„$ã$ƒÏK@HBà) ê!¸E@p/÷'q÷$I8n¥T‚ð¤r“ð7©È$¼L"µI$4 …,&Ð ]¬Ò’ª†EޒÈòŽÐÀjN-ãý ÝJå T.Uñ聒Jx­TFÒ@ ¿AéÁQ7©XÔ­žüÄOüFiܸñS|ˆ5ÕàŠZi¡sÚëp#ºè¡^{¡ z³Ÿ×@ ´Ù ä”ùhÔzž +~¼VwB`gB4ÿxö—ÆÌêŒ-[¶ŒÊ†I^"·þP¢OU,íYëu«kÚ¹6ëPÜôB Xñ¶ä¦ÖÕ`k[U¥ û©UEˆ69X¥]WfØÎ)ØUwVA~-¶g@ €`Ñ ÏOø©N˜§9ösçÎ-¶^¾|y•ùúõ뛍·nÝÚm¸{÷î!ý½{÷NêÀ´ ëš¯¿þúm‚Ò{´É”¾ (}CPú=Aé'‚ÒŸ¢€Òÿ Ò¿…@é¯!PŠ¤¥¨A8zD„/CË_À—AÏ ƒpߑ–¾22gb(ÊÌ œ…yoÞÓ@ˆß™ê³µn­4ÐC•T N…¼¡ɀ§”$°OBD,ë=x9ƒÑ͜|‡«Ø˜Žoq´LNðÑŽ½èmx±uVp‰Ö ҘÀ*¶£Q àE¦‘u8Y‹—µxIƒ³’|)I +žIÁ# ÉBàÉ  g_Š«ÁÍ$îEâþ$îY‚h%0J”€'áÜ$œN"v'I¨u¡¸…¦úY¨f‘ù-’¾…BV#q"oI”sâÔÉÇ"§¦TgÂýB·R9(•‹GU< $—”𧑠Ì\Åʕu“ŠGÝ䢨[cFݚiÚ·oßV‹ë}I‡›ÓM¯ÏWPÈýLТƒ-P›ÃmPi£é?Ès-^¼x‚—óÀý€˜ILž”ÈdU–$ž¶mÛ¶q™€˜1Ù°Î#*B ©Œ?Vł¾Õ`!zÕ çԀÙîR›½TvõŚØK[rSëê0å­ètjY…ÿ«Äß*`•¶ÙX¹=¬S*vÕ-yçΝ½Xl±,,ñPÿáÇÇxŽ?>ÙR˜eÇý"+¾í Í°[M°`; Jõ°jÇu°oçJW J·JïÒDPúœæøk‚Ò÷¥?”þHsü4ÇÿLKü/!Pú×h FK©¾Œ-ї¡/ +Â}k`ìÉH\ -}hf +…ÉôËÀì‘ Žèœ‰[üB&^º,dÿ,‘éIz™2©3¿«³?b¥Tˆ,¶FLcŸš¤Dˆ¸üæç„FO,Þ_'{0Ú½à +ƒ§fVö0:f̘a°cÏz+¸DgÁÐjÍs ¬+<Š§!ëðXÈZœ•¬ÅS"k@Ò#-)P’‚s–d!@ȒŒÑ)šà*Á-$î@â®$ìY’pŒ P ‚ð„g-ÈMôibw™„—I愃I$‚ e.· %¡¤…~ªYdy ­¬¦,‰ œ¨åÍ­Tb¶R‰ ‘ÊA©\ö†ñÁZõg;½>œÚ؛ˆ_õrš–G2’†´ ¦­Ÿ–n “3ëÖ­aÇc1ֆQdÅHO·€ +æ²¥L c´Òtúôéõ¬º•U@÷èÁ±‡8ñD p :jYڑñ7áVº§)îVRBÕÔl%áV’èVŠL+sÝîû ,©A¸÷Yð*„s‰ ®ã¬Wtœ´ôz ®rw®wK<®|m"îÁ2Ò҂ܗ|ÒÒDÒÒ(ÒRn†¢Kj¼’‰ۑEZÛfáÍk–djL/Ó Ì5`æwmN–«Æf?Ùk:“]ýRÙ11¿Å&`©ÝL?súñÛXøÌ «&&U=3ñuVŒ¥Ö²lÙ2 €Æˆ3P P…}ûd^vY °–58II– ²¤à5•Œ%…òÜçϟŸJR˜c3,±¾õÖ[«Í¥Í¥Ý€Ò!ݧŸ~z’ tAóÍ7ß\'(½MPz–øc‚Ò´ÄßÐeñ{‚ÒO¥?âo”Š%*i©tPºŸ–¢á-©A¸ŸtÌÊ Ð3u„ûÌȔ%ӗ_~ù¾™)K¤¥›¤¥«¤¥ v&x“–Þp–v¹Ø˅´´VВGÐ{éza¼fø`­&û`¨Æù˜b䃕æÃHçúR#7õóö¥èCÑۃßú¸™‡L÷b kÛqÀšŽ`Û½1v ÞÆwšc>ÛPZh>zôè2–K_cÂm62'Pá +„wTϸ•.äVÒ2ªÅ\û€[ISÜ­¤Ÿ§º•äb%»ËàVŠ„SÝJQÚó‚pœ%IZ +á>ÿüó·ÙîºK43¾{÷îi¦,õƒÄ^¹re'iiSÑÕI ¥%É ¥¹¤¥éi¸MãÓqÃFpÄ ÎZx-¸Ð- w·Cnvk"ÓóY›§Ùè·t5Õ'7Õd÷Ä*ì"—“ +‘ÁFÈ)Éø-ýcⱞ7[¸˜ˆæ ôÚ8ÃâÆNMN‘Á$ÑÛ0‚: FPkÆs 1áíÖq.Š8£èñ”È:œŸ¬ÅË.kðäHœ³¤àm”¼Î’ŒG*(0Ü!E. n!q[‰{‘°Ó P ‚"‚Ix‚ÜD'V2‰èœÌ “HcŠ %¡Ñ…ö嗄¦JZ ‰ZÞ¥»•ÔIpeMë.¥rñ苿+PÂo"êfåznáDÝD_7ì42ê&‹º5’uSDÔ­cǎ/jpÑ]´}úôéÉÙÁý8ó%—©#™¶gŽdƒfÊðJ¾ªt«aώ¿Ìa>õl‹™EtÉÏ8xðà´,˜ãÉ`ÇUÆÿFW…V ÕÄ*}kÃ8ô¬ÝÙ­4f§ºdŸºÐ˜m‰L­kCm¶¤¿©y Šjø­E,mY뵡›ê…Lì cö÷2M/ÎÂî â?sæÌìÑd,Ó,;Œð"+Œp¡Fx£ Fx'Aé €q\P:§t\%(Ý"(½KPú ôð×4Âß³nÏJJT* ”àeú•†^-ý%"eIGŠ^¤,Á:FKlÀ %\ÖM+¼m`Â󤥓N‡#-íwž={vg€–ØÎ-h PàōË‚38 “é`烝íc="Ó é rÓ/ìjŠ~üÙσýÝl$ãfF² › q +P®(·3džÍ´âó-@µ%fœÆ*“(ŠSÛndxÊÀ@«7œÐ3x¥cK¸•³wBn¥O4ÅÜJß+Å'Á‘–îs+ïéVŠR·ûá‚p,GÉfÆ÷Øuæ.S–Þr‚–®¹AKHK§| ¥#1x÷‘–¶Ç7$‚– +IK)x€g§âyžš†Ç;/oÔ° Ü¿™¸“½²X # /]{"S+"ÓsYàœFY žÇ«›‰—³Ë×WfGÅìTˆô,HJÂ*ñ‰` <¶ð°.„“ÓTíP«;5»@FF'ÆÍ`ÇÀë­ ¬¢5cð4F¼~Š#¨èñšÊ: £¬Å™ÊZ¼y²*)xÅ%—ò‘#G$ƒR„àҀàÊ·•¸ J!ÈR‚ ÈanN'L"X'¼L"¿I8˜D"x-‰HœÈ[]̉)Kj.­‘­$rDm¥_S£nå T.ñk%|ŔJ” ü_0êæv»m|“EÔÍS<ê–Borf êV£FêŒÌוñ1õ'ù´Ü¼yóç\GFÝ^ÒàtÓöïßÿ5Ý°aÃêóòò†¡‚ƘðY:Á•;…³¿g8 ¸g¹ñ¥)Œë<–5œςzœþ<'ZoV”àŒl¨Ã) &T†S¿ ¯1¸&VéWŠ¶WlÑ­.ônçºØAûºP‘íˆL­ë@´¨=7¯‰ÿ5¯NQK[0Š×º¶h—…tH‡¢í’ Ü#ñøñã}Ø=b°öw”÷âŋ9 ,ŸÎ l¥å€Òz‚ÒvÃG}´Ÿ t” t† t™ t“±;4Â0eøS‚ÒW4Âß”~$(ýLPº/þö@Pú(kÊÒ?‡R–-R–´T”²ô%S–>5!> аâË|ðfˆ–ÎÙ9NВCÐÒ¹sçv–6‘–Ö¸qÿ–{p; <œÄÏp\¾VrŠ—u™Á4†È4‚^¦¡ Ìåzé8ò²Þ:ÅÚځ2’Å`øy¨ w„öm´£”&Û1nùlÀ7׊‡¡ÀÂL6—Ygb<Šõ@w1P œ2¦[œáÌÄK:V n%m([I¸•4t­©n%ån¥;ó=dN ÇB[™pś3eé¶ç|Ӊ³¿âÆw΋Gï„á!ÒÒÞ8\ïÖÐÒ:ÒҊd܍…¤¥™ix!&3p=&ƒ 21ýXa£GnlgQ #w¼ËÜ?› ây’f€ê0«©Ë×WLƒÈJÅo©l#”˜„õâØñǏ!sÇb´œœ‚aób|-|“M.Œ–‘£¥·á¸:FKµf ™Æ„gCÃ"XŠŠ¢ÇIÊ:¼o2Ëœ¸¤9qâ„¤à‘’¼~’,.+(0Ȓ$ÿ ®ÜLâ^$ì/ÈRžpÈ 7 “@&áeÑ9‘Õ$RÂ#hIDâDޒÈòJ_èq¡¸EuÊ·’ÈV­NÔIp¢¶R‰ñ·ç¿E£¥rP* xô@IÃ7T×I€’ž"JøÍÂUÔ¨›7uK ‹ºU©R¥²T«V­šœðQ_þÝï~÷„üì³Ï6–uSBQ7 îPí Aƒúêð]6X?~üø‘ÆéÓ§ç™æΝ;™Í)¦Ó9?‹‘•¹n¶;õŠb†ì“ÏIMIÐpóSaçd@áÍ̆%žVbReˆ¼j#k`An-¬Ò¿6V~µ.©{=èÄÎõ°ƒõ ÛQ´&7µ¨ ƒÑ¼þ׬E5,h^Š»%ãym³±m{Y§Tì¹{ÔõkLÎ.hãÜ¥i¥y6ØߥØß5¥-FX°=¥Ã¥S¥‹ôVÜ (½CPzŸ ô1S†¿ (}KP +Æß`9ÿ”‚n¥"Pú÷’@)-Ã?¡ÈB‘²FK,R %vø`ÊÒ'F¶G3}þùçÞ&-Ý°r:œÓá-ÙAK‡IKû´ÄfÁ.6pu³Ó†‡ó÷=¸ãs9ªùdà)t0M 2%2$2 g.Ó/,v.Å`/ñÈ#–æºÙvÏÅZ.< £œýèÀþ&”¦ÛqŒÙ6m!»ð-³à V›q.›D‡Óõë×÷±ÖÕ3¡…[‰ÉdW™Lö–p+i#ÜJ¼ÅÝJ?‡¹•pÿþ,—Í­­ÖUé3áÂÊQ†53A8Ö °‹”%u4«‡m»Ö‡~‰´ôB}ëÖô2µ¨ Åݬ6Äóµ(˜ßô<3šW‚Úl•ƒÍÚfâÒ°¿.É8F(ó>±Ðã¹lO:Š=c'”ò J J+Jë JÛ Jûõ°eGu°jg´°o— J7 JwÖù€ $âo_2¬óAé‡_‹¥-•!Á[‰HYb‚wˆ–~ -}§.|m8¦Ã‘–‘´dew¸â´´—´´Ý ½É…›¸†E͗3y©€–sÃq3é`šJ·ÃDÆäƱªÀ î(ºšF0Ÿ8Å0þ9ÜCFò`•‘nNy'Nç¹°ƒ‰N€ÒTÛ;°ûylÅW`cü͊ƒ¯a?¾Íf ÙNº•ö ·’‘n%ë]³˜ÃU=ÝJ:&×òµ¼Tá¾Ð·±‘´ô#iégŽV¸[©ˆ–ÊìV*c9ʈ”¥¯IKŸ[pV‡R–î8pÎo‘–®ºqç½ ¥“¤¥#¤¥}q¸Þí W®\ِˆÇve2ø  /Éì4<ÙSYÎËÄÃ?ŒSHûgz±2Y—lNe©Œ–9¸ÙMX]¬á©!ãtu3!ª3%¼R:d±ük‹'²>k\"ÆÃǤBw,vêd[@ mY8ú&'Žktà ô6¼Q:+Þ(­ãa2™Æˆ3UXÑAÑáÄe°GÖ⑒5·nݒ¼e’‚Ç, d\e˜TÁ¥ÁÍ$܈ A xÜ$œN™„—ID焃)‚–D$Nä-‰,o1'NáD½%áVRs»E¶’PÜÐAM­¦u‹ø›PÍóß*Q)š(¥rñh‰G”bccï%”LüSDÝl\ÏÉ7ÙÃmƒéIx·"‹PÔgyÚß²(À32ι¹Œëh§à;+¸=4ì§Å‡Ø>ÉFëg̘1Á0oÞ¼i¦¥K—Îb¯ù,ŽSÀT†%.¾e^ÑzêkE<ÔërF¿–¦B½d@¹-ȆҟSbFeˆÉÕ8­&–Ž¨ d\+÷­ZêYÛ¾\Jºc:‰êÃ8´&2µ¨ѬDÓZ5(ªai³ÊX¯EØÚ6YØÁ‹éØU§ì¾{"ìþkœW4-$†{¡wǹ Ç§9 •ç±ÖÐR @i  ´• ´— t˜ tŠ t‘¦÷AéšÞ÷™Ñý1Aé šÞoñ7˜J5þö!Pú—âñ·pZ•–ÂR–ŠÓÒ¿(¡*Kj‚·–Á&¦,ý û駟-} ¥o¾ùæc#§Ã‘–޲ܻwïiébˆ–Žq6àëÇv ZÚ %¶Û`òRÃqóè`šIÓ4f0M"2÷ÁêŽ%2¦«i”æxd@‘<,Éî ™z¢ †yŠô5Ãޝã`ü͎Á[jcZ7ÍñöšÙfVÝJ°¡ÇwîÜ9c¹•-}›NÀwéüCö)ÙöKp+ñn0÷“R”Ûý¤¥0·’üß„S{Â…× (JYúʌ¡øŒ´ôié};û㐖Þta(®x@K缊~0áX¶Õ‰ÇPl%-­K³»<¯ËÂTܗ™é¸C“^‰»6$‹òñ潒ñ蔃ñhÇzÍs0(éoúEƒ,ˆÚ™U3° “Ã3R1 +)쟒„Ä$`WÞ8ìÔÅ÷×áØ[Y©ÕÌü5“g``¹V½ƒ¢³àÔ´&à‘ÆxãÆ …Y÷ +ç(Ê:ê_” “àD%J5þ&ŠPÖªU+8ÿ-Z¢Ò#( oT9(•‹_¯øÿJb~E@ ïŒ&Jx…t$#=…"JXjçz.nᥗ8–ïV"wšÆ¨[XQžFžÕïXàY¹U«V-å:¼¨à*»*}úôyU“››;@;zôèaºI“&ÕϜ9s²aá…ù¬ª2ײvíÚE6ØÁ%Ì9Yî‚Í[é…5-d‘ÇÂ8谕‰  ¡å—¦Ãð-ʵ̫1³2ÄÔjøm|M,U69·.r¿z@œ^õa º5-ul€]½ØÈԆ¦ŒÉ5« є MÏÕÄoM«A<_ë5göS+†÷ÚÑõR*vÚ5 êÝÞ/:v(AiŒzw +Ai6A©€ ThúðÃ7ñ•¿K öº¶ì8}çJW9õíAé]‚Ò‡¥ÏŠÇß~$(‰øÛ?¿ýå¡A©äïHZ¢o¤8-ý¢¥ß“–¾Õƒ-¦Ã…hé¶JK–"Z:]œ–öh‰u ],ÍTïå Ç07¾ÃYŒ´N§ƒi2‘i‚qµ21ÌæU~íÁÒ±˜èq¥ n‚’‹‰JN&*9s`Ûq´•ì^¼ÎJ·’…Õؙ f8ÓS¬zÞÀ–¹z^ƒpwt¸¶€[IK:dîkMq·’"ÜJ¸W‘n%ù –D ‡2Ô `«@ÒÒ§LðþІ¡x׎Ó}ۉ¿AZºDZ:ãÃe‹Œ-튃lNÄc»&ðÒ¼.óÓðFÍHÇ3>1æ‘Y¸kƒ²qÿzgsºhˆç¥1 Üô|îóÓÙ¿¥¨Çbc5Yôµ2+Že§aåt–KNÆâñÕágí1O,FÚéÇ(ØY€ÌêÆqÍ.À‰‘.G˵ê¬85­ã¡14…uV½’Y#TfEu™ýg$D¸TI¯Z@Hü3 ¸Š„Q’¸Yž7 d®&áe&“SiIDâDޒÈòA8QA@¸•D_QË[d+‰>qÐpAµ®ÆßDÉîFç¿EKTÝr£ê.=£»”ÊÅ#-PRŠƒ’¶8()ÌüÍZ<êæã»Ç]%1Ğ( + ғX€¡ø†’( +€3m*·iÓ¦µÜ±cǗ\t7¥_¿~½5C‡Ì&˜#Ùài¼~Μ9ÓXw–©°°pyÆ ‹Yiy¹z·ù «=`š5~z!8Ýlu"Ya +Xey:lÞâ,hÛ fWƟӪAL¬¥£kc½¡uaÔâ¼VJº{ì¥iéEÒRÒR z™šÕ#ՁxŽ9àÏUÇÒ¦U±^³Jà«9ضM&Þ> ;휌c¼’¥Ú‡³°û€£JøTÍ·”°ÖÐr3ôóz‚Òv@i?Aé(­î¦¾\¦Õ}“©/·é£¸ÇøÛ'¥/iu¿ ÅßJOëþ·°´îA© ´D£ + Z +L‡Ó„¼£ÐҗÅié½-Ý$-]%-]ÐLôÑ0ZÂhi #³Æ[¼Ü#h‰û½,%Íb•3ˆLS|ô±È÷xG䦱Bx‹D“œÆyJŒâMvcÛi.ÆߜŒ¿99ÿÍÁcØq´Õla¼ÑÊ3 c/»Î2 ·,çYÖ¿ºÄ²7„{›A¸wu!·’€û%ƒpߒ–~/r»…[‰´t+…r»£ÐÒ¿—•–4¥¥,ýHZú>²Ä~LYúĊ¡ø€´tׁ¡¸EZºîf?f/øà´Cñii?iiG[í$áòW‘–§âu™“Ž7eZôq 4ÏÂ]À™ ½rðvÍÁí|1ԒE3šžÑéԐÁº:ՙéT‰¥Í²R½©) ŒDæƲ¤†/{vÇàÀƺ“¸j`q =«é,x…´&à‘†àªÐͧ0(*sf¢ÌÓ2{ôɬ¨.)ž€¿øâ‹0! ÁÁ•%AP‚›Td^&á`RiIø–D$Nä-‰,o„D½%áVµ¼§M›, &Á©iÝB‹"”êü7¡©…’úYí–QQ©¬Ýå T.iñk%¹, %üÏÌ"êæ`ÔÍÍÍüÜA|XQ€ˆô$à©=͵Íä^x¡­ŒËê¤àò{( è§1bÄöÃ&˜“ôP73 PªID¦ !dà&þž§ñôAMô°F'ÕMscÛ|ão|†:1 Kì‚f§[Ɇgc‹Í. ÝJfXÉ7أó¼‘5YÛá&ƒp·éVzŸãt+ᢿfî{ nď¤¥Ÿ•¢Üî"-=À­T*-•R7€ “Cu‚´¤¦,±Ï²Cqώ3½CZz˅¡¸êÁPœ÷²=3iép,hi_<†b["àd};ï¤àF,JÃ-™ÅÇ{2]§cm’»ÖÓzä`P:åàv¶#75§hLxú=O XôµÃvU3°^…4l‘Á\ñ”dì%!oOL<Þo,†ÛåÇÀÛ½`$+§‹š8 £'dà\oÖŒ·GkÂ9kȬ +=| + ·Êì™(sf¢Ì®3’‚OIÇJ2.:RH\\/OÈ$ât´$"q"oIdy‹ œ¨  º•D¶’è|"&Á‰®º"þ&ª¥¯ÎÕºÕD%Q( ZF÷מ,¥rñH‹_;(%$$„ƒPHK( d 0QX „Uœ\ÙÃÍbøñLOÊÉÉÉb°½’Z€¡ø'”oÌð| ¹}ûö/Ê/¿ür÷¥—2xðàšQ£F ×Lš4)O;sæÌ):¨›Y(žÆuëÖ-1oÙ²e¥u÷îÝk8É{½˜Ô°‘…°7ÆB™oH€¢]— ݾ:ÚvEĒ +ó+C̪†SjbÆՆ®Q[ ®õߧvÐã1¨¾.Aqw -µ%-µ$-5cS”jãÏքhR KŸ«‚õž¯ˆÍZfcm3 ê;”º$â@= JýJC¼¥1¥É¨úY6¨úEÌp.4AËo4@?ï$(¤Á=F÷Ä9Ü+LTz‹ñ·»Œ¿}@Pú”n¥¯J߅âo?‡âoÿDƒûç_+-E$xi‰i8!ZúI[l:œ ¥/ŠÓÒ»Z‚)z“´t…´tþ´Ä"Únæ]³cÜbƒfl'h)ßGöáÄ©ÉD¦‰aÈT$&Pb’ÓdVÌyÊwÔÏfÖø|̉]á –ÙñDl²Ñ­deú”'tȌS;ÎF}gè˸ddéïm½p+qªŸîÛo¿ º•~üñÇ [ wã ÂýQ¹?·»d·R‰´TrÊRQ•¥?êCU–ŒLY2á4¾2c()K6 Å{vðÁm'ÐàMã²Cqև¡8ƒk{=´´;×»…´´6À²,Ïó‚4<Ùù¸9é?•…ñÌú½s0(Ýr8"#ӆâyÂÓÓt:ý&ÖËÂҸϕӱrv*nvZ +^µ¤$ì*Ž3Eýqؽ;rúpH›·ÝÂä>]±F~aèù…¡ãC£e†Ÿ†Ÿ +ß…i~2GAfâ˜Ì2÷2 ^Ilf,±…¢$’\*q=IÀ“ŠL¸/÷ђˆÄ‰¼%‘å-‚p¢‚€p+©ÙJ¢ó‰è'ÒºEümôèÑáóßÔD%µPÀO<=£ûo™úVJåâQ +(iŠƒ’> ”𧅠ì|u]|­¼|­JIObQ†âŸdP¾ Ϲ•Œëè ã*»É}ûöí­ 2d°fìر#5S¦L™ …’™®ƒº™«/,,,0nØ°a¹yûöí«-0rëìÐÀ99f³h!F‡ýÎ4ۜ¶!fvm´íªLjùˆE•ðۜªÓk`• µ@K£ê@5©Zê×Z¯çcL1"-½DZjGZjٚ°3˜ž«G<ªCPª…?Ÿ­Ž¥Mªb½¦•°Eólۚ ôB*vÚ) Ç菣õŽfÄ^[#ÝÐ÷J3Jó JËJëŒÐÊÛ¨ê÷1Žs„ñ·ÓLTºDƒ{ƒn¥wX(à}º•>&(}!‰´nXÝhiÝep+•JKK.‰–~P‹„hé¦ü DKoGн'IKo0Ú"hi·“éՂ–ÜÅiÉË6e¤¥9>Ò|Ì="2M&?‘É/sEb’O€€jªˆÝqRÝ,7³Ÿ˜5¾È….s²[®ZoÇc±Õ†ƒï²âñ9`Á ½a†©<ÅÈÏyá®Ò¡q“éø·9xïsð>&å~®-r+}r+‰Üî?)÷çv@I.›[©dZÒÞ_eé ÅïIKߒ–)KVo,Žáò_»vÍáÅq­nœÙ‰s1:pVÛû￯gíw+uix†4\‚¢â(ü̐92£×2_!‰EÉ$&üIrq! Á¥× p“@&áeŠ %‰yK"Ë[á„[IÔ[ÙJ¢–·˜§ÆßDµ€©S§ç¿E$*uèÐA’ZµjÔÙjF·PÒ¢ô¤:õ-¢F·%8‚xʐÑ]JåâÑ¿nPRÂ@ 稜<¤ €„‘BDݬa ïã¶Áô$¼Ý類%jzÒãLOzŠ'ٔáù62.¦£Œë}Eîß¿_eøðáC”qãƍÑ0ꦝ7oÞL¶ Ÿ¯_½zõãæ͛ M0wkÙÚt£ Êw ­Ú67í6”Ö6~Œn%œlæGð†4hÛ5™À”9‹+áÏyUY&»V™T +©Õ<´¶íߚÿÕÇ°«n ¡½;6„ú¡!Cj¤¥f (êB4fiÆ5 ž%(=W [Œ–p½wMœAÆ{pƒ´t™´tŽµ¼Oڋhé@-ÑcHZZí)NK>•–À>Óýôù™ÁDZšì/â&áošBÏÓTÕtz£f²"ø\Æó2k|‰ ¦|¥£ºÖÁzœtµÃÆVV3`[ããfº•LwïÞ½dÄ9_gî½wéü€ÆúSá¾Ôbð¾!-ý^SÜ­¤ËíþKZz€[©,)K8FԔ% ÎêÒÒv'-}LZº¢¥[‘´Dßi鈃´ä$-¹X2‚–¼,› %ÀÎ\«Iú™¼DZšFZR‘)(B ä5°òæ<Íg<¯@qbñËUN ízt«È.Îà€•~-ì^ÇÞÆçMìÑ ÜMFð6ƒpïÓµñƒpŸÑb¥ÅEÇ Üš‡p+…’TtÛÿÅ­¤ÒR))KE´ô ´ôµhð9iéchî}ÒÒm'Îù¦g…´tŽ´t"Cq(C±'—º5 ÏîZÒÒòT<Ï ÖÎÏ`‡ÒÒ(ÒÒ Ÿ{çà®uãì†D¦ÖMéozŠâñ,,¨›‰Uª39¼ç>dqâEjv•˜ˆÆòýõ±h¸Ûûìðâ9°ºñº˜x]Lv¼.n¶Þ4Õ±³–’Æ€ëPô¸"EGFâm— ©2ï½ÄÏ ‰QPI..$.¸J™„—IВð-‰HœÈ÷SäT·’ÈVÕ)E-o}âDWÝ 6ܗ¨4~üøðŒn¡å;vììh"JOFL}ûo%õ·rP*Œøƒ`ç>P‹#@É@a¤Q7—:¹^0= oT´ô¤Ñғ¤¢ô¤®rïÞ½_“sss)£G©LžÀ Í?Ü Í?ÎÍ?a„¹Œ¿-eüm Ã[J{Â9LP:ÉàÁ~Òºe5­ÖïsI¸•`#Òºÿá—Åßþ3*-E4=‰6®DZ¥–Šhé÷¤¥oIK_EВ©-]'-]"-%-ÑÒ~ÒÒ.AK„ã žâ´äcU$AKþ"ZÊgg›é1D¦âQL7 ‚ž§|ú fÓ5Q¼Eœ^·”EœV²œÓZQÓÁòávº•8OýcyŒÓ¯Î°Áñ%¶£¹nn%\‚êVúD³ý]A·¯,n¥ˆø›¥Ri)"ÁûÏÅi)²d)KE´ôié3+Ní#ÒÒ{œî;¤¥¤¥Ë^€È?äX,®í`<Ö] ŠMIŠÕ)¸ü%ôÖÎ%-M#-ËÄ#?œ_ ýIK½r02]ˆL/P´Èæ×Åï§{ŒùMµ˜éT5 [T`¤:ƒÓë’ù]Ï×Å‹cxØgÅɪ˜v‹ …Ɂûl dřêÌ8g­ g¯áÓ¤0«èèGҒ‘´xàdzódÆ>%!d!p7‚ÿ£TdRiIDâDÞóÂA8áVÙJ¢:¥ˆ¿‰Î'¢Z€èª+æ¿mܸ1X­[ +MàDF÷ˆ#$iÀ€ѧ¾‰Ý¥×(”Ôå T.}ñ聒>J¦(á7{”âããƒéIØA"gi”%=I*JOêÎô¤>òСCs•±cǎV¦N:I3wîܙÚ%K–,Ю^½z™~Ó¦M« ;wîÜh„ Üj†ÛÉÎ{˜F²×ÅV(­}L›Þ»;‘³œS˜Žšm»> ÿ+¬ZZRKçWƒÕͯ …<©66]ú~H}Ö=z :»gChﮤ¥¥¶¥Ì[jÊ9qϲèÒ3u!ž&(=] ž©Šõž­ Ñ4Û6§Õh“†ýµOƞ»$à=ø‰ÜׇÓÂD¥1NXØÉö÷Þ{o–Êwù`%ãoÛÉøÛÆߎ1þv6Ö ~“ÆwÂÒºaÃÝJ0án¥biÝep+E¥‡¢¥¿„J-ýsqZú9’–X˜’´ôíÛG¤¥÷IKwOy+Œ–`”-'-v°`v-±@¤ %/i‰å +´ä/¢¥Ù1E´4ƒ´4 $IüOü–ïÇRAUµ€Õ¡{Dmðcǎ­æ”» ,U°ÕQÝeǀ°Ñ­dÅÓt҂S;o†¿bb`#x÷6ƒï©n%]„[ ÷à'ÒҟDÉ¥¨d@YÜJ¡(hÉ)Kšˆ”%ìùB ޑ)KœÕ§¤¥ìxÌn¹@×=¸„‹>ÐÈ©ÐÒ¤¥ý¤¥í‰¸Þ ÉŠ•ôÖ."-Í"-MÎÄxŒÉÂÊeݲ>¬òڝÈԑ¢ sÏS<…?ÃÔ¦z¼éX¹R*>Q²8³. pwcùûbðêº J‚’ d&(™ìxJ V|¨2~üøÈ2™´ŸU†÷2 uW2´Ù¶4ˆYk*à·å•±ta5¬7«Tý”ÚPõyu¡Ÿ‡Õ‡¦Ðû{•n¥—IK/ѭԎ´Ô’´ôiiiiŽÿþýó™îTÀ¦K™UÈÔñuœr·Ù‰ípöÚqðC6<>Ǭx¤ÎX½9cý:+ˆÞ"ïÞ%ï~ Ç}´™€[I[T2àš¢’ÊV*”Ê@Kÿ¢ÒR §¦, ¾7a¾1ãiú‚´ô± çwώ3½ãÄSwӍçïªhpÞô;<‡ ܓ€Kݒ„¡XKZZFZšŸŽWhFô ¤¥|øfáz•ÞÕ®D¦IKbVh†èžÌ„xŒ T›AêªiÆ +¥ ‚Rr"Æ7>#‹»ëaåp'kˆÛÝxS,Î"P2ÚJÜbY€$”¢Ç}VX£Bæ³&kp½2Ÿ¿#‘O%YüM"‚–T·’ÈVŠˆ¿‰Î'¢YœHTÂ, ft‹BÝ¢ÿ›:õmÔ¨QÁÝjµ™‰(¦¤‚’ZL©”ÊAé£øՂ’R”´D!¡H€’‘Â%Wqse7‹ãˤ¦'U`zRµhՓDz/¦3/¿ӓÈøÔ!Oœ8q¼2sæÌéÊ… çiV¬X±D»~ýúUºíÛ·oÐÃÜm3Bí2Sö±éAÎI:äd8ÄÍ€ôؼ9E¶7‰óvÒ ¶dâÏu9X°²”ïâªPÃsk€–¦Õ‚V_;Qª~Pì¯7ÝJÝ JèVz´ÔŠ´ÔŒn¥&¬·Ô˜%*Ÿ®ñAé©êXúL¬÷lEl֔ÕÍ3 þÛpNu{ªÿ®ìѓñ·~^œÁP‚ÒXÆߦ0þ6›Óx +[ÅøÛ&‚Ò.ÆßDZ÷qÆßÎ1þv•n¥·»KPRÝJÁj0¸?ü­ÕÊJK¿ Ô’JK¢ÔiéAKl¨û)iéCæå¾Ç†º‚–nò¾\%-] -f¯¼c¤¥CZb[¶-a Ö{نÄGZò Zb}$AK±¬Ën!ZÊ'(A‰N§9ªytD‰Þ&>­`‘®Õ³âÔ>²aÞs€–ÞqáÑ{Ó ¹ìÅ(œñ㊎ł–ă–v&‚–6%a(V¥àò§1˜Î¬?ÒÒXÒÒPVyíGZêAZêDіÈԌ ô g<ü–©MõJ5è{­Ì7%›S0ÒJ‰ñxSb J>‚’› äðàîÚ\%³ge"(JzJ¦"P҄@Iá³&k‹@IŒD4•dU¨´¤ú–DN¸•Ôl%5­[T P•D¡‘Ñ}äȑ`¡n|ا¾-Y²D’æ̙s_a„ZŔTPŠVu²DPŠVž»”ÊÅ߉øõ€’JiiiAPÂû¡¡§(:(áO8éIXÙϗ)ž{Iáþ2éI¢¹[ƒ ê‰ænô¤€Ì,·ò†ÚûH ìÖ뜭³? }w*Äö ü¹1buE¬²´ +4ðüêlS[ Z~bؼÑõ€3¹  õú>-ߣ!ôxgÒR{‚Rk‚Rs‚Òs T‹¢£ +U±Þ3•`šä`Ûf™ØK«4ìï–*蔀ctgæEoÒÜ`&*dümão3[@·Òrú#Öѱñ·}¥7;M·Ò¥ân¥÷ JÁj¿Ð­ô° TZú×â´ôçÈ”ìK…–¾`ïOÅhéN§%Ü°-9هͅ{º×G`‡‡}G¼¸÷ë|¤%?«SúY)†´[DKs-ŁŒf³HK³‰Qsc°Þ?ÝJ$­e>ì¥Ð‹ý­ó`ϛY¥`«;íå\¼Cœ•wŒÕ ÎXñp…»•pâ­tOu+éJu+)ãV*•–"S–´E´ô¡”¥?–~OZú–)K_ZpVŸ’–Dî]Fᖠ£pA¸ ><“§bðt‰$싵lKÄõ®OÆ{´‚´´ ï`>ii"iiiiié5:˜^&2µgS+Š&d¤')”ꔪ”*ðMÉ (¥$`|ãã°ûÖ ÷°ÏŠ“ d'(Y(ÙqjF+NR€’Ž ¤5” !PÒ© „‹¥h´æVR³•DüM€RD¢žÄ`¡‘Ñ-**©Sß(­]»6X#@€’è‘+š™D%µêdéå¹ËÐǤ”ÊÅ߉øՁRfffé d 0RXB $ғ<üЉ¡7*{I勝Å÷¨2ӓjªÍÝxVMX3¤«‡tàµu“DzÒü“ÇŽ;Fž:uêeîܹ³|ˆhðI¶R»e˖õ:|ùoÕã+·&k¿ jéêõ ¸9fgn­ Jõ˜øqÔv$ø¯'BìKØ™±% ÖUÀ*+*ÃÖ.ªû6«&¶Rªy,ÝJÃêCëõ {îÕ*¼+A©ÝJmIK-HKM JÏÖ'(±OÜSŒ¿5"(=Åv»O³ñî³`šÒB´`m𶌿u`ü­+óÌ{1þ֟ñ·at+å1þ6•ñ·9œÿ¶˜ñ·ÕŒ¿m¦[i7ão¯3þv‚n¥óJ‘[éVÈ­ô!Aé3I¸•`¿+©Z@én¥2¤uÿÐÒ!Z +–Z‚þ„…)?0Á¾k&-YpKÞ$J^aõ©ó¬;xʁá> %ö¯uÃÌn'-mò²°¶ïĉ…þ£G.‹!-Årî,[ëƑ–âÀC³³¹`.Yj>#v‹b°ÙRFñDöÓFö6xèVâ¼»ÝNº•8ø>'­Ðsª[‰Õß1ªn%\QT·’æáÝJ!P*-E¤,éŠR–~&-E Â}ÂáLÕ Ü/FáS–Ž3eéõ80ëî\êfáV“––¤âÌ%-M#-呖†‘–ú“–zò]èLZj—%¾! žáŒ‡ßRÔ'(Õ$(UN(e'ÓJ‰l§ËïŸGs{q\‡g`uâ\Ì!P2X(áœUPÒè‹@IQA‰A`9J¸Ù’,Dˆ–$AK­S•"2º(‰BÝ”DGÑ(WÔPAI-¦$@)777XuR¨u¡Ç£’(Ï]Jå ô¿V<: „×EG( d +€þ´s‹Q7/·ˆå¶‰LOJczR6w_…qöZŒ¸?HOjÚ´ésœ +ۚ“bEzÒ+’HO†ò¸qãòäéÓ§OSæϟ?WY¾|ùͺuëVi s6jaÁ¶ë`²ö`_7BÑ1Cãlm1+ꤓ³É=°¡'¨T±̑ØՃÉÌ­HãGp&l¨€UVUÆÊKªAÁÏ­]7­6øe|]èçõ¡õÒ­ôÝJÝèVêHPjGPjIPzþ1&n”ž¡[é)º•ÕÄoªc•§ª0´Àø[“l؀fœԊ6àEö‚èÄøÛ+Œ¿õaüm° 4Šñ·‰Œ¿åsþÛBÆßVЮg Ã팿í¹•Î0þv‰ ô&Óºo‡¹• å#ÜJ"­ûέT +-…J-E¡¥ûJ-ÑÒw¡Â”Ÿ‡Ñìô]3 SZp_n–.ÛX<ÀÎRKNÜÄ7\,LÉf»=,µäŐmb™öµì°ZCZŠÅ“³8Ž´GZŠg=€xÒR<ñH¤¥¹¤%á~hµ˜´$œS«|t+1¼·™¾œk¹—éq‡èÑ s+±…Ý53Îô¡÷®öüžn%½êVÂ¥~ÏLãÚ­ôגié)KÿLZº/‡QÂáÔ"‚p7„»Ä”¥Ó ½Á Ü~áv0eiƒp+9obS–f2Á{R:ޣќLJZêMïj7Nqè@ъâ92R#&ò5$(ÕáKR T ”Áns)줋w5†?/étãà6'NÃâÀ ™lx@ <*z3wWûp ¢¥’AIMTÝ¢ƒ®:õM€’¨ ‚ÒöíۃŔ–-[v_ÕI”DyîP}LTP}LÊA©”þ7Š_7(iB ¤ãë¢%ü/JXêâzjzRߣtî4‡éIU™žT‡œ±÷§…ž§Û–s=:óz{r¢ìN™!O˜0a¼œŸŸ?C^¸pá|eåʕ˔ 6¬Õìرc³Úg—Ÿõûõ@’ÃF¨×c&(¨“@Ç)ìåilÔi–[9E}z"äq4âP§ì¤2·"lsVYS +/« +¿ :t]~-ìeb˜»Ñõ`pEü­ÝJ¯Ð­$âo/’–Z‘–š”D¢R(Õ"(ѭԈñ·§+a‹ÆŒ¿5¥…hÁø[[F^büíeÆß^eüm`ÃÇøÛ4º•æ2þ¶„ñ·5t+máì)áV:p+Áœgüíão·Jïþ?q+ý×ýWtPzZú—’h)¢ÔÒWAKjñÃ;¤¥[Lð¾nãt8úáÎ:X<ÀÉâ. ÞK-yÙô„eÚ7úYÆ;æøñã+cYq;Ž]uã<¸0¾ˆ–æ’–æ$Òœ€ (Åa麟 +¶[ƒmW2ñi S 60u\(…8Cn%ÝJìFvł§.èVÂX +·Ò‡ª[I÷?åV +óë)E´Ö.2‡Q ™ïÂÝu‚Ñßbî*ƒpç„;Á Ü¡XŒÂá¶0·†n¥¥ ÂÍ#-MgMüqœ7œ´ÔŸß =ù.t&#µ##5§x† ô[‚R}‚RM‚Re~Rd³uJ3ºcqOc J>¾Ø.@Éá(Y Jf‚’ÑŠ§Ä`Æó¢3”Œx†4zÜ]w7Jta>”"ão¥ƒ’˜ú¦ÖP‹)E%Ñ·tPÚ»qãÆѾ•ƒR9(ýo(i‹ƒ’‘ÂLaåo.u@ ïQ0» +–™Ä1ª³iQ]¦'ý† +@-3ù/¦ ¯üUÎÿę £äI“&M”g͚5S.((X¨¬Zµj…²iÓ¦õš]»vmÓÂZíÑAÔXÞ0@³ž0:N³P²˜>~ŽŽ™s.¨Ò³ôПfmáqPªo$âS¨Ö3°`[64ÜúŠÐ»+«`³‚êPð³kb/Sê@5%( Œ¿Á"Šø[‚Rs‚Òs 8͍n¥§kT>)@‰ñ·§{†ñ·&Œ94cü­5ão/2þ֙ñ·Œ¿õeü-—ñ·ÑìÎ0‰n¥™LÈYDWÄJæo`ümÝJ¢ZÀQÆ߄[é²p+ÉEn¥`Ê"·Ò··R±j¿Ø­$)B”NKQ¦ÃEÒR±Â”âºâ¥–˜àý™‘ÅLœgfñ §ÃY9Ž÷ê"«vža°ãÌP;ìƱ߃û¼Ë‹Û¾ÕQØÃÎm±xrVÆ9rdiKJÆãiZÀÂI ¤¥„"Z + +‚ii~1j!iI8¢–2€·2†n%¿èÂL·’‡n%7ÝJL•:â [Ɏs s+q,ßa1Í÷ØàîCÝJú»•”ÒÜJ tŸK¯4Z*KÎR4îCá‚¹Ý …k Â]àL¸“~\Öaº•öÒ­´•A¸µ Â-K³ÎO¡[‰¼Ç§á‘žÎÒü^èI2ê,*g0»9ÿ÷ Aé·¬ÏZŸ Tƒ/IåDl›EPJe¢R"•bS÷zpO].Œ¾‰JV&*™™¨d €’ˆ¿áÄ…@Ióÿ ”Ö¯_JÓ¦Mû¥;㖃R¹x¤Å¯”ä’A ¥øøxß#…™ÂÆߜ\êá«Ã͂yÜx§³¸çûò¸E™I‘ÇÍ2“¼¬îÌãî+ Å?)//o¬ 52U†B™+Cµ,QÖ®]»ZÙ¶mÛf LÖ. lÔ-ä Ôë tÓ#òyvݺÈÚKt1\v‚2.1ÝS´¬:ËÁÉxˆ£ILBMÅÒ=™Ðí[s`a×UÂf+ªb éVšY û›ƒÎîû€ø‹@ âÉZ­„¥O2þöãoÏ0þք1‡fŒ¿µfü­=ão]X²ãoýèVÂøÛ²ÞdÆßf™‹ÜJ…Œ¿m¤[igÀ­„üct+UŠÜJ7eQ„º]u+•X„²D·Ò¿—ìV*”‚–T<@¥¥Ðt8Nòþ†Ó½¿`)ÁOX}ù–|ׂ[ò6»}½ic‚7ié<ûçb>ÿ,qЋû¼Ç‡ÁÛîgÊR Ff]›Ýƃ––dz¥[hiQ"i‰ 4/Jńð7 –ZÄ`Ý&9-¥[)†n%È­Ä$r1ù.àVrw+YJu+é­$nb´ø[X…+¹-HUùkxÊÒ_HK¥Ï„û†A¸/„Ss»…[é&ƒpW„;ËÜîct+d9ʝ,G¹‘Å» Ù꤀­Nf¥Ð­”J·»Ãåò èMZêF<ê.f…BÆ&Hã¤3fL—,X0_^±bÅ2Jf­‚ï²­ + Õ ¾ã_×?Žé OOë¡EÏ¡@/š` ¯XØǝ™+WPÜW˜ÀpÉ qÁÏN qøßñDˆÃ)Xº/:vG6tûƊÐu«ª@ù.¦[iNMìo*ÓºóèVF·Rº•zÑ­T†øۓ¡øۓŒ¿5büíi֟|–ñ·¦´-ùÅ܎ñ·Ž¬?ٍñ7áVÄø[Э„Sn¥ùLë^F·ÒZ¦uo¥[i/ão‡™Ö}*äVºr+…÷6æÿïr+•J¥ÑÒÃO‡û£˜§+žà-R–HK“–î™™àÍF_·„»ngw8†.Ï2Ÿÿ„›)K¬>zÀ'šÚ0e)†)K±£µq°e…ñLYJ8tèÐâDö,´”DZJ"©‚´4Ÿµî§ÅtD‰L'‘ó$²ŸD”ș䷒3äVb5ƒ+Öÿ9·RP*‰–DÊR‰A8áVúÙÀ \È­ôuñÜîw™Ûý¶˜wn¥‹t+âçÈö„ÛËr”[ãéVJ¤[)‰n¥dº•ØFw|*ÝJ¥þÌGêI2êLю¢+s?Ãֈ¿e#ézlûSƒ/I%ú^³â°«TÖèN`E¥VTò²ô¤‹¥'팿YmEñ7#•ñ7ãoÅ•î‹¿ <*Jr4PŔ~% å$™rPú5˜òrñ¿”*W®Jx"@I JøÓÎ.®âåʱ¡<î4îOÍã®Íã6 åq‹zÜ"»¯2,›M&°R¾¼hÑ¢…òʕ+WÈ7n\¯ìܹs»[¶OtX ò8¡ƒ=«‡¾h€B¾Âî×ÌìµÅXÌu;Øâ]òWÙÛó’Ÿ >c©ÑðÛÑd,=˜†õvÓ­´¥tûÚÊØÁ2º•æ׀֛Á´î t+¤[iA©7A©{Düí1Æ߈øK(©‰JŒ¿ýŽñ·'{Šñ·gXò9Æߚ3þ֚_ÌíÙЪ ão=…[‰mM†Ò­4–’)t+ͦq-0ÞïV:XÜ­tån¥¢"”án%ØËÝJыP>(ýÂ⁔%m(Á›öí}””%3S–,LY²2eÉƔ%;S–œLYr1eɃ{؋[¼Ï;¾3†)K±LYŠcÊR‡v ‡ëW÷}ø¸¥díÓ¯}…zÿ#FŒî7nÜXç´iÓ¦¸4)Ív‹AºJ—F),­ŒÖýåêaÅú8E̍”BÞDÍÉH ©ŠfÒ5¬£PÞêj çS¦HÏ.(EVª£wL©¯Ø>YÉغßn!ðz [÷sغŸ ÿöÕºïAVº Y©;Mஆ–.”.ý©?IþíԀü›¥³É¿Cþí\òoç×÷.ò¹„¹¢3ÁUL×#+ݚ¥¿{7¶î^x“ÇÖýLb€¬4 YÉÓÛD1ÛÈJVo“²Rµ–¹ad¥¿¨¬ôÃÑh‰™=ˆ–j6x3¿}²”€e)QgcgU–’©²”J.*K¦¨I¸l’p9Ô È# —¯¯bL¾ž‘…šÕ† vÞ)ƲT‚e©„$œ¡¥R/-™Á<ö,5€dÝ ÒvC +æϟ?<ß++cÝ¤lý™¶¬”fd%j+ñ…®ó“•ègd¥ØP²’¾¼ï™Ê¬äÉ¿Y©¶ù7û{ ™„«­·Û–•lY)ٖ•Ò•2lY)Y‰š“ó•è 4´ÚJEÈJÅ:ýèOòw ÷q܎„Ô<êÊбDC»b=v6 tz¡^wrÞь$u@©¨Ï&šÞ&:ҁغƒd¥9!d¥M?«¬ +”Bђßr¸P–%W e)0 ÷}tPN“—IÂbF܇ˆ°+ÉNÂáç_“ÆJ¸ ’pXåd“„Ë% —G®€$\!­NŠ„8ÊI•P7 ”*K¥X– -•AKf0 Ä`D§$둶RXQQ1¼@äûyúºÇáŸlÉJt‚cÞ"#+Qõ#+á¥3T¿Ó–•R‰üd¥Ï-Yɛ3²R ¶îc¥0ÞîZËJ‰,‚3²RŠ‘•hp’Nn;“¾¹YôÍÍ¡¶k.%»óõS~—êÚoQgû%²õå'ßRO è6†ë‹u®`¸´HÀÒY…º>N”NÊ×ۚæjõIR—Ñሠ+üyMËbk:ÖĔdFc0–:“¨ß4=K_íj:-L§%ù·U|¡kiî»91°Z@¶îÚæ߃Rme%·OV¢¶RYéP%»“ôƒÛÉU¶9E§}màÒõ‰gê´Ï¥ÐT*i¥¦öð<}ü¬ó…ÿOók ÒýG=nº2t, Z_ÏÙíé|['JÍrôå5ÀtVŽý¬ˆõy$Y³SÈ¿áçOÁٟD¡­JnÅÅùòoÈJ¨•sÛ²’ JNŸ=ɀ’3JPŠ Pò‚R£FŽ”tádJù(ižÊÚ³§2ÀYgu&—½eÓáMÿ6Ç}÷Ý×Óñ¨6ÇÓÚ¯hs Ôæ®Í1N Þ¦95 ÍuŠ2–86«\Š±k\ +‘݊R[£wF vvà {c®÷÷™\ 7¼{pîL£[U&½=³õìÚ<¼U… +¥KKõŒ¬4Ӗ•üª +½ÜŠj'ëï>ֆjA²ÒéÈJÐÒeA² t® Jç´²uS„[w‡²@Y)¯º¬ôP ¬ôZ¼i™«cŽý1e%ê5ÿ²Ò1ÑRpΘ„‹¦n@`îHYi[²®¨ ©,™ 0ÇÒ ýD+èÈ6ƒÚ¨ùõ"ßÉ£%Òéóù´Ì%¯ö`¶n èfðè†Î ò±uJgæaëÆ`ւŒ²°u³ì¡„j,rÌa¹cõ´R©¬•L[Àî™â¨»kçß,PBVò%{ˆ€R”"ïkøuƒRtPJ²A)Ã%½8Ÿ·ù*4²+œB‡·ßV¸"De€Ç¨ ð •^u 4èm Þãµ9f̘1Ý©)k¾SÓN¥Ss¥K7”k]šî6¹Û£¯vEižÙc–) +Ør1ûÜöá:ݝJô êdéÙ ¹šMWçkfZQ¤xºYi²ÒԐ²MàNBVj핕î=U!üöÓ4Þpš-+†¬(](µ”Î#ÿ֖üÛ9-šAKMèmÒY©^Y)ß++ÝÌmó2²Ò£L®ý•^BVz+PVšHm¥ Yéƒ`YIáÿÀ ÉJ^Z:NPª½e •Ä”„£Ý†„ûÞ$ábHÂŒ„CVú”®ñ‡ÌOâu¥š·Q´y#²ÒêVQ€§’R< XB5›“=yzb‘¾…±–¬D®TÄ3¤L?½A墥åX–üh‰P";÷6yºÁÁß-"ÿV(P•OþªM“sòo‹Ò½ù·¬ü[€­Ûäß<¶nÍΟטû{Èü[£Rð?YIgü@é‹8ñOãŧ–¬ÄU¶#Y¾)E×àšTý&WP=FæPíh +}GFsڇR4²?k<_ÎÓÅÔ/_Ó# PO@é6ðèz†+°]ÂpÖû³ruiœF‡VÙz[@©>7eÜHRd47U§3+™ü[’î!R(¯•|Æ (ÅpN£‘ꢢl[·¡%W-y@‰ÊN½8JPŠ P + Jº4 (Åq¥$X ¤ÿ¦r­fðJ(éJ®ËþS %È´Âý‡áß +WŸ£;á¡G¸Êƒé·=Ò1A›ƒoNÍ=NaÅR§‚å*—Bä:—Àa‹[q‡[yO”"×>Há@ŒÂõGÜA4ßDEǸN÷¦`=Mg¡N¦žÝ”­Ø,+•{e¥‰ÈJïY©)ÕZÐY©²Ò£FV:ꩊã7Jם†¬(](](µ'ÿvAk¯¬Ôր’•Ó`òoçÕ7²’vp²RGjÇta‘O7&‘²½²Ò½FVJÑdó²Òsád¥©$áŽQV +Ó î§“•þïX’pÿò%á܁I8[Vò%á>³d%}òèº?ÿú¥nAVZÏ´md¥åÙúV3cÏcƞÉŸBæg|1Þî¼Ý¥‚¡e$áÊIÂùѾ%™‚A‰µsÃ)Îô>ešÆæi“rÉ¿eæßÒòo›È¿mÿióo!ù4¬¬äª.+}Ïÿ6F‡ñU¬Îøg¶¬t€3¾;Ig|+g|=g|…ñ+©š=>N%íñÙú`uÿ õ5$½g1i?Ž®÷êѝ 7‚GW3t¢êU{@éÊ:üPj (5£ŒhÃL]’u¨Á^L5û|*fÓø/ƒ€©´·IÂü•|ÆŸ1œÓh¤º¨¨Àü›Kƒ”ø—%&(ùZ˜D@)J‘áߔ̕W;PŠ +% A ”c’.œR.œzì¯ •ZQ t %}˜¨ p­p dô!xl I{΂O'Q%r&±!ä>ßd ۋdӞ"¯öp¶n èðèZ†Ë.¢¢úy4¡ù}Ž^w +UÖ[f齍9“uèJáÎ:ýåp:3qɧ%’C¥K>ãÏXΩ?(™ü›—–,FŠ€R”"ïkøu‚’®FPÒuY(éÅþ ¤kÚ”¼%”Ú—Pºë®»|%”ž°J(Ñ +×1D›cÔ¨Qïd&nfx:‚–;ŒV;,]šb¶¹D +»¥}n…Ï¢ÃE+š)æ0k¡#1b1óÁdV4§â¨H׳;2õ6çh>ZgËJ•¶[iF]Ý ûd¥!FVjnd%Ý ÷; Y©µ í6x+NQ0¿åTd¥S5-v=UÔPºPjßÆÈJ¥óNÒ`d¥¶Íšè%ç6ҋÏGVº°NXYIlv»‘•0·X²ýè=²’ŽÔ#+išõ—•ôÙ#+UËJšBËJšzFY)\.¨.bPΚ»Y gËJß3wËÜý"ÇçÌݟ rdîޗlV?YI§i}†N؇ôž_aÉJúVçÓcÖ⩬ÁšPŒ·»„$\©¾¨ae$áʱ,Ғox/Ó`Ë )1 „Q‰R–£¥ y•˜èg‘›Qi1:È +{ý›é¼³PÚUãú·àú“®0õ'kJÕÐ4DÉnKVM£¼hꓕ¾DV:š~ÌU¶Ø.üa[¨`¶ØJ:‹,¡HÃ\ÜôS©{4–µ‡Ã©Ô0Wö+T}:W¿öGьîŠnG‚ëÎp%Ã¥<֎üåYÐæiY”UB›kʙ¬@WwÑö'Ó™E:3•.•.‘â ñÀ§¥˜h_þ Z²@‰!,(97ýš< ¤Ï¥(E†ÿ8PrƒRyyy(PJæ¿©<‘ÉKry±§„’öRß.¡t%”<µ&;tèp!%”:QBéj>ÑM€Ò]”PzЯ„’@É*¡ä=zô(Çdm„›ÙžENM6+œ,xs*,mt*@mw)îvé¾q¿[¡ù BÊÇÑÞ¢}ŸX]Á4iNÐ`úŸ”‚£"MÏîÊPÄ܆¬´1W4¤¬T/PVj¦ÿZ d¥VÈJ'+0>Üږ•NÑñÝx*²´t Ô PºPºP:P:·%´d@©)9¹ÆôÒm w´««÷v@VºÔÈJ…²Ò-X2îJ7²’¦„Ç,YI‡æ‘•³CËJú€µ•>û…d¥Ð´b·›¹ûæî/ã¼Þn#+°e¥íxg6áYkd¥lý†–Òau!²Ò\bÍÀM?™%êãJðv—Š–F–™$\-™LœqynJÅ6(hƨ4Å•Cæe•Rìú“‰¾ú“AF%}"?£’_þ-ŒQ)TE¥Ð T“¬ôϲ’eëŽ6²’ès2žæ*û4ÝCÆsË7°ìðCje/ÃVA‘†i˜Àšþ÷XÝ?˜Ìòë$Ҟ#¥Ö¹¨PtxtÃÕ¬¼Œ¡=ç¯-¶ø3¥Öxã›cùj(ÕᢘәOj:›tf*]j‚# PJ §^ð˜s‹‡< ¤Ái§ðqG@)J‘!JG¥Ø ”æJõêÕ+¤2€”Zµjå«5yzp­I³©5y³_­É§žzêINjڨ5ù ô. 4Ú1E›cŽ6‡&ªÅË*@iS1q ´PÚãRÐ:àV$<„†r8Ê܆+®±ú\(Ì×éaúŸJÆQ‘ªaoº^²#S±}sŽâߺŒô;)’¾™jVk¨þ¸‚jV‹¨9›Ú“3ô¡G³^í]’ÊýYÃöÙPêðv/Pt+xt-C†‹©Huõ;Oµ…S2É¿e£’g= +T•rU$“ãtfJi¨tɨt‰À§þ¶&Q´5q›ü´äJú¯”(Ê¥(E†(Õ +”J ,PÒÕ}2—Ëï¨5yÇÒÞª5i@IŸífjMÞm՚(™Z“/Úµ&‡RkrŒƒJݳÏuhÆ1 ´Ò©À¸PÚìÔì²Ã¥PµPúPúØ-*ø4Ê;?³Ú§šòÍ +xŸÒ¨êp’þ{0…nUizÉî Å¿mYâKVÊWô“•Êd¥5¥jª?þz …æç[jº{ò$¯¬Ô³âx6ÈJ§,_¾ü@éJ@é2@éb@©= t t^KJ MX׈Î'õõKV*S´½”žW—S^æ* +È\O‚Â#+i†õÈJ: §‘•^NÐ,ÔYé]d¥Q1b½j²’ÎËÐÒzhi+Ÿ¬äüÕÉJ՝ƞK>¥#„·ÛOVÒ×}$ÁÈJÆϯïw•~¶SéÇ#+é«]…¬´Œµë‹(ò3jˆ3)=RPB®T´d’pƲäіŒË›2ކ‘X7Ä¥áùYdƒR~(áèÎ0Žno¡îµÉÆÑ­£Úž`Ýƨä%¯Qé[¬4ßÛF¥raÝ5€RMhúÏÀŒ§_µŒô_!+™«ì0EÒ°‚b7½C¶R=EÒWQ$½2UpՎ¦Q÷h†þoãÊ~ïÖ3œœÇЌîŠzЦ;CW†Ž<ÖP:›nçÓDï$@©iù·T±J T(åQ÷<‹vzé,'Lñ3*æߥ(·-+¹¼ƒÓ”ôÍx@I°¥(E†ÿPÒ5X PŠ¯”Šxo9%”pÍ4 ¥Šr÷îÝÛåîkå0`@»ÖäX@iªƒJ€Ò‡âäJ‡‚ê:§f—-€ÒN§"ð>—&–ƒ.ÁÃÁ‘(&–(7“¯øÂ*H¨¨÷…?M¤ÿB2e…-YIÁr'²Ò–l[V*”•ê +Õß½{÷(d¥w›P[©™ãË-•Z)À?v >[+„ß (ÝÚFÁ²{M®W·Ñ,ÙPêÈÒ·‹¥ É¿](×œ¡)CcüÞ h‚¬Ô¾\´t ²ÒeLÖWæYIaøFn¾{dYIGà‘•tTFVz=^SÑ ¼Ý#•Æ‘„«&+éä¬! ·É$+iê­&+iþ ++ý«–²RmA)$-Õè4þg8Yé;d¥¯-YIßt¬´ Yi+²Ò*ý¬FVªÊÑI¬DVZ@íè9$á¦Ól2­5ÆCK£K½–%-—÷3P¢ò]†¡”ö6 ô^aPšƒy”° û;ºéhrBŽîc¥ðFúÀú ~¶î(³âÐgëæN„üÛAÊ~ÙvºÉl¤Bö‡ÔÊ^FÕì¬ßŸÉJþ‰¬â|sðN¦®£7¥çI©=\ô PtxtC·,Ê*1tÈ"ÿ–Iþ-ƒü[:ù·4òo©äßR´Ób²Òù,vÈNԟÌHÐO÷åßth~ù·(“3²’>B5PÒÎ(E@)2D@©– ¤!‘ÁJeeeY\3yá@Éåöt/¹øâ‹;p|PÒ¼…¢Ü”LQî¾!ŠruPkPšçBTJ«lPÚêT$Ü(íwiâ;(} Áó9ñÏ8`¿´ú\`¦ˆçÖ7þ I”NQ<¦×íAVÚnd%¼ÝklYÉ× nj]j+5@VjdËJÍ5¥¾€¬ôT+…ÈÞ'+Àß×ZÁüŽÖ +–7µì\ (um£ƒï (] +(u”ÚµT(½ …†ó•ÎCV:¿!¦od¥ 눖.BVêHú§ ËÖ¯fYPwd¥[IÜ܍¬Ô‹~ôYIáڒ•â¬¤ÉÁÈJ“¢E}31¹MV-¶d%Í¿¿NY)ÈÛí§tDÕ,+aS3²R²WVځ¬´™Ò됕> ÓÆr:m,Î3ÞnÍݳ +MŽ•pÅ^˒–L&n˜A&ê-™a˜a¤Ĥb=û~¡¾ø1ú.’µôÍJIÞ¥o»ìғ‡lPú"léIWM¥'kJaNv؇¦Õ·t“1WÙd¥YA±Ÿþj;é´¶™žkk©þXEÈÅ)ú”sø¼SH:ŽÁ§5CvD¶—Ȧõ”z#Ý Ý +]ÇЅáâL=v~ù7@é@©% Ô8•ü[Š.ˆR.ˆt֜Dòo äßâÉ¿Q³?Ñ2*‘‹&ÿåË¿’þëJzñ1‚Ò¬Y³" ¥È%JzG5Pòv/9ãغ— 8p€¯(·JóçÏ÷€’¢£¥õNÅX?PrPRüûÔ%ØùÌÍ*!BߗttúÊ*±c&M/-IÔ‡“ BKûe¥õÈJز҂R¯¬4©²RCݯm¬ùm@SEÇWš+Ê?ÓRáºO+îOV¿§µèæ¶ÖšWoh­Y²[kü€R'@é@©}+…Òv€ÒùÍš`^j(!+]XWÓq‡r½÷R´ŒÎX‹»R‘ïZÖ݄¬t³Ë}ô£ïÍ]´GVÒäà‘•4) 瑕Û璄ûÙd¥ã¥“•˜À‘•~!+}Š¬tˆvû©‹¸‹¾dÛÒ4ÝmDVZ“e{»s·['v®„›j[–,Z²–ÃyK-`0x4‚ö'†‘Þ#ë6ªP¯[ w˜UoS|©·,oêÍJ«mPò-}Ûç%ké[”Yú¦õݏ¼ô­'ûŸ~²TJÙÏ¢¼ù7­›ü+(>¢cÈnªão¥‹Èzú‰¬¢³H%=FæSíh:uÆa·Åèm\Ù¯JϐW{ Íè~ ¨G&‚º2tä±v€ÒÙéäßÒÉ¿¥‘”꧐K&ÿƝC«B³ȿœ£ d"õhãmPŠ‰2ù7] n7´ä2´ä< DeJN}PŠ€Rdˆ€R-@I…¥ 6oPºä’K.¢{‰”ôQouôìÙӀÒ#(½òÊ+/u/qLŸ>݀Ò|E¹¥âƒõJ +‚»‚˜€ÒÇ()š}(}Éí¡1¿~M£p“0­¾Œ£ÿB‚û4IÏ~ -™$ÜhÉÈJ›lY©ªÐ–•Ê臬4¾¾¢üHd¥ÁMåßh¦øüb Eê¾-'iEߪ“Ñï=PFéËSè“&Q h*‹ß­Uo¸r†J½ƒ’©Jfé›%}ÊZ€Òÿ(ÕXÈ*¨>º•‹â»Rž»3 t) t ÔPj(]И¡!‰¹ú”_ªKÅÊ2½·#óå…Ú_Wª_G+‡›ñtÜÁm¸GVÒÌþT’æø•Þˆ×ÉñÈJ:ðq$á¦ùÉJú€Ud(×r®6Û²Ò>héPY鏿*Y)嬐²r‡õ3‹[²EµlYi·-+mÊðy»MŽKvά„ ¢¥ñ”Z[¬¯g4MOü›‘Æ1)_/žLÅé¬éšÅZøù¸rQAԔç^2õæ¥êŔjnf”~¼ü›Ëο¹É¿Eæßè¥ö1íg÷SÖ¶Ðsm-¥ª¨µ˜:‡R›SX’0»ÝP ÙýÓÉ¿aÒî›Aþ áè^ èVðè:†. §³þ-ü tJ*ù·òo)ºêJ¥€R ”(eÚ ”K¡nª÷ÇQp-6Êο¹½²’ËåLÖ-JPŠ ¿ôðÛ%í´¹ÕWíÌ@PêJ=”ÛŠ¶{¥¥Ã ô5 ô •Q¾%Uñ­ÕçÂKK_AK_$è‰#ÐÒaKVR`4ÞnOÉoƒ“•ŠòKŠåç•j›^G³é„zšMßk¨ÃÒX„òVӍ7¾ÔL‘úé´CoI9˜VŠèwŸ¤°yÛIš4»Ÿ¬OЍ†oWJ—J—JZ,\¸ðÂfÚ5™14 ;Wûw¹Þv)‹®.+Ò®®4 C©_|)œÛ(%sOºÎȃ–¬¤âfˆW•„jÉJ:úIÑú³üd%Í¿Ú²Ò6KVÒÙøñe¥ÿ;Æj'&+ùªH{e¥oƒe%Íâ>Yɔ ؚîóvû +,™•pÕii*K'‘@ïñ|3ãh¨;–a\¡†ñzÌÃH^1iFŽ×žT‘i +NjÏ~åXõæ+Ïmy”‚Ro?(ÕVV +οE¤ÈJŸ³Ôô;ÿ¶‡üÛ6“£ŸÈ|ÀJV¤ÍgmÚtV#Œã·;"üÒЫdӞA.z ºPêugèšNþ Pj—¦gÏ”NK%ÿ(5M&ÿ–¤K²Œ›†Bnr©3–EWÄ´8ŒJ€Rb ù7”bAÉ}â ¤Ë9JPŠ ¿]PÒàJ⡟”n ¥§ý@i„¶ ¤ØéJŠ{œšß| ôKS¾4 äò®¤6!ü;îzM¼oMB&Ž&èñzâóD½ÄJÂ¥h2Þn_ÉÓàäCúæ./ÔÍèÂQÙì2EÇ)u"cë I†7T¨»±âäëMudÏ7×lúT EïÞ-Ìïk¥©òΓ4sÞ|’>Áõ'UVV^(u”:J—J¥öMA&d¥ "5ÕÃù]G´tI™ÞÛ ñ¢K¡ÂðU´Àºžj3·PæùNVHßÏ<󉇾I: ½ßˆ×AŽÓᎴd%Åöi$áæ!+-±d%…ÿµÐ’‘•vBK~²´dd¥olYéO!d¥ÿ +!+pþ-´¬@KÇ#+Ù%’¼ÝÛmo·/ W•mVÂy-K~´DÍôiВé7©PßÇD?k(Ð0‰ïh2ÃT°Ö#&y³n X·¸ÄTæN³ N&Û ßìUo>3÷§ÑÞÅ ?(…8Ï!e%€Ômòo܄øòoÉÌ&>Öj>àrj- ,ä,|×QCßÇbô®ì7ÒÈ¿¥“”ŠînbèÆpYšk(µMՉý Ô:E—A3@©aù·D]Å\y,qÈf‰CzF¥Xqq’Jù7·MK(é_fpUœN½Îi’.!‡C»ò€’~%PŠ€Rdˆ€ÒO¯(=¨(Õ”¡@Iaî”þȜb|´$ú/IJ¬Zú2AÏZI¸d½ã`juo÷º\œ +U 5*•f”ëO¬«P?ª¾Žå݆ +õ+H¿ÒT¡þ™æŠ˜}Z(Ž?ÔRaýÞVŠ=Z‰snj%Pº–†o])¦t9 ÔPºPê(µo -PªÞTCS¹ÞÖqg$‹®ÌÄ×â ¾‘~·#+݋Åã!VH÷IÖ±<Ëýô+ :¾$á†Æjš¬4ْ•4o-ˆòÉJ:k˜¶Q6&´¬¤ñ×.+ýWHY)T%J4DS2@_ ·ÛW`é«Ë‰Îd¥)ÞMÝùyúùÍÉל<“šéÓ©:­@ßôT,dSÌ@zÔàÑ4†øïga+››í“¬¬[ºñqkšýÏÎz*so¶AiOˆòÕÌÜÇêQª#Õ +™Â5æß8´¯XAñYPþF[(e´–¢FU¬Ú_Ìúý9¬äŸÂj„1$͆â3êO"í%”¢¾iä߀¢{¡¥[a¤kÓÈ¿ñØŀÒy€ÒïStvO”Z$k¥º‰ÚiIù7ÔÕL{dM¥}tR F¥h“3 DþÍ”¼Œär1ÉJzG”" " ôˀÒñ¤Þ@锾rzAé;—w%õ÷¤¬!ˆ–â5XI¸$’p¶¬ä_2€¾¹y48)PŒ]\¬h;·Tä1­\ 2®žnZG6ÐíëàF +–o6Ñá½ØT¡¾_sŠçµPDïÕR`swK!Îm­ô1n€–®¡ŽÒ•€Rg@©csh PêÐZjÄÐPª§áârJ °Êê2d¥+ÈítcUwd¥[)>s6ØðyƒL3òõ-ÌÀko àÑL†ÙTt0Œ4Ÿj¡ iÙW‰˜´1i•mO2½Þü[˜ø*s‡©£TÛUo5€R½cþbŸ.“ã»}ù7XÔäߨ”ù]XöàµÚ†ëj= ôëÐ*Y‘6ŸåÓYˆ0ŽŸíˆ¡·SÉ¿!=(= +Ýõ€‘º3\É/MÕp tV +ù·dçVɺ_h’¤S\P*” +¹r¥L@)cÉT®O”|ù·hL{QÐÒñ€’þd”" þc@éDLã‰dM;ϒ}x5ASÑ@d¥a–¬¤¹br´€o6²ÒB’pËmYi£‘•HÂíAVúȒ•t†>·e%_µ€°²’¯yÆOS„òǓ•|Þn¿K©4ϵ-Kkè ç£%ÓnqŽÎî‚\çù¹ S®NûÚÌ̶‡9èÑ7Ö36#-¡ õ²t}3>1Éʺú¸÷Y½ÞZ˜„.8yœ ÄHáγÃ{ŠÿÇJ~²­‰ƒòo¤M’ÐäßL»º½Ô.ÚA£Ô3ZMe£åÔ8Z@µ£™ÈŸBßKÑ9ŒÙèu@é¹Tú¿¥êçÝ (ºFº1•þoü·Å)zö@éw€ÒɀR³$í¥A¢öWž =ÅëoäÅaT¢k: ”b’7ÿK×£·7ÿævy() +ø’ÓJÚi”" " ôã”8†:JCÔQ +¹ê͘¹Aés”¾e¢ÿ£‹¶X./(ý‰[ß?… ¥oâ’p‡¡%o7%²ñvçj"]‰¬´¤ow‰&Òée:Š uD#ï××A i 9´#ãËMèÉДPßLý¡æUUU÷¶X¾|yú,7µö\G÷«XõÖPº PºPº¤1ÈÔdªÔT/S¹^܉R‡—³¬êJê^C ±h‹uUúîf½P/|‘È臩õ¥DÍo2W¼Ã\ñ²Ò’pÓIÂÍGVªÄÛmd¥uÌ [lYi¿-+AVú2„¬ôWhéﵖ•Ž+ÿv"²’U2 ÚÛsÃS‰Òx»M­vÚÁÙI8k%œÕ<ZJTnH‡–2 ¥LÄª,M‹Ë²õM/ÉÖÙ]”£ó¼0GsEŽ¾óùf€ŒæÓíÕàÑڙ- +b$JS@5!1‰6o>{’ñq6ŵz½E´0 *8yL tŒý‰Ãåß@µjù7œó¨`&qh¼V;©‹½™ +ÙkY‚VÅb´E,K›ÃòƒÉh £“ušÞ”ÞJÑÕó" ôšÑÃ@Ñ= ·J×ð¯Ë.”ÎMÑKÎL֏¿Mù7@©Q"F¥ŒJñº8óã0*± 4ƒêb©TKŠ6ù7ŒJ(Ù²’(é¿. ”Ĭ”œPŠ€Rdˆ€Ò_pÒW™ûòÀÊÜ÷[eîP Äª7JŽ0 ôƒË;§x@ÉH f椷'´ômœæР$\5o·âä’pæé-/Ðmé¢"AǜRÅû©åŠ÷ãê*bŽ¨¯x?¸¡Âæï_l¢ØÙ¯)+xš)À÷j®(zOs!ÎmÍõn¤…ɵ€ÒUx”ºJ—J¥K¥‹ëó¯zèM嚨mؙj=WPÌðê|×õ¹B°[hùpG¦&–û¨UܳǓÈJϑ‚xÄÛ¤ †ÇêpÇ +M‰ÖG˜¥㑕ôWÛ²Òö@Yé[Vú:PVòÏ¿ye¥Ÿ¥Z@-e¥ $Ü÷!½ÝÞ$œ§Ë –%›–6Û´´ZúZZ™©Ó¹" )Kg·2K´8['{q–¾øEö°˜¾¯K2õìÒ ½ny#Q¤z=u…,1‰Ea¾¬›eOÂm„ŸÛ×××ëÍJ¾&µ¨Ì}, ä¨mþ%€Ò× »ÃVþM'v7•·Róq=ÕW™üFëy¤ˆ§JãøÅÇg4ÇÑ+xž†‚…‡zBF·1\ŸB¿h†Kxâüd½ä€Ò©€RËDí 1 TP*Ç¨‡Q‰ t R©—‘m•¢È¿ù’·a¤`PÒGpR¶-JPŠ P:P +Ûë­5—K-Z˜õz¢×[P “õ6(í¶Aé°# õf’3”þì6·¾ >Z”þ륥¯¼I8ËÛmêv“„ÛInK–þƺ¼Ýù +–K ,+Šïg–êX&•ëÎut]Ù°ú +Òê¾öµF +ÜÏ7áƸ©þ‘fbšû›‰nîj.ιµ¹ˆçZ˜\(u”ºJ—5®¨¨èØPÃ¥ ê!5ÕÁËDˌ˨ÿÜ¥ˆtô»6Oû»‘ŽX·S¥ïÖ =È:ëÇId<¬ô2I¸·¸³õû$á&"+Í°d%MFVZEÎ'+í²e¥e¥o‘•¾‡–þ(+ýó×"+q,îP•(«'á|–>¶,K:VO8‹–Ä/F[Ú-­K×ܸ:C³î:2e +™–gê/ËÔl¿Ô Ñ2VÐve #­ƒ‘¬ +“8“üŤ ¬ö¤ onï‚7OS\}Êcìõö<½.”Âçß\¡òoœXêŒñæ߶›üËô?dÁþ2@©‚µi3ø‰NÀ†=’•kƒ“õ~ öyPzz2ºƒá†«:&ë‰v€ÒÙÉúݟž¤»„“¥¦‰•ô”J…€R. ” (¥aÕKŽ¶óo,lˆu{e%(¹©7â²²nA D܉€R”"C”üA)î(Mq6lXfR«V­‚šâžÃ±´·šâ꘻ñÙn¦)îݎ‡µ9žÒfRmŽ¡Úc´Y 4W›Ý×Jôzs(ôP:à8Lè”!@Éiæ@‰`nJ¿ü%ÊÛÝÐRÈ$\’¯À’©Û·ÛJÂ)Þ¯ÉUŒ­Ê' W¨#˜W¬<½TÇ3¡\aóýº:¼!õ;û7ÔѾ҈xßXÁü‰&™‡›*”öl¶lÙ²;š vn”ºSp²fÒå€Òe4t”:Öc¨«':•“¢+%YG£Œ®4»&O»º!G;5m±î¢TßýiT O¥ ٌ•^GVDnD¬üØZØ!+ÍAVZDn²Ò&‡MÈJ;•ör&r&?…–¾pze¥°E(>[÷qÈJՓpA–¥õ%ÓR +™¸Tá̦4µõéúº×¦kŽ_nIçt•á¦ â•éê4=ñAš^²š†°ku¤-ö27ãLÚKyƏâÄ$_ÖÍÏÇíöړþXàG¥É¿±ZûPú’EzG%“ÛG5ìÔÅÞLáÇ5€Ò +J}-buælRē0"s6³Ñ›ØŽ^€ž„–‚Œîf¸™¡[²†Î€R{@©m’^w Ô:£R‚~÷ 0*ÅcTŠÃ¨Äï>‹äs: ”Â]‚(!+yòo†–4øƒ‚u”" þCA©E‹µ¥„p Th’öRPjÊîOvœy晧;Î=÷Üs:thïèܹóe(écÝä¸[›ã!m€Ò“Žµ9ÞÒæxW›c´6ÇmŽ9Ú¢‚ÅaÀJ‡î4×J[¥]E=(}†Ñò+ÊÂPÒÄJ±@É$ +ŒÄ`fN Š–•¾ó%áìK–·;ow:ÞîL’pي˜æêϚ$ÜB“„+Q؜Z¦€<®ŽBóˆº +҃ë+è¿ÙzÍÇû5VX¼IUUՃM—/_~oÓ¥K—öh*¼PºžoÝ¥+¥.€RçóçÏïTdªËP®g;Óµ í鯤=}·|Ìá¹¢¥›³µç;èûГz}±Îº ‰žáNýîÙ +½‹¬4 +YiI¸™x»+•–"+}Àõz"+íæL@V2¶îÏ8_ÕFVú lÝÇ!+z»ÿ +ûµƒ lžk,K¦'œ-%é›Þ,ˆÙ-mƒ–6§"0¥éü­Oñ¬KÓ¿& nJÓo2hXcãÑ:úœm°ÉèHÛI¸í¢põ^SÀv&1ÉT¹ªžT³=É”j.¡tÌ ä%#+¡d…Ë¿¸3zØaºªˆ±óo¬Ð_Ç´•,F[Âúý¹`üT€~ ‹Ö†%ég;ìy Pê +õŠîne¸–¡ ÃÅI +”Îä§J-0*Ju¥’8ŒJ±•øÝg §¦FÛF¥(oþ-†0(ÑAÒJÎ(E@)2D@É”bŽJz±?(éš6 t’JmÛ¶=PºPêäèÖ­ÛÕ|¢›wis<¨Íñä“O>áxA›ãMmŽ!Ú£´9&kó%a@•C‘p­Cño‹CH²Ë¡¨·ß¡¸û± J_:¾¥J\ (9}wàf¡ŽwðÑÒÐRµ$œ]`ÉJÂiòڙ¡°¹ÙJÂ)Æ®ÊÓß^Z °YQ¤ ?³DAR™bçè: +úÃê‰PÞ®¯ ÿzÊè5R¼ïÛX±ýÑƊ§4ÝÜÝDœs;Mqo”®Ãžt5 t%©·.€Rçú.«ËPx*#EG£ú+‹DKWà ÏÃ!ž#úº=‹b4èE-šG1{ô#›ñ"·ëo°h0²ÒHn¯Ç!+MCVšE[;d¥*d¥µÌ›‘•v"+íCV:(+Xµ€É¿…¢¥KÙÃz»“p–e)-%@K‰^Zړ¬¯{g²NÓö°­) SŠ¾øM©ú ndؐªŸÀzߐ¢aÃÆd=»‰®°[èx¶ÍäÚh€æc$¿„ÛQĤÀ¬Ûñ¶y«ù<הûïàüš–%Ë ˆ^Ò£’éNýI4F%@i•·QóqÕ?À^½”5™óY9OÑxÜE#¥·q½šD¡@é1@é>Èèv†î W2\ +(]„Q)£R¢ÞÖ +PjQ)£ T(åJ™Ü ¤F£MøÝÇYù7d4´ä%É¥Ç" ¥È¥c¥$†TžÈÀ¨”Ë ¸pJ¹pêqM7q´iÓ¦•ãŒ3Î8 P:ËѾ}ûvZG÷*>̍Ž;µ9zis<ñÄ}Ïk#Œ¼A@y‡Ðò>Af’c¶6z'-"­ ­¡¼ÛfZìô%Å°#Å5Jß8 (ivù™=”þfUË3ƒYCDK¡VÂÙI¸4Ð튝›²HÂ各ËÓ̹¤@óà¼"ÅÎé%‘ eB’÷ëNÞ­«˜= >A¿‹ž*¬?ÙH8Ó»±ÀæþÆBœ» vn£(÷œ¼ŽòWJWJ]¥Ëë1Ôa(ƒ JPžŠõâ« ±„çcwÊÅø”Mú‡Þ‡¬Ô›uÖO’ÈxŽ;õWqm ĵ1 ×Æh¼Ý“™5f1k,DVZîƲÎ\±Yi²Ò¸ó#[Vúܖ•¾ƒ–~°d%J8!mÝ´t"ù·ZÈJµHÂùºœxh r-Å{ié`¢¾îý‰:/{“t†v'é;ߙ¬¶=Y_ü¶dMù[A¦- ›“Í ƒù׆­Izɶ$¯„´<ڝà͵YŒDeF_Â-șômT˜dŠxíIÿüQ|ܵ•þ'PV²@É`T +›;DiÇ}4YÛA‘M,Ó_͂ýåäß uΔ&ôï%R¨PzPz¹¨<Ô+‰Bàэüë*†N£’WVŠ‚‘üAÉ,xÓ·ïtê‹w: (±œ„Z%PÒAF@)J‘á7 JÎ`Py@IdT ”t­z@IŽ”t%×c­[·nÅ:•¿{‡q£S§N—:®ºêª®|Žî„‡Šk#x<ëx]›c°6Ç{Úµ9fjsˆ +8„Ë F« K›¸“ÛAÉ·}ô]:äJŠÊß8þHóïPú«3”þæö-…MÂ%ØI¸ä $œ"ë†lÅN+ —¯ypa¡ÀmN±èÔEþqeŠü#ë(\¿SWû­úk×®}¹"ú3 àû4RP}¸Ñ²eËîkTYYyg#ϭԚ¼PºPºPê +(]QoÞ¼y]¥.åü·Œ*Öë®*Ô;®ÉÇ锋ç)÷S–ölډ>”f¼°ú»O³šèen×ßb>Â=ö{ÜcOˆ¡ÌA´Ž~>²R%³ÆJ&Œu¤ ¶ +íBVڏ¬ô1²’eëæœúòoúYmÝ¡iÉ'+Ք„ó³,Yµ"ìžp1†–ôMZú<ÎВ¾îà :‡tJŒÀ´?QgȇL»’tÖv&iúÜa ú5n·#í4êQ¢ö$è½û`$“kóg$ÜÛvÂÍW ”˜TCÖí§¥jù7/(yòo€’Ë›3…ñ¿”>‹¢Pù·ý•vQ{ ù·µäߪ¨[±•szçdòe£ñb¿Kí­D +JOBEwƒG73tcèÌc1*%bTJÀ¨(5Ç¨(•ÇiÏű¶Q %5=Ú6*qƒOþ-–äsŒ‘•,PÒ¿ÜPŠ€Rdˆ€RPÒµP ”t¥$0øƒ’žÍæÅù¼­„+¹.Ž¥–ŽÓO?ýÇÙgŸýG»víÎwtìØñBÁ•ŽîÝ»_ïèÑ£ÇíŽûï¿ÿ>ÇcÚÏhs¼öÚk¯:isŒÔ映Í1C›CTPá,£É‡Ýnn$@mGüÞËR݃´ªüÔ¡ö…”ÕAéoNïó÷´ä³,y’p¾r”$ᒴσ) +ú{M.$\¦èºlÍ~«rIÂ哄+½Í*ÖíëäÁܘ2EêáuJÕ¥—U=Ýõ¾X_±½_ƒ•+W>ÞPø÷`Ã¥K—öl´dɒ;è^r •n”®”ºJ]¥+ëh¸¢œ•òX‰^rU‘^|M&§<x9¤ò²´Ó{2ªªªzÑ/ëÑTãóЍö 8e_g*„uc8²ÒXp=Yi³Æ +d¥ÕÜYoBVڎ¬´Yé ðù‰•%ýd¥êÕ~:[w­½ÝAI8ŸeÉm[–BÒbH¬¡%}ò#ÐÒ'>É S‚A&¦}†›uÖöXƒ~ »íaMF{}xD§Ø|~$ŸŽäc¤hoÂí;_=w€.ê¿Öí˜:¼ÕöŸQÉ¥ïÜv¡@ÉÊ¿Q{wŒ1*Q(€%h«XŒ¶„_â<¤Î©ˆžcñbcùÚ@ée¨ ôPt/xt+Ãu ]õØŀÒy¼î÷€Ò) •â1*ÅcT”J¥|@)›{ƒŒhcT¢£I”1*‘ó% Q(é1J.?P”¸›‹€R”"ÿ1(™pí@É (EqIPŠåJ‰·@IC +¥[ T^^ž£»˜ÔáÂiĞ[X}LÎ:ë¬3¹ìÏ£<÷ÅV}„ëü:ã>ú裡¾­Pú» Jwy'MO!g/-ù%ᬞp +ú¾$܁ÍjþI8ÅØ5يüU¹$áòEç* Ï(VhžX¢P:ªLázhîuYù\OAõùúŠò}èôÑbÀ^ …8÷6ìÜAQî[@Kø¸¯”ºJWJ]¥®e %zâê"½äš½øú|ÑÒM¹dñ²Éçe’Ù£AVod¥'•žMÒüñ*²Òd¥¡ÈJ£•&1uÌdê¨@VZʬñÆz¼[‘•v#+@V:Œ¬dÙºe¥c²uŸ0(ÕÖÛÞ²d¼j´ô}´qyëëþ&Fõ+¦/ ¥ÏŒÀgI§äãx!Ρx¡ƒ “ᦠšMÍ°ß ðÐ{ø(Þ«ŠÓ{„ôI¬ñl‡b$ÜÛ¾„›Û»l³¶bÒqۓj‘ó +›û“ËkTúÆí5*}Jçك€Ò^@i;57RýñC\CKY`PAþmž¢ñ •P…‘H{•”Ú3 Ðc@ÑýàQ†î‰•.å‰ ¥?J§J­âm£RF¥Xۨį=3Ú6*EÙF%·WVªJzÖE­I(9ý@‰;·(E@)2D@ÉJ‰~ ¤g³¥< ”6lXǯ<·)¦ª<÷µÚ‹)õYL©¶5|Kßìfé ô½CáڀÒ_| ä ¥¿[s|ø$œvb%á“pišó¶f„Ë" —£(ºR_tó@}È{hóփZ“·J7`Oº®®Èè@éj@é*@éê ݊ôì5…zÝõùŠÏ7æê½·fk/wf‰¾zfˆÃ¢7ÖãÈJO#+½„¬ô&²Ò;ÈJ#Y:=žíid$æ1u,aê¨bÖX‹¬´™ÚJ;‘•ö!+BVò·u{«ü¼ÕºCy»}²R0-Jµ ¥?ùÑ=´d¥ãŒÀëE¦#™âô[;çå&<Š >6dçU }ëÅ#ÓÍò#ùt$›‘< ·€en!Ť/ëvœù7¿B.ۨ䶍JQ¶Q‰";è"²‰eúkX°¿œüÛB¸} 4è} Ùï@Õõ6½ëWVVÞ__Ÿônº—ô „Ò-€Ò €Òu€Òµå¢Æne €Ò5ÅT•+Zê‘ ieÁ\ÚéÃiÚ}Ze=C ¿—’̝ºã&¥‘LO㑕¦1ÌeþX̍v²Òd¥Íغw +íCVòÏ¿A‘N“C‡³mÝǞ;NP +%+…Z W3-ýÃçì·iÉ'0ý@Ë×ï¡% ™¢õñ¿â|íå&<ù Pd‘Q´O=ªŽG?R͌äM¸ý”bRX½®F£’Ó• (•Ü¶Q‰ÒŽ{£m£RŒmTâ÷WÀ9ƒTÙx’f#P…Þ&‘ö* ô (ôPt_•®g¸’Ç.áÙó¥?J§J-ã'Juc££RŒ×¨”aŒJ(éXܺtã ¥·”ô_·Ë J.§7JPŠ P2 ¤«" +ò%]œ I(é‰ ®Z(é½%$ðêbTjÌî[âè>G÷ï¹öÏ·ÝW;ºÑÒÑ=vìØqÁíqÚÌäsÛ¨äqtcT"ÿöWG@þÍ3÷0X]>}kÈh)lîÓD˜ endstream endobj 89 0 obj <>stream +Á$á ¥]iš¶¦#ÂdêõÃ,Ý}.Ï9pàÀ¢<Áܜ|ÝÍN+T¸_D±˜š5”jP¦ûj™>Õóå+V¬è[géÒ¥Õâ@• ZåYYàVà•®þ8Í×û!+½@ãב•aœβ 1ÜmOán{v´Žy!²Òr2âÚ؈¬´Yi²Rµü(é—ãüÙù·Ÿxý[-’p!iÉY=÷`É´¼ LQÞÄÜwÖ`¸É7€B~Ùdd’kÕ𨺄:×vì ·Ÿ”Bå߬BN»¢’1*¹l£ d•¢l£R´×¨´Ú•¥€ÒÌ8cTÒó= كI¤½(=õŠ`¸Fºá*þÛPjÇKΔN”ZJMâ0*Åz݅1aŒJ Q^PŠeˆ†‘j%g”" þÓ@É”t]PŠ·@IC +´”ÎK²‘Ÿò¹ˆ=Žní¯!F%ãènc·Çõ8º/×fµÇ½…y6¿®oµhfdTRèÛ®ôd°Q YéoŽ0 Š–B%á¾õ%áì$\²æ€½)$á҄›Óuë2YWe+².ÍÑá-ÈÓD0;_‡;¥Pául=@‹Ìß)ÑðV©Bý+eúhϕ)Ú>U.ºy´\÷A:¼õ,ûÜU& +ꁏûV@éf@é&@éÆ"þUÈcù<›UåÀWÈJ=3a®tÑ×£iâ°§h•õ<²Ò«,)€¬4Yi²ÒDf«™ÜmW +-eþXŬ±Yi+²Ò.d¥®cÍ¿ý+0ÿöÒ Ӓù øh)™ÜÈÄMžÁKA¾á{kð¾ä‡Pxdv¸®­Fò&Üþ'DÂ-”˜tb'ö8Jœ˨„½Ë2*ÑúÍgTŠ6F%aÊZ¾Æ¨´ZŸ ·OF( xÞ$ÿöô$<ô dtŒtÃÕü÷2†öñzÉ9ñº¢~_gŒJºÔÄRzÒ•lPÊ⎠z2²R"ù·xd%PÒÝ.=Q{P¢ì[”" þ3@É EÁC”b¹fâý@I—P/ÎãmEäßʹ„pu7èäqt·mÛÖÓõí2Ž2T3“'´…4*™Ò“AF¥ Ò“&ÿfŒJa**ùŒJ!AÉé%}´Ú²dwÐ% ghéH‚„KGìIAzIÓó¦tʚLEà•Yºs­ÌQhžŸ§ð:3_‡<©@Á˜"ÅØáŊèƒKôÞ,UйT8ólÙ²e˞,â£J@ÉcT¢•mTڃQiű7`Túg) 4Ÿát@iˆ3£Ò@°çèi@é ¨'xtÃu ¶£P:×ý´:%ÎvtÇÚF¥ãè¦Gn´Ï¨¤+ÔcTÒ¯=Î% Ñ Q~ ¤× +”h)¥(E†ÿPÒõá%].1 qŽ¼¼¼þ•ÄÊ³Uù·®ävå1*éªÁ¨t$ȨÔO›ãemá+*™ü›`b¥C±sÝ1 +°ŒJ”˜ÏÿœÜ¢¥–%›–¾…–¾Šƒâa†Dè! Á%é%U¸¶ZZŸ¡üa&Б~ä"¹¬ïÉ×l0¾@qüýBEôw‹à+Þ¿^\UUõbɲe˞.©¬¬ìS²hÑ¢Gèð֋2“=© p7>î;a¤0Òí €R@éŽ\^’Í‹³x²Rïtv…¬ôt +»GVzÚÇo³¸h²Òh“õ@VšÅ¼µ€IdwÛ +­GVÚJµ€ÝVþMtx80ÿö²Òvþ­Z¡€Ÿ>ÿvb´d§ãœ^Z +…Lÿð£žüØ'ì`^ð¶„Ä£0Œô?µf¤Ÿ”ŽjTú{H£•,£’@éåè6F%¯£{5d¾Ì•b½Žî $ÍFJƒ¥× gmG÷ý =`¤î¶£ûR@é‚xÛÑg;º¥z•JblGw´~ãþ ¤º”4ĸ (é_Q.¤›o”\>Prâ’ô%›D@)J‘á·JŽ ¤«ÑJº$= $Fò€’J)tÁí]\QQÑ«Xt t t tgÁìÙ³ï”îÌã±\žÍ-õÌ♼7½¤±?d¥è.ú²Ò@d¥¡¤9Fq?ÑLTÌ$ó1qTâv]…¬´Yi ²Ò.òoû‘•>&ÿv„üۗäß¾u£ þBÇIKµA&ûgš›‚@(bøçQð¨zš­V¹¶—‘NĨôg˨äute@ÉmŒJú í§¿ÚNݛù…­Á¨´PZÈïo 4 PzÎy‡üÛ€Òsñ^Gw/†;a¤}Žn@©/9Û8º¥“‚ݔž4F¥hãèƨå5*%¸E”bü@É”œG%WF@)J‘áß”ÌÏ»:(9k¥XGnnn;(ábªËžq·àOšBgZ….âM¡€ÚæßÂê6ù·šëOzåþÑn”ë%#+‘1²’#(ÒR oÒNA–%hé`"ÒK’pmg +y«TÝ¥®OSÜý0]¡yy& ’¥˜=7'Gw½rwGåiJ–¯àûvhðÍ}җ *++Ÿ+„s +‹ûJP=é¡ñÐdÝî”î”î”îÏÑð@–ž}(“gð¶ôE‹õMeW)Úé+ÉÚý[´fÌì¬ÇË}üî»g3“,`&YFväCòoÈ¿m#ÿ¶›üÛd¥ÃŸ‘ûŠü›”˜*q£Rmi)$29|È–›Ê7TC¡êU{y%Yû{3I{DÇÑaäßL=ä‰Ü|Ï`:™Ç¼µ„™¤Š¹l-ù·ÍäßvÛGþíF¥OYÿöù·o•þÈ,Y³£û—¥Ú +LÕ¸é¨ðtŒÃÿšµ~Mx”‚ݎ°Žn»F·Ë®Ñm9ºõóñ8ºõ“Úm×莱ktێîQqvnØçy(è »F·oé›qtwb¸ÐZú¦«çtøê$ÛÑ]ßvt"˜æòóö8ºõǓý@IC,C4bR5PÒ| ä<6PB2€R”"ÿ;( vª’ (<Šñ% I<‘ÂKÒyq—U—UûóäßtEyòo:ßú· ú“7„¬?Y½ÿÛX?[·fû%¶­{ÝQlÝ5ÉJÿ”•þågصi)¨‚·‡–PSŒe)ÏN¬&‡Ïã0<Çûí·„kû¿ø⋝I:¨-Éä²RÉ9¤éh—§+/ÊPž›©`>=kÓ¦M³Ñx²ô‡çh"œ³bŊþ¹K—.}-wñâÅ/æ.\¸ðYš»õ£pғè#=Îð ô ô8 ôD†^Ò7]/~&Mo{Á€ù·7“´ÓAteFK­Q®1÷ñә¨æqß½˜Eّ5äß6Ù ´P:HþíS—”¾ö¥êF¥_jéۏL¡áéX‡Úÿ¡_ú¼ÍÑ]”jáè>ªF·åèƹÇïoŠµôMׂYúö ô"ô”½ôínéf†n V3žõkfoš™h/ âlGw¬”²øy{@IG-Å(9# ¥ÈðÛ%óãJyyyn®PÒuËϐÈcFVJãř\Ĺ\΅ÈJ¥ì¹mRšÐÿ­%×þ©DßshçÓÿíbŽ¾ ýß®åãß¾ÿ[-Ê*…²u×\­[qPÒËã6 $Œr»th.—Þ”(Z‚Ð}Œ Ô½{÷(E@)2ü[‚’“«ÑJn@)ŠK(Ú%]¡qü+ÁÈJ©ÈJ\[Ù\[ùìª[w®ó†üµæôk­û ú¿µÅÖíéÿv5ŸæF>ëÚ½´ÕÆÖ­ÉžŸ­ÛTë6¶î j݊ş…«\­Û—ó%³:¨rsÍ´„ûZ:-}¯â@ëÆ?ûì³íItQOÆ¡‘‚(U÷«•i +áé”YŠíS3‹Çg)迟¥94°Éq²—,Yò½o_¢¯Ûó”â~&™Ô× 0Rß ý¥g¥çÓô◥×RtæúcTŒQi8ù·Q•&’3«Žæ2x@IÇç%ÞvŒJ{0*}„QÉ”H´üöÎ;Ωjëß9é=™Þ‡†¢""*‚ »`Çk/Ø®½‹Š½¡ØQ”* +"½w¤w¡÷^­×ÛÞ÷÷[Ï>IN’I†ëû¾gþXf’œœÎÚyöw}÷ڇ JF>øßá¦ÿ÷§AÄC¥*݀’á莀 +dléÛ*Gté›êÑ­ݕ–¾-Z´(n3ïÁ73áÑ }éôߐ›º> T ›x‰K-}ÃÑJrû•aÐQݺȏeˆü$wë>Ôn?¥ìPûWuh)¶1[¥þ‚¬¤hi¿ƒ¥`áv©"œ‹B•o——d>֒ù©>älgð¦„d–}d† ÈC2d>=0S¾!úfɇì•5mÚ´îY“'OÖi)[°ç}6À}—=KÞ¦qR{Öº½™ í3äoo…åÑw¥€R'@© ŽîOqtÎ7N”äÝ(ÔAI.äT¦Ü³(ÉÕ¬À¨´£’JÊ°‹Qi/õ7”´£”Ž©P%(¥stWZúut'/}s›™HŒuG73ùŠ–ñ½àœOè`ñ>·h;(èyÐþ nÛû`¤Ö„ëùõ +¸ˆ§œÍ“› “*P:æ*G¦*u³ô PʍRˆ{Ü-ђüê°Év«œ•JÖ ¤%㓠J&(™áH%u£WJØc¥®fÕAIòÒN29Š–Ü/øI°O΄¯r• +H°ÝÖ]¯^½ˆ­»1;Í)[wsùI¶u·fàP¶îÇäÇò¬üX^“Ý֝ԭ;¡[Àx‹|ÛO‹ÉJ‹tYIu ¨¼ \ê&”•»ÄÉJ–4]šãŠpÖXΖP„S´dX–¶ºaÜØ4<Ø4¼ô“ñ Ì-ò˙ΠȨ<#(£÷ä|‚±aJ`a\C2*̔á¿O¦ Í=³¦NÚ=KÆ珳&L˜Ð™½o?`»’´â~—en塚 ïJBTƒòä΀ÒǀRw@©_1}™®”†è $_ ñ $çW]P:¥¤¥o’fJf8äT.¬îÒ·„ÍLv%nf²ÆØÌÄÛÌPçfé5”ÔrLÕA¾#ìó& -^€‡žä¶}Fºƒp¿^Éó”s¸ŸO”±MÏñt¿P Tƒ#¢ZåRèË¢þ¦@)`€’=(ÉY)P²¦%¦o&(™ d†c”${âA); .‚‡¿ùx4¨ËJ’eÙdY‡ŠØºëÔ©SλU²u_ ?ɶÊ֝ԭ;©[ÀWèÛF·€4›ÀfÊ$ËJÑ=J«AK¿ÅÑR¬ç çdy˜*¹¨>¸ù®ð°úÇ+ßK}x€ü2>ÏàMʨ<1$£ò˜|W ˧œä“!_}2§OŸÞ3sʔ)Ý3僒)´ô[ºub»’Ž´â~ŸZ[`¤÷“>”> Ž?¾K@@éS@© ô_1ýøbùPúŽ*Å(@i‚JrBP’ Y ”öíۗ”°ªT Jº¥ofHª¥Ç,}i—¾íK\ú¦ïúæˆ-}sƖ¾¹ØfÐ-wÝpp揀Mo/Kߥ؝°=ô<ԆÛöAV#ÜI¸‘_¯"\£Íi¥ÚP:P:Pªx•qä"T«¼(…‘•" $ÁMpé $T%9” J&(™áØ%•(iq $ydƒŒìê"¸ùÕË£DY)7&+•røZt ¨ÇûžH·€S»u·ˆëÖ­º¨nÝIÝޓŸôÝÔ&pJVR›ÀBÊÞ-à_)e¥$ZJ²,ñ5a‹á¨"œƒ"œë³Q„sãÕðy¬ðnÞ¼y‰ONt¾KP`åʕӂò &úF‡dh–ïŠÁaþ¿Ê T–”!´ôY†`O× ¡¥Ù©¤3]¸?¤qR§p4|#u¦êÖ%(Ïë +(u÷Ëk{úä(½ùv( ”†J£uP’/‡i€Òì(ý@î•,}[ËÒ7”Ž•ÊÑýïCYú¶G÷vcé›Cî¡ +ÝKœôËPKߥ €ÒϲeËJ}¥îÀ·>“· —Ù~çiZË?D¸ Pº‰µ"´àÑsy^3Ъ1Õ€£ÔU ä‘Œ*¦þ¦ƒ¶¨(­Y³Æ-y(ÙåW”lò”(Ék# $G6AÉ%3[ ¤" (Yã@I’S’S% ^ðÇd¥Œ˜¬”¬TŒ¬TÆÕÑ»D»uŸÎ p¶Þ-ÀèÖ}+Su xD~’»$mgÈJcèb’¦ eM(«/+%t H®¿¥ ¥&ÓR´gÐҏvU„cõS«“„^„Ãíf ‡"œWÎq±Odž_é™~ôœ^¡ |aŒ +.X°`hH¾+…eRýUXé>ah)Œ4-uƒ–ºÒ€ûcšKvQ! #&u”ºdlÿPúÂ7}úô¾8`R×øP(”&¡(©7s¥… +”ìQPZg3@I.dõAÉØÃÃ¥#'æÒ·Ÿ0*íOZú(­wÄzJó]ìúæ’û~¢[²v$ 4Pêë•Ûñ3=¥wüô…žŠ&Ü (ÝÌ¿®!´äÑóxÞ€Ò)>J’=u9TÍ(åSãËÖAiÕªU§% ©(É´E%k(i‹o5”LP2ñJ’$iAÉFrÚÉ-'AÉJ‚/&+…yYVLV*Ôe¥òòòÚ¤}}œä épj\·€–-[¦î´ œ’•ºÈ.+õëׯ¯eðàÁFÊñ4¡ü’•b ”Ž–ª°,áÕ°S‚PE8hi‡“%@á6BKkݬ%ó°üÞ»qãÆE>»¹~½¿÷Ë`>%€a( ÓáQA$Ÿ|¾A!h)$#u_héË0úPXè³0ÈD_ÉOi …G„î:# Zõ¢ádÜ¥oXN=PGi 4Pš¥E€Ò2@iU*P²š tt‡C¥ØÒ7›%f v”XÓà U ´Pš (M”Fy$s¿õ +—ôƒnzø„s>”Þ€^õËÍß6 ·í£!£¿ä.¾…ý…p)œÏSÎôÓ#P:‘ÔãPµ¼B_%”äÏÀäF×AÉ%§M¨”d¸‰€ K҃£— J&(™áh%K(eggk¤¤%+yi#­(9b´/+ÉóB1Y)‡ÄŽÈJ’j5y·ºUv ¨´ œ’•ž‘6‹oBÙ­[7Մò‹XÊJ²’ Œ©e%A’m±½Möbë> Y)=-ŊpÖE8{¬ç -mq±W(²Ò7öŽi/‹Ì|k×®ã“³Ÿá—Azr@>˸€ õ#-e¤D ‚–ú…¨¡…‰Br z†à!<Û=bás©'Τ/“úPuëOÕm «„³{{FŒ”Ƴêm + 4“oy€Òb@i¹Jò%·PÚ (mW¥7@i_ܪ7”Ž²pH=ÐTAIï`—ÉÉV;.=@iµ“N¹å¸ä–Ÿé–[~²[àd4 4Pêï“Ûñs8§‹_ˆç=Ø絀ܱÏÂCAF÷n%\K¸Œ.à)g)Pâe 9@}ŸJ2(à=r܉ Dˆ€’üËiW $O±ÙäÉ6”¬&(™ d”@I((”$9'ÁÅß"²’P ( ånÿ +°éÅÝþ wûûÜíí‚@ÏÇ@龐„Ö„ëWðÀEAš)ñ¼&€ÒI¹½ó+P’ì)E«*ðÊd Ç#o” (… P"¸ò«Ó.8ì +”äÉ6›Jrd”LP2ƒ JI $e%/m$˜JN‚›<¥B@)W%y·%??´äå¾×AÉ¡@IžbOJV”LP2Ã1 J’.Uƒ’T³œº¬$ÁãJV +T)+ÕBVªWeÊ+A®c,‰ÈJ=öØ£4¡|†½M^±¼óÎ;Y©{÷îñ²Ò°aÒd¥ïãd%ú*hB/+ œìL!+ý¢ï— +ý#­¬”¶Ë’–X„³ÆŠp:-Q„³G‹pÛH4NùþØà’S[ãš«p³Ò̍•ÚƒWÈK1Ì»|ùòé&CK((ŒaYÐH?ÒnW…LC@&ÅMßúŒÀÔچŒDK¿±ˆIé‡î +|ÜkXð¶Aù¸¥íú‚7ù{Ùëí{½)PúUo§s¨ ôÏf¨"¤%Bl‚?7P ÄJ[ԛ%¹Ñ79£ T¥¹€Òt¯ÜããYÄ0œE _³ˆáË %¹Y?{ڇ£ Ô†¬ÐXì „«øÛ%<ڜ睖[þä T $‡ª}¢Ìæú%„Úi凖¼.Jò/§C*Jòd›MRÍj“,‹€Ò´iÓ4m„ q ¤™ d‚’Ž9P’ÒHÉ(InYɲ(y½^Áɯ†¬äK!+åÆÉJ M(Є2"+É9Gd¥«®ºêJšP^Ç5¸½Mî¥ eDVzíµ×^ao“·ØÛ¤{›|ÊÞ&_°·ÉWìmò{›ŒfËÜIìmò={›Ìco“%‰²ÒFd¥­1Yi²Ò~]V’¯üêËJFÅC-ÂýȊ ½‡c³í­Ì¶7ñ%²žeA«]¸¨]1Zr˔[ÑÒlì¨ßCKSYË3™åÏh­7Ž¶1céÒ7†v{£ÃüHcéU<FšÇHr¼™|CÌELZ'&ɬž´N¯ºÉùmÕíIòÅ·PÚ(ý(é Þb T骙 tĆô͔ҁүɠÄ.рÒf@i¶¼ +V{.aµg(ù£ ô  ÔPê’›º}WÛÓ¥þ¥Œ((=˜)xt'áFÂU™€4Ï =·%^v¨Ã¡jä–/òGA)K%¢€JtPBXu8ä)Õ¥þýûG@éã?6AÉ%3 ¤Ò (YAI‹’<²’hÉÍSª!+•¥ØÛä4}o9ûˆ¬$°{›Dd¥‡~8"+½ôÒKϳ·I;ö6y½Mº°"7"+ 2d­rG°·Éxö6Q²Òld¥…ìm²Œ½M"²’ қuYIe7M(#²’Œí?JY)II’• P2¾5Òá~OU„³E‹pñ´D} ZZç”)w„–wb´4Ÿa}.‹™4†™N/½©ž(2MTÜ©0>ö¯ …G2èO†‘¦ÂH3`¤Y4•™‹˜´1i1kݖ9bbö¤õTÝ6cOږž¤@)bOR µ'¥¥ÿ6Aéˆ +‡JQýÔ¥=Üã;tP’{( ”æÑc:m1&ÐDlDP +ÊÝه|º‡¥ Éä·(±ùáS@ÑCì}'á&ÂÕYò·‹_Y)-y¡%7Sùáp*P’'G@IPí  ¤™ d‚’Ž1P²Ä’$X”$߬:(IúE@IB%YIQÉJá8YÉØ2·¼¼¼ãA¼¬tæ™g6¥ esšP^LÊ+hBy×å6ö6¹‡&”Ð„ò† —ŒÚ³·É4¡ìJÊ^4¡@·€!4¡Eʉìm2Yi.M(#+-§ ¥’•6 +mÁÖ½[÷êoJVúQ—•PI•þ–^VJ¥êђnYbmPœe‰Þ|{(Âí¤åÌv,KI´´ZZɾëËÙüá—|»èȄub%1ÞÏÕyHõ« +ò”ùº„$bµ¶%ºŽ$—d·Uq7yóMʙ”BLŠ¬uKªºª=É¥#$TJQý´ +P’´Š€’ÜHëSR@@}bPîɑ!¹O‡…êûf,Y²ä³L@) PÊìy%PÊ`y8PÊ”­-€§óx´Y6 Ä+ðÚº¥,P +ÉAó¨ìeQã û£ äK%9ƒ8P²› d‚’LPª(i:(IæÙbÁNP´äªŽ¬TRR/+5hÐàxºœDÊÓèpM(ϧ[@K>o+.ÄM\Ä;iBùM(Ÿ [Às4¡|nï҄ò#º|F·€>t ø†nÃè0–nSè0‹n hB¹”&”+±u¯ÃÖ½ Yiõ·]Ôß Yé'd¥_¥ß, ½þQ Yɒ¦§o‹(½ùTî@*Z²Gii´´žíD×BK«Ø*«Â)t³Ü™€L‹Ù‹}a!ð üª“OQxäT’¼v9:R…®#É÷ÖZ +në퐛“¶ &mGLڕ,&!¼ébR”â«n†ŸË¥£ ”¬I $w„Ú¿' ”¶$’On¸ù~¹ÿ¾7@) (eJ™€R– Nçl@)PÊ”r¥<¢»ón&´"´äoçñh3€ª1¯hÀkëfÉP–!ÄS”B +”ä=tPBVòAKn¬É äH¥©S§jÖñãÇ[¬&(™ d”ô”LJÖdP’àÔiIÉJ’†[©’¬TVVV¢ËJrBõp¦9ñ¦t hÎǺ˜nWðñ¯å +ÝJ·€¿bë~˜nOÓ-à%lÝíY‘ÛƒÀ'غ{bëîO·€oé0’n°uOÇÖ=‡n‹è°[÷jº¬ÇÖmÈJ»‘•öÅd¥Ÿ-jÿ2%+¥r)W)+YÒÉJZBî¶|ˆÐož‚–¶Úqy³ùúö]琯˜5:2Á91dZ¦ˆ°ŠÑ–9E%¤•åGRµ¶4Œ´1i7bÒ>åL²bRBÕíïZšª› JGzˆ%BJP’ÿýdPr $œ­ƒ’Pò*P’»N¥  ŠR& ”(e ¦tΔr¥<@)PÊ”ò%B+BKþv6ãyyEƒÉýºÙ€R& „L•”‚€²RÀ¯@I‚J”°ùìNyr<(Éá5› J&(™Á¥ƒ€’¦ƒ’ä -&+ÉAՖ¹Ù¤}@gPFÊrNí8ºœÄ9ŸÆG8“Ot>ÝZÒ-àj.ɍغï [ÀýغÇÖýÝ^ÃÖýÝ:cë»7¶î¯±uÅÖ=[÷dºÌÄÖ=ŸnK±uWP[Kým#¶î­ÈJ;‘•ö +픪%+É·ÆaáªAK6Ê]ÐÒ¶ÊÚ-m†–6Æ&™” ¤°Gç¦(<­0‚.IX©*l +Ôka¤uʏ”ÈHÛ(¸í´Ei/bÒþôbRÕU7Ӟtd‡jƒ’-(9% ä6@Iîµ¥~@) ·ã÷AÉƉa@)PÊ”²—.]úY ”+œóv ”?gΜ§ ¥@©P"´"´äoçåJù€Rž<¹An ”²¥LJr䬠Œ²’Ûk€’°T”dÜ0AÉ%3˜ ” +”T2ES2J’t(Yã@IB%Y)Õ"¸üüü\Þ2"+Õ©S§¶îzœdlݍ±u7e9[÷Eغ/çB\Ë¥»[÷ÝغÆÖý¶î-:uz[÷û–/¿üòcËÀ?g¸~غc끭{<¶îiغgS[Hým¶îUغ×Sی­{;¶î]€Ò^êo¥ˆ¬Diø=QVª‚–ŠpÿJQ„‹l¹³,)Z²¦¢%é´¤¦;wn¶G‘)¢2¡ +éÜ…§Õ‰!ò€RÉËmTǃ‘¶ê:’ÁH˜Ü F²¦s&i•»(T!&™ t„…?”6ë $7ðJ_”æ%g„¥Œ5k֌̔ä”%¬Ò7Pʺù0PÊ” +¥B@©R%B«B[w lÝWs™n`¸ÛÙî>lݏ± ܳt-y•™ÜÛÔß>d¸ntëþ’úÛWÔß¾£þ6šMà&± Ü÷ÔßæQ[‚­{õ·5Ôß6PÛJýmõ·=Ôߔ¬ô# dÈJ;tY)±gì$OKH4)hi?´´×F“GUK˜ dڄ*´Q—†T -UPªç©W¨×* I¾¼¶ÁH;Ô{$3Rª‚K 1)]Õí¿ÌªÛѪ¥$’=(yäÞ]獁R Já(eJÙÂ*}rgºçJù€RÏ˅€R«ÞŠ¥b@‰ÐŠÐ‚¿Ë£Í +%¨ªA> „$U–#ÄS” (eÆ@ YI%ÁE@Iþ¦ƒ’ PrJŽT 4bÄ‹Õ¥Ï?ÿÜ%”Ìp ‚’J«hJ ¡%IIª%+Iž‡°ugòn9غ 8êo5±u×ÅÖ}'~2Ÿãt>Ö9Ôß.¤þv×å/ 7·P»›úÛCtënCýíêoí¨¿u [wºu÷ þ֗n݃èÖ=œúÛ8êoS©¿Í¢þ¶€úÛغWbë^Gýmõ·mÔߒd¥Ÿ¥_¥ßb²ÒEKŠ7hé—-ý¨™AKû %]`ÒqÆ@¦¨i ì³E ƒ pƒÇýM=O©GQ<ŠHHx¶9üž¸Z›b$úKŵH,¸DL2«nGvøïdPªlæ>(¹%w(UøåÆ\¢@)¥ ™J#²¥@)PÊ” +„sÞ*”Š„}ž*”J¥@‰p5¡E1 DhV(AU'ÀWuòæϟ_–¥,@)Pby]YÉ«@‰ÞJ.ïÁAÉf‚’ Jf0Aé  e¤(%ÑR´e@¼¬$ RË þ–ÍûæQ+¢þVƒú[9ݺ£þ֐ÁãT†‘3¨¿Gýí®ÆU\¿ë©¿µ¦þv¯å•W^y”úÛ3Ôß^aýÛ[Ôß> þ֕ú[/êo¨¿ ¡þ6ŠúÛDêoÓi«4—¶J‹¨¿-§þ¶šúÛzêo[¨¿mGVڍ¬´/&+ý -U*ÂEAéŸ1PJU„Kkð®DKÑJœ¢¥Ÿc´tÀ-Çí!Ón™ô °²'[4l‘ÑŽD<Ú­ª{¶£ŒdÔڒéo±æ’ê#ü³Úb’ JGXHÞÂDg¤(YӁ’Prʽ»PÚn€’/JA¥¹aI¿é€R ”# ôM®Kï|IÓnJ +¥b!ž—J¥@©TÒùÎR@‰p5¡;‚j +K UP(ˆS'PÊ”r¥l ¬Ì(…¥@”œ +”< +”äɕ@iʔ)•@©_¿~Õ%5Ž› d‚’ŽNP²$‚R*ZªBV +‡Ãâ2r8ƒ…†‡š u9稿5bý[>àÙ¬» q×êÖ¿ÝLýíNÖ¿=Àú·'©¿=Ïú·×©¿½Ëú·Xÿöõ·ÞÔß¾¦þ6”úÛXêo“©¿Í¤þ6ŸõoK¨¿U`ë^Kým#õ·­ÈJ;¥=€Ò~d¥e¥¿é²ßՔ•ªKKñ.ï„rœ.0¥D¦(7Eô¦(AíŒñÐÎØ£»b¯ØcS¶<:`ø‘¬ µ¶xFªÆ2·4b’ JGR¨””=I%Ó@é—(íK¥M^¹×*P +Hª-6@)S@i|¶dãpJy€R T( (µ/”J…}ÚÔ +z° Tƒ½ÞW.!4‡–šÂR'JE€R ”(áyÒA Y)”¡@I‚YÉí7@Iµ»(ɛG@I¯ÙMP2AÉ &((i‡ÃQIVŠº•";ÁIb{Iq?ɤþæ-³¨¿åq.…ÔßJ9ÉÚ¬«Ï¶&'²­É)lkҌÏ{.×à®Ð•¬»ŽÑç6Æ¡{Xÿöۚ{ý'ï·¼óÎ;[:wîü¬¥{÷î¯ÒòúO~HÿÉnôŸü’þ“_Ñò;úOŽ¦ÿä$Ö¿Í`ýÛ\êo‹©¿-§þ¶šúÛêo[¨¿í@Vڍ¬´PR²ÒÏÈJ¿Æd¥ße¥Ã¤¥T.o––JȔ 2ÅsS5B”Œ"êQ â$$Þò :ReF2Ť£,¤öq§%»%´WJ.@É­@iÿþý}’Vk¥åA™“, + (Í”¦JcsV¯^=4¯¢¢b`°ÊEÂ*]‹l:–J¾QCXå…2aŸ'kJß_SxèöZ‚.×®$\ 2AŽèÔ¨P*”Š% +x…xžrs”2³“@I‚; @Iþæð&’š J&(™Á¥Ã%ƒ–*ÉJj'8%+Éñ<Ôß|€RõoaúOfaTÊŨTÈù•bTªÅ¸Q¤«1F¥¦•šsI.âÒ]ŽQéZŒJ·Ð(ànŒJaTjC£€Ùÿí ŒJØÿ­ F¥•úZd¬û†þ“Ãé?9£Òêo³¨¿- þ¶”ú[õ·µÔß6"+mEVډ¬´Yi¿.+É÷‚!+U*ÂU J)hɒDKÑqå¸2ý‡LÑœÁM?ÅØ'mø)ŽŒ <’ðkœ„”´®­2#U¿àfŠIGfHÚæ- (ý=”~v ½:Qa¥nRPÚ(­(-”†·lÙ2+S2oJ¶LVÆä +(}—/)ùU¡K¯bÉÐOJlÞ¯!œÓ®LˆçùšÂ>OÔ +º¯–ðPëڒÎ×՞1cÆüë"hélª ¢ÓI5äÉÇ!D•ão*M%º„²%êoސ J&(™Á¥? ”T"¦¥xY)¡þæ"»Ý€’—÷ðón!F N#›FÝùŒŌeœx9Ÿã8ŒJ'Y.»ì²Ó0*ÉÕ8«Ö£ÒU4ê¾ÁòÒK/µÆ¨t/ºŨÔÖÒ«W¯W0*½…QéŒJ]1*õ¨4£Ò·•F²ÿÛö›N£€9ôŸ\Dýmõ·UÔßÖ#+m”¶J»•öJ•âiIÉJ-%õ[J˜â‘) 7ý’‚  ú9éyÉꑁG‰e¶CёL1騩ªnÿ•èãŽo¡„ÄJÕ-”˜aJ[¼ +”dþ± +Pú!$Y¶ Còmf–€Òä¥Ñy’ˆC +”ú °ô”>.]¸pá{eJ¯×”¬}®–°Ïcµ…î…Œn+—pm¹äôå„ ùÛYÔiˆN'•EA©6þ¦Ò"!žÌá9y’ûI ä1@É%›§JP²™ d‚’LP:4PªDKJVRûæJ†:uP’<÷ñ>Þ-À(f<Èbdȵԯ_¿€ŽJ%tTª…£».•ÐQéd:*NG¥³¹VÒQé26ʽ†ŽJ7ÓQé.¨è¨ô$å>ÏF¹¯³Q:³QnwŒJ½1* ¤QÀPŒJc0*M¦þö=õ·yÔߖP[Aým ²Òêo[¨¿í”v#+EŠpòåð3 ”T„û{µ‹p ´ôoƒ–RLi‘)‰›~‹±OÚð[Ü+¢dT 韇ËH¦˜tƃ-x3|Ü©¼!ÀJ;< +”˜uø”Vwîܹ4$Y6?cóæÍßgÉeRÎÚµkGåI"~[°bŊ~EÂ*=J”>ª!iúnM¥×jIÖ¶­-ìóh¹ Ð=0Ò­uþB¸ Pº€¿ -ŠèÔù©>®¦Z€R –ðÌá9ù@€R0”\Á((Ù ”¬‰ ¤™ d‚’ŽaP2QxÈRPRÛÁÉÊEž»Éx/Žn?ïÄѝÁ eãèÎãL‹pt×ÀÑ]Ž£»>Žî†|èS¸gp™ÎÅÑ} Žî+Œ®ÃÑ}Žî{è¨ôŽî§qt¿„£ûM:*½OG¥é¨ô9F¥~•aTŽQi¦R›Eýmý'—R«@VZKým#²ÒVd¥ÐÒ@i?²Ò‰²ÒááRÑR’À”™’¸é÷ñŒGӒQ¢„¤e¶ªÉ,¸e¡zU·T>î¸oؓ¶ããÞì“Ý@)„£;“SË¡õd­'Kø5ùDuø€ÇÓz²­'›p…Îbเ!¨%ŽîV´ž¼‘Ö“wàè¾G÷㴞|G÷«8ºßÆÑÝ G÷§tTú‚ŽJ0* ¡QÀ(ŒJ©¿M§þ6£Ò"êoː•VQ[¬´Yi; ´ Y)R„“¯‰? w˜ÈT™›â *M¨ôä„ãý3=™Œtl„d1)E›É”>nªn?:“|Ü,xS>î€dԊ ÞðqÏÉdÁ[6òè PÀ‚·":”Р¥·jÑPz +PzFº«®@ÑM„« -çAKͥƀRêtuc TœJa@)”‰ du(uéÒÅ%”Ì`‚R(YtFª +”lÀΡ1PrãèöJ~Î (epjY,}Ë” +YúVÊÒ·Ú,}«ÇÒ·Yú֘á¦)¶9Kß.²´mÛör–¾ý…¥o·X>üðûi=ù­'Ûàè~Ö“ípt¿g™4iÒG8º?ÃÑÝ£Òו†bTC£€É4 +øžúÛ<êoK•VP[ƒ¬´Yi ²R¤' ´Yé@•E¸$ZJ…GtT™â +sQnªO‡âuÈx”–‘LP:‚CuA©ö¤­Þ÷rìI ±'Íƞ4{ÒXìIC±' ĞôU·®€RGªnoÖ¢3@9 Þ“¨+ù{dtC½éÓ§_UWÂ%üÚPj +F ((Õ”ÊjH²Ñd Pʪ(ùªJÇ·X T(=÷Üs&(™ d”„‘*ђщR’¼ÖNš*Prrx ä”|œA€¥o!–¾eJ9œs>=º‹Ù#·Œ¥œÏ{×à$.Ω\É3->úèy€R zt_eyûí·¯gé[k–¾ÝËÒ·G,_}õÕ38º_¶Œ=º=ŽîŽ8º?Á¨ô9•úaT„QiF¥q•¦R›Eým²ÒRêoÈJk‘•6"+m”v"+%á"´-¥퐔ªL ܯ7J0xä$<2éØ •ÿWõÛѨºiQ1éïÖh›É¤~ܺ=‰6“†=iU@2êìI °'ÍĞ4{ÒhìIC¨º  êÖ³wÙ… ;Puk‡˜ôøà&K×®]ïdéÛý,}{œ=rŸµŒ9òUÝoãèîÄÖoŸâèþ£ÒW•†`T…Qi"õ·éÔßæ +-¢þ¶ Yi²Ò:d¥MÈJÛ‹pûS¬„«nóîT T]nªO)0*U"£ÃÄ#“‘Ž–pU7[b÷$£w¬ÍdĞÄÆ%´™œG÷¤TÝ&æ²n¾¤ßàÂå˗÷+~é=é#ªnïRu{ wÛ:J"&ÝÝ +]K¸œp!á,8 P: P:Pª]S§4”2c ä? Pš˜ô0(t7Pts=™í\C¸”p>;YéTêo'JõXúV E©P*”r(½eJÁ(yR’7J.9 M%9r”ÆŽJ}ûöµh=zôøߥ4ÝíLP2ÃLPR d”쀒ƒ7rÆ@Éùøh¦à$ÀR&ƒGÃHŸ­PªÉǯc¹å–[Žçú5²<üðçJgÒLé|š)µ”®¦™Ò €RkzÜ (= +(=ÃÒ·—qt·ÇÑÝG÷'8º?ǨÔ£Ò êo鿍£þ6Yiõ·ùÈJK‘•*•Ö +E¸ВaYJÝ7 Á»jí&>&A&‘ULF:ªBJ1ɒ(&¥ªºÙäæÿ PÚï ê椛½ªºy¨º±¹Û*¿L8–eê±0,“Y™2™’½víÚ1¹«V­š¿bŊ¯ +…P¾(ˆéZC˜¦c™Ð͛¨B/‚=mPŠ…î„Œn$\MhA8—ÐŒGJ ð(Õ”jJŘ¹ó1sg'‚’/J®(Ù%Û!’–J–T ¤¾ P’Ñ,2f› d‚’Ž1P²$‚’ÚN’5”켑PrJnÎÅ (ù9É  ”Áà‘Å0’Çg+¤ëd)¿ TK×PjL×ÉÓÙ÷@éB¶Ç½ŒfJ×ÐLé&zÜI€èðKߞ£G÷k8ºßÁÑÝ G÷§•¾ þ6€úÛ·ÔßFR›@ÿÉiÈJ³‘•"+ý€¬´Y)©W…e)–V„KÅH•©å?!¨´PT-22ñèh Iÿ¿‰ÄmˆIZ”‘~·Ê=þbÒ/6¹ù´KìsHBìvÊDb»[¦›=’3ë|»víªðK- JFÍKn}Ÿ)ӑIÙ21•[QQñm¾¤_ÿBf,´âîB+î÷@œ×çhô8t_]á¡Û ×כ:uꕄ‹ çð·Óë(L€xEºN–q”"@)PÊ”€R@}”<ôQrÑGÉH%k( ¯%ƒ’uØ°aë7ß|J}ô‘…Õ·ÖáZX‘kaÉIä‹@ ë©@IÔ +”êׯo‚’ JÇf8¦AI‹’P²%‚’Prq.@ÉËI2B€R&ÃH6Ÿ-P*æã—Jå\ºãhÏÝP:P:ƒ®“çÒuò¶Ç½‚fJ×J·Zd4û+=bé[–¾½€£»Žî÷0*}„Qé3êo½©¿ dýÛwÔßF#+MBVš[i.²Ò"d%U„[¥áäËasu,KÆV'‡EKÕâ—Œ:¤WTLF:êBš‚ÛÅJºqbR ”þf•{\‰IzÕÍþË/¿ìuHBìtJjlu˔b£g÷îÝk|2ÍXî߶mÛâ dԜð† ¦eÊtd|6+(rW¬XñM¾¤_ŸBá—ÏÀ™Î´Ó~‡ÆÚ¯Òg»-›”},ÚgŸ}V-PºöÚkãAI ×j¤nØ°¡ J&(ÃáØ%ËÁAÉÆÙ% ää\܀’éÙ(¥0&‹}Lr¥>~ —¤&—®. t‚¥M›6hÏÝP: P:Pji‘‘ëjš)Ý@3¥Öô¸—¥o²ôí‹Œz/ãènQé}êoÓQésÖ¿õ¥þö ²Ò0d¥±ÈJS•fR„›--–VP„S–¥ á¶è–¥¤.K•ié÷t´ô‚’IFf8\P2ĤØJÄ-›u1É“~BLÚoGLrHBìpIjlqïÙ³g½G&«|’=?$éè–Üš’¹zõê±Ù21š+„20_Òï‹B™±|ʶl” +Ý´gwۗj +öLJ6CK¾qIJ¹jµÙǤ t" Ô˜Ö%M1œC{î ¥Ë,½{÷¾†fJ7±=îìúöKßgéÛ³8º_Ũô6õ·NÔߺR녬ÔYi0n¥ÈJã¡¥©Ð’²,-H´,Å÷ 0º,E·:Q´ô3´ôë@K&™áš‘RˆI±ž]‘šéé®Ä$vüÙ&wûi¯]Ò`—Cb›KRc“[’d­‡¦}’=Kl”Œš¦·k¦dÙ¨ìå˗K ¬?{Õ~^(‰Ø¥XÀ¦C©äe»;Ï×8y¢–PÐýµ…‡n/2º¡Ž°ÊU„KÍëÈߚ–Ë£kËóԒWԅ¯jÖÒ*.•¹P~ñܹs³9|F¾°OPòe +y2åÍ] +”‚€R\ %yŠ%M’P²Ëa±Ë,Ëb“ùV<(É cѺwïJ¯¾újjPRCx(zê©ñ ¤Æ璒’xPR£² Jf8Šƒ J©@ÉÆ[Úi©æà\œ€’ PòJ>Î>À‡ 1 dòQs¥|.I1W­ P*g÷ãhÛÿä©èÞgОû\Ús_B×É+h¦t-͔n¥GÀÝ,}{GwŒJϳGîëÔßÞeý[gd¥îÈJ_"+}Å"¸!áFAK)ÂM§7G·,ÉWÂÐÒJ½o€ÐÒ¦ä­NŒá Z¢r‘HKÿ<8-™°c†ÿYFúïDFªBL’›Zí©ü“Mæûírßïq8p`‡sß¾}[\ÂHÜ2¥XíÙ¶mÛ2ŸdÏ€äÑì …%·ÆeJ– ÇJý ÔÒ;Á‚Ý %?,$y»DòòÕBýôS‹Ö©S' ýÜ,4,±°"×’“ÈP¯@IÆ°ÈÀ}þùçǃ’¤ëÕ«JùùùÕ¥è~å&(™áˆ &( ¤Å@ɚ Jµk×vJ.@ÉÍÙ{Fü (A>j†¥U«VـR¬P*”j³·¶€€RcÚs7¥=÷9t¼—±ôíÝ7áè¾£ÒýÔߣQ@[Ö¿½‚¬ô²RGº|-õ„–úQ„- ‡–Æê}ä‹`¦ÞeIhi ´´‚5q«õáä«c3´´ZÚ-íE`Ú2ý2ý-ý£¥¿§ ¥JËù«¦¥ÿgêHføÉ“ToRµ½M”‘~gc刘$÷óOV¹½÷ÛäFßcFÚᐠØâFÚà’‰Äj·$ÉrϦM›ù${æø%¦…‘ƳD† É ,É·¾9’y=ò„‘>*y·PRòõbA’çJ„}¯!iz_™ÀÉí5Ǎw=áÊZ.!4'4­)6†¥”É+ê֐×Ö,•£Ë4(¿P²;ËƂ9Â>~Þכ!´ä 9ƒ~ vŸ„¸KâìIƂ7zMZcÛ¼iýû÷·h2ÈX´®]»Z´Ž;Zèçf¡a‰……&œ”‘Q^ æ2†Y,-[¶´°ã·…½¿-ìJ5k֌¥ìììÔ£r*1É%3©á˜%K2(…B¡$P²a\´J¤g'"´›Y–PòJ†–Ÿ<“«‘õʷÜÿýÅ´))cyI9¶€ã˜Î5¤=÷©4SjF€sYúv1Žî+0*]‹QéêowQ{Yé d¥çp+½†[éÁu¢÷)E8eY-©¾# ¥ñÐÒTh)~«™OW@Kk˜6@K[˜’hé@ +Zúý?§¥ÿûï_3üùCU·d1ɒ(&irÛFÄ$¹ŸXåÎÞk“iÁ.»0Ò6‡dÀ&‡0Ò:—¤ÆJ·$ÉRäÌ|¯dÏL¿Ì:&eþ1&$Œ44CXe`–€È9´ÈÏFú _èæ­BIɗ‹„xž.ž0aÂÃ¥Â%­1vìØ[kÈôæ/e.'\XSÂÙeò@“2yJ£’ÎÇCUåðU H«¨húôéyÐWV¾ÀN8wΜ9lyK_¦ä¹‡3p…Šœ v¿›—à‘Ü†˜¤ªn†=ÉXð¦Z(M¹?þøc ÍI,,*±°ׂ҂A 2ÀË/2z·hÑ"Jj¤nܸ±…ýÀ#ã³%54› d‚Ò±Ž!P2h)”ÔQ PÒXá@ɚJv@É(¹%7ó-/ŠŸ¡%È'[n¸á†,.S.ín X}[‚k²&jw]¦s'0^5¢™Òi8ºÏÄÑ}F¥lfr­'¯§þv²Ò_‘•FVz +·Ò áÚAKïAK˒Œò_BK_Q‰‚oi.ï ¬‰›F9n6帅”ã~ÐiI¾:ÖBK˜¶BK;˜vCKûBK|=œ–LP2Ã!3Ru nÿÒoÂD1I“ÛöéGi¿Uîì=6™ì° #m±Ë|aƒCraµSi¹[’d‘gíÚµs¼’=ÓýÂH¨o ¡ Î`é—)Œôy¶L—\ÉÁy“'OnW )ù|¡`ÏE’¡=úŽ™ÙÜX*áê#GŽlI8¯†üzF yôTêÄRyrýyYíb9@i‘ª `êÔ©¹ùBK™pX(Gh)%ìãåÍÝaA!WP’Ýá—`÷I°y#É£VΤ81ɨºö¤¤oª3€ê5©öÃ}þùç-¨ÝtïÈØ.#—ÅrÕUWEÆl5\ t 'DÆç²²²ÈМ——w8 d ¾&(™áˆ Ç8(©\U $Ç3@IÓAIÞÜ +(Ù8«(Éé:‘£]€’‡å”ü 2AËõ×_ŸA“Ûl®n‹JŠ0”¢v×f:W Xúv2ŽîÓ1*Íf&P»”F­•nDVº·Ò½t x”EpÏ@K˒ÐÒûÐR*q= ¥>4ïþšž”C˜F#0MB`šÀ4iÓ2¦•ÐÒ:¦M:-±tZڃÀ´dúZúZúÕ¤%3ü‡ƒ2R\Á;ñ–(#ý FúU‹ÜXåVÞk•yÀ.›L ¶ÁH›ìró¯uÈÌ¡Â)Œ´Ô%I2ß³jÕª™^ɞɬ%FFú2S¤[–àL§œI“&½;a„Wò…xž) ‹G¡dè=E2©¹­xøðáוH¸‚pQ©„sMKäѓÁ¨ªºÅòښE’ÓÅàV~¾$vvž>#GÞ(˜-s!¦¤¸7,´äIž;r.¿»W‚Í#¹åQ«K1Î$‡ Ò=Iµ™TU7™oY¬ ˆØ“ ·Ñ@µPJÚ½DF.‹åÊ+¯´X.¾øb‹¥yóæKÓ¦M#ƒ´¥:uêD@©¨¨(JjT‡Ã‘QYO(%1’ Jf8ƒ J‘£$RNNN”JJJ(Ù¨ÑÛ9] ääs¸ùX>¥A&À…q…2¹ˆ9x%ó1Ó# Œé\9KߎÃÑݐ]ßNa3“fÔߚÓ(à"d¥Ë±u_ƒ[éfºÜIî~héqh©-´ô +´ô–eÑ¢Eñ-}‚ËûszRö¥÷ Ó0¦±L“˜¾G`š‹À´iÓ*¦u Ó&¦mÐÒN&EKûuZ¢š£¥¿%ÒÒ?MZ2êQp‹îš¬ܸÿnQŒDÁ FúYFúFÚ#í¶ÊM½Ã&÷øi½]nþÕ™9,wJV,rI’Ìq¯X±bºW²g‚Oòh$H28( Ö/$èòy†0ÈǙ ²…nÞȑl|!O°§M¾ÐȃÆ »«P&57}÷Ýw­—K8Ÿpf±ˆ÷q«oFg£)·±ÍÛ9çœcaKK [DÆçòòòÈМ +”Òî‡k‚’Žü`‚’J–DPÒb d¥2oãüìTëíÈÑæ[.f^n†/ÚOǶ HÂ\¿,,¹ô(ÀÑ]‚Q©&ãUv};žúÛIÔßN¥QÀÈJçÒ¨ûÜJWÐ-àZŠp·@Kwë–%OŸ¤÷}»_Ó»,ÉLXmuҁ©Si0Óp¦qLS˜f"0ÍC`ZŒÀ´i5Ózhi³NKˆÐ†Ø8ZâKI}=é´¤¦õ‡EK†og3üÂ!˜’ 1éïJLâvü FúEªÿIS7¹÷ÀH;­ÂH[m2#Øh—»}­]nþ +‡0ÒR§dÅ|—0ÒL·0ÒdÜÑc|ÂHCý ÂH_†$Õº……d>Ì7nÜÛY‚8¯f µÍöy,O’óÞü!C†´.IÍõƒ¾²PÂńæ„f…ò@ãByJƒByr=¨ª|Uiä +såäȑ3³%±C™;~°Ìöqå \A!‡OòÜî•`óÜò7«‹Z›FrÈË4»ê€3IßÜM‰Ij­›êž¤ªnj‡·:Äۓ”;iÁ[ªJÆî%j›7” + ãGe”þ _åf0Aé%R’Yã=4jïvEÓP dåülˆÐvNÜÁ|ËÉ>&.> ‡AÆËúZ?×%ÈUËÀѝÆ‡Q©é\)»¾ÕÂ/P—ŽJ'°þ­²RuŸ…[é|º´ w´±,ɘøW*qã[R]–^@`zé]©3S7Ú|2 ÀÁô-5¹‘ Óxi*Ó,¦ùLK˜V 0­F`ڀÀ´™rÜvhiÓÞ-ý-ýGKêÛ*–þ•HKÿeҒ҆ꙒRܸ ÿfQ7a¤Ÿa¤šÜ±û¬rïî² +øo·ÊM½Ù&Œ´Þ&wû*»0Ò2‡¤ÁB§dÅl—0Ò46OAk„Wòh°O&!ýÂHŸ%Õ>IÒuÈ°y#Sä…,!ž6Ù"å 4è®\™Ïܜ÷õ×__“?pàÀËH8‹Ð¤@h”/Ï;>_2¹Nž SYž¤sQ®*/Gr:;[è+#SÞ#˜!ïæ Oš4É”ìv™œ~Iq‡O‚Ý#gesË¿¬.yÀê”óÓòdÍ>~üxÍ®IÜbÎ$«!&©¦IU7µ®aO2|ÜƂ·¤Îi›r«QÙhÊm‚’Žâp¬R’¬däjBšV¥²²2+5zgjCŽ¶³‰ƒOädææózn|\’×*Ä%Τ©[“¸|êoEtTªAß·Ú¬«ÏŽ&'âVjL·€Ó)MîBh)bY’‘ðF*q·ã[º—íàE`zé%é Æu™>¢&×dê 2 ¤&7d2M &7šÜliÓR¦ +¦5L˜¶ 0mG`2héå8ƒ–~3iÉ ‡Ÿ‘ô‚›b$K”‘~„‘ökÂH{4¹wwXå.Þj•)Àimýúõ+ìÂHKóœ2‡øÞ%ù1 côh0Òw^É£¯|‚)_ú%Áº$Õ:…$éÞKú½š!xÔ6S°ç±,‘{³e*Ó:gÀ€×çöïßÿÊ\á’Kò$œKh–';%O=1OžW/W2¹TUš#é\˜-Ȕ›5lØ°ÌL9| „åÝ|¡qãÆy‚L.ÿĉ>Iq»WNÈæ&¸äW«S°:ä)šCž¬ÙiÀ­ɦ‰enVÕ@u˜4Ä$µÖM5Hªº©á_ٓÒú¸“:¤ê5™v÷’´Œd‚’ŽÀ`‚R|®ª#‡ÃawÓ¨ÂkÔã5NȊôlE„¶!Gۙoٙy9XúæÂÑíf¸ñr5|\¦W2Lý-“I\&ÊÚâ#+•!+•ãV:Žn )‚·;bY’ö" ޗS‰»ßÒM¸¼ï@`ºdz dj 2½ 2µ™Þ™º€L=@¦> Ó× Ów Óhi"6¦éLs¨É-¤&÷SÓZhicŒ–v@K»uZb➎–þnҒªªf¤$SReFÒ nœ¿ï?irc*FÚ«íÙ³g§&÷î6i“U¦ë`¤•6™ü`FZàFšå„˜êF‡ßg¸[gGò¨¯Wð£‡Oð£K@R­CP’¤ß aÁ£6Â>f + +ݕէOŸ›³Ù}([ä² Î&4ɑåÈSŽÏ‘$®“#èR–-¯-ÎdÊÏdÊÎðÊȐÃÂLþ ÀŽ7 ‰íö˛;}’ÝÎÅî‘`sK°ºNy@sUiö‘#GjªÖfS}%#áÞ¶ª‚›ê '©“JL’É™…iZ¤)€êž¤xc‡7µn’=Éðqfg”Ìp”„£”Ò2RÚ*W•|¬*î +”ä}5êñ‚³†ôlE„¶rÎ6æ[v>Œ£’“Å".†7ÂËÅñs邬,É`—Åú·\Æ«BdðÜJ5™ñ©"Üñx»•eé4hé *qçÒ·û|KWàò¾éé.}c8;Ÿ™ž™^™Þ¢0×dú„ÂÜç S_éiÎï1ؘ&acšAMnÓB¦˜V"0­¥·‘rÜVÊq;(Çí¦·/Ž–Ô·ÕaÑRªž”†oq3üo€R#¥5nǛ’éWégàý€&¿FÚ¥Éͺ]Û¾}ûfi½UîçÕ0Òr›Üè‹ìÂHsí’3ÂHY[?Ê%™2Ä-‰3$ùÂ+õ©OÐ¥“_Rí­€$Ý+A™¬´ =¹7Cò²ufϞ=¯Ï¹2«G—Î͖ЌpJ¶”m%+…˜Äe +e3^åÑ- Ep¥ájAKõtËÒ'Ÿ|҈J\|KgÑeé|šw·@`ºdºdº•éné!lLOR˜{Î"ãýk´_z/S'©+ÈÔdê2 ™†ãü‹i2Ó÷Ls©É-B`Z†ƒIÑÒ:Êq›þZú·IKf¨Þâ¶*LIŠ‘(¸qÿýhQŒ´wïÞÝ0Òi«¶e˖0ÒëÚµk+¬+W®\b[¶lÙ|›0ÒL»0Òd¶‹z˜Sék—Ì5ú€$Ÿy„U>ò +º¼ç’i痤{> é÷dPˆçÁ0È]a™ÅÜîÖ­Û5B#—eÈÌæ‚L gšeÊÇgÊSêdʓË2žŠ3$“óÃY9!9^F¨oß¾¡`ÿþýýÉi¯_`Çí4hË+‰íð7ÙݒÝ6Á)Áꀌò€f—óÓl¬k³áÙV~$+µ6«ÁHôLÒTÁM-sSÎ$Õ8I‰IÊ­x5ŽMŒª›êǝ֞t˜>ncÈ5AÉ G`0A)ÕÒ·xPŠ•4fTF%+§k¥þfãsب¿Ù©¿9ø¼.>¾=ÛÃòqýÈJ!ÜJ™ŒW9x*ó™çAK˒ nõ©ÄÈr¸ÆlwºEÚ³1/]2µ™®™n —wklL÷°¡îÃlÒ/Ó –Ñ£G¿ŽÔô.öïA¦OA¦^ S +sƒÙe8‹åÆQ“›BMî{¦yL‹˜–SŽ[E9.BKØ> ¥)héçDZúݤ%3$…ê-nK]p‹·ã^ûEg$LI†÷P"Þ©íرcŒ´I“ÛvŒ´FúÁ*wöB›L fÛ䖟fFϲú™M ¦–Õß%9Ó.ùÄ-øÑÑ3`À€öÞ>}ú¼ì°yÆ/øñH@¦-÷…‚n J^^êҥ˕!¡‘KÂlo–„mÆ¿Nɐpb†¿¼‘Ç'9íöÊû:=’Ø·PšÝ%ÙmsJ°ªà ÙåÍ.ÏÓl +¬ìObU~$Uk‹1’¦ö¾U7µÌMí릜Iªq’!&©ÍÝÔZ75H'U݌~ÜUۓª%à ‘jÜ5AÉ GB8êAI1’Ò•R媗ŒJ"´«¿Y©¿ÙøDv5"+µjÕʍ¬äå‚ù¹œAš„õ"ÜSO=¥h©Z*†–ʘ–ã[:—wCzRž‚ÀÔd:dºdºŒ^­°1ÝHCÛq~ߋÔôRÓÓHM/"5½Auî=©3ÈÔ dúd2}K,–GMn +ÓL¦yL‹q0-§·ŠrÜ:ÌKŠ–¶©o&ý;*JK?ê•5ß7iÉ ‰á?a$u#%0ÒOÜu õ½Ü‰»(o׶nݺFZ¯ ä¯Òä^#-² +#͵É=>Ã&Œ4‰½>F³×ÇwX}:…‘¾tÊ4£\ò¡[’éàÇkžž={>ç$Ô ÉSÊBòäâ ¼,?(™œnÊôËñB~Ig¿OèÆënr{%§]Éi‡[ÞÜîx²9%»U°:vù›f—G5›9‰tO™Î@ejN/‹°1]Î>q×àeº ©é¤¦û04=†Ôô RÓKHMo"5u™>™ºƒL_âeú +û÷jr#©ÉG`šŠÀ4 Ó|–È-‰ÑÒjhi=´´™o¦xZ¢þaҒR…?†‘bÆí#íãþÛ͝¸ƒñmÓ¦M`¤50Ò +Mnà%0Ò|«0ÒL«ÜãSlÂHcmÂHÃXQÿ VŸ¾™WôpÊ4£‹S²§ƒK’é ·àNjɲ§<‚G{?þêì¹Õ'Ùx­ÿÝwß½Â/ rq@&5ÍíÛ·oF8…pbPþVŸj$Kò䀼,×/ü’å—ÉOØ'Ç z%}^IgG¸ÉíØqºË.Il»SÎÀæ”ì¶:v š]þ¦ÙäQÍ&ϳX©°YÁ#«²"ÑMRcÅmš¡#)S’j ÜÛj€WËÜԘ­œIIb’jÅ­ö,Q£rªªÛ!õãNb$”Ìp¤”ªaT²¤¨¿i¬³RÆ7d%͝Ïë %‰“ ››‹)ÂÉõ pC:-=úè£ÙTâ"]–^xá…RÖÄÕb>ÙN†ÜF Ói´¨<“ÂܹpÓ%HMWÀM×ÂM7ÃMwÂMà©©-RÓË,›k2½2u™>ÃËÔ/Ó@ËÔ©S‡ 0B`š€À4 Ó,Êqó)Ç-Á¼´óÒjÌKëùfJEKûñ֚´d†?ˆ‘*·ÔiϞ=»Ñ6wÀí[¹'7jrw®ÕV¯^]#-Õ÷ÀH³`¤©Va¤ñ0Ò:3†‘úۅ‘z9$?º¢Ø|àìÕ«×[.aW\’Vm݂y$ßîó~Üî2ºÁ+˜«}íÚµké“ä<ß/“š3ý¯¾úêi„“Çêð@™_žRìã7ò}ò²ŸÀS¦W29ä•ãù=ÂM^ïqË4Èå’wsº$§íNa3»CÈæÓ°Ú£A³Éß4›<ªY)®YQ¬r€!!it“Ôä "‹Û”Žd0’êÕ®Æl5R«AZÏIb’²p'­uûcªnIF%”ÌpĄc ” ZªÚ¨T¹þfÑëo†¬T¯^=2¾•¡ÅªËJÊ­$ÕÎJ[6åí®DKÊàýÀDº,ɐ–‘ ˆ5˜Ö™êL P™N¦0ׄíO΂›Î§:×nºnºnº•Ý]pӃÁŸ D÷,RÓ+¸šÞ™:‚LS˜ë—©+澦&÷Ó(¦ 8˜¦QŽ›M9n´´󒢥5É´´K~ª¤¥¿2-™;Ÿ©!ÕÚÿê1Ò?éoɌ¤n.a¤=0ÒNi*ç&îÉuܝ+µ+V,ƒ‘i ,˜£Íž={ºUnê‰ÖI“&² +#}NJú¯lƒþÒ. ѝ‚Vg‡dÊ»Iœ×Á”ç]‚.Oº?t ~Üåü¸Ù#ìódãåޗ^zé"¯€È9Þ矾©OBcßsÏ=׀P_kù˜íø$ yr®W^–å~ {$“ƒ9žÏ-3 [ÒÙíxr:åÝNÉi»CÊæ²ÚU×lò/=X©«Y!#++þ5œÚ:a×ÖT™Mu“T~$UkKÅHFÁM5—TËÜÎ>ûì*Ĥ¤=KÒVÝÒvi1AÉ G~8vA©êŽJ©êoê\Ôú·T²’ 2j\|îâ‹/v&ÒR¤o@ëÖ­ƒ\â0îÊL†´¦|ö;)f¬+™Ê™Ö§0w"۟4†›N‡›Î†›.@oj 7]…Þt=Üt ,ÿJ§‡X;÷$RÓs Ó« ÓÛ¨LP˜û„NŸ³b®/5¹¯˜†â`Í))ÇM§7›† 0/)ZªÀê­hiCŒ–¶›´d†Ãb¤(É]ñê0’Üe;Y[ i35áõ蝫¹;—krŸ.†‘æÂHßkÂH“a¤10ÒP«0Ò70RV‹õ°õîÝ» U­vɔ7;w~ ByÚ)õˆSì—àÇm®—_~ùz·äà•nÉÆK<Ï<óÌyIÎ3–AKv][R•8¥œxÜ\!×ʇÀ @ˆË™ÁÕÍæ:çqí ù¯(e¬7ÕeÊx<®¦“˜AžŠÔ~kçšÃMÁM—ÁM×P§»‰ž·#5݋µéT¦§P™^¤0׎vï"0}HMîS¦^8˜úӍiå¸a´û‹y)BKóçϯDKê+ëPi© +—wÚr\ZÝâÿŽÉPµ„tP?R#Uj nŸèâ¶#Ém¶‘n-k2+Xoð^º…Ô‰g£N‡‘&ÂH£4¹‹¿Ó¾ýöہšLzÃHÝi8ô«ÅÞ³ +#½a“¬xÑ&óŠ§Ðn¶KöÜ°Üfˆ¹Þ!Yv•C¤…CÒï<§$â™NIÉӜ2žä”áðx§¤iB¡˜PÀ9„LžrÊ(pÈk}^=ÊåÒrÚ%vIg»MæB6›¼›U«°”–i´ŠÔЌ4êjš"#5f«‘ÚÀ#CBRëÚÔX¬üHÆ0œÄHª¯dÒ¬–¹¥r&UWLªzGr”Ìpd…c”ÉÖ­æQ ‹à*á ËR-5mÚÔÎ'wp Ôº.®Kd]¹V>®Z€ëBeÊäšf[n¹å–<.v—½”ÿ…Zü§Ôå?êêt˜Kž†ètÜt.Üt1Üt9uº¿P§» ©éé>éQT¦§é9ð"íÞÀþýSgú2uÃÁôå¸þ”ãÓî{8楱˜—&cõŽÐÒâŋê_Tê+K}yý1´¤œ+‡º0Τ¥ÿ­P +Ò!¬k«BGJh°5‘‘VÆiŒ4FšAÅxjèi(Œô5ŒÔGFêÁ&±ÃHï[e¾Ð;ôËø}ž±½üòˏÚ$]î³µiÓæv»äэðK+»€È¥É· 2ôíhݺõéõNvȨ×À!4RÏ!iZ‹PJ($äò@!Ìó‚Ib¿C’Øk—¸í’É.»Ïa—‘Õn“ÃÛl2ÚÚl’ÓV« +2*kFФ5†fQYcT֌YÅòñðê!©$$µö_Àʳ­üHU3’Qp3z&©ïÄ¤ª·Ž2AÉ G`8†@ÉjµFÂ!ÉJÕËßx˒AK5²é¾%µÕÉgœá çԷѕëâæ +y¹V~ö‰ 2…™ +fr9s¸°ùèMELk0&ÖÆzPÿü÷4â« ¢Ó™pÓyèM—P§»‚:Ý_šn™î™î§0÷…¹gèþ5¹7˜ÞÃôݙ–LÝèÆô~ï4Œy©-͛7o.´´(FK+ÓӒ2â&ђ|5FhI}_V¦¥Ã±z›å¸ÿaF:D+ÒÈHëÖ­[‹„©i™~멛Pé{i2Œ45t¤?Fê#õÔzôèñ M? áÐ[0Ò«0Ò³˜~ž°J~<`“Ɲè97ÛdþñÐårpæ"»ŒuÍí2Ì5³Kžb—ll萼¬ï)wHšÖ ò ÿŸ½÷“«ºÒµuٜ:çVF‰$ DY˜ŒÉ`’É"ƒÈ9#rΓL49ç`›Œ±1×qlό=cÏÜ wî̝ÿù¿wªÚÝG§ÊՒ0ªŸÇß3ƒº«ÎNk¿g­µ×îäÚ’–„~¯˜ØyçóüY–H2–©@+9èC–sà˔ú¾¾ÈÄóµº=Ï Ö6L®gPd>#³»v‰Ù]óÙ]$†GVCÒÂlvößεÙÕ$–a$—”äêJÆÙ]s&™9¹3© JMùBËW”âh©¦[©~Î¥,9Zr¾%Ë[²«NìLœÀÁ”äÅ.2¥1dYÞør¤1°p%º®nêÀôuѧ½¼(§‹uœH·¯ÌLc(ÖddÖf´6`çâoڒ8ݶ¸šv™ö™ö'0w•-¢LÓI8˜ÎÀÁt>L—QZàÂq7“ï}'ÉK÷‘¼d´ô$©ÞÏSyéƽU›–,¤1Zú×!´Tq0ýße:×t0-o Ähgým*ÐJNú¨„¯åøúäÀךö}PÏÓW:åaYCÑï•m¬ùŒÌÐ鋖°¶†GVCÒ\Hvößεř\ÇH–”äêJÖÌÞ¹3© JMùBK”? Â5@KvՉ‰S+ƒÐÁ4cƌ/vIÌW +C–æ/‹k<‡…+ÀM%Þ[é¿2 ºyQìÃ&bÇÑÏ+a1W¦ï§ãtZ‹ñX‡áـњË0n‰«i[i¼L{˜ÛŸr+‡ruÊÑÄäNâ°Ü$}ŸOiËÈ÷¾†Ú•7“¼´˜ËQŒ–!Õ;ž–,2,÷i•–~Ғ•¿1Z²²¶7Ú.Yƒ–O^ªŽk:˜>sRýcÿ5êl»³ÿCϵ-ÉH¿ÂH?ÖÏpFz›IèéIéé>Ž)ÜI +ÞM0ÒÕ0Ò¥0Ò¹0Òiœ¨?žÄè#}-ˆƒüÃ;lb^»úZ3Ûû{î¹çVÓ<ðhÀf`gÍ@ÖlZ ·˜)–ä„@‹sL »Öô HRâ_ H.ÐËO†¿Hó·)_+9é룾–sàk9û&ž¾Ã E«ÛÉ(þ[(!™»È,«ùŒÌ¼šãȂkfc#xd†Ö\HvößεYÎv}Fru%ãn^¯ñÚ7jc› Ô”M¾Ì T“‘ ÂEj+5JK–·dYÞv&Îî;1“)À坙 S’ŽH˜ËÐ/Y,\n*`ðZèµ6ŽÍuЉÝØÄ>út4ð4³9‰Î^…nŸÎ¬ÅPÌÆ9¿!c4qۊÝ/Ó.æö"—éL‡á`:†Ãr É`:“pÜä{/"yéZn–»™ä¥Å¤zßÏ-reZ²íÉúø¾~BZú‘~ÂãHŸê'¤%+zc%ëÓRce–ÆÁÔD¦ÏâR‘â«äεÕô#Õ`¤×˜„/0Ÿbb> +#Ý#-†‘nÆCz ç.ƒ‘΃‘Nçlý‰0ÒŽŒLNô7|™¹ÝwíàkÍÌÇ©³©¯Å´‘¯e5°™á v¦@+Zˆ+Z’c½Ô Z¡½HW ێ´ðÿ‘¼¯_Éúúå4’ò9Íá뾘&ðõy'ñ=­iÏÓ9e2ÊÄPÈÄL©A‘ùŒ™eµàšÃ#ٗrmgc­¤k‹Ú©~®k‚RS¾0ò¥Fƒp‘“pq´äÖ´Uðv…)Õ"dòI0d +@¦-Oòž—¤#Òص ý’ÅߔÇà1}-ÀSðԉMì¡'û§ÑtìxLé$¸i¸i5üM3ÈX˜Í lÄðÌc´¶b·g¿N.ÓÞÄä ÒÀa–;†sr ǝI!¦ H^ZÄ )גê}K”–ì¾-½×-™ÿ BKÚBÿõ/§z/Ž‹Ô¨ç`j"ӈñh™ÃlîNۚŒäÎþ7ÊH/¾øâPFÒÄ|Fº‹L»[`¤ka¤EøJ/à=à é$éhéO/ û‘½é?;yZ$ÛÛÜ×ꙃËg=_–k&L³:œ3Õ×ʛäË|÷µ$Gû²a}¾Vh7ÒáëE§)ñÿæ‘’á÷ÒüEÒ§f?xú”ÀÓröCÑ'{¡­LF™„É×FA&–gdÔÜEEfJ-5Ûr,¸æ¼GfYí.Ã#çB²³ÿv®ÍÙؚŒÔÀ%%Ë|Ƹ JMYÁ¥ JCi©ærŽKYªIKv1œ]£ëLB&¿ŠLM 0_ ZžÄ!ž¢#ÒX¸ oY ^x*ÒW-XÂvà©ك±ìÇvŽÁžŽ‡›&ÑÏSéñÕèû Óº ÓF Ϧx™¶&|{†vWL{ã`: ¦Ã ÇK¾÷B +ŸIòÒTú^Dª÷µád¯ëöâna£¥çõS¥¥7ÃCHïé'JK¿Ð½Ë´dþ£¥úã*¦ÿ\Φ&2-Õ¬ŠÔ@*R徶?Æ2’¥¸ÕÈGrŒô"Œô4ŒôXÈHÂø»™¢·ÂHבsw9Œt!Œt&'òFpŒ·`Á‚Ã`¤ý=Ùµ=ɎÞÙÛu×]·õvÜqÇ-ˆomâm¹å–ëã홅h _ lUèf2Ø3Á×ãk5öûZ—=H§¯eچ”|Y³ÿWÉ i~%…$=ALÂã,â{ú(ßâxCDßá…¡ˆ821Ûé È¬¨‘‘åg[pÍyÌ¨Êæ”ñÈ,«…Ù\!I3Z.)Ž‘HJjàxq”šòE•&(5~®>-¹ÕmïezCóxz/t0UÉ¯"SÀÛ]€<«)‰]KáoJó˜Áàåèœ+ƒG+3ãàœA¨×ÓBìò´$Û=-ÎVOË´ˆä‘’AÒH’_I a⇢OñF™ˆs¼vꋙHKÃ6qPdfӑ‘PËώà‘e!E\H‘³ÿ‘|¤‘3ÒÈß>ÿº d;S”š²‚ƒ’ÅÙëƒR¤æÙgJžç•eYh)’å]ÓÁ$‹äñêVF¦J`ÎÇ|ù´2Àš4:…Kò˜Â¤é,ð”Ã0Œ%Ld+ƲÚEÿõÂMtçX\òA¦) Óªôø$~Î"t=r™6fx6c´æ3x;ŽÛáއêß‘¼txø®ÍæäðÕü¢‹.º0Lû¸îºë"´t´ô0%*ŸiéeýPÐû +z7¤¥ôæœXdÅђ+#P3Õ»F8®NSý˜\£ÈôEö7ý¡Œô¿%"lúß w!Y(ôÿTi R$Iˆ44][ˆôëнhŒT¹‹ÄՐü~LÎv}FºFºF:‡i{*øøጴ/Œ´¦jª•ÍÇ@mƪØؓmZ—Ô¡„ÀV#J¶ +x4 <ïi•†nú`ŸnO ±ÃӒlõ´8KHÁÓZÍ!$¤$ÿš@Ä÷,SÑNxØ¡ØaR¶±pb143‘ŠÌg!#³Î{äðȕt.$wö¿œíFé³%ky}P²}¦ JMYÑ@É>s äêÂÖ¥úÅa?cPZ>´TÓÁäIfÉ‚LW“ óie<%0n ZžÄà¥Ö¥é,–0‡a,ÐC%,f+Ö7uѽø›éαtìDi +È´*¹5ÈešELn=NÏÁÁ´9á¸ù„ãvdTwc¸÷ 7ÛbŒ–,|qöÙg—iéòË//ÓÒ-·Ür3E—S¢ò>JT–iéYý §¥w(èýƒ0žb^ƒHÑ¥a©Þ5“—꜎k™â¼L#妞%£á‘s!-a‹;ÍV?ÉɯB¤Ÿ‡îÅʝ¶†¡Zc¤J ÉWCFzJ?Cr¶ãé’K.Y‚‘„ûG2•¿Ye¤ÝÙw„‘¶ Ifi«b=ÖÇLÒV'¶=•ØØd¼GÀ£1žVY?ˆÓìtzâ’6O«±ÅÓº,xZ¡9$‹¤‘’DH0ÊD¿ìW¥|Ì£"eÎ1âqâþÁ‰FKÃ6‰@‘ùŒYp-â=2<Š¸"a¶iù*^> dûG dûQ”lßj‚RSþú ©û™€RbGJq´Ts‰7JKÎÁ4 ™¼™Ôã&nòi ] °p‰PÔò$¦/…ÌÐY cYÀl–°§­tX¯›Ýø›úp5 ‚Lcñ2MÄòO¡³§Ñík0³Èü^ŸÃrs£Í±Û0‚;2ªKÐÒñÇ?”–.¼ð BZºV?UZºZºZzˆ‚ޏ‡´ô’~(èý:½ß ã)Ãh)’ê½DòÒR:˜C¦xWÓ_<6÷yaÔÿ•<ÐÿÄàÑÿŽGÿ=$ÂVq! Å£Š é?B’ºþߪ§Ùâ\H¨¦"ý.öHÛÇüã0,[¹ÓÖÝEòJ˜öfŒô¨~HŠ³sm2Ò&ðÁLåoTi§‘¶Új«Í«Œ´>n×Y0Ò£U1FS0FXLcXV¼ô@FQ»§5Øâi5=­Ë¼§še™fµ*I†¯<’ *~ՇìEÅÌ\}1 +rb<EŽŒ\î‘3›Î{äð(f[ŽŒ´”ÕW\ÃgJ¶G5A©)Ÿ-(í³Ï>Ë ”j^7Ô@)ýú÷2FÖôÈAiä´Ô2I<žÞÃhyUnòi›I€q 0s  Eö/…9ÌÐf•ótNn*ÁMmtX½WSV~>‡cz"y +ã`š†ƒiM"øk3ëx˜Ãëõæá&b¯Ü °tŽƒ>ø ÆÒÒ)§œr2eÎ ii‘~ ¥k(Qy%*鸞÷½ô6Zú½Ÿ óK,Šbñ”%‹.-‘¼ Ç5à`ZfdªéjZ*Óç*ÿS‹Œ¢xäAF¡Ð%Èyà‘G¯!ÿéGxäGx䑅䁫ž¸õŸ=CX Ì?1FfûÝï~÷Û!©H.]ûÇ?þñGa0ö‡?üáÂí›o¾ù)n/Wï"q5$ï¯2’ksùHF:!†‘ö¨2Ò×`¤-0F›TimìКl³ÓX)Sx͘ˆ‹àM¤—ÖÅzkSZY~EVcɱ83,Ó4’ª®Z[¿AøTy òb¤Ì9õÅQC!ÇC(2Ÿ‘s–##”ân?ˆ€’í ¶CXv–%ÛI" d•¦FJ¶¿5A©)Ÿ(¹;‡l*üΡ]`]”¿ˆ–"¦2 ã&/D¦aÜ䇢˜9“¦/I˓˜C³ÅŒe6´Ôêœ"Ö»…¾jâwÐuÝ S¯ÃƒæƑ˴ý¼2=>¾_“pÃÚá†a¯×ö¢m´´óÎ;ïÈÐîƘïÃ,)ÓÒqÇg´´0¤¥ ô-]F‰Ê«)Qy%*ï  ÷=ô~‚ޏ…ù%E±xJ¥èÒ÷BO‡~øAè]0?Òá¸È鸈ƒiè¹¥D¦ÜTÓß´"ÔÿÔ$#¯"ÿoˆ,‰Gÿ5*ŒÁ£ÿþ=Ä#uóÿ†‘þÅ­þFú“§áøGïüã< Ñß{®÷Ûßþöoqþ* ³}úé§? S‘¬~»Ý{óƒüàÝÐÑøÆo¼N¨ö%Rܞ ÷–öfÇîÒIqîì¿ËÙ®ÉHûUiçáŒ4—)¿Œ´NÈHz‡˜Žvei%ÖÌ8VÏ Î‹>ÞDºY`,µV]‰5X`5æX—$Í2M…kU’_y*â^ƒ¼!bÖlDbä$ÂCŠâȨ&E\H2ÒR‚’ûКê–”lO‰%«bÞ¥¦¬¸ dSt)A)îâ¡ú 4ò£o#¥ú´Ô2 s5y¡7Uàɧm&Ï$A£“ØD³Åf•Í>g1#y:§ˆ-i¡¯Ú0( S7¯Ã}8˜FóŠ<Ž.^‰×æ•ÃhÛ&ì¥:BK¼xZ:âˆ#Œ–Ž¡èÒBŠ.-O‰ÊK)Qi´t#´t;´ô­0óÖòK,Š2¬ŒÀD[¾ú>øàƒ÷C?Cp\$ß;â`“«LÃr™FÈMÂÓòª%è/òÐPGF à‘ä?b\He<ª¸þäáBòW’Gn™Öz\[ãq9²ÇM¶ÞÏ~ö³O<;óh©HV‘Ôî½1÷â믿þÚ Õ>#=†o-íÍànÑIqׅG/+gÿÏ®kÛÛäi[¦[Æ0ÒZUFZ…· ÇH£CFÒ:êfEu€Gm,µxT`ùåXY$ÍâL…+ÔÖjeÕC^~Ì}G7Š£ 9(ªIFâÑgÂHË|Ÿ¦í¶D@ÉNF@É +q6A©)+.(Ù­ €RÜ-Ö6åmòÛ¹ŽåxCãȗxýß-Å!S nòhBY*ðäÓ6“ÓÐÞb¶Ø¬ršŽÈ`³³ôK^¤›Z@¦6^‚;Ã×aõd_hþ–ìµÙhIÛD™–®kSƒi}R½ç0dCii÷Ýwߍ7Z:0¤¥c=Öh餐–Î?ÿüó(Qi´t½o  ÷maæ­å—TŠ.=z Ì`ž„wÞyçíл`~ÛM+á¸OÂ[ãÙuÃkã"¦JÓИ\cÈTÇÕÇMõái™1ªA‰E¡%É过Ë !#Éÿ­âÑùôò¾úæß}õÒ¿ùê¯õÁ#_}ø/>xä«sËx¤ÿ#.¤À…ôw¸~g.$’÷Ë_þòç×ýy@¯þz€°ÇéGoX*Ò«a‰ígžyæiœß!hû`¾µ´7K€³ƒ—ë'§Cs-ÝÎç1-E^}[—`u]'/Æ=¼"÷‡´d¯Íömᣥ™3gÖ¤¥ù¼yí-íÊèïÍ,9Kvƒ–Žµpᓸ_÷thé\hé +z_æÛZV‰Ý-1¬ŒÀã¡ÿÀ< ¯¿þú«áýº‘pœ9˜>ù䓟V/ÙýEÌ©8˜Ü¹HL®QdŠw5ž%¨¥¯žüw-BF>däCFȆ¢¦ýŸFðH=⑯>ý'<òñæùêñ¿÷E«¿÷W_ûë¨ Ôõ>úè£=ðׄ=N?z¸=—ŠdÕÝÍåøàƒ~;tCÞyçw„io–g,)ÎTÉê#9$ÉIvhg'Ä1ÒliF”‘dnâI먍Uf$­²<ë-ËÊË°Ó,Éd(Z¡‰êZõ‡‹7\–›‘‹C¡8(ªIF àQýÛmGtÌ­cÃõﯔí +J¶/Øae¤(Ùµv”lŸ±Çöže%·6Aé«,‚’õr%«ÊoÓہ’M~JvÖÚw@–ã]#g¤8PªOKõ‘©ÂMÞ©p“Š„b¹bŸS¡¹6í.Ʌ/¼fÖí%XF¦=4úFK¶ؖ0ZڌZ¶q´t´t(½¢ ÷‰ÐÒiô>‡“H…÷HTJTÞL¦‰;÷ ©ÞáIx +Ÿ‚»ÅÂqïŽ+;˜ØkcL¿Kñ4†Lq¹LÿžÚªÁMÃSµ$Uý©KAeZ’‡ÊPT“Œ*xôÈ¿ÿPŸþ>Pïþ6P?ÿ&¤þÊWßÿܸ~ê aê f샵¾÷=Ôõ^üõ^{íµW<Ø#Ìæq"Ò#ÉÃÑèÙ­8æ|¼ñƯ'|{%io—wΏØÑK;V`Ç1]}$YŸ`¤¯Å2ÒÚk¯]f¤éÓ§O%ø<#3¡ÊH,^IW•‘Za¤‹©ËHZƒeF²uibkµ"^ŒÄƒÍ²HŠÅ£8Fª J#7›q†1bÿê§'¹ÊP²›¶C8P²ýÁ’í.P²]Èö#ۙvÜqÇ¡ d;˜íe5AÉm†MPúŠÊR‚’›p ´ë®»–§žMÂ(m¾ùæåikb;P²‹(Yi~[5ï1‰$*ÅÅß ¥å-q6§&(Õ¤¥Šñ†#“?D*V91„–Ìp› Wod«´Th„–êù–fanփ–6®ÒÒÖChIó`O¦Ê~\r0ןÉõ'ÇCK§T¯?±¢K—E¹ŠxÊ ¡×àž{î¹ OÂ}$/=DòÒwH^zšpÜ „ã^!7ÔÁôÁ¼‡ƒéL?ÆÁd1¹Ÿ“û919‡L 2 õ2 Kÿ^ÂÕ´$7 ÓEà©‚ÆRN– ªÊü¡âò‡†K-Eƒ¢ +ýÛ2’üoðè_À£N€G ð(¡ÖÿSB½ñ ð(!<ú‡x”0û´û ±G˜Í“½;ï¼ó6Oè|£wÝu×]íá|ôÌ yÞyçM ÷TàN î(ŽŠ½:;´w•‘v ‹¥Vii¶ÊuBFZk­µVã°ÈTLËdLËŒ$ÓRf$[$¶\c¤D”‘–\µŸ%#Õ³ ËJK Oõí_Íê¼Î™T?=Éx‹»½Ä’í.¶Ï؎S”l·j‚RS>OP²ñvQ³]°ã@ɪNÆ݌©9úV?þw“cý°#7KÉC#À£:n¥F}KÃ"qÙjÞÒ´T3Ë۝‰«Tp´´.#¸´4¯JKÛBK;3#vgÒì^­[¹,î2oO"¿ä42MÎ!žr‘•E¤z_C´åF’—n'yénŽ<ÝO8îaR|¿C8îiNÇ=ƒéeL¯ã`²#rß«"Óû!2ýô§?x™Ê¹J.Óo†Dç†qÓ³sæo²Ô¦Jœn xrž§AE0jX(/JUá¡ûºâWäß"Tä_‡8‰*£?'%Jêiÿ) %!£¤Úö‡¤ùI5÷ï“jýï“àQRýò·Iáѯ“ê°_&Õu?Oª?M‚GÉO?ýôã„úùG õø õý{‰÷Þ{ïû !ì;Á;ï¼óFðÆo¼¼òÊ+//¼ðÂ3QUÿñÇÔøᇿíßÿý÷øwß}÷˜ì ˜¯÷„ÎWz—_~ù¥žpú|O`}¦g÷1ŸtÒIÇÒ]weªöÇúìE.É®ÃïkÛ<ÊH묳ÎZQF’U™À6;«2€U)3’¬JV¥7F)\.¶pl YÀ-’4̙ä)”>??҈i9ÆúGëß÷T?êæғâ*Ä݇k;Ž»æÍö#ۙš Ô”ϔ܅o”j–çŽ;ú—¨äâo‘B5ït¬Yqv)ÇòF¡¸Œî%å/¥,Uò–Õc7KВ‰3óom 2AeZ҆ÑÃÖÑÏ&©·4%¼ÔÁ®wXo½õfòš¡¥-î¯AK; ¿Z÷@héPhé(òKN ÓäTrNÎ"²r1–KIõ¾Šä¥ëI^º…ä¥; ÇÝC8®ì`zöÙgŸÀÁô ¦È`z… ¦78"÷61¹ï‘ôýCª +üÍpdúIˆL•\¦ò‰9s5Yx nrqº%àÉe:¹t§FE¼Q  +ŋˆU'ªŠ_KÂL¢aòωaòç(UÉ(!Hé‘ÿ!¥ü}J­ú}J­ü]JíýmJÍÿMJxô«”úå)áÑÿJ©Ã~–R×ý4¥>ùä“%?þøã÷“êç÷’êñw“ÂÕw’×7o½õÖ«‰×^{í¥ÄK/½ô\ðÜsÏ=<ù䓏=öØCÁƒ>xŸ¯¡½Ë× ßæßzë­7ú`²O˜Í=Aô¹žpút°öpHzæš#}³´1ÿ=a¤]02ÛÃH[Wﴝ™·róÆH3f̘ŽAYƒ2)d$í°c0(”^öß. J¥ÌHÚ¢ ár±Ãm•¤$ÇH %%ýuAiùÔò±„õ-\Í+ #EŠÄEÝ\zRýʑÛK" äîÃm‚RS>3Pªyá[”jSŠ;úITªsn¥Fi©þiÙe1-# žÆeɔÍƏù3q²ò®‚€UÆ˅AWWW©Zo©=¬·¤­£§ZrÅhibxñ•ìЪᅡ²ÐÒlÆrCüÙsä-óm˜;`dveÒì-íÏé¤CÈÁ=Z:Žœ“…dŸœÁÁ¸ó8w1©Þ—“¼t-ÉK7Ž»Zwq:î>Lá`zŒ ¦'É`z–ÛP^$&÷j 2Es–þý1éßvbîÓ(7¹³sÆM§‹ƒ§až§¡UÁ¨K¹ÔñP<'â—?‡u­:QEþÌq³! “?%†É?%œ“¨"eEiÉߥõŒ¿Oë‘—V3þ6­fý&­þ*­öþ2­æÿ<­Žø4­~ù$­úIZŒùã4x”V'¾Ÿþ裏~˜úàƒ¾ŸR?¿“R¿™|ûí·_K +\_J¾òÊ+Ï'_xᅧO?ýôã‰Çüá„ïàøV@|5ÐÐÞâk¯÷5ÜWùøK}M ’ĘАݛÐà-N,^¼øրøj ¡½&Ð _î/Z´èbÿ¢‹.:×?÷ÜsÏð5Nö.\xœ§ ²À¬½C9äOÓgoϜ”b¤`¤¯ÁH[ÂHó°%±® #ͪ2Ò´ðRC™‘Iì¦ãÙWDŽ—¶i¯íe¢wñnÐ^H"3âŠmçÃE"Pʄk¦RH2.+·ÊÜʳ…8¢*Ÿ±¬p6lÉۛ–¸(ܬ·«q&ÅEÝ"WáÖÌãye€æ}¸MYΠÔ@1¥2º#×ãÆÅßÌãÉVj”–"ÈT³X[£UKF$5¿h)eÉÒu^µ‚÷Ð2ÞJVË[½‘ oX°»*e¼sámU¥" äî‰ë ï‰ÓÆÒÇ3Èf3–W· l@“±HS±H«1xkAKkcŒÖgóšƒÚZڊɰ-dg¦ÏîԻهKBK‡’¡»€ƒqÇs0îdR½Ï Õû<’—.&yérÂq×PwðL·â`ZŒƒéJ>À¹‡‰É9dr^& ÌY.Ó[ä2}—–ߣsæjrÜd‰àÆMV¡ÉâtV¦É.'sðäQ‘¿K“ߧ*ò»4(T•¿Š~B‘äWY=Á/³zž_dõxÿ+«Gþ4«&ü,§ý4§¶}œSS?Ê©åæÔïgÕ%ïeÕCïfÕWßˊ6ßΪßȏ^ͼõÖ[/eÔÏϧÕãO§Ÿþù'ÒO?ýô£©ï|ç;¦ðÿ%ñ&ñ &ñ&ð&®»îº+\H1׀è«öÙgŸêŸvÚi'ú'tÒ1þ1Çs¸wÄG|Ó;øàƒ÷ódnöô´e}Ý3'¥¹+Íq©i6— ·!Œ4›ËL,ÈXilšÆH+±‘ŽgKµv¼Ó’ñÊÛjÊG.mˇKÃjÝ[Õ{«?¬âv.0·ÞâVãò^ñ ùLÌ\¤>f"±¶8F2+q&EŠD¢nqéIõ¼5‹r7å¯ +JõkÔOTŠ‹¿Õt+¹j.çhÉEâ"wf×¼ ©æŸ±Ä=ÁÄ] çįÞT+âtIùž8»½S}eWÄ墷êÊ,µÑÅ i7f©—`(Æðþ6­h›Ò*˜¥éŒàšlY³°Hë1È1æó˜[2#¾Æ,ّ9´+´´´´§˜&W÷ÆCª÷‰$/JòÒY„ã. w §ã®àtܵ8˜nÂÁtL‹9"w1¹ˆÉ9dz²ŠL–ËdéßvbîÍÐÕd9àâ¦w‡pӏ~ô#+þ£ðZ^«liÅÀ ž¬`“yžâJò«ð.:Ã(»Ã×XJò·á•&vš‰jtBa"“ *áq3’ªM’U 3‰‚f¿¶ÈÙ'Q…‡~nP”Ó·}šÓ—ÿ,§GùiNOö“Ì«mïçÕÔ÷òjôò£ïçÕ%ïä…GoåÔW¯çD›¯äԉ/f_ýõ粯¼òÊÓYõóã™gžyæÑÌO<ñ`úÑG½/­A¹;…ÿ/µxñâ›S·ÞzëõI¼ƒIü„‰Ë/¿üÂÄÅ_|NpÞyç} ˆÃú'œpÂÿ裏>Ô?üðÃôe‡öõddv÷dUvödK¶ódF¶öÄH›…ŽK1ÒL¸u˜z3˜„«3We¿œÂ]‰·,;Ài‡,ñÎRðºxhÇx´bSe{&Ò.ÐÒœôޗóLRFàPÆ- Õû8’—’¼t:á¸sÇ]ˆƒé2LW’Át·¡ÜÄ¹ÛˆÉ E&ó2iŒÃr–Ëô ,íÄÜK¡«ÉŽÍU¸é°ž¥Uh²¢–”I OÑÙmsvɽª OvU¯#(ÉÏ›{FI~n,åq›/7žý‚{=~^îa%¬]~˜ˆdBIT%ÎI~œ3'<„|½oPTÔW¾WÔü ¨‡z·¤‡ü^IüNIíx«¤f½QR+_+ ^. ^, +ž+ªsž.¾úê«O„Gž{ O=õÔ·óÒ{óêç»r<ðÀY À-Y£qìÕB¦é«¯¾ú’ô¢E‹ÎO]|ñÅg¥HDKjTOJj|Mh¤L}ôчý̓}}͈=|rÚ|͒í}í`ó=ٍ-<Í¡¹žvº =íyëzæ¸4¦ð|:Öb¬Åd¬Å¬ÅX¬…¥ÖY’;™ÊíLêV¦w‰‰^§¼&¿½*dXi–†½C$Ãåb ǖ-&[V‘¥fËïó6+ªD È‘‘Ye‡Gf³#±¶#EŽ¹Õw&Տº-KzR”š²¬ T3Q©~ü͝‹s+ÙKƒ½>¸ œ£%‰³µq0EÉq“ƒ''n%qdX¼¨¨•~UšÐ‰PÔ9Iº)E‡¥1Pú/|æéÓ"½[¢Ÿ[éñvú¾‹QèÁJõ32££qìV¡ÜÉX©©X©ÕÚ5y“[µ¶i#ÞßæBK[@KÛ0‘¶‡–váô÷”¨Ü—ƒqê}ÉKGŽ;–p܉8˜NÅÁtLçQPÀiIßed2/Ó½÷Þ{+µ+邏¥ۉ¹o‡®&qÓca¥çŸþ©°ž¥Uh²¢–VÜ®N±Ûæ„ oBPo“éôÝðª^#(ÅÀ¨‚QïQƒ#ê}ÇR\qö¡Pq!ì<‚z&vZ(œÅ LÄ/%L„V%«’Ýü(]•ŒäÌ°çì䃜þß÷‘¿É#¡“HòòýŠômï´è1Þjѽ٢‡|½Eüj‹Zðr‹Zôb‹ñ¹µ÷™5ÿÉõÆwJêœGJ£Kêµû‹?þø=ÅGydqA@z{Aý|s~ñâÅ×ç4Wçn¼ñÆ˳×^{í%™+®¸â‚ŒFëì´Æíô´Fpaê´ÓN;.¹pᣒÇwÜa‰ ” ½?‘Ù+Ù5ñØÑ'§Í—ÉØÊ]o#́‘6ð4›f{šW3<Í°ÕC¦öƕõI ûxà} †bƒ‹-lÜÉ6稹IKLïÖ"ǔÏ2ù3á2°¡¥‘ ׇ-“aëȏ]j_X ò™Z¤¡PäÈ(œ ©&#En5Iî¬[\Ôm™Ó“š Ô”º ´”‰Jõ ¸ø[\¶’;×-9“C&{;‰p“ƒ''ný~±EñbħÑ&a’ _ôP’¾JÑkiú/ƒ•Êҝyâ"%ï  èµV}Û«­z‚—[õ@/¶éùžoÓ3?Û¦&<ݦ=Ù¦~§Mí}´UͨU½ñ@«ðèÞáÑÝ-£;K>øà­%uçMEõîu…Ûo¿ýêÂÍ7ß|yž<²ÜUW]uAî²Ë.;;{á…žž!;?sÆgŸô:á„O „NqÄû'Ç{'HïOèh2lh˚ïkÛ—˜ë“çæi“[ϛ7oÞÚ0ÒZ0ÒjžÌƒºœ:3Í­iÈ®íÓÒèz™§,îÀF˜KԜ£E&uém/Y¦|&œü¶ ´ ’áÒ°EbË¥²püpE֖·,ûS"6Ö_GFfŸ™õ6;^“‘\ÀÍskÀ™ÔhÔmYғš ô•’¸Ñy¢RÍø›;ÿVÓ­„s%»-™Öb֖ággââ)ÂMžœØÒý‰G³"âÓr“€Þ0IÐ9&I:,Å&’¦ÿ2tgS•ÇTèç=ÞJß·3 +ŒG7#ÓË 0Zc·ñŒàJØ«)Ø«UäÕîµ0Ukó:·Ób#fÉ{_»Øñ[í£Åm£ÛÛÔM·´ª×nh¹ûm†^YRï.*ŠO/.ªÛÏ/,Z´èìüÅ_|zN0{rNX{BöÔSO=:Cž~šŒý´ô€Ô¡‡ºoRe¤6 ¯'´)퐐øZ€ )ж©/œžãkkÛÀ'ÏÍ'ãÍÛxã×ð4¥¦ÃH«xÚíÔåÜ c ¾Œf&ö‡ð®Ùi!b ·1w[˜ÅEæsóczgÉnSÞ&¿‰-[¶Hl¹Ø‰,&[`ùüûŠ*ëŒo„ŒÌ{Á#³èfÛÍÊ×d¤È17—™q&5u[æô¤&(}õd9Æß"çßâÒº#ÙJ‘ \„–"¾%Ëës&[`/“‰­F[—‚rõe¶EħùeQ—H‚JÐaI$Ş’¦3ôi{•£‹ tv‘ÞÞÛŠ¥‹áée ú²Ñ Þ8†q"ø;·Ò*ŒôtÆ|MìÕLÐy6¦j¦ÊlÓ¦L©-™p_£èҌۅpÜ„ãö¡–Àþä{“òK‡swÜPdºôÒK-0w&•¾-ýû\M—ÀM‹Âpq“•²¼êß7§³yïžîž¾<݇çé’Ä † Å%÷Ôãø ž£ž"€÷ õlˆQBça©å  èñ ¨C_ùH§ã¡N=Õ·;õ¤÷wêÁïíÞÝ©¶-îTSoïPËoéPGÜØ®~¹®]Ýtu›zíŠ6u⥭7ÜpÃE-êÝóJðiñ’K.9­xÁ,,aÏ fÎi ŽÈjÈÉuÔQf?üð}Ó²*{¦4¾»¦4Ò;%5æÛ&4ú['d64#æšš%ëùš/kûš9kùd¼ÁH«zÚ W†‘Vòf͚5F# ÂH}LÇ&f'S´=zÍظˆQÈ3ŸsÌìL8½m¢kÞ'YÉphUUñÃåYB¶¬*òù/ñZ"6ÖßÙ®Ã#çB2Ûîò‘#Ùnà)p¹3©™žÔ”¿*(5«éVª„«IK¶zl9“-0{‰p“­FçtŠ`T¨¾Ri‘#>Í/‹º$Eݔ Ã’t]*õd†ŽÍb´rôsH-Ò÷-ŒB+ãÑÎÈt1F=ŒV–kËXNÀrMÂr­ŒåZ•_£µ3bm&Èz˜ª˜>s™R›3׶æ`ܶ„ãv$÷uL{ïA&ó2Y`îXn‘;‘Ú•–þm'æΆ›Îƒ›.ÂßtiXœé¦›n² S®žnë€S1¼mÎ.èå¦ êê^bw÷ƒQßÆõõ0õõXˆQO<ñÄãžxã –òÄR&Où‘§Ã aqN„÷ì´„ —²$I1O‰_ž1I ­žÉ YÍ39ÉÓ9AÖÓyÉSɓEaϓ%É-’Ç[õß¾Ó&y4tIîÐ<=`PÔ¥o»·KOð­.=Ð]]zÈ;ºõà·u=öØc·t©Y7v©•×u©åWw +®èT¿\Öqë­·^Ü.Ú¼ íÚk¯=§Mxtf+TÚ¢Î>©$\=¾¨Q8ºpòÉ'QÐð’Û˜;âˆ#¾‘¥DFc¹kZæa§´ŒÂv) ÷ü¤^œ¶Hj +ÌKh2lœÐ´X?À…hªÌô5iÖðµñM÷5‘V‘&ÃH½™3gŽó4×ìÁó¯7tkšƒS¦ )j!âRˆöšÀy$Ë|Î0½í …$™÷‰P´‚ªøá"©±z¼`u¯ÀgTÉuf8BFf³ÍzG\HFr~$—”än‘cn‘̤8gRÜY·&(5eYA).Q)îê·úiݑl%„³ÙnNÔ8Z²•b9|vâÁÂqd²7‘8nrðäÄlMq {–úMxCD6ñCQ—˜t“I‚^KÒIz2EŸ¦éÝ –+Ggç±\ ÄP´2(í O'Õ͐õ2x ãtæk"æk2æk*æk:–k ¦ÅLhiæËúLŸ™Mó˜f[ê=Ÿpܶ8˜vÄÁôu2˜–@& ̝uÖYGâj:n:nZ7Y]¦3)eyqºó§‹€§KÃ[S®¿þú+ñ<]Ãý)×AP7@P7CP·»»‚ºÔb0ên0ê[`Ô½TÀ¼–º–zÀƒ¥¼‡zèA ò*¿”/yÄU=p5l@Œ/!ªz4i"jy4Åù¼´&2Z=šµƒø¢›GòvæLõpQòPIò`‹äÛ­’Ú$÷·KîëÐïÝÓ©?ûV—ä®.}èânƒ"}åm=úò[zô,7õèùnèÑã^Û£&\ÝsÏ=÷\Ñ­V^Ö­F_Ü¥>¸ KPyn§ð謎+¯¼òôvÁçÉí°hÛ¹çž{lë™gžyT gK'žxâÁEqìÑ¾ùC=t¯œìÆnYY†3Ðí3ڏ¶Iëui˔Æ|Ó¤Öþœ¤æÁ -ûuZö³\HæËj>.$_she_³i’§y5Fëi® zÚ/íAk¿‹éØÁÄl ]š¬E¦m œ !_ó9ƒ¤™ÞFÿö2EË ¨JyUDÖÌ0ùŠÏÁúD¬­ƒ¢™ÍŽÃ#³òfï#±¶8Fr7wÌ­¦3)î¬[£Q·&(5%”–£[)R­;.çR–-Ùª°õa™{vÎÁL™œ—É–šã¦<9‚Šˆ[¿_>Q½ñ鍲¨‡‚PÔa‰PԉIº3EǦٙ2ôs–ÏÓ÷F¡Äx´02mŒQ£ÕŸõ0‚ýŒå £:–ñ€ ›„ [¶*“a5¦ÅZ̒YX®Ù­ ˜Ms˜aó˜[à`2dÚ.D&çe:þøã÷&ó{?Ë7ى¹#(2pTxlN;û‰ÄéNžì”39Ewž§óð<]HõK ¨Ë ¨ËG‰®‚ ®Áu>¨ëÁ¨Á¨›Á¨[¨€y,u;,u,µØKÝ剥îòDw{•_ʍÜHîåÚ³{¢ª{톏¤¨ê>+fUݛF2B«{)Qtoá4þ=„ƒgß*Yzµä®V±Ïâ6ɝäÝÑ!¹½Srk—~ù–nã!}ԍ@Ñõ½ú¢k{õ½W÷ê1®ìÕ£]ޫǽ´WOq¯ZtAxnÚ{V·úàônAå)]ꡓ:/ºè¢ã;ԉǴ«OlSÖªÿf‹`ÿ҂ ö-jdö,Èx욏ràQNc¹MV/I[fô~´YZýIŠòZ)"lI"l ío3DØ͗i.$’ É×¼#†‘`¤^OS¯›Ih9ríLÌV¦h‰ÉjáΩ@Hr[°xñâÛ¢ªÛdI%%·§¸ë#-´º=CÕñ,E¡rH^Ls[Ahuk)‰sni‘ÜÜ*¹©Mrc»ä†Éõ9“\Ó­_¾ºÇxHŸrE¯>yQŸ¾ãÒ>}ïÅ}zŒ ûôTçõéIÏé»ñÆÏìScNïUÛNéÔ£æߣ.9¦[x´ K½vx'ÚÁQÄöãŽ;n¿6‘ê>­”uhJÆ*RP´åÁ£œÖùfYjŽfÄÅ¥µƒ­—­“¢ÐV’[B³dzBóej -pJ@’¯Ù4ÞDžäkaÂHýàQÒåYfœ&f[ÿ•”s7:=%&µ9BS!îWÄ^‚ªøÃŋ‘ÏÕ~1%bcñu9BFf½ãðÈì½Y~Ûl7h€‘\À­Ì¤fÔ­)Ë”jž«ïVª„s)Kõi)â`²%ä¼L枍p“ƒ'GPNl­Æ‰[Î_lY²m^TÔ&~(ê¦ u]"ug’ŽMÑÅi:; eéû£g< +ŒL kÖÊhµ1n€R ÔCü­×ø &m,&m<&m%æÁfÄTæÆtfÉ̗LŸµ1dë2¯2•½Lš§å\&qÓpÓÎø›¬ÈÀžT±ÜxÚx:`]˜ru$u4u,uéN'AP§àƒ: Œ:Œ: Œ:Œ:Œºoԅ`ÔÅx£.¥.ƒ¥yŒË=ÕžxãJïšk®¹Ê¨|1ÈÕ>Ω@@u ·Â^›U]›ä4“ùRi¡Õµ2γÜ֒£ÌA^rMA`sMQ|uu Ò*عªMre»äŠÉ坒E]’K»õ+—ôH.î5Ҝߧ=¯_N¿¾í¬~=ÁéýzªSûõ'÷ë™OìW;Žï"ÓwÁ,èÞ#<:´›Àf·zmÿ.áѾTohíÞFý«V Ŏ-™íJ¨ùEíB[À£¼t“x”%)£å¼Nš¤”fĚ)Îù')Pš I;¡94)Дš…öq!ùUxԉ´{š±­LÛ¤2’ÄbÂY$º?%æM†Ì_÷à/FV„õû…šV4bmvPäÈÈ×"xä\Hd°pÈ©æ1·úΤfÔ­)#¥ev+¹ \£´ä²¼í$ƒ­ˆƒÉ–-¦79“-?GPNÜ2uâÐêK*•¦z±¢~ñ‡ˆz-E=™ O“¡¨‹StvšnÏ0Y†"Ç ž"&­…!kŤµcÒ:ËnFµ»6ÀHfÌÇ1ú˜“˜S˜SyœÎ|Yƒ™SF¦Š—iæÚfå2Yú÷VLÛmÈjÚxډ³s_'|÷°ú·jj?ÜO‚Q‡wó +£Ž£€QǀQÇÅ;Œ:‰JN'ÃR§â: –:–:‹xÞÙ°Ô9°Ôyžã|O@u' ºÐP]ä‹<.ò¡ªª +ðPqãÙ% QÕ¥Iî‡M]uÕU—RÇúÒ4IS¡Õ¥YÒÎóœÙ+ EñÕÅ%ÑÍÅ-’‹ZY¶#’ :Å>çwéÿ:·[rNäì^séÏÎèל2 _8 o;q@_~ü€žåØ=ßÑzÜ#ûՄÃûÕ¬CúDŒõ©åôª7¾Ñ£Ú»[½¶Ge®:Õ»;w¨Çwh×:߶Uƒ²u‹öž-JT^/‚GmTåñåÀ£,x”ÒàQ +®Krl·ä˜ÉQ½ú‡}’#ûõ‡èoÐG}sP_tà ¾wÿA=Æ7õhû êI÷ î> ÆìÚ¯îܧFï؋o®G³M·zmë.uçêìM;4›´kx6nՐmТa\·¤¡]»À£Ø¢G³Y·zmn—zwN§`ÍÑzí·Ù­ÕY-¤f—HÍ.’š]ò∕sâ’ÉYËJAÌø´ÀflŠë”“ÜȖ\uÕUû’ž`êÔ©]H‡/iCZ‘’ÇA6¤(å`¤¬g6IºzÀ` Fª‹ƒ!ÎQ=‰ûZà6𸭼)KiP†Rg‘Ž##³íqxä\Hîì$©>#<àÖt&5eYi)âVZJZryKîL\ÄÁA&[85¹ÉÁ“#(‡QqâVíWR*áŊºÎ.k’ ³M’ @*GÉ0˜Ó£~Ù°[¶~—†bÝNÖÚՙmø5[5sVoJ\ÁVäšÚo hëA}ÑVƒ”óÔ³l6 G›7 Çݤ_O¿q¿Z´aŸZ¹~¯Z¾nºdn®5îÒø®Õ¡­mv툫µ 0Vmåöµn¨- +S&À£2E¸ÉÁ“#('nIF¨ª)Kˆ:Ç«%þQÇUIT%ɤª’F2HÉ!K SÅËd1¹¤‹êFì°\?_9ˆŒæ!Ç"ã±»‘IØâ)áõr’U±ÔӑՑ5‘È,dd]~o}d>`#d:—lÆ÷nγlÉäڊ¹¶5³n>“p¦ã×´<·~Ȧ*iíØ¢µc«d‡v-°í;ÈQï$½šëm»%_ë‘lÓ+™ßÇ0ýú½-ô[à)Ú|@µé P4¨/ÚdPß»ñ€cÃnÜëד®×¯§ŸÝÇÅŽjåÌ5z­nõÆ]ÚèWëQLëjLm§jv+‡ÖZH;* X&….ã +£1y1Í`NˆÓŸñôeÄ>=i¡PWj¥•VêLNœ8±iKHZI )ÜÈæë÷rÐRZÊx¢¥4´””R€RPJ†Ùô½A˜ŠäÂlŽ‘"x$(ò€"oŹ6êïìqòù/ÓNâl¬£ 'ÎH;ÃGFâ‘+$Ù(#<àÖ¥¦,+-ÕÂ-%-9S}nrðGPNܒ¬/nÕdÉÞðj‰?\‚á’@’UI!éªd,A¦VÔҘZ1¯m_;,×ÉÎÔÍæÕˆև °ÉfÏÃî7™Àf¸{ã$d +N„UU‘éÈêÈÈZÈLd¿¼².°²Ÿ·!²ß1‡oۄïËcÌã6åÑ6óô¤›{zæ--}¨Ê‡ª|ͺ­ÍÄ­MÌ­š§[sÏÙü¤&ðü”¦òü´&õüŒ¦÷ü¬fûüœæýü¼VÀÖ­…­‹H‹–ÆV­Z$[µI¶lך٢!ÇzónÉf=’M{Icï“Ìí3'‘ñþv£}žAÑú@Ñ·è Öî×SÍê×CÎèÃ׫Ƭѫ®Ö£öNëVoLío¬Ü!ü˜ÜNÉ£6­µ’vÔBÚQÇQaêÔ©ƒyMNœÓ›ñôd@]é &t¦Çߞ’´%Ǎג”b ÿV@ò¾~/çë/²¾)ãéSҞh)(%q+YørT;çoÙ,SÛ¥"Y˜Í1RÅ{äÕN‚‰Ä{â6úÈö·ÑÅ¥Q£±ÅÎH;Ãí È‘Q$¸Ö5©)+.(-%-5€LqÜd 'ÂMžœ8ŒŠ°T£â–sS¼Zâ— *‰ª$±Ž&)d(29/“æ,—IRbß*–Ó†ÖÆþÖÁN×ɞ×Åîgפô²#öã:dƒŒe¿GðeÛçJÈ$<SU©È4d:²:²²¿<™Å¬¬ÃçÍæ“×CÖçÛ6à{7ä 6ôDUyz =€Ê7ª|=ó&ž~.÷¾Îåv³¹ |UI5u^Jž—VÌ£zõ¼¬ºi^ÉkêÍ-hÆÎ¥:ÑÜÉU­šè›´Iæ´kÞÏélÜ)Ù¨K²a·dƒ šIÖëÓוֹÌÆS´N¿>eP4³_?£__¹f¿ž`>=Ðj}z¾é½zÜU{Ԏ©=jÖÊÝjïä.z­S 2±ƒãüm£q­b•1-¢–Áqµ"Ž£x”âtçD<]Y±OGF(Ԟ;vlkj̘1-II )&$$è_sHÖ×_d ¥4´”ò¸”ZJâVJJ‰°n¼¾<¨‚’?”,SÛbm5ÉáQ$&ô‰Ûü#{|d£ÿJÊÈMiÄGxÈAQ„ŒjâQ.¤F©¤¤&(5å¯EK‘¼¥8SMdŠ¸šjú›"åÄ­Æú!­¦DċŠ¬ž‰?\‚Pd"Mâ‘ÉhÉbrÚ¨2lYåÌoíeyvµr}íâ%¶»V=mlíl†l‹]@Œ]ÆÛÃ~هw¡Ÿís¨ÌhvÓ±È8"5‰l³“ÉÈdd*2 ™Îצּ¬Îß®¬ÅçÍ@fòñ³ø¢Y|åڞdnºŸíé1f{z u¹Þu]_@µ^`¢Ç]Ÿ‹ÍÖO¨ ë'µ¯ŸR‹Ö§fõúiµrý aÀ¬Z¾~)¨#Ö/r3Z‰Ev¿iS¯Ín—¬Ó‰tIÖîVwÎ궠™dá³µzqõéSV¯BÑ´>}Ûª}úò©½z–•{õhSzô¸“ºõô+u«YºÔÊñƒì—Œiç¼Z Ù-ÄÕJ£Þ"Ž£Ž£¼8§3'2êÈ +€Ú2£GnM¶ ¥ÔÀÀ@1))$$y$貁~/ãë/Ò¾h)åëRžh)鉹’€RP +<»r¤JåR‘VIY>ÝïœI•XÛ5œ#Õ$£šžŽ¸>N>ïÅùùI–5bÅA‘#£8ïQŹFÎHMgRS>3PZJZŠ8˜ê#SMnŠƒ§ˆ¸5‘Z5å/Ñæ0ñB‘Œˆí,KMd2Z²˜ÜÖ¤1iß*g~k?Ï°«eÙßr0Rž=¯ÀîWìš”¶ÅV6È6X¥tédçìbívzIdéc_µçÙfGsëÂd2žýw2™„LF¦ð¯+#« SùÛU‘i|Ôt>t5du¾c ®$3YÓӗ¯ÉU®kq©«É î/›ÁMf3=éLn’„B¹ê™iµhfF{üÌ,±Àœš:3/ˆ™Aa¢E5FI[þZ­ˆ9kG:ÔCkt’„ÕU‘ÕºIÌêÑ¿N#|¶j¯ñ>`•*MîÕMêÕ÷®Ô£g™Ø£§šÐ­‡×TvªEc:é°µ| ]xÔß&<êm%ã¨ÇQ‘ZÇQ^ˆÓžñ´eÅ>­QPK¦¿¿¿˜îëë+¤$ù¤$g’dI&Я¤ýrÊן¥ ¥$´”ôô¡ Oô•À­xvk­¾¼|á0Pò†€Ò0gR9I;RÈ9Ž‘HŒ©‰õ–F< |Õ¤¦ÝØgg½ÕtÕÇ£ˆ ©~Îv“‘š²¢Ñ҈L5‘)Ž›"ð!¨8–j@âpë«+5 žÄÃ&–ÅÁ“ďE&£% Ìi{J„¹LÚ²’l^)©\Z@»}&,Éd,9|ùðšm‹vo ›Ôm<¤˜MŠÆ÷EÝúʱÝzŒ1]z Ñ]TÈî¤d‡ÚÑ×®¶õ¶©½=m£îVáQW‹ð¨£DH­ˆã¨€ã(å„=¥¬¨˜éíí-¤{zzò)I.ÕÝݝM" I&¡ÿ–$©@¿—òõI_„–ž>4áéãÜJn%·’‚’]Þl·êI½PúK—¦F©æ‰ªHvLì4J_ ‘e3ÍëñÕÌ=ŠÃ£š.¤åKBKõ‘)ÂM5á)BP‰,ɯ®ÄÙ«šÒJ2Åq“£%‹ÉiSò« TA)Á6–`C³jLI)#¥Ãšß"€ .¤lx³œvûŒ”'"VÀ{Tdû,…÷¥j£oe_mc‡m‡n:€ÎQœN5iÒ¤îQڄ{FMœ8±é¥¹@‘ÑȘªŒEÆñË㑠|€ÉD>o%6õI¸@L&5šLE “)ÔTœ試$pX™$TS¨Â8%% š’V¦d¬€j +刦äS +’ÉœÁŸ\BZÄ“Z‘6õÁJí$™tH&S4¾“Èá³ÐIÔåxHŸ< tqmH§ž ¯SÏÒÛ¡çëéÐ3w·ëé»ÚÔ¢ÎV5µ£…\ìÒرcÛJ"™Ö"!µd”‡ŒrQVìSÈ…òé®®®\ª³³3‹d’HB’FRþ5è÷’¾þ"éëoÐRZ +<Wàé‹|ÜJ>n%”’žÊc@ËÖ(Ùí„PZâvywíEęäüHqŒI®ªÉ#ZVŸ¿øëJM«±Þ(Š8ŽêãQŒٞšŒÔ”ˆ–j†ãj"SÜO‚ŠHdI~Õ¤¦©j*kTeÿ¨IKÞZ²¤oRù°œ•Øb‹-a5¦M)`9wîÜ$~ò5)ÚSl†i¶Å dŸBRŽ`Xž=4ÏnZŠQ‰m¶œi…nZ¶Qìû£È§¥=¹s”6ÿ.¤é¥ÍÚ¤éCú‘þÕdÍߚŒá£LƲ½›ŒÃ#2Ž~¼o¢'…¢A(4!×*i" ˜Ò3O àÐJMȨ¨D4>‡ä T㋒q%Nãۙ³V’ˆÚ,“H2ºÛA:,r&0'<4Š:ñ¯uèÛº!£.#£vȨ 2jÓÓ··ªEm-äb—Ôü–¢H¦ ¢›b2ÊAFYÈ(¥;::²éöööLJ’NV$•@I2Я$ýrÂן%|}@-ž>Ù÷„`>n%·’Ïhy¨ÇXz¸ï<Øc¸½ðÂU»–Í@Éîͨ J[Ô½û"Ž‘â҈ãPhD@PŸ¾ôRÓ*Ǚð8(ªIFKéBj2RS¾´T™jºšâà)Ž ª/½Ô´M#BɚU™- ¥ræ·%í[åjLV¶ÒªXZÍï9ܐ¢=/Áî— ïá={v +FJÁHi)^ù¥í3ËFšÅ÷òàQ<*@FEH¦â”Àž–QäӌÒæߊöév¤cT___gUºîªôð+½UéãoMúù¼~6úP@+¶üAßD¼J ḈøÑ \Wԝ2Ñ3¦êÐè ’U;)G4˜C8~?X fX⠔LÔèþ¤•°¢I›ÍÈ)j§v»9‰ªž¢vÊ=Eíú¶Ȩ2jƒŒZ[!£z¨Dv‰4ì"ÉFàQ!å!£œ`'—…Œ2Qº­­Í$jmmM%+’LT$è_Cñõ¯ %ßsùž>ÞiI_îáVò7aôPü-ƒ’Я|[½’ݺ% ½Õ¼g>Rá¹æ!ôÈQ«¸´™úØ3òå÷ù›ŒÏXêéšPTŸŒ"x´”a¶å󤥥D¦úÜTžâªQ©¿ˆ¿|2"¾ªŸV³„C”´=•« +X5&m^>ۘ’ÏÖæã (ß'·á†0RFJ°#Ú}^å«+ì& «×,4HÃHi¶Ô ›kD<ʁG9ð(Ó@œØS¥Ý¹4Jû´IË(a@kUÚFio¯JG(ú‡Îªtñg&Ý¡èóºÙò{<¨*¨Ê7ї‡Â‰¯P¸®83JJ|ЛÒ3÷¦‘ŒH¡7k¢ÆôæÄ4=y¤@à°hIÕH i±$"„t¢Îªt„N¢*µQϨUÒ +µ@F-Q©ET42*ÑCEµ#_ Ù¨ ¦æòQ2ÊBFYÈ(#J§MZZZR©R©”JJ’& IÂ$п&¾~9ðõ·>´ä{úP߫ВG‡yžžÀcÈ<ÏuËn%ï(<†£ðŽ"þ6ŠÉP%»¦Öni³[I"9Jq¥@©æqôš 4õaçó_ñŸ±,¥Ý3áSß-‹ ©ÉHMYÁi)™å¦8xŠ“š@õe–e¡ÃrÁ"´T”F… dÎ$%mT[V¹Ò·É.L)_%§M®|¯6¾_Aù/»«Â®®#Yaä(«E¨=4Énšb_MáŠHKƒG¼=ð( eašœ“‡}ò£´YBCÑ.^ªJKUZ«ÒÆ‡¢0éðL *¤Óƒª|}o($2‡Â)°P’z¾NŽÐwr˜¾“cõ¡pÔ¾3k"zèÌIì¤Y(Μ-½!Ѻ-s U¤¥…RFHÉAQKŠJøŒŒŒŠtŽ‘QAOŸ²àQ&WÁ£´áQ2JCF©b±˜4IJÉB¡HT$ôßBñõ˾¯?ó¡%ßhÉÓ'{t˜G7y0¦Ç@yŒ›7ªâVùŽ"þ6ŠáÅÀb +Œ +ão³fÍ5$QÉ@ɕˆ$s7 +J5¦(•fäñùۍÏX0×qPÔ(ÕÄ£eE“ú´4rdªÉM5᩾4ºV¿,2r ŠC¦š´Ô(m_­ý9̙äñª_¾JnÞ¼yå+x‘6Ø`»¬«\sÙ* Z1fm>…`”•!¤ !~¤Œ”d_M²Ã&ÙkS¸RàQoO<ʀG˜& âdÁžì(mÛ¹P´‹ç«R¥Ý¤8Dô¥ª´ }€I«gU…¢/jõA+"N¡× +çÁBI +SBIéqÛÒ&zú֌‰¢5‹äL8n–¯JÁ’ˆbEŠCĜD&Ø¡H’«’QÖȨ@òu¾JF9È( e!£ d%ӆGB!“D2ÿÿ³wPQeËÌ:Ž3cÎ9GÌ9aBŒˆEQ‚ ˆ("¨¨`BŜEŌ9çœ3æŒ9çљqæN¸÷UÕ>§O÷á4ÓHìWµÖû×]omÛßÙ»þ]{ŸÚ™3“¤N£“Ô²X[Ãbm ÂZ疬¬àC­ðDZn þr+*+!-+ä– +ËJ©°¬” +ѦBÈ©ôÊJÊþ›RV¢ý7*+Å}PI9Ìmêåª*£¤å‘ⵉô•îᛕøOÒFç{£"þöˆ=Kʐ„X¦¸}SÜæɉÿÐýf%^Ê·dªQRú|*]Ñi1OËzƒb’“¤^ÊÔ1úâÐÝ]Õ«W—Ú RÿðHôªxjLš©1}¦ÆDš=RôHiÐ#¥Á\›³nZ,!¥E”íQ:´GéÐ¥GO“-N4@RA'É(2{&CÉl(ß ÿX‘,$Vh¨ôþŽ,XHù )z‚'œ…¤o%_’ÜI–ôðí³dÐ ¾d&$ªFÉ,Kf’ï D*É¢oŠtÎ(3þ$äŒ2ᣌ$²=J›QztF(iÒÉÎ(MÚL™2¥Nc Ö©ubM"»%+tKVVðyVVä–ào“Ü–•Q*t´©°¬” +1¦B ©p5VY‰ößTe%ÚS••´z¨ÊJÊaÞâîrÿ36 ñߎ$d’Ž{ú;u˜{’?A²°J‚-“©æ)ñ¬Õ7&ñ2Oq»¥x%¥˜¤4:W.ƒ¡Å<-ëiOK}òHte)ݗÒ{Cɨ!™„ÀŸPIf+4TzQfkEà/ϜšëW$iHàûeNK_7s:à[eB2€Ð›f™2HÆL±Eß +ɒ>™"Ù¥3tFig„’†œQz4EhR§C?Dö(mƌS§‘Å:µ¡XƒX¡Q’þ¬•º%+Å-QY ¾A*t¯©T*D– +á¥Â-S3”•â>Öm´¬”`£dêd3ڊ”. ™¸MMlX¾}1á)Ž¿o2£úfå+͓Q·d‚Q2ZL2²á¦í‘(ƒÑ e5zm‰<u¬V­šÔ0‡Þ§Wžè-qz_¼D‰䑬SÑÛäà‘¬Ñ#YcšM 75¦ÞÔè‘R£GJ) z¤4hÒ 3"I‹Æ&-:I ³§S äýôzÿ?’ FÅ +½”žÀß!Ěþ^!©I°ˆE’† KÆ´ŠÀwΘNå%³ bKúŒ±%Å¡O$S¤çŒð'ÑsF²=J­gÐ¡X“3J“!C!© ÄÊZtKV$薬·[*,+¥B©O*•*~e¥¸O+ÑÓÿÓJZe¥¸·ÞTF)^)‘ Æ·#_9ߛšN’?û±°Ä[âe™lž,EÌ㠌º¥¸’V1é«6ܤlEy‹2å2Êj”ß(ÓQÎ#Dí©Ñ y$j>H¯AÑ Qôj½$…]x0¹ZcšµÆ„k©×“°5z¤Ô˜“S£GJö(5Ú#’4hÒ »‘2;IZ!òU’N-ðß)¢g¨¬HÐUé ümé­ %5±IƒÕ-Eð52=IGBç©5$ƒ,iÕ¢ø!Å8£Ô*g¤³GÖi ‘°GéÓ§'±"±VDg”¬Hd£” +ÿå©Ð(¥Â²R*D!¥—•âõ=ZÝ´6áL(+™`”L°GIæ-¾Eùʄ‘ü™Ž…Å|ò•Ã€½”é6ʨ[2j”Tg”Œ“T§·UnF=å-òH”Ë(«Q~£LG9²åAʈÔI‡zêPwê³C¯FÑKRô^9½8E‡‚ñ­sL½ä‘¬1[ã^›5z$k´GÖhR AC€ÆFHï$iÔ6@%i…ÄöRz‚N!–`™ÊZ%ð]Òáù紊àËcz’V~¿LHºØ’&b€´„üNÒ)ÎH¶GÖiI{¤ª霑¦GÒ z¤TBà$ѹ% %*+‘QŠY žý²’Vo¥$ۄÓÚz3Õ(ý?·BfœþÙ±üÿsœoVÌh™L5Jq“âu(‰<’jÃMñH”·(ƒQ.£¬Fù2å<Ê~”i£…rc‰%¤|©“È#ÑëR²G²JEǃñ 0&a+LÇV˜˜UFÉ=’5Ú#IÐ èŒRjtA&ˆ–ƒR›,+•`ՊÄZ,g‘¤V‹]$i E¥¦wÎdIM’NKT~ÿåiIg¤³Gi ì‘ m©ý»=Je¥ˆ†QÂ;U*Å(QYIkÿ̈́²=TVRÎv“±6aη¤´ Ð:Ûÿ²R¼,,,)Vâ–L5J¦“âCI*¤u(Éè†åAʈªb’–Q¢R„l”¤ÔKI˜Ò1%æØ¥XnIË2˜'-‰UŠS¬HЕQR‰Î#Y%H4<’µ,©ÐiŠÕ¿Kª¸=’Ö֛ÖA¥ø—•ŒnÂi]÷•]–ŒY2º §*+™j”Øo°°°°˜*æ6JF‹IF7Üâ~¹‰›‘ +¨b…´übŠŒ:#U I呔:’jÃM呌“T 'öQb£ÄÂÂ’Èb£¤å–TFIkÿMëX·–[RՖ”sKq[&•oR™'•ƒRÙ(ÅKi‰’WYRª…§‚¬X!Å)¦HU32ꌔ’Ö^›â‘Tnª#ܪb’Ö®›Ö…oÜG‰………%‘%!¹RVÒڄ‹Û-i˜T–I围̓â T6JñRZ¢äP–oNŒRUÑWù!Å™àŒT%$Å#)·ãöHZïºÅ«˜Ä¹YXXXE’â ’ª¬dô%8•[RÎ-Åm™T¾É¨yRD±QŠ—R‰ÊZÅ-J†eI‰--ܪ'Bå‡S¤ÚWÓrFª’ѽ6•GÒÚpÓ*&ñ® KÒJ‚÷ßÌã–Tç–L°LZ¾IË<©”b£T¢dD£¢²[,)ZLª2@ªú–RLQÜÎH«„”()Á»nl”XXXX▄%­²’¹Ý’–eRù&U½I1OŠ(©Må¥T¢¤EË£€êQQ=Hʦ¸u-gdª=ÒÚk‹Û#™PLb£ÄÂÂÂbnI”²RüݒQˤª2)¾IË<©”ª¥ªFÅ-ª,Éò ‹ ¸UHË +)~HË©œ‘–=úJ”à“Iì‘XXXX"f,+ÅË-™j™Œú&•yR9(•Ò2T_)ªÌɒb$ÁhµžÕ#¥ø!-S¤8#UõȨ=Š¿Gâb KҊÖšÈnI«À¤²LZ¾IË<)¢$*•—R‰ÊZ}¥h¥O–äóPUy•¨ž0Õ󧪩œQÜöÈÔ½63z$6J,,,,ñ’x¥„¸¥¸-“–o2Á¦éOÙ²çȑ#'DŽÙ³é°*Ty¨¦äЛ|)SD +>stream +–(­r¹0†!Ôì¹ò,Zª\åjµضhݾc—nN½œ!z9uïâؾ R­Q¥B™E„Yⴚ2#ÔBÅJ•·Ù·©][‡ÎÝ{:÷éÛ·__—>ÎNÝ:uhc‡Tm*” ,¥U.§ÀЀZ ÖmÜܾ½cW'gW7ww×¾}zuïìШ֩nS¾4˜%J«¼ZM‰¡,i¨ªÔ¬×¤E띻SO¯¼<=Üú:÷è"Q­ŒÍ§ÕF ÖoÒ²CW§>®^Þ}}úx{º÷ëíÔ¥cۖ¶ jW«„f‰ÓjJ ½âƒÔZõm[¶uìÖËÅÝÓÛ×oðÁƒ ÐßµSW‡6-›Ô¯Uµ"š%N«)4ô+J°N͕W†j×α»s?¾ƒý‡øäãéÖ§g‡6-šÔ«YÍRþ<¼ZM™¡_ûÅâCAp¿0ýÔN=z»zúøù  +æï7ÐËÍÅ©‹CëæÁ—W¥U¦š‚B²¿ +Ô¢°¤‘ öqóò4bdpðÈAC|½Üû8uî`߬š%N«)6äùÖ4Y²þ”#O"%ËÙԨׄ ºä8bÔè1!cFæï;À ¨¶oÕ´!š%¬AäÄs\Na¡o³þ˜#wþ"%ÊV¨-Û"To¿¡AÁcBǎ76dôÈ@ÿA@µG§vv¶ Ð,QZÍÆi5ŅjM“;áe+U¯Û¸E[G‚0bTè¸ 'N?vLpÿ /·ÞÝÛ¶³D5]Zå½Õ”zN ío¾BÅËT¬V§Qó6ŽÝêàa#nj6iòäILJŒ +êëåêÜ­c›`–*—+%¥Õ,œVSVÄvJ¥+T­Ý°YëŽÝ{Ԑña“çN Ÿ2iBè¨áC}=ûõê +¸Q¬ApZM‘¡ç”¾“œØßMíº9»ÔàÐ “§MŸ1cÚÔÉǎîïëÙ·g—­š6¨-¥ÕœœVSZh%UpJ¶­:téå:À Nœî½»9´Ö¥U<²¤š€­R"Õoø-u†ÖïúÍTͱ5e+QRíÞ§ÿ a£ÆÔÅËV®‰Z»6jõÊe‹çÏ +Ÿ0&hð×^]:´RV«â$°~ãýy7µ~Ão]kh]whîúmî°2(*Ñ¢¦bµ:[¶ïêì>0 xܔ™ó/_µný†õë¢VՙáãG‚YêٙҪ´·ª·®Ñ§ª‡Tâ©×ZêúÍTÍE¥¹qQS¥vÃm;÷róö9v2B]½vÃÆM›6®_ Tç͜2.8À·?¦UQ–Óª²®±6œx•~ßô"½è–{¹›? æ_iQCIթ߀!#B'͘·xùšu7oÙºe󆵫—E̛1y,˜%L«öÍÔªZ¡tq: ¬¿®Ñ¿ÞF¿9´è­4‡æ¦ß‰VúE%±¨©T’ª‹§_PHØt„º~ÓÖmÛ·oÛ²qP;=,tøo7±Z­iS^Z×èï×ÄF*šCgÖõ†Æv³õ°2Us†Ö¢†’joßÀѧͨ6oÛ±sçÎí[7ÕEs¦M„iµSۖëV¯ŒåBÃ3£©•ûP¨çlÑî;‹®;t–,Ôô;£Üš©š7ôæ_yQS¥%UpJ£&L±°®iÚ@Ú¯ÑunÁºB:É áÄKݾ±5´è /_^ì °J-¿¹‹¥¹CQ#'UX©¶éÔÓÍ'`ôÄé󗮨û=q¨nÛ¸fÙBH«#ý}p]£š€3‹…ŠdD·o@š‡ZC”ZCȟOjùMTy¨š=b%UZ©Úwìќ҄ió–®Þ°m÷ÃÇNœØ«ŸS§¶-ô&`ê܂e¼[ CÃ0ÅÎÐyóÀÎТ5tÑ"… !V¬@5Ëw†C5¹Ë1ÿâN¹.©V«ÓÄ®Cw¯!#ÇM»dB=rüÔé3gNŸª»¶®_¹dÞ´‰£‡ùöïÓ]LÀà€ Š ø;ªe”³i¶ˆ;C+¡ßºÜñû{Uoèäþ9,#¤ùWo¥Z¾JíF-Ûw§4|ì”9‹W®¨GOœ>{îÜÙ3§ŽÞ·sóÚsÂa]ããæl8ÿHÞ'“(6dUš}+Q²Tì M­¡K–(V¤pÁüԘTš²ù”©YCIªb¥Z¸D9›š ›·íìì1(0dò¬E+ÖmÝ}ðèÉ3ç.\¸pþì©c‡öîصláÌÉ¡4£֕ ²¡£ý.³Xšþ˜ ™¡Ë–¯P±b¥J•°3tÙÒ%±áw~͆ßÉý{XF¨’*Åò8¥ÃÆLš¹p9B=vê셋ÑÑ/ Õ=Û7®^:º˜€ÑK5à|Øg–ŸXÌ*¦Þ| Å^ßrch]gèÔƝ&`>åoþЭTEùW*?Øwtêç=tÔÄ –­Ý‚PÏ]¼tùòåh zôànH«‹ç„Ç ¸WçvX/8æBï“õ{º‰*;öo—z}W²©Z­†ÔºZ›JåËUƒ~ߜTͪò¯(?4±sèÞwØßéó#£6ï:pìôùèËW®^½réÂٓG÷ïÚ¼v¹4÷íѱu³†µ¤¾èhñþ¿Ÿ¤©·hñRe+TªR­FMê -5†®R [)ˆÿ½ÞüËPÍåßì¹tN©[ÏÁ#ÆM·t€zéʵëׯ]ª'ïÛð<œ€º÷îÚÁN>‘/7~ +L½`êŶÐUkÔªSÚB7jÔ°~½:5«W‘Û}çŠÕ="¹ UùՔz£ý Ÿ»dõ¦õÂ¥«×oܼqýêå gŽÚ³mýJtÀ#† €Å*z¥jظ¨æʑ=;óˆ–üå+U©^«®ÔºY3ê ]·P-Wšþsýî Õ|aTÑ)‰šRgg÷AA¡°¦Y½‘ ^¾vãÖí[·nÀX=}ìÀ®ÍQËÌ 8½’Ø/Ç.wùòäʕ3-N!–­P¹*vúnÒ´y ;;ê Ý̶QƒºµªÙT([RôšUšG0TóE,§„ö·©°¿!“gG¬Ú¸cÿQ€zýæí;wî Õó§Žà¼dîTðJÞ®=;·mјÞZ…5_Þ{âО­ë–/š59$ÈÏÓEª+U(S‚®Ã:/®d V¯]¯‘ms»ÖmÛwpèØÑÁ¡}ÛÖ­Z4mT¿vu› +4]¶še¨æ +UMI²¿­zàš&læÂë·ïC¨7nߍ¹T¯\zTo^‹>{üà®ÍC–50úJ—,Q²TÙò•À"5´maßΡS×={÷éÓÛ¹—S·ÎÛÙ·°mPÇu1÷6Ø(™1”B!žÍWHZÓtŅêøió—­ÝŠP¯Þ¼{ÿá£Ç=ˆ¹sãʅSG¤¡4ˆvkš5ÄDY®L©R¥J—)‡¶·nClóíØ¥G¯Þ.ý\]]ûõÕšÞpe¨‰škšæmi¡:nê¼H„zŠ >züäɓGîݾ~Iª`€ýÉÃP­U­r…òe˖-‡—‹Ó¦-[wèÔÍ©w_Wwþžý=Ü]]œº:¶kÕ¼±~ïÊ,¼¤1¨ ,^¦r Z¨z ÂêÃÒ¨-{ԏž<}úôÉ£ûwoŠ¡ºnùB\«úzЉ}°?U+WªP¡BÅÊUªã](-ÛtèܽWWÏÞ>>Þ¼<\]zuïÜ¡µhHªw¸”¡š;ä}ò õªÍÚtêåîª@½uïÁã§Ïž?{úäa Õ;7®^<'|ìˆÁ^}:ÁPmP»nÃØT©Z£61uèÜù¯»§÷ÀA~~~ƒ|}€j§.¢w0CMÔP-T +]©z½¦­j`è”9KÖlÙ- >|òìù‹çϟ>~C ðž-k#çOŸ0 +wË»b“ÑzµkV¯V­ZõšuêãU(]zôîç1` ßÿ¡C±u°—{ß^ÝÛÚÙÖ¯UUõ;z¹ŠÍ¯YÃ`¡*ªÕ±§ÛÀÀ„ºYúâåËÏp¨^‹>stßv°J3'…ê mÖ«S«fÍZµë6Lz»ö÷4; + 2È»?çîRãJ|¹*_îìâ=H¨æ-¨¶öŽRpÉêÍ»PŸT úøþ—ÎIóXÖïÙ¹½}ó& ë×­S§ný†MšÙµ¦}Ü<}ü†ùêÕ«—ÏŸ<¼‡óï¡Ý[¢`©J›å؍ҮY“F 4hØضy+ÁÔkà€áÁ£CBCCƌ4t·» 5Pñå¾çMb„RR’ê„2Tu“ꋗ¯_¿zùâ飘ÛW/ž>²wëÚe fй—ÚÛ·lfÛ¸qcÛf-d¦¾CGŒ7~„ñãBF6اߞµ>A,Z0oÎl¼¢Iœˆµ‚Q¨¯^Uš¯ë%Uz·±‹CÛV-›7kÚ¬yKûvSÿÀà1ã°Ã줰‰ãB‚ƒüb×JÝ«­òä”Ì/û$s‡ #ŒÒí˜GÏê›7¯_>üà,jŽíß±aeÄìɡÇ puîæؾM+»–-[¶j­c:>lJøÔ©Sé)6˜•¡Ò±RÅüò@5oÍ©>ºœªƒú† >yp÷ÆeZ©®Â•êH÷>=ºtl×ÆÞÞ¾uÛöŽè{‘é¨Ð “§NŸ1sæŒéá“ƇŒ D-ÓìlñüK‰"ùs³OJ¤Ð\ҀûE£" >uñÚíûŸ½|P_S¨²ýÅsÝû»ôìÖÉ¡}Û¶mÛ;8v¦žé؉S¦Íœ=gîÜÙ³¦O™ˆ}ð°aÇó‡…Éüêù¤äþ%,( Ϊש“¥uª&ԃ;7‰ó0­:wïâèСƒCÇN‚é`>cöÜù ,ÀF¤“ÆaËJ€Ú®e“ºÕ+•ej.Ù'qJ5s«(õt“+J{ŸVA} TuÔ°A^®½ºuîäèØ©K7§Þýúû D¦3çÌ_±xqÄÂù³§O?šZká–zjqE#™_ž}͆‡”òjÕ~Ô;:¨"§JÕ_Õo€›K¯]»tîÒµ{OdŠýÚEÒ¥‘‘‘K/œ;3|ÂtTjU\¦¢ùeŸ”(¡±õ¦·K3/2 +÷S£¯ßyðø¹õ™Îý¢QPÝû:;uïÖ­{`êáí7ldèÄð™Ø…tùŠ•+–/˜?[çÔÕ®ZW4ÂürJ5¨7Éq?µ¡þ~ê¶}GÏ Ô'U¬S¥âï<þ‹P½=úõîåÔég¯>ÀtPÀˆ Ètéò•«×¬Y½rù’…s¦‡Q¯ˆžÚ6oX«Jù’’ù•|Ts†Ö{oòɇ‘xòaݶ}ÇÎ^ºq— ¾F¨OÅܺz‘vTW,š=e\0BuuqîÕ«—300hèð1ã§Ì˜»héŠÕQëÖ­[»fedÄ\©HÏNm*.S *—#ôV4òÁ³*µ·ìÐÍÅkHð„é —¯ß¾_õ– uµß=[Ö._8k2.U¼û»öíÓ»w—~´@7y:2]³nÃƍׯ]½|ñü“©ôïäئYƒš6åpEÃ>)‘By—\uD´ï€¡£&ÎÄs¿ŽŸ»|óîC ªn—´D.€82 ºõsqqéëêá5pH`ðØ°isÓõ7oÙ²yÓú¨K̔¡¶nV¿Få²ÒŠ†}Rb„ª•ò.£«OÀ˜I³"VmÜyðÄù+7ïTܤÁz>¤TôI«—Ì›2bè oOw×~}û¹º{ù 21|ւ%+”¾†k©«–€Ú±uÓú5p™š7'û¤Ä‰XM'ñˆ’´¢¡ÚƒØy»"m§¾ÂMò÷ðýÅþ;c†T7WW7OoH¨£ÇO™I½*±­á®;¶m^¿:r¡€Ú·GG{ÛzÕ+•Áe*CMœP·ç> ͯ‡ŸrîìâÕ[1bü Ôû° 9wâàî-QØ~güè _oO77w`êë8jì$H¨ËVӝ»÷ìÙ³kǖ k–¡£"¨­lëVÇڃþŠ†g_3†ÒȎnœÏ] H)< Oï§!ó»vÛÞ£§£¯ÝŽyP!žMï{ú(ξKçϘ468pBu¦âÕ§Î^¸tÕºÍÛvíÙ·ÿ¾=;·mŒZ1_}ôêÛÝ¡U“ºÕ*–Æe*®hØüš=´Z®W¯k+½J3q¾Jƒæ÷úûž>¦8PïÞÀ/öl]³ï´‰!#àÙß™ú‰Éwþ’k7mÛµwÿÁCìÛ½]êèP]jjX{àMâ„n êúˆ–}D¥Fä“ÐüÞ ¨Ïñ,!;;{œÞQ¥ÙwøP?„ÚßÓËg¿p¾‹–­Ù°u×Þ‡Ž9rèÀޝ[Öa—µƒV Ké/SÙüš3ôۈ~O·XSw|‘ÜcP¾H¾}˜ß»ê3ÝYî}Û7¬¯ÿ Ÿžžž^Þ¾ƒFàÕ' –®Z¿eçÞ‡;vìÈ¡}»Dëq#{¹t#¨¢ ¤¿LMîŸÂbB5P¥ /ê6i%:žÉoÒèŽr?{F•ÞºØ½eíòEXÐ1l°¯·0ÅÉ7hÔ¸IÓç-†Éwûê~'7¿[µx.Bõ¨-צ*a.†ša%Y_ÃKTkbçžøÊqØÌEôvê™èkõé3ù¥‹ÓG©™Çü™“Ǎ‚Ù×ÛËËk€Ï !’KŠÄŽ†û;yêôéSǏÜP—̝ŠPûtkß²B-œŸ +JªyÃ` êß &f_êø° R*ø¤Û1?yúôÉcz=ê½JŽ6),tdà˜}ª·¨“gÌ[¼rݖû;yúìÙ³§O;´w;íÑéA-W²°ª ”Ü?†…„`*Y_q1cñ²•t¹aöµe÷á“çÑ'!Ô'â@ÅõÌÎMk"M +€Ùw€Á@]¶fãö=ÔûîüùsgO?¼oǦÕK%¨]j­*r闗©æ +Õ@͉µ|¬s§‡‘MÂÙw€2P—¬\·u×þ#'Μ»pñâ…sgNÙOÍd¨-Õ²a¨‰zL偊 «×mbס[OÑCT̾”R* Ô«¢å®gÂ'ŒEª¯z nÚ±÷ÐñÓç.F_ºM=Òvnf¨IVºÉ—ne$ë+ Ô6zºz5a:xß-{ÄìPñ5r¨—ÏQDZžä/l’¨c'á@]¿u÷£ÔÎðʕKϝ¢¾K‘ó¦g¨‰ +SÉ%‘õµkŸþƒ‚B&ϊX¹a»<ûRk€‡1Ò@ÅÂâÙúU·F¥ºïð‰³.]¹zíê•KçOãú'*rþ´ñ#jb†Siò…5j© +b Š[i¦Q_ƒ'Î^‚Ù¡>zHõüÉ#{©ð0C¨Äz‹I“¦Ïë‹Íd¥n†×¯^¾xæø!XÔ.C¨Cj⅜PÉùÒä‹͗£;É!£ö2i,R·aåá +;4P£Ï?¸K&`ÙW¼¥ªï,¼cǾ#'ÏE_¹vãæÍׯˆ^ZT/ZÒ0ÔD…)&Tiò-^¦bµ:âöj¨Ø@mҙh1û>’*Vifò8¨¸F¥ +!Ù¤is"V¬ÃÁgD3ÃÛØösðÖuËLŸP]¤u*C5sXé'ÔLße¥É\’MÍúMí¥+q ®Û¶mÒõÛ÷ª®…L¦¸;>Q7P=qö¥õ Þy²êÕ·îܹsûæ5| °é@ f¨‰Vª„*M¾e+ƒKjÙ¾K/7°¾ÓÄ@=vl’˜}q b%¥B(*îÏ (lÒìEË×nمJêexçÖu**n_¿|ጉÁþtµ_éÜW”̱˜þ”#M¾Uk7jÞÆÑ©¯×àᡓEFÕ¨°F½uMj6i°‘Ú¿?;Á¡aÓçá•'ð§Î¹ºs/æ~ <´¡¾}ý +€:Ê@_Üz“ +ú Õ\!˜JU)¡æ+T¬48ß0ùvëãá; ¤–Üú•ZÉ™SÄ@õêïáÑ7Rƒ$›D=Ÿ/J­ ï kEo².š6j¨wßî¼õfæ°Ò1•M’”PÑù6±ÃÉ×Ûä¸ð9‹qzä”ýiò§£cX!D#+N<„…Žµ?7ó–f߅ËÀ&Á£péÚí{=¡bñ<ÐthצՋgO3l [OG<"*<ã3J_Va­b*V¨˜Pë7mÕ¡«38_œ|#V®—ýL¾Àô±d“äáb zz¸»¹{xùÐì;m.^"Få +ÜÕyB{êØíÂÉû7¯Y2gJH ¯[ÏN­›Šs¿yrü¤ÿ~S5)¬¬b¥;àÓ +¦Y~& V¨P[¶ëÜÓuÀp¾3¥‡.é.N£O°ì+Ù$ù`(T¯þînnîý½–f_± +Š†úP42|LçIOÞ³%jéÜðРAî½:·iF'ôՇ¹™ê¿…Ni¼‡™fý‰LRÉr°BmÜ¢­c¾ž~c¦#½É÷‰ÞFª´ž‘å{¸!Ô¾8ûŠE*SgŸÓ!a|EC´\Šœ7uìp?ç.m›7¨‰ïÒä͙-«þ»4LÕ0ÔcR'ò”¯€OOדñ%“T­N£æ˜P=|FM˜ +³¨´Ø¼N©O±<‚Ù×&vâKQ3' _µpÇW-Äì»JÚՑû¾|þTn¹´miï­]‹†µôßzK§»èØܑÜXâÿþ/RãD „TaJÆM¬P!¡ºcB2{•oÑùÞ¢ÔA†Gw0t.†úÉïÏxù 6g_X¤î¢MØJà¾MõâÙcê$plÿöõË Š¿åõÞO×÷% +ÖoñWàL“FðL+_kdš§™¤šõmq… + u%Ô¨Ít¿¬Kî?Ô?zîÄ!Å& ñµŸ«¬R‡Ž¢Ù©‡OÊoȽ†ï²bϏV,’JJv´P•Þ»È$®ïCª‰Ž#¹ñi„1z±BtN4}zéji¼²«ƒ¥ËÛÔ$“äÔÏË/ˆêjÜ;;EçÈî ßypïÖµhqsI¤°I~>0Pûõsuï/ºÑ;h“DϏ·oވ·Î¯œ—ª£¥…j½ê¢;‹®…3PMÇ¿&¡‘‚¹§™Z#œéÒ ž4c&éø칀)_a’\ú6z¡Ñ%T` +v‡ êŽåc5i"Ù¤þî®Õ4#CiöÅ=õs—é¥óWoÞ¾{÷›~Ü¿}õÂÉC»7ãB5ªðUù­cùþ>Âjî0Î6¹QÊ¡æiä’&MCœ‚&ò̈7K'ßž™‚ñ•MÒÀ€àñáTèÛ}H:l†Lå·o\&ï+fßQh“<`öíçF¯Ž?Eš}OQkJ¨oß½÷î ö\ºƒöW¬iÆ òpîÜV×ôAºk¨¦¥/`ՀSV}¢j~Ê «„ΌNºW:‹¸²¯7•˜6lfïЭ·»ÿȱSf-\¾V®ãßE¦/ñ5ãç¸0¡¶ùRC\¤úxŠª?ûîØLêãòêÍ»÷Þ¿ûúÅӇwÑþòÉ_zEJ´†Å[jºtêA‚Cÿç1$›2°ê!Upêó3Œô +N™æwx«ô÷Y³Òµt³t‘âÀ´Zí†`|Á$y:i&í²ˆêÝûÔ´ùµèÚsëšx%u•AC|wÜǏ¼ïyö›ôôåk`úñÃûwo^>{NIgƒÉ)µ¢wÉE}¼k±¦Oûßa†0 ¬€M~¬ +R ¨a¦”"ƒ^N¢™õ‡~ü‘.¬ÅÛM *Z¢ty`Ú i«ö]zöó,›¤í’I"¦ÔbGjÇ".Z)*þà}Ý]]]±ò0DTVH³ïí˜ÇÏ_½¦?Õ·¯ž=&§„û4‹f†¡Sê)õg) C5WvA5SƌÌz?Lz]lòc5@*ˆÊ>VÂ'E&%äÁù= NA3[6¼®6g®Ü€o7-S¡ru`jÆ·¯ç @2I+×oÛsøš$j®ö­Ô¶î&–åu)•4înn4PEåa‰Þìûâõ;`ú3P}ûúùᔰ¤?gJ(&Õ.íZ6ªS­béÆë²fùî»Ì™3™3ô~–Œ2dA6Îi'#UC¤PÝԊø2 „ºÈ’E¢©œÙs Í\¹sãݦùÅ­‰e+Ú@>¦œ\úûŒ’MÒAa’h¥ùöí»·oåþ¾çN¤]7<LjP=ÜÝÝi‘½Ln[¿†MùRt/nöl?þõûï³dùÎÜ!ý6d"+qMf¬2SRÝÂ$³Â"«.ð®w18 'Ñ̛7_¾üù ,T¸HÑâ%Ä {u‰iCƒÇM™µHg’d¦ïÞ¿ÇeÉs¬õÑV7žy˜1Yîò@güÀ&M íqÜ ¹x©Ïa þüéóçϟ>¾ûòÙû7.9¶Ϟ͘8j¨u²kD×誹rdφ÷Óg5g|¯ ü‰¾3‚\e¬ÉCU¦¢hKµƒLÂÆÒÌJü~$†rÐD+N›ùòš… +ÏbÅJ”,U¦\…JtsW³VÀ3`|'뙤›ÔÝìÍÛ÷ï?@V|óRê™Ì°u‡—g:¨lcsˆ»žâ@ýôù—_>ÃP}ûêù£˜›¢ãóʈY“CyôîÚ;®Ó5º…ðÊëœ9²gϖí'ó†ô»ü@‹˜ l† :¬ÉDU7Le¤¢v…l¬œ( 9)rI3m^16apÍâÅK”,Yªt¼_/c«Û IsûöÈÔÇDè¤&é1Ì è_%‹ &/žÑïÇBç}•—-t4Wpö}õöÃÏÀôW úñÝëOäòÃ|q$]N߶Ec¼™±LÉbE +â×¹s墯žÃ¼?N6|\.%®3ÆšlLEžj´.ɦK”"¯ˆ|4Ñ(XPŒM¤Yª4Ðœ*VªlS¥Z º*¼e›]œ\€éðÝ9@4I2ӏÑê¼{óJ@ў°¢‡¸‡öõñööñoEџ¦ šk·ï£Múøé—_!~ùôóû7/1©FŸgéÂé¿:5l*–-U¢X‘B ä‡/-¾}sþ8ø¸Þl8Ç#×̙ÅÂ8™¨*L¥í²Ì2Q\—H3+òC‚" +aÆ¡ 3-Òc³ÒÄ«õªU¯Q³vz 7maß®cמ}‰)Z+Ih|_’}%«ó¡ÆÈPéÀïøÑ#† ñóõõ4Ø?pd½…6é8ö¥„E* Ô_ûí·_?ãü +UºFadžU³uNµj +T«T*_¶TÉâŊ)\¾xAóþ0ðûÀãxqŽ—¸J£5Y¨ÆfŠH©v]¬”'¤À{†‹—(A-ҔÇ&ÀšµjÏú 5¶mÞÒ¾­CçîÎýúLñm Izúâõ[d +Nçg°:¯žËPqú]0sʄ‘Aþƒ24pĘñôž1¡!Ú$¨¿}ùò U˜ŸÓJçߨÈùÓ廉ÚáݸµªÙTªP®LéR%K”À¯^̬?L|\ +âTs}H=&ìÛ± {lϞ>9l„ æL¦‘«°Éƒ¨’MúM†ú›˜ñøÃé 8-té*g§®xëTkûVv-[´€¯Þ̌?‰­mx^p*¨]«Fµ*•Á“•,^¤Pþ¼¹r¨¨& T+ƒWÓè”Xn¦ÅJR\hÖoظ ^hGüZ·nƒÑ¢]»öí;Lyd:÷F–nîýñÎ÷° @‹3qÊô9 —®\+1•Œï»Ÿ”éSŒ4X”Àüyú؁][ׯ^¶xþœ™Ó§L™>mÆìyÀtÝfJÈWh ’M¦ÿ ¡úQX%©÷ݺ‹çRCÃ!½ÜûöîÙ½kgǎÚ·k׿|óü&öð¸ØáU‘M5¬_§Vª6˕.Q¬p|¹s"Õ̙ôÓjRALé5¦œb ´, ­ Í&M›·l%Æ"ðsìÑ¢ D×®x?Œγ82&Öó|ºÒV!ÃÀàŒ7qÊ´Yó#–­$ØwãâUÉø~ ïŠ#í÷ßå•æcêzâÐÞ›×­Z¶xÁÜÙ3g̘1söÜ‹—Si ã@}ÏÄ/¿!Ó?‘ªn¨ÒS½w֒Õ7zx€ß@/×¾½{õìѽ[·®ðÅ;›/ð÷èä ÞØ6¾¸‡ù77WW|^œ{9uïÉ»]s[¬wT._†¨æPŽ½% TÝ@¥É—^y)HL«×nФ¹]›Ž]{ôì킧Iˆß@¬ÙAøA ¾öT³E8Ɣ)“ñy?.tLðˆÀ¡~>žn.=»vlk‡T+—+U¬P¾$ª:¨Ò@Å÷ ËVÂ㜭Úu½¿€áÁ!ã&L‚ÁHü`f; )Ă .B–Ò¸D–ˆrÓ¦Í[¶nÛ¶}ÐØ»ÿàá£ÇéÅË×ðU~<éðîÃÏ:¦+êx(ûÞíëW¢ÏŸ9yìÈ¡ƒöC8tøè‰S0Ò¯áKÆb‰ ³·îÄGP^Æ ¦p¤zöäу8‡o\µjÅòÈ%‹#-\¸¿ø<óüsçÌÆçeÚÔ)a¼ƒƒ†úy÷ïçÜͱ]Óµ«U* °ª“æRtiöM'.‘Ú‘U­ÕÀÖ˜övÃ+ò‚CÆO +Ÿ>s¬+ÄĺoŸ\±‡%²”anÞº•PîÞ½gïÞ}ûwFû¾Ý;¶anŽZ³zÕÊ˗/Çoi¾€ßc =/óaM==‘êÍkW¢/œ?{æôéS§OŸ9{^»‰³72¥å4ùþóQÕMÀb´?Œ¹sóÚ¥ gO?zèÀÞÝ;wlÛºyÓÆ Ö¯_‡Wrš/àçX³f5]‰>fDÀ /WçnÛ´h\&à’b¨J¯h%v‹ƒÙ÷Çì¹óQßÀÚ ›·vèæ L‡ã5Âs.Ž\±*j-Å-[¶BlÃؾ}ûŽ;Ÿܷ_ŒKT€ï)8sæì¹óÀâÒel Héå +±ª0•‘ü‰³'!y‹ïš>Œ¹{ëƵ+—£/^¼páÂŋô!·ÄcA¡›|ÿùGùí¸1Tñ¦¢[×Åp?~ôðÁýûö`zÞ±¾ô6³þ[·àu7¬_»fՊHðÚ3Â'†ŽDª½ºâYšÚU+âP͕Þ¦L‚ù×Jº„‚.ÕÃû +Š”,g#½DÚÏËû+L›º¨õ·lݾc F{÷aP²Ãa‰,Ò°„qyöܹóˆ!:ú¸z€Þº}›t<a +S/mÌ0HÄZU¢úäÑý{wnß¼qíêÕ+W®\½v]<žH…d•O0ü|³ññƒ˜;ˆõâù³§O8~ôÈáCÀ½ÏŒ?ÆÞ=ø¼ìؾuóÆõQXڜ=- ·‡<ûõìÜήI½b¨æHªkÑ­”+MñZ§¼…ð¶˜:Øc®ž»‹7ÎF®ŒÚ€7äícñÈLrÇaTâ°<%†%°$’ˆòÚõë7ç­ÛwîދÁþHOŸ¿x<èPÑÓô'` úßöø ¸ÞºuSþ@J…šé!ª¿‰R3¶¸ƒãý’˜ÇOÆ+fžám¨¯ßЛLxÌAÍTœ}!$Þ½}ý +_A~òø~|Êk¦úC]÷ øâÁ@ªx6†üև÷cyãú51—_6gào ÏËùsx/Αƒ{wnÝ°f9vÉèçÙ·‡cëf è²ûú÷}&¦S’}’|O­tW—]{¨ôfðìEÀtÛîGŽŸ:{܊†#Æ­[8(iTJ,‘äc¼äéSìàðüù‹/( RDúIBªbª?Îh»+b}‰ï–S<Ï|ÈϪ¡þßÿƦúÇÀG¼yýò>4àïÞ½sçömüÊ7Íðk\¿~ §HÞ§°Þ±m#Þá>.x¨¾¢Õ¸N5]‹‚$Hª:¨º{jñ¦Ä¦ö{H±¥ù6¼Í/ ËC!ÅýûºQ‰,‘$‚Ä8¯^½zýpâËûï?Ð9P<¹"•ÿ6ò_%­"U|‹°¾}óú•òsñI5Ôÿ«þŒ?c?҈_¾nŒY H44àìÌIÜ4Ü°_˜ òótéî`o[¯F%ùbô$¸íÞJ¹|˜R*z_º¨§›ÏÐàñØçh=Þ=pê¬ûo¢‡½/O«"ž¨%’Dï ÞãK2xþþÓgÒXÃԐªëÇïß¿{÷ö­ø,å¹ÀX-¦JjÖÿˆwødXòOŸâ×}lÞ Žÿb* ¥õ9Ü +¦«!§Žö÷víÙI¼"[¢pþ$ºÅU6¿ä“¤ Øê4nÙ¾ko¼°€zâì:pô–\EßÖ'às/Ä˜Ô JA’@"J„ù3¾ÿŒ¯»QÃéÿþ÷?="‰]8:]øéÓÏ?üøáƒø0ù¹øë¹øßÿ´?C|ÄGiÈã{ê/ÌÏE`§ ˜ +ÜÇ:RÝ¿½Íè+^‘­]µ|©"ÔËï[N›PŸ$_éÐÝÅkðlŋï­ÁnØ9ð±°<†#…4$” +H|¿ð3Òžx^Oçêê˜þ/61X @ùüù“ô\èþ©÷ÿûŸò!†Ÿ!?اAÿÆÌA¿Å+1Ç?¦*V4žºÀÖ2s¦ŒN~Úé.ÑN’›Ñ ÌoμxYWzM[;:I÷:EŠ÷V¨ï#Zh¾¡©PŠò0Ò“2G +:ü‰‡¨ !¯Nÿ«D!" ´?ð(@ÁSÞÒ穞‹XaøŽy@+úïÍïDöÇ.$â.³ãøÎtäüi`þí׃š9a/SUÛË抅ß|…Š—­\³A³6x«Þ°1“fꮋÁí®§/^ ¯Båñ¨“2JGÁ㊻áF*Dä&qų£Êsñ»ás¡ùò`•°"×ßèÉø¬7ì6s|¹ûsá^°¸scÅ™a£©™ö2Õk{™DPÓT4¿Â'uq–î4¥kÂϊ¾ Xr¥÷Ó@Ý2’zEà $qºá/±%£ÉTŸˆ„¹"ý#ÎçBë3þž 1êՍ|³Æg‘»ßáVÂ×F6®Z<{r¨ÜÌ©¦ÞG‰ÝõÝpE“¿pÉrUj7ŸÔÇRêÔyK£ä×{éõ4\÷þE"¨ GJ}Œ:”N=¢ŠCÒ$¢CB`ÿcðiq?ZŸñ ìïb܋øÍÌñ«°ÚØˉH—Þ{;ܯï®íZè]ãšø—nèC¥MùªµÛuè¦M8½Þ+¿ö"e6õpTPrüKÁ)5‚T&"#ù[ˆÐ ž ­Ï½¯ú»¹ƒr·Ák{Göên'Ã^¦Iz5ºU,SqEÓÄΡ{ßþ£&ÎX¸bývl®€¯÷¾^{ùò»þXTÈ?Õu!îå%¥S™Èÿ‘™Hd >2îçÂë?«Žÿ$Nü!­­qÏï½ÌsæØ>½]è&•RIu“Š€*×p™J+šý¼‡âÝï+7ì8p\´¶y¥{I¢á€Œ…RÇÒ¨1*¬2XcF|>CÿKþiþ [÷E÷2»®A-]£Ü¤R inR‰–©¶ö\}ÆLš±j㮃'Ï_½%^F;ÛÒ9ÛØ50Æ¢'Q}$ÿÕúýŠ×gù®æé9ùîرx™]Ý Vë&•¤€Š¥Ò«×³µ‡e*¬h&Ï^¼zÓ®C'/Ы xtšÎü‹ç¿QŒR}$j²ñùcŸ‘hdé éev¥íÚìIc†ÉP oRID¨¥_jÓ֎=݆Lž³dõæ݇O]¼vç¾ +ªw"ó_FÑWóŒäë?ÇðÏø承u§Þ>}x‹b®]„”úñÓ¯_ôΏüÁx“4 ¬9>ü!a¥So0ÿb‡‚»×£OÞ³E\ƒPñzœŠ¥‹%%Ô´zP+U¯P{¹û†N™ ËTTL©ê¿ýZŒqsIø'$^ UõóÇwÔ#uéœ)¡¾î½ÄG¥ñÎ#QÑO2¨TÏ/S©Fý¦mjPh8BÝ{äLô»ž½~)õ÷?þŒ½ßefŠ‰‰F‡*Ì¿Ÿ~÷úÙ£»7¢ÏÙ+Ýy$ Ö—.²J‚mM¨Xúu$ nÝ{ôÌ¥÷=ýþgH©b ~k$7dªø‚Ào¿üüþõóG÷n\Âþà +Tq‘•|;YAÍ uløÜHãP“û§LA'Ô±x;Y2A•·SÔν<ê¼Èµõfl¨ÉýC¦¨ˆ õ&A]9/6T±÷–¼P÷= PëCe¦ê@ªzPÔ³G÷ÉP=ä{“**A½|3æñó7Ô¿jì ¨KPß<sórʄ:œ nÛwŒ¡þkhA=¶Oº7Tê·ÚP·¥t¨/jaõCµ„`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`0T †jÁP-0ªCµÀ`¨ Õƒ¡Z`|£PŸ3Ô8Âêó”u+C5!´¡nMaP{y +NP +¨¯ªñ0€úZ@=JPÃÇ òè•¡^ºyOúCõ/꽛—RÔN½Üe¨{ž¨ô¡2UU S}¨ê™£{e¨î½:% Ôô¿û>6Ô¹K£êØP™ªÿ õAZ:76Ôï¿Ë˜>¹ ú…Æ •©Êñß8¡†ù&'ÔÔêõ›¶V nÙ{äLô»ž½~÷ñóo¿ÿPeªfŠdçaŽ¦õßûüñÝëgîވ>sdïjë¦õ« ¨?&Ô4 +Ôҕª×PC§ÌYºf˞#§£¯ß}øì@ýõËb¨š•ª~|Cõã1Pÿøò+@}õìáÝëѧìÙ²féœ)¡j½ê•J+PÓ$ Ô̵@±ÒªcO·!Sæ,Y³yÏa êۏŸ~ýBó/RM<®‰H6q¾.ýÓìûå×OßJPïÙ¼fɜ)!Ýz:"Ԋ¥‹@¨™*Pµ¶ÖƒZ¡ÚÚ#Ôa!“g/^½y÷áS¯ÝyðôåÛŸ ©ÒP•°š5« ³ÅßÄfß_>}xûòéƒ;×.ž:¼{óêų'‡ C¨ö¶µ¨TkëDcªµZ][ûŽN®>ÃÆLš½xÕ¦]‡N^¸zûþ,þ~¦¡úç_ˆÕlambUÃ0Oüõן4P?cé÷ÉýÛW/œ<´kӪų'æãêÔÑÞ¶nµäš=w¢¥*ÔVúùŒž4+bÕƝOœ¿r KJï>Š¡JXÿ2/Y 5Xó#5?Ì¿‘ç_„T TðIÏÇܺrþÄÁWE̚4:À§ŸSÇVµB©¢rgO:¨ie¨EJU¨Z§I+‡ý¼‡Žš8sъ ;?wùæ½GT?ÀPýíwÕ,ñ—^5/V¤z$¤0Ç¿‘þþ ԐRÝ»yùÜñ;6¬X4s⨡Þýz8´jR§j…REd¨i“ +j–²çÎ_¤TùªuÛuèÞw€ð„é –¯Û¶ïè™èëw~òìù‹—¯^½¦x“àxûŸwHЊt-aÕ£š`¦4Léohg0ù}Dˆ`$,ÄOñêÕËϟ=yü0æÎÍ«ÑçNÀ@]¿2bö”±Ã{ºtë`×D®=üô}RA¥my¡ +öœRgwßacÂf,ˆŒÚ´sÿ‘“@õÆí»1=~òôÙ³gÏE¼H`¼| O<"8úßË\똁ª”Oe¦RÌ}ˆq +ˆ„ü¤ß~‘§O?zs÷ö `zòÈþ›¢"Ì3Ì×ݹ ø$0¿Ê25q7i +ú¸¦ûkS³$U'Woÿ‘ãÂçD¬\·uׁ£'Ï]¼|íæí;÷bî?xøðÄã„ƈ§Oágã%NëÄ°brý§`™jBª<õþ.?cX"‹§Oñ[$ì߁?ÆÇîÇÜ»sûæµËϝAÕ-TÁþ*^¦Rz¶­º»xú…„͘¿tõ†m»9qæ|ôå«×oÞº}çîÿ±÷`U]éÂÿu2™$–Ø6,)ґ¢é é½÷*(  Ò¥¨ˆŠ¢bÁ®Ø{ï½ÅkŒILf2-sÿsŸ{ÿßû®½÷)¨QñöqÏúÝç›;ßscK;Å0…uäÏ?ýFA(‰¬÷ïÝ»{?ɝù*0·nݼqýڕËϝ>qôàžöÍëW-]P=· '%&ÄÏÝÑÚÌP[]T'É]ªÄš¦gï¾aRUÕÒ3±°›ê‘ž7»lþ¢e`uÇîý‡Žž8uæ܅‹—._¹rå*píã¸~ýú7oÞºM‚Ä>yöµþLö­X«UQò%ó)8Å0}E*T0úðÁ}ˆ,ââÆ ø$ñ=p(`D._ºxáܙS'ŽÚ¿{8]¶h~Ùì¼ô„ˆ@ï©v&zZª0¥ì+*~帢—¿L¥4x˜ò8 #¨= T“³f–TÔ6.[µnãÖö=û9vüä©ÓgΞ=œÿ./Âäò•«ü·nß!U¬™^þˆûV$V¹iµ³R1Pÿ‡<çü8Žïž?}ü-N~$´®‚‹K/â§éüwÁÁ8{öÌéS';rpÿžö­×­ZÖX[Q23+Õj_#qÊÃsu’|‹_©J &U&ÿ˜ZB¨„Ç¥æ”VÔ.ZÚ²¦mÓ¶ö]{ö8tøÈѣǎGN|'OžW§¾ŒÆúõëÖ®m]½²eùÒÅ ëk*æΞ™“ž:Ý{ª½•¹‘®”ICõc²¯Üë$ѤJò¯(Tõ'Bv«Q ©Yy%s+ªk66-YÖ¼|ùŠ`凳JÄêÕ«[׬ŸGÛÆMÔwíÙè.™®Þ¸ VŸ½ n?&T¹ì+ +ÔW?~OœÞ¼vùüPz`ïîöí[7oÚÐ:Ö´¶®^-þtú½p8V,_Þ¼lISã†Úꊹ%yY© QàÔ ’ïD}É@Åì+ç)U2ÿ2¥„ªŠÆHÀ6h5$2.9='¿ xNYEUMm]… -jll\Ü)šK–,Yº~+ZV­^³®mӖí;A뱓g/â3>úñ՟ÙcnÿÓ©Ë;ÿ'q—êO/¿{úèÁ[×.?}üÈÁ½»vlÝ É²uÕÊ`cÙRøHÌgëė‚ÑX´há uµ5UesŠ òsғã"CЩ $ß *¨¤Lê’ìËIÅú—ªª#Ǩjêš«þAá1 )Ù3fÎ.™3¯¬¼²²ªºº†0¿SÔuuõ ðóh\¼dÙò–UXƒmßµ÷àQ°zõæ7÷AfB•Ë¿“ʝÅeõñû· NO?¼wûÖMmkW¯\±liSã"ÐQ__WŸ«_‡ŠêêªÊÊò²ysJfΜ‘‘’äOœšêhªŽ‰ +eÖ¾] U”™PÅXy¬š–®Zê铐œ–™›7³ °hvqIIiiéœg.˼yðÛ(¯€ÇüÚú‹š–._Ùº~ÓÖv´zîÒµ[w>†PýùÏ¢üû1RIöeŠ]A§ûvmß¼aíê˖@¶¬›_S]YQQ^VŸ‹ûˆøÍ`–`+V­ÝˆV:On=}Áœ]üH©Ük<FõêÅ3'ïßµ}Óú֖æ¦E µ5•åóæ–!…øéf}à7b†"/oƌܜ쬌´Ô¤„Ø舐@?owû)Ä©ú8eL¾8£ŠË¤.‘Ê…jï~+Á´ +V M&YÙ:Nõðö  +ˆŠ‰‹OLJNIIMMKKKÿ028233³²²ñ·‘7sfô²J¨¬a¼vÃ֝ûŸ8sñ*„ê’ÿ&ºæñR#§æxñìyz}êèÝàtõŠ¥ µUåsK‹‹ +fæƒ0’NôA3>àÛÁx¤¦¦¤$'%ÆÇÅDE„øy{Lu´µšdbNaBU< _oq Ê_ªD¨bŒ xØH´ªc0ÑÜbŠÓTw¯i~ÓƒCÃ""£¢¢cbb‘¸$žˆ?Ô´ô̬œ¼™…PUÕ.XÜ ±º}÷£§Î_¹qçÉ¿ùë?¸kv#•=ŒûôÛ{·®]ÕÉnŠ…ùDt:r&_RúvQ J†*IÀ}ú«ãÔ4'è™L²œbçèìêîé=Í×z@`PPppC膄‡‡GÀ/#:&6.!195#+7¿°d^åüMËW¯ßÒ¾÷ð‰³—®ß¾ÿè™èBÀGJe¯B¼üîÉÃ;7¯œ‡@ݵmnãÕU••͚3`JRB|,8‰ŒŒˆ'ó¾;ÁÁAAÓý}§y{º»:;ÚM±œdb¤?ASmqÚ¿(ùvTQ kULÀ}Ñê屪ÚºƦæÖ6vN.®nîž^ÞÞ>>ÓßÁàïï?}zü0‚CBÃ!ŸÇ'¦¤gçÍ*ž[Y»pIËՃÇΐCndRýH©¢âë¤çÜÁ³C‡÷âc±æFÜó)ÌÏÉ$S`dxXHpP H™‘ù¬ïÿÝÈhøøx{{yz¸»¹º89ØÙX[˜›èjk¨ŽUNû’ä kÔ. +T©Pý²;kUi„òuÔjdb6ÉÂjŠ½ƒ£“³³‹ËÔ©S]ß71‡'ü,|¦ùúù…„EÆÄ'¥eÍ((žWUßؼºmëN<“ªÌ¥Btÿ›ë—Î?´gûÆ5+–,˜_^Z˜Ÿž’NR¦ï4°âéááTü±ßëkˆ¸¸8;;9:ØÛÙL±²˜dfb„JÕUÆ(Pb²É·«¤¾Éêà¡ÃGŽ«ª®©­£gh<ÑÔ|ÒdK+kë)666¶¶¶vï=‹àèèääì2CÞËÇ×?0$<*¬æ–VÌ_¸tåºÍíûŽÀ¤zS6RÿW,ïBÜ¿}ýâ™cwoÛÐÚ¼¸¾Šlä%ÇGCY“ äL7שċ£#|RîS¿ç—„q™bmme9y’¹éDcC=mMuÕ±£G:˜§(•MÀ¬Õ>ý ‚ù=‘h7Ÿdaimc+%ßÜ[ΜQ8‡•Šé÷ê-,”dTýþ7[ýB¡ôÍu&RQjMYñÌìÔ„è° ?Wg[œÍÍ ÐŒ9;÷ Þã˨hkkiijhŒWWS£Ê#‡ƒRÓ¾½¿îÉ8%ß.’ÚÁ*¬l Xûö­C”†9Jyô0«¢ª¦¦¦Œ/445áÇ ?ÐLÒ8)¼Ðª‡pDlR'•Ì©P(q'Å=&>ÔªäæƒHê (”ð@.‘:;?+5>*4À×Ë œZ[N23hdh@Bñ0_à=¾* +Œª +ø3ZyÔÈԆ€Òþ}!La-ËS «d¬öè 3+Dë@âuø4« ?à:•½±a5 +ÃH ™>Í÷ À)(Õ¡Ú r<RUÅÏÎ}w~aeô9b81:¢fSÓ¯ØÜÛÕN;XeµB´öë^ª¤4lØp Œ|F”•ñ—€¿ƒqæ Ši]}£‰f“,mìÝ¼1R“3ófÏ«Y°tÞ8~öÒõo<~þ’i1!Ùâçܲ‡Y©?ÿðâé·wo]9òðÞ×,ÇSa³rÈÏi¸ŸËJXƒú²§*„ÛXt„Ÿžùïüºd\†6LIièÁh´?¥D)_N‰TÎ* VF+„+Š³ vð!C†¾%Æáσœäï1àJ.(¥ ŒM‰TˆÔÈøÔì™%嵋š[7lßsø$sm’4#~JþþVÿOZê?ØûÝP)]8}tÿÎÍk[šê«ææ¦'F‡LóÄMÚÉf õa¢¡®Ê&Pqh =qü>Q()£”M½"§]*•³Ê+§½öîÛ¯p vßÍ îG€!Næe¦ž ËHupñ˜€fr pJmÁ)•ì=Üûw %:üüoǎ<ïw>TbK‰ì>p“ê¼Ùy™É±áA~^®NvÖ(UOG Žƒ)cNì‰ð®oƒcÔ"´Oo4Ê)唧¬­„»÷ b¿&jA.C¿wҟù  aÌݨ¬ª¨±R'[Ù:¹zùEÄ%gåÏ.«Y¸L*û~/êóoÉ ÈæT$•i¯—¹ü»¸®¢tVNZBTÈtòˆÌ¤NÐÒP#NqRd’è@FTÿw|YvTp€@ç×Dhîx‰R>JZå´¢W"Í"_sô~Ì/å’Zk¨ÒpXóŽ‡Rõ 'š[N‘ ÔÊúÅ+ֈV©Ì“·_ÅG¥{¶¼—ÑÿåNçã¡ß_™goä60Y©®\º@2Tñ!™©‘¾‘:z.FH¡CŽUõ;ˆÆ„ŒúD¡hT¤”?§µ²^‰X0KÜz¾ÖïÞ$oV™ý)5 m Tk;R&EƧdÍ,.›Ou×f;_üŒœ»&ՉkìMcr3Š}JÎméo'¡Z‰s£C¦y¸8ؐPevö PIñJ)xÄÕï ÓWŒPÖ(ßJ%¬Š´‚W f¿$r9ºÿ>Œz‹ZûÄH§:žyžgeëˆÉ7Kߢ¹Õ M-ÌvÒ¹ËÜÓÔ?s‘úïNöáúѵTöàÙ<ú¥ÙX¶p~9·ªñqw¶‡YÕØ@Gk¼Ú¸1Ê(•]Lړ•õ6$F…ŒÒD(+åÕ)k•ÓŠ^Q,še܊øò÷!ڙ2«„ê !JÃGâcL¾&æ–äôS`XL"¹P×¥ï¶ÝŽæÎ=°R“h°öfEM¯Èõñ°Ç~Ÿ>"j Twl‚¸¡pJ\D°¿·ÖJ¦øøBUy$‘Ú¿_¶ÚéÎÙz RãBFêsF(+åÏ©”V╈%f?é}_°9‹,Ü R1P!ùêâ„jã0•L¨ i9³JÊñ Íz(}1P¯³‡ QêßÙVl°Æ4­Â»ÆŒÔgoB¨Ãçä­Ëë*çÎÈà*`<{b¤VUÆ°{¶ÌÎAvvduý¢1ú#'”U¥b­ŒWF,«–ãówð'¶Æb70ȳ|7^K׀8%ERT,Q‹çU7ä{° Á՛}ñ07Hý+ۇë¿;×`izÅ5­"‡¹B©„¡º¯Ü5¬%÷]’bDŒ L«xTa¸»Oö¾ä²éۑvÄþ a”w¥H7)¯"³ïF$ýOâÍÆ~$P!ùŽÇcOfœÓxöùÌâå­ø|üÈÉs—®ß¾û•ú¶¯Gçû«‘nIlO€W¤sHôØÁÝÛ7®mÁ'åø¬&1&<З³ª«=ž9¬À<1c÷øþ$òö~£À [7RŠt󇼏Ùϙ½F”ÊïIõÀӉø¼=ÈNqêƒ×9R2g0G ùnہʜÏ'·`Ú?þJn¯Fš_ýJº±üô#sñî­ë—ÏŸ:vpώÍëð¤RÕ¼Ù3³Ó¢«6hUGSϊ ÅPýšHe·„^óöf:ŒßßD·Ddõsñãöƒ•˜clzF¦“ñ|8qšœ1£ ¤¼Ï¶m!¹Ï]ºv“\{#m^1í•>ª»éDFÚ±¼$«Pê• gðþ6HÀKÕVÎ)ÊÏJe¬N…媙±þ 5HÀª¢§ÛŸ‹œ~Ð`ð-ïwù`­ì³|,Û»ï€AP%ᄪkh2ÙÚÞٝ}Šš;«¸¬º¾qÙʵ¨‡Ÿ>]}î= ÍHžŸØÖYщŒ´"ûñì\…mŽð&ㅳ'€P]¿z9¹\ |²Š›x¤^¦UHÀª˜™sû|ðù&Þ­•‘úåWÌÙp TH¾P$M²²ub.]%‘{¯x4tEkۖ»9q/¨ÞÆ&ÙX«ZV,Ç^; êjªÊ±GÀŒ¬ôäø¨° ?<!½¦¡Rÿ«ãœ*¹L5#‡X¦AþŽO«ù³Kæ–UT׀ׅ‹71 ³–/_A:ªu¦¥Ú;š’­À¶dÍ˖.iZ܈­¬æWW–Ï+-ÆÆGé)¤Kžì¶±4#…Sż¹úU×bžÐ8»yû†FĀÕ̜3 ŠJæ€×ÊêšùµL¿,짆 Õ:ÛRí­=ÉH[2ìK¶ ¡¾®v~MuUE9ée5+/â4!&2Ûä8ÛO™LÚäðÒREQyó:•lçÚÆqª‡ZŽKLaûmÍ.)3w^YyEEeeUUu5×P­³-ÕÞܓŒ´%«®ªªª¬¬(/›7wNiIqQá¬ü 45)>&"4Ð߇ôÉ!ÏTñéóœ†J•ÞQêÁí(a¦ZÛáýE¿€à°È˜¸ÄäÔôÌìœyù3g1í²ŠKH7µNõS{Ÿ¶dؘ¬¤¸x6ö&›53?oi·“’ˆ7U™S…zÚ¢}é%¾—7ºI5Pc»2S‡PÅcؕÉÛwz`HXdtl|B6TÊÈÌÊÎÉÉ%½Ô¸njk¨öûmÉHg²¼3˜VX™¤}RŽ  šîëM.5Zàù_MÉgo]ØüHaKåžÒ°Þðp¨…µ£ ¶{𠋈ĆJñ ‰Iɤ“¶RûàfjBéM†Íɒ“âãb££"Hw_O7G;k<©¯«%ñ”¼•ú_M™þô%“1T•Ù#¿f“ñ +¹‹éÎ2=0($4ŒtˊŠŽŽŽa[©u¦Úû6&#½Ébb¢I{²ˆð°ÐàÀìhåá6ÕÉކ\iÔÕfγ0­è”ŠHLª_âq–~a÷b•Üa´&m<Ü<<™†JØ-‹ôQuRëL?µ÷ëKÆ6'#íɦû“öIž`ÔÙÑ{0­Ôؓgä8KWwÊQH¤>°çY†“ãùZ:ä¹…¶gqr& •<<½¼¼±ÓGíÛ©}`k2¦=iP†½°Hû$'ҜÅ[«oãFÂöGÜiÂÏ?ïÒN9 +‰T¨²¶ˆUUr7;>`ßl¨äà€í²œ]Hµ÷ï£ö‘L% Ê\œI+,Ò=ÉÚÊb²¹éD#Ý šãUÑ©_-­I©X³VG’‹ŒZtõ &š`K% KÒ/‹m¢ö!mÔ>ò—Ù`‹²)Ø ›'™™>̵c呬ӯپ*ÿáÈ‘nRV1÷åmÃ›äÚtõ H5ì ffNz¨½o5ã$s¦IéRf §;A[s¼šŠ¨§U_î(7­r‘T®Ñ±J.3B´’þiÚØ@MOß;¨‘jïÛCMF1=Ê áèëaë$mÒ¦L…4µRÂ9í.Õ+‡ïqåéP•nŸ6jô˜±¤ùÎx MÒ@ ;¨½g 5ق/ÛKƒi´3v ¶P’èSö?=­®–°Š½A«¸}Ú8¦ii ö¾-Ôd ó÷b—2UU•qâ>e¨´?wá\£ùŒÎ¨ˆä1}®ÍVoìÆÄ5j³¤ژ1ïÙ@M>¿~4¶)cû” …Ä‹MH $ÑÕ¨ÿèÓ¡b$­Šµöašl ÆÖJJl߬÷ìŸ&Ø6eLŸ2¶!K?QW+‰HÔéIwOc¬¾¹{Ú»û§Éò!ÞШ¬{ÇFe|©ÀÔÿLtý˜h%ÝÓúŠ»§½Oû493@ܨŒ4ØéÅ)ß`ü½CÓ‘U6X¿`ûz XéæiïÓ>MNôw*#=®˜ÎV¤÷Ü|7*SHºI«tó´žRÍÓÞÝ>M.|-Õ©¬ç;•Q§Òt“ V‘×ož&_ºS™ÂYíØ<­cï´w·O“RŸ@1;•) Ý$µ~öÖÞiïìž&':|Q{+…êT¦€ˆµŠšâ}Xï´®AºÅÕgÒM;øCÅ£›„ÖNõN“7ŸD«2…£›”W‘Y¥c3$¾GOaéÖ­£XÅüöîV|œbÓMŠ÷jÆҟ’ï1ûèö)Á÷`}Rð-ë=à{ˆ>yøÈÀ÷(P( +…B¡P( +…B¡P( +…B¡P( +…B¡P( +…B¡P( +…B¡P( +…B¡P( +…B**v)Q¶áYá½ü{©X;…Âÿß+<3+:£—[/=e÷^ºÊ±ÌÿÁ>>)ڌù¯S¢cãSØJ}¼²ž²¿üs:¶Ñ9ñ‘ÑáyÊþ6½•u'è*ëâÿà1˜`¢oll¬¬§g0A_ÏÐD9XÙÐØTÙHOOY_Ù?î}þyü¿q†ûß&ð×ÃÿÀ?ÿCeò/襢B>"~13e}Sccý^þNÝÿ +…B¡P( +…B¡P( +¢$‚ïOB‘Jo€ïÏDùÞd”zý¤y»Rªõå÷•R­Ÿ ïVJ­~j¼—Sªõ“â}R«Ÿïï”ZýTø§Ôê§Á‡9¥V?>Ô)µªø|¸SjUÑéŒSjUÁéœTjU‘é¤SjU‘¡R…G§R«ŠËGH¥V”qJ­*(Tªù8©Ôª"ò‘N©UE䣥R«Š•*@>^*µªpÈ@*µª`ÈÂ)•ª`ÈD*µªXÈF*µªPÈH*µªHP©DVR©UBfR©UÅAvR©U…J 2”J­* +²”J­*2•J­*Tª‘­TjU!±TjU! V•*@d-•ZUd.•ZåÙK¥Vù‡J ²—J­òŽ¤R«|ÓåR©ÿ.  ­vêG@éòú&Mü(G.R;Júð?Aù(äoµ„òqÈ[jgþ å#‘T¥NýÛyA!©ÄPgþ EÈÁgçá{0„ߥá{4„ߥá{4ߥá{4ß;À÷p¾5v€ïá|[ìßÃ! ø¶Ø¾ÇCð-±#|‡0àÛbøaÀ·ÅŽð=‚€o‰á{<„ß;À÷p¾-v€ïá|[ìßã!ø–ؾÇCðm±|‡0àÛbøaÀ·Åð=€o‹à{8ߥá{4ߥá{4ߥá{4ߥá{4ߥá{4„ߥà{0„ߥà{0„ߥà{0„ߥà{0„ߥà{0„ߥà{0„ß%á{,ß"%á{,„ß&%à{(„ß&%à{(„ß&%à{(„ß&Åð=‚o•bø Á·J1|„pàÛ¤¾GB@ð­R ß#! øV)†ï‘|«Ã÷H¾UŠà{ „ß.Eð=‚o•bø Á·J1|„€à[¥¾GB@ð­Rß! øV)†ï‘|«Ã÷H¾MJÀ÷P¾MJÀ÷P¾EJÂ÷X¾EJÀ÷P¾EJÂ÷X¾=JÁ÷`¾=JÁ÷`¾5JÃ÷h¾-v€ïá|Kìßã!øvø|ˆàÛákð= €o…¯Ã÷ˆ|úðmð ð=$Ÿ<| ||É§ßþÞ߃ò‰Ã·¾7Ã÷¨|Úðmï-ð=,Ÿ4|Ë{|Ë' ßêÞß#ó©Â··ß‡ïÑùá[Ù»á{„>%øvõþð=RŸ|[úPø/E‡o?ƒïQS,ø¶¡ ð­åCá{¼>AøVö{ð=6Ÿ8|ë{|‰ à[¢|†€à[%ßã 0ø։ð=„*$T© ¡J…u*H¨S!B +êTˆP§B„:"Ô©¡R…u*D¨TB +*U€P§B„J Ô©¡Ru*D¨TB¥ +êTˆP©„J Ô©¡R…•*@¨TB¥ +*U€P§B„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€ÈG*µÊ'rrJ¥ò •*@¨TB¥ +*U€P©„J Tª¡R•*@¨TB¥ +*U€P©D^R©Uþ›S*•?¨TB¥ +*U€ÈO*µÊrtJ¥ò•*@¨T"O©Ô*?ÈÕ)•ÊTª‘¯Tj•äì”JåyK¥V»¹;¥R»ùK¥V»š.pJ¥v5]!•ZíZºÄ)•ÚµtTjµ+é"§ÔjÒeN©Õ.£ R©]EWJ¥V»†.uJ­v ]ì”ZíºÜ)Õ*oøPJ­ÊžœR«r„7§T«¼àS)Õ*øVŠð=ƒo|ƒ€à[¥|† à[â›à{L>iø–÷»ð=8Ÿ |+û`ø0…„o)r„ï¡•?|0ð=æò†ïñå¾]Þð=¾üÀ÷¨Ë¾G—'øvùÂ÷èòßÃ._ø]žà{Øå ߣË|»|á{ty‚ïa—/|.Oð=ìò…ïÑå ¾‡]¾ð=º<Á÷°Ë¾G—'øvùÂ÷èòßÃ.Wø\Þà{àå ßcË|¼<á{lyƒï—'|-oð=ðò„ï±å ¾^žð=¶üÁ÷È˾G–GøzùÁ÷ÈòßC/?øY>á{ìåßãÊ+|¾¼à{\ù…ïї|*Ïð=üòïQå¾Ç_ð=¦¼Ã·9À÷*|+=|¨"À·YÃ÷x*|[-|¦¢À·YÂ÷X*|›|¤"Á· YÁ÷8*|ë|¡âÁ·‘‡ïTHø–òqð=z + ßb:ß#§Øðm§3ð=fŸ|;ú ø¬O +¾e½|Ñ'ßø +…B¡P( +…B¡P( +…B¡P( +…B¡P( +…B¡P( +…B¡P( +…B¡P( +…B¡P(á¿( +…B¡P( +…B¡P(H7|Š,èöøþL”áMF©×O±Â?pP­Ÿ6¯ }Í,ߟòt4ú¡ƒW¾?$僐TúY¨ÖO±R´øG)D^©ÕO +‘SÖèç°^©ÕO Î)£DþIÆ+£•Zýd‡)Q +"¿€x%Z¹`åûóRލd˜¢Ò/¾øòË/¿bÿŠ^Q«8XùþĔw!r*VúÕWݑøD¬H+µúIÀΧ¬SPŠF{ôèÉÑÔ²Z©ÕO §¦¨„öêõ5G¯^èõ+L¬Ôê§@G§Dé×½{÷éÓ§oß¾ðŸ½{ Z1Z©ÕOф*r +JÁg¿þ ýúõíÃhýŠIÁœU¾?8孈çSpÊ(í×ÀÀè/Ò*¶JCU‘‘H¾àÕ‚ÏÁC† † <¼¢V Vjõ@¨lœöîQ +F‡* 66LièÁ@´~݋IÁÔª‚ó§¢4løˆ‘£#G ¦Zû÷c­rÕ•ª¨HJíÞro?ӡƏ¥^CCSCc¼ºšÊ8Ð*¶J§Uņ‘ +¥/*$ßþ+ 5z¬ŠÚxM-í ::&hkiŽWS;zÔp¥7YåûP^ƒ•JfTÔ~>rôXUuMí ºzúúzº:Ú uܘQ#”†0VÙ˜N«Š‰X*Ψ}û2l¤òXÕñštõ Œ'ÆFúºÚšêªc•«°^ŘN« +ŠhJ%Ù’/8՚ ghlbjf>i’¹™©‰±¡žŽÖxÎjŸ¯{2ÅMÀ +‰TöÅu´Šº&8hj>ÙÂÒÊÊÊÒb’¹‰±®¶†Ú8°:x`?jU¡‘ȾÝ1û:\y¬š:5›limckkgkkcm9Ùl¢¡ÞÖ*¬WEÅMÀŠ‡ä”Êd_ T-]pjaecçàèäääè`o;År’©‘þMÖ*[,ÑiU!IÅ)µO?Ⱦ0£jLÐ76›lmëàä2ÕÕÍÍuª‹“½­õd3c}Mµ±ÊÇ‚Š%š€”ú+¦T̾ã0PM&YÙ:8»º{xzyyyº»¹8ÚM±0›h€VG¡U:­*.b©¤N¤4b´ÊxmTKpêáåãëëçëëãåáêì`ci>Q‚†ê˜QÆ0ŝVN*)~ûö‡)uŒª†ŽÉ$k;'Wo_ÿ€ÀÀÀ€é~Ó¼Ü]m9«#‡A±D¦Uº]¨€HK0xØÈ1jšº†¦6S=¼ý¦…„!A~>®hÕX_{¼Êh¦X¢ÓªbòšÔQcÕ´ô ûÚ:¹yù‡†GFFEF„‡MŸæéê„Võ´Õ¡f§Uº ¬€¼Aª:H5·¶wñðñ +ˆŽ‰‹‹Ž  ðõr«fFzZêP,‘i•®Vñ’F,U[â¤)S=}Ài\BbRRbB\Ldh kUK`,–è´ª¼Eêä)Ž®^þAáÑq‰É©ii©)É ±QaA~ÞnŽ6¦†:X,ÑiUQ‘Ø|j2ÙÆÑÍgzHDlBrZFfVffzjR|tx¿—«ã”É&°X¢Óª‚"¹£ëÔÁJœT'wŸ€Ð¨¸¤´ÌìœÜÜÜìÌô”„˜ð`?/W‡)“&êc±4|(]­*&’{¿¸ù0ª_H¿ uZ`XtBJFvn^þÌü¼Ù©‰1A~^Sí­¡Öê0­R« +[þŠ¥Ž% +5<&1-+7VAaaÁ¬üܬ´ÄØð _O;+,–è´ª°pùÖ4½z÷8tÄhUM=ãISˆÔؤôì¼YE³‹KŠgΜ‘–V=œm-±XÂ=ˆAx‚n+’åoヌ ­¢¡ RÝPjrFN~aq霹sç”Ì.ÈËN«Óܝl,°X"Ój:­*Ö4C†+«hè™[;¸ù©¹³ŠJ疕——Í›S\˜ŸžàãæÅكM«ôÙª"!Q)aù;lÔ¸ñ ͬì]}@j挂â9e•UU•åóJŠòsÒ£C§{»:@±¤«©ÆN«½è´ªX¼^)©k˜ZÚMõ#RKæUTÕ̟_S]YVZ43'-!*ÄJ`+3܃ ÓªB"Q)õd+%(-l]¼¦‡Æ€ÔÂҲʚںúúÚùUåsfÏÌNKˆ öót¶µ0e§ÕAtZU4Þ4©B¥dãì靔RË«jë,\¸ ¾¶º­¦ÆGùB±4÷ Þ¸ ü®¿P‚.ú–ÿiHç_2©êš[;ºûG%©Õu 566.ZPWS1wv~VJ\x )–Œõ>lZíöºôûþG ½RÅ=%œT­ܦE&¤£Ôšú…‹›–,iZ¼¨a~ÅÜ¢ü¬äØ°oW˜V$§Õw$à·¥^å@‡•*3©šX@¥Ÿ–[PZ1¿aQÓÒæææ¥M ó+çåe&ńú{¹ØYrÓ*÷lõ­ë }onMµÊ’ÙE >¨á&U¯éaq©9DjãÒæ--+š—.^P[9§pFFbTˆŸ‡³Íd“·M«Ý:ü oðI»~ˑnÜévQ3j,¬Tͧ8yø…ƤdÏ*)Ÿ¿`ñ²+W­ZµrŲŠæWÌ)ȅ8hš»ô´ú¶uM¥ohMÛCË©ü‹‹š1j줝”9³¤65·¬j]³¦uUKsX--ÈI‹ôqu ÓjÇg«R¡*e”U)Ñšvý–’ÏTqQƒ{úaRõ ŒLÌÈ+.«©+[×®[·nmëJ´Z^23;%6lº×TÑ´ŠG–:$ànÿ%­T²á7ÛZ²ë7µ*S^_ÔhèI5 <>}FÑ<º|՚õm6´­[³jyӂš²âṳ̈è?Ogñj•9 ,Ù8@2ï~&Ùð[ÔZÔšvý–5ݤ6•È¢f‚¡™µ£‡hljnáÜꆦå«×¶mÜ´yÓƶµ`µ¡fÞì<(–‚}É´Ê>[•X×HZ•PÊú”è Ívý¦VeÔ¦ÒÀ!¸¨Ñ7µtpó ‰IÎ.˜S…R×mؼeëÖ-›6€ÕÅ Õs sÓâqZe6¹iU¼®ùƒtâ÷ûþR‚/˜îПÓ^î²G*ÿ²‹2©E%eÍ*­¬_¼|õú[¶mß±}Ûæ ëV5/®¯šÅN«.v&ÚêãÈI`Éuäëm$›C3Ý¡ÅÍ¡iÓoùÐMrS‰YÔè‘I5"!#¿¤¢¥nÚº£}çÎöí[6‚ÕƺŠÒ™YÉ1Ìju¢ž»®‘|^óºR¦9tQohl7û•„VjU–¼iQC&Õ°¸´¼Ù嵍 uó¶ö]»wïÞ¹c+X]¶¨¶¼8§ÕinŽÖæFº¸](}fô3ñûPHÏÙ/™vß½DÝ¡{õ"M¿¿âºCS«²E"ÿr‹}2©B¥TT6¿±yuÛæí;÷ìÝ·oïîv°ºréšyE3ÒaZõvµ—X×°Ç >ç¡âîÄè×LshBïÞ ¶'i#ü¥Ø*•*+DùW¼¨Ñ5žŒ“jtrvἚE uˎÝ{÷8p`ߞÛ6®mY²Š%2­zºØZLÔ'gFÅKÌ,Ée^Q»oì ݯÓº__¶‹pÚó[Ho*1‹fRL̚5§zá²Uë·´ïÞðÐáC÷£Õ5+šê+Kge%G‡øº;1ë©ü9·ËÀuåïÅtûÀ4‡†ÿ ÑZÂ*•*+¸M}rûB4©:yLÏÈ/­Z°¥î9pèÈÑ£GØ»së†Öå‹ëpZMˆ bÖ5 ˜±Êî3pܙn߃2dÈPøƒIohÔ*²J{“ÊÉIµxRu÷ …J©¸¢~ÉJº÷ÀácǏ?vä Xm[ݼh~YQnZ\8¬kl-Øç5¢Î-¸¯ð'¶@ÂÄKº}ckh¦7ô°aJØzhe[~Ó.–²FrQÃMª°Ru“’;»¼®©eH=xäøIà8Xmß²~ÕR˜V ²Sp]Ó!÷`*lÄtû¥CIkè‘lkèDZ-¿‰Uª2çµI•¬T]¼£ R*«]ܲnsûÞCGOœ:}æô©GÁêæu-Kê+Kff&FMssHÀ¤s n+à»Å°14„)v†V>;C3­¡ÇŒV…Z!XÁj¯žÒ¡Ê÷p&ÿâ“rѤjh6ÅÉ3 "1«`îüÆkQ걓gΞ;wö4XݳcӚ‹kËgÏH‹`0TÀ#™ܓì}Åͦý¢Rì =VE²5ô(®ã÷×zCó=€Ϳ+U-}S+G¨”fΩ^´|Í&züÔÙó.œ?wæÄÑ»·mhm^T뚔˜PéܗÔ>ݙ͆ÞâfßcUTÕÆcghÒZUeìhå‘ÃIcR6eÓS¦2E<©2+UeM½‰–ön¾¡qéy%U –µnܱ÷ðñÓç.\ºtéâù3'ŽìßµµmÕ҆ªR’€±mAôNJ¶gfiÚ·?:Á4†ÖÐҞ0AGG;Ck¨«bÃïáoløÍ÷xƒ“*Åí¨”RgW6,]ROœ9éò•+—/¡Õ};·¬kiªc0VÀìð0ì3 +ËOÜìͤÞa#•Ç`¯o®1´¨3´ +iãN0=å/{D+Ufû—Ý~pñŠJÎ)*¯_²jÃv”záòÕk×®]«Çï…iuù¢šy˜€C|Ýq˜¹à8kŸÞ_“7Q Àþíl¯o=Cc¶1´¡¾žŽ–X•ê÷M'U™Òaû—Ù~˜âä™åo]Óʶm{8{ñʵë7n\¿zéüéã÷lÛ°šMÀ‘ÞSí,MؾXÑâûÿú±©wÌ85 m}C㉤/4ÛZ_[‰ÿ¼Dþ¥Re†Ôöï€Á¢JizxB欹ó·¬g¤^½~óÖ­›7Àê©£vA^Œ 856ÌßӉ;1ln*ôÃ$H½# õb[hc³I¤-´••åäIfô¹v߃_ëÁ÷p„ÛX)‘=¥0,kW¬Ûº¤^ºzãÖíonߺqíÒ¹“GöµoZƒð¬¬$X¬b­dˆ[Àêàà¦àP¦%¿–Ž¾‘‰9ÛÚΎô…67«šêä—ìáN¥Ê©I+%fOÉ746=¿Ö4붩×nÞ¾s÷ΝÛ«gOÚ³­mՒ†Šâ¼t¬•˜çåØånØÐÁƒ &‹S˜N5´u °Ó÷[{''ÒÚÎÆÊÂÜÄPO[C•é5+nA¥ÊŽ×*%,m™ò·¤jaóÚ-»©·¾¹{ïÞ=´zñÌ1LÀ+çC­”ìëæ`Mn­BF¦4tèP¥a°’ÁéTÏÐÄÜBÔšk Í4V—lö͔¿Tª¬WJ잒úCRþF§äή\°lÍf"õú­;÷^Ë^sKlóíãùZOhrÕJ•o\ÓØ»‘…êÜù‹W¢Ô3DꓧϞ={òèÁÝ[W¹P…8›Àª&†ºÚZšør1pjë8ÕsÚô °Èèظø„ø¸ØèˆÐ wg{kÉޕ½è’Föt:rÜx]c²PKÇ݇–¶íûŽ©ž<{þüù³'ßÞÿ† Ս«—âZ5-ŽœØ‡òÇ@WG[[{‚®¾¾ ÅÑÕÓ7 $<:.!)9%%9)1.:"$À×s*ӐTâp)•*k¸çä_~%±Pµs›–_*–zçÁ£§Ï¿{ñÝóg’P=´{˺å‹jæÌÊLŒ š¡jajŒaôô ŒM‰S/ßÀÐÈ؄äÔôŒŒŒô´°äÇô¦RåJ‡…êȱê:F“l§¢Ô¼ÒêE+ÖoßËH}üì»ß¿xñüé#U(€÷mß°²©®¬Ÿ–ûc“ÑI¦ &šMÆW¡xù†EÅ%¥fdeçäæ`ëàÄØȐé>nN6“M DR{’ËU´ø•)R Uf÷¥úǤ敠Ômb©ß¿|ùýwª7¯œ;~`'”J •%yéñظÐÆr’™Éĉ&¦æŒÓ °èøäô,ì<3?/7+=9>*4€m\‰—«† À܃¤*kÞ$ÕÆŇÝ'\±nÛÞ#§©/@*X}úí½ÛW/°ù·znëûz¸ØO±œlnff>ÙrŠ“8 IHÉÈɛYPXTT8+?735‘t#u–yþâå?üðòųÇ0ÿÙ»½ –ªäa9v£t²›beaaaimcïÌ8MLÍʝY8»¤´´¤¸¨ ?'=96‚4f¤âå>_Ӎ<o)±û„œÔFêV‘Ôï_þøã/¿þäáÝ—ÏÛ¿cê%õä\KDà4G;kkk;ÎiZVÞ¬Ù%s畕͛[R4kFfJ|d0JŒGnjTԟ®häÃkRµß*õ‡Á*É¿·$&Ur·ÑÏËÍÙÑÞÎÖÎÞÑÅݛqšWX<;ÌVV”Ï-)ÌÏNÅ®•¢«­#†b‹_Z'ɚ÷ˆT(”î>|òHýé§_¾xúè,jNܵyMóªҙYIÑ¡Ó}<\§Šœæ–Ϋ¨®™?~ iEŠ f9©äX©¸ø¥*[Þ:§¦ˆæT‘ÔŸˆÔgîß¾FVªkq¥Zèçíîêââ2ÕÍÃë^tZTZV5¿®¾¡¡¾®¦r^IAn:i™ædƒç_TFBë$9ñÆ% T¿X(•0Rž¹|óî·O¿{ù#Jý*%Ê•¿x®;5>"xú4/777/pš +Nç”W×6,\ÔظpA]u9öÁÆ=xÏ*“âW¢Nâ{$„ÔyŽëÔ*vúF©‡woeÎ?äBZ ðóñòôôòžÆ8ͧ5õ ›–,Y‚H+çbËJêî8ÅÜHg<,SsuReÌÛv”‚c¸¥}GÏvúˆTFjьôÄè° é¾Ó||¦ùM +‹ŠOÉÊC§ ‹š–5/_Þ¼´ia]õ¼Ù¤µ>R73œ€+¶ø¥ÙWæHRRzÓÞï1zO$•™SÙÝ_FjFRLDH ¿Ÿ¯Ÿ@0:Å~íLҖ•+W¶,_ÚØPSVŒ#՗©XüÒ:I.¼áћÄSšÅ+Ûðyê•[÷=}ÁJýNTýb¡ÄH +˜>= œÆ%gÌ((-¯iÀ.¤«[×´®ninZˆ­ ³˜sjV¦Ú¸¢aŠ_:¥ÊžŽÉñyª¥äóÔöÇÏ¡ÔgD*³Ne77ãñ_”šNÓsg•”¡Ó–ÕkÖ­_¿nÍêKÕU^ÁÓÜì-MôµTÙ◭“h Ê’7Ý{ãN>àɇíNœ¿zû>‘ú#J}þä᝗ÉÕÖe «ç¢ÔèˆÐPpš”ž3³x^u}㲖Öum7nÜ°~ÍÊæF¶Hð4WŠËT"•n=ȉ wðLßÔÚÑszDbVaYÝÒ՛vIý· E{¿û¶oX½tA.U’ã£#ÃÃÂÂ#¢âÈunU:]¿qó–-[6mX·zyS}Ùúòqµ³˜¨§‰+Z'É ñ]òGD#“rŠÊðÜ®}sÿ1+Uô”´¬\X Rc¢""""£ãS³ò +çTÔ.Z +N7mÙ¶}û¶­›ÚZW,ià¤Nµ›l¬«Á®hh$:´²ßeŒNÉ-®\мvËîç.^ÿæ‘Šip?¦T¬“Ö­X\WQ2+'=9!6:*2*:61%3· ¤¼fÁ’­â¾†HW-Fª÷TÛÉƸLUDë$ùðZÓI<¢Ä®hÈÞóäí:û8õ|HþèR"G±ÿNñL"5&::&.!&ÔÙóªH¯Jlk¸g÷®öm›Ö­\ÊH ôv±™d¤3—©Tª|è؞›©“°øËŸ;»|ãÎCæù÷¨ß‚æ©Ã{··aûy³ó³Ó’âbbbÁiZv^ќJ˜PW­§»÷îÛ·oÏ®í›×¯ÂŠŠHõr¶17½É ;2DÜȎ¼q~ȈÑjx@ŸÜOÍ"Åï†öýÇÏ^¹y÷ᐠ+|eÔ¾gcömiª¯œS˜—…RcÁiR*¾ú¯|þÂ¥-k7nkß³ïÀÁƒöínßÒ¶ºy!^}LŒ ðržbn8A—©¸¢¡Å¯ÌySËu#sö*My=^¥Áâ÷Ö½oŸ<ÿœb Þ¿/öíØÙ·¶¼dVnfjRB|:Í`’oÓŠÖ [Û÷ì?xøÈáCöîd;º€Ô”jfˆ{tE#D*ê#ªÂôey: ‹ßÛDê ÒýŽk~·vy#JM©ŽÖ¦d—p0•*º±¥¯ôKT'bç`¼r\Ñ°ŒÜN=wå&‘úü;îÒÅÙ㤙GSCÕÜÙù}““RÒ³Ø*i%v4º¢q>J Ÿîáh…R•‡“ ¥/©TÙ"¨’oc²/éø°¦T¨“î>|üôÙóçϞ’ëQÈUr,“*J ò² û‚Ôd&P«ê/_³qûîGNœ>{þüù³§OÙ¿“<£“ª©ªÜaC‰ïÁŒS¶ôe^Ì8NCGԙ²ïâ•mÛ÷=}ë$”úìéc T\ÏìÞº~åR&åBöM’ +ÔUë·ìÜGzß]¼xáü™“GìÚº®…•êRMô¹­_ºL•-Ý:ê T-}Üy˜“ŠÙ4xür‡{Œ`=Ó¥Oc])“0û&‰uŚ;ö&û>©xõÚÒñYÏåg3e¨s*1P7íØ{è8igxýúÕËΐ¾K+×ΣRå‹Ø)[%‘Ò— Tÿðøôü’ªÍk6ïä²/i ðø!¨¸ñ°l¡d ŠÖ¨$P=uþÒÕë7nÞ¸~õâY\ÿ´­lªW@¥Ê §lò…5ªš6¨Ì[ijI_ÂçÎ_…ì‹RŸ<&zñô±ýd㡞 Ô$f=ƒ›I•uPúb3Y¶›á­×.Ÿ;yµ«Pj•*?¸ •T¾$ùâ‹æ5É;ÉaFOÏ+©\‹ÔvÜy¸N²/@õʹ“‡÷0e¸íËl<$³»¾ ðý»;}áÊõ›·¿ùæö­ëL/-Vj"YÒP©r@ì'T6ùŽ?ÁЌy{5*6Å2éÜ&û>áwÉ󙪹¨¸F%;„¤Lª]ÔܺŸcšÞŶw8ïظjI]H`שTªŒé&9¡vïٛ$_¨’ô&N¶ua_Ɉº±}?–I·î> RE-” ™âÓñrQ &`ö%ë|çÉN¨7nß¹wïÞÝonâϛ~€ÔB*U^të0¡²ÉWCª$G¿˜(}k™@=qÊ$&ûb b%ñ!¨ø|&)•)“.[½aûüSl/Ã{wn‘Mŝ›V/­//ÌNíý²çÎ莒LxÍi¿CIò50µ²wõ ŠL̜YZĄ̊’ +kÔ;7Ùf“RRããIö-,­¨[Œ¯<?uŠ«{~û~äúÎM­ µ(;)½±úTª¬`œ²»ì„:lÔXu¨|- ùNK›ïŽZIZrK*iuÆí6T3šRóÙ2‰ô|¾Ì¶2ü–)­ÈMÖe E9ɑ^ôћŒé&rÊI섊•ï'L¾ÉÙsk-Ç5ê±3\ ÂzæÛw$vk+J +H ÆÔ¤ÔŒÜY%åó±LÚ±ïÈ) T(®øC7™[7kšTÌÎMŽ +ē’ɩԏ¢[·n¢ÜË8…jÿAJ#F㶩|Iò-ÁW—à[.Nž¿"ٓP¼ñÀž7KO†@Å£I˜}çT’2‰é áÍþ)òPçðî-k›Tç¦Dy»Ø˜w8ÎBO>tŽnÝDJY§Xø’"i¸² +N¨–vS½ÂãIò],²#½Cˆ…,sâ¡¢´`j<9o–Ìfߥ« L‚ŸÂ՛w†/_<çZ.µoÄÍ_òìÍÝÁÒDòÖ۟D/:–5|kùPÞý:êD¡D©Ø))|±H‚*L¨±8¡V/\F¶o±ò½C¦F€<¢ƒ¡¸ñ“ÁݟILɜQ€Ù©{ȉ&l%ð=Þ¦úþ»§¤“À‰ƒ;7­–ÚüՒ¸ŸÊ¼¾O.Z?ŝÐùÇ?2>?ç^kt:t)’&N¶Á*L¨³È„Ú¶¼_Ö%ß>–<záÔq™”•–«Ô¬¼"’}a‘zô4wCîG€¹ËŠ=?vmn]Æn)y9‘…*{ï¢;óú>´*w­ßúÞÀÛ콆dtŒÐ/¾`_-¯¬ÅÝAu-½‰¤H +ŠJÌÈ'ê:|vv†œw åÖ;ܹy…ysÉJ¦LÊH@ŠŠŽÇ‹nÅ¢ì‹eÓóãÕO?1·Î¯_䪳مê$#¦;‹¨…3Xýìw¾ÍÇ¢À^ßnó³7 Öù§?1>QèWÝÙ7À NIáËIñé3f—5¢ œB¹C¤ŠŽåãnR9)“âc£Qj,h +JIöÅgꮑKç?üôêçŸ_aӏoïÞ¸túÈÞm¸P-Á…ê4¼ ÊÝ:æÞßG´Êš·»å[%GGŸoù"üã¥u26ÑçWøféžÜÛ•Ð)¾\‘”š[8¯†lôí=Â6C§ÜíÅÛ×HíËdß",“â ûFŐ«ãEóªÙì{†´¦„@}õó/?ÿüö\º‡å/³¦™“Ÿêë&júÀ¾k¬~N>´Äv¬HZ%vô'ΰb$t~Åê$ï•îż²_oÊ:µ´sñš›’]0§zÁÒÕ¸}üûèô%^3~ Ò6Ÿm€‹Ô”&P%³ï®ƒ'Ø>.?üôó/þå—W?~ÿüñ},÷“³ÜÉ_rEŠi ‹oe«úSÇoðÑH´YÅÐ*¡T¬Sҟ4_ˆur6{â[¥¿îݛ¼±–¼Yzô8pjhj …/IÉY3K+ÈSf…zÿ[Ò´ùG¦kóÃ;7™+©k¥àÝñ” Rû.á²/”IÏ_þNÿòç_~þéåwO R•¿…¤Rr&wəúø®yÔúů eX,–­b¥¬P陒åK ¤ƒ“ØìݧO߾䅵øvӣƨ¨kS [g¿à¨ÄL®HÚÉIÄ)i±Ã¶ca^0´†ÙyȆÚ76::w²˜‡V6ûÞ}øôůÀé¯`õÕß=%•>§YÖP•R0۟EBuðÆj÷¯¾úR¦H Ì"»œXþµJ)eŒru,«¥».8¿&ÁÉØìß_W;hðPŠo7¯­kN ðLHÏ#EҚMíûŽžÂ"‰4W‡ +öÛ¶îܖM©dAC•ÙyX!‘}¿ÿñgpú+X}õã‹gL¥„[ú‹ªKqRõsw´23œ0ž}ãuŸÞ½zöìÑ£»,‘–¯8ɌÙ?Š*m­J+e…ŠR+êëÁ(Ñ«kSœ¢ÍÁC†à»M‡3oMԘ ó)8Ÿ–[ÄI‡™"‰¬4_½úùÕ+®¿ï…S‡ÉS7<ǒ‡RãbccÉ"µpN$î6.ûB™ôÓ/ùõ¯ýë¯þù§ïŸ?ºw‹©”V’Cúä2¹Ídc=-5ò^Üýûöéýõ×½zõ”5ìØ°’‰YÖ+ÏZ9§"¥¢…I±?Boø®w&8‰NbSIiØ°áÃGŒ¥߯‡/c3·˜bïâNS²g•VÖKIO!ƒbýÊ°Ø`òò9É~,伯ø²…èÍu̾?¼úó¯àô`õ/?ÿøý3nûa=^g, /§ws°Æ73ŽW;z$¾ózÈàÁ䣔-88ýñçrÁ,ñúÕW¯iåÍ)³OöȺ¤¿h¢D%†a$ю9’‰M´©¦6A§ö]=}CcòªpGWO¿ p:³Dt‹$Îé_þ‚¥ÎÏ?ýÀHў°¢aqçd¦¥$'§¤1·¢ÈŸ&hnÞýˤ¿üõïÿþþ×_ùé%NªWÎ2gÉ OØþ™ëMÐPS;zÔÈÃáC3Ÿ~¨,ÁÁÁŸ èí9½öèÁ,Œy²*vÊ>.ëÁÅu ›YÑd…(chB¦E›Llj£M|µž¡‘ñDS³I–Ö¶.îÞþÁ‘Ä)9´Àí$aáû’”¯¤Ôù¥>䤒¿ófϚ‘•‘–––ž™WPBnEa™tûRÂ"•ê?þùÏþão˜a¥J^£°kóÚ慢N9ۂU}- 5ÕqcnjVV†>R¶àÀÀøÀÏôbŽg½²ÑʋÕם¢R²w0«Xvžh€ï§¢B-Úäbd‚MSð9ÙÂÊÚÆÞÑÅÍË7 4*>•qŠ·%DEÒóï|…N¡ÒùJ^pR1ý.i¨.+)ÈÏÍÎÌÌÌÊɛU<Ü3Æã/d‹Ë$ ÔþöÛ?!T!ÿ¾ +UÌ¿m+›ê¸w¹ã»qM õt´5Ç««©ª¨àG+Sp`FãÏe$¦Èñèµ2Û˜‚9«])•uŠ©—݇ï?p¡Ê¢y¢OÐÀ—Ò‚KÉÙD™fææ`ÓÒÊzŠ­ƒ£‹«»—ïô`|w Yd.j†Â—-’ ð§L¥ówR¿‚T&ýÜÕï҅ó+æ̞•—›““3#¿`6Ó6©9ÇB©?ýòëßÐ)Zýäßïqû÷ +9¦ßJB5;%6,ÀÇÝÙÎz²ÙD#}= ÚZššðÉÇËUUø­Œ!9^ j2¢’pw&ÖµGi˜@eOÒ3Ëú¢R¥a#F)Á*–E𠺀žžž¾¾È¦X¦½ƒ£“³‹+¾eÄ/ 8<:>Ÿ¯ ”Õ å )’ÈÆ)̉gêW¦7{h[ÝÜXW5¯¤¨`f~~þ¬Ââ9LÛ¤vöI*)“ Pûí_ÿúí7UÌ¿—cìÙº¾¥©®¢8?3)&¬º8ØXM6Ç÷sèëéágב%8,Úä炩r¼2ÖdCP+“ƒ¿ü¢Ë­J;e—Òá£cUÔÔ54ÙÌj`¹²+a"`‚iVÒ¦½ƒ“³³ËTW7w|ň¯@PhDt-"Í!›Á)^?¼x ‹$‘S˜ÿ“âϸ)¥¾±zûÆ5+š̯˜W:»¨°°pvÉ܊šl›´=pƔI¨ÿ~û§(ÿÞ`_cζgOŒ ôõtuv°bi1ÉÜÌÔÄ>¹±,ÁA1„Ÿ‹¾ž.¤M uR“Á +j³‹…V%bµëœþÌ§ìé“þd^yÌ8Uu X–è2Ó$¤ÖI“&#ˆ¥¥••5Èdm™àÒÛgš¯Ÿÿô€ `|ñ{l^!"ã”}„úÙú+©sþÉNŠ˜?™>;í›×­\ÖX_S1oNiII露ʚ†Æe؍…\»ù†+“þñÛ¿þø×o$ÿBý{Ÿ}ÈÓ¶ +›9æ¦'ńûûxº¹89ØÙL±¶²²´Ä?Y†À¨˜ÃÏÅÔSžî- uÕq̃µWÏîìóù®›V»‰®~Á:ÅÇe£ÆŒS¯ MX–@0’XD€booïàààˆimbdúLC—ø΂аðl´Ÿœš‘=cÖl|sLÓòVâôîbáûÔ9¢9¤Â¤øü1é1yìÀ®­Øc{a}MUEYYYyEu-8]¹›<0Ê–Iÿä¤þ“É¿xüá{œ,tÉ«Bƒüñ­SS]œà£ÛÉ›)ð{ÁT`jbl¨¯ 5™ê¸Ñ£†+ ØÁj×Hí&u5œa:V”êáBs²¥õ|¢ñ7uª+⸻{xx™\d††¡Ë˜Ø¸¸x|ç{*¬Dr±Ä)¯®[´´eÍÖ)[øþü翊Ó'i°(üyöÄ¡=;6­[µ¼iQCmMuuuMmýÂÅàtã62!_'JÊ$púÿ$Tÿ”Jlﻍ­ËICìÔÄØÈ°à_o/Owwwüð®²ÆÄ~.NøªÈ)V–“ÍLŒ ô&hª«ŒU1lÈ ´Ú£»ä´ÚUR§äÓ æ¨( Í)¶öŽÎL,‚?Ÿi€/àøûãûa‚0Ïbd‚LÜÏKI…ue¬Brg@3»tnyu킦æUë@ öݸ|ƒ-|ÿLjWŒ´ý‹[i>%COÙ¿kÛƵ«–/i\ØP__ß°°qÉòUà” t Ôà7ñ÷¢Ó£UQ¨’_öÞÙ@J­¹³gæf¤&ÆEG†…LŸîÜWvàxLóŸ ü^Ü\]œím¬-'™èjk¨=²ƒÕ®‘*Tæj^y!@u ŒM'[ÙØ;¹`ËfÖ à`|}‘ ¡ 2“’S9—yyù3gÍ..3¯¢j>FYKkÛæ{X§Lá+vÊ¥O¬”ᕘ3Çímß²aíª˖4-^¼¸iisËjøQìÜǜæ ¨ÿ TágÁÎÊ·I¯H૛×W—•æ“{èñ±1Q‘ááðÁCeE!88(~/þ~Ó¼=Ý]ñ•½¨U_‚•³Ú“}}`×X*{iÈ°QcTÇkëšL²´±wvõðžElHh8ëˆÃÇ&@Bîʦ02³sf ËBp …Íœ¹óÊ+*« o.h\ÒÜÒºnã֝{;Mn·="…ï¯#3"ɞhÿ`'U¼=qþÔÑ{vlÙ°®uUËòåÍËW¬\½¶mÓ¶]ûŸ`·ŒÅúï3VágÁì*1]‚±Ma[ër¨ +a]43/'+#-%ÛFÀ“811ÑÑø{ +ðƒÉÛÕÉÞ÷;tµÆ«ÅÇÞºDª(PIò%W^F§F¦Sì\=}üƒÃ"ð4 ñ—Š{v@ùÿÚ;¸*ŽµÞ{s“›„$j=ìâéŎØŊ½€  ¢""ØÁ‚ ˆ {AAA)" +‚€¢(°€Ø{/IŒ7¦|ï;³»ç°pèÙ»O~÷*+gÏìüç}gfwæÙé®®3f`db`ÎC˜‹—x#K|=mÀŠU«ñM‰›·nߺgoôø¤ÔŒ“”)3ð¥LÈ™á+æ_˜ÔœÍ:~ôHB\̾ð°];ƒƒwïÜƝáL3r& +Ÿ~ ¢¡JÐ×ÑÔ03-éÐþ}»wnÛ¸vÕr_ïEž0ßõ˜é6ÃÕuút,û´²Ԉ“¶—Iímm ó>°v7í¨QHÚªµ¾¥ËÞ**Tu•ÝÜиE©²]g³^懌c5Þ~âä©0æqA3+h6hΜ9sç΃À$‘¹˜Àô”+eàÚµëÖoØHBlç®Ýáû¢c%&§Ï:“S˜)3¦O$LpáïÉ ¤º?j_Ğݠ=û¢öÇ%9 +­‚Ðyϛåæ2u’­ÕÈ!zw뤑·m ˜†ê*æ¥èLöý7}±cG&Sw2ë LÇÙã+òæy-ñõ_±*æ4±n÷ÏmíÀ°D–,ÌÈèh‚òàÁCññ ‡“Ž$§MK?~"+ûl„)®}@™þò«.’ß~£C%4|i*úçœ9uòxú±£©(rŽSÙçr/Q¦ì Âß0Pÿøãr +Ò.^‘‡=·H´gŸ<ўp06ûæ°Ð]!;ƒwì؁%*;A}l%íe=Ì©Wøû,ñšç1ÃÙÁÎjԐþ½ÈZšæMÔ­MB•l‘-ïü«—}ÓÖVd³wÿ!ÀtŠËÌ9žK|—㻡·lÛLù……í&ƒ—={ÂÃÃ#ظ$,”À29%õèÑ´céÇÑaùÌ9@š_pýæ{x_éº}"¤O¤z1ç\ö©¬™Çg?žy" æ\ÄìLÉtˆI¾üA¨r ˜Fûõ‚¼‹9gNÈHK=’ð@lLtä¾½áá{ð•œe'¨ŽÐÐ]Ð^vÀìkÓzòJtÏ93§M¶³iѯ§i{HÀMi¨2[´ÊÛ"F/ûVÿ¶v]â¨éÜÃ|ðH+`ê>_#¼vã– à°Ý$£¢¢A1¨ýû÷ÇÆ q™p˜Æ% Ä÷dfž8™,ΜECH@J6WШZ¦,’ß0{$q¯éõ‚üKrΝÍ>}úÔ©S§O““\¢Í‚œ‚K¾ü¡=F;>ªø¦¢K¹4ÜÓR““'Âî96 +SfªˆŽÂ×Aîßcí•þKÎEª–#p-Ff‚¡Zë[²›²òo5æ%ä¥zø¾‚†M[I˜M¤¶“]Ð_!` Þ  ß½?6‚¢1>E:; Kd™JÂâòÄɓYˆ!;û 8€^ºœ&· L!õ’3zL):We¨ÞºqõJÞå‹rΟ?wîÜùœ\Ú,nÜbš3t֞Aÿ¸³ñ浂<Äz:ëÄñŒci©)ÉG’’±‹N(CAeÄÂö»?:roxÞÚ\àƒ‡lÇлk% Õï*êµèÕ´¯4Å×:Õi€o‹i‡s£qÝõ¼EøÆÙ aø†¼x‹))ØÉ¥ATbXfа–„$¢ÌÉͽ8/]ÎË¿R€þH·ïÞ{<È¢¢×…˜þ¡›€êCÜíýZp½té"{@JšEa¦‚´T¡ ºf´ÈÃx?CóxFzú±cPä£e'ÒáC$〒|LdDØΠM+|Íusžd3Ê¢_Õ6d‹¬ŽEA9Cý‡îKõÈÛbˆ/îàÇõœ+ÖmÆYî'/ނá +Í«™'ˆN‚²hXR–H’0¸œ——ŸŸp^½†ž+·ïܽûHŸÑgm:LuˆL©B¤Ý¹^ÎW ®€ + +à4é¸=WoaJÏñV—ê#ï× +ò/_º{þÜÙ3ِȳ² È'ÊRPØí§K;Š¯%‹Û¾kûæµøZôSí­†„PUÀXDò/Û©V TúžZö%Ä Òenܼ#lot\BR +Ž?!IZ„DçΊʼ|Bàêµk×®£uäM|ÅÌ|êÃGd'.s(ÌT7Î^$Ϟ<~ø· ߺyƒÏgyˆaªêÜð´a U\CüÖëW ò!à/^ÈÍ¡¹ülY +ë";ÚKÖI|/NJRüèˆÐè’ééáâ0~ôóîÈËîÔ}ßgyŽ”ØqûžZæ]]½B ’Ák6Әƒ‰)i'²`´Â„pD]º„AI¢’a‰$oâHnßF‡»wïÝ»@!HéKi!¦ºqF—C°"Öû¸·œè.mp’…BýÏ?‹R}‹càÞ¿‡ ƒ|~~^ÞåËXä‹e*¨ÜÜLÐygàýŽ˜½øWÿÅóÜíq‹–i;9gQP*•{O-¾)±[_‹ÑŒq ZšÇàÛ|ðådÈC"B¢«W¹¨D–HA¢΃>œ¸yÿé3²W®0·×ò§¶[Eª¸‹°>~ôð#¶]¼,ê>ÇoE[ñס P܂2Öt4$à,3Fì Ó^³\lF îkÖAٖ}1z¼í¾šöåäKű/yÐX{G·yKÐç(ß=qæýq {•M«T· +%’D ' §¸I×ß¿|Å!-¦úT9¬ÏŸ=}úäÉãÇô\ÚvO`ßÅTÛ5ëžâ ¶ !û6÷fي8þÓT@¦Ö'ñQ0y5äò%ófLµ;”n‘5Õ« ·¸²ƒ_2Nb^ÀÖδ×Àã&⠈'N\bjÞr¥¾­·(À»$ïј䂒’$ %Â|‹ï_áv Jqè3ý믿tˆ¼¥OáÈê—/_¼xþüÙ3z2¶]¼.Ò.þúëÝç §x΄<îSÝ+KÝ¥B§ H×®â}0¤zø.{[éãéáL·Èjd­›5$^¦ø¾åO*ªvœÄ¾þrð(›ÉÓç /î[IA7Ht¼I‡<„#H J-HÜ_ø +iO\/ˆ«s9¤Ó¿Š¡Á +LÊ«W/‘vÁ!ýMçý¥=‰þ9ئñœÆ< úGe,RhŽ¿Iîbe㪠´– ô[4›¼ð³7÷í +y3ºÞà÷û:ø².e‡næCÆ0ïu +¢ûVˆï 2Ñ|DR!£gléÄ$ˑˆ,þÄł”Ò`g§êÑaí .E(¸Ê›9_¡vQäúçÐk󀖉úgOËXOhï.$ô]fi¸g:h}€7ä_ÛÑÄÌ ½L Ù^–?T¼ñ[·A“–bU§îýð­z«¸×Åàã®Û÷б +ÈÆ#“,JŽ#e‰zC€âÓð÷ ÕaáŠkGµíâWývñÎs°ÁÊ`E®¿–ñJ'ì_”±žÓ¾ý¹ðY0}çFðÆU> ˆ™z™êØ^VÔO TüÒqÒp+杦ä5á'¨/Þr%ûÓ(@.‚ôCR‡#®@¢«ÞÒG2ïdªK„A‚\‹nÃø`»x×9Þ0mƒFýÏ\䗩^Ѿû >Š ¤pÛÈސ-k–-d͜T:ï<*o×wýM=QÓVRM'Y;@—º|ݶ0v{/ٞ†óþW?1µáÈ¡ÔÅÈ¡dpêՎÞI„CBÀþWïlnï:Ç°¿Ò¸§ú¥Œõ3j£—Y •Åì{ö_4ÛeÒ¸zê¼Æµü_º¡ •ÌhZË4¦½Ô}M8ÙÞËn{az¶Âá¨E©Ïñ­'Kô=HY",’ßé‚£]¼ëlãÐ)ê¯e-ÒwëmÛK‰çÞN†^¦újt-T:MÅM×ރGŸ2cþҕƒÃ÷£¹nï½Çl{yý«n,ŠÈß +cäÄÞ¸g§”ï`Êùó– CVï”nzXÿø½pãøoùè 3·Æg~÷ÈfžÌ£ :]ƒÈ›TšUԛT(TöÞNSɌf´íT7|÷ûΈØÄ4jmó€ÛŒ¤ Q? ‹ äXê}ŽBXY°ïk†œC·¿•½È°î5·™3¨%¯ÇѾIåNJy“J¨0M5ëk1ÆÎq¦§ïêÍ!{ã’Ò³Î_¢›‘è“mfmQ€ïÀX„æ‰ê"ùó]çÑ=•AçxOYËBL;ù/·ì˜nf/lPû®7©TT¼¡ÔÜDÑÁ¬/LSaF³l͖]û⎤Ÿ"[Aqé4Ykð[ž£hR]$…Ér–÷£ÜȒÌfv­íÚ_Owªþ›Tʪޭ_j7ó!cí<¼–nÝy09ãtNÞ5Ü +ª³"ó#QTbžE‘”ü<úŸyOà—~çV½½|öbrNg$ë¸Wìëq´PÉ­_¼KˆP‡Žµwöðò Üu(åxvnþuèRŸ¿üùµÎú‘4˜dñÀ–Å9ÊV V²ê ò/:äçfO>E_ƒPñõ8&ÍW$ÔOt ¶Ut¨–œ=ú­…i*»T +õcDKŠñÃ\J†òR¥P_=Â@M¨Ûýz8O°¤ïb þ.@-*õwꣻ7 .ž­šPg¨1 G¨Õ» M`^‰T¨?½jLU‡zO€úéC½'@僨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPTJ€ÊC Py(*%@塨<”•‡ òPS¨w¨>Ô»Uj´µz7Ôè*Õrâ´Y‹ü ÔT +õ¡õý҃úBM%Pý͚6Ѳ +B=sñŠê[jQ¨oµP¯\yþê—_ßT–j©Òy”…€)@}óë/¯ž?yxçFþ…ì̔ø(-TónjõŠ‚ú/-Ôæm(T…~ÛB£¥ÏÎÍ¿~ç@ýùõªeJUW#Žºúƒê›×?Ôw®ççfO9º-Ðo¡…ÚAѶ¹ê¿*êõÇÆÍMꐱöN^~[C#%3P?ùók’‘jùq-G²åS\R¿“ìûúç—Ï3P“E†n ôóòp²;¡š4oü#Bý¢¼¡ÕüCj#„jÖ¡º{-[³eWäÁäŒÓ9y×nßüì%tª$T¬eªrçúe¦ß SȾ?½|öøþíky9§3’FîÚ²f™—;Bík†Pé@ýÇ?ʍé; Êۛõµcçèîé»fKȾ¸#é§Î_¾z oþ¾"¡úÛ[ÄZfzÚò"ZFÙèíÛßH ¾Â[¿·®^>*ýHܾ-k|=ÝíÆXô5k/¯¨ßÖþ±Q³6µÅ[Ǚ |WoÙ{ éXÖ¹KxKéÉsªëÛ²%‹* ¶ì‘–=Ìߑç[‚”*Œ“îÞ,¸t.ëXҁ½!›Wû.˜éh;Æ¢@mӬяµ¿­8¨Ÿ°P6k#k×µÏàѶSÝæ/]µ)8"61íäًWn@§ú Bõ—_)Ö2Ñ[é‘-[¬zHuH0*‹+A¤¿þú ºÔW.ž=™–¼iÕÒùnSmGîÓµ¬M³†,ÔO* +ªÑ7ßÖ®×°YkY;ÓރFŸ2cž÷Š ;öÄ$¤ffçæ]»uC¨¾¬ÀµÌ¤˜ãZvTõF3ÚÈbX”ÞÒ×ÀõÞ­ky¹Ù™© 1{vlXá=oƔñ£õ6m'kݬa½Úß~cTÁPkÕkØ´µTcÚkàH›É®s—¬Ú}(%ãôùË7ïzpçfÁåó§3REïZ°d®ëd›‘{™j¤­›6¬W«B¡~PkÖª+2n%Uwé9`ĸI.³ñ>ahdܑcYg/æ_¿uïÁã§Ï_ ֟)½^kÅ"¦d9¬eB•cÊ¥8œJy5?#Òϟ>~pïÖõü‹g³Ž‰‹ Å»„³]&1 gµ´•±¨n­šõ³ +ƒú9µ¥DÕ¹GÿaV=pN²7öðÑÌìœË7nß{ðèÉ3ÀúòÕ«ŸÊD?S1Œ™´NâU'X˄éït€ú͔¿RŠÌחÁ…¼zõ>{òèÁ½Û7 +.çdg=»7g4έ†õïÑY%iÉ@ý¼¢ þ ~]óû: š´“›¿0Q¹ÀgÕFèTã“Ó³Î^È»ŠT>~òôÙóçÏ_”Z/½zEš¢e¹2ÑZTµaÊ PߐLù !‰ß̖âeé.jäÙÓ'"Ó«yÎf¥'ÇC—ºq•Ï‚™0M%·~Å-›4¨ó}ͯð!MyC­Æ@ýòëß×!7;ÀDu´-Ž”ÖaþM<šyúüÅü«7nݬ?~òäiéõŒŠ¶ýö×_9¬¥¦ª¦)ö}ô¡ˆ(¨J{-Ož<~üÞ¹uãjþÅó§3&bö]€ã$ÛÑxïoýÖùžyòö¯ò¼¡¤ Óл]{iã0}ö"¿5›w†C¨;™}þb^Áõ›·îܽwÿÁƒ‡DJ­Ç±…y 5|çæ5~‹fOw°9¨wWöÞC¯* +*yLÃNTaø #¥áVœÝ=}Vn +ÛwàpJ:P½p9¿àڍ›·nß¹sç.Õ½Rêþ}h!ÐD0úŸ²\ë›7e@•éOY¦ Rìû'â Ò\SP#·oݼq­ ÿò`šžrøÀ¾°  +}<ݝ'X ‡q ~µÓÔò}H£Gç40ü•¨:A§:Ænꌹ‹ý7ïÜ—˜š~òôٜ‹—ó®\½výú ÐÍÒêèömh"Ð6îcZ'\+v®o0³TK¨lêý•N:^`ß™X"‹Û·±¥»¬Œëׯ]-¸’wùbÎÙÓ'ÓSã¢÷ìÜè¿xvc Kí¤’Ààg4p?Ÿ@å&ª0ümФE[e³>ƒGÙ8¸ÌòòY¹~Û®ˆ˜ƒ‰)Ç2³²ÏžÏ½xér^~~þPA)ut [ÈMŒ~HëÀ±2ÁÊÆjICU›|¦,҇$Ubdݸ~íÚ5(E©.«j$ïò¥‹¹çÏfgeKI<±kÛú•>^³\lF îcÖAÙ¶E“tFÃMSË*7RjÞFÞδ׀á–öŽnsû­Þ¸=4"&îpòÑô̬ÓÙgϝÏÉͽpáÂÅRêèòåz,#ódÖ©ÓÙÙÙg@gK§sçΝ?Ÿ““{?€½që6b}Bî[1TKª\ò%ý)0Å0}LF¨@´àJ>Daqþ<”¤ׁU5rúTÖÉ̌cG“ãDÓMË½xLs°maÞ½“ZÒº)t©ßUç¿å8£ÑéH©V]Q“–m0þ¡:Õu¶—OÀÚMÛwíÙøHJjÚ±ôŒãÇ3A'J£“ ¬,h §³Ï@ðç^¸DFa0gºÿï[‘Xe»Õ’BÅ@}Kžs¾&LñÞÀÛ7¯_ÅΏ„Ö`q*+ KSòkÁÊ8~<#ýXZjʑÃñq1ûöìÚ¾im€×lש¨aì«hÛ²‰¨n-vœT¾ƒ_½‘tª4ÿÊ4!TGYOtr›»Ð' p㶝aá‘1±q‡“Ž$'§¤¤¢Ž–Biiiǎ¥CÉþ+׬۸e[ÐŽà]¡¡aaa»K¨=Dááá{¡}DEï'I=9õ`=sž¥úäY;£³x±äP_や§)ÓK¹ç`֑ž–’t8þ ÆV҈§å*Ñ%Am„†î + Þ´mËÆukVúû,^0ÛmÚd;«‘æ=º´Wˆ[Â0é‡ïkÐì[îã$®S%ù— U© +p jëàäê1×k±_Àª5k×oØ´y˖­Û@A†k;§;vïÜ Í#lO8$õظøÄ#8e:sþP½u—<º-M¨²Ù— ÔÇï¦9gOŸÈ¤ ÄDí‹ß8vïØ¡-¡×…Õ±u˖͛6¬_»fU€ŸÏb¯¹®N¶À´?$_•T7P1û–s—ª›éP BÕ¸¥ $`3¤j9~âÔin³æz.òöYæ°bÕê5k×®]»®DZO´aƍ¡ylݶ}ÇÎ]aá{£ö֔´ãYx‹=|üŒYæö¶D›wþÔY‹KõÑý;7¯]¹”{öԉôÔ#‡ÆFd¼=h+ÐØ´ŠDËV‚‹‚Ú \³fõªþË|¼yΝå6mêÄñ–ÈÔ ’¯IKc T2LªìËBÅñ/NU!Të7jÚª­\C¨Žcmïàè2Ã}ö¼^‹–x/õõ]æççO´¼D +­X±r4µë6lÚ²m;ŽÁ¢bNªgr.æ_ƒLC•Í¿%ƒÊ®ÅeõzÁå\ˆÓôÔ¤ø1ûÂÃBvmÝ´qýÚ@À±råŠP®\­ +?¿e¾¾K½—,òZ0o¶û G{ë1#S¼m«¦êc Â0 Ǿ•Ë¿4Tq,jܬµXTÍ eicï0ÕyúŒ™³çΛ¿ÀÓËká…‹ ×bFK–@ÛXêcyÀÊՁë7n + ߃T3OÍ½\pBõÉ3.ÿ–*ɾ4Pñ¡X62=±;dÇÖM [®Xîïçëã³ÔÛÊÅÑÀ+ƒúðòò\0ÞÜÙ3gLwžê`oc9jØ sdª·nÖX„C_.PË=ûêä_ Õ¯ªc5iN¨víÑw€Åðі6v¦89»¸Îp›éîîá1‹h¶ášš;Ú4Ž…ø>~Ëq¶u{Ȥšrì>¹½vó.]»XJ¨ìk\FõLVÆѤøبðÐàm›×® +ð÷]ºdñBdÞܹXº9^­ +w÷™n3\]œ¦8L°³±=Üb@ß] ÓæMD˜|±GÕ“**ª_×ø¶VèVª\Ý¡K·^æ-†ceck?qÒä)Sœœ§&VÓ§OwumÃcöÌèÞ¾0²†ypÈî}û%ÍÈ:¡zƒäßWÜ6R@}MVÍ?¸{ëyz},9á0ݱuãÚU˖.^è9îìYˆ¸BḂºpuPNNŽŽS§Lž4ÑÞÖÆj̨áÍ{uëÒA-¦Ð¡Ö©õm¯µZþPuBÀ˜€ëÖGªmeªöºvïm>`ðÐá#Gµg3ÞÖÖÎÞ~j¢šDäàà0›†“ó´é®n³çÁlYÀêu›!V£$$;‘}þÒ’Ÿ¿ü™ÝfW¨ÌbܛWórÏfe¤&ŒÙ¼uCà +¥ÎŸƒù⠈L™ …£¥4èÂHmØÛÛÙڎ·g5vôÈáC0ïݽk§ö*Y[dZ¿.&_2ô­ @Õ U’€¿©I¨6iÖÊDªPwèܵ{¯>ý ²:lÄÈQ£ÇŒ;֒ÊÊ CY[[Û@Ë°³Ÿ0ÑaòT'י³æy-ñ]¾zý–¡{c&=~ê܅ük·¸ ¥„Êl…¸çFÁ¥œì¨±‘»ñ6ފeÞ çÏq‡ÐqŠÃ¤ ÀdüxkkRL.‹©‹±cnj=jäˆaC- èקW÷®;¨R“V͚¦5¿á’oÅ@åÀ0WÅ\©þ(jÜ´e±L©ißÉÔ¬{ÏÞ}ûõ0pÐ` ‹!C†¢†¢áD#FŒ9r4Œ±–V֐Ï'Mvœ6ÃcŽçb߀5¶í„P=œ’A¹‘Nµ”P¹Á/Ž“n_¿r ×%ÄÇb›×â=Ÿy³Ü¦“.p¼õ8˱cF”‘PDZÖâ_©!C,,8 ¿¾½{v73íÔ^£”‰Û´lÚXô#2­N’/ÌQ+(PõBõ³Ïªu~52nŽXêv:uéjÖ½GÏ^½ûôéÛ×Üܼ_1Õ_« A³2tØð£ÆXŽo?iŠ³«û\Ï%ËV®Ý¼#lß~\j™C…qRþÅs§Ž§&ÆEíÙ¹uÃêåKΛ5cš£Ã[k’2‡ T 8 ª-v±.j¤oß>}z÷êÙ£»Y×.:´S+isãF¢ë0L™ä[QPßEµÖõê7lÜ´y«6m%r¥JÓ¾CÇÎ]LM»š™™uëÖ­{±ÕƒQOP¯^½{÷ékŽ!?xÈ°£-­m'Uy }–¯Ù´+"æÐèTsÊêZ¨¸"ÿ¹¬Œ”Ã"wo^·r¹‘7u’ k „œÙ¿Ÿ9áÒ«””-u1/jꥫ©i—Î;´×¨”rIÛ6­š7mÜ°~½jUS„Ê$`†ê75¾ýRpƒ†!Z[W©\¡T©5íÚµoß¡C‡ŽÅS'VA]ºÐ6Ñ­{^½ûš÷d1lä˜q@ušÛlOo¿Õ¶…„GJJC¨e õ +㤔„Ø}aÛ7ჱyîÓì¬-G 2x@¿¾}0ʺ™uE2]°¼\á‹s¥P'íÛ·k§Q«” +¹ˆ¶†(mÜ°¤Þï¿­ñ ǔI¾•†ªUc°¬Mš6oѪµI[±D*•ÉärHY<©©Õj[4‡N]L»vëÑ«Ž©GŽµ¶spr5ñ²•ë·ԃjÙEêmúe î ݾqÍro¯9nÓ¦LÀ{ûõíÕ£›„Y§Ž” +̖½8׉U"—ËdR©DÜÖ¤u«͛6!H1LaÜ«Ë´¢• UHÀ”ê—_}]‚°Ö«/®Æ͚·hÙ²UëÖmژ˜˜´-–ÄŒ$ )i +íí;têljÖgJÃFá½åéîó1P1ýžÉŁR~ß0£_(]ý-0R§N÷X°ÄõÆí¸ õø©s¯\¿}ŸZLèZüƔYÌB¡>yp÷æÕ˹Ù'ҒFïÙ¹W…Íq#O<‡âý<˜V„Œo {6…pkŒŒ°ôô:>z¹¤^êÕ«[·Nj×B¢5k(%H+‹)ÊR%ÁJ±B¸"X hkÕ®]û‡¨§ºu±`“üݸ †Ò2¥†@…Hµ?ÉiÆl¯¥›ƒwGÅ%¥Ñm“ÄŒ@ÿ)yñ©þ©õgf7Œ”N¦'ÇïÙ¶~å²EófN›l7nÔÐAx“¶c;•\ +³–Í›2 ”DRBN¬>xáP7PCßO +AJ‘2©—cZ¡PYªL°²X‘ë×ß@ÄÖ¨YØݏë{*¶`ˆ“~™¤MÄjϾ‡ŽÂ33çb—º »Trï!ï*Þ%Ôqøù£°#O1Įչ¥Dî>°ê’Ó§N°3|p¿ÞÝMª¤mkdÚ¸¦PŒ9-'¢]5VÔQ ˆÐo¾F¢,R6L+i!ª+$áÏ¿ `¿"h.Uª&mHs7bªÆͨ»tëÝoðð16§ºÎZàí¿f“^ö½ÇyÁü¦»Ù0¦Tj¯›Ùü»n…ÏÂ9nζ–#‡GdíªIë–ÍSìiýŽ‚ªù‘‹ej+p~E€~ñ9$^‚´2™êRe±"WÉ¢¾bõõGD[Â%c­êԃ9o£&U"WµïÜU7P}W®Ûº“›¥Ò'o/´Kõ=[ŠEôvu>.ú}AŸ½‘ÝÀd¦´qµn¨âC2Bږ@mØ'#d CŽAõquBjy"P$Ê!­<¦…±2\ X KØ}ùQ1ü¿þšäío¿ªôþT³–mÚb šv'äñ“]g{z/'›@oçkŸ‘³Û¤J`±Æì4&;£˜§äì-ý(ª¾¸0w²Õ¨¡ûö4#¡JïìA ’Á+I¤4ð«Š­¬¦ÿP  ÑÊFªC•Ã +\,ýŒÀeõù‡EÑXÄZó»ï)Ô&M[Ðçy]ºõÂäkCßù‹ýV­ßFo'ežfŸ¦>c#õ·úp½å¶¥2 ÏnàÒ*‘û›Ö,_ÊÎj† èÓzU¥¬më͚4!TfBB2é— ¬÷I§VH-}J€Q-ÒJeÊPe±"W‹d)[NŸ}X;f}¡ú}í:õêãcL¾êöÉê§Ñãì'“-+ÖÂÐ7ò@BJ:»îúZÇ`ͲœéÙ>þ3³ì÷æ5ò B5:À«ü0;N´;¢?Ž•4øøBUTŸ@­Yãf´ó9Kë=Ò«RSŸP HT‹´ò˜êa%\ XBöïGô)“³q…·0T TH¾bìPÍzš“ÕÁÙmŽ×R|B +C_ ÔsÌbB„úcPBƒ5jZ…{)Ô[s TSð9yð–µ+|ÍswaGÀ¸öD!ªÆ˜{¶ôÎÁLïÈàú¸:ú ”­HµX)W +–AË꓏èßÌ‹¹Až àƒ¼­Å2” ’l`Šê¹Äoy@‡&gr ûâbn€ú’ñázS2ƒ5jzŚV‘ÅÜ0TÂP=Cöý.Sì¹Á’ºÕ–¸T¡^æF<¹wð›Mß/½Úajì:D+)ªšWŽìÇÅAÿ·öfc ¨|[ಧvX¦“˜ç3ë¶ãóñ#i™§Î]¸\À@}Îøz”Ü_¸%1ž‰]$šrø@Ԟmø¤ŸÕL¶·=Œ¥*nӂ.V O̘{|ÿ港Øj«V…¢ªiõB*ÙOè½F„JŸ¸7Àµ­TÉ0ii _ù‹|WnÚ¾+":.‘¸…à}º‘ú?üôs)üÕÐùŠ˜±<¥Û¯aþÍÂPÝ¿/,x t«Þž³Ýœ'ۏ=lPíÜ^%·n ˜„ju„Joò}òQž…+I§þ*¥žªé«p±ß«jïI}«ñy;³ ˜âunçpœîN—<@òŒ…@¥ëóÉnÆÔþø+•Ø^˜_½ n,Ò}Œ—sϝ>q,åp\tÄ.\©´lɂÙ3œì(U3¤Ú¶Us\+ö†êW*sK¨·w«P­U6Äw©šâ¨~¢}Üþ]­:t›D¡éˆëà ө.îs½–úã:°½d!w橳9dÛ± xLí•Jå®FœÈˆË}b\…P³Ofà"ýHHÀ|͟åêD©šÃtµRjÒ²$` Uîéö'Sƒ*£²á}PcežõàcÙ¯«û=Œ’°CËÕM{ôÀx¾KÇJ¡~öº6’/ ’:té֛nºšBö½âÒЭÁa{£$9šŽT/ IÀuƃ‡:g•Ì\í!gEvÿ:ìPë*âst<-ùðÁýûö„m"KEçÂÄf"{‚.ªo‚‹êéìÿè®CáÅ⋍Uº0‘."þGIM[´µ³Y¯~xÓ&yÌ[¸ÔYš¿/&.ìOE€KyW +ˆÏ­Û:Þj†¹«q"^dh™„;À4÷ü™S'2ҒŒÍÖø’u…S&Лݺ´ÇLC•Y­«µ²k¸2¤õsvkÙpE’/3™AÒÏ%ËVnغcWxä~€šzìøÉSg€êÅËyÄ[éÚuj­VroµŒE;²KrΟa¬Žpç[ØÎm›Ö®ò_ + XÛ­BæB•ìáöJTøî*#}¨ìÎèQ!PÛw†ä‹w|í';Ϙ5êڍۂCÃ#câЦ)¨fŸAž‹ŒoqV+±·ý0º‘åÓ¤œóg³OÌ¤É T´ÜÀP3“KÀÝ»´W‘P-²æjá94û6ÆU7Pq”´Øwùêu›êž}ѱ’ó-ꬔ““KŒÕJ鬆g@ ¬œóçАìÔÉÇÓÓRŽ>t &’B]³b™7ÝÍφjGµ¼m+ÜRZhûaÅ­í¬rª¦¿1²:—}í:™ÑG3vÔGb‰oÀêu·îÙsà`Bâ‘´ßAc¥SèšE}ÕJe¬FN@ýÈNeDÛ¤ci©ÉI‡ÅíÚ»'4˜@õóÆΓÙ^µs;…„Í¿¤S­à•õUP… b—Z¿!d_ ;¸Ô ³/º|ÕÚ [‚‚wÕh꼅¾JiÄ4‹Úª•ÒXÚ‘eÂɨ Öєä#‰ ñhâ±wOXÈö­›Ö­Àío³`¨¤Í¿Ji›Æ ëWü¦ÒªªÂPI—Ú´¥‰TÕ¾Kw˜£ŽÄ9ª3Dªçbÿ¸‹¨†¡GËþqh«”˜t„˜ªQWµÒùª1§H!ŽdG’'ÄB£(tñØI,V-÷]‚ûß´PM;ètªT”ÔÏ©…DÝ'©,ÔÉN®îs,ò^¶œÚ3¡E˞ˆ½‘QÑ1ûcÄÅdLÕJg«¦õ#CG²CÆ8»?&:vBC‚ƒ¶nZ¿vU€ßÒŞs=f8O™0ž.X¨2íHI€ú:P?}'TH¿ÄîÅmÖ<ÏÅKêêµëÑ¡%xç®Ð°Ýh™µXª1žj¥pUÓu$‹ŽBO²È}{÷F„ïÙ¶‹XílÞ°Ž¸-ñš?{æt§Éö6cÙH%P0PYë#j¨˜~Ɍfô8²q&qðõCƒ–u6mÞº-hûŽà!!»v…Kµ’›ª½Ë’ MÉBwQ¬íÛ¶nA¯5«Vø/[Šî®Ó¦N²7f8®ÐŸÓPÿ¯pŸª;MmG± …ük7i*P5w×bo?àº&pÝzj˜µeËVâ¨VKµ˜’mE[²Í›6nX¿n-ZY-÷ó]ºd¡'Ms$.9¸²Û¬s;2PúT­Þ=úmޚ>¡éÓßbøh+{ :ÝÍ}öÜù^‹€«¯Ÿÿòꗅ~jh¨VRKµ÷z’[2ô%[½j劀åþ~Ë|–/«9n§öã­Ð&§O®‰MN¥XªTU½{žJnçܦ—ùÀ!HÕnâdGÆokþ¯…‹/ñ^êããë»l™Ÿk¨VRKµw{’[2¿e˖ùúú,õ^²xÑB/ÏùóæÌr¤NS&ÙÛX1„øägªøô>§ êßQú‚½£Ôˆy˜jÚ÷/5vÜxû‰“§:M›>ÃÍÝcÖì9Ô.ËӋ¸©•ÈO­8¶dhLæåé¹½Éæ̞åáNìv'Oš`km9wªÒU…’6Ü}ý;J•]¹•¦jzjŒ+S“檸ì]™,†m9n¼Ý„ISÐPÉeºë 7·™ÄKuS+™¡Ú‡mɈ3™‡»;µÂšN쓦Q»ñ֖cF³ ›;áúßVºÏÞ*Ðü¨ÊJ •}JíAÃF‰ùN‹–­ˆ:¨ÓB­l…ß˸`µ¤F;¡5@Ÿ²ÿTŽ§U•;Ö¡Š^‡€UkŸÖ„šfµâZ¨•¥è÷¢KYÓ¦ÆM´>eˆ´&»ál£ù§Ð£¢t—é³6[_£kÔd‰Z£FÅ4P+‘¯oˆ6eŒOِxщX q[£þ§W‡j¥KU‹õj²U ­•ê0¾YÅôO+16eÔ§Œ1d©Á¹Zé8 LÿOß=R}·{ÚÇýÓÊ[¤ï0*û¼°QYeWi»PÿŸÜöc‚•¸§U׺§Ç>­œõ­Ö¨Œì±Hµ;ÿg÷ÐG• ÖO_«ožVû´rRu­Sñ¸¢ÎVÄ{îÓÊ6*«’ª¦¬úæi_ꙧ}Ü>­\ô•žSٗït*˜ê«šn°r\ 7O+_Ui§²*(–jaó´ÂÞi·O+镠j:•UAUÓÅúÏ÷z§}Ô=­œT¨œ½U•r*«‚ÒbåLñ óN«é[\ýSß´£²ë°ê©šÖy§•·þVeUNÕô¸rd«¨ +›!UvíUYU«VlÕü~w«Ê®¹ª­jz*–qX%H¿”•]gUû;©²+ëo¥Ê†U UvýíUÙ©*» $H A‚ $H A‚ $H A‚ $H A‚ $H A‚ $H A‚ $H A‚ $H A<‘±qwGÛnÖ®ÖF#z›öVXÁσ­§»Ú¹õ0j$‰M4"±H*’ˆFx‰á¯#l”¢æ-D#†̀ÿÄ¢Fb•\#–Âï*Uj¹LBþ"V¨Õøi±D£„#ä¿Öðûƒá÷åbFÔ~äþ No¢Í4ÒÈLÄb‰H¥0K52ÑT#©ÄD¢T(¸#æF‰\*SsG$j±D¢©d&J‰ZªýYb¢V©DfFì©ÔD"Sªð챉L'gO Ç5j¹\Ä~)û³™‘\i¢‘h˜ÉxŽÀŸR©F$—™Heð/©‰L¥’©LdrµD$êËp +8¢”ÉdÜs<"Qã9˜#2¥‰Z*SáÏR¹šûQc¢k*Ñx#í™JUȞ@—#W*DìW°?›©T&R¥BÉ1Ç#*‰DÃQA]¨RîœÚŸÙoe0ÅbOÀ–šý +í•âoˆ¥+E¥¶v”@çbkO©†ŸáË´Î4m…käÐФRîˆFi"QÈeCîg†2œ‚9Â4sí¦¥°§d[R¡ÆgfdcdlÕÖÔŵۤñ®“œ­]´~H·j0WhLr%dH®ødøRˆ$Ì¿j™R¤R*Ȅ¨& D¦>iNYDN2ÚD!…¼"—Ð3â*¥HEÀ$ ’BQTX2%ÞH©€@a¾ÁF†%Pa•@-“’À?ËTjHŽ +Èblۘ©J >¥Z¥É!QŠ5$K¨á¢D +HvR¹¾ƒž^®€x—«¡‰¨øÅJ±X‰Ë 7PJ |ÐTàg¥DŽmD¡6Qk +¤&:à4b  +éL!‡Ìþ”*eRü¤T%QЮHª«1‡j$PVè‰Ä*± ¯U*–HE +ˆ0‰š8|‡štPb`ÐHLT*¬- `ÌÆbH RèåR•êY"†r+åØîŠüºmh^ð+r¼DɪjŒs¥„öo œÊ¡R©H¨ÐhH˕CWƒÝ™`‰”2¨# xh/j5T2@Ð;(„[:”Ú +”®\Ž…S+BþF{ZH(J<.WË!3µ„|^¥†ÎڂF)Ç/€¿©dr–Ú?@Vaëâ7ÊàLP è¤j ¹ ^«CH%‡?¥r9Ô9 –‰ÕJlØ2HðXãR¹ yˀšZ-Ã2¨ÔP pŒÆ54G¸æB!] +õ:ÝȒC[á"‹Œ„DJŒ(§Â/†f40¢ VËHÉÄb)/Á ÇˆáÐ'Aß­ÄnG8rèò @d*’gdx°ï–K±fp4=6éìá< +¬E…¾š¹L +¡u¦‘BÝÁ UèÚ e«ÕPËðr|ËƔZ¦&EP‹ƒZI‹¿©’`_+‡N’€DEû72(À±•”M­Ð +øJ†4™œ|»3l +0LPá)¡ËUÃIåtƒ-H,“@8CŒJåðRZ¸\h´ +Ä +D™ƒNM=ؘɸó† > Çn +ΌƒlŒ˜X`¨ ‘CQHLäøF5¦~š)¤W2 d48‚Ö*úó0‚©ä +ò£)ð”Ð#B¾†V‰­ÏÍó˜TIF®d"Ãñö*¦7Àl8\¾FgÏ5¨’-H{ƒD …R’©!±&§Tà_4$,°IãW©!!a©q4…ÃWÈøP— +¬[ 6%éÿdØ%A•*0C.Vj°%A(jZ( dO¼P™ ÆO½ÅPØ”*1ûK%ð›ÀY.c¡¤ú7þ þY¨{@˜ ý@¥aæ Cßù·Î؊ŒÞŒ­fÀÿÄô¯†Ìcð·¹Y ž¡wÉ!d­ŠLaŒ­ŠNb †Ncà#E&2:NJ=•1¶*2™COgŒ­ŠNhÈ1æ4ðƒ'5ÆVE§5䘁øŒ¡Sú5ú“8fðô†k&º ŸâÀg +Ortwšclõ¡!,d²cH ˜Âosø|‘)ö˜!“øTái2xâƒ_^xê£s¬¸“üH‘é4xT´†ðDši“L„ðÿ M… ¸HÍ™iB'+2%‚Ôfè¤>RdZ¤s¬Ø#¸„"S#8fðä¨Hí˜4h¯AƒácÓ$ ›Â%¨É"S%HÁ†N– ï8]" Ï° “±•ÁS&øˆA“&òN› ±ÁВ›@½ç÷ڎèg>´w7Q;Qón.NÎÓ'ZÛ:Íl!j/jnÚ["¶‚À¿¶µ¦Ÿv±¦Ÿ‚™ÎpuѧO“fÙµµµpu™ä8ü*~ÜÖÉÆÎÊ´·Æj€Ít;7;[«¾vVô—¦Ó32÷四::9’bšwåžk™[{ع´icdl<Ðz‚ÝëISì\Œ&L·v³Y;::¹Z»Ú9ÿˆ&¸ØMwur±MŸè4ÀGØ_76î> ‡ÑÿTŸ endstream endobj 104 0 obj <> endobj xref 0 109 0000000003 65535 f +0000000016 00000 n +0000051018 00000 n +0000000004 00000 f +0000000006 00000 f +0000051468 00000 n +0000000007 00000 f +0000000008 00000 f +0000000009 00000 f +0000000010 00000 f +0000000011 00000 f +0000000012 00000 f +0000000013 00000 f +0000000014 00000 f +0000000015 00000 f +0000000016 00000 f +0000000017 00000 f +0000000021 00001 f +0000051069 00000 n +0000051327 00000 n +0000051358 00000 n +0000000022 00000 f +0000000023 00000 f +0000000024 00000 f +0000000025 00000 f +0000000026 00000 f +0000000027 00000 f +0000000028 00000 f +0000000029 00000 f +0000000030 00000 f +0000000031 00000 f +0000000032 00000 f +0000000033 00000 f +0000000034 00001 f +0000000035 00000 f +0000000036 00000 f +0000000037 00000 f +0000000038 00000 f +0000000039 00000 f +0000000040 00000 f +0000000041 00000 f +0000000042 00000 f +0000000043 00000 f +0000000044 00000 f +0000000045 00000 f +0000000046 00000 f +0000000047 00000 f +0000000048 00000 f +0000000049 00000 f +0000000050 00000 f +0000000051 00000 f +0000000052 00000 f +0000000053 00000 f +0000000054 00000 f +0000000055 00000 f +0000000056 00000 f +0000000057 00000 f +0000000058 00000 f +0000000059 00000 f +0000000060 00000 f +0000000061 00000 f +0000000062 00000 f +0000000063 00000 f +0000000064 00000 f +0000000065 00000 f +0000000066 00000 f +0000000067 00000 f +0000000068 00000 f +0000000069 00000 f +0000000070 00000 f +0000000071 00000 f +0000000072 00000 f +0000000075 00000 f +0000053130 00000 n +0000447035 00000 n +0000000076 00000 f +0000000077 00001 f +0000000078 00000 f +0000000079 00000 f +0000000080 00000 f +0000000091 00000 f +0000447070 00000 n +0000447144 00000 n +0000447428 00000 n +0000448499 00000 n +0000477276 00000 n +0000542864 00000 n +0000608452 00000 n +0000674040 00000 n +0000739628 00000 n +0000805216 00000 n +0000000000 00001 f +0000051443 00000 n +0000051140 00000 n +0000051211 00000 n +0000051242 00000 n +0000053446 00000 n +0000053559 00000 n +0000443823 00000 n +0000053594 00000 n +0000053953 00000 n +0000053990 00000 n +0000053773 00000 n +0000051857 00000 n +0000866269 00000 n +0000446471 00000 n +0000446521 00000 n +0000053192 00000 n +0000000163 00000 n +trailer <<1913AC01336D494EA4250E05957BB203>]>> startxref 866446 %%EOF \ No newline at end of file diff --git a/OSX/iSaverRunner.plist b/OSX/iSaverRunner.plist new file mode 100644 index 00000000..6d532ab8 --- /dev/null +++ b/OSX/iSaverRunner.plist @@ -0,0 +1,67 @@ + + + + + CFBundleName + ${PRODUCT_NAME} + NSHumanReadableCopyright + XScreenSaver 5.15, © 2001-2012 Jamie Zawinski. + CFBundleDevelopmentRegion + English + CFBundleVersion + 5.16 + NSMainNibFile + iSaverRunner + CFBundlePackageType + APPL + CFBundleIconFile + iSaverRunner57.png + UIStatusBarHidden + + CFBundleShortVersionString + 5.16 + CFBundleInfoDictionaryVersion + 6.0 + UIRequiredDeviceCapabilities + + armv7 + + CFBundleExecutable + ${EXECUTABLE_NAME} + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CFBundleLongVersionString + XScreenSaver 5.15, © 2001-2012 Jamie Zawinski. + CFBundleIdentifier + org.jwz.xscreensaver + CFBundleSignature + ???? + CFBundleIconFiles + + iSaverRunner114.png + iSaverRunner72.png + iSaverRunner57.png + iSaverRunner50.png + iSaverRunner29.png + + LSRequiresIPhoneOS + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + UIInterfaceOrientationPortraitUpsideDown + + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleGetInfoString + XScreenSaver 5.15, © 2001-2012 Jamie Zawinski. +http://www.jwz.org/xscreensaver/ + + diff --git a/OSX/iSaverRunner.xib b/OSX/iSaverRunner.xib new file mode 100644 index 00000000..577cea92 --- /dev/null +++ b/OSX/iSaverRunner.xib @@ -0,0 +1,176 @@ + + + + 512 + 11E53 + 2182 + 1138.47 + 569.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 1181 + + + YES + IBUIWindow + IBProxyObject + IBUICustomObject + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + IBCocoaTouchFramework + + + + 1298 + + {320, 480} + + + + + 1 + MCAwIDAAA + + NO + NO + YES + IBCocoaTouchFramework + YES + YES + + + + + YES + + + delegate + + + + 9 + + + + window + + + + 5 + + + + + YES + + 0 + + YES + + + + + + 2 + + + YES + + + + + -1 + + + File's Owner + + + 3 + + + SaverRunner + + + -2 + + + + + + + YES + + YES + -1.CustomClassName + -1.IBPluginDependency + -2.CustomClassName + -2.IBPluginDependency + 2.IBAttributePlaceholdersKey + 2.IBPluginDependency + 3.CustomClassName + 3.IBPluginDependency + + + YES + UIApplication + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + YES + + + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + SaverRunner + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + + + + YES + + + + + 9 + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + 3 + 1181 + + diff --git a/OSX/iSaverRunner114.png b/OSX/iSaverRunner114.png new file mode 100644 index 0000000000000000000000000000000000000000..97da0c72cc800dd38119566e204354e09d21c316 GIT binary patch literal 3809 zcmV<74j%D|P)L{exucP!l`z;18u$krn#y95R>I&gAl-j|lK1e_+6(_N-l!pI zB?inyIa{U#5nxDU@ROvKFo+iBtylNPtGg_nP2-H&NYV{FibbjOGuZv_zhqUlle7{5{=C&ChN0)U;vWz3=1NVyd!Hp~B>?nz(Yf>) zu(2~vD$p_~=&y|rk&S$nrB*KNuvuWEfRZZbGAXrhj{}j7JguCmS*J}1Y{(d_7xc+W zDQg^vY~*PLKX8f8K)0Xb2*-!WM#WG|>*SxgxAR#OC}!$Z#|?Ga&Ji1;;|U-dXdO(_ zdLQ~HPIYe!Y4m5ciA$C7>JxtrJPHH6YbuN3n7c(QZK@8ER!^{G%38C|{VVvbJN1;U zi-mpfzv!=t@kR~s4s{yH1%K`;P!f_>Z<{6b*z=@WBp1^`3WjTscpnd4p7Hkc!Y5va z|FsQv0J)^L`i|BM=KJ1MLhh=+X5YO$!KcF7Kil=B!^xRCA4*q+CHWs@7%8SQurc6O9_rb5chnJF0U=)Dd1wXSg;w<+kF7C;HY!M_^bze&w zxTuseA!bQheZ!|c8fMuv2FKw#9hNu{(`~)2P?b512uMU@w-u@hl2+e3_G zR9_^mctds0nPPX>23$%;a+LAKRa$ZGR*d+zukE_#{#8b2HFR4@TK&RMylO97fDP3J zGnq9vP0i|f!MxS({hG>s&&7Wqsxk%(F*-?FeZ%y@uaB#`QQME=B1a3VdiZNSAHyjC z#20%QV5p6%l(LN9ohNC%4+BT@_g$~`HULlp9I4ZbFv-f?(YR1I8o@&N7m~b$TECJL#coSyyoPykNvWfktc zBrv$Wv)e(U9$z?=f|1<8Ex@qCrdV$Ov$-Lnb#QQyV^&9z z6WGE}hM(xx_Hd&1jL~h{|(gIxz?7?6i1AM4Q+%;Q` zu^6zSp*7Am*4JsXteMTjsgi(~7)hH;G#+u+VIO&1bt5n7P^Iy}D#>`J6%+tXO&xaY znpvYrCJ?Z5+FkV(Rti8yM$`eoq5*Nc+O|}|8Mm}z$D2_%ioZL9P+s|*x^=No$f3G- zp1$9u`2;-3bEh40#z}KZTY=g9Pc&%5tH(d3 zXmK_CZONU|4M~fN`Z8x_WoKuP*hHhz96WdsL6B&t)vW+-fM;T4W^UiUJ+I;{rCW>V zB!{_^wq5DWTfi@`uZP<%1U=b*+-J$_Q8;WGk``C>K+JAFSr1pl!z?_u_3PJ1y9i*1 zMIiOJ589wRx3#so9^fN0@u(z9P=PtE;kH#N=m%=nty{OviR*bNSe!X62~Yv=ewzO1 zqmNcqRgKsrJv}`Jv=#LL?$i%yWQLSgUtbTu0y`xJycG*D`-UkEek$0lxw*NI|7jC; zUU6V`R(;``NA%`$(W|e%I!;m+*7GZvoSIfMh(JR_1E?5ux34l%@t+DpZ$nQCY&ccd z;K95v$LpWA2$J`f8eYj340SexhQvIrX>=x50U_3g?z%RhA}A{>gN@~Rzrh)F*iOBA zHuu}JM~8Xw`*j028*X-_6jUH!fyV=_3NOQNZ(%~Ezf{RVX$2i96_3tZLZ`l6P0!2b z*VonT8t%iX&hR|Ynhjc^${xeCde>1)ID+yfLyjW;#EBE21F$FKxnH8+8N`o#)`S!1 z&0x8PosRuF70y;rvmLI}FIB`B78b@ft=^6m9k_#{0O}v~_8^VCOE-_|v>+xg8j?jE z8i)z#0M38~IlBE7)!k8Im{u9xhqaXU#DmR(UX03|NF+*r;rY=9EIgj7FYQqEk1AkS z(#43;q3Q1kzYY*et1rjCk(XF>MhAXC#=MI%8$`fT?tP`Grq#5178ifOqJ0GvHv9og z7_DFf{B>dORZh)K6Xa#6d_ZA?3s@-L&=&y^u=xEi^c7_)3r}4TrL_7~0C&J1sx+bj z8??fr9D&bQN|_~wA>89W35dZF!?Xs@IV%Q}imHa8S_fJ|>4FPbcsvDV!ywbmRuj&) zpiAJLg>)TS>5VH|QJMSpoNL1WnoI{;QwC=V=Cq3%ZrNmFI-cQe6ud51EgR;54c{EB zopI7Xeu#kmtg8GBatH*h@rkU_1}szu8}3Y8X-!lx@s<^+?TgiDy?Dr1D&H6xxGPI)DgR-ASc zYW$DNO?lY@2-xiG?5h(({YuAkkASWi}O_=NWo!A`iN62#*RC8 z9LiKyY|{$Ziu6#T36mz#}5fO2ETWQNAimuX^*R*^`w;oahBkb+|lHB@wqiu%^BT^sYX z0&;V6``4`qb!{3Lh{H~wVlAjZsEO0UHg_oGZwCqs3*VB7!Z4`n5Bqg0D%*L!FELgJ z2K{00$EB~>BeO;YcjOk^fgb+(~1p^^z`(CGbgu3B7H%<*Vt`^9+R1w>8~?| z;<}6w-Or94J3IoUUa!_zHT&-Usgdwt*Ki-ydqSaWI;Kxm1sfY8%f$%YU3q`vV-(6f z7B@VrghBQE=Do2r1VO5+tHaz&!o8?So~ElruMYK9z7w)XV~>IjUR3 zPR9?6R+QNgl?l~yl38RW!sGxw*Tv`h>4^hXTF>9VmtO%cP?fH5B;}lBk<(d%}ZNU%lmY)o^C)=HK z**vhfX$+Qv$?=%N2E2FJEfC{f5@Y6UT2Gg?vFZP_IpHxwa1r%k;A{{5WR@y>TX0KZ z1-T9uiV>F=8x_)et55xNlfMOvWMX=bB3_xwyf-16Ro-MMs6aZ@b}SK#U;15m04~<-(qy!)ENid^*4)P{1I%n9Ds*2fUZXg|?c;v!-e5OmUH4>p5E1L!Wr- zvxcv0M?9>t+j^upK2-WMIa4t+QgXHq}d z_|A=^Zx9uySoHSxny-C1jcai5CqyKJjmcmI-RmV?wRdYunwpwMT>o*5-czAaB+Xo+ z`O#Csx%$|km8b8XaCYnUZ|mCI!}@1j<#IWA`>sWM!WOxVaNZu!I?#C=A~Yo>C7joV zE5dadcH_7e0b&cYQ4J62xYDp)juGbDBd{=wX3!`kNLoo+Nm@yew34)vw2~kc{}W&U XGf+<;P>}HL0JY)enyV}o2K;uMHobt zb=f#McP%|L3rn&y%%AnyAR2o({QLe9!mwuNQIKNx=Hv&md0(^Hs<6Y=q_c?12{B`u z`|H;)eBl5De2h%i?A+fi6+RyQ!q3F4^N%b1i^vHx8HW4cfwDT^xih7NZn)VfsOtf_ z7cN}bxN#%l@C5=Jb{>94W_u&$E9b6S|NIXWiDVXL{`r2}{~unA0zhu~Td_4i?v*yI z1F{bsIDpk$Ea^dql@l0__l_L<5#j?E4130LO%Pi00X?C4`Q!ebn@CG%a?GqiQu8JQ zv)rF6oCptD{op;u@d?7#{>FXbuhkE}S1Z=tbh1Pi;r+x4cksA4Eh0!w1g(ef$h*=5G7`@#DY05J$P+{r2eZFRVJ{g_s{actC==pZ@>r z{PYrrrQTjO$AlSdeWf8`|#Z#aT6cD;1={20k`xY7EbKuVgmMu z$DT|}{P^k#vLG89n`(03PqRc~-HQgK?rwT@dK<8e$11C&rT@UBfE;sa*p4C_00bBS X#dj@rOBkJ~00000NkvXXu0mjf07;*g literal 0 HcmV?d00001 diff --git a/OSX/iSaverRunner50.png b/OSX/iSaverRunner50.png new file mode 100644 index 0000000000000000000000000000000000000000..f2fada114186c3a35011cd368f108d4abff187a3 GIT binary patch literal 1506 zcmV<81s(c{P)r=bbvvjPK1Dg1RT;F@{y?cN6JkRg zd1?Rf05nF^XCPEi;5&c%T*_p7ar&|e1k}(MtqPRRfKcf?F0A+@wh6f2Kw)&+K z_j;yRI*n^e$mI`Kz!ngi3k!tB4DWRl_T&4=FTJ0}Z#0kN45U(!j4;{Y>30!O;J!1p z)~>ood>n)!3iON{;%*jxbwhFbfny6+r!fzlb~AaA!iuwwXnH!xo@~jwL1ISE;!06= zz=P5lN@B#bC{tef$tuhWYbRH+!pKllKOGT-#EwYJd^e1^} z&&J7Yh8T09i1*)1kgrN#;sr!&O_w2K4)R^QjVmw8tU6ahYHBLkf9={e9LFhuRmkxt z&Z}oWvpp+!-45hvQ%GPwPFtl(OIG7|$Ub7|ee(o+e>qGpR=D1QiQg^7D>)C!c0$MFkG6s_$ypfI*GdaFb^HlTA*oR!eab z$<%`y+Bqz_+Io0wM`75`QYJerX@Dyf!)mpe$)_MlB@>M61AP}AGZBsf60;bvLTO*> zjQ_Q{Wh7A&`7maknqpXbk88Fdea4e|^`jAv0TQF?9i(0$YH79*>cR41uV6*w!-%XJ z>S3+T&bqlhFY4t0RAEsXcV1+SR8I36K2h_S(ZQOQIQtzk48y301rHS-uM4Z9a~s^E z7`HWk(;0vjVay^5fJ&vRsHlMF4kZbzN2Ws-gL9h#AKmnLQC(eKaA89kEU^0e`g`j* z7WZ4p!x16_3b%pmo%P$|?h|1;+BG>8Nj48njh9=7mu^=L$Tp4*%oZ~;^>$4R)lQE` zOMd=78FTuddD_cB%!tl(FTb44FMG3|pW_Jx)TrfOnv*w(e)>$yfV3PdS~=$Zrvg z#VH?LnGqx{BCI&;NEB}$_Co^&avHRGz4TIlr2L=4`dfej02j4BgU)wT>i_@%07*qo IM6N<$g53i`CTC zI61KD>(6U0m)V9jlK^W3i=QjK+IwjGB*1D(%v{44=E`b@t{od0qH zgc~f@_Jnje{_NnI{@6jZaD&B46QpK-c z2*XgV-A2taR&xq~R0s<1J(fPrYsk_1`=Nq$>9O6P%bWseVHz6yP2}vI(9Wu>0H5Go zYAQs)FoXnF;q5cKn=A1)HPd)nnSd{&-1{RgR$!%#Z_?-=R&ej&jNtVk)35*9kMq}L z#(2@B_NW!Od>82kMg|jx3K6PnbO_SI#)_ZvTGO4=c9#gbN~L&&>2DkQ-<=va&uYd` z>LSf1%ubWvv>z!ltNQ@r==HG!j4AgemY%v-qK(O;rEf5a#DQQPJh)Yb&SO%PVl0Hcy^lb!*3d{GN7Y_6KsOd0m68x zwTjF=ym!|a)NUGx$|rj%UqSITx9SPRil+gtHm8j{Pa}gxtz77{^m9$PUPw@$s5BZ4 zQCKfxT2Cdccs#Z4_#S2Ye1Bh=#bGrxG!TV#$YDQj81!84n<@MwS1v=by3&*_E* zgoj_hOrz=|7His?{I;bT!Ka~!(8{qY2=}iUWqZA5SbkYcgkCQyARH@?#|u9s@ps|7 z8U)^p29e~zZv@r_U=oQW?x|I-&MvrcEdZIqAU{%f@B8FO$SOylNeEW0R$Ek5gtyD7 z^qQ#I{$l-1s{ntpe*O9h-6Mj6wpiWmml)vs6T|A)v!4YoUf195D|d05`gMKnK>`hS zpAgu6OVwIBr1FIrP(p8NkJPgk_ny|U*+v@QS1);t-{d{_vwYb=ORYfN52X%XL5TQ> zXgczkW&BmD!S@qpF37QSq6ys3a^5Bqzm$1&P-eTc7&wN{$SEC3s6)C2pQ{;wQnns` z>6lH#X}~#FE2jSaW4+$JTyX^oCaXHdXgd2k^~&sPQSV)j?-0J!+REOiR{sQJ3;1>9 z!2Ux5D9u;)%c@SA&1S!Dj1)U_(ikg7X>nvCua(9 i(tmUQ$Lihw6<`1z&7S>2s#)9s00007pYrC}29qWot%k1cGw_~N-wOeg%tF7&HXKL+=(`~IYbr(ii zw6qnW$Wm9{EZ7Qx0P+lZk>|~84_pn8Zm z(ma*B!2A=tT4n2Qns2}Wl|!vkpL%(|0i%l&*d>RZW}Ttx^Z6Ev?seIJF{tgud%=72 z3YbH_@m?yD$D|=&JUg#|QCWh@6=^%2F~87t3=^7c;V<_UiRpX_^-q?#R8^s|?%ezV zhAvyzj9M1akW9k@@r8V%k}dqepf>)%i-tuuHF_iBjw*W5TL;P}v^!1l!3bj>W}yUI zY#0)57uV~`KAL?|J-8tU+ zoJjQ;$i1eh7uLGaTRe+g{pG{Ms%X`D=JM3YBf%_9??gJ$9hL1iEb72-&zBt08Z|o> zcQTi!MINx_`XOx5?LetA^zZ$0`ZzG&cgOQ6^!wr{tKt#5Xi2_mTcL#vc!tSoTk|QJv z9dj2=urc1(#7hEnCz*n3{GV(tt_- z@yGX!T2FQ*2x(0}+m2ldo64Z4-E07M2A@f>T>CyUfU(cL`?0Foa~YlNJlkw$kGl&* z{=ah1EkLO1bBc|va~BxUA_zZt0n`0!`>m+H%_Kj#nIy`+0`Et#&%QmHy?Ic+<^i^5JbM?UCo-`g&K-OS4+K7@yL{H)`H9E z*eP-nJxYd5afr_BngRo1Py0FqEjTSp#tLTMLs50><=d5G*(_nR-Ezxr&a}Id5vFRy z!Do_Zc*3s+1zE|=IafS(aYQY4YnE)xG8uh3lK=-+)S@1TbURV+C%}l^*+9x!%br8P zAojp4N{lmEf{gVg8se=ZuHmIg8Q8kVY4`b@4Lu^znc1;-6c}U|yr(50Gw48(v{yyt zr*pB(e_QlEo#wd8DA>rKD_rr>s0mZb%gg&;dyAy>L6d&t5Pj0;NL`9B;d3?C9!e zp9ae7QyJ{u(H|S%-%<4Gn`c%n!P5~}@U!l>zyHQdMCMou<7OSxbdiDPUi$hhY;(=h zcszZu`>7i-67%&cLmyBryoBtipd^uMVVej8=Alk7O;)zpoXRqtPPZ`cw|W=uTnrKT z;7vqi9FFFbsV7gKBnB7|j>*H~NE0<*!7VN>e)7583!<4iQVNNy{gHZK zobgMO2G6m;MO?}#=9VYY@G=b)T!Yk0mo5;UxY$gJj zPlr587SvrJ#Saxh6fw3wJ_~Ch3wF_CW(Zf^puVfC>rMlM0n8^hU>H0D{lvjt59L1N zlNJWTY?xuG9|0GSQeSpMv0mONkRe0Rh>#5#p%}DDz$FG4UcH7WV%4#f7e6trkcMKA zc7UYqZXo~|3|Dx;mQ9W38qH^GLppxqp)~hsFEM@W9sDMnIV7zAz9bZbfLIaZvGJmB z#bZWL(Ce8iLooD{da?L+0Bg2ea@TS~ zCsx68#Roq+jK}&yI;)V{E8DFwm=gvJ=1cYOw}&?%;b|=_b2Tk%_wL<9vis-%yzfk^ zJdD6j)78B!>HfFgBj%I}1cpn6LIDeD_OA=7st=O6VaP7jvTt~>@byEJOJdOFF-TyI zjg1)@6V%Dg7QHEm3o!_DHDla&+qP}Q51JFz-=xOtY<{BJtnR=&FeVZhNWQN3ZNp&D zsG#YGx4MS&H)x<*xg%Wx)k$a==|ew-9hG0en1Yx9h8n9uKG5b*SOUW+u-!7RWeiGscwgGTLi`sE56$qn#6HVzLt9agt1YU+s{l)hSuNhuwD!`AHZ(eil&^72&tQ8tgK|FO5-?iUf->` zxlIr4Jz)^9_W#L7cD#c&`!9y%+wrFz*oAAarWlQW5w65_kGQs-_QzJjiU%ef(+$nB z=lnzk(pvqku=Y~|ibtTnGW>0;vaK + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + * + * Loading URLs and returning the underlying text. + * + * This is necessary because iOS doesn't have Perl installed, so we can't + * run "xscreensaver-text" to do this. + */ + +#include "utils.h" + +#ifdef USE_IPHONE /* whole file -- see utils/textclient.c */ + +#include "textclient.h" +#include "resources.h" + +#include + +extern const char *progname; + +struct text_data { + + enum { DATE, LITERAL, URL } mode; + char *literal, *url; + + int columns; + char *buf; + int buf_size; + char *fp; + +}; + + +void +textclient_reshape (text_data *d, + int pix_w, int pix_h, + int char_w, int char_h) +{ + d->columns = char_w; +} + + +text_data * +textclient_open (Display *dpy) +{ + text_data *d = (text_data *) calloc (1, sizeof (*d)); + +# ifdef DEBUG + fprintf (stderr, "%s: textclient: init\n", progname); +# endif + + char *s = get_string_resource (dpy, "textMode", "TextMode"); + if (!s || !*s || !strcasecmp (s, "date") || !strcmp (s, "0")) + d->mode = DATE; + else if (!strcasecmp (s, "literal") || !strcmp (s, "1")) + d->mode = LITERAL; + else if (!strcasecmp (s, "url") || !strcmp (s, "3")) + d->mode = URL; + else + d->mode = DATE; + + d->literal = get_string_resource (dpy, "textLiteral", "TextLiteral"); + d->url = get_string_resource (dpy, "textURL", "TextURL"); + + return d; +} + + +void +textclient_close (text_data *d) +{ +# ifdef DEBUG + fprintf (stderr, "%s: textclient: free\n", progname); +# endif + + if (d->buf) free (d->buf); + if (d->literal) free (d->literal); + if (d->url) free (d->url); + free (d); +} + + +static char * +date_string (void) +{ + UIDevice *dd = [UIDevice currentDevice]; + NSString *name = [dd name]; // My iPhone + NSString *model = [dd model]; // iPad + // NSString *system = [dd systemName]; // iPhone OS + NSString *vers = [dd systemVersion]; // 5.0 + NSString *date = + [NSDateFormatter + localizedStringFromDate:[NSDate date] + dateStyle: NSDateFormatterMediumStyle + timeStyle: NSDateFormatterMediumStyle]; + NSString *nl = @"\n"; + + NSString *result = name; + result = [result stringByAppendingString: nl]; + result = [result stringByAppendingString: model]; + // result = [result stringByAppendingString: nl]; + // result = [result stringByAppendingString: system]; + result = [result stringByAppendingString: @" "]; + result = [result stringByAppendingString: vers]; + result = [result stringByAppendingString: nl]; + result = [result stringByAppendingString: nl]; + result = [result stringByAppendingString: date]; + result = [result stringByAppendingString: nl]; + result = [result stringByAppendingString: nl]; + return strdup ([result cStringUsingEncoding:NSISOLatin1StringEncoding]); +} + + +static void +strip_html (char *html) +{ + int tag = 0; + int comment = 0; + int white = 0; + int nl = 0; + int entity = 0; + char *out = html; + for (char *in = html; *in; in++) { + if (comment) { + if (!strncmp (in, "-->", 3)) { + comment = 0; + } + } else if (tag) { + if (*in == '>') { + tag = 0; + entity = 0; + } + } else if (entity) { + if (*in == ';') { + entity = 0; + } + } else if (*in == '<') { + tag = 1; + entity = 0; + if (!strncmp (in, " + <_description> BSOD stands for "Blue Screen of Death". The finest in personal computer emulation, BSOD simulates popular screen savers from a number of less robust operating systems. +http://en.wikipedia.org/wiki/Blue_Screen_of_Death +http://en.wikipedia.org/wiki/Screen_of_death +http://en.wikipedia.org/wiki/Guru_Meditation +http://en.wikipedia.org/wiki/Row_of_Bombs +http://en.wikipedia.org/wiki/Bomb_%28symbol%29 + Written by Jamie Zawinski; 1998. diff --git a/hacks/config/bubble3d.xml b/hacks/config/bubble3d.xml index 81511320..573763a6 100644 --- a/hacks/config/bubble3d.xml +++ b/hacks/config/bubble3d.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/cage.xml b/hacks/config/cage.xml index b60d15fb..03b89467 100644 --- a/hacks/config/cage.xml +++ b/hacks/config/cage.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/carousel.xml b/hacks/config/carousel.xml index 96c7a65f..87e8fdac 100644 --- a/hacks/config/carousel.xml +++ b/hacks/config/carousel.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/celtic.xml b/hacks/config/celtic.xml index 1f14c93c..b38040ab 100644 --- a/hacks/config/celtic.xml +++ b/hacks/config/celtic.xml @@ -21,6 +21,7 @@ Repeatedly draws random Celtic cross-stitch patterns. http://en.wikipedia.org/wiki/Celtic_knot +http://en.wikipedia.org/wiki/Knots_and_graphs Written by Max Froumentin; 2005. diff --git a/hacks/config/circuit.xml b/hacks/config/circuit.xml index 26130d36..25d6a2ea 100644 --- a/hacks/config/circuit.xml +++ b/hacks/config/circuit.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/companioncube.xml b/hacks/config/companioncube.xml index 70bd6e1c..e16256eb 100644 --- a/hacks/config/companioncube.xml +++ b/hacks/config/companioncube.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/crackberg.xml b/hacks/config/crackberg.xml index 04ffb10b..4abb2018 100644 --- a/hacks/config/crackberg.xml +++ b/hacks/config/crackberg.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/cube21.xml b/hacks/config/cube21.xml index f601d8d4..23e37675 100644 --- a/hacks/config/cube21.xml +++ b/hacks/config/cube21.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/cubenetic.xml b/hacks/config/cubenetic.xml index 3a9a3eb3..aadbfc37 100644 --- a/hacks/config/cubenetic.xml +++ b/hacks/config/cubenetic.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/cubestorm.xml b/hacks/config/cubestorm.xml index ae503c1d..077aa660 100644 --- a/hacks/config/cubestorm.xml +++ b/hacks/config/cubestorm.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/cubicgrid.xml b/hacks/config/cubicgrid.xml index 8467c056..962299b9 100644 --- a/hacks/config/cubicgrid.xml +++ b/hacks/config/cubicgrid.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/dangerball.xml b/hacks/config/dangerball.xml index 983ee94d..41450430 100644 --- a/hacks/config/dangerball.xml +++ b/hacks/config/dangerball.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/decayscreen.xml b/hacks/config/decayscreen.xml index 75cc7625..b3245fa6 100644 --- a/hacks/config/decayscreen.xml +++ b/hacks/config/decayscreen.xml @@ -36,10 +36,9 @@ <_description> -This takes an image and makes it melt. You've no doubt seen this -effect before, but no screensaver would really be complete without it. -It works best if there's something colorful visible. Warning, if the -effect continues after the screen saver is off, seek medical attention. +This takes an image and makes it melt, toward a randomly chosen point +or direction. Warning, if the effect continues after the screen saver +is off, seek medical attention. Written by David Wald, Vivek Khera, Jamie Zawinski, and Vince Levey; 1993. diff --git a/hacks/config/deco.xml b/hacks/config/deco.xml index 87fd0164..e2ff33bc 100644 --- a/hacks/config/deco.xml +++ b/hacks/config/deco.xml @@ -32,8 +32,7 @@ <_description> -Subdivides and colors rectangles randomly. It looks kind of -like Brady-Bunch-era rec-room wall paneling. +Subdivides and colors rectangles randomly, for a Mondrian-esque effect. http://en.wikipedia.org/wiki/Piet_Mondrian#Paris_1919.E2.80.931938 diff --git a/hacks/config/discrete.xml b/hacks/config/discrete.xml index 8a3916b0..153f331a 100644 --- a/hacks/config/discrete.xml +++ b/hacks/config/discrete.xml @@ -20,9 +20,8 @@ <_description> -More "discrete map" systems, including new variants of Hopalong and -Julia, and a few others. See also the "Hopalong" and "Julia" -screen savers. +Discrete map fractal systems, including variants of Hopalong, Julia, +and others. Written by Tim Auckland; 1998. diff --git a/hacks/config/distort.xml b/hacks/config/distort.xml index e499132a..b78998dc 100644 --- a/hacks/config/distort.xml +++ b/hacks/config/distort.xml @@ -42,8 +42,7 @@ <_description> -Grabs an image of the screen, and then lets a transparent -lens wander around the screen, magnifying whatever is underneath. +Wandering lenses distort the screen image in various ways. Written by Jonas Munsin; 1998. diff --git a/hacks/config/endgame.xml b/hacks/config/endgame.xml index abbea16b..a2fa7f3c 100644 --- a/hacks/config/endgame.xml +++ b/hacks/config/endgame.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/engine.xml b/hacks/config/engine.xml index ed16447e..ccae48f0 100644 --- a/hacks/config/engine.xml +++ b/hacks/config/engine.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/extrusion.xml b/hacks/config/extrusion.xml index c66c89c6..48d42368 100644 --- a/hacks/config/extrusion.xml +++ b/hacks/config/extrusion.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/flipflop.xml b/hacks/config/flipflop.xml index d8fffabe..3a7828fe 100644 --- a/hacks/config/flipflop.xml +++ b/hacks/config/flipflop.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/flipscreen3d.xml b/hacks/config/flipscreen3d.xml index 1009a74d..4d5ec3d0 100644 --- a/hacks/config/flipscreen3d.xml +++ b/hacks/config/flipscreen3d.xml @@ -1,6 +1,6 @@ - + @@ -16,8 +16,7 @@ <_description> -Grabs an image of the desktop, turns it into a GL texture map, and -spins it around and deforms it in various ways. +Grabs an image of the desktop and spins and deforms it in 3D. Written by Ben Buxton and Jamie Zawinski; 2001. diff --git a/hacks/config/fliptext.xml b/hacks/config/fliptext.xml index ecaea69f..270ee242 100644 --- a/hacks/config/fliptext.xml +++ b/hacks/config/fliptext.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/flurry.xml b/hacks/config/flurry.xml index 5d99baf5..0c689c16 100644 --- a/hacks/config/flurry.xml +++ b/hacks/config/flurry.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/flyingtoasters.xml b/hacks/config/flyingtoasters.xml index be57e4ea..45721bfe 100644 --- a/hacks/config/flyingtoasters.xml +++ b/hacks/config/flyingtoasters.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/gears.xml b/hacks/config/gears.xml index 55aac9f0..16b8cf31 100644 --- a/hacks/config/gears.xml +++ b/hacks/config/gears.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/gflux.xml b/hacks/config/gflux.xml index a38c7296..0b3c17d4 100644 --- a/hacks/config/gflux.xml +++ b/hacks/config/gflux.xml @@ -1,6 +1,6 @@ - + @@ -50,7 +50,7 @@ <_description> -Draws a rippling waves on a rotating wireframe grid. +Draws undulating waves on a rotating grid. Written by Josiah Pease; 2000. diff --git a/hacks/config/glblur.xml b/hacks/config/glblur.xml index c655a16f..19a80d32 100644 --- a/hacks/config/glblur.xml +++ b/hacks/config/glblur.xml @@ -1,6 +1,6 @@ - + @@ -29,8 +29,8 @@ <_description> -This draws a box and a few line segments, and generates a -radial blur outward from it. This creates flowing field effects. +Generates flowing field effects from the vapor trails around a moving +object. This is done by rendering the scene into a small texture, then repeatedly rendering increasingly-enlarged and increasingly-transparent diff --git a/hacks/config/glcells.xml b/hacks/config/glcells.xml index 942c0aea..7f38d48b 100644 --- a/hacks/config/glcells.xml +++ b/hacks/config/glcells.xml @@ -1,6 +1,6 @@ - + @@ -53,7 +53,7 @@ <_description> -Cells growing, dividing and dying on your screen. +Cells growing, dividing and dying on your screen. Microscopic pathos. Written by Matthias Toussaint; 2007. diff --git a/hacks/config/gleidescope.xml b/hacks/config/gleidescope.xml index 1e0f8bc0..f9a4de44 100644 --- a/hacks/config/gleidescope.xml +++ b/hacks/config/gleidescope.xml @@ -1,6 +1,6 @@ - + @@ -28,8 +28,7 @@ <_description> -A kaleidoscope that operates on your desktop image, or on -image files loaded from disk. +A kaleidoscope that operates on your desktop image, or other pictures. http://en.wikipedia.org/wiki/Kaleidoscope diff --git a/hacks/config/glforestfire.xml b/hacks/config/glforestfire.xml index cf46bd5c..feec5da5 100644 --- a/hacks/config/glforestfire.xml +++ b/hacks/config/glforestfire.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/glhanoi.xml b/hacks/config/glhanoi.xml index 94966b09..81f35d57 100644 --- a/hacks/config/glhanoi.xml +++ b/hacks/config/glhanoi.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/glknots.xml b/hacks/config/glknots.xml index 766b2e03..e6dd137c 100644 --- a/hacks/config/glknots.xml +++ b/hacks/config/glknots.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/glmatrix.xml b/hacks/config/glmatrix.xml index 3d282a57..2b8ea5a3 100644 --- a/hacks/config/glmatrix.xml +++ b/hacks/config/glmatrix.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/glplanet.xml b/hacks/config/glplanet.xml index 2ad5eabf..c7d27179 100644 --- a/hacks/config/glplanet.xml +++ b/hacks/config/glplanet.xml @@ -1,6 +1,6 @@ - + @@ -28,10 +28,10 @@ <_description> -Draws a planet bouncing around in space. -The built-in image is a map of the earth (extracted from `xearth'), -but you can wrap any texture around the sphere, e.g., the planetary -textures that come with `ssystem'. +Draws the Earth bouncing around in space. + +If you would like it to display a different planet, the texture maps +that come with "ssystem" work well. Written by David Konerding; 1998. diff --git a/hacks/config/glschool.xml b/hacks/config/glschool.xml index 0bbade81..8ca0211d 100644 --- a/hacks/config/glschool.xml +++ b/hacks/config/glschool.xml @@ -1,6 +1,6 @@ - + @@ -32,7 +32,7 @@ <_description> -Uses Craig Reynolds' Boids algorithm to simulate a school of fish. +Uses Craig Reynolds' classic "Boids" algorithm to simulate a school of fish. http://en.wikipedia.org/wiki/Boids diff --git a/hacks/config/glslideshow.xml b/hacks/config/glslideshow.xml index bcd7acb3..7e30eb9c 100644 --- a/hacks/config/glslideshow.xml +++ b/hacks/config/glslideshow.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/glsnake.xml b/hacks/config/glsnake.xml index 33ab3dde..3efc7f49 100644 --- a/hacks/config/glsnake.xml +++ b/hacks/config/glsnake.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/gltext.xml b/hacks/config/gltext.xml index be1e6d7b..8a1eb591 100644 --- a/hacks/config/gltext.xml +++ b/hacks/config/gltext.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/halo.xml b/hacks/config/halo.xml index ba05e4f5..dfbaaf0e 100644 --- a/hacks/config/halo.xml +++ b/hacks/config/halo.xml @@ -29,7 +29,7 @@ <_description> -Draws trippy psychedelic circular patterns that hurt to look at. +Draws circular interference patterns that hurt to look at. http://en.wikipedia.org/wiki/Moire_pattern diff --git a/hacks/config/hilbert.xml b/hacks/config/hilbert.xml index 315d04c6..e58a8c6c 100644 --- a/hacks/config/hilbert.xml +++ b/hacks/config/hilbert.xml @@ -1,6 +1,6 @@ - + @@ -62,7 +62,7 @@ the maximum depth, then unwinds it back. The Hilbert path is a single contiguous line that can fill a volume without crossing itself. As a data structure, Hilbert paths are useful because ordering along the curve preserves locality: points -that close together along the curve are also close together in space. +that are close together along the curve are also close together in space. The converse is often, but not always, true. The coloration reflects this. diff --git a/hacks/config/hypercube.xml b/hacks/config/hypercube.xml index e52232e2..472430e2 100644 --- a/hacks/config/hypercube.xml +++ b/hacks/config/hypercube.xml @@ -63,6 +63,7 @@ visualize the rotation, it uses a different color for the edges of each face. Don't think about it too long, or your brain will melt. http://en.wikipedia.org/wiki/Hypercube +http://en.wikipedia.org/wiki/Tesseract http://en.wikipedia.org/wiki/Regular_polytope Written by Joe Keane, Fritz Mueller, and Jamie Zawinski; 1992. diff --git a/hacks/config/hypertorus.xml b/hacks/config/hypertorus.xml index cd383871..2d061959 100644 --- a/hacks/config/hypertorus.xml +++ b/hacks/config/hypertorus.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/hypnowheel.xml b/hacks/config/hypnowheel.xml index c5627c83..68d9a9a1 100644 --- a/hacks/config/hypnowheel.xml +++ b/hacks/config/hypnowheel.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/ifs.xml b/hacks/config/ifs.xml index 72243140..fda3119c 100644 --- a/hacks/config/ifs.xml +++ b/hacks/config/ifs.xml @@ -49,7 +49,7 @@ <_description> -This one draws spinning, colliding iterated-function-system images. +Clouds of iterated function systems spin and collide. Note that the "Detail" parameter is exponential. Number of points drawn is functions^detail. diff --git a/hacks/config/interaggregate.xml b/hacks/config/interaggregate.xml index fd1a39da..7335d750 100644 --- a/hacks/config/interaggregate.xml +++ b/hacks/config/interaggregate.xml @@ -15,6 +15,8 @@ <_description> +Pale pencil-like scribbles slowly fill the screen. + A surface is filled with a hundred medium to small sized circles. Each circle has a different size and direction, but moves at the same slow rate. Displays the instantaneous intersections of the circles as diff --git a/hacks/config/intermomentary.xml b/hacks/config/intermomentary.xml index c58e3120..d5a43714 100644 --- a/hacks/config/intermomentary.xml +++ b/hacks/config/intermomentary.xml @@ -15,6 +15,8 @@ <_description> +Blinking dots interact with each other circularly. + A surface is filled with a hundred medium to small sized circles. Each circle has a different size and direction, but moves at the same slow rate. Displays the instantaneous intersections of the circles as diff --git a/hacks/config/jigglypuff.xml b/hacks/config/jigglypuff.xml index 3597c0f1..219fb497 100644 --- a/hacks/config/jigglypuff.xml +++ b/hacks/config/jigglypuff.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/jigsaw.xml b/hacks/config/jigsaw.xml index c026c30c..e74396c9 100644 --- a/hacks/config/jigsaw.xml +++ b/hacks/config/jigsaw.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/juggle.xml b/hacks/config/juggle.xml index 07082791..ade836e7 100644 --- a/hacks/config/juggle.xml +++ b/hacks/config/juggle.xml @@ -51,8 +51,6 @@ This screen saver was removed from the XScreenSaver distribution as of version 5.09. It has been replaced by the "Juggler3D" screen saver. -http://en.wikipedia.org/wiki/Siteswap - Written by Tim Auckland; 2002. diff --git a/hacks/config/juggler3d.xml b/hacks/config/juggler3d.xml index 514739bc..9247cc40 100644 --- a/hacks/config/juggler3d.xml +++ b/hacks/config/juggler3d.xml @@ -1,6 +1,6 @@ - +
@@ -41,7 +41,8 @@ <_description> -Draws a 3D juggling stick-man. +Draws a 3D juggling stick-man, with Cambridge juggling pattern +notation used to describe the patterns he juggles. http://en.wikipedia.org/wiki/Siteswap diff --git a/hacks/config/kaleidescope.xml b/hacks/config/kaleidescope.xml index e9b1b308..25df7fda 100644 --- a/hacks/config/kaleidescope.xml +++ b/hacks/config/kaleidescope.xml @@ -28,7 +28,8 @@ <_description> -A simple kaleidoscope. See also "GLeidescope". +A simple kaleidoscope made of line segments. See "GLeidescope" +for a more sophisticated take. http://en.wikipedia.org/wiki/Kaleidoscope diff --git a/hacks/config/klein.xml b/hacks/config/klein.xml index 5f9ae718..64d7301a 100644 --- a/hacks/config/klein.xml +++ b/hacks/config/klein.xml @@ -1,6 +1,6 @@ - + @@ -113,10 +113,12 @@
<_description> -This shows a 4D Klein bottle. You can walk on the Klein bottle or -rotate it in 4D or walk on it while it rotates in 4D. Inspired by -Thomas Banchoff's book "Beyond the Third Dimension: Geometry, Computer -Graphics, and Higher Dimensions", Scientific American Library, 1990. +This animates a Klein bottle, the 4D analog of a moebius strip. + +You can walk on the surface of the bottle or rotate it in 4D or walk +on it while it rotates in 4D. Inspired by Thomas Banchoff's book +"Beyond the Third Dimension: Geometry, Computer Graphics, and Higher +Dimensions", Scientific American Library, 1990. http://en.wikipedia.org/wiki/Klein_bottle diff --git a/hacks/config/lament.xml b/hacks/config/lament.xml index 32a0e676..50107447 100644 --- a/hacks/config/lament.xml +++ b/hacks/config/lament.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/lavalite.xml b/hacks/config/lavalite.xml index 7787698a..c6e4d488 100644 --- a/hacks/config/lavalite.xml +++ b/hacks/config/lavalite.xml @@ -1,6 +1,6 @@ - + @@ -79,6 +79,7 @@ the world." http://en.wikipedia.org/wiki/Lava_lamp http://en.wikipedia.org/wiki/Metaballs +http://en.wikipedia.org/wiki/Lavarand Written by Jamie Zawinski; 2002. diff --git a/hacks/config/lockward.xml b/hacks/config/lockward.xml index efa5e1fe..55ff54c7 100644 --- a/hacks/config/lockward.xml +++ b/hacks/config/lockward.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/loop.xml b/hacks/config/loop.xml index 028d1f7c..01d658ee 100644 --- a/hacks/config/loop.xml +++ b/hacks/config/loop.xml @@ -23,7 +23,8 @@ <_description> -Generates loop-shaped colonies that spawn, age, and eventually die. +A cellular automaton that generates loop-shaped colonies that spawn, +age, and eventually die. http://en.wikipedia.org/wiki/Langton%27s_loops diff --git a/hacks/config/m6502.xml b/hacks/config/m6502.xml index c54d2f8d..6340824b 100644 --- a/hacks/config/m6502.xml +++ b/hacks/config/m6502.xml @@ -13,11 +13,32 @@ +
+ + + + + + + + +
+ <_description> -This emulates a 6502 microprocessor. The family -of 6502 chips were used throughout the 70's and 80's in machines -such as the Atari 2600, Commodore PET, VIC20 and C64, Apple ][, -and the NES. Some example programs are included, and it can also +This emulates a 6502 microprocessor, and runs some example programs on +it. + +The family of 6502 chips were used throughout the 70's and 80's in +machines such as the Atari 2600, Commodore PET, VIC20 and C64, Apple +][, and the NES. Some example programs are included, and it can also read in an assembly file as input. Original JavaScript Version by Stian Soreng: http://www.6502asm.com/. diff --git a/hacks/config/maze.xml b/hacks/config/maze.xml index 0bd981a7..0de676af 100644 --- a/hacks/config/maze.xml +++ b/hacks/config/maze.xml @@ -43,11 +43,12 @@ <_description> -This generates random mazes (with three different maze-generation -algorithms), and then solves them. Backtracking and look-ahead paths -are displayed in different colors. +This generates random mazes, with three different algorithms: Kruskal, +Prim, and a depth-first recursive backtracker. It also solves them. +Backtracking and look-ahead paths are displayed in different colors. http://en.wikipedia.org/wiki/Maze_generation_algorithm +http://en.wikipedia.org/wiki/Maze_solving_algorithm Written by Martin Weiss, Dave Lemke, Jim Randell, Jamie Zawinski, Johannes Keukelaar, and Zack Weinberg; 1985. diff --git a/hacks/config/menger.xml b/hacks/config/menger.xml index 9eea5c83..a39d49a2 100644 --- a/hacks/config/menger.xml +++ b/hacks/config/menger.xml @@ -1,6 +1,6 @@ - + @@ -36,9 +36,8 @@ <_description> -This draws the three-dimensional variant of the recursive Menger -Gasket, a cube-based fractal object analagous to the Sierpinski -Tetrahedron. +This draws the recursive Menger Gasket, a cube-based fractal object +analagous to the Sierpinski Tetrahedron. http://en.wikipedia.org/wiki/Menger_sponge http://en.wikipedia.org/wiki/Sierpinski_carpet diff --git a/hacks/config/mirrorblob.xml b/hacks/config/mirrorblob.xml index 7b657f86..3521a42a 100644 --- a/hacks/config/mirrorblob.xml +++ b/hacks/config/mirrorblob.xml @@ -1,6 +1,6 @@ - + @@ -64,6 +64,7 @@ <_description> Draws a wobbly blob that distorts the image behind it. + Written by Jon Dowdall; 2003. diff --git a/hacks/config/moebius.xml b/hacks/config/moebius.xml index 5ae906c7..804395a1 100644 --- a/hacks/config/moebius.xml +++ b/hacks/config/moebius.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/moebiusgears.xml b/hacks/config/moebiusgears.xml index cfbaf768..bd6f0d70 100644 --- a/hacks/config/moebiusgears.xml +++ b/hacks/config/moebiusgears.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/molecule.xml b/hacks/config/molecule.xml index 7c449ef0..9195353e 100644 --- a/hacks/config/molecule.xml +++ b/hacks/config/molecule.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/morph3d.xml b/hacks/config/morph3d.xml index c4d2c5f8..58b2b00d 100644 --- a/hacks/config/morph3d.xml +++ b/hacks/config/morph3d.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/noof.xml b/hacks/config/noof.xml index 86a0ebf6..04bed8c8 100644 --- a/hacks/config/noof.xml +++ b/hacks/config/noof.xml @@ -1,6 +1,6 @@ - + @@ -12,7 +12,7 @@ <_description> -Draws some rotatey patterns, using OpenGL. +Draws some flowery, rotatey patterns. Written by Bill Torzewski; 2004. diff --git a/hacks/config/pedal.xml b/hacks/config/pedal.xml index 381d34df..eae2c850 100644 --- a/hacks/config/pedal.xml +++ b/hacks/config/pedal.xml @@ -19,9 +19,7 @@ <_description> -This is sort of a combination spirograph/string-art. It generates a -large, complex polygon, and renders it by filling using an even/odd -winding rule. +A demonstration of the even-odd winding rule. Written by Dale Moore; 1995. diff --git a/hacks/config/penrose.xml b/hacks/config/penrose.xml index 7ed67937..c298dd5e 100644 --- a/hacks/config/penrose.xml +++ b/hacks/config/penrose.xml @@ -45,6 +45,7 @@ stand must be taken." As reported by News of the Weird #491, 4-Jul-1997. http://en.wikipedia.org/wiki/Penrose_tiling +http://en.wikipedia.org/wiki/Tessellation Written by Timo Korvola; 1997. diff --git a/hacks/config/phosphor.xml b/hacks/config/phosphor.xml index 9525c413..3bc86190 100644 --- a/hacks/config/phosphor.xml +++ b/hacks/config/phosphor.xml @@ -12,7 +12,7 @@ convert="invert"/> + _label="Font scale" low="1" high="20" default="6"/> Draws a simulation of an old terminal, with large pixels and -long-sustain phosphor. This program is also a fully-functional -VT100 emulator! Run it as an application instead of as a screen -saver and you can use it as a terminal. +long-sustain phosphor. + +On MacOS and Linux, this program is also a fully-functional VT100 +emulator! Run it as an application instead of as a screen saver and +you can use it as a terminal. Written by Jamie Zawinski; 1999. diff --git a/hacks/config/photopile.xml b/hacks/config/photopile.xml index d65eb077..bd9c5bf5 100644 --- a/hacks/config/photopile.xml +++ b/hacks/config/photopile.xml @@ -1,6 +1,6 @@ - + @@ -22,7 +22,7 @@ - + diff --git a/hacks/config/pinion.xml b/hacks/config/pinion.xml index b39d0e80..229a722a 100644 --- a/hacks/config/pinion.xml +++ b/hacks/config/pinion.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/pipes.xml b/hacks/config/pipes.xml index 24b1b082..946eb1d7 100644 --- a/hacks/config/pipes.xml +++ b/hacks/config/pipes.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/polyhedra.xml b/hacks/config/polyhedra.xml index 0cf4263c..c443a105 100644 --- a/hacks/config/polyhedra.xml +++ b/hacks/config/polyhedra.xml @@ -1,6 +1,6 @@ - + @@ -184,10 +184,8 @@ <_description> -Displays different 3D solids and some information about each. -A new solid is chosen every few seconds. There are 75 uniform -polyhedra, plus 5 infinite sets of prisms and antiprisms; -including their duals brings the total to 160. +Displays the 75 uniform polyhedra and their duals, plus 5 prisms +and antiprisms, and some information about each. http://en.wikipedia.org/wiki/Uniform_polyhedra http://en.wikipedia.org/wiki/Stellation diff --git a/hacks/config/polytopes.xml b/hacks/config/polytopes.xml index 3f24a07c..204e1b96 100644 --- a/hacks/config/polytopes.xml +++ b/hacks/config/polytopes.xml @@ -1,6 +1,6 @@ - + @@ -94,12 +94,14 @@ <_description> This shows one of the six regular 4D polytopes rotating in 4D. + Inspired by H.S.M Coxeter's book "Regular Polytopes", 3rd Edition, Dover Publications, Inc., 1973, and Thomas Banchoff's book "Beyond the Third Dimension: Geometry, Computer Graphics, and Higher Dimensions", Scientific American Library, 1990. http://en.wikipedia.org/wiki/Hypercube +http://en.wikipedia.org/wiki/Tesseract http://en.wikipedia.org/wiki/Regular_polytope Written by Carsten Steger; 2003. diff --git a/hacks/config/pong.xml b/hacks/config/pong.xml index 15b1876b..a8c33295 100644 --- a/hacks/config/pong.xml +++ b/hacks/config/pong.xml @@ -16,6 +16,13 @@ + + + <_description> This simulates the 1971 Pong home video game, as well as various artifacts from displaying it on a color TV set. diff --git a/hacks/config/providence.xml b/hacks/config/providence.xml index adc4aded..5cc40628 100644 --- a/hacks/config/providence.xml +++ b/hacks/config/providence.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/pulsar.xml b/hacks/config/pulsar.xml index d5d44fcd..6c3acbe5 100644 --- a/hacks/config/pulsar.xml +++ b/hacks/config/pulsar.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/queens.xml b/hacks/config/queens.xml index 8aad759a..80061edf 100644 --- a/hacks/config/queens.xml +++ b/hacks/config/queens.xml @@ -1,6 +1,6 @@ - + @@ -15,9 +15,10 @@ <_description> -Solves the N-Queens problem (where N is between 5 and 10 queens). The -problem is: how may one place N queens on an NxN chessboard such that -no queen can attack a sister? See also the "Endgame" screen saver. +The N-Queens problem: how to place N queens on an NxN chessboard +such that no queen can attack a sister? + +See also the "Endgame" screen saver. http://en.wikipedia.org/wiki/Eight_queens_puzzle diff --git a/hacks/config/rd-bomb.xml b/hacks/config/rd-bomb.xml index be8e3de3..d33a8278 100644 --- a/hacks/config/rd-bomb.xml +++ b/hacks/config/rd-bomb.xml @@ -54,9 +54,8 @@ <_description> -Draws a grid of growing square-like shapes that, once they overtake -each other, react in unpredictable ways. "RD" stands for -reaction-diffusion. +Reaction-diffusion: draws a grid of growing square-like shapes that, +once they overtake each other, react in unpredictable ways. Written by Scott Draves; 1997. diff --git a/hacks/config/rdbomb.xml b/hacks/config/rdbomb.xml index be8e3de3..d33a8278 100644 --- a/hacks/config/rdbomb.xml +++ b/hacks/config/rdbomb.xml @@ -54,9 +54,8 @@ <_description> -Draws a grid of growing square-like shapes that, once they overtake -each other, react in unpredictable ways. "RD" stands for -reaction-diffusion. +Reaction-diffusion: draws a grid of growing square-like shapes that, +once they overtake each other, react in unpredictable ways. Written by Scott Draves; 1997. diff --git a/hacks/config/rubik.xml b/hacks/config/rubik.xml index e056fd2a..029afded 100644 --- a/hacks/config/rubik.xml +++ b/hacks/config/rubik.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/rubikblocks.xml b/hacks/config/rubikblocks.xml index 141acb77..e728d9cf 100644 --- a/hacks/config/rubikblocks.xml +++ b/hacks/config/rubikblocks.xml @@ -1,6 +1,6 @@ - + @@ -56,7 +56,7 @@ Animates the Rubik's Mirror Blocks puzzle. See also the "Rubik", "Cube21", and "GLSnake" screen savers. -http://en.wikipedia.org/wiki/Combination_puzzles#Irregular_Cuboids +http://en.wikipedia.org/wiki/Combination_puzzles#Irregular_cuboids Written by Vasek Potocek; 2009. diff --git a/hacks/config/sballs.xml b/hacks/config/sballs.xml index 546524fc..892851cf 100644 --- a/hacks/config/sballs.xml +++ b/hacks/config/sballs.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/sierpinski3d.xml b/hacks/config/sierpinski3d.xml index 105e55a3..cf2c50f0 100644 --- a/hacks/config/sierpinski3d.xml +++ b/hacks/config/sierpinski3d.xml @@ -1,6 +1,6 @@ - + @@ -21,8 +21,7 @@ <_description> -This draws the Sierpinski tetrahedron fractal, the three-dimensional -variant of the recursive Sierpinski triangle. +The recursive Sierpinski tetrahedron fractal. http://en.wikipedia.org/wiki/Sierpinski_triangle#Analogs_in_higher_dimension diff --git a/hacks/config/skytentacles.xml b/hacks/config/skytentacles.xml index 361524b4..4dd12e90 100644 --- a/hacks/config/skytentacles.xml +++ b/hacks/config/skytentacles.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/slidescreen.xml b/hacks/config/slidescreen.xml index 648ea36f..efa1091b 100644 --- a/hacks/config/slidescreen.xml +++ b/hacks/config/slidescreen.xml @@ -40,9 +40,8 @@ <_description> -This takes an image, divides it into a grid, and then randomly -shuffles the squares around as if it was one of those "fifteen-puzzle" -games where there is a grid of squares, one of which is missing. +A variant on a "fifteen puzzle", operating on the screen or an image. +It divides the image into a grid and randomly shuffles the squares. http://en.wikipedia.org/wiki/Fifteen_puzzle diff --git a/hacks/config/sonar.xml b/hacks/config/sonar.xml index baffcbf9..2c006c76 100644 --- a/hacks/config/sonar.xml +++ b/hacks/config/sonar.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/spheremonics.xml b/hacks/config/spheremonics.xml index 6346d465..10b67c9f 100644 --- a/hacks/config/spheremonics.xml +++ b/hacks/config/spheremonics.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/sproingies.xml b/hacks/config/sproingies.xml index b7049018..c7b5b51d 100644 --- a/hacks/config/sproingies.xml +++ b/hacks/config/sproingies.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/stairs.xml b/hacks/config/stairs.xml index 97583e47..15f0150d 100644 --- a/hacks/config/stairs.xml +++ b/hacks/config/stairs.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/starfish.xml b/hacks/config/starfish.xml index a98943f6..522f859e 100644 --- a/hacks/config/starfish.xml +++ b/hacks/config/starfish.xml @@ -30,10 +30,9 @@ <_description> -This generates a sequence of undulating, throbbing, star-like -patterns which pulsate, rotate, and turn inside out. Another display -mode uses these shapes to lay down a field of colors, which are then -cycled. The motion is very organic. +Undulating, throbbing, star-like patterns pulsate, rotate, and turn +inside out. Another display mode uses these shapes to lay down a +field of colors, which are then cycled. The motion is very organic. Written by Jamie Zawinski; 1997. diff --git a/hacks/config/starwars.xml b/hacks/config/starwars.xml index c32a0725..6a15c00f 100644 --- a/hacks/config/starwars.xml +++ b/hacks/config/starwars.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/stonerview.xml b/hacks/config/stonerview.xml index 321e76e6..89fe9067 100644 --- a/hacks/config/stonerview.xml +++ b/hacks/config/stonerview.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/superquadrics.xml b/hacks/config/superquadrics.xml index a629b1c3..265e0005 100644 --- a/hacks/config/superquadrics.xml +++ b/hacks/config/superquadrics.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/surfaces.xml b/hacks/config/surfaces.xml index f62385de..d7922242 100644 --- a/hacks/config/surfaces.xml +++ b/hacks/config/surfaces.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/tangram.xml b/hacks/config/tangram.xml index c135d9d4..18b161fa 100644 --- a/hacks/config/tangram.xml +++ b/hacks/config/tangram.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/timetunnel.xml b/hacks/config/timetunnel.xml index 40913e78..7ec87939 100644 --- a/hacks/config/timetunnel.xml +++ b/hacks/config/timetunnel.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/topblock.xml b/hacks/config/topblock.xml index abb47b9b..06d8f924 100644 --- a/hacks/config/topblock.xml +++ b/hacks/config/topblock.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/tronbit.xml b/hacks/config/tronbit.xml index cff9e098..fc60f840 100644 --- a/hacks/config/tronbit.xml +++ b/hacks/config/tronbit.xml @@ -1,6 +1,6 @@ - + diff --git a/hacks/config/voronoi.xml b/hacks/config/voronoi.xml index 9e1af0be..2cd4fee1 100644 --- a/hacks/config/voronoi.xml +++ b/hacks/config/voronoi.xml @@ -1,6 +1,6 @@ - + @@ -52,6 +52,7 @@ control point than to any other control point. That is what determines the cell's shapes. http://en.wikipedia.org/wiki/Voronoi_diagram +http://en.wikipedia.org/wiki/Tessellation Written by Jamie Zawinski; 2007. diff --git a/hacks/config/webcollage.xml b/hacks/config/webcollage.xml index ad3a0bc3..c6f84b5e 100644 --- a/hacks/config/webcollage.xml +++ b/hacks/config/webcollage.xml @@ -32,9 +32,12 @@ --> <_description> -This makes collages out of random images pulled off of the -World Wide Web. It finds these images by doing random web searches, -and then extracting images from the returned pages. +This is what the Internet looks like. + +This creates collages out of random images from the World Wide Web. +It finds the images by feeding random words into various search +engines, and pulling images (or sections of images) out of the pages +returned. WARNING: THE INTERNET SOMETIMES CONTAINS PORNOGRAPHY. diff --git a/hacks/config/whirlwindwarp.xml b/hacks/config/whirlwindwarp.xml index e40850e4..6c5aec6b 100644 --- a/hacks/config/whirlwindwarp.xml +++ b/hacks/config/whirlwindwarp.xml @@ -16,7 +16,7 @@ <_description> Floating stars are acted upon by a mixture of simple 2D -forcefields. The strength of each forcefield changes +force fields. The strength of each force field changes continuously, and it is also switched on and off at random. Written by Paul 'Joey' Clark; 2001. diff --git a/hacks/config/xanalogtv.xml b/hacks/config/xanalogtv.xml index 48e7265d..42188010 100644 --- a/hacks/config/xanalogtv.xml +++ b/hacks/config/xanalogtv.xml @@ -8,13 +8,31 @@ +
+ + + + + + + + +
+ <_description> -XAnalogTV shows a detailed simulation of an old TV set showing various -test patterns, with various picture artifacts like snow, bloom, -distortion, ghosting, and hash noise. It also simulates the TV warming -up. It will cycle through 12 channels, some with images you give it, -and some with color bars or nothing but static. +a detailed simulation of an old TV set, including artifacts like snow, +bloom, distortion, ghosting, and hash noise. It also simulates the TV +warming up. It will cycle through 12 channels, some with images you +give it, and some with color bars or nothing but static. Written by Trevor Blackwell; 2003. diff --git a/hacks/config/xlyap.xml b/hacks/config/xlyap.xml index 1d1218b2..1f473520 100644 --- a/hacks/config/xlyap.xml +++ b/hacks/config/xlyap.xml @@ -39,7 +39,7 @@ <_description> -This generates pretty fractal pictures via the Lyapunov exponent. +The Lyapunov exponent makes pretty fractal pictures. http://en.wikipedia.org/wiki/Lyapunov_exponent diff --git a/hacks/config/xrayswarm.xml b/hacks/config/xrayswarm.xml index 7b791c64..49fe4559 100644 --- a/hacks/config/xrayswarm.xml +++ b/hacks/config/xrayswarm.xml @@ -12,8 +12,7 @@ <_description> -Draws a few swarms of critters flying around the screen, with -faded color trails behind them. +Worm-like swarms of particles with vapor trails. Written by Chris Leger; 2000. diff --git a/hacks/config/xss.dtd b/hacks/config/xss.dtd index 0e15f1d3..212d53db 100644 --- a/hacks/config/xss.dtd +++ b/hacks/config/xss.dtd @@ -1,4 +1,4 @@ - + @@ -91,6 +92,9 @@ DTD written by Andrew Thompson arg CDATA #REQUIRED > + + + diff --git a/hacks/config/zoom.xml b/hacks/config/zoom.xml index a8375ffb..4375f5db 100644 --- a/hacks/config/zoom.xml +++ b/hacks/config/zoom.xml @@ -41,9 +41,9 @@ <_description> -Zooms in on a part of the screen and then moves around. With the -"Lenses" option, the result is like looking through many overlapping -lenses rather than just a simple zoom. +Fatbits! Zooms in on a part of the screen and then moves around. +With the "Lenses" option, the result is like looking through many +overlapping lenses rather than just a simple zoom. Written by James Macnicol; 2001. diff --git a/hacks/deluxe.c b/hacks/deluxe.c index 09c59b37..27ba0484 100644 --- a/hacks/deluxe.c +++ b/hacks/deluxe.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1999-2008 Jamie Zawinski +/* xscreensaver, Copyright (c) 1999-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -156,7 +156,7 @@ make_throbber (struct state *st, Drawable d, int w, int h, unsigned long pixel) struct throbber *t = (struct throbber *) malloc (sizeof (*t)); t->x = w / 2; t->y = h / 2; - t->max_size = w; + t->max_size = (w > h ? w : h); t->speed = get_integer_resource (st->dpy, "speed", "Speed"); t->fuse = 1 + (random() % 4); t->thickness = get_integer_resource (st->dpy, "thickness", "Thickness"); diff --git a/hacks/fontglide.c b/hacks/fontglide.c index f1db0236..4ed76d4d 100644 --- a/hacks/fontglide.c +++ b/hacks/fontglide.c @@ -28,6 +28,7 @@ #endif #include "screenhack.h" +#include "textclient.h" #ifdef HAVE_DOUBLE_BUFFER_EXTENSION #include "xdbe.h" @@ -94,12 +95,6 @@ typedef struct { char *font_override; /* if -font was specified on the cmd line */ - FILE *pipe; - XtIntervalId timer_id; - XtInputId pipe_id; - Time subproc_relaunch_delay; - /* Bool input_available_p; */ - char buf [40]; /* this only needs to be as big as one "word". */ int buf_tail; @@ -107,15 +102,13 @@ typedef struct { sentence **sentences; Bool spawn_p; /* whether it is time to create a new sentence */ int latest_sentence; - unsigned long frame_delay; - int id_tick; + text_data *tc; } state; -static void launch_text_generator (state *); static void drain_input (state *s); @@ -526,8 +519,7 @@ new_word (state *s, sentence *se, char *txt, Bool alloc_p) 0, 0, w->width-1, w->height-1); } -#if 0 - if (s->debug_p) + if (s->debug_p > 1) { /* bounding box (behind *each* character) */ char *ss; @@ -557,7 +549,6 @@ new_word (state *s, sentence *se, char *txt, Bool alloc_p) x += overall.width; } } -#endif /* Draw foreground text */ XDrawString (s->dpy, w->pixmap, gc1, -w->lbearing, w->ascent, @@ -1465,134 +1456,19 @@ fontglide_draw (Display *dpy, Window window, void *closure) - -/* Subprocess. - (This bit mostly cribbed from phosphor.c) - */ - -static void -subproc_cb (XtPointer closure, int *source, XtInputId *id) -{ - /* state *s = (state *) closure; */ - /* s->input_available_p = True; */ -} - - -static void -launch_text_generator (state *s) -{ - char *oprogram = get_string_resource (s->dpy, "program", "Program"); - char *program = (char *) malloc (strlen (oprogram) + 10); - strcpy (program, "( "); - strcat (program, oprogram); - strcat (program, " ) 2>&1"); - - if (s->debug_p) - fprintf (stderr, "%s: forking: %s\n", progname, program); - - if ((s->pipe = popen (program, "r"))) - { - s->pipe_id = - XtAppAddInput (XtDisplayToApplicationContext (s->dpy), - fileno (s->pipe), - (XtPointer) (XtInputReadMask | XtInputExceptMask), - subproc_cb, (XtPointer) s); - } - else - { - char buf[255]; - sprintf (buf, "%.100s: %.100s", progname, program); - perror (buf); - } - - free(oprogram); - free(program); -} - - -static void -relaunch_generator_timer (XtPointer closure, XtIntervalId *id) -{ - state *s = (state *) closure; - if (!s->timer_id) abort(); - s->timer_id = 0; - launch_text_generator (s); -} - - -/* whether there is data available to be read on the file descriptor - */ -static int -input_available_p (int fd) -{ - struct timeval tv = { 0, }; - fd_set fds; -# if 0 - /* This breaks on BSD, which uses bzero() in the definition of FD_ZERO */ - FD_ZERO (&fds); -# else - memset (&fds, 0, sizeof(fds)); -# endif - FD_SET (fd, &fds); - return select (fd+1, &fds, NULL, NULL, &tv); -} - - /* When the subprocess has generated some output, this reads as much as it can into s->buf at s->buf_tail. */ static void drain_input (state *s) { - XtAppContext app = XtDisplayToApplicationContext (s->dpy); - - if (! s->pipe) return; - - /* if (! s->input_available_p) return; */ - /* s->input_available_p = False; */ - - if (! input_available_p (fileno (s->pipe))) - return; - - - if (s->buf_tail < sizeof(s->buf) - 2) + while (s->buf_tail < sizeof(s->buf) - 2) { - int target = sizeof(s->buf) - s->buf_tail - 2; - int n; - n = read (fileno (s->pipe), - (void *) (s->buf + s->buf_tail), - target); - if (n > 0) - { - s->buf_tail += n; - s->buf[s->buf_tail] = 0; - } + char c = textclient_getc (s->tc); + if (c > 0) + s->buf[s->buf_tail++] = c; else - { - XtRemoveInput (s->pipe_id); - s->pipe_id = 0; - pclose (s->pipe); - s->pipe = 0; - - /* If the process didn't print a terminating newline, add one. */ - if (s->buf_tail > 1 && - s->buf[s->buf_tail-1] != '\n') - { - s->buf[s->buf_tail++] = '\n'; - s->buf[s->buf_tail] = 0; - } - - /* Then add one more, to make sure there's a sentence break at EOF. - */ - s->buf[s->buf_tail++] = '\n'; - s->buf[s->buf_tail] = 0; - - /* Set up a timer to re-launch the subproc in a bit. */ - if (s->timer_id) abort(); - s->timer_id = XtAppAddTimeOut (app, s->subproc_relaunch_delay, - relaunch_generator_timer, - (XtPointer) s); - } + break; } } @@ -1684,15 +1560,12 @@ fontglide_init (Display *dpy, Window window) "background", "Background"); s->bg_gc = XCreateGC (s->dpy, s->b, GCForeground, &gcv); - s->subproc_relaunch_delay = 2 * 1000; - - if (! s->debug_metrics_p) - launch_text_generator (s); - s->nsentences = 5; /* #### */ s->sentences = (sentence **) calloc (s->nsentences, sizeof (sentence *)); s->spawn_p = True; + s->tc = textclient_open (dpy); + return s; } @@ -1751,13 +1624,7 @@ static void fontglide_free (Display *dpy, Window window, void *closure) { state *s = (state *) closure; - - if (s->pipe_id) - XtRemoveInput (s->pipe_id); - if (s->pipe) - pclose (s->pipe); - if (s->timer_id) - XtRemoveTimeOut (s->timer_id); + textclient_close (s->tc); /* #### there's more to free here */ @@ -1771,6 +1638,7 @@ static const char *fontglide_defaults [] = { ".borderColor: #555555", "*delay: 10000", "*program: xscreensaver-text", + "*usePty: false", "*mode: random", ".font: (default)", "*fontCharset: iso8859-1", diff --git a/hacks/fps.c b/hacks/fps.c index 8a63ccff..1cd39271 100644 --- a/hacks/fps.c +++ b/hacks/fps.c @@ -56,7 +56,8 @@ fps_init (Display *dpy, Window window) st->x = 10; st->y = 10; if (get_boolean_resource (dpy, "fpsTop", "FPSTop")) - st->y = - (st->font->ascent + st->font->descent + 10); + /* don't leave a blank line in GL top-fps. */ + st->y = - (/*st->font->ascent +*/ st->font->descent + 10); strcpy (st->string, "FPS: ... "); @@ -198,7 +199,7 @@ string_width (XFontStruct *f, const char *c, int *height_ret) } -/* This function is used only in Xlib mode. For GL mode, see glx/fps-glx.c. +/* This function is used only in Xlib mode. For GL mode, see glx/fps-gl.c. */ void fps_draw (fps_state *st) diff --git a/hacks/fps.h b/hacks/fps.h index d8da89f1..d99ab84b 100644 --- a/hacks/fps.h +++ b/hacks/fps.h @@ -25,4 +25,11 @@ extern void fps_slept (fps_state *, unsigned long usecs); extern double fps_compute (fps_state *, unsigned long polys, double depth); extern void fps_draw (fps_state *); +/* Doesn't really belong here, but close enough. */ +#ifdef USE_IPHONE + extern double current_device_rotation (void); +#else +# define current_device_rotation() (0) +#endif + #endif /* __XSCREENSAVER_FPS_H__ */ diff --git a/hacks/fpsI.h b/hacks/fpsI.h index e656362b..decd6849 100644 --- a/hacks/fpsI.h +++ b/hacks/fpsI.h @@ -1,4 +1,4 @@ -/* fps, Copyright (c) 2001-2008 Jamie Zawinski +/* fps, Copyright (c) 2001-2012 Jamie Zawinski * Draw a frames-per-second display (Xlib and OpenGL). * * Permission to use, copy, modify, distribute, and sell this software and its @@ -20,10 +20,16 @@ struct fps_state { Window window; int x, y; XFontStruct *font; - unsigned long font_dlist; /* for glx/fps-gl.c */ Bool clear_p; char string[1024]; + /* for glx/fps-gl.c */ +# ifdef HAVE_GLBITMAP + unsigned long font_dlist; +# else + void *gl_fps_data; +# endif + GC draw_gc, erase_gc; int last_ifps; diff --git a/hacks/glx/Makefile.in b/hacks/glx/Makefile.in index 03083f55..cbea8290 100644 --- a/hacks/glx/Makefile.in +++ b/hacks/glx/Makefile.in @@ -70,11 +70,13 @@ INCLUDES = $(INCLUDES_1) @INCLUDES@ UTIL_SRCS = $(UTILS_SRC)/colors.c $(UTILS_SRC)/hsv.c \ $(UTILS_SRC)/resources.c $(UTILS_SRC)/usleep.c \ $(UTILS_SRC)/visual.c $(UTILS_SRC)/visual-gl.c \ - $(UTILS_SRC)/yarandom.c $(UTILS_SRC)/xshm.c + $(UTILS_SRC)/yarandom.c $(UTILS_SRC)/xshm.c \ + $(UTILS_SRC)/textclient.c UTIL_OBJS = $(UTILS_SRC)/colors.o $(UTILS_SRC)/hsv.o \ $(UTILS_SRC)/resources.o $(UTILS_SRC)/usleep.o \ $(UTILS_SRC)/visual.o $(UTILS_SRC)/visual-gl.o \ - $(UTILS_SRC)/yarandom.o $(UTILS_SRC)/xshm.o + $(UTILS_SRC)/yarandom.o $(UTILS_SRC)/xshm.o \ + $(UTILS_SRC)/textclient.o SRCS = xscreensaver-gl-helper.c normals.c glxfonts.c fps-gl.c \ atlantis.c b_draw.c b_lockglue.c b_sphere.c bubble3d.c \ @@ -113,7 +115,7 @@ SRCS = xscreensaver-gl-helper.c normals.c glxfonts.c fps-gl.c \ jigsaw.c photopile.c dropshadow.c rubikblocks.c surfaces.c \ hilbert.c companion.c companion_quad.c companion_disc.c \ companion_heart.c tronbit.c tronbit_idle1.c tronbit_idle2.c \ - tronbit_no.c tronbit_yes.c + tronbit_no.c tronbit_yes.c jwzgles.c OBJS = xscreensaver-gl-helper.o normals.o glxfonts.o fps-gl.o \ atlantis.o b_draw.o b_lockglue.o b_sphere.o bubble3d.o \ @@ -152,7 +154,7 @@ OBJS = xscreensaver-gl-helper.o normals.o glxfonts.o fps-gl.o \ jigsaw.o photopile.o dropshadow.o rubikblocks.o surfaces.o \ hilbert.o companion.o companion_quad.o companion_disc.o \ companion_heart.o tronbit.o tronbit_idle1.o tronbit_idle2.o \ - tronbit_no.o tronbit_yes.o + tronbit_no.o tronbit_yes.o jwzgles.o GL_EXES = cage gears moebius pipes sproingies stairs superquadrics \ morph3d rubik atlantis lament bubble3d glplanet pulsar \ @@ -171,6 +173,7 @@ GL_EXES = cage gears moebius pipes sproingies stairs superquadrics \ GLE_EXES = extrusion SUID_EXES = sonar GL_UTIL_EXES = xscreensaver-gl-helper +JWZGLES_OBJS = @JWZGLES_OBJS@ HACK_EXES_1 = @GL_EXES@ @GLE_EXES@ HACK_EXES = $(HACK_EXES_1) @SUID_EXES@ XSHM_OBJS = $(UTILS_BIN)/xshm.o @@ -180,8 +183,11 @@ EXES = @GL_UTIL_EXES@ $(HACK_EXES) RETIRED_EXES = @RETIRED_GL_EXES@ RETIRED_GL_EXES = glforestfire -HACK_OBJS = $(HACK_BIN)/screenhack.o $(HACK_BIN)/fps.o \ - xlockmore-gl.o xlock-gl-utils.o glxfonts.o fps-gl.o \ +FPS_OBJS = @GLFPS_OBJS@ $(HACK_BIN)/fps.o +FONT_OBJS = @GLFONT_OBJS@ + +HACK_OBJS = $(JWZGLES_OBJS) $(HACK_BIN)/screenhack.o \ + xlockmore-gl.o xlock-gl-utils.o ${FPS_OBJS} \ $(UTILS_BIN)/resources.o $(UTILS_BIN)/visual.o \ $(UTILS_BIN)/visual-gl.o $(UTILS_BIN)/usleep.o \ $(UTILS_BIN)/yarandom.o $(UTILS_BIN)/hsv.o \ @@ -195,7 +201,8 @@ HDRS = atlantis.h bubble3d.h buildlwo.h e_textures.h xpm-ximage.h \ tunnel_draw.h ants.h polyhedra.h normals.h glxfonts.h \ texfont.h tangram_shapes.h sproingies.h extrusion.h \ glschool.h glschool_gl.h glschool_alg.h topblock.h \ - involute.h teapot.h sonar.h dropshadow.h + involute.h teapot.h sonar.h dropshadow.h starwars.h \ + jwzgles.h jwzglesI.h GL_MEN = atlantis.man boxed.man bubble3d.man cage.man circuit.man \ cubenetic.man dangerball.man engine.man extrusion.man \ flipscreen3d.man gears.man gflux.man \ @@ -453,6 +460,7 @@ $(UTILS_BIN)/visual.o: $(UTILS_SRC)/visual.c $(UTILS_BIN)/visual-gl.o: $(UTILS_SRC)/visual-gl.c $(UTILS_BIN)/yarandom.o: $(UTILS_SRC)/yarandom.c $(UTILS_BIN)/xshm.o: $(UTILS_SRC)/xshm.c +$(UTILS_BIN)/textclient.o: $(UTILS_SRC)/textclient.c $(UTIL_OBJS): cd $(UTILS_BIN) ; \ @@ -489,6 +497,7 @@ TRACK_OBJS=rotator.o trackball.o gltrackball.o HACK_TRACK_OBJS=$(HACK_OBJS) $(TRACK_OBJS) HACK_GRAB_OBJS=$(HACK_OBJS) $(GRAB_OBJS) HACK_TRACK_GRAB_OBJS=$(HACK_TRACK_OBJS) $(GRAB_OBJS) +TEXT=$(UTILS_BIN)/textclient.o ATLANTIS_OBJS = $(HACK_OBJS) dolphin.o shark.o swim.o whale.o xpm-ximage.o atlantis: atlantis.o $(ATLANTIS_OBJS) @@ -498,8 +507,8 @@ ATUNNEL_OBJS = $(HACK_OBJS) tunnel_draw.o xpm-ximage.o atunnel: atunnel.o $(ATUNNEL_OBJS) $(CC_HACK) -o $@ $@.o $(ATUNNEL_OBJS) $(XPM_LIBS) -cage: cage.o $(HACK_OBJS) - $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS) +cage: cage.o xpm-ximage.o $(HACK_OBJS) + $(CC_HACK) -o $@ $@.o xpm-ximage.o $(HACK_OBJS) $(XPM_LIBS) FLURRY_OBJS_1 = flurry-smoke.o flurry-spark.o flurry-star.o flurry-texture.o FLURRY_OBJS = $(FLURRY_OBJS_1) $(HACK_OBJS) @@ -511,10 +520,11 @@ GEARS_OBJS=normals.o involute.o $(HACK_TRACK_OBJS) gears: gears.o tube.o $(GEARS_OBJS) $(CC_HACK) -o $@ $@.o tube.o $(GEARS_OBJS) $(HACK_LIBS) -moebius: moebius.o $(HACK_TRACK_OBJS) - $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS) +MOEBIUS_OBJS=sphere.o tube.o xpm-ximage.o $(HACK_TRACK_OBJS) +moebius: moebius.o $(MOEBIUS_OBJS) + $(CC_HACK) -o $@ $@.o $(MOEBIUS_OBJS) $(HACK_LIBS) $(XPM_LIBS) -PIPE_OBJS=pipeobjs.o buildlwo.o teapot.o +PIPE_OBJS=pipeobjs.o buildlwo.o sphere.o teapot.o pipes: pipes.o $(PIPE_OBJS) $(HACK_OBJS) $(CC_HACK) -o $@ $@.o $(PIPE_OBJS) $(HACK_OBJS) $(HACK_LIBS) @@ -527,8 +537,9 @@ morph3d: morph3d.o $(HACK_OBJS) rubik: rubik.o $(HACK_OBJS) $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS) -stairs: stairs.o sphere.o $(HACK_TRACK_OBJS) - $(CC_HACK) -o $@ $@.o sphere.o $(HACK_TRACK_OBJS) $(HACK_LIBS) +stairs: stairs.o sphere.o xpm-ximage.o $(HACK_TRACK_OBJS) + $(CC_HACK) -o $@ $@.o sphere.o xpm-ximage.o $(HACK_TRACK_OBJS) \ + $(HACK_LIBS) $(XPM_LIBS) SPROINGIES = sproingiewrap.o gllist.o \ s1_1.o s1_2.o s1_3.o s1_4.o s1_5.o s1_6.o s1_b.o @@ -563,11 +574,12 @@ sierpinski3d: sierpinski3d.o $(HACK_TRACK_OBJS) gflux: gflux.o $(HACK_TRACK_GRAB_OBJS) $(CC_HACK) -o $@ $@.o $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS) -SW_OBJS=starwars.o glut_stroke.o glut_swidth.o texfont.o $(HACK_OBJS) +SW_OBJS=starwars.o glut_stroke.o glut_swidth.o \ + $(TEXT) ${FONT_OBJS} $(HACK_OBJS) starwars: $(SW_OBJS) $(CC_HACK) -o $@ $(SW_OBJS) $(HACK_LIBS) -GLT_OBJS=gltext.o glut_stroke.o glut_swidth.o tube.o $(HACK_TRACK_OBJS) +GLT_OBJS=gltext.o glut_stroke.o glut_swidth.o tube.o $(TEXT) $(HACK_TRACK_OBJS) gltext: $(GLT_OBJS) $(CC_HACK) -o $@ $(GLT_OBJS) $(HACK_LIBS) @@ -609,8 +621,8 @@ LL_OBJS=marching.o xpm-ximage.o normals.o $(HACK_TRACK_OBJS) lavalite: lavalite.o $(LL_OBJS) $(CC_HACK) -o $@ $@.o $(LL_OBJS) $(XPM_LIBS) -queens: queens.o $(HACK_TRACK_OBJS) - $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS) +queens: queens.o chessmodels.o $(HACK_TRACK_OBJS) + $(CC_HACK) -o $@ $@.o chessmodels.o $(HACK_TRACK_OBJS) $(HACK_LIBS) endgame: endgame.o chessmodels.o $(HACK_TRACK_OBJS) $(CC_HACK) -o $@ $@.o chessmodels.o $(HACK_TRACK_OBJS) $(HACK_LIBS) @@ -662,8 +674,8 @@ blocktube: blocktube.o xpm-ximage.o $(HACK_OBJS) flipflop: flipflop.o $(HACK_TRACK_GRAB_OBJS) $(CC_HACK) -o $@ $@.o $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS) -antspotlight: antspotlight.o $(HACK_TRACK_GRAB_OBJS) - $(CC_HACK) -o $@ $@.o $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS) +antspotlight: antspotlight.o sphere.o $(HACK_TRACK_GRAB_OBJS) + $(CC_HACK) -o $@ $@.o sphere.o $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS) polytopes: polytopes.o $(HACK_TRACK_OBJS) $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS) @@ -699,8 +711,8 @@ PH_OBJS=polyhedra-gl.o normals.o teapot.o $(HACK_TRACK_OBJS) polyhedra: polyhedra.o $(PH_OBJS) $(CC_HACK) -o $@ $@.o $(PH_OBJS) $(HACK_LIBS) -antinspect: antinspect.o $(HACK_TRACK_OBJS) - $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS) +antinspect: antinspect.o sphere.o $(HACK_TRACK_OBJS) + $(CC_HACK) -o $@ $@.o sphere.o $(HACK_TRACK_OBJS) $(HACK_LIBS) providence: providence.o $(HACK_TRACK_OBJS) $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS) @@ -714,14 +726,14 @@ moebiusgears: moebiusgears.o $(GEARS_OBJS) boing: boing.o normals.o $(HACK_TRACK_OBJS) $(CC_HACK) -o $@ $@.o normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS) -carousel: carousel.o texfont.o $(HACK_TRACK_GRAB_OBJS) - $(CC_HACK) -o $@ $@.o texfont.o $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS) +carousel: carousel.o ${FONT_OBJS} $(HACK_TRACK_GRAB_OBJS) + $(CC_HACK) -o $@ $@.o ${FONT_OBJS} $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS) -fliptext: fliptext.o texfont.o $(HACK_OBJS) - $(CC_HACK) -o $@ $@.o texfont.o $(HACK_OBJS) $(HACK_LIBS) +fliptext: fliptext.o $(TEXT) ${FONT_OBJS} $(HACK_OBJS) + $(CC_HACK) -o $@ $@.o $(TEXT) ${FONT_OBJS} $(HACK_OBJS) $(HACK_LIBS) -antmaze: antmaze.o $(HACK_TRACK_OBJS) - $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS) +antmaze: antmaze.o sphere.o tube.o $(HACK_TRACK_OBJS) + $(CC_HACK) -o $@ $@.o sphere.o tube.o $(HACK_TRACK_OBJS) $(HACK_LIBS) TANGRAM_OBJS=tangram_shapes.o $(HACK_OBJS) tangram: tangram.o $(TANGRAM_OBJS) @@ -747,10 +759,11 @@ juggler3d: juggler3d.o $(JUGG_OBJS) dnalogo: dnalogo.o tube.o normals.o $(HACK_TRACK_OBJS) $(CC_HACK) -o $@ $@.o tube.o normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS) -topblock: topblock.o sphere.o $(HACK_TRACK_OBJS) - $(CC_HACK) -o $@ $@.o sphere.o $(HACK_TRACK_OBJS) $(HACK_LIBS) +topblock: topblock.o sphere.o tube.o $(HACK_TRACK_OBJS) + $(CC_HACK) -o $@ $@.o sphere.o tube.o $(HACK_TRACK_OBJS) $(HACK_LIBS) -SCHOOL_OBJS=glschool.o glschool_alg.o glschool_gl.o $(HACK_OBJS) +SCHOOL_OBJS=glschool.o glschool_alg.o glschool_gl.o \ + sphere.o tube.o normals.o $(HACK_OBJS) glschool: $(SCHOOL_OBJS) $(CC_HACK) -o $@ $(SCHOOL_OBJS) $(HACK_LIBS) @@ -773,7 +786,7 @@ TENTACLE_OBJS=normals.o xpm-ximage.o $(HACK_TRACK_OBJS) skytentacles: skytentacles.o $(TENTACLE_OBJS) $(CC_HACK) -o $@ $@.o $(TENTACLE_OBJS) $(XPM_LIBS) -SONAR_OBJS=sonar-sim.o sonar-icmp.o texfont.o $(HACK_TRACK_OBJS) +SONAR_OBJS=sonar-sim.o sonar-icmp.o ${FONT_OBJS} $(HACK_TRACK_OBJS) sonar: sonar.o $(SONAR_OBJS) $(CC_HACK) -o $@ $@.o $(SONAR_OBJS) $(HACK_LIBS) @@ -781,7 +794,7 @@ JIGSAW_OBJS=normals.o $(UTILS_BIN)/spline.o $(HACK_TRACK_GRAB_OBJS) jigsaw: jigsaw.o $(JIGSAW_OBJS) $(CC_HACK) -o $@ $@.o $(JIGSAW_OBJS) $(HACK_LIBS) -PHOTOPILE_OBJS=texfont.o dropshadow.o $(HACK_GRAB_OBJS) +PHOTOPILE_OBJS=${FONT_OBJS} dropshadow.o $(HACK_GRAB_OBJS) photopile: photopile.o $(PHOTOPILE_OBJS) $(CC_HACK) -o $@ $@.o $(PHOTOPILE_OBJS) $(HACK_LIBS) @@ -809,6 +822,7 @@ tronbit: $(TBIT_OBJS) antinspect.o: ../../config.h antinspect.o: $(HACK_SRC)/fps.h antinspect.o: $(srcdir)/gltrackball.h +antinspect.o: $(srcdir)/jwzgles.h antinspect.o: $(HACK_SRC)/screenhackI.h antinspect.o: $(UTILS_SRC)/colors.h antinspect.o: $(UTILS_SRC)/grabscreen.h @@ -824,6 +838,7 @@ antmaze.o: $(srcdir)/ants.h antmaze.o: ../../config.h antmaze.o: $(HACK_SRC)/fps.h antmaze.o: $(srcdir)/gltrackball.h +antmaze.o: $(srcdir)/jwzgles.h antmaze.o: $(srcdir)/rotator.h antmaze.o: $(HACK_SRC)/screenhackI.h antmaze.o: $(UTILS_SRC)/colors.h @@ -841,6 +856,7 @@ antspotlight.o: ../../config.h antspotlight.o: $(HACK_SRC)/fps.h antspotlight.o: $(srcdir)/gltrackball.h antspotlight.o: $(srcdir)/grab-ximage.h +antspotlight.o: $(srcdir)/jwzgles.h antspotlight.o: $(srcdir)/rotator.h antspotlight.o: $(HACK_SRC)/screenhackI.h antspotlight.o: $(UTILS_SRC)/colors.h @@ -857,6 +873,7 @@ atlantis.o: $(srcdir)/atlantis.h atlantis.o: ../../config.h atlantis.o: $(HACK_SRC)/fps.h atlantis.o: $(HACK_SRC)/images/sea-texture.xpm +atlantis.o: $(srcdir)/jwzgles.h atlantis.o: $(HACK_SRC)/screenhackI.h atlantis.o: $(UTILS_SRC)/colors.h atlantis.o: $(UTILS_SRC)/grabscreen.h @@ -877,6 +894,7 @@ atunnel.o: $(HACK_SRC)/images/tunnel2.xpm atunnel.o: $(HACK_SRC)/images/tunnel3.xpm atunnel.o: $(HACK_SRC)/images/tunnel4.xpm atunnel.o: $(HACK_SRC)/images/tunnel5.xpm +atunnel.o: $(srcdir)/jwzgles.h atunnel.o: $(HACK_SRC)/screenhackI.h atunnel.o: $(srcdir)/tunnel_draw.h atunnel.o: $(UTILS_SRC)/colors.h @@ -893,6 +911,7 @@ atunnel.o: $(srcdir)/xpm-ximage.h b_draw.o: $(srcdir)/bubble3d.h b_draw.o: ../../config.h b_draw.o: $(HACK_SRC)/fps.h +b_draw.o: $(srcdir)/jwzgles.h b_draw.o: $(HACK_SRC)/screenhackI.h b_draw.o: $(UTILS_SRC)/colors.h b_draw.o: $(UTILS_SRC)/grabscreen.h @@ -905,6 +924,7 @@ b_draw.o: $(UTILS_SRC)/yarandom.h b_draw.o: $(HACK_SRC)/xlockmoreI.h blinkbox.o: ../../config.h blinkbox.o: $(HACK_SRC)/fps.h +blinkbox.o: $(srcdir)/jwzgles.h blinkbox.o: $(HACK_SRC)/screenhackI.h blinkbox.o: $(srcdir)/sphere.h blinkbox.o: $(UTILS_SRC)/colors.h @@ -920,6 +940,7 @@ blinkbox.o: $(HACK_SRC)/xlockmore.h b_lockglue.o: $(srcdir)/bubble3d.h b_lockglue.o: ../../config.h b_lockglue.o: $(HACK_SRC)/fps.h +b_lockglue.o: $(srcdir)/jwzgles.h b_lockglue.o: $(HACK_SRC)/screenhackI.h b_lockglue.o: $(UTILS_SRC)/colors.h b_lockglue.o: $(UTILS_SRC)/grabscreen.h @@ -934,6 +955,7 @@ b_lockglue.o: $(HACK_SRC)/xlockmore.h blocktube.o: ../../config.h blocktube.o: $(HACK_SRC)/fps.h blocktube.o: $(HACK_SRC)/images/blocktube.xpm +blocktube.o: $(srcdir)/jwzgles.h blocktube.o: $(HACK_SRC)/screenhackI.h blocktube.o: $(UTILS_SRC)/colors.h blocktube.o: $(UTILS_SRC)/grabscreen.h @@ -949,6 +971,7 @@ blocktube.o: $(srcdir)/xpm-ximage.h boing.o: ../../config.h boing.o: $(HACK_SRC)/fps.h boing.o: $(srcdir)/gltrackball.h +boing.o: $(srcdir)/jwzgles.h boing.o: $(HACK_SRC)/screenhackI.h boing.o: $(UTILS_SRC)/colors.h boing.o: $(UTILS_SRC)/grabscreen.h @@ -964,6 +987,7 @@ bouncingcow.o: ../../config.h bouncingcow.o: $(HACK_SRC)/fps.h bouncingcow.o: $(srcdir)/gllist.h bouncingcow.o: $(srcdir)/gltrackball.h +bouncingcow.o: $(srcdir)/jwzgles.h bouncingcow.o: $(srcdir)/rotator.h bouncingcow.o: $(HACK_SRC)/screenhackI.h bouncingcow.o: $(UTILS_SRC)/colors.h @@ -980,6 +1004,7 @@ bouncingcow.o: $(srcdir)/xpm-ximage.h boxed.o: $(srcdir)/boxed.h boxed.o: ../../config.h boxed.o: $(HACK_SRC)/fps.h +boxed.o: $(srcdir)/jwzgles.h boxed.o: $(HACK_SRC)/screenhackI.h boxed.o: $(UTILS_SRC)/colors.h boxed.o: $(UTILS_SRC)/grabscreen.h @@ -994,6 +1019,7 @@ boxed.o: $(HACK_SRC)/xlockmore.h b_sphere.o: $(srcdir)/bubble3d.h b_sphere.o: ../../config.h b_sphere.o: $(HACK_SRC)/fps.h +b_sphere.o: $(srcdir)/jwzgles.h b_sphere.o: $(HACK_SRC)/screenhackI.h b_sphere.o: $(UTILS_SRC)/colors.h b_sphere.o: $(UTILS_SRC)/grabscreen.h @@ -1007,6 +1033,7 @@ b_sphere.o: $(HACK_SRC)/xlockmoreI.h bubble3d.o: $(srcdir)/bubble3d.h bubble3d.o: ../../config.h bubble3d.o: $(HACK_SRC)/fps.h +bubble3d.o: $(srcdir)/jwzgles.h bubble3d.o: $(HACK_SRC)/screenhackI.h bubble3d.o: $(UTILS_SRC)/colors.h bubble3d.o: $(UTILS_SRC)/grabscreen.h @@ -1021,6 +1048,7 @@ buildlwo.o: $(srcdir)/buildlwo.h cage.o: ../../config.h cage.o: $(srcdir)/e_textures.h cage.o: $(HACK_SRC)/fps.h +cage.o: $(srcdir)/jwzgles.h cage.o: $(HACK_SRC)/screenhackI.h cage.o: $(UTILS_SRC)/colors.h cage.o: $(UTILS_SRC)/grabscreen.h @@ -1036,6 +1064,7 @@ carousel.o: ../../config.h carousel.o: $(HACK_SRC)/fps.h carousel.o: $(srcdir)/gltrackball.h carousel.o: $(srcdir)/grab-ximage.h +carousel.o: $(srcdir)/jwzgles.h carousel.o: $(srcdir)/rotator.h carousel.o: $(HACK_SRC)/screenhackI.h carousel.o: $(srcdir)/texfont.h @@ -1053,6 +1082,7 @@ chessmodels.o: $(srcdir)/chessmodels.h circuit.o: ../../config.h circuit.o: $(srcdir)/font-ximage.h circuit.o: $(HACK_SRC)/fps.h +circuit.o: $(srcdir)/jwzgles.h circuit.o: $(HACK_SRC)/screenhackI.h circuit.o: $(UTILS_SRC)/colors.h circuit.o: $(UTILS_SRC)/grabscreen.h @@ -1070,6 +1100,7 @@ companion.o: ../../config.h companion.o: $(HACK_SRC)/fps.h companion.o: $(srcdir)/gllist.h companion.o: $(srcdir)/gltrackball.h +companion.o: $(srcdir)/jwzgles.h companion.o: $(srcdir)/rotator.h companion.o: $(HACK_SRC)/screenhackI.h companion.o: $(UTILS_SRC)/colors.h @@ -1092,6 +1123,7 @@ cow_tail.o: $(srcdir)/gllist.h cow_udder.o: $(srcdir)/gllist.h crackberg.o: ../../config.h crackberg.o: $(HACK_SRC)/fps.h +crackberg.o: $(srcdir)/jwzgles.h crackberg.o: $(HACK_SRC)/screenhackI.h crackberg.o: $(UTILS_SRC)/colors.h crackberg.o: $(UTILS_SRC)/grabscreen.h @@ -1105,6 +1137,7 @@ crackberg.o: $(HACK_SRC)/xlockmoreI.h crackberg.o: $(HACK_SRC)/xlockmore.h cube21.o: ../../config.h cube21.o: $(HACK_SRC)/fps.h +cube21.o: $(srcdir)/jwzgles.h cube21.o: $(HACK_SRC)/screenhackI.h cube21.o: $(UTILS_SRC)/colors.h cube21.o: $(UTILS_SRC)/grabscreen.h @@ -1119,6 +1152,7 @@ cube21.o: $(HACK_SRC)/xlockmore.h cubenetic.o: ../../config.h cubenetic.o: $(HACK_SRC)/fps.h cubenetic.o: $(srcdir)/gltrackball.h +cubenetic.o: $(srcdir)/jwzgles.h cubenetic.o: $(srcdir)/rotator.h cubenetic.o: $(HACK_SRC)/screenhackI.h cubenetic.o: $(UTILS_SRC)/colors.h @@ -1134,6 +1168,7 @@ cubenetic.o: $(HACK_SRC)/xlockmore.h cubestorm.o: ../../config.h cubestorm.o: $(HACK_SRC)/fps.h cubestorm.o: $(srcdir)/gltrackball.h +cubestorm.o: $(srcdir)/jwzgles.h cubestorm.o: $(srcdir)/rotator.h cubestorm.o: $(HACK_SRC)/screenhackI.h cubestorm.o: $(UTILS_SRC)/colors.h @@ -1149,6 +1184,7 @@ cubestorm.o: $(HACK_SRC)/xlockmore.h cubicgrid.o: ../../config.h cubicgrid.o: $(HACK_SRC)/fps.h cubicgrid.o: $(srcdir)/gltrackball.h +cubicgrid.o: $(srcdir)/jwzgles.h cubicgrid.o: $(srcdir)/rotator.h cubicgrid.o: $(HACK_SRC)/screenhackI.h cubicgrid.o: $(UTILS_SRC)/colors.h @@ -1164,6 +1200,7 @@ cubicgrid.o: $(HACK_SRC)/xlockmore.h dangerball.o: ../../config.h dangerball.o: $(HACK_SRC)/fps.h dangerball.o: $(srcdir)/gltrackball.h +dangerball.o: $(srcdir)/jwzgles.h dangerball.o: $(srcdir)/rotator.h dangerball.o: $(HACK_SRC)/screenhackI.h dangerball.o: $(srcdir)/sphere.h @@ -1181,6 +1218,7 @@ dangerball.o: $(HACK_SRC)/xlockmore.h dnalogo.o: ../../config.h dnalogo.o: $(HACK_SRC)/fps.h dnalogo.o: $(srcdir)/gltrackball.h +dnalogo.o: $(srcdir)/jwzgles.h dnalogo.o: $(srcdir)/normals.h dnalogo.o: $(srcdir)/rotator.h dnalogo.o: $(HACK_SRC)/screenhackI.h @@ -1212,6 +1250,7 @@ endgame.o: $(srcdir)/chessmodels.h endgame.o: ../../config.h endgame.o: $(HACK_SRC)/fps.h endgame.o: $(srcdir)/gltrackball.h +endgame.o: $(srcdir)/jwzgles.h endgame.o: $(HACK_SRC)/screenhackI.h endgame.o: $(UTILS_SRC)/colors.h endgame.o: $(UTILS_SRC)/grabscreen.h @@ -1227,6 +1266,7 @@ engine.o: ../../config.h engine.o: $(HACK_SRC)/fps.h engine.o: $(srcdir)/gltrackball.h engine.o: $(srcdir)/glxfonts.h +engine.o: $(srcdir)/jwzgles.h engine.o: $(srcdir)/rotator.h engine.o: $(HACK_SRC)/screenhackI.h engine.o: $(UTILS_SRC)/colors.h @@ -1251,6 +1291,7 @@ extrusion.o: ../../config.h extrusion.o: $(srcdir)/extrusion.h extrusion.o: $(HACK_SRC)/fps.h extrusion.o: $(srcdir)/gltrackball.h +extrusion.o: $(srcdir)/jwzgles.h extrusion.o: $(srcdir)/rotator.h extrusion.o: $(HACK_SRC)/screenhackI.h extrusion.o: $(UTILS_SRC)/colors.h @@ -1274,6 +1315,7 @@ flipflop.o: ../../config.h flipflop.o: $(HACK_SRC)/fps.h flipflop.o: $(srcdir)/gltrackball.h flipflop.o: $(srcdir)/grab-ximage.h +flipflop.o: $(srcdir)/jwzgles.h flipflop.o: $(HACK_SRC)/screenhackI.h flipflop.o: $(UTILS_SRC)/colors.h flipflop.o: $(UTILS_SRC)/grabscreen.h @@ -1289,6 +1331,7 @@ flipscreen3d.o: ../../config.h flipscreen3d.o: $(HACK_SRC)/fps.h flipscreen3d.o: $(srcdir)/gltrackball.h flipscreen3d.o: $(srcdir)/grab-ximage.h +flipscreen3d.o: $(srcdir)/jwzgles.h flipscreen3d.o: $(HACK_SRC)/screenhackI.h flipscreen3d.o: $(UTILS_SRC)/colors.h flipscreen3d.o: $(UTILS_SRC)/grabscreen.h @@ -1302,6 +1345,7 @@ flipscreen3d.o: $(HACK_SRC)/xlockmoreI.h flipscreen3d.o: $(HACK_SRC)/xlockmore.h fliptext.o: ../../config.h fliptext.o: $(HACK_SRC)/fps.h +fliptext.o: $(srcdir)/jwzgles.h fliptext.o: $(HACK_SRC)/screenhackI.h fliptext.o: $(srcdir)/texfont.h fliptext.o: $(UTILS_SRC)/colors.h @@ -1318,6 +1362,7 @@ flurry.o: ../../config.h flurry.o: $(srcdir)/flurry.h flurry.o: $(HACK_SRC)/fps.h flurry.o: $(srcdir)/gltrackball.h +flurry.o: $(srcdir)/jwzgles.h flurry.o: $(srcdir)/rotator.h flurry.o: $(HACK_SRC)/screenhackI.h flurry.o: $(UTILS_SRC)/colors.h @@ -1356,6 +1401,7 @@ flyingtoasters.o: $(srcdir)/gllist.h flyingtoasters.o: $(srcdir)/gltrackball.h flyingtoasters.o: $(HACK_SRC)/images/chromesphere.xpm flyingtoasters.o: $(HACK_SRC)/images/toast.xpm +flyingtoasters.o: $(srcdir)/jwzgles.h flyingtoasters.o: $(HACK_SRC)/screenhackI.h flyingtoasters.o: $(UTILS_SRC)/colors.h flyingtoasters.o: $(UTILS_SRC)/grabscreen.h @@ -1370,10 +1416,12 @@ flyingtoasters.o: $(HACK_SRC)/xlockmore.h flyingtoasters.o: $(srcdir)/xpm-ximage.h font-ximage.o: ../../config.h font-ximage.o: $(srcdir)/font-ximage.h +font-ximage.o: $(srcdir)/jwzgles.h fps-gl.o: ../../config.h fps-gl.o: $(HACK_SRC)/fpsI.h fps-gl.o: $(HACK_SRC)/fps.h fps-gl.o: $(srcdir)/glxfonts.h +fps-gl.o: $(srcdir)/jwzgles.h fps-gl.o: $(HACK_SRC)/screenhackI.h fps-gl.o: $(UTILS_SRC)/colors.h fps-gl.o: $(UTILS_SRC)/grabscreen.h @@ -1388,6 +1436,7 @@ gears.o: ../../config.h gears.o: $(HACK_SRC)/fps.h gears.o: $(srcdir)/gltrackball.h gears.o: $(srcdir)/involute.h +gears.o: $(srcdir)/jwzgles.h gears.o: $(srcdir)/normals.h gears.o: $(srcdir)/rotator.h gears.o: $(HACK_SRC)/screenhackI.h @@ -1406,6 +1455,7 @@ gflux.o: ../../config.h gflux.o: $(HACK_SRC)/fps.h gflux.o: $(srcdir)/gltrackball.h gflux.o: $(srcdir)/grab-ximage.h +gflux.o: $(srcdir)/jwzgles.h gflux.o: $(HACK_SRC)/screenhackI.h gflux.o: $(UTILS_SRC)/colors.h gflux.o: $(UTILS_SRC)/grabscreen.h @@ -1420,6 +1470,7 @@ gflux.o: $(HACK_SRC)/xlockmore.h glblur.o: ../../config.h glblur.o: $(HACK_SRC)/fps.h glblur.o: $(srcdir)/gltrackball.h +glblur.o: $(srcdir)/jwzgles.h glblur.o: $(srcdir)/rotator.h glblur.o: $(HACK_SRC)/screenhackI.h glblur.o: $(UTILS_SRC)/colors.h @@ -1434,6 +1485,7 @@ glblur.o: $(HACK_SRC)/xlockmoreI.h glblur.o: $(HACK_SRC)/xlockmore.h glcells.o: ../../config.h glcells.o: $(HACK_SRC)/fps.h +glcells.o: $(srcdir)/jwzgles.h glcells.o: $(HACK_SRC)/screenhackI.h glcells.o: $(UTILS_SRC)/colors.h glcells.o: $(UTILS_SRC)/grabscreen.h @@ -1448,6 +1500,7 @@ glcells.o: $(HACK_SRC)/xlockmore.h gleidescope.o: ../../config.h gleidescope.o: $(HACK_SRC)/fps.h gleidescope.o: $(srcdir)/grab-ximage.h +gleidescope.o: $(srcdir)/jwzgles.h gleidescope.o: $(HACK_SRC)/screenhackI.h gleidescope.o: $(UTILS_SRC)/colors.h gleidescope.o: $(UTILS_SRC)/grabscreen.h @@ -1465,6 +1518,7 @@ glforestfire.o: $(HACK_SRC)/fps.h glforestfire.o: $(srcdir)/gltrackball.h glforestfire.o: $(HACK_SRC)/images/ground.xpm glforestfire.o: $(HACK_SRC)/images/tree.xpm +glforestfire.o: $(srcdir)/jwzgles.h glforestfire.o: $(HACK_SRC)/screenhackI.h glforestfire.o: $(UTILS_SRC)/colors.h glforestfire.o: $(UTILS_SRC)/grabscreen.h @@ -1479,6 +1533,7 @@ glforestfire.o: $(HACK_SRC)/xlockmore.h glforestfire.o: $(srcdir)/xpm-ximage.h glhanoi.o: ../../config.h glhanoi.o: $(HACK_SRC)/fps.h +glhanoi.o: $(srcdir)/jwzgles.h glhanoi.o: $(srcdir)/rotator.h glhanoi.o: $(HACK_SRC)/screenhackI.h glhanoi.o: $(UTILS_SRC)/colors.h @@ -1494,6 +1549,7 @@ glhanoi.o: $(HACK_SRC)/xlockmore.h glknots.o: ../../config.h glknots.o: $(HACK_SRC)/fps.h glknots.o: $(srcdir)/gltrackball.h +glknots.o: $(srcdir)/jwzgles.h glknots.o: $(srcdir)/rotator.h glknots.o: $(HACK_SRC)/screenhackI.h glknots.o: $(srcdir)/tube.h @@ -1511,6 +1567,7 @@ gllist.o: $(srcdir)/gllist.h glmatrix.o: ../../config.h glmatrix.o: $(HACK_SRC)/fps.h glmatrix.o: $(HACK_SRC)/images/matrix3.xpm +glmatrix.o: $(srcdir)/jwzgles.h glmatrix.o: $(HACK_SRC)/screenhackI.h glmatrix.o: $(UTILS_SRC)/colors.h glmatrix.o: $(UTILS_SRC)/grabscreen.h @@ -1527,6 +1584,7 @@ glplanet.o: ../../config.h glplanet.o: $(HACK_SRC)/fps.h glplanet.o: $(srcdir)/gltrackball.h glplanet.o: $(HACK_SRC)/images/earth.xpm +glplanet.o: $(srcdir)/jwzgles.h glplanet.o: $(srcdir)/rotator.h glplanet.o: $(HACK_SRC)/screenhackI.h glplanet.o: $(srcdir)/sphere.h @@ -1546,6 +1604,7 @@ glschool_alg.o: $(srcdir)/glschool_alg.h glschool_alg.o: $(UTILS_SRC)/yarandom.h glschool_gl.o: $(srcdir)/glschool_alg.h glschool_gl.o: $(srcdir)/glschool_gl.h +glschool_gl.o: $(srcdir)/jwzgles.h glschool_gl.o: $(srcdir)/sphere.h glschool_gl.o: $(srcdir)/tube.h glschool.o: ../../config.h @@ -1553,6 +1612,7 @@ glschool.o: $(HACK_SRC)/fps.h glschool.o: $(srcdir)/glschool_alg.h glschool.o: $(srcdir)/glschool_gl.h glschool.o: $(srcdir)/glschool.h +glschool.o: $(srcdir)/jwzgles.h glschool.o: $(HACK_SRC)/screenhackI.h glschool.o: $(UTILS_SRC)/colors.h glschool.o: $(UTILS_SRC)/grabscreen.h @@ -1568,6 +1628,7 @@ glslideshow.o: ../../config.h glslideshow.o: $(HACK_SRC)/fps.h glslideshow.o: $(srcdir)/glxfonts.h glslideshow.o: $(srcdir)/grab-ximage.h +glslideshow.o: $(srcdir)/jwzgles.h glslideshow.o: $(HACK_SRC)/screenhackI.h glslideshow.o: $(UTILS_SRC)/colors.h glslideshow.o: $(UTILS_SRC)/grabscreen.h @@ -1582,6 +1643,7 @@ glslideshow.o: $(HACK_SRC)/xlockmore.h glsnake.o: ../../config.h glsnake.o: $(HACK_SRC)/fps.h glsnake.o: $(srcdir)/glxfonts.h +glsnake.o: $(srcdir)/jwzgles.h glsnake.o: $(HACK_SRC)/screenhackI.h glsnake.o: $(UTILS_SRC)/colors.h glsnake.o: $(UTILS_SRC)/grabscreen.h @@ -1598,6 +1660,7 @@ gltext.o: $(HACK_SRC)/fps.h gltext.o: $(srcdir)/gltrackball.h gltext.o: $(srcdir)/glut_roman.h gltext.o: $(srcdir)/glutstroke.h +gltext.o: $(srcdir)/jwzgles.h gltext.o: $(srcdir)/rotator.h gltext.o: $(HACK_SRC)/screenhackI.h gltext.o: $(srcdir)/tube.h @@ -1613,16 +1676,21 @@ gltext.o: $(HACK_SRC)/xlockmoreI.h gltext.o: $(HACK_SRC)/xlockmore.h gltrackball.o: ../../config.h gltrackball.o: $(srcdir)/gltrackball.h +gltrackball.o: $(srcdir)/jwzgles.h gltrackball.o: $(srcdir)/trackball.h glut_stroke.o: ../../config.h glut_stroke.o: $(srcdir)/glutstroke.h +glut_stroke.o: $(srcdir)/jwzgles.h glut_swidth.o: ../../config.h glut_swidth.o: $(srcdir)/glutstroke.h +glut_swidth.o: $(srcdir)/jwzgles.h glxfonts.o: ../../config.h glxfonts.o: $(srcdir)/glxfonts.h +glxfonts.o: $(srcdir)/jwzgles.h glxfonts.o: $(UTILS_SRC)/resources.h grab-ximage.o: ../../config.h grab-ximage.o: $(srcdir)/grab-ximage.h +grab-ximage.o: $(srcdir)/jwzgles.h grab-ximage.o: $(UTILS_SRC)/grabscreen.h grab-ximage.o: $(UTILS_SRC)/resources.h grab-ximage.o: $(UTILS_SRC)/visual.h @@ -1630,6 +1698,7 @@ grab-ximage.o: $(UTILS_SRC)/xshm.h hilbert.o: ../../config.h hilbert.o: $(HACK_SRC)/fps.h hilbert.o: $(srcdir)/gltrackball.h +hilbert.o: $(srcdir)/jwzgles.h hilbert.o: $(srcdir)/rotator.h hilbert.o: $(HACK_SRC)/screenhackI.h hilbert.o: $(srcdir)/sphere.h @@ -1647,6 +1716,7 @@ hilbert.o: $(HACK_SRC)/xlockmore.h hypertorus.o: ../../config.h hypertorus.o: $(HACK_SRC)/fps.h hypertorus.o: $(srcdir)/gltrackball.h +hypertorus.o: $(srcdir)/jwzgles.h hypertorus.o: $(HACK_SRC)/screenhackI.h hypertorus.o: $(UTILS_SRC)/colors.h hypertorus.o: $(UTILS_SRC)/grabscreen.h @@ -1660,6 +1730,7 @@ hypertorus.o: $(HACK_SRC)/xlockmoreI.h hypertorus.o: $(HACK_SRC)/xlockmore.h hypnowheel.o: ../../config.h hypnowheel.o: $(HACK_SRC)/fps.h +hypnowheel.o: $(srcdir)/jwzgles.h hypnowheel.o: $(srcdir)/rotator.h hypnowheel.o: $(HACK_SRC)/screenhackI.h hypnowheel.o: $(UTILS_SRC)/colors.h @@ -1675,6 +1746,7 @@ hypnowheel.o: $(HACK_SRC)/xlockmore.h involute.o: ../../config.h involute.o: $(HACK_SRC)/fps.h involute.o: $(srcdir)/involute.h +involute.o: $(srcdir)/jwzgles.h involute.o: $(srcdir)/normals.h involute.o: $(HACK_SRC)/screenhackI.h involute.o: $(UTILS_SRC)/colors.h @@ -1688,6 +1760,7 @@ jigglypuff.o: ../../config.h jigglypuff.o: $(HACK_SRC)/fps.h jigglypuff.o: $(srcdir)/gltrackball.h jigglypuff.o: $(HACK_SRC)/images/jigglymap.xpm +jigglypuff.o: $(srcdir)/jwzgles.h jigglypuff.o: $(HACK_SRC)/screenhackI.h jigglypuff.o: $(UTILS_SRC)/colors.h jigglypuff.o: $(UTILS_SRC)/grabscreen.h @@ -1704,6 +1777,7 @@ jigsaw.o: ../../config.h jigsaw.o: $(HACK_SRC)/fps.h jigsaw.o: $(srcdir)/gltrackball.h jigsaw.o: $(srcdir)/grab-ximage.h +jigsaw.o: $(srcdir)/jwzgles.h jigsaw.o: $(srcdir)/normals.h jigsaw.o: $(srcdir)/rotator.h jigsaw.o: $(HACK_SRC)/screenhackI.h @@ -1722,6 +1796,7 @@ juggler3d.o: ../../config.h juggler3d.o: $(HACK_SRC)/fps.h juggler3d.o: $(srcdir)/gltrackball.h juggler3d.o: $(srcdir)/glxfonts.h +juggler3d.o: $(srcdir)/jwzgles.h juggler3d.o: $(srcdir)/rotator.h juggler3d.o: $(HACK_SRC)/screenhackI.h juggler3d.o: $(srcdir)/sphere.h @@ -1736,9 +1811,12 @@ juggler3d.o: $(UTILS_SRC)/xshm.h juggler3d.o: $(UTILS_SRC)/yarandom.h juggler3d.o: $(HACK_SRC)/xlockmoreI.h juggler3d.o: $(HACK_SRC)/xlockmore.h +jwzgles.o: ../../config.h +jwzgles.o: $(srcdir)/jwzgles.h klein.o: ../../config.h klein.o: $(HACK_SRC)/fps.h klein.o: $(srcdir)/gltrackball.h +klein.o: $(srcdir)/jwzgles.h klein.o: $(HACK_SRC)/screenhackI.h klein.o: $(UTILS_SRC)/colors.h klein.o: $(UTILS_SRC)/grabscreen.h @@ -1754,6 +1832,7 @@ lament.o: ../../config.h lament.o: $(HACK_SRC)/fps.h lament.o: $(srcdir)/gltrackball.h lament.o: $(HACK_SRC)/images/lament.xpm +lament.o: $(srcdir)/jwzgles.h lament.o: $(srcdir)/normals.h lament.o: $(srcdir)/rotator.h lament.o: $(HACK_SRC)/screenhackI.h @@ -1771,6 +1850,7 @@ lament.o: $(srcdir)/xpm-ximage.h lavalite.o: ../../config.h lavalite.o: $(HACK_SRC)/fps.h lavalite.o: $(srcdir)/gltrackball.h +lavalite.o: $(srcdir)/jwzgles.h lavalite.o: $(srcdir)/marching.h lavalite.o: $(srcdir)/rotator.h lavalite.o: $(HACK_SRC)/screenhackI.h @@ -1787,6 +1867,7 @@ lavalite.o: $(HACK_SRC)/xlockmore.h lavalite.o: $(srcdir)/xpm-ximage.h lockward.o: ../../config.h lockward.o: $(HACK_SRC)/fps.h +lockward.o: $(srcdir)/jwzgles.h lockward.o: $(HACK_SRC)/screenhackI.h lockward.o: $(UTILS_SRC)/colors.h lockward.o: $(UTILS_SRC)/grabscreen.h @@ -1799,11 +1880,13 @@ lockward.o: $(UTILS_SRC)/yarandom.h lockward.o: $(HACK_SRC)/xlockmoreI.h lockward.o: $(HACK_SRC)/xlockmore.h marching.o: ../../config.h +marching.o: $(srcdir)/jwzgles.h marching.o: $(srcdir)/marching.h marching.o: $(srcdir)/normals.h menger.o: ../../config.h menger.o: $(HACK_SRC)/fps.h menger.o: $(srcdir)/gltrackball.h +menger.o: $(srcdir)/jwzgles.h menger.o: $(srcdir)/rotator.h menger.o: $(HACK_SRC)/screenhackI.h menger.o: $(UTILS_SRC)/colors.h @@ -1820,6 +1903,7 @@ mirrorblob.o: ../../config.h mirrorblob.o: $(HACK_SRC)/fps.h mirrorblob.o: $(srcdir)/gltrackball.h mirrorblob.o: $(srcdir)/grab-ximage.h +mirrorblob.o: $(srcdir)/jwzgles.h mirrorblob.o: $(HACK_SRC)/screenhackI.h mirrorblob.o: $(UTILS_SRC)/colors.h mirrorblob.o: $(UTILS_SRC)/grabscreen.h @@ -1835,6 +1919,7 @@ moebiusgears.o: ../../config.h moebiusgears.o: $(HACK_SRC)/fps.h moebiusgears.o: $(srcdir)/gltrackball.h moebiusgears.o: $(srcdir)/involute.h +moebiusgears.o: $(srcdir)/jwzgles.h moebiusgears.o: $(srcdir)/normals.h moebiusgears.o: $(srcdir)/rotator.h moebiusgears.o: $(HACK_SRC)/screenhackI.h @@ -1852,6 +1937,7 @@ moebius.o: ../../config.h moebius.o: $(srcdir)/e_textures.h moebius.o: $(HACK_SRC)/fps.h moebius.o: $(srcdir)/gltrackball.h +moebius.o: $(srcdir)/jwzgles.h moebius.o: $(srcdir)/rotator.h moebius.o: $(HACK_SRC)/screenhackI.h moebius.o: $(UTILS_SRC)/colors.h @@ -1868,6 +1954,7 @@ molecule.o: ../../config.h molecule.o: $(HACK_SRC)/fps.h molecule.o: $(srcdir)/gltrackball.h molecule.o: $(srcdir)/glxfonts.h +molecule.o: $(srcdir)/jwzgles.h molecule.o: molecules.h molecule.o: $(srcdir)/rotator.h molecule.o: $(HACK_SRC)/screenhackI.h @@ -1885,6 +1972,7 @@ molecule.o: $(HACK_SRC)/xlockmoreI.h molecule.o: $(HACK_SRC)/xlockmore.h morph3d.o: ../../config.h morph3d.o: $(HACK_SRC)/fps.h +morph3d.o: $(srcdir)/jwzgles.h morph3d.o: $(HACK_SRC)/screenhackI.h morph3d.o: $(UTILS_SRC)/colors.h morph3d.o: $(UTILS_SRC)/grabscreen.h @@ -1898,6 +1986,7 @@ morph3d.o: $(HACK_SRC)/xlockmoreI.h morph3d.o: $(HACK_SRC)/xlockmore.h noof.o: ../../config.h noof.o: $(HACK_SRC)/fps.h +noof.o: $(srcdir)/jwzgles.h noof.o: $(HACK_SRC)/screenhackI.h noof.o: $(UTILS_SRC)/colors.h noof.o: $(UTILS_SRC)/grabscreen.h @@ -1915,6 +2004,7 @@ photopile.o: ../../config.h photopile.o: $(srcdir)/dropshadow.h photopile.o: $(HACK_SRC)/fps.h photopile.o: $(srcdir)/grab-ximage.h +photopile.o: $(srcdir)/jwzgles.h photopile.o: $(HACK_SRC)/screenhackI.h photopile.o: $(srcdir)/texfont.h photopile.o: $(UTILS_SRC)/colors.h @@ -1932,6 +2022,7 @@ pinion.o: $(HACK_SRC)/fps.h pinion.o: $(srcdir)/gltrackball.h pinion.o: $(srcdir)/glxfonts.h pinion.o: $(srcdir)/involute.h +pinion.o: $(srcdir)/jwzgles.h pinion.o: $(srcdir)/normals.h pinion.o: $(HACK_SRC)/screenhackI.h pinion.o: $(UTILS_SRC)/colors.h @@ -1948,6 +2039,7 @@ pipeobjs.o: $(srcdir)/buildlwo.h pipes.o: $(srcdir)/buildlwo.h pipes.o: ../../config.h pipes.o: $(HACK_SRC)/fps.h +pipes.o: $(srcdir)/jwzgles.h pipes.o: $(HACK_SRC)/screenhackI.h pipes.o: $(srcdir)/teapot.h pipes.o: $(UTILS_SRC)/colors.h @@ -1964,6 +2056,7 @@ polyhedra-gl.o: ../../config.h polyhedra-gl.o: $(HACK_SRC)/fps.h polyhedra-gl.o: $(srcdir)/gltrackball.h polyhedra-gl.o: $(srcdir)/glxfonts.h +polyhedra-gl.o: $(srcdir)/jwzgles.h polyhedra-gl.o: $(srcdir)/normals.h polyhedra-gl.o: $(srcdir)/polyhedra.h polyhedra-gl.o: $(srcdir)/rotator.h @@ -1984,6 +2077,7 @@ polyhedra.o: $(srcdir)/polyhedra.h polytopes.o: ../../config.h polytopes.o: $(HACK_SRC)/fps.h polytopes.o: $(srcdir)/gltrackball.h +polytopes.o: $(srcdir)/jwzgles.h polytopes.o: $(HACK_SRC)/screenhackI.h polytopes.o: $(UTILS_SRC)/colors.h polytopes.o: $(UTILS_SRC)/grabscreen.h @@ -1998,6 +2092,7 @@ polytopes.o: $(HACK_SRC)/xlockmore.h providence.o: ../../config.h providence.o: $(HACK_SRC)/fps.h providence.o: $(srcdir)/gltrackball.h +providence.o: $(srcdir)/jwzgles.h providence.o: $(HACK_SRC)/screenhackI.h providence.o: $(UTILS_SRC)/colors.h providence.o: $(UTILS_SRC)/grabscreen.h @@ -2011,6 +2106,7 @@ providence.o: $(HACK_SRC)/xlockmoreI.h providence.o: $(HACK_SRC)/xlockmore.h pulsar.o: ../../config.h pulsar.o: $(HACK_SRC)/fps.h +pulsar.o: $(srcdir)/jwzgles.h pulsar.o: $(HACK_SRC)/screenhackI.h pulsar.o: $(UTILS_SRC)/colors.h pulsar.o: $(UTILS_SRC)/grabscreen.h @@ -2026,6 +2122,7 @@ pulsar.o: $(srcdir)/xpm-ximage.h queens.o: ../../config.h queens.o: $(HACK_SRC)/fps.h queens.o: $(srcdir)/gltrackball.h +queens.o: $(srcdir)/jwzgles.h queens.o: $(HACK_SRC)/screenhackI.h queens.o: $(UTILS_SRC)/colors.h queens.o: $(UTILS_SRC)/grabscreen.h @@ -2043,6 +2140,7 @@ rotator.o: $(UTILS_SRC)/yarandom.h rubikblocks.o: ../../config.h rubikblocks.o: $(HACK_SRC)/fps.h rubikblocks.o: $(srcdir)/gltrackball.h +rubikblocks.o: $(srcdir)/jwzgles.h rubikblocks.o: $(srcdir)/rotator.h rubikblocks.o: $(HACK_SRC)/screenhackI.h rubikblocks.o: $(UTILS_SRC)/colors.h @@ -2057,6 +2155,7 @@ rubikblocks.o: $(HACK_SRC)/xlockmoreI.h rubikblocks.o: $(HACK_SRC)/xlockmore.h rubik.o: ../../config.h rubik.o: $(HACK_SRC)/fps.h +rubik.o: $(srcdir)/jwzgles.h rubik.o: $(HACK_SRC)/screenhackI.h rubik.o: $(UTILS_SRC)/colors.h rubik.o: $(UTILS_SRC)/grabscreen.h @@ -2080,6 +2179,7 @@ sballs.o: $(HACK_SRC)/fps.h sballs.o: $(srcdir)/gltrackball.h sballs.o: $(HACK_SRC)/images/sball-bg.xpm sballs.o: $(HACK_SRC)/images/sball.xpm +sballs.o: $(srcdir)/jwzgles.h sballs.o: $(HACK_SRC)/screenhackI.h sballs.o: $(UTILS_SRC)/colors.h sballs.o: $(UTILS_SRC)/grabscreen.h @@ -2106,6 +2206,7 @@ shark.o: $(UTILS_SRC)/yarandom.h sierpinski3d.o: ../../config.h sierpinski3d.o: $(HACK_SRC)/fps.h sierpinski3d.o: $(srcdir)/gltrackball.h +sierpinski3d.o: $(srcdir)/jwzgles.h sierpinski3d.o: $(srcdir)/rotator.h sierpinski3d.o: $(HACK_SRC)/screenhackI.h sierpinski3d.o: $(UTILS_SRC)/colors.h @@ -2122,6 +2223,7 @@ skytentacles.o: ../../config.h skytentacles.o: $(HACK_SRC)/fps.h skytentacles.o: $(srcdir)/gltrackball.h skytentacles.o: $(HACK_SRC)/images/scales.xpm +skytentacles.o: $(srcdir)/jwzgles.h skytentacles.o: $(srcdir)/normals.h skytentacles.o: $(srcdir)/rotator.h skytentacles.o: $(HACK_SRC)/screenhackI.h @@ -2151,6 +2253,7 @@ sonar-icmp.o: $(UTILS_SRC)/yarandom.h sonar.o: ../../config.h sonar.o: $(HACK_SRC)/fps.h sonar.o: $(srcdir)/gltrackball.h +sonar.o: $(srcdir)/jwzgles.h sonar.o: $(srcdir)/rotator.h sonar.o: $(HACK_SRC)/screenhackI.h sonar.o: $(srcdir)/sonar.h @@ -2180,6 +2283,7 @@ spheremonics.o: ../../config.h spheremonics.o: $(HACK_SRC)/fps.h spheremonics.o: $(srcdir)/gltrackball.h spheremonics.o: $(srcdir)/glxfonts.h +spheremonics.o: $(srcdir)/jwzgles.h spheremonics.o: $(srcdir)/normals.h spheremonics.o: $(srcdir)/rotator.h spheremonics.o: $(HACK_SRC)/screenhackI.h @@ -2194,10 +2298,12 @@ spheremonics.o: $(UTILS_SRC)/yarandom.h spheremonics.o: $(HACK_SRC)/xlockmoreI.h spheremonics.o: $(HACK_SRC)/xlockmore.h sphere.o: ../../config.h +sphere.o: $(srcdir)/jwzgles.h sphere.o: $(srcdir)/sphere.h sproingies.o: ../../config.h sproingies.o: $(HACK_SRC)/fps.h sproingies.o: $(srcdir)/gllist.h +sproingies.o: $(srcdir)/jwzgles.h sproingies.o: $(HACK_SRC)/screenhackI.h sproingies.o: $(srcdir)/sproingies.h sproingies.o: $(UTILS_SRC)/colors.h @@ -2211,6 +2317,7 @@ sproingies.o: $(UTILS_SRC)/yarandom.h sproingies.o: $(HACK_SRC)/xlockmoreI.h sproingiewrap.o: ../../config.h sproingiewrap.o: $(HACK_SRC)/fps.h +sproingiewrap.o: $(srcdir)/jwzgles.h sproingiewrap.o: $(HACK_SRC)/screenhackI.h sproingiewrap.o: $(srcdir)/sproingies.h sproingiewrap.o: $(UTILS_SRC)/colors.h @@ -2227,6 +2334,7 @@ stairs.o: ../../config.h stairs.o: $(srcdir)/e_textures.h stairs.o: $(HACK_SRC)/fps.h stairs.o: $(srcdir)/gltrackball.h +stairs.o: $(srcdir)/jwzgles.h stairs.o: $(HACK_SRC)/screenhackI.h stairs.o: $(srcdir)/sphere.h stairs.o: $(UTILS_SRC)/colors.h @@ -2243,6 +2351,7 @@ starwars.o: ../../config.h starwars.o: $(HACK_SRC)/fps.h starwars.o: $(srcdir)/glut_roman.h starwars.o: $(srcdir)/glutstroke.h +starwars.o: $(srcdir)/jwzgles.h starwars.o: $(HACK_SRC)/screenhackI.h starwars.o: $(srcdir)/texfont.h starwars.o: $(UTILS_SRC)/colors.h @@ -2256,6 +2365,7 @@ starwars.o: $(UTILS_SRC)/yarandom.h starwars.o: $(HACK_SRC)/xlockmoreI.h starwars.o: $(HACK_SRC)/xlockmore.h stonerview-move.o: ../../config.h +stonerview-move.o: $(srcdir)/jwzgles.h stonerview-move.o: $(srcdir)/stonerview.h stonerview-move.o: $(srcdir)/stonerview-move.h stonerview-move.o: $(srcdir)/stonerview-osc.h @@ -2263,6 +2373,7 @@ stonerview-move.o: $(UTILS_SRC)/yarandom.h stonerview.o: ../../config.h stonerview.o: $(HACK_SRC)/fps.h stonerview.o: $(srcdir)/gltrackball.h +stonerview.o: $(srcdir)/jwzgles.h stonerview.o: $(HACK_SRC)/screenhackI.h stonerview.o: $(srcdir)/stonerview.h stonerview.o: $(srcdir)/stonerview-move.h @@ -2278,16 +2389,19 @@ stonerview.o: $(UTILS_SRC)/yarandom.h stonerview.o: $(HACK_SRC)/xlockmoreI.h stonerview.o: $(HACK_SRC)/xlockmore.h stonerview-osc.o: ../../config.h +stonerview-osc.o: $(srcdir)/jwzgles.h stonerview-osc.o: $(srcdir)/stonerview.h stonerview-osc.o: $(srcdir)/stonerview-move.h stonerview-osc.o: $(srcdir)/stonerview-osc.h stonerview-osc.o: $(UTILS_SRC)/yarandom.h stonerview-view.o: ../../config.h +stonerview-view.o: $(srcdir)/jwzgles.h stonerview-view.o: $(srcdir)/stonerview.h stonerview-view.o: $(srcdir)/stonerview-move.h stonerview-view.o: $(srcdir)/stonerview-osc.h superquadrics.o: ../../config.h superquadrics.o: $(HACK_SRC)/fps.h +superquadrics.o: $(srcdir)/jwzgles.h superquadrics.o: $(HACK_SRC)/screenhackI.h superquadrics.o: $(UTILS_SRC)/colors.h superquadrics.o: $(UTILS_SRC)/grabscreen.h @@ -2302,6 +2416,7 @@ superquadrics.o: $(HACK_SRC)/xlockmore.h surfaces.o: ../../config.h surfaces.o: $(HACK_SRC)/fps.h surfaces.o: $(srcdir)/gltrackball.h +surfaces.o: $(srcdir)/jwzgles.h surfaces.o: $(srcdir)/rotator.h surfaces.o: $(HACK_SRC)/screenhackI.h surfaces.o: $(UTILS_SRC)/colors.h @@ -2317,6 +2432,7 @@ surfaces.o: $(HACK_SRC)/xlockmore.h swim.o: $(srcdir)/atlantis.h swim.o: ../../config.h swim.o: $(HACK_SRC)/fps.h +swim.o: $(srcdir)/jwzgles.h swim.o: $(HACK_SRC)/screenhackI.h swim.o: $(UTILS_SRC)/colors.h swim.o: $(UTILS_SRC)/grabscreen.h @@ -2330,6 +2446,7 @@ swim.o: $(HACK_SRC)/xlockmoreI.h tangram.o: ../../config.h tangram.o: $(HACK_SRC)/fps.h tangram.o: $(srcdir)/glxfonts.h +tangram.o: $(srcdir)/jwzgles.h tangram.o: $(HACK_SRC)/screenhackI.h tangram.o: $(srcdir)/tangram_shapes.h tangram.o: $(UTILS_SRC)/colors.h @@ -2344,6 +2461,7 @@ tangram.o: $(HACK_SRC)/xlockmoreI.h tangram.o: $(HACK_SRC)/xlockmore.h tangram_shapes.o: $(srcdir)/tangram_shapes.h teapot.o: ../../config.h +teapot.o: $(srcdir)/jwzgles.h teapot.o: $(srcdir)/teapot.h texfont.o: ../../config.h texfont.o: $(srcdir)/texfont.h @@ -2355,6 +2473,7 @@ timetunnel.o: $(HACK_SRC)/images/timetunnel0.xpm timetunnel.o: $(HACK_SRC)/images/timetunnel1.xpm timetunnel.o: $(HACK_SRC)/images/timetunnel2.xpm timetunnel.o: $(HACK_SRC)/images/tunnelstar.xpm +timetunnel.o: $(srcdir)/jwzgles.h timetunnel.o: $(srcdir)/rotator.h timetunnel.o: $(HACK_SRC)/screenhackI.h timetunnel.o: $(UTILS_SRC)/colors.h @@ -2382,6 +2501,7 @@ toast.o: $(srcdir)/gllist.h topblock.o: ../../config.h topblock.o: $(HACK_SRC)/fps.h topblock.o: $(srcdir)/gltrackball.h +topblock.o: $(srcdir)/jwzgles.h topblock.o: $(HACK_SRC)/screenhackI.h topblock.o: $(srcdir)/sphere.h topblock.o: $(srcdir)/topblock.h @@ -2404,6 +2524,7 @@ tronbit.o: ../../config.h tronbit.o: $(HACK_SRC)/fps.h tronbit.o: $(srcdir)/gllist.h tronbit.o: $(srcdir)/gltrackball.h +tronbit.o: $(srcdir)/jwzgles.h tronbit.o: $(srcdir)/rotator.h tronbit.o: $(HACK_SRC)/screenhackI.h tronbit.o: $(srcdir)/sphere.h @@ -2419,9 +2540,11 @@ tronbit.o: $(HACK_SRC)/xlockmoreI.h tronbit.o: $(HACK_SRC)/xlockmore.h tronbit_yes.o: $(srcdir)/gllist.h tube.o: ../../config.h +tube.o: $(srcdir)/jwzgles.h tube.o: $(srcdir)/tube.h tunnel_draw.o: ../../config.h tunnel_draw.o: $(HACK_SRC)/fps.h +tunnel_draw.o: $(srcdir)/jwzgles.h tunnel_draw.o: $(HACK_SRC)/screenhackI.h tunnel_draw.o: $(srcdir)/tunnel_draw.h tunnel_draw.o: $(UTILS_SRC)/colors.h @@ -2435,6 +2558,7 @@ tunnel_draw.o: $(UTILS_SRC)/yarandom.h tunnel_draw.o: $(HACK_SRC)/xlockmoreI.h voronoi.o: ../../config.h voronoi.o: $(HACK_SRC)/fps.h +voronoi.o: $(srcdir)/jwzgles.h voronoi.o: $(HACK_SRC)/screenhackI.h voronoi.o: $(UTILS_SRC)/colors.h voronoi.o: $(UTILS_SRC)/grabscreen.h @@ -2460,6 +2584,7 @@ whale.o: $(UTILS_SRC)/yarandom.h xlock-gl-utils.o: ../../config.h xlock-gl-utils.o: $(HACK_SRC)/fps.h xlock-gl-utils.o: $(srcdir)/glxfonts.h +xlock-gl-utils.o: $(srcdir)/jwzgles.h xlock-gl-utils.o: $(HACK_SRC)/screenhackI.h xlock-gl-utils.o: $(UTILS_SRC)/colors.h xlock-gl-utils.o: $(UTILS_SRC)/grabscreen.h diff --git a/hacks/glx/antinspect.c b/hacks/glx/antinspect.c index 8beaa2a1..179c44f4 100644 --- a/hacks/glx/antinspect.c +++ b/hacks/glx/antinspect.c @@ -25,6 +25,19 @@ #include "xlock.h" #endif +#ifdef HAVE_COCOA +# include "jwxyz.h" +#else +# include +# include +# include +#endif + +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + +#include "sphere.h" #include "gltrackball.h" #define DEF_SHADOWS "True" @@ -148,6 +161,7 @@ static const GLfloat ground[4] = {0.0, 1.0, 0.0, -0.00001}; /* simple filled sphere */ static Bool mySphere(float radius) { +#if 0 GLUquadricObj *quadObj; if((quadObj = gluNewQuadric()) == 0) @@ -155,13 +169,20 @@ static Bool mySphere(float radius) gluQuadricDrawStyle(quadObj, (GLenum) GLU_FILL); gluSphere(quadObj, radius, 16, 16); gluDeleteQuadric(quadObj); - +#else + glPushMatrix(); + glScalef (radius, radius, radius); + glRotatef (90, 1, 0, 0); + unit_sphere (16, 16, False); + glPopMatrix(); +#endif return True; } /* caged sphere */ static Bool mySphere2(float radius) { +#if 0 GLUquadricObj *quadObj; if((quadObj = gluNewQuadric()) == 0) @@ -169,6 +190,13 @@ static Bool mySphere2(float radius) gluQuadricDrawStyle(quadObj, (GLenum) GLU_LINE);/*GLU_SILHOUETTE);*/ gluSphere(quadObj, radius, 16, 8); gluDeleteQuadric(quadObj); +#else + glPushMatrix(); + glScalef (radius, radius, radius); + glRotatef (90, 1, 0, 0); + unit_sphere (16, 8, True); + glPopMatrix(); +#endif return True; } @@ -651,6 +679,7 @@ ENTRYPOINT void draw_antinspect(ModeInfo * mi) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix(); + glRotatef(current_device_rotation(), 0, 0, 1); mi->polygon_count = 0; diff --git a/hacks/glx/antmaze.c b/hacks/glx/antmaze.c index 426be431..3c9e1de3 100644 --- a/hacks/glx/antmaze.c +++ b/hacks/glx/antmaze.c @@ -22,18 +22,32 @@ static const char sccsid[] = "@(#)antmaze.c 5.01 2001/03/01 xlockmore"; #ifdef STANDALONE # define MODE_antmaze # define DEFAULTS "*delay: 20000 \n" \ - "*showFPS: False \n" + "*showFPS: False \n" \ + "*fpsSolid: True \n" # define refresh_antmaze 0 # include "xlockmore.h" /* from the xscreensaver distribution */ #else /* !STANDALONE */ # include "xlock.h" /* from the xlockmore distribution */ - #endif /* !STANDALONE */ +#ifdef HAVE_COCOA +# include "jwxyz.h" +#else +# include +# include +# include +#endif + +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #ifdef MODE_antmaze +#include "sphere.h" +#include "tube.h" #include "rotator.h" #include "gltrackball.h" @@ -174,6 +188,7 @@ static const GLfloat position1[] = {-1.0, -5.0, 1.0, 1.0}; /* filled sphere */ static Bool mySphere(float radius) { +#if 0 GLUquadricObj *quadObj; if((quadObj = gluNewQuadric()) == 0) @@ -181,7 +196,13 @@ static Bool mySphere(float radius) gluQuadricDrawStyle(quadObj, (GLenum) GLU_FILL); gluSphere(quadObj, radius, 16, 16); gluDeleteQuadric(quadObj); - +#else + glPushMatrix(); + glScalef (radius, radius, radius); + glRotatef (90, 1, 0, 0); + unit_sphere (16, 16, False); + glPopMatrix(); +#endif return True; } @@ -204,6 +225,7 @@ static Bool mySphere2(float radius) /* textured sphere */ static Bool mySphereTex(float radius) { +#if 0 GLUquadricObj *quadObj; if((quadObj = gluNewQuadric()) == 0) @@ -213,6 +235,13 @@ static Bool mySphereTex(float radius) gluQuadricNormals(quadObj, GLU_SMOOTH); gluSphere(quadObj, radius, 32, 16); gluDeleteQuadric(quadObj); +#else + glPushMatrix(); + glScalef (radius, radius, radius); + glRotatef (90, 1, 0, 0); + unit_sphere (32, 16, False); + glPopMatrix(); +#endif return True; } @@ -220,6 +249,7 @@ static Bool mySphereTex(float radius) /* filled cone */ static Bool myCone(float radius) { +#if 0 GLUquadricObj *quadObj; if ((quadObj = gluNewQuadric()) == 0) @@ -227,6 +257,12 @@ static Bool myCone(float radius) gluQuadricDrawStyle(quadObj, (GLenum) GLU_FILL); gluCylinder(quadObj, radius, 0, radius * 2, 8, 1); gluDeleteQuadric(quadObj); +#else + cone (0, 0, 0, + 0, 0, radius * 2, + radius, 0, + 8, True, True, False); +#endif return True; } @@ -1408,6 +1444,20 @@ ENTRYPOINT void init_antmaze(ModeInfo * mi) MI_CLEARWINDOW(mi); } +static void +device_rotate(ModeInfo *mi) +{ + GLfloat rot = current_device_rotation(); + glRotatef(rot, 0, 0, 1); + if ((rot > 45 && rot < 135) || + (rot < -45 && rot > -135)) + { + GLfloat s = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi); + glScalef (1/s, s, 1); + } +} + + ENTRYPOINT void draw_antmaze(ModeInfo * mi) { double h = (GLfloat) MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi); @@ -1443,6 +1493,7 @@ ENTRYPOINT void draw_antmaze(ModeInfo * mi) glMatrixMode(GL_MODELVIEW); glLoadIdentity(); + device_rotate(mi); glPushMatrix(); @@ -1453,7 +1504,9 @@ ENTRYPOINT void draw_antmaze(ModeInfo * mi) /* started ? -mag : -8.0 + 4.0*fabs(sin(ant_step/10.0)), */ /* started ? -mag : -8.0 + 4.0*fabs(sin(ant_step/10.0))); */ + glRotatef(-current_device_rotation(), 0, 0, 1); gltrackball_rotate(mp->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); glRotatef(mp->ant_step*0.6, 0.0, 1.0, 0.0); @@ -1478,6 +1531,7 @@ ENTRYPOINT void draw_antmaze(ModeInfo * mi) glViewport((17*MI_WIDTH(mi))/32, MI_HEIGHT(mi)/2, MI_WIDTH(mi)/2, 3*MI_HEIGHT(mi)/8); glMatrixMode(GL_PROJECTION); glLoadIdentity(); + device_rotate(mi); gluPerspective(45, 1/h, 1, 25.0); glMatrixMode(GL_MODELVIEW); @@ -1485,7 +1539,9 @@ ENTRYPOINT void draw_antmaze(ModeInfo * mi) glTranslatef(0.0, 0.0, -16.0); glRotatef(60.0, 1.0, 0.0, 0.0); glRotatef(-15.0 + mp->ant_step/10.0, 0.0, 1.0, 0.0); + glRotatef(-current_device_rotation(), 0, 0, 1); gltrackball_rotate(mp->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); /* sync */ if(!draw_antmaze_strip(mi)) { @@ -1500,6 +1556,7 @@ ENTRYPOINT void draw_antmaze(ModeInfo * mi) glViewport((5*MI_WIDTH(mi))/8, MI_HEIGHT(mi)/8, (11*MI_WIDTH(mi))/32, 3*MI_HEIGHT(mi)/8); glMatrixMode(GL_PROJECTION); glLoadIdentity(); + device_rotate(mi); gluPerspective(45, 1/h, 1, 25.0); glMatrixMode(GL_MODELVIEW); @@ -1564,7 +1621,10 @@ ENTRYPOINT void draw_antmaze(ModeInfo * mi) /* glPopMatrix(); */ /* glPopMatrix(); */ - if (MI_IS_FPS(mi)) do_fps (mi); + if (MI_IS_FPS(mi)) { + glViewport(0, 0, MI_WIDTH(mi), MI_HEIGHT(mi)); + do_fps (mi); + } glFlush(); glXSwapBuffers(display, window); diff --git a/hacks/glx/antspotlight.c b/hacks/glx/antspotlight.c index 30f2404d..cec2676d 100644 --- a/hacks/glx/antspotlight.c +++ b/hacks/glx/antspotlight.c @@ -25,6 +25,20 @@ #include "xlock.h" #endif +#ifdef HAVE_COCOA +# include "jwxyz.h" +#else +# include +# include +# include +#endif + +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + +#include "sphere.h" +#include "tube.h" #include "rotator.h" #include "gltrackball.h" @@ -243,6 +257,7 @@ static Bool draw_ant(ModeInfo *mi, antspotlightstruct *mp, /* filled sphere */ static Bool mySphere(float radius) { +#if 0 GLUquadricObj *quadObj; if((quadObj = gluNewQuadric()) == 0) @@ -251,13 +266,20 @@ static Bool mySphere(float radius) gluQuadricDrawStyle(quadObj, (GLenum) GLU_FILL); gluSphere(quadObj, radius, 16, 16); gluDeleteQuadric(quadObj); - +#else + glPushMatrix(); + glScalef (radius, radius, radius); + glRotatef (90, 1, 0, 0); + unit_sphere (16, 16, False); + glPopMatrix(); +#endif return True; } /* silhouette sphere */ static Bool mySphere2(float radius) { +#if 0 GLUquadricObj *quadObj; if((quadObj = gluNewQuadric()) == 0) @@ -265,7 +287,14 @@ static Bool mySphere2(float radius) gluQuadricDrawStyle(quadObj, (GLenum) GLU_LINE); gluSphere(quadObj, radius, 16, 8); gluDeleteQuadric(quadObj); - +#else + /* #### no GLU_LINE */ + glPushMatrix(); + glScalef (radius, radius, radius); + glRotatef (90, 1, 0, 0); + unit_sphere (16, 16, True); + glPopMatrix(); +#endif return True; } @@ -751,6 +780,7 @@ ENTRYPOINT void draw_antspotlight(ModeInfo * mi) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix(); + glRotatef(current_device_rotation(), 0, 0, 1); /* position camera */ diff --git a/hacks/glx/atlantis.c b/hacks/glx/atlantis.c index ba648877..85bd4a59 100644 --- a/hacks/glx/atlantis.c +++ b/hacks/glx/atlantis.c @@ -297,8 +297,10 @@ Init(ModeInfo *mi) glTexGenfv(GL_S, GL_EYE_PLANE, s_plane); glTexGenfv(GL_T, GL_EYE_PLANE, t_plane); +# ifndef HAVE_JWZGLES glEnable(GL_TEXTURE_GEN_S); glEnable(GL_TEXTURE_GEN_T); +# endif glEnable(GL_TEXTURE_2D); glMatrixMode(GL_TEXTURE); @@ -340,8 +342,8 @@ clear_tank (atlantisstruct * ap) if (do_gradient && !ap->wire) { - GLfloat top[3] = { 0.00, 0.40, 0.70 }; - GLfloat bot[3] = { 0.00, 0.05, 0.18 }; + GLfloat top[4] = { 0.00, 0.40, 0.70, }; + GLfloat bot[4] = { 0.00, 0.05, 0.18, }; glMatrixMode(GL_PROJECTION); glPushMatrix(); @@ -351,26 +353,19 @@ clear_tank (atlantisstruct * ap) glPushMatrix(); { glLoadIdentity(); - - /* save GL_COLOR_MATERIAL, GL_COLOR_MATERIAL_FACE, etc. - This stalls the pipeline, so it would be better to do this - with explicit enable/disable calls, but I can't figure - out how to undo the glEnable() and glColor() calls below! - Simply calling glDisable(GL_COLOR_MATERIAL) is insufficient! - */ - glPushAttrib (GL_LIGHTING_BIT); - { - glEnable (GL_COLOR_MATERIAL); - - glShadeModel(GL_SMOOTH); - glBegin(GL_QUADS); - glColor3f (bot[0], bot[1], bot[2]); glVertex3f (-1, -1, 1); - glColor3f (bot[0], bot[1], bot[2]); glVertex3f ( 1, -1, 1); - glColor3f (top[0], top[1], top[2]); glVertex3f ( 1, 1, 1); - glColor3f (top[0], top[1], top[2]); glVertex3f (-1, 1, 1); - glEnd(); - } - glPopAttrib(); + glRotatef(current_device_rotation(), 0, 0, 1); + +# ifndef HAVE_JWZGLES + glShadeModel (GL_SMOOTH); +# endif + glDisable (GL_LIGHTING); + glBegin (GL_QUADS); + glColor3fv (bot); + glVertex3f (-1, -1, 1); glVertex3f ( 1, -1, 1); + glColor3fv (top); + glVertex3f ( 1, 1, 1); glVertex3f (-1, 1, 1); + glEnd(); + glEnable (GL_LIGHTING); } glPopMatrix(); } @@ -521,8 +516,11 @@ draw_atlantis(ModeInfo * mi) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glPushMatrix(); + glRotatef(current_device_rotation(), 0, 0, 1); AllDisplay(ap); Animate(ap); + glPopMatrix(); if (mi->fps_p) do_fps (mi); glXSwapBuffers(display, window); diff --git a/hacks/glx/atlantis.h b/hacks/glx/atlantis.h index 1aba8303..4177eeff 100644 --- a/hacks/glx/atlantis.h +++ b/hacks/glx/atlantis.h @@ -68,12 +68,14 @@ * OpenGL(TM) is a trademark of Silicon Graphics, Inc. */ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif /* HAVE_CONFIG_H */ + #ifdef STANDALONE # include # include "screenhackI.h" -# ifdef HAVE_COCOA -# include -# else +# ifndef HAVE_COCOA # include # include # endif @@ -81,6 +83,10 @@ # include "xlock.h" #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #define RAD 57.295 #define RRAD 0.01745 diff --git a/hacks/glx/b_lockglue.c b/hacks/glx/b_lockglue.c index 4d4f260b..f322be2c 100644 --- a/hacks/glx/b_lockglue.c +++ b/hacks/glx/b_lockglue.c @@ -197,7 +197,10 @@ draw_bubble3d(ModeInfo * mi) glXMakeCurrent(display, window, *(c->glx_context)); glb_config.polygon_count = 0; + glPushMatrix(); + glRotatef(current_device_rotation(), 0, 0, 1); do_display(c); + glPopMatrix(); mi->polygon_count = glb_config.polygon_count; if (mi->fps_p) do_fps (mi); diff --git a/hacks/glx/blocktube.c b/hacks/glx/blocktube.c index 486db6ff..69605e7e 100644 --- a/hacks/glx/blocktube.c +++ b/hacks/glx/blocktube.c @@ -133,8 +133,10 @@ static Bool LoadGLTextures(ModeInfo *mi) GL_RGBA, GL_UNSIGNED_INT_8_8_8_8_REV, lp->texti->data); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); +# ifndef HAVE_JWZGLES /* #### Sphere maps unimplemented */ glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP); glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP); +# endif } return status; } diff --git a/hacks/glx/boing.c b/hacks/glx/boing.c index 21b19580..97990721 100644 --- a/hacks/glx/boing.c +++ b/hacks/glx/boing.c @@ -378,7 +378,7 @@ draw_scanlines (ModeInfo *mi) int lh, ls; int y; glLoadIdentity(); - gluOrtho2D (0, w, 0, h); + glOrtho (0, w, 0, h, -1, 1); if (h > 500) lh = 4, ls = 4; else if (h > 300) lh = 2, ls = 1; @@ -630,6 +630,7 @@ draw_boing (ModeInfo *mi) glPushMatrix (); gltrackball_rotate (bp->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); glLightfv (GL_LIGHT0, GL_POSITION, bp->lightpos); diff --git a/hacks/glx/bouncingcow.c b/hacks/glx/bouncingcow.c index ec2a4b77..21ece3c7 100644 --- a/hacks/glx/bouncingcow.c +++ b/hacks/glx/bouncingcow.c @@ -16,9 +16,6 @@ "*showFPS: False \n" \ "*wireframe: False \n" \ -/* #define DEBUG */ - - # define refresh_cow 0 # define release_cow 0 #define DEF_SPEED "1.0" @@ -257,15 +254,7 @@ load_texture (ModeInfo *mi, const char *filename) glPixelStorei (GL_UNPACK_ALIGNMENT, 4); glPixelStorei (GL_UNPACK_ROW_LENGTH, image->width); - glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); - glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); - glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - - glEnable(GL_TEXTURE_GEN_S); - glEnable(GL_TEXTURE_GEN_T); - glEnable(GL_TEXTURE_2D); + return True; } @@ -276,6 +265,7 @@ init_cow (ModeInfo *mi) cow_configuration *bp; int wire = MI_IS_WIREFRAME(mi); int i; + Bool tex_p = False; if (!bps) { bps = (cow_configuration *) @@ -323,6 +313,10 @@ init_cow (ModeInfo *mi) for (i = 0; i < countof(all_objs); i++) bp->dlists[i] = glGenLists (1); + tex_p = load_texture (mi, do_texture); + if (tex_p) + glBindTexture (GL_TEXTURE_2D, bp->texture); + for (i = 0; i < countof(all_objs); i++) { GLfloat black[4] = {0, 0, 0, 1}; @@ -330,36 +324,37 @@ init_cow (ModeInfo *mi) glNewList (bp->dlists[i], GL_COMPILE); - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - glMatrixMode(GL_TEXTURE); - glPushMatrix(); - glMatrixMode(GL_MODELVIEW); - - glBindTexture (GL_TEXTURE_2D, 0); + glDisable (GL_TEXTURE_2D); if (i == HIDE) { GLfloat color[4] = {0.63, 0.43, 0.36, 1.00}; - - if (load_texture (mi, do_texture)) + if (tex_p) { - glBindTexture (GL_TEXTURE_2D, bp->texture); - glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); - glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - - /* approximately line it up with ../images/earth.xpm */ - glMatrixMode(GL_TEXTURE); - glTranslatef(0.45, 0.58, 0); - glScalef(0.08, 0.16, 1); - glRotatef(-5, 0, 0, 1); - glMatrixMode(GL_MODELVIEW); - /* if we have a texture, make the base color be white. */ color[0] = color[1] = color[2] = 1.0; - } + glEnable (GL_TEXTURE_2D); + + glTexGeni (GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); + glTexGeni (GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); + glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glEnable(GL_TEXTURE_GEN_S); + glEnable(GL_TEXTURE_GEN_T); + glEnable(GL_TEXTURE_2D); + + /* approximately line it up with ../images/earth.xpm */ + glMatrixMode (GL_TEXTURE); + glLoadIdentity(); + glTranslatef (0.45, 0.58, 0); + glScalef (0.08, 0.16, 1); + glRotatef (-5, 0, 0, 1); + glMatrixMode (GL_MODELVIEW); + } glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color); glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, black); glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, 128); @@ -408,11 +403,6 @@ init_cow (ModeInfo *mi) renderList (gll, wire); - glMatrixMode(GL_TEXTURE); - glPopMatrix(); - glMatrixMode(GL_MODELVIEW); - glPopMatrix(); - glEndList (); } @@ -511,6 +501,7 @@ draw_cow (ModeInfo *mi) glPushMatrix (); gltrackball_rotate (bp->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); glScalef (0.5, 0.5, 0.5); diff --git a/hacks/glx/boxed.c b/hacks/glx/boxed.c index f1a409a1..6a2d79a6 100644 --- a/hacks/glx/boxed.c +++ b/hacks/glx/boxed.c @@ -982,6 +982,8 @@ static void draw(ModeInfo * mi) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); + glRotatef(current_device_rotation(), 0, 0, 1); + gp->tic += 0.01f; gp->camtic += 0.01f + 0.01f * sin(gp->tic * speed); @@ -1192,6 +1194,7 @@ pinit(ModeInfo * mi) glPixelStorei(GL_UNPACK_ALIGNMENT, 1); clear_gl_error(); +#if 0 i = gluBuild2DMipmaps(GL_TEXTURE_2D, 3, 256, 256, GL_RGB, GL_UNSIGNED_BYTE, gp->tex1); if (i) @@ -1202,6 +1205,12 @@ pinit(ModeInfo * mi) exit (1); } check_gl_error("mipmapping"); +#else + glTexImage2D (GL_TEXTURE_2D, 0, GL_RGB, 256, 256, 0, + GL_RGB, GL_UNSIGNED_BYTE, + gp->tex1); + check_gl_error("texture"); +#endif glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); diff --git a/hacks/glx/bubble3d.c b/hacks/glx/bubble3d.c index 9f2da157..9cd2afc4 100644 --- a/hacks/glx/bubble3d.c +++ b/hacks/glx/bubble3d.c @@ -252,6 +252,7 @@ glb_bubble_draw(glb_data *d, void *bb) glScalef(b->scale, b->scale, b->scale); /* Draw the bubble. */ + glFrontFace(GL_CW); glBegin(GL_TRIANGLES); glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, b->color); diff --git a/hacks/glx/bubble3d.h b/hacks/glx/bubble3d.h index 3cdcef32..70919c34 100644 --- a/hacks/glx/bubble3d.h +++ b/hacks/glx/bubble3d.h @@ -3,6 +3,10 @@ #ifndef __bubbles3d_h__ #define __bubbles3d_h__ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif /* HAVE_CONFIG_H */ + #ifdef STANDALONE # include # include "xlockmoreI.h" /* from the xscreensaver distribution */ @@ -10,14 +14,15 @@ # include "xlock.h" /* from the xlockmore distribution */ #endif /* !STANDALONE */ -#ifdef HAVE_COCOA -# include -# include -#else +#ifndef HAVE_COCOA # include # include #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + /* Static configuration. */ #define GLB_SLOW_GL 0 /* Set this if you have a slow GL * implementation. If you have an accelerated diff --git a/hacks/glx/buildlwo.h b/hacks/glx/buildlwo.h index 89c93e34..4b900818 100644 --- a/hacks/glx/buildlwo.h +++ b/hacks/glx/buildlwo.h @@ -9,14 +9,20 @@ #ifndef __BUILD_LWO_H__ #define __BUILD_LWO_H__ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif /* HAVE_CONFIG_H */ + #ifdef STANDALONE -# ifdef HAVE_COCOA -# include -# else +# ifndef HAVE_COCOA # include # endif #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + struct lwo { int num_pnts; const GLfloat *pnts; diff --git a/hacks/glx/cage.c b/hacks/glx/cage.c index 1c292d47..bcd382b6 100644 --- a/hacks/glx/cage.c +++ b/hacks/glx/cage.c @@ -91,7 +91,12 @@ static const char sccsid[] = "@(#)cage.c 5.01 2001/03/01 xlockmore"; #ifdef MODE_cage +#if 0 #include "e_textures.h" +#else +#include "xpm-ximage.h" +#include "../images/wood.xpm" +#endif ENTRYPOINT ModeSpecOpt cage_opts = {0, (XrmOptionDescRec *) NULL, 0, (argtype *) NULL, (OptionStruct *) NULL}; @@ -304,9 +309,7 @@ reshape(ModeInfo * mi, int width, int height) static void pinit(ModeInfo *mi) { - int status; - - glClearDepth(1.0); + /* int status; */ if (MI_IS_WIREFRAME(mi)) return; @@ -335,6 +338,7 @@ pinit(ModeInfo *mi) glPixelStorei(GL_UNPACK_ALIGNMENT, 1); +#if 0 clear_gl_error(); if (MI_IS_MONO(mi)) status = 0; @@ -350,6 +354,22 @@ pinit(ModeInfo *mi) exit (1); } check_gl_error("mipmapping"); +#else + { + XImage *img = xpm_to_ximage (mi->dpy, + mi->xgwa.visual, + mi->xgwa.colormap, + wood_texture); + glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, + img->width, img->height, 0, + GL_RGBA, + /* GL_UNSIGNED_BYTE, */ + GL_UNSIGNED_INT_8_8_8_8_REV, + img->data); + check_gl_error("texture"); + XDestroyImage (img); + } +#endif glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); @@ -424,7 +444,6 @@ draw_cage (ModeInfo * mi) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix(); - glTranslatef(0.0, 0.0, -10.0); if (!MI_IS_ICONIC(mi)) { diff --git a/hacks/glx/carousel.c b/hacks/glx/carousel.c index 25fb5292..2a2a0cee 100644 --- a/hacks/glx/carousel.c +++ b/hacks/glx/carousel.c @@ -1,4 +1,4 @@ -/* carousel, Copyright (c) 2005-2011 Jamie Zawinski +/* carousel, Copyright (c) 2005-2012 Jamie Zawinski * Loads a sequence of images and rotates them around. * * Permission to use, copy, modify, distribute, and sell this software and its @@ -516,11 +516,12 @@ loading_msg (ModeInfo *mi, int n) glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); + glRotatef(current_device_rotation(), 0, 0, 1); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); - gluOrtho2D(0, MI_WIDTH(mi), 0, MI_HEIGHT(mi)); + glOrtho(0, MI_WIDTH(mi), 0, MI_HEIGHT(mi), -1, 1); glTranslatef ((MI_WIDTH(mi) - ss->loading_sw) / 2, (MI_HEIGHT(mi) - ss->loading_sh) / 2, @@ -867,6 +868,7 @@ draw_carousel (ModeInfo *mi) { double x, y, z; gltrackball_rotate (ss->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); /* Tilt the tube up or down by up to 30 degrees */ get_position (ss->rot, &x, &y, &z, !ss->button_down_p); diff --git a/hacks/glx/chessmodels.c b/hacks/glx/chessmodels.c index f69d971c..d47895aa 100644 --- a/hacks/glx/chessmodels.c +++ b/hacks/glx/chessmodels.c @@ -26,16 +26,22 @@ /* chessmodels.c: Contains the code for piece model creation */ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif /* HAVE_CONFIG_H */ + #include #include -#ifdef HAVE_COCOA -# include -#else +#ifndef HAVE_COCOA # include # include #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #include "chessmodels.h" /* End of Data */ @@ -1680,16 +1686,24 @@ static int draw_piece( unsigned short *piece_data) } void gen_model_lists( int classic, int poly_count[PIECES]) { + + Bool queen_only_p = classic < 0; + if (classic < 0) classic = 0; + piece_size = classic ? 0.095 / 100 : 0.3 / 8192; - glNewList(KING, GL_COMPILE); - poly_count[KING] = draw_piece( classic ? classic_king_data : king_data); - glEndList(); + glGenLists (20); /* this is horrible! List numbers are hardcoded! */ glNewList(QUEEN, GL_COMPILE); poly_count[QUEEN] = draw_piece( classic ? classic_queen_data : queen_data); glEndList(); + if (queen_only_p) return; + + glNewList(KING, GL_COMPILE); + poly_count[KING] = draw_piece( classic ? classic_king_data : king_data); + glEndList(); + glNewList(BISHOP, GL_COMPILE); poly_count[BISHOP] = draw_piece( classic ? classic_bishop_data : bishop_data); glEndList(); diff --git a/hacks/glx/circuit.c b/hacks/glx/circuit.c index da3be770..b59b470b 100644 --- a/hacks/glx/circuit.c +++ b/hacks/glx/circuit.c @@ -2018,6 +2018,7 @@ static void display(ModeInfo *mi) glEnable(GL_LIGHTING); glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glLoadIdentity(); + glRotatef(current_device_rotation(), 0, 0, 1); gluLookAt(ci->viewer[0], ci->viewer[1], ci->viewer[2], 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); @@ -2069,11 +2070,11 @@ static TexNum * fonttexturealloc (ModeInfo *mi, const char *str, float *fg, float *bg) { Circuit *ci = &circuit[MI_SCREEN(mi)]; - int i, status; + int i; XImage *ximage; char *c; TexNum *t; - + GLuint mintex; if (ci->font_init == 0) { for (i = 0 ; i < 50 ; i++) { ci->font_strings[i] = NULL; @@ -2101,7 +2102,8 @@ static TexNum * fonttexturealloc (ModeInfo *mi, mi->xgwa.visual, font, str, fg, bg); - for (i = 0 ; ci->font_strings[i] != NULL ; i++) { /* set i to the next unused value */ + glGenTextures (1, &mintex); + for (i = mintex ; ci->font_strings[i] != NULL ; i++) { /* set i to the next unused value */ if (i > 49) { fprintf(stderr, "Texture cache full!\n"); free(ximage->data); @@ -2117,17 +2119,24 @@ static TexNum * fonttexturealloc (ModeInfo *mi, glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); clear_gl_error(); - status = gluBuild2DMipmaps(GL_TEXTURE_2D, 4, ximage->width, ximage->height, - GL_RGBA, GL_UNSIGNED_BYTE, ximage->data); - if (status) +#if 0 + i = gluBuild2DMipmaps(GL_TEXTURE_2D, 4, + ximage->width, ximage->height, + GL_RGBA, GL_UNSIGNED_BYTE, ximage->data); + if (i) { - const char *s = (char *) gluErrorString (status); + const char *s = (char *) gluErrorString (i); fprintf (stderr, "%s: error mipmapping %dx%d texture: %s\n", progname, ximage->width, ximage->height, (s ? s : "(unknown)")); - exit (1); + abort(); } check_gl_error("mipmapping"); +#else + glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, ximage->width, ximage->height, 0, + GL_RGBA, GL_UNSIGNED_BYTE, ximage->data); + check_gl_error("texture"); +#endif t = malloc(sizeof(TexNum)); t->w = ximage->width; diff --git a/hacks/glx/companion.c b/hacks/glx/companion.c index e6e14733..3dc86d83 100644 --- a/hacks/glx/companion.c +++ b/hacks/glx/companion.c @@ -576,6 +576,7 @@ draw_cube (ModeInfo *mi) glPushMatrix (); gltrackball_rotate (bp->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); glScalef (2, 2, 2); diff --git a/hacks/glx/crackberg.c b/hacks/glx/crackberg.c index 376a41ac..c4e925c7 100644 --- a/hacks/glx/crackberg.c +++ b/hacks/glx/crackberg.c @@ -1246,13 +1246,17 @@ ENTRYPOINT void reshape_crackberg (ModeInfo *mi, int w, int h) ENTRYPOINT Bool crackberg_handle_event (ModeInfo *mi, XEvent *ev) { cberg_state *cberg = &cbergs[MI_SCREEN(mi)]; + KeySym keysym = 0; + char c = 0; + if (ev->xany.type == KeyPress || ev->xany.type == KeyRelease) + XLookupString (&ev->xkey, &c, 1, &keysym, 0); if (ev->xany.type == KeyPress) { - switch (XKeycodeToKeysym(mi->dpy, ev->xkey.keycode, 0)) { -# ifndef HAVE_COCOA + switch (keysym) { case XK_Left: cberg->motion_state |= MOTION_LROT; break; case XK_Right: cberg->motion_state |= MOTION_RROT; break; -# endif + case XK_Down: cberg->motion_state |= MOTION_BACK; break; + case XK_Up: cberg->motion_state |= MOTION_FORW; break; case '1': cberg->motion_state |= MOTION_DEC; break; case '2': cberg->motion_state |= MOTION_INC; break; case 'a': cberg->motion_state |= MOTION_LEFT; break; @@ -1276,11 +1280,11 @@ ENTRYPOINT Bool crackberg_handle_event (ModeInfo *mi, XEvent *ev) } #endif - switch (XKeycodeToKeysym(mi->dpy, ev->xkey.keycode, 0)) { -# ifndef HAVE_COCOA + switch (keysym) { case XK_Left: cberg->motion_state &= ~MOTION_LROT; break; case XK_Right: cberg->motion_state &= ~MOTION_RROT; break; -# endif + case XK_Down: cberg->motion_state &= ~MOTION_BACK; break; + case XK_Up: cberg->motion_state &= ~MOTION_FORW; break; case '1': cberg->motion_state &= ~MOTION_DEC; break; case '2': cberg->motion_state &= ~MOTION_INC; break; case 'a': cberg->motion_state &= ~MOTION_LEFT; break; @@ -1373,6 +1377,7 @@ ENTRYPOINT void draw_crackberg (ModeInfo *mi) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); + glRotatef(current_device_rotation(), 0, 0, 1); gluLookAt(0,0,0, 1,0,0, 0,0,1); glLightfv(GL_LIGHT0, GL_POSITION, lpos); /*glRotated(cberg->roll, 1,0,0); / * XXX blah broken and unused for now..* / diff --git a/hacks/glx/cubenetic.c b/hacks/glx/cubenetic.c index c7c509aa..5e8c3a04 100644 --- a/hacks/glx/cubenetic.c +++ b/hacks/glx/cubenetic.c @@ -307,8 +307,6 @@ init_texture (ModeInfo *mi) glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexGeni (GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); - glTexGeni (GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); check_gl_error("texture initialization"); diff --git a/hacks/glx/cubestorm.c b/hacks/glx/cubestorm.c index f3a22e34..d7931112 100644 --- a/hacks/glx/cubestorm.c +++ b/hacks/glx/cubestorm.c @@ -252,6 +252,10 @@ init_cube (ModeInfo *mi) } } +# ifdef HAVE_JWZGLES + dbuf_p = True; +# endif + bp = &bps[MI_SCREEN(mi)]; bp->glx_context = init_GL(mi); diff --git a/hacks/glx/dangerball.c b/hacks/glx/dangerball.c index 2fe07223..621e70cd 100644 --- a/hacks/glx/dangerball.c +++ b/hacks/glx/dangerball.c @@ -39,6 +39,7 @@ #define SPHERE_SLICES 32 /* how densely to render spheres */ #define SPHERE_STACKS 16 + typedef struct { GLXContext *glx_context; rotator *rot; diff --git a/hacks/glx/dnalogo.c b/hacks/glx/dnalogo.c index 093180dd..6d04233e 100644 --- a/hacks/glx/dnalogo.c +++ b/hacks/glx/dnalogo.c @@ -2150,6 +2150,8 @@ draw_logo (ModeInfo *mi) mi->polygon_count = 0; glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(dc->glx_context)); + glRotatef(current_device_rotation(), 0, 0, 1); + if (!wire && dc->wire_overlay == 0 && (random() % (int) (PROBABILITY_SCALE / 0.2)) == 0) diff --git a/hacks/glx/dropshadow.c b/hacks/glx/dropshadow.c index b7561ffe..0a5855cc 100644 --- a/hacks/glx/dropshadow.c +++ b/hacks/glx/dropshadow.c @@ -9,17 +9,13 @@ * implied warranty. */ -#include "dropshadow.h" +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif /* HAVE_CONFIG_H */ #include -#ifdef HAVE_COCOA -# include -# include -#else /* !HAVE_COCOA -- real Xlib */ -# include -# include -#endif /* !HAVE_COCOA */ +#include "dropshadow.h" /* (Alpha) texture data for drop shadow. */ @@ -102,12 +98,21 @@ init_drop_shadow(void) if (t <= 0) abort(); glBindTexture (GL_TEXTURE_2D, t); +#if 0 glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); gluBuild2DMipmaps (GL_TEXTURE_2D, GL_ALPHA, drop_shadow_width, drop_shadow_height, GL_ALPHA, GL_UNSIGNED_BYTE, drop_shadow_data); +#else + glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexImage2D (GL_TEXTURE_2D, 0, GL_ALPHA, + drop_shadow_width, drop_shadow_height, 0, + GL_ALPHA, GL_UNSIGNED_BYTE, + drop_shadow_data); +#endif return t; } @@ -123,8 +128,6 @@ draw_drop_shadow (GLuint t, const GLfloat bi = y, bo = bi - r; const GLfloat ti = y + h, to = ti + r; - glPushAttrib(GL_COLOR_BUFFER_BIT | GL_TEXTURE_BIT); - glEnable (GL_BLEND); glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); @@ -175,6 +178,4 @@ draw_drop_shadow (GLuint t, glTexCoord2f (0.0, 0.5); glVertex3f (lo, ti, z); glEnd(); - - glPopAttrib(); } diff --git a/hacks/glx/dropshadow.h b/hacks/glx/dropshadow.h index 6328d162..212a0c65 100644 --- a/hacks/glx/dropshadow.h +++ b/hacks/glx/dropshadow.h @@ -12,12 +12,23 @@ #ifndef __DROPSHADOW_H__ #define __DROPSHADOW_H__ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif /* HAVE_CONFIG_H */ + #ifdef HAVE_COCOA -# include -#else /* !HAVE_COCOA -- real Xlib */ +# ifndef HAVE_JWZGLES +# include +# endif +#else /* !HAVE_COCOA */ # include +# include #endif /* !HAVE_COCOA */ +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + /* Initialize drop shadow texture, return a texture ID. */ GLuint diff --git a/hacks/glx/endgame.c b/hacks/glx/endgame.c index d0ae2f39..eabc91c8 100644 --- a/hacks/glx/endgame.c +++ b/hacks/glx/endgame.c @@ -309,6 +309,8 @@ static void drawMovingPiece(ModeInfo *mi, Chesscreen *cs, int shadow) { int piece = cs->mpiece % PIECES; + if (piece == NONE) return; + glPushMatrix(); if(shadow) glColor4fv(MaterialShadow); @@ -632,11 +634,15 @@ static void display(ModeInfo *mi, Chesscreen *cs) glMatrixMode(GL_MODELVIEW); glLoadIdentity(); + glRotatef(current_device_rotation(), 0, 0, 1); /** setup perspectiv */ glTranslatef(0.0, 0.0, -1.5*BOARDSIZE); glRotatef(30.0, 1.0, 0.0, 0.0); + glRotatef(-current_device_rotation(), 0, 0, 1); gltrackball_rotate (cs->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); + glRotatef(cs->theta*100, 0.0, 1.0, 0.0); glTranslatef(-0.5*BOARDSIZE, 0.0, -0.5*BOARDSIZE); diff --git a/hacks/glx/engine.c b/hacks/glx/engine.c index 3310bfe8..d83c0e45 100644 --- a/hacks/glx/engine.c +++ b/hacks/glx/engine.c @@ -109,8 +109,12 @@ typedef struct { rotator *rot; trackball_state *trackball; Bool button_down_p; +# ifdef HAVE_GLBITMAP XFontStruct *xfont; GLuint font_dlist; +# else + texture_font_data *font_data; +# endif char *engine_name; int engineType; int movepaused; @@ -916,7 +920,12 @@ ENTRYPOINT void init_engine(ModeInfo *mi) e->shaft_polys = makeshaft(e); e->piston_polys = makepiston(e); + +#ifdef HAVE_GLBITMAP load_font (mi->dpy, "titleFont", &e->xfont, &e->font_dlist); +#else + e->font_data = load_texture_font (mi->dpy, "Font"); +#endif } ENTRYPOINT Bool @@ -975,7 +984,12 @@ ENTRYPOINT void draw_engine(ModeInfo *mi) mi->polygon_count = display(e); if (do_titles) - print_gl_string (mi->dpy, e->xfont, e->font_dlist, + print_gl_string (mi->dpy, +# ifdef HAVE_GLBITMAP + e->xfont, e->font_dlist, +# else + e->font_data, +# endif mi->xgwa.width, mi->xgwa.height, 10, mi->xgwa.height - 10, e->engine_name, False); diff --git a/hacks/glx/extrusion.h b/hacks/glx/extrusion.h index 8dcb062a..226a4428 100644 --- a/hacks/glx/extrusion.h +++ b/hacks/glx/extrusion.h @@ -22,8 +22,6 @@ #endif #ifdef HAVE_COCOA -# include -# include # include /* gle is included with GLUT on OSX */ #else /* !HAVE_COCOA */ # include @@ -35,6 +33,10 @@ # endif #endif /* !HAVE_COCOA */ +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + extern void InitStuff_helix2(void); extern void DrawStuff_helix2(void); extern void InitStuff_helix3(void); diff --git a/hacks/glx/flipflop.c b/hacks/glx/flipflop.c index 6f3743cc..0d534e53 100644 --- a/hacks/glx/flipflop.c +++ b/hacks/glx/flipflop.c @@ -265,10 +265,14 @@ display(Flipflopcreen *c) glLightfv(GL_LIGHT0, GL_AMBIENT, amb); + glRotatef(current_device_rotation(), 0, 0, 1); + /** setup perspectif */ glTranslatef(0.0, 0.0, -c->reldist*board_avg_size); glRotatef(22.5, 1.0, 0.0, 0.0); + glRotatef(-current_device_rotation(), 0, 0, 1); gltrackball_rotate (c->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); glRotatef(c->theta*100, 0.0, 1.0, 0.0); glTranslatef(-0.5*board_x_size, 0.0, -0.5*board_y_size); /* Center the board */ diff --git a/hacks/glx/flipscreen3d.c b/hacks/glx/flipscreen3d.c index 6d5844a9..7217de96 100644 --- a/hacks/glx/flipscreen3d.c +++ b/hacks/glx/flipscreen3d.c @@ -322,12 +322,21 @@ static void drawgrid(void) static void display(Screenflip *c, int wire) { int frozen; + GLfloat rot = current_device_rotation(); glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(viewer[0], viewer[1], viewer[2], 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); glPushMatrix(); + glRotatef(rot, 0, 0, 1); + if ((rot > 45 && rot < 135) || + (rot < -45 && rot > -135)) + { + GLfloat s = c->winw / (GLfloat) c->winh; + glScalef (s, 1/s, 1); + } + if (inposition(c)) { frozen = 0; glTranslatef(5 * sin(c->theta), 5 * sin(c->rho), 10 * cos(c->gamma) - 10); @@ -340,7 +349,9 @@ static void display(Screenflip *c, int wire) if (random() % 2) c->dgamma = 1/60 - (float)(random() % 100)/3000; } + glRotatef(-rot, 0, 0, 1); gltrackball_rotate (c->trackball); + glRotatef(rot, 0, 0, 1); if (rotate) glRotatef(c->rot, c->rx, c->ry, c->rz); /* update variables with each frame */ if(!c->button_down_p && !c->fadetime) { diff --git a/hacks/glx/fliptext.c b/hacks/glx/fliptext.c index b47bbb83..536a2240 100644 --- a/hacks/glx/fliptext.c +++ b/hacks/glx/fliptext.c @@ -14,22 +14,6 @@ # include "config.h" #endif /* HAVE_CONFIG_H */ -#include -#include - -#ifndef HAVE_COCOA -# include -#endif - -#ifdef HAVE_UNISTD_H -# include -#endif - -#ifdef HAVE_UNAME -# include -#endif /* HAVE_UNAME */ - - /* Utopia 800 needs 64 512x512 textures (4096x4096 bitmap). Utopia 720 needs 16 512x512 textures (2048x2048 bitmap). Utopia 480 needs 16 512x512 textures (2048x2048 bitmap). @@ -43,6 +27,7 @@ #define DEFAULTS "*delay: 10000 \n" \ "*showFPS: False \n" \ "*wireframe: False \n" \ + "*usePty: False \n" \ "*font: " DEF_FONT "\n" \ ".foreground: " DEF_COLOR "\n" \ @@ -56,6 +41,7 @@ #include "xlockmore.h" #include "texfont.h" +#include "textclient.h" #ifdef USE_GL /* whole file */ @@ -105,11 +91,7 @@ typedef struct { GLXContext *glx_context; texture_font_data *texfont; - - FILE *pipe; - XtInputId pipe_id; - XtIntervalId pipe_timer; - Time subproc_relaunch_delay; + text_data *tc; char *buf; int buf_size; @@ -233,106 +215,6 @@ strip (char *s, Bool leading, Bool trailing) } - -/* Subprocess. - (This bit mostly cribbed from phosphor.c) - */ - -static void drain_input (fliptext_configuration *sc); - -static void -subproc_cb (XtPointer closure, int *source, XtInputId *id) -{ - fliptext_configuration *sc = (fliptext_configuration *) closure; - drain_input (sc); -} - - -static void -launch_text_generator (fliptext_configuration *sc) -{ - XtAppContext app = XtDisplayToApplicationContext (sc->dpy); - char *oprogram = get_string_resource (sc->dpy, "program", "Program"); - char *program = (char *) malloc (strlen (oprogram) + 10); - strcpy (program, "( "); - strcat (program, oprogram); - strcat (program, " ) 2>&1"); - - if ((sc->pipe = popen (program, "r"))) - { - sc->pipe_id = - XtAppAddInput (app, fileno (sc->pipe), - (XtPointer) (XtInputReadMask | XtInputExceptMask), - subproc_cb, (XtPointer) sc); - } - else - { - perror (program); - } -} - - -static void -relaunch_generator_timer (XtPointer closure, XtIntervalId *id) -{ - fliptext_configuration *sc = (fliptext_configuration *) closure; - if (!sc->pipe_timer) abort(); - sc->pipe_timer = 0; - launch_text_generator (sc); -} - - -/* When the subprocess has generated some output, this reads as much as it - can into sc->buf at sc->buf_tail. - */ -static void -drain_input (fliptext_configuration *sc) -{ - XtAppContext app = XtDisplayToApplicationContext (sc->dpy); - if (sc->buf_tail < sc->buf_size - 2) - { - int target = sc->buf_size - sc->buf_tail - 2; - int n = (sc->pipe - ? read (fileno (sc->pipe), - (void *) (sc->buf + sc->buf_tail), - target) - : 0); - if (n > 0) - { - sc->buf_tail += n; - sc->buf[sc->buf_tail] = 0; - } - else - { - if (sc->pipe) - { - XtRemoveInput (sc->pipe_id); - sc->pipe_id = 0; - pclose (sc->pipe); - sc->pipe = 0; - } - - /* If the process didn't print a terminating newline, add one. */ - if (sc->buf_tail > 1 && - sc->buf[sc->buf_tail-1] != '\n') - { - sc->buf[sc->buf_tail++] = '\n'; - sc->buf[sc->buf_tail] = 0; - } - - /* Then add one more, just for giggles. */ - sc->buf[sc->buf_tail++] = '\n'; - sc->buf[sc->buf_tail] = 0; - - /* Set up a timer to re-launch the subproc in a bit. */ - sc->pipe_timer = XtAppAddTimeOut (app, sc->subproc_relaunch_delay, - relaunch_generator_timer, - (XtPointer) sc); - } - } -} - - static int char_width (fliptext_configuration *sc, char c) { @@ -354,8 +236,23 @@ get_one_line (fliptext_configuration *sc) int wrap_pix = sc->font_wrap_pixels; int col = 0; int col_pix = 0; - char *s = sc->buf; + int target = sc->buf_size - sc->buf_tail - 2; + + /* Fill as much as we can into sc->buf, but stop at newline. + */ + while (target > 0) + { + char c = textclient_getc (sc->tc); + if (c <= 0) + break; + sc->buf[sc->buf_tail++] = c; + sc->buf[sc->buf_tail] = 0; + target--; + if (c == '\r' || c == '\n') + break; + } + while (!result) { int cw; @@ -973,8 +870,6 @@ init_fliptext (ModeInfo *mi) sc->buf_size = target_columns * max_lines; sc->buf = (char *) calloc (1, sc->buf_size); - sc->subproc_relaunch_delay = 2 * 1000; /* 2 seconds */ - alignment_random_p = False; if (!alignment_str || !*alignment_str || !strcasecmp(alignment_str, "left")) @@ -995,7 +890,7 @@ init_fliptext (ModeInfo *mi) exit (1); } - launch_text_generator (sc); + sc->tc = textclient_open (sc->dpy); if (max_lines < 1) max_lines = 1; min_lines = max_lines * 0.66; @@ -1036,6 +931,7 @@ draw_fliptext (ModeInfo *mi) mi->polygon_count = 0; glPushMatrix(); + glRotatef(current_device_rotation(), 0, 0, 1); { GLfloat s = 3.0 / (sc->top_margin - sc->bottom_margin); glScalef(s, s, s); @@ -1096,12 +992,8 @@ release_fliptext (ModeInfo *mi) int screen; for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++) { fliptext_configuration *sc = &scs[screen]; - if (sc->pipe_id) - XtRemoveInput (sc->pipe_id); - if (sc->pipe) - pclose (sc->pipe); - if (sc->pipe_timer) - XtRemoveTimeOut (sc->pipe_timer); + if (sc->tc) + textclient_close (sc->tc); /* #### there's more to free here */ } diff --git a/hacks/glx/flurry.c b/hacks/glx/flurry.c index 08305b0a..346c1151 100644 --- a/hacks/glx/flurry.c +++ b/hacks/glx/flurry.c @@ -199,7 +199,7 @@ void GLSetupRC(global_info_t *global) glViewport(0,0,(int) global->sys_glWidth,(int) global->sys_glHeight); glMatrixMode(GL_PROJECTION); glLoadIdentity(); - gluOrtho2D(0,global->sys_glWidth,0,global->sys_glHeight); + glOrtho(0,global->sys_glWidth,0,global->sys_glHeight,-1,1); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); @@ -325,7 +325,7 @@ ENTRYPOINT void reshape_flurry(ModeInfo *mi, int width, int height) glViewport(0.0, 0.0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); - gluOrtho2D(0, width, 0, height); + glOrtho(0, width, 0, height,-1,1); glMatrixMode(GL_MODELVIEW); glClear(GL_COLOR_BUFFER_BIT); glFlush(); diff --git a/hacks/glx/flurry.h b/hacks/glx/flurry.h index ba9cc921..a304ac6d 100644 --- a/hacks/glx/flurry.h +++ b/hacks/glx/flurry.h @@ -35,9 +35,20 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifndef __GLCODE__ #define __GLCODE__ -#include -#include -#include +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif /* HAVE_CONFIG_H */ + +#ifndef HAVE_COCOA +# include +# include +# include +#endif + +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #include #include diff --git a/hacks/glx/flyingtoasters.c b/hacks/glx/flyingtoasters.c index 9e1a482d..b9915f5a 100644 --- a/hacks/glx/flyingtoasters.c +++ b/hacks/glx/flyingtoasters.c @@ -362,8 +362,11 @@ load_textures (ModeInfo *mi) glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, xi->width, xi->height, 0, GL_RGBA, - /* GL_UNSIGNED_BYTE, */ +# ifndef USE_IPHONE GL_UNSIGNED_INT_8_8_8_8_REV, +# else + GL_UNSIGNED_BYTE, +# endif xi->data); check_gl_error("texture"); @@ -374,14 +377,19 @@ load_textures (ModeInfo *mi) glBindTexture (GL_TEXTURE_2D, bp->toast_texture); glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); +# ifndef HAVE_JWZGLES glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); +# endif glPixelStorei (GL_UNPACK_ALIGNMENT, 1); glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, xi->width, xi->height, 0, GL_RGBA, - /* GL_UNSIGNED_BYTE, */ +# ifndef USE_IPHONE GL_UNSIGNED_INT_8_8_8_8_REV, +# else + GL_UNSIGNED_BYTE, +# endif xi->data); check_gl_error("texture"); @@ -476,8 +484,10 @@ init_toasters (ModeInfo *mi) glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, shiny); if (do_texture) glBindTexture (GL_TEXTURE_2D, bp->chrome_texture); +# ifndef HAVE_JWZGLES glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP); glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP); +# endif } else if (i == TOAST || i == TOAST_BITTEN) { @@ -489,8 +499,10 @@ init_toasters (ModeInfo *mi) glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, shiny); if (do_texture) glBindTexture (GL_TEXTURE_2D, bp->toast_texture); +# ifndef HAVE_JWZGLES glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); +# endif glMatrixMode(GL_TEXTURE); glTranslatef(0.5, 0.5, 0); @@ -795,9 +807,12 @@ draw_toasters (ModeInfo *mi) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix (); + glRotatef(current_device_rotation(), 0, 0, 1); glRotatef(bp->view_x, 1, 0, 0); glRotatef(bp->view_y, 0, 1, 0); + glRotatef(-current_device_rotation(), 0, 0, 1); gltrackball_rotate (bp->user_trackball); + glRotatef(current_device_rotation(), 0, 0, 1); #if 0 diff --git a/hacks/glx/font-ximage.c b/hacks/glx/font-ximage.c index c7b0051d..25ceb422 100644 --- a/hacks/glx/font-ximage.c +++ b/hacks/glx/font-ximage.c @@ -20,13 +20,16 @@ #ifdef HAVE_COCOA # include "jwxyz.h" -# include #else /* !HAVE_COCOA */ # include # include # include /* only for GLfloat */ #endif /* !HAVE_COCOA */ +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + extern char *progname; #include "font-ximage.h" diff --git a/hacks/glx/fps-gl.c b/hacks/glx/fps-gl.c index 67031a6f..070ae6fb 100644 --- a/hacks/glx/fps-gl.c +++ b/hacks/glx/fps-gl.c @@ -1,4 +1,4 @@ -/* fps, Copyright (c) 2001-2011 Jamie Zawinski +/* fps, Copyright (c) 2001-2012 Jamie Zawinski * Draw a frames-per-second display (Xlib and OpenGL). * * Permission to use, copy, modify, distribute, and sell this software and its @@ -16,14 +16,15 @@ #ifdef HAVE_COCOA # include "jwxyz.h" -# include -# include -# include #else /* !HAVE_COCOA -- real Xlib */ # include # include #endif /* !HAVE_COCOA */ +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #include "xlockmoreI.h" #include "fpsI.h" #include "glxfonts.h" @@ -36,6 +37,8 @@ extern void check_gl_error (const char *type); static void xlockmore_gl_fps_init (fps_state *st) { +#ifdef HAVE_GLBITMAP + XFontStruct *f = st->font; int first = f->min_char_or_byte2; int last = f->max_char_or_byte2; @@ -47,6 +50,13 @@ xlockmore_gl_fps_init (fps_state *st) xscreensaver_glXUseXFont (st->dpy, f->fid, first, last-first+1, st->font_dlist + first); check_gl_error ("xscreensaver_glXUseXFont"); + +#else /* !HAVE_GLBITMAP */ + + clear_gl_error(); /* screw it */ + st->gl_fps_data = load_texture_font (st->dpy, "fpsFont"); + +#endif /* !HAVE_GLBITMAP */ } @@ -91,7 +101,12 @@ xlockmore_gl_draw_fps (ModeInfo *mi) y += lines*lh + st->font->descent; glColor3f (1, 1, 1); - print_gl_string (st->dpy, st->font, st->font_dlist, + print_gl_string (st->dpy, +# ifdef HAVE_GLBITMAP + st->font, st->font_dlist, +# else /* !HAVE_GLBITMAP */ + st->gl_fps_data, +# endif /* !HAVE_GLBITMAP */ xgwa.width, xgwa.height, st->x, y, st->string, st->clear_p); } diff --git a/hacks/glx/glblur.c b/hacks/glx/glblur.c index f7baea53..d65fdacf 100644 --- a/hacks/glx/glblur.c +++ b/hacks/glx/glblur.c @@ -239,11 +239,13 @@ init_texture (ModeInfo *mi) glGenTextures (1, &bp->texture); glBindTexture (GL_TEXTURE_2D, bp->texture); - glTexImage2D (GL_TEXTURE_2D, 0, 4, 128, 128, 0, + glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, + bp->tex_w, bp->tex_h, 0, GL_RGBA, /* GL_UNSIGNED_BYTE, */ GL_UNSIGNED_INT_8_8_8_8_REV, bp->tex_data); + check_gl_error ("texture generation"); glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); } @@ -262,7 +264,7 @@ render_scene_to_texture (ModeInfo *mi) glBindTexture (GL_TEXTURE_2D, bp->texture); glCopyTexImage2D (GL_TEXTURE_2D, 0, GL_LUMINANCE, 0, 0, bp->tex_w, bp->tex_h, 0); - check_gl_error ("texture"); + check_gl_error ("texture2D"); glViewport (0, 0, MI_WIDTH(mi), MI_HEIGHT(mi)); } @@ -281,9 +283,6 @@ overlay_blur_texture (ModeInfo *mi) GLfloat alpha_inc; /* transparency fade factor */ GLfloat alpha = 0.2; /* initial transparency */ - glDisable (GL_TEXTURE_GEN_S); - glDisable (GL_TEXTURE_GEN_T); - glEnable (GL_TEXTURE_2D); glDisable (GL_DEPTH_TEST); glBlendFunc (GL_SRC_ALPHA,GL_ONE); @@ -431,7 +430,7 @@ init_glblur (ModeInfo *mi) glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); - glMateriali(GL_FRONT, GL_SHININESS, shiny); + glMaterialf(GL_FRONT, GL_SHININESS, shiny); } { @@ -487,6 +486,7 @@ init_glblur (ModeInfo *mi) bp->scene_dlist2 = glGenLists (1); init_texture (mi); + generate_object (mi); } @@ -571,7 +571,6 @@ draw_glblur (ModeInfo *mi) glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, spec); glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color0); - glCallList (bp->obj_dlist0); glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color1); @@ -580,6 +579,7 @@ draw_glblur (ModeInfo *mi) glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color2); glCallList (bp->obj_dlist2); + glMatrixMode (GL_MODELVIEW); glPopMatrix (); } glEndList (); @@ -601,6 +601,7 @@ draw_glblur (ModeInfo *mi) glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color3); glCallList (bp->obj_dlist3); + glMatrixMode (GL_MODELVIEW); glPopMatrix (); } glEndList (); diff --git a/hacks/glx/glcells.c b/hacks/glx/glcells.c index 87c69974..0ec1af3f 100644 --- a/hacks/glx/glcells.c +++ b/hacks/glx/glcells.c @@ -58,7 +58,9 @@ #undef countof #define countof(x) (sizeof((x))/sizeof((*x))) -#define USE_VERTEX_ARRAY +#ifndef HAVE_JWZGLES /* glDrawElements unimplemented... */ +# define USE_VERTEX_ARRAY +#endif #define TEX_SIZE 64 @@ -242,7 +244,9 @@ static Object *create_sphere( State *st, int divisions ); static Object *clone_Object( Object * ); /* return 1 if cell is capable to divide */ static int can_divide( State *st, Cell *cell ); +#ifdef USE_VERTEX_ARRAY static VertexArray *array_from_ObjectSmooth( ObjectSmooth * ); +#endif static void create_nucleus_texture( State *st ); ENTRYPOINT ModeSpecOpt glcells_opts = { countof(opts), opts, countof(vars), vars, @@ -422,6 +426,7 @@ static Object *clone_Object( Object *obj ) return ret; } +#ifdef USE_VERTEX_ARRAY static VertexArray *array_from_ObjectSmooth( ObjectSmooth *obj ) { int i, j; @@ -449,6 +454,8 @@ static VertexArray *array_from_ObjectSmooth( ObjectSmooth *obj ) return array; } +#endif /* USE_VERTEX_ARRAY */ + /* create a smoothed version of the given Object by computing average normal vectors for the vertexes @@ -849,6 +856,8 @@ static int create_list( State *st, double fac ) ObjectSmooth *smooth; #ifdef USE_VERTEX_ARRAY VertexArray *vertex_array; +#else + int t, i; #endif int list = glGenLists(1); diff --git a/hacks/glx/glforestfire.c b/hacks/glx/glforestfire.c index 6b365ad1..da237573 100644 --- a/hacks/glx/glforestfire.c +++ b/hacks/glx/glforestfire.c @@ -853,23 +853,6 @@ static Bool Init(ModeInfo * mi) fs->eject_r, fs->ridtri); } - glShadeModel(GL_FLAT); - glEnable(GL_DEPTH_TEST); - - /* makes particles blend with background */ - if (!MI_IS_WIREFRAME(mi)||(!fs->np)) - { - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - } - - /* fog stuff */ - glEnable(GL_FOG); - glFogi(GL_FOG_MODE, GL_EXP); - glFogfv(GL_FOG_COLOR, fogcolor); - glFogf(GL_FOG_DENSITY, 0.03); - glHint(GL_FOG_HINT, GL_NICEST); - /* initialise particles and trees */ for (i = 0; i < fs->np; i++) { setnewpart(fs, &(fs->p[i])); @@ -1017,7 +1000,28 @@ ENTRYPOINT void draw_fire(ModeInfo * mi) return; glXMakeCurrent(display, window, *(fs->glx_context)); + + glShadeModel(GL_FLAT); + glEnable(GL_DEPTH_TEST); + + /* makes particles blend with background */ + if (!MI_IS_WIREFRAME(mi)||(!fs->np)) + { + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + } + + /* fog stuff */ + glEnable(GL_FOG); + glFogi(GL_FOG_MODE, GL_EXP); + glFogfv(GL_FOG_COLOR, fogcolor); + glFogf(GL_FOG_DENSITY, 0.03); + glHint(GL_FOG_HINT, GL_NICEST); + + glPushMatrix(); + glRotatef(current_device_rotation(), 0, 0, 1); DrawFire(mi); + glPopMatrix(); #ifndef STANDALONE Reshape(mi); /* xlock mode */ #else diff --git a/hacks/glx/glhanoi.c b/hacks/glx/glhanoi.c index d8d3d2a2..a853896e 100644 --- a/hacks/glx/glhanoi.c +++ b/hacks/glx/glhanoi.c @@ -1666,7 +1666,6 @@ static void initTowers(glhcfg *glhanoi) glPopMatrix(); } - glPopMatrix(); glEndList(); } @@ -1959,6 +1958,7 @@ ENTRYPOINT void draw_glhanoi(ModeInfo * mi) mi->polygon_count = 0; glLoadIdentity(); + glRotatef(current_device_rotation(), 0, 0, 1); update_glhanoi(glhanoi); updateView(glhanoi); diff --git a/hacks/glx/gllist.h b/hacks/glx/gllist.h index 077766f4..dacc89c4 100644 --- a/hacks/glx/gllist.h +++ b/hacks/glx/gllist.h @@ -1,14 +1,20 @@ #ifndef __GLLIST_H__ #define __GLLIST_H__ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif /* HAVE_CONFIG_H */ + #include -#ifdef HAVE_COCOA -# include -#else +#ifndef HAVE_COCOA # include #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + struct gllist{ GLenum format; GLenum primitive; diff --git a/hacks/glx/glmatrix.c b/hacks/glx/glmatrix.c index a5003185..1975182b 100644 --- a/hacks/glx/glmatrix.c +++ b/hacks/glx/glmatrix.c @@ -778,7 +778,8 @@ load_textures (ModeInfo *mi, Bool flip_p) glGenTextures (1, &mp->texture); glPixelStorei (GL_UNPACK_ALIGNMENT, 4); - glPixelStorei (GL_UNPACK_ROW_LENGTH, xi->width); + /* messes up -fps */ + /* glPixelStorei (GL_UNPACK_ROW_LENGTH, xi->width);*/ glBindTexture (GL_TEXTURE_2D, mp->texture); check_gl_error ("texture init"); glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, xi->width, xi->height, 0, GL_RGBA, @@ -879,18 +880,7 @@ init_matrix (ModeInfo *mi) glEnable(GL_NORMALIZE); if (do_texture) - { - load_textures (mi, flip_p); - glEnable(GL_TEXTURE_2D); - glEnable(GL_BLEND); - - /* Jeff Epler points out: - By using GL_ONE instead of GL_SRC_ONE_MINUS_ALPHA, glyphs are - added to each other, so that a bright glyph with a darker one - in front is a little brighter than the bright glyph alone. - */ - glBlendFunc (GL_SRC_ALPHA, GL_ONE); - } + load_textures (mi, flip_p); /* to scale coverage-percent to strips, this number looks about right... */ mp->nstrips = (int) (density * 2.2); @@ -1002,6 +992,20 @@ draw_matrix (ModeInfo *mi) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix (); + glRotatef(current_device_rotation(), 0, 0, 1); + + if (do_texture) + { + glEnable(GL_TEXTURE_2D); + glEnable(GL_BLEND); + + /* Jeff Epler points out: + By using GL_ONE instead of GL_SRC_ONE_MINUS_ALPHA, glyphs are + added to each other, so that a bright glyph with a darker one + in front is a little brighter than the bright glyph alone. + */ + glBlendFunc (GL_SRC_ALPHA, GL_ONE); + } if (do_rotate) { diff --git a/hacks/glx/glplanet.c b/hacks/glx/glplanet.c index 1a884bf3..21cf1f4d 100644 --- a/hacks/glx/glplanet.c +++ b/hacks/glx/glplanet.c @@ -62,6 +62,7 @@ #define DEF_ROTATE "True" #define DEF_ROLL "True" #define DEF_WANDER "True" +#define DEF_SPIN "0.03" #define DEF_TEXTURE "True" #define DEF_STARS "True" #define DEF_LIGHT "True" @@ -79,6 +80,7 @@ static int do_stars; static int do_light; static char *which_image; static int resolution; +static float star_spin; static XrmOptionDescRec opts[] = { {"-rotate", ".glplanet.rotate", XrmoptionNoArg, "true" }, @@ -91,6 +93,7 @@ static XrmOptionDescRec opts[] = { {"+texture", ".glplanet.texture", XrmoptionNoArg, "false" }, {"-stars", ".glplanet.stars", XrmoptionNoArg, "true" }, {"+stars", ".glplanet.stars", XrmoptionNoArg, "false" }, + {"-spin", ".glplanet.spin", XrmoptionSepArg, 0 }, {"-light", ".glplanet.light", XrmoptionNoArg, "true" }, {"+light", ".glplanet.light", XrmoptionNoArg, "false" }, {"-image", ".glplanet.image", XrmoptionSepArg, 0 }, @@ -106,6 +109,7 @@ static argtype vars[] = { {&do_light, "light", "Light", DEF_LIGHT, t_Bool}, {&which_image, "image", "Image", DEF_IMAGE, t_String}, {&resolution, "resolution","Resolution", DEF_RESOLUTION, t_Int}, + {&star_spin, "spin", "Float", DEF_SPIN, t_Float}, }; ENTRYPOINT ModeSpecOpt planet_opts = {countof(opts), opts, countof(vars), vars, NULL}; @@ -159,6 +163,7 @@ typedef struct { double z; rotator *rot; trackball_state *trackball; + double star_theta; Bool button_down_p; } planetstruct; @@ -252,106 +257,71 @@ setup_texture(ModeInfo * mi) static void init_stars (ModeInfo *mi) { + planetstruct *gp = &planets[MI_SCREEN(mi)]; int i, j; - GLfloat max_size = 3; - GLfloat inc = 0.5; - int steps = max_size / inc; int width = MI_WIDTH(mi); int height = MI_HEIGHT(mi); - - planetstruct *gp = &planets[MI_SCREEN(mi)]; - Bool wire = MI_IS_WIREFRAME(mi); - - if (!wire) - glEnable (GL_POINT_SMOOTH); + int size = (width > height ? width : height); + int nstars = size * size / 320; + int max_size = 3; + GLfloat inc = 0.5; + int steps = max_size / inc; gp->starlist = glGenLists(1); glNewList(gp->starlist, GL_COMPILE); - glScalef (1.0/width, 1.0/height, 1); + glEnable(GL_POINT_SMOOTH); for (j = 1; j <= steps; j++) { glPointSize(inc * j); - glBegin(GL_POINTS); - for (i = 0 ; i < NUM_STARS / steps; i++) + glBegin (GL_POINTS); + for (i = 0; i < nstars / steps; i++) { glColor3f (0.6 + frand(0.3), 0.6 + frand(0.3), 0.6 + frand(0.3)); - glVertex2f ((GLfloat) (random() % width), - (GLfloat) (random() % height)); + glVertex2f (2 * size * (0.5 - frand(1.0)), + 2 * size * (0.5 - frand(1.0))); } - glEnd(); + glEnd (); } - glEndList(); + glEndList (); check_gl_error("stars initialization"); } static void -draw_stars (ModeInfo * mi) +draw_stars (ModeInfo *mi) { - int width = MI_WIDTH(mi); - int height = MI_HEIGHT(mi); - planetstruct *gp = &planets[MI_SCREEN(mi)]; - /* Sadly, this causes a stall of the graphics pipeline (as would the - equivalent calls to glGet*.) But there's no way around this, short - of having each caller set up the specific display matrix we need - here, which would kind of defeat the purpose of centralizing this - code in one file. - */ - glPushAttrib(GL_TRANSFORM_BIT | /* for matrix contents */ - GL_ENABLE_BIT | /* for various glDisable calls */ - GL_CURRENT_BIT | /* for glColor3f() */ - GL_LIST_BIT); /* for glListBase() */ - { - check_gl_error ("glPushAttrib"); - - /* disable lighting and texturing when drawing stars! - (glPopAttrib() restores these.) - */ - glDisable(GL_TEXTURE_2D); - glDisable(GL_LIGHTING); - glDisable(GL_DEPTH_TEST); - - /* glPopAttrib() does not restore matrix changes, so we must - push/pop the matrix stacks to be non-intrusive there. - */ - glMatrixMode(GL_PROJECTION); - glPushMatrix(); - { - check_gl_error ("glPushMatrix"); - glLoadIdentity(); - - /* Each matrix mode has its own stack, so we need to push/pop - them separately. */ - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - { - check_gl_error ("glPushMatrix"); - glLoadIdentity(); + glDisable(GL_TEXTURE_2D); + glDisable(GL_LIGHTING); + glDisable(GL_DEPTH_TEST); - gluOrtho2D (0, width, 0, height); - check_gl_error ("gluOrtho2D"); + glMatrixMode (GL_PROJECTION); + glPushMatrix (); + { + glLoadIdentity (); - /* Draw the stars */ - glScalef (width, height, 1); - glCallList(gp->starlist); - check_gl_error ("drawing stars"); - } - glPopMatrix(); + glMatrixMode (GL_MODELVIEW); + glPushMatrix (); + { + glLoadIdentity (); + glOrtho (-0.5 * MI_WIDTH(mi), 0.5 * MI_WIDTH(mi), + -0.5 * MI_HEIGHT(mi), 0.5 * MI_HEIGHT(mi), + -100.0, 100.0); + glRotatef (gp->star_theta, 0.0, 0.0, 1.0); + glCallList (gp->starlist); } - glMatrixMode(GL_PROJECTION); - glPopMatrix(); - + glPopMatrix (); } - /* clean up after our state changes */ - glPopAttrib(); - check_gl_error ("glPopAttrib"); + glMatrixMode (GL_PROJECTION); + glPopMatrix (); + + glMatrixMode (GL_MODELVIEW); } @@ -392,14 +362,15 @@ init_sun (ModeInfo * mi) glLightfv (GL_LIGHT0, GL_DIFFUSE, ldif); glLightfv (GL_LIGHT0, GL_SPECULAR, spec); + check_gl_error("sun"); glMaterialfv (GL_FRONT, GL_AMBIENT, mamb); glMaterialfv (GL_FRONT, GL_DIFFUSE, mdif); glMaterialfv (GL_FRONT, GL_SPECULAR, mpec); glMaterialf (GL_FRONT, GL_SHININESS, shiny); - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); +/* glEnable(GL_BLEND);*/ +/* glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);*/ glShadeModel(GL_SMOOTH); check_gl_error("lighting"); @@ -531,7 +502,6 @@ init_planet (ModeInfo * mi) { do_texture = False; do_light = False; - glEnable (GL_LINE_SMOOTH); } if (do_texture) @@ -543,9 +513,8 @@ init_planet (ModeInfo * mi) if (do_stars) init_stars (mi); - glEnable(GL_DEPTH_TEST); - glEnable(GL_CULL_FACE); - glCullFace(GL_BACK); + if (random() & 1) + star_spin = -star_spin; /* construct the polygons of the planet */ @@ -555,9 +524,8 @@ init_planet (ModeInfo * mi) glPushMatrix (); glScalef (RADIUS, RADIUS, RADIUS); glRotatef (90, 1, 0, 0); - glFrontFace(GL_CW); + glFrontFace(GL_CCW); unit_sphere (resolution, resolution, wire); - mi->polygon_count += resolution*resolution; glPopMatrix (); glEndList(); @@ -566,8 +534,9 @@ init_planet (ModeInfo * mi) gp->latlonglist = glGenLists(1); glNewList (gp->latlonglist, GL_COMPILE); glPushMatrix (); - if (do_texture) glDisable (GL_TEXTURE_2D); - if (do_light) glDisable (GL_LIGHTING); + glDisable (GL_TEXTURE_2D); + glDisable (GL_LIGHTING); + glDisable (GL_LINE_SMOOTH); glColor3f (0.1, 0.3, 0.1); glScalef (RADIUS, RADIUS, RADIUS); glScalef (1.01, 1.01, 1.01); @@ -577,8 +546,6 @@ init_planet (ModeInfo * mi) glVertex3f(0, -2, 0); glVertex3f(0, 2, 0); glEnd(); - if (do_light) glEnable(GL_LIGHTING); - if (do_texture) glEnable(GL_TEXTURE_2D); glPopMatrix (); glEndList(); } @@ -599,8 +566,21 @@ draw_planet (ModeInfo * mi) glXMakeCurrent (display, window, *(gp->glx_context)); + mi->polygon_count = 0; + if (do_stars) - draw_stars (mi); + { + draw_stars (mi); + mi->polygon_count += NUM_STARS; + } + + if (do_light) glEnable(GL_LIGHTING); + if (do_texture) glEnable(GL_TEXTURE_2D); + + glEnable (GL_LINE_SMOOTH); + glEnable(GL_DEPTH_TEST); + glEnable(GL_CULL_FACE); + glCullFace(GL_BACK); glPushMatrix(); @@ -630,13 +610,20 @@ draw_planet (ModeInfo * mi) } glCallList (gp->platelist); + mi->polygon_count += resolution*resolution; + if (gp->button_down_p) - glCallList (gp->latlonglist); + { + glCallList (gp->latlonglist); + mi->polygon_count += 24*24; + } glPopMatrix(); if (mi->fps_p) do_fps (mi); glFinish(); glXSwapBuffers(display, window); + + gp->star_theta += star_spin; } diff --git a/hacks/glx/glschool.c b/hacks/glx/glschool.c index 8d52b668..1ef4c130 100644 --- a/hacks/glx/glschool.c +++ b/hacks/glx/glschool.c @@ -109,6 +109,7 @@ typedef struct { GLuint bboxList; GLuint goalList; GLuint fishList; + int fish_polys, box_polys; XColor *colors; School *school; GLXContext *context; @@ -127,7 +128,7 @@ reshape_glschool(ModeInfo *mi, int width, int height) if (sc->school != (School *)0) { setBBox(sc->school, -aspect*160, aspect*160, -130, 130, -450, -50.0); glDeleteLists(sc->bboxList, 1); - createBBoxList(&SCHOOL_BBOX(sc->school), &sc->bboxList, wire); + createBBoxList(&SCHOOL_BBOX(sc->school), &sc->bboxList, wire); } reshape(width, height); } @@ -173,7 +174,8 @@ init_glschool(ModeInfo *mi) initGLEnv(DoFog); initFishes(sc->school); - createDrawLists(&SCHOOL_BBOX(sc->school), &sc->bboxList, &sc->goalList, &sc->fishList, wire); + createDrawLists(&SCHOOL_BBOX(sc->school), &sc->bboxList, &sc->goalList, &sc->fishList, + &sc->fish_polys, &sc->box_polys, wire); computeAccelerations(sc->school); } @@ -191,6 +193,8 @@ draw_glschool(ModeInfo *mi) glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(sc->context)); + mi->polygon_count = 0; + if ((sc->goalCounter % GoalChgFreq) == 0) newGoal(sc->school); sc->goalCounter++; @@ -199,7 +203,9 @@ draw_glschool(ModeInfo *mi) sc->rotCounter = (sc->rotCounter%360); applyMovements(sc->school); - drawSchool(sc->colors, sc->school, sc->bboxList, sc->goalList, sc->fishList, sc->rotCounter, sc->drawGoal, sc->drawBBox); + drawSchool(sc->colors, sc->school, sc->bboxList, sc->goalList, sc->fishList, sc->rotCounter, sc->drawGoal, sc->drawBBox, + sc->fish_polys, sc->box_polys, + &mi->polygon_count); computeAccelerations(sc->school); if (mi->fps_p) diff --git a/hacks/glx/glschool_gl.c b/hacks/glx/glschool_gl.c index 3afe91bd..3775b109 100644 --- a/hacks/glx/glschool_gl.c +++ b/hacks/glx/glschool_gl.c @@ -1,4 +1,4 @@ -/* glschool_gl.c, Copyright (c) 2005-2006 David C. Lambert +/* glschool_gl.c, Copyright (c) 2005-2012 David C. Lambert * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -11,10 +11,9 @@ #include "sphere.h" #include "glschool_gl.h" +#include "sphere.h" #include "tube.h" -static GLUquadricObj *Quadratic; - void drawGoal(double *goal, GLuint goalList) { @@ -28,9 +27,10 @@ drawGoal(double *goal, GLuint goalList) glPopMatrix(); } -void +int drawBoundingBox(BBox *bbox, Bool wire) { + int polys = 0; double xMin = BBOX_XMIN(bbox); double yMin = BBOX_YMIN(bbox); double zMin = BBOX_ZMIN(bbox); @@ -49,6 +49,7 @@ drawBoundingBox(BBox *bbox, Bool wire) glVertex3f(xMax, yMin, zMin); glVertex3f(xMax, yMax, zMin); glVertex3f(xMin, yMax, zMin); + polys++; glEnd(); /* left */ @@ -58,6 +59,7 @@ drawBoundingBox(BBox *bbox, Bool wire) glVertex3f(xMin, yMin, zMin); glVertex3f(xMin, yMax, zMin); glVertex3f(xMin, yMax, zMax); + polys++; glEnd(); /* right */ @@ -67,6 +69,7 @@ drawBoundingBox(BBox *bbox, Bool wire) glVertex3f(xMax, yMin, zMax); glVertex3f(xMax, yMax, zMax); glVertex3f(xMax, yMax, zMin); + polys++; glEnd(); /* top */ @@ -76,6 +79,7 @@ drawBoundingBox(BBox *bbox, Bool wire) glVertex3f(xMin, yMax, zMax); glVertex3f(xMin, yMax, zMin); glVertex3f(xMax, yMax, zMin); + polys++; glEnd(); /* bottom */ @@ -85,71 +89,60 @@ drawBoundingBox(BBox *bbox, Bool wire) glVertex3f(xMax, yMin, zMax); glVertex3f(xMax, yMin, zMin); glVertex3f(xMin, yMin, zMin); + polys++; glEnd(); if (wire) glLineWidth(1.0); + + return polys; } -void +int createBBoxList(BBox *bbox, GLuint *bboxList, int wire) { + int polys = 0; *bboxList = glGenLists(1); glNewList(*bboxList, GL_COMPILE); - drawBoundingBox(bbox, wire); + polys = drawBoundingBox(bbox, wire); glEndList(); + return polys; } -#if 1 void -createDrawLists(BBox *bbox, GLuint *bboxList, GLuint *goalList, GLuint *fishList, int wire) +createDrawLists(BBox *bbox, GLuint *bboxList, GLuint *goalList, GLuint *fishList, int *fish_polys, int *box_polys, int wire) { - if (Quadratic == (GLUquadricObj *)0) return; - - gluQuadricDrawStyle(Quadratic, (wire ? GLU_LINE : GLU_FILL)); - createBBoxList(bbox, bboxList, wire); + int faces = 16; - *goalList = glGenLists(1); - glNewList(*goalList, GL_COMPILE); - gluSphere(Quadratic, 5.0, 10, 10); - glEndList(); + *box_polys = 0; + *fish_polys = 0; - *fishList = glGenLists(1); - glNewList(*fishList, GL_COMPILE); -#if 0 - gluSphere(Quadratic, 2.0, 10, 5); - gluCylinder(Quadratic, 2.0, 0.0, 10.0, 10, 5); -#else - gluSphere(Quadratic, 2.0, 3, 2); - gluCylinder(Quadratic, 2.0, 0.0, 10.0, 3, 2); -#endif - glEndList(); -} + *box_polys += createBBoxList(bbox, bboxList, wire); -#else -void -createDrawLists(BBox *bbox, GLuint *bboxList, GLuint *goalList, GLuint *fishList, Bool wire) -{ - createBBoxList(bbox, bboxList, wire); + *box_polys = 0; + *fish_polys = 0; *goalList = glGenLists(1); glNewList(*goalList, GL_COMPILE); - glScalef(10.0, 10.0, 10.0); - unit_sphere(10, 10, wire); + glScalef (5, 5, 5); + *box_polys += unit_sphere (10, 10, wire); glEndList(); *fishList = glGenLists(1); glNewList(*fishList, GL_COMPILE); - glScalef(2.0, 2.0, 2.0); - unit_sphere(10, 10, wire); - cone(0, 0, 0, - 0, 0, 5, - 1, 0, 10, - True, False, wire); + *fish_polys += cone (0, 0, 0, + 0, 0, 10, + 2, 0, + faces, True, (faces <= 3), /* cap */ + wire); + glTranslatef (0, 0, -0.3); + glScalef (2, 2, 2); + glRotatef (90, 1, 0, 0); + if (faces > 3) + *fish_polys += unit_sphere (faces, faces, wire); glEndList(); } -#endif void initLights(void) @@ -203,8 +196,6 @@ initGLEnv(Bool doFog) initLights(); if (doFog) initFog(); - - Quadratic = gluNewQuadric(); } void @@ -233,7 +224,8 @@ getColorVect(XColor *colors, int index, double *colorVect) void drawSchool(XColor *colors, School *s, GLuint bboxList, GLuint goalList, GLuint fishList, - int rotCounter, Bool drawGoal_p, Bool drawBBox_p) + int rotCounter, Bool drawGoal_p, Bool drawBBox_p, + int fish_polys, int box_polys, unsigned long *polys) { double xVect[3]; double colorVect[3]; @@ -253,6 +245,7 @@ drawSchool(XColor *colors, School *s, glDisable(GL_LIGHTING); glCallList(bboxList); glEnable(GL_LIGHTING); + *polys += box_polys; } if (drawGoal_p) drawGoal(SCHOOL_GOAL(s), goalList); @@ -272,6 +265,7 @@ drawSchool(XColor *colors, School *s, glTranslatef(FISH_X(f), FISH_Y(f), FISH_Z(f)); glRotatef(180.0+rotTheta, xVect[0], xVect[1], xVect[2]); glCallList(fishList); + *polys += fish_polys; } glPopMatrix(); } diff --git a/hacks/glx/glschool_gl.h b/hacks/glx/glschool_gl.h index 933ee152..7676a0fd 100644 --- a/hacks/glx/glschool_gl.h +++ b/hacks/glx/glschool_gl.h @@ -11,16 +11,25 @@ #ifndef __GLSCHOOL_GL_H__ #define __GLSCHOOL_GL_H__ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif /* HAVE_CONFIG_H */ + #ifdef HAVE_COCOA # include "jwxyz.h" -# include -# include +# ifndef HAVE_JWZGLES +# include +# endif #else # include # include # include #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #include "glschool_alg.h" extern void initFog(void); @@ -29,9 +38,10 @@ extern void initLights(void); extern void reshape(int, int); extern void drawGoal(double *, GLuint); extern void getColorVect(XColor *, int, double *); -extern void drawBoundingBox(BBox *, Bool); -extern void createBBoxList(BBox *, GLuint *, int); -extern void createDrawLists(BBox *, GLuint *, GLuint *, GLuint *, Bool); -extern void drawSchool(XColor *, School *, GLuint, GLuint, GLuint, int, Bool, Bool); +extern int drawBoundingBox(BBox *, Bool); +extern int createBBoxList(BBox *, GLuint *, int); +extern void createDrawLists(BBox *, GLuint *, GLuint *, GLuint *, int *, int *, Bool); +extern void drawSchool(XColor *, School *, GLuint, GLuint, GLuint, int, Bool, Bool, + int, int, unsigned long *); #endif /* __GLSCHOOL_GL_H__ */ diff --git a/hacks/glx/glslideshow.c b/hacks/glx/glslideshow.c index d939c97e..5b48a383 100644 --- a/hacks/glx/glslideshow.c +++ b/hacks/glx/glslideshow.c @@ -1,4 +1,4 @@ -/* glslideshow, Copyright (c) 2003-2011 Jamie Zawinski +/* glslideshow, Copyright (c) 2003-2012 Jamie Zawinski * Loads a sequence of images and smoothly pans around them; crossfades * when loading new images. * @@ -160,8 +160,12 @@ typedef struct { Bool checked_fps_p; /* Whether we have checked for a low frame rate. */ +# ifdef HAVE_GLBITMAP XFontStruct *xfont; /* for printing image file names */ GLuint font_dlist; +# else + texture_font_data *font_data; +# endif int sprite_id, image_id; /* debugging id counters */ @@ -812,12 +816,22 @@ draw_sprite (ModeInfo *mi, sprite *sp) int x = 10; int y = mi->xgwa.height - 10; glColor4f (0, 0, 0, sp->opacity); /* cheap-assed dropshadow */ - print_gl_string (mi->dpy, ss->xfont, ss->font_dlist, + print_gl_string (mi->dpy, +# ifdef HAVE_GLBITMAP + ss->xfont, ss->font_dlist, +# else + ss->font_data, +# endif mi->xgwa.width, mi->xgwa.height, x, y, img->title, False); x++; y++; glColor4f (1, 1, 1, sp->opacity); - print_gl_string (mi->dpy, ss->xfont, ss->font_dlist, + print_gl_string (mi->dpy, +# ifdef HAVE_GLBITMAP + ss->xfont, ss->font_dlist, +# else + ss->font_data, +# endif mi->xgwa.width, mi->xgwa.height, x, y, img->title, False); } @@ -873,6 +887,20 @@ draw_sprites (ModeInfo *mi) glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix(); + + { + GLfloat rot = current_device_rotation(); + glTranslatef (0.5, 0.5, 0); + glRotatef(rot, 0, 0, 1); + if ((rot > 45 && rot < 135) || + (rot < -45 && rot > -135)) + { + GLfloat s = MI_WIDTH(mi) / (GLfloat) MI_HEIGHT(mi); + glScalef (s, 1/s, 1); + } + glTranslatef (-0.5, -0.5, 0); + } + for (i = 0; i < ss->nsprites; i++) draw_sprite (mi, ss->sprites[i]); glPopMatrix(); @@ -1120,7 +1148,11 @@ init_slideshow (ModeInfo *mi) if (debug_p) glLineWidth (3); +#ifdef HAVE_GLBITMAP load_font (mi->dpy, "titleFont", &ss->xfont, &ss->font_dlist); +#else + ss->font_data = load_texture_font (mi->dpy, "Font"); +#endif if (debug_p) hack_resources(); diff --git a/hacks/glx/glsnake.c b/hacks/glx/glsnake.c index f2a0b5ff..4d13a932 100644 --- a/hacks/glx/glsnake.c +++ b/hacks/glx/glsnake.c @@ -23,18 +23,12 @@ # include "config.h" #endif -#ifdef STANDALONE -# include "xlockmoreI.h" -#endif - /* HAVE_GLUT defined if we're building a standalone glsnake, * and not defined if we're building as an xscreensaver hack */ #ifdef HAVE_GLUT # include #else # ifdef HAVE_COCOA -# include -# include # define HAVE_GETTIMEOFDAY # else # include @@ -42,6 +36,14 @@ # endif #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + +#ifdef STANDALONE +# include "xlockmoreI.h" +#endif + #include #include #include @@ -199,8 +201,12 @@ struct model_s { struct glsnake_cfg { #ifndef HAVE_GLUT GLXContext * glx_context; +# ifdef HAVE_GLBITMAP XFontStruct * font; GLuint font_list; +# else + texture_font_data *font_data; +# endif #else /* font list number */ int font; @@ -249,6 +255,7 @@ struct glsnake_cfg { /* the id of the display lists for drawing a node */ GLuint node_solid, node_wire; + int node_polys; /* is the window fullscreen? */ int fullscreen; @@ -1495,7 +1502,11 @@ ModeInfo * mi /* set up a font for the labels */ #ifndef HAVE_GLUT if (titles) +# ifdef HAVE_GLBITMAP load_font(mi->dpy, "labelfont", &bp->font, &bp->font_list); +# else + bp->font_data = load_texture_font (mi->dpy, "labelFont"); +# endif #endif /* build a solid display list */ @@ -1507,32 +1518,39 @@ ModeInfo * mi glVertex3fv(solid_prism_v[0]); glVertex3fv(solid_prism_v[2]); glVertex3fv(solid_prism_v[1]); + bp->node_polys++; glNormal3fv(solid_prism_n[1]); glVertex3fv(solid_prism_v[6]); glVertex3fv(solid_prism_v[7]); glVertex3fv(solid_prism_v[8]); + bp->node_polys++; glNormal3fv(solid_prism_n[2]); glVertex3fv(solid_prism_v[12]); glVertex3fv(solid_prism_v[13]); glVertex3fv(solid_prism_v[14]); + bp->node_polys++; glNormal3fv(solid_prism_n[3]); glVertex3fv(solid_prism_v[3]); glVertex3fv(solid_prism_v[4]); glVertex3fv(solid_prism_v[5]); + bp->node_polys++; glNormal3fv(solid_prism_n[4]); glVertex3fv(solid_prism_v[9]); glVertex3fv(solid_prism_v[11]); glVertex3fv(solid_prism_v[10]); + bp->node_polys++; glNormal3fv(solid_prism_n[5]); glVertex3fv(solid_prism_v[16]); glVertex3fv(solid_prism_v[15]); glVertex3fv(solid_prism_v[17]); + bp->node_polys++; glEnd(); + /* edges */ glBegin(GL_QUADS); glNormal3fv(solid_prism_n[6]); @@ -1540,54 +1558,63 @@ ModeInfo * mi glVertex3fv(solid_prism_v[12]); glVertex3fv(solid_prism_v[14]); glVertex3fv(solid_prism_v[2]); + bp->node_polys++; glNormal3fv(solid_prism_n[7]); glVertex3fv(solid_prism_v[0]); glVertex3fv(solid_prism_v[1]); glVertex3fv(solid_prism_v[7]); glVertex3fv(solid_prism_v[6]); + bp->node_polys++; glNormal3fv(solid_prism_n[8]); glVertex3fv(solid_prism_v[6]); glVertex3fv(solid_prism_v[8]); glVertex3fv(solid_prism_v[13]); glVertex3fv(solid_prism_v[12]); + bp->node_polys++; glNormal3fv(solid_prism_n[9]); glVertex3fv(solid_prism_v[3]); glVertex3fv(solid_prism_v[5]); glVertex3fv(solid_prism_v[17]); glVertex3fv(solid_prism_v[15]); + bp->node_polys++; glNormal3fv(solid_prism_n[10]); glVertex3fv(solid_prism_v[3]); glVertex3fv(solid_prism_v[9]); glVertex3fv(solid_prism_v[10]); glVertex3fv(solid_prism_v[4]); + bp->node_polys++; glNormal3fv(solid_prism_n[11]); glVertex3fv(solid_prism_v[15]); glVertex3fv(solid_prism_v[16]); glVertex3fv(solid_prism_v[11]); glVertex3fv(solid_prism_v[9]); + bp->node_polys++; glNormal3fv(solid_prism_n[12]); glVertex3fv(solid_prism_v[1]); glVertex3fv(solid_prism_v[2]); glVertex3fv(solid_prism_v[5]); glVertex3fv(solid_prism_v[4]); + bp->node_polys++; glNormal3fv(solid_prism_n[13]); glVertex3fv(solid_prism_v[8]); glVertex3fv(solid_prism_v[7]); glVertex3fv(solid_prism_v[10]); glVertex3fv(solid_prism_v[11]); + bp->node_polys++; glNormal3fv(solid_prism_n[14]); glVertex3fv(solid_prism_v[13]); glVertex3fv(solid_prism_v[16]); glVertex3fv(solid_prism_v[17]); glVertex3fv(solid_prism_v[14]); + bp->node_polys++; glEnd(); /* faces */ @@ -1596,11 +1623,13 @@ ModeInfo * mi glVertex3fv(solid_prism_v[0]); glVertex3fv(solid_prism_v[6]); glVertex3fv(solid_prism_v[12]); + bp->node_polys++; glNormal3fv(solid_prism_n[19]); glVertex3fv(solid_prism_v[3]); glVertex3fv(solid_prism_v[15]); glVertex3fv(solid_prism_v[9]); + bp->node_polys++; glEnd(); glBegin(GL_QUADS); @@ -1609,18 +1638,21 @@ ModeInfo * mi glVertex3fv(solid_prism_v[4]); glVertex3fv(solid_prism_v[10]); glVertex3fv(solid_prism_v[7]); + bp->node_polys++; glNormal3fv(solid_prism_n[17]); glVertex3fv(solid_prism_v[8]); glVertex3fv(solid_prism_v[11]); glVertex3fv(solid_prism_v[16]); glVertex3fv(solid_prism_v[13]); + bp->node_polys++; glNormal3fv(solid_prism_n[18]); glVertex3fv(solid_prism_v[2]); glVertex3fv(solid_prism_v[14]); glVertex3fv(solid_prism_v[17]); glVertex3fv(solid_prism_v[5]); + bp->node_polys++; glEnd(); glEndList(); @@ -1630,18 +1662,24 @@ ModeInfo * mi glBegin(GL_LINE_STRIP); glVertex3fv(wire_prism_v[0]); glVertex3fv(wire_prism_v[1]); + bp->node_polys++; glVertex3fv(wire_prism_v[2]); glVertex3fv(wire_prism_v[0]); + bp->node_polys++; glVertex3fv(wire_prism_v[3]); glVertex3fv(wire_prism_v[4]); + bp->node_polys++; glVertex3fv(wire_prism_v[5]); glVertex3fv(wire_prism_v[3]); + bp->node_polys++; glEnd(); glBegin(GL_LINES); glVertex3fv(wire_prism_v[1]); glVertex3fv(wire_prism_v[4]); + bp->node_polys++; glVertex3fv(wire_prism_v[2]); glVertex3fv(wire_prism_v[5]); + bp->node_polys++; glEnd(); glEndList(); @@ -1662,7 +1700,8 @@ static void draw_title( #endif /* draw some text */ - glPushAttrib((GLbitfield) GL_TRANSFORM_BIT | GL_ENABLE_BIT); + +/* glPushAttrib((GLbitfield) GL_TRANSFORM_BIT | GL_ENABLE_BIT);*/ glDisable(GL_LIGHTING); glDisable(GL_DEPTH_TEST); if (transparent) { @@ -1675,9 +1714,9 @@ static void draw_title( glPushMatrix(); glLoadIdentity(); #ifdef HAVE_GLUT - gluOrtho2D((GLdouble) 0., (GLdouble) bp->width, (GLdouble) 0., (GLdouble) bp->height); + glOrtho((GLdouble) 0., (GLdouble) bp->width, (GLdouble) 0., (GLdouble) bp->height, -1, 1); #else - gluOrtho2D((GLdouble) 0., (GLdouble) mi->xgwa.width, (GLdouble) 0., (GLdouble) mi->xgwa.height); + glOrtho((GLdouble) 0., (GLdouble) mi->xgwa.width, (GLdouble) 0., (GLdouble) mi->xgwa.height, -1, 1); #endif glColor4f(1.0, 1.0, 1.0, 1.0); @@ -1703,7 +1742,12 @@ static void draw_title( glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, s[i++]); } #else - print_gl_string(mi->dpy, bp->font, bp->font_list, + print_gl_string(mi->dpy, +# ifdef HAVE_GLBITMAP + bp->font, bp->font_list, +# else + bp->font_data, +# endif mi->xgwa.width, mi->xgwa.height, 10.0, (float) mi->xgwa.height - 10.0, s, False); @@ -1712,7 +1756,9 @@ static void draw_title( glPopMatrix(); glMatrixMode(GL_PROJECTION); glPopMatrix(); - glPopAttrib(); + + +/* glPopAttrib();*/ } /* apply the matrix to the origin and stick it in vec */ @@ -2142,6 +2188,8 @@ ENTRYPOINT void glsnake_display( glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context)); #endif + gl_init(mi); + /* clear the buffer */ glClear((GLbitfield) GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); @@ -2232,6 +2280,7 @@ ENTRYPOINT void glsnake_display( glRotatef(zspin, 0.0, 0.0, 1.0); /* now draw each node along the snake -- this is quite ugly :p */ + mi->polygon_count = 0; for (i = 0; i < NODE_COUNT; i++) { /* choose a colour for this node */ if ((i == bp->selected || i == bp->selected+1) && interactive) @@ -2249,6 +2298,7 @@ ENTRYPOINT void glsnake_display( glCallList(bp->node_wire); else glCallList(bp->node_solid); + mi->polygon_count += bp->node_polys; /* now work out where to draw the next one */ @@ -2273,6 +2323,7 @@ ENTRYPOINT void glsnake_display( #ifndef HAVE_GLUT glsnake_idle(bp); + if (mi->fps_p) do_fps(mi); #endif glFlush(); diff --git a/hacks/glx/gltext.c b/hacks/glx/gltext.c index 314a4ee6..070a4e33 100644 --- a/hacks/glx/gltext.c +++ b/hacks/glx/gltext.c @@ -12,9 +12,9 @@ #define DEFAULTS "*delay: 20000 \n" \ "*showFPS: False \n" \ "*wireframe: False \n" \ + "*usePty: False \n" \ # define refresh_text 0 -# define release_text 0 #define SMOOTH_TUBE /* whether to have smooth or faceted tubes */ #ifdef SMOOTH_TUBE @@ -32,6 +32,7 @@ #include "tube.h" #include "rotator.h" #include "gltrackball.h" +#include "textclient.h" #include @@ -69,6 +70,7 @@ typedef struct { int reload; time_t last_update; + text_data *tc; } text_configuration; @@ -180,41 +182,35 @@ parse_text (ModeInfo *mi) text_configuration *tp = &tps[MI_SCREEN(mi)]; if (tp->text) free (tp->text); + tp->text = 0; if (program_str && *program_str && !!strcmp(program_str, "(default)")) { - FILE *p; - int i; + int max_lines = 20; char buf[1024]; - sprintf (buf, "( %.900s ) 2>&1", program_str); - p = popen (buf, "r"); - if (! p) - sprintf (buf, "error running '%.900s'", program_str); - else + char *p = buf; + int lines = 0; + + if (! tp->tc) + tp->tc = textclient_open (mi->dpy); + + while (p < buf + sizeof(buf) - 1 && + lines < max_lines) { - char *out = buf; - char *end = out + sizeof(buf) - 1; - int n; - do { - n = fread (out, 1, end - out, p); - if (n > 0) - out += n; - *out = 0; - } while (n > 0); - fclose (p); + char c = textclient_getc (tp->tc); + if (c == '\n') + lines++; + if (c > 0) + *p++ = c; + else + break; } - - /* Truncate it to 10 lines */ - { - char *s = buf; - for (i = 0; i < 10; i++) - if (s && (s = strchr (s, '\n'))) - s++; - if (s) *s = 0; - } + *p = 0; + if (lines == 0 && buf[0]) + lines++; tp->text = strdup (buf); - tp->reload = 5; + tp->reload = 1; } else if (!text_fmt || !*text_fmt || !strcmp(text_fmt, "(default)")) { @@ -589,7 +585,6 @@ draw_text (ModeInfo *mi) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix (); - glScalef(1.1, 1.1, 1.1); { @@ -600,6 +595,7 @@ draw_text (ModeInfo *mi) (z - 0.5) * 8); gltrackball_rotate (tp->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); if (face_front_p) { @@ -641,6 +637,25 @@ draw_text (ModeInfo *mi) glXSwapBuffers(dpy, window); } +ENTRYPOINT void +release_text(ModeInfo * mi) +{ + if (tps) + { + int screen; + for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++) + { + text_configuration *tp = &tps[MI_SCREEN(mi)]; + if (tp->tc) + textclient_close (tp->tc); + } + } + (void) free(tps); + tps = 0; + FreeAllGL(mi); +} + + XSCREENSAVER_MODULE_2 ("GLText", gltext, text) #endif /* USE_GL */ diff --git a/hacks/glx/gltrackball.c b/hacks/glx/gltrackball.c index d02e316a..c0ccaa13 100644 --- a/hacks/glx/gltrackball.c +++ b/hacks/glx/gltrackball.c @@ -1,4 +1,4 @@ -/* gltrackball, Copyright (c) 2002-2008 Jamie Zawinski +/* gltrackball, Copyright (c) 2002-2012 Jamie Zawinski * GL-flavored wrapper for trackball.c * * Permission to use, copy, modify, distribute, and sell this software and its @@ -18,12 +18,14 @@ # include "config.h" #endif -#ifdef HAVE_COCOA -# include -#else +#ifndef HAVE_COCOA # include #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #include "trackball.h" #include "gltrackball.h" diff --git a/hacks/glx/glut_roman.h b/hacks/glx/glut_roman.h index e110f341..93f95328 100644 --- a/hacks/glx/glut_roman.h +++ b/hacks/glx/glut_roman.h @@ -2450,5 +2450,6 @@ static const StrokeCharRec chars[] = { { 2, char127, 33.3333, 66.6667 }, }; +static StrokeFontRec glutStrokeRoman = { "Roman", 128, chars, 119.048, -33.3333 }; diff --git a/hacks/glx/glut_stroke.c b/hacks/glx/glut_stroke.c index 5ff3de5c..455e3db0 100644 --- a/hacks/glx/glut_stroke.c +++ b/hacks/glx/glut_stroke.c @@ -11,11 +11,12 @@ # ifdef HAVE_CONFIG_H # include "config.h" # endif -# ifdef HAVE_COCOA -# include -# else +# ifndef HAVE_COCOA # include # endif +# ifdef HAVE_JWZGLES +# include "jwzgles.h" +# endif /* HAVE_JWZGLES */ # undef APIENTRY # define APIENTRY /**/ #endif diff --git a/hacks/glx/glut_swidth.c b/hacks/glx/glut_swidth.c index c94927b0..185571d1 100644 --- a/hacks/glx/glut_swidth.c +++ b/hacks/glx/glut_swidth.c @@ -11,11 +11,12 @@ # ifdef HAVE_CONFIG_H # include "config.h" # endif -# ifdef HAVE_COCOA -# include -# else +# ifndef HAVE_COCOA # include -#endif +# endif +# ifdef HAVE_JWZGLES +# include "jwzgles.h" +# endif /* HAVE_JWZGLES */ # undef APIENTRY # define APIENTRY /**/ #endif diff --git a/hacks/glx/glxfonts.c b/hacks/glx/glxfonts.c index a03eb611..669a8422 100644 --- a/hacks/glx/glxfonts.c +++ b/hacks/glx/glxfonts.c @@ -1,4 +1,4 @@ -/* glxfonts, Copyright (c) 2001-2011 Jamie Zawinski +/* glxfonts, Copyright (c) 2001-2012 Jamie Zawinski * Loads X11 fonts for use with OpenGL. * * Permission to use, copy, modify, distribute, and sell this software and its @@ -8,6 +8,11 @@ * documentation. No representations are made about the suitability of this * software for any purpose. It is provided "as is" without express or * implied warranty. + * + * Draws 2D text over the GL scene, e.g., the FPS displays. + * + * There are two implementations here: one using glBitmap (the OpenGL 1.1 way) + * and one using textures via texfont.c (since OpenGLES doesn't have glBitmap). */ #ifdef HAVE_CONFIG_H @@ -21,16 +26,24 @@ #ifdef HAVE_COCOA # include "jwxyz.h" -# include -# include -# include +/*# include */ #else # include # include #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #include "resources.h" #include "glxfonts.h" +#include "fps.h" + +#ifndef HAVE_GLBITMAP +# include "texfont.h" +#endif /* HAVE_GLBITMAP */ + /* These are in xlock-gl.c */ extern void clear_gl_error (void); @@ -46,6 +59,38 @@ extern char *progname; */ +/* Width (and optionally height) of the string in pixels. + */ +int +string_width (XFontStruct *f, const char *c, int *height_ret) +{ + int x = 0; + int max_w = 0; + int h = f->ascent + f->descent; + while (*c) + { + int cc = *((unsigned char *) c); + if (*c == '\n') + { + if (x > max_w) max_w = x; + x = 0; + h += f->ascent + f->descent; + } + else + x += (f->per_char + ? f->per_char[cc-f->min_char_or_byte2].width + : f->min_bounds.rbearing); + c++; + } + if (x > max_w) max_w = x; + if (height_ret) *height_ret = h; + + return max_w; +} + + +#ifdef HAVE_GLBITMAP + /* Mostly lifted from the Mesa implementation of glXUseXFont(), since Mac OS 10.6 no longer supports aglUseFont() which was their analog of that. This code could be in libjwxyz instead, but we might as @@ -330,35 +375,7 @@ load_font (Display *dpy, char *res, XFontStruct **font_ret, GLuint *dlist_ret) *font_ret = f; } - -/* Width (and optionally height) of the string in pixels. - */ -int -string_width (XFontStruct *f, const char *c, int *height_ret) -{ - int x = 0; - int max_w = 0; - int h = f->ascent + f->descent; - while (*c) - { - int cc = *((unsigned char *) c); - if (*c == '\n') - { - if (x > max_w) max_w = x; - x = 0; - h += f->ascent + f->descent; - } - else - x += (f->per_char - ? f->per_char[cc-f->min_char_or_byte2].width - : f->min_bounds.rbearing); - c++; - } - if (x > max_w) max_w = x; - if (height_ret) *height_ret = h; - - return max_w; -} +#endif /* HAVE_GLBITMAP */ /* Draws the string on the window at the given pixel position. @@ -368,20 +385,36 @@ string_width (XFontStruct *f, const char *c, int *height_ret) */ void print_gl_string (Display *dpy, - XFontStruct *font, - GLuint font_dlist, +# ifdef HAVE_GLBITMAP + XFontStruct *font, GLuint font_dlist, +# else + texture_font_data *font_data, +# endif int window_width, int window_height, GLfloat x, GLfloat y, const char *string, Bool clear_background_p) { + + /* If window_width was specified, we're drawing ortho in pixel coordinates. + Otherwise, we're just dropping the text at the current position in the + scene, billboarded. */ + Bool in_scene_p = (window_width == 0); + +# ifdef HAVE_GLBITMAP GLfloat line_height = font->ascent + font->descent; - GLfloat sub_shift = (line_height * 0.3); int cw = string_width (font, "m", 0); - int tabs = cw * 7; +# else /* !HAVE_GLBITMAP */ + int line_height = 0; + int cw = texture_string_width (font_data, "m", &line_height); +# endif /* !HAVE_GLBITMAP */ - y -= line_height; + GLfloat sub_shift = (line_height * 0.3); + int tabs = cw * 7; + int lines = 0; + const char *c; +# ifdef HAVE_GLBITMAP /* Sadly, this causes a stall of the graphics pipeline (as would the equivalent calls to glGet*.) But there's no way around this, short of having each caller set up the specific display matrix we need @@ -392,19 +425,53 @@ print_gl_string (Display *dpy, GL_ENABLE_BIT | /* for various glDisable calls */ GL_CURRENT_BIT | /* for glColor3f() */ GL_LIST_BIT); /* for glListBase() */ - { -# ifdef DEBUG +# ifdef DEBUG check_gl_error ("glPushAttrib"); -# endif +# endif +# else /* !HAVE_GLBITMAP */ + Bool tex_p = glIsEnabled (GL_TEXTURE_2D); + Bool texs_p = glIsEnabled (GL_TEXTURE_GEN_S); + Bool text_p = glIsEnabled (GL_TEXTURE_GEN_T); + Bool light_p = glIsEnabled (GL_LIGHTING); + Bool blend_p = glIsEnabled (GL_BLEND); + Bool depth_p = glIsEnabled (GL_DEPTH_TEST); + Bool cull_p = glIsEnabled (GL_CULL_FACE); + Bool fog_p = glIsEnabled (GL_FOG); + GLint oblend; +# ifndef HAVE_JWZGLES + GLint opoly[2]; + glGetIntegerv (GL_POLYGON_MODE, opoly); +# endif + glGetIntegerv (GL_BLEND_DST, &oblend); +# endif /* !HAVE_GLBITMAP */ + + for (c = string; *c; c++) + if (*c == '\n') lines++; + + y -= line_height; + + { /* disable lighting and texturing when drawing bitmaps! (glPopAttrib() restores these.) */ +# ifdef HAVE_GLBITMAP glDisable (GL_TEXTURE_2D); +# else /* !HAVE_GLBITMAP */ + glEnable (GL_TEXTURE_2D); + glDisable (GL_TEXTURE_GEN_S); + glDisable (GL_TEXTURE_GEN_T); + glPolygonMode (GL_FRONT, GL_FILL); + glEnable (GL_BLEND); + glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); +# endif /* !HAVE_GLBITMAP */ + glDisable (GL_LIGHTING); - glDisable (GL_BLEND); - glDisable (GL_DEPTH_TEST); + + if (!in_scene_p) + glDisable (GL_DEPTH_TEST); glDisable (GL_CULL_FACE); + glDisable (GL_FOG); /* glPopAttrib() does not restore matrix changes, so we must push/pop the matrix stacks to be non-intrusive there. @@ -415,7 +482,8 @@ print_gl_string (Display *dpy, # ifdef DEBUG check_gl_error ("glPushMatrix"); # endif - glLoadIdentity(); + if (!in_scene_p) + glLoadIdentity(); /* Each matrix mode has its own stack, so we need to push/pop them separately. */ @@ -430,34 +498,71 @@ print_gl_string (Display *dpy, check_gl_error ("glPushMatrix"); # endif - glLoadIdentity(); - gluOrtho2D (0, window_width, 0, window_height); + if (!in_scene_p) + { + double rot = current_device_rotation(); + + glLoadIdentity(); + glOrtho (0, window_width, 0, window_height, -1, 1); + + if (rot > 135 || rot < -135) + { + glTranslatef (window_width, window_height, 0); + glRotatef (180, 0, 0, 1); + } + else if (rot > 45) + { + glTranslatef (window_width, 0, 0); + glRotatef (90, 0, 0, 1); + y -= (window_height - window_width); + if (y < line_height * lines + 10) + y = line_height * lines + 10; + } + else if (rot < -45) + { + glTranslatef(0, window_height, 0); + glRotatef (-90, 0, 0, 1); + y -= (window_height - window_width); + if (y < line_height * lines + 10) + y = line_height * lines + 10; + } + } # ifdef DEBUG - check_gl_error ("gluOrtho2D"); + check_gl_error ("glOrtho"); # endif if (clear_background_p) { int w, h; - int lh = font->ascent + font->descent; - w = string_width (font, string, &h); glColor3f (0, 0, 0); +# ifdef HAVE_GLBITMAP + w = string_width (font, string, &h); glRecti (x - font->descent, - y + lh, + y + line_height, x + w + 2*font->descent, - y + lh - h - font->descent); + y + line_height - h - font->descent); +# else /* !HAVE_GLBITMAP */ + { + int descent = line_height * 0.2; + if (descent < 2) descent = 2; + w = texture_string_width (font_data, string, &h); + glRecti (x - descent, + y + line_height, + x + w + 2*descent, + y + line_height - h - descent); + } +# endif /* !HAVE_GLBITMAP */ glColor3f (1, 1, 1); } /* draw the text */ - glRasterPos2f (x, y); -/* glListBase (font_dlist);*/ + for (i = 0; i < strlen(string); i++) { unsigned char c = (unsigned char) string[i]; if (c == '\n') { - glRasterPos2f (x, (y -= line_height)); + y -= line_height; x2 = x; } else if (c == '\t') @@ -465,25 +570,37 @@ print_gl_string (Display *dpy, x2 -= x; x2 = ((x2 + tabs) / tabs) * tabs; /* tab to tab stop */ x2 += x; - glRasterPos2f (x2, y); } else if (c == '[' && (isdigit (string[i+1]))) { sub_p = True; - glRasterPos2f (x2, (y -= sub_shift)); + y -= sub_shift; } else if (c == ']' && sub_p) { sub_p = False; - glRasterPos2f (x2, (y += sub_shift)); + y += sub_shift; } else { -/* glCallLists (s - string, GL_UNSIGNED_BYTE, string);*/ +# ifdef HAVE_GLBITMAP + glRasterPos2f (x2, y); glCallList (font_dlist + (int)(c)); x2 += (font->per_char ? font->per_char[c - font->min_char_or_byte2].width : font->min_bounds.width); +# else /* !HAVE_GLBITMAP */ + glPushMatrix(); + glTranslatef (x2, y, 0); + { + char s[2]; + s[0] = c; + s[1] = 0; + print_texture_string (font_data, s); + x2 += texture_string_width (font_data, s, 0); + } + glPopMatrix(); +# endif /* !HAVE_GLBITMAP */ } } # ifdef DEBUG @@ -495,10 +612,25 @@ print_gl_string (Display *dpy, glMatrixMode(GL_PROJECTION); glPopMatrix(); } +# ifdef HAVE_GLBITMAP glPopAttrib(); -# ifdef DEBUG +# ifdef DEBUG check_gl_error ("glPopAttrib"); -# endif +# endif +# else /* !HAVE_GLBITMAP */ + if (tex_p) glEnable (GL_TEXTURE_2D); else glDisable (GL_TEXTURE_2D); + if (texs_p) glEnable (GL_TEXTURE_GEN_S);/*else glDisable (GL_TEXTURE_GEN_S);*/ + if (text_p) glEnable (GL_TEXTURE_GEN_T);/*else glDisable (GL_TEXTURE_GEN_T);*/ + if (blend_p) glEnable (GL_BLEND); else glDisable (GL_BLEND); + if (light_p) glEnable (GL_LIGHTING); /*else glDisable (GL_LIGHTING);*/ + if (depth_p) glEnable (GL_DEPTH_TEST); else glDisable (GL_DEPTH_TEST); + if (cull_p) glEnable (GL_CULL_FACE); /*else glDisable (GL_CULL_FACE);*/ + if (fog_p) glEnable (GL_FOG); /*else glDisable (GL_FOG);*/ +# ifndef HAVE_JWZGLES + glPolygonMode (GL_FRONT, opoly[0]); +# endif + glBlendFunc (GL_SRC_ALPHA, oblend); +# endif /* !HAVE_GLBITMAP */ glMatrixMode(GL_MODELVIEW); } diff --git a/hacks/glx/glxfonts.h b/hacks/glx/glxfonts.h index 1bffc548..46868046 100644 --- a/hacks/glx/glxfonts.h +++ b/hacks/glx/glxfonts.h @@ -1,4 +1,4 @@ -/* glxfonts, Copyright (c) 2001-2009 Jamie Zawinski +/* glxfonts, Copyright (c) 2001-2012 Jamie Zawinski * Loads X11 fonts for use with OpenGL. * * Permission to use, copy, modify, distribute, and sell this software and its @@ -15,11 +15,17 @@ #ifndef __GLXFONTS_H__ #define __GLXFONTS_H__ +#ifndef HAVE_GLBITMAP +# include "texfont.h" +#endif /* !HAVE_GLBITMAP */ + +#ifdef HAVE_GLBITMAP /* This is basically the same as glXUseXFont(). We have our own version of it for portability. */ extern void xscreensaver_glXUseXFont (Display *dpy, Font font, int first, int count, int listbase); +#endif /* HAVE_GLBITMAP */ /* Loads the font named by the X resource "res". Returns an XFontStruct. @@ -38,8 +44,12 @@ extern int string_width (XFontStruct *f, const char *c, int *height_ret); Any text inside [] will be rendered as a subscript. Assumes the font has been loaded as with load_font(). */ void print_gl_string (Display *dpy, +# ifdef HAVE_GLBITMAP XFontStruct *font, GLuint font_dlist, +# else /* !HAVE_GLBITMAP */ + texture_font_data *font_data, +# endif /* !HAVE_GLBITMAP */ int window_width, int window_height, GLfloat x, GLfloat y, const char *string, diff --git a/hacks/glx/grab-ximage.c b/hacks/glx/grab-ximage.c index 653fe4ba..58063329 100644 --- a/hacks/glx/grab-ximage.c +++ b/hacks/glx/grab-ximage.c @@ -20,8 +20,9 @@ #ifdef HAVE_COCOA # include "jwxyz.h" -# include -# include +# ifndef HAVE_JWZGLES +# include +# endif #else # include # include @@ -30,6 +31,10 @@ # include /* for glXMakeCurrent() */ #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #include "grab-ximage.h" #include "grabscreen.h" #include "visual.h" @@ -524,15 +529,11 @@ double_time (void) /* return the next larger power of 2. */ static int -to_pow2 (int i) +to_pow2 (int value) { - static const unsigned int pow2[] = { - 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, - 2048, 4096, 8192, 16384, 32768, 65536 }; - int j; - for (j = 0; j < countof(pow2); j++) - if (pow2[j] >= i) return pow2[j]; - abort(); /* too big! */ + int i = 1; + while (i < value) i <<= 1; + return i; } @@ -587,7 +588,7 @@ ximage_to_texture (XImage *ximage, progname, ximage->width, ximage->height, tex_width, tex_height); - glTexImage2D (GL_TEXTURE_2D, 0, 3, tex_width, tex_height, 0, + glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, tex_width, tex_height, 0, format, type, 0); err = glGetError(); diff --git a/hacks/glx/hypertorus.c b/hacks/glx/hypertorus.c index a7d3ed95..57cd1896 100644 --- a/hacks/glx/hypertorus.c +++ b/hacks/glx/hypertorus.c @@ -95,8 +95,9 @@ static const char sccsid[] = "@(#)hypertorus.c 1.2 05/09/28 xlockmore"; #endif /* !STANDALONE */ #ifdef USE_GL - -#include +# ifndef HAVE_JWZGLES +# include +# endif #include "gltrackball.h" @@ -747,9 +748,12 @@ ENTRYPOINT void reshape_hypertorus(ModeInfo *mi, int width, int height) ENTRYPOINT Bool hypertorus_handle_event(ModeInfo *mi, XEvent *event) { - Display *display = MI_DISPLAY(mi); hypertorusstruct *hp = &hyper[MI_SCREEN(mi)]; - KeySym sym; + KeySym sym = 0; + char c = 0; + + if (event->xany.type == KeyPress || event->xany.type == KeyRelease) + XLookupString (&event->xkey, &c, 1, &sym, 0); if (event->xany.type == ButtonPress && event->xbutton.button == Button1) @@ -768,7 +772,6 @@ ENTRYPOINT Bool hypertorus_handle_event(ModeInfo *mi, XEvent *event) } else if (event->xany.type == KeyPress) { - sym = XKeycodeToKeysym(display,event->xkey.keycode,0); if (sym == XK_Shift_L || sym == XK_Shift_R) { hp->current_trackball = 1; @@ -781,7 +784,6 @@ ENTRYPOINT Bool hypertorus_handle_event(ModeInfo *mi, XEvent *event) } else if (event->xany.type == KeyRelease) { - sym = XKeycodeToKeysym(display,event->xkey.keycode,0); if (sym == XK_Shift_L || sym == XK_Shift_R) { hp->current_trackball = 0; diff --git a/hacks/glx/involute.c b/hacks/glx/involute.c index d31e824d..a7c415e9 100644 --- a/hacks/glx/involute.c +++ b/hacks/glx/involute.c @@ -17,14 +17,15 @@ #include "screenhackI.h" -#ifdef HAVE_COCOA -# include -# include -#else /* !HAVE_COCOA -- real Xlib */ +#ifndef HAVE_COCOA # include # include #endif /* !HAVE_COCOA */ +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #include "involute.h" #include "normals.h" diff --git a/hacks/glx/jigglypuff.c b/hacks/glx/jigglypuff.c index c998ba0d..67c2c4b1 100644 --- a/hacks/glx/jigglypuff.c +++ b/hacks/glx/jigglypuff.c @@ -838,10 +838,12 @@ static int parse_color(jigglystruct *js) js->color_style = COLOR_STYLE_FLOWERBOX; return 1; } +# ifndef HAVE_JWZGLES /* SPHERE_MAP unimplemented */ else if(!strcmp(color, "chrome")) { js->color_style = COLOR_STYLE_CHROME; return 1; } +# endif else if(!strcmp(color, "cycle")) { js->color_style = COLOR_STYLE_CYCLE; js->jiggly_color[0] = ((float)random()) / REAL_RAND_MAX * 0.7 + 0.3; @@ -870,8 +872,14 @@ static int parse_color(jigglystruct *js) static void randomize_parameters(jigglystruct *js) { do_tetrahedron = random() & 1; +# ifndef HAVE_JWZGLES js->do_wireframe = !(random() & 3); +# endif js->color_style = random() % 5; +# ifdef HAVE_JWZGLES /* SPHERE_MAP unimplemented */ + while (js->color_style == COLOR_STYLE_CHROME) + js->color_style = random() % 5;; +# endif if(js->color_style == COLOR_STYLE_NORMAL || js->color_style == COLOR_STYLE_CYCLE) { js->jiggly_color[0] = ((float)random()) / REAL_RAND_MAX * 0.5 + 0.5; @@ -1022,6 +1030,9 @@ ENTRYPOINT void init_jigglypuff(ModeInfo *mi) js = &jss[MI_SCREEN(mi)]; js->do_wireframe = MI_IS_WIREFRAME(mi); +# ifdef HAVE_JWZGLES + js->do_wireframe = 0; /* GL_LINE unimplemented */ +# endif js->shininess = shininess; diff --git a/hacks/glx/jigsaw.c b/hacks/glx/jigsaw.c index 0d9a314d..9d1371a1 100644 --- a/hacks/glx/jigsaw.c +++ b/hacks/glx/jigsaw.c @@ -61,6 +61,18 @@ #undef countof #define countof(x) (sizeof((x))/sizeof((*x))) +#ifdef HAVE_COCOA +# include "jwxyz.h" +#else +# include +# include +# include +#endif + +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #include "xlockmore.h" #include "rotator.h" #include "gltrackball.h" @@ -1101,6 +1113,7 @@ draw_jigsaw (ModeInfo *mi) glPushMatrix (); gltrackball_rotate (jc->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); if (wobble_p && jc->puzzle) { diff --git a/hacks/glx/juggler3d.c b/hacks/glx/juggler3d.c index 6349d9df..02c1f179 100644 --- a/hacks/glx/juggler3d.c +++ b/hacks/glx/juggler3d.c @@ -580,8 +580,12 @@ typedef struct { Object *objects; struct patternindex patternindex; +# ifdef HAVE_GLBITMAP XFontStruct *mode_font; GLuint font_dlist; +# else + texture_font_data *font_data; +# endif } jugglestruct; static jugglestruct *juggles = (jugglestruct *) NULL; @@ -658,10 +662,12 @@ free_juggle(jugglestruct *sp) { free(sp->pattern); sp->pattern = NULL; } +# ifdef HAVE_GLBITMAP if (sp->mode_font!=None) { XFreeFontInfo(NULL,sp->mode_font,1); sp->mode_font = None; } +# endif /* HAVE_GLBITMAP */ } static Bool @@ -2665,7 +2671,11 @@ init_juggle (ModeInfo * mi) sp->glx_context = init_GL(mi); +# ifdef HAVE_GLBITMAP load_font (mi->dpy, "titleFont", &sp->mode_font, &sp->font_dlist); +# else /* !HAVE_GLBITMAP */ + sp->font_data = load_texture_font (mi->dpy, "titleFont"); +# endif /* !HAVE_GLBITMAP */ reshape_juggle (mi, MI_WIDTH(mi), MI_HEIGHT(mi)); clear_gl_error(); /* WTF? sometimes "invalid op" from glViewport! */ @@ -2909,6 +2919,7 @@ draw_juggle (ModeInfo *mi) (z - 0.5) * 15); gltrackball_rotate (sp->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); get_rotation (sp->rot, &x, &y, &z, !sp->button_down_p); @@ -3051,12 +3062,15 @@ draw_juggle (ModeInfo *mi) } } - if(sp->mode_font != None) { - print_gl_string (mi->dpy, sp->mode_font, sp->font_dlist, - mi->xgwa.width, mi->xgwa.height, - 10, mi->xgwa.height - 10, - sp->pattern, False); - } + print_gl_string (mi->dpy, +# ifdef HAVE_GLBITMAP + sp->mode_font, sp->font_dlist, +# else /* !HAVE_GLBITMAP */ + sp->font_data, +# endif /* !HAVE_GLBITMAP */ + mi->xgwa.width, mi->xgwa.height, + 10, mi->xgwa.height - 10, + sp->pattern, False); #ifdef MEMTEST if((int)(sp->time/10) % 1000 == 0) diff --git a/hacks/glx/jwzgles.c b/hacks/glx/jwzgles.c new file mode 100644 index 00000000..e10d2e6e --- /dev/null +++ b/hacks/glx/jwzgles.c @@ -0,0 +1,3510 @@ +/* xscreensaver, Copyright (c) 2012 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + */ + +/* A compatibility shim to allow OpenGL 1.3 source code to work in an + OpenGLES environment, where almost every OpenGL 1.3 function has + been "deprecated". + + There are two major operations going on here: + + - Converting calls to glBegin + glVertex3f + glEnd to glDrawArrays + - Implementing display lists. + + + From an API point of view, OpenGL 1.3 and earlier code looks like this: + + glLightfv (GL_LIGHT0, GL_POSITION, ...); + glLightfv (GL_LIGHT0, GL_AMBIENT, ...); + + glMatrixMode (GL_PROJECTION); + glLoadIdentity (); + gluPerspective (...); + + glMatrixMode (GL_MODELVIEW); + glLoadIdentity (); + gluLookAt (...); + + glPushMatrix (); + + glRotatef (...); + + glColor3f (...); + + glBegin (GL_TRIANGLES); + glNormal3f (...); + glVertex3f (...); + glVertex3f (...); + glVertex3f (...); + glEnd (); + + glPopMatrix (); + + glFinish (); + + + OpenGLES broke that model by eliminating glBegin(). Instead of + iterating a sequence of vertexes, you need to pack your points into + an array first, e.g.: + + GLfloat coords[] = { + 0, 0, 0, + 0, 1, 0, + ... + }; + + glDrawArrays (GL_TRIANGLES, 0, 3); + + The projection model (glRotatef, etc.) works the same, but glColor() + is missing. You're expected to encode that into your arrays. + + Also, OpenGLES doesn't support display lists at all. + + + So this code shadows all of the functions that are allowed within + glBegin, builds up an array, and calls glDrawArrays at the end. + + Likewise, it shadows all of the functions that are allowed within + glNewList and records those calls for later playback. + + + This code only handles OpenGLES 1.x, not 2.x. + + OpenGLES 2.0 broke things further by eliminating the whole OpenGL + lighting model. Instead of specifying the positions and properties + of your lights using the glLight* API, now you are expected to + implement it all yourself by downloading C-like code into the GPU + directly. This is more flexible, in that if you wanted a completely + different lighting model than what OpenGL provides, you could do + that, but it leaves you needing to download boilerplate to reproduce + what used to be built in. + + + Incidentally, the OpenGL numbering scheme goes something like this: + + OpenGL 1.0 1992 + OpenGL 1.1 1997 (improved texture support) + OpenGL 1.2 1998 (nothing interesting) + OpenGL 1.3 2001 (multisampling, cubemaps) + OpenGL 1.4 2002 (added auto-mipmapping) + OpenGLES 1.0 2003 (deprecated 80% of the language; fork of OpenGL 1.3) + OpenGL 1.5 2003 (added VBOs) + OpenGLES 1.1 2004 (fork of OpenGL 1.5) + OpenGL 2.0 2004 (a political quagmire) + OpenGLES 2.0 2007 (deprecated 95% of the language; fork of OpenGL 2.0) + OpenGL 3.0 2008 (added FBOs, VAOs, deprecated 60% of the language) + + + Some things that are missing: + + - glTexGeni, meaning no spherical environment-mapping textures. + + - gluNewTess, meaning no tesselation of complex objects. + + - glMap2f mesh evaluators, meaning no Utah Teapot. + + - glPolygonMode with GL_LINE or GL_POINT, meaning no wireframe modes + that do hidden-surface removal. + + - glSelectBuffer, meaning no mouse-hit detection on rendered objects. + + - gluNewQuadric, gluCylinder, etc: rewrite your code to use tube.c, etc. + + - Putting verts in a display list without a wrapping glBegin. + (I didn't realize that even worked!) + + - Not every function is implemented; just the ones that I needed for + xscreensaver. However, the trivial ones are trivial to enable + as they come up. Harder ones will be harder. + + As a result of that, these savers look wrong: + + blocktube Uses SPHERE_MAP. + bouncingcow Uses OBJECT_LINEAR (when run with -texture) + dnalogo Uses GLUtesselator. + extrusion Uses all kinds of GLUT crap. + flyingtoasters Uses SPHERE_MAP and OBJECT_LINEAR. + jigglypuff Uses SPHERE_MAP (in chrome mode), GL_LINE (in wireframe) + jigsaw Uses GLUtesselator. + lockward Puts verts in lists without glBegin! + pinion Uses glSelectBuffer and gluPickMatrix for mouse-clicks. + pipes Uses glMap2f for the Utah Teapot. + polyhedra Uses GLUtesselator; also Utah Teapot. + skytentacles Uses glTexImage1D and GL_LINE in -cel mode. + timetunnel Uses GL_CONSTANT_ALPHA and all kinds of other stuff. + +*/ + + +#undef DEBUG + + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif /* HAVE_CONFIG_H */ + +#ifdef HAVE_JWZGLES /* whole file */ + +#include +#include +#include +#include +#include +#ifdef HAVE_UNISTD_H +# include +#endif /* HAVE_UNISTD_H */ + +#if defined(USE_IPHONE) +# include +# include +#elif defined(HAVE_COCOA) +# include +# include +#else +# include +# include +#endif + +#include "jwzglesI.h" + +#define STRINGIFY(X) #X + +#undef countof +#define countof(x) (sizeof((x))/sizeof((*x))) + +#undef Assert +#define Assert(C,S) do { \ + if (!(C)) { \ + fprintf (stderr, "jwzgles: %s\n", S); \ + abort(); \ + }} while(0) + + +typedef struct { GLfloat x, y, z; } XYZ; +typedef struct { GLfloat x, y, z, w; } XYZW; +typedef struct { GLfloat s, t, r, q; } STRQ; +typedef struct { GLfloat r, g, b, a; } RGBA; + + +/* Used to record all calls to glVertex3f, glNormal3f, etc. + while inside glBegin / glEnd so that we can convert that + to a single call to glDrawArrays. + */ +typedef struct { + int mode; + int count, size; /* size of each array */ + + XYZW *verts; /* Arrays being built */ + XYZ *norms; + STRQ *tex; + RGBA *color; + + int ncount; /* How many normals, tex coords and colors were */ + int tcount; /* used. We optimize based on "0, 1, or many". */ + int ccount; + int materialistic; /* Whether glMaterial was called inside glBegin */ + + XYZ cnorm; /* Prevailing normal/texture/color while building */ + STRQ ctex; + RGBA ccolor; + +} vert_set; + + +typedef void (*list_fn_cb) (void); + + +/* We need this nonsense because you can't cast a double to a void* + or vice versa. They tend to be passed in different registers, + and you need to know about that because it's still 1972 here. + */ +typedef union { const void *v; GLfloat f; GLuint i; } void_int; + +typedef struct { /* saved args for glDrawArrays */ + int size, type, stride, bytes; + void *data; +} draw_array; + +typedef enum { /* shorthand describing arglist signature */ + PROTO_VOID, /* no args */ + PROTO_I, /* 1 int arg */ + PROTO_F, /* 1 float arg */ + PROTO_II, /* int, int */ + PROTO_FF, /* float, float */ + PROTO_IF, /* int, float */ + PROTO_III, /* int, int, int */ + PROTO_FFF, /* float, float, float */ + PROTO_IIF, /* int, int, float */ + PROTO_IIII, /* int, int, int, int */ + PROTO_FFFF, /* float, float, float, float */ + PROTO_IIV, /* int, int[4] */ + PROTO_IFV, /* int, float[4] */ + PROTO_IIIV, /* int, int, int[4] */ + PROTO_IIFV, /* int, int, float[4] */ + PROTO_FV16, /* float[16] */ + PROTO_ARRAYS /* glDrawArrays */ +} fn_proto; + +typedef struct { /* A single element of a display list */ + const char *name; + list_fn_cb fn; /* saved function pointer */ + fn_proto proto; /* arglist prototype */ + draw_array *arrays; /* args for glDrawArrays */ + void_int argv[16]; /* args for everything else */ +} list_fn; + + +typedef struct { /* saved activity within glNewList */ + int id; + int size, count; + list_fn *fns; +} list; + + +typedef struct { /* A display list */ + list *lists; + int count, size; +} list_set; + + +#define ISENABLED_TEXTURE_2D (1<<0) +#define ISENABLED_TEXTURE_GEN_S (1<<1) +#define ISENABLED_TEXTURE_GEN_T (1<<2) +#define ISENABLED_LIGHTING (1<<3) +#define ISENABLED_BLEND (1<<4) +#define ISENABLED_DEPTH_TEST (1<<5) +#define ISENABLED_CULL_FACE (1<<6) +#define ISENABLED_NORMALIZE (1<<7) +#define ISENABLED_FOG (1<<8) +#define ISENABLED_COLMAT (1<<9) +#define ISENABLED_VERT_ARRAY (1<<10) +#define ISENABLED_NORM_ARRAY (1<<11) +#define ISENABLED_TEX_ARRAY (1<<12) +#define ISENABLED_COLOR_ARRAY (1<<13) + + +typedef struct { /* global state */ + + vert_set set; /* set being built */ + + int compiling_list; /* list id if inside glNewList; 0 means immediate */ + int replaying_list; /* depth of call stack to glCallList */ + int compiling_verts; /* inside glBegin */ + + list_set lists; /* saved lists */ + unsigned long enabled; + +} jwzgles_state; + + +static jwzgles_state global_state = { { 0, }, 0, 0, 0, { 0, }, 0, }; +static jwzgles_state *state = &global_state; + + +#ifdef DEBUG +# define LOG(A) fprintf(stderr,"jwzgles: " A "\n") +# define LOG1(A,B) fprintf(stderr,"jwzgles: " A "\n",B) +# define LOG2(A,B,C) fprintf(stderr,"jwzgles: " A "\n",B,C) +# define LOG3(A,B,C,D) fprintf(stderr,"jwzgles: " A "\n",B,C,D) +# define LOG4(A,B,C,D,E) fprintf(stderr,"jwzgles: " A "\n",B,C,D,E) +# define LOG5(A,B,C,D,E,F) fprintf(stderr,"jwzgles: " A "\n",B,C,D,E,F) +# define LOG6(A,B,C,D,E,F,G) fprintf(stderr,"jwzgles: " A "\n",B,C,D,E,F,G) +# define LOG7(A,B,C,D,E,F,G,H) fprintf(stderr,"jwzgles: " A "\n",B,C,D,E,F,G,H) +# define LOG8(A,B,C,D,E,F,G,H,I)\ + fprintf(stderr,"jwzgles: "A "\n",B,C,D,E,F,G,H,I) +# define LOG9(A,B,C,D,E,F,G,H,I,J)\ + fprintf(stderr,"jwzgles: "A "\n",B,C,D,E,F,G,H,I,J) +# define LOG10(A,B,C,D,E,F,G,H,I,J,K)\ + fprintf(stderr,"jwzgles: "A "\n",B,C,D,E,F,G,H,I,J,K) +# define LOG17(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)\ + fprintf(stderr,"jwzgles: "A "\n",B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R) +# define CHECK(S) check_gl_error(S) +#else +# define LOG(A) /* */ +# define LOG1(A,B) /* */ +# define LOG2(A,B,C) /* */ +# define LOG3(A,B,C,D) /* */ +# define LOG4(A,B,C,D,E) /* */ +# define LOG5(A,B,C,D,E,F) /* */ +# define LOG6(A,B,C,D,E,F,G) /* */ +# define LOG7(A,B,C,D,E,F,G,H) /* */ +# define LOG8(A,B,C,D,E,F,G,H,I) /* */ +# define LOG9(A,B,C,D,E,F,G,H,I,J) /* */ +# define LOG10(A,B,C,D,E,F,G,H,I,J,K) /* */ +# define LOG17(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R) /* */ +# define CHECK(S) /* */ +#endif + +#ifdef DEBUG +static const char * +mode_desc (int mode) /* for debugging messages */ +{ + switch (mode) { +# define SS(X) case GL_##X: return STRINGIFY(X); + SS(ALPHA) + SS(AMBIENT) + SS(AMBIENT_AND_DIFFUSE) + SS(AUTO_NORMAL) + SS(BACK) + SS(BLEND) + SS(BLEND_DST) + SS(BLEND_SRC) + SS(BLEND_SRC_ALPHA) + SS(RGBA_MODE) + SS(DOUBLEBUFFER) + SS(GREATER) + SS(ALPHA_TEST) + SS(LESS) + SS(BYTE) + SS(C3F_V3F) + SS(C4F_N3F_V3F) + SS(C4UB_V2F) + SS(C4UB_V3F) + SS(CCW) + SS(CLAMP) + SS(COLOR_ARRAY) + SS(COLOR_MATERIAL) + SS(COLOR_MATERIAL_FACE) + SS(COLOR_MATERIAL_PARAMETER) + SS(COMPILE) + SS(CULL_FACE) + SS(CW) + SS(DECAL) + SS(DEPTH_BUFFER_BIT) + SS(DEPTH_TEST) + SS(DIFFUSE) + SS(DST_ALPHA) + SS(DST_COLOR) + SS(EYE_LINEAR) + SS(EYE_PLANE) + SS(FEEDBACK) + SS(FILL) + SS(FLAT) + SS(FLOAT) + SS(FOG) + SS(FRONT) + SS(FRONT_AND_BACK) + SS(INTENSITY) + SS(INVALID_ENUM) + SS(INVALID_OPERATION) + SS(INVALID_VALUE) + SS(LIGHT0) + SS(LIGHT1) + SS(LIGHT2) + SS(LIGHT3) + SS(LIGHTING) + SS(LIGHT_MODEL_AMBIENT) + SS(LIGHT_MODEL_COLOR_CONTROL) + SS(LIGHT_MODEL_LOCAL_VIEWER) + SS(LIGHT_MODEL_TWO_SIDE) + SS(LINE) + SS(LINEAR) + SS(LINEAR_MIPMAP_LINEAR) + SS(LINEAR_MIPMAP_NEAREST) + SS(LINES) + SS(LINE_LOOP) + SS(LINE_STRIP) + SS(LUMINANCE) + SS(LUMINANCE_ALPHA) + SS(MATRIX_MODE) + SS(MODELVIEW) + SS(MODULATE) + SS(N3F_V3F) + SS(NEAREST) + SS(NEAREST_MIPMAP_LINEAR) + SS(NEAREST_MIPMAP_NEAREST) + SS(NORMALIZE) + SS(NORMAL_ARRAY) + SS(OBJECT_LINEAR) + SS(OBJECT_PLANE) + SS(ONE_MINUS_DST_ALPHA) + SS(ONE_MINUS_DST_COLOR) + SS(ONE_MINUS_SRC_ALPHA) + SS(ONE_MINUS_SRC_COLOR) + SS(OUT_OF_MEMORY) + SS(PACK_ALIGNMENT) + SS(POINTS) + SS(POLYGON) + SS(POLYGON_OFFSET_FILL) + SS(POLYGON_SMOOTH) + SS(POLYGON_STIPPLE) + SS(POSITION) + SS(PROJECTION) + SS(Q) + SS(QUADS) + SS(QUAD_STRIP) + SS(R) + SS(RENDER) + SS(REPEAT) + SS(RGB) + SS(RGBA) + SS(S) + SS(SELECT) + SS(SEPARATE_SPECULAR_COLOR) + SS(SHADE_MODEL) + SS(SHININESS) + SS(SHORT) + SS(SINGLE_COLOR) + SS(SMOOTH) + SS(SPECULAR) + SS(SPHERE_MAP) + SS(SRC_ALPHA) + SS(SRC_ALPHA_SATURATE) + SS(SRC_COLOR) + SS(STACK_OVERFLOW) + SS(STACK_UNDERFLOW) + SS(STENCIL_BUFFER_BIT) + SS(T) + SS(T2F_C3F_V3F) + SS(T2F_C4F_N3F_V3F) + SS(T2F_C4UB_V3F) + SS(T2F_N3F_V3F) + SS(T2F_V3F) + SS(T4F_C4F_N3F_V4F) + SS(T4F_V4F) + SS(TEXTURE) + SS(TEXTURE_1D) + SS(TEXTURE_2D) + SS(TEXTURE_ALPHA_SIZE) + SS(TEXTURE_BINDING_2D) + SS(TEXTURE_BLUE_SIZE) + SS(TEXTURE_BORDER) + SS(TEXTURE_BORDER_COLOR) + SS(TEXTURE_COMPONENTS) + SS(TEXTURE_COORD_ARRAY) + SS(TEXTURE_ENV) + SS(TEXTURE_ENV_COLOR) + SS(TEXTURE_ENV_MODE) + SS(TEXTURE_GEN_MODE) + SS(TEXTURE_GEN_Q) + SS(TEXTURE_GEN_R) + SS(TEXTURE_GEN_S) + SS(TEXTURE_GEN_T) + SS(TEXTURE_GREEN_SIZE) + SS(TEXTURE_HEIGHT) + SS(TEXTURE_INTENSITY_SIZE) + SS(TEXTURE_LUMINANCE_SIZE) + SS(TEXTURE_MAG_FILTER) + SS(TEXTURE_MIN_FILTER) + SS(TEXTURE_RED_SIZE) + SS(TEXTURE_WRAP_S) + SS(TEXTURE_WRAP_T) + SS(TRIANGLES) + SS(TRIANGLE_FAN) + SS(TRIANGLE_STRIP) + SS(UNPACK_ALIGNMENT) + SS(UNPACK_ROW_LENGTH) + SS(UNSIGNED_BYTE) + SS(UNSIGNED_INT_8_8_8_8_REV) + SS(UNSIGNED_SHORT) + SS(V2F) + SS(V3F) + SS(VERTEX_ARRAY) +/*SS(COLOR_BUFFER_BIT) -- same value as GL_LIGHT0 */ +# undef SS + case (GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT): + return "DEPTH_BUFFER_BIT | COLOR_BUFFER_BIT"; +/* Oops, same as INVALID_ENUM. + case (GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT): + return "DEPTH_BUFFER_BIT | STENCIL_BUFFER_BIT"; +*/ + case (GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT): + return "COLOR_BUFFER_BIT | STENCIL_BUFFER_BIT"; + case (GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT): + return "DEPTH_BUFFER_BIT | COLOR_BUFFER_BIT | STENCIL_BUFFER_BIT"; + default: + { + static char buf[255]; + sprintf (buf, "0x%04X", mode); + return buf; + } + } +} + +static void +check_gl_error (const char *s) +{ + GLenum i = glGetError(); + if (i == GL_NO_ERROR) return; + fprintf (stderr, "jwzgles: GL ERROR: %s: %s\n", s, mode_desc(i)); +} + +#endif /* DEBUG */ + + +int +jwzgles_glGenLists (int n) +{ + int i; + int ret = 0; + + Assert (!state->compiling_verts, "glGenLists not allowed inside glBegin"); + + /* Ensure space in state->lists, clear the one at the end, and tick counter + Note that lists are never really deleted, and we can never re-use elements + of this array. glDeleteLists zeroes out the contents of the list, but + the list ID is still valid for use with glNewList forever. + #### So maybe this should be a linked list instead of an array. + */ + for (i = 0; i < n; i++) + { + list *L; + int id = 0; + + /* Adding a new list at the end. Make room for it. + */ + if (state->lists.count >= state->lists.size - 1) + { + int new_size = 20 + (state->lists.size * 1.2); + state->lists.lists = (list *) + realloc (state->lists.lists, + new_size * sizeof (*state->lists.lists)); + Assert (state->lists.lists, "out of memory"); + state->lists.size = new_size; + LOG1("glGenLists grew -> %d", new_size); + } + state->lists.count++; + id = state->lists.count; + L = &state->lists.lists[id-1]; + + memset (L, 0, sizeof (*L)); + L->id = id; + if (ret == 0) ret = id; + LOG1("glGenLists -> %d", L->id); + } + + /* Return the ID of the first list allocated */ + + return ret; +} + + +void +jwzgles_glNewList (int id, int mode) +{ + list *L; + Assert (id > 0 && id <= state->lists.count, "glNewList: bogus ID"); + Assert (mode == GL_COMPILE, "glNewList: bad mode"); + Assert (!state->compiling_verts, "glNewList not allowed inside glBegin"); + Assert (!state->compiling_list, "nested glNewList"); + Assert (state->set.count == 0, "missing glEnd"); + + L = &state->lists.lists[id-1]; + Assert (L->id == id, "glNewList corrupted"); + + if (L->count != 0) jwzgles_glDeleteLists (L->id, 1); /* Overwriting */ + Assert (L->count == 0, "glNewList corrupted"); + + state->compiling_list = id; + + LOG1("glNewList -> %d", id); +} + + +void +jwzgles_glEndList (void) +{ + Assert (state->compiling_list, "extra glEndList"); + Assert (state->set.count == 0, "missing glEnd"); + Assert (!state->compiling_verts, "glEndList not allowed inside glBegin"); + LOG1("glEndList %d", state->compiling_list); + state->compiling_list = 0; +} + + +static void save_arrays (list_fn *, int); +static void restore_arrays (list_fn *, int); +static void copy_array_data (draw_array *, int, const char *); + +static void +list_push (const char * const name, + list_fn_cb fn, fn_proto proto, void_int *av) +{ + list *L; + list_fn *F; + int i; + + Assert (state->compiling_list > 0, "not inside glNewList"); + Assert (state->compiling_list <= state->lists.count, "glNewList corrupted"); + + L = &state->lists.lists[state->compiling_list-1]; + Assert (L, "glNewList: no list"); + + if (L->count >= L->size - 1) + { + int new_size = 20 + (L->size * 1.2); + L->fns = (list_fn *) realloc (L->fns, new_size * sizeof (*L->fns)); + Assert (L->fns, "glNewList: no functions"); + L->size = new_size; + } + + memset (&L->fns[L->count], 0, sizeof (*L->fns)); + + F = L->fns + L->count; + + F->name = name; + F->fn = fn; + F->proto = proto; + if (proto != PROTO_VOID) + for (i = 0; i < countof(F->argv); i++) + F->argv[i] = av[i]; + +# ifdef DEBUG + switch (proto) { + case PROTO_VOID: + LOG1 (" push %-12s", name); + break; + case PROTO_I: + if (fn == (list_fn_cb) &jwzgles_glBegin || + fn == (list_fn_cb) &jwzgles_glFrontFace || + fn == (list_fn_cb) &jwzgles_glEnable || + fn == (list_fn_cb) &jwzgles_glDisable || + fn == (list_fn_cb) &jwzgles_glEnableClientState || + fn == (list_fn_cb) &jwzgles_glDisableClientState || + fn == (list_fn_cb) &jwzgles_glShadeModel || + fn == (list_fn_cb) &jwzgles_glMatrixMode) + LOG2 (" push %-12s %s", name, mode_desc (av[0].i)); + else + LOG2 (" push %-12s %d", name, av[0].i); + break; + case PROTO_F: + LOG2 (" push %-12s %7.3f", name, av[0].f); + break; + case PROTO_II: + if (fn == (list_fn_cb) &jwzgles_glBindTexture) + LOG3 (" push %-12s %s %d", name, mode_desc (av[0].i), av[1].i); + else + LOG3 (" push %-12s %d %d", name, av[0].i, av[1].i); + break; + case PROTO_FF: + LOG3 (" push %-12s %7.3f %7.3f", name, av[0].f, av[1].f); + break; + case PROTO_IF: + LOG3 (" push %-12s %s %7.3f", name, mode_desc (av[0].i), av[1].f); + break; + case PROTO_III: + case PROTO_ARRAYS: + if (fn == (list_fn_cb) &jwzgles_glDrawArrays || + fn == (list_fn_cb) &jwzgles_glTexParameteri) + LOG4 (" push %-12s %s %d %d", name, mode_desc (av[0].i), + av[1].i, av[2].i); + else + LOG4 (" push %-12s %d %d %d", name, av[0].i, av[1].i, av[2].i); + break; + case PROTO_FFF: + LOG4 (" push %-12s %7.3f %7.3f %7.3f", name, av[0].f, av[1].f, av[2].f); + break; + case PROTO_IIF: + LOG4 (" push %-12s %s %s %7.3f", name, + mode_desc(av[0].i), mode_desc(av[1].i), av[2].f); + break; + case PROTO_IIII: + LOG5 (" push %-12s %d %d %d %d", name, + av[0].i, av[1].i, av[2].i, av[3].i); + break; + case PROTO_FFFF: + LOG5 (" push %-12s %7.3f %7.3f %7.3f %7.3f", name, + av[0].f, av[1].f, av[2].f, av[3].f); + break; + case PROTO_IFV: + LOG6 (" push %-12s %s %3.1f %3.1f %3.1f %3.1f", name, mode_desc (av[0].i), + av[1].f, av[2].f, av[3].f, av[4].f); + break; + case PROTO_IIV: + LOG6 (" push %-12s %s %d %d %d %d", name, mode_desc (av[0].i), + av[1].i, av[2].i, av[3].i, av[4].i); + break; + case PROTO_IIFV: + LOG7 (" push %-12s %s %-8s %3.1f %3.1f %3.1f %3.1f", name, + mode_desc (av[0].i), mode_desc (av[1].i), + av[2].f, av[3].f, av[4].f, av[5].f); + break; + case PROTO_IIIV: + LOG7 (" push %-12s %s %-8s %3d %3d %3d %3d", name, + mode_desc (av[0].i), mode_desc (av[1].i), + av[2].i, av[3].i, av[4].i, av[5].i); + break; + case PROTO_FV16: + LOG17 (" push %-12s [" + "%8.3f %8.3f %8.3f %8.3f " "\n\t\t\t " + "%8.3f %8.3f %8.3f %8.3f " "\n\t\t\t " + "%8.3f %8.3f %8.3f %8.3f " "\n\t\t\t " + "%8.3f %8.3f %8.3f %8.3f ]", + name, + av[0].f, av[1].f, av[2].f, av[3].f, + av[4].f, av[5].f, av[6].f, av[7].f, + av[8].f, av[9].f, av[10].f, av[11].f, + av[12].f, av[13].f, av[14].f, av[15].f); + break; + default: + Assert (0, "bogus prototype"); + break; + } +# endif /* DEBUG */ + + if (proto == PROTO_ARRAYS) /* glDrawArrays */ + save_arrays (F, av[1].i + av[2].i); + + L->count++; +} + + +void +jwzgles_glBegin (int mode) +{ + Assert (!state->compiling_verts, "nested glBegin"); + state->compiling_verts++; + + /* Only these commands are allowed inside glBegin: + + glVertex -- not allowed outside + glColor + glSecondaryColor + glIndex + glNormal + glFogCoord + glTexCoord + glMultiTexCoord + glVertexAttrib + glEvalCoord + glEvalPoint + glArrayElement -- not allowed outside + glMaterial + glEdgeFlag + glCallList + glCallLists + */ + + if (!state->replaying_list) + LOG2 ("%sglBegin %s", + (state->compiling_list || state->replaying_list ? " " : ""), + mode_desc (mode)); + + Assert (state->set.count == 0, "glBegin corrupted"); + state->set.mode = mode; + state->set.count = 0; + state->set.ncount = 0; + state->set.tcount = 0; + state->set.ccount = 0; +} + + +void +jwzgles_glDeleteLists (int id0, int range) +{ + Assert (!state->compiling_verts, "glDeleteLists not allowed inside glBegin"); + + if (state->compiling_list) + { + void_int vv[2]; + vv[0].i = id0; + vv[1].i = range; + list_push ("glDeleteLists", (list_fn_cb) &jwzgles_glDeleteLists, + PROTO_II, vv); + } + else + { + int id; + + if (!state->replaying_list) + LOG2 ("glDeleteLists %d %d", id0, range); + + for (id = id0 + range - 1; id >= id0; id--) + { + int i; + list *L; + if (id == 0) continue; /* People do this stupid thing */ + if (id > state->lists.count) break; /* this too */ + Assert (id > 0 && id <= state->lists.count, + "glDeleteLists: bogus ID"); + L = &state->lists.lists[id-1]; + Assert (L->id == id, "glDeleteLists corrupted"); + + for (i = 0; i < L->count; i++) + { + list_fn *lf = &L->fns[i]; + if (lf->arrays) + { + int j; + for (j = 0; j < 4; j++) + { + if (lf->arrays[j].data) + free (lf->arrays[j].data); + } + } + } + if (L->fns) + free (L->fns); + + memset (L, 0, sizeof (*L)); + L->id = id; + } + } +} + + +extern GLboolean +jwzgles_glIsList (GLuint id) +{ + return (id > 0 && id < state->lists.count); +} + + + +void +jwzgles_glNormal3fv (const GLfloat *v) +{ + if (state->compiling_list && !state->compiling_verts) + { + void_int vv[3]; + vv[0].f = v[0]; + vv[1].f = v[1]; + vv[2].f = v[2]; + list_push ("glNormal3f", (list_fn_cb) &jwzgles_glNormal3f, + PROTO_FFF, vv); + } + else + { + if (!state->replaying_list) + LOG5 ("%s%sglNormal3f %7.3f %7.3f %7.3f", + (state->compiling_list || state->replaying_list ? " " : ""), + (state->compiling_verts ? " rec " : ""), + v[0], v[1], v[2]); + + state->set.cnorm.x = v[0]; + state->set.cnorm.y = v[1]; + state->set.cnorm.z = v[2]; + state->set.ncount++; + if (state->set.count > 0 && state->set.ncount == 1) /* not first! */ + state->set.ncount++; + + if (! state->compiling_verts) /* outside glBegin */ + { + glNormal3f (v[0], v[1], v[2]); + CHECK("glNormal3f"); + } + } +} + + +void +jwzgles_glNormal3f (GLfloat x, GLfloat y, GLfloat z) +{ + GLfloat v[3]; + v[0] = x; + v[1] = y; + v[2] = z; + jwzgles_glNormal3fv (v); +} + + +void +jwzgles_glTexCoord4fv (const GLfloat *v) +{ + if (state->compiling_list && !state->compiling_verts) + { + void_int vv[4]; + vv[0].f = v[0]; + vv[1].f = v[1]; + vv[2].f = v[2]; + vv[3].f = v[3]; + list_push ("glTexCoord4f", (list_fn_cb) &jwzgles_glTexCoord4f, + PROTO_FFFF, vv); + } + else + { + if (!state->replaying_list) + LOG6 ("%s%sglTexCoord4f %7.3f %7.3f %7.3f %7.3f", + (state->compiling_list || state->replaying_list ? " " : ""), + (state->compiling_verts ? " rec " : ""), + v[0], v[1], v[2], v[3]); + + state->set.ctex.s = v[0]; + state->set.ctex.t = v[1]; + state->set.ctex.r = v[2]; + state->set.ctex.q = v[3]; + state->set.tcount++; + if (state->set.count > 0 && state->set.tcount == 1) /* not first! */ + state->set.tcount++; + + Assert (state->compiling_verts, "glTexCoord4fv outside glBegin"); + } +} + + +void +jwzgles_glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q) +{ + GLfloat v[4]; + v[0] = s; + v[1] = t; + v[2] = r; + v[3] = q; + jwzgles_glTexCoord4fv (v); +} + + +void +jwzgles_glTexCoord3fv (const GLfloat *v) +{ + GLfloat vv[4]; + vv[0] = v[0]; + vv[1] = v[1]; + vv[2] = v[2]; + vv[3] = 1; + jwzgles_glTexCoord4fv (vv); +} + + +void +jwzgles_glTexCoord2fv (const GLfloat *v) +{ + GLfloat vv[4]; + vv[0] = v[0]; + vv[1] = v[1]; + vv[2] = 0; + vv[3] = 1; + jwzgles_glTexCoord4fv (vv); +} + + +void +jwzgles_glTexCoord3f (GLfloat s, GLfloat t, GLfloat r) +{ + jwzgles_glTexCoord4f (s, t, r, 1); +} + + +void +jwzgles_glTexCoord2f (GLfloat s, GLfloat t) +{ + jwzgles_glTexCoord4f (s, t, 0, 1); +} + + +void +jwzgles_glTexCoord1f (GLfloat s) +{ + jwzgles_glTexCoord4f (s, 0, 0, 1); +} + + + +void +jwzgles_glColor4fv (const GLfloat *v) +{ + if (state->compiling_list && !state->compiling_verts) + { + void_int vv[4]; + vv[0].f = v[0]; + vv[1].f = v[1]; + vv[2].f = v[2]; + vv[3].f = v[3]; + list_push ("glColor4f", (list_fn_cb) &jwzgles_glColor4f, + PROTO_FFFF, vv); + } + else + { + if (!state->replaying_list) + LOG6 ("%s%sglColor4f %7.3f %7.3f %7.3f %7.3f", + (state->compiling_list || state->replaying_list ? " " : ""), + (state->compiling_verts ? " rec " : ""), + v[0], v[1], v[2], v[3]); + + state->set.ccolor.r = v[0]; + state->set.ccolor.g = v[1]; + state->set.ccolor.b = v[2]; + state->set.ccolor.a = v[3]; + state->set.ccount++; + if (state->set.count > 0 && state->set.ccount == 1) /* not first! */ + state->set.ccount++; + + if (! state->compiling_verts) /* outside glBegin */ + { + glColor4f (v[0], v[1], v[2], v[3]); + CHECK("glColor4"); + } + } +} + + +void +jwzgles_glColor4f (GLfloat r, GLfloat g, GLfloat b, GLfloat a) +{ + GLfloat v[4]; + v[0] = r; + v[1] = g; + v[2] = b; + v[3] = a; + jwzgles_glColor4fv (v); +} + + +void +jwzgles_glColor3f (GLfloat r, GLfloat g, GLfloat b) +{ + jwzgles_glColor4f (r, g, b, 1); +} + + +void +jwzgles_glColor3fv (const GLfloat *v) +{ + GLfloat vv[4]; + vv[0] = v[0]; + vv[1] = v[1]; + vv[2] = v[2]; + vv[3] = 1; + jwzgles_glColor4fv (vv); +} + + +void +jwzgles_glColor4i (GLuint r, GLuint g, GLuint b, GLuint a) +{ + jwzgles_glColor4f (r, g, b, a); +} + + +void +jwzgles_glColor3i (GLuint r, GLuint g, GLuint b) +{ + jwzgles_glColor4f (r, g, b, 1); +} + + +void +jwzgles_glColor4iv (const GLint *v) +{ + GLfloat vv[4]; + vv[0] = v[0]; + vv[1] = v[1]; + vv[2] = v[2]; + vv[3] = v[3]; + jwzgles_glColor4fv (vv); +} + + +void +jwzgles_glColor3iv (const GLint *v) +{ + GLfloat vv[4]; + vv[0] = v[0]; + vv[1] = v[1]; + vv[2] = v[2]; + vv[3] = 1; + jwzgles_glColor4fv (vv); +} + + +void +jwzgles_glColor4ub (GLubyte r, GLubyte g, GLubyte b, GLubyte a) +{ + jwzgles_glColor4f (r, g, b, a); +} + + +void +jwzgles_glColor3ub (GLubyte r, GLubyte g, GLubyte b) +{ + jwzgles_glColor4f (r, g, b, 1); +} + + +void +jwzgles_glMaterialfv (GLenum face, GLenum pname, const GLfloat *color) +{ + /* If this is called inside glBegin/glEnd with a front ambient color, + then treat it the same as glColor: set the color of the upcoming + vertex. + + Other faces or lighting types within glBegin are ignored. + */ + + if (state->compiling_verts) + { + if ((face == GL_FRONT || + face == GL_FRONT_AND_BACK) && + (pname == GL_AMBIENT || + pname == GL_DIFFUSE || + pname == GL_AMBIENT_AND_DIFFUSE)) + { + jwzgles_glColor4f (color[0], color[1], color[2], color[3]); + state->set.materialistic++; + } + else + LOG2 (" IGNORING glMaterialfv %s %s", + mode_desc(face), mode_desc(pname)); + } + else if (state->compiling_list) + { + void_int vv[6]; + vv[0].i = face; + vv[1].i = pname; + vv[2].f = color[0]; + vv[3].f = color[1]; + vv[4].f = color[2]; + vv[5].f = color[3]; + list_push ("glMaterialfv", (list_fn_cb) &jwzgles_glMaterialfv, + PROTO_IIFV, vv); + } + else + { + /* If this is called outside of glBegin/glEnd with a front + ambient color, then the intent is presumably for that color + to apply to the upcoming vertexes (which may be played back + from a list that does not have vertex colors in it). In that + case, the only way to make the colors show up is to call + glColor() with GL_COLOR_MATERIAL enabled. + + I'm not sure if this will have other inappropriate side effects... + */ + if ((face == GL_FRONT || + face == GL_FRONT_AND_BACK) && + (pname == GL_AMBIENT || + pname == GL_DIFFUSE || + pname == GL_AMBIENT_AND_DIFFUSE)) + { + jwzgles_glEnable (GL_COLOR_MATERIAL); + jwzgles_glColor4f (color[0], color[1], color[2], color[3]); + } + + /* OpenGLES seems to throw "invalid enum" for GL_FRONT -- but it + goes ahead and sets the material anyway! No error if we just + always use GL_FRONT_AND_BACK. + */ + if (face == GL_FRONT) + face = GL_FRONT_AND_BACK; + if (! state->replaying_list) + LOG7 ("direct %-12s %s %s %7.3f %7.3f %7.3f %7.3f", "glMaterialfv", + mode_desc(face), mode_desc(pname), + color[0], color[1], color[2], color[3]); + glMaterialfv (face, pname, color); /* the real one */ + CHECK("glMaterialfv"); + } +} + + +void +jwzgles_glMaterialiv (GLenum face, GLenum pname, const GLint *v) +{ + GLfloat vv[4]; + vv[0] = v[0]; + vv[1] = v[1]; + vv[2] = v[2]; + vv[3] = 1; + jwzgles_glMaterialfv (face, pname, vv); +} + +void +jwzgles_glMaterialf (GLenum face, GLenum pname, const GLfloat c) +{ + GLfloat vv[4]; + vv[0] = c; + vv[1] = c; + vv[2] = c; + vv[3] = 1; + jwzgles_glMaterialfv (face, pname, vv); +} + + +void +jwzgles_glMateriali (GLenum face, GLenum pname, const GLuint c) +{ + jwzgles_glMaterialf (face, pname, c); +} + + +void +jwzgles_glColorMaterial (GLenum face, GLenum mode) +{ + Assert (!state->compiling_verts, + "glColorMaterial not allowed inside glBegin"); +#if 0 + if (state->compiling_list) + { + void_int vv[2]; + vv[0].i = face; + vv[1].i = mode; + list_push ("glColorMaterial", (list_fn_cb) &jwzgles_glColorMaterial, + PROTO_II, vv); + } + else + { + /* No real analog to this distinction in OpenGLES, since color + arrays don't distinguish between "color" and "material", */ + Assert (0, "glColorMaterial: unimplemented mode"); + } +#endif +} + + + + +void +jwzgles_glVertex4fv (const GLfloat *v) +{ + vert_set *s = &state->set; + int count = s->count; + + Assert (state->compiling_verts, "glVertex4fv not inside glBegin"); + + LOG5("%s rec glVertex4f %7.3f %7.3f %7.3f %7.3f", + (state->compiling_list || state->replaying_list ? " " : ""), + v[0], v[1], v[2], v[3]); + + if (count >= s->size - 1) + { + int new_size = 20 + (s->size * 1.2); + + /* 4 arrays, different element sizes... + We allocate all 4 arrays just in case we need them, + but we might not end up using them all at the end. + */ + + s->verts = (XYZW *) realloc (s->verts, new_size * sizeof (*s->verts)); + Assert (s->verts, "out of memory"); + + s->norms = (XYZ *) realloc (s->norms, new_size * sizeof (*s->norms)); + Assert (s->norms, "out of memory"); + + s->tex = (STRQ *) realloc (s->tex, new_size * sizeof (*s->tex)); + Assert (s->tex, "out of memory"); + + s->color = (RGBA *) realloc (s->color, new_size * sizeof (*s->color)); + Assert (s->color, "out of memory"); + + s->size = new_size; + } + + s->verts [count].x = v[0]; + s->verts [count].y = v[1]; + s->verts [count].z = v[2]; + s->verts [count].w = v[3]; + s->norms [count] = s->cnorm; + s->tex [count] = s->ctex; + s->color [count] = s->ccolor; + s->count++; +} + + +void +jwzgles_glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w) +{ + GLfloat v[4]; + v[0] = x; + v[1] = y; + v[2] = z; + v[3] = w; + jwzgles_glVertex4fv (v); +} + +void +jwzgles_glVertex4i (GLint x, GLint y, GLint z, GLint w) +{ + jwzgles_glVertex4f (x, y, z, w); +} + +void +jwzgles_glVertex3f (GLfloat x, GLfloat y, GLfloat z) +{ + GLfloat v[4]; + v[0] = x; + v[1] = y; + v[2] = z; + v[3] = 1; + jwzgles_glVertex4fv (v); +} + +void +jwzgles_glVertex3i (GLint x, GLint y, GLint z) +{ + jwzgles_glVertex3f (x, y, z); +} + +void +jwzgles_glVertex3fv (const GLfloat *v) +{ + jwzgles_glVertex3f (v[0], v[1], v[2]); +} + +void +jwzgles_glVertex3dv (const GLdouble *v) +{ + jwzgles_glVertex3f (v[0], v[1], v[2]); +} + + +void +jwzgles_glVertex2f (GLfloat x, GLfloat y) +{ + GLfloat v[3]; + v[0] = x; + v[1] = y; + v[2] = 0; + jwzgles_glVertex3fv (v); +} + +void +jwzgles_glVertex2fv (const GLfloat *v) +{ + jwzgles_glVertex2f (v[0], v[1]); +} + +void +jwzgles_glVertex2i (GLint x, GLint y) +{ + jwzgles_glVertex2f (x, y); +} + + +void +jwzgles_glLightiv (GLenum light, GLenum pname, const GLint *params) +{ + GLfloat v[4]; + v[0] = params[0]; + v[1] = params[1]; + v[2] = params[2]; + v[3] = params[3]; + jwzgles_glLightfv (light, pname, v); +} + +void +jwzgles_glLightModeliv (GLenum pname, const GLint *params) +{ + GLfloat v[4]; + v[0] = params[0]; + v[1] = params[1]; + v[2] = params[2]; + v[3] = params[3]; + jwzgles_glLightModelfv (pname, v); +} + +void +jwzgles_glFogiv (GLenum pname, const GLint *params) +{ + GLfloat v[4]; + v[0] = params[0]; + v[1] = params[1]; + v[2] = params[2]; + v[3] = params[3]; + jwzgles_glFogfv (pname, v); +} + +void +jwzgles_glLighti (GLenum light, GLenum pname, GLint param) +{ + jwzgles_glLightf (light, pname, param); +} + +void +jwzgles_glLightModeli (GLenum pname, GLint param) +{ + jwzgles_glLightModelf (pname, param); +} + +void +jwzgles_glFogi (GLenum pname, GLint param) +{ + jwzgles_glFogf (pname, param); +} + + +void +jwzgles_glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z) +{ + jwzgles_glRotatef (angle, x, y, z); +} + + +void +jwzgles_glClipPlane (GLenum plane, const GLdouble *equation) +{ + Assert (state->compiling_verts, "glClipPlane not inside glBegin"); + Assert (0, "glClipPlane unimplemented"); /* no GLES equivalent... */ +} + + +void +jwzgles_glPolygonMode (GLenum face, GLenum mode) +{ + Assert (!state->compiling_verts, "not inside glBegin"); + if (state->compiling_list) + { + void_int vv[2]; + vv[0].i = face; + vv[1].i = mode; + list_push ("glPolygonMode", (list_fn_cb) &jwzgles_glPolygonMode, + PROTO_II, vv); + } + else + { + /* POINT and LINE don't exist in GLES */ + Assert (mode == GL_FILL, "glPolygonMode: unimplemented mode"); + } +} + + +void +jwzgles_glDrawBuffer (GLenum buf) +{ + Assert (!state->compiling_verts, "not inside glBegin"); + if (state->compiling_list) + { + void_int vv[1]; + vv[0].i = buf; + list_push ("glDrawBuffer", (list_fn_cb) &jwzgles_glDrawBuffer, + PROTO_I, vv); + } + else + { +/* Assert (buf == GL_BACK, "glDrawBuffer: back buffer only"); */ +# ifndef GL_VERSION_ES_CM_1_0 /* not compiling against OpenGLES 1.x */ + if (! state->replaying_list) + LOG1 ("direct %-12s", "glDrawBuffer"); + glDrawBuffer (buf); /* the real one */ + CHECK("glDrawBuffer"); +# endif + } +} + + +/* Given an array of sets of 4 elements of arbitrary size, convert it + to an array of sets of 6 elements instead: ABCD becomes ABC BCD. + */ +static int +cq2t (unsigned char **arrayP, int stride, int count) +{ + int count2 = count * 6 / 4; + int size = stride * count; + int size2 = stride * count2; + const unsigned char *oarray, *in; + unsigned char *array2, *oarray2, *out; + int i; + + oarray = *arrayP; + if (!oarray || count == 0) + return count2; + + array2 = (unsigned char *) malloc (size2); + Assert (array2, "out of memory"); + oarray2 = array2; + + in = oarray; + out = oarray2; + for (i = 0; i < count / 4; i++) + { + const unsigned char *a, *b, *c, *d; /* the 4 corners */ + a = in; in += stride; + b = in; in += stride; + c = in; in += stride; + d = in; in += stride; + +# define PUSH(IN) do { \ + const unsigned char *ii = IN; \ + int j; \ + for (j = 0; j < stride; j++) { \ + *out++ = *ii++; \ + }} while(0) + + PUSH (a); PUSH (b); PUSH (d); /* the 2 triangles */ + PUSH (b); PUSH (c); PUSH (d); +# undef PUSH + } + + Assert (in == oarray + size, "convert_quads corrupted"); + Assert (out == oarray2 + size2, "convert_quads corrupted"); + + free (*arrayP); + *arrayP = oarray2; + return count2; +} + + +/* Convert all coordinates in a GL_QUADS vert_set to GL_TRIANGLES. + */ +static void +convert_quads_to_triangles (vert_set *s) +{ + int count2; + Assert (s->mode == GL_QUADS, "convert_quads bad mode"); + count2 = + cq2t ((unsigned char **) &s->verts, sizeof(*s->verts), s->count); + cq2t ((unsigned char **) &s->norms, sizeof(*s->norms), s->count); + cq2t ((unsigned char **) &s->tex, sizeof(*s->tex), s->count); + cq2t ((unsigned char **) &s->color, sizeof(*s->color), s->count); + s->count = count2; + s->size = count2; + s->mode = GL_TRIANGLES; +} + + +void +jwzgles_glEnd (void) +{ + vert_set *s = &state->set; + int was_norm, was_tex, was_color, was_mat; + int is_norm, is_tex, is_color, is_mat; + + Assert (state->compiling_verts == 1, "missing glBegin"); + state->compiling_verts--; + + if (!state->replaying_list) + { + LOG5 ("%s [V = %d, N = %d, T = %d, C = %d]", + (state->compiling_list || state->replaying_list ? " " : ""), + s->count, s->ncount, s->tcount, s->ccount); + LOG1 ("%sglEnd", + (state->compiling_list || state->replaying_list ? " " : "")); + } + + if (s->count == 0) return; + + if (s->mode == GL_QUADS) + convert_quads_to_triangles (s); + else if (s->mode == GL_QUAD_STRIP) + s->mode = GL_TRIANGLE_STRIP; /* They do the same thing! */ + else if (s->mode == GL_POLYGON) + s->mode = GL_TRIANGLE_FAN; /* They do the same thing! */ + + glVertexPointer (4, GL_FLOAT, sizeof(*s->verts), s->verts); /* XYZW */ + glNormalPointer ( GL_FLOAT, sizeof(*s->norms), s->norms); /* XYZ */ + glTexCoordPointer (4, GL_FLOAT, sizeof(*s->tex), s->tex); /* STRQ */ + glColorPointer (4, GL_FLOAT, sizeof(*s->color), s->color); /* RGBA */ + CHECK("glColorPointer"); + + /* If there were no calls to glNormal3f inside of glBegin/glEnd, + don't bother enabling the normals array. + + If there was exactly *one* call to glNormal3f inside of glBegin/glEnd, + and it was before the first glVertex3f, then also don't enable the + normals array, but do emit that call to glNormal3f before calling + glDrawArrays. + + Likewise for texture coordinates and colors. + + Be careful to leave the arrays' enabled/disabled state the same as + before, or a later caller might end up using one of our arrays by + mistake. #### Actually this isn't quite right: if glEnd is in a + list, it saves the trailing enable/disable calls in the list, instead + if restoring them to what their state was before the list was run. + */ + was_norm = jwzgles_glIsEnabled (GL_NORMAL_ARRAY); + was_tex = jwzgles_glIsEnabled (GL_TEXTURE_COORD_ARRAY); + was_color = jwzgles_glIsEnabled (GL_COLOR_ARRAY); + was_mat = jwzgles_glIsEnabled (GL_COLOR_MATERIAL); + + if (s->ncount > 1) + { + is_norm = 1; + jwzgles_glEnableClientState (GL_NORMAL_ARRAY); + } + else + { + is_norm = 0; + if (s->ncount == 1) + jwzgles_glNormal3f (s->cnorm.x, s->cnorm.y, s->cnorm.z); + jwzgles_glDisableClientState (GL_NORMAL_ARRAY); + } + + if (s->tcount > 1) + { + is_tex = 1; + jwzgles_glEnableClientState (GL_TEXTURE_COORD_ARRAY); + } + else + { + is_tex = 0; + if (s->tcount == 1) + jwzgles_glTexCoord4f (s->ctex.s, s->ctex.t, s->ctex.r, s->ctex.q); + jwzgles_glDisableClientState (GL_TEXTURE_COORD_ARRAY); + } + + if (s->ccount > 1) + { + is_color = 1; + jwzgles_glEnableClientState (GL_COLOR_ARRAY); + } + else + { + is_color = 0; + if (s->ccount == 1) + jwzgles_glColor4f (s->ccolor.r, s->ccolor.g, s->ccolor.b, s->ccolor.a); + jwzgles_glDisableClientState (GL_COLOR_ARRAY); + } + + jwzgles_glEnableClientState (GL_VERTEX_ARRAY); + + /* We translated the glMaterial calls to per-vertex colors, which are + of the glColor sort, not the glMaterial sort, so automatically + turn on material mapping. Maybe this is a bad idea. + */ + if (s->materialistic && !jwzgles_glIsEnabled (GL_COLOR_MATERIAL)) + { + is_mat = 1; + jwzgles_glEnable (GL_COLOR_MATERIAL); + } + else + is_mat = 0; + + jwzgles_glDrawArrays (s->mode, 0, s->count); + +# define RESET(VAR,FN,ARG) do { \ + if (is_##VAR != was_##VAR) { \ + if (was_##VAR) jwzgles_glEnable##FN (ARG); \ + else jwzgles_glDisable##FN (ARG); \ + }} while(0) + RESET (norm, ClientState, GL_NORMAL_ARRAY); + RESET (tex, ClientState, GL_TEXTURE_COORD_ARRAY); + RESET (color, ClientState, GL_COLOR_ARRAY); + RESET (mat, , GL_COLOR_MATERIAL); +# undef RESET + + s->count = 0; + s->ncount = 0; + s->tcount = 0; + s->ccount = 0; + s->materialistic = 0; +} + + +void +jwzgles_glCallList (int id) +{ + if (state->compiling_list) + { + /* Yes, you can call lists inside of lists. + Yes, recursion would be a mistake. */ + void_int vv[1]; + vv[0].i = id; + list_push ("glCallList", (list_fn_cb) &jwzgles_glCallList, PROTO_I, vv); + } + else + { + list *L; + int i; + + state->replaying_list++; + +# ifdef DEBUG + fprintf (stderr, "\n"); + LOG1 ("glCallList %d", id); +# endif + + Assert (id > 0 && id <= state->lists.count, "glCallList: bogus ID"); + L = &state->lists.lists[id-1]; + Assert (id == L->id, "glCallList corrupted"); + + for (i = 0; i < L->count; i++) + { + list_fn *F = &L->fns[i]; + list_fn_cb fn = F->fn; + void_int *av = F->argv; + + switch (F->proto) { + case PROTO_VOID: + LOG1 (" call %-12s", F->name); + ((void (*) (void)) fn) (); + break; + + case PROTO_I: + if (fn == (list_fn_cb) &jwzgles_glBegin || + fn == (list_fn_cb) &jwzgles_glFrontFace || + fn == (list_fn_cb) &jwzgles_glEnable || + fn == (list_fn_cb) &jwzgles_glDisable || + fn == (list_fn_cb) &jwzgles_glEnableClientState || + fn == (list_fn_cb) &jwzgles_glDisableClientState || + fn == (list_fn_cb) &jwzgles_glShadeModel || + fn == (list_fn_cb) &jwzgles_glMatrixMode) + LOG2 (" call %-12s %s", F->name, mode_desc (av[0].i)); + else + LOG2 (" call %-12s %d", F->name, av[0].i); + ((void (*) (int)) fn) (av[0].i); + break; + + case PROTO_F: + LOG2 (" call %-12s %7.3f", F->name, av[0].f); + ((void (*) (GLfloat)) fn) (av[0].f); + break; + + case PROTO_II: + if (fn == (list_fn_cb) &jwzgles_glBindTexture) + LOG3 (" call %-12s %s %d", F->name, + mode_desc (av[0].i), av[1].i); + else + LOG3 (" call %-12s %d %d", F->name, av[0].i, av[1].i); + ((void (*) (int, int)) fn) (av[0].i, av[1].i); + break; + + case PROTO_FF: + LOG3 (" call %-12s %7.3f %7.3f", F->name, av[0].f, av[1].f); + ((void (*) (GLfloat, GLfloat)) fn) (av[0].f, av[1].f); + break; + + case PROTO_IF: + LOG3 (" call %-12s %s %7.3f", F->name, + mode_desc (av[0].f), av[1].f); + ((void (*) (GLint, GLfloat)) fn) (av[0].i, av[1].f); + break; + + case PROTO_III: III: + if (fn == (list_fn_cb) &jwzgles_glDrawArrays || + fn == (list_fn_cb) &jwzgles_glTexParameteri) + LOG4 (" call %-12s %s %d %d", F->name, + mode_desc (av[0].i), av[1].i, av[2].i); + else + LOG4 (" call %-12s %d %d %d", F->name, + av[0].i, av[1].i, av[2].i); + ((void (*) (int, int, int)) fn) (av[0].i, av[1].i, av[2].i); + break; + + case PROTO_FFF: + LOG4 (" call %-12s %7.3f %7.3f %7.3f", F->name, + av[0].f, av[1].f, av[2].f); + ((void (*) (GLfloat, GLfloat, GLfloat)) fn) + (av[0].f, av[1].f, av[2].f); + break; + + case PROTO_IIF: + LOG4 (" call %-12s %s %s %7.3f", F->name, + mode_desc (av[0].i), mode_desc (av[1].i), av[2].f); + ((void (*) (int, int, GLfloat)) fn) (av[0].i, av[1].i, av[2].f); + break; + + case PROTO_IIII: + LOG5 (" call %-12s %d %d %d %d", F->name, + av[0].i, av[1].i, av[2].i, av[3].i); + ((void (*) (int, int, int, int)) fn) + (av[0].i, av[1].i, av[2].i, av[3].i); + break; + + case PROTO_FFFF: + LOG5 (" call %-12s %7.3f %7.3f %7.3f %7.3f", F->name, + av[0].f, av[1].f, av[2].f, av[3].f); + ((void (*) (GLfloat, GLfloat, GLfloat, GLfloat)) fn) + (av[0].f, av[1].f, av[2].f, av[3].f); + break; + + case PROTO_IFV: + { + GLfloat v[4]; + v[0] = av[1].f; + v[1] = av[2].f; + v[2] = av[3].f; + v[3] = av[4].f; + LOG6 (" call %-12s %s %3.1f %3.1f %3.1f %3.1f", F->name, + mode_desc (av[0].i), + av[1].f, av[2].f, av[3].f, av[4].f); + ((void (*) (int, const GLfloat *)) fn) (av[0].i, v); + } + break; + + case PROTO_IIFV: + { + GLfloat v[4]; + v[0] = av[2].f; + v[1] = av[3].f; + v[2] = av[4].f; + v[3] = av[5].f; + LOG7 (" call %-12s %s %-8s %3.1f %3.1f %3.1f %3.1f", F->name, + mode_desc (av[0].i), mode_desc (av[1].i), + av[2].f, av[3].f, av[4].f, av[5].f); + ((void (*) (int, int, const GLfloat *)) fn) + (av[0].i, av[1].i, v); + } + break; + + case PROTO_IIV: + { + int v[4]; + v[0] = av[1].i; + v[1] = av[2].i; + v[2] = av[3].i; + v[3] = av[4].i; + LOG6 (" call %-12s %s %3d %3d %3d %3d", F->name, + mode_desc (av[0].i), + av[1].i, av[2].i, av[3].i, av[4].i); + ((void (*) (int, const int *)) fn) (av[0].i, v); + } + break; + + case PROTO_IIIV: + { + int v[4]; + v[0] = av[2].i; + v[1] = av[3].i; + v[2] = av[4].i; + v[3] = av[5].i; + LOG7 (" call %-12s %s %-8s %3d %3d %3d %3d", F->name, + mode_desc (av[0].i), mode_desc (av[1].i), + av[2].i, av[3].i, av[4].i, av[5].i); + ((void (*) (int, int, const int *)) fn) + (av[0].i, av[1].i, v); + } + break; + + case PROTO_ARRAYS: + restore_arrays (F, av[1].i + av[2].i); + goto III; + break; + + case PROTO_FV16: + { + GLfloat m[16]; + int i; + for (i = 0; i < countof(m); i++) + m[i] = av[i].f; + LOG17 (" call %-12s [" + "%8.3f %8.3f %8.3f %8.3f " "\n\t\t\t " + "%8.3f %8.3f %8.3f %8.3f " "\n\t\t\t " + "%8.3f %8.3f %8.3f %8.3f " "\n\t\t\t " + "%8.3f %8.3f %8.3f %8.3f ]", + F->name, + m[0], m[1], m[2], m[3], + m[4], m[5], m[6], m[7], + m[8], m[9], m[10], m[11], + m[12], m[13], m[14], m[15]); + ((void (*) (GLfloat *)) fn) (m); + } + break; + + default: + Assert (0, "bogus prototype"); + break; + } + } + + LOG1 ("glCallList %d done\n", id); + + state->replaying_list--; + Assert (state->replaying_list >= 0, "glCallList corrupted"); + } +} + + +/* When we save a call to glDrawArrays into a display list, we also need to + save the prevailing copy of the arrays that it will use, and restore them + later. + */ +static void +save_arrays (list_fn *F, int count) +{ + int i = 0; + draw_array *A = (draw_array *) calloc (4, sizeof (*A)); + Assert (A, "out of memory"); + +/* if (state->set.count > 0) */ + { + glGetIntegerv (GL_VERTEX_ARRAY_SIZE, &A[i].size); + glGetIntegerv (GL_VERTEX_ARRAY_TYPE, &A[i].type); + glGetIntegerv (GL_VERTEX_ARRAY_STRIDE, &A[i].stride); + glGetPointerv (GL_VERTEX_ARRAY_POINTER, &A[i].data); + CHECK("glGetPointerv"); + copy_array_data (&A[i], count, "vert"); + } + + i++; + if (state->set.ncount > 1) + { + A[i].size = 3; + glGetIntegerv (GL_NORMAL_ARRAY_TYPE, &A[i].type); + glGetIntegerv (GL_NORMAL_ARRAY_STRIDE, &A[i].stride); + glGetPointerv (GL_NORMAL_ARRAY_POINTER, &A[i].data); + CHECK("glGetPointerv"); + copy_array_data (&A[i], count, "norm"); + } + + i++; + if (state->set.tcount > 1) + { + glGetIntegerv (GL_TEXTURE_COORD_ARRAY_SIZE, &A[i].size); + glGetIntegerv (GL_TEXTURE_COORD_ARRAY_TYPE, &A[i].type); + glGetIntegerv (GL_TEXTURE_COORD_ARRAY_STRIDE, &A[i].stride); + glGetPointerv (GL_TEXTURE_COORD_ARRAY_POINTER, &A[i].data); + CHECK("glGetPointerv"); + copy_array_data (&A[i], count, "tex "); + } + + i++; + if (state->set.ccount > 1) + { + glGetIntegerv (GL_COLOR_ARRAY_SIZE, &A[i].size); + glGetIntegerv (GL_COLOR_ARRAY_TYPE, &A[i].type); + glGetIntegerv (GL_COLOR_ARRAY_STRIDE, &A[i].stride); + glGetPointerv (GL_COLOR_ARRAY_POINTER, &A[i].data); + CHECK("glGetPointerv"); + copy_array_data (&A[i], count, "col "); + } + + /* Freed by glDeleteLists. */ + + Assert (!F->arrays, "save_arrays corrupted"); + F->arrays = A; +} + + +#ifdef DEBUG + +static void +dump_array_data (draw_array *A, int count, + const char *action, const char *name, const void *old) +{ + int bytes = count * A->stride; + + Assert (bytes == A->bytes, "array data corrupted"); + + fprintf (stderr, "jwzgles: %s %s %d %s %2d, %4d = %5d @ %lX", + action, name, + A->size, mode_desc(A->type), A->stride, + count, bytes, (unsigned long) A->data); + if (old) + fprintf (stderr, " / %lX", (unsigned long) old); + fprintf (stderr, "\n"); + +# if 0 + { + unsigned char *b = (unsigned char *) A->data; + int i; + for (i = 0; i < count; i++) + { + int j; + GLfloat *f = (GLfloat *) b; + int s = A->size; + if (s == 0) s = 3; /* normals */ + fprintf (stderr, "jwzgles: "); + for (j = 0; j < s; j++) + fprintf (stderr, " %7.3f", f[j]); + fprintf (stderr, "\n"); + b += A->stride; + } + } +# endif +} + +static void +dump_direct_array_data (int count) +{ + draw_array A; + + if (jwzgles_glIsEnabled (GL_VERTEX_ARRAY)) + { + glGetIntegerv (GL_VERTEX_ARRAY_SIZE, &A.size); + glGetIntegerv (GL_VERTEX_ARRAY_TYPE, &A.type); + glGetIntegerv (GL_VERTEX_ARRAY_STRIDE, &A.stride); + glGetPointerv (GL_VERTEX_ARRAY_POINTER, &A.data); + A.bytes = count * A.stride; + dump_array_data (&A, count, "direct", "vertex ", 0); + } + if (jwzgles_glIsEnabled (GL_NORMAL_ARRAY)) + { + A.size = 0; + glGetIntegerv (GL_NORMAL_ARRAY_TYPE, &A.type); + glGetIntegerv (GL_NORMAL_ARRAY_STRIDE, &A.stride); + glGetPointerv (GL_NORMAL_ARRAY_POINTER, &A.data); + A.bytes = count * A.stride; + dump_array_data (&A, count, "direct", "normal ", 0); + } + if (jwzgles_glIsEnabled (GL_TEXTURE_COORD_ARRAY)) + { + glGetIntegerv (GL_TEXTURE_COORD_ARRAY_SIZE, &A.size); + glGetIntegerv (GL_TEXTURE_COORD_ARRAY_TYPE, &A.type); + glGetIntegerv (GL_TEXTURE_COORD_ARRAY_STRIDE, &A.stride); + glGetPointerv (GL_TEXTURE_COORD_ARRAY_POINTER, &A.data); + A.bytes = count * A.stride; + dump_array_data (&A, count, "direct", "texture", 0); + } + if (jwzgles_glIsEnabled (GL_COLOR_ARRAY)) + { + glGetIntegerv (GL_COLOR_ARRAY_SIZE, &A.size); + glGetIntegerv (GL_COLOR_ARRAY_TYPE, &A.type); + glGetIntegerv (GL_COLOR_ARRAY_STRIDE, &A.stride); + glGetPointerv (GL_COLOR_ARRAY_POINTER, &A.data); + A.bytes = count * A.stride; + dump_array_data (&A, count, "direct", "color ", 0); + } +} + +#endif /* DEBUG */ + + +static void +copy_array_data (draw_array *A, int count, const char *name) +{ + /* Instead of just memcopy'ing the whole array and obeying its previous + 'stride' value, we make up a more compact array. This is because if + the same array data is being used with multiple component types, + e.g. with glInterleavedArrays, we don't want to copy all of the + data multiple times. + */ + int stride2, bytes, i, j; + const void *old; + void *data2; + const GLfloat *IF; + GLfloat *OF; + const unsigned char *IB; + unsigned char *OB; + + if (! A->data) return; + + Assert (A->size >= 2 && A->size <= 4, "bogus array size"); + + switch (A->type) { + case GL_FLOAT: stride2 = A->size * sizeof(GLfloat); break; + case GL_UNSIGNED_BYTE: stride2 = A->size; break; + default: Assert (0, "bogus array type"); break; + } + + bytes = count * stride2; + Assert (bytes > 0, "bogus array count or stride"); + Assert (A->data, "missing array data"); + data2 = (void *) malloc (bytes); + Assert (data2, "out of memory"); + + IB = (const unsigned char *) A->data; + OB = (unsigned char *) data2; + IF = (const GLfloat *) A->data; + OF = (GLfloat *) data2; + + switch (A->type) { + case GL_FLOAT: + for (i = 0; i < count; i++) + { + for (j = 0; j < A->size; j++) + *OF++ = IF[j]; + IF = (const GLfloat *) (((const unsigned char *) IF) + A->stride); + } + break; + case GL_UNSIGNED_BYTE: + for (i = 0; i < count; i++) + { + for (j = 0; j < A->size; j++) + *OB++ = IB[j]; + IB += A->stride; + } + break; + default: + Assert (0, "bogus array type"); + break; + } + + old = A->data; + A->data = data2; + A->bytes = bytes; + A->stride = stride2; + +# ifdef DEBUG + dump_array_data (A, count, "saved", name, old); +# endif +} + + +static void +restore_arrays (list_fn *F, int count) +{ + int i = 0; + draw_array *A = F->arrays; + Assert (A, "missing array"); + + for (i = 0; i < 4; i++) + { + const char *name; + if (! A[i].data) continue; + switch (i) { + case 0: glVertexPointer (A[i].size, A[i].type, A[i].stride, A[i].data); + name = "vertex "; + CHECK("glVertexPointer"); + break; + case 1: glNormalPointer ( A[i].type, A[i].stride, A[i].data); + name = "normal "; + CHECK("glNormalPointer"); + break; + case 2: glTexCoordPointer(A[i].size, A[i].type, A[i].stride, A[i].data); + name = "texture"; + CHECK("glTexCoordPointer"); + break; + case 3: glColorPointer (A[i].size, A[i].type, A[i].stride, A[i].data); + name = "color "; + CHECK("glColorPointer"); + break; + default: Assert (0, "wat"); break; + } + +# ifdef DEBUG + dump_array_data (&A[i], count, "restored", name, 0); +# endif + } +} + + +void +jwzgles_glDrawArrays (GLuint mode, GLuint first, GLuint count) +{ + if (state->compiling_list) + { + void_int vv[3]; + vv[0].i = mode; + vv[1].i = first; + vv[2].i = count; + list_push ("glDrawArrays", (list_fn_cb) &jwzgles_glDrawArrays, + PROTO_ARRAYS, vv); + } + else + { +# ifdef DEBUG + if (! state->replaying_list) { + LOG4("direct %-12s %d %d %d", "glDrawArrays", mode, first, count); + dump_direct_array_data (first + count); + } +# endif + glDrawArrays (mode, first, count); /* the real one */ + CHECK("glDrawArrays"); + } +} + + +void +jwzgles_glInterleavedArrays (GLenum format, GLsizei stride, const void *data) +{ + /* We can implement this by calling the various *Pointer functions + with offsets into the same data, taking advantage of stride. + */ + const unsigned char *c = (const unsigned char *) data; +# define B 1 +# define F sizeof(GLfloat) + + Assert (!state->compiling_verts, + "glInterleavedArrays not allowed inside glBegin"); + + jwzgles_glEnableClientState (GL_VERTEX_ARRAY); + + if (!state->replaying_list) + LOG4 ("%sglInterleavedArrays %s %d %lX", + (state->compiling_list || state->replaying_list ? " " : ""), + mode_desc (format), stride, (unsigned long) data); + + switch (format) { + case GL_V2F: + glVertexPointer (2, GL_FLOAT, stride, c); + CHECK("glVertexPointer"); + if (!state->replaying_list) + LOG3 ("%s -> glVertexPointer 2 FLOAT %d %lX", + (state->compiling_list || state->replaying_list ? " " : ""), + stride, (unsigned long) c); + break; + case GL_V3F: + glVertexPointer (3, GL_FLOAT, stride, c); + CHECK("glVertexPointer"); + if (!state->replaying_list) + LOG3 ("%s -> glVertexPointer 3 FLOAT %d %lX", + (state->compiling_list || state->replaying_list ? " " : ""), + stride, (unsigned long) c); + break; + case GL_C4UB_V2F: + if (stride == 0) + stride = 4*B + 2*F; + jwzgles_glEnableClientState (GL_COLOR_ARRAY); + glColorPointer (4, GL_UNSIGNED_BYTE, stride, c); + CHECK("glColorPointer"); + c += 4*B; /* #### might be incorrect float-aligned address */ + glVertexPointer (2, GL_FLOAT, stride, c); + break; + case GL_C4UB_V3F: + if (stride == 0) + stride = 4*B + 3*F; + jwzgles_glEnableClientState (GL_COLOR_ARRAY); + glColorPointer (4, GL_UNSIGNED_BYTE, stride, c); + CHECK("glColorPointer"); + c += 4*B; + glVertexPointer (3, GL_FLOAT, stride, c); + CHECK("glVertexPointer"); + break; + case GL_C3F_V3F: + if (stride == 0) + stride = 3*F + 3*F; + jwzgles_glEnableClientState (GL_COLOR_ARRAY); + glColorPointer (3, GL_FLOAT, stride, c); + CHECK("glColorPointer"); + c += 3*F; + glVertexPointer (3, GL_FLOAT, stride, c); + CHECK("glVertexPointer"); + break; + case GL_N3F_V3F: + if (stride == 0) + stride = 3*F + 3*F; + jwzgles_glEnableClientState (GL_NORMAL_ARRAY); + glNormalPointer (GL_FLOAT, stride, c); + CHECK("glNormalPointer"); + if (!state->replaying_list) + LOG3 ("%s -> glNormalPointer FLOAT %d %lX", + (state->compiling_list || state->replaying_list ? " " : ""), + stride, (unsigned long) c); + c += 3*F; + glVertexPointer (3, GL_FLOAT, stride, c); + CHECK("glVertexPointer"); + if (!state->replaying_list) + LOG3 ("%s -> glVertexPointer 3 FLOAT %d %lX", + (state->compiling_list || state->replaying_list ? " " : ""), + stride, (unsigned long) c); + break; + case GL_C4F_N3F_V3F: + if (stride == 0) + stride = 4*F + 3*F + 3*F; + jwzgles_glEnableClientState (GL_COLOR_ARRAY); + glColorPointer (4, GL_FLOAT, stride, c); + CHECK("glColorPointer"); + c += 4*F; + jwzgles_glEnableClientState (GL_NORMAL_ARRAY); + glNormalPointer (GL_FLOAT, stride, c); + CHECK("glNormalPointer"); + c += 3*F; + glVertexPointer (3, GL_FLOAT, stride, c); + CHECK("glVertexPointer"); + break; + case GL_T2F_V3F: + if (stride == 0) + stride = 2*F + 3*F; + jwzgles_glEnableClientState (GL_TEXTURE_COORD_ARRAY); + glTexCoordPointer (2, GL_FLOAT, stride, c); + CHECK("glTexCoordPointer"); + c += 2*F; + glVertexPointer (3, GL_FLOAT, stride, c); + CHECK("glVertexPointer"); + break; + case GL_T4F_V4F: + if (stride == 0) + stride = 4*F + 4*F; + jwzgles_glEnableClientState (GL_TEXTURE_COORD_ARRAY); + glTexCoordPointer (4, GL_FLOAT, stride, c); + CHECK("glTexCoordPointer"); + c += 4*F; + glVertexPointer (4, GL_FLOAT, stride, c); + CHECK("glVertexPointer"); + break; + case GL_T2F_C4UB_V3F: + if (stride == 0) + stride = 2*F + 4*B + 3*F; + jwzgles_glEnableClientState (GL_TEXTURE_COORD_ARRAY); + glTexCoordPointer (2, GL_FLOAT, stride, c); + CHECK("glTexCoordPointer"); + c += 2*F; + jwzgles_glEnableClientState (GL_COLOR_ARRAY); + glColorPointer (4, GL_UNSIGNED_BYTE, stride, c); + CHECK("glColorPointer"); + c += 4*B; + glVertexPointer (3, GL_FLOAT, stride, c); + CHECK("glVertexPointer"); + break; + case GL_T2F_C3F_V3F: + if (stride == 0) + stride = 2*F + 3*F + 3*F; + jwzgles_glEnableClientState (GL_TEXTURE_COORD_ARRAY); + glTexCoordPointer (2, GL_FLOAT, stride, c); + CHECK("glTexCoordPointer"); + c += 2*F; + jwzgles_glEnableClientState (GL_COLOR_ARRAY); + glColorPointer (3, GL_FLOAT, stride, c); + CHECK("glColorPointer"); + c += 3*F; + glVertexPointer (3, GL_FLOAT, stride, c); + CHECK("glVertexPointer"); + break; + case GL_T2F_N3F_V3F: + if (stride == 0) + stride = 2*F + 3*F + 3*F; + jwzgles_glEnableClientState (GL_TEXTURE_COORD_ARRAY); + glTexCoordPointer (2, GL_FLOAT, stride, c); + CHECK("glTexCoordPointer"); + c += 2*F; + jwzgles_glEnableClientState (GL_NORMAL_ARRAY); + glNormalPointer (GL_FLOAT, stride, c); + CHECK("glNormalPointer"); + c += 3*F; + glVertexPointer (3, GL_FLOAT, stride, c); + CHECK("glVertexPointer"); + break; + case GL_T2F_C4F_N3F_V3F: + if (stride == 0) + stride = 2*F + 4*F + 3*F + 3*F; + jwzgles_glEnableClientState (GL_TEXTURE_COORD_ARRAY); + glTexCoordPointer (2, GL_FLOAT, stride, c); + CHECK("glTexCoordPointer"); + c += 2*F; + jwzgles_glEnableClientState (GL_COLOR_ARRAY); + glColorPointer (3, GL_FLOAT, stride, c); + CHECK("glColorPointer"); + c += 3*F; + jwzgles_glEnableClientState (GL_NORMAL_ARRAY); + glNormalPointer (GL_FLOAT, stride, c); + CHECK("glNormalPointer"); + c += 3*F; + glVertexPointer (3, GL_FLOAT, stride, c); + CHECK("glVertexPointer"); + break; + case GL_T4F_C4F_N3F_V4F: + if (stride == 0) + stride = 4*F + 4*F + 3*F + 4*F; + jwzgles_glEnableClientState (GL_TEXTURE_COORD_ARRAY); + glTexCoordPointer (4, GL_FLOAT, stride, c); + CHECK("glTexCoordPointer"); + c += 4*F; + jwzgles_glEnableClientState (GL_COLOR_ARRAY); + glColorPointer (4, GL_FLOAT, stride, c); + CHECK("glColorPointer"); + c += 4*F; + jwzgles_glEnableClientState (GL_NORMAL_ARRAY); + glNormalPointer (GL_FLOAT, stride, c); + CHECK("glNormalPointer"); + c += 3*F; + glVertexPointer (3, GL_FLOAT, stride, c); + CHECK("glVertexPointer"); + break; + default: + Assert (0, "glInterleavedArrays: bogus format"); + break; + } + +# undef B +# undef F +} + + + +void +jwzgles_glEnableClientState (GLuint cap) +{ + if (state->compiling_list) + { + void_int vv[1]; + vv[0].i = cap; + list_push ("glEnableClientState", + (list_fn_cb) &jwzgles_glEnableClientState, + PROTO_I, vv); + } + else + { + if (! state->replaying_list) + LOG2 ("direct %-12s %s", "glEnableClientState", mode_desc(cap)); + glEnableClientState (cap); /* the real one */ + CHECK("glEnableClientState"); + } + + switch (cap) { + case GL_NORMAL_ARRAY: + state->set.ncount += 2; + state->enabled |= ISENABLED_NORM_ARRAY; + break; + case GL_TEXTURE_COORD_ARRAY: + state->set.tcount += 2; + state->enabled |= ISENABLED_TEX_ARRAY; + break; + case GL_COLOR_ARRAY: + state->set.ccount += 2; + state->enabled |= ISENABLED_COLOR_ARRAY; + break; + default: break; + } +} + + +void +jwzgles_glDisableClientState (GLuint cap) +{ + if (state->compiling_list) + { + void_int vv[1]; + vv[0].i = cap; + list_push ("glDisableClientState", + (list_fn_cb) &jwzgles_glDisableClientState, + PROTO_I, vv); + } + else + { + if (! state->replaying_list) + LOG2 ("direct %-12s %s", "glDisableClientState", mode_desc(cap)); + glDisableClientState (cap); /* the real one */ + CHECK("glDisableClientState"); + } + + switch (cap) { + case GL_NORMAL_ARRAY: + state->set.ncount = 0; + state->enabled &= ~ISENABLED_NORM_ARRAY; + break; + case GL_TEXTURE_COORD_ARRAY: + state->set.tcount = 0; + state->enabled &= ~ISENABLED_TEX_ARRAY; + break; + case GL_COLOR_ARRAY: + state->set.ccount = 0; + state->enabled &= ~ISENABLED_COLOR_ARRAY; + break; + default: + break; + } +} + + +void +jwzgles_glMultMatrixf (const GLfloat *m) +{ + Assert (!state->compiling_verts, + "glMultMatrixf not allowed inside glBegin"); + if (state->compiling_list) + { + void_int vv[16]; + int i; + for (i = 0; i < countof(vv); i++) + vv[i].f = m[i]; + list_push ("glMultMatrixf", (list_fn_cb) &jwzgles_glMultMatrixf, + PROTO_FV16, vv); + } + else + { + if (! state->replaying_list) + LOG1 ("direct %-12s", "glMultMatrixf"); + glMultMatrixf (m); /* the real one */ + CHECK("glMultMatrixf"); + } +} + + +void +jwzgles_glClearIndex(GLfloat c) +{ + /* Does GLES even do indexed color? */ + Assert (0, "glClearIndex unimplemented"); +} + + +void +jwzgles_glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, + GLfloat xmove, GLfloat ymove, const GLubyte *bitmap) +{ + Assert (0, "glBitmap unimplemented"); +} + +void +jwzgles_glPushAttrib(int flags) +{ + Assert (0, "glPushAttrib unimplemented"); +} + +void +jwzgles_glPopAttrib(void) +{ + Assert (0, "glPopAttrib unimplemented"); +} + + +/* These are needed for object hit detection in pinion. + Might need to rewrite that code entirely. Punt for now. + */ +void +jwzgles_glInitNames (void) +{ +/* Assert (0, "glInitNames unimplemented");*/ +} + +void +jwzgles_glPushName (GLuint name) +{ +/* Assert (0, "glPushName unimplemented");*/ +} + +GLuint +jwzgles_glPopName (void) +{ +/* Assert (0, "glPopName unimplemented");*/ + return 0; +} + +GLuint +jwzgles_glRenderMode (GLuint mode) +{ +/* Assert (0, "glRenderMode unimplemented");*/ + return 0; +} + +void +jwzgles_glSelectBuffer (GLsizei size, GLuint *buf) +{ +/* Assert (0, "glSelectBuffer unimplemented");*/ +} + + +void +jwzgles_glGenTextures (GLuint n, GLuint *ret) +{ + Assert (!state->compiling_verts, + "glGenTextures not allowed inside glBegin"); + /* technically legal, but stupid! */ + Assert (!state->compiling_list, + "glGenTextures not allowed inside glNewList"); + if (! state->replaying_list) + LOG1 ("direct %-12s", "glGenTextures"); + glGenTextures (n, ret); /* the real one */ + CHECK("glGenTextures"); +} + + +/* return the next larger power of 2. */ +static int +to_pow2 (int value) +{ + int i = 1; + while (i < value) i <<= 1; + return i; +} + +void +jwzgles_glTexImage1D (GLenum target, GLint level, + GLint internalFormat, + GLsizei width, GLint border, + GLenum format, GLenum type, + const GLvoid *pixels) +{ + Assert (!state->compiling_verts, "glTexImage1D not allowed inside glBegin"); + /* technically legal, but stupid! */ + Assert (!state->compiling_list, "glTexImage1D inside glNewList"); + Assert (width == to_pow2(width), "width must be a power of 2"); + Assert (0, "glTexImage1D unimplemented"); /* does not exist in GLES */ +} + +void +jwzgles_glTexImage2D (GLenum target, + GLint level, + GLint internalFormat, + GLsizei width, + GLsizei height, + GLint border, + GLenum format, + GLenum type, + const GLvoid *data) +{ + GLvoid *d2 = (GLvoid *) data; + Assert (!state->compiling_verts, "glTexImage2D not allowed inside glBegin"); + Assert (!state->compiling_list, /* technically legal, but stupid! */ + "glTexImage2D not allowed inside glNewList"); + + Assert (width == to_pow2(width), "width must be a power of 2"); + Assert (height == to_pow2(height), "height must be a power of 2"); + + /* OpenGLES no longer supports "4" as a synonym for "RGBA". */ + switch (internalFormat) { + case 1: internalFormat = GL_LUMINANCE; break; + case 2: internalFormat = GL_LUMINANCE_ALPHA; break; + case 3: internalFormat = GL_RGB; break; + case 4: internalFormat = GL_RGBA; break; + } + + /* GLES does not let us omit the data pointer to create a blank texture. */ + if (! data) + { + d2 = (GLvoid *) calloc (1, width * height * sizeof(GLfloat) * 4); + Assert (d2, "out of memory"); + } + + if (internalFormat == GL_RGB && format == GL_RGBA) + internalFormat = GL_RGBA; /* WTF */ + + if (! state->replaying_list) + LOG10 ("direct %-12s %s %d %s %d %d %d %s %s 0x%lX", "glTexImage2D", + mode_desc(target), level, mode_desc(internalFormat), + width, height, border, mode_desc(format), mode_desc(type), + (unsigned long) d2); + glTexImage2D (target, level, internalFormat, width, height, border, + format, type, d2); /* the real one */ + CHECK("glTexImage2D"); + + if (d2 != data) free (d2); +} + +void +jwzgles_glTexSubImage2D (GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLsizei width, GLsizei height, + GLenum format, GLenum type, + const GLvoid *pixels) +{ + Assert (!state->compiling_verts, + "glTexSubImage2D not allowed inside glBegin"); + Assert (!state->compiling_list, /* technically legal, but stupid! */ + "glTexSubImage2D not allowed inside glNewList"); + + if (! state->replaying_list) + LOG10 ("direct %-12s %s %d %d %d %d %d %s %s 0x%lX", "glTexSubImage2D", + mode_desc(target), level, xoffset, yoffset, width, height, + mode_desc (format), mode_desc (type), (unsigned long) pixels); + glTexSubImage2D (target, level, xoffset, yoffset, width, height, + format, type, pixels); /* the real one */ + CHECK("glTexSubImage2D"); +} + +void +jwzgles_glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, + GLint x, GLint y, GLsizei width, GLsizei height, + GLint border) +{ + Assert (!state->compiling_verts, + "glCopyTexImage2D not allowed inside glBegin"); + Assert (!state->compiling_list, /* technically legal, but stupid! */ + "glCopyTexImage2D not allowed inside glNewList"); + if (! state->replaying_list) + LOG9 ("direct %-12s %s %d %s %d %d %d %d %d", "glCopyTexImage2D", + mode_desc(target), level, mode_desc(internalformat), + x, y, width, height, border); + glCopyTexImage2D (target, level, internalformat, x, y, width, height, + border); /* the real one */ + CHECK("glCopyTexImage2D"); +} + + +void +jwzgles_glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params) +{ + /* OpenGLES doesn't have this at all! + "Oh, just rewrite that code to use GPU shaders", they say. + How fucking convenient. + + So, when this is enabled, we could emit a GL_TEXTURE_COORD_ARRAY + and compute coords for each vertex in the current GL_VERTEX_ARRAY + as per http://www.opengl.org/wiki/Mathematics_of_glTexGen + but holy shit, what a pain in the ass! + + For GL_OBJECT_LINEAR, we can just re-use the vertex array as + the texture array, using a proper stride. That's hardly worth + the effort, though, because bouncingcow is the only hack that + uses that, and not even by default. + */ + Assert (coord == GL_S || coord == GL_T, "glTexGenfv: unimplemented coord"); + + /* This is probably default-ish, so do nothing. */ + if (pname == GL_EYE_PLANE) return; + + Assert (pname == GL_TEXTURE_GEN_MODE, "glTexGenfv: unimplemented name"); + Assert (params[0] == GL_EYE_LINEAR, "glTexGenfv: unimplemented mode"); +} + +void +jwzgles_glTexGeni (GLenum coord, GLenum pname, GLint param) +{ + GLfloat v = param; + jwzgles_glTexGenfv (coord, pname, &v); +} + + +int +jwzgles_gluBuild2DMipmaps (GLenum target, + GLint internalFormat, + GLsizei width, + GLsizei height, + GLenum format, + GLenum type, + const GLvoid *data) +{ + /* Not really bothering with mipmapping; only making one level. + Note that this required a corresponding hack in glTexParameterf(). + */ + + int w2 = to_pow2(width); + int h2 = to_pow2(height); + + void *d2 = (void *) data; + + /* OpenGLES no longer supports "4" as a synonym for "RGBA". */ + switch (internalFormat) { + case 1: internalFormat = GL_LUMINANCE; break; + case 2: internalFormat = GL_LUMINANCE_ALPHA; break; + case 3: internalFormat = GL_RGB; break; + case 4: internalFormat = GL_RGBA; break; + } + +/* if (w2 < h2) w2 = h2; + if (h2 < w2) h2 = w2;*/ + + if (w2 != width || h2 != height) + { + /* Scale up the image bits to fit the power-of-2 texture. + We have to do this because the mipmap API assumes that + the texture bits go to texture coordinates 1.0 x 1.0. + This could be more efficient, but it doesn't happen often. + */ + int istride = (format == GL_RGBA ? 4 : 3); + int ostride = 4; + int ibpl = istride * width; + int obpl = ostride * w2; + int oy; + const unsigned char *in = (unsigned char *) data; + unsigned char *out = (void *) malloc (h2 * obpl); + Assert (out, "out of memory"); + d2 = out; + + for (oy = 0; oy < h2; oy++) + { + int iy = oy * height / h2; + const unsigned char *iline = in + (iy * ibpl); + unsigned char *oline = out + (oy * obpl); + int ox; + for (ox = 0; ox < w2; ox++) + { + int ix = ox * width / w2; + const unsigned char *i = iline + (ix * istride); + unsigned char *o = oline + (ox * ostride); + *o++ = *i++; /* R */ + *o++ = *i++; /* G */ + *o++ = *i++; /* B */ + *o++ = (istride == 4 ? *i : 0xFF); /* A */ + } + } + width = w2; + height = h2; + internalFormat = GL_RGBA; + format = GL_RGBA; + } + + jwzgles_glTexImage2D (target, 0, internalFormat, w2, h2, 0, + format, type, d2); + if (d2 != data) free (d2); + + return 0; +} + + +void +jwzgles_glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2) +{ + jwzgles_glBegin (GL_POLYGON); + jwzgles_glVertex2f (x1, y1); + jwzgles_glVertex2f (x2, y1); + jwzgles_glVertex2f (x2, y2); + jwzgles_glVertex2f (x1, y2); + jwzgles_glEnd (); +} + +void +jwzgles_glRecti (GLint x1, GLint y1, GLint x2, GLint y2) +{ + jwzgles_glRectf (x1, y1, x2, y2); +} + +void +jwzgles_glClearDepth (GLfloat d) +{ + /* Not sure what to do here */ + Assert (d == 1.0, "glClearDepth unimplemented"); +} + + +void +jwzgles_glEnable (GLuint bit) +{ + Assert (!state->compiling_verts, "glEnable not allowed inside glBegin"); + if (state->compiling_list) + { + void_int vv[1]; + vv[0].i = bit; + list_push ("glEnable", (list_fn_cb) &jwzgles_glEnable, PROTO_I, vv); + } + else + { + if (! state->replaying_list) + LOG2 ("direct %-12s %s", "glEnable", mode_desc(bit)); + glEnable (bit); /* the real one */ + CHECK("glEnable"); + + switch (bit) { + case GL_TEXTURE_2D: state->enabled |= ISENABLED_TEXTURE_2D; break; + case GL_TEXTURE_GEN_S: state->enabled |= ISENABLED_TEXTURE_GEN_S; break; + case GL_TEXTURE_GEN_T: state->enabled |= ISENABLED_TEXTURE_GEN_T; break; + case GL_LIGHTING: state->enabled |= ISENABLED_LIGHTING; break; + case GL_BLEND: state->enabled |= ISENABLED_BLEND; break; + case GL_DEPTH_TEST: state->enabled |= ISENABLED_DEPTH_TEST; break; + case GL_CULL_FACE: state->enabled |= ISENABLED_CULL_FACE; break; + case GL_NORMALIZE: state->enabled |= ISENABLED_NORMALIZE; break; + case GL_FOG: state->enabled |= ISENABLED_FOG; break; + case GL_COLOR_MATERIAL: state->enabled |= ISENABLED_COLMAT; break; + + /* Do these work with glEnable or only with glEnableClientState? */ + case GL_VERTEX_ARRAY: state->enabled |= ISENABLED_VERT_ARRAY; break; + case GL_NORMAL_ARRAY: state->enabled |= ISENABLED_NORM_ARRAY; break; + case GL_TEXTURE_COORD_ARRAY: state->enabled |= ISENABLED_TEX_ARRAY;break; + case GL_COLOR_ARRAY: state->enabled |= ISENABLED_COLOR_ARRAY; break; + + default: break; + } + } +} + + +void +jwzgles_glDisable (GLuint bit) +{ + Assert (!state->compiling_verts, "glDisable not allowed inside glBegin"); + if (state->compiling_list) + { + void_int vv[1]; + vv[0].i = bit; + list_push ("glDisable", (list_fn_cb) &jwzgles_glDisable, PROTO_I, vv); + } + else + { + if (! state->replaying_list) + LOG2 ("direct %-12s %s", "glDisable", mode_desc(bit)); + glDisable (bit); /* the real one */ + CHECK("glDisable"); + + switch (bit) { + case GL_TEXTURE_2D: state->enabled &= ~ISENABLED_TEXTURE_2D; break; + case GL_TEXTURE_GEN_S: state->enabled &= ~ISENABLED_TEXTURE_GEN_S; break; + case GL_TEXTURE_GEN_T: state->enabled &= ~ISENABLED_TEXTURE_GEN_T; break; + case GL_LIGHTING: state->enabled &= ~ISENABLED_LIGHTING; break; + case GL_BLEND: state->enabled &= ~ISENABLED_BLEND; break; + case GL_DEPTH_TEST: state->enabled &= ~ISENABLED_DEPTH_TEST; break; + case GL_CULL_FACE: state->enabled &= ~ISENABLED_CULL_FACE; break; + case GL_NORMALIZE: state->enabled &= ~ISENABLED_NORMALIZE; break; + case GL_FOG: state->enabled &= ~ISENABLED_FOG; break; + case GL_COLOR_MATERIAL: state->enabled &= ~ISENABLED_COLMAT; break; + + /* Do these work with glEnable or only with glEnableClientState? */ + case GL_VERTEX_ARRAY: state->enabled &= ~ISENABLED_VERT_ARRAY; break; + case GL_NORMAL_ARRAY: state->enabled &= ~ISENABLED_NORM_ARRAY; break; + case GL_TEXTURE_COORD_ARRAY: state->enabled &= ~ISENABLED_TEX_ARRAY;break; + case GL_COLOR_ARRAY: state->enabled &= ~ISENABLED_COLOR_ARRAY; break; + + default: break; + } + } +} + + +GLboolean +jwzgles_glIsEnabled (GLuint bit) +{ + /* + Assert (!state->compiling_verts, "glIsEnabled not allowed inside glBegin"); + Assert (!state->compiling_list, "glIsEnabled not allowed inside glNewList"); + */ + switch (bit) { + case GL_TEXTURE_2D: return !!(state->enabled & ISENABLED_TEXTURE_2D); + case GL_TEXTURE_GEN_S: return !!(state->enabled & ISENABLED_TEXTURE_GEN_S); + case GL_TEXTURE_GEN_T: return !!(state->enabled & ISENABLED_TEXTURE_GEN_T); + case GL_LIGHTING: return !!(state->enabled & ISENABLED_LIGHTING); + case GL_BLEND: return !!(state->enabled & ISENABLED_BLEND); + case GL_DEPTH_TEST: return !!(state->enabled & ISENABLED_DEPTH_TEST); + case GL_CULL_FACE: return !!(state->enabled & ISENABLED_CULL_FACE); + case GL_NORMALIZE: return !!(state->enabled & ISENABLED_NORMALIZE); + case GL_FOG: return !!(state->enabled & ISENABLED_FOG); + case GL_COLOR_MATERIAL: return !!(state->enabled & ISENABLED_COLMAT); + + /* Do these work with glEnable or only with glEnableClientState? + We need to query them, and there is no glIsClientStateEnabled. + */ + case GL_VERTEX_ARRAY: return !!(state->enabled & ISENABLED_VERT_ARRAY); + case GL_NORMAL_ARRAY: return !!(state->enabled & ISENABLED_NORM_ARRAY); + case GL_TEXTURE_COORD_ARRAY: return !!(state->enabled & ISENABLED_TEX_ARRAY); + case GL_COLOR_ARRAY: return !!(state->enabled & ISENABLED_COLOR_ARRAY); + default: Assert (0, "glIsEnabled unimplemented bit"); break; + } +} + + +/* The spec says that OpenGLES 1.x doesn't implement glGetFloatv. + Were this true, it would suck, for it would mean that there was no + way to retrieve the prevailing matrixes. To implement this, we'd + have to keep track of them all on the client side by combining in + all the actions of glMultMatrixf, glRotatef, etc. + + However, Apple's iOS OpenGLES *does* provide glGetFloatv! + */ +void +jwzgles_glGetFloatv (GLenum pname, GLfloat *params) +{ + if (! state->replaying_list) + LOG2 ("direct %-12s %s", "glGetFloatv", mode_desc(pname)); + glGetFloatv (pname, params); /* the real one */ + CHECK("glGetFloatv"); +} + + +/* Likewise: not supposed to be there, but it is. */ +void +jwzgles_glGetPointerv (GLenum pname, GLvoid *params) +{ + if (! state->replaying_list) + LOG2 ("direct %-12s %s", "glGetPointerv", mode_desc(pname)); + glGetPointerv (pname, params); /* the real one */ + CHECK("glGetPointerv"); +} + + +/* How many cells are written into the *params array. + We need to know this to avoid smashing the caller's stack + if they asked for a single-value parameter. + */ +static int +glGet_ret_count (GLenum pname) +{ + switch (pname) { +/*case GL_COLOR_MATRIX: */ + case GL_MODELVIEW_MATRIX: + case GL_PROJECTION_MATRIX: + case GL_TEXTURE_MATRIX: +/*case GL_TRANSPOSE_COLOR_MATRIX: */ +/*case GL_TRANSPOSE_MODELVIEW_MATRIX: */ +/*case GL_TRANSPOSE_PROJECTION_MATRIX: */ +/*case GL_TRANSPOSE_TEXTURE_MATRIX: */ + return 16; +/*case GL_ACCUM_CLEAR_VALUE: */ +/*case GL_BLEND_COLOR: */ + case GL_COLOR_CLEAR_VALUE: + case GL_COLOR_WRITEMASK: + case GL_CURRENT_COLOR: +/*case GL_CURRENT_RASTER_COLOR: */ +/*case GL_CURRENT_RASTER_POSITION: */ +/*case GL_CURRENT_RASTER_SECONDARY_COLOR: */ +/*case GL_CURRENT_RASTER_TEXTURE_COORDS: */ +/*case GL_CURRENT_SECONDARY_COLOR: */ + case GL_CURRENT_TEXTURE_COORDS: + case GL_FOG_COLOR: + case GL_LIGHT_MODEL_AMBIENT: +/*case GL_MAP2_GRID_DOMAIN: */ + case GL_SCISSOR_BOX: + case GL_VIEWPORT: + return 4; + case GL_CURRENT_NORMAL: + case GL_POINT_DISTANCE_ATTENUATION: + return 3; + case GL_ALIASED_LINE_WIDTH_RANGE: + case GL_ALIASED_POINT_SIZE_RANGE: + case GL_DEPTH_RANGE: +/*case GL_LINE_WIDTH_RANGE: */ +/*case GL_MAP1_GRID_DOMAIN: */ +/*case GL_MAP2_GRID_SEGMENTS: */ + case GL_MAX_VIEWPORT_DIMS: +/*case GL_POINT_SIZE_RANGE: */ + case GL_POLYGON_MODE: + case GL_SMOOTH_LINE_WIDTH_RANGE: + case GL_SMOOTH_POINT_SIZE_RANGE: + return 2; + default: + return 1; + } +} + + +void +jwzgles_glGetDoublev (GLenum pname, GLdouble *params) +{ + GLfloat m[16]; + int i, j = glGet_ret_count (pname); + jwzgles_glGetFloatv (pname, m); + for (i = 0; i < j; i++) + params[i] = m[i]; +} + + +void +jwzgles_glGetIntegerv (GLenum pname, GLint *params) +{ + GLfloat m[16]; + int i, j = glGet_ret_count (pname); + jwzgles_glGetFloatv (pname, m); + for (i = 0; i < j; i++) + params[i] = m[i]; +} + + +void +jwzgles_glGetBooleanv (GLenum pname, GLboolean *params) +{ + GLfloat m[16]; + int i, j = glGet_ret_count (pname); + jwzgles_glGetFloatv (pname, m); + for (i = 0; i < j; i++) + params[i] = (m[i] != 0.0); +} + + +const char * +jwzgles_gluErrorString (GLenum error) +{ + static char s[20]; + sprintf (s, "0x%lX", (unsigned long) error); + return s; +} + + +/* These can be included inside glNewList, but they actually execute + immediately anyway. + */ +void +jwzgles_glVertexPointer (GLuint size, GLuint type, GLuint stride, + const GLvoid *ptr) +{ + if (! state->replaying_list) + LOG5 ("direct %-12s %d %s %d 0x%lX", "glVertexPointer", + size, mode_desc(type), stride, (unsigned long) ptr); + glVertexPointer (size, type, stride, ptr); /* the real one */ + CHECK("glVertexPointer"); +} + +void +jwzgles_glNormalPointer (GLuint type, GLuint stride, const GLvoid *ptr) +{ + if (! state->replaying_list) + LOG4 ("direct %-12s %s %d 0x%lX", "glNormalPointer", + mode_desc(type), stride, (unsigned long) ptr); + glNormalPointer (type, stride, ptr); /* the real one */ + CHECK("glNormalPointer"); +} + +void +jwzgles_glColorPointer (GLuint size, GLuint type, GLuint stride, + const GLvoid *ptr) +{ + if (! state->replaying_list) + LOG5 ("direct %-12s %d %s %d 0x%lX", "glColorPointer", + size, mode_desc(type), stride, (unsigned long) ptr); + glColorPointer (size, type, stride, ptr); /* the real one */ + CHECK("glColorPointer"); +} + +void +jwzgles_glTexCoordPointer (GLuint size, GLuint type, GLuint stride, + const GLvoid *ptr) +{ + if (! state->replaying_list) + LOG5 ("direct %-12s %d %s %d 0x%lX", "glTexCoordPointer", + size, mode_desc(type), stride, (unsigned long) ptr); + glTexCoordPointer (size, type, stride, ptr); /* the real one */ + CHECK("glTexCoordPointer"); +} + + +void +jwzgles_glTexParameterf (GLuint target, GLuint pname, GLfloat param) +{ + Assert (!state->compiling_verts, + "glTexParameterf not allowed inside glBegin"); + + /* We don't *really* implement mipmaps, so just turn this off. + */ + if (param == GL_LINEAR_MIPMAP_LINEAR) param = GL_LINEAR; + if (param == GL_NEAREST_MIPMAP_LINEAR) param = GL_LINEAR; + if (param == GL_LINEAR_MIPMAP_NEAREST) param = GL_NEAREST; + if (param == GL_NEAREST_MIPMAP_NEAREST) param = GL_NEAREST; + + if (state->compiling_list) + { + void_int vv[3]; + vv[0].i = target; + vv[1].i = pname; + vv[2].f = param; + list_push ("glTexParameterf", (list_fn_cb) &jwzgles_glTexParameterf, + PROTO_IIF, vv); + } + else + { + if (! state->replaying_list) + LOG4 ("direct %-12s %s %s %7.3f", "glTexParameterf", + mode_desc(target), mode_desc(pname), param); + glTexParameterf (target, pname, param); /* the real one */ + CHECK("glTexParameterf"); + } +} + +void +jwzgles_glTexParameteri (GLuint target, GLuint pname, GLuint param) +{ + jwzgles_glTexParameterf (target, pname, param); +} + + +/* Matrix functions, mostly cribbed from Mesa. + */ + +void +jwzgles_glFrustum (GLfloat left, GLfloat right, + GLfloat bottom, GLfloat top, + GLfloat near, GLfloat far) +{ + GLfloat m[16]; + GLfloat x = (2 * near) / (right-left); + GLfloat y = (2 * near) / (top - bottom); + GLfloat a = (right + left) / (right - left); + GLfloat b = (top + bottom) / (top - bottom); + GLfloat c = -(far + near) / (far - near); + GLfloat d = -(2 * far * near) / (far - near); + +# define M(X,Y) m[Y * 4 + X] + M(0,0) = x; M(0,1) = 0; M(0,2) = a; M(0,3) = 0; + M(1,0) = 0; M(1,1) = y; M(1,2) = b; M(1,3) = 0; + M(2,0) = 0; M(2,1) = 0; M(2,2) = c; M(2,3) = d; + M(3,0) = 0; M(3,1) = 0; M(3,2) = -1; M(3,3) = 0; +# undef M + + jwzgles_glMultMatrixf (m); +} + + +void +jwzgles_glOrtho (GLfloat left, GLfloat right, + GLfloat bottom, GLfloat top, + GLfloat near, GLfloat far) +{ + GLfloat m[16]; + GLfloat a = 2 / (right - left); + GLfloat b = -(right + left) / (right - left); + GLfloat c = 2 / (top - bottom); + GLfloat d = -(top + bottom) / (top - bottom); + GLfloat e = -2 / (far - near); + GLfloat f = -(far + near) / (far - near); + +# define M(X,Y) m[Y * 4 + X] + M(0,0) = a; M(0,1) = 0; M(0,2) = 0; M(0,3) = b; + M(1,0) = 0; M(1,1) = c; M(1,2) = 0; M(1,3) = d; + M(2,0) = 0; M(2,1) = 0; M(2,2) = e; M(2,3) = f; + M(3,0) = 0; M(3,1) = 0; M(3,2) = 0; M(3,3) = 1; +# undef M + + jwzgles_glMultMatrixf (m); +} + + +void +jwzgles_gluPerspective (GLdouble fovy, GLdouble aspect, + GLdouble near, GLdouble far) +{ + GLfloat m[16]; + double si, co, dz; + double rad = fovy / 2 * M_PI / 180; + double a, b, c, d; + + dz = far - near; + si = sin(rad); + if (dz == 0 || si == 0 || aspect == 0) + return; + co = cos(rad) / si; + + a = co / aspect; + b = co; + c = -(far + near) / dz; + d = -2 * near * far / dz; + +# define M(X,Y) m[Y * 4 + X] + M(0,0) = a; M(0,1) = 0; M(0,2) = 0; M(0,3) = 0; + M(1,0) = 0; M(1,1) = b; M(1,2) = 0; M(1,3) = 0; + M(2,0) = 0; M(2,1) = 0; M(2,2) = c; M(2,3) = d; + M(3,0) = 0; M(3,1) = 0; M(3,2) = -1; M(3,3) = 0; +# undef M + + jwzgles_glMultMatrixf (m); +} + + +void +jwzgles_gluLookAt (GLfloat eyex, GLfloat eyey, GLfloat eyez, + GLfloat centerx, GLfloat centery, GLfloat centerz, + GLfloat upx, GLfloat upy, GLfloat upz) +{ + GLfloat m[16]; + GLfloat x[3], y[3], z[3]; + GLfloat mag; + + /* Make rotation matrix */ + + /* Z vector */ + z[0] = eyex - centerx; + z[1] = eyey - centery; + z[2] = eyez - centerz; + mag = sqrt(z[0] * z[0] + z[1] * z[1] + z[2] * z[2]); + if (mag) { /* mpichler, 19950515 */ + z[0] /= mag; + z[1] /= mag; + z[2] /= mag; + } + + /* Y vector */ + y[0] = upx; + y[1] = upy; + y[2] = upz; + + /* X vector = Y cross Z */ + x[0] = y[1] * z[2] - y[2] * z[1]; + x[1] = -y[0] * z[2] + y[2] * z[0]; + x[2] = y[0] * z[1] - y[1] * z[0]; + + /* Recompute Y = Z cross X */ + y[0] = z[1] * x[2] - z[2] * x[1]; + y[1] = -z[0] * x[2] + z[2] * x[0]; + y[2] = z[0] * x[1] - z[1] * x[0]; + + /* mpichler, 19950515 */ + /* cross product gives area of parallelogram, which is < 1.0 for + * non-perpendicular unit-length vectors; so normalize x, y here + */ + + mag = sqrt(x[0] * x[0] + x[1] * x[1] + x[2] * x[2]); + if (mag) { + x[0] /= mag; + x[1] /= mag; + x[2] /= mag; + } + + mag = sqrt(y[0] * y[0] + y[1] * y[1] + y[2] * y[2]); + if (mag) { + y[0] /= mag; + y[1] /= mag; + y[2] /= mag; + } + +#define M(row,col) m[col*4+row] + M(0, 0) = x[0]; M(0, 1) = x[1]; M(0, 2) = x[2]; M(0, 3) = 0.0; + M(1, 0) = y[0]; M(1, 1) = y[1]; M(1, 2) = y[2]; M(1, 3) = 0.0; + M(2, 0) = z[0]; M(2, 1) = z[1]; M(2, 2) = z[2]; M(2, 3) = 0.0; + M(3, 0) = 0.0; M(3, 1) = 0.0; M(3, 2) = 0.0; M(3, 3) = 1.0; +#undef M + + jwzgles_glMultMatrixf(m); + + /* Translate Eye to Origin */ + jwzgles_glTranslatef(-eyex, -eyey, -eyez); +} + + +static void __gluMultMatrixVecd (const GLdouble matrix[16], + const GLdouble in[4], + GLdouble out[4]) +{ + int i; + + for (i=0; i<4; i++) { + out[i] = + in[0] * matrix[0*4+i] + + in[1] * matrix[1*4+i] + + in[2] * matrix[2*4+i] + + in[3] * matrix[3*4+i]; + } +} + +GLint +jwzgles_gluProject (GLdouble objx, GLdouble objy, GLdouble objz, + const GLdouble modelMatrix[16], + const GLdouble projMatrix[16], + const GLint viewport[4], + GLdouble *winx, GLdouble *winy, GLdouble *winz) +{ + GLdouble in[4]; + GLdouble out[4]; + + /* #### I suspect this is not working right. I was seeing crazy values + in lament.c. Maybe there's some float-vs-double confusion going on? + */ + + in[0]=objx; + in[1]=objy; + in[2]=objz; + in[3]=1.0; + __gluMultMatrixVecd(modelMatrix, in, out); + __gluMultMatrixVecd(projMatrix, out, in); + if (in[3] == 0.0) return(GL_FALSE); + in[0] /= in[3]; + in[1] /= in[3]; + in[2] /= in[3]; + /* Map x, y and z to range 0-1 */ + in[0] = in[0] * 0.5 + 0.5; + in[1] = in[1] * 0.5 + 0.5; + in[2] = in[2] * 0.5 + 0.5; + + /* Map x,y to viewport */ + in[0] = in[0] * viewport[2] + viewport[0]; + in[1] = in[1] * viewport[3] + viewport[1]; + + *winx=in[0]; + *winy=in[1]; + *winz=in[2]; + return(GL_TRUE); +} + + +/* The following functions are present in both OpenGL 1.1 and in OpenGLES 1, + but are allowed within glNewList/glEndList, so we must wrap them to allow + them to either be recorded in lists, or run directly. + + All this CPP obscenity is me screaming in rage at all the ways that C is + not Lisp, as all I want to do here is DEFADVICE. + */ + +#define PROTO_V PROTO_VOID +#define TYPE_V GLuint +#define ARGS_V void +#define VARS_V /* */ +#define LOGS_V "\n" +#define FILL_V /* */ + +#define TYPE_I GLuint +#define TYPE_II TYPE_I +#define TYPE_III TYPE_I +#define TYPE_IIII TYPE_I +#define ARGS_I TYPE_I a +#define ARGS_II TYPE_I a, TYPE_I b +#define ARGS_III TYPE_I a, TYPE_I b, TYPE_I c +#define ARGS_IIII TYPE_I a, TYPE_I b, TYPE_I c, TYPE_I d +#define LOGS_I "%s\n", mode_desc(a) +#define LOGS_II "%s %d\n", mode_desc(a), b +#define LOGS_III "%s %s %s\n", mode_desc(a), mode_desc(b), mode_desc(c) +#define LOGS_IIII "%d %d %d %d\n", a, b, c, d +#define VARS_I a +#define VARS_II a, b +#define VARS_III a, b, c +#define VARS_IIII a, b, c, d +#define FILL_I vv[0].i = a; +#define FILL_II vv[0].i = a; vv[1].i = b; +#define FILL_III vv[0].i = a; vv[1].i = b; vv[2].i = c; +#define FILL_IIII vv[0].i = a; vv[1].i = b; vv[2].i = c; vv[3].i = d; + +#define TYPE_F GLfloat +#define TYPE_FF TYPE_F +#define TYPE_FFF TYPE_F +#define TYPE_FFFF TYPE_F +#define ARGS_F TYPE_F a +#define ARGS_FF TYPE_F a, TYPE_F b +#define ARGS_FFF TYPE_F a, TYPE_F b, TYPE_F c +#define ARGS_FFFF TYPE_F a, TYPE_F b, TYPE_F c, TYPE_F d +#define LOGS_F "%7.3f\n", a +#define LOGS_FF "%7.3f %7.3f\n", a, b +#define LOGS_FFF "%7.3f %7.3f %7.3f\n", a, b, c +#define LOGS_FFFF "%7.3f %7.3f %7.3f %7.3f\n", a, b, c, d +#define VARS_F VARS_I +#define VARS_FF VARS_II +#define VARS_FFF VARS_III +#define VARS_FFFF VARS_IIII +#define FILL_F vv[0].f = a; +#define FILL_FF vv[0].f = a; vv[1].f = b; +#define FILL_FFF vv[0].f = a; vv[1].f = b; vv[2].f = c; +#define FILL_FFFF vv[0].f = a; vv[1].f = b; vv[2].f = c; vv[3].f = d; + +#define ARGS_IF TYPE_I a, TYPE_F b +#define VARS_IF VARS_II +#define LOGS_IF "%s %7.3f\n", mode_desc(a), b +#define FILL_IF vv[0].i = a; vv[1].f = b; + +#define ARGS_IIF TYPE_I a, TYPE_I b, TYPE_F c +#define VARS_IIF VARS_III +#define LOGS_IIF "%s %s %7.3f\n", mode_desc(a), mode_desc(b), c +#define FILL_IIF vv[0].i = a; vv[1].i = b; vv[2].f = c; + +#define TYPE_IV GLint +#define ARGS_IIV TYPE_I a, const TYPE_IV *b +#define VARS_IIV VARS_II +#define LOGS_IIV "%s %d %d %d %d\n", mode_desc(a), b[0], b[1], b[2], b[3] +#define FILL_IIV vv[0].i = a; \ + vv[1].i = b[0]; vv[2].i = b[1]; \ + vv[3].i = b[2]; vv[4].i = b[3]; + +#define ARGS_IFV TYPE_I a, const TYPE_F *b +#define VARS_IFV VARS_II +#define LOGS_IFV "%s %7.3f %7.3f %7.3f %7.3f\n", mode_desc(a), \ + b[0], b[1], b[2], b[3] +#define FILL_IFV vv[0].i = a; \ + vv[1].f = b[0]; vv[2].f = b[1]; \ + vv[3].f = b[2]; vv[4].f = b[3]; + +#define ARGS_IIIV TYPE_I a, TYPE_I b, const TYPE_IV *c +#define VARS_IIIV VARS_III +#define LOGS_IIIV "%s %-8s %3d %3d %3d %3d\n", mode_desc(a), mode_desc(b), \ + c[0], c[1], c[2], c[3] +#define FILL_IIIV vv[0].i = a; vv[1].i = b; \ + vv[2].i = c[0]; vv[3].i = c[1]; \ + vv[4].i = c[2]; vv[5].i = c[3]; + +#define ARGS_IIFV TYPE_I a, TYPE_I b, const TYPE_F *c +#define VARS_IIFV VARS_III +#define LOGS_IIFV "%s %-8s %7.3f %7.3f %7.3f %7.3f\n", \ + mode_desc(a), mode_desc(b), \ + c[0], c[1], c[2], c[3] +#define FILL_IIFV vv[0].i = a; vv[1].i = b; \ + vv[2].f = c[0]; vv[3].f = c[1]; \ + vv[4].f = c[2]; vv[5].f = c[3]; + +#ifdef DEBUG +# define WLOG(NAME,ARGS) \ + fprintf (stderr, "jwzgles: direct %-12s ", NAME); \ + fprintf (stderr, ARGS) +#else +# define WLOG(NAME,ARGS) /* */ +#endif + +#define WRAP(NAME,SIG) \ +void jwzgles_##NAME (ARGS_##SIG) \ +{ \ + Assert (!state->compiling_verts, \ + STRINGIFY(NAME) " not allowed inside glBegin"); \ + if (state->compiling_list) { \ + void_int vv[10]; \ + FILL_##SIG \ + list_push (STRINGIFY(NAME), (list_fn_cb) &jwzgles_##NAME, \ + PROTO_##SIG, vv); \ + } else { \ + if (! state->replaying_list) { \ + WLOG (STRINGIFY(NAME), LOGS_##SIG); \ + } \ + NAME (VARS_##SIG); \ + CHECK(STRINGIFY(NAME)); \ + } \ +} + +WRAP (glActiveTexture, I) +WRAP (glAlphaFunc, IF) +WRAP (glBindTexture, II) +WRAP (glBlendFunc, II) +WRAP (glClear, I) +WRAP (glClearColor, FFFF) +WRAP (glClearStencil, I) +WRAP (glColorMask, IIII) +WRAP (glCullFace, I) +WRAP (glDepthFunc, I) +WRAP (glDepthMask, I) +WRAP (glFinish, V) +WRAP (glFlush, V) +WRAP (glFogf, IF) +WRAP (glFogfv, IFV) +WRAP (glFrontFace, I) +WRAP (glHint, II) +WRAP (glLightModelf, IF) +WRAP (glLightModelfv, IFV) +WRAP (glLightf, IIF) +WRAP (glLightfv, IIFV) +WRAP (glLineWidth, F) +WRAP (glLoadIdentity, V) +WRAP (glLogicOp, I) +WRAP (glMatrixMode, I) +WRAP (glPixelStorei, II) +WRAP (glPointSize, F) +WRAP (glPolygonOffset, FF) +WRAP (glPopMatrix, V) +WRAP (glPushMatrix, V) +WRAP (glRotatef, FFFF) +WRAP (glScalef, FFF) +WRAP (glScissor, IIII) +WRAP (glShadeModel, I) +WRAP (glStencilFunc, III) +WRAP (glStencilMask, I) +WRAP (glStencilOp, III) +WRAP (glTexEnvf, IIF) +WRAP (glTexEnvi, III) +WRAP (glTranslatef, FFF) +WRAP (glViewport, IIII) +#undef TYPE_IV +#define TYPE_IV GLuint +WRAP (glDeleteTextures, IIV) + + +#endif /* HAVE_JWZGLES - whole file */ diff --git a/hacks/glx/jwzgles.h b/hacks/glx/jwzgles.h new file mode 100644 index 00000000..43b02c6c --- /dev/null +++ b/hacks/glx/jwzgles.h @@ -0,0 +1,519 @@ +/* xscreensaver, Copyright (c) 2012 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + */ + +/* A compatibility shim to allow OpenGL 1.3 source code to work in an + OpenGLES environment, where almost every OpenGL 1.3 function has + been "deprecated". See jwzgles.c for details. + */ + +#ifndef __JWZGLES_H__ +#define __JWZGLES_H__ + +#ifndef HAVE_JWZGLES +# error: do not include this without HAVE_JWZGLES +#endif + + +#include "jwzglesI.h" + + +/* These are the OpenGL 1.3 functions that are not present in OpenGLES 1. + As you can see from the length of this list, OpenGL and OpenGLES have + almost nothing to do with each other. To claim that GLES is a dialect + of OpenGL is absurd -- English and Latin have more in common! + */ + +#define glAccum jwzgles_glAccum +#define glAntialiasing jwzgles_glAntialiasing +#define glAreTexturesResident jwzgles_glAreTexturesResident +#define glArrayElement jwzgles_glArrayElement +#define glBegin jwzgles_glBegin +#define glBitmap jwzgles_glBitmap +#define glBlendColor jwzgles_glBlendColor +#define glBlendEquation jwzgles_glBlendEquation +#define glCallList jwzgles_glCallList +#define glCallLists jwzgles_glCallLists +#define glClearAccum jwzgles_glClearAccum +#define glClearDepth jwzgles_glClearDepth +#define glClearIndex jwzgles_glClearIndex +#define glClipPlane jwzgles_glClipPlane +#define glColor3b jwzgles_glColor3b +#define glColor3bv jwzgles_glColor3bv +#define glColor3d jwzgles_glColor3f +#define glColor3dv jwzgles_glColor3dv +#define glColor3f jwzgles_glColor3f +#define glColor3fv jwzgles_glColor3fv +#define glColor3i jwzgles_glColor3i +#define glColor3iv jwzgles_glColor3iv +#define glColor3s jwzgles_glColor3s +#define glColor3sv jwzgles_glColor3sv +#define glColor3ub jwzgles_glColor3ub +#define glColor3ubv jwzgles_glColor3ubv +#define glColor3ui jwzgles_glColor3ui +#define glColor3uiv jwzgles_glColor3uiv +#define glColor3us jwzgles_glColor3us +#define glColor3usv jwzgles_glColor3usv +#define glColor4b jwzgles_glColor4b +#define glColor4bv jwzgles_glColor4bv +#define glColor4d jwzgles_glColor4d +#define glColor4dv jwzgles_glColor4dv +#define glColor4fv jwzgles_glColor4fv +#define glColor4i jwzgles_glColor4i +#define glColor4iv jwzgles_glColor4iv +#define glColor4s jwzgles_glColor4s +#define glColor4sv jwzgles_glColor4sv +#define glColor4ub jwzgles_glColor4ub +#define glColor4ubv jwzgles_glColor4ubv +#define glColor4ui jwzgles_glColor4ui +#define glColor4uiv jwzgles_glColor4uiv +#define glColor4us jwzgles_glColor4us +#define glColor4usv jwzgles_glColor4usv +#define glColorMaterial jwzgles_glColorMaterial +#define glColorSubTable jwzgles_glColorSubTable +#define glColorTable jwzgles_glColorTable +#define glColorTableParameter jwzgles_glColorTableParameter +#define glColorTableParameterfv jwzgles_glColorTableParameterfv +#define glColorub jwzgles_glColorub +#define glColorui jwzgles_glColorui +#define glColorus jwzgles_glColorus +#define glCompressedTexImage jwzgles_glCompressedTexImage +#define glCompressedTexImage1D jwzgles_glCompressedTexImage1D +#define glCompressedTexImage3D jwzgles_glCompressedTexImage3D +#define glCompressedTexSubImage1D jwzgles_glCompressedTexSubImage1D +#define glCompressedTexSubImage3D jwzgles_glCompressedTexSubImage3D +#define glConvolutionFilter1D jwzgles_glConvolutionFilter1D +#define glConvolutionFilter2D jwzgles_glConvolutionFilter2D +#define glConvolutionParameter jwzgles_glConvolutionParameter +#define glConvolutionParameterfv jwzgles_glConvolutionParameterfv +#define glConvolutionParameteriv jwzgles_glConvolutionParameteriv +#define glCopyColorSubTable jwzgles_glCopyColorSubTable +#define glCopyColorTable jwzgles_glCopyColorTable +#define glCopyConvolutionFilter1D jwzgles_glCopyConvolutionFilter1D +#define glCopyConvolutionFilter2D jwzgles_glCopyConvolutionFilter2D +#define glCopyPixels jwzgles_glCopyPixels +#define glCopyTexImage1D jwzgles_glCopyTexImage1D +#define glCopyTexImage3D jwzgles_glCopyTexImage3D +#define glCopyTexSubImage1D jwzgles_glCopyTexSubImage1D +#define glCopyTexSubImage3D jwzgles_glCopyTexSubImage3D +#define glDeleteLists jwzgles_glDeleteLists +#define glDepthRange jwzgles_glDepthRange +#define glDrawBuffer jwzgles_glDrawBuffer +#define glDrawPixels jwzgles_glDrawPixels +#define glDrawRangeElements jwzgles_glDrawRangeElements +#define glEdgeFlag jwzgles_glEdgeFlag +#define glEdgeFlagPointer jwzgles_glEdgeFlagPointer +#define glEdgeFlagv jwzgles_glEdgeFlagv +#define glEnd jwzgles_glEnd +#define glEndList jwzgles_glEndList +#define glEvalCoord1d jwzgles_glEvalCoord1d +#define glEvalCoord1dv jwzgles_glEvalCoord1dv +#define glEvalCoord1f jwzgles_glEvalCoord1f +#define glEvalCoord1fv jwzgles_glEvalCoord1fv +#define glEvalCoord2d jwzgles_glEvalCoord2d +#define glEvalCoord2dv jwzgles_glEvalCoord2dv +#define glEvalCoord2f jwzgles_glEvalCoord2f +#define glEvalCoord2fv jwzgles_glEvalCoord2fv +#define glEvalMesh1 jwzgles_glEvalMesh1 +#define glEvalMesh2 jwzgles_glEvalMesh2 +#define glEvalPoint1 jwzgles_glEvalPoint1 +#define glEvalPoint2 jwzgles_glEvalPoint2 +#define glFeedbackBuffer jwzgles_glFeedbackBuffer +#define glFogi jwzgles_glFogi +#define glFogiv jwzgles_glFogiv +#define glFrustum jwzgles_glFrustum +#define glGenLists jwzgles_glGenLists +#define glGet jwzgles_glGet +#define glGetBooleanv jwzgles_glGetBooleanv +#define glGetClipPlane jwzgles_glGetClipPlane +#define glGetColorTable jwzgles_glGetColorTable +#define glGetColorTableParameter jwzgles_glGetColorTableParameter +#define glGetCompressedTexImage jwzgles_glGetCompressedTexImage +#define glGetConvolutionFilter jwzgles_glGetConvolutionFilter +#define glGetConvolutionParameter jwzgles_glGetConvolutionParameter +#define glGetConvolutionParameteriv jwzgles_glGetConvolutionParameteriv +#define glGetDoublev jwzgles_glGetDoublev +#define glGetFloatv jwzgles_glGetFloatv +#define glGetHistogram jwzgles_glGetHistogram +#define glGetHistogramParameter jwzgles_glGetHistogramParameter +#define glGetLightfv jwzgles_glGetLightfv +#define glGetLightiv jwzgles_glGetLightiv +#define glGetMapdv jwzgles_glGetMapdv +#define glGetMapfv jwzgles_glGetMapfv +#define glGetMapiv jwzgles_glGetMapiv +#define glGetMaterialfv jwzgles_glGetMaterialfv +#define glGetMaterialiv jwzgles_glGetMaterialiv +#define glGetPixelMapfv jwzgles_glGetPixelMapfv +#define glGetPixelMapuiv jwzgles_glGetPixelMapuiv +#define glGetPixelMapusv jwzgles_glGetPixelMapusv +#define glGetPointerv jwzgles_glGetPointerv +#define glGetPolygonStipple jwzgles_glGetPolygonStipple +#define glGetSeparableFilter jwzgles_glGetSeparableFilter +#define glGetTexEnvfv jwzgles_glGetTexEnvfv +#define glGetTexEnviv jwzgles_glGetTexEnviv +#define glGetTexGendv jwzgles_glGetTexGendv +#define glGetTexGenfv jwzgles_glGetTexGenfv +#define glGetTexGeniv jwzgles_glGetTexGeniv +#define glGetTexImage jwzgles_glGetTexImage +#define glGetTexImage1D jwzgles_glGetTexImage1D +#define glGetTexImage2D jwzgles_glGetTexImage2D +#define glGetTexImage3D jwzgles_glGetTexImage3D +#define glGetTexLevelParameterfv jwzgles_glGetTexLevelParameterfv +#define glGetTexLevelParameteriv jwzgles_glGetTexLevelParameteriv +#define glGetTexParameterfv jwzgles_glGetTexParameterfv +#define glGetTexParameteriv jwzgles_glGetTexParameteriv +#define glHistogram jwzgles_glHistogram +#define glIndex jwzgles_glIndex +#define glIndexMask jwzgles_glIndexMask +#define glIndexPointer jwzgles_glIndexPointer +#define glIndexd jwzgles_glIndexd +#define glIndexdv jwzgles_glIndexdv +#define glIndexf jwzgles_glIndexf +#define glIndexfv jwzgles_glIndexfv +/*#define glIndexi jwzgles_glIndexi*/ +#define glIndexiv jwzgles_glIndexiv +#define glIndexs jwzgles_glIndexs +#define glIndexsv jwzgles_glIndexsv +#define glIndexub jwzgles_glIndexub +#define glIndexubv jwzgles_glIndexubv +#define glInitNames jwzgles_glInitNames +#define glInterleavedArrays jwzgles_glInterleavedArrays +#define glIsEnabled jwzgles_glIsEnabled +#define glIsList jwzgles_glIsList +#define glIsTexture jwzgles_glIsTexture +#define glLightModeli jwzgles_glLightModeli +#define glLightModeliv jwzgles_glLightModeliv +#define glLighti jwzgles_glLighti +#define glLightiv jwzgles_glLightiv +#define glLightf jwzgles_glLightf +#define glLightfv jwzgles_glLightfv +#define glLineStipple jwzgles_glLineStipple +#define glListBase jwzgles_glListBase +#define glLoadMatrix jwzgles_glLoadMatrix +#define glLoadMatrixd jwzgles_glLoadMatrixd +#define glLoadName jwzgles_glLoadName +#define glLoadTransposeMatrix jwzgles_glLoadTransposeMatrix +#define glLoadTransposeMatrixd jwzgles_glLoadTransposeMatrixd +#define glLoadTransposeMatrixf jwzgles_glLoadTransposeMatrixf +#define glMap1d jwzgles_glMap1d +#define glMap1f jwzgles_glMap1f +#define glMap2d jwzgles_glMap2d +#define glMap2f jwzgles_glMap2f +#define glMapGrid1d jwzgles_glMapGrid1d +#define glMapGrid1f jwzgles_glMapGrid1f +#define glMapGrid2d jwzgles_glMapGrid2d +#define glMapGrid2f jwzgles_glMapGrid2f +#define glMateriali jwzgles_glMateriali +#define glMaterialiv jwzgles_glMaterialiv +#define glMultMatrixd jwzgles_glMultMatrixd +#define glMultTransposeMatrix jwzgles_glMultTransposeMatrix +#define glMultTransposeMatrixd jwzgles_glMultTransposeMatrixd +#define glMultTransposeMatrixf jwzgles_glMultTransposeMatrixf +#define glMultiTexCoord jwzgles_glMultiTexCoord +#define glNewList jwzgles_glNewList +#define glNormal3b jwzgles_glNormal3b +#define glNormal3bv jwzgles_glNormal3bv +#define glNormal3d jwzgles_glNormal3f +#define glNormal3dv jwzgles_glNormal3dv +#define glNormal3fv jwzgles_glNormal3fv +#define glNormal3i jwzgles_glNormal3i +#define glNormal3iv jwzgles_glNormal3iv +#define glNormal3s jwzgles_glNormal3s +#define glNormal3sv jwzgles_glNormal3sv +#define glOrtho jwzgles_glOrtho +#define glPassThrough jwzgles_glPassThrough +#define glPixelMapfv jwzgles_glPixelMapfv +#define glPixelMapuiv jwzgles_glPixelMapuiv +#define glPixelMapusv jwzgles_glPixelMapusv +#define glPixelStoref jwzgles_glPixelStoref +#define glPixelTransferf jwzgles_glPixelTransferf +#define glPixelTransferi jwzgles_glPixelTransferi +#define glPixelZoom jwzgles_glPixelZoom +#define glPolygonMode jwzgles_glPolygonMode +#define glPolygonStipple jwzgles_glPolygonStipple +#define glPopAttrib jwzgles_glPopAttrib +#define glPopClientAttrib jwzgles_glPopClientAttrib +#define glPopName jwzgles_glPopName +#define glPrioritizeTextures jwzgles_glPrioritizeTextures +#define glPushAttrib jwzgles_glPushAttrib +#define glPushClientAttrib jwzgles_glPushClientAttrib +#define glPushName jwzgles_glPushName +#define glRasterPos2d jwzgles_glRasterPos2d +#define glRasterPos2dv jwzgles_glRasterPos2dv +#define glRasterPos2f jwzgles_glRasterPos2f +#define glRasterPos2fv jwzgles_glRasterPos2fv +#define glRasterPos2i jwzgles_glRasterPos2i +#define glRasterPos2iv jwzgles_glRasterPos2iv +#define glRasterPos2s jwzgles_glRasterPos2s +#define glRasterPos2sv jwzgles_glRasterPos2sv +#define glRasterPos3d jwzgles_glRasterPos3d +#define glRasterPos3dv jwzgles_glRasterPos3dv +#define glRasterPos3f jwzgles_glRasterPos3f +#define glRasterPos3fv jwzgles_glRasterPos3fv +#define glRasterPos3i jwzgles_glRasterPos3i +#define glRasterPos3iv jwzgles_glRasterPos3iv +#define glRasterPos3s jwzgles_glRasterPos3s +#define glRasterPos3sv jwzgles_glRasterPos3sv +#define glRasterPos4d jwzgles_glRasterPos4d +#define glRasterPos4dv jwzgles_glRasterPos4dv +#define glRasterPos4f jwzgles_glRasterPos4f +#define glRasterPos4fv jwzgles_glRasterPos4fv +#define glRasterPos4i jwzgles_glRasterPos4i +#define glRasterPos4iv jwzgles_glRasterPos4iv +#define glRasterPos4s jwzgles_glRasterPos4s +#define glRasterPos4sv jwzgles_glRasterPos4sv +#define glReadBuffer jwzgles_glReadBuffer +#define glRectd jwzgles_glRectf +#define glRectdv jwzgles_glRectdv +#define glRectf jwzgles_glRectf +#define glRectfv jwzgles_glRectfv +#define glRecti jwzgles_glRecti +#define glRectiv jwzgles_glRectiv +#define glRects jwzgles_glRects +#define glRectsv jwzgles_glRectsv +#define glRenderMode jwzgles_glRenderMode +#define glResetHistogram jwzgles_glResetHistogram +#define glResetMinmax jwzgles_glResetMinmax +#define glRotated jwzgles_glRotated +#define glScaled jwzgles_glScalef +#define glSelectBuffer jwzgles_glSelectBuffer +#define glSeparableFilter2D jwzgles_glSeparableFilter2D +#define glTexCoord1d jwzgles_glTexCoord1d +#define glTexCoord1dv jwzgles_glTexCoord1dv +#define glTexCoord1f jwzgles_glTexCoord1f +#define glTexCoord1fv jwzgles_glTexCoord1fv +#define glTexCoord1i jwzgles_glTexCoord1i +#define glTexCoord1iv jwzgles_glTexCoord1iv +#define glTexCoord1s jwzgles_glTexCoord1s +#define glTexCoord1sv jwzgles_glTexCoord1sv +#define glTexCoord2d jwzgles_glTexCoord2f +#define glTexCoord2dv jwzgles_glTexCoord2dv +#define glTexCoord2f jwzgles_glTexCoord2f +#define glTexCoord2fv jwzgles_glTexCoord2fv +#define glTexCoord2i jwzgles_glTexCoord2i +#define glTexCoord2iv jwzgles_glTexCoord2iv +#define glTexCoord2s jwzgles_glTexCoord2s +#define glTexCoord2sv jwzgles_glTexCoord2sv +#define glTexCoord3d jwzgles_glTexCoord3d +#define glTexCoord3dv jwzgles_glTexCoord3dv +#define glTexCoord3f jwzgles_glTexCoord3f +#define glTexCoord3fv jwzgles_glTexCoord3fv +#define glTexCoord3i jwzgles_glTexCoord3i +#define glTexCoord3iv jwzgles_glTexCoord3iv +#define glTexCoord3s jwzgles_glTexCoord3s +#define glTexCoord3sv jwzgles_glTexCoord3sv +#define glTexCoord4d jwzgles_glTexCoord4d +#define glTexCoord4dv jwzgles_glTexCoord4dv +#define glTexCoord4f jwzgles_glTexCoord4f +#define glTexCoord4fv jwzgles_glTexCoord4fv +#define glTexCoord4i jwzgles_glTexCoord4i +#define glTexCoord4iv jwzgles_glTexCoord4iv +#define glTexCoord4s jwzgles_glTexCoord4s +#define glTexCoord4sv jwzgles_glTexCoord4sv +#define glTexEnvi jwzgles_glTexEnvi +#define glTexEnviv jwzgles_glTexEnviv +#define glTexGend jwzgles_glTexGend +#define glTexGendv jwzgles_glTexGendv +#define glTexGenf jwzgles_glTexGenf +#define glTexGenfv jwzgles_glTexGenfv +#define glTexGeni jwzgles_glTexGeni +#define glTexGeniv jwzgles_glTexGeniv +#define glTexImage1D jwzgles_glTexImage1D +#define glTexImage3D jwzgles_glTexImage3D +#define glTexParameterfv jwzgles_glTexParameterfv +#define glTexParameteri jwzgles_glTexParameteri +#define glTexParameteriv jwzgles_glTexParameteriv +#define glTexSubImage1D jwzgles_glTexSubImage1D +#define glTexSubImage3D jwzgles_glTexSubImage3D +#define glTranslated jwzgles_glTranslatef +#define glVertex2d jwzgles_glVertex2d +#define glVertex2dv jwzgles_glVertex2dv +#define glVertex2f jwzgles_glVertex2f +#define glVertex2fv jwzgles_glVertex2fv +#define glVertex2i jwzgles_glVertex2i +#define glVertex2iv jwzgles_glVertex2iv +#define glVertex2s jwzgles_glVertex2s +#define glVertex2sv jwzgles_glVertex2sv +#define glVertex3d jwzgles_glVertex3f +#define glVertex3dv jwzgles_glVertex3dv +#define glVertex3f jwzgles_glVertex3f +#define glVertex3fv jwzgles_glVertex3fv +#define glVertex3i jwzgles_glVertex3i +#define glVertex3iv jwzgles_glVertex3iv +#define glVertex3s jwzgles_glVertex3s +#define glVertex3sv jwzgles_glVertex3sv +#define glVertex4d jwzgles_glVertex4d +#define glVertex4dv jwzgles_glVertex4dv +#define glVertex4f jwzgles_glVertex4f +#define glVertex4fv jwzgles_glVertex4fv +#define glVertex4i jwzgles_glVertex4i +#define glVertex4iv jwzgles_glVertex4iv +#define glVertex4s jwzgles_glVertex4s +#define glVertex4sv jwzgles_glVertex4sv + +#define gluOrtho2D(L,R,B,T) glOrtho(L,R,B,T,-1,1) +#define gluPerspective jwzgles_gluPerspective + +#define glXChooseVisual jwzgles_glXChooseVisual +#define glXCopyContext jwzgles_glXCopyContext +/*#define glXCreateContext jwzgles_glXCreateContext*/ +#define glXCreateGLXPixmap jwzgles_glXCreateGLXPixmap +#define glXDestroyContext jwzgles_glXDestroyContext +#define glXDestroyGLXPixmap jwzgles_glXDestroyGLXPixmap +#define glXFreeContextEXT jwzgles_glXFreeContextEXT +#define glXGetClientString jwzgles_glXGetClientString +#define glXGetConfig jwzgles_glXGetConfig +#define glXGetContextIDEXT jwzgles_glXGetContextIDEXT +#define glXGetCurrentContext jwzgles_glXGetCurrentContext +#define glXGetCurrentDisplay jwzgles_glXGetCurrentDisplay +#define glXGetCurrentDrawable jwzgles_glXGetCurrentDrawable +#define glXImportContextEXT jwzgles_glXImportContextEXT +#define glXIntro jwzgles_glXIntro +#define glXIsDirect jwzgles_glXIsDirect +/*#define glXMakeCurrent jwzgles_glXMakeCurrent*/ +#define glXQueryContextInfoEXT jwzgles_glXQueryContextInfoEXT +#define glXQueryExtension jwzgles_glXQueryExtension +#define glXQueryExtensionsString jwzgles_glXQueryExtensionsString +#define glXQueryServerString jwzgles_glXQueryServerString +#define glXQueryVersion jwzgles_glXQueryVersion +/*#define glXSwapBuffers jwzgles_glXSwapBuffers*/ +#define glXUseXFont jwzgles_glXUseXFont +#define glXWaitGL jwzgles_glXWaitGL +#define glXWaitX jwzgles_glXWaitX + +#define gluBeginCurve jwzgles_gluBeginCurve +#define gluBeginPolygon jwzgles_gluBeginPolygon +#define gluBeginSurface jwzgles_gluBeginSurface +#define gluBeginTrim jwzgles_gluBeginTrim +#define gluBuild1DMipmaps jwzgles_gluBuild1DMipmaps +#define gluBuild2DMipmaps jwzgles_gluBuild2DMipmaps +#define gluCylinder jwzgles_gluCylinder +#define gluDeleteNurbsRenderer jwzgles_gluDeleteNurbsRenderer +#define gluDeleteQuadric jwzgles_gluDeleteQuadric +#define gluDeleteTess jwzgles_gluDeleteTess +#define gluDisk jwzgles_gluDisk +#define gluEndCurve jwzgles_gluEndCurve +#define gluEndPolygon jwzgles_gluEndPolygon +#define gluEndSurface jwzgles_gluEndSurface +#define gluEndTrim jwzgles_gluEndTrim +#define gluErrorString jwzgles_gluErrorString +#define gluGetNurbsProperty jwzgles_gluGetNurbsProperty +#define gluGetString jwzgles_gluGetString +#define gluGetTessProperty jwzgles_gluGetTessProperty +#define gluLoadSamplingMatrices jwzgles_gluLoadSamplingMatrices +#define gluLookAt jwzgles_gluLookAt +#define gluNewNurbsRenderer jwzgles_gluNewNurbsRenderer +#define gluNewQuadric jwzgles_gluNewQuadric +#define gluNewTess jwzgles_gluNewTess +#define gluNextContour jwzgles_gluNextContour +#define gluNurbsCallback jwzgles_gluNurbsCallback +#define gluNurbsCurve jwzgles_gluNurbsCurve +#define gluNurbsProperty jwzgles_gluNurbsProperty +#define gluNurbsSurface jwzgles_gluNurbsSurface +#define gluPartialDisk jwzgles_gluPartialDisk +#define gluPickMatrix jwzgles_gluPickMatrix +#define gluProject jwzgles_gluProject +#define gluPwlCurve jwzgles_gluPwlCurve +#define gluQuadricCallback jwzgles_gluQuadricCallback +#define gluQuadricDrawStyle jwzgles_gluQuadricDrawStyle +#define gluQuadricNormals jwzgles_gluQuadricNormals +#define gluQuadricOrientation jwzgles_gluQuadricOrientation +#define gluQuadricTexture jwzgles_gluQuadricTexture +#define gluScaleImage jwzgles_gluScaleImage +#define gluSphere jwzgles_gluSphere +#define gluTessBeginContour jwzgles_gluTessBeginContour +#define gluTessBeginPolygon jwzgles_gluTessBeginPolygon +#define gluTessCallback jwzgles_gluTessCallback +#define gluTessEndPolygon jwzgles_gluTessEndPolygon +#define gluTessEndContour jwzgles_gluTessEndContour +#define gluTessNormal jwzgles_gluTessNormal +#define gluTessProperty jwzgles_gluTessProperty +#define gluTessVertex jwzgles_gluTessVertex +#define gluUnProject jwzgles_gluUnProject + + +/* These functions are present in both OpenGL 1.1 and in OpenGLES 1, + but are allowed within glNewList/glEndList, so we must wrap them + to allow them to be recorded. + */ +#define glActiveTexture jwzgles_glActiveTexture +#define glAlphaFunc jwzgles_glAlphaFunc +#define glBindTexture jwzgles_glBindTexture +#define glBlendFunc jwzgles_glBlendFunc +#define glClear jwzgles_glClear +#define glClearColor jwzgles_glClearColor +#define glClearStencil jwzgles_glClearStencil +#define glColor4f jwzgles_glColor4f +#define glColorMask jwzgles_glColorMask +#define glColorPointer jwzgles_glColorPointer +#define glCompressedTexImage2D jwzgles_glCompressedTexImage2D +#define glCompressedTexSubImage2D jwzgles_glCompressedTexSubImage2D +#define glCopyTexImage2D jwzgles_glCopyTexImage2D +#define glCopyTexSubImage2D jwzgles_glCopyTexSubImage2D +#define glCullFace jwzgles_glCullFace +#define glDeleteTextures jwzgles_glDeleteTextures +#define glDepthFunc jwzgles_glDepthFunc +#define glDepthMask jwzgles_glDepthMask +#define glDisable jwzgles_glDisable +#define glDrawArrays jwzgles_glDrawArrays +#define glDrawElements jwzgles_glDrawElements +#define glEnable jwzgles_glEnable +#define glFinish jwzgles_glFinish +#define glFlush jwzgles_glFlush +#define glFogf jwzgles_glFogf +#define glFogfv jwzgles_glFogfv +#define glFrontFace jwzgles_glFrontFace +#define glGenTextures jwzgles_glGenTextures +#define glGetIntegerv jwzgles_glGetIntegerv +#define glHint jwzgles_glHint +#define glLightModelf jwzgles_glLightModelf +#define glLightModelfv jwzgles_glLightModelfv +#define glLightf jwzgles_glLightf +#define glLightfv jwzgles_glLightfv +#define glLineWidth jwzgles_glLineWidth +#define glLoadIdentity jwzgles_glLoadIdentity +#define glLoadMatrixf jwzgles_glLoadMatrixf +#define glLogicOp jwzgles_glLogicOp +#define glMaterialf jwzgles_glMaterialf +#define glMateriali jwzgles_glMateriali +#define glMaterialfv jwzgles_glMaterialfv +#define glMaterialiv jwzgles_glMaterialiv +#define glMatrixMode jwzgles_glMatrixMode +#define glMultMatrixf jwzgles_glMultMatrixf +#define glNormal3f jwzgles_glNormal3f +#define glNormalPointer jwzgles_glNormalPointer +#define glPixelStorei jwzgles_glPixelStorei +#define glPointSize jwzgles_glPointSize +#define glPolygonOffset jwzgles_glPolygonOffset +#define glPopMatrix jwzgles_glPopMatrix +#define glPushMatrix jwzgles_glPushMatrix +#define glReadPixels jwzgles_glReadPixels +#define glRotatef jwzgles_glRotatef +#define glScalef jwzgles_glScalef +#define glSampleCoverage jwzgles_glSampleCoverage +#define glScissor jwzgles_glScissor +#define glShadeModel jwzgles_glShadeModel +#define glStencilFunc jwzgles_glStencilFunc +#define glStencilMask jwzgles_glStencilMask +#define glStencilOp jwzgles_glStencilOp +#define glTexCoordPointer jwzgles_glTexCoordPointer +#define glTexEnvf jwzgles_glTexEnvf +#define glTexEnvfv jwzgles_glTexEnvfv +#define glTexImage2D jwzgles_glTexImage2D +#define glTexParameterf jwzgles_glTexParameterf +#define glTexSubImage2D jwzgles_glTexSubImage2D +#define glTranslatef jwzgles_glTranslatef +#define glVertexPointer jwzgles_glVertexPointer +#define glViewport jwzgles_glViewport +#define glEnableClientState jwzgles_glEnableClientState +#define glDisableClientState jwzgles_glDisableClientState +#define glClipPlane jwzgles_glClipPlane + +#endif /* __JWZGLES_H__ */ diff --git a/hacks/glx/jwzglesI.h b/hacks/glx/jwzglesI.h new file mode 100644 index 00000000..3260e74f --- /dev/null +++ b/hacks/glx/jwzglesI.h @@ -0,0 +1,311 @@ +/* xscreensaver, Copyright (c) 2012 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + */ + +/* A compatibility shim to allow OpenGL 1.3 source code to work in an + OpenGLES environment, where almost every OpenGL 1.3 function has + been "deprecated". See jwzgles.c for details. + */ + +#ifndef __JWZGLES_I_H__ +#define __JWZGLES_I_H__ + +#ifdef GL_VERSION_ES_CM_1_0 /* compiling against OpenGLES 1.x */ + +/* These OpenGL 1.3 constants are not present in OpenGLES 1. + Fortunately, it looks like they didn't re-use any of the numbers, + so we can just keep using the OpenGL 1.3 values. I'm actually + kind of shocked that the GLES folks passed up that opportunity + for further clusterfuckery. + */ +# define GLdouble double + +# define GL_ACCUM_BUFFER_BIT 0x00000200 +# define GL_ALL_ATTRIB_BITS 0x000FFFFF +# define GL_AUTO_NORMAL 0x0D80 +# define GL_BLEND_SRC_ALPHA 0x80CB +# define GL_C3F_V3F 0x2A24 +# define GL_C4F_N3F_V3F 0x2A26 +# define GL_C4UB_V2F 0x2A22 +# define GL_C4UB_V3F 0x2A23 +# define GL_CLAMP 0x2900 +# define GL_COLOR_BUFFER_BIT 0x00004000 +# define GL_COLOR_MATERIAL_FACE 0x0B55 +# define GL_COLOR_MATERIAL_PARAMETER 0x0B56 +# define GL_COMPILE 0x1300 +# define GL_CURRENT_BIT 0x00000001 +# define GL_DEPTH_BUFFER_BIT 0x00000100 +# define GL_DOUBLEBUFFER 0x0C32 +# define GL_ENABLE_BIT 0x00002000 +# define GL_EVAL_BIT 0x00010000 +# define GL_EYE_LINEAR 0x2400 +# define GL_EYE_PLANE 0x2502 +# define GL_FEEDBACK 0x1C01 +# define GL_FILL 0x1B02 +# define GL_FOG_BIT 0x00000080 +# define GL_HINT_BIT 0x00008000 +# define GL_INTENSITY 0x8049 +# define GL_LIGHTING_BIT 0x00000040 +# define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +# define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 +# define GL_LINE 0x1B01 +# define GL_LINE_BIT 0x00000004 +# define GL_LIST_BIT 0x00020000 +# define GL_N3F_V3F 0x2A25 +# define GL_OBJECT_LINEAR 0x2401 +# define GL_OBJECT_PLANE 0x2501 +# define GL_PIXEL_MODE_BIT 0x00000020 +# define GL_POINT_BIT 0x00000002 +# define GL_POLYGON 0x0009 +# define GL_POLYGON_BIT 0x00000008 +# define GL_POLYGON_MODE 0x0B40 +# define GL_POLYGON_SMOOTH 0x0B41 +# define GL_POLYGON_STIPPLE 0x0B42 +# define GL_POLYGON_STIPPLE_BIT 0x00000010 +# define GL_Q 0x2003 +# define GL_QUADS 0x0007 +# define GL_QUAD_STRIP 0x0008 +# define GL_R 0x2002 +# define GL_RENDER 0x1C00 +# define GL_RGBA_MODE 0x0C31 +# define GL_S 0x2000 +# define GL_SCISSOR_BIT 0x00080000 +# define GL_SELECT 0x1C02 +# define GL_SEPARATE_SPECULAR_COLOR 0x81FA +# define GL_SINGLE_COLOR 0x81F9 +# define GL_SPHERE_MAP 0x2402 +# define GL_STENCIL_BUFFER_BIT 0x00000400 +# define GL_T 0x2001 +# define GL_T2F_C3F_V3F 0x2A2A +# define GL_T2F_C4F_N3F_V3F 0x2A2C +# define GL_T2F_C4UB_V3F 0x2A29 +# define GL_T2F_N3F_V3F 0x2A2B +# define GL_T2F_V3F 0x2A27 +# define GL_T4F_C4F_N3F_V4F 0x2A2D +# define GL_T4F_V4F 0x2A28 +# define GL_TEXTURE_1D 0x0DE0 +# define GL_TEXTURE_ALPHA_SIZE 0x805F +# define GL_TEXTURE_BIT 0x00040000 +# define GL_TEXTURE_BLUE_SIZE 0x805E +# define GL_TEXTURE_BORDER 0x1005 +# define GL_TEXTURE_BORDER_COLOR 0x1004 +# define GL_TEXTURE_COMPONENTS 0x1003 +# define GL_TEXTURE_GEN_MODE 0x2500 +# define GL_TEXTURE_GEN_Q 0x0C63 +# define GL_TEXTURE_GEN_R 0x0C62 +# define GL_TEXTURE_GEN_S 0x0C60 +# define GL_TEXTURE_GEN_T 0x0C61 +# define GL_TEXTURE_GREEN_SIZE 0x805D +# define GL_TEXTURE_HEIGHT 0x1001 +# define GL_TEXTURE_INTENSITY_SIZE 0x8061 +# define GL_TEXTURE_LUMINANCE_SIZE 0x8060 +# define GL_TEXTURE_RED_SIZE 0x805C +# define GL_TEXTURE_WIDTH 0x1000 +# define GL_TRANSFORM_BIT 0x00001000 +# define GL_UNPACK_ROW_LENGTH 0x0CF2 +# define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +# define GL_V2F 0x2A20 +# define GL_V3F 0x2A21 +# define GL_VIEWPORT_BIT 0x00000800 + +#endif + + +/* Prototypes for the things re-implemented in jwzgles.c + */ + +extern int jwzgles_glGenLists (int n); +extern void jwzgles_glNewList (int id, int mode); +extern void jwzgles_glEndList (void); +extern void jwzgles_glDeleteLists (int list, int range); +extern void jwzgles_glBegin (int mode); +extern void jwzgles_glNormal3fv (const GLfloat *); +extern void jwzgles_glNormal3f (GLfloat x, GLfloat y, GLfloat z); +extern void jwzgles_glTexCoord1f (GLfloat s); +extern void jwzgles_glTexCoord2fv (const GLfloat *); +extern void jwzgles_glTexCoord2f (GLfloat s, GLfloat t); +extern void jwzgles_glTexCoord3fv (const GLfloat *); +extern void jwzgles_glTexCoord3f (GLfloat s, GLfloat t, GLfloat r); +extern void jwzgles_glTexCoord4fv (const GLfloat *); +extern void jwzgles_glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q); +extern void jwzgles_glVertex2f (GLfloat x, GLfloat y); +extern void jwzgles_glVertex2fv (const GLfloat *); +extern void jwzgles_glVertex2i (GLint x, GLint y); +extern void jwzgles_glVertex3f (GLfloat x, GLfloat y, GLfloat z); +extern void jwzgles_glVertex3dv (const GLdouble *); +extern void jwzgles_glVertex3fv (const GLfloat *); +extern void jwzgles_glVertex3i (GLint x, GLint y, GLint z); +extern void jwzgles_glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void jwzgles_glVertex4fv (const GLfloat *); +extern void jwzgles_glVertex4i (GLint x, GLint y, GLint z, GLint w); +extern void jwzgles_glEnd (void); +extern void jwzgles_glCallList (int id); +extern void jwzgles_glClearIndex(GLfloat c); +extern void jwzgles_glBitmap (GLsizei, GLsizei, GLfloat, GLfloat, GLfloat, + GLfloat, const GLubyte *); +extern void jwzgles_glPushAttrib(int); +extern void jwzgles_glPopAttrib(void); + + +/* These functions are present in both OpenGL 1.3 and in OpenGLES 1, + but are allowed within glNewList/glEndList, so we must wrap them + to allow them to be recorded. + */ +extern void jwzgles_glActiveTexture (GLuint); +extern void jwzgles_glBindTexture (GLuint, GLuint); +extern void jwzgles_glBlendFunc (GLuint, GLuint); +extern void jwzgles_glClear (GLuint); +extern void jwzgles_glClearColor (GLclampf, GLclampf, GLclampf, GLclampf); +extern void jwzgles_glClearStencil (GLuint); +extern void jwzgles_glColorMask (GLuint, GLuint, GLuint, GLuint); +extern void jwzgles_glCullFace (GLuint); +extern void jwzgles_glDepthFunc (GLuint); +extern void jwzgles_glDepthMask (GLuint); +extern void jwzgles_glDisable (GLuint); +extern void jwzgles_glDrawArrays (GLuint, GLuint, GLuint); +extern GLboolean jwzgles_glIsEnabled (GLuint); +extern void jwzgles_glEnable (GLuint); +extern void jwzgles_glFrontFace (GLuint); +extern void jwzgles_glHint (GLuint, GLuint); +extern void jwzgles_glLineWidth (GLfloat); +extern void jwzgles_glLoadIdentity (void); +extern void jwzgles_glLogicOp (GLuint); +extern void jwzgles_glMatrixMode (GLuint); +extern void jwzgles_glMultMatrixf (const GLfloat *); +extern void jwzgles_glPointSize (GLfloat); +extern void jwzgles_glPolygonOffset (GLfloat, GLfloat); +extern void jwzgles_glPopMatrix (void); +extern void jwzgles_glPushMatrix (void); +extern void jwzgles_glScissor (GLuint, GLuint, GLuint, GLuint); +extern void jwzgles_glShadeModel (GLuint); +extern void jwzgles_glStencilFunc (GLuint, GLuint, GLuint); +extern void jwzgles_glStencilMask (GLuint); +extern void jwzgles_glStencilOp (GLuint, GLuint, GLuint); +extern void jwzgles_glViewport (GLuint, GLuint, GLuint, GLuint); +extern void jwzgles_glTranslatef (GLfloat, GLfloat, GLfloat); +extern void jwzgles_glRotatef (GLfloat, GLfloat, GLfloat, GLfloat); +extern void jwzgles_glRotated (GLdouble, GLdouble x, GLdouble y, GLdouble z); +extern void jwzgles_glScalef (GLfloat, GLfloat, GLfloat); +extern void jwzgles_glColor3f (GLfloat, GLfloat, GLfloat); +extern void jwzgles_glColor4f (GLfloat, GLfloat, GLfloat, GLfloat); +extern void jwzgles_glColor3fv (const GLfloat *); +extern void jwzgles_glColor4fv (const GLfloat *); +extern void jwzgles_glColor4i (GLuint, GLuint, GLuint, GLuint); +extern void jwzgles_glColor3i (GLuint, GLuint, GLuint); +extern void jwzgles_glColor3iv (const GLint *); +extern void jwzgles_glColor4iv (const GLint *); +extern void jwzgles_glColor4ub (GLubyte, GLubyte, GLubyte, GLubyte); +extern void jwzgles_glColor3ub (GLubyte, GLubyte, GLubyte); +extern void jwzgles_glMaterialf (GLuint, GLuint, GLfloat); +extern void jwzgles_glMateriali (GLuint, GLuint, GLuint); +extern void jwzgles_glMaterialfv (GLuint, GLuint, const GLfloat *); +extern void jwzgles_glMaterialiv (GLuint, GLuint, const GLint *); +extern void jwzgles_glFinish (void); +extern void jwzgles_glFlush (void); +extern void jwzgles_glPixelStorei (GLuint, GLuint); +extern void jwzgles_glEnableClientState (GLuint); +extern void jwzgles_glDisableClientState (GLuint); + +extern void jwzgles_glInitNames (void); +extern void jwzgles_glPushName (GLuint); +extern GLuint jwzgles_glPopName (void); +extern GLuint jwzgles_glRenderMode (GLuint); +extern void jwzgles_glSelectBuffer (GLsizei, GLuint *); +extern void jwzgles_glLightf (GLenum, GLenum, GLfloat); +extern void jwzgles_glLighti (GLenum, GLenum, GLint); +extern void jwzgles_glLightfv (GLenum, GLenum, const GLfloat *); +extern void jwzgles_glLightiv (GLenum, GLenum, const GLint *); +extern void jwzgles_glLightModelf (GLenum, GLfloat); +extern void jwzgles_glLightModeli (GLenum, GLint); +extern void jwzgles_glLightModelfv (GLenum, const GLfloat *); +extern void jwzgles_glLightModeliv (GLenum, const GLint *); +extern void jwzgles_glGenTextures (GLuint, GLuint *); +extern void jwzgles_glFrustum (GLfloat, GLfloat, GLfloat, GLfloat, + GLfloat, GLfloat); +extern void jwzgles_glOrtho (GLfloat, GLfloat, GLfloat, GLfloat, + GLfloat, GLfloat); +extern void jwzgles_glTexImage1D (GLenum target, GLint level, + GLint internalFormat, + GLsizei width, GLint border, + GLenum format, GLenum type, + const GLvoid *pixels); +extern void jwzgles_glTexImage2D (GLenum target, + GLint level, + GLint internalFormat, + GLsizei width, + GLsizei height, + GLint border, + GLenum format, + GLenum type, + const GLvoid *data); +extern void jwzgles_glTexSubImage2D (GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLsizei width, GLsizei height, + GLenum format, GLenum type, + const GLvoid *pixels); +extern void jwzgles_glCopyTexImage2D (GLenum target, GLint level, + GLenum internalformat, + GLint x, GLint y, + GLsizei width, GLsizei height, + GLint border); +extern void jwzgles_glInterleavedArrays (GLenum, GLsizei, const GLvoid *); +extern void jwzgles_glTexEnvf (GLuint, GLuint, GLfloat); +extern void jwzgles_glTexEnvi (GLuint, GLuint, GLuint); +extern void jwzgles_glTexParameterf (GLuint, GLuint, GLfloat); +extern void jwzgles_glTexParameteri (GLuint, GLuint, GLuint); +extern void jwzgles_glTexGeni (GLenum, GLenum, GLint); +extern void jwzgles_glTexGenfv (GLenum, GLenum, const GLfloat *); +extern void jwzgles_glRectf (GLfloat, GLfloat, GLfloat, GLfloat); +extern void jwzgles_glRecti (GLint, GLint, GLint, GLint); +extern void jwzgles_glLightModelfv (GLenum, const GLfloat *); +extern void jwzgles_glClearDepth (GLfloat); +extern GLboolean jwzgles_glIsList (GLuint); +extern void jwzgles_glColorMaterial (GLenum, GLenum); +extern void jwzgles_glPolygonMode (GLenum, GLenum); +extern void jwzgles_glFogf (GLenum, GLfloat); +extern void jwzgles_glFogi (GLenum, GLint); +extern void jwzgles_glFogfv (GLenum, const GLfloat *); +extern void jwzgles_glFogiv (GLenum, const GLint *); +extern void jwzgles_glAlphaFunc (GLenum, GLfloat); +extern void jwzgles_glClipPlane (GLenum, const GLdouble *); +extern void jwzgles_glDrawBuffer (GLenum); +extern void jwzgles_glDeleteTextures (GLuint, const GLuint *); + +extern void jwzgles_gluPerspective (GLdouble fovy, GLdouble aspect, + GLdouble near, GLdouble far); +extern void jwzgles_gluLookAt (GLfloat eyex, GLfloat eyey, GLfloat eyez, + GLfloat centerx, GLfloat centery, + GLfloat centerz, + GLfloat upx, GLfloat upy, GLfloat upz); +extern GLint jwzgles_gluProject (GLdouble objx, GLdouble objy, GLdouble objz, + const GLdouble modelMatrix[16], + const GLdouble projMatrix[16], + const GLint viewport[4], + GLdouble *winx, GLdouble *winy, + GLdouble *winz); +extern int jwzgles_gluBuild2DMipmaps (GLenum target, + GLint internalFormat, + GLsizei width, + GLsizei height, + GLenum format, + GLenum type, + const GLvoid *data); +extern void jwzgles_glGetFloatv (GLenum pname, GLfloat *params); +extern void jwzgles_glGetPointerv (GLenum pname, GLvoid *params); +extern void jwzgles_glGetDoublev (GLenum pname, GLdouble *params); +extern void jwzgles_glGetIntegerv (GLenum pname, GLint *params); +extern void jwzgles_glGetBooleanv (GLenum pname, GLboolean *params); +extern void jwzgles_glVertexPointer (GLuint, GLuint, GLuint, const void *); +extern void jwzgles_glNormalPointer (GLenum, GLuint, const void *); +extern void jwzgles_glColorPointer (GLuint, GLuint, GLuint, const void *); +extern void jwzgles_glTexCoordPointer (GLuint, GLuint, GLuint, const void *); +extern const char *jwzgles_gluErrorString (GLenum error); + +#endif /* __JWZGLES_I_H__ */ diff --git a/hacks/glx/klein.c b/hacks/glx/klein.c index 0c91e8b4..366fabda 100644 --- a/hacks/glx/klein.c +++ b/hacks/glx/klein.c @@ -136,7 +136,9 @@ static const char sccsid[] = "@(#)klein.c 1.1 08/10/04 xlockmore"; #ifdef USE_GL -#include +#ifndef HAVE_COCOA +# include +#endif #include "gltrackball.h" @@ -1699,9 +1701,12 @@ ENTRYPOINT void reshape_klein(ModeInfo *mi, int width, int height) ENTRYPOINT Bool klein_handle_event(ModeInfo *mi, XEvent *event) { - Display *display = MI_DISPLAY(mi); kleinstruct *kb = &klein[MI_SCREEN(mi)]; - KeySym sym; + KeySym sym = 0; + char c = 0; + + if (event->xany.type == KeyPress || event->xany.type == KeyRelease) + XLookupString (&event->xkey, &c, 1, &sym, 0); if (event->xany.type == ButtonPress && event->xbutton.button == Button1) @@ -1720,7 +1725,6 @@ ENTRYPOINT Bool klein_handle_event(ModeInfo *mi, XEvent *event) } else if (event->xany.type == KeyPress) { - sym = XKeycodeToKeysym(display,event->xkey.keycode,0); if (sym == XK_Shift_L || sym == XK_Shift_R) { kb->current_trackball = 1; @@ -1733,7 +1737,6 @@ ENTRYPOINT Bool klein_handle_event(ModeInfo *mi, XEvent *event) } else if (event->xany.type == KeyRelease) { - sym = XKeycodeToKeysym(display,event->xkey.keycode,0); if (sym == XK_Shift_L || sym == XK_Shift_R) { kb->current_trackball = 0; diff --git a/hacks/glx/lament.c b/hacks/glx/lament.c index 4c80da59..d9c662af 100644 --- a/hacks/glx/lament.c +++ b/hacks/glx/lament.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1998-2004 Jamie Zawinski +/* xscreensaver, Copyright (c) 1998-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -164,6 +164,7 @@ typedef struct { int anim_pause; /* countdown before animating again */ GLfloat anim_r, anim_y, anim_z; /* relative position during anims */ + Bool facing_p; int state, nstates; lament_type *states; @@ -1355,6 +1356,57 @@ lament_handle_event (ModeInfo *mi, XEvent *event) } +static void +check_facing(ModeInfo *mi) +{ + lament_configuration *lc = &lcs[MI_SCREEN(mi)]; + + GLdouble m[16], p[16], x, y, z; + GLint v[4]; + glGetDoublev (GL_MODELVIEW_MATRIX, m); + glGetDoublev (GL_PROJECTION_MATRIX, p); + glGetIntegerv (GL_VIEWPORT, v); + + /* See if a coordinate 5 units in front of the door is near the + center of the screen. */ + + gluProject (-5, 0, 0, m, p, v, &x, &y, &z); + x = (x / MI_WIDTH(mi)) - 0.5; + y = (y / MI_HEIGHT(mi)) - 0.5; + lc->facing_p = (z < 0.9 && + x > -0.02 && x < 0.02 && + y > -0.02 && y < 0.02); +} + + + +static void +scale_for_window(ModeInfo *mi) +{ + int target_size = 180; + int win_size = (MI_WIDTH(mi) > MI_HEIGHT(mi) ? MI_HEIGHT(mi) : MI_WIDTH(mi)); + + /* This scale makes the box take up most of the window */ + glScalef(8, 8, 8); + + /* But if the window is more than a little larger than our target size, + scale the object back down, so that the bits drawn on the screen end + up rougly target_size across (actually it ends up a little larger.) + Note that the image-map bits we have are 128x128. Therefore, if the + image is magnified a lot, it looks pretty blocky. So it's better to + have a 128x128 animation on a 1280x1024 screen that looks good, than + a 1024x1024 animation that looks really pixelated. + */ + if (win_size > 640 && + win_size > target_size * 1.5) + { + GLfloat ratio = ((GLfloat) target_size / (GLfloat) win_size); + ratio *= 2.0; + glScalef(ratio, ratio, ratio); + } +} + + static void draw(ModeInfo *mi) { @@ -1373,10 +1425,9 @@ draw(ModeInfo *mi) /* Make into the screen be +Y right be +X, and up be +Z. */ glRotatef(-90.0, 1.0, 0.0, 0.0); - /* Scale it up. */ - glScalef(4.0, 4.0, 4.0); + scale_for_window (mi); -#ifdef DEBUG +#if 0 glPushMatrix(); { /* Shift to the upper left, and draw the vanilla box. */ @@ -1394,7 +1445,7 @@ draw(ModeInfo *mi) /* Shift to the lower right, and draw the animated object. */ glTranslatef(0.6, 0.0, -0.6); -#endif /* DEBUG */ +#endif /* 0 */ glPushMatrix(); @@ -1407,6 +1458,8 @@ draw(ModeInfo *mi) glRotatef (lc->roty * 360, 0.0, 1.0, 0.0); glRotatef (lc->rotz * 360, 0.0, 0.0, 1.0); + check_facing(mi); + switch (lc->type) { case LAMENT_BOX: @@ -1662,28 +1715,11 @@ animate(ModeInfo *mi) if (lc->anim_r >= 112.0) { - GLfloat hysteresis = 0.05; - lc->anim_r = 112.0; lc->anim_z = 0.0; lc->anim_pause = pause3; - - if (lc->rotx >= -hysteresis && - lc->rotx <= hysteresis && - ((lc->rotz >= (0.25 - hysteresis) && - lc->rotz <= (0.25 + hysteresis)) || - (lc->rotz >= (-0.25 - hysteresis) && - lc->rotz <= (-0.25 + hysteresis)))) - { - lc->type = LAMENT_LID_ZOOM; - lc->rotx = 0.00; - lc->rotz = (lc->rotz < 0 ? -0.25 : 0.25); - } - else - { - lc->type = LAMENT_LID_CLOSE; - } - } + lc->type = (lc->facing_p ? LAMENT_LID_ZOOM : LAMENT_LID_CLOSE); + } break; case LAMENT_LID_CLOSE: @@ -1762,42 +1798,15 @@ animate(ModeInfo *mi) ENTRYPOINT void reshape_lament(ModeInfo *mi, int width, int height) { - int target_size = 180; - int win_size = (width > height ? height : width); GLfloat h = (GLfloat) height / (GLfloat) width; - glViewport(0, 0, (GLint) width, (GLint) height); -/* glViewport(-600, -600, 1800, 1800); */ - glMatrixMode(GL_PROJECTION); glLoadIdentity(); glFrustum(-1.0, 1.0, -h, h, 5.0, 60.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslatef(0.0, 0.0, -40.0); - - /* This scale makes the box take up most of the window */ - glScalef(2.0, 2.0, 2.0); - - /* But if the window is more than a little larger than our target size, - scale the object back down, so that the bits drawn on the screen end - up rougly target_size across (actually it ends up a little larger.) - Note that the image-map bits we have are 128x128. Therefore, if the - image is magnified a lot, it looks pretty blocky. So it's better to - have a 128x128 animation on a 1280x1024 screen that looks good, than - a 1024x1024 animation that looks really pixelated. - */ - if (win_size > target_size * 1.5) - { - GLfloat ratio = ((GLfloat) target_size / (GLfloat) win_size); - ratio *= 2.0; - glScalef(ratio, ratio, ratio); - } - - /* The depth buffer will be cleared, if needed, before the - * next frame. Right now we just want to black the screen. - */ glClear(GL_COLOR_BUFFER_BIT); } @@ -1850,7 +1859,8 @@ gl_init(ModeInfo *mi) parse_image_data(mi); glPixelStorei(GL_UNPACK_ALIGNMENT, 4); - glPixelStorei(GL_UNPACK_ROW_LENGTH, lc->texture->width); + /* messes up -fps */ + /* glPixelStorei(GL_UNPACK_ROW_LENGTH, lc->texture->width); */ for (i = 0; i < 6; i++) { @@ -1872,8 +1882,6 @@ gl_init(ModeInfo *mi) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); - glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); } #else /* !HAVE_GLBINDTEXTURE */ diff --git a/hacks/glx/lavalite.c b/hacks/glx/lavalite.c index c31df5a4..f80847f9 100644 --- a/hacks/glx/lavalite.c +++ b/hacks/glx/lavalite.c @@ -1514,6 +1514,7 @@ draw_lavalite (ModeInfo *mi) #endif /* 0 */ glLoadIdentity(); + glRotatef(current_device_rotation(), 0, 0, 1); gluLookAt ((cx - 0.5) * 8, /* Position the camera */ (cy - 0.5) * 8, @@ -1523,7 +1524,6 @@ draw_lavalite (ModeInfo *mi) gltrackball_rotate (bp->trackball); /* Apply mouse-based camera position */ - /* Place the lights relative to the object, before the object has been rotated or wandered within the scene. */ glLightfv(GL_LIGHT0, GL_POSITION, light0_pos); diff --git a/hacks/glx/lockward.c b/hacks/glx/lockward.c index 3774d3b5..9fb8c96c 100644 --- a/hacks/glx/lockward.c +++ b/hacks/glx/lockward.c @@ -197,9 +197,9 @@ reshape_lockward (ModeInfo *mi, int width, int height) glMatrixMode (GL_PROJECTION); glLoadIdentity (); if (height > width) - gluOrtho2D (-8.0, 8.0, -8.0 * h, 8.0 * h); + glOrtho (-8.0, 8.0, -8.0 * h, 8.0 * h, -1, 1); else - gluOrtho2D (-8.0 / h, 8.0 / h, -8.0, 8.0); + glOrtho (-8.0 / h, 8.0 / h, -8.0, 8.0, -1, 1); glMatrixMode (GL_MODELVIEW); } diff --git a/hacks/glx/marching.c b/hacks/glx/marching.c index afddac8d..77230771 100644 --- a/hacks/glx/marching.c +++ b/hacks/glx/marching.c @@ -21,12 +21,14 @@ #include #include -#ifdef HAVE_COCOA -# include -#else +#ifndef HAVE_COCOA # include #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #include "marching.h" #include "normals.h" diff --git a/hacks/glx/mirrorblob.c b/hacks/glx/mirrorblob.c index a2f1ed6e..d6fbdc1c 100644 --- a/hacks/glx/mirrorblob.c +++ b/hacks/glx/mirrorblob.c @@ -191,20 +191,20 @@ ModStruct mirrorblob_description = typedef struct { - GLdouble x, y; + GLfloat x, y; } Vector2D; typedef struct { - GLdouble x, y, z; + GLfloat x, y, z; } Vector3D; typedef struct { - GLdouble w; - GLdouble x; - GLdouble y; - GLdouble z; + GLfloat w; + GLfloat x; + GLfloat y; + GLfloat z; } Quaternion; typedef struct @@ -461,9 +461,9 @@ normalise (const Vector3D v) * Calculate the transform matrix for the given quaternion */ static void -quaternion_transform (Quaternion q, GLdouble * transform) +quaternion_transform (Quaternion q, GLfloat * transform) { - GLdouble x, y, z, w; + GLfloat x, y, z, w; x = q.x; y = q.y; z = q.z; @@ -495,7 +495,7 @@ quaternion_transform (Quaternion q, GLdouble * transform) * Apply a matrix transform to the given vector */ static inline Vector3D -vector_transform (Vector3D u, GLdouble * t) +vector_transform (Vector3D u, GLfloat * t) { Vector3D result; @@ -516,7 +516,7 @@ partial (Vector3D node1, Vector3D node2, double distance) { Vector3D result; Vector3D rotation_axis; - GLdouble transformation[16]; + GLfloat transformation[16]; double angle; Quaternion rotation; @@ -737,7 +737,7 @@ initialize_gl(ModeInfo *mi, GLsizei width, GLsizei height) * Initialise the openGL state data. */ static void -set_blob_gl_state(GLdouble alpha) +set_blob_gl_state(GLfloat alpha) { if (do_antialias) { @@ -776,12 +776,12 @@ set_blob_gl_state(GLdouble alpha) glEnable (GL_BLEND); glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); /* Set the default blob colour to off-white. */ - glColor4d (0.9, 0.9, 1.0, alpha); + glColor4f (0.9, 0.9, 1.0, alpha); } else { glDisable(GL_BLEND); - glColor4d (0.9, 0.9, 1.0, 1.0); + glColor4f (0.9, 0.9, 1.0, 1.0); } glEnable(GL_DEPTH_TEST); @@ -1394,10 +1394,10 @@ draw_vertex(mirrorblobstruct *gp, int index) } if (load_textures) { - glTexCoord3dv((GLdouble *) &gp->tex_coords[index]); + glTexCoord2fv(&gp->tex_coords[index].x); } - glNormal3dv((GLdouble *) &gp->normals[index]); - glVertex3dv((GLdouble *) &gp->dots[index]); + glNormal3fv(&gp->normals[index].x); + glVertex3fv(&gp->dots[index].x); } /****************************************************************************** @@ -1417,6 +1417,7 @@ draw_blob (mirrorblobstruct *gp) glTranslatef (0.0, 0.0, -4.0); gltrackball_rotate (gp->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); /* glColor4ub (255, 0, 0, 128); */ glBegin(GL_TRIANGLES); @@ -1435,9 +1436,9 @@ draw_blob (mirrorblobstruct *gp) if (gp->normals[gp->faces[face].node1].z > 0.0) { Vector3D end = gp->dots[gp->faces[face].node1]; - glVertex3dv((GLdouble *) &end); + glVertex3dv(&end); add(&end, scale(gp->normals[gp->faces[face].node1], 0.25)); - glVertex3dv((GLdouble *) &end); + glVertex3dv(&end); } } glEnd(); @@ -1454,6 +1455,7 @@ static void draw_background (ModeInfo *mi) { mirrorblobstruct *gp = &Mirrorblob[MI_SCREEN(mi)]; + GLfloat rot = current_device_rotation(); glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL); glEnable (GL_TEXTURE_2D); @@ -1467,6 +1469,14 @@ draw_background (ModeInfo *mi) glPushMatrix(); glLoadIdentity(); + glRotatef (rot, 0, 0, 1); + if ((rot > 45 && rot < 135) || + (rot < -45 && rot > -135)) + { + GLfloat s = MI_WIDTH(mi) / (GLfloat) MI_HEIGHT(mi); + glScalef (s, 1/s, 1); + } + glOrtho(0.0, MI_WIDTH(mi), MI_HEIGHT(mi), 0.0, -1000.0, 1000.0); glBegin (GL_QUADS); @@ -1503,13 +1513,13 @@ draw_scene(ModeInfo * mi) check_gl_error ("draw_scene"); mi->polygon_count = 0; - glColor4d(1.0, 1.0, 1.0, 1.0); + glColor4f (1.0, 1.0, 1.0, 1.0); current_time = double_time(); switch (gp->state) { case INITIALISING: - glColor4d(0.0, 0.0, 0.0, 1.0); + glColor4f (0.0, 0.0, 0.0, 1.0); fade = 1.0; break; @@ -1540,7 +1550,7 @@ draw_scene(ModeInfo * mi) { glClear(GL_DEPTH_BUFFER_BIT); glEnable (GL_BLEND); - glColor4d (1.0, 1.0, 1.0, motion_blur); + glColor4f (1.0, 1.0, 1.0, motion_blur); } else { @@ -1557,7 +1567,7 @@ draw_scene(ModeInfo * mi) glEnable (GL_BLEND); /* Select the texture to transition to */ glBindTexture (GL_TEXTURE_2D, gp->textures[1 - gp->current_texture]); - glColor4d (1.0, 1.0, 1.0, 1.0 - fade); + glColor4f (1.0, 1.0, 1.0, 1.0 - fade); draw_background (mi); mi->polygon_count++; @@ -1571,7 +1581,7 @@ draw_scene(ModeInfo * mi) else if (motion_blur > 0.0) { glEnable (GL_BLEND); - glColor4d (0.0, 0.0, 0.0, motion_blur); + glColor4f (0.0, 0.0, 0.0, motion_blur); glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); glTranslatef (0.0, 0.0, -4.0); glRectd (-10.0, -10.0, 10.0, 10.0); @@ -1669,7 +1679,7 @@ draw_scene(ModeInfo * mi) } else { - glColor4d(0.9, 0.9, 1.0, (1.0 - fade) * blend); + glColor4f (0.9, 0.9, 1.0, (1.0 - fade) * blend); } draw_blob (gp); diff --git a/hacks/glx/moebius.c b/hacks/glx/moebius.c index ecf052c2..a9dddf50 100644 --- a/hacks/glx/moebius.c +++ b/hacks/glx/moebius.c @@ -88,9 +88,32 @@ static const char sccsid[] = "@(#)moebius.c 5.01 2001/03/01 xlockmore"; # include "xlock.h" /* from the xlockmore distribution */ #endif /* !STANDALONE */ +#ifdef HAVE_COCOA +# include "jwxyz.h" +#else +# include +# include +# include +#endif + +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #ifdef MODE_moebius +#if 0 /* Hey, this never actually used the texture at all! */ +#if 0 #include "e_textures.h" +#else +#include "xpm-ximage.h" +#include "../images/wood.xpm" +#endif +#endif /* 0 */ + +#include "sphere.h" +#include "tube.h" + #include "rotator.h" #include "gltrackball.h" @@ -185,6 +208,7 @@ static moebiusstruct *moebius = (moebiusstruct *) NULL; static Bool mySphere(float radius) { +#if 0 GLUquadricObj *quadObj; if ((quadObj = gluNewQuadric()) == 0) @@ -192,12 +216,19 @@ mySphere(float radius) gluQuadricDrawStyle(quadObj, (GLenum) GLU_FILL); gluSphere(quadObj, radius, 16, 16); gluDeleteQuadric(quadObj); +#else + glPushMatrix(); + glScalef (radius, radius, radius); + unit_sphere (16, 16, False); + glPopMatrix(); +#endif return True; } static Bool myCone(float radius) { +#if 0 GLUquadricObj *quadObj; if ((quadObj = gluNewQuadric()) == 0) @@ -205,6 +236,12 @@ myCone(float radius) gluQuadricDrawStyle(quadObj, (GLenum) GLU_FILL); gluCylinder(quadObj, radius, 0, radius * 3, 8, 1); gluDeleteQuadric(quadObj); +#else + cone (0, 0, 0, + 0, 0, radius * 3, + radius, 0, + 8, True, True, False); +#endif return True; } @@ -403,6 +440,10 @@ draw_moebius_strip(ModeInfo * mi) float Cx, Cy, Cz; +#ifdef HAVE_JWZGLES + solidmoebius = True; /* no LINE PolygonMode */ +#endif + if (solidmoebius) { glBegin(GL_QUAD_STRIP); Phi = 0; @@ -540,9 +581,9 @@ reshape_moebius (ModeInfo * mi, int width, int height) } static void -pinit(void) +pinit(ModeInfo *mi) { - int status; + /* int status; */ glClearDepth(1.0); glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); @@ -562,11 +603,13 @@ pinit(void) /* moebius */ glShadeModel(GL_SMOOTH); glEnable(GL_DEPTH_TEST); - glDisable(GL_TEXTURE_2D); glDisable(GL_CULL_FACE); +#if 0 + glEnable(GL_TEXTURE_2D); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); +#if 0 clear_gl_error(); status = gluBuild2DMipmaps(GL_TEXTURE_2D, 3, WoodTextureWidth, WoodTextureHeight, @@ -580,12 +623,29 @@ pinit(void) exit (1); } check_gl_error("mipmapping"); +#else + { + XImage *img = xpm_to_ximage (mi->dpy, + mi->xgwa.visual, + mi->xgwa.colormap, + wood_texture); + glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, + img->width, img->height, 0, + GL_RGBA, + /* GL_UNSIGNED_BYTE, */ + GL_UNSIGNED_INT_8_8_8_8_REV, + img->data); + check_gl_error("texture"); + XDestroyImage (img); + } +#endif glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); +#endif glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, front_shininess); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, front_specular); @@ -670,7 +730,7 @@ init_moebius (ModeInfo * mi) reshape_moebius(mi, MI_WIDTH(mi), MI_HEIGHT(mi)); glDrawBuffer(GL_BACK); - pinit(); + pinit(mi); } else { MI_CLEARWINDOW(mi); } diff --git a/hacks/glx/molecule.c b/hacks/glx/molecule.c index 58be5ceb..b3998f2d 100644 --- a/hacks/glx/molecule.c +++ b/hacks/glx/molecule.c @@ -1,4 +1,4 @@ -/* molecule, Copyright (c) 2001-2006 Jamie Zawinski +/* molecule, Copyright (c) 2001-2012 Jamie Zawinski * Draws molecules, based on coordinates from PDB (Protein Data Base) files. * * Permission to use, copy, modify, distribute, and sell this software and its @@ -24,10 +24,16 @@ http://www.wwpdb.org/docs.html */ +#ifdef HAVE_GLBITMAP +# define ATOM_FONT "-*-helvetica-medium-r-normal-*-180-*" +#else +# define ATOM_FONT "-*-helvetica-medium-r-normal-*-240-*" +#endif + #define DEFAULTS "*delay: 10000 \n" \ "*showFPS: False \n" \ "*wireframe: False \n" \ - "*atomFont: -*-helvetica-medium-r-normal-*-180-*\n" \ + "*atomFont: " ATOM_FONT "\n" \ "*atomFont2: -*-helvetica-bold-r-normal-*-80-*\n" \ "*titleFont: -*-helvetica-medium-r-normal-*-180-*\n" \ "*noLabelThreshold: 30 \n" \ @@ -160,8 +166,14 @@ typedef struct { GLuint molecule_dlist; GLuint shell_dlist; +# ifdef HAVE_GLBITMAP XFontStruct *xfont1, *xfont2, *xfont3; GLuint font1_dlist, font2_dlist, font3_dlist; +# else + texture_font_data *font1_data, *font2_data, *font3_data; +# endif + + int polygon_count; time_t draw_time; @@ -258,9 +270,15 @@ static void load_fonts (ModeInfo *mi) { molecule_configuration *mc = &mcs[MI_SCREEN(mi)]; +# ifdef HAVE_GLBITMAP load_font (mi->dpy, "atomFont", &mc->xfont1, &mc->font1_dlist); load_font (mi->dpy, "atomFont2", &mc->xfont2, &mc->font2_dlist); load_font (mi->dpy, "titleFont", &mc->xfont3, &mc->font3_dlist); +# else + mc->font1_data = load_texture_font (mi->dpy, "atomFont"); + mc->font2_data = load_texture_font (mi->dpy, "atomFont2"); + mc->font3_data = load_texture_font (mi->dpy, "titleFont"); +# endif } @@ -470,7 +488,6 @@ draw_bounding_box (ModeInfo *mi) glVertex3f(x2, y2, z2); glVertex3f(x2, y2, z1); glEnd(); - glPushAttrib (GL_LIGHTING); glDisable (GL_LIGHTING); glColor3f (c2[0], c2[1], c2[2]); @@ -483,7 +500,8 @@ draw_bounding_box (ModeInfo *mi) glVertex3f(0, 0, z1); glVertex3f(0, 0, z2); glEnd(); - glPopAttrib(); + if (!wire) + glEnable (GL_LIGHTING); } @@ -1207,7 +1225,12 @@ startup_blurb (ModeInfo *mi) { molecule_configuration *mc = &mcs[MI_SCREEN(mi)]; const char *s = "Constructing molecules..."; - print_gl_string (mi->dpy, mc->xfont3, mc->font3_dlist, + print_gl_string (mi->dpy, +# ifdef HAVE_GLBITMAP + mc->xfont3, mc->font3_dlist, +# else + mc->font3_data, +# endif mi->xgwa.width, mi->xgwa.height, 10, mi->xgwa.height - 10, s, False); @@ -1365,9 +1388,13 @@ draw_labels (ModeInfo *mi) molecule_configuration *mc = &mcs[MI_SCREEN(mi)]; int wire = MI_IS_WIREFRAME(mi); molecule *m = &mc->molecules[mc->which]; +# ifdef HAVE_GLBITMAP XFontStruct *xfont = (mc->scale_down ? mc->xfont2 : mc->xfont1); GLuint font_dlist = (mc->scale_down ? mc->font2_dlist : mc->font1_dlist); - int i, j; +# else + texture_font_data *font_data = mc->font1_data; /* don't scale down */ +# endif + int i; if (!do_labels) return; @@ -1421,6 +1448,7 @@ draw_labels (ModeInfo *mi) glTranslatef (0, 0, (size * 1.1)); /* move toward camera */ +# ifdef HAVE_GLBITMAP glRasterPos3f (0, 0, 0); /* draw text here */ /* Before drawing the string, shift the origin to center @@ -1429,10 +1457,30 @@ draw_labels (ModeInfo *mi) -string_width (xfont, a->label, 0) / 2, -xfont->descent, NULL); - - for (j = 0; j < strlen(a->label); j++) - - glCallList (font_dlist + (int)(a->label[j])); + { + int j; + for (j = 0; j < strlen(a->label); j++) + glCallList (font_dlist + (int)(a->label[j])); + } +# else + { + int h; + int w = texture_string_width (font_data, a->label, &h); + GLfloat s = 1.0 / h; + GLfloat max = 18; /* max point size to avoid pixellated text */ + if (h > max) s *= max/h; + glScalef (s, s, 1); + glTranslatef (-w/2, h*2/3, 0); + print_gl_string (mi->dpy, +# ifdef HAVE_GLBITMAP + xfont, font_dlist, +# else + font_data, +# endif + 0, 0, 0, 0, + a->label, False); + } +# endif glPopMatrix(); } @@ -1627,7 +1675,12 @@ draw_molecule (ModeInfo *mi) if (do_titles && m->label && *m->label) { set_atom_color (mi, 0, True, 1); - print_gl_string (mi->dpy, mc->xfont3, mc->font3_dlist, + print_gl_string (mi->dpy, +# ifdef HAVE_GLBITMAP + mc->xfont3, mc->font3_dlist, +# else + mc->font3_data, +# endif mi->xgwa.width, mi->xgwa.height, 10, mi->xgwa.height - 10, m->label, False); diff --git a/hacks/glx/noof.c b/hacks/glx/noof.c index c5328436..ee2810b3 100644 --- a/hacks/glx/noof.c +++ b/hacks/glx/noof.c @@ -445,6 +445,10 @@ init_noof (ModeInfo *mi) int i; noof_configuration *bp; +#ifdef HAVE_JWZGLES + dbuf_p = 1; +#endif + if (!bps) { bps = (noof_configuration *) calloc (MI_NUM_SCREENS(mi), sizeof (noof_configuration)); diff --git a/hacks/glx/normals.h b/hacks/glx/normals.h index 8d9f6fe1..a707a0c9 100644 --- a/hacks/glx/normals.h +++ b/hacks/glx/normals.h @@ -1,4 +1,4 @@ -/* normals, Copyright (c) 2002-2004 Jamie Zawinski +/* normals, Copyright (c) 2002-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -14,12 +14,18 @@ #ifndef __NORMALS_H__ #define __NORMALS_H__ -#ifdef HAVE_COCOA -# include -#else +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif /* HAVE_CONFIG_H */ + +#ifndef HAVE_COCOA # include #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + typedef struct { double x,y,z; } XYZ; diff --git a/hacks/glx/photopile.c b/hacks/glx/photopile.c index b3114faa..aa52d162 100644 --- a/hacks/glx/photopile.c +++ b/hacks/glx/photopile.c @@ -1,4 +1,4 @@ -/* photopile, Copyright (c) 2008-2011 Jens Kilian +/* photopile, Copyright (c) 2008-2012 Jens Kilian * Based on carousel, Copyright (c) 2005-2008 Jamie Zawinski * Loads a sequence of images and shuffles them into a pile. * @@ -209,7 +209,9 @@ set_new_positions(photopile_state *ss) for (i = 0; i < MI_COUNT(mi)+1; ++i) { image *frame = ss->frames + i; - GLfloat d = sqrt(frame->w*frame->w + frame->h*frame->h); + GLfloat w = frame->w; + GLfloat h = frame->h; + GLfloat d = sqrt(w*w + h*h); GLfloat leave = frand(M_PI * 2.0); GLfloat enter = frand(M_PI * 2.0); @@ -221,6 +223,10 @@ set_new_positions(photopile_state *ss) frame->pos[3].y = BELLRAND(MI_HEIGHT(mi)); frame->pos[3].angle = (frand(2.0) - 1.0) * max_tilt; + /* Try to keep the images mostly inside the screen bounds */ + frame->pos[3].x = MAX(0.5*w, MIN(MI_WIDTH(mi)-0.5*w, frame->pos[3].x)); + frame->pos[3].y = MAX(0.5*h, MIN(MI_HEIGHT(mi)-0.5*h, frame->pos[3].y)); + /* intermediate points */ frame->pos[1] = offset_pos(frame->pos[0], leave, d * (0.5 + frand(1.0))); frame->pos[2] = offset_pos(frame->pos[3], enter, d * (0.5 + frand(1.0))); @@ -358,7 +364,7 @@ loading_msg (ModeInfo *mi) glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); - gluOrtho2D(0, MI_WIDTH(mi), 0, MI_HEIGHT(mi)); + glOrtho(0, MI_WIDTH(mi), 0, MI_HEIGHT(mi), -1, 1); glTranslatef ((MI_WIDTH(mi) - ss->loading_sw) / 2, (MI_HEIGHT(mi) - ss->loading_sh) / 2, @@ -420,7 +426,7 @@ reshape_photopile (ModeInfo *mi, int width, int height) glMatrixMode(GL_MODELVIEW); glLoadIdentity(); - gluOrtho2D(0, MI_WIDTH(mi), 0, MI_HEIGHT(mi)); + glOrtho(0, MI_WIDTH(mi), 0, MI_HEIGHT(mi), -1, 1); glClear(GL_COLOR_BUFFER_BIT); } @@ -469,19 +475,6 @@ init_photopile (ModeInfo *mi) MI_CLEARWINDOW(mi); } - glDisable (GL_LIGHTING); - glEnable (GL_DEPTH_TEST); - glDisable (GL_CULL_FACE); - - if (! wire) - { - glShadeModel (GL_SMOOTH); - glEnable (GL_LINE_SMOOTH); - glHint (GL_LINE_SMOOTH_HINT, GL_NICEST); - glEnable (GL_BLEND); - glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - } - ss->shadow = init_drop_shadow(); ss->texfont = load_texture_font (MI_DISPLAY(mi), "font"); @@ -558,14 +551,23 @@ draw_image (ModeInfo *mi, int i, GLfloat t, GLfloat s, GLfloat z) { glColor3f (0, 0, 0); draw_drop_shadow(ss->shadow, -w1, -h1, z2, 2.0 * w1, h1 + h2, 20.0); + glDisable (GL_BLEND); } + glDisable (GL_LIGHTING); + glEnable (GL_DEPTH_TEST); + glDisable (GL_CULL_FACE); + /* Draw the retro instant-film frame. */ if (polaroid_p) { if (! wire) { + glShadeModel (GL_SMOOTH); + glEnable (GL_LINE_SMOOTH); + glHint (GL_LINE_SMOOTH_HINT, GL_NICEST); + glColor3f (1, 1, 1); glBegin (GL_QUADS); glVertex3f (-w1, -h1, z2); @@ -575,7 +577,7 @@ draw_image (ModeInfo *mi, int i, GLfloat t, GLfloat s, GLfloat z) glEnd(); } - glLineWidth (2.0); + glLineWidth (1.0); glColor3f (0.5, 0.5, 0.5); glBegin (GL_LINE_LOOP); glVertex3f (-w1, -h1, z); @@ -608,7 +610,13 @@ draw_image (ModeInfo *mi, int i, GLfloat t, GLfloat s, GLfloat z) /* Draw a box around it. */ - glLineWidth (2.0); + if (! wire) + { + glShadeModel (GL_SMOOTH); + glEnable (GL_LINE_SMOOTH); + glHint (GL_LINE_SMOOTH_HINT, GL_NICEST); + } + glLineWidth (1.0); glColor3f (0.5, 0.5, 0.5); glBegin (GL_LINE_LOOP); glVertex3f (-w, -h, z); @@ -647,8 +655,8 @@ draw_image (ModeInfo *mi, int i, GLfloat t, GLfloat s, GLfloat z) if (!wire) { glEnable (GL_TEXTURE_2D); + glEnable (GL_BLEND); print_texture_string (ss->texfont, title); - glDisable (GL_TEXTURE_2D); } else { @@ -692,6 +700,11 @@ draw_photopile (ModeInfo *mi) { GLfloat t; + glPushMatrix(); + glTranslatef (MI_WIDTH(mi)/2, MI_HEIGHT(mi)/2, 0); + glRotatef(current_device_rotation(), 0, 0, 1); + glTranslatef (-MI_WIDTH(mi)/2, -MI_HEIGHT(mi)/2, 0); + /* Handle state transitions. */ switch (ss->mode) { @@ -759,6 +772,7 @@ draw_photopile (ModeInfo *mi) draw_image(mi, j, t, s, z); } } + glPopMatrix(); } if (mi->fps_p) do_fps (mi); diff --git a/hacks/glx/photopile.man b/hacks/glx/photopile.man index dc1deae2..277f9ddc 100644 --- a/hacks/glx/photopile.man +++ b/hacks/glx/photopile.man @@ -66,7 +66,7 @@ Per-frame delay, in microseconds. Default: 10000 (0.01 seconds.). Whether to display the file names of the images beneath them. Default: no. .TP 8 .B \-polaroid \fB| \-no\-polaroid\fP -Whether to simulate images taken by an instant camera. Default: no. +Whether to simulate images taken by an instant camera. Default: yes. .TP 8 .B \-shadows \fB| \-no\-shadows\fP Whether to draw images with drop shadows. Default: no. diff --git a/hacks/glx/pinion.c b/hacks/glx/pinion.c index 860d015c..015dc1f2 100644 --- a/hacks/glx/pinion.c +++ b/hacks/glx/pinion.c @@ -1,4 +1,4 @@ -/* pinion, Copyright (c) 2004-2011 Jamie Zawinski +/* pinion, Copyright (c) 2004-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -53,8 +53,13 @@ typedef struct { Bool button_down_p; unsigned long mouse_gear_id; +# ifdef HAVE_GLBITMAP XFontStruct *xfont1, *xfont2, *xfont3; GLuint font1_dlist, font2_dlist, font3_dlist; +# else + texture_font_data *font1, *font2, *font3; +# endif + GLuint title_list; int draw_tick; @@ -109,9 +114,15 @@ static void load_fonts (ModeInfo *mi) { pinion_configuration *pp = &pps[MI_SCREEN(mi)]; +# ifdef HAVE_GLBITMAP load_font (mi->dpy, "titleFont", &pp->xfont1, &pp->font1_dlist); load_font (mi->dpy, "titleFont2", &pp->xfont2, &pp->font2_dlist); load_font (mi->dpy, "titleFont3", &pp->xfont3, &pp->font3_dlist); +# else + pp->font1 = load_texture_font (mi->dpy, "titleFont"); + pp->font2 = load_texture_font (mi->dpy, "titleFont2"); + pp->font3 = load_texture_font (mi->dpy, "titleFont3"); +# endif } @@ -152,17 +163,38 @@ new_label (ModeInfo *mi) glNewList (pp->title_list, GL_COMPILE); if (*label) { +# ifdef HAVE_GLBITMAP XFontStruct *f; GLuint fl; +# else + texture_font_data *fd; +# endif if (MI_WIDTH(mi) >= 500 && MI_HEIGHT(mi) >= 375) +# ifdef HAVE_GLBITMAP f = pp->xfont1, fl = pp->font1_dlist; /* big font */ +# else + fd = pp->font1; +# endif else if (MI_WIDTH(mi) >= 350 && MI_HEIGHT(mi) >= 260) +# ifdef HAVE_GLBITMAP f = pp->xfont2, fl = pp->font2_dlist; /* small font */ +# else + fd = pp->font2; +# endif else +# ifdef HAVE_GLBITMAP f = pp->xfont3, fl = pp->font3_dlist; /* tiny font */ +# else + fd = pp->font3; +# endif glColor3f (0.8, 0.8, 0); - print_gl_string (mi->dpy, f, fl, + print_gl_string (mi->dpy, +# ifdef HAVE_GLBITMAP + f, fl, +# else + fd, +# endif mi->xgwa.width, mi->xgwa.height, 10, mi->xgwa.height - 10, label, False); @@ -1160,6 +1192,9 @@ static void find_mouse_gear (ModeInfo *mi) { pinion_configuration *pp = &pps[MI_SCREEN(mi)]; + +# ifndef HAVE_JWZGLES + int screen_width = MI_WIDTH (mi); int screen_height = MI_HEIGHT (mi); GLfloat h = (GLfloat) screen_height / (GLfloat) screen_width; @@ -1227,6 +1262,14 @@ find_mouse_gear (ModeInfo *mi) pp->mouse_gear_id = pnames[0]; } } + +#else /* HAVE_JWZGLES */ + /* #### not yet implemented */ + pp->mouse_gear_id = pp->gears[1]->id; + return; +#endif /* HAVE_JWZGLES */ + + } @@ -1332,7 +1375,6 @@ ENTRYPOINT void init_pinion (ModeInfo *mi) { pinion_configuration *pp; - int wire = MI_IS_WIREFRAME(mi); if (!pps) { pps = (pinion_configuration *) @@ -1359,24 +1401,6 @@ init_pinion (ModeInfo *mi) pp->plane_displacement = gear_size * 0.1; - if (!wire) - { - GLfloat pos[4] = {-3.0, 1.0, 1.0, 0.0}; - GLfloat amb[4] = { 0.0, 0.0, 0.0, 1.0}; - GLfloat dif[4] = { 1.0, 1.0, 1.0, 1.0}; - GLfloat spc[4] = { 1.0, 1.0, 1.0, 1.0}; - - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glEnable(GL_DEPTH_TEST); - glEnable(GL_CULL_FACE); - - glLightfv(GL_LIGHT0, GL_POSITION, pos); - glLightfv(GL_LIGHT0, GL_AMBIENT, amb); - glLightfv(GL_LIGHT0, GL_DIFFUSE, dif); - glLightfv(GL_LIGHT0, GL_SPECULAR, spc); - } - pp->trackball = gltrackball_init (); ffwd (mi); @@ -1396,6 +1420,27 @@ draw_pinion (ModeInfo *mi) glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(pp->glx_context)); + glPushMatrix(); + glRotatef(current_device_rotation(), 0, 0, 1); + + if (!wire_p) + { + GLfloat pos[4] = {-3.0, 1.0, 1.0, 0.0}; + GLfloat amb[4] = { 0.0, 0.0, 0.0, 1.0}; + GLfloat dif[4] = { 1.0, 1.0, 1.0, 1.0}; + GLfloat spc[4] = { 1.0, 1.0, 1.0, 1.0}; + + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glEnable(GL_DEPTH_TEST); + glEnable(GL_CULL_FACE); + + glLightfv(GL_LIGHT0, GL_POSITION, pos); + glLightfv(GL_LIGHT0, GL_AMBIENT, amb); + glLightfv(GL_LIGHT0, GL_DIFFUSE, dif); + glLightfv(GL_LIGHT0, GL_SPECULAR, spc); + } + if (!pp->button_down_p) { if (!debug_one_gear_p || pp->ngears == 0) @@ -1413,7 +1458,9 @@ draw_pinion (ModeInfo *mi) glPushMatrix (); { + glRotatef(-current_device_rotation(), 0, 0, 1); gltrackball_rotate (pp->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); mi->polygon_count = 0; glScalef (16, 16, 16); /* map vp_width/height to the screen */ @@ -1476,6 +1523,7 @@ draw_pinion (ModeInfo *mi) glPopMatrix (); glCallList (pp->title_list); + glPopMatrix (); if (mi->fps_p) do_fps (mi); glFinish(); diff --git a/hacks/glx/pipes.c b/hacks/glx/pipes.c index 1f6088fa..104f880b 100644 --- a/hacks/glx/pipes.c +++ b/hacks/glx/pipes.c @@ -59,6 +59,19 @@ static const char sccsid[] = "@(#)pipes.c 4.07 97/11/24 xlockmore"; #ifdef USE_GL +#ifdef HAVE_COCOA +# include "jwxyz.h" +#else +# include +# include +# include +#endif + +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + +#include "sphere.h" #include "buildlwo.h" #include "teapot.h" @@ -216,14 +229,22 @@ MakeTube(ModeInfo *mi, int direction) } static void -mySphere(float radius) +mySphere(float radius, Bool wire) { +#if 0 GLUquadricObj *quadObj; quadObj = gluNewQuadric(); gluQuadricDrawStyle(quadObj, (GLenum) GLU_FILL); gluSphere(quadObj, radius, 16, 16); gluDeleteQuadric(quadObj); +#else + glPushMatrix(); + glScalef (radius, radius, radius); + glRotatef (90, 1, 0, 0); + unit_sphere (16, 16, wire); + glPopMatrix(); +#endif } static void @@ -667,6 +688,11 @@ init_pipes (ModeInfo * mi) } pp = &pipes[screen]; +#ifdef HAVE_JWZGLES + /* Single-buffering on iOS is so confusing! */ + dbuf_p = True; +#endif + pp->window = MI_WINDOW(mi); if ((pp->glx_context = init_GL(mi)) != NULL) { @@ -724,6 +750,7 @@ draw_pipes (ModeInfo * mi) Display *display = MI_DISPLAY(mi); Window window = MI_WINDOW(mi); + Bool wire = MI_IS_WIREFRAME(mi); int newdir; int OPX, OPY, OPZ; @@ -763,7 +790,7 @@ draw_pipes (ModeInfo * mi) if (pp->olddir == dirNone) { glPushMatrix(); glTranslatef((pp->PX - 16) / 3.0 * 4.0, (pp->PY - 12) / 3.0 * 4.0, (pp->PZ - 16) / 3.0 * 4.0); - mySphere(0.6); + mySphere(0.6, wire); glPopMatrix(); } /* Check for stop conditions */ @@ -771,7 +798,7 @@ draw_pipes (ModeInfo * mi) glPushMatrix(); glTranslatef((pp->PX - 16) / 3.0 * 4.0, (pp->PY - 12) / 3.0 * 4.0, (pp->PZ - 16) / 3.0 * 4.0); /* Finish the system with another sphere */ - mySphere(0.6); + mySphere(0.6, wire); glPopMatrix(); @@ -834,7 +861,7 @@ draw_pipes (ModeInfo * mi) switch (sysT) { case 1: glTranslatef((pp->PX - 16) / 3.0 * 4.0, (pp->PY - 12) / 3.0 * 4.0, (pp->PZ - 16) / 3.0 * 4.0); - mySphere(elbowradius); + mySphere(elbowradius, wire); break; case 2: case 3: diff --git a/hacks/glx/polyhedra-gl.c b/hacks/glx/polyhedra-gl.c index 83e4a381..1b2d7eb7 100644 --- a/hacks/glx/polyhedra-gl.c +++ b/hacks/glx/polyhedra-gl.c @@ -30,6 +30,17 @@ #include "xlockmore.h" +#ifdef HAVE_COCOA +# include "jwxyz.h" +#else +# include +# include +# include +#endif + +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ #define DEF_SPIN "True" #define DEF_WANDER "True" @@ -73,8 +84,12 @@ typedef struct { int ncolors; XColor *colors; +# ifdef HAVE_GLBITMAP XFontStruct *xfont1, *xfont2, *xfont3; GLuint font1_dlist, font2_dlist, font3_dlist; +# else + texture_font_data *font1_data, *font2_data, *font3_data; +# endif time_t last_change_time; int change_tick; @@ -156,9 +171,15 @@ static void load_fonts (ModeInfo *mi) { polyhedra_configuration *bp = &bps[MI_SCREEN(mi)]; +# ifdef HAVE_GLBITMAP load_font (mi->dpy, "titleFont", &bp->xfont1, &bp->font1_dlist); load_font (mi->dpy, "titleFont2", &bp->xfont2, &bp->font2_dlist); load_font (mi->dpy, "titleFont3", &bp->xfont3, &bp->font3_dlist); +# else /* !HAVE_GLBITMAP */ + bp->font1_data = load_texture_font (mi->dpy, "titleFont"); + bp->font2_data = load_texture_font (mi->dpy, "titleFont2"); + bp->font3_data = load_texture_font (mi->dpy, "titleFont3"); +# endif /* !HAVE_GLBITMAP */ } @@ -168,10 +189,27 @@ startup_blurb (ModeInfo *mi) { polyhedra_configuration *bp = &bps[MI_SCREEN(mi)]; const char *s = "Computing polyhedra..."; +# ifdef HAVE_GLBITMAP + XFontStruct *f = bp->xfont1; +# else /* !HAVE_GLBITMAP */ + texture_font_data *f = bp->font1_data; +# endif /* !HAVE_GLBITMAP */ + glColor3f (0.8, 0.8, 0); - print_gl_string (mi->dpy, bp->xfont1, bp->font1_dlist, + print_gl_string (mi->dpy, +# ifdef HAVE_GLBITMAP + bp->xfont1, bp->font1_dlist, +# else /* !HAVE_GLBITMAP */ + bp->font1_data, +# endif /* !HAVE_GLBITMAP */ mi->xgwa.width, mi->xgwa.height, - mi->xgwa.width - (string_width (bp->xfont1, s, 0) + 40), + mi->xgwa.width - ( +# ifdef HAVE_GLBITMAP + string_width (f, s, 0) +# else /* !HAVE_GLBITMAP */ + texture_string_width (f, s, 0) +# endif /* !HAVE_GLBITMAP */ + + 40), mi->xgwa.height - 10, s, False); glFinish(); @@ -244,12 +282,6 @@ polyhedra_handle_event (ModeInfo *mi, XEvent *event) char c = 0; XLookupString (&event->xkey, &c, 1, &keysym, 0); -# ifdef HAVE_COCOA -# define XK_Right -1 -# define XK_Left -1 -# define XK_Up -1 -# define XK_Down -1 -# endif bp->change_to = -1; if (c == ' ' || c == '\t' || c == '\r' || c == '\n') bp->change_to = random() % bp->npolyhedra; @@ -310,17 +342,36 @@ new_label (ModeInfo *mi) p->density, (p->chi < 0 ? "" : " "), p->chi); { +# ifdef HAVE_GLBITMAP XFontStruct *f; GLuint fl; +# else /* !HAVE_GLBITMAP */ + texture_font_data *f; +# endif /* !HAVE_GLBITMAP */ if (MI_WIDTH(mi) >= 500 && MI_HEIGHT(mi) >= 375) +# ifdef HAVE_GLBITMAP f = bp->xfont1, fl = bp->font1_dlist; /* big font */ +# else /* !HAVE_GLBITMAP */ + f = bp->font1_data; +# endif /* !HAVE_GLBITMAP */ else if (MI_WIDTH(mi) >= 350 && MI_HEIGHT(mi) >= 260) +# ifdef HAVE_GLBITMAP f = bp->xfont2, fl = bp->font2_dlist; /* small font */ +# else /* !HAVE_GLBITMAP */ + f = bp->font2_data; /* small font */ +# endif /* !HAVE_GLBITMAP */ else +# ifdef HAVE_GLBITMAP f = bp->xfont3, fl = bp->font3_dlist; /* tiny font */ +# else /* !HAVE_GLBITMAP */ + f = bp->font3_data; /* tiny font */ +# endif /* !HAVE_GLBITMAP */ glColor3f (0.8, 0.8, 0); - print_gl_string (mi->dpy, f, fl, + print_gl_string (mi->dpy, f, +# ifdef HAVE_GLBITMAP + fl, +# endif /* HAVE_GLBITMAP */ mi->xgwa.width, mi->xgwa.height, 10, mi->xgwa.height - 10, label, False); diff --git a/hacks/glx/polytopes.c b/hacks/glx/polytopes.c index f21246ed..703316aa 100644 --- a/hacks/glx/polytopes.c +++ b/hacks/glx/polytopes.c @@ -100,7 +100,9 @@ static const char sccsid[] = "@(#)polytopes.c 1.2 05/09/28 xlockmore"; #ifdef USE_GL -#include +#ifndef HAVE_COCOA +# include +#endif #include "gltrackball.h" @@ -2769,11 +2771,6 @@ static void set_colors(ModeInfo *mi) static void init(ModeInfo *mi) { - static const GLfloat light_ambient[] = { 0.0, 0.0, 0.0, 1.0 }; - static const GLfloat light_diffuse[] = { 1.0, 1.0, 1.0, 1.0 }; - static const GLfloat light_specular[] = { 0.0, 0.0, 0.0, 1.0 }; - static const GLfloat light_position[] = { 0.0, 0.0, 1.0, 0.0 }; - static const GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 }; polytopesstruct *pp = &poly[MI_SCREEN(mi)]; set_colors(mi); @@ -2787,62 +2784,6 @@ static void init(ModeInfo *mi) pp->tick = 0; pp->poly = 0; - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - if (projection_3d == DISP_3D_PERSPECTIVE) - gluPerspective(60.0,1.0,0.1,100.0); - else - glOrtho(-1.0,1.0,-1.0,1.0,0.1,100.0);; - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - if (display_mode == DISP_WIREFRAME) - { - glDisable(GL_DEPTH_TEST); - glDisable(GL_LIGHTING); - glDisable(GL_LIGHT0); - glDisable(GL_BLEND); - } - else if (display_mode == DISP_SURFACE) - { - glEnable(GL_DEPTH_TEST); - glDepthFunc(GL_LESS); - glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient); - glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse); - glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular); - glLightfv(GL_LIGHT0,GL_POSITION,light_position); - glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular); - glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,0.0); - glDepthMask(GL_TRUE); - glDisable(GL_BLEND); - } - else if (display_mode == DISP_TRANSPARENT) - { - glDisable(GL_DEPTH_TEST); - glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient); - glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse); - glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular); - glLightfv(GL_LIGHT0,GL_POSITION,light_position); - glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular); - glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,0.0); - glDepthMask(GL_FALSE); - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA,GL_ONE); - } - else - { - glDisable(GL_DEPTH_TEST); - glDisable(GL_LIGHTING); - glDisable(GL_LIGHT0); - glDisable(GL_BLEND); - } } @@ -2929,9 +2870,12 @@ ENTRYPOINT void reshape_polytopes(ModeInfo *mi, int width, int height) ENTRYPOINT Bool polytopes_handle_event(ModeInfo *mi, XEvent *event) { - Display *display = MI_DISPLAY(mi); polytopesstruct *pp = &poly[MI_SCREEN(mi)]; - KeySym sym; + KeySym sym = 0; + char c = 0; + + if (event->xany.type == KeyPress || event->xany.type == KeyRelease) + XLookupString (&event->xkey, &c, 1, &sym, 0); if (event->xany.type == ButtonPress && event->xbutton.button == Button1) @@ -2950,7 +2894,6 @@ ENTRYPOINT Bool polytopes_handle_event(ModeInfo *mi, XEvent *event) } else if (event->xany.type == KeyPress) { - sym = XKeycodeToKeysym(display,event->xkey.keycode,0); if (sym == XK_Shift_L || sym == XK_Shift_R) { pp->current_trackball = 1; @@ -2963,7 +2906,6 @@ ENTRYPOINT Bool polytopes_handle_event(ModeInfo *mi, XEvent *event) } else if (event->xany.type == KeyRelease) { - sym = XKeycodeToKeysym(display,event->xkey.keycode,0); if (sym == XK_Shift_L || sym == XK_Shift_R) { pp->current_trackball = 0; @@ -3134,6 +3076,12 @@ ENTRYPOINT void init_polytopes(ModeInfo *mi) */ ENTRYPOINT void draw_polytopes(ModeInfo *mi) { + static const GLfloat light_ambient[] = { 0.0, 0.0, 0.0, 1.0 }; + static const GLfloat light_diffuse[] = { 1.0, 1.0, 1.0, 1.0 }; + static const GLfloat light_specular[] = { 0.0, 0.0, 0.0, 1.0 }; + static const GLfloat light_position[] = { 0.0, 0.0, 1.0, 0.0 }; + static const GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 }; + Display *display = MI_DISPLAY(mi); Window window = MI_WINDOW(mi); polytopesstruct *hp; @@ -3148,6 +3096,64 @@ ENTRYPOINT void draw_polytopes(ModeInfo *mi) glXMakeCurrent(display,window,*(hp->glx_context)); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + if (projection_3d == DISP_3D_PERSPECTIVE) + gluPerspective(60.0,1.0,0.1,100.0); + else + glOrtho(-1.0,1.0,-1.0,1.0,0.1,100.0);; + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + + if (display_mode == DISP_WIREFRAME) + { + glDisable(GL_DEPTH_TEST); + glDisable(GL_LIGHTING); + glDisable(GL_LIGHT0); + glDisable(GL_BLEND); + } + else if (display_mode == DISP_SURFACE) + { + glEnable(GL_DEPTH_TEST); + glDepthFunc(GL_LESS); + glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient); + glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse); + glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular); + glLightfv(GL_LIGHT0,GL_POSITION,light_position); + glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular); + glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,0.0); + glDepthMask(GL_TRUE); + glDisable(GL_BLEND); + } + else if (display_mode == DISP_TRANSPARENT) + { + glDisable(GL_DEPTH_TEST); + glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient); + glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse); + glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular); + glLightfv(GL_LIGHT0,GL_POSITION,light_position); + glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular); + glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,0.0); + glDepthMask(GL_FALSE); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA,GL_ONE); + } + else + { + glDisable(GL_DEPTH_TEST); + glDisable(GL_LIGHTING); + glDisable(GL_LIGHT0); + glDisable(GL_BLEND); + } + + glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glLoadIdentity(); diff --git a/hacks/glx/providence.c b/hacks/glx/providence.c index 3d7f9479..1f9e3bda 100644 --- a/hacks/glx/providence.c +++ b/hacks/glx/providence.c @@ -154,14 +154,9 @@ static void make_brick(providencestruct *mp) glGenTextures(1, &mp->bricktexture); glBindTexture(GL_TEXTURE_2D, mp->bricktexture); - glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT); - glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT); glTexImage2D(GL_TEXTURE_2D, 0, 3, checkImageWidth, checkImageHeight, 0, GL_RGB, GL_UNSIGNED_BYTE, &mp->checkImage[0][0]); - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); } @@ -618,32 +613,11 @@ static void pinit(providencestruct *mp) { glClearDepth(1.0); - /* setup twoside lighting */ - glLightfv(GL_LIGHT0, GL_AMBIENT, ambient2); - glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); - glLightfv(GL_LIGHT0, GL_POSITION, mp->position0); - - glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient); - glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - mp->currenttime = 0.0; init_particles(mp); make_brick(mp); build_eye(mp); - glEnable(GL_NORMALIZE); - glFrontFace(GL_CCW); -/* glDisable(GL_CULL_FACE); */ - glEnable(GL_CULL_FACE); - glCullFace(GL_BACK); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - glShadeModel(GL_SMOOTH); - glEnable(GL_DEPTH_TEST); - glDepthFunc(GL_LEQUAL); - /* build pyramid list */ mp->pyramidlist = glGenLists(1); glNewList(mp->pyramidlist, GL_COMPILE); @@ -742,7 +716,7 @@ ENTRYPOINT void init_providence(ModeInfo *mi) if((mp->glx_context = init_GL(mi)) != NULL) { reshape_providence(mi, MI_WIDTH(mi), MI_HEIGHT(mi)); - glDrawBuffer(GL_BACK); + /* glDrawBuffer(GL_BACK); */ pinit(mp); } else @@ -767,9 +741,37 @@ ENTRYPOINT void draw_providence(ModeInfo * mi) glXMakeCurrent(display, window, *(mp->glx_context)); + /* setup twoside lighting */ + glLightfv(GL_LIGHT0, GL_AMBIENT, ambient2); + glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); + glLightfv(GL_LIGHT0, GL_POSITION, mp->position0); + + glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient); + glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + + glEnable(GL_NORMALIZE); + glFrontFace(GL_CCW); +/* glDisable(GL_CULL_FACE); */ + glEnable(GL_CULL_FACE); + glCullFace(GL_BACK); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + glShadeModel(GL_SMOOTH); + glEnable(GL_DEPTH_TEST); + glDepthFunc(GL_LEQUAL); + + glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix(); + glRotatef(current_device_rotation(), 0, 0, 1); /* modify camera */ if(fabs(mp->camera_velocity) > EPSILON) { @@ -780,7 +782,9 @@ ENTRYPOINT void draw_providence(ModeInfo * mi) /* rotate providence */ glTranslatef(0.0, 0.0, mp->camera_z + sin(mp->theta/4.0)); glRotatef(10.0+20.0*sin(mp->theta/2.0), 1.0, 0.0, 0.0); + glRotatef(-current_device_rotation(), 0, 0, 1); gltrackball_rotate(mp->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); glRotatef(mp->theta * 180.0 / Pi, 0.0, -1.0, 0.0); /* draw providence */ diff --git a/hacks/glx/queens.c b/hacks/glx/queens.c index 87f7d1ed..b0df5668 100644 --- a/hacks/glx/queens.c +++ b/hacks/glx/queens.c @@ -29,9 +29,22 @@ # include "xlock.h" #endif +#ifdef HAVE_COCOA +# include "jwxyz.h" +#else +# include +# include +# include +#endif + +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #ifdef USE_GL #include "gltrackball.h" +#include "chessmodels.h" #undef countof #define countof(x) (sizeof((x))/sizeof((*x))) @@ -62,7 +75,6 @@ ModStruct queens_description = #endif #define NONE 0 -#define QUEEN 1 #define MINBOARD 5 #define MAXBOARD 10 #define COLORSETS 5 @@ -73,6 +85,7 @@ typedef struct { trackball_state *trackball; Bool button_down_p; GLfloat position[4]; + int queen_list; int board[MAXBOARD][MAXBOARD]; int steps, colorset, BOARDSIZE; @@ -254,7 +267,7 @@ static int drawPieces(Queenscreen *qs) for(j = 0; j < qs->BOARDSIZE; ++j) { if(qs->board[i][j]) { glColor3fv(colors[qs->colorset][i%2]); - glCallList(QUEEN); + glCallList(qs->queen_list); polys += qs->queen_polys; } @@ -350,6 +363,8 @@ static int display(Queenscreen *qs) glMatrixMode(GL_MODELVIEW); glLoadIdentity(); + glRotatef(current_device_rotation(), 0, 0, 1); + /* setup light attenuation */ glEnable(GL_COLOR_MATERIAL); glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 0.8/(0.01+findAlpha(qs))); @@ -358,7 +373,9 @@ static int display(Queenscreen *qs) /** setup perspective */ glTranslatef(0.0, 0.0, -1.5*qs->BOARDSIZE); glRotatef(30.0, 1.0, 0.0, 0.0); + glRotatef(-current_device_rotation(), 0, 0, 1); gltrackball_rotate (qs->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); glRotatef(qs->theta*100, 0.0, 1.0, 0.0); glTranslatef(-0.5*qs->BOARDSIZE, 0.0, -0.5*qs->BOARDSIZE); @@ -424,19 +441,23 @@ static const GLfloat spidermodel[][3] = #define EPSILON 0.001 +#if 0 /** draws cylindermodel */ static int draw_model(int chunks, const GLfloat model[][3], int r) { int i = 0; int polys = 0; - GLUquadricObj *quadric = gluNewQuadric(); glPushMatrix(); glRotatef(-90.0, 1.0, 0.0, 0.0); for(i = 0; i < chunks; ++i) { if(model[i][0] > EPSILON || model[i][1] > EPSILON) { - gluCylinder(quadric, model[i][0], model[i][1], model[i][2], r, 1); - polys += r; + polys += tube (0, 0, 0, + 0, 0, model[i][1], + model[i][0], 0, + r, False, False, False); +/* gluCylinder(quadric, model[i][0], model[i][1], model[i][2], r, 1); + polys += r;*/ } glTranslatef(0.0, 0.0, model[i][2]); } @@ -444,6 +465,7 @@ static int draw_model(int chunks, const GLfloat model[][3], int r) glPopMatrix(); return polys; } +#endif ENTRYPOINT void reshape_queens(ModeInfo *mi, int width, int height) { @@ -459,6 +481,7 @@ ENTRYPOINT void init_queens(ModeInfo *mi) { int screen = MI_SCREEN(mi); Queenscreen *qs; + int poly_counts[PIECES]; wire = MI_IS_WIREFRAME(mi); if(!qss && @@ -467,18 +490,34 @@ ENTRYPOINT void init_queens(ModeInfo *mi) qs = &qss[screen]; qs->window = MI_WINDOW(mi); - qs->trackball = gltrackball_init (); - - qs->BOARDSIZE = 8; /* 8 cuz its classic */ if((qs->glx_context = init_GL(mi))) reshape_queens(mi, MI_WIDTH(mi), MI_HEIGHT(mi)); else MI_CLEARWINDOW(mi); - glNewList(QUEEN, GL_COMPILE); - qs->queen_polys = draw_model(countof(spidermodel), spidermodel, 24); - glEndList(); + qs->trackball = gltrackball_init (); + + qs->BOARDSIZE = 8; /* 8 cuz its classic */ + + gen_model_lists(-1, poly_counts); + qs->queen_list = QUEEN; + qs->queen_polys = poly_counts[QUEEN]; + + /* find a solution */ + go(qs); +} + +ENTRYPOINT void draw_queens(ModeInfo *mi) +{ + Queenscreen *qs = &qss[MI_SCREEN(mi)]; + Window w = MI_WINDOW(mi); + Display *disp = MI_DISPLAY(mi); + + if(!qs->glx_context) + return; + + glXMakeCurrent(disp, w, *(qs->glx_context)); if(flat) glShadeModel(GL_FLAT); @@ -499,22 +538,8 @@ ENTRYPOINT void init_queens(ModeInfo *mi) else glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - /* find a solution */ - go(qs); -} - -ENTRYPOINT void draw_queens(ModeInfo *mi) -{ - Queenscreen *qs = &qss[MI_SCREEN(mi)]; - Window w = MI_WINDOW(mi); - Display *disp = MI_DISPLAY(mi); - - if(!qs->glx_context) - return; - - glXMakeCurrent(disp, w, *(qs->glx_context)); - mi->polygon_count = display(qs); + mi->recursion_depth = qs->BOARDSIZE; if(mi->fps_p) do_fps(mi); glFinish(); diff --git a/hacks/glx/rubikblocks.c b/hacks/glx/rubikblocks.c index ad4abd30..e8caf32f 100644 --- a/hacks/glx/rubikblocks.c +++ b/hacks/glx/rubikblocks.c @@ -461,7 +461,7 @@ init_gl(ModeInfo *mi) glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, material_diffuse); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, material_specular); glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shininess); - if(!tex) return; + if (!tex) return; glEnable(GL_TEXTURE_2D); #ifdef MIPMAP clear_gl_error(); diff --git a/hacks/glx/sballs.c b/hacks/glx/sballs.c index d3e3ec89..76b60ec0 100644 --- a/hacks/glx/sballs.c +++ b/hacks/glx/sballs.c @@ -564,10 +564,19 @@ static void Draw(ModeInfo * mi) glColor3f(0, 0, 0); } glBegin(GL_QUAD_STRIP); +#ifndef USE_IPHONE + /* Letterbox the background image */ glNormal3f(0, 0, 1); glTexCoord2f(0,0); glVertex3f(8, 4.1, -4); glNormal3f(0, 0, 1); glTexCoord2f(0,1); glVertex3f(8, -4.1, -4); glNormal3f(0, 0, 1); glTexCoord2f(1,0); glVertex3f(-8, 4.1, -4); glNormal3f(0, 0, 1); glTexCoord2f(1,1); glVertex3f(-8, -4.1, -4); +#else + /* Fill the iPhone screen. Letterboxing looks dumb there. */ + glNormal3f(0, 0, 1); glTexCoord2f(0,0); glVertex3f(4, 5.2, -4); + glNormal3f(0, 0, 1); glTexCoord2f(0,1); glVertex3f(4, -5.2, -4); + glNormal3f(0, 0, 1); glTexCoord2f(1,0); glVertex3f(-4, 5.2, -4); + glNormal3f(0, 0, 1); glTexCoord2f(1,1); glVertex3f(-4, -5.2, -4); +#endif glEnd(); mi->polygon_count++; diff --git a/hacks/glx/skytentacles.c b/hacks/glx/skytentacles.c index a676951d..ace1e594 100644 --- a/hacks/glx/skytentacles.c +++ b/hacks/glx/skytentacles.c @@ -1017,6 +1017,7 @@ draw_tentacles (ModeInfo *mi) # endif gltrackball_rotate (tc->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); mi->polygon_count = 0; diff --git a/hacks/glx/sonar-icmp.c b/hacks/glx/sonar-icmp.c index e74e45d1..dfa277d4 100644 --- a/hacks/glx/sonar-icmp.c +++ b/hacks/glx/sonar-icmp.c @@ -1,4 +1,4 @@ -/* sonar, Copyright (c) 1998-2009 Jamie Zawinski and Stephen Martin +/* sonar, Copyright (c) 1998-2012 Jamie Zawinski and Stephen Martin * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -17,6 +17,28 @@ #undef usleep /* conflicts with unistd.h on OSX */ +#ifdef USE_IPHONE + /* Note: to get this to compile for iPhone, you need to fix Xcode! + The icmp headers exist for the simulator build environment, but + not for the real-device build environment. This appears to + just be an Apple bug, not intentional. + + xc=/Applications/Xcode.app/Contents + for path in /Developer/Platforms/iPhone*?/Developer/SDKs/?* \ + $xc/Developer/Platforms/iPhone*?/Developer/SDKs/?* ; do + for file in \ + /usr/include/netinet/ip.h \ + /usr/include/netinet/in_systm.h \ + /usr/include/netinet/ip_icmp.h \ + /usr/include/netinet/ip_var.h \ + /usr/include/netinet/udp.h + do + ln -s "$file" "$path$file" + done + done + */ +#endif + #if defined(HAVE_ICMP) || defined(HAVE_ICMPHDR) # include # include @@ -521,8 +543,19 @@ subnet_hosts (sonar_sensor_data *ssd, char **error_ret, /* Get our IP address and convert it to a string */ - if (! (hent = gethostbyname(hostname))) + hent = gethostbyname(hostname); + if (! hent) { + strcat (hostname, ".local"); /* Necessary on iphone */ + hent = gethostbyname(hostname); + } + + if (! hent) + { + /* Without being able to resolve localhost to an IP, we don't know + what our local subnet is. I don't know another way to find that, + short of running "ifconfig" and parsing the output... + */ sprintf(buf, "Unable to resolve\n" "local host \"%s\"", @@ -530,6 +563,7 @@ subnet_hosts (sonar_sensor_data *ssd, char **error_ret, *error_ret = strdup(buf); return 0; } + strcpy (address, inet_ntoa(*((struct in_addr *)hent->h_addr_list[0]))); /* Construct targets for all addresses in this subnet */ diff --git a/hacks/glx/sonar.c b/hacks/glx/sonar.c index da66865b..ac51a2ce 100644 --- a/hacks/glx/sonar.c +++ b/hacks/glx/sonar.c @@ -1,4 +1,4 @@ -/* sonar, Copyright (c) 1998-2011 Jamie Zawinski and Stephen Martin +/* sonar, Copyright (c) 1998-2012 Jamie Zawinski and Stephen Martin * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -191,7 +191,6 @@ draw_screen (ModeInfo *mi, Bool mesh_p, Bool sweep_p) if (wire && !(mesh_p || sweep_p)) return 0; - glPushAttrib (GL_ENABLE_BIT); glDisable (GL_TEXTURE_2D); glFrontFace (GL_CCW); @@ -314,7 +313,6 @@ draw_screen (ModeInfo *mi, Bool mesh_p, Bool sweep_p) glEnd(); } - glPopAttrib(); free (ring); return polys; @@ -435,7 +433,6 @@ draw_table (ModeInfo *mi) if (wire) return 0; - glPushAttrib (GL_ENABLE_BIT); glDisable (GL_TEXTURE_2D); glMaterialfv (GL_FRONT, GL_SPECULAR, spec); @@ -455,7 +452,6 @@ draw_table (ModeInfo *mi) polys++; } glEnd(); - glPopAttrib(); glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, text); glTranslatef (0, 0, 0.01); @@ -812,7 +808,6 @@ ENTRYPOINT void init_sonar (ModeInfo *mi) { sonar_configuration *sp; - int wire = MI_IS_WIREFRAME(mi); if (!sps) { sps = (sonar_configuration *) @@ -828,31 +823,6 @@ init_sonar (ModeInfo *mi) reshape_sonar (mi, MI_WIDTH(mi), MI_HEIGHT(mi)); clear_gl_error(); /* WTF? sometimes "invalid op" from glViewport! */ - if (!wire) - { - GLfloat pos[4] = {0.05, 0.07, 1.00, 0.0}; - GLfloat amb[4] = {0.2, 0.2, 0.2, 1.0}; - GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0}; - GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0}; - - glEnable(GL_TEXTURE_2D); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glEnable(GL_CULL_FACE); - glEnable(GL_DEPTH_TEST); - glEnable(GL_NORMALIZE); - glEnable(GL_LINE_SMOOTH); - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); - glShadeModel(GL_SMOOTH); - - glLightfv(GL_LIGHT0, GL_POSITION, pos); - glLightfv(GL_LIGHT0, GL_AMBIENT, amb); - glLightfv(GL_LIGHT0, GL_DIFFUSE, dif); - glLightfv(GL_LIGHT0, GL_SPECULAR, spc); - } - sp->trackball = gltrackball_init (); sp->rot = make_rotator (0, 0, 0, 0, speed * 0.003, True); @@ -918,6 +888,7 @@ draw_sonar (ModeInfo *mi) sonar_configuration *sp = &sps[MI_SCREEN(mi)]; Display *dpy = MI_DISPLAY(mi); Window window = MI_WINDOW(mi); + int wire = MI_IS_WIREFRAME(mi); if (!sp->glx_context) return; @@ -926,10 +897,41 @@ draw_sonar (ModeInfo *mi) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + if (!wire) + { + GLfloat pos[4] = {0.05, 0.07, 1.00, 0.0}; + GLfloat amb[4] = {0.2, 0.2, 0.2, 1.0}; + GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0}; + GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0}; + + glEnable(GL_TEXTURE_2D); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glEnable(GL_CULL_FACE); + glEnable(GL_DEPTH_TEST); + glEnable(GL_NORMALIZE); + glEnable(GL_LINE_SMOOTH); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); + glShadeModel(GL_SMOOTH); + + glLightfv(GL_LIGHT0, GL_POSITION, pos); + glLightfv(GL_LIGHT0, GL_AMBIENT, amb); + glLightfv(GL_LIGHT0, GL_DIFFUSE, dif); + glLightfv(GL_LIGHT0, GL_SPECULAR, spc); + } + glPushMatrix (); - { GLfloat s = 7; glScalef (s,s,s); } + { + GLfloat s = 7; + if (MI_WIDTH(mi) < MI_HEIGHT(mi)) + s *= (MI_WIDTH(mi) / (float) MI_HEIGHT(mi)); + glScalef (s,s,s); + } gltrackball_rotate (sp->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); if (wobble_p) { diff --git a/hacks/glx/sphere.c b/hacks/glx/sphere.c index eb004b11..182d0084 100644 --- a/hacks/glx/sphere.c +++ b/hacks/glx/sphere.c @@ -24,12 +24,14 @@ # include "config.h" #endif -#ifdef HAVE_COCOA -# include -#else +#ifndef HAVE_COCOA # include #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #include "sphere.h" typedef struct { GLfloat x, y, z; } XYZ; @@ -41,12 +43,12 @@ unit_sphere (int stacks, int slices, int wire_p) int i,j; double theta1, theta2, theta3; XYZ p, n; - XYZ la = { 0, 0, 0 }, lb = { 0, 0, 0 }; + XYZ la = { 0, -1, 0 }, lb = { 0, -1, 0 }; XYZ c = {0, 0, 0}; /* center */ double r = 1.0; /* radius */ int stacks2 = stacks * 2; - int mode = (wire_p ? GL_LINE_LOOP : GL_TRIANGLE_STRIP); + int mode = (wire_p ? GL_LINE_STRIP : GL_TRIANGLE_STRIP); int arraysize, out; struct { XYZ p; XYZ n; GLfloat s, t; } *array; @@ -61,7 +63,6 @@ unit_sphere (int stacks, int slices, int wire_p) if (! array) abort(); out = 0; - if (slices < 4 || stacks < 2 || r <= 0) { mode = GL_POINTS; @@ -78,7 +79,7 @@ unit_sphere (int stacks, int slices, int wire_p) { theta3 = i * (M_PI+M_PI) / slices; - if (wire_p && i != 0) + if (wire_p) { array[out++].p = lb; /* vertex */ array[out++].p = la; /* vertex */ diff --git a/hacks/glx/spheremonics.c b/hacks/glx/spheremonics.c index 7bd9967a..4ad36c8e 100644 --- a/hacks/glx/spheremonics.c +++ b/hacks/glx/spheremonics.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2002-2008 Jamie Zawinski +/* xscreensaver, Copyright (c) 2002-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -111,8 +111,13 @@ typedef struct { int mesher; int polys1, polys2; /* polygon counts */ +# ifdef HAVE_GLBITMAP XFontStruct *font; GLuint font_list; +# else + texture_font_data *font_data; +# endif + int change_tick; int done_once; @@ -221,6 +226,14 @@ gl_init (ModeInfo *mi) glDisable(GL_CULL_FACE); glLightModeli (GL_LIGHT_MODEL_TWO_SIDE, True); } + + if (smooth_p) + { + glEnable (GL_LINE_SMOOTH); + glHint (GL_LINE_SMOOTH_HINT, GL_NICEST); + glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable (GL_BLEND); + } } @@ -361,13 +374,10 @@ draw_bounding_box (ModeInfo *mi) glDisable(GL_CULL_FACE); } - glPushAttrib (GL_LIGHTING); - glDisable (GL_LIGHTING); - - glColor3f (c2[0], c2[1], c2[2]); - if (do_grid) { + glDisable (GL_LIGHTING); + glColor3f (c2[0], c2[1], c2[2]); glPushMatrix(); glBegin(GL_LINES); glVertex3f(0, -0.66, 0); @@ -382,6 +392,7 @@ draw_bounding_box (ModeInfo *mi) } else { +#if 0 glBegin(GL_LINES); if (x1 > 0) x1 = 0; if (x2 < 0) x2 = 0; if (y1 > 0) y1 = 0; if (y2 < 0) y2 = 0; @@ -390,9 +401,8 @@ draw_bounding_box (ModeInfo *mi) glVertex3f(0 , y1, 0); glVertex3f(0, y2, 0); glVertex3f(0, 0, z1); glVertex3f(0, 0, z2); glEnd(); +#endif } - - glPopAttrib(); } @@ -424,7 +434,6 @@ do_tracer (ModeInfo *mi) { static const GLfloat c[4] = { 0.6, 0.5, 1.0, 1.0 }; - glPushAttrib (GL_LIGHTING); glDisable (GL_LIGHTING); glPushMatrix(); @@ -436,7 +445,7 @@ do_tracer (ModeInfo *mi) draw_circle (mi, False); glPopMatrix(); - glPopAttrib(); + if (! MI_IS_WIREFRAME(mi)) glEnable (GL_LIGHTING); } cc->tracer += 5; @@ -666,13 +675,10 @@ generate_spheremonics (ModeInfo *mi) glEndList(); glNewList(cc->dlist2, GL_COMPILE); - glPushAttrib (GL_LIGHTING); - glDisable (GL_LIGHTING); glPushMatrix(); glScalef (1.05, 1.05, 1.05); cc->polys2 = unit_spheremonics (mi, cc->resolution, 2, cc->m, cc->colors); glPopMatrix(); - glPopAttrib(); glEndList(); } } @@ -701,14 +707,6 @@ init_spheremonics (ModeInfo *mi) reshape_spheremonics (mi, MI_WIDTH(mi), MI_HEIGHT(mi)); } - if (smooth_p) - { - glEnable (GL_LINE_SMOOTH); - glHint (GL_LINE_SMOOTH_HINT, GL_NICEST); - glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glEnable (GL_BLEND); - } - { Bool spinx=False, spiny=False, spinz=False; double spin_speed = 1.0; @@ -745,7 +743,11 @@ init_spheremonics (ModeInfo *mi) cc->resolution = res; +# ifdef HAVE_GLBITMAP load_font (mi->dpy, "labelfont", &cc->font, &cc->font_list); +# else /* !HAVE_GLBITMAP */ + cc->font_data = load_texture_font (mi->dpy, "labelFont"); +# endif /* !HAVE_GLBITMAP */ cc->dlist = glGenLists(1); cc->dlist2 = glGenLists(1); @@ -832,6 +834,8 @@ draw_spheremonics (ModeInfo *mi) glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(cc->glx_context)); + gl_init(mi); + glShadeModel(GL_SMOOTH); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); @@ -863,8 +867,9 @@ draw_spheremonics (ModeInfo *mi) glCallList (cc->dlist); mi->polygon_count += cc->polys1; - if (cc->mesher >= 0 /* || mouse_p */) + if (cc->mesher >= 0 /* || cc->button_down_p */) { + glDisable (GL_LIGHTING); glCallList (cc->dlist2); mi->polygon_count += cc->polys2; if (cc->mesher >= 0) @@ -885,7 +890,12 @@ draw_spheremonics (ModeInfo *mi) cc->m[4], cc->m[5], cc->m[6], cc->m[7]); glColor3f(1.0, 1.0, 0.0); - print_gl_string (mi->dpy, cc->font, cc->font_list, + print_gl_string (mi->dpy, +# ifdef HAVE_GLBITMAP + cc->font, cc->font_list, +# else /* !HAVE_GLBITMAP */ + cc->font_data, +# endif /* !HAVE_GLBITMAP */ mi->xgwa.width, mi->xgwa.height, 10, mi->xgwa.height - 10, buf, False); diff --git a/hacks/glx/sproingies.c b/hacks/glx/sproingies.c index e5446f70..0892eff8 100644 --- a/hacks/glx/sproingies.c +++ b/hacks/glx/sproingies.c @@ -36,9 +36,7 @@ static const char sccsid[] = "@(#)sproingies.c 4.04 97/07/28 xlockmore"; #ifdef USE_GL -#ifdef HAVE_COCOA -# include -#else +#ifndef HAVE_COCOA # include #endif @@ -510,8 +508,10 @@ RenderSproingie(int t, sp_instance * si) { GLfloat scale, pointsize, mat_color[4] = {0.0, 0.0, 0.0, 1.0}; +#ifndef HAVE_JWZGLES GLdouble clipplane[4] = {0.0, 1.0, 0.0, 0.0}; +#endif struct sPosColor *thisSproingie = &(si->positions[t]); if (thisSproingie->life < 1) @@ -536,9 +536,14 @@ RenderSproingie(int t, sp_instance * si) (GLfloat) (thisSproingie->y) + ((GLfloat) (thisSproingie->frame) / 9.0), (GLfloat) (thisSproingie->z)); + +#ifndef HAVE_JWZGLES + /* OpenGLES doesn't have this but it doesn't seem to matter */ clipplane[3] = ((GLdouble) (thisSproingie->frame) / 9.0) + (si->wireframe ? 0.0 : 0.1); glClipPlane(GL_CLIP_PLANE0, clipplane); +#endif + /** glCallList(si->sproingies[0]);*/ /**/ renderList(si->sproingies[0], si->wireframe); glDisable(GL_CLIP_PLANE0); diff --git a/hacks/glx/sproingiewrap.c b/hacks/glx/sproingiewrap.c index b16c87da..402b9103 100644 --- a/hacks/glx/sproingiewrap.c +++ b/hacks/glx/sproingiewrap.c @@ -194,7 +194,10 @@ draw_sproingies (ModeInfo * mi) glDrawBuffer(GL_BACK); glXMakeCurrent(display, window, *(sp->glx_context)); + glPushMatrix(); + glRotatef(current_device_rotation(), 0, 0, 1); NextSproingieDisplay(MI_SCREEN(mi),mi->pause); /* It will swap. */ + glPopMatrix(); if (mi->fps_p) do_fps (mi); glFinish(); diff --git a/hacks/glx/stairs.c b/hacks/glx/stairs.c index 9381f6fa..0bd61c2e 100644 --- a/hacks/glx/stairs.c +++ b/hacks/glx/stairs.c @@ -68,7 +68,13 @@ static const char sccsid[] = "@(#)stairs.c 4.07 97/11/24 xlockmore"; #ifdef USE_GL +#if 0 #include "e_textures.h" +#else +#include "xpm-ximage.h" +#include "../images/wood.xpm" +#endif + #include "sphere.h" #include "gltrackball.h" @@ -387,9 +393,9 @@ stairs_handle_event (ModeInfo *mi, XEvent *event) static void -pinit(void) +pinit(ModeInfo *mi) { - int status; + /* int status; */ glClearDepth(1.0); glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); @@ -413,6 +419,7 @@ pinit(void) glPixelStorei(GL_UNPACK_ALIGNMENT, 1); +#if 0 clear_gl_error(); status = gluBuild2DMipmaps(GL_TEXTURE_2D, 3, WoodTextureWidth, WoodTextureHeight, @@ -426,6 +433,22 @@ pinit(void) exit (1); } check_gl_error("mipmapping"); +#else + { + XImage *img = xpm_to_ximage (mi->dpy, + mi->xgwa.visual, + mi->xgwa.colormap, + wood_texture); + glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, + img->width, img->height, 0, + GL_RGBA, + /* GL_UNSIGNED_BYTE, */ + GL_UNSIGNED_INT_8_8_8_8_REV, + img->data); + check_gl_error("texture"); + XDestroyImage (img); + } +#endif glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); @@ -461,7 +484,7 @@ init_stairs (ModeInfo * mi) glDrawBuffer(GL_BACK); if (!glIsList(sp->objects)) sp->objects = glGenLists(1); - pinit(); + pinit(mi); } else { MI_CLEARWINDOW(mi); } @@ -495,6 +518,7 @@ draw_stairs (ModeInfo * mi) } gltrackball_rotate (sp->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); glTranslatef(0, 0.5, 0); glRotatef(44.5, 1, 0, 0); diff --git a/hacks/glx/starwars.c b/hacks/glx/starwars.c index 69b1cf9c..de3833c5 100644 --- a/hacks/glx/starwars.c +++ b/hacks/glx/starwars.c @@ -1,4 +1,4 @@ -/* starwars, Copyright (c) 1998-2011 Jamie Zawinski and +/* starwars, Copyright (c) 1998-2012 Jamie Zawinski and * Claudio Matsuoka * * Permission to use, copy, modify, distribute, and sell this software and its @@ -22,7 +22,7 @@ * * For the fanboys: * - * starwars -program 'cat starwars.txt' -columns 25 -no-wrap -texture + * starwars -program 'cat starwars.txt' -columns 25 -no-wrap */ #ifdef HAVE_CONFIG_H @@ -36,15 +36,15 @@ # include #endif -#ifndef HAVE_COCOA -# include -#endif - +#include "starwars.h" #define DEFAULTS "*delay: 40000 \n" \ "*showFPS: False \n" \ "*fpsTop: True \n" \ - "*font: " DEF_FONT "\n" + "*usePty: False \n" \ + "*font: " DEF_FONT "\n" \ + "*textLiteral: " DEF_TEXT "\n" + # define refresh_sws 0 # define sws_handle_event 0 @@ -52,6 +52,7 @@ #define countof(x) (sizeof((x))/sizeof((*x))) #include "xlockmore.h" +#include "textclient.h" #ifdef USE_GL /* whole file */ @@ -91,7 +92,10 @@ #define MAX_THICK_LINES 25 #define FONT_WEIGHT 14 -#define KEEP_ASPECT + +#ifndef USE_IPHONE +# define KEEP_ASPECT /* Letterboxing looks dumb on iPhone. */ +#endif #include "texfont.h" #include "glutstroke.h" @@ -105,11 +109,7 @@ typedef struct { GLuint text_list, star_list; texture_font_data *texfont; int polygon_count; - - FILE *pipe; - XtInputId pipe_id; - XtIntervalId pipe_timer; - Time subproc_relaunch_delay; + text_data *tc; char *buf; int buf_size; @@ -280,105 +280,6 @@ latin1_to_ascii (char *s) } } - -/* Subprocess. - (This bit mostly cribbed from phosphor.c) - */ - -static void drain_input (sws_configuration *sc); - -static void -subproc_cb (XtPointer closure, int *source, XtInputId *id) -{ - sws_configuration *sc = (sws_configuration *) closure; - drain_input (sc); -} - - -static void -launch_text_generator (sws_configuration *sc) -{ - XtAppContext app = XtDisplayToApplicationContext (sc->dpy); - char *oprogram = get_string_resource (sc->dpy, "program", "Program"); - char *program = (char *) malloc (strlen (oprogram) + 10); - strcpy (program, "( "); - strcat (program, oprogram); - strcat (program, " ) 2>&1"); - - if ((sc->pipe = popen (program, "r"))) - { - sc->pipe_id = - XtAppAddInput (app, fileno (sc->pipe), - (XtPointer) (XtInputReadMask | XtInputExceptMask), - subproc_cb, (XtPointer) sc); - } - else - { - perror (program); - } -} - - -static void -relaunch_generator_timer (XtPointer closure, XtIntervalId *id) -{ - sws_configuration *sc = (sws_configuration *) closure; - if (!sc->pipe_timer) abort(); - sc->pipe_timer = 0; - launch_text_generator (sc); -} - - -/* When the subprocess has generated some output, this reads as much as it - can into sc->buf at sc->buf_tail. - */ -static void -drain_input (sws_configuration *sc) -{ - XtAppContext app = XtDisplayToApplicationContext (sc->dpy); - if (sc->buf_tail < sc->buf_size - 2) - { - int target = sc->buf_size - sc->buf_tail - 2; - int n = (sc->pipe - ? read (fileno (sc->pipe), - (void *) (sc->buf + sc->buf_tail), - target) - : 0); - if (n > 0) - { - sc->buf_tail += n; - sc->buf[sc->buf_tail] = 0; - } - else - { - if (sc->pipe) - { - XtRemoveInput (sc->pipe_id); - sc->pipe_id = 0; - pclose (sc->pipe); - sc->pipe = 0; - } - - /* If the process didn't print a terminating newline, add one. */ - if (sc->buf_tail > 1 && - sc->buf[sc->buf_tail-1] != '\n') - { - sc->buf[sc->buf_tail++] = '\n'; - sc->buf[sc->buf_tail] = 0; - } - - /* Then add one more, just for giggles. */ - sc->buf[sc->buf_tail++] = '\n'; - sc->buf[sc->buf_tail] = 0; - - /* Set up a timer to re-launch the subproc in a bit. */ - sc->pipe_timer = XtAppAddTimeOut (app, sc->subproc_relaunch_delay, - relaunch_generator_timer, - (XtPointer) sc); - } - } -} - static int string_width (sws_configuration *sc, const char *s) @@ -399,8 +300,7 @@ char_width (sws_configuration *sc, char c) } -/* Populates the sc->lines list with as many lines as are currently in - sc->buf (which was filled by drain_input(). +/* Populates the sc->lines list with as many lines as possible. */ static void get_more_lines (sws_configuration *sc) @@ -412,6 +312,21 @@ get_more_lines (sws_configuration *sc) int col_pix = 0; char *s = sc->buf; + + int target = sc->buf_size - sc->buf_tail - 2; + + /* Fill as much as we can into sc->buf. + */ + while (target > 0) + { + char c = textclient_getc (sc->tc); + if (c <= 0) + break; + sc->buf[sc->buf_tail++] = c; + sc->buf[sc->buf_tail] = 0; + target--; + } + while (sc->total_lines < max_lines) { int cw; @@ -670,6 +585,7 @@ reshape_sws (ModeInfo *mi, int width, int height) int w = mi->xgwa.width; int h = mi->xgwa.height; int yoff = 0; + GLfloat rot = current_device_rotation(); #ifdef KEEP_ASPECT { @@ -689,6 +605,19 @@ reshape_sws (ModeInfo *mi, int width, int height) gluLookAt (0.0, 0.0, 4600.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); + + glRotatef(rot, 0, 0, 1); + + /* Horrible kludge to prevent the text from materializing already + on screen on iPhone in landscape mode. + */ + if ((rot > 45 && rot < 135) || + (rot < -45 && rot > -135)) + { + GLfloat s = 1.1; + glScalef (s, s, s); + } + glRotatef (-60.0, 1.0, 0.0, 0.0); #if 0 @@ -712,8 +641,8 @@ reshape_sws (ModeInfo *mi, int width, int height) { GLdouble mm[17], pm[17]; GLint vp[5]; - GLfloat x = 0.5, y1 = 0, z = 0; - GLfloat y2 = sc->line_height; + GLdouble x = 0.5, y1 = 0, z = 0; + GLdouble y2 = sc->line_height; GLdouble wx=-1, wy1=-1, wy2=-1, wz=-1; glGetDoublev (GL_MODELVIEW_MATRIX, mm); @@ -869,7 +798,6 @@ init_sws (ModeInfo *mi) if (sc->buf_size < 80) sc->buf_size = 80; sc->buf = (char *) calloc (1, sc->buf_size); - sc->subproc_relaunch_delay = 2 * 1000; /* 2 seconds */ sc->total_lines = max_lines-1; if (random() & 1) @@ -891,7 +819,7 @@ init_sws (ModeInfo *mi) exit (1); } - launch_text_generator (sc); + sc->tc = textclient_open (sc->dpy); /* one more reshape, after line_height has been computed */ reshape_sws (mi, MI_WIDTH(mi), MI_HEIGHT(mi)); @@ -917,6 +845,10 @@ draw_stars (ModeInfo *mi) -100.0, 100.0); glRotatef (sc->star_theta, 0.0, 0.0, 1.0); if (textures_p) glDisable (GL_TEXTURE_2D); + + /* Keep the stars pointing in the same direction after rotation */ + glRotatef(current_device_rotation(), 0, 0, 1); + glCallList (sc->star_list); if (textures_p) glEnable (GL_TEXTURE_2D); } @@ -938,11 +870,6 @@ draw_sws (ModeInfo *mi) if (!sc->glx_context) return; -#if 0 - if (XtAppPending (app) & (XtIMTimer|XtIMAlternateInput)) - XtAppProcessEvent (app, XtIMTimer|XtIMAlternateInput); -#endif - glDrawBuffer (GL_BACK); glXMakeCurrent (dpy, window, *(sc->glx_context)); @@ -953,14 +880,33 @@ draw_sws (ModeInfo *mi) glMatrixMode (GL_MODELVIEW); glPushMatrix (); +# ifdef USE_IPHONE + /* Need to do this every time to get device rotation right */ + reshape_sws (mi, MI_WIDTH(mi), MI_HEIGHT(mi)); +# endif + if (debug_p) { int i; glPushMatrix (); if (textures_p) glDisable (GL_TEXTURE_2D); glLineWidth (1); - glColor3f (0.4, 0.4, 0.4); glTranslatef (0,-1, 0); + + glColor3f(1, 0, 0); /* Red line is where text appears */ + glPushMatrix(); + glTranslatef(0, -0.028, 0); + glLineWidth (4); + glBegin(GL_LINES); + glVertex3f(-0.5, 1, 0); + glVertex3f( 0.5, 1, 0); + glVertex3f(-0.5, -1, 0); + glVertex3f( 0.5, -1, 0); + glEnd(); + glLineWidth (1); + glPopMatrix(); + + glColor3f (0.4, 0.4, 0.4); for (i = 0; i < 16; i++) { box (1, 1, 1); @@ -1088,12 +1034,8 @@ release_sws (ModeInfo *mi) int screen; for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++) { sws_configuration *sc = &scs[screen]; - if (sc->pipe_id) - XtRemoveInput (sc->pipe_id); - if (sc->pipe) - pclose (sc->pipe); - if (sc->pipe_timer) - XtRemoveTimeOut (sc->pipe_timer); + if (sc->tc) + textclient_close (sc->tc); /* #### there's more to free here */ } diff --git a/hacks/glx/starwars.h b/hacks/glx/starwars.h new file mode 100644 index 00000000..0db66d9b --- /dev/null +++ b/hacks/glx/starwars.h @@ -0,0 +1,312 @@ +#define DEF_TEXT \ +"Episode IV\\n" \ +"\\n" \ +"STAR WARS: A NEW HOPE\\n" \ +"\\n" \ +"It is a period of Civil War.\\n" \ +"Rebel Spaceships, striking\\n" \ +"from a hidden base, have won\\n" \ +"their first victory against\\n" \ +"the evil Galactic Empire.\\n" \ +"\\n" \ +"During the battle, Rebel\\n" \ +"spies managed to steal secret\\n" \ +"plans to the Empire's\\n" \ +"ultimate weapon, the DEATH\\n" \ +"STAR, an armored space\\n" \ +"station with enough power to\\n" \ +"destroy an entire planet.\\n" \ +"\\n" \ +"Pursued by the Empire's\\n" \ +"sinister agents, Princess\\n" \ +"Leia races home aboard her\\n" \ +"starship, custodian of the\\n" \ +"stolen plans that can save\\n" \ +"her people and restore\\n" \ +"freedom to the galaxy...\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"Episode V\\n" \ +"\\n" \ +"THE EMPIRE STRIKES BACK\\n" \ +"\\n" \ +"It is a dark time for the\\n" \ +"Rebellion. Although the Death\\n" \ +"Star has been destroyed,\\n" \ +"Imperial troops have driven the\\n" \ +"Rebel forces from their hidden\\n" \ +"base and pursued them across\\n" \ +"the galaxy.\\n" \ +"\\n" \ +"Evading the dreaded Imperial\\n" \ +"Starfleet, a group of freedom\\n" \ +"fighters led by Luke Skywalker\\n" \ +"has established a new secret\\n" \ +"base on the remote ice world\\n" \ +"of Hoth.\\n" \ +"\\n" \ +"The evil lord Darth Vader,\\n" \ +"obsessed with finding young\\n" \ +"Skywalker, has dispatched\\n" \ +"thousands of remote probes into\\n" \ +"the far reaches of space....\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"Episode VI\\n" \ +"\\n" \ +"RETURN OF THE JEDI\\n" \ +"\\n" \ +"Luke Skywalker has returned to\\n" \ +"his home planet of Tatooine in\\n" \ +"an attempt to rescue his\\n" \ +"friend Han Solo from the\\n" \ +"clutches of the vile gangster\\n" \ +"Jabba the Hutt.\\n" \ +"\\n" \ +"Little does Luke know that the\\n" \ +"GALACTIC EMPIRE has secretly\\n" \ +"begun construction on a new\\n" \ +"armored space station even\\n" \ +"more powerful than the first\\n" \ +"dreaded Death Star.\\n" \ +"\\n" \ +"When completed, this ultimate\\n" \ +"weapon will spell certain doom\\n" \ +"for the small band of rebels\\n" \ +"struggling to restore freedom\\n" \ +"to the galaxy...\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"Episode I\\n" \ +"\\n" \ +"THE PHANTOM MENACE\\n" \ +"\\n" \ +"Turmoil has engulfed the\\n" \ +"Galactic Republic. The taxation\\n" \ +"of trade routes to outlying star\\n" \ +"systems is in dispute.\\n" \ +"\\n" \ +"Hoping to resolve the matter\\n" \ +"with a blockade of deadly\\n" \ +"battleships, the greedy Trade\\n" \ +"Federation has stopped all\\n" \ +"shipping to the small planet\\n" \ +"of Naboo.\\n" \ +"\\n" \ +"While the Congress of the\\n" \ +"Republic endlessly debates\\n" \ +"this alarming chain of events,\\n" \ +"the Supreme Chancellor has\\n" \ +"secretly dispatched two Jedi\\n" \ +"Knights, the guardians of\\n" \ +"peace and justice in the\\n" \ +"galaxy to settle the conflict...\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"Episode II\\n" \ +"\\n" \ +"ATTACK OF THE CLONES\\n" \ +"\\n" \ +"There is unrest in the Galactic\\n" \ +"Senate. Several thousand solar\\n" \ +"systems have declared their\\n" \ +"intentions to leave the Republic.\\n" \ +"\\n" \ +"This separatist movement,\\n" \ +"under the leadership of the\\n" \ +"mysterious Count Dooku, has\\n" \ +"made it difficult for the limited\\n" \ +"number of Jedi Knights to\\n" \ +"maintain peace and order in the\\n" \ +"galaxy.\\n" \ +"\\n" \ +"Senator Amidala, the former\\n" \ +"Queen of Naboo, is returning\\n" \ +"to the Galactic Senate to vote\\n" \ +"on the critical issue of creating\\n" \ +"an ARMY OF THE REPUBLIC\\n" \ +"to assist the overwhelmed\\n" \ +"Jedi....\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"Episode III\\n" \ +"\\n" \ +"REVENGE OF THE SITH\\n" \ +"\\n" \ +"War! The Republic is crumbling\\n" \ +"under attacks by the ruthless\\n" \ +"Sith Lord, Count Dooku.\\n" \ +"There are heroes on both sides.\\n" \ +"Evil is everywhere.\\n" \ +"\\n" \ +"In a stunning move, the\\n" \ +"fiendish droid leader, General\\n" \ +"Grievous, has swept into the\\n" \ +"Republic capital and kidnapped\\n" \ +"Chancellor Palpatine, leader of\\n" \ +"the Galactic Senate.\\n" \ +"\\n" \ +"As the Separatist Droid Army\\n" \ +"attempts to flee th besieged\\n" \ +"capital with their valuable\\n" \ +"hostage, two Jedi Knights lead a\\n" \ +"desperate mission to rescue the\\n" \ +"captive Chancellor....\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" \ +"\\n" diff --git a/hacks/glx/stonerview-move.c b/hacks/glx/stonerview-move.c index bb14a3a2..b8a2041b 100644 --- a/hacks/glx/stonerview-move.c +++ b/hacks/glx/stonerview-move.c @@ -19,12 +19,14 @@ #include #include -#ifdef HAVE_COCOA -# include -#else +#ifndef HAVE_COCOA # include #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #include "yarandom.h" #include "stonerview.h" diff --git a/hacks/glx/stonerview.h b/hacks/glx/stonerview.h index 4ba6aed7..0946923a 100644 --- a/hacks/glx/stonerview.h +++ b/hacks/glx/stonerview.h @@ -13,12 +13,18 @@ #ifndef __STONERVIEW_H__ # define __STONERVIEW_H__ -#ifdef HAVE_COCOA -# include -#else +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif /* HAVE_CONFIG_H */ + +#ifndef HAVE_COCOA # include #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + typedef struct stonerview_state stonerview_state; #include "stonerview-osc.h" diff --git a/hacks/glx/superquadrics.c b/hacks/glx/superquadrics.c index 425d52bc..f52cc6b2 100644 --- a/hacks/glx/superquadrics.c +++ b/hacks/glx/superquadrics.c @@ -568,6 +568,7 @@ DisplaySuperquadrics(superquadricsstruct * sp) SetCull(0, sp); + glScalef(0.7, 0.7, 0.7); /* jwz: scale it down a bit */ polys = DoneScale(sp); glPopMatrix(); diff --git a/hacks/glx/tangram.c b/hacks/glx/tangram.c index a80f7b01..a7af6428 100644 --- a/hacks/glx/tangram.c +++ b/hacks/glx/tangram.c @@ -98,10 +98,15 @@ typedef struct { XColor *colors; int ccolor; +# ifdef HAVE_GLBITMAP XFontStruct *xfont1; XFontStruct *xfont2; XFontStruct *xfont3; GLuint font1_dlist, font2_dlist, font3_dlist; +# else + texture_font_data *font1_data, *font2_data, *font3_data; +# endif + GLuint name_list; GLfloat theta[3]; @@ -739,9 +744,15 @@ static void draw_tangram_shape(tangram_shape ts) static void load_fonts(ModeInfo * mi) { tangram_configuration *tp = &tps[MI_SCREEN(mi)]; +# ifdef HAVE_GLBITMAP load_font(mi->dpy, "titleFont", &tp->xfont1, &tp->font1_dlist); load_font(mi->dpy, "titleFont2", &tp->xfont2, &tp->font2_dlist); load_font(mi->dpy, "titleFont3", &tp->xfont3, &tp->font3_dlist); +# else /* !HAVE_GLBITMAP */ + tp->font1_data = load_texture_font (mi->dpy, "titleFont"); + tp->font2_data = load_texture_font (mi->dpy, "titleFont2"); + tp->font3_data = load_texture_font (mi->dpy, "titleFont3"); +# endif /* !HAVE_GLBITMAP */ } static void draw_shapes(ModeInfo * mi) @@ -1031,18 +1042,37 @@ ENTRYPOINT void draw_tangram(ModeInfo * mi) glLoadIdentity(); if (do_labels) { +# ifdef HAVE_GLBITMAP XFontStruct *f; GLuint fl; - glNewList(tp->name_list, GL_COMPILE); +# else /* !HAVE_GLBITMAP */ + texture_font_data *f; +# endif /* !HAVE_GLBITMAP */ if (MI_WIDTH(mi) >= 500 && MI_HEIGHT(mi) >= 375) +# ifdef HAVE_GLBITMAP f = tp->xfont1, fl = tp->font1_dlist; +# else /* !HAVE_GLBITMAP */ + f = tp->font1_data; +# endif /* !HAVE_GLBITMAP */ else if (MI_WIDTH(mi) >= 350 && MI_HEIGHT(mi) >= 260) +# ifdef HAVE_GLBITMAP f = tp->xfont2, fl = tp->font2_dlist; +# else /* !HAVE_GLBITMAP */ + f = tp->font2_data; +# endif /* !HAVE_GLBITMAP */ else +# ifdef HAVE_GLBITMAP f = tp->xfont3, fl = tp->font3_dlist; +# else /* !HAVE_GLBITMAP */ + f = tp->font3_data; +# endif /* !HAVE_GLBITMAP */ + glNewList(tp->name_list, GL_COMPILE); glColor3f(0.8, 0.8, 0); - print_gl_string(mi->dpy, f, fl, + print_gl_string(mi->dpy, f, +# ifdef HAVE_GLBITMAP + fl, +# endif /* !HAVE_GLBITMAP */ mi->xgwa.width, mi->xgwa.height, 10, mi->xgwa.height - 10, tp->pn, False); glEndList(); @@ -1053,6 +1083,8 @@ ENTRYPOINT void draw_tangram(ModeInfo * mi) draw_shapes(mi); + if (mi->fps_p) do_fps (mi); + glFlush(); glPopMatrix(); glXSwapBuffers(dpy, window); diff --git a/hacks/glx/tangram_shapes.c b/hacks/glx/tangram_shapes.c index 916d0a88..32b7014c 100644 --- a/hacks/glx/tangram_shapes.c +++ b/hacks/glx/tangram_shapes.c @@ -9,12 +9,18 @@ * implied warranty. */ -#ifdef HAVE_COCOA -# include -#else +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif /* HAVE_CONFIG_H */ + +#ifndef HAVE_COCOA # include #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #include "tangram_shapes.h" #define small_scale ( 1 ) diff --git a/hacks/glx/teapot.c b/hacks/glx/teapot.c index 373a8b22..3fc95ee3 100644 --- a/hacks/glx/teapot.c +++ b/hacks/glx/teapot.c @@ -50,12 +50,19 @@ OpenGL(TM) is a trademark of Silicon Graphics, Inc. #include "teapot.h" -#ifdef HAVE_COCOA -# include -#else +#ifdef HAVE_JWZGLES +int unit_teapot (int grid, int wire_p) { return 0; } +#else /* !HAVE_JWZGLES */ + + +#ifndef HAVE_COCOA # include #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + /* Rim, body, lid, and bottom data must be reflected in x and y; handle and spout data across the y axis only. */ @@ -212,3 +219,5 @@ unit_teapot (int grid, int wire_p) return polys; } + +#endif /* !HAVE_JWZGLES */ diff --git a/hacks/glx/texfont.c b/hacks/glx/texfont.c index 906f3e22..f58755d1 100644 --- a/hacks/glx/texfont.c +++ b/hacks/glx/texfont.c @@ -1,4 +1,4 @@ -/* texfonts, Copyright (c) 2005-2010 Jamie Zawinski +/* texfonts, Copyright (c) 2005-2012 Jamie Zawinski * Loads X11 fonts into textures for use with OpenGL. * * Permission to use, copy, modify, distribute, and sell this software and its @@ -21,12 +21,20 @@ #include #ifdef HAVE_COCOA -# include +# ifdef USE_IPHONE +# include "jwzgles.h" +# else +# include +# endif #else # include # include #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #include "resources.h" #include "texfont.h" @@ -82,11 +90,30 @@ bitmap_to_texture (Display *dpy, Pixmap p, Visual *visual, int *wP, int *hP) int h2 = to_pow2 (oh); int x, y; XImage *image = XGetImage (dpy, p, 0, 0, ow, oh, ~0L, ZPixmap); - unsigned char *data = (unsigned char *) calloc (w2, (h2 + 1)); + unsigned char *data = (unsigned char *) calloc (w2 * 2, (h2 + 1)); unsigned char *out = data; + + /* OpenGLES doesn't support GL_INTENSITY, so instead of using a + texture with 1 byte per pixel, the intensity value, we have + to use 2 bytes per pixel: solid white, and an alpha value. + */ +# ifdef HAVE_JWZGLES +# undef GL_INTENSITY +# endif + +# ifdef GL_INTENSITY GLuint iformat = GL_INTENSITY; - GLuint format = GL_LUMINANCE; - GLuint type = GL_UNSIGNED_BYTE; + GLuint format = GL_LUMINANCE; +# else + GLuint iformat = GL_LUMINANCE_ALPHA; + GLuint format = GL_LUMINANCE_ALPHA; +# endif + GLuint type = GL_UNSIGNED_BYTE; + +# ifdef HAVE_JWZGLES + /* This would work, but it's wasteful for no benefit. */ + mipmap_p = False; +# endif for (y = 0; y < h2; y++) for (x = 0; x < w2; x++) { @@ -94,7 +121,11 @@ bitmap_to_texture (Display *dpy, Pixmap p, Visual *visual, int *wP, int *hP) /* instead of averaging all three channels, let's just use red, and assume it was already grayscale. */ unsigned long r = pixel & visual->red_mask; + /* This goofy trick is to make any of RGBA/ABGR/ARGB work. */ pixel = ((r >> 24) | (r >> 16) | (r >> 8) | r) & 0xFF; +# ifndef GL_INTENSITY + *out++ = 0xFF; /* 2 bytes per pixel */ +# endif *out++ = pixel; } XDestroyImage (image); @@ -145,8 +176,12 @@ load_texture_font (Display *dpy, char *res) const char *def3 = "fixed"; XFontStruct *f; int which; + GLint old_texture = 0; - check_gl_error ("stale texture font"); + glGetIntegerv (GL_TEXTURE_BINDING_2D, &old_texture); + + if (!strcmp (res, "fpsFont")) + def1 = "-*-courier-bold-r-normal-*-180-*"; /* Kludge. Sue me. */ XGetWindowAttributes (dpy, root, &xgwa); @@ -319,6 +354,9 @@ load_texture_font (Display *dpy, char *res) XFreePixmap (dpy, p); } + /* Reset to the caller's default */ + glBindTexture (GL_TEXTURE_2D, old_texture); + return data; } @@ -327,26 +365,36 @@ load_texture_font (Display *dpy, char *res) */ int texture_string_width (texture_font_data *data, const char *c, - int *line_height_ret) + int *height_ret) { - int w = 0; + int x = 0; + int max_w = 0; XFontStruct *f = data->font; + int h = f->ascent + f->descent; while (*c) { int cc = *((unsigned char *) c); - w += (f->per_char && cc >= f->min_char_or_byte2 - ? f->per_char[cc-f->min_char_or_byte2].width - : f->max_bounds.width); + if (*c == '\n') + { + if (x > max_w) max_w = x; + x = 0; + h += f->ascent + f->descent; + } + else + x += (f->per_char && cc >= f->min_char_or_byte2 + ? f->per_char[cc-f->min_char_or_byte2].width + : f->min_bounds.rbearing); c++; } - if (line_height_ret) - *line_height_ret = f->ascent + f->descent; - return w; + if (x > max_w) max_w = x; + if (height_ret) *height_ret = h; + + return max_w; } -/* Draws the string in the scene at the origin. - Newlines and tab stops are honored. +/* Draws the string in the scene at the current point. + Newlines, tab stops and subscripts are honored. */ void print_texture_string (texture_font_data *data, const char *string) @@ -361,12 +409,24 @@ print_texture_string (texture_font_data *data, const char *string) int tabs = cw * 7; int x, y; unsigned int i; + GLint old_texture = 0; + GLfloat omatrix[16]; + int ofront; + + glGetIntegerv (GL_TEXTURE_BINDING_2D, &old_texture); + glGetIntegerv (GL_FRONT_FACE, &ofront); + glGetFloatv (GL_TEXTURE_MATRIX, omatrix); clear_gl_error (); glPushMatrix(); glNormal3f (0, 0, 1); + glFrontFace (GL_CW); + + glMatrixMode (GL_TEXTURE); + glLoadIdentity (); + glMatrixMode (GL_MODELVIEW); x = 0; y = 0; @@ -499,6 +559,14 @@ print_texture_string (texture_font_data *data, const char *string) } glPopMatrix(); + /* Reset to the caller's default */ + glBindTexture (GL_TEXTURE_2D, old_texture); + glFrontFace (ofront); + + glMatrixMode (GL_TEXTURE); + glMultMatrixf (omatrix); + glMatrixMode (GL_MODELVIEW); + check_gl_error ("texture font print"); } diff --git a/hacks/glx/timetunnel.c b/hacks/glx/timetunnel.c index 68eaf34c..8be850ec 100644 --- a/hacks/glx/timetunnel.c +++ b/hacks/glx/timetunnel.c @@ -33,7 +33,6 @@ #include "rotator.h" #include "gltrackball.h" - #define DEF_START "0.00" #define DEF_DILATE "1.00" #define DEF_END "27.79" @@ -486,6 +485,7 @@ static void draw_sign(ModeInfo *mi, tunnel_configuration *tc, float z, float al GLuint tex, int blend_mode) { +#ifndef HAVE_JWZGLES if (alpha > 0.0) { mi->polygon_count ++; /* glEnable(GL_BLEND); */ @@ -527,6 +527,7 @@ static void draw_sign(ModeInfo *mi, tunnel_configuration *tc, float z, float al /* glDisable(GL_BLEND); */ } +#endif /* !HAVE_JWZGLES */ } /* draw sign */ @@ -535,6 +536,7 @@ static void draw_sign(ModeInfo *mi, tunnel_configuration *tc, float z, float al tunnel does not move, and is acutally a display list. if alpha = 0, skip */ static void draw_cyl(ModeInfo *mi, tunnel_configuration *tc, float alpha, int texnum, int listnum, int shiftnum) { +#ifndef HAVE_JWZGLES if (alpha > 0.0) { if (listnum == tc->diamondlist) mi->polygon_count += 4; @@ -559,6 +561,7 @@ static void draw_cyl(ModeInfo *mi, tunnel_configuration *tc, float alpha, int te glMatrixMode(GL_MODELVIEW); /* glDisable(GL_BLEND); */ } +#endif /* HAVE_JWZGLES */ } @@ -901,6 +904,7 @@ static void LoadTexture(ModeInfo * mi, char **fn, const char *filename, GLuint t by = by * 2; } +#ifndef HAVE_JWZGLES if (rescale) { tmpbuf = calloc(bx * by * 4, sizeof(unsigned char)); if (gluScaleImage(GL_RGBA, teximage->width, teximage->height, GL_UNSIGNED_BYTE, teximage->data, @@ -913,6 +917,7 @@ static void LoadTexture(ModeInfo * mi, char **fn, const char *filename, GLuint t teximage->height= by; } /* end rescale code */ +#endif /* !HAVE_JWZGLES */ if (anegative ) { for (ix = 0 ; ix < teximage->height * teximage->width; ix++) @@ -1110,20 +1115,26 @@ init_tunnel (ModeInfo *mi) LoadTexture(mi, tunnelstar_xpm, NULL, tc->texture_binds[4], 0, 0.0, False, False); if (strcasecmp (do_tx1, "(none)")) /* marquee */ LoadTexture(mi, NULL, do_tx1, tc->texture_binds[3], 0,0.0, False, False); +#ifndef HAVE_JWZGLES /* logo_180_xpm is 180px which is not a power of 2! */ else LoadTexture(mi, (char **) logo_180_xpm, NULL, tc->texture_binds[3], 0,0.0, False, False); +#endif if (strcasecmp (do_tx2, "(none)")) /* tardis */ LoadTexture(mi, NULL, do_tx2, tc->texture_binds[1], 0, 0.0 ,False, False); +#ifndef HAVE_JWZGLES /* logo_180_xpm is 180px which is not a power of 2! */ else LoadTexture(mi, (char **) logo_180_xpm, NULL, tc->texture_binds[1], 0,0.0, False, False); +#endif if (strcasecmp (do_tx3, "(none)")) { /* head */ LoadTexture(mi, NULL, do_tx3, tc->texture_binds[6], 0, 0.0 ,False, False); /* negative */ LoadTexture(mi, NULL, do_tx3, tc->texture_binds[9], 2,1.0, True, True); +#ifndef HAVE_JWZGLES /* logo_180_xpm is 180px which is not a power of 2! */ } else { LoadTexture(mi, (char **) logo_180_xpm, NULL, tc->texture_binds[6], 0,0.0, False, False); /* negative */ LoadTexture(mi, (char **) logo_180_xpm, NULL, tc->texture_binds[9], 2,1.0, True, True); +#endif } glEnable(GL_TEXTURE_2D); check_gl_error("tex"); diff --git a/hacks/glx/topblock.c b/hacks/glx/topblock.c index 7acd30a6..008882d3 100644 --- a/hacks/glx/topblock.c +++ b/hacks/glx/topblock.c @@ -1,5 +1,4 @@ -/* topblock, Copyright (c) 2006-2009 - * rednuht +/* topblock, Copyright (c) 2006-2012 rednuht * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -42,14 +41,13 @@ History #include "xlockmore.h" #include "topblock.h" #include "sphere.h" +#include "tube.h" #include "gltrackball.h" #include #ifdef USE_GL /* whole file */ -#ifdef HAVE_COCOA -# include -#else +#ifndef HAVE_COCOA # include #endif @@ -198,7 +196,7 @@ init_topBlock (ModeInfo *mi) reshape_topBlock (mi, MI_WIDTH(mi), MI_HEIGHT(mi)); - if (wire) { drawNipples=False; } +/* if (wire) { drawNipples=False; }*/ tb->numFallingBlocks=0; if (size>10) { size = 10; } @@ -310,6 +308,8 @@ draw_topBlock (ModeInfo *mi) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); /* clear current */ glLoadIdentity(); /* resets directions, do it every time ! */ + glRotatef(current_device_rotation(), 0, 0, 1); + if (!follow) { if (tb->highest>tb->eyeLine) { tb->eyeLine+=((tb->highest-tb->eyeLine)/100); } /* creates a smooth camera transition */ gluLookAt(camX, camY+tb->eyeLine, camZ, tb->eyeX, tb->eyeY+tb->eyeLine, tb->eyeZ, 0.0, 1.0, 0.0); /* setup viewer, xyz cam, xyz looking at and where is up normaly 0,1,0 */ @@ -318,9 +318,14 @@ draw_topBlock (ModeInfo *mi) glRotatef(90, 0.0, 0.0, 1.0); /* z axis */ followBlock(mi); } - glRotatef(-90, 1.0, 0.0, 0.0); - gltrackball_rotate (tb->trackball); - glRotatef(90, 1.0, 0.0, 0.0); + + glScalef (-1, 1, 1); + glTranslatef (0, 0, -10); + glRotatef(-current_device_rotation(), 0, 0, 1); + gltrackball_rotate (tb->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); + glTranslatef (0, 0, 10); + glScalef (-1, 1, 1); /* rotate the world */ glRotatef(tb->rotation, 0.0, 0.0, 1.0); @@ -629,7 +634,6 @@ static void buildCarpet(ModeInfo *mi) GLfloat color[4]; int wire = MI_IS_WIREFRAME(mi); topBlockSTATE *tb = &tbs[MI_SCREEN(mi)]; - GLUquadricObj *quadratic; color[0] = 0.0f; color[1] = 1.0f; color[2] = 0.0f; @@ -651,8 +655,7 @@ static void buildCarpet(ModeInfo *mi) glVertex3f(x,y,0.0); glVertex3f(0.0,y,0.0); tb->carpet_polys++; - if (wire) { glEnd(); } - else { + if (!wire) { /* add edge pieces */ /* side 1 */ glNormal3f( 0, -1, 0 ); @@ -686,20 +689,18 @@ static void buildCarpet(ModeInfo *mi) glEnd(); /* nipples */ if (drawNipples) { - quadratic=gluNewQuadric(); /* Create A Pointer To The Quadric Object */ - gluQuadricNormals(quadratic, GLU_SMOOTH); /* Create Smooth Normals */ - gluQuadricTexture(quadratic, GL_TRUE); /* Create Texture Coords */ glTranslatef(0.5f,0.5f,-.25); /* move to the cylinder center */ for (c=0;ccarpet_polys += resolution*resolution; - glRotatef(180, 0.0f, 1.0f, 0.0f); /* they are upside down */ - gluDisk(quadratic, 0.0f, cylSize, resolution, resolution ); /* inner size (cd hole), outer size (radius), subdivisions radial, subdivisions circular */ - tb->carpet_polys += resolution*resolution; - glRotatef(180, 0.0f, 1.0f, 0.0f); /* recover */ - glTranslatef(0.0f,1.0f,0.0f); /* move to the next cylinder center (backward) */ + tb->carpet_polys += tube(0, 0, -0.1, + 0, 0, 0.26, + cylSize, 0, + resolution, True, True, + wire); + glRotatef(180, 0.0f, 1.0f, 0.0f); /* they are upside down */ + glRotatef(180, 0.0f, 1.0f, 0.0f); /* recover */ + glTranslatef(0.0f,1.0f,0.0f); /* move to the next cylinder center (backward) */ } glPopMatrix(); /* save state */ glTranslatef(1.0f,0.0f,0.0f); /* reset */ @@ -730,7 +731,6 @@ static void buildBlock(ModeInfo *mi) int i,c; int wire = MI_IS_WIREFRAME(mi); topBlockSTATE *tb = &tbs[MI_SCREEN(mi)]; - GLUquadricObj *quadratic; tb->block=glGenLists(1); /* only one */ glNewList(tb->block,GL_COMPILE); tb->block_polys=0; @@ -745,17 +745,16 @@ static void buildBlock(ModeInfo *mi) if (drawNipples) { /* nipples */ /* draw 8 cylinders each with a disk cap */ - quadratic=gluNewQuadric(); /* Create A Pointer To The Quadric Object */ - gluQuadricNormals(quadratic, GLU_SMOOTH); /* Create Smooth Normals */ glRotatef(90, 0.0f, 1.0f, 0.0f); /* 'aim' the pointer ready for the cylinder */ glTranslatef(0.5f,0.5f,0.99f); /* move to the cylinder center */ for (c=0;c<2;c++) { for (i=0;i<4;i++) { - gluCylinder(quadratic, cylSize, cylSize, 0.25f, resolution, resolution); /* quad, radius(bottom, radius(top), height, subdivisions (around Z), subdevisions (along Z) */ - tb->block_polys += resolution*resolution; + tb->block_polys += tube(0, 0, 0, + 0, 0, 0.25, + cylSize, 0, + resolution, True, True, + wire); glTranslatef(0.0f,0.0f,0.25f); /* move to the cylinder cap */ - gluDisk(quadratic, 0.0f, cylSize, resolution, resolution ); /* inner size (cd hole), outer size (radius), subdivisions radial, subdivisions circular */ - tb->block_polys += resolution*resolution; glTranslatef(0.0f,0.0f,-0.25f); /* move back from the cylinder cap */ if (c==0) { glTranslatef(0.0f,-1.0f,0.0f); /* move to the next cylinder center (forward) */ @@ -768,10 +767,13 @@ static void buildBlock(ModeInfo *mi) /* udders */ /* 3 cylinders on the underside */ glTranslatef(1.5f,-2.5f,-1.5f); /* move to the center, under the top of the brick */ + if (! wire) for (c=0;c<3;c++) { - gluCylinder(quadratic, uddSize, uddSize, 1.5f, resolution, resolution); /* quad, radius(bottom, radius(top), height, subdivisions (around Z), subdevisions (along Z) */ - tb->block_polys += resolution*resolution; - glTranslatef(0.0f,-1.0f,0.0f); /* move to the center */ + tb->block_polys += tube(0, 0, 0.1, + 0, 0, 1.4, + uddSize, 0, + resolution, True, True, wire); + glTranslatef(0.0f,-1.0f,0.0f); /* move to the center */ } } glPopMatrix(); /* restore state */ diff --git a/hacks/glx/tronbit.c b/hacks/glx/tronbit.c index 98cbf287..261aca3c 100644 --- a/hacks/glx/tronbit.c +++ b/hacks/glx/tronbit.c @@ -1,4 +1,4 @@ -/* tronbit, Copyright (c) 2011 Jamie Zawinski +/* tronbit, Copyright (c) 2011-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -236,6 +236,20 @@ animate_bits (ModeInfo *mi, bit_state omodel, bit_state nmodel, GLfloat ratio) int polys = 0; GLfloat scale = sin (ratio * M_PI / 2); GLfloat osize, nsize, small; + int wire = MI_IS_WIREFRAME(mi); + + glShadeModel(GL_SMOOTH); + + glEnable(GL_DEPTH_TEST); + glEnable(GL_NORMALIZE); + glEnable(GL_CULL_FACE); + + if (!wire) + { + glEnable(GL_LIGHTING); + glEnable(GL_DEPTH_TEST); + glEnable(GL_CULL_FACE); + } if ((omodel == BIT_IDLE1 || omodel == BIT_IDLE2) && (nmodel == BIT_IDLE1 || nmodel == BIT_IDLE2)) @@ -273,11 +287,6 @@ draw_histogram (ModeInfo *mi, GLfloat ratio) int overlays = 5; int k; - glPushAttrib (GL_TRANSFORM_BIT | /* for matrix contents */ - GL_ENABLE_BIT | /* for various glDisable calls */ - GL_CURRENT_BIT | /* for glColor3f() */ - GL_LIST_BIT); /* for glListBase() */ - glDisable (GL_TEXTURE_2D); glDisable (GL_LIGHTING); glDisable (GL_BLEND); @@ -292,7 +301,8 @@ draw_histogram (ModeInfo *mi, GLfloat ratio) glPushMatrix(); glLoadIdentity(); - gluOrtho2D (0, mi->xgwa.width, 0, mi->xgwa.height); + glRotatef(current_device_rotation(), 0, 0, 1); + glOrtho (0, mi->xgwa.width, 0, mi->xgwa.height, -1, 1); for (k = 0; k < overlays; k++) { @@ -328,8 +338,6 @@ draw_histogram (ModeInfo *mi, GLfloat ratio) glMatrixMode(GL_PROJECTION); glPopMatrix(); - glPopAttrib(); - glMatrixMode(GL_MODELVIEW); return polys; @@ -418,7 +426,6 @@ ENTRYPOINT void init_bit (ModeInfo *mi) { bit_configuration *bp; - int wire = MI_IS_WIREFRAME(mi); int i; if (!bps) { @@ -436,24 +443,6 @@ init_bit (ModeInfo *mi) reshape_bit (mi, MI_WIDTH(mi), MI_HEIGHT(mi)); - if (!wire) - { - GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0}; - GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0}; - GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0}; - GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0}; - - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glEnable(GL_DEPTH_TEST); - glEnable(GL_CULL_FACE); - - glLightfv(GL_LIGHT0, GL_POSITION, pos); - glLightfv(GL_LIGHT0, GL_AMBIENT, amb); - glLightfv(GL_LIGHT0, GL_DIFFUSE, dif); - glLightfv(GL_LIGHT0, GL_SPECULAR, spc); - } - { double spin_speed = 3.0; double wander_speed = 0.03 * speed; @@ -490,21 +479,32 @@ draw_bit (ModeInfo *mi) bit_configuration *bp = &bps[MI_SCREEN(mi)]; Display *dpy = MI_DISPLAY(mi); Window window = MI_WINDOW(mi); + int wire = MI_IS_WIREFRAME(mi); if (!bp->glx_context) return; glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context)); - glShadeModel(GL_SMOOTH); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - glEnable(GL_DEPTH_TEST); - glEnable(GL_NORMALIZE); - glEnable(GL_CULL_FACE); + if (!wire) + { + GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0}; + GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0}; + GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0}; + GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0}; - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glLightfv(GL_LIGHT0, GL_POSITION, pos); + glLightfv(GL_LIGHT0, GL_AMBIENT, amb); + glLightfv(GL_LIGHT0, GL_DIFFUSE, dif); + glLightfv(GL_LIGHT0, GL_SPECULAR, spc); + } glPushMatrix (); + glRotatef(current_device_rotation(), 0, 0, 1); glScalef(1.1, 1.1, 1.1); @@ -515,7 +515,9 @@ draw_bit (ModeInfo *mi) (y - 0.5) * 5, (z - 0.5) * 3); + glRotatef(-current_device_rotation(), 0, 0, 1); gltrackball_rotate (bp->trackball); + glRotatef(current_device_rotation(), 0, 0, 1); get_rotation (bp->rot, &x, &y, &z, !bp->button_down_p); glRotatef (x * 360, 1.0, 0.0, 0.0); @@ -527,7 +529,6 @@ draw_bit (ModeInfo *mi) glScalef (6, 6, 6); - { int nmodel = bp->history [bp->history_fp]; int omodel = bp->history [bp->history_fp > 0 diff --git a/hacks/glx/tube.c b/hacks/glx/tube.c index f218d4a3..b0e29e68 100644 --- a/hacks/glx/tube.c +++ b/hacks/glx/tube.c @@ -1,4 +1,4 @@ -/* tube, Copyright (c) 2001-2011 Jamie Zawinski +/* tube, Copyright (c) 2001-2012 Jamie Zawinski * Utility functions to create tubes and cones in GL. * * Permission to use, copy, modify, distribute, and sell this software and its @@ -18,12 +18,14 @@ #include -#ifdef HAVE_COCOA -# include -#else +#ifndef HAVE_COCOA # include #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #include "tube.h" typedef struct { GLfloat x, y, z; } XYZ; @@ -133,6 +135,7 @@ unit_tube (int faces, int smooth, int caps_p, int wire_p) glNormalPointer ( GL_FLOAT, sizeof(*array), &array[0].n); glTexCoordPointer (2, GL_FLOAT, sizeof(*array), &array[0].s); + glFrontFace(GL_CCW); glDrawArrays ((wire_p ? GL_LINES : (smooth ? GL_TRIANGLE_STRIP : GL_TRIANGLES)), 0, out); @@ -179,6 +182,7 @@ unit_tube (int faces, int smooth, int caps_p, int wire_p) glNormalPointer ( GL_FLOAT, sizeof(*array), &array[0].n); glTexCoordPointer (2, GL_FLOAT, sizeof(*array), &array[0].s); + glFrontFace(GL_CCW); glDrawArrays ((wire_p ? GL_LINE_LOOP : GL_TRIANGLE_FAN), 0, out); } @@ -275,6 +279,7 @@ unit_cone (int faces, int smooth, int cap_p, int wire_p) glNormalPointer ( GL_FLOAT, sizeof(*array), &array[0].n); glTexCoordPointer (2, GL_FLOAT, sizeof(*array), &array[0].s); + glFrontFace(GL_CCW); glDrawArrays ((wire_p ? GL_LINES : GL_TRIANGLES), 0, out); @@ -315,6 +320,7 @@ unit_cone (int faces, int smooth, int cap_p, int wire_p) glNormalPointer ( GL_FLOAT, sizeof(*array), &array[0].n); glTexCoordPointer (2, GL_FLOAT, sizeof(*array), &array[0].s); + glFrontFace(GL_CCW); glDrawArrays ((wire_p ? GL_LINE_LOOP : GL_TRIANGLE_FAN), 0, out); } diff --git a/hacks/glx/tunnel_draw.c b/hacks/glx/tunnel_draw.c index 9398d188..54132fbe 100644 --- a/hacks/glx/tunnel_draw.c +++ b/hacks/glx/tunnel_draw.c @@ -45,10 +45,7 @@ static const char sccsid[] = "@(#)tunnel_draw.c 5.13 2004/05/25 xlockmore"; #include #ifdef STANDALONE -# ifdef HAVE_COCOA -# include -# include -# else +# ifndef HAVE_COCOA # include # include # endif @@ -345,6 +342,7 @@ void DrawTunnel(struct tunnel_state *st, /* End of tunnel */ st->ModeX = 1.0; st->ModeXFlag = 0; + glEnd(); return; } cvCatmullRom(p4, t, &op); @@ -377,6 +375,7 @@ void DrawTunnel(struct tunnel_state *st, /* End of tunnel */ st->ModeX = 1.0; st->ModeXFlag = 0; + glEnd(); return; } diff --git a/hacks/glx/wfront2gl.pl b/hacks/glx/wfront2gl.pl index f57e28c5..69c28a64 100755 --- a/hacks/glx/wfront2gl.pl +++ b/hacks/glx/wfront2gl.pl @@ -1,5 +1,5 @@ #!/usr/bin/perl -w -# Copyright © 2003-2011 Jamie Zawinski +# Copyright © 2003-2012 Jamie Zawinski # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that @@ -27,7 +27,7 @@ use diagnostics; use strict; my $progname = $0; $progname =~ s@.*/@@g; -my $version = q{ $Revision: 1.4 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/; +my $version = q{ $Revision: 1.5 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/; my $verbose = 0; @@ -116,7 +116,7 @@ sub parse_obj($$$) { if ($f =~ m@^(\d+)$@s) { $v = $1; } elsif ($f =~ m@^(\d+)/(\d+)$@s) { $v = $1, $t = $2; } elsif ($f =~ m@^(\d+)/(\d+)/(\d+)$@s) { $v = $1, $t = $2; $n = $3; } - elsif ($f =~ m@^(\d+)///(\d+)$@s) { $v = $1; $n = $3; } + elsif ($f =~ m@^(\d+)///?(\d+)$@s) { $v = $1; $n = $3; } else { error ("line $lineno: unparsable F line: $_") unless defined($v); } diff --git a/hacks/glx/xlock-gl-utils.c b/hacks/glx/xlock-gl-utils.c index e3aeff0b..0921731f 100644 --- a/hacks/glx/xlock-gl-utils.c +++ b/hacks/glx/xlock-gl-utils.c @@ -18,10 +18,6 @@ #include "xlockmoreI.h" #include "glxfonts.h" -#include -#include -#include - #ifndef isupper # define isupper(c) ((c) >= 'A' && (c) <= 'Z') #endif @@ -144,7 +140,6 @@ init_GL(ModeInfo * mi) } } - /* clear away any lingering error codes */ diff --git a/hacks/halftone.c b/hacks/halftone.c index 7c62111a..5cd78b50 100644 --- a/hacks/halftone.c +++ b/hacks/halftone.c @@ -78,7 +78,7 @@ static void update_buffer(halftone_screen *halftone, XWindowAttributes * attrs) if (halftone->buffer_width != -1 && halftone->buffer_height != -1) { - if (halftone->buffer == halftone->window) + if (halftone->buffer != halftone->window) XFreePixmap(halftone->dpy, halftone->buffer); XFreeGC(halftone->dpy, halftone->buffer_gc); } diff --git a/hacks/images/wood.xpm b/hacks/images/wood.xpm new file mode 100644 index 00000000..0bc9b869 --- /dev/null +++ b/hacks/images/wood.xpm @@ -0,0 +1,70 @@ +/* XPM */ +static char *wood_texture[] = { +/* columns rows colors chars-per-pixel */ +"128 32 32 1 ", +" c #6C2A14", +". c #7C3A24", +"X c #945644", +"o c #9C5A44", +"O c #A45E4C", +"+ c #A46254", +"@ c #A4624C", +"# c #9C5E4C", +"$ c #AC6A54", +"% c #AC6654", +"& c #B46E5C", +"* c #B4725C", +"= c #BC7664", +"- c #CC8674", +"; c #AC6E5C", +": c #AC725C", +"> c #C47E64", +", c #A46A54", +"< c #9C624C", +"1 c #94523C", +"2 c #8C4E3C", +"3 c #AC665C", +"4 c #844A3C", +"5 c #7C3E2C", +"6 c #000000", +"7 c #000000", +"8 c #000000", +"9 c #000000", +"0 c #000000", +"q c #000000", +"w c #000000", +"e c #000000", +/* pixels */ +" . . . .... . . . . ........ 5 ", +" 2X#XooXooooooO++@oO#@@#@@+$$@Oo@$@OO@@@%$$$$@@@O@@@O%$%@@%>>->>=&========***;$;%$;&;%%$$$$$$%+@$;$:*&;;$+**=**$$&**;;*=>>>--, ", +" 4=>-=>>=>>=>>>>->>>>>>>>>>--->>>>->=>>>>>--->>>>>>->>>>->----------------->-------------->>>>===>>>==>>>>>---->==>>>>>-------< ", +" +#+X##O3OoO+O@@%$$$+O<+@++@@%$$$$@@@@@@$&$@@$*@@$&*&$*=*=*>=;%$&@;$$%%%$@@$;**==>=>=*=***&*&$;;==$&*;***;***&;**$&*=***&&==>, ", +" X###O#OooOo11@oo#@@@XoooO#oo%*=$$@O@%$%$&$@@$*$$$&&%O$***&&$@;=*&=$O@%++$$$$$;=*&***===**;;=*$$**;$;*=*;&,$$;;;$&&***==&&===2 ", +" .###X#Xoo#oo121Xo#@+@oo#o#O%@%$&$@%OO%&&%$%@@%&$$$*&%o$*&&%+OoO&%+&+O@+@+%,;;;&==*:&&=***&;&=*;$;;+%;***&$;&**=****=====>=>*=< ", +" .X2X2oXoO#oX12ooo#O#XXo#oo#%%$&*&%$@@$$&$&&@%$*&&&*&$O$=*$&$%O@&%%&%@O@@%+$$;**===;$,*&$;&;**;$$;$O@;*;;$+;&;*******=*=*&&&;:4 ", +" #XXX##+Ooooo#O#@@@#oXooXooO@&=*=*$%@$$@*>=$%&=*&***$O&==*=&&@$=$&*&$@%@@%$;**=>=*$+%;$;$$;&&;;&;&@#$*$+$@%,$;;&;$$$&$$$&$===# ", +" 5<++#+@#O#oooO##@+$$%XooX1oo@&*>>=&$$$&@=>=$$*=***==&%$>==&$@O$&$&*&&$$$%+;*=====;,%$&;$$%$$;;$&:&$o;*%+&@+%+$$$$%$$$,$%%%*==X ", +" .XXX21211ooooX%%+$$+@@#@OO#&**$*=*=*&*=*=*===*&=**=>*&*>>*=*&%&=$&$&*&&*=;*====**&***&$$+%,$:&;&$;&+;**&$$*&&;;;&;&*****=*>=>, ", +" .#o#X+##11XOO%@$&*=&;O@+@+%==>=**>=*===&>=>>>=*=*=>>>*=>=>>*&@&*%>*=*&=*=*==>=*=&*==:;;%+%$;&*;$$$$$&**=&&*:;$$$$&;*****=&===X ", +" 4oo#@#OoooXo#@&%$*=*;@ooO%$*>>=&=>>>>>>*=>===*==>=>>>>=>>->====*==**%$=========*$;*;$&**&++%;$$&;&;%;***;;**&&;;;&&**=**%%&+;X ", +" 52o#OXoO#o1XoO@#%&==*+O#oOO@&>>>>>=>>>==>-->>>>>=>>>>=>===>>=***=>==&*==****=*;O+*=$@@+%%@%$&&&&&&&$;*=***=*=*===&;**===$%=+;4 ", +" 5o@+@o#111111XXXo@%$$%@#1241%*>>>->>>>>=->>>=>>>==>>=>=>===>>>*=====&*=======*&@+==$+&&&&$&;&*&*;&&%$;&;;;*******&***====&=3=4 ", +" 4oXooo+o##@+@%%$&&&****&+Oo%&=>>====**==>>=*==>>=>>>=&*=*&$*>>>*>===&*=*=====*$#O@%@$==**&&&&;&;&;;%$;$$$$%+$$$$;&;&;***===&=4 ", +" 54221Oo@+$$;$&*&&*&*&**&*=&***&&&**&&$&**&&&==&&&&*$@%&&;$&*=%$*===&&=*****$+#2Xo#<%;$$%$$$$%$%$$$$;&&;$;+%,$;$$;;+%+$$&&&3=4 ", +" X$$$&+$$+$$;$;$$$&&&&=*&&;&==>>-==*=>==&>>==>>>>>>-->=*$&***>&***&&&@%&$$%$$;$@===*;$$;&$%%%%+%%;$&@@@@##@+@%+%@#%3+%,@%@%%+,5 ", +" X@#@+%$+@+$;&$&$&&*&;%+$&&$&%@$$%@@%$$@oO@OOoO@@@%$$%$@11oOO@%%%%%@@oO@@O#O@+@+o#o#oooo@OO@%@%%$$&*;&;&$$;$;***$$3$;;;$$&&&%;5 ", +" 1o@@@o1XX1XoXoo+@#O@@oO@Oo#@%%@@&=*===*&$======%$&*==*==*%@$@@%%@@%%OO%@@o#@#o##@@#oXoooo1Xooo11o#o1oXXoo#ooo#ooXooo#@+$%O%%34 ", +" 522222211Xooo#XoooooO#o%+OO&&*&&*=**=**&*=***==*&***$$&===$$%%$$%%%$O@%@%#+%@@@O@+@@@O#O#oooOooo#@#oXoo##o##O****&;&+&&*&*&****==***=*&&&**&&&***&&&&$$&&&$&*%%&&*$$$$;$&$@@&$%+$;$%+@@+@oo+%%+@+%%@@%$$O#@@@+@#@%+@+@+++%++@@%OOO:X5", +"5XO@@@+@$;$;&**+$;&&$%*=*%&=%$$&&&%&&&&**$%@%$&*%$$$$%%%%%&&%$$%%$&&%oO$*%@+$+@+@++@+@OO@+@@%@@O@%%o+@@@@+%+@+@@@+%+%+@@@%@%O<45", +"5@+++%$+++%$$;&;&***&+*==*&=*===*=$&;&$$&$%%$&**$$&*&$$$&*&$%$$@%$$&$oo$&+@+$+@@$$@O@+@+%@@O@+OOO+@oO#@@+%@%@+@@+@+%+@<@O@%%O,45", +"5+@oo@+@$$$;$;$&&&*&$@&*==*&*==&&=$*&&$$$$&&**&&$&&=**==**&&$$$%@$@&$Oo%$;@+%@++++oX%$%%%@O#O%@#O@+oX#O++++$+%@+@+OO++@O#@++#355", +".,$%++@+$;$;$;*&;&==***=***&=====*&=*&$&*&$$*==**===**==***$$$@@$*$%%@@@@++@@@@+@===;&:$$$**&$$@%@+%@+@++@@OoO@@%+@@#@@@@#@++Oo+$;%@,+@+<@@++OOO++O#####. ", +".;;;$;,$$$;$$$&$$&**=*&&&$&$&&&&&$&**;$$;$%$*****===**&;$;$&&&:&:&:$$,$+$@+@+@+@@##o##+@@##o#@@#@@@#oo@@#oO=>======>>>=**=>>=**=====>>=>->=***========>=*$$+%@+%#@+@@@<@#O#oO@+@#o#oO#O<@+oO@++@@@#o###o#%+@+++%++,++5.", +" oooXooXo#oXoo#XoOo#O##oo#oooo#o#oOO#ooooooo#o#ooOo#o#ooOoOo#####X+@#O#O#O@@O@##@@@@@@#o##O<@###O@@#oo#oooo#oo#oooXo#oooo#++#X. ", +" 22222221112221222222212121242221122112222221222221111Xo1X1XXXXoX1X1212121222211121221221211111221121X112112222212XXXXXXXX1224. ", +" . . . .......5..5.55555555555..555.555555.555555..555.5..5.................... 5 " +}; diff --git a/hacks/intermomentary.c b/hacks/intermomentary.c index 0c0ac4c8..ba5268ab 100644 --- a/hacks/intermomentary.c +++ b/hacks/intermomentary.c @@ -224,8 +224,8 @@ draw_glowpoint(struct state *st, Drawable drawable, float a; unsigned long c; - for (i =- 2; i < 3; i++) { - for (j =- 2; j < 3; j++) { + for (i = -2; i < 3; i++) { + for (j = -2; j < 3; j++) { a = 0.8 - i * i * 0.1 - j * j * 0.1; c = trans_point(st, px+i, py+j, 255, a, f); diff --git a/hacks/link_decc.com b/hacks/link_decc.com index 15ccb75a..571c4f81 100644 --- a/hacks/link_decc.com +++ b/hacks/link_decc.com @@ -40,7 +40,7 @@ $ link/exe=pedal.exe screenhack,pedal,vms_decc_12.opt/opt $ link/exe=penrose.exe screenhack-xlock,penrose,xlockmore,vms_decc_12.opt/opt $ link/exe=pyro.exe screenhack,pyro,vms_decc_12.opt/opt $ link/exe=qix.exe screenhack,qix,vms_decc_12.opt/opt -$ link/exe=rd-bomb.exe screenhack,rd-bombs,vms_decc_12.opt/opt +$ link/exe=rd-bomb.exe screenhack,rd-bomb,vms_decc_12.opt/opt $ link/exe=rocks.exe screenhack,rocks,vms_decc_12.opt/opt $ link/exe=rorschach.exe screenhack,rorschach,vms_decc_12.opt/opt $ link/exe=sierpinski.exe screenhack-xlock,sierpinski,xlockmore,vms_decc_12.opt/opt @@ -91,7 +91,7 @@ $ link/exe=pedal.exe screenhack,pedal,vms_decc.opt/opt $ link/exe=penrose.exe screenhack-xlock,penrose,xlockmore,vms_decc.opt/opt $ link/exe=pyro.exe screenhack,pyro,vms_decc.opt/opt $ link/exe=qix.exe screenhack,qix,vms_decc.opt/opt -$ link/exe=rd-bombs.exe screenhack,rd-bombs,vms_decc.opt/opt +$ link/exe=rd-bomb.exe screenhack,rd-bomb,vms_decc.opt/opt $ link/exe=rocks.exe screenhack,rocks,vms_decc.opt/opt $ link/exe=rorschach.exe screenhack,rorschach,vms_decc.opt/opt $ link/exe=sierpinski.exe screenhack-xlock,sierpinski,xlockmore,vms_decc.opt/opt diff --git a/hacks/m6502.c b/hacks/m6502.c index 705af37c..8361fbd0 100644 --- a/hacks/m6502.c +++ b/hacks/m6502.c @@ -246,7 +246,6 @@ static const char *m6502_defaults [] = { "*file:", "*displaytime: 20", ANALOGTV_DEFAULTS - "*TVContrast: 150", 0 }; diff --git a/hacks/maze.c b/hacks/maze.c index 811aca31..8576386b 100644 --- a/hacks/maze.c +++ b/hacks/maze.c @@ -1477,7 +1477,7 @@ maze_init (Display *dpy_arg, Window window_arg) st->logo_map = xscreensaver_logo (xgwa.screen, xgwa.visual, st->window, xgwa.colormap, bg, &pixels, &npixels, &logo_mask, - xgwa.width > 800); + xgwa.width > 800 || xgwa.height > 800); if (logo_mask) { XSetClipMask (st->dpy, st->logo_gc, logo_mask); XFreePixmap (st->dpy, logo_mask); diff --git a/hacks/maze.man b/hacks/maze.man index cd5afb44..c827da86 100644 --- a/hacks/maze.man +++ b/hacks/maze.man @@ -3,7 +3,7 @@ maze \- an automated X11 demo repeatedly creating and solving a random maze .SH SYNOPSIS .B maze -[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-install] [\-visual \fIvisual\fP] [\-grid\-size \fIpixels\fP] [\-live\-color \fIcolor\fP] [\-dead\-color \fIcolor\fP] [\-solve\-delay \fIusecs\fP] [\-pre\-delay \fIusecs\fP] [\-post\-delay \fIusecs\fP] [\-generator \fIinteger\fP] [\-max\-length \fIinteger\fP] [\-bridge] [\-no\-bridge] +[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-install] [\-visual \fIvisual\fP] [\-grid\-size \fIpixels\fP] [\-live\-color \fIcolor\fP] [\-dead\-color \fIcolor\fP] [\-solve\-delay \fIusecs\fP] [\-pre\-delay \fIusecs\fP] [\-post\-delay \fIusecs\fP] [\-generator \fIinteger\fP] [\-max\-length \fIinteger\fP] [\-fps] .SH DESCRIPTION The \fImaze\fP program creates a "random" maze and then solves it with @@ -27,7 +27,7 @@ or the id number (decimal or hex) of a specific visual. .TP 8 .B \-grid\-size \fIpixels\fP The size of each block of the maze, in pixels; default is 0, meaning -pick a random grid size. +pick a random grid size. Minimum meaningful value is 2. .TP 8 .B \-live\-color \fIcolor\fP The color of the path. @@ -74,14 +74,12 @@ complete. All generators generate mazes with a certain 'characteristic'. See if you can spot them! + +The three algorithms are essentially Kruskal, Prim, and a depth-first +recursive backtracker. .TP 8 .B \-max\-length \fInum\fP Controls the maximum length of walls drawn in one go by generator 1. -.TP 8 -.B \-bridge -.TP 8 -.B \-no\-bridge -Controls whether or not a 'bridge' will appear over the logo. .PP Clicking the mouse in the maze window controls it. .TP 16 diff --git a/hacks/memscroller.c b/hacks/memscroller.c index e3940f8e..d82d16f5 100644 --- a/hacks/memscroller.c +++ b/hacks/memscroller.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2002, 2004, 2006 Jamie Zawinski +/* xscreensaver, Copyright (c) 2002-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -604,7 +604,7 @@ static const char *memscroller_defaults [] = { ".foreground: #00FF00", "*borderSize: 2", -#ifdef HAVE_COCOA +#if defined(HAVE_COCOA) && !defined(USE_IPHONE) ".font1: OCR A Std 192, Lucida Console 192", ".font2: OCR A Std 144, Lucida Console 144", ".font3: OCR A Std 128, Lucida Console 128", diff --git a/hacks/metaballs.c b/hacks/metaballs.c index 0e46de67..02d418ba 100644 --- a/hacks/metaballs.c +++ b/hacks/metaballs.c @@ -62,7 +62,7 @@ static void init_blob(struct state *st, BLOB *blob) static void Execute( struct state *st ) { - unsigned int i, j, k; + int i, j, k; /* clear st->blub array */ for (i = 0; i < st->iWinHeight; ++i) diff --git a/hacks/noseguy.c b/hacks/noseguy.c index 144e6859..108db35c 100644 --- a/hacks/noseguy.c +++ b/hacks/noseguy.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1992-2008 Jamie Zawinski +/* xscreensaver, Copyright (c) 1992-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -16,16 +16,13 @@ #include "screenhack.h" #include "xpm-pixmap.h" -#include +#include "textclient.h" #ifdef HAVE_COCOA # define HAVE_XPM #endif -extern FILE *popen (const char *, const char *); -extern int pclose (FILE *); - -#define font_height(font) (font->ascent + font->descent) +#define font_height(font) (font->ascent + font->descent) struct state { @@ -33,7 +30,6 @@ struct state { Window window; int Width, Height; GC fg_gc, bg_gc, text_fg_gc, text_bg_gc; - char *words; int x, y; XFontStruct *font; @@ -41,7 +37,8 @@ struct state { Pixmap left1, left2, right1, right2; Pixmap left_front, right_front, front, down; - char *program, *orig_program; + char *program; + text_data *tc; int state; /* indicates states: walking or getting passwd */ int first_time; @@ -60,10 +57,11 @@ struct state { int x, y, width, height; } s_rect; - char word_buf[BUFSIZ]; + char words[10240]; + int lines; }; -static char *get_words (struct state *); +static void fill_words (struct state *); static void walk (struct state *, int dir); static void talk (struct state *, int erase); static void talk_1 (struct state *); @@ -326,18 +324,11 @@ think (struct state *st) if (random() & 1) walk(st, FRONT); if (random() & 1) - { - st->words = get_words(st); return 1; - } return 0; } -#define MAXLINES 25 - -#undef BUFSIZ -#define BUFSIZ ((MAXLINES + 1) * 100) - +#define MAXLINES 10 static void talk (struct state *st, int force_erase) @@ -348,8 +339,7 @@ talk (struct state *st, int force_erase) total = 0; register char *p, *p2; - char buf[BUFSIZ], - args[MAXLINES][256]; + char args[MAXLINES][256]; /* clear what we've written */ if (st->talking || force_erase) @@ -373,7 +363,7 @@ talk (struct state *st, int force_erase) } st->talking = 1; walk(st, FRONT); - p = strcpy(buf, st->words); + p = st->words; for (p2 = p; *p2; p2++) if (*p2 == '\t') *p2 = ' '; @@ -450,6 +440,8 @@ talk (struct state *st, int force_erase) st->interval = (total / 15) * 1000; if (st->interval < 2000) st->interval = 2000; st->next_fn = talk_1; + *st->words = 0; + st->lines = 0; } static void @@ -485,74 +477,21 @@ look (struct state *st) static void -init_words (struct state *st) +fill_words (struct state *st) { - st->program = get_string_resource (st->dpy, "program", "Program"); - - if (st->program) /* get stderr on stdout, so it shows up on the window */ + char *p = st->words + strlen(st->words); + while (p < st->words + sizeof(st->words) - 1 && + st->lines < MAXLINES) { - st->orig_program = st->program; - st->program = (char *) malloc (strlen (st->program) + 10); - strcpy (st->program, "( "); - strcat (st->program, st->orig_program); - strcat (st->program, " ) 2>&1"); + char c = textclient_getc (st->tc); + if (c == '\n') + st->lines++; + if (c > 0) + *p++ = c; + else + break; } - - st->words = get_words(st); -} - -static char * -get_words (struct state *st) -{ - FILE *pp; - register char *p = st->word_buf; - - st->word_buf[0] = '\0'; - - if ((pp = popen(st->program, "r"))) - { - while (fgets(p, sizeof(st->word_buf) - strlen(st->word_buf), pp)) - { - if (strlen(st->word_buf) + 1 < sizeof(st->word_buf)) - p = st->word_buf + strlen(st->word_buf); - else - break; - } - (void) pclose(pp); - if (! st->word_buf[0]) - sprintf (st->word_buf, "\"%s\" produced no output!", st->orig_program); - else if (!st->first_time && - (strstr (st->word_buf, ": not found") || - strstr (st->word_buf, ": Not found") || - strstr (st->word_buf, ": command not found") || - strstr (st->word_buf, ": Command not found"))) - switch (random () % 20) - { - case 1: strcat (st->word_buf, "( Get with the st->program, bub. )\n"); - break; - case 2: strcat (st->word_buf, - "( I blow my nose at you, you silly person! ) \n"); break; - case 3: strcat (st->word_buf, - "\nThe resource you want to\nset is `noseguy.program'\n"); - break; - case 4: - strcat(st->word_buf,"\nHelp!! Help!!\nAAAAAAGGGGHHH!! \n\n"); break; - case 5: strcpy (st->word_buf, "You have new mail.\n"); break; - case 6: - strcat(st->word_buf,"( Hello? Are you paying attention? )\n");break; - case 7: - strcat (st->word_buf, "sh: what kind of fool do you take me for? \n"); - break; - } - st->first_time = 0; - p = st->word_buf; - } - else - { - perror(st->program); - } - - return p; + *p = 0; } @@ -562,8 +501,9 @@ static const char *noseguy_defaults [] = { ".foreground: #CCCCCC", "*textForeground: black", "*textBackground: #CCCCCC", - "*fpsSolid: true", + "*fpsSolid: true", "*program: xscreensaver-text --cols 40 | head -n15", + "*usePty: False", ".font: -*-new century schoolbook-*-r-*-*-*-180-*-*-*-*-*-*", 0 }; @@ -596,7 +536,8 @@ noseguy_init (Display *d, Window w) st->Height = xgwa.height + 2; cmap = xgwa.colormap; - init_words(st); + st->program = get_string_resource (st->dpy, "program", "Program"); + st->tc = textclient_open (st->dpy); init_images(st); if (!fontname || !*fontname) @@ -650,6 +591,7 @@ static unsigned long noseguy_draw (Display *dpy, Window window, void *closure) { struct state *st = (struct state *) closure; + fill_words(st); st->next_fn(st); return (st->interval * 1000); } @@ -669,6 +611,9 @@ noseguy_event (Display *dpy, Window window, void *closure, XEvent *event) static void noseguy_free (Display *dpy, Window window, void *closure) { + struct state *st = (struct state *) closure; + textclient_close (st->tc); + free (st); } XSCREENSAVER_MODULE ("NoseGuy", noseguy) diff --git a/hacks/pacman.c b/hacks/pacman.c index 01a83831..226a3cf3 100644 --- a/hacks/pacman.c +++ b/hacks/pacman.c @@ -1558,7 +1558,7 @@ init_pacman (ModeInfo * mi) pp->spriteys = MAX (pp->ys + (pp->ys >> 1) - 1, 1); pp->spritedx = (pp->xs - pp->spritexs) >> 1; pp->spritedy = (pp->ys - pp->spriteys) >> 1; - pp->old_pac_state = chasing; + pp->old_pac_state = ps_chasing; if (!pp->stippledGC) { gcv.foreground = MI_BLACK_PIXEL (mi); diff --git a/hacks/phosphor.c b/hacks/phosphor.c index 233acb6f..b7ec5407 100644 --- a/hacks/phosphor.c +++ b/hacks/phosphor.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1999-2011 Jamie Zawinski +/* xscreensaver, Copyright (c) 1999-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -17,33 +17,12 @@ # include "config.h" #endif /* HAVE_CONFIG_H */ -#include -#include -#include - #ifndef HAVE_COCOA -# define XK_MISCELLANY -# include -# include # include #endif -#ifdef HAVE_UNISTD_H -# include -# include /* for O_RDWR */ -#endif - -#ifdef HAVE_FORKPTY -# include -# ifdef HAVE_PTY_H -# include -# endif -# ifdef HAVE_UTIL_H -# include -# endif -#endif /* HAVE_FORKPTY */ - #include "screenhack.h" +#include "textclient.h" #define FUZZY_BORDER @@ -94,7 +73,6 @@ typedef struct { int scale; int ticks; int mode; - pid_t pid; int escstate; int csiparam[NPAR]; int curparam; @@ -111,32 +89,21 @@ typedef struct { int cursor_x, cursor_y; XtIntervalId cursor_timer; - XtIntervalId pipe_timer; Time cursor_blink; - - FILE *pipe; - XtInputId pipe_id; - Bool input_available_p; - Time subproc_relaunch_delay; - XComposeStatus compose; - Bool meta_sends_esc_p; - Bool swap_bs_del_p; int delay; + Bool pty_p; + + text_data *tc; char last_c; int bk; - Bool meta_done_once; - unsigned int meta_mask; - } p_state; static void capture_font_bits (p_state *state); static p_char *make_character (p_state *state, int c); -static void drain_input (p_state *state); static void char_to_pixmap (p_state *state, p_char *pc, int c); -static void launch_text_generator (p_state *state); /* About font metrics: @@ -188,8 +155,7 @@ phosphor_init (Display *dpy, Window window) /* XSelectInput (dpy, window, state->xgwa.your_event_mask | ExposureMask);*/ state->delay = get_integer_resource (dpy, "delay", "Integer"); - state->meta_sends_esc_p = get_boolean_resource (dpy, "metaSendsESC", "Boolean"); - state->swap_bs_del_p = get_boolean_resource (dpy, "swapBSDEL", "Boolean"); + state->pty_p = get_boolean_resource (dpy, "usePty", "UsePty"); if (!strcasecmp (fontname, "builtin") || !strcasecmp (fontname, "(builtin)")) @@ -220,33 +186,8 @@ phosphor_init (Display *dpy, Window window) state->ticks = STATE_MAX + get_integer_resource (dpy, "ticks", "Integer"); state->escstate = 0; - { - char *s = get_string_resource (dpy, "mode", "Integer"); - state->mode = 0; - if (!s || !*s || !strcasecmp (s, "pipe")) - state->mode = 0; - else if (!strcasecmp (s, "pty")) - state->mode = 1; - else - fprintf (stderr, "%s: mode must be either `pipe' or `pty', not `%s'\n", - progname, s); - -#ifndef HAVE_FORKPTY - fprintf (stderr, "%s: no pty support on this system; using -pipe mode.\n", - progname); - state->mode = 0; -#endif /* HAVE_FORKPTY */ - } - -#if 0 - for (i = 0; i < font->n_properties; i++) - if (font->properties[i].name == XA_FONT) - printf ("font: %s\n", XGetAtomName(dpy, font->properties[i].card32)); -#endif /* 0 */ state->cursor_blink = get_integer_resource (dpy, "cursor", "Time"); - state->subproc_relaunch_delay = - (1000 * get_integer_resource (dpy, "relaunch", "Time")); # ifdef BUILTIN_FONT if (! font) @@ -261,20 +202,6 @@ phosphor_init (Display *dpy, Window window) state->char_height = font->max_bounds.ascent + font->max_bounds.descent; } - state->program = get_string_resource (dpy, "program", "Program"); - - - /* Kludge for MacOS standalone mode: see OSX/SaverRunner.m. */ - { - const char *s = getenv ("XSCREENSAVER_STANDALONE"); - if (s && *s && strcmp(s, "0")) - { - state->mode = 1; - state->program = getenv ("SHELL"); - } - } - - state->grid_width = state->xgwa.width / (state->char_width * state->scale); state->grid_height = state->xgwa.height /(state->char_height * state->scale); state->cells = (p_cell *) calloc (sizeof(p_cell), @@ -361,9 +288,15 @@ phosphor_init (Display *dpy, Window window) set_cursor (state, True); - launch_text_generator (state); /* clear (state);*/ + state->tc = textclient_open (dpy); + textclient_reshape (state->tc, + state->xgwa.width, + state->xgwa.height, + state->grid_width - 1, + state->grid_height - 1); + return state; } @@ -659,8 +592,6 @@ set_cursor (p_state *state, Bool on) } - - static void cursor_off_timer (XtPointer closure, XtIntervalId *id) { @@ -770,7 +701,6 @@ print_char (p_state *state, int c) { p_cell *cell = &state->cells[state->grid_width * state->cursor_y + state->cursor_x]; - int i, start, end; /* Start the cursor fading (in case we don't end up overwriting it.) */ if (cell->state == FLARE || cell->state == NORMAL) @@ -779,12 +709,14 @@ print_char (p_state *state, int c) cell->changed = True; } - if (state->pid) /* Only interpret VT100 sequences if running in pty-mode. - It would be nice if we could just interpret them all - the time, but that would require subprocesses to send - CRLF line endings instead of bare LF, so that's no good. - */ +#ifdef HAVE_FORKPTY + if (state->pty_p) /* Only interpret VT100 sequences if running in pty-mode. + It would be nice if we could just interpret them all + the time, but that would require subprocesses to send + CRLF line endings instead of bare LF, so that's no good. + */ { + int i, start, end; switch (state->escstate) { case 0: @@ -1117,6 +1049,7 @@ print_char (p_state *state, int c) set_cursor (state, True); } else +#endif /* HAVE_FORKPTY */ { if (c == '\t') c = ' '; /* blah. */ @@ -1225,223 +1158,15 @@ static unsigned long phosphor_draw (Display *dpy, Window window, void *closure) { p_state *state = (p_state *) closure; + int c; update_display (state, True); decay (state); - drain_input (state); - return state->delay; -} - - -/* Subprocess. - */ - -static void -subproc_cb (XtPointer closure, int *source, XtInputId *id) -{ - p_state *state = (p_state *) closure; - state->input_available_p = True; -} - - -static void -launch_text_generator (p_state *state) -{ - XtAppContext app = XtDisplayToApplicationContext (state->dpy); - char buf[255]; - const char *oprogram = state->program; - char *program = (char *) malloc (strlen (oprogram) + 50); - - strcpy (program, "( "); - strcat (program, oprogram); - - /* Kludge! Special-case "xscreensaver-text" to tell it how wide - the screen is. We used to do this by just always feeding - `program' through sprintf() and setting the default value to - "xscreensaver-text --cols %d", but that makes things blow up - if someone ever uses a --program that includes a % anywhere. - */ - if (!strcmp (oprogram, "xscreensaver-text")) - sprintf (program + strlen(program), " --cols %d", state->grid_width-1); - - strcat (program, " ) 2>&1"); - -#ifdef HAVE_FORKPTY - if(state->mode == 1) - { - int fd; - struct winsize ws; - - ws.ws_row = state->grid_height - 1; - ws.ws_col = state->grid_width - 2; - ws.ws_xpixel = state->xgwa.width; - ws.ws_ypixel = state->xgwa.height; - - state->pipe = NULL; - if((state->pid = forkpty(&fd, NULL, NULL, &ws)) < 0) - { - /* Unable to fork */ - sprintf (buf, "%.100s: forkpty", progname); - perror(buf); - } - else if(!state->pid) - { - /* This is the child fork. */ - char *av[10]; - int i = 0; - if (putenv("TERM=vt100")) - abort(); - av[i++] = "/bin/sh"; - av[i++] = "-c"; - av[i++] = program; - av[i] = 0; - execvp (av[0], av); - sprintf (buf, "%.100s: %.100s", progname, oprogram); - perror(buf); - exit(1); - } - else - { - /* This is the parent fork. */ - state->pipe = fdopen(fd, "r+"); - state->pipe_id = - XtAppAddInput (app, fileno (state->pipe), - (XtPointer) (XtInputReadMask | XtInputExceptMask), - subproc_cb, (XtPointer) state); - } - } - else -#endif /* HAVE_FORKPTY */ - { - /* don't mess up controlling terminal if someone dumbly does - "-pipe -program tcsh". */ - static int protected_stdin_p = 0; - if (! protected_stdin_p) { - fclose (stdin); - open ("/dev/null", O_RDWR); /* re-allocate fd 0 */ - protected_stdin_p = 1; - } - - if ((state->pipe = popen (program, "r"))) - { - state->pipe_id = - XtAppAddInput (app, fileno (state->pipe), - (XtPointer) (XtInputReadMask | XtInputExceptMask), - subproc_cb, (XtPointer) state); - } - else - { - sprintf (buf, "%.100s: %.100s", progname, program); - perror (buf); - } - } - - free (program); -} + c = textclient_getc (state->tc); + if (c > 0) + print_char (state, c); -static void -relaunch_generator_timer (XtPointer closure, XtIntervalId *id) -{ - p_state *state = (p_state *) closure; - /* if (!state->pipe_timer) abort(); */ - state->pipe_timer = 0; - launch_text_generator (state); -} - - -static void -drain_input (p_state *state) -{ - XtAppContext app = XtDisplayToApplicationContext (state->dpy); - if (state->input_available_p && state->pipe) - { - unsigned char s[2]; - int n = read (fileno (state->pipe), (void *) s, 1); - - if (n == 1) - { - print_char (state, s[0]); - } - else - { - XtRemoveInput (state->pipe_id); - state->pipe_id = 0; - if (state->pid) - { - waitpid(state->pid, NULL, 0); - fclose (state->pipe); - state->pid = 0; - } - else - { - pclose (state->pipe); - } - state->pipe = 0; - - if (state->cursor_x != 0) { /* break line if unbroken */ - print_char (state, '\r'); - print_char (state, '\n'); - } - print_char (state, '\r'); /* blank line */ - print_char (state, '\n'); - - /* Set up a timer to re-launch the subproc in a bit. */ - state->pipe_timer = - XtAppAddTimeOut (app, state->subproc_relaunch_delay, - relaunch_generator_timer, - (XtPointer) state); - } - - state->input_available_p = False; - } -} - - -/* The interpretation of the ModN modifiers is dependent on what keys - are bound to them: Mod1 does not necessarily mean "meta". It only - means "meta" if Meta_L or Meta_R are bound to it. If Meta_L is on - Mod5, then Mod5 is the one that means Meta. Oh, and Meta and Alt - aren't necessarily the same thing. Icepicks in my forehead! - */ -static unsigned int -do_icccm_meta_key_stupidity (Display *dpy) -{ - unsigned int modbits = 0; -# ifndef HAVE_COCOA - int i, j, k; - XModifierKeymap *modmap = XGetModifierMapping (dpy); - for (i = 3; i < 8; i++) - for (j = 0; j < modmap->max_keypermod; j++) - { - int code = modmap->modifiermap[i * modmap->max_keypermod + j]; - KeySym *syms; - int nsyms = 0; - if (code == 0) continue; - syms = XGetKeyboardMapping (dpy, code, 1, &nsyms); - for (k = 0; k < nsyms; k++) - if (syms[k] == XK_Meta_L || syms[k] == XK_Meta_R || - syms[k] == XK_Alt_L || syms[k] == XK_Alt_R) - modbits |= (1 << i); - XFree (syms); - } - XFreeModifiermap (modmap); -# endif /* HAVE_COCOA */ - return modbits; -} - -/* Returns a mask of the bit or bits of a KeyPress event that mean "meta". - */ -static unsigned int -meta_modifier (p_state *state) -{ - if (!state->meta_done_once) - { - /* Really, we are supposed to recompute this if a KeymapNotify - event comes in, but fuck it. */ - state->meta_done_once = True; - state->meta_mask = do_icccm_meta_key_stupidity (state->dpy); - } - return state->meta_mask; + return state->delay; } @@ -1454,34 +1179,9 @@ phosphor_reshape (Display *dpy, Window window, void *closure, if (! changed_p) return; -# if defined(HAVE_FORKPTY) && defined(TIOCSWINSZ) - if (state->pid && state->pipe) - { - /* Tell the sub-process that the screen size has changed. */ - struct winsize ws; - ws.ws_row = state->grid_height - 1; - ws.ws_col = state->grid_width - 2; - ws.ws_xpixel = state->xgwa.width; - ws.ws_ypixel = state->xgwa.height; - ioctl (fileno (state->pipe), TIOCSWINSZ, &ws); - kill (state->pid, SIGWINCH); - } -# endif /* HAVE_FORKPTY && TIOCSWINSZ */ - - - /* If we're running xscreensaver-text, then kill and restart it any - time the window is resized so that it gets an updated --cols arg - right away. But if we're running something else, leave it alone. - */ - if (!strcmp (state->program, "xscreensaver-text")) - { - if (state->pid) - kill (state->pid, SIGTERM); - if (state->pipe) - pclose (state->pipe); - state->input_available_p = False; - relaunch_generator_timer (state, 0); - } + textclient_reshape (state->tc, w, h, + state->grid_width - 1, + state->grid_height - 1); } @@ -1493,33 +1193,7 @@ phosphor_event (Display *dpy, Window window, void *closure, XEvent *event) if (event->xany.type == Expose) update_display (state, False); else if (event->xany.type == KeyPress) - { - KeySym keysym; - unsigned char c = 0; - XLookupString (&event->xkey, (char *) &c, 1, &keysym, - &state->compose); - if (c != 0 && state->pipe) - { - if (!state->swap_bs_del_p) ; - else if (c == 127) c = 8; - else if (c == 8) c = 127; - - /* If meta was held down, send ESC, or turn on the high bit. */ - if (event->xkey.state & meta_modifier (state)) - { - if (state->meta_sends_esc_p) - fputc ('\033', state->pipe); - else - c |= 0x80; - } - - fputc (c, state->pipe); - fflush (state->pipe); - event->xany.type = 0; /* don't interpret this event defaultly. */ - } - return True; - } - + return textclient_putc (state->tc, &event->xkey); return False; } @@ -1528,14 +1202,9 @@ phosphor_free (Display *dpy, Window window, void *closure) { p_state *state = (p_state *) closure; - if (state->pipe_id) - XtRemoveInput (state->pipe_id); - if (state->pipe) - pclose (state->pipe); + textclient_close (state->tc); if (state->cursor_timer) XtRemoveTimeOut (state->cursor_timer); - if (state->pipe_timer) - XtRemoveTimeOut (state->pipe_timer); /* #### there's more to free here */ @@ -1566,9 +1235,9 @@ static const char *phosphor_defaults [] = { "*metaSendsESC: True", "*swapBSDEL: True", #ifdef HAVE_FORKPTY - "*mode: pty", + "*usePty: True", #else /* !HAVE_FORKPTY */ - "*mode: pipe", + "*usePty: False", #endif /* !HAVE_FORKPTY */ 0 }; @@ -1579,8 +1248,8 @@ static XrmOptionDescRec phosphor_options [] = { { "-ticks", ".ticks", XrmoptionSepArg, 0 }, { "-delay", ".delay", XrmoptionSepArg, 0 }, { "-program", ".program", XrmoptionSepArg, 0 }, - { "-pty", ".mode", XrmoptionNoArg, "pty" }, - { "-pipe", ".mode", XrmoptionNoArg, "pipe" }, + { "-pipe", ".usePty", XrmoptionNoArg, "False" }, + { "-pty", ".usePty", XrmoptionNoArg, "True" }, { "-meta", ".metaSendsESC", XrmoptionNoArg, "False" }, { "-esc", ".metaSendsESC", XrmoptionNoArg, "True" }, { "-bs", ".swapBSDEL", XrmoptionNoArg, "False" }, diff --git a/hacks/pong.c b/hacks/pong.c index 411d43a7..025a0c19 100644 --- a/hacks/pong.c +++ b/hacks/pong.c @@ -754,7 +754,6 @@ static const char *pong_defaults [] = { "*noise: 0.04", "*clock: false", ANALOGTV_DEFAULTS - "*TVContrast: 150", 0 }; diff --git a/hacks/screenhack.c b/hacks/screenhack.c index 9e1d473b..52344a35 100644 --- a/hacks/screenhack.c +++ b/hacks/screenhack.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1992-2011 Jamie Zawinski +/* xscreensaver, Copyright (c) 1992-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -575,7 +575,7 @@ run_screenhack_table (Display *dpy, #ifdef DEBUG_PAIR if (window2) ft->free_cb (dpy, window2, closure2); - if (window2) fps_free (fpst2); + if (fpst2) fps_free (fpst2); #endif } diff --git a/hacks/t3d.c b/hacks/t3d.c index cbd815cd..08df8713 100644 --- a/hacks/t3d.c +++ b/hacks/t3d.c @@ -895,8 +895,9 @@ t3d_event (Display *dpy, Window window, void *closure, XEvent *event) struct state *st = (struct state *) closure; if (event->type == KeyPress) { - KeySym kpr=XKeycodeToKeysym(st->dpy,event->xkey.keycode,0); - + KeySym keysym; + char kpr = 0; + XLookupString (&event->xkey, &kpr, 1, &keysym, 0); switch (kpr) { case 's': case 'S': diff --git a/hacks/triangle.c b/hacks/triangle.c index 3f413432..48a8b20d 100644 --- a/hacks/triangle.c +++ b/hacks/triangle.c @@ -107,7 +107,7 @@ draw_atriangle(ModeInfo * mi, XPoint * p, int y_0, int y_1, int y_2, double dinv Window window = MI_WINDOW(mi); GC gc = MI_GC(mi); - if (MI_NPIXELS(mi) > 2) { /* color */ + if (MI_NCOLORS(mi) > 2) { /* color */ int dmax, dmin; long color; @@ -119,11 +119,11 @@ draw_atriangle(ModeInfo * mi, XPoint * p, int y_0, int y_1, int y_2, double dinv if (dmax == 0) { color = BLUE; } else { - color = MI_NPIXELS(mi) - - (int) ((double) MI_NPIXELS(mi) / M_PI_2 * atan(dinv * (dmax - dmin))); + color = MI_NCOLORS(mi) - + (int) ((double) MI_NCOLORS(mi) / M_PI_2 * atan(dinv * (dmax - dmin))); } - XSetForeground(display, gc, MI_PIXEL(mi, color % MI_NPIXELS(mi))); + XSetForeground(display, gc, mi->colors[color % MI_NCOLORS(mi)].pixel); XFillPolygon(display, window, gc, p, 3, Convex, CoordModeOrigin); } else { /* mono */ diff --git a/hacks/vidwhacker b/hacks/vidwhacker index 6cd24f30..c7cd5d47 100755 --- a/hacks/vidwhacker +++ b/hacks/vidwhacker @@ -21,7 +21,7 @@ use diagnostics; use strict; my $progname = $0; $progname =~ s@.*/@@g; -my $version = q{ $Revision: 1.30 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/; +my $version = q{ $Revision: 1.31 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/; my $verbose = 0; my $use_stdin = 0; @@ -326,6 +326,7 @@ sub get_ppm() { my $fn = `$cmd`; $fn =~ s/\n$//s; error ("didn't get a file?") if ($fn eq ""); + $fn = "$imagedir/$fn" unless ($fn =~ m@^/@s); print STDERR "$progname: selected file $fn\n" if ($verbose > 1); diff --git a/hacks/webcollage b/hacks/webcollage index 9bfe771f..b4991c85 100755 --- a/hacks/webcollage +++ b/hacks/webcollage @@ -1,6 +1,6 @@ #!/usr/bin/perl -w # -# webcollage, Copyright (c) 1999-2011 by Jamie Zawinski +# webcollage, Copyright (c) 1999-2012 by Jamie Zawinski # This program decorates the screen with random images from the web. # One satisfied customer described it as "a nonstop pop culture brainbath." # @@ -60,7 +60,7 @@ use bytes; # Larry can take Unicode and shove it up his ass sideways. my $progname = $0; $progname =~ s@.*/@@g; -my $version = q{ $Revision: 1.156 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/; +my $version = q{ $Revision: 1.158 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/; my $copyright = "WebCollage $version, Copyright (c) 1999-2011" . " Jamie Zawinski \n" . " http://www.jwz.org/webcollage/\n"; @@ -77,7 +77,7 @@ my @search_methods = ( 24, "googlephotos", \&pick_from_google_image_photos, 3, "yahoorand", \&pick_from_yahoo_random_link, # This one doesn't work very well: too many non-img links. - 0, "twitter", \&pick_from_twitter_images, + 0, "twitter", \&pick_from_twitter_images, # This is a cute way to search for a certain webcams. # Not included in default methods, since these images @@ -230,6 +230,7 @@ my %warningless_sites = ( "ljplus.ru" => 1, "yandex.ru" => 1, "imgur.com" => 1, + "yfrog.com" => 1, "yimg.com" => 1, # This is where dailynews.yahoo.com stores "eimg.com" => 1, # its images, so pick_from_yahoo_news_text() @@ -1974,6 +1975,8 @@ sub pick_from_twitpic_images($) { $img = $src; + $img = "http:$img" if ($img =~ m@^//@s); # Oh come on + # Sometimes these images are hosted on twitpic, sometimes on Amazon. if ($img =~ m@^/@) { $base =~ s@^(https?://[^/]+)/.*@$1@s; @@ -2004,9 +2007,14 @@ sub pick_from_twitpic_images($) { # of images only updates once a minute; so we'll remember the last N entries # on it and randomly select from those, to get a wider variety each time. -my $twitter_img_url = "http://twitter.com/statuses/public_timeline.rss"; +my $twitter_img_url = "http://api.twitter.com/1/statuses/" . + "public_timeline.json" . + "?include_entities=true" . + "&include_rts=true" . + "&count=200"; my $twitter_cache_size = 1000; + my @twitter_cache = (); # fifo, for ordering by age my %twitter_cache = (); # hash, for detecting dups @@ -2018,30 +2026,30 @@ sub pick_from_twitter_images($) { $last_search = $twitter_img_url; # for warnings my ( $base, $body ) = get_document ($twitter_img_url, undef, $timeout); - # Update the cache. if ($body) { - $body =~ s/\n/ /gs; - $body =~ s/(([^<>]*)@si); - my $page = html_unquote ($1); + my ($name) = m@"screen_name":"([^\"]+)"@si; + my ($img) = m@"media_url":"([^\"]+)"@si; + my ($page) = m@"display_url":"([^\"]+)"@si; + next unless ($name && $img && $page); + foreach ($img, $page) { + s/\\//gs; + $_ = "http://$_" unless (m/^http/si); + } next if ($twitter_cache{$page}); # already have it - my ($title) = m@]*>(.*?)@si; - next unless $title; - - my ($url) = ($title =~ m@\b(https?://[^\s\[\]()<>\"\']+[a-z\d/])@si); - next unless $url; - - LOG ($verbose_filter, " candidate: $page - $url"); + LOG ($verbose_filter, " candidate: $page - $img"); push @twitter_cache, $page; - $twitter_cache{$page} = $url; + $twitter_cache{$page} = $img; } } @@ -2071,21 +2079,7 @@ sub pick_from_twitter_images($) { $suppress_audit = 1; - my ( $base2, $body2 ) = get_document ($url, $base, $timeout); - - if (!$base2 || !$body2) { - $body2 = undef; - return (); - } - - my $img = pick_image_from_body ($base2, $body2); - $body2 = undef; - - if ($img) { - return ($base2, $img); - } else { - return (); - } + return ($page, $url); } @@ -2132,7 +2126,7 @@ sub pick_from_flickr_recent($) { $page = html_unquote ($page); $thumb = html_unquote ($thumb); - next unless ($thumb =~ m@^http://farm\d*\.static\.flickr\.com/@); + next unless ($thumb =~ m@^http://farm\d*\.static\.?flickr\.com/@); my $base = "http://www.flickr.com/"; $page =~ s@^/@$base@; @@ -2272,9 +2266,8 @@ sub get_driftnet_file($) { error ("\$driftnet_dir unset?") unless ($driftnet_dir); my $id = $driftnet_magic; - my $re = qr/$driftnet_dir/; error ("$id: $file not in $driftnet_dir?") - unless ($file =~ m@^$re@o); + unless ($file =~ m@^\Q$driftnet_dir@o); open (my $in, '<', $file) || error ("$id: $file: $!"); my $body = ''; @@ -2343,6 +2336,7 @@ sub pick_from_local_dir($) { my $v = ($verbose_exec ? "-v" : ""); my $pick = `xscreensaver-getimage-file $v "$dir"`; + $pick =~ s/\s+$//s; $pick = "$dir/$pick" unless ($pick =~ m@^/@s); # relative path LOG ($verbose_load, "picked file $pick ($id)"); @@ -2356,9 +2350,8 @@ sub get_local_file($) { error ("\$local_dir unset?") unless ($local_dir); my $id = $local_magic; - my $re = qr/$local_dir/; error ("$id: $file not in $local_dir?") - unless ($file =~ m@^$re@o); + unless ($file =~ m@^\Q$local_dir@o); open (my $in, '<', $file) || error ("$id: $file: $!"); local $/ = undef; # read entire file diff --git a/hacks/whirlygig.c b/hacks/whirlygig.c index 95108684..e5eb9d55 100644 --- a/hacks/whirlygig.c +++ b/hacks/whirlygig.c @@ -307,6 +307,7 @@ static int preen(int current, int max) { return(current); } +#if 0 static void smoothen(struct state *st, int x, int lastx, int y, int lasty, int size, int last_color, XColor *colors, Display *dpy, Window window, GC bgc, int screen, struct info *info) { @@ -327,6 +328,7 @@ smoothen(struct state *st, int x, int lastx, int y, int lasty, int size, int las smoothen(st, newx, x, newy, y, size, last_color, st->colors, st->dpy, st->window, st->bgc, st->screen, st->info); } } +#endif static void * diff --git a/hacks/xjack.c b/hacks/xjack.c index 55134d91..1765243c 100644 --- a/hacks/xjack.c +++ b/hacks/xjack.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1997-2008 Jamie Zawinski +/* xscreensaver, Copyright (c) 1997-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -72,6 +72,8 @@ xjack_reshape (Display *dpy, Window window, void *closure, if (st->right > st->columns) st->right = st->columns; if (st->left > st->columns-20) st->left = st->columns-20; if (st->left < 0) st->left = 0; + + XClearWindow (st->dpy, st->window); } @@ -87,6 +89,12 @@ xjack_init (Display *dpy, Window window) st->s = source; st->delay = get_integer_resource (st->dpy, "delay", "Integer"); fontname = get_string_resource (st->dpy, "font", "Font"); + + XGetWindowAttributes (st->dpy, st->window, &st->xgwa); + + if (st->xgwa.width <= 480) + fontname = "-*-courier-medium-r-*-*-*-180-*-*-m-*-*-*"; + st->font = XLoadQueryFont (st->dpy, fontname); if (!st->font) @@ -102,8 +110,6 @@ xjack_init (Display *dpy, Window window) exit(1); } - XGetWindowAttributes (st->dpy, st->window, &st->xgwa); - gcv.font = st->font->fid; gcv.foreground = get_pixel_resource (st->dpy, st->xgwa.colormap, "foreground", "Foreground"); diff --git a/hacks/xlockmore.h b/hacks/xlockmore.h index 5d2a1a1d..3eeae789 100644 --- a/hacks/xlockmore.h +++ b/hacks/xlockmore.h @@ -1,5 +1,5 @@ /* xlockmore.h --- xscreensaver compatibility layer for xlockmore modules. - * xscreensaver, Copyright (c) 1997-2011 Jamie Zawinski + * xscreensaver, Copyright (c) 1997-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -29,19 +29,6 @@ ERROR! Sorry, xlockmore.h requires ANSI C (gcc, for example.) #include "screenhackI.h" #include "xlockmoreI.h" -#ifdef USE_GL - -# ifdef HAVE_COCOA -# include -# include -# else /* !HAVE_COCOA -- real Xlib */ -# include -# include -# endif /* !HAVE_COCOA */ - -# define FreeAllGL(dpy) /* */ -#endif /* USE_GL */ - # define ENTRYPOINT static /* Accessor macros for the ModeInfo structure @@ -102,6 +89,8 @@ ERROR! Sorry, xlockmore.h requires ANSI C (gcc, for example.) #define MI_CLEARWINDOW(mi) XClearWindow(MI_DISPLAY(mi), MI_WINDOW(mi)) +#define FreeAllGL(dpy) /* */ + /* Some other utility macros. */ #define SINF(n) ((float)sin((double)(n))) diff --git a/hacks/xlockmoreI.h b/hacks/xlockmoreI.h index 483bef80..ecf93094 100644 --- a/hacks/xlockmoreI.h +++ b/hacks/xlockmoreI.h @@ -1,5 +1,5 @@ /* xlockmore.h --- xscreensaver compatibility layer for xlockmore modules. - * xscreensaver, Copyright (c) 1997-2011 Jamie Zawinski + * xscreensaver, Copyright (c) 1997-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -41,13 +41,23 @@ typedef struct ModeInfo ModeInfo; # endif /* !HAVE_MESA_GL */ # ifdef HAVE_COCOA -# include +# ifndef USE_IPHONE +# include +# include +# endif # else # include +# include # include # endif +# ifdef HAVE_JWZGLES +# include "jwzgles.h" +# endif /* HAVE_JWZGLES */ + + extern GLXContext *init_GL (ModeInfo *); + extern void xlockmore_reset_gl_state(void); extern void clear_gl_error (void); extern void check_gl_error (const char *type); diff --git a/hacks/xmatrix.c b/hacks/xmatrix.c index 94c1b07e..ba467049 100644 --- a/hacks/xmatrix.c +++ b/hacks/xmatrix.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1999, 2001 Jamie Zawinski +/* xscreensaver, Copyright (c) 1999-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -54,6 +54,7 @@ #endif #include "screenhack.h" +#include "textclient.h" #include "xpm-pixmap.h" #include #include @@ -64,6 +65,10 @@ # define DO_XBM /* only do mono bitmaps under real X11 */ #endif +#ifndef HAVE_COCOA +# include +#endif + #if defined(HAVE_GDK_PIXBUF) || defined(HAVE_XPM) # include "images/matrix1.xpm" # include "images/matrix2.xpm" @@ -78,21 +83,6 @@ # include "images/matrix2b.xbm" #endif /* DO_XBM */ -#ifndef HAVE_COCOA -# include -# include -#endif - -#ifdef HAVE_FORKPTY -# include -# ifdef HAVE_PTY_H -# include -# endif -# ifdef HAVE_UTIL_H -# include -# endif -#endif /* HAVE_FORKPTY */ - #define CHAR_COLS 16 #define CHAR_ROWS 13 #define CHAR_MAPS 3 @@ -201,13 +191,8 @@ typedef struct { m_mode mode; m_mode def_mode; /* Mode to return to after trace etc. */ - pid_t pid; - FILE *pipe; - XtInputId pipe_id; - Bool input_available_p; - Time subproc_relaunch_delay; + text_data *tc; char buf [BUF_SIZE*2+1]; /* ring buffer */ - Bool do_fill_buff; int buf_done; int buf_pos; @@ -331,52 +316,13 @@ flip_images (m_state *state, Bool flipped_p) } } -static void -subproc_cb (XtPointer closure, int *source, XtInputId *id) -{ - m_state *state = (m_state *) closure; - state->input_available_p = True; -} - -static void -launch_text_generator (m_state *state) -{ - XtAppContext app = XtDisplayToApplicationContext (state->dpy); - char *oprogram = get_string_resource (state->dpy, "program", "Program"); - char *program = (char *) malloc (strlen (oprogram) + 10); - strcpy (program, "( "); - strcat (program, oprogram); - strcat (program, " ) 2>&1"); - - if ((state->pipe = popen (program, "r"))) - { - state->pipe_id = - XtAppAddInput (app, fileno (state->pipe), - (XtPointer) (XtInputReadMask | XtInputExceptMask), - subproc_cb, (XtPointer) state); - } - else - { - perror (program); - } -} - - -static void -relaunch_generator_timer (XtPointer closure, XtIntervalId *id) -{ - m_state *state = (m_state *) closure; - launch_text_generator (state); -} /* When the subprocess has generated some output, this reads as much as it can into s->buf at s->buf_tail. */ - static void fill_input (m_state *s) { - XtAppContext app = XtDisplayToApplicationContext (s->dpy); int n = 0; int loadBytes; if(s->buf_done > s->buf_pos){ @@ -385,14 +331,14 @@ fill_input (m_state *s) else{ loadBytes = ((BUF_SIZE - s->buf_pos) + s->buf_done) - 1; } - if (! s->pipe) return; - if (! s->input_available_p) return; - s->input_available_p = False; + + if (!s->tc) + return; if (loadBytes > 0){ - n = read (fileno (s->pipe), - (void *) (s->buf+s->buf_pos), - loadBytes); + char c = textclient_getc (s->tc); + n = (c > 0 ? 1 : -1); + s->buf [s->buf_pos] = c; } if (n > 0) { @@ -410,20 +356,10 @@ fill_input (m_state *s) /* Couldn't read anything from the buffer */ /* Assume EOF has been reached, so start again */ s->do_fill_buff = True; - XtRemoveInput (s->pipe_id); - s->pipe_id = 0; - pclose (s->pipe); - s->pipe = 0; - - /* Set up a timer to re-launch the subproc in a bit. */ - XtAppAddTimeOut (app, s->subproc_relaunch_delay, - relaunch_generator_timer, - (XtPointer) s); } } - static void cursor_on_timer (XtPointer closure, XtIntervalId *id); static void cursor_off_timer (XtPointer closure, XtIntervalId *id); @@ -815,7 +751,7 @@ xmatrix_init (Display *dpy, Window window) set_mode (state, ASCII); state->def_mode = ASCII; state->use_pipe_p = True; - launch_text_generator (state); + state->tc = textclient_open (dpy); } else if (!mode || !*mode || !strcasecmp(mode, "matrix")) set_mode (state, MATRIX); @@ -1768,6 +1704,12 @@ xmatrix_reshape (Display *dpy, Window window, void *closure, free (state->feeders); state->feeders = nfeeders; } + if (state->tc) + textclient_reshape (state->tc, + state->xgwa.width, + state->xgwa.height, + state->grid_width - 2, + state->grid_height - 1); } static Bool @@ -1848,7 +1790,8 @@ static void xmatrix_free (Display *dpy, Window window, void *closure) { m_state *state = (m_state *) closure; - + if (state->tc) + textclient_close (state->tc); if (state->cursor_timer) XtRemoveTimeOut (state->cursor_timer); @@ -1871,6 +1814,7 @@ static const char *xmatrix_defaults [] = { "*trace: True", "*knockKnock: True", "*usePipe: False", + "*usePty: False", "*program: xscreensaver-text", "*geometry: 800x600", 0 diff --git a/po/POTFILES.in b/po/POTFILES.in index aad7f4c8..2adfd34e 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,4 +1,4 @@ -# Auto-generated: Wed Sep 28 21:16:40 PDT 2011 +# Auto-generated: Sun May 20 16:02:50 PDT 2012 driver/demo-Gtk-conf.c driver/demo-Gtk-support.c driver/demo-Gtk-widgets.c diff --git a/utils/Makefile.in b/utils/Makefile.in index cbd73da0..95ce08a7 100644 --- a/utils/Makefile.in +++ b/utils/Makefile.in @@ -105,15 +105,15 @@ INCLUDES = $(INCLUDES_1) @INCLUDES@ SRCS = alpha.c colors.c fade.c grabscreen.c grabclient.c hsv.c \ overlay.c resources.c spline.c usleep.c visual.c \ visual-gl.c xmu.c logo.c yarandom.c erase.c \ - xshm.c xdbe.c colorbars.c minixpm.c + xshm.c xdbe.c colorbars.c minixpm.c textclient.c OBJS = alpha.o colors.o fade.o grabscreen.o grabclient.o hsv.o \ overlay.o resources.o spline.o usleep.o visual.o \ visual-gl.o xmu.o logo.o yarandom.o erase.o \ - xshm.o xdbe.o colorbars.o minixpm.o + xshm.o xdbe.o colorbars.o minixpm.o textclient.o HDRS = alpha.h colors.h fade.h grabscreen.h hsv.h resources.h \ spline.h usleep.h utils.h version.h visual.h vroot.h xmu.h \ yarandom.h erase.h xshm.h xdbe.h colorbars.h minixpm.h \ - xscreensaver-intl.h + xscreensaver-intl.h textclient.h STAR = * LOGOS = images/$(STAR).xpm \ images/$(STAR).png \ @@ -279,6 +279,10 @@ resources.o: $(srcdir)/utils.h spline.o: ../config.h spline.o: $(srcdir)/spline.h spline.o: $(srcdir)/utils.h +textclient.o: ../config.h +textclient.o: $(srcdir)/resources.h +textclient.o: $(srcdir)/textclient.h +textclient.o: $(srcdir)/utils.h usleep.o: ../config.h visual-gl.o: ../config.h visual-gl.o: $(srcdir)/resources.h diff --git a/utils/compile_axp.com b/utils/compile_axp.com index 1050f1b6..74581415 100644 --- a/utils/compile_axp.com +++ b/utils/compile_axp.com @@ -11,6 +11,7 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) MINIXPM.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) OVERLAY.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) RESOURCES.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) SPLINE.C +$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) TEXTCLIENT.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) USLEEP.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VISUAL.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VISUAL-GL.C diff --git a/utils/compile_decc.com b/utils/compile_decc.com index 4cd7c408..f2a38af7 100644 --- a/utils/compile_decc.com +++ b/utils/compile_decc.com @@ -11,6 +11,7 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) MINIXPM.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) OVERLAY.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) RESOURCES.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) SPLINE.C +$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) TEXTCLIENT.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) USLEEP.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VISUAL.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VISUAL-GL.C diff --git a/utils/grabclient.c b/utils/grabclient.c index 45053e9a..a0a19f34 100644 --- a/utils/grabclient.c +++ b/utils/grabclient.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1992-2011 Jamie Zawinski +/* xscreensaver, Copyright (c) 1992-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -693,6 +693,14 @@ load_random_image_1 (Screen *screen, Window window, Drawable drawable, Bool done = False; XRectangle geom_ret_2; char *name_ret_2 = 0; + +# ifdef USE_IPHONE + /* Currently, only screen-grabbing is implemented, not loading of + images from the iPhone Photo Library. See osxgrabscreen.m. + */ + deskp = True; + filep = False; +# endif if (!drawable) abort(); @@ -739,10 +747,11 @@ load_random_image_1 (Screen *screen, Window window, Drawable drawable, } if (deskp && !done) { - osx_grab_desktop_image (screen, window, drawable); - if (name_ret) - *name_ret = strdup ("desktop"); - done = True; + if (osx_grab_desktop_image (screen, window, drawable, &geom_ret_2)) { + if (name_ret) + *name_ret = strdup ("desktop"); + done = True; + } } if (! done) diff --git a/utils/grabscreen.h b/utils/grabscreen.h index 2f680e0f..97c46a77 100644 --- a/utils/grabscreen.h +++ b/utils/grabscreen.h @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1992-2006 Jamie Zawinski +/* xscreensaver, Copyright (c) 1992-2012 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -86,7 +86,8 @@ extern void grabscreen_verbose (void); #ifdef HAVE_COCOA /* Don't use these: internal interface of grabclient.c. */ -extern void osx_grab_desktop_image (Screen *, Window, Drawable); +extern Bool osx_grab_desktop_image (Screen *, Window, Drawable, + XRectangle *geom_ret); extern Bool osx_load_image_file (Screen *, Window, Drawable, const char *filename, XRectangle *geom_ret); #endif /* HAVE_COCOA */ diff --git a/utils/textclient.c b/utils/textclient.c new file mode 100644 index 00000000..ed2997e0 --- /dev/null +++ b/utils/textclient.c @@ -0,0 +1,502 @@ +/* xscreensaver, Copyright (c) 2012 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + * + * Running programs under a pipe or pty and returning bytes from them. + * Uses these X resources: + * + * program: What to run. Usually "xscreensaver-text". + * relaunchDelay: secs How long after the command dies before restarting. + * usePty: bool Whether to run the command interactively. + * metaSendsESC: bool Whether to send Alt-x as ESC x in pty-mode. + * swapBSDEL: bool Swap Backspace and Delete in pty-mode. + */ + +#include "utils.h" + +#ifndef USE_IPHONE /* whole file -- see OSX/iostextclient.m */ + +#include "textclient.h" +#include "resources.h" + +#ifndef HAVE_COCOA +# define XK_MISCELLANY +# include +# include +# include +#endif + +#include + +#include +#include + +#ifdef HAVE_UNISTD_H +# include +# include /* for O_RDWR */ +#endif + +#ifdef HAVE_FORKPTY +# include +# ifdef HAVE_PTY_H +# include +# endif +# ifdef HAVE_UTIL_H +# include +# endif +#endif /* HAVE_FORKPTY */ + +/*#define DEBUG*/ + +extern const char *progname; + +struct text_data { + Display *dpy; + char *program; + int pix_w, pix_h, char_w, char_h; + + Bool pty_p; + XtIntervalId pipe_timer; + FILE *pipe; + pid_t pid; + XtInputId pipe_id; + Bool input_available_p; + Time subproc_relaunch_delay; + XComposeStatus compose; + + Bool meta_sends_esc_p; + Bool swap_bs_del_p; + Bool meta_done_once; + unsigned int meta_mask; + + const char *out_buffer; + int out_column; +}; + + +static void +subproc_cb (XtPointer closure, int *source, XtInputId *id) +{ + text_data *d = (text_data *) closure; +# ifdef DEBUG + if (! d->input_available_p) + fprintf (stderr, "%s: textclient: input available\n", progname); +# endif + d->input_available_p = True; +} + + +static void +launch_text_generator (text_data *d) +{ + XtAppContext app = XtDisplayToApplicationContext (d->dpy); + char buf[255]; + const char *oprogram = d->program; + char *program = (char *) malloc (strlen (oprogram) + 50); + + strcpy (program, "( "); + strcat (program, oprogram); + + /* Kludge! Special-case "xscreensaver-text" to tell it how wide + the screen is. We used to do this by just always feeding + `program' through sprintf() and setting the default value to + "xscreensaver-text --cols %d", but that makes things blow up + if someone ever uses a --program that includes a % anywhere. + */ + if (!strcmp (oprogram, "xscreensaver-text")) + sprintf (program + strlen(program), " --cols %d", d->char_w); + + strcat (program, " ) 2>&1"); + +# ifdef DEBUG + fprintf (stderr, "%s: textclient: launch %s: %s\n", progname, + (d->pty_p ? "pty" : "pipe"), program); +# endif + +#ifdef HAVE_FORKPTY + if (d->pty_p) + { + int fd; + struct winsize ws; + + ws.ws_col = d->char_w; + ws.ws_row = d->char_h; + ws.ws_xpixel = d->pix_w; + ws.ws_ypixel = d->pix_h; + + d->pipe = NULL; + if ((d->pid = forkpty(&fd, NULL, NULL, &ws)) < 0) + { + /* Unable to fork */ + sprintf (buf, "%.100s: forkpty", progname); + perror (buf); + } + else if (!d->pid) + { + /* This is the child fork. */ + char *av[10]; + int i = 0; + if (putenv ("TERM=vt100")) + abort(); + av[i++] = "/bin/sh"; + av[i++] = "-c"; + av[i++] = program; + av[i] = 0; + execvp (av[0], av); + sprintf (buf, "%.100s: %.100s", progname, oprogram); + perror (buf); + exit (1); + } + else + { + /* This is the parent fork. */ + d->pipe = fdopen (fd, "r+"); + d->pipe_id = + XtAppAddInput (app, fileno (d->pipe), + (XtPointer) (XtInputReadMask | XtInputExceptMask), + subproc_cb, (XtPointer) d); +# ifdef DEBUG + fprintf (stderr, "%s: textclient: pid = %d\n", progname, d->pid); +# endif + } + } + else +#endif /* HAVE_FORKPTY */ + { + /* don't mess up controlling terminal on "-pipe -program tcsh". */ + static int protected_stdin_p = 0; + if (! protected_stdin_p) { + fclose (stdin); + open ("/dev/null", O_RDWR); /* re-allocate fd 0 */ + protected_stdin_p = 1; + } + + if ((d->pipe = popen (program, "r"))) + { + d->pipe_id = + XtAppAddInput (app, fileno (d->pipe), + (XtPointer) (XtInputReadMask | XtInputExceptMask), + subproc_cb, (XtPointer) d); +# ifdef DEBUG + fprintf (stderr, "%s: textclient: popen\n", progname); +# endif + } + else + { + sprintf (buf, "%.100s: %.100s", progname, program); + perror (buf); + } + } + + free (program); +} + + +static void +relaunch_generator_timer (XtPointer closure, XtIntervalId *id) +{ + text_data *d = (text_data *) closure; + /* if (!d->pipe_timer) abort(); */ + d->pipe_timer = 0; +# ifdef DEBUG + fprintf (stderr, "%s: textclient: launch timer fired\n", progname); +# endif + launch_text_generator (d); +} + + +void +textclient_reshape (text_data *d, + int pix_w, int pix_h, + int char_w, int char_h) +{ +# if defined(HAVE_FORKPTY) && defined(TIOCSWINSZ) + + d->pix_w = pix_w; + d->pix_h = pix_h; + d->char_w = char_w; + d->char_h = char_h; + +# ifdef DEBUG + fprintf (stderr, "%s: textclient: reshape: %dx%d, %dx%d\n", progname, + pix_w, pix_h, char_w, char_h); +# endif + + if (d->pid && d->pipe) + { + /* Tell the sub-process that the screen size has changed. */ + struct winsize ws; + ws.ws_col = char_w; + ws.ws_row = char_h; + ws.ws_xpixel = pix_w; + ws.ws_ypixel = pix_h; + ioctl (fileno (d->pipe), TIOCSWINSZ, &ws); + kill (d->pid, SIGWINCH); + } +# endif /* HAVE_FORKPTY && TIOCSWINSZ */ + + + /* If we're running xscreensaver-text, then kill and restart it any + time the window is resized so that it gets an updated --cols arg + right away. But if we're running something else, leave it alone. + */ + if (!strcmp (d->program, "xscreensaver-text")) + { + if (d->pid) + kill (d->pid, SIGTERM); + if (d->pipe_id) + XtRemoveInput (d->pipe_id); + if (d->pipe) + pclose (d->pipe); + d->input_available_p = False; + relaunch_generator_timer (d, 0); + } +} + + +text_data * +textclient_open (Display *dpy) +{ + text_data *d = (text_data *) calloc (1, sizeof (*d)); + +# ifdef DEBUG + fprintf (stderr, "%s: textclient: init\n", progname); +# endif + + d->dpy = dpy; + + if (get_boolean_resource (dpy, "usePty", "UsePty")) + { +# ifdef HAVE_FORKPTY + d->pty_p = True; +# else + fprintf (stderr, + "%s: no pty support on this system; using a pipe instead.\n", + progname); +# endif + } + + d->subproc_relaunch_delay = + (1000 * get_integer_resource (dpy, "relaunchDelay", "Time")); + + d->meta_sends_esc_p = get_boolean_resource (dpy, "metaSendsESC", "Boolean"); + d->swap_bs_del_p = get_boolean_resource (dpy, "swapBSDEL", "Boolean"); + + d->program = get_string_resource (dpy, "program", "Program"); + + +# ifdef HAVE_FORKPTY + /* Kludge for MacOS standalone mode: see OSX/SaverRunner.m. */ + { + const char *s = getenv ("XSCREENSAVER_STANDALONE"); + if (s && *s && strcmp(s, "0")) + { + d->pty_p = 1; + d->program = strdup (getenv ("SHELL")); + } + } +# endif + + launch_text_generator (d); + + return d; +} + + +void +textclient_close (text_data *d) +{ +# ifdef DEBUG + fprintf (stderr, "%s: textclient: free\n", progname); +# endif + + if (d->program) + free (d->program); + if (d->pipe_id) + XtRemoveInput (d->pipe_id); + if (d->pipe) + pclose (d->pipe); + if (d->pipe_timer) + XtRemoveTimeOut (d->pipe_timer); + memset (d, 0, sizeof (*d)); + free (d); +} + +int +textclient_getc (text_data *d) +{ + XtAppContext app = XtDisplayToApplicationContext (d->dpy); + int ret = -1; + + if (XtAppPending (app) & (XtIMTimer|XtIMAlternateInput)) + XtAppProcessEvent (app, XtIMTimer|XtIMAlternateInput); + + if (d->out_buffer && *d->out_buffer) + { + ret = *d->out_buffer; + d->out_buffer++; + } + else if (d->input_available_p && d->pipe) + { + unsigned char s[2]; + int n = read (fileno (d->pipe), (void *) s, 1); + if (n > 0) + ret = s[0]; + else /* EOF */ + { + if (d->pipe_id) + XtRemoveInput (d->pipe_id); + d->pipe_id = 0; + + if (d->pid) + { +# ifdef DEBUG + fprintf (stderr, "%s: textclient: waitpid %d\n", + progname, d->pid); +# endif + waitpid (d->pid, NULL, 0); + fclose (d->pipe); + d->pid = 0; + } + else + { +# ifdef DEBUG + fprintf (stderr, "%s: textclient: pclose\n", progname); +# endif + pclose (d->pipe); + } + d->pipe = 0; + + if (d->out_column > 0) + { +# ifdef DEBUG + fprintf (stderr, "%s: textclient: adding blank line at EOF\n", + progname); +# endif + d->out_buffer = "\r\n\r\n"; + } + +# ifdef DEBUG + fprintf (stderr, "%s: textclient: relaunching in %d\n", progname, + (int) d->subproc_relaunch_delay); +# endif + d->pipe_timer = + XtAppAddTimeOut (app, d->subproc_relaunch_delay, + relaunch_generator_timer, + (XtPointer) d); + } + d->input_available_p = False; + } + + if (ret == '\r' || ret == '\n') + d->out_column = 0; + else if (ret > 0) + d->out_column++; + +# ifdef DEBUG + if (ret <= 0) + fprintf (stderr, "%s: textclient: getc: %d\n", progname, ret); + else if (ret < ' ') + fprintf (stderr, "%s: textclient: getc: %03o\n", progname, ret); + else + fprintf (stderr, "%s: textclient: getc: '%c'\n", progname, (char) ret); +# endif + + return ret; +} + + +/* The interpretation of the ModN modifiers is dependent on what keys + are bound to them: Mod1 does not necessarily mean "meta". It only + means "meta" if Meta_L or Meta_R are bound to it. If Meta_L is on + Mod5, then Mod5 is the one that means Meta. Oh, and Meta and Alt + aren't necessarily the same thing. Icepicks in my forehead! + */ +static unsigned int +do_icccm_meta_key_stupidity (Display *dpy) +{ + unsigned int modbits = 0; +# ifndef HAVE_COCOA + int i, j, k; + XModifierKeymap *modmap = XGetModifierMapping (dpy); + for (i = 3; i < 8; i++) + for (j = 0; j < modmap->max_keypermod; j++) + { + int code = modmap->modifiermap[i * modmap->max_keypermod + j]; + KeySym *syms; + int nsyms = 0; + if (code == 0) continue; + syms = XGetKeyboardMapping (dpy, code, 1, &nsyms); + for (k = 0; k < nsyms; k++) + if (syms[k] == XK_Meta_L || syms[k] == XK_Meta_R || + syms[k] == XK_Alt_L || syms[k] == XK_Alt_R) + modbits |= (1 << i); + XFree (syms); + } + XFreeModifiermap (modmap); +# endif /* HAVE_COCOA */ + return modbits; +} + + +/* Returns a mask of the bit or bits of a KeyPress event that mean "meta". + */ +static unsigned int +meta_modifier (text_data *d) +{ + if (!d->meta_done_once) + { + /* Really, we are supposed to recompute this if a KeymapNotify + event comes in, but fuck it. */ + d->meta_done_once = True; + d->meta_mask = do_icccm_meta_key_stupidity (d->dpy); +# ifdef DEBUG + fprintf (stderr, "%s: textclient: ICCCM Meta is 0x%08X\n", + progname, d->meta_mask); +# endif + } + return d->meta_mask; +} + + +Bool +textclient_putc (text_data *d, XKeyEvent *k) +{ + KeySym keysym; + unsigned char c = 0; + XLookupString (k, (char *) &c, 1, &keysym, &d->compose); + if (c != 0 && d->pipe) + { + if (!d->swap_bs_del_p) ; + else if (c == 127) c = 8; + else if (c == 8) c = 127; + + /* If meta was held down, send ESC, or turn on the high bit. */ + if (k->state & meta_modifier (d)) + { + if (d->meta_sends_esc_p) + fputc ('\033', d->pipe); + else + c |= 0x80; + } + + fputc (c, d->pipe); + fflush (d->pipe); + k->type = 0; /* don't interpret this event defaultly. */ + +# ifdef DEBUG + fprintf (stderr, "%s: textclient: putc '%c'\n", progname, (char) c); +# endif + + return True; + } + return False; +} + +#endif /* !USE_IPHONE -- whole file */ diff --git a/utils/textclient.h b/utils/textclient.h new file mode 100644 index 00000000..008e7158 --- /dev/null +++ b/utils/textclient.h @@ -0,0 +1,31 @@ +/* xscreensaver, Copyright (c) 2012 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + * + * Running "xscreensaver-text" and returning bytes from it. + */ + +#ifndef __TEXTCLIENT_H__ +#define __TEXTCLIENT_H__ + +# ifdef USE_IPHONE +# undef HAVE_FORKPTY +# endif + +typedef struct text_data text_data; + +extern text_data *textclient_open (Display *); +extern void textclient_close (text_data *); +extern void textclient_reshape (text_data *, + int pix_w, int pix_h, + int char_w, int char_h); +extern int textclient_getc (text_data *); +extern Bool textclient_putc (text_data *, XKeyEvent *); + +#endif /* __TEXTCLIENT_H__ */ diff --git a/utils/version.h b/utils/version.h index 361a213c..c6cc11b3 100644 --- a/utils/version.h +++ b/utils/version.h @@ -1,2 +1,2 @@ static const char screensaver_id[] = - "@(#)xscreensaver 5.15 (28-Sep-2011), by Jamie Zawinski (jwz@jwz.org)"; + "@(#)xscreensaver 5.16 (19-Jun-2012), by Jamie Zawinski (jwz@jwz.org)"; diff --git a/xscreensaver.spec b/xscreensaver.spec index 14aeba48..e6c8b98c 100644 --- a/xscreensaver.spec +++ b/xscreensaver.spec @@ -1,5 +1,5 @@ %define name xscreensaver -%define version 5.15 +%define version 5.16 Summary: X screen saver and locker Name: %{name} diff --git a/xscreensaver.xcodeproj/project.pbxproj b/xscreensaver.xcodeproj/project.pbxproj index ba86b8c2..f5657cd4 100644 --- a/xscreensaver.xcodeproj/project.pbxproj +++ b/xscreensaver.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 45; + objectVersion = 46; objects = { /* Begin PBXAggregateTarget section */ @@ -194,6 +194,7 @@ AF777A4F09B660B600EA3033 /* PBXTargetDependency */, AF777A4D09B660B600EA3033 /* PBXTargetDependency */, AF777A4B09B660B600EA3033 /* PBXTargetDependency */, + AF4F10EE143450C300E34F3F /* PBXTargetDependency */, AF777A4909B660B500EA3033 /* PBXTargetDependency */, AF777A4709B660B500EA3033 /* PBXTargetDependency */, AF777A4509B660B500EA3033 /* PBXTargetDependency */, @@ -221,6 +222,7 @@ AF777A1D09B660B300EA3033 /* PBXTargetDependency */, AF777A1B09B660B300EA3033 /* PBXTargetDependency */, AF777A1909B660B300EA3033 /* PBXTargetDependency */, + AF4F10F0143450C300E34F3F /* PBXTargetDependency */, AF777A1709B660B300EA3033 /* PBXTargetDependency */, AF42C5160D624E9200B27FF6 /* PBXTargetDependency */, AF777A1509B660B300EA3033 /* PBXTargetDependency */, @@ -261,6 +263,7 @@ AF7779DF09B660AF00EA3033 /* PBXTargetDependency */, AF7779DD09B660AF00EA3033 /* PBXTargetDependency */, AF998EF70A083E1D0051049D /* PBXTargetDependency */, + AF4F10F2143450C300E34F3F /* PBXTargetDependency */, AF0DCA5C0C4CBB4300D76972 /* PBXTargetDependency */, ); name = "All Savers (OpenGL)"; @@ -285,7 +288,6 @@ isa = PBXAggregateTarget; buildConfigurationList = AFA33C070B058E67002B0E7D /* Build configuration list for PBXAggregateTarget "webcollage" */; buildPhases = ( - AFA33C010B058E17002B0E7D /* ShellScript */, ); dependencies = ( ); @@ -295,12 +297,7 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - AF08399809930B6B00277BE9 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF08399909930B6B00277BE9 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF08399A09930B6B00277BE9 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF08399B09930B6B00277BE9 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF08399C09930B6B00277BE9 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF08399D09930B6B00277BE9 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF012918157C1E4C00C396E1 /* chessmodels.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55E2309935F2B00F3E977 /* chessmodels.c */; }; AF0839A609930BAC00277BE9 /* atlantis.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258700988A468000655EE /* atlantis.xml */; }; AF0839B009930C4900277BE9 /* atlantis.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0839A909930C4900277BE9 /* atlantis.c */; }; AF0839B109930C4900277BE9 /* dolphin.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0839AA09930C4900277BE9 /* dolphin.c */; }; @@ -309,34 +306,18 @@ AF0839B409930C4900277BE9 /* whale.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0839AD09930C4900277BE9 /* whale.c */; }; AF083A1C099310B300277BE9 /* xpm-ximage.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0839AE09930C4900277BE9 /* xpm-ximage.c */; }; AF083A21099310CF00277BE9 /* xlockmore.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480CBB098E37D600FB32B8 /* xlockmore.c */; }; - AF083A3E099311D700277BE9 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF083A3F099311D700277BE9 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF083A40099311D700277BE9 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF083A41099311D700277BE9 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF083A42099311D700277BE9 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF083A43099311D700277BE9 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF083A4A099311FF00277BE9 /* atunnel.c in Sources */ = {isa = PBXBuildFile; fileRef = AF083A31099311CE00277BE9 /* atunnel.c */; }; AF083A4B0993120900277BE9 /* atunnel.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258720988A468000655EE /* atunnel.xml */; }; AF083A59099312B000277BE9 /* tunnel_draw.c in Sources */ = {isa = PBXBuildFile; fileRef = AF083A58099312B000277BE9 /* tunnel_draw.c */; }; AF0D117D0E41566300BB14A4 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; }; AF0DC7B10C4C73F600D76972 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; AF0DC7B20C4C73F600D76972 /* analogtv.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4CFA09B5AC94006E59CF /* analogtv.c */; }; - AF0DC7B50C4C73F600D76972 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF0DC7B60C4C73F600D76972 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF0DC7B70C4C73F600D76972 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF0DCA350C4C74A200D76972 /* asm6502.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0DCA320C4C74A200D76972 /* asm6502.c */; }; AF0DCA360C4C74A200D76972 /* m6502.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0DCA340C4C74A200D76972 /* m6502.c */; }; AF0DCA380C4C74B700D76972 /* m6502.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF0DCA370C4C74B700D76972 /* m6502.xml */; }; AF0DCA480C4CBB0D00D76972 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF0DCA4B0C4CBB0D00D76972 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF0DCA4C0C4CBB0D00D76972 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF0DCA4D0C4CBB0D00D76972 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF0DCA4E0C4CBB0D00D76972 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF0DCA4F0C4CBB0D00D76972 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF0DCA500C4CBB0D00D76972 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF0DCA600C4CBB7300D76972 /* voronoi.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0DCA5F0C4CBB7300D76972 /* voronoi.c */; }; AF0DCA620C4CBB8E00D76972 /* voronoi.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF0DCA610C4CBB8E00D76972 /* voronoi.xml */; }; - AF0F46DD104E1809000A929C /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF0F46DC104E1809000A929C /* AppKit.framework */; }; AF0FAF0C09CA6FF900EE1051 /* xscreensaver-text in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF0B09CA6FF900EE1051 /* xscreensaver-text */; }; AF0FAF0D09CA6FF900EE1051 /* xscreensaver-text in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF0B09CA6FF900EE1051 /* xscreensaver-text */; }; AF0FAF0E09CA6FF900EE1051 /* xscreensaver-text in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF0B09CA6FF900EE1051 /* xscreensaver-text */; }; @@ -365,52 +346,915 @@ AF0FAF2709CA712600EE1051 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; }; AF0FAF2809CA712600EE1051 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; }; AF0FAF2909CA712600EE1051 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; }; - AF14EE310E3CEF1A004CBBD2 /* XScreenSaver.icns in Resources */ = {isa = PBXBuildFile; fileRef = AF14EE300E3CEF1A004CBBD2 /* XScreenSaver.icns */; }; AF1A17660D6D6EE3008AF328 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; }; AF1A17680D6D6EE3008AF328 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF1A176B0D6D6EE3008AF328 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF1A176C0D6D6EE3008AF328 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF1A176D0D6D6EE3008AF328 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF1A177F0D6D6F3E008AF328 /* lcdscrub.c in Sources */ = {isa = PBXBuildFile; fileRef = AF1A177E0D6D6F3E008AF328 /* lcdscrub.c */; }; AF1A17810D6D6F62008AF328 /* lcdscrub.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF1A17800D6D6F62008AF328 /* lcdscrub.xml */; }; - AF1A26760990E77C00147B80 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD713158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD714158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD715158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD716158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD717158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD718158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD719158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD71A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD71B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD71C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD71D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD71E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD71F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD720158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD721158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD722158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD723158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD724158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD725158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD726158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD727158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD728158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD729158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD72A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD72B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD72C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD72D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD72E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD72F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD730158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD731158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD732158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD733158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD734158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD735158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD736158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD737158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD738158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD739158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD73A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD73B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD73C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD73D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD73E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD73F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD740158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD741158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD742158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD743158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD744158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD745158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD746158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD747158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD748158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD749158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD74A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD74B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD74C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD74D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD74E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD74F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD750158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD751158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD752158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD753158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD754158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD755158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD756158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD757158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD758158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD759158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD75A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD75B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD75C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD75D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD75E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD75F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD760158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD761158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD762158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD763158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD764158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD765158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD766158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD767158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD768158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD769158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD76A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD76B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD76C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD76D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD76E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD76F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD770158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD771158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD772158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD773158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD774158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD775158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD776158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD777158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD778158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD779158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD77A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD77B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD77C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD77D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD77E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD77F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD780158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD781158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD782158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD783158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD784158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD785158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD786158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD787158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD788158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD789158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD78A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD78B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD78C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD78D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD78E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD78F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD790158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD791158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD792158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD793158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD794158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD795158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD796158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD797158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD798158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD799158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD79A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD79B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD79C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD79D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD79E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD79F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7A0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7A1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7A2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7A3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7A4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7A5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7A6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7A7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7A8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7A9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7AA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7AB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7AC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7AD158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7AE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7AF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7B0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7B1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7B2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7B3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7B4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7B5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7B6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7B7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7B8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7B9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7BA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7BB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7BC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7BD158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7BE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7BF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7C0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7C1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7C2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7C3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7C4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7C5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7C6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7C7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7C8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7C9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7CA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7CB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7CC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7CD158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7CE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7CF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7D0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7D1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7D2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7D3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7D4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7D5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7D6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7D7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7D8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7D9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7DA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7DB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7DC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7DD158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7DE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7DF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7E0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7E1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7E2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7E3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7E4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7E5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7E6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7E7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7E8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7E9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7EA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7EB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7EC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7ED158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7EE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7EF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7F0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7F1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7F2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7F3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7F4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7F5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7F6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7F7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7F8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7F9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7FA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7FB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD7FC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD7FD158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD7FE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD7FF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD800158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD801158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD802158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD803158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD804158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD805158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD806158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD807158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD808158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD809158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD80A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD80B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD80C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD80D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD80E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD80F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD810158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD811158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD812158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD813158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD814158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD815158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD816158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD817158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD818158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD819158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD81A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD81B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD81C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD81D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD81E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD81F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD820158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD821158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD822158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD823158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD824158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD825158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD826158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD827158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD828158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD829158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD82A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD82B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD82C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD82D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD82E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD82F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD830158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD831158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD832158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD833158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD834158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD835158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD836158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD837158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD838158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD839158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD83A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD83B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD83C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD83D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD83E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD83F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD840158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD841158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD842158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD843158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD844158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD845158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD846158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD847158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD848158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD849158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD84A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD84B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD84C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD84D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD84E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD84F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD850158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD851158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD852158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD853158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD854158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD855158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD856158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD857158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD858158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD859158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD85A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD85B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD85C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD85D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD85E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD85F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD860158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD861158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD862158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD863158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD864158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD865158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD866158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD867158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD868158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD869158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD86A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD86B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD86C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD86D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD86E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD86F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD870158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD871158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD872158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD873158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD874158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD875158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD876158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD877158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD878158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD879158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD87A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD87B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD87C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD87D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD87E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD87F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD880158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD881158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD882158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD883158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD884158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD885158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD886158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD887158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD888158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD889158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD88A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD88B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD88C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD88D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD88E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD88F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD890158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD891158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD892158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD893158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD894158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD895158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD896158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD897158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD898158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD899158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD89A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD89B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD89C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD89D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD89E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD89F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8A0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8A1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8A2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8A3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8A4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8A5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8A6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8A7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8A8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8A9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8AA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8AB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8AC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8AD158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8AE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8AF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8B0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8B1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8B2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8B3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8B4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8B5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8B6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8B7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8B8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8B9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8BA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8BB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8BC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8BD158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8BE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8BF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8C0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8C1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8C2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8C3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8C4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8C5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8C6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8C7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8C8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8C9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8CA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8CB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8CC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8CD158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8CE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8CF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8D0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8D1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8D2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8D3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8D4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8D5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8D6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8D7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8D8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8D9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8DA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8DB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8DC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8DD158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8DE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8DF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8E0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8E1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8E2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8E3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8E4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8E5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8E6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8E7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8E8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8E9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8EA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8EB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8EC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8ED158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8EE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8EF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8F0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8F1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8F2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8F3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8F4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8F5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8F6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8F7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8F8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8F9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8FA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8FB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD8FC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD8FD158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD8FE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD8FF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD900158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD901158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD902158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD903158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD904158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD905158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD906158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD907158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD908158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD909158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD90A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD90B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD90C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD90D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD90E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD90F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD910158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD911158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD912158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD913158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD914158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD915158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD916158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD917158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD918158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD919158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD91A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD91B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD91C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD91D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD91E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD91F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD920158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD921158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD922158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD923158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD924158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD925158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD926158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD927158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD928158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD929158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD92A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD92B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD92C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD92D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD92E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD92F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD930158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD931158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD932158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD933158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD934158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD935158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD936158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD937158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD938158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD939158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD93A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD93B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD93C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD93D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD93E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD93F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD940158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD941158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD942158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD943158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD944158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD945158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD946158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD947158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD948158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD949158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD94A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD94B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD94C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD94D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD94E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD94F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD950158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD951158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD952158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD953158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD954158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD955158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD956158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD957158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD958158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD959158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD95A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD95B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD95C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD95D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD95E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD95F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD960158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD961158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD962158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD963158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD964158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD965158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD966158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD967158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD968158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD969158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD96A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD96B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD96C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD96D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD96E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD96F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD970158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD971158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD972158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD973158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD974158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD975158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD976158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD977158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD978158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD979158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD97A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD97B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD97C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD97D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD97E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD97F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD980158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD981158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD982158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD983158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD984158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD985158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD986158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD987158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD988158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD989158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD98A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD98B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD98C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD98D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD98E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD98F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD990158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD991158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD992158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD993158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD994158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD995158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD996158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD997158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD998158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD999158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD99A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD99B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD99C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD99D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD99E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD99F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9A0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9A1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9A2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9A3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9A4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9A5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9A6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9A7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9A8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9A9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9AA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9AB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9AC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9AD158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9AE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9AF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9B0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9B1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9B2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9B3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9B4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9B5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9B6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9B7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9B8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9B9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9BA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9BB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9BC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9BD158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9BE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9BF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9C0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9C1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9C2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9C3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9C4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9C5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9C6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9C7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9C8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9C9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9CA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9CB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9CC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9CD158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9CE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9CF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9D0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9D1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9D2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9D3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9D4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9D5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9D6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9D7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9D8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9D9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9DA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9DB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9DC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9DD158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9DE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9DF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9E0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9E1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9E2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9E3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9E4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9E5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9E6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9E7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9E8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9E9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9EA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9EB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9EC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9ED158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9EE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9EF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9F0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9F1158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9F2158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9F3158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9F4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9F5158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9F6158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9F7158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9F8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9F9158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9FA158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9FB158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FD9FC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FD9FD158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FD9FE158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FD9FF158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA00158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA01158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA02158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA03158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA04158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA05158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA06158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA07158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA08158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA09158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA0A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA0B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA0C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA0D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA0E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA0F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA10158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA11158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA12158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA13158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA14158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA15158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA16158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA17158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA18158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA19158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA1A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA1B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA1C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA1D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA1E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA1F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA20158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA21158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA22158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA23158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA24158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA25158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA26158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA27158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA28158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA29158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA2A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA2B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA2C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA2D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA2E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA2F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA30158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA31158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA32158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA33158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA34158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA35158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA36158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA37158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA38158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA39158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA3A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA3B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA3C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA3D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA3E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA3F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA40158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA41158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA42158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA43158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA44158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA45158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA46158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA47158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA48158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA49158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA4A158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA4B158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA4C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA4D158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA4E158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA4F158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA50158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA51158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA52158FF96500C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA53158FF96600C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA54158FF96600C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA55158FF96600C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA56158FF96600C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA57158FF96600C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA58158FF96600C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA59158FF96600C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA5A158FF96600C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA5B158FF96600C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA5C158FF96600C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA5D158FF96600C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA5E158FF96600C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA5F158FF96600C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA60158FF96600C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA61158FF96600C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA62158FF96600C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA63158FF96600C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA64158FF96600C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA65158FF96600C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA66158FF96600C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA67158FF96600C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA68158FF96600C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA69158FF96600C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA6A158FF96600C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA6B158FF96600C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA6C158FF96600C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA6D158FF96600C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA6E158FF96600C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA6F158FF96600C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA70158FF96600C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA71158FF96600C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA72158FF96600C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA73158FF96600C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA74158FF96600C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA75158FF96600C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA76158FF96600C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA77158FF96600C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA78158FF96600C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA79158FF96600C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA7A158FF96600C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA7B158FF96600C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA7C158FF96600C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA7D158FF96600C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA7E158FF96600C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA7F158FF96600C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA80158FF96600C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA81158FF96600C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA82158FF96600C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA83158FF96600C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA84158FF96600C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA85158FF96600C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA86158FF96600C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; + AF1FDA87158FF96600C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF1FDA88158FF96600C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AF1FDA89158FF96600C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF1FDA8A158FF96600C40F17 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF241F83107C38DF00046A84 /* dropshadow.c in Sources */ = {isa = PBXBuildFile; fileRef = AF241F81107C38DF00046A84 /* dropshadow.c */; }; AF2D4D8413E902F5002AA818 /* SaverRunner.nib in Resources */ = {isa = PBXBuildFile; fileRef = AF9772E10989DFC6001F8B92 /* SaverRunner.nib */; }; AF2D4D8613E902F5002AA818 /* SaverRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = AFE1FD400981E32E00F7970E /* SaverRunner.m */; }; AF2D4D8713E902F5002AA818 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; - AF2D4D8913E902F5002AA818 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF2D4D8A13E902F5002AA818 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF2D4D8B13E902F5002AA818 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; AF2D4DBD13E90372002AA818 /* Phosphor.saver in Copy Plugins */ = {isa = PBXBuildFile; fileRef = AF7776F609B63ABF00EA3033 /* Phosphor.saver */; }; AF2D4F7113E91093002AA818 /* SaverRunner.nib in Resources */ = {isa = PBXBuildFile; fileRef = AF9772E10989DFC6001F8B92 /* SaverRunner.nib */; }; AF2D4F7513E91093002AA818 /* SaverRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = AFE1FD400981E32E00F7970E /* SaverRunner.m */; }; AF2D4F7613E91093002AA818 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; - AF2D4F7813E91093002AA818 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF2D4F7913E91093002AA818 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF2D4F7A13E91093002AA818 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; AF2D4FA913E9115E002AA818 /* Apple2.saver in Copy Plugins */ = {isa = PBXBuildFile; fileRef = AF9D4DFE09B5BB19006E59CF /* Apple2.saver */; }; AF2D522613E954A0002AA818 /* SaverRunner.icns in Resources */ = {isa = PBXBuildFile; fileRef = AF2D522513E954A0002AA818 /* SaverRunner.icns */; }; - AF2D522713E954A0002AA818 /* SaverRunner.icns in Resources */ = {isa = PBXBuildFile; fileRef = AF2D522513E954A0002AA818 /* SaverRunner.icns */; }; AF32D9E70F3AD0B40080F535 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF32D9E90F3AD0B40080F535 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF32D9EA0F3AD0B40080F535 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF32D9EB0F3AD0B40080F535 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF32D9EC0F3AD0B40080F535 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF32D9ED0F3AD0B40080F535 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF32D9EE0F3AD0B40080F535 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF32D9FB0F3AD1200080F535 /* rubikblocks.c in Sources */ = {isa = PBXBuildFile; fileRef = AF32D9FA0F3AD1200080F535 /* rubikblocks.c */; }; AF32D9FD0F3AD1330080F535 /* rubikblocks.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF32D9FC0F3AD1330080F535 /* rubikblocks.xml */; }; AF3581C31431D47B00E09C51 /* voronoi.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF0DCA610C4CBB8E00D76972 /* voronoi.xml */; }; - AF3581C41431D47B00E09C51 /* hilbert.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF78D18E142DD99A002AAF77 /* hilbert.xml */; }; AF3581C61431D47B00E09C51 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; AF3581C71431D47B00E09C51 /* voronoi.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0DCA5F0C4CBB7300D76972 /* voronoi.c */; }; AF3581C81431D47B00E09C51 /* hilbert.c in Sources */ = {isa = PBXBuildFile; fileRef = AF78D18A142DD96E002AAF77 /* hilbert.c */; }; - AF3581CA1431D47B00E09C51 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF3581CB1431D47B00E09C51 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF3581CC1431D47B00E09C51 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF3581CD1431D47B00E09C51 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF3581CE1431D47B00E09C51 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF3581CF1431D47B00E09C51 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF3581DA1431D5FC00E09C51 /* companion_disc.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3581D61431D5FC00E09C51 /* companion_disc.c */; }; AF3581DB1431D5FC00E09C51 /* companion_disc.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3581D61431D5FC00E09C51 /* companion_disc.c */; }; AF3581DC1431D5FC00E09C51 /* companion_disc.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3581D61431D5FC00E09C51 /* companion_disc.c */; }; @@ -423,11 +1267,8 @@ AF3581E31431D5FC00E09C51 /* companion.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3581D91431D5FC00E09C51 /* companion.c */; }; AF3581E41431D5FC00E09C51 /* companion.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3581D91431D5FC00E09C51 /* companion.c */; }; AF3581E51431D5FC00E09C51 /* companion.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3581D91431D5FC00E09C51 /* companion.c */; }; - AF3581E71431D61D00E09C51 /* companioncube.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF3581E61431D61D00E09C51 /* companioncube.xml */; }; AF3581E81431D61D00E09C51 /* companioncube.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF3581E61431D61D00E09C51 /* companioncube.xml */; }; AF3581FF143330F900E09C51 /* voronoi.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF0DCA610C4CBB8E00D76972 /* voronoi.xml */; }; - AF358200143330F900E09C51 /* hilbert.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF78D18E142DD99A002AAF77 /* hilbert.xml */; }; - AF358201143330F900E09C51 /* companioncube.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF3581E61431D61D00E09C51 /* companioncube.xml */; }; AF358203143330F900E09C51 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; AF358204143330F900E09C51 /* voronoi.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0DCA5F0C4CBB7300D76972 /* voronoi.c */; }; AF358205143330F900E09C51 /* hilbert.c in Sources */ = {isa = PBXBuildFile; fileRef = AF78D18A142DD96E002AAF77 /* hilbert.c */; }; @@ -435,12 +1276,6 @@ AF358207143330F900E09C51 /* companion_heart.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3581D71431D5FC00E09C51 /* companion_heart.c */; }; AF358208143330F900E09C51 /* companion_quad.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3581D81431D5FC00E09C51 /* companion_quad.c */; }; AF358209143330F900E09C51 /* companion.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3581D91431D5FC00E09C51 /* companion.c */; }; - AF35820B143330F900E09C51 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF35820C143330F900E09C51 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF35820D143330F900E09C51 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF35820E143330F900E09C51 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF35820F143330F900E09C51 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF358210143330F900E09C51 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF35821C1433314C00E09C51 /* tronbit_idle1.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3582171433314C00E09C51 /* tronbit_idle1.c */; }; AF35821D1433314C00E09C51 /* tronbit_idle2.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3582181433314C00E09C51 /* tronbit_idle2.c */; }; AF35821E1433314C00E09C51 /* tronbit_no.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3582191433314C00E09C51 /* tronbit_no.c */; }; @@ -448,312 +1283,156 @@ AF3582201433314C00E09C51 /* tronbit.c in Sources */ = {isa = PBXBuildFile; fileRef = AF35821B1433314C00E09C51 /* tronbit.c */; }; AF3582221433318500E09C51 /* tronbit.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF3582211433318500E09C51 /* tronbit.xml */; }; AF35E8900E63823600691F2F /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF35E8950E63823600691F2F /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF35E8960E63823600691F2F /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF35E8970E63823600691F2F /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF35E8980E63823600691F2F /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF35E8990E63823600691F2F /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF35E89A0E63823600691F2F /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF35EB240E63829600691F2F /* jigsaw.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258CF0988A468000655EE /* jigsaw.xml */; }; AF35EB260E6382BA00691F2F /* jigsaw.c in Sources */ = {isa = PBXBuildFile; fileRef = AF35EB250E6382BA00691F2F /* jigsaw.c */; }; AF3C714B0D624BF50030CC0D /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF3C714E0D624BF50030CC0D /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF3C714F0D624BF50030CC0D /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF3C71500D624BF50030CC0D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF3C71510D624BF50030CC0D /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF3C71520D624BF50030CC0D /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF3C71530D624BF50030CC0D /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF3C715E0D624C600030CC0D /* hypnowheel.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3C715D0D624C600030CC0D /* hypnowheel.c */; }; AF3C71600D624C7C0030CC0D /* hypnowheel.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF3C715F0D624C7C0030CC0D /* hypnowheel.xml */; }; AF476FBC099D154F001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF476FBF099D154F001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF476FC0099D154F001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF476FC1099D154F001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF476FCF099D1587001F091E /* interference.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258CC0988A468000655EE /* interference.xml */; }; AF476FD1099D15AA001F091E /* interference.c in Sources */ = {isa = PBXBuildFile; fileRef = AF476FD0099D15AA001F091E /* interference.c */; }; AF476FE1099D1686001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF476FE4099D1686001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF476FE5099D1686001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF476FE6099D1686001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF476FEF099D16E4001F091E /* truchet.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259260988A469000655EE /* truchet.xml */; }; AF476FF1099D1713001F091E /* truchet.c in Sources */ = {isa = PBXBuildFile; fileRef = AF476FF0099D1713001F091E /* truchet.c */; }; AF477052099D4385001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF477055099D4385001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF477056099D4385001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF477057099D4385001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF47705E099D43B7001F091E /* deluxe.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258950988A468000655EE /* deluxe.xml */; }; AF477146099D43E2001F091E /* deluxe.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477145099D43E2001F091E /* deluxe.c */; }; AF47716F099D4786001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF477172099D4786001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF477173099D4786001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF477174099D4786001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF47717B099D47B7001F091E /* compass.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258880988A468000655EE /* compass.xml */; }; AF47717D099D47D3001F091E /* compass.c in Sources */ = {isa = PBXBuildFile; fileRef = AF47717C099D47D3001F091E /* compass.c */; }; AF477185099D4803001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF477188099D4803001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF477189099D4803001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF47718A099D4803001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF477191099D4846001F091E /* wander.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2592B0988A469000655EE /* wander.xml */; }; AF477193099D4864001F091E /* wander.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477192099D4864001F091E /* wander.c */; }; AF4771AD099D4949001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4771B0099D4949001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4771B1099D4949001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4771B2099D4949001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4771B9099D4981001F091E /* t3d.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259210988A469000655EE /* t3d.xml */; }; AF4771BB099D4997001F091E /* t3d.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4771BA099D4997001F091E /* t3d.c */; }; AF4771E1099D4D9A001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4771E4099D4D9A001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4771E5099D4D9A001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4771E6099D4D9A001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4771EE099D4DE5001F091E /* ccurve.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258840988A468000655EE /* ccurve.xml */; }; AF4771F0099D4DFE001F091E /* ccurve.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4771EF099D4DFE001F091E /* ccurve.c */; }; AF4771F8099D4E63001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4771FB099D4E63001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4771FC099D4E63001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4771FD099D4E63001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF477204099D4EA2001F091E /* nerverot.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258EB0988A469000655EE /* nerverot.xml */; }; AF477206099D4EB6001F091E /* nerverot.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477205099D4EB6001F091E /* nerverot.c */; }; AF47720E099D4EE8001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF477211099D4EE8001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF477212099D4EE8001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF477213099D4EE8001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF47721A099D4F27001F091E /* whirlygig.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2592F0988A469000655EE /* whirlygig.xml */; }; AF47721C099D4F47001F091E /* whirlygig.c in Sources */ = {isa = PBXBuildFile; fileRef = AF47721B099D4F47001F091E /* whirlygig.c */; }; AF477224099D4F67001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF477227099D4F67001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF477228099D4F67001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF477229099D4F67001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF477230099D4FBD001F091E /* anemone.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258680988A468000655EE /* anemone.xml */; }; AF477232099D4FD5001F091E /* anemone.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477231099D4FD5001F091E /* anemone.c */; }; AF477259099D5717001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF47725C099D5717001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF47725D099D5717001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF47725E099D5717001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF477265099D5752001F091E /* halftone.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C20988A468000655EE /* halftone.xml */; }; AF477267099D5768001F091E /* halftone.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477266099D5768001F091E /* halftone.c */; }; AF477271099D57B9001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF477274099D57B9001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF477275099D57B9001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF477276099D57B9001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF47727D099D57F5001F091E /* popsquares.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258FB0988A469000655EE /* popsquares.xml */; }; AF47727F099D5808001F091E /* popsquares.c in Sources */ = {isa = PBXBuildFile; fileRef = AF47727E099D5808001F091E /* popsquares.c */; }; AF477289099D5926001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF47728C099D5926001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF47728D099D5926001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF47728E099D5926001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF477296099D596A001F091E /* piecewise.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F40988A469000655EE /* piecewise.xml */; }; AF477298099D5980001F091E /* piecewise.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477297099D5980001F091E /* piecewise.c */; }; AF477388099D65A1001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF47738B099D65A1001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF47738C099D65A1001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF47738D099D65A1001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF477394099D65EB001F091E /* wormhole.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259310988A469000655EE /* wormhole.xml */; }; AF477396099D65FE001F091E /* wormhole.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477395099D65FE001F091E /* wormhole.c */; }; AF4773A0099D6648001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4773A3099D6648001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4773A4099D6648001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4773A5099D6648001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4773AC099D6762001F091E /* fuzzyflakes.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B00988A468000655EE /* fuzzyflakes.xml */; }; AF4773B5099D6778001F091E /* fuzzyflakes.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4773B4099D6778001F091E /* fuzzyflakes.c */; }; AF4773C7099D67B9001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4773CA099D67B9001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4773CB099D67B9001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4773CC099D67B9001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4773D3099D6804001F091E /* anemotaxis.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258690988A468000655EE /* anemotaxis.xml */; }; AF4773D5099D6817001F091E /* anemotaxis.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4773D4099D6817001F091E /* anemotaxis.c */; }; AF477408099D69E7001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF47740B099D69E7001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF47740C099D69E7001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF47740D099D69E7001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF47741B099D6A58001F091E /* intermomentary.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258CD0988A468000655EE /* intermomentary.xml */; }; AF47741D099D6A6D001F091E /* intermomentary.c in Sources */ = {isa = PBXBuildFile; fileRef = AF47741C099D6A6C001F091E /* intermomentary.c */; }; AF47742D099D7C70001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF477430099D7C70001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF477431099D7C70001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF477432099D7C70001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF477439099D7CD0001F091E /* ifs.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C90988A468000655EE /* ifs.xml */; }; AF47743B099D7CEA001F091E /* ifs.c in Sources */ = {isa = PBXBuildFile; fileRef = AF47743A099D7CEA001F091E /* ifs.c */; }; AF477448099D7D33001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF47744B099D7D33001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF47744C099D7D33001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF47744D099D7D33001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF477454099D7D75001F091E /* xmatrix.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2593A0988A469000655EE /* xmatrix.xml */; }; AF477456099D7D8A001F091E /* xmatrix.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477455099D7D8A001F091E /* xmatrix.c */; }; AF477489099D89E4001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF47748C099D89E4001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF47748D099D89E4001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF47748E099D89E4001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF477495099D8A3A001F091E /* flame.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258A60988A468000655EE /* flame.xml */; }; AF477497099D8A53001F091E /* flame.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477496099D8A53001F091E /* flame.c */; }; AF47749F099D8A74001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4774A2099D8A74001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4774A3099D8A74001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4774A4099D8A74001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4774AB099D8AF3001F091E /* kaleidescope.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D30988A468000655EE /* kaleidescope.xml */; }; AF4774AD099D8B08001F091E /* kaleidescope.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4774AC099D8B08001F091E /* kaleidescope.c */; }; AF4774BA099D8B5F001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4774BD099D8B5F001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4774BE099D8B5F001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4774BF099D8B5F001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4774CA099D8BAE001F091E /* lmorph.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258DC0988A468000655EE /* lmorph.xml */; }; AF4774CC099D8BC2001F091E /* lmorph.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4774CB099D8BC2001F091E /* lmorph.c */; }; AF4774D4099D8BFF001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4774D7099D8BFF001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4774D8099D8BFF001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4774D9099D8BFF001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4774E0099D8C74001F091E /* maze.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258DE0988A468000655EE /* maze.xml */; }; AF4774E2099D8C8B001F091E /* maze.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4774E1099D8C8B001F091E /* maze.c */; }; AF4774E8099D8D8C001F091E /* logo.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4774E7099D8D8C001F091E /* logo.c */; }; AF477563099D9A1A001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF477566099D9A1A001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF477567099D9A1A001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF477568099D9A1A001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF47756F099D9A70001F091E /* pedal.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258EF0988A469000655EE /* pedal.xml */; }; AF477571099D9A8A001F091E /* pedal.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477570099D9A8A001F091E /* pedal.c */; }; AF477589099D9C28001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF47758C099D9C28001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF47758D099D9C28001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF47758E099D9C28001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF47759B099D9C8D001F091E /* pyro.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258FE0988A469000655EE /* pyro.xml */; }; AF47759D099D9CA3001F091E /* pyro.c in Sources */ = {isa = PBXBuildFile; fileRef = AF47759C099D9CA3001F091E /* pyro.c */; }; AF4775A5099D9CF7001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4775A8099D9CF7001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4775A9099D9CF7001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4775AA099D9CF7001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4775B1099D9D51001F091E /* starfish.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2591A0988A469000655EE /* starfish.xml */; }; AF4775B4099D9D67001F091E /* starfish.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4775B3099D9D67001F091E /* starfish.c */; }; AF4775C0099D9E79001F091E /* resources.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4775BE099D9E79001F091E /* resources.c */; }; AF4775C1099D9E79001F091E /* resources.h in Headers */ = {isa = PBXBuildFile; fileRef = AF4775BF099D9E79001F091E /* resources.h */; }; AF4775DE099D9F69001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4775E1099D9F69001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4775E2099D9F69001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4775E3099D9F69001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4775EC099D9FDB001F091E /* coral.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258890988A468000655EE /* coral.xml */; }; AF4775F0099D9FFF001F091E /* coral.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4775EF099D9FFF001F091E /* coral.c */; }; AF4775F8099DA030001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4775FB099DA030001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4775FC099DA030001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4775FD099DA030001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF477604099DA083001F091E /* epicycle.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2589D0988A468000655EE /* epicycle.xml */; }; AF477606099DA097001F091E /* epicycle.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477605099DA097001F091E /* epicycle.c */; }; AF477619099DA26C001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF47761C099DA26C001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF47761D099DA26C001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF47761E099DA26C001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF477629099DA2D2001F091E /* kumppa.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D50988A468000655EE /* kumppa.xml */; }; AF47762B099DA2E9001F091E /* kumppa.c in Sources */ = {isa = PBXBuildFile; fileRef = AF47762A099DA2E9001F091E /* kumppa.c */; }; AF47764A099DA6D0001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF47764D099DA6D0001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF47764E099DA6D0001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF47764F099DA6D0001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF477656099DA738001F091E /* squiral.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259170988A469000655EE /* squiral.xml */; }; AF477658099DA75D001F091E /* squiral.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477657099DA75D001F091E /* squiral.c */; }; AF477660099DA78E001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF477663099DA78E001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF477664099DA78E001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF477665099DA78E001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF47766C099DA7F3001F091E /* critical.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2588C0988A468000655EE /* critical.xml */; }; AF47766E099DA80D001F091E /* critical.c in Sources */ = {isa = PBXBuildFile; fileRef = AF47766D099DA80D001F091E /* critical.c */; }; AF477676099DA849001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF477679099DA849001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF47767A099DA849001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF47767B099DA849001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF477682099DA8AC001F091E /* petri.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F20988A469000655EE /* petri.xml */; }; AF477684099DA8C7001F091E /* petri.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477683099DA8C7001F091E /* petri.c */; }; AF477695099DAA6F001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF477698099DAA6F001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF477699099DAA6F001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF47769A099DAA6F001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4776A1099DAAC9001F091E /* blaster.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258740988A468000655EE /* blaster.xml */; }; AF4776A3099DAADE001F091E /* blaster.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4776A2099DAADE001F091E /* blaster.c */; }; AF4776B0099DABDD001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4776B3099DABDD001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4776B4099DABDD001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4776B5099DABDD001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4776BC099DAC29001F091E /* xspirograph.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2593F0988A469000655EE /* xspirograph.xml */; }; AF4776BE099DAC46001F091E /* xspirograph.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4776BD099DAC46001F091E /* xspirograph.c */; }; AF4776C6099DAC8A001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4776C9099DAC8A001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4776CA099DAC8A001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4776CB099DAC8A001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4776D2099DACD6001F091E /* xrayswarm.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2593D0988A469000655EE /* xrayswarm.xml */; }; AF4776D4099DACEB001F091E /* xrayswarm.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4776D3099DACEB001F091E /* xrayswarm.c */; }; AF4776E1099DADDF001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4776E4099DADDF001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4776E5099DADDF001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4776E6099DADDF001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4776ED099DAE38001F091E /* whirlwindwarp.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2592D0988A469000655EE /* whirlwindwarp.xml */; }; AF4776EF099DAE58001F091E /* whirlwindwarp.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4776EE099DAE58001F091E /* whirlwindwarp.c */; }; AF4776F7099DAE7A001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4776FA099DAE7A001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4776FB099DAE7A001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4776FC099DAE7A001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF477703099DAF24001F091E /* vermiculate.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259280988A469000655EE /* vermiculate.xml */; }; AF477705099DAF3F001F091E /* vermiculate.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477704099DAF3F001F091E /* vermiculate.c */; }; AF477713099DAF9F001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF477716099DAF9F001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF477717099DAF9F001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF477718099DAF9F001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF47771F099DB000001F091E /* cloudlife.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258870988A468000655EE /* cloudlife.xml */; }; AF477721099DB01C001F091E /* cloudlife.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477720099DB01C001F091E /* cloudlife.c */; }; AF477729099DB044001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF47772C099DB044001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF47772D099DB044001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF47772E099DB044001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF477735099DB0ED001F091E /* substrate.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2591E0988A469000655EE /* substrate.xml */; }; AF477737099DB104001F091E /* substrate.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477736099DB104001F091E /* substrate.c */; }; AF477758099DB61E001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF47775B099DB61E001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF47775C099DB61E001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF47775D099DB61E001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF477768099DB6FD001F091E /* interaggregate.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258CB0988A468000655EE /* interaggregate.xml */; }; AF47776A099DB710001F091E /* interaggregate.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477769099DB710001F091E /* interaggregate.c */; }; AF47777A099DB965001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF47777D099DB965001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF47777E099DB965001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF47777F099DB965001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF477786099DBA11001F091E /* celtic.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258850988A468000655EE /* celtic.xml */; }; AF477788099DBA29001F091E /* celtic.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477787099DBA29001F091E /* celtic.c */; }; AF477796099DBA90001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF477799099DBA90001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF47779A099DBA90001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF47779B099DBA90001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4777A3099DBAF8001F091E /* fluidballs.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258AB0988A468000655EE /* fluidballs.xml */; }; AF4777A5099DBB12001F091E /* fluidballs.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4777A4099DBB11001F091E /* fluidballs.c */; }; AF4777D7099DC183001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4777DA099DC183001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4777DB099DC183001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4777DC099DC183001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4778A2099DDA76001F091E /* boxfit.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2587C0988A468000655EE /* boxfit.xml */; }; AF4778A4099DDA91001F091E /* boxfit.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4778A3099DDA91001F091E /* boxfit.c */; }; AF4778B1099DDB79001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4778B4099DDB79001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4778B5099DDB79001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4778B6099DDB79001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4778BD099DDC1B001F091E /* penetrate.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F00988A469000655EE /* penetrate.xml */; }; AF4778BF099DDC33001F091E /* penetrate.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4778BE099DDC32001F091E /* penetrate.c */; }; AF4778CD099DDCAE001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4778D0099DDCAE001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4778D1099DDCAE001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4778D2099DDCAE001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4778D9099DDD14001F091E /* xjack.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259380988A469000655EE /* xjack.xml */; }; AF4778DB099DDD2B001F091E /* xjack.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4778DA099DDD2B001F091E /* xjack.c */; }; AF4778EE099DDDC8001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4778F1099DDDC8001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4778F2099DDDC8001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4778F3099DDDC8001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF4778FA099DDE5F001F091E /* cynosure.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258910988A468000655EE /* cynosure.xml */; }; AF4778FC099DDE79001F091E /* cynosure.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4778FB099DDE79001F091E /* cynosure.c */; }; AF47790F099DE379001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF477912099DE379001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF477913099DE379001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF477914099DE379001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF47791B099DE3D9001F091E /* flag.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258A50988A468000655EE /* flag.xml */; }; AF47791D099DE3F1001F091E /* flag.c in Sources */ = {isa = PBXBuildFile; fileRef = AF47791C099DE3F1001F091E /* flag.c */; }; AF477930099DE4C7001F091E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF477933099DE4C7001F091E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF477934099DE4C7001F091E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF477935099DE4C7001F091E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF47793C099DE535001F091E /* slip.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2590E0988A469000655EE /* slip.xml */; }; AF47793E099DE56A001F091E /* slip.c in Sources */ = {isa = PBXBuildFile; fileRef = AF47793D099DE56A001F091E /* slip.c */; }; AF4808C5098C3BDC00FB32B8 /* colors.c in Sources */ = {isa = PBXBuildFile; fileRef = AFC25B990988BC08000655EE /* colors.c */; }; @@ -767,18 +1446,8 @@ AF4808CE098C3BF800FB32B8 /* XScreenSaverConfigSheet.m in Sources */ = {isa = PBXBuildFile; fileRef = AFC2578009888F5A000655EE /* XScreenSaverConfigSheet.m */; }; AF4808CF098C3BFB00FB32B8 /* XScreenSaverView.m in Sources */ = {isa = PBXBuildFile; fileRef = AFC254C509882C97000655EE /* XScreenSaverView.m */; }; AF4808D0098C3BFD00FB32B8 /* yarandom.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE1FD5B0981E3CB00F7970E /* yarandom.c */; }; - AF4808DA098C3C6A00FB32B8 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4808DE098C3D4100FB32B8 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4808E1098C3D5000FB32B8 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4808E4098C3D5B00FB32B8 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF480C51098E301400FB32B8 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF480C52098E301400FB32B8 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF480C53098E301400FB32B8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF480C5C098E305900FB32B8 /* helix.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480C2F098E2A6700FB32B8 /* helix.c */; }; AF480C69098E309E00FB32B8 /* helix.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C40988A468000655EE /* helix.xml */; }; - AF480D7A098EEDDE00FB32B8 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF480D7B098EEDDE00FB32B8 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF480D7C098EEDDE00FB32B8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF480D85098EEE3100FB32B8 /* drift.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258990988A468000655EE /* drift.xml */; }; AF480D88098EEE5B00FB32B8 /* drift.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480C82098E336D00FB32B8 /* drift.c */; }; AF480FCC09901DF900FB32B8 /* gltrackball.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480EB0098F63D600FB32B8 /* gltrackball.c */; }; @@ -786,81 +1455,53 @@ AF480FCE09901E0400FB32B8 /* sphere.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480EBB098F649600FB32B8 /* sphere.c */; }; AF480FCF09901E0700FB32B8 /* trackball.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480EAD098F63BE00FB32B8 /* trackball.c */; }; AF480FD009901E0A00FB32B8 /* tube.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480ED2098F652A00FB32B8 /* tube.c */; }; - AF4810F409909FBA00FB32B8 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4810F509909FBA00FB32B8 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4810F609909FBA00FB32B8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF4811010990A00A00FB32B8 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF4811020990A00E00FB32B8 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; AF4811030990A02700FB32B8 /* dangerball.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480DD1098F4F6200FB32B8 /* dangerball.c */; }; - AF48112D0990A2C700FB32B8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF4811440990A35B00FB32B8 /* dangerball.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258920988A468000655EE /* dangerball.xml */; }; AF4812580990CE2700FB32B8 /* gears.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4812250990CB8C00FB32B8 /* gears.c */; }; - AF48125A0990CE2700FB32B8 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF48125B0990CE2700FB32B8 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF48125C0990CE2700FB32B8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF48125D0990CE2700FB32B8 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF48125E0990CE2700FB32B8 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF48125F0990CE2700FB32B8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF48126D0990CE8600FB32B8 /* gears.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B20988A468000655EE /* gears.xml */; }; - AF4812BC0990D3D900FB32B8 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4812BD0990D3D900FB32B8 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4812BE0990D3D900FB32B8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF4812BF0990D3D900FB32B8 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF4812C00990D3D900FB32B8 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF4812C10990D3D900FB32B8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF4812C80990D41700FB32B8 /* pipes.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F60988A469000655EE /* pipes.xml */; }; AF4812C90990D41E00FB32B8 /* buildlwo.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4812760990CF5D00FB32B8 /* buildlwo.c */; }; AF4812CA0990D42000FB32B8 /* pipeobjs.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4812780990CF5D00FB32B8 /* pipeobjs.c */; }; AF4812CB0990D42100FB32B8 /* pipes.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4812790990CF5D00FB32B8 /* pipes.c */; }; AF4812FA0990D9AE00FB32B8 /* XScreenSaverGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = AF4812F80990D9AE00FB32B8 /* XScreenSaverGLView.m */; }; AF48DEF60A0C25E000F94CF9 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF48DEF80A0C25E000F94CF9 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF48DEF90A0C25E000F94CF9 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF48DEFA0A0C25E000F94CF9 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF48DEFB0A0C25E000F94CF9 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF48DEFC0A0C25E000F94CF9 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF48DEFD0A0C25E000F94CF9 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF48E1680A0C268500F94CF9 /* glschool_alg.c in Sources */ = {isa = PBXBuildFile; fileRef = AF48E1620A0C268400F94CF9 /* glschool_alg.c */; }; AF48E1690A0C268500F94CF9 /* glschool_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = AF48E1640A0C268500F94CF9 /* glschool_gl.c */; }; AF48E16A0A0C268500F94CF9 /* glschool.c in Sources */ = {isa = PBXBuildFile; fileRef = AF48E1660A0C268500F94CF9 /* glschool.c */; }; AF48E16C0A0C26A400F94CF9 /* glschool.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF48E16B0A0C26A400F94CF9 /* glschool.xml */; }; AF4A3450102A593600A81B2A /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4A3452102A593600A81B2A /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4A3453102A593600A81B2A /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4A3454102A593600A81B2A /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF4A3455102A593600A81B2A /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF4A3456102A593600A81B2A /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF4A3457102A593600A81B2A /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF4A3462102A59EB00A81B2A /* surfaces.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF4A3461102A59EB00A81B2A /* surfaces.xml */; }; AF4A3464102A5A0E00A81B2A /* surfaces.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4A3463102A5A0E00A81B2A /* surfaces.c */; }; AF4A8CA010B609B50074B062 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; }; AF4FD6EC0CE7A486005EE58E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4FD6EF0CE7A486005EE58E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4FD6F00CE7A486005EE58E /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4FD6F10CE7A486005EE58E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF4FD6F20CE7A486005EE58E /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF4FD6F30CE7A486005EE58E /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF4FD6F40CE7A486005EE58E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF4FD7010CE7A577005EE58E /* lockward.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4FD7000CE7A577005EE58E /* lockward.c */; }; AF4FD7030CE7A5BC005EE58E /* lockward.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF4FD7020CE7A5BC005EE58E /* lockward.xml */; }; AF4FF4C10D52CBDE00666F98 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF4FF4C30D52CBDE00666F98 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF4FF4C40D52CBDE00666F98 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF4FF4C50D52CBDE00666F98 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF4FF4C60D52CBDE00666F98 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF4FF4C70D52CBDE00666F98 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF4FF4C80D52CBDE00666F98 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF4FF4D10D52CC8400666F98 /* cubicgrid.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4FF4D00D52CC8400666F98 /* cubicgrid.c */; }; AF4FF4D40D52CCAA00666F98 /* cubicgrid.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF4FF4D30D52CCAA00666F98 /* cubicgrid.xml */; }; + AF51FD3315845CC900E5741F /* apple2.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2586F0988A468000655EE /* apple2.xml */; }; + AF51FD3415845CD500E5741F /* phosphor.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F30988A469000655EE /* phosphor.xml */; }; + AF51FD3515845D1400E5741F /* SaverListController.m in Sources */ = {isa = PBXBuildFile; fileRef = AF84AF1E15829AF000607E4C /* SaverListController.m */; }; + AF51FD3615845F9900E5741F /* iSaverRunner.xib in Resources */ = {isa = PBXBuildFile; fileRef = AF56019B157DAA3D00DB2055 /* iSaverRunner.xib */; }; + AF51FD3715845F9F00E5741F /* iSaverRunner.xib in Resources */ = {isa = PBXBuildFile; fileRef = AF56019B157DAA3D00DB2055 /* iSaverRunner.xib */; }; + AF51FD3815845FC300E5741F /* SaverRunner.icns in Resources */ = {isa = PBXBuildFile; fileRef = AF2D522513E954A0002AA818 /* SaverRunner.icns */; }; + AF51FD3915845FCB00E5741F /* SaverRunner.icns in Resources */ = {isa = PBXBuildFile; fileRef = AF2D522513E954A0002AA818 /* SaverRunner.icns */; }; + AF51FD3A15845FD300E5741F /* iSaverRunner29.png in Resources */ = {isa = PBXBuildFile; fileRef = AF01295A157D5C2C00C396E1 /* iSaverRunner29.png */; }; + AF51FD3B15845FD800E5741F /* iSaverRunner29.png in Resources */ = {isa = PBXBuildFile; fileRef = AF01295A157D5C2C00C396E1 /* iSaverRunner29.png */; }; + AF51FD3C15845FDB00E5741F /* iSaverRunner50.png in Resources */ = {isa = PBXBuildFile; fileRef = AF01295B157D5C2C00C396E1 /* iSaverRunner50.png */; }; + AF51FD3D15845FDE00E5741F /* iSaverRunner50.png in Resources */ = {isa = PBXBuildFile; fileRef = AF01295B157D5C2C00C396E1 /* iSaverRunner50.png */; }; + AF51FD3E15845FE200E5741F /* iSaverRunner57.png in Resources */ = {isa = PBXBuildFile; fileRef = AF01295C157D5C2C00C396E1 /* iSaverRunner57.png */; }; + AF51FD3F15845FF700E5741F /* iSaverRunner57.png in Resources */ = {isa = PBXBuildFile; fileRef = AF01295C157D5C2C00C396E1 /* iSaverRunner57.png */; }; + AF51FD4015845FF900E5741F /* iSaverRunner72.png in Resources */ = {isa = PBXBuildFile; fileRef = AF01295D157D5C2C00C396E1 /* iSaverRunner72.png */; }; + AF51FD4115845FFC00E5741F /* iSaverRunner72.png in Resources */ = {isa = PBXBuildFile; fileRef = AF01295D157D5C2C00C396E1 /* iSaverRunner72.png */; }; + AF51FD4215845FFF00E5741F /* iSaverRunner114.png in Resources */ = {isa = PBXBuildFile; fileRef = AF01295E157D5C2C00C396E1 /* iSaverRunner114.png */; }; + AF51FD431584600300E5741F /* iSaverRunner114.png in Resources */ = {isa = PBXBuildFile; fileRef = AF01295E157D5C2C00C396E1 /* iSaverRunner114.png */; }; + AF6048FB157C07C600CA21E4 /* jwzgles.c in Sources */ = {isa = PBXBuildFile; fileRef = AF6048F8157C07C600CA21E4 /* jwzgles.c */; }; + AF6048FC157C07C600CA21E4 /* jwzgles.h in Headers */ = {isa = PBXBuildFile; fileRef = AF6048F9157C07C600CA21E4 /* jwzgles.h */; }; + AF6048FD157C07C600CA21E4 /* jwzglesI.h in Headers */ = {isa = PBXBuildFile; fileRef = AF6048FA157C07C600CA21E4 /* jwzglesI.h */; }; AF64232F099F45C3000F4CD4 /* braid.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56EC10996A76F00BA26F7 /* braid.c */; }; AF642330099F45CA000F4CD4 /* braid.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2587D0988A468000655EE /* braid.xml */; }; AF6423F9099FF9C2000F4CD4 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF6423FB099FF9C2000F4CD4 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF6423FC099FF9C2000F4CD4 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF6423FD099FF9C2000F4CD4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF6423FE099FF9C2000F4CD4 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF6423FF099FF9C2000F4CD4 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF642400099FF9C2000F4CD4 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF642408099FFAB0000F4CD4 /* extrusion.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258A00988A468000655EE /* extrusion.xml */; }; AF642412099FFAF1000F4CD4 /* extrusion-helix2.c in Sources */ = {isa = PBXBuildFile; fileRef = AF642409099FFAF0000F4CD4 /* extrusion-helix2.c */; }; AF642413099FFAF1000F4CD4 /* extrusion-helix3.c in Sources */ = {isa = PBXBuildFile; fileRef = AF64240A099FFAF0000F4CD4 /* extrusion-helix3.c */; }; @@ -871,168 +1512,80 @@ AF642418099FFAF1000F4CD4 /* extrusion-twistoid.c in Sources */ = {isa = PBXBuildFile; fileRef = AF64240F099FFAF1000F4CD4 /* extrusion-twistoid.c */; }; AF642419099FFAF1000F4CD4 /* extrusion.c in Sources */ = {isa = PBXBuildFile; fileRef = AF642410099FFAF1000F4CD4 /* extrusion.c */; }; AF6425D209A18855000F4CD4 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF6425D509A18855000F4CD4 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF6425D609A18855000F4CD4 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF6425D709A18855000F4CD4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF6425DE09A188D7000F4CD4 /* hypercube.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C70988A468000655EE /* hypercube.xml */; }; AF6425E009A188FB000F4CD4 /* hypercube.c in Sources */ = {isa = PBXBuildFile; fileRef = AF6425DF09A188FB000F4CD4 /* hypercube.c */; }; AF6425F209A189EC000F4CD4 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF6425F509A189EC000F4CD4 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF6425F609A189EC000F4CD4 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF6425F709A189EC000F4CD4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF6425FE09A18A77000F4CD4 /* qix.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258FF0988A469000655EE /* qix.xml */; }; AF64260009A18A94000F4CD4 /* qix.c in Sources */ = {isa = PBXBuildFile; fileRef = AF6425FF09A18A94000F4CD4 /* qix.c */; }; AF64261509A18D6C000F4CD4 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF64261809A18D6C000F4CD4 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF64261909A18D6C000F4CD4 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF64261A09A18D6C000F4CD4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF64262109A18DFF000F4CD4 /* hyperball.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C60988A468000655EE /* hyperball.xml */; }; AF64262309A18E1E000F4CD4 /* hyperball.c in Sources */ = {isa = PBXBuildFile; fileRef = AF64262209A18E1E000F4CD4 /* hyperball.c */; }; AF64263209A18F54000F4CD4 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF64263509A18F54000F4CD4 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF64263609A18F54000F4CD4 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF64263709A18F54000F4CD4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF64263E09A18FCE000F4CD4 /* moire2.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E60988A469000655EE /* moire2.xml */; }; AF64264009A18FEB000F4CD4 /* moire2.c in Sources */ = {isa = PBXBuildFile; fileRef = AF64263F09A18FEB000F4CD4 /* moire2.c */; }; AF64265509A19229000F4CD4 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF64265809A19229000F4CD4 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF64265909A19229000F4CD4 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF64265A09A19229000F4CD4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF64266109A1929A000F4CD4 /* munch.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258EA0988A469000655EE /* munch.xml */; }; AF64266309A192C5000F4CD4 /* munch.c in Sources */ = {isa = PBXBuildFile; fileRef = AF64266209A192C5000F4CD4 /* munch.c */; }; AF64268109A194B0000F4CD4 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF64268409A194B0000F4CD4 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF64268509A194B0000F4CD4 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF64268609A194B0000F4CD4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF64268D09A19525000F4CD4 /* goop.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258BF0988A468000655EE /* goop.xml */; }; AF64268F09A19542000F4CD4 /* goop.c in Sources */ = {isa = PBXBuildFile; fileRef = AF64268E09A19542000F4CD4 /* goop.c */; }; AF64277709A1D37A000F4CD4 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF64277A09A1D37A000F4CD4 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF64277B09A1D37A000F4CD4 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF64277C09A1D37A000F4CD4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF64278309A1D418000F4CD4 /* speedmine.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259100988A469000655EE /* speedmine.xml */; }; AF64278809A1D433000F4CD4 /* speedmine.c in Sources */ = {isa = PBXBuildFile; fileRef = AF64278709A1D433000F4CD4 /* speedmine.c */; }; AF6427AE09A2DE36000F4CD4 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF6427B109A2DE36000F4CD4 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF6427B209A2DE36000F4CD4 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF6427B309A2DE36000F4CD4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF6427BA09A2DF09000F4CD4 /* bubbles.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258800988A468000655EE /* bubbles.xml */; }; AF6427BE09A2DF47000F4CD4 /* bubbles-default.c in Sources */ = {isa = PBXBuildFile; fileRef = AF6427BB09A2DF47000F4CD4 /* bubbles-default.c */; }; AF6427BF09A2DF47000F4CD4 /* bubbles.c in Sources */ = {isa = PBXBuildFile; fileRef = AF6427BC09A2DF47000F4CD4 /* bubbles.c */; }; AF69640B0E4FE3470085DBCE /* teapot.c in Sources */ = {isa = PBXBuildFile; fileRef = AFC211930E4E30C800D87B6E /* teapot.c */; }; + AF6D7ED4158567240080DDC4 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; }; + AF6D7ED7158567420080DDC4 /* xscreensaver-text in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF0B09CA6FF900EE1051 /* xscreensaver-text */; }; + AF6D7ED81585674C0080DDC4 /* xscreensaver-text in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF0B09CA6FF900EE1051 /* xscreensaver-text */; }; AF7776EA09B63ABF00EA3033 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF7776EF09B63ABF00EA3033 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF7776F009B63ABF00EA3033 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF7776F109B63ABF00EA3033 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF77770209B63B3900EA3033 /* phosphor.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F30988A469000655EE /* phosphor.xml */; }; AF77770409B63B5F00EA3033 /* phosphor.c in Sources */ = {isa = PBXBuildFile; fileRef = AF77770309B63B5F00EA3033 /* phosphor.c */; }; AF77772009B6416100EA3033 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF77772309B6416100EA3033 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF77772409B6416100EA3033 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF77772509B6416100EA3033 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF77772C09B641C800EA3033 /* pacman.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258EE0988A469000655EE /* pacman.xml */; }; AF77772D09B641D300EA3033 /* pacman.c in Sources */ = {isa = PBXBuildFile; fileRef = AF795015099751940059A8B0 /* pacman.c */; }; AF77772E09B641D400EA3033 /* pacman_ai.c in Sources */ = {isa = PBXBuildFile; fileRef = AF795011099751940059A8B0 /* pacman_ai.c */; }; AF77772F09B641D600EA3033 /* pacman_level.c in Sources */ = {isa = PBXBuildFile; fileRef = AF795013099751940059A8B0 /* pacman_level.c */; }; AF77774509B6446500EA3033 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF77774709B6446500EA3033 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF77774809B6446500EA3033 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF77774909B6446500EA3033 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF77774A09B6446500EA3033 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF77774B09B6446500EA3033 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF77774C09B6446500EA3033 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF77775309B644E300EA3033 /* flipscreen3d.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258A80988A468000655EE /* flipscreen3d.xml */; }; AF77775509B644FF00EA3033 /* flipscreen3d.c in Sources */ = {isa = PBXBuildFile; fileRef = AF77775409B644FF00EA3033 /* flipscreen3d.c */; }; AF77777A09B6497800EA3033 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF77777E09B6497800EA3033 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF77777F09B6497800EA3033 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF77778009B6497800EA3033 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF77778109B6497800EA3033 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF77778209B6497800EA3033 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF77778309B6497800EA3033 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF77778A09B64A0D00EA3033 /* gleidescope.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B50988A468000655EE /* gleidescope.xml */; }; AF77778C09B64A2A00EA3033 /* gleidescope.c in Sources */ = {isa = PBXBuildFile; fileRef = AF77778B09B64A2A00EA3033 /* gleidescope.c */; }; AF77779409B64A5200EA3033 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF77779809B64A5200EA3033 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF77779909B64A5200EA3033 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF77779A09B64A5200EA3033 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF77779B09B64A5200EA3033 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF77779C09B64A5200EA3033 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF77779D09B64A5200EA3033 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF7777A409B64AE200EA3033 /* mirrorblob.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E20988A469000655EE /* mirrorblob.xml */; }; AF7777A609B64AFC00EA3033 /* mirrorblob.c in Sources */ = {isa = PBXBuildFile; fileRef = AF7777A509B64AFC00EA3033 /* mirrorblob.c */; }; AF7777AE09B64B2600EA3033 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF7777B209B64B2600EA3033 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF7777B309B64B2600EA3033 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF7777B409B64B2600EA3033 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF7777B509B64B2600EA3033 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF7777B609B64B2600EA3033 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF7777B709B64B2600EA3033 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF7777BE09B64BAC00EA3033 /* stonerview.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2591C0988A469000655EE /* stonerview.xml */; }; AF7777C609B64BD400EA3033 /* stonerview-move.c in Sources */ = {isa = PBXBuildFile; fileRef = AF7777BF09B64BD400EA3033 /* stonerview-move.c */; }; AF7777C709B64BD400EA3033 /* stonerview-osc.c in Sources */ = {isa = PBXBuildFile; fileRef = AF7777C109B64BD400EA3033 /* stonerview-osc.c */; }; AF7777C809B64BD400EA3033 /* stonerview-view.c in Sources */ = {isa = PBXBuildFile; fileRef = AF7777C309B64BD400EA3033 /* stonerview-view.c */; }; AF7777C909B64BD400EA3033 /* stonerview.c in Sources */ = {isa = PBXBuildFile; fileRef = AF7777C409B64BD400EA3033 /* stonerview.c */; }; AF7777D609B64C6B00EA3033 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF7777DA09B64C6B00EA3033 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF7777DB09B64C6B00EA3033 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF7777DC09B64C6B00EA3033 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF7777DD09B64C6B00EA3033 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF7777DE09B64C6B00EA3033 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF7777DF09B64C6B00EA3033 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF7777E609B64CD800EA3033 /* glslideshow.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258BB0988A468000655EE /* glslideshow.xml */; }; AF7777E809B64CF700EA3033 /* glslideshow.c in Sources */ = {isa = PBXBuildFile; fileRef = AF7777E709B64CF700EA3033 /* glslideshow.c */; }; AF7777F009B64E3100EA3033 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF7777F409B64E3100EA3033 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF7777F509B64E3100EA3033 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF7777F609B64E3100EA3033 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF7777F709B64E3100EA3033 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF7777F809B64E3100EA3033 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF7777F909B64E3100EA3033 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF77780009B64EA800EA3033 /* fliptext.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258A90988A468000655EE /* fliptext.xml */; }; AF77780209B64EC000EA3033 /* fliptext.c in Sources */ = {isa = PBXBuildFile; fileRef = AF77780109B64EC000EA3033 /* fliptext.c */; }; AF77781609B6504400EA3033 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF77781B09B6504400EA3033 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF77781C09B6504400EA3033 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF77781D09B6504400EA3033 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF77781E09B6504400EA3033 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF77781F09B6504400EA3033 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF77782009B6504400EA3033 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF77782709B650D200EA3033 /* starwars.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2591B0988A469000655EE /* starwars.xml */; }; AF77782A09B650FF00EA3033 /* starwars.c in Sources */ = {isa = PBXBuildFile; fileRef = AF77782809B650FF00EA3033 /* starwars.c */; }; - AF77782B09B650FF00EA3033 /* starwars.txt in Resources */ = {isa = PBXBuildFile; fileRef = AF77782909B650FF00EA3033 /* starwars.txt */; }; AF77783409B6516900EA3033 /* grab-ximage.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5607909936FDD00F3E977 /* grab-ximage.c */; }; AF77783709B6518400EA3033 /* texfont.c in Sources */ = {isa = PBXBuildFile; fileRef = AF77780809B64F4900EA3033 /* texfont.c */; }; AF77783A09B651AF00EA3033 /* glut_stroke.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56E0B0996A0ED00BA26F7 /* glut_stroke.c */; }; AF77783D09B651C700EA3033 /* glut_swidth.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56E0C0996A0ED00BA26F7 /* glut_swidth.c */; }; AF77784B09B6528100EA3033 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF77784E09B6528100EA3033 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF77784F09B6528100EA3033 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF77785009B6528100EA3033 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF77785109B6528100EA3033 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF77785209B6528100EA3033 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF77785309B6528100EA3033 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF77786709B6536000EA3033 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF77786A09B6536000EA3033 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF77786B09B6536000EA3033 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF77786C09B6536000EA3033 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF77786D09B6536000EA3033 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF77786E09B6536000EA3033 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF77786F09B6536000EA3033 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF77787709B653DC00EA3033 /* dnalogo.c in Sources */ = {isa = PBXBuildFile; fileRef = AF77787609B653DC00EA3033 /* dnalogo.c */; }; AF77787A09B6545E00EA3033 /* dnalogo.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF77787909B6545E00EA3033 /* dnalogo.xml */; }; AF77787C09B654F800EA3033 /* carousel.c in Sources */ = {isa = PBXBuildFile; fileRef = AF77785E09B6530E00EA3033 /* carousel.c */; }; AF77787D09B654FE00EA3033 /* carousel.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258830988A468000655EE /* carousel.xml */; }; AF77788509B6563500EA3033 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF77788809B6563500EA3033 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF77788909B6563500EA3033 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF77788A09B6563500EA3033 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF77789109B656A900EA3033 /* fontglide.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258AE0988A468000655EE /* fontglide.xml */; }; AF77789309B656C300EA3033 /* fontglide.c in Sources */ = {isa = PBXBuildFile; fileRef = AF77789209B656C300EA3033 /* fontglide.c */; }; AF7778AB09B659C800EA3033 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF7778AE09B659C800EA3033 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF7778AF09B659C800EA3033 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF7778B009B659C800EA3033 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF7778B909B65A6E00EA3033 /* blitspin.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258760988A468000655EE /* blitspin.xml */; }; AF7778BB09B65A8A00EA3033 /* blitspin.c in Sources */ = {isa = PBXBuildFile; fileRef = AF7778BA09B65A8A00EA3033 /* blitspin.c */; }; AF7778C409B65CFE00EA3033 /* font-ximage.c in Sources */ = {isa = PBXBuildFile; fileRef = AF7778C209B65CFE00EA3033 /* font-ximage.c */; }; @@ -1042,146 +1595,533 @@ AF78D179142DD8F3002AAF77 /* voronoi.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF0DCA610C4CBB8E00D76972 /* voronoi.xml */; }; AF78D17B142DD8F3002AAF77 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; AF78D17C142DD8F3002AAF77 /* voronoi.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0DCA5F0C4CBB7300D76972 /* voronoi.c */; }; - AF78D17E142DD8F3002AAF77 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF78D17F142DD8F3002AAF77 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF78D180142DD8F3002AAF77 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF78D181142DD8F3002AAF77 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF78D182142DD8F3002AAF77 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF78D183142DD8F3002AAF77 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF78D18B142DD96E002AAF77 /* hilbert.c in Sources */ = {isa = PBXBuildFile; fileRef = AF78D18A142DD96E002AAF77 /* hilbert.c */; }; AF78D18C142DD96E002AAF77 /* hilbert.c in Sources */ = {isa = PBXBuildFile; fileRef = AF78D18A142DD96E002AAF77 /* hilbert.c */; }; AF78D18D142DD96E002AAF77 /* hilbert.c in Sources */ = {isa = PBXBuildFile; fileRef = AF78D18A142DD96E002AAF77 /* hilbert.c */; }; - AF78D18F142DD99A002AAF77 /* hilbert.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF78D18E142DD99A002AAF77 /* hilbert.xml */; }; - AF78D190142DD99B002AAF77 /* hilbert.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF78D18E142DD99A002AAF77 /* hilbert.xml */; }; AF78D191142DD99B002AAF77 /* hilbert.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF78D18E142DD99A002AAF77 /* hilbert.xml */; }; AF794F6A099748450059A8B0 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF794F6D099748450059A8B0 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF794F6E099748450059A8B0 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF794F6F099748450059A8B0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF794F7D0997486C0059A8B0 /* demon.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258960988A468000655EE /* demon.xml */; }; AF794F7F099748860059A8B0 /* demon.c in Sources */ = {isa = PBXBuildFile; fileRef = AF794F7E099748860059A8B0 /* demon.c */; }; AF794F9409974A320059A8B0 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF794F9709974A320059A8B0 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF794F9809974A320059A8B0 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF794F9909974A320059A8B0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF794FA809974AC60059A8B0 /* fiberlamp.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258A20988A468000655EE /* fiberlamp.xml */; }; AF794FAA09974AE30059A8B0 /* fiberlamp.c in Sources */ = {isa = PBXBuildFile; fileRef = AF794FA909974AE30059A8B0 /* fiberlamp.c */; }; AF794FD309974FA60059A8B0 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF794FD609974FA60059A8B0 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF794FD709974FA60059A8B0 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF794FD809974FA60059A8B0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF794FDF09974FD10059A8B0 /* loop.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258DD0988A468000655EE /* loop.xml */; }; AF794FE109974FEC0059A8B0 /* loop.c in Sources */ = {isa = PBXBuildFile; fileRef = AF794FE009974FEC0059A8B0 /* loop.c */; }; + AF84AF1F15829AF000607E4C /* SaverListController.m in Sources */ = {isa = PBXBuildFile; fileRef = AF84AF1E15829AF000607E4C /* SaverListController.m */; }; + AF84AF2015829AF000607E4C /* SaverListController.m in Sources */ = {isa = PBXBuildFile; fileRef = AF84AF1E15829AF000607E4C /* SaverListController.m */; }; AF84FD4209B1209E00F3AB06 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF84FD4109B1209E00F3AB06 /* GLUT.framework */; }; + AF91897E158FC00A002B5D1E /* iSaverRunner29.png in Resources */ = {isa = PBXBuildFile; fileRef = AF01295A157D5C2C00C396E1 /* iSaverRunner29.png */; }; + AF91897F158FC00A002B5D1E /* iSaverRunner50.png in Resources */ = {isa = PBXBuildFile; fileRef = AF01295B157D5C2C00C396E1 /* iSaverRunner50.png */; }; + AF918980158FC00A002B5D1E /* iSaverRunner57.png in Resources */ = {isa = PBXBuildFile; fileRef = AF01295C157D5C2C00C396E1 /* iSaverRunner57.png */; }; + AF918981158FC00A002B5D1E /* iSaverRunner72.png in Resources */ = {isa = PBXBuildFile; fileRef = AF01295D157D5C2C00C396E1 /* iSaverRunner72.png */; }; + AF918982158FC00A002B5D1E /* iSaverRunner114.png in Resources */ = {isa = PBXBuildFile; fileRef = AF01295E157D5C2C00C396E1 /* iSaverRunner114.png */; }; + AF918983158FC00A002B5D1E /* iSaverRunner.xib in Resources */ = {isa = PBXBuildFile; fileRef = AF56019B157DAA3D00DB2055 /* iSaverRunner.xib */; }; + AF918986158FC00A002B5D1E /* SaverRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = AFE1FD400981E32E00F7970E /* SaverRunner.m */; }; + AF918987158FC00A002B5D1E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; + AF918988158FC00A002B5D1E /* SaverListController.m in Sources */ = {isa = PBXBuildFile; fileRef = AF84AF1E15829AF000607E4C /* SaverListController.m */; }; + AF918993158FC2BE002B5D1E /* abstractile.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE6A4340CDD800F002805BF /* abstractile.c */; }; + AF918994158FC2BE002B5D1E /* anemone.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477231099D4FD5001F091E /* anemone.c */; }; + AF918995158FC2E0002B5D1E /* analogtv.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4CFA09B5AC94006E59CF /* analogtv.c */; }; + AF918996158FC310002B5D1E /* anemotaxis.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4773D4099D6817001F091E /* anemotaxis.c */; }; + AF918997158FC310002B5D1E /* apple2-main.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4E0509B5BC9D006E59CF /* apple2-main.c */; }; + AF918998158FC310002B5D1E /* apple2.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4DD309B5B990006E59CF /* apple2.c */; }; + AF918999158FC310002B5D1E /* asm6502.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0DCA320C4C74A200D76972 /* asm6502.c */; }; + AF91899A158FC310002B5D1E /* attraction.c in Sources */ = {isa = PBXBuildFile; fileRef = AF976DFA09896BEB001F8B92 /* attraction.c */; }; + AF91899B158FC310002B5D1E /* barcode.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975A99099C6C3500B05160 /* barcode.c */; }; + AF91899C158FC310002B5D1E /* blaster.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4776A2099DAADE001F091E /* blaster.c */; }; + AF91899D158FC310002B5D1E /* blitspin.c in Sources */ = {isa = PBXBuildFile; fileRef = AF7778BA09B65A8A00EA3033 /* blitspin.c */; }; + AF91899E158FC310002B5D1E /* boxfit.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4778A3099DDA91001F091E /* boxfit.c */; }; + AF91899F158FC310002B5D1E /* bsod.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4DC309B5B87D006E59CF /* bsod.c */; }; + AF9189A0158FC310002B5D1E /* bubbles-default.c in Sources */ = {isa = PBXBuildFile; fileRef = AF6427BB09A2DF47000F4CD4 /* bubbles-default.c */; }; + AF9189A2158FC310002B5D1E /* bumps.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D48EE09B533AE006E59CF /* bumps.c */; }; + AF9189A3158FC310002B5D1E /* ccurve.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4771EF099D4DFE001F091E /* ccurve.c */; }; + AF9189A4158FC310002B5D1E /* celtic.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477787099DBA29001F091E /* celtic.c */; }; + AF9189A5158FC310002B5D1E /* cloudlife.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477720099DB01C001F091E /* cloudlife.c */; }; + AF9189A6158FC310002B5D1E /* companion.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3581D91431D5FC00E09C51 /* companion.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF9189A7158FC311002B5D1E /* companion_disc.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3581D61431D5FC00E09C51 /* companion_disc.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF9189A8158FC311002B5D1E /* companion_heart.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3581D71431D5FC00E09C51 /* companion_heart.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF9189A9158FC311002B5D1E /* companion_quad.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3581D81431D5FC00E09C51 /* companion_quad.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF9189AA158FC311002B5D1E /* compass.c in Sources */ = {isa = PBXBuildFile; fileRef = AF47717C099D47D3001F091E /* compass.c */; }; + AF9189AB158FC311002B5D1E /* coral.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4775EF099D9FFF001F091E /* coral.c */; }; + AF9189AD158FC311002B5D1E /* cwaves.c in Sources */ = {isa = PBXBuildFile; fileRef = AFF463490C44044E00EE6509 /* cwaves.c */; }; + AF9189AE158FC311002B5D1E /* cynosure.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4778FB099DDE79001F091E /* cynosure.c */; }; + AF9189AF158FC311002B5D1E /* decayscreen.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D467809B5110B006E59CF /* decayscreen.c */; }; + AF9189B0158FC311002B5D1E /* deco.c in Sources */ = {isa = PBXBuildFile; fileRef = AFC25B5E0988BA63000655EE /* deco.c */; }; + AF9189B1158FC311002B5D1E /* deluxe.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477145099D43E2001F091E /* deluxe.c */; }; + AF9189B2158FC311002B5D1E /* distort.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D490709B536F7006E59CF /* distort.c */; }; + AF9189B3158FC311002B5D1E /* epicycle.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477605099DA097001F091E /* epicycle.c */; }; + AF9189B4158FC311002B5D1E /* eruption.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975A83099C6B4900B05160 /* eruption.c */; }; + AF9189B5158FC311002B5D1E /* fireworkx.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975AEE099C6F1700B05160 /* fireworkx.c */; }; + AF9189B6158FC334002B5D1E /* flame.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477496099D8A53001F091E /* flame.c */; }; + AF9189B7158FC334002B5D1E /* fluidballs.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4777A4099DBB11001F091E /* fluidballs.c */; }; + AF9189B8158FC334002B5D1E /* fontglide.c in Sources */ = {isa = PBXBuildFile; fileRef = AF77789209B656C300EA3033 /* fontglide.c */; }; + AF9189B9158FC334002B5D1E /* fps.c in Sources */ = {isa = PBXBuildFile; fileRef = AFBF893C0E41D930006A2D66 /* fps.c */; }; + AF9189BA158FC334002B5D1E /* fuzzyflakes.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4773B4099D6778001F091E /* fuzzyflakes.c */; }; + AF9189BB158FC334002B5D1E /* goop.c in Sources */ = {isa = PBXBuildFile; fileRef = AF64268E09A19542000F4CD4 /* goop.c */; }; + AF9189BC158FC334002B5D1E /* greynetic.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480C21098E28EF00FB32B8 /* greynetic.c */; }; + AF9189BD158FC334002B5D1E /* halftone.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477266099D5768001F091E /* halftone.c */; }; + AF9189BE158FC334002B5D1E /* halo.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480C29098E295D00FB32B8 /* halo.c */; }; + AF9189BF158FC334002B5D1E /* helix.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480C2F098E2A6700FB32B8 /* helix.c */; }; + AF9189C2158FC334002B5D1E /* ifs.c in Sources */ = {isa = PBXBuildFile; fileRef = AF47743A099D7CEA001F091E /* ifs.c */; }; + AF9189C3158FC334002B5D1E /* imsmap.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975740099C31DD00B05160 /* imsmap.c */; }; + AF9189C4158FC334002B5D1E /* interaggregate.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477769099DB710001F091E /* interaggregate.c */; }; + AF9189C5158FC334002B5D1E /* interference.c in Sources */ = {isa = PBXBuildFile; fileRef = AF476FD0099D15AA001F091E /* interference.c */; }; + AF9189C6158FC334002B5D1E /* intermomentary.c in Sources */ = {isa = PBXBuildFile; fileRef = AF47741C099D6A6C001F091E /* intermomentary.c */; }; + AF9189C7158FC334002B5D1E /* kaleidescope.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4774AC099D8B08001F091E /* kaleidescope.c */; }; + AF9189C8158FC334002B5D1E /* kumppa.c in Sources */ = {isa = PBXBuildFile; fileRef = AF47762A099DA2E9001F091E /* kumppa.c */; }; + AF9189CB158FC334002B5D1E /* m6502.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0DCA340C4C74A200D76972 /* m6502.c */; }; + AF9189CC158FC334002B5D1E /* maze.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4774E1099D8C8B001F091E /* maze.c */; }; + AF9189CD158FC334002B5D1E /* memscroller.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975B14099C709E00B05160 /* memscroller.c */; }; + AF9189CE158FC334002B5D1E /* metaballs.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975A49099C689F00B05160 /* metaballs.c */; }; + AF9189CF158FC334002B5D1E /* moire.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975789099C37A500B05160 /* moire.c */; }; + AF9189D0158FC334002B5D1E /* moire2.c in Sources */ = {isa = PBXBuildFile; fileRef = AF64263F09A18FEB000F4CD4 /* moire2.c */; }; + AF9189D1158FC334002B5D1E /* munch.c in Sources */ = {isa = PBXBuildFile; fileRef = AF64266209A192C5000F4CD4 /* munch.c */; }; + AF9189D2158FC334002B5D1E /* nerverot.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477205099D4EB6001F091E /* nerverot.c */; }; + AF9189D3158FC334002B5D1E /* noseguy.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975C76099C8FC700B05160 /* noseguy.c */; }; + AF9189D4158FC334002B5D1E /* pedal.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477570099D9A8A001F091E /* pedal.c */; }; + AF9189D5158FC334002B5D1E /* penetrate.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4778BE099DDC32001F091E /* penetrate.c */; }; + AF9189D6158FC334002B5D1E /* petri.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477683099DA8C7001F091E /* petri.c */; }; + AF9189D7158FC334002B5D1E /* phosphor.c in Sources */ = {isa = PBXBuildFile; fileRef = AF77770309B63B5F00EA3033 /* phosphor.c */; }; + AF9189D8158FC334002B5D1E /* piecewise.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477297099D5980001F091E /* piecewise.c */; }; + AF9189D9158FC334002B5D1E /* pong.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4CFC09B5AC94006E59CF /* pong.c */; }; + AF9189DA158FC334002B5D1E /* popsquares.c in Sources */ = {isa = PBXBuildFile; fileRef = AF47727E099D5808001F091E /* popsquares.c */; }; + AF9189DB158FC334002B5D1E /* pyro.c in Sources */ = {isa = PBXBuildFile; fileRef = AF47759C099D9CA3001F091E /* pyro.c */; }; + AF9189DC158FC334002B5D1E /* qix.c in Sources */ = {isa = PBXBuildFile; fileRef = AF6425FF09A18A94000F4CD4 /* qix.c */; }; + AF9189DD158FC334002B5D1E /* rd-bomb.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9757D5099C3EB800B05160 /* rd-bomb.c */; }; + AF9189DE158FC334002B5D1E /* ripples.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D493E09B53D55006E59CF /* ripples.c */; }; + AF9189DF158FC35D002B5D1E /* rocks.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975D66099CA16A00B05160 /* rocks.c */; }; + AF9189E0158FC35D002B5D1E /* rorschach.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE1FD620981E40800F7970E /* rorschach.c */; }; + AF9189E1158FC35D002B5D1E /* rotzoomer.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D496709B540A4006E59CF /* rotzoomer.c */; }; + AF9189E2158FC35D002B5D1E /* shadebobs.c in Sources */ = {isa = PBXBuildFile; fileRef = AF97587A099C492000B05160 /* shadebobs.c */; }; + AF9189E3158FC35D002B5D1E /* slidescreen.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D475809B53091006E59CF /* slidescreen.c */; }; + AF9189E4158FC35D002B5D1E /* speedmine.c in Sources */ = {isa = PBXBuildFile; fileRef = AF64278709A1D433000F4CD4 /* speedmine.c */; }; + AF9189E5158FC35D002B5D1E /* spotlight.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D49AA09B54596006E59CF /* spotlight.c */; }; + AF9189E6158FC35D002B5D1E /* squiral.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477657099DA75D001F091E /* squiral.c */; }; + AF9189E7158FC35D002B5D1E /* starfish.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4775B3099D9D67001F091E /* starfish.c */; }; + AF9189E8158FC35D002B5D1E /* substrate.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477736099DB104001F091E /* substrate.c */; }; + AF9189EA158FC35D002B5D1E /* tronbit.c in Sources */ = {isa = PBXBuildFile; fileRef = AF35821B1433314C00E09C51 /* tronbit.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF9189EB158FC35D002B5D1E /* tronbit_idle1.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3582171433314C00E09C51 /* tronbit_idle1.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF9189EC158FC35D002B5D1E /* tronbit_idle2.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3582181433314C00E09C51 /* tronbit_idle2.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF9189ED158FC35D002B5D1E /* tronbit_no.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3582191433314C00E09C51 /* tronbit_no.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF9189EE158FC35D002B5D1E /* tronbit_yes.c in Sources */ = {isa = PBXBuildFile; fileRef = AF35821A1433314C00E09C51 /* tronbit_yes.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF9189EF158FC35D002B5D1E /* truchet.c in Sources */ = {isa = PBXBuildFile; fileRef = AF476FF0099D1713001F091E /* truchet.c */; }; + AF9189F0158FC35D002B5D1E /* twang.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D497F09B541E5006E59CF /* twang.c */; }; + AF9189F1158FC35D002B5D1E /* vermiculate.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477704099DAF3F001F091E /* vermiculate.c */; }; + AF9189F2158FC35D002B5D1E /* wander.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477192099D4864001F091E /* wander.c */; }; + AF9189F3158FC35E002B5D1E /* whirlwindwarp.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4776EE099DAE58001F091E /* whirlwindwarp.c */; }; + AF9189F5158FC35E002B5D1E /* wormhole.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477395099D65FE001F091E /* wormhole.c */; }; + AF9189F6158FC35E002B5D1E /* xanalogtv.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4D9209B5B444006E59CF /* xanalogtv.c */; }; + AF9189F7158FC35E002B5D1E /* xflame.c in Sources */ = {isa = PBXBuildFile; fileRef = AF97582F099C427500B05160 /* xflame.c */; }; + AF9189F8158FC35E002B5D1E /* xjack.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4778DA099DDD2B001F091E /* xjack.c */; }; + AF9189F9158FC35E002B5D1E /* xlyap.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4C7C09B5A044006E59CF /* xlyap.c */; }; + AF9189FA158FC35E002B5D1E /* xmatrix.c in Sources */ = {isa = PBXBuildFile; fileRef = AF477455099D7D8A001F091E /* xmatrix.c */; }; + AF9189FB158FC35E002B5D1E /* xrayswarm.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4776D3099DACEB001F091E /* xrayswarm.c */; }; + AF9189FC158FC35E002B5D1E /* xspirograph.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4776BD099DAC46001F091E /* xspirograph.c */; }; + AF9189FD158FC35E002B5D1E /* zoom.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D48D409B53229006E59CF /* zoom.c */; }; + AF9189FF158FC38A002B5D1E /* apollonian.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD5713F0996BFBE00BA26F7 /* apollonian.c */; }; + AF918A00158FC38A002B5D1E /* bouboule.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD572B90996FB3D00BA26F7 /* bouboule.c */; }; + AF918A01158FC38A002B5D1E /* braid.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56EC10996A76F00BA26F7 /* braid.c */; }; + AF918A02158FC38A002B5D1E /* crystal.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD572ED0997006E00BA26F7 /* crystal.c */; }; + AF918A03158FC38A002B5D1E /* demon.c in Sources */ = {isa = PBXBuildFile; fileRef = AF794F7E099748860059A8B0 /* demon.c */; }; + AF918A04158FC38A002B5D1E /* discrete.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD571280996BEF700BA26F7 /* discrete.c */; }; + AF918A05158FC38A002B5D1E /* drift.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480C82098E336D00FB32B8 /* drift.c */; }; + AF918A06158FC38A002B5D1E /* euler2d.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD571560996C07F00BA26F7 /* euler2d.c */; }; + AF918A07158FC38A002B5D1E /* fadeplot.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD5706C0996B70000BA26F7 /* fadeplot.c */; }; + AF918A08158FC38A002B5D1E /* fiberlamp.c in Sources */ = {isa = PBXBuildFile; fileRef = AF794FA909974AE30059A8B0 /* fiberlamp.c */; }; + AF918A0A158FC38A002B5D1E /* flow.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD571010996BC3800BA26F7 /* flow.c */; }; + AF918A0C158FC38A002B5D1E /* galaxy.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56F360996ABD200BA26F7 /* galaxy.c */; }; + AF918A0D158FC38A002B5D1E /* grav.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56F620996AF2D00BA26F7 /* grav.c */; }; + AF918A0E158FC38A002B5D1E /* hopalong.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56F880996B06600BA26F7 /* hopalong.c */; }; + AF918A11158FC38A002B5D1E /* julia.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD5730C099702C800BA26F7 /* julia.c */; }; + AF918A16158FC38A002B5D1E /* loop.c in Sources */ = {isa = PBXBuildFile; fileRef = AF794FE009974FEC0059A8B0 /* loop.c */; }; + AF918A17158FC38A002B5D1E /* mountain.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD570820996B79300BA26F7 /* mountain.c */; }; + AF918A18158FC38A002B5D1E /* pacman.c in Sources */ = {isa = PBXBuildFile; fileRef = AF795015099751940059A8B0 /* pacman.c */; }; + AF918A19158FC38A002B5D1E /* pacman_ai.c in Sources */ = {isa = PBXBuildFile; fileRef = AF795011099751940059A8B0 /* pacman_ai.c */; }; + AF918A1A158FC38A002B5D1E /* pacman_level.c in Sources */ = {isa = PBXBuildFile; fileRef = AF795013099751940059A8B0 /* pacman_level.c */; }; + AF918A1B158FC38A002B5D1E /* penrose.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD5700C0996B49D00BA26F7 /* penrose.c */; }; + AF918A1C158FC38A002B5D1E /* polyominoes.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD572800996EF2B00BA26F7 /* polyominoes.c */; }; + AF918A1E158FC38A002B5D1E /* sierpinski.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD570220996B52700BA26F7 /* sierpinski.c */; }; + AF918A1F158FC38A002B5D1E /* slip.c in Sources */ = {isa = PBXBuildFile; fileRef = AF47793D099DE56A001F091E /* slip.c */; }; + AF918A22158FC38A002B5D1E /* strange.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD57371099741A200BA26F7 /* strange.c */; }; + AF918A23158FC38A002B5D1E /* swirl.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD572350996E53E00BA26F7 /* swirl.c */; }; + AF918A24158FC38A002B5D1E /* thornbird.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD5716B0996C16700BA26F7 /* thornbird.c */; }; + AF918A25158FC38A002B5D1E /* triangle.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD570980996B86200BA26F7 /* triangle.c */; }; + AF918A28158FC3BB002B5D1E /* antinspect.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5605F09936E9C00F3E977 /* antinspect.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A29158FC3BB002B5D1E /* antmaze.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA562EF0993941600F3E977 /* antmaze.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A2A158FC3BB002B5D1E /* antspotlight.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5607809936FDD00F3E977 /* antspotlight.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A2B158FC3BB002B5D1E /* atlantis.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0839A909930C4900277BE9 /* atlantis.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A2C158FC3BB002B5D1E /* atunnel.c in Sources */ = {isa = PBXBuildFile; fileRef = AF083A31099311CE00277BE9 /* atunnel.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A2D158FC3BB002B5D1E /* b_draw.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55AF409933DBF00F3E977 /* b_draw.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A2E158FC3BB002B5D1E /* b_lockglue.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55AF509933DBF00F3E977 /* b_lockglue.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A2F158FC3BB002B5D1E /* b_sphere.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55AF609933DBF00F3E977 /* b_sphere.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A30158FC3BB002B5D1E /* blinkbox.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5616D09937C9A00F3E977 /* blinkbox.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A31158FC3BB002B5D1E /* blocktube.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5602909936D0700F3E977 /* blocktube.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A32158FC3BB002B5D1E /* boing.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA562D40993930C00F3E977 /* boing.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A33158FC3BB002B5D1E /* bouncingcow.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EE70993613E00F3E977 /* bouncingcow.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A34158FC3BB002B5D1E /* boxed.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55CBE09934C0900F3E977 /* boxed.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A35158FC3BB002B5D1E /* bubble3d.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55AE409933D3800F3E977 /* bubble3d.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A36158FC3BB002B5D1E /* buildlwo.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4812760990CF5D00FB32B8 /* buildlwo.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A37158FC3BB002B5D1E /* cage.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5595D0993310500F3E977 /* cage.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A38158FC3BB002B5D1E /* carousel.c in Sources */ = {isa = PBXBuildFile; fileRef = AF77785E09B6530E00EA3033 /* carousel.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A39158FC3BB002B5D1E /* chessmodels.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55E2309935F2B00F3E977 /* chessmodels.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A3A158FC3BB002B5D1E /* circuit.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55BC00993416E00F3E977 /* circuit.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A3B158FC3BB002B5D1E /* cow_face.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EE80993613E00F3E977 /* cow_face.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A3C158FC3BB002B5D1E /* cow_hide.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EE90993613E00F3E977 /* cow_hide.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A3D158FC3BB002B5D1E /* cow_hoofs.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EEA0993613E00F3E977 /* cow_hoofs.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A3E158FC3BB002B5D1E /* cow_horns.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EEB0993613E00F3E977 /* cow_horns.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A3F158FC3BB002B5D1E /* cow_tail.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EEC0993613E00F3E977 /* cow_tail.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A40158FC3BB002B5D1E /* cow_udder.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EED0993613E00F3E977 /* cow_udder.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A41158FC3BB002B5D1E /* crackberg.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA563290993957100F3E977 /* crackberg.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A42158FC3BB002B5D1E /* cube21.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA563660993970F00F3E977 /* cube21.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A43158FC3BB002B5D1E /* cubenetic.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55D770993589300F3E977 /* cubenetic.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A44158FC3BB002B5D1E /* cubestorm.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55FF309936C4500F3E977 /* cubestorm.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A45158FC3BB002B5D1E /* cubicgrid.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4FF4D00D52CC8400666F98 /* cubicgrid.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A46158FC3BB002B5D1E /* dangerball.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480DD1098F4F6200FB32B8 /* dangerball.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A48158FC3BB002B5D1E /* dolphin.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0839AA09930C4900277BE9 /* dolphin.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A49158FC3BB002B5D1E /* dropshadow.c in Sources */ = {isa = PBXBuildFile; fileRef = AF241F81107C38DF00046A84 /* dropshadow.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A4A158FC3E5002B5D1E /* endgame.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55E2509935F2B00F3E977 /* endgame.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A4B158FC3E5002B5D1E /* engine.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55C230993435300F3E977 /* engine.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A54158FC3E5002B5D1E /* flipflop.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5604709936DCC00F3E977 /* flipflop.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A55158FC3E5002B5D1E /* flipscreen3d.c in Sources */ = {isa = PBXBuildFile; fileRef = AF77775409B644FF00EA3033 /* flipscreen3d.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A56158FC3E5002B5D1E /* fliptext.c in Sources */ = {isa = PBXBuildFile; fileRef = AF77780109B64EC000EA3033 /* fliptext.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A57158FC3E5002B5D1E /* flyingtoasters.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55E980993608800F3E977 /* flyingtoasters.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A58158FC3E5002B5D1E /* font-ximage.c in Sources */ = {isa = PBXBuildFile; fileRef = AF7778C209B65CFE00EA3033 /* font-ximage.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A59158FC3E5002B5D1E /* fps-gl.c in Sources */ = {isa = PBXBuildFile; fileRef = AFBF89AE0E423FC3006A2D66 /* fps-gl.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A5A158FC3E5002B5D1E /* gears.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4812250990CB8C00FB32B8 /* gears.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A5B158FC3E5002B5D1E /* gflux.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55BA60993401A00F3E977 /* gflux.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A5C158FC3E5002B5D1E /* glblur.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55E4509935FD300F3E977 /* glblur.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A5D158FC3E5002B5D1E /* glcells.c in Sources */ = {isa = PBXBuildFile; fileRef = AFF463710C440B9200EE6509 /* glcells.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A5E158FC3E5002B5D1E /* gleidescope.c in Sources */ = {isa = PBXBuildFile; fileRef = AF77778B09B64A2A00EA3033 /* gleidescope.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A60158FC3E5002B5D1E /* glhanoi.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA563460993963400F3E977 /* glhanoi.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A61158FC3E5002B5D1E /* glknots.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5600E09936CB300F3E977 /* glknots.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A62158FC3E5002B5D1E /* glmatrix.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55F870993648500F3E977 /* glmatrix.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A63158FC3E5002B5D1E /* glplanet.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55B2109933E4A00F3E977 /* glplanet.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A64158FC3E5002B5D1E /* glschool.c in Sources */ = {isa = PBXBuildFile; fileRef = AF48E1660A0C268500F94CF9 /* glschool.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A65158FC3E5002B5D1E /* glschool_alg.c in Sources */ = {isa = PBXBuildFile; fileRef = AF48E1620A0C268400F94CF9 /* glschool_alg.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A66158FC3E5002B5D1E /* glschool_gl.c in Sources */ = {isa = PBXBuildFile; fileRef = AF48E1640A0C268500F94CF9 /* glschool_gl.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A67158FC3E5002B5D1E /* glslideshow.c in Sources */ = {isa = PBXBuildFile; fileRef = AF7777E709B64CF700EA3033 /* glslideshow.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A68158FC3E5002B5D1E /* glsnake.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55C8C099349EE00F3E977 /* glsnake.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A69158FC3E5002B5D1E /* gltext.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56E080996A07A00BA26F7 /* gltext.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A6A158FC3E5002B5D1E /* hilbert.c in Sources */ = {isa = PBXBuildFile; fileRef = AF78D18A142DD96E002AAF77 /* hilbert.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A6B158FC3E5002B5D1E /* hypertorus.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55F59099362DF00F3E977 /* hypertorus.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A6C158FC3E5002B5D1E /* hypnowheel.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3C715D0D624C600030CC0D /* hypnowheel.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A6D158FC3E5002B5D1E /* involute.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE6A16A0CDD78EA002805BF /* involute.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A6E158FC417002B5D1E /* jigglypuff.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55F210993620200F3E977 /* jigglypuff.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A6F158FC417002B5D1E /* juggler3d.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA563B90993991300F3E977 /* juggler3d.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A70158FC417002B5D1E /* klein.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55F3F0993626E00F3E977 /* klein.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A71158FC417002B5D1E /* lament.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A8E0993369100F3E977 /* lament.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A72158FC417002B5D1E /* lavalite.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55DDD09935DB600F3E977 /* lavalite.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A74158FC417002B5D1E /* marching.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55DE109935DFB00F3E977 /* marching.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A75158FC417002B5D1E /* menger.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55BF9099342D500F3E977 /* menger.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A76158FC417002B5D1E /* mirrorblob.c in Sources */ = {isa = PBXBuildFile; fileRef = AF7777A509B64AFC00EA3033 /* mirrorblob.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A77158FC417002B5D1E /* moebius.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55982099331C300F3E977 /* moebius.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A78158FC417002B5D1E /* moebiusgears.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE6A40B0CDD7BC3002805BF /* moebiusgears.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A79158FC417002B5D1E /* molecule.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA561120993786800F3E977 /* molecule.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A7A158FC417002B5D1E /* morph3d.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA559CC099332E800F3E977 /* morph3d.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A7B158FC417002B5D1E /* noof.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5619009937D3600F3E977 /* noof.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A7C158FC417002B5D1E /* photopile.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD51DB60F063BCE00471C02 /* photopile.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A7D158FC417002B5D1E /* pinion.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA562340993856A00F3E977 /* pinion.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A7E158FC417002B5D1E /* pipeobjs.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4812780990CF5D00FB32B8 /* pipeobjs.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A7F158FC417002B5D1E /* pipes.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4812790990CF5D00FB32B8 /* pipes.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A82158FC417002B5D1E /* polytopes.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA560C3099371D500F3E977 /* polytopes.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A83158FC417002B5D1E /* providence.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5621C099384F600F3E977 /* providence.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A84158FC417002B5D1E /* pulsar.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55B3F09933EC600F3E977 /* pulsar.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A85158FC417002B5D1E /* queens.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55E0609935EB800F3E977 /* queens.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A86158FC417002B5D1E /* rubik.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA559EA0993335C00F3E977 /* rubik.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A87158FC417002B5D1E /* rubikblocks.c in Sources */ = {isa = PBXBuildFile; fileRef = AF32D9FA0F3AD1200080F535 /* rubikblocks.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A88158FC417002B5D1E /* s1_1.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A400993351F00F3E977 /* s1_1.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A89158FC417002B5D1E /* s1_2.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A410993351F00F3E977 /* s1_2.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A8A158FC417002B5D1E /* s1_3.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A420993351F00F3E977 /* s1_3.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A8B158FC417002B5D1E /* s1_4.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A430993351F00F3E977 /* s1_4.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A8C158FC417002B5D1E /* s1_5.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A440993351F00F3E977 /* s1_5.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A8D158FC417002B5D1E /* s1_6.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A450993351F00F3E977 /* s1_6.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A8E158FC417002B5D1E /* s1_b.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A460993351F00F3E977 /* s1_b.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A8F158FC417002B5D1E /* sballs.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55D510993569C00F3E977 /* sballs.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A90158FC417002B5D1E /* shark.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0839AB09930C4900277BE9 /* shark.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A91158FC417002B5D1E /* sierpinski3d.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55B8E09933FBF00F3E977 /* sierpinski3d.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A92158FC417002B5D1E /* skytentacles.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE2A4720E2E90E300ADB298 /* skytentacles.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A93158FC417002B5D1E /* sonar-icmp.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE30BFF0E52B1DC00CCF4A5 /* sonar-icmp.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A94158FC417002B5D1E /* sonar-sim.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE30C000E52B1DC00CCF4A5 /* sonar-sim.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A95158FC417002B5D1E /* sonar.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE30C010E52B1DC00CCF4A5 /* sonar.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A96158FC417002B5D1E /* spheremonics.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55D940993590F00F3E977 /* spheremonics.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A97158FC473002B5D1E /* sproingies.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A470993351F00F3E977 /* sproingies.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A98158FC473002B5D1E /* sproingiewrap.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A480993351F00F3E977 /* sproingiewrap.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A99158FC473002B5D1E /* stairs.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A1A0993345900F3E977 /* stairs.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A9A158FC473002B5D1E /* starwars.c in Sources */ = {isa = PBXBuildFile; fileRef = AF77782809B650FF00EA3033 /* starwars.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A9B158FC473002B5D1E /* stonerview-move.c in Sources */ = {isa = PBXBuildFile; fileRef = AF7777BF09B64BD400EA3033 /* stonerview-move.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A9C158FC473002B5D1E /* stonerview-osc.c in Sources */ = {isa = PBXBuildFile; fileRef = AF7777C109B64BD400EA3033 /* stonerview-osc.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A9D158FC473002B5D1E /* stonerview-view.c in Sources */ = {isa = PBXBuildFile; fileRef = AF7777C309B64BD400EA3033 /* stonerview-view.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A9E158FC473002B5D1E /* stonerview.c in Sources */ = {isa = PBXBuildFile; fileRef = AF7777C409B64BD400EA3033 /* stonerview.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918A9F158FC473002B5D1E /* superquadrics.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA559A80993326300F3E977 /* superquadrics.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AA0158FC473002B5D1E /* surfaces.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4A3463102A5A0E00A81B2A /* surfaces.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AA1158FC473002B5D1E /* swim.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0839AC09930C4900277BE9 /* swim.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AA2158FC473002B5D1E /* tangram.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA563090993948F00F3E977 /* tangram.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AA3158FC473002B5D1E /* tangram_shapes.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA563070993948F00F3E977 /* tangram_shapes.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AA4158FC473002B5D1E /* teapot.c in Sources */ = {isa = PBXBuildFile; fileRef = AFC211930E4E30C800D87B6E /* teapot.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AA5158FC473002B5D1E /* timetunnel.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5638E0993980D00F3E977 /* timetunnel.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AA6158FC473002B5D1E /* toast.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55E990993608800F3E977 /* toast.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AA7158FC473002B5D1E /* toast2.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55E9B0993608800F3E977 /* toast2.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AA8158FC473002B5D1E /* toaster.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EAB0993608800F3E977 /* toaster.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AA9158FC473002B5D1E /* toaster_base.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55E9D0993608800F3E977 /* toaster_base.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AAA158FC473002B5D1E /* toaster_handle.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55E9F0993608800F3E977 /* toaster_handle.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AAB158FC473002B5D1E /* toaster_handle2.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EA10993608800F3E977 /* toaster_handle2.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AAC158FC473002B5D1E /* toaster_jet.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EA30993608800F3E977 /* toaster_jet.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AAD158FC473002B5D1E /* toaster_knob.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EA50993608800F3E977 /* toaster_knob.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AAE158FC473002B5D1E /* toaster_slots.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EA70993608800F3E977 /* toaster_slots.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AAF158FC473002B5D1E /* toaster_wing.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EA90993608800F3E977 /* toaster_wing.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AB0158FC473002B5D1E /* topblock.c in Sources */ = {isa = PBXBuildFile; fileRef = AF998EF80A083E750051049D /* topblock.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AB1158FC47B002B5D1E /* tunnel_draw.c in Sources */ = {isa = PBXBuildFile; fileRef = AF083A58099312B000277BE9 /* tunnel_draw.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AB2158FC47B002B5D1E /* voronoi.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0DCA5F0C4CBB7300D76972 /* voronoi.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AB3158FC47B002B5D1E /* whale.c in Sources */ = {isa = PBXBuildFile; fileRef = AF0839AD09930C4900277BE9 /* whale.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; }; + AF918AB4158FC53D002B5D1E /* abstractile.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFE6A4360CDD8026002805BF /* abstractile.xml */; }; + AF918AB5158FC53D002B5D1E /* anemone.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258680988A468000655EE /* anemone.xml */; }; + AF918AB6158FC53D002B5D1E /* anemotaxis.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258690988A468000655EE /* anemotaxis.xml */; }; + AF918AB8158FC53D002B5D1E /* antinspect.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2586B0988A468000655EE /* antinspect.xml */; }; + AF918AB9158FC53D002B5D1E /* antmaze.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2586C0988A468000655EE /* antmaze.xml */; }; + AF918ABA158FC53D002B5D1E /* antspotlight.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2586D0988A468000655EE /* antspotlight.xml */; }; + AF918ABB158FC53D002B5D1E /* apollonian.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2586E0988A468000655EE /* apollonian.xml */; }; + AF918ABC158FC53D002B5D1E /* apple2.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2586F0988A468000655EE /* apple2.xml */; }; + AF918ABD158FC53D002B5D1E /* atlantis.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258700988A468000655EE /* atlantis.xml */; }; + AF918ABE158FC53D002B5D1E /* attraction.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258710988A468000655EE /* attraction.xml */; }; + AF918ABF158FC53D002B5D1E /* atunnel.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258720988A468000655EE /* atunnel.xml */; }; + AF918AC0158FC53D002B5D1E /* barcode.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258730988A468000655EE /* barcode.xml */; }; + AF918AC1158FC53D002B5D1E /* blaster.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258740988A468000655EE /* blaster.xml */; }; + AF918AC2158FC53D002B5D1E /* blinkbox.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258750988A468000655EE /* blinkbox.xml */; }; + AF918AC3158FC53D002B5D1E /* blitspin.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258760988A468000655EE /* blitspin.xml */; }; + AF918AC4158FC53D002B5D1E /* blocktube.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258770988A468000655EE /* blocktube.xml */; }; + AF918AC5158FC53D002B5D1E /* boing.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258780988A468000655EE /* boing.xml */; }; + AF918AC6158FC53D002B5D1E /* bouboule.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258790988A468000655EE /* bouboule.xml */; }; + AF918AC7158FC53D002B5D1E /* bouncingcow.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2587A0988A468000655EE /* bouncingcow.xml */; }; + AF918AC8158FC53D002B5D1E /* boxed.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2587B0988A468000655EE /* boxed.xml */; }; + AF918AC9158FC53D002B5D1E /* boxfit.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2587C0988A468000655EE /* boxfit.xml */; }; + AF918ACA158FC53D002B5D1E /* braid.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2587D0988A468000655EE /* braid.xml */; }; + AF918ACB158FC53D002B5D1E /* bsod.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2587E0988A468000655EE /* bsod.xml */; }; + AF918ACC158FC53D002B5D1E /* bubble3d.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2587F0988A468000655EE /* bubble3d.xml */; }; + AF918ACE158FC53D002B5D1E /* bumps.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258810988A468000655EE /* bumps.xml */; }; + AF918ACF158FC53D002B5D1E /* cage.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258820988A468000655EE /* cage.xml */; }; + AF918AD0158FC53D002B5D1E /* carousel.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258830988A468000655EE /* carousel.xml */; }; + AF918AD1158FC53D002B5D1E /* ccurve.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258840988A468000655EE /* ccurve.xml */; }; + AF918AD2158FC53D002B5D1E /* celtic.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258850988A468000655EE /* celtic.xml */; }; + AF918AD3158FC53D002B5D1E /* circuit.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258860988A468000655EE /* circuit.xml */; }; + AF918AD4158FC53D002B5D1E /* cloudlife.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258870988A468000655EE /* cloudlife.xml */; }; + AF918AD5158FC53D002B5D1E /* companioncube.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF3581E61431D61D00E09C51 /* companioncube.xml */; }; + AF918AD6158FC53D002B5D1E /* compass.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258880988A468000655EE /* compass.xml */; }; + AF918AD7158FC53D002B5D1E /* coral.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258890988A468000655EE /* coral.xml */; }; + AF918AD8158FC53D002B5D1E /* crackberg.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2588B0988A468000655EE /* crackberg.xml */; }; + AF918ADA158FC53D002B5D1E /* crystal.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2588D0988A468000655EE /* crystal.xml */; }; + AF918ADB158FC53D002B5D1E /* cube21.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2588E0988A468000655EE /* cube21.xml */; }; + AF918ADC158FC53D002B5D1E /* cubenetic.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2588F0988A468000655EE /* cubenetic.xml */; }; + AF918ADD158FC53D002B5D1E /* cubestorm.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258900988A468000655EE /* cubestorm.xml */; }; + AF918ADE158FC53D002B5D1E /* cubicgrid.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF4FF4D30D52CCAA00666F98 /* cubicgrid.xml */; }; + AF918ADF158FC53D002B5D1E /* cwaves.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFF4634B0C44046500EE6509 /* cwaves.xml */; }; + AF918AE0158FC53D002B5D1E /* cynosure.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258910988A468000655EE /* cynosure.xml */; }; + AF918AE1158FC53D002B5D1E /* dangerball.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258920988A468000655EE /* dangerball.xml */; }; + AF918AE2158FC53D002B5D1E /* decayscreen.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258930988A468000655EE /* decayscreen.xml */; }; + AF918AE3158FC53D002B5D1E /* deco.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258940988A468000655EE /* deco.xml */; }; + AF918AE4158FC53D002B5D1E /* deluxe.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258950988A468000655EE /* deluxe.xml */; }; + AF918AE5158FC53D002B5D1E /* demon.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258960988A468000655EE /* demon.xml */; }; + AF918AE6158FC53D002B5D1E /* discrete.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258970988A468000655EE /* discrete.xml */; }; + AF918AE7158FC53D002B5D1E /* distort.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258980988A468000655EE /* distort.xml */; }; + AF918AE9158FC53D002B5D1E /* drift.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258990988A468000655EE /* drift.xml */; }; + AF918AEA158FC53D002B5D1E /* endgame.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2589B0988A468000655EE /* endgame.xml */; }; + AF918AEB158FC53D002B5D1E /* engine.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2589C0988A468000655EE /* engine.xml */; }; + AF918AEC158FC53D002B5D1E /* epicycle.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2589D0988A468000655EE /* epicycle.xml */; }; + AF918AED158FC53D002B5D1E /* eruption.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2589E0988A468000655EE /* eruption.xml */; }; + AF918AEE158FC53D002B5D1E /* euler2d.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2589F0988A468000655EE /* euler2d.xml */; }; + AF918AF0158FC53D002B5D1E /* fadeplot.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258A10988A468000655EE /* fadeplot.xml */; }; + AF918AF1158FC53D002B5D1E /* fiberlamp.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258A20988A468000655EE /* fiberlamp.xml */; }; + AF918AF2158FC53D002B5D1E /* fireworkx.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258A40988A468000655EE /* fireworkx.xml */; }; + AF918AF4158FC53D002B5D1E /* flame.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258A60988A468000655EE /* flame.xml */; }; + AF918AF5158FC53D002B5D1E /* flipflop.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258A70988A468000655EE /* flipflop.xml */; }; + AF918AF6158FC53D002B5D1E /* flipscreen3d.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258A80988A468000655EE /* flipscreen3d.xml */; }; + AF918AF7158FC53D002B5D1E /* fliptext.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258A90988A468000655EE /* fliptext.xml */; }; + AF918AF8158FC53D002B5D1E /* flow.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258AA0988A468000655EE /* flow.xml */; }; + AF918AF9158FC53D002B5D1E /* fluidballs.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258AB0988A468000655EE /* fluidballs.xml */; }; + AF918AFB158FC53D002B5D1E /* flyingtoasters.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258AD0988A468000655EE /* flyingtoasters.xml */; }; + AF918AFC158FC53D002B5D1E /* fontglide.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258AE0988A468000655EE /* fontglide.xml */; }; + AF918AFE158FC53D002B5D1E /* fuzzyflakes.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B00988A468000655EE /* fuzzyflakes.xml */; }; + AF918AFF158FC53D002B5D1E /* galaxy.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B10988A468000655EE /* galaxy.xml */; }; + AF918B00158FC53D002B5D1E /* gears.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B20988A468000655EE /* gears.xml */; }; + AF918B01158FC53D002B5D1E /* gflux.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B30988A468000655EE /* gflux.xml */; }; + AF918B02158FC53D002B5D1E /* glblur.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B40988A468000655EE /* glblur.xml */; }; + AF918B03158FC53D002B5D1E /* glcells.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFF463730C440BAC00EE6509 /* glcells.xml */; }; + AF918B04158FC53D002B5D1E /* gleidescope.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B50988A468000655EE /* gleidescope.xml */; }; + AF918B06158FC53D002B5D1E /* glhanoi.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B70988A468000655EE /* glhanoi.xml */; }; + AF918B07158FC53D002B5D1E /* glknots.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B80988A468000655EE /* glknots.xml */; }; + AF918B08158FC53D002B5D1E /* glmatrix.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B90988A468000655EE /* glmatrix.xml */; }; + AF918B09158FC53D002B5D1E /* glplanet.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258BA0988A468000655EE /* glplanet.xml */; }; + AF918B0A158FC53D002B5D1E /* glschool.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF48E16B0A0C26A400F94CF9 /* glschool.xml */; }; + AF918B0B158FC53D002B5D1E /* glslideshow.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258BB0988A468000655EE /* glslideshow.xml */; }; + AF918B0C158FC53D002B5D1E /* glsnake.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258BC0988A468000655EE /* glsnake.xml */; }; + AF918B0D158FC53D002B5D1E /* gltext.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258BD0988A468000655EE /* gltext.xml */; }; + AF918B0E158FC53D002B5D1E /* goop.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258BF0988A468000655EE /* goop.xml */; }; + AF918B0F158FC53D002B5D1E /* grav.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C00988A468000655EE /* grav.xml */; }; + AF918B10158FC53D002B5D1E /* greynetic.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C10988A468000655EE /* greynetic.xml */; }; + AF918B11158FC53D002B5D1E /* halftone.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C20988A468000655EE /* halftone.xml */; }; + AF918B12158FC53D002B5D1E /* halo.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C30988A468000655EE /* halo.xml */; }; + AF918B13158FC53D002B5D1E /* helix.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C40988A468000655EE /* helix.xml */; }; + AF918B14158FC53D002B5D1E /* hilbert.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF78D18E142DD99A002AAF77 /* hilbert.xml */; }; + AF918B15158FC53D002B5D1E /* hopalong.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C50988A468000655EE /* hopalong.xml */; }; + AF918B18158FC53D002B5D1E /* hypertorus.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C80988A468000655EE /* hypertorus.xml */; }; + AF918B19158FC53D002B5D1E /* hypnowheel.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF3C715F0D624C7C0030CC0D /* hypnowheel.xml */; }; + AF918B1A158FC53D002B5D1E /* ifs.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C90988A468000655EE /* ifs.xml */; }; + AF918B1B158FC53D002B5D1E /* imsmap.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258CA0988A468000655EE /* imsmap.xml */; }; + AF918B1C158FC53D002B5D1E /* interaggregate.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258CB0988A468000655EE /* interaggregate.xml */; }; + AF918B1D158FC53D002B5D1E /* interference.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258CC0988A468000655EE /* interference.xml */; }; + AF918B1E158FC53D002B5D1E /* intermomentary.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258CD0988A468000655EE /* intermomentary.xml */; }; + AF918B1F158FC53D002B5D1E /* jigglypuff.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258CE0988A468000655EE /* jigglypuff.xml */; }; + AF918B22158FC53D002B5D1E /* juggler3d.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D10988A468000655EE /* juggler3d.xml */; }; + AF918B23158FC53D002B5D1E /* julia.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D20988A468000655EE /* julia.xml */; }; + AF918B24158FC53D002B5D1E /* kaleidescope.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D30988A468000655EE /* kaleidescope.xml */; }; + AF918B25158FC53D002B5D1E /* klein.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D40988A468000655EE /* klein.xml */; }; + AF918B26158FC53D002B5D1E /* kumppa.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D50988A468000655EE /* kumppa.xml */; }; + AF918B27158FC53D002B5D1E /* lament.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D60988A468000655EE /* lament.xml */; }; + AF918B29158FC53D002B5D1E /* lavalite.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D80988A468000655EE /* lavalite.xml */; }; + AF918B30158FC53D002B5D1E /* loop.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258DD0988A468000655EE /* loop.xml */; }; + AF918B31158FC53D002B5D1E /* m6502.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF0DCA370C4C74B700D76972 /* m6502.xml */; }; + AF918B32158FC53D002B5D1E /* maze.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258DE0988A468000655EE /* maze.xml */; }; + AF918B33158FC53D002B5D1E /* memscroller.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258DF0988A469000655EE /* memscroller.xml */; }; + AF918B34158FC53D002B5D1E /* menger.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E00988A469000655EE /* menger.xml */; }; + AF918B35158FC53D002B5D1E /* metaballs.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E10988A469000655EE /* metaballs.xml */; }; + AF918B36158FC53D002B5D1E /* mirrorblob.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E20988A469000655EE /* mirrorblob.xml */; }; + AF918B38158FC53D002B5D1E /* moebius.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E40988A469000655EE /* moebius.xml */; }; + AF918B39158FC53D002B5D1E /* moebiusgears.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFE6A40D0CDD7BDC002805BF /* moebiusgears.xml */; }; + AF918B3A158FC53D002B5D1E /* moire.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E50988A469000655EE /* moire.xml */; }; + AF918B3B158FC53D002B5D1E /* moire2.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E60988A469000655EE /* moire2.xml */; }; + AF918B3C158FC53D002B5D1E /* molecule.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E70988A469000655EE /* molecule.xml */; }; + AF918B3D158FC53D002B5D1E /* morph3d.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E80988A469000655EE /* morph3d.xml */; }; + AF918B3E158FC53D002B5D1E /* mountain.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E90988A469000655EE /* mountain.xml */; }; + AF918B3F158FC53D002B5D1E /* munch.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258EA0988A469000655EE /* munch.xml */; }; + AF918B40158FC53D002B5D1E /* nerverot.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258EB0988A469000655EE /* nerverot.xml */; }; + AF918B41158FC53D002B5D1E /* noof.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258EC0988A469000655EE /* noof.xml */; }; + AF918B42158FC53D002B5D1E /* noseguy.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258ED0988A469000655EE /* noseguy.xml */; }; + AF918B43158FC53D002B5D1E /* pacman.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258EE0988A469000655EE /* pacman.xml */; }; + AF918B44158FC53D002B5D1E /* pedal.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258EF0988A469000655EE /* pedal.xml */; }; + AF918B45158FC53D002B5D1E /* penetrate.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F00988A469000655EE /* penetrate.xml */; }; + AF918B46158FC53D002B5D1E /* penrose.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F10988A469000655EE /* penrose.xml */; }; + AF918B47158FC53D002B5D1E /* petri.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F20988A469000655EE /* petri.xml */; }; + AF918B48158FC53E002B5D1E /* phosphor.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F30988A469000655EE /* phosphor.xml */; }; + AF918B49158FC53E002B5D1E /* photopile.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFD51DB80F063BE700471C02 /* photopile.xml */; }; + AF918B4A158FC53E002B5D1E /* piecewise.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F40988A469000655EE /* piecewise.xml */; }; + AF918B4B158FC53E002B5D1E /* pinion.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F50988A469000655EE /* pinion.xml */; }; + AF918B4C158FC53E002B5D1E /* pipes.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F60988A469000655EE /* pipes.xml */; }; + AF918B4E158FC53E002B5D1E /* polyominoes.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F80988A469000655EE /* polyominoes.xml */; }; + AF918B4F158FC53E002B5D1E /* polytopes.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F90988A469000655EE /* polytopes.xml */; }; + AF918B50158FC53E002B5D1E /* pong.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258FA0988A469000655EE /* pong.xml */; }; + AF918B51158FC53E002B5D1E /* popsquares.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258FB0988A469000655EE /* popsquares.xml */; }; + AF918B52158FC53E002B5D1E /* providence.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258FC0988A469000655EE /* providence.xml */; }; + AF918B53158FC53E002B5D1E /* pulsar.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258FD0988A469000655EE /* pulsar.xml */; }; + AF918B54158FC53E002B5D1E /* pyro.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258FE0988A469000655EE /* pyro.xml */; }; + AF918B55158FC53E002B5D1E /* qix.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258FF0988A469000655EE /* qix.xml */; }; + AF918B56158FC53E002B5D1E /* queens.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259000988A469000655EE /* queens.xml */; }; + AF918B57158FC53E002B5D1E /* rdbomb.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFCCCBAD09BFE4B000353F4D /* rdbomb.xml */; }; + AF918B58158FC53E002B5D1E /* ripples.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259030988A469000655EE /* ripples.xml */; }; + AF918B59158FC53E002B5D1E /* rocks.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259040988A469000655EE /* rocks.xml */; }; + AF918B5A158FC53E002B5D1E /* rorschach.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259050988A469000655EE /* rorschach.xml */; }; + AF918B5C158FC53E002B5D1E /* rotzoomer.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259070988A469000655EE /* rotzoomer.xml */; }; + AF918B5D158FC53E002B5D1E /* rubik.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259080988A469000655EE /* rubik.xml */; }; + AF918B5E158FC53E002B5D1E /* rubikblocks.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF32D9FC0F3AD1330080F535 /* rubikblocks.xml */; }; + AF918B5F158FC53E002B5D1E /* sballs.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259090988A469000655EE /* sballs.xml */; }; + AF918B60158FC53E002B5D1E /* shadebobs.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2590A0988A469000655EE /* shadebobs.xml */; }; + AF918B61158FC53E002B5D1E /* sierpinski.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2590B0988A469000655EE /* sierpinski.xml */; }; + AF918B62158FC53E002B5D1E /* sierpinski3d.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2590C0988A469000655EE /* sierpinski3d.xml */; }; + AF918B63158FC53E002B5D1E /* skytentacles.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFE2A4740E2E911200ADB298 /* skytentacles.xml */; }; + AF918B64158FC53E002B5D1E /* slidescreen.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2590D0988A469000655EE /* slidescreen.xml */; }; + AF918B65158FC53E002B5D1E /* slip.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2590E0988A469000655EE /* slip.xml */; }; + AF918B66158FC53E002B5D1E /* sonar.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2590F0988A469000655EE /* sonar.xml */; }; + AF918B67158FC53E002B5D1E /* speedmine.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259100988A469000655EE /* speedmine.xml */; }; + AF918B69158FC53E002B5D1E /* spheremonics.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259130988A469000655EE /* spheremonics.xml */; }; + AF918B6B158FC53E002B5D1E /* spotlight.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259150988A469000655EE /* spotlight.xml */; }; + AF918B6C158FC53E002B5D1E /* sproingies.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259160988A469000655EE /* sproingies.xml */; }; + AF918B6D158FC53E002B5D1E /* squiral.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259170988A469000655EE /* squiral.xml */; }; + AF918B6E158FC53E002B5D1E /* stairs.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259190988A469000655EE /* stairs.xml */; }; + AF918B6F158FC53E002B5D1E /* starfish.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2591A0988A469000655EE /* starfish.xml */; }; + AF918B70158FC53E002B5D1E /* starwars.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2591B0988A469000655EE /* starwars.xml */; }; + AF918B71158FC53E002B5D1E /* stonerview.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2591C0988A469000655EE /* stonerview.xml */; }; + AF918B72158FC53E002B5D1E /* strange.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2591D0988A469000655EE /* strange.xml */; }; + AF918B73158FC53E002B5D1E /* substrate.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2591E0988A469000655EE /* substrate.xml */; }; + AF918B74158FC53E002B5D1E /* superquadrics.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2591F0988A469000655EE /* superquadrics.xml */; }; + AF918B75158FC53E002B5D1E /* surfaces.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF4A3461102A59EB00A81B2A /* surfaces.xml */; }; + AF918B76158FC53E002B5D1E /* swirl.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259200988A469000655EE /* swirl.xml */; }; + AF918B78158FC53E002B5D1E /* tangram.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259220988A469000655EE /* tangram.xml */; }; + AF918B79158FC53E002B5D1E /* thornbird.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259230988A469000655EE /* thornbird.xml */; }; + AF918B7A158FC53E002B5D1E /* timetunnel.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259240988A469000655EE /* timetunnel.xml */; }; + AF918B7B158FC53E002B5D1E /* topblock.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF998EFA0A083E8C0051049D /* topblock.xml */; }; + AF918B7C158FC53E002B5D1E /* triangle.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259250988A469000655EE /* triangle.xml */; }; + AF918B7D158FC53E002B5D1E /* tronbit.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF3582211433318500E09C51 /* tronbit.xml */; }; + AF918B7E158FC53E002B5D1E /* truchet.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259260988A469000655EE /* truchet.xml */; }; + AF918B7F158FC53E002B5D1E /* twang.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259270988A469000655EE /* twang.xml */; }; + AF918B80158FC53E002B5D1E /* vermiculate.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259280988A469000655EE /* vermiculate.xml */; }; + AF918B83158FC53E002B5D1E /* voronoi.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF0DCA610C4CBB8E00D76972 /* voronoi.xml */; }; + AF918B84158FC53E002B5D1E /* wander.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2592B0988A469000655EE /* wander.xml */; }; + AF918B86158FC53E002B5D1E /* whirlwindwarp.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2592D0988A469000655EE /* whirlwindwarp.xml */; }; + AF918B89158FC53E002B5D1E /* wormhole.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259310988A469000655EE /* wormhole.xml */; }; + AF918B8A158FC53E002B5D1E /* xanalogtv.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259320988A469000655EE /* xanalogtv.xml */; }; + AF918B8B158FC53E002B5D1E /* xflame.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259370988A469000655EE /* xflame.xml */; }; + AF918B8C158FC53E002B5D1E /* xjack.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259380988A469000655EE /* xjack.xml */; }; + AF918B8D158FC53E002B5D1E /* xlyap.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259390988A469000655EE /* xlyap.xml */; }; + AF918B8E158FC53E002B5D1E /* xmatrix.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2593A0988A469000655EE /* xmatrix.xml */; }; + AF918B8F158FC53E002B5D1E /* xrayswarm.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2593D0988A469000655EE /* xrayswarm.xml */; }; + AF918B90158FC53E002B5D1E /* xspirograph.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2593F0988A469000655EE /* xspirograph.xml */; }; + AF918B91158FC554002B5D1E /* zoom.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259430988A469000655EE /* zoom.xml */; }; + AF918B96158FD0EA002B5D1E /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; + AF918B99158FF045002B5D1E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF918B9A158FF04C002B5D1E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF975734099C317000B05160 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF975736099C317000B05160 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF975737099C317000B05160 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF975738099C317000B05160 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF97573F099C31BB00B05160 /* imsmap.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258CA0988A468000655EE /* imsmap.xml */; }; AF975741099C31DD00B05160 /* imsmap.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975740099C31DD00B05160 /* imsmap.c */; }; AF97577B099C374A00B05160 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF97577E099C374A00B05160 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF97577F099C374A00B05160 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF975780099C374A00B05160 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF975788099C378B00B05160 /* moire.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E50988A469000655EE /* moire.xml */; }; AF97578A099C37A500B05160 /* moire.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975789099C37A500B05160 /* moire.c */; }; AF9757C8099C3E6300B05160 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF9757CB099C3E6300B05160 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF9757CC099C3E6300B05160 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF9757CD099C3E6300B05160 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF9757D6099C3EB800B05160 /* rd-bomb.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9757D5099C3EB800B05160 /* rd-bomb.c */; }; AF97580E099C41D500B05160 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF975811099C41D500B05160 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF975812099C41D500B05160 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF975813099C41D500B05160 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF97581B099C423600B05160 /* xflame.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259370988A469000655EE /* xflame.xml */; }; AF975830099C427500B05160 /* xflame.c in Sources */ = {isa = PBXBuildFile; fileRef = AF97582F099C427500B05160 /* xflame.c */; }; AF97586B099C475900B05160 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF97586E099C475900B05160 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF97586F099C475900B05160 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF975870099C475900B05160 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF975879099C490500B05160 /* shadebobs.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2590A0988A469000655EE /* shadebobs.xml */; }; AF97587B099C492000B05160 /* shadebobs.c in Sources */ = {isa = PBXBuildFile; fileRef = AF97587A099C492000B05160 /* shadebobs.c */; }; AF975A3C099C681F00B05160 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF975A3F099C681F00B05160 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF975A40099C681F00B05160 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF975A41099C681F00B05160 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF975A48099C688B00B05160 /* metaballs.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E10988A469000655EE /* metaballs.xml */; }; AF975A4A099C689F00B05160 /* metaballs.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975A49099C689F00B05160 /* metaballs.c */; }; AF975A72099C6AB200B05160 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF975A75099C6AB200B05160 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF975A76099C6AB200B05160 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF975A77099C6AB200B05160 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF975A82099C6B2700B05160 /* eruption.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2589E0988A468000655EE /* eruption.xml */; }; AF975A84099C6B4900B05160 /* eruption.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975A83099C6B4900B05160 /* eruption.c */; }; AF975A8C099C6BC300B05160 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF975A8F099C6BC300B05160 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF975A90099C6BC300B05160 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF975A91099C6BC300B05160 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF975A98099C6C2000B05160 /* barcode.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258730988A468000655EE /* barcode.xml */; }; AF975A9A099C6C3600B05160 /* barcode.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975A99099C6C3500B05160 /* barcode.c */; }; AF975ADD099C6EB100B05160 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF975AE0099C6EB100B05160 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF975AE1099C6EB100B05160 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF975AE2099C6EB100B05160 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF975AED099C6EFE00B05160 /* fireworkx.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258A40988A468000655EE /* fireworkx.xml */; }; AF975AEF099C6F1700B05160 /* fireworkx.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975AEE099C6F1700B05160 /* fireworkx.c */; }; AF975B02099C6FE400B05160 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF975B05099C6FE400B05160 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF975B06099C6FE400B05160 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF975B07099C6FE400B05160 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF975B15099C709E00B05160 /* memscroller.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975B14099C709E00B05160 /* memscroller.c */; }; AF975B16099C70B200B05160 /* memscroller.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258DF0988A469000655EE /* memscroller.xml */; }; AF975C18099C8C1500B05160 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF975C1B099C8C1500B05160 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF975C1C099C8C1500B05160 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF975C1D099C8C1500B05160 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF975C28099C8C6A00B05160 /* halo.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C30988A468000655EE /* halo.xml */; }; AF975C29099C8C7600B05160 /* halo.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480C29098E295D00FB32B8 /* halo.c */; }; AF975C44099C8DCF00B05160 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF975C47099C8DCF00B05160 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF975C48099C8DCF00B05160 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF975C49099C8DCF00B05160 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF975C55099C8E2800B05160 /* greynetic.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C10988A468000655EE /* greynetic.xml */; }; AF975C56099C8E3000B05160 /* greynetic.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480C21098E28EF00FB32B8 /* greynetic.c */; }; AF975C64099C8F3F00B05160 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF975C67099C8F3F00B05160 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF975C68099C8F3F00B05160 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF975C69099C8F3F00B05160 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF975C75099C8FAC00B05160 /* noseguy.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258ED0988A469000655EE /* noseguy.xml */; }; AF975C77099C8FC700B05160 /* noseguy.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975C76099C8FC700B05160 /* noseguy.c */; }; AF975C93099C929800B05160 /* xpm-pixmap.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975C91099C929800B05160 /* xpm-pixmap.c */; }; AF975C94099C929800B05160 /* xpm-pixmap.h in Headers */ = {isa = PBXBuildFile; fileRef = AF975C92099C929800B05160 /* xpm-pixmap.h */; }; AF975D59099CA0F000B05160 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF975D5C099CA0F000B05160 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF975D5D099CA0F000B05160 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF975D5E099CA0F000B05160 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF975D65099CA14B00B05160 /* rocks.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259040988A469000655EE /* rocks.xml */; }; AF975D67099CA16A00B05160 /* rocks.c in Sources */ = {isa = PBXBuildFile; fileRef = AF975D66099CA16A00B05160 /* rocks.c */; }; AF976FCC0989CAD7001F8B92 /* deco.c in Sources */ = {isa = PBXBuildFile; fileRef = AFC25B5E0988BA63000655EE /* deco.c */; }; AF976FCD0989CAEA001F8B92 /* deco.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258940988A468000655EE /* deco.xml */; }; - AF976FD40989CB02001F8B92 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF976FD50989CB0C001F8B92 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF97703A0989D1E6001F8B92 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF97703B0989D1E6001F8B92 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF9770420989D21A001F8B92 /* rorschach.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE1FD620981E40800F7970E /* rorschach.c */; }; AF9770430989D226001F8B92 /* rorschach.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259050988A469000655EE /* rorschach.xml */; }; - AF9770770989D2F6001F8B92 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF9770780989D2F6001F8B92 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF97707F0989D327001F8B92 /* attraction.c in Sources */ = {isa = PBXBuildFile; fileRef = AF976DFA09896BEB001F8B92 /* attraction.c */; }; AF9770800989D32E001F8B92 /* attraction.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258710988A468000655EE /* attraction.xml */; }; AF9771DF0989DC88001F8B92 /* SaverRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = AFE1FD400981E32E00F7970E /* SaverRunner.m */; }; AF9772C80989DCD5001F8B92 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; - AF9772CB0989DCFD001F8B92 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF9772E30989DFC6001F8B92 /* SaverRunner.nib in Resources */ = {isa = PBXBuildFile; fileRef = AF9772E10989DFC6001F8B92 /* SaverRunner.nib */; }; AF998ED60A083A280051049D /* xscreensaver-text in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF0B09CA6FF900EE1051 /* xscreensaver-text */; }; AF998EE10A083DB30051049D /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF998EE30A083DB30051049D /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF998EE40A083DB30051049D /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF998EE50A083DB30051049D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AF998EE60A083DB30051049D /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AF998EE70A083DB30051049D /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AF998EE80A083DB30051049D /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AF998EF90A083E750051049D /* topblock.c in Sources */ = {isa = PBXBuildFile; fileRef = AF998EF80A083E750051049D /* topblock.c */; }; AF998EFB0A083E8C0051049D /* topblock.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF998EFA0A083E8C0051049D /* topblock.xml */; }; AF9CC7A1099580E70075E99B /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; @@ -1248,165 +2188,77 @@ AF9CCAF009959E230075E99B /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; AF9CCAF109959E270075E99B /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; AF9D466D09B5109C006E59CF /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF9D466F09B5109C006E59CF /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF9D467009B5109C006E59CF /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF9D467109B5109C006E59CF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF9D467909B5110B006E59CF /* decayscreen.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D467809B5110B006E59CF /* decayscreen.c */; }; AF9D467A09B51126006E59CF /* decayscreen.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258930988A468000655EE /* decayscreen.xml */; }; AF9D468F09B51567006E59CF /* osxgrabscreen.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9D468E09B51567006E59CF /* osxgrabscreen.m */; }; AF9D473809B52EE0006E59CF /* colorbars.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D473609B52EE0006E59CF /* colorbars.c */; }; AF9D473909B52EE0006E59CF /* colorbars.h in Headers */ = {isa = PBXBuildFile; fileRef = AF9D473709B52EE0006E59CF /* colorbars.h */; }; AF9D474A09B5300A006E59CF /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF9D474D09B5300A006E59CF /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF9D474E09B5300A006E59CF /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF9D474F09B5300A006E59CF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF9D475609B5306A006E59CF /* slidescreen.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2590D0988A469000655EE /* slidescreen.xml */; }; AF9D475909B53091006E59CF /* slidescreen.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D475809B53091006E59CF /* slidescreen.c */; }; AF9D476509B53166006E59CF /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF9D476809B53166006E59CF /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF9D476909B53166006E59CF /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF9D476A09B53166006E59CF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF9D48D309B53214006E59CF /* zoom.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259430988A469000655EE /* zoom.xml */; }; AF9D48D509B53229006E59CF /* zoom.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D48D409B53229006E59CF /* zoom.c */; }; AF9D48E109B53322006E59CF /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF9D48E409B53322006E59CF /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF9D48E509B53322006E59CF /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF9D48E609B53322006E59CF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF9D48ED09B5338A006E59CF /* bumps.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258810988A468000655EE /* bumps.xml */; }; AF9D48F009B533AE006E59CF /* bumps.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D48EE09B533AE006E59CF /* bumps.c */; }; AF9D48FA09B535DA006E59CF /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF9D48FD09B535DA006E59CF /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF9D48FE09B535DA006E59CF /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF9D48FF09B535DA006E59CF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF9D490609B536DE006E59CF /* distort.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258980988A468000655EE /* distort.xml */; }; AF9D490809B536F7006E59CF /* distort.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D490709B536F7006E59CF /* distort.c */; }; AF9D493109B53CBA006E59CF /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF9D493409B53CBA006E59CF /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF9D493509B53CBA006E59CF /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF9D493609B53CBA006E59CF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF9D493D09B53D3B006E59CF /* ripples.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259030988A469000655EE /* ripples.xml */; }; AF9D493F09B53D55006E59CF /* ripples.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D493E09B53D55006E59CF /* ripples.c */; }; AF9D495A09B53FC9006E59CF /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF9D495D09B53FC9006E59CF /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF9D495E09B53FC9006E59CF /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF9D495F09B53FC9006E59CF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF9D496609B54087006E59CF /* rotzoomer.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259070988A469000655EE /* rotzoomer.xml */; }; AF9D496809B540A4006E59CF /* rotzoomer.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D496709B540A4006E59CF /* rotzoomer.c */; }; AF9D497209B5411D006E59CF /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF9D497509B5411D006E59CF /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF9D497609B5411D006E59CF /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF9D497709B5411D006E59CF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF9D497E09B541CE006E59CF /* twang.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259270988A469000655EE /* twang.xml */; }; AF9D498009B541E6006E59CF /* twang.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D497F09B541E5006E59CF /* twang.c */; }; AF9D499D09B544C2006E59CF /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF9D49A009B544C2006E59CF /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF9D49A109B544C2006E59CF /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF9D49A209B544C2006E59CF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF9D49A909B5457B006E59CF /* spotlight.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259150988A469000655EE /* spotlight.xml */; }; AF9D49AB09B54596006E59CF /* spotlight.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D49AA09B54596006E59CF /* spotlight.c */; }; AF9D4C6F09B59F27006E59CF /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF9D4C7209B59F27006E59CF /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF9D4C7309B59F27006E59CF /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF9D4C7409B59F27006E59CF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF9D4C7B09B5A02D006E59CF /* xlyap.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259390988A469000655EE /* xlyap.xml */; }; AF9D4C7D09B5A044006E59CF /* xlyap.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4C7C09B5A044006E59CF /* xlyap.c */; }; AF9D4CED09B5AA8E006E59CF /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AF9D4CF009B5AA8E006E59CF /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF9D4CF109B5AA8E006E59CF /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF9D4CF209B5AA8E006E59CF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF9D4CF909B5AC73006E59CF /* pong.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258FA0988A469000655EE /* pong.xml */; }; AF9D4CFD09B5AC94006E59CF /* analogtv.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4CFA09B5AC94006E59CF /* analogtv.c */; }; AF9D4CFE09B5AC94006E59CF /* pong.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4CFC09B5AC94006E59CF /* pong.c */; }; AF9D4D8409B5B2DC006E59CF /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; AF9D4D8509B5B2DC006E59CF /* analogtv.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4CFA09B5AC94006E59CF /* analogtv.c */; }; - AF9D4D8809B5B2DC006E59CF /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF9D4D8909B5B2DC006E59CF /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF9D4D8A09B5B2DC006E59CF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF9D4D9109B5B42B006E59CF /* xanalogtv.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259320988A469000655EE /* xanalogtv.xml */; }; AF9D4D9309B5B444006E59CF /* xanalogtv.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4D9209B5B444006E59CF /* xanalogtv.c */; }; AF9D4DB509B5B71E006E59CF /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; AF9D4DB609B5B71E006E59CF /* analogtv.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4CFA09B5AC94006E59CF /* analogtv.c */; }; - AF9D4DB909B5B71E006E59CF /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF9D4DBA09B5B71E006E59CF /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF9D4DBB09B5B71E006E59CF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF9D4DC209B5B862006E59CF /* bsod.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2587E0988A468000655EE /* bsod.xml */; }; AF9D4DC409B5B87D006E59CF /* bsod.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4DC309B5B87D006E59CF /* bsod.c */; }; AF9D4DD409B5B990006E59CF /* apple2.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4DD309B5B990006E59CF /* apple2.c */; }; AF9D4DF209B5BB19006E59CF /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; AF9D4DF309B5BB19006E59CF /* analogtv.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4CFA09B5AC94006E59CF /* analogtv.c */; }; AF9D4DF509B5BB19006E59CF /* apple2.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4DD309B5B990006E59CF /* apple2.c */; }; - AF9D4DF709B5BB19006E59CF /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AF9D4DF809B5BB19006E59CF /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AF9D4DF909B5BB19006E59CF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AF9D4E0409B5BC85006E59CF /* apple2.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2586F0988A468000655EE /* apple2.xml */; }; AF9D4E0609B5BC9D006E59CF /* apple2-main.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4E0509B5BC9D006E59CF /* apple2-main.c */; }; AF9D4E2209B63413006E59CF /* jwxyz-timers.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4E2109B63413006E59CF /* jwxyz-timers.m */; }; AFA339350B058505002B0E7D /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFA339380B058505002B0E7D /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA339390B058505002B0E7D /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA3393A0B058505002B0E7D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFA33BAF0B0585F7002B0E7D /* webcollage-cocoa.m in Sources */ = {isa = PBXBuildFile; fileRef = AFA33BAE0B0585F7002B0E7D /* webcollage-cocoa.m */; }; AFA33BB00B05860F002B0E7D /* webcollage.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2592C0988A469000655EE /* webcollage.xml */; }; AFA33BD10B0587EE002B0E7D /* webcollage-helper-cocoa.m in Sources */ = {isa = PBXBuildFile; fileRef = AFA33BD00B0587EE002B0E7D /* webcollage-helper-cocoa.m */; }; - AFA33BD20B058815002B0E7D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFA33BDD0B058A30002B0E7D /* webcollage-helper in Resources */ = {isa = PBXBuildFile; fileRef = AFA33BC70B058740002B0E7D /* webcollage-helper */; }; AFA33C0C0B058ED2002B0E7D /* webcollage in Resources */ = {isa = PBXBuildFile; fileRef = AFA33C0A0B058E6B002B0E7D /* webcollage */; }; AFA55866099324D800F3E977 /* minixpm.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55864099324D800F3E977 /* minixpm.c */; }; AFA55867099324D800F3E977 /* minixpm.h in Headers */ = {isa = PBXBuildFile; fileRef = AFA55865099324D800F3E977 /* minixpm.h */; }; - AFA55950099330B000F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55951099330B000F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55952099330B000F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55953099330B000F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55954099330B000F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55955099330B000F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA5595C099330E500F3E977 /* cage.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258820988A468000655EE /* cage.xml */; }; AFA5595E0993310500F3E977 /* cage.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5595D0993310500F3E977 /* cage.c */; }; - AFA559750993317900F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA559760993317900F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA559770993317900F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA559780993317900F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA559790993317900F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA5597A0993317900F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55981099331AC00F3E977 /* moebius.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E40988A469000655EE /* moebius.xml */; }; AFA55983099331C300F3E977 /* moebius.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55982099331C300F3E977 /* moebius.c */; }; - AFA5599A0993322100F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA5599B0993322100F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA5599C0993322100F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA5599D0993322100F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA5599E0993322100F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA5599F0993322100F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA559A70993325200F3E977 /* superquadrics.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2591F0988A469000655EE /* superquadrics.xml */; }; AFA559A90993326300F3E977 /* superquadrics.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA559A80993326300F3E977 /* superquadrics.c */; }; - AFA559BD0993328000F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA559BE0993328000F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA559BF0993328000F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA559C00993328000F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA559C10993328000F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA559C20993328000F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA559CB099332CF00F3E977 /* morph3d.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E80988A469000655EE /* morph3d.xml */; }; AFA559CD099332E800F3E977 /* morph3d.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA559CC099332E800F3E977 /* morph3d.c */; }; - AFA559D70993330600F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA559D80993330600F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA559D90993330600F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA559DA0993330600F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA559DB0993330600F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA559DC0993330600F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA559E90993333D00F3E977 /* rubik.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259080988A469000655EE /* rubik.xml */; }; AFA559EB0993335C00F3E977 /* rubik.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA559EA0993335C00F3E977 /* rubik.c */; }; - AFA55A0B0993340300F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55A0C0993340300F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55A0D0993340300F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55A0E0993340300F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55A0F0993340300F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55A100993340300F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55A190993344100F3E977 /* stairs.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259190988A469000655EE /* stairs.xml */; }; AFA55A1B0993345900F3E977 /* stairs.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A1A0993345900F3E977 /* stairs.c */; }; - AFA55A28099334A000F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55A29099334A000F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55A2A099334A000F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55A2B099334A000F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55A2C099334A000F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55A2D099334A000F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55A34099334CB00F3E977 /* sproingies.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259160988A469000655EE /* sproingies.xml */; }; AFA55A4A0993351F00F3E977 /* s1_1.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A400993351F00F3E977 /* s1_1.c */; }; AFA55A4B0993351F00F3E977 /* s1_2.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A410993351F00F3E977 /* s1_2.c */; }; @@ -1419,172 +2271,52 @@ AFA55A520993351F00F3E977 /* sproingiewrap.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A480993351F00F3E977 /* sproingiewrap.c */; }; AFA55A530993353500F3E977 /* gllist.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A3E0993351F00F3E977 /* gllist.c */; }; AFA55A540993353500F3E977 /* gllist.h in Headers */ = {isa = PBXBuildFile; fileRef = AFA55A3F0993351F00F3E977 /* gllist.h */; }; - AFA55A810993364300F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55A820993364300F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55A830993364300F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55A840993364300F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55A850993364300F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55A860993364300F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55A8D0993366F00F3E977 /* lament.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D60988A468000655EE /* lament.xml */; }; AFA55A8F0993369100F3E977 /* lament.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A8E0993369100F3E977 /* lament.c */; }; AFA55A95099336D800F3E977 /* normals.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A93099336D800F3E977 /* normals.c */; }; AFA55A96099336D800F3E977 /* normals.h in Headers */ = {isa = PBXBuildFile; fileRef = AFA55A94099336D800F3E977 /* normals.h */; }; - AFA55AD709933CEF00F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55AD809933CEF00F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55AD909933CEF00F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55ADA09933CEF00F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55ADB09933CEF00F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55ADC09933CEF00F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55AE309933D1C00F3E977 /* bubble3d.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2587F0988A468000655EE /* bubble3d.xml */; }; AFA55AE509933D3800F3E977 /* bubble3d.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55AE409933D3800F3E977 /* bubble3d.c */; }; AFA55AF709933DBF00F3E977 /* b_draw.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55AF409933DBF00F3E977 /* b_draw.c */; }; AFA55AF809933DBF00F3E977 /* b_lockglue.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55AF509933DBF00F3E977 /* b_lockglue.c */; }; AFA55AF909933DBF00F3E977 /* b_sphere.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55AF609933DBF00F3E977 /* b_sphere.c */; }; - AFA55B1409933E0500F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55B1509933E0500F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55B1609933E0500F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55B1709933E0500F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55B1809933E0500F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55B1909933E0500F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55B2009933E3100F3E977 /* glplanet.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258BA0988A468000655EE /* glplanet.xml */; }; AFA55B2209933E4A00F3E977 /* glplanet.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55B2109933E4A00F3E977 /* glplanet.c */; }; - AFA55B2D09933E8D00F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55B2E09933E8D00F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55B2F09933E8D00F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55B3009933E8D00F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55B3109933E8D00F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55B3209933E8D00F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55B3909933EB400F3E977 /* pulsar.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258FD0988A469000655EE /* pulsar.xml */; }; AFA55B4509933EF800F3E977 /* pulsar.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55B3F09933EC600F3E977 /* pulsar.c */; }; - AFA55B8109933F7200F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55B8209933F7200F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55B8309933F7200F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55B8409933F7200F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55B8509933F7200F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55B8609933F7200F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55B8D09933FAA00F3E977 /* sierpinski3d.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2590C0988A469000655EE /* sierpinski3d.xml */; }; AFA55B8F09933FBF00F3E977 /* sierpinski3d.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55B8E09933FBF00F3E977 /* sierpinski3d.c */; }; - AFA55B9909933FDA00F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55B9A09933FDA00F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55B9B09933FDA00F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55B9C09933FDA00F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55B9D09933FDA00F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55B9E09933FDA00F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55BA50993400200F3E977 /* gflux.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B30988A468000655EE /* gflux.xml */; }; AFA55BA70993401A00F3E977 /* gflux.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55BA60993401A00F3E977 /* gflux.c */; }; - AFA55BB3099340CE00F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55BB4099340CE00F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55BB5099340CE00F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55BB6099340CE00F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55BB7099340CE00F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55BB8099340CE00F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55BBF0993410100F3E977 /* circuit.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258860988A468000655EE /* circuit.xml */; }; AFA55BC10993416E00F3E977 /* circuit.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55BC00993416E00F3E977 /* circuit.c */; }; - AFA55BEC0993429100F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55BED0993429100F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55BEE0993429100F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55BEF0993429100F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55BF00993429100F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55BF10993429100F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55BF8099342BF00F3E977 /* menger.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E00988A469000655EE /* menger.xml */; }; AFA55BFA099342D500F3E977 /* menger.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55BF9099342D500F3E977 /* menger.c */; }; - AFA55C160993431300F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55C170993431300F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55C180993431300F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55C190993431300F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55C1A0993431300F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55C1B0993431300F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55C220993433D00F3E977 /* engine.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2589C0988A468000655EE /* engine.xml */; }; AFA55C240993435300F3E977 /* engine.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55C230993435300F3E977 /* engine.c */; }; AFA55C570993482800F3E977 /* glxfonts.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55C560993482800F3E977 /* glxfonts.c */; }; - AFA55C7F099349A600F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55C80099349A600F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55C81099349A600F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55C82099349A600F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55C83099349A600F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55C84099349A600F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55C8B099349CC00F3E977 /* glsnake.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258BC0988A468000655EE /* glsnake.xml */; }; AFA55C8D099349EE00F3E977 /* glsnake.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55C8C099349EE00F3E977 /* glsnake.c */; }; - AFA55CB109934BB200F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55CB209934BB200F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55CB309934BB200F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55CB409934BB200F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55CB509934BB200F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55CB609934BB200F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55CBD09934BDD00F3E977 /* boxed.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2587B0988A468000655EE /* boxed.xml */; }; AFA55CC009934C0900F3E977 /* boxed.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55CBE09934C0900F3E977 /* boxed.c */; }; - AFA55CD409934CE400F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55CD509934CE400F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55CD609934CE400F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55CD709934CE400F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55CD809934CE400F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55CD909934CE400F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55CE009934D1500F3E977 /* glforestfire.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B60988A468000655EE /* glforestfire.xml */; }; AFA55CE209934D2E00F3E977 /* glforestfire.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55CE109934D2E00F3E977 /* glforestfire.c */; }; - AFA55D440993565300F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55D450993565300F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55D460993565300F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55D470993565300F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55D480993565300F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55D490993565300F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55D500993568200F3E977 /* sballs.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259090988A469000655EE /* sballs.xml */; }; AFA55D520993569C00F3E977 /* sballs.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55D510993569C00F3E977 /* sballs.c */; }; - AFA55D6A0993584B00F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55D6B0993584B00F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55D6C0993584B00F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55D6D0993584B00F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55D6E0993584B00F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55D6F0993584B00F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55D760993587600F3E977 /* cubenetic.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2588F0988A468000655EE /* cubenetic.xml */; }; AFA55D780993589300F3E977 /* cubenetic.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55D770993589300F3E977 /* cubenetic.c */; }; - AFA55D87099358C400F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55D88099358C400F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55D89099358C400F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55D8A099358C400F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55D8B099358C400F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55D8C099358C400F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55D93099358FB00F3E977 /* spheremonics.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259130988A469000655EE /* spheremonics.xml */; }; AFA55D950993590F00F3E977 /* spheremonics.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55D940993590F00F3E977 /* spheremonics.c */; }; - AFA55DD009935D7000F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55DD109935D7000F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55DD209935D7000F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55DD309935D7000F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55DD409935D7000F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55DD509935D7000F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55DDC09935D9D00F3E977 /* lavalite.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D80988A468000655EE /* lavalite.xml */; }; AFA55DDE09935DB600F3E977 /* lavalite.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55DDD09935DB600F3E977 /* lavalite.c */; }; AFA55DE309935DFB00F3E977 /* marching.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55DE109935DFB00F3E977 /* marching.c */; }; - AFA55DF909935E4900F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55DFA09935E4900F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55DFB09935E4900F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55DFC09935E4900F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55DFD09935E4900F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55DFE09935E4900F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55E0509935E7E00F3E977 /* queens.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259000988A469000655EE /* queens.xml */; }; AFA55E0709935EB800F3E977 /* queens.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55E0609935EB800F3E977 /* queens.c */; }; - AFA55E1509935EDC00F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55E1609935EDC00F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55E1709935EDC00F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55E1809935EDC00F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55E1909935EDC00F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55E1A09935EDC00F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55E2109935F0B00F3E977 /* endgame.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2589B0988A468000655EE /* endgame.xml */; }; AFA55E2609935F2B00F3E977 /* chessmodels.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55E2309935F2B00F3E977 /* chessmodels.c */; }; AFA55E2709935F2B00F3E977 /* endgame.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55E2509935F2B00F3E977 /* endgame.c */; }; - AFA55E3809935F8E00F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55E3909935F8E00F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55E3A09935F8E00F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55E3B09935F8E00F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55E3C09935F8E00F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55E3D09935F8E00F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55E4409935FBA00F3E977 /* glblur.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B40988A468000655EE /* glblur.xml */; }; AFA55E4609935FD300F3E977 /* glblur.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55E4509935FD300F3E977 /* glblur.c */; }; - AFA55E5609935FF900F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55E5709935FF900F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55E5809935FF900F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55E5909935FF900F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55E5A09935FF900F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55E5B09935FF900F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55E970993602F00F3E977 /* flyingtoasters.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258AD0988A468000655EE /* flyingtoasters.xml */; }; AFA55EAD0993608800F3E977 /* flyingtoasters.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55E980993608800F3E977 /* flyingtoasters.c */; }; AFA55EAE0993608800F3E977 /* toast.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55E990993608800F3E977 /* toast.c */; }; @@ -1597,12 +2329,6 @@ AFA55EBC0993608800F3E977 /* toaster_slots.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EA70993608800F3E977 /* toaster_slots.c */; }; AFA55EBE0993608800F3E977 /* toaster_wing.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EA90993608800F3E977 /* toaster_wing.c */; }; AFA55EC00993608800F3E977 /* toaster.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EAB0993608800F3E977 /* toaster.c */; }; - AFA55ED9099360E300F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55EDA099360E300F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55EDB099360E300F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55EDC099360E300F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55EDD099360E300F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55EDE099360E300F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55EE50993610F00F3E977 /* bouncingcow.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2587A0988A468000655EE /* bouncingcow.xml */; }; AFA55EEE0993613E00F3E977 /* bouncingcow.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EE70993613E00F3E977 /* bouncingcow.c */; }; AFA55EEF0993613E00F3E977 /* cow_face.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EE80993613E00F3E977 /* cow_face.c */; }; @@ -1611,206 +2337,56 @@ AFA55EF20993613E00F3E977 /* cow_horns.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EEB0993613E00F3E977 /* cow_horns.c */; }; AFA55EF30993613E00F3E977 /* cow_tail.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EEC0993613E00F3E977 /* cow_tail.c */; }; AFA55EF40993613E00F3E977 /* cow_udder.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55EED0993613E00F3E977 /* cow_udder.c */; }; - AFA55F14099361B700F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55F15099361B700F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55F16099361B700F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55F17099361B700F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55F18099361B700F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55F19099361B700F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55F20099361E800F3E977 /* jigglypuff.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258CE0988A468000655EE /* jigglypuff.xml */; }; AFA55F220993620200F3E977 /* jigglypuff.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55F210993620200F3E977 /* jigglypuff.c */; }; - AFA55F320993622F00F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55F330993622F00F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55F340993622F00F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55F350993622F00F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55F360993622F00F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55F370993622F00F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55F3E0993625B00F3E977 /* klein.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D40988A468000655EE /* klein.xml */; }; AFA55F400993626E00F3E977 /* klein.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55F3F0993626E00F3E977 /* klein.c */; }; - AFA55F4A0993629000F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55F4B0993629000F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55F4C0993629000F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55F4D0993629000F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55F4E0993629000F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55F4F0993629000F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55F57099362C500F3E977 /* hypertorus.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C80988A468000655EE /* hypertorus.xml */; }; AFA55F5A099362DF00F3E977 /* hypertorus.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55F59099362DF00F3E977 /* hypertorus.c */; }; - AFA55F7A0993643600F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55F7B0993643600F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55F7C0993643600F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55F7D0993643600F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55F7E0993643600F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55F7F0993643600F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55F860993646900F3E977 /* glmatrix.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B90988A468000655EE /* glmatrix.xml */; }; AFA55F880993648500F3E977 /* glmatrix.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55F870993648500F3E977 /* glmatrix.c */; }; - AFA55FDB09936BFA00F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA55FDC09936BFA00F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA55FDD09936BFA00F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA55FDE09936BFA00F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA55FDF09936BFA00F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA55FE009936BFA00F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA55FF209936C2F00F3E977 /* cubestorm.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258900988A468000655EE /* cubestorm.xml */; }; AFA55FF409936C4500F3E977 /* cubestorm.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55FF309936C4500F3E977 /* cubestorm.c */; }; - AFA5600109936C6D00F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA5600209936C6D00F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA5600309936C6D00F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA5600409936C6D00F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA5600509936C6D00F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA5600609936C6D00F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA5600D09936C9D00F3E977 /* glknots.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B80988A468000655EE /* glknots.xml */; }; AFA5600F09936CB300F3E977 /* glknots.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5600E09936CB300F3E977 /* glknots.c */; }; - AFA5601C09936CC800F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA5601D09936CC800F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA5601E09936CC800F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA5601F09936CC800F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA5602009936CC800F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA5602109936CC800F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA5602809936CF700F3E977 /* blocktube.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258770988A468000655EE /* blocktube.xml */; }; AFA5602A09936D0700F3E977 /* blocktube.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5602909936D0700F3E977 /* blocktube.c */; }; - AFA5603A09936D5100F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA5603B09936D5100F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA5603C09936D5100F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA5603D09936D5100F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA5603E09936D5100F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA5603F09936D5100F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA5604609936DAB00F3E977 /* flipflop.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258A70988A468000655EE /* flipflop.xml */; }; AFA5604809936DCC00F3E977 /* flipflop.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5604709936DCC00F3E977 /* flipflop.c */; }; - AFA5605209936E2100F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA5605309936E2100F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA5605409936E2100F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA5605509936E2100F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA5605609936E2100F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA5605709936E2100F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; - AFA5606A09936F3800F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA5606B09936F3800F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA5606C09936F3800F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA5606D09936F3800F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA5606E09936F3800F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA5606F09936F3800F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA5607B09936FDD00F3E977 /* antspotlight.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5607809936FDD00F3E977 /* antspotlight.c */; }; AFA5608109936FFA00F3E977 /* antinspect.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5605F09936E9C00F3E977 /* antinspect.c */; }; AFA560820993700500F3E977 /* antinspect.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2586B0988A468000655EE /* antinspect.xml */; }; AFA560830993700900F3E977 /* antspotlight.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2586D0988A468000655EE /* antspotlight.xml */; }; - AFA560B60993718D00F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA560B70993718D00F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA560B80993718D00F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA560B90993718D00F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA560BA0993718D00F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA560BB0993718D00F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA560C2099371BE00F3E977 /* polytopes.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F90988A469000655EE /* polytopes.xml */; }; AFA560C4099371D500F3E977 /* polytopes.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA560C3099371D500F3E977 /* polytopes.c */; }; - AFA561050993781600F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA561060993781600F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA561070993781600F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA561080993781600F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA561090993781600F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA5610A0993781600F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA561110993784D00F3E977 /* molecule.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E70988A469000655EE /* molecule.xml */; }; AFA561130993786800F3E977 /* molecule.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA561120993786800F3E977 /* molecule.c */; }; - AFA5616009937C0D00F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA5616109937C0D00F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA5616209937C0D00F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA5616309937C0D00F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA5616409937C0D00F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA5616509937C0D00F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA5616C09937C6800F3E977 /* blinkbox.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258750988A468000655EE /* blinkbox.xml */; }; AFA5616E09937C9A00F3E977 /* blinkbox.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5616D09937C9A00F3E977 /* blinkbox.c */; }; - AFA5618309937CF100F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA5618409937CF100F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA5618509937CF100F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA5618609937CF100F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA5618709937CF100F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA5618809937CF100F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA5618F09937D2100F3E977 /* noof.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258EC0988A469000655EE /* noof.xml */; }; AFA5619109937D3600F3E977 /* noof.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5619009937D3600F3E977 /* noof.c */; }; - AFA561A509937D7E00F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA561A609937D7E00F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA561A709937D7E00F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA561A809937D7E00F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA561A909937D7E00F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA561AA09937D7E00F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA561B109937DB400F3E977 /* polyhedra.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F70988A469000655EE /* polyhedra.xml */; }; AFA561B509937DCC00F3E977 /* polyhedra-gl.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA561B209937DCB00F3E977 /* polyhedra-gl.c */; }; AFA561B609937DCC00F3E977 /* polyhedra.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA561B309937DCC00F3E977 /* polyhedra.c */; }; - AFA5620F0993849F00F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA562100993849F00F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA562110993849F00F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA562120993849F00F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA562130993849F00F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA562140993849F00F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA5621B099384DA00F3E977 /* providence.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258FC0988A469000655EE /* providence.xml */; }; AFA5621D099384F600F3E977 /* providence.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5621C099384F600F3E977 /* providence.c */; }; - AFA562270993852500F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA562280993852500F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA562290993852500F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA5622A0993852500F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA5622B0993852500F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA5622C0993852500F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA562330993855500F3E977 /* pinion.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F50988A469000655EE /* pinion.xml */; }; AFA562350993856A00F3E977 /* pinion.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA562340993856A00F3E977 /* pinion.c */; }; - AFA562C7099392C600F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA562C8099392C600F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA562C9099392C600F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA562CA099392C600F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA562CB099392C600F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA562CC099392C600F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA562D3099392F900F3E977 /* boing.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258780988A468000655EE /* boing.xml */; }; AFA562D50993930C00F3E977 /* boing.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA562D40993930C00F3E977 /* boing.c */; }; - AFA562E2099393C900F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA562E3099393C900F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA562E4099393C900F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA562E5099393C900F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA562E6099393C900F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA562E7099393C900F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA562EE0993940400F3E977 /* antmaze.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2586C0988A468000655EE /* antmaze.xml */; }; AFA562F00993941600F3E977 /* antmaze.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA562EF0993941600F3E977 /* antmaze.c */; }; - AFA562FA0993943B00F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA562FB0993943B00F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA562FC0993943B00F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA562FD0993943B00F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA562FE0993943B00F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA562FF0993943B00F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA563060993947300F3E977 /* tangram.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259220988A469000655EE /* tangram.xml */; }; AFA5630A0993948F00F3E977 /* tangram_shapes.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA563070993948F00F3E977 /* tangram_shapes.c */; }; AFA5630B0993948F00F3E977 /* tangram.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA563090993948F00F3E977 /* tangram.c */; }; - AFA5631C0993951000F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA5631D0993951000F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA5631E0993951000F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA5631F0993951000F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA563200993951000F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA563210993951000F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA563280993955000F3E977 /* crackberg.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2588B0988A468000655EE /* crackberg.xml */; }; AFA5632A0993957100F3E977 /* crackberg.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA563290993957100F3E977 /* crackberg.c */; }; - AFA56339099395ED00F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA5633A099395ED00F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA5633B099395ED00F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA5633C099395ED00F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA5633D099395ED00F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA5633E099395ED00F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; - AFA56359099396C000F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA5635A099396C000F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA5635B099396C000F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA5635C099396C000F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA5635D099396C000F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA5635E099396C000F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA563740993977100F3E977 /* glhanoi.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B70988A468000655EE /* glhanoi.xml */; }; AFA563750993977D00F3E977 /* glhanoi.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA563460993963400F3E977 /* glhanoi.c */; }; AFA563760993978D00F3E977 /* cube21.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA563660993970F00F3E977 /* cube21.c */; }; AFA563770993979A00F3E977 /* cube21.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2588E0988A468000655EE /* cube21.xml */; }; - AFA56381099397B300F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA56382099397B300F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA56383099397B300F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA56384099397B300F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA56385099397B300F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA56386099397B300F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA5638D099397ED00F3E977 /* timetunnel.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259240988A469000655EE /* timetunnel.xml */; }; AFA5638F0993980D00F3E977 /* timetunnel.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA5638E0993980D00F3E977 /* timetunnel.c */; }; - AFA563AC099398BB00F3E977 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFA563AD099398BB00F3E977 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFA563AE099398BB00F3E977 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFA563AF099398BB00F3E977 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFA563B0099398BB00F3E977 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFA563B1099398BB00F3E977 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFA563B8099398F700F3E977 /* juggler3d.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D10988A468000655EE /* juggler3d.xml */; }; AFA563BA0993991300F3E977 /* juggler3d.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA563B90993991300F3E977 /* juggler3d.c */; }; AFAD462309D5F4DA00AB5F95 /* grabclient.c in Sources */ = {isa = PBXBuildFile; fileRef = AFAD462209D5F4DA00AB5F95 /* grabclient.c */; }; @@ -1819,6 +2395,9 @@ AFBF89AF0E423FC3006A2D66 /* fps-gl.c in Sources */ = {isa = PBXBuildFile; fileRef = AFBF89AE0E423FC3006A2D66 /* fps-gl.c */; }; AFBF89B20E424036006A2D66 /* fpsI.h in Headers */ = {isa = PBXBuildFile; fileRef = AFBF89B10E424036006A2D66 /* fpsI.h */; }; AFC211950E4E30C800D87B6E /* teapot.c in Sources */ = {isa = PBXBuildFile; fileRef = AFC211930E4E30C800D87B6E /* teapot.c */; }; + AFC7592D158D8E8B00C5458E /* textclient.c in Sources */ = {isa = PBXBuildFile; fileRef = AFC7592B158D8E8B00C5458E /* textclient.c */; }; + AFC7592E158D8E8B00C5458E /* textclient.h in Headers */ = {isa = PBXBuildFile; fileRef = AFC7592C158D8E8B00C5458E /* textclient.h */; }; + AFC75930158D9A7A00C5458E /* iostextclient.m in Sources */ = {isa = PBXBuildFile; fileRef = AFC7592F158D9A7A00C5458E /* iostextclient.m */; }; AFCCCBB009BFE4B000353F4D /* rdbomb.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFCCCBAD09BFE4B000353F4D /* rdbomb.xml */; }; AFCCCBB309BFE51900353F4D /* thornbird.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259230988A469000655EE /* thornbird.xml */; }; AFCFF1D90CE4517C00C7D111 /* involute.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE6A16A0CDD78EA002805BF /* involute.c */; }; @@ -1826,228 +2405,108 @@ AFCFF1DB0CE451A300C7D111 /* normals.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A93099336D800F3E977 /* normals.c */; }; AFD51B200F063B4A00471C02 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; }; AFD51B220F063B4A00471C02 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD51B250F063B4A00471C02 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD51B260F063B4A00471C02 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD51B270F063B4A00471C02 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFD51B280F063B4A00471C02 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFD51B290F063B4A00471C02 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFD51B2A0F063B4A00471C02 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFD51DB70F063BCE00471C02 /* photopile.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD51DB60F063BCE00471C02 /* photopile.c */; }; AFD51DB90F063BE700471C02 /* photopile.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFD51DB80F063BE700471C02 /* photopile.xml */; }; AFD56DF80996A03800BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD56DFA0996A03800BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD56DFB0996A03800BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD56DFC0996A03800BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFD56DFD0996A03800BA26F7 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFD56DFE0996A03800BA26F7 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFD56DFF0996A03800BA26F7 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFD56E090996A07A00BA26F7 /* gltext.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56E080996A07A00BA26F7 /* gltext.c */; }; AFD56E9F0996A23800BA26F7 /* gltext.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258BD0988A468000655EE /* gltext.xml */; }; AFD56EB50996A72600BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD56EB70996A72600BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD56EB80996A72600BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD56EB90996A72600BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD56EE00996A95700BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD56EE30996A95700BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD56EE40996A95700BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD56EE50996A95700BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD56EEE0996A99E00BA26F7 /* forest.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56EED0996A99E00BA26F7 /* forest.c */; }; AFD56F110996AAFA00BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD56F140996AAFA00BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD56F150996AAFA00BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD56F160996AAFA00BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD56F1D0996AB1D00BA26F7 /* forest.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258AF0988A468000655EE /* forest.xml */; }; AFD56F1E0996AB4000BA26F7 /* vines.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2592A0988A469000655EE /* vines.xml */; }; AFD56F200996AB5A00BA26F7 /* vines.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56F1F0996AB5A00BA26F7 /* vines.c */; }; AFD56F290996AB8A00BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD56F2C0996AB8A00BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD56F2D0996AB8A00BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD56F2E0996AB8A00BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD56F350996ABB300BA26F7 /* galaxy.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258B10988A468000655EE /* galaxy.xml */; }; AFD56F370996ABD200BA26F7 /* galaxy.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56F360996ABD200BA26F7 /* galaxy.c */; }; AFD56F550996AEEE00BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD56F580996AEEE00BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD56F590996AEEE00BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD56F5A0996AEEE00BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD56F610996AF1500BA26F7 /* grav.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C00988A468000655EE /* grav.xml */; }; AFD56F630996AF2D00BA26F7 /* grav.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56F620996AF2D00BA26F7 /* grav.c */; }; AFD56F710996B01600BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD56F740996B01600BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD56F750996B01600BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD56F760996B01600BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD56F870996B04D00BA26F7 /* hopalong.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258C50988A468000655EE /* hopalong.xml */; }; AFD56F890996B06600BA26F7 /* hopalong.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56F880996B06600BA26F7 /* hopalong.c */; }; AFD56F920996B09400BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD56F950996B09400BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD56F960996B09400BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD56F970996B09400BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD56F9F0996B0D000BA26F7 /* laser.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D70988A468000655EE /* laser.xml */; }; AFD56FA10996B0E500BA26F7 /* laser.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56FA00996B0E500BA26F7 /* laser.c */; }; AFD56FA90996B10F00BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD56FAC0996B10F00BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD56FAD0996B10F00BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD56FAE0996B10F00BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD56FB50996B15000BA26F7 /* lightning.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D90988A468000655EE /* lightning.xml */; }; AFD56FB70996B16300BA26F7 /* lightning.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56FB60996B16300BA26F7 /* lightning.c */; }; AFD56FBF0996B18F00BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD56FC20996B18F00BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD56FC30996B18F00BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD56FC40996B18F00BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD56FCB0996B1BE00BA26F7 /* lisa.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258DA0988A468000655EE /* lisa.xml */; }; AFD56FCD0996B1D600BA26F7 /* lisa.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56FCC0996B1D600BA26F7 /* lisa.c */; }; AFD56FD50996B20900BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD56FD80996B20900BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD56FD90996B20900BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD56FDA0996B20900BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD56FE10996B24B00BA26F7 /* lissie.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258DB0988A468000655EE /* lissie.xml */; }; AFD56FE30996B26200BA26F7 /* lissie.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD56FE20996B26200BA26F7 /* lissie.c */; }; AFD56FFE0996B43800BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD570010996B43800BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD570020996B43800BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD570030996B43800BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD5700B0996B47E00BA26F7 /* penrose.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F10988A469000655EE /* penrose.xml */; }; AFD5700D0996B49D00BA26F7 /* penrose.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD5700C0996B49D00BA26F7 /* penrose.c */; }; AFD570150996B4CC00BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD570180996B4CC00BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD570190996B4CC00BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD5701A0996B4CC00BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD570210996B51100BA26F7 /* sierpinski.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2590B0988A469000655EE /* sierpinski.xml */; }; AFD570230996B52700BA26F7 /* sierpinski.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD570220996B52700BA26F7 /* sierpinski.c */; }; AFD5702C0996B56D00BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD5702F0996B56D00BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD570300996B56D00BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD570310996B56D00BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD5703A0996B5D000BA26F7 /* sphere.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259110988A469000655EE /* sphere.xml */; }; AFD5703C0996B5E300BA26F7 /* sphere.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD5703B0996B5E300BA26F7 /* sphere.c */; }; AFD570490996B61600BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD5704C0996B61600BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD5704D0996B61600BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD5704E0996B61600BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD570550996B65A00BA26F7 /* spiral.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259140988A469000655EE /* spiral.xml */; }; AFD570570996B67600BA26F7 /* spiral.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD570560996B67600BA26F7 /* spiral.c */; }; AFD5705F0996B6A300BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD570620996B6A300BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD570630996B6A300BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD570640996B6A300BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD5706B0996B6E700BA26F7 /* fadeplot.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258A10988A468000655EE /* fadeplot.xml */; }; AFD5706D0996B70000BA26F7 /* fadeplot.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD5706C0996B70000BA26F7 /* fadeplot.c */; }; AFD570750996B72700BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD570780996B72700BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD570790996B72700BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD5707A0996B72700BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD570810996B77F00BA26F7 /* mountain.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258E90988A469000655EE /* mountain.xml */; }; AFD570830996B79300BA26F7 /* mountain.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD570820996B79300BA26F7 /* mountain.c */; }; AFD5708B0996B80300BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD5708E0996B80300BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD5708F0996B80300BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD570900996B80300BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD570970996B84E00BA26F7 /* triangle.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259250988A469000655EE /* triangle.xml */; }; AFD570990996B86200BA26F7 /* triangle.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD570980996B86200BA26F7 /* triangle.c */; }; AFD570A10996B88E00BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD570A40996B88E00BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD570A50996B88E00BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD570A60996B88E00BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD570AD0996B8DC00BA26F7 /* worm.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259300988A469000655EE /* worm.xml */; }; AFD570AF0996B8EF00BA26F7 /* worm.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD570AE0996B8EF00BA26F7 /* worm.c */; }; AFD570B70996B93000BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD570BA0996B93000BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD570BB0996B93000BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD570BC0996B93000BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD570C30996B96F00BA26F7 /* rotor.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259060988A469000655EE /* rotor.xml */; }; AFD570C50996B98500BA26F7 /* rotor.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD570C40996B98500BA26F7 /* rotor.c */; }; AFD570CF0996B9F800BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD570D20996B9F800BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD570D30996B9F800BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD570D40996B9F800BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD570DD0996BA4600BA26F7 /* ant.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2586A0988A468000655EE /* ant.xml */; }; AFD570DF0996BA5D00BA26F7 /* ant.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD570DE0996BA5C00BA26F7 /* ant.c */; }; AFD570F00996BBBF00BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD570F30996BBBF00BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD570F40996BBBF00BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD570F50996BBBF00BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD570FE0996BC2000BA26F7 /* flow.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258AA0988A468000655EE /* flow.xml */; }; AFD571020996BC3800BA26F7 /* flow.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD571010996BC3800BA26F7 /* flow.c */; }; AFD571190996BE9300BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD5711C0996BE9300BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD5711D0996BE9300BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD5711E0996BE9300BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD571270996BEE100BA26F7 /* discrete.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258970988A468000655EE /* discrete.xml */; }; AFD571290996BEF700BA26F7 /* discrete.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD571280996BEF700BA26F7 /* discrete.c */; }; AFD571320996BF2E00BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD571350996BF2E00BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD571360996BF2E00BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD571370996BF2E00BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD5713E0996BFA500BA26F7 /* apollonian.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2586E0988A468000655EE /* apollonian.xml */; }; AFD571400996BFBE00BA26F7 /* apollonian.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD5713F0996BFBE00BA26F7 /* apollonian.c */; }; AFD571490996C01700BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD5714C0996C01700BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD5714D0996C01700BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD5714E0996C01700BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD571550996C05F00BA26F7 /* euler2d.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2589F0988A468000655EE /* euler2d.xml */; }; AFD571570996C07F00BA26F7 /* euler2d.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD571560996C07F00BA26F7 /* euler2d.c */; }; AFD5715F0996C0CE00BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD571620996C0CE00BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD571630996C0CE00BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD571640996C0CE00BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD5716C0996C16700BA26F7 /* thornbird.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD5716B0996C16700BA26F7 /* thornbird.c */; }; AFD571BB0996D9DC00BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD571BE0996D9DC00BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD571BF0996D9DC00BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD571C00996D9DC00BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD571C70996DA3300BA26F7 /* juggle.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D00988A468000655EE /* juggle.xml */; }; AFD571C90996DA4600BA26F7 /* juggle.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD571C80996DA4600BA26F7 /* juggle.c */; }; AFD572280996E4A300BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD5722B0996E4A300BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD5722C0996E4A300BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD5722D0996E4A300BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD572340996E52B00BA26F7 /* swirl.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259200988A469000655EE /* swirl.xml */; }; AFD572360996E53E00BA26F7 /* swirl.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD572350996E53E00BA26F7 /* swirl.c */; }; AFD572730996EE8500BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD572760996EE8500BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD572770996EE8500BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD572780996EE8500BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD5727F0996EF1900BA26F7 /* polyominoes.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F80988A469000655EE /* polyominoes.xml */; }; AFD572810996EF2B00BA26F7 /* polyominoes.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD572800996EF2B00BA26F7 /* polyominoes.c */; }; AFD572AB0996F99600BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD572AE0996F99600BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD572AF0996F99600BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD572B00996F99600BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD572B80996FAF900BA26F7 /* bouboule.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258790988A468000655EE /* bouboule.xml */; }; AFD572BA0996FB3D00BA26F7 /* bouboule.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD572B90996FB3D00BA26F7 /* bouboule.c */; }; AFD572C80996FC0F00BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD572CB0996FC0F00BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD572CC0996FC0F00BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD572CD0996FC0F00BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD572EC0997005900BA26F7 /* crystal.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2588D0988A468000655EE /* crystal.xml */; }; AFD572EE0997006E00BA26F7 /* crystal.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD572ED0997006E00BA26F7 /* crystal.c */; }; AFD572FF099701C000BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD57302099701C000BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD57303099701C000BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD57304099701C000BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD5730B099702AF00BA26F7 /* julia.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D20988A468000655EE /* julia.xml */; }; AFD5730D099702C800BA26F7 /* julia.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD5730C099702C800BA26F7 /* julia.c */; }; AFD573630997411200BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFD573660997411200BA26F7 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFD573670997411200BA26F7 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFD573680997411200BA26F7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFD573700997418D00BA26F7 /* strange.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2591D0988A469000655EE /* strange.xml */; }; AFD57372099741A200BA26F7 /* strange.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD57371099741A200BA26F7 /* strange.c */; }; AFE2A45C0E2E904600ADB298 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFE2A45F0E2E904600ADB298 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFE2A4600E2E904600ADB298 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFE2A4610E2E904600ADB298 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFE2A4620E2E904600ADB298 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFE2A4630E2E904600ADB298 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFE2A4640E2E904600ADB298 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFE2A4730E2E90E300ADB298 /* skytentacles.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE2A4720E2E90E300ADB298 /* skytentacles.c */; }; AFE2A4750E2E911200ADB298 /* skytentacles.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFE2A4740E2E911200ADB298 /* skytentacles.xml */; }; AFE30BEE0E52B14700CCF4A5 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFE30BF10E52B14700CCF4A5 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFE30BF20E52B14700CCF4A5 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFE30BF30E52B14700CCF4A5 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFE30BF40E52B14700CCF4A5 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFE30BF50E52B14700CCF4A5 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFE30BF60E52B14700CCF4A5 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFE30BFE0E52B18300CCF4A5 /* sonar.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2590F0988A469000655EE /* sonar.xml */; }; AFE30C020E52B1DC00CCF4A5 /* sonar-icmp.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE30BFF0E52B1DC00CCF4A5 /* sonar-icmp.c */; }; AFE30C030E52B1DC00CCF4A5 /* sonar-sim.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE30C000E52B1DC00CCF4A5 /* sonar-sim.c */; }; @@ -2055,34 +2514,22 @@ AFE6A16C0CDD78EA002805BF /* involute.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE6A16A0CDD78EA002805BF /* involute.c */; }; AFE6A1890CDD7B2E002805BF /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; AFE6A18A0CDD7B2E002805BF /* involute.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE6A16A0CDD78EA002805BF /* involute.c */; }; - AFE6A18C0CDD7B2E002805BF /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFE6A18D0CDD7B2E002805BF /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFE6A18E0CDD7B2E002805BF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFE6A18F0CDD7B2E002805BF /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFE6A1900CDD7B2E002805BF /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFE6A1910CDD7B2E002805BF /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFE6A40C0CDD7BC3002805BF /* moebiusgears.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE6A40B0CDD7BC3002805BF /* moebiusgears.c */; }; AFE6A40E0CDD7BDC002805BF /* moebiusgears.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFE6A40D0CDD7BDC002805BF /* moebiusgears.xml */; }; AFE6A4200CDD7FAA002805BF /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; }; AFE6A4220CDD7FAA002805BF /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFE6A4250CDD7FAA002805BF /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFE6A4260CDD7FAA002805BF /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFE6A4270CDD7FAA002805BF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFE6A4350CDD800F002805BF /* abstractile.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE6A4340CDD800F002805BF /* abstractile.c */; }; AFE6A4370CDD8027002805BF /* abstractile.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFE6A4360CDD8026002805BF /* abstractile.xml */; }; + AFEB9C37158FFF88003974F3 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; + AFEB9C3915900514003974F3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFEB9C3815900514003974F3 /* UIKit.framework */; }; + AFEB9C3B1590054B003974F3 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFEB9C3A1590054B003974F3 /* OpenGLES.framework */; }; + AFEB9C3D15900558003974F3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFEB9C3C15900558003974F3 /* Foundation.framework */; }; + AFEB9C401590056A003974F3 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFEB9C3E1590056A003974F3 /* CoreGraphics.framework */; }; + AFEB9C411590056A003974F3 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFEB9C3F1590056A003974F3 /* QuartzCore.framework */; }; AFF4633C0C4403E400EE6509 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFF4633F0C4403E400EE6509 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFF463400C4403E400EE6509 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFF463410C4403E400EE6509 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; AFF4634A0C44044F00EE6509 /* cwaves.c in Sources */ = {isa = PBXBuildFile; fileRef = AFF463490C44044E00EE6509 /* cwaves.c */; }; AFF4634C0C44046500EE6509 /* cwaves.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFF4634B0C44046500EE6509 /* cwaves.xml */; }; AFF4635F0C440AEF00EE6509 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; }; - AFF463610C440AEF00EE6509 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; }; - AFF463620C440AEF00EE6509 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; }; - AFF463630C440AEF00EE6509 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - AFF463640C440AEF00EE6509 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480FE70990375900FB32B8 /* AGL.framework */; }; - AFF463650C440AEF00EE6509 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF480DF1098F528500FB32B8 /* OpenGL.framework */; }; - AFF463660C440AEF00EE6509 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; }; AFF463720C440B9200EE6509 /* glcells.c in Sources */ = {isa = PBXBuildFile; fileRef = AFF463710C440B9200EE6509 /* glcells.c */; }; AFF463740C440BAC00EE6509 /* glcells.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFF463730C440BAC00EE6509 /* glcells.xml */; }; /* End PBXBuildFile section */ @@ -2816,6 +3263,27 @@ remoteGlobalIDString = AF4A3449102A593600A81B2A; remoteInfo = Surfaces; }; + AF4F10ED143450C300E34F3F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = AF3581BF1431D47B00E09C51; + remoteInfo = CompanionCube; + }; + AF4F10EF143450C300E34F3F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = AF78D175142DD8F3002AAF77; + remoteInfo = Hilbert; + }; + AF4F10F1143450C300E34F3F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = AF3581FB143330F900E09C51; + remoteInfo = TronBit; + }; AF4FD6E80CE7A486005EE58E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; @@ -4279,6 +4747,13 @@ remoteGlobalIDString = AF4808C0098C3B6C00FB32B8; remoteInfo = jwxyz; }; + AF918979158FC00A002B5D1E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = AF4808C0098C3B6C00FB32B8; + remoteInfo = jwxyz; + }; AF97572F099C317000B05160 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; @@ -5285,7 +5760,13 @@ 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = OSX/main.m; sourceTree = ""; }; 32CA4F630368D1EE00C91783 /* xscreensaver_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = xscreensaver_Prefix.pch; path = OSX/xscreensaver_Prefix.pch; sourceTree = ""; }; 8D1107310486CEB800E47090 /* XScreenSaver.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = XScreenSaver.plist; path = OSX/XScreenSaver.plist; sourceTree = ""; }; - AF0839A209930B6B00277BE9 /* Atlantis.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Atlantis.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF01294C157D31DD00C396E1 /* iSaverRunner.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = iSaverRunner.plist; path = OSX/iSaverRunner.plist; sourceTree = SOURCE_ROOT; }; + AF01295A157D5C2C00C396E1 /* iSaverRunner29.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = iSaverRunner29.png; path = OSX/iSaverRunner29.png; sourceTree = ""; }; + AF01295B157D5C2C00C396E1 /* iSaverRunner50.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = iSaverRunner50.png; path = OSX/iSaverRunner50.png; sourceTree = ""; }; + AF01295C157D5C2C00C396E1 /* iSaverRunner57.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = iSaverRunner57.png; path = OSX/iSaverRunner57.png; sourceTree = ""; }; + AF01295D157D5C2C00C396E1 /* iSaverRunner72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = iSaverRunner72.png; path = OSX/iSaverRunner72.png; sourceTree = ""; }; + AF01295E157D5C2C00C396E1 /* iSaverRunner114.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = iSaverRunner114.png; path = OSX/iSaverRunner114.png; sourceTree = ""; }; + AF0839A209930B6B00277BE9 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Atlantis.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF0839A909930C4900277BE9 /* atlantis.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = atlantis.c; path = hacks/glx/atlantis.c; sourceTree = ""; }; AF0839AA09930C4900277BE9 /* dolphin.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = dolphin.c; path = hacks/glx/dolphin.c; sourceTree = ""; }; AF0839AB09930C4900277BE9 /* shark.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = shark.c; path = hacks/glx/shark.c; sourceTree = ""; }; @@ -5294,22 +5775,22 @@ AF0839AE09930C4900277BE9 /* xpm-ximage.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = "xpm-ximage.c"; path = "hacks/glx/xpm-ximage.c"; sourceTree = ""; }; AF0839AF09930C4900277BE9 /* xpm-ximage.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = "xpm-ximage.h"; path = "hacks/glx/xpm-ximage.h"; sourceTree = ""; }; AF083A31099311CE00277BE9 /* atunnel.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = atunnel.c; path = hacks/glx/atunnel.c; sourceTree = ""; }; - AF083A48099311D700277BE9 /* Atunnel.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Atunnel.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF083A48099311D700277BE9 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Atunnel.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF083A58099312B000277BE9 /* tunnel_draw.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = tunnel_draw.c; path = hacks/glx/tunnel_draw.c; sourceTree = ""; }; AF083A5D099312DB00277BE9 /* tunnel_draw.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = tunnel_draw.h; path = hacks/glx/tunnel_draw.h; sourceTree = ""; }; - AF0DC7BD0C4C73F600D76972 /* m6502.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = m6502.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF0DC7BD0C4C73F600D76972 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = m6502.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF0DCA320C4C74A200D76972 /* asm6502.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = asm6502.c; path = hacks/asm6502.c; sourceTree = ""; }; AF0DCA330C4C74A200D76972 /* asm6502.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = asm6502.h; path = hacks/asm6502.h; sourceTree = ""; }; AF0DCA340C4C74A200D76972 /* m6502.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = m6502.c; path = hacks/m6502.c; sourceTree = ""; }; AF0DCA370C4C74B700D76972 /* m6502.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = m6502.xml; sourceTree = ""; }; - AF0DCA560C4CBB0D00D76972 /* Voronoi.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Voronoi.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF0DCA560C4CBB0D00D76972 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Voronoi.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF0DCA5F0C4CBB7300D76972 /* voronoi.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = voronoi.c; path = hacks/glx/voronoi.c; sourceTree = ""; }; AF0DCA610C4CBB8E00D76972 /* voronoi.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = voronoi.xml; sourceTree = ""; }; AF0F46DC104E1809000A929C /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; AF0FAF0B09CA6FF900EE1051 /* xscreensaver-text */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.script.perl; name = "xscreensaver-text"; path = "driver/xscreensaver-text"; sourceTree = ""; }; AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.script.perl; name = "xscreensaver-getimage-file"; path = "driver/xscreensaver-getimage-file"; sourceTree = ""; }; AF14EE300E3CEF1A004CBBD2 /* XScreenSaver.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = XScreenSaver.icns; path = OSX/XScreenSaver.icns; sourceTree = ""; }; - AF1A17730D6D6EE3008AF328 /* LCDscrub.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LCDscrub.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF1A17730D6D6EE3008AF328 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = LCDscrub.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF1A177E0D6D6F3E008AF328 /* lcdscrub.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = lcdscrub.c; path = hacks/lcdscrub.c; sourceTree = ""; }; AF1A17800D6D6F62008AF328 /* lcdscrub.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = lcdscrub.xml; sourceTree = ""; }; AF241F81107C38DF00046A84 /* dropshadow.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = dropshadow.c; path = hacks/glx/dropshadow.c; sourceTree = ""; }; @@ -5317,140 +5798,140 @@ AF2D4D8F13E902F5002AA818 /* Phosphor.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Phosphor.app; sourceTree = BUILT_PRODUCTS_DIR; }; AF2D4F7E13E91093002AA818 /* Apple2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Apple2.app; sourceTree = BUILT_PRODUCTS_DIR; }; AF2D522513E954A0002AA818 /* SaverRunner.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = SaverRunner.icns; path = OSX/SaverRunner.icns; sourceTree = ""; }; - AF32D9F40F3AD0B40080F535 /* RubikBlocks.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RubikBlocks.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF32D9F40F3AD0B40080F535 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = RubikBlocks.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF32D9FA0F3AD1200080F535 /* rubikblocks.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = rubikblocks.c; path = hacks/glx/rubikblocks.c; sourceTree = ""; }; AF32D9FC0F3AD1330080F535 /* rubikblocks.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = rubikblocks.xml; sourceTree = ""; }; - AF34085409B80AAF00F2CEC1 /* StarWars.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = StarWars.saver; sourceTree = BUILT_PRODUCTS_DIR; }; - AF34085509B80AB000F2CEC1 /* StonerView.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = StonerView.saver; sourceTree = BUILT_PRODUCTS_DIR; }; - AF34085609B80AB000F2CEC1 /* Gleidescope.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Gleidescope.saver; sourceTree = BUILT_PRODUCTS_DIR; }; - AF34085709B80AB000F2CEC1 /* FontGlide.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FontGlide.saver; sourceTree = BUILT_PRODUCTS_DIR; }; - AF3581D51431D47B00E09C51 /* CompanionCube.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CompanionCube.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF34085409B80AAF00F2CEC1 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = StarWars.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF34085509B80AB000F2CEC1 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = StonerView.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF34085609B80AB000F2CEC1 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Gleidescope.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF34085709B80AB000F2CEC1 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = FontGlide.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF3581D51431D47B00E09C51 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = CompanionCube.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF3581D61431D5FC00E09C51 /* companion_disc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = companion_disc.c; path = hacks/glx/companion_disc.c; sourceTree = ""; }; AF3581D71431D5FC00E09C51 /* companion_heart.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = companion_heart.c; path = hacks/glx/companion_heart.c; sourceTree = ""; }; AF3581D81431D5FC00E09C51 /* companion_quad.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = companion_quad.c; path = hacks/glx/companion_quad.c; sourceTree = ""; }; AF3581D91431D5FC00E09C51 /* companion.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = companion.c; path = hacks/glx/companion.c; sourceTree = ""; }; AF3581E61431D61D00E09C51 /* companioncube.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = companioncube.xml; sourceTree = ""; }; - AF358216143330F900E09C51 /* TronBit.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "TronBit.saver"; sourceTree = BUILT_PRODUCTS_DIR; }; + AF358216143330F900E09C51 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = TronBit.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF3582171433314C00E09C51 /* tronbit_idle1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tronbit_idle1.c; path = hacks/glx/tronbit_idle1.c; sourceTree = ""; }; AF3582181433314C00E09C51 /* tronbit_idle2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tronbit_idle2.c; path = hacks/glx/tronbit_idle2.c; sourceTree = ""; }; AF3582191433314C00E09C51 /* tronbit_no.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tronbit_no.c; path = hacks/glx/tronbit_no.c; sourceTree = ""; }; AF35821A1433314C00E09C51 /* tronbit_yes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tronbit_yes.c; path = hacks/glx/tronbit_yes.c; sourceTree = ""; }; AF35821B1433314C00E09C51 /* tronbit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tronbit.c; path = hacks/glx/tronbit.c; sourceTree = ""; }; AF3582211433318500E09C51 /* tronbit.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = tronbit.xml; sourceTree = ""; }; - AF35E8A00E63823600691F2F /* Jigsaw.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Jigsaw.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF35E8A00E63823600691F2F /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Jigsaw.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF35EB250E6382BA00691F2F /* jigsaw.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = jigsaw.c; path = hacks/glx/jigsaw.c; sourceTree = ""; }; - AF3C71590D624BF50030CC0D /* Hypnowheel.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Hypnowheel.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF3C71590D624BF50030CC0D /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Hypnowheel.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF3C715D0D624C600030CC0D /* hypnowheel.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = hypnowheel.c; path = hacks/glx/hypnowheel.c; sourceTree = ""; }; AF3C715F0D624C7C0030CC0D /* hypnowheel.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = hypnowheel.xml; sourceTree = ""; }; - AF476FC6099D154F001F091E /* Interference.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Interference.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF476FC6099D154F001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Interference.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF476FD0099D15AA001F091E /* interference.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = interference.c; path = hacks/interference.c; sourceTree = ""; }; - AF476FEB099D1686001F091E /* Truchet.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Truchet.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF476FEB099D1686001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Truchet.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF476FF0099D1713001F091E /* truchet.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = truchet.c; path = hacks/truchet.c; sourceTree = ""; }; - AF47705C099D4385001F091E /* Deluxe.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Deluxe.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF47705C099D4385001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Deluxe.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477145099D43E2001F091E /* deluxe.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = deluxe.c; path = hacks/deluxe.c; sourceTree = ""; }; - AF477179099D4786001F091E /* Compass.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Compass.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477179099D4786001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Compass.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF47717C099D47D3001F091E /* compass.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = compass.c; path = hacks/compass.c; sourceTree = ""; }; - AF47718F099D4803001F091E /* Wander.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Wander.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF47718F099D4803001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Wander.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477192099D4864001F091E /* wander.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = wander.c; path = hacks/wander.c; sourceTree = ""; }; - AF4771B7099D4949001F091E /* T3D.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = T3D.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4771B7099D4949001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = T3D.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4771BA099D4997001F091E /* t3d.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = t3d.c; path = hacks/t3d.c; sourceTree = ""; }; - AF4771EB099D4D9A001F091E /* CCurve.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CCurve.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4771EB099D4D9A001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = CCurve.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4771EF099D4DFE001F091E /* ccurve.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = ccurve.c; path = hacks/ccurve.c; sourceTree = ""; }; - AF477202099D4E64001F091E /* NerveRot.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NerveRot.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477202099D4E64001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = NerveRot.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477205099D4EB6001F091E /* nerverot.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = nerverot.c; path = hacks/nerverot.c; sourceTree = ""; }; - AF477218099D4EE8001F091E /* Whirlygig.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Whirlygig.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477218099D4EE8001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Whirlygig.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF47721B099D4F47001F091E /* whirlygig.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = whirlygig.c; path = hacks/whirlygig.c; sourceTree = ""; }; AF47722E099D4F67001F091E /* Anemone.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Anemone.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477231099D4FD5001F091E /* anemone.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = anemone.c; path = hacks/anemone.c; sourceTree = ""; }; - AF477263099D5717001F091E /* Halftone.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Halftone.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477263099D5717001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Halftone.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477266099D5768001F091E /* halftone.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = halftone.c; path = hacks/halftone.c; sourceTree = ""; }; - AF47727B099D57B9001F091E /* PopSquares.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PopSquares.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF47727B099D57B9001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = PopSquares.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF47727E099D5808001F091E /* popsquares.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = popsquares.c; path = hacks/popsquares.c; sourceTree = ""; }; - AF477293099D5926001F091E /* Piecewise.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Piecewise.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477293099D5926001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Piecewise.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477297099D5980001F091E /* piecewise.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = piecewise.c; path = hacks/piecewise.c; sourceTree = ""; }; - AF477392099D65A1001F091E /* Wormhole.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Wormhole.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477392099D65A1001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Wormhole.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477395099D65FE001F091E /* wormhole.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = wormhole.c; path = hacks/wormhole.c; sourceTree = ""; }; - AF4773AA099D6648001F091E /* FuzzyFlakes.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FuzzyFlakes.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4773AA099D6648001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = FuzzyFlakes.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4773B4099D6778001F091E /* fuzzyflakes.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = fuzzyflakes.c; path = hacks/fuzzyflakes.c; sourceTree = ""; }; - AF4773D1099D67B9001F091E /* Anemotaxis.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Anemotaxis.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4773D1099D67B9001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Anemotaxis.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4773D4099D6817001F091E /* anemotaxis.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = anemotaxis.c; path = hacks/anemotaxis.c; sourceTree = ""; }; - AF477412099D69E7001F091E /* Intermomentary.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Intermomentary.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477412099D69E7001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Intermomentary.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF47741C099D6A6C001F091E /* intermomentary.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = intermomentary.c; path = hacks/intermomentary.c; sourceTree = ""; }; - AF477437099D7C70001F091E /* IFS.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = IFS.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477437099D7C70001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = IFS.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF47743A099D7CEA001F091E /* ifs.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = ifs.c; path = hacks/ifs.c; sourceTree = ""; }; - AF477452099D7D33001F091E /* XMatrix.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XMatrix.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477452099D7D33001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = XMatrix.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477455099D7D8A001F091E /* xmatrix.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = xmatrix.c; path = hacks/xmatrix.c; sourceTree = ""; }; - AF477493099D89E4001F091E /* Flame.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Flame.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477493099D89E4001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Flame.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477496099D8A53001F091E /* flame.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = flame.c; path = hacks/flame.c; sourceTree = ""; }; - AF4774A9099D8A74001F091E /* Kaleidescope.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Kaleidescope.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4774A9099D8A74001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Kaleidescope.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4774AC099D8B08001F091E /* kaleidescope.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = kaleidescope.c; path = hacks/kaleidescope.c; sourceTree = ""; }; - AF4774C4099D8B5F001F091E /* LMorph.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LMorph.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4774C4099D8B5F001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = LMorph.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4774CB099D8BC2001F091E /* lmorph.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = lmorph.c; path = hacks/lmorph.c; sourceTree = ""; }; - AF4774DE099D8BFF001F091E /* Maze.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Maze.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4774DE099D8BFF001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Maze.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4774E1099D8C8B001F091E /* maze.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = maze.c; path = hacks/maze.c; sourceTree = ""; }; AF4774E7099D8D8C001F091E /* logo.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = logo.c; path = utils/logo.c; sourceTree = ""; }; - AF47756D099D9A1A001F091E /* Pedal.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Pedal.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF47756D099D9A1A001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Pedal.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477570099D9A8A001F091E /* pedal.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = pedal.c; path = hacks/pedal.c; sourceTree = ""; }; - AF477593099D9C28001F091E /* Pyro.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Pyro.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477593099D9C28001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Pyro.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF47759C099D9CA3001F091E /* pyro.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = pyro.c; path = hacks/pyro.c; sourceTree = ""; }; - AF4775AF099D9CF7001F091E /* Starfish.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Starfish.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4775AF099D9CF7001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Starfish.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4775B3099D9D67001F091E /* starfish.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = starfish.c; path = hacks/starfish.c; sourceTree = ""; }; AF4775BE099D9E79001F091E /* resources.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = resources.c; path = utils/resources.c; sourceTree = ""; }; AF4775BF099D9E79001F091E /* resources.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = resources.h; path = utils/resources.h; sourceTree = ""; }; - AF4775E8099D9F69001F091E /* Coral.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Coral.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4775E8099D9F69001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Coral.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4775EF099D9FFF001F091E /* coral.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = coral.c; path = hacks/coral.c; sourceTree = ""; }; - AF477602099DA030001F091E /* Epicycle.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Epicycle.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477602099DA030001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Epicycle.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477605099DA097001F091E /* epicycle.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = epicycle.c; path = hacks/epicycle.c; sourceTree = ""; }; - AF477623099DA26C001F091E /* Kumppa.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Kumppa.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477623099DA26C001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Kumppa.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF47762A099DA2E9001F091E /* kumppa.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = kumppa.c; path = hacks/kumppa.c; sourceTree = ""; }; - AF477654099DA6D0001F091E /* Squiral.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Squiral.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477654099DA6D0001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Squiral.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477657099DA75D001F091E /* squiral.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = squiral.c; path = hacks/squiral.c; sourceTree = ""; }; - AF47766A099DA78F001F091E /* Critical.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Critical.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF47766A099DA78F001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Critical.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF47766D099DA80D001F091E /* critical.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = critical.c; path = hacks/critical.c; sourceTree = ""; }; - AF477680099DA849001F091E /* Petri.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Petri.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477680099DA849001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Petri.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477683099DA8C7001F091E /* petri.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = petri.c; path = hacks/petri.c; sourceTree = ""; }; - AF47769F099DAA6F001F091E /* Blaster.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Blaster.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF47769F099DAA6F001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Blaster.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4776A2099DAADE001F091E /* blaster.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = blaster.c; path = hacks/blaster.c; sourceTree = ""; }; - AF4776BA099DABDD001F091E /* XSpirograph.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XSpirograph.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4776BA099DABDD001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = XSpirograph.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4776BD099DAC46001F091E /* xspirograph.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = xspirograph.c; path = hacks/xspirograph.c; sourceTree = ""; }; - AF4776D0099DAC8A001F091E /* XRaySwarm.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XRaySwarm.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4776D0099DAC8A001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = XRaySwarm.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4776D3099DACEB001F091E /* xrayswarm.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = xrayswarm.c; path = hacks/xrayswarm.c; sourceTree = ""; }; - AF4776EB099DADDF001F091E /* WhirlWindWarp.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WhirlWindWarp.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4776EB099DADDF001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = WhirlWindWarp.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4776EE099DAE58001F091E /* whirlwindwarp.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = whirlwindwarp.c; path = hacks/whirlwindwarp.c; sourceTree = ""; }; - AF477701099DAE7A001F091E /* Vermiculate.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Vermiculate.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477701099DAE7A001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Vermiculate.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477704099DAF3F001F091E /* vermiculate.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = vermiculate.c; path = hacks/vermiculate.c; sourceTree = ""; }; - AF47771D099DAF9F001F091E /* CloudLife.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CloudLife.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF47771D099DAF9F001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = CloudLife.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477720099DB01C001F091E /* cloudlife.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = cloudlife.c; path = hacks/cloudlife.c; sourceTree = ""; }; - AF477733099DB044001F091E /* Substrate.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Substrate.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477733099DB044001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Substrate.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477736099DB104001F091E /* substrate.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = substrate.c; path = hacks/substrate.c; sourceTree = ""; }; - AF477762099DB61E001F091E /* Interaggregate.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Interaggregate.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477762099DB61E001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Interaggregate.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477769099DB710001F091E /* interaggregate.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = interaggregate.c; path = hacks/interaggregate.c; sourceTree = ""; }; - AF477784099DB965001F091E /* Celtic.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Celtic.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477784099DB965001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Celtic.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF477787099DBA29001F091E /* celtic.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = celtic.c; path = hacks/celtic.c; sourceTree = ""; }; - AF4777A0099DBA90001F091E /* FluidBalls.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FluidBalls.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4777A0099DBA90001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = FluidBalls.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4777A4099DBB11001F091E /* fluidballs.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = fluidballs.c; path = hacks/fluidballs.c; sourceTree = ""; }; - AF4777E1099DC183001F091E /* BoxFit.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BoxFit.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4777E1099DC183001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = BoxFit.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4778A3099DDA91001F091E /* boxfit.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = boxfit.c; path = hacks/boxfit.c; sourceTree = ""; }; - AF4778BB099DDB79001F091E /* Penetrate.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Penetrate.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4778BB099DDB79001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Penetrate.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4778BE099DDC32001F091E /* penetrate.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = penetrate.c; path = hacks/penetrate.c; sourceTree = ""; }; - AF4778D7099DDCAE001F091E /* XJack.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XJack.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4778D7099DDCAE001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = XJack.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4778DA099DDD2B001F091E /* xjack.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = xjack.c; path = hacks/xjack.c; sourceTree = ""; }; - AF4778F8099DDDC8001F091E /* Cynosure.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Cynosure.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4778F8099DDDC8001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Cynosure.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4778FB099DDE79001F091E /* cynosure.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = cynosure.c; path = hacks/cynosure.c; sourceTree = ""; }; - AF477919099DE379001F091E /* Flag.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Flag.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF477919099DE379001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Flag.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF47791C099DE3F1001F091E /* flag.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = flag.c; path = hacks/flag.c; sourceTree = ""; }; - AF47793A099DE4C7001F091E /* Slip.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Slip.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF47793A099DE4C7001F091E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Slip.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF47793D099DE56A001F091E /* slip.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = slip.c; path = hacks/slip.c; sourceTree = ""; }; AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libjwxyz.a; sourceTree = BUILT_PRODUCTS_DIR; }; AF480C21098E28EF00FB32B8 /* greynetic.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = greynetic.c; path = hacks/greynetic.c; sourceTree = ""; }; AF480C29098E295D00FB32B8 /* halo.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = halo.c; path = hacks/halo.c; sourceTree = ""; }; AF480C2F098E2A6700FB32B8 /* helix.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = helix.c; path = hacks/helix.c; sourceTree = ""; }; - AF480C58098E301400FB32B8 /* Helix.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Helix.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF480C58098E301400FB32B8 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Helix.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF480C82098E336D00FB32B8 /* drift.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = drift.c; path = hacks/drift.c; sourceTree = ""; }; AF480C89098E346700FB32B8 /* xlockmore.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = xlockmore.h; path = hacks/xlockmore.h; sourceTree = ""; }; AF480C8A098E34AB00FB32B8 /* xlockmoreI.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = xlockmoreI.h; path = hacks/xlockmoreI.h; sourceTree = ""; }; AF480CBB098E37D600FB32B8 /* xlockmore.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = xlockmore.c; path = hacks/xlockmore.c; sourceTree = ""; }; - AF480D81098EEDDE00FB32B8 /* Drift.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Drift.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF480D81098EEDDE00FB32B8 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Drift.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF480DD1098F4F6200FB32B8 /* dangerball.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = dangerball.c; path = hacks/glx/dangerball.c; sourceTree = ""; }; AF480DF1098F528500FB32B8 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; AF480EAC098F63B000FB32B8 /* rotator.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = rotator.h; path = hacks/glx/rotator.h; sourceTree = ""; }; @@ -5464,18 +5945,18 @@ AF480ED1098F651C00FB32B8 /* tube.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = tube.h; path = hacks/glx/tube.h; sourceTree = ""; }; AF480ED2098F652A00FB32B8 /* tube.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = tube.c; path = hacks/glx/tube.c; sourceTree = ""; }; AF480FE70990375900FB32B8 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; }; - AF4810FB09909FBA00FB32B8 /* DangerBall.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DangerBall.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4810FB09909FBA00FB32B8 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = DangerBall.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF48112B0990A2C700FB32B8 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; AF4812250990CB8C00FB32B8 /* gears.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = gears.c; path = hacks/glx/gears.c; sourceTree = ""; }; - AF4812640990CE2700FB32B8 /* Gears.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Gears.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4812640990CE2700FB32B8 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Gears.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4812760990CF5D00FB32B8 /* buildlwo.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = buildlwo.c; path = hacks/glx/buildlwo.c; sourceTree = ""; }; AF4812770990CF5D00FB32B8 /* buildlwo.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = buildlwo.h; path = hacks/glx/buildlwo.h; sourceTree = ""; }; AF4812780990CF5D00FB32B8 /* pipeobjs.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = pipeobjs.c; path = hacks/glx/pipeobjs.c; sourceTree = ""; }; AF4812790990CF5D00FB32B8 /* pipes.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = pipes.c; path = hacks/glx/pipes.c; sourceTree = ""; }; - AF4812C60990D3D900FB32B8 /* Pipes.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Pipes.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4812C60990D3D900FB32B8 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Pipes.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4812F70990D9AE00FB32B8 /* XScreenSaverGLView.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = XScreenSaverGLView.h; path = OSX/XScreenSaverGLView.h; sourceTree = ""; }; AF4812F80990D9AE00FB32B8 /* XScreenSaverGLView.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; name = XScreenSaverGLView.m; path = OSX/XScreenSaverGLView.m; sourceTree = ""; }; - AF48DF030A0C25E000F94CF9 /* GLSchool.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GLSchool.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF48DF030A0C25E000F94CF9 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = GLSchool.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF48E1620A0C268400F94CF9 /* glschool_alg.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = glschool_alg.c; path = hacks/glx/glschool_alg.c; sourceTree = ""; }; AF48E1630A0C268500F94CF9 /* glschool_alg.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = glschool_alg.h; path = hacks/glx/glschool_alg.h; sourceTree = ""; }; AF48E1640A0C268500F94CF9 /* glschool_gl.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = glschool_gl.c; path = hacks/glx/glschool_gl.c; sourceTree = ""; }; @@ -5483,16 +5964,20 @@ AF48E1660A0C268500F94CF9 /* glschool.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = glschool.c; path = hacks/glx/glschool.c; sourceTree = ""; }; AF48E1670A0C268500F94CF9 /* glschool.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = glschool.h; path = hacks/glx/glschool.h; sourceTree = ""; }; AF48E16B0A0C26A400F94CF9 /* glschool.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = glschool.xml; sourceTree = ""; }; - AF4A345D102A593600A81B2A /* Surfaces.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Surfaces.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4A345D102A593600A81B2A /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Surfaces.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4A3461102A59EB00A81B2A /* surfaces.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = surfaces.xml; sourceTree = ""; }; AF4A3463102A5A0E00A81B2A /* surfaces.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = surfaces.c; path = hacks/glx/surfaces.c; sourceTree = ""; }; - AF4FD6FA0CE7A486005EE58E /* Lockward.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Lockward.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4FD6FA0CE7A486005EE58E /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Lockward.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4FD7000CE7A577005EE58E /* lockward.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = lockward.c; path = hacks/glx/lockward.c; sourceTree = ""; }; AF4FD7020CE7A5BC005EE58E /* lockward.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = lockward.xml; sourceTree = ""; }; - AF4FF4CE0D52CBDE00666F98 /* CubicGrid.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CubicGrid.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4FF4CE0D52CBDE00666F98 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = CubicGrid.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF4FF4D00D52CC8400666F98 /* cubicgrid.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = cubicgrid.c; path = hacks/glx/cubicgrid.c; sourceTree = ""; }; AF4FF4D30D52CCAA00666F98 /* cubicgrid.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = cubicgrid.xml; sourceTree = ""; }; - AF642405099FF9C2000F4CD4 /* Extrusion.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Extrusion.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF56019B157DAA3D00DB2055 /* iSaverRunner.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = iSaverRunner.xib; path = OSX/iSaverRunner.xib; sourceTree = ""; }; + AF6048F8157C07C600CA21E4 /* jwzgles.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jwzgles.c; path = hacks/glx/jwzgles.c; sourceTree = ""; }; + AF6048F9157C07C600CA21E4 /* jwzgles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = jwzgles.h; path = hacks/glx/jwzgles.h; sourceTree = ""; }; + AF6048FA157C07C600CA21E4 /* jwzglesI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = jwzglesI.h; path = hacks/glx/jwzglesI.h; sourceTree = ""; }; + AF642405099FF9C2000F4CD4 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Extrusion.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF642409099FFAF0000F4CD4 /* extrusion-helix2.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "extrusion-helix2.c"; path = "hacks/glx/extrusion-helix2.c"; sourceTree = ""; }; AF64240A099FFAF0000F4CD4 /* extrusion-helix3.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "extrusion-helix3.c"; path = "hacks/glx/extrusion-helix3.c"; sourceTree = ""; }; AF64240B099FFAF0000F4CD4 /* extrusion-helix4.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "extrusion-helix4.c"; path = "hacks/glx/extrusion-helix4.c"; sourceTree = ""; }; @@ -5502,32 +5987,31 @@ AF64240F099FFAF1000F4CD4 /* extrusion-twistoid.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "extrusion-twistoid.c"; path = "hacks/glx/extrusion-twistoid.c"; sourceTree = ""; }; AF642410099FFAF1000F4CD4 /* extrusion.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = extrusion.c; path = hacks/glx/extrusion.c; sourceTree = ""; }; AF642411099FFAF1000F4CD4 /* extrusion.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = extrusion.h; path = hacks/glx/extrusion.h; sourceTree = ""; }; - AF6425DC09A18856000F4CD4 /* HyperCube.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HyperCube.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF6425DC09A18856000F4CD4 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = HyperCube.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF6425DF09A188FB000F4CD4 /* hypercube.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = hypercube.c; path = hacks/hypercube.c; sourceTree = ""; }; - AF6425FC09A189EC000F4CD4 /* Qix.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Qix.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF6425FC09A189EC000F4CD4 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Qix.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF6425FF09A18A94000F4CD4 /* qix.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = qix.c; path = hacks/qix.c; sourceTree = ""; }; - AF64261F09A18D6C000F4CD4 /* HyperBall.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HyperBall.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF64261F09A18D6C000F4CD4 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = HyperBall.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF64262209A18E1E000F4CD4 /* hyperball.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = hyperball.c; path = hacks/hyperball.c; sourceTree = ""; }; - AF64263C09A18F54000F4CD4 /* Moire2.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Moire2.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF64263C09A18F54000F4CD4 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Moire2.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF64263F09A18FEB000F4CD4 /* moire2.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = moire2.c; path = hacks/moire2.c; sourceTree = ""; }; - AF64265F09A19229000F4CD4 /* Munch.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Munch.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF64265F09A19229000F4CD4 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Munch.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF64266209A192C5000F4CD4 /* munch.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = munch.c; path = hacks/munch.c; sourceTree = ""; }; - AF64267809A193A4000F4CD4 /* mismunch.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = mismunch.c; path = hacks/mismunch.c; sourceTree = ""; }; - AF64268B09A194B0000F4CD4 /* Goop.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Goop.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF64268B09A194B0000F4CD4 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Goop.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF64268E09A19542000F4CD4 /* goop.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = goop.c; path = hacks/goop.c; sourceTree = ""; }; - AF64278109A1D37A000F4CD4 /* SpeedMine.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SpeedMine.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF64278109A1D37A000F4CD4 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = SpeedMine.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF64278709A1D433000F4CD4 /* speedmine.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = speedmine.c; path = hacks/speedmine.c; sourceTree = ""; }; - AF6427B809A2DE36000F4CD4 /* Bubbles.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Bubbles.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF6427B809A2DE36000F4CD4 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Bubbles.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF6427BB09A2DF47000F4CD4 /* bubbles-default.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "bubbles-default.c"; path = "hacks/bubbles-default.c"; sourceTree = ""; }; AF6427BC09A2DF47000F4CD4 /* bubbles.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = bubbles.c; path = hacks/bubbles.c; sourceTree = ""; }; AF6427BD09A2DF47000F4CD4 /* bubbles.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = bubbles.h; path = hacks/bubbles.h; sourceTree = ""; }; AF7776F609B63ABF00EA3033 /* Phosphor.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Phosphor.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF77770309B63B5F00EA3033 /* phosphor.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = phosphor.c; path = hacks/phosphor.c; sourceTree = ""; }; - AF77772A09B6416100EA3033 /* Pacman.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Pacman.saver; sourceTree = BUILT_PRODUCTS_DIR; }; - AF77775109B6446500EA3033 /* FlipScreen3D.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FlipScreen3D.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF77772A09B6416100EA3033 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Pacman.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF77775109B6446500EA3033 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = FlipScreen3D.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF77775409B644FF00EA3033 /* flipscreen3d.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = flipscreen3d.c; path = hacks/glx/flipscreen3d.c; sourceTree = ""; }; AF77778B09B64A2A00EA3033 /* gleidescope.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = gleidescope.c; path = hacks/glx/gleidescope.c; sourceTree = ""; }; - AF7777A209B64A5200EA3033 /* MirrorBlob.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MirrorBlob.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF7777A209B64A5200EA3033 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = MirrorBlob.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF7777A509B64AFC00EA3033 /* mirrorblob.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = mirrorblob.c; path = hacks/glx/mirrorblob.c; sourceTree = ""; }; AF7777BF09B64BD400EA3033 /* stonerview-move.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "stonerview-move.c"; path = "hacks/glx/stonerview-move.c"; sourceTree = ""; }; AF7777C009B64BD400EA3033 /* stonerview-move.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = "stonerview-move.h"; path = "hacks/glx/stonerview-move.h"; sourceTree = ""; }; @@ -5536,21 +6020,21 @@ AF7777C309B64BD400EA3033 /* stonerview-view.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "stonerview-view.c"; path = "hacks/glx/stonerview-view.c"; sourceTree = ""; }; AF7777C409B64BD400EA3033 /* stonerview.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = stonerview.c; path = hacks/glx/stonerview.c; sourceTree = ""; }; AF7777C509B64BD400EA3033 /* stonerview.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = stonerview.h; path = hacks/glx/stonerview.h; sourceTree = ""; }; - AF7777E409B64C6B00EA3033 /* GLSlideshow.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GLSlideshow.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF7777E409B64C6B00EA3033 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = GLSlideshow.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF7777E709B64CF700EA3033 /* glslideshow.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = glslideshow.c; path = hacks/glx/glslideshow.c; sourceTree = ""; }; - AF7777FE09B64E3100EA3033 /* FlipText.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FlipText.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF7777FE09B64E3100EA3033 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = FlipText.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF77780109B64EC000EA3033 /* fliptext.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = fliptext.c; path = hacks/glx/fliptext.c; sourceTree = ""; }; AF77780809B64F4900EA3033 /* texfont.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = texfont.c; path = hacks/glx/texfont.c; sourceTree = ""; }; AF77780909B64F4900EA3033 /* texfont.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = texfont.h; path = hacks/glx/texfont.h; sourceTree = ""; }; AF77782809B650FF00EA3033 /* starwars.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = starwars.c; path = hacks/glx/starwars.c; sourceTree = ""; }; AF77782909B650FF00EA3033 /* starwars.txt */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text; name = starwars.txt; path = hacks/glx/starwars.txt; sourceTree = ""; }; - AF77785809B6528100EA3033 /* Carousel.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Carousel.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF77785809B6528100EA3033 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Carousel.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF77785E09B6530E00EA3033 /* carousel.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = carousel.c; path = hacks/glx/carousel.c; sourceTree = ""; }; - AF77787409B6536000EA3033 /* DNAlogo.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DNAlogo.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF77787409B6536000EA3033 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = DNAlogo.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF77787609B653DC00EA3033 /* dnalogo.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = dnalogo.c; path = hacks/glx/dnalogo.c; sourceTree = ""; }; AF77787909B6545E00EA3033 /* dnalogo.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = dnalogo.xml; sourceTree = ""; }; AF77789209B656C300EA3033 /* fontglide.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = fontglide.c; path = hacks/fontglide.c; sourceTree = ""; }; - AF7778B509B659C800EA3033 /* BlitSpin.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BlitSpin.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF7778B509B659C800EA3033 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = BlitSpin.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF7778BA09B65A8A00EA3033 /* blitspin.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = blitspin.c; path = hacks/blitspin.c; sourceTree = ""; }; AF7778BC09B65B1800EA3033 /* automata.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = automata.h; path = hacks/automata.h; sourceTree = ""; }; AF7778BD09B65B3F00EA3033 /* atlantis.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = atlantis.h; path = hacks/glx/atlantis.h; sourceTree = ""; }; @@ -5559,14 +6043,14 @@ AF7778C109B65C6A00EA3033 /* e_textures.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = e_textures.h; path = hacks/glx/e_textures.h; sourceTree = ""; }; AF7778C209B65CFE00EA3033 /* font-ximage.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "font-ximage.c"; path = "hacks/glx/font-ximage.c"; sourceTree = ""; }; AF7778C309B65CFE00EA3033 /* font-ximage.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = "font-ximage.h"; path = "hacks/glx/font-ximage.h"; sourceTree = ""; }; - AF78D189142DD8F3002AAF77 /* Hilbert.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Hilbert.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF78D189142DD8F3002AAF77 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Hilbert.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF78D18A142DD96E002AAF77 /* hilbert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = hilbert.c; path = hacks/glx/hilbert.c; sourceTree = ""; }; AF78D18E142DD99A002AAF77 /* hilbert.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = hilbert.xml; sourceTree = ""; }; - AF794F74099748450059A8B0 /* Demon.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Demon.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF794F74099748450059A8B0 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Demon.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF794F7E099748860059A8B0 /* demon.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = demon.c; path = hacks/demon.c; sourceTree = ""; }; - AF794F9E09974A320059A8B0 /* Fiberlamp.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Fiberlamp.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF794F9E09974A320059A8B0 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Fiberlamp.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF794FA909974AE30059A8B0 /* fiberlamp.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = fiberlamp.c; path = hacks/fiberlamp.c; sourceTree = ""; }; - AF794FDD09974FA60059A8B0 /* Loop.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Loop.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF794FDD09974FA60059A8B0 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Loop.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF794FE009974FEC0059A8B0 /* loop.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = loop.c; path = hacks/loop.c; sourceTree = ""; }; AF795011099751940059A8B0 /* pacman_ai.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = pacman_ai.c; path = hacks/pacman_ai.c; sourceTree = ""; }; AF795012099751940059A8B0 /* pacman_ai.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = pacman_ai.h; path = hacks/pacman_ai.h; sourceTree = ""; }; @@ -5574,102 +6058,104 @@ AF795014099751940059A8B0 /* pacman_level.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = pacman_level.h; path = hacks/pacman_level.h; sourceTree = ""; }; AF795015099751940059A8B0 /* pacman.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = pacman.c; path = hacks/pacman.c; sourceTree = ""; }; AF795016099751940059A8B0 /* pacman.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = pacman.h; path = hacks/pacman.h; sourceTree = ""; }; + AF84AF1E15829AF000607E4C /* SaverListController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SaverListController.m; path = OSX/SaverListController.m; sourceTree = ""; }; AF84FD4109B1209E00F3AB06 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = /System/Library/Frameworks/GLUT.framework; sourceTree = ""; }; - AF97573D099C317000B05160 /* IMSMap.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = IMSMap.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF91898F158FC00A002B5D1E /* XScreenSaver.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = XScreenSaver.app; sourceTree = BUILT_PRODUCTS_DIR; }; + AF97573D099C317000B05160 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = IMSMap.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF975740099C31DD00B05160 /* imsmap.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = imsmap.c; path = hacks/imsmap.c; sourceTree = ""; }; - AF975785099C374A00B05160 /* Moire.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Moire.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF975785099C374A00B05160 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Moire.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF975789099C37A500B05160 /* moire.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = moire.c; path = hacks/moire.c; sourceTree = ""; }; - AF9757D2099C3E6300B05160 /* RDbomb.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RDbomb.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF9757D2099C3E6300B05160 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = RDbomb.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF9757D5099C3EB800B05160 /* rd-bomb.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "rd-bomb.c"; path = "hacks/rd-bomb.c"; sourceTree = ""; }; - AF975818099C41D500B05160 /* XFlame.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XFlame.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF975818099C41D500B05160 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = XFlame.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF97582F099C427500B05160 /* xflame.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = xflame.c; path = hacks/xflame.c; sourceTree = ""; }; - AF975875099C475900B05160 /* ShadeBobs.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ShadeBobs.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF975875099C475900B05160 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = ShadeBobs.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF97587A099C492000B05160 /* shadebobs.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = shadebobs.c; path = hacks/shadebobs.c; sourceTree = ""; }; - AF975A46099C681F00B05160 /* MetaBalls.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MetaBalls.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF975A46099C681F00B05160 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = MetaBalls.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF975A49099C689F00B05160 /* metaballs.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = metaballs.c; path = hacks/metaballs.c; sourceTree = ""; }; - AF975A7C099C6AB200B05160 /* Eruption.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Eruption.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF975A7C099C6AB200B05160 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Eruption.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF975A83099C6B4900B05160 /* eruption.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = eruption.c; path = hacks/eruption.c; sourceTree = ""; }; - AF975A96099C6BC300B05160 /* Barcode.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Barcode.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF975A96099C6BC300B05160 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Barcode.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF975A99099C6C3500B05160 /* barcode.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = barcode.c; path = hacks/barcode.c; sourceTree = ""; }; - AF975AE7099C6EB100B05160 /* Fireworkx.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Fireworkx.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF975AE7099C6EB100B05160 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Fireworkx.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF975AEE099C6F1700B05160 /* fireworkx.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = fireworkx.c; path = hacks/fireworkx.c; sourceTree = ""; }; - AF975B0C099C6FE400B05160 /* MemScroller.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MemScroller.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF975B0C099C6FE400B05160 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = MemScroller.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF975B14099C709E00B05160 /* memscroller.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = memscroller.c; path = hacks/memscroller.c; sourceTree = ""; }; - AF975C22099C8C1500B05160 /* Halo.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Halo.saver; sourceTree = BUILT_PRODUCTS_DIR; }; - AF975C4E099C8DCF00B05160 /* Greynetic.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Greynetic.saver; sourceTree = BUILT_PRODUCTS_DIR; }; - AF975C6E099C8F3F00B05160 /* NoseGuy.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NoseGuy.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF975C22099C8C1500B05160 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Halo.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF975C4E099C8DCF00B05160 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Greynetic.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF975C6E099C8F3F00B05160 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = NoseGuy.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF975C76099C8FC700B05160 /* noseguy.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = noseguy.c; path = hacks/noseguy.c; sourceTree = ""; }; AF975C91099C929800B05160 /* xpm-pixmap.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "xpm-pixmap.c"; path = "hacks/xpm-pixmap.c"; sourceTree = ""; }; AF975C92099C929800B05160 /* xpm-pixmap.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = "xpm-pixmap.h"; path = "hacks/xpm-pixmap.h"; sourceTree = ""; }; - AF975D63099CA0F000B05160 /* Rocks.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rocks.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF975D63099CA0F000B05160 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Rocks.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF975D66099CA16A00B05160 /* rocks.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = rocks.c; path = hacks/rocks.c; sourceTree = ""; }; AF976DFA09896BEB001F8B92 /* attraction.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = attraction.c; path = hacks/attraction.c; sourceTree = ""; }; AF976ED30989BF59001F8B92 /* ScreenSaver.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ScreenSaver.framework; path = /System/Library/Frameworks/ScreenSaver.framework; sourceTree = ""; }; - AF976FBC0989CAA2001F8B92 /* Deco.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Deco.saver; sourceTree = BUILT_PRODUCTS_DIR; }; - AF9770400989D1E6001F8B92 /* Rorschach.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rorschach.saver; sourceTree = BUILT_PRODUCTS_DIR; }; - AF97707D0989D2F6001F8B92 /* Attraction.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Attraction.saver; sourceTree = BUILT_PRODUCTS_DIR; }; - AF9771D70989DC4A001F8B92 /* SaverTester.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SaverTester.app; sourceTree = BUILT_PRODUCTS_DIR; }; + AF976FBC0989CAA2001F8B92 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Deco.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF9770400989D1E6001F8B92 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Rorschach.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF97707D0989D2F6001F8B92 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Attraction.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF9771D70989DC4A001F8B92 /* XScreenSaver.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; name = XScreenSaver.app; path = SaverTester.app; sourceTree = BUILT_PRODUCTS_DIR; }; AF9771D90989DC4A001F8B92 /* SaverRunner.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = SaverRunner.plist; path = OSX/SaverRunner.plist; sourceTree = ""; }; AF9772E20989DFC6001F8B92 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = OSX/English.lproj/SaverRunner.nib; sourceTree = ""; }; - AF998EEE0A083DB30051049D /* TopBlock.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TopBlock.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF998EEE0A083DB30051049D /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = TopBlock.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF998EF80A083E750051049D /* topblock.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = topblock.c; path = hacks/glx/topblock.c; sourceTree = ""; }; AF998EFA0A083E8C0051049D /* topblock.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = topblock.xml; sourceTree = ""; }; AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */ = {isa = PBXFileReference; fileEncoding = 5; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = XScreenSaverSubclass.m; path = OSX/XScreenSaverSubclass.m; sourceTree = ""; }; - AF9D467609B5109C006E59CF /* DecayScreen.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DecayScreen.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF9D467609B5109C006E59CF /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = DecayScreen.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF9D467809B5110B006E59CF /* decayscreen.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = decayscreen.c; path = hacks/decayscreen.c; sourceTree = ""; }; AF9D468E09B51567006E59CF /* osxgrabscreen.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; name = osxgrabscreen.m; path = OSX/osxgrabscreen.m; sourceTree = ""; }; AF9D473609B52EE0006E59CF /* colorbars.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = colorbars.c; path = utils/colorbars.c; sourceTree = ""; }; AF9D473709B52EE0006E59CF /* colorbars.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = colorbars.h; path = utils/colorbars.h; sourceTree = ""; }; - AF9D475409B5300A006E59CF /* SlideScreen.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SlideScreen.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF9D475409B5300A006E59CF /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = SlideScreen.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF9D475809B53091006E59CF /* slidescreen.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = slidescreen.c; path = hacks/slidescreen.c; sourceTree = ""; }; - AF9D476F09B53166006E59CF /* Zoom.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Zoom.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF9D476F09B53166006E59CF /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Zoom.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF9D48D409B53229006E59CF /* zoom.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = zoom.c; path = hacks/zoom.c; sourceTree = ""; }; - AF9D48EB09B53322006E59CF /* Bumps.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Bumps.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF9D48EB09B53322006E59CF /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Bumps.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF9D48EE09B533AE006E59CF /* bumps.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = bumps.c; path = hacks/bumps.c; sourceTree = ""; }; - AF9D490409B535DA006E59CF /* Distort.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Distort.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF9D490409B535DA006E59CF /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Distort.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF9D490709B536F7006E59CF /* distort.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = distort.c; path = hacks/distort.c; sourceTree = ""; }; - AF9D493B09B53CBA006E59CF /* Ripples.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Ripples.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF9D493B09B53CBA006E59CF /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Ripples.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF9D493E09B53D55006E59CF /* ripples.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = ripples.c; path = hacks/ripples.c; sourceTree = ""; }; - AF9D496409B53FC9006E59CF /* RotZoomer.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RotZoomer.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF9D496409B53FC9006E59CF /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = RotZoomer.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF9D496709B540A4006E59CF /* rotzoomer.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = rotzoomer.c; path = hacks/rotzoomer.c; sourceTree = ""; }; - AF9D497C09B5411D006E59CF /* Twang.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Twang.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF9D497C09B5411D006E59CF /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Twang.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF9D497F09B541E5006E59CF /* twang.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = twang.c; path = hacks/twang.c; sourceTree = ""; }; - AF9D49A709B544C3006E59CF /* Spotlight.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Spotlight.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF9D49A709B544C3006E59CF /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Spotlight.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF9D49AA09B54596006E59CF /* spotlight.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = spotlight.c; path = hacks/spotlight.c; sourceTree = ""; }; - AF9D4C7909B59F27006E59CF /* XLyap.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XLyap.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF9D4C7909B59F27006E59CF /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = XLyap.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF9D4C7C09B5A044006E59CF /* xlyap.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = xlyap.c; path = hacks/xlyap.c; sourceTree = ""; }; - AF9D4CF709B5AA8E006E59CF /* Pong.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Pong.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF9D4CF709B5AA8E006E59CF /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Pong.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF9D4CFA09B5AC94006E59CF /* analogtv.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = analogtv.c; path = hacks/analogtv.c; sourceTree = ""; }; AF9D4CFB09B5AC94006E59CF /* analogtv.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = analogtv.h; path = hacks/analogtv.h; sourceTree = ""; }; AF9D4CFC09B5AC94006E59CF /* pong.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = pong.c; path = hacks/pong.c; sourceTree = ""; }; - AF9D4D8F09B5B2DC006E59CF /* XAnalogTV.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XAnalogTV.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF9D4D8F09B5B2DC006E59CF /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = XAnalogTV.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF9D4D9209B5B444006E59CF /* xanalogtv.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = xanalogtv.c; path = hacks/xanalogtv.c; sourceTree = ""; }; - AF9D4DC009B5B71E006E59CF /* BSOD.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BSOD.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AF9D4DC009B5B71E006E59CF /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = BSOD.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF9D4DC309B5B87D006E59CF /* bsod.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = bsod.c; path = hacks/bsod.c; sourceTree = ""; }; AF9D4DD309B5B990006E59CF /* apple2.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = apple2.c; path = hacks/apple2.c; sourceTree = ""; }; AF9D4DFE09B5BB19006E59CF /* Apple2.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Apple2.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AF9D4E0509B5BC9D006E59CF /* apple2-main.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "apple2-main.c"; path = "hacks/apple2-main.c"; sourceTree = ""; }; AF9D4E2109B63413006E59CF /* jwxyz-timers.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; name = "jwxyz-timers.m"; path = "OSX/jwxyz-timers.m"; sourceTree = ""; }; - AFA339400B058505002B0E7D /* WebCollage.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WebCollage.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA339400B058505002B0E7D /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = WebCollage.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA33BAE0B0585F7002B0E7D /* webcollage-cocoa.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; name = "webcollage-cocoa.m"; path = "hacks/webcollage-cocoa.m"; sourceTree = ""; }; AFA33BC70B058740002B0E7D /* webcollage-helper */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "webcollage-helper"; sourceTree = BUILT_PRODUCTS_DIR; }; AFA33BD00B0587EE002B0E7D /* webcollage-helper-cocoa.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; name = "webcollage-helper-cocoa.m"; path = "hacks/webcollage-helper-cocoa.m"; sourceTree = ""; }; AFA33C0A0B058E6B002B0E7D /* webcollage */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.script.perl; name = webcollage; path = hacks/webcollage; sourceTree = ""; }; AFA55864099324D800F3E977 /* minixpm.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = minixpm.c; path = utils/minixpm.c; sourceTree = ""; }; AFA55865099324D800F3E977 /* minixpm.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = minixpm.h; path = utils/minixpm.h; sourceTree = ""; }; - AFA5595A099330B000F3E977 /* Cage.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Cage.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA5595A099330B000F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Cage.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA5595D0993310500F3E977 /* cage.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = cage.c; path = hacks/glx/cage.c; sourceTree = ""; }; - AFA5597F0993317900F3E977 /* Moebius.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Moebius.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA5597F0993317900F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Moebius.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55982099331C300F3E977 /* moebius.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = moebius.c; path = hacks/glx/moebius.c; sourceTree = ""; }; - AFA559A40993322100F3E977 /* Superquadrics.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Superquadrics.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA559A40993322100F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Superquadrics.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA559A80993326300F3E977 /* superquadrics.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = superquadrics.c; path = hacks/glx/superquadrics.c; sourceTree = ""; }; - AFA559C70993328000F3E977 /* Morph3D.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Morph3D.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA559C70993328000F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Morph3D.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA559CC099332E800F3E977 /* morph3d.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = morph3d.c; path = hacks/glx/morph3d.c; sourceTree = ""; }; - AFA559E10993330600F3E977 /* Rubik.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rubik.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA559E10993330600F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Rubik.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA559EA0993335C00F3E977 /* rubik.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = rubik.c; path = hacks/glx/rubik.c; sourceTree = ""; }; - AFA55A150993340300F3E977 /* Stairs.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Stairs.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55A150993340300F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Stairs.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55A1A0993345900F3E977 /* stairs.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = stairs.c; path = hacks/glx/stairs.c; sourceTree = ""; }; - AFA55A32099334A000F3E977 /* Sproingies.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Sproingies.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55A32099334A000F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Sproingies.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55A3E0993351F00F3E977 /* gllist.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = gllist.c; path = hacks/glx/gllist.c; sourceTree = ""; }; AFA55A3F0993351F00F3E977 /* gllist.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = gllist.h; path = hacks/glx/gllist.h; sourceTree = ""; }; AFA55A400993351F00F3E977 /* s1_1.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = s1_1.c; path = hacks/glx/s1_1.c; sourceTree = ""; }; @@ -5681,80 +6167,73 @@ AFA55A460993351F00F3E977 /* s1_b.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = s1_b.c; path = hacks/glx/s1_b.c; sourceTree = ""; }; AFA55A470993351F00F3E977 /* sproingies.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = sproingies.c; path = hacks/glx/sproingies.c; sourceTree = ""; }; AFA55A480993351F00F3E977 /* sproingiewrap.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = sproingiewrap.c; path = hacks/glx/sproingiewrap.c; sourceTree = ""; }; - AFA55A8B0993364300F3E977 /* Lament.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Lament.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55A8B0993364300F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Lament.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55A8E0993369100F3E977 /* lament.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = lament.c; path = hacks/glx/lament.c; sourceTree = ""; }; AFA55A93099336D800F3E977 /* normals.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = normals.c; path = hacks/glx/normals.c; sourceTree = ""; }; AFA55A94099336D800F3E977 /* normals.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = normals.h; path = hacks/glx/normals.h; sourceTree = ""; }; - AFA55AE109933CEF00F3E977 /* Bubble3D.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Bubble3D.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55AE109933CEF00F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Bubble3D.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55AE409933D3800F3E977 /* bubble3d.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = bubble3d.c; path = hacks/glx/bubble3d.c; sourceTree = ""; }; AFA55AE809933D5900F3E977 /* bubble3d.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = bubble3d.h; path = hacks/glx/bubble3d.h; sourceTree = ""; }; AFA55AF409933DBF00F3E977 /* b_draw.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = b_draw.c; path = hacks/glx/b_draw.c; sourceTree = ""; }; AFA55AF509933DBF00F3E977 /* b_lockglue.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = b_lockglue.c; path = hacks/glx/b_lockglue.c; sourceTree = ""; }; AFA55AF609933DBF00F3E977 /* b_sphere.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = b_sphere.c; path = hacks/glx/b_sphere.c; sourceTree = ""; }; - AFA55B1E09933E0500F3E977 /* GLPlanet.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GLPlanet.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55B1E09933E0500F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = GLPlanet.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55B2109933E4A00F3E977 /* glplanet.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = glplanet.c; path = hacks/glx/glplanet.c; sourceTree = ""; }; - AFA55B3709933E8D00F3E977 /* Pulsar.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Pulsar.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55B3709933E8D00F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Pulsar.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55B3F09933EC600F3E977 /* pulsar.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = pulsar.c; path = hacks/glx/pulsar.c; sourceTree = ""; }; - AFA55B8B09933F7200F3E977 /* Sierpinski3D.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Sierpinski3D.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55B8B09933F7200F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Sierpinski3D.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55B8E09933FBF00F3E977 /* sierpinski3d.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = sierpinski3d.c; path = hacks/glx/sierpinski3d.c; sourceTree = ""; }; - AFA55BA309933FDA00F3E977 /* GFlux.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GFlux.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55BA309933FDA00F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = GFlux.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55BA60993401A00F3E977 /* gflux.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = gflux.c; path = hacks/glx/gflux.c; sourceTree = ""; }; - AFA55BBD099340CE00F3E977 /* Circuit.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Circuit.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55BBD099340CE00F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Circuit.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55BC00993416E00F3E977 /* circuit.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = circuit.c; path = hacks/glx/circuit.c; sourceTree = ""; }; - AFA55BF60993429100F3E977 /* Menger.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Menger.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55BF60993429100F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Menger.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55BF9099342D500F3E977 /* menger.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = menger.c; path = hacks/glx/menger.c; sourceTree = ""; }; - AFA55C200993431300F3E977 /* Engine.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Engine.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55C200993431300F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Engine.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55C230993435300F3E977 /* engine.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = engine.c; path = hacks/glx/engine.c; sourceTree = ""; }; AFA55C560993482800F3E977 /* glxfonts.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = glxfonts.c; path = hacks/glx/glxfonts.c; sourceTree = ""; }; - AFA55C89099349A600F3E977 /* GLSnake.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GLSnake.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55C89099349A600F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = GLSnake.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55C8C099349EE00F3E977 /* glsnake.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = glsnake.c; path = hacks/glx/glsnake.c; sourceTree = ""; }; - AFA55CBB09934BB200F3E977 /* Boxed.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Boxed.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55CBB09934BB200F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Boxed.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55CBE09934C0900F3E977 /* boxed.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = boxed.c; path = hacks/glx/boxed.c; sourceTree = ""; }; AFA55CBF09934C0900F3E977 /* boxed.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = boxed.h; path = hacks/glx/boxed.h; sourceTree = ""; }; - AFA55CDE09934CE400F3E977 /* GLForestFire.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GLForestFire.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55CDE09934CE400F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = GLForestFire.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55CE109934D2E00F3E977 /* glforestfire.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = glforestfire.c; path = hacks/glx/glforestfire.c; sourceTree = ""; }; - AFA55D4E0993565300F3E977 /* SBalls.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SBalls.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55D4E0993565300F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = SBalls.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55D510993569C00F3E977 /* sballs.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = sballs.c; path = hacks/glx/sballs.c; sourceTree = ""; }; - AFA55D740993584B00F3E977 /* Cubenetic.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Cubenetic.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55D740993584B00F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Cubenetic.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55D770993589300F3E977 /* cubenetic.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = cubenetic.c; path = hacks/glx/cubenetic.c; sourceTree = ""; }; - AFA55D91099358C400F3E977 /* Spheremonics.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Spheremonics.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55D91099358C400F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Spheremonics.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55D940993590F00F3E977 /* spheremonics.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = spheremonics.c; path = hacks/glx/spheremonics.c; sourceTree = ""; }; - AFA55DDA09935D7000F3E977 /* Lavalite.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Lavalite.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55DDA09935D7000F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Lavalite.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55DDD09935DB600F3E977 /* lavalite.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = lavalite.c; path = hacks/glx/lavalite.c; sourceTree = ""; }; AFA55DE109935DFB00F3E977 /* marching.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = marching.c; path = hacks/glx/marching.c; sourceTree = ""; }; AFA55DE209935DFB00F3E977 /* marching.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = marching.h; path = hacks/glx/marching.h; sourceTree = ""; }; - AFA55E0309935E4900F3E977 /* Queens.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Queens.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55E0309935E4900F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Queens.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55E0609935EB800F3E977 /* queens.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = queens.c; path = hacks/glx/queens.c; sourceTree = ""; }; - AFA55E1F09935EDC00F3E977 /* Endgame.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Endgame.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55E1F09935EDC00F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Endgame.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55E2209935F2B00F3E977 /* chessgames.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = chessgames.h; path = hacks/glx/chessgames.h; sourceTree = ""; }; AFA55E2309935F2B00F3E977 /* chessmodels.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = chessmodels.c; path = hacks/glx/chessmodels.c; sourceTree = ""; }; AFA55E2409935F2B00F3E977 /* chessmodels.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = chessmodels.h; path = hacks/glx/chessmodels.h; sourceTree = ""; }; AFA55E2509935F2B00F3E977 /* endgame.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = endgame.c; path = hacks/glx/endgame.c; sourceTree = ""; }; - AFA55E4209935F8E00F3E977 /* GLBlur.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GLBlur.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55E4209935F8E00F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = GLBlur.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55E4509935FD300F3E977 /* glblur.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = glblur.c; path = hacks/glx/glblur.c; sourceTree = ""; }; - AFA55E6009935FF900F3E977 /* FlyingToasters.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FlyingToasters.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55E6009935FF900F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = FlyingToasters.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55E980993608800F3E977 /* flyingtoasters.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = flyingtoasters.c; path = hacks/glx/flyingtoasters.c; sourceTree = ""; }; AFA55E990993608800F3E977 /* toast.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = toast.c; path = hacks/glx/toast.c; sourceTree = ""; }; AFA55E9A0993608800F3E977 /* toast.dxf */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text; name = toast.dxf; path = hacks/glx/toast.dxf; sourceTree = ""; }; AFA55E9B0993608800F3E977 /* toast2.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = toast2.c; path = hacks/glx/toast2.c; sourceTree = ""; }; AFA55E9C0993608800F3E977 /* toast2.dxf */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text; name = toast2.dxf; path = hacks/glx/toast2.dxf; sourceTree = ""; }; AFA55E9D0993608800F3E977 /* toaster_base.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = toaster_base.c; path = hacks/glx/toaster_base.c; sourceTree = ""; }; - AFA55E9E0993608800F3E977 /* toaster_base.dxf */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text; name = toaster_base.dxf; path = hacks/glx/toaster_base.dxf; sourceTree = ""; }; AFA55E9F0993608800F3E977 /* toaster_handle.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = toaster_handle.c; path = hacks/glx/toaster_handle.c; sourceTree = ""; }; - AFA55EA00993608800F3E977 /* toaster_handle.dxf */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text; name = toaster_handle.dxf; path = hacks/glx/toaster_handle.dxf; sourceTree = ""; }; AFA55EA10993608800F3E977 /* toaster_handle2.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = toaster_handle2.c; path = hacks/glx/toaster_handle2.c; sourceTree = ""; }; - AFA55EA20993608800F3E977 /* toaster_handle2.dxf */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text; name = toaster_handle2.dxf; path = hacks/glx/toaster_handle2.dxf; sourceTree = ""; }; AFA55EA30993608800F3E977 /* toaster_jet.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = toaster_jet.c; path = hacks/glx/toaster_jet.c; sourceTree = ""; }; - AFA55EA40993608800F3E977 /* toaster_jet.dxf */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text; name = toaster_jet.dxf; path = hacks/glx/toaster_jet.dxf; sourceTree = ""; }; AFA55EA50993608800F3E977 /* toaster_knob.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = toaster_knob.c; path = hacks/glx/toaster_knob.c; sourceTree = ""; }; - AFA55EA60993608800F3E977 /* toaster_knob.dxf */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text; name = toaster_knob.dxf; path = hacks/glx/toaster_knob.dxf; sourceTree = ""; }; AFA55EA70993608800F3E977 /* toaster_slots.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = toaster_slots.c; path = hacks/glx/toaster_slots.c; sourceTree = ""; }; - AFA55EA80993608800F3E977 /* toaster_slots.dxf */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text; name = toaster_slots.dxf; path = hacks/glx/toaster_slots.dxf; sourceTree = ""; }; AFA55EA90993608800F3E977 /* toaster_wing.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = toaster_wing.c; path = hacks/glx/toaster_wing.c; sourceTree = ""; }; - AFA55EAA0993608800F3E977 /* toaster_wing.dxf */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text; name = toaster_wing.dxf; path = hacks/glx/toaster_wing.dxf; sourceTree = ""; }; AFA55EAB0993608800F3E977 /* toaster.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = toaster.c; path = hacks/glx/toaster.c; sourceTree = ""; }; AFA55EAC0993608800F3E977 /* toaster.dxf */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text; name = toaster.dxf; path = hacks/glx/toaster.dxf; sourceTree = ""; }; - AFA55EE3099360E300F3E977 /* BouncingCow.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BouncingCow.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55EE3099360E300F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = BouncingCow.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55EE70993613E00F3E977 /* bouncingcow.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = bouncingcow.c; path = hacks/glx/bouncingcow.c; sourceTree = ""; }; AFA55EE80993613E00F3E977 /* cow_face.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = cow_face.c; path = hacks/glx/cow_face.c; sourceTree = ""; }; AFA55EE90993613E00F3E977 /* cow_hide.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = cow_hide.c; path = hacks/glx/cow_hide.c; sourceTree = ""; }; @@ -5762,63 +6241,63 @@ AFA55EEB0993613E00F3E977 /* cow_horns.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = cow_horns.c; path = hacks/glx/cow_horns.c; sourceTree = ""; }; AFA55EEC0993613E00F3E977 /* cow_tail.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = cow_tail.c; path = hacks/glx/cow_tail.c; sourceTree = ""; }; AFA55EED0993613E00F3E977 /* cow_udder.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = cow_udder.c; path = hacks/glx/cow_udder.c; sourceTree = ""; }; - AFA55F1E099361B700F3E977 /* JigglyPuff.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = JigglyPuff.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55F1E099361B700F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = JigglyPuff.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55F210993620200F3E977 /* jigglypuff.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = jigglypuff.c; path = hacks/glx/jigglypuff.c; sourceTree = ""; }; - AFA55F3C0993622F00F3E977 /* Klein.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Klein.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55F3C0993622F00F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Klein.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55F3F0993626E00F3E977 /* klein.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = klein.c; path = hacks/glx/klein.c; sourceTree = ""; }; - AFA55F540993629000F3E977 /* Hypertorus.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Hypertorus.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55F540993629000F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Hypertorus.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55F59099362DF00F3E977 /* hypertorus.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = hypertorus.c; path = hacks/glx/hypertorus.c; sourceTree = ""; }; - AFA55F840993643600F3E977 /* GLMatrix.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GLMatrix.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55F840993643600F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = GLMatrix.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55F870993648500F3E977 /* glmatrix.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = glmatrix.c; path = hacks/glx/glmatrix.c; sourceTree = ""; }; - AFA55FE509936BFA00F3E977 /* CubeStorm.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CubeStorm.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA55FE509936BFA00F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = CubeStorm.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA55FF309936C4500F3E977 /* cubestorm.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = cubestorm.c; path = hacks/glx/cubestorm.c; sourceTree = ""; }; - AFA5600B09936C6D00F3E977 /* GLKnots.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GLKnots.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA5600B09936C6D00F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = GLKnots.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA5600E09936CB300F3E977 /* glknots.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = glknots.c; path = hacks/glx/glknots.c; sourceTree = ""; }; - AFA5602609936CC800F3E977 /* BlockTube.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BlockTube.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA5602609936CC800F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = BlockTube.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA5602909936D0700F3E977 /* blocktube.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = blocktube.c; path = hacks/glx/blocktube.c; sourceTree = ""; }; - AFA5604409936D5100F3E977 /* FlipFlop.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FlipFlop.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA5604409936D5100F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = FlipFlop.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA5604709936DCC00F3E977 /* flipflop.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = flipflop.c; path = hacks/glx/flipflop.c; sourceTree = ""; }; - AFA5605C09936E2100F3E977 /* AntInspect.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AntInspect.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA5605C09936E2100F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = AntInspect.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA5605F09936E9C00F3E977 /* antinspect.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = antinspect.c; path = hacks/glx/antinspect.c; sourceTree = ""; }; - AFA5607409936F3800F3E977 /* AntSpotlight.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AntSpotlight.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA5607409936F3800F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = AntSpotlight.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA5607709936FDD00F3E977 /* ants.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = ants.h; path = hacks/glx/ants.h; sourceTree = ""; }; AFA5607809936FDD00F3E977 /* antspotlight.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = antspotlight.c; path = hacks/glx/antspotlight.c; sourceTree = ""; }; AFA5607909936FDD00F3E977 /* grab-ximage.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "grab-ximage.c"; path = "hacks/glx/grab-ximage.c"; sourceTree = ""; }; AFA5607A09936FDD00F3E977 /* grab-ximage.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = "grab-ximage.h"; path = "hacks/glx/grab-ximage.h"; sourceTree = ""; }; - AFA560C00993718D00F3E977 /* Polytopes.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Polytopes.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA560C00993718D00F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Polytopes.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA560C3099371D500F3E977 /* polytopes.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = polytopes.c; path = hacks/glx/polytopes.c; sourceTree = ""; }; - AFA5610F0993781600F3E977 /* Molecule.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Molecule.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA5610F0993781600F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Molecule.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA561120993786800F3E977 /* molecule.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = molecule.c; path = hacks/glx/molecule.c; sourceTree = ""; }; - AFA5616A09937C0D00F3E977 /* BlinkBox.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BlinkBox.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA5616A09937C0D00F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = BlinkBox.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA5616D09937C9A00F3E977 /* blinkbox.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = blinkbox.c; path = hacks/glx/blinkbox.c; sourceTree = ""; }; - AFA5618D09937CF100F3E977 /* Noof.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Noof.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA5618D09937CF100F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Noof.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA5619009937D3600F3E977 /* noof.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = noof.c; path = hacks/glx/noof.c; sourceTree = ""; }; - AFA561AF09937D7E00F3E977 /* Polyhedra.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Polyhedra.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA561AF09937D7E00F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Polyhedra.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA561B209937DCB00F3E977 /* polyhedra-gl.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "polyhedra-gl.c"; path = "hacks/glx/polyhedra-gl.c"; sourceTree = ""; }; AFA561B309937DCC00F3E977 /* polyhedra.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = polyhedra.c; path = hacks/glx/polyhedra.c; sourceTree = ""; }; AFA561B409937DCC00F3E977 /* polyhedra.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = polyhedra.h; path = hacks/glx/polyhedra.h; sourceTree = ""; }; AFA561BA09937E9E00F3E977 /* glxfonts.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = glxfonts.h; path = hacks/glx/glxfonts.h; sourceTree = ""; }; - AFA562190993849F00F3E977 /* Providence.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Providence.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA562190993849F00F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Providence.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA5621C099384F600F3E977 /* providence.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = providence.c; path = hacks/glx/providence.c; sourceTree = ""; }; - AFA562310993852500F3E977 /* Pinion.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Pinion.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA562310993852500F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Pinion.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA562340993856A00F3E977 /* pinion.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = pinion.c; path = hacks/glx/pinion.c; sourceTree = ""; }; - AFA562D1099392C600F3E977 /* Boing.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Boing.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA562D1099392C600F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Boing.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA562D40993930C00F3E977 /* boing.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = boing.c; path = hacks/glx/boing.c; sourceTree = ""; }; - AFA562EC099393C900F3E977 /* AntMaze.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AntMaze.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA562EC099393C900F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = AntMaze.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA562EF0993941600F3E977 /* antmaze.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = antmaze.c; path = hacks/glx/antmaze.c; sourceTree = ""; }; - AFA563040993943B00F3E977 /* Tangram.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Tangram.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA563040993943B00F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Tangram.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA563070993948F00F3E977 /* tangram_shapes.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = tangram_shapes.c; path = hacks/glx/tangram_shapes.c; sourceTree = ""; }; AFA563080993948F00F3E977 /* tangram_shapes.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = tangram_shapes.h; path = hacks/glx/tangram_shapes.h; sourceTree = ""; }; AFA563090993948F00F3E977 /* tangram.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = tangram.c; path = hacks/glx/tangram.c; sourceTree = ""; }; - AFA563260993951000F3E977 /* Crackberg.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Crackberg.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA563260993951000F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Crackberg.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA563290993957100F3E977 /* crackberg.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = crackberg.c; path = hacks/glx/crackberg.c; sourceTree = ""; }; - AFA56343099395ED00F3E977 /* GLHanoi.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GLHanoi.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA56343099395ED00F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = GLHanoi.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA563460993963400F3E977 /* glhanoi.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = glhanoi.c; path = hacks/glx/glhanoi.c; sourceTree = ""; }; - AFA56363099396C000F3E977 /* Cube21.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Cube21.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA56363099396C000F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Cube21.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA563660993970F00F3E977 /* cube21.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = cube21.c; path = hacks/glx/cube21.c; sourceTree = ""; }; - AFA5638B099397B300F3E977 /* TimeTunnel.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TimeTunnel.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA5638B099397B300F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = TimeTunnel.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA5638E0993980D00F3E977 /* timetunnel.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = timetunnel.c; path = hacks/glx/timetunnel.c; sourceTree = ""; }; - AFA563B6099398BB00F3E977 /* Juggler3D.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Juggler3D.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFA563B6099398BB00F3E977 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Juggler3D.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFA563B90993991300F3E977 /* juggler3d.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = juggler3d.c; path = hacks/glx/juggler3d.c; sourceTree = ""; }; AFAD462209D5F4DA00AB5F95 /* grabclient.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = grabclient.c; path = utils/grabclient.c; sourceTree = ""; }; AFB5A06B0981F4C600871B16 /* screenhack.h */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.h; name = screenhack.h; path = hacks/screenhack.h; sourceTree = ""; }; @@ -6035,85 +6514,86 @@ AFC2593A0988A469000655EE /* xmatrix.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = xmatrix.xml; sourceTree = ""; }; AFC2593D0988A469000655EE /* xrayswarm.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = xrayswarm.xml; sourceTree = ""; }; AFC2593F0988A469000655EE /* xspirograph.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = xspirograph.xml; sourceTree = ""; }; - AFC259400988A469000655EE /* xss.dtd */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = xss.dtd; sourceTree = ""; }; - AFC259410988A469000655EE /* xss.xsd */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = xss.xsd; sourceTree = ""; }; AFC259430988A469000655EE /* zoom.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = zoom.xml; sourceTree = ""; }; AFC25B5E0988BA63000655EE /* deco.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = deco.c; path = hacks/deco.c; sourceTree = ""; }; AFC25B990988BC08000655EE /* colors.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = colors.c; path = utils/colors.c; sourceTree = ""; }; AFC25B9A0988BC08000655EE /* colors.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = colors.h; path = utils/colors.h; sourceTree = ""; }; + AFC7592B158D8E8B00C5458E /* textclient.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = textclient.c; path = utils/textclient.c; sourceTree = ""; }; + AFC7592C158D8E8B00C5458E /* textclient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = textclient.h; path = utils/textclient.h; sourceTree = ""; }; + AFC7592F158D9A7A00C5458E /* iostextclient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iostextclient.m; path = OSX/iostextclient.m; sourceTree = ""; }; AFCCCBAD09BFE4B000353F4D /* rdbomb.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = rdbomb.xml; sourceTree = ""; }; - AFD51B300F063B4A00471C02 /* Photopile.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Photopile.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD51B300F063B4A00471C02 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Photopile.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD51DB60F063BCE00471C02 /* photopile.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = photopile.c; path = hacks/glx/photopile.c; sourceTree = ""; }; AFD51DB80F063BE700471C02 /* photopile.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = photopile.xml; sourceTree = ""; }; - AFD56E040996A03800BA26F7 /* GLText.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GLText.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD56E040996A03800BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = GLText.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD56E080996A07A00BA26F7 /* gltext.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = gltext.c; path = hacks/glx/gltext.c; sourceTree = ""; }; AFD56E0A0996A0ED00BA26F7 /* glut_roman.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = glut_roman.h; path = hacks/glx/glut_roman.h; sourceTree = ""; }; AFD56E0B0996A0ED00BA26F7 /* glut_stroke.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = glut_stroke.c; path = hacks/glx/glut_stroke.c; sourceTree = ""; }; AFD56E0C0996A0ED00BA26F7 /* glut_swidth.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = glut_swidth.c; path = hacks/glx/glut_swidth.c; sourceTree = ""; }; AFD56E0D0996A0ED00BA26F7 /* glutstroke.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = glutstroke.h; path = hacks/glx/glutstroke.h; sourceTree = ""; }; - AFD56EBE0996A72600BA26F7 /* Braid.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Braid.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD56EBE0996A72600BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Braid.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD56EC10996A76F00BA26F7 /* braid.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = braid.c; path = hacks/braid.c; sourceTree = ""; }; - AFD56EEA0996A95700BA26F7 /* Forest.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Forest.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD56EEA0996A95700BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Forest.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD56EED0996A99E00BA26F7 /* forest.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = forest.c; path = hacks/forest.c; sourceTree = ""; }; - AFD56F1B0996AAFA00BA26F7 /* Vines.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Vines.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD56F1B0996AAFA00BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Vines.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD56F1F0996AB5A00BA26F7 /* vines.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = vines.c; path = hacks/vines.c; sourceTree = ""; }; - AFD56F330996AB8A00BA26F7 /* Galaxy.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Galaxy.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD56F330996AB8A00BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Galaxy.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD56F360996ABD200BA26F7 /* galaxy.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = galaxy.c; path = hacks/galaxy.c; sourceTree = ""; }; - AFD56F5F0996AEEE00BA26F7 /* Grav.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Grav.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD56F5F0996AEEE00BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Grav.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD56F620996AF2D00BA26F7 /* grav.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = grav.c; path = hacks/grav.c; sourceTree = ""; }; - AFD56F7B0996B01600BA26F7 /* Hopalong.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Hopalong.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD56F7B0996B01600BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Hopalong.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD56F880996B06600BA26F7 /* hopalong.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = hopalong.c; path = hacks/hopalong.c; sourceTree = ""; }; - AFD56F9C0996B09400BA26F7 /* Laser.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Laser.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD56F9C0996B09400BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Laser.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD56FA00996B0E500BA26F7 /* laser.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = laser.c; path = hacks/laser.c; sourceTree = ""; }; - AFD56FB30996B10F00BA26F7 /* Lightning.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Lightning.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD56FB30996B10F00BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Lightning.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD56FB60996B16300BA26F7 /* lightning.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = lightning.c; path = hacks/lightning.c; sourceTree = ""; }; - AFD56FC90996B18F00BA26F7 /* Lisa.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Lisa.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD56FC90996B18F00BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Lisa.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD56FCC0996B1D600BA26F7 /* lisa.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = lisa.c; path = hacks/lisa.c; sourceTree = ""; }; - AFD56FDF0996B20900BA26F7 /* Lissie.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Lissie.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD56FDF0996B20900BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Lissie.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD56FE20996B26200BA26F7 /* lissie.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = lissie.c; path = hacks/lissie.c; sourceTree = ""; }; - AFD570080996B43800BA26F7 /* Penrose.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Penrose.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD570080996B43800BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Penrose.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD5700C0996B49D00BA26F7 /* penrose.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = penrose.c; path = hacks/penrose.c; sourceTree = ""; }; - AFD5701F0996B4CC00BA26F7 /* Sierpinski.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Sierpinski.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD5701F0996B4CC00BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Sierpinski.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD570220996B52700BA26F7 /* sierpinski.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = sierpinski.c; path = hacks/sierpinski.c; sourceTree = ""; }; - AFD570360996B56D00BA26F7 /* Sphere.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Sphere.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD570360996B56D00BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Sphere.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD5703B0996B5E300BA26F7 /* sphere.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = sphere.c; path = hacks/sphere.c; sourceTree = ""; }; - AFD570530996B61600BA26F7 /* Spiral.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Spiral.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD570530996B61600BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Spiral.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD570560996B67600BA26F7 /* spiral.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = spiral.c; path = hacks/spiral.c; sourceTree = ""; }; - AFD570690996B6A300BA26F7 /* FadePlot.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FadePlot.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD570690996B6A300BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = FadePlot.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD5706C0996B70000BA26F7 /* fadeplot.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = fadeplot.c; path = hacks/fadeplot.c; sourceTree = ""; }; - AFD5707F0996B72800BA26F7 /* Mountain.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Mountain.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD5707F0996B72800BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Mountain.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD570820996B79300BA26F7 /* mountain.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = mountain.c; path = hacks/mountain.c; sourceTree = ""; }; - AFD570950996B80300BA26F7 /* Triangle.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Triangle.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD570950996B80300BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Triangle.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD570980996B86200BA26F7 /* triangle.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = triangle.c; path = hacks/triangle.c; sourceTree = ""; }; - AFD570AB0996B88E00BA26F7 /* Worm.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Worm.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD570AB0996B88E00BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Worm.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD570AE0996B8EF00BA26F7 /* worm.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = worm.c; path = hacks/worm.c; sourceTree = ""; }; - AFD570C10996B93000BA26F7 /* Rotor.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rotor.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD570C10996B93000BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Rotor.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD570C40996B98500BA26F7 /* rotor.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = rotor.c; path = hacks/rotor.c; sourceTree = ""; }; - AFD570D90996B9F800BA26F7 /* Ant.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Ant.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD570D90996B9F800BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Ant.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD570DE0996BA5C00BA26F7 /* ant.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = ant.c; path = hacks/ant.c; sourceTree = ""; }; - AFD570FA0996BBBF00BA26F7 /* Flow.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Flow.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD570FA0996BBBF00BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Flow.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD571010996BC3800BA26F7 /* flow.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = flow.c; path = hacks/flow.c; sourceTree = ""; }; - AFD571230996BE9300BA26F7 /* Discrete.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Discrete.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD571230996BE9300BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Discrete.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD571280996BEF700BA26F7 /* discrete.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = discrete.c; path = hacks/discrete.c; sourceTree = ""; }; - AFD5713C0996BF2E00BA26F7 /* Apollonian.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Apollonian.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD5713C0996BF2E00BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Apollonian.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD5713F0996BFBE00BA26F7 /* apollonian.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = apollonian.c; path = hacks/apollonian.c; sourceTree = ""; }; - AFD571530996C01700BA26F7 /* Euler2D.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Euler2D.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD571530996C01700BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Euler2D.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD571560996C07F00BA26F7 /* euler2d.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = euler2d.c; path = hacks/euler2d.c; sourceTree = ""; }; - AFD571690996C0CE00BA26F7 /* Thornbird.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Thornbird.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD571690996C0CE00BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Thornbird.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD5716B0996C16700BA26F7 /* thornbird.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = thornbird.c; path = hacks/thornbird.c; sourceTree = ""; }; - AFD571C50996D9DC00BA26F7 /* Juggle.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Juggle.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD571C50996D9DC00BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Juggle.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD571C80996DA4600BA26F7 /* juggle.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = juggle.c; path = hacks/juggle.c; sourceTree = ""; }; - AFD572320996E4A300BA26F7 /* Swirl.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Swirl.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD572320996E4A300BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Swirl.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD572350996E53E00BA26F7 /* swirl.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = swirl.c; path = hacks/swirl.c; sourceTree = ""; }; - AFD5727D0996EE8500BA26F7 /* Polyominoes.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Polyominoes.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD5727D0996EE8500BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Polyominoes.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD572800996EF2B00BA26F7 /* polyominoes.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = polyominoes.c; path = hacks/polyominoes.c; sourceTree = ""; }; - AFD572B50996F99600BA26F7 /* Bouboule.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Bouboule.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD572B50996F99600BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Bouboule.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD572B90996FB3D00BA26F7 /* bouboule.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = bouboule.c; path = hacks/bouboule.c; sourceTree = ""; }; - AFD572D20996FC0F00BA26F7 /* Crystal.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Crystal.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD572D20996FC0F00BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Crystal.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD572ED0997006E00BA26F7 /* crystal.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = crystal.c; path = hacks/crystal.c; sourceTree = ""; }; - AFD57309099701C000BA26F7 /* Julia.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Julia.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD57309099701C000BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Julia.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD5730C099702C800BA26F7 /* julia.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = julia.c; path = hacks/julia.c; sourceTree = ""; }; - AFD5736D0997411200BA26F7 /* Strange.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Strange.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD5736D0997411200BA26F7 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Strange.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFD57371099741A200BA26F7 /* strange.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = strange.c; path = hacks/strange.c; sourceTree = ""; }; AFE1FD3F0981E32E00F7970E /* SaverRunner.h */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.h; name = SaverRunner.h; path = OSX/SaverRunner.h; sourceTree = ""; }; AFE1FD400981E32E00F7970E /* SaverRunner.m */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.objc; name = SaverRunner.m; path = OSX/SaverRunner.m; sourceTree = ""; }; @@ -6134,25 +6614,30 @@ AFE1FD5B0981E3CB00F7970E /* yarandom.c */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.c; name = yarandom.c; path = utils/yarandom.c; sourceTree = ""; }; AFE1FD5C0981E3CB00F7970E /* yarandom.h */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.h; name = yarandom.h; path = utils/yarandom.h; sourceTree = ""; }; AFE1FD620981E40800F7970E /* rorschach.c */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.c; name = rorschach.c; path = hacks/rorschach.c; sourceTree = ""; }; - AFE2A46A0E2E904600ADB298 /* SkyTentacles.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SkyTentacles.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFE2A46A0E2E904600ADB298 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = SkyTentacles.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFE2A4720E2E90E300ADB298 /* skytentacles.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = skytentacles.c; path = hacks/glx/skytentacles.c; sourceTree = ""; }; AFE2A4740E2E911200ADB298 /* skytentacles.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = skytentacles.xml; sourceTree = ""; }; - AFE30BFC0E52B14700CCF4A5 /* Sonar.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Sonar.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFE30BFC0E52B14700CCF4A5 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Sonar.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFE30BFF0E52B1DC00CCF4A5 /* sonar-icmp.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "sonar-icmp.c"; path = "hacks/glx/sonar-icmp.c"; sourceTree = ""; }; AFE30C000E52B1DC00CCF4A5 /* sonar-sim.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "sonar-sim.c"; path = "hacks/glx/sonar-sim.c"; sourceTree = ""; }; AFE30C010E52B1DC00CCF4A5 /* sonar.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = sonar.c; path = hacks/glx/sonar.c; sourceTree = ""; }; AFE6A16A0CDD78EA002805BF /* involute.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = involute.c; path = hacks/glx/involute.c; sourceTree = ""; }; AFE6A16B0CDD78EA002805BF /* involute.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = involute.h; path = hacks/glx/involute.h; sourceTree = ""; }; - AFE6A1970CDD7B2E002805BF /* MoebiusGears.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MoebiusGears.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFE6A1970CDD7B2E002805BF /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = MoebiusGears.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFE6A40B0CDD7BC3002805BF /* moebiusgears.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = moebiusgears.c; path = hacks/glx/moebiusgears.c; sourceTree = ""; }; AFE6A40D0CDD7BDC002805BF /* moebiusgears.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = moebiusgears.xml; sourceTree = ""; }; - AFE6A42D0CDD7FAA002805BF /* Abstractile.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Abstractile.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFE6A42D0CDD7FAA002805BF /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = Abstractile.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFE6A4340CDD800F002805BF /* abstractile.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = abstractile.c; path = hacks/abstractile.c; sourceTree = ""; }; AFE6A4360CDD8026002805BF /* abstractile.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = abstractile.xml; sourceTree = ""; }; - AFF463470C4403E400EE6509 /* CWaves.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CWaves.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFEB9C3815900514003974F3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + AFEB9C3A1590054B003974F3 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/OpenGLES.framework; sourceTree = DEVELOPER_DIR; }; + AFEB9C3C15900558003974F3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + AFEB9C3E1590056A003974F3 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; + AFEB9C3F1590056A003974F3 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; + AFF463470C4403E400EE6509 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = CWaves.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFF463490C44044E00EE6509 /* cwaves.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = cwaves.c; path = hacks/cwaves.c; sourceTree = ""; }; AFF4634B0C44046500EE6509 /* cwaves.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = cwaves.xml; sourceTree = ""; }; - AFF4636C0C440AEF00EE6509 /* GLCells.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GLCells.saver; sourceTree = BUILT_PRODUCTS_DIR; }; + AFF4636C0C440AEF00EE6509 /* XScreenSaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = XScreenSaver.saver; path = GLCells.saver; sourceTree = BUILT_PRODUCTS_DIR; }; AFF463710C440B9200EE6509 /* glcells.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = glcells.c; path = hacks/glx/glcells.c; sourceTree = ""; }; AFF463730C440BAC00EE6509 /* glcells.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = glcells.xml; sourceTree = ""; }; /* End PBXFileReference section */ @@ -6162,12 +6647,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF08399809930B6B00277BE9 /* libjwxyz.a in Frameworks */, - AF08399909930B6B00277BE9 /* ScreenSaver.framework in Frameworks */, - AF08399A09930B6B00277BE9 /* Cocoa.framework in Frameworks */, - AF08399B09930B6B00277BE9 /* AGL.framework in Frameworks */, - AF08399C09930B6B00277BE9 /* OpenGL.framework in Frameworks */, - AF08399D09930B6B00277BE9 /* Carbon.framework in Frameworks */, + AF1FD8EF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8F0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8F1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8F2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6175,12 +6658,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF083A3E099311D700277BE9 /* libjwxyz.a in Frameworks */, - AF083A3F099311D700277BE9 /* ScreenSaver.framework in Frameworks */, - AF083A40099311D700277BE9 /* Cocoa.framework in Frameworks */, - AF083A41099311D700277BE9 /* AGL.framework in Frameworks */, - AF083A42099311D700277BE9 /* OpenGL.framework in Frameworks */, - AF083A43099311D700277BE9 /* Carbon.framework in Frameworks */, + AF1FD8F3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8F4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8F5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8F6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6188,9 +6669,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF0DC7B50C4C73F600D76972 /* libjwxyz.a in Frameworks */, - AF0DC7B60C4C73F600D76972 /* ScreenSaver.framework in Frameworks */, - AF0DC7B70C4C73F600D76972 /* Cocoa.framework in Frameworks */, + AF1FD7BF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7C0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7C1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7C2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6198,12 +6680,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF0DCA4B0C4CBB0D00D76972 /* libjwxyz.a in Frameworks */, - AF0DCA4C0C4CBB0D00D76972 /* ScreenSaver.framework in Frameworks */, - AF0DCA4D0C4CBB0D00D76972 /* Cocoa.framework in Frameworks */, - AF0DCA4E0C4CBB0D00D76972 /* AGL.framework in Frameworks */, - AF0DCA4F0C4CBB0D00D76972 /* OpenGL.framework in Frameworks */, - AF0DCA500C4CBB0D00D76972 /* Carbon.framework in Frameworks */, + AF1FDA33158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA34158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA35158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA36158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6211,9 +6691,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF1A176B0D6D6EE3008AF328 /* libjwxyz.a in Frameworks */, - AF1A176C0D6D6EE3008AF328 /* ScreenSaver.framework in Frameworks */, - AF1A176D0D6D6EE3008AF328 /* Cocoa.framework in Frameworks */, + AF1FD7BB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7BC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7BD158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7BE158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6221,9 +6702,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF2D4D8913E902F5002AA818 /* libjwxyz.a in Frameworks */, - AF2D4D8A13E902F5002AA818 /* Cocoa.framework in Frameworks */, - AF2D4D8B13E902F5002AA818 /* ScreenSaver.framework in Frameworks */, + AF1FD7F3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7F4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7F5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7F6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6231,9 +6713,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF2D4F7813E91093002AA818 /* libjwxyz.a in Frameworks */, - AF2D4F7913E91093002AA818 /* Cocoa.framework in Frameworks */, - AF2D4F7A13E91093002AA818 /* ScreenSaver.framework in Frameworks */, + AF1FD723158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD724158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD725158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD726158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6241,12 +6724,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF32D9E90F3AD0B40080F535 /* libjwxyz.a in Frameworks */, - AF32D9EA0F3AD0B40080F535 /* ScreenSaver.framework in Frameworks */, - AF32D9EB0F3AD0B40080F535 /* Cocoa.framework in Frameworks */, - AF32D9EC0F3AD0B40080F535 /* AGL.framework in Frameworks */, - AF32D9ED0F3AD0B40080F535 /* OpenGL.framework in Frameworks */, - AF32D9EE0F3AD0B40080F535 /* Carbon.framework in Frameworks */, + AF1FD9F3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9F4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9F5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9F6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6254,12 +6735,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF3581CA1431D47B00E09C51 /* libjwxyz.a in Frameworks */, - AF3581CB1431D47B00E09C51 /* ScreenSaver.framework in Frameworks */, - AF3581CC1431D47B00E09C51 /* Cocoa.framework in Frameworks */, - AF3581CD1431D47B00E09C51 /* AGL.framework in Frameworks */, - AF3581CE1431D47B00E09C51 /* OpenGL.framework in Frameworks */, - AF3581CF1431D47B00E09C51 /* Carbon.framework in Frameworks */, + AF1FD91B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD91C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD91D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD91E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6267,12 +6746,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF35820B143330F900E09C51 /* libjwxyz.a in Frameworks */, - AF35820C143330F900E09C51 /* ScreenSaver.framework in Frameworks */, - AF35820D143330F900E09C51 /* Cocoa.framework in Frameworks */, - AF35820E143330F900E09C51 /* AGL.framework in Frameworks */, - AF35820F143330F900E09C51 /* OpenGL.framework in Frameworks */, - AF358210143330F900E09C51 /* Carbon.framework in Frameworks */, + AF1FDA2F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA30158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA31158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA32158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6280,12 +6757,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF35E8950E63823600691F2F /* libjwxyz.a in Frameworks */, - AF35E8960E63823600691F2F /* ScreenSaver.framework in Frameworks */, - AF35E8970E63823600691F2F /* Cocoa.framework in Frameworks */, - AF35E8980E63823600691F2F /* AGL.framework in Frameworks */, - AF35E8990E63823600691F2F /* OpenGL.framework in Frameworks */, - AF35E89A0E63823600691F2F /* Carbon.framework in Frameworks */, + AF1FD99B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD99C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD99D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD99E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6293,12 +6768,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF3C714E0D624BF50030CC0D /* libjwxyz.a in Frameworks */, - AF3C714F0D624BF50030CC0D /* ScreenSaver.framework in Frameworks */, - AF3C71500D624BF50030CC0D /* Cocoa.framework in Frameworks */, - AF3C71510D624BF50030CC0D /* AGL.framework in Frameworks */, - AF3C71520D624BF50030CC0D /* OpenGL.framework in Frameworks */, - AF3C71530D624BF50030CC0D /* Carbon.framework in Frameworks */, + AF1FD993158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD994158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD995158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD996158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6306,9 +6779,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF476FBF099D154F001F091E /* libjwxyz.a in Frameworks */, - AF476FC0099D154F001F091E /* ScreenSaver.framework in Frameworks */, - AF476FC1099D154F001F091E /* Cocoa.framework in Frameworks */, + AF1FD7AB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7AC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7AD158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7AE158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6316,9 +6790,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF476FE4099D1686001F091E /* libjwxyz.a in Frameworks */, - AF476FE5099D1686001F091E /* ScreenSaver.framework in Frameworks */, - AF476FE6099D1686001F091E /* Cocoa.framework in Frameworks */, + AF1FD83F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD840158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD841158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD842158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6326,9 +6801,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF477055099D4385001F091E /* libjwxyz.a in Frameworks */, - AF477056099D4385001F091E /* ScreenSaver.framework in Frameworks */, - AF477057099D4385001F091E /* Cocoa.framework in Frameworks */, + AF1FD767158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD768158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD769158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD76A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6336,9 +6812,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF477172099D4786001F091E /* libjwxyz.a in Frameworks */, - AF477173099D4786001F091E /* ScreenSaver.framework in Frameworks */, - AF477174099D4786001F091E /* Cocoa.framework in Frameworks */, + AF1FD74F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD750158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD751158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD752158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6346,9 +6823,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF477188099D4803001F091E /* libjwxyz.a in Frameworks */, - AF477189099D4803001F091E /* ScreenSaver.framework in Frameworks */, - AF47718A099D4803001F091E /* Cocoa.framework in Frameworks */, + AF1FD84B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD84C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD84D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD84E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6356,9 +6834,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4771B0099D4949001F091E /* libjwxyz.a in Frameworks */, - AF4771B1099D4949001F091E /* ScreenSaver.framework in Frameworks */, - AF4771B2099D4949001F091E /* Cocoa.framework in Frameworks */, + AF1FDA7B158FF96600C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA7C158FF96600C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA7D158FF96600C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA7E158FF96600C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6366,9 +6845,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4771E4099D4D9A001F091E /* libjwxyz.a in Frameworks */, - AF4771E5099D4D9A001F091E /* ScreenSaver.framework in Frameworks */, - AF4771E6099D4D9A001F091E /* Cocoa.framework in Frameworks */, + AF1FD743158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD744158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD745158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD746158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6376,9 +6856,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4771FB099D4E63001F091E /* libjwxyz.a in Frameworks */, - AF4771FC099D4E63001F091E /* ScreenSaver.framework in Frameworks */, - AF4771FD099D4E63001F091E /* Cocoa.framework in Frameworks */, + AF1FD7DB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7DC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7DD158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7DE158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6386,9 +6867,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF477211099D4EE8001F091E /* libjwxyz.a in Frameworks */, - AF477212099D4EE8001F091E /* ScreenSaver.framework in Frameworks */, - AF477213099D4EE8001F091E /* Cocoa.framework in Frameworks */, + AF1FDA83158FF96600C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA84158FF96600C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA85158FF96600C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA86158FF96600C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6396,9 +6878,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF477227099D4F67001F091E /* libjwxyz.a in Frameworks */, - AF477228099D4F67001F091E /* ScreenSaver.framework in Frameworks */, - AF477229099D4F67001F091E /* Cocoa.framework in Frameworks */, + AF1FD717158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD718158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD719158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD71A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6406,9 +6889,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF47725C099D5717001F091E /* libjwxyz.a in Frameworks */, - AF47725D099D5717001F091E /* ScreenSaver.framework in Frameworks */, - AF47725E099D5717001F091E /* Cocoa.framework in Frameworks */, + AF1FD793158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD794158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD795158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD796158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6416,9 +6900,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF477274099D57B9001F091E /* libjwxyz.a in Frameworks */, - AF477275099D57B9001F091E /* ScreenSaver.framework in Frameworks */, - AF477276099D57B9001F091E /* Cocoa.framework in Frameworks */, + AF1FD7FF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD800158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD801158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD802158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6426,9 +6911,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF47728C099D5926001F091E /* libjwxyz.a in Frameworks */, - AF47728D099D5926001F091E /* ScreenSaver.framework in Frameworks */, - AF47728E099D5926001F091E /* Cocoa.framework in Frameworks */, + AF1FD7F7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7F8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7F9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7FA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6436,9 +6922,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF47738B099D65A1001F091E /* libjwxyz.a in Frameworks */, - AF47738C099D65A1001F091E /* ScreenSaver.framework in Frameworks */, - AF47738D099D65A1001F091E /* Cocoa.framework in Frameworks */, + AF1FD85B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD85C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD85D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD85E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6446,9 +6933,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4773A3099D6648001F091E /* libjwxyz.a in Frameworks */, - AF4773A4099D6648001F091E /* ScreenSaver.framework in Frameworks */, - AF4773A5099D6648001F091E /* Cocoa.framework in Frameworks */, + AF1FD787158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD788158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD789158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD78A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6456,9 +6944,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4773CA099D67B9001F091E /* libjwxyz.a in Frameworks */, - AF4773CB099D67B9001F091E /* ScreenSaver.framework in Frameworks */, - AF4773CC099D67B9001F091E /* Cocoa.framework in Frameworks */, + AF1FD71B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD71C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD71D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD71E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6466,9 +6955,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF47740B099D69E7001F091E /* libjwxyz.a in Frameworks */, - AF47740C099D69E7001F091E /* ScreenSaver.framework in Frameworks */, - AF47740D099D69E7001F091E /* Cocoa.framework in Frameworks */, + AF1FD7AF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7B0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7B1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7B2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6476,9 +6966,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF477430099D7C70001F091E /* libjwxyz.a in Frameworks */, - AF477431099D7C70001F091E /* ScreenSaver.framework in Frameworks */, - AF477432099D7C70001F091E /* Cocoa.framework in Frameworks */, + AF1FD79F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7A0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7A1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7A2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6486,9 +6977,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF47744B099D7D33001F091E /* libjwxyz.a in Frameworks */, - AF47744C099D7D33001F091E /* ScreenSaver.framework in Frameworks */, - AF47744D099D7D33001F091E /* Cocoa.framework in Frameworks */, + AF1FD86F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD870158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD871158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD872158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6496,9 +6988,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF47748C099D89E4001F091E /* libjwxyz.a in Frameworks */, - AF47748D099D89E4001F091E /* ScreenSaver.framework in Frameworks */, - AF47748E099D89E4001F091E /* Cocoa.framework in Frameworks */, + AF1FD77B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD77C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD77D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD77E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6506,9 +6999,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4774A2099D8A74001F091E /* libjwxyz.a in Frameworks */, - AF4774A3099D8A74001F091E /* ScreenSaver.framework in Frameworks */, - AF4774A4099D8A74001F091E /* Cocoa.framework in Frameworks */, + AF1FD7B3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7B4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7B5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7B6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6516,9 +7010,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4774BD099D8B5F001F091E /* libjwxyz.a in Frameworks */, - AF4774BE099D8B5F001F091E /* ScreenSaver.framework in Frameworks */, - AF4774BF099D8B5F001F091E /* Cocoa.framework in Frameworks */, + AF1FDA6B158FF96600C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA6C158FF96600C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA6D158FF96600C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA6E158FF96600C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6526,9 +7021,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4774D7099D8BFF001F091E /* libjwxyz.a in Frameworks */, - AF4774D8099D8BFF001F091E /* ScreenSaver.framework in Frameworks */, - AF4774D9099D8BFF001F091E /* Cocoa.framework in Frameworks */, + AF1FD7C3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7C4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7C5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7C6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6536,9 +7032,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF477566099D9A1A001F091E /* libjwxyz.a in Frameworks */, - AF477567099D9A1A001F091E /* ScreenSaver.framework in Frameworks */, - AF477568099D9A1A001F091E /* Cocoa.framework in Frameworks */, + AF1FD7E3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7E4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7E5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7E6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6546,9 +7043,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF47758C099D9C28001F091E /* libjwxyz.a in Frameworks */, - AF47758D099D9C28001F091E /* ScreenSaver.framework in Frameworks */, - AF47758E099D9C28001F091E /* Cocoa.framework in Frameworks */, + AF1FD803158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD804158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD805158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD806158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6556,9 +7054,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4775A8099D9CF7001F091E /* libjwxyz.a in Frameworks */, - AF4775A9099D9CF7001F091E /* ScreenSaver.framework in Frameworks */, - AF4775AA099D9CF7001F091E /* Cocoa.framework in Frameworks */, + AF1FD837158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD838158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD839158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD83A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6566,9 +7065,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4775E1099D9F69001F091E /* libjwxyz.a in Frameworks */, - AF4775E2099D9F69001F091E /* ScreenSaver.framework in Frameworks */, - AF4775E3099D9F69001F091E /* Cocoa.framework in Frameworks */, + AF1FD753158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD754158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD755158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD756158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6576,9 +7076,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4775FB099DA030001F091E /* libjwxyz.a in Frameworks */, - AF4775FC099DA030001F091E /* ScreenSaver.framework in Frameworks */, - AF4775FD099DA030001F091E /* Cocoa.framework in Frameworks */, + AF1FD76F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD770158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD771158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD772158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6586,9 +7087,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF47761C099DA26C001F091E /* libjwxyz.a in Frameworks */, - AF47761D099DA26C001F091E /* ScreenSaver.framework in Frameworks */, - AF47761E099DA26C001F091E /* Cocoa.framework in Frameworks */, + AF1FD7B7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7B8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7B9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7BA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6596,9 +7098,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF47764D099DA6D0001F091E /* libjwxyz.a in Frameworks */, - AF47764E099DA6D0001F091E /* ScreenSaver.framework in Frameworks */, - AF47764F099DA6D0001F091E /* Cocoa.framework in Frameworks */, + AF1FD833158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD834158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD835158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD836158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6606,9 +7109,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF477663099DA78E001F091E /* libjwxyz.a in Frameworks */, - AF477664099DA78E001F091E /* ScreenSaver.framework in Frameworks */, - AF477665099DA78E001F091E /* Cocoa.framework in Frameworks */, + AF1FDA3F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA40158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA41158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA42158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6616,9 +7120,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF477679099DA849001F091E /* libjwxyz.a in Frameworks */, - AF47767A099DA849001F091E /* ScreenSaver.framework in Frameworks */, - AF47767B099DA849001F091E /* Cocoa.framework in Frameworks */, + AF1FD7EB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7EC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7ED158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7EE158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6626,9 +7131,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF477698099DAA6F001F091E /* libjwxyz.a in Frameworks */, - AF477699099DAA6F001F091E /* ScreenSaver.framework in Frameworks */, - AF47769A099DAA6F001F091E /* Cocoa.framework in Frameworks */, + AF1FD72F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD730158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD731158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD732158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6636,9 +7142,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4776B3099DABDD001F091E /* libjwxyz.a in Frameworks */, - AF4776B4099DABDD001F091E /* ScreenSaver.framework in Frameworks */, - AF4776B5099DABDD001F091E /* Cocoa.framework in Frameworks */, + AF1FD877158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD878158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD879158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD87A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6646,9 +7153,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4776C9099DAC8A001F091E /* libjwxyz.a in Frameworks */, - AF4776CA099DAC8A001F091E /* ScreenSaver.framework in Frameworks */, - AF4776CB099DAC8A001F091E /* Cocoa.framework in Frameworks */, + AF1FD873158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD874158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD875158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD876158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6656,9 +7164,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4776E4099DADDF001F091E /* libjwxyz.a in Frameworks */, - AF4776E5099DADDF001F091E /* ScreenSaver.framework in Frameworks */, - AF4776E6099DADDF001F091E /* Cocoa.framework in Frameworks */, + AF1FD857158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD858158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD859158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD85A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6666,9 +7175,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4776FA099DAE7A001F091E /* libjwxyz.a in Frameworks */, - AF4776FB099DAE7A001F091E /* ScreenSaver.framework in Frameworks */, - AF4776FC099DAE7A001F091E /* Cocoa.framework in Frameworks */, + AF1FD847158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD848158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD849158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD84A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6676,9 +7186,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF477716099DAF9F001F091E /* libjwxyz.a in Frameworks */, - AF477717099DAF9F001F091E /* ScreenSaver.framework in Frameworks */, - AF477718099DAF9F001F091E /* Cocoa.framework in Frameworks */, + AF1FD74B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD74C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD74D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD74E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6686,9 +7197,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF47772C099DB044001F091E /* libjwxyz.a in Frameworks */, - AF47772D099DB044001F091E /* ScreenSaver.framework in Frameworks */, - AF47772E099DB044001F091E /* Cocoa.framework in Frameworks */, + AF1FD83B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD83C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD83D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD83E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6696,9 +7208,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF47775B099DB61E001F091E /* libjwxyz.a in Frameworks */, - AF47775C099DB61E001F091E /* ScreenSaver.framework in Frameworks */, - AF47775D099DB61E001F091E /* Cocoa.framework in Frameworks */, + AF1FD7A7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7A8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7A9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7AA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6706,9 +7219,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF47777D099DB965001F091E /* libjwxyz.a in Frameworks */, - AF47777E099DB965001F091E /* ScreenSaver.framework in Frameworks */, - AF47777F099DB965001F091E /* Cocoa.framework in Frameworks */, + AF1FD747158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD748158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD749158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD74A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6716,9 +7230,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF477799099DBA90001F091E /* libjwxyz.a in Frameworks */, - AF47779A099DBA90001F091E /* ScreenSaver.framework in Frameworks */, - AF47779B099DBA90001F091E /* Cocoa.framework in Frameworks */, + AF1FD77F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD780158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD781158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD782158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6726,9 +7241,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4777DA099DC183001F091E /* libjwxyz.a in Frameworks */, - AF4777DB099DC183001F091E /* ScreenSaver.framework in Frameworks */, - AF4777DC099DC183001F091E /* Cocoa.framework in Frameworks */, + AF1FD737158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD738158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD739158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD73A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6736,9 +7252,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4778B4099DDB79001F091E /* libjwxyz.a in Frameworks */, - AF4778B5099DDB79001F091E /* ScreenSaver.framework in Frameworks */, - AF4778B6099DDB79001F091E /* Cocoa.framework in Frameworks */, + AF1FD7E7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7E8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7E9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7EA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6746,9 +7263,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4778D0099DDCAE001F091E /* libjwxyz.a in Frameworks */, - AF4778D1099DDCAE001F091E /* ScreenSaver.framework in Frameworks */, - AF4778D2099DDCAE001F091E /* Cocoa.framework in Frameworks */, + AF1FD867158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD868158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD869158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD86A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6756,9 +7274,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4778F1099DDDC8001F091E /* libjwxyz.a in Frameworks */, - AF4778F2099DDDC8001F091E /* ScreenSaver.framework in Frameworks */, - AF4778F3099DDDC8001F091E /* Cocoa.framework in Frameworks */, + AF1FD75B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD75C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD75D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD75E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6766,9 +7285,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF477912099DE379001F091E /* libjwxyz.a in Frameworks */, - AF477913099DE379001F091E /* ScreenSaver.framework in Frameworks */, - AF477914099DE379001F091E /* Cocoa.framework in Frameworks */, + AF1FDA43158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA44158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA45158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA46158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6776,9 +7296,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF477933099DE4C7001F091E /* libjwxyz.a in Frameworks */, - AF477934099DE4C7001F091E /* ScreenSaver.framework in Frameworks */, - AF477935099DE4C7001F091E /* Cocoa.framework in Frameworks */, + AF1FD827158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD828158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD829158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD82A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6793,9 +7314,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF480C51098E301400FB32B8 /* libjwxyz.a in Frameworks */, - AF480C52098E301400FB32B8 /* ScreenSaver.framework in Frameworks */, - AF480C53098E301400FB32B8 /* Cocoa.framework in Frameworks */, + AF1FD79B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD79C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD79D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD79E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6803,9 +7325,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF480D7A098EEDDE00FB32B8 /* libjwxyz.a in Frameworks */, - AF480D7B098EEDDE00FB32B8 /* ScreenSaver.framework in Frameworks */, - AF480D7C098EEDDE00FB32B8 /* Cocoa.framework in Frameworks */, + AF1FD897158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD898158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD899158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD89A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6813,12 +7336,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4810F409909FBA00FB32B8 /* libjwxyz.a in Frameworks */, - AF4810F509909FBA00FB32B8 /* ScreenSaver.framework in Frameworks */, - AF4810F609909FBA00FB32B8 /* Cocoa.framework in Frameworks */, - AF4811010990A00A00FB32B8 /* AGL.framework in Frameworks */, - AF4811020990A00E00FB32B8 /* OpenGL.framework in Frameworks */, - AF48112D0990A2C700FB32B8 /* Carbon.framework in Frameworks */, + AF1FD933158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD934158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD935158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD936158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6826,12 +7347,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF48125A0990CE2700FB32B8 /* libjwxyz.a in Frameworks */, - AF48125B0990CE2700FB32B8 /* ScreenSaver.framework in Frameworks */, - AF48125C0990CE2700FB32B8 /* Cocoa.framework in Frameworks */, - AF48125D0990CE2700FB32B8 /* AGL.framework in Frameworks */, - AF48125E0990CE2700FB32B8 /* OpenGL.framework in Frameworks */, - AF48125F0990CE2700FB32B8 /* Carbon.framework in Frameworks */, + AF1FD957158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD958158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD959158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD95A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6839,12 +7358,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4812BC0990D3D900FB32B8 /* libjwxyz.a in Frameworks */, - AF4812BD0990D3D900FB32B8 /* ScreenSaver.framework in Frameworks */, - AF4812BE0990D3D900FB32B8 /* Cocoa.framework in Frameworks */, - AF4812BF0990D3D900FB32B8 /* AGL.framework in Frameworks */, - AF4812C00990D3D900FB32B8 /* OpenGL.framework in Frameworks */, - AF4812C10990D3D900FB32B8 /* Carbon.framework in Frameworks */, + AF1FD9D7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9D8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9D9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9DA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6852,12 +7369,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF48DEF80A0C25E000F94CF9 /* libjwxyz.a in Frameworks */, - AF48DEF90A0C25E000F94CF9 /* ScreenSaver.framework in Frameworks */, - AF48DEFA0A0C25E000F94CF9 /* Cocoa.framework in Frameworks */, - AF48DEFB0A0C25E000F94CF9 /* AGL.framework in Frameworks */, - AF48DEFC0A0C25E000F94CF9 /* OpenGL.framework in Frameworks */, - AF48DEFD0A0C25E000F94CF9 /* Carbon.framework in Frameworks */, + AF1FD97B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD97C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD97D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD97E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6865,12 +7380,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4A3452102A593600A81B2A /* libjwxyz.a in Frameworks */, - AF4A3453102A593600A81B2A /* ScreenSaver.framework in Frameworks */, - AF4A3454102A593600A81B2A /* Cocoa.framework in Frameworks */, - AF4A3455102A593600A81B2A /* AGL.framework in Frameworks */, - AF4A3456102A593600A81B2A /* OpenGL.framework in Frameworks */, - AF4A3457102A593600A81B2A /* Carbon.framework in Frameworks */, + AF1FDA1F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA20158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA21158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA22158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6878,12 +7391,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4FD6EF0CE7A486005EE58E /* libjwxyz.a in Frameworks */, - AF4FD6F00CE7A486005EE58E /* ScreenSaver.framework in Frameworks */, - AF4FD6F10CE7A486005EE58E /* Cocoa.framework in Frameworks */, - AF4FD6F20CE7A486005EE58E /* AGL.framework in Frameworks */, - AF4FD6F30CE7A486005EE58E /* OpenGL.framework in Frameworks */, - AF4FD6F40CE7A486005EE58E /* Carbon.framework in Frameworks */, + AF1FD9AF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9B0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9B1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9B2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6891,12 +7402,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4FF4C30D52CBDE00666F98 /* libjwxyz.a in Frameworks */, - AF4FF4C40D52CBDE00666F98 /* ScreenSaver.framework in Frameworks */, - AF4FF4C50D52CBDE00666F98 /* Cocoa.framework in Frameworks */, - AF4FF4C60D52CBDE00666F98 /* AGL.framework in Frameworks */, - AF4FF4C70D52CBDE00666F98 /* OpenGL.framework in Frameworks */, - AF4FF4C80D52CBDE00666F98 /* Carbon.framework in Frameworks */, + AF1FD92F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD930158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD931158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD932158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6904,13 +7413,11 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF6423FB099FF9C2000F4CD4 /* libjwxyz.a in Frameworks */, - AF6423FC099FF9C2000F4CD4 /* ScreenSaver.framework in Frameworks */, - AF6423FD099FF9C2000F4CD4 /* Cocoa.framework in Frameworks */, - AF6423FE099FF9C2000F4CD4 /* AGL.framework in Frameworks */, - AF6423FF099FF9C2000F4CD4 /* OpenGL.framework in Frameworks */, + AF1FD943158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD944158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD945158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD946158FF96500C40F17 /* Carbon.framework in Frameworks */, AF84FD4209B1209E00F3AB06 /* GLUT.framework in Frameworks */, - AF642400099FF9C2000F4CD4 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6918,9 +7425,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF6425D509A18855000F4CD4 /* libjwxyz.a in Frameworks */, - AF6425D609A18855000F4CD4 /* ScreenSaver.framework in Frameworks */, - AF6425D709A18855000F4CD4 /* Cocoa.framework in Frameworks */, + AF1FDA53158FF96600C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA54158FF96600C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA55158FF96600C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA56158FF96600C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6928,9 +7436,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF6425F509A189EC000F4CD4 /* libjwxyz.a in Frameworks */, - AF6425F609A189EC000F4CD4 /* ScreenSaver.framework in Frameworks */, - AF6425F709A189EC000F4CD4 /* Cocoa.framework in Frameworks */, + AF1FD807158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD808158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD809158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD80A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6938,9 +7447,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF64261809A18D6C000F4CD4 /* libjwxyz.a in Frameworks */, - AF64261909A18D6C000F4CD4 /* ScreenSaver.framework in Frameworks */, - AF64261A09A18D6C000F4CD4 /* Cocoa.framework in Frameworks */, + AF1FDA4F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA50158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA51158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA52158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6948,9 +7458,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF64263509A18F54000F4CD4 /* libjwxyz.a in Frameworks */, - AF64263609A18F54000F4CD4 /* ScreenSaver.framework in Frameworks */, - AF64263709A18F54000F4CD4 /* Cocoa.framework in Frameworks */, + AF1FD7D3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7D4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7D5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7D6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6958,9 +7469,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF64265809A19229000F4CD4 /* libjwxyz.a in Frameworks */, - AF64265909A19229000F4CD4 /* ScreenSaver.framework in Frameworks */, - AF64265A09A19229000F4CD4 /* Cocoa.framework in Frameworks */, + AF1FD7D7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7D8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7D9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7DA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6968,9 +7480,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF64268409A194B0000F4CD4 /* libjwxyz.a in Frameworks */, - AF64268509A194B0000F4CD4 /* ScreenSaver.framework in Frameworks */, - AF64268609A194B0000F4CD4 /* Cocoa.framework in Frameworks */, + AF1FD78B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD78C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD78D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD78E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6978,9 +7491,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF64277A09A1D37A000F4CD4 /* libjwxyz.a in Frameworks */, - AF64277B09A1D37A000F4CD4 /* ScreenSaver.framework in Frameworks */, - AF64277C09A1D37A000F4CD4 /* Cocoa.framework in Frameworks */, + AF1FD82B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD82C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD82D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD82E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6988,9 +7502,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF6427B109A2DE36000F4CD4 /* libjwxyz.a in Frameworks */, - AF6427B209A2DE36000F4CD4 /* ScreenSaver.framework in Frameworks */, - AF6427B309A2DE36000F4CD4 /* Cocoa.framework in Frameworks */, + AF1FDA3B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA3C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA3D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA3E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6998,9 +7513,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF7776EF09B63ABF00EA3033 /* libjwxyz.a in Frameworks */, - AF7776F009B63ABF00EA3033 /* ScreenSaver.framework in Frameworks */, - AF7776F109B63ABF00EA3033 /* Cocoa.framework in Frameworks */, + AF1FD7EF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7F0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7F1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7F2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7008,9 +7524,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF77772309B6416100EA3033 /* libjwxyz.a in Frameworks */, - AF77772409B6416100EA3033 /* ScreenSaver.framework in Frameworks */, - AF77772509B6416100EA3033 /* Cocoa.framework in Frameworks */, + AF1FD8C3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8C4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8C5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8C6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7018,12 +7535,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF77774709B6446500EA3033 /* libjwxyz.a in Frameworks */, - AF77774809B6446500EA3033 /* ScreenSaver.framework in Frameworks */, - AF77774909B6446500EA3033 /* Cocoa.framework in Frameworks */, - AF77774A09B6446500EA3033 /* AGL.framework in Frameworks */, - AF77774B09B6446500EA3033 /* OpenGL.framework in Frameworks */, - AF77774C09B6446500EA3033 /* Carbon.framework in Frameworks */, + AF1FD94B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD94C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD94D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD94E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7031,12 +7546,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF77777E09B6497800EA3033 /* libjwxyz.a in Frameworks */, - AF77777F09B6497800EA3033 /* ScreenSaver.framework in Frameworks */, - AF77778009B6497800EA3033 /* Cocoa.framework in Frameworks */, - AF77778109B6497800EA3033 /* AGL.framework in Frameworks */, - AF77778209B6497800EA3033 /* OpenGL.framework in Frameworks */, - AF77778309B6497800EA3033 /* Carbon.framework in Frameworks */, + AF1FD95B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD95C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD95D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD95E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7044,12 +7557,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF77779809B64A5200EA3033 /* libjwxyz.a in Frameworks */, - AF77779909B64A5200EA3033 /* ScreenSaver.framework in Frameworks */, - AF77779A09B64A5200EA3033 /* Cocoa.framework in Frameworks */, - AF77779B09B64A5200EA3033 /* AGL.framework in Frameworks */, - AF77779C09B64A5200EA3033 /* OpenGL.framework in Frameworks */, - AF77779D09B64A5200EA3033 /* Carbon.framework in Frameworks */, + AF1FD9B7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9B8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9B9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9BA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7057,12 +7568,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF7777B209B64B2600EA3033 /* libjwxyz.a in Frameworks */, - AF7777B309B64B2600EA3033 /* ScreenSaver.framework in Frameworks */, - AF7777B409B64B2600EA3033 /* Cocoa.framework in Frameworks */, - AF7777B509B64B2600EA3033 /* AGL.framework in Frameworks */, - AF7777B609B64B2600EA3033 /* OpenGL.framework in Frameworks */, - AF7777B709B64B2600EA3033 /* Carbon.framework in Frameworks */, + AF1FDA17158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA18158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA19158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA1A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7070,12 +7579,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF7777DA09B64C6B00EA3033 /* libjwxyz.a in Frameworks */, - AF7777DB09B64C6B00EA3033 /* ScreenSaver.framework in Frameworks */, - AF7777DC09B64C6B00EA3033 /* Cocoa.framework in Frameworks */, - AF7777DD09B64C6B00EA3033 /* AGL.framework in Frameworks */, - AF7777DE09B64C6B00EA3033 /* OpenGL.framework in Frameworks */, - AF7777DF09B64C6B00EA3033 /* Carbon.framework in Frameworks */, + AF1FD97F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD980158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD981158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD982158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7083,12 +7590,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF7777F409B64E3100EA3033 /* libjwxyz.a in Frameworks */, - AF7777F509B64E3100EA3033 /* ScreenSaver.framework in Frameworks */, - AF7777F609B64E3100EA3033 /* Cocoa.framework in Frameworks */, - AF7777F709B64E3100EA3033 /* AGL.framework in Frameworks */, - AF7777F809B64E3100EA3033 /* OpenGL.framework in Frameworks */, - AF7777F909B64E3100EA3033 /* Carbon.framework in Frameworks */, + AF1FD94F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD950158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD951158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD952158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7096,12 +7601,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF77781B09B6504400EA3033 /* libjwxyz.a in Frameworks */, - AF77781C09B6504400EA3033 /* ScreenSaver.framework in Frameworks */, - AF77781D09B6504400EA3033 /* Cocoa.framework in Frameworks */, - AF77781E09B6504400EA3033 /* AGL.framework in Frameworks */, - AF77781F09B6504400EA3033 /* OpenGL.framework in Frameworks */, - AF77782009B6504400EA3033 /* Carbon.framework in Frameworks */, + AF1FDA13158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA14158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA15158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA16158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7109,12 +7612,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF77784E09B6528100EA3033 /* libjwxyz.a in Frameworks */, - AF77784F09B6528100EA3033 /* ScreenSaver.framework in Frameworks */, - AF77785009B6528100EA3033 /* Cocoa.framework in Frameworks */, - AF77785109B6528100EA3033 /* AGL.framework in Frameworks */, - AF77785209B6528100EA3033 /* OpenGL.framework in Frameworks */, - AF77785309B6528100EA3033 /* Carbon.framework in Frameworks */, + AF1FD913158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD914158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD915158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD916158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7122,13 +7623,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF77786A09B6536000EA3033 /* libjwxyz.a in Frameworks */, - AF77786B09B6536000EA3033 /* ScreenSaver.framework in Frameworks */, - AF77786C09B6536000EA3033 /* Cocoa.framework in Frameworks */, - AF77786D09B6536000EA3033 /* AGL.framework in Frameworks */, - AF77786E09B6536000EA3033 /* OpenGL.framework in Frameworks */, - AF77786F09B6536000EA3033 /* Carbon.framework in Frameworks */, - AF0F46DD104E1809000A929C /* AppKit.framework in Frameworks */, + AF1FD937158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD938158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD939158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD93A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7136,9 +7634,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF77788809B6563500EA3033 /* libjwxyz.a in Frameworks */, - AF77788909B6563500EA3033 /* ScreenSaver.framework in Frameworks */, - AF77788A09B6563500EA3033 /* Cocoa.framework in Frameworks */, + AF1FD783158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD784158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD785158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD786158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7146,9 +7645,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF7778AE09B659C800EA3033 /* libjwxyz.a in Frameworks */, - AF7778AF09B659C800EA3033 /* ScreenSaver.framework in Frameworks */, - AF7778B009B659C800EA3033 /* Cocoa.framework in Frameworks */, + AF1FD733158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD734158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD735158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD736158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7156,12 +7656,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF78D17E142DD8F3002AAF77 /* libjwxyz.a in Frameworks */, - AF78D17F142DD8F3002AAF77 /* ScreenSaver.framework in Frameworks */, - AF78D180142DD8F3002AAF77 /* Cocoa.framework in Frameworks */, - AF78D181142DD8F3002AAF77 /* AGL.framework in Frameworks */, - AF78D182142DD8F3002AAF77 /* OpenGL.framework in Frameworks */, - AF78D183142DD8F3002AAF77 /* Carbon.framework in Frameworks */, + AF1FD98B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD98C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD98D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD98E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7169,9 +7667,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF794F6D099748450059A8B0 /* libjwxyz.a in Frameworks */, - AF794F6E099748450059A8B0 /* ScreenSaver.framework in Frameworks */, - AF794F6F099748450059A8B0 /* Cocoa.framework in Frameworks */, + AF1FD88F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD890158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD891158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD892158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7179,9 +7678,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF794F9709974A320059A8B0 /* libjwxyz.a in Frameworks */, - AF794F9809974A320059A8B0 /* ScreenSaver.framework in Frameworks */, - AF794F9909974A320059A8B0 /* Cocoa.framework in Frameworks */, + AF1FD8A3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8A4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8A5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8A6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7189,9 +7689,23 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF794FD609974FA60059A8B0 /* libjwxyz.a in Frameworks */, - AF794FD709974FA60059A8B0 /* ScreenSaver.framework in Frameworks */, - AF794FD809974FA60059A8B0 /* Cocoa.framework in Frameworks */, + AF1FD8BB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8BC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8BD158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8BE158FF96500C40F17 /* Carbon.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AF918989158FC00A002B5D1E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AF918B96158FD0EA002B5D1E /* libjwxyz.a in Frameworks */, + AFEB9C3B1590054B003974F3 /* OpenGLES.framework in Frameworks */, + AFEB9C3915900514003974F3 /* UIKit.framework in Frameworks */, + AFEB9C3D15900558003974F3 /* Foundation.framework in Frameworks */, + AFEB9C401590056A003974F3 /* CoreGraphics.framework in Frameworks */, + AFEB9C411590056A003974F3 /* QuartzCore.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7199,9 +7713,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF975736099C317000B05160 /* libjwxyz.a in Frameworks */, - AF975737099C317000B05160 /* ScreenSaver.framework in Frameworks */, - AF975738099C317000B05160 /* Cocoa.framework in Frameworks */, + AF1FD7A3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7A4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7A5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7A6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7209,9 +7724,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF97577E099C374A00B05160 /* libjwxyz.a in Frameworks */, - AF97577F099C374A00B05160 /* ScreenSaver.framework in Frameworks */, - AF975780099C374A00B05160 /* Cocoa.framework in Frameworks */, + AF1FD7CF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7D0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7D1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7D2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7219,9 +7735,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF9757CB099C3E6300B05160 /* libjwxyz.a in Frameworks */, - AF9757CC099C3E6300B05160 /* ScreenSaver.framework in Frameworks */, - AF9757CD099C3E6300B05160 /* Cocoa.framework in Frameworks */, + AF1FD80B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD80C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD80D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD80E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7229,9 +7746,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF975811099C41D500B05160 /* libjwxyz.a in Frameworks */, - AF975812099C41D500B05160 /* ScreenSaver.framework in Frameworks */, - AF975813099C41D500B05160 /* Cocoa.framework in Frameworks */, + AF1FD85F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD860158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD861158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD862158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7239,9 +7757,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF97586E099C475900B05160 /* libjwxyz.a in Frameworks */, - AF97586F099C475900B05160 /* ScreenSaver.framework in Frameworks */, - AF975870099C475900B05160 /* Cocoa.framework in Frameworks */, + AF1FD81F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD820158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD821158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD822158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7249,9 +7768,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF975A3F099C681F00B05160 /* libjwxyz.a in Frameworks */, - AF975A40099C681F00B05160 /* ScreenSaver.framework in Frameworks */, - AF975A41099C681F00B05160 /* Cocoa.framework in Frameworks */, + AF1FD7CB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7CC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7CD158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7CE158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7259,9 +7779,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF975A75099C6AB200B05160 /* libjwxyz.a in Frameworks */, - AF975A76099C6AB200B05160 /* ScreenSaver.framework in Frameworks */, - AF975A77099C6AB200B05160 /* Cocoa.framework in Frameworks */, + AF1FD773158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD774158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD775158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD776158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7269,9 +7790,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF975A8F099C6BC300B05160 /* libjwxyz.a in Frameworks */, - AF975A90099C6BC300B05160 /* ScreenSaver.framework in Frameworks */, - AF975A91099C6BC300B05160 /* Cocoa.framework in Frameworks */, + AF1FD72B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD72C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD72D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD72E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7279,9 +7801,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF975AE0099C6EB100B05160 /* libjwxyz.a in Frameworks */, - AF975AE1099C6EB100B05160 /* ScreenSaver.framework in Frameworks */, - AF975AE2099C6EB100B05160 /* Cocoa.framework in Frameworks */, + AF1FD777158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD778158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD779158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD77A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7289,9 +7812,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF975B05099C6FE400B05160 /* libjwxyz.a in Frameworks */, - AF975B06099C6FE400B05160 /* ScreenSaver.framework in Frameworks */, - AF975B07099C6FE400B05160 /* Cocoa.framework in Frameworks */, + AF1FD7C7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7C8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7C9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7CA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7299,9 +7823,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF975C1B099C8C1500B05160 /* libjwxyz.a in Frameworks */, - AF975C1C099C8C1500B05160 /* ScreenSaver.framework in Frameworks */, - AF975C1D099C8C1500B05160 /* Cocoa.framework in Frameworks */, + AF1FD797158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD798158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD799158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD79A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7309,9 +7834,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF975C47099C8DCF00B05160 /* libjwxyz.a in Frameworks */, - AF975C48099C8DCF00B05160 /* ScreenSaver.framework in Frameworks */, - AF975C49099C8DCF00B05160 /* Cocoa.framework in Frameworks */, + AF1FD78F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD790158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD791158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD792158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7319,9 +7845,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF975C67099C8F3F00B05160 /* libjwxyz.a in Frameworks */, - AF975C68099C8F3F00B05160 /* ScreenSaver.framework in Frameworks */, - AF975C69099C8F3F00B05160 /* Cocoa.framework in Frameworks */, + AF1FD7DF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7E0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7E1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7E2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7329,9 +7856,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF975D5C099CA0F000B05160 /* libjwxyz.a in Frameworks */, - AF975D5D099CA0F000B05160 /* ScreenSaver.framework in Frameworks */, - AF975D5E099CA0F000B05160 /* Cocoa.framework in Frameworks */, + AF1FD813158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD814158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD815158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD816158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7339,9 +7867,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4808DA098C3C6A00FB32B8 /* libjwxyz.a in Frameworks */, - AF976FD40989CB02001F8B92 /* ScreenSaver.framework in Frameworks */, - AF976FD50989CB0C001F8B92 /* Cocoa.framework in Frameworks */, + AF1FD763158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD764158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD765158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD766158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7349,9 +7878,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4808DE098C3D4100FB32B8 /* libjwxyz.a in Frameworks */, - AF97703A0989D1E6001F8B92 /* ScreenSaver.framework in Frameworks */, - AF97703B0989D1E6001F8B92 /* Cocoa.framework in Frameworks */, + AF1FD817158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD818158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD819158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD81A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7359,9 +7889,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4808E1098C3D5000FB32B8 /* libjwxyz.a in Frameworks */, - AF9770770989D2F6001F8B92 /* ScreenSaver.framework in Frameworks */, - AF9770780989D2F6001F8B92 /* Cocoa.framework in Frameworks */, + AF1FD727158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD728158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD729158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD72A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7369,9 +7900,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF4808E4098C3D5B00FB32B8 /* libjwxyz.a in Frameworks */, - AF9772CB0989DCFD001F8B92 /* Cocoa.framework in Frameworks */, - AF1A26760990E77C00147B80 /* ScreenSaver.framework in Frameworks */, + AFEB9C37158FFF88003974F3 /* ScreenSaver.framework in Frameworks */, + AF918B99158FF045002B5D1E /* Cocoa.framework in Frameworks */, + AF918B9A158FF04C002B5D1E /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7379,12 +7910,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF998EE30A083DB30051049D /* libjwxyz.a in Frameworks */, - AF998EE40A083DB30051049D /* ScreenSaver.framework in Frameworks */, - AF998EE50A083DB30051049D /* Cocoa.framework in Frameworks */, - AF998EE60A083DB30051049D /* AGL.framework in Frameworks */, - AF998EE70A083DB30051049D /* OpenGL.framework in Frameworks */, - AF998EE80A083DB30051049D /* Carbon.framework in Frameworks */, + AF1FDA2B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA2C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA2D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA2E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7392,9 +7921,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF9D466F09B5109C006E59CF /* libjwxyz.a in Frameworks */, - AF9D467009B5109C006E59CF /* ScreenSaver.framework in Frameworks */, - AF9D467109B5109C006E59CF /* Cocoa.framework in Frameworks */, + AF1FD75F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD760158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD761158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD762158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7402,9 +7932,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF9D474D09B5300A006E59CF /* libjwxyz.a in Frameworks */, - AF9D474E09B5300A006E59CF /* ScreenSaver.framework in Frameworks */, - AF9D474F09B5300A006E59CF /* Cocoa.framework in Frameworks */, + AF1FD823158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD824158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD825158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD826158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7412,9 +7943,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF9D476809B53166006E59CF /* libjwxyz.a in Frameworks */, - AF9D476909B53166006E59CF /* ScreenSaver.framework in Frameworks */, - AF9D476A09B53166006E59CF /* Cocoa.framework in Frameworks */, + AF1FD87B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD87C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD87D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD87E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7422,9 +7954,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF9D48E409B53322006E59CF /* libjwxyz.a in Frameworks */, - AF9D48E509B53322006E59CF /* ScreenSaver.framework in Frameworks */, - AF9D48E609B53322006E59CF /* Cocoa.framework in Frameworks */, + AF1FD73F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD740158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD741158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD742158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7432,9 +7965,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF9D48FD09B535DA006E59CF /* libjwxyz.a in Frameworks */, - AF9D48FE09B535DA006E59CF /* ScreenSaver.framework in Frameworks */, - AF9D48FF09B535DA006E59CF /* Cocoa.framework in Frameworks */, + AF1FD76B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD76C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD76D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD76E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7442,9 +7976,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF9D493409B53CBA006E59CF /* libjwxyz.a in Frameworks */, - AF9D493509B53CBA006E59CF /* ScreenSaver.framework in Frameworks */, - AF9D493609B53CBA006E59CF /* Cocoa.framework in Frameworks */, + AF1FD80F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD810158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD811158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD812158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7452,9 +7987,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF9D495D09B53FC9006E59CF /* libjwxyz.a in Frameworks */, - AF9D495E09B53FC9006E59CF /* ScreenSaver.framework in Frameworks */, - AF9D495F09B53FC9006E59CF /* Cocoa.framework in Frameworks */, + AF1FD81B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD81C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD81D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD81E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7462,9 +7998,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF9D497509B5411D006E59CF /* libjwxyz.a in Frameworks */, - AF9D497609B5411D006E59CF /* ScreenSaver.framework in Frameworks */, - AF9D497709B5411D006E59CF /* Cocoa.framework in Frameworks */, + AF1FD843158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD844158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD845158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD846158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7472,9 +8009,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF9D49A009B544C2006E59CF /* libjwxyz.a in Frameworks */, - AF9D49A109B544C2006E59CF /* ScreenSaver.framework in Frameworks */, - AF9D49A209B544C2006E59CF /* Cocoa.framework in Frameworks */, + AF1FD82F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD830158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD831158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD832158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7482,9 +8020,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF9D4C7209B59F27006E59CF /* libjwxyz.a in Frameworks */, - AF9D4C7309B59F27006E59CF /* ScreenSaver.framework in Frameworks */, - AF9D4C7409B59F27006E59CF /* Cocoa.framework in Frameworks */, + AF1FD86B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD86C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD86D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD86E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7492,9 +8031,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF9D4CF009B5AA8E006E59CF /* libjwxyz.a in Frameworks */, - AF9D4CF109B5AA8E006E59CF /* ScreenSaver.framework in Frameworks */, - AF9D4CF209B5AA8E006E59CF /* Cocoa.framework in Frameworks */, + AF1FD7FB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD7FC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD7FD158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD7FE158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7502,9 +8042,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF9D4D8809B5B2DC006E59CF /* libjwxyz.a in Frameworks */, - AF9D4D8909B5B2DC006E59CF /* ScreenSaver.framework in Frameworks */, - AF9D4D8A09B5B2DC006E59CF /* Cocoa.framework in Frameworks */, + AF1FD863158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD864158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD865158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD866158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7512,9 +8053,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF9D4DB909B5B71E006E59CF /* libjwxyz.a in Frameworks */, - AF9D4DBA09B5B71E006E59CF /* ScreenSaver.framework in Frameworks */, - AF9D4DBB09B5B71E006E59CF /* Cocoa.framework in Frameworks */, + AF1FD73B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD73C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD73D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD73E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7522,9 +8064,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AF9D4DF709B5BB19006E59CF /* libjwxyz.a in Frameworks */, - AF9D4DF809B5BB19006E59CF /* ScreenSaver.framework in Frameworks */, - AF9D4DF909B5BB19006E59CF /* Cocoa.framework in Frameworks */, + AF1FD71F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD720158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD721158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD722158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7532,9 +8075,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA339380B058505002B0E7D /* libjwxyz.a in Frameworks */, - AFA339390B058505002B0E7D /* ScreenSaver.framework in Frameworks */, - AFA3393A0B058505002B0E7D /* Cocoa.framework in Frameworks */, + AF1FD84F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD850158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD851158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD852158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7542,7 +8086,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA33BD20B058815002B0E7D /* Cocoa.framework in Frameworks */, + AF1FD853158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD854158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD855158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD856158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7550,12 +8097,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55950099330B000F3E977 /* libjwxyz.a in Frameworks */, - AFA55951099330B000F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55952099330B000F3E977 /* Cocoa.framework in Frameworks */, - AFA55953099330B000F3E977 /* AGL.framework in Frameworks */, - AFA55954099330B000F3E977 /* OpenGL.framework in Frameworks */, - AFA55955099330B000F3E977 /* Carbon.framework in Frameworks */, + AF1FD90F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD910158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD911158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD912158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7563,12 +8108,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA559750993317900F3E977 /* libjwxyz.a in Frameworks */, - AFA559760993317900F3E977 /* ScreenSaver.framework in Frameworks */, - AFA559770993317900F3E977 /* Cocoa.framework in Frameworks */, - AFA559780993317900F3E977 /* AGL.framework in Frameworks */, - AFA559790993317900F3E977 /* OpenGL.framework in Frameworks */, - AFA5597A0993317900F3E977 /* Carbon.framework in Frameworks */, + AF1FD9BB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9BC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9BD158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9BE158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7576,12 +8119,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA5599A0993322100F3E977 /* libjwxyz.a in Frameworks */, - AFA5599B0993322100F3E977 /* ScreenSaver.framework in Frameworks */, - AFA5599C0993322100F3E977 /* Cocoa.framework in Frameworks */, - AFA5599D0993322100F3E977 /* AGL.framework in Frameworks */, - AFA5599E0993322100F3E977 /* OpenGL.framework in Frameworks */, - AFA5599F0993322100F3E977 /* Carbon.framework in Frameworks */, + AF1FDA1B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA1C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA1D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA1E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7589,12 +8130,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA559BD0993328000F3E977 /* libjwxyz.a in Frameworks */, - AFA559BE0993328000F3E977 /* ScreenSaver.framework in Frameworks */, - AFA559BF0993328000F3E977 /* Cocoa.framework in Frameworks */, - AFA559C00993328000F3E977 /* AGL.framework in Frameworks */, - AFA559C10993328000F3E977 /* OpenGL.framework in Frameworks */, - AFA559C20993328000F3E977 /* Carbon.framework in Frameworks */, + AF1FD9C7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9C8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9C9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9CA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7602,12 +8141,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA559D70993330600F3E977 /* libjwxyz.a in Frameworks */, - AFA559D80993330600F3E977 /* ScreenSaver.framework in Frameworks */, - AFA559D90993330600F3E977 /* Cocoa.framework in Frameworks */, - AFA559DA0993330600F3E977 /* AGL.framework in Frameworks */, - AFA559DB0993330600F3E977 /* OpenGL.framework in Frameworks */, - AFA559DC0993330600F3E977 /* Carbon.framework in Frameworks */, + AF1FD9EF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9F0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9F1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9F2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7615,12 +8152,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55A0B0993340300F3E977 /* libjwxyz.a in Frameworks */, - AFA55A0C0993340300F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55A0D0993340300F3E977 /* Cocoa.framework in Frameworks */, - AFA55A0E0993340300F3E977 /* AGL.framework in Frameworks */, - AFA55A0F0993340300F3E977 /* OpenGL.framework in Frameworks */, - AFA55A100993340300F3E977 /* Carbon.framework in Frameworks */, + AF1FDA0F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA10158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA11158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA12158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7628,12 +8163,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55A28099334A000F3E977 /* libjwxyz.a in Frameworks */, - AFA55A29099334A000F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55A2A099334A000F3E977 /* Cocoa.framework in Frameworks */, - AFA55A2B099334A000F3E977 /* AGL.framework in Frameworks */, - AFA55A2C099334A000F3E977 /* OpenGL.framework in Frameworks */, - AFA55A2D099334A000F3E977 /* Carbon.framework in Frameworks */, + AF1FDA0B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA0C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA0D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA0E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7641,12 +8174,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55A810993364300F3E977 /* libjwxyz.a in Frameworks */, - AFA55A820993364300F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55A830993364300F3E977 /* Cocoa.framework in Frameworks */, - AFA55A840993364300F3E977 /* AGL.framework in Frameworks */, - AFA55A850993364300F3E977 /* OpenGL.framework in Frameworks */, - AFA55A860993364300F3E977 /* Carbon.framework in Frameworks */, + AF1FD9A7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9A8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9A9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9AA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7654,12 +8185,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55AD709933CEF00F3E977 /* libjwxyz.a in Frameworks */, - AFA55AD809933CEF00F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55AD909933CEF00F3E977 /* Cocoa.framework in Frameworks */, - AFA55ADA09933CEF00F3E977 /* AGL.framework in Frameworks */, - AFA55ADB09933CEF00F3E977 /* OpenGL.framework in Frameworks */, - AFA55ADC09933CEF00F3E977 /* Carbon.framework in Frameworks */, + AF1FD90B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD90C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD90D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD90E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7667,12 +8196,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55B1409933E0500F3E977 /* libjwxyz.a in Frameworks */, - AFA55B1509933E0500F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55B1609933E0500F3E977 /* Cocoa.framework in Frameworks */, - AFA55B1709933E0500F3E977 /* AGL.framework in Frameworks */, - AFA55B1809933E0500F3E977 /* OpenGL.framework in Frameworks */, - AFA55B1909933E0500F3E977 /* Carbon.framework in Frameworks */, + AF1FD977158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD978158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD979158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD97A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7680,12 +8207,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55B2D09933E8D00F3E977 /* libjwxyz.a in Frameworks */, - AFA55B2E09933E8D00F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55B2F09933E8D00F3E977 /* Cocoa.framework in Frameworks */, - AFA55B3009933E8D00F3E977 /* AGL.framework in Frameworks */, - AFA55B3109933E8D00F3E977 /* OpenGL.framework in Frameworks */, - AFA55B3209933E8D00F3E977 /* Carbon.framework in Frameworks */, + AF1FD9E7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9E8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9E9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9EA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7693,12 +8218,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55B8109933F7200F3E977 /* libjwxyz.a in Frameworks */, - AFA55B8209933F7200F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55B8309933F7200F3E977 /* Cocoa.framework in Frameworks */, - AFA55B8409933F7200F3E977 /* AGL.framework in Frameworks */, - AFA55B8509933F7200F3E977 /* OpenGL.framework in Frameworks */, - AFA55B8609933F7200F3E977 /* Carbon.framework in Frameworks */, + AF1FD9FF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA00158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA01158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA02158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7706,12 +8229,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55B9909933FDA00F3E977 /* libjwxyz.a in Frameworks */, - AFA55B9A09933FDA00F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55B9B09933FDA00F3E977 /* Cocoa.framework in Frameworks */, - AFA55B9C09933FDA00F3E977 /* AGL.framework in Frameworks */, - AFA55B9D09933FDA00F3E977 /* OpenGL.framework in Frameworks */, - AFA55B9E09933FDA00F3E977 /* Carbon.framework in Frameworks */, + AF1FD95F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD960158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD961158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD962158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7719,12 +8240,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55BB3099340CE00F3E977 /* libjwxyz.a in Frameworks */, - AFA55BB4099340CE00F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55BB5099340CE00F3E977 /* Cocoa.framework in Frameworks */, - AFA55BB6099340CE00F3E977 /* AGL.framework in Frameworks */, - AFA55BB7099340CE00F3E977 /* OpenGL.framework in Frameworks */, - AFA55BB8099340CE00F3E977 /* Carbon.framework in Frameworks */, + AF1FD917158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD918158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD919158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD91A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7732,12 +8251,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55BEC0993429100F3E977 /* libjwxyz.a in Frameworks */, - AFA55BED0993429100F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55BEE0993429100F3E977 /* Cocoa.framework in Frameworks */, - AFA55BEF0993429100F3E977 /* AGL.framework in Frameworks */, - AFA55BF00993429100F3E977 /* OpenGL.framework in Frameworks */, - AFA55BF10993429100F3E977 /* Carbon.framework in Frameworks */, + AF1FD9B3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9B4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9B5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9B6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7745,12 +8262,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55C160993431300F3E977 /* libjwxyz.a in Frameworks */, - AFA55C170993431300F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55C180993431300F3E977 /* Cocoa.framework in Frameworks */, - AFA55C190993431300F3E977 /* AGL.framework in Frameworks */, - AFA55C1A0993431300F3E977 /* OpenGL.framework in Frameworks */, - AFA55C1B0993431300F3E977 /* Carbon.framework in Frameworks */, + AF1FD93F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD940158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD941158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD942158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7758,12 +8273,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55C7F099349A600F3E977 /* libjwxyz.a in Frameworks */, - AFA55C80099349A600F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55C81099349A600F3E977 /* Cocoa.framework in Frameworks */, - AFA55C82099349A600F3E977 /* AGL.framework in Frameworks */, - AFA55C83099349A600F3E977 /* OpenGL.framework in Frameworks */, - AFA55C84099349A600F3E977 /* Carbon.framework in Frameworks */, + AF1FD983158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD984158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD985158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD986158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7771,12 +8284,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55CB109934BB200F3E977 /* libjwxyz.a in Frameworks */, - AFA55CB209934BB200F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55CB309934BB200F3E977 /* Cocoa.framework in Frameworks */, - AFA55CB409934BB200F3E977 /* AGL.framework in Frameworks */, - AFA55CB509934BB200F3E977 /* OpenGL.framework in Frameworks */, - AFA55CB609934BB200F3E977 /* Carbon.framework in Frameworks */, + AF1FD907158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD908158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD909158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD90A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7784,12 +8295,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55CD409934CE400F3E977 /* libjwxyz.a in Frameworks */, - AFA55CD509934CE400F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55CD609934CE400F3E977 /* Cocoa.framework in Frameworks */, - AFA55CD709934CE400F3E977 /* AGL.framework in Frameworks */, - AFA55CD809934CE400F3E977 /* OpenGL.framework in Frameworks */, - AFA55CD909934CE400F3E977 /* Carbon.framework in Frameworks */, + AF1FDA4B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA4C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA4D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA4E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7797,12 +8306,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55D440993565300F3E977 /* libjwxyz.a in Frameworks */, - AFA55D450993565300F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55D460993565300F3E977 /* Cocoa.framework in Frameworks */, - AFA55D470993565300F3E977 /* AGL.framework in Frameworks */, - AFA55D480993565300F3E977 /* OpenGL.framework in Frameworks */, - AFA55D490993565300F3E977 /* Carbon.framework in Frameworks */, + AF1FD9FB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9FC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9FD158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9FE158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7810,12 +8317,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55D6A0993584B00F3E977 /* libjwxyz.a in Frameworks */, - AFA55D6B0993584B00F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55D6C0993584B00F3E977 /* Cocoa.framework in Frameworks */, - AFA55D6D0993584B00F3E977 /* AGL.framework in Frameworks */, - AFA55D6E0993584B00F3E977 /* OpenGL.framework in Frameworks */, - AFA55D6F0993584B00F3E977 /* Carbon.framework in Frameworks */, + AF1FD927158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD928158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD929158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD92A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7823,12 +8328,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55D87099358C400F3E977 /* libjwxyz.a in Frameworks */, - AFA55D88099358C400F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55D89099358C400F3E977 /* Cocoa.framework in Frameworks */, - AFA55D8A099358C400F3E977 /* AGL.framework in Frameworks */, - AFA55D8B099358C400F3E977 /* OpenGL.framework in Frameworks */, - AFA55D8C099358C400F3E977 /* Carbon.framework in Frameworks */, + AF1FDA07158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA08158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA09158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA0A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7836,12 +8339,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55DD009935D7000F3E977 /* libjwxyz.a in Frameworks */, - AFA55DD109935D7000F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55DD209935D7000F3E977 /* Cocoa.framework in Frameworks */, - AFA55DD309935D7000F3E977 /* AGL.framework in Frameworks */, - AFA55DD409935D7000F3E977 /* OpenGL.framework in Frameworks */, - AFA55DD509935D7000F3E977 /* Carbon.framework in Frameworks */, + AF1FD9AB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9AC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9AD158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9AE158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7849,12 +8350,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55DF909935E4900F3E977 /* libjwxyz.a in Frameworks */, - AFA55DFA09935E4900F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55DFB09935E4900F3E977 /* Cocoa.framework in Frameworks */, - AFA55DFC09935E4900F3E977 /* AGL.framework in Frameworks */, - AFA55DFD09935E4900F3E977 /* OpenGL.framework in Frameworks */, - AFA55DFE09935E4900F3E977 /* Carbon.framework in Frameworks */, + AF1FD9EB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9EC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9ED158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9EE158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7862,12 +8361,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55E1509935EDC00F3E977 /* libjwxyz.a in Frameworks */, - AFA55E1609935EDC00F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55E1709935EDC00F3E977 /* Cocoa.framework in Frameworks */, - AFA55E1809935EDC00F3E977 /* AGL.framework in Frameworks */, - AFA55E1909935EDC00F3E977 /* OpenGL.framework in Frameworks */, - AFA55E1A09935EDC00F3E977 /* Carbon.framework in Frameworks */, + AF1FD93B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD93C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD93D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD93E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7875,12 +8372,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55E3809935F8E00F3E977 /* libjwxyz.a in Frameworks */, - AFA55E3909935F8E00F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55E3A09935F8E00F3E977 /* Cocoa.framework in Frameworks */, - AFA55E3B09935F8E00F3E977 /* AGL.framework in Frameworks */, - AFA55E3C09935F8E00F3E977 /* OpenGL.framework in Frameworks */, - AFA55E3D09935F8E00F3E977 /* Carbon.framework in Frameworks */, + AF1FD963158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD964158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD965158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD966158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7888,12 +8383,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55E5609935FF900F3E977 /* libjwxyz.a in Frameworks */, - AFA55E5709935FF900F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55E5809935FF900F3E977 /* Cocoa.framework in Frameworks */, - AFA55E5909935FF900F3E977 /* AGL.framework in Frameworks */, - AFA55E5A09935FF900F3E977 /* OpenGL.framework in Frameworks */, - AFA55E5B09935FF900F3E977 /* Carbon.framework in Frameworks */, + AF1FD953158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD954158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD955158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD956158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7901,12 +8394,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55ED9099360E300F3E977 /* libjwxyz.a in Frameworks */, - AFA55EDA099360E300F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55EDB099360E300F3E977 /* Cocoa.framework in Frameworks */, - AFA55EDC099360E300F3E977 /* AGL.framework in Frameworks */, - AFA55EDD099360E300F3E977 /* OpenGL.framework in Frameworks */, - AFA55EDE099360E300F3E977 /* Carbon.framework in Frameworks */, + AF1FD903158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD904158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD905158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD906158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7914,12 +8405,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55F14099361B700F3E977 /* libjwxyz.a in Frameworks */, - AFA55F15099361B700F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55F16099361B700F3E977 /* Cocoa.framework in Frameworks */, - AFA55F17099361B700F3E977 /* AGL.framework in Frameworks */, - AFA55F18099361B700F3E977 /* OpenGL.framework in Frameworks */, - AFA55F19099361B700F3E977 /* Carbon.framework in Frameworks */, + AF1FD997158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD998158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD999158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD99A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7927,12 +8416,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55F320993622F00F3E977 /* libjwxyz.a in Frameworks */, - AFA55F330993622F00F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55F340993622F00F3E977 /* Cocoa.framework in Frameworks */, - AFA55F350993622F00F3E977 /* AGL.framework in Frameworks */, - AFA55F360993622F00F3E977 /* OpenGL.framework in Frameworks */, - AFA55F370993622F00F3E977 /* Carbon.framework in Frameworks */, + AF1FD9A3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9A4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9A5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9A6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7940,12 +8427,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55F4A0993629000F3E977 /* libjwxyz.a in Frameworks */, - AFA55F4B0993629000F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55F4C0993629000F3E977 /* Cocoa.framework in Frameworks */, - AFA55F4D0993629000F3E977 /* AGL.framework in Frameworks */, - AFA55F4E0993629000F3E977 /* OpenGL.framework in Frameworks */, - AFA55F4F0993629000F3E977 /* Carbon.framework in Frameworks */, + AF1FD98F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD990158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD991158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD992158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7953,12 +8438,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55F7A0993643600F3E977 /* libjwxyz.a in Frameworks */, - AFA55F7B0993643600F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55F7C0993643600F3E977 /* Cocoa.framework in Frameworks */, - AFA55F7D0993643600F3E977 /* AGL.framework in Frameworks */, - AFA55F7E0993643600F3E977 /* OpenGL.framework in Frameworks */, - AFA55F7F0993643600F3E977 /* Carbon.framework in Frameworks */, + AF1FD973158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD974158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD975158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD976158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7966,12 +8449,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA55FDB09936BFA00F3E977 /* libjwxyz.a in Frameworks */, - AFA55FDC09936BFA00F3E977 /* ScreenSaver.framework in Frameworks */, - AFA55FDD09936BFA00F3E977 /* Cocoa.framework in Frameworks */, - AFA55FDE09936BFA00F3E977 /* AGL.framework in Frameworks */, - AFA55FDF09936BFA00F3E977 /* OpenGL.framework in Frameworks */, - AFA55FE009936BFA00F3E977 /* Carbon.framework in Frameworks */, + AF1FD92B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD92C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD92D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD92E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7979,12 +8460,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA5600109936C6D00F3E977 /* libjwxyz.a in Frameworks */, - AFA5600209936C6D00F3E977 /* ScreenSaver.framework in Frameworks */, - AFA5600309936C6D00F3E977 /* Cocoa.framework in Frameworks */, - AFA5600409936C6D00F3E977 /* AGL.framework in Frameworks */, - AFA5600509936C6D00F3E977 /* OpenGL.framework in Frameworks */, - AFA5600609936C6D00F3E977 /* Carbon.framework in Frameworks */, + AF1FD96F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD970158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD971158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD972158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7992,12 +8471,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA5601C09936CC800F3E977 /* libjwxyz.a in Frameworks */, - AFA5601D09936CC800F3E977 /* ScreenSaver.framework in Frameworks */, - AFA5601E09936CC800F3E977 /* Cocoa.framework in Frameworks */, - AFA5601F09936CC800F3E977 /* AGL.framework in Frameworks */, - AFA5602009936CC800F3E977 /* OpenGL.framework in Frameworks */, - AFA5602109936CC800F3E977 /* Carbon.framework in Frameworks */, + AF1FD8FB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8FC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8FD158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8FE158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8005,12 +8482,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA5603A09936D5100F3E977 /* libjwxyz.a in Frameworks */, - AFA5603B09936D5100F3E977 /* ScreenSaver.framework in Frameworks */, - AFA5603C09936D5100F3E977 /* Cocoa.framework in Frameworks */, - AFA5603D09936D5100F3E977 /* AGL.framework in Frameworks */, - AFA5603E09936D5100F3E977 /* OpenGL.framework in Frameworks */, - AFA5603F09936D5100F3E977 /* Carbon.framework in Frameworks */, + AF1FD947158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD948158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD949158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD94A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8018,12 +8493,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA5605209936E2100F3E977 /* libjwxyz.a in Frameworks */, - AFA5605309936E2100F3E977 /* ScreenSaver.framework in Frameworks */, - AFA5605409936E2100F3E977 /* Cocoa.framework in Frameworks */, - AFA5605509936E2100F3E977 /* AGL.framework in Frameworks */, - AFA5605609936E2100F3E977 /* OpenGL.framework in Frameworks */, - AFA5605709936E2100F3E977 /* Carbon.framework in Frameworks */, + AF1FD8E3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8E4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8E5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8E6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8031,12 +8504,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA5606A09936F3800F3E977 /* libjwxyz.a in Frameworks */, - AFA5606B09936F3800F3E977 /* ScreenSaver.framework in Frameworks */, - AFA5606C09936F3800F3E977 /* Cocoa.framework in Frameworks */, - AFA5606D09936F3800F3E977 /* AGL.framework in Frameworks */, - AFA5606E09936F3800F3E977 /* OpenGL.framework in Frameworks */, - AFA5606F09936F3800F3E977 /* Carbon.framework in Frameworks */, + AF1FD8EB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8EC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8ED158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8EE158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8044,12 +8515,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA560B60993718D00F3E977 /* libjwxyz.a in Frameworks */, - AFA560B70993718D00F3E977 /* ScreenSaver.framework in Frameworks */, - AFA560B80993718D00F3E977 /* Cocoa.framework in Frameworks */, - AFA560B90993718D00F3E977 /* AGL.framework in Frameworks */, - AFA560BA0993718D00F3E977 /* OpenGL.framework in Frameworks */, - AFA560BB0993718D00F3E977 /* Carbon.framework in Frameworks */, + AF1FD9DF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9E0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9E1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9E2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8057,12 +8526,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA561050993781600F3E977 /* libjwxyz.a in Frameworks */, - AFA561060993781600F3E977 /* ScreenSaver.framework in Frameworks */, - AFA561070993781600F3E977 /* Cocoa.framework in Frameworks */, - AFA561080993781600F3E977 /* AGL.framework in Frameworks */, - AFA561090993781600F3E977 /* OpenGL.framework in Frameworks */, - AFA5610A0993781600F3E977 /* Carbon.framework in Frameworks */, + AF1FD9C3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9C4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9C5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9C6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8070,12 +8537,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA5616009937C0D00F3E977 /* libjwxyz.a in Frameworks */, - AFA5616109937C0D00F3E977 /* ScreenSaver.framework in Frameworks */, - AFA5616209937C0D00F3E977 /* Cocoa.framework in Frameworks */, - AFA5616309937C0D00F3E977 /* AGL.framework in Frameworks */, - AFA5616409937C0D00F3E977 /* OpenGL.framework in Frameworks */, - AFA5616509937C0D00F3E977 /* Carbon.framework in Frameworks */, + AF1FD8F7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8F8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8F9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8FA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8083,12 +8548,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA5618309937CF100F3E977 /* libjwxyz.a in Frameworks */, - AFA5618409937CF100F3E977 /* ScreenSaver.framework in Frameworks */, - AFA5618509937CF100F3E977 /* Cocoa.framework in Frameworks */, - AFA5618609937CF100F3E977 /* AGL.framework in Frameworks */, - AFA5618709937CF100F3E977 /* OpenGL.framework in Frameworks */, - AFA5618809937CF100F3E977 /* Carbon.framework in Frameworks */, + AF1FD9CB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9CC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9CD158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9CE158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8096,12 +8559,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA561A509937D7E00F3E977 /* libjwxyz.a in Frameworks */, - AFA561A609937D7E00F3E977 /* ScreenSaver.framework in Frameworks */, - AFA561A709937D7E00F3E977 /* Cocoa.framework in Frameworks */, - AFA561A809937D7E00F3E977 /* AGL.framework in Frameworks */, - AFA561A909937D7E00F3E977 /* OpenGL.framework in Frameworks */, - AFA561AA09937D7E00F3E977 /* Carbon.framework in Frameworks */, + AF1FD9DB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9DC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9DD158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9DE158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8109,12 +8570,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA5620F0993849F00F3E977 /* libjwxyz.a in Frameworks */, - AFA562100993849F00F3E977 /* ScreenSaver.framework in Frameworks */, - AFA562110993849F00F3E977 /* Cocoa.framework in Frameworks */, - AFA562120993849F00F3E977 /* AGL.framework in Frameworks */, - AFA562130993849F00F3E977 /* OpenGL.framework in Frameworks */, - AFA562140993849F00F3E977 /* Carbon.framework in Frameworks */, + AF1FD9E3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9E4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9E5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9E6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8122,12 +8581,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA562270993852500F3E977 /* libjwxyz.a in Frameworks */, - AFA562280993852500F3E977 /* ScreenSaver.framework in Frameworks */, - AFA562290993852500F3E977 /* Cocoa.framework in Frameworks */, - AFA5622A0993852500F3E977 /* AGL.framework in Frameworks */, - AFA5622B0993852500F3E977 /* OpenGL.framework in Frameworks */, - AFA5622C0993852500F3E977 /* Carbon.framework in Frameworks */, + AF1FD9D3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9D4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9D5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9D6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8135,12 +8592,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA562C7099392C600F3E977 /* libjwxyz.a in Frameworks */, - AFA562C8099392C600F3E977 /* ScreenSaver.framework in Frameworks */, - AFA562C9099392C600F3E977 /* Cocoa.framework in Frameworks */, - AFA562CA099392C600F3E977 /* AGL.framework in Frameworks */, - AFA562CB099392C600F3E977 /* OpenGL.framework in Frameworks */, - AFA562CC099392C600F3E977 /* Carbon.framework in Frameworks */, + AF1FD8FF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD900158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD901158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD902158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8148,12 +8603,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA562E2099393C900F3E977 /* libjwxyz.a in Frameworks */, - AFA562E3099393C900F3E977 /* ScreenSaver.framework in Frameworks */, - AFA562E4099393C900F3E977 /* Cocoa.framework in Frameworks */, - AFA562E5099393C900F3E977 /* AGL.framework in Frameworks */, - AFA562E6099393C900F3E977 /* OpenGL.framework in Frameworks */, - AFA562E7099393C900F3E977 /* Carbon.framework in Frameworks */, + AF1FD8E7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8E8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8E9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8EA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8161,12 +8614,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA562FA0993943B00F3E977 /* libjwxyz.a in Frameworks */, - AFA562FB0993943B00F3E977 /* ScreenSaver.framework in Frameworks */, - AFA562FC0993943B00F3E977 /* Cocoa.framework in Frameworks */, - AFA562FD0993943B00F3E977 /* AGL.framework in Frameworks */, - AFA562FE0993943B00F3E977 /* OpenGL.framework in Frameworks */, - AFA562FF0993943B00F3E977 /* Carbon.framework in Frameworks */, + AF1FDA23158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA24158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA25158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA26158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8174,12 +8625,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA5631C0993951000F3E977 /* libjwxyz.a in Frameworks */, - AFA5631D0993951000F3E977 /* ScreenSaver.framework in Frameworks */, - AFA5631E0993951000F3E977 /* Cocoa.framework in Frameworks */, - AFA5631F0993951000F3E977 /* AGL.framework in Frameworks */, - AFA563200993951000F3E977 /* OpenGL.framework in Frameworks */, - AFA563210993951000F3E977 /* Carbon.framework in Frameworks */, + AF1FD91F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD920158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD921158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD922158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8187,12 +8636,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA56339099395ED00F3E977 /* libjwxyz.a in Frameworks */, - AFA5633A099395ED00F3E977 /* ScreenSaver.framework in Frameworks */, - AFA5633B099395ED00F3E977 /* Cocoa.framework in Frameworks */, - AFA5633C099395ED00F3E977 /* AGL.framework in Frameworks */, - AFA5633D099395ED00F3E977 /* OpenGL.framework in Frameworks */, - AFA5633E099395ED00F3E977 /* Carbon.framework in Frameworks */, + AF1FD96B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD96C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD96D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD96E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8200,12 +8647,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA56359099396C000F3E977 /* libjwxyz.a in Frameworks */, - AFA5635A099396C000F3E977 /* ScreenSaver.framework in Frameworks */, - AFA5635B099396C000F3E977 /* Cocoa.framework in Frameworks */, - AFA5635C099396C000F3E977 /* AGL.framework in Frameworks */, - AFA5635D099396C000F3E977 /* OpenGL.framework in Frameworks */, - AFA5635E099396C000F3E977 /* Carbon.framework in Frameworks */, + AF1FD923158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD924158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD925158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD926158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8213,12 +8658,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA56381099397B300F3E977 /* libjwxyz.a in Frameworks */, - AFA56382099397B300F3E977 /* ScreenSaver.framework in Frameworks */, - AFA56383099397B300F3E977 /* Cocoa.framework in Frameworks */, - AFA56384099397B300F3E977 /* AGL.framework in Frameworks */, - AFA56385099397B300F3E977 /* OpenGL.framework in Frameworks */, - AFA56386099397B300F3E977 /* Carbon.framework in Frameworks */, + AF1FDA27158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA28158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA29158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA2A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8226,12 +8669,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFA563AC099398BB00F3E977 /* libjwxyz.a in Frameworks */, - AFA563AD099398BB00F3E977 /* ScreenSaver.framework in Frameworks */, - AFA563AE099398BB00F3E977 /* Cocoa.framework in Frameworks */, - AFA563AF099398BB00F3E977 /* AGL.framework in Frameworks */, - AFA563B0099398BB00F3E977 /* OpenGL.framework in Frameworks */, - AFA563B1099398BB00F3E977 /* Carbon.framework in Frameworks */, + AF1FD99F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9A0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9A1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9A2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8239,12 +8680,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD51B250F063B4A00471C02 /* libjwxyz.a in Frameworks */, - AFD51B260F063B4A00471C02 /* ScreenSaver.framework in Frameworks */, - AFD51B270F063B4A00471C02 /* Cocoa.framework in Frameworks */, - AFD51B280F063B4A00471C02 /* AGL.framework in Frameworks */, - AFD51B290F063B4A00471C02 /* OpenGL.framework in Frameworks */, - AFD51B2A0F063B4A00471C02 /* Carbon.framework in Frameworks */, + AF1FD9CF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9D0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9D1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9D2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8252,12 +8691,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD56DFA0996A03800BA26F7 /* libjwxyz.a in Frameworks */, - AFD56DFB0996A03800BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD56DFC0996A03800BA26F7 /* Cocoa.framework in Frameworks */, - AFD56DFD0996A03800BA26F7 /* AGL.framework in Frameworks */, - AFD56DFE0996A03800BA26F7 /* OpenGL.framework in Frameworks */, - AFD56DFF0996A03800BA26F7 /* Carbon.framework in Frameworks */, + AF1FD987158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD988158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD989158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD98A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8265,9 +8702,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD56EB70996A72600BA26F7 /* libjwxyz.a in Frameworks */, - AFD56EB80996A72600BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD56EB90996A72600BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD887158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD888158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD889158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD88A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8275,9 +8713,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD56EE30996A95700BA26F7 /* libjwxyz.a in Frameworks */, - AFD56EE40996A95700BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD56EE50996A95700BA26F7 /* Cocoa.framework in Frameworks */, + AF1FDA47158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA48158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA49158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA4A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8285,9 +8724,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD56F140996AAFA00BA26F7 /* libjwxyz.a in Frameworks */, - AFD56F150996AAFA00BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD56F160996AAFA00BA26F7 /* Cocoa.framework in Frameworks */, + AF1FDA7F158FF96600C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA80158FF96600C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA81158FF96600C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA82158FF96600C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8295,9 +8735,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD56F2C0996AB8A00BA26F7 /* libjwxyz.a in Frameworks */, - AFD56F2D0996AB8A00BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD56F2E0996AB8A00BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD8AB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8AC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8AD158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8AE158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8305,9 +8746,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD56F580996AEEE00BA26F7 /* libjwxyz.a in Frameworks */, - AFD56F590996AEEE00BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD56F5A0996AEEE00BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD8AF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8B0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8B1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8B2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8315,9 +8757,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD56F740996B01600BA26F7 /* libjwxyz.a in Frameworks */, - AFD56F750996B01600BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD56F760996B01600BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD8B3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8B4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8B5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8B6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8325,9 +8768,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD56F950996B09400BA26F7 /* libjwxyz.a in Frameworks */, - AFD56F960996B09400BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD56F970996B09400BA26F7 /* Cocoa.framework in Frameworks */, + AF1FDA5B158FF96600C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA5C158FF96600C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA5D158FF96600C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA5E158FF96600C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8335,9 +8779,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD56FAC0996B10F00BA26F7 /* libjwxyz.a in Frameworks */, - AFD56FAD0996B10F00BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD56FAE0996B10F00BA26F7 /* Cocoa.framework in Frameworks */, + AF1FDA5F158FF96600C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA60158FF96600C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA61158FF96600C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA62158FF96600C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8345,9 +8790,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD56FC20996B18F00BA26F7 /* libjwxyz.a in Frameworks */, - AFD56FC30996B18F00BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD56FC40996B18F00BA26F7 /* Cocoa.framework in Frameworks */, + AF1FDA63158FF96600C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA64158FF96600C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA65158FF96600C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA66158FF96600C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8355,9 +8801,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD56FD80996B20900BA26F7 /* libjwxyz.a in Frameworks */, - AFD56FD90996B20900BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD56FDA0996B20900BA26F7 /* Cocoa.framework in Frameworks */, + AF1FDA67158FF96600C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA68158FF96600C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA69158FF96600C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA6A158FF96600C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8365,9 +8812,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD570010996B43800BA26F7 /* libjwxyz.a in Frameworks */, - AFD570020996B43800BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD570030996B43800BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD8C7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8C8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8C9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8CA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8375,9 +8823,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD570180996B4CC00BA26F7 /* libjwxyz.a in Frameworks */, - AFD570190996B4CC00BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD5701A0996B4CC00BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD8CF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8D0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8D1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8D2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8385,9 +8834,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD5702F0996B56D00BA26F7 /* libjwxyz.a in Frameworks */, - AFD570300996B56D00BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD570310996B56D00BA26F7 /* Cocoa.framework in Frameworks */, + AF1FDA73158FF96600C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA74158FF96600C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA75158FF96600C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA76158FF96600C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8395,9 +8845,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD5704C0996B61600BA26F7 /* libjwxyz.a in Frameworks */, - AFD5704D0996B61600BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD5704E0996B61600BA26F7 /* Cocoa.framework in Frameworks */, + AF1FDA77158FF96600C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA78158FF96600C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA79158FF96600C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA7A158FF96600C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8405,9 +8856,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD570620996B6A300BA26F7 /* libjwxyz.a in Frameworks */, - AFD570630996B6A300BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD570640996B6A300BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD89F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8A0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8A1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8A2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8415,9 +8867,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD570780996B72700BA26F7 /* libjwxyz.a in Frameworks */, - AFD570790996B72700BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD5707A0996B72700BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD8BF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8C0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8C1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8C2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8425,9 +8878,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD5708E0996B80300BA26F7 /* libjwxyz.a in Frameworks */, - AFD5708F0996B80300BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD570900996B80300BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD8DF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8E0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8E1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8E2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8435,9 +8889,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD570A40996B88E00BA26F7 /* libjwxyz.a in Frameworks */, - AFD570A50996B88E00BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD570A60996B88E00BA26F7 /* Cocoa.framework in Frameworks */, + AF1FDA87158FF96600C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA88158FF96600C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA89158FF96600C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA8A158FF96600C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8445,9 +8900,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD570BA0996B93000BA26F7 /* libjwxyz.a in Frameworks */, - AFD570BB0996B93000BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD570BC0996B93000BA26F7 /* Cocoa.framework in Frameworks */, + AF1FDA6F158FF96600C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA70158FF96600C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA71158FF96600C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA72158FF96600C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8455,9 +8911,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD570D20996B9F800BA26F7 /* libjwxyz.a in Frameworks */, - AFD570D30996B9F800BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD570D40996B9F800BA26F7 /* Cocoa.framework in Frameworks */, + AF1FDA37158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA38158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA39158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA3A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8465,9 +8922,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD570F30996BBBF00BA26F7 /* libjwxyz.a in Frameworks */, - AFD570F40996BBBF00BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD570F50996BBBF00BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD8A7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8A8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8A9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8AA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8475,9 +8933,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD5711C0996BE9300BA26F7 /* libjwxyz.a in Frameworks */, - AFD5711D0996BE9300BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD5711E0996BE9300BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD893158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD894158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD895158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD896158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8485,9 +8944,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD571350996BF2E00BA26F7 /* libjwxyz.a in Frameworks */, - AFD571360996BF2E00BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD571370996BF2E00BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD87F158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD880158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD881158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD882158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8495,9 +8955,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD5714C0996C01700BA26F7 /* libjwxyz.a in Frameworks */, - AFD5714D0996C01700BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD5714E0996C01700BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD89B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD89C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD89D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD89E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8505,9 +8966,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD571620996C0CE00BA26F7 /* libjwxyz.a in Frameworks */, - AFD571630996C0CE00BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD571640996C0CE00BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD8DB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8DC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8DD158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8DE158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8515,9 +8977,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD571BE0996D9DC00BA26F7 /* libjwxyz.a in Frameworks */, - AFD571BF0996D9DC00BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD571C00996D9DC00BA26F7 /* Cocoa.framework in Frameworks */, + AF1FDA57158FF96600C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA58158FF96600C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA59158FF96600C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA5A158FF96600C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8525,9 +8988,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD5722B0996E4A300BA26F7 /* libjwxyz.a in Frameworks */, - AFD5722C0996E4A300BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD5722D0996E4A300BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD8D7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8D8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8D9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8DA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8535,9 +8999,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD572760996EE8500BA26F7 /* libjwxyz.a in Frameworks */, - AFD572770996EE8500BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD572780996EE8500BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD8CB158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8CC158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8CD158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8CE158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8545,9 +9010,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD572AE0996F99600BA26F7 /* libjwxyz.a in Frameworks */, - AFD572AF0996F99600BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD572B00996F99600BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD883158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD884158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD885158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD886158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8555,9 +9021,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD572CB0996FC0F00BA26F7 /* libjwxyz.a in Frameworks */, - AFD572CC0996FC0F00BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD572CD0996FC0F00BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD88B158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD88C158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD88D158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD88E158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8565,9 +9032,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD57302099701C000BA26F7 /* libjwxyz.a in Frameworks */, - AFD57303099701C000BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD57304099701C000BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD8B7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8B8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8B9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8BA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8575,9 +9043,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFD573660997411200BA26F7 /* libjwxyz.a in Frameworks */, - AFD573670997411200BA26F7 /* ScreenSaver.framework in Frameworks */, - AFD573680997411200BA26F7 /* Cocoa.framework in Frameworks */, + AF1FD8D3158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD8D4158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD8D5158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD8D6158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8585,12 +9054,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFE2A45F0E2E904600ADB298 /* libjwxyz.a in Frameworks */, - AFE2A4600E2E904600ADB298 /* ScreenSaver.framework in Frameworks */, - AFE2A4610E2E904600ADB298 /* Cocoa.framework in Frameworks */, - AFE2A4620E2E904600ADB298 /* AGL.framework in Frameworks */, - AFE2A4630E2E904600ADB298 /* OpenGL.framework in Frameworks */, - AFE2A4640E2E904600ADB298 /* Carbon.framework in Frameworks */, + AF1FDA03158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FDA04158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FDA05158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FDA06158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8598,12 +9065,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFE30BF10E52B14700CCF4A5 /* libjwxyz.a in Frameworks */, - AFE30BF20E52B14700CCF4A5 /* ScreenSaver.framework in Frameworks */, - AFE30BF30E52B14700CCF4A5 /* Cocoa.framework in Frameworks */, - AFE30BF40E52B14700CCF4A5 /* AGL.framework in Frameworks */, - AFE30BF50E52B14700CCF4A5 /* OpenGL.framework in Frameworks */, - AFE30BF60E52B14700CCF4A5 /* Carbon.framework in Frameworks */, + AF1FD9F7158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9F8158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9F9158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9FA158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8611,12 +9076,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFE6A18C0CDD7B2E002805BF /* libjwxyz.a in Frameworks */, - AFE6A18D0CDD7B2E002805BF /* ScreenSaver.framework in Frameworks */, - AFE6A18E0CDD7B2E002805BF /* Cocoa.framework in Frameworks */, - AFE6A18F0CDD7B2E002805BF /* AGL.framework in Frameworks */, - AFE6A1900CDD7B2E002805BF /* OpenGL.framework in Frameworks */, - AFE6A1910CDD7B2E002805BF /* Carbon.framework in Frameworks */, + AF1FD9BF158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD9C0158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD9C1158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD9C2158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8624,9 +9087,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFE6A4250CDD7FAA002805BF /* libjwxyz.a in Frameworks */, - AFE6A4260CDD7FAA002805BF /* ScreenSaver.framework in Frameworks */, - AFE6A4270CDD7FAA002805BF /* Cocoa.framework in Frameworks */, + AF1FD713158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD714158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD715158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD716158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8634,9 +9098,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFF4633F0C4403E400EE6509 /* libjwxyz.a in Frameworks */, - AFF463400C4403E400EE6509 /* ScreenSaver.framework in Frameworks */, - AFF463410C4403E400EE6509 /* Cocoa.framework in Frameworks */, + AF1FD757158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD758158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD759158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD75A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8644,12 +9109,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AFF463610C440AEF00EE6509 /* libjwxyz.a in Frameworks */, - AFF463620C440AEF00EE6509 /* ScreenSaver.framework in Frameworks */, - AFF463630C440AEF00EE6509 /* Cocoa.framework in Frameworks */, - AFF463640C440AEF00EE6509 /* AGL.framework in Frameworks */, - AFF463650C440AEF00EE6509 /* OpenGL.framework in Frameworks */, - AFF463660C440AEF00EE6509 /* Carbon.framework in Frameworks */, + AF1FD967158FF96500C40F17 /* libjwxyz.a in Frameworks */, + AF1FD968158FF96500C40F17 /* ScreenSaver.framework in Frameworks */, + AF1FD969158FF96500C40F17 /* Cocoa.framework in Frameworks */, + AF1FD96A158FF96500C40F17 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -8659,22 +9122,26 @@ 080E96DDFE201D6D7F000001 /* libjwxyz */ = { isa = PBXGroup; children = ( - AF9D468E09B51567006E59CF /* osxgrabscreen.m */, + AFC7592F158D9A7A00C5458E /* iostextclient.m */, AFE1FD410981E32E00F7970E /* InvertedSlider.h */, AFE1FD420981E32E00F7970E /* InvertedSlider.m */, + AF9D4E2109B63413006E59CF /* jwxyz-timers.m */, AFE1FD430981E32E00F7970E /* jwxyz.h */, AFE1FD440981E32E00F7970E /* jwxyz.m */, + AF6048F8157C07C600CA21E4 /* jwzgles.c */, + AF6048F9157C07C600CA21E4 /* jwzgles.h */, + AF6048FA157C07C600CA21E4 /* jwzglesI.h */, + AF9D468E09B51567006E59CF /* osxgrabscreen.m */, AFE1FD470981E32E00F7970E /* PrefsReader.h */, - AF9D4E2109B63413006E59CF /* jwxyz-timers.m */, AFE1FD480981E32E00F7970E /* PrefsReader.m */, + 32CA4F630368D1EE00C91783 /* xscreensaver_Prefix.pch */, + AFC2577F09888F5A000655EE /* XScreenSaverConfigSheet.h */, + AFC2578009888F5A000655EE /* XScreenSaverConfigSheet.m */, AF4812F70990D9AE00FB32B8 /* XScreenSaverGLView.h */, AF4812F80990D9AE00FB32B8 /* XScreenSaverGLView.m */, AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */, AFC254C409882C97000655EE /* XScreenSaverView.h */, AFC254C509882C97000655EE /* XScreenSaverView.m */, - AFC2577F09888F5A000655EE /* XScreenSaverConfigSheet.h */, - AFC2578009888F5A000655EE /* XScreenSaverConfigSheet.m */, - 32CA4F630368D1EE00C91783 /* xscreensaver_Prefix.pch */, ); name = libjwxyz; sourceTree = ""; @@ -8683,229 +9150,230 @@ isa = PBXGroup; children = ( AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */, - AF97707D0989D2F6001F8B92 /* Attraction.saver */, - AF4810FB09909FBA00FB32B8 /* DangerBall.saver */, - AF976FBC0989CAA2001F8B92 /* Deco.saver */, - AF480D81098EEDDE00FB32B8 /* Drift.saver */, - AF480C58098E301400FB32B8 /* Helix.saver */, - AF9770400989D1E6001F8B92 /* Rorschach.saver */, - AF9771D70989DC4A001F8B92 /* SaverTester.app */, - AF4812640990CE2700FB32B8 /* Gears.saver */, - AF4812C60990D3D900FB32B8 /* Pipes.saver */, - AF0839A209930B6B00277BE9 /* Atlantis.saver */, - AF083A48099311D700277BE9 /* Atunnel.saver */, - AFA5595A099330B000F3E977 /* Cage.saver */, - AFA5597F0993317900F3E977 /* Moebius.saver */, - AFA559A40993322100F3E977 /* Superquadrics.saver */, - AFA559C70993328000F3E977 /* Morph3D.saver */, - AFA559E10993330600F3E977 /* Rubik.saver */, - AFA55A150993340300F3E977 /* Stairs.saver */, - AFA55A32099334A000F3E977 /* Sproingies.saver */, - AFA55A8B0993364300F3E977 /* Lament.saver */, - AFA55AE109933CEF00F3E977 /* Bubble3D.saver */, - AFA55B1E09933E0500F3E977 /* GLPlanet.saver */, - AFA55B3709933E8D00F3E977 /* Pulsar.saver */, - AFA55B8B09933F7200F3E977 /* Sierpinski3D.saver */, - AFA55BA309933FDA00F3E977 /* GFlux.saver */, - AFA55BBD099340CE00F3E977 /* Circuit.saver */, - AFA55BF60993429100F3E977 /* Menger.saver */, - AFA55C200993431300F3E977 /* Engine.saver */, - AFA55C89099349A600F3E977 /* GLSnake.saver */, - AFA55CBB09934BB200F3E977 /* Boxed.saver */, - AFA55CDE09934CE400F3E977 /* GLForestFire.saver */, - AFA55D4E0993565300F3E977 /* SBalls.saver */, - AFA55D740993584B00F3E977 /* Cubenetic.saver */, - AFA55D91099358C400F3E977 /* Spheremonics.saver */, - AFA55DDA09935D7000F3E977 /* Lavalite.saver */, - AFA55E0309935E4900F3E977 /* Queens.saver */, - AFA55E1F09935EDC00F3E977 /* Endgame.saver */, - AFA55E4209935F8E00F3E977 /* GLBlur.saver */, - AFA55E6009935FF900F3E977 /* FlyingToasters.saver */, - AFA55EE3099360E300F3E977 /* BouncingCow.saver */, - AFA55F1E099361B700F3E977 /* JigglyPuff.saver */, - AFA55F3C0993622F00F3E977 /* Klein.saver */, - AFA55F540993629000F3E977 /* Hypertorus.saver */, - AFA55F840993643600F3E977 /* GLMatrix.saver */, - AFA55FE509936BFA00F3E977 /* CubeStorm.saver */, - AFA5600B09936C6D00F3E977 /* GLKnots.saver */, - AFA5602609936CC800F3E977 /* BlockTube.saver */, - AFA5604409936D5100F3E977 /* FlipFlop.saver */, - AFA5605C09936E2100F3E977 /* AntInspect.saver */, - AFA5607409936F3800F3E977 /* AntSpotlight.saver */, - AFA560C00993718D00F3E977 /* Polytopes.saver */, - AFA5610F0993781600F3E977 /* Molecule.saver */, - AFA5616A09937C0D00F3E977 /* BlinkBox.saver */, - AFA5618D09937CF100F3E977 /* Noof.saver */, - AFA561AF09937D7E00F3E977 /* Polyhedra.saver */, - AFA562190993849F00F3E977 /* Providence.saver */, - AFA562310993852500F3E977 /* Pinion.saver */, - AFA562D1099392C600F3E977 /* Boing.saver */, - AFA562EC099393C900F3E977 /* AntMaze.saver */, - AFA563040993943B00F3E977 /* Tangram.saver */, - AFA563260993951000F3E977 /* Crackberg.saver */, - AFA56343099395ED00F3E977 /* GLHanoi.saver */, - AFA56363099396C000F3E977 /* Cube21.saver */, - AFA5638B099397B300F3E977 /* TimeTunnel.saver */, - AFA563B6099398BB00F3E977 /* Juggler3D.saver */, - AFD56E040996A03800BA26F7 /* GLText.saver */, - AFD56EBE0996A72600BA26F7 /* Braid.saver */, - AFD56EEA0996A95700BA26F7 /* Forest.saver */, - AFD56F1B0996AAFA00BA26F7 /* Vines.saver */, - AFD56F330996AB8A00BA26F7 /* Galaxy.saver */, - AFD56F5F0996AEEE00BA26F7 /* Grav.saver */, - AFD56F7B0996B01600BA26F7 /* Hopalong.saver */, - AFD56F9C0996B09400BA26F7 /* Laser.saver */, - AFD56FB30996B10F00BA26F7 /* Lightning.saver */, - AFD56FC90996B18F00BA26F7 /* Lisa.saver */, - AFD56FDF0996B20900BA26F7 /* Lissie.saver */, - AFD570080996B43800BA26F7 /* Penrose.saver */, - AFD5701F0996B4CC00BA26F7 /* Sierpinski.saver */, - AFD570360996B56D00BA26F7 /* Sphere.saver */, - AFD570530996B61600BA26F7 /* Spiral.saver */, - AFD570690996B6A300BA26F7 /* FadePlot.saver */, - AFD5707F0996B72800BA26F7 /* Mountain.saver */, - AFD570950996B80300BA26F7 /* Triangle.saver */, - AFD570AB0996B88E00BA26F7 /* Worm.saver */, - AFD570C10996B93000BA26F7 /* Rotor.saver */, - AFD570D90996B9F800BA26F7 /* Ant.saver */, - AFD570FA0996BBBF00BA26F7 /* Flow.saver */, - AFD571230996BE9300BA26F7 /* Discrete.saver */, - AFD5713C0996BF2E00BA26F7 /* Apollonian.saver */, - AFD571530996C01700BA26F7 /* Euler2D.saver */, - AFD571690996C0CE00BA26F7 /* Thornbird.saver */, - AFD571C50996D9DC00BA26F7 /* Juggle.saver */, - AFD572320996E4A300BA26F7 /* Swirl.saver */, - AFD5727D0996EE8500BA26F7 /* Polyominoes.saver */, - AFD572B50996F99600BA26F7 /* Bouboule.saver */, - AFD572D20996FC0F00BA26F7 /* Crystal.saver */, - AFD57309099701C000BA26F7 /* Julia.saver */, - AFD5736D0997411200BA26F7 /* Strange.saver */, - AF794F74099748450059A8B0 /* Demon.saver */, - AF794F9E09974A320059A8B0 /* Fiberlamp.saver */, - AF794FDD09974FA60059A8B0 /* Loop.saver */, - AF97573D099C317000B05160 /* IMSMap.saver */, - AF975785099C374A00B05160 /* Moire.saver */, - AF9757D2099C3E6300B05160 /* RDbomb.saver */, - AF975818099C41D500B05160 /* XFlame.saver */, - AF975875099C475900B05160 /* ShadeBobs.saver */, - AF975A46099C681F00B05160 /* MetaBalls.saver */, - AF975A7C099C6AB200B05160 /* Eruption.saver */, - AF975A96099C6BC300B05160 /* Barcode.saver */, - AF975AE7099C6EB100B05160 /* Fireworkx.saver */, - AF975B0C099C6FE400B05160 /* MemScroller.saver */, - AF975C22099C8C1500B05160 /* Halo.saver */, - AF975C4E099C8DCF00B05160 /* Greynetic.saver */, - AF975C6E099C8F3F00B05160 /* NoseGuy.saver */, - AF975D63099CA0F000B05160 /* Rocks.saver */, - AF476FC6099D154F001F091E /* Interference.saver */, - AF476FEB099D1686001F091E /* Truchet.saver */, - AF47705C099D4385001F091E /* Deluxe.saver */, - AF477179099D4786001F091E /* Compass.saver */, - AF47718F099D4803001F091E /* Wander.saver */, - AF4771B7099D4949001F091E /* T3D.saver */, - AF4771EB099D4D9A001F091E /* CCurve.saver */, - AF477202099D4E64001F091E /* NerveRot.saver */, - AF477218099D4EE8001F091E /* Whirlygig.saver */, + AF97707D0989D2F6001F8B92 /* XScreenSaver.saver */, + AF4810FB09909FBA00FB32B8 /* XScreenSaver.saver */, + AF976FBC0989CAA2001F8B92 /* XScreenSaver.saver */, + AF480D81098EEDDE00FB32B8 /* XScreenSaver.saver */, + AF480C58098E301400FB32B8 /* XScreenSaver.saver */, + AF9770400989D1E6001F8B92 /* XScreenSaver.saver */, + AF9771D70989DC4A001F8B92 /* XScreenSaver.app */, + AF4812640990CE2700FB32B8 /* XScreenSaver.saver */, + AF4812C60990D3D900FB32B8 /* XScreenSaver.saver */, + AF0839A209930B6B00277BE9 /* XScreenSaver.saver */, + AF083A48099311D700277BE9 /* XScreenSaver.saver */, + AFA5595A099330B000F3E977 /* XScreenSaver.saver */, + AFA5597F0993317900F3E977 /* XScreenSaver.saver */, + AFA559A40993322100F3E977 /* XScreenSaver.saver */, + AFA559C70993328000F3E977 /* XScreenSaver.saver */, + AFA559E10993330600F3E977 /* XScreenSaver.saver */, + AFA55A150993340300F3E977 /* XScreenSaver.saver */, + AFA55A32099334A000F3E977 /* XScreenSaver.saver */, + AFA55A8B0993364300F3E977 /* XScreenSaver.saver */, + AFA55AE109933CEF00F3E977 /* XScreenSaver.saver */, + AFA55B1E09933E0500F3E977 /* XScreenSaver.saver */, + AFA55B3709933E8D00F3E977 /* XScreenSaver.saver */, + AFA55B8B09933F7200F3E977 /* XScreenSaver.saver */, + AFA55BA309933FDA00F3E977 /* XScreenSaver.saver */, + AFA55BBD099340CE00F3E977 /* XScreenSaver.saver */, + AFA55BF60993429100F3E977 /* XScreenSaver.saver */, + AFA55C200993431300F3E977 /* XScreenSaver.saver */, + AFA55C89099349A600F3E977 /* XScreenSaver.saver */, + AFA55CBB09934BB200F3E977 /* XScreenSaver.saver */, + AFA55CDE09934CE400F3E977 /* XScreenSaver.saver */, + AFA55D4E0993565300F3E977 /* XScreenSaver.saver */, + AFA55D740993584B00F3E977 /* XScreenSaver.saver */, + AFA55D91099358C400F3E977 /* XScreenSaver.saver */, + AFA55DDA09935D7000F3E977 /* XScreenSaver.saver */, + AFA55E0309935E4900F3E977 /* XScreenSaver.saver */, + AFA55E1F09935EDC00F3E977 /* XScreenSaver.saver */, + AFA55E4209935F8E00F3E977 /* XScreenSaver.saver */, + AFA55E6009935FF900F3E977 /* XScreenSaver.saver */, + AFA55EE3099360E300F3E977 /* XScreenSaver.saver */, + AFA55F1E099361B700F3E977 /* XScreenSaver.saver */, + AFA55F3C0993622F00F3E977 /* XScreenSaver.saver */, + AFA55F540993629000F3E977 /* XScreenSaver.saver */, + AFA55F840993643600F3E977 /* XScreenSaver.saver */, + AFA55FE509936BFA00F3E977 /* XScreenSaver.saver */, + AFA5600B09936C6D00F3E977 /* XScreenSaver.saver */, + AFA5602609936CC800F3E977 /* XScreenSaver.saver */, + AFA5604409936D5100F3E977 /* XScreenSaver.saver */, + AFA5605C09936E2100F3E977 /* XScreenSaver.saver */, + AFA5607409936F3800F3E977 /* XScreenSaver.saver */, + AFA560C00993718D00F3E977 /* XScreenSaver.saver */, + AFA5610F0993781600F3E977 /* XScreenSaver.saver */, + AFA5616A09937C0D00F3E977 /* XScreenSaver.saver */, + AFA5618D09937CF100F3E977 /* XScreenSaver.saver */, + AFA561AF09937D7E00F3E977 /* XScreenSaver.saver */, + AFA562190993849F00F3E977 /* XScreenSaver.saver */, + AFA562310993852500F3E977 /* XScreenSaver.saver */, + AFA562D1099392C600F3E977 /* XScreenSaver.saver */, + AFA562EC099393C900F3E977 /* XScreenSaver.saver */, + AFA563040993943B00F3E977 /* XScreenSaver.saver */, + AFA563260993951000F3E977 /* XScreenSaver.saver */, + AFA56343099395ED00F3E977 /* XScreenSaver.saver */, + AFA56363099396C000F3E977 /* XScreenSaver.saver */, + AFA5638B099397B300F3E977 /* XScreenSaver.saver */, + AFA563B6099398BB00F3E977 /* XScreenSaver.saver */, + AFD56E040996A03800BA26F7 /* XScreenSaver.saver */, + AFD56EBE0996A72600BA26F7 /* XScreenSaver.saver */, + AFD56EEA0996A95700BA26F7 /* XScreenSaver.saver */, + AFD56F1B0996AAFA00BA26F7 /* XScreenSaver.saver */, + AFD56F330996AB8A00BA26F7 /* XScreenSaver.saver */, + AFD56F5F0996AEEE00BA26F7 /* XScreenSaver.saver */, + AFD56F7B0996B01600BA26F7 /* XScreenSaver.saver */, + AFD56F9C0996B09400BA26F7 /* XScreenSaver.saver */, + AFD56FB30996B10F00BA26F7 /* XScreenSaver.saver */, + AFD56FC90996B18F00BA26F7 /* XScreenSaver.saver */, + AFD56FDF0996B20900BA26F7 /* XScreenSaver.saver */, + AFD570080996B43800BA26F7 /* XScreenSaver.saver */, + AFD5701F0996B4CC00BA26F7 /* XScreenSaver.saver */, + AFD570360996B56D00BA26F7 /* XScreenSaver.saver */, + AFD570530996B61600BA26F7 /* XScreenSaver.saver */, + AFD570690996B6A300BA26F7 /* XScreenSaver.saver */, + AFD5707F0996B72800BA26F7 /* XScreenSaver.saver */, + AFD570950996B80300BA26F7 /* XScreenSaver.saver */, + AFD570AB0996B88E00BA26F7 /* XScreenSaver.saver */, + AFD570C10996B93000BA26F7 /* XScreenSaver.saver */, + AFD570D90996B9F800BA26F7 /* XScreenSaver.saver */, + AFD570FA0996BBBF00BA26F7 /* XScreenSaver.saver */, + AFD571230996BE9300BA26F7 /* XScreenSaver.saver */, + AFD5713C0996BF2E00BA26F7 /* XScreenSaver.saver */, + AFD571530996C01700BA26F7 /* XScreenSaver.saver */, + AFD571690996C0CE00BA26F7 /* XScreenSaver.saver */, + AFD571C50996D9DC00BA26F7 /* XScreenSaver.saver */, + AFD572320996E4A300BA26F7 /* XScreenSaver.saver */, + AFD5727D0996EE8500BA26F7 /* XScreenSaver.saver */, + AFD572B50996F99600BA26F7 /* XScreenSaver.saver */, + AFD572D20996FC0F00BA26F7 /* XScreenSaver.saver */, + AFD57309099701C000BA26F7 /* XScreenSaver.saver */, + AFD5736D0997411200BA26F7 /* XScreenSaver.saver */, + AF794F74099748450059A8B0 /* XScreenSaver.saver */, + AF794F9E09974A320059A8B0 /* XScreenSaver.saver */, + AF794FDD09974FA60059A8B0 /* XScreenSaver.saver */, + AF97573D099C317000B05160 /* XScreenSaver.saver */, + AF975785099C374A00B05160 /* XScreenSaver.saver */, + AF9757D2099C3E6300B05160 /* XScreenSaver.saver */, + AF975818099C41D500B05160 /* XScreenSaver.saver */, + AF975875099C475900B05160 /* XScreenSaver.saver */, + AF975A46099C681F00B05160 /* XScreenSaver.saver */, + AF975A7C099C6AB200B05160 /* XScreenSaver.saver */, + AF975A96099C6BC300B05160 /* XScreenSaver.saver */, + AF975AE7099C6EB100B05160 /* XScreenSaver.saver */, + AF975B0C099C6FE400B05160 /* XScreenSaver.saver */, + AF975C22099C8C1500B05160 /* XScreenSaver.saver */, + AF975C4E099C8DCF00B05160 /* XScreenSaver.saver */, + AF975C6E099C8F3F00B05160 /* XScreenSaver.saver */, + AF975D63099CA0F000B05160 /* XScreenSaver.saver */, + AF476FC6099D154F001F091E /* XScreenSaver.saver */, + AF476FEB099D1686001F091E /* XScreenSaver.saver */, + AF47705C099D4385001F091E /* XScreenSaver.saver */, + AF477179099D4786001F091E /* XScreenSaver.saver */, + AF47718F099D4803001F091E /* XScreenSaver.saver */, + AF4771B7099D4949001F091E /* XScreenSaver.saver */, + AF4771EB099D4D9A001F091E /* XScreenSaver.saver */, + AF477202099D4E64001F091E /* XScreenSaver.saver */, + AF477218099D4EE8001F091E /* XScreenSaver.saver */, AF47722E099D4F67001F091E /* Anemone.saver */, - AF477263099D5717001F091E /* Halftone.saver */, - AF47727B099D57B9001F091E /* PopSquares.saver */, - AF477293099D5926001F091E /* Piecewise.saver */, - AF477392099D65A1001F091E /* Wormhole.saver */, - AF4773AA099D6648001F091E /* FuzzyFlakes.saver */, - AF4773D1099D67B9001F091E /* Anemotaxis.saver */, - AF477412099D69E7001F091E /* Intermomentary.saver */, - AF477437099D7C70001F091E /* IFS.saver */, - AF477452099D7D33001F091E /* XMatrix.saver */, - AF477493099D89E4001F091E /* Flame.saver */, - AF4774A9099D8A74001F091E /* Kaleidescope.saver */, - AF4774C4099D8B5F001F091E /* LMorph.saver */, - AF4774DE099D8BFF001F091E /* Maze.saver */, - AF47756D099D9A1A001F091E /* Pedal.saver */, - AF477593099D9C28001F091E /* Pyro.saver */, - AF4775AF099D9CF7001F091E /* Starfish.saver */, - AF4775E8099D9F69001F091E /* Coral.saver */, - AF477602099DA030001F091E /* Epicycle.saver */, - AF477623099DA26C001F091E /* Kumppa.saver */, - AF477654099DA6D0001F091E /* Squiral.saver */, - AF47766A099DA78F001F091E /* Critical.saver */, - AF477680099DA849001F091E /* Petri.saver */, - AF47769F099DAA6F001F091E /* Blaster.saver */, - AF4776BA099DABDD001F091E /* XSpirograph.saver */, - AF4776D0099DAC8A001F091E /* XRaySwarm.saver */, - AF4776EB099DADDF001F091E /* WhirlWindWarp.saver */, - AF477701099DAE7A001F091E /* Vermiculate.saver */, - AF47771D099DAF9F001F091E /* CloudLife.saver */, - AF477733099DB044001F091E /* Substrate.saver */, - AF477762099DB61E001F091E /* Interaggregate.saver */, - AF477784099DB965001F091E /* Celtic.saver */, - AF4777A0099DBA90001F091E /* FluidBalls.saver */, - AF4777E1099DC183001F091E /* BoxFit.saver */, - AF4778BB099DDB79001F091E /* Penetrate.saver */, - AF4778D7099DDCAE001F091E /* XJack.saver */, - AF4778F8099DDDC8001F091E /* Cynosure.saver */, - AF477919099DE379001F091E /* Flag.saver */, - AF47793A099DE4C7001F091E /* Slip.saver */, - AF642405099FF9C2000F4CD4 /* Extrusion.saver */, - AF6425DC09A18856000F4CD4 /* HyperCube.saver */, - AF6425FC09A189EC000F4CD4 /* Qix.saver */, - AF64261F09A18D6C000F4CD4 /* HyperBall.saver */, - AF64263C09A18F54000F4CD4 /* Moire2.saver */, - AF64265F09A19229000F4CD4 /* Munch.saver */, - AF64268B09A194B0000F4CD4 /* Goop.saver */, - AF64278109A1D37A000F4CD4 /* SpeedMine.saver */, - AF6427B809A2DE36000F4CD4 /* Bubbles.saver */, - AF9D467609B5109C006E59CF /* DecayScreen.saver */, - AF9D475409B5300A006E59CF /* SlideScreen.saver */, - AF9D476F09B53166006E59CF /* Zoom.saver */, - AF9D48EB09B53322006E59CF /* Bumps.saver */, - AF9D490409B535DA006E59CF /* Distort.saver */, - AF9D493B09B53CBA006E59CF /* Ripples.saver */, - AF9D496409B53FC9006E59CF /* RotZoomer.saver */, - AF9D497C09B5411D006E59CF /* Twang.saver */, - AF9D49A709B544C3006E59CF /* Spotlight.saver */, - AF9D4C7909B59F27006E59CF /* XLyap.saver */, - AF9D4CF709B5AA8E006E59CF /* Pong.saver */, - AF9D4D8F09B5B2DC006E59CF /* XAnalogTV.saver */, - AF9D4DC009B5B71E006E59CF /* BSOD.saver */, + AF477263099D5717001F091E /* XScreenSaver.saver */, + AF47727B099D57B9001F091E /* XScreenSaver.saver */, + AF477293099D5926001F091E /* XScreenSaver.saver */, + AF477392099D65A1001F091E /* XScreenSaver.saver */, + AF4773AA099D6648001F091E /* XScreenSaver.saver */, + AF4773D1099D67B9001F091E /* XScreenSaver.saver */, + AF477412099D69E7001F091E /* XScreenSaver.saver */, + AF477437099D7C70001F091E /* XScreenSaver.saver */, + AF477452099D7D33001F091E /* XScreenSaver.saver */, + AF477493099D89E4001F091E /* XScreenSaver.saver */, + AF4774A9099D8A74001F091E /* XScreenSaver.saver */, + AF4774C4099D8B5F001F091E /* XScreenSaver.saver */, + AF4774DE099D8BFF001F091E /* XScreenSaver.saver */, + AF47756D099D9A1A001F091E /* XScreenSaver.saver */, + AF477593099D9C28001F091E /* XScreenSaver.saver */, + AF4775AF099D9CF7001F091E /* XScreenSaver.saver */, + AF4775E8099D9F69001F091E /* XScreenSaver.saver */, + AF477602099DA030001F091E /* XScreenSaver.saver */, + AF477623099DA26C001F091E /* XScreenSaver.saver */, + AF477654099DA6D0001F091E /* XScreenSaver.saver */, + AF47766A099DA78F001F091E /* XScreenSaver.saver */, + AF477680099DA849001F091E /* XScreenSaver.saver */, + AF47769F099DAA6F001F091E /* XScreenSaver.saver */, + AF4776BA099DABDD001F091E /* XScreenSaver.saver */, + AF4776D0099DAC8A001F091E /* XScreenSaver.saver */, + AF4776EB099DADDF001F091E /* XScreenSaver.saver */, + AF477701099DAE7A001F091E /* XScreenSaver.saver */, + AF47771D099DAF9F001F091E /* XScreenSaver.saver */, + AF477733099DB044001F091E /* XScreenSaver.saver */, + AF477762099DB61E001F091E /* XScreenSaver.saver */, + AF477784099DB965001F091E /* XScreenSaver.saver */, + AF4777A0099DBA90001F091E /* XScreenSaver.saver */, + AF4777E1099DC183001F091E /* XScreenSaver.saver */, + AF4778BB099DDB79001F091E /* XScreenSaver.saver */, + AF4778D7099DDCAE001F091E /* XScreenSaver.saver */, + AF4778F8099DDDC8001F091E /* XScreenSaver.saver */, + AF477919099DE379001F091E /* XScreenSaver.saver */, + AF47793A099DE4C7001F091E /* XScreenSaver.saver */, + AF642405099FF9C2000F4CD4 /* XScreenSaver.saver */, + AF6425DC09A18856000F4CD4 /* XScreenSaver.saver */, + AF6425FC09A189EC000F4CD4 /* XScreenSaver.saver */, + AF64261F09A18D6C000F4CD4 /* XScreenSaver.saver */, + AF64263C09A18F54000F4CD4 /* XScreenSaver.saver */, + AF64265F09A19229000F4CD4 /* XScreenSaver.saver */, + AF64268B09A194B0000F4CD4 /* XScreenSaver.saver */, + AF64278109A1D37A000F4CD4 /* XScreenSaver.saver */, + AF6427B809A2DE36000F4CD4 /* XScreenSaver.saver */, + AF9D467609B5109C006E59CF /* XScreenSaver.saver */, + AF9D475409B5300A006E59CF /* XScreenSaver.saver */, + AF9D476F09B53166006E59CF /* XScreenSaver.saver */, + AF9D48EB09B53322006E59CF /* XScreenSaver.saver */, + AF9D490409B535DA006E59CF /* XScreenSaver.saver */, + AF9D493B09B53CBA006E59CF /* XScreenSaver.saver */, + AF9D496409B53FC9006E59CF /* XScreenSaver.saver */, + AF9D497C09B5411D006E59CF /* XScreenSaver.saver */, + AF9D49A709B544C3006E59CF /* XScreenSaver.saver */, + AF9D4C7909B59F27006E59CF /* XScreenSaver.saver */, + AF9D4CF709B5AA8E006E59CF /* XScreenSaver.saver */, + AF9D4D8F09B5B2DC006E59CF /* XScreenSaver.saver */, + AF9D4DC009B5B71E006E59CF /* XScreenSaver.saver */, AF9D4DFE09B5BB19006E59CF /* Apple2.saver */, AF7776F609B63ABF00EA3033 /* Phosphor.saver */, - AF77772A09B6416100EA3033 /* Pacman.saver */, - AF77775109B6446500EA3033 /* FlipScreen3D.saver */, - AF7777A209B64A5200EA3033 /* MirrorBlob.saver */, - AF7777E409B64C6B00EA3033 /* GLSlideshow.saver */, - AF7777FE09B64E3100EA3033 /* FlipText.saver */, - AF77785809B6528100EA3033 /* Carousel.saver */, - AF77787409B6536000EA3033 /* DNAlogo.saver */, - AF7778B509B659C800EA3033 /* BlitSpin.saver */, - AF34085409B80AAF00F2CEC1 /* StarWars.saver */, - AF34085509B80AB000F2CEC1 /* StonerView.saver */, - AF34085609B80AB000F2CEC1 /* Gleidescope.saver */, - AF34085709B80AB000F2CEC1 /* FontGlide.saver */, - AF998EEE0A083DB30051049D /* TopBlock.saver */, - AF48DF030A0C25E000F94CF9 /* GLSchool.saver */, - AFA339400B058505002B0E7D /* WebCollage.saver */, + AF77772A09B6416100EA3033 /* XScreenSaver.saver */, + AF77775109B6446500EA3033 /* XScreenSaver.saver */, + AF7777A209B64A5200EA3033 /* XScreenSaver.saver */, + AF7777E409B64C6B00EA3033 /* XScreenSaver.saver */, + AF7777FE09B64E3100EA3033 /* XScreenSaver.saver */, + AF77785809B6528100EA3033 /* XScreenSaver.saver */, + AF77787409B6536000EA3033 /* XScreenSaver.saver */, + AF7778B509B659C800EA3033 /* XScreenSaver.saver */, + AF34085409B80AAF00F2CEC1 /* XScreenSaver.saver */, + AF34085509B80AB000F2CEC1 /* XScreenSaver.saver */, + AF34085609B80AB000F2CEC1 /* XScreenSaver.saver */, + AF34085709B80AB000F2CEC1 /* XScreenSaver.saver */, + AF998EEE0A083DB30051049D /* XScreenSaver.saver */, + AF48DF030A0C25E000F94CF9 /* XScreenSaver.saver */, + AFA339400B058505002B0E7D /* XScreenSaver.saver */, AFA33BC70B058740002B0E7D /* webcollage-helper */, - AFF463470C4403E400EE6509 /* CWaves.saver */, - AFF4636C0C440AEF00EE6509 /* GLCells.saver */, - AF0DC7BD0C4C73F600D76972 /* m6502.saver */, - AF0DCA560C4CBB0D00D76972 /* Voronoi.saver */, - AFE6A1970CDD7B2E002805BF /* MoebiusGears.saver */, - AFE6A42D0CDD7FAA002805BF /* Abstractile.saver */, - AF4FD6FA0CE7A486005EE58E /* Lockward.saver */, - AF4FF4CE0D52CBDE00666F98 /* CubicGrid.saver */, - AF3C71590D624BF50030CC0D /* Hypnowheel.saver */, - AF1A17730D6D6EE3008AF328 /* LCDscrub.saver */, - AFE2A46A0E2E904600ADB298 /* SkyTentacles.saver */, - AFE30BFC0E52B14700CCF4A5 /* Sonar.saver */, - AF35E8A00E63823600691F2F /* Jigsaw.saver */, - AFD51B300F063B4A00471C02 /* Photopile.saver */, - AF32D9F40F3AD0B40080F535 /* RubikBlocks.saver */, - AF4A345D102A593600A81B2A /* Surfaces.saver */, + AFF463470C4403E400EE6509 /* XScreenSaver.saver */, + AFF4636C0C440AEF00EE6509 /* XScreenSaver.saver */, + AF0DC7BD0C4C73F600D76972 /* XScreenSaver.saver */, + AF0DCA560C4CBB0D00D76972 /* XScreenSaver.saver */, + AFE6A1970CDD7B2E002805BF /* XScreenSaver.saver */, + AFE6A42D0CDD7FAA002805BF /* XScreenSaver.saver */, + AF4FD6FA0CE7A486005EE58E /* XScreenSaver.saver */, + AF4FF4CE0D52CBDE00666F98 /* XScreenSaver.saver */, + AF3C71590D624BF50030CC0D /* XScreenSaver.saver */, + AF1A17730D6D6EE3008AF328 /* XScreenSaver.saver */, + AFE2A46A0E2E904600ADB298 /* XScreenSaver.saver */, + AFE30BFC0E52B14700CCF4A5 /* XScreenSaver.saver */, + AF35E8A00E63823600691F2F /* XScreenSaver.saver */, + AFD51B300F063B4A00471C02 /* XScreenSaver.saver */, + AF32D9F40F3AD0B40080F535 /* XScreenSaver.saver */, + AF4A345D102A593600A81B2A /* XScreenSaver.saver */, AF2D4D8F13E902F5002AA818 /* Phosphor.app */, AF2D4F7E13E91093002AA818 /* Apple2.app */, - AF78D189142DD8F3002AAF77 /* Hilbert.saver */, - AF3581D51431D47B00E09C51 /* CompanionCube.saver */, - AF358216143330F900E09C51 /* TronBit.saver */, + AF78D189142DD8F3002AAF77 /* XScreenSaver.saver */, + AF3581D51431D47B00E09C51 /* XScreenSaver.saver */, + AF358216143330F900E09C51 /* XScreenSaver.saver */, + AF91898F158FC00A002B5D1E /* XScreenSaver.app */, ); name = Products; sourceTree = ""; @@ -8931,8 +9399,15 @@ 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, AF14EE300E3CEF1A004CBBD2 /* XScreenSaver.icns */, AF9772E10989DFC6001F8B92 /* SaverRunner.nib */, + AF56019B157DAA3D00DB2055 /* iSaverRunner.xib */, AF2D522513E954A0002AA818 /* SaverRunner.icns */, + AF01295A157D5C2C00C396E1 /* iSaverRunner29.png */, + AF01295B157D5C2C00C396E1 /* iSaverRunner50.png */, + AF01295C157D5C2C00C396E1 /* iSaverRunner57.png */, + AF01295D157D5C2C00C396E1 /* iSaverRunner72.png */, + AF01295E157D5C2C00C396E1 /* iSaverRunner114.png */, AF9771D90989DC4A001F8B92 /* SaverRunner.plist */, + AF01294C157D31DD00C396E1 /* iSaverRunner.plist */, 8D1107310486CEB800E47090 /* XScreenSaver.plist */, AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */, AF0FAF0B09CA6FF900EE1051 /* xscreensaver-text */, @@ -8943,6 +9418,11 @@ 29B97323FDCFA39411CA2CEA /* Frameworks */ = { isa = PBXGroup; children = ( + AFEB9C3E1590056A003974F3 /* CoreGraphics.framework */, + AFEB9C3F1590056A003974F3 /* QuartzCore.framework */, + AFEB9C3C15900558003974F3 /* Foundation.framework */, + AFEB9C3A1590054B003974F3 /* OpenGLES.framework */, + AFEB9C3815900514003974F3 /* UIKit.framework */, AF0F46DC104E1809000A929C /* AppKit.framework */, AF976ED30989BF59001F8B92 /* ScreenSaver.framework */, 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, @@ -8957,9 +9437,10 @@ AF480AB9098C66E200FB32B8 /* SaverRunner */ = { isa = PBXGroup; children = ( + 29B97316FDCFA39411CA2CEA /* main.m */, + AF84AF1E15829AF000607E4C /* SaverListController.m */, AFE1FD3F0981E32E00F7970E /* SaverRunner.h */, AFE1FD400981E32E00F7970E /* SaverRunner.m */, - 29B97316FDCFA39411CA2CEA /* main.m */, ); name = SaverRunner; sourceTree = ""; @@ -8967,121 +9448,116 @@ AF480DC7098F4EB500FB32B8 /* XScreenSaver */ = { isa = PBXGroup; children = ( - AF3582171433314C00E09C51 /* tronbit_idle1.c */, - AF3582181433314C00E09C51 /* tronbit_idle2.c */, - AF3582191433314C00E09C51 /* tronbit_no.c */, - AF35821A1433314C00E09C51 /* tronbit_yes.c */, - AF35821B1433314C00E09C51 /* tronbit.c */, - AF3581D61431D5FC00E09C51 /* companion_disc.c */, - AF3581D71431D5FC00E09C51 /* companion_heart.c */, - AF3581D81431D5FC00E09C51 /* companion_quad.c */, - AF3581D91431D5FC00E09C51 /* companion.c */, AFE6A4340CDD800F002805BF /* abstractile.c */, - AF9D475809B53091006E59CF /* slidescreen.c */, - AF9D467809B5110B006E59CF /* decayscreen.c */, - AF9D493E09B53D55006E59CF /* ripples.c */, + AF9D4CFA09B5AC94006E59CF /* analogtv.c */, + AF9D4CFB09B5AC94006E59CF /* analogtv.h */, + AF477231099D4FD5001F091E /* anemone.c */, + AF4773D4099D6817001F091E /* anemotaxis.c */, + AF9D4E0509B5BC9D006E59CF /* apple2-main.c */, AF9D4DD309B5B990006E59CF /* apple2.c */, - AF9D496709B540A4006E59CF /* rotzoomer.c */, + AF0DCA320C4C74A200D76972 /* asm6502.c */, + AF0DCA330C4C74A200D76972 /* asm6502.h */, + AF976DFA09896BEB001F8B92 /* attraction.c */, + AF975A99099C6C3500B05160 /* barcode.c */, + AF4776A2099DAADE001F091E /* blaster.c */, + AF7778BA09B65A8A00EA3033 /* blitspin.c */, + AF4778A3099DDA91001F091E /* boxfit.c */, + AF9D4DC309B5B87D006E59CF /* bsod.c */, AF6427BB09A2DF47000F4CD4 /* bubbles-default.c */, AF6427BC09A2DF47000F4CD4 /* bubbles.c */, AF6427BD09A2DF47000F4CD4 /* bubbles.h */, - AF9D490709B536F7006E59CF /* distort.c */, - AF64268E09A19542000F4CD4 /* goop.c */, - AF64267809A193A4000F4CD4 /* mismunch.c */, - AF9D48D409B53229006E59CF /* zoom.c */, - AF64266209A192C5000F4CD4 /* munch.c */, - AF64263F09A18FEB000F4CD4 /* moire2.c */, - AF64262209A18E1E000F4CD4 /* hyperball.c */, - AF6425FF09A18A94000F4CD4 /* qix.c */, - AF6425DF09A188FB000F4CD4 /* hypercube.c */, - AF4778FB099DDE79001F091E /* cynosure.c */, - AF4778DA099DDD2B001F091E /* xjack.c */, - AF4778BE099DDC32001F091E /* penetrate.c */, - AF9D497F09B541E5006E59CF /* twang.c */, - AF9D4C7C09B5A044006E59CF /* xlyap.c */, - AF4778A3099DDA91001F091E /* boxfit.c */, - AF4777A4099DBB11001F091E /* fluidballs.c */, + AF9D48EE09B533AE006E59CF /* bumps.c */, + AF4771EF099D4DFE001F091E /* ccurve.c */, AF477787099DBA29001F091E /* celtic.c */, - AF477769099DB710001F091E /* interaggregate.c */, - AF477736099DB104001F091E /* substrate.c */, AF477720099DB01C001F091E /* cloudlife.c */, - AF477704099DAF3F001F091E /* vermiculate.c */, - AF4776EE099DAE58001F091E /* whirlwindwarp.c */, - AF4776D3099DACEB001F091E /* xrayswarm.c */, - AF4776BD099DAC46001F091E /* xspirograph.c */, - AF4776A2099DAADE001F091E /* blaster.c */, - AF7778BA09B65A8A00EA3033 /* blitspin.c */, - AF477683099DA8C7001F091E /* petri.c */, - AF9D4CFA09B5AC94006E59CF /* analogtv.c */, - AF9D4CFB09B5AC94006E59CF /* analogtv.h */, - AF9D4CFC09B5AC94006E59CF /* pong.c */, - AF0DCA320C4C74A200D76972 /* asm6502.c */, - AF0DCA330C4C74A200D76972 /* asm6502.h */, - AF0DCA340C4C74A200D76972 /* m6502.c */, + AF47717C099D47D3001F091E /* compass.c */, + AF4775EF099D9FFF001F091E /* coral.c */, AF47766D099DA80D001F091E /* critical.c */, - AF477657099DA75D001F091E /* squiral.c */, - AF47762A099DA2E9001F091E /* kumppa.c */, + AFF463490C44044E00EE6509 /* cwaves.c */, + AF4778FB099DDE79001F091E /* cynosure.c */, + AF9D467809B5110B006E59CF /* decayscreen.c */, + AFC25B5E0988BA63000655EE /* deco.c */, + AF477145099D43E2001F091E /* deluxe.c */, + AF9D490709B536F7006E59CF /* distort.c */, AF477605099DA097001F091E /* epicycle.c */, - AF4775EF099D9FFF001F091E /* coral.c */, - AF4775B3099D9D67001F091E /* starfish.c */, - AF47759C099D9CA3001F091E /* pyro.c */, - AF477570099D9A8A001F091E /* pedal.c */, - AF9D49AA09B54596006E59CF /* spotlight.c */, - AF4774E1099D8C8B001F091E /* maze.c */, - AF4774CB099D8BC2001F091E /* lmorph.c */, - AF4774AC099D8B08001F091E /* kaleidescope.c */, + AF975A83099C6B4900B05160 /* eruption.c */, + AF975AEE099C6F1700B05160 /* fireworkx.c */, AF477496099D8A53001F091E /* flame.c */, - AF477455099D7D8A001F091E /* xmatrix.c */, - AF47743A099D7CEA001F091E /* ifs.c */, - AF47741C099D6A6C001F091E /* intermomentary.c */, - AF4773D4099D6817001F091E /* anemotaxis.c */, + AF4777A4099DBB11001F091E /* fluidballs.c */, + AF77789209B656C300EA3033 /* fontglide.c */, + AFBF893C0E41D930006A2D66 /* fps.c */, + AFBF893D0E41D930006A2D66 /* fps.h */, + AFBF89B10E424036006A2D66 /* fpsI.h */, AF4773B4099D6778001F091E /* fuzzyflakes.c */, - AF477395099D65FE001F091E /* wormhole.c */, - AF477297099D5980001F091E /* piecewise.c */, - AF9D4D9209B5B444006E59CF /* xanalogtv.c */, - AF47727E099D5808001F091E /* popsquares.c */, + AF64268E09A19542000F4CD4 /* goop.c */, + AF480C21098E28EF00FB32B8 /* greynetic.c */, AF477266099D5768001F091E /* halftone.c */, - AF477231099D4FD5001F091E /* anemone.c */, - AF47721B099D4F47001F091E /* whirlygig.c */, - AF477205099D4EB6001F091E /* nerverot.c */, - AF4771EF099D4DFE001F091E /* ccurve.c */, - AFF463490C44044E00EE6509 /* cwaves.c */, - AF4771BA099D4997001F091E /* t3d.c */, - AF477192099D4864001F091E /* wander.c */, - AF1A177E0D6D6F3E008AF328 /* lcdscrub.c */, - AF47717C099D47D3001F091E /* compass.c */, - AF477145099D43E2001F091E /* deluxe.c */, - AF476FF0099D1713001F091E /* truchet.c */, + AF480C29098E295D00FB32B8 /* halo.c */, + AF480C2F098E2A6700FB32B8 /* helix.c */, + AF64262209A18E1E000F4CD4 /* hyperball.c */, + AF6425DF09A188FB000F4CD4 /* hypercube.c */, + AF47743A099D7CEA001F091E /* ifs.c */, + AF975740099C31DD00B05160 /* imsmap.c */, + AF477769099DB710001F091E /* interaggregate.c */, AF476FD0099D15AA001F091E /* interference.c */, - AF975D66099CA16A00B05160 /* rocks.c */, - AF9D48EE09B533AE006E59CF /* bumps.c */, - AF975C76099C8FC700B05160 /* noseguy.c */, + AF47741C099D6A6C001F091E /* intermomentary.c */, + AF4774AC099D8B08001F091E /* kaleidescope.c */, + AF47762A099DA2E9001F091E /* kumppa.c */, + AF1A177E0D6D6F3E008AF328 /* lcdscrub.c */, + AF4774CB099D8BC2001F091E /* lmorph.c */, + AF0DCA340C4C74A200D76972 /* m6502.c */, + AF4774E1099D8C8B001F091E /* maze.c */, AF975B14099C709E00B05160 /* memscroller.c */, - AF64278709A1D433000F4CD4 /* speedmine.c */, - AF9D4DC309B5B87D006E59CF /* bsod.c */, - AF77770309B63B5F00EA3033 /* phosphor.c */, - AF9D4E0509B5BC9D006E59CF /* apple2-main.c */, - AFBF89B10E424036006A2D66 /* fpsI.h */, - AF975AEE099C6F1700B05160 /* fireworkx.c */, - AF975A99099C6C3500B05160 /* barcode.c */, - AF975A83099C6B4900B05160 /* eruption.c */, AF975A49099C689F00B05160 /* metaballs.c */, - AF97587A099C492000B05160 /* shadebobs.c */, - AF97582F099C427500B05160 /* xflame.c */, - AF9757D5099C3EB800B05160 /* rd-bomb.c */, AF975789099C37A500B05160 /* moire.c */, - AF975740099C31DD00B05160 /* imsmap.c */, - AF976DFA09896BEB001F8B92 /* attraction.c */, - AFC25B5E0988BA63000655EE /* deco.c */, - AF480C21098E28EF00FB32B8 /* greynetic.c */, - AF480C2F098E2A6700FB32B8 /* helix.c */, - AF480C29098E295D00FB32B8 /* halo.c */, + AF64263F09A18FEB000F4CD4 /* moire2.c */, + AF64266209A192C5000F4CD4 /* munch.c */, + AF477205099D4EB6001F091E /* nerverot.c */, + AF975C76099C8FC700B05160 /* noseguy.c */, + AF477570099D9A8A001F091E /* pedal.c */, + AF4778BE099DDC32001F091E /* penetrate.c */, + AF477683099DA8C7001F091E /* petri.c */, + AF77770309B63B5F00EA3033 /* phosphor.c */, + AF477297099D5980001F091E /* piecewise.c */, + AF9D4CFC09B5AC94006E59CF /* pong.c */, + AF47727E099D5808001F091E /* popsquares.c */, + AF47759C099D9CA3001F091E /* pyro.c */, + AF6425FF09A18A94000F4CD4 /* qix.c */, + AF9757D5099C3EB800B05160 /* rd-bomb.c */, + AF9D493E09B53D55006E59CF /* ripples.c */, + AF975D66099CA16A00B05160 /* rocks.c */, AFE1FD620981E40800F7970E /* rorschach.c */, - AF77789209B656C300EA3033 /* fontglide.c */, - AFBF893C0E41D930006A2D66 /* fps.c */, - AFBF893D0E41D930006A2D66 /* fps.h */, + AF9D496709B540A4006E59CF /* rotzoomer.c */, + AF97587A099C492000B05160 /* shadebobs.c */, + AF9D475809B53091006E59CF /* slidescreen.c */, + AF64278709A1D433000F4CD4 /* speedmine.c */, + AF9D49AA09B54596006E59CF /* spotlight.c */, + AF477657099DA75D001F091E /* squiral.c */, + AF4775B3099D9D67001F091E /* starfish.c */, + AF477736099DB104001F091E /* substrate.c */, + AF4771BA099D4997001F091E /* t3d.c */, + AF35821B1433314C00E09C51 /* tronbit.c */, + AF3582171433314C00E09C51 /* tronbit_idle1.c */, + AF3582181433314C00E09C51 /* tronbit_idle2.c */, + AF3582191433314C00E09C51 /* tronbit_no.c */, + AF35821A1433314C00E09C51 /* tronbit_yes.c */, + AF476FF0099D1713001F091E /* truchet.c */, + AF9D497F09B541E5006E59CF /* twang.c */, + AF477704099DAF3F001F091E /* vermiculate.c */, + AF477192099D4864001F091E /* wander.c */, AFA33C0A0B058E6B002B0E7D /* webcollage */, AFA33BAE0B0585F7002B0E7D /* webcollage-cocoa.m */, + AF4776EE099DAE58001F091E /* whirlwindwarp.c */, + AF47721B099D4F47001F091E /* whirlygig.c */, + AF477395099D65FE001F091E /* wormhole.c */, + AF9D4D9209B5B444006E59CF /* xanalogtv.c */, + AF97582F099C427500B05160 /* xflame.c */, + AF4778DA099DDD2B001F091E /* xjack.c */, + AF9D4C7C09B5A044006E59CF /* xlyap.c */, + AF477455099D7D8A001F091E /* xmatrix.c */, + AF4776D3099DACEB001F091E /* xrayswarm.c */, + AF4776BD099DAC46001F091E /* xspirograph.c */, + AF9D48D409B53229006E59CF /* zoom.c */, ); name = XScreenSaver; sourceTree = ""; @@ -9089,52 +9565,51 @@ AF480DCF098F4F0600FB32B8 /* Xlockmore */ = { isa = PBXGroup; children = ( - AF47793D099DE56A001F091E /* slip.c */, + AFD570DE0996BA5C00BA26F7 /* ant.c */, + AFD5713F0996BFBE00BA26F7 /* apollonian.c */, + AF7778BC09B65B1800EA3033 /* automata.h */, + AFD572B90996FB3D00BA26F7 /* bouboule.c */, + AFD56EC10996A76F00BA26F7 /* braid.c */, + AFD572ED0997006E00BA26F7 /* crystal.c */, + AF794F7E099748860059A8B0 /* demon.c */, + AFD571280996BEF700BA26F7 /* discrete.c */, + AF480C82098E336D00FB32B8 /* drift.c */, + AFD571560996C07F00BA26F7 /* euler2d.c */, + AFD5706C0996B70000BA26F7 /* fadeplot.c */, + AF794FA909974AE30059A8B0 /* fiberlamp.c */, + AF47791C099DE3F1001F091E /* flag.c */, + AFD571010996BC3800BA26F7 /* flow.c */, + AFD56EED0996A99E00BA26F7 /* forest.c */, + AFD56F360996ABD200BA26F7 /* galaxy.c */, + AFD56F620996AF2D00BA26F7 /* grav.c */, + AFD56F880996B06600BA26F7 /* hopalong.c */, + AFD571C80996DA4600BA26F7 /* juggle.c */, + AFD5730C099702C800BA26F7 /* julia.c */, + AFD56FA00996B0E500BA26F7 /* laser.c */, + AFD56FB60996B16300BA26F7 /* lightning.c */, + AFD56FCC0996B1D600BA26F7 /* lisa.c */, + AFD56FE20996B26200BA26F7 /* lissie.c */, + AF794FE009974FEC0059A8B0 /* loop.c */, + AFD570820996B79300BA26F7 /* mountain.c */, + AF795015099751940059A8B0 /* pacman.c */, + AF795016099751940059A8B0 /* pacman.h */, AF795011099751940059A8B0 /* pacman_ai.c */, AF795012099751940059A8B0 /* pacman_ai.h */, AF795013099751940059A8B0 /* pacman_level.c */, AF795014099751940059A8B0 /* pacman_level.h */, - AF795015099751940059A8B0 /* pacman.c */, - AF795016099751940059A8B0 /* pacman.h */, - AF794FE009974FEC0059A8B0 /* loop.c */, - AF794FA909974AE30059A8B0 /* fiberlamp.c */, - AF794F7E099748860059A8B0 /* demon.c */, - AFD57371099741A200BA26F7 /* strange.c */, - AFD5730C099702C800BA26F7 /* julia.c */, - AFD572ED0997006E00BA26F7 /* crystal.c */, - AFD572B90996FB3D00BA26F7 /* bouboule.c */, + AFD5700C0996B49D00BA26F7 /* penrose.c */, AFD572800996EF2B00BA26F7 /* polyominoes.c */, + AFD570C40996B98500BA26F7 /* rotor.c */, + AFD570220996B52700BA26F7 /* sierpinski.c */, + AF47793D099DE56A001F091E /* slip.c */, + AFD5703B0996B5E300BA26F7 /* sphere.c */, + AFD570560996B67600BA26F7 /* spiral.c */, + AFD57371099741A200BA26F7 /* strange.c */, AFD572350996E53E00BA26F7 /* swirl.c */, - AFD571C80996DA4600BA26F7 /* juggle.c */, AFD5716B0996C16700BA26F7 /* thornbird.c */, - AFD571560996C07F00BA26F7 /* euler2d.c */, - AFD5713F0996BFBE00BA26F7 /* apollonian.c */, - AFD571280996BEF700BA26F7 /* discrete.c */, - AFD571010996BC3800BA26F7 /* flow.c */, - AFD570DE0996BA5C00BA26F7 /* ant.c */, - AFD570C40996B98500BA26F7 /* rotor.c */, - AFD570AE0996B8EF00BA26F7 /* worm.c */, AFD570980996B86200BA26F7 /* triangle.c */, - AFD570820996B79300BA26F7 /* mountain.c */, - AF47791C099DE3F1001F091E /* flag.c */, - AFD5706C0996B70000BA26F7 /* fadeplot.c */, - AFD570560996B67600BA26F7 /* spiral.c */, - AFD5703B0996B5E300BA26F7 /* sphere.c */, - AFD570220996B52700BA26F7 /* sierpinski.c */, - AFD5700C0996B49D00BA26F7 /* penrose.c */, - AFD56FE20996B26200BA26F7 /* lissie.c */, - AFD56FCC0996B1D600BA26F7 /* lisa.c */, - AF35EB250E6382BA00691F2F /* jigsaw.c */, - AFD56FB60996B16300BA26F7 /* lightning.c */, - AFD56FA00996B0E500BA26F7 /* laser.c */, - AFD56F880996B06600BA26F7 /* hopalong.c */, - AFD56F620996AF2D00BA26F7 /* grav.c */, - AFD56F360996ABD200BA26F7 /* galaxy.c */, AFD56F1F0996AB5A00BA26F7 /* vines.c */, - AFD56EED0996A99E00BA26F7 /* forest.c */, - AFD56EC10996A76F00BA26F7 /* braid.c */, - AF480C82098E336D00FB32B8 /* drift.c */, - AF7778BC09B65B1800EA3033 /* automata.h */, + AFD570AE0996B8EF00BA26F7 /* worm.c */, ); name = Xlockmore; sourceTree = ""; @@ -9142,10 +9617,55 @@ AF480DD0098F4F2000FB32B8 /* OpenGL */ = { isa = PBXGroup; children = ( + AFA5605F09936E9C00F3E977 /* antinspect.c */, + AFA562EF0993941600F3E977 /* antmaze.c */, + AFA5607709936FDD00F3E977 /* ants.h */, + AFA5607809936FDD00F3E977 /* antspotlight.c */, + AF0839A909930C4900277BE9 /* atlantis.c */, + AF7778BD09B65B3F00EA3033 /* atlantis.h */, + AF083A31099311CE00277BE9 /* atunnel.c */, + AFA55AF409933DBF00F3E977 /* b_draw.c */, + AFA55AF509933DBF00F3E977 /* b_lockglue.c */, + AFA55AF609933DBF00F3E977 /* b_sphere.c */, + AFA5616D09937C9A00F3E977 /* blinkbox.c */, + AFA5602909936D0700F3E977 /* blocktube.c */, + AFA562D40993930C00F3E977 /* boing.c */, + AFA55EE70993613E00F3E977 /* bouncingcow.c */, + AFA55CBE09934C0900F3E977 /* boxed.c */, + AFA55CBF09934C0900F3E977 /* boxed.h */, + AFA55AE409933D3800F3E977 /* bubble3d.c */, + AFA55AE809933D5900F3E977 /* bubble3d.h */, + AF4812760990CF5D00FB32B8 /* buildlwo.c */, + AF4812770990CF5D00FB32B8 /* buildlwo.h */, + AFA5595D0993310500F3E977 /* cage.c */, + AF77785E09B6530E00EA3033 /* carousel.c */, + AFA55E2209935F2B00F3E977 /* chessgames.h */, + AFA55E2309935F2B00F3E977 /* chessmodels.c */, + AFA55E2409935F2B00F3E977 /* chessmodels.h */, + AFA55BC00993416E00F3E977 /* circuit.c */, + AF3581D91431D5FC00E09C51 /* companion.c */, + AF3581D61431D5FC00E09C51 /* companion_disc.c */, + AF3581D71431D5FC00E09C51 /* companion_heart.c */, + AF3581D81431D5FC00E09C51 /* companion_quad.c */, + AFA55EE80993613E00F3E977 /* cow_face.c */, + AFA55EE90993613E00F3E977 /* cow_hide.c */, + AFA55EEA0993613E00F3E977 /* cow_hoofs.c */, + AFA55EEB0993613E00F3E977 /* cow_horns.c */, + AFA55EEC0993613E00F3E977 /* cow_tail.c */, + AFA55EED0993613E00F3E977 /* cow_udder.c */, + AFA563290993957100F3E977 /* crackberg.c */, + AFA563660993970F00F3E977 /* cube21.c */, + AFA55D770993589300F3E977 /* cubenetic.c */, + AFA55FF309936C4500F3E977 /* cubestorm.c */, + AF4FF4D00D52CC8400666F98 /* cubicgrid.c */, + AF480DD1098F4F6200FB32B8 /* dangerball.c */, + AF77787609B653DC00EA3033 /* dnalogo.c */, + AF0839AA09930C4900277BE9 /* dolphin.c */, AF241F81107C38DF00046A84 /* dropshadow.c */, AF241F82107C38DF00046A84 /* dropshadow.h */, - AF32D9FA0F3AD1200080F535 /* rubikblocks.c */, - AFE6A40B0CDD7BC3002805BF /* moebiusgears.c */, + AF7778C109B65C6A00EA3033 /* e_textures.h */, + AFA55E2509935F2B00F3E977 /* endgame.c */, + AFA55C230993435300F3E977 /* engine.c */, AF642409099FFAF0000F4CD4 /* extrusion-helix2.c */, AF64240A099FFAF0000F4CD4 /* extrusion-helix3.c */, AF64240B099FFAF0000F4CD4 /* extrusion-helix4.c */, @@ -9155,168 +9675,121 @@ AF64240F099FFAF1000F4CD4 /* extrusion-twistoid.c */, AF642410099FFAF1000F4CD4 /* extrusion.c */, AF642411099FFAF1000F4CD4 /* extrusion.h */, - AFD51DB60F063BCE00471C02 /* photopile.c */, - AFD56E080996A07A00BA26F7 /* gltext.c */, - AFA563B90993991300F3E977 /* juggler3d.c */, - AFA5638E0993980D00F3E977 /* timetunnel.c */, - AF998EF80A083E750051049D /* topblock.c */, - AFE6A16A0CDD78EA002805BF /* involute.c */, - AFE6A16B0CDD78EA002805BF /* involute.h */, - AF4A3463102A5A0E00A81B2A /* surfaces.c */, - AF0DCA5F0C4CBB7300D76972 /* voronoi.c */, - AFA563660993970F00F3E977 /* cube21.c */, - AF4FF4D00D52CC8400666F98 /* cubicgrid.c */, - AFA563460993963400F3E977 /* glhanoi.c */, - AF77778B09B64A2A00EA3033 /* gleidescope.c */, - AF7777A509B64AFC00EA3033 /* mirrorblob.c */, - AFA563290993957100F3E977 /* crackberg.c */, - AFA563070993948F00F3E977 /* tangram_shapes.c */, - AFA563080993948F00F3E977 /* tangram_shapes.h */, - AFA563090993948F00F3E977 /* tangram.c */, - AFA562EF0993941600F3E977 /* antmaze.c */, - AFA562D40993930C00F3E977 /* boing.c */, - AF7778BD09B65B3F00EA3033 /* atlantis.h */, - AFA562340993856A00F3E977 /* pinion.c */, - AFA5621C099384F600F3E977 /* providence.c */, - AFA561B209937DCB00F3E977 /* polyhedra-gl.c */, - AFA561B309937DCC00F3E977 /* polyhedra.c */, - AFA561B409937DCC00F3E977 /* polyhedra.h */, - AFA5619009937D3600F3E977 /* noof.c */, - AFA5616D09937C9A00F3E977 /* blinkbox.c */, - AFBF89AE0E423FC3006A2D66 /* fps-gl.c */, - AFA561120993786800F3E977 /* molecule.c */, - AF77780109B64EC000EA3033 /* fliptext.c */, - AFA560C3099371D500F3E977 /* polytopes.c */, - AFA5607709936FDD00F3E977 /* ants.h */, - AFA5607809936FDD00F3E977 /* antspotlight.c */, - AFA5605F09936E9C00F3E977 /* antinspect.c */, AFA5604709936DCC00F3E977 /* flipflop.c */, - AFA5602909936D0700F3E977 /* blocktube.c */, + AF77775409B644FF00EA3033 /* flipscreen3d.c */, + AF77780109B64EC000EA3033 /* fliptext.c */, + AFA55E980993608800F3E977 /* flyingtoasters.c */, + AF7778C209B65CFE00EA3033 /* font-ximage.c */, + AF7778C309B65CFE00EA3033 /* font-ximage.h */, + AFBF89AE0E423FC3006A2D66 /* fps-gl.c */, + AF4812250990CB8C00FB32B8 /* gears.c */, + AFA55BA60993401A00F3E977 /* gflux.c */, + AFA55E4509935FD300F3E977 /* glblur.c */, + AFF463710C440B9200EE6509 /* glcells.c */, + AF77778B09B64A2A00EA3033 /* gleidescope.c */, + AFA55CE109934D2E00F3E977 /* glforestfire.c */, + AFA563460993963400F3E977 /* glhanoi.c */, AFA5600E09936CB300F3E977 /* glknots.c */, - AFA55FF309936C4500F3E977 /* cubestorm.c */, AFA55F870993648500F3E977 /* glmatrix.c */, + AFA55B2109933E4A00F3E977 /* glplanet.c */, AF48E1660A0C268500F94CF9 /* glschool.c */, AF48E1670A0C268500F94CF9 /* glschool.h */, AF48E1620A0C268400F94CF9 /* glschool_alg.c */, AF48E1630A0C268500F94CF9 /* glschool_alg.h */, AF48E1640A0C268500F94CF9 /* glschool_gl.c */, AF48E1650A0C268500F94CF9 /* glschool_gl.h */, + AF7777E709B64CF700EA3033 /* glslideshow.c */, + AFA55C8C099349EE00F3E977 /* glsnake.c */, + AFD56E080996A07A00BA26F7 /* gltext.c */, AF78D18A142DD96E002AAF77 /* hilbert.c */, AFA55F59099362DF00F3E977 /* hypertorus.c */, - AFA55F3F0993626E00F3E977 /* klein.c */, - AFA55F210993620200F3E977 /* jigglypuff.c */, - AFA55EE70993613E00F3E977 /* bouncingcow.c */, - AF7778C209B65CFE00EA3033 /* font-ximage.c */, - AF7778C309B65CFE00EA3033 /* font-ximage.h */, - AF7778C109B65C6A00EA3033 /* e_textures.h */, - AFA55EE80993613E00F3E977 /* cow_face.c */, - AFA55EE90993613E00F3E977 /* cow_hide.c */, - AFA55EEA0993613E00F3E977 /* cow_hoofs.c */, - AFA55EEB0993613E00F3E977 /* cow_horns.c */, - AFA55EEC0993613E00F3E977 /* cow_tail.c */, - AF77787609B653DC00EA3033 /* dnalogo.c */, - AFA55EED0993613E00F3E977 /* cow_udder.c */, - AFA55E980993608800F3E977 /* flyingtoasters.c */, - AFA55E990993608800F3E977 /* toast.c */, - AF77782809B650FF00EA3033 /* starwars.c */, - AF77782909B650FF00EA3033 /* starwars.txt */, - AFA55E9A0993608800F3E977 /* toast.dxf */, - AFA55E9B0993608800F3E977 /* toast2.c */, - AFA55E9C0993608800F3E977 /* toast2.dxf */, - AFA55E9D0993608800F3E977 /* toaster_base.c */, - AFA55E9E0993608800F3E977 /* toaster_base.dxf */, - AFA55E9F0993608800F3E977 /* toaster_handle.c */, - AFA55EA00993608800F3E977 /* toaster_handle.dxf */, - AFA55EA10993608800F3E977 /* toaster_handle2.c */, AF3C715D0D624C600030CC0D /* hypnowheel.c */, - AFA55EA20993608800F3E977 /* toaster_handle2.dxf */, - AFA55EA30993608800F3E977 /* toaster_jet.c */, - AFA55EA40993608800F3E977 /* toaster_jet.dxf */, - AFA55EA50993608800F3E977 /* toaster_knob.c */, - AFA55EA60993608800F3E977 /* toaster_knob.dxf */, - AFA55EA70993608800F3E977 /* toaster_slots.c */, - AFA55EA80993608800F3E977 /* toaster_slots.dxf */, - AFA55EA90993608800F3E977 /* toaster_wing.c */, - AFA55EAA0993608800F3E977 /* toaster_wing.dxf */, - AFA55EAB0993608800F3E977 /* toaster.c */, + AFE6A16A0CDD78EA002805BF /* involute.c */, + AFE6A16B0CDD78EA002805BF /* involute.h */, + AF35EB250E6382BA00691F2F /* jigsaw.c */, + AFA55F210993620200F3E977 /* jigglypuff.c */, + AFA563B90993991300F3E977 /* juggler3d.c */, + AFA55F3F0993626E00F3E977 /* klein.c */, + AFA55A8E0993369100F3E977 /* lament.c */, + AFA55DDD09935DB600F3E977 /* lavalite.c */, AF4FD7000CE7A577005EE58E /* lockward.c */, - AFA55EAC0993608800F3E977 /* toaster.dxf */, - AFA55E4509935FD300F3E977 /* glblur.c */, - AFF463710C440B9200EE6509 /* glcells.c */, - AFA55E2209935F2B00F3E977 /* chessgames.h */, - AFA55E2309935F2B00F3E977 /* chessmodels.c */, - AFA55E2409935F2B00F3E977 /* chessmodels.h */, - AFA55E2509935F2B00F3E977 /* endgame.c */, - AFA55E0609935EB800F3E977 /* queens.c */, AFA55DE109935DFB00F3E977 /* marching.c */, - AF7777BF09B64BD400EA3033 /* stonerview-move.c */, - AF7777C009B64BD400EA3033 /* stonerview-move.h */, - AF7777C109B64BD400EA3033 /* stonerview-osc.c */, - AF7777C209B64BD400EA3033 /* stonerview-osc.h */, - AF7777C309B64BD400EA3033 /* stonerview-view.c */, - AF7777C409B64BD400EA3033 /* stonerview.c */, - AF7777C509B64BD400EA3033 /* stonerview.h */, AFA55DE209935DFB00F3E977 /* marching.h */, - AFA55DDD09935DB600F3E977 /* lavalite.c */, - AFA55D940993590F00F3E977 /* spheremonics.c */, - AF77785E09B6530E00EA3033 /* carousel.c */, - AFA55D770993589300F3E977 /* cubenetic.c */, - AFA55D510993569C00F3E977 /* sballs.c */, - AFA55CE109934D2E00F3E977 /* glforestfire.c */, - AFA55CBE09934C0900F3E977 /* boxed.c */, - AFA55CBF09934C0900F3E977 /* boxed.h */, - AFA55C8C099349EE00F3E977 /* glsnake.c */, - AFA55C230993435300F3E977 /* engine.c */, AFA55BF9099342D500F3E977 /* menger.c */, - AFA55BC00993416E00F3E977 /* circuit.c */, - AFA55BA60993401A00F3E977 /* gflux.c */, - AFA55B8E09933FBF00F3E977 /* sierpinski3d.c */, - AFA55B3F09933EC600F3E977 /* pulsar.c */, - AFA55B2109933E4A00F3E977 /* glplanet.c */, - AFA55AF409933DBF00F3E977 /* b_draw.c */, - AFA55AF509933DBF00F3E977 /* b_lockglue.c */, + AF7777A509B64AFC00EA3033 /* mirrorblob.c */, + AFA55982099331C300F3E977 /* moebius.c */, + AFE6A40B0CDD7BC3002805BF /* moebiusgears.c */, + AFA561120993786800F3E977 /* molecule.c */, AF7778BE09B65BA300EA3033 /* molecules.sh */, - AFA55AF609933DBF00F3E977 /* b_sphere.c */, - AF7778C009B65C0F00EA3033 /* sproingies.h */, - AFE30BFF0E52B1DC00CCF4A5 /* sonar-icmp.c */, - AFE30C000E52B1DC00CCF4A5 /* sonar-sim.c */, - AFE30C010E52B1DC00CCF4A5 /* sonar.c */, - AFA55AE809933D5900F3E977 /* bubble3d.h */, - AFA55AE409933D3800F3E977 /* bubble3d.c */, - AFA55A8E0993369100F3E977 /* lament.c */, + AFA559CC099332E800F3E977 /* morph3d.c */, + AFA5619009937D3600F3E977 /* noof.c */, + AFD51DB60F063BCE00471C02 /* photopile.c */, + AFA562340993856A00F3E977 /* pinion.c */, + AF4812780990CF5D00FB32B8 /* pipeobjs.c */, + AF4812790990CF5D00FB32B8 /* pipes.c */, + AFA561B209937DCB00F3E977 /* polyhedra-gl.c */, + AFA561B309937DCC00F3E977 /* polyhedra.c */, + AFA561B409937DCC00F3E977 /* polyhedra.h */, + AFA560C3099371D500F3E977 /* polytopes.c */, + AFA5621C099384F600F3E977 /* providence.c */, + AFA55B3F09933EC600F3E977 /* pulsar.c */, + AFA55E0609935EB800F3E977 /* queens.c */, + AFA559EA0993335C00F3E977 /* rubik.c */, + AF32D9FA0F3AD1200080F535 /* rubikblocks.c */, AFA55A400993351F00F3E977 /* s1_1.c */, AFA55A410993351F00F3E977 /* s1_2.c */, - AF7777E709B64CF700EA3033 /* glslideshow.c */, AFA55A420993351F00F3E977 /* s1_3.c */, AFA55A430993351F00F3E977 /* s1_4.c */, AFA55A440993351F00F3E977 /* s1_5.c */, AFA55A450993351F00F3E977 /* s1_6.c */, AFA55A460993351F00F3E977 /* s1_b.c */, + AFA55D510993569C00F3E977 /* sballs.c */, + AF0839AB09930C4900277BE9 /* shark.c */, + AFA55B8E09933FBF00F3E977 /* sierpinski3d.c */, + AFE2A4720E2E90E300ADB298 /* skytentacles.c */, + AFE30BFF0E52B1DC00CCF4A5 /* sonar-icmp.c */, + AFE30C000E52B1DC00CCF4A5 /* sonar-sim.c */, + AFE30C010E52B1DC00CCF4A5 /* sonar.c */, + AFA55D940993590F00F3E977 /* spheremonics.c */, AFA55A470993351F00F3E977 /* sproingies.c */, + AF7778C009B65C0F00EA3033 /* sproingies.h */, AFA55A480993351F00F3E977 /* sproingiewrap.c */, - AF77775409B644FF00EA3033 /* flipscreen3d.c */, AFA55A1A0993345900F3E977 /* stairs.c */, - AFA559CC099332E800F3E977 /* morph3d.c */, - AFA559EA0993335C00F3E977 /* rubik.c */, + AF77782809B650FF00EA3033 /* starwars.c */, + AF77782909B650FF00EA3033 /* starwars.txt */, + AF7777BF09B64BD400EA3033 /* stonerview-move.c */, + AF7777C009B64BD400EA3033 /* stonerview-move.h */, + AF7777C109B64BD400EA3033 /* stonerview-osc.c */, + AF7777C209B64BD400EA3033 /* stonerview-osc.h */, + AF7777C309B64BD400EA3033 /* stonerview-view.c */, + AF7777C409B64BD400EA3033 /* stonerview.c */, + AF7777C509B64BD400EA3033 /* stonerview.h */, AFA559A80993326300F3E977 /* superquadrics.c */, - AFA55982099331C300F3E977 /* moebius.c */, - AFA5595D0993310500F3E977 /* cage.c */, - AF083A5D099312DB00277BE9 /* tunnel_draw.h */, - AF083A58099312B000277BE9 /* tunnel_draw.c */, - AF083A31099311CE00277BE9 /* atunnel.c */, + AF4A3463102A5A0E00A81B2A /* surfaces.c */, + AF0839AC09930C4900277BE9 /* swim.c */, + AFA563090993948F00F3E977 /* tangram.c */, + AFA563070993948F00F3E977 /* tangram_shapes.c */, + AFA563080993948F00F3E977 /* tangram_shapes.h */, AFC211930E4E30C800D87B6E /* teapot.c */, AFC211940E4E30C800D87B6E /* teapot.h */, - AF0839A909930C4900277BE9 /* atlantis.c */, - AFE2A4720E2E90E300ADB298 /* skytentacles.c */, - AF0839AA09930C4900277BE9 /* dolphin.c */, - AF4812760990CF5D00FB32B8 /* buildlwo.c */, - AF4812770990CF5D00FB32B8 /* buildlwo.h */, - AF480DD1098F4F6200FB32B8 /* dangerball.c */, - AF4812250990CB8C00FB32B8 /* gears.c */, - AF4812780990CF5D00FB32B8 /* pipeobjs.c */, - AF4812790990CF5D00FB32B8 /* pipes.c */, - AF0839AB09930C4900277BE9 /* shark.c */, - AF0839AC09930C4900277BE9 /* swim.c */, + AFA5638E0993980D00F3E977 /* timetunnel.c */, + AFA55E990993608800F3E977 /* toast.c */, + AFA55E9A0993608800F3E977 /* toast.dxf */, + AFA55E9B0993608800F3E977 /* toast2.c */, + AFA55E9C0993608800F3E977 /* toast2.dxf */, + AFA55EAB0993608800F3E977 /* toaster.c */, + AFA55EAC0993608800F3E977 /* toaster.dxf */, + AFA55E9D0993608800F3E977 /* toaster_base.c */, + AFA55E9F0993608800F3E977 /* toaster_handle.c */, + AFA55EA10993608800F3E977 /* toaster_handle2.c */, + AFA55EA30993608800F3E977 /* toaster_jet.c */, + AFA55EA50993608800F3E977 /* toaster_knob.c */, + AFA55EA70993608800F3E977 /* toaster_slots.c */, + AFA55EA90993608800F3E977 /* toaster_wing.c */, + AF998EF80A083E750051049D /* topblock.c */, + AF083A58099312B000277BE9 /* tunnel_draw.c */, + AF083A5D099312DB00277BE9 /* tunnel_draw.h */, + AF0DCA5F0C4CBB7300D76972 /* voronoi.c */, AF0839AD09930C4900277BE9 /* whale.c */, ); name = OpenGL; @@ -9325,11 +9798,7 @@ AFC258670988A468000655EE /* config */ = { isa = PBXGroup; children = ( - AF3582211433318500E09C51 /* tronbit.xml */, - AF3581E61431D61D00E09C51 /* companioncube.xml */, - AF32D9FC0F3AD1330080F535 /* rubikblocks.xml */, AFE6A4360CDD8026002805BF /* abstractile.xml */, - AFE6A40D0CDD7BDC002805BF /* moebiusgears.xml */, AFC258680988A468000655EE /* anemone.xml */, AFC258690988A468000655EE /* anemotaxis.xml */, AFC2586A0988A468000655EE /* ant.xml */, @@ -9357,22 +9826,22 @@ AFC258800988A468000655EE /* bubbles.xml */, AFC258810988A468000655EE /* bumps.xml */, AFC258820988A468000655EE /* cage.xml */, - AFD51DB80F063BE700471C02 /* photopile.xml */, AFC258830988A468000655EE /* carousel.xml */, AFC258840988A468000655EE /* ccurve.xml */, - AFF4634B0C44046500EE6509 /* cwaves.xml */, AFC258850988A468000655EE /* celtic.xml */, AFC258860988A468000655EE /* circuit.xml */, AFC258870988A468000655EE /* cloudlife.xml */, + AF3581E61431D61D00E09C51 /* companioncube.xml */, AFC258880988A468000655EE /* compass.xml */, AFC258890988A468000655EE /* coral.xml */, AFC2588B0988A468000655EE /* crackberg.xml */, AFC2588C0988A468000655EE /* critical.xml */, AFC2588D0988A468000655EE /* crystal.xml */, AFC2588E0988A468000655EE /* cube21.xml */, - AF4FF4D30D52CCAA00666F98 /* cubicgrid.xml */, AFC2588F0988A468000655EE /* cubenetic.xml */, AFC258900988A468000655EE /* cubestorm.xml */, + AF4FF4D30D52CCAA00666F98 /* cubicgrid.xml */, + AFF4634B0C44046500EE6509 /* cwaves.xml */, AFC258910988A468000655EE /* cynosure.xml */, AFC258920988A468000655EE /* dangerball.xml */, AFC258930988A468000655EE /* decayscreen.xml */, @@ -9381,8 +9850,8 @@ AFC258960988A468000655EE /* demon.xml */, AFC258970988A468000655EE /* discrete.xml */, AFC258980988A468000655EE /* distort.xml */, - AFC258990988A468000655EE /* drift.xml */, AF77787909B6545E00EA3033 /* dnalogo.xml */, + AFC258990988A468000655EE /* drift.xml */, AFC2589B0988A468000655EE /* endgame.xml */, AFC2589C0988A468000655EE /* engine.xml */, AFC2589D0988A468000655EE /* epicycle.xml */, @@ -9415,6 +9884,7 @@ AFC258B80988A468000655EE /* glknots.xml */, AFC258B90988A468000655EE /* glmatrix.xml */, AFC258BA0988A468000655EE /* glplanet.xml */, + AF48E16B0A0C26A400F94CF9 /* glschool.xml */, AFC258BB0988A468000655EE /* glslideshow.xml */, AFC258BC0988A468000655EE /* glsnake.xml */, AFC258BD0988A468000655EE /* gltext.xml */, @@ -9423,13 +9893,13 @@ AFC258C10988A468000655EE /* greynetic.xml */, AFC258C20988A468000655EE /* halftone.xml */, AFC258C30988A468000655EE /* halo.xml */, - AFE2A4740E2E911200ADB298 /* skytentacles.xml */, AFC258C40988A468000655EE /* helix.xml */, AF78D18E142DD99A002AAF77 /* hilbert.xml */, AFC258C50988A468000655EE /* hopalong.xml */, AFC258C60988A468000655EE /* hyperball.xml */, AFC258C70988A468000655EE /* hypercube.xml */, AFC258C80988A468000655EE /* hypertorus.xml */, + AF3C715F0D624C7C0030CC0D /* hypnowheel.xml */, AFC258C90988A468000655EE /* ifs.xml */, AFC258CA0988A468000655EE /* imsmap.xml */, AFC258CB0988A468000655EE /* interaggregate.xml */, @@ -9439,7 +9909,6 @@ AFC258CF0988A468000655EE /* jigsaw.xml */, AFC258D00988A468000655EE /* juggle.xml */, AFC258D10988A468000655EE /* juggler3d.xml */, - AF4A3461102A59EB00A81B2A /* surfaces.xml */, AFC258D20988A468000655EE /* julia.xml */, AFC258D30988A468000655EE /* kaleidescope.xml */, AFC258D40988A468000655EE /* klein.xml */, @@ -9447,11 +9916,14 @@ AFC258D60988A468000655EE /* lament.xml */, AFC258D70988A468000655EE /* laser.xml */, AFC258D80988A468000655EE /* lavalite.xml */, + AF1A17800D6D6F62008AF328 /* lcdscrub.xml */, AFC258D90988A468000655EE /* lightning.xml */, AFC258DA0988A468000655EE /* lisa.xml */, AFC258DB0988A468000655EE /* lissie.xml */, AFC258DC0988A468000655EE /* lmorph.xml */, + AF4FD7020CE7A5BC005EE58E /* lockward.xml */, AFC258DD0988A468000655EE /* loop.xml */, + AF0DCA370C4C74B700D76972 /* m6502.xml */, AFC258DE0988A468000655EE /* maze.xml */, AFC258DF0988A469000655EE /* memscroller.xml */, AFC258E00988A469000655EE /* menger.xml */, @@ -9459,6 +9931,7 @@ AFC258E20988A469000655EE /* mirrorblob.xml */, AFC258E30988A469000655EE /* mismunch.xml */, AFC258E40988A469000655EE /* moebius.xml */, + AFE6A40D0CDD7BDC002805BF /* moebiusgears.xml */, AFC258E50988A469000655EE /* moire.xml */, AFC258E60988A469000655EE /* moire2.xml */, AFC258E70988A469000655EE /* molecule.xml */, @@ -9474,6 +9947,7 @@ AFC258F10988A469000655EE /* penrose.xml */, AFC258F20988A469000655EE /* petri.xml */, AFC258F30988A469000655EE /* phosphor.xml */, + AFD51DB80F063BE700471C02 /* photopile.xml */, AFC258F40988A469000655EE /* piecewise.xml */, AFC258F50988A469000655EE /* pinion.xml */, AFC258F60988A469000655EE /* pipes.xml */, @@ -9481,7 +9955,6 @@ AFC258F80988A469000655EE /* polyominoes.xml */, AFC258F90988A469000655EE /* polytopes.xml */, AFC258FA0988A469000655EE /* pong.xml */, - AF0DCA370C4C74B700D76972 /* m6502.xml */, AFC258FB0988A469000655EE /* popsquares.xml */, AFC258FC0988A469000655EE /* providence.xml */, AFC258FD0988A469000655EE /* pulsar.xml */, @@ -9495,10 +9968,12 @@ AFC259060988A469000655EE /* rotor.xml */, AFC259070988A469000655EE /* rotzoomer.xml */, AFC259080988A469000655EE /* rubik.xml */, + AF32D9FC0F3AD1330080F535 /* rubikblocks.xml */, AFC259090988A469000655EE /* sballs.xml */, AFC2590A0988A469000655EE /* shadebobs.xml */, AFC2590B0988A469000655EE /* sierpinski.xml */, AFC2590C0988A469000655EE /* sierpinski3d.xml */, + AFE2A4740E2E911200ADB298 /* skytentacles.xml */, AFC2590D0988A469000655EE /* slidescreen.xml */, AFC2590E0988A469000655EE /* slip.xml */, AFC2590F0988A469000655EE /* sonar.xml */, @@ -9516,24 +9991,22 @@ AFC2591D0988A469000655EE /* strange.xml */, AFC2591E0988A469000655EE /* substrate.xml */, AFC2591F0988A469000655EE /* superquadrics.xml */, + AF4A3461102A59EB00A81B2A /* surfaces.xml */, AFC259200988A469000655EE /* swirl.xml */, - AF998EFA0A083E8C0051049D /* topblock.xml */, AFC259210988A469000655EE /* t3d.xml */, AFC259220988A469000655EE /* tangram.xml */, AFC259230988A469000655EE /* thornbird.xml */, AFC259240988A469000655EE /* timetunnel.xml */, - AF0DCA610C4CBB8E00D76972 /* voronoi.xml */, + AF998EFA0A083E8C0051049D /* topblock.xml */, AFC259250988A469000655EE /* triangle.xml */, - AF1A17800D6D6F62008AF328 /* lcdscrub.xml */, + AF3582211433318500E09C51 /* tronbit.xml */, AFC259260988A469000655EE /* truchet.xml */, AFC259270988A469000655EE /* twang.xml */, AFC259280988A469000655EE /* vermiculate.xml */, AFC259290988A469000655EE /* vidwhacker.xml */, - AF3C715F0D624C7C0030CC0D /* hypnowheel.xml */, AFC2592A0988A469000655EE /* vines.xml */, - AF4FD7020CE7A5BC005EE58E /* lockward.xml */, + AF0DCA610C4CBB8E00D76972 /* voronoi.xml */, AFC2592B0988A469000655EE /* wander.xml */, - AF48E16B0A0C26A400F94CF9 /* glschool.xml */, AFC2592C0988A469000655EE /* webcollage.xml */, AFC2592D0988A469000655EE /* whirlwindwarp.xml */, AFC2592F0988A469000655EE /* whirlygig.xml */, @@ -9546,8 +10019,6 @@ AFC2593A0988A469000655EE /* xmatrix.xml */, AFC2593D0988A469000655EE /* xrayswarm.xml */, AFC2593F0988A469000655EE /* xspirograph.xml */, - AFC259400988A469000655EE /* xss.dtd */, - AFC259410988A469000655EE /* xss.xsd */, AFC259430988A469000655EE /* zoom.xml */, ); name = config; @@ -9557,62 +10028,64 @@ AFE1FD520981E35400F7970E /* Utils */ = { isa = PBXGroup; children = ( - AF4775BE099D9E79001F091E /* resources.c */, - AF4775BF099D9E79001F091E /* resources.h */, - AF4774E7099D8D8C001F091E /* logo.c */, - AFA55C560993482800F3E977 /* glxfonts.c */, - AFA561BA09937E9E00F3E977 /* glxfonts.h */, - AFA55864099324D800F3E977 /* minixpm.c */, - AFA55865099324D800F3E977 /* minixpm.h */, - AFB5A06B0981F4C600871B16 /* screenhack.h */, - AFC254B909873AF9000655EE /* screenhackI.h */, - AF480CBB098E37D600FB32B8 /* xlockmore.c */, - AF480C89098E346700FB32B8 /* xlockmore.h */, - AF480C8A098E34AB00FB32B8 /* xlockmoreI.h */, + AF9D473609B52EE0006E59CF /* colorbars.c */, + AF9D473709B52EE0006E59CF /* colorbars.h */, AFC25B990988BC08000655EE /* colors.c */, AFC25B9A0988BC08000655EE /* colors.h */, - AFB5A0ED0981FF8B00871B16 /* usleep.c */, - AFB5A0EE0981FF8B00871B16 /* usleep.h */, AFE1FD530981E3CB00F7970E /* erase.c */, - AFA33BD00B0587EE002B0E7D /* webcollage-helper-cocoa.m */, AFE1FD540981E3CB00F7970E /* erase.h */, AFA55A3E0993351F00F3E977 /* gllist.c */, - AFAD462209D5F4DA00AB5F95 /* grabclient.c */, AFA55A3F0993351F00F3E977 /* gllist.h */, + AF480EB0098F63D600FB32B8 /* gltrackball.c */, + AF480EB2098F63DF00FB32B8 /* gltrackball.h */, AFD56E0A0996A0ED00BA26F7 /* glut_roman.h */, AFD56E0B0996A0ED00BA26F7 /* glut_stroke.c */, AFD56E0C0996A0ED00BA26F7 /* glut_swidth.c */, AFD56E0D0996A0ED00BA26F7 /* glutstroke.h */, + AFA55C560993482800F3E977 /* glxfonts.c */, + AFA561BA09937E9E00F3E977 /* glxfonts.h */, AFA5607909936FDD00F3E977 /* grab-ximage.c */, AFA5607A09936FDD00F3E977 /* grab-ximage.h */, + AFAD462209D5F4DA00AB5F95 /* grabclient.c */, AFE1FD550981E3CB00F7970E /* hsv.c */, AFE1FD560981E3CB00F7970E /* hsv.h */, + AF4774E7099D8D8C001F091E /* logo.c */, + AFA55864099324D800F3E977 /* minixpm.c */, + AFA55865099324D800F3E977 /* minixpm.h */, AFA55A93099336D800F3E977 /* normals.c */, - AF77780809B64F4900EA3033 /* texfont.c */, - AF77780909B64F4900EA3033 /* texfont.h */, AFA55A94099336D800F3E977 /* normals.h */, - AFE1FD570981E3CB00F7970E /* spline.c */, - AFE1FD580981E3CB00F7970E /* spline.h */, - AFE1FD590981E3CB00F7970E /* utils.h */, - AFE1FD5A0981E3CB00F7970E /* version.h */, - AF975C91099C929800B05160 /* xpm-pixmap.c */, - AF975C92099C929800B05160 /* xpm-pixmap.h */, - AFE1FD5B0981E3CB00F7970E /* yarandom.c */, - AFE1FD5C0981E3CB00F7970E /* yarandom.h */, - AF480EB0098F63D600FB32B8 /* gltrackball.c */, - AF480EB2098F63DF00FB32B8 /* gltrackball.h */, + AF4775BE099D9E79001F091E /* resources.c */, + AF4775BF099D9E79001F091E /* resources.h */, AF480EB7098F646400FB32B8 /* rotator.c */, AF480EAC098F63B000FB32B8 /* rotator.h */, + AFB5A06B0981F4C600871B16 /* screenhack.h */, + AFC254B909873AF9000655EE /* screenhackI.h */, AF480EBB098F649600FB32B8 /* sphere.c */, AF480EBA098F648700FB32B8 /* sphere.h */, + AFE1FD570981E3CB00F7970E /* spline.c */, + AFE1FD580981E3CB00F7970E /* spline.h */, + AF77780809B64F4900EA3033 /* texfont.c */, + AF77780909B64F4900EA3033 /* texfont.h */, + AFC7592B158D8E8B00C5458E /* textclient.c */, + AFC7592C158D8E8B00C5458E /* textclient.h */, AF480EAD098F63BE00FB32B8 /* trackball.c */, AF480EAF098F63CD00FB32B8 /* trackball.h */, AF480ED2098F652A00FB32B8 /* tube.c */, AF480ED1098F651C00FB32B8 /* tube.h */, - AF9D473609B52EE0006E59CF /* colorbars.c */, - AF9D473709B52EE0006E59CF /* colorbars.h */, + AFB5A0ED0981FF8B00871B16 /* usleep.c */, + AFB5A0EE0981FF8B00871B16 /* usleep.h */, + AFE1FD590981E3CB00F7970E /* utils.h */, + AFE1FD5A0981E3CB00F7970E /* version.h */, + AFA33BD00B0587EE002B0E7D /* webcollage-helper-cocoa.m */, + AF480CBB098E37D600FB32B8 /* xlockmore.c */, + AF480C89098E346700FB32B8 /* xlockmore.h */, + AF480C8A098E34AB00FB32B8 /* xlockmoreI.h */, + AF975C91099C929800B05160 /* xpm-pixmap.c */, + AF975C92099C929800B05160 /* xpm-pixmap.h */, AF0839AE09930C4900277BE9 /* xpm-ximage.c */, AF0839AF09930C4900277BE9 /* xpm-ximage.h */, + AFE1FD5B0981E3CB00F7970E /* yarandom.c */, + AFE1FD5C0981E3CB00F7970E /* yarandom.h */, ); name = Utils; sourceTree = ""; @@ -9643,6 +10116,9 @@ AF7778C709B65CFE00EA3033 /* font-ximage.h in Headers */, AFBF893F0E41D930006A2D66 /* fps.h in Headers */, AFBF89B20E424036006A2D66 /* fpsI.h in Headers */, + AF6048FC157C07C600CA21E4 /* jwzgles.h in Headers */, + AF6048FD157C07C600CA21E4 /* jwzglesI.h in Headers */, + AFC7592E158D8E8B00C5458E /* textclient.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -9688,7 +10164,7 @@ AF08399409930B6B00277BE9 /* Sources */, AF08399709930B6B00277BE9 /* Frameworks */, AF08399E09930B6B00277BE9 /* Rez */, - AFA3D95309C03D9800E4CFCA /* ShellScript */, + AFA3D95309C03D9800E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -9697,7 +10173,7 @@ ); name = Atlantis; productName = Atlantis; - productReference = AF0839A209930B6B00277BE9 /* Atlantis.saver */; + productReference = AF0839A209930B6B00277BE9 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF083A32099311D700277BE9 /* Atunnel */ = { @@ -9708,7 +10184,7 @@ AF083A37099311D700277BE9 /* Sources */, AF083A3D099311D700277BE9 /* Frameworks */, AF083A44099311D700277BE9 /* Rez */, - AFA3D95509C03D9C00E4CFCA /* ShellScript */, + AFA3D95509C03D9C00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -9717,7 +10193,7 @@ ); name = Atunnel; productName = Atunnel; - productReference = AF083A48099311D700277BE9 /* Atunnel.saver */; + productReference = AF083A48099311D700277BE9 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF0DC7AB0C4C73F600D76972 /* m6502 */ = { @@ -9728,7 +10204,7 @@ AF0DC7B00C4C73F600D76972 /* Sources */, AF0DC7B40C4C73F600D76972 /* Frameworks */, AF0DC7B80C4C73F600D76972 /* Rez */, - AF0DC7B90C4C73F600D76972 /* ShellScript */, + AF0DC7B90C4C73F600D76972 /* Run Update Info Plist */, ); buildRules = ( ); @@ -9738,7 +10214,7 @@ ); name = m6502; productName = Pong; - productReference = AF0DC7BD0C4C73F600D76972 /* m6502.saver */; + productReference = AF0DC7BD0C4C73F600D76972 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF0DCA420C4CBB0D00D76972 /* Voronoi */ = { @@ -9749,7 +10225,7 @@ AF0DCA470C4CBB0D00D76972 /* Sources */, AF0DCA4A0C4CBB0D00D76972 /* Frameworks */, AF0DCA510C4CBB0D00D76972 /* Rez */, - AF0DCA520C4CBB0D00D76972 /* ShellScript */, + AF0DCA520C4CBB0D00D76972 /* Run Update Info Plist */, ); buildRules = ( ); @@ -9758,7 +10234,7 @@ ); name = Voronoi; productName = Voronoi; - productReference = AF0DCA560C4CBB0D00D76972 /* Voronoi.saver */; + productReference = AF0DCA560C4CBB0D00D76972 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF1A17610D6D6EE3008AF328 /* LCDscrub */ = { @@ -9769,7 +10245,7 @@ AF1A17670D6D6EE3008AF328 /* Sources */, AF1A176A0D6D6EE3008AF328 /* Frameworks */, AF1A176E0D6D6EE3008AF328 /* Rez */, - AF1A176F0D6D6EE3008AF328 /* ShellScript */, + AF1A176F0D6D6EE3008AF328 /* Run Update Info Plist */, ); buildRules = ( ); @@ -9778,7 +10254,7 @@ ); name = LCDscrub; productName = LCDscrub; - productReference = AF1A17730D6D6EE3008AF328 /* LCDscrub.saver */; + productReference = AF1A17730D6D6EE3008AF328 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF2D4D7F13E902F5002AA818 /* PhosphorApp */ = { @@ -9789,7 +10265,7 @@ AF2D4DDE13E903F2002AA818 /* Copy Plugins */, AF2D4D8513E902F5002AA818 /* Sources */, AF2D4D8813E902F5002AA818 /* Frameworks */, - AF2D51F413E94AC4002AA818 /* ShellScript */, + AF2D51F413E94AC4002AA818 /* Run Update Info Plist */, ); buildRules = ( ); @@ -9810,7 +10286,7 @@ AF2D4F7213E91093002AA818 /* Copy Plugins */, AF2D4F7413E91093002AA818 /* Sources */, AF2D4F7713E91093002AA818 /* Frameworks */, - AF2D51FD13E94B2D002AA818 /* ShellScript */, + AF2D51FD13E94B2D002AA818 /* Run Update Info Plist */, ); buildRules = ( ); @@ -9831,7 +10307,7 @@ AF32D9E50F3AD0B40080F535 /* Sources */, AF32D9E80F3AD0B40080F535 /* Frameworks */, AF32D9EF0F3AD0B40080F535 /* Rez */, - AF32D9F00F3AD0B40080F535 /* ShellScript */, + AF32D9F00F3AD0B40080F535 /* Run Update Info Plist */, ); buildRules = ( ); @@ -9840,7 +10316,7 @@ ); name = RubikBlocks; productName = RubikBlocks; - productReference = AF32D9F40F3AD0B40080F535 /* RubikBlocks.saver */; + productReference = AF32D9F40F3AD0B40080F535 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF3581BF1431D47B00E09C51 /* CompanionCube */ = { @@ -9851,7 +10327,7 @@ AF3581C51431D47B00E09C51 /* Sources */, AF3581C91431D47B00E09C51 /* Frameworks */, AF3581D01431D47B00E09C51 /* Rez */, - AF3581D11431D47B00E09C51 /* ShellScript */, + AF3581D11431D47B00E09C51 /* Run Update Info Plist */, ); buildRules = ( ); @@ -9860,7 +10336,7 @@ ); name = CompanionCube; productName = CompanionCube; - productReference = AF3581D51431D47B00E09C51 /* CompanionCube.saver */; + productReference = AF3581D51431D47B00E09C51 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF3581FB143330F900E09C51 /* TronBit */ = { @@ -9871,7 +10347,7 @@ AF358202143330F900E09C51 /* Sources */, AF35820A143330F900E09C51 /* Frameworks */, AF358211143330F900E09C51 /* Rez */, - AF358212143330F900E09C51 /* ShellScript */, + AF358212143330F900E09C51 /* Run Update Info Plist */, ); buildRules = ( ); @@ -9880,7 +10356,7 @@ ); name = TronBit; productName = CompanionCube; - productReference = AF358216143330F900E09C51 /* TronBit.saver */; + productReference = AF358216143330F900E09C51 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF35E88A0E63823600691F2F /* Jigsaw */ = { @@ -9891,7 +10367,7 @@ AF35E88F0E63823600691F2F /* Sources */, AF35E8940E63823600691F2F /* Frameworks */, AF35E89B0E63823600691F2F /* Rez */, - AF35E89C0E63823600691F2F /* ShellScript */, + AF35E89C0E63823600691F2F /* Run Update Info Plist */, ); buildRules = ( ); @@ -9900,7 +10376,7 @@ ); name = Jigsaw; productName = Jigsaw; - productReference = AF35E8A00E63823600691F2F /* Jigsaw.saver */; + productReference = AF35E8A00E63823600691F2F /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF3C71450D624BF50030CC0D /* Hypnowheel */ = { @@ -9911,7 +10387,7 @@ AF3C714A0D624BF50030CC0D /* Sources */, AF3C714D0D624BF50030CC0D /* Frameworks */, AF3C71540D624BF50030CC0D /* Rez */, - AF3C71550D624BF50030CC0D /* ShellScript */, + AF3C71550D624BF50030CC0D /* Run Update Info Plist */, ); buildRules = ( ); @@ -9920,7 +10396,7 @@ ); name = Hypnowheel; productName = Hypnowheel; - productReference = AF3C71590D624BF50030CC0D /* Hypnowheel.saver */; + productReference = AF3C71590D624BF50030CC0D /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF476FB5099D154F001F091E /* Interference */ = { @@ -9931,7 +10407,7 @@ AF476FBB099D154F001F091E /* Sources */, AF476FBE099D154F001F091E /* Frameworks */, AF476FC2099D154F001F091E /* Rez */, - AFA3D89509C03C4400E4CFCA /* ShellScript */, + AFA3D89509C03C4400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -9940,7 +10416,7 @@ ); name = Interference; productName = Interference; - productReference = AF476FC6099D154F001F091E /* Interference.saver */; + productReference = AF476FC6099D154F001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF476FDA099D1686001F091E /* Truchet */ = { @@ -9951,7 +10427,7 @@ AF476FE0099D1686001F091E /* Sources */, AF476FE3099D1686001F091E /* Frameworks */, AF476FE7099D1686001F091E /* Rez */, - AFA3D8E309C03CCA00E4CFCA /* ShellScript */, + AFA3D8E309C03CCA00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -9960,7 +10436,7 @@ ); name = Truchet; productName = Truchet; - productReference = AF476FEB099D1686001F091E /* Truchet.saver */; + productReference = AF476FEB099D1686001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF47704C099D4385001F091E /* Deluxe */ = { @@ -9971,7 +10447,7 @@ AF477051099D4385001F091E /* Sources */, AF477054099D4385001F091E /* Frameworks */, AF477058099D4385001F091E /* Rez */, - AFA3D86F09C03BF700E4CFCA /* ShellScript */, + AFA3D86F09C03BF700E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -9980,7 +10456,7 @@ ); name = Deluxe; productName = Deluxe; - productReference = AF47705C099D4385001F091E /* Deluxe.saver */; + productReference = AF47705C099D4385001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477169099D4786001F091E /* Compass */ = { @@ -9991,7 +10467,7 @@ AF47716E099D4786001F091E /* Sources */, AF477171099D4786001F091E /* Frameworks */, AF477175099D4786001F091E /* Rez */, - AFA3D86309C03BE200E4CFCA /* ShellScript */, + AFA3D86309C03BE200E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10000,7 +10476,7 @@ ); name = Compass; productName = Compass; - productReference = AF477179099D4786001F091E /* Compass.saver */; + productReference = AF477179099D4786001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF47717F099D4803001F091E /* Wander */ = { @@ -10011,7 +10487,7 @@ AF477184099D4803001F091E /* Sources */, AF477187099D4803001F091E /* Frameworks */, AF47718B099D4803001F091E /* Rez */, - AFA3D8E909C03CD500E4CFCA /* ShellScript */, + AFA3D8E909C03CD500E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10020,7 +10496,7 @@ ); name = Wander; productName = Wander; - productReference = AF47718F099D4803001F091E /* Wander.saver */; + productReference = AF47718F099D4803001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4771A7099D4949001F091E /* T3D */ = { @@ -10031,7 +10507,7 @@ AF4771AC099D4949001F091E /* Sources */, AF4771AF099D4949001F091E /* Frameworks */, AF4771B3099D4949001F091E /* Rez */, - AFA3D8E109C03CC400E4CFCA /* ShellScript */, + AFA3D8E109C03CC400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10040,7 +10516,7 @@ ); name = T3D; productName = T3D; - productReference = AF4771B7099D4949001F091E /* T3D.saver */; + productReference = AF4771B7099D4949001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4771DB099D4D9A001F091E /* CCurve */ = { @@ -10051,7 +10527,7 @@ AF4771E0099D4D9A001F091E /* Sources */, AF4771E3099D4D9A001F091E /* Frameworks */, AF4771E7099D4D9A001F091E /* Rez */, - AFA3D85D09C03BD700E4CFCA /* ShellScript */, + AFA3D85D09C03BD700E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10060,7 +10536,7 @@ ); name = CCurve; productName = CCurve; - productReference = AF4771EB099D4D9A001F091E /* CCurve.saver */; + productReference = AF4771EB099D4D9A001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4771F2099D4E63001F091E /* NerveRot */ = { @@ -10071,7 +10547,7 @@ AF4771F7099D4E63001F091E /* Sources */, AF4771FA099D4E63001F091E /* Frameworks */, AF4771FE099D4E63001F091E /* Rez */, - AFA3D8AF09C03C7300E4CFCA /* ShellScript */, + AFA3D8AF09C03C7300E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10080,7 +10556,7 @@ ); name = NerveRot; productName = NerveRot; - productReference = AF477202099D4E64001F091E /* NerveRot.saver */; + productReference = AF477202099D4E64001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477208099D4EE8001F091E /* Whirlygig */ = { @@ -10091,7 +10567,7 @@ AF47720D099D4EE8001F091E /* Sources */, AF477210099D4EE8001F091E /* Frameworks */, AF477214099D4EE8001F091E /* Rez */, - AFA3D8ED09C03CDB00E4CFCA /* ShellScript */, + AFA3D8ED09C03CDB00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10100,7 +10576,7 @@ ); name = Whirlygig; productName = Whirlygig; - productReference = AF477218099D4EE8001F091E /* Whirlygig.saver */; + productReference = AF477218099D4EE8001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF47721E099D4F67001F091E /* Anemone */ = { @@ -10111,7 +10587,7 @@ AF477223099D4F67001F091E /* Sources */, AF477226099D4F67001F091E /* Frameworks */, AF47722A099D4F67001F091E /* Rez */, - AFCCCBB509C033DF00353F4D /* ShellScript */, + AFCCCBB509C033DF00353F4D /* Run Update Info Plist */, ); buildRules = ( ); @@ -10131,7 +10607,7 @@ AF477258099D5717001F091E /* Sources */, AF47725B099D5717001F091E /* Frameworks */, AF47725F099D5717001F091E /* Rez */, - AFA3D88509C03C2700E4CFCA /* ShellScript */, + AFA3D88509C03C2700E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10140,7 +10616,7 @@ ); name = Halftone; productName = Halftone; - productReference = AF477263099D5717001F091E /* Halftone.saver */; + productReference = AF477263099D5717001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF47726B099D57B9001F091E /* PopSquares */ = { @@ -10151,7 +10627,7 @@ AF477270099D57B9001F091E /* Sources */, AF477273099D57B9001F091E /* Frameworks */, AF477277099D57B9001F091E /* Rez */, - AFA3D8BF09C03C8D00E4CFCA /* ShellScript */, + AFA3D8BF09C03C8D00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10160,7 +10636,7 @@ ); name = PopSquares; productName = PopSquares; - productReference = AF47727B099D57B9001F091E /* PopSquares.saver */; + productReference = AF47727B099D57B9001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477283099D5926001F091E /* Piecewise */ = { @@ -10171,7 +10647,7 @@ AF477288099D5926001F091E /* Sources */, AF47728B099D5926001F091E /* Frameworks */, AF47728F099D5926001F091E /* Rez */, - AFA3D8BB09C03C8600E4CFCA /* ShellScript */, + AFA3D8BB09C03C8600E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10180,7 +10656,7 @@ ); name = Piecewise; productName = Piecewise; - productReference = AF477293099D5926001F091E /* Piecewise.saver */; + productReference = AF477293099D5926001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477382099D65A1001F091E /* Wormhole */ = { @@ -10191,7 +10667,7 @@ AF477387099D65A1001F091E /* Sources */, AF47738A099D65A1001F091E /* Frameworks */, AF47738E099D65A1001F091E /* Rez */, - AFA3D8EF09C03CDE00E4CFCA /* ShellScript */, + AFA3D8EF09C03CDE00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10200,7 +10676,7 @@ ); name = Wormhole; productName = Wormhole; - productReference = AF477392099D65A1001F091E /* Wormhole.saver */; + productReference = AF477392099D65A1001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF47739A099D6648001F091E /* FuzzyFlakes */ = { @@ -10211,7 +10687,7 @@ AF47739F099D6648001F091E /* Sources */, AF4773A2099D6648001F091E /* Frameworks */, AF4773A6099D6648001F091E /* Rez */, - AFA3D87F09C03C1E00E4CFCA /* ShellScript */, + AFA3D87F09C03C1E00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10220,7 +10696,7 @@ ); name = FuzzyFlakes; productName = FuzzyFlakes; - productReference = AF4773AA099D6648001F091E /* FuzzyFlakes.saver */; + productReference = AF4773AA099D6648001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4773C1099D67B9001F091E /* Anemotaxis */ = { @@ -10231,7 +10707,7 @@ AF4773C6099D67B9001F091E /* Sources */, AF4773C9099D67B9001F091E /* Frameworks */, AF4773CD099D67B9001F091E /* Rez */, - AFCCCBC709C03AAF00353F4D /* ShellScript */, + AFCCCBC709C03AAF00353F4D /* Run Update Info Plist */, ); buildRules = ( ); @@ -10240,7 +10716,7 @@ ); name = Anemotaxis; productName = Anemotaxis; - productReference = AF4773D1099D67B9001F091E /* Anemotaxis.saver */; + productReference = AF4773D1099D67B9001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477401099D69E7001F091E /* Intermomentary */ = { @@ -10251,7 +10727,7 @@ AF477407099D69E7001F091E /* Sources */, AF47740A099D69E7001F091E /* Frameworks */, AF47740E099D69E7001F091E /* Rez */, - AFA3D89709C03C4700E4CFCA /* ShellScript */, + AFA3D89709C03C4700E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10260,7 +10736,7 @@ ); name = Intermomentary; productName = Intermomentary; - productReference = AF477412099D69E7001F091E /* Intermomentary.saver */; + productReference = AF477412099D69E7001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477426099D7C70001F091E /* IFS */ = { @@ -10271,7 +10747,7 @@ AF47742C099D7C70001F091E /* Sources */, AF47742F099D7C70001F091E /* Frameworks */, AF477433099D7C70001F091E /* Rez */, - AFA3D88F09C03C3900E4CFCA /* ShellScript */, + AFA3D88F09C03C3900E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10280,7 +10756,7 @@ ); name = IFS; productName = IFS; - productReference = AF477437099D7C70001F091E /* IFS.saver */; + productReference = AF477437099D7C70001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477442099D7D33001F091E /* XMatrix */ = { @@ -10291,7 +10767,7 @@ AF477447099D7D33001F091E /* Sources */, AF47744A099D7D33001F091E /* Frameworks */, AF47744E099D7D33001F091E /* Rez */, - AFA3D8F909C03CED00E4CFCA /* ShellScript */, + AFA3D8F909C03CED00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10300,7 +10776,7 @@ ); name = XMatrix; productName = XMatrix; - productReference = AF477452099D7D33001F091E /* XMatrix.saver */; + productReference = AF477452099D7D33001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477483099D89E4001F091E /* Flame */ = { @@ -10311,7 +10787,7 @@ AF477488099D89E4001F091E /* Sources */, AF47748B099D89E4001F091E /* Frameworks */, AF47748F099D89E4001F091E /* Rez */, - AFA3D87909C03C1200E4CFCA /* ShellScript */, + AFA3D87909C03C1200E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10320,7 +10796,7 @@ ); name = Flame; productName = Flame; - productReference = AF477493099D89E4001F091E /* Flame.saver */; + productReference = AF477493099D89E4001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477499099D8A74001F091E /* Kaleidescope */ = { @@ -10331,7 +10807,7 @@ AF47749E099D8A74001F091E /* Sources */, AF4774A1099D8A74001F091E /* Frameworks */, AF4774A5099D8A74001F091E /* Rez */, - AFA3D89B09C03C4D00E4CFCA /* ShellScript */, + AFA3D89B09C03C4D00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10340,7 +10816,7 @@ ); name = Kaleidescope; productName = Kaleidescope; - productReference = AF4774A9099D8A74001F091E /* Kaleidescope.saver */; + productReference = AF4774A9099D8A74001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4774B4099D8B5F001F091E /* LMorph */ = { @@ -10351,7 +10827,7 @@ AF4774B9099D8B5F001F091E /* Sources */, AF4774BC099D8B5F001F091E /* Frameworks */, AF4774C0099D8B5F001F091E /* Rez */, - AFA3D89F09C03C5300E4CFCA /* ShellScript */, + AFA3D89F09C03C5300E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10360,7 +10836,7 @@ ); name = LMorph; productName = LMorph; - productReference = AF4774C4099D8B5F001F091E /* LMorph.saver */; + productReference = AF4774C4099D8B5F001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4774CE099D8BFF001F091E /* Maze */ = { @@ -10371,7 +10847,7 @@ AF4774D3099D8BFF001F091E /* Sources */, AF4774D6099D8BFF001F091E /* Frameworks */, AF4774DA099D8BFF001F091E /* Rez */, - AFA3D8A109C03C5600E4CFCA /* ShellScript */, + AFA3D8A109C03C5600E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10380,7 +10856,7 @@ ); name = Maze; productName = Maze; - productReference = AF4774DE099D8BFF001F091E /* Maze.saver */; + productReference = AF4774DE099D8BFF001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF47755D099D9A1A001F091E /* Pedal */ = { @@ -10391,7 +10867,7 @@ AF477562099D9A1A001F091E /* Sources */, AF477565099D9A1A001F091E /* Frameworks */, AF477569099D9A1A001F091E /* Rez */, - AFA3D8B309C03C7900E4CFCA /* ShellScript */, + AFA3D8B309C03C7900E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10400,7 +10876,7 @@ ); name = Pedal; productName = Pedal; - productReference = AF47756D099D9A1A001F091E /* Pedal.saver */; + productReference = AF47756D099D9A1A001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477583099D9C28001F091E /* Pyro */ = { @@ -10411,7 +10887,7 @@ AF477588099D9C28001F091E /* Sources */, AF47758B099D9C28001F091E /* Frameworks */, AF47758F099D9C28001F091E /* Rez */, - AFA3D8C109C03C9000E4CFCA /* ShellScript */, + AFA3D8C109C03C9000E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10420,7 +10896,7 @@ ); name = Pyro; productName = Pyro; - productReference = AF477593099D9C28001F091E /* Pyro.saver */; + productReference = AF477593099D9C28001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF47759F099D9CF7001F091E /* Starfish */ = { @@ -10431,7 +10907,7 @@ AF4775A4099D9CF7001F091E /* Sources */, AF4775A7099D9CF7001F091E /* Frameworks */, AF4775AB099D9CF7001F091E /* Rez */, - AFA3D8DD09C03CBD00E4CFCA /* ShellScript */, + AFA3D8DD09C03CBD00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10440,7 +10916,7 @@ ); name = Starfish; productName = Starfish; - productReference = AF4775AF099D9CF7001F091E /* Starfish.saver */; + productReference = AF4775AF099D9CF7001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4775D8099D9F69001F091E /* Coral */ = { @@ -10451,7 +10927,7 @@ AF4775DD099D9F69001F091E /* Sources */, AF4775E0099D9F69001F091E /* Frameworks */, AF4775E4099D9F69001F091E /* Rez */, - AFA3D86509C03BE500E4CFCA /* ShellScript */, + AFA3D86509C03BE500E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10460,7 +10936,7 @@ ); name = Coral; productName = Coral; - productReference = AF4775E8099D9F69001F091E /* Coral.saver */; + productReference = AF4775E8099D9F69001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4775F2099DA030001F091E /* Epicycle */ = { @@ -10471,7 +10947,7 @@ AF4775F7099DA030001F091E /* Sources */, AF4775FA099DA030001F091E /* Frameworks */, AF4775FE099DA030001F091E /* Rez */, - AFA3D87309C03C0000E4CFCA /* ShellScript */, + AFA3D87309C03C0000E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10480,7 +10956,7 @@ ); name = Epicycle; productName = Epicycle; - productReference = AF477602099DA030001F091E /* Epicycle.saver */; + productReference = AF477602099DA030001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477613099DA26C001F091E /* Kumppa */ = { @@ -10491,7 +10967,7 @@ AF477618099DA26C001F091E /* Sources */, AF47761B099DA26C001F091E /* Frameworks */, AF47761F099DA26C001F091E /* Rez */, - AFA3D89D09C03C5000E4CFCA /* ShellScript */, + AFA3D89D09C03C5000E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10500,7 +10976,7 @@ ); name = Kumppa; productName = Kumppa; - productReference = AF477623099DA26C001F091E /* Kumppa.saver */; + productReference = AF477623099DA26C001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477644099DA6D0001F091E /* Squiral */ = { @@ -10511,7 +10987,7 @@ AF477649099DA6D0001F091E /* Sources */, AF47764C099DA6D0001F091E /* Frameworks */, AF477650099DA6D0001F091E /* Rez */, - AFA3D8DB09C03CBA00E4CFCA /* ShellScript */, + AFA3D8DB09C03CBA00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10520,7 +10996,7 @@ ); name = Squiral; productName = Squiral; - productReference = AF477654099DA6D0001F091E /* Squiral.saver */; + productReference = AF477654099DA6D0001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF47765A099DA78E001F091E /* Critical */ = { @@ -10531,7 +11007,7 @@ AF47765F099DA78E001F091E /* Sources */, AF477662099DA78E001F091E /* Frameworks */, AF477666099DA78E001F091E /* Rez */, - AFA3D86709C03BE800E4CFCA /* ShellScript */, + AFA3D86709C03BE800E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10540,7 +11016,7 @@ ); name = Critical; productName = Critical; - productReference = AF47766A099DA78F001F091E /* Critical.saver */; + productReference = AF47766A099DA78F001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477670099DA849001F091E /* Petri */ = { @@ -10551,7 +11027,7 @@ AF477675099DA849001F091E /* Sources */, AF477678099DA849001F091E /* Frameworks */, AF47767C099DA849001F091E /* Rez */, - AFA3D8B709C03C7F00E4CFCA /* ShellScript */, + AFA3D8B709C03C7F00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10560,7 +11036,7 @@ ); name = Petri; productName = Petri; - productReference = AF477680099DA849001F091E /* Petri.saver */; + productReference = AF477680099DA849001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF47768F099DAA6F001F091E /* Blaster */ = { @@ -10571,7 +11047,7 @@ AF477694099DAA6F001F091E /* Sources */, AF477697099DAA6F001F091E /* Frameworks */, AF47769B099DAA6F001F091E /* Rez */, - AFCCCBD109C03AFC00353F4D /* ShellScript */, + AFCCCBD109C03AFC00353F4D /* Run Update Info Plist */, ); buildRules = ( ); @@ -10580,7 +11056,7 @@ ); name = Blaster; productName = Blaster; - productReference = AF47769F099DAA6F001F091E /* Blaster.saver */; + productReference = AF47769F099DAA6F001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4776AA099DABDD001F091E /* XSpirograph */ = { @@ -10591,7 +11067,7 @@ AF4776AF099DABDD001F091E /* Sources */, AF4776B2099DABDD001F091E /* Frameworks */, AF4776B6099DABDD001F091E /* Rez */, - AFA3D8FD09C03CF400E4CFCA /* ShellScript */, + AFA3D8FD09C03CF400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10600,7 +11076,7 @@ ); name = XSpirograph; productName = XSpirograph; - productReference = AF4776BA099DABDD001F091E /* XSpirograph.saver */; + productReference = AF4776BA099DABDD001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4776C0099DAC8A001F091E /* XRaySwarm */ = { @@ -10611,7 +11087,7 @@ AF4776C5099DAC8A001F091E /* Sources */, AF4776C8099DAC8A001F091E /* Frameworks */, AF4776CC099DAC8A001F091E /* Rez */, - AFA3D8FB09C03CF100E4CFCA /* ShellScript */, + AFA3D8FB09C03CF100E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10620,7 +11096,7 @@ ); name = XRaySwarm; productName = XRaySwarm; - productReference = AF4776D0099DAC8A001F091E /* XRaySwarm.saver */; + productReference = AF4776D0099DAC8A001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4776DB099DADDF001F091E /* WhirlWindWarp */ = { @@ -10631,7 +11107,7 @@ AF4776E0099DADDF001F091E /* Sources */, AF4776E3099DADDF001F091E /* Frameworks */, AF4776E7099DADDF001F091E /* Rez */, - AFA3D8EB09C03CD800E4CFCA /* ShellScript */, + AFA3D8EB09C03CD800E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10640,7 +11116,7 @@ ); name = WhirlWindWarp; productName = WhirlWindWarp; - productReference = AF4776EB099DADDF001F091E /* WhirlWindWarp.saver */; + productReference = AF4776EB099DADDF001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4776F1099DAE7A001F091E /* Vermiculate */ = { @@ -10651,7 +11127,7 @@ AF4776F6099DAE7A001F091E /* Sources */, AF4776F9099DAE7A001F091E /* Frameworks */, AF4776FD099DAE7A001F091E /* Rez */, - AFA3D8E709C03CD100E4CFCA /* ShellScript */, + AFA3D8E709C03CD100E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10660,7 +11136,7 @@ ); name = Vermiculate; productName = Vermiculate; - productReference = AF477701099DAE7A001F091E /* Vermiculate.saver */; + productReference = AF477701099DAE7A001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF47770D099DAF9F001F091E /* CloudLife */ = { @@ -10671,7 +11147,7 @@ AF477712099DAF9F001F091E /* Sources */, AF477715099DAF9F001F091E /* Frameworks */, AF477719099DAF9F001F091E /* Rez */, - AFA3D86109C03BDE00E4CFCA /* ShellScript */, + AFA3D86109C03BDE00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10680,7 +11156,7 @@ ); name = CloudLife; productName = CloudLife; - productReference = AF47771D099DAF9F001F091E /* CloudLife.saver */; + productReference = AF47771D099DAF9F001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477723099DB044001F091E /* Substrate */ = { @@ -10691,7 +11167,7 @@ AF477728099DB044001F091E /* Sources */, AF47772B099DB044001F091E /* Frameworks */, AF47772F099DB044001F091E /* Rez */, - AFA3D8DF09C03CC000E4CFCA /* ShellScript */, + AFA3D8DF09C03CC000E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10700,7 +11176,7 @@ ); name = Substrate; productName = Substrate; - productReference = AF477733099DB044001F091E /* Substrate.saver */; + productReference = AF477733099DB044001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477752099DB61E001F091E /* Interaggregate */ = { @@ -10711,7 +11187,7 @@ AF477757099DB61E001F091E /* Sources */, AF47775A099DB61E001F091E /* Frameworks */, AF47775E099DB61E001F091E /* Rez */, - AFA3D89309C03C4000E4CFCA /* ShellScript */, + AFA3D89309C03C4000E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10720,7 +11196,7 @@ ); name = Interaggregate; productName = Interaggregate; - productReference = AF477762099DB61E001F091E /* Interaggregate.saver */; + productReference = AF477762099DB61E001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477774099DB965001F091E /* Celtic */ = { @@ -10731,7 +11207,7 @@ AF477779099DB965001F091E /* Sources */, AF47777C099DB965001F091E /* Frameworks */, AF477780099DB965001F091E /* Rez */, - AFA3D85F09C03BDA00E4CFCA /* ShellScript */, + AFA3D85F09C03BDA00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10740,7 +11216,7 @@ ); name = Celtic; productName = Celtic; - productReference = AF477784099DB965001F091E /* Celtic.saver */; + productReference = AF477784099DB965001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477790099DBA90001F091E /* FluidBalls */ = { @@ -10751,7 +11227,7 @@ AF477795099DBA90001F091E /* Sources */, AF477798099DBA90001F091E /* Frameworks */, AF47779C099DBA90001F091E /* Rez */, - AFA3D87B09C03C1700E4CFCA /* ShellScript */, + AFA3D87B09C03C1700E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10760,7 +11236,7 @@ ); name = FluidBalls; productName = FluidBalls; - productReference = AF4777A0099DBA90001F091E /* FluidBalls.saver */; + productReference = AF4777A0099DBA90001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4777D1099DC183001F091E /* BoxFit */ = { @@ -10771,7 +11247,7 @@ AF4777D6099DC183001F091E /* Sources */, AF4777D9099DC183001F091E /* Frameworks */, AF4777DD099DC183001F091E /* Rez */, - AFCCCBD509C03B0500353F4D /* ShellScript */, + AFCCCBD509C03B0500353F4D /* Run Update Info Plist */, ); buildRules = ( ); @@ -10780,7 +11256,7 @@ ); name = BoxFit; productName = BoxFit; - productReference = AF4777E1099DC183001F091E /* BoxFit.saver */; + productReference = AF4777E1099DC183001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4778AB099DDB79001F091E /* Penetrate */ = { @@ -10791,7 +11267,7 @@ AF4778B0099DDB79001F091E /* Sources */, AF4778B3099DDB79001F091E /* Frameworks */, AF4778B7099DDB79001F091E /* Rez */, - AFA3D8B509C03C7C00E4CFCA /* ShellScript */, + AFA3D8B509C03C7C00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10800,7 +11276,7 @@ ); name = Penetrate; productName = Penetrate; - productReference = AF4778BB099DDB79001F091E /* Penetrate.saver */; + productReference = AF4778BB099DDB79001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4778C7099DDCAE001F091E /* XJack */ = { @@ -10811,7 +11287,7 @@ AF4778CC099DDCAE001F091E /* Sources */, AF4778CF099DDCAE001F091E /* Frameworks */, AF4778D3099DDCAE001F091E /* Rez */, - AFA3D8F509C03CE800E4CFCA /* ShellScript */, + AFA3D8F509C03CE800E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10820,7 +11296,7 @@ ); name = XJack; productName = XJack; - productReference = AF4778D7099DDCAE001F091E /* XJack.saver */; + productReference = AF4778D7099DDCAE001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4778E8099DDDC8001F091E /* Cynosure */ = { @@ -10831,7 +11307,7 @@ AF4778ED099DDDC8001F091E /* Sources */, AF4778F0099DDDC8001F091E /* Frameworks */, AF4778F4099DDDC8001F091E /* Rez */, - AFA3D86909C03BEC00E4CFCA /* ShellScript */, + AFA3D86909C03BEC00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10840,7 +11316,7 @@ ); name = Cynosure; productName = Cynosure; - productReference = AF4778F8099DDDC8001F091E /* Cynosure.saver */; + productReference = AF4778F8099DDDC8001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF477909099DE379001F091E /* Flag */ = { @@ -10851,7 +11327,7 @@ AF47790E099DE379001F091E /* Sources */, AF477911099DE379001F091E /* Frameworks */, AF477915099DE379001F091E /* Rez */, - AFA3D91709C03D2400E4CFCA /* ShellScript */, + AFA3D91709C03D2400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10860,7 +11336,7 @@ ); name = Flag; productName = Flag; - productReference = AF477919099DE379001F091E /* Flag.saver */; + productReference = AF477919099DE379001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF47792A099DE4C7001F091E /* Slip */ = { @@ -10871,7 +11347,7 @@ AF47792F099DE4C7001F091E /* Sources */, AF477932099DE4C7001F091E /* Frameworks */, AF477936099DE4C7001F091E /* Rez */, - AFA3D8D309C03CAE00E4CFCA /* ShellScript */, + AFA3D8D309C03CAE00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10880,7 +11356,7 @@ ); name = Slip; productName = Slip; - productReference = AF47793A099DE4C7001F091E /* Slip.saver */; + productReference = AF47793A099DE4C7001F091E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4808C0098C3B6C00FB32B8 /* jwxyz */ = { @@ -10908,7 +11384,7 @@ AF480C4E098E301400FB32B8 /* Sources */, AF480C50098E301400FB32B8 /* Frameworks */, AF480C54098E301400FB32B8 /* Rez */, - AFA3D88909C03C2E00E4CFCA /* ShellScript */, + AFA3D88909C03C2E00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10917,7 +11393,7 @@ ); name = Helix; productName = Helix; - productReference = AF480C58098E301400FB32B8 /* Helix.saver */; + productReference = AF480C58098E301400FB32B8 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF480D72098EEDDE00FB32B8 /* Drift */ = { @@ -10928,7 +11404,7 @@ AF480D77098EEDDE00FB32B8 /* Sources */, AF480D79098EEDDE00FB32B8 /* Frameworks */, AF480D7D098EEDDE00FB32B8 /* Rez */, - AFA3D90F09C03D1800E4CFCA /* ShellScript */, + AFA3D90F09C03D1800E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10937,7 +11413,7 @@ ); name = Drift; productName = Drift; - productReference = AF480D81098EEDDE00FB32B8 /* Drift.saver */; + productReference = AF480D81098EEDDE00FB32B8 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4810EB09909FBA00FB32B8 /* DangerBall */ = { @@ -10948,7 +11424,7 @@ AF4810F009909FBA00FB32B8 /* Sources */, AF4810F309909FBA00FB32B8 /* Frameworks */, AF4810F709909FBA00FB32B8 /* Rez */, - AFA3D97109C03DD000E4CFCA /* ShellScript */, + AFA3D97109C03DD000E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10957,7 +11433,7 @@ ); name = DangerBall; productName = DangerBall; - productReference = AF4810FB09909FBA00FB32B8 /* DangerBall.saver */; + productReference = AF4810FB09909FBA00FB32B8 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4812500990CE2700FB32B8 /* Gears */ = { @@ -10968,7 +11444,7 @@ AF4812550990CE2700FB32B8 /* Sources */, AF4812590990CE2700FB32B8 /* Frameworks */, AF4812600990CE2700FB32B8 /* Rez */, - AFA3D98309C03DEE00E4CFCA /* ShellScript */, + AFA3D98309C03DEE00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10977,7 +11453,7 @@ ); name = Gears; productName = Gears; - productReference = AF4812640990CE2700FB32B8 /* Gears.saver */; + productReference = AF4812640990CE2700FB32B8 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4812B30990D3D900FB32B8 /* Pipes */ = { @@ -10988,7 +11464,7 @@ AF4812B80990D3D900FB32B8 /* Sources */, AF4812BB0990D3D900FB32B8 /* Frameworks */, AF4812C20990D3D900FB32B8 /* Rez */, - AFA3D9B509C03E5700E4CFCA /* ShellScript */, + AFA3D9B509C03E5700E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -10997,7 +11473,7 @@ ); name = Pipes; productName = Pipes; - productReference = AF4812C60990D3D900FB32B8 /* Pipes.saver */; + productReference = AF4812C60990D3D900FB32B8 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF48DEEF0A0C25E000F94CF9 /* GLSchool */ = { @@ -11008,7 +11484,7 @@ AF48DEF40A0C25E000F94CF9 /* Sources */, AF48DEF70A0C25E000F94CF9 /* Frameworks */, AF48DEFE0A0C25E000F94CF9 /* Rez */, - AF48DEFF0A0C25E000F94CF9 /* ShellScript */, + AF48DEFF0A0C25E000F94CF9 /* Run Update Info Plist */, ); buildRules = ( ); @@ -11017,7 +11493,7 @@ ); name = GLSchool; productName = GLSchool; - productReference = AF48DF030A0C25E000F94CF9 /* GLSchool.saver */; + productReference = AF48DF030A0C25E000F94CF9 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4A3449102A593600A81B2A /* Surfaces */ = { @@ -11028,7 +11504,7 @@ AF4A344E102A593600A81B2A /* Sources */, AF4A3451102A593600A81B2A /* Frameworks */, AF4A3458102A593600A81B2A /* Rez */, - AF4A3459102A593600A81B2A /* ShellScript */, + AF4A3459102A593600A81B2A /* Run Update Info Plist */, ); buildRules = ( ); @@ -11037,7 +11513,7 @@ ); name = Surfaces; productName = Surfaces; - productReference = AF4A345D102A593600A81B2A /* Surfaces.saver */; + productReference = AF4A345D102A593600A81B2A /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4FD6E60CE7A486005EE58E /* Lockward */ = { @@ -11048,7 +11524,7 @@ AF4FD6EB0CE7A486005EE58E /* Sources */, AF4FD6EE0CE7A486005EE58E /* Frameworks */, AF4FD6F50CE7A486005EE58E /* Rez */, - AF4FD6F60CE7A486005EE58E /* ShellScript */, + AF4FD6F60CE7A486005EE58E /* Run Update Info Plist */, ); buildRules = ( ); @@ -11057,7 +11533,7 @@ ); name = Lockward; productName = Lockward; - productReference = AF4FD6FA0CE7A486005EE58E /* Lockward.saver */; + productReference = AF4FD6FA0CE7A486005EE58E /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF4FF4BA0D52CBDE00666F98 /* CubicGrid */ = { @@ -11068,7 +11544,7 @@ AF4FF4BF0D52CBDE00666F98 /* Sources */, AF4FF4C20D52CBDE00666F98 /* Frameworks */, AF4FF4C90D52CBDE00666F98 /* Rez */, - AF4FF4CA0D52CBDE00666F98 /* ShellScript */, + AF4FF4CA0D52CBDE00666F98 /* Run Update Info Plist */, ); buildRules = ( ); @@ -11077,7 +11553,7 @@ ); name = CubicGrid; productName = CubicGrid; - productReference = AF4FF4CE0D52CBDE00666F98 /* CubicGrid.saver */; + productReference = AF4FF4CE0D52CBDE00666F98 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF6423F2099FF9C2000F4CD4 /* Extrusion */ = { @@ -11088,7 +11564,7 @@ AF6423F7099FF9C2000F4CD4 /* Sources */, AF6423FA099FF9C2000F4CD4 /* Frameworks */, AF642401099FF9C2000F4CD4 /* Rez */, - AFA3D97909C03DDD00E4CFCA /* ShellScript */, + AFA3D97909C03DDD00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11097,7 +11573,7 @@ ); name = Extrusion; productName = Extrusion; - productReference = AF642405099FF9C2000F4CD4 /* Extrusion.saver */; + productReference = AF642405099FF9C2000F4CD4 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF6425CC09A18855000F4CD4 /* HyperCube */ = { @@ -11108,7 +11584,7 @@ AF6425D109A18855000F4CD4 /* Sources */, AF6425D409A18855000F4CD4 /* Frameworks */, AF6425D809A18855000F4CD4 /* Rez */, - AFA3D88D09C03C3600E4CFCA /* ShellScript */, + AFA3D88D09C03C3600E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11117,7 +11593,7 @@ ); name = HyperCube; productName = HyperCube; - productReference = AF6425DC09A18856000F4CD4 /* HyperCube.saver */; + productReference = AF6425DC09A18856000F4CD4 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF6425EC09A189EC000F4CD4 /* Qix */ = { @@ -11128,7 +11604,7 @@ AF6425F109A189EC000F4CD4 /* Sources */, AF6425F409A189EC000F4CD4 /* Frameworks */, AF6425F809A189EC000F4CD4 /* Rez */, - AFA3D8C309C03C9300E4CFCA /* ShellScript */, + AFA3D8C309C03C9300E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11137,7 +11613,7 @@ ); name = Qix; productName = Qix; - productReference = AF6425FC09A189EC000F4CD4 /* Qix.saver */; + productReference = AF6425FC09A189EC000F4CD4 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF64260F09A18D6C000F4CD4 /* HyperBall */ = { @@ -11148,7 +11624,7 @@ AF64261409A18D6C000F4CD4 /* Sources */, AF64261709A18D6C000F4CD4 /* Frameworks */, AF64261B09A18D6C000F4CD4 /* Rez */, - AFA3D88B09C03C3200E4CFCA /* ShellScript */, + AFA3D88B09C03C3200E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11157,7 +11633,7 @@ ); name = HyperBall; productName = HyperBall; - productReference = AF64261F09A18D6C000F4CD4 /* HyperBall.saver */; + productReference = AF64261F09A18D6C000F4CD4 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF64262C09A18F54000F4CD4 /* Moire2 */ = { @@ -11168,7 +11644,7 @@ AF64263109A18F54000F4CD4 /* Sources */, AF64263409A18F54000F4CD4 /* Frameworks */, AF64263809A18F54000F4CD4 /* Rez */, - AFA3D8AB09C03C6D00E4CFCA /* ShellScript */, + AFA3D8AB09C03C6D00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11177,7 +11653,7 @@ ); name = Moire2; productName = Moire2; - productReference = AF64263C09A18F54000F4CD4 /* Moire2.saver */; + productReference = AF64263C09A18F54000F4CD4 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF64264F09A19229000F4CD4 /* Munch */ = { @@ -11188,7 +11664,7 @@ AF64265409A19229000F4CD4 /* Sources */, AF64265709A19229000F4CD4 /* Frameworks */, AF64265B09A19229000F4CD4 /* Rez */, - AFA3D8AD09C03C7000E4CFCA /* ShellScript */, + AFA3D8AD09C03C7000E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11197,7 +11673,7 @@ ); name = Munch; productName = Munch; - productReference = AF64265F09A19229000F4CD4 /* Munch.saver */; + productReference = AF64265F09A19229000F4CD4 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF64267B09A194B0000F4CD4 /* Goop */ = { @@ -11208,7 +11684,7 @@ AF64268009A194B0000F4CD4 /* Sources */, AF64268309A194B0000F4CD4 /* Frameworks */, AF64268709A194B0000F4CD4 /* Rez */, - AFA3D88109C03C2100E4CFCA /* ShellScript */, + AFA3D88109C03C2100E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11217,7 +11693,7 @@ ); name = Goop; productName = Goop; - productReference = AF64268B09A194B0000F4CD4 /* Goop.saver */; + productReference = AF64268B09A194B0000F4CD4 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF64277109A1D37A000F4CD4 /* SpeedMine */ = { @@ -11228,7 +11704,7 @@ AF64277609A1D37A000F4CD4 /* Sources */, AF64277909A1D37A000F4CD4 /* Frameworks */, AF64277D09A1D37A000F4CD4 /* Rez */, - AFA3D8D709C03CB400E4CFCA /* ShellScript */, + AFA3D8D709C03CB400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11237,7 +11713,7 @@ ); name = SpeedMine; productName = SpeedMine; - productReference = AF64278109A1D37A000F4CD4 /* SpeedMine.saver */; + productReference = AF64278109A1D37A000F4CD4 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF6427A809A2DE36000F4CD4 /* Bubbles */ = { @@ -11248,7 +11724,7 @@ AF6427AD09A2DE36000F4CD4 /* Sources */, AF6427B009A2DE36000F4CD4 /* Frameworks */, AF6427B409A2DE36000F4CD4 /* Rez */, - AFA3D69409C03B6200E4CFCA /* ShellScript */, + AFA3D69409C03B6200E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11257,7 +11733,7 @@ ); name = Bubbles; productName = Bubbles; - productReference = AF6427B809A2DE36000F4CD4 /* Bubbles.saver */; + productReference = AF6427B809A2DE36000F4CD4 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF7776E409B63ABF00EA3033 /* Phosphor */ = { @@ -11268,7 +11744,7 @@ AF7776E909B63ABF00EA3033 /* Sources */, AF7776EE09B63ABF00EA3033 /* Frameworks */, AF7776F209B63ABF00EA3033 /* Rez */, - AFA3D8B909C03C8200E4CFCA /* ShellScript */, + AFA3D8B909C03C8200E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11288,7 +11764,7 @@ AF77771F09B6416100EA3033 /* Sources */, AF77772209B6416100EA3033 /* Frameworks */, AF77772609B6416100EA3033 /* Rez */, - AFA3D93509C03D5700E4CFCA /* ShellScript */, + AFA3D93509C03D5700E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11297,7 +11773,7 @@ ); name = Pacman; productName = Pacman; - productReference = AF77772A09B6416100EA3033 /* Pacman.saver */; + productReference = AF77772A09B6416100EA3033 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF77773E09B6446500EA3033 /* FlipScreen3D */ = { @@ -11308,7 +11784,7 @@ AF77774309B6446500EA3033 /* Sources */, AF77774609B6446500EA3033 /* Frameworks */, AF77774D09B6446500EA3033 /* Rez */, - AFA3D97D09C03DE400E4CFCA /* ShellScript */, + AFA3D97D09C03DE400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11317,7 +11793,7 @@ ); name = FlipScreen3D; productName = FlipScreen3D; - productReference = AF77775109B6446500EA3033 /* FlipScreen3D.saver */; + productReference = AF77775109B6446500EA3033 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF77777409B6497800EA3033 /* Gleidescope */ = { @@ -11328,7 +11804,7 @@ AF77777909B6497800EA3033 /* Sources */, AF77777D09B6497800EA3033 /* Frameworks */, AF77778409B6497800EA3033 /* Rez */, - AFA3D98509C03DF100E4CFCA /* ShellScript */, + AFA3D98509C03DF100E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11337,7 +11813,7 @@ ); name = Gleidescope; productName = Gleidescope; - productReference = AF34085609B80AB000F2CEC1 /* Gleidescope.saver */; + productReference = AF34085609B80AB000F2CEC1 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF77778E09B64A5200EA3033 /* MirrorBlob */ = { @@ -11348,7 +11824,7 @@ AF77779309B64A5200EA3033 /* Sources */, AF77779709B64A5200EA3033 /* Frameworks */, AF77779E09B64A5200EA3033 /* Rez */, - AFA3D9A909C03E3D00E4CFCA /* ShellScript */, + AFA3D9A909C03E3D00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11357,7 +11833,7 @@ ); name = MirrorBlob; productName = MirrorBlob; - productReference = AF7777A209B64A5200EA3033 /* MirrorBlob.saver */; + productReference = AF7777A209B64A5200EA3033 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF7777A809B64B2600EA3033 /* StonerView */ = { @@ -11368,7 +11844,7 @@ AF7777AD09B64B2600EA3033 /* Sources */, AF7777B109B64B2600EA3033 /* Frameworks */, AF7777B809B64B2600EA3033 /* Rez */, - AFA3D9CF09C03E8700E4CFCA /* ShellScript */, + AFA3D9CF09C03E8700E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11377,7 +11853,7 @@ ); name = StonerView; productName = StonerView; - productReference = AF34085509B80AB000F2CEC1 /* StonerView.saver */; + productReference = AF34085509B80AB000F2CEC1 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF7777D009B64C6B00EA3033 /* GLSlideshow */ = { @@ -11388,7 +11864,7 @@ AF7777D509B64C6B00EA3033 /* Sources */, AF7777D909B64C6B00EA3033 /* Frameworks */, AF7777E009B64C6B00EA3033 /* Rez */, - AFA3D99509C03E1900E4CFCA /* ShellScript */, + AFA3D99509C03E1900E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11397,7 +11873,7 @@ ); name = GLSlideshow; productName = GLSlideshow; - productReference = AF7777E409B64C6B00EA3033 /* GLSlideshow.saver */; + productReference = AF7777E409B64C6B00EA3033 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF7777EA09B64E3100EA3033 /* FlipText */ = { @@ -11408,7 +11884,7 @@ AF7777EF09B64E3100EA3033 /* Sources */, AF7777F309B64E3100EA3033 /* Frameworks */, AF7777FA09B64E3100EA3033 /* Rez */, - AFA3D97F09C03DE700E4CFCA /* ShellScript */, + AFA3D97F09C03DE700E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11417,7 +11893,7 @@ ); name = FlipText; productName = FlipText; - productReference = AF7777FE09B64E3100EA3033 /* FlipText.saver */; + productReference = AF7777FE09B64E3100EA3033 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF77781009B6504400EA3033 /* StarWars */ = { @@ -11428,7 +11904,7 @@ AF77781509B6504400EA3033 /* Sources */, AF77781A09B6504400EA3033 /* Frameworks */, AF77782109B6504400EA3033 /* Rez */, - AFA3D9CD09C03E8400E4CFCA /* ShellScript */, + AFA3D9CD09C03E8400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11437,7 +11913,7 @@ ); name = StarWars; productName = StarWars; - productReference = AF34085409B80AAF00F2CEC1 /* StarWars.saver */; + productReference = AF34085409B80AAF00F2CEC1 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF77784409B6528100EA3033 /* Carousel */ = { @@ -11448,7 +11924,7 @@ AF77784A09B6528100EA3033 /* Sources */, AF77784D09B6528100EA3033 /* Frameworks */, AF77785409B6528100EA3033 /* Rez */, - AFA3D96509C03DB900E4CFCA /* ShellScript */, + AFA3D96509C03DB900E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11457,7 +11933,7 @@ ); name = Carousel; productName = Carousel; - productReference = AF77785809B6528100EA3033 /* Carousel.saver */; + productReference = AF77785809B6528100EA3033 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF77786109B6536000EA3033 /* DNAlogo */ = { @@ -11468,7 +11944,7 @@ AF77786609B6536000EA3033 /* Sources */, AF77786909B6536000EA3033 /* Frameworks */, AF77787009B6536000EA3033 /* Rez */, - AFA3D97309C03DD300E4CFCA /* ShellScript */, + AFA3D97309C03DD300E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11477,7 +11953,7 @@ ); name = DNAlogo; productName = DNAlogo; - productReference = AF77787409B6536000EA3033 /* DNAlogo.saver */; + productReference = AF77787409B6536000EA3033 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF77787F09B6563500EA3033 /* FontGlide */ = { @@ -11488,7 +11964,7 @@ AF77788409B6563500EA3033 /* Sources */, AF77788709B6563500EA3033 /* Frameworks */, AF77788B09B6563500EA3033 /* Rez */, - AFA3D87D09C03C1B00E4CFCA /* ShellScript */, + AFA3D87D09C03C1B00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11497,7 +11973,7 @@ ); name = FontGlide; productName = FontGlide; - productReference = AF34085709B80AB000F2CEC1 /* FontGlide.saver */; + productReference = AF34085709B80AB000F2CEC1 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF7778A509B659C800EA3033 /* BlitSpin */ = { @@ -11508,7 +11984,7 @@ AF7778AA09B659C800EA3033 /* Sources */, AF7778AD09B659C800EA3033 /* Frameworks */, AF7778B109B659C800EA3033 /* Rez */, - AFCCCBD309C03B0000353F4D /* ShellScript */, + AFCCCBD309C03B0000353F4D /* Run Update Info Plist */, ); buildRules = ( ); @@ -11517,7 +11993,7 @@ ); name = BlitSpin; productName = BlitSpin; - productReference = AF7778B509B659C800EA3033 /* BlitSpin.saver */; + productReference = AF7778B509B659C800EA3033 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF78D175142DD8F3002AAF77 /* Hilbert */ = { @@ -11528,7 +12004,7 @@ AF78D17A142DD8F3002AAF77 /* Sources */, AF78D17D142DD8F3002AAF77 /* Frameworks */, AF78D184142DD8F3002AAF77 /* Rez */, - AF78D185142DD8F3002AAF77 /* ShellScript */, + AF78D185142DD8F3002AAF77 /* Run Update Info Plist */, ); buildRules = ( ); @@ -11537,7 +12013,7 @@ ); name = Hilbert; productName = Hilbert; - productReference = AF78D189142DD8F3002AAF77 /* Hilbert.saver */; + productReference = AF78D189142DD8F3002AAF77 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF794F64099748450059A8B0 /* Demon */ = { @@ -11548,7 +12024,7 @@ AF794F69099748450059A8B0 /* Sources */, AF794F6C099748450059A8B0 /* Frameworks */, AF794F70099748450059A8B0 /* Rez */, - AFA3D90B09C03D1100E4CFCA /* ShellScript */, + AFA3D90B09C03D1100E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11557,7 +12033,7 @@ ); name = Demon; productName = Demon; - productReference = AF794F74099748450059A8B0 /* Demon.saver */; + productReference = AF794F74099748450059A8B0 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF794F8E09974A320059A8B0 /* Fiberlamp */ = { @@ -11568,7 +12044,7 @@ AF794F9309974A320059A8B0 /* Sources */, AF794F9609974A320059A8B0 /* Frameworks */, AF794F9A09974A320059A8B0 /* Rez */, - AFA3D91509C03D2100E4CFCA /* ShellScript */, + AFA3D91509C03D2100E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11577,7 +12053,7 @@ ); name = Fiberlamp; productName = Fiberlamp; - productReference = AF794F9E09974A320059A8B0 /* Fiberlamp.saver */; + productReference = AF794F9E09974A320059A8B0 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF794FCD09974FA60059A8B0 /* Loop */ = { @@ -11588,7 +12064,7 @@ AF794FD209974FA60059A8B0 /* Sources */, AF794FD509974FA60059A8B0 /* Frameworks */, AF794FD909974FA60059A8B0 /* Rez */, - AFA3D93109C03D5100E4CFCA /* ShellScript */, + AFA3D93109C03D5100E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11597,9 +12073,28 @@ ); name = Loop; productName = Loop; - productReference = AF794FDD09974FA60059A8B0 /* Loop.saver */; + productReference = AF794FDD09974FA60059A8B0 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; + AF918977158FC00A002B5D1E /* XScreenSaver-iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = AF91898C158FC00A002B5D1E /* Build configuration list for PBXNativeTarget "XScreenSaver-iOS" */; + buildPhases = ( + AF91897B158FC00A002B5D1E /* Resources */, + AF918985158FC00A002B5D1E /* Sources */, + AF918989158FC00A002B5D1E /* Frameworks */, + AF91898A158FC00A002B5D1E /* Run Update Info Plist */, + ); + buildRules = ( + ); + dependencies = ( + AF918978158FC00A002B5D1E /* PBXTargetDependency */, + ); + name = "XScreenSaver-iOS"; + productName = SaverTester; + productReference = AF91898F158FC00A002B5D1E /* XScreenSaver.app */; + productType = "com.apple.product-type.application"; + }; AF97572D099C317000B05160 /* IMSMap */ = { isa = PBXNativeTarget; buildConfigurationList = AF97573A099C317000B05160 /* Build configuration list for PBXNativeTarget "IMSMap" */; @@ -11608,7 +12103,7 @@ AF975732099C317000B05160 /* Sources */, AF975735099C317000B05160 /* Frameworks */, AF975739099C317000B05160 /* Rez */, - AFA3D89109C03C3C00E4CFCA /* ShellScript */, + AFA3D89109C03C3C00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11617,7 +12112,7 @@ ); name = IMSMap; productName = IMSMap; - productReference = AF97573D099C317000B05160 /* IMSMap.saver */; + productReference = AF97573D099C317000B05160 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF975775099C374A00B05160 /* Moire */ = { @@ -11628,7 +12123,7 @@ AF97577A099C374A00B05160 /* Sources */, AF97577D099C374A00B05160 /* Frameworks */, AF975781099C374A00B05160 /* Rez */, - AFA3D8A909C03C6900E4CFCA /* ShellScript */, + AFA3D8A909C03C6900E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11637,7 +12132,7 @@ ); name = Moire; productName = Moire; - productReference = AF975785099C374A00B05160 /* Moire.saver */; + productReference = AF975785099C374A00B05160 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9757C2099C3E6300B05160 /* RDbomb */ = { @@ -11648,7 +12143,7 @@ AF9757C7099C3E6300B05160 /* Sources */, AF9757CA099C3E6300B05160 /* Frameworks */, AF9757CE099C3E6300B05160 /* Rez */, - AFA3D8C509C03C9600E4CFCA /* ShellScript */, + AFA3D8C509C03C9600E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11657,7 +12152,7 @@ ); name = RDbomb; productName = RDbomb; - productReference = AF9757D2099C3E6300B05160 /* RDbomb.saver */; + productReference = AF9757D2099C3E6300B05160 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF975808099C41D500B05160 /* XFlame */ = { @@ -11668,7 +12163,7 @@ AF97580D099C41D500B05160 /* Sources */, AF975810099C41D500B05160 /* Frameworks */, AF975814099C41D500B05160 /* Rez */, - AFA3D8F109C03CE100E4CFCA /* ShellScript */, + AFA3D8F109C03CE100E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11677,7 +12172,7 @@ ); name = XFlame; productName = XFlame; - productReference = AF975818099C41D500B05160 /* XFlame.saver */; + productReference = AF975818099C41D500B05160 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF975865099C475900B05160 /* ShadeBobs */ = { @@ -11688,7 +12183,7 @@ AF97586A099C475900B05160 /* Sources */, AF97586D099C475900B05160 /* Frameworks */, AF975871099C475900B05160 /* Rez */, - AFA3D8CF09C03CA800E4CFCA /* ShellScript */, + AFA3D8CF09C03CA800E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11697,7 +12192,7 @@ ); name = ShadeBobs; productName = ShadeBobs; - productReference = AF975875099C475900B05160 /* ShadeBobs.saver */; + productReference = AF975875099C475900B05160 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF975A36099C681F00B05160 /* MetaBalls */ = { @@ -11708,7 +12203,7 @@ AF975A3B099C681F00B05160 /* Sources */, AF975A3E099C681F00B05160 /* Frameworks */, AF975A42099C681F00B05160 /* Rez */, - AFA3D8A509C03C6200E4CFCA /* ShellScript */, + AFA3D8A509C03C6200E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11717,7 +12212,7 @@ ); name = MetaBalls; productName = MetaBalls; - productReference = AF975A46099C681F00B05160 /* MetaBalls.saver */; + productReference = AF975A46099C681F00B05160 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF975A6C099C6AB200B05160 /* Eruption */ = { @@ -11728,7 +12223,7 @@ AF975A71099C6AB200B05160 /* Sources */, AF975A74099C6AB200B05160 /* Frameworks */, AF975A78099C6AB200B05160 /* Rez */, - AFA3D87509C03C0400E4CFCA /* ShellScript */, + AFA3D87509C03C0400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11737,7 +12232,7 @@ ); name = Eruption; productName = Eruption; - productReference = AF975A7C099C6AB200B05160 /* Eruption.saver */; + productReference = AF975A7C099C6AB200B05160 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF975A86099C6BC300B05160 /* Barcode */ = { @@ -11748,7 +12243,7 @@ AF975A8B099C6BC300B05160 /* Sources */, AF975A8E099C6BC300B05160 /* Frameworks */, AF975A92099C6BC300B05160 /* Rez */, - AFCCCBCF09C03AF800353F4D /* ShellScript */, + AFCCCBCF09C03AF800353F4D /* Run Update Info Plist */, ); buildRules = ( ); @@ -11757,7 +12252,7 @@ ); name = Barcode; productName = Barcode; - productReference = AF975A96099C6BC300B05160 /* Barcode.saver */; + productReference = AF975A96099C6BC300B05160 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF975AD7099C6EB100B05160 /* Fireworkx */ = { @@ -11768,7 +12263,7 @@ AF975ADC099C6EB100B05160 /* Sources */, AF975ADF099C6EB100B05160 /* Frameworks */, AF975AE3099C6EB100B05160 /* Rez */, - AFA3D87709C03C0A00E4CFCA /* ShellScript */, + AFA3D87709C03C0A00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11777,7 +12272,7 @@ ); name = Fireworkx; productName = Fireworkx; - productReference = AF975AE7099C6EB100B05160 /* Fireworkx.saver */; + productReference = AF975AE7099C6EB100B05160 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF975AFC099C6FE400B05160 /* MemScroller */ = { @@ -11788,7 +12283,7 @@ AF975B01099C6FE400B05160 /* Sources */, AF975B04099C6FE400B05160 /* Frameworks */, AF975B08099C6FE400B05160 /* Rez */, - AFA3D8A309C03C5F00E4CFCA /* ShellScript */, + AFA3D8A309C03C5F00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11797,7 +12292,7 @@ ); name = MemScroller; productName = MemScroller; - productReference = AF975B0C099C6FE400B05160 /* MemScroller.saver */; + productReference = AF975B0C099C6FE400B05160 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF975C12099C8C1500B05160 /* Halo */ = { @@ -11808,7 +12303,7 @@ AF975C17099C8C1500B05160 /* Sources */, AF975C1A099C8C1500B05160 /* Frameworks */, AF975C1E099C8C1500B05160 /* Rez */, - AFA3D88709C03C2A00E4CFCA /* ShellScript */, + AFA3D88709C03C2A00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11817,7 +12312,7 @@ ); name = Halo; productName = Halo; - productReference = AF975C22099C8C1500B05160 /* Halo.saver */; + productReference = AF975C22099C8C1500B05160 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF975C3D099C8DCF00B05160 /* Greynetic */ = { @@ -11828,7 +12323,7 @@ AF975C43099C8DCF00B05160 /* Sources */, AF975C46099C8DCF00B05160 /* Frameworks */, AF975C4A099C8DCF00B05160 /* Rez */, - AFA3D88309C03C2400E4CFCA /* ShellScript */, + AFA3D88309C03C2400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11837,7 +12332,7 @@ ); name = Greynetic; productName = Greynetic; - productReference = AF975C4E099C8DCF00B05160 /* Greynetic.saver */; + productReference = AF975C4E099C8DCF00B05160 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF975C5D099C8F3F00B05160 /* NoseGuy */ = { @@ -11848,7 +12343,7 @@ AF975C63099C8F3F00B05160 /* Sources */, AF975C66099C8F3F00B05160 /* Frameworks */, AF975C6A099C8F3F00B05160 /* Rez */, - AFA3D8B109C03C7600E4CFCA /* ShellScript */, + AFA3D8B109C03C7600E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11857,7 +12352,7 @@ ); name = NoseGuy; productName = NoseGuy; - productReference = AF975C6E099C8F3F00B05160 /* NoseGuy.saver */; + productReference = AF975C6E099C8F3F00B05160 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF975D52099CA0F000B05160 /* Rocks */ = { @@ -11868,7 +12363,7 @@ AF975D58099CA0F000B05160 /* Sources */, AF975D5B099CA0F000B05160 /* Frameworks */, AF975D5F099CA0F000B05160 /* Rez */, - AFA3D8C909C03C9E00E4CFCA /* ShellScript */, + AFA3D8C909C03C9E00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11877,7 +12372,7 @@ ); name = Rocks; productName = Rocks; - productReference = AF975D63099CA0F000B05160 /* Rocks.saver */; + productReference = AF975D63099CA0F000B05160 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF976FBB0989CAA2001F8B92 /* Deco */ = { @@ -11888,7 +12383,7 @@ AF976FB90989CAA2001F8B92 /* Sources */, AF976FBA0989CAA2001F8B92 /* Frameworks */, AF9770150989D0F6001F8B92 /* Rez */, - AFA3D86D09C03BF300E4CFCA /* ShellScript */, + AFA3D86D09C03BF300E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11897,7 +12392,7 @@ ); name = Deco; productName = Deco; - productReference = AF976FBC0989CAA2001F8B92 /* Deco.saver */; + productReference = AF976FBC0989CAA2001F8B92 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9770290989D1E6001F8B92 /* Rorschach */ = { @@ -11908,7 +12403,7 @@ AF97702C0989D1E6001F8B92 /* Sources */, AF9770390989D1E6001F8B92 /* Frameworks */, AF97703C0989D1E6001F8B92 /* Rez */, - AFA3D8CB09C03CA100E4CFCA /* ShellScript */, + AFA3D8CB09C03CA100E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11917,7 +12412,7 @@ ); name = Rorschach; productName = Rorschach; - productReference = AF9770400989D1E6001F8B92 /* Rorschach.saver */; + productReference = AF9770400989D1E6001F8B92 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9770660989D2F6001F8B92 /* Attraction */ = { @@ -11928,7 +12423,7 @@ AF9770690989D2F6001F8B92 /* Sources */, AF9770760989D2F6001F8B92 /* Frameworks */, AF9770790989D2F6001F8B92 /* Rez */, - AFCCCBCD09C03AF400353F4D /* ShellScript */, + AFCCCBCD09C03AF400353F4D /* Run Update Info Plist */, ); buildRules = ( ); @@ -11937,7 +12432,7 @@ ); name = Attraction; productName = Attraction; - productReference = AF97707D0989D2F6001F8B92 /* Attraction.saver */; + productReference = AF97707D0989D2F6001F8B92 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9771D60989DC4A001F8B92 /* SaverTester */ = { @@ -11947,6 +12442,7 @@ AF9771D30989DC4A001F8B92 /* Resources */, AF9771D40989DC4A001F8B92 /* Sources */, AF9771D50989DC4A001F8B92 /* Frameworks */, + AF578FA11434E918002455DD /* Run Update Info Plist */, ); buildRules = ( ); @@ -11955,7 +12451,7 @@ ); name = SaverTester; productName = SaverTester; - productReference = AF9771D70989DC4A001F8B92 /* SaverTester.app */; + productReference = AF9771D70989DC4A001F8B92 /* XScreenSaver.app */; productType = "com.apple.product-type.application"; }; AF998EDA0A083DB30051049D /* TopBlock */ = { @@ -11966,7 +12462,7 @@ AF998EDF0A083DB30051049D /* Sources */, AF998EE20A083DB30051049D /* Frameworks */, AF998EE90A083DB30051049D /* Rez */, - AF998EEA0A083DB30051049D /* ShellScript */, + AF998EEA0A083DB30051049D /* Run Update Info Plist */, ); buildRules = ( ); @@ -11975,7 +12471,7 @@ ); name = TopBlock; productName = TopBlock; - productReference = AF998EEE0A083DB30051049D /* TopBlock.saver */; + productReference = AF998EEE0A083DB30051049D /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9D466609B5109C006E59CF /* DecayScreen */ = { @@ -11986,7 +12482,7 @@ AF9D466B09B5109C006E59CF /* Sources */, AF9D466E09B5109C006E59CF /* Frameworks */, AF9D467209B5109C006E59CF /* Rez */, - AFA3D86B09C03BEF00E4CFCA /* ShellScript */, + AFA3D86B09C03BEF00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -11995,7 +12491,7 @@ ); name = DecayScreen; productName = DecayScreen; - productReference = AF9D467609B5109C006E59CF /* DecayScreen.saver */; + productReference = AF9D467609B5109C006E59CF /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9D474409B5300A006E59CF /* SlideScreen */ = { @@ -12006,7 +12502,7 @@ AF9D474909B5300A006E59CF /* Sources */, AF9D474C09B5300A006E59CF /* Frameworks */, AF9D475009B5300A006E59CF /* Rez */, - AFA3D8D109C03CAB00E4CFCA /* ShellScript */, + AFA3D8D109C03CAB00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12015,7 +12511,7 @@ ); name = SlideScreen; productName = SlideScreen; - productReference = AF9D475409B5300A006E59CF /* SlideScreen.saver */; + productReference = AF9D475409B5300A006E59CF /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9D475F09B53166006E59CF /* Zoom */ = { @@ -12026,7 +12522,7 @@ AF9D476409B53166006E59CF /* Sources */, AF9D476709B53166006E59CF /* Frameworks */, AF9D476B09B53166006E59CF /* Rez */, - AFA3D8FF09C03CF700E4CFCA /* ShellScript */, + AFA3D8FF09C03CF700E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12035,7 +12531,7 @@ ); name = Zoom; productName = Zoom; - productReference = AF9D476F09B53166006E59CF /* Zoom.saver */; + productReference = AF9D476F09B53166006E59CF /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9D48DB09B53322006E59CF /* Bumps */ = { @@ -12046,7 +12542,7 @@ AF9D48E009B53322006E59CF /* Sources */, AF9D48E309B53322006E59CF /* Frameworks */, AF9D48E709B53322006E59CF /* Rez */, - AFA3D85B09C03BD300E4CFCA /* ShellScript */, + AFA3D85B09C03BD300E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12055,7 +12551,7 @@ ); name = Bumps; productName = Bumps; - productReference = AF9D48EB09B53322006E59CF /* Bumps.saver */; + productReference = AF9D48EB09B53322006E59CF /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9D48F409B535DA006E59CF /* Distort */ = { @@ -12066,7 +12562,7 @@ AF9D48F909B535DA006E59CF /* Sources */, AF9D48FC09B535DA006E59CF /* Frameworks */, AF9D490009B535DA006E59CF /* Rez */, - AFA3D87109C03BFB00E4CFCA /* ShellScript */, + AFA3D87109C03BFB00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12075,7 +12571,7 @@ ); name = Distort; productName = Distort; - productReference = AF9D490409B535DA006E59CF /* Distort.saver */; + productReference = AF9D490409B535DA006E59CF /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9D492B09B53CBA006E59CF /* Ripples */ = { @@ -12086,7 +12582,7 @@ AF9D493009B53CBA006E59CF /* Sources */, AF9D493309B53CBA006E59CF /* Frameworks */, AF9D493709B53CBA006E59CF /* Rez */, - AFA3D8C709C03C9900E4CFCA /* ShellScript */, + AFA3D8C709C03C9900E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12095,7 +12591,7 @@ ); name = Ripples; productName = Ripples; - productReference = AF9D493B09B53CBA006E59CF /* Ripples.saver */; + productReference = AF9D493B09B53CBA006E59CF /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9D495409B53FC9006E59CF /* RotZoomer */ = { @@ -12106,7 +12602,7 @@ AF9D495909B53FC9006E59CF /* Sources */, AF9D495C09B53FC9006E59CF /* Frameworks */, AF9D496009B53FC9006E59CF /* Rez */, - AFA3D8CD09C03CA400E4CFCA /* ShellScript */, + AFA3D8CD09C03CA400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12115,7 +12611,7 @@ ); name = RotZoomer; productName = RotZoomer; - productReference = AF9D496409B53FC9006E59CF /* RotZoomer.saver */; + productReference = AF9D496409B53FC9006E59CF /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9D496C09B5411D006E59CF /* Twang */ = { @@ -12126,7 +12622,7 @@ AF9D497109B5411D006E59CF /* Sources */, AF9D497409B5411D006E59CF /* Frameworks */, AF9D497809B5411D006E59CF /* Rez */, - AFA3D8E509C03CCD00E4CFCA /* ShellScript */, + AFA3D8E509C03CCD00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12135,7 +12631,7 @@ ); name = Twang; productName = Twang; - productReference = AF9D497C09B5411D006E59CF /* Twang.saver */; + productReference = AF9D497C09B5411D006E59CF /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9D499709B544C2006E59CF /* Spotlight */ = { @@ -12146,7 +12642,7 @@ AF9D499C09B544C2006E59CF /* Sources */, AF9D499F09B544C2006E59CF /* Frameworks */, AF9D49A309B544C2006E59CF /* Rez */, - AFA3D8D909C03CB700E4CFCA /* ShellScript */, + AFA3D8D909C03CB700E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12155,7 +12651,7 @@ ); name = Spotlight; productName = Spotlight; - productReference = AF9D49A709B544C3006E59CF /* Spotlight.saver */; + productReference = AF9D49A709B544C3006E59CF /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9D4C6909B59F27006E59CF /* XLyap */ = { @@ -12166,7 +12662,7 @@ AF9D4C6E09B59F27006E59CF /* Sources */, AF9D4C7109B59F27006E59CF /* Frameworks */, AF9D4C7509B59F27006E59CF /* Rez */, - AFA3D8F709C03CEA00E4CFCA /* ShellScript */, + AFA3D8F709C03CEA00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12175,7 +12671,7 @@ ); name = XLyap; productName = XLyap; - productReference = AF9D4C7909B59F27006E59CF /* XLyap.saver */; + productReference = AF9D4C7909B59F27006E59CF /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9D4CE709B5AA8E006E59CF /* Pong */ = { @@ -12186,7 +12682,7 @@ AF9D4CEC09B5AA8E006E59CF /* Sources */, AF9D4CEF09B5AA8E006E59CF /* Frameworks */, AF9D4CF309B5AA8E006E59CF /* Rez */, - AFA3D8BD09C03C8900E4CFCA /* ShellScript */, + AFA3D8BD09C03C8900E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12195,7 +12691,7 @@ ); name = Pong; productName = Pong; - productReference = AF9D4CF709B5AA8E006E59CF /* Pong.saver */; + productReference = AF9D4CF709B5AA8E006E59CF /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9D4D7E09B5B2DC006E59CF /* XAnalogTV */ = { @@ -12206,7 +12702,7 @@ AF9D4D8309B5B2DC006E59CF /* Sources */, AF9D4D8709B5B2DC006E59CF /* Frameworks */, AF9D4D8B09B5B2DC006E59CF /* Rez */, - AFA3D8F309C03CE400E4CFCA /* ShellScript */, + AFA3D8F309C03CE400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12215,7 +12711,7 @@ ); name = XAnalogTV; productName = XAnalogTV; - productReference = AF9D4D8F09B5B2DC006E59CF /* XAnalogTV.saver */; + productReference = AF9D4D8F09B5B2DC006E59CF /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9D4DAF09B5B71E006E59CF /* BSOD */ = { @@ -12226,7 +12722,7 @@ AF9D4DB409B5B71E006E59CF /* Sources */, AF9D4DB809B5B71E006E59CF /* Frameworks */, AF9D4DBC09B5B71E006E59CF /* Rez */, - AFA3D69209C03B5C00E4CFCA /* ShellScript */, + AFA3D69209C03B5C00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12235,7 +12731,7 @@ ); name = BSOD; productName = BSOD; - productReference = AF9D4DC009B5B71E006E59CF /* BSOD.saver */; + productReference = AF9D4DC009B5B71E006E59CF /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AF9D4DEC09B5BB19006E59CF /* Apple2 */ = { @@ -12246,7 +12742,7 @@ AF9D4DF109B5BB19006E59CF /* Sources */, AF9D4DF609B5BB19006E59CF /* Frameworks */, AF9D4DFA09B5BB19006E59CF /* Rez */, - AFCCCBCB09C03AEE00353F4D /* ShellScript */, + AFCCCBCB09C03AEE00353F4D /* Run Update Info Plist */, ); buildRules = ( ); @@ -12266,7 +12762,7 @@ AFA339340B058505002B0E7D /* Sources */, AFA339370B058505002B0E7D /* Frameworks */, AFA3393B0B058505002B0E7D /* Rez */, - AFA3393C0B058505002B0E7D /* ShellScript */, + AFA3393C0B058505002B0E7D /* Run Update Info Plist */, ); buildRules = ( ); @@ -12277,7 +12773,7 @@ ); name = WebCollage; productName = WebCollage; - productReference = AFA339400B058505002B0E7D /* WebCollage.saver */; + productReference = AFA339400B058505002B0E7D /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA33BC60B058740002B0E7D /* webcollage-helper */ = { @@ -12304,7 +12800,7 @@ AFA5594B099330B000F3E977 /* Sources */, AFA5594F099330B000F3E977 /* Frameworks */, AFA55956099330B000F3E977 /* Rez */, - AFA3D96309C03DB500E4CFCA /* ShellScript */, + AFA3D96309C03DB500E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12313,7 +12809,7 @@ ); name = Cage; productName = Cage; - productReference = AFA5595A099330B000F3E977 /* Cage.saver */; + productReference = AFA5595A099330B000F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA5596D0993317900F3E977 /* Moebius */ = { @@ -12324,7 +12820,7 @@ AFA559720993317900F3E977 /* Sources */, AFA559740993317900F3E977 /* Frameworks */, AFA5597B0993317900F3E977 /* Rez */, - AFA3D9AB09C03E4200E4CFCA /* ShellScript */, + AFA3D9AB09C03E4200E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12333,7 +12829,7 @@ ); name = Moebius; productName = Moebius; - productReference = AFA5597F0993317900F3E977 /* Moebius.saver */; + productReference = AFA5597F0993317900F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA559920993322100F3E977 /* Superquadrics */ = { @@ -12344,7 +12840,7 @@ AFA559970993322100F3E977 /* Sources */, AFA559990993322100F3E977 /* Frameworks */, AFA559A00993322100F3E977 /* Rez */, - AFA3D9D109C03E8B00E4CFCA /* ShellScript */, + AFA3D9D109C03E8B00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12353,7 +12849,7 @@ ); name = Superquadrics; productName = Superquadrics; - productReference = AFA559A40993322100F3E977 /* Superquadrics.saver */; + productReference = AFA559A40993322100F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA559B50993328000F3E977 /* Morph3D */ = { @@ -12364,7 +12860,7 @@ AFA559BA0993328000F3E977 /* Sources */, AFA559BC0993328000F3E977 /* Frameworks */, AFA559C30993328000F3E977 /* Rez */, - AFA3D9AF09C03E4B00E4CFCA /* ShellScript */, + AFA3D9AF09C03E4B00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12373,7 +12869,7 @@ ); name = Morph3D; productName = Morph3D; - productReference = AFA559C70993328000F3E977 /* Morph3D.saver */; + productReference = AFA559C70993328000F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA559CF0993330600F3E977 /* Rubik */ = { @@ -12384,7 +12880,7 @@ AFA559D40993330600F3E977 /* Sources */, AFA559D60993330600F3E977 /* Frameworks */, AFA559DD0993330600F3E977 /* Rez */, - AFA3D9C109C03E6E00E4CFCA /* ShellScript */, + AFA3D9C109C03E6E00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12393,7 +12889,7 @@ ); name = Rubik; productName = Rubik; - productReference = AFA559E10993330600F3E977 /* Rubik.saver */; + productReference = AFA559E10993330600F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55A030993340300F3E977 /* Stairs */ = { @@ -12404,7 +12900,7 @@ AFA55A080993340300F3E977 /* Sources */, AFA55A0A0993340300F3E977 /* Frameworks */, AFA55A110993340300F3E977 /* Rez */, - AFA3D9CB09C03E7F00E4CFCA /* ShellScript */, + AFA3D9CB09C03E7F00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12413,7 +12909,7 @@ ); name = Stairs; productName = Stairs; - productReference = AFA55A150993340300F3E977 /* Stairs.saver */; + productReference = AFA55A150993340300F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55A20099334A000F3E977 /* Sproingies */ = { @@ -12424,7 +12920,7 @@ AFA55A25099334A000F3E977 /* Sources */, AFA55A27099334A000F3E977 /* Frameworks */, AFA55A2E099334A000F3E977 /* Rez */, - AFA3D9C909C03E7C00E4CFCA /* ShellScript */, + AFA3D9C909C03E7C00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12433,7 +12929,7 @@ ); name = Sproingies; productName = Sproingies; - productReference = AFA55A32099334A000F3E977 /* Sproingies.saver */; + productReference = AFA55A32099334A000F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55A790993364300F3E977 /* Lament */ = { @@ -12444,7 +12940,7 @@ AFA55A7E0993364300F3E977 /* Sources */, AFA55A800993364300F3E977 /* Frameworks */, AFA55A870993364300F3E977 /* Rez */, - AFA3D9A309C03E3200E4CFCA /* ShellScript */, + AFA3D9A309C03E3200E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12453,7 +12949,7 @@ ); name = Lament; productName = Lament; - productReference = AFA55A8B0993364300F3E977 /* Lament.saver */; + productReference = AFA55A8B0993364300F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55ACF09933CEF00F3E977 /* Bubble3D */ = { @@ -12464,7 +12960,7 @@ AFA55AD409933CEF00F3E977 /* Sources */, AFA55AD609933CEF00F3E977 /* Frameworks */, AFA55ADD09933CEF00F3E977 /* Rez */, - AFA3D96109C03DB100E4CFCA /* ShellScript */, + AFA3D96109C03DB100E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12473,7 +12969,7 @@ ); name = Bubble3D; productName = Bubble3D; - productReference = AFA55AE109933CEF00F3E977 /* Bubble3D.saver */; + productReference = AFA55AE109933CEF00F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55B0909933E0500F3E977 /* GLPlanet */ = { @@ -12484,7 +12980,7 @@ AFA55B0E09933E0500F3E977 /* Sources */, AFA55B1309933E0500F3E977 /* Frameworks */, AFA55B1A09933E0500F3E977 /* Rez */, - AFA3D99309C03E1600E4CFCA /* ShellScript */, + AFA3D99309C03E1600E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12493,7 +12989,7 @@ ); name = GLPlanet; productName = GLPlanet; - productReference = AFA55B1E09933E0500F3E977 /* GLPlanet.saver */; + productReference = AFA55B1E09933E0500F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55B2509933E8D00F3E977 /* Pulsar */ = { @@ -12504,7 +13000,7 @@ AFA55B2A09933E8D00F3E977 /* Sources */, AFA55B2C09933E8D00F3E977 /* Frameworks */, AFA55B3309933E8D00F3E977 /* Rez */, - AFA3D9BD09C03E6500E4CFCA /* ShellScript */, + AFA3D9BD09C03E6500E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12513,7 +13009,7 @@ ); name = Pulsar; productName = Pulsar; - productReference = AFA55B3709933E8D00F3E977 /* Pulsar.saver */; + productReference = AFA55B3709933E8D00F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55B7909933F7200F3E977 /* Sierpinski3D */ = { @@ -12524,7 +13020,7 @@ AFA55B7E09933F7200F3E977 /* Sources */, AFA55B8009933F7200F3E977 /* Frameworks */, AFA55B8709933F7200F3E977 /* Rez */, - AFA3D9C509C03E7400E4CFCA /* ShellScript */, + AFA3D9C509C03E7400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12533,7 +13029,7 @@ ); name = Sierpinski3D; productName = Sierpinski3D; - productReference = AFA55B8B09933F7200F3E977 /* Sierpinski3D.saver */; + productReference = AFA55B8B09933F7200F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55B9109933FDA00F3E977 /* GFlux */ = { @@ -12544,7 +13040,7 @@ AFA55B9609933FDA00F3E977 /* Sources */, AFA55B9809933FDA00F3E977 /* Frameworks */, AFA55B9F09933FDA00F3E977 /* Rez */, - AFA3D98709C03DF400E4CFCA /* ShellScript */, + AFA3D98709C03DF400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12553,7 +13049,7 @@ ); name = GFlux; productName = GFlux; - productReference = AFA55BA309933FDA00F3E977 /* GFlux.saver */; + productReference = AFA55BA309933FDA00F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55BAB099340CE00F3E977 /* Circuit */ = { @@ -12564,7 +13060,7 @@ AFA55BB0099340CE00F3E977 /* Sources */, AFA55BB2099340CE00F3E977 /* Frameworks */, AFA55BB9099340CE00F3E977 /* Rez */, - AFA3D96709C03DBC00E4CFCA /* ShellScript */, + AFA3D96709C03DBC00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12573,7 +13069,7 @@ ); name = Circuit; productName = Circuit; - productReference = AFA55BBD099340CE00F3E977 /* Circuit.saver */; + productReference = AFA55BBD099340CE00F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55BE40993429100F3E977 /* Menger */ = { @@ -12584,7 +13080,7 @@ AFA55BE90993429100F3E977 /* Sources */, AFA55BEB0993429100F3E977 /* Frameworks */, AFA55BF20993429100F3E977 /* Rez */, - AFA3D9A709C03E3A00E4CFCA /* ShellScript */, + AFA3D9A709C03E3A00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12593,7 +13089,7 @@ ); name = Menger; productName = Menger; - productReference = AFA55BF60993429100F3E977 /* Menger.saver */; + productReference = AFA55BF60993429100F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55C0E0993431300F3E977 /* Engine */ = { @@ -12604,7 +13100,7 @@ AFA55C130993431300F3E977 /* Sources */, AFA55C150993431300F3E977 /* Frameworks */, AFA55C1C0993431300F3E977 /* Rez */, - AFA3D97709C03DDA00E4CFCA /* ShellScript */, + AFA3D97709C03DDA00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12613,7 +13109,7 @@ ); name = Engine; productName = Engine; - productReference = AFA55C200993431300F3E977 /* Engine.saver */; + productReference = AFA55C200993431300F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55C77099349A600F3E977 /* GLSnake */ = { @@ -12624,7 +13120,7 @@ AFA55C7C099349A600F3E977 /* Sources */, AFA55C7E099349A600F3E977 /* Frameworks */, AFA55C85099349A600F3E977 /* Rez */, - AFA3D99709C03E1C00E4CFCA /* ShellScript */, + AFA3D99709C03E1C00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12633,7 +13129,7 @@ ); name = GLSnake; productName = GLSnake; - productReference = AFA55C89099349A600F3E977 /* GLSnake.saver */; + productReference = AFA55C89099349A600F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55CA909934BB200F3E977 /* Boxed */ = { @@ -12644,7 +13140,7 @@ AFA55CAE09934BB200F3E977 /* Sources */, AFA55CB009934BB200F3E977 /* Frameworks */, AFA55CB709934BB200F3E977 /* Rez */, - AFA3D95F09C03DAE00E4CFCA /* ShellScript */, + AFA3D95F09C03DAE00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12653,7 +13149,7 @@ ); name = Boxed; productName = Boxed; - productReference = AFA55CBB09934BB200F3E977 /* Boxed.saver */; + productReference = AFA55CBB09934BB200F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55CCC09934CE400F3E977 /* GLForestFire */ = { @@ -12664,7 +13160,7 @@ AFA55CD109934CE400F3E977 /* Sources */, AFA55CD309934CE400F3E977 /* Frameworks */, AFA55CDA09934CE400F3E977 /* Rez */, - AFA3D98B09C03DFC00E4CFCA /* ShellScript */, + AFA3D98B09C03DFC00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12673,7 +13169,7 @@ ); name = GLForestFire; productName = GLForestFire; - productReference = AFA55CDE09934CE400F3E977 /* GLForestFire.saver */; + productReference = AFA55CDE09934CE400F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55D3C0993565300F3E977 /* SBalls */ = { @@ -12684,7 +13180,7 @@ AFA55D410993565300F3E977 /* Sources */, AFA55D430993565300F3E977 /* Frameworks */, AFA55D4A0993565300F3E977 /* Rez */, - AFA3D9C309C03E7100E4CFCA /* ShellScript */, + AFA3D9C309C03E7100E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12693,7 +13189,7 @@ ); name = SBalls; productName = SBalls; - productReference = AFA55D4E0993565300F3E977 /* SBalls.saver */; + productReference = AFA55D4E0993565300F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55D620993584B00F3E977 /* Cubenetic */ = { @@ -12704,7 +13200,7 @@ AFA55D670993584B00F3E977 /* Sources */, AFA55D690993584B00F3E977 /* Frameworks */, AFA55D700993584B00F3E977 /* Rez */, - AFA3D96D09C03DCA00E4CFCA /* ShellScript */, + AFA3D96D09C03DCA00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12713,7 +13209,7 @@ ); name = Cubenetic; productName = Cubenetic; - productReference = AFA55D740993584B00F3E977 /* Cubenetic.saver */; + productReference = AFA55D740993584B00F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55D7F099358C400F3E977 /* Spheremonics */ = { @@ -12724,7 +13220,7 @@ AFA55D84099358C400F3E977 /* Sources */, AFA55D86099358C400F3E977 /* Frameworks */, AFA55D8D099358C400F3E977 /* Rez */, - AFA3D9C709C03E7800E4CFCA /* ShellScript */, + AFA3D9C709C03E7800E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12733,7 +13229,7 @@ ); name = Spheremonics; productName = Spheremonics; - productReference = AFA55D91099358C400F3E977 /* Spheremonics.saver */; + productReference = AFA55D91099358C400F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55DC809935D7000F3E977 /* Lavalite */ = { @@ -12744,7 +13240,7 @@ AFA55DCD09935D7000F3E977 /* Sources */, AFA55DCF09935D7000F3E977 /* Frameworks */, AFA55DD609935D7000F3E977 /* Rez */, - AFA3D9A509C03E3600E4CFCA /* ShellScript */, + AFA3D9A509C03E3600E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12753,7 +13249,7 @@ ); name = Lavalite; productName = Lavalite; - productReference = AFA55DDA09935D7000F3E977 /* Lavalite.saver */; + productReference = AFA55DDA09935D7000F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55DF009935E4900F3E977 /* Queens */ = { @@ -12764,7 +13260,7 @@ AFA55DF509935E4900F3E977 /* Sources */, AFA55DF809935E4900F3E977 /* Frameworks */, AFA55DFF09935E4900F3E977 /* Rez */, - AFA3D9BF09C03E6900E4CFCA /* ShellScript */, + AFA3D9BF09C03E6900E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12773,7 +13269,7 @@ ); name = Queens; productName = Queens; - productReference = AFA55E0309935E4900F3E977 /* Queens.saver */; + productReference = AFA55E0309935E4900F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55E0D09935EDC00F3E977 /* Endgame */ = { @@ -12784,7 +13280,7 @@ AFA55E1209935EDC00F3E977 /* Sources */, AFA55E1409935EDC00F3E977 /* Frameworks */, AFA55E1B09935EDC00F3E977 /* Rez */, - AFA3D97509C03DD700E4CFCA /* ShellScript */, + AFA3D97509C03DD700E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12793,7 +13289,7 @@ ); name = Endgame; productName = Endgame; - productReference = AFA55E1F09935EDC00F3E977 /* Endgame.saver */; + productReference = AFA55E1F09935EDC00F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55E2F09935F8E00F3E977 /* GLBlur */ = { @@ -12804,7 +13300,7 @@ AFA55E3409935F8E00F3E977 /* Sources */, AFA55E3709935F8E00F3E977 /* Frameworks */, AFA55E3E09935F8E00F3E977 /* Rez */, - AFA3D98909C03DF700E4CFCA /* ShellScript */, + AFA3D98909C03DF700E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12813,7 +13309,7 @@ ); name = GLBlur; productName = GLBlur; - productReference = AFA55E4209935F8E00F3E977 /* GLBlur.saver */; + productReference = AFA55E4209935F8E00F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55E4E09935FF900F3E977 /* FlyingToasters */ = { @@ -12824,7 +13320,7 @@ AFA55E5309935FF900F3E977 /* Sources */, AFA55E5509935FF900F3E977 /* Frameworks */, AFA55E5C09935FF900F3E977 /* Rez */, - AFA3D98109C03DEA00E4CFCA /* ShellScript */, + AFA3D98109C03DEA00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12833,7 +13329,7 @@ ); name = FlyingToasters; productName = FlyingToasters; - productReference = AFA55E6009935FF900F3E977 /* FlyingToasters.saver */; + productReference = AFA55E6009935FF900F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55EC7099360E300F3E977 /* BouncingCow */ = { @@ -12844,7 +13340,7 @@ AFA55ECC099360E300F3E977 /* Sources */, AFA55ED8099360E300F3E977 /* Frameworks */, AFA55EDF099360E300F3E977 /* Rez */, - AFA3D95D09C03DAB00E4CFCA /* ShellScript */, + AFA3D95D09C03DAB00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12853,7 +13349,7 @@ ); name = BouncingCow; productName = BouncingCow; - productReference = AFA55EE3099360E300F3E977 /* BouncingCow.saver */; + productReference = AFA55EE3099360E300F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55F06099361B700F3E977 /* JigglyPuff */ = { @@ -12864,7 +13360,7 @@ AFA55F0B099361B700F3E977 /* Sources */, AFA55F13099361B700F3E977 /* Frameworks */, AFA55F1A099361B700F3E977 /* Rez */, - AFA3D99D09C03E2600E4CFCA /* ShellScript */, + AFA3D99D09C03E2600E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12873,7 +13369,7 @@ ); name = JigglyPuff; productName = JigglyPuff; - productReference = AFA55F1E099361B700F3E977 /* JigglyPuff.saver */; + productReference = AFA55F1E099361B700F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55F2A0993622F00F3E977 /* Klein */ = { @@ -12884,7 +13380,7 @@ AFA55F2F0993622F00F3E977 /* Sources */, AFA55F310993622F00F3E977 /* Frameworks */, AFA55F380993622F00F3E977 /* Rez */, - AFA3D9A109C03E2E00E4CFCA /* ShellScript */, + AFA3D9A109C03E2E00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12893,7 +13389,7 @@ ); name = Klein; productName = Klein; - productReference = AFA55F3C0993622F00F3E977 /* Klein.saver */; + productReference = AFA55F3C0993622F00F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55F420993629000F3E977 /* Hypertorus */ = { @@ -12904,7 +13400,7 @@ AFA55F470993629000F3E977 /* Sources */, AFA55F490993629000F3E977 /* Frameworks */, AFA55F500993629000F3E977 /* Rez */, - AFA3D99B09C03E2300E4CFCA /* ShellScript */, + AFA3D99B09C03E2300E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12913,7 +13409,7 @@ ); name = Hypertorus; productName = HyperTorus; - productReference = AFA55F540993629000F3E977 /* Hypertorus.saver */; + productReference = AFA55F540993629000F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55F720993643600F3E977 /* GLMatrix */ = { @@ -12924,7 +13420,7 @@ AFA55F770993643600F3E977 /* Sources */, AFA55F790993643600F3E977 /* Frameworks */, AFA55F800993643600F3E977 /* Rez */, - AFA3D99109C03E1200E4CFCA /* ShellScript */, + AFA3D99109C03E1200E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12933,7 +13429,7 @@ ); name = GLMatrix; productName = GLMatrix; - productReference = AFA55F840993643600F3E977 /* GLMatrix.saver */; + productReference = AFA55F840993643600F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55FD309936BFA00F3E977 /* CubeStorm */ = { @@ -12944,7 +13440,7 @@ AFA55FD809936BFA00F3E977 /* Sources */, AFA55FDA09936BFA00F3E977 /* Frameworks */, AFA55FE109936BFA00F3E977 /* Rez */, - AFA3D96F09C03DCD00E4CFCA /* ShellScript */, + AFA3D96F09C03DCD00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12953,7 +13449,7 @@ ); name = CubeStorm; productName = CubeStorm; - productReference = AFA55FE509936BFA00F3E977 /* CubeStorm.saver */; + productReference = AFA55FE509936BFA00F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA55FF909936C6D00F3E977 /* GLKnots */ = { @@ -12964,7 +13460,7 @@ AFA55FFE09936C6D00F3E977 /* Sources */, AFA5600009936C6D00F3E977 /* Frameworks */, AFA5600709936C6D00F3E977 /* Rez */, - AFA3D98F09C03E0F00E4CFCA /* ShellScript */, + AFA3D98F09C03E0F00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12973,7 +13469,7 @@ ); name = GLKnots; productName = GLKnots; - productReference = AFA5600B09936C6D00F3E977 /* GLKnots.saver */; + productReference = AFA5600B09936C6D00F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA5601409936CC800F3E977 /* BlockTube */ = { @@ -12984,7 +13480,7 @@ AFA5601909936CC800F3E977 /* Sources */, AFA5601B09936CC800F3E977 /* Frameworks */, AFA5602209936CC800F3E977 /* Rez */, - AFA3D95909C03DA400E4CFCA /* ShellScript */, + AFA3D95909C03DA400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -12993,7 +13489,7 @@ ); name = BlockTube; productName = BlockTube; - productReference = AFA5602609936CC800F3E977 /* BlockTube.saver */; + productReference = AFA5602609936CC800F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA5603209936D5100F3E977 /* FlipFlop */ = { @@ -13004,7 +13500,7 @@ AFA5603709936D5100F3E977 /* Sources */, AFA5603909936D5100F3E977 /* Frameworks */, AFA5604009936D5100F3E977 /* Rez */, - AFA3D97B09C03DE000E4CFCA /* ShellScript */, + AFA3D97B09C03DE000E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13013,7 +13509,7 @@ ); name = FlipFlop; productName = FlipFlop; - productReference = AFA5604409936D5100F3E977 /* FlipFlop.saver */; + productReference = AFA5604409936D5100F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA5604A09936E2100F3E977 /* AntInspect */ = { @@ -13024,7 +13520,7 @@ AFA5604F09936E2100F3E977 /* Sources */, AFA5605109936E2100F3E977 /* Frameworks */, AFA5605809936E2100F3E977 /* Rez */, - AFA3D94D09C03D8D00E4CFCA /* ShellScript */, + AFA3D94D09C03D8D00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13033,7 +13529,7 @@ ); name = AntInspect; productName = AntInspect; - productReference = AFA5605C09936E2100F3E977 /* AntInspect.saver */; + productReference = AFA5605C09936E2100F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA5606209936F3800F3E977 /* AntSpotlight */ = { @@ -13044,7 +13540,7 @@ AFA5606709936F3800F3E977 /* Sources */, AFA5606909936F3800F3E977 /* Frameworks */, AFA5607009936F3800F3E977 /* Rez */, - AFA3D95109C03D9400E4CFCA /* ShellScript */, + AFA3D95109C03D9400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13053,7 +13549,7 @@ ); name = AntSpotlight; productName = AntSpotlight; - productReference = AFA5607409936F3800F3E977 /* AntSpotlight.saver */; + productReference = AFA5607409936F3800F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA560AE0993718D00F3E977 /* Polytopes */ = { @@ -13064,7 +13560,7 @@ AFA560B30993718D00F3E977 /* Sources */, AFA560B50993718D00F3E977 /* Frameworks */, AFA560BC0993718D00F3E977 /* Rez */, - AFA3D9B909C03E5E00E4CFCA /* ShellScript */, + AFA3D9B909C03E5E00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13073,7 +13569,7 @@ ); name = Polytopes; productName = Polytopes; - productReference = AFA560C00993718D00F3E977 /* Polytopes.saver */; + productReference = AFA560C00993718D00F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA560FD0993781600F3E977 /* Molecule */ = { @@ -13084,7 +13580,7 @@ AFA561020993781600F3E977 /* Sources */, AFA561040993781600F3E977 /* Frameworks */, AFA5610B0993781600F3E977 /* Rez */, - AFA3D9AD09C03E4600E4CFCA /* ShellScript */, + AFA3D9AD09C03E4600E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13094,7 +13590,7 @@ ); name = Molecule; productName = Molecule; - productReference = AFA5610F0993781600F3E977 /* Molecule.saver */; + productReference = AFA5610F0993781600F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA5615609937C0D00F3E977 /* BlinkBox */ = { @@ -13105,7 +13601,7 @@ AFA5615D09937C0D00F3E977 /* Sources */, AFA5615F09937C0D00F3E977 /* Frameworks */, AFA5616609937C0D00F3E977 /* Rez */, - AFA3D95709C03DA100E4CFCA /* ShellScript */, + AFA3D95709C03DA100E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13114,7 +13610,7 @@ ); name = BlinkBox; productName = BlinkBox; - productReference = AFA5616A09937C0D00F3E977 /* BlinkBox.saver */; + productReference = AFA5616A09937C0D00F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA5617B09937CF100F3E977 /* Noof */ = { @@ -13125,7 +13621,7 @@ AFA5618009937CF100F3E977 /* Sources */, AFA5618209937CF100F3E977 /* Frameworks */, AFA5618909937CF100F3E977 /* Rez */, - AFA3D9B109C03E4E00E4CFCA /* ShellScript */, + AFA3D9B109C03E4E00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13134,7 +13630,7 @@ ); name = Noof; productName = Noof; - productReference = AFA5618D09937CF100F3E977 /* Noof.saver */; + productReference = AFA5618D09937CF100F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA5619D09937D7E00F3E977 /* Polyhedra */ = { @@ -13145,7 +13641,7 @@ AFA561A209937D7E00F3E977 /* Sources */, AFA561A409937D7E00F3E977 /* Frameworks */, AFA561AB09937D7E00F3E977 /* Rez */, - AFA3D9B709C03E5B00E4CFCA /* ShellScript */, + AFA3D9B709C03E5B00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13154,7 +13650,7 @@ ); name = Polyhedra; productName = Polyhedra; - productReference = AFA561AF09937D7E00F3E977 /* Polyhedra.saver */; + productReference = AFA561AF09937D7E00F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA562060993849F00F3E977 /* Providence */ = { @@ -13165,7 +13661,7 @@ AFA5620B0993849F00F3E977 /* Sources */, AFA5620E0993849F00F3E977 /* Frameworks */, AFA562150993849F00F3E977 /* Rez */, - AFA3D9BB09C03E6200E4CFCA /* ShellScript */, + AFA3D9BB09C03E6200E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13174,7 +13670,7 @@ ); name = Providence; productName = Providence; - productReference = AFA562190993849F00F3E977 /* Providence.saver */; + productReference = AFA562190993849F00F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA5621F0993852500F3E977 /* Pinion */ = { @@ -13185,7 +13681,7 @@ AFA562240993852500F3E977 /* Sources */, AFA562260993852500F3E977 /* Frameworks */, AFA5622D0993852500F3E977 /* Rez */, - AFA3D9B309C03E5100E4CFCA /* ShellScript */, + AFA3D9B309C03E5100E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13194,7 +13690,7 @@ ); name = Pinion; productName = Pinion; - productReference = AFA562310993852500F3E977 /* Pinion.saver */; + productReference = AFA562310993852500F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA562BF099392C600F3E977 /* Boing */ = { @@ -13205,7 +13701,7 @@ AFA562C4099392C600F3E977 /* Sources */, AFA562C6099392C600F3E977 /* Frameworks */, AFA562CD099392C600F3E977 /* Rez */, - AFA3D95B09C03DA800E4CFCA /* ShellScript */, + AFA3D95B09C03DA800E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13214,7 +13710,7 @@ ); name = Boing; productName = Boing; - productReference = AFA562D1099392C600F3E977 /* Boing.saver */; + productReference = AFA562D1099392C600F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA562DA099393C900F3E977 /* AntMaze */ = { @@ -13225,7 +13721,7 @@ AFA562DF099393C900F3E977 /* Sources */, AFA562E1099393C900F3E977 /* Frameworks */, AFA562E8099393C900F3E977 /* Rez */, - AFA3D94F09C03D9100E4CFCA /* ShellScript */, + AFA3D94F09C03D9100E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13234,7 +13730,7 @@ ); name = AntMaze; productName = AntMaze; - productReference = AFA562EC099393C900F3E977 /* AntMaze.saver */; + productReference = AFA562EC099393C900F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA562F20993943B00F3E977 /* Tangram */ = { @@ -13245,7 +13741,7 @@ AFA562F70993943B00F3E977 /* Sources */, AFA562F90993943B00F3E977 /* Frameworks */, AFA563000993943B00F3E977 /* Rez */, - AFA3D9D309C03E8F00E4CFCA /* ShellScript */, + AFA3D9D309C03E8F00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13254,7 +13750,7 @@ ); name = Tangram; productName = Tangram; - productReference = AFA563040993943B00F3E977 /* Tangram.saver */; + productReference = AFA563040993943B00F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA563130993951000F3E977 /* Crackberg */ = { @@ -13265,7 +13761,7 @@ AFA563180993951000F3E977 /* Sources */, AFA5631B0993951000F3E977 /* Frameworks */, AFA563220993951000F3E977 /* Rez */, - AFA3D96909C03DBF00E4CFCA /* ShellScript */, + AFA3D96909C03DBF00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13274,7 +13770,7 @@ ); name = Crackberg; productName = Crackberg; - productReference = AFA563260993951000F3E977 /* Crackberg.saver */; + productReference = AFA563260993951000F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA56331099395ED00F3E977 /* GLHanoi */ = { @@ -13285,7 +13781,7 @@ AFA56336099395ED00F3E977 /* Sources */, AFA56338099395ED00F3E977 /* Frameworks */, AFA5633F099395ED00F3E977 /* Rez */, - AFA3D98D09C03E0500E4CFCA /* ShellScript */, + AFA3D98D09C03E0500E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13294,7 +13790,7 @@ ); name = GLHanoi; productName = GLHanoi; - productReference = AFA56343099395ED00F3E977 /* GLHanoi.saver */; + productReference = AFA56343099395ED00F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA56351099396C000F3E977 /* Cube21 */ = { @@ -13305,7 +13801,7 @@ AFA56356099396C000F3E977 /* Sources */, AFA56358099396C000F3E977 /* Frameworks */, AFA5635F099396C000F3E977 /* Rez */, - AFA3D96B09C03DC600E4CFCA /* ShellScript */, + AFA3D96B09C03DC600E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13314,7 +13810,7 @@ ); name = Cube21; productName = Cube21; - productReference = AFA56363099396C000F3E977 /* Cube21.saver */; + productReference = AFA56363099396C000F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA56379099397B300F3E977 /* TimeTunnel */ = { @@ -13325,7 +13821,7 @@ AFA5637E099397B300F3E977 /* Sources */, AFA56380099397B300F3E977 /* Frameworks */, AFA56387099397B300F3E977 /* Rez */, - AFA3D9D509C03E9300E4CFCA /* ShellScript */, + AFA3D9D509C03E9300E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13334,7 +13830,7 @@ ); name = TimeTunnel; productName = TimeTunnel; - productReference = AFA5638B099397B300F3E977 /* TimeTunnel.saver */; + productReference = AFA5638B099397B300F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFA563A4099398BB00F3E977 /* Juggler3D */ = { @@ -13345,7 +13841,7 @@ AFA563A9099398BB00F3E977 /* Sources */, AFA563AB099398BB00F3E977 /* Frameworks */, AFA563B2099398BB00F3E977 /* Rez */, - AFA3D99F09C03E2900E4CFCA /* ShellScript */, + AFA3D99F09C03E2900E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13354,7 +13850,7 @@ ); name = Juggler3D; productName = Juggler3D; - productReference = AFA563B6099398BB00F3E977 /* Juggler3D.saver */; + productReference = AFA563B6099398BB00F3E977 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD51B1B0F063B4A00471C02 /* Photopile */ = { @@ -13365,7 +13861,7 @@ AFD51B210F063B4A00471C02 /* Sources */, AFD51B240F063B4A00471C02 /* Frameworks */, AFD51B2B0F063B4A00471C02 /* Rez */, - AFD51B2C0F063B4A00471C02 /* ShellScript */, + AFD51B2C0F063B4A00471C02 /* Run Update Info Plist */, ); buildRules = ( ); @@ -13374,7 +13870,7 @@ ); name = Photopile; productName = Photopile; - productReference = AFD51B300F063B4A00471C02 /* Photopile.saver */; + productReference = AFD51B300F063B4A00471C02 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD56DF10996A03800BA26F7 /* GLText */ = { @@ -13385,7 +13881,7 @@ AFD56DF60996A03800BA26F7 /* Sources */, AFD56DF90996A03800BA26F7 /* Frameworks */, AFD56E000996A03800BA26F7 /* Rez */, - AFA3D99909C03E2000E4CFCA /* ShellScript */, + AFA3D99909C03E2000E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13394,7 +13890,7 @@ ); name = GLText; productName = GLText; - productReference = AFD56E040996A03800BA26F7 /* GLText.saver */; + productReference = AFD56E040996A03800BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD56EAE0996A72600BA26F7 /* Braid */ = { @@ -13405,7 +13901,7 @@ AFD56EB30996A72600BA26F7 /* Sources */, AFD56EB60996A72600BA26F7 /* Frameworks */, AFD56EBA0996A72600BA26F7 /* Rez */, - AFA3D90709C03D0B00E4CFCA /* ShellScript */, + AFA3D90709C03D0B00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13414,7 +13910,7 @@ ); name = Braid; productName = Braid; - productReference = AFD56EBE0996A72600BA26F7 /* Braid.saver */; + productReference = AFD56EBE0996A72600BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD56EDA0996A95700BA26F7 /* Forest */ = { @@ -13425,7 +13921,7 @@ AFD56EDF0996A95700BA26F7 /* Sources */, AFD56EE20996A95700BA26F7 /* Frameworks */, AFD56EE60996A95700BA26F7 /* Rez */, - AFA3D91D09C03D3000E4CFCA /* ShellScript */, + AFA3D91D09C03D3000E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13434,7 +13930,7 @@ ); name = Forest; productName = Forest; - productReference = AFD56EEA0996A95700BA26F7 /* Forest.saver */; + productReference = AFD56EEA0996A95700BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD56F0B0996AAFA00BA26F7 /* Vines */ = { @@ -13445,7 +13941,7 @@ AFD56F100996AAFA00BA26F7 /* Sources */, AFD56F130996AAFA00BA26F7 /* Frameworks */, AFD56F170996AAFA00BA26F7 /* Rez */, - AFA3D94909C03D8100E4CFCA /* ShellScript */, + AFA3D94909C03D8100E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13454,7 +13950,7 @@ ); name = Vines; productName = Vines; - productReference = AFD56F1B0996AAFA00BA26F7 /* Vines.saver */; + productReference = AFD56F1B0996AAFA00BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD56F230996AB8A00BA26F7 /* Galaxy */ = { @@ -13465,7 +13961,7 @@ AFD56F280996AB8A00BA26F7 /* Sources */, AFD56F2B0996AB8A00BA26F7 /* Frameworks */, AFD56F2F0996AB8A00BA26F7 /* Rez */, - AFA3D91F09C03D3300E4CFCA /* ShellScript */, + AFA3D91F09C03D3300E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13474,7 +13970,7 @@ ); name = Galaxy; productName = Galaxy; - productReference = AFD56F330996AB8A00BA26F7 /* Galaxy.saver */; + productReference = AFD56F330996AB8A00BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD56F4F0996AEEE00BA26F7 /* Grav */ = { @@ -13485,7 +13981,7 @@ AFD56F540996AEEE00BA26F7 /* Sources */, AFD56F570996AEEE00BA26F7 /* Frameworks */, AFD56F5B0996AEEE00BA26F7 /* Rez */, - AFA3D92109C03D3600E4CFCA /* ShellScript */, + AFA3D92109C03D3600E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13494,7 +13990,7 @@ ); name = Grav; productName = Grav; - productReference = AFD56F5F0996AEEE00BA26F7 /* Grav.saver */; + productReference = AFD56F5F0996AEEE00BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD56F6B0996B01600BA26F7 /* Hopalong */ = { @@ -13505,7 +14001,7 @@ AFD56F700996B01600BA26F7 /* Sources */, AFD56F730996B01600BA26F7 /* Frameworks */, AFD56F770996B01600BA26F7 /* Rez */, - AFA3D92309C03D3A00E4CFCA /* ShellScript */, + AFA3D92309C03D3A00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13514,7 +14010,7 @@ ); name = Hopalong; productName = Hopalong; - productReference = AFD56F7B0996B01600BA26F7 /* Hopalong.saver */; + productReference = AFD56F7B0996B01600BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD56F8C0996B09400BA26F7 /* Laser */ = { @@ -13525,7 +14021,7 @@ AFD56F910996B09400BA26F7 /* Sources */, AFD56F940996B09400BA26F7 /* Frameworks */, AFD56F980996B09400BA26F7 /* Rez */, - AFA3D92909C03D4400E4CFCA /* ShellScript */, + AFA3D92909C03D4400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13534,7 +14030,7 @@ ); name = Laser; productName = Laser; - productReference = AFD56F9C0996B09400BA26F7 /* Laser.saver */; + productReference = AFD56F9C0996B09400BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD56FA30996B10F00BA26F7 /* Lightning */ = { @@ -13545,7 +14041,7 @@ AFD56FA80996B10F00BA26F7 /* Sources */, AFD56FAB0996B10F00BA26F7 /* Frameworks */, AFD56FAF0996B10F00BA26F7 /* Rez */, - AFA3D92B09C03D4700E4CFCA /* ShellScript */, + AFA3D92B09C03D4700E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13554,7 +14050,7 @@ ); name = Lightning; productName = Lightning; - productReference = AFD56FB30996B10F00BA26F7 /* Lightning.saver */; + productReference = AFD56FB30996B10F00BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD56FB90996B18F00BA26F7 /* Lisa */ = { @@ -13565,7 +14061,7 @@ AFD56FBE0996B18F00BA26F7 /* Sources */, AFD56FC10996B18F00BA26F7 /* Frameworks */, AFD56FC50996B18F00BA26F7 /* Rez */, - AFA3D92D09C03D4A00E4CFCA /* ShellScript */, + AFA3D92D09C03D4A00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13574,7 +14070,7 @@ ); name = Lisa; productName = Lisa; - productReference = AFD56FC90996B18F00BA26F7 /* Lisa.saver */; + productReference = AFD56FC90996B18F00BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD56FCF0996B20900BA26F7 /* Lissie */ = { @@ -13585,7 +14081,7 @@ AFD56FD40996B20900BA26F7 /* Sources */, AFD56FD70996B20900BA26F7 /* Frameworks */, AFD56FDB0996B20900BA26F7 /* Rez */, - AFA3D92F09C03D4E00E4CFCA /* ShellScript */, + AFA3D92F09C03D4E00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13594,7 +14090,7 @@ ); name = Lissie; productName = Lissie; - productReference = AFD56FDF0996B20900BA26F7 /* Lissie.saver */; + productReference = AFD56FDF0996B20900BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD56FF80996B43800BA26F7 /* Penrose */ = { @@ -13605,7 +14101,7 @@ AFD56FFD0996B43800BA26F7 /* Sources */, AFD570000996B43800BA26F7 /* Frameworks */, AFD570040996B43800BA26F7 /* Rez */, - AFA3D93709C03D5B00E4CFCA /* ShellScript */, + AFA3D93709C03D5B00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13614,7 +14110,7 @@ ); name = Penrose; productName = Penrose; - productReference = AFD570080996B43800BA26F7 /* Penrose.saver */; + productReference = AFD570080996B43800BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD5700F0996B4CC00BA26F7 /* Sierpinski */ = { @@ -13625,7 +14121,7 @@ AFD570140996B4CC00BA26F7 /* Sources */, AFD570170996B4CC00BA26F7 /* Frameworks */, AFD5701B0996B4CC00BA26F7 /* Rez */, - AFA3DBA209C0424C00E4CFCA /* ShellScript */, + AFA3DBA209C0424C00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13634,7 +14130,7 @@ ); name = Sierpinski; productName = Sierpinski; - productReference = AFD5701F0996B4CC00BA26F7 /* Sierpinski.saver */; + productReference = AFD5701F0996B4CC00BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD570260996B56D00BA26F7 /* Sphere */ = { @@ -13645,7 +14141,7 @@ AFD5702B0996B56D00BA26F7 /* Sources */, AFD5702E0996B56D00BA26F7 /* Frameworks */, AFD570320996B56D00BA26F7 /* Rez */, - AFA3D93D09C03D6C00E4CFCA /* ShellScript */, + AFA3D93D09C03D6C00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13654,7 +14150,7 @@ ); name = Sphere; productName = Sphere; - productReference = AFD570360996B56D00BA26F7 /* Sphere.saver */; + productReference = AFD570360996B56D00BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD570430996B61600BA26F7 /* Spiral */ = { @@ -13665,7 +14161,7 @@ AFD570480996B61600BA26F7 /* Sources */, AFD5704B0996B61600BA26F7 /* Frameworks */, AFD5704F0996B61600BA26F7 /* Rez */, - AFA3D93F09C03D6F00E4CFCA /* ShellScript */, + AFA3D93F09C03D6F00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13674,7 +14170,7 @@ ); name = Spiral; productName = Spiral; - productReference = AFD570530996B61600BA26F7 /* Spiral.saver */; + productReference = AFD570530996B61600BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD570590996B6A300BA26F7 /* FadePlot */ = { @@ -13685,7 +14181,7 @@ AFD5705E0996B6A300BA26F7 /* Sources */, AFD570610996B6A300BA26F7 /* Frameworks */, AFD570650996B6A300BA26F7 /* Rez */, - AFA3D91309C03D1E00E4CFCA /* ShellScript */, + AFA3D91309C03D1E00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13694,7 +14190,7 @@ ); name = FadePlot; productName = FadePlot; - productReference = AFD570690996B6A300BA26F7 /* FadePlot.saver */; + productReference = AFD570690996B6A300BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD5706F0996B72700BA26F7 /* Mountain */ = { @@ -13705,7 +14201,7 @@ AFD570740996B72700BA26F7 /* Sources */, AFD570770996B72700BA26F7 /* Frameworks */, AFD5707B0996B72700BA26F7 /* Rez */, - AFA3D93309C03D5400E4CFCA /* ShellScript */, + AFA3D93309C03D5400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13714,7 +14210,7 @@ ); name = Mountain; productName = Mountain; - productReference = AFD5707F0996B72800BA26F7 /* Mountain.saver */; + productReference = AFD5707F0996B72800BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD570850996B80300BA26F7 /* Triangle */ = { @@ -13725,7 +14221,7 @@ AFD5708A0996B80300BA26F7 /* Sources */, AFD5708D0996B80300BA26F7 /* Frameworks */, AFD570910996B80300BA26F7 /* Rez */, - AFA3D94709C03D7E00E4CFCA /* ShellScript */, + AFA3D94709C03D7E00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13734,7 +14230,7 @@ ); name = Triangle; productName = Triangle; - productReference = AFD570950996B80300BA26F7 /* Triangle.saver */; + productReference = AFD570950996B80300BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD5709B0996B88E00BA26F7 /* Worm */ = { @@ -13745,7 +14241,7 @@ AFD570A00996B88E00BA26F7 /* Sources */, AFD570A30996B88E00BA26F7 /* Frameworks */, AFD570A70996B88E00BA26F7 /* Rez */, - AFA3D94B09C03D8500E4CFCA /* ShellScript */, + AFA3D94B09C03D8500E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13754,7 +14250,7 @@ ); name = Worm; productName = Worm; - productReference = AFD570AB0996B88E00BA26F7 /* Worm.saver */; + productReference = AFD570AB0996B88E00BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD570B10996B93000BA26F7 /* Rotor */ = { @@ -13765,7 +14261,7 @@ AFD570B60996B93000BA26F7 /* Sources */, AFD570B90996B93000BA26F7 /* Frameworks */, AFD570BD0996B93000BA26F7 /* Rez */, - AFA3D93B09C03D6200E4CFCA /* ShellScript */, + AFA3D93B09C03D6200E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13774,7 +14270,7 @@ ); name = Rotor; productName = Rotor; - productReference = AFD570C10996B93000BA26F7 /* Rotor.saver */; + productReference = AFD570C10996B93000BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD570C90996B9F800BA26F7 /* Ant */ = { @@ -13785,7 +14281,7 @@ AFD570CE0996B9F800BA26F7 /* Sources */, AFD570D10996B9F800BA26F7 /* Frameworks */, AFD570D50996B9F800BA26F7 /* Rez */, - AFA3D90109C03D0000E4CFCA /* ShellScript */, + AFA3D90109C03D0000E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13794,7 +14290,7 @@ ); name = Ant; productName = Ant; - productReference = AFD570D90996B9F800BA26F7 /* Ant.saver */; + productReference = AFD570D90996B9F800BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD570EA0996BBBF00BA26F7 /* Flow */ = { @@ -13805,7 +14301,7 @@ AFD570EF0996BBBF00BA26F7 /* Sources */, AFD570F20996BBBF00BA26F7 /* Frameworks */, AFD570F60996BBBF00BA26F7 /* Rez */, - AFA3D91909C03D2700E4CFCA /* ShellScript */, + AFA3D91909C03D2700E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13814,7 +14310,7 @@ ); name = Flow; productName = Flow; - productReference = AFD570FA0996BBBF00BA26F7 /* Flow.saver */; + productReference = AFD570FA0996BBBF00BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD571130996BE9300BA26F7 /* Discrete */ = { @@ -13825,7 +14321,7 @@ AFD571180996BE9300BA26F7 /* Sources */, AFD5711B0996BE9300BA26F7 /* Frameworks */, AFD5711F0996BE9300BA26F7 /* Rez */, - AFA3D90D09C03D1400E4CFCA /* ShellScript */, + AFA3D90D09C03D1400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13834,7 +14330,7 @@ ); name = Discrete; productName = Discrete; - productReference = AFD571230996BE9300BA26F7 /* Discrete.saver */; + productReference = AFD571230996BE9300BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD5712C0996BF2E00BA26F7 /* Apollonian */ = { @@ -13845,7 +14341,7 @@ AFD571310996BF2E00BA26F7 /* Sources */, AFD571340996BF2E00BA26F7 /* Frameworks */, AFD571380996BF2E00BA26F7 /* Rez */, - AFA3D90309C03D0400E4CFCA /* ShellScript */, + AFA3D90309C03D0400E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13854,7 +14350,7 @@ ); name = Apollonian; productName = Apollonian; - productReference = AFD5713C0996BF2E00BA26F7 /* Apollonian.saver */; + productReference = AFD5713C0996BF2E00BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD571430996C01700BA26F7 /* Euler2D */ = { @@ -13865,7 +14361,7 @@ AFD571480996C01700BA26F7 /* Sources */, AFD5714B0996C01700BA26F7 /* Frameworks */, AFD5714F0996C01700BA26F7 /* Rez */, - AFA3D91109C03D1B00E4CFCA /* ShellScript */, + AFA3D91109C03D1B00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13874,7 +14370,7 @@ ); name = Euler2D; productName = Euler2D; - productReference = AFD571530996C01700BA26F7 /* Euler2D.saver */; + productReference = AFD571530996C01700BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD571590996C0CE00BA26F7 /* Thornbird */ = { @@ -13885,7 +14381,7 @@ AFD5715E0996C0CE00BA26F7 /* Sources */, AFD571610996C0CE00BA26F7 /* Frameworks */, AFD571650996C0CE00BA26F7 /* Rez */, - AFA3D94509C03D7A00E4CFCA /* ShellScript */, + AFA3D94509C03D7A00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13894,7 +14390,7 @@ ); name = Thornbird; productName = Thornbird; - productReference = AFD571690996C0CE00BA26F7 /* Thornbird.saver */; + productReference = AFD571690996C0CE00BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD571B50996D9DC00BA26F7 /* Juggle */ = { @@ -13905,7 +14401,7 @@ AFD571BA0996D9DC00BA26F7 /* Sources */, AFD571BD0996D9DC00BA26F7 /* Frameworks */, AFD571C10996D9DC00BA26F7 /* Rez */, - AFA3D92509C03D3D00E4CFCA /* ShellScript */, + AFA3D92509C03D3D00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13914,7 +14410,7 @@ ); name = Juggle; productName = Juggle; - productReference = AFD571C50996D9DC00BA26F7 /* Juggle.saver */; + productReference = AFD571C50996D9DC00BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD572220996E4A300BA26F7 /* Swirl */ = { @@ -13925,7 +14421,7 @@ AFD572270996E4A300BA26F7 /* Sources */, AFD5722A0996E4A300BA26F7 /* Frameworks */, AFD5722E0996E4A300BA26F7 /* Rez */, - AFA3D94309C03D7600E4CFCA /* ShellScript */, + AFA3D94309C03D7600E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13934,7 +14430,7 @@ ); name = Swirl; productName = Swirl; - productReference = AFD572320996E4A300BA26F7 /* Swirl.saver */; + productReference = AFD572320996E4A300BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD5726D0996EE8500BA26F7 /* Polyominoes */ = { @@ -13945,7 +14441,7 @@ AFD572720996EE8500BA26F7 /* Sources */, AFD572750996EE8500BA26F7 /* Frameworks */, AFD572790996EE8500BA26F7 /* Rez */, - AFA3D93909C03D5E00E4CFCA /* ShellScript */, + AFA3D93909C03D5E00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13954,7 +14450,7 @@ ); name = Polyominoes; productName = Polyominoes; - productReference = AFD5727D0996EE8500BA26F7 /* Polyominoes.saver */; + productReference = AFD5727D0996EE8500BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD572A50996F99600BA26F7 /* Bouboule */ = { @@ -13965,7 +14461,7 @@ AFD572AA0996F99600BA26F7 /* Sources */, AFD572AD0996F99600BA26F7 /* Frameworks */, AFD572B10996F99600BA26F7 /* Rez */, - AFA3D90509C03D0700E4CFCA /* ShellScript */, + AFA3D90509C03D0700E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13974,7 +14470,7 @@ ); name = Bouboule; productName = Bouboule; - productReference = AFD572B50996F99600BA26F7 /* Bouboule.saver */; + productReference = AFD572B50996F99600BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD572C20996FC0F00BA26F7 /* Crystal */ = { @@ -13985,7 +14481,7 @@ AFD572C70996FC0F00BA26F7 /* Sources */, AFD572CA0996FC0F00BA26F7 /* Frameworks */, AFD572CE0996FC0F00BA26F7 /* Rez */, - AFA3D90909C03D0E00E4CFCA /* ShellScript */, + AFA3D90909C03D0E00E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -13994,7 +14490,7 @@ ); name = Crystal; productName = Crystal; - productReference = AFD572D20996FC0F00BA26F7 /* Crystal.saver */; + productReference = AFD572D20996FC0F00BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD572F9099701C000BA26F7 /* Julia */ = { @@ -14005,7 +14501,7 @@ AFD572FE099701C000BA26F7 /* Sources */, AFD57301099701C000BA26F7 /* Frameworks */, AFD57305099701C000BA26F7 /* Rez */, - AFA3D92709C03D4000E4CFCA /* ShellScript */, + AFA3D92709C03D4000E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -14014,7 +14510,7 @@ ); name = Julia; productName = Julia; - productReference = AFD57309099701C000BA26F7 /* Julia.saver */; + productReference = AFD57309099701C000BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFD5735D0997411200BA26F7 /* Strange */ = { @@ -14025,7 +14521,7 @@ AFD573620997411200BA26F7 /* Sources */, AFD573650997411200BA26F7 /* Frameworks */, AFD573690997411200BA26F7 /* Rez */, - AFA3D94109C03D7200E4CFCA /* ShellScript */, + AFA3D94109C03D7200E4CFCA /* Run Update Info Plist */, ); buildRules = ( ); @@ -14034,7 +14530,7 @@ ); name = Strange; productName = Strange; - productReference = AFD5736D0997411200BA26F7 /* Strange.saver */; + productReference = AFD5736D0997411200BA26F7 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFE2A4560E2E904600ADB298 /* SkyTentacles */ = { @@ -14045,7 +14541,7 @@ AFE2A45B0E2E904600ADB298 /* Sources */, AFE2A45E0E2E904600ADB298 /* Frameworks */, AFE2A4650E2E904600ADB298 /* Rez */, - AFE2A4660E2E904600ADB298 /* ShellScript */, + AFE2A4660E2E904600ADB298 /* Run Update Info Plist */, ); buildRules = ( ); @@ -14054,7 +14550,7 @@ ); name = SkyTentacles; productName = SkyTentacles; - productReference = AFE2A46A0E2E904600ADB298 /* SkyTentacles.saver */; + productReference = AFE2A46A0E2E904600ADB298 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFE30BE80E52B14700CCF4A5 /* Sonar */ = { @@ -14065,7 +14561,7 @@ AFE30BED0E52B14700CCF4A5 /* Sources */, AFE30BF00E52B14700CCF4A5 /* Frameworks */, AFE30BF70E52B14700CCF4A5 /* Rez */, - AFE30BF80E52B14700CCF4A5 /* ShellScript */, + AFE30BF80E52B14700CCF4A5 /* Run Update Info Plist */, ); buildRules = ( ); @@ -14074,7 +14570,7 @@ ); name = Sonar; productName = Sonar; - productReference = AFE30BFC0E52B14700CCF4A5 /* Sonar.saver */; + productReference = AFE30BFC0E52B14700CCF4A5 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFE6A1820CDD7B2E002805BF /* MoebiusGears */ = { @@ -14085,7 +14581,7 @@ AFE6A1870CDD7B2E002805BF /* Sources */, AFE6A18B0CDD7B2E002805BF /* Frameworks */, AFE6A1920CDD7B2E002805BF /* Rez */, - AFE6A1930CDD7B2E002805BF /* ShellScript */, + AFE6A1930CDD7B2E002805BF /* Run Update Info Plist */, ); buildRules = ( ); @@ -14094,7 +14590,7 @@ ); name = MoebiusGears; productName = MoebiusGears; - productReference = AFE6A1970CDD7B2E002805BF /* MoebiusGears.saver */; + productReference = AFE6A1970CDD7B2E002805BF /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFE6A41B0CDD7FAA002805BF /* Abstractile */ = { @@ -14105,7 +14601,7 @@ AFE6A4210CDD7FAA002805BF /* Sources */, AFE6A4240CDD7FAA002805BF /* Frameworks */, AFE6A4280CDD7FAA002805BF /* Rez */, - AFE6A4290CDD7FAA002805BF /* ShellScript */, + AFE6A4290CDD7FAA002805BF /* Run Update Info Plist */, ); buildRules = ( ); @@ -14114,7 +14610,7 @@ ); name = Abstractile; productName = Abstractile; - productReference = AFE6A42D0CDD7FAA002805BF /* Abstractile.saver */; + productReference = AFE6A42D0CDD7FAA002805BF /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFF463360C4403E400EE6509 /* CWaves */ = { @@ -14125,7 +14621,7 @@ AFF4633B0C4403E400EE6509 /* Sources */, AFF4633E0C4403E400EE6509 /* Frameworks */, AFF463420C4403E400EE6509 /* Rez */, - AFF463430C4403E400EE6509 /* ShellScript */, + AFF463430C4403E400EE6509 /* Run Update Info Plist */, ); buildRules = ( ); @@ -14134,7 +14630,7 @@ ); name = CWaves; productName = CWaves; - productReference = AFF463470C4403E400EE6509 /* CWaves.saver */; + productReference = AFF463470C4403E400EE6509 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; AFF463580C440AEF00EE6509 /* GLCells */ = { @@ -14145,7 +14641,7 @@ AFF4635D0C440AEF00EE6509 /* Sources */, AFF463600C440AEF00EE6509 /* Frameworks */, AFF463670C440AEF00EE6509 /* Rez */, - AFF463680C440AEF00EE6509 /* ShellScript */, + AFF463680C440AEF00EE6509 /* Run Update Info Plist */, ); buildRules = ( ); @@ -14154,7 +14650,7 @@ ); name = GLCells; productName = GLCells; - productReference = AFF4636C0C440AEF00EE6509 /* GLCells.saver */; + productReference = AFF4636C0C440AEF00EE6509 /* XScreenSaver.saver */; productType = "com.apple.product-type.bundle"; }; /* End PBXNativeTarget section */ @@ -14162,8 +14658,11 @@ /* Begin PBXProject section */ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; + attributes = { + LastUpgradeCheck = 0430; + }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "xscreensaver" */; - compatibilityVersion = "Xcode 3.1"; + compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 1; knownRegions = ( @@ -14171,6 +14670,7 @@ Japanese, French, German, + en, ); mainGroup = 29B97314FDCFA39411CA2CEA /* xscreensaver */; projectDirPath = ""; @@ -14386,12 +14886,12 @@ AF3581FB143330F900E09C51 /* TronBit */, AF0DCA420C4CBB0D00D76972 /* Voronoi */, AF137D410F075C9B004DE3B2 /* Obsolete */, + AFA55CCC09934CE400F3E977 /* GLForestFire */, AFD570C90996B9F800BA26F7 /* Ant */, AF6427A809A2DE36000F4CD4 /* Bubbles */, AF47765A099DA78E001F091E /* Critical */, AF477909099DE379001F091E /* Flag */, AFD56EDA0996A95700BA26F7 /* Forest */, - AFA55CCC09934CE400F3E977 /* GLForestFire */, AF64260F09A18D6C000F4CD4 /* HyperBall */, AF6425CC09A18855000F4CD4 /* HyperCube */, AFD571B50996D9DC00BA26F7 /* Juggle */, @@ -14408,6 +14908,7 @@ AF477208099D4EE8001F091E /* Whirlygig */, AFD5709B0996B88E00BA26F7 /* Worm */, AF9771D60989DC4A001F8B92 /* SaverTester */, + AF918977158FC00A002B5D1E /* XScreenSaver-iOS */, ); }; /* End PBXProject section */ @@ -14460,7 +14961,14 @@ files = ( AF2D4D8413E902F5002AA818 /* SaverRunner.nib in Resources */, AF2D522613E954A0002AA818 /* SaverRunner.icns in Resources */, - AF78D190142DD99B002AAF77 /* hilbert.xml in Resources */, + AF51FD3415845CD500E5741F /* phosphor.xml in Resources */, + AF51FD3715845F9F00E5741F /* iSaverRunner.xib in Resources */, + AF51FD3B15845FD800E5741F /* iSaverRunner29.png in Resources */, + AF51FD3C15845FDB00E5741F /* iSaverRunner50.png in Resources */, + AF51FD3F15845FF700E5741F /* iSaverRunner57.png in Resources */, + AF51FD4015845FF900E5741F /* iSaverRunner72.png in Resources */, + AF51FD431584600300E5741F /* iSaverRunner114.png in Resources */, + AF6D7ED7158567420080DDC4 /* xscreensaver-text in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -14469,9 +14977,16 @@ buildActionMask = 2147483647; files = ( AF2D4F7113E91093002AA818 /* SaverRunner.nib in Resources */, - AF2D522713E954A0002AA818 /* SaverRunner.icns in Resources */, - AF78D18F142DD99A002AAF77 /* hilbert.xml in Resources */, - AF3581E71431D61D00E09C51 /* companioncube.xml in Resources */, + AF51FD3315845CC900E5741F /* apple2.xml in Resources */, + AF51FD3615845F9900E5741F /* iSaverRunner.xib in Resources */, + AF51FD3815845FC300E5741F /* SaverRunner.icns in Resources */, + AF51FD3A15845FD300E5741F /* iSaverRunner29.png in Resources */, + AF51FD3D15845FDE00E5741F /* iSaverRunner50.png in Resources */, + AF51FD3E15845FE200E5741F /* iSaverRunner57.png in Resources */, + AF51FD4115845FFC00E5741F /* iSaverRunner72.png in Resources */, + AF51FD4215845FFF00E5741F /* iSaverRunner114.png in Resources */, + AF6D7ED4158567240080DDC4 /* xscreensaver-getimage-file in Resources */, + AF6D7ED81585674C0080DDC4 /* xscreensaver-text in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -14488,7 +15003,6 @@ buildActionMask = 2147483647; files = ( AF3581C31431D47B00E09C51 /* voronoi.xml in Resources */, - AF3581C41431D47B00E09C51 /* hilbert.xml in Resources */, AF3581E81431D61D00E09C51 /* companioncube.xml in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -14498,8 +15012,6 @@ buildActionMask = 2147483647; files = ( AF3581FF143330F900E09C51 /* voronoi.xml in Resources */, - AF358200143330F900E09C51 /* hilbert.xml in Resources */, - AF358201143330F900E09C51 /* companioncube.xml in Resources */, AF3582221433318500E09C51 /* tronbit.xml in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -15127,7 +15639,6 @@ buildActionMask = 2147483647; files = ( AF77782709B650D200EA3033 /* starwars.xml in Resources */, - AF77782B09B650FF00EA3033 /* starwars.txt in Resources */, AF0FAF1109CA6FF900EE1051 /* xscreensaver-text in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -15200,6 +15711,210 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AF91897B158FC00A002B5D1E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AF91897E158FC00A002B5D1E /* iSaverRunner29.png in Resources */, + AF91897F158FC00A002B5D1E /* iSaverRunner50.png in Resources */, + AF918980158FC00A002B5D1E /* iSaverRunner57.png in Resources */, + AF918981158FC00A002B5D1E /* iSaverRunner72.png in Resources */, + AF918982158FC00A002B5D1E /* iSaverRunner114.png in Resources */, + AF918983158FC00A002B5D1E /* iSaverRunner.xib in Resources */, + AF918AB4158FC53D002B5D1E /* abstractile.xml in Resources */, + AF918AB5158FC53D002B5D1E /* anemone.xml in Resources */, + AF918AB6158FC53D002B5D1E /* anemotaxis.xml in Resources */, + AF918AB8158FC53D002B5D1E /* antinspect.xml in Resources */, + AF918AB9158FC53D002B5D1E /* antmaze.xml in Resources */, + AF918ABA158FC53D002B5D1E /* antspotlight.xml in Resources */, + AF918ABB158FC53D002B5D1E /* apollonian.xml in Resources */, + AF918ABC158FC53D002B5D1E /* apple2.xml in Resources */, + AF918ABD158FC53D002B5D1E /* atlantis.xml in Resources */, + AF918ABE158FC53D002B5D1E /* attraction.xml in Resources */, + AF918ABF158FC53D002B5D1E /* atunnel.xml in Resources */, + AF918AC0158FC53D002B5D1E /* barcode.xml in Resources */, + AF918AC1158FC53D002B5D1E /* blaster.xml in Resources */, + AF918AC2158FC53D002B5D1E /* blinkbox.xml in Resources */, + AF918AC3158FC53D002B5D1E /* blitspin.xml in Resources */, + AF918AC4158FC53D002B5D1E /* blocktube.xml in Resources */, + AF918AC5158FC53D002B5D1E /* boing.xml in Resources */, + AF918AC6158FC53D002B5D1E /* bouboule.xml in Resources */, + AF918AC7158FC53D002B5D1E /* bouncingcow.xml in Resources */, + AF918AC8158FC53D002B5D1E /* boxed.xml in Resources */, + AF918AC9158FC53D002B5D1E /* boxfit.xml in Resources */, + AF918ACA158FC53D002B5D1E /* braid.xml in Resources */, + AF918ACB158FC53D002B5D1E /* bsod.xml in Resources */, + AF918ACC158FC53D002B5D1E /* bubble3d.xml in Resources */, + AF918ACE158FC53D002B5D1E /* bumps.xml in Resources */, + AF918ACF158FC53D002B5D1E /* cage.xml in Resources */, + AF918AD0158FC53D002B5D1E /* carousel.xml in Resources */, + AF918AD1158FC53D002B5D1E /* ccurve.xml in Resources */, + AF918AD2158FC53D002B5D1E /* celtic.xml in Resources */, + AF918AD3158FC53D002B5D1E /* circuit.xml in Resources */, + AF918AD4158FC53D002B5D1E /* cloudlife.xml in Resources */, + AF918AD5158FC53D002B5D1E /* companioncube.xml in Resources */, + AF918AD6158FC53D002B5D1E /* compass.xml in Resources */, + AF918AD7158FC53D002B5D1E /* coral.xml in Resources */, + AF918AD8158FC53D002B5D1E /* crackberg.xml in Resources */, + AF918ADA158FC53D002B5D1E /* crystal.xml in Resources */, + AF918ADB158FC53D002B5D1E /* cube21.xml in Resources */, + AF918ADC158FC53D002B5D1E /* cubenetic.xml in Resources */, + AF918ADD158FC53D002B5D1E /* cubestorm.xml in Resources */, + AF918ADE158FC53D002B5D1E /* cubicgrid.xml in Resources */, + AF918ADF158FC53D002B5D1E /* cwaves.xml in Resources */, + AF918AE0158FC53D002B5D1E /* cynosure.xml in Resources */, + AF918AE1158FC53D002B5D1E /* dangerball.xml in Resources */, + AF918AE2158FC53D002B5D1E /* decayscreen.xml in Resources */, + AF918AE3158FC53D002B5D1E /* deco.xml in Resources */, + AF918AE4158FC53D002B5D1E /* deluxe.xml in Resources */, + AF918AE5158FC53D002B5D1E /* demon.xml in Resources */, + AF918AE6158FC53D002B5D1E /* discrete.xml in Resources */, + AF918AE7158FC53D002B5D1E /* distort.xml in Resources */, + AF918AE9158FC53D002B5D1E /* drift.xml in Resources */, + AF918AEA158FC53D002B5D1E /* endgame.xml in Resources */, + AF918AEB158FC53D002B5D1E /* engine.xml in Resources */, + AF918AEC158FC53D002B5D1E /* epicycle.xml in Resources */, + AF918AED158FC53D002B5D1E /* eruption.xml in Resources */, + AF918AEE158FC53D002B5D1E /* euler2d.xml in Resources */, + AF918AF0158FC53D002B5D1E /* fadeplot.xml in Resources */, + AF918AF1158FC53D002B5D1E /* fiberlamp.xml in Resources */, + AF918AF2158FC53D002B5D1E /* fireworkx.xml in Resources */, + AF918AF4158FC53D002B5D1E /* flame.xml in Resources */, + AF918AF5158FC53D002B5D1E /* flipflop.xml in Resources */, + AF918AF6158FC53D002B5D1E /* flipscreen3d.xml in Resources */, + AF918AF7158FC53D002B5D1E /* fliptext.xml in Resources */, + AF918AF8158FC53D002B5D1E /* flow.xml in Resources */, + AF918AF9158FC53D002B5D1E /* fluidballs.xml in Resources */, + AF918AFB158FC53D002B5D1E /* flyingtoasters.xml in Resources */, + AF918AFC158FC53D002B5D1E /* fontglide.xml in Resources */, + AF918AFE158FC53D002B5D1E /* fuzzyflakes.xml in Resources */, + AF918AFF158FC53D002B5D1E /* galaxy.xml in Resources */, + AF918B00158FC53D002B5D1E /* gears.xml in Resources */, + AF918B01158FC53D002B5D1E /* gflux.xml in Resources */, + AF918B02158FC53D002B5D1E /* glblur.xml in Resources */, + AF918B03158FC53D002B5D1E /* glcells.xml in Resources */, + AF918B04158FC53D002B5D1E /* gleidescope.xml in Resources */, + AF918B06158FC53D002B5D1E /* glhanoi.xml in Resources */, + AF918B07158FC53D002B5D1E /* glknots.xml in Resources */, + AF918B08158FC53D002B5D1E /* glmatrix.xml in Resources */, + AF918B09158FC53D002B5D1E /* glplanet.xml in Resources */, + AF918B0A158FC53D002B5D1E /* glschool.xml in Resources */, + AF918B0B158FC53D002B5D1E /* glslideshow.xml in Resources */, + AF918B0C158FC53D002B5D1E /* glsnake.xml in Resources */, + AF918B0D158FC53D002B5D1E /* gltext.xml in Resources */, + AF918B0E158FC53D002B5D1E /* goop.xml in Resources */, + AF918B0F158FC53D002B5D1E /* grav.xml in Resources */, + AF918B10158FC53D002B5D1E /* greynetic.xml in Resources */, + AF918B11158FC53D002B5D1E /* halftone.xml in Resources */, + AF918B12158FC53D002B5D1E /* halo.xml in Resources */, + AF918B13158FC53D002B5D1E /* helix.xml in Resources */, + AF918B14158FC53D002B5D1E /* hilbert.xml in Resources */, + AF918B15158FC53D002B5D1E /* hopalong.xml in Resources */, + AF918B18158FC53D002B5D1E /* hypertorus.xml in Resources */, + AF918B19158FC53D002B5D1E /* hypnowheel.xml in Resources */, + AF918B1A158FC53D002B5D1E /* ifs.xml in Resources */, + AF918B1B158FC53D002B5D1E /* imsmap.xml in Resources */, + AF918B1C158FC53D002B5D1E /* interaggregate.xml in Resources */, + AF918B1D158FC53D002B5D1E /* interference.xml in Resources */, + AF918B1E158FC53D002B5D1E /* intermomentary.xml in Resources */, + AF918B1F158FC53D002B5D1E /* jigglypuff.xml in Resources */, + AF918B22158FC53D002B5D1E /* juggler3d.xml in Resources */, + AF918B23158FC53D002B5D1E /* julia.xml in Resources */, + AF918B24158FC53D002B5D1E /* kaleidescope.xml in Resources */, + AF918B25158FC53D002B5D1E /* klein.xml in Resources */, + AF918B26158FC53D002B5D1E /* kumppa.xml in Resources */, + AF918B27158FC53D002B5D1E /* lament.xml in Resources */, + AF918B29158FC53D002B5D1E /* lavalite.xml in Resources */, + AF918B30158FC53D002B5D1E /* loop.xml in Resources */, + AF918B31158FC53D002B5D1E /* m6502.xml in Resources */, + AF918B32158FC53D002B5D1E /* maze.xml in Resources */, + AF918B33158FC53D002B5D1E /* memscroller.xml in Resources */, + AF918B34158FC53D002B5D1E /* menger.xml in Resources */, + AF918B35158FC53D002B5D1E /* metaballs.xml in Resources */, + AF918B36158FC53D002B5D1E /* mirrorblob.xml in Resources */, + AF918B38158FC53D002B5D1E /* moebius.xml in Resources */, + AF918B39158FC53D002B5D1E /* moebiusgears.xml in Resources */, + AF918B3A158FC53D002B5D1E /* moire.xml in Resources */, + AF918B3B158FC53D002B5D1E /* moire2.xml in Resources */, + AF918B3C158FC53D002B5D1E /* molecule.xml in Resources */, + AF918B3D158FC53D002B5D1E /* morph3d.xml in Resources */, + AF918B3E158FC53D002B5D1E /* mountain.xml in Resources */, + AF918B3F158FC53D002B5D1E /* munch.xml in Resources */, + AF918B40158FC53D002B5D1E /* nerverot.xml in Resources */, + AF918B41158FC53D002B5D1E /* noof.xml in Resources */, + AF918B42158FC53D002B5D1E /* noseguy.xml in Resources */, + AF918B43158FC53D002B5D1E /* pacman.xml in Resources */, + AF918B44158FC53D002B5D1E /* pedal.xml in Resources */, + AF918B45158FC53D002B5D1E /* penetrate.xml in Resources */, + AF918B46158FC53D002B5D1E /* penrose.xml in Resources */, + AF918B47158FC53D002B5D1E /* petri.xml in Resources */, + AF918B48158FC53E002B5D1E /* phosphor.xml in Resources */, + AF918B49158FC53E002B5D1E /* photopile.xml in Resources */, + AF918B4A158FC53E002B5D1E /* piecewise.xml in Resources */, + AF918B4B158FC53E002B5D1E /* pinion.xml in Resources */, + AF918B4C158FC53E002B5D1E /* pipes.xml in Resources */, + AF918B4E158FC53E002B5D1E /* polyominoes.xml in Resources */, + AF918B4F158FC53E002B5D1E /* polytopes.xml in Resources */, + AF918B50158FC53E002B5D1E /* pong.xml in Resources */, + AF918B51158FC53E002B5D1E /* popsquares.xml in Resources */, + AF918B52158FC53E002B5D1E /* providence.xml in Resources */, + AF918B53158FC53E002B5D1E /* pulsar.xml in Resources */, + AF918B54158FC53E002B5D1E /* pyro.xml in Resources */, + AF918B55158FC53E002B5D1E /* qix.xml in Resources */, + AF918B56158FC53E002B5D1E /* queens.xml in Resources */, + AF918B57158FC53E002B5D1E /* rdbomb.xml in Resources */, + AF918B58158FC53E002B5D1E /* ripples.xml in Resources */, + AF918B59158FC53E002B5D1E /* rocks.xml in Resources */, + AF918B5A158FC53E002B5D1E /* rorschach.xml in Resources */, + AF918B5C158FC53E002B5D1E /* rotzoomer.xml in Resources */, + AF918B5D158FC53E002B5D1E /* rubik.xml in Resources */, + AF918B5E158FC53E002B5D1E /* rubikblocks.xml in Resources */, + AF918B5F158FC53E002B5D1E /* sballs.xml in Resources */, + AF918B60158FC53E002B5D1E /* shadebobs.xml in Resources */, + AF918B61158FC53E002B5D1E /* sierpinski.xml in Resources */, + AF918B62158FC53E002B5D1E /* sierpinski3d.xml in Resources */, + AF918B63158FC53E002B5D1E /* skytentacles.xml in Resources */, + AF918B64158FC53E002B5D1E /* slidescreen.xml in Resources */, + AF918B65158FC53E002B5D1E /* slip.xml in Resources */, + AF918B66158FC53E002B5D1E /* sonar.xml in Resources */, + AF918B67158FC53E002B5D1E /* speedmine.xml in Resources */, + AF918B69158FC53E002B5D1E /* spheremonics.xml in Resources */, + AF918B6B158FC53E002B5D1E /* spotlight.xml in Resources */, + AF918B6C158FC53E002B5D1E /* sproingies.xml in Resources */, + AF918B6D158FC53E002B5D1E /* squiral.xml in Resources */, + AF918B6E158FC53E002B5D1E /* stairs.xml in Resources */, + AF918B6F158FC53E002B5D1E /* starfish.xml in Resources */, + AF918B70158FC53E002B5D1E /* starwars.xml in Resources */, + AF918B71158FC53E002B5D1E /* stonerview.xml in Resources */, + AF918B72158FC53E002B5D1E /* strange.xml in Resources */, + AF918B73158FC53E002B5D1E /* substrate.xml in Resources */, + AF918B74158FC53E002B5D1E /* superquadrics.xml in Resources */, + AF918B75158FC53E002B5D1E /* surfaces.xml in Resources */, + AF918B76158FC53E002B5D1E /* swirl.xml in Resources */, + AF918B78158FC53E002B5D1E /* tangram.xml in Resources */, + AF918B79158FC53E002B5D1E /* thornbird.xml in Resources */, + AF918B7A158FC53E002B5D1E /* timetunnel.xml in Resources */, + AF918B7B158FC53E002B5D1E /* topblock.xml in Resources */, + AF918B7C158FC53E002B5D1E /* triangle.xml in Resources */, + AF918B7D158FC53E002B5D1E /* tronbit.xml in Resources */, + AF918B7E158FC53E002B5D1E /* truchet.xml in Resources */, + AF918B7F158FC53E002B5D1E /* twang.xml in Resources */, + AF918B80158FC53E002B5D1E /* vermiculate.xml in Resources */, + AF918B83158FC53E002B5D1E /* voronoi.xml in Resources */, + AF918B84158FC53E002B5D1E /* wander.xml in Resources */, + AF918B86158FC53E002B5D1E /* whirlwindwarp.xml in Resources */, + AF918B89158FC53E002B5D1E /* wormhole.xml in Resources */, + AF918B8A158FC53E002B5D1E /* xanalogtv.xml in Resources */, + AF918B8B158FC53E002B5D1E /* xflame.xml in Resources */, + AF918B8C158FC53E002B5D1E /* xjack.xml in Resources */, + AF918B8D158FC53E002B5D1E /* xlyap.xml in Resources */, + AF918B8E158FC53E002B5D1E /* xmatrix.xml in Resources */, + AF918B8F158FC53E002B5D1E /* xrayswarm.xml in Resources */, + AF918B90158FC53E002B5D1E /* xspirograph.xml in Resources */, + AF918B91158FC554002B5D1E /* zoom.xml in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; AF975730099C317000B05160 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -15341,8 +16056,8 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - AF14EE310E3CEF1A004CBBD2 /* XScreenSaver.icns in Resources */, AF9772E30989DFC6001F8B92 /* SaverRunner.nib in Resources */, + AF51FD3915845FCB00E5741F /* SaverRunner.icns in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -17777,13 +18492,14 @@ /* End PBXRezBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - AF0DC7B90C4C73F600D76972 /* ShellScript */ = { + AF0DC7B90C4C73F600D76972 /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -17791,13 +18507,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AF0DCA520C4CBB0D00D76972 /* ShellScript */ = { + AF0DCA520C4CBB0D00D76972 /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -17805,13 +18522,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AF1A176F0D6D6EE3008AF328 /* ShellScript */ = { + AF1A176F0D6D6EE3008AF328 /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -17819,39 +18537,44 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AF2D51F413E94AC4002AA818 /* ShellScript */ = { + AF2D51F413E94AC4002AA818 /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX/Contents/PlugIns/*.saver\n$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX\n"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q `/bin/ls -d $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX/{Contents/,}PlugIns/*.saver 2>&-`\n$SOURCE_ROOT/OSX/update-info-plist.pl -q `/bin/ls -d $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX 2>&-`\n"; + showEnvVarsInLog = 0; }; - AF2D51FD13E94B2D002AA818 /* ShellScript */ = { + AF2D51FD13E94B2D002AA818 /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX/Contents/PlugIns/*.saver\n$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX\n"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q `/bin/ls -d $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX/{Contents/,}PlugIns/*.saver 2>&-`\n$SOURCE_ROOT/OSX/update-info-plist.pl -q `/bin/ls -d $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX 2>&-`\n"; + showEnvVarsInLog = 0; }; - AF32D9F00F3AD0B40080F535 /* ShellScript */ = { + AF32D9F00F3AD0B40080F535 /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -17859,13 +18582,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AF3581D11431D47B00E09C51 /* ShellScript */ = { + AF3581D11431D47B00E09C51 /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -17873,13 +18597,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AF358212143330F900E09C51 /* ShellScript */ = { + AF358212143330F900E09C51 /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -17887,13 +18612,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AF35E89C0E63823600691F2F /* ShellScript */ = { + AF35E89C0E63823600691F2F /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -17901,13 +18627,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AF3C71550D624BF50030CC0D /* ShellScript */ = { + AF3C71550D624BF50030CC0D /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -17915,13 +18642,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AF48DEFF0A0C25E000F94CF9 /* ShellScript */ = { + AF48DEFF0A0C25E000F94CF9 /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -17929,13 +18657,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AF4A3459102A593600A81B2A /* ShellScript */ = { + AF4A3459102A593600A81B2A /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -17943,13 +18672,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AF4FD6F60CE7A486005EE58E /* ShellScript */ = { + AF4FD6F60CE7A486005EE58E /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -17957,13 +18687,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AF4FF4CA0D52CBDE00666F98 /* ShellScript */ = { + AF4FF4CA0D52CBDE00666F98 /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -17971,13 +18702,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AF78D185142DD8F3002AAF77 /* ShellScript */ = { + AF578FA11434E918002455DD /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -17985,13 +18717,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AF998EEA0A083DB30051049D /* ShellScript */ = { + AF78D185142DD8F3002AAF77 /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -17999,13 +18732,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3393C0B058505002B0E7D /* ShellScript */ = { + AF91898A158FC00A002B5D1E /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18013,26 +18747,29 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA33C010B058E17002B0E7D /* ShellScript */ = { + AF998EEA0A083DB30051049D /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# shell script goes here\nexit 0"; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + showEnvVarsInLog = 0; }; - AFA3D69209C03B5C00E4CFCA /* ShellScript */ = { + AFA3393C0B058505002B0E7D /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18040,13 +18777,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D69409C03B6200E4CFCA /* ShellScript */ = { + AFA3D69209C03B5C00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18054,13 +18792,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D85B09C03BD300E4CFCA /* ShellScript */ = { + AFA3D69409C03B6200E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18068,13 +18807,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D85D09C03BD700E4CFCA /* ShellScript */ = { + AFA3D85B09C03BD300E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18082,13 +18822,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D85F09C03BDA00E4CFCA /* ShellScript */ = { + AFA3D85D09C03BD700E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18096,13 +18837,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D86109C03BDE00E4CFCA /* ShellScript */ = { + AFA3D85F09C03BDA00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18110,13 +18852,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D86309C03BE200E4CFCA /* ShellScript */ = { + AFA3D86109C03BDE00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18124,13 +18867,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D86509C03BE500E4CFCA /* ShellScript */ = { + AFA3D86309C03BE200E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18138,13 +18882,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D86709C03BE800E4CFCA /* ShellScript */ = { + AFA3D86509C03BE500E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18152,13 +18897,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D86909C03BEC00E4CFCA /* ShellScript */ = { + AFA3D86709C03BE800E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18166,13 +18912,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D86B09C03BEF00E4CFCA /* ShellScript */ = { + AFA3D86909C03BEC00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18180,13 +18927,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D86D09C03BF300E4CFCA /* ShellScript */ = { + AFA3D86B09C03BEF00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18194,13 +18942,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D86F09C03BF700E4CFCA /* ShellScript */ = { + AFA3D86D09C03BF300E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18208,13 +18957,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D87109C03BFB00E4CFCA /* ShellScript */ = { + AFA3D86F09C03BF700E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18222,13 +18972,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D87309C03C0000E4CFCA /* ShellScript */ = { + AFA3D87109C03BFB00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18236,13 +18987,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D87509C03C0400E4CFCA /* ShellScript */ = { + AFA3D87309C03C0000E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18250,13 +19002,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D87709C03C0A00E4CFCA /* ShellScript */ = { + AFA3D87509C03C0400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18264,13 +19017,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D87909C03C1200E4CFCA /* ShellScript */ = { + AFA3D87709C03C0A00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18278,13 +19032,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D87B09C03C1700E4CFCA /* ShellScript */ = { + AFA3D87909C03C1200E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18292,13 +19047,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D87D09C03C1B00E4CFCA /* ShellScript */ = { + AFA3D87B09C03C1700E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18306,13 +19062,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D87F09C03C1E00E4CFCA /* ShellScript */ = { + AFA3D87D09C03C1B00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18320,13 +19077,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D88109C03C2100E4CFCA /* ShellScript */ = { + AFA3D87F09C03C1E00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18334,13 +19092,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D88309C03C2400E4CFCA /* ShellScript */ = { + AFA3D88109C03C2100E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18348,13 +19107,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D88509C03C2700E4CFCA /* ShellScript */ = { + AFA3D88309C03C2400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18362,13 +19122,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D88709C03C2A00E4CFCA /* ShellScript */ = { + AFA3D88509C03C2700E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18376,13 +19137,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D88909C03C2E00E4CFCA /* ShellScript */ = { + AFA3D88709C03C2A00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18390,13 +19152,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D88B09C03C3200E4CFCA /* ShellScript */ = { + AFA3D88909C03C2E00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18404,13 +19167,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D88D09C03C3600E4CFCA /* ShellScript */ = { + AFA3D88B09C03C3200E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18418,13 +19182,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D88F09C03C3900E4CFCA /* ShellScript */ = { + AFA3D88D09C03C3600E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18432,13 +19197,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D89109C03C3C00E4CFCA /* ShellScript */ = { + AFA3D88F09C03C3900E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18446,13 +19212,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D89309C03C4000E4CFCA /* ShellScript */ = { + AFA3D89109C03C3C00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18460,13 +19227,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D89509C03C4400E4CFCA /* ShellScript */ = { + AFA3D89309C03C4000E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18474,13 +19242,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D89709C03C4700E4CFCA /* ShellScript */ = { + AFA3D89509C03C4400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18488,13 +19257,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D89B09C03C4D00E4CFCA /* ShellScript */ = { + AFA3D89709C03C4700E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18502,13 +19272,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D89D09C03C5000E4CFCA /* ShellScript */ = { + AFA3D89B09C03C4D00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18516,13 +19287,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D89F09C03C5300E4CFCA /* ShellScript */ = { + AFA3D89D09C03C5000E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18530,13 +19302,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8A109C03C5600E4CFCA /* ShellScript */ = { + AFA3D89F09C03C5300E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18544,13 +19317,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8A309C03C5F00E4CFCA /* ShellScript */ = { + AFA3D8A109C03C5600E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18558,13 +19332,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8A509C03C6200E4CFCA /* ShellScript */ = { + AFA3D8A309C03C5F00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18572,13 +19347,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8A909C03C6900E4CFCA /* ShellScript */ = { + AFA3D8A509C03C6200E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18586,13 +19362,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8AB09C03C6D00E4CFCA /* ShellScript */ = { + AFA3D8A909C03C6900E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18600,13 +19377,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8AD09C03C7000E4CFCA /* ShellScript */ = { + AFA3D8AB09C03C6D00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18614,13 +19392,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8AF09C03C7300E4CFCA /* ShellScript */ = { + AFA3D8AD09C03C7000E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18628,13 +19407,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8B109C03C7600E4CFCA /* ShellScript */ = { + AFA3D8AF09C03C7300E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18642,13 +19422,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8B309C03C7900E4CFCA /* ShellScript */ = { + AFA3D8B109C03C7600E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18656,13 +19437,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8B509C03C7C00E4CFCA /* ShellScript */ = { + AFA3D8B309C03C7900E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18670,13 +19452,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8B709C03C7F00E4CFCA /* ShellScript */ = { + AFA3D8B509C03C7C00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18684,13 +19467,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8B909C03C8200E4CFCA /* ShellScript */ = { + AFA3D8B709C03C7F00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18698,13 +19482,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8BB09C03C8600E4CFCA /* ShellScript */ = { + AFA3D8B909C03C8200E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18712,13 +19497,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8BD09C03C8900E4CFCA /* ShellScript */ = { + AFA3D8BB09C03C8600E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18726,13 +19512,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8BF09C03C8D00E4CFCA /* ShellScript */ = { + AFA3D8BD09C03C8900E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18740,13 +19527,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8C109C03C9000E4CFCA /* ShellScript */ = { + AFA3D8BF09C03C8D00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18754,13 +19542,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8C309C03C9300E4CFCA /* ShellScript */ = { + AFA3D8C109C03C9000E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18768,13 +19557,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8C509C03C9600E4CFCA /* ShellScript */ = { + AFA3D8C309C03C9300E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18782,13 +19572,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8C709C03C9900E4CFCA /* ShellScript */ = { + AFA3D8C509C03C9600E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18796,13 +19587,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8C909C03C9E00E4CFCA /* ShellScript */ = { + AFA3D8C709C03C9900E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18810,13 +19602,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8CB09C03CA100E4CFCA /* ShellScript */ = { + AFA3D8C909C03C9E00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18824,13 +19617,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8CD09C03CA400E4CFCA /* ShellScript */ = { + AFA3D8CB09C03CA100E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18838,13 +19632,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8CF09C03CA800E4CFCA /* ShellScript */ = { + AFA3D8CD09C03CA400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18852,13 +19647,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8D109C03CAB00E4CFCA /* ShellScript */ = { + AFA3D8CF09C03CA800E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18866,13 +19662,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8D309C03CAE00E4CFCA /* ShellScript */ = { + AFA3D8D109C03CAB00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18880,13 +19677,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8D709C03CB400E4CFCA /* ShellScript */ = { + AFA3D8D309C03CAE00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18894,13 +19692,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8D909C03CB700E4CFCA /* ShellScript */ = { + AFA3D8D709C03CB400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18908,13 +19707,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8DB09C03CBA00E4CFCA /* ShellScript */ = { + AFA3D8D909C03CB700E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18922,13 +19722,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8DD09C03CBD00E4CFCA /* ShellScript */ = { + AFA3D8DB09C03CBA00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18936,13 +19737,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8DF09C03CC000E4CFCA /* ShellScript */ = { + AFA3D8DD09C03CBD00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18950,13 +19752,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8E109C03CC400E4CFCA /* ShellScript */ = { + AFA3D8DF09C03CC000E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18964,13 +19767,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8E309C03CCA00E4CFCA /* ShellScript */ = { + AFA3D8E109C03CC400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18978,13 +19782,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8E509C03CCD00E4CFCA /* ShellScript */ = { + AFA3D8E309C03CCA00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -18992,13 +19797,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8E709C03CD100E4CFCA /* ShellScript */ = { + AFA3D8E509C03CCD00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19006,13 +19812,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8E909C03CD500E4CFCA /* ShellScript */ = { + AFA3D8E709C03CD100E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19020,13 +19827,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8EB09C03CD800E4CFCA /* ShellScript */ = { + AFA3D8E909C03CD500E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19034,13 +19842,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8ED09C03CDB00E4CFCA /* ShellScript */ = { + AFA3D8EB09C03CD800E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19048,13 +19857,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8EF09C03CDE00E4CFCA /* ShellScript */ = { + AFA3D8ED09C03CDB00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19062,13 +19872,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8F109C03CE100E4CFCA /* ShellScript */ = { + AFA3D8EF09C03CDE00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19076,13 +19887,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8F309C03CE400E4CFCA /* ShellScript */ = { + AFA3D8F109C03CE100E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19090,13 +19902,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8F509C03CE800E4CFCA /* ShellScript */ = { + AFA3D8F309C03CE400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19104,13 +19917,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8F709C03CEA00E4CFCA /* ShellScript */ = { + AFA3D8F509C03CE800E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19118,13 +19932,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8F909C03CED00E4CFCA /* ShellScript */ = { + AFA3D8F709C03CEA00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19132,13 +19947,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8FB09C03CF100E4CFCA /* ShellScript */ = { + AFA3D8F909C03CED00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19146,13 +19962,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8FD09C03CF400E4CFCA /* ShellScript */ = { + AFA3D8FB09C03CF100E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19160,13 +19977,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D8FF09C03CF700E4CFCA /* ShellScript */ = { + AFA3D8FD09C03CF400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19174,13 +19992,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D90109C03D0000E4CFCA /* ShellScript */ = { + AFA3D8FF09C03CF700E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19188,13 +20007,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D90309C03D0400E4CFCA /* ShellScript */ = { + AFA3D90109C03D0000E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19202,13 +20022,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D90509C03D0700E4CFCA /* ShellScript */ = { + AFA3D90309C03D0400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19216,13 +20037,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D90709C03D0B00E4CFCA /* ShellScript */ = { + AFA3D90509C03D0700E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19230,13 +20052,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D90909C03D0E00E4CFCA /* ShellScript */ = { + AFA3D90709C03D0B00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19244,13 +20067,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D90B09C03D1100E4CFCA /* ShellScript */ = { + AFA3D90909C03D0E00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19258,13 +20082,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D90D09C03D1400E4CFCA /* ShellScript */ = { + AFA3D90B09C03D1100E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19272,13 +20097,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D90F09C03D1800E4CFCA /* ShellScript */ = { + AFA3D90D09C03D1400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19286,13 +20112,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D91109C03D1B00E4CFCA /* ShellScript */ = { + AFA3D90F09C03D1800E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19300,13 +20127,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D91309C03D1E00E4CFCA /* ShellScript */ = { + AFA3D91109C03D1B00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19314,13 +20142,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D91509C03D2100E4CFCA /* ShellScript */ = { + AFA3D91309C03D1E00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19328,13 +20157,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D91709C03D2400E4CFCA /* ShellScript */ = { + AFA3D91509C03D2100E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19342,13 +20172,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D91909C03D2700E4CFCA /* ShellScript */ = { + AFA3D91709C03D2400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19356,13 +20187,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D91D09C03D3000E4CFCA /* ShellScript */ = { + AFA3D91909C03D2700E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19370,13 +20202,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D91F09C03D3300E4CFCA /* ShellScript */ = { + AFA3D91D09C03D3000E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19384,13 +20217,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D92109C03D3600E4CFCA /* ShellScript */ = { + AFA3D91F09C03D3300E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19398,13 +20232,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D92309C03D3A00E4CFCA /* ShellScript */ = { + AFA3D92109C03D3600E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19412,13 +20247,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D92509C03D3D00E4CFCA /* ShellScript */ = { + AFA3D92309C03D3A00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19426,13 +20262,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D92709C03D4000E4CFCA /* ShellScript */ = { + AFA3D92509C03D3D00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19440,13 +20277,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D92909C03D4400E4CFCA /* ShellScript */ = { + AFA3D92709C03D4000E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19454,13 +20292,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D92B09C03D4700E4CFCA /* ShellScript */ = { + AFA3D92909C03D4400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19468,13 +20307,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D92D09C03D4A00E4CFCA /* ShellScript */ = { + AFA3D92B09C03D4700E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19482,13 +20322,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D92F09C03D4E00E4CFCA /* ShellScript */ = { + AFA3D92D09C03D4A00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19496,13 +20337,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D93109C03D5100E4CFCA /* ShellScript */ = { + AFA3D92F09C03D4E00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19510,13 +20352,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D93309C03D5400E4CFCA /* ShellScript */ = { + AFA3D93109C03D5100E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19524,13 +20367,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D93509C03D5700E4CFCA /* ShellScript */ = { + AFA3D93309C03D5400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19538,13 +20382,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D93709C03D5B00E4CFCA /* ShellScript */ = { + AFA3D93509C03D5700E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19552,13 +20397,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D93909C03D5E00E4CFCA /* ShellScript */ = { + AFA3D93709C03D5B00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19566,13 +20412,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D93B09C03D6200E4CFCA /* ShellScript */ = { + AFA3D93909C03D5E00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19580,13 +20427,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D93D09C03D6C00E4CFCA /* ShellScript */ = { + AFA3D93B09C03D6200E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19594,13 +20442,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D93F09C03D6F00E4CFCA /* ShellScript */ = { + AFA3D93D09C03D6C00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19608,13 +20457,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D94109C03D7200E4CFCA /* ShellScript */ = { + AFA3D93F09C03D6F00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19622,13 +20472,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D94309C03D7600E4CFCA /* ShellScript */ = { + AFA3D94109C03D7200E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19636,13 +20487,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D94509C03D7A00E4CFCA /* ShellScript */ = { + AFA3D94309C03D7600E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19650,13 +20502,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D94709C03D7E00E4CFCA /* ShellScript */ = { + AFA3D94509C03D7A00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19664,13 +20517,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D94909C03D8100E4CFCA /* ShellScript */ = { + AFA3D94709C03D7E00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19678,13 +20532,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D94B09C03D8500E4CFCA /* ShellScript */ = { + AFA3D94909C03D8100E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19692,13 +20547,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D94D09C03D8D00E4CFCA /* ShellScript */ = { + AFA3D94B09C03D8500E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19706,13 +20562,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D94F09C03D9100E4CFCA /* ShellScript */ = { + AFA3D94D09C03D8D00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19720,13 +20577,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D95109C03D9400E4CFCA /* ShellScript */ = { + AFA3D94F09C03D9100E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19734,13 +20592,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D95309C03D9800E4CFCA /* ShellScript */ = { + AFA3D95109C03D9400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19748,13 +20607,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D95509C03D9C00E4CFCA /* ShellScript */ = { + AFA3D95309C03D9800E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19762,13 +20622,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D95709C03DA100E4CFCA /* ShellScript */ = { + AFA3D95509C03D9C00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19776,13 +20637,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D95909C03DA400E4CFCA /* ShellScript */ = { + AFA3D95709C03DA100E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19790,13 +20652,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D95B09C03DA800E4CFCA /* ShellScript */ = { + AFA3D95909C03DA400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19804,13 +20667,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D95D09C03DAB00E4CFCA /* ShellScript */ = { + AFA3D95B09C03DA800E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19818,13 +20682,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D95F09C03DAE00E4CFCA /* ShellScript */ = { + AFA3D95D09C03DAB00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19832,13 +20697,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D96109C03DB100E4CFCA /* ShellScript */ = { + AFA3D95F09C03DAE00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19846,13 +20712,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D96309C03DB500E4CFCA /* ShellScript */ = { + AFA3D96109C03DB100E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19860,13 +20727,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D96509C03DB900E4CFCA /* ShellScript */ = { + AFA3D96309C03DB500E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19874,13 +20742,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D96709C03DBC00E4CFCA /* ShellScript */ = { + AFA3D96509C03DB900E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19888,13 +20757,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D96909C03DBF00E4CFCA /* ShellScript */ = { + AFA3D96709C03DBC00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19902,13 +20772,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D96B09C03DC600E4CFCA /* ShellScript */ = { + AFA3D96909C03DBF00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19916,13 +20787,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D96D09C03DCA00E4CFCA /* ShellScript */ = { + AFA3D96B09C03DC600E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19930,13 +20802,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D96F09C03DCD00E4CFCA /* ShellScript */ = { + AFA3D96D09C03DCA00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19944,13 +20817,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D97109C03DD000E4CFCA /* ShellScript */ = { + AFA3D96F09C03DCD00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19958,13 +20832,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D97309C03DD300E4CFCA /* ShellScript */ = { + AFA3D97109C03DD000E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19972,13 +20847,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D97509C03DD700E4CFCA /* ShellScript */ = { + AFA3D97309C03DD300E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -19986,13 +20862,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D97709C03DDA00E4CFCA /* ShellScript */ = { + AFA3D97509C03DD700E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20000,13 +20877,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D97909C03DDD00E4CFCA /* ShellScript */ = { + AFA3D97709C03DDA00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20014,13 +20892,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D97B09C03DE000E4CFCA /* ShellScript */ = { + AFA3D97909C03DDD00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20028,13 +20907,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D97D09C03DE400E4CFCA /* ShellScript */ = { + AFA3D97B09C03DE000E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20042,13 +20922,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D97F09C03DE700E4CFCA /* ShellScript */ = { + AFA3D97D09C03DE400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20056,13 +20937,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D98109C03DEA00E4CFCA /* ShellScript */ = { + AFA3D97F09C03DE700E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20070,13 +20952,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D98309C03DEE00E4CFCA /* ShellScript */ = { + AFA3D98109C03DEA00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20084,13 +20967,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D98509C03DF100E4CFCA /* ShellScript */ = { + AFA3D98309C03DEE00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20098,13 +20982,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D98709C03DF400E4CFCA /* ShellScript */ = { + AFA3D98509C03DF100E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20112,13 +20997,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D98909C03DF700E4CFCA /* ShellScript */ = { + AFA3D98709C03DF400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20126,13 +21012,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D98B09C03DFC00E4CFCA /* ShellScript */ = { + AFA3D98909C03DF700E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20140,13 +21027,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D98D09C03E0500E4CFCA /* ShellScript */ = { + AFA3D98B09C03DFC00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20154,13 +21042,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D98F09C03E0F00E4CFCA /* ShellScript */ = { + AFA3D98D09C03E0500E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20168,13 +21057,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D99109C03E1200E4CFCA /* ShellScript */ = { + AFA3D98F09C03E0F00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20182,13 +21072,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D99309C03E1600E4CFCA /* ShellScript */ = { + AFA3D99109C03E1200E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20196,13 +21087,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D99509C03E1900E4CFCA /* ShellScript */ = { + AFA3D99309C03E1600E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20210,13 +21102,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D99709C03E1C00E4CFCA /* ShellScript */ = { + AFA3D99509C03E1900E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20224,13 +21117,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D99909C03E2000E4CFCA /* ShellScript */ = { + AFA3D99709C03E1C00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20238,13 +21132,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D99B09C03E2300E4CFCA /* ShellScript */ = { + AFA3D99909C03E2000E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20252,13 +21147,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D99D09C03E2600E4CFCA /* ShellScript */ = { + AFA3D99B09C03E2300E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20266,13 +21162,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D99F09C03E2900E4CFCA /* ShellScript */ = { + AFA3D99D09C03E2600E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20280,13 +21177,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9A109C03E2E00E4CFCA /* ShellScript */ = { + AFA3D99F09C03E2900E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20294,13 +21192,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9A309C03E3200E4CFCA /* ShellScript */ = { + AFA3D9A109C03E2E00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20308,13 +21207,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9A509C03E3600E4CFCA /* ShellScript */ = { + AFA3D9A309C03E3200E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20322,13 +21222,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9A709C03E3A00E4CFCA /* ShellScript */ = { + AFA3D9A509C03E3600E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20336,13 +21237,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9A909C03E3D00E4CFCA /* ShellScript */ = { + AFA3D9A709C03E3A00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20350,13 +21252,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9AB09C03E4200E4CFCA /* ShellScript */ = { + AFA3D9A909C03E3D00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20364,13 +21267,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9AD09C03E4600E4CFCA /* ShellScript */ = { + AFA3D9AB09C03E4200E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20378,13 +21282,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9AF09C03E4B00E4CFCA /* ShellScript */ = { + AFA3D9AD09C03E4600E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20392,13 +21297,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9B109C03E4E00E4CFCA /* ShellScript */ = { + AFA3D9AF09C03E4B00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20406,13 +21312,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9B309C03E5100E4CFCA /* ShellScript */ = { + AFA3D9B109C03E4E00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20420,13 +21327,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9B509C03E5700E4CFCA /* ShellScript */ = { + AFA3D9B309C03E5100E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20434,13 +21342,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9B709C03E5B00E4CFCA /* ShellScript */ = { + AFA3D9B509C03E5700E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20448,13 +21357,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9B909C03E5E00E4CFCA /* ShellScript */ = { + AFA3D9B709C03E5B00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20462,13 +21372,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9BB09C03E6200E4CFCA /* ShellScript */ = { + AFA3D9B909C03E5E00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20476,13 +21387,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9BD09C03E6500E4CFCA /* ShellScript */ = { + AFA3D9BB09C03E6200E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20490,13 +21402,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9BF09C03E6900E4CFCA /* ShellScript */ = { + AFA3D9BD09C03E6500E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20504,13 +21417,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9C109C03E6E00E4CFCA /* ShellScript */ = { + AFA3D9BF09C03E6900E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20518,13 +21432,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9C309C03E7100E4CFCA /* ShellScript */ = { + AFA3D9C109C03E6E00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20532,13 +21447,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9C509C03E7400E4CFCA /* ShellScript */ = { + AFA3D9C309C03E7100E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20546,13 +21462,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9C709C03E7800E4CFCA /* ShellScript */ = { + AFA3D9C509C03E7400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20560,13 +21477,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9C909C03E7C00E4CFCA /* ShellScript */ = { + AFA3D9C709C03E7800E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20574,13 +21492,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9CB09C03E7F00E4CFCA /* ShellScript */ = { + AFA3D9C909C03E7C00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20588,13 +21507,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9CD09C03E8400E4CFCA /* ShellScript */ = { + AFA3D9CB09C03E7F00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20602,13 +21522,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9CF09C03E8700E4CFCA /* ShellScript */ = { + AFA3D9CD09C03E8400E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20616,13 +21537,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9D109C03E8B00E4CFCA /* ShellScript */ = { + AFA3D9CF09C03E8700E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20630,13 +21552,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9D309C03E8F00E4CFCA /* ShellScript */ = { + AFA3D9D109C03E8B00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20644,13 +21567,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3D9D509C03E9300E4CFCA /* ShellScript */ = { + AFA3D9D309C03E8F00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20658,13 +21582,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFA3DBA209C0424C00E4CFCA /* ShellScript */ = { + AFA3D9D509C03E9300E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20672,13 +21597,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFCCCBB509C033DF00353F4D /* ShellScript */ = { + AFA3DBA209C0424C00E4CFCA /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20686,13 +21612,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFCCCBC709C03AAF00353F4D /* ShellScript */ = { + AFCCCBB509C033DF00353F4D /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20700,13 +21627,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFCCCBCB09C03AEE00353F4D /* ShellScript */ = { + AFCCCBC709C03AAF00353F4D /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20714,13 +21642,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFCCCBCD09C03AF400353F4D /* ShellScript */ = { + AFCCCBCB09C03AEE00353F4D /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20728,13 +21657,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFCCCBCF09C03AF800353F4D /* ShellScript */ = { + AFCCCBCD09C03AF400353F4D /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20742,13 +21672,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFCCCBD109C03AFC00353F4D /* ShellScript */ = { + AFCCCBCF09C03AF800353F4D /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20756,13 +21687,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFCCCBD309C03B0000353F4D /* ShellScript */ = { + AFCCCBD109C03AFC00353F4D /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20770,13 +21702,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFCCCBD509C03B0500353F4D /* ShellScript */ = { + AFCCCBD309C03B0000353F4D /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20784,13 +21717,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFD51B2C0F063B4A00471C02 /* ShellScript */ = { + AFCCCBD509C03B0500353F4D /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20798,13 +21732,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFE2A4660E2E904600ADB298 /* ShellScript */ = { + AFD51B2C0F063B4A00471C02 /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20812,13 +21747,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFE30BF80E52B14700CCF4A5 /* ShellScript */ = { + AFE2A4660E2E904600ADB298 /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20826,13 +21762,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFE6A1930CDD7B2E002805BF /* ShellScript */ = { + AFE30BF80E52B14700CCF4A5 /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20840,13 +21777,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFE6A4290CDD7FAA002805BF /* ShellScript */ = { + AFE6A1930CDD7B2E002805BF /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20854,13 +21792,14 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFF463430C4403E400EE6509 /* ShellScript */ = { + AFE6A4290CDD7FAA002805BF /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20868,13 +21807,29 @@ shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; showEnvVarsInLog = 0; }; - AFF463680C440AEF00EE6509 /* ShellScript */ = { + AFF463430C4403E400EE6509 /* Run Update Info Plist */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); + name = "Run Update Info Plist"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX"; + showEnvVarsInLog = 0; + }; + AFF463680C440AEF00EE6509 /* Run Update Info Plist */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Update Info Plist"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -20948,6 +21903,7 @@ AF3581DE1431D5FC00E09C51 /* companion_heart.c in Sources */, AF3581E11431D5FC00E09C51 /* companion_quad.c in Sources */, AF3581E41431D5FC00E09C51 /* companion.c in Sources */, + AF84AF1F15829AF000607E4C /* SaverListController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -20962,6 +21918,7 @@ AF3581DD1431D5FC00E09C51 /* companion_heart.c in Sources */, AF3581E01431D5FC00E09C51 /* companion_quad.c in Sources */, AF3581E31431D5FC00E09C51 /* companion.c in Sources */, + AF51FD3515845D1400E5741F /* SaverListController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -21498,6 +22455,9 @@ AF77783D09B651C700EA3033 /* glut_swidth.c in Sources */, AF7778C609B65CFE00EA3033 /* font-ximage.c in Sources */, AFAD462309D5F4DA00AB5F95 /* grabclient.c in Sources */, + AF6048FB157C07C600CA21E4 /* jwzgles.c in Sources */, + AFC7592D158D8E8B00C5458E /* textclient.c in Sources */, + AFC75930158D9A7A00C5458E /* iostextclient.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -21838,6 +22798,270 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AF918985158FC00A002B5D1E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AF918986158FC00A002B5D1E /* SaverRunner.m in Sources */, + AF918987158FC00A002B5D1E /* main.m in Sources */, + AF918988158FC00A002B5D1E /* SaverListController.m in Sources */, + AF918993158FC2BE002B5D1E /* abstractile.c in Sources */, + AF918994158FC2BE002B5D1E /* anemone.c in Sources */, + AF918995158FC2E0002B5D1E /* analogtv.c in Sources */, + AF918996158FC310002B5D1E /* anemotaxis.c in Sources */, + AF918997158FC310002B5D1E /* apple2-main.c in Sources */, + AF918998158FC310002B5D1E /* apple2.c in Sources */, + AF918999158FC310002B5D1E /* asm6502.c in Sources */, + AF91899A158FC310002B5D1E /* attraction.c in Sources */, + AF91899B158FC310002B5D1E /* barcode.c in Sources */, + AF91899C158FC310002B5D1E /* blaster.c in Sources */, + AF91899D158FC310002B5D1E /* blitspin.c in Sources */, + AF91899E158FC310002B5D1E /* boxfit.c in Sources */, + AF91899F158FC310002B5D1E /* bsod.c in Sources */, + AF9189A0158FC310002B5D1E /* bubbles-default.c in Sources */, + AF9189A2158FC310002B5D1E /* bumps.c in Sources */, + AF9189A3158FC310002B5D1E /* ccurve.c in Sources */, + AF9189A4158FC310002B5D1E /* celtic.c in Sources */, + AF9189A5158FC310002B5D1E /* cloudlife.c in Sources */, + AF9189AA158FC311002B5D1E /* compass.c in Sources */, + AF9189AB158FC311002B5D1E /* coral.c in Sources */, + AF9189AD158FC311002B5D1E /* cwaves.c in Sources */, + AF9189AE158FC311002B5D1E /* cynosure.c in Sources */, + AF9189AF158FC311002B5D1E /* decayscreen.c in Sources */, + AF9189B0158FC311002B5D1E /* deco.c in Sources */, + AF9189B1158FC311002B5D1E /* deluxe.c in Sources */, + AF9189B2158FC311002B5D1E /* distort.c in Sources */, + AF9189B3158FC311002B5D1E /* epicycle.c in Sources */, + AF9189B4158FC311002B5D1E /* eruption.c in Sources */, + AF9189B5158FC311002B5D1E /* fireworkx.c in Sources */, + AF9189B6158FC334002B5D1E /* flame.c in Sources */, + AF9189B7158FC334002B5D1E /* fluidballs.c in Sources */, + AF9189B8158FC334002B5D1E /* fontglide.c in Sources */, + AF9189B9158FC334002B5D1E /* fps.c in Sources */, + AF9189BA158FC334002B5D1E /* fuzzyflakes.c in Sources */, + AF9189BB158FC334002B5D1E /* goop.c in Sources */, + AF9189BC158FC334002B5D1E /* greynetic.c in Sources */, + AF9189BD158FC334002B5D1E /* halftone.c in Sources */, + AF9189BE158FC334002B5D1E /* halo.c in Sources */, + AF9189BF158FC334002B5D1E /* helix.c in Sources */, + AF9189C2158FC334002B5D1E /* ifs.c in Sources */, + AF9189C3158FC334002B5D1E /* imsmap.c in Sources */, + AF9189C4158FC334002B5D1E /* interaggregate.c in Sources */, + AF9189C5158FC334002B5D1E /* interference.c in Sources */, + AF9189C6158FC334002B5D1E /* intermomentary.c in Sources */, + AF9189C7158FC334002B5D1E /* kaleidescope.c in Sources */, + AF9189C8158FC334002B5D1E /* kumppa.c in Sources */, + AF9189CB158FC334002B5D1E /* m6502.c in Sources */, + AF9189CC158FC334002B5D1E /* maze.c in Sources */, + AF9189CD158FC334002B5D1E /* memscroller.c in Sources */, + AF9189CE158FC334002B5D1E /* metaballs.c in Sources */, + AF9189CF158FC334002B5D1E /* moire.c in Sources */, + AF9189D0158FC334002B5D1E /* moire2.c in Sources */, + AF9189D1158FC334002B5D1E /* munch.c in Sources */, + AF9189D2158FC334002B5D1E /* nerverot.c in Sources */, + AF9189D3158FC334002B5D1E /* noseguy.c in Sources */, + AF9189D4158FC334002B5D1E /* pedal.c in Sources */, + AF9189D5158FC334002B5D1E /* penetrate.c in Sources */, + AF9189D6158FC334002B5D1E /* petri.c in Sources */, + AF9189D7158FC334002B5D1E /* phosphor.c in Sources */, + AF9189D8158FC334002B5D1E /* piecewise.c in Sources */, + AF9189D9158FC334002B5D1E /* pong.c in Sources */, + AF9189DA158FC334002B5D1E /* popsquares.c in Sources */, + AF9189DB158FC334002B5D1E /* pyro.c in Sources */, + AF9189DC158FC334002B5D1E /* qix.c in Sources */, + AF9189DD158FC334002B5D1E /* rd-bomb.c in Sources */, + AF9189DE158FC334002B5D1E /* ripples.c in Sources */, + AF9189DF158FC35D002B5D1E /* rocks.c in Sources */, + AF9189E0158FC35D002B5D1E /* rorschach.c in Sources */, + AF9189E1158FC35D002B5D1E /* rotzoomer.c in Sources */, + AF9189E2158FC35D002B5D1E /* shadebobs.c in Sources */, + AF9189E3158FC35D002B5D1E /* slidescreen.c in Sources */, + AF9189E4158FC35D002B5D1E /* speedmine.c in Sources */, + AF9189E5158FC35D002B5D1E /* spotlight.c in Sources */, + AF9189E6158FC35D002B5D1E /* squiral.c in Sources */, + AF9189E7158FC35D002B5D1E /* starfish.c in Sources */, + AF9189E8158FC35D002B5D1E /* substrate.c in Sources */, + AF9189EF158FC35D002B5D1E /* truchet.c in Sources */, + AF9189F0158FC35D002B5D1E /* twang.c in Sources */, + AF9189F1158FC35D002B5D1E /* vermiculate.c in Sources */, + AF9189F2158FC35D002B5D1E /* wander.c in Sources */, + AF9189F3158FC35E002B5D1E /* whirlwindwarp.c in Sources */, + AF9189F5158FC35E002B5D1E /* wormhole.c in Sources */, + AF9189F6158FC35E002B5D1E /* xanalogtv.c in Sources */, + AF9189F7158FC35E002B5D1E /* xflame.c in Sources */, + AF9189F8158FC35E002B5D1E /* xjack.c in Sources */, + AF9189F9158FC35E002B5D1E /* xlyap.c in Sources */, + AF9189FA158FC35E002B5D1E /* xmatrix.c in Sources */, + AF9189FB158FC35E002B5D1E /* xrayswarm.c in Sources */, + AF9189FC158FC35E002B5D1E /* xspirograph.c in Sources */, + AF9189FD158FC35E002B5D1E /* zoom.c in Sources */, + AF9189FF158FC38A002B5D1E /* apollonian.c in Sources */, + AF918A00158FC38A002B5D1E /* bouboule.c in Sources */, + AF918A01158FC38A002B5D1E /* braid.c in Sources */, + AF918A02158FC38A002B5D1E /* crystal.c in Sources */, + AF918A03158FC38A002B5D1E /* demon.c in Sources */, + AF918A04158FC38A002B5D1E /* discrete.c in Sources */, + AF918A05158FC38A002B5D1E /* drift.c in Sources */, + AF918A06158FC38A002B5D1E /* euler2d.c in Sources */, + AF918A07158FC38A002B5D1E /* fadeplot.c in Sources */, + AF918A08158FC38A002B5D1E /* fiberlamp.c in Sources */, + AF918A0A158FC38A002B5D1E /* flow.c in Sources */, + AF918A0C158FC38A002B5D1E /* galaxy.c in Sources */, + AF918A0D158FC38A002B5D1E /* grav.c in Sources */, + AF918A0E158FC38A002B5D1E /* hopalong.c in Sources */, + AF918A11158FC38A002B5D1E /* julia.c in Sources */, + AF918A16158FC38A002B5D1E /* loop.c in Sources */, + AF918A17158FC38A002B5D1E /* mountain.c in Sources */, + AF918A18158FC38A002B5D1E /* pacman.c in Sources */, + AF918A19158FC38A002B5D1E /* pacman_ai.c in Sources */, + AF918A1A158FC38A002B5D1E /* pacman_level.c in Sources */, + AF918A1B158FC38A002B5D1E /* penrose.c in Sources */, + AF918A1C158FC38A002B5D1E /* polyominoes.c in Sources */, + AF918A1E158FC38A002B5D1E /* sierpinski.c in Sources */, + AF918A1F158FC38A002B5D1E /* slip.c in Sources */, + AF918A22158FC38A002B5D1E /* strange.c in Sources */, + AF918A23158FC38A002B5D1E /* swirl.c in Sources */, + AF918A24158FC38A002B5D1E /* thornbird.c in Sources */, + AF918A25158FC38A002B5D1E /* triangle.c in Sources */, + AF918A28158FC3BB002B5D1E /* antinspect.c in Sources */, + AF918A29158FC3BB002B5D1E /* antmaze.c in Sources */, + AF918A2A158FC3BB002B5D1E /* antspotlight.c in Sources */, + AF918A2B158FC3BB002B5D1E /* atlantis.c in Sources */, + AF918A2C158FC3BB002B5D1E /* atunnel.c in Sources */, + AF918A2D158FC3BB002B5D1E /* b_draw.c in Sources */, + AF918A2E158FC3BB002B5D1E /* b_lockglue.c in Sources */, + AF918A2F158FC3BB002B5D1E /* b_sphere.c in Sources */, + AF918A30158FC3BB002B5D1E /* blinkbox.c in Sources */, + AF918A31158FC3BB002B5D1E /* blocktube.c in Sources */, + AF918A32158FC3BB002B5D1E /* boing.c in Sources */, + AF918A33158FC3BB002B5D1E /* bouncingcow.c in Sources */, + AF918A34158FC3BB002B5D1E /* boxed.c in Sources */, + AF918A35158FC3BB002B5D1E /* bubble3d.c in Sources */, + AF918A36158FC3BB002B5D1E /* buildlwo.c in Sources */, + AF918A37158FC3BB002B5D1E /* cage.c in Sources */, + AF918A38158FC3BB002B5D1E /* carousel.c in Sources */, + AF918A39158FC3BB002B5D1E /* chessmodels.c in Sources */, + AF918A3A158FC3BB002B5D1E /* circuit.c in Sources */, + AF9189A6158FC310002B5D1E /* companion.c in Sources */, + AF9189A7158FC311002B5D1E /* companion_disc.c in Sources */, + AF9189A8158FC311002B5D1E /* companion_heart.c in Sources */, + AF9189A9158FC311002B5D1E /* companion_quad.c in Sources */, + AF918A3B158FC3BB002B5D1E /* cow_face.c in Sources */, + AF918A3C158FC3BB002B5D1E /* cow_hide.c in Sources */, + AF918A3D158FC3BB002B5D1E /* cow_hoofs.c in Sources */, + AF918A3E158FC3BB002B5D1E /* cow_horns.c in Sources */, + AF918A3F158FC3BB002B5D1E /* cow_tail.c in Sources */, + AF918A40158FC3BB002B5D1E /* cow_udder.c in Sources */, + AF918A41158FC3BB002B5D1E /* crackberg.c in Sources */, + AF918A42158FC3BB002B5D1E /* cube21.c in Sources */, + AF918A43158FC3BB002B5D1E /* cubenetic.c in Sources */, + AF918A44158FC3BB002B5D1E /* cubestorm.c in Sources */, + AF918A45158FC3BB002B5D1E /* cubicgrid.c in Sources */, + AF918A46158FC3BB002B5D1E /* dangerball.c in Sources */, + AF918A48158FC3BB002B5D1E /* dolphin.c in Sources */, + AF918A49158FC3BB002B5D1E /* dropshadow.c in Sources */, + AF918A4A158FC3E5002B5D1E /* endgame.c in Sources */, + AF918A4B158FC3E5002B5D1E /* engine.c in Sources */, + AF918A54158FC3E5002B5D1E /* flipflop.c in Sources */, + AF918A55158FC3E5002B5D1E /* flipscreen3d.c in Sources */, + AF918A56158FC3E5002B5D1E /* fliptext.c in Sources */, + AF918A57158FC3E5002B5D1E /* flyingtoasters.c in Sources */, + AF918A58158FC3E5002B5D1E /* font-ximage.c in Sources */, + AF918A59158FC3E5002B5D1E /* fps-gl.c in Sources */, + AF918A5A158FC3E5002B5D1E /* gears.c in Sources */, + AF918A5B158FC3E5002B5D1E /* gflux.c in Sources */, + AF918A5C158FC3E5002B5D1E /* glblur.c in Sources */, + AF918A5D158FC3E5002B5D1E /* glcells.c in Sources */, + AF918A5E158FC3E5002B5D1E /* gleidescope.c in Sources */, + AF918A60158FC3E5002B5D1E /* glhanoi.c in Sources */, + AF918A61158FC3E5002B5D1E /* glknots.c in Sources */, + AF918A62158FC3E5002B5D1E /* glmatrix.c in Sources */, + AF918A63158FC3E5002B5D1E /* glplanet.c in Sources */, + AF918A64158FC3E5002B5D1E /* glschool.c in Sources */, + AF918A65158FC3E5002B5D1E /* glschool_alg.c in Sources */, + AF918A66158FC3E5002B5D1E /* glschool_gl.c in Sources */, + AF918A67158FC3E5002B5D1E /* glslideshow.c in Sources */, + AF918A68158FC3E5002B5D1E /* glsnake.c in Sources */, + AF918A69158FC3E5002B5D1E /* gltext.c in Sources */, + AF918A6A158FC3E5002B5D1E /* hilbert.c in Sources */, + AF918A6B158FC3E5002B5D1E /* hypertorus.c in Sources */, + AF918A6C158FC3E5002B5D1E /* hypnowheel.c in Sources */, + AF918A6D158FC3E5002B5D1E /* involute.c in Sources */, + AF918A6E158FC417002B5D1E /* jigglypuff.c in Sources */, + AF918A6F158FC417002B5D1E /* juggler3d.c in Sources */, + AF918A70158FC417002B5D1E /* klein.c in Sources */, + AF918A71158FC417002B5D1E /* lament.c in Sources */, + AF918A72158FC417002B5D1E /* lavalite.c in Sources */, + AF918A74158FC417002B5D1E /* marching.c in Sources */, + AF918A75158FC417002B5D1E /* menger.c in Sources */, + AF918A76158FC417002B5D1E /* mirrorblob.c in Sources */, + AF918A77158FC417002B5D1E /* moebius.c in Sources */, + AF918A78158FC417002B5D1E /* moebiusgears.c in Sources */, + AF918A79158FC417002B5D1E /* molecule.c in Sources */, + AF918A7A158FC417002B5D1E /* morph3d.c in Sources */, + AF918A7B158FC417002B5D1E /* noof.c in Sources */, + AF918A7C158FC417002B5D1E /* photopile.c in Sources */, + AF918A7D158FC417002B5D1E /* pinion.c in Sources */, + AF918A7E158FC417002B5D1E /* pipeobjs.c in Sources */, + AF918A7F158FC417002B5D1E /* pipes.c in Sources */, + AF918A82158FC417002B5D1E /* polytopes.c in Sources */, + AF918A83158FC417002B5D1E /* providence.c in Sources */, + AF918A84158FC417002B5D1E /* pulsar.c in Sources */, + AF918A85158FC417002B5D1E /* queens.c in Sources */, + AF918A86158FC417002B5D1E /* rubik.c in Sources */, + AF918A87158FC417002B5D1E /* rubikblocks.c in Sources */, + AF918A88158FC417002B5D1E /* s1_1.c in Sources */, + AF918A89158FC417002B5D1E /* s1_2.c in Sources */, + AF918A8A158FC417002B5D1E /* s1_3.c in Sources */, + AF918A8B158FC417002B5D1E /* s1_4.c in Sources */, + AF918A8C158FC417002B5D1E /* s1_5.c in Sources */, + AF918A8D158FC417002B5D1E /* s1_6.c in Sources */, + AF918A8E158FC417002B5D1E /* s1_b.c in Sources */, + AF918A8F158FC417002B5D1E /* sballs.c in Sources */, + AF918A90158FC417002B5D1E /* shark.c in Sources */, + AF918A91158FC417002B5D1E /* sierpinski3d.c in Sources */, + AF918A92158FC417002B5D1E /* skytentacles.c in Sources */, + AF918A93158FC417002B5D1E /* sonar-icmp.c in Sources */, + AF918A94158FC417002B5D1E /* sonar-sim.c in Sources */, + AF918A95158FC417002B5D1E /* sonar.c in Sources */, + AF918A96158FC417002B5D1E /* spheremonics.c in Sources */, + AF918A97158FC473002B5D1E /* sproingies.c in Sources */, + AF918A98158FC473002B5D1E /* sproingiewrap.c in Sources */, + AF918A99158FC473002B5D1E /* stairs.c in Sources */, + AF918A9A158FC473002B5D1E /* starwars.c in Sources */, + AF918A9B158FC473002B5D1E /* stonerview-move.c in Sources */, + AF918A9C158FC473002B5D1E /* stonerview-osc.c in Sources */, + AF918A9D158FC473002B5D1E /* stonerview-view.c in Sources */, + AF918A9E158FC473002B5D1E /* stonerview.c in Sources */, + AF918A9F158FC473002B5D1E /* superquadrics.c in Sources */, + AF918AA0158FC473002B5D1E /* surfaces.c in Sources */, + AF918AA1158FC473002B5D1E /* swim.c in Sources */, + AF918AA2158FC473002B5D1E /* tangram.c in Sources */, + AF918AA3158FC473002B5D1E /* tangram_shapes.c in Sources */, + AF918AA4158FC473002B5D1E /* teapot.c in Sources */, + AF918AA5158FC473002B5D1E /* timetunnel.c in Sources */, + AF918AA6158FC473002B5D1E /* toast.c in Sources */, + AF918AA7158FC473002B5D1E /* toast2.c in Sources */, + AF918AA8158FC473002B5D1E /* toaster.c in Sources */, + AF918AA9158FC473002B5D1E /* toaster_base.c in Sources */, + AF918AAA158FC473002B5D1E /* toaster_handle.c in Sources */, + AF918AAB158FC473002B5D1E /* toaster_handle2.c in Sources */, + AF918AAC158FC473002B5D1E /* toaster_jet.c in Sources */, + AF918AAD158FC473002B5D1E /* toaster_knob.c in Sources */, + AF918AAE158FC473002B5D1E /* toaster_slots.c in Sources */, + AF918AAF158FC473002B5D1E /* toaster_wing.c in Sources */, + AF918AB0158FC473002B5D1E /* topblock.c in Sources */, + AF9189EA158FC35D002B5D1E /* tronbit.c in Sources */, + AF9189EB158FC35D002B5D1E /* tronbit_idle1.c in Sources */, + AF9189EC158FC35D002B5D1E /* tronbit_idle2.c in Sources */, + AF9189ED158FC35D002B5D1E /* tronbit_no.c in Sources */, + AF9189EE158FC35D002B5D1E /* tronbit_yes.c in Sources */, + AF918AB1158FC47B002B5D1E /* tunnel_draw.c in Sources */, + AF918AB2158FC47B002B5D1E /* voronoi.c in Sources */, + AF918AB3158FC47B002B5D1E /* whale.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; AF975732099C317000B05160 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -21997,6 +23221,7 @@ files = ( AF9771DF0989DC88001F8B92 /* SaverRunner.m in Sources */, AF9772C80989DCD5001F8B92 /* main.m in Sources */, + AF84AF2015829AF000607E4C /* SaverListController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -22385,6 +23610,7 @@ files = ( AFA55E0709935EB800F3E977 /* queens.c in Sources */, AF9CCAD409959D980075E99B /* XScreenSaverSubclass.m in Sources */, + AF012918157C1E4C00C396E1 /* chessmodels.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -23557,6 +24783,21 @@ target = AF4A3449102A593600A81B2A /* Surfaces */; targetProxy = AF4A345F102A59A400A81B2A /* PBXContainerItemProxy */; }; + AF4F10EE143450C300E34F3F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = AF3581BF1431D47B00E09C51 /* CompanionCube */; + targetProxy = AF4F10ED143450C300E34F3F /* PBXContainerItemProxy */; + }; + AF4F10F0143450C300E34F3F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = AF78D175142DD8F3002AAF77 /* Hilbert */; + targetProxy = AF4F10EF143450C300E34F3F /* PBXContainerItemProxy */; + }; + AF4F10F2143450C300E34F3F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = AF3581FB143330F900E09C51 /* TronBit */; + targetProxy = AF4F10F1143450C300E34F3F /* PBXContainerItemProxy */; + }; AF4FD6E70CE7A486005EE58E /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = AF4808C0098C3B6C00FB32B8 /* jwxyz */; @@ -24602,6 +25843,11 @@ target = AF4808C0098C3B6C00FB32B8 /* jwxyz */; targetProxy = AF794FCF09974FA60059A8B0 /* PBXContainerItemProxy */; }; + AF918978158FC00A002B5D1E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = AF4808C0098C3B6C00FB32B8 /* jwxyz */; + targetProxy = AF918979158FC00A002B5D1E /* PBXContainerItemProxy */; + }; AF97572E099C317000B05160 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = AF4808C0098C3B6C00FB32B8 /* jwxyz */; @@ -25326,6 +26572,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -25336,6 +26595,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -25346,6 +26618,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -25356,6 +26641,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -25378,6 +26676,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -25388,6 +26699,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -25401,7 +26725,6 @@ AF137D430F075C9C004DE3B2 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - GCC_ENABLE_FIX_AND_CONTINUE = NO; PRODUCT_NAME = Obsolete; }; name = Release; @@ -25421,16 +26744,56 @@ AF2D4D8D13E902F5002AA818 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - GCC_ENABLE_OBJC_GC = required; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Jamie Zawinski (Y5M82TL69N)"; + DEAD_CODE_STRIPPING = YES; + "DEAD_CODE_STRIPPING[sdk=iphoneos*]" = NO; + "DEAD_CODE_STRIPPING[sdk=iphonesimulator*]" = NO; + "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*]" = ( + "USE_IPHONE=1", + "$(inherited)", + ); + "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = ( + "USE_IPHONE=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_UNINITIALIZED_AUTOS = YES; INFOPLIST_FILE = OSX/SaverRunner.plist; + "INFOPLIST_FILE[sdk=iphoneos*]" = OSX/iSaverRunner.plist; + "INFOPLIST_FILE[sdk=iphonesimulator*]" = OSX/iSaverRunner.plist; INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + "OTHER_LDFLAGS[sdk=iphoneos*]" = ( + "-ljwxyz", + "-framework", + OpenGLES, + "-framework", + Foundation, + "-framework", + UIKit, + "-framework", + CoreGraphics, + "-framework", + QuartzCore, + ); + "OTHER_LDFLAGS[sdk=iphonesimulator*]" = ( + "-ljwxyz", + "-framework", + OpenGLES, "-framework", Foundation, "-framework", - AppKit, + UIKit, + "-framework", + CoreGraphics, + "-framework", + QuartzCore, ); PRODUCT_NAME = Phosphor; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "AC8EDA6B-E061-4508-B2BA-129DD6D2AF72"; + "SDKROOT[arch=i386]" = macosx10.6; + "SDKROOT[arch=x86_64]" = macosx10.6; + TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = app; }; name = Debug; @@ -25438,16 +26801,57 @@ AF2D4D8E13E902F5002AA818 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - GCC_ENABLE_OBJC_GC = required; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Jamie Zawinski (Y5M82TL69N)"; + COPY_PHASE_STRIP = YES; + DEAD_CODE_STRIPPING = YES; + "DEAD_CODE_STRIPPING[sdk=iphoneos*]" = NO; + "DEAD_CODE_STRIPPING[sdk=iphonesimulator*]" = NO; + "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*]" = ( + "USE_IPHONE=1", + "$(inherited)", + ); + "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = ( + "USE_IPHONE=1", + "$(inherited)", + ); + GCC_WARN_UNINITIALIZED_AUTOS = YES; INFOPLIST_FILE = OSX/SaverRunner.plist; + "INFOPLIST_FILE[sdk=iphoneos*]" = OSX/iSaverRunner.plist; + "INFOPLIST_FILE[sdk=iphonesimulator*]" = OSX/iSaverRunner.plist; INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + "OTHER_LDFLAGS[sdk=iphoneos*]" = ( + "-ljwxyz", + "-framework", + OpenGLES, + "-framework", + Foundation, + "-framework", + UIKit, + "-framework", + CoreGraphics, + "-framework", + QuartzCore, + ); + "OTHER_LDFLAGS[sdk=iphonesimulator*]" = ( + "-ljwxyz", + "-framework", + OpenGLES, "-framework", Foundation, "-framework", - AppKit, + UIKit, + "-framework", + CoreGraphics, + "-framework", + QuartzCore, ); PRODUCT_NAME = Phosphor; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "AC8EDA6B-E061-4508-B2BA-129DD6D2AF72"; + "SDKROOT[arch=i386]" = macosx10.6; + "SDKROOT[arch=x86_64]" = macosx10.6; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; WRAPPER_EXTENSION = app; }; name = Release; @@ -25455,16 +26859,56 @@ AF2D4F7C13E91093002AA818 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - GCC_ENABLE_OBJC_GC = required; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Jamie Zawinski (Y5M82TL69N)"; + DEAD_CODE_STRIPPING = YES; + "DEAD_CODE_STRIPPING[sdk=iphoneos*]" = NO; + "DEAD_CODE_STRIPPING[sdk=iphonesimulator*]" = NO; + "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*]" = ( + "USE_IPHONE=1", + "$(inherited)", + ); + "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = ( + "USE_IPHONE=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_UNINITIALIZED_AUTOS = YES; INFOPLIST_FILE = OSX/SaverRunner.plist; + "INFOPLIST_FILE[sdk=iphoneos*]" = OSX/iSaverRunner.plist; + "INFOPLIST_FILE[sdk=iphonesimulator*]" = OSX/iSaverRunner.plist; INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + "OTHER_LDFLAGS[sdk=iphoneos*]" = ( + "-ljwxyz", + "-framework", + OpenGLES, + "-framework", + Foundation, + "-framework", + UIKit, + "-framework", + CoreGraphics, + "-framework", + QuartzCore, + ); + "OTHER_LDFLAGS[sdk=iphonesimulator*]" = ( + "-ljwxyz", + "-framework", + OpenGLES, "-framework", Foundation, "-framework", - AppKit, + UIKit, + "-framework", + CoreGraphics, + "-framework", + QuartzCore, ); PRODUCT_NAME = Apple2; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "AC8EDA6B-E061-4508-B2BA-129DD6D2AF72"; + "SDKROOT[arch=i386]" = macosx10.6; + "SDKROOT[arch=x86_64]" = macosx10.6; + TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = app; }; name = Debug; @@ -25472,16 +26916,57 @@ AF2D4F7D13E91093002AA818 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - GCC_ENABLE_OBJC_GC = required; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Jamie Zawinski (Y5M82TL69N)"; + COPY_PHASE_STRIP = YES; + DEAD_CODE_STRIPPING = YES; + "DEAD_CODE_STRIPPING[sdk=iphoneos*]" = NO; + "DEAD_CODE_STRIPPING[sdk=iphonesimulator*]" = NO; + "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*]" = ( + "USE_IPHONE=1", + "$(inherited)", + ); + "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = ( + "USE_IPHONE=1", + "$(inherited)", + ); + GCC_WARN_UNINITIALIZED_AUTOS = YES; INFOPLIST_FILE = OSX/SaverRunner.plist; + "INFOPLIST_FILE[sdk=iphoneos*]" = OSX/iSaverRunner.plist; + "INFOPLIST_FILE[sdk=iphonesimulator*]" = OSX/iSaverRunner.plist; INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + "OTHER_LDFLAGS[sdk=iphoneos*]" = ( + "-ljwxyz", + "-framework", + OpenGLES, + "-framework", + Foundation, + "-framework", + UIKit, + "-framework", + CoreGraphics, + "-framework", + QuartzCore, + ); + "OTHER_LDFLAGS[sdk=iphonesimulator*]" = ( + "-ljwxyz", + "-framework", + OpenGLES, "-framework", Foundation, "-framework", - AppKit, + UIKit, + "-framework", + CoreGraphics, + "-framework", + QuartzCore, ); PRODUCT_NAME = Apple2; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "AC8EDA6B-E061-4508-B2BA-129DD6D2AF72"; + "SDKROOT[arch=i386]" = macosx10.6; + "SDKROOT[arch=x86_64]" = macosx10.6; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; WRAPPER_EXTENSION = app; }; name = Release; @@ -25493,6 +26978,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -25503,6 +27001,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -25513,7 +27024,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); - PRODUCT_NAME = CompanionCube; + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -25524,7 +27047,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); - PRODUCT_NAME = CompanionCube; + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -25535,7 +27070,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); - PRODUCT_NAME = "TronBit"; + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -25546,7 +27093,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); - PRODUCT_NAME = "TronBit"; + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -25557,6 +27116,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -25567,6 +27139,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -25577,6 +27162,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -25587,6 +27185,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -25701,12 +27312,14 @@ AF47722C099D4F67001F091E /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; }; name = Debug; }; AF47722D099D4F67001F091E /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; }; name = Release; }; @@ -26169,14 +27782,34 @@ AF4808C3098C3B8B00FB32B8 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = ( + "$(ARCHS_STANDARD_32_64_BIT)", + armv6, + armv7, + ); INSTALL_PATH = /usr/local/lib; + SDKROOT = macosx; + "SDKROOT[arch=armv6]" = iphoneos; + "SDKROOT[arch=armv7]" = iphoneos; + SUPPORTED_PLATFORMS = "macosx iphonesimulator iphoneos"; + VALID_ARCHS = "i386 x86_64 armv6 armv7"; }; name = Debug; }; AF4808C4098C3B8B00FB32B8 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = ( + "$(ARCHS_STANDARD_32_64_BIT)", + armv6, + armv7, + ); INSTALL_PATH = /usr/local/lib; + SDKROOT = macosx; + "SDKROOT[arch=armv6]" = iphoneos; + "SDKROOT[arch=armv7]" = iphoneos; + SUPPORTED_PLATFORMS = "macosx iphonesimulator iphoneos"; + VALID_ARCHS = "i386 x86_64 armv6 armv7"; }; name = Release; }; @@ -26190,7 +27823,6 @@ AF480ABC098C66E300FB32B8 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - GCC_ENABLE_FIX_AND_CONTINUE = NO; PRODUCT_NAME = "All Savers (XScreenSaver)"; }; name = Release; @@ -26217,7 +27849,6 @@ AF480D66098EED6E00FB32B8 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - GCC_ENABLE_FIX_AND_CONTINUE = NO; PRODUCT_NAME = "All Savers (XLockmore)"; }; name = Release; @@ -26232,7 +27863,6 @@ AF480D69098EED6E00FB32B8 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - GCC_ENABLE_FIX_AND_CONTINUE = NO; PRODUCT_NAME = "All Savers (OpenGL)"; }; name = Release; @@ -26247,7 +27877,6 @@ AF480D6C098EED6E00FB32B8 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - GCC_ENABLE_FIX_AND_CONTINUE = NO; PRODUCT_NAME = "All Savers"; }; name = Release; @@ -26267,20 +27896,70 @@ AF4810F909909FBA00FB32B8 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_PREPROCESSOR_DEFINITIONS = ( + "HAVE_COCOA=1", + "GETTIMEOFDAY_TWO_ARGS=1", + "HAVE_UNISTD_H=1", + "STANDALONE=1", + "HAVE_GLBINDTEXTURE=1", + "HAVE_UNAME=1", + "HAVE_ICMP=1", + "HAVE_FORKPTY=1", + "HAVE_UTIL_H=1", + "$(GCC_PREPROCESSOR_DEFINITIONS)", + ); GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; AF4810FA09909FBA00FB32B8 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_PREPROCESSOR_DEFINITIONS = ( + "HAVE_COCOA=1", + "GETTIMEOFDAY_TWO_ARGS=1", + "HAVE_UNISTD_H=1", + "STANDALONE=1", + "HAVE_GLBINDTEXTURE=1", + "HAVE_UNAME=1", + "HAVE_ICMP=1", + "HAVE_FORKPTY=1", + "HAVE_UTIL_H=1", + "$(GCC_PREPROCESSOR_DEFINITIONS)", + ); GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26291,6 +27970,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -26301,6 +27993,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26311,6 +28016,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -26321,6 +28039,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26331,6 +28062,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -26341,6 +28085,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26351,6 +28108,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -26361,6 +28131,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26371,6 +28154,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -26381,6 +28177,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26394,7 +28203,6 @@ AF4FF4960D52CA0800666F98 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - GCC_ENABLE_FIX_AND_CONTINUE = NO; PRODUCT_NAME = m6502.h; }; name = Release; @@ -26406,6 +28214,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -26416,6 +28237,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26426,6 +28260,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -26436,6 +28283,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26566,6 +28426,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -26576,6 +28449,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26586,6 +28472,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -26596,6 +28495,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26606,6 +28518,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -26616,6 +28541,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26626,6 +28564,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -26636,6 +28587,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26646,6 +28610,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -26656,6 +28633,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26666,6 +28656,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -26676,6 +28679,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26686,6 +28702,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -26696,6 +28725,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26706,6 +28748,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -26716,6 +28771,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26726,6 +28794,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -26736,6 +28817,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26770,7 +28864,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); - PRODUCT_NAME = Hilbert; + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -26781,7 +28887,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); - PRODUCT_NAME = Hilbert; + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -26821,6 +28939,69 @@ }; name = Release; }; + AF91898D158FC00A002B5D1E /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ( + armv6, + armv7, + ); + CODE_SIGN_IDENTITY = "iPhone Developer"; + DEAD_CODE_STRIPPING = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SYSTEM_APPS_DIR)/Xcode.app/Contents/Developer/Library/Frameworks\"", + ); + GCC_PREPROCESSOR_DEFINITIONS = ( + "USE_IPHONE=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_THUMB_SUPPORT = NO; + INFOPLIST_FILE = OSX/iSaverRunner.plist; + INSTALL_PATH = "$(HOME)/Applications"; + IPHONEOS_DEPLOYMENT_TARGET = 3.0; + PRODUCT_NAME = XScreenSaver; + PROVISIONING_PROFILE = ""; + SDKROOT = iphoneos; + "SDKROOT[arch=*]" = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + AF91898E158FC00A002B5D1E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ( + armv6, + armv7, + ); + CODE_SIGN_IDENTITY = "iPhone Distribution: Jamie Zawinski"; + DEAD_CODE_STRIPPING = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SYSTEM_APPS_DIR)/Xcode.app/Contents/Developer/Library/Frameworks\"", + ); + GCC_PREPROCESSOR_DEFINITIONS = ( + "USE_IPHONE=1", + "$(inherited)", + ); + GCC_THUMB_SUPPORT = NO; + INFOPLIST_FILE = OSX/iSaverRunner.plist; + INSTALL_PATH = "$(HOME)/Applications"; + IPHONEOS_DEPLOYMENT_TARGET = 3.0; + PRODUCT_NAME = XScreenSaver; + PROVISIONING_PROFILE = "6713E214-60AD-43CF-AFD3-825AEB87AA75"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; AF97573B099C317000B05160 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -27028,15 +29209,8 @@ AF9771DB0989DC4B001F8B92 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - GCC_ENABLE_OBJC_GC = required; INFOPLIST_FILE = OSX/SaverRunner.plist; INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); WRAPPER_EXTENSION = app; }; name = Debug; @@ -27044,15 +29218,8 @@ AF9771DC0989DC4B001F8B92 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - GCC_ENABLE_OBJC_GC = required; INFOPLIST_FILE = OSX/SaverRunner.plist; INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); WRAPPER_EXTENSION = app; }; name = Release; @@ -27064,6 +29231,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27074,6 +29254,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27260,7 +29453,6 @@ AFA33BCC0B058754002B0E7D /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; INSTALL_PATH = "$(HOME)/bin"; OTHER_LDFLAGS = ( @@ -27274,7 +29466,6 @@ AFA33BCD0B058754002B0E7D /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - GCC_ENABLE_FIX_AND_CONTINUE = NO; GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; INSTALL_PATH = "$(HOME)/bin"; OTHER_LDFLAGS = ( @@ -27295,7 +29486,6 @@ AFA33C090B058E67002B0E7D /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - GCC_ENABLE_FIX_AND_CONTINUE = NO; PRODUCT_NAME = webcollage; }; name = Release; @@ -27307,6 +29497,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27317,6 +29520,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27327,6 +29543,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27337,6 +29566,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27347,6 +29589,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27357,6 +29612,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27367,6 +29635,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27377,6 +29658,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27387,6 +29681,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27397,6 +29704,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27407,6 +29727,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27417,6 +29750,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27427,6 +29773,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27437,6 +29796,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27447,6 +29819,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27457,6 +29842,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27467,6 +29865,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27477,6 +29888,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27487,6 +29911,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27497,6 +29934,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27507,6 +29957,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27517,6 +29980,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27527,6 +30003,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27537,6 +30026,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27547,6 +30049,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27557,6 +30072,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27567,6 +30095,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27577,6 +30118,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27587,6 +30141,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27597,6 +30164,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27607,6 +30187,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27617,6 +30210,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27627,6 +30233,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27637,6 +30256,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27647,6 +30279,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27657,6 +30302,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27667,6 +30325,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27677,6 +30348,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27687,6 +30371,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27697,6 +30394,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27707,6 +30417,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27717,6 +30440,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27727,6 +30463,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27737,6 +30486,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27747,6 +30509,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27757,6 +30532,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27767,6 +30555,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27777,6 +30578,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27787,6 +30601,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27797,6 +30624,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27807,6 +30647,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27817,6 +30670,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27827,6 +30693,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27837,6 +30716,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27847,6 +30739,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27857,6 +30762,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27867,6 +30785,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27877,6 +30808,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27887,6 +30831,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27897,6 +30854,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27907,6 +30877,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27917,6 +30900,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27927,6 +30923,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27937,6 +30946,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27947,6 +30969,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27957,6 +30992,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27967,6 +31015,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27977,6 +31038,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -27987,6 +31061,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -27997,6 +31084,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28007,6 +31107,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28017,6 +31130,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28027,6 +31153,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28037,6 +31176,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28047,6 +31199,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28057,6 +31222,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28067,6 +31245,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28077,6 +31268,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28087,6 +31291,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28097,6 +31314,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28110,7 +31340,6 @@ AFA5611C099378EA00F3E977 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - GCC_ENABLE_FIX_AND_CONTINUE = NO; PRODUCT_NAME = molecules.h; }; name = Release; @@ -28122,6 +31351,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28132,6 +31374,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28142,6 +31397,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28152,6 +31420,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28162,6 +31443,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28172,6 +31466,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28182,6 +31489,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28192,6 +31512,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28202,6 +31535,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28212,6 +31558,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28222,6 +31581,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28232,6 +31604,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28242,6 +31627,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28252,6 +31650,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28262,6 +31673,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28272,6 +31696,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28282,6 +31719,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28292,6 +31742,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28302,6 +31765,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28312,6 +31788,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28322,6 +31811,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28332,6 +31834,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28342,6 +31857,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28352,6 +31880,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28362,6 +31903,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28372,6 +31926,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28382,6 +31949,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28392,6 +31972,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28402,6 +31995,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28412,6 +32018,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28806,6 +32425,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28816,6 +32448,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28826,6 +32471,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28836,6 +32494,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28846,6 +32517,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28856,6 +32540,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28890,6 +32587,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Debug; }; @@ -28900,6 +32610,19 @@ "USE_GL=1", "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-ljwxyz", + "-framework", + ScreenSaver, + "-framework", + Cocoa, + "-framework", + Carbon, + "-framework", + AGL, + "-framework", + OpenGL, + ); }; name = Release; }; @@ -28907,8 +32630,10 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - COPY_PHASE_STRIP = NO; - GCC_ENABLE_OBJC_GC = supported; + GCC_ENABLE_OBJC_GC = required; + "GCC_ENABLE_OBJC_GC[sdk=iphoneos*][arch=*]" = unsupported; + "GCC_ENABLE_OBJC_GC[sdk=iphonesimulator*][arch=*]" = unsupported; + GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = OSX/xscreensaver_Prefix.pch; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -28948,13 +32673,11 @@ ); INFOPLIST_FILE = OSX/XScreenSaver.plist; INSTALL_PATH = "$(HOME)/Library/Screen Savers"; - LIBRARY_SEARCH_PATHS = ( - "$(LIBRARY_SEARCH_PATHS)", - "$(SRCROOT)/OSX/build/Debug", - ); MACOSX_DEPLOYMENT_TARGET = 10.5; + "MACOSX_DEPLOYMENT_TARGET[sdk=iphoneos*][arch=*]" = ""; + "MACOSX_DEPLOYMENT_TARGET[sdk=iphonesimulator*][arch=*]" = ""; PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; + SDKROOT = macosx10.6; SYMROOT = OSX/build; USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR) $(USER_HEADER_SEARCH_PATHS)"; WARNING_CFLAGS = "-Wimplicit"; @@ -28966,8 +32689,9 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - COPY_PHASE_STRIP = NO; - GCC_ENABLE_OBJC_GC = supported; + GCC_ENABLE_OBJC_GC = required; + "GCC_ENABLE_OBJC_GC[sdk=iphoneos*][arch=*]" = unsupported; + "GCC_ENABLE_OBJC_GC[sdk=iphonesimulator*][arch=*]" = unsupported; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = OSX/xscreensaver_Prefix.pch; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -28995,6 +32719,7 @@ GCC_WARN_MISSING_PARENTHESES = YES; GCC_WARN_SHADOW = NO; GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_VALUE = YES; @@ -29007,13 +32732,11 @@ ); INFOPLIST_FILE = OSX/XScreenSaver.plist; INSTALL_PATH = "$(HOME)/Library/Screen Savers"; - LIBRARY_SEARCH_PATHS = ( - "$(LIBRARY_SEARCH_PATHS)", - "$(SRCROOT)/OSX/build/Debug", - ); MACOSX_DEPLOYMENT_TARGET = 10.5; + "MACOSX_DEPLOYMENT_TARGET[sdk=iphoneos*][arch=*]" = ""; + "MACOSX_DEPLOYMENT_TARGET[sdk=iphonesimulator*][arch=*]" = ""; PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; + SDKROOT = macosx10.6; SYMROOT = OSX/build; USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR) $(USER_HEADER_SEARCH_PATHS)"; WARNING_CFLAGS = "-Wimplicit"; @@ -29942,6 +33665,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + AF91898C158FC00A002B5D1E /* Build configuration list for PBXNativeTarget "XScreenSaver-iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AF91898D158FC00A002B5D1E /* Debug */, + AF91898E158FC00A002B5D1E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; AF97573A099C317000B05160 /* Build configuration list for PBXNativeTarget "IMSMap" */ = { isa = XCConfigurationList; buildConfigurations = ( -- 2.30.2